diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..628362d
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,34 @@
+# Travis build integration.
+# https://docs.travis-ci.com/
+language: cpp
+
+sudo: required
+
+addons:
+  apt:
+    sources:
+      - ubuntu-toolchain-r-test
+    packages:
+      - clang
+      - gcc-4.8
+      - g++-4.8
+
+env:
+  global:
+    - secure: "FPczJ1u7FWGXOtUVf5AONeexfQDYnKRtuNs3phLwlPPAbgAlIc/WeTRSHC8DAb1T8IyPdN3Zi7cqLz0dvPol0iX1fWSfr8YdtW0ea8nUYH5ldmmp6H75FEUJUcISmYwL4WN7TldC6Hnzrlbw/0xmBH8gtAgddtBXKc9P9SwEZvM4OiFMHbMPwZEhRj+D95rfH12lgh3D16nbXGnx3rSNbHszvIxrU2VvlLo9Aa+hbmVj5CsBiNJjhDS64ie+VMTkuzcWNqLRYaGOCQ8ftKAlj/fjGfoKjPDN9dSJg9gW1FjOMPeQo93qhSc/hCmTq7sWxBJu48telinUgESdE5q/8gRf5J05ImWPntZAkC/wQkA20K7Kp/fH1CRaYXQMWKjts8c6dQZ5R4WxE4WXUo5rz573Ti9uyVTLys9whnzaib3YbqYv04irkhpgzo3rd8PF8SXpgK99ySQCcv/Dh7UQuXPpcaknOk2mBySXjQDgpQHHXDN2uUek1HEo5xit8fQuQw3TdPIZ9ZgzQ/c5/Dx6sLWAGEfVH9MN+hy6AiZnJ1JI+XF82kAf1pnf8WddHtlE7pAdWRFQt0iOj9T9esV1/o0VCJVzJLRdpKecF0sTpJxDuan6cFI0tNCkNjHFA5wJKYAvdOPAmYkqre7aIIqSOKy3Fjh9JP9CBJFy7eals9U="
+
+# TODO: Add an OS X config.
+matrix:
+  include:
+    - os: linux
+      compiler: gcc
+      env: USE_CC=gcc-4.8 USE_CXX=g++-4.8 COVERITY_SCAN=true
+    - os: linux
+      compiler: clang
+
+before_install: ./scripts/travis-checkout.sh
+script: ./scripts/travis-build.sh
+
+notifications:
+  email:
+    - google-breakpad-dev@googlegroups.com
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..4858b37
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+opensource@google.com
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ChangeLog
diff --git a/DEPS b/DEPS
new file mode 100644
index 0000000..3ddaf4e
--- /dev/null
+++ b/DEPS
@@ -0,0 +1,84 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This is used to mimic the svn:externals mechanism for gclient (both Git and
+# SVN) based checkouts of Breakpad. As such, its use is entirely optional. If
+# using a manually managed SVN checkout as opposed to a gclient managed checkout
+# you can still use the hooks mechanism for generating project files by calling
+# 'gclient runhooks' rather than 'gclient sync'.
+
+deps = {
+  # Testing libraries and utilities.
+  "src/src/testing":
+    "https://github.com/google/googletest.git" +
+      "@5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081",
+
+  # Protobuf.
+  "src/src/third_party/protobuf/protobuf":
+    "https://github.com/google/protobuf.git" +
+      "@cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac",
+
+  # GYP project generator.
+  "src/src/tools/gyp":
+    "https://chromium.googlesource.com/external/gyp/" +
+      "@324dd166b7c0b39d513026fa52d6280ac6d56770",
+
+  # Linux syscall support.
+  "src/src/third_party/lss":
+    "https://chromium.googlesource.com/linux-syscall-support/" +
+      "@fd00dbbd0c06a309c657d89e9430143b179ff6db",
+}
+
+hooks = [
+  {
+    # Keep the manifest up to date.
+    "action": ["python", "src/src/tools/python/deps-to-manifest.py",
+               "src/DEPS", "src/default.xml"],
+  },
+]
+
+hooks_os = {
+  'win': [
+    {
+      # TODO(chrisha): Fix the GYP files so that they work without
+      # --no-circular-check.
+      "pattern": ".",
+      "action": ["python",
+                 "src/src/tools/gyp/gyp_main.py",
+                 "--no-circular-check",
+                 "src/src/client/windows/breakpad_client.gyp"],
+    },
+    {
+      # XXX: this and above should all be wired into build/all.gyp ?
+      "action": ["python",
+                 "src/src/tools/gyp/gyp_main.py",
+                 "--no-circular-check",
+                 "src/src/tools/windows/tools_windows.gyp"],
+    },
+  ],
+}
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..007e939
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved.  Use GNU `make'
+instead.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
+
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a840b26
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,132 @@
+Copyright (c) 2006, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+    * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------
+
+Copyright 2001-2004 Unicode, Inc.
+
+Disclaimer
+
+This source code is provided as is by Unicode, Inc. No claims are
+made as to fitness for any particular purpose. No warranties of any
+kind are expressed or implied. The recipient agrees to determine
+applicability of information provided. If this file has been
+purchased on magnetic or optical media from Unicode, Inc., the
+sole remedy for any claim will be exchange of defective media
+within 90 days of receipt.
+
+Limitations on Rights to Redistribute This Code
+
+Unicode, Inc. hereby grants the right to freely use the information
+supplied in this file in the creation of products supporting the
+Unicode Standard, and to make copies of this file in any form
+for internal or external distribution as long as this notice
+remains attached.
+
+--------------------------------------------------------------------
+
+libunwind - a platform-independent unwind library
+   Copyright (C) 2008 Google, Inc
+	Contributed by Paul Pluzhnikov <ppluzhnikov@google.com>
+   Copyright (C) 2010 Konstantin Belousov <kib@freebsd.org>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
+
+--------------------------------------------------------------------
+
+Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+
+@APPLE_LICENSE_HEADER_START@
+
+This file contains Original Code and/or Modifications of Original Code
+as defined in and that are subject to the Apple Public Source License
+Version 2.0 (the 'License'). You may not use this file except in
+compliance with the License. Please obtain a copy of the License at
+http://www.opensource.apple.com/apsl/ and read it before using this
+file.
+
+The Original Code and all software distributed under the License are
+distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+Please see the License for the specific language governing rights and
+limitations under the License.
+
+@APPLE_LICENSE_HEADER_END@
+
+--------------------------------------------------------------------
+
+Copyright (c) 1989, 1993
+The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..fd9875b
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,1618 @@
+## Process this file with automake to produce Makefile.in
+
+# Copyright (c) 2011, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# This allows #includes to be relative to src/
+AM_CPPFLAGS = -I$(top_srcdir)/src
+AM_CFLAGS =
+AM_CXXFLAGS =
+
+if ANDROID_HOST
+# This allows using fixed NDK headers when building for Android.
+AM_CXXFLAGS += -I$(top_srcdir)/src/common/android/include
+# This is only necessary for building the unit tests until GTest is upgraded
+# to a future version.
+AM_CXXFLAGS += -I$(top_srcdir)/src/common/android/testing/include
+endif
+
+AM_CXXFLAGS += $(WARN_CXXFLAGS)
+
+if LINUX_HOST
+# Build as PIC on Linux, for linux_client_unittest_shlib
+AM_CFLAGS += -fPIC
+AM_CXXFLAGS += -fPIC
+endif
+
+# Specify include paths for ac macros
+ACLOCAL_AMFLAGS = -I m4
+
+# License file is called LICENSE not COPYING
+AUTOMAKE_OPTIONS = foreign
+
+## Documentation
+docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+
+dist_doc_DATA = \
+	AUTHORS \
+	ChangeLog \
+	INSTALL \
+	LICENSE \
+	NEWS \
+	README.md
+
+## Headers
+if LINUX_HOST
+includeclhdir = $(includedir)/$(PACKAGE)/client/linux/handler
+includeclh_HEADERS = $(top_srcdir)/src/client/linux/handler/*.h
+
+includecldwcdir = $(includedir)/$(PACKAGE)/client/linux/dump_writer_common
+includecldwc_HEADERS = $(top_srcdir)/src/client/linux/dump_writer_common/*.h
+
+includeclmdir = $(includedir)/$(PACKAGE)/client/linux/minidump_writer
+includeclm_HEADERS = $(top_srcdir)/src/client/linux/minidump_writer/*.h
+
+includeclcdir = $(includedir)/$(PACKAGE)/client/linux/crash_generation
+includeclc_HEADERS = $(top_srcdir)/src/client/linux/crash_generation/*.h
+
+includelssdir = $(includedir)/$(PACKAGE)/third_party/lss
+includelss_HEADERS = $(top_srcdir)/src/third_party/lss/*.h
+
+includecldir = $(includedir)/$(PACKAGE)/common/linux
+includecl_HEADERS = $(top_srcdir)/src/common/linux/*.h
+endif
+
+includegbcdir = $(includedir)/$(PACKAGE)/google_breakpad/common
+includegbc_HEADERS = $(top_srcdir)/src/google_breakpad/common/*.h
+
+includecdir = $(includedir)/$(PACKAGE)/common
+includec_HEADERS = $(top_srcdir)/src/common/*.h
+
+includepdir = $(includedir)/$(PACKAGE)/processor
+includep_HEADERS = $(top_srcdir)/src/processor/*.h
+
+## pkgconfig files
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA =
+
+## Common test logic
+if SYSTEM_TEST_LIBS
+TEST_CFLAGS = $(GTEST_CFLAGS) $(GMOCK_CFLAGS)
+TEST_LIBS = $(GTEST_LIBS) -lgtest_main $(GMOCK_LIBS)
+TEST_DEPS =
+else
+TEST_CFLAGS = \
+	-I$(top_srcdir)/src/testing/include \
+	-I$(top_srcdir)/src/testing/googletest/include \
+	-I$(top_srcdir)/src/testing/googletest \
+	-I$(top_srcdir)/src/testing/googlemock/include \
+	-I$(top_srcdir)/src/testing/googlemock \
+	-I$(top_srcdir)/src/testing
+TEST_LIBS = src/testing/libtesting.a
+TEST_DEPS = $(TEST_LIBS)
+endif
+
+## Libraries
+check_LIBRARIES =
+noinst_LIBRARIES =
+lib_LIBRARIES =
+libexec_PROGRAMS =
+bin_PROGRAMS =
+check_PROGRAMS =
+EXTRA_PROGRAMS =
+CLEANFILES =
+
+check_LIBRARIES += src/testing/libtesting.a
+
+if !SYSTEM_TEST_LIBS
+src_testing_libtesting_a_SOURCES = \
+	src/breakpad_googletest_includes.h \
+	src/testing/googletest/src/gtest-all.cc \
+	src/testing/googletest/src/gtest_main.cc \
+	src/testing/googlemock/src/gmock-all.cc
+src_testing_libtesting_a_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+endif
+
+if !DISABLE_PROCESSOR
+lib_LIBRARIES += src/libbreakpad.a
+pkgconfig_DATA += breakpad.pc
+noinst_LIBRARIES += src/third_party/libdisasm/libdisasm.a
+endif
+
+if LINUX_HOST
+lib_LIBRARIES += src/client/linux/libbreakpad_client.a
+pkgconfig_DATA += breakpad-client.pc
+
+src_client_linux_libbreakpad_client_a_SOURCES = \
+	src/client/linux/crash_generation/crash_generation_client.cc \
+	src/client/linux/crash_generation/crash_generation_server.cc \
+	src/client/linux/dump_writer_common/thread_info.cc \
+	src/client/linux/dump_writer_common/ucontext_reader.cc \
+	src/client/linux/handler/exception_handler.cc \
+	src/client/linux/handler/exception_handler.h \
+	src/client/linux/handler/minidump_descriptor.cc \
+	src/client/linux/handler/minidump_descriptor.h \
+	src/client/linux/log/log.cc \
+	src/client/linux/log/log.h \
+	src/client/linux/microdump_writer/microdump_writer.cc \
+	src/client/linux/microdump_writer/microdump_writer.h \
+	src/client/linux/minidump_writer/linux_core_dumper.cc \
+	src/client/linux/minidump_writer/linux_dumper.cc \
+	src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
+	src/client/linux/minidump_writer/minidump_writer.cc \
+	src/client/minidump_file_writer-inl.h \
+	src/client/minidump_file_writer.cc \
+	src/client/minidump_file_writer.h \
+	src/common/convert_UTF.cc \
+	src/common/convert_UTF.h \
+	src/common/md5.cc \
+	src/common/md5.h \
+	src/common/string_conversion.cc \
+	src/common/string_conversion.h \
+	src/common/linux/elf_core_dump.cc \
+	src/common/linux/elfutils.cc \
+	src/common/linux/elfutils.h \
+	src/common/linux/file_id.cc \
+	src/common/linux/file_id.h \
+	src/common/linux/guid_creator.cc \
+	src/common/linux/guid_creator.h \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/safe_readlink.cc
+if !HAVE_GETCONTEXT
+src_client_linux_libbreakpad_client_a_SOURCES += \
+	src/common/linux/breakpad_getcontext.S
+endif
+endif LINUX_HOST
+
+if !DISABLE_PROCESSOR
+src_libbreakpad_a_SOURCES = \
+	src/google_breakpad/common/breakpad_types.h \
+	src/google_breakpad/common/minidump_format.h \
+	src/google_breakpad/common/minidump_size.h \
+	src/google_breakpad/processor/basic_source_line_resolver.h \
+	src/google_breakpad/processor/call_stack.h \
+	src/google_breakpad/processor/code_module.h \
+	src/google_breakpad/processor/code_modules.h \
+	src/google_breakpad/processor/dump_context.h \
+	src/google_breakpad/processor/dump_object.h \
+	src/google_breakpad/processor/exploitability.h \
+	src/google_breakpad/processor/fast_source_line_resolver.h \
+	src/google_breakpad/processor/memory_region.h \
+	src/google_breakpad/processor/microdump.h \
+	src/google_breakpad/processor/microdump_processor.h \
+	src/google_breakpad/processor/minidump.h \
+	src/google_breakpad/processor/minidump_processor.h \
+	src/google_breakpad/processor/process_result.h \
+	src/google_breakpad/processor/process_state.h \
+	src/google_breakpad/processor/proc_maps_linux.h \
+	src/google_breakpad/processor/source_line_resolver_base.h \
+	src/google_breakpad/processor/source_line_resolver_interface.h \
+	src/google_breakpad/processor/stack_frame.h \
+	src/google_breakpad/processor/stack_frame_cpu.h \
+	src/google_breakpad/processor/stack_frame_symbolizer.h \
+	src/google_breakpad/processor/stackwalker.h \
+	src/google_breakpad/processor/symbol_supplier.h \
+	src/google_breakpad/processor/system_info.h \
+	src/processor/address_map-inl.h \
+	src/processor/address_map.h \
+	src/processor/basic_code_module.h \
+	src/processor/basic_code_modules.cc \
+	src/processor/basic_code_modules.h \
+	src/processor/basic_source_line_resolver_types.h \
+	src/processor/basic_source_line_resolver.cc \
+	src/processor/call_stack.cc \
+	src/processor/cfi_frame_info.cc \
+	src/processor/cfi_frame_info.h \
+	src/processor/contained_range_map-inl.h \
+	src/processor/contained_range_map.h \
+	src/processor/convert_old_arm64_context.cc \
+	src/processor/convert_old_arm64_context.h \
+	src/processor/disassembler_x86.h \
+	src/processor/disassembler_x86.cc \
+	src/processor/dump_context.cc \
+	src/processor/dump_object.cc \
+	src/processor/exploitability.cc \
+	src/processor/exploitability_linux.h \
+	src/processor/exploitability_linux.cc \
+	src/processor/exploitability_win.h \
+	src/processor/exploitability_win.cc \
+	src/processor/fast_source_line_resolver_types.h \
+	src/processor/fast_source_line_resolver.cc \
+	src/processor/linked_ptr.h \
+	src/processor/logging.h \
+	src/processor/logging.cc \
+	src/processor/map_serializers-inl.h \
+	src/processor/map_serializers.h \
+	src/processor/microdump.cc \
+	src/processor/microdump_processor.cc \
+	src/processor/minidump.cc \
+	src/processor/minidump_processor.cc \
+	src/processor/module_comparer.cc \
+	src/processor/module_comparer.h \
+	src/processor/module_factory.h \
+	src/processor/module_serializer.cc \
+	src/processor/module_serializer.h \
+	src/processor/pathname_stripper.cc \
+	src/processor/pathname_stripper.h \
+	src/processor/postfix_evaluator-inl.h \
+	src/processor/postfix_evaluator.h \
+	src/processor/process_state.cc \
+	src/processor/proc_maps_linux.cc \
+	src/processor/range_map-inl.h \
+	src/processor/range_map.h \
+	src/processor/simple_serializer-inl.h \
+	src/processor/simple_serializer.h \
+	src/processor/simple_symbol_supplier.cc \
+	src/processor/simple_symbol_supplier.h \
+	src/processor/windows_frame_info.h \
+	src/processor/source_line_resolver_base_types.h \
+	src/processor/source_line_resolver_base.cc \
+	src/processor/stack_frame_cpu.cc \
+	src/processor/stack_frame_symbolizer.cc \
+	src/processor/stackwalker.cc \
+	src/processor/stackwalker_amd64.cc \
+	src/processor/stackwalker_amd64.h \
+	src/processor/stackwalker_arm.cc \
+	src/processor/stackwalker_arm.h \
+	src/processor/stackwalker_arm64.cc \
+	src/processor/stackwalker_arm64.h \
+	src/processor/stackwalker_address_list.cc \
+	src/processor/stackwalker_address_list.h \
+	src/processor/stackwalker_mips.cc \
+	src/processor/stackwalker_mips.h \
+	src/processor/stackwalker_ppc.cc \
+	src/processor/stackwalker_ppc.h \
+	src/processor/stackwalker_ppc64.cc \
+	src/processor/stackwalker_ppc64.h \
+	src/processor/stackwalker_sparc.cc \
+	src/processor/stackwalker_sparc.h \
+	src/processor/stackwalker_x86.cc \
+	src/processor/stackwalker_x86.h \
+	src/processor/static_address_map-inl.h \
+	src/processor/static_address_map.h \
+	src/processor/static_contained_range_map-inl.h \
+	src/processor/static_contained_range_map.h \
+	src/processor/static_map_iterator-inl.h \
+	src/processor/static_map_iterator.h \
+	src/processor/static_map-inl.h \
+	src/processor/static_map.h \
+	src/processor/static_range_map-inl.h \
+	src/processor/static_range_map.h \
+	src/processor/symbolic_constants_win.cc \
+	src/processor/symbolic_constants_win.h \
+	src/processor/tokenize.cc \
+	src/processor/tokenize.h
+
+src_third_party_libdisasm_libdisasm_a_SOURCES = \
+	src/third_party/libdisasm/ia32_implicit.c \
+	src/third_party/libdisasm/ia32_implicit.h \
+	src/third_party/libdisasm/ia32_insn.c \
+	src/third_party/libdisasm/ia32_insn.h \
+	src/third_party/libdisasm/ia32_invariant.c \
+	src/third_party/libdisasm/ia32_invariant.h \
+	src/third_party/libdisasm/ia32_modrm.c \
+	src/third_party/libdisasm/ia32_modrm.h \
+	src/third_party/libdisasm/ia32_opcode_tables.c \
+	src/third_party/libdisasm/ia32_opcode_tables.h \
+	src/third_party/libdisasm/ia32_operand.c \
+	src/third_party/libdisasm/ia32_operand.h \
+	src/third_party/libdisasm/ia32_reg.c \
+	src/third_party/libdisasm/ia32_reg.h \
+	src/third_party/libdisasm/ia32_settings.c \
+	src/third_party/libdisasm/ia32_settings.h \
+	src/third_party/libdisasm/libdis.h \
+	src/third_party/libdisasm/qword.h \
+	src/third_party/libdisasm/x86_disasm.c \
+	src/third_party/libdisasm/x86_format.c \
+	src/third_party/libdisasm/x86_imm.c \
+	src/third_party/libdisasm/x86_imm.h \
+	src/third_party/libdisasm/x86_insn.c \
+	src/third_party/libdisasm/x86_misc.c \
+	src/third_party/libdisasm/x86_operand_list.c \
+	src/third_party/libdisasm/x86_operand_list.h
+
+## Programs
+bin_PROGRAMS += \
+	src/processor/microdump_stackwalk \
+	src/processor/minidump_dump \
+	src/processor/minidump_stackwalk
+endif !DISABLE_PROCESSOR
+
+if LINUX_HOST
+EXTRA_PROGRAMS += \
+	src/client/linux/linux_dumper_unittest_helper
+CLEANFILES += \
+	src/client/linux/linux_dumper_unittest_helper
+
+if !DISABLE_TOOLS
+bin_PROGRAMS += \
+	src/tools/linux/core2md/core2md \
+	src/tools/linux/pid2md/pid2md \
+	src/tools/linux/dump_syms/dump_syms \
+	src/tools/linux/md2core/minidump-2-core \
+	src/tools/linux/symupload/minidump_upload \
+	src/tools/linux/symupload/sym_upload
+if X86_HOST
+bin_PROGRAMS += \
+	src/tools/mac/dump_syms/dump_syms_mac
+endif
+libexec_PROGRAMS += \
+	src/tools/linux/core_handler/core_handler
+endif
+endif LINUX_HOST
+
+
+## Tests
+if !DISABLE_PROCESSOR
+check_PROGRAMS += \
+	src/common/test_assembler_unittest \
+	src/common/dwarf/dwarf2reader_lineinfo_unittest \
+	src/common/dwarf/dwarf2reader_splitfunctions_unittest \
+	src/processor/address_map_unittest \
+	src/processor/basic_source_line_resolver_unittest \
+	src/processor/cfi_frame_info_unittest \
+	src/processor/contained_range_map_unittest \
+	src/processor/disassembler_x86_unittest \
+	src/processor/exploitability_unittest \
+	src/processor/fast_source_line_resolver_unittest \
+	src/processor/map_serializers_unittest \
+	src/processor/microdump_processor_unittest \
+	src/processor/minidump_processor_unittest \
+	src/processor/minidump_unittest \
+	src/processor/static_address_map_unittest \
+	src/processor/static_contained_range_map_unittest \
+	src/processor/static_map_unittest \
+	src/processor/static_range_map_unittest \
+	src/processor/pathname_stripper_unittest \
+	src/processor/postfix_evaluator_unittest \
+	src/processor/proc_maps_linux_unittest \
+	src/processor/range_map_truncate_lower_unittest \
+	src/processor/range_map_truncate_upper_unittest \
+	src/processor/range_map_unittest \
+	src/processor/stackwalker_amd64_unittest \
+	src/processor/stackwalker_arm_unittest \
+	src/processor/stackwalker_arm64_unittest \
+	src/processor/stackwalker_address_list_unittest \
+	src/processor/stackwalker_mips_unittest \
+	src/processor/stackwalker_mips64_unittest \
+	src/processor/stackwalker_x86_unittest \
+	src/processor/synth_minidump_unittest
+endif
+
+if LINUX_HOST
+EXTRA_PROGRAMS += \
+	src/client/linux/linux_client_unittest_shlib
+CLEANFILES += \
+	src/client/linux/linux_client_unittest_shlib
+
+check_PROGRAMS += \
+	src/client/linux/linux_client_unittest \
+	src/common/linux/google_crashdump_uploader_test
+
+if !DISABLE_TOOLS
+check_PROGRAMS += \
+	src/common/dumper_unittest \
+	src/tools/linux/md2core/minidump_2_core_unittest
+if X86_HOST
+check_PROGRAMS += \
+	src/common/mac/macho_reader_unittest
+endif
+endif
+endif LINUX_HOST
+
+if !DISABLE_PROCESSOR
+if SELFTEST
+check_PROGRAMS += \
+	src/processor/stackwalker_selftest
+endif SELFTEST
+endif !DISABLE_PROCESSOR
+
+if !DISABLE_PROCESSOR
+check_SCRIPTS = \
+	src/processor/microdump_stackwalk_test \
+	src/processor/microdump_stackwalk_machine_readable_test \
+	src/processor/minidump_dump_test \
+	src/processor/minidump_stackwalk_test \
+	src/processor/minidump_stackwalk_machine_readable_test
+endif
+
+TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
+
+if ANDROID_HOST
+# Since Autotools 1.2, tests are run through a special "test driver" script.
+# Unfortunately, it's not possible anymore to specify an alternative shell to
+# run them on connected devices, so use a slightly modified version of the
+# driver for Android.
+LOG_DRIVER = $(top_srcdir)/android/test-driver
+else
+# The default Autotools test driver script.
+if TESTS_AS_ROOT
+LOG_DRIVER = $(top_srcdir)/autotools/root-test-driver $(top_srcdir)/autotools/test-driver
+else
+LOG_DRIVER = $(top_srcdir)/autotools/test-driver
+endif !TESTS_AS_ROOT
+endif !ANDROID_HOST
+
+if LINUX_HOST
+src_client_linux_linux_dumper_unittest_helper_SOURCES = \
+	src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+src_client_linux_linux_dumper_unittest_helper_LDFLAGS=$(PTHREAD_CFLAGS)
+src_client_linux_linux_dumper_unittest_helper_CC=$(PTHREAD_CC)
+if ANDROID_HOST
+# On Android PTHREAD_CFLAGS is empty, and adding src/common/android/include
+# to the include path is necessary to build this program.
+src_client_linux_linux_dumper_unittest_helper_CXXFLAGS=$(AM_CXXFLAGS)
+else
+src_client_linux_linux_dumper_unittest_helper_CXXFLAGS=$(PTHREAD_CFLAGS)
+endif
+
+src_client_linux_linux_client_unittest_shlib_SOURCES = \
+	$(src_testing_libtesting_a_SOURCES) \
+	src/client/linux/handler/exception_handler_unittest.cc \
+	src/client/linux/microdump_writer/microdump_writer_unittest.cc \
+	src/client/linux/minidump_writer/directory_reader_unittest.cc \
+	src/client/linux/minidump_writer/cpu_set_unittest.cc \
+	src/client/linux/minidump_writer/line_reader_unittest.cc \
+	src/client/linux/minidump_writer/linux_core_dumper.cc \
+	src/client/linux/minidump_writer/linux_core_dumper_unittest.cc \
+	src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc \
+	src/client/linux/minidump_writer/minidump_writer_unittest.cc \
+	src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc \
+	src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc \
+	src/common/linux/elf_core_dump.cc \
+	src/common/linux/linux_libc_support_unittest.cc \
+	src/common/linux/tests/auto_testfile.h \
+	src/common/linux/tests/crash_generator.cc \
+	src/common/memory_allocator_unittest.cc \
+	src/common/tests/auto_tempdir.h \
+	src/common/tests/file_utils.cc \
+	src/common/tests/file_utils.h \
+	src/processor/basic_code_modules.cc \
+	src/processor/convert_old_arm64_context.cc \
+	src/processor/dump_context.cc \
+	src/processor/dump_object.cc \
+	src/processor/logging.cc \
+	src/processor/minidump.cc \
+	src/processor/pathname_stripper.cc \
+	src/processor/proc_maps_linux.cc
+if !HAVE_GETCONTEXT
+src_client_linux_linux_client_unittest_shlib_SOURCES += \
+	src/common/linux/breakpad_getcontext.S
+endif
+
+src_client_linux_linux_client_unittest_shlib_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_client_linux_linux_client_unittest_shlib_LDFLAGS = \
+	-shared \
+	-Wl,-h,linux_client_unittest_shlib
+src_client_linux_linux_client_unittest_shlib_LDADD = \
+	src/client/linux/crash_generation/crash_generation_client.o \
+	src/client/linux/dump_writer_common/thread_info.o \
+	src/client/linux/dump_writer_common/ucontext_reader.o \
+	src/client/linux/handler/exception_handler.o \
+	src/client/linux/handler/minidump_descriptor.o \
+	src/client/linux/log/log.o \
+	src/client/linux/microdump_writer/microdump_writer.o \
+	src/client/linux/minidump_writer/linux_dumper.o \
+	src/client/linux/minidump_writer/linux_ptrace_dumper.o \
+	src/client/linux/minidump_writer/minidump_writer.o \
+	src/client/minidump_file_writer.o \
+	src/common/convert_UTF.o \
+	src/common/md5.o \
+	src/common/linux/elfutils.o \
+	src/common/linux/file_id.o \
+	src/common/linux/guid_creator.o \
+	src/common/linux/linux_libc_support.o \
+	src/common/linux/memory_mapped_file.o \
+	src/common/linux/safe_readlink.o \
+	src/common/string_conversion.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+if !HAVE_GETCONTEXT
+src_client_linux_linux_client_unittest_shlib_SOURCES += \
+	src/common/linux/breakpad_getcontext_unittest.cc
+endif
+if ANDROID_HOST
+src_client_linux_linux_client_unittest_shlib_LDFLAGS += \
+	-llog -lm
+endif
+
+src_client_linux_linux_client_unittest_shlib_DEPENDENCIES = \
+	src/client/linux/linux_dumper_unittest_helper \
+	src/client/linux/libbreakpad_client.a \
+	$(TEST_DEPS) \
+	src/libbreakpad.a
+
+src_client_linux_linux_client_unittest_SOURCES =
+# The extra-long build id is for a test in minidump_writer_unittest.cc.
+src_client_linux_linux_client_unittest_LDFLAGS = \
+	-Wl,-rpath,'$$ORIGIN' \
+	-Wl,--build-id=0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+if ANDROID_HOST
+src_client_linux_linux_client_unittest_LDFLAGS += \
+        -llog
+endif
+
+src_client_linux_linux_client_unittest_LDADD = \
+	src/client/linux/linux_client_unittest_shlib \
+	$(TEST_LIBS)
+
+src_client_linux_linux_client_unittest_DEPENDENCIES = \
+	src/client/linux/linux_client_unittest_shlib
+
+if !DISABLE_TOOLS
+src_tools_linux_core2md_core2md_SOURCES = \
+	src/tools/linux/core2md/core2md.cc
+
+src_tools_linux_core2md_core2md_LDADD = \
+	src/client/linux/libbreakpad_client.a
+
+src_tools_linux_core_handler_core_handler_SOURCES = \
+	src/tools/linux/core_handler/core_handler.cc
+
+src_tools_linux_core_handler_core_handler_LDADD = \
+	src/client/linux/libbreakpad_client.a
+
+src_tools_linux_pid2md_pid2md_SOURCES = \
+	src/tools/linux/pid2md/pid2md.cc
+
+src_tools_linux_pid2md_pid2md_LDADD = \
+	src/client/linux/libbreakpad_client.a
+
+src_tools_linux_dump_syms_dump_syms_SOURCES = \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_range_list_handler.cc \
+	src/common/language.cc \
+	src/common/module.cc \
+	src/common/path_helper.cc \
+	src/common/stabs_reader.cc \
+	src/common/stabs_to_module.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc \
+	src/common/linux/crc32.cc \
+	src/common/linux/dump_symbols.cc \
+	src/common/linux/dump_symbols.h \
+	src/common/linux/elf_symbols_to_module.cc \
+	src/common/linux/elf_symbols_to_module.h \
+	src/common/linux/elfutils.cc \
+	src/common/linux/file_id.cc \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/safe_readlink.cc \
+	src/tools/linux/dump_syms/dump_syms.cc
+src_tools_linux_dump_syms_dump_syms_CXXFLAGS = \
+	$(RUST_DEMANGLE_CFLAGS)
+src_tools_linux_dump_syms_dump_syms_LDADD = \
+	$(RUST_DEMANGLE_LIBS)
+
+src_tools_linux_md2core_minidump_2_core_SOURCES = \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/path_helper.cc \
+	src/tools/linux/md2core/minidump-2-core.cc \
+	src/tools/linux/md2core/minidump_memory_range.h
+
+src_tools_linux_symupload_minidump_upload_SOURCES = \
+	src/common/linux/http_upload.cc \
+	src/tools/linux/symupload/minidump_upload.cc
+src_tools_linux_symupload_minidump_upload_LDADD = -ldl
+
+src_tools_linux_symupload_sym_upload_SOURCES = \
+	src/common/linux/http_upload.cc \
+	src/common/linux/http_upload.h \
+	src/common/linux/libcurl_wrapper.cc \
+	src/common/linux/libcurl_wrapper.h \
+	src/common/linux/symbol_collector_client.cc \
+	src/common/linux/symbol_collector_client.h \
+	src/common/linux/symbol_upload.cc \
+	src/common/linux/symbol_upload.h \
+	src/tools/linux/symupload/sym_upload.cc
+src_tools_linux_symupload_sym_upload_LDADD = -ldl
+
+src_tools_mac_dump_syms_dump_syms_mac_SOURCES = \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_range_list_handler.cc \
+	src/common/language.cc \
+	src/common/md5.cc \
+	src/common/module.cc \
+	src/common/path_helper.cc \
+	src/common/stabs_reader.cc \
+	src/common/stabs_to_module.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc \
+	src/common/mac/arch_utilities.cc \
+	src/common/mac/dump_syms.cc \
+	src/common/mac/dump_syms.h \
+	src/common/mac/file_id.cc \
+	src/common/mac/file_id.h \
+	src/common/mac/macho_id.cc \
+	src/common/mac/macho_id.h \
+	src/common/mac/macho_reader.cc \
+	src/common/mac/macho_reader.h \
+	src/common/mac/macho_utilities.cc \
+	src/common/mac/macho_utilities.h \
+	src/common/mac/macho_walker.cc \
+	src/common/mac/macho_walker.h \
+	src/tools/mac/dump_syms/dump_syms_tool.cc
+src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS= \
+	-I$(top_srcdir)/src/third_party/mac_headers \
+	$(RUST_DEMANGLE_CFLAGS) \
+	-DHAVE_MACH_O_NLIST_H
+src_tools_mac_dump_syms_dump_syms_mac_LDADD= \
+	$(RUST_DEMANGLE_LIBS)
+
+src_common_dumper_unittest_SOURCES = \
+	src/common/byte_cursor_unittest.cc \
+	src/common/convert_UTF.cc \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cfi_to_module_unittest.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_cu_to_module_unittest.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_line_to_module_unittest.cc \
+	src/common/dwarf_range_list_handler.cc \
+	src/common/language.cc \
+	src/common/memory_range_unittest.cc \
+	src/common/module.cc \
+	src/common/module_unittest.cc \
+	src/common/path_helper.cc \
+	src/common/stabs_reader.cc \
+	src/common/stabs_reader_unittest.cc \
+	src/common/stabs_to_module.cc \
+	src/common/stabs_to_module_unittest.cc \
+	src/common/string_conversion.cc \
+	src/common/string_conversion_unittest.cc \
+	src/common/test_assembler.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/bytereader.h \
+	src/common/dwarf/bytereader-inl.h \
+	src/common/dwarf/bytereader_unittest.cc \
+	src/common/dwarf/cfi_assembler.cc \
+	src/common/dwarf/cfi_assembler.h \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2diehandler_unittest.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/dwarf2reader.h \
+	src/common/dwarf/elf_reader.cc \
+	src/common/dwarf/elf_reader.h \
+	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
+	src/common/dwarf/dwarf2reader_die_unittest.cc \
+	src/common/dwarf/dwarf2reader_test_common.h \
+	src/common/linux/crc32.cc \
+	src/common/linux/dump_symbols.cc \
+	src/common/linux/dump_symbols_unittest.cc \
+	src/common/linux/elf_core_dump.cc \
+	src/common/linux/elf_core_dump_unittest.cc \
+	src/common/linux/elf_symbols_to_module.cc \
+	src/common/linux/elf_symbols_to_module_unittest.cc \
+	src/common/linux/elfutils.cc \
+	src/common/linux/file_id.cc \
+	src/common/linux/file_id_unittest.cc \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/memory_mapped_file_unittest.cc \
+	src/common/linux/safe_readlink.cc \
+	src/common/linux/safe_readlink_unittest.cc \
+	src/common/linux/synth_elf.cc \
+	src/common/linux/synth_elf_unittest.cc \
+	src/common/linux/tests/crash_generator.cc \
+	src/common/linux/tests/crash_generator.h \
+	src/common/testdata/func-line-pairing.h \
+	src/common/tests/file_utils.cc
+src_common_dumper_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS) \
+	$(RUST_DEMANGLE_CFLAGS) \
+	$(PTHREAD_CFLAGS)
+src_common_dumper_unittest_LDADD = \
+	$(TEST_LIBS) \
+	$(RUST_DEMANGLE_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_common_mac_macho_reader_unittest_SOURCES = \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/language.cc \
+	src/common/md5.cc \
+	src/common/module.cc \
+	src/common/path_helper.cc \
+	src/common/stabs_reader.cc \
+	src/common/stabs_to_module.cc \
+	src/common/test_assembler.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/cfi_assembler.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc \
+	src/common/mac/arch_utilities.cc \
+	src/common/mac/file_id.cc \
+	src/common/mac/macho_id.cc \
+	src/common/mac/macho_reader.cc \
+	src/common/mac/macho_reader_unittest.cc \
+	src/common/mac/macho_utilities.cc \
+	src/common/mac/macho_walker.cc \
+	src/common/tests/file_utils.cc
+src_common_mac_macho_reader_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS) \
+	-I$(top_srcdir)/src/third_party/mac_headers \
+	-DHAVE_MACH_O_NLIST_H \
+	$(PTHREAD_CFLAGS)
+src_common_mac_macho_reader_unittest_LDADD = \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+endif
+
+src_common_linux_google_crashdump_uploader_test_SOURCES = \
+	src/common/linux/google_crashdump_uploader.cc \
+	src/common/linux/google_crashdump_uploader_test.cc \
+	src/common/linux/libcurl_wrapper.cc
+src_common_linux_google_crashdump_uploader_test_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_common_linux_google_crashdump_uploader_test_LDADD = \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS) \
+	-ldl
+
+src_tools_linux_md2core_minidump_2_core_unittest_SOURCES = \
+	src/tools/linux/md2core/minidump_memory_range_unittest.cc
+src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_tools_linux_md2core_minidump_2_core_unittest_LDADD = \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+endif LINUX_HOST
+
+if !DISABLE_PROCESSOR
+src_processor_address_map_unittest_SOURCES = \
+	src/processor/address_map_unittest.cc
+src_processor_address_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o
+
+src_processor_basic_source_line_resolver_unittest_SOURCES = \
+	src/processor/basic_source_line_resolver_unittest.cc
+src_processor_basic_source_line_resolver_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_basic_source_line_resolver_unittest_LDADD = \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/pathname_stripper.o \
+	src/processor/logging.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/tokenize.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_cfi_frame_info_unittest_SOURCES = \
+	src/processor/cfi_frame_info_unittest.cc
+src_processor_cfi_frame_info_unittest_LDADD = \
+	src/processor/cfi_frame_info.o \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_cfi_frame_info_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_contained_range_map_unittest_SOURCES = \
+	src/processor/contained_range_map_unittest.cc
+src_processor_contained_range_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o
+
+src_processor_exploitability_unittest_SOURCES = \
+	src/processor/exploitability_unittest.cc
+src_processor_exploitability_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_exploitability_unittest_LDADD = \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/minidump_processor.o \
+	src/processor/process_state.o \
+	src/processor/disassembler_x86.o \
+	src/processor/exploitability.o \
+	src/processor/exploitability_linux.o \
+	src/processor/exploitability_win.o \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/logging.o \
+	src/processor/minidump.o \
+	src/processor/pathname_stripper.o \
+	src/processor/proc_maps_linux.o \
+	src/processor/simple_symbol_supplier.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_cpu.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/symbolic_constants_win.o \
+	src/processor/tokenize.o \
+	src/third_party/libdisasm/libdisasm.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_disassembler_x86_unittest_SOURCES = \
+	src/processor/disassembler_x86_unittest.cc
+src_processor_disassembler_x86_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_disassembler_x86_unittest_LDADD = \
+	src/processor/disassembler_x86.o \
+	src/third_party/libdisasm/libdisasm.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_fast_source_line_resolver_unittest_SOURCES = \
+	src/processor/fast_source_line_resolver_unittest.cc
+src_processor_fast_source_line_resolver_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_fast_source_line_resolver_unittest_LDADD = \
+	src/processor/fast_source_line_resolver.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/module_comparer.o \
+	src/processor/module_serializer.o \
+	src/processor/pathname_stripper.o \
+	src/processor/logging.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/tokenize.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_map_serializers_unittest_SOURCES = \
+	src/processor/map_serializers_unittest.cc
+src_processor_map_serializers_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_map_serializers_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_microdump_processor_unittest_SOURCES = \
+	src/processor/microdump_processor_unittest.cc
+src_processor_microdump_processor_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_microdump_processor_unittest_LDADD = \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+        src/processor/convert_old_arm64_context.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/logging.o \
+	src/processor/microdump.o \
+	src/processor/microdump_processor.o \
+	src/processor/pathname_stripper.o \
+	src/processor/process_state.o \
+	src/processor/simple_symbol_supplier.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/tokenize.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_minidump_processor_unittest_SOURCES = \
+	src/processor/minidump_processor_unittest.cc
+src_processor_minidump_processor_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_minidump_processor_unittest_LDADD = \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/disassembler_x86.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/exploitability.o \
+	src/processor/exploitability_linux.o \
+	src/processor/exploitability_win.o \
+	src/processor/logging.o \
+	src/processor/minidump_processor.o \
+	src/processor/minidump.o \
+	src/processor/pathname_stripper.o \
+	src/processor/process_state.o \
+	src/processor/proc_maps_linux.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_cpu.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/symbolic_constants_win.o \
+	src/processor/tokenize.o \
+	src/third_party/libdisasm/libdisasm.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_minidump_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/minidump_unittest.cc \
+	src/processor/synth_minidump.cc
+src_processor_minidump_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_minidump_unittest_LDADD = \
+	src/processor/basic_code_modules.o \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/logging.o \
+	src/processor/minidump.o \
+	src/processor/pathname_stripper.o \
+	src/processor/proc_maps_linux.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_proc_maps_linux_unittest_SOURCES = \
+	src/processor/proc_maps_linux.cc \
+	src/processor/proc_maps_linux_unittest.cc
+src_processor_proc_maps_linux_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_proc_maps_linux_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	src/third_party/libdisasm/libdisasm.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_static_address_map_unittest_SOURCES = \
+	src/processor/static_address_map_unittest.cc
+src_processor_static_address_map_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_static_address_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_static_contained_range_map_unittest_SOURCES = \
+	src/processor/static_contained_range_map_unittest.cc
+src_processor_static_contained_range_map_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_static_contained_range_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_static_map_unittest_SOURCES = \
+	src/processor/static_map_unittest.cc
+src_processor_static_map_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_static_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_static_range_map_unittest_SOURCES = \
+	src/processor/static_range_map_unittest.cc
+src_processor_static_range_map_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_static_range_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_pathname_stripper_unittest_SOURCES = \
+	src/processor/pathname_stripper_unittest.cc
+src_processor_pathname_stripper_unittest_LDADD = \
+	src/processor/pathname_stripper.o \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_postfix_evaluator_unittest_SOURCES = \
+	src/processor/postfix_evaluator_unittest.cc
+src_processor_postfix_evaluator_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_range_map_truncate_lower_unittest_SOURCES = \
+	src/processor/range_map_truncate_lower_unittest.cc
+src_processor_range_map_truncate_lower_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_range_map_truncate_lower_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_range_map_truncate_upper_unittest_SOURCES = \
+	src/processor/range_map_truncate_upper_unittest.cc
+src_processor_range_map_truncate_upper_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_range_map_truncate_upper_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_range_map_unittest_SOURCES = \
+	src/processor/range_map_unittest.cc
+src_processor_range_map_unittest_LDADD = \
+	src/processor/logging.o \
+	src/processor/pathname_stripper.o \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_stackwalker_selftest_SOURCES = \
+	src/processor/stackwalker_selftest.cc
+src_processor_stackwalker_selftest_LDADD = \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+	src/processor/disassembler_x86.o \
+	src/processor/exploitability.o \
+	src/processor/exploitability_linux.o \
+	src/processor/exploitability_win.o \
+	src/processor/logging.o \
+	src/processor/minidump.o \
+	src/processor/pathname_stripper.o \
+	src/processor/proc_maps_linux.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_cpu.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/tokenize.o \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_processor_stackwalker_amd64_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_amd64_unittest.cc
+src_processor_stackwalker_amd64_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_amd64_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_arm_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_arm_unittest.cc
+src_processor_stackwalker_arm_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_arm_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_arm64_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_arm64_unittest.cc
+src_processor_stackwalker_arm64_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_arm64_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_address_list_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_address_list_unittest.cc
+src_processor_stackwalker_address_list_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_address_list_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_mips_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_mips_unittest.cc
+src_processor_stackwalker_mips_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_mips_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_mips64_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_mips64_unittest.cc
+src_processor_stackwalker_mips64_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_mips64_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_stackwalker_x86_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_x86_unittest.cc
+src_processor_stackwalker_x86_unittest_LDADD = \
+	src/libbreakpad.a \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+src_processor_stackwalker_x86_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+src_processor_synth_minidump_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/common/test_assembler.h \
+	src/processor/synth_minidump_unittest.cc \
+	src/processor/synth_minidump.cc \
+	src/processor/synth_minidump.h
+src_processor_synth_minidump_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_processor_synth_minidump_unittest_LDADD = \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_common_test_assembler_unittest_SOURCES = \
+	src/common/test_assembler.cc \
+	src/common/test_assembler.h \
+	src/common/test_assembler_unittest.cc
+src_common_test_assembler_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_common_test_assembler_unittest_LDADD = \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_common_dwarf_dwarf2reader_lineinfo_unittest_SOURCES = \
+	src/common/dwarf/dwarf2reader.h \
+	src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_common_dwarf_dwarf2reader_lineinfo_unittest_LDADD = \
+  src/common/dwarf/bytereader.o \
+  src/common/dwarf/dwarf2reader.o \
+  src/common/dwarf/elf_reader.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+src_common_dwarf_dwarf2reader_splitfunctions_unittest_SOURCES = \
+	src/common/dwarf/dwarf2reader.h \
+	src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS = \
+	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+src_common_dwarf_dwarf2reader_splitfunctions_unittest_LDADD = \
+  src/common/dwarf/bytereader.o \
+  src/common/dwarf/dwarf2reader.o \
+  src/common/dwarf/elf_reader.o \
+	$(TEST_LIBS) \
+	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+## Non-installables
+noinst_PROGRAMS =
+noinst_SCRIPTS = $(check_SCRIPTS)
+
+src_processor_minidump_dump_SOURCES = \
+	src/processor/minidump_dump.cc
+src_processor_minidump_dump_LDADD = \
+	src/processor/basic_code_modules.o \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/logging.o \
+	src/processor/minidump.o \
+	src/processor/pathname_stripper.o \
+	src/processor/proc_maps_linux.o
+
+src_processor_microdump_stackwalk_SOURCES = \
+	src/processor/microdump_stackwalk.cc
+src_processor_microdump_stackwalk_LDADD = \
+	src/common/path_helper.o \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/disassembler_x86.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/logging.o \
+	src/processor/microdump.o \
+	src/processor/microdump_processor.o \
+	src/processor/pathname_stripper.o \
+	src/processor/process_state.o \
+	src/processor/simple_symbol_supplier.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_cpu.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalk_common.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/tokenize.o \
+	src/third_party/libdisasm/libdisasm.a
+
+src_processor_minidump_stackwalk_SOURCES = \
+	src/processor/minidump_stackwalk.cc
+src_processor_minidump_stackwalk_LDADD = \
+	src/common/path_helper.o \
+	src/processor/basic_code_modules.o \
+	src/processor/basic_source_line_resolver.o \
+	src/processor/call_stack.o \
+	src/processor/cfi_frame_info.o \
+	src/processor/convert_old_arm64_context.o \
+	src/processor/disassembler_x86.o \
+	src/processor/dump_context.o \
+	src/processor/dump_object.o \
+	src/processor/exploitability.o \
+	src/processor/exploitability_linux.o \
+	src/processor/exploitability_win.o \
+	src/processor/logging.o \
+	src/processor/minidump.o \
+	src/processor/minidump_processor.o \
+	src/processor/pathname_stripper.o \
+	src/processor/process_state.o \
+	src/processor/proc_maps_linux.o \
+	src/processor/simple_symbol_supplier.o \
+	src/processor/source_line_resolver_base.o \
+	src/processor/stack_frame_cpu.o \
+	src/processor/stack_frame_symbolizer.o \
+	src/processor/stackwalk_common.o \
+	src/processor/stackwalker.o \
+	src/processor/stackwalker_address_list.o \
+	src/processor/stackwalker_amd64.o \
+	src/processor/stackwalker_arm.o \
+	src/processor/stackwalker_arm64.o \
+	src/processor/stackwalker_mips.o \
+	src/processor/stackwalker_ppc.o \
+	src/processor/stackwalker_ppc64.o \
+	src/processor/stackwalker_sparc.o \
+	src/processor/stackwalker_x86.o \
+	src/processor/symbolic_constants_win.o \
+	src/processor/tokenize.o \
+	src/third_party/libdisasm/libdisasm.a
+
+endif !DISABLE_PROCESSOR
+
+## Additional files to be included in a source distribution
+##
+## find src/client src/common src/processor/testdata src/tools \
+##     -type f \! -path '*/.svn/*' -print | sort | \
+##     sed -e s/'^\(.*\)$'/'\t\1 \\'/
+EXTRA_DIST = \
+	$(SCRIPTS) \
+	src/client/linux/data/linux-gate-amd.sym \
+	src/client/linux/data/linux-gate-intel.sym \
+	src/client/mac/handler/breakpad_nlist_64.cc \
+	src/client/mac/handler/breakpad_nlist_64.h \
+	src/client/mac/handler/dynamic_images.cc \
+	src/client/mac/handler/dynamic_images.h \
+	src/client/mac/handler/exception_handler.cc \
+	src/client/mac/handler/exception_handler.h \
+	src/client/mac/handler/mach_vm_compat.h \
+	src/client/mac/handler/minidump_generator.cc \
+	src/client/mac/handler/minidump_generator.h \
+	src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj \
+	src/client/mac/handler/minidump_tests32-Info.plist \
+	src/client/mac/handler/minidump_tests64-Info.plist \
+	src/client/mac/handler/obj-cTestCases-Info.plist \
+	src/client/mac/handler/protected_memory_allocator.cc \
+	src/client/mac/handler/protected_memory_allocator.h \
+	src/client/mac/handler/ucontext_compat.h \
+	src/client/mac/handler/testcases/testdata/dump_syms_i386_breakpad.sym \
+	src/client/mac/tests/BreakpadFramework_Test.mm \
+	src/client/mac/tests/crash_generation_server_test.cc \
+	src/client/mac/tests/exception_handler_test.cc \
+	src/client/mac/tests/minidump_generator_test.cc \
+	src/client/mac/tests/minidump_generator_test_helper.cc \
+	src/client/mac/tests/spawn_child_process.h \
+	src/client/mac/tests/testlogging.h \
+	src/client/minidump_file_writer_unittest.cc \
+	src/client/solaris/handler/Makefile \
+	src/client/solaris/handler/exception_handler.cc \
+	src/client/solaris/handler/exception_handler.h \
+	src/client/solaris/handler/exception_handler_test.cc \
+	src/client/solaris/handler/minidump_generator.cc \
+	src/client/solaris/handler/minidump_generator.h \
+	src/client/solaris/handler/minidump_test.cc \
+	src/client/solaris/handler/solaris_lwp.cc \
+	src/client/solaris/handler/solaris_lwp.h \
+	src/client/windows/breakpad_client.gyp \
+	src/client/windows/handler/exception_handler.cc \
+	src/client/windows/handler/exception_handler.h \
+	src/client/windows/handler/exception_handler.gyp \
+	src/client/windows/sender/crash_report_sender.cc \
+	src/client/windows/sender/crash_report_sender.h \
+	src/client/windows/sender/crash_report_sender.gyp \
+	src/common/dwarf/dwarf2diehandler.h \
+	src/common/dwarf/dwarf2enums.h \
+	src/common/dwarf/line_state_machine.h \
+	src/common/dwarf/types.h \
+	src/common/mac/arch_utilities.h \
+	src/common/mac/byteswap.h \
+	src/common/mac/HTTPMultipartUpload.h \
+	src/common/mac/HTTPMultipartUpload.m \
+	src/common/mac/string_utilities.cc \
+	src/common/mac/string_utilities.h \
+	src/common/mac/super_fat_arch.h \
+	src/common/scoped_ptr.h \
+	src/common/solaris/dump_symbols.cc \
+	src/common/solaris/dump_symbols.h \
+	src/common/solaris/file_id.cc \
+	src/common/solaris/file_id.h \
+	src/common/solaris/guid_creator.cc \
+	src/common/solaris/guid_creator.h \
+	src/common/solaris/message_output.h \
+	src/common/windows/guid_string.cc \
+	src/common/windows/guid_string.h \
+	src/common/windows/http_upload.cc \
+	src/common/windows/http_upload.h \
+	src/common/windows/pdb_source_line_writer.cc \
+	src/common/windows/pdb_source_line_writer.h \
+	src/common/windows/string_utils-inl.h \
+	src/common/windows/string_utils.cc \
+	src/processor/microdump_stackwalk_test_vars \
+	src/processor/stackwalk_common.cc \
+	src/processor/stackwalk_common.h \
+	src/processor/stackwalker_selftest_sol.s \
+	src/processor/testdata/ascii_read_av_block_write.dmp \
+	src/processor/testdata/ascii_read_av_clobber_write.dmp \
+	src/processor/testdata/ascii_read_av_conditional.dmp \
+	src/processor/testdata/ascii_read_av.dmp \
+	src/processor/testdata/ascii_read_av_then_jmp.dmp \
+	src/processor/testdata/ascii_read_av_xchg_write.dmp \
+	src/processor/testdata/ascii_write_av_arg_to_call.dmp \
+	src/processor/testdata/ascii_write_av.dmp \
+	src/processor/testdata/exec_av_on_stack.dmp \
+	src/processor/testdata/linux_divide_by_zero.dmp \
+	src/processor/testdata/linux_executable_heap.dmp \
+	src/processor/testdata/linux_executable_stack.dmp \
+	src/processor/testdata/linux_inside_module_exe_region1.dmp \
+	src/processor/testdata/linux_inside_module_exe_region2.dmp \
+	src/processor/testdata/linux_jmp_to_0.dmp \
+	src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp \
+	src/processor/testdata/linux_null_dereference.dmp \
+	src/processor/testdata/linux_null_read_av.dmp \
+	src/processor/testdata/linux_outside_module.dmp \
+	src/processor/testdata/linux_overflow.dmp \
+	src/processor/testdata/linux_raise_sigabrt.dmp \
+	src/processor/testdata/linux_stack_pointer_in_module.dmp \
+	src/processor/testdata/linux_stack_pointer_in_stack.dmp \
+	src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp \
+	src/processor/testdata/linux_stacksmash.dmp \
+	src/processor/testdata/linux_write_to_nonwritable_module.dmp \
+	src/processor/testdata/linux_write_to_nonwritable_region_math.dmp \
+	src/processor/testdata/linux_write_to_outside_module.dmp \
+	src/processor/testdata/linux_write_to_outside_module_via_math.dmp \
+	src/processor/testdata/linux_write_to_under_4k.dmp \
+	src/processor/testdata/microdump-arm64.dmp \
+	src/processor/testdata/microdump-arm.dmp \
+	src/processor/testdata/microdump-mips32.dmp \
+	src/processor/testdata/microdump-mips64.dmp \
+	src/processor/testdata/microdump-multiple.dmp \
+	src/processor/testdata/microdump.stackwalk-arm64.out \
+	src/processor/testdata/microdump.stackwalk-arm.out \
+	src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out \
+	src/processor/testdata/microdump.stackwalk.machine_readable-arm.out \
+	src/processor/testdata/microdump-withcrashreason.dmp \
+	src/processor/testdata/microdump-x86.dmp \
+	src/processor/testdata/minidump_32bit_crash_addr.dmp \
+	src/processor/testdata/minidump2.dmp \
+	src/processor/testdata/minidump2.dump.out \
+	src/processor/testdata/minidump2.stackwalk.machine_readable.out \
+	src/processor/testdata/minidump2.stackwalk.out \
+	src/processor/testdata/module0.out \
+	src/processor/testdata/module1.out \
+	src/processor/testdata/module2.out \
+	src/processor/testdata/module3_bad.out \
+	src/processor/testdata/module4_bad.out \
+	src/processor/testdata/null_read_av.dmp \
+	src/processor/testdata/null_write_av.dmp \
+	src/processor/testdata/read_av_clobber_write.dmp \
+	src/processor/testdata/read_av_conditional.dmp \
+	src/processor/testdata/read_av_non_null.dmp \
+	src/processor/testdata/stack_exhaustion.dmp \
+	src/processor/testdata/write_av_non_null.dmp \
+	src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym \
+	src/processor/testdata/symbols/ld-2.13.so/C32AD7E235EA6112E02A5B9D6219C4850/ld-2.13.so.sym \
+	src/processor/testdata/symbols/libc-2.13.so/F4F8DFCD5A5FB5A7CE64717E9E6AE3890/libc-2.13.so.sym \
+	src/processor/testdata/symbols/libgcc_s.so.1/18B180F90887D8F8B5C35D185444AF4C0/libgcc_s.so.1.sym \
+	src/processor/testdata/symbols/microdump/breakpad_unittests/D6D1FEC9A15DE7F38A236898871A2E770/breakpad_unittests.sym \
+	src/processor/testdata/symbols/microdump/breakpad_unittests/DA7778FB66018A4E9B4110ED06E730D00/breakpad_unittests.sym \
+	src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym \
+	src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym \
+	src/processor/testdata/symbols/null_read_av/7B7D1968FF0D47AE4366E9C3A7E1B6750/null_read_av.sym \
+	src/processor/testdata/symbols/overflow/B0E1FC01EF48E39CAF5C881D2DF0C3840/overflow.sym \
+	src/processor/testdata/symbols/test_app.pdb/5A9832E5287241C1838ED98914E9B7FF1/test_app.sym \
+	src/processor/testdata/test_app.cc \
+	src/testing/googletest/include/gtest/gtest.h \
+	src/testing/googletest/include/gtest/gtest-death-test.h \
+	src/testing/googletest/include/gtest/gtest-matchers.h \
+	src/testing/googletest/include/gtest/gtest-message.h \
+	src/testing/googletest/include/gtest/gtest-param-test.h \
+	src/testing/googletest/include/gtest/gtest-printers.h \
+	src/testing/googletest/include/gtest/gtest-spi.h \
+	src/testing/googletest/include/gtest/gtest-test-part.h \
+	src/testing/googletest/include/gtest/gtest-typed-test.h \
+	src/testing/googletest/include/gtest/gtest_pred_impl.h \
+	src/testing/googletest/include/gtest/gtest_prod.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest-port.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest-printers.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest.h \
+	src/testing/googletest/include/gtest/internal/gtest-death-test-internal.h \
+	src/testing/googletest/include/gtest/internal/gtest-filepath.h \
+	src/testing/googletest/include/gtest/internal/gtest-internal.h \
+	src/testing/googletest/include/gtest/internal/gtest-param-util-generated.h \
+	src/testing/googletest/include/gtest/internal/gtest-param-util.h \
+	src/testing/googletest/include/gtest/internal/gtest-port-arch.h \
+	src/testing/googletest/include/gtest/internal/gtest-port.h \
+	src/testing/googletest/include/gtest/internal/gtest-string.h \
+	src/testing/googletest/include/gtest/internal/gtest-type-util.h \
+	src/testing/googletest/src/gtest.cc \
+	src/testing/googletest/src/gtest-death-test.cc \
+	src/testing/googletest/src/gtest-filepath.cc \
+	src/testing/googletest/src/gtest-internal-inl.h \
+	src/testing/googletest/src/gtest-matchers.cc \
+	src/testing/googletest/src/gtest-port.cc \
+	src/testing/googletest/src/gtest-printers.cc \
+	src/testing/googletest/src/gtest-test-part.cc \
+	src/testing/googletest/src/gtest-typed-test.cc \
+	src/testing/googlemock/include/gmock/gmock.h \
+	src/testing/googlemock/include/gmock/gmock-actions.h \
+	src/testing/googlemock/include/gmock/gmock-cardinalities.h \
+	src/testing/googlemock/include/gmock/gmock-function-mocker.h \
+	src/testing/googlemock/include/gmock/gmock-generated-actions.h \
+	src/testing/googlemock/include/gmock/gmock-generated-function-mockers.h \
+	src/testing/googlemock/include/gmock/gmock-generated-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-more-actions.h \
+	src/testing/googlemock/include/gmock/gmock-more-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-nice-strict.h \
+	src/testing/googlemock/include/gmock/gmock-spec-builders.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-generated-actions.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-matchers.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-port.h \
+	src/testing/googlemock/include/gmock/internal/gmock-internal-utils.h \
+	src/testing/googlemock/include/gmock/internal/gmock-port.h \
+	src/testing/googlemock/include/gmock/internal/gmock-pp.h \
+	src/testing/googlemock/src/gmock.cc \
+	src/testing/googlemock/src/gmock-cardinalities.cc \
+	src/testing/googlemock/src/gmock-internal-utils.cc \
+	src/testing/googlemock/src/gmock-matchers.cc \
+	src/testing/googlemock/src/gmock-spec-builders.cc \
+	src/testing/googlemock/src/gmock_main.cc \
+	src/third_party/curl/COPYING \
+	src/third_party/curl/curlbuild.h \
+	src/third_party/curl/curl.h \
+	src/third_party/curl/curlrules.h \
+	src/third_party/curl/curlver.h \
+	src/third_party/curl/easy.h \
+	src/third_party/curl/mprintf.h \
+	src/third_party/curl/multi.h \
+	src/third_party/curl/stdcheaders.h \
+	src/third_party/curl/typecheck-gcc.h \
+	src/third_party/curl/types.h \
+	src/third_party/mac_headers/architecture/byte_order.h \
+	src/third_party/mac_headers/i386/_types.h \
+	src/third_party/mac_headers/mach/boolean.h \
+	src/third_party/mac_headers/mach/i386/boolean.h \
+	src/third_party/mac_headers/mach/i386/vm_param.h \
+	src/third_party/mac_headers/mach/i386/vm_types.h \
+	src/third_party/mac_headers/mach/machine/boolean.h \
+	src/third_party/mac_headers/mach/machine.h \
+	src/third_party/mac_headers/mach/machine/thread_state.h \
+	src/third_party/mac_headers/mach/machine/thread_status.h \
+	src/third_party/mac_headers/mach/machine/vm_types.h \
+	src/third_party/mac_headers/mach-o/arch.h \
+	src/third_party/mac_headers/mach-o/fat.h \
+	src/third_party/mac_headers/mach-o/loader.h \
+	src/third_party/mac_headers/mach-o/nlist.h \
+	src/third_party/mac_headers/mach/thread_status.h \
+	src/third_party/mac_headers/mach/vm_prot.h \
+	src/third_party/mac_headers/README \
+	src/third_party/musl/README \
+	src/third_party/musl/COPYRIGHT \
+	src/third_party/musl/README.breakpad \
+	src/third_party/musl/VERSION \
+	src/third_party/musl/include/elf.h \
+	src/tools/mac/crash_report/crash_report.mm \
+	src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj \
+	src/tools/mac/crash_report/on_demand_symbol_supplier.h \
+	src/tools/mac/crash_report/on_demand_symbol_supplier.mm \
+	src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj \
+	src/tools/mac/dump_syms/dump_syms_tool.cc \
+	src/tools/mac/symupload/minidump_upload.m \
+	src/tools/mac/symupload/symupload.m \
+	src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj \
+	src/tools/solaris/dump_syms/Makefile \
+	src/tools/solaris/dump_syms/dump_syms.cc \
+	src/tools/solaris/dump_syms/run_regtest.sh \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.stabs \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym \
+	src/tools/windows/converter/ms_symbol_server_converter.cc \
+	src/tools/windows/converter/ms_symbol_server_converter.h \
+	src/tools/windows/converter/ms_symbol_server_converter.gyp \
+	src/tools/windows/dump_syms/dump_syms.cc \
+	src/tools/windows/dump_syms/dump_syms.gyp \
+	src/tools/windows/dump_syms/run_regtest.sh \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest64.sym \
+	src/tools/windows/dump_syms/testdata/omap_reorder_bbs.sym \
+	src/tools/windows/dump_syms/testdata/omap_reorder_funcs.sym \
+	src/tools/windows/dump_syms/testdata/omap_stretched.sym \
+	src/tools/windows/dump_syms/testdata/omap_stretched_filled.sym \
+	src/tools/windows/symupload/symupload.cc \
+	src/tools/windows/symupload/symupload.gyp
+
+mostlyclean-local:
+	-find src -name '*.dwo' -exec rm -f {} +
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..24cbfc2
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,10085 @@
+# Makefile.in generated by automake 1.16.2 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (c) 2011, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+
+# This allows using fixed NDK headers when building for Android.
+# This is only necessary for building the unit tests until GTest is upgraded
+# to a future version.
+@ANDROID_HOST_TRUE@am__append_1 =  \
+@ANDROID_HOST_TRUE@	-I$(top_srcdir)/src/common/android/include \
+@ANDROID_HOST_TRUE@	-I$(top_srcdir)/src/common/android/testing/include
+
+# Build as PIC on Linux, for linux_client_unittest_shlib
+@LINUX_HOST_TRUE@am__append_2 = -fPIC
+@LINUX_HOST_TRUE@am__append_3 = -fPIC
+libexec_PROGRAMS = $(am__EXEEXT_10)
+bin_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4)
+check_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \
+	$(am__EXEEXT_8) $(am__EXEEXT_9)
+EXTRA_PROGRAMS = $(am__EXEEXT_1)
+@DISABLE_PROCESSOR_FALSE@am__append_4 = src/libbreakpad.a
+@DISABLE_PROCESSOR_FALSE@am__append_5 = breakpad.pc
+@DISABLE_PROCESSOR_FALSE@am__append_6 = src/third_party/libdisasm/libdisasm.a
+@LINUX_HOST_TRUE@am__append_7 = src/client/linux/libbreakpad_client.a
+@LINUX_HOST_TRUE@am__append_8 = breakpad-client.pc
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@am__append_9 = \
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@	src/common/linux/breakpad_getcontext.S
+
+@DISABLE_PROCESSOR_FALSE@am__append_10 = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_stackwalk \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_dump \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk
+
+@LINUX_HOST_TRUE@am__append_11 = src/client/linux/linux_dumper_unittest_helper \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest_shlib
+@LINUX_HOST_TRUE@am__append_12 = src/client/linux/linux_dumper_unittest_helper \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest_shlib
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__append_13 = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/core2md/core2md \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/pid2md/pid2md \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/dump_syms/dump_syms \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump-2-core \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/minidump_upload \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/sym_upload
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@am__append_14 = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@	src/tools/mac/dump_syms/dump_syms_mac
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__append_15 = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/core_handler/core_handler
+
+@DISABLE_PROCESSOR_FALSE@am__append_16 = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_lineinfo_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_splitfunctions_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/address_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/contained_range_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/map_serializers_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_address_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_contained_range_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_range_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_lower_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_upper_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips64_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86_unittest \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump_unittest
+
+@LINUX_HOST_TRUE@am__append_17 = \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader_test
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__append_18 = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump_2_core_unittest
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@am__append_19 = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@	src/common/mac/macho_reader_unittest
+
+@DISABLE_PROCESSOR_FALSE@@SELFTEST_TRUE@am__append_20 = \
+@DISABLE_PROCESSOR_FALSE@@SELFTEST_TRUE@	src/processor/stackwalker_selftest
+
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@am__append_21 = src/common/linux/breakpad_getcontext.S \
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@	src/common/linux/breakpad_getcontext_unittest.cc
+@ANDROID_HOST_TRUE@@LINUX_HOST_TRUE@am__append_22 = \
+@ANDROID_HOST_TRUE@@LINUX_HOST_TRUE@	-llog -lm
+
+@ANDROID_HOST_TRUE@@LINUX_HOST_TRUE@am__append_23 = \
+@ANDROID_HOST_TRUE@@LINUX_HOST_TRUE@        -llog
+
+noinst_PROGRAMS =
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \
+	$(top_srcdir)/m4/ax_append_flag.m4 \
+	$(top_srcdir)/m4/ax_check_compile_flag.m4 \
+	$(top_srcdir)/m4/ax_check_define.m4 \
+	$(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
+	$(top_srcdir)/m4/ax_pthread.m4 \
+	$(top_srcdir)/m4/ax_require_defined.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(dist_doc_DATA) $(includec_HEADERS) \
+	$(am__includecl_HEADERS_DIST) $(am__includeclc_HEADERS_DIST) \
+	$(am__includecldwc_HEADERS_DIST) \
+	$(am__includeclh_HEADERS_DIST) $(am__includeclm_HEADERS_DIST) \
+	$(includegbc_HEADERS) $(am__includelss_HEADERS_DIST) \
+	$(includep_HEADERS) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES = breakpad.pc breakpad-client.pc
+CONFIG_CLEAN_VPATH_FILES =
+@LINUX_HOST_TRUE@am__EXEEXT_1 = src/client/linux/linux_dumper_unittest_helper$(EXEEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest_shlib$(EXEEXT)
+@DISABLE_PROCESSOR_FALSE@am__EXEEXT_2 = src/processor/microdump_stackwalk$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_dump$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk$(EXEEXT)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__EXEEXT_3 = src/tools/linux/core2md/core2md$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/pid2md/pid2md$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/dump_syms/dump_syms$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump-2-core$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/minidump_upload$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/sym_upload$(EXEEXT)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@am__EXEEXT_4 = src/tools/mac/dump_syms/dump_syms_mac$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
+	"$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" \
+	"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includecdir)" \
+	"$(DESTDIR)$(includecldir)" "$(DESTDIR)$(includeclcdir)" \
+	"$(DESTDIR)$(includecldwcdir)" "$(DESTDIR)$(includeclhdir)" \
+	"$(DESTDIR)$(includeclmdir)" "$(DESTDIR)$(includegbcdir)" \
+	"$(DESTDIR)$(includelssdir)" "$(DESTDIR)$(includepdir)"
+@DISABLE_PROCESSOR_FALSE@am__EXEEXT_5 = src/common/test_assembler_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_lineinfo_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_splitfunctions_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/address_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/contained_range_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/map_serializers_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_address_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_contained_range_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_range_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_lower_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_upper_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips64_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86_unittest$(EXEEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump_unittest$(EXEEXT)
+@LINUX_HOST_TRUE@am__EXEEXT_6 = src/client/linux/linux_client_unittest$(EXEEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader_test$(EXEEXT)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__EXEEXT_7 = src/common/dumper_unittest$(EXEEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump_2_core_unittest$(EXEEXT)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@@X86_HOST_TRUE@am__EXEEXT_8 = src/common/mac/macho_reader_unittest$(EXEEXT)
+@DISABLE_PROCESSOR_FALSE@@SELFTEST_TRUE@am__EXEEXT_9 = src/processor/stackwalker_selftest$(EXEEXT)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am__EXEEXT_10 = src/tools/linux/core_handler/core_handler$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) $(noinst_PROGRAMS)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
+ARFLAGS = cru
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
+src_client_linux_libbreakpad_client_a_AR = $(AR) $(ARFLAGS)
+src_client_linux_libbreakpad_client_a_LIBADD =
+am__src_client_linux_libbreakpad_client_a_SOURCES_DIST =  \
+	src/client/linux/crash_generation/crash_generation_client.cc \
+	src/client/linux/crash_generation/crash_generation_server.cc \
+	src/client/linux/dump_writer_common/thread_info.cc \
+	src/client/linux/dump_writer_common/ucontext_reader.cc \
+	src/client/linux/handler/exception_handler.cc \
+	src/client/linux/handler/exception_handler.h \
+	src/client/linux/handler/minidump_descriptor.cc \
+	src/client/linux/handler/minidump_descriptor.h \
+	src/client/linux/log/log.cc src/client/linux/log/log.h \
+	src/client/linux/microdump_writer/microdump_writer.cc \
+	src/client/linux/microdump_writer/microdump_writer.h \
+	src/client/linux/minidump_writer/linux_core_dumper.cc \
+	src/client/linux/minidump_writer/linux_dumper.cc \
+	src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
+	src/client/linux/minidump_writer/minidump_writer.cc \
+	src/client/minidump_file_writer-inl.h \
+	src/client/minidump_file_writer.cc \
+	src/client/minidump_file_writer.h src/common/convert_UTF.cc \
+	src/common/convert_UTF.h src/common/md5.cc src/common/md5.h \
+	src/common/string_conversion.cc src/common/string_conversion.h \
+	src/common/linux/elf_core_dump.cc src/common/linux/elfutils.cc \
+	src/common/linux/elfutils.h src/common/linux/file_id.cc \
+	src/common/linux/file_id.h src/common/linux/guid_creator.cc \
+	src/common/linux/guid_creator.h \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/safe_readlink.cc \
+	src/common/linux/breakpad_getcontext.S
+am__dirstamp = $(am__leading_dot)dirstamp
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@am__objects_1 = src/common/linux/breakpad_getcontext.$(OBJEXT)
+@LINUX_HOST_TRUE@am_src_client_linux_libbreakpad_client_a_OBJECTS = src/client/linux/crash_generation/crash_generation_client.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/crash_generation/crash_generation_server.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/thread_info.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/ucontext_reader.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/handler/exception_handler.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/handler/minidump_descriptor.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/log/log.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/microdump_writer.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_core_dumper.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_dumper.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_ptrace_dumper.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/minidump_writer.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/minidump_file_writer.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/convert_UTF.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/md5.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/string_conversion.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/elf_core_dump.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/elfutils.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/file_id.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/guid_creator.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/safe_readlink.$(OBJEXT) \
+@LINUX_HOST_TRUE@	$(am__objects_1)
+src_client_linux_libbreakpad_client_a_OBJECTS =  \
+	$(am_src_client_linux_libbreakpad_client_a_OBJECTS)
+src_libbreakpad_a_AR = $(AR) $(ARFLAGS)
+src_libbreakpad_a_LIBADD =
+am__src_libbreakpad_a_SOURCES_DIST =  \
+	src/google_breakpad/common/breakpad_types.h \
+	src/google_breakpad/common/minidump_format.h \
+	src/google_breakpad/common/minidump_size.h \
+	src/google_breakpad/processor/basic_source_line_resolver.h \
+	src/google_breakpad/processor/call_stack.h \
+	src/google_breakpad/processor/code_module.h \
+	src/google_breakpad/processor/code_modules.h \
+	src/google_breakpad/processor/dump_context.h \
+	src/google_breakpad/processor/dump_object.h \
+	src/google_breakpad/processor/exploitability.h \
+	src/google_breakpad/processor/fast_source_line_resolver.h \
+	src/google_breakpad/processor/memory_region.h \
+	src/google_breakpad/processor/microdump.h \
+	src/google_breakpad/processor/microdump_processor.h \
+	src/google_breakpad/processor/minidump.h \
+	src/google_breakpad/processor/minidump_processor.h \
+	src/google_breakpad/processor/process_result.h \
+	src/google_breakpad/processor/process_state.h \
+	src/google_breakpad/processor/proc_maps_linux.h \
+	src/google_breakpad/processor/source_line_resolver_base.h \
+	src/google_breakpad/processor/source_line_resolver_interface.h \
+	src/google_breakpad/processor/stack_frame.h \
+	src/google_breakpad/processor/stack_frame_cpu.h \
+	src/google_breakpad/processor/stack_frame_symbolizer.h \
+	src/google_breakpad/processor/stackwalker.h \
+	src/google_breakpad/processor/symbol_supplier.h \
+	src/google_breakpad/processor/system_info.h \
+	src/processor/address_map-inl.h src/processor/address_map.h \
+	src/processor/basic_code_module.h \
+	src/processor/basic_code_modules.cc \
+	src/processor/basic_code_modules.h \
+	src/processor/basic_source_line_resolver_types.h \
+	src/processor/basic_source_line_resolver.cc \
+	src/processor/call_stack.cc src/processor/cfi_frame_info.cc \
+	src/processor/cfi_frame_info.h \
+	src/processor/contained_range_map-inl.h \
+	src/processor/contained_range_map.h \
+	src/processor/convert_old_arm64_context.cc \
+	src/processor/convert_old_arm64_context.h \
+	src/processor/disassembler_x86.h \
+	src/processor/disassembler_x86.cc \
+	src/processor/dump_context.cc src/processor/dump_object.cc \
+	src/processor/exploitability.cc \
+	src/processor/exploitability_linux.h \
+	src/processor/exploitability_linux.cc \
+	src/processor/exploitability_win.h \
+	src/processor/exploitability_win.cc \
+	src/processor/fast_source_line_resolver_types.h \
+	src/processor/fast_source_line_resolver.cc \
+	src/processor/linked_ptr.h src/processor/logging.h \
+	src/processor/logging.cc src/processor/map_serializers-inl.h \
+	src/processor/map_serializers.h src/processor/microdump.cc \
+	src/processor/microdump_processor.cc src/processor/minidump.cc \
+	src/processor/minidump_processor.cc \
+	src/processor/module_comparer.cc \
+	src/processor/module_comparer.h src/processor/module_factory.h \
+	src/processor/module_serializer.cc \
+	src/processor/module_serializer.h \
+	src/processor/pathname_stripper.cc \
+	src/processor/pathname_stripper.h \
+	src/processor/postfix_evaluator-inl.h \
+	src/processor/postfix_evaluator.h \
+	src/processor/process_state.cc \
+	src/processor/proc_maps_linux.cc src/processor/range_map-inl.h \
+	src/processor/range_map.h \
+	src/processor/simple_serializer-inl.h \
+	src/processor/simple_serializer.h \
+	src/processor/simple_symbol_supplier.cc \
+	src/processor/simple_symbol_supplier.h \
+	src/processor/windows_frame_info.h \
+	src/processor/source_line_resolver_base_types.h \
+	src/processor/source_line_resolver_base.cc \
+	src/processor/stack_frame_cpu.cc \
+	src/processor/stack_frame_symbolizer.cc \
+	src/processor/stackwalker.cc \
+	src/processor/stackwalker_amd64.cc \
+	src/processor/stackwalker_amd64.h \
+	src/processor/stackwalker_arm.cc \
+	src/processor/stackwalker_arm.h \
+	src/processor/stackwalker_arm64.cc \
+	src/processor/stackwalker_arm64.h \
+	src/processor/stackwalker_address_list.cc \
+	src/processor/stackwalker_address_list.h \
+	src/processor/stackwalker_mips.cc \
+	src/processor/stackwalker_mips.h \
+	src/processor/stackwalker_ppc.cc \
+	src/processor/stackwalker_ppc.h \
+	src/processor/stackwalker_ppc64.cc \
+	src/processor/stackwalker_ppc64.h \
+	src/processor/stackwalker_sparc.cc \
+	src/processor/stackwalker_sparc.h \
+	src/processor/stackwalker_x86.cc \
+	src/processor/stackwalker_x86.h \
+	src/processor/static_address_map-inl.h \
+	src/processor/static_address_map.h \
+	src/processor/static_contained_range_map-inl.h \
+	src/processor/static_contained_range_map.h \
+	src/processor/static_map_iterator-inl.h \
+	src/processor/static_map_iterator.h \
+	src/processor/static_map-inl.h src/processor/static_map.h \
+	src/processor/static_range_map-inl.h \
+	src/processor/static_range_map.h \
+	src/processor/symbolic_constants_win.cc \
+	src/processor/symbolic_constants_win.h \
+	src/processor/tokenize.cc src/processor/tokenize.h
+@DISABLE_PROCESSOR_FALSE@am_src_libbreakpad_a_OBJECTS = src/processor/basic_code_modules.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.$(OBJEXT)
+src_libbreakpad_a_OBJECTS = $(am_src_libbreakpad_a_OBJECTS)
+src_testing_libtesting_a_AR = $(AR) $(ARFLAGS)
+src_testing_libtesting_a_LIBADD =
+am__src_testing_libtesting_a_SOURCES_DIST =  \
+	src/breakpad_googletest_includes.h \
+	src/testing/googletest/src/gtest-all.cc \
+	src/testing/googletest/src/gtest_main.cc \
+	src/testing/googlemock/src/gmock-all.cc
+@SYSTEM_TEST_LIBS_FALSE@am_src_testing_libtesting_a_OBJECTS = src/testing/googletest/src/libtesting_a-gtest-all.$(OBJEXT) \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googletest/src/libtesting_a-gtest_main.$(OBJEXT) \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googlemock/src/libtesting_a-gmock-all.$(OBJEXT)
+src_testing_libtesting_a_OBJECTS =  \
+	$(am_src_testing_libtesting_a_OBJECTS)
+src_third_party_libdisasm_libdisasm_a_AR = $(AR) $(ARFLAGS)
+src_third_party_libdisasm_libdisasm_a_LIBADD =
+am__src_third_party_libdisasm_libdisasm_a_SOURCES_DIST =  \
+	src/third_party/libdisasm/ia32_implicit.c \
+	src/third_party/libdisasm/ia32_implicit.h \
+	src/third_party/libdisasm/ia32_insn.c \
+	src/third_party/libdisasm/ia32_insn.h \
+	src/third_party/libdisasm/ia32_invariant.c \
+	src/third_party/libdisasm/ia32_invariant.h \
+	src/third_party/libdisasm/ia32_modrm.c \
+	src/third_party/libdisasm/ia32_modrm.h \
+	src/third_party/libdisasm/ia32_opcode_tables.c \
+	src/third_party/libdisasm/ia32_opcode_tables.h \
+	src/third_party/libdisasm/ia32_operand.c \
+	src/third_party/libdisasm/ia32_operand.h \
+	src/third_party/libdisasm/ia32_reg.c \
+	src/third_party/libdisasm/ia32_reg.h \
+	src/third_party/libdisasm/ia32_settings.c \
+	src/third_party/libdisasm/ia32_settings.h \
+	src/third_party/libdisasm/libdis.h \
+	src/third_party/libdisasm/qword.h \
+	src/third_party/libdisasm/x86_disasm.c \
+	src/third_party/libdisasm/x86_format.c \
+	src/third_party/libdisasm/x86_imm.c \
+	src/third_party/libdisasm/x86_imm.h \
+	src/third_party/libdisasm/x86_insn.c \
+	src/third_party/libdisasm/x86_misc.c \
+	src/third_party/libdisasm/x86_operand_list.c \
+	src/third_party/libdisasm/x86_operand_list.h
+@DISABLE_PROCESSOR_FALSE@am_src_third_party_libdisasm_libdisasm_a_OBJECTS = src/third_party/libdisasm/ia32_implicit.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_insn.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_invariant.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_modrm.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_opcode_tables.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_operand.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_reg.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_settings.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_disasm.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_format.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_imm.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_insn.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_misc.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_operand_list.$(OBJEXT)
+src_third_party_libdisasm_libdisasm_a_OBJECTS =  \
+	$(am_src_third_party_libdisasm_libdisasm_a_OBJECTS)
+am_src_client_linux_linux_client_unittest_OBJECTS =
+src_client_linux_linux_client_unittest_OBJECTS =  \
+	$(am_src_client_linux_linux_client_unittest_OBJECTS)
+am__DEPENDENCIES_1 =
+@SYSTEM_TEST_LIBS_FALSE@am__DEPENDENCIES_2 = src/testing/libtesting.a
+@SYSTEM_TEST_LIBS_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \
+@SYSTEM_TEST_LIBS_TRUE@	$(am__DEPENDENCIES_1)
+src_client_linux_linux_client_unittest_LINK = $(CCLD) $(AM_CFLAGS) \
+	$(CFLAGS) $(src_client_linux_linux_client_unittest_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am__src_client_linux_linux_client_unittest_shlib_SOURCES_DIST =  \
+	src/breakpad_googletest_includes.h \
+	src/testing/googletest/src/gtest-all.cc \
+	src/testing/googletest/src/gtest_main.cc \
+	src/testing/googlemock/src/gmock-all.cc \
+	src/client/linux/handler/exception_handler_unittest.cc \
+	src/client/linux/microdump_writer/microdump_writer_unittest.cc \
+	src/client/linux/minidump_writer/directory_reader_unittest.cc \
+	src/client/linux/minidump_writer/cpu_set_unittest.cc \
+	src/client/linux/minidump_writer/line_reader_unittest.cc \
+	src/client/linux/minidump_writer/linux_core_dumper.cc \
+	src/client/linux/minidump_writer/linux_core_dumper_unittest.cc \
+	src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc \
+	src/client/linux/minidump_writer/minidump_writer_unittest.cc \
+	src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc \
+	src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc \
+	src/common/linux/elf_core_dump.cc \
+	src/common/linux/linux_libc_support_unittest.cc \
+	src/common/linux/tests/auto_testfile.h \
+	src/common/linux/tests/crash_generator.cc \
+	src/common/memory_allocator_unittest.cc \
+	src/common/tests/auto_tempdir.h src/common/tests/file_utils.cc \
+	src/common/tests/file_utils.h \
+	src/processor/basic_code_modules.cc \
+	src/processor/convert_old_arm64_context.cc \
+	src/processor/dump_context.cc src/processor/dump_object.cc \
+	src/processor/logging.cc src/processor/minidump.cc \
+	src/processor/pathname_stripper.cc \
+	src/processor/proc_maps_linux.cc \
+	src/common/linux/breakpad_getcontext.S \
+	src/common/linux/breakpad_getcontext_unittest.cc
+@SYSTEM_TEST_LIBS_FALSE@am__objects_2 = src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.$(OBJEXT) \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.$(OBJEXT) \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.$(OBJEXT)
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@am__objects_3 = src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.$(OBJEXT) \
+@HAVE_GETCONTEXT_FALSE@@LINUX_HOST_TRUE@	src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.$(OBJEXT)
+@LINUX_HOST_TRUE@am_src_client_linux_linux_client_unittest_shlib_OBJECTS =  \
+@LINUX_HOST_TRUE@	$(am__objects_2) \
+@LINUX_HOST_TRUE@	src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-dump_object.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-logging.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-minidump.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.$(OBJEXT) \
+@LINUX_HOST_TRUE@	$(am__objects_3)
+src_client_linux_linux_client_unittest_shlib_OBJECTS =  \
+	$(am_src_client_linux_linux_client_unittest_shlib_OBJECTS)
+src_client_linux_linux_client_unittest_shlib_LINK = $(CXXLD) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) \
+	$(src_client_linux_linux_client_unittest_shlib_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am__src_client_linux_linux_dumper_unittest_helper_SOURCES_DIST = src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@LINUX_HOST_TRUE@am_src_client_linux_linux_dumper_unittest_helper_OBJECTS = src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.$(OBJEXT)
+src_client_linux_linux_dumper_unittest_helper_OBJECTS =  \
+	$(am_src_client_linux_linux_dumper_unittest_helper_OBJECTS)
+src_client_linux_linux_dumper_unittest_helper_LDADD = $(LDADD)
+src_client_linux_linux_dumper_unittest_helper_LINK = $(CXXLD) \
+	$(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) \
+	$(CXXFLAGS) \
+	$(src_client_linux_linux_dumper_unittest_helper_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am__src_common_dumper_unittest_SOURCES_DIST =  \
+	src/common/byte_cursor_unittest.cc src/common/convert_UTF.cc \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cfi_to_module_unittest.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_cu_to_module_unittest.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_line_to_module_unittest.cc \
+	src/common/dwarf_range_list_handler.cc src/common/language.cc \
+	src/common/memory_range_unittest.cc src/common/module.cc \
+	src/common/module_unittest.cc src/common/path_helper.cc \
+	src/common/stabs_reader.cc src/common/stabs_reader_unittest.cc \
+	src/common/stabs_to_module.cc \
+	src/common/stabs_to_module_unittest.cc \
+	src/common/string_conversion.cc \
+	src/common/string_conversion_unittest.cc \
+	src/common/test_assembler.cc src/common/dwarf/bytereader.cc \
+	src/common/dwarf/bytereader.h \
+	src/common/dwarf/bytereader-inl.h \
+	src/common/dwarf/bytereader_unittest.cc \
+	src/common/dwarf/cfi_assembler.cc \
+	src/common/dwarf/cfi_assembler.h \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2diehandler_unittest.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/dwarf2reader.h src/common/dwarf/elf_reader.cc \
+	src/common/dwarf/elf_reader.h \
+	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
+	src/common/dwarf/dwarf2reader_die_unittest.cc \
+	src/common/dwarf/dwarf2reader_test_common.h \
+	src/common/linux/crc32.cc src/common/linux/dump_symbols.cc \
+	src/common/linux/dump_symbols_unittest.cc \
+	src/common/linux/elf_core_dump.cc \
+	src/common/linux/elf_core_dump_unittest.cc \
+	src/common/linux/elf_symbols_to_module.cc \
+	src/common/linux/elf_symbols_to_module_unittest.cc \
+	src/common/linux/elfutils.cc src/common/linux/file_id.cc \
+	src/common/linux/file_id_unittest.cc \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/memory_mapped_file_unittest.cc \
+	src/common/linux/safe_readlink.cc \
+	src/common/linux/safe_readlink_unittest.cc \
+	src/common/linux/synth_elf.cc \
+	src/common/linux/synth_elf_unittest.cc \
+	src/common/linux/tests/crash_generator.cc \
+	src/common/linux/tests/crash_generator.h \
+	src/common/testdata/func-line-pairing.h \
+	src/common/tests/file_utils.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_common_dumper_unittest_OBJECTS = src/common/dumper_unittest-byte_cursor_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-convert_UTF.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_cfi_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_cfi_to_module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_cu_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_cu_to_module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_line_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_line_to_module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-dwarf_range_list_handler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-language.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-memory_range_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-path_helper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-stabs_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-stabs_reader_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-stabs_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-stabs_to_module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-string_conversion.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-string_conversion_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dumper_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-bytereader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-bytereader_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-cfi_assembler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-dwarf2diehandler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-dwarf2reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-elf_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-crc32.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-dump_symbols.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-dump_symbols_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-elf_core_dump.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-elf_core_dump_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-elf_symbols_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-elfutils.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-file_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-file_id_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-linux_libc_support.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-memory_mapped_file.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-memory_mapped_file_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-safe_readlink.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-safe_readlink_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-synth_elf.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dumper_unittest-synth_elf_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tests/dumper_unittest-crash_generator.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tests/dumper_unittest-file_utils.$(OBJEXT)
+src_common_dumper_unittest_OBJECTS =  \
+	$(am_src_common_dumper_unittest_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_dumper_unittest_DEPENDENCIES =  \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_2) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+am__src_common_dwarf_dwarf2reader_lineinfo_unittest_SOURCES_DIST =  \
+	src/common/dwarf/dwarf2reader.h \
+	src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_common_dwarf_dwarf2reader_lineinfo_unittest_OBJECTS = src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.$(OBJEXT)
+src_common_dwarf_dwarf2reader_lineinfo_unittest_OBJECTS =  \
+	$(am_src_common_dwarf_dwarf2reader_lineinfo_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_lineinfo_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/bytereader.o \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader.o \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/elf_reader.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_common_dwarf_dwarf2reader_splitfunctions_unittest_SOURCES_DIST =  \
+	src/common/dwarf/dwarf2reader.h \
+	src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_common_dwarf_dwarf2reader_splitfunctions_unittest_OBJECTS = src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.$(OBJEXT)
+src_common_dwarf_dwarf2reader_splitfunctions_unittest_OBJECTS = $(am_src_common_dwarf_dwarf2reader_splitfunctions_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_splitfunctions_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/bytereader.o \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader.o \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/elf_reader.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_common_linux_google_crashdump_uploader_test_SOURCES_DIST =  \
+	src/common/linux/google_crashdump_uploader.cc \
+	src/common/linux/google_crashdump_uploader_test.cc \
+	src/common/linux/libcurl_wrapper.cc
+@LINUX_HOST_TRUE@am_src_common_linux_google_crashdump_uploader_test_OBJECTS = src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.$(OBJEXT) \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.$(OBJEXT)
+src_common_linux_google_crashdump_uploader_test_OBJECTS =  \
+	$(am_src_common_linux_google_crashdump_uploader_test_OBJECTS)
+@LINUX_HOST_TRUE@src_common_linux_google_crashdump_uploader_test_DEPENDENCIES =  \
+@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
+@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+am__src_common_mac_macho_reader_unittest_SOURCES_DIST =  \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc src/common/language.cc \
+	src/common/md5.cc src/common/module.cc \
+	src/common/path_helper.cc src/common/stabs_reader.cc \
+	src/common/stabs_to_module.cc src/common/test_assembler.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/cfi_assembler.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc \
+	src/common/mac/arch_utilities.cc src/common/mac/file_id.cc \
+	src/common/mac/macho_id.cc src/common/mac/macho_reader.cc \
+	src/common/mac/macho_reader_unittest.cc \
+	src/common/mac/macho_utilities.cc \
+	src/common/mac/macho_walker.cc src/common/tests/file_utils.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_common_mac_macho_reader_unittest_OBJECTS = src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-dwarf_cu_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-dwarf_line_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-language.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-md5.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-path_helper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-stabs_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-stabs_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac_macho_reader_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/mac_macho_reader_unittest-bytereader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/mac_macho_reader_unittest-elf_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-arch_utilities.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-file_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-macho_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-macho_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-macho_reader_unittest.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-macho_utilities.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest-macho_walker.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tests/mac_macho_reader_unittest-file_utils.$(OBJEXT)
+src_common_mac_macho_reader_unittest_OBJECTS =  \
+	$(am_src_common_mac_macho_reader_unittest_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_mac_macho_reader_unittest_DEPENDENCIES =  \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_2) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+am__src_common_test_assembler_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc src/common/test_assembler.h \
+	src/common/test_assembler_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_common_test_assembler_unittest_OBJECTS = src/common/test_assembler_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler_unittest-test_assembler_unittest.$(OBJEXT)
+src_common_test_assembler_unittest_OBJECTS =  \
+	$(am_src_common_test_assembler_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_common_test_assembler_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_address_map_unittest_SOURCES_DIST =  \
+	src/processor/address_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_address_map_unittest_OBJECTS = src/processor/address_map_unittest.$(OBJEXT)
+src_processor_address_map_unittest_OBJECTS =  \
+	$(am_src_processor_address_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_address_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o
+am__src_processor_basic_source_line_resolver_unittest_SOURCES_DIST =  \
+	src/processor/basic_source_line_resolver_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_basic_source_line_resolver_unittest_OBJECTS = src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.$(OBJEXT)
+src_processor_basic_source_line_resolver_unittest_OBJECTS = $(am_src_processor_basic_source_line_resolver_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_DEPENDENCIES = src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_cfi_frame_info_unittest_SOURCES_DIST =  \
+	src/processor/cfi_frame_info_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_cfi_frame_info_unittest_OBJECTS = src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.$(OBJEXT)
+src_processor_cfi_frame_info_unittest_OBJECTS =  \
+	$(am_src_processor_cfi_frame_info_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_contained_range_map_unittest_SOURCES_DIST =  \
+	src/processor/contained_range_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_contained_range_map_unittest_OBJECTS = src/processor/contained_range_map_unittest.$(OBJEXT)
+src_processor_contained_range_map_unittest_OBJECTS =  \
+	$(am_src_processor_contained_range_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_contained_range_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o
+am__src_processor_disassembler_x86_unittest_SOURCES_DIST =  \
+	src/processor/disassembler_x86_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_disassembler_x86_unittest_OBJECTS = src/processor/disassembler_x86_unittest-disassembler_x86_unittest.$(OBJEXT)
+src_processor_disassembler_x86_unittest_OBJECTS =  \
+	$(am_src_processor_disassembler_x86_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_disassembler_x86_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_exploitability_unittest_SOURCES_DIST =  \
+	src/processor/exploitability_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_exploitability_unittest_OBJECTS = src/processor/exploitability_unittest-exploitability_unittest.$(OBJEXT)
+src_processor_exploitability_unittest_OBJECTS =  \
+	$(am_src_processor_exploitability_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_DEPENDENCIES = src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_fast_source_line_resolver_unittest_SOURCES_DIST =  \
+	src/processor/fast_source_line_resolver_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_fast_source_line_resolver_unittest_OBJECTS = src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.$(OBJEXT)
+src_processor_fast_source_line_resolver_unittest_OBJECTS = $(am_src_processor_fast_source_line_resolver_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_DEPENDENCIES = src/processor/fast_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_map_serializers_unittest_SOURCES_DIST =  \
+	src/processor/map_serializers_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_map_serializers_unittest_OBJECTS = src/processor/map_serializers_unittest-map_serializers_unittest.$(OBJEXT)
+src_processor_map_serializers_unittest_OBJECTS =  \
+	$(am_src_processor_map_serializers_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_map_serializers_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_microdump_processor_unittest_SOURCES_DIST =  \
+	src/processor/microdump_processor_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_microdump_processor_unittest_OBJECTS = src/processor/microdump_processor_unittest-microdump_processor_unittest.$(OBJEXT)
+src_processor_microdump_processor_unittest_OBJECTS =  \
+	$(am_src_processor_microdump_processor_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_processor_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_microdump_stackwalk_SOURCES_DIST =  \
+	src/processor/microdump_stackwalk.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_microdump_stackwalk_OBJECTS = src/processor/microdump_stackwalk.$(OBJEXT)
+src_processor_microdump_stackwalk_OBJECTS =  \
+	$(am_src_processor_microdump_stackwalk_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_stackwalk_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/common/path_helper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalk_common.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a
+am__src_processor_minidump_dump_SOURCES_DIST =  \
+	src/processor/minidump_dump.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_dump_OBJECTS = src/processor/minidump_dump.$(OBJEXT)
+src_processor_minidump_dump_OBJECTS =  \
+	$(am_src_processor_minidump_dump_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o
+am__src_processor_minidump_processor_unittest_SOURCES_DIST =  \
+	src/processor/minidump_processor_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_processor_unittest_OBJECTS = src/processor/minidump_processor_unittest-minidump_processor_unittest.$(OBJEXT)
+src_processor_minidump_processor_unittest_OBJECTS =  \
+	$(am_src_processor_minidump_processor_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_minidump_stackwalk_SOURCES_DIST =  \
+	src/processor/minidump_stackwalk.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_stackwalk_OBJECTS = src/processor/minidump_stackwalk.$(OBJEXT)
+src_processor_minidump_stackwalk_OBJECTS =  \
+	$(am_src_processor_minidump_stackwalk_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/common/path_helper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalk_common.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a
+am__src_processor_minidump_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/minidump_unittest.cc \
+	src/processor/synth_minidump.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_unittest_OBJECTS = src/common/processor_minidump_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_unittest-minidump_unittest.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_unittest-synth_minidump.$(OBJEXT)
+src_processor_minidump_unittest_OBJECTS =  \
+	$(am_src_processor_minidump_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_pathname_stripper_unittest_SOURCES_DIST =  \
+	src/processor/pathname_stripper_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_pathname_stripper_unittest_OBJECTS = src/processor/pathname_stripper_unittest.$(OBJEXT)
+src_processor_pathname_stripper_unittest_OBJECTS =  \
+	$(am_src_processor_pathname_stripper_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_pathname_stripper_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_postfix_evaluator_unittest_SOURCES_DIST =  \
+	src/processor/postfix_evaluator_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_postfix_evaluator_unittest_OBJECTS = src/processor/postfix_evaluator_unittest.$(OBJEXT)
+src_processor_postfix_evaluator_unittest_OBJECTS =  \
+	$(am_src_processor_postfix_evaluator_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_proc_maps_linux_unittest_SOURCES_DIST =  \
+	src/processor/proc_maps_linux.cc \
+	src/processor/proc_maps_linux_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_proc_maps_linux_unittest_OBJECTS = src/processor/proc_maps_linux_unittest-proc_maps_linux.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.$(OBJEXT)
+src_processor_proc_maps_linux_unittest_OBJECTS =  \
+	$(am_src_processor_proc_maps_linux_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_proc_maps_linux_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_range_map_truncate_lower_unittest_SOURCES_DIST =  \
+	src/processor/range_map_truncate_lower_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_range_map_truncate_lower_unittest_OBJECTS = src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.$(OBJEXT)
+src_processor_range_map_truncate_lower_unittest_OBJECTS =  \
+	$(am_src_processor_range_map_truncate_lower_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_lower_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_range_map_truncate_upper_unittest_SOURCES_DIST =  \
+	src/processor/range_map_truncate_upper_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_range_map_truncate_upper_unittest_OBJECTS = src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.$(OBJEXT)
+src_processor_range_map_truncate_upper_unittest_OBJECTS =  \
+	$(am_src_processor_range_map_truncate_upper_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_upper_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_range_map_unittest_SOURCES_DIST =  \
+	src/processor/range_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_range_map_unittest_OBJECTS = src/processor/range_map_unittest.$(OBJEXT)
+src_processor_range_map_unittest_OBJECTS =  \
+	$(am_src_processor_range_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_address_list_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_address_list_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_address_list_unittest_OBJECTS = src/common/processor_stackwalker_address_list_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.$(OBJEXT)
+src_processor_stackwalker_address_list_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_address_list_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_address_list_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_amd64_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_amd64_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_amd64_unittest_OBJECTS = src/common/processor_stackwalker_amd64_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.$(OBJEXT)
+src_processor_stackwalker_amd64_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_amd64_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_amd64_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_arm64_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_arm64_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_arm64_unittest_OBJECTS = src/common/processor_stackwalker_arm64_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.$(OBJEXT)
+src_processor_stackwalker_arm64_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_arm64_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm64_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_arm_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_arm_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_arm_unittest_OBJECTS = src/common/processor_stackwalker_arm_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.$(OBJEXT)
+src_processor_stackwalker_arm_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_arm_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_mips64_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_mips64_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_mips64_unittest_OBJECTS = src/common/processor_stackwalker_mips64_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.$(OBJEXT)
+src_processor_stackwalker_mips64_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_mips64_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips64_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_mips_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_mips_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_mips_unittest_OBJECTS = src/common/processor_stackwalker_mips_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.$(OBJEXT)
+src_processor_stackwalker_mips_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_mips_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_selftest_SOURCES_DIST =  \
+	src/processor/stackwalker_selftest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_selftest_OBJECTS = src/processor/stackwalker_selftest.$(OBJEXT)
+src_processor_stackwalker_selftest_OBJECTS =  \
+	$(am_src_processor_stackwalker_selftest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_selftest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_stackwalker_x86_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc \
+	src/processor/stackwalker_x86_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_stackwalker_x86_unittest_OBJECTS = src/common/processor_stackwalker_x86_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.$(OBJEXT)
+src_processor_stackwalker_x86_unittest_OBJECTS =  \
+	$(am_src_processor_stackwalker_x86_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_x86_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_static_address_map_unittest_SOURCES_DIST =  \
+	src/processor/static_address_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_static_address_map_unittest_OBJECTS = src/processor/static_address_map_unittest-static_address_map_unittest.$(OBJEXT)
+src_processor_static_address_map_unittest_OBJECTS =  \
+	$(am_src_processor_static_address_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_static_address_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_static_contained_range_map_unittest_SOURCES_DIST =  \
+	src/processor/static_contained_range_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_static_contained_range_map_unittest_OBJECTS = src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.$(OBJEXT)
+src_processor_static_contained_range_map_unittest_OBJECTS = $(am_src_processor_static_contained_range_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_static_contained_range_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_static_map_unittest_SOURCES_DIST =  \
+	src/processor/static_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_static_map_unittest_OBJECTS = src/processor/static_map_unittest-static_map_unittest.$(OBJEXT)
+src_processor_static_map_unittest_OBJECTS =  \
+	$(am_src_processor_static_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_static_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_static_range_map_unittest_SOURCES_DIST =  \
+	src/processor/static_range_map_unittest.cc
+@DISABLE_PROCESSOR_FALSE@am_src_processor_static_range_map_unittest_OBJECTS = src/processor/static_range_map_unittest-static_range_map_unittest.$(OBJEXT)
+src_processor_static_range_map_unittest_OBJECTS =  \
+	$(am_src_processor_static_range_map_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_static_range_map_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_processor_synth_minidump_unittest_SOURCES_DIST =  \
+	src/common/test_assembler.cc src/common/test_assembler.h \
+	src/processor/synth_minidump_unittest.cc \
+	src/processor/synth_minidump.cc src/processor/synth_minidump.h
+@DISABLE_PROCESSOR_FALSE@am_src_processor_synth_minidump_unittest_OBJECTS = src/common/processor_synth_minidump_unittest-test_assembler.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump_unittest-synth_minidump_unittest.$(OBJEXT) \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump_unittest-synth_minidump.$(OBJEXT)
+src_processor_synth_minidump_unittest_OBJECTS =  \
+	$(am_src_processor_synth_minidump_unittest_OBJECTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_synth_minidump_unittest_DEPENDENCIES =  \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_2) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
+@DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
+am__src_tools_linux_core2md_core2md_SOURCES_DIST =  \
+	src/tools/linux/core2md/core2md.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_core2md_core2md_OBJECTS = src/tools/linux/core2md/core2md.$(OBJEXT)
+src_tools_linux_core2md_core2md_OBJECTS =  \
+	$(am_src_tools_linux_core2md_core2md_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core2md_core2md_DEPENDENCIES = src/client/linux/libbreakpad_client.a
+am__src_tools_linux_core_handler_core_handler_SOURCES_DIST =  \
+	src/tools/linux/core_handler/core_handler.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_core_handler_core_handler_OBJECTS = src/tools/linux/core_handler/core_handler.$(OBJEXT)
+src_tools_linux_core_handler_core_handler_OBJECTS =  \
+	$(am_src_tools_linux_core_handler_core_handler_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core_handler_core_handler_DEPENDENCIES = src/client/linux/libbreakpad_client.a
+am__src_tools_linux_dump_syms_dump_syms_SOURCES_DIST =  \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_range_list_handler.cc src/common/language.cc \
+	src/common/module.cc src/common/path_helper.cc \
+	src/common/stabs_reader.cc src/common/stabs_to_module.cc \
+	src/common/dwarf/bytereader.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc src/common/linux/crc32.cc \
+	src/common/linux/dump_symbols.cc \
+	src/common/linux/dump_symbols.h \
+	src/common/linux/elf_symbols_to_module.cc \
+	src/common/linux/elf_symbols_to_module.h \
+	src/common/linux/elfutils.cc src/common/linux/file_id.cc \
+	src/common/linux/linux_libc_support.cc \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/linux/safe_readlink.cc \
+	src/tools/linux/dump_syms/dump_syms.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_dump_syms_dump_syms_OBJECTS = src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-language.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-path_helper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-stabs_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-crc32.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-file_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/dump_syms/dump_syms-dump_syms.$(OBJEXT)
+src_tools_linux_dump_syms_dump_syms_OBJECTS =  \
+	$(am_src_tools_linux_dump_syms_dump_syms_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_dump_syms_dump_syms_DEPENDENCIES =  \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+src_tools_linux_dump_syms_dump_syms_LINK = $(CXXLD) \
+	$(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__src_tools_linux_md2core_minidump_2_core_SOURCES_DIST =  \
+	src/common/linux/memory_mapped_file.cc \
+	src/common/path_helper.cc \
+	src/tools/linux/md2core/minidump-2-core.cc \
+	src/tools/linux/md2core/minidump_memory_range.h
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_md2core_minidump_2_core_OBJECTS = src/common/linux/memory_mapped_file.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump-2-core.$(OBJEXT)
+src_tools_linux_md2core_minidump_2_core_OBJECTS =  \
+	$(am_src_tools_linux_md2core_minidump_2_core_OBJECTS)
+src_tools_linux_md2core_minidump_2_core_LDADD = $(LDADD)
+am__src_tools_linux_md2core_minidump_2_core_unittest_SOURCES_DIST =  \
+	src/tools/linux/md2core/minidump_memory_range_unittest.cc
+@LINUX_HOST_TRUE@am_src_tools_linux_md2core_minidump_2_core_unittest_OBJECTS = src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.$(OBJEXT)
+src_tools_linux_md2core_minidump_2_core_unittest_OBJECTS = $(am_src_tools_linux_md2core_minidump_2_core_unittest_OBJECTS)
+@LINUX_HOST_TRUE@src_tools_linux_md2core_minidump_2_core_unittest_DEPENDENCIES =  \
+@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
+@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+am__src_tools_linux_pid2md_pid2md_SOURCES_DIST =  \
+	src/tools/linux/pid2md/pid2md.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_pid2md_pid2md_OBJECTS = src/tools/linux/pid2md/pid2md.$(OBJEXT)
+src_tools_linux_pid2md_pid2md_OBJECTS =  \
+	$(am_src_tools_linux_pid2md_pid2md_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_pid2md_pid2md_DEPENDENCIES = src/client/linux/libbreakpad_client.a
+am__src_tools_linux_symupload_minidump_upload_SOURCES_DIST =  \
+	src/common/linux/http_upload.cc \
+	src/tools/linux/symupload/minidump_upload.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_symupload_minidump_upload_OBJECTS = src/common/linux/http_upload.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/minidump_upload.$(OBJEXT)
+src_tools_linux_symupload_minidump_upload_OBJECTS =  \
+	$(am_src_tools_linux_symupload_minidump_upload_OBJECTS)
+src_tools_linux_symupload_minidump_upload_DEPENDENCIES =
+am__src_tools_linux_symupload_sym_upload_SOURCES_DIST =  \
+	src/common/linux/http_upload.cc src/common/linux/http_upload.h \
+	src/common/linux/libcurl_wrapper.cc \
+	src/common/linux/libcurl_wrapper.h \
+	src/common/linux/symbol_collector_client.cc \
+	src/common/linux/symbol_collector_client.h \
+	src/common/linux/symbol_upload.cc \
+	src/common/linux/symbol_upload.h \
+	src/tools/linux/symupload/sym_upload.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_linux_symupload_sym_upload_OBJECTS = src/common/linux/http_upload.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/libcurl_wrapper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_collector_client.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_upload.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/sym_upload.$(OBJEXT)
+src_tools_linux_symupload_sym_upload_OBJECTS =  \
+	$(am_src_tools_linux_symupload_sym_upload_OBJECTS)
+src_tools_linux_symupload_sym_upload_DEPENDENCIES =
+am__src_tools_mac_dump_syms_dump_syms_mac_SOURCES_DIST =  \
+	src/common/dwarf_cfi_to_module.cc \
+	src/common/dwarf_cu_to_module.cc \
+	src/common/dwarf_line_to_module.cc \
+	src/common/dwarf_range_list_handler.cc src/common/language.cc \
+	src/common/md5.cc src/common/module.cc \
+	src/common/path_helper.cc src/common/stabs_reader.cc \
+	src/common/stabs_to_module.cc src/common/dwarf/bytereader.cc \
+	src/common/dwarf/dwarf2diehandler.cc \
+	src/common/dwarf/dwarf2reader.cc \
+	src/common/dwarf/elf_reader.cc \
+	src/common/mac/arch_utilities.cc src/common/mac/dump_syms.cc \
+	src/common/mac/dump_syms.h src/common/mac/file_id.cc \
+	src/common/mac/file_id.h src/common/mac/macho_id.cc \
+	src/common/mac/macho_id.h src/common/mac/macho_reader.cc \
+	src/common/mac/macho_reader.h \
+	src/common/mac/macho_utilities.cc \
+	src/common/mac/macho_utilities.h \
+	src/common/mac/macho_walker.cc src/common/mac/macho_walker.h \
+	src/tools/mac/dump_syms/dump_syms_tool.cc
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@am_src_tools_mac_dump_syms_dump_syms_mac_OBJECTS = src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-language.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-md5.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.$(OBJEXT) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.$(OBJEXT)
+src_tools_mac_dump_syms_dump_syms_mac_OBJECTS =  \
+	$(am_src_tools_mac_dump_syms_dump_syms_mac_OBJECTS)
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_mac_dump_syms_dump_syms_mac_DEPENDENCIES =  \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(am__DEPENDENCIES_1)
+src_tools_mac_dump_syms_dump_syms_mac_LINK = $(CXXLD) \
+	$(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SCRIPTS = $(noinst_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
+depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = src/client/$(DEPDIR)/minidump_file_writer.Po \
+	src/client/linux/crash_generation/$(DEPDIR)/crash_generation_client.Po \
+	src/client/linux/crash_generation/$(DEPDIR)/crash_generation_server.Po \
+	src/client/linux/dump_writer_common/$(DEPDIR)/thread_info.Po \
+	src/client/linux/dump_writer_common/$(DEPDIR)/ucontext_reader.Po \
+	src/client/linux/handler/$(DEPDIR)/exception_handler.Po \
+	src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po \
+	src/client/linux/handler/$(DEPDIR)/minidump_descriptor.Po \
+	src/client/linux/log/$(DEPDIR)/log.Po \
+	src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po \
+	src/client/linux/microdump_writer/$(DEPDIR)/microdump_writer.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_core_dumper.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/linux_ptrace_dumper.Po \
+	src/client/linux/minidump_writer/$(DEPDIR)/minidump_writer.Po \
+	src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po \
+	src/common/$(DEPDIR)/convert_UTF.Po \
+	src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po \
+	src/common/$(DEPDIR)/dumper_unittest-language.Po \
+	src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-module.Po \
+	src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-path_helper.Po \
+	src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po \
+	src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po \
+	src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po \
+	src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po \
+	src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po \
+	src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/md5.Po \
+	src/common/$(DEPDIR)/path_helper.Po \
+	src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/string_conversion.Po \
+	src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po \
+	src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po \
+	src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po \
+	src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po \
+	src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po \
+	src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po \
+	src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po \
+	src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po \
+	src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po \
+	src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po \
+	src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po \
+	src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po \
+	src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po \
+	src/common/linux/$(DEPDIR)/breakpad_getcontext.Po \
+	src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po \
+	src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po \
+	src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po \
+	src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po \
+	src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po \
+	src/common/linux/$(DEPDIR)/elf_core_dump.Po \
+	src/common/linux/$(DEPDIR)/elfutils.Po \
+	src/common/linux/$(DEPDIR)/file_id.Po \
+	src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po \
+	src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po \
+	src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po \
+	src/common/linux/$(DEPDIR)/guid_creator.Po \
+	src/common/linux/$(DEPDIR)/http_upload.Po \
+	src/common/linux/$(DEPDIR)/libcurl_wrapper.Po \
+	src/common/linux/$(DEPDIR)/linux_libc_support.Po \
+	src/common/linux/$(DEPDIR)/memory_mapped_file.Po \
+	src/common/linux/$(DEPDIR)/safe_readlink.Po \
+	src/common/linux/$(DEPDIR)/symbol_collector_client.Po \
+	src/common/linux/$(DEPDIR)/symbol_upload.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po \
+	src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po \
+	src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po \
+	src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po \
+	src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po \
+	src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po \
+	src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po \
+	src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po \
+	src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po \
+	src/processor/$(DEPDIR)/address_map_unittest.Po \
+	src/processor/$(DEPDIR)/basic_code_modules.Po \
+	src/processor/$(DEPDIR)/basic_source_line_resolver.Po \
+	src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po \
+	src/processor/$(DEPDIR)/call_stack.Po \
+	src/processor/$(DEPDIR)/cfi_frame_info.Po \
+	src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po \
+	src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po \
+	src/processor/$(DEPDIR)/contained_range_map_unittest.Po \
+	src/processor/$(DEPDIR)/convert_old_arm64_context.Po \
+	src/processor/$(DEPDIR)/disassembler_x86.Po \
+	src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po \
+	src/processor/$(DEPDIR)/dump_context.Po \
+	src/processor/$(DEPDIR)/dump_object.Po \
+	src/processor/$(DEPDIR)/exploitability.Po \
+	src/processor/$(DEPDIR)/exploitability_linux.Po \
+	src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po \
+	src/processor/$(DEPDIR)/exploitability_win.Po \
+	src/processor/$(DEPDIR)/fast_source_line_resolver.Po \
+	src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po \
+	src/processor/$(DEPDIR)/logging.Po \
+	src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po \
+	src/processor/$(DEPDIR)/microdump.Po \
+	src/processor/$(DEPDIR)/microdump_processor.Po \
+	src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po \
+	src/processor/$(DEPDIR)/microdump_stackwalk.Po \
+	src/processor/$(DEPDIR)/minidump.Po \
+	src/processor/$(DEPDIR)/minidump_dump.Po \
+	src/processor/$(DEPDIR)/minidump_processor.Po \
+	src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po \
+	src/processor/$(DEPDIR)/minidump_stackwalk.Po \
+	src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po \
+	src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po \
+	src/processor/$(DEPDIR)/module_comparer.Po \
+	src/processor/$(DEPDIR)/module_serializer.Po \
+	src/processor/$(DEPDIR)/pathname_stripper.Po \
+	src/processor/$(DEPDIR)/pathname_stripper_unittest.Po \
+	src/processor/$(DEPDIR)/postfix_evaluator_unittest.Po \
+	src/processor/$(DEPDIR)/proc_maps_linux.Po \
+	src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po \
+	src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po \
+	src/processor/$(DEPDIR)/process_state.Po \
+	src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po \
+	src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po \
+	src/processor/$(DEPDIR)/range_map_unittest.Po \
+	src/processor/$(DEPDIR)/simple_symbol_supplier.Po \
+	src/processor/$(DEPDIR)/source_line_resolver_base.Po \
+	src/processor/$(DEPDIR)/stack_frame_cpu.Po \
+	src/processor/$(DEPDIR)/stack_frame_symbolizer.Po \
+	src/processor/$(DEPDIR)/stackwalker.Po \
+	src/processor/$(DEPDIR)/stackwalker_address_list.Po \
+	src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_amd64.Po \
+	src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_arm.Po \
+	src/processor/$(DEPDIR)/stackwalker_arm64.Po \
+	src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_mips.Po \
+	src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po \
+	src/processor/$(DEPDIR)/stackwalker_ppc.Po \
+	src/processor/$(DEPDIR)/stackwalker_ppc64.Po \
+	src/processor/$(DEPDIR)/stackwalker_selftest.Po \
+	src/processor/$(DEPDIR)/stackwalker_sparc.Po \
+	src/processor/$(DEPDIR)/stackwalker_x86.Po \
+	src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po \
+	src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po \
+	src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po \
+	src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po \
+	src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po \
+	src/processor/$(DEPDIR)/symbolic_constants_win.Po \
+	src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po \
+	src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po \
+	src/processor/$(DEPDIR)/tokenize.Po \
+	src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po \
+	src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po \
+	src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po \
+	src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po \
+	src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po \
+	src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_implicit.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_insn.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_invariant.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_modrm.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_opcode_tables.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_operand.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_reg.Po \
+	src/third_party/libdisasm/$(DEPDIR)/ia32_settings.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_disasm.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_format.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_imm.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_insn.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_misc.Po \
+	src/third_party/libdisasm/$(DEPDIR)/x86_operand_list.Po \
+	src/tools/linux/core2md/$(DEPDIR)/core2md.Po \
+	src/tools/linux/core_handler/$(DEPDIR)/core_handler.Po \
+	src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po \
+	src/tools/linux/md2core/$(DEPDIR)/minidump-2-core.Po \
+	src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po \
+	src/tools/linux/pid2md/$(DEPDIR)/pid2md.Po \
+	src/tools/linux/symupload/$(DEPDIR)/minidump_upload.Po \
+	src/tools/linux/symupload/$(DEPDIR)/sym_upload.Po \
+	src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po
+am__mv = mv -f
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+AM_V_CPPAS = $(am__v_CPPAS_@AM_V@)
+am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@)
+am__v_CPPAS_0 = @echo "  CPPAS   " $@;
+am__v_CPPAS_1 = 
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
+SOURCES = $(src_client_linux_libbreakpad_client_a_SOURCES) \
+	$(src_libbreakpad_a_SOURCES) \
+	$(src_testing_libtesting_a_SOURCES) \
+	$(src_third_party_libdisasm_libdisasm_a_SOURCES) \
+	$(src_client_linux_linux_client_unittest_SOURCES) \
+	$(src_client_linux_linux_client_unittest_shlib_SOURCES) \
+	$(src_client_linux_linux_dumper_unittest_helper_SOURCES) \
+	$(src_common_dumper_unittest_SOURCES) \
+	$(src_common_dwarf_dwarf2reader_lineinfo_unittest_SOURCES) \
+	$(src_common_dwarf_dwarf2reader_splitfunctions_unittest_SOURCES) \
+	$(src_common_linux_google_crashdump_uploader_test_SOURCES) \
+	$(src_common_mac_macho_reader_unittest_SOURCES) \
+	$(src_common_test_assembler_unittest_SOURCES) \
+	$(src_processor_address_map_unittest_SOURCES) \
+	$(src_processor_basic_source_line_resolver_unittest_SOURCES) \
+	$(src_processor_cfi_frame_info_unittest_SOURCES) \
+	$(src_processor_contained_range_map_unittest_SOURCES) \
+	$(src_processor_disassembler_x86_unittest_SOURCES) \
+	$(src_processor_exploitability_unittest_SOURCES) \
+	$(src_processor_fast_source_line_resolver_unittest_SOURCES) \
+	$(src_processor_map_serializers_unittest_SOURCES) \
+	$(src_processor_microdump_processor_unittest_SOURCES) \
+	$(src_processor_microdump_stackwalk_SOURCES) \
+	$(src_processor_minidump_dump_SOURCES) \
+	$(src_processor_minidump_processor_unittest_SOURCES) \
+	$(src_processor_minidump_stackwalk_SOURCES) \
+	$(src_processor_minidump_unittest_SOURCES) \
+	$(src_processor_pathname_stripper_unittest_SOURCES) \
+	$(src_processor_postfix_evaluator_unittest_SOURCES) \
+	$(src_processor_proc_maps_linux_unittest_SOURCES) \
+	$(src_processor_range_map_truncate_lower_unittest_SOURCES) \
+	$(src_processor_range_map_truncate_upper_unittest_SOURCES) \
+	$(src_processor_range_map_unittest_SOURCES) \
+	$(src_processor_stackwalker_address_list_unittest_SOURCES) \
+	$(src_processor_stackwalker_amd64_unittest_SOURCES) \
+	$(src_processor_stackwalker_arm64_unittest_SOURCES) \
+	$(src_processor_stackwalker_arm_unittest_SOURCES) \
+	$(src_processor_stackwalker_mips64_unittest_SOURCES) \
+	$(src_processor_stackwalker_mips_unittest_SOURCES) \
+	$(src_processor_stackwalker_selftest_SOURCES) \
+	$(src_processor_stackwalker_x86_unittest_SOURCES) \
+	$(src_processor_static_address_map_unittest_SOURCES) \
+	$(src_processor_static_contained_range_map_unittest_SOURCES) \
+	$(src_processor_static_map_unittest_SOURCES) \
+	$(src_processor_static_range_map_unittest_SOURCES) \
+	$(src_processor_synth_minidump_unittest_SOURCES) \
+	$(src_tools_linux_core2md_core2md_SOURCES) \
+	$(src_tools_linux_core_handler_core_handler_SOURCES) \
+	$(src_tools_linux_dump_syms_dump_syms_SOURCES) \
+	$(src_tools_linux_md2core_minidump_2_core_SOURCES) \
+	$(src_tools_linux_md2core_minidump_2_core_unittest_SOURCES) \
+	$(src_tools_linux_pid2md_pid2md_SOURCES) \
+	$(src_tools_linux_symupload_minidump_upload_SOURCES) \
+	$(src_tools_linux_symupload_sym_upload_SOURCES) \
+	$(src_tools_mac_dump_syms_dump_syms_mac_SOURCES)
+DIST_SOURCES =  \
+	$(am__src_client_linux_libbreakpad_client_a_SOURCES_DIST) \
+	$(am__src_libbreakpad_a_SOURCES_DIST) \
+	$(am__src_testing_libtesting_a_SOURCES_DIST) \
+	$(am__src_third_party_libdisasm_libdisasm_a_SOURCES_DIST) \
+	$(src_client_linux_linux_client_unittest_SOURCES) \
+	$(am__src_client_linux_linux_client_unittest_shlib_SOURCES_DIST) \
+	$(am__src_client_linux_linux_dumper_unittest_helper_SOURCES_DIST) \
+	$(am__src_common_dumper_unittest_SOURCES_DIST) \
+	$(am__src_common_dwarf_dwarf2reader_lineinfo_unittest_SOURCES_DIST) \
+	$(am__src_common_dwarf_dwarf2reader_splitfunctions_unittest_SOURCES_DIST) \
+	$(am__src_common_linux_google_crashdump_uploader_test_SOURCES_DIST) \
+	$(am__src_common_mac_macho_reader_unittest_SOURCES_DIST) \
+	$(am__src_common_test_assembler_unittest_SOURCES_DIST) \
+	$(am__src_processor_address_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_basic_source_line_resolver_unittest_SOURCES_DIST) \
+	$(am__src_processor_cfi_frame_info_unittest_SOURCES_DIST) \
+	$(am__src_processor_contained_range_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_disassembler_x86_unittest_SOURCES_DIST) \
+	$(am__src_processor_exploitability_unittest_SOURCES_DIST) \
+	$(am__src_processor_fast_source_line_resolver_unittest_SOURCES_DIST) \
+	$(am__src_processor_map_serializers_unittest_SOURCES_DIST) \
+	$(am__src_processor_microdump_processor_unittest_SOURCES_DIST) \
+	$(am__src_processor_microdump_stackwalk_SOURCES_DIST) \
+	$(am__src_processor_minidump_dump_SOURCES_DIST) \
+	$(am__src_processor_minidump_processor_unittest_SOURCES_DIST) \
+	$(am__src_processor_minidump_stackwalk_SOURCES_DIST) \
+	$(am__src_processor_minidump_unittest_SOURCES_DIST) \
+	$(am__src_processor_pathname_stripper_unittest_SOURCES_DIST) \
+	$(am__src_processor_postfix_evaluator_unittest_SOURCES_DIST) \
+	$(am__src_processor_proc_maps_linux_unittest_SOURCES_DIST) \
+	$(am__src_processor_range_map_truncate_lower_unittest_SOURCES_DIST) \
+	$(am__src_processor_range_map_truncate_upper_unittest_SOURCES_DIST) \
+	$(am__src_processor_range_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_address_list_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_amd64_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_arm64_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_arm_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_mips64_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_mips_unittest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_selftest_SOURCES_DIST) \
+	$(am__src_processor_stackwalker_x86_unittest_SOURCES_DIST) \
+	$(am__src_processor_static_address_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_static_contained_range_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_static_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_static_range_map_unittest_SOURCES_DIST) \
+	$(am__src_processor_synth_minidump_unittest_SOURCES_DIST) \
+	$(am__src_tools_linux_core2md_core2md_SOURCES_DIST) \
+	$(am__src_tools_linux_core_handler_core_handler_SOURCES_DIST) \
+	$(am__src_tools_linux_dump_syms_dump_syms_SOURCES_DIST) \
+	$(am__src_tools_linux_md2core_minidump_2_core_SOURCES_DIST) \
+	$(am__src_tools_linux_md2core_minidump_2_core_unittest_SOURCES_DIST) \
+	$(am__src_tools_linux_pid2md_pid2md_SOURCES_DIST) \
+	$(am__src_tools_linux_symupload_minidump_upload_SOURCES_DIST) \
+	$(am__src_tools_linux_symupload_sym_upload_SOURCES_DIST) \
+	$(am__src_tools_mac_dump_syms_dump_syms_mac_SOURCES_DIST)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(dist_doc_DATA) $(pkgconfig_DATA)
+am__includecl_HEADERS_DIST = $(top_srcdir)/src/common/linux/*.h
+am__includeclc_HEADERS_DIST =  \
+	$(top_srcdir)/src/client/linux/crash_generation/*.h
+am__includecldwc_HEADERS_DIST =  \
+	$(top_srcdir)/src/client/linux/dump_writer_common/*.h
+am__includeclh_HEADERS_DIST =  \
+	$(top_srcdir)/src/client/linux/handler/*.h
+am__includeclm_HEADERS_DIST =  \
+	$(top_srcdir)/src/client/linux/minidump_writer/*.h
+am__includelss_HEADERS_DIST = $(top_srcdir)/src/third_party/lss/*.h
+HEADERS = $(includec_HEADERS) $(includecl_HEADERS) \
+	$(includeclc_HEADERS) $(includecldwc_HEADERS) \
+	$(includeclh_HEADERS) $(includeclm_HEADERS) \
+	$(includegbc_HEADERS) $(includelss_HEADERS) \
+	$(includep_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope check recheck
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='[0;31m'; \
+    grn='[0;32m'; \
+    lgn='[1;32m'; \
+    blu='[1;34m'; \
+    mgn='[0;35m'; \
+    brg='[1m'; \
+    std='[m'; \
+  fi; \
+}
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/autotools/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(srcdir)/breakpad-client.pc.in $(srcdir)/breakpad.pc.in \
+	$(top_srcdir)/autotools/ar-lib $(top_srcdir)/autotools/compile \
+	$(top_srcdir)/autotools/config.guess \
+	$(top_srcdir)/autotools/config.sub \
+	$(top_srcdir)/autotools/depcomp \
+	$(top_srcdir)/autotools/install-sh \
+	$(top_srcdir)/autotools/missing \
+	$(top_srcdir)/autotools/test-driver \
+	$(top_srcdir)/src/config.h.in AUTHORS ChangeLog INSTALL NEWS \
+	autotools/ar-lib autotools/compile autotools/config.guess \
+	autotools/config.sub autotools/depcomp autotools/install-sh \
+	autotools/ltmain.sh autotools/missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMOCK_CFLAGS = @GMOCK_CFLAGS@
+GMOCK_LIBS = @GMOCK_LIBS@
+GREP = @GREP@
+GTEST_CFLAGS = @GTEST_CFLAGS@
+GTEST_LIBS = @GTEST_LIBS@
+HAVE_CXX11 = @HAVE_CXX11@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+RANLIB = @RANLIB@
+RUST_DEMANGLE_CFLAGS = @RUST_DEMANGLE_CFLAGS@
+RUST_DEMANGLE_LIBS = @RUST_DEMANGLE_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARN_CXXFLAGS = @WARN_CXXFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# This allows #includes to be relative to src/
+AM_CPPFLAGS = -I$(top_srcdir)/src
+AM_CFLAGS = $(am__append_2)
+AM_CXXFLAGS = $(am__append_1) $(WARN_CXXFLAGS) $(am__append_3)
+
+# Specify include paths for ac macros
+ACLOCAL_AMFLAGS = -I m4
+
+# License file is called LICENSE not COPYING
+AUTOMAKE_OPTIONS = foreign
+dist_doc_DATA = \
+	AUTHORS \
+	ChangeLog \
+	INSTALL \
+	LICENSE \
+	NEWS \
+	README.md
+
+@LINUX_HOST_TRUE@includeclhdir = $(includedir)/$(PACKAGE)/client/linux/handler
+@LINUX_HOST_TRUE@includeclh_HEADERS = $(top_srcdir)/src/client/linux/handler/*.h
+@LINUX_HOST_TRUE@includecldwcdir = $(includedir)/$(PACKAGE)/client/linux/dump_writer_common
+@LINUX_HOST_TRUE@includecldwc_HEADERS = $(top_srcdir)/src/client/linux/dump_writer_common/*.h
+@LINUX_HOST_TRUE@includeclmdir = $(includedir)/$(PACKAGE)/client/linux/minidump_writer
+@LINUX_HOST_TRUE@includeclm_HEADERS = $(top_srcdir)/src/client/linux/minidump_writer/*.h
+@LINUX_HOST_TRUE@includeclcdir = $(includedir)/$(PACKAGE)/client/linux/crash_generation
+@LINUX_HOST_TRUE@includeclc_HEADERS = $(top_srcdir)/src/client/linux/crash_generation/*.h
+@LINUX_HOST_TRUE@includelssdir = $(includedir)/$(PACKAGE)/third_party/lss
+@LINUX_HOST_TRUE@includelss_HEADERS = $(top_srcdir)/src/third_party/lss/*.h
+@LINUX_HOST_TRUE@includecldir = $(includedir)/$(PACKAGE)/common/linux
+@LINUX_HOST_TRUE@includecl_HEADERS = $(top_srcdir)/src/common/linux/*.h
+includegbcdir = $(includedir)/$(PACKAGE)/google_breakpad/common
+includegbc_HEADERS = $(top_srcdir)/src/google_breakpad/common/*.h
+includecdir = $(includedir)/$(PACKAGE)/common
+includec_HEADERS = $(top_srcdir)/src/common/*.h
+includepdir = $(includedir)/$(PACKAGE)/processor
+includep_HEADERS = $(top_srcdir)/src/processor/*.h
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = $(am__append_5) $(am__append_8)
+@SYSTEM_TEST_LIBS_FALSE@TEST_CFLAGS = \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing/include \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing/googletest/include \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing/googletest \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing/googlemock/include \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing/googlemock \
+@SYSTEM_TEST_LIBS_FALSE@	-I$(top_srcdir)/src/testing
+
+@SYSTEM_TEST_LIBS_TRUE@TEST_CFLAGS = $(GTEST_CFLAGS) $(GMOCK_CFLAGS)
+@SYSTEM_TEST_LIBS_FALSE@TEST_LIBS = src/testing/libtesting.a
+@SYSTEM_TEST_LIBS_TRUE@TEST_LIBS = $(GTEST_LIBS) -lgtest_main $(GMOCK_LIBS)
+@SYSTEM_TEST_LIBS_FALSE@TEST_DEPS = $(TEST_LIBS)
+@SYSTEM_TEST_LIBS_TRUE@TEST_DEPS = 
+check_LIBRARIES = src/testing/libtesting.a
+noinst_LIBRARIES = $(am__append_6)
+lib_LIBRARIES = $(am__append_4) $(am__append_7)
+CLEANFILES = $(am__append_12)
+@SYSTEM_TEST_LIBS_FALSE@src_testing_libtesting_a_SOURCES = \
+@SYSTEM_TEST_LIBS_FALSE@	src/breakpad_googletest_includes.h \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googletest/src/gtest-all.cc \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googletest/src/gtest_main.cc \
+@SYSTEM_TEST_LIBS_FALSE@	src/testing/googlemock/src/gmock-all.cc
+
+@SYSTEM_TEST_LIBS_FALSE@src_testing_libtesting_a_CPPFLAGS = \
+@SYSTEM_TEST_LIBS_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@LINUX_HOST_TRUE@src_client_linux_libbreakpad_client_a_SOURCES = src/client/linux/crash_generation/crash_generation_client.cc \
+@LINUX_HOST_TRUE@	src/client/linux/crash_generation/crash_generation_server.cc \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/thread_info.cc \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/ucontext_reader.cc \
+@LINUX_HOST_TRUE@	src/client/linux/handler/exception_handler.cc \
+@LINUX_HOST_TRUE@	src/client/linux/handler/exception_handler.h \
+@LINUX_HOST_TRUE@	src/client/linux/handler/minidump_descriptor.cc \
+@LINUX_HOST_TRUE@	src/client/linux/handler/minidump_descriptor.h \
+@LINUX_HOST_TRUE@	src/client/linux/log/log.cc \
+@LINUX_HOST_TRUE@	src/client/linux/log/log.h \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/microdump_writer.cc \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/microdump_writer.h \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_core_dumper.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_dumper.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/minidump_writer.cc \
+@LINUX_HOST_TRUE@	src/client/minidump_file_writer-inl.h \
+@LINUX_HOST_TRUE@	src/client/minidump_file_writer.cc \
+@LINUX_HOST_TRUE@	src/client/minidump_file_writer.h \
+@LINUX_HOST_TRUE@	src/common/convert_UTF.cc \
+@LINUX_HOST_TRUE@	src/common/convert_UTF.h src/common/md5.cc \
+@LINUX_HOST_TRUE@	src/common/md5.h \
+@LINUX_HOST_TRUE@	src/common/string_conversion.cc \
+@LINUX_HOST_TRUE@	src/common/string_conversion.h \
+@LINUX_HOST_TRUE@	src/common/linux/elf_core_dump.cc \
+@LINUX_HOST_TRUE@	src/common/linux/elfutils.cc \
+@LINUX_HOST_TRUE@	src/common/linux/elfutils.h \
+@LINUX_HOST_TRUE@	src/common/linux/file_id.cc \
+@LINUX_HOST_TRUE@	src/common/linux/file_id.h \
+@LINUX_HOST_TRUE@	src/common/linux/guid_creator.cc \
+@LINUX_HOST_TRUE@	src/common/linux/guid_creator.h \
+@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.cc \
+@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.cc \
+@LINUX_HOST_TRUE@	src/common/linux/safe_readlink.cc \
+@LINUX_HOST_TRUE@	$(am__append_9)
+@DISABLE_PROCESSOR_FALSE@src_libbreakpad_a_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/common/breakpad_types.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/common/minidump_format.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/common/minidump_size.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/basic_source_line_resolver.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/call_stack.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/code_module.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/code_modules.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/dump_context.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/dump_object.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/exploitability.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/fast_source_line_resolver.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/memory_region.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/microdump.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/microdump_processor.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/minidump.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/minidump_processor.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/process_result.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/process_state.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/proc_maps_linux.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/source_line_resolver_base.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/source_line_resolver_interface.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame_cpu.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame_symbolizer.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stackwalker.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/symbol_supplier.h \
+@DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/system_info.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/address_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/address_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_module.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver_types.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/contained_range_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/contained_range_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver_types.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/linked_ptr.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/map_serializers-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/map_serializers.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_factory.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_serializer-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_serializer.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/windows_frame_info.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base_types.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_address_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_address_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_contained_range_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_contained_range_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map_iterator-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map_iterator.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_range_map-inl.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_range_map.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.h
+
+@DISABLE_PROCESSOR_FALSE@src_third_party_libdisasm_libdisasm_a_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_implicit.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_implicit.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_insn.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_insn.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_invariant.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_invariant.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_modrm.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_modrm.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_opcode_tables.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_opcode_tables.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_operand.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_operand.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_reg.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_reg.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_settings.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/ia32_settings.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdis.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/qword.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_disasm.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_format.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_imm.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_imm.h \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_insn.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_misc.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_operand_list.c \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/x86_operand_list.h
+
+@DISABLE_PROCESSOR_FALSE@check_SCRIPTS = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_stackwalk_test \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_stackwalk_machine_readable_test \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_dump_test \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk_test \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk_machine_readable_test
+
+TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
+@ANDROID_HOST_FALSE@@TESTS_AS_ROOT_FALSE@LOG_DRIVER = $(top_srcdir)/autotools/test-driver
+# The default Autotools test driver script.
+@ANDROID_HOST_FALSE@@TESTS_AS_ROOT_TRUE@LOG_DRIVER = $(top_srcdir)/autotools/root-test-driver $(top_srcdir)/autotools/test-driver
+
+# Since Autotools 1.2, tests are run through a special "test driver" script.
+# Unfortunately, it's not possible anymore to specify an alternative shell to
+# run them on connected devices, so use a slightly modified version of the
+# driver for Android.
+@ANDROID_HOST_TRUE@LOG_DRIVER = $(top_srcdir)/android/test-driver
+@LINUX_HOST_TRUE@src_client_linux_linux_dumper_unittest_helper_SOURCES = \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+
+@LINUX_HOST_TRUE@src_client_linux_linux_dumper_unittest_helper_LDFLAGS = $(PTHREAD_CFLAGS)
+@LINUX_HOST_TRUE@src_client_linux_linux_dumper_unittest_helper_CC = $(PTHREAD_CC)
+@ANDROID_HOST_FALSE@@LINUX_HOST_TRUE@src_client_linux_linux_dumper_unittest_helper_CXXFLAGS = $(PTHREAD_CFLAGS)
+# On Android PTHREAD_CFLAGS is empty, and adding src/common/android/include
+# to the include path is necessary to build this program.
+@ANDROID_HOST_TRUE@@LINUX_HOST_TRUE@src_client_linux_linux_dumper_unittest_helper_CXXFLAGS = $(AM_CXXFLAGS)
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_shlib_SOURCES =  \
+@LINUX_HOST_TRUE@	$(src_testing_libtesting_a_SOURCES) \
+@LINUX_HOST_TRUE@	src/client/linux/handler/exception_handler_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/microdump_writer_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/directory_reader_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/cpu_set_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/line_reader_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_core_dumper.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_core_dumper_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/minidump_writer_unittest.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc \
+@LINUX_HOST_TRUE@	src/common/linux/elf_core_dump.cc \
+@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support_unittest.cc \
+@LINUX_HOST_TRUE@	src/common/linux/tests/auto_testfile.h \
+@LINUX_HOST_TRUE@	src/common/linux/tests/crash_generator.cc \
+@LINUX_HOST_TRUE@	src/common/memory_allocator_unittest.cc \
+@LINUX_HOST_TRUE@	src/common/tests/auto_tempdir.h \
+@LINUX_HOST_TRUE@	src/common/tests/file_utils.cc \
+@LINUX_HOST_TRUE@	src/common/tests/file_utils.h \
+@LINUX_HOST_TRUE@	src/processor/basic_code_modules.cc \
+@LINUX_HOST_TRUE@	src/processor/convert_old_arm64_context.cc \
+@LINUX_HOST_TRUE@	src/processor/dump_context.cc \
+@LINUX_HOST_TRUE@	src/processor/dump_object.cc \
+@LINUX_HOST_TRUE@	src/processor/logging.cc \
+@LINUX_HOST_TRUE@	src/processor/minidump.cc \
+@LINUX_HOST_TRUE@	src/processor/pathname_stripper.cc \
+@LINUX_HOST_TRUE@	src/processor/proc_maps_linux.cc \
+@LINUX_HOST_TRUE@	$(am__append_21)
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_shlib_CPPFLAGS = \
+@LINUX_HOST_TRUE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_shlib_LDFLAGS =  \
+@LINUX_HOST_TRUE@	-shared -Wl,-h,linux_client_unittest_shlib \
+@LINUX_HOST_TRUE@	$(am__append_22)
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_shlib_LDADD = \
+@LINUX_HOST_TRUE@	src/client/linux/crash_generation/crash_generation_client.o \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/thread_info.o \
+@LINUX_HOST_TRUE@	src/client/linux/dump_writer_common/ucontext_reader.o \
+@LINUX_HOST_TRUE@	src/client/linux/handler/exception_handler.o \
+@LINUX_HOST_TRUE@	src/client/linux/handler/minidump_descriptor.o \
+@LINUX_HOST_TRUE@	src/client/linux/log/log.o \
+@LINUX_HOST_TRUE@	src/client/linux/microdump_writer/microdump_writer.o \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_dumper.o \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/linux_ptrace_dumper.o \
+@LINUX_HOST_TRUE@	src/client/linux/minidump_writer/minidump_writer.o \
+@LINUX_HOST_TRUE@	src/client/minidump_file_writer.o \
+@LINUX_HOST_TRUE@	src/common/convert_UTF.o \
+@LINUX_HOST_TRUE@	src/common/md5.o \
+@LINUX_HOST_TRUE@	src/common/linux/elfutils.o \
+@LINUX_HOST_TRUE@	src/common/linux/file_id.o \
+@LINUX_HOST_TRUE@	src/common/linux/guid_creator.o \
+@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.o \
+@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.o \
+@LINUX_HOST_TRUE@	src/common/linux/safe_readlink.o \
+@LINUX_HOST_TRUE@	src/common/string_conversion.o \
+@LINUX_HOST_TRUE@	$(TEST_LIBS) \
+@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_shlib_DEPENDENCIES = \
+@LINUX_HOST_TRUE@	src/client/linux/linux_dumper_unittest_helper \
+@LINUX_HOST_TRUE@	src/client/linux/libbreakpad_client.a \
+@LINUX_HOST_TRUE@	$(TEST_DEPS) \
+@LINUX_HOST_TRUE@	src/libbreakpad.a
+
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_SOURCES = 
+# The extra-long build id is for a test in minidump_writer_unittest.cc.
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_LDFLAGS =  \
+@LINUX_HOST_TRUE@	-Wl,-rpath,'$$ORIGIN' \
+@LINUX_HOST_TRUE@	-Wl,--build-id=0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f \
+@LINUX_HOST_TRUE@	$(am__append_23)
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_LDADD = \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest_shlib \
+@LINUX_HOST_TRUE@	$(TEST_LIBS)
+
+@LINUX_HOST_TRUE@src_client_linux_linux_client_unittest_DEPENDENCIES = \
+@LINUX_HOST_TRUE@	src/client/linux/linux_client_unittest_shlib
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core2md_core2md_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/core2md/core2md.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core2md_core2md_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/client/linux/libbreakpad_client.a
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core_handler_core_handler_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/core_handler/core_handler.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core_handler_core_handler_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/client/linux/libbreakpad_client.a
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_pid2md_pid2md_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/pid2md/pid2md.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_pid2md_pid2md_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/client/linux/libbreakpad_client.a
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_dump_syms_dump_syms_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_range_list_handler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/language.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/elf_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/crc32.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elfutils.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/file_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/safe_readlink.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/dump_syms/dump_syms.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_dump_syms_dump_syms_CXXFLAGS = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_CFLAGS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_dump_syms_dump_syms_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_LIBS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_md2core_minidump_2_core_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump-2-core.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump_memory_range.h
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_symupload_minidump_upload_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/http_upload.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/minidump_upload.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_symupload_minidump_upload_LDADD = -ldl
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_symupload_sym_upload_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/http_upload.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/http_upload.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/libcurl_wrapper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/libcurl_wrapper.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_collector_client.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_collector_client.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_upload.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/symbol_upload.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/linux/symupload/sym_upload.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_symupload_sym_upload_LDADD = -ldl
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_mac_dump_syms_dump_syms_mac_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_range_list_handler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/language.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/md5.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/elf_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/arch_utilities.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/dump_syms.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/dump_syms.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/file_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/file_id.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_id.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_utilities.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_utilities.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_walker.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_walker.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/tools/mac/dump_syms/dump_syms_tool.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	-I$(top_srcdir)/src/third_party/mac_headers \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_CFLAGS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	-DHAVE_MACH_O_NLIST_H
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_mac_dump_syms_dump_syms_mac_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_LIBS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_dumper_unittest_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/byte_cursor_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/convert_UTF.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_range_list_handler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/language.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/memory_range_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/string_conversion.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/string_conversion_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/test_assembler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader-inl.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/cfi_assembler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/cfi_assembler.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/elf_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/elf_reader.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader_die_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader_test_common.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/crc32.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_core_dump.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_core_dump_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elfutils.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/file_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/file_id_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/memory_mapped_file_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/safe_readlink.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/safe_readlink_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/synth_elf.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/synth_elf_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tests/crash_generator.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/tests/crash_generator.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/testdata/func-line-pairing.h \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tests/file_utils.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_dumper_unittest_CPPFLAGS = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(AM_CPPFLAGS) $(TEST_CFLAGS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_CFLAGS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_dumper_unittest_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(TEST_LIBS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(RUST_DEMANGLE_LIBS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_mac_macho_reader_unittest_SOURCES = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/language.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/md5.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/path_helper.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/test_assembler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/cfi_assembler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/elf_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/arch_utilities.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/file_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_id.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_reader_unittest.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_utilities.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/mac/macho_walker.cc \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/tests/file_utils.cc
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_mac_macho_reader_unittest_CPPFLAGS = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(AM_CPPFLAGS) $(TEST_CFLAGS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	-I$(top_srcdir)/src/third_party/mac_headers \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	-DHAVE_MACH_O_NLIST_H \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS)
+
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_common_mac_macho_reader_unittest_LDADD = \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(TEST_LIBS) \
+@DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@LINUX_HOST_TRUE@src_common_linux_google_crashdump_uploader_test_SOURCES = \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader.cc \
+@LINUX_HOST_TRUE@	src/common/linux/google_crashdump_uploader_test.cc \
+@LINUX_HOST_TRUE@	src/common/linux/libcurl_wrapper.cc
+
+@LINUX_HOST_TRUE@src_common_linux_google_crashdump_uploader_test_CPPFLAGS = \
+@LINUX_HOST_TRUE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@LINUX_HOST_TRUE@src_common_linux_google_crashdump_uploader_test_LDADD = \
+@LINUX_HOST_TRUE@	$(TEST_LIBS) \
+@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS) \
+@LINUX_HOST_TRUE@	-ldl
+
+@LINUX_HOST_TRUE@src_tools_linux_md2core_minidump_2_core_unittest_SOURCES = \
+@LINUX_HOST_TRUE@	src/tools/linux/md2core/minidump_memory_range_unittest.cc
+
+@LINUX_HOST_TRUE@src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS = \
+@LINUX_HOST_TRUE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@LINUX_HOST_TRUE@src_tools_linux_md2core_minidump_2_core_unittest_LDADD = \
+@LINUX_HOST_TRUE@	$(TEST_LIBS) \
+@LINUX_HOST_TRUE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_address_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/address_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_address_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o
+
+@DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_contained_range_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/contained_range_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_contained_range_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o
+
+@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_disassembler_x86_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_disassembler_x86_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_disassembler_x86_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_map_serializers_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/map_serializers_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_map_serializers_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_map_serializers_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_processor_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_processor_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_processor_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@        src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_unittest.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_proc_maps_linux_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_proc_maps_linux_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_proc_maps_linux_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_address_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_address_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_address_map_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_address_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_contained_range_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_contained_range_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_contained_range_map_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_contained_range_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_map_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_range_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/static_range_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_range_map_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_static_range_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_pathname_stripper_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_pathname_stripper_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_lower_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_lower_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_lower_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_lower_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_upper_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_truncate_upper_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_upper_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_truncate_upper_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/range_map_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_range_map_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_selftest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_selftest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_selftest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_amd64_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_amd64_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_amd64_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm64_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm64_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_arm64_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_address_list_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_address_list_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_address_list_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips64_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips64_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips64_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_mips64_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_x86_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_x86_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/libbreakpad.a \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_stackwalker_x86_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_synth_minidump_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.h \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump_unittest.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump.cc \
+@DISABLE_PROCESSOR_FALSE@	src/processor/synth_minidump.h
+
+@DISABLE_PROCESSOR_FALSE@src_processor_synth_minidump_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_processor_synth_minidump_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_test_assembler_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.cc \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler.h \
+@DISABLE_PROCESSOR_FALSE@	src/common/test_assembler_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_common_test_assembler_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_test_assembler_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_lineinfo_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader.h \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_lineinfo_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/bytereader.o \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/dwarf2reader.o \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/elf_reader.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_splitfunctions_unittest_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader.h \
+@DISABLE_PROCESSOR_FALSE@	src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS = \
+@DISABLE_PROCESSOR_FALSE@	$(AM_CPPFLAGS) $(TEST_CFLAGS)
+
+@DISABLE_PROCESSOR_FALSE@src_common_dwarf_dwarf2reader_splitfunctions_unittest_LDADD = \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/bytereader.o \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/dwarf2reader.o \
+@DISABLE_PROCESSOR_FALSE@  src/common/dwarf/elf_reader.o \
+@DISABLE_PROCESSOR_FALSE@	$(TEST_LIBS) \
+@DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+
+@DISABLE_PROCESSOR_FALSE@noinst_SCRIPTS = $(check_SCRIPTS)
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_dump.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o
+
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_stackwalk_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_stackwalk.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_microdump_stackwalk_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/common/path_helper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/microdump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalk_common.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_SOURCES = \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk.cc
+
+@DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_LDADD = \
+@DISABLE_PROCESSOR_FALSE@	src/common/path_helper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/convert_old_arm64_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_context.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/dump_object.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/proc_maps_linux.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/simple_symbol_supplier.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_cpu.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stack_frame_symbolizer.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalk_common.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_address_list.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_amd64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_arm64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_mips.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_ppc64.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_sparc.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/stackwalker_x86.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/symbolic_constants_win.o \
+@DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
+@DISABLE_PROCESSOR_FALSE@	src/third_party/libdisasm/libdisasm.a
+
+EXTRA_DIST = \
+	$(SCRIPTS) \
+	src/client/linux/data/linux-gate-amd.sym \
+	src/client/linux/data/linux-gate-intel.sym \
+	src/client/mac/handler/breakpad_nlist_64.cc \
+	src/client/mac/handler/breakpad_nlist_64.h \
+	src/client/mac/handler/dynamic_images.cc \
+	src/client/mac/handler/dynamic_images.h \
+	src/client/mac/handler/exception_handler.cc \
+	src/client/mac/handler/exception_handler.h \
+	src/client/mac/handler/mach_vm_compat.h \
+	src/client/mac/handler/minidump_generator.cc \
+	src/client/mac/handler/minidump_generator.h \
+	src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj \
+	src/client/mac/handler/minidump_tests32-Info.plist \
+	src/client/mac/handler/minidump_tests64-Info.plist \
+	src/client/mac/handler/obj-cTestCases-Info.plist \
+	src/client/mac/handler/protected_memory_allocator.cc \
+	src/client/mac/handler/protected_memory_allocator.h \
+	src/client/mac/handler/ucontext_compat.h \
+	src/client/mac/handler/testcases/testdata/dump_syms_i386_breakpad.sym \
+	src/client/mac/tests/BreakpadFramework_Test.mm \
+	src/client/mac/tests/crash_generation_server_test.cc \
+	src/client/mac/tests/exception_handler_test.cc \
+	src/client/mac/tests/minidump_generator_test.cc \
+	src/client/mac/tests/minidump_generator_test_helper.cc \
+	src/client/mac/tests/spawn_child_process.h \
+	src/client/mac/tests/testlogging.h \
+	src/client/minidump_file_writer_unittest.cc \
+	src/client/solaris/handler/Makefile \
+	src/client/solaris/handler/exception_handler.cc \
+	src/client/solaris/handler/exception_handler.h \
+	src/client/solaris/handler/exception_handler_test.cc \
+	src/client/solaris/handler/minidump_generator.cc \
+	src/client/solaris/handler/minidump_generator.h \
+	src/client/solaris/handler/minidump_test.cc \
+	src/client/solaris/handler/solaris_lwp.cc \
+	src/client/solaris/handler/solaris_lwp.h \
+	src/client/windows/breakpad_client.gyp \
+	src/client/windows/handler/exception_handler.cc \
+	src/client/windows/handler/exception_handler.h \
+	src/client/windows/handler/exception_handler.gyp \
+	src/client/windows/sender/crash_report_sender.cc \
+	src/client/windows/sender/crash_report_sender.h \
+	src/client/windows/sender/crash_report_sender.gyp \
+	src/common/dwarf/dwarf2diehandler.h \
+	src/common/dwarf/dwarf2enums.h \
+	src/common/dwarf/line_state_machine.h \
+	src/common/dwarf/types.h \
+	src/common/mac/arch_utilities.h \
+	src/common/mac/byteswap.h \
+	src/common/mac/HTTPMultipartUpload.h \
+	src/common/mac/HTTPMultipartUpload.m \
+	src/common/mac/string_utilities.cc \
+	src/common/mac/string_utilities.h \
+	src/common/mac/super_fat_arch.h \
+	src/common/scoped_ptr.h \
+	src/common/solaris/dump_symbols.cc \
+	src/common/solaris/dump_symbols.h \
+	src/common/solaris/file_id.cc \
+	src/common/solaris/file_id.h \
+	src/common/solaris/guid_creator.cc \
+	src/common/solaris/guid_creator.h \
+	src/common/solaris/message_output.h \
+	src/common/windows/guid_string.cc \
+	src/common/windows/guid_string.h \
+	src/common/windows/http_upload.cc \
+	src/common/windows/http_upload.h \
+	src/common/windows/pdb_source_line_writer.cc \
+	src/common/windows/pdb_source_line_writer.h \
+	src/common/windows/string_utils-inl.h \
+	src/common/windows/string_utils.cc \
+	src/processor/microdump_stackwalk_test_vars \
+	src/processor/stackwalk_common.cc \
+	src/processor/stackwalk_common.h \
+	src/processor/stackwalker_selftest_sol.s \
+	src/processor/testdata/ascii_read_av_block_write.dmp \
+	src/processor/testdata/ascii_read_av_clobber_write.dmp \
+	src/processor/testdata/ascii_read_av_conditional.dmp \
+	src/processor/testdata/ascii_read_av.dmp \
+	src/processor/testdata/ascii_read_av_then_jmp.dmp \
+	src/processor/testdata/ascii_read_av_xchg_write.dmp \
+	src/processor/testdata/ascii_write_av_arg_to_call.dmp \
+	src/processor/testdata/ascii_write_av.dmp \
+	src/processor/testdata/exec_av_on_stack.dmp \
+	src/processor/testdata/linux_divide_by_zero.dmp \
+	src/processor/testdata/linux_executable_heap.dmp \
+	src/processor/testdata/linux_executable_stack.dmp \
+	src/processor/testdata/linux_inside_module_exe_region1.dmp \
+	src/processor/testdata/linux_inside_module_exe_region2.dmp \
+	src/processor/testdata/linux_jmp_to_0.dmp \
+	src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp \
+	src/processor/testdata/linux_null_dereference.dmp \
+	src/processor/testdata/linux_null_read_av.dmp \
+	src/processor/testdata/linux_outside_module.dmp \
+	src/processor/testdata/linux_overflow.dmp \
+	src/processor/testdata/linux_raise_sigabrt.dmp \
+	src/processor/testdata/linux_stack_pointer_in_module.dmp \
+	src/processor/testdata/linux_stack_pointer_in_stack.dmp \
+	src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp \
+	src/processor/testdata/linux_stacksmash.dmp \
+	src/processor/testdata/linux_write_to_nonwritable_module.dmp \
+	src/processor/testdata/linux_write_to_nonwritable_region_math.dmp \
+	src/processor/testdata/linux_write_to_outside_module.dmp \
+	src/processor/testdata/linux_write_to_outside_module_via_math.dmp \
+	src/processor/testdata/linux_write_to_under_4k.dmp \
+	src/processor/testdata/microdump-arm64.dmp \
+	src/processor/testdata/microdump-arm.dmp \
+	src/processor/testdata/microdump-mips32.dmp \
+	src/processor/testdata/microdump-mips64.dmp \
+	src/processor/testdata/microdump-multiple.dmp \
+	src/processor/testdata/microdump.stackwalk-arm64.out \
+	src/processor/testdata/microdump.stackwalk-arm.out \
+	src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out \
+	src/processor/testdata/microdump.stackwalk.machine_readable-arm.out \
+	src/processor/testdata/microdump-withcrashreason.dmp \
+	src/processor/testdata/microdump-x86.dmp \
+	src/processor/testdata/minidump_32bit_crash_addr.dmp \
+	src/processor/testdata/minidump2.dmp \
+	src/processor/testdata/minidump2.dump.out \
+	src/processor/testdata/minidump2.stackwalk.machine_readable.out \
+	src/processor/testdata/minidump2.stackwalk.out \
+	src/processor/testdata/module0.out \
+	src/processor/testdata/module1.out \
+	src/processor/testdata/module2.out \
+	src/processor/testdata/module3_bad.out \
+	src/processor/testdata/module4_bad.out \
+	src/processor/testdata/null_read_av.dmp \
+	src/processor/testdata/null_write_av.dmp \
+	src/processor/testdata/read_av_clobber_write.dmp \
+	src/processor/testdata/read_av_conditional.dmp \
+	src/processor/testdata/read_av_non_null.dmp \
+	src/processor/testdata/stack_exhaustion.dmp \
+	src/processor/testdata/write_av_non_null.dmp \
+	src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym \
+	src/processor/testdata/symbols/ld-2.13.so/C32AD7E235EA6112E02A5B9D6219C4850/ld-2.13.so.sym \
+	src/processor/testdata/symbols/libc-2.13.so/F4F8DFCD5A5FB5A7CE64717E9E6AE3890/libc-2.13.so.sym \
+	src/processor/testdata/symbols/libgcc_s.so.1/18B180F90887D8F8B5C35D185444AF4C0/libgcc_s.so.1.sym \
+	src/processor/testdata/symbols/microdump/breakpad_unittests/D6D1FEC9A15DE7F38A236898871A2E770/breakpad_unittests.sym \
+	src/processor/testdata/symbols/microdump/breakpad_unittests/DA7778FB66018A4E9B4110ED06E730D00/breakpad_unittests.sym \
+	src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym \
+	src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym \
+	src/processor/testdata/symbols/null_read_av/7B7D1968FF0D47AE4366E9C3A7E1B6750/null_read_av.sym \
+	src/processor/testdata/symbols/overflow/B0E1FC01EF48E39CAF5C881D2DF0C3840/overflow.sym \
+	src/processor/testdata/symbols/test_app.pdb/5A9832E5287241C1838ED98914E9B7FF1/test_app.sym \
+	src/processor/testdata/test_app.cc \
+	src/testing/googletest/include/gtest/gtest.h \
+	src/testing/googletest/include/gtest/gtest-death-test.h \
+	src/testing/googletest/include/gtest/gtest-matchers.h \
+	src/testing/googletest/include/gtest/gtest-message.h \
+	src/testing/googletest/include/gtest/gtest-param-test.h \
+	src/testing/googletest/include/gtest/gtest-printers.h \
+	src/testing/googletest/include/gtest/gtest-spi.h \
+	src/testing/googletest/include/gtest/gtest-test-part.h \
+	src/testing/googletest/include/gtest/gtest-typed-test.h \
+	src/testing/googletest/include/gtest/gtest_pred_impl.h \
+	src/testing/googletest/include/gtest/gtest_prod.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest-port.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest-printers.h \
+	src/testing/googletest/include/gtest/internal/custom/gtest.h \
+	src/testing/googletest/include/gtest/internal/gtest-death-test-internal.h \
+	src/testing/googletest/include/gtest/internal/gtest-filepath.h \
+	src/testing/googletest/include/gtest/internal/gtest-internal.h \
+	src/testing/googletest/include/gtest/internal/gtest-param-util-generated.h \
+	src/testing/googletest/include/gtest/internal/gtest-param-util.h \
+	src/testing/googletest/include/gtest/internal/gtest-port-arch.h \
+	src/testing/googletest/include/gtest/internal/gtest-port.h \
+	src/testing/googletest/include/gtest/internal/gtest-string.h \
+	src/testing/googletest/include/gtest/internal/gtest-type-util.h \
+	src/testing/googletest/src/gtest.cc \
+	src/testing/googletest/src/gtest-death-test.cc \
+	src/testing/googletest/src/gtest-filepath.cc \
+	src/testing/googletest/src/gtest-internal-inl.h \
+	src/testing/googletest/src/gtest-matchers.cc \
+	src/testing/googletest/src/gtest-port.cc \
+	src/testing/googletest/src/gtest-printers.cc \
+	src/testing/googletest/src/gtest-test-part.cc \
+	src/testing/googletest/src/gtest-typed-test.cc \
+	src/testing/googlemock/include/gmock/gmock.h \
+	src/testing/googlemock/include/gmock/gmock-actions.h \
+	src/testing/googlemock/include/gmock/gmock-cardinalities.h \
+	src/testing/googlemock/include/gmock/gmock-function-mocker.h \
+	src/testing/googlemock/include/gmock/gmock-generated-actions.h \
+	src/testing/googlemock/include/gmock/gmock-generated-function-mockers.h \
+	src/testing/googlemock/include/gmock/gmock-generated-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-more-actions.h \
+	src/testing/googlemock/include/gmock/gmock-more-matchers.h \
+	src/testing/googlemock/include/gmock/gmock-nice-strict.h \
+	src/testing/googlemock/include/gmock/gmock-spec-builders.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-generated-actions.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-matchers.h \
+	src/testing/googlemock/include/gmock/internal/custom/gmock-port.h \
+	src/testing/googlemock/include/gmock/internal/gmock-internal-utils.h \
+	src/testing/googlemock/include/gmock/internal/gmock-port.h \
+	src/testing/googlemock/include/gmock/internal/gmock-pp.h \
+	src/testing/googlemock/src/gmock.cc \
+	src/testing/googlemock/src/gmock-cardinalities.cc \
+	src/testing/googlemock/src/gmock-internal-utils.cc \
+	src/testing/googlemock/src/gmock-matchers.cc \
+	src/testing/googlemock/src/gmock-spec-builders.cc \
+	src/testing/googlemock/src/gmock_main.cc \
+	src/third_party/curl/COPYING \
+	src/third_party/curl/curlbuild.h \
+	src/third_party/curl/curl.h \
+	src/third_party/curl/curlrules.h \
+	src/third_party/curl/curlver.h \
+	src/third_party/curl/easy.h \
+	src/third_party/curl/mprintf.h \
+	src/third_party/curl/multi.h \
+	src/third_party/curl/stdcheaders.h \
+	src/third_party/curl/typecheck-gcc.h \
+	src/third_party/curl/types.h \
+	src/third_party/mac_headers/architecture/byte_order.h \
+	src/third_party/mac_headers/i386/_types.h \
+	src/third_party/mac_headers/mach/boolean.h \
+	src/third_party/mac_headers/mach/i386/boolean.h \
+	src/third_party/mac_headers/mach/i386/vm_param.h \
+	src/third_party/mac_headers/mach/i386/vm_types.h \
+	src/third_party/mac_headers/mach/machine/boolean.h \
+	src/third_party/mac_headers/mach/machine.h \
+	src/third_party/mac_headers/mach/machine/thread_state.h \
+	src/third_party/mac_headers/mach/machine/thread_status.h \
+	src/third_party/mac_headers/mach/machine/vm_types.h \
+	src/third_party/mac_headers/mach-o/arch.h \
+	src/third_party/mac_headers/mach-o/fat.h \
+	src/third_party/mac_headers/mach-o/loader.h \
+	src/third_party/mac_headers/mach-o/nlist.h \
+	src/third_party/mac_headers/mach/thread_status.h \
+	src/third_party/mac_headers/mach/vm_prot.h \
+	src/third_party/mac_headers/README \
+	src/third_party/musl/README \
+	src/third_party/musl/COPYRIGHT \
+	src/third_party/musl/README.breakpad \
+	src/third_party/musl/VERSION \
+	src/third_party/musl/include/elf.h \
+	src/tools/mac/crash_report/crash_report.mm \
+	src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj \
+	src/tools/mac/crash_report/on_demand_symbol_supplier.h \
+	src/tools/mac/crash_report/on_demand_symbol_supplier.mm \
+	src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj \
+	src/tools/mac/dump_syms/dump_syms_tool.cc \
+	src/tools/mac/symupload/minidump_upload.m \
+	src/tools/mac/symupload/symupload.m \
+	src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj \
+	src/tools/solaris/dump_syms/Makefile \
+	src/tools/solaris/dump_syms/dump_syms.cc \
+	src/tools/solaris/dump_syms/run_regtest.sh \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.stabs \
+	src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym \
+	src/tools/windows/converter/ms_symbol_server_converter.cc \
+	src/tools/windows/converter/ms_symbol_server_converter.h \
+	src/tools/windows/converter/ms_symbol_server_converter.gyp \
+	src/tools/windows/dump_syms/dump_syms.cc \
+	src/tools/windows/dump_syms/dump_syms.gyp \
+	src/tools/windows/dump_syms/run_regtest.sh \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym \
+	src/tools/windows/dump_syms/testdata/dump_syms_regtest64.sym \
+	src/tools/windows/dump_syms/testdata/omap_reorder_bbs.sym \
+	src/tools/windows/dump_syms/testdata/omap_reorder_funcs.sym \
+	src/tools/windows/dump_syms/testdata/omap_stretched.sym \
+	src/tools/windows/dump_syms/testdata/omap_stretched_filled.sym \
+	src/tools/windows/symupload/symupload.cc \
+	src/tools/windows/symupload/symupload.gyp
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .S .c .cc .log .o .obj .test .test$(EXEEXT) .trs
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+src/config.h: src/stamp-h1
+	@test -f $@ || rm -f src/stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) src/stamp-h1
+
+src/stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status
+	@rm -f src/stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status src/config.h
+$(top_srcdir)/src/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f src/stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f src/config.h src/stamp-h1
+breakpad.pc: $(top_builddir)/config.status $(srcdir)/breakpad.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+breakpad-client.pc: $(top_builddir)/config.status $(srcdir)/breakpad-client.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+clean-checkPROGRAMS:
+	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-libexecPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+	-test -z "$(libexec_PROGRAMS)" || rm -f $(libexec_PROGRAMS)
+
+clean-noinstPROGRAMS:
+	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+clean-checkLIBRARIES:
+	-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
+install-libLIBRARIES: $(lib_LIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
+	@$(POST_INSTALL)
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  if test -f $$p; then \
+	    $(am__strip_dir) \
+	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
+	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
+	  else :; fi; \
+	done
+
+uninstall-libLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(libdir)'; $(am__uninstall_files_from_dir)
+
+clean-libLIBRARIES:
+	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+src/client/linux/crash_generation/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/crash_generation
+	@: > src/client/linux/crash_generation/$(am__dirstamp)
+src/client/linux/crash_generation/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/crash_generation/$(DEPDIR)
+	@: > src/client/linux/crash_generation/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/crash_generation/crash_generation_client.$(OBJEXT):  \
+	src/client/linux/crash_generation/$(am__dirstamp) \
+	src/client/linux/crash_generation/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/crash_generation/crash_generation_server.$(OBJEXT):  \
+	src/client/linux/crash_generation/$(am__dirstamp) \
+	src/client/linux/crash_generation/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/dump_writer_common/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/dump_writer_common
+	@: > src/client/linux/dump_writer_common/$(am__dirstamp)
+src/client/linux/dump_writer_common/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/dump_writer_common/$(DEPDIR)
+	@: > src/client/linux/dump_writer_common/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/dump_writer_common/thread_info.$(OBJEXT):  \
+	src/client/linux/dump_writer_common/$(am__dirstamp) \
+	src/client/linux/dump_writer_common/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/dump_writer_common/ucontext_reader.$(OBJEXT):  \
+	src/client/linux/dump_writer_common/$(am__dirstamp) \
+	src/client/linux/dump_writer_common/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/handler/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/handler
+	@: > src/client/linux/handler/$(am__dirstamp)
+src/client/linux/handler/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/handler/$(DEPDIR)
+	@: > src/client/linux/handler/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/handler/exception_handler.$(OBJEXT):  \
+	src/client/linux/handler/$(am__dirstamp) \
+	src/client/linux/handler/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/handler/minidump_descriptor.$(OBJEXT):  \
+	src/client/linux/handler/$(am__dirstamp) \
+	src/client/linux/handler/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/log/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/log
+	@: > src/client/linux/log/$(am__dirstamp)
+src/client/linux/log/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/log/$(DEPDIR)
+	@: > src/client/linux/log/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/log/log.$(OBJEXT):  \
+	src/client/linux/log/$(am__dirstamp) \
+	src/client/linux/log/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/microdump_writer/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/microdump_writer
+	@: > src/client/linux/microdump_writer/$(am__dirstamp)
+src/client/linux/microdump_writer/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/microdump_writer/$(DEPDIR)
+	@: > src/client/linux/microdump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/microdump_writer/microdump_writer.$(OBJEXT):  \
+	src/client/linux/microdump_writer/$(am__dirstamp) \
+	src/client/linux/microdump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/minidump_writer
+	@: > src/client/linux/minidump_writer/$(am__dirstamp)
+src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux/minidump_writer/$(DEPDIR)
+	@: > src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_core_dumper.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_dumper.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_ptrace_dumper.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/minidump_writer.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/$(am__dirstamp):
+	@$(MKDIR_P) src/client
+	@: > src/client/$(am__dirstamp)
+src/client/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/client/$(DEPDIR)
+	@: > src/client/$(DEPDIR)/$(am__dirstamp)
+src/client/minidump_file_writer.$(OBJEXT): src/client/$(am__dirstamp) \
+	src/client/$(DEPDIR)/$(am__dirstamp)
+src/common/$(am__dirstamp):
+	@$(MKDIR_P) src/common
+	@: > src/common/$(am__dirstamp)
+src/common/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/$(DEPDIR)
+	@: > src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/convert_UTF.$(OBJEXT): src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/md5.$(OBJEXT): src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/string_conversion.$(OBJEXT): src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/$(am__dirstamp):
+	@$(MKDIR_P) src/common/linux
+	@: > src/common/linux/$(am__dirstamp)
+src/common/linux/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/linux/$(DEPDIR)
+	@: > src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/elf_core_dump.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/elfutils.$(OBJEXT): src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/file_id.$(OBJEXT): src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/guid_creator.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/linux_libc_support.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/memory_mapped_file.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/safe_readlink.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/breakpad_getcontext.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/$(am__dirstamp):
+	@$(MKDIR_P) src/client/linux
+	@: > src/client/linux/$(am__dirstamp)
+
+src/client/linux/libbreakpad_client.a: $(src_client_linux_libbreakpad_client_a_OBJECTS) $(src_client_linux_libbreakpad_client_a_DEPENDENCIES) $(EXTRA_src_client_linux_libbreakpad_client_a_DEPENDENCIES) src/client/linux/$(am__dirstamp)
+	$(AM_V_at)-rm -f src/client/linux/libbreakpad_client.a
+	$(AM_V_AR)$(src_client_linux_libbreakpad_client_a_AR) src/client/linux/libbreakpad_client.a $(src_client_linux_libbreakpad_client_a_OBJECTS) $(src_client_linux_libbreakpad_client_a_LIBADD)
+	$(AM_V_at)$(RANLIB) src/client/linux/libbreakpad_client.a
+src/processor/$(am__dirstamp):
+	@$(MKDIR_P) src/processor
+	@: > src/processor/$(am__dirstamp)
+src/processor/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/processor/$(DEPDIR)
+	@: > src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/basic_code_modules.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/basic_source_line_resolver.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/call_stack.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/cfi_frame_info.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/convert_old_arm64_context.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/disassembler_x86.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/dump_context.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/dump_object.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/exploitability.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/exploitability_linux.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/exploitability_win.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/fast_source_line_resolver.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/logging.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/microdump.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/microdump_processor.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/minidump.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/minidump_processor.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/module_comparer.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/module_serializer.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/pathname_stripper.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/process_state.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/proc_maps_linux.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/simple_symbol_supplier.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/source_line_resolver_base.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stack_frame_cpu.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stack_frame_symbolizer.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_amd64.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_arm.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_arm64.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_address_list.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_mips.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_ppc.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_ppc64.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_sparc.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_x86.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/symbolic_constants_win.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/tokenize.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/$(am__dirstamp):
+	@$(MKDIR_P) src
+	@: > src/$(am__dirstamp)
+
+src/libbreakpad.a: $(src_libbreakpad_a_OBJECTS) $(src_libbreakpad_a_DEPENDENCIES) $(EXTRA_src_libbreakpad_a_DEPENDENCIES) src/$(am__dirstamp)
+	$(AM_V_at)-rm -f src/libbreakpad.a
+	$(AM_V_AR)$(src_libbreakpad_a_AR) src/libbreakpad.a $(src_libbreakpad_a_OBJECTS) $(src_libbreakpad_a_LIBADD)
+	$(AM_V_at)$(RANLIB) src/libbreakpad.a
+src/testing/googletest/src/$(am__dirstamp):
+	@$(MKDIR_P) src/testing/googletest/src
+	@: > src/testing/googletest/src/$(am__dirstamp)
+src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/testing/googletest/src/$(DEPDIR)
+	@: > src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googletest/src/libtesting_a-gtest-all.$(OBJEXT):  \
+	src/testing/googletest/src/$(am__dirstamp) \
+	src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googletest/src/libtesting_a-gtest_main.$(OBJEXT):  \
+	src/testing/googletest/src/$(am__dirstamp) \
+	src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googlemock/src/$(am__dirstamp):
+	@$(MKDIR_P) src/testing/googlemock/src
+	@: > src/testing/googlemock/src/$(am__dirstamp)
+src/testing/googlemock/src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/testing/googlemock/src/$(DEPDIR)
+	@: > src/testing/googlemock/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googlemock/src/libtesting_a-gmock-all.$(OBJEXT):  \
+	src/testing/googlemock/src/$(am__dirstamp) \
+	src/testing/googlemock/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/$(am__dirstamp):
+	@$(MKDIR_P) src/testing
+	@: > src/testing/$(am__dirstamp)
+
+src/testing/libtesting.a: $(src_testing_libtesting_a_OBJECTS) $(src_testing_libtesting_a_DEPENDENCIES) $(EXTRA_src_testing_libtesting_a_DEPENDENCIES) src/testing/$(am__dirstamp)
+	$(AM_V_at)-rm -f src/testing/libtesting.a
+	$(AM_V_AR)$(src_testing_libtesting_a_AR) src/testing/libtesting.a $(src_testing_libtesting_a_OBJECTS) $(src_testing_libtesting_a_LIBADD)
+	$(AM_V_at)$(RANLIB) src/testing/libtesting.a
+src/third_party/libdisasm/$(am__dirstamp):
+	@$(MKDIR_P) src/third_party/libdisasm
+	@: > src/third_party/libdisasm/$(am__dirstamp)
+src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/third_party/libdisasm/$(DEPDIR)
+	@: > src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_implicit.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_insn.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_invariant.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_modrm.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_opcode_tables.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_operand.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_reg.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/ia32_settings.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_disasm.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_format.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_imm.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_insn.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_misc.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+src/third_party/libdisasm/x86_operand_list.$(OBJEXT):  \
+	src/third_party/libdisasm/$(am__dirstamp) \
+	src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+
+src/third_party/libdisasm/libdisasm.a: $(src_third_party_libdisasm_libdisasm_a_OBJECTS) $(src_third_party_libdisasm_libdisasm_a_DEPENDENCIES) $(EXTRA_src_third_party_libdisasm_libdisasm_a_DEPENDENCIES) src/third_party/libdisasm/$(am__dirstamp)
+	$(AM_V_at)-rm -f src/third_party/libdisasm/libdisasm.a
+	$(AM_V_AR)$(src_third_party_libdisasm_libdisasm_a_AR) src/third_party/libdisasm/libdisasm.a $(src_third_party_libdisasm_libdisasm_a_OBJECTS) $(src_third_party_libdisasm_libdisasm_a_LIBADD)
+	$(AM_V_at)$(RANLIB) src/third_party/libdisasm/libdisasm.a
+
+src/client/linux/linux_client_unittest$(EXEEXT): $(src_client_linux_linux_client_unittest_OBJECTS) $(src_client_linux_linux_client_unittest_DEPENDENCIES) $(EXTRA_src_client_linux_linux_client_unittest_DEPENDENCIES) src/client/linux/$(am__dirstamp)
+	@rm -f src/client/linux/linux_client_unittest$(EXEEXT)
+	$(AM_V_CCLD)$(src_client_linux_linux_client_unittest_LINK) $(src_client_linux_linux_client_unittest_OBJECTS) $(src_client_linux_linux_client_unittest_LDADD) $(LIBS)
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.$(OBJEXT):  \
+	src/testing/googletest/src/$(am__dirstamp) \
+	src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.$(OBJEXT):  \
+	src/testing/googletest/src/$(am__dirstamp) \
+	src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.$(OBJEXT):  \
+	src/testing/googlemock/src/$(am__dirstamp) \
+	src/testing/googlemock/src/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.$(OBJEXT):  \
+	src/client/linux/handler/$(am__dirstamp) \
+	src/client/linux/handler/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.$(OBJEXT):  \
+	src/client/linux/microdump_writer/$(am__dirstamp) \
+	src/client/linux/microdump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tests/$(am__dirstamp):
+	@$(MKDIR_P) src/common/linux/tests
+	@: > src/common/linux/tests/$(am__dirstamp)
+src/common/linux/tests/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/linux/tests/$(DEPDIR)
+	@: > src/common/linux/tests/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.$(OBJEXT):  \
+	src/common/linux/tests/$(am__dirstamp) \
+	src/common/linux/tests/$(DEPDIR)/$(am__dirstamp)
+src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tests/$(am__dirstamp):
+	@$(MKDIR_P) src/common/tests
+	@: > src/common/tests/$(am__dirstamp)
+src/common/tests/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/tests/$(DEPDIR)
+	@: > src/common/tests/$(DEPDIR)/$(am__dirstamp)
+src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.$(OBJEXT):  \
+	src/common/tests/$(am__dirstamp) \
+	src/common/tests/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-dump_object.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-logging.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-minidump.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+
+src/client/linux/linux_client_unittest_shlib$(EXEEXT): $(src_client_linux_linux_client_unittest_shlib_OBJECTS) $(src_client_linux_linux_client_unittest_shlib_DEPENDENCIES) $(EXTRA_src_client_linux_linux_client_unittest_shlib_DEPENDENCIES) src/client/linux/$(am__dirstamp)
+	@rm -f src/client/linux/linux_client_unittest_shlib$(EXEEXT)
+	$(AM_V_CXXLD)$(src_client_linux_linux_client_unittest_shlib_LINK) $(src_client_linux_linux_client_unittest_shlib_OBJECTS) $(src_client_linux_linux_client_unittest_shlib_LDADD) $(LIBS)
+src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.$(OBJEXT):  \
+	src/client/linux/minidump_writer/$(am__dirstamp) \
+	src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+
+src/client/linux/linux_dumper_unittest_helper$(EXEEXT): $(src_client_linux_linux_dumper_unittest_helper_OBJECTS) $(src_client_linux_linux_dumper_unittest_helper_DEPENDENCIES) $(EXTRA_src_client_linux_linux_dumper_unittest_helper_DEPENDENCIES) src/client/linux/$(am__dirstamp)
+	@rm -f src/client/linux/linux_dumper_unittest_helper$(EXEEXT)
+	$(AM_V_CXXLD)$(src_client_linux_linux_dumper_unittest_helper_LINK) $(src_client_linux_linux_dumper_unittest_helper_OBJECTS) $(src_client_linux_linux_dumper_unittest_helper_LDADD) $(LIBS)
+src/common/dumper_unittest-byte_cursor_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-convert_UTF.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_cfi_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_cfi_to_module_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_cu_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_cu_to_module_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_line_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_line_to_module_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-dwarf_range_list_handler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-language.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-memory_range_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-module_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-path_helper.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-stabs_reader.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-stabs_reader_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-stabs_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-stabs_to_module_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-string_conversion.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-string_conversion_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dumper_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/$(am__dirstamp):
+	@$(MKDIR_P) src/common/dwarf
+	@: > src/common/dwarf/$(am__dirstamp)
+src/common/dwarf/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/dwarf/$(DEPDIR)
+	@: > src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-bytereader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-bytereader_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-cfi_assembler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-dwarf2diehandler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-dwarf2reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-elf_reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-crc32.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-dump_symbols.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-dump_symbols_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-elf_core_dump.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-elf_core_dump_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-elf_symbols_to_module.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-elfutils.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-file_id.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-file_id_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-linux_libc_support.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-memory_mapped_file.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-memory_mapped_file_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-safe_readlink.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-safe_readlink_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-synth_elf.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/dumper_unittest-synth_elf_unittest.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tests/dumper_unittest-crash_generator.$(OBJEXT):  \
+	src/common/linux/tests/$(am__dirstamp) \
+	src/common/linux/tests/$(DEPDIR)/$(am__dirstamp)
+src/common/tests/dumper_unittest-file_utils.$(OBJEXT):  \
+	src/common/tests/$(am__dirstamp) \
+	src/common/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/common/dumper_unittest$(EXEEXT): $(src_common_dumper_unittest_OBJECTS) $(src_common_dumper_unittest_DEPENDENCIES) $(EXTRA_src_common_dumper_unittest_DEPENDENCIES) src/common/$(am__dirstamp)
+	@rm -f src/common/dumper_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_dumper_unittest_OBJECTS) $(src_common_dumper_unittest_LDADD) $(LIBS)
+src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+
+src/common/dwarf/dwarf2reader_lineinfo_unittest$(EXEEXT): $(src_common_dwarf_dwarf2reader_lineinfo_unittest_OBJECTS) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_DEPENDENCIES) $(EXTRA_src_common_dwarf_dwarf2reader_lineinfo_unittest_DEPENDENCIES) src/common/dwarf/$(am__dirstamp)
+	@rm -f src/common/dwarf/dwarf2reader_lineinfo_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_OBJECTS) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_LDADD) $(LIBS)
+src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+
+src/common/dwarf/dwarf2reader_splitfunctions_unittest$(EXEEXT): $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_OBJECTS) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_DEPENDENCIES) $(EXTRA_src_common_dwarf_dwarf2reader_splitfunctions_unittest_DEPENDENCIES) src/common/dwarf/$(am__dirstamp)
+	@rm -f src/common/dwarf/dwarf2reader_splitfunctions_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_OBJECTS) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_LDADD) $(LIBS)
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+
+src/common/linux/google_crashdump_uploader_test$(EXEEXT): $(src_common_linux_google_crashdump_uploader_test_OBJECTS) $(src_common_linux_google_crashdump_uploader_test_DEPENDENCIES) $(EXTRA_src_common_linux_google_crashdump_uploader_test_DEPENDENCIES) src/common/linux/$(am__dirstamp)
+	@rm -f src/common/linux/google_crashdump_uploader_test$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_linux_google_crashdump_uploader_test_OBJECTS) $(src_common_linux_google_crashdump_uploader_test_LDADD) $(LIBS)
+src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-dwarf_cu_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-dwarf_line_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-language.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-md5.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-path_helper.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-stabs_reader.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-stabs_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/mac_macho_reader_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/mac_macho_reader_unittest-bytereader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/mac_macho_reader_unittest-elf_reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/$(am__dirstamp):
+	@$(MKDIR_P) src/common/mac
+	@: > src/common/mac/$(am__dirstamp)
+src/common/mac/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/common/mac/$(DEPDIR)
+	@: > src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-arch_utilities.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-file_id.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-macho_id.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-macho_reader.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-macho_reader_unittest.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-macho_utilities.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/macho_reader_unittest-macho_walker.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/tests/mac_macho_reader_unittest-file_utils.$(OBJEXT):  \
+	src/common/tests/$(am__dirstamp) \
+	src/common/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/common/mac/macho_reader_unittest$(EXEEXT): $(src_common_mac_macho_reader_unittest_OBJECTS) $(src_common_mac_macho_reader_unittest_DEPENDENCIES) $(EXTRA_src_common_mac_macho_reader_unittest_DEPENDENCIES) src/common/mac/$(am__dirstamp)
+	@rm -f src/common/mac/macho_reader_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_mac_macho_reader_unittest_OBJECTS) $(src_common_mac_macho_reader_unittest_LDADD) $(LIBS)
+src/common/test_assembler_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/test_assembler_unittest-test_assembler_unittest.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+
+src/common/test_assembler_unittest$(EXEEXT): $(src_common_test_assembler_unittest_OBJECTS) $(src_common_test_assembler_unittest_DEPENDENCIES) $(EXTRA_src_common_test_assembler_unittest_DEPENDENCIES) src/common/$(am__dirstamp)
+	@rm -f src/common/test_assembler_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_common_test_assembler_unittest_OBJECTS) $(src_common_test_assembler_unittest_LDADD) $(LIBS)
+src/processor/address_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/address_map_unittest$(EXEEXT): $(src_processor_address_map_unittest_OBJECTS) $(src_processor_address_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_address_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/address_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_address_map_unittest_OBJECTS) $(src_processor_address_map_unittest_LDADD) $(LIBS)
+src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/basic_source_line_resolver_unittest$(EXEEXT): $(src_processor_basic_source_line_resolver_unittest_OBJECTS) $(src_processor_basic_source_line_resolver_unittest_DEPENDENCIES) $(EXTRA_src_processor_basic_source_line_resolver_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/basic_source_line_resolver_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_basic_source_line_resolver_unittest_OBJECTS) $(src_processor_basic_source_line_resolver_unittest_LDADD) $(LIBS)
+src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/cfi_frame_info_unittest$(EXEEXT): $(src_processor_cfi_frame_info_unittest_OBJECTS) $(src_processor_cfi_frame_info_unittest_DEPENDENCIES) $(EXTRA_src_processor_cfi_frame_info_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/cfi_frame_info_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_cfi_frame_info_unittest_OBJECTS) $(src_processor_cfi_frame_info_unittest_LDADD) $(LIBS)
+src/processor/contained_range_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/contained_range_map_unittest$(EXEEXT): $(src_processor_contained_range_map_unittest_OBJECTS) $(src_processor_contained_range_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_contained_range_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/contained_range_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_contained_range_map_unittest_OBJECTS) $(src_processor_contained_range_map_unittest_LDADD) $(LIBS)
+src/processor/disassembler_x86_unittest-disassembler_x86_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/disassembler_x86_unittest$(EXEEXT): $(src_processor_disassembler_x86_unittest_OBJECTS) $(src_processor_disassembler_x86_unittest_DEPENDENCIES) $(EXTRA_src_processor_disassembler_x86_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/disassembler_x86_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_disassembler_x86_unittest_OBJECTS) $(src_processor_disassembler_x86_unittest_LDADD) $(LIBS)
+src/processor/exploitability_unittest-exploitability_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/exploitability_unittest$(EXEEXT): $(src_processor_exploitability_unittest_OBJECTS) $(src_processor_exploitability_unittest_DEPENDENCIES) $(EXTRA_src_processor_exploitability_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/exploitability_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_exploitability_unittest_OBJECTS) $(src_processor_exploitability_unittest_LDADD) $(LIBS)
+src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/fast_source_line_resolver_unittest$(EXEEXT): $(src_processor_fast_source_line_resolver_unittest_OBJECTS) $(src_processor_fast_source_line_resolver_unittest_DEPENDENCIES) $(EXTRA_src_processor_fast_source_line_resolver_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/fast_source_line_resolver_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_fast_source_line_resolver_unittest_OBJECTS) $(src_processor_fast_source_line_resolver_unittest_LDADD) $(LIBS)
+src/processor/map_serializers_unittest-map_serializers_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/map_serializers_unittest$(EXEEXT): $(src_processor_map_serializers_unittest_OBJECTS) $(src_processor_map_serializers_unittest_DEPENDENCIES) $(EXTRA_src_processor_map_serializers_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/map_serializers_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_map_serializers_unittest_OBJECTS) $(src_processor_map_serializers_unittest_LDADD) $(LIBS)
+src/processor/microdump_processor_unittest-microdump_processor_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/microdump_processor_unittest$(EXEEXT): $(src_processor_microdump_processor_unittest_OBJECTS) $(src_processor_microdump_processor_unittest_DEPENDENCIES) $(EXTRA_src_processor_microdump_processor_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/microdump_processor_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_microdump_processor_unittest_OBJECTS) $(src_processor_microdump_processor_unittest_LDADD) $(LIBS)
+src/processor/microdump_stackwalk.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/microdump_stackwalk$(EXEEXT): $(src_processor_microdump_stackwalk_OBJECTS) $(src_processor_microdump_stackwalk_DEPENDENCIES) $(EXTRA_src_processor_microdump_stackwalk_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/microdump_stackwalk$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_microdump_stackwalk_OBJECTS) $(src_processor_microdump_stackwalk_LDADD) $(LIBS)
+src/processor/minidump_dump.$(OBJEXT): src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/minidump_dump$(EXEEXT): $(src_processor_minidump_dump_OBJECTS) $(src_processor_minidump_dump_DEPENDENCIES) $(EXTRA_src_processor_minidump_dump_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/minidump_dump$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_minidump_dump_OBJECTS) $(src_processor_minidump_dump_LDADD) $(LIBS)
+src/processor/minidump_processor_unittest-minidump_processor_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/minidump_processor_unittest$(EXEEXT): $(src_processor_minidump_processor_unittest_OBJECTS) $(src_processor_minidump_processor_unittest_DEPENDENCIES) $(EXTRA_src_processor_minidump_processor_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/minidump_processor_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_minidump_processor_unittest_OBJECTS) $(src_processor_minidump_processor_unittest_LDADD) $(LIBS)
+src/processor/minidump_stackwalk.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/minidump_stackwalk$(EXEEXT): $(src_processor_minidump_stackwalk_OBJECTS) $(src_processor_minidump_stackwalk_DEPENDENCIES) $(EXTRA_src_processor_minidump_stackwalk_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/minidump_stackwalk$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_minidump_stackwalk_OBJECTS) $(src_processor_minidump_stackwalk_LDADD) $(LIBS)
+src/common/processor_minidump_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/minidump_unittest-minidump_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/minidump_unittest-synth_minidump.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/minidump_unittest$(EXEEXT): $(src_processor_minidump_unittest_OBJECTS) $(src_processor_minidump_unittest_DEPENDENCIES) $(EXTRA_src_processor_minidump_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/minidump_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_minidump_unittest_OBJECTS) $(src_processor_minidump_unittest_LDADD) $(LIBS)
+src/processor/pathname_stripper_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/pathname_stripper_unittest$(EXEEXT): $(src_processor_pathname_stripper_unittest_OBJECTS) $(src_processor_pathname_stripper_unittest_DEPENDENCIES) $(EXTRA_src_processor_pathname_stripper_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/pathname_stripper_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_pathname_stripper_unittest_OBJECTS) $(src_processor_pathname_stripper_unittest_LDADD) $(LIBS)
+src/processor/postfix_evaluator_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/postfix_evaluator_unittest$(EXEEXT): $(src_processor_postfix_evaluator_unittest_OBJECTS) $(src_processor_postfix_evaluator_unittest_DEPENDENCIES) $(EXTRA_src_processor_postfix_evaluator_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/postfix_evaluator_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_postfix_evaluator_unittest_OBJECTS) $(src_processor_postfix_evaluator_unittest_LDADD) $(LIBS)
+src/processor/proc_maps_linux_unittest-proc_maps_linux.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/proc_maps_linux_unittest$(EXEEXT): $(src_processor_proc_maps_linux_unittest_OBJECTS) $(src_processor_proc_maps_linux_unittest_DEPENDENCIES) $(EXTRA_src_processor_proc_maps_linux_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/proc_maps_linux_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_proc_maps_linux_unittest_OBJECTS) $(src_processor_proc_maps_linux_unittest_LDADD) $(LIBS)
+src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/range_map_truncate_lower_unittest$(EXEEXT): $(src_processor_range_map_truncate_lower_unittest_OBJECTS) $(src_processor_range_map_truncate_lower_unittest_DEPENDENCIES) $(EXTRA_src_processor_range_map_truncate_lower_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/range_map_truncate_lower_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_range_map_truncate_lower_unittest_OBJECTS) $(src_processor_range_map_truncate_lower_unittest_LDADD) $(LIBS)
+src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/range_map_truncate_upper_unittest$(EXEEXT): $(src_processor_range_map_truncate_upper_unittest_OBJECTS) $(src_processor_range_map_truncate_upper_unittest_DEPENDENCIES) $(EXTRA_src_processor_range_map_truncate_upper_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/range_map_truncate_upper_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_range_map_truncate_upper_unittest_OBJECTS) $(src_processor_range_map_truncate_upper_unittest_LDADD) $(LIBS)
+src/processor/range_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/range_map_unittest$(EXEEXT): $(src_processor_range_map_unittest_OBJECTS) $(src_processor_range_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_range_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/range_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_range_map_unittest_OBJECTS) $(src_processor_range_map_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_address_list_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_address_list_unittest$(EXEEXT): $(src_processor_stackwalker_address_list_unittest_OBJECTS) $(src_processor_stackwalker_address_list_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_address_list_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_address_list_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_address_list_unittest_OBJECTS) $(src_processor_stackwalker_address_list_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_amd64_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_amd64_unittest$(EXEEXT): $(src_processor_stackwalker_amd64_unittest_OBJECTS) $(src_processor_stackwalker_amd64_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_amd64_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_amd64_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_amd64_unittest_OBJECTS) $(src_processor_stackwalker_amd64_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_arm64_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_arm64_unittest$(EXEEXT): $(src_processor_stackwalker_arm64_unittest_OBJECTS) $(src_processor_stackwalker_arm64_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_arm64_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_arm64_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_arm64_unittest_OBJECTS) $(src_processor_stackwalker_arm64_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_arm_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_arm_unittest$(EXEEXT): $(src_processor_stackwalker_arm_unittest_OBJECTS) $(src_processor_stackwalker_arm_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_arm_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_arm_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_arm_unittest_OBJECTS) $(src_processor_stackwalker_arm_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_mips64_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_mips64_unittest$(EXEEXT): $(src_processor_stackwalker_mips64_unittest_OBJECTS) $(src_processor_stackwalker_mips64_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_mips64_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_mips64_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_mips64_unittest_OBJECTS) $(src_processor_stackwalker_mips64_unittest_LDADD) $(LIBS)
+src/common/processor_stackwalker_mips_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_mips_unittest$(EXEEXT): $(src_processor_stackwalker_mips_unittest_OBJECTS) $(src_processor_stackwalker_mips_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_mips_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_mips_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_mips_unittest_OBJECTS) $(src_processor_stackwalker_mips_unittest_LDADD) $(LIBS)
+src/processor/stackwalker_selftest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_selftest$(EXEEXT): $(src_processor_stackwalker_selftest_OBJECTS) $(src_processor_stackwalker_selftest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_selftest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_selftest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_selftest_OBJECTS) $(src_processor_stackwalker_selftest_LDADD) $(LIBS)
+src/common/processor_stackwalker_x86_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/stackwalker_x86_unittest$(EXEEXT): $(src_processor_stackwalker_x86_unittest_OBJECTS) $(src_processor_stackwalker_x86_unittest_DEPENDENCIES) $(EXTRA_src_processor_stackwalker_x86_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/stackwalker_x86_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_stackwalker_x86_unittest_OBJECTS) $(src_processor_stackwalker_x86_unittest_LDADD) $(LIBS)
+src/processor/static_address_map_unittest-static_address_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/static_address_map_unittest$(EXEEXT): $(src_processor_static_address_map_unittest_OBJECTS) $(src_processor_static_address_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_static_address_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/static_address_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_static_address_map_unittest_OBJECTS) $(src_processor_static_address_map_unittest_LDADD) $(LIBS)
+src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/static_contained_range_map_unittest$(EXEEXT): $(src_processor_static_contained_range_map_unittest_OBJECTS) $(src_processor_static_contained_range_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_static_contained_range_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/static_contained_range_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_static_contained_range_map_unittest_OBJECTS) $(src_processor_static_contained_range_map_unittest_LDADD) $(LIBS)
+src/processor/static_map_unittest-static_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/static_map_unittest$(EXEEXT): $(src_processor_static_map_unittest_OBJECTS) $(src_processor_static_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_static_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/static_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_static_map_unittest_OBJECTS) $(src_processor_static_map_unittest_LDADD) $(LIBS)
+src/processor/static_range_map_unittest-static_range_map_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/static_range_map_unittest$(EXEEXT): $(src_processor_static_range_map_unittest_OBJECTS) $(src_processor_static_range_map_unittest_DEPENDENCIES) $(EXTRA_src_processor_static_range_map_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/static_range_map_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_static_range_map_unittest_OBJECTS) $(src_processor_static_range_map_unittest_LDADD) $(LIBS)
+src/common/processor_synth_minidump_unittest-test_assembler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/processor/synth_minidump_unittest-synth_minidump_unittest.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/synth_minidump_unittest-synth_minidump.$(OBJEXT):  \
+	src/processor/$(am__dirstamp) \
+	src/processor/$(DEPDIR)/$(am__dirstamp)
+
+src/processor/synth_minidump_unittest$(EXEEXT): $(src_processor_synth_minidump_unittest_OBJECTS) $(src_processor_synth_minidump_unittest_DEPENDENCIES) $(EXTRA_src_processor_synth_minidump_unittest_DEPENDENCIES) src/processor/$(am__dirstamp)
+	@rm -f src/processor/synth_minidump_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_processor_synth_minidump_unittest_OBJECTS) $(src_processor_synth_minidump_unittest_LDADD) $(LIBS)
+src/tools/linux/core2md/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/core2md
+	@: > src/tools/linux/core2md/$(am__dirstamp)
+src/tools/linux/core2md/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/core2md/$(DEPDIR)
+	@: > src/tools/linux/core2md/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/core2md/core2md.$(OBJEXT):  \
+	src/tools/linux/core2md/$(am__dirstamp) \
+	src/tools/linux/core2md/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/core2md/core2md$(EXEEXT): $(src_tools_linux_core2md_core2md_OBJECTS) $(src_tools_linux_core2md_core2md_DEPENDENCIES) $(EXTRA_src_tools_linux_core2md_core2md_DEPENDENCIES) src/tools/linux/core2md/$(am__dirstamp)
+	@rm -f src/tools/linux/core2md/core2md$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_core2md_core2md_OBJECTS) $(src_tools_linux_core2md_core2md_LDADD) $(LIBS)
+src/tools/linux/core_handler/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/core_handler
+	@: > src/tools/linux/core_handler/$(am__dirstamp)
+src/tools/linux/core_handler/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/core_handler/$(DEPDIR)
+	@: > src/tools/linux/core_handler/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/core_handler/core_handler.$(OBJEXT):  \
+	src/tools/linux/core_handler/$(am__dirstamp) \
+	src/tools/linux/core_handler/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/core_handler/core_handler$(EXEEXT): $(src_tools_linux_core_handler_core_handler_OBJECTS) $(src_tools_linux_core_handler_core_handler_DEPENDENCIES) $(EXTRA_src_tools_linux_core_handler_core_handler_DEPENDENCIES) src/tools/linux/core_handler/$(am__dirstamp)
+	@rm -f src/tools/linux/core_handler/core_handler$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_core_handler_core_handler_OBJECTS) $(src_tools_linux_core_handler_core_handler_LDADD) $(LIBS)
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-language.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-path_helper.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-stabs_reader.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-crc32.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-file_id.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/dump_syms/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/dump_syms
+	@: > src/tools/linux/dump_syms/$(am__dirstamp)
+src/tools/linux/dump_syms/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/dump_syms/$(DEPDIR)
+	@: > src/tools/linux/dump_syms/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/dump_syms/dump_syms-dump_syms.$(OBJEXT):  \
+	src/tools/linux/dump_syms/$(am__dirstamp) \
+	src/tools/linux/dump_syms/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/dump_syms/dump_syms$(EXEEXT): $(src_tools_linux_dump_syms_dump_syms_OBJECTS) $(src_tools_linux_dump_syms_dump_syms_DEPENDENCIES) $(EXTRA_src_tools_linux_dump_syms_dump_syms_DEPENDENCIES) src/tools/linux/dump_syms/$(am__dirstamp)
+	@rm -f src/tools/linux/dump_syms/dump_syms$(EXEEXT)
+	$(AM_V_CXXLD)$(src_tools_linux_dump_syms_dump_syms_LINK) $(src_tools_linux_dump_syms_dump_syms_OBJECTS) $(src_tools_linux_dump_syms_dump_syms_LDADD) $(LIBS)
+src/common/path_helper.$(OBJEXT): src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/md2core/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/md2core
+	@: > src/tools/linux/md2core/$(am__dirstamp)
+src/tools/linux/md2core/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/md2core/$(DEPDIR)
+	@: > src/tools/linux/md2core/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/md2core/minidump-2-core.$(OBJEXT):  \
+	src/tools/linux/md2core/$(am__dirstamp) \
+	src/tools/linux/md2core/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/md2core/minidump-2-core$(EXEEXT): $(src_tools_linux_md2core_minidump_2_core_OBJECTS) $(src_tools_linux_md2core_minidump_2_core_DEPENDENCIES) $(EXTRA_src_tools_linux_md2core_minidump_2_core_DEPENDENCIES) src/tools/linux/md2core/$(am__dirstamp)
+	@rm -f src/tools/linux/md2core/minidump-2-core$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_md2core_minidump_2_core_OBJECTS) $(src_tools_linux_md2core_minidump_2_core_LDADD) $(LIBS)
+src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.$(OBJEXT):  \
+	src/tools/linux/md2core/$(am__dirstamp) \
+	src/tools/linux/md2core/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/md2core/minidump_2_core_unittest$(EXEEXT): $(src_tools_linux_md2core_minidump_2_core_unittest_OBJECTS) $(src_tools_linux_md2core_minidump_2_core_unittest_DEPENDENCIES) $(EXTRA_src_tools_linux_md2core_minidump_2_core_unittest_DEPENDENCIES) src/tools/linux/md2core/$(am__dirstamp)
+	@rm -f src/tools/linux/md2core/minidump_2_core_unittest$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_md2core_minidump_2_core_unittest_OBJECTS) $(src_tools_linux_md2core_minidump_2_core_unittest_LDADD) $(LIBS)
+src/tools/linux/pid2md/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/pid2md
+	@: > src/tools/linux/pid2md/$(am__dirstamp)
+src/tools/linux/pid2md/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/pid2md/$(DEPDIR)
+	@: > src/tools/linux/pid2md/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/pid2md/pid2md.$(OBJEXT):  \
+	src/tools/linux/pid2md/$(am__dirstamp) \
+	src/tools/linux/pid2md/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/pid2md/pid2md$(EXEEXT): $(src_tools_linux_pid2md_pid2md_OBJECTS) $(src_tools_linux_pid2md_pid2md_DEPENDENCIES) $(EXTRA_src_tools_linux_pid2md_pid2md_DEPENDENCIES) src/tools/linux/pid2md/$(am__dirstamp)
+	@rm -f src/tools/linux/pid2md/pid2md$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_pid2md_pid2md_OBJECTS) $(src_tools_linux_pid2md_pid2md_LDADD) $(LIBS)
+src/common/linux/http_upload.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/symupload/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/symupload
+	@: > src/tools/linux/symupload/$(am__dirstamp)
+src/tools/linux/symupload/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/linux/symupload/$(DEPDIR)
+	@: > src/tools/linux/symupload/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/symupload/minidump_upload.$(OBJEXT):  \
+	src/tools/linux/symupload/$(am__dirstamp) \
+	src/tools/linux/symupload/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/symupload/minidump_upload$(EXEEXT): $(src_tools_linux_symupload_minidump_upload_OBJECTS) $(src_tools_linux_symupload_minidump_upload_DEPENDENCIES) $(EXTRA_src_tools_linux_symupload_minidump_upload_DEPENDENCIES) src/tools/linux/symupload/$(am__dirstamp)
+	@rm -f src/tools/linux/symupload/minidump_upload$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_symupload_minidump_upload_OBJECTS) $(src_tools_linux_symupload_minidump_upload_LDADD) $(LIBS)
+src/common/linux/libcurl_wrapper.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/symbol_collector_client.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/common/linux/symbol_upload.$(OBJEXT):  \
+	src/common/linux/$(am__dirstamp) \
+	src/common/linux/$(DEPDIR)/$(am__dirstamp)
+src/tools/linux/symupload/sym_upload.$(OBJEXT):  \
+	src/tools/linux/symupload/$(am__dirstamp) \
+	src/tools/linux/symupload/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/linux/symupload/sym_upload$(EXEEXT): $(src_tools_linux_symupload_sym_upload_OBJECTS) $(src_tools_linux_symupload_sym_upload_DEPENDENCIES) $(EXTRA_src_tools_linux_symupload_sym_upload_DEPENDENCIES) src/tools/linux/symupload/$(am__dirstamp)
+	@rm -f src/tools/linux/symupload/sym_upload$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(src_tools_linux_symupload_sym_upload_OBJECTS) $(src_tools_linux_symupload_sym_upload_LDADD) $(LIBS)
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-language.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-md5.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.$(OBJEXT):  \
+	src/common/$(am__dirstamp) \
+	src/common/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.$(OBJEXT):  \
+	src/common/dwarf/$(am__dirstamp) \
+	src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.$(OBJEXT):  \
+	src/common/mac/$(am__dirstamp) \
+	src/common/mac/$(DEPDIR)/$(am__dirstamp)
+src/tools/mac/dump_syms/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/mac/dump_syms
+	@: > src/tools/mac/dump_syms/$(am__dirstamp)
+src/tools/mac/dump_syms/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/tools/mac/dump_syms/$(DEPDIR)
+	@: > src/tools/mac/dump_syms/$(DEPDIR)/$(am__dirstamp)
+src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.$(OBJEXT):  \
+	src/tools/mac/dump_syms/$(am__dirstamp) \
+	src/tools/mac/dump_syms/$(DEPDIR)/$(am__dirstamp)
+
+src/tools/mac/dump_syms/dump_syms_mac$(EXEEXT): $(src_tools_mac_dump_syms_dump_syms_mac_OBJECTS) $(src_tools_mac_dump_syms_dump_syms_mac_DEPENDENCIES) $(EXTRA_src_tools_mac_dump_syms_dump_syms_mac_DEPENDENCIES) src/tools/mac/dump_syms/$(am__dirstamp)
+	@rm -f src/tools/mac/dump_syms/dump_syms_mac$(EXEEXT)
+	$(AM_V_CXXLD)$(src_tools_mac_dump_syms_dump_syms_mac_LINK) $(src_tools_mac_dump_syms_dump_syms_mac_OBJECTS) $(src_tools_mac_dump_syms_dump_syms_mac_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+	-rm -f src/client/*.$(OBJEXT)
+	-rm -f src/client/linux/crash_generation/*.$(OBJEXT)
+	-rm -f src/client/linux/dump_writer_common/*.$(OBJEXT)
+	-rm -f src/client/linux/handler/*.$(OBJEXT)
+	-rm -f src/client/linux/log/*.$(OBJEXT)
+	-rm -f src/client/linux/microdump_writer/*.$(OBJEXT)
+	-rm -f src/client/linux/minidump_writer/*.$(OBJEXT)
+	-rm -f src/common/*.$(OBJEXT)
+	-rm -f src/common/dwarf/*.$(OBJEXT)
+	-rm -f src/common/linux/*.$(OBJEXT)
+	-rm -f src/common/linux/tests/*.$(OBJEXT)
+	-rm -f src/common/mac/*.$(OBJEXT)
+	-rm -f src/common/tests/*.$(OBJEXT)
+	-rm -f src/processor/*.$(OBJEXT)
+	-rm -f src/testing/googlemock/src/*.$(OBJEXT)
+	-rm -f src/testing/googletest/src/*.$(OBJEXT)
+	-rm -f src/third_party/libdisasm/*.$(OBJEXT)
+	-rm -f src/tools/linux/core2md/*.$(OBJEXT)
+	-rm -f src/tools/linux/core_handler/*.$(OBJEXT)
+	-rm -f src/tools/linux/dump_syms/*.$(OBJEXT)
+	-rm -f src/tools/linux/md2core/*.$(OBJEXT)
+	-rm -f src/tools/linux/pid2md/*.$(OBJEXT)
+	-rm -f src/tools/linux/symupload/*.$(OBJEXT)
+	-rm -f src/tools/mac/dump_syms/*.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/$(DEPDIR)/minidump_file_writer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/crash_generation/$(DEPDIR)/crash_generation_client.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/crash_generation/$(DEPDIR)/crash_generation_server.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/dump_writer_common/$(DEPDIR)/thread_info.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/dump_writer_common/$(DEPDIR)/ucontext_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/handler/$(DEPDIR)/exception_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/handler/$(DEPDIR)/minidump_descriptor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/log/$(DEPDIR)/log.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/microdump_writer/$(DEPDIR)/microdump_writer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_core_dumper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/linux_ptrace_dumper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/client/linux/minidump_writer/$(DEPDIR)/minidump_writer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/convert_UTF.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-language.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-path_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/md5.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/path_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/string_conversion.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/breakpad_getcontext.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/elf_core_dump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/elfutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/file_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/guid_creator.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/http_upload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/libcurl_wrapper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/linux_libc_support.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/memory_mapped_file.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/safe_readlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/symbol_collector_client.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/symbol_upload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/address_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/basic_code_modules.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/basic_source_line_resolver.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/call_stack.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/cfi_frame_info.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/contained_range_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/convert_old_arm64_context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/disassembler_x86.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_object.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/exploitability.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/exploitability_linux.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/exploitability_win.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/fast_source_line_resolver.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/logging.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/microdump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/microdump_processor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/microdump_stackwalk.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_dump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_processor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_stackwalk.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/module_comparer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/module_serializer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/pathname_stripper.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/pathname_stripper_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/postfix_evaluator_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/proc_maps_linux.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/process_state.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/range_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/simple_symbol_supplier.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/source_line_resolver_base.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stack_frame_cpu.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stack_frame_symbolizer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_address_list.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_amd64.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_arm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_arm64.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_mips.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_ppc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_ppc64.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_selftest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_sparc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_x86.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/symbolic_constants_win.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/tokenize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_implicit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_insn.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_invariant.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_modrm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_opcode_tables.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_operand.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_reg.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/ia32_settings.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_disasm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_format.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_imm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_insn.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_misc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/third_party/libdisasm/$(DEPDIR)/x86_operand_list.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/core2md/$(DEPDIR)/core2md.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/core_handler/$(DEPDIR)/core_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/md2core/$(DEPDIR)/minidump-2-core.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/pid2md/$(DEPDIR)/pid2md.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/symupload/$(DEPDIR)/minidump_upload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/linux/symupload/$(DEPDIR)/sym_upload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+	@$(MKDIR_P) $(@D)
+	@echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.S.o:
+@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCCAS_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $<
+
+.S.obj:
+@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCCAS_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.o: src/common/linux/breakpad_getcontext.S
+@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.o -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.o `test -f 'src/common/linux/breakpad_getcontext.S' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext.S
+@am__fastdepCCAS_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS)source='src/common/linux/breakpad_getcontext.S' object='src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.o `test -f 'src/common/linux/breakpad_getcontext.S' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext.S
+
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj: src/common/linux/breakpad_getcontext.S
+@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj `if test -f 'src/common/linux/breakpad_getcontext.S'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext.S'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext.S'; fi`
+@am__fastdepCCAS_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS)source='src/common/linux/breakpad_getcontext.S' object='src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj `if test -f 'src/common/linux/breakpad_getcontext.S'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext.S'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext.S'; fi`
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.o:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+src/testing/googletest/src/libtesting_a-gtest-all.o: src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/libtesting_a-gtest-all.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Tpo -c -o src/testing/googletest/src/libtesting_a-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest-all.cc' object='src/testing/googletest/src/libtesting_a-gtest-all.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/libtesting_a-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
+
+src/testing/googletest/src/libtesting_a-gtest-all.obj: src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/libtesting_a-gtest-all.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Tpo -c -o src/testing/googletest/src/libtesting_a-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest-all.cc' object='src/testing/googletest/src/libtesting_a-gtest-all.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/libtesting_a-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
+
+src/testing/googletest/src/libtesting_a-gtest_main.o: src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/libtesting_a-gtest_main.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Tpo -c -o src/testing/googletest/src/libtesting_a-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest_main.cc' object='src/testing/googletest/src/libtesting_a-gtest_main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/libtesting_a-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
+
+src/testing/googletest/src/libtesting_a-gtest_main.obj: src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/libtesting_a-gtest_main.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Tpo -c -o src/testing/googletest/src/libtesting_a-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest_main.cc' object='src/testing/googletest/src/libtesting_a-gtest_main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/libtesting_a-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
+
+src/testing/googlemock/src/libtesting_a-gmock-all.o: src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/libtesting_a-gmock-all.o -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Tpo -c -o src/testing/googlemock/src/libtesting_a-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googlemock/src/gmock-all.cc' object='src/testing/googlemock/src/libtesting_a-gmock-all.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/libtesting_a-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
+
+src/testing/googlemock/src/libtesting_a-gmock-all.obj: src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/libtesting_a-gmock-all.obj -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Tpo -c -o src/testing/googlemock/src/libtesting_a-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googlemock/src/gmock-all.cc' object='src/testing/googlemock/src/libtesting_a-gmock-all.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/libtesting_a-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
+
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.o: src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Tpo -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest-all.cc' object='src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
+
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.obj: src/testing/googletest/src/gtest-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Tpo -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest-all.cc' object='src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
+
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.o: src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Tpo -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest_main.cc' object='src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
+
+src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.obj: src/testing/googletest/src/gtest_main.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Tpo -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googletest/src/gtest_main.cc' object='src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/client_linux_linux_client_unittest_shlib-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
+
+src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.o: src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.o -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Tpo -c -o src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googlemock/src/gmock-all.cc' object='src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
+
+src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.obj: src/testing/googlemock/src/gmock-all.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.obj -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Tpo -c -o src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/testing/googlemock/src/gmock-all.cc' object='src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/client_linux_linux_client_unittest_shlib-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
+
+src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.o: src/client/linux/handler/exception_handler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.o -MD -MP -MF src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Tpo -c -o src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.o `test -f 'src/client/linux/handler/exception_handler_unittest.cc' || echo '$(srcdir)/'`src/client/linux/handler/exception_handler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Tpo src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/handler/exception_handler_unittest.cc' object='src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.o `test -f 'src/client/linux/handler/exception_handler_unittest.cc' || echo '$(srcdir)/'`src/client/linux/handler/exception_handler_unittest.cc
+
+src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.obj: src/client/linux/handler/exception_handler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.obj -MD -MP -MF src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Tpo -c -o src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.obj `if test -f 'src/client/linux/handler/exception_handler_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/handler/exception_handler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/handler/exception_handler_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Tpo src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/handler/exception_handler_unittest.cc' object='src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/handler/linux_client_unittest_shlib-exception_handler_unittest.obj `if test -f 'src/client/linux/handler/exception_handler_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/handler/exception_handler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/handler/exception_handler_unittest.cc'; fi`
+
+src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.o: src/client/linux/microdump_writer/microdump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.o -MD -MP -MF src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Tpo -c -o src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.o `test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/microdump_writer/microdump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Tpo src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/microdump_writer/microdump_writer_unittest.cc' object='src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.o `test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/microdump_writer/microdump_writer_unittest.cc
+
+src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.obj: src/client/linux/microdump_writer/microdump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.obj -MD -MP -MF src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Tpo -c -o src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.obj `if test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/microdump_writer/microdump_writer_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Tpo src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/microdump_writer/microdump_writer_unittest.cc' object='src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/microdump_writer/linux_client_unittest_shlib-microdump_writer_unittest.obj `if test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/microdump_writer/microdump_writer_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.o: src/client/linux/minidump_writer/directory_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.o `test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/directory_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/directory_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.o `test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/directory_reader_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.obj: src/client/linux/minidump_writer/directory_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/directory_reader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/directory_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-directory_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/directory_reader_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.o: src/client/linux/minidump_writer/cpu_set_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.o `test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/cpu_set_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/cpu_set_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.o `test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/cpu_set_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.obj: src/client/linux/minidump_writer/cpu_set_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.obj `if test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/cpu_set_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/cpu_set_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-cpu_set_unittest.obj `if test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/cpu_set_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.o: src/client/linux/minidump_writer/line_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.o `test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/line_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/line_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.o `test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/line_reader_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.obj: src/client/linux/minidump_writer/line_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/line_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/line_reader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/line_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-line_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/line_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/line_reader_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.o: src/client/linux/minidump_writer/linux_core_dumper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_core_dumper.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.obj: src/client/linux/minidump_writer/linux_core_dumper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_core_dumper.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.o: src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.obj: src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_core_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o: src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj: src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.o: src/client/linux/minidump_writer/minidump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/minidump_writer_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.obj: src/client/linux/minidump_writer/minidump_writer_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/minidump_writer_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.o: src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.obj: src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-minidump_writer_unittest_utils.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; fi`
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o: src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o `test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o `test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+
+src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj: src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' object='src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; fi`
+
+src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.o: src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.o -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
+
+src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.obj: src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.obj -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
+
+src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o: src/common/linux/linux_libc_support_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o `test -f 'src/common/linux/linux_libc_support_unittest.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support_unittest.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o `test -f 'src/common/linux/linux_libc_support_unittest.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support_unittest.cc
+
+src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj: src/common/linux/linux_libc_support_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj `if test -f 'src/common/linux/linux_libc_support_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support_unittest.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj `if test -f 'src/common/linux/linux_libc_support_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support_unittest.cc'; fi`
+
+src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.o: src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.o -MD -MP -MF src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Tpo -c -o src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/tests/crash_generator.cc' object='src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
+
+src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.obj: src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.obj -MD -MP -MF src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Tpo -c -o src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/tests/crash_generator.cc' object='src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/client_linux_linux_client_unittest_shlib-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
+
+src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o: src/common/memory_allocator_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o -MD -MP -MF src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo -c -o src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o `test -f 'src/common/memory_allocator_unittest.cc' || echo '$(srcdir)/'`src/common/memory_allocator_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/memory_allocator_unittest.cc' object='src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o `test -f 'src/common/memory_allocator_unittest.cc' || echo '$(srcdir)/'`src/common/memory_allocator_unittest.cc
+
+src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj: src/common/memory_allocator_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo -c -o src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj `if test -f 'src/common/memory_allocator_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_allocator_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_allocator_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/memory_allocator_unittest.cc' object='src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj `if test -f 'src/common/memory_allocator_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_allocator_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_allocator_unittest.cc'; fi`
+
+src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.o: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Tpo -c -o src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Tpo src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+
+src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.obj: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Tpo -c -o src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Tpo src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/client_linux_linux_client_unittest_shlib-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.o: src/processor/basic_code_modules.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.o `test -f 'src/processor/basic_code_modules.cc' || echo '$(srcdir)/'`src/processor/basic_code_modules.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/basic_code_modules.cc' object='src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.o `test -f 'src/processor/basic_code_modules.cc' || echo '$(srcdir)/'`src/processor/basic_code_modules.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.obj: src/processor/basic_code_modules.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/basic_code_modules.cc' object='src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o: src/processor/convert_old_arm64_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/convert_old_arm64_context.cc' object='src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj: src/processor/convert_old_arm64_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/convert_old_arm64_context.cc' object='src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-dump_context.o: src/processor/dump_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-dump_context.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/dump_context.cc' object='src/processor/client_linux_linux_client_unittest_shlib-dump_context.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-dump_context.obj: src/processor/dump_context.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-dump_context.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_context.obj `if test -f 'src/processor/dump_context.cc'; then $(CYGPATH_W) 'src/processor/dump_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_context.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/dump_context.cc' object='src/processor/client_linux_linux_client_unittest_shlib-dump_context.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_context.obj `if test -f 'src/processor/dump_context.cc'; then $(CYGPATH_W) 'src/processor/dump_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_context.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-dump_object.o: src/processor/dump_object.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-dump_object.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_object.o `test -f 'src/processor/dump_object.cc' || echo '$(srcdir)/'`src/processor/dump_object.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/dump_object.cc' object='src/processor/client_linux_linux_client_unittest_shlib-dump_object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_object.o `test -f 'src/processor/dump_object.cc' || echo '$(srcdir)/'`src/processor/dump_object.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-dump_object.obj: src/processor/dump_object.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-dump_object.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_object.obj `if test -f 'src/processor/dump_object.cc'; then $(CYGPATH_W) 'src/processor/dump_object.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_object.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/dump_object.cc' object='src/processor/client_linux_linux_client_unittest_shlib-dump_object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-dump_object.obj `if test -f 'src/processor/dump_object.cc'; then $(CYGPATH_W) 'src/processor/dump_object.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_object.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-logging.o: src/processor/logging.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-logging.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-logging.o `test -f 'src/processor/logging.cc' || echo '$(srcdir)/'`src/processor/logging.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/logging.cc' object='src/processor/client_linux_linux_client_unittest_shlib-logging.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-logging.o `test -f 'src/processor/logging.cc' || echo '$(srcdir)/'`src/processor/logging.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-logging.obj: src/processor/logging.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-logging.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-logging.obj `if test -f 'src/processor/logging.cc'; then $(CYGPATH_W) 'src/processor/logging.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/logging.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/logging.cc' object='src/processor/client_linux_linux_client_unittest_shlib-logging.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-logging.obj `if test -f 'src/processor/logging.cc'; then $(CYGPATH_W) 'src/processor/logging.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/logging.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-minidump.o: src/processor/minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-minidump.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-minidump.o `test -f 'src/processor/minidump.cc' || echo '$(srcdir)/'`src/processor/minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump.cc' object='src/processor/client_linux_linux_client_unittest_shlib-minidump.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-minidump.o `test -f 'src/processor/minidump.cc' || echo '$(srcdir)/'`src/processor/minidump.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-minidump.obj: src/processor/minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-minidump.obj `if test -f 'src/processor/minidump.cc'; then $(CYGPATH_W) 'src/processor/minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump.cc' object='src/processor/client_linux_linux_client_unittest_shlib-minidump.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-minidump.obj `if test -f 'src/processor/minidump.cc'; then $(CYGPATH_W) 'src/processor/minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.o: src/processor/pathname_stripper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.o `test -f 'src/processor/pathname_stripper.cc' || echo '$(srcdir)/'`src/processor/pathname_stripper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/pathname_stripper.cc' object='src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.o `test -f 'src/processor/pathname_stripper.cc' || echo '$(srcdir)/'`src/processor/pathname_stripper.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.obj: src/processor/pathname_stripper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.obj `if test -f 'src/processor/pathname_stripper.cc'; then $(CYGPATH_W) 'src/processor/pathname_stripper.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/pathname_stripper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/pathname_stripper.cc' object='src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-pathname_stripper.obj `if test -f 'src/processor/pathname_stripper.cc'; then $(CYGPATH_W) 'src/processor/pathname_stripper.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/pathname_stripper.cc'; fi`
+
+src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.o: src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.o -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux.cc' object='src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
+
+src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.obj: src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.obj -MD -MP -MF src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo -c -o src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux.cc' object='src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/client_linux_linux_client_unittest_shlib-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
+
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o: src/common/linux/breakpad_getcontext_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o `test -f 'src/common/linux/breakpad_getcontext_unittest.cc' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/breakpad_getcontext_unittest.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o `test -f 'src/common/linux/breakpad_getcontext_unittest.cc' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext_unittest.cc
+
+src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj: src/common/linux/breakpad_getcontext_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj `if test -f 'src/common/linux/breakpad_getcontext_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/breakpad_getcontext_unittest.cc' object='src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj `if test -f 'src/common/linux/breakpad_getcontext_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext_unittest.cc'; fi`
+
+src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.o: src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo -c -o src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.o `test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' object='src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.o `test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+
+src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj: src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo -c -o src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj `if test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' object='src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj `if test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; fi`
+
+src/common/dumper_unittest-byte_cursor_unittest.o: src/common/byte_cursor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-byte_cursor_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Tpo -c -o src/common/dumper_unittest-byte_cursor_unittest.o `test -f 'src/common/byte_cursor_unittest.cc' || echo '$(srcdir)/'`src/common/byte_cursor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/byte_cursor_unittest.cc' object='src/common/dumper_unittest-byte_cursor_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-byte_cursor_unittest.o `test -f 'src/common/byte_cursor_unittest.cc' || echo '$(srcdir)/'`src/common/byte_cursor_unittest.cc
+
+src/common/dumper_unittest-byte_cursor_unittest.obj: src/common/byte_cursor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-byte_cursor_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Tpo -c -o src/common/dumper_unittest-byte_cursor_unittest.obj `if test -f 'src/common/byte_cursor_unittest.cc'; then $(CYGPATH_W) 'src/common/byte_cursor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/byte_cursor_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/byte_cursor_unittest.cc' object='src/common/dumper_unittest-byte_cursor_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-byte_cursor_unittest.obj `if test -f 'src/common/byte_cursor_unittest.cc'; then $(CYGPATH_W) 'src/common/byte_cursor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/byte_cursor_unittest.cc'; fi`
+
+src/common/dumper_unittest-convert_UTF.o: src/common/convert_UTF.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-convert_UTF.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Tpo -c -o src/common/dumper_unittest-convert_UTF.o `test -f 'src/common/convert_UTF.cc' || echo '$(srcdir)/'`src/common/convert_UTF.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Tpo src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/convert_UTF.cc' object='src/common/dumper_unittest-convert_UTF.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-convert_UTF.o `test -f 'src/common/convert_UTF.cc' || echo '$(srcdir)/'`src/common/convert_UTF.cc
+
+src/common/dumper_unittest-convert_UTF.obj: src/common/convert_UTF.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-convert_UTF.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Tpo -c -o src/common/dumper_unittest-convert_UTF.obj `if test -f 'src/common/convert_UTF.cc'; then $(CYGPATH_W) 'src/common/convert_UTF.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/convert_UTF.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Tpo src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/convert_UTF.cc' object='src/common/dumper_unittest-convert_UTF.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-convert_UTF.obj `if test -f 'src/common/convert_UTF.cc'; then $(CYGPATH_W) 'src/common/convert_UTF.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/convert_UTF.cc'; fi`
+
+src/common/dumper_unittest-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/dumper_unittest-dwarf_cfi_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+
+src/common/dumper_unittest-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/dumper_unittest-dwarf_cfi_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+
+src/common/dumper_unittest-dwarf_cfi_to_module_unittest.o: src/common/dwarf_cfi_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cfi_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_cfi_to_module_unittest.o `test -f 'src/common/dwarf_cfi_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_cfi_to_module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cfi_to_module_unittest.o `test -f 'src/common/dwarf_cfi_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module_unittest.cc
+
+src/common/dumper_unittest-dwarf_cfi_to_module_unittest.obj: src/common/dwarf_cfi_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cfi_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_cfi_to_module_unittest.obj `if test -f 'src/common/dwarf_cfi_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_cfi_to_module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cfi_to_module_unittest.obj `if test -f 'src/common/dwarf_cfi_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module_unittest.cc'; fi`
+
+src/common/dumper_unittest-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/dumper_unittest-dwarf_cu_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+
+src/common/dumper_unittest-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/dumper_unittest-dwarf_cu_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+
+src/common/dumper_unittest-dwarf_cu_to_module_unittest.o: src/common/dwarf_cu_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cu_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_cu_to_module_unittest.o `test -f 'src/common/dwarf_cu_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_cu_to_module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cu_to_module_unittest.o `test -f 'src/common/dwarf_cu_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module_unittest.cc
+
+src/common/dumper_unittest-dwarf_cu_to_module_unittest.obj: src/common/dwarf_cu_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_cu_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_cu_to_module_unittest.obj `if test -f 'src/common/dwarf_cu_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_cu_to_module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_cu_to_module_unittest.obj `if test -f 'src/common/dwarf_cu_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module_unittest.cc'; fi`
+
+src/common/dumper_unittest-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/dumper_unittest-dwarf_line_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+
+src/common/dumper_unittest-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Tpo -c -o src/common/dumper_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/dumper_unittest-dwarf_line_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+
+src/common/dumper_unittest-dwarf_line_to_module_unittest.o: src/common/dwarf_line_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_line_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_line_to_module_unittest.o `test -f 'src/common/dwarf_line_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_line_to_module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_line_to_module_unittest.o `test -f 'src/common/dwarf_line_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module_unittest.cc
+
+src/common/dumper_unittest-dwarf_line_to_module_unittest.obj: src/common/dwarf_line_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_line_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Tpo -c -o src/common/dumper_unittest-dwarf_line_to_module_unittest.obj `if test -f 'src/common/dwarf_line_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module_unittest.cc' object='src/common/dumper_unittest-dwarf_line_to_module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_line_to_module_unittest.obj `if test -f 'src/common/dwarf_line_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module_unittest.cc'; fi`
+
+src/common/dumper_unittest-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Tpo -c -o src/common/dumper_unittest-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/dumper_unittest-dwarf_range_list_handler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+
+src/common/dumper_unittest-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Tpo -c -o src/common/dumper_unittest-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/dumper_unittest-dwarf_range_list_handler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+
+src/common/dumper_unittest-language.o: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-language.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-language.Tpo -c -o src/common/dumper_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-language.Tpo src/common/$(DEPDIR)/dumper_unittest-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/dumper_unittest-language.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+
+src/common/dumper_unittest-language.obj: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-language.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-language.Tpo -c -o src/common/dumper_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-language.Tpo src/common/$(DEPDIR)/dumper_unittest-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/dumper_unittest-language.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+
+src/common/dumper_unittest-memory_range_unittest.o: src/common/memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-memory_range_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Tpo -c -o src/common/dumper_unittest-memory_range_unittest.o `test -f 'src/common/memory_range_unittest.cc' || echo '$(srcdir)/'`src/common/memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/memory_range_unittest.cc' object='src/common/dumper_unittest-memory_range_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-memory_range_unittest.o `test -f 'src/common/memory_range_unittest.cc' || echo '$(srcdir)/'`src/common/memory_range_unittest.cc
+
+src/common/dumper_unittest-memory_range_unittest.obj: src/common/memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-memory_range_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Tpo -c -o src/common/dumper_unittest-memory_range_unittest.obj `if test -f 'src/common/memory_range_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_range_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/memory_range_unittest.cc' object='src/common/dumper_unittest-memory_range_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-memory_range_unittest.obj `if test -f 'src/common/memory_range_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_range_unittest.cc'; fi`
+
+src/common/dumper_unittest-module.o: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-module.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-module.Tpo -c -o src/common/dumper_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-module.Tpo src/common/$(DEPDIR)/dumper_unittest-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/dumper_unittest-module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+
+src/common/dumper_unittest-module.obj: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-module.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-module.Tpo -c -o src/common/dumper_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-module.Tpo src/common/$(DEPDIR)/dumper_unittest-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/dumper_unittest-module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+
+src/common/dumper_unittest-module_unittest.o: src/common/module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-module_unittest.Tpo -c -o src/common/dumper_unittest-module_unittest.o `test -f 'src/common/module_unittest.cc' || echo '$(srcdir)/'`src/common/module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module_unittest.cc' object='src/common/dumper_unittest-module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-module_unittest.o `test -f 'src/common/module_unittest.cc' || echo '$(srcdir)/'`src/common/module_unittest.cc
+
+src/common/dumper_unittest-module_unittest.obj: src/common/module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-module_unittest.Tpo -c -o src/common/dumper_unittest-module_unittest.obj `if test -f 'src/common/module_unittest.cc'; then $(CYGPATH_W) 'src/common/module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module_unittest.cc' object='src/common/dumper_unittest-module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-module_unittest.obj `if test -f 'src/common/module_unittest.cc'; then $(CYGPATH_W) 'src/common/module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module_unittest.cc'; fi`
+
+src/common/dumper_unittest-path_helper.o: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-path_helper.Tpo -c -o src/common/dumper_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-path_helper.Tpo src/common/$(DEPDIR)/dumper_unittest-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/dumper_unittest-path_helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+
+src/common/dumper_unittest-path_helper.obj: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-path_helper.Tpo -c -o src/common/dumper_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-path_helper.Tpo src/common/$(DEPDIR)/dumper_unittest-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/dumper_unittest-path_helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+
+src/common/dumper_unittest-stabs_reader.o: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Tpo -c -o src/common/dumper_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/dumper_unittest-stabs_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+
+src/common/dumper_unittest-stabs_reader.obj: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Tpo -c -o src/common/dumper_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/dumper_unittest-stabs_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+
+src/common/dumper_unittest-stabs_reader_unittest.o: src/common/stabs_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_reader_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Tpo -c -o src/common/dumper_unittest-stabs_reader_unittest.o `test -f 'src/common/stabs_reader_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader_unittest.cc' object='src/common/dumper_unittest-stabs_reader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_reader_unittest.o `test -f 'src/common/stabs_reader_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_reader_unittest.cc
+
+src/common/dumper_unittest-stabs_reader_unittest.obj: src/common/stabs_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_reader_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Tpo -c -o src/common/dumper_unittest-stabs_reader_unittest.obj `if test -f 'src/common/stabs_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader_unittest.cc' object='src/common/dumper_unittest-stabs_reader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_reader_unittest.obj `if test -f 'src/common/stabs_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader_unittest.cc'; fi`
+
+src/common/dumper_unittest-stabs_to_module.o: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Tpo -c -o src/common/dumper_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/dumper_unittest-stabs_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+
+src/common/dumper_unittest-stabs_to_module.obj: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Tpo -c -o src/common/dumper_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/dumper_unittest-stabs_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+
+src/common/dumper_unittest-stabs_to_module_unittest.o: src/common/stabs_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Tpo -c -o src/common/dumper_unittest-stabs_to_module_unittest.o `test -f 'src/common/stabs_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module_unittest.cc' object='src/common/dumper_unittest-stabs_to_module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_to_module_unittest.o `test -f 'src/common/stabs_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_to_module_unittest.cc
+
+src/common/dumper_unittest-stabs_to_module_unittest.obj: src/common/stabs_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-stabs_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Tpo -c -o src/common/dumper_unittest-stabs_to_module_unittest.obj `if test -f 'src/common/stabs_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module_unittest.cc' object='src/common/dumper_unittest-stabs_to_module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-stabs_to_module_unittest.obj `if test -f 'src/common/stabs_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module_unittest.cc'; fi`
+
+src/common/dumper_unittest-string_conversion.o: src/common/string_conversion.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-string_conversion.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-string_conversion.Tpo -c -o src/common/dumper_unittest-string_conversion.o `test -f 'src/common/string_conversion.cc' || echo '$(srcdir)/'`src/common/string_conversion.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-string_conversion.Tpo src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/string_conversion.cc' object='src/common/dumper_unittest-string_conversion.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-string_conversion.o `test -f 'src/common/string_conversion.cc' || echo '$(srcdir)/'`src/common/string_conversion.cc
+
+src/common/dumper_unittest-string_conversion.obj: src/common/string_conversion.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-string_conversion.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-string_conversion.Tpo -c -o src/common/dumper_unittest-string_conversion.obj `if test -f 'src/common/string_conversion.cc'; then $(CYGPATH_W) 'src/common/string_conversion.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-string_conversion.Tpo src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/string_conversion.cc' object='src/common/dumper_unittest-string_conversion.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-string_conversion.obj `if test -f 'src/common/string_conversion.cc'; then $(CYGPATH_W) 'src/common/string_conversion.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion.cc'; fi`
+
+src/common/dumper_unittest-string_conversion_unittest.o: src/common/string_conversion_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-string_conversion_unittest.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Tpo -c -o src/common/dumper_unittest-string_conversion_unittest.o `test -f 'src/common/string_conversion_unittest.cc' || echo '$(srcdir)/'`src/common/string_conversion_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/string_conversion_unittest.cc' object='src/common/dumper_unittest-string_conversion_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-string_conversion_unittest.o `test -f 'src/common/string_conversion_unittest.cc' || echo '$(srcdir)/'`src/common/string_conversion_unittest.cc
+
+src/common/dumper_unittest-string_conversion_unittest.obj: src/common/string_conversion_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-string_conversion_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Tpo -c -o src/common/dumper_unittest-string_conversion_unittest.obj `if test -f 'src/common/string_conversion_unittest.cc'; then $(CYGPATH_W) 'src/common/string_conversion_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Tpo src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/string_conversion_unittest.cc' object='src/common/dumper_unittest-string_conversion_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-string_conversion_unittest.obj `if test -f 'src/common/string_conversion_unittest.cc'; then $(CYGPATH_W) 'src/common/string_conversion_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion_unittest.cc'; fi`
+
+src/common/dumper_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-test_assembler.Tpo -c -o src/common/dumper_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-test_assembler.Tpo src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/dumper_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/dumper_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dumper_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/dumper_unittest-test_assembler.Tpo -c -o src/common/dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/dumper_unittest-test_assembler.Tpo src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/dumper_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/common/dwarf/dumper_unittest-bytereader.o: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Tpo -c -o src/common/dwarf/dumper_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/dumper_unittest-bytereader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+
+src/common/dwarf/dumper_unittest-bytereader.obj: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Tpo -c -o src/common/dwarf/dumper_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/dumper_unittest-bytereader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+
+src/common/dwarf/dumper_unittest-bytereader_unittest.o: src/common/dwarf/bytereader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-bytereader_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-bytereader_unittest.o `test -f 'src/common/dwarf/bytereader_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader_unittest.cc' object='src/common/dwarf/dumper_unittest-bytereader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-bytereader_unittest.o `test -f 'src/common/dwarf/bytereader_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader_unittest.cc
+
+src/common/dwarf/dumper_unittest-bytereader_unittest.obj: src/common/dwarf/bytereader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-bytereader_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-bytereader_unittest.obj `if test -f 'src/common/dwarf/bytereader_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader_unittest.cc' object='src/common/dwarf/dumper_unittest-bytereader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-bytereader_unittest.obj `if test -f 'src/common/dwarf/bytereader_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader_unittest.cc'; fi`
+
+src/common/dwarf/dumper_unittest-cfi_assembler.o: src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-cfi_assembler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/dumper_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/cfi_assembler.cc' object='src/common/dwarf/dumper_unittest-cfi_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
+
+src/common/dwarf/dumper_unittest-cfi_assembler.obj: src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-cfi_assembler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/dumper_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/cfi_assembler.cc' object='src/common/dwarf/dumper_unittest-cfi_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
+
+src/common/dwarf/dumper_unittest-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/dumper_unittest-dwarf2diehandler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+
+src/common/dwarf/dumper_unittest-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/dumper_unittest-dwarf2diehandler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+
+src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.o: src/common/dwarf/dwarf2diehandler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.o `test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.o `test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler_unittest.cc
+
+src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.obj: src/common/dwarf/dwarf2diehandler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.obj `if test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2diehandler_unittest.obj `if test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler_unittest.cc'; fi`
+
+src/common/dwarf/dumper_unittest-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+
+src/common/dwarf/dumper_unittest-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+
+src/common/dwarf/dumper_unittest-elf_reader.o: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Tpo -c -o src/common/dwarf/dumper_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/dumper_unittest-elf_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+
+src/common/dwarf/dumper_unittest-elf_reader.obj: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Tpo -c -o src/common/dwarf/dumper_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/dumper_unittest-elf_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+
+src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.o: src/common/dwarf/dwarf2reader_cfi_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.o `test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_cfi_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_cfi_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.o `test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_cfi_unittest.cc
+
+src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.obj: src/common/dwarf/dwarf2reader_cfi_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_cfi_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_cfi_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader_cfi_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_cfi_unittest.cc'; fi`
+
+src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.o: src/common/dwarf/dwarf2reader_die_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.o `test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_die_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_die_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.o `test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_die_unittest.cc
+
+src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.obj: src/common/dwarf/dwarf2reader_die_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Tpo -c -o src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_die_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_die_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Tpo src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_die_unittest.cc' object='src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dumper_unittest-dwarf2reader_die_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_die_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_die_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-crc32.o: src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-crc32.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Tpo -c -o src/common/linux/dumper_unittest-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/crc32.cc' object='src/common/linux/dumper_unittest-crc32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
+
+src/common/linux/dumper_unittest-crc32.obj: src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-crc32.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Tpo -c -o src/common/linux/dumper_unittest-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/crc32.cc' object='src/common/linux/dumper_unittest-crc32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
+
+src/common/linux/dumper_unittest-dump_symbols.o: src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-dump_symbols.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Tpo -c -o src/common/linux/dumper_unittest-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols.cc' object='src/common/linux/dumper_unittest-dump_symbols.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
+
+src/common/linux/dumper_unittest-dump_symbols.obj: src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-dump_symbols.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Tpo -c -o src/common/linux/dumper_unittest-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols.cc' object='src/common/linux/dumper_unittest-dump_symbols.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
+
+src/common/linux/dumper_unittest-dump_symbols_unittest.o: src/common/linux/dump_symbols_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-dump_symbols_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Tpo -c -o src/common/linux/dumper_unittest-dump_symbols_unittest.o `test -f 'src/common/linux/dump_symbols_unittest.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols_unittest.cc' object='src/common/linux/dumper_unittest-dump_symbols_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-dump_symbols_unittest.o `test -f 'src/common/linux/dump_symbols_unittest.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols_unittest.cc
+
+src/common/linux/dumper_unittest-dump_symbols_unittest.obj: src/common/linux/dump_symbols_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-dump_symbols_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Tpo -c -o src/common/linux/dumper_unittest-dump_symbols_unittest.obj `if test -f 'src/common/linux/dump_symbols_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols_unittest.cc' object='src/common/linux/dumper_unittest-dump_symbols_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-dump_symbols_unittest.obj `if test -f 'src/common/linux/dump_symbols_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-elf_core_dump.o: src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_core_dump.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Tpo -c -o src/common/linux/dumper_unittest-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump.cc' object='src/common/linux/dumper_unittest-elf_core_dump.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
+
+src/common/linux/dumper_unittest-elf_core_dump.obj: src/common/linux/elf_core_dump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_core_dump.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Tpo -c -o src/common/linux/dumper_unittest-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump.cc' object='src/common/linux/dumper_unittest-elf_core_dump.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
+
+src/common/linux/dumper_unittest-elf_core_dump_unittest.o: src/common/linux/elf_core_dump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_core_dump_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Tpo -c -o src/common/linux/dumper_unittest-elf_core_dump_unittest.o `test -f 'src/common/linux/elf_core_dump_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump_unittest.cc' object='src/common/linux/dumper_unittest-elf_core_dump_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_core_dump_unittest.o `test -f 'src/common/linux/elf_core_dump_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump_unittest.cc
+
+src/common/linux/dumper_unittest-elf_core_dump_unittest.obj: src/common/linux/elf_core_dump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_core_dump_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Tpo -c -o src/common/linux/dumper_unittest-elf_core_dump_unittest.obj `if test -f 'src/common/linux/elf_core_dump_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_core_dump_unittest.cc' object='src/common/linux/dumper_unittest-elf_core_dump_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_core_dump_unittest.obj `if test -f 'src/common/linux/elf_core_dump_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-elf_symbols_to_module.o: src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_symbols_to_module.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Tpo -c -o src/common/linux/dumper_unittest-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module.cc' object='src/common/linux/dumper_unittest-elf_symbols_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
+
+src/common/linux/dumper_unittest-elf_symbols_to_module.obj: src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_symbols_to_module.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Tpo -c -o src/common/linux/dumper_unittest-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module.cc' object='src/common/linux/dumper_unittest-elf_symbols_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
+
+src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.o: src/common/linux/elf_symbols_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Tpo -c -o src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.o `test -f 'src/common/linux/elf_symbols_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module_unittest.cc' object='src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.o `test -f 'src/common/linux/elf_symbols_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module_unittest.cc
+
+src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.obj: src/common/linux/elf_symbols_to_module_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Tpo -c -o src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.obj `if test -f 'src/common/linux/elf_symbols_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module_unittest.cc' object='src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elf_symbols_to_module_unittest.obj `if test -f 'src/common/linux/elf_symbols_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-elfutils.o: src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elfutils.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Tpo -c -o src/common/linux/dumper_unittest-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elfutils.cc' object='src/common/linux/dumper_unittest-elfutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
+
+src/common/linux/dumper_unittest-elfutils.obj: src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-elfutils.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Tpo -c -o src/common/linux/dumper_unittest-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elfutils.cc' object='src/common/linux/dumper_unittest-elfutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
+
+src/common/linux/dumper_unittest-file_id.o: src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-file_id.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Tpo -c -o src/common/linux/dumper_unittest-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id.cc' object='src/common/linux/dumper_unittest-file_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
+
+src/common/linux/dumper_unittest-file_id.obj: src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-file_id.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Tpo -c -o src/common/linux/dumper_unittest-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id.cc' object='src/common/linux/dumper_unittest-file_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
+
+src/common/linux/dumper_unittest-file_id_unittest.o: src/common/linux/file_id_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-file_id_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Tpo -c -o src/common/linux/dumper_unittest-file_id_unittest.o `test -f 'src/common/linux/file_id_unittest.cc' || echo '$(srcdir)/'`src/common/linux/file_id_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id_unittest.cc' object='src/common/linux/dumper_unittest-file_id_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-file_id_unittest.o `test -f 'src/common/linux/file_id_unittest.cc' || echo '$(srcdir)/'`src/common/linux/file_id_unittest.cc
+
+src/common/linux/dumper_unittest-file_id_unittest.obj: src/common/linux/file_id_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-file_id_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Tpo -c -o src/common/linux/dumper_unittest-file_id_unittest.obj `if test -f 'src/common/linux/file_id_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/file_id_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id_unittest.cc' object='src/common/linux/dumper_unittest-file_id_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-file_id_unittest.obj `if test -f 'src/common/linux/file_id_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/file_id_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-linux_libc_support.o: src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-linux_libc_support.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Tpo -c -o src/common/linux/dumper_unittest-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support.cc' object='src/common/linux/dumper_unittest-linux_libc_support.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
+
+src/common/linux/dumper_unittest-linux_libc_support.obj: src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-linux_libc_support.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Tpo -c -o src/common/linux/dumper_unittest-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support.cc' object='src/common/linux/dumper_unittest-linux_libc_support.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
+
+src/common/linux/dumper_unittest-memory_mapped_file.o: src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-memory_mapped_file.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Tpo -c -o src/common/linux/dumper_unittest-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file.cc' object='src/common/linux/dumper_unittest-memory_mapped_file.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
+
+src/common/linux/dumper_unittest-memory_mapped_file.obj: src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-memory_mapped_file.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Tpo -c -o src/common/linux/dumper_unittest-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file.cc' object='src/common/linux/dumper_unittest-memory_mapped_file.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
+
+src/common/linux/dumper_unittest-memory_mapped_file_unittest.o: src/common/linux/memory_mapped_file_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-memory_mapped_file_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Tpo -c -o src/common/linux/dumper_unittest-memory_mapped_file_unittest.o `test -f 'src/common/linux/memory_mapped_file_unittest.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file_unittest.cc' object='src/common/linux/dumper_unittest-memory_mapped_file_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-memory_mapped_file_unittest.o `test -f 'src/common/linux/memory_mapped_file_unittest.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file_unittest.cc
+
+src/common/linux/dumper_unittest-memory_mapped_file_unittest.obj: src/common/linux/memory_mapped_file_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-memory_mapped_file_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Tpo -c -o src/common/linux/dumper_unittest-memory_mapped_file_unittest.obj `if test -f 'src/common/linux/memory_mapped_file_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file_unittest.cc' object='src/common/linux/dumper_unittest-memory_mapped_file_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-memory_mapped_file_unittest.obj `if test -f 'src/common/linux/memory_mapped_file_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-safe_readlink.o: src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-safe_readlink.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Tpo -c -o src/common/linux/dumper_unittest-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink.cc' object='src/common/linux/dumper_unittest-safe_readlink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
+
+src/common/linux/dumper_unittest-safe_readlink.obj: src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-safe_readlink.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Tpo -c -o src/common/linux/dumper_unittest-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink.cc' object='src/common/linux/dumper_unittest-safe_readlink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
+
+src/common/linux/dumper_unittest-safe_readlink_unittest.o: src/common/linux/safe_readlink_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-safe_readlink_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Tpo -c -o src/common/linux/dumper_unittest-safe_readlink_unittest.o `test -f 'src/common/linux/safe_readlink_unittest.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink_unittest.cc' object='src/common/linux/dumper_unittest-safe_readlink_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-safe_readlink_unittest.o `test -f 'src/common/linux/safe_readlink_unittest.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink_unittest.cc
+
+src/common/linux/dumper_unittest-safe_readlink_unittest.obj: src/common/linux/safe_readlink_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-safe_readlink_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Tpo -c -o src/common/linux/dumper_unittest-safe_readlink_unittest.obj `if test -f 'src/common/linux/safe_readlink_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink_unittest.cc' object='src/common/linux/dumper_unittest-safe_readlink_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-safe_readlink_unittest.obj `if test -f 'src/common/linux/safe_readlink_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink_unittest.cc'; fi`
+
+src/common/linux/dumper_unittest-synth_elf.o: src/common/linux/synth_elf.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-synth_elf.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Tpo -c -o src/common/linux/dumper_unittest-synth_elf.o `test -f 'src/common/linux/synth_elf.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/synth_elf.cc' object='src/common/linux/dumper_unittest-synth_elf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-synth_elf.o `test -f 'src/common/linux/synth_elf.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf.cc
+
+src/common/linux/dumper_unittest-synth_elf.obj: src/common/linux/synth_elf.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-synth_elf.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Tpo -c -o src/common/linux/dumper_unittest-synth_elf.obj `if test -f 'src/common/linux/synth_elf.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/synth_elf.cc' object='src/common/linux/dumper_unittest-synth_elf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-synth_elf.obj `if test -f 'src/common/linux/synth_elf.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf.cc'; fi`
+
+src/common/linux/dumper_unittest-synth_elf_unittest.o: src/common/linux/synth_elf_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-synth_elf_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Tpo -c -o src/common/linux/dumper_unittest-synth_elf_unittest.o `test -f 'src/common/linux/synth_elf_unittest.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/synth_elf_unittest.cc' object='src/common/linux/dumper_unittest-synth_elf_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-synth_elf_unittest.o `test -f 'src/common/linux/synth_elf_unittest.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf_unittest.cc
+
+src/common/linux/dumper_unittest-synth_elf_unittest.obj: src/common/linux/synth_elf_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/dumper_unittest-synth_elf_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Tpo -c -o src/common/linux/dumper_unittest-synth_elf_unittest.obj `if test -f 'src/common/linux/synth_elf_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Tpo src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/synth_elf_unittest.cc' object='src/common/linux/dumper_unittest-synth_elf_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/dumper_unittest-synth_elf_unittest.obj `if test -f 'src/common/linux/synth_elf_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf_unittest.cc'; fi`
+
+src/common/linux/tests/dumper_unittest-crash_generator.o: src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/dumper_unittest-crash_generator.o -MD -MP -MF src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Tpo -c -o src/common/linux/tests/dumper_unittest-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/tests/crash_generator.cc' object='src/common/linux/tests/dumper_unittest-crash_generator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/dumper_unittest-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
+
+src/common/linux/tests/dumper_unittest-crash_generator.obj: src/common/linux/tests/crash_generator.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/dumper_unittest-crash_generator.obj -MD -MP -MF src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Tpo -c -o src/common/linux/tests/dumper_unittest-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/tests/crash_generator.cc' object='src/common/linux/tests/dumper_unittest-crash_generator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/dumper_unittest-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
+
+src/common/tests/dumper_unittest-file_utils.o: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/dumper_unittest-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Tpo -c -o src/common/tests/dumper_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/dumper_unittest-file_utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/dumper_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+
+src/common/tests/dumper_unittest-file_utils.obj: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/dumper_unittest-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Tpo -c -o src/common/tests/dumper_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/dumper_unittest-file_utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/dumper_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+
+src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.o: src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Tpo -c -o src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.o `test -f 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Tpo src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_lineinfo_unittest.cc' object='src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.o `test -f 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+
+src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.obj: src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Tpo -c -o src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Tpo src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_lineinfo_unittest.cc' object='src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_lineinfo_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_lineinfo_unittest.cc'; fi`
+
+src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.o: src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Tpo -c -o src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.o `test -f 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Tpo src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc' object='src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.o `test -f 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+
+src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.obj: src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Tpo -c -o src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Tpo src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc' object='src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dwarf_dwarf2reader_splitfunctions_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc'; fi`
+
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.o: src/common/linux/google_crashdump_uploader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.o -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Tpo -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.o `test -f 'src/common/linux/google_crashdump_uploader.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/google_crashdump_uploader.cc' object='src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.o `test -f 'src/common/linux/google_crashdump_uploader.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader.cc
+
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.obj: src/common/linux/google_crashdump_uploader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.obj -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Tpo -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.obj `if test -f 'src/common/linux/google_crashdump_uploader.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/google_crashdump_uploader.cc' object='src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader.obj `if test -f 'src/common/linux/google_crashdump_uploader.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader.cc'; fi`
+
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.o: src/common/linux/google_crashdump_uploader_test.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.o -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.o `test -f 'src/common/linux/google_crashdump_uploader_test.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader_test.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/google_crashdump_uploader_test.cc' object='src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.o `test -f 'src/common/linux/google_crashdump_uploader_test.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader_test.cc
+
+src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.obj: src/common/linux/google_crashdump_uploader_test.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.obj -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.obj `if test -f 'src/common/linux/google_crashdump_uploader_test.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader_test.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader_test.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/google_crashdump_uploader_test.cc' object='src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-google_crashdump_uploader_test.obj `if test -f 'src/common/linux/google_crashdump_uploader_test.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader_test.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader_test.cc'; fi`
+
+src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.o: src/common/linux/libcurl_wrapper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.o -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Tpo -c -o src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.o `test -f 'src/common/linux/libcurl_wrapper.cc' || echo '$(srcdir)/'`src/common/linux/libcurl_wrapper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/libcurl_wrapper.cc' object='src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.o `test -f 'src/common/linux/libcurl_wrapper.cc' || echo '$(srcdir)/'`src/common/linux/libcurl_wrapper.cc
+
+src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.obj: src/common/linux/libcurl_wrapper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.obj -MD -MP -MF src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Tpo -c -o src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.obj `if test -f 'src/common/linux/libcurl_wrapper.cc'; then $(CYGPATH_W) 'src/common/linux/libcurl_wrapper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/libcurl_wrapper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Tpo src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/libcurl_wrapper.cc' object='src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/google_crashdump_uploader_test-libcurl_wrapper.obj `if test -f 'src/common/linux/libcurl_wrapper.cc'; then $(CYGPATH_W) 'src/common/linux/libcurl_wrapper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/libcurl_wrapper.cc'; fi`
+
+src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+
+src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+
+src/common/mac_macho_reader_unittest-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_cu_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+
+src/common/mac_macho_reader_unittest-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_cu_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+
+src/common/mac_macho_reader_unittest-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_line_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+
+src/common/mac_macho_reader_unittest-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/mac_macho_reader_unittest-dwarf_line_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+
+src/common/mac_macho_reader_unittest-language.o: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-language.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Tpo -c -o src/common/mac_macho_reader_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/mac_macho_reader_unittest-language.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+
+src/common/mac_macho_reader_unittest-language.obj: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-language.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Tpo -c -o src/common/mac_macho_reader_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/mac_macho_reader_unittest-language.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+
+src/common/mac_macho_reader_unittest-md5.o: src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-md5.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Tpo -c -o src/common/mac_macho_reader_unittest-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/md5.cc' object='src/common/mac_macho_reader_unittest-md5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
+
+src/common/mac_macho_reader_unittest-md5.obj: src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-md5.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Tpo -c -o src/common/mac_macho_reader_unittest-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/md5.cc' object='src/common/mac_macho_reader_unittest-md5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
+
+src/common/mac_macho_reader_unittest-module.o: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-module.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Tpo -c -o src/common/mac_macho_reader_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/mac_macho_reader_unittest-module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+
+src/common/mac_macho_reader_unittest-module.obj: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-module.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Tpo -c -o src/common/mac_macho_reader_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/mac_macho_reader_unittest-module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+
+src/common/mac_macho_reader_unittest-path_helper.o: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Tpo -c -o src/common/mac_macho_reader_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/mac_macho_reader_unittest-path_helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+
+src/common/mac_macho_reader_unittest-path_helper.obj: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Tpo -c -o src/common/mac_macho_reader_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/mac_macho_reader_unittest-path_helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+
+src/common/mac_macho_reader_unittest-stabs_reader.o: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Tpo -c -o src/common/mac_macho_reader_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/mac_macho_reader_unittest-stabs_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+
+src/common/mac_macho_reader_unittest-stabs_reader.obj: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Tpo -c -o src/common/mac_macho_reader_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/mac_macho_reader_unittest-stabs_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+
+src/common/mac_macho_reader_unittest-stabs_to_module.o: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/mac_macho_reader_unittest-stabs_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+
+src/common/mac_macho_reader_unittest-stabs_to_module.obj: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Tpo -c -o src/common/mac_macho_reader_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/mac_macho_reader_unittest-stabs_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+
+src/common/mac_macho_reader_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Tpo -c -o src/common/mac_macho_reader_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/mac_macho_reader_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/mac_macho_reader_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac_macho_reader_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Tpo -c -o src/common/mac_macho_reader_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Tpo src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/mac_macho_reader_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac_macho_reader_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/common/dwarf/mac_macho_reader_unittest-bytereader.o: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/mac_macho_reader_unittest-bytereader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+
+src/common/dwarf/mac_macho_reader_unittest-bytereader.obj: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/mac_macho_reader_unittest-bytereader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+
+src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.o: src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/cfi_assembler.cc' object='src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
+
+src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.obj: src/common/dwarf/cfi_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/cfi_assembler.cc' object='src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
+
+src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+
+src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+
+src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+
+src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+
+src/common/dwarf/mac_macho_reader_unittest-elf_reader.o: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/mac_macho_reader_unittest-elf_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+
+src/common/dwarf/mac_macho_reader_unittest-elf_reader.obj: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/mac_macho_reader_unittest-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Tpo -c -o src/common/dwarf/mac_macho_reader_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/mac_macho_reader_unittest-elf_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/mac_macho_reader_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+
+src/common/mac/macho_reader_unittest-arch_utilities.o: src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-arch_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Tpo -c -o src/common/mac/macho_reader_unittest-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/arch_utilities.cc' object='src/common/mac/macho_reader_unittest-arch_utilities.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
+
+src/common/mac/macho_reader_unittest-arch_utilities.obj: src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-arch_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Tpo -c -o src/common/mac/macho_reader_unittest-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/arch_utilities.cc' object='src/common/mac/macho_reader_unittest-arch_utilities.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
+
+src/common/mac/macho_reader_unittest-file_id.o: src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-file_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Tpo -c -o src/common/mac/macho_reader_unittest-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/file_id.cc' object='src/common/mac/macho_reader_unittest-file_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
+
+src/common/mac/macho_reader_unittest-file_id.obj: src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-file_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Tpo -c -o src/common/mac/macho_reader_unittest-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/file_id.cc' object='src/common/mac/macho_reader_unittest-file_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
+
+src/common/mac/macho_reader_unittest-macho_id.o: src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Tpo -c -o src/common/mac/macho_reader_unittest-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_id.cc' object='src/common/mac/macho_reader_unittest-macho_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
+
+src/common/mac/macho_reader_unittest-macho_id.obj: src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Tpo -c -o src/common/mac/macho_reader_unittest-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_id.cc' object='src/common/mac/macho_reader_unittest-macho_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
+
+src/common/mac/macho_reader_unittest-macho_reader.o: src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_reader.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Tpo -c -o src/common/mac/macho_reader_unittest-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader.cc' object='src/common/mac/macho_reader_unittest-macho_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
+
+src/common/mac/macho_reader_unittest-macho_reader.obj: src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_reader.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Tpo -c -o src/common/mac/macho_reader_unittest-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader.cc' object='src/common/mac/macho_reader_unittest-macho_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
+
+src/common/mac/macho_reader_unittest-macho_reader_unittest.o: src/common/mac/macho_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_reader_unittest.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Tpo -c -o src/common/mac/macho_reader_unittest-macho_reader_unittest.o `test -f 'src/common/mac/macho_reader_unittest.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader_unittest.cc' object='src/common/mac/macho_reader_unittest-macho_reader_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_reader_unittest.o `test -f 'src/common/mac/macho_reader_unittest.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader_unittest.cc
+
+src/common/mac/macho_reader_unittest-macho_reader_unittest.obj: src/common/mac/macho_reader_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_reader_unittest.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Tpo -c -o src/common/mac/macho_reader_unittest-macho_reader_unittest.obj `if test -f 'src/common/mac/macho_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader_unittest.cc' object='src/common/mac/macho_reader_unittest-macho_reader_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_reader_unittest.obj `if test -f 'src/common/mac/macho_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader_unittest.cc'; fi`
+
+src/common/mac/macho_reader_unittest-macho_utilities.o: src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Tpo -c -o src/common/mac/macho_reader_unittest-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_utilities.cc' object='src/common/mac/macho_reader_unittest-macho_utilities.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
+
+src/common/mac/macho_reader_unittest-macho_utilities.obj: src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Tpo -c -o src/common/mac/macho_reader_unittest-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_utilities.cc' object='src/common/mac/macho_reader_unittest-macho_utilities.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
+
+src/common/mac/macho_reader_unittest-macho_walker.o: src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_walker.o -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Tpo -c -o src/common/mac/macho_reader_unittest-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_walker.cc' object='src/common/mac/macho_reader_unittest-macho_walker.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
+
+src/common/mac/macho_reader_unittest-macho_walker.obj: src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/macho_reader_unittest-macho_walker.obj -MD -MP -MF src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Tpo -c -o src/common/mac/macho_reader_unittest-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Tpo src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_walker.cc' object='src/common/mac/macho_reader_unittest-macho_walker.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/macho_reader_unittest-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
+
+src/common/tests/mac_macho_reader_unittest-file_utils.o: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/mac_macho_reader_unittest-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Tpo -c -o src/common/tests/mac_macho_reader_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/mac_macho_reader_unittest-file_utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/mac_macho_reader_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
+
+src/common/tests/mac_macho_reader_unittest-file_utils.obj: src/common/tests/file_utils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/mac_macho_reader_unittest-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Tpo -c -o src/common/tests/mac_macho_reader_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/tests/file_utils.cc' object='src/common/tests/mac_macho_reader_unittest-file_utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/mac_macho_reader_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
+
+src/common/test_assembler_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/test_assembler_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Tpo -c -o src/common/test_assembler_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Tpo src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/test_assembler_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/test_assembler_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/test_assembler_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/test_assembler_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Tpo -c -o src/common/test_assembler_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Tpo src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/test_assembler_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/test_assembler_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/common/test_assembler_unittest-test_assembler_unittest.o: src/common/test_assembler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/test_assembler_unittest-test_assembler_unittest.o -MD -MP -MF src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Tpo -c -o src/common/test_assembler_unittest-test_assembler_unittest.o `test -f 'src/common/test_assembler_unittest.cc' || echo '$(srcdir)/'`src/common/test_assembler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Tpo src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler_unittest.cc' object='src/common/test_assembler_unittest-test_assembler_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/test_assembler_unittest-test_assembler_unittest.o `test -f 'src/common/test_assembler_unittest.cc' || echo '$(srcdir)/'`src/common/test_assembler_unittest.cc
+
+src/common/test_assembler_unittest-test_assembler_unittest.obj: src/common/test_assembler_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/test_assembler_unittest-test_assembler_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Tpo -c -o src/common/test_assembler_unittest-test_assembler_unittest.obj `if test -f 'src/common/test_assembler_unittest.cc'; then $(CYGPATH_W) 'src/common/test_assembler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Tpo src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler_unittest.cc' object='src/common/test_assembler_unittest-test_assembler_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/test_assembler_unittest-test_assembler_unittest.obj `if test -f 'src/common/test_assembler_unittest.cc'; then $(CYGPATH_W) 'src/common/test_assembler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler_unittest.cc'; fi`
+
+src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o: src/processor/basic_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo -c -o src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o `test -f 'src/processor/basic_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/basic_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/basic_source_line_resolver_unittest.cc' object='src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o `test -f 'src/processor/basic_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/basic_source_line_resolver_unittest.cc
+
+src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj: src/processor/basic_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo -c -o src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj `if test -f 'src/processor/basic_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/basic_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_source_line_resolver_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/basic_source_line_resolver_unittest.cc' object='src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj `if test -f 'src/processor/basic_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/basic_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_source_line_resolver_unittest.cc'; fi`
+
+src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.o: src/processor/cfi_frame_info_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo -c -o src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.o `test -f 'src/processor/cfi_frame_info_unittest.cc' || echo '$(srcdir)/'`src/processor/cfi_frame_info_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/cfi_frame_info_unittest.cc' object='src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.o `test -f 'src/processor/cfi_frame_info_unittest.cc' || echo '$(srcdir)/'`src/processor/cfi_frame_info_unittest.cc
+
+src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.obj: src/processor/cfi_frame_info_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo -c -o src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.obj `if test -f 'src/processor/cfi_frame_info_unittest.cc'; then $(CYGPATH_W) 'src/processor/cfi_frame_info_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/cfi_frame_info_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/cfi_frame_info_unittest.cc' object='src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/cfi_frame_info_unittest-cfi_frame_info_unittest.obj `if test -f 'src/processor/cfi_frame_info_unittest.cc'; then $(CYGPATH_W) 'src/processor/cfi_frame_info_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/cfi_frame_info_unittest.cc'; fi`
+
+src/processor/disassembler_x86_unittest-disassembler_x86_unittest.o: src/processor/disassembler_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/disassembler_x86_unittest-disassembler_x86_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Tpo -c -o src/processor/disassembler_x86_unittest-disassembler_x86_unittest.o `test -f 'src/processor/disassembler_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/disassembler_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Tpo src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/disassembler_x86_unittest.cc' object='src/processor/disassembler_x86_unittest-disassembler_x86_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/disassembler_x86_unittest-disassembler_x86_unittest.o `test -f 'src/processor/disassembler_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/disassembler_x86_unittest.cc
+
+src/processor/disassembler_x86_unittest-disassembler_x86_unittest.obj: src/processor/disassembler_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/disassembler_x86_unittest-disassembler_x86_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Tpo -c -o src/processor/disassembler_x86_unittest-disassembler_x86_unittest.obj `if test -f 'src/processor/disassembler_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/disassembler_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/disassembler_x86_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Tpo src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/disassembler_x86_unittest.cc' object='src/processor/disassembler_x86_unittest-disassembler_x86_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/disassembler_x86_unittest-disassembler_x86_unittest.obj `if test -f 'src/processor/disassembler_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/disassembler_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/disassembler_x86_unittest.cc'; fi`
+
+src/processor/exploitability_unittest-exploitability_unittest.o: src/processor/exploitability_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/exploitability_unittest-exploitability_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Tpo -c -o src/processor/exploitability_unittest-exploitability_unittest.o `test -f 'src/processor/exploitability_unittest.cc' || echo '$(srcdir)/'`src/processor/exploitability_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Tpo src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/exploitability_unittest.cc' object='src/processor/exploitability_unittest-exploitability_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/exploitability_unittest-exploitability_unittest.o `test -f 'src/processor/exploitability_unittest.cc' || echo '$(srcdir)/'`src/processor/exploitability_unittest.cc
+
+src/processor/exploitability_unittest-exploitability_unittest.obj: src/processor/exploitability_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/exploitability_unittest-exploitability_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Tpo -c -o src/processor/exploitability_unittest-exploitability_unittest.obj `if test -f 'src/processor/exploitability_unittest.cc'; then $(CYGPATH_W) 'src/processor/exploitability_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/exploitability_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Tpo src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/exploitability_unittest.cc' object='src/processor/exploitability_unittest-exploitability_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/exploitability_unittest-exploitability_unittest.obj `if test -f 'src/processor/exploitability_unittest.cc'; then $(CYGPATH_W) 'src/processor/exploitability_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/exploitability_unittest.cc'; fi`
+
+src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o: src/processor/fast_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo -c -o src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o `test -f 'src/processor/fast_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/fast_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/fast_source_line_resolver_unittest.cc' object='src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o `test -f 'src/processor/fast_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/fast_source_line_resolver_unittest.cc
+
+src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj: src/processor/fast_source_line_resolver_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo -c -o src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj `if test -f 'src/processor/fast_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/fast_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/fast_source_line_resolver_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/fast_source_line_resolver_unittest.cc' object='src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj `if test -f 'src/processor/fast_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/fast_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/fast_source_line_resolver_unittest.cc'; fi`
+
+src/processor/map_serializers_unittest-map_serializers_unittest.o: src/processor/map_serializers_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/map_serializers_unittest-map_serializers_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Tpo -c -o src/processor/map_serializers_unittest-map_serializers_unittest.o `test -f 'src/processor/map_serializers_unittest.cc' || echo '$(srcdir)/'`src/processor/map_serializers_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Tpo src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/map_serializers_unittest.cc' object='src/processor/map_serializers_unittest-map_serializers_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/map_serializers_unittest-map_serializers_unittest.o `test -f 'src/processor/map_serializers_unittest.cc' || echo '$(srcdir)/'`src/processor/map_serializers_unittest.cc
+
+src/processor/map_serializers_unittest-map_serializers_unittest.obj: src/processor/map_serializers_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/map_serializers_unittest-map_serializers_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Tpo -c -o src/processor/map_serializers_unittest-map_serializers_unittest.obj `if test -f 'src/processor/map_serializers_unittest.cc'; then $(CYGPATH_W) 'src/processor/map_serializers_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/map_serializers_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Tpo src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/map_serializers_unittest.cc' object='src/processor/map_serializers_unittest-map_serializers_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/map_serializers_unittest-map_serializers_unittest.obj `if test -f 'src/processor/map_serializers_unittest.cc'; then $(CYGPATH_W) 'src/processor/map_serializers_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/map_serializers_unittest.cc'; fi`
+
+src/processor/microdump_processor_unittest-microdump_processor_unittest.o: src/processor/microdump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/microdump_processor_unittest-microdump_processor_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Tpo -c -o src/processor/microdump_processor_unittest-microdump_processor_unittest.o `test -f 'src/processor/microdump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/microdump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Tpo src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/microdump_processor_unittest.cc' object='src/processor/microdump_processor_unittest-microdump_processor_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/microdump_processor_unittest-microdump_processor_unittest.o `test -f 'src/processor/microdump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/microdump_processor_unittest.cc
+
+src/processor/microdump_processor_unittest-microdump_processor_unittest.obj: src/processor/microdump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/microdump_processor_unittest-microdump_processor_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Tpo -c -o src/processor/microdump_processor_unittest-microdump_processor_unittest.obj `if test -f 'src/processor/microdump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/microdump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/microdump_processor_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Tpo src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/microdump_processor_unittest.cc' object='src/processor/microdump_processor_unittest-microdump_processor_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/microdump_processor_unittest-microdump_processor_unittest.obj `if test -f 'src/processor/microdump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/microdump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/microdump_processor_unittest.cc'; fi`
+
+src/processor/minidump_processor_unittest-minidump_processor_unittest.o: src/processor/minidump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_processor_unittest-minidump_processor_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Tpo -c -o src/processor/minidump_processor_unittest-minidump_processor_unittest.o `test -f 'src/processor/minidump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Tpo src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump_processor_unittest.cc' object='src/processor/minidump_processor_unittest-minidump_processor_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_processor_unittest-minidump_processor_unittest.o `test -f 'src/processor/minidump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_processor_unittest.cc
+
+src/processor/minidump_processor_unittest-minidump_processor_unittest.obj: src/processor/minidump_processor_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_processor_unittest-minidump_processor_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Tpo -c -o src/processor/minidump_processor_unittest-minidump_processor_unittest.obj `if test -f 'src/processor/minidump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_processor_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Tpo src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump_processor_unittest.cc' object='src/processor/minidump_processor_unittest-minidump_processor_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_processor_unittest-minidump_processor_unittest.obj `if test -f 'src/processor/minidump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_processor_unittest.cc'; fi`
+
+src/common/processor_minidump_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_minidump_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Tpo -c -o src/common/processor_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_minidump_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_minidump_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_minidump_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Tpo -c -o src/common/processor_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_minidump_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/minidump_unittest-minidump_unittest.o: src/processor/minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_unittest-minidump_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Tpo -c -o src/processor/minidump_unittest-minidump_unittest.o `test -f 'src/processor/minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Tpo src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump_unittest.cc' object='src/processor/minidump_unittest-minidump_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_unittest-minidump_unittest.o `test -f 'src/processor/minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_unittest.cc
+
+src/processor/minidump_unittest-minidump_unittest.obj: src/processor/minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_unittest-minidump_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Tpo -c -o src/processor/minidump_unittest-minidump_unittest.obj `if test -f 'src/processor/minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Tpo src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/minidump_unittest.cc' object='src/processor/minidump_unittest-minidump_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_unittest-minidump_unittest.obj `if test -f 'src/processor/minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_unittest.cc'; fi`
+
+src/processor/minidump_unittest-synth_minidump.o: src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_unittest-synth_minidump.o -MD -MP -MF src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Tpo -c -o src/processor/minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump.cc' object='src/processor/minidump_unittest-synth_minidump.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
+
+src/processor/minidump_unittest-synth_minidump.obj: src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/minidump_unittest-synth_minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Tpo -c -o src/processor/minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump.cc' object='src/processor/minidump_unittest-synth_minidump.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
+
+src/processor/proc_maps_linux_unittest-proc_maps_linux.o: src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/proc_maps_linux_unittest-proc_maps_linux.o -MD -MP -MF src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Tpo -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Tpo src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux.cc' object='src/processor/proc_maps_linux_unittest-proc_maps_linux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
+
+src/processor/proc_maps_linux_unittest-proc_maps_linux.obj: src/processor/proc_maps_linux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/proc_maps_linux_unittest-proc_maps_linux.obj -MD -MP -MF src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Tpo -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Tpo src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux.cc' object='src/processor/proc_maps_linux_unittest-proc_maps_linux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
+
+src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.o: src/processor/proc_maps_linux_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.o `test -f 'src/processor/proc_maps_linux_unittest.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux_unittest.cc' object='src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.o `test -f 'src/processor/proc_maps_linux_unittest.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux_unittest.cc
+
+src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.obj: src/processor/proc_maps_linux_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.obj `if test -f 'src/processor/proc_maps_linux_unittest.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/proc_maps_linux_unittest.cc' object='src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/proc_maps_linux_unittest-proc_maps_linux_unittest.obj `if test -f 'src/processor/proc_maps_linux_unittest.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux_unittest.cc'; fi`
+
+src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o: src/processor/range_map_truncate_lower_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo -c -o src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o `test -f 'src/processor/range_map_truncate_lower_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_lower_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/range_map_truncate_lower_unittest.cc' object='src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o `test -f 'src/processor/range_map_truncate_lower_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_lower_unittest.cc
+
+src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj: src/processor/range_map_truncate_lower_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo -c -o src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj `if test -f 'src/processor/range_map_truncate_lower_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_lower_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_lower_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/range_map_truncate_lower_unittest.cc' object='src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj `if test -f 'src/processor/range_map_truncate_lower_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_lower_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_lower_unittest.cc'; fi`
+
+src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o: src/processor/range_map_truncate_upper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo -c -o src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o `test -f 'src/processor/range_map_truncate_upper_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_upper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/range_map_truncate_upper_unittest.cc' object='src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o `test -f 'src/processor/range_map_truncate_upper_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_upper_unittest.cc
+
+src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj: src/processor/range_map_truncate_upper_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo -c -o src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj `if test -f 'src/processor/range_map_truncate_upper_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_upper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_upper_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/range_map_truncate_upper_unittest.cc' object='src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj `if test -f 'src/processor/range_map_truncate_upper_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_upper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_upper_unittest.cc'; fi`
+
+src/common/processor_stackwalker_address_list_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_address_list_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_address_list_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_address_list_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_address_list_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_address_list_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_address_list_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_address_list_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_address_list_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_address_list_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.o: src/processor/stackwalker_address_list_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo -c -o src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.o `test -f 'src/processor/stackwalker_address_list_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_address_list_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_address_list_unittest.cc' object='src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.o `test -f 'src/processor/stackwalker_address_list_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_address_list_unittest.cc
+
+src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj: src/processor/stackwalker_address_list_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo -c -o src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj `if test -f 'src/processor/stackwalker_address_list_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_address_list_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_address_list_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_address_list_unittest.cc' object='src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj `if test -f 'src/processor/stackwalker_address_list_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_address_list_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_address_list_unittest.cc'; fi`
+
+src/common/processor_stackwalker_amd64_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_amd64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_amd64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_amd64_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_amd64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_amd64_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_amd64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_amd64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_amd64_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_amd64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.o: src/processor/stackwalker_amd64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo -c -o src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.o `test -f 'src/processor/stackwalker_amd64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_amd64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_amd64_unittest.cc' object='src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.o `test -f 'src/processor/stackwalker_amd64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_amd64_unittest.cc
+
+src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj: src/processor/stackwalker_amd64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo -c -o src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj `if test -f 'src/processor/stackwalker_amd64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_amd64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_amd64_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_amd64_unittest.cc' object='src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj `if test -f 'src/processor/stackwalker_amd64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_amd64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_amd64_unittest.cc'; fi`
+
+src/common/processor_stackwalker_arm64_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_arm64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_arm64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_arm64_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_arm64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_arm64_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_arm64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_arm64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_arm64_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_arm64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.o: src/processor/stackwalker_arm64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo -c -o src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.o `test -f 'src/processor/stackwalker_arm64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_arm64_unittest.cc' object='src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.o `test -f 'src/processor/stackwalker_arm64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm64_unittest.cc
+
+src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj: src/processor/stackwalker_arm64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo -c -o src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj `if test -f 'src/processor/stackwalker_arm64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm64_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_arm64_unittest.cc' object='src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj `if test -f 'src/processor/stackwalker_arm64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm64_unittest.cc'; fi`
+
+src/common/processor_stackwalker_arm_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_arm_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_arm_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_arm_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_arm_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_arm_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_arm_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_arm_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_arm_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_arm_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.o: src/processor/stackwalker_arm_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo -c -o src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.o `test -f 'src/processor/stackwalker_arm_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_arm_unittest.cc' object='src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.o `test -f 'src/processor/stackwalker_arm_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm_unittest.cc
+
+src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.obj: src/processor/stackwalker_arm_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo -c -o src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.obj `if test -f 'src/processor/stackwalker_arm_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_arm_unittest.cc' object='src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_arm_unittest-stackwalker_arm_unittest.obj `if test -f 'src/processor/stackwalker_arm_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm_unittest.cc'; fi`
+
+src/common/processor_stackwalker_mips64_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_mips64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_mips64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_mips64_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_mips64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_mips64_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_mips64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_mips64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_mips64_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_mips64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.o: src/processor/stackwalker_mips64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo -c -o src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.o `test -f 'src/processor/stackwalker_mips64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_mips64_unittest.cc' object='src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.o `test -f 'src/processor/stackwalker_mips64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips64_unittest.cc
+
+src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj: src/processor/stackwalker_mips64_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo -c -o src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj `if test -f 'src/processor/stackwalker_mips64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips64_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_mips64_unittest.cc' object='src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj `if test -f 'src/processor/stackwalker_mips64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips64_unittest.cc'; fi`
+
+src/common/processor_stackwalker_mips_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_mips_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_mips_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_mips_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_mips_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_mips_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_mips_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_mips_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_mips_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_mips_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.o: src/processor/stackwalker_mips_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo -c -o src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.o `test -f 'src/processor/stackwalker_mips_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_mips_unittest.cc' object='src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.o `test -f 'src/processor/stackwalker_mips_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips_unittest.cc
+
+src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.obj: src/processor/stackwalker_mips_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo -c -o src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.obj `if test -f 'src/processor/stackwalker_mips_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_mips_unittest.cc' object='src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_mips_unittest-stackwalker_mips_unittest.obj `if test -f 'src/processor/stackwalker_mips_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips_unittest.cc'; fi`
+
+src/common/processor_stackwalker_x86_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_x86_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_x86_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_x86_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_x86_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_stackwalker_x86_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_stackwalker_x86_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Tpo -c -o src/common/processor_stackwalker_x86_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_stackwalker_x86_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_stackwalker_x86_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.o: src/processor/stackwalker_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo -c -o src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.o `test -f 'src/processor/stackwalker_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_x86_unittest.cc' object='src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.o `test -f 'src/processor/stackwalker_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_x86_unittest.cc
+
+src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.obj: src/processor/stackwalker_x86_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo -c -o src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.obj `if test -f 'src/processor/stackwalker_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_x86_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/stackwalker_x86_unittest.cc' object='src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/stackwalker_x86_unittest-stackwalker_x86_unittest.obj `if test -f 'src/processor/stackwalker_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_x86_unittest.cc'; fi`
+
+src/processor/static_address_map_unittest-static_address_map_unittest.o: src/processor/static_address_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_address_map_unittest-static_address_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Tpo -c -o src/processor/static_address_map_unittest-static_address_map_unittest.o `test -f 'src/processor/static_address_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_address_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Tpo src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_address_map_unittest.cc' object='src/processor/static_address_map_unittest-static_address_map_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_address_map_unittest-static_address_map_unittest.o `test -f 'src/processor/static_address_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_address_map_unittest.cc
+
+src/processor/static_address_map_unittest-static_address_map_unittest.obj: src/processor/static_address_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_address_map_unittest-static_address_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Tpo -c -o src/processor/static_address_map_unittest-static_address_map_unittest.obj `if test -f 'src/processor/static_address_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_address_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_address_map_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Tpo src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_address_map_unittest.cc' object='src/processor/static_address_map_unittest-static_address_map_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_address_map_unittest-static_address_map_unittest.obj `if test -f 'src/processor/static_address_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_address_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_address_map_unittest.cc'; fi`
+
+src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.o: src/processor/static_contained_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo -c -o src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.o `test -f 'src/processor/static_contained_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_contained_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_contained_range_map_unittest.cc' object='src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.o `test -f 'src/processor/static_contained_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_contained_range_map_unittest.cc
+
+src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.obj: src/processor/static_contained_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo -c -o src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.obj `if test -f 'src/processor/static_contained_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_contained_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_contained_range_map_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_contained_range_map_unittest.cc' object='src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_contained_range_map_unittest-static_contained_range_map_unittest.obj `if test -f 'src/processor/static_contained_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_contained_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_contained_range_map_unittest.cc'; fi`
+
+src/processor/static_map_unittest-static_map_unittest.o: src/processor/static_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_map_unittest-static_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Tpo -c -o src/processor/static_map_unittest-static_map_unittest.o `test -f 'src/processor/static_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Tpo src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_map_unittest.cc' object='src/processor/static_map_unittest-static_map_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_map_unittest-static_map_unittest.o `test -f 'src/processor/static_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_map_unittest.cc
+
+src/processor/static_map_unittest-static_map_unittest.obj: src/processor/static_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_map_unittest-static_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Tpo -c -o src/processor/static_map_unittest-static_map_unittest.obj `if test -f 'src/processor/static_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_map_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Tpo src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_map_unittest.cc' object='src/processor/static_map_unittest-static_map_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_map_unittest-static_map_unittest.obj `if test -f 'src/processor/static_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_map_unittest.cc'; fi`
+
+src/processor/static_range_map_unittest-static_range_map_unittest.o: src/processor/static_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_range_map_unittest-static_range_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Tpo -c -o src/processor/static_range_map_unittest-static_range_map_unittest.o `test -f 'src/processor/static_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Tpo src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_range_map_unittest.cc' object='src/processor/static_range_map_unittest-static_range_map_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_range_map_unittest-static_range_map_unittest.o `test -f 'src/processor/static_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_range_map_unittest.cc
+
+src/processor/static_range_map_unittest-static_range_map_unittest.obj: src/processor/static_range_map_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/static_range_map_unittest-static_range_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Tpo -c -o src/processor/static_range_map_unittest-static_range_map_unittest.obj `if test -f 'src/processor/static_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_range_map_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Tpo src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/static_range_map_unittest.cc' object='src/processor/static_range_map_unittest-static_range_map_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/static_range_map_unittest-static_range_map_unittest.obj `if test -f 'src/processor/static_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_range_map_unittest.cc'; fi`
+
+src/common/processor_synth_minidump_unittest-test_assembler.o: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_synth_minidump_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Tpo -c -o src/common/processor_synth_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_synth_minidump_unittest-test_assembler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_synth_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
+
+src/common/processor_synth_minidump_unittest-test_assembler.obj: src/common/test_assembler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/processor_synth_minidump_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Tpo -c -o src/common/processor_synth_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/test_assembler.cc' object='src/common/processor_synth_minidump_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/processor_synth_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
+
+src/processor/synth_minidump_unittest-synth_minidump_unittest.o: src/processor/synth_minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/synth_minidump_unittest-synth_minidump_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Tpo -c -o src/processor/synth_minidump_unittest-synth_minidump_unittest.o `test -f 'src/processor/synth_minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/synth_minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Tpo src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump_unittest.cc' object='src/processor/synth_minidump_unittest-synth_minidump_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/synth_minidump_unittest-synth_minidump_unittest.o `test -f 'src/processor/synth_minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/synth_minidump_unittest.cc
+
+src/processor/synth_minidump_unittest-synth_minidump_unittest.obj: src/processor/synth_minidump_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/synth_minidump_unittest-synth_minidump_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Tpo -c -o src/processor/synth_minidump_unittest-synth_minidump_unittest.obj `if test -f 'src/processor/synth_minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Tpo src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump_unittest.cc' object='src/processor/synth_minidump_unittest-synth_minidump_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/synth_minidump_unittest-synth_minidump_unittest.obj `if test -f 'src/processor/synth_minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump_unittest.cc'; fi`
+
+src/processor/synth_minidump_unittest-synth_minidump.o: src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/synth_minidump_unittest-synth_minidump.o -MD -MP -MF src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Tpo -c -o src/processor/synth_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump.cc' object='src/processor/synth_minidump_unittest-synth_minidump.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/synth_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
+
+src/processor/synth_minidump_unittest-synth_minidump.obj: src/processor/synth_minidump.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/synth_minidump_unittest-synth_minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Tpo -c -o src/processor/synth_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/synth_minidump.cc' object='src/processor/synth_minidump_unittest-synth_minidump.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/synth_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+
+src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-language.o: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-language.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/tools_linux_dump_syms_dump_syms-language.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+
+src/common/tools_linux_dump_syms_dump_syms-language.obj: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-language.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/tools_linux_dump_syms_dump_syms-language.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-module.o: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-module.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/tools_linux_dump_syms_dump_syms-module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+
+src/common/tools_linux_dump_syms_dump_syms-module.obj: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/tools_linux_dump_syms_dump_syms-module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-path_helper.o: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/tools_linux_dump_syms_dump_syms-path_helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+
+src/common/tools_linux_dump_syms_dump_syms-path_helper.obj: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/tools_linux_dump_syms_dump_syms-path_helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-stabs_reader.o: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/tools_linux_dump_syms_dump_syms-stabs_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+
+src/common/tools_linux_dump_syms_dump_syms-stabs_reader.obj: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/tools_linux_dump_syms_dump_syms-stabs_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+
+src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.o: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+
+src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.obj: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_linux_dump_syms_dump_syms-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.o: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.obj: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.o: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+
+src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.obj: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Tpo -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_linux_dump_syms_dump_syms-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-crc32.o: src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-crc32.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/crc32.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-crc32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-crc32.obj: src/common/linux/crc32.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-crc32.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/crc32.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-crc32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.o: src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.obj: src/common/linux/dump_symbols.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/dump_symbols.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o: src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj: src/common/linux/elf_symbols_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elf_symbols_to_module.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.o: src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elfutils.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.obj: src/common/linux/elfutils.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/elfutils.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-file_id.o: src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-file_id.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-file_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-file_id.obj: src/common/linux/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-file_id.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/file_id.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-file_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.o: src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.obj: src/common/linux/linux_libc_support.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/linux_libc_support.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.o: src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.obj: src/common/linux/memory_mapped_file.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/memory_mapped_file.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
+
+src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.o: src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.o -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
+
+src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.obj: src/common/linux/safe_readlink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.obj -MD -MP -MF src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Tpo -c -o src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Tpo src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/linux/safe_readlink.cc' object='src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tools_linux_dump_syms_dump_syms-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
+
+src/tools/linux/dump_syms/dump_syms-dump_syms.o: src/tools/linux/dump_syms/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/dump_syms/dump_syms-dump_syms.o -MD -MP -MF src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Tpo -c -o src/tools/linux/dump_syms/dump_syms-dump_syms.o `test -f 'src/tools/linux/dump_syms/dump_syms.cc' || echo '$(srcdir)/'`src/tools/linux/dump_syms/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Tpo src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/linux/dump_syms/dump_syms.cc' object='src/tools/linux/dump_syms/dump_syms-dump_syms.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/dump_syms/dump_syms-dump_syms.o `test -f 'src/tools/linux/dump_syms/dump_syms.cc' || echo '$(srcdir)/'`src/tools/linux/dump_syms/dump_syms.cc
+
+src/tools/linux/dump_syms/dump_syms-dump_syms.obj: src/tools/linux/dump_syms/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/dump_syms/dump_syms-dump_syms.obj -MD -MP -MF src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Tpo -c -o src/tools/linux/dump_syms/dump_syms-dump_syms.obj `if test -f 'src/tools/linux/dump_syms/dump_syms.cc'; then $(CYGPATH_W) 'src/tools/linux/dump_syms/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/dump_syms/dump_syms.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Tpo src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/linux/dump_syms/dump_syms.cc' object='src/tools/linux/dump_syms/dump_syms-dump_syms.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/dump_syms/dump_syms-dump_syms.obj `if test -f 'src/tools/linux/dump_syms/dump_syms.cc'; then $(CYGPATH_W) 'src/tools/linux/dump_syms/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/dump_syms/dump_syms.cc'; fi`
+
+src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.o: src/tools/linux/md2core/minidump_memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.o -MD -MP -MF src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Tpo -c -o src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.o `test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc' || echo '$(srcdir)/'`src/tools/linux/md2core/minidump_memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Tpo src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/linux/md2core/minidump_memory_range_unittest.cc' object='src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.o `test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc' || echo '$(srcdir)/'`src/tools/linux/md2core/minidump_memory_range_unittest.cc
+
+src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.obj: src/tools/linux/md2core/minidump_memory_range_unittest.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.obj -MD -MP -MF src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Tpo -c -o src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.obj `if test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; then $(CYGPATH_W) 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/md2core/minidump_memory_range_unittest.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Tpo src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/linux/md2core/minidump_memory_range_unittest.cc' object='src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/md2core/minidump_2_core_unittest-minidump_memory_range_unittest.obj `if test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; then $(CYGPATH_W) 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/md2core/minidump_memory_range_unittest.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cfi_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_cu_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_line_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf_range_list_handler.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-language.o: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-language.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-language.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-language.obj: src/common/language.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-language.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/language.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-language.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-md5.o: src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-md5.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/md5.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-md5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-md5.obj: src/common/md5.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-md5.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/md5.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-md5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-module.o: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-module.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-module.obj: src/common/module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.o: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.obj: src/common/path_helper.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/path_helper.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.o: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj: src/common/stabs_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_reader.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
+
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
+
+src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj: src/common/stabs_to_module.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/stabs_to_module.cc' object='src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.o: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.obj: src/common/dwarf/bytereader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/bytereader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2diehandler.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/dwarf2reader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.o: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
+
+src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.obj: src/common/dwarf/elf_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/dwarf/elf_reader.cc' object='src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/tools_mac_dump_syms_dump_syms_mac-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.o: src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/arch_utilities.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj: src/common/mac/arch_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/arch_utilities.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.o: src/common/mac/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.o `test -f 'src/common/mac/dump_syms.cc' || echo '$(srcdir)/'`src/common/mac/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/dump_syms.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.o `test -f 'src/common/mac/dump_syms.cc' || echo '$(srcdir)/'`src/common/mac/dump_syms.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.obj: src/common/mac/dump_syms.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.obj `if test -f 'src/common/mac/dump_syms.cc'; then $(CYGPATH_W) 'src/common/mac/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/dump_syms.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/dump_syms.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-dump_syms.obj `if test -f 'src/common/mac/dump_syms.cc'; then $(CYGPATH_W) 'src/common/mac/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/dump_syms.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.o: src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/file_id.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.obj: src/common/mac/file_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/file_id.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.o: src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_id.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.obj: src/common/mac/macho_id.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_id.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.o: src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.obj: src/common/mac/macho_reader.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_reader.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.o: src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_utilities.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj: src/common/mac/macho_utilities.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_utilities.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.o: src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.o -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_walker.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
+
+src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.obj: src/common/mac/macho_walker.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.obj -MD -MP -MF src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/common/mac/macho_walker.cc' object='src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/tools_mac_dump_syms_dump_syms_mac-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
+
+src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.o: src/tools/mac/dump_syms/dump_syms_tool.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.o -MD -MP -MF src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Tpo -c -o src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.o `test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc' || echo '$(srcdir)/'`src/tools/mac/dump_syms/dump_syms_tool.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Tpo src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/mac/dump_syms/dump_syms_tool.cc' object='src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.o `test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc' || echo '$(srcdir)/'`src/tools/mac/dump_syms/dump_syms_tool.cc
+
+src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.obj: src/tools/mac/dump_syms/dump_syms_tool.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.obj -MD -MP -MF src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Tpo -c -o src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.obj `if test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc'; then $(CYGPATH_W) 'src/tools/mac/dump_syms/dump_syms_tool.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/mac/dump_syms/dump_syms_tool.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Tpo src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/tools/mac/dump_syms/dump_syms_tool.cc' object='src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/mac/dump_syms/dump_syms_mac-dump_syms_tool.obj `if test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc'; then $(CYGPATH_W) 'src/tools/mac/dump_syms/dump_syms_tool.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/mac/dump_syms/dump_syms_tool.cc'; fi`
+install-dist_docDATA: $(dist_doc_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
+	done
+
+uninstall-dist_docDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigDATA: $(pkgconfig_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+	done
+
+uninstall-pkgconfigDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+install-includecHEADERS: $(includec_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includec_HEADERS)'; test -n "$(includecdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includecdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includecdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includecdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includecdir)" || exit $$?; \
+	done
+
+uninstall-includecHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includec_HEADERS)'; test -n "$(includecdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includecdir)'; $(am__uninstall_files_from_dir)
+install-includeclHEADERS: $(includecl_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includecl_HEADERS)'; test -n "$(includecldir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includecldir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includecldir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includecldir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includecldir)" || exit $$?; \
+	done
+
+uninstall-includeclHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includecl_HEADERS)'; test -n "$(includecldir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includecldir)'; $(am__uninstall_files_from_dir)
+install-includeclcHEADERS: $(includeclc_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includeclc_HEADERS)'; test -n "$(includeclcdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includeclcdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includeclcdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includeclcdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includeclcdir)" || exit $$?; \
+	done
+
+uninstall-includeclcHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includeclc_HEADERS)'; test -n "$(includeclcdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includeclcdir)'; $(am__uninstall_files_from_dir)
+install-includecldwcHEADERS: $(includecldwc_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includecldwc_HEADERS)'; test -n "$(includecldwcdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includecldwcdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includecldwcdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includecldwcdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includecldwcdir)" || exit $$?; \
+	done
+
+uninstall-includecldwcHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includecldwc_HEADERS)'; test -n "$(includecldwcdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includecldwcdir)'; $(am__uninstall_files_from_dir)
+install-includeclhHEADERS: $(includeclh_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includeclh_HEADERS)'; test -n "$(includeclhdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includeclhdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includeclhdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includeclhdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includeclhdir)" || exit $$?; \
+	done
+
+uninstall-includeclhHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includeclh_HEADERS)'; test -n "$(includeclhdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includeclhdir)'; $(am__uninstall_files_from_dir)
+install-includeclmHEADERS: $(includeclm_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includeclm_HEADERS)'; test -n "$(includeclmdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includeclmdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includeclmdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includeclmdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includeclmdir)" || exit $$?; \
+	done
+
+uninstall-includeclmHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includeclm_HEADERS)'; test -n "$(includeclmdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includeclmdir)'; $(am__uninstall_files_from_dir)
+install-includegbcHEADERS: $(includegbc_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includegbc_HEADERS)'; test -n "$(includegbcdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includegbcdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includegbcdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includegbcdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includegbcdir)" || exit $$?; \
+	done
+
+uninstall-includegbcHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includegbc_HEADERS)'; test -n "$(includegbcdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includegbcdir)'; $(am__uninstall_files_from_dir)
+install-includelssHEADERS: $(includelss_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includelss_HEADERS)'; test -n "$(includelssdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includelssdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includelssdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includelssdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includelssdir)" || exit $$?; \
+	done
+
+uninstall-includelssHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includelss_HEADERS)'; test -n "$(includelssdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includelssdir)'; $(am__uninstall_files_from_dir)
+install-includepHEADERS: $(includep_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(includep_HEADERS)'; test -n "$(includepdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(includepdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(includepdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includepdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includepdir)" || exit $$?; \
+	done
+
+uninstall-includepHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(includep_HEADERS)'; test -n "$(includepdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(includepdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	elif test -n "$$redo_logs"; then \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
+	    else \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+	    fi; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
+	    else \
+	      color_start= color_end=; \
+	    fi; \
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS: $(check_PROGRAMS) $(check_LIBRARIES) $(check_SCRIPTS)
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS) $(check_LIBRARIES) $(check_SCRIPTS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+src/common/test_assembler_unittest.log: src/common/test_assembler_unittest$(EXEEXT)
+	@p='src/common/test_assembler_unittest$(EXEEXT)'; \
+	b='src/common/test_assembler_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/common/dwarf/dwarf2reader_lineinfo_unittest.log: src/common/dwarf/dwarf2reader_lineinfo_unittest$(EXEEXT)
+	@p='src/common/dwarf/dwarf2reader_lineinfo_unittest$(EXEEXT)'; \
+	b='src/common/dwarf/dwarf2reader_lineinfo_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/common/dwarf/dwarf2reader_splitfunctions_unittest.log: src/common/dwarf/dwarf2reader_splitfunctions_unittest$(EXEEXT)
+	@p='src/common/dwarf/dwarf2reader_splitfunctions_unittest$(EXEEXT)'; \
+	b='src/common/dwarf/dwarf2reader_splitfunctions_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/address_map_unittest.log: src/processor/address_map_unittest$(EXEEXT)
+	@p='src/processor/address_map_unittest$(EXEEXT)'; \
+	b='src/processor/address_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/basic_source_line_resolver_unittest.log: src/processor/basic_source_line_resolver_unittest$(EXEEXT)
+	@p='src/processor/basic_source_line_resolver_unittest$(EXEEXT)'; \
+	b='src/processor/basic_source_line_resolver_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/cfi_frame_info_unittest.log: src/processor/cfi_frame_info_unittest$(EXEEXT)
+	@p='src/processor/cfi_frame_info_unittest$(EXEEXT)'; \
+	b='src/processor/cfi_frame_info_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/contained_range_map_unittest.log: src/processor/contained_range_map_unittest$(EXEEXT)
+	@p='src/processor/contained_range_map_unittest$(EXEEXT)'; \
+	b='src/processor/contained_range_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/disassembler_x86_unittest.log: src/processor/disassembler_x86_unittest$(EXEEXT)
+	@p='src/processor/disassembler_x86_unittest$(EXEEXT)'; \
+	b='src/processor/disassembler_x86_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/exploitability_unittest.log: src/processor/exploitability_unittest$(EXEEXT)
+	@p='src/processor/exploitability_unittest$(EXEEXT)'; \
+	b='src/processor/exploitability_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/fast_source_line_resolver_unittest.log: src/processor/fast_source_line_resolver_unittest$(EXEEXT)
+	@p='src/processor/fast_source_line_resolver_unittest$(EXEEXT)'; \
+	b='src/processor/fast_source_line_resolver_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/map_serializers_unittest.log: src/processor/map_serializers_unittest$(EXEEXT)
+	@p='src/processor/map_serializers_unittest$(EXEEXT)'; \
+	b='src/processor/map_serializers_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/microdump_processor_unittest.log: src/processor/microdump_processor_unittest$(EXEEXT)
+	@p='src/processor/microdump_processor_unittest$(EXEEXT)'; \
+	b='src/processor/microdump_processor_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/minidump_processor_unittest.log: src/processor/minidump_processor_unittest$(EXEEXT)
+	@p='src/processor/minidump_processor_unittest$(EXEEXT)'; \
+	b='src/processor/minidump_processor_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/minidump_unittest.log: src/processor/minidump_unittest$(EXEEXT)
+	@p='src/processor/minidump_unittest$(EXEEXT)'; \
+	b='src/processor/minidump_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/static_address_map_unittest.log: src/processor/static_address_map_unittest$(EXEEXT)
+	@p='src/processor/static_address_map_unittest$(EXEEXT)'; \
+	b='src/processor/static_address_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/static_contained_range_map_unittest.log: src/processor/static_contained_range_map_unittest$(EXEEXT)
+	@p='src/processor/static_contained_range_map_unittest$(EXEEXT)'; \
+	b='src/processor/static_contained_range_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/static_map_unittest.log: src/processor/static_map_unittest$(EXEEXT)
+	@p='src/processor/static_map_unittest$(EXEEXT)'; \
+	b='src/processor/static_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/static_range_map_unittest.log: src/processor/static_range_map_unittest$(EXEEXT)
+	@p='src/processor/static_range_map_unittest$(EXEEXT)'; \
+	b='src/processor/static_range_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/pathname_stripper_unittest.log: src/processor/pathname_stripper_unittest$(EXEEXT)
+	@p='src/processor/pathname_stripper_unittest$(EXEEXT)'; \
+	b='src/processor/pathname_stripper_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/postfix_evaluator_unittest.log: src/processor/postfix_evaluator_unittest$(EXEEXT)
+	@p='src/processor/postfix_evaluator_unittest$(EXEEXT)'; \
+	b='src/processor/postfix_evaluator_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/proc_maps_linux_unittest.log: src/processor/proc_maps_linux_unittest$(EXEEXT)
+	@p='src/processor/proc_maps_linux_unittest$(EXEEXT)'; \
+	b='src/processor/proc_maps_linux_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/range_map_truncate_lower_unittest.log: src/processor/range_map_truncate_lower_unittest$(EXEEXT)
+	@p='src/processor/range_map_truncate_lower_unittest$(EXEEXT)'; \
+	b='src/processor/range_map_truncate_lower_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/range_map_truncate_upper_unittest.log: src/processor/range_map_truncate_upper_unittest$(EXEEXT)
+	@p='src/processor/range_map_truncate_upper_unittest$(EXEEXT)'; \
+	b='src/processor/range_map_truncate_upper_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/range_map_unittest.log: src/processor/range_map_unittest$(EXEEXT)
+	@p='src/processor/range_map_unittest$(EXEEXT)'; \
+	b='src/processor/range_map_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_amd64_unittest.log: src/processor/stackwalker_amd64_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_amd64_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_amd64_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_arm_unittest.log: src/processor/stackwalker_arm_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_arm_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_arm_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_arm64_unittest.log: src/processor/stackwalker_arm64_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_arm64_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_arm64_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_address_list_unittest.log: src/processor/stackwalker_address_list_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_address_list_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_address_list_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_mips_unittest.log: src/processor/stackwalker_mips_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_mips_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_mips_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_mips64_unittest.log: src/processor/stackwalker_mips64_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_mips64_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_mips64_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_x86_unittest.log: src/processor/stackwalker_x86_unittest$(EXEEXT)
+	@p='src/processor/stackwalker_x86_unittest$(EXEEXT)'; \
+	b='src/processor/stackwalker_x86_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/synth_minidump_unittest.log: src/processor/synth_minidump_unittest$(EXEEXT)
+	@p='src/processor/synth_minidump_unittest$(EXEEXT)'; \
+	b='src/processor/synth_minidump_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/client/linux/linux_client_unittest.log: src/client/linux/linux_client_unittest$(EXEEXT)
+	@p='src/client/linux/linux_client_unittest$(EXEEXT)'; \
+	b='src/client/linux/linux_client_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/common/linux/google_crashdump_uploader_test.log: src/common/linux/google_crashdump_uploader_test$(EXEEXT)
+	@p='src/common/linux/google_crashdump_uploader_test$(EXEEXT)'; \
+	b='src/common/linux/google_crashdump_uploader_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/common/dumper_unittest.log: src/common/dumper_unittest$(EXEEXT)
+	@p='src/common/dumper_unittest$(EXEEXT)'; \
+	b='src/common/dumper_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/tools/linux/md2core/minidump_2_core_unittest.log: src/tools/linux/md2core/minidump_2_core_unittest$(EXEEXT)
+	@p='src/tools/linux/md2core/minidump_2_core_unittest$(EXEEXT)'; \
+	b='src/tools/linux/md2core/minidump_2_core_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/common/mac/macho_reader_unittest.log: src/common/mac/macho_reader_unittest$(EXEEXT)
+	@p='src/common/mac/macho_reader_unittest$(EXEEXT)'; \
+	b='src/common/mac/macho_reader_unittest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/stackwalker_selftest.log: src/processor/stackwalker_selftest$(EXEEXT)
+	@p='src/processor/stackwalker_selftest$(EXEEXT)'; \
+	b='src/processor/stackwalker_selftest'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/microdump_stackwalk_test.log: src/processor/microdump_stackwalk_test
+	@p='src/processor/microdump_stackwalk_test'; \
+	b='src/processor/microdump_stackwalk_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/microdump_stackwalk_machine_readable_test.log: src/processor/microdump_stackwalk_machine_readable_test
+	@p='src/processor/microdump_stackwalk_machine_readable_test'; \
+	b='src/processor/microdump_stackwalk_machine_readable_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/minidump_dump_test.log: src/processor/minidump_dump_test
+	@p='src/processor/minidump_dump_test'; \
+	b='src/processor/minidump_dump_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/minidump_stackwalk_test.log: src/processor/minidump_stackwalk_test
+	@p='src/processor/minidump_stackwalk_test'; \
+	b='src/processor/minidump_stackwalk_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+src/processor/minidump_stackwalk_machine_readable_test.log: src/processor/minidump_stackwalk_machine_readable_test
+	@p='src/processor/minidump_stackwalk_machine_readable_test'; \
+	b='src/processor/minidump_stackwalk_machine_readable_test'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+	$(am__post_remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
+
+dist-zstd: distdir
+	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+	$(am__post_remove_distdir)
+
+dist-tarZ: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__post_remove_distdir)
+
+dist-shar: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+	$(am__post_remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__post_remove_distdir)
+
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	*.tar.zst*) \
+	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+	esac
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__post_remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_LIBRARIES) \
+	  $(check_SCRIPTS)
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(SCRIPTS) $(DATA) \
+		$(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includecdir)" "$(DESTDIR)$(includecldir)" "$(DESTDIR)$(includeclcdir)" "$(DESTDIR)$(includecldwcdir)" "$(DESTDIR)$(includeclhdir)" "$(DESTDIR)$(includeclmdir)" "$(DESTDIR)$(includegbcdir)" "$(DESTDIR)$(includelssdir)" "$(DESTDIR)$(includepdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-rm -f src/$(am__dirstamp)
+	-rm -f src/client/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/$(am__dirstamp)
+	-rm -f src/client/linux/$(am__dirstamp)
+	-rm -f src/client/linux/crash_generation/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/crash_generation/$(am__dirstamp)
+	-rm -f src/client/linux/dump_writer_common/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/dump_writer_common/$(am__dirstamp)
+	-rm -f src/client/linux/handler/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/handler/$(am__dirstamp)
+	-rm -f src/client/linux/log/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/log/$(am__dirstamp)
+	-rm -f src/client/linux/microdump_writer/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/microdump_writer/$(am__dirstamp)
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/client/linux/minidump_writer/$(am__dirstamp)
+	-rm -f src/common/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/$(am__dirstamp)
+	-rm -f src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/dwarf/$(am__dirstamp)
+	-rm -f src/common/linux/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/linux/$(am__dirstamp)
+	-rm -f src/common/linux/tests/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/linux/tests/$(am__dirstamp)
+	-rm -f src/common/mac/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/mac/$(am__dirstamp)
+	-rm -f src/common/tests/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/common/tests/$(am__dirstamp)
+	-rm -f src/processor/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/processor/$(am__dirstamp)
+	-rm -f src/testing/$(am__dirstamp)
+	-rm -f src/testing/googlemock/src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/testing/googlemock/src/$(am__dirstamp)
+	-rm -f src/testing/googletest/src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/testing/googletest/src/$(am__dirstamp)
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/third_party/libdisasm/$(am__dirstamp)
+	-rm -f src/tools/linux/core2md/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/core2md/$(am__dirstamp)
+	-rm -f src/tools/linux/core_handler/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/core_handler/$(am__dirstamp)
+	-rm -f src/tools/linux/dump_syms/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/dump_syms/$(am__dirstamp)
+	-rm -f src/tools/linux/md2core/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/md2core/$(am__dirstamp)
+	-rm -f src/tools/linux/pid2md/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/pid2md/$(am__dirstamp)
+	-rm -f src/tools/linux/symupload/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/linux/symupload/$(am__dirstamp)
+	-rm -f src/tools/mac/dump_syms/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/tools/mac/dump_syms/$(am__dirstamp)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-checkLIBRARIES clean-checkPROGRAMS \
+	clean-generic clean-libLIBRARIES clean-libexecPROGRAMS \
+	clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+		-rm -f src/client/$(DEPDIR)/minidump_file_writer.Po
+	-rm -f src/client/linux/crash_generation/$(DEPDIR)/crash_generation_client.Po
+	-rm -f src/client/linux/crash_generation/$(DEPDIR)/crash_generation_server.Po
+	-rm -f src/client/linux/dump_writer_common/$(DEPDIR)/thread_info.Po
+	-rm -f src/client/linux/dump_writer_common/$(DEPDIR)/ucontext_reader.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/exception_handler.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/minidump_descriptor.Po
+	-rm -f src/client/linux/log/$(DEPDIR)/log.Po
+	-rm -f src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po
+	-rm -f src/client/linux/microdump_writer/$(DEPDIR)/microdump_writer.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_core_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_ptrace_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/minidump_writer.Po
+	-rm -f src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
+	-rm -f src/common/$(DEPDIR)/convert_UTF.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-language.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/md5.Po
+	-rm -f src/common/$(DEPDIR)/path_helper.Po
+	-rm -f src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/string_conversion.Po
+	-rm -f src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
+	-rm -f src/common/linux/$(DEPDIR)/breakpad_getcontext.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po
+	-rm -f src/common/linux/$(DEPDIR)/guid_creator.Po
+	-rm -f src/common/linux/$(DEPDIR)/http_upload.Po
+	-rm -f src/common/linux/$(DEPDIR)/libcurl_wrapper.Po
+	-rm -f src/common/linux/$(DEPDIR)/linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/safe_readlink.Po
+	-rm -f src/common/linux/$(DEPDIR)/symbol_collector_client.Po
+	-rm -f src/common/linux/$(DEPDIR)/symbol_upload.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po
+	-rm -f src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po
+	-rm -f src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
+	-rm -f src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po
+	-rm -f src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po
+	-rm -f src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po
+	-rm -f src/processor/$(DEPDIR)/address_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/basic_code_modules.Po
+	-rm -f src/processor/$(DEPDIR)/basic_source_line_resolver.Po
+	-rm -f src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/call_stack.Po
+	-rm -f src/processor/$(DEPDIR)/cfi_frame_info.Po
+	-rm -f src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/contained_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/convert_old_arm64_context.Po
+	-rm -f src/processor/$(DEPDIR)/disassembler_x86.Po
+	-rm -f src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/dump_context.Po
+	-rm -f src/processor/$(DEPDIR)/dump_object.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_linux.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_win.Po
+	-rm -f src/processor/$(DEPDIR)/fast_source_line_resolver.Po
+	-rm -f src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/logging.Po
+	-rm -f src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/microdump.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_processor.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_stackwalk.Po
+	-rm -f src/processor/$(DEPDIR)/minidump.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_dump.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_processor.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_stackwalk.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po
+	-rm -f src/processor/$(DEPDIR)/module_comparer.Po
+	-rm -f src/processor/$(DEPDIR)/module_serializer.Po
+	-rm -f src/processor/$(DEPDIR)/pathname_stripper.Po
+	-rm -f src/processor/$(DEPDIR)/pathname_stripper_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/postfix_evaluator_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/process_state.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/simple_symbol_supplier.Po
+	-rm -f src/processor/$(DEPDIR)/source_line_resolver_base.Po
+	-rm -f src/processor/$(DEPDIR)/stack_frame_cpu.Po
+	-rm -f src/processor/$(DEPDIR)/stack_frame_symbolizer.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_address_list.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_amd64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_ppc.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_ppc64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_selftest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_sparc.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_x86.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/symbolic_constants_win.Po
+	-rm -f src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po
+	-rm -f src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/tokenize.Po
+	-rm -f src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po
+	-rm -f src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_implicit.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_insn.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_invariant.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_modrm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_opcode_tables.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_operand.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_reg.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_settings.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_disasm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_format.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_imm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_insn.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_misc.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_operand_list.Po
+	-rm -f src/tools/linux/core2md/$(DEPDIR)/core2md.Po
+	-rm -f src/tools/linux/core_handler/$(DEPDIR)/core_handler.Po
+	-rm -f src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po
+	-rm -f src/tools/linux/md2core/$(DEPDIR)/minidump-2-core.Po
+	-rm -f src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po
+	-rm -f src/tools/linux/pid2md/$(DEPDIR)/pid2md.Po
+	-rm -f src/tools/linux/symupload/$(DEPDIR)/minidump_upload.Po
+	-rm -f src/tools/linux/symupload/$(DEPDIR)/sym_upload.Po
+	-rm -f src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_docDATA install-includecHEADERS \
+	install-includeclHEADERS install-includeclcHEADERS \
+	install-includecldwcHEADERS install-includeclhHEADERS \
+	install-includeclmHEADERS install-includegbcHEADERS \
+	install-includelssHEADERS install-includepHEADERS \
+	install-pkgconfigDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-libLIBRARIES \
+	install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+		-rm -f src/client/$(DEPDIR)/minidump_file_writer.Po
+	-rm -f src/client/linux/crash_generation/$(DEPDIR)/crash_generation_client.Po
+	-rm -f src/client/linux/crash_generation/$(DEPDIR)/crash_generation_server.Po
+	-rm -f src/client/linux/dump_writer_common/$(DEPDIR)/thread_info.Po
+	-rm -f src/client/linux/dump_writer_common/$(DEPDIR)/ucontext_reader.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/exception_handler.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/linux_client_unittest_shlib-exception_handler_unittest.Po
+	-rm -f src/client/linux/handler/$(DEPDIR)/minidump_descriptor.Po
+	-rm -f src/client/linux/log/$(DEPDIR)/log.Po
+	-rm -f src/client/linux/microdump_writer/$(DEPDIR)/linux_client_unittest_shlib-microdump_writer_unittest.Po
+	-rm -f src/client/linux/microdump_writer/$(DEPDIR)/microdump_writer.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-cpu_set_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-directory_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-line_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_core_dumper_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_core_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/linux_ptrace_dumper.Po
+	-rm -f src/client/linux/minidump_writer/$(DEPDIR)/minidump_writer.Po
+	-rm -f src/common/$(DEPDIR)/client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
+	-rm -f src/common/$(DEPDIR)/convert_UTF.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-byte_cursor_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-convert_UTF.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cfi_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_cu_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_line_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-language.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-memory_range_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_reader_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-stabs_to_module_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-string_conversion.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-string_conversion_unittest.Po
+	-rm -f src/common/$(DEPDIR)/dumper_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-language.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-md5.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/mac_macho_reader_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/md5.Po
+	-rm -f src/common/$(DEPDIR)/path_helper.Po
+	-rm -f src/common/$(DEPDIR)/processor_minidump_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_address_list_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_amd64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_arm64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_arm_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_mips64_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_mips_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_stackwalker_x86_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/processor_synth_minidump_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/string_conversion.Po
+	-rm -f src/common/$(DEPDIR)/test_assembler_unittest-test_assembler.Po
+	-rm -f src/common/$(DEPDIR)/test_assembler_unittest-test_assembler_unittest.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-language.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-module.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/tools_linux_dump_syms_dump_syms-stabs_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-language.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-md5.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-module.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-path_helper.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
+	-rm -f src/common/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-bytereader_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-cfi_assembler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2diehandler_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_cfi_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-dwarf2reader_die_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dumper_unittest-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dwarf2reader_lineinfo_unittest-dwarf2reader_lineinfo_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/dwarf2reader_splitfunctions_unittest-dwarf2reader_splitfunctions_unittest.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-cfi_assembler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/mac_macho_reader_unittest-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-bytereader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
+	-rm -f src/common/dwarf/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
+	-rm -f src/common/linux/$(DEPDIR)/breakpad_getcontext.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-crc32.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-dump_symbols_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_core_dump_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elf_symbols_to_module_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-file_id_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-memory_mapped_file_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-safe_readlink_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf.Po
+	-rm -f src/common/linux/$(DEPDIR)/dumper_unittest-synth_elf_unittest.Po
+	-rm -f src/common/linux/$(DEPDIR)/elf_core_dump.Po
+	-rm -f src/common/linux/$(DEPDIR)/elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-google_crashdump_uploader_test.Po
+	-rm -f src/common/linux/$(DEPDIR)/google_crashdump_uploader_test-libcurl_wrapper.Po
+	-rm -f src/common/linux/$(DEPDIR)/guid_creator.Po
+	-rm -f src/common/linux/$(DEPDIR)/http_upload.Po
+	-rm -f src/common/linux/$(DEPDIR)/libcurl_wrapper.Po
+	-rm -f src/common/linux/$(DEPDIR)/linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/safe_readlink.Po
+	-rm -f src/common/linux/$(DEPDIR)/symbol_collector_client.Po
+	-rm -f src/common/linux/$(DEPDIR)/symbol_upload.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-crc32.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-dump_symbols.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-elfutils.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-file_id.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-linux_libc_support.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
+	-rm -f src/common/linux/$(DEPDIR)/tools_linux_dump_syms_dump_syms-safe_readlink.Po
+	-rm -f src/common/linux/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-crash_generator.Po
+	-rm -f src/common/linux/tests/$(DEPDIR)/dumper_unittest-crash_generator.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-arch_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-file_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_reader_unittest.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/macho_reader_unittest-macho_walker.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-file_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_id.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
+	-rm -f src/common/mac/$(DEPDIR)/tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
+	-rm -f src/common/tests/$(DEPDIR)/client_linux_linux_client_unittest_shlib-file_utils.Po
+	-rm -f src/common/tests/$(DEPDIR)/dumper_unittest-file_utils.Po
+	-rm -f src/common/tests/$(DEPDIR)/mac_macho_reader_unittest-file_utils.Po
+	-rm -f src/processor/$(DEPDIR)/address_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/basic_code_modules.Po
+	-rm -f src/processor/$(DEPDIR)/basic_source_line_resolver.Po
+	-rm -f src/processor/$(DEPDIR)/basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/call_stack.Po
+	-rm -f src/processor/$(DEPDIR)/cfi_frame_info.Po
+	-rm -f src/processor/$(DEPDIR)/cfi_frame_info_unittest-cfi_frame_info_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-basic_code_modules.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_context.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-dump_object.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-logging.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-minidump.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-pathname_stripper.Po
+	-rm -f src/processor/$(DEPDIR)/client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/contained_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/convert_old_arm64_context.Po
+	-rm -f src/processor/$(DEPDIR)/disassembler_x86.Po
+	-rm -f src/processor/$(DEPDIR)/disassembler_x86_unittest-disassembler_x86_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/dump_context.Po
+	-rm -f src/processor/$(DEPDIR)/dump_object.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_linux.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_unittest-exploitability_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/exploitability_win.Po
+	-rm -f src/processor/$(DEPDIR)/fast_source_line_resolver.Po
+	-rm -f src/processor/$(DEPDIR)/fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/logging.Po
+	-rm -f src/processor/$(DEPDIR)/map_serializers_unittest-map_serializers_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/microdump.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_processor.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_processor_unittest-microdump_processor_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/microdump_stackwalk.Po
+	-rm -f src/processor/$(DEPDIR)/minidump.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_dump.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_processor.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_processor_unittest-minidump_processor_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_stackwalk.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_unittest-minidump_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/minidump_unittest-synth_minidump.Po
+	-rm -f src/processor/$(DEPDIR)/module_comparer.Po
+	-rm -f src/processor/$(DEPDIR)/module_serializer.Po
+	-rm -f src/processor/$(DEPDIR)/pathname_stripper.Po
+	-rm -f src/processor/$(DEPDIR)/pathname_stripper_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/postfix_evaluator_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux.Po
+	-rm -f src/processor/$(DEPDIR)/proc_maps_linux_unittest-proc_maps_linux_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/process_state.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/simple_symbol_supplier.Po
+	-rm -f src/processor/$(DEPDIR)/source_line_resolver_base.Po
+	-rm -f src/processor/$(DEPDIR)/stack_frame_cpu.Po
+	-rm -f src/processor/$(DEPDIR)/stack_frame_symbolizer.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_address_list.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_amd64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_arm_unittest-stackwalker_arm_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_mips_unittest-stackwalker_mips_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_ppc.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_ppc64.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_selftest.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_sparc.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_x86.Po
+	-rm -f src/processor/$(DEPDIR)/stackwalker_x86_unittest-stackwalker_x86_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_address_map_unittest-static_address_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_contained_range_map_unittest-static_contained_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_map_unittest-static_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/static_range_map_unittest-static_range_map_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/symbolic_constants_win.Po
+	-rm -f src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump.Po
+	-rm -f src/processor/$(DEPDIR)/synth_minidump_unittest-synth_minidump_unittest.Po
+	-rm -f src/processor/$(DEPDIR)/tokenize.Po
+	-rm -f src/testing/googlemock/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gmock-all.Po
+	-rm -f src/testing/googlemock/src/$(DEPDIR)/libtesting_a-gmock-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/client_linux_linux_client_unittest_shlib-gtest_main.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest-all.Po
+	-rm -f src/testing/googletest/src/$(DEPDIR)/libtesting_a-gtest_main.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_implicit.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_insn.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_invariant.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_modrm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_opcode_tables.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_operand.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_reg.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/ia32_settings.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_disasm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_format.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_imm.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_insn.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_misc.Po
+	-rm -f src/third_party/libdisasm/$(DEPDIR)/x86_operand_list.Po
+	-rm -f src/tools/linux/core2md/$(DEPDIR)/core2md.Po
+	-rm -f src/tools/linux/core_handler/$(DEPDIR)/core_handler.Po
+	-rm -f src/tools/linux/dump_syms/$(DEPDIR)/dump_syms-dump_syms.Po
+	-rm -f src/tools/linux/md2core/$(DEPDIR)/minidump-2-core.Po
+	-rm -f src/tools/linux/md2core/$(DEPDIR)/minidump_2_core_unittest-minidump_memory_range_unittest.Po
+	-rm -f src/tools/linux/pid2md/$(DEPDIR)/pid2md.Po
+	-rm -f src/tools/linux/symupload/$(DEPDIR)/minidump_upload.Po
+	-rm -f src/tools/linux/symupload/$(DEPDIR)/sym_upload.Po
+	-rm -f src/tools/mac/dump_syms/$(DEPDIR)/dump_syms_mac-dump_syms_tool.Po
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-local
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-dist_docDATA \
+	uninstall-includecHEADERS uninstall-includeclHEADERS \
+	uninstall-includeclcHEADERS uninstall-includecldwcHEADERS \
+	uninstall-includeclhHEADERS uninstall-includeclmHEADERS \
+	uninstall-includegbcHEADERS uninstall-includelssHEADERS \
+	uninstall-includepHEADERS uninstall-libLIBRARIES \
+	uninstall-libexecPROGRAMS uninstall-pkgconfigDATA
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \
+	check-TESTS check-am clean clean-binPROGRAMS \
+	clean-checkLIBRARIES clean-checkPROGRAMS clean-cscope \
+	clean-generic clean-libLIBRARIES clean-libexecPROGRAMS \
+	clean-noinstLIBRARIES clean-noinstPROGRAMS cscope \
+	cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+	dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
+	dist-zstd distcheck distclean distclean-compile \
+	distclean-generic distclean-hdr distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am html html-am info \
+	info-am install install-am install-binPROGRAMS install-data \
+	install-data-am install-dist_docDATA install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-includecHEADERS \
+	install-includeclHEADERS install-includeclcHEADERS \
+	install-includecldwcHEADERS install-includeclhHEADERS \
+	install-includeclmHEADERS install-includegbcHEADERS \
+	install-includelssHEADERS install-includepHEADERS install-info \
+	install-info-am install-libLIBRARIES install-libexecPROGRAMS \
+	install-man install-pdf install-pdf-am install-pkgconfigDATA \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am \
+	recheck tags tags-am uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-dist_docDATA \
+	uninstall-includecHEADERS uninstall-includeclHEADERS \
+	uninstall-includeclcHEADERS uninstall-includecldwcHEADERS \
+	uninstall-includeclhHEADERS uninstall-includeclmHEADERS \
+	uninstall-includegbcHEADERS uninstall-includelssHEADERS \
+	uninstall-includepHEADERS uninstall-libLIBRARIES \
+	uninstall-libexecPROGRAMS uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+mostlyclean-local:
+	-find src -name '*.dwo' -exec rm -f {} +
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README.ANDROID b/README.ANDROID
new file mode 100644
index 0000000..30959ed
--- /dev/null
+++ b/README.ANDROID
@@ -0,0 +1,139 @@
+Google Breakpad for Android
+===========================
+
+This document explains how to use the Google Breakpad client library
+on Android, and later generate valid stack traces from the minidumps
+it generates.
+
+This release supports ARM, x86 and MIPS based Android systems.
+This release requires NDK release r11c or higher.
+
+I. Building the client library:
+===============================
+
+The Android client is built as a static library that you can
+link into your own Android native code. There are two ways to
+build it:
+
+I.1. Building with ndk-build:
+-----------------------------
+
+If you're using the ndk-build build system, you can follow
+these simple steps:
+
+  1/ Include android/google_breakpad/Android.mk from your own
+     project's Android.mk
+
+     This can be done either directly, or using ndk-build's
+     import-module feature.
+
+  2/ Link the library to one of your modules by using:
+
+     LOCAL_STATIC_LIBRARIES += breakpad_client
+
+NOTE: The client library requires a C++ STL implementation,
+      which you can select with APP_STL in your Application.mk
+
+      It has been tested succesfully with both STLport and GNU libstdc++
+
+
+I.2. Building with a standalone Android toolchain:
+--------------------------------------------------
+
+All you need to do is configure your build with the right 'host'
+value, and disable the processor and tools, as in:
+
+  $GOOGLE_BREAKPAD_PATH/configure --host=arm-linux-androideabi \
+                                  --disable-processor \
+                                  --disable-tools
+  make -j4
+
+The library will be under src/client/linux/libbreakpad_client.a
+
+You can also use 'make check' to run the test suite on a connected
+Android device. This requires the Android 'adb' tool to be in your
+path.
+
+II. Using the client library in Android:
+========================================
+
+The usage instructions are very similar to the Linux ones that are
+found at https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/linux_starter_guide.md
+
+1/ You need to include "client/linux/handler/exception_handler.h" from a C++
+   source file.
+
+2/ If you're not using ndk-build, you also need to:
+
+   - add the following to your compiler include search paths:
+       $GOOGLE_BREAKPAD_PATH/src
+       $GOOGLE_BREAKPAD_PATH/src/common/android/include
+
+   - add -llog to your linker flags
+
+   Note that ndk-build does that for your automatically.
+
+3/ Keep in mind that there is no /tmp directory on Android.
+
+   If you use the library from a regular Android applications, specify a
+   path under your app-specific storage directory. An alternative is to
+   store them on the SDCard, but this requires a specific permission.
+
+For a concrete example, see the sample test application under
+android/sample_app. See its README for more information.
+
+
+III. Getting a stack trace on the host:
+=======================================
+
+This process is similar to other platforms, but here's a quick example:
+
+1/ Retrieve the minidumps on your development machine.
+
+2/ Dump the symbols for your native libraries with the 'dump_syms' tool.
+   This first requires building the host version of Google Breakpad, then
+   calling:
+
+      dump_syms $PROJECT_PATH/obj/local/$ABI/libfoo.so > libfoo.so.sym
+
+3/ Create the symbol directory hierarchy.
+
+   The first line of the generated libfoo.so.sym will have a "MODULE"
+   entry that carries a hexadecimal version number, e.g.:
+
+     MODULE Linux arm D51B4A5504974FA6ECC1869CAEE3603B0 test_google_breakpad
+
+   Note: The second field could be either 'Linux' or 'Android'.
+
+   Extract the version number, and a 'symbol' directory, for example:
+
+      $PROJECT_PATH/symbols/libfoo.so/$VERSION/
+
+   Copy/Move your libfoo.sym file there.
+
+4/ Invoke minidump_stackwalk to create the stack trace:
+
+     minidump_stackwalk $MINIDUMP_FILE $PROJECT_PATH/symbols
+
+Note that various helper scripts can be found on the web to automate these
+steps.
+
+IV. Verifying the Android build library:
+========================================
+
+If you modify Google Breakpad and want to check that it still works correctly
+on Android, please run the android/run-checks.sh script which will do all
+necessary verifications for you. This includes:
+
+  - Rebuilding the full host binaries.
+  - Rebuilding the full Android binaries with configure/make.
+  - Rebuilding the client library unit tests, and running them on a device.
+  - Rebuilding the client library with ndk-build.
+  - Building, installing and running a test crasher program on a device.
+  - Extracting the corresponding minidump, dumping the test program symbols
+    and generating a stack trace.
+  - Checking the generated stack trace for valid source locations.
+
+For more details, please run:
+
+  android/run-checks.sh --help-all
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..caefdd2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,82 @@
+# Breakpad
+
+Breakpad is a set of client and server components which implement a
+crash-reporting system.
+
+* [Homepage](https://chromium.googlesource.com/breakpad/breakpad/)
+* [Documentation](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/)
+* [Bugs](https://bugs.chromium.org/p/google-breakpad/)
+* Discussion/Questions: [google-breakpad-discuss@googlegroups.com](https://groups.google.com/d/forum/google-breakpad-discuss)
+* Developer/Reviews: [google-breakpad-dev@googlegroups.com](https://groups.google.com/d/forum/google-breakpad-dev)
+* Tests: [![Build Status](https://travis-ci.org/google/breakpad.svg?branch=master)](https://travis-ci.org/google/breakpad) [![Build status](https://ci.appveyor.com/api/projects/status/eguv4emv2rhq68u2?svg=true)](https://ci.appveyor.com/project/vapier/breakpad)
+* Coverage [![Coverity Status](https://scan.coverity.com/projects/9215/badge.svg)](https://scan.coverity.com/projects/google-breakpad)
+
+## Getting started (from master)
+
+1.  First, [download depot_tools](http://dev.chromium.org/developers/how-tos/install-depot-tools)
+    and ensure that they’re in your `PATH`.
+
+2.  Create a new directory for checking out the source code (it must be named
+    breakpad).
+
+    ```sh
+    mkdir breakpad && cd breakpad
+    ```
+
+3.  Run the `fetch` tool from depot_tools to download all the source repos.
+
+    ```sh
+    fetch breakpad
+    cd src
+    ```
+
+4.  Build the source.
+
+    ```sh
+    ./configure && make
+    ```
+
+    You can also cd to another directory and run configure from there to build
+    outside the source tree.
+
+    This will build the processor tools (`src/processor/minidump_stackwalk`,
+    `src/processor/minidump_dump`, etc), and when building on Linux it will
+    also build the client libraries and some tools
+    (`src/tools/linux/dump_syms/dump_syms`,
+    `src/tools/linux/md2core/minidump-2-core`, etc).
+
+5.  Optionally, run tests.
+
+    ```sh
+    make check
+    ```
+
+6.  Optionally, install the built libraries
+
+    ```sh
+    make install
+    ```
+
+If you need to reconfigure your build be sure to run `make distclean` first.
+
+To update an existing checkout to a newer revision, you can
+`git pull` as usual, but then you should run `gclient sync` to ensure that the
+dependent repos are up-to-date.
+
+## To request change review
+
+1.  Follow the steps above to get the source and build it.
+
+2.  Make changes. Build and test your changes.
+    For core code like processor use methods above.
+    For linux/mac/windows, there are test targets in each project file.
+
+3.  Commit your changes to your local repo and upload them to the server.
+    http://dev.chromium.org/developers/contributing-code
+    e.g. `git commit ... && git cl upload ...`
+    You will be prompted for credential and a description.
+
+4.  At https://chromium-review.googlesource.com/ you'll find your issue listed;
+    click on it, then “Add reviewer”, and enter in the code reviewer. Depending
+    on your settings, you may not see an email, but the reviewer has been
+    notified with google-breakpad-dev@googlegroups.com always CC’d.
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..f57461e
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1289 @@
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.16.2], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.16.2])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_AR([ACT-IF-FAIL])
+# -------------------------
+# Try to determine the archiver interface, and trigger the ar-lib wrapper
+# if it is needed.  If the detection of archiver interface fails, run
+# ACT-IF-FAIL (default is to abort configure with a proper error message).
+AC_DEFUN([AM_PROG_AR],
+[AC_BEFORE([$0], [LT_INIT])dnl
+AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([ar-lib])dnl
+AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
+: ${AR=ar}
+
+AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
+  [AC_LANG_PUSH([C])
+   am_cv_ar_interface=ar
+   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
+     [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([am_ar_try])
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+        AC_TRY_EVAL([am_ar_try])
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
+      fi
+      rm -f conftest.lib libconftest.a
+     ])
+   AC_LANG_POP([C])])
+
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  m4_default([$1],
+             [AC_MSG_ERROR([could not determine $AR interface])])
+  ;;
+esac
+AC_SUBST([AR])dnl
+])
+
+# Figure out how to run the assembler.                      -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_AS
+# ----------
+AC_DEFUN([AM_PROG_AS],
+[# By default we simply use the C compiler to build assembly code.
+AC_REQUIRE([AC_PROG_CC])
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+AC_ARG_VAR([CCAS],      [assembler compiler command (defaults to CC)])
+AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])
+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
+])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  AS_CASE([$CONFIG_FILES],
+          [*\'*], [eval set x "$CONFIG_FILES"],
+          [*], [set x $CONFIG_FILES])
+  shift
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
+  do
+    # Strip MF so we end up with the name of the file.
+    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`AS_DIRNAME(["$am_mf"])`
+    am_filepart=`AS_BASENAME(["$am_mf"])`
+    AM_RUN_LOG([cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles]) || am_rc=$?
+  done
+  if test $am_rc -ne 0; then
+    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE="gmake" (or whatever is
+    necessary).  You can also try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).])
+  fi
+  AS_UNSET([am_dirpart])
+  AS_UNSET([am_filepart])
+  AS_UNSET([am_mf])
+  AS_UNSET([am_rc])
+  rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+	@echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+      ['0:this is the am__doit target'],
+      [AS_CASE([$s],
+          [BSD], [am__include='.include' am__quote='"'],
+          [am__include='include' am__quote=''])])
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+#  -*- Autoconf -*-
+# Obsolete and "removed" macros, that must however still report explicit
+# error messages when used, to smooth transition.
+#
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
+AC_CONFIG_HEADERS($@)])
+
+AC_DEFUN([AM_PROG_CC_STDC],
+[AC_PROG_CC
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should simply use the 'AC][_PROG_CC' macro instead.
+Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
+but upon 'ac_cv_prog_cc_stdc'.])])
+
+AC_DEFUN([AM_C_PROTOTYPES],
+         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
+AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/ax_append_compile_flags.m4])
+m4_include([m4/ax_append_flag.m4])
+m4_include([m4/ax_check_compile_flag.m4])
+m4_include([m4/ax_check_define.m4])
+m4_include([m4/ax_cxx_compile_stdcxx.m4])
+m4_include([m4/ax_pthread.m4])
+m4_include([m4/ax_require_defined.m4])
diff --git a/android/common-functions.sh b/android/common-functions.sh
new file mode 100755
index 0000000..c00e34f
--- /dev/null
+++ b/android/common-functions.sh
@@ -0,0 +1,372 @@
+# Copyright (c) 2012 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Collection of common shell functions for 'run-checks.sh' et 'test-shell.sh'
+
+# All internal variables and functions use an underscore as a prefix
+# (e.g. _VERBOSE, _ALL_CLEANUPS, etc..).
+
+# Sanitize the environment
+export LANG=C
+export LC_ALL=C
+
+if [ "$BASH_VERSION" ]; then
+  set -o posix
+fi
+
+# Utility functions
+
+_ALL_CLEANUPS=
+
+# Register a function to be called when the script exits, even in case of
+# Ctrl-C, logout, etc.
+# $1: function name.
+atexit () {
+  if [ -z "$_ALL_CLEANUPS" ]; then
+    _ALL_CLEANUPS=$1
+    # Ensure a clean exit when the script is:
+    #  - Exiting normally (EXIT)
+    #  - Interrupted by Ctrl-C (INT)
+    #  - Interrupted by log out (HUP)
+    #  - Being asked to quit nicely (TERM)
+    #  - Being asked to quit and dump core (QUIT)
+    trap "_exit_cleanups \$?" EXIT INT HUP QUIT TERM
+  else
+    _ALL_CLEANUPS="$_ALL_CLEANUPS $1"
+  fi
+}
+
+# Called on exit if at least one function was registered with atexit
+# $1: final exit status code
+_exit_cleanups () {
+  local CLEANUP CLEANUPS
+  # Ignore calls to atexit during cleanups
+  CLEANUPS=$_ALL_CLEANUPS
+  _ALL_CLEANUPS=
+  for CLEANUP in $CLEANUPS; do
+    ($CLEANUP)
+  done
+  exit "$@"
+}
+
+
+
+
+# Dump a panic message then exit.
+# $1+: message
+panic () {
+  echo "ERROR: $@" >&2
+  exit 1
+}
+
+# If the previous command failed, dump a panic message then exit.
+# $1+: message.
+fail_panic () {
+  if [ $? != 0 ]; then
+    panic "$@"
+  fi;
+}
+
+_VERBOSE=0
+
+# Increase verbosity for dump/log/run/run2 functions
+increase_verbosity () {
+  _VERBOSE=$(( $_VERBOSE + 1 ))
+}
+
+# Decrease verbosity
+decrease_verbosity () {
+  _VERBOSE=$(( $_VERBOSE - 1 ))
+}
+
+# Returns success iff verbosity level is higher than a specific value
+# $1: verbosity level
+verbosity_is_higher_than () {
+  [ "$_VERBOSE" -gt "$1" ]
+}
+
+# Returns success iff verbosity level is lower than a specific value
+# $1: verbosity level
+verbosity_is_lower_than () {
+  [ "$_VERBOSE" -le "$1" ]
+}
+
+# Dump message to stdout, unless verbosity is < 0, i.e. --quiet was called
+# $1+: message
+dump () {
+  if [ "$_VERBOSE" -ge 0 ]; then
+    printf "%s\n" "$*"
+  fi
+}
+
+# If --verbose was used, dump a message to stdout.
+# $1+: message
+log () {
+  if [ "$_VERBOSE" -ge 1 ]; then
+    printf "%s\n" "$*"
+  fi
+}
+
+_RUN_LOG=
+
+# Set a run log file that can be used to collect the output of commands that
+# are not displayed.
+set_run_log () {
+  _RUN_LOG=$1
+}
+
+# Run a command. Output depends on $_VERBOSE:
+#   $_VERBOSE <= 0:  Run command, store output into the run log
+#   $_VERBOSE >= 1:  Dump command, run it, output goest to stdout
+# Note: Ideally, the command's output would go to the run log for $_VERBOSE >= 1
+#       but the 'tee' tool doesn't preserve the status code of its input pipe
+#       in case of error.
+run () {
+  local LOGILE
+  if [ "$_RUN_LOG" ]; then
+    LOGFILE=$_RUN_LOG
+  else
+    LOGFILE=/dev/null
+  fi
+
+  if [ "$_VERBOSE" -ge 1 ]; then
+    echo "COMMAND: $@"
+    "$@"
+  else
+    "$@" >>$LOGFILE 2>&1
+  fi
+}
+
+# Same as run(), but only dump command output for $_VERBOSE >= 2
+run2 () {
+  local LOGILE
+  if [ "$_RUN_LOG" ]; then
+    LOGFILE=$_RUN_LOG
+  else
+    LOGFILE=/dev/null
+  fi
+
+  if [ "$_VERBOSE" -ge 1 ]; then
+    echo "COMMAND: $@"
+  fi
+  if [ "$_VERBOSE" -ge 2 ]; then
+    "$@"
+  else
+    "$@" >>$LOGFILE 2>&1
+  fi
+}
+
+# Extract number of cores to speed up the builds
+# Out: number of CPU cores
+get_core_count () {
+  case $(uname -s) in
+    Linux)
+      grep -c -e '^processor' /proc/cpuinfo
+      ;;
+    Darwin)
+      sysctl -n hw.ncpu
+      ;;
+    CYGWIN*|*_NT-*)
+      echo $NUMBER_OF_PROCESSORS
+      ;;
+    *)
+      echo 1
+      ;;
+  esac
+}
+
+
+# Check for the Android ADB program.
+#
+# On success, return nothing, but updates internal variables so later calls to
+# adb_shell, adb_push, etc.. will work. You can get the path to the ADB program
+# with adb_get_program if needed.
+#
+# On failure, returns 1, and updates the internal adb error message, which can
+# be retrieved with adb_get_error.
+#
+# $1: optional ADB program path.
+# Return: success or failure.
+_ADB=
+_ADB_STATUS=
+_ADB_ERROR=
+
+adb_check () {
+  # First, try to find the executable in the path, or the SDK install dir.
+  _ADB=$1
+  if [ -z "$_ADB" ]; then
+    _ADB=$(which adb 2>/dev/null)
+    if [ -z "$_ADB" -a "$ANDROID_SDK_ROOT" ]; then
+      _ADB=$ANDROID_SDK_ROOT/platform-tools/adb
+      if [ ! -f "$_ADB" ]; then
+        _ADB=
+      fi
+    fi
+    if [ -z "$_ADB" ]; then
+      _ADB_STATUS=1
+      _ADB_ERROR="The Android 'adb' tool is not in your path."
+      return 1
+    fi
+  fi
+
+  log "Found ADB program: $_ADB"
+
+  # Check that it works correctly
+  local ADB_VERSION
+  ADB_VERSION=$("$_ADB" version 2>/dev/null)
+  case $ADB_VERSION in
+    "Android Debug Bridge "*) # Pass
+      log "Found ADB version: $ADB_VERSION"
+      ;;
+    *) # Fail
+      _ADB_ERROR="Your ADB binary reports a bad version ($ADB_VERSION): $_ADB"
+      _ADB_STATUS=1
+      return 1
+  esac
+
+  _ADB_STATUS=0
+  return 0
+}
+
+
+# Return the path to the Android ADB program, if correctly detected.
+# On failure, return the empty string.
+# Out: ADB program path (or empty on failure)
+# Return: success or failure.
+adb_get_program () {
+  # Return cached value as soon as possible.
+  if [ -z "$_ADB_STATUS" ]; then
+    adb_check $1
+  fi
+  echo "$_ADB"
+  return $_ADB_STATUS
+}
+
+# Return the error corresponding to the last ADB function failure.
+adb_get_error () {
+  echo "$_ADB_ERROR"
+}
+
+# Check that there is one device connected through ADB.
+# In case of failure, use adb_get_error to know why this failed.
+# $1: Optional adb program path
+# Return: success or failure.
+_ADB_DEVICE=
+_ADB_DEVICE_STATUS=
+adb_check_device () {
+  if [ "$_ADB_DEVICE_STATUS" ]; then
+    return $_ADB_DEVICE_STATUS
+  fi
+
+  # Check for ADB.
+  if ! adb_check $1; then
+    _ADB_DEVICE_STATUS=$_ADB_STATUS
+    return 1
+  fi
+
+  local ADB_DEVICES NUM_DEVICES FINGERPRINT
+
+  # Count the number of connected devices.
+  ADB_DEVICES=$("$_ADB" devices 2>/dev/null | awk '$2 == "device" { print $1; }')
+  NUM_DEVICES=$(echo "$ADB_DEVICES" | wc -l)
+  case $NUM_DEVICES in
+    0)
+      _ADB_ERROR="No Android device connected. Please connect one to your machine."
+      _ADB_DEVICE_STATUS=1
+      return 1
+      ;;
+    1) # Pass
+      # Ensure the same device will be called in later adb_shell calls.
+      export ANDROID_SERIAL=$ADB_DEVICES
+      ;;
+    *) # 2 or more devices.
+      if [ "$ANDROID_SERIAL" ]; then
+        ADB_DEVICES=$ANDROID_SERIAL
+        NUM_DEVICES=1
+      else
+        _ADB_ERROR="More than one Android device connected. \
+Please define ANDROID_SERIAL in your environment"
+        _ADB_DEVICE_STATUS=1
+        return 1
+      fi
+      ;;
+  esac
+
+  _ADB_DEVICE_STATUS=0
+  _ADB_DEVICE=$ADB_DEVICES
+
+  FINGERPRINT=$(adb_shell getprop ro.build.fingerprint)
+  log "Using ADB device: $ANDROID_SERIAL ($FINGERPRINT)"
+  return 0
+}
+
+# The 'adb shell' command is pretty hopeless, try to make sense of it by:
+#   1/ Removing trailing \r from line endings.
+#   2/ Ensuring the function returns the command's status code.
+#
+# $1+: Command
+# Out: command output (stdout + stderr combined)
+# Return: command exit status
+adb_shell () {
+  local RET ADB_LOG
+  # Check for ADB device.
+  adb_check_device || return 1
+  ADB_LOG=$(mktemp "${TMPDIR:-/tmp}/adb-XXXXXXXX")
+  "$_ADB" shell "$@" ";" echo \$? > "$ADB_LOG" 2>&1
+  sed -i -e 's![[:cntrl:]]!!g' "$ADB_LOG"  # Remove \r.
+  RET=$(sed -e '$!d' "$ADB_LOG")           # Last line contains status code.
+  sed -e '$d' "$ADB_LOG"                   # Print everything except last line.
+  rm -f "$ADB_LOG"
+  return $RET
+}
+
+# Push a file to a device.
+# $1: source file path
+# $2: device target file path
+# Return: success or failure.
+adb_push () {
+  adb_check_device || return 1
+  run "$_ADB" push "$1" "$2"
+}
+
+# Pull a file from a device
+# $1: device file path
+# $2: target host file path
+# Return: success or failure.
+adb_pull () {
+  adb_check_device || return 1
+  run "$_ADB" pull "$1" "$2"
+}
+
+# Same as adb_push, but will panic if the operations didn't succeed.
+adb_install () {
+  adb_push "$@"
+  fail_panic "Failed to install $1 to the Android device at $2"
+}
+
diff --git a/android/google_breakpad/Android.mk b/android/google_breakpad/Android.mk
new file mode 100644
index 0000000..8618492
--- /dev/null
+++ b/android/google_breakpad/Android.mk
@@ -0,0 +1,104 @@
+# Copyright (c) 2012, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# ndk-build module definition for the Google Breakpad client library
+#
+# To use this file, do the following:
+#
+#   1/ Include this file from your own Android.mk, either directly
+#      or with through the NDK's import-module function.
+#
+#   2/ Use the client static library in your project with:
+#
+#      LOCAL_STATIC_LIBRARIES += breakpad_client
+#
+#   3/ In your source code, include "src/client/linux/exception_handler.h"
+#      and use the Linux instructions to use it.
+#
+# This module works with either the STLport or GNU libstdc++, but you need
+# to select one in your Application.mk
+#
+
+# The top Google Breakpad directory.
+# We assume this Android.mk to be under 'android/google_breakpad'
+
+LOCAL_PATH := $(call my-dir)/../..
+
+# Defube the client library module, as a simple static library that
+# exports the right include path / linker flags to its users.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := breakpad_client
+
+LOCAL_CPP_EXTENSION := .cc
+
+# Breakpad uses inline ARM assembly that requires the library
+# to be built in ARM mode. Otherwise, the build will fail with
+# cryptic assembler messages like:
+#   Compile++ thumb  : google_breakpad_client <= crash_generation_client.cc
+#   /tmp/cc8aMSoD.s: Assembler messages:
+#   /tmp/cc8aMSoD.s:132: Error: invalid immediate: 288 is out of range
+#   /tmp/cc8aMSoD.s:244: Error: invalid immediate: 296 is out of range
+LOCAL_ARM_MODE := arm
+
+# List of client source files, directly taken from Makefile.am
+LOCAL_SRC_FILES := \
+    src/client/linux/crash_generation/crash_generation_client.cc \
+    src/client/linux/dump_writer_common/thread_info.cc \
+    src/client/linux/dump_writer_common/ucontext_reader.cc \
+    src/client/linux/handler/exception_handler.cc \
+    src/client/linux/handler/minidump_descriptor.cc \
+    src/client/linux/log/log.cc \
+    src/client/linux/microdump_writer/microdump_writer.cc \
+    src/client/linux/minidump_writer/linux_dumper.cc \
+    src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
+    src/client/linux/minidump_writer/minidump_writer.cc \
+    src/client/minidump_file_writer.cc \
+    src/common/convert_UTF.cc \
+    src/common/md5.cc \
+    src/common/string_conversion.cc \
+    src/common/linux/breakpad_getcontext.S \
+    src/common/linux/elfutils.cc \
+    src/common/linux/file_id.cc \
+    src/common/linux/guid_creator.cc \
+    src/common/linux/linux_libc_support.cc \
+    src/common/linux/memory_mapped_file.cc \
+    src/common/linux/safe_readlink.cc
+
+LOCAL_C_INCLUDES        := $(LOCAL_PATH)/src/common/android/include \
+                           $(LOCAL_PATH)/src \
+                           $(LSS_PATH)
+
+LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
+LOCAL_EXPORT_LDLIBS     := -llog
+
+include $(BUILD_STATIC_LIBRARY)
+
+# Done.
diff --git a/android/run-checks.sh b/android/run-checks.sh
new file mode 100755
index 0000000..51d2d50
--- /dev/null
+++ b/android/run-checks.sh
@@ -0,0 +1,555 @@
+#!/bin/sh
+# Copyright (c) 2012 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Sanitize the environment
+export LANG=C
+export LC_ALL=C
+
+if [ "$BASH_VERSION" ]; then
+  set -o posix
+fi
+
+PROGDIR=$(dirname "$0")
+PROGDIR=$(cd "$PROGDIR" && pwd)
+PROGNAME=$(basename "$0")
+
+. $PROGDIR/common-functions.sh
+
+DEFAULT_ABI="armeabi"
+VALID_ABIS="armeabi armeabi-v7a x86 mips"
+
+ABI=
+ADB=
+ALL_TESTS=
+ENABLE_M32=
+HELP=
+HELP_ALL=
+NDK_DIR=
+NO_CLEANUP=
+NO_DEVICE=
+NUM_JOBS=$(get_core_count)
+TMPDIR=
+
+for opt do
+  # The following extracts the value if the option is like --name=<value>.
+  optarg=$(expr -- $opt : '^--[^=]*=\(.*\)$')
+  case $opt in
+    --abi=*) ABI=$optarg;;
+    --adb=*) ADB=$optarg;;
+    --all-tests) ALL_TESTS=true;;
+    --enable-m32) ENABLE_M32=true;;
+    --help|-h|-?) HELP=TRUE;;
+    --help-all) HELP_ALL=true;;
+    --jobs=*) NUM_JOBS=$optarg;;
+    --ndk-dir=*) NDK_DIR=$optarg;;
+    --tmp-dir=*) TMPDIR=$optarg;;
+    --no-cleanup) NO_CLEANUP=true;;
+    --no-device) NO_DEVICE=true;;
+    --quiet) decrease_verbosity;;
+    --verbose) increase_verbosity;;
+    -*) panic "Invalid option '$opt', see --help for details.";;
+    *) panic "This script doesn't take any parameters. See --help for details."
+       ;;
+  esac
+done
+
+if [ "$HELP" -o "$HELP_ALL" ]; then
+  echo "\
+  Usage: $PROGNAME [options]
+
+  This script is used to check that your Google Breakpad source tree can
+  be properly built for Android, and that the client library and host tools
+  work properly together.
+"
+  if [ "$HELP_ALL" ]; then
+    echo "\
+  In more details, this script will:
+
+  - Rebuild the host version of Google Breakpad in a temporary
+    directory (with the Auto-tools based build system).
+
+  - Rebuild the Android client library with the Google Breakpad build
+    system (using autotools/configure). This requires that you define
+    ANDROID_NDK_ROOT in your environment to point to a valid Android NDK
+    installation directory, or use the --ndk-dir=<path> option.
+
+  - Rebuild the Android client library and a test crashing program with the
+    Android NDK build system (ndk-build).
+
+  - Require an Android device connected to your machine, and the 'adb'
+    tool in your path. They are used to:
+
+      - Install and  run a test crashing program.
+      - Extract the corresponding minidump from the device.
+      - Dump the symbols from the test program on the host with 'dump_syms'
+      - Generate a stack trace with 'minidump_stackwalk'
+      - Check the stack trace content for valid source file locations.
+
+    You can however skip this requirement and only test the builds by using
+    the --no-device flag.
+
+    By default, all generated files will be created in a temporary directory
+    that is removed when the script completion. If you want to inspect the
+    files, use the --no-cleanup option.
+
+    Finally, use --verbose to increase the verbosity level, this will help
+    you see which exact commands are being issues and their result. Use the
+    flag twice for even more output. Use --quiet to decrease verbosity
+    instead and run the script silently.
+
+    If you have a device connected, the script will probe it to determine
+    its primary CPU ABI, and build the test program for it. You can however
+    use the --abi=<name> option to override this (this can be useful to check
+    the secondary ABI, e.g. using --abi=armeabi to check that such a program
+    works correctly on an ARMv7-A device).
+
+    If you don't have a device connected, the test program will be built (but
+    not run) with the default '$DEFAULT_ABI' ABI. Again, you can use
+    --abi=<name> to override this. Valid ABI names are:
+
+        $VALID_ABIS
+
+    The script will only run the client library unit test on the device
+    by default. You can use --all-tests to also build and run the unit
+    tests for the Breakpad tools and processor, but be warned that this
+    adds several minutes of testing time. --all-tests will also run the
+    host unit tests suite.
+"
+
+  fi  # HELP_ALL
+
+  echo "\
+  Valid options:
+
+      --help|-h|-?     Display this message.
+      --help-all       Display extended help.
+      --enable-m32     Build 32-bit version of host tools.
+      --abi=<name>     Specify target CPU ABI [auto-detected].
+      --jobs=<count>   Run <count> build tasks in parallel [$NUM_JOBS].
+      --ndk-dir=<path> Specify NDK installation directory.
+      --tmp-dir=<path> Specify temporary directory (will be wiped-out).
+      --adb=<path>     Specify adb program path.
+      --no-cleanup     Don't remove temporary directory after completion.
+      --no-device      Do not try to detect devices, nor run crash test.
+      --all-tests      Run all unit tests (i.e. tools and processor ones too).
+      --verbose        Increase verbosity.
+      --quiet          Decrease verbosity."
+
+  exit 0
+fi
+
+TESTAPP_DIR=$PROGDIR/sample_app
+
+# Select NDK install directory.
+if [ -z "$NDK_DIR" ]; then
+  if [ -z "$ANDROID_NDK_ROOT" ]; then
+    panic "Please define ANDROID_NDK_ROOT in your environment, or use \
+--ndk-dir=<path>."
+  fi
+  NDK_DIR="$ANDROID_NDK_ROOT"
+  log "Found NDK directory: $NDK_DIR"
+else
+  log "Using NDK directory: $NDK_DIR"
+fi
+# Small sanity check.
+NDK_BUILD="$NDK_DIR/ndk-build"
+if [ ! -f "$NDK_BUILD" ]; then
+  panic "Your NDK directory is not valid (missing ndk-build): $NDK_DIR"
+fi
+
+# Ensure the temporary directory is deleted on exit, except if the --no-cleanup
+# option is used.
+
+clean_tmpdir () {
+  if [ "$TMPDIR" ]; then
+    if [ -z "$NO_CLEANUP" ]; then
+      log "Cleaning up: $TMPDIR"
+      rm -rf "$TMPDIR"
+    else
+      dump "Temporary directory contents preserved: $TMPDIR"
+    fi
+  fi
+  exit "$@"
+}
+
+atexit clean_tmpdir
+
+# If --tmp-dir=<path> is not used, create a temporary directory.
+# Otherwise, start by cleaning up the user-provided path.
+if [ -z "$TMPDIR" ]; then
+  TMPDIR=$(mktemp -d /tmp/$PROGNAME.XXXXXXXX)
+  fail_panic "Can't create temporary directory!"
+  log "Using temporary directory: $TMPDIR"
+else
+  if [ ! -d "$TMPDIR" ]; then
+    mkdir -p "$TMPDIR"
+    fail_panic "Can't create temporary directory: $TMPDIR"
+  else
+    log "Cleaning up temporary directory: $TMPDIR"
+    rm -rf "$TMPDIR"/*
+    fail_panic "Cannot cleanup temporary directory!"
+  fi
+fi
+
+if [ -z "$NO_DEVICE" ]; then
+  if ! adb_check_device $ADB; then
+    echo "$(adb_get_error)"
+    echo "Use --no-device to build the code without running any tests."
+    exit 1
+  fi
+fi
+
+BUILD_LOG="$TMPDIR/build.log"
+RUN_LOG="$TMPDIR/run.log"
+CRASH_LOG="$TMPDIR/crash.log"
+
+set_run_log "$RUN_LOG"
+
+TMPHOST="$TMPDIR/host-local"
+
+cd "$TMPDIR"
+
+# Build host version of the tools
+dump "Building host binaries."
+CONFIGURE_FLAGS=
+if [ "$ENABLE_M32" ]; then
+  CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-m32"
+fi
+(
+  run mkdir "$TMPDIR/build-host" &&
+  run cd "$TMPDIR/build-host" &&
+  run2 "$PROGDIR/../configure" --prefix="$TMPHOST" $CONFIGURE_FLAGS &&
+  run2 make -j$NUM_JOBS install
+)
+fail_panic "Can't build host binaries!"
+
+if [ "$ALL_TESTS" ]; then
+  dump "Running host unit tests."
+  (
+    run cd "$TMPDIR/build-host" &&
+    run2 make -j$NUM_JOBS check
+  )
+  fail_panic "Host unit tests failed!!"
+fi
+
+TMPBIN=$TMPHOST/bin
+
+# Generate a stand-alone NDK toolchain
+
+# Extract CPU ABI and architecture from device, if any.
+if adb_check_device; then
+  DEVICE_ABI=$(adb_shell getprop ro.product.cpu.abi)
+  DEVICE_ABI2=$(adb_shell getprop ro.product.cpu.abi2)
+  if [ -z "$DEVICE_ABI" ]; then
+    panic "Can't extract ABI from connected device!"
+  fi
+  if [ "$DEVICE_ABI2" ]; then
+    dump "Found device ABIs: $DEVICE_ABI $DEVICE_ABI2"
+  else
+    dump "Found device ABI: $DEVICE_ABI"
+    DEVICE_ABI2=$DEVICE_ABI
+  fi
+
+  # If --abi=<name> is used, check that the device supports it.
+  if [ "$ABI" -a "$DEVICE_ABI" != "$ABI" -a "$DEVICE_ABI2" != "$ABI" ]; then
+    dump  "ERROR: Device ABI(s) do not match --abi command-line value ($ABI)!"
+    panic "Please use --no-device to skip device tests."
+  fi
+
+  if [ -z "$ABI" ]; then
+    ABI=$DEVICE_ABI
+    dump "Using CPU ABI: $ABI (device)"
+  else
+    dump "Using CPU ABI: $ABI (command-line)"
+  fi
+else
+  if [ -z "$ABI" ]; then
+    # No device connected, choose default ABI
+    ABI=$DEFAULT_ABI
+    dump "Using CPU ABI: $ABI (default)"
+  else
+    dump "Using CPU ABI: $ABI (command-line)"
+  fi
+fi
+
+# Check the ABI value
+VALID=
+for VALID_ABI in $VALID_ABIS; do
+  if [ "$ABI" = "$VALID_ABI" ]; then
+    VALID=true
+    break
+  fi
+done
+
+if [ -z "$VALID" ]; then
+  panic "Unknown CPU ABI '$ABI'. Valid values are: $VALID_ABIS"
+fi
+
+# Extract architecture name from ABI
+case $ABI in
+  armeabi*) ARCH=arm;;
+  *) ARCH=$ABI;;
+esac
+
+# Extract GNU configuration name
+case $ARCH in
+  arm)
+    GNU_CONFIG=arm-linux-androideabi
+    ;;
+  x86)
+    GNU_CONFIG=i686-linux-android
+    ;;
+  mips)
+    GNU_CONFIG=mipsel-linux-android
+    ;;
+  *)
+    GNU_CONFIG="$ARCH-linux-android"
+    ;;
+esac
+
+# Generate standalone NDK toolchain installation
+NDK_STANDALONE="$TMPDIR/ndk-$ARCH-toolchain"
+echo "Generating NDK standalone toolchain installation"
+mkdir -p "$NDK_STANDALONE"
+# NOTE: The --platform=android-9 is required to provide <regex.h> for GTest.
+run "$NDK_DIR/build/tools/make-standalone-toolchain.sh" \
+      --arch="$ARCH" \
+      --platform=android-9 \
+      --install-dir="$NDK_STANDALONE"
+fail_panic "Can't generate standalone NDK toolchain installation!"
+
+# Rebuild the client library, processor and tools with the auto-tools based
+# build system. Even though it's not going to be used, this checks that this
+# still works correctly.
+echo "Building full Android binaries with configure/make"
+TMPTARGET="$TMPDIR/target-local"
+(
+  PATH="$NDK_STANDALONE/bin:$PATH"
+  run mkdir "$TMPTARGET" &&
+  run mkdir "$TMPDIR"/build-target &&
+  run cd "$TMPDIR"/build-target &&
+  run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
+                               --host="$GNU_CONFIG" &&
+  run2 make -j$NUM_JOBS install
+)
+fail_panic "Could not rebuild Android binaries!"
+
+# Build and/or run unit test suite.
+# If --no-device is used, only rebuild it, otherwise, run in on the
+# connected device.
+if [ "$NO_DEVICE" ]; then
+  ACTION="Building"
+  # This is a trick to force the Makefile to ignore running the scripts.
+  TESTS_ENVIRONMENT="TESTS_ENVIRONMENT=true"
+else
+  ACTION="Running"
+  TESTS_ENVIRONMENT=
+fi
+
+(
+  PATH="$NDK_STANDALONE/bin:$PATH"
+  run cd "$TMPDIR"/build-target &&
+  # Reconfigure to only run the client unit test suite.
+  # This one should _never_ fail.
+  dump "$ACTION Android client library unit tests."
+  run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
+                               --host="$GNU_CONFIG" \
+                               --disable-tools \
+                               --disable-processor &&
+  run make -j$NUM_JOBS check $TESTS_ENVIRONMENT || exit $?
+
+  if [ "$ALL_TESTS" ]; then
+    dump "$ACTION Tools and processor unit tests."
+    # Reconfigure to run the processor and tools tests.
+    # Most of these fail for now, so do not worry about it.
+    run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
+                                 --host="$GNU_CONFIG" &&
+    run make -j$NUM_JOBS check $TESTS_ENVIRONMENT
+    if [ $? != 0 ]; then
+      dump "Tools and processor unit tests failed as expected. \
+Use --verbose for results."
+    fi                           
+  fi
+)
+fail_panic "Client library unit test suite failed!"
+
+# Copy sources to temporary directory
+PROJECT_DIR=$TMPDIR/project
+dump "Copying test program sources to: $PROJECT_DIR"
+run cp -r "$TESTAPP_DIR" "$PROJECT_DIR" &&
+run rm -rf "$PROJECT_DIR/obj" &&
+run rm -rf "$PROJECT_DIR/libs"
+fail_panic "Could not copy test program sources to: $PROJECT_DIR"
+
+# Build the test program with ndk-build.
+dump "Building test program with ndk-build"
+export NDK_MODULE_PATH="$PROGDIR"
+NDK_BUILD_FLAGS="-j$NUM_JOBS"
+if verbosity_is_higher_than 1; then
+  NDK_BUILD_FLAGS="$NDK_BUILD_FLAGS NDK_LOG=1 V=1"
+fi
+run "$NDK_DIR/ndk-build" -C "$PROJECT_DIR" $NDK_BUILD_FLAGS APP_ABI=$ABI
+fail_panic "Can't build test program!"
+
+# Unless --no-device was used, stop right here if ADB isn't in the path,
+# or there is no connected device.
+if [ "$NO_DEVICE" ]; then
+  dump "Done. Please connect a device to run all tests!"
+  clean_exit 0
+fi
+
+# Push the program to the device.
+TESTAPP=test_google_breakpad
+TESTAPP_FILE="$PROJECT_DIR/libs/$ABI/test_google_breakpad"
+if [ ! -f "$TESTAPP_FILE" ]; then
+  panic "Device requires '$ABI' binaries. None found!"
+fi
+
+# Run the program there
+dump "Installing test program on device"
+DEVICE_TMP=/data/local/tmp
+adb_push "$TESTAPP_FILE" "$DEVICE_TMP/"
+fail_panic "Cannot push test program to device!"
+
+dump "Running test program on device"
+adb_shell cd "$DEVICE_TMP" "&&" ./$TESTAPP > "$CRASH_LOG" 2>/dev/null
+if [ $? = 0 ]; then
+  panic "Test program did *not* crash as expected!"
+fi
+if verbosity_is_higher_than 0; then
+  echo -n "Crash log: "
+  cat "$CRASH_LOG"
+fi
+
+# Extract minidump from device
+MINIDUMP_NAME=$(awk '$1 == "Dump" && $2 == "path:" { print $3; }' "$CRASH_LOG")
+MINIDUMP_NAME=$(basename "$MINIDUMP_NAME")
+if [ -z "$MINIDUMP_NAME" ]; then
+  panic "Test program didn't write minidump properly!"
+fi
+
+dump "Extracting minidump: $MINIDUMP_NAME"
+adb_pull "$DEVICE_TMP/$MINIDUMP_NAME" .
+fail_panic "Can't extract minidump!"
+
+dump "Parsing test program symbols"
+if verbosity_is_higher_than 1; then
+  log "COMMAND: $TMPBIN/dump_syms \
+                $PROJECT_DIR/obj/local/$ABI/$TESTAPP >$TESTAPP.sym"
+fi
+"$TMPBIN/dump_syms" "$PROJECT_DIR/obj/local/$ABI/$TESTAPP" > $TESTAPP.sym
+fail_panic "dump_syms doesn't work!"
+
+VERSION=$(awk '$1 == "MODULE" { print $4; }' $TESTAPP.sym)
+dump "Found module version: $VERSION"
+if [ -z "$VERSION" ]; then
+  echo "ERROR: Can't find proper module version from symbol dump!"
+  head -n5 $TESTAPP.sym
+  clean_exit 1
+fi
+
+run mkdir -p "$TMPDIR/symbols/$TESTAPP/$VERSION"
+run mv $TESTAPP.sym "$TMPDIR/symbols/$TESTAPP/$VERSION/"
+
+dump "Generating stack trace"
+# Don't use 'run' to be able to send stdout and stderr to two different files.
+log "COMMAND: $TMPBIN/minidump_stackwalk $MINIDUMP_NAME symbols"
+"$TMPBIN/minidump_stackwalk" $MINIDUMP_NAME \
+                             "$TMPDIR/symbols" \
+                             > "$BUILD_LOG" 2>>"$RUN_LOG"
+fail_panic "minidump_stackwalk doesn't work!"
+
+dump "Checking stack trace content"
+
+if verbosity_is_higher_than 1; then
+  cat "$BUILD_LOG"
+fi
+
+# The generated stack trace should look like the following:
+#
+# Thread 0 (crashed)
+#  0  test_google_breakpad!crash [test_breakpad.cpp : 17 + 0x4]
+#      r4 = 0x00015530    r5 = 0xbea2cbe4    r6 = 0xffffff38    r7 = 0xbea2cb5c
+#      r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
+#      sp = 0xbea2cb50    lr = 0x00009025    pc = 0x00008f84
+#     Found by: given as instruction pointer in context
+#  1  test_google_breakpad!main [test_breakpad.cpp : 25 + 0x3]
+#      r4 = 0x00015530    r5 = 0xbea2cbe4    r6 = 0xffffff38    r7 = 0xbea2cb5c
+#      r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
+#      sp = 0xbea2cb50    pc = 0x00009025
+#     Found by: call frame info
+#  2  libc.so + 0x164e5
+#      r4 = 0x00008f64    r5 = 0xbea2cc34    r6 = 0x00000001    r7 = 0xbea2cc3c
+#      r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
+#      sp = 0xbea2cc18    pc = 0x400c34e7
+#     Found by: call frame info
+# ...
+#
+# The most important part for us is ensuring that the source location could
+# be extracted, so look at the 'test_breakpad.cpp' references here.
+#
+# First, extract all the lines with test_google_breakpad! in them, and
+# dump the corresponding crash location.
+#
+# Note that if the source location can't be extracted, the second field
+# will only be 'test_google_breakpad' without the exclamation mark.
+#
+LOCATIONS=$(awk '$2 ~ "^test_google_breakpad!.*" { print $3; }' "$BUILD_LOG")
+
+if [ -z "$LOCATIONS" ]; then
+  if verbosity_is_lower_than 1; then
+    cat "$BUILD_LOG"
+  fi
+  panic "No source location found in stack trace!"
+fi
+
+# Now check that they all match "[<source file>"
+BAD_LOCATIONS=
+for LOCATION in $LOCATIONS; do
+  case $LOCATION in
+    # Escape the opening bracket, or some shells like Dash will not
+    # match them properly.
+    \[*.cpp|\[*.cc|\[*.h) # These are valid source locations in our executable
+      ;;
+    *) # Everything else is not!
+      BAD_LOCATIONS="$BAD_LOCATIONS $LOCATION"
+      ;;
+  esac
+done
+
+if [ "$BAD_LOCATIONS" ]; then
+  dump "ERROR: Generated stack trace doesn't contain valid source locations:"
+  cat "$BUILD_LOG"
+  echo "Bad locations are: $BAD_LOCATIONS"
+  exit 1
+fi
+
+echo "All clear! Congratulations."
+
diff --git a/android/sample_app/README b/android/sample_app/README
new file mode 100644
index 0000000..aa19dbb
--- /dev/null
+++ b/android/sample_app/README
@@ -0,0 +1,32 @@
+This is a sample Android executable that can be used to test the
+Google Breakpad client library on Android.
+
+Its purpose is simply to crash and generate a minidump under /data/local/tmp.
+
+Build instructions:
+
+   cd android/sample_app
+   $NDK/ndk-build
+
+  Where $NDK points to a valid Android NDK installation.
+
+Usage instructions:
+
+   After buildind the test program, send it to a device, then run it as
+   the shell UID:
+
+     adb push libs/armeabi/test_google_breakpad /data/local/tmp
+     adb shell /data/local/tmp/test_google_breakpad
+
+   This will simply crash after dumping the name of the generated minidump
+   file.
+
+   See jni/test_breakpad.cpp for details.
+
+   Use 'armeabi-v7a' instead of 'armeabi' above to test the ARMv7-A version
+   of the binary.
+
+Note:
+   If you plan to use the library in a regular Android application, store
+   the minidump files either to your app-specific directory, or to the SDCard
+   (the latter requiring a specific permission).
diff --git a/android/sample_app/jni/Android.mk b/android/sample_app/jni/Android.mk
new file mode 100644
index 0000000..61487b5
--- /dev/null
+++ b/android/sample_app/jni/Android.mk
@@ -0,0 +1,44 @@
+# Copyright (c) 2012, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := test_google_breakpad
+LOCAL_SRC_FILES := test_breakpad.cpp
+LOCAL_STATIC_LIBRARIES += breakpad_client
+include $(BUILD_EXECUTABLE)
+
+# If NDK_MODULE_PATH is defined, import the module, otherwise do a direct
+# includes. This allows us to build in all scenarios easily.
+ifneq ($(NDK_MODULE_PATH),)
+  $(call import-module,google_breakpad)
+else
+  include $(LOCAL_PATH)/../../google_breakpad/Android.mk
+endif
diff --git a/android/sample_app/jni/Application.mk b/android/sample_app/jni/Application.mk
new file mode 100644
index 0000000..9728017
--- /dev/null
+++ b/android/sample_app/jni/Application.mk
@@ -0,0 +1,32 @@
+# Copyright (c) 2012, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+APP_STL := stlport_static
+APP_ABI := all
+APP_CXXFLAGS := -std=c++11 -D__STDC_LIMIT_MACROS
diff --git a/android/sample_app/jni/test_breakpad.cpp b/android/sample_app/jni/test_breakpad.cpp
new file mode 100644
index 0000000..9c4ebbb
--- /dev/null
+++ b/android/sample_app/jni/test_breakpad.cpp
@@ -0,0 +1,57 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdio.h>
+
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/handler/minidump_descriptor.h"
+
+namespace {
+
+bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,
+                  void* context,
+                  bool succeeded) {
+  printf("Dump path: %s\n", descriptor.path());
+  return succeeded;
+}
+
+void Crash() {
+  volatile int* a = reinterpret_cast<volatile int*>(NULL);
+  *a = 1;
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  google_breakpad::MinidumpDescriptor descriptor(".");
+  google_breakpad::ExceptionHandler eh(descriptor, NULL, DumpCallback,
+                                       NULL, true, -1);
+  Crash();
+  return 0;
+}
diff --git a/android/test-driver b/android/test-driver
new file mode 100755
index 0000000..eaaac6b
--- /dev/null
+++ b/android/test-driver
@@ -0,0 +1,131 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+# Slightly modified for Android, see ANDROID comment below.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='[0;31m' # Red.
+  grn='[0;32m' # Green.
+  lgn='[1;32m' # Light green.
+  blu='[1;34m' # Blue.
+  mgn='[0;35m' # Magenta.
+  std='[m'     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+# ANDROID: old line was: "$@" > $log_file 2>&1
+progdir=$(dirname "$0")
+"$progdir/test-shell.sh" "$@" > $log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/android/test-shell.sh b/android/test-shell.sh
new file mode 100755
index 0000000..3677d87
--- /dev/null
+++ b/android/test-shell.sh
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+# Copyright (c) 2012 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# A special shell wrapper that can be used to run the Google Breakpad unit
+# tests on a connected Android device.
+#
+# This is designed to be called from the Makefile during 'make check'
+#
+
+PROGDIR=$(dirname "$0")
+PROGNAME=$(basename "$0")
+. $PROGDIR/common-functions.sh
+
+# Extract test program name first.
+TEST_PROGRAM=$1
+shift
+
+if [ -z "$TEST_PROGRAM" ]; then
+  panic "No test program/script name on the command-line!"
+fi
+
+if [ ! -f "$TEST_PROGRAM" ]; then
+  panic "Can't find test program/script: $TEST_PROGRAM"
+fi
+
+# Create test directory on the device
+TEST_DIR=/data/local/tmp/test-google-breakpad-$$
+adb_shell mkdir "$TEST_DIR" ||
+    panic "Can't create test directory on device: $TEST_DIR"
+
+# Ensure that it is always removed when the script exits.
+clean_test_dir () {
+  # Don't care about success/failure, use '$ADB shell' directly.
+  adb_shell rm -r "$TEST_DIR"
+}
+
+atexit clean_test_dir
+
+TEST_PROGRAM_NAME=$(basename "$TEST_PROGRAM")
+TEST_PROGRAM_DIR=$(dirname "$TEST_PROGRAM")
+
+# Handle special case(s) here.
+DATA_FILES=
+case $TEST_PROGRAM_NAME in
+  linux_client_unittest)
+    # linux_client_unittest will call another executable at runtime, ensure
+    # it is installed too.
+    adb_install "$TEST_PROGRAM_DIR/linux_dumper_unittest_helper" "$TEST_DIR"
+    # linux_client_unittest loads a shared library at runtime, ensure it is
+    # installed too.
+    adb_install "$TEST_PROGRAM_DIR/linux_client_unittest_shlib" "$TEST_DIR"
+    ;;
+  basic_source_line_resolver_unittest)
+    DATA_FILES="module1.out \
+                module2.out \
+                module3_bad.out \
+                module4_bad.out"
+    ;;
+  exploitability_unittest)
+    DATA_FILES="scii_read_av.dmp \
+                ascii_read_av_block_write.dmp \
+                ascii_read_av_clobber_write.dmp \
+                ascii_read_av_conditional.dmp \
+                ascii_read_av_non_null.dmp \
+                ascii_read_av_then_jmp.dmp \
+                ascii_read_av_xchg_write.dmp \
+                ascii_write_av.dmp \
+                ascii_write_av_arg_to_call.dmp \
+                exec_av_on_stack.dmp \
+                null_read_av.dmp \
+                null_write_av.dmp \
+                read_av.dmp \
+                null_read_av.dmp \
+                write_av_non_null.dmp"
+    ;;
+  fast_source_line_resolver_unittest)
+    DATA_FILES="module0.out \
+                module1.out \
+                module2.out \
+                module3_bad.out \
+                module4_bad.out"
+    ;;
+  minidump_processor_unittest|minidump_unittest)
+    DATA_FILES="src/processor/testdata/minidump2.dmp"
+    ;;
+esac
+
+# Install the data files, their path is relative to the environment
+# variable 'srcdir'
+for FILE in $DATA_FILES; do
+  FILEDIR=src/processor/testdata/$(dirname "$FILE")
+  adb_shell mkdir -p "$TEST_DIR/$FILEDIR"
+  adb_install "${srcdir:-.}/$FILE" "$TEST_DIR"/"$FILE"
+done
+
+# Copy test program to device
+adb_install "$TEST_PROGRAM" "$TEST_DIR"
+
+# Run it
+adb_shell "cd $TEST_DIR && LD_LIBRARY_PATH=. ./$TEST_PROGRAM_NAME $@"
+
+# Note: exiting here will call cleanup_exit which will remove the temporary
+#       files from the device.
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..3cf5ba4
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,42 @@
+version: '{build}'
+
+environment:
+  GYP_MSVS_VERSION: 2013
+
+platform:
+  - Win32
+
+configuration:
+  - Debug
+  - Release
+
+# Use the source dir expected by gclient.
+clone_folder: c:\projects\breakpad\src
+
+# Before checkout.
+init:
+  - cd %APPVEYOR_BUILD_FOLDER%\..\..
+  - appveyor DownloadFile https://storage.googleapis.com/chrome-infra/depot_tools.zip
+  - 7z -bd x depot_tools.zip -odepot_tools
+  - depot_tools\update_depot_tools
+  - cd %APPVEYOR_BUILD_FOLDER%
+
+# After checkout.
+install:
+  - PATH C:\projects\depot_tools;%PATH%
+  - cd %APPVEYOR_BUILD_FOLDER%\..
+  - gclient config https://%APPVEYOR_REPO_PROVIDER%.com/%APPVEYOR_REPO_NAME% --unmanaged --name=src
+  - gclient sync
+
+build_script:
+  - cd %APPVEYOR_BUILD_FOLDER%
+  - msbuild src\client\windows\breakpad_client.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /m /verbosity:normal
+  - msbuild src\tools\windows\tools_windows.sln    /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /m /verbosity:normal
+
+test_script:
+  - src\client\windows\%CONFIGURATION%\client_tests.exe
+  - src\tools\windows\%CONFIGURATION%\dump_syms_unittest.exe
+
+artifacts:
+  - path: '**\*.exe'
+  - path: '**\*.lib'
diff --git a/autotools/ar-lib b/autotools/ar-lib
new file mode 100755
index 0000000..463b9ec
--- /dev/null
+++ b/autotools/ar-lib
@@ -0,0 +1,270 @@
+#! /bin/sh
+# Wrapper for Microsoft lib.exe
+
+me=ar-lib
+scriptversion=2012-03-01.08; # UTC
+
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
+# Written by Peter Rosin <peda@lysator.liu.se>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+
+# func_error message
+func_error ()
+{
+  echo "$me: $1" 1>&2
+  exit 1
+}
+
+file_conv=
+
+# func_file_conv build_file
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv in
+	mingw)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_at_file at_file operation archive
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
+# for each of them.
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
+# since the user would need to supply preconverted file names to
+# binutils ar, at least for MinGW.
+func_at_file ()
+{
+  operation=$2
+  archive=$3
+  at_file_contents=`cat "$1"`
+  eval set x "$at_file_contents"
+  shift
+
+  for member
+  do
+    $AR -NOLOGO $operation:"$member" "$archive" || exit $?
+  done
+}
+
+case $1 in
+  '')
+     func_error "no command.  Try '$0 --help' for more information."
+     ;;
+  -h | --h*)
+    cat <<EOF
+Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
+
+Members may be specified in a file named with @FILE.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "$me, version $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test $# -lt 3; then
+  func_error "you must specify a program, an action and an archive"
+fi
+
+AR=$1
+shift
+while :
+do
+  if test $# -lt 2; then
+    func_error "you must specify a program, an action and an archive"
+  fi
+  case $1 in
+    -lib | -LIB \
+    | -ltcg | -LTCG \
+    | -machine* | -MACHINE* \
+    | -subsystem* | -SUBSYSTEM* \
+    | -verbose | -VERBOSE \
+    | -wx* | -WX* )
+      AR="$AR $1"
+      shift
+      ;;
+    *)
+      action=$1
+      shift
+      break
+      ;;
+  esac
+done
+orig_archive=$1
+shift
+func_file_conv "$orig_archive"
+archive=$file
+
+# strip leading dash in $action
+action=${action#-}
+
+delete=
+extract=
+list=
+quick=
+replace=
+index=
+create=
+
+while test -n "$action"
+do
+  case $action in
+    d*) delete=yes  ;;
+    x*) extract=yes ;;
+    t*) list=yes    ;;
+    q*) quick=yes   ;;
+    r*) replace=yes ;;
+    s*) index=yes   ;;
+    S*)             ;; # the index is always updated implicitly
+    c*) create=yes  ;;
+    u*)             ;; # TODO: don't ignore the update modifier
+    v*)             ;; # TODO: don't ignore the verbose modifier
+    *)
+      func_error "unknown action specified"
+      ;;
+  esac
+  action=${action#?}
+done
+
+case $delete$extract$list$quick$replace,$index in
+  yes,* | ,yes)
+    ;;
+  yesyes*)
+    func_error "more than one action specified"
+    ;;
+  *)
+    func_error "no action specified"
+    ;;
+esac
+
+if test -n "$delete"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  for member
+  do
+    case $1 in
+      @*)
+        func_at_file "${1#@}" -REMOVE "$archive"
+        ;;
+      *)
+        func_file_conv "$1"
+        $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
+        ;;
+    esac
+  done
+
+elif test -n "$extract"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  if test $# -gt 0; then
+    for member
+    do
+      case $1 in
+        @*)
+          func_at_file "${1#@}" -EXTRACT "$archive"
+          ;;
+        *)
+          func_file_conv "$1"
+          $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
+          ;;
+      esac
+    done
+  else
+    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
+    do
+      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+    done
+  fi
+
+elif test -n "$quick$replace"; then
+  if test ! -f "$orig_archive"; then
+    if test -z "$create"; then
+      echo "$me: creating $orig_archive"
+    fi
+    orig_archive=
+  else
+    orig_archive=$archive
+  fi
+
+  for member
+  do
+    case $1 in
+    @*)
+      func_file_conv "${1#@}"
+      set x "$@" "@$file"
+      ;;
+    *)
+      func_file_conv "$1"
+      set x "$@" "$file"
+      ;;
+    esac
+    shift
+    shift
+  done
+
+  if test -n "$orig_archive"; then
+    $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
+  else
+    $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
+  fi
+
+elif test -n "$list"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  $AR -NOLOGO -LIST "$archive" || exit $?
+fi
diff --git a/autotools/compile b/autotools/compile
new file mode 100755
index 0000000..a85b723
--- /dev/null
+++ b/autotools/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
+	-L*)
+	  func_cl_dashL "${1#-L}"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/autotools/config.guess b/autotools/config.guess
new file mode 100755
index 0000000..1000e2b
--- /dev/null
+++ b/autotools/config.guess
@@ -0,0 +1,1465 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
+
+timestamp='2017-02-07'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2017 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+	    /sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || \
+	    echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    earmv*)
+		arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+		endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+		machine=${arch}${endian}-unknown
+		;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently (or will in the future) and ABI.
+	case "${UNAME_MACHINE_ARCH}" in
+	    earm*)
+		os=netbsdelf
+		;;
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+		os=netbsd
+		;;
+	esac
+	# Determine ABI tags.
+	case "${UNAME_MACHINE_ARCH}" in
+	    earm*)
+		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+		abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}${abi}"
+	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:LibertyBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:Sortix:*:*)
+	echo ${UNAME_MACHINE}-unknown-sortix
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE=alpha ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE=alpha ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE=alpha ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE=alphaev5 ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE=alphaev56 ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE=alphapca56 ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE=alphapca57 ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE=alphaev6 ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE=alphaev67 ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE=alphaev68 ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE=alphaev68 ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE=alphaev68 ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE=alphaev69 ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE=alphaev7 ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE=alphaev79 ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+	echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH=i386
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH=x86_64
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[4567])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/lslpp ] ; then
+		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
+		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
+		      532)                      # CPU_PA_RISC2_0
+			case "${sc_kernel_bits}" in
+			  32) HP_ARCH=hppa2.0n ;;
+			  64) HP_ARCH=hppa2.0w ;;
+			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
+			esac ;;
+		    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^		//' << EOF >$dummy.c
+
+		#define _HPUX_SOURCE
+		#include <stdlib.h>
+		#include <unistd.h>
+
+		int main ()
+		{
+		#if defined(_SC_KERNEL_BITS)
+		    long bits = sysconf(_SC_KERNEL_BITS);
+		#endif
+		    long cpu  = sysconf (_SC_CPU_VERSION);
+
+		    switch (cpu)
+			{
+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+			case CPU_PA_RISC2_0:
+		#if defined(_SC_KERNEL_BITS)
+			    switch (bits)
+				{
+				case 64: puts ("hppa2.0w"); break;
+				case 32: puts ("hppa2.0n"); break;
+				default: puts ("hppa2.0"); break;
+				} break;
+		#else  /* !defined(_SC_KERNEL_BITS) */
+			    puts ("hppa2.0"); break;
+		#endif
+			default: puts ("hppa1.0"); break;
+			}
+		    exit (0);
+		}
+EOF
+		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = hppa2.0w ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH=hppa2.0w
+	    else
+		HP_ARCH=hppa64
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+	exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+	exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+	exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+	exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    5000:UNIX_System_V:4.*:*)
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case ${UNAME_PROCESSOR} in
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    *:MSYS*:*)
+	echo ${UNAME_MACHINE}-pc-msys
+	exit ;;
+    i*:windows32*:*)
+	# uname -m includes "-pc" on this system.
+	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    aarch64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    aarch64_be:Linux:*:*)
+	UNAME_MACHINE=aarch64_be
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+	esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	else
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+	    else
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+	    fi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    cris:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	exit ;;
+    crisv32:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	exit ;;
+    e2k:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    frv:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    hexagon:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    i*86:Linux:*:*)
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    k1om:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+	;;
+    mips64el:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-${LIBC}
+	exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-${LIBC}
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-${LIBC}
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
+	exit ;;
+    riscv32:Linux:*:* | riscv64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+	exit ;;
+    sh64*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    tile*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+	exit ;;
+    x86_64:Linux:*:*)
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+	exit ;;
+    xtensa*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+	# Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configure will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+	exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+			# says <Richard.M.Bartel@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+		echo mips-nec-sysv${UNAME_RELEASE}
+	else
+		echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+	exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-ACE:SUPER-UX:*:*)
+	echo sxace-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = x86; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSE-*:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSX-?:NONSTOP_KERNEL:*:*)
+	echo nsx-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = 386; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+	echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+    x86_64:VMkernel:*:*)
+	echo ${UNAME_MACHINE}-unknown-esx
+	exit ;;
+    amd64:Isilon\ OneFS:*:*)
+	echo x86_64-unknown-onefs
+	exit ;;
+esac
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/autotools/config.sub b/autotools/config.sub
new file mode 100755
index 0000000..87abeab
--- /dev/null
+++ b/autotools/config.sub
@@ -0,0 +1,1831 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
+
+timestamp='2017-02-07'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2017 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze*)
+		os=
+		basic_machine=$1
+		;;
+	-bluegene*)
+		os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+	-chorusrdb)
+		os=-chorusrdb
+		basic_machine=$1
+		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| aarch64 | aarch64_be \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| ba \
+	| be32 | be64 \
+	| bfin \
+	| c4x | c8051 | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| e2k | epiphany \
+	| fido | fr30 | frv | ft32 \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| hexagon \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| k1om \
+	| le32 | le64 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nds32 | nds32le | nds32be \
+	| nios | nios2 | nios2eb | nios2el \
+	| ns16k | ns32k \
+	| open8 | or1k | or1knd | or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle \
+	| pru \
+	| pyramid \
+	| riscv32 | riscv64 \
+	| rl78 | rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu \
+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+	| visium \
+	| we32k \
+	| x86 | xc16x | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
+		;;
+	leon|leon[3-9])
+		basic_machine=sparc-$basic_machine
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	strongarm | thumb | xscale)
+		basic_machine=arm-unknown
+		;;
+	xgate)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	xscaleeb)
+		basic_machine=armeb-unknown
+		;;
+
+	xscaleel)
+		basic_machine=armel-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| aarch64-* | aarch64_be-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| ba-* \
+	| be32-* | be64-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| e2k-* | elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| hexagon-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| k1om-* \
+	| le32-* | le64-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nds32-* | nds32le-* | nds32be-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| open8-* \
+	| or1k*-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+	| pru-* \
+	| pyramid-* \
+	| riscv32-* | riscv64-* \
+	| rl78-* | romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+	| tahoe-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tile*-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+	| vax-* \
+	| visium-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	asmjs)
+		basic_machine=asmjs-unknown
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16 | cr16-*)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	e500v[12])
+		basic_machine=powerpc-unknown
+		os=$os"spe"
+		;;
+	e500v[12]-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=$os"spe"
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	leon-*|leon[3-9]-*)
+		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	microblaze*)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
+	mingw32)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	msys)
+		basic_machine=i686-pc
+		os=-msys
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	nacl)
+		basic_machine=le32-unknown
+		os=-nacl
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	neo-tandem)
+		basic_machine=neo-tandem
+		;;
+	nse-tandem)
+		basic_machine=nse-tandem
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	nsx-tandem)
+		basic_machine=nsx-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc | ppcbe)	basic_machine=powerpc-unknown
+		;;
+	ppc-* | ppcbe-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	strongarm-* | thumb-*)
+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tile*)
+		basic_machine=$basic_machine-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	xscale-* | xscalee[bl]-*)
+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+	# First match some system type aliases
+	# that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-auroraux)
+		os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* | -cloudabi* | -sortix* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+	-os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-nacl*)
+		;;
+	-ios)
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	score-*)
+		os=-elf
+		;;
+	spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+	c4x-* | tic4x-*)
+		os=-coff
+		;;
+	c8051-*)
+		os=-elf
+		;;
+	hexagon-*)
+		os=-elf
+		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	pru-*)
+		os=-elf
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/autotools/depcomp b/autotools/depcomp
new file mode 100755
index 0000000..fc98710
--- /dev/null
+++ b/autotools/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputting dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'.  On the theory
+## that the space means something, we add a space to the output as
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like '#:fec' to the end of the
+    # dependency line.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  set_dir_from "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using '\' :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  set_dir_from  "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for ':'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  "$@" $dashmflag |
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+        set fnord "$@"
+        shift
+        shift
+        ;;
+    *)
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/autotools/install-sh b/autotools/install-sh
new file mode 100755
index 0000000..0b0fdcb
--- /dev/null
+++ b/autotools/install-sh
@@ -0,0 +1,501 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2013-12-25.23; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab='	'
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
+
+    -o) chowncmd="$chownprog $2"
+        shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
+
+    -T) is_target_a_directory=never;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --) shift
+        break;;
+
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      dstdir=`dirname "$dst"`
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+            then
+              if test -z "$dir_arg" || {
+                   # Check for POSIX incompatibilities with -m.
+                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                   # other-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
+      esac
+
+      oIFS=$IFS
+      IFS=/
+      set -f
+      set fnord $dstdir
+      shift
+      set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       set +f &&
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/autotools/ltmain.sh b/autotools/ltmain.sh
new file mode 100755
index 0000000..a72f2fd
--- /dev/null
+++ b/autotools/ltmain.sh
@@ -0,0 +1,8406 @@
+# Generated from ltmain.m4sh.
+
+# ltmain.sh (GNU libtool) 2.2.6b
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+# -v, --verbose            print informational messages (default)
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:	$host
+#       shell:		$SHELL
+#       compiler:		$LTCC
+#       compiler flags:		$LTCFLAGS
+#       linker:		$LD (gnu? $with_gnu_ld)
+#       $progname:		(GNU libtool) 2.2.6b
+#       automake:		$automake_version
+#       autoconf:		$autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=2.2.6b
+TIMESTAMP=""
+package_revision=1.3017
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# NLS nuisances: We save the old values to restore during execute mode.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+	  export $lt_var
+	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+	fi"
+done
+
+$lt_unset CDPATH
+
+
+
+
+
+: ${CP="cp -f"}
+: ${ECHO="echo"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+  -*) progname=./$progname ;;
+esac
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=$func_dirname_result
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=:
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname${mode+: }$mode: $*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+	IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+	my_arg=`$ECHO "X$1" | $Xsed \
+	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+	    $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+	s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED -n '/^# Usage:/,/# -h/ {
+        s/^# //
+	s/^# *$//
+	s/\$progname/'$progname'/
+	p
+    }' < "$progpath"
+    $ECHO
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+        s/^# //
+	s/^# *$//
+	s*\$progname*'$progname'*
+	s*\$host*'"$host"'*
+	s*\$SHELL*'"$SHELL"'*
+	s*\$LTCC*'"$LTCC"'*
+	s*\$LTCFLAGS*'"$LTCFLAGS"'*
+	s*\$LD*'"$LD"'*
+	s/\$with_gnu_ld/'"$with_gnu_ld"'/
+	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	p
+     }' < "$progpath"
+    exit $?
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    func_error "missing argument for $1"
+    exit_cmd=exit
+}
+
+exit_cmd=:
+
+
+
+
+
+# Check that we have a working $ECHO.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell, and then maybe $ECHO will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+# $mode is unset
+nonopt=
+execute_dlfiles=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+opt_dry_run=false
+opt_duplicate_deps=false
+opt_silent=false
+opt_debug=:
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    $ECHO "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $ECHO "enable shared libraries"
+    else
+      $ECHO "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $ECHO "enable static libraries"
+    else
+      $ECHO "disable static libraries"
+    fi
+
+    exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
+
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	taglist="$taglist $tagname"
+
+	# Evaluate the configuration.  Be careful to quote the path
+	# and the sed script, to avoid splitting on whitespace, but
+	# also don't use non-portable quotes within backquotes within
+	# quotes we have to do it in 2 steps:
+	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	eval "$extractedcf"
+      else
+	func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
+
+# Parse options once, thoroughly.  This comes as soon as possible in
+# the script to make things like `libtool --version' happen quickly.
+{
+
+  # Shorthand for --mode=foo, only valid as the first argument
+  case $1 in
+  clean|clea|cle|cl)
+    shift; set dummy --mode clean ${1+"$@"}; shift
+    ;;
+  compile|compil|compi|comp|com|co|c)
+    shift; set dummy --mode compile ${1+"$@"}; shift
+    ;;
+  execute|execut|execu|exec|exe|ex|e)
+    shift; set dummy --mode execute ${1+"$@"}; shift
+    ;;
+  finish|finis|fini|fin|fi|f)
+    shift; set dummy --mode finish ${1+"$@"}; shift
+    ;;
+  install|instal|insta|inst|ins|in|i)
+    shift; set dummy --mode install ${1+"$@"}; shift
+    ;;
+  link|lin|li|l)
+    shift; set dummy --mode link ${1+"$@"}; shift
+    ;;
+  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+    shift; set dummy --mode uninstall ${1+"$@"}; shift
+    ;;
+  esac
+
+  # Parse non-mode specific arguments:
+  while test "$#" -gt 0; do
+    opt="$1"
+    shift
+
+    case $opt in
+      --config)		func_config					;;
+
+      --debug)		preserve_args="$preserve_args $opt"
+			func_echo "enabling shell trace mode"
+			opt_debug='set -x'
+			$opt_debug
+			;;
+
+      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			execute_dlfiles="$execute_dlfiles $1"
+			shift
+			;;
+
+      --dry-run | -n)	opt_dry_run=:					;;
+      --features)       func_features					;;
+      --finish)		mode="finish"					;;
+
+      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			case $1 in
+			  # Valid mode arguments:
+			  clean)	;;
+			  compile)	;;
+			  execute)	;;
+			  finish)	;;
+			  install)	;;
+			  link)		;;
+			  relink)	;;
+			  uninstall)	;;
+
+			  # Catch anything else as an error
+			  *) func_error "invalid argument for $opt"
+			     exit_cmd=exit
+			     break
+			     ;;
+		        esac
+
+			mode="$1"
+			shift
+			;;
+
+      --preserve-dup-deps)
+			opt_duplicate_deps=:				;;
+
+      --quiet|--silent)	preserve_args="$preserve_args $opt"
+			opt_silent=:
+			;;
+
+      --verbose| -v)	preserve_args="$preserve_args $opt"
+			opt_silent=false
+			;;
+
+      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			preserve_args="$preserve_args $opt $1"
+			func_enable_tag "$1"	# tagname is set here
+			shift
+			;;
+
+      # Separate optargs to long options:
+      -dlopen=*|--mode=*|--tag=*)
+			func_opt_split "$opt"
+			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+			shift
+			;;
+
+      -\?|-h)		func_usage					;;
+      --help)		opt_help=:					;;
+      --version)	func_version					;;
+
+      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
+
+      *)		nonopt="$opt"
+			break
+			;;
+    esac
+  done
+
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      ;;
+  esac
+
+  # Having warned about all mis-specified options, bail out if
+  # anything was wrong.
+  $exit_cmd $EXIT_FAILURE
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+$opt_help || {
+  # Sanity checks first:
+  func_check_version_match
+
+  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+    func_fatal_configuration "not configured to build any kind of library"
+  fi
+
+  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+
+
+  # Darwin sucks
+  eval std_shrext=\"$shrext_cmds\"
+
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    func_error "unrecognized option \`-dlopen'"
+    $ECHO "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$progname --help --mode=$mode' for more information."
+}
+
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case "$lalib_p_line" in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_ltwrapper_scriptname_result=""
+    if func_ltwrapper_executable_p "$1"; then
+	func_dirname_and_basename "$1" "" "."
+	func_stripname '' '.exe' "$func_basename_result"
+	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    fi
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+        func_quote_for_eval "$arg"
+	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_quote_for_eval "$arg"
+	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	    done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with \`--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify \`-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+	    func_quote_for_eval "$arg"
+	    lastarg="$lastarg $func_quote_for_eval_result"
+	  done
+	  IFS="$save_ifs"
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj="$func_basename_result"
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      removelist="$removelist $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    removelist="$removelist $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+test "$mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
+
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
+
+    exit $?
+}
+
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      test -f "$file" \
+	|| func_fatal_help "\`$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "\`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+	;;
+
+      *)
+	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_quote_for_eval "$file"
+      args="$args $func_quote_for_eval_result"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	$ECHO "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
+
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    $ECHO "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $ECHO "   $libdir"
+    done
+    $ECHO
+    $ECHO "If you ever happen to want to link against installed libraries"
+    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
+    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $ECHO "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $ECHO "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $ECHO "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $ECHO "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $ECHO "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $ECHO
+
+    $ECHO "See any operating system documentation about shared libraries for"
+    case $host in
+      solaris2.[6789]|solaris2.1[0-9])
+        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	$ECHO "pages."
+	;;
+      *)
+        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
+        ;;
+    esac
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+}
+
+test "$mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    install_prog="$install_prog$func_quote_for_eval_result"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      install_prog="$install_prog $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir="$func_dirname_result"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "\`$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir="$func_dirname_result"
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking \`$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname="$1"
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme="$stripme"
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=""
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name="$func_basename_result"
+	instname="$dir/$name"i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "\`$lib' has not been installed in \`$libdir'"
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if test "$finalize" = yes; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file="$func_basename_result"
+	        outputname="$tmpdir/$file"
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_silent || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink \`$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file="$outputname"
+	      else
+	        func_warning "cannot relink \`$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms="${my_outputname}S.c"
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist="$output_objdir/${my_outputname}.nm"
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test "$dlself" = yes; then
+	  func_verbose "generating symbol list for \`$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_verbose "extracting global C symbols from \`$progfile'"
+	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols="$output_objdir/$outputname.exp"
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from \`$dlprefile'"
+	  func_basename "$dlprefile"
+	  name="$func_basename_result"
+	  $opt_dry_run || {
+	    eval '$ECHO ": $name " >> "$nlist"'
+	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	  }
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* )
+	    $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+	    lt_dlsym_const= ;;
+	  *osf5*)
+	    echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+	    lt_dlsym_const= ;;
+	  *)
+	    lt_dlsym_const=const ;;
+	  esac
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    if test "X$my_pic_p" != Xno; then
+	      pic_flag_for_symtable=" $pic_flag"
+	    fi
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj="$output_objdir/${my_outputname}S.$objext"
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for \`$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+	$SED -n -e '
+	    1,100{
+		/ I /{
+		    s,.*,import,
+		    p
+		    q
+		}
+	    }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`basename "$darwin_archive"`
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+	func_emit_wrapper_part1_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part1_arg1=$1
+	fi
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$ECHO "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+	func_emit_wrapper_part2_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part2_arg1=$1
+	fi
+
+	$ECHO "\
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2* | *-cegcc*)
+	  $ECHO "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $ECHO "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_arg1=$1
+	fi
+
+	# split this up so that func_emit_cwrapperexe_src
+	# can call each part independently.
+	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
+
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin.  Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+  func_to_host_path_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        case $build in
+          *mingw* ) # actually, msys
+            # awkward: cmd appends spaces to result
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_path_tmp1=`cygpath -w "$1"`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # Unfortunately, winepath does not exit with a non-zero
+            # error code, so we are forced to check the contents of
+            # stdout. On the other hand, if the command is not
+            # found, the shell will set an exit code of 127 and print
+            # *an error message* to stdout. So we must check for both
+            # error code of zero AND non-empty stdout, which explains
+            # the odd construction:
+            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+                $SED -e "$lt_sed_naive_backslashify"`
+            else
+              # Allow warning below.
+              func_to_host_path_result=""
+            fi
+            ;;
+        esac
+        if test -z "$func_to_host_path_result" ; then
+          func_error "Could not determine host path corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback:
+          func_to_host_path_result="$1"
+        fi
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_path
+
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+  func_to_host_pathlist_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        # Remove leading and trailing path separator characters from
+        # ARG. msys behavior is inconsistent here, cygpath turns them
+        # into '.;' and ';.', and winepath ignores them completely.
+        func_to_host_pathlist_tmp2="$1"
+        # Once set for this call, this variable should not be
+        # reassigned. It is used in tha fallback case.
+        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+          $SED -e 's|^:*||' -e 's|:*$||'`
+        case $build in
+          *mingw* ) # Actually, msys.
+            # Awkward: cmd appends spaces to result.
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # unfortunately, winepath doesn't convert pathlists
+            func_to_host_pathlist_result=""
+            func_to_host_pathlist_oldIFS=$IFS
+            IFS=:
+            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+              IFS=$func_to_host_pathlist_oldIFS
+              if test -n "$func_to_host_pathlist_f" ; then
+                func_to_host_path "$func_to_host_pathlist_f"
+                if test -n "$func_to_host_path_result" ; then
+                  if test -z "$func_to_host_pathlist_result" ; then
+                    func_to_host_pathlist_result="$func_to_host_path_result"
+                  else
+                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+                  fi
+                fi
+              fi
+              IFS=:
+            done
+            IFS=$func_to_host_pathlist_oldIFS
+            ;;
+        esac
+        if test -z "$func_to_host_pathlist_result" ; then
+          func_error "Could not determine the host path(s) corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback. This may break if $1 contains DOS-style drive
+          # specifications. The fix is not to complicate the expression
+          # below, but for the user to provide a working wine installation
+          # with winepath so that path translation in the cross-to-mingw
+          # case works properly.
+          lt_replace_pathsep_nix_to_dos="s|:|;|g"
+          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+            $SED -e "$lt_replace_pathsep_nix_to_dos"`
+        fi
+        # Now, add the leading and trailing path separators back
+        case "$1" in
+          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+            ;;
+        esac
+        case "$1" in
+          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+            ;;
+        esac
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_pathlist
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "$SHELL $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+#  define HAVE_SETENV
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+#  endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+    va_list args;
+    va_start (args, fmt);
+    (void) vfprintf (stderr, fmt, args);
+    va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#endif
+
+const char *program_name = NULL;
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
+
+	    func_emit_wrapper_part1 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+	    cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+	    func_emit_wrapper_part2 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+
+	    cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_pathlist "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_pathlist "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test "$fast_install" = yes; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
+
+static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
+  /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
+  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
+  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+  /* very simple arg parsing; don't want to rely on getopt */
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+	{
+EOF
+	    case "$host" in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  printf ("%s", script_text_part1);
+	  printf ("%s", script_text_part2);
+	  return 0;
+	}
+    }
+
+  newargz = XMALLOC (char *, argc + 1);
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal ("Couldn't find %s", argv[0]);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+			  tmp_pathspec));
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+			  actual_cwrapper_path));
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+			  target_name));
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+        {
+          if (argv[i][env_set_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_set_opt_len + 1;
+              lt_opt_process_env_set (p);
+            }
+          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_set (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_set_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+        {
+          if (argv[i][env_prepend_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_prepend_opt_len + 1;
+              lt_opt_process_env_prepend (p);
+            }
+          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_prepend_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+        {
+          if (argv[i][env_append_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_append_opt_len + 1;
+              lt_opt_process_env_append (p);
+            }
+          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_append (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_append_opt);
+          continue;
+        }
+      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal ("Unrecognized option in %s namespace: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  for (i = 0; i < newargc; i++)
+    {
+      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
+
+  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
+			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = q - p;
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal ("getcwd failed");
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+			      tmp_pathspec));
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  char *errstr = strerror (errno);
+	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal ("Could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+	*str = '\0';
+    }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+  const char *p;
+  int len;
+  if (!arg || !*arg)
+    return 1;
+
+  p = strchr (arg, (int)'=');
+
+  if (!p)
+    return 1;
+
+  *value = xstrdup (++p);
+
+  len = strlen (arg) - strlen (*value);
+  *name = XMALLOC (char, len);
+  strncpy (*name, arg, len-1);
+  (*name)[len - 1] = '\0';
+
+  return 0;
+}
+
+void
+lt_opt_process_env_set (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+    }
+
+  lt_setenv (name, value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 0);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_append (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 1);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file \`$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none &&
+		   test "$non_pic_object" = none; then
+		  func_fatal_error "cannot find name of object for \`$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir="$func_dirname_result"
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir="$func_dirname_result"
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "\`$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file \`$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  weak_libs="$weak_libs $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname '-L' '' "$arg"
+	dir=$func_stripname_result
+	if test -z "$dir"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between \`-L' and \`$1'"
+	  else
+	    func_fatal_error "need path for \`-L' option"
+	  fi
+	fi
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "\`-no-install' is ignored for $host"
+	  func_warning "assuming \`-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none &&
+	     test "$non_pic_object" = none; then
+	    func_fatal_error "cannot find name of object for \`$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir="$func_dirname_result"
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir="$func_dirname_result"
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "\`$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  case $lib in
+	  *.la)	func_source "$lib" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) deplibs="$deplibs $deplib" ;;
+	    esac
+	  done
+	done
+	libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    func_warning "\`-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    func_dirname "$lib" "" "."
+		    ladir="$func_dirname_result"
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  *)
+	    func_warning "\`-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    func_stripname '-R' '' "$deplib"
+	    dir=$func_stripname_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=no
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=yes
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=yes
+		;;
+	      esac
+	      if test "$valid_a_lib" != yes; then
+		$ECHO
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
+		$ECHO "*** that it is just a static archive that I should not use here."
+	      else
+		$ECHO
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+	fi
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir="$func_dirname_result"
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for \`$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    func_fatal_error "\`$lib' is not a convenience library"
+	  fi
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    deplibs="$deplib $deplibs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for \`$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of \`$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname="$func_basename_result"
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library \`$lib' was moved."
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir" && test "$linkmode" = prog; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	    # Keep a list of preopened convenience libraries to check
+	    # that they are being used correctly in the link pass.
+	    test -z "$libdir" && \
+		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         newlib_search_path="$newlib_search_path $func_stripname_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { { test "$prefer_static_libs" = no ||
+	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath:" in
+	      *"$absdir:"*) ;;
+	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc*)
+	      # No point in relinking DLLs because paths are not encoded
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test "$installed" = no; then
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=""
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule="$dlpremoduletest"
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+	    $ECHO
+	    if test "$linkmode" = prog; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname="$1"
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    func_basename "$soroot"
+	    soname="$func_basename_result"
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from \`$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for \`$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we can not
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null ; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library" ; then
+			  $ECHO
+			  $ECHO "*** And there doesn't seem to be a static archive available"
+			  $ECHO "*** The link will probably fail, sorry"
+			else
+			  add="$dir/$old_library"
+			fi
+		      elif test -n "$old_library"; then
+			add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes &&
+	         test "$hardcode_direct_absolute" = no; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes &&
+		 test "$hardcode_minus_L" != yes &&
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes &&
+	       test "$hardcode_direct_absolute" = no; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+		add="$inst_prefix_dir$libdir/$linklib"
+	      else
+		add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $ECHO
+	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
+	    $ECHO "*** I have the capability to make that library automatically link in when"
+	    $ECHO "*** you link to this library.  But I can only do this if you have a"
+	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $ECHO "*** But as you try to build a module library, libtool will still create "
+	      $ECHO "*** a static module, that should work as long as the dlopening application"
+	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$ECHO
+		$ECHO "*** However, this would only work if libtool was able to extract symbol"
+		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$ECHO "*** not find such a program.  So, this module is probably useless."
+		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+	        func_dirname "$deplib" "" "."
+		dir="$func_dirname_result"
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of \`$dir'"
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl" ; then
+		      depdepl="$absdir/$objdir/$depdepl"
+		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path="-L$absdir/$objdir"
+		  ;;
+		esac
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "\`$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "\`$deplib' seems to be moved"
+
+		  path="-L$absdir"
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+	if test "$linkmode" = "prog"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "\`-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test "$module" = no && \
+	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+	else
+	  $ECHO
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      test "$dlself" != no && \
+	func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+	func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+      install_libdir="$1"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "\`-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	shift
+	IFS="$save_ifs"
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to \`-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$1"
+	  number_minor="$2"
+	  number_revision="$3"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_minor"
+	    lt_irix_increment=no
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$1"
+	  revision="$2"
+	  age="$3"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT \`$current' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION \`$revision' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE \`$age' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	irix | nonstopux)
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	qnx)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type \`$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    func_warning "undefined symbols not allowed in $host shared libraries"
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+		fi
+		if test -n "$i" ; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $ECHO
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    $ECHO "*** I have the capability to make that library automatically link in when"
+		    $ECHO "*** you link to this library.  But I can only do this if you have a"
+		    $ECHO "*** shared version of the library, which I believe you do not have"
+		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $ECHO
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      $ECHO "*** I have the capability to make that library automatically link in when"
+		      $ECHO "*** you link to this library.  But I can only do this if you have a"
+		      $ECHO "*** shared version of the library, which you do not appear to have"
+		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $ECHO
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $ECHO "*** make it link in!  You will probably need to install it or some"
+		  $ECHO "*** library that it depends on before this library will be fully"
+		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	    done
+	  fi
+	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
+	     $GREP . >/dev/null; then
+	    $ECHO
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $ECHO
+	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $ECHO "*** a static module, that should work as long as the dlopening"
+	    $ECHO "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $ECHO
+	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
+	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $ECHO "*** not find such a program.  So, this module is probably useless."
+	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
+	    $ECHO "*** automatically added whenever a program is linked with this library"
+	    $ECHO "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $ECHO
+	      $ECHO "*** Since this library must not contain undefined symbols,"
+	      $ECHO "*** because either the platform does not support them or"
+	      $ECHO "*** it was explicitly requested with -no-undefined,"
+	      $ECHO "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname="$1"
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols="$output_objdir/$libname.uexp"
+	  delfiles="$delfiles $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols="$export_symbols"
+	      export_symbols=
+	      always_export_symbols=yes
+	    fi
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      func_len " $cmd"
+	      len=$func_len_result
+	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols="$export_symbols"
+	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test "$compiler_needs_object" = yes &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+	    output=${output_objdir}/${output_la}.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    $ECHO 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    $ECHO ')' >> $output
+	    delfiles="$delfiles $output"
+	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+	    output=${output_objdir}/${output_la}.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test "$compiler_needs_object" = yes; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    delfiles="$delfiles $output"
+	    output=$firstobj\"$file_list_spec$output\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-${k}.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test "X$objlist" = X ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test "$k" -eq 1 ; then
+		    # The first file doesn't have a previous command to add.
+		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-${k}.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-${k}.$objext
+		  objlist=$obj
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+	      fi
+	      delfiles="$delfiles $output"
+
+	    else
+	      output=
+	    fi
+
+	    if ${skipped_export-false}; then
+	      func_verbose "generating symbol list for \`$libname.la'"
+	      export_symbols="$output_objdir/$libname.exp"
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    fi
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS="$save_ifs"
+	      $opt_silent || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test "$mode" = relink; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS="$save_ifs"
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          if ${skipped_export-false}; then
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols="$export_symbols"
+	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  fi
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  libobjs="$libobjs $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $opt_silent || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for programs"
+
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+	&& test "$dlopen_self" = unknown \
+	&& test "$dlopen_self_static" = unknown && \
+	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test "$tagname" = CXX ; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      compile_command="$compile_command ${wl}-bind_at_load"
+	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *cegcc)
+        # Disable wrappers for cegcc, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+	# Replace the output file specification.
+	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.${objext}"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	func_warning "this platform does not like uninstalled shared libraries"
+	func_warning "\`$output' will be relinked during installation"
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
+	    cwrapper="$output_path/$output_name.exe"
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host" ; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save $symfileobj"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  if test "$preload" = yes && test -f "$symfileobj"; then
+	    oldobjs="$oldobjs $symfileobj"
+	  fi
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  oldobjs="$oldobjs $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase="$func_basename_result"
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$deplib' is not a valid libtool archive"
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlfiles="$newdlfiles $libdir/$name"
+		;;
+	      *) newdlfiles="$newdlfiles $lib" ;;
+	      esac
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlprefiles="$newdlprefiles $libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+{ test "$mode" = link || test "$mode" = relink; } &&
+    func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) RM="$RM $arg"; rmforce=yes ;;
+      -*) RM="$RM $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" &&
+	     test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" &&
+	     test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+{ test "$mode" = uninstall || test "$mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
+
+test -z "$mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
diff --git a/autotools/missing b/autotools/missing
new file mode 100755
index 0000000..f62bbae
--- /dev/null
+++ b/autotools/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try '$0 --help' for more information"
+  exit 1
+fi
+
+case $1 in
+
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
+
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
+    ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/autotools/root-test-driver b/autotools/root-test-driver
new file mode 100755
index 0000000..66bf7eb
--- /dev/null
+++ b/autotools/root-test-driver
@@ -0,0 +1,3 @@
+#!/bin/sh
+# -E to keep the environment variables needed to run the tests.
+exec sudo -E "$@"
diff --git a/autotools/test-driver b/autotools/test-driver
new file mode 100755
index 0000000..8e575b0
--- /dev/null
+++ b/autotools/test-driver
@@ -0,0 +1,148 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+   *) break;;
+  esac
+  shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='[0;31m' # Red.
+  grn='[0;32m' # Green.
+  lgn='[1;32m' # Light green.
+  blu='[1;34m' # Blue.
+  mgn='[0;35m' # Magenta.
+  std='[m'     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  tweaked_estatus=1
+else
+  tweaked_estatus=$estatus
+fi
+
+case $tweaked_estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/breakpad-client.pc.in b/breakpad-client.pc.in
new file mode 100644
index 0000000..fcd2fa2
--- /dev/null
+++ b/breakpad-client.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@/@PACKAGE_NAME@
+
+Name: google-breakpad-client
+Description: An open-source multi-platform crash reporting system
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lbreakpad_client @PTHREAD_LIBS@
+Cflags: -I${includedir} @PTHREAD_CFLAGS@
diff --git a/breakpad.pc.in b/breakpad.pc.in
new file mode 100644
index 0000000..9aec9f8
--- /dev/null
+++ b/breakpad.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@/@PACKAGE_NAME@
+
+Name: google-breakpad
+Description: An open-source multi-platform crash reporting system
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lbreakpad @PTHREAD_LIBS@
+Cflags: -I${includedir} @PTHREAD_CFLAGS@
diff --git a/codereview.settings b/codereview.settings
new file mode 100644
index 0000000..3f93733
--- /dev/null
+++ b/codereview.settings
@@ -0,0 +1,3 @@
+GERRIT_HOST: True
+CODE_REVIEW_SERVER: chromium-review.googlesource.com
+VIEW_VC: https://chromium.googlesource.com/breakpad/breakpad/+/
diff --git a/configure b/configure
new file mode 100755
index 0000000..59fe0aa
--- /dev/null
+++ b/configure
@@ -0,0 +1,9246 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for breakpad 0.1.
+#
+# Report bugs to <google-breakpad-dev@googlegroups.com>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: google-breakpad-dev@googlegroups.com about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='breakpad'
+PACKAGE_TARNAME='breakpad'
+PACKAGE_VERSION='0.1'
+PACKAGE_STRING='breakpad 0.1'
+PACKAGE_BUGREPORT='google-breakpad-dev@googlegroups.com'
+PACKAGE_URL=''
+
+ac_unique_file="README.md"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+TESTS_AS_ROOT_FALSE
+TESTS_AS_ROOT_TRUE
+RUST_DEMANGLE_LIBS
+RUST_DEMANGLE_CFLAGS
+SELFTEST_FALSE
+SELFTEST_TRUE
+GTEST_LIBS
+GTEST_CFLAGS
+GMOCK_LIBS
+GMOCK_CFLAGS
+SYSTEM_TEST_LIBS_FALSE
+SYSTEM_TEST_LIBS_TRUE
+DISABLE_TOOLS_FALSE
+DISABLE_TOOLS_TRUE
+DISABLE_PROCESSOR_FALSE
+DISABLE_PROCESSOR_TRUE
+X86_HOST_FALSE
+X86_HOST_TRUE
+ANDROID_HOST_FALSE
+ANDROID_HOST_TRUE
+LINUX_HOST_FALSE
+LINUX_HOST_TRUE
+WARN_CXXFLAGS
+HAVE_CXX11
+HAVE_GETCONTEXT_FALSE
+HAVE_GETCONTEXT_TRUE
+PTHREAD_CFLAGS
+PTHREAD_LIBS
+PTHREAD_CC
+ax_pthread_config
+EGREP
+GREP
+RANLIB
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+ac_ct_CXX
+CXXFLAGS
+CXX
+CPP
+am__fastdepCCAS_FALSE
+am__fastdepCCAS_TRUE
+CCASDEPMODE
+CCASFLAGS
+CCAS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+ac_ct_AR
+AR
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_m32
+enable_largefile
+enable_processor
+enable_tools
+enable_system_test_libs
+enable_selftest
+with_rust_demangle
+with_tests_as_root
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCAS
+CCASFLAGS
+CPP
+CXX
+CXXFLAGS
+CCC
+GMOCK_CFLAGS
+GMOCK_LIBS
+GTEST_CFLAGS
+GTEST_LIBS
+RUST_DEMANGLE_CFLAGS
+RUST_DEMANGLE_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir runstatedir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures breakpad 0.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/breakpad]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of breakpad 0.1:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --enable-m32            Compile/build with -m32 (default is no)
+  --disable-largefile     omit support for large files
+  --disable-processor     Don't build processor library (default is no)
+  --disable-tools         Don't build tool binaries (default is no)
+  --enable-system-test-libs
+                          Use gtest/gmock/etc... from the system instead of
+                          the local copies (default is local)
+  --enable-selftest       Run extra tests with "make check" (may conflict with
+                          optimizations) (default is no)
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-rust-demangle=/path/to/rust-demangle-capi
+                          Link against the rust-demangle library to demangle
+                          Rust language symbols during symbol dumping (default
+                          is no) Pass the path to the crate root.
+  --with-tests-as-root    Run the tests as root. Use this on platforms like
+                          travis-ci.org that require root privileges to use
+                          ptrace (default is no)
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CCAS        assembler compiler command (defaults to CC)
+  CCASFLAGS   assembler compiler flags (defaults to CFLAGS)
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  GMOCK_CFLAGS
+              Compiler flags for gmock
+  GMOCK_LIBS  Linker flags for gmock
+  GTEST_CFLAGS
+              Compiler flags for gtest
+  GTEST_LIBS  Linker flags for gtest
+  RUST_DEMANGLE_CFLAGS
+              Compiler flags for rust-demangle
+  RUST_DEMANGLE_LIBS
+              Linker flags for rust-demangle
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <google-breakpad-dev@googlegroups.com>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+breakpad configure 0.1
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## --------------------------------------------------- ##
+## Report this to google-breakpad-dev@googlegroups.com ##
+## --------------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by breakpad $as_me 0.1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_aux_dir=
+for ac_dir in autotools "$srcdir"/autotools; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in autotools \"$srcdir\"/autotools" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+am__api_version='1.16'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='breakpad'
+ VERSION='0.1'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar plaintar pax cpio none'
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
+   ($_am_tar --version) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && break
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+   (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+   ($am__untar <conftest.tar) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  if ${am_cv_prog_tar_ustar+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_prog_tar_ustar=$_am_tool
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+$as_echo "$am_cv_prog_tar_ustar" >&6; }
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+ac_config_headers="$ac_config_headers src/config.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+	@echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+   (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+  case $?:`cat confinc.out 2>/dev/null` in #(
+  '0:this is the am__doit target') :
+    case $s in #(
+  BSD) :
+    am__include='.include' am__quote='"' ;; #(
+  *) :
+    am__include='include' am__quote='' ;;
+esac ;; #(
+  *) :
+     ;;
+esac
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar lib "link -lib"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar lib "link -lib"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5
+$as_echo_n "checking the archiver ($AR) interface... " >&6; }
+if ${am_cv_ar_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+   am_cv_ar_interface=ar
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int some_variable = 0;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5'
+        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
+      fi
+      rm -f conftest.lib libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
+$as_echo "$am_cv_ar_interface" >&6; }
+
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  as_fn_error $? "could not determine $AR interface" "$LINENO" 5
+  ;;
+esac
+
+# By default we simply use the C compiler to build assembly code.
+
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+
+
+
+depcc="$CCAS"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CCAS_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CCAS_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CCAS_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
+CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
+  am__fastdepCCAS_TRUE=
+  am__fastdepCCAS_FALSE='#'
+else
+  am__fastdepCCAS_TRUE='#'
+  am__fastdepCCAS_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX"  am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+# Check whether --enable-m32 was given.
+if test "${enable_m32+set}" = set; then :
+  enableval=$enable_m32; case "${enableval}" in
+                 yes)
+                   CFLAGS="${CFLAGS} -m32"
+                   CXXFLAGS="${CXXFLAGS} -m32"
+                   usem32=true
+                   ;;
+                 no)
+                   usem32=false
+                   ;;
+                 *)
+                   as_fn_error $? "bad value ${enableval} for --enable-m32" "$LINENO" 5
+                   ;;
+               esac
+else
+  usem32=false
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+	 # IRIX 6.2 and later do not support large files by default,
+	 # so use the C compiler's -n32 option if that helps.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+	 if ac_fn_c_try_compile "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext
+	 CC="$CC -n32"
+	 if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+	 break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  fi
+
+
+fi
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_pthread_ok=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
+        if test x"$ax_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+        ;;
+
+	*-darwin*)
+	acx_pthread_flags="-pthread $acx_pthread_flags"
+	;;
+esac
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+        case $flag in
+                none)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+$as_echo_n "checking whether pthreads work without any flags... " >&6; }
+                ;;
+
+                -*)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
+$as_echo_n "checking whether pthreads work with $flag... " >&6; }
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+		pthread-config)
+		# Extract the first word of "pthread-config", so it can be a program name with args.
+set dummy pthread-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ax_pthread_config+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ax_pthread_config"; then
+  ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ax_pthread_config="yes"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no"
+fi
+fi
+ax_pthread_config=$ac_cv_prog_ax_pthread_config
+if test -n "$ax_pthread_config"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
+$as_echo "$ax_pthread_config" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+		if test x"$ax_pthread_config" = xno; then continue; fi
+		PTHREAD_CFLAGS="`pthread-config --cflags`"
+		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+		;;
+
+                *)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
+$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+	             static void routine(void* a) {a=0;}
+	             static void* start_routine(void* a) {return a;}
+int
+main ()
+{
+pthread_t th; pthread_attr_t attr;
+                     pthread_join(th, 0);
+                     pthread_attr_init(&attr);
+                     pthread_cleanup_push(routine, 0);
+                     pthread_create(&th,0,start_routine,0);
+                     pthread_cleanup_pop(0);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_pthread_ok=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
+        if test "x$ax_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+$as_echo_n "checking for joinable pthread attribute... " >&6; }
+	attr_name=unknown
+	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int attr=$attr; return attr;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  attr_name=$attr; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	done
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
+$as_echo "$attr_name" >&6; }
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+
+cat >>confdefs.h <<_ACEOF
+#define PTHREAD_CREATE_JOINABLE $attr_name
+_ACEOF
+
+        fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
+$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
+        flag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5
+$as_echo "${flag}" >&6; }
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with xlc_r or cc_r
+	if test x"$GCC" != xyes; then
+          for ac_prog in xlc_r cc_r
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PTHREAD_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PTHREAD_CC"; then
+  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PTHREAD_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
+if test -n "$PTHREAD_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+$as_echo "$PTHREAD_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$PTHREAD_CC" && break
+done
+test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"
+
+        else
+          PTHREAD_CC=$CC
+	fi
+else
+        PTHREAD_CC="$CC"
+fi
+
+
+
+
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+
+$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
+
+        :
+else
+        ax_pthread_ok=no
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in a.out.h sys/random.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in arc4random getcontext getrandom
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ if test "x$ac_cv_func_getcontext" = xyes; then
+  HAVE_GETCONTEXT_TRUE=
+  HAVE_GETCONTEXT_FALSE='#'
+else
+  HAVE_GETCONTEXT_TRUE='#'
+  HAVE_GETCONTEXT_FALSE=
+fi
+
+
+
+      ax_cxx_compile_cxx11_required=true
+  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+  ac_success=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5
+$as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; }
+if ${ax_cv_cxx_compile_cxx11+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+// If the compiler admits that it is not ready for C++11, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201103L
+
+#error "This is not a C++11 compiler"
+
+#else
+
+namespace cxx11
+{
+
+  namespace test_static_assert
+  {
+
+    template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+  }
+
+  namespace test_final_override
+  {
+
+    struct Base
+    {
+      virtual void f() {}
+    };
+
+    struct Derived : public Base
+    {
+      virtual void f() override {}
+    };
+
+  }
+
+  namespace test_double_right_angle_brackets
+  {
+
+    template < typename T >
+    struct check {};
+
+    typedef check<void> single_type;
+    typedef check<check<void>> double_type;
+    typedef check<check<check<void>>> triple_type;
+    typedef check<check<check<check<void>>>> quadruple_type;
+
+  }
+
+  namespace test_decltype
+  {
+
+    int
+    f()
+    {
+      int a = 1;
+      decltype(a) b = 2;
+      return a + b;
+    }
+
+  }
+
+  namespace test_type_deduction
+  {
+
+    template < typename T1, typename T2 >
+    struct is_same
+    {
+      static const bool value = false;
+    };
+
+    template < typename T >
+    struct is_same<T, T>
+    {
+      static const bool value = true;
+    };
+
+    template < typename T1, typename T2 >
+    auto
+    add(T1 a1, T2 a2) -> decltype(a1 + a2)
+    {
+      return a1 + a2;
+    }
+
+    int
+    test(const int c, volatile int v)
+    {
+      static_assert(is_same<int, decltype(0)>::value == true, "");
+      static_assert(is_same<int, decltype(c)>::value == false, "");
+      static_assert(is_same<int, decltype(v)>::value == false, "");
+      auto ac = c;
+      auto av = v;
+      auto sumi = ac + av + 'x';
+      auto sumf = ac + av + 1.0;
+      static_assert(is_same<int, decltype(ac)>::value == true, "");
+      static_assert(is_same<int, decltype(av)>::value == true, "");
+      static_assert(is_same<int, decltype(sumi)>::value == true, "");
+      static_assert(is_same<int, decltype(sumf)>::value == false, "");
+      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
+      return (sumf > 0.0) ? sumi : add(c, v);
+    }
+
+  }
+
+  namespace test_noexcept
+  {
+
+    int f() { return 0; }
+    int g() noexcept { return 0; }
+
+    static_assert(noexcept(f()) == false, "");
+    static_assert(noexcept(g()) == true, "");
+
+  }
+
+  namespace test_constexpr
+  {
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
+    {
+      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
+    }
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c(const CharT *const s) noexcept
+    {
+      return strlen_c_r(s, 0UL);
+    }
+
+    static_assert(strlen_c("") == 0UL, "");
+    static_assert(strlen_c("1") == 1UL, "");
+    static_assert(strlen_c("example") == 7UL, "");
+    static_assert(strlen_c("another\0example") == 7UL, "");
+
+  }
+
+  namespace test_rvalue_references
+  {
+
+    template < int N >
+    struct answer
+    {
+      static constexpr int value = N;
+    };
+
+    answer<1> f(int&)       { return answer<1>(); }
+    answer<2> f(const int&) { return answer<2>(); }
+    answer<3> f(int&&)      { return answer<3>(); }
+
+    void
+    test()
+    {
+      int i = 0;
+      const int c = 0;
+      static_assert(decltype(f(i))::value == 1, "");
+      static_assert(decltype(f(c))::value == 2, "");
+      static_assert(decltype(f(0))::value == 3, "");
+    }
+
+  }
+
+  namespace test_uniform_initialization
+  {
+
+    struct test
+    {
+      static const int zero {};
+      static const int one {1};
+    };
+
+    static_assert(test::zero == 0, "");
+    static_assert(test::one == 1, "");
+
+  }
+
+  namespace test_lambdas
+  {
+
+    void
+    test1()
+    {
+      auto lambda1 = [](){};
+      auto lambda2 = lambda1;
+      lambda1();
+      lambda2();
+    }
+
+    int
+    test2()
+    {
+      auto a = [](int i, int j){ return i + j; }(1, 2);
+      auto b = []() -> int { return '0'; }();
+      auto c = [=](){ return a + b; }();
+      auto d = [&](){ return c; }();
+      auto e = [a, &b](int x) mutable {
+        const auto identity = [](int y){ return y; };
+        for (auto i = 0; i < a; ++i)
+          a += b--;
+        return x + identity(a + b);
+      }(0);
+      return a + b + c + d + e;
+    }
+
+    int
+    test3()
+    {
+      const auto nullary = [](){ return 0; };
+      const auto unary = [](int x){ return x; };
+      using nullary_t = decltype(nullary);
+      using unary_t = decltype(unary);
+      const auto higher1st = [](nullary_t f){ return f(); };
+      const auto higher2nd = [unary](nullary_t f1){
+        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
+      };
+      return higher1st(nullary) + higher2nd(nullary)(unary);
+    }
+
+  }
+
+  namespace test_variadic_templates
+  {
+
+    template <int...>
+    struct sum;
+
+    template <int N0, int... N1toN>
+    struct sum<N0, N1toN...>
+    {
+      static constexpr auto value = N0 + sum<N1toN...>::value;
+    };
+
+    template <>
+    struct sum<>
+    {
+      static constexpr auto value = 0;
+    };
+
+    static_assert(sum<>::value == 0, "");
+    static_assert(sum<1>::value == 1, "");
+    static_assert(sum<23>::value == 23, "");
+    static_assert(sum<1, 2>::value == 3, "");
+    static_assert(sum<5, 5, 11>::value == 21, "");
+    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
+
+  }
+
+  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
+  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
+  // because of this.
+  namespace test_template_alias_sfinae
+  {
+
+    struct foo {};
+
+    template<typename T>
+    using member = typename T::member_type;
+
+    template<typename T>
+    void func(...) {}
+
+    template<typename T>
+    void func(member<T>*) {}
+
+    void test();
+
+    void test() { func<foo>(0); }
+
+  }
+
+}  // namespace cxx11
+
+#endif  // __cplusplus >= 201103L
+
+
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ax_cv_cxx_compile_cxx11=yes
+else
+  ax_cv_cxx_compile_cxx11=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5
+$as_echo "$ax_cv_cxx_compile_cxx11" >&6; }
+  if test x$ax_cv_cxx_compile_cxx11 = xyes; then
+    ac_success=yes
+  fi
+
+
+
+    if test x$ac_success = xno; then
+                for switch in -std=c++11 -std=c++0x +std=c++11 "-h std=c++11"; do
+      cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
+$as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
+if eval \${$cachevar+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+// If the compiler admits that it is not ready for C++11, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201103L
+
+#error "This is not a C++11 compiler"
+
+#else
+
+namespace cxx11
+{
+
+  namespace test_static_assert
+  {
+
+    template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+  }
+
+  namespace test_final_override
+  {
+
+    struct Base
+    {
+      virtual void f() {}
+    };
+
+    struct Derived : public Base
+    {
+      virtual void f() override {}
+    };
+
+  }
+
+  namespace test_double_right_angle_brackets
+  {
+
+    template < typename T >
+    struct check {};
+
+    typedef check<void> single_type;
+    typedef check<check<void>> double_type;
+    typedef check<check<check<void>>> triple_type;
+    typedef check<check<check<check<void>>>> quadruple_type;
+
+  }
+
+  namespace test_decltype
+  {
+
+    int
+    f()
+    {
+      int a = 1;
+      decltype(a) b = 2;
+      return a + b;
+    }
+
+  }
+
+  namespace test_type_deduction
+  {
+
+    template < typename T1, typename T2 >
+    struct is_same
+    {
+      static const bool value = false;
+    };
+
+    template < typename T >
+    struct is_same<T, T>
+    {
+      static const bool value = true;
+    };
+
+    template < typename T1, typename T2 >
+    auto
+    add(T1 a1, T2 a2) -> decltype(a1 + a2)
+    {
+      return a1 + a2;
+    }
+
+    int
+    test(const int c, volatile int v)
+    {
+      static_assert(is_same<int, decltype(0)>::value == true, "");
+      static_assert(is_same<int, decltype(c)>::value == false, "");
+      static_assert(is_same<int, decltype(v)>::value == false, "");
+      auto ac = c;
+      auto av = v;
+      auto sumi = ac + av + 'x';
+      auto sumf = ac + av + 1.0;
+      static_assert(is_same<int, decltype(ac)>::value == true, "");
+      static_assert(is_same<int, decltype(av)>::value == true, "");
+      static_assert(is_same<int, decltype(sumi)>::value == true, "");
+      static_assert(is_same<int, decltype(sumf)>::value == false, "");
+      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
+      return (sumf > 0.0) ? sumi : add(c, v);
+    }
+
+  }
+
+  namespace test_noexcept
+  {
+
+    int f() { return 0; }
+    int g() noexcept { return 0; }
+
+    static_assert(noexcept(f()) == false, "");
+    static_assert(noexcept(g()) == true, "");
+
+  }
+
+  namespace test_constexpr
+  {
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
+    {
+      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
+    }
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c(const CharT *const s) noexcept
+    {
+      return strlen_c_r(s, 0UL);
+    }
+
+    static_assert(strlen_c("") == 0UL, "");
+    static_assert(strlen_c("1") == 1UL, "");
+    static_assert(strlen_c("example") == 7UL, "");
+    static_assert(strlen_c("another\0example") == 7UL, "");
+
+  }
+
+  namespace test_rvalue_references
+  {
+
+    template < int N >
+    struct answer
+    {
+      static constexpr int value = N;
+    };
+
+    answer<1> f(int&)       { return answer<1>(); }
+    answer<2> f(const int&) { return answer<2>(); }
+    answer<3> f(int&&)      { return answer<3>(); }
+
+    void
+    test()
+    {
+      int i = 0;
+      const int c = 0;
+      static_assert(decltype(f(i))::value == 1, "");
+      static_assert(decltype(f(c))::value == 2, "");
+      static_assert(decltype(f(0))::value == 3, "");
+    }
+
+  }
+
+  namespace test_uniform_initialization
+  {
+
+    struct test
+    {
+      static const int zero {};
+      static const int one {1};
+    };
+
+    static_assert(test::zero == 0, "");
+    static_assert(test::one == 1, "");
+
+  }
+
+  namespace test_lambdas
+  {
+
+    void
+    test1()
+    {
+      auto lambda1 = [](){};
+      auto lambda2 = lambda1;
+      lambda1();
+      lambda2();
+    }
+
+    int
+    test2()
+    {
+      auto a = [](int i, int j){ return i + j; }(1, 2);
+      auto b = []() -> int { return '0'; }();
+      auto c = [=](){ return a + b; }();
+      auto d = [&](){ return c; }();
+      auto e = [a, &b](int x) mutable {
+        const auto identity = [](int y){ return y; };
+        for (auto i = 0; i < a; ++i)
+          a += b--;
+        return x + identity(a + b);
+      }(0);
+      return a + b + c + d + e;
+    }
+
+    int
+    test3()
+    {
+      const auto nullary = [](){ return 0; };
+      const auto unary = [](int x){ return x; };
+      using nullary_t = decltype(nullary);
+      using unary_t = decltype(unary);
+      const auto higher1st = [](nullary_t f){ return f(); };
+      const auto higher2nd = [unary](nullary_t f1){
+        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
+      };
+      return higher1st(nullary) + higher2nd(nullary)(unary);
+    }
+
+  }
+
+  namespace test_variadic_templates
+  {
+
+    template <int...>
+    struct sum;
+
+    template <int N0, int... N1toN>
+    struct sum<N0, N1toN...>
+    {
+      static constexpr auto value = N0 + sum<N1toN...>::value;
+    };
+
+    template <>
+    struct sum<>
+    {
+      static constexpr auto value = 0;
+    };
+
+    static_assert(sum<>::value == 0, "");
+    static_assert(sum<1>::value == 1, "");
+    static_assert(sum<23>::value == 23, "");
+    static_assert(sum<1, 2>::value == 3, "");
+    static_assert(sum<5, 5, 11>::value == 21, "");
+    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
+
+  }
+
+  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
+  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
+  // because of this.
+  namespace test_template_alias_sfinae
+  {
+
+    struct foo {};
+
+    template<typename T>
+    using member = typename T::member_type;
+
+    template<typename T>
+    void func(...) {}
+
+    template<typename T>
+    void func(member<T>*) {}
+
+    void test();
+
+    void test() { func<foo>(0); }
+
+  }
+
+}  // namespace cxx11
+
+#endif  // __cplusplus >= 201103L
+
+
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval $cachevar=yes
+else
+  eval $cachevar=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         CXXFLAGS="$ac_save_CXXFLAGS"
+fi
+eval ac_res=\$$cachevar
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+  if test x$ax_cxx_compile_cxx11_required = xtrue; then
+    if test x$ac_success = xno; then
+      as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5
+    fi
+  else
+    if test x$ac_success = xno; then
+      HAVE_CXX11=0
+      { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
+$as_echo "$as_me: No compiler with C++11 support was found" >&6;}
+    else
+      HAVE_CXX11=1
+
+$as_echo "#define HAVE_CXX11 1" >>confdefs.h
+
+    fi
+
+
+  fi
+
+
+WARN_CXXFLAGS=
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts -Werror=unknown-warning-option" >&5
+$as_echo_n "checking whether C++ compiler accepts -Werror=unknown-warning-option... " >&6; }
+if ${ax_cv_check_cxxflags___Werror_unknown_warning_option+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$CXXFLAGS
+  CXXFLAGS="$CXXFLAGS  -Werror=unknown-warning-option"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ax_cv_check_cxxflags___Werror_unknown_warning_option=yes
+else
+  ax_cv_check_cxxflags___Werror_unknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CXXFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cxxflags___Werror_unknown_warning_option" >&5
+$as_echo "$ax_cv_check_cxxflags___Werror_unknown_warning_option" >&6; }
+if test "x$ax_cv_check_cxxflags___Werror_unknown_warning_option" = xyes; then :
+
+  ax_compiler_flags_test="-Werror=unknown-warning-option"
+
+else
+
+  ax_compiler_flags_test=""
+
+fi
+
+
+
+
+
+for flag in    -Wmissing-braces   -Wnon-virtual-dtor   -Woverloaded-virtual   -Wreorder   -Wsign-compare   -Wunused-local-typedefs   -Wunused-variable   -Wvla ; do
+  as_CACHEVAR=`$as_echo "ax_cv_check_cxxflags_${ax_compiler_flags_test}_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts $flag" >&5
+$as_echo_n "checking whether C++ compiler accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  ax_check_save_flags=$CXXFLAGS
+  CXXFLAGS="$CXXFLAGS ${ax_compiler_flags_test} $flag"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval "$as_CACHEVAR=yes"
+else
+  eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CXXFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${WARN_CXXFLAGS+:} false; then :
+
+  case " $WARN_CXXFLAGS " in #(
+  *" $flag "*) :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CXXFLAGS already contains \$flag"; } >&5
+  (: WARN_CXXFLAGS already contains $flag) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } ;; #(
+  *) :
+
+     as_fn_append WARN_CXXFLAGS " $flag"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CXXFLAGS=\"\$WARN_CXXFLAGS\""; } >&5
+  (: WARN_CXXFLAGS="$WARN_CXXFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+     ;;
+esac
+
+else
+
+  WARN_CXXFLAGS=$flag
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CXXFLAGS=\"\$WARN_CXXFLAGS\""; } >&5
+  (: WARN_CXXFLAGS="$WARN_CXXFLAGS") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+
+fi
+
+else
+  :
+fi
+
+done
+
+as_fn_append WARN_CXXFLAGS " -Werror"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC defined in fcntl.h" >&5
+$as_echo_n "checking for O_CLOEXEC defined in fcntl.h... " >&6; }
+if ${ac_cv_defined_O_CLOEXEC_fcntl_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <fcntl.h>
+int
+main ()
+{
+
+  #ifdef O_CLOEXEC
+  int ok;
+  #else
+  choke me
+  #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_defined_O_CLOEXEC_fcntl_h=yes
+else
+  ac_cv_defined_O_CLOEXEC_fcntl_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_defined_O_CLOEXEC_fcntl_h" >&5
+$as_echo "$ac_cv_defined_O_CLOEXEC_fcntl_h" >&6; }
+if test $ac_cv_defined_O_CLOEXEC_fcntl_h != "no"; then :
+
+else
+
+$as_echo "#define O_CLOEXEC 0" >>confdefs.h
+
+fi
+
+# Only build Linux client libs when compiling for Linux
+case $host in
+  *-*-linux* | *-android* )
+    LINUX_HOST=true
+    ;;
+esac
+ if test x$LINUX_HOST = xtrue; then
+  LINUX_HOST_TRUE=
+  LINUX_HOST_FALSE='#'
+else
+  LINUX_HOST_TRUE='#'
+  LINUX_HOST_FALSE=
+fi
+
+
+# Only use Android support headers when compiling for Android
+case $host in
+  *-android*)
+    ANDROID_HOST=true
+    ;;
+esac
+ if test x$ANDROID_HOST = xtrue; then
+  ANDROID_HOST_TRUE=
+  ANDROID_HOST_FALSE='#'
+else
+  ANDROID_HOST_TRUE='#'
+  ANDROID_HOST_FALSE=
+fi
+
+
+# Some tools (like mac ones) only support x86 currently.
+case $host_cpu in
+  i?86|x86_64)
+    X86_HOST=true
+    ;;
+esac
+ if test x$X86_HOST = xtrue; then
+  X86_HOST_TRUE=
+  X86_HOST_FALSE='#'
+else
+  X86_HOST_TRUE='#'
+  X86_HOST_FALSE=
+fi
+
+
+# Check whether --enable-processor was given.
+if test "${enable_processor+set}" = set; then :
+  enableval=$enable_processor; case "${enableval}" in
+                 yes)
+                   disable_processor=false
+                   ;;
+                 no)
+                   disable_processor=true
+                   ;;
+                 *)
+                   as_fn_error $? "bad value ${enableval} for --disable-processor" "$LINENO" 5
+                   ;;
+               esac
+else
+  disable_processor=false
+fi
+
+ if test x$disable_processor = xtrue; then
+  DISABLE_PROCESSOR_TRUE=
+  DISABLE_PROCESSOR_FALSE='#'
+else
+  DISABLE_PROCESSOR_TRUE='#'
+  DISABLE_PROCESSOR_FALSE=
+fi
+
+
+# Check whether --enable-tools was given.
+if test "${enable_tools+set}" = set; then :
+  enableval=$enable_tools; case "${enableval}" in
+                 yes)
+                   disable_tools=false
+                   ;;
+                 no)
+                   disable_tools=true
+                   ;;
+                 *)
+                   as_fn_error $? "bad value ${enableval} for --disable-tools" "$LINENO" 5
+                   ;;
+               esac
+else
+  disable_tools=false
+fi
+
+ if test x$disable_tools = xtrue; then
+  DISABLE_TOOLS_TRUE=
+  DISABLE_TOOLS_FALSE='#'
+else
+  DISABLE_TOOLS_TRUE='#'
+  DISABLE_TOOLS_FALSE=
+fi
+
+
+if test x$LINUX_HOST = xfalse -a x$disable_processor = xtrue -a x$disable_tools = xtrue; then
+   as_fn_error $? "--disable-processor and --disable-tools were specified, and not building for Linux. Nothing to build!" "$LINENO" 5
+fi
+
+# Check whether --enable-system-test-libs was given.
+if test "${enable_system_test_libs+set}" = set; then :
+  enableval=$enable_system_test_libs; case "${enableval}" in
+                 yes)
+                   system_test_libs=true
+                   ;;
+                 no)
+                   system_test_libs=false
+                   ;;
+                 *)
+                   as_fn_error $? "bad value ${enableval} for --enable-system-test-libs" "$LINENO" 5
+                   ;;
+               esac
+else
+  system_test_libs=false
+fi
+
+ if test x$system_test_libs = xtrue; then
+  SYSTEM_TEST_LIBS_TRUE=
+  SYSTEM_TEST_LIBS_FALSE='#'
+else
+  SYSTEM_TEST_LIBS_TRUE='#'
+  SYSTEM_TEST_LIBS_FALSE=
+fi
+
+
+
+
+
+
+if test x$system_test_libs = xtrue; then
+  : "${GMOCK_CFLAGS:=-pthread}"
+  : "${GMOCK_LIBS:=-lgmock -lgtest -pthread -lpthread}"
+  : "${GTEST_CFLAGS:=-pthread}"
+  : "${GTEST_LIBS:=-lgtest -pthread -lpthread}"
+fi
+
+# Check whether --enable-selftest was given.
+if test "${enable_selftest+set}" = set; then :
+  enableval=$enable_selftest; case "${enableval}" in
+                 yes)
+                   selftest=true
+                   ;;
+                 no)
+                   selftest=false
+                   ;;
+                 *)
+                   as_fn_error $? "bad value ${enableval} for --enable-selftest" "$LINENO" 5
+                   ;;
+               esac
+else
+  selftest=false
+fi
+
+ if test x$selftest = xtrue; then
+  SELFTEST_TRUE=
+  SELFTEST_FALSE='#'
+else
+  SELFTEST_TRUE='#'
+  SELFTEST_FALSE=
+fi
+
+
+
+# Check whether --with-rust-demangle was given.
+if test "${with_rust_demangle+set}" = set; then :
+  withval=$with_rust_demangle; case "${withval}" in
+               yes)
+                 as_fn_error $? "You must pass the path to the rust-demangle-capi crate for --with-rust-demangle" "$LINENO" 5
+                 ;;
+               no)
+                 rust_demangle=false
+                 ;;
+               *)
+                 if ! test -f "${withval}/Cargo.toml"; then
+                   as_fn_error $? "You must pass the path to the rust-demangle-capi crate for --with-rust-demangle" "$LINENO" 5
+                 fi
+                 RUST_DEMANGLE_CFLAGS="-DHAVE_RUST_DEMANGLE -I${withval}/target/include"
+                 RUST_DEMANGLE_LIBS="-L${withval}/target/release -lrust_demangle -lpthread -ldl"
+                 ;;
+             esac
+else
+  rust_demangle=false
+fi
+
+
+
+
+
+# Check whether --with-tests-as-root was given.
+if test "${with_tests_as_root+set}" = set; then :
+  withval=$with_tests_as_root; case "${withval}" in
+               yes)
+                 tests_as_root=true
+                 ;;
+               no)
+                 tests_as_root=false
+                 ;;
+               *)
+                 as_fn_error $? "--with-tests-as-root can only be \"yes\" or \"no\"" "$LINENO" 5
+                 ;;
+             esac
+else
+  tests_as_root=false
+fi
+
+ if test x$tests_as_root = xtrue; then
+  TESTS_AS_ROOT_TRUE=
+  TESTS_AS_ROOT_FALSE='#'
+else
+  TESTS_AS_ROOT_TRUE='#'
+  TESTS_AS_ROOT_FALSE=
+fi
+
+
+ac_config_files="$ac_config_files breakpad.pc breakpad-client.pc Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_GETCONTEXT_TRUE}" && test -z "${HAVE_GETCONTEXT_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GETCONTEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LINUX_HOST_TRUE}" && test -z "${LINUX_HOST_FALSE}"; then
+  as_fn_error $? "conditional \"LINUX_HOST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ANDROID_HOST_TRUE}" && test -z "${ANDROID_HOST_FALSE}"; then
+  as_fn_error $? "conditional \"ANDROID_HOST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${X86_HOST_TRUE}" && test -z "${X86_HOST_FALSE}"; then
+  as_fn_error $? "conditional \"X86_HOST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DISABLE_PROCESSOR_TRUE}" && test -z "${DISABLE_PROCESSOR_FALSE}"; then
+  as_fn_error $? "conditional \"DISABLE_PROCESSOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DISABLE_TOOLS_TRUE}" && test -z "${DISABLE_TOOLS_FALSE}"; then
+  as_fn_error $? "conditional \"DISABLE_TOOLS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${SYSTEM_TEST_LIBS_TRUE}" && test -z "${SYSTEM_TEST_LIBS_FALSE}"; then
+  as_fn_error $? "conditional \"SYSTEM_TEST_LIBS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${SELFTEST_TRUE}" && test -z "${SELFTEST_FALSE}"; then
+  as_fn_error $? "conditional \"SELFTEST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${TESTS_AS_ROOT_TRUE}" && test -z "${TESTS_AS_ROOT_FALSE}"; then
+  as_fn_error $? "conditional \"TESTS_AS_ROOT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by breakpad $as_me 0.1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <google-breakpad-dev@googlegroups.com>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+breakpad config.status 0.1
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "breakpad.pc") CONFIG_FILES="$CONFIG_FILES breakpad.pc" ;;
+    "breakpad-client.pc") CONFIG_FILES="$CONFIG_FILES breakpad-client.pc" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$_am_arg" : 'X\(//\)[^/]' \| \
+	 X"$_am_arg" : 'X\(//\)$' \| \
+	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  case $CONFIG_FILES in #(
+  *\'*) :
+    eval set x "$CONFIG_FILES" ;; #(
+  *) :
+    set x $CONFIG_FILES ;; #(
+  *) :
+     ;;
+esac
+  shift
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
+  do
+    # Strip MF so we end up with the name of the file.
+    am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$am_mf" : 'X\(//\)[^/]' \| \
+	 X"$am_mf" : 'X\(//\)$' \| \
+	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$am_mf" : 'X\(//\)$' \| \
+	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    { echo "$as_me:$LINENO: cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles" >&5
+   (cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } || am_rc=$?
+  done
+  if test $am_rc -ne 0; then
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE=\"gmake\" (or whatever is
+    necessary).  You can also try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+  { am_dirpart=; unset am_dirpart;}
+  { am_filepart=; unset am_filepart;}
+  { am_mf=; unset am_mf;}
+  { am_rc=; unset am_rc;}
+  rm -f conftest-deps.mk
+}
+ ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..0851368
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,271 @@
+# Copyright (c) 2006, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+AC_PREREQ(2.64)
+
+AC_INIT(breakpad, 0.1, google-breakpad-dev@googlegroups.com)
+dnl Sanity check: the argument is just a file that should exist.
+AC_CONFIG_SRCDIR(README.md)
+AC_CONFIG_AUX_DIR(autotools)
+AC_CONFIG_MACRO_DIR([m4])
+AC_CANONICAL_HOST
+
+AM_INIT_AUTOMAKE(subdir-objects tar-ustar 1.11.1)
+AM_CONFIG_HEADER(src/config.h)
+AM_MAINTAINER_MODE
+
+AM_PROG_AR
+AM_PROG_AS
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_RANLIB
+
+dnl This must come before all the feature tests below.
+AC_ARG_ENABLE(m32,
+              AS_HELP_STRING([--enable-m32],
+                             [Compile/build with -m32]
+                             [(default is no)]),
+              [case "${enableval}" in
+                 yes)
+                   CFLAGS="${CFLAGS} -m32"
+                   CXXFLAGS="${CXXFLAGS} -m32"
+                   usem32=true
+                   ;;
+                 no)
+                   usem32=false
+                   ;;
+                 *)
+                   AC_MSG_ERROR(bad value ${enableval} for --enable-m32)
+                   ;;
+               esac],
+              [usem32=false])
+
+AC_HEADER_STDC
+AC_SYS_LARGEFILE
+AX_PTHREAD
+AC_CHECK_HEADERS([a.out.h sys/random.h])
+AC_CHECK_FUNCS([arc4random getcontext getrandom])
+AM_CONDITIONAL([HAVE_GETCONTEXT], [test "x$ac_cv_func_getcontext" = xyes])
+
+AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
+
+dnl Test supported warning flags.
+WARN_CXXFLAGS=
+dnl This warning flag is used by clang.  Its default behavior is to warn when
+dnl given an unknown flag rather than error out.
+AC_LANG_PUSH([C++])
+AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[
+  ax_compiler_flags_test="-Werror=unknown-warning-option"
+],[
+  ax_compiler_flags_test=""
+])
+AX_APPEND_COMPILE_FLAGS(m4_flatten([
+  -Wmissing-braces
+  -Wnon-virtual-dtor
+  -Woverloaded-virtual
+  -Wreorder
+  -Wsign-compare
+  -Wunused-local-typedefs
+  -Wunused-variable
+  -Wvla
+]), [WARN_CXXFLAGS], [${ax_compiler_flags_test}])
+AS_VAR_APPEND([WARN_CXXFLAGS], " -Werror")
+AC_LANG_POP([C++])
+AC_SUBST([WARN_CXXFLAGS])
+
+dnl Test support for O_CLOEXEC
+AX_CHECK_DEFINE([fcntl.h], [O_CLOEXEC], [],
+                [AC_DEFINE([O_CLOEXEC], [0], [Fallback definition for old systems])])
+
+# Only build Linux client libs when compiling for Linux
+case $host in
+  *-*-linux* | *-android* )
+    LINUX_HOST=true
+    ;;
+esac
+AM_CONDITIONAL(LINUX_HOST, test x$LINUX_HOST = xtrue)
+
+# Only use Android support headers when compiling for Android
+case $host in
+  *-android*)
+    ANDROID_HOST=true
+    ;;
+esac
+AM_CONDITIONAL(ANDROID_HOST, test x$ANDROID_HOST = xtrue)
+
+# Some tools (like mac ones) only support x86 currently.
+case $host_cpu in
+  i?86|x86_64)
+    X86_HOST=true
+    ;;
+esac
+AM_CONDITIONAL(X86_HOST, test x$X86_HOST = xtrue)
+
+AC_ARG_ENABLE(processor,
+              AS_HELP_STRING([--disable-processor],
+                             [Don't build processor library]
+                             [(default is no)]),
+              [case "${enableval}" in
+                 yes)
+                   disable_processor=false
+                   ;;
+                 no)
+                   disable_processor=true
+                   ;;
+                 *)
+                   AC_MSG_ERROR(bad value ${enableval} for --disable-processor)
+                   ;;
+               esac],
+              [disable_processor=false])
+AM_CONDITIONAL(DISABLE_PROCESSOR, test x$disable_processor = xtrue)
+
+AC_ARG_ENABLE(tools,
+              AS_HELP_STRING([--disable-tools],
+                             [Don't build tool binaries]
+                             [(default is no)]),
+              [case "${enableval}" in
+                 yes)
+                   disable_tools=false
+                   ;;
+                 no)
+                   disable_tools=true
+                   ;;
+                 *)
+                   AC_MSG_ERROR(bad value ${enableval} for --disable-tools)
+                   ;;
+               esac],
+              [disable_tools=false])
+AM_CONDITIONAL(DISABLE_TOOLS, test x$disable_tools = xtrue)
+
+if test x$LINUX_HOST = xfalse -a x$disable_processor = xtrue -a x$disable_tools = xtrue; then
+   AC_MSG_ERROR([--disable-processor and --disable-tools were specified, and not building for Linux. Nothing to build!])
+fi
+
+AC_ARG_ENABLE(system-test-libs,
+              AS_HELP_STRING([--enable-system-test-libs],
+                             [Use gtest/gmock/etc... from the system instead ]
+                             [of the local copies (default is local)]),
+              [case "${enableval}" in
+                 yes)
+                   system_test_libs=true
+                   ;;
+                 no)
+                   system_test_libs=false
+                   ;;
+                 *)
+                   AC_MSG_ERROR(bad value ${enableval} for --enable-system-test-libs)
+                   ;;
+               esac],
+              [system_test_libs=false])
+AM_CONDITIONAL(SYSTEM_TEST_LIBS, test x$system_test_libs = xtrue)
+
+AC_ARG_VAR([GMOCK_CFLAGS], [Compiler flags for gmock])
+AC_ARG_VAR([GMOCK_LIBS], [Linker flags for gmock])
+AC_ARG_VAR([GTEST_CFLAGS], [Compiler flags for gtest])
+AC_ARG_VAR([GTEST_LIBS], [Linker flags for gtest])
+if test x$system_test_libs = xtrue; then
+  : "${GMOCK_CFLAGS:=-pthread}"
+  : "${GMOCK_LIBS:=-lgmock -lgtest -pthread -lpthread}"
+  : "${GTEST_CFLAGS:=-pthread}"
+  : "${GTEST_LIBS:=-lgtest -pthread -lpthread}"
+fi
+
+AC_ARG_ENABLE(selftest,
+              AS_HELP_STRING([--enable-selftest],
+                             [Run extra tests with "make check" ]
+                             [(may conflict with optimizations) ]
+                             [(default is no)]),
+              [case "${enableval}" in
+                 yes)
+                   selftest=true
+                   ;;
+                 no)
+                   selftest=false
+                   ;;
+                 *)
+                   AC_MSG_ERROR(bad value ${enableval} for --enable-selftest)
+                   ;;
+               esac],
+              [selftest=false])
+AM_CONDITIONAL(SELFTEST, test x$selftest = xtrue)
+
+AC_ARG_WITH(rust-demangle,
+            AS_HELP_STRING([--with-rust-demangle=/path/to/rust-demangle-capi],
+                             [Link against the rust-demangle library]
+                             [to demangle Rust language symbols during]
+                             [symbol dumping (default is no)]
+                             [Pass the path to the crate root.]),
+            [case "${withval}" in
+               yes)
+                 AC_MSG_ERROR(You must pass the path to the rust-demangle-capi crate for --with-rust-demangle)
+                 ;;
+               no)
+                 rust_demangle=false
+                 ;;
+               *)
+                 if ! test -f "${withval}/Cargo.toml"; then
+                   AC_MSG_ERROR(You must pass the path to the rust-demangle-capi crate for --with-rust-demangle)
+                 fi
+                 RUST_DEMANGLE_CFLAGS="-DHAVE_RUST_DEMANGLE -I${withval}/target/include"
+                 RUST_DEMANGLE_LIBS="-L${withval}/target/release -lrust_demangle -lpthread -ldl"
+                 ;;
+             esac],
+            [rust_demangle=false])
+AC_ARG_VAR([RUST_DEMANGLE_CFLAGS], [Compiler flags for rust-demangle])
+AC_ARG_VAR([RUST_DEMANGLE_LIBS], [Linker flags for rust-demangle])
+
+AC_ARG_WITH(tests-as-root,
+            AS_HELP_STRING([--with-tests-as-root],
+                           [Run the tests as root. Use this on platforms]
+                           [like travis-ci.org that require root privileges]
+                           [to use ptrace (default is no)]),
+            [case "${withval}" in
+               yes)
+                 tests_as_root=true
+                 ;;
+               no)
+                 tests_as_root=false
+                 ;;
+               *)
+                 AC_MSG_ERROR(--with-tests-as-root can only be "yes" or "no")
+                 ;;
+             esac],
+            [tests_as_root=false])
+AM_CONDITIONAL(TESTS_AS_ROOT, test x$tests_as_root = xtrue)
+
+AC_CONFIG_FILES(m4_flatten([
+  breakpad.pc
+  breakpad-client.pc
+  Makefile
+]))
+
+AC_OUTPUT
diff --git a/default.xml b/default.xml
new file mode 100644
index 0000000..195bbb5
--- /dev/null
+++ b/default.xml
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- AUTOGENERATED BY deps-to-manifest.py; DO NOT EDIT -->
+<manifest>
+
+  <default revision='refs/heads/master'
+           remote='chromium'
+           sync-c='true'
+           sync-j='8' />
+
+  <remote  name='github'
+           fetch='https://github.com/'
+           review='' />
+
+  <remote  name='chromium'
+           fetch='https://chromium.googlesource.com/'
+           review='https://chromium-review.googlesource.com' />
+
+  <project path='src'
+           name='breakpad/breakpad'
+           revision='refs/heads/master'
+           remote='chromium' />
+
+  <project path='src/src/tools/gyp'
+           name='external/gyp/'
+           revision='324dd166b7c0b39d513026fa52d6280ac6d56770'
+           remote='chromium' />
+
+  <project path='src/src/testing'
+           name='google/googletest.git'
+           revision='5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081'
+           remote='github' />
+
+  <project path='src/src/third_party/lss'
+           name='linux-syscall-support/'
+           revision='fd00dbbd0c06a309c657d89e9430143b179ff6db'
+           remote='chromium' />
+
+  <project path='src/src/third_party/protobuf/protobuf'
+           name='google/protobuf.git'
+           revision='cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac'
+           remote='github' />
+
+</manifest>
diff --git a/docs/OWNERS b/docs/OWNERS
new file mode 100644
index 0000000..72e8ffc
--- /dev/null
+++ b/docs/OWNERS
@@ -0,0 +1 @@
+*
diff --git a/docs/breakpad.png b/docs/breakpad.png
new file mode 100644
index 0000000..20bc756
--- /dev/null
+++ b/docs/breakpad.png
Binary files differ
diff --git a/docs/breakpad.svg b/docs/breakpad.svg
new file mode 100644
index 0000000..e91e72c
--- /dev/null
+++ b/docs/breakpad.svg
@@ -0,0 +1,1023 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47pre4 r22446"
+   sodipodi:docname="breakpad.svg"
+   inkscape:export-filename="/home/jimb/breakpad/breakpad.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path9356"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path9350"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective3613"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3635"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3657"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3679"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3710"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3736"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3761"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3786"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3811"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3833"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3872"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3901"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3925"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3955"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3981"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4007"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4034"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7725"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7771"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7840"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7868"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7922"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective7953"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8002"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8042"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8070"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8097"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8097-9"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8143"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176-4"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176-42"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8176-428"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8243"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective8295"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       id="filter8321"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur8323"
+         in="SourceAlpha"
+         stdDeviation="2.000000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix8325"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.500000 0 " />
+      <feOffset
+         id="feOffset8327"
+         in="bluralpha"
+         dx="4.000000"
+         dy="4.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge8329">
+        <feMergeNode
+           id="feMergeNode8331"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode8333"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+    <inkscape:perspective
+       id="perspective8343"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       id="filter8366"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur8368"
+         in="SourceAlpha"
+         stdDeviation="2.000000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix8370"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.500000 0 " />
+      <feOffset
+         id="feOffset8372"
+         in="bluralpha"
+         dx="4.000000"
+         dy="4.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge8374">
+        <feMergeNode
+           id="feMergeNode8376"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode8378"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+    <inkscape:perspective
+       id="perspective9324"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4142"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-3"
+       style="overflow:visible">
+      <path
+         id="path9356-7"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <inkscape:perspective
+       id="perspective4170"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4217"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-9"
+       style="overflow:visible">
+      <path
+         id="path9356-0"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <inkscape:perspective
+       id="perspective4245"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4471"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4688"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4911"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4943"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4968"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-9-4"
+       style="overflow:visible">
+      <path
+         id="path9356-0-1"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <inkscape:perspective
+       id="perspective5779"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5814"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="359.94288"
+     inkscape:cy="623.17274"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1440"
+     inkscape:window-height="826"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="fill:#000000;stroke:none;stroke-width:3.43128871999999996;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6.86257769000000017, 13.72515536000000047;stroke-dashoffset:0;fill-opacity:0.11255411"
+       id="rect2816"
+       width="457.31259"
+       height="316.05023"
+       x="30.533802"
+       y="32.018353"
+       ry="37.375645"
+       rx="37.375645" />
+    <rect
+       style="fill:#000000;stroke:none;stroke-width:3.30610942999999979;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6.61221891000000017, 13.22443780000000046;stroke-dashoffset:0;fill-opacity:0.11255411"
+       id="rect2816-6"
+       width="322.07736"
+       height="402.03836"
+       x="24.829395"
+       y="400.81494"
+       ry="37.375645"
+       rx="37.375645" />
+    <rect
+       style="fill:#000000;stroke:none;stroke-width:3.30260920999999996;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6.60521854000000008, 13.21043710000000004;stroke-dashoffset:4.62365298000000013;fill-opacity:0.11255411"
+       id="rect2816-6-4"
+       width="318.04028"
+       height="403.05206"
+       x="370.2998"
+       y="401.82336"
+       ry="37.375645"
+       rx="37.375648" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-209.10158"
+       y="168.4787"
+       id="text7705"><tspan
+         sodipodi:role="line"
+         id="tspan7707"
+         x="-209.10158"
+         y="168.4787" /></text>
+    <g
+       id="g7976"
+       transform="translate(6.3149563,0)">
+      <path
+         id="rect3889-4-9-8-7-4"
+         d="m 203.15004,163.41405 0,12.83936 c 0,9.20592 7.41912,16.61718 16.63478,16.61718 l 62.97825,0 c 9.21567,0 16.63479,-7.41126 16.63479,-16.61718 l 0,-12.83936 -96.24782,0 z"
+         style="fill:#69d06e;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-8-5"
+         d="m 219.78482,102.07328 c -9.21566,0 -16.63478,7.41126 -16.63478,16.61717 l 0,44.72356 65.75938,0 0,-61.34073 -49.1246,0 z"
+         style="fill:#ff7373;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-6-0-8"
+         d="m 268.90942,102.07328 0,61.34073 30.46245,0 0,-44.72356 c 0,-9.20591 -7.41912,-16.61717 -16.63479,-16.61717 l -13.82766,0 z"
+         style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <g
+       id="g6291"
+       transform="translate(14.142136,-6.0609152)">
+      <path
+         id="rect3889-4-9-8-7-4-5"
+         d="m 520.27773,164.28681 0,26.28651 c 0,18.84762 15.17789,34.02097 34.03114,34.02097 l 128.83978,0 c 18.85325,0 34.03115,-15.17335 34.03115,-34.02097 l 0,-26.28651 -196.90207,0 z"
+         style="fill:#69d06e;fill-opacity:1;stroke:#000000;stroke-width:2.99999976;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-8-5-2"
+         d="m 554.30887,38.701491 c -18.85325,0 -34.03114,15.173353 -34.03114,34.020972 l 0,91.564267 134.52936,0 0,-125.585239 -100.49822,0 z"
+         style="fill:#ff7373;fill-opacity:1;stroke:#000000;stroke-width:2.99999976;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-6-0-8-5"
+         d="m 654.80709,38.701491 0,125.585239 62.31954,0 0,-91.564267 c 0,-18.847619 -15.1779,-34.020972 -34.03116,-34.020972 l -28.28838,0 z"
+         style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:2.99999976;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <text
+         transform="matrix(0,0.99985053,-1.0001495,0,0,0)"
+         id="text4054-8-1"
+         y="-670.69989"
+         x="46.701351"
+         style="font-size:15.31172657px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+         xml:space="preserve"><tspan
+           y="-670.69989"
+           x="46.701351"
+           id="tspan4056-1-5"
+           sodipodi:role="line">Breakpad Client</tspan></text>
+      <text
+         transform="scale(1.0001495,0.99985053)"
+         id="text7709-2-9"
+         y="195.04388"
+         x="541.16602"
+         style="font-size:15.31172657px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+         xml:space="preserve"><tspan
+           y="195.04388"
+           x="541.16602"
+           id="tspan7711-4-2"
+           sodipodi:role="line">Debugging Information</tspan></text>
+      <text
+         transform="scale(1.0001495,0.99985053)"
+         id="text7713-8-0"
+         y="89.351486"
+         x="529.84656"
+         style="font-size:15.31172657px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+         xml:space="preserve"><tspan
+           y="89.351486"
+           x="529.84656"
+           id="tspan7715-2-9"
+           sodipodi:role="line">Application Code</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="146.88969"
+       y="80.301979"
+       id="text7820"><tspan
+         sodipodi:role="line"
+         id="tspan7822"
+         x="146.88969"
+         y="80.301979">Build System  </tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="57.38908"
+       y="776.59052"
+       id="text7824"><tspan
+         sodipodi:role="line"
+         id="tspan7826"
+         x="57.38908"
+         y="776.59052">User's System</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="392.94681"
+       y="776.59052"
+       id="text7828"><tspan
+         sodipodi:role="line"
+         id="tspan7830"
+         x="392.94681"
+         y="776.59052">Crash Collector</tspan></text>
+    <g
+       id="g7888"
+       transform="translate(2.2177734e-5,8.08123)">
+      <path
+         id="rect3889-4-9-8-7-4-3"
+         d="m 336.74421,269.27363 0,12.83936 c 0,9.20592 7.41912,16.61718 16.63478,16.61718 l 62.97825,0 c 9.21567,0 16.63479,-7.41126 16.63479,-16.61718 l 0,-12.83936 -96.24782,0 z"
+         style="fill:#69d06e;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-8-5-22"
+         d="m 353.37899,207.93286 c -9.21566,0 -16.63478,7.41126 -16.63478,16.61717 l 0,44.72356 65.75938,0 0,-61.34073 -49.1246,0 z"
+         style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" />
+      <path
+         id="rect3889-4-5-6-0-8-4"
+         d="m 402.50359,207.93286 0,61.34073 30.46245,0 0,-44.72356 c 0,-9.20591 -7.41912,-16.61717 -16.63479,-16.61717 l -13.82766,0 z"
+         style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:3" />
+    </g>
+    <g
+       id="g7893">
+      <path
+         id="rect3889-4-9-8-7-4-3-5"
+         d="m 82.185768,277.35486 0,12.83936 c 0,9.20592 7.41912,16.61718 16.63478,16.61718 l 62.978252,0 c 9.21567,0 16.63479,-7.41126 16.63479,-16.61718 l 0,-12.83936 -96.247822,0 z"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3,3;stroke-dashoffset:0" />
+      <path
+         id="rect3889-4-5-8-5-22-0"
+         d="m 98.820548,216.01409 c -9.21566,0 -16.63478,7.41126 -16.63478,16.61717 l 0,44.72356 65.759382,0 0,-61.34073 -49.124602,0 z"
+         style="fill:#ff7373;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-6-0-8-4-1"
+         d="m 147.94515,216.01409 0,61.34073 30.46245,0 0,-44.72356 c 0,-9.20591 -7.41912,-16.61717 -16.63479,-16.61717 l -13.82766,0 z"
+         style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <g
+       transform="translate(-1.0101527,215.16249)"
+       id="g7893-0">
+      <path
+         id="rect3889-4-9-8-7-4-3-5-9"
+         d="m 82.185768,277.35486 0,12.83936 c 0,9.20592 7.41912,16.61718 16.63478,16.61718 l 62.978252,0 c 9.21567,0 16.63479,-7.41126 16.63479,-16.61718 l 0,-12.83936 -96.247822,0 z"
+         style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" />
+      <path
+         id="rect3889-4-5-8-5-22-0-3"
+         d="m 98.820548,216.01409 c -9.21566,0 -16.63478,7.41126 -16.63478,16.61717 l 0,44.72356 65.759382,0 0,-61.34073 -49.124602,0 z"
+         style="fill:#ff7373;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="rect3889-4-5-6-0-8-4-1-5"
+         d="m 147.94515,216.01409 0,61.34073 30.46245,0 0,-44.72356 c 0,-9.20591 -7.41912,-16.61717 -16.63479,-16.61717 l -13.82766,0 z"
+         style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <path
+       style="fill:#69d06e;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 401.48829,493.94592 0,12.83936 c 0,9.20592 7.41912,16.61718 16.63478,16.61718 l 62.97825,0 c 9.21567,0 16.63479,-7.41126 16.63479,-16.61718 l 0,-12.83936 -96.24782,0 z"
+       id="rect3889-4-9-8-7-4-3-6" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 418.12307,432.60515 c -9.21566,0 -16.63478,7.41126 -16.63478,16.61717 l 0,44.72356 65.75938,0 0,-61.34073 -49.1246,0 z"
+       id="rect3889-4-5-8-5-22-09" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:3"
+       d="m 467.24767,432.60515 0,61.34073 30.46245,0 0,-44.72356 c 0,-9.20591 -7.41912,-16.61717 -16.63479,-16.61717 l -13.82766,0 z"
+       id="rect3889-4-5-6-0-8-4-9" />
+    <g
+       transform="matrix(0.66061386,0,0,0.66061386,-286.29084,438.82849)"
+       id="g8084-9">
+      <path
+         transform="matrix(1.4728437,0,0,1.328464,449.83354,-501.49781)"
+         d="m 155.71429,578.07645 -17.11889,20.26398 20.46679,18.49833 -26.51647,-0.74971 -1.70174,27.5351 -15.94661,-21.19884 -22.588825,15.83737 6.631376,-25.68481 -26.466061,-7.78622 24.215795,-10.8296 -10.413811,-25.54663 23.565226,12.18053 13.48025,-24.06991 5.16956,26.01847 27.22341,-4.46806 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.12029562"
+         sodipodi:arg1="-0.53495504"
+         sodipodi:r2="21.608704"
+         sodipodi:r1="44.8353"
+         sodipodi:cy="600.93359"
+         sodipodi:cx="117.14286"
+         sodipodi:sides="7"
+         id="path7983-2-1"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:3.71295619;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034"
+         sodipodi:type="star" />
+      <text
+         transform="scale(1.0001495,0.99985053)"
+         id="text7709-2-9-4-8-5"
+         y="303.53152"
+         x="586.65173"
+         style="font-size:15.31172657px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+         xml:space="preserve"><tspan
+           y="303.53152"
+           x="586.65173"
+           id="tspan7711-4-2-5-2-8"
+           sodipodi:role="line">Minidump</tspan></text>
+    </g>
+    <g
+       id="g8312">
+      <path
+         transform="matrix(0.97298096,0,0,0.87760173,331.1881,107.53209)"
+         d="m 155.71429,578.07645 -17.11889,20.26398 20.46679,18.49833 -26.51647,-0.74971 -1.70174,27.5351 -15.94661,-21.19884 -22.588825,15.83737 6.631376,-25.68481 -26.466061,-7.78622 24.215795,-10.8296 -10.413811,-25.54663 23.565226,12.18053 13.48025,-24.06991 5.16956,26.01847 27.22341,-4.46806 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.12029562"
+         sodipodi:arg1="-0.53495504"
+         sodipodi:r2="21.608704"
+         sodipodi:r1="44.8353"
+         sodipodi:cy="600.93359"
+         sodipodi:cx="117.14286"
+         sodipodi:sides="7"
+         id="path7983-2-1-2"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:3.71295619;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034"
+         sodipodi:type="star" />
+      <text
+         transform="scale(1.0001495,0.99985053)"
+         id="text7709-2-9-4-8-5-3"
+         y="639.41125"
+         x="421.56702"
+         style="font-size:10.11513901px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+         xml:space="preserve"><tspan
+           y="639.41125"
+           x="421.56702"
+           id="tspan7711-4-2-5-2-8-6"
+           sodipodi:role="line">Minidump</tspan></text>
+    </g>
+    <g
+       id="g6064"
+       transform="translate(-4.3412377e-5,0)">
+      <rect
+         y="638.66846"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-95"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="648.62573"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-4-2"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="658.58307"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-0-0"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="668.54041"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-7-8"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="678.49774"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-9-3"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="688.45502"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-2-5"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+      <rect
+         y="698.41235"
+         x="589.55682"
+         height="5.6898999"
+         width="74.78157"
+         id="rect8166-1-5"
+         style="fill:#ffa30c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:4.8034" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:14;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="626.64435"
+       y="721.01373"
+       id="text7709-2-9-4-8-5-3-6"
+       transform="scale(1.0001495,0.99985053)"><tspan
+         sodipodi:role="line"
+         id="tspan7711-4-2-5-2-8-6-4"
+         x="626.64435"
+         y="721.01373">Human-readable</tspan><tspan
+         sodipodi:role="line"
+         x="626.64435"
+         y="733.65765"
+         id="tspan8317">Stack Trace</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 197.98989,145.24521 c -49.70055,0 -69.70052,3.18552 -69.70052,62.62945"
+       id="path3754"
+       sodipodi:nodetypes="cs" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="81.822357"
+       y="138.17415"
+       id="text4128"><tspan
+         sodipodi:role="line"
+         id="tspan4130"
+         x="81.822357"
+         y="138.17415">strip debug</tspan><tspan
+         sodipodi:role="line"
+         x="81.822357"
+         y="160.67415"
+         id="tspan4132">info</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       d="m 310.38714,155.10181 c 39.65053,0 78.79189,18.27988 78.79189,53.53808"
+       id="path3754-1"
+       sodipodi:nodetypes="cs" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="412.43362"
+       y="136.31461"
+       id="text4128-8"><tspan
+         sodipodi:role="line"
+         x="412.43362"
+         y="136.31461"
+         id="tspan4132-5">Breakpad symbol</tspan><tspan
+         sodipodi:role="line"
+         x="412.43362"
+         y="158.81461"
+         id="tspan4192">dumper</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       d="m 81.046974,305.10945 c -19.395976,29.29442 -25.25381,88.03833 -1.010153,126.26906"
+       id="path3754-12"
+       sodipodi:nodetypes="cs" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="69.991928"
+       y="377.74106"
+       id="text4128-2"><tspan
+         sodipodi:role="line"
+         x="69.991928"
+         y="377.74106"
+         id="tspan4132-6">distribute program to users</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend-9)"
+       d="m 429.31483,307.87976 c 35.35534,36.36549 29.29442,105.05587 29.29442,119.198"
+       id="path4267" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="508.10672"
+       y="377.58029"
+       id="text4459"><tspan
+         sodipodi:role="line"
+         id="tspan4461"
+         x="508.10672"
+         y="377.58029" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="464.03134"
+       y="379.15485"
+       id="text4128-2-2"><tspan
+         sodipodi:role="line"
+         x="464.03134"
+         y="379.15485"
+         id="tspan4132-6-0">copy symbol file</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend-9)"
+       d="m 86.873118,525.06256 c -30.304576,41.41625 -8.08122,61.6193 2.020305,73.74113"
+       id="path4488" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="82.19368"
+       y="553.91125"
+       id="text4128-2-5"><tspan
+         sodipodi:role="line"
+         x="82.19368"
+         y="553.91125"
+         id="tspan4705">Crash!  Breakpad client</tspan><tspan
+         sodipodi:role="line"
+         x="82.19368"
+         y="576.41125"
+         id="tspan4709">writes minidump...</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend-9)"
+       d="m 175.76654,651.33163 c 73.74114,32.32488 199.00005,11.11167 226.27417,4.04061"
+       id="path4711"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="195.66714"
+       y="632.6698"
+       id="text4128-2-5-0"><tspan
+         sodipodi:role="line"
+         x="195.66714"
+         y="632.6698"
+         id="tspan4709-9">...and submits it</tspan><tspan
+         sodipodi:role="line"
+         x="195.66714"
+         y="655.1698"
+         id="tspan4933">to crash collector</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Electron;-inkscape-font-specification:Electron"
+       x="566.60748"
+       y="534.8764"
+       id="text4128-2-2-1"><tspan
+         sodipodi:role="line"
+         x="566.60748"
+         y="534.8764"
+         id="tspan6038">Breakpad</tspan><tspan
+         sodipodi:role="line"
+         x="566.60748"
+         y="557.3764"
+         id="tspan6042">minidump</tspan><tspan
+         sodipodi:role="line"
+         x="566.60748"
+         y="579.8764"
+         id="tspan6044">processor</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:none"
+       d="m 478.8123,528.09302 c 0,46.46701 10.10153,64.64976 33.33504,64.64976"
+       id="path5378" />
+    <path
+       style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 359.69771,149.79174 -2.15995,5.52276 -3.38867,-4.8502 c -1.37337,0.38745 -2.68104,0.92291 -3.90603,1.6038 l 0.87951,5.8073 -5.22528,-2.45743 c -0.99192,1.02805 -1.87267,2.16471 -2.61264,3.40161 l 0,0.0129 3.56974,4.47511 -5.63916,0.47856 c -0.35721,1.38104 -0.55839,2.82102 -0.59496,4.30697 l 5.23822,2.04355 -4.64326,3.23346 c 0.36854,1.42098 0.89771,2.76704 1.565,4.03537 l 5.63916,-0.85364 -2.45743,5.23822 c 0.99352,1.01894 2.11057,1.9224 3.31106,2.69024 l 4.56566,-3.64735 0.50442,5.89784 c 1.33402,0.36025 2.73022,0.57394 4.1647,0.62082 l 2.17289,-5.53569 3.38867,4.86313 c 1.37068,-0.38651 2.68307,-0.92495 3.90602,-1.60379 l -0.8795,-5.82024 5.23821,2.45743 c 0.98882,-1.02601 1.86161,-2.16784 2.59971,-3.4016 l -3.56975,-4.4751 5.63916,-0.47855 c 0.35722,-1.38104 0.55839,-2.82102 0.59496,-4.30697 l -5.23821,-2.04355 4.64325,-3.23347 c -0.36719,-1.41579 -0.88822,-2.77103 -1.55206,-4.03536 l -5.65209,0.85363 2.45743,-5.25114 c -0.99335,-1.01866 -2.11085,-1.90964 -3.31107,-2.67731 l -4.56565,3.64735 -0.50442,-5.91078 c -1.33935,-0.36164 -2.73711,-0.56219 -4.17764,-0.60789 z"
+       id="path5764-8" />
+    <path
+       style="fill:#7389ff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 543.22423,577.59555 -2.15995,5.52276 -3.38867,-4.8502 c -1.37337,0.38745 -2.68104,0.92291 -3.90603,1.6038 l 0.87951,5.8073 -5.22528,-2.45743 c -0.99192,1.02805 -1.87267,2.16471 -2.61264,3.40161 l 0,0.0129 3.56974,4.47511 -5.63916,0.47856 c -0.35721,1.38104 -0.55839,2.82102 -0.59496,4.30697 l 5.23822,2.04355 -4.64326,3.23346 c 0.36854,1.42098 0.89771,2.76704 1.565,4.03537 l 5.63916,-0.85364 -2.45743,5.23822 c 0.99352,1.01894 2.11057,1.9224 3.31106,2.69024 l 4.56566,-3.64735 0.50442,5.89784 c 1.33402,0.36025 2.73022,0.57394 4.1647,0.62082 l 2.17289,-5.53569 3.38867,4.86313 c 1.37068,-0.38651 2.68307,-0.92495 3.90602,-1.60379 l -0.8795,-5.82024 5.23821,2.45743 c 0.98882,-1.02601 1.86161,-2.16784 2.59971,-3.4016 l -3.56975,-4.4751 5.63916,-0.47855 c 0.35722,-1.38104 0.55839,-2.82102 0.59496,-4.30697 l -5.23821,-2.04355 4.64325,-3.23347 c -0.36719,-1.41579 -0.88822,-2.77103 -1.55206,-4.03536 l -5.65209,0.85363 2.45743,-5.25114 c -0.99335,-1.01866 -2.11085,-1.90964 -3.31107,-2.67731 l -4.56565,3.64735 -0.50442,-5.91078 c -1.33935,-0.36164 -2.73711,-0.56219 -4.17764,-0.60789 z"
+       id="path5764-8-4" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend-9-4)"
+       d="m 460.09385,613.01762 c 15.48314,-16.15719 27.22758,-22.44115 57.04901,-19.40543"
+       id="path5841"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend-9-4)"
+       d="m 563.92857,598.79076 c 22.14285,2.85714 31.78571,11.42857 44.64286,32.85714"
+       id="path6086"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/docs/client_design.md b/docs/client_design.md
new file mode 100644
index 0000000..9f85655
--- /dev/null
+++ b/docs/client_design.md
@@ -0,0 +1,223 @@
+# Breakpad Client Libraries
+
+## Objective
+
+The Breakpad client libraries are responsible for monitoring an application for
+crashes (exceptions), handling them when they occur by generating a dump, and
+providing a means to upload dumps to a crash reporting server. These tasks are
+divided between the “handler” (short for “exception handler”) library linked in
+to an application being monitored for crashes, and the “sender” library,
+intended to be linked in to a separate external program.
+
+## Background
+
+As one of the chief tasks of the client handler is to generate a dump, an
+understanding of [dump files](processor_design.md) will aid in understanding the
+handler.
+
+## Overview
+
+Breakpad provides client libraries for each of its target platforms. Currently,
+these exist for Windows on x86 and Mac OS X on both x86 and PowerPC. A Linux
+implementation has been written and is currently under review.
+
+Because the mechanisms for catching exceptions and the methods for obtaining the
+information that a dump contains vary between operating systems, each target
+operating system requires a completely different handler implementation. Where
+multiple CPUs are supported for a single operating system, the handler
+implementation will likely also require separate code for each processor type to
+extract CPU-specific information. One of the goals of the Breakpad handler is to
+provide a prepackaged cross-platform system that masks many of these
+system-level differences and quirks from the application developer. Although the
+underlying implementations differ, the handler library for each system follows
+the same set of principles and exposes a similar interface.
+
+Code that wishes to take advantage of Breakpad should be linked against the
+handler library, and should, at an appropriate time, install a Breakpad handler.
+For applications, it is generally desirable to install the handler as early in
+the start-up process as possible. Developers of library code using Breakpad to
+monitor itself may wish to install a Breakpad handler when the library is
+loaded, or may only want to install a handler when calls are made in to the
+library.
+
+The handler can be triggered to generate a dump either by catching an exception
+or at the request of the application itself. The latter case may be useful in
+debugging assertions or other conditions where developers want to know how a
+program got in to a specific non-crash state. After generating a dump, the
+handler calls a user-specified callback function. The callback function may
+collect additional data about the program’s state, quit the program, launch a
+crash reporter application, or perform other tasks. Allowing for this
+functionality to be dictated by a callback function preserves flexibility.
+
+The sender library is also has a separate implementation for each supported
+platform, because of the varying interfaces for accessing network resources on
+different operating systems. The sender transmits a dump along with other
+application-defined information to a crash report server via HTTP. Because dumps
+may contain sensitive data, the sender allows for the use of HTTPS.
+
+The canonical example of the entire client system would be for a monitored
+application to link against the handler library, install a Breakpad handler from
+its main function, and provide a callback to launch a small crash reporter
+program. The crash reporter program would be linked against the sender library,
+and would send the crash dump when launched. A separate process is recommended
+for this function because of the unreliability inherent in doing any significant
+amount of work from a crashed process.
+
+## Detailed Design
+
+### Exception Handler Installation
+
+The mechanisms for installing an exception handler vary between operating
+systems. On Windows, it’s a relatively simple matter of making one call to
+register a [top-level exception
+filter](http://msdn.microsoft.com/library/en-us/debug/base/setunhandledexceptionfilter.asp)
+callback function. On most Unix-like systems such as Linux, processes are
+informed of exceptions by the delivery of a signal, so an exception handler
+takes the form of a signal handler. The native mechanism to catch exceptions on
+Mac OS X requires a large amount of code to set up a Mach port, identify it as
+the exception port, and assign a thread to listen for an exception on that port.
+Just as the preparation of exception handlers differ, the manner in which they
+are called differs as well. On Windows and most Unix-like systems, the handler
+is called on the thread that caused the exception. On Mac OS X, the thread
+listening to the exception port is notified that an exception has occurred. The
+different implementations of the Breakpad handler libraries perform these tasks
+in the appropriate ways on each platform, while exposing a similar interface on
+each.
+
+A Breakpad handler is embodied in an `ExceptionHandler` object. Because it’s a
+C++ object, `ExceptionHandler`s may be created as local variables, allowing them
+to be installed and removed as functions are called and return. This provides
+one possible way for a developer to monitor only a portion of an application for
+crashes.
+
+### Exception Basics
+
+Once an application encounters an exception, it is in an indeterminate and
+possibly hazardous state. Consequently, any code that runs after an exception
+occurs must take extreme care to avoid performing operations that might fail,
+hang, or cause additional exceptions. This task is not at all straightforward,
+and the Breakpad handler library seeks to do it properly, accounting for all of
+the minute details while allowing other application developers, even those with
+little systems programming experience, to reap the benefits. All of the Breakpad
+handler code that executes after an exception occurs has been written according
+to the following guidelines for safety at exception time:
+
+*   Use of the application heap is forbidden. The heap may be corrupt or
+    otherwise unusable, and allocators may not function.
+*   Resource allocation must be severely limited. The handler may create a new
+    file to contain the dump, and it may attempt to launch a process to continue
+    handling the crash.
+*   Execution on the thread that caused the exception is significantly limited.
+    The only code permitted to execute on this thread is the code necessary to
+    transition handling to a dedicated preallocated handler thread, and the code
+    to return from the exception handler.
+*   Handlers shouldn’t handle crashes by attempting to walk stacks themselves,
+    as stacks may be in inconsistent states. Dump generation should be performed
+    by interfacing with the operating system’s memory manager and code module
+    manager.
+*   Library code, including runtime library code, must be avoided unless it
+    provably meets the above guidelines. For example, this means that the STL
+    string class may not be used, because it performs operations that attempt to
+    allocate and use heap memory. It also means that many C runtime functions
+    must be avoided, particularly on Windows, because of heap operations that
+    they may perform.
+
+A dedicated handler thread is used to preserve the state of the exception thread
+when an exception occurs: during dump generation, it is difficult if not
+impossible for a thread to accurately capture its own state. Performing all
+exception-handling functions on a separate thread is also critical when handling
+stack-limit-exceeded exceptions. It would be hazardous to run out of stack space
+while attempting to handle an exception. Because of the rule against allocating
+resources at exception time, the Breakpad handler library creates its handler
+thread when it installs its exception handler. On Mac OS X, this handler thread
+is created during the normal setup of the exception handler, and the handler
+thread will be signaled directly in the event of an exception. On Windows and
+Linux, the handler thread is signaled by a small amount of code that executes on
+the exception thread. Because the code that executes on the exception thread in
+this case is small and safe, this does not pose a problem. Even when an
+exception is caused by exceeding stack size limits, this code is sufficiently
+compact to execute entirely within the stack’s guard page without causing an
+exception.
+
+The handler thread may also be triggered directly by a user call, even when no
+exception occurs, to allow dumps to be generated at any point deemed
+interesting.
+
+### Filter Callback
+
+When the handler thread begins handling an exception, it calls an optional
+user-defined filter callback function, which is responsible for judging whether
+Breakpad’s handler should continue handling the exception or not. This mechanism
+is provided for the benefit of library or plug-in code, whose developers may not
+be interested in reports of crashes that occur outside of their modules but
+within processes hosting their code. If the filter callback indicates that it is
+not interested in the exception, the Breakpad handler arranges for it to be
+delivered to any previously-installed handler.
+
+### Dump Generation
+
+Assuming that the filter callback approves (or does not exist), the handler
+writes a dump in a directory specified by the application developer when the
+handler was installed, using a previously generated unique identifier to avoid
+name collisions. The mechanics of dump generation also vary between platforms,
+but in general, the process involves enumerating each thread of execution, and
+capturing its state, including processor context and the active portion of its
+stack area. The dump also includes a list of the code modules loaded in to the
+application, and an indicator of which thread generated the exception or
+requested the dump. In order to avoid allocating memory during this process, the
+dump is written in place on disk.
+
+### Post-Dump Behavior
+
+Upon completion of writing the dump, a second callback function is called. This
+callback may be used to launch a separate crash reporting program or to collect
+additional data from the application. The callback may also be used to influence
+whether Breakpad will treat the exception as handled or unhandled. Even after a
+dump is successfully generated, Breakpad can be made to behave as though it
+didn’t actually handle an exception. This function may be useful for developers
+who want to test their applications with Breakpad enabled but still retain the
+ability to use traditional debugging techniques. It also allows a
+Breakpad-enabled application to coexist with a platform’s native crash reporting
+system, such as Mac OS X’ [CrashReporter](http://developer.apple.com/technotes/tn2004/tn2123.html)
+and [Windows Error Reporting](http://msdn.microsoft.com/isv/resources/wer/).
+
+Typically, when Breakpad handles an exception fully and no debuggers are
+involved, the crashed process will terminate.
+
+Authors of both callback functions that execute within a Breakpad handler are
+cautioned that their code will be run at exception time, and that as a result,
+they should observe the same programming practices that the Breakpad handler
+itself adheres to. Notably, if a callback is to be used to collect additional
+data from an application, it should take care to read only “safe” data. This
+might involve accessing only static memory locations that are updated
+periodically during the course of normal program execution.
+
+### Sender Library
+
+The Breakpad sender library provides a single function to send a crash report to
+a crash server. It accepts a crash server’s URL, a map of key-value parameters
+that will accompany the dump, and the path to a dump file itself. Each of the
+key-value parameters and the dump file are sent as distinct parts of a multipart
+HTTP POST request to the specified URL using the platform’s native HTTP
+facilities. On Linux, [libcurl](http://curl.haxx.se/) is used for this function,
+as it is the closest thing to a standard HTTP library available on that
+platform.
+
+## Future Plans
+
+Although we’ve had great success with in-process dump generation by following
+our guidelines for safe code at exception time, we are exploring options for
+allowing dumps to be generated in a separate process, to further enhance the
+handler library’s robustness.
+
+On Windows, we intend to offer tools to make it easier for Breakpad’s settings
+to be managed by the native group policy management system.
+
+We also plan to offer tools that many developers would find desirable in the
+context of handling crashes, such as a mechanism to determine at launch if the
+program last terminated in a crash, and a way to calculate “crashiness” in terms
+of crashes over time or the number of application launches between crashes.
+
+We are also investigating methods to capture crashes that occur early in an
+application’s launch sequence, including crashes that occur before a program’s
+main function begins executing.
diff --git a/docs/contributing_to_breakpad.md b/docs/contributing_to_breakpad.md
new file mode 100644
index 0000000..b8d261e
--- /dev/null
+++ b/docs/contributing_to_breakpad.md
@@ -0,0 +1,35 @@
+# Introduction
+
+Thanks for thinking of contributing to Breakpad! Unfortunately there are some
+pesky legal issues to get out of the way, but they're quick and painless.
+
+## Legal
+
+If you're doing work individually, not as part of any employment, you'll need to
+sign the <a
+href='http://code.google.com/legal/individual-cla-v1.0.html'>Individual
+Contributor License Agreement</a>. This agreement can be completed
+electronically.
+
+If you're contributing to Breakpad as part of your employment with another
+organization, you'll need to sign a <a
+href='http://code.google.com/legal/corporate-cla-v1.0.html'> Corporate
+Contributor License Agreement</a>. Once completed this document will need to be
+faxed.
+
+**_IMPORTANT_**: The authors(you!) of the contributions will maintain all
+copyrights; the agreements you sign will grant rights to Google to use your
+work.
+
+Thanks, and if you have any questions let me know and I'll loop in the legal guy
+here to get you an answer.
+
+## Technical
+
+Once you have signed the agreement you can be added to our contributors list and
+have write access to code. For full details on getting started see our trunk
+`README`.
+
+## List of people who have signed contributor agreements
+
+None so far.
diff --git a/docs/exception_handling.md b/docs/exception_handling.md
new file mode 100644
index 0000000..e48a52a
--- /dev/null
+++ b/docs/exception_handling.md
@@ -0,0 +1,128 @@
+The goal of this document is to give an overview of the exception handling
+options in breakpad.
+
+# Basics
+
+Exception handling is a mechanism designed to handle the occurrence of
+exceptions, special conditions that change the normal flow of program execution.
+
+`SetUnhandledExceptionFilter` replaces all unhandled exceptions when Breakpad is
+enabled. TODO: More on first and second change and vectored v. try/catch.
+
+There are two main types of exceptions across all platforms: in-process and
+out-of-process.
+
+# In-Process
+
+In process exception handling is relatively simple since the crashing process
+handles crash reporting. It is generally considered unsafe to write a minidump
+from a crashed process. For example, key data structures could be corrupted or
+the stack on which the exception handler runs could have been overwritten. For
+this reason all platforms also support some level of out-of-process exception
+handling.
+
+## Windows
+
+In-process exception handling Breakpad creates a 'handler head' that waits
+infinitely on a semaphore at start up. When this thread is woken it writes the
+minidump and signals to the excepting thread that it may continue. A filter will
+tell the OS to kill the process if the minidump is written successfully.
+Otherwise it continues.
+
+# Out-of-Process
+
+Out-of-process exception handling is more complicated than in-process exception
+handling because of the need to set up a separate process that can read the
+state of the crashing process.
+
+## Windows
+
+Breakpad uses two abstractions around the exception handler to make things work:
+`CrashGenerationServer` and `CrashGenerationClient`. The constructor for these
+takes a named pipe name.
+
+During server start up a named pipe and registers callbacks for client
+connections are created. The named pipe is used for registration and all IO on
+the pipe is done asynchronously. `OnPipeConnected` is called when a client
+attempts to connect (call `CreateFile` on the pipe). `OnPipeConnected` does the
+state machine transition from `Initial` to `Connecting` and on through
+`Reading`, `Reading_Done`, `Writing`, `Writing_Done`, `Reading_ACK`, and
+`Disconnecting`.
+
+When registering callbacks, the client passes in two pointers to pointers: 1. A
+pointer to the `EXCEPTION_INFO` pointer 1. A pointer to the `MDRawAssertionInfo`
+which handles various non-exception failures like assertions
+
+The essence of registration is adding a "`ClientInfo`" object that contains
+handles used for synchronization with the crashing process to an array
+maintained by the server. This is how we can keep track of all the clients on
+the system that have registered for minidumps. These handles are: *
+`server_died(mutex)` * `dump_requested(Event)` * `dump_generated(Event)`
+
+The server registers asynchronous waits on these events with the `ClientInfo`
+object as the callback context. When the `dump_requested` event is set by the
+client, the `OnDumpRequested()` callback is called. The server uses the handles
+inside `ClientInfo` to communicate with the child process. Once the child sets
+the event, it waits for two objects: 1. the `dump_generated` event 1. the
+`server_died` mutex
+
+In the end handles are "duped" into the client process, and the clients use
+`SetEvent` to request events, wait on the other event, or the `server_died`
+mutex.
+
+## Linux
+
+### Current Status
+
+As of July 2011, Linux had a minidump generator that is not entirely
+out-of-process. The minidump was generated from a separate process, but one that
+shared an address space, file descriptors, signal handles and much else with the
+crashing process. It worked by using the `clone()` system call to duplicate the
+crashing process, and then uses `ptrace()` and the `/proc` file system to
+retrieve the information required to write the minidump. Since then Breakpad has
+updated Linux exception handling to provide more benefits of out-of-process
+report generation.
+
+### Proposed Design
+
+#### Overview
+
+Breakpad would use a per-user daemon to write out a minidump that does not have,
+interact with or depend on the crashing process. We don't want to start a new
+separate process every time a user launches a Breakpad-enabled process. Doing
+one daemon per machine is unacceptable for security concerns around one user
+being able to initiate a minidump generation for another user's process.
+
+#### Client/Server Communication
+
+On Breakpad initialization in a process, the initializer would check if the
+daemon is running and, if not, start it. The race condition between the check
+and the initialization is not a problem because multiple daemons can check if
+the IPC endpoint already exists and if a server is listening. Even if multiple
+copies of the daemon try to `bind()` the filesystem to name the socket, all but
+one will fail and can terminate.
+
+This point is relevant for error handling conditions. Linux does not clean the
+file system representation of a UNIX domain socket even if both endpoints
+terminate, so checking for existence is not strong enough. However checking the
+process list or sending a ping on the socket can handle this.
+
+Breakpad uses UNIX domain sockets since they support full duplex communication
+(unlike Windows, named pipes on Linux are half) and the kernal automatically
+creates a private channel between the client and server once the client calls
+`connect()`.
+
+#### Minidump Generation
+
+Breakpad could use the current system with `ptrace()` and `/proc` within the
+daemon executable.
+
+Overall the operations look like: 1. Signal from OS indicating crash 1. Signal
+Handler suspends all threads except itself 1. Signal Handler sends
+`CRASH_DUMP_REQUEST` message to server and waits for response 1. Server inspects
+1. Minidump is asynchronously written to disk by the server 1. Server responds
+indicating inspection is done
+
+## Mac OSX
+
+Out-of-process exception handling is fully supported on Mac.
diff --git a/docs/getting_started_with_breakpad.md b/docs/getting_started_with_breakpad.md
new file mode 100644
index 0000000..b827d40
--- /dev/null
+++ b/docs/getting_started_with_breakpad.md
@@ -0,0 +1,115 @@
+# Introduction
+
+Breakpad is a library and tool suite that allows you to distribute an
+application to users with compiler-provided debugging information removed,
+record crashes in compact "minidump" files, send them back to your server, and
+produce C and C++ stack traces from these minidumps. Breakpad can also write
+minidumps on request for programs that have not crashed.
+
+Breakpad is currently used by Google Chrome, Firefox, Google Picasa, Camino,
+Google Earth, and other projects.
+
+![Workflow](breakpad.png)
+
+Breakpad has three main components:
+
+*   The **client** is a library that you include in your application. It can
+    write minidump files capturing the current threads' state and the identities
+    of the currently loaded executable and shared libraries. You can configure
+    the client to write a minidump when a crash occurs, or when explicitly
+    requested.
+
+*   The **symbol dumper** is a program that reads the debugging information
+    produced by the compiler and produces a **symbol file**, in [Breakpad's own
+    format](symbol_files.md).
+
+*   The **processor** is a program that reads a minidump file, finds the
+    appropriate symbol files for the versions of the executables and shared
+    libraries the minidump mentions, and produces a human-readable C/C++ stack
+    trace.
+
+# The minidump file format
+
+The minidump file format is similar to core files but was developed by Microsoft
+for its crash-uploading facility. A minidump file contains:
+
+*   A list of the executable and shared libraries that were loaded in the
+    process at the time the dump was created. This list includes both file names
+    and identifiers for the particular versions of those files that were loaded.
+
+*   A list of threads present in the process. For each thread, the minidump
+    includes the state of the processor registers, and the contents of the
+    threads' stack memory. These data are uninterpreted byte streams, as the
+    Breakpad client generally has no debugging information available to produce
+    function names or line numbers, or even identify stack frame boundaries.
+
+*   Other information about the system on which the dump was collected:
+    processor and operating system versions, the reason for the dump, and so on.
+
+Breakpad uses Windows minidump files on all platforms, instead of the
+traditional core files, for several reasons:
+
+*   Core files can be very large, making them impractical to send across a
+    network to the collector for processing. Minidumps are smaller, as they were
+    designed to be used this way.
+
+*   The core file format is poorly documented. For example, the Linux Standards
+    Base does not describe how registers are stored in `PT_NOTE` segments.
+
+*   It is harder to persuade a Windows machine to produce a core dump file than
+    it is to persuade other machines to write a minidump file.
+
+*   It simplifies the Breakpad processor to support only one file format.
+
+# Overview/Life of a minidump
+
+A minidump is generated via calls into the Breakpad library. By default,
+initializing Breakpad installs an exception/signal handler that writes a
+minidump to disk at exception time. On Windows, this is done via
+`SetUnhandledExceptionFilter()`; on OS X, this is done by creating a thread that
+waits on the Mach exception port; and on Linux, this is done by installing a
+signal handler for various exceptions like `SIGILL, SIGSEGV` etc.
+
+Once the minidump is generated, each platform has a slightly different way of
+uploading the crash dump. On Windows & Linux, a separate library of functions is
+provided that can be called into to do the upload. On OS X, a separate process
+is spawned that prompts the user for permission, if configured to do so, and
+sends the file.
+
+# Terminology
+
+**In-process vs. out-of-process exception handling** - it's generally considered
+that writing the minidump from within the crashed process is unsafe - key
+process data structures could be corrupted, or the stack on which the exception
+handler runs could have been overwritten, etc. All 3 platforms support what's
+known as "out-of-process" exception handling.
+
+# Integration overview
+
+## Breakpad Code Overview
+
+All the client-side code is found by visiting the Google Project at
+https://chromium.googlesource.com/breakpad/breakpad. The following directory structure is
+present in the `src` directory:
+
+*   `processor` Contains minidump-processing code that is used on the server
+    side and isn't of use on the client side
+*   `client` Contains client minidump-generation libraries for all platforms
+*   `tools` Contains source code & projects for building various tools on each
+    platform.
+
+(Among other directories)
+
+*   [Windows Integration Guide](windows_client_integration.md)
+*   [Mac Integration Guide](mac_breakpad_starter_guide.md)
+*   [Linux Integration Guide](linux_starter_guide.md)
+
+## Build process specifics(symbol generation)
+
+This applies to all platforms. Inside `src/tools/{platform}/dump_syms` is a tool
+that can read debugging information for each platform (e.g. for OS X/Linux,
+DWARF and STABS, and for Windows, PDB files) and generate a Breakpad symbol
+file. This tool should be run on your binary before it's stripped(in the case of
+OS X/Linux) and the symbol files need to be stored somewhere that the minidump
+processor can find. There is another tool, `symupload`, that can be used to
+upload symbol files if you have written a server that can accept them.
diff --git a/docs/linux_core_handler.md b/docs/linux_core_handler.md
new file mode 100644
index 0000000..558940f
--- /dev/null
+++ b/docs/linux_core_handler.md
@@ -0,0 +1,39 @@
+# How To Use Breakpad As a Coredump Handler on Linux
+
+This document presents a way to use Breakpad in order to generate
+minidumps system wide on Linux.
+
+Please refer to [Linux starter guide](./linux_starter_guide.md) if
+instead you want to integrate breakpad into your application.
+
+## Motivation
+
+When working on an embedded system, disk and memory space is often
+limited and when a process crashes it must be restarted as soon as
+possible. Sometime saving a full coredump takes to much time or
+consumes too much space.
+
+## Breakpad Core Handler
+
+In such case the program `core_handler` can be use to generate
+minidumps instead of coredumps. `core_handler` reads the firsts
+sections of the coredump (where the various threads are described)
+generated by Linux from the standard input and then directly reads
+`/proc/<pid>/mem` to reconstruct the stacktraces.
+
+One can test it with:
+
+```
+# echo "|/usr/libexec/core_handler %P /var/lib/minidump/%e-%i.md" >
+                /proc/sys/kernel/core_pattern
+# echo 1 > /proc/sys/kernel/core_pipe_limit
+```
+
+Be aware that a real world integration would likely require further
+customization and so `core_handler` can be wrapped into a script (for
+example to change the permission of the minidump file or to signal the
+presence of the minidump to another service).
+
+Please refer to
+[core(5)](https://man7.org/linux/man-pages/man5/core.5.html) for more
+details.
diff --git a/docs/linux_starter_guide.md b/docs/linux_starter_guide.md
new file mode 100644
index 0000000..41e1162
--- /dev/null
+++ b/docs/linux_starter_guide.md
@@ -0,0 +1,110 @@
+# How To Add Breakpad To Your Linux Application
+
+This document is an overview of using the Breakpad client libraries on Linux.
+
+## Building the Breakpad libraries
+
+Breakpad provides an Autotools build system that will build both the Linux
+client libraries and the processor libraries. Running `./configure && make` in
+the Breakpad source directory will produce
+**src/client/linux/libbreakpad\_client.a**, which contains all the code
+necessary to produce minidumps from an application.
+
+## Integrating Breakpad into your Application
+
+First, configure your build process to link **libbreakpad\_client.a** into your
+binary, and set your include paths to include the **src** directory in the
+**google-breakpad** source tree. Next, include the exception handler header:
+
+```cpp
+#include "client/linux/handler/exception_handler.h"
+```
+
+Now you can instantiate an `ExceptionHandler` object. Exception handling is active for the lifetime of the `ExceptionHandler` object, so you should instantiate it as early as possible in your application's startup process, and keep it alive for as close to shutdown as possible. To do anything useful, the `ExceptionHandler` constructor requires a path where it can write minidumps, as well as a callback function to receive information about minidumps that were written:
+
+```cpp
+static bool dumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,
+void* context, bool succeeded) {
+  printf("Dump path: %s\n", descriptor.path());
+  return succeeded;
+}
+
+void crash() { volatile int* a = (int*)(NULL); *a = 1; }
+
+int main(int argc, char* argv[]) {
+  google_breakpad::MinidumpDescriptor descriptor("/tmp");
+  google_breakpad::ExceptionHandler eh(descriptor, NULL, dumpCallback, NULL, true, -1);
+  crash();
+  return 0;
+}
+```
+
+Compiling and running this example should produce a minidump file in /tmp, and
+it should print the minidump filename before exiting. You can read more about
+the other parameters to the `ExceptionHandler` constructor [in the exception_handler.h source file][1].
+
+[1]: https://chromium.googlesource.com/breakpad/breakpad/+/master/src/client/linux/handler/exception_handler.h
+
+**Note**: You should do as little work as possible in the callback function.
+Your application is in an unsafe state. It may not be safe to allocate memory or
+call functions from other shared libraries. The safest thing to do is `fork` and
+`exec` a new process to do any work you need to do. If you must do some work in
+the callback, the Breakpad source contains [some simple reimplementations of libc functions][2], to avoid calling directly into
+libc, as well as [a header file for making Linux system calls][3] (in **src/third\_party/lss**) to avoid calling into other shared libraries.
+
+[2]: https://chromium.googlesource.com/breakpad/breakpad/+/master/src/common/linux/linux_libc_support.h
+[3]: https://chromium.googlesource.com/linux-syscall-support/+/master
+
+## Sending the minidump file
+
+In a real application, you would want to handle the minidump in some way, likely
+by sending it to a server for analysis. The Breakpad source tree contains [some
+HTTP upload source][4] that you might find useful, as well as [a minidump upload tool][5].
+
+[4]: https://chromium.googlesource.com/breakpad/breakpad/+/master/src/common/linux/http_upload.h
+[5]: https://chromium.googlesource.com/breakpad/breakpad/+/master/src/tools/linux/symupload/minidump_upload.cc
+
+## Producing symbols for your application
+
+To produce useful stack traces, Breakpad requires you to convert the debugging
+symbols in your binaries to [text-format symbol files][6]. First, ensure that you've compiled your binaries with `-g` to
+include debugging symbols. Next, compile the `dump_syms` tool by running
+`configure && make` in the Breakpad source directory. Next, run `dump_syms` on
+your binaries to produce the text-format symbols. For example, if your main
+binary was named `test`:
+
+[6]: https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md
+
+```
+$ google-breakpad/src/tools/linux/dump_syms/dump_syms ./test > test.sym
+```
+
+In order to use these symbols with the `minidump_stackwalk` tool, you will need
+to place them in a specific directory structure. The first line of the symbol
+file contains the information you need to produce this directory structure, for
+example (your output will vary):
+
+```
+$ head -n1 test.sym MODULE Linux x86_64 6EDC6ACDB282125843FD59DA9C81BD830 test
+$ mkdir -p ./symbols/test/6EDC6ACDB282125843FD59DA9C81BD830
+$ mv test.sym ./symbols/test/6EDC6ACDB282125843FD59DA9C81BD830
+```
+
+You may also find the [symbolstore.py][7] script in the Mozilla repository useful, as it encapsulates these steps.
+
+[7]: https://dxr.mozilla.org/mozilla-central/source/toolkit/crashreporter/tools/symbolstore.py
+
+## Processing the minidump to produce a stack trace
+
+Breakpad includes a tool called `minidump_stackwalk` which can take a minidump
+plus its corresponding text-format symbols and produce a symbolized stacktrace.
+It should be in the **google-breakpad/src/processor** directory if you compiled
+the Breakpad source using the directions above. Simply pass it the minidump and
+the symbol path as commandline parameters:
+
+```
+$ google-breakpad/src/processor/minidump_stackwalk minidump.dmp ./symbols
+```
+
+It produces verbose output on stderr, and the stacktrace on stdout, so you may
+want to redirect stderr.
diff --git a/docs/linux_system_calls.md b/docs/linux_system_calls.md
new file mode 100644
index 0000000..17ada7e
--- /dev/null
+++ b/docs/linux_system_calls.md
@@ -0,0 +1,47 @@
+# Introduction
+
+Linux implements its userland-to-kernel transition using a special library
+called linux-gate.so that is mapped by the kernel into every process. For more
+information, see
+
+http://www.trilithium.com/johan/2005/08/linux-gate/
+
+In a nutshell, the problem is that the system call gate function,
+kernel\_vsyscall does not use EBP to point to the frame pointer.
+
+However, the Breakpad processor supports special frames like this via STACK
+lines in the symbol file. If you look in src/client/linux/data you will see
+symbol files for linux-gate.so for both Intel & AMD(the implementation of
+kernel\_vsyscall changes depending on the CPU manufacturer). When processing
+minidumps from Linux 2.6, having these symbol files is necessary for walking the
+stack for crashes that happen while a thread is in a system call.
+
+If you're just interested in processing minidumps, those two symbol files should
+be all you need!
+
+# Details
+
+The particular details of understanding the linux-gate.so symbol files can be
+found by reading about STACK lines inside
+src/common/windows/pdb\_source\_line\_writer.cc, and the above link. To
+summarize briefly, we just have to inform the processor how to get to the
+previous frame when the EIP is inside kernel\_vsyscall, and we do that by
+telling the processor how many bytes kernel\_vsyscall has pushed onto the stack
+in it's prologue. For example, one of the symbol files looks somewhat like the
+following:
+
+MODULE Linux x86 random\_debug\_id linux-gate.so PUBLIC 400 0 kernel\_vsyscall
+STACK WIN 4 100 1 1 0 0 0 0 0 1
+
+The PUBLIC line indicates that kernel\_vsyscall is at offset 400 (in bytes) from
+the beginning of linux-gate.so. The STACK line indicates the size of the
+function(100), how many bytes it pushes(1), and how many bytes it pops(1). The
+last 1 indicates that EBP is pushed onto the stack before being used by the
+function.
+
+# Warnings
+
+These functions might change significantly depending on kernel version. In my
+opinion, the actual function stack information is unlikely to change frequently,
+but the Linux kernel might change the address of kernel\_vsyscall w.r.t the
+beginning of linux-gate.so, which would cause these symbol files to be invalid.
diff --git a/docs/mac_breakpad_starter_guide.md b/docs/mac_breakpad_starter_guide.md
new file mode 100644
index 0000000..6e0bdb0
--- /dev/null
+++ b/docs/mac_breakpad_starter_guide.md
@@ -0,0 +1,184 @@
+# How To Add Breakpad To Your Mac Client Application
+
+This document is a step-by-step recipe to get your Mac client app to build with
+Breakpad.
+
+## Preparing a binary build of Breakpad for use in your tree
+
+You can either check in a binary build of the Breakpad framework & tools or
+build it as a dependency of your project. The former is recommended, and
+detailed here, since building dependencies through other projects is
+problematic(matching up configuration names), and the Breakpad code doesn't
+change nearly often enough as your application's will.
+
+## Building the requisite targets
+
+All directories are relative to the `src` directory of the Breakpad checkout.
+
+*   Build the 'All' target of `client/mac/Breakpad.xcodeproj` in Release mode.
+*   Execute `cp -R client/mac/build/Release/Breakpad.framework <location in your
+    source tree>`
+*   Inside `tools/mac/dump_syms` directory, build dump\_syms.xcodeproj, and copy
+    tools/mac/dump\_syms/build/Release/dump\_syms to a safe location where it
+    can be run during the build process.
+
+## Adding Breakpad.framework
+
+Inside your application's framework, add the Breakpad.Framework to your
+project's framework settings. When you select it from the file chooser, it will
+let you pick a target to add it to; go ahead and check the one that's relevant
+to your application.
+
+## Copy Breakpad into your Application Package
+
+Copy Breakpad into your Application Package, so it will be around at run time.
+
+Go to the Targets section of your Xcode Project window. Hit the disclosure
+triangle to reveal the build phases of your application. Add a new Copy Files
+phase using the Contextual menu (Control Click). On the General panel of the new
+'Get Info' of this new phase, set the destination to 'Frameworks' Close the
+'Info' panel. Use the Contextual Menu to Rename your new phase 'Copy Frameworks'
+Now drag Breakpad again into this Copy Frameworks phase. Drag it from whereever
+it appears in the project file tree.
+
+## Add a New Run Script build phase
+
+Near the end of the build phases, add a new Run Script build phase. This will be
+run before Xcode calls /usr/bin/strip on your project. This is where you'll be
+calling dump\_sym to output the symbols for each architecture of your build. In
+my case, the relevant lines read:
+
+```
+#!/bin/sh
+$TOOL_DIR=<location of dump_syms from step 3 above>
+
+"$TOOL_DIR/dump_syms" -a ppc "$PROD" > "$TARGET_NAME ppc.breakpad"
+
+"$TOOL_DIR/dump_syms" -a i386 "$PROD" > "$TARGET_NAME i386.breakpad"
+```
+
+## Adjust the Project Settings
+
+*   Turn on Separate Strip,
+*   Set the Strip Style to Non-Global Symbols.
+
+## Write Code!
+
+You'll need to have an object that acts as the delegate for NSApplication.
+Inside this object's header, you'll need to add
+
+1.  add an ivar for Breakpad and
+2.  a declaration for the applicationShouldTerminate:(NSApplication`*` sender)
+    message.
+
+```
+#import <Breakpad/Breakpad.h>
+
+@interface BreakpadTest : NSObject {
+   .
+   .
+   .
+   BreakpadRef breakpad;
+   .
+   .
+   .
+}
+.
+.
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
+.
+.
+@end
+```
+
+Inside your object's implementation file,
+
+1.  add the following method InitBreakpad
+2.  modify your awakeFromNib method to look like the one below,
+3.  modify/add your application's delegate method to look like the one below
+
+```
+static BreakpadRef InitBreakpad(void) {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  BreakpadRef breakpad = 0;
+  NSDictionary *plist = [[NSBundle mainBundle] infoDictionary];
+  if (plist) {
+    // Note: version 1.0.0.4 of the framework changed the type of the argument 
+    // from CFDictionaryRef to NSDictionary * on the next line:
+    breakpad = BreakpadCreate(plist);
+  }
+  [pool release];
+  return breakpad;
+}
+
+- (void)awakeFromNib {
+  breakpad = InitBreakpad();
+}
+
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
+  BreakpadRelease(breakpad);
+  return NSTerminateNow;
+}
+```
+
+## Configure Breakpad
+
+Configure Breakpad for your application.
+
+1.  Take a look inside the Breakpad.framework at the Breakpad.h file for the
+    keys, default values, and descriptions to be passed to BreakpadCreate().
+2.  Add/Edit the Breakpad specific entries in the dictionary passed to
+    BreakpadCreate() -- typically your application's info plist.
+
+Example from the Notifier Info.plist:
+`<key>BreakpadProduct</key><string>Google_Notifier_Mac</string>
+<key>BreakpadProductDisplay</key><string>${PRODUCT_NAME}</string>
+`
+
+## Build Your Application
+
+Almost done!
+
+## Verify
+
+Double-check:
+
+Your app should have in its package contents:
+myApp.app/Contents/Frameworks/Breakpad.framework.
+
+The symbol files have reasonable contents (you can look at them with a text
+editor.)
+
+Look again at the Copy Frameworks phase of your project. Are you leaking .h
+files? Select them and delete them. (If you drag a bunch of files into your
+project, Xcode often wants to copy your .h files into the build, revealing
+Google secrets. Be vigilant!)
+
+## Upload the symbol file
+
+You'll need to configure your build process to store symbols in a location that
+is accessible by the minidump processor. There is a tool in tools/mac/symupload
+that can be used to send the symbol file via HTTP post.
+
+1.  Test
+
+Configure breakpad to send reports to a URL by adding to your app's Info.plist:
+
+```
+<key>BreakpadURL</key>
+<string>upload URL</string>
+<key>BreakpadReportInterval</key>
+<string>30</string>
+```
+
+## Final Notes
+
+Breakpad checks whether it is being run under a debugger, and if so, normally
+does nothing. But, you can force Breakpad to function under a debugger by
+setting the Unix shell variable BREAKPAD\_IGNORE\_DEBUGGER to a non-zero value.
+You can bracket the source code in the above Write The Code step with #if DEBUG
+to completely eliminate it from Debug builds. See
+//depot/googlemac/GoogleNotifier/main.m for an example. FYI, when your process
+forks(), exception handlers are reset to the default for child processes. So
+they must reinitialize Breakpad, otherwise exceptions will be handled by Apple's
+Crash Reporter.
diff --git a/docs/mozilla_brown_bag_talk.md b/docs/mozilla_brown_bag_talk.md
new file mode 100644
index 0000000..82461b3
--- /dev/null
+++ b/docs/mozilla_brown_bag_talk.md
@@ -0,0 +1,82 @@
+# Breakpad Crash Reporting for Mozilla
+
+*   January 24, 2007
+    *   Links updated February 14, 2007
+*   Mozilla HQ
+*   Mark Mentovai
+*   Brian Ryner
+
+## What is a crash reporter?
+
+*   Enables developers to analyze crashes that occur in the wild
+*   Produces stack backtraces that help identify how a program failed
+*   Offers higher-level data aggregation (topcrashes, MTBF statistics)
+
+## Motivation
+
+*   Talkback is proprietary and unmaintained
+*   Smaller open-source projects have few options
+*   Larger projects need flexibility and scalability
+
+## Design Options
+
+*   Stackwalking done on client
+    *   Apple CrashReporter
+    *   GNOME BugBuddy
+*   Client sends memory dump
+    *   Talkback
+    *   Windows Error Reporting
+    *   Breakpad
+
+## Goals
+
+*   Provide libraries around which systems can be based
+*   Open-source
+*   Cross-platform
+    *   Mac OS X x86, PowerPC
+    *   Linux x86
+    *   Windows x86
+*   No requirement to distribute symbols
+
+## Client Libraries
+
+*   Exception handler installed at application startup
+    *   Spawns a separate thread
+*   Minidump file written at crash time
+    *   Format used by Windows debuggers
+*   Separate application invoked to send
+    *   HTTP[S](S.md) POST, can include additional parameters
+
+## Symbols
+
+*   Cross-platform symbol file format
+*   Contents
+    *   Function names
+    *   Source file names and line numbers
+    *   Windows: Frame pointer omission data
+    *   Future: parameters and local variables
+*   Symbol conversion methods
+
+## Processor
+
+*   Examines minidump file and invokes stackwalker
+*   Symbol files requested from a SymbolSupplier
+*   Produces stack trace
+*   Output may be placed where convenient
+
+## Intergation
+
+*   Breakpad client present in Gran Paradiso Alpha 1 for Windows
+    *   Disabled by default
+    *   Enable with `MOZ_AIRBAG`
+*   Proof-of-concept collector
+    *   http://mavra.perilith.com/~luser/airbag-collector/list.pl
+*   Other platforms coming soon
+
+## More Information
+
+*   Project home: https://chromium.googlesource.com/breakpad/breakpad
+*   Mailing lists
+    *   [google-breakpad-dev@googlegroups.com](http://groups.google.com/group/google-breakpad-dev/)
+    *   [google-breakpad-discuss@googlegroups.com](http://groups.google.com/group/google-breakpad-discuss/)
+*   Ask me (irc.mozilla.org: mento)
diff --git a/docs/processor_design.md b/docs/processor_design.md
new file mode 100644
index 0000000..7b9f244
--- /dev/null
+++ b/docs/processor_design.md
@@ -0,0 +1,231 @@
+# Breakpad Processor Library
+
+## Objective
+
+The Breakpad processor library is an open-source framework to access the the
+information contained within crash dumps for multiple platforms, and to use that
+information to produce stack traces showing the call chain of each thread in a
+process. After processing, this data is made available to users of the library.
+
+## Background
+
+The Breakpad processor is intended to sit at the core of a comprehensive
+crash-reporting system that does not require debugging information to be
+provided to those running applications being monitored. Some existing
+crash-reporting systems, such as [GNOME](http://www.gnome.org/)’s Bug-Buddy and
+[Apple](http://www.apple.com/)’s
+[CrashReporter](http://developer.apple.com/technotes/tn2004/tn2123.html),
+require symbolic
+information to be present on the end user’s computer; in the case of
+CrashReporter, the reports are transmitted only to Apple, not to third-party
+developers. Other systems, such as [Microsoft](http://www.microsoft.com/)’s
+[Windows Error Reporting](http://msdn.microsoft.com/isv/resources/wer/) and
+SupportSoft’s Talkback, transmit only a snapshot of a crashed process’ state,
+which can later be combined with symbolic debugging information without the need
+for it to be present on end users’ computers. Because symbolic debugging
+information consumes a large amount of space and is otherwise not needed during
+the normal operation of software, and because some developers are reluctant to
+release debugging symbols to their customers, Breakpad follows the latter
+approach.
+
+We know of no currently-maintained crash-reporting systems that meet our
+requirements, which are to: * allow for symbols to be separate from the
+application, * handle crash reports from multiple platforms, * allow developers
+to operate their own crash-reporting platform, and to * be open-source. Windows
+Error Reporting only functions for Microsoft products, and requires the
+involvement of Microsoft’s servers. Talkback, while cross-platform, has not been
+maintained and at this point does not support Mac OS X on x86, which we consider
+to be a significant platform. Talkback is also closed-source commercial
+software, and has very specific requirements for its server platform.
+
+We are aware of Windows-only crash-reporting systems that leverage Microsoft’s
+debugging interfaces. Such systems, even if extended to support dumps from other
+platforms, are tied to using Windows for at least a portion of the processor
+platform.
+
+## Overview
+
+The Breakpad processor itself is written in standard C++ and will work on a
+variety of platforms. The dumps it accepts may also have been created on a
+variety of systems. The library is able to combine dumps with symbolic debugging
+information to create stack traces that include function signatures. The
+processor library includes simple command-line tools to examine dumps and
+process them, producing stack traces. It also exposes several layers of APIs
+enabling crash-reporting systems to be built around the Breakpad processor.
+
+## Detailed Design
+
+### Dump Files
+
+In the processor, the dump data is of primary significance. Dumps typically
+contain:
+
+*   CPU context (register data) as it was at the time the crash occurred, and an
+    indication of which thread caused the crash. General-purpose registers are
+    included, as are special-purpose registers such as the instruction pointer
+    (program counter).
+*   Information about each thread of execution within a crashed process,
+    including:
+    *   The memory region used for each thread’s stack.
+    *   CPU context for each thread, which for various reasons is not the same
+        as the crash context in the case of the crashed thread.
+*   A list of loaded code segments (or modules), including:
+    *   The name of the file (`.so`, `.exe`, `.dll`, etc.) which provides the
+        code.
+    *   The boundaries of the memory region in which the code segment is visible
+        to the process.
+    *   A reference to the debugging information for the code module, when such
+        information is available.
+
+Ordinarily, dumps are produced as a result of a crash, but other triggers may be
+set to produce dumps at any time a developer deems appropriate. The Breakpad
+processor can handle dumps in the minidump format, either generated by an
+[Breakpad client “handler”](client_design.md) implementation, or by another
+implementation that produces dumps in this format. The
+[DbgHelp.dll!MiniDumpWriteDump](http://msdn2.microsoft.com/en-us/library/ms680360.aspx)
+function on Windows
+produces dumps in this format, and is the basis for the Breakpad handler
+implementation on that platform.
+
+The [minidump format](http://msdn.microsoft.com/en-us/library/ms679293%28VS.85%29.aspx) is
+essentially a simple container format, organized as a series of streams. Each
+stream contains some type of data relevant to the crash. A typical “normal”
+minidump contains streams for the thread list, the module list, the CPU context
+at the time of the crash, and various bits of additional system information.
+Other types of minidump can be generated, such as a full-memory minidump, which
+in addition to stack memory contains snapshots of all of a process’ mapped
+memory regions.
+
+The minidump format was chosen as Breakpad’s dump format because it has an
+established track record on Windows, and it can be adapted to meet the needs of
+the other platforms that Breakpad supports. Most other operating systems use
+“core” files as their native dump formats, but the capabilities of core files
+vary across platforms, and because core files are usually presented in a
+platform’s native executable format, there are complications involved in
+accessing the data contained therein without the benefit of the header files
+that define an executable format’s entire structure. Because minidumps are
+leaner than a typical executable format, a redefinition of the format in a
+cross-platform header file, `minidump_format.h`, was a straightforward task.
+Similarly, the capabilities of the minidump format are understood, and because
+it provides an extensible container, any of Breakpad’s needs that could not be
+met directly by the standard minidump format could likely be met by extending it
+as needed. Finally, using this format means that the dump file is compatible
+with native debugging tools at least on Windows. A possible future avenue for
+exploration is the conversion of minidumps to core files, to enable this same
+benefit on other platforms.
+
+We have already provided an extension to the minidump format that allows it to
+carry dumps generated on systems with PowerPC processors. The format already
+allows for variable CPUs, so our work in this area was limited to defining a
+context structure sufficient to represent the execution state of a PowerPC. We
+have also defined an extension that allows minidumps to indicate which thread of
+execution requested a dump be produced for non-crash dumps.
+
+Often, the information contained within a dump alone is sufficient to produce a
+full stack backtrace for each thread. Certain optimizations that compilers
+employ in producing code frustrate this process. Specifically, the “frame
+pointer omission” optimization of x86 compilers can make it impossible to
+produce useful stack traces given only a stack snapshot and CPU context. In
+these cases, however, compiler-emitted debugging information can aid in
+producing useful stack traces. The Breakpad processor is able to take advantage
+of this debugging information as supplied by Microsoft’s C/C++ compiler, the
+only compiler to apply such optimizations by default. As a result, the Breakpad
+processor can produce useful stack traces even from code with frame pointer
+omission optimizations as produced by this compiler.
+
+### Symbol Files
+
+The [symbol files](symbol_files.md) that the Breakpad processor accepts allow
+for frame pointer omission data, but this is only one of their capabilities.
+Each symbol file also includes information about the functions, source files,
+and source code line numbers for a single module of code. A module is an
+individually-loadble chunk of code: these can be executables containing a main
+program (`exe` files on Windows) or shared libraries (`.so` files on Linux,
+`.dylib` files, frameworks, and bundles on Mac OS X, and `.dll` files on
+Windows). Dumps contain information about which of these modules were loaded at
+the time the dump was produced, and given this information, the Breakpad
+processor attempts to locate debugging symbols for the module through a
+user-supplied function embodied in a “symbol supplier.” Breakpad includes a
+sample symbol supplier, called `SimpleSymbolSupplier`, that is used by its
+command-line tools; this supplier locates symbol files by pathname.
+`SimpleSymbolSupplier` is also available to other users of the Breakpad
+processor library. This allows for the use of a simple reference implementation,
+but preserves flexibility for users who may have more demanding symbol file
+storage needs.
+
+Breakpad’s symbol file format is text-based, and was defined to be fairly
+human-readable and to encompass the needs of multiple platforms. The Breakpad
+processor itself does not operate directly with native symbol formats
+([DWARF](http://dwarf.freestandards.org/) and
+[STABS](http://sourceware.org/gdb/current/onlinedocs/stabs.html)
+on most Unix-like systems,
+[.pdb files](http://msdn2.microsoft.com/en-us/library/yd4f8bd1(VS.80).aspx)
+on Windows),
+because of the complications in accessing potentially complex symbol formats
+with slight variations between platforms, stored within different types of
+binary formats. In the case of `.pdb` files, the debugging format is not even
+documented. Instead, Breakpad’s symbol files are produced on each platform,
+using specific debugging APIs where available, to convert native symbols to
+Breakpad’s cross-platform format.
+
+### Processing
+
+Most commonly, a developer will enable an application to use Breakpad by
+building it with a platform-specific [client “handler”](client_design.md)
+library. After building the application, the developer will create symbol files
+for Breakpad’s use using the included `dump_syms` or `symupload` tools, or
+another suitable tool, and place the symbol files where the processor’s symbol
+supplier will be able to locate them.
+
+When a dump file is given to the processor’s `MinidumpProcessor` class, it will
+read it using its included minidump reader, contained in the `Minidump` family
+of classes. It will collect information about the operating system and CPU that
+produced the dump, and determine whether the dump was produced as a result of a
+crash or at the direct request of the application itself. It then loops over all
+of the threads in a process, attempting to walk the stack associated with each
+thread. This process is achieved by the processor’s `Stackwalker` components, of
+which there are a slightly different implementations for each CPU type that the
+processor is able to handle dumps from. Beginning with a thread’s context, and
+possibly using debugging data, the stackwalker produces a list of stack frames,
+containing each instruction executed in the chain. These instructions are
+matched up with the modules that contributed them to a process, and the
+`SymbolSupplier` is invoked to locate a symbol file. The symbol file is given to
+a `SourceLineResolver`, which matches the instruction up with a specific
+function name, source file, and line number, resulting in a representation of a
+stack frame that can easily be used to identify which code was executing.
+
+The results of processing are made available in a `ProcessState` object, which
+contains a vector of threads, each containing a vector of stack frames.
+
+For small-scale use of the Breakpad processor, and for testing and debugging,
+the `minidump_stackwalk` tool is provided. It invokes the processor and displays
+the full results of processing, optionally allowing symbols to be provided to
+the processor by a pathname-based symbol supplier, `SimpleSymbolSupplier`.
+
+For lower-level testing and debugging, the processor library also includes a
+`minidump_dump` tool, which walks through an entire minidump file and displays
+its contents in somewhat readable form.
+
+### Platform Support
+
+The Breakpad processor library is able to process dumps produced on Mac OS X
+systems running on x86, x86-64, and PowerPC processors, on Windows and Linux
+systems running on x86 or x86-64 processors, and on Android systems running ARM
+or x86 processors. The processor library itself is written in standard C++, and
+should function properly in most Unix-like environments. It has been tested on
+Linux and Mac OS X.
+
+## Future Plans
+
+There are currently no firm plans or timetables to implement any of these
+features, although they are possible avenues for future exploration.
+
+The symbol file format can be extended to carry information about the locations
+of parameters and local variables as stored in stack frames and registers, and
+the processor can use this information to provide enhanced stack traces showing
+function arguments and variable values.
+
+On Mac OS X and Linux, we can provide tools to convert files from the minidump
+format into the native core format. This will enable developers to open dump
+files in a native debugger, just as they are presently able to do with minidumps
+on Windows.
diff --git a/docs/stack_walking.md b/docs/stack_walking.md
new file mode 100644
index 0000000..9411159
--- /dev/null
+++ b/docs/stack_walking.md
@@ -0,0 +1,144 @@
+# Introduction
+
+This page aims to provide a detailed description of how Breakpad produces stack
+traces from the information contained within a minidump file.
+
+# Details
+
+## Starting the Process
+
+Typically the stack walking process is initiated by instantiating the
+[MinidumpProcessor](../src/processor/minidump_processor.cc)
+class and calling the [MinidumpProcessor::Process](../src/processor/minidump_processor.cc#61)
+method, providing it a minidump file to process. To produce a useful stack
+trace, the MinidumpProcessor requires two other objects which are passed in its
+constructor: a [SymbolSupplier](../src/google_breakpad/processor/symbol_supplier.h)
+and a [SourceLineResolverInterface](../src/google_breakpad/processor/source_line_resolver_interface.h).
+The SymbolSupplier object is responsible for locating and providing SymbolFiles
+that match modules from the minidump. The SourceLineResolverInterface is
+responsible for loading the symbol files and using the information contained
+within to provide function and source information for stack frames, as well as
+information on how to unwind from a stack frame to its caller. More detail will
+be provided on these interactions later.
+
+A number of data streams are extracted from the minidump to begin stack walking:
+the list of threads from the process
+([MinidumpThreadList](../src/google_breakpad/processor/minidump.h#335)),
+the list of modules loaded in the process
+([MinidumpModuleList](../src/google_breakpad/processor/minidump.h#501)),
+and information about the exception that caused the process to crash
+([MinidumpException](../src/google_breakpad/processor/minidump.h#615)).
+
+## Enumerating Threads
+
+For each thread in the thread list
+([MinidumpThread](../src/google_breakpad/processor/minidump.h#299)),
+the thread memory containing the stack for the thread
+([MinidumpMemoryRegion](../src/google_breakpad/processor/minidump.h#236))
+and the CPU context representing the CPU state of the thread at the time the
+dump was written ([MinidumpContext](../src/google_breakpad/processor/minidump.h#171))
+are extracted from the minidump. If the thread being processed is the thread
+that produced the exception then a CPU context is obtained from the
+MinidumpException object instead, which represents the CPU state of the thread
+at the point of the exception. A stack walker is then instantiated by calling
+the [Stackwalker::StackwalkerForCPU](../src/google_breakpad/processor/stackwalker.h#77)
+method and passing it the CPU context, the thread memory, the module list, as
+well as the SymbolSupplier and SourceLineResolverInterface. This method selects
+the specific !Stackwalker subclass based on the CPU architecture of the provided
+CPU context and returns an instance of that subclass.
+
+## Walking a thread's stack
+
+Once a !Stackwalker instance has been obtained, the processor calls the
+[Stackwalker::Walk](../src/google_breakpad/processor/source_line_resolver_interface.h)
+method to obtain a list of frames representing the stack of this thread. The
+!Stackwalker starts by calling the GetContextFrame method which returns a
+StackFrame representing the top of the stack, with CPU state provided by the
+initial CPU context. From there, the stack walker repeats the following steps
+for each frame in turn:
+
+### Finding the Module
+
+The address of the instruction pointer of the current frame is used to determine
+which module contains the current frame by calling the module list's
+[GetModuleForAddress](../src/google_breakpad/processor/code_modules.h#56) method.
+
+### Locating Symbols
+
+If a module is located, the SymbolSupplier is asked to locate symbols
+corresponding to the module by calling its
+[GetCStringSymbolData](../src/google_breakpad/processor/symbol_supplier.h#87)
+method. Typically this is implemented by using the module's debug filename (the
+PDB filename for Windows dumps) and debug identifier (a GUID plus one extra
+digit) as a lookup key. The [SimpleSymbolSupplier](../src/processor/simple_symbol_supplier.cc)
+class simply uses these as parts of a file path to locate a flat file on disk.
+
+### Loading Symbols
+
+If a symbol file is located, the SourceLineResolverInterface is then asked to
+load the symbol file by calling its
+[LoadModuleUsingMemoryBuffer](../src/google_breakpad/processor/source_line_resolver_interface.h#71)
+method. The [BasicSourceLineResolver](../src/processor/basic_source_line_resolver.cc)
+implementation parses the text-format [symbol file](symbol_files.md) into
+in-memory data structures to make lookups by address of function names, source
+line information, and unwind information easy.
+
+### Getting source line information
+
+If a symbol file has been successfully loaded, the SourceLineResolverInterface's
+[FillSourceLineInfo](../src/google_breakpad/processor/source_line_resolver_interface.h#89)
+method is called to provide a function name and source line information for the
+current frame. This is done by subtracting the base address of the module
+containing the current frame from the instruction pointer of the current frame
+to obtain a relative virtual address (RVA), which is a code offset relative to
+the start of the module. This RVA is then used as a lookup into a table of
+functions ([FUNC lines](SymbolFiles#FUNC_records.md) from the symbol file), each
+of which has an associated address range (function start address, function
+size). If a function is found whose address range contains the RVA, then its
+name is used. The RVA is then used as a lookup into a table of source lines
+([line records](SymbolFiles#Line_records.md) from the symbol file), each of
+which also has an associated address range. If a match is found it will provide
+the file name and source line associated with the current frame. If no match was
+found in the function table, another table of publicly exported symbols may be
+consulted ([PUBLIC lines](SymbolFiles#PUBLIC_records.md) from the symbol file).
+Public symbols contain only a start address, so the lookup simply looks for the
+nearest symbol that is less than the provided RVA.
+
+### Finding the caller frame
+
+To find the next frame in the stack, the !Stackwalker calls its
+[GetCallerFrame](../src/google_breakpad/processor/stackwalker.h#186)
+method, passing in the current frame. Each !Stackwalker subclass implements
+GetCallerFrame differently, but there are common patterns.
+
+Typically the first step is to query the SourceLineResolverInterface for the
+presence of detailed unwind information. This is done using its
+[FindWindowsFrameInfo](../src/google_breakpad/processor/source_line_resolver_interface.h#96)
+and [FindCFIFrameInfo](../src/google_breakpad/processor/source_line_resolver_interface.h#102)
+methods. These methods look for Windows unwind info extracted from a PDB file
+([STACK WIN](SymbolFiles#STACK_WIN_records.md) lines from the symbol file), or
+DWARF CFI extracted from a binary ([STACK CFI](SymbolFiles#STACK_CFI_records.md)
+lines from the symbol file) respectively. The information covers address ranges,
+so the RVA of the current frame is used for lookup as with function and source
+line information.
+
+If unwind info is found it provides a set of rules to recover the register state
+of the caller frame given the current register state as well as the thread's
+stack memory. The rules are evaluated to produce the caller frame.
+
+If unwind info is not found then the !Stackwalker may resort to other methods.
+Typically on architectures which specify a frame pointer unwinding by
+dereferencing the frame pointer is tried next. If that is successful it is used
+to produce the caller frame.
+
+If no caller frame was found by any other method most !Stackwalker
+implementations resort to stack scanning by looking at each word on the stack
+down to a fixed depth (implemented in the
+[Stackwalker::ScanForReturnAddress](../src/google_breakpad/processor/stackwalker.h#131)
+method) and using a heuristic to attempt to find a reasonable return address
+(implemented in the
+[Stackwalker::InstructionAddressSeemsValid](../src/google_breakpad/processor/stackwalker.h#111) method).
+
+If no caller frame is found or the caller frame seems invalid, stack walking
+stops. If a caller frame was found then these steps repeat using the new frame
+as the current frame.
diff --git a/docs/sym_upload_v2_protocol.md b/docs/sym_upload_v2_protocol.md
new file mode 100644
index 0000000..d56a4c8
--- /dev/null
+++ b/docs/sym_upload_v2_protocol.md
@@ -0,0 +1,214 @@
+# Introduction
+
+The `sym_upload` tool is able to operate in `sym-upload-v2` protocol mode, in
+addition to the legacy protocol (which will be referred to as `sym-upload-v1`
+for the rest of this document). For now `sym-upload-v2` is HTTP/REST-based but
+it could be extended to operate over gRPC instead, in the future.
+
+# Table of Contents
+* [Why](#why)
+* [How](#how)
+   * [Uploading](#uploading)
+     * [Uploading with `sym_upload`](#uploading-with-sym_upload)
+     * [Uploading with curl](#uploading-with-curl)
+     * [Serving the `sym-upload-v2` protocol](#serving-the-sym-upload-v2-protocol)
+       * [Authenticate using `key`](#authenticate-using-key)
+       * [Symbol `checkStatus`](#symbol-checkstatus)
+       * [Upload `create`](#upload-create)
+       * [Uploading the symbol file](#uploading-the-symbol-file)
+       * [Upload complete](#upload-complete)
+
+
+# Why
+
+Using `sym_upload` in `sym-upload-v2` protocol mode has the following features
+beyond `sym-upload-v1`:
+  * Authentication via `key` (arbitrary secret).
+  * Symbol identifier (product of `debug_file` and `debug_id`, as recorded in
+output from `dump_syms`) can be checked against existing symbol information on
+server. If it's present, then the upload is skipped entirely.
+
+# How
+
+## Uploading
+
+### Uploading with `sym_upload`
+
+Uploading in `sym-upload-v2` protocol mode is easy. Invoke `sym_upload` like
+```
+$ ./sym_upload -p sym-upload-v2 [-k <API-key>] <symbol-file> <API-URL>
+```
+
+Where `symbol-file` is a symbol file created by `dump_syms`, `API-URL` is the
+URL of your `sym-upload-v2` API service (see next section for details), and
+`API-key` is a secret known to your uploader and server.
+
+For more options see `sym_upload --help`.
+
+### Uploading with curl
+
+As an example, if:
+  * Your API's URL was "https://sym-upload-api".
+  * Your service has assigned you `key` "myfancysecret123".
+  * You wanted to upload the symbol file at "path/to/file_name", with
+`debug_file` being "file_name" and `debug_id` being
+"123123123123123123123123123". Normally you would read these values from
+"path/to/file_name", which in turn was generated by `dump_syms`.
+
+Then you might run:
+```
+$ curl https://sym-upload-api/symbols/file_name/123123123123123123123123123:checkStatus?key=myfancysecret123
+```
+
+And, upon seeing that this `debug_file`/`debug_id` combo is missing from symbol
+storage then you could run:
+```
+$ curl --request POST https://sym-upload-api/uploads:create?key=myfancysecret123
+```
+
+Which returns `upload_url` "https://upload-server/42?creds=shhhhh" and
+`upload_key` "42". Next you upload the file directly like:
+```
+$ curl -T path/to/file_name "https://upload-server/42?creds=shhhhh"
+```
+
+Once the HTTP PUT is complete, run:
+```
+$ curl --header "Content-Type: application/json" \
+    --request POST \
+    --data '{symbol_id:{"debugFile":"file_name",'\
+        '"debugId":"123123123123123123123123123"}}' \
+    https://sym-upload-api/uploads/42:complete?key=myfancysecret123
+```
+
+### Serving the `sym-upload-v2` Protocol
+
+The protocol is currently defined only in HTTP/REST. There are three necessary
+REST operations to implement in your service:
+* `/symbols/<debug_file>/<debug_id>:checkStatus?key=<key>`
+* `/uploads:create?key=<key>`
+* `/uploads/<upload_key>:complete?key=<key>`
+
+#### Authenticate Using `key`
+
+The query string arg `key` contains some secret that both the uploader and
+server understand. It is up to the service implementer to decide on what
+constitutes a valid `key`, how the uploader acquires one, and how to handle
+requests made with invalid ones.
+
+#### Symbol `checkStatus`
+
+```
+/symbols/<debug_file>/<debug_id>:checkStatus?key=<key>
+```
+
+This operation expects an empty (or no) JSON payload in the request.
+
+This operation should return the status of the symbol file uniquely identified
+by the given `debug_file` and `debug_id`. JSON schema:
+```
+{
+    "type": object",
+    "properties": {
+        "status": {
+            "type": "string",
+            "enum": ["STATUS_UNSPECIFIED", "MISING", "FOUND"],
+            "required": true
+        }
+    }
+}
+```
+
+Where `MISSING` denotes that the symbol file does not exist on the server and
+`FOUND` denotes that the symbol file exists on the server.
+
+#### Upload `create`
+
+```
+/uploads:create?key=<key>
+```
+
+This operation expects an empty (or no) JSON payload in the request.
+
+This operation should return a URL that uploader can HTTP PUT their symbol file
+to, along with an "upload key" that can be used to notify the service once the
+file upload is completed. JSON schema:
+```
+{
+    "type": "object",
+    "properties": {
+        "upload_url": {
+            "type: "string",
+            "required": true
+        },
+        "upload_key": {
+            "type": "string",
+            "required": true
+        }
+    }
+}
+```
+
+Since this REST API operation can be authenticated via the `key` query string
+arg, the service can return a URL that encodes permission delegation to the
+upload endpoint resource and thereby constrain the ability to upload to those
+with valid `key`s.
+
+#### Uploading the Symbol File
+
+Note that the actual symbol upload step is _not_ part of the REST API. The
+upload URL obtained in the above operation is meant to be used as the endpoint
+for a normal HTTP PUT request for the contents of the symbol file. Once that
+HTTP PUT request is completed use the upload `complete` operation.
+
+#### Upload `complete`
+
+```
+/uploads/<upload_key>:complete?key=<key>
+```
+
+This operation expects a JSON payload in the HTTP request body with the
+following schema:
+```
+{
+    "type": "object",
+    "properties": {
+        "symbol_id": {
+            "type": "object",
+            "properties": {
+                "debug_file": {
+                    "type": "string",
+                    "required": true
+                },
+                "debug_id": {
+                    "type": "string",
+                    "required": true
+                }
+            }
+        }
+    }
+}
+```
+
+This operation should cause the symbol storage back-end (however implemented)
+to consume the symbol file identified by `upload_key`. It is up to the service
+implementation to decide how uploads are assigned `upload_key`s and how to
+retrieve a completed upload by its `upload_key`. If the symbol file cannot be
+found, is malformed, or the operation cannot be completed for any other reason
+then an HTTP error will be returned. JSON schema of non-error responses:
+```
+{
+    "type": "object",
+    "properties": {
+        "result": {
+            "type": string,
+            "enum": ["RESULT_UNSPECIFIED", "OK", "DUPLICATE_DATA"],
+            "required": true
+        }
+    }
+}
+```
+
+Where `OK` denotes that the symbol storage was updated with the new symbol file
+and `DUPLICATE_DATA` denotes that the symbol file data was identical to data
+already in symbol storage and therefore nothing changed.
diff --git a/docs/symbol_files.md b/docs/symbol_files.md
new file mode 100644
index 0000000..237b656
--- /dev/null
+++ b/docs/symbol_files.md
@@ -0,0 +1,506 @@
+# Introduction
+
+Given a minidump file, the Breakpad processor produces stack traces that include
+function names and source locations. However, minidump files contain only the
+byte-by-byte contents of threads' registers and stacks, without function names
+or machine-code-to-source mapping data. The processor consults Breakpad symbol
+files for the information it needs to produce human-readable stack traces from
+the binary-only minidump file.
+
+The platform-specific symbol dumping tools parse the debugging information the
+compiler provides (whether as DWARF or STABS sections in an ELF file or as
+stand-alone PDB files), and write that information back out in the Breakpad
+symbol file format. This format is much simpler and less detailed than compiler
+debugging information, and values legibility over compactness.
+
+# Overview
+
+Breakpad symbol files are ASCII text files, with lines delimited as appropriate
+for the host platform. Each line is a _record_, divided into fields by single
+spaces; in some cases, the last field of the record can contain spaces. The
+first field is a string indicating what sort of record the line represents
+(except for line records; these are very common, making them the default saves
+space). Some fields hold decimal or hexadecimal numbers; hexadecimal numbers
+have no "0x" prefix, and use lower-case letters.
+
+Breakpad symbol files contain the following record types. With some
+restrictions, these may appear in any order.
+
+*   A `MODULE` record describes the executable file or shared library from which
+    this data was derived, for use by symbol suppliers. A `MODULE' record should
+    be the first record in the file.
+
+*   A `FILE` record gives a source file name, and assigns it a number by which
+    other records can refer to it.
+
+*   A `FUNC` record describes a function present in the source code.
+
+*   A line record indicates to which source file and line a given range of
+    machine code should be attributed. The line is attributed to the function
+    defined by the most recent `FUNC` record.
+
+*   A `PUBLIC` record gives the address of a linker symbol.
+
+*   A `STACK` record provides information necessary to produce stack traces.
+
+# `MODULE` records
+
+A `MODULE` record provides meta-information about the module the symbol file
+describes. It has the form:
+
+> `MODULE` _operatingsystem_ _architecture_ _id_ _name_
+
+For example: `MODULE Linux x86 D3096ED481217FD4C16B29CD9BC208BA0 firefox-bin
+` These records provide meta-information about the executable or shared library
+from which this symbol file was generated. A symbol supplier might use this
+information to find the correct symbol files to use to interpret a given
+minidump, or to perform other sorts of validation. If present, a `MODULE` record
+should be the first line in the file.
+
+The fields are separated by spaces, and cannot contain spaces themselves, except
+for _name_.
+
+*   The _operatingsystem_ field names the operating system on which the
+    executable or shared library was intended to run. This field should have one
+    of the following values: | **Value** | **Meaning** |
+    |:----------|:--------------------| | Linux | Linux | | mac | Macintosh OSX
+    | | windows | Microsoft Windows |
+
+*   The _architecture_ field indicates what processor architecture the
+    executable or shared library contains machine code for. This field should
+    have one of the following values: | **Value** | **Instruction Set
+    Architecture** | |:----------|:---------------------------------| | x86 |
+    Intel IA-32 | | x86\_64 | AMD64/Intel 64 | | ppc | 32-bit PowerPC | | ppc64
+    | 64-bit PowerPC | | unknown | unknown |
+
+*   The _id_ field is a sequence of hexadecimal digits that identifies the exact
+    executable or library whose contents the symbol file describes. The way in
+    which it is computed varies from platform to platform.
+
+*   The _name_ field contains the base name (the final component of the
+    directory path) of the executable or library. It may contain spaces, and
+    extends to the end of the line.
+
+# `FILE` records
+
+A `FILE` record holds a source file name for other records to refer to. It has
+the form:
+
+> `FILE` _number_ _name_
+
+For example: `FILE 2 /home/jimb/mc/in/browser/app/nsBrowserApp.cpp
+`
+
+A `FILE` record provides the name of a source file, and assigns it a number
+which other records (line records, in particular) can use to refer to that file
+name. The _number_ field is a decimal number. The _name_ field is the name of
+the file; it may contain spaces.
+
+# `FUNC` records
+
+A `FUNC` record describes a source-language function. It has the form:
+
+> `FUNC` _[m]_ _address_ _size_ _parameter\_size_ _name_
+
+For example: `FUNC m c184 30 0 nsQueryInterfaceWithError::operator()(nsID const&,
+void**) const
+`
+
+The _m_ field is optional. If present it indicates that multiple symbols
+reference this function's instructions. (In which case, only one symbol name is
+mentioned within the breakpad file.) Multiple symbols referencing the same
+instructions may occur due to identical code folding by the linker.
+
+The _address_ and _size_ fields are hexadecimal numbers indicating the start
+address and length in bytes of the machine code instructions the function
+occupies. (Breakpad symbol files cannot accurately describe functions whose code
+is not contiguous.) The start address is relative to the module's load address.
+
+The _parameter\_size_ field is a hexadecimal number indicating the size, in
+bytes, of the arguments pushed on the stack for this function. Some calling
+conventions, like the Microsoft Windows `stdcall` convention, require the called
+function to pop parameters passed to it on the stack from its caller before
+returning. The stack walker uses this value, along with data from `STACK`
+records, to step from the called function's frame to the caller's frame.
+
+The _name_ field is the name of the function. In languages that use linker
+symbol name mangling like C++, this should be the source language name (the
+"unmangled" form). This field may contain spaces.
+
+# Line records
+
+A line record describes the source file and line number to which a given range
+of machine code should be attributed. It has the form:
+
+> _address_ _size_ _line_ _filenum_
+
+For example: `c184 7 59 4
+`
+
+Because they are so common, line records do not begin with a string indicating
+the record type. All other record types' names use upper-case letters;
+hexadecimal numbers, like a line record's _address_, use lower-case letters.
+
+The _address_ and _size_ fields are hexadecimal numbers indicating the start
+address and length in bytes of the machine code. The address is relative to the
+module's load address.
+
+The _line_ field is the line number to which the machine code should be
+attributed, in decimal; the first line of the source file is line number 1. The
+_filenum_ field is a decimal number appearing in a prior `FILE` record; the name
+given in that record is the source file name for the machine code.
+
+The line is assumed to belong to the function described by the last preceding
+`FUNC` record. Line records may not appear before the first `FUNC' record.
+
+No two line records in a symbol file cover the same range of addresses. However,
+there may be many line records with identical line and file numbers, as a given
+source line may contribute many non-contiguous blocks of machine code.
+
+# `PUBLIC` records
+
+A `PUBLIC` record describes a publicly visible linker symbol, such as that used
+to identify an assembly language entry point or region of memory. It has the
+form:
+
+> PUBLIC _[m]_ _address_ _parameter\_size_ _name_
+
+For example: `PUBLIC m 2160 0 Public2_1
+`
+
+The Breakpad processor essentially treats a `PUBLIC` record as defining a
+function with no line number data and an indeterminate size: the code extends to
+the next address mentioned. If a given address is covered by both a `PUBLIC`
+record and a `FUNC` record, the processor uses the `FUNC` data.
+
+The _m_ field is optional. If present it indicates that multiple symbols
+reference this function's instructions. (In which case, only one symbol name is
+mentioned within the breakpad file.) Multiple symbols referencing the same
+instructions may occur due to identical code folding by the linker.
+
+The _address_ field is a hexadecimal number indicating the symbol's address,
+relative to the module's load address.
+
+The _parameter\_size_ field is a hexadecimal number indicating the size of the
+parameters passed to the code whose entry point the symbol marks, if known. This
+field has the same meaning as the _parameter\_size_ field of a `FUNC` record;
+see that description for more details.
+
+The _name_ field is the name of the symbol. In languages that use linker symbol
+name mangling like C++, this should be the source language name (the "unmangled"
+form). This field may contain spaces.
+
+# `STACK WIN` records
+
+Given a stack frame, a `STACK WIN` record indicates how to find the frame that
+called it. It has the form:
+
+> STACK WIN _type_ _rva_ _code\_size_ _prologue\_size_ _epilogue\_size_
+> _parameter\_size_ _saved\_register\_size_ _local\_size_ _max\_stack\_size_
+> _has\_program\_string_ _program\_string\_OR\_allocates\_base\_pointer_
+
+For example: `STACK WIN 4 2170 14 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + =
+$ebp $ebp ^ =
+`
+
+All fields of a `STACK WIN` record, except for the last, are hexadecimal
+numbers.
+
+The _type_ field indicates what sort of stack frame data this record holds. Its
+value should be one of the values of the
+[StackFrameTypeEnum](http://msdn.microsoft.com/en-us/library/bc5207xw%28VS.100%29.aspx)
+type in Microsoft's
+[Debug Interface Access (DIA)](http://msdn.microsoft.com/en-us/library/x93ctkx8%28VS.100%29.aspx) API.
+Breakpad uses only records of type 4 (`FrameTypeFrameData`) and 0
+(`FrameTypeFPO`); it ignores others. These types differ only in whether the last
+field is an _allocates\_base\_pointer_ flag (`FrameTypeFPO`) or a program string
+(`FrameTypeFrameData`). If more than one record covers a given address, Breakpad
+prefers `FrameTypeFrameData` records over `FrameTypeFPO` records.
+
+The _rva_ and _code\_size_ fields give the starting address and length in bytes
+of the machine code covered by this record. The starting address is relative to
+the module's load address.
+
+The _prologue\_size_ and _epilogue\_size_ fields give the length, in bytes, of
+the prologue and epilogue machine code within the record's range. Breakpad does
+not use these values.
+
+The _parameter\_size_ field gives the number of argument bytes this function
+expects to have been passed. This field has the same meaning as the
+_parameter\_size_ field of a `FUNC` record; see that description for more
+details.
+
+The _saved\_register\_size_ field gives the number of bytes in the stack frame
+dedicated to preserving the values of any callee-saves registers used by this
+function.
+
+The _local\_size_ field gives the number of bytes in the stack frame dedicated
+to holding the function's local variables and temporary values.
+
+The _max\_stack\_size_ field gives the maximum number of bytes pushed on the
+stack in the frame. Breakpad does not use this value.
+
+If the _has\_program\_string_ field is zero, then the `STACK WIN` record's final
+field is an _allocates\_base\_pointer_ flag, as a hexadecimal number; this is
+expected for records whose _type_ is 0. Otherwise, the final field is a program
+string.
+
+## Interpreting a `STACK WIN` record
+
+Given the register values for a frame F, we can find the calling frame as
+follows:
+
+*   If the _has\_program\_string_ field of a `STACK WIN` record is zero, then
+    the final field is _allocates\_base\_pointer_, a flag indicating whether the
+    frame uses the frame pointer register, `%ebp`, as a general-purpose
+    register.
+    *   If _allocates\_base\_pointer_ is true, then `%ebp` does not point to the
+        frame's base address. Instead,
+        *   Let _next\_parameter\_size_ be the parameter size of the function
+            frame F called (**not** this record's _parameter\_size_ field), or
+            zero if F is the youngest frame on the stack. You must find this
+            value in F's callee's `FUNC`, `STACK WIN`, or `PUBLIC` records.
+        *   Let _frame\_size_ be the sum of the _local\_size_ field, the
+            _saved\_register\_size_ field, and _next\_parameter\_size_. > > With
+            those definitions in place, we can recover the calling frame as
+            follows:
+        *   F's return address is at `%esp +`_frame\_size_,
+        *   the caller's value of `%ebp` is saved at `%esp
+            +`_next\_parameter\_size_`+`_saved\_register\_size_`- 8`, and
+        *   the caller's value of `%esp` just before the call instruction was
+            `%esp +`_frame\_size_`+ 4`. > > (Why do we include
+            _next\_parameter\_size_ in the sum when computing _frame\_size_ and
+            the address of the saved `%ebp`? When a function A has called a
+            function B, the arguments that A pushed for B are considered part of
+            A's stack frame: A's value for `%esp` points at the last argument
+            pushed for B. Thus, we must include the size of those arguments
+            (given by the debugging info for B) along with the size of A's
+            register save area and local variable area (given by the debugging
+            info for A) when computing the overall size of A's frame.)
+    *   If _allocates\_base\_pointer_ is false, then F's function doesn't use
+        `%ebp` at all. You may recover the calling frame as above, except that
+        the caller's value of `%ebp` is the same as F's value for `%ebp`, so no
+        steps are necessary to recover it.
+*   If the _has\_program\_string_ field of a `STACK WIN` record is not zero,
+    then the record's final field is a string containing a program to be
+    interpreted to recover the caller's frame. The comments in the
+    [postfix\_evaluator.h](../src/processor/postfix_evaluator.h#40)
+    header file explain the language in which the program is written. You should
+    place the following variables in the dictionary before interpreting the
+    program:
+    *   `$ebp` and `$esp` should be the values of the `%ebp` and `%esp`
+        registers in F.
+    *   `.cbParams`, `.cbSavedRegs`, and `.cbLocals`, should be the values of
+        the `STACK WIN` record's _parameter\_size_, _saved\_register\_size_, and
+        _local\_size_ fields.
+    *   `.raSearchStart` should be set to the address on the stack to begin
+        scanning for a return address, if necessary. The Breakpad processor sets
+        this to the value of `%esp` in F, plus the _frame\_size_ value mentioned
+        above.
+
+> If the program stores values for `$eip`, `$esp`, `$ebp`, `$ebx`, `$esi`, or
+> `$edi`, then those are the values of the given registers in the caller. If the
+> value of `$eip` is zero, that indicates that the end of the stack has been
+> reached.
+
+The Breakpad processor checks that the value yielded by the above for the
+calling frame's instruction address refers to known code; if the address seems
+to be bogus, then it uses a heuristic search to find F's return address and
+stack base.
+
+# `STACK CFI` records
+
+`STACK CFI` ("Call Frame Information") records describe how to walk the stack
+when execution is at a given machine instruction. These records take one of two
+forms:
+
+> `STACK CFI INIT` _address_ _size_ _register<sub>1</sub>_:
+> _expression<sub>1</sub>_ _register<sub>2</sub>_: _expression<sub>2</sub>_ ...
+>
+> `STACK CFI` _address_ _register<sub>1</sub>_: _expression<sub>1</sub>_
+> _register<sub>2</sub>_: _expression<sub>2</sub>_ ...
+
+For example:
+
+```
+STACK CFI INIT 804c4b0 40 .cfa: $esp 4 + $eip: .cfa 4 - ^
+STACK CFI 804c4b1 .cfa: $esp 8 + $ebp: .cfa 8 - ^
+```
+
+The _address_ and _size_ fields are hexadecimal numbers. Each
+_register_<sub>i</sub> is the name of a register or pseudoregister. Each
+_expression_ is a Breakpad postfix expression, which may contain spaces, but
+never ends with a colon. (The appropriate register names for a given
+architecture are determined when `STACK CFI` records are first enabled for that
+architecture, and should be documented in the appropriate
+`stackwalker_`_architecture_`.cc` source file.)
+
+STACK CFI records describe, at each machine instruction in a given function, how
+to recover the values the machine registers had in the function's caller.
+Naturally, some registers' values are simply lost, but there are three cases in
+which they can be recovered:
+
+*   You can always recover the program counter, because that's the function's
+    return address. If the function is ever going to return, the PC must be
+    saved somewhere.
+
+*   You can always recover the stack pointer. The function is responsible for
+    popping its stack frame before it returns to the caller, so it must be able
+    to restore this, as well.
+
+*   You should be able to recover the values of callee-saves registers. These
+    are registers whose values the callee must preserve, either by saving them
+    in its own stack frame before using them and re-loading them before
+    returning, or by not using them at all.
+
+(As an exception, note that functions which never return may not save any of
+this data. It may not be possible to walk the stack past such functions' stack
+frames.)
+
+Given rules for recovering the values of a function's caller's registers, we can
+walk up the stack. Starting with the current set of registers --- the PC of the
+instruction we're currently executing, the current stack pointer, etc. --- we
+use CFI to recover the values those registers had in the caller of the current
+frame. This gives us a PC in the caller whose CFI we can look up; we apply the
+process again to find that function's caller; and so on.
+
+Concretely, CFI records represent a table with a row for each machine
+instruction address and a column for each register. The table entry for a given
+address and register contains a rule describing how, when the PC is at that
+address, to restore the value that register had in the caller.
+
+There are some special columns:
+
+*   A column named `.cfa`, for "Canonical Frame Address", tells how to compute
+    the base address of the frame; other entries can refer to the CFA in their
+    rules.
+
+*   A column named `.ra` represents the return address.
+
+For example, suppose we have a machine with 32-bit registers, one-byte
+instructions, a stack that grows downwards, and an assembly language that
+resembles C. Suppose further that we have a function whose machine code looks
+like this:
+
+```
+func:                                ; entry point; return address at sp
+func+0:      sp -= 16                ; allocate space for stack frame
+func+1:      sp[12] = r0             ; save 4-byte r0 at sp+12
+             ...                     ; stuff that doesn't affect stack
+func+10:     sp -= 4; *sp = x        ; push some 4-byte x on the stack
+             ...                     ; stuff that doesn't affect stack
+func+20:     r0 = sp[16]             ; restore saved r0
+func+21:     sp += 20                ; pop whole stack frame
+func+22:     pc = *sp; sp += 4       ; pop return address and jump to it
+```
+
+The following table would describe the function above:
+
+**code address** | **.cfa** | **r0 (on Google Code)** | **r1 (on Google Code)** | ... | **.ra**
+:--------------- | :------- | :---------------------- | :---------------------- | :-- | :-------
+func+0           | sp       |                         |                         |     | `cfa[0]`
+func+1           | sp+16    |                         |                         |     | `cfa[0]`
+func+2           | sp+16    | `cfa[-4]`               |                         |     | `cfa[0]`
+func+11          | sp+20    | `cfa[-4]`               |                         |     | `cfa[0]`
+func+21          | sp+20    |                         |                         |     | `cfa[0]`
+func+22          | sp       |                         |                         |     | `cfa[0]`
+
+Some things to note here:
+
+*   Each row describes the state of affairs **before** executing the instruction
+    at the given address. Thus, the row for func+0 describes the state before we
+    execute the first instruction, which allocates the stack frame. In the next
+    row, the formula for computing the CFA has changed, reflecting the
+    allocation.
+
+*   The other entries are written in terms of the CFA; this allows them to
+    remain unchanged as the stack pointer gets bumped around. For example, to
+    find the caller's value for r0 (on Google Code) at func+2, we would first
+    compute the CFA by adding 16 to the sp, and then subtract four from that to
+    find the address at which r0 (on Google Code) was saved.
+
+*   Although the example doesn't show this, most calling conventions designate
+    "callee-saves" and "caller-saves" registers. The callee must restore the
+    values of "callee-saves" registers before returning (if it uses them at
+    all), whereas the callee is free to use "caller-saves" registers without
+    restoring their values. A function that uses caller-saves registers
+    typically does not save their original values at all; in this case, the CFI
+    marks such registers' values as "unrecoverable".
+
+*   Exactly where the CFA points in the frame --- at the return address? below
+    it? At some fixed point within the frame? --- is a question of definition
+    that depends on the architecture and ABI in use. But by definition, the CFA
+    remains constant throughout the lifetime of the frame. It's up to
+    architecture- specific code to know what significance to assign the CFA, if
+    any.
+
+To save space, the most common type of CFI record only mentions the table
+entries at which changes take place. So for the above, the CFI data would only
+actually mention the non-blank entries here:
+
+**insn** | **cfa** | **r0 (on Google Code)** | **r1 (on Google Code)** | ... | **ra**
+:------- | :------ | :---------------------- | :---------------------- | :-- | :-------
+func+0   | sp      |                         |                         |     | `cfa[0]`
+func+1   | sp+16   |                         |                         |     |
+func+2   |         | `cfa[-4]`               |                         |     |
+func+11  | sp+20   |                         |                         |     |
+func+21  |         | r0 (on Google Code)     |                         |     |
+func+22  | sp      |                         |                         |     |
+
+A `STACK CFI INIT` record indicates that, at the machine instruction at
+_address_, belonging to some function, the value that _register<sub>n</sub>_ had
+in that function's caller can be recovered by evaluating
+_expression<sub>n</sub>_. The values of any callee-saves registers not mentioned
+are assumed to be unchanged. (`STACK CFI` records never mention caller-saves
+registers.) These rules apply starting at _address_ and continue up to, but not
+including, the address given in the next `STACK CFI` record. The _size_ field is
+the total number of bytes of machine code covered by this record and any
+subsequent `STACK CFI` records (until the next `STACK CFI INIT` record). The
+_address_ field is relative to the module's load address.
+
+A `STACK CFI` record (no `INIT`) is the same, except that it mentions only those
+registers whose recovery rules have changed from the previous CFI record. There
+must be a prior `STACK CFI INIT` or `STACK CFI` record in the symbol file. The
+_address_ field of this record must be greater than that of the previous record,
+and it must not be at or beyond the end of the range given by the most recent
+`STACK CFI INIT` record. The address is relative to the module's load address.
+
+Each expression is a breakpad-style postfix expression. Expressions may contain
+spaces, but their tokens may not end with colons. When an expression mentions a
+register, it refers to the value of that register in the callee, even if a prior
+name/expression pair gives that register's value in the caller. The exception is
+`.cfa`, which refers to the canonical frame address computed by the .cfa rule in
+force at the current instruction.
+
+The special expression `.undef` indicates that the given register's value cannot
+be recovered.
+
+The register names preceding the expressions are always followed by colons. The
+expressions themselves never contain tokens ending with colons.
+
+There are two special register names:
+
+*   `.cfa` ("Canonical Frame Address") is the base address of the stack frame.
+    Other registers' rules may refer to this. If no rule is provided for the
+    stack pointer, the value of `.cfa` is the caller's stack pointer.
+
+*   `.ra` is the return address. This is the value of the restored program
+    counter. We use `.ra` instead of the architecture-specific name for the
+    program counter.
+
+The Breakpad stack walker requires that there be rules in force for `.cfa` and
+`.ra` at every code address from which it unwinds. If those rules are not
+present, the stack walker will ignore the `STACK CFI` data, and try to use a
+different strategy.
+
+So the CFI for the example function above would be as follows, if `func` were at
+address 0x1000 (relative to the module's load address):
+
+```
+STACK CFI INIT 1000 .cfa: $sp .ra: .cfa ^
+STACK CFI      1001 .cfa: $sp 16 +
+STACK CFI      1002 $r0: .cfa 4 - ^
+STACK CFI      100b .cfa: $sp 20 +
+STACK CFI      1015 $r0: $r0
+STACK CFI      1016 .cfa: $sp
+```
diff --git a/docs/windows_client_integration.md b/docs/windows_client_integration.md
new file mode 100644
index 0000000..99a8492
--- /dev/null
+++ b/docs/windows_client_integration.md
@@ -0,0 +1,70 @@
+# Windows Integration overview
+
+## Windows Client Code
+
+The Windows client code is in the `src/client/windows` directory of the tree.
+Since the header files are fairly well commented some specifics are purposely
+omitted from this document.
+
+## Integration of minidump-generation
+
+Once you build the solution inside `src/client/windows`, an output file of
+`exception_handler.lib` will be generated. You can either check this into your
+project's directory or build directly from the source, as the project itself
+does.
+
+Enabling Breakpad in your application requires you to `#include
+"exception_handler.h"` and instantiate the `ExceptionHandler` object like so:
+
+```
+  handler = new ExceptionHandler(const wstring& dump_path,
+                                                              FilterCallback filter,
+                                                              MinidumpCallback callback,
+                                                              void* callback_context,
+                                                              int handler_types,
+                                                              MINIDUMP_TYPE dump_type,
+                                                              const wchar_t* pipe_name,
+                                                              const CustomClientInfo* custom_info);
+```
+
+The parameters, in order, are:
+
+*   pathname for minidumps to be written to - this is ignored if OOP dump
+    generation is used
+*   A callback that is called when the exception is first handled - you can
+    return true/false here to continue/stop exception processing
+*   A callback that is called after minidumps have been written
+*   Context for the callbacks
+*   Which exceptions to handle - see `HandlerType` enumeration in
+    exception\_handler.h
+*   The type of minidump to generate, using the `MINIDUMP_TYPE` definitions in
+    `DbgHelp.h`
+*   A pipe name that can be used to communicate with a crash generation server
+*   A pointer to a CustomClientInfo class that can be used to send custom data
+    along with the minidump when using OOP generation
+
+You can also see `src/client/windows/tests/crash_generation_app/*` for a sample
+app that uses OOP generation.
+
+## OOP Minidump Generation
+
+For out of process minidump generation, more work is needed. If you look inside
+`src/client/windows/crash_generation`, you will see a file called
+`crash_generation_server.h`. This file is the interface for a crash generation
+server, which must be instantiated with the same pipe name that is passed to the
+client above. The logistics of running a separate process that instantiates the
+crash generation server is left up to you, however.
+
+## Build process specifics(symbol generation, upload)
+
+The symbol creation step is talked about in the general overview doc, since it
+doesn't vary much by platform. You'll need to make sure that the symbols are
+available wherever minidumps are uploaded to for processing.
+
+## Out in the field - uploading the minidump
+
+Inside `src/client/windows/sender` is a class implementation called
+`CrashReportSender`. This class can be compiled into a separate standalone CLI
+or in the crash generation server and used to upload the report; it can know
+when to do so via one of the callbacks provided by the `CrashGenerationServer`
+or the `ExceptionHandler` object for in-process generation.
diff --git a/m4/ax_append_compile_flags.m4 b/m4/ax_append_compile_flags.m4
new file mode 100644
index 0000000..2bb27ef
--- /dev/null
+++ b/m4/ax_append_compile_flags.m4
@@ -0,0 +1,67 @@
+# ===========================================================================
+#  http://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+#   For every FLAG1, FLAG2 it is checked whether the compiler works with the
+#   flag.  If it does, the flag is added FLAGS-VARIABLE
+#
+#   If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
+#   CFLAGS) is used.  During the check the flag is always added to the
+#   current language's flags.
+#
+#   If EXTRA-FLAGS is defined, it is added to the current language's default
+#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
+#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
+#   force the compiler to issue an error when a bad flag is given.
+#
+#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+#   NOTE: This macro depends on the AX_APPEND_FLAG and
+#   AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with
+#   AX_APPEND_LINK_FLAGS.
+#
+# LICENSE
+#
+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 5
+
+AC_DEFUN([AX_APPEND_COMPILE_FLAGS],
+[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
+AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
+for flag in $1; do
+  AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3], [$4])
+done
+])dnl AX_APPEND_COMPILE_FLAGS
diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4
new file mode 100644
index 0000000..08f2e07
--- /dev/null
+++ b/m4/ax_append_flag.m4
@@ -0,0 +1,71 @@
+# ===========================================================================
+#      http://www.gnu.org/software/autoconf-archive/ax_append_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
+#
+# DESCRIPTION
+#
+#   FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
+#   added in between.
+#
+#   If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
+#   CFLAGS) is used.  FLAGS-VARIABLE is not changed if it already contains
+#   FLAG.  If FLAGS-VARIABLE is unset in the shell, it is set to exactly
+#   FLAG.
+#
+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 6
+
+AC_DEFUN([AX_APPEND_FLAG],
+[dnl
+AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
+AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
+AS_VAR_SET_IF(FLAGS,[
+  AS_CASE([" AS_VAR_GET(FLAGS) "],
+    [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
+    [
+     AS_VAR_APPEND(FLAGS,[" $1"])
+     AC_RUN_LOG([: FLAGS="$FLAGS"])
+    ])
+  ],
+  [
+  AS_VAR_SET(FLAGS,[$1])
+  AC_RUN_LOG([: FLAGS="$FLAGS"])
+  ])
+AS_VAR_POPDEF([FLAGS])dnl
+])dnl AX_APPEND_FLAG
diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
new file mode 100644
index 0000000..ca36397
--- /dev/null
+++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
+# ===========================================================================
+#   http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+#   Check whether the given FLAG works with the current language's compiler
+#   or gives an error.  (Warnings, however, are ignored)
+#
+#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+#   success/failure.
+#
+#   If EXTRA-FLAGS is defined, it is added to the current language's default
+#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
+#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
+#   force the compiler to issue an error when a bad flag is given.
+#
+#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 4
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+  _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+  AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+    [AS_VAR_SET(CACHEVAR,[yes])],
+    [AS_VAR_SET(CACHEVAR,[no])])
+  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_VAR_IF(CACHEVAR,yes,
+  [m4_default([$2], :)],
+  [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/m4/ax_check_define.m4 b/m4/ax_check_define.m4
new file mode 100644
index 0000000..20ba808
--- /dev/null
+++ b/m4/ax_check_define.m4
@@ -0,0 +1,92 @@
+# ===========================================================================
+#     https://www.gnu.org/software/autoconf-archive/ax_check_define.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AC_CHECK_DEFINE([symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])
+#   AX_CHECK_DEFINE([includes],[symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])
+#
+# DESCRIPTION
+#
+#   Complements AC_CHECK_FUNC but it does not check for a function but for a
+#   define to exist. Consider a usage like:
+#
+#    AC_CHECK_DEFINE(__STRICT_ANSI__, CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500")
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+#
+#   This program is free software; you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation; either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 9
+
+AU_ALIAS([AC_CHECK_DEFINED], [AC_CHECK_DEFINE])
+AC_DEFUN([AC_CHECK_DEFINE],[
+AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1])dnl
+AC_CACHE_CHECK([for $1 defined], ac_var,
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+  #ifdef $1
+  int ok;
+  #else
+  choke me
+  #endif
+]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))
+AS_IF([test AS_VAR_GET(ac_var) != "no"], [$2], [$3])dnl
+AS_VAR_POPDEF([ac_var])dnl
+])
+
+AU_ALIAS([AX_CHECK_DEFINED], [AX_CHECK_DEFINE])
+AC_DEFUN([AX_CHECK_DEFINE],[
+AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$2_$1])dnl
+AC_CACHE_CHECK([for $2 defined in $1], ac_var,
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <$1>]], [[
+  #ifdef $2
+  int ok;
+  #else
+  choke me
+  #endif
+]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))
+AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl
+AS_VAR_POPDEF([ac_var])dnl
+])
+
+AC_DEFUN([AX_CHECK_FUNC],
+[AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$2])dnl
+AC_CACHE_CHECK([for $2], ac_var,
+dnl AC_LANG_FUNC_LINK_TRY
+[AC_LINK_IFELSE([AC_LANG_PROGRAM([$1
+                #undef $2
+                char $2 ();],[
+                char (*f) () = $2;
+                return f != $2; ])],
+                [AS_VAR_SET(ac_var, yes)],
+                [AS_VAR_SET(ac_var, no)])])
+AS_IF([test AS_VAR_GET(ac_var) = yes], [$3], [$4])dnl
+AS_VAR_POPDEF([ac_var])dnl
+])# AC_CHECK_FUNC
diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
new file mode 100644
index 0000000..079e17d
--- /dev/null
+++ b/m4/ax_cxx_compile_stdcxx.m4
@@ -0,0 +1,558 @@
+# ===========================================================================
+#   http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
+#
+# DESCRIPTION
+#
+#   Check for baseline language coverage in the compiler for the specified
+#   version of the C++ standard.  If necessary, add switches to CXXFLAGS to
+#   enable support.  VERSION may be '11' (for the C++11 standard) or '14'
+#   (for the C++14 standard).
+#
+#   The second argument, if specified, indicates whether you insist on an
+#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+#   -std=c++11).  If neither is specified, you get whatever works, with
+#   preference for an extended mode.
+#
+#   The third argument, if specified 'mandatory' or if left unspecified,
+#   indicates that baseline support for the specified C++ standard is
+#   required and that the macro should error out if no mode with that
+#   support is found.  If specified 'optional', then configuration proceeds
+#   regardless, after defining HAVE_CXX${VERSION} if and only if a
+#   supporting mode is found.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+#   Copyright (c) 2015 Paul Norman <penorman@mac.com>
+#   Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved.  This file is offered as-is, without any
+#   warranty.
+
+#serial 1
+
+dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
+dnl  (serial version number 13).
+
+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
+  m4_if([$1], [11], [],
+        [$1], [14], [],
+        [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
+        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
+  m4_if([$2], [], [],
+        [$2], [ext], [],
+        [$2], [noext], [],
+        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
+  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
+        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
+        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
+        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
+  AC_LANG_PUSH([C++])dnl
+  ac_success=no
+  AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
+  ax_cv_cxx_compile_cxx$1,
+  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+    [ax_cv_cxx_compile_cxx$1=yes],
+    [ax_cv_cxx_compile_cxx$1=no])])
+  if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
+    ac_success=yes
+  fi
+
+  m4_if([$2], [noext], [], [dnl
+  if test x$ac_success = xno; then
+    for switch in -std=gnu++$1 -std=gnu++0x; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+
+  m4_if([$2], [ext], [], [dnl
+  if test x$ac_success = xno; then
+    dnl HP's aCC needs +std=c++11 according to:
+    dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
+    dnl Cray's crayCC needs "-h std=c++11"
+    for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+  AC_LANG_POP([C++])
+  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
+    if test x$ac_success = xno; then
+      AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
+    fi
+  else
+    if test x$ac_success = xno; then
+      HAVE_CXX$1=0
+      AC_MSG_NOTICE([No compiler with C++$1 support was found])
+    else
+      HAVE_CXX$1=1
+      AC_DEFINE(HAVE_CXX$1,1,
+                [define if the compiler supports basic C++$1 syntax])
+    fi
+
+    AC_SUBST(HAVE_CXX$1)
+  fi
+])
+
+
+dnl  Test body for checking C++11 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+)
+
+
+dnl  Test body for checking C++14 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+)
+
+
+dnl  Tests for new features in C++11
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
+
+// If the compiler admits that it is not ready for C++11, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201103L
+
+#error "This is not a C++11 compiler"
+
+#else
+
+namespace cxx11
+{
+
+  namespace test_static_assert
+  {
+
+    template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+  }
+
+  namespace test_final_override
+  {
+
+    struct Base
+    {
+      virtual void f() {}
+    };
+
+    struct Derived : public Base
+    {
+      virtual void f() override {}
+    };
+
+  }
+
+  namespace test_double_right_angle_brackets
+  {
+
+    template < typename T >
+    struct check {};
+
+    typedef check<void> single_type;
+    typedef check<check<void>> double_type;
+    typedef check<check<check<void>>> triple_type;
+    typedef check<check<check<check<void>>>> quadruple_type;
+
+  }
+
+  namespace test_decltype
+  {
+
+    int
+    f()
+    {
+      int a = 1;
+      decltype(a) b = 2;
+      return a + b;
+    }
+
+  }
+
+  namespace test_type_deduction
+  {
+
+    template < typename T1, typename T2 >
+    struct is_same
+    {
+      static const bool value = false;
+    };
+
+    template < typename T >
+    struct is_same<T, T>
+    {
+      static const bool value = true;
+    };
+
+    template < typename T1, typename T2 >
+    auto
+    add(T1 a1, T2 a2) -> decltype(a1 + a2)
+    {
+      return a1 + a2;
+    }
+
+    int
+    test(const int c, volatile int v)
+    {
+      static_assert(is_same<int, decltype(0)>::value == true, "");
+      static_assert(is_same<int, decltype(c)>::value == false, "");
+      static_assert(is_same<int, decltype(v)>::value == false, "");
+      auto ac = c;
+      auto av = v;
+      auto sumi = ac + av + 'x';
+      auto sumf = ac + av + 1.0;
+      static_assert(is_same<int, decltype(ac)>::value == true, "");
+      static_assert(is_same<int, decltype(av)>::value == true, "");
+      static_assert(is_same<int, decltype(sumi)>::value == true, "");
+      static_assert(is_same<int, decltype(sumf)>::value == false, "");
+      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
+      return (sumf > 0.0) ? sumi : add(c, v);
+    }
+
+  }
+
+  namespace test_noexcept
+  {
+
+    int f() { return 0; }
+    int g() noexcept { return 0; }
+
+    static_assert(noexcept(f()) == false, "");
+    static_assert(noexcept(g()) == true, "");
+
+  }
+
+  namespace test_constexpr
+  {
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
+    {
+      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
+    }
+
+    template < typename CharT >
+    unsigned long constexpr
+    strlen_c(const CharT *const s) noexcept
+    {
+      return strlen_c_r(s, 0UL);
+    }
+
+    static_assert(strlen_c("") == 0UL, "");
+    static_assert(strlen_c("1") == 1UL, "");
+    static_assert(strlen_c("example") == 7UL, "");
+    static_assert(strlen_c("another\0example") == 7UL, "");
+
+  }
+
+  namespace test_rvalue_references
+  {
+
+    template < int N >
+    struct answer
+    {
+      static constexpr int value = N;
+    };
+
+    answer<1> f(int&)       { return answer<1>(); }
+    answer<2> f(const int&) { return answer<2>(); }
+    answer<3> f(int&&)      { return answer<3>(); }
+
+    void
+    test()
+    {
+      int i = 0;
+      const int c = 0;
+      static_assert(decltype(f(i))::value == 1, "");
+      static_assert(decltype(f(c))::value == 2, "");
+      static_assert(decltype(f(0))::value == 3, "");
+    }
+
+  }
+
+  namespace test_uniform_initialization
+  {
+
+    struct test
+    {
+      static const int zero {};
+      static const int one {1};
+    };
+
+    static_assert(test::zero == 0, "");
+    static_assert(test::one == 1, "");
+
+  }
+
+  namespace test_lambdas
+  {
+
+    void
+    test1()
+    {
+      auto lambda1 = [](){};
+      auto lambda2 = lambda1;
+      lambda1();
+      lambda2();
+    }
+
+    int
+    test2()
+    {
+      auto a = [](int i, int j){ return i + j; }(1, 2);
+      auto b = []() -> int { return '0'; }();
+      auto c = [=](){ return a + b; }();
+      auto d = [&](){ return c; }();
+      auto e = [a, &b](int x) mutable {
+        const auto identity = [](int y){ return y; };
+        for (auto i = 0; i < a; ++i)
+          a += b--;
+        return x + identity(a + b);
+      }(0);
+      return a + b + c + d + e;
+    }
+
+    int
+    test3()
+    {
+      const auto nullary = [](){ return 0; };
+      const auto unary = [](int x){ return x; };
+      using nullary_t = decltype(nullary);
+      using unary_t = decltype(unary);
+      const auto higher1st = [](nullary_t f){ return f(); };
+      const auto higher2nd = [unary](nullary_t f1){
+        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
+      };
+      return higher1st(nullary) + higher2nd(nullary)(unary);
+    }
+
+  }
+
+  namespace test_variadic_templates
+  {
+
+    template <int...>
+    struct sum;
+
+    template <int N0, int... N1toN>
+    struct sum<N0, N1toN...>
+    {
+      static constexpr auto value = N0 + sum<N1toN...>::value;
+    };
+
+    template <>
+    struct sum<>
+    {
+      static constexpr auto value = 0;
+    };
+
+    static_assert(sum<>::value == 0, "");
+    static_assert(sum<1>::value == 1, "");
+    static_assert(sum<23>::value == 23, "");
+    static_assert(sum<1, 2>::value == 3, "");
+    static_assert(sum<5, 5, 11>::value == 21, "");
+    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
+
+  }
+
+  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
+  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
+  // because of this.
+  namespace test_template_alias_sfinae
+  {
+
+    struct foo {};
+
+    template<typename T>
+    using member = typename T::member_type;
+
+    template<typename T>
+    void func(...) {}
+
+    template<typename T>
+    void func(member<T>*) {}
+
+    void test();
+
+    void test() { func<foo>(0); }
+
+  }
+
+}  // namespace cxx11
+
+#endif  // __cplusplus >= 201103L
+
+]])
+
+
+dnl  Tests for new features in C++14
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
+
+// If the compiler admits that it is not ready for C++14, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201402L
+
+#error "This is not a C++14 compiler"
+
+#else
+
+namespace cxx14
+{
+
+  namespace test_polymorphic_lambdas
+  {
+
+    int
+    test()
+    {
+      const auto lambda = [](auto&&... args){
+        const auto istiny = [](auto x){
+          return (sizeof(x) == 1UL) ? 1 : 0;
+        };
+        const int aretiny[] = { istiny(args)... };
+        return aretiny[0];
+      };
+      return lambda(1, 1L, 1.0f, '1');
+    }
+
+  }
+
+  namespace test_binary_literals
+  {
+
+    constexpr auto ivii = 0b0000000000101010;
+    static_assert(ivii == 42, "wrong value");
+
+  }
+
+  namespace test_generalized_constexpr
+  {
+
+    template < typename CharT >
+    constexpr unsigned long
+    strlen_c(const CharT *const s) noexcept
+    {
+      auto length = 0UL;
+      for (auto p = s; *p; ++p)
+        ++length;
+      return length;
+    }
+
+    static_assert(strlen_c("") == 0UL, "");
+    static_assert(strlen_c("x") == 1UL, "");
+    static_assert(strlen_c("test") == 4UL, "");
+    static_assert(strlen_c("another\0test") == 7UL, "");
+
+  }
+
+  namespace test_lambda_init_capture
+  {
+
+    int
+    test()
+    {
+      auto x = 0;
+      const auto lambda1 = [a = x](int b){ return a + b; };
+      const auto lambda2 = [a = lambda1(x)](){ return a; };
+      return lambda2();
+    }
+
+  }
+
+  namespace test_digit_seperators
+  {
+
+    constexpr auto ten_million = 100'000'000;
+    static_assert(ten_million == 100000000, "");
+
+  }
+
+  namespace test_return_type_deduction
+  {
+
+    auto f(int& x) { return x; }
+    decltype(auto) g(int& x) { return x; }
+
+    template < typename T1, typename T2 >
+    struct is_same
+    {
+      static constexpr auto value = false;
+    };
+
+    template < typename T >
+    struct is_same<T, T>
+    {
+      static constexpr auto value = true;
+    };
+
+    int
+    test()
+    {
+      auto x = 0;
+      static_assert(is_same<int, decltype(f(x))>::value, "");
+      static_assert(is_same<int&, decltype(g(x))>::value, "");
+      return x;
+    }
+
+  }
+
+}  // namespace cxx14
+
+#endif  // __cplusplus >= 201402L
+
+]])
diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4
new file mode 100644
index 0000000..77ae09c
--- /dev/null
+++ b/m4/ax_pthread.m4
@@ -0,0 +1,283 @@
+# ===========================================================================
+#           http://www.nongnu.org/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+#   This macro figures out how to build C programs using POSIX threads. It
+#   sets the PTHREAD_LIBS output variable to the threads library and linker
+#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+#   flags that are needed. (The user can also force certain compiler
+#   flags/libs to be tested by setting these environment variables.)
+#
+#   Also sets PTHREAD_CC to any special C compiler that is needed for
+#   multi-threaded programs (defaults to the value of CC otherwise). (This
+#   is necessary on AIX to use the special cc_r compiler alias.)
+#
+#   NOTE: You are assumed to not only compile your program with these flags,
+#   but also link it with them as well. e.g. you should link with
+#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+#   If you are only building threads programs, you may wish to use these
+#   variables in your default LIBS, CFLAGS, and CC:
+#
+#     LIBS="$PTHREAD_LIBS $LIBS"
+#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#     CC="$PTHREAD_CC"
+#
+#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
+#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+#   is not found. If ACTION-IF-FOUND is not specified, the default action
+#   will define HAVE_PTHREAD.
+#
+#   Please let the authors know if this macro fails on any platform, or if
+#   you have any other suggestions or comments. This macro was based on work
+#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
+#   grateful for the helpful feedback of numerous users.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 6
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test x"$ax_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+        ;;
+
+	*-darwin*)
+	acx_pthread_flags="-pthread $acx_pthread_flags"
+	;;
+esac
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+		pthread-config)
+		AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
+		if test x"$ax_pthread_config" = xno; then continue; fi
+		PTHREAD_CFLAGS="`pthread-config --cflags`"
+		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+		;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_TRY_LINK([#include <pthread.h>
+	             static void routine(void* a) {a=0;}
+	             static void* start_routine(void* a) {return a;}],
+                    [pthread_t th; pthread_attr_t attr;
+                     pthread_join(th, 0);
+                     pthread_attr_init(&attr);
+                     pthread_cleanup_push(routine, 0);
+                     pthread_create(&th,0,start_routine,0);
+                     pthread_cleanup_pop(0); ],
+                    [ax_pthread_ok=yes])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test "x$ax_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+	AC_MSG_CHECKING([for joinable pthread attribute])
+	attr_name=unknown
+	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+	    AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
+                        [attr_name=$attr; break])
+	done
+        AC_MSG_RESULT($attr_name)
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with xlc_r or cc_r
+	if test x"$GCC" != xyes; then
+          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
+        else
+          PTHREAD_CC=$CC
+	fi
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        ax_pthread_ok=no
+        $2
+fi
+AC_LANG_RESTORE
+])dnl AX_PTHREAD
diff --git a/m4/ax_require_defined.m4 b/m4/ax_require_defined.m4
new file mode 100644
index 0000000..cae1111
--- /dev/null
+++ b/m4/ax_require_defined.m4
@@ -0,0 +1,37 @@
+# ===========================================================================
+#    http://www.gnu.org/software/autoconf-archive/ax_require_defined.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_REQUIRE_DEFINED(MACRO)
+#
+# DESCRIPTION
+#
+#   AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
+#   been defined and thus are available for use.  This avoids random issues
+#   where a macro isn't expanded.  Instead the configure script emits a
+#   non-fatal:
+#
+#     ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
+#
+#   It's like AC_REQUIRE except it doesn't expand the required macro.
+#
+#   Here's an example:
+#
+#     AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
+#
+# LICENSE
+#
+#   Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 1
+
+AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
+  m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
+])dnl AX_REQUIRE_DEFINED
diff --git a/m4/libtool.m4 b/m4/libtool.m4
new file mode 100644
index 0000000..a3fee53
--- /dev/null
+++ b/m4/libtool.m4
@@ -0,0 +1,7377 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+_LT_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\[$]0 --fallback-echo"')dnl "
+  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+  ;;
+esac
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+  lt_cl_success=:
+  test "$silent" = yes &&
+    lt_config_lt_args="$lt_config_lt_args --quiet"
+  exec AS_MESSAGE_LOG_FD>/dev/null
+  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+  exec AS_MESSAGE_LOG_FD>>config.log
+  $lt_cl_success || AS_EXIT(1)
+fi
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=echo
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_SHELL_INIT
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[_LT_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<_LT_EOF
+[$]*
+_LT_EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+  if test "X${echo_test_string+set}" != Xset; then
+    # find a string as large as possible, as long as the shell can cope with it
+    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+      then
+        break
+      fi
+    done
+  fi
+
+  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+     test "X$echo_testing_string" = "X$echo_test_string"; then
+    :
+  else
+    # The Solaris, AIX, and Digital Unix default echo programs unquote
+    # backslashes.  This makes it impossible to quote backslashes using
+    #   echo "$something" | sed 's/\\/\\\\/g'
+    #
+    # So, first we look for a working echo in the user's PATH.
+
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for dir in $PATH /usr/ucb; do
+      IFS="$lt_save_ifs"
+      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        ECHO="$dir/echo"
+        break
+      fi
+    done
+    IFS="$lt_save_ifs"
+
+    if test "X$ECHO" = Xecho; then
+      # We didn't find a better echo, so look for alternatives.
+      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        # This shell has a builtin print -r that does the trick.
+        ECHO='print -r'
+      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+        # If we have ksh, try running configure again with it.
+        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+        export ORIGINAL_CONFIG_SHELL
+        CONFIG_SHELL=/bin/ksh
+        export CONFIG_SHELL
+        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+      else
+        # Try using printf.
+        ECHO='printf %s\n'
+        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	  # Cool, printf works
+	  :
+        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	  export CONFIG_SHELL
+	  SHELL="$CONFIG_SHELL"
+	  export SHELL
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        else
+	  # maybe with a smaller string...
+	  prev=:
+
+	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+	    then
+	      break
+	    fi
+	    prev="$cmd"
+	  done
+
+	  if test "$prev" != 'sed 50q "[$]0"'; then
+	    echo_test_string=`eval $prev`
+	    export echo_test_string
+	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	  else
+	    # Oops.  We lost completely, so just stick with echo.
+	    ECHO=echo
+	  fi
+        fi
+      fi
+    fi
+  fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(lt_ECHO)
+])
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1],
+    [An echo program that does not interpret backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # Some binutils ld are patched to set DT_RUNPATH
+  save_LDFLAGS=$LDFLAGS
+  save_libdir=$libdir
+  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+       [shlibpath_overrides_runpath=yes])])
+  LDFLAGS=$save_LDFLAGS
+  libdir=$save_libdir
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_DECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd* | netbsdelf*-gnu)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC*)
+	    # IBM XL 8.0 on PPC
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd* | netbsdelf*-gnu)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl*)
+	# IBM XL C 8.0/Fortran 10.1 on PPC
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $RM conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+        _LT_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $RM conftest*
+      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_PROG_CXX
+# ------------
+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+# compiler, we have our own version here.
+m4_defun([_LT_PROG_CXX],
+[
+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+AC_PROG_CXX
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_CXX
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_CXX], [])
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[AC_REQUIRE([_LT_PROG_CXX])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 will use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  xl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='echo'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=echo
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='echo'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_PROG_F77
+# ------------
+# Since AC_PROG_F77 is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_F77],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+AC_PROG_F77
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_F77
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_F77], [])
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_REQUIRE([_LT_PROG_F77])dnl
+AC_LANG_PUSH(Fortran 77)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_PROG_FC
+# -----------
+# Since AC_PROG_FC is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_FC],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+AC_PROG_FC
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_FC
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_FC], [])
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_REQUIRE([_LT_PROG_FC])dnl
+AC_LANG_PUSH(Fortran)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
new file mode 100644
index 0000000..34151a3
--- /dev/null
+++ b/m4/ltoptions.m4
@@ -0,0 +1,368 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
new file mode 100644
index 0000000..9000a05
--- /dev/null
+++ b/m4/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
new file mode 100644
index 0000000..f3c5309
--- /dev/null
+++ b/m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3017 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
new file mode 100644
index 0000000..637bb20
--- /dev/null
+++ b/m4/lt~obsolete.m4
@@ -0,0 +1,92 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/scripts/travis-build.sh b/scripts/travis-build.sh
new file mode 100755
index 0000000..1d1beb3
--- /dev/null
+++ b/scripts/travis-build.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+set -ex
+
+setup_env() {
+  # Travis sets CC/CXX to the system toolchain, so our .travis.yml
+  # exports USE_{CC,CXX} for this script to use.
+  if [ -n "$USE_CC" ]; then
+      export CC=$USE_CC
+  fi
+  if [ -n "$USE_CXX" ]; then
+      export CXX=$USE_CXX
+  fi
+  # Use -jN for faster builds. Travis build machines under Docker
+  # have a lot of cores, but are memory-limited, so the kernel
+  # will OOM if we try to use them all, so use at most 4.
+  # See https://github.com/travis-ci/travis-ci/issues/1972
+  export NCPUS=$(getconf _NPROCESSORS_ONLN)
+  export JOBS=$(( $NCPUS < 4 ? $NCPUS : 4 ))
+}
+
+# We have to do this by hand rather than use the coverity addon because of
+# matrix explosion: https://github.com/travis-ci/travis-ci/issues/1975
+# We also do it by hand because when we're throttled, the addon will exit
+# the build immediately and skip the main script!
+coverity_scan() {
+  if [ "${COVERITY_SCAN}" != "true" ] || \
+     [ -n "${TRAVIS_TAG}" ] || \
+     [ "${TRAVIS_PULL_REQUEST}" = "true" ]
+  then
+    echo "Skipping coverity scan."
+    return
+  fi
+
+  export COVERITY_SCAN_PROJECT_NAME="${TRAVIS_REPO_SLUG}"
+  export COVERITY_SCAN_NOTIFICATION_EMAIL="google-breakpad-dev@googlegroups.com"
+  export COVERITY_SCAN_BUILD_COMMAND="make -j${JOBS}"
+  export COVERITY_SCAN_BUILD_COMMAND_PREPEND="git clean -q -x -d -f; git checkout -f; ./configure"
+  export COVERITY_SCAN_BRANCH_PATTERN="master"
+
+  curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || :
+}
+
+# Do an in-tree build and make sure tests pass.
+build() {
+  ./configure --with-tests-as-root
+  make -j${JOBS} check VERBOSE=1
+  make distclean
+}
+
+# Do an out-of-tree build and make sure we can create a release tarball.
+build_out_of_tree() {
+  mkdir -p build/native
+  pushd build/native >/dev/null
+  ../../configure --with-tests-as-root
+  make -j${JOBS} distcheck VERBOSE=1
+  popd >/dev/null
+}
+
+main() {
+  setup_env
+  build
+  build_out_of_tree
+
+  # Do scans last as they like to dirty the tree and some tests
+  # expect a clean tree (like code style checks).
+  coverity_scan
+}
+
+main "$@"
diff --git a/scripts/travis-checkout.sh b/scripts/travis-checkout.sh
new file mode 100755
index 0000000..e5b3332
--- /dev/null
+++ b/scripts/travis-checkout.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+set -ex
+
+get_depot_tools() {
+  cd
+  git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
+  PATH="$HOME/depot_tools:$PATH"
+}
+
+gclient_sync() {
+  # Rename the source dir to match what gclient expects.
+  srcdir=$(basename "$TRAVIS_BUILD_DIR")
+  cd "${TRAVIS_BUILD_DIR}"/..
+  mv "${srcdir}" src
+  gclient config --unmanaged https://github.com/google/breakpad.git
+  gclient sync
+}
+
+main() {
+  get_depot_tools
+  gclient_sync
+}
+
+main "$@"
diff --git a/src/breakpad_googletest_includes.h b/src/breakpad_googletest_includes.h
new file mode 100644
index 0000000..19a3e98
--- /dev/null
+++ b/src/breakpad_googletest_includes.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef BREAKPAD_GOOGLETEST_INCLUDES_H__
+#define BREAKPAD_GOOGLETEST_INCLUDES_H__
+
+#include "gtest/gtest.h"
+#include "gmock/gmock.h"
+
+// If AddressSanitizer is used, NULL pointer dereferences generate SIGILL
+// (illegal instruction) instead of SIGSEGV (segmentation fault).  Also,
+// the number of memory regions differs, so there is no point in running
+// this test if AddressSanitizer is used.
+//
+// Ideally we'd use this attribute to disable ASAN on a per-func basis,
+// but this doesn't seem to actually work, and it's changed names over
+// time.  So just stick with disabling the actual tests.
+// http://crbug.com/304575
+//#define NO_ASAN __attribute__((no_sanitize_address))
+#if defined(__clang__) && defined(__has_feature)
+// Have to keep this check sep from above as newer gcc will barf on it.
+# if __has_feature(address_sanitizer)
+#  define ADDRESS_SANITIZER
+# endif
+#elif defined(__GNUC__) && defined(__SANITIZE_ADDRESS__)
+# define ADDRESS_SANITIZER
+#else
+# undef ADDRESS_SANITIZER
+#endif
+
+#endif  // BREAKPAD_GOOGLETEST_INCLUDES_H__
diff --git a/src/build/all.gyp b/src/build/all.gyp
new file mode 100644
index 0000000..4b59d91
--- /dev/null
+++ b/src/build/all.gyp
@@ -0,0 +1,41 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'targets': [
+    {
+      'target_name': 'All',
+      'type': 'none',
+      'dependencies': [
+        '../common/common.gyp:*',
+        '../processor/processor.gyp:*',
+        '../tools/tools.gyp:*',
+      ],
+    },
+  ],
+}
diff --git a/src/build/common.gypi b/src/build/common.gypi
new file mode 100644
index 0000000..29990c6
--- /dev/null
+++ b/src/build/common.gypi
@@ -0,0 +1,1045 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# IMPORTANT:
+# Please don't directly include this file if you are building via gyp_chromium,
+# since gyp_chromium is automatically forcing its inclusion.
+{
+  'variables': {
+    # Variables expected to be overriden on the GYP command line (-D) or by
+    # ~/.gyp/include.gypi.
+
+    # Putting a variables dict inside another variables dict looks kind of
+    # weird. This is necessary to get these variables defined for the conditions
+    # within this variables dict that operate on these variables.
+    'variables': {
+      'variables': {
+        # Compute the architecture that we're building on.
+        'conditions': [
+          [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
+            # This handles the Linux platforms we generally deal with. Anything
+            # else gets passed through, which probably won't work very well; such
+            # hosts should pass an explicit target_arch to gyp.
+            'host_arch%':
+              '<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")',
+          }, {  # OS!="linux"
+            'host_arch%': 'ia32',
+          }],
+        ],
+      },
+
+      'host_arch%': '<(host_arch)',
+
+      # Default architecture we're building for is the architecture we're
+      # building on.
+      'target_arch%': '<(host_arch)',
+
+      # This variable tells WebCore.gyp and JavaScriptCore.gyp whether they are
+      # are built under a chromium full build (1) or a webkit.org chromium
+      # build (0).
+      'inside_chromium_build%': 1,
+
+      # Set to 1 compile with -fPIC cflag on linux. This is a must for shared
+      # libraries on linux x86-64 and arm.
+      'linux_fpic%': 0,
+
+      # Python version.
+      'python_ver%': '2.5',
+
+      # Determine ARM compilation flags.
+      'arm_version%': 7,
+
+      # Set Neon compilation flags (only meaningful if arm_version==7).
+      'arm_neon%': 1,
+
+      # The system root for cross-compiles. Default: none.
+      'sysroot%': '',
+
+      # On Linux, we build with sse2 for Chromium builds.
+      'disable_sse2%': 0,
+    },
+
+    'target_arch%': '<(target_arch)',
+    'host_arch%': '<(host_arch)',
+    'inside_chromium_build%': '<(inside_chromium_build)',
+    'linux_fpic%': '<(linux_fpic)',
+    'python_ver%': '<(python_ver)',
+    'arm_version%': '<(arm_version)',
+    'arm_neon%': '<(arm_neon)',
+    'sysroot%': '<(sysroot)',
+    'disable_sse2%': '<(disable_sse2)',
+
+    # The release channel that this build targets. This is used to restrict
+    # channel-specific build options, like which installer packages to create.
+    # The default is 'all', which does no channel-specific filtering.
+    'channel%': 'all',
+
+    # Override chromium_mac_pch and set it to 0 to suppress the use of
+    # precompiled headers on the Mac.  Prefix header injection may still be
+    # used, but prefix headers will not be precompiled.  This is useful when
+    # using distcc to distribute a build to compile slaves that don't
+    # share the same compiler executable as the system driving the compilation,
+    # because precompiled headers rely on pointers into a specific compiler
+    # executable's image.  Setting this to 0 is needed to use an experimental
+    # Linux-Mac cross compiler distcc farm.
+    'chromium_mac_pch%': 1,
+
+    # Mac OS X SDK and deployment target support.
+    # The SDK identifies the version of the system headers that will be used,
+    # and corresponds to the MAC_OS_X_VERSION_MAX_ALLOWED compile-time macro.
+    # "Maximum allowed" refers to the operating system version whose APIs are
+    # available in the headers.
+    # The deployment target identifies the minimum system version that the
+    # built products are expected to function on.  It corresponds to the
+    # MAC_OS_X_VERSION_MIN_REQUIRED compile-time macro.
+    # To ensure these macros are available, #include <AvailabilityMacros.h>.
+    # Additional documentation on these macros is available at
+    # http://developer.apple.com/mac/library/technotes/tn2002/tn2064.html#SECTION3
+    # Chrome normally builds with the Mac OS X 10.5 SDK and sets the
+    # deployment target to 10.5.  Other projects, such as O3D, may override
+    # these defaults.
+    'mac_sdk%': '10.5',
+    'mac_deployment_target%': '10.5',
+
+    # Set to 1 to enable code coverage.  In addition to build changes
+    # (e.g. extra CFLAGS), also creates a new target in the src/chrome
+    # project file called "coverage".
+    # Currently ignored on Windows.
+    'coverage%': 0,
+
+    # Although base/allocator lets you select a heap library via an
+    # environment variable, the libcmt shim it uses sometimes gets in
+    # the way.  To disable it entirely, and switch to normal msvcrt, do e.g.
+    #  'win_use_allocator_shim': 0,
+    #  'win_release_RuntimeLibrary': 2
+    # to ~/.gyp/include.gypi, gclient runhooks --force, and do a release build.
+    'win_use_allocator_shim%': 1, # 0 = shim allocator via libcmt; 1 = msvcrt
+
+    # Whether usage of OpenMAX is enabled.
+    'enable_openmax%': 0,
+
+    # TODO(bradnelson): eliminate this when possible.
+    # To allow local gyp files to prevent release.vsprops from being included.
+    # Yes(1) means include release.vsprops.
+    # Once all vsprops settings are migrated into gyp, this can go away.
+    'msvs_use_common_release%': 1,
+
+    # TODO(bradnelson): eliminate this when possible.
+    # To allow local gyp files to override additional linker options for msvs.
+    # Yes(1) means set use the common linker options.
+    'msvs_use_common_linker_extras%': 1,
+
+    # TODO(sgk): eliminate this if possible.
+    # It would be nicer to support this via a setting in 'target_defaults'
+    # in chrome/app/locales/locales.gypi overriding the setting in the
+    # 'Debug' configuration in the 'target_defaults' dict below,
+    # but that doesn't work as we'd like.
+    'msvs_debug_link_incremental%': '2',
+
+    # This is the location of the sandbox binary. Chrome looks for this before
+    # running the zygote process. If found, and SUID, it will be used to
+    # sandbox the zygote process and, thus, all renderer processes.
+    'linux_sandbox_path%': '',
+
+    # Set this to true to enable SELinux support.
+    'selinux%': 0,
+
+    # Strip the binary after dumping symbols.
+    'linux_strip_binary%': 0,
+
+    # Enable TCMalloc.
+    'linux_use_tcmalloc%': 1,
+
+    # Disable TCMalloc's debugallocation.
+    'linux_use_debugallocation%': 0,
+
+    # Disable TCMalloc's heapchecker.
+    'linux_use_heapchecker%': 0,
+
+    # Set to 1 to turn on seccomp sandbox by default.
+    # (Note: this is ignored for official builds.)
+    'linux_use_seccomp_sandbox%': 0,
+
+    # Set to select the Title Case versions of strings in GRD files.
+    'use_titlecase_in_grd%': 0,
+
+    # Used to disable Native Client at compile time, for platforms where it
+    # isn't supported
+    'disable_nacl%': 0,
+
+    # Set Thumb compilation flags.
+    'arm_thumb%': 0,
+
+    # Set ARM fpu compilation flags (only meaningful if arm_version==7 and
+    # arm_neon==0).
+    'arm_fpu%': 'vfpv3',
+
+    # Enable new NPDevice API.
+    'enable_new_npdevice_api%': 0,
+
+    'conditions': [
+      # Whether to use multiple cores to compile with visual studio. This is
+      # optional because it sometimes causes corruption on VS 2005.
+      # It is on by default on VS 2008 and off on VS 2005.
+      ['OS=="win"', {
+        'conditions': [
+          ['MSVS_VERSION=="2005"', {
+            'msvs_multi_core_compile%': 0,
+          },{
+            'msvs_multi_core_compile%': 1,
+          }],
+          # Don't do incremental linking for large modules on 32-bit.
+          ['MSVS_OS_BITS==32', {
+            'msvs_large_module_debug_link_mode%': '1',  # No
+          },{
+            'msvs_large_module_debug_link_mode%': '2',  # Yes
+          }],
+        ],
+        'nacl_win64_defines': [
+          # This flag is used to minimize dependencies when building
+          # Native Client loader for 64-bit Windows.
+          'NACL_WIN64',
+        ],
+      }],
+    ],
+
+    # NOTE: When these end up in the Mac bundle, we need to replace '-' for '_'
+    # so Cocoa is happy (http://crbug.com/20441).
+    'locales': [
+      'am', 'ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en-GB',
+      'en-US', 'es-419', 'es', 'et', 'fi', 'fil', 'fr', 'gu', 'he',
+      'hi', 'hr', 'hu', 'id', 'it', 'ja', 'kn', 'ko', 'lt', 'lv',
+      'ml', 'mr', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru',
+      'sk', 'sl', 'sr', 'sv', 'sw', 'ta', 'te', 'th', 'tr', 'uk',
+      'vi', 'zh-CN', 'zh-TW',
+    ],
+  },
+  'target_defaults': {
+    'includes': [
+      'filename_rules.gypi',
+    ],
+    'variables': {
+      # See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html
+      'mac_release_optimization%': '3', # Use -O3 unless overridden
+      'mac_debug_optimization%': '0',   # Use -O0 unless overridden
+      # See http://msdn.microsoft.com/en-us/library/aa652360(VS.71).aspx
+      'win_release_Optimization%': '2', # 2 = /Os
+      'win_debug_Optimization%': '0',   # 0 = /Od
+      # See http://msdn.microsoft.com/en-us/library/aa652367(VS.71).aspx
+      'win_release_RuntimeLibrary%': '0', # 0 = /MT (nondebug static)
+      'win_debug_RuntimeLibrary%': '1',   # 1 = /MTd (debug static)
+
+      'release_extra_cflags%': '',
+      'debug_extra_cflags%': '',
+      'release_valgrind_build%': 0,
+    },
+    'conditions': [
+      ['selinux==1', {
+        'defines': ['CHROMIUM_SELINUX=1'],
+      }],
+      ['win_use_allocator_shim==0', {
+        'conditions': [
+          ['OS=="win"', {
+            'defines': ['NO_TCMALLOC'],
+          }],
+        ],
+      }],
+      ['coverage!=0', {
+        'conditions': [
+          ['OS=="mac"', {
+            'xcode_settings': {
+              'GCC_INSTRUMENT_PROGRAM_FLOW_ARCS': 'YES',  # -fprofile-arcs
+              'GCC_GENERATE_TEST_COVERAGE_FILES': 'YES',  # -ftest-coverage
+            },
+            # Add -lgcov for types executable, shared_library, and
+            # loadable_module; not for static_library.
+            # This is a delayed conditional.
+            'target_conditions': [
+              ['_type!="static_library"', {
+                'xcode_settings': { 'OTHER_LDFLAGS': [ '-lgcov' ] },
+              }],
+            ],
+          }],
+          # Linux gyp (into scons) doesn't like target_conditions?
+          # TODO(???): track down why 'target_conditions' doesn't work
+          # on Linux gyp into scons like it does on Mac gyp into xcodeproj.
+          ['OS=="linux"', {
+            'cflags': [ '-ftest-coverage',
+                        '-fprofile-arcs' ],
+            'link_settings': { 'libraries': [ '-lgcov' ] },
+          }],
+          # Finally, for Windows, we simply turn on profiling.
+          ['OS=="win"', {
+            'msvs_settings': {
+              'VCLinkerTool': {
+                'Profile': 'true',
+              },
+              'VCCLCompilerTool': {
+                # /Z7, not /Zi, so coverage is happyb
+                'DebugInformationFormat': '1',
+                'AdditionalOptions': ['/Yd'],
+              }
+            }
+         }],  # OS==win
+        ],  # conditions for coverage
+      }],  # coverage!=0
+    ],  # conditions for 'target_defaults'
+    'target_conditions': [
+      [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
+        'cflags!': [
+          '-Wall',
+          '-Wextra',
+          '-Werror',
+        ],
+      }],
+      [ 'OS=="win"', {
+        'defines': [
+          '_CRT_SECURE_NO_DEPRECATE',
+          '_CRT_NONSTDC_NO_WARNINGS',
+          '_CRT_NONSTDC_NO_DEPRECATE',
+          # This is required for ATL to use XP-safe versions of its functions.
+          '_USING_V110_SDK71_',
+        ],
+        'msvs_disabled_warnings': [4800],
+        'msvs_settings': {
+          'VCCLCompilerTool': {
+            'WarnAsError': 'true',
+            'Detect64BitPortabilityProblems': 'false',
+          },
+        },
+      }],
+      [ 'OS=="mac"', {
+        'xcode_settings': {
+          'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',
+          'WARNING_CFLAGS!': ['-Wall'],
+        },
+      }],
+    ],  # target_conditions for 'target_defaults'
+    'default_configuration': 'Debug',
+    'configurations': {
+      # VCLinkerTool LinkIncremental values below:
+      #   0 == default
+      #   1 == /INCREMENTAL:NO
+      #   2 == /INCREMENTAL
+      # Debug links incremental, Release does not.
+      #
+      # Abstract base configurations to cover common
+      # attributes.
+      #
+      'Common_Base': {
+        'abstract': 1,
+        'msvs_configuration_attributes': {
+          'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
+          'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
+          'CharacterSet': '1',
+        },
+      },
+      'x86_Base': {
+        'abstract': 1,
+        'msvs_settings': {
+          'VCLinkerTool': {
+            'MinimumRequiredVersion': '5.01',  # XP.
+            'TargetMachine': '1',
+          },
+        },
+        'msvs_configuration_platform': 'Win32',
+      },
+      'x64_Base': {
+        'abstract': 1,
+        'msvs_configuration_platform': 'x64',
+        'msvs_settings': {
+          'VCLinkerTool': {
+            'TargetMachine': '17', # x86 - 64
+            'AdditionalLibraryDirectories!':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
+            'AdditionalLibraryDirectories':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib/x64'],
+          },
+          'VCLibrarianTool': {
+            'AdditionalLibraryDirectories!':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
+            'AdditionalLibraryDirectories':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib/x64'],
+          },
+        },
+        'defines': [
+          # Not sure if tcmalloc works on 64-bit Windows.
+          'NO_TCMALLOC',
+        ],
+      },
+      'Debug_Base': {
+        'abstract': 1,
+        'xcode_settings': {
+          'COPY_PHASE_STRIP': 'NO',
+          'GCC_OPTIMIZATION_LEVEL': '<(mac_debug_optimization)',
+          'OTHER_CFLAGS': [ '<@(debug_extra_cflags)', ],
+        },
+        'msvs_settings': {
+          'VCCLCompilerTool': {
+            'Optimization': '<(win_debug_Optimization)',
+            'PreprocessorDefinitions': ['_DEBUG'],
+            'BasicRuntimeChecks': '3',
+            'RuntimeLibrary': '<(win_debug_RuntimeLibrary)',
+          },
+          'VCLinkerTool': {
+            'LinkIncremental': '<(msvs_debug_link_incremental)',
+          },
+          'VCResourceCompilerTool': {
+            'PreprocessorDefinitions': ['_DEBUG'],
+          },
+        },
+        'conditions': [
+          ['OS=="linux"', {
+            'cflags': [
+              '<@(debug_extra_cflags)',
+            ],
+          }],
+        ],
+      },
+      'Release_Base': {
+        'abstract': 1,
+        'defines': [
+          'NDEBUG',
+        ],
+        'xcode_settings': {
+          'DEAD_CODE_STRIPPING': 'YES',  # -Wl,-dead_strip
+          'GCC_OPTIMIZATION_LEVEL': '<(mac_release_optimization)',
+          'OTHER_CFLAGS': [ '<@(release_extra_cflags)', ],
+        },
+        'msvs_settings': {
+          'VCCLCompilerTool': {
+            'Optimization': '<(win_release_Optimization)',
+            'RuntimeLibrary': '<(win_release_RuntimeLibrary)',
+          },
+          'VCLinkerTool': {
+            'LinkIncremental': '1',
+          },
+        },
+        'conditions': [
+          ['release_valgrind_build==0', {
+            'defines': ['NVALGRIND'],
+          }],
+          ['win_use_allocator_shim==0', {
+            'defines': ['NO_TCMALLOC'],
+          }],
+          ['win_release_RuntimeLibrary==2', {
+            # Visual C++ 2008 barfs when building anything with /MD (msvcrt):
+            #  VC\include\typeinfo(139) : warning C4275: non dll-interface
+            #  class 'stdext::exception' used as base for dll-interface
+            #  class 'std::bad_cast'
+            'msvs_disabled_warnings': [4275],
+          }],
+          ['OS=="linux"', {
+            'cflags': [
+             '<@(release_extra_cflags)',
+            ],
+          }],
+        ],
+      },
+      'Purify_Base': {
+        'abstract': 1,
+        'defines': [
+          'PURIFY',
+          'NO_TCMALLOC',
+        ],
+        'msvs_settings': {
+          'VCCLCompilerTool': {
+            'Optimization': '0',
+            'RuntimeLibrary': '0',
+            'BufferSecurityCheck': 'false',
+          },
+          'VCLinkerTool': {
+            'EnableCOMDATFolding': '1',
+            'LinkIncremental': '1',
+          },
+        },
+      },
+      #
+      # Concrete configurations
+      #
+      'Debug': {
+        'inherit_from': ['Common_Base', 'x86_Base', 'Debug_Base'],
+      },
+      'Release': {
+        'inherit_from': ['Common_Base', 'x86_Base', 'Release_Base'],
+        'conditions': [
+          ['msvs_use_common_release', {
+            'defines': ['OFFICIAL_BUILD'],
+            'msvs_settings': {
+              'VCCLCompilerTool': {
+                'Optimization': '3',
+                'StringPooling': 'true',
+                'OmitFramePointers': 'true',
+                'InlineFunctionExpansion': '2',
+                'EnableIntrinsicFunctions': 'true',
+                'FavorSizeOrSpeed': '2',
+                'OmitFramePointers': 'true',
+                'EnableFiberSafeOptimizations': 'true',
+                'WholeProgramOptimization': 'true',
+              },
+              'VCLibrarianTool': {
+                'AdditionalOptions': ['/ltcg', '/expectedoutputsize:120000000'],
+              },
+              'VCLinkerTool': {
+                'LinkIncremental': '1',
+                'OptimizeReferences': '2',
+                'EnableCOMDATFolding': '2',
+                'OptimizeForWindows98': '1',
+                'LinkTimeCodeGeneration': '1',
+              },
+            },
+          }],
+        ]
+      },
+      'conditions': [
+        [ 'OS=="win"', {
+          # TODO(bradnelson): add a gyp mechanism to make this more graceful.
+          'Purify': {
+            'inherit_from': ['Common_Base', 'x86_Base', 'Release_Base', 'Purify'],
+          },
+          'Debug_x64': {
+            'inherit_from': ['Common_Base', 'x64_Base', 'Debug_Base'],
+          },
+          'Release_x64': {
+            'inherit_from': ['Common_Base', 'x64_Base', 'Release_Base'],
+          },
+          'Purify_x64': {
+            'inherit_from': ['Common_Base', 'x64_Base', 'Release_Base', 'Purify_Base'],
+          },
+        }],
+      ],
+    },
+  },
+  'conditions': [
+    ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
+      'target_defaults': {
+        # Enable -Werror by default, but put it in a variable so it can
+        # be disabled in ~/.gyp/include.gypi on the valgrind builders.
+        'variables': {
+          # Use -fno-strict-aliasing by default since gcc 4.4 has periodic
+          # issues that slip through the cracks. We could do this just for
+          # gcc 4.4 but it makes more sense to be consistent on all
+          # compilers in use. TODO(Craig): turn this off again when
+          # there is some 4.4 test infrastructure in place and existing
+          # aliasing issues have been fixed.
+          'no_strict_aliasing%': 1,
+          'conditions': [['OS=="linux"', {'werror%': '-Werror',}],
+                         ['OS=="freebsd"', {'werror%': '',}],
+                         ['OS=="openbsd"', {'werror%': '',}],
+          ],
+        },
+        'cflags': [
+          '<(werror)',  # See note above about the werror variable.
+          '-pthread',
+          '-fno-exceptions',
+          '-Wall',
+          # TODO(evan): turn this back on once all the builds work.
+          # '-Wextra',
+          # Don't warn about unused function params.  We use those everywhere.
+          '-Wno-unused-parameter',
+          # Don't warn about the "struct foo f = {0};" initialization pattern.
+          '-Wno-missing-field-initializers',
+          '-D_FILE_OFFSET_BITS=64',
+          # Don't export any symbols (for example, to plugins we dlopen()).
+          # Note: this is *required* to make some plugins work.
+          '-fvisibility=hidden',
+        ],
+        'cflags_cc': [
+          '-frtti',
+          '-fno-threadsafe-statics',
+          # Make inline functions have hidden visiblity by default.
+          # Surprisingly, not covered by -fvisibility=hidden.
+          '-fvisibility-inlines-hidden',
+        ],
+        'ldflags': [
+          '-pthread', '-Wl,-z,noexecstack',
+        ],
+        'scons_variable_settings': {
+          'LIBPATH': ['$LIB_DIR'],
+          # Linking of large files uses lots of RAM, so serialize links
+          # using the handy flock command from util-linux.
+          'FLOCK_LINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
+          'FLOCK_SHLINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
+          'FLOCK_LDMODULE': ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
+
+          # We have several cases where archives depend on each other in
+          # a cyclic fashion.  Since the GNU linker does only a single
+          # pass over the archives we surround the libraries with
+          # --start-group and --end-group (aka -( and -) ). That causes
+          # ld to loop over the group until no more undefined symbols
+          # are found. In an ideal world we would only make groups from
+          # those libraries which we knew to be in cycles. However,
+          # that's tough with SCons, so we bodge it by making all the
+          # archives a group by redefining the linking command here.
+          #
+          # TODO:  investigate whether we still have cycles that
+          # require --{start,end}-group.  There has been a lot of
+          # refactoring since this was first coded, which might have
+          # eliminated the circular dependencies.
+          #
+          # Note:  $_LIBDIRFLAGS comes before ${LINK,SHLINK,LDMODULE}FLAGS
+          # so that we prefer our own built libraries (e.g. -lpng) to
+          # system versions of libraries that pkg-config might turn up.
+          # TODO(sgk): investigate handling this not by re-ordering the
+          # flags this way, but by adding a hook to use the SCons
+          # ParseFlags() option on the output from pkg-config.
+          'LINKCOM': [['$FLOCK_LINK', '-o', '$TARGET',
+                       '$_LIBDIRFLAGS', '$LINKFLAGS', '$SOURCES',
+                       '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
+          'SHLINKCOM': [['$FLOCK_SHLINK', '-o', '$TARGET',
+                         '$_LIBDIRFLAGS', '$SHLINKFLAGS', '$SOURCES',
+                         '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
+          'LDMODULECOM': [['$FLOCK_LDMODULE', '-o', '$TARGET',
+                           '$_LIBDIRFLAGS', '$LDMODULEFLAGS', '$SOURCES',
+                           '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
+          'IMPLICIT_COMMAND_DEPENDENCIES': 0,
+        },
+        'scons_import_variables': [
+          'AS',
+          'CC',
+          'CXX',
+          'LINK',
+        ],
+        'scons_propagate_variables': [
+          'AS',
+          'CC',
+          'CCACHE_DIR',
+          'CXX',
+          'DISTCC_DIR',
+          'DISTCC_HOSTS',
+          'HOME',
+          'INCLUDE_SERVER_ARGS',
+          'INCLUDE_SERVER_PORT',
+          'LINK',
+          'CHROME_BUILD_TYPE',
+          'CHROMIUM_BUILD',
+          'OFFICIAL_BUILD',
+        ],
+        'configurations': {
+          'Debug_Base': {
+            'variables': {
+              'debug_optimize%': '0',
+            },
+            'defines': [
+              '_DEBUG',
+            ],
+            'cflags': [
+              '-O>(debug_optimize)',
+              '-g',
+              # One can use '-gstabs' to enable building the debugging
+              # information in STABS format for breakpad's dumpsyms.
+            ],
+            'ldflags': [
+              '-rdynamic',  # Allows backtrace to resolve symbols.
+            ],
+          },
+          'Release_Base': {
+            'variables': {
+              'release_optimize%': '2',
+            },
+            'cflags': [
+              '-O>(release_optimize)',
+              # Don't emit the GCC version ident directives, they just end up
+              # in the .comment section taking up binary size.
+              '-fno-ident',
+              # Put data and code in their own sections, so that unused symbols
+              # can be removed at link time with --gc-sections.
+              '-fdata-sections',
+              '-ffunction-sections',
+            ],
+            'ldflags': [
+              '-Wl,--gc-sections',
+            ],
+          },
+        },
+        'variants': {
+          'coverage': {
+            'cflags': ['-fprofile-arcs', '-ftest-coverage'],
+            'ldflags': ['-fprofile-arcs'],
+          },
+          'profile': {
+            'cflags': ['-pg', '-g'],
+            'ldflags': ['-pg'],
+          },
+          'symbols': {
+            'cflags': ['-g'],
+          },
+        },
+        'conditions': [
+          [ 'target_arch=="ia32"', {
+            'asflags': [
+              # Needed so that libs with .s files (e.g. libicudata.a)
+              # are compatible with the general 32-bit-ness.
+              '-32',
+            ],
+            # All floating-point computations on x87 happens in 80-bit
+            # precision.  Because the C and C++ language standards allow
+            # the compiler to keep the floating-point values in higher
+            # precision than what's specified in the source and doing so
+            # is more efficient than constantly rounding up to 64-bit or
+            # 32-bit precision as specified in the source, the compiler,
+            # especially in the optimized mode, tries very hard to keep
+            # values in x87 floating-point stack (in 80-bit precision)
+            # as long as possible. This has important side effects, that
+            # the real value used in computation may change depending on
+            # how the compiler did the optimization - that is, the value
+            # kept in 80-bit is different than the value rounded down to
+            # 64-bit or 32-bit. There are possible compiler options to make
+            # this behavior consistent (e.g. -ffloat-store would keep all
+            # floating-values in the memory, thus force them to be rounded
+            # to its original precision) but they have significant runtime
+            # performance penalty.
+            #
+            # -mfpmath=sse -msse2 makes the compiler use SSE instructions
+            # which keep floating-point values in SSE registers in its
+            # native precision (32-bit for single precision, and 64-bit for
+            # double precision values). This means the floating-point value
+            # used during computation does not change depending on how the
+            # compiler optimized the code, since the value is always kept
+            # in its specified precision.
+            'conditions': [
+              ['disable_sse2==0', {
+                'cflags': [
+                  '-march=pentium4',
+                  '-msse2',
+                  '-mfpmath=sse',
+                ],
+              }],
+            ],
+            # -mmmx allows mmintrin.h to be used for mmx intrinsics.
+            # video playback is mmx and sse2 optimized.
+            'cflags': [
+              '-m32',
+              '-mmmx',
+            ],
+            'ldflags': [
+              '-m32',
+            ],
+          }],
+          ['target_arch=="arm"', {
+            'target_conditions': [
+              ['_toolset=="target"', {
+                'cflags_cc': [
+                  # The codesourcery arm-2009q3 toolchain warns at that the ABI
+                  # has changed whenever it encounters a varargs function. This
+                  # silences those warnings, as they are not helpful and
+                  # clutter legitimate warnings.
+                  '-Wno-abi',
+                ],
+                'conditions': [
+                  ['arm_thumb == 1', {
+                    'cflags': [
+                    '-mthumb',
+                    # TODO(piman): -Wa,-mimplicit-it=thumb is needed for
+                    # inline assembly that uses condition codes but it's
+                    # suboptimal. Better would be to #ifdef __thumb__ at the
+                    # right place and have a separate thumb path.
+                    '-Wa,-mimplicit-it=thumb',
+                    ]
+                  }],
+                  ['arm_version==7', {
+                    'cflags': [
+                      '-march=armv7-a',
+                      '-mtune=cortex-a8',
+                      '-mfloat-abi=softfp',
+                    ],
+                    'conditions': [
+                      ['arm_neon==1', {
+                        'cflags': [ '-mfpu=neon', ],
+                      }, {
+                        'cflags': [ '-mfpu=<(arm_fpu)', ],
+                      }]
+                    ],
+                  }],
+                ],
+              }],
+            ],
+          }],
+          ['linux_fpic==1', {
+            'cflags': [
+              '-fPIC',
+            ],
+          }],
+          ['sysroot!=""', {
+            'target_conditions': [
+              ['_toolset=="target"', {
+                'cflags': [
+                  '--sysroot=<(sysroot)',
+                ],
+                'ldflags': [
+                  '--sysroot=<(sysroot)',
+                ],
+              }]]
+          }],
+          ['no_strict_aliasing==1', {
+            'cflags': [
+              '-fno-strict-aliasing',
+            ],
+          }],
+          ['linux_use_heapchecker==1', {
+            'variables': {'linux_use_tcmalloc%': 1},
+          }],
+          ['linux_use_tcmalloc==0', {
+            'defines': ['NO_TCMALLOC'],
+          }],
+          ['linux_use_heapchecker==0', {
+            'defines': ['NO_HEAPCHECKER'],
+          }],
+        ],
+      },
+    }],
+    # FreeBSD-specific options; note that most FreeBSD options are set above,
+    # with Linux.
+    ['OS=="freebsd"', {
+      'target_defaults': {
+        'ldflags': [
+          '-Wl,--no-keep-memory',
+        ],
+      },
+    }],
+    ['OS=="solaris"', {
+      'cflags!': ['-fvisibility=hidden'],
+      'cflags_cc!': ['-fvisibility-inlines-hidden'],
+    }],
+    ['OS=="mac"', {
+      'target_defaults': {
+        'variables': {
+          # This should be 'mac_real_dsym%', but there seems to be a bug
+          # with % in variables that are intended to be set to different
+          # values in different targets, like this one.
+          'mac_real_dsym': 0,  # Fake .dSYMs are fine in most cases.
+        },
+        'mac_bundle': 0,
+        'xcode_settings': {
+          'ALWAYS_SEARCH_USER_PATHS': 'NO',
+          'GCC_C_LANGUAGE_STANDARD': 'c99',         # -std=c99
+          'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
+          'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
+                                                    # (Equivalent to -fPIC)
+          'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
+          'GCC_ENABLE_CPP_RTTI': 'YES',             # -frtti
+          'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
+          # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
+          'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
+          'GCC_OBJC_CALL_CXX_CDTORS': 'YES',        # -fobjc-call-cxx-cdtors
+          'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden
+          'GCC_THREADSAFE_STATICS': 'NO',           # -fno-threadsafe-statics
+          'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',    # -Werror
+          'GCC_VERSION': '4.2',
+          'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES',  # -Wnewline-eof
+          # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min
+          'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)',
+          'PREBINDING': 'NO',                       # No -Wl,-prebind
+          'USE_HEADERMAP': 'NO',
+          'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'],
+          'conditions': [
+            ['chromium_mac_pch', {'GCC_PRECOMPILE_PREFIX_HEADER': 'YES'},
+                                 {'GCC_PRECOMPILE_PREFIX_HEADER': 'NO'}
+            ],
+          ],
+        },
+        'target_conditions': [
+          ['_type!="static_library"', {
+            'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
+          }],
+          ['_mac_bundle', {
+            'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']},
+          }],
+        ],  # target_conditions
+      },  # target_defaults
+    }],  # OS=="mac"
+    ['OS=="win"', {
+      'target_defaults': {
+        'defines': [
+          '_WIN32_WINNT=0x0600',
+          'WINVER=0x0600',
+          'WIN32',
+          '_WINDOWS',
+          '_HAS_EXCEPTIONS=0',
+          'NOMINMAX',
+          '_CRT_RAND_S',
+          'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS',
+          'WIN32_LEAN_AND_MEAN',
+          '_SECURE_ATL',
+          '_HAS_TR1=0',
+        ],
+        'msvs_system_include_dirs': [
+          '<(DEPTH)/third_party/platformsdk_win7/files/Include',
+          '$(VSInstallDir)/VC/atlmfc/include',
+        ],
+        'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'],
+        'msvs_disabled_warnings': [
+          4091, 4100, 4127, 4366, 4396, 4503, 4512, 4819, 4995, 4702
+        ],
+        'msvs_settings': {
+          'VCCLCompilerTool': {
+            'MinimalRebuild': 'false',
+            'ExceptionHandling': '0',
+            'BufferSecurityCheck': 'true',
+            'EnableFunctionLevelLinking': 'true',
+            'RuntimeTypeInfo': 'false',
+            'WarningLevel': '4',
+            'WarnAsError': 'true',
+            'DebugInformationFormat': '3',
+            'conditions': [
+              [ 'msvs_multi_core_compile', {
+                'AdditionalOptions': ['/MP'],
+              }],
+            ],
+          },
+          'VCLibrarianTool': {
+            'AdditionalOptions': ['/ignore:4221'],
+            'AdditionalLibraryDirectories':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
+          },
+          'VCLinkerTool': {
+            'AdditionalDependencies': [
+              'wininet.lib',
+              'version.lib',
+              'msimg32.lib',
+              'ws2_32.lib',
+              'usp10.lib',
+              'psapi.lib',
+              'dbghelp.lib',
+            ],
+            'AdditionalLibraryDirectories':
+              ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
+            'GenerateDebugInformation': 'true',
+            'MapFileName': '$(OutDir)\\$(TargetName).map',
+            'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
+            'FixedBaseAddress': '1',
+            # SubSystem values:
+            #   0 == not set
+            #   1 == /SUBSYSTEM:CONSOLE
+            #   2 == /SUBSYSTEM:WINDOWS
+            # Most of the executables we'll ever create are tests
+            # and utilities with console output.
+            'SubSystem': '1',
+          },
+          'VCMIDLTool': {
+            'GenerateStublessProxies': 'true',
+            'TypeLibraryName': '$(InputName).tlb',
+            'OutputDirectory': '$(IntDir)',
+            'HeaderFileName': '$(InputName).h',
+            'DLLDataFileName': 'dlldata.c',
+            'InterfaceIdentifierFileName': '$(InputName)_i.c',
+            'ProxyFileName': '$(InputName)_p.c',
+          },
+          'VCResourceCompilerTool': {
+            'Culture' : '1033',
+            'AdditionalIncludeDirectories': ['<(DEPTH)'],
+          },
+        },
+      },
+    }],
+    ['disable_nacl==1 or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
+      'target_defaults': {
+        'defines': [
+          'DISABLE_NACL',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_use_common_linker_extras', {
+      'target_defaults': {
+        'msvs_settings': {
+          'VCLinkerTool': {
+            'DelayLoadDLLs': [
+              'dbghelp.dll',
+              'dwmapi.dll',
+              'uxtheme.dll',
+            ],
+          },
+        },
+        'configurations': {
+          'x86_Base': {
+            'msvs_settings': {
+              'VCLinkerTool': {
+                'AdditionalOptions': [
+                  '/safeseh',
+                  '/dynamicbase',
+                  '/ignore:4199',
+                  '/ignore:4221',
+                  '/nxcompat',
+                ],
+              },
+            },
+          },
+          'x64_Base': {
+            'msvs_settings': {
+              'VCLinkerTool': {
+                'AdditionalOptions': [
+                  # safeseh is not compatible with x64
+                  '/dynamicbase',
+                  '/ignore:4199',
+                  '/ignore:4221',
+                  '/nxcompat',
+                ],
+              },
+            },
+          },
+        },
+      },
+    }],
+    ['enable_new_npdevice_api==1', {
+      'target_defaults': {
+        'defines': [
+          'ENABLE_NEW_NPDEVICE_API',
+        ],
+      },
+    }],
+  ],
+  'scons_settings': {
+    'sconsbuild_dir': '<(DEPTH)/sconsbuild',
+    'tools': ['ar', 'as', 'gcc', 'g++', 'gnulink', 'chromium_builders'],
+  },
+  'xcode_settings': {
+    # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT!
+    # This block adds *project-wide* configuration settings to each project
+    # file.  It's almost always wrong to put things here.  Specify your
+    # custom xcode_settings in target_defaults to add them to targets instead.
+
+    # In an Xcode Project Info window, the "Base SDK for All Configurations"
+    # setting sets the SDK on a project-wide basis.  In order to get the
+    # configured SDK to show properly in the Xcode UI, SDKROOT must be set
+    # here at the project level.
+    'SDKROOT': 'macosx<(mac_sdk)',  # -isysroot
+
+    # The Xcode generator will look for an xcode_settings section at the root
+    # of each dict and use it to apply settings on a file-wide basis.  Most
+    # settings should not be here, they should be in target-specific
+    # xcode_settings sections, or better yet, should use non-Xcode-specific
+    # settings in target dicts.  SYMROOT is a special case, because many other
+    # Xcode variables depend on it, including variables such as
+    # PROJECT_DERIVED_FILE_DIR.  When a source group corresponding to something
+    # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
+    # files to appear (when present) in the UI as actual files and not red
+    # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
+    # and therefore SYMROOT, needs to be set at the project level.
+    'SYMROOT': '<(DEPTH)/xcodebuild',
+  },
+}
diff --git a/src/build/filename_rules.gypi b/src/build/filename_rules.gypi
new file mode 100644
index 0000000..78cd180
--- /dev/null
+++ b/src/build/filename_rules.gypi
@@ -0,0 +1,57 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'target_conditions': [
+    ['OS!="win"', {
+      'sources/': [
+        ['exclude', '(^|/)windows/'],
+      ],
+    }],
+    ['OS!="linux"', {
+      'sources/': [
+        ['exclude', '(^|/)linux/'],
+      ],
+    }],
+    ['OS!="mac"', {
+      'sources/': [
+        ['exclude', '(^|/)mac/'],
+      ],
+    }],
+    ['OS!="android"', {
+      'sources/': [
+        ['exclude', '(^|/)android/'],
+      ],
+    }],
+    ['OS!="solaris"', {
+      'sources/': [
+        ['exclude', '(^|/)solaris/'],
+      ],
+    }],
+  ],
+}
diff --git a/src/build/gyp_breakpad b/src/build/gyp_breakpad
new file mode 100755
index 0000000..0b8077d
--- /dev/null
+++ b/src/build/gyp_breakpad
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import platform
+import sys
+
+script_dir = os.path.dirname(os.path.realpath(__file__))
+breakpad_root = os.path.abspath(os.path.join(script_dir, os.pardir))
+
+sys.path.insert(0, os.path.join(breakpad_root, 'tools', 'gyp', 'pylib'))
+import gyp
+
+def run_gyp(args):
+  rc = gyp.main(args)
+  if rc != 0:
+    print 'Error running GYP'
+    sys.exit(rc)
+
+
+def main():
+  args = sys.argv[1:]
+  args.append(os.path.join(script_dir, 'all.gyp'))
+
+  args.append('-I')
+  args.append(os.path.join(breakpad_root, 'build', 'common.gypi'))
+
+  args.extend(['-D', 'gyp_output_dir=out'])
+
+  # Set the GYP DEPTH variable to the root of the project.
+  args.append('--depth=' + os.path.relpath(breakpad_root))
+
+  print 'Updating projects from gyp files...'
+  sys.stdout.flush()
+
+  run_gyp(args)
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/src/build/testing.gyp b/src/build/testing.gyp
new file mode 100644
index 0000000..6a459a6
--- /dev/null
+++ b/src/build/testing.gyp
@@ -0,0 +1,90 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'targets': [
+    {
+      'target_name': 'gtest',
+      'type': 'static_library',
+      'sources': [
+        '../testing/googletest/src/gtest-all.cc',
+      ],
+      'include_dirs': [
+        '../testing/googletest',
+        '../testing/googletest/include',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../testing/googletest/include',
+        ],
+      },
+    },
+    {
+      'target_name': 'gtest_main',
+      'type': 'static_library',
+      'dependencies': [
+        'gtest',
+      ],
+      'sources': [
+        '../testing/googletest/src/gtest_main.cc',
+      ],
+    },
+    {
+      'target_name': 'gmock',
+      'type': 'static_library',
+      'dependencies': [
+        'gtest',
+      ],
+      'sources': [
+        '../testing/googlemock/src/gmock-all.cc',
+      ],
+      'include_dirs': [
+        '../testing/googlemock',
+        '../testing/googlemock/include',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../testing/googlemock/include',
+        ],
+      },
+      'export_dependent_settings': [
+        'gtest',
+      ],
+    },
+    {
+      'target_name': 'gmock_main',
+      'type': 'static_library',
+      'dependencies': [
+        'gmock',
+      ],
+      'sources': [
+        '../testing/googlemock/src/gmock_main.cc',
+      ],
+    },
+  ],
+}
diff --git a/src/client/apple/Framework/BreakpadDefines.h b/src/client/apple/Framework/BreakpadDefines.h
new file mode 100644
index 0000000..410a5a6
--- /dev/null
+++ b/src/client/apple/Framework/BreakpadDefines.h
@@ -0,0 +1,73 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Keys for configuration file
+#define kReporterMinidumpDirectoryKey "MinidumpDir"
+#define kReporterMinidumpIDKey        "MinidumpID"
+
+// Filename for recording uploaded IDs
+#define kReporterLogFilename          "uploads.log"
+
+// The default subdirectory of the Library to put crash dumps in
+// The subdirectory is
+//  ~/Library/<kDefaultLibrarySubdirectory>/<GoogleBreakpadProduct>
+#define kDefaultLibrarySubdirectory   "Breakpad"
+
+// Specify some special keys to be used in the configuration file that is
+// generated by Breakpad and consumed by the crash_sender.
+#define BREAKPAD_PRODUCT               "BreakpadProduct"
+#define BREAKPAD_PRODUCT_DISPLAY       "BreakpadProductDisplay"
+#define BREAKPAD_VERSION               "BreakpadVersion"
+#define BREAKPAD_VENDOR                "BreakpadVendor"
+#define BREAKPAD_URL                   "BreakpadURL"
+#define BREAKPAD_REPORT_INTERVAL       "BreakpadReportInterval"
+#define BREAKPAD_SKIP_CONFIRM          "BreakpadSkipConfirm"
+#define BREAKPAD_CONFIRM_TIMEOUT       "BreakpadConfirmTimeout"
+#define BREAKPAD_SEND_AND_EXIT         "BreakpadSendAndExit"
+#define BREAKPAD_DUMP_DIRECTORY        "BreakpadMinidumpLocation"
+#define BREAKPAD_INSPECTOR_LOCATION    "BreakpadInspectorLocation"
+#define BREAKPAD_REPORTER_EXE_LOCATION \
+  "BreakpadReporterExeLocation"
+#define BREAKPAD_LOGFILES              "BreakpadLogFiles"
+#define BREAKPAD_LOGFILE_UPLOAD_SIZE   "BreakpadLogFileTailSize"
+#define BREAKPAD_REQUEST_COMMENTS      "BreakpadRequestComments"
+#define BREAKPAD_COMMENTS              "BreakpadComments"
+#define BREAKPAD_REQUEST_EMAIL         "BreakpadRequestEmail"
+#define BREAKPAD_EMAIL                 "BreakpadEmail"
+#define BREAKPAD_SERVER_TYPE           "BreakpadServerType"
+#define BREAKPAD_SERVER_PARAMETER_DICT "BreakpadServerParameters"
+#define BREAKPAD_IN_PROCESS            "BreakpadInProcess"
+
+// The keys below are NOT user supplied, and are used internally.
+#define BREAKPAD_PROCESS_START_TIME       "BreakpadProcStartTime"
+#define BREAKPAD_PROCESS_UP_TIME          "BreakpadProcessUpTime"
+#define BREAKPAD_PROCESS_CRASH_TIME       "BreakpadProcessCrashTime"
+#define BREAKPAD_LOGFILE_KEY_PREFIX       "BreakpadAppLogFile"
+#define BREAKPAD_SERVER_PARAMETER_PREFIX  "BreakpadServerParameterPrefix_"
+#define BREAKPAD_ON_DEMAND                "BreakpadOnDemand"
diff --git a/src/client/ios/Breakpad.h b/src/client/ios/Breakpad.h
new file mode 100644
index 0000000..6c9b8bd
--- /dev/null
+++ b/src/client/ios/Breakpad.h
@@ -0,0 +1,260 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Framework to provide a simple C API to crash reporting for
+// applications.  By default, if any machine-level exception (e.g.,
+// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef
+// object as follows:
+//
+// 1. Create a minidump file (see Breakpad for details)
+// 2. Create a config file.
+//
+// These files can then be uploaded to a server.
+
+typedef void* BreakpadRef;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <Foundation/Foundation.h>
+
+#include <client/apple/Framework/BreakpadDefines.h>
+
+// The keys in the dictionary returned by |BreakpadGenerateReport|.
+#define BREAKPAD_OUTPUT_DUMP_FILE   "BreakpadDumpFile"
+#define BREAKPAD_OUTPUT_CONFIG_FILE "BreakpadConfigFile"
+
+// Optional user-defined function to decide if we should handle this crash or
+// forward it along.
+// Return true if you want Breakpad to handle it.
+// Return false if you want Breakpad to skip it
+// The exception handler always returns false, as if SEND_AND_EXIT were false
+// (which means the next exception handler will take the exception)
+typedef bool (*BreakpadFilterCallback)(int exception_type,
+                                       int exception_code,
+                                       mach_port_t crashing_thread,
+                                       void* context);
+
+// Optional user-defined function that will be called after a network upload
+// of a crash report.
+// |report_id| will be the id returned by the server, or "ERR" if an error
+// occurred.
+// |error| will contain the error, or nil if no error occured.
+typedef void (*BreakpadUploadCompletionCallback)(NSString* report_id,
+                                                 NSError* error);
+
+// Create a new BreakpadRef object and install it as an exception
+// handler.  The |parameters| will typically be the contents of your
+// bundle's Info.plist.
+//
+// You can also specify these additional keys for customizable behavior:
+// Key:                           Value:
+// BREAKPAD_PRODUCT               Product name (e.g., "MyAwesomeProduct")
+//                                This one is used as the key to identify
+//                                the product when uploading. Falls back to
+//                                CFBundleName if not specified.
+//                                REQUIRED
+//
+// BREAKPAD_PRODUCT_DISPLAY       This is the display name, e.g. a pretty
+//                                name for the product when the crash_sender
+//                                pops up UI for the user. Falls back first to
+//                                CFBundleDisplayName and then to
+//                                BREAKPAD_PRODUCT if not specified.
+//
+// BREAKPAD_VERSION               Product version (e.g., 1.2.3), used
+//                                as metadata for crash report. Falls back to
+//                                CFBundleVersion if not specified.
+//                                REQUIRED
+//
+// BREAKPAD_VENDOR                Vendor name, used in UI (e.g. "A report has
+//                                been created that you can send to <vendor>")
+//
+// BREAKPAD_URL                   URL destination for reporting
+//                                REQUIRED
+//
+// BREAKPAD_DUMP_DIRECTORY        The directory to store crash-dumps
+//                                in. By default, we use
+//                                ~/Library/Cache/Breakpad/<BREAKPAD_PRODUCT>
+//                                The path you specify here is tilde-expanded.
+//
+// BREAKPAD_SERVER_TYPE           A parameter that tells Breakpad how to
+//                                rewrite the upload parameters for a specific
+//                                server type.  The currently valid values are
+//                                'socorro' or 'google'.  If you want to add
+//                                other types, see the function in
+//                                crash_report_sender.m that maps parameters to
+//                                URL parameters.  Defaults to 'google'.
+//
+// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static
+//                                parameters that are uploaded to the
+//                                server.  The parameters are sent as
+//                                is to the crash server.  Their
+//                                content isn't added to the minidump
+//                                but pass as URL parameters when
+//                                uploading theminidump to the crash
+//                                server.
+//=============================================================================
+// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are
+// required to have non-NULL values.  By default, the BREAKPAD_PRODUCT
+// will be the CFBundleName and the BREAKPAD_VERSION will be the
+// CFBundleVersion when these keys are present in the bundle's
+// Info.plist, which is usually passed in to BreakpadCreate() as an
+// NSDictionary (you could also pass in another dictionary that had
+// the same keys configured).  If the BREAKPAD_PRODUCT or
+// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will
+// fail.  You have been warned.
+//
+// If you are running in a debugger, Breakpad will not install, unless the
+// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero.
+//
+//=============================================================================
+// The following are NOT user-supplied but are documented here for
+// completeness.  They are calculated by Breakpad during initialization &
+// crash-dump generation, or entered in by the user.
+//
+// BREAKPAD_PROCESS_START_TIME       The time, in seconds since the Epoch, the
+//                                   process started
+//
+// BREAKPAD_PROCESS_CRASH_TIME       The time, in seconds since the Epoch, the
+//                                   process crashed.
+//
+// BREAKPAD_PROCESS_UP_TIME          The total time in milliseconds the process
+//                                   has been running.  This parameter is not
+//                                   set until the crash-dump-generation phase.
+//
+// BREAKPAD_SERVER_PARAMETER_PREFIX  This prefix is used by Breakpad
+//                                   internally, because Breakpad uses
+//                                   the same dictionary internally to
+//                                   track both its internal
+//                                   configuration parameters and
+//                                   parameters meant to be uploaded
+//                                   to the server.  This string is
+//                                   used internally by Breakpad to
+//                                   prefix user-supplied parameter
+//                                   names so those can be sent to the
+//                                   server without leaking Breakpad's
+//                                   internal values.
+
+// Returns a new BreakpadRef object on success, NULL otherwise.
+BreakpadRef BreakpadCreate(NSDictionary* parameters);
+
+// Uninstall and release the data associated with |ref|.
+void BreakpadRelease(BreakpadRef ref);
+
+// User defined key and value string storage.  Generally this is used
+// to configure Breakpad's internal operation, such as whether the
+// crash_sender should prompt the user, or the filesystem location for
+// the minidump file.  See Breakpad.h for some parameters that can be
+// set.  Anything longer than 255 bytes will be truncated. Note that
+// the string is converted to UTF8 before truncation, so any multibyte
+// character that straddles the 255(256 - 1 for terminator) byte limit
+// will be mangled.
+//
+// A maximum number of 64 key/value pairs are supported.  An assert()
+// will fire if more than this number are set.  Unfortunately, right
+// now, the same dictionary is used for both Breakpad's parameters AND
+// the Upload parameters.
+//
+// TODO (nealsid): Investigate how necessary this is if we don't
+// automatically upload parameters to the server anymore.
+// TODO (nealsid): separate server parameter dictionary from the
+// dictionary used to configure Breakpad, and document limits for each
+// independently.
+void BreakpadSetKeyValue(BreakpadRef ref, NSString* key, NSString* value);
+NSString* BreakpadKeyValue(BreakpadRef ref, NSString* key);
+void BreakpadRemoveKeyValue(BreakpadRef ref, NSString* key);
+
+// You can use this method to specify parameters that will be uploaded
+// to the crash server.  They will be automatically encoded as
+// necessary.  Note that as mentioned above there are limits on both
+// the number of keys and their length.
+void BreakpadAddUploadParameter(BreakpadRef ref, NSString* key,
+                                NSString* value);
+
+// This method will remove a previously-added parameter from the
+// upload parameter set.
+void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString* key);
+
+// Method to handle uploading data to the server
+
+// Returns the number of crash reports waiting to send to the server.
+int BreakpadGetCrashReportCount(BreakpadRef ref);
+
+// Returns the next upload configuration. The report file is deleted.
+NSDictionary* BreakpadGetNextReportConfiguration(BreakpadRef ref);
+
+// Returns the date of the most recent crash report.
+NSDate* BreakpadGetDateOfMostRecentCrashReport(BreakpadRef ref);
+
+// Upload next report to the server.
+void BreakpadUploadNextReport(BreakpadRef ref);
+
+// Upload next report to the server.
+// |server_parameters| is additional server parameters to send.
+void BreakpadUploadNextReportWithParameters(
+    BreakpadRef ref,
+    NSDictionary* server_parameters,
+    BreakpadUploadCompletionCallback callback);
+
+// Upload a report to the server.
+// |server_parameters| is additional server parameters to send.
+// |configuration| is the configuration of the breakpad report to send.
+void BreakpadUploadReportWithParametersAndConfiguration(
+    BreakpadRef ref,
+    NSDictionary* server_parameters,
+    NSDictionary* configuration,
+    BreakpadUploadCompletionCallback callback);
+
+// Handles the network response of a breakpad upload. This function is needed if
+// the actual upload is done by the Breakpad client.
+// |configuration| is the configuration of the upload. It must contain the same
+// fields as the configuration passed to
+// BreakpadUploadReportWithParametersAndConfiguration.
+// |data| and |error| contain the network response.
+void BreakpadHandleNetworkResponse(BreakpadRef ref,
+                                   NSDictionary* configuration,
+                                   NSData* data,
+                                   NSError* error);
+
+// Upload a file to the server. |data| is the content of the file to sent.
+// |server_parameters| is additional server parameters to send.
+void BreakpadUploadData(BreakpadRef ref, NSData* data, NSString* name,
+                        NSDictionary* server_parameters);
+
+// Generate a breakpad minidump and configuration file in the dump directory.
+// The report will be available for uploading. The paths of the created files
+// are returned in the dictionary. |server_parameters| is additional server
+// parameters to add in the config file.
+NSDictionary* BreakpadGenerateReport(BreakpadRef ref,
+                                     NSDictionary* server_parameters);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/client/ios/Breakpad.mm b/src/client/ios/Breakpad.mm
new file mode 100644
index 0000000..11c5174
--- /dev/null
+++ b/src/client/ios/Breakpad.mm
@@ -0,0 +1,987 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#define IGNORE_DEBUGGER "BREAKPAD_IGNORE_DEBUGGER"
+
+#import "client/ios/Breakpad.h"
+
+#include <assert.h>
+#import <Foundation/Foundation.h>
+#include <pthread.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+#include <TargetConditionals.h>
+
+#include <string>
+
+#import "client/ios/handler/ios_exception_minidump_generator.h"
+#import "client/mac/crash_generation/ConfigFile.h"
+#import "client/mac/handler/minidump_generator.h"
+#import "client/mac/handler/protected_memory_allocator.h"
+#import "client/mac/sender/uploader.h"
+#import "common/long_string_dictionary.h"
+
+#if !TARGET_OS_TV && !TARGET_OS_WATCH
+#import "client/mac/handler/exception_handler.h"
+#else
+#import "client/ios/exception_handler_no_mach.h"
+#endif  // !TARGET_OS_TV && !TARGET_OS_WATCH
+
+#if !defined(__EXCEPTIONS) || (__clang__ && !__has_feature(cxx_exceptions))
+// This file uses C++ try/catch (but shouldn't). Duplicate the macros from
+// <c++/4.2.1/exception_defines.h> allowing this file to work properly with
+// exceptions disabled even when other C++ libraries are used. #undef the try
+// and catch macros first in case libstdc++ is in use and has already provided
+// its own definitions.
+#undef try
+#define try       if (true)
+#undef catch
+#define catch(X)  if (false)
+#endif  // __EXCEPTIONS
+
+using google_breakpad::ConfigFile;
+using google_breakpad::EnsureDirectoryPathExists;
+using google_breakpad::LongStringDictionary;
+
+//=============================================================================
+// We want any memory allocations which are used by breakpad during the
+// exception handling process (after a crash has happened) to be read-only
+// to prevent them from being smashed before a crash occurs.  Unfortunately
+// we cannot protect against smashes to our exception handling thread's
+// stack.
+//
+// NOTE: Any memory allocations which are not used during the exception
+// handling process may be allocated in the normal ways.
+//
+// The ProtectedMemoryAllocator class provides an Allocate() method which
+// we'll using in conjunction with placement operator new() to control
+// allocation of C++ objects.  Note that we don't use operator delete()
+// but instead call the objects destructor directly:  object->~ClassName();
+//
+ProtectedMemoryAllocator* gMasterAllocator = NULL;
+ProtectedMemoryAllocator* gKeyValueAllocator = NULL;
+ProtectedMemoryAllocator* gBreakpadAllocator = NULL;
+
+// Mutex for thread-safe access to the key/value dictionary used by breakpad.
+// It's a global instead of an instance variable of Breakpad
+// since it can't live in a protected memory area.
+pthread_mutex_t gDictionaryMutex;
+
+//=============================================================================
+// Stack-based object for thread-safe access to a memory-protected region.
+// It's assumed that normally the memory block (allocated by the allocator)
+// is protected (read-only).  Creating a stack-based instance of
+// ProtectedMemoryLocker will unprotect this block after taking the lock.
+// Its destructor will first re-protect the memory then release the lock.
+class ProtectedMemoryLocker {
+ public:
+  ProtectedMemoryLocker(pthread_mutex_t* mutex,
+                        ProtectedMemoryAllocator* allocator)
+      : mutex_(mutex),
+        allocator_(allocator) {
+    // Lock the mutex
+    __attribute__((unused)) int rv = pthread_mutex_lock(mutex_);
+    assert(rv == 0);
+
+    // Unprotect the memory
+    allocator_->Unprotect();
+  }
+
+  ~ProtectedMemoryLocker() {
+    // First protect the memory
+    allocator_->Protect();
+
+    // Then unlock the mutex
+    __attribute__((unused)) int rv = pthread_mutex_unlock(mutex_);
+    assert(rv == 0);
+  }
+
+ private:
+  ProtectedMemoryLocker();
+  ProtectedMemoryLocker(const ProtectedMemoryLocker&);
+  ProtectedMemoryLocker& operator=(const ProtectedMemoryLocker&);
+
+  pthread_mutex_t* mutex_;
+  ProtectedMemoryAllocator* allocator_;
+};
+
+//=============================================================================
+class Breakpad {
+ public:
+  // factory method
+  static Breakpad* Create(NSDictionary* parameters) {
+    // Allocate from our special allocation pool
+    Breakpad* breakpad =
+      new (gBreakpadAllocator->Allocate(sizeof(Breakpad)))
+        Breakpad();
+
+    if (!breakpad)
+      return NULL;
+
+    if (!breakpad->Initialize(parameters)) {
+      // Don't use operator delete() here since we allocated from special pool
+      breakpad->~Breakpad();
+      return NULL;
+    }
+
+    return breakpad;
+  }
+
+  ~Breakpad();
+
+  void SetKeyValue(NSString* key, NSString* value);
+  NSString* KeyValue(NSString* key);
+  void RemoveKeyValue(NSString* key);
+  NSArray* CrashReportsToUpload();
+  NSString* NextCrashReportToUpload();
+  NSDictionary* NextCrashReportConfiguration();
+  NSDictionary* FixedUpCrashReportConfiguration(NSDictionary* configuration);
+  NSDate* DateOfMostRecentCrashReport();
+  void UploadNextReport(NSDictionary* server_parameters);
+  void UploadReportWithConfiguration(NSDictionary* configuration,
+                                     NSDictionary* server_parameters,
+                                     BreakpadUploadCompletionCallback callback);
+  void UploadData(NSData* data, NSString* name,
+                  NSDictionary* server_parameters);
+  void HandleNetworkResponse(NSDictionary* configuration,
+                             NSData* data,
+                             NSError* error);
+  NSDictionary* GenerateReport(NSDictionary* server_parameters);
+
+ private:
+  Breakpad()
+    : handler_(NULL),
+      config_params_(NULL) {}
+
+  bool Initialize(NSDictionary* parameters);
+
+  bool ExtractParameters(NSDictionary* parameters);
+
+  // Dispatches to HandleMinidump()
+  static bool HandleMinidumpCallback(const char* dump_dir,
+                                     const char* minidump_id,
+                                     void* context, bool succeeded);
+
+  bool HandleMinidump(const char* dump_dir,
+                      const char* minidump_id);
+
+  // NSException handler
+  static void UncaughtExceptionHandler(NSException* exception);
+
+  // Handle an uncaught NSException.
+  void HandleUncaughtException(NSException* exception);
+
+  // Since ExceptionHandler (w/o namespace) is defined as typedef in OSX's
+  // MachineExceptions.h, we have to explicitly name the handler.
+  google_breakpad::ExceptionHandler* handler_; // The actual handler (STRONG)
+
+  LongStringDictionary* config_params_; // Create parameters (STRONG)
+
+  ConfigFile config_file_;
+
+  // A static reference to the current Breakpad instance. Used for handling
+  // NSException.
+  static Breakpad* current_breakpad_;
+};
+
+Breakpad* Breakpad::current_breakpad_ = NULL;
+
+#pragma mark -
+#pragma mark Helper functions
+
+//=============================================================================
+// Helper functions
+
+//=============================================================================
+static BOOL IsDebuggerActive() {
+  BOOL result = NO;
+  NSUserDefaults* stdDefaults = [NSUserDefaults standardUserDefaults];
+
+  // We check both defaults and the environment variable here
+
+  BOOL ignoreDebugger = [stdDefaults boolForKey:@IGNORE_DEBUGGER];
+
+  if (!ignoreDebugger) {
+    char* ignoreDebuggerStr = getenv(IGNORE_DEBUGGER);
+    ignoreDebugger =
+        (ignoreDebuggerStr ? strtol(ignoreDebuggerStr, NULL, 10) : 0) != 0;
+  }
+
+  if (!ignoreDebugger) {
+    pid_t pid = getpid();
+    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
+    int mibSize = sizeof(mib) / sizeof(int);
+    size_t actualSize;
+
+    if (sysctl(mib, mibSize, NULL, &actualSize, NULL, 0) == 0) {
+      struct kinfo_proc* info = (struct kinfo_proc*)malloc(actualSize);
+
+      if (info) {
+        // This comes from looking at the Darwin xnu Kernel
+        if (sysctl(mib, mibSize, info, &actualSize, NULL, 0) == 0)
+          result = (info->kp_proc.p_flag & P_TRACED) ? YES : NO;
+
+        free(info);
+      }
+    }
+  }
+
+  return result;
+}
+
+//=============================================================================
+bool Breakpad::HandleMinidumpCallback(const char* dump_dir,
+                                      const char* minidump_id,
+                                      void* context, bool succeeded) {
+  Breakpad* breakpad = (Breakpad*)context;
+
+  // If our context is damaged or something, just return false to indicate that
+  // the handler should continue without us.
+  if (!breakpad || !succeeded)
+    return false;
+
+  return breakpad->HandleMinidump(dump_dir, minidump_id);
+}
+
+//=============================================================================
+void Breakpad::UncaughtExceptionHandler(NSException* exception) {
+  NSSetUncaughtExceptionHandler(NULL);
+  if (current_breakpad_) {
+    current_breakpad_->HandleUncaughtException(exception);
+    BreakpadRelease(current_breakpad_);
+  }
+}
+
+//=============================================================================
+#pragma mark -
+
+//=============================================================================
+bool Breakpad::Initialize(NSDictionary* parameters) {
+  // Initialize
+  current_breakpad_ = this;
+  config_params_ = NULL;
+  handler_ = NULL;
+
+  // Gather any user specified parameters
+  if (!ExtractParameters(parameters)) {
+    return false;
+  }
+
+  // Check for debugger
+  if (IsDebuggerActive()) {
+    return true;
+  }
+
+  // Create the handler (allocating it in our special protected pool)
+  handler_ =
+      new (gBreakpadAllocator->Allocate(
+          sizeof(google_breakpad::ExceptionHandler)))
+          google_breakpad::ExceptionHandler(
+              config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY),
+              0, &HandleMinidumpCallback, this, true, 0);
+  NSSetUncaughtExceptionHandler(&Breakpad::UncaughtExceptionHandler);
+  return true;
+}
+
+//=============================================================================
+Breakpad::~Breakpad() {
+  NSSetUncaughtExceptionHandler(NULL);
+  current_breakpad_ = NULL;
+  // Note that we don't use operator delete() on these pointers,
+  // since they were allocated by ProtectedMemoryAllocator objects.
+  //
+  if (config_params_) {
+    config_params_->~LongStringDictionary();
+  }
+
+  if (handler_)
+    handler_->~ExceptionHandler();
+}
+
+//=============================================================================
+bool Breakpad::ExtractParameters(NSDictionary* parameters) {
+  NSString* serverType = [parameters objectForKey:@BREAKPAD_SERVER_TYPE];
+  NSString* display = [parameters objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
+  NSString* product = [parameters objectForKey:@BREAKPAD_PRODUCT];
+  NSString* version = [parameters objectForKey:@BREAKPAD_VERSION];
+  NSString* urlStr = [parameters objectForKey:@BREAKPAD_URL];
+  NSString* vendor =
+      [parameters objectForKey:@BREAKPAD_VENDOR];
+  // We check both parameters and the environment variable here.
+  char* envVarDumpSubdirectory = getenv(BREAKPAD_DUMP_DIRECTORY);
+  NSString* dumpSubdirectory = envVarDumpSubdirectory ?
+      [NSString stringWithUTF8String:envVarDumpSubdirectory] :
+          [parameters objectForKey:@BREAKPAD_DUMP_DIRECTORY];
+
+  NSDictionary* serverParameters =
+      [parameters objectForKey:@BREAKPAD_SERVER_PARAMETER_DICT];
+
+  if (!product)
+    product = [parameters objectForKey:@"CFBundleName"];
+
+  if (!display) {
+    display = [parameters objectForKey:@"CFBundleDisplayName"];
+    if (!display) {
+      display = product;
+    }
+  }
+
+  if (!version.length)  // Default nil or empty string to CFBundleVersion
+    version = [parameters objectForKey:@"CFBundleVersion"];
+
+  if (!vendor) {
+    vendor = @"Vendor not specified";
+  }
+
+  if (!dumpSubdirectory) {
+    NSString* cachePath =
+        [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
+                                             NSUserDomainMask,
+                                             YES)
+            objectAtIndex:0];
+    dumpSubdirectory =
+        [cachePath stringByAppendingPathComponent:@kDefaultLibrarySubdirectory];
+
+    EnsureDirectoryPathExists(dumpSubdirectory);
+  }
+
+  // The product, version, and URL are required values.
+  if (![product length]) {
+    return false;
+  }
+
+  if (![version length]) {
+    return false;
+  }
+
+  if (![urlStr length]) {
+    return false;
+  }
+
+  config_params_ =
+      new (gKeyValueAllocator->Allocate(sizeof(LongStringDictionary)))
+          LongStringDictionary();
+
+  LongStringDictionary& dictionary = *config_params_;
+
+  dictionary.SetKeyValue(BREAKPAD_SERVER_TYPE,     [serverType UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_PRODUCT_DISPLAY, [display UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_PRODUCT,         [product UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_VERSION,         [version UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_URL,             [urlStr UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_VENDOR,          [vendor UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_DUMP_DIRECTORY,
+                         [dumpSubdirectory UTF8String]);
+
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+  char timeStartedString[32];
+  sprintf(timeStartedString, "%zd", tv.tv_sec);
+  dictionary.SetKeyValue(BREAKPAD_PROCESS_START_TIME, timeStartedString);
+
+  if (serverParameters) {
+    // For each key-value pair, call BreakpadAddUploadParameter()
+    NSEnumerator* keyEnumerator = [serverParameters keyEnumerator];
+    NSString* aParameter;
+    while ((aParameter = [keyEnumerator nextObject])) {
+      BreakpadAddUploadParameter(this, aParameter,
+				 [serverParameters objectForKey:aParameter]);
+    }
+  }
+  return true;
+}
+
+//=============================================================================
+void Breakpad::SetKeyValue(NSString* key, NSString* value) {
+  // We allow nil values. This is the same as removing the keyvalue.
+  if (!config_params_ || !key)
+    return;
+
+  config_params_->SetKeyValue([key UTF8String], [value UTF8String]);
+}
+
+//=============================================================================
+NSString* Breakpad::KeyValue(NSString* key) {
+  if (!config_params_ || !key)
+    return nil;
+
+  const std::string value = config_params_->GetValueForKey([key UTF8String]);
+  return value.empty() ? nil : [NSString stringWithUTF8String:value.c_str()];
+}
+
+//=============================================================================
+void Breakpad::RemoveKeyValue(NSString* key) {
+  if (!config_params_ || !key) return;
+
+  config_params_->RemoveKey([key UTF8String]);
+}
+
+//=============================================================================
+NSArray* Breakpad::CrashReportsToUpload() {
+  NSString* directory = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
+  if (!directory)
+    return nil;
+  NSArray* dirContents = [[NSFileManager defaultManager]
+      contentsOfDirectoryAtPath:directory error:nil];
+  NSArray* configs = [dirContents filteredArrayUsingPredicate:[NSPredicate
+      predicateWithFormat:@"self BEGINSWITH 'Config-'"]];
+  return configs;
+}
+
+//=============================================================================
+NSString* Breakpad::NextCrashReportToUpload() {
+  NSString* directory = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
+  if (!directory)
+    return nil;
+  NSString* config = [CrashReportsToUpload() lastObject];
+  if (!config)
+    return nil;
+  return [NSString stringWithFormat:@"%@/%@", directory, config];
+}
+
+//=============================================================================
+NSDictionary* Breakpad::NextCrashReportConfiguration() {
+  NSDictionary* configuration = [Uploader readConfigurationDataFromFile:NextCrashReportToUpload()];
+  return FixedUpCrashReportConfiguration(configuration);
+}
+
+//=============================================================================
+NSDictionary* Breakpad::FixedUpCrashReportConfiguration(NSDictionary* configuration) {
+  NSMutableDictionary* fixedConfiguration = [[configuration mutableCopy] autorelease];
+  // kReporterMinidumpDirectoryKey can become stale because the app's data container path includes
+  // an UUID that is not guaranteed to stay the same over time.
+  [fixedConfiguration setObject:KeyValue(@BREAKPAD_DUMP_DIRECTORY)
+                    forKey:@kReporterMinidumpDirectoryKey];
+  return fixedConfiguration;
+}
+
+//=============================================================================
+NSDate* Breakpad::DateOfMostRecentCrashReport() {
+  NSString* directory = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
+  if (!directory) {
+    return nil;
+  }
+  NSFileManager* fileManager = [NSFileManager defaultManager];
+  NSArray* dirContents = [fileManager contentsOfDirectoryAtPath:directory error:nil];
+  NSArray* dumps = [dirContents filteredArrayUsingPredicate:[NSPredicate
+      predicateWithFormat:@"self ENDSWITH '.dmp'"]];
+  NSDate* mostRecentCrashReportDate = nil;
+  for (NSString* dump in dumps) {
+    NSString* filePath = [directory stringByAppendingPathComponent:dump];
+    NSDate* crashReportDate =
+        [[fileManager attributesOfItemAtPath:filePath error:nil] fileCreationDate];
+    if (!mostRecentCrashReportDate) {
+      mostRecentCrashReportDate = crashReportDate;
+    } else if (crashReportDate) {
+      mostRecentCrashReportDate = [mostRecentCrashReportDate laterDate:crashReportDate];
+    }
+  }
+  return mostRecentCrashReportDate;
+}
+
+//=============================================================================
+void Breakpad::HandleNetworkResponse(NSDictionary* configuration,
+                                     NSData* data,
+                                     NSError* error) {
+  Uploader* uploader = [[[Uploader alloc]
+      initWithConfig:configuration] autorelease];
+  [uploader handleNetworkResponse:data withError:error];
+}
+
+//=============================================================================
+void Breakpad::UploadReportWithConfiguration(
+    NSDictionary* configuration,
+    NSDictionary* server_parameters,
+    BreakpadUploadCompletionCallback callback) {
+  Uploader* uploader = [[[Uploader alloc]
+      initWithConfig:configuration] autorelease];
+  if (!uploader)
+    return;
+  for (NSString* key in server_parameters) {
+    [uploader addServerParameter:[server_parameters objectForKey:key]
+                          forKey:key];
+  }
+  if (callback) {
+    [uploader setUploadCompletionBlock:^(NSString* report_id, NSError* error) {
+      dispatch_async(dispatch_get_main_queue(), ^{
+        callback(report_id, error);
+      });
+    }];
+  }
+  [uploader report];
+}
+
+//=============================================================================
+void Breakpad::UploadNextReport(NSDictionary* server_parameters) {
+  NSDictionary* configuration = NextCrashReportConfiguration();
+  if (configuration) {
+    return UploadReportWithConfiguration(configuration, server_parameters,
+                                         nullptr);
+  }
+}
+
+//=============================================================================
+void Breakpad::UploadData(NSData* data, NSString* name,
+                          NSDictionary* server_parameters) {
+  NSMutableDictionary* config = [NSMutableDictionary dictionary];
+
+  LongStringDictionary::Iterator it(*config_params_);
+  while (const LongStringDictionary::Entry* next = it.Next()) {
+    [config setValue:[NSString stringWithUTF8String:next->value]
+              forKey:[NSString stringWithUTF8String:next->key]];
+  }
+
+  Uploader* uploader =
+      [[[Uploader alloc] initWithConfig:config] autorelease];
+  for (NSString* key in server_parameters) {
+    [uploader addServerParameter:[server_parameters objectForKey:key]
+                          forKey:key];
+  }
+  [uploader uploadData:data name:name];
+}
+
+//=============================================================================
+NSDictionary* Breakpad::GenerateReport(NSDictionary* server_parameters) {
+  NSString* dumpDirAsNSString = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
+  if (!dumpDirAsNSString)
+    return nil;
+  const char* dumpDir = [dumpDirAsNSString UTF8String];
+
+  google_breakpad::MinidumpGenerator generator(mach_task_self(),
+                                               MACH_PORT_NULL);
+  std::string dumpId;
+  std::string dumpFilename = generator.UniqueNameInDirectory(dumpDir, &dumpId);
+  bool success = generator.Write(dumpFilename.c_str());
+  if (!success)
+    return nil;
+
+  LongStringDictionary params = *config_params_;
+  for (NSString* key in server_parameters) {
+    params.SetKeyValue([key UTF8String],
+                       [[server_parameters objectForKey:key] UTF8String]);
+  }
+  ConfigFile config_file;
+  config_file.WriteFile(dumpDir, &params, dumpDir, dumpId.c_str());
+
+  // Handle results.
+  NSMutableDictionary* result = [NSMutableDictionary dictionary];
+  NSString* dumpFullPath = [NSString stringWithUTF8String:dumpFilename.c_str()];
+  [result setValue:dumpFullPath
+            forKey:@BREAKPAD_OUTPUT_DUMP_FILE];
+  [result setValue:[NSString stringWithUTF8String:config_file.GetFilePath()]
+            forKey:@BREAKPAD_OUTPUT_CONFIG_FILE];
+  return result;
+}
+
+//=============================================================================
+bool Breakpad::HandleMinidump(const char* dump_dir,
+                              const char* minidump_id) {
+  config_file_.WriteFile(dump_dir,
+                         config_params_,
+                         dump_dir,
+                         minidump_id);
+
+  // Return true here to indicate that we've processed things as much as we
+  // want.
+  return true;
+}
+
+//=============================================================================
+void Breakpad::HandleUncaughtException(NSException* exception) {
+  // Generate the minidump.
+  google_breakpad::IosExceptionMinidumpGenerator generator(exception);
+  const std::string minidump_path =
+      config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY);
+  std::string minidump_id;
+  std::string minidump_filename = generator.UniqueNameInDirectory(minidump_path,
+                                                                  &minidump_id);
+  generator.Write(minidump_filename.c_str());
+
+  // Copy the config params and our custom parameter. This is necessary for 2
+  // reasons:
+  // 1- config_params_ is protected.
+  // 2- If the application crash while trying to handle this exception, a usual
+  //    report will be generated. This report must not contain these special
+  //    keys.
+  LongStringDictionary params = *config_params_;
+  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "type", "exception");
+  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "exceptionName",
+                     [[exception name] UTF8String]);
+  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "exceptionReason",
+                     [[exception reason] UTF8String]);
+
+  // And finally write the config file.
+  ConfigFile config_file;
+  config_file.WriteFile(minidump_path.c_str(),
+                        &params,
+                        minidump_path.c_str(),
+                        minidump_id.c_str());
+}
+
+//=============================================================================
+
+#pragma mark -
+#pragma mark Public API
+
+//=============================================================================
+BreakpadRef BreakpadCreate(NSDictionary* parameters) {
+  try {
+    // This is confusing.  Our two main allocators for breakpad memory are:
+    //    - gKeyValueAllocator for the key/value memory
+    //    - gBreakpadAllocator for the Breakpad, ExceptionHandler, and other
+    //      breakpad allocations which are accessed at exception handling time.
+    //
+    // But in order to avoid these two allocators themselves from being smashed,
+    // we'll protect them as well by allocating them with gMasterAllocator.
+    //
+    // gMasterAllocator itself will NOT be protected, but this doesn't matter,
+    // since once it does its allocations and locks the memory, smashes to
+    // itself don't affect anything we care about.
+    gMasterAllocator =
+        new ProtectedMemoryAllocator(sizeof(ProtectedMemoryAllocator) * 2);
+
+    gKeyValueAllocator =
+        new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
+            ProtectedMemoryAllocator(sizeof(LongStringDictionary));
+
+    // Create a mutex for use in accessing the LongStringDictionary
+    int mutexResult = pthread_mutex_init(&gDictionaryMutex, NULL);
+    if (mutexResult == 0) {
+
+      // With the current compiler, gBreakpadAllocator is allocating 1444 bytes.
+      // Let's round up to the nearest page size.
+      //
+      int breakpad_pool_size = 4096;
+
+      /*
+       sizeof(Breakpad)
+       + sizeof(google_breakpad::ExceptionHandler)
+       + sizeof( STUFF ALLOCATED INSIDE ExceptionHandler )
+       */
+
+      gBreakpadAllocator =
+          new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
+              ProtectedMemoryAllocator(breakpad_pool_size);
+
+      // Stack-based autorelease pool for Breakpad::Create() obj-c code.
+      NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+      Breakpad* breakpad = Breakpad::Create(parameters);
+
+      if (breakpad) {
+        // Make read-only to protect against memory smashers
+        gMasterAllocator->Protect();
+        gKeyValueAllocator->Protect();
+        gBreakpadAllocator->Protect();
+        // Can uncomment this line to figure out how much space was actually
+        // allocated using this allocator
+        //     printf("gBreakpadAllocator allocated size = %d\n",
+        //         gBreakpadAllocator->GetAllocatedSize() );
+        [pool release];
+        return (BreakpadRef)breakpad;
+      }
+
+      [pool release];
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadCreate() : error\n");
+  }
+
+  if (gKeyValueAllocator) {
+    gKeyValueAllocator->~ProtectedMemoryAllocator();
+    gKeyValueAllocator = NULL;
+  }
+
+  if (gBreakpadAllocator) {
+    gBreakpadAllocator->~ProtectedMemoryAllocator();
+    gBreakpadAllocator = NULL;
+  }
+
+  delete gMasterAllocator;
+  gMasterAllocator = NULL;
+
+  return NULL;
+}
+
+//=============================================================================
+void BreakpadRelease(BreakpadRef ref) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (gMasterAllocator) {
+      gMasterAllocator->Unprotect();
+      gKeyValueAllocator->Unprotect();
+      gBreakpadAllocator->Unprotect();
+
+      breakpad->~Breakpad();
+
+      // Unfortunately, it's not possible to deallocate this stuff
+      // because the exception handling thread is still finishing up
+      // asynchronously at this point...  OK, it could be done with
+      // locks, etc.  But since BreakpadRelease() should usually only
+      // be called right before the process exits, it's not worth
+      // deallocating this stuff.
+#if 0
+      gKeyValueAllocator->~ProtectedMemoryAllocator();
+      gBreakpadAllocator->~ProtectedMemoryAllocator();
+      delete gMasterAllocator;
+
+      gMasterAllocator = NULL;
+      gKeyValueAllocator = NULL;
+      gBreakpadAllocator = NULL;
+#endif
+
+      pthread_mutex_destroy(&gDictionaryMutex);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRelease() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadSetKeyValue(BreakpadRef ref, NSString* key, NSString* value) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      breakpad->SetKeyValue(key, value);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
+  }
+}
+
+void BreakpadAddUploadParameter(BreakpadRef ref,
+                                NSString* key,
+                                NSString* value) {
+  // The only difference, internally, between an upload parameter and
+  // a key value one that is set with BreakpadSetKeyValue is that we
+  // prepend the keyname with a special prefix.  This informs the
+  // crash sender that the parameter should be sent along with the
+  // POST of the crash dump upload.
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      NSString* prefixedKey = [@BREAKPAD_SERVER_PARAMETER_PREFIX
+				stringByAppendingString:key];
+      breakpad->SetKeyValue(prefixedKey, value);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
+  }
+}
+
+void BreakpadRemoveUploadParameter(BreakpadRef ref,
+                                   NSString* key) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      NSString* prefixedKey = [NSString stringWithFormat:@"%@%@",
+                                        @BREAKPAD_SERVER_PARAMETER_PREFIX, key];
+      breakpad->RemoveKeyValue(prefixedKey);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
+  }
+}
+//=============================================================================
+NSString* BreakpadKeyValue(BreakpadRef ref, NSString* key) {
+  NSString* value = nil;
+
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (!breakpad || !key || !gKeyValueAllocator)
+      return nil;
+
+    ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+    value = breakpad->KeyValue(key);
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadKeyValue() : error\n");
+  }
+
+  return value;
+}
+
+//=============================================================================
+void BreakpadRemoveKeyValue(BreakpadRef ref, NSString* key) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      breakpad->RemoveKeyValue(key);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
+  }
+}
+
+//=============================================================================
+int BreakpadGetCrashReportCount(BreakpadRef ref) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad) {
+       return static_cast<int>([breakpad->CrashReportsToUpload() count]);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadGetCrashReportCount() : error\n");
+  }
+  return false;
+}
+
+//=============================================================================
+void BreakpadUploadNextReport(BreakpadRef ref) {
+  BreakpadUploadNextReportWithParameters(ref, nil, nullptr);
+}
+
+//=============================================================================
+NSDictionary* BreakpadGetNextReportConfiguration(BreakpadRef ref) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+    if (breakpad)
+      return breakpad->NextCrashReportConfiguration();
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadGetNextReportConfiguration() : error\n");
+  }
+  return nil;
+}
+
+//=============================================================================
+NSDate* BreakpadGetDateOfMostRecentCrashReport(BreakpadRef ref) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+    if (breakpad) {
+      return breakpad->DateOfMostRecentCrashReport();
+    }
+  } catch (...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadGetDateOfMostRecentCrashReport() : error\n");
+  }
+  return nil;
+}
+
+//=============================================================================
+void BreakpadUploadReportWithParametersAndConfiguration(
+    BreakpadRef ref,
+    NSDictionary* server_parameters,
+    NSDictionary* configuration,
+    BreakpadUploadCompletionCallback callback) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+    if (!breakpad || !configuration)
+      return;
+    breakpad->UploadReportWithConfiguration(configuration, server_parameters,
+                                            callback);
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr,
+        "BreakpadUploadReportWithParametersAndConfiguration() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadUploadNextReportWithParameters(
+    BreakpadRef ref,
+    NSDictionary* server_parameters,
+    BreakpadUploadCompletionCallback callback) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+    if (!breakpad)
+      return;
+    NSDictionary* configuration = breakpad->NextCrashReportConfiguration();
+    if (!configuration)
+      return;
+    return BreakpadUploadReportWithParametersAndConfiguration(
+        ref, server_parameters, configuration, callback);
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadUploadNextReportWithParameters() : error\n");
+  }
+}
+
+void BreakpadHandleNetworkResponse(BreakpadRef ref,
+                                   NSDictionary* configuration,
+                                   NSData* data,
+                                   NSError* error) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+    if (breakpad && configuration)
+      breakpad->HandleNetworkResponse(configuration,data, error);
+
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadHandleNetworkResponse() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadUploadData(BreakpadRef ref, NSData* data, NSString* name,
+                        NSDictionary* server_parameters) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad) {
+      breakpad->UploadData(data, name, server_parameters);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadUploadData() : error\n");
+  }
+}
+
+//=============================================================================
+NSDictionary* BreakpadGenerateReport(BreakpadRef ref,
+                                     NSDictionary* server_parameters) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad) {
+      return breakpad->GenerateReport(server_parameters);
+    } else {
+      return nil;
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadGenerateReport() : error\n");
+    return nil;
+  }
+}
diff --git a/src/client/ios/Breakpad.xcodeproj/project.pbxproj b/src/client/ios/Breakpad.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..2ed66d5
--- /dev/null
+++ b/src/client/ios/Breakpad.xcodeproj/project.pbxproj
@@ -0,0 +1,588 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		14569321182CE29F0029C465 /* ucontext_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 14569320182CE29F0029C465 /* ucontext_compat.h */; };
+		14569323182CE2C10029C465 /* mach_vm_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 14569322182CE2C10029C465 /* mach_vm_compat.h */; };
+		16BFA67014E195E9009704F8 /* ios_exception_minidump_generator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */; };
+		16BFA67214E1965A009704F8 /* ios_exception_minidump_generator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */; };
+		16C7CCCB147D4A4300776EAD /* BreakpadDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C968147D4A4200776EAD /* BreakpadDefines.h */; };
+		16C7CCCC147D4A4300776EAD /* Breakpad.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C96A147D4A4200776EAD /* Breakpad.h */; };
+		16C7CCCD147D4A4300776EAD /* Breakpad.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7C96B147D4A4200776EAD /* Breakpad.mm */; };
+		16C7CDE8147D4A4300776EAD /* ConfigFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CB9E147D4A4300776EAD /* ConfigFile.h */; };
+		16C7CDE9147D4A4300776EAD /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CB9F147D4A4300776EAD /* ConfigFile.mm */; };
+		16C7CDF5147D4A4300776EAD /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */; };
+		16C7CDF6147D4A4300776EAD /* breakpad_nlist_64.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */; };
+		16C7CDF7147D4A4300776EAD /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBAF147D4A4300776EAD /* dynamic_images.cc */; };
+		16C7CDF8147D4A4300776EAD /* dynamic_images.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB0147D4A4300776EAD /* dynamic_images.h */; };
+		16C7CDF9147D4A4300776EAD /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBB1147D4A4300776EAD /* exception_handler.cc */; };
+		16C7CDFA147D4A4300776EAD /* exception_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB2147D4A4300776EAD /* exception_handler.h */; };
+		16C7CDFC147D4A4300776EAD /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBB4147D4A4300776EAD /* minidump_generator.cc */; };
+		16C7CDFD147D4A4300776EAD /* minidump_generator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB5147D4A4300776EAD /* minidump_generator.h */; };
+		16C7CDFE147D4A4300776EAD /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */; };
+		16C7CDFF147D4A4300776EAD /* protected_memory_allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */; };
+		16C7CE08147D4A4300776EAD /* uploader.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBEA147D4A4300776EAD /* uploader.h */; };
+		16C7CE09147D4A4300776EAD /* uploader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBEB147D4A4300776EAD /* uploader.mm */; };
+		16C7CE18147D4A4300776EAD /* minidump_file_writer-inl.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */; };
+		16C7CE19147D4A4300776EAD /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */; };
+		16C7CE1A147D4A4300776EAD /* minidump_file_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC06147D4A4300776EAD /* minidump_file_writer.h */; };
+		16C7CE40147D4A4300776EAD /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC4A147D4A4300776EAD /* convert_UTF.cc */; };
+		16C7CE41147D4A4300776EAD /* convert_UTF.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC4B147D4A4300776EAD /* convert_UTF.h */; };
+		16C7CE78147D4A4300776EAD /* GTMLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC88147D4A4300776EAD /* GTMLogger.h */; };
+		16C7CE79147D4A4300776EAD /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC89147D4A4300776EAD /* GTMLogger.m */; };
+		16C7CE7A147D4A4300776EAD /* HTTPMultipartUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */; };
+		16C7CE7B147D4A4300776EAD /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */; };
+		16C7CE83147D4A4300776EAD /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC93147D4A4300776EAD /* file_id.cc */; };
+		16C7CE84147D4A4300776EAD /* file_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC94147D4A4300776EAD /* file_id.h */; };
+		16C7CE85147D4A4300776EAD /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC95147D4A4300776EAD /* macho_id.cc */; };
+		16C7CE86147D4A4300776EAD /* macho_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC96147D4A4300776EAD /* macho_id.h */; };
+		16C7CE8A147D4A4300776EAD /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9A147D4A4300776EAD /* macho_utilities.cc */; };
+		16C7CE8B147D4A4300776EAD /* macho_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC9B147D4A4300776EAD /* macho_utilities.h */; };
+		16C7CE8C147D4A4300776EAD /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9C147D4A4300776EAD /* macho_walker.cc */; };
+		16C7CE8D147D4A4300776EAD /* macho_walker.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC9D147D4A4300776EAD /* macho_walker.h */; };
+		16C7CE8F147D4A4300776EAD /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9F147D4A4300776EAD /* string_utilities.cc */; };
+		16C7CE90147D4A4300776EAD /* string_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCA0147D4A4300776EAD /* string_utilities.h */; };
+		16C7CE93147D4A4300776EAD /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CCA4147D4A4300776EAD /* md5.cc */; };
+		16C7CE94147D4A4300776EAD /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCA5147D4A4300776EAD /* md5.h */; };
+		16C7CEA7147D4A4300776EAD /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CCB9147D4A4300776EAD /* string_conversion.cc */; };
+		16C7CEA8147D4A4300776EAD /* string_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCBA147D4A4300776EAD /* string_conversion.h */; };
+		16C92FAD150DF8330053D7BA /* BreakpadController.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C92FAB150DF8330053D7BA /* BreakpadController.h */; };
+		16C92FAE150DF8330053D7BA /* BreakpadController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C92FAC150DF8330053D7BA /* BreakpadController.mm */; };
+		1EEEB60F1720821900F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */; };
+		1EEEB6101720821900F7E689 /* simple_string_dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */; };
+		AA747D9F0F9514B9006C5449 /* Breakpad_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */; };
+		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
+		CF6D547D1F9E6FFE00E95174 /* long_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = CF6D547C1F9E6FFE00E95174 /* long_string_dictionary.cc */; };
+		CF706DC11F7C6EFB002C54C7 /* long_string_dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = CF706DC01F7C6EFB002C54C7 /* long_string_dictionary.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		14569320182CE29F0029C465 /* ucontext_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ucontext_compat.h; sourceTree = "<group>"; };
+		14569322182CE2C10029C465 /* mach_vm_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_vm_compat.h; sourceTree = "<group>"; };
+		16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_exception_minidump_generator.h; sourceTree = "<group>"; };
+		16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_exception_minidump_generator.mm; sourceTree = "<group>"; };
+		16C7C968147D4A4200776EAD /* BreakpadDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadDefines.h; sourceTree = "<group>"; };
+		16C7C96A147D4A4200776EAD /* Breakpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Breakpad.h; sourceTree = "<group>"; };
+		16C7C96B147D4A4200776EAD /* Breakpad.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Breakpad.mm; sourceTree = "<group>"; };
+		16C7CB9E147D4A4300776EAD /* ConfigFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigFile.h; sourceTree = "<group>"; };
+		16C7CB9F147D4A4300776EAD /* ConfigFile.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ConfigFile.mm; sourceTree = "<group>"; };
+		16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_64.cc; sourceTree = "<group>"; };
+		16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_nlist_64.h; sourceTree = "<group>"; };
+		16C7CBAF147D4A4300776EAD /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_images.cc; sourceTree = "<group>"; };
+		16C7CBB0147D4A4300776EAD /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dynamic_images.h; sourceTree = "<group>"; };
+		16C7CBB1147D4A4300776EAD /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = exception_handler.cc; sourceTree = "<group>"; };
+		16C7CBB2147D4A4300776EAD /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = exception_handler.h; sourceTree = "<group>"; };
+		16C7CBB4147D4A4300776EAD /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_generator.cc; sourceTree = "<group>"; };
+		16C7CBB5147D4A4300776EAD /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = minidump_generator.h; sourceTree = "<group>"; };
+		16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = protected_memory_allocator.cc; sourceTree = "<group>"; };
+		16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = protected_memory_allocator.h; sourceTree = "<group>"; };
+		16C7CBEA147D4A4300776EAD /* uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uploader.h; sourceTree = "<group>"; };
+		16C7CBEB147D4A4300776EAD /* uploader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = uploader.mm; sourceTree = "<group>"; };
+		16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "minidump_file_writer-inl.h"; sourceTree = "<group>"; };
+		16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_file_writer.cc; sourceTree = "<group>"; };
+		16C7CC06147D4A4300776EAD /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = minidump_file_writer.h; sourceTree = "<group>"; };
+		16C7CC07147D4A4300776EAD /* minidump_file_writer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_file_writer_unittest.cc; sourceTree = "<group>"; };
+		16C7CC4A147D4A4300776EAD /* convert_UTF.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = convert_UTF.cc; sourceTree = "<group>"; };
+		16C7CC4B147D4A4300776EAD /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_UTF.h; sourceTree = "<group>"; };
+		16C7CC88147D4A4300776EAD /* GTMLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMLogger.h; sourceTree = "<group>"; };
+		16C7CC89147D4A4300776EAD /* GTMLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMLogger.m; sourceTree = "<group>"; };
+		16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPMultipartUpload.h; sourceTree = "<group>"; };
+		16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPMultipartUpload.m; sourceTree = "<group>"; };
+		16C7CC93147D4A4300776EAD /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_id.cc; sourceTree = "<group>"; };
+		16C7CC94147D4A4300776EAD /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_id.h; sourceTree = "<group>"; };
+		16C7CC95147D4A4300776EAD /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_id.cc; sourceTree = "<group>"; };
+		16C7CC96147D4A4300776EAD /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_id.h; sourceTree = "<group>"; };
+		16C7CC9A147D4A4300776EAD /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_utilities.cc; sourceTree = "<group>"; };
+		16C7CC9B147D4A4300776EAD /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_utilities.h; sourceTree = "<group>"; };
+		16C7CC9C147D4A4300776EAD /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_walker.cc; sourceTree = "<group>"; };
+		16C7CC9D147D4A4300776EAD /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_walker.h; sourceTree = "<group>"; };
+		16C7CC9F147D4A4300776EAD /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utilities.cc; sourceTree = "<group>"; };
+		16C7CCA0147D4A4300776EAD /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utilities.h; sourceTree = "<group>"; };
+		16C7CCA4147D4A4300776EAD /* md5.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md5.cc; sourceTree = "<group>"; };
+		16C7CCA5147D4A4300776EAD /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
+		16C7CCB9147D4A4300776EAD /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_conversion.cc; sourceTree = "<group>"; };
+		16C7CCBA147D4A4300776EAD /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_conversion.h; sourceTree = "<group>"; };
+		16C92FAB150DF8330053D7BA /* BreakpadController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadController.h; sourceTree = "<group>"; };
+		16C92FAC150DF8330053D7BA /* BreakpadController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BreakpadController.mm; sourceTree = "<group>"; };
+		1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_string_dictionary.cc; sourceTree = "<group>"; };
+		1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_string_dictionary.h; sourceTree = "<group>"; };
+		AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Breakpad_Prefix.pch; sourceTree = SOURCE_ROOT; };
+		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		CF6D547C1F9E6FFE00E95174 /* long_string_dictionary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = long_string_dictionary.cc; sourceTree = "<group>"; };
+		CF706DC01F7C6EFB002C54C7 /* long_string_dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = long_string_dictionary.h; sourceTree = "<group>"; };
+		D2AAC07E0554694100DB518D /* libBreakpad.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBreakpad.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D2AAC07C0554694100DB518D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		034768DFFF38A50411DB9C8B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC07E0554694100DB518D /* libBreakpad.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0867D691FE84028FC02AAC07 /* Breakpad */ = {
+			isa = PBXGroup;
+			children = (
+				08FB77AEFE84172EC02AAC07 /* Classes */,
+				32C88DFF0371C24200C91783 /* Other Sources */,
+				0867D69AFE84028FC02AAC07 /* Frameworks */,
+				034768DFFF38A50411DB9C8B /* Products */,
+			);
+			name = Breakpad;
+			sourceTree = "<group>";
+		};
+		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				AACBBE490F95108600F1A2B1 /* Foundation.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		08FB77AEFE84172EC02AAC07 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C965147D4A4200776EAD /* client */,
+				16C7CC47147D4A4300776EAD /* common */,
+			);
+			name = Classes;
+			sourceTree = "<group>";
+		};
+		16BFA66A14E195E9009704F8 /* handler */ = {
+			isa = PBXGroup;
+			children = (
+				16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */,
+				16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */,
+			);
+			path = handler;
+			sourceTree = "<group>";
+		};
+		16C7C965147D4A4200776EAD /* client */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C966147D4A4200776EAD /* apple */,
+				16C7C969147D4A4200776EAD /* ios */,
+				16C7C99E147D4A4200776EAD /* mac */,
+				16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */,
+				16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */,
+				16C7CC06147D4A4300776EAD /* minidump_file_writer.h */,
+				16C7CC07147D4A4300776EAD /* minidump_file_writer_unittest.cc */,
+			);
+			name = client;
+			path = ..;
+			sourceTree = SOURCE_ROOT;
+		};
+		16C7C966147D4A4200776EAD /* apple */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C967147D4A4200776EAD /* Framework */,
+			);
+			path = apple;
+			sourceTree = "<group>";
+		};
+		16C7C967147D4A4200776EAD /* Framework */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C968147D4A4200776EAD /* BreakpadDefines.h */,
+			);
+			path = Framework;
+			sourceTree = "<group>";
+		};
+		16C7C969147D4A4200776EAD /* ios */ = {
+			isa = PBXGroup;
+			children = (
+				16C92FAB150DF8330053D7BA /* BreakpadController.h */,
+				16C92FAC150DF8330053D7BA /* BreakpadController.mm */,
+				16BFA66A14E195E9009704F8 /* handler */,
+				16C7C96A147D4A4200776EAD /* Breakpad.h */,
+				16C7C96B147D4A4200776EAD /* Breakpad.mm */,
+			);
+			path = ios;
+			sourceTree = "<group>";
+		};
+		16C7C99E147D4A4200776EAD /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				16C7CB9D147D4A4300776EAD /* crash_generation */,
+				16C7CBAA147D4A4300776EAD /* handler */,
+				16C7CBC8147D4A4300776EAD /* sender */,
+			);
+			path = mac;
+			sourceTree = "<group>";
+		};
+		16C7CB9D147D4A4300776EAD /* crash_generation */ = {
+			isa = PBXGroup;
+			children = (
+				16C7CB9E147D4A4300776EAD /* ConfigFile.h */,
+				16C7CB9F147D4A4300776EAD /* ConfigFile.mm */,
+			);
+			path = crash_generation;
+			sourceTree = "<group>";
+		};
+		16C7CBAA147D4A4300776EAD /* handler */ = {
+			isa = PBXGroup;
+			children = (
+				16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */,
+				16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */,
+				16C7CBAF147D4A4300776EAD /* dynamic_images.cc */,
+				16C7CBB0147D4A4300776EAD /* dynamic_images.h */,
+				16C7CBB1147D4A4300776EAD /* exception_handler.cc */,
+				16C7CBB2147D4A4300776EAD /* exception_handler.h */,
+				14569322182CE2C10029C465 /* mach_vm_compat.h */,
+				16C7CBB4147D4A4300776EAD /* minidump_generator.cc */,
+				16C7CBB5147D4A4300776EAD /* minidump_generator.h */,
+				16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */,
+				16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */,
+				14569320182CE29F0029C465 /* ucontext_compat.h */,
+			);
+			path = handler;
+			sourceTree = "<group>";
+		};
+		16C7CBC8147D4A4300776EAD /* sender */ = {
+			isa = PBXGroup;
+			children = (
+				16C7CBEA147D4A4300776EAD /* uploader.h */,
+				16C7CBEB147D4A4300776EAD /* uploader.mm */,
+			);
+			path = sender;
+			sourceTree = "<group>";
+		};
+		16C7CC47147D4A4300776EAD /* common */ = {
+			isa = PBXGroup;
+			children = (
+				CF706DC01F7C6EFB002C54C7 /* long_string_dictionary.h */,
+				CF6D547C1F9E6FFE00E95174 /* long_string_dictionary.cc */,
+				1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */,
+				1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */,
+				16C7CC4A147D4A4300776EAD /* convert_UTF.cc */,
+				16C7CC4B147D4A4300776EAD /* convert_UTF.h */,
+				16C7CC82147D4A4300776EAD /* mac */,
+				16C7CCA4147D4A4300776EAD /* md5.cc */,
+				16C7CCA5147D4A4300776EAD /* md5.h */,
+				16C7CCB9147D4A4300776EAD /* string_conversion.cc */,
+				16C7CCBA147D4A4300776EAD /* string_conversion.h */,
+			);
+			name = common;
+			path = ../../common;
+			sourceTree = SOURCE_ROOT;
+		};
+		16C7CC82147D4A4300776EAD /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				16C7CC88147D4A4300776EAD /* GTMLogger.h */,
+				16C7CC89147D4A4300776EAD /* GTMLogger.m */,
+				16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */,
+				16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */,
+				16C7CC93147D4A4300776EAD /* file_id.cc */,
+				16C7CC94147D4A4300776EAD /* file_id.h */,
+				16C7CC95147D4A4300776EAD /* macho_id.cc */,
+				16C7CC96147D4A4300776EAD /* macho_id.h */,
+				16C7CC9A147D4A4300776EAD /* macho_utilities.cc */,
+				16C7CC9B147D4A4300776EAD /* macho_utilities.h */,
+				16C7CC9C147D4A4300776EAD /* macho_walker.cc */,
+				16C7CC9D147D4A4300776EAD /* macho_walker.h */,
+				16C7CC9F147D4A4300776EAD /* string_utilities.cc */,
+				16C7CCA0147D4A4300776EAD /* string_utilities.h */,
+			);
+			path = mac;
+			sourceTree = "<group>";
+		};
+		32C88DFF0371C24200C91783 /* Other Sources */ = {
+			isa = PBXGroup;
+			children = (
+				AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */,
+			);
+			name = "Other Sources";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC07A0554694100DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AA747D9F0F9514B9006C5449 /* Breakpad_Prefix.pch in Headers */,
+				16C7CCCB147D4A4300776EAD /* BreakpadDefines.h in Headers */,
+				16C7CCCC147D4A4300776EAD /* Breakpad.h in Headers */,
+				16C7CDE8147D4A4300776EAD /* ConfigFile.h in Headers */,
+				14569321182CE29F0029C465 /* ucontext_compat.h in Headers */,
+				16C7CDF6147D4A4300776EAD /* breakpad_nlist_64.h in Headers */,
+				16C7CDF8147D4A4300776EAD /* dynamic_images.h in Headers */,
+				16C7CDFA147D4A4300776EAD /* exception_handler.h in Headers */,
+				16C7CDFD147D4A4300776EAD /* minidump_generator.h in Headers */,
+				16C7CDFF147D4A4300776EAD /* protected_memory_allocator.h in Headers */,
+				16C7CE08147D4A4300776EAD /* uploader.h in Headers */,
+				16C7CE18147D4A4300776EAD /* minidump_file_writer-inl.h in Headers */,
+				16C7CE1A147D4A4300776EAD /* minidump_file_writer.h in Headers */,
+				16C7CE41147D4A4300776EAD /* convert_UTF.h in Headers */,
+				16C7CE78147D4A4300776EAD /* GTMLogger.h in Headers */,
+				16C7CE7A147D4A4300776EAD /* HTTPMultipartUpload.h in Headers */,
+				16C7CE84147D4A4300776EAD /* file_id.h in Headers */,
+				16C7CE86147D4A4300776EAD /* macho_id.h in Headers */,
+				16C7CE8B147D4A4300776EAD /* macho_utilities.h in Headers */,
+				16C7CE8D147D4A4300776EAD /* macho_walker.h in Headers */,
+				16C7CE90147D4A4300776EAD /* string_utilities.h in Headers */,
+				16C7CE94147D4A4300776EAD /* md5.h in Headers */,
+				16C7CEA8147D4A4300776EAD /* string_conversion.h in Headers */,
+				16BFA67014E195E9009704F8 /* ios_exception_minidump_generator.h in Headers */,
+				16C92FAD150DF8330053D7BA /* BreakpadController.h in Headers */,
+				CF706DC11F7C6EFB002C54C7 /* long_string_dictionary.h in Headers */,
+				1EEEB6101720821900F7E689 /* simple_string_dictionary.h in Headers */,
+				14569323182CE2C10029C465 /* mach_vm_compat.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC07D0554694100DB518D /* Breakpad */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
+			buildPhases = (
+				D2AAC07A0554694100DB518D /* Headers */,
+				D2AAC07B0554694100DB518D /* Sources */,
+				D2AAC07C0554694100DB518D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Breakpad;
+			productName = Breakpad;
+			productReference = D2AAC07E0554694100DB518D /* libBreakpad.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		0867D690FE84028FC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0510;
+			};
+			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Breakpad" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+				da,
+				de,
+				es,
+				fr,
+				it,
+				ja,
+				nl,
+				no,
+				sl,
+				sv,
+				tr,
+			);
+			mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */;
+			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC07D0554694100DB518D /* Breakpad */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC07B0554694100DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				16C7CCCD147D4A4300776EAD /* Breakpad.mm in Sources */,
+				16C7CDE9147D4A4300776EAD /* ConfigFile.mm in Sources */,
+				16C7CDF5147D4A4300776EAD /* breakpad_nlist_64.cc in Sources */,
+				16C7CDF7147D4A4300776EAD /* dynamic_images.cc in Sources */,
+				16C7CDF9147D4A4300776EAD /* exception_handler.cc in Sources */,
+				16C7CDFC147D4A4300776EAD /* minidump_generator.cc in Sources */,
+				16C7CDFE147D4A4300776EAD /* protected_memory_allocator.cc in Sources */,
+				16C7CE09147D4A4300776EAD /* uploader.mm in Sources */,
+				CF6D547D1F9E6FFE00E95174 /* long_string_dictionary.cc in Sources */,
+				16C7CE19147D4A4300776EAD /* minidump_file_writer.cc in Sources */,
+				16C7CE40147D4A4300776EAD /* convert_UTF.cc in Sources */,
+				16C7CE79147D4A4300776EAD /* GTMLogger.m in Sources */,
+				16C7CE7B147D4A4300776EAD /* HTTPMultipartUpload.m in Sources */,
+				16C7CE83147D4A4300776EAD /* file_id.cc in Sources */,
+				16C7CE85147D4A4300776EAD /* macho_id.cc in Sources */,
+				16C7CE8A147D4A4300776EAD /* macho_utilities.cc in Sources */,
+				16C7CE8C147D4A4300776EAD /* macho_walker.cc in Sources */,
+				16C7CE8F147D4A4300776EAD /* string_utilities.cc in Sources */,
+				16C7CE93147D4A4300776EAD /* md5.cc in Sources */,
+				16C7CEA7147D4A4300776EAD /* string_conversion.cc in Sources */,
+				16BFA67214E1965A009704F8 /* ios_exception_minidump_generator.mm in Sources */,
+				16C92FAE150DF8330053D7BA /* BreakpadController.mm in Sources */,
+				1EEEB60F1720821900F7E689 /* simple_string_dictionary.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB921F08733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LIBRARY = "libc++";
+				COPY_PHASE_STRIP = NO;
+				DSTROOT = /tmp/Breakpad.dst;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../mac/build/Debug\"",
+				);
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Breakpad_Prefix.pch;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Debug\"",
+					"\"$(SRCROOT)/../mac/gcov\"",
+				);
+				PRODUCT_NAME = Breakpad;
+			};
+			name = Debug;
+		};
+		1DEB922008733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LIBRARY = "libc++";
+				DSTROOT = /tmp/Breakpad.dst;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../mac/build/Debug\"",
+				);
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Breakpad_Prefix.pch;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/i386\"",
+					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/x86_64\"",
+					"\"$(SRCROOT)/../mac/build/Debug\"",
+					"\"$(SRCROOT)/../mac/gcov\"",
+				);
+				PRODUCT_NAME = Breakpad;
+			};
+			name = Release;
+		};
+		1DEB922308733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_SHADOW = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNKNOWN_PRAGMAS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					../../,
+					../../client/apple/Framework,
+					../../common/mac,
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				SDKROOT = iphoneos;
+				WARNING_CFLAGS = "-Wundef";
+			};
+			name = Debug;
+		};
+		1DEB922408733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_SHADOW = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNKNOWN_PRAGMAS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					../../,
+					../../client/apple/Framework,
+					../../common/mac,
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+				OTHER_LDFLAGS = "-ObjC";
+				SDKROOT = iphoneos;
+				WARNING_CFLAGS = "-Wundef";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB921F08733DC00010E9CD /* Debug */,
+				1DEB922008733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Breakpad" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB922308733DC00010E9CD /* Debug */,
+				1DEB922408733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/src/client/ios/BreakpadController.h b/src/client/ios/BreakpadController.h
new file mode 100644
index 0000000..6c70c20
--- /dev/null
+++ b/src/client/ios/BreakpadController.h
@@ -0,0 +1,154 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
+#define CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
+
+#import <Foundation/Foundation.h>
+
+#import "client/ios/Breakpad.h"
+
+// This class is used to offer a higher level API around BreakpadRef. It
+// configures it, ensures thread-safety, and sends crash reports back to the
+// collecting server. By default, no crash reports are sent, the user must call
+// |setUploadingEnabled:YES| to start the uploading.
+@interface BreakpadController : NSObject {
+ @private
+  // The dispatch queue that will own the breakpad reference.
+  dispatch_queue_t queue_;
+
+  // Instance of Breakpad crash reporter. This is owned by the queue, but can
+  // be created on the main thread at startup.
+  BreakpadRef breakpadRef_;
+
+  // The dictionary that contains configuration for breakpad. Modifying it
+  // should only happen when the controller is not started. The initial value
+  // is the infoDictionary of the bundle of the application.
+  NSMutableDictionary* configuration_;
+
+  // Whether or not crash reports should be uploaded.
+  BOOL enableUploads_;
+
+  // Whether the controller has been started on the main thread. This is only
+  // used to assert the initialization order is correct.
+  BOOL started_;
+
+  // The interval to wait between two uploads. Value is 0 if no upload must be
+  // done.
+  int uploadIntervalInSeconds_;
+
+  // The dictionary that contains additional server parameters to send when
+  // uploading crash reports.
+  NSDictionary* uploadTimeParameters_;
+
+  // The callback to call on report upload completion.
+  BreakpadUploadCompletionCallback uploadCompleteCallback_;
+}
+
+// Singleton.
++ (BreakpadController*)sharedInstance;
+
+// Update the controller configuration. Merges its old configuration with the
+// new one. Merge is done by replacing the old values by the new values.
+- (void)updateConfiguration:(NSDictionary*)configuration;
+
+// Reset the controller configuration to its initial value, which is the
+// infoDictionary of the bundle of the application.
+- (void)resetConfiguration;
+
+// Configure the URL to upload the report to. This must be called at least once
+// if the URL is not in the bundle information.
+- (void)setUploadingURL:(NSString*)url;
+
+// Set the minimal interval between two uploads in seconds. This must be called
+// at least once if the interval is not in the bundle information. A value of 0
+// will prevent uploads.
+- (void)setUploadInterval:(int)intervalInSeconds;
+
+// Set additional server parameters to send when uploading crash reports.
+- (void)setParametersToAddAtUploadTime:(NSDictionary*)uploadTimeParameters;
+
+// Specify an upload parameter that will be added to the crash report when a
+// crash report is generated. See |BreakpadAddUploadParameter|.
+- (void)addUploadParameter:(NSString*)value forKey:(NSString*)key;
+
+// Sets the callback to be called after uploading a crash report to the server.
+// Only the latest callback registered will be called.
+- (void)setUploadCallback:(BreakpadUploadCompletionCallback)callback;
+
+// Remove a previously-added parameter from the upload parameter set. See
+// |BreakpadRemoveUploadParameter|.
+- (void)removeUploadParameterForKey:(NSString*)key;
+
+// Access the underlying BreakpadRef. This method is asynchronous, and will be
+// executed on the thread owning the BreakpadRef variable. Moreover, if the
+// controller is not started, the block will be called with a NULL parameter.
+- (void)withBreakpadRef:(void(^)(BreakpadRef))callback;
+
+// Starts the BreakpadController by registering crash handlers. If
+// |onCurrentThread| is YES, all setup is done on the current thread, otherwise
+// it is done on a private queue.
+- (void)start:(BOOL)onCurrentThread;
+
+// Unregisters the crash handlers.
+- (void)stop;
+
+// Returns whether or not the controller is started.
+- (BOOL)isStarted;
+
+// Enables or disables uploading of crash reports, but does not stop the
+// BreakpadController.
+- (void)setUploadingEnabled:(BOOL)enabled;
+
+// Check if there is currently a crash report to upload.
+- (void)hasReportToUpload:(void(^)(BOOL))callback;
+
+// Get the number of crash reports waiting to upload.
+- (void)getCrashReportCount:(void(^)(int))callback;
+
+// Get the next report to upload.
+// - If upload is disabled, callback will be called with (nil, -1).
+// - If a delay is to be waited before sending, callback will be called with
+//   (nil, n), with n (> 0) being the number of seconds to wait.
+// - if no delay is needed, callback will be called with (0, configuration),
+//   configuration being next report to upload, or nil if none is pending.
+- (void)getNextReportConfigurationOrSendDelay:
+    (void(^)(NSDictionary*, int))callback;
+
+// Get the date of the most recent crash report.
+- (void)getDateOfMostRecentCrashReport:(void(^)(NSDate *))callback;
+
+// Sends synchronously the report specified by |configuration|. This method is
+// NOT thread safe and must be called from the breakpad thread.
+- (void)threadUnsafeSendReportWithConfiguration:(NSDictionary*)configuration
+                                withBreakpadRef:(BreakpadRef)ref;
+
+@end
+
+#endif  // CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
diff --git a/src/client/ios/BreakpadController.mm b/src/client/ios/BreakpadController.mm
new file mode 100644
index 0000000..01fb5f1
--- /dev/null
+++ b/src/client/ios/BreakpadController.mm
@@ -0,0 +1,374 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "BreakpadController.h"
+
+#import <UIKit/UIKit.h>
+#include <asl.h>
+#include <execinfo.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sys/sysctl.h>
+
+#include <common/scoped_ptr.h>
+
+#pragma mark -
+#pragma mark Private Methods
+
+@interface BreakpadController ()
+
+// Init the singleton instance.
+- (id)initSingleton;
+
+// Load a crash report and send it to the server.
+- (void)sendStoredCrashReports;
+
+// Returns when a report can be sent. |-1| means never, |0| means that a report
+// can be sent immediately, a positive number is the number of seconds to wait
+// before being allowed to upload a report.
+- (int)sendDelay;
+
+// Notifies that a report will be sent, and update the last sending time
+// accordingly.
+- (void)reportWillBeSent;
+
+@end
+
+#pragma mark -
+#pragma mark Anonymous namespace
+
+namespace {
+
+// The name of the user defaults key for the last submission to the crash
+// server.
+NSString* const kLastSubmission = @"com.google.Breakpad.LastSubmission";
+
+// Returns a NSString describing the current platform.
+NSString* GetPlatform() {
+  // Name of the system call for getting the platform.
+  static const char kHwMachineSysctlName[] = "hw.machine";
+
+  NSString* result = nil;
+
+  size_t size = 0;
+  if (sysctlbyname(kHwMachineSysctlName, NULL, &size, NULL, 0) || size == 0)
+    return nil;
+  google_breakpad::scoped_array<char> machine(new char[size]);
+  if (sysctlbyname(kHwMachineSysctlName, machine.get(), &size, NULL, 0) == 0)
+    result = [NSString stringWithUTF8String:machine.get()];
+  return result;
+}
+
+}  // namespace
+
+#pragma mark -
+#pragma mark BreakpadController Implementation
+
+@implementation BreakpadController
+
++ (BreakpadController*)sharedInstance {
+  static dispatch_once_t onceToken;
+  static BreakpadController* sharedInstance ;
+  dispatch_once(&onceToken, ^{
+      sharedInstance = [[BreakpadController alloc] initSingleton];
+  });
+  return sharedInstance;
+}
+
+- (id)init {
+  return nil;
+}
+
+- (id)initSingleton {
+  self = [super init];
+  if (self) {
+    queue_ = dispatch_queue_create("com.google.BreakpadQueue", NULL);
+    enableUploads_ = NO;
+    started_ = NO;
+    [self resetConfiguration];
+  }
+  return self;
+}
+
+// Since this class is a singleton, this method is not expected to be called.
+- (void)dealloc {
+  assert(!breakpadRef_);
+  dispatch_release(queue_);
+  [configuration_ release];
+  [uploadTimeParameters_ release];
+  [super dealloc];
+}
+
+#pragma mark -
+
+- (void)start:(BOOL)onCurrentThread {
+  if (started_)
+    return;
+  started_ = YES;
+  void(^startBlock)() = ^{
+      assert(!breakpadRef_);
+      breakpadRef_ = BreakpadCreate(configuration_);
+      if (breakpadRef_) {
+        BreakpadAddUploadParameter(breakpadRef_, @"platform", GetPlatform());
+      }
+  };
+  if (onCurrentThread)
+    startBlock();
+  else
+    dispatch_async(queue_, startBlock);
+}
+
+- (void)stop {
+  if (!started_)
+    return;
+  started_ = NO;
+  dispatch_sync(queue_, ^{
+      if (breakpadRef_) {
+        BreakpadRelease(breakpadRef_);
+        breakpadRef_ = NULL;
+      }
+  });
+}
+
+- (BOOL)isStarted {
+  return started_;
+}
+
+// This method must be called from the breakpad queue.
+- (void)threadUnsafeSendReportWithConfiguration:(NSDictionary*)configuration
+                                withBreakpadRef:(BreakpadRef)ref {
+  NSAssert(started_, @"The controller must be started before "
+                     "threadUnsafeSendReportWithConfiguration is called");
+  if (breakpadRef_) {
+    BreakpadUploadReportWithParametersAndConfiguration(
+        breakpadRef_, uploadTimeParameters_, configuration,
+        uploadCompleteCallback_);
+  }
+}
+
+- (void)setUploadingEnabled:(BOOL)enabled {
+  NSAssert(started_,
+      @"The controller must be started before setUploadingEnabled is called");
+  dispatch_async(queue_, ^{
+      if (enabled == enableUploads_)
+        return;
+      if (enabled) {
+        // Set this before calling doSendStoredCrashReport, because that
+        // calls sendDelay, which in turn checks this flag.
+        enableUploads_ = YES;
+        [self sendStoredCrashReports];
+      } else {
+        // disable the enableUpload_ flag.
+        // sendDelay checks this flag and disables the upload of logs by sendStoredCrashReports
+        enableUploads_ = NO;
+      }
+  });
+}
+
+- (void)updateConfiguration:(NSDictionary*)configuration {
+  NSAssert(!started_,
+      @"The controller must not be started when updateConfiguration is called");
+  [configuration_ addEntriesFromDictionary:configuration];
+  NSString *uploadInterval =
+      [configuration_ valueForKey:@BREAKPAD_REPORT_INTERVAL];
+  if (uploadInterval)
+    [self setUploadInterval:[uploadInterval intValue]];
+}
+
+- (void)resetConfiguration {
+  NSAssert(!started_,
+      @"The controller must not be started when resetConfiguration is called");
+  [configuration_ autorelease];
+  configuration_ = [[[NSBundle mainBundle] infoDictionary] mutableCopy];
+  NSString *uploadInterval =
+      [configuration_ valueForKey:@BREAKPAD_REPORT_INTERVAL];
+  [self setUploadInterval:[uploadInterval intValue]];
+  [self setParametersToAddAtUploadTime:nil];
+}
+
+- (void)setUploadingURL:(NSString*)url {
+  NSAssert(!started_,
+      @"The controller must not be started when setUploadingURL is called");
+  [configuration_ setValue:url forKey:@BREAKPAD_URL];
+}
+
+- (void)setUploadInterval:(int)intervalInSeconds {
+  NSAssert(!started_,
+      @"The controller must not be started when setUploadInterval is called");
+  [configuration_ removeObjectForKey:@BREAKPAD_REPORT_INTERVAL];
+  uploadIntervalInSeconds_ = intervalInSeconds;
+  if (uploadIntervalInSeconds_ < 0)
+    uploadIntervalInSeconds_ = 0;
+}
+
+- (void)setParametersToAddAtUploadTime:(NSDictionary*)uploadTimeParameters {
+  NSAssert(!started_, @"The controller must not be started when "
+                      "setParametersToAddAtUploadTime is called");
+  [uploadTimeParameters_ autorelease];
+  uploadTimeParameters_ = [uploadTimeParameters copy];
+}
+
+- (void)addUploadParameter:(NSString*)value forKey:(NSString*)key {
+  NSAssert(started_,
+      @"The controller must be started before addUploadParameter is called");
+  dispatch_async(queue_, ^{
+      if (breakpadRef_)
+        BreakpadAddUploadParameter(breakpadRef_, key, value);
+  });
+}
+
+- (void)setUploadCallback:(BreakpadUploadCompletionCallback)callback {
+  NSAssert(started_,
+           @"The controller must not be started before setUploadCallback is "
+            "called");
+  dispatch_async(queue_, ^{
+    uploadCompleteCallback_ = callback;
+  });
+}
+
+- (void)removeUploadParameterForKey:(NSString*)key {
+  NSAssert(started_, @"The controller must be started before "
+                     "removeUploadParameterForKey is called");
+  dispatch_async(queue_, ^{
+      if (breakpadRef_)
+        BreakpadRemoveUploadParameter(breakpadRef_, key);
+  });
+}
+
+- (void)withBreakpadRef:(void(^)(BreakpadRef))callback {
+  dispatch_async(queue_, ^{
+      callback(started_ ? breakpadRef_ : NULL);
+  });
+}
+
+- (void)hasReportToUpload:(void(^)(BOOL))callback {
+  NSAssert(started_, @"The controller must be started before "
+                     "hasReportToUpload is called");
+  dispatch_async(queue_, ^{
+      callback(breakpadRef_ && (BreakpadGetCrashReportCount(breakpadRef_) > 0));
+  });
+}
+
+- (void)getCrashReportCount:(void(^)(int))callback {
+  NSAssert(started_, @"The controller must be started before "
+                     "getCrashReportCount is called");
+  dispatch_async(queue_, ^{
+      callback(breakpadRef_ ? BreakpadGetCrashReportCount(breakpadRef_) : 0);
+  });
+}
+
+- (void)getNextReportConfigurationOrSendDelay:
+    (void(^)(NSDictionary*, int))callback {
+  NSAssert(started_, @"The controller must be started before "
+                     "getNextReportConfigurationOrSendDelay is called");
+  dispatch_async(queue_, ^{
+      if (!breakpadRef_) {
+        callback(nil, -1);
+        return;
+      }
+      int delay = [self sendDelay];
+      if (delay != 0) {
+        callback(nil, delay);
+        return;
+      }
+      [self reportWillBeSent];
+      callback(BreakpadGetNextReportConfiguration(breakpadRef_), 0);
+  });
+}
+
+- (void)getDateOfMostRecentCrashReport:(void(^)(NSDate *))callback {
+  NSAssert(started_, @"The controller must be started before "
+           "getDateOfMostRecentCrashReport is called");
+  dispatch_async(queue_, ^{
+    if (!breakpadRef_) {
+      callback(nil);
+      return;
+    }
+    callback(BreakpadGetDateOfMostRecentCrashReport(breakpadRef_));
+  });
+}
+
+#pragma mark -
+
+- (int)sendDelay {
+  if (!breakpadRef_ || uploadIntervalInSeconds_ <= 0 || !enableUploads_)
+    return -1;
+
+  // To prevent overloading the crash server, crashes are not sent than one
+  // report every |uploadIntervalInSeconds_|. A value in the user defaults is
+  // used to keep the time of the last upload.
+  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+  NSNumber *lastTimeNum = [userDefaults objectForKey:kLastSubmission];
+  NSTimeInterval lastTime = lastTimeNum ? [lastTimeNum floatValue] : 0;
+  NSTimeInterval spanSeconds = CFAbsoluteTimeGetCurrent() - lastTime;
+
+  if (spanSeconds >= uploadIntervalInSeconds_)
+    return 0;
+  return uploadIntervalInSeconds_ - static_cast<int>(spanSeconds);
+}
+
+- (void)reportWillBeSent {
+  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+  [userDefaults setObject:[NSNumber numberWithDouble:CFAbsoluteTimeGetCurrent()]
+                   forKey:kLastSubmission];
+  [userDefaults synchronize];
+}
+
+// This method must be called from the breakpad queue.
+- (void)sendStoredCrashReports {
+  if (BreakpadGetCrashReportCount(breakpadRef_) == 0)
+    return;
+
+  int timeToWait = [self sendDelay];
+
+  // Unable to ever send report.
+  if (timeToWait == -1)
+    return;
+
+  // A report can be sent now.
+  if (timeToWait == 0) {
+    [self reportWillBeSent];
+    BreakpadUploadNextReportWithParameters(breakpadRef_, uploadTimeParameters_,
+                                           uploadCompleteCallback_);
+
+    // If more reports must be sent, make sure this method is called again.
+    if (BreakpadGetCrashReportCount(breakpadRef_) > 0)
+      timeToWait = uploadIntervalInSeconds_;
+  }
+
+  // A report must be sent later.
+  if (timeToWait > 0) {
+    dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeToWait * NSEC_PER_SEC));
+    dispatch_after(delay, queue_, ^{
+        [self sendStoredCrashReports];
+    });
+  }
+}
+
+@end
diff --git a/src/client/ios/Breakpad_Prefix.pch b/src/client/ios/Breakpad_Prefix.pch
new file mode 100644
index 0000000..bfb7394
--- /dev/null
+++ b/src/client/ios/Breakpad_Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
+//
+
+#ifdef __OBJC__
+    #import <Foundation/Foundation.h>
+#endif
diff --git a/src/client/ios/exception_handler_no_mach.cc b/src/client/ios/exception_handler_no_mach.cc
new file mode 100644
index 0000000..cb26449
--- /dev/null
+++ b/src/client/ios/exception_handler_no_mach.cc
@@ -0,0 +1,262 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <signal.h>
+#include <TargetConditionals.h>
+
+#include "client/mac/handler/minidump_generator.h"
+#include "client/ios/exception_handler_no_mach.h"
+
+#ifndef USE_PROTECTED_ALLOCATIONS
+#if TARGET_OS_TV
+#define USE_PROTECTED_ALLOCATIONS 1
+#else
+#define USE_PROTECTED_ALLOCATIONS 0
+#endif
+#endif
+
+// If USE_PROTECTED_ALLOCATIONS is activated then the
+// gBreakpadAllocator needs to be setup in other code
+// ahead of time.  Please see ProtectedMemoryAllocator.h
+// for more details.
+#if USE_PROTECTED_ALLOCATIONS
+  #include "client/mac/handler/protected_memory_allocator.h"
+  extern ProtectedMemoryAllocator* gBreakpadAllocator;
+#endif
+
+namespace google_breakpad {
+
+const int kExceptionSignals[] = {
+   // Core-generating signals.
+  SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGQUIT, SIGSEGV, SIGSYS, SIGTRAP, SIGEMT,
+  SIGXCPU, SIGXFSZ,
+  // Non-core-generating but terminating signals.
+  SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGPROF, SIGTERM, SIGUSR1, SIGUSR2,
+  SIGVTALRM, SIGXCPU, SIGXFSZ, SIGIO,
+};
+const int kNumHandledSignals =
+    sizeof(kExceptionSignals) / sizeof(kExceptionSignals[0]);
+struct scoped_ptr<struct sigaction> old_handlers[kNumHandledSignals];
+
+static union {
+#if USE_PROTECTED_ALLOCATIONS
+#if defined PAGE_MAX_SIZE
+  char protected_buffer[PAGE_MAX_SIZE] __attribute__((aligned(PAGE_MAX_SIZE)));
+#else
+  char protected_buffer[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE)));
+#endif  // defined PAGE_MAX_SIZE
+#endif  // USE_PROTECTED_ALLOCATIONS
+  google_breakpad::ExceptionHandler* handler;
+} gProtectedData;
+
+ExceptionHandler::ExceptionHandler(const string& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   bool install_handler,
+                                   const char* port_name)
+    : dump_path_(),
+      filter_(filter),
+      callback_(callback),
+      callback_context_(callback_context),
+      directCallback_(NULL),
+      installed_exception_handler_(false),
+      is_in_teardown_(false) {
+  // This will update to the ID and C-string pointers
+  set_dump_path(dump_path);
+  MinidumpGenerator::GatherSystemInformation();
+  Setup();
+}
+
+// special constructor if we want to bypass minidump writing and
+// simply get a callback with the exception information
+ExceptionHandler::ExceptionHandler(DirectCallback callback,
+                                   void* callback_context,
+                                   bool install_handler)
+    : dump_path_(),
+      filter_(NULL),
+      callback_(NULL),
+      callback_context_(callback_context),
+      directCallback_(callback),
+      installed_exception_handler_(false),
+      is_in_teardown_(false) {
+  MinidumpGenerator::GatherSystemInformation();
+  Setup();
+}
+
+ExceptionHandler::~ExceptionHandler() {
+  Teardown();
+}
+
+bool ExceptionHandler::WriteMinidumpWithException(
+    int exception_type,
+    int exception_code,
+    int exception_subcode,
+    breakpad_ucontext_t* task_context,
+    mach_port_t thread_name,
+    bool exit_after_write,
+    bool report_current_thread) {
+  bool result = false;
+
+#if !TARGET_OS_TV
+  exit_after_write = false;
+#endif  // !TARGET_OS_TV
+
+  if (directCallback_) {
+    if (directCallback_(callback_context_,
+                        exception_type,
+                        exception_code,
+                        exception_subcode,
+                        thread_name) ) {
+      if (exit_after_write)
+        _exit(exception_type);
+    }
+  } else {
+    string minidump_id;
+
+    // Putting the MinidumpGenerator in its own context will ensure that the
+    // destructor is executed, closing the newly created minidump file.
+    if (!dump_path_.empty()) {
+      MinidumpGenerator md(mach_task_self(),
+                           report_current_thread ? MACH_PORT_NULL :
+                                                   mach_thread_self());
+      md.SetTaskContext(task_context);
+      if (exception_type && exception_code) {
+        // If this is a real exception, give the filter (if any) a chance to
+        // decide if this should be sent.
+        if (filter_ && !filter_(callback_context_))
+          return false;
+
+        md.SetExceptionInformation(exception_type, exception_code,
+                                   exception_subcode, thread_name);
+      }
+
+      result = md.Write(next_minidump_path_c_);
+    }
+
+    // Call user specified callback (if any)
+    if (callback_) {
+      // If the user callback returned true and we're handling an exception
+      // (rather than just writing out the file), then we should exit without
+      // forwarding the exception to the next handler.
+      if (callback_(dump_path_c_, next_minidump_id_c_, callback_context_,
+                    result)) {
+        if (exit_after_write)
+          _exit(exception_type);
+      }
+    }
+  }
+
+  return result;
+}
+
+// static
+void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) {
+#if USE_PROTECTED_ALLOCATIONS
+  if (gBreakpadAllocator)
+    gBreakpadAllocator->Unprotect();
+#endif
+  gProtectedData.handler->WriteMinidumpWithException(
+      EXC_SOFTWARE,
+      MD_EXCEPTION_CODE_MAC_ABORT,
+      0,
+      static_cast<breakpad_ucontext_t*>(uc),
+      mach_thread_self(),
+      true,
+      true);
+#if USE_PROTECTED_ALLOCATIONS
+  if (gBreakpadAllocator)
+    gBreakpadAllocator->Protect();
+#endif
+}
+
+bool ExceptionHandler::InstallHandlers() {
+  // If a handler is already installed, something is really wrong.
+  if (gProtectedData.handler != NULL)
+    return false;
+  for (int i = 0; i < kNumHandledSignals; ++i) {
+    struct sigaction sa;
+    memset(&sa, 0, sizeof(sa));
+    sigemptyset(&sa.sa_mask);
+    sigaddset(&sa.sa_mask, kExceptionSignals[i]);
+    sa.sa_sigaction = ExceptionHandler::SignalHandler;
+    sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
+
+    if (sigaction(kExceptionSignals[i], &sa, old_handlers[i].get()) == -1) {
+      return false;
+    }
+  }
+  gProtectedData.handler = this;
+#if USE_PROTECTED_ALLOCATIONS
+  assert(((size_t)(gProtectedData.protected_buffer) & PAGE_MASK) == 0);
+  mprotect(gProtectedData.protected_buffer, PAGE_SIZE, PROT_READ);
+#endif  // USE_PROTECTED_ALLOCATIONS
+  installed_exception_handler_ = true;
+  return true;
+}
+
+bool ExceptionHandler::UninstallHandlers() {
+  for (int i = 0; i < kNumHandledSignals; ++i) {
+    if (old_handlers[i].get()) {
+      sigaction(kExceptionSignals[i], old_handlers[i].get(), NULL);
+      old_handlers[i].reset();
+    }
+  }
+#if USE_PROTECTED_ALLOCATIONS
+  mprotect(gProtectedData.protected_buffer, PAGE_SIZE, PROT_READ | PROT_WRITE);
+#endif  // USE_PROTECTED_ALLOCATIONS
+  gProtectedData.handler = NULL;
+  installed_exception_handler_ = false;
+  return true;
+}
+
+bool ExceptionHandler::Setup() {
+  if (!InstallHandlers())
+    return false;
+  return true;
+}
+
+bool ExceptionHandler::Teardown() {
+  is_in_teardown_ = true;
+
+  if (!UninstallHandlers())
+    return false;
+
+  return true;
+}
+
+void ExceptionHandler::UpdateNextID() {
+  next_minidump_path_ =
+    (MinidumpGenerator::UniqueNameInDirectory(dump_path_, &next_minidump_id_));
+
+  next_minidump_path_c_ = next_minidump_path_.c_str();
+  next_minidump_id_c_ = next_minidump_id_.c_str();
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/ios/exception_handler_no_mach.h b/src/client/ios/exception_handler_no_mach.h
new file mode 100644
index 0000000..ec598dc
--- /dev/null
+++ b/src/client/ios/exception_handler_no_mach.h
@@ -0,0 +1,179 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_IOS_HANDLER_EXCEPTION_HANDLER_NO_MACH_H__
+#define CLIENT_IOS_HANDLER_EXCEPTION_HANDLER_NO_MACH_H__
+
+#include <mach/mach.h>
+#include <TargetConditionals.h>
+
+#include <string>
+
+#include "client/mac/handler/ucontext_compat.h"
+#include "common/scoped_ptr.h"
+
+namespace google_breakpad {
+
+using std::string;
+
+class ExceptionHandler {
+ public:
+  // A callback function to run before Breakpad performs any substantial
+  // processing of an exception.  A FilterCallback is called before writing
+  // a minidump.  context is the parameter supplied by the user as
+  // callback_context when the handler was created.
+  //
+  // If a FilterCallback returns true, Breakpad will continue processing,
+  // attempting to write a minidump.  If a FilterCallback returns false, Breakpad
+  // will immediately report the exception as unhandled without writing a
+  // minidump, allowing another handler the opportunity to handle it.
+  typedef bool (*FilterCallback)(void* context);
+
+  // A callback function to run after the minidump has been written.
+  // |minidump_id| is a unique id for the dump, so the minidump
+  // file is <dump_dir>/<minidump_id>.dmp.
+  // |context| is the value passed into the constructor.
+  // |succeeded| indicates whether a minidump file was successfully written.
+  // Return true if the exception was fully handled and breakpad should exit.
+  // Return false to allow any other exception handlers to process the
+  // exception.
+  typedef bool (*MinidumpCallback)(const char* dump_dir,
+                                   const char* minidump_id,
+                                   void* context, bool succeeded);
+
+  // A callback function which will be called directly if an exception occurs.
+  // This bypasses the minidump file writing and simply gives the client
+  // the exception information.
+  typedef bool (*DirectCallback)(void* context,
+                                 int exception_type,
+                                 int exception_code,
+                                 int exception_subcode,
+                                 mach_port_t thread_name);
+
+  // Creates a new ExceptionHandler instance to handle writing minidumps.
+  // Minidump files will be written to dump_path, and the optional callback
+  // is called after writing the dump file, as described above.
+  // If install_handler is true, then a minidump will be written whenever
+  // an unhandled exception occurs.  If it is false, minidumps will only
+  // be written when WriteMinidump is called.
+  // If port_name is non-NULL, attempt to perform out-of-process dump generation
+  // If port_name is NULL, in-process dump generation will be used.
+  ExceptionHandler(const string& dump_path,
+                   FilterCallback filter, MinidumpCallback callback,
+                   void* callback_context, bool install_handler,
+                   const char* port_name);
+
+  // A special constructor if we want to bypass minidump writing and
+  // simply get a callback with the exception information.
+  ExceptionHandler(DirectCallback callback,
+                   void* callback_context,
+                   bool install_handler);
+
+  ~ExceptionHandler();
+
+  // Get and set the minidump path.
+  string dump_path() const { return dump_path_; }
+  void set_dump_path(const string& dump_path) {
+    dump_path_ = dump_path;
+    dump_path_c_ = dump_path_.c_str();
+    UpdateNextID();  // Necessary to put dump_path_ in next_minidump_path_.
+  }
+
+ private:
+  // Install the SIG exception handlers.
+  bool InstallHandlers();
+
+  // Uninstall the SIG exception handlers.
+  bool UninstallHandlers();
+
+  // Setup the handler thread, and if |install_handler| is true, install the
+  // mach exception port handler
+  bool Setup();
+
+  // Uninstall the mach exception handler (if any) and terminate the helper
+  // thread
+  bool Teardown();
+
+  // All minidump writing goes through this one routine.
+  // |task_context| can be NULL. If not, it will be used to retrieve the
+  // context of the current thread, instead of using |thread_get_state|.
+  bool WriteMinidumpWithException(int exception_type,
+                                  int exception_code,
+                                  int exception_subcode,
+                                  breakpad_ucontext_t* task_context,
+                                  mach_port_t thread_name,
+                                  bool exit_after_write,
+                                  bool report_current_thread);
+
+  // Signal handler for SIG exceptions.
+  static void SignalHandler(int sig, siginfo_t* info, void* uc);
+
+  // disallow copy ctor and operator=
+  explicit ExceptionHandler(const ExceptionHandler&);
+  void operator=(const ExceptionHandler&);
+
+  // Generates a new ID and stores it in next_minidump_id_, and stores the
+  // path of the next minidump to be written in next_minidump_path_.
+  void UpdateNextID();
+
+  // The destination directory for the minidump
+  string dump_path_;
+
+  // The basename of the next minidump w/o extension
+  string next_minidump_id_;
+
+  // The full path to the next minidump to be written, including extension
+  string next_minidump_path_;
+
+  // Pointers to the UTF-8 versions of above
+  const char* dump_path_c_;
+  const char* next_minidump_id_c_;
+  const char* next_minidump_path_c_;
+
+  // The callback function and pointer to be passed back after the minidump
+  // has been written
+  FilterCallback filter_;
+  MinidumpCallback callback_;
+  void* callback_context_;
+
+  // The callback function to be passed back when we don't want a minidump
+  // file to be written
+  DirectCallback directCallback_;
+
+  // True, if we've installed the exception handler
+  bool installed_exception_handler_;
+
+  // True, if we're in the process of uninstalling the exception handler and
+  // the thread.
+  bool is_in_teardown_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_IOS_HANDLER_EXCEPTION_HANDLER_NO_MACH_H__
diff --git a/src/client/ios/handler/ios_exception_minidump_generator.h b/src/client/ios/handler/ios_exception_minidump_generator.h
new file mode 100644
index 0000000..e48444a
--- /dev/null
+++ b/src/client/ios/handler/ios_exception_minidump_generator.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ios_exception_minidump_generator.h:  Create a fake minidump from a
+// NSException.
+
+#ifndef CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
+#define CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
+
+#include <Foundation/Foundation.h>
+
+#include "client/mac/handler/minidump_generator.h"
+
+namespace google_breakpad {
+
+class IosExceptionMinidumpGenerator : public MinidumpGenerator {
+ public:
+  explicit IosExceptionMinidumpGenerator(NSException* exception);
+  virtual ~IosExceptionMinidumpGenerator();
+
+ protected:
+  virtual bool WriteExceptionStream(MDRawDirectory* exception_stream);
+  virtual bool WriteThreadStream(mach_port_t thread_id, MDRawThread* thread);
+
+ private:
+
+  // Get the crashing program counter from the exception.
+  uintptr_t GetPCFromException();
+
+  // Get the crashing link register from the exception.
+  uintptr_t GetLRFromException();
+
+  // Write a virtual thread context for the crashing site.
+  bool WriteCrashingContext(MDLocationDescriptor* register_location);
+  // Per-CPU implementations of the above method.
+#ifdef HAS_ARM_SUPPORT
+  bool WriteCrashingContextARM(MDLocationDescriptor* register_location);
+#endif
+#ifdef HAS_ARM64_SUPPORT
+  bool WriteCrashingContextARM64(MDLocationDescriptor* register_location);
+#endif
+
+  NSArray* return_addresses_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
diff --git a/src/client/ios/handler/ios_exception_minidump_generator.mm b/src/client/ios/handler/ios_exception_minidump_generator.mm
new file mode 100644
index 0000000..2a5d76d
--- /dev/null
+++ b/src/client/ios/handler/ios_exception_minidump_generator.mm
@@ -0,0 +1,210 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/ios/handler/ios_exception_minidump_generator.h"
+
+#include <pthread.h>
+
+#include "google_breakpad/common/minidump_cpu_arm.h"
+#include "google_breakpad/common/minidump_cpu_arm64.h"
+#include "google_breakpad/common/minidump_exception_mac.h"
+#include "client/minidump_file_writer-inl.h"
+#include "common/scoped_ptr.h"
+
+#if defined(HAS_ARM_SUPPORT) && defined(HAS_ARM64_SUPPORT)
+#error "This file should be compiled for only one architecture at a time"
+#endif
+
+namespace {
+
+const int kExceptionType = EXC_SOFTWARE;
+const int kExceptionCode = MD_EXCEPTION_CODE_MAC_NS_EXCEPTION;
+
+#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
+const uintptr_t kExpectedFinalFp = sizeof(uintptr_t);
+const uintptr_t kExpectedFinalSp = 0;
+
+// Append the given value to the sp position of the stack represented
+// by memory.
+void AppendToMemory(uint8_t* memory, uintptr_t sp, uintptr_t data) {
+  memcpy(memory + sp, &data, sizeof(data));
+}
+#endif
+
+}  // namespace
+
+namespace google_breakpad {
+
+IosExceptionMinidumpGenerator::IosExceptionMinidumpGenerator(
+    NSException* exception)
+    : MinidumpGenerator(mach_task_self(), 0) {
+  return_addresses_ = [[exception callStackReturnAddresses] retain];
+  SetExceptionInformation(kExceptionType,
+                          kExceptionCode,
+                          0,
+                          pthread_mach_thread_np(pthread_self()));
+}
+
+IosExceptionMinidumpGenerator::~IosExceptionMinidumpGenerator() {
+  [return_addresses_ release];
+}
+
+bool IosExceptionMinidumpGenerator::WriteCrashingContext(
+    MDLocationDescriptor* register_location) {
+#ifdef HAS_ARM_SUPPORT
+  return WriteCrashingContextARM(register_location);
+#elif defined(HAS_ARM64_SUPPORT)
+  return WriteCrashingContextARM64(register_location);
+#else
+  assert(false);
+  return false;
+#endif
+}
+
+#ifdef HAS_ARM_SUPPORT
+bool IosExceptionMinidumpGenerator::WriteCrashingContextARM(
+    MDLocationDescriptor* register_location) {
+  TypedMDRVA<MDRawContextARM> context(&writer_);
+  if (!context.Allocate())
+    return false;
+  *register_location = context.location();
+  MDRawContextARM* context_ptr = context.get();
+  memset(context_ptr, 0, sizeof(MDRawContextARM));
+  context_ptr->context_flags = MD_CONTEXT_ARM_FULL;
+  context_ptr->iregs[MD_CONTEXT_ARM_REG_IOS_FP] = kExpectedFinalFp;  // FP
+  context_ptr->iregs[MD_CONTEXT_ARM_REG_SP] = kExpectedFinalSp;      // SP
+  context_ptr->iregs[MD_CONTEXT_ARM_REG_LR] = GetLRFromException();  // LR
+  context_ptr->iregs[MD_CONTEXT_ARM_REG_PC] = GetPCFromException();  // PC
+  return true;
+}
+#endif
+
+#ifdef HAS_ARM64_SUPPORT
+bool IosExceptionMinidumpGenerator::WriteCrashingContextARM64(
+    MDLocationDescriptor* register_location) {
+  TypedMDRVA<MDRawContextARM64_Old> context(&writer_);
+  if (!context.Allocate())
+    return false;
+  *register_location = context.location();
+  MDRawContextARM64_Old* context_ptr = context.get();
+  memset(context_ptr, 0, sizeof(*context_ptr));
+  context_ptr->context_flags = MD_CONTEXT_ARM64_FULL_OLD;
+  context_ptr->iregs[MD_CONTEXT_ARM64_REG_FP] = kExpectedFinalFp;      // FP
+  context_ptr->iregs[MD_CONTEXT_ARM64_REG_SP] = kExpectedFinalSp;      // SP
+  context_ptr->iregs[MD_CONTEXT_ARM64_REG_LR] = GetLRFromException();  // LR
+  context_ptr->iregs[MD_CONTEXT_ARM64_REG_PC] = GetPCFromException();  // PC
+  return true;
+}
+#endif
+
+uintptr_t IosExceptionMinidumpGenerator::GetPCFromException() {
+  return [[return_addresses_ objectAtIndex:0] unsignedIntegerValue];
+}
+
+uintptr_t IosExceptionMinidumpGenerator::GetLRFromException() {
+  return [[return_addresses_ objectAtIndex:1] unsignedIntegerValue];
+}
+
+bool IosExceptionMinidumpGenerator::WriteExceptionStream(
+    MDRawDirectory* exception_stream) {
+#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
+  TypedMDRVA<MDRawExceptionStream> exception(&writer_);
+
+  if (!exception.Allocate())
+    return false;
+
+  exception_stream->stream_type = MD_EXCEPTION_STREAM;
+  exception_stream->location = exception.location();
+  MDRawExceptionStream* exception_ptr = exception.get();
+  exception_ptr->thread_id = pthread_mach_thread_np(pthread_self());
+
+  // This naming is confusing, but it is the proper translation from
+  // mach naming to minidump naming.
+  exception_ptr->exception_record.exception_code = kExceptionType;
+  exception_ptr->exception_record.exception_flags = kExceptionCode;
+
+  if (!WriteCrashingContext(&exception_ptr->thread_context))
+    return false;
+
+  exception_ptr->exception_record.exception_address = GetPCFromException();
+  return true;
+#else
+  return MinidumpGenerator::WriteExceptionStream(exception_stream);
+#endif
+}
+
+bool IosExceptionMinidumpGenerator::WriteThreadStream(mach_port_t thread_id,
+                                                      MDRawThread* thread) {
+#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
+  if (pthread_mach_thread_np(pthread_self()) != thread_id)
+    return MinidumpGenerator::WriteThreadStream(thread_id, thread);
+
+  size_t frame_count = [return_addresses_ count];
+  if (frame_count == 0)
+    return false;
+  UntypedMDRVA memory(&writer_);
+  size_t pointer_size = sizeof(uintptr_t);
+  size_t frame_record_size = 2 * pointer_size;
+  size_t stack_size = frame_record_size * (frame_count - 1) + pointer_size;
+  if (!memory.Allocate(stack_size))
+    return false;
+  scoped_array<uint8_t> stack_memory(new uint8_t[stack_size]);
+  uintptr_t sp = stack_size - pointer_size;
+  uintptr_t fp = 0;
+  uintptr_t lr = 0;
+  for (size_t current_frame = frame_count - 1;
+       current_frame > 0;
+       --current_frame) {
+    AppendToMemory(stack_memory.get(), sp, lr);
+    sp -= pointer_size;
+    AppendToMemory(stack_memory.get(), sp, fp);
+    fp = sp;
+    sp -= pointer_size;
+    lr = [[return_addresses_ objectAtIndex:current_frame] unsignedIntegerValue];
+  }
+  if (!memory.Copy(stack_memory.get(), stack_size))
+    return false;
+  assert(sp == kExpectedFinalSp);
+  assert(fp == kExpectedFinalFp);
+  assert(lr == GetLRFromException());
+  thread->stack.start_of_memory_range = sp;
+  thread->stack.memory = memory.location();
+  memory_blocks_.push_back(thread->stack);
+
+  if (!WriteCrashingContext(&thread->thread_context))
+    return false;
+
+  thread->thread_id = thread_id;
+  return true;
+#else
+  return MinidumpGenerator::WriteThreadStream(thread_id, thread);
+#endif
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/crash_generation/client_info.h b/src/client/linux/crash_generation/client_info.h
new file mode 100644
index 0000000..d0a184a
--- /dev/null
+++ b/src/client/linux/crash_generation/client_info.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
+#define CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
+
+namespace google_breakpad {
+
+class CrashGenerationServer;
+
+class ClientInfo {
+ public:
+  ClientInfo(pid_t pid, CrashGenerationServer* crash_server)
+    : crash_server_(crash_server),
+      pid_(pid) {}
+
+  CrashGenerationServer* crash_server() const { return crash_server_; }
+  pid_t pid() const { return pid_; }
+
+ private:
+  CrashGenerationServer* crash_server_;
+  pid_t pid_;
+};
+
+}
+
+#endif // CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
diff --git a/src/client/linux/crash_generation/crash_generation_client.cc b/src/client/linux/crash_generation/crash_generation_client.cc
new file mode 100644
index 0000000..d8bfbba
--- /dev/null
+++ b/src/client/linux/crash_generation/crash_generation_client.cc
@@ -0,0 +1,105 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/linux/crash_generation/crash_generation_client.h"
+
+#include <stdio.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+#include <algorithm>
+
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/ignore_ret.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+namespace {
+
+class CrashGenerationClientImpl : public CrashGenerationClient {
+ public:
+  explicit CrashGenerationClientImpl(int server_fd) : server_fd_(server_fd) {}
+  virtual ~CrashGenerationClientImpl() {}
+
+  virtual bool RequestDump(const void* blob, size_t blob_size) {
+    int fds[2];
+    if (sys_pipe(fds) < 0)
+      return false;
+    static const unsigned kControlMsgSize = CMSG_SPACE(sizeof(int));
+
+    struct kernel_iovec iov;
+    iov.iov_base = const_cast<void*>(blob);
+    iov.iov_len = blob_size;
+
+    struct kernel_msghdr msg = { 0 };
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+    char cmsg[kControlMsgSize] = "";
+    msg.msg_control = cmsg;
+    msg.msg_controllen = sizeof(cmsg);
+
+    struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg);
+    hdr->cmsg_level = SOL_SOCKET;
+    hdr->cmsg_type = SCM_RIGHTS;
+    hdr->cmsg_len = CMSG_LEN(sizeof(int));
+    int* p = reinterpret_cast<int*>(CMSG_DATA(hdr));
+    *p = fds[1];
+
+    ssize_t ret = HANDLE_EINTR(sys_sendmsg(server_fd_, &msg, 0));
+    sys_close(fds[1]);
+    if (ret < 0) {
+      sys_close(fds[0]);
+      return false;
+    }
+
+    // Wait for an ACK from the server.
+    char b;
+    IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
+    sys_close(fds[0]);
+
+    return true;
+  }
+
+ private:
+  int server_fd_;
+
+  DISALLOW_COPY_AND_ASSIGN(CrashGenerationClientImpl);
+};
+
+}  // namespace
+
+// static
+CrashGenerationClient* CrashGenerationClient::TryCreate(int server_fd) {
+  if (server_fd < 0)
+    return NULL;
+  return new CrashGenerationClientImpl(server_fd);
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/crash_generation/crash_generation_client.h b/src/client/linux/crash_generation/crash_generation_client.h
new file mode 100644
index 0000000..4e68424
--- /dev/null
+++ b/src/client/linux/crash_generation/crash_generation_client.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+#define CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+
+#include "common/basictypes.h"
+
+#include <stddef.h>
+
+namespace google_breakpad {
+
+// CrashGenerationClient is an interface for implementing out-of-process crash
+// dumping.  The default implementation, accessed via the TryCreate() factory,
+// works in conjunction with the CrashGenerationServer to generate a minidump
+// via a remote process.
+class CrashGenerationClient {
+ public:
+  CrashGenerationClient() {}
+  virtual ~CrashGenerationClient() {}
+
+  // Request the crash server to generate a dump.  |blob| is an opaque
+  // CrashContext pointer from exception_handler.h.
+  // Returns true if the dump was successful; false otherwise.
+  virtual bool RequestDump(const void* blob, size_t blob_size) = 0;
+
+  // Returns a new CrashGenerationClient if |server_fd| is valid and
+  // connects to a CrashGenerationServer.  Otherwise, return NULL.
+  // The returned CrashGenerationClient* is owned by the caller of
+  // this function.
+  static CrashGenerationClient* TryCreate(int server_fd);
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(CrashGenerationClient);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
new file mode 100644
index 0000000..8332f59
--- /dev/null
+++ b/src/client/linux/crash_generation/crash_generation_server.cc
@@ -0,0 +1,333 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <poll.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <vector>
+
+#include "client/linux/crash_generation/crash_generation_server.h"
+#include "client/linux/crash_generation/client_info.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/guid_creator.h"
+#include "common/linux/safe_readlink.h"
+
+static const char kCommandQuit = 'x';
+
+namespace google_breakpad {
+
+CrashGenerationServer::CrashGenerationServer(
+  const int listen_fd,
+  OnClientDumpRequestCallback dump_callback,
+  void* dump_context,
+  OnClientExitingCallback exit_callback,
+  void* exit_context,
+  bool generate_dumps,
+  const string* dump_path) :
+    server_fd_(listen_fd),
+    dump_callback_(dump_callback),
+    dump_context_(dump_context),
+    exit_callback_(exit_callback),
+    exit_context_(exit_context),
+    generate_dumps_(generate_dumps),
+    started_(false)
+{
+  if (dump_path)
+    dump_dir_ = *dump_path;
+  else
+    dump_dir_ = "/tmp";
+}
+
+CrashGenerationServer::~CrashGenerationServer()
+{
+  if (started_)
+    Stop();
+}
+
+bool
+CrashGenerationServer::Start()
+{
+  if (started_ || 0 > server_fd_)
+    return false;
+
+  int control_pipe[2];
+  if (pipe(control_pipe))
+    return false;
+
+  if (fcntl(control_pipe[0], F_SETFD, FD_CLOEXEC))
+    return false;
+  if (fcntl(control_pipe[1], F_SETFD, FD_CLOEXEC))
+    return false;
+
+  if (fcntl(control_pipe[0], F_SETFL, O_NONBLOCK))
+    return false;
+
+  control_pipe_in_ = control_pipe[0];
+  control_pipe_out_ = control_pipe[1];
+
+  if (pthread_create(&thread_, NULL,
+                     ThreadMain, reinterpret_cast<void*>(this)))
+    return false;
+
+  started_ = true;
+  return true;
+}
+
+void
+CrashGenerationServer::Stop()
+{
+  assert(pthread_self() != thread_);
+
+  if (!started_)
+    return;
+
+  HANDLE_EINTR(write(control_pipe_out_, &kCommandQuit, 1));
+
+  void* dummy;
+  pthread_join(thread_, &dummy);
+
+  close(control_pipe_in_);
+  close(control_pipe_out_);
+
+  started_ = false;
+}
+
+//static
+bool
+CrashGenerationServer::CreateReportChannel(int* server_fd, int* client_fd)
+{
+  int fds[2];
+
+  if (socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds))
+    return false;
+
+  static const int on = 1;
+  // Enable passcred on the server end of the socket
+  if (setsockopt(fds[1], SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)))
+    return false;
+
+  if (fcntl(fds[1], F_SETFL, O_NONBLOCK))
+    return false;
+  if (fcntl(fds[1], F_SETFD, FD_CLOEXEC))
+    return false;
+
+  *client_fd = fds[0];
+  *server_fd = fds[1];
+  return true;
+}
+
+// The following methods/functions execute on the server thread
+
+void
+CrashGenerationServer::Run()
+{
+  struct pollfd pollfds[2];
+  memset(&pollfds, 0, sizeof(pollfds));
+
+  pollfds[0].fd = server_fd_;
+  pollfds[0].events = POLLIN;
+
+  pollfds[1].fd = control_pipe_in_;
+  pollfds[1].events = POLLIN;
+
+  while (true) {
+    // infinite timeout
+    int nevents = poll(pollfds, sizeof(pollfds)/sizeof(pollfds[0]), -1);
+    if (-1 == nevents) {
+      if (EINTR == errno) {
+        continue;
+      } else {
+        return;
+      }
+    }
+
+    if (pollfds[0].revents && !ClientEvent(pollfds[0].revents))
+      return;
+
+    if (pollfds[1].revents && !ControlEvent(pollfds[1].revents))
+      return;
+  }
+}
+
+bool
+CrashGenerationServer::ClientEvent(short revents)
+{
+  if (POLLHUP & revents)
+    return false;
+  assert(POLLIN & revents);
+
+  // A process has crashed and has signaled us by writing a datagram
+  // to the death signal socket. The datagram contains the crash context needed
+  // for writing the minidump as well as a file descriptor and a credentials
+  // block so that they can't lie about their pid.
+
+  // The length of the control message:
+  static const unsigned kControlMsgSize =
+      CMSG_SPACE(sizeof(int)) + CMSG_SPACE(sizeof(struct ucred));
+  // The length of the regular payload:
+  static const unsigned kCrashContextSize =
+      sizeof(google_breakpad::ExceptionHandler::CrashContext);
+
+  struct msghdr msg = {0};
+  struct iovec iov[1];
+  char crash_context[kCrashContextSize];
+  char control[kControlMsgSize];
+  const ssize_t expected_msg_size = sizeof(crash_context);
+
+  iov[0].iov_base = crash_context;
+  iov[0].iov_len = sizeof(crash_context);
+  msg.msg_iov = iov;
+  msg.msg_iovlen = sizeof(iov)/sizeof(iov[0]);
+  msg.msg_control = control;
+  msg.msg_controllen = kControlMsgSize;
+
+  const ssize_t msg_size = HANDLE_EINTR(recvmsg(server_fd_, &msg, 0));
+  if (msg_size != expected_msg_size)
+    return true;
+
+  if (msg.msg_controllen != kControlMsgSize ||
+      msg.msg_flags & ~MSG_TRUNC)
+    return true;
+
+  // Walk the control payload and extract the file descriptor and validated pid.
+  pid_t crashing_pid = -1;
+  int signal_fd = -1;
+  for (struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg); hdr;
+       hdr = CMSG_NXTHDR(&msg, hdr)) {
+    if (hdr->cmsg_level != SOL_SOCKET)
+      continue;
+    if (hdr->cmsg_type == SCM_RIGHTS) {
+      const unsigned len = hdr->cmsg_len -
+          (((uint8_t*)CMSG_DATA(hdr)) - (uint8_t*)hdr);
+      assert(len % sizeof(int) == 0u);
+      const unsigned num_fds = len / sizeof(int);
+      if (num_fds > 1 || num_fds == 0) {
+        // A nasty process could try and send us too many descriptors and
+        // force a leak.
+        for (unsigned i = 0; i < num_fds; ++i)
+          close(reinterpret_cast<int*>(CMSG_DATA(hdr))[i]);
+        return true;
+      } else {
+        signal_fd = reinterpret_cast<int*>(CMSG_DATA(hdr))[0];
+      }
+    } else if (hdr->cmsg_type == SCM_CREDENTIALS) {
+      const struct ucred* cred =
+          reinterpret_cast<struct ucred*>(CMSG_DATA(hdr));
+      crashing_pid = cred->pid;
+    }
+  }
+
+  if (crashing_pid == -1 || signal_fd == -1) {
+    if (signal_fd != -1)
+      close(signal_fd);
+    return true;
+  }
+
+  string minidump_filename;
+  if (!MakeMinidumpFilename(minidump_filename))
+    return true;
+
+  if (!google_breakpad::WriteMinidump(minidump_filename.c_str(),
+                                      crashing_pid, crash_context,
+                                      kCrashContextSize)) {
+    close(signal_fd);
+    return true;
+  }
+
+  if (dump_callback_) {
+    ClientInfo info(crashing_pid, this);
+
+    dump_callback_(dump_context_, &info, &minidump_filename);
+  }
+
+  // Send the done signal to the process: it can exit now.
+  // (Closing this will make the child's sys_read unblock and return 0.)
+  close(signal_fd);
+
+  return true;
+}
+
+bool
+CrashGenerationServer::ControlEvent(short revents)
+{
+  if (POLLHUP & revents)
+    return false;
+  assert(POLLIN & revents);
+
+  char command;
+  if (read(control_pipe_in_, &command, 1))
+    return false;
+
+  switch (command) {
+  case kCommandQuit:
+    return false;
+  default:
+    assert(0);
+  }
+
+  return true;
+}
+
+bool
+CrashGenerationServer::MakeMinidumpFilename(string& outFilename)
+{
+  GUID guid;
+  char guidString[kGUIDStringLength+1];
+
+  if (!(CreateGUID(&guid)
+        && GUIDToString(&guid, guidString, sizeof(guidString))))
+    return false;
+
+  char path[PATH_MAX];
+  snprintf(path, sizeof(path), "%s/%s.dmp", dump_dir_.c_str(), guidString);
+
+  outFilename = path;
+  return true;
+}
+
+// static
+void*
+CrashGenerationServer::ThreadMain(void* arg)
+{
+  reinterpret_cast<CrashGenerationServer*>(arg)->Run();
+  return NULL;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/crash_generation/crash_generation_server.h b/src/client/linux/crash_generation/crash_generation_server.h
new file mode 100644
index 0000000..483fb70
--- /dev/null
+++ b/src/client/linux/crash_generation/crash_generation_server.h
@@ -0,0 +1,135 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
+#define CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
+
+#include <pthread.h>
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class ClientInfo;
+
+class CrashGenerationServer {
+public:
+  // WARNING: callbacks may be invoked on a different thread
+  // than that which creates the CrashGenerationServer.  They must
+  // be thread safe.
+  typedef void (*OnClientDumpRequestCallback)(void* context,
+                                              const ClientInfo* client_info,
+                                              const string* file_path);
+
+  typedef void (*OnClientExitingCallback)(void* context,
+                                          const ClientInfo* client_info);
+
+  // Create an instance with the given parameters.
+  //
+  // Parameter listen_fd: The server fd created by CreateReportChannel().
+  // Parameter dump_callback: Callback for a client crash dump request.
+  // Parameter dump_context: Context for client crash dump request callback.
+  // Parameter exit_callback: Callback for client process exit.
+  // Parameter exit_context: Context for client exit callback.
+  // Parameter generate_dumps: Whether to automatically generate dumps.
+  //     Client code of this class might want to generate dumps explicitly
+  //     in the crash dump request callback. In that case, false can be
+  //     passed for this parameter.
+  // Parameter dump_path: Path for generating dumps; required only if true is
+  //     passed for generateDumps parameter; NULL can be passed otherwise.
+  CrashGenerationServer(const int listen_fd,
+                        OnClientDumpRequestCallback dump_callback,
+                        void* dump_context,
+                        OnClientExitingCallback exit_callback,
+                        void* exit_context,
+                        bool generate_dumps,
+                        const string* dump_path);
+
+  ~CrashGenerationServer();
+
+  // Perform initialization steps needed to start listening to clients.
+  //
+  // Return true if initialization is successful; false otherwise.
+  bool Start();
+
+  // Stop the server.
+  void Stop();
+
+  // Create a "channel" that can be used by clients to report crashes
+  // to a CrashGenerationServer.  |*server_fd| should be passed to
+  // this class's constructor, and |*client_fd| should be passed to
+  // the ExceptionHandler constructor in the client process.
+  static bool CreateReportChannel(int* server_fd, int* client_fd);
+
+private:
+  // Run the server's event loop
+  void Run();
+
+  // Invoked when an child process (client) event occurs
+  // Returning true => "keep running", false => "exit loop"
+  bool ClientEvent(short revents);
+
+  // Invoked when the controlling thread (main) event occurs
+  // Returning true => "keep running", false => "exit loop"
+  bool ControlEvent(short revents);
+
+  // Return a unique filename at which a minidump can be written
+  bool MakeMinidumpFilename(string& outFilename);
+
+  // Trampoline to |Run()|
+  static void* ThreadMain(void* arg);
+
+  int server_fd_;
+
+  OnClientDumpRequestCallback dump_callback_;
+  void* dump_context_;
+
+  OnClientExitingCallback exit_callback_;
+  void* exit_context_;
+
+  bool generate_dumps_;
+
+  string dump_dir_;
+
+  bool started_;
+
+  pthread_t thread_;
+  int control_pipe_in_;
+  int control_pipe_out_;
+
+  // disable these
+  CrashGenerationServer(const CrashGenerationServer&);
+  CrashGenerationServer& operator=(const CrashGenerationServer&);
+};
+
+} // namespace google_breakpad
+
+#endif // CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
diff --git a/src/client/linux/data/linux-gate-amd.sym b/src/client/linux/data/linux-gate-amd.sym
new file mode 100644
index 0000000..e042a5e
--- /dev/null
+++ b/src/client/linux/data/linux-gate-amd.sym
@@ -0,0 +1,3 @@
+MODULE Linux x86 B8CFDE93002D54DA1900A40AA1BD67690 linux-gate.so
+PUBLIC 400 0 __kernel_vsyscall
+STACK WIN 4 400 100 1 1 0 0 0 0 0 1
diff --git a/src/client/linux/data/linux-gate-intel.sym b/src/client/linux/data/linux-gate-intel.sym
new file mode 100644
index 0000000..c209c23
--- /dev/null
+++ b/src/client/linux/data/linux-gate-intel.sym
@@ -0,0 +1,3 @@
+MODULE Linux x86 4FBDA58B5A1DF5A379E3CF19A235EA090 linux-gate.so
+PUBLIC 400 0 __kernel_vsyscall
+STACK WIN 4 400 200 3 3 0 0 0 0 0 1
\ No newline at end of file
diff --git a/src/client/linux/dump_writer_common/mapping_info.h b/src/client/linux/dump_writer_common/mapping_info.h
new file mode 100644
index 0000000..c09e48a
--- /dev/null
+++ b/src/client/linux/dump_writer_common/mapping_info.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
+#define CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
+
+#include <limits.h>
+#include <list>
+#include <stdint.h>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// One of these is produced for each mapping in the process (i.e. line in
+// /proc/$x/maps).
+struct MappingInfo {
+  // On Android, relocation packing can mean that the reported start
+  // address of the mapping must be adjusted by a bias in order to
+  // compensate for the compression of the relocation section. The
+  // following two members hold (after LateInit) the adjusted mapping
+  // range. See crbug.com/606972 for more information.
+  uintptr_t start_addr;
+  size_t size;
+  // When Android relocation packing causes |start_addr| and |size| to
+  // be modified with a load bias, we need to remember the unbiased
+  // address range. The following structure holds the original mapping
+  // address range as reported by the operating system.
+  struct {
+    uintptr_t start_addr;
+    uintptr_t end_addr;
+  } system_mapping_info;
+  size_t offset;  // offset into the backed file.
+  bool exec;  // true if the mapping has the execute bit set.
+  char name[NAME_MAX];
+};
+
+struct MappingEntry {
+  MappingInfo first;
+  uint8_t second[sizeof(MDGUID)];
+};
+
+// A list of <MappingInfo, GUID>
+typedef std::list<MappingEntry> MappingList;
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
diff --git a/src/client/linux/dump_writer_common/raw_context_cpu.h b/src/client/linux/dump_writer_common/raw_context_cpu.h
new file mode 100644
index 0000000..07d9171
--- /dev/null
+++ b/src/client/linux/dump_writer_common/raw_context_cpu.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
+#define CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+#if defined(__i386__)
+typedef MDRawContextX86 RawContextCPU;
+#elif defined(__x86_64)
+typedef MDRawContextAMD64 RawContextCPU;
+#elif defined(__ARM_EABI__)
+typedef MDRawContextARM RawContextCPU;
+#elif defined(__aarch64__)
+typedef MDRawContextARM64_Old RawContextCPU;
+#elif defined(__mips__)
+typedef MDRawContextMIPS RawContextCPU;
+#else
+#error "This code has not been ported to your platform yet."
+#endif
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
diff --git a/src/client/linux/dump_writer_common/thread_info.cc b/src/client/linux/dump_writer_common/thread_info.cc
new file mode 100644
index 0000000..aae1dc1
--- /dev/null
+++ b/src/client/linux/dump_writer_common/thread_info.cc
@@ -0,0 +1,305 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/linux/dump_writer_common/thread_info.h"
+
+#include <string.h>
+#include <assert.h>
+
+#include "common/linux/linux_libc_support.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace {
+
+#if defined(__i386__)
+// Write a uint16_t to memory
+//   out: memory location to write to
+//   v: value to write.
+void U16(void* out, uint16_t v) {
+  my_memcpy(out, &v, sizeof(v));
+}
+
+// Write a uint32_t to memory
+//   out: memory location to write to
+//   v: value to write.
+void U32(void* out, uint32_t v) {
+  my_memcpy(out, &v, sizeof(v));
+}
+#endif
+
+}
+
+namespace google_breakpad {
+
+#if defined(__i386__)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return regs.eip;
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+  out->context_flags = MD_CONTEXT_X86_ALL;
+
+  out->dr0 = dregs[0];
+  out->dr1 = dregs[1];
+  out->dr2 = dregs[2];
+  out->dr3 = dregs[3];
+  // 4 and 5 deliberatly omitted because they aren't included in the minidump
+  // format.
+  out->dr6 = dregs[6];
+  out->dr7 = dregs[7];
+
+  out->gs = regs.xgs;
+  out->fs = regs.xfs;
+  out->es = regs.xes;
+  out->ds = regs.xds;
+
+  out->edi = regs.edi;
+  out->esi = regs.esi;
+  out->ebx = regs.ebx;
+  out->edx = regs.edx;
+  out->ecx = regs.ecx;
+  out->eax = regs.eax;
+
+  out->ebp = regs.ebp;
+  out->eip = regs.eip;
+  out->cs = regs.xcs;
+  out->eflags = regs.eflags;
+  out->esp = regs.esp;
+  out->ss = regs.xss;
+
+  out->float_save.control_word = fpregs.cwd;
+  out->float_save.status_word = fpregs.swd;
+  out->float_save.tag_word = fpregs.twd;
+  out->float_save.error_offset = fpregs.fip;
+  out->float_save.error_selector = fpregs.fcs;
+  out->float_save.data_offset = fpregs.foo;
+  out->float_save.data_selector = fpregs.fos;
+
+  // 8 registers * 10 bytes per register.
+  my_memcpy(out->float_save.register_area, fpregs.st_space, 10 * 8);
+
+  // This matches the Intel fpsave format.
+  U16(out->extended_registers + 0, fpregs.cwd);
+  U16(out->extended_registers + 2, fpregs.swd);
+  U16(out->extended_registers + 4, fpregs.twd);
+  U16(out->extended_registers + 6, fpxregs.fop);
+  U32(out->extended_registers + 8, fpxregs.fip);
+  U16(out->extended_registers + 12, fpxregs.fcs);
+  U32(out->extended_registers + 16, fpregs.foo);
+  U16(out->extended_registers + 20, fpregs.fos);
+  U32(out->extended_registers + 24, fpxregs.mxcsr);
+
+  my_memcpy(out->extended_registers + 32, &fpxregs.st_space, 128);
+  my_memcpy(out->extended_registers + 160, &fpxregs.xmm_space, 128);
+}
+
+#elif defined(__x86_64)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return regs.rip;
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+  out->context_flags = MD_CONTEXT_AMD64_FULL |
+                       MD_CONTEXT_AMD64_SEGMENTS;
+
+  out->cs = regs.cs;
+
+  out->ds = regs.ds;
+  out->es = regs.es;
+  out->fs = regs.fs;
+  out->gs = regs.gs;
+
+  out->ss = regs.ss;
+  out->eflags = regs.eflags;
+
+  out->dr0 = dregs[0];
+  out->dr1 = dregs[1];
+  out->dr2 = dregs[2];
+  out->dr3 = dregs[3];
+  // 4 and 5 deliberatly omitted because they aren't included in the minidump
+  // format.
+  out->dr6 = dregs[6];
+  out->dr7 = dregs[7];
+
+  out->rax = regs.rax;
+  out->rcx = regs.rcx;
+  out->rdx = regs.rdx;
+  out->rbx = regs.rbx;
+
+  out->rsp = regs.rsp;
+
+  out->rbp = regs.rbp;
+  out->rsi = regs.rsi;
+  out->rdi = regs.rdi;
+  out->r8 = regs.r8;
+  out->r9 = regs.r9;
+  out->r10 = regs.r10;
+  out->r11 = regs.r11;
+  out->r12 = regs.r12;
+  out->r13 = regs.r13;
+  out->r14 = regs.r14;
+  out->r15 = regs.r15;
+
+  out->rip = regs.rip;
+
+  out->flt_save.control_word = fpregs.cwd;
+  out->flt_save.status_word = fpregs.swd;
+  out->flt_save.tag_word = fpregs.ftw;
+  out->flt_save.error_opcode = fpregs.fop;
+  out->flt_save.error_offset = fpregs.rip;
+  out->flt_save.error_selector = 0;  // We don't have this.
+  out->flt_save.data_offset = fpregs.rdp;
+  out->flt_save.data_selector = 0;   // We don't have this.
+  out->flt_save.mx_csr = fpregs.mxcsr;
+  out->flt_save.mx_csr_mask = fpregs.mxcr_mask;
+
+  my_memcpy(&out->flt_save.float_registers, &fpregs.st_space, 8 * 16);
+  my_memcpy(&out->flt_save.xmm_registers, &fpregs.xmm_space, 16 * 16);
+}
+
+#elif defined(__ARM_EABI__)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return regs.uregs[15];
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+  out->context_flags = MD_CONTEXT_ARM_FULL;
+
+  for (int i = 0; i < MD_CONTEXT_ARM_GPR_COUNT; ++i)
+    out->iregs[i] = regs.uregs[i];
+  // No CPSR register in ThreadInfo(it's not accessible via ptrace)
+  out->cpsr = 0;
+#if !defined(__ANDROID__)
+  out->float_save.fpscr = fpregs.fpsr |
+    (static_cast<uint64_t>(fpregs.fpcr) << 32);
+  // TODO: sort this out, actually collect floating point registers
+  my_memset(&out->float_save.regs, 0, sizeof(out->float_save.regs));
+  my_memset(&out->float_save.extra, 0, sizeof(out->float_save.extra));
+#endif
+}
+
+#elif defined(__aarch64__)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return regs.pc;
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+  out->context_flags = MD_CONTEXT_ARM64_FULL_OLD;
+
+  out->cpsr = static_cast<uint32_t>(regs.pstate);
+  for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i)
+    out->iregs[i] = regs.regs[i];
+  out->iregs[MD_CONTEXT_ARM64_REG_SP] = regs.sp;
+  out->iregs[MD_CONTEXT_ARM64_REG_PC] = regs.pc;
+
+  out->float_save.fpsr = fpregs.fpsr;
+  out->float_save.fpcr = fpregs.fpcr;
+  my_memcpy(&out->float_save.regs, &fpregs.vregs,
+      MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16);
+}
+
+#elif defined(__mips__)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+  return mcontext.pc;
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+#if _MIPS_SIM == _ABI64
+  out->context_flags = MD_CONTEXT_MIPS64_FULL;
+#elif _MIPS_SIM == _ABIO32
+  out->context_flags = MD_CONTEXT_MIPS_FULL;
+#else
+# error "This mips ABI is currently not supported (n32)"
+#endif
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i)
+    out->iregs[i] = mcontext.gregs[i];
+
+  out->mdhi = mcontext.mdhi;
+  out->mdlo = mcontext.mdlo;
+  out->dsp_control = mcontext.dsp;
+
+  out->hi[0] = mcontext.hi1;
+  out->lo[0] = mcontext.lo1;
+  out->hi[1] = mcontext.hi2;
+  out->lo[1] = mcontext.lo2;
+  out->hi[2] = mcontext.hi3;
+  out->lo[2] = mcontext.lo3;
+
+  out->epc = mcontext.pc;
+  out->badvaddr = 0; // Not stored in mcontext
+  out->status = 0; // Not stored in mcontext
+  out->cause = 0; // Not stored in mcontext
+
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
+    out->float_save.regs[i] = mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs;
+
+  out->float_save.fpcsr = mcontext.fpc_csr;
+#if _MIPS_SIM == _ABIO32
+  out->float_save.fir = mcontext.fpc_eir;
+#endif
+}
+#endif  // __mips__
+
+void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
+  assert(gp_regs || size);
+#if defined(__mips__)
+  if (gp_regs)
+    *gp_regs = mcontext.gregs;
+  if (size)
+    *size = sizeof(mcontext.gregs);
+#else
+  if (gp_regs)
+    *gp_regs = &regs;
+  if (size)
+    *size = sizeof(regs);
+#endif
+}
+
+void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) {
+  assert(fp_regs || size);
+#if defined(__mips__)
+  if (fp_regs)
+    *fp_regs = &mcontext.fpregs;
+  if (size)
+    *size = sizeof(mcontext.fpregs);
+#else
+  if (fp_regs)
+    *fp_regs = &fpregs;
+  if (size)
+    *size = sizeof(fpregs);
+#endif
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/dump_writer_common/thread_info.h b/src/client/linux/dump_writer_common/thread_info.h
new file mode 100644
index 0000000..fb216fa
--- /dev/null
+++ b/src/client/linux/dump_writer_common/thread_info.h
@@ -0,0 +1,91 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
+#define CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
+
+#include <sys/ucontext.h>
+#include <sys/user.h>
+
+#include "client/linux/dump_writer_common/raw_context_cpu.h"
+#include "common/memory_allocator.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+#if defined(__i386) || defined(__x86_64)
+typedef __typeof__(((struct user*) 0)->u_debugreg[0]) debugreg_t;
+#endif
+
+// We produce one of these structures for each thread in the crashed process.
+struct ThreadInfo {
+  pid_t tgid;   // thread group id
+  pid_t ppid;   // parent process
+
+  uintptr_t stack_pointer;  // thread stack pointer
+
+
+#if defined(__i386) || defined(__x86_64)
+  user_regs_struct regs;
+  user_fpregs_struct fpregs;
+  static const unsigned kNumDebugRegisters = 8;
+  debugreg_t dregs[8];
+#if defined(__i386)
+  user_fpxregs_struct fpxregs;
+#endif  // defined(__i386)
+
+#elif defined(__ARM_EABI__)
+  // Mimicking how strace does this(see syscall.c, search for GETREGS)
+  struct user_regs regs;
+  struct user_fpregs fpregs;
+#elif defined(__aarch64__)
+  // Use the structures defined in <sys/user.h>
+  struct user_regs_struct regs;
+  struct user_fpsimd_struct fpregs;
+#elif defined(__mips__)
+  // Use the structure defined in <sys/ucontext.h>.
+  mcontext_t mcontext;
+#endif
+
+  // Returns the instruction pointer (platform-dependent impl.).
+  uintptr_t GetInstructionPointer() const;
+
+  // Fills a RawContextCPU using the context in the ThreadInfo object.
+  void FillCPUContext(RawContextCPU* out) const;
+
+  // Returns the pointer and size of general purpose register area.
+  void GetGeneralPurposeRegisters(void** gp_regs, size_t* size);
+
+  // Returns the pointer and size of float point register area.
+  void GetFloatingPointRegisters(void** fp_regs, size_t* size);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc
new file mode 100644
index 0000000..6eec1be
--- /dev/null
+++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -0,0 +1,259 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/linux/dump_writer_common/ucontext_reader.h"
+
+#include "common/linux/linux_libc_support.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Minidump defines register structures which are different from the raw
+// structures which we get from the kernel. These are platform specific
+// functions to juggle the ucontext_t and user structures into minidump format.
+
+#if defined(__i386__)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.gregs[REG_ESP];
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.gregs[REG_EIP];
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                                    const fpstate_t* fp) {
+  const greg_t* regs = uc->uc_mcontext.gregs;
+
+  out->context_flags = MD_CONTEXT_X86_FULL |
+                       MD_CONTEXT_X86_FLOATING_POINT;
+
+  out->gs = regs[REG_GS];
+  out->fs = regs[REG_FS];
+  out->es = regs[REG_ES];
+  out->ds = regs[REG_DS];
+
+  out->edi = regs[REG_EDI];
+  out->esi = regs[REG_ESI];
+  out->ebx = regs[REG_EBX];
+  out->edx = regs[REG_EDX];
+  out->ecx = regs[REG_ECX];
+  out->eax = regs[REG_EAX];
+
+  out->ebp = regs[REG_EBP];
+  out->eip = regs[REG_EIP];
+  out->cs = regs[REG_CS];
+  out->eflags = regs[REG_EFL];
+  out->esp = regs[REG_UESP];
+  out->ss = regs[REG_SS];
+
+  out->float_save.control_word = fp->cw;
+  out->float_save.status_word = fp->sw;
+  out->float_save.tag_word = fp->tag;
+  out->float_save.error_offset = fp->ipoff;
+  out->float_save.error_selector = fp->cssel;
+  out->float_save.data_offset = fp->dataoff;
+  out->float_save.data_selector = fp->datasel;
+
+  // 8 registers * 10 bytes per register.
+  my_memcpy(out->float_save.register_area, fp->_st, 10 * 8);
+}
+
+#elif defined(__x86_64)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.gregs[REG_RSP];
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.gregs[REG_RIP];
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                                    const fpstate_t* fpregs) {
+  const greg_t* regs = uc->uc_mcontext.gregs;
+
+  out->context_flags = MD_CONTEXT_AMD64_FULL;
+
+  out->cs = regs[REG_CSGSFS] & 0xffff;
+
+  out->fs = (regs[REG_CSGSFS] >> 32) & 0xffff;
+  out->gs = (regs[REG_CSGSFS] >> 16) & 0xffff;
+
+  out->eflags = regs[REG_EFL];
+
+  out->rax = regs[REG_RAX];
+  out->rcx = regs[REG_RCX];
+  out->rdx = regs[REG_RDX];
+  out->rbx = regs[REG_RBX];
+
+  out->rsp = regs[REG_RSP];
+  out->rbp = regs[REG_RBP];
+  out->rsi = regs[REG_RSI];
+  out->rdi = regs[REG_RDI];
+  out->r8 = regs[REG_R8];
+  out->r9 = regs[REG_R9];
+  out->r10 = regs[REG_R10];
+  out->r11 = regs[REG_R11];
+  out->r12 = regs[REG_R12];
+  out->r13 = regs[REG_R13];
+  out->r14 = regs[REG_R14];
+  out->r15 = regs[REG_R15];
+
+  out->rip = regs[REG_RIP];
+
+  out->flt_save.control_word = fpregs->cwd;
+  out->flt_save.status_word = fpregs->swd;
+  out->flt_save.tag_word = fpregs->ftw;
+  out->flt_save.error_opcode = fpregs->fop;
+  out->flt_save.error_offset = fpregs->rip;
+  out->flt_save.data_offset = fpregs->rdp;
+  out->flt_save.error_selector = 0;  // We don't have this.
+  out->flt_save.data_selector = 0;  // We don't have this.
+  out->flt_save.mx_csr = fpregs->mxcsr;
+  out->flt_save.mx_csr_mask = fpregs->mxcr_mask;
+  my_memcpy(&out->flt_save.float_registers, &fpregs->_st, 8 * 16);
+  my_memcpy(&out->flt_save.xmm_registers, &fpregs->_xmm, 16 * 16);
+}
+
+#elif defined(__ARM_EABI__)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.arm_sp;
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.arm_pc;
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) {
+  out->context_flags = MD_CONTEXT_ARM_FULL;
+
+  out->iregs[0] = uc->uc_mcontext.arm_r0;
+  out->iregs[1] = uc->uc_mcontext.arm_r1;
+  out->iregs[2] = uc->uc_mcontext.arm_r2;
+  out->iregs[3] = uc->uc_mcontext.arm_r3;
+  out->iregs[4] = uc->uc_mcontext.arm_r4;
+  out->iregs[5] = uc->uc_mcontext.arm_r5;
+  out->iregs[6] = uc->uc_mcontext.arm_r6;
+  out->iregs[7] = uc->uc_mcontext.arm_r7;
+  out->iregs[8] = uc->uc_mcontext.arm_r8;
+  out->iregs[9] = uc->uc_mcontext.arm_r9;
+  out->iregs[10] = uc->uc_mcontext.arm_r10;
+
+  out->iregs[11] = uc->uc_mcontext.arm_fp;
+  out->iregs[12] = uc->uc_mcontext.arm_ip;
+  out->iregs[13] = uc->uc_mcontext.arm_sp;
+  out->iregs[14] = uc->uc_mcontext.arm_lr;
+  out->iregs[15] = uc->uc_mcontext.arm_pc;
+
+  out->cpsr = uc->uc_mcontext.arm_cpsr;
+
+  // TODO: fix this after fixing ExceptionHandler
+  out->float_save.fpscr = 0;
+  my_memset(&out->float_save.regs, 0, sizeof(out->float_save.regs));
+  my_memset(&out->float_save.extra, 0, sizeof(out->float_save.extra));
+}
+
+#elif defined(__aarch64__)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.sp;
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.pc;
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                                    const struct fpsimd_context* fpregs) {
+  out->context_flags = MD_CONTEXT_ARM64_FULL_OLD;
+
+  out->cpsr = static_cast<uint32_t>(uc->uc_mcontext.pstate);
+  for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i)
+    out->iregs[i] = uc->uc_mcontext.regs[i];
+  out->iregs[MD_CONTEXT_ARM64_REG_SP] = uc->uc_mcontext.sp;
+  out->iregs[MD_CONTEXT_ARM64_REG_PC] = uc->uc_mcontext.pc;
+
+  out->float_save.fpsr = fpregs->fpsr;
+  out->float_save.fpcr = fpregs->fpcr;
+  my_memcpy(&out->float_save.regs, &fpregs->vregs,
+      MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16);
+}
+
+#elif defined(__mips__)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+  return uc->uc_mcontext.pc;
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) {
+#if _MIPS_SIM == _ABI64
+  out->context_flags = MD_CONTEXT_MIPS64_FULL;
+#elif _MIPS_SIM == _ABIO32
+  out->context_flags = MD_CONTEXT_MIPS_FULL;
+#else
+#error "This mips ABI is currently not supported (n32)"
+#endif
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i)
+    out->iregs[i] = uc->uc_mcontext.gregs[i];
+
+  out->mdhi = uc->uc_mcontext.mdhi;
+  out->mdlo = uc->uc_mcontext.mdlo;
+
+  out->hi[0] = uc->uc_mcontext.hi1;
+  out->hi[1] = uc->uc_mcontext.hi2;
+  out->hi[2] = uc->uc_mcontext.hi3;
+  out->lo[0] = uc->uc_mcontext.lo1;
+  out->lo[1] = uc->uc_mcontext.lo2;
+  out->lo[2] = uc->uc_mcontext.lo3;
+  out->dsp_control = uc->uc_mcontext.dsp;
+
+  out->epc = uc->uc_mcontext.pc;
+  out->badvaddr = 0;  // Not reported in signal context.
+  out->status = 0;  // Not reported in signal context.
+  out->cause = 0;  // Not reported in signal context.
+
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
+    out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i];
+
+  out->float_save.fpcsr = uc->uc_mcontext.fpc_csr;
+#if _MIPS_SIM == _ABIO32
+  out->float_save.fir = uc->uc_mcontext.fpc_eir;  // Unused.
+#endif
+}
+#endif
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h
new file mode 100644
index 0000000..7d41008
--- /dev/null
+++ b/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
+#define CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
+
+#include <sys/ucontext.h>
+#include <sys/user.h>
+
+#include "client/linux/dump_writer_common/raw_context_cpu.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/memory_allocator.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
+struct UContextReader {
+  static uintptr_t GetStackPointer(const ucontext_t* uc);
+
+  static uintptr_t GetInstructionPointer(const ucontext_t* uc);
+
+  // Juggle a arch-specific ucontext_t into a minidump format
+  //   out: the minidump structure
+  //   info: the collection of register structures.
+#if defined(__i386__) || defined(__x86_64)
+  static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                             const fpstate_t* fp);
+#elif defined(__aarch64__)
+  static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                             const struct fpsimd_context* fpregs);
+#else
+  static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc);
+#endif
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
new file mode 100644
index 0000000..ca353c4
--- /dev/null
+++ b/src/client/linux/handler/exception_handler.cc
@@ -0,0 +1,797 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The ExceptionHandler object installs signal handlers for a number of
+// signals. We rely on the signal handler running on the thread which crashed
+// in order to identify it. This is true of the synchronous signals (SEGV etc),
+// but not true of ABRT. Thus, if you send ABRT to yourself in a program which
+// uses ExceptionHandler, you need to use tgkill to direct it to the current
+// thread.
+//
+// The signal flow looks like this:
+//
+//   SignalHandler (uses a global stack of ExceptionHandler objects to find
+//        |         one to handle the signal. If the first rejects it, try
+//        |         the second etc...)
+//        V
+//   HandleSignal ----------------------------| (clones a new process which
+//        |                                   |  shares an address space with
+//   (wait for cloned                         |  the crashed process. This
+//     process)                               |  allows us to ptrace the crashed
+//        |                                   |  process)
+//        V                                   V
+//   (set signal handler to             ThreadEntry (static function to bounce
+//    SIG_DFL and rethrow,                    |      back into the object)
+//    killing the crashed                     |
+//    process)                                V
+//                                          DoDump  (writes minidump)
+//                                            |
+//                                            V
+//                                         sys_exit
+//
+
+// This code is a little fragmented. Different functions of the ExceptionHandler
+// class run in a number of different contexts. Some of them run in a normal
+// context and are easy to code, others run in a compromised context and the
+// restrictions at the top of minidump_writer.cc apply: no libc and use the
+// alternative malloc. Each function should have comment above it detailing the
+// context which it runs in.
+
+#include "client/linux/handler/exception_handler.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <linux/limits.h>
+#include <pthread.h>
+#include <sched.h>
+#include <signal.h>
+#include <stdio.h>
+#include <sys/mman.h>
+#include <sys/prctl.h>
+#include <sys/syscall.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <sys/ucontext.h>
+#include <sys/user.h>
+#include <ucontext.h>
+
+#include <algorithm>
+#include <utility>
+#include <vector>
+
+#include "common/basictypes.h"
+#include "common/linux/breakpad_getcontext.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/memory_allocator.h"
+#include "client/linux/log/log.h"
+#include "client/linux/microdump_writer/microdump_writer.h"
+#include "client/linux/minidump_writer/linux_dumper.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/linux/eintr_wrapper.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+#if defined(__ANDROID__)
+#include "linux/sched.h"
+#endif
+
+#ifndef PR_SET_PTRACER
+#define PR_SET_PTRACER 0x59616d61
+#endif
+
+namespace google_breakpad {
+
+namespace {
+// The list of signals which we consider to be crashes. The default action for
+// all these signals must be Core (see man 7 signal) because we rethrow the
+// signal after handling it and expect that it'll be fatal.
+const int kExceptionSignals[] = {
+  SIGSEGV, SIGABRT, SIGFPE, SIGILL, SIGBUS, SIGTRAP
+};
+const int kNumHandledSignals =
+    sizeof(kExceptionSignals) / sizeof(kExceptionSignals[0]);
+struct sigaction old_handlers[kNumHandledSignals];
+bool handlers_installed = false;
+
+// InstallAlternateStackLocked will store the newly installed stack in new_stack
+// and (if it exists) the previously installed stack in old_stack.
+stack_t old_stack;
+stack_t new_stack;
+bool stack_installed = false;
+
+// Create an alternative stack to run the signal handlers on. This is done since
+// the signal might have been caused by a stack overflow.
+// Runs before crashing: normal context.
+void InstallAlternateStackLocked() {
+  if (stack_installed)
+    return;
+
+  memset(&old_stack, 0, sizeof(old_stack));
+  memset(&new_stack, 0, sizeof(new_stack));
+
+  // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
+  // the alternative stack. Ensure that the size of the alternative stack is
+  // large enough.
+  static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
+
+  // Only set an alternative stack if there isn't already one, or if the current
+  // one is too small.
+  if (sys_sigaltstack(NULL, &old_stack) == -1 || !old_stack.ss_sp ||
+      old_stack.ss_size < kSigStackSize) {
+    new_stack.ss_sp = calloc(1, kSigStackSize);
+    new_stack.ss_size = kSigStackSize;
+
+    if (sys_sigaltstack(&new_stack, NULL) == -1) {
+      free(new_stack.ss_sp);
+      return;
+    }
+    stack_installed = true;
+  }
+}
+
+// Runs before crashing: normal context.
+void RestoreAlternateStackLocked() {
+  if (!stack_installed)
+    return;
+
+  stack_t current_stack;
+  if (sys_sigaltstack(NULL, &current_stack) == -1)
+    return;
+
+  // Only restore the old_stack if the current alternative stack is the one
+  // installed by the call to InstallAlternateStackLocked.
+  if (current_stack.ss_sp == new_stack.ss_sp) {
+    if (old_stack.ss_sp) {
+      if (sys_sigaltstack(&old_stack, NULL) == -1)
+        return;
+    } else {
+      stack_t disable_stack;
+      disable_stack.ss_flags = SS_DISABLE;
+      if (sys_sigaltstack(&disable_stack, NULL) == -1)
+        return;
+    }
+  }
+
+  free(new_stack.ss_sp);
+  stack_installed = false;
+}
+
+void InstallDefaultHandler(int sig) {
+#if defined(__ANDROID__)
+  // Android L+ expose signal and sigaction symbols that override the system
+  // ones. There is a bug in these functions where a request to set the handler
+  // to SIG_DFL is ignored. In that case, an infinite loop is entered as the
+  // signal is repeatedly sent to breakpad's signal handler.
+  // To work around this, directly call the system's sigaction.
+  struct kernel_sigaction sa;
+  memset(&sa, 0, sizeof(sa));
+  sys_sigemptyset(&sa.sa_mask);
+  sa.sa_handler_ = SIG_DFL;
+  sa.sa_flags = SA_RESTART;
+  sys_rt_sigaction(sig, &sa, NULL, sizeof(kernel_sigset_t));
+#else
+  signal(sig, SIG_DFL);
+#endif
+}
+
+// The global exception handler stack. This is needed because there may exist
+// multiple ExceptionHandler instances in a process. Each will have itself
+// registered in this stack.
+std::vector<ExceptionHandler*>* g_handler_stack_ = NULL;
+pthread_mutex_t g_handler_stack_mutex_ = PTHREAD_MUTEX_INITIALIZER;
+
+// sizeof(CrashContext) can be too big w.r.t the size of alternatate stack
+// for SignalHandler(). Keep the crash context as a .bss field. Exception
+// handlers are serialized by the |g_handler_stack_mutex_| and at most one at a
+// time can use |g_crash_context_|.
+ExceptionHandler::CrashContext g_crash_context_;
+
+FirstChanceHandler g_first_chance_handler_ = nullptr;
+}  // namespace
+
+// Runs before crashing: normal context.
+ExceptionHandler::ExceptionHandler(const MinidumpDescriptor& descriptor,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   bool install_handler,
+                                   const int server_fd)
+    : filter_(filter),
+      callback_(callback),
+      callback_context_(callback_context),
+      minidump_descriptor_(descriptor),
+      crash_handler_(NULL) {
+  if (server_fd >= 0)
+    crash_generation_client_.reset(CrashGenerationClient::TryCreate(server_fd));
+
+  if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() &&
+      !minidump_descriptor_.IsMicrodumpOnConsole())
+    minidump_descriptor_.UpdatePath();
+
+#if defined(__ANDROID__)
+  if (minidump_descriptor_.IsMicrodumpOnConsole())
+    logger::initializeCrashLogWriter();
+#endif
+
+  pthread_mutex_lock(&g_handler_stack_mutex_);
+
+  // Pre-fault the crash context struct. This is to avoid failing due to OOM
+  // if handling an exception when the process ran out of virtual memory.
+  memset(&g_crash_context_, 0, sizeof(g_crash_context_));
+
+  if (!g_handler_stack_)
+    g_handler_stack_ = new std::vector<ExceptionHandler*>;
+  if (install_handler) {
+    InstallAlternateStackLocked();
+    InstallHandlersLocked();
+  }
+  g_handler_stack_->push_back(this);
+  pthread_mutex_unlock(&g_handler_stack_mutex_);
+}
+
+// Runs before crashing: normal context.
+ExceptionHandler::~ExceptionHandler() {
+  pthread_mutex_lock(&g_handler_stack_mutex_);
+  std::vector<ExceptionHandler*>::iterator handler =
+      std::find(g_handler_stack_->begin(), g_handler_stack_->end(), this);
+  g_handler_stack_->erase(handler);
+  if (g_handler_stack_->empty()) {
+    delete g_handler_stack_;
+    g_handler_stack_ = NULL;
+    RestoreAlternateStackLocked();
+    RestoreHandlersLocked();
+  }
+  pthread_mutex_unlock(&g_handler_stack_mutex_);
+}
+
+// Runs before crashing: normal context.
+// static
+bool ExceptionHandler::InstallHandlersLocked() {
+  if (handlers_installed)
+    return false;
+
+  // Fail if unable to store all the old handlers.
+  for (int i = 0; i < kNumHandledSignals; ++i) {
+    if (sigaction(kExceptionSignals[i], NULL, &old_handlers[i]) == -1)
+      return false;
+  }
+
+  struct sigaction sa;
+  memset(&sa, 0, sizeof(sa));
+  sigemptyset(&sa.sa_mask);
+
+  // Mask all exception signals when we're handling one of them.
+  for (int i = 0; i < kNumHandledSignals; ++i)
+    sigaddset(&sa.sa_mask, kExceptionSignals[i]);
+
+  sa.sa_sigaction = SignalHandler;
+  sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
+
+  for (int i = 0; i < kNumHandledSignals; ++i) {
+    if (sigaction(kExceptionSignals[i], &sa, NULL) == -1) {
+      // At this point it is impractical to back out changes, and so failure to
+      // install a signal is intentionally ignored.
+    }
+  }
+  handlers_installed = true;
+  return true;
+}
+
+// This function runs in a compromised context: see the top of the file.
+// Runs on the crashing thread.
+// static
+void ExceptionHandler::RestoreHandlersLocked() {
+  if (!handlers_installed)
+    return;
+
+  for (int i = 0; i < kNumHandledSignals; ++i) {
+    if (sigaction(kExceptionSignals[i], &old_handlers[i], NULL) == -1) {
+      InstallDefaultHandler(kExceptionSignals[i]);
+    }
+  }
+  handlers_installed = false;
+}
+
+// void ExceptionHandler::set_crash_handler(HandlerCallback callback) {
+//   crash_handler_ = callback;
+// }
+
+// This function runs in a compromised context: see the top of the file.
+// Runs on the crashing thread.
+// static
+void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) {
+
+  // Give the first chance handler a chance to recover from this signal
+  //
+  // This is primarily used by V8. V8 uses guard regions to guarantee memory
+  // safety in WebAssembly. This means some signals might be expected if they
+  // originate from Wasm code while accessing the guard region. We give V8 the
+  // chance to handle and recover from these signals first.
+  if (g_first_chance_handler_ != nullptr &&
+      g_first_chance_handler_(sig, info, uc)) {
+    return;
+  }
+
+  // All the exception signals are blocked at this point.
+  pthread_mutex_lock(&g_handler_stack_mutex_);
+
+  // Sometimes, Breakpad runs inside a process where some other buggy code
+  // saves and restores signal handlers temporarily with 'signal'
+  // instead of 'sigaction'. This loses the SA_SIGINFO flag associated
+  // with this function. As a consequence, the values of 'info' and 'uc'
+  // become totally bogus, generally inducing a crash.
+  //
+  // The following code tries to detect this case. When it does, it
+  // resets the signal handlers with sigaction + SA_SIGINFO and returns.
+  // This forces the signal to be thrown again, but this time the kernel
+  // will call the function with the right arguments.
+  struct sigaction cur_handler;
+  if (sigaction(sig, NULL, &cur_handler) == 0 &&
+      cur_handler.sa_sigaction == SignalHandler &&
+      (cur_handler.sa_flags & SA_SIGINFO) == 0) {
+    // Reset signal handler with the right flags.
+    sigemptyset(&cur_handler.sa_mask);
+    sigaddset(&cur_handler.sa_mask, sig);
+
+    cur_handler.sa_sigaction = SignalHandler;
+    cur_handler.sa_flags = SA_ONSTACK | SA_SIGINFO;
+
+    if (sigaction(sig, &cur_handler, NULL) == -1) {
+      // When resetting the handler fails, try to reset the
+      // default one to avoid an infinite loop here.
+      InstallDefaultHandler(sig);
+    }
+    pthread_mutex_unlock(&g_handler_stack_mutex_);
+    return;
+  }
+
+  bool handled = false;
+  for (int i = g_handler_stack_->size() - 1; !handled && i >= 0; --i) {
+    handled = (*g_handler_stack_)[i]->HandleSignal(sig, info, uc);
+  }
+
+  // Upon returning from this signal handler, sig will become unmasked and then
+  // it will be retriggered. If one of the ExceptionHandlers handled it
+  // successfully, restore the default handler. Otherwise, restore the
+  // previously installed handler. Then, when the signal is retriggered, it will
+  // be delivered to the appropriate handler.
+  if (handled) {
+    InstallDefaultHandler(sig);
+  } else {
+    RestoreHandlersLocked();
+  }
+
+  pthread_mutex_unlock(&g_handler_stack_mutex_);
+
+  // info->si_code <= 0 iff SI_FROMUSER (SI_FROMKERNEL otherwise).
+  if (info->si_code <= 0 || sig == SIGABRT) {
+    // This signal was triggered by somebody sending us the signal with kill().
+    // In order to retrigger it, we have to queue a new signal by calling
+    // kill() ourselves.  The special case (si_pid == 0 && sig == SIGABRT) is
+    // due to the kernel sending a SIGABRT from a user request via SysRQ.
+    if (sys_tgkill(getpid(), syscall(__NR_gettid), sig) < 0) {
+      // If we failed to kill ourselves (e.g. because a sandbox disallows us
+      // to do so), we instead resort to terminating our process. This will
+      // result in an incorrect exit code.
+      _exit(1);
+    }
+  } else {
+    // This was a synchronous signal triggered by a hard fault (e.g. SIGSEGV).
+    // No need to reissue the signal. It will automatically trigger again,
+    // when we return from the signal handler.
+  }
+}
+
+struct ThreadArgument {
+  pid_t pid;  // the crashing process
+  const MinidumpDescriptor* minidump_descriptor;
+  ExceptionHandler* handler;
+  const void* context;  // a CrashContext structure
+  size_t context_size;
+};
+
+// This is the entry function for the cloned process. We are in a compromised
+// context here: see the top of the file.
+// static
+int ExceptionHandler::ThreadEntry(void* arg) {
+  const ThreadArgument* thread_arg = reinterpret_cast<ThreadArgument*>(arg);
+
+  // Close the write end of the pipe. This allows us to fail if the parent dies
+  // while waiting for the continue signal.
+  sys_close(thread_arg->handler->fdes[1]);
+
+  // Block here until the crashing process unblocks us when
+  // we're allowed to use ptrace
+  thread_arg->handler->WaitForContinueSignal();
+  sys_close(thread_arg->handler->fdes[0]);
+
+  return thread_arg->handler->DoDump(thread_arg->pid, thread_arg->context,
+                                     thread_arg->context_size) == false;
+}
+
+// This function runs in a compromised context: see the top of the file.
+// Runs on the crashing thread.
+bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+  if (filter_ && !filter_(callback_context_))
+    return false;
+
+  // Allow ourselves to be dumped if the signal is trusted.
+  bool signal_trusted = info->si_code > 0;
+  bool signal_pid_trusted = info->si_code == SI_USER ||
+      info->si_code == SI_TKILL;
+  if (signal_trusted || (signal_pid_trusted && info->si_pid == getpid())) {
+    sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+  }
+
+  // Fill in all the holes in the struct to make Valgrind happy.
+  memset(&g_crash_context_, 0, sizeof(g_crash_context_));
+  memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
+  memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
+#if defined(__aarch64__)
+  ucontext_t* uc_ptr = (ucontext_t*)uc;
+  struct fpsimd_context* fp_ptr =
+      (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
+  if (fp_ptr->head.magic == FPSIMD_MAGIC) {
+    memcpy(&g_crash_context_.float_state, fp_ptr,
+           sizeof(g_crash_context_.float_state));
+  }
+#elif !defined(__ARM_EABI__) && !defined(__mips__)
+  // FP state is not part of user ABI on ARM Linux.
+  // In case of MIPS Linux FP state is already part of ucontext_t
+  // and 'float_state' is not a member of CrashContext.
+  ucontext_t* uc_ptr = (ucontext_t*)uc;
+  if (uc_ptr->uc_mcontext.fpregs) {
+    memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
+           sizeof(g_crash_context_.float_state));
+  }
+#endif
+  g_crash_context_.tid = syscall(__NR_gettid);
+  if (crash_handler_ != NULL) {
+    if (crash_handler_(&g_crash_context_, sizeof(g_crash_context_),
+                       callback_context_)) {
+      return true;
+    }
+  }
+  return GenerateDump(&g_crash_context_);
+}
+
+// This is a public interface to HandleSignal that allows the client to
+// generate a crash dump. This function may run in a compromised context.
+bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+  siginfo_t siginfo = {};
+  // Mimic a trusted signal to allow tracing the process (see
+  // ExceptionHandler::HandleSignal().
+  siginfo.si_code = SI_USER;
+  siginfo.si_pid = getpid();
+  ucontext_t context;
+  getcontext(&context);
+  return HandleSignal(sig, &siginfo, &context);
+}
+
+// This function may run in a compromised context: see the top of the file.
+bool ExceptionHandler::GenerateDump(CrashContext* context) {
+  if (IsOutOfProcess())
+    return crash_generation_client_->RequestDump(context, sizeof(*context));
+
+  // Allocating too much stack isn't a problem, and better to err on the side
+  // of caution than smash it into random locations.
+  static const unsigned kChildStackSize = 16000;
+  PageAllocator allocator;
+  uint8_t* stack = reinterpret_cast<uint8_t*>(allocator.Alloc(kChildStackSize));
+  if (!stack)
+    return false;
+  // clone() needs the top-most address. (scrub just to be safe)
+  stack += kChildStackSize;
+  my_memset(stack - 16, 0, 16);
+
+  ThreadArgument thread_arg;
+  thread_arg.handler = this;
+  thread_arg.minidump_descriptor = &minidump_descriptor_;
+  thread_arg.pid = getpid();
+  thread_arg.context = context;
+  thread_arg.context_size = sizeof(*context);
+
+  // We need to explicitly enable ptrace of parent processes on some
+  // kernels, but we need to know the PID of the cloned process before we
+  // can do this. Create a pipe here which we can use to block the
+  // cloned process after creating it, until we have explicitly enabled ptrace
+  if (sys_pipe(fdes) == -1) {
+    // Creating the pipe failed. We'll log an error but carry on anyway,
+    // as we'll probably still get a useful crash report. All that will happen
+    // is the write() and read() calls will fail with EBADF
+    static const char no_pipe_msg[] = "ExceptionHandler::GenerateDump "
+                                      "sys_pipe failed:";
+    logger::write(no_pipe_msg, sizeof(no_pipe_msg) - 1);
+    logger::write(strerror(errno), strlen(strerror(errno)));
+    logger::write("\n", 1);
+
+    // Ensure fdes[0] and fdes[1] are invalid file descriptors.
+    fdes[0] = fdes[1] = -1;
+  }
+
+  const pid_t child = sys_clone(
+      ThreadEntry, stack, CLONE_FS | CLONE_UNTRACED, &thread_arg, NULL, NULL,
+      NULL);
+  if (child == -1) {
+    sys_close(fdes[0]);
+    sys_close(fdes[1]);
+    return false;
+  }
+
+  // Close the read end of the pipe.
+  sys_close(fdes[0]);
+  // Allow the child to ptrace us
+  sys_prctl(PR_SET_PTRACER, child, 0, 0, 0);
+  SendContinueSignalToChild();
+  int status = 0;
+  const int r = HANDLE_EINTR(sys_waitpid(child, &status, __WALL));
+
+  sys_close(fdes[1]);
+
+  if (r == -1) {
+    static const char msg[] = "ExceptionHandler::GenerateDump waitpid failed:";
+    logger::write(msg, sizeof(msg) - 1);
+    logger::write(strerror(errno), strlen(strerror(errno)));
+    logger::write("\n", 1);
+  }
+
+  bool success = r != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0;
+  if (callback_)
+    success = callback_(minidump_descriptor_, callback_context_, success);
+  return success;
+}
+
+// This function runs in a compromised context: see the top of the file.
+void ExceptionHandler::SendContinueSignalToChild() {
+  static const char okToContinueMessage = 'a';
+  int r;
+  r = HANDLE_EINTR(sys_write(fdes[1], &okToContinueMessage, sizeof(char)));
+  if (r == -1) {
+    static const char msg[] = "ExceptionHandler::SendContinueSignalToChild "
+                              "sys_write failed:";
+    logger::write(msg, sizeof(msg) - 1);
+    logger::write(strerror(errno), strlen(strerror(errno)));
+    logger::write("\n", 1);
+  }
+}
+
+// This function runs in a compromised context: see the top of the file.
+// Runs on the cloned process.
+void ExceptionHandler::WaitForContinueSignal() {
+  int r;
+  char receivedMessage;
+  r = HANDLE_EINTR(sys_read(fdes[0], &receivedMessage, sizeof(char)));
+  if (r == -1) {
+    static const char msg[] = "ExceptionHandler::WaitForContinueSignal "
+                              "sys_read failed:";
+    logger::write(msg, sizeof(msg) - 1);
+    logger::write(strerror(errno), strlen(strerror(errno)));
+    logger::write("\n", 1);
+  }
+}
+
+// This function runs in a compromised context: see the top of the file.
+// Runs on the cloned process.
+bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context,
+                              size_t context_size) {
+  const bool may_skip_dump =
+      minidump_descriptor_.skip_dump_if_principal_mapping_not_referenced();
+  const uintptr_t principal_mapping_address =
+      minidump_descriptor_.address_within_principal_mapping();
+  const bool sanitize_stacks = minidump_descriptor_.sanitize_stacks();
+  if (minidump_descriptor_.IsMicrodumpOnConsole()) {
+    return google_breakpad::WriteMicrodump(
+        crashing_process,
+        context,
+        context_size,
+        mapping_list_,
+        may_skip_dump,
+        principal_mapping_address,
+        sanitize_stacks,
+        *minidump_descriptor_.microdump_extra_info());
+  }
+  if (minidump_descriptor_.IsFD()) {
+    return google_breakpad::WriteMinidump(minidump_descriptor_.fd(),
+                                          minidump_descriptor_.size_limit(),
+                                          crashing_process,
+                                          context,
+                                          context_size,
+                                          mapping_list_,
+                                          app_memory_list_,
+                                          may_skip_dump,
+                                          principal_mapping_address,
+                                          sanitize_stacks);
+  }
+  return google_breakpad::WriteMinidump(minidump_descriptor_.path(),
+                                        minidump_descriptor_.size_limit(),
+                                        crashing_process,
+                                        context,
+                                        context_size,
+                                        mapping_list_,
+                                        app_memory_list_,
+                                        may_skip_dump,
+                                        principal_mapping_address,
+                                        sanitize_stacks);
+}
+
+// static
+bool ExceptionHandler::WriteMinidump(const string& dump_path,
+                                     MinidumpCallback callback,
+                                     void* callback_context) {
+  MinidumpDescriptor descriptor(dump_path);
+  ExceptionHandler eh(descriptor, NULL, callback, callback_context, false, -1);
+  return eh.WriteMinidump();
+}
+
+// In order to making using EBP to calculate the desired value for ESP
+// a valid operation, ensure that this function is compiled with a
+// frame pointer using the following attribute. This attribute
+// is supported on GCC but not on clang.
+#if defined(__i386__) && defined(__GNUC__) && !defined(__clang__)
+__attribute__((optimize("no-omit-frame-pointer")))
+#endif
+bool ExceptionHandler::WriteMinidump() {
+  if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() &&
+      !minidump_descriptor_.IsMicrodumpOnConsole()) {
+    // Update the path of the minidump so that this can be called multiple times
+    // and new files are created for each minidump.  This is done before the
+    // generation happens, as clients may want to access the MinidumpDescriptor
+    // after this call to find the exact path to the minidump file.
+    minidump_descriptor_.UpdatePath();
+  } else if (minidump_descriptor_.IsFD()) {
+    // Reposition the FD to its beginning and resize it to get rid of the
+    // previous minidump info.
+    lseek(minidump_descriptor_.fd(), 0, SEEK_SET);
+    ignore_result(ftruncate(minidump_descriptor_.fd(), 0));
+  }
+
+  // Allow this process to be dumped.
+  sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+
+  CrashContext context;
+  int getcontext_result = getcontext(&context.context);
+  if (getcontext_result)
+    return false;
+
+#if defined(__i386__)
+  // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
+  // from REG_UESP instead of from REG_ESP. REG_UESP is the user stack pointer
+  // and it only makes sense when running in kernel mode with a different stack
+  // pointer. When WriteMiniDump is called during normal processing REG_UESP is
+  // zero which leads to bad minidump files.
+  if (!context.context.uc_mcontext.gregs[REG_UESP]) {
+    // If REG_UESP is set to REG_ESP then that includes the stack space for the
+    // CrashContext object in this function, which is about 128 KB. Since the
+    // Linux dumper only records 32 KB of stack this would mean that nothing
+    // useful would be recorded. A better option is to set REG_UESP to REG_EBP,
+    // perhaps with a small negative offset in case there is any code that
+    // objects to them being equal.
+    context.context.uc_mcontext.gregs[REG_UESP] =
+      context.context.uc_mcontext.gregs[REG_EBP] - 16;
+    // The stack saving is based off of REG_ESP so it must be set to match the
+    // new REG_UESP.
+    context.context.uc_mcontext.gregs[REG_ESP] =
+      context.context.uc_mcontext.gregs[REG_UESP];
+  }
+#endif
+
+#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__)
+  // FPU state is not part of ARM EABI ucontext_t.
+  memcpy(&context.float_state, context.context.uc_mcontext.fpregs,
+         sizeof(context.float_state));
+#endif
+  context.tid = sys_gettid();
+
+  // Add an exception stream to the minidump for better reporting.
+  memset(&context.siginfo, 0, sizeof(context.siginfo));
+  context.siginfo.si_signo = MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED;
+#if defined(__i386__)
+  context.siginfo.si_addr =
+      reinterpret_cast<void*>(context.context.uc_mcontext.gregs[REG_EIP]);
+#elif defined(__x86_64__)
+  context.siginfo.si_addr =
+      reinterpret_cast<void*>(context.context.uc_mcontext.gregs[REG_RIP]);
+#elif defined(__arm__)
+  context.siginfo.si_addr =
+      reinterpret_cast<void*>(context.context.uc_mcontext.arm_pc);
+#elif defined(__aarch64__)
+  context.siginfo.si_addr =
+      reinterpret_cast<void*>(context.context.uc_mcontext.pc);
+#elif defined(__mips__)
+  context.siginfo.si_addr =
+      reinterpret_cast<void*>(context.context.uc_mcontext.pc);
+#else
+#error "This code has not been ported to your platform yet."
+#endif
+
+  return GenerateDump(&context);
+}
+
+void ExceptionHandler::AddMappingInfo(const string& name,
+                                      const uint8_t identifier[sizeof(MDGUID)],
+                                      uintptr_t start_address,
+                                      size_t mapping_size,
+                                      size_t file_offset) {
+  MappingInfo info;
+  info.start_addr = start_address;
+  info.size = mapping_size;
+  info.offset = file_offset;
+  strncpy(info.name, name.c_str(), sizeof(info.name) - 1);
+  info.name[sizeof(info.name) - 1] = '\0';
+
+  MappingEntry mapping;
+  mapping.first = info;
+  memcpy(mapping.second, identifier, sizeof(MDGUID));
+  mapping_list_.push_back(mapping);
+}
+
+void ExceptionHandler::RegisterAppMemory(void* ptr, size_t length) {
+  AppMemoryList::iterator iter =
+    std::find(app_memory_list_.begin(), app_memory_list_.end(), ptr);
+  if (iter != app_memory_list_.end()) {
+    // Don't allow registering the same pointer twice.
+    return;
+  }
+
+  AppMemory app_memory;
+  app_memory.ptr = ptr;
+  app_memory.length = length;
+  app_memory_list_.push_back(app_memory);
+}
+
+void ExceptionHandler::UnregisterAppMemory(void* ptr) {
+  AppMemoryList::iterator iter =
+    std::find(app_memory_list_.begin(), app_memory_list_.end(), ptr);
+  if (iter != app_memory_list_.end()) {
+    app_memory_list_.erase(iter);
+  }
+}
+
+// static
+bool ExceptionHandler::WriteMinidumpForChild(pid_t child,
+                                             pid_t child_blamed_thread,
+                                             const string& dump_path,
+                                             MinidumpCallback callback,
+                                             void* callback_context) {
+  // This function is not run in a compromised context.
+  MinidumpDescriptor descriptor(dump_path);
+  descriptor.UpdatePath();
+  if (!google_breakpad::WriteMinidump(descriptor.path(),
+                                      child,
+                                      child_blamed_thread))
+      return false;
+
+  return callback ? callback(descriptor, callback_context, true) : true;
+}
+
+void SetFirstChanceExceptionHandler(FirstChanceHandler callback) {
+  g_first_chance_handler_ = callback;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h
new file mode 100644
index 0000000..f80843e
--- /dev/null
+++ b/src/client/linux/handler/exception_handler.h
@@ -0,0 +1,281 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
+#define CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
+
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+#include <string>
+
+#include "client/linux/crash_generation/crash_generation_client.h"
+#include "client/linux/handler/minidump_descriptor.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// ExceptionHandler
+//
+// ExceptionHandler can write a minidump file when an exception occurs,
+// or when WriteMinidump() is called explicitly by your program.
+//
+// To have the exception handler write minidumps when an uncaught exception
+// (crash) occurs, you should create an instance early in the execution
+// of your program, and keep it around for the entire time you want to
+// have crash handling active (typically, until shutdown).
+// (NOTE): There should be only be one this kind of exception handler
+// object per process.
+//
+// If you want to write minidumps without installing the exception handler,
+// you can create an ExceptionHandler with install_handler set to false,
+// then call WriteMinidump.  You can also use this technique if you want to
+// use different minidump callbacks for different call sites.
+//
+// In either case, a callback function is called when a minidump is written,
+// which receives the full path or file descriptor of the minidump.  The
+// caller can collect and write additional application state to that minidump,
+// and launch an external crash-reporting application.
+//
+// Caller should try to make the callbacks as crash-friendly as possible,
+// it should avoid use heap memory allocation as much as possible.
+
+class ExceptionHandler {
+ public:
+  // A callback function to run before Breakpad performs any substantial
+  // processing of an exception.  A FilterCallback is called before writing
+  // a minidump.  |context| is the parameter supplied by the user as
+  // callback_context when the handler was created.
+  //
+  // If a FilterCallback returns true, Breakpad will continue processing,
+  // attempting to write a minidump.  If a FilterCallback returns false,
+  // Breakpad  will immediately report the exception as unhandled without
+  // writing a minidump, allowing another handler the opportunity to handle it.
+  typedef bool (*FilterCallback)(void* context);
+
+  // A callback function to run after the minidump has been written.
+  // |descriptor| contains the file descriptor or file path containing the
+  // minidump. |context| is the parameter supplied by the user as
+  // callback_context when the handler was created.  |succeeded| indicates
+  // whether a minidump file was successfully written.
+  //
+  // If an exception occurred and the callback returns true, Breakpad will
+  // treat the exception as fully-handled, suppressing any other handlers from
+  // being notified of the exception.  If the callback returns false, Breakpad
+  // will treat the exception as unhandled, and allow another handler to handle
+  // it. If there are no other handlers, Breakpad will report the exception to
+  // the system as unhandled, allowing a debugger or native crash dialog the
+  // opportunity to handle the exception.  Most callback implementations
+  // should normally return the value of |succeeded|, or when they wish to
+  // not report an exception of handled, false.  Callbacks will rarely want to
+  // return true directly (unless |succeeded| is true).
+  typedef bool (*MinidumpCallback)(const MinidumpDescriptor& descriptor,
+                                   void* context,
+                                   bool succeeded);
+
+  // In certain cases, a user may wish to handle the generation of the minidump
+  // themselves. In this case, they can install a handler callback which is
+  // called when a crash has occurred. If this function returns true, no other
+  // processing of occurs and the process will shortly be crashed. If this
+  // returns false, the normal processing continues.
+  typedef bool (*HandlerCallback)(const void* crash_context,
+                                  size_t crash_context_size,
+                                  void* context);
+
+  // Creates a new ExceptionHandler instance to handle writing minidumps.
+  // Before writing a minidump, the optional |filter| callback will be called.
+  // Its return value determines whether or not Breakpad should write a
+  // minidump.  The minidump content will be written to the file path or file
+  // descriptor from |descriptor|, and the optional |callback| is called after
+  // writing the dump file, as described above.
+  // If install_handler is true, then a minidump will be written whenever
+  // an unhandled exception occurs.  If it is false, minidumps will only
+  // be written when WriteMinidump is called.
+  // If |server_fd| is valid, the minidump is generated out-of-process.  If it
+  // is -1, in-process generation will always be used.
+  ExceptionHandler(const MinidumpDescriptor& descriptor,
+                   FilterCallback filter,
+                   MinidumpCallback callback,
+                   void* callback_context,
+                   bool install_handler,
+                   const int server_fd);
+  ~ExceptionHandler();
+
+  const MinidumpDescriptor& minidump_descriptor() const {
+    return minidump_descriptor_;
+  }
+
+  void set_minidump_descriptor(const MinidumpDescriptor& descriptor) {
+    minidump_descriptor_ = descriptor;
+  }
+
+  void set_crash_handler(HandlerCallback callback) {
+    crash_handler_ = callback;
+  }
+
+  void set_crash_generation_client(CrashGenerationClient* client) {
+    crash_generation_client_.reset(client);
+  }
+
+  // Writes a minidump immediately.  This can be used to capture the execution
+  // state independently of a crash.
+  // Returns true on success.
+  // If the ExceptionHandler has been created with a path, a new file is
+  // generated for each minidump.  The file path can be retrieved in the
+  // MinidumpDescriptor passed to the MinidumpCallback or by accessing the
+  // MinidumpDescriptor directly from the ExceptionHandler (with
+  // minidump_descriptor()).
+  // If the ExceptionHandler has been created with a file descriptor, the file
+  // descriptor is repositioned to its beginning and the previous generated
+  // minidump is overwritten.
+  // Note that this method is not supposed to be called from a compromised
+  // context as it uses the heap.
+  bool WriteMinidump();
+
+  // Convenience form of WriteMinidump which does not require an
+  // ExceptionHandler instance.
+  static bool WriteMinidump(const string& dump_path,
+                            MinidumpCallback callback,
+                            void* callback_context);
+
+  // Write a minidump of |child| immediately.  This can be used to
+  // capture the execution state of |child| independently of a crash.
+  // Pass a meaningful |child_blamed_thread| to make that thread in
+  // the child process the one from which a crash signature is
+  // extracted.
+  //
+  // WARNING: the return of this function *must* happen before
+  // the code that will eventually reap |child| executes.
+  // Otherwise there's a pernicious race condition in which |child|
+  // exits, is reaped, another process created with its pid, then that
+  // new process dumped.
+  static bool WriteMinidumpForChild(pid_t child,
+                                    pid_t child_blamed_thread,
+                                    const string& dump_path,
+                                    MinidumpCallback callback,
+                                    void* callback_context);
+
+  // This structure is passed to minidump_writer.h:WriteMinidump via an opaque
+  // blob. It shouldn't be needed in any user code.
+  struct CrashContext {
+    siginfo_t siginfo;
+    pid_t tid;  // the crashing thread.
+    ucontext_t context;
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+    // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+    // In case of MIPS Linux FP state is already part of ucontext_t so
+    // 'float_state' is not required.
+    fpstate_t float_state;
+#endif
+  };
+
+  // Returns whether out-of-process dump generation is used or not.
+  bool IsOutOfProcess() const {
+    return crash_generation_client_.get() != NULL;
+  }
+
+  // Add information about a memory mapping. This can be used if
+  // a custom library loader is used that maps things in a way
+  // that the linux dumper can't handle by reading the maps file.
+  void AddMappingInfo(const string& name,
+                      const uint8_t identifier[sizeof(MDGUID)],
+                      uintptr_t start_address,
+                      size_t mapping_size,
+                      size_t file_offset);
+
+  // Register a block of memory of length bytes starting at address ptr
+  // to be copied to the minidump when a crash happens.
+  void RegisterAppMemory(void* ptr, size_t length);
+
+  // Unregister a block of memory that was registered with RegisterAppMemory.
+  void UnregisterAppMemory(void* ptr);
+
+  // Force signal handling for the specified signal.
+  bool SimulateSignalDelivery(int sig);
+
+  // Report a crash signal from an SA_SIGINFO signal handler.
+  bool HandleSignal(int sig, siginfo_t* info, void* uc);
+
+ private:
+  // Save the old signal handlers and install new ones.
+  static bool InstallHandlersLocked();
+  // Restore the old signal handlers.
+  static void RestoreHandlersLocked();
+
+  void PreresolveSymbols();
+  bool GenerateDump(CrashContext* context);
+  void SendContinueSignalToChild();
+  void WaitForContinueSignal();
+
+  static void SignalHandler(int sig, siginfo_t* info, void* uc);
+  static int ThreadEntry(void* arg);
+  bool DoDump(pid_t crashing_process, const void* context,
+              size_t context_size);
+
+  const FilterCallback filter_;
+  const MinidumpCallback callback_;
+  void* const callback_context_;
+
+  scoped_ptr<CrashGenerationClient> crash_generation_client_;
+
+  MinidumpDescriptor minidump_descriptor_;
+
+  // Must be volatile. The compiler is unaware of the code which runs in
+  // the signal handler which reads this variable. Without volatile the
+  // compiler is free to optimise away writes to this variable which it
+  // believes are never read.
+  volatile HandlerCallback crash_handler_;
+
+  // We need to explicitly enable ptrace of parent processes on some
+  // kernels, but we need to know the PID of the cloned process before we
+  // can do this. We create a pipe which we can use to block the
+  // cloned process after creating it, until we have explicitly enabled
+  // ptrace. This is used to store the file descriptors for the pipe
+  int fdes[2] = {-1, -1};
+
+  // Callers can add extra info about mappings for cases where the
+  // dumper code cannot extract enough information from /proc/<pid>/maps.
+  MappingList mapping_list_;
+
+  // Callers can request additional memory regions to be included in
+  // the dump.
+  AppMemoryList app_memory_list_;
+};
+
+typedef bool (*FirstChanceHandler)(int, siginfo_t*, void*);
+void SetFirstChanceExceptionHandler(FirstChanceHandler callback);
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
diff --git a/src/client/linux/handler/exception_handler_unittest.cc b/src/client/linux/handler/exception_handler_unittest.cc
new file mode 100644
index 0000000..35dcbfd
--- /dev/null
+++ b/src/client/linux/handler/exception_handler_unittest.cc
@@ -0,0 +1,1287 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <poll.h>
+#include <pthread.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <signal.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/uio.h>
+#include <sys/wait.h>
+#if defined(__mips__)
+#include <sys/cachectl.h>
+#endif
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/ignore_ret.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/using_std_string.h"
+#include "third_party/lss/linux_syscall_support.h"
+#include "google_breakpad/processor/minidump.h"
+
+using namespace google_breakpad;
+
+namespace {
+
+// Flush the instruction cache for a given memory range.
+// Only required on ARM and mips.
+void FlushInstructionCache(const char* memory, uint32_t memory_size) {
+#if defined(__arm__)
+  long begin = reinterpret_cast<long>(memory);
+  long end = begin + static_cast<long>(memory_size);
+# if defined(__ANDROID__)
+  // Provided by Android's <unistd.h>
+  cacheflush(begin, end, 0);
+# elif defined(__linux__)
+  // GLibc/ARM doesn't provide a wrapper for it, do a direct syscall.
+#  ifndef __ARM_NR_cacheflush
+#  define __ARM_NR_cacheflush 0xf0002
+#  endif
+  syscall(__ARM_NR_cacheflush, begin, end, 0);
+# else
+#   error "Your operating system is not supported yet"
+# endif
+#elif defined(__mips__)
+# if defined(__ANDROID__)
+  // Provided by Android's <unistd.h>
+  long begin = reinterpret_cast<long>(memory);
+  long end = begin + static_cast<long>(memory_size);
+#if _MIPS_SIM == _ABIO32
+  cacheflush(begin, end, 0);
+#else
+  syscall(__NR_cacheflush, begin, end, ICACHE);
+#endif
+# elif defined(__linux__)
+  // See http://www.linux-mips.org/wiki/Cacheflush_Syscall.
+  cacheflush(const_cast<char*>(memory), memory_size, ICACHE);
+# else
+#   error "Your operating system is not supported yet"
+# endif
+#endif
+}
+
+void sigchld_handler(int signo) { }
+
+int CreateTMPFile(const string& dir, string* path) {
+  string file = dir + "/exception-handler-unittest.XXXXXX";
+  const char* c_file = file.c_str();
+  // Copy that string, mkstemp needs a C string it can modify.
+  char* c_path = strdup(c_file);
+  const int fd = mkstemp(c_path);
+  if (fd >= 0)
+    *path = c_path;
+  free(c_path);
+  return fd;
+}
+
+class ExceptionHandlerTest : public ::testing::Test {
+ protected:
+  void SetUp() {
+    // We need to be able to wait for children, so SIGCHLD cannot be SIG_IGN.
+    struct sigaction sa;
+    memset(&sa, 0, sizeof(sa));
+    sa.sa_handler = sigchld_handler;
+    ASSERT_NE(sigaction(SIGCHLD, &sa, &old_action), -1);
+  }
+
+  void TearDown() {
+    sigaction(SIGCHLD, &old_action, NULL);
+  }
+
+  struct sigaction old_action;
+};
+
+
+void WaitForProcessToTerminate(pid_t process_id, int expected_status) {
+  int status;
+  ASSERT_NE(HANDLE_EINTR(waitpid(process_id, &status, 0)), -1);
+  ASSERT_TRUE(WIFSIGNALED(status));
+  ASSERT_EQ(expected_status, WTERMSIG(status));
+}
+
+// Reads the minidump path sent over the pipe |fd| and sets it in |path|.
+void ReadMinidumpPathFromPipe(int fd, string* path) {
+  struct pollfd pfd;
+  memset(&pfd, 0, sizeof(pfd));
+  pfd.fd = fd;
+  pfd.events = POLLIN | POLLERR;
+
+  const int r = HANDLE_EINTR(poll(&pfd, 1, 0));
+  ASSERT_EQ(1, r);
+  ASSERT_TRUE(pfd.revents & POLLIN);
+
+  int32_t len;
+  ASSERT_EQ(static_cast<ssize_t>(sizeof(len)), read(fd, &len, sizeof(len)));
+  ASSERT_LT(len, 2048);
+  char* filename = static_cast<char*>(malloc(len + 1));
+  ASSERT_EQ(len, read(fd, filename, len));
+  filename[len] = 0;
+  close(fd);
+  *path = filename;
+  free(filename);
+}
+
+}  // namespace
+
+TEST(ExceptionHandlerTest, SimpleWithPath) {
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(
+      MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+  EXPECT_EQ(temp_dir.path(), handler.minidump_descriptor().directory());
+  string temp_subdir = temp_dir.path() + "/subdir";
+  handler.set_minidump_descriptor(MinidumpDescriptor(temp_subdir));
+  EXPECT_EQ(temp_subdir, handler.minidump_descriptor().directory());
+}
+
+TEST(ExceptionHandlerTest, SimpleWithFD) {
+  AutoTempDir temp_dir;
+  string path;
+  const int fd = CreateTMPFile(temp_dir.path(), &path);
+  ExceptionHandler handler(MinidumpDescriptor(fd), NULL, NULL, NULL, true, -1);
+  close(fd);
+}
+
+static bool DoneCallback(const MinidumpDescriptor& descriptor,
+                         void* context,
+                         bool succeeded) {
+  if (!succeeded)
+    return false;
+
+  if (!descriptor.IsFD()) {
+    int fd = reinterpret_cast<intptr_t>(context);
+    uint32_t len = 0;
+    len = my_strlen(descriptor.path());
+    IGNORE_RET(HANDLE_EINTR(sys_write(fd, &len, sizeof(len))));
+    IGNORE_RET(HANDLE_EINTR(sys_write(fd, descriptor.path(), len)));
+  }
+  return true;
+}
+
+#ifndef ADDRESS_SANITIZER
+
+// This is a replacement for "*reinterpret_cast<volatile int*>(NULL) = 0;"
+// It is needed because GCC is allowed to assume that the program will
+// not execute any undefined behavior (UB) operation. Further, when GCC
+// observes that UB statement is reached, it can assume that all statements
+// leading to the UB one are never executed either, and can completely
+// optimize them out. In the case of ExceptionHandlerTest::ExternalDumper,
+// GCC-4.9 optimized out the entire set up of ExceptionHandler, causing
+// test failure.
+volatile int* p_null;  // external linkage, so GCC can't tell that it
+                       // remains NULL. Volatile just for a good measure.
+static void DoNullPointerDereference() {
+  *p_null = 1;
+}
+
+void ChildCrash(bool use_fd) {
+  AutoTempDir temp_dir;
+  int fds[2] = {0};
+  int minidump_fd = -1;
+  string minidump_path;
+  if (use_fd) {
+    minidump_fd = CreateTMPFile(temp_dir.path(), &minidump_path);
+  } else {
+    ASSERT_NE(pipe(fds), -1);
+  }
+
+  const pid_t child = fork();
+  if (child == 0) {
+    {
+      google_breakpad::scoped_ptr<ExceptionHandler> handler;
+      if (use_fd) {
+        handler.reset(new ExceptionHandler(MinidumpDescriptor(minidump_fd),
+                                           NULL, NULL, NULL, true, -1));
+      } else {
+        close(fds[0]);  // Close the reading end.
+        void* fd_param = reinterpret_cast<void*>(fds[1]);
+        handler.reset(new ExceptionHandler(MinidumpDescriptor(temp_dir.path()),
+                                           NULL, DoneCallback, fd_param,
+                                           true, -1));
+      }
+      // Crash with the exception handler in scope.
+      DoNullPointerDereference();
+    }
+  }
+  if (!use_fd)
+    close(fds[1]);  // Close the writting end.
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+
+  if (!use_fd)
+    ASSERT_NO_FATAL_FAILURE(ReadMinidumpPathFromPipe(fds[0], &minidump_path));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_path.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+  unlink(minidump_path.c_str());
+}
+
+TEST(ExceptionHandlerTest, ChildCrashWithPath) {
+  ASSERT_NO_FATAL_FAILURE(ChildCrash(false));
+}
+
+TEST(ExceptionHandlerTest, ChildCrashWithFD) {
+  ASSERT_NO_FATAL_FAILURE(ChildCrash(true));
+}
+
+#if !defined(__ANDROID_API__) || __ANDROID_API__ >= __ANDROID_API_N__
+static void* SleepFunction(void* unused) {
+  while (true) usleep(1000000);
+  return NULL;
+}
+
+static void* CrashFunction(void* b_ptr) {
+  pthread_barrier_t* b = reinterpret_cast<pthread_barrier_t*>(b_ptr);
+  pthread_barrier_wait(b);
+  DoNullPointerDereference();
+  return NULL;
+}
+
+// Tests that concurrent crashes do not enter a loop by alternately triggering
+// the signal handler.
+TEST(ExceptionHandlerTest, ParallelChildCrashesDontHang) {
+  AutoTempDir temp_dir;
+  const pid_t child = fork();
+  if (child == 0) {
+    google_breakpad::scoped_ptr<ExceptionHandler> handler(
+      new ExceptionHandler(MinidumpDescriptor(temp_dir.path()), NULL, NULL,
+                            NULL, true, -1));
+
+    // We start a number of threads to make sure handling the signal takes
+    // enough time for the second thread to enter the signal handler.
+    int num_sleep_threads = 100;
+    google_breakpad::scoped_array<pthread_t> sleep_threads(
+        new pthread_t[num_sleep_threads]);
+    for (int i = 0; i < num_sleep_threads; ++i) {
+      ASSERT_EQ(0, pthread_create(&sleep_threads[i], NULL, SleepFunction,
+                                  NULL));
+    }
+
+    int num_crash_threads = 2;
+    google_breakpad::scoped_array<pthread_t> crash_threads(
+        new pthread_t[num_crash_threads]);
+    // Barrier to synchronize crashing both threads at the same time.
+    pthread_barrier_t b;
+    ASSERT_EQ(0, pthread_barrier_init(&b, NULL, num_crash_threads + 1));
+    for (int i = 0; i < num_crash_threads; ++i) {
+      ASSERT_EQ(0, pthread_create(&crash_threads[i], NULL, CrashFunction, &b));
+    }
+    pthread_barrier_wait(&b);
+    for (int i = 0; i < num_crash_threads; ++i) {
+      ASSERT_EQ(0, pthread_join(crash_threads[i], NULL));
+    }
+  }
+
+  // Wait a while until the child should have crashed.
+  usleep(1000000);
+  // Kill the child if it is still running.
+  kill(child, SIGKILL);
+
+  // If the child process terminated by itself, it will have returned SIGSEGV.
+  // If however it got stuck in a loop, it will have been killed by the
+  // SIGKILL.
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+}
+#endif  // !defined(__ANDROID_API__) || __ANDROID_API__ >= __ANDROID_API_N__
+
+static bool DoneCallbackReturnFalse(const MinidumpDescriptor& descriptor,
+                                    void* context,
+                                    bool succeeded) {
+  return false;
+}
+
+static bool DoneCallbackReturnTrue(const MinidumpDescriptor& descriptor,
+                                   void* context,
+                                   bool succeeded) {
+  return true;
+}
+
+static bool DoneCallbackRaiseSIGKILL(const MinidumpDescriptor& descriptor,
+                                     void* context,
+                                     bool succeeded) {
+  raise(SIGKILL);
+  return true;
+}
+
+static bool FilterCallbackReturnFalse(void* context) {
+  return false;
+}
+
+static bool FilterCallbackReturnTrue(void* context) {
+  return true;
+}
+
+// SIGKILL cannot be blocked and a handler cannot be installed for it. In the
+// following tests, if the child dies with signal SIGKILL, then the signal was
+// redelivered to this handler. If the child dies with SIGSEGV then it wasn't.
+static void RaiseSIGKILL(int sig) {
+  raise(SIGKILL);
+}
+
+static bool InstallRaiseSIGKILL() {
+  struct sigaction sa;
+  memset(&sa, 0, sizeof(sa));
+  sa.sa_handler = RaiseSIGKILL;
+  return sigaction(SIGSEGV, &sa, NULL) != -1;
+}
+
+static void CrashWithCallbacks(ExceptionHandler::FilterCallback filter,
+                               ExceptionHandler::MinidumpCallback done,
+                               string path) {
+  ExceptionHandler handler(
+      MinidumpDescriptor(path), filter, done, NULL, true, -1);
+  // Crash with the exception handler in scope.
+  DoNullPointerDereference();
+}
+
+TEST(ExceptionHandlerTest, RedeliveryOnFilterCallbackFalse) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ASSERT_TRUE(InstallRaiseSIGKILL());
+    CrashWithCallbacks(FilterCallbackReturnFalse, NULL, temp_dir.path());
+  }
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+TEST(ExceptionHandlerTest, RedeliveryOnDoneCallbackFalse) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ASSERT_TRUE(InstallRaiseSIGKILL());
+    CrashWithCallbacks(NULL, DoneCallbackReturnFalse, temp_dir.path());
+  }
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+TEST(ExceptionHandlerTest, NoRedeliveryOnDoneCallbackTrue) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ASSERT_TRUE(InstallRaiseSIGKILL());
+    CrashWithCallbacks(NULL, DoneCallbackReturnTrue, temp_dir.path());
+  }
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+}
+
+TEST(ExceptionHandlerTest, NoRedeliveryOnFilterCallbackTrue) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ASSERT_TRUE(InstallRaiseSIGKILL());
+    CrashWithCallbacks(FilterCallbackReturnTrue, NULL, temp_dir.path());
+  }
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+}
+
+TEST(ExceptionHandlerTest, RedeliveryToDefaultHandler) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    // Custom signal handlers, which may have been installed by a test launcher,
+    // are undesirable in this child.
+    signal(SIGSEGV, SIG_DFL);
+
+    CrashWithCallbacks(FilterCallbackReturnFalse, NULL, temp_dir.path());
+  }
+
+  // As RaiseSIGKILL wasn't installed, the redelivery should just kill the child
+  // with SIGSEGV.
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+}
+
+// Check that saving and restoring the signal handler with 'signal'
+// instead of 'sigaction' doesn't make the Breakpad signal handler
+// crash. See comments in ExceptionHandler::SignalHandler for full
+// details.
+TEST(ExceptionHandlerTest, RedeliveryOnBadSignalHandlerFlag) {
+  AutoTempDir temp_dir;
+  const pid_t child = fork();
+  if (child == 0) {
+    // Install the RaiseSIGKILL handler for SIGSEGV.
+    ASSERT_TRUE(InstallRaiseSIGKILL());
+
+    // Create a new exception handler, this installs a new SIGSEGV
+    // handler, after saving the old one.
+    ExceptionHandler handler(
+        MinidumpDescriptor(temp_dir.path()), NULL,
+        DoneCallbackReturnFalse, NULL, true, -1);
+
+    // Install the default SIGSEGV handler, saving the current one.
+    // Then re-install the current one with 'signal', this loses the
+    // SA_SIGINFO flag associated with the Breakpad handler.
+    sighandler_t old_handler = signal(SIGSEGV, SIG_DFL);
+    ASSERT_NE(reinterpret_cast<void*>(old_handler),
+              reinterpret_cast<void*>(SIG_ERR));
+    ASSERT_NE(reinterpret_cast<void*>(signal(SIGSEGV, old_handler)),
+              reinterpret_cast<void*>(SIG_ERR));
+
+    // Crash with the exception handler in scope.
+    DoNullPointerDereference();
+  }
+  // SIGKILL means Breakpad's signal handler didn't crash.
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+TEST(ExceptionHandlerTest, StackedHandlersDeliveredToTop) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ExceptionHandler bottom(MinidumpDescriptor(temp_dir.path()),
+                            NULL,
+                            NULL,
+                            NULL,
+                            true,
+                            -1);
+    CrashWithCallbacks(NULL, DoneCallbackRaiseSIGKILL, temp_dir.path());
+  }
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+TEST(ExceptionHandlerTest, StackedHandlersNotDeliveredToBottom) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ExceptionHandler bottom(MinidumpDescriptor(temp_dir.path()),
+                            NULL,
+                            DoneCallbackRaiseSIGKILL,
+                            NULL,
+                            true,
+                            -1);
+    CrashWithCallbacks(NULL, NULL, temp_dir.path());
+  }
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+}
+
+TEST(ExceptionHandlerTest, StackedHandlersFilteredToBottom) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ExceptionHandler bottom(MinidumpDescriptor(temp_dir.path()),
+                            NULL,
+                            DoneCallbackRaiseSIGKILL,
+                            NULL,
+                            true,
+                            -1);
+    CrashWithCallbacks(FilterCallbackReturnFalse, NULL, temp_dir.path());
+  }
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+TEST(ExceptionHandlerTest, StackedHandlersUnhandledToBottom) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ExceptionHandler bottom(MinidumpDescriptor(temp_dir.path()),
+                            NULL,
+                            DoneCallbackRaiseSIGKILL,
+                            NULL,
+                            true,
+                            -1);
+    CrashWithCallbacks(NULL, DoneCallbackReturnFalse, temp_dir.path());
+  }
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGKILL));
+}
+
+namespace {
+const int kSimpleFirstChanceReturnStatus = 42;
+bool SimpleFirstChanceHandler(int, siginfo_t*, void*) {
+  _exit(kSimpleFirstChanceReturnStatus);
+}
+}
+
+TEST(ExceptionHandlerTest, FirstChanceHandlerRuns) {
+  AutoTempDir temp_dir;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    ExceptionHandler handler(
+        MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+    google_breakpad::SetFirstChanceExceptionHandler(SimpleFirstChanceHandler);
+    DoNullPointerDereference();
+  }
+  int status;
+  ASSERT_NE(HANDLE_EINTR(waitpid(child, &status, 0)), -1);
+  ASSERT_TRUE(WIFEXITED(status));
+  ASSERT_EQ(kSimpleFirstChanceReturnStatus, WEXITSTATUS(status));
+}
+
+#endif  // !ADDRESS_SANITIZER
+
+const unsigned char kIllegalInstruction[] = {
+#if defined(__mips__)
+  // mfc2 zero,Impl - usually illegal in userspace.
+  0x48, 0x00, 0x00, 0x48
+#else
+  // This crashes with SIGILL on x86/x86-64/arm.
+  0xff, 0xff, 0xff, 0xff
+#endif
+};
+
+// Test that memory around the instruction pointer is written
+// to the dump as a MinidumpMemoryRegion.
+TEST(ExceptionHandlerTest, InstructionPointerMemory) {
+  AutoTempDir temp_dir;
+  int fds[2];
+  ASSERT_NE(pipe(fds), -1);
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = 256;  // bytes
+  const int kOffset = kMemorySize / 2;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[0]);
+    ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL,
+                             DoneCallback, reinterpret_cast<void*>(fds[1]),
+                             true, -1);
+    // Get some executable memory.
+    char* memory =
+      reinterpret_cast<char*>(mmap(NULL,
+                                   kMemorySize,
+                                   PROT_READ | PROT_WRITE | PROT_EXEC,
+                                   MAP_PRIVATE | MAP_ANON,
+                                   -1,
+                                   0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them in the middle
+    // of the block of memory, because the minidump should contain 128
+    // bytes on either side of the instruction pointer.
+    memcpy(memory + kOffset, kIllegalInstruction, sizeof(kIllegalInstruction));
+    FlushInstructionCache(memory, kMemorySize);
+
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+        reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+  }
+  close(fds[1]);
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGILL));
+
+  string minidump_path;
+  ASSERT_NO_FATAL_FAILURE(ReadMinidumpPathFromPipe(fds[0], &minidump_path));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_path.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_path);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_LT(0U, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+      memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  ASSERT_TRUE(region);
+
+  EXPECT_EQ(kMemorySize, region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t prefix_bytes[kOffset];
+  uint8_t suffix_bytes[kMemorySize - kOffset - sizeof(kIllegalInstruction)];
+  memset(prefix_bytes, 0, sizeof(prefix_bytes));
+  memset(suffix_bytes, 0, sizeof(suffix_bytes));
+  EXPECT_TRUE(memcmp(bytes, prefix_bytes, sizeof(prefix_bytes)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset, kIllegalInstruction, 
+                     sizeof(kIllegalInstruction)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset + sizeof(kIllegalInstruction),
+                     suffix_bytes, sizeof(suffix_bytes)) == 0);
+
+  unlink(minidump_path.c_str());
+}
+
+// Test that the memory region around the instruction pointer is
+// bounded correctly on the low end.
+TEST(ExceptionHandlerTest, InstructionPointerMemoryMinBound) {
+  AutoTempDir temp_dir;
+  int fds[2];
+  ASSERT_NE(pipe(fds), -1);
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = 256;  // bytes
+  const int kOffset = 0;
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[0]);
+    ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL,
+                             DoneCallback, reinterpret_cast<void*>(fds[1]),
+                             true, -1);
+    // Get some executable memory.
+    char* memory =
+        reinterpret_cast<char*>(mmap(NULL,
+                                     kMemorySize,
+                                     PROT_READ | PROT_WRITE | PROT_EXEC,
+                                     MAP_PRIVATE | MAP_ANON,
+                                     -1,
+                                     0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them in the middle
+    // of the block of memory, because the minidump should contain 128
+    // bytes on either side of the instruction pointer.
+    memcpy(memory + kOffset, kIllegalInstruction, sizeof(kIllegalInstruction));
+    FlushInstructionCache(memory, kMemorySize);
+
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+        reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+  }
+  close(fds[1]);
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGILL));
+
+  string minidump_path;
+  ASSERT_NO_FATAL_FAILURE(ReadMinidumpPathFromPipe(fds[0], &minidump_path));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_path.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_path);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_LT(0U, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+      memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  ASSERT_TRUE(region);
+
+  EXPECT_EQ(kMemorySize / 2, region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t suffix_bytes[kMemorySize / 2 - sizeof(kIllegalInstruction)];
+  memset(suffix_bytes, 0, sizeof(suffix_bytes));
+  EXPECT_TRUE(memcmp(bytes + kOffset, kIllegalInstruction, 
+                     sizeof(kIllegalInstruction)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset + sizeof(kIllegalInstruction),
+                     suffix_bytes, sizeof(suffix_bytes)) == 0);
+  unlink(minidump_path.c_str());
+}
+
+// Test that the memory region around the instruction pointer is
+// bounded correctly on the high end.
+TEST(ExceptionHandlerTest, InstructionPointerMemoryMaxBound) {
+  AutoTempDir temp_dir;
+  int fds[2];
+  ASSERT_NE(pipe(fds), -1);
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  // Use 4k here because the OS will hand out a single page even
+  // if a smaller size is requested, and this test wants to
+  // test the upper bound of the memory range.
+  const uint32_t kMemorySize = 4096;  // bytes
+  const int kOffset = kMemorySize - sizeof(kIllegalInstruction);
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[0]);
+    ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL,
+                             DoneCallback, reinterpret_cast<void*>(fds[1]),
+                             true, -1);
+    // Get some executable memory.
+    char* memory =
+        reinterpret_cast<char*>(mmap(NULL,
+                                     kMemorySize,
+                                     PROT_READ | PROT_WRITE | PROT_EXEC,
+                                     MAP_PRIVATE | MAP_ANON,
+                                     -1,
+                                     0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them in the middle
+    // of the block of memory, because the minidump should contain 128
+    // bytes on either side of the instruction pointer.
+    memcpy(memory + kOffset, kIllegalInstruction, sizeof(kIllegalInstruction));
+    FlushInstructionCache(memory, kMemorySize);
+
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+        reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+  }
+  close(fds[1]);
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGILL));
+
+  string minidump_path;
+  ASSERT_NO_FATAL_FAILURE(ReadMinidumpPathFromPipe(fds[0], &minidump_path));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_path.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  // Read the minidump. Locate the exception record and the memory list, and
+  // then ensure that there is a memory region in the memory list that covers
+  // the instruction pointer from the exception record.
+  Minidump minidump(minidump_path);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_LT(0U, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+      memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  ASSERT_TRUE(region);
+
+  const size_t kPrefixSize = 128;  // bytes
+  EXPECT_EQ(kPrefixSize + sizeof(kIllegalInstruction), region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t prefix_bytes[kPrefixSize];
+  memset(prefix_bytes, 0, sizeof(prefix_bytes));
+  EXPECT_TRUE(memcmp(bytes, prefix_bytes, sizeof(prefix_bytes)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kPrefixSize,
+                     kIllegalInstruction, sizeof(kIllegalInstruction)) == 0);
+
+  unlink(minidump_path.c_str());
+}
+
+#ifndef ADDRESS_SANITIZER
+
+// Ensure that an extra memory block doesn't get added when the instruction
+// pointer is not in mapped memory.
+TEST(ExceptionHandlerTest, InstructionPointerMemoryNullPointer) {
+  AutoTempDir temp_dir;
+  int fds[2];
+  ASSERT_NE(pipe(fds), -1);
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[0]);
+    ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL,
+                             DoneCallback, reinterpret_cast<void*>(fds[1]),
+                             true, -1);
+    // Try calling a NULL pointer.
+    typedef void (*void_function)(void);
+    // Volatile markings are needed to keep Clang from generating invalid
+    // opcodes.  See http://crbug.com/498354 for details.
+    volatile void_function memory_function =
+      reinterpret_cast<void_function>(NULL);
+    memory_function();
+    // not reached
+    exit(1);
+  }
+  close(fds[1]);
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+
+  string minidump_path;
+  ASSERT_NO_FATAL_FAILURE(ReadMinidumpPathFromPipe(fds[0], &minidump_path));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_path.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is no memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_path);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  ASSERT_TRUE(exception);
+
+  MinidumpContext* exception_context = exception->GetContext();
+  ASSERT_TRUE(exception_context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(exception_context->GetInstructionPointer(&instruction_pointer));
+  EXPECT_EQ(instruction_pointer, 0u);
+
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(memory_list);
+
+  unsigned int region_count = memory_list->region_count();
+  ASSERT_GE(region_count, 1u);
+
+  for (unsigned int region_index = 0;
+       region_index < region_count;
+       ++region_index) {
+    MinidumpMemoryRegion* region =
+        memory_list->GetMemoryRegionAtIndex(region_index);
+    uint64_t region_base = region->GetBase();
+    EXPECT_FALSE(instruction_pointer >= region_base &&
+                 instruction_pointer < region_base + region->GetSize());
+  }
+
+  unlink(minidump_path.c_str());
+}
+
+#endif  // !ADDRESS_SANITIZER
+
+// Test that anonymous memory maps can be annotated with names and IDs.
+TEST(ExceptionHandlerTest, ModuleInfo) {
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = sysconf(_SC_PAGESIZE);
+  const char* kMemoryName = "a fake module";
+  const uint8_t kModuleGUID[sizeof(MDGUID)] = {
+    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
+  };
+  const string module_identifier = "33221100554477668899AABBCCDDEEFF0";
+
+  // Get some memory.
+  char* memory =
+      reinterpret_cast<char*>(mmap(NULL,
+                                   kMemorySize,
+                                   PROT_READ | PROT_WRITE,
+                                   MAP_PRIVATE | MAP_ANON,
+                                   -1,
+                                   0));
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(
+      MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+
+  // Add info about the anonymous memory mapping.
+  handler.AddMappingInfo(kMemoryName,
+                         kModuleGUID,
+                         kMemoryAddress,
+                         kMemorySize,
+                         0);
+  ASSERT_TRUE(handler.WriteMinidump());
+
+  const MinidumpDescriptor& minidump_desc = handler.minidump_descriptor();
+  // Read the minidump. Load the module list, and ensure that the mmap'ed
+  // |memory| is listed with the given module name and debug ID.
+  Minidump minidump(minidump_desc.path());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* module =
+      module_list->GetModuleForAddress(kMemoryAddress);
+  ASSERT_TRUE(module);
+
+  EXPECT_EQ(kMemoryAddress, module->base_address());
+  EXPECT_EQ(kMemorySize, module->size());
+  EXPECT_EQ(kMemoryName, module->code_file());
+  EXPECT_EQ(module_identifier, module->debug_identifier());
+
+  unlink(minidump_desc.path());
+}
+
+#ifndef ADDRESS_SANITIZER
+
+static const unsigned kControlMsgSize =
+    CMSG_SPACE(sizeof(int)) + CMSG_SPACE(sizeof(struct ucred));
+
+static bool
+CrashHandler(const void* crash_context, size_t crash_context_size,
+             void* context) {
+  const int fd = (intptr_t) context;
+  int fds[2];
+  if (pipe(fds) == -1) {
+    // There doesn't seem to be any way to reliably handle
+    // this failure without the parent process hanging
+    // At least make sure that this process doesn't access
+    // unexpected file descriptors
+    fds[0] = -1;
+    fds[1] = -1;
+  }
+  struct kernel_msghdr msg = {0};
+  struct kernel_iovec iov;
+  iov.iov_base = const_cast<void*>(crash_context);
+  iov.iov_len = crash_context_size;
+  msg.msg_iov = &iov;
+  msg.msg_iovlen = 1;
+  char cmsg[kControlMsgSize];
+  memset(cmsg, 0, kControlMsgSize);
+  msg.msg_control = cmsg;
+  msg.msg_controllen = sizeof(cmsg);
+
+  struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg);
+  hdr->cmsg_level = SOL_SOCKET;
+  hdr->cmsg_type = SCM_RIGHTS;
+  hdr->cmsg_len = CMSG_LEN(sizeof(int));
+  *((int*) CMSG_DATA(hdr)) = fds[1];
+  hdr = CMSG_NXTHDR((struct msghdr*) &msg, hdr);
+  hdr->cmsg_level = SOL_SOCKET;
+  hdr->cmsg_type = SCM_CREDENTIALS;
+  hdr->cmsg_len = CMSG_LEN(sizeof(struct ucred));
+  struct ucred* cred = reinterpret_cast<struct ucred*>(CMSG_DATA(hdr));
+  cred->uid = getuid();
+  cred->gid = getgid();
+  cred->pid = getpid();
+
+  ssize_t ret = HANDLE_EINTR(sys_sendmsg(fd, &msg, 0));
+  sys_close(fds[1]);
+  if (ret <= 0)
+    return false;
+
+  char b;
+  IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
+
+  return true;
+}
+
+TEST(ExceptionHandlerTest, ExternalDumper) {
+  int fds[2];
+  ASSERT_NE(socketpair(AF_UNIX, SOCK_DGRAM, 0, fds), -1);
+  static const int on = 1;
+  setsockopt(fds[0], SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
+  setsockopt(fds[1], SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[0]);
+    ExceptionHandler handler(MinidumpDescriptor("/tmp1"), NULL, NULL,
+                             reinterpret_cast<void*>(fds[1]), true, -1);
+    handler.set_crash_handler(CrashHandler);
+    DoNullPointerDereference();
+  }
+  close(fds[1]);
+  struct msghdr msg = {0};
+  struct iovec iov;
+  static const unsigned kCrashContextSize =
+      sizeof(ExceptionHandler::CrashContext);
+  char context[kCrashContextSize];
+  char control[kControlMsgSize];
+  iov.iov_base = context;
+  iov.iov_len = kCrashContextSize;
+  msg.msg_iov = &iov;
+  msg.msg_iovlen = 1;
+  msg.msg_control = control;
+  msg.msg_controllen = kControlMsgSize;
+
+  const ssize_t n = HANDLE_EINTR(recvmsg(fds[0], &msg, 0));
+  ASSERT_EQ(static_cast<ssize_t>(kCrashContextSize), n);
+  ASSERT_EQ(kControlMsgSize, msg.msg_controllen);
+  ASSERT_EQ(static_cast<__typeof__(msg.msg_flags)>(0), msg.msg_flags);
+  ASSERT_EQ(0, close(fds[0]));
+
+  pid_t crashing_pid = -1;
+  int signal_fd = -1;
+  for (struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg); hdr;
+       hdr = CMSG_NXTHDR(&msg, hdr)) {
+    if (hdr->cmsg_level != SOL_SOCKET)
+      continue;
+    if (hdr->cmsg_type == SCM_RIGHTS) {
+      const unsigned len = hdr->cmsg_len -
+          (((uint8_t*)CMSG_DATA(hdr)) - (uint8_t*)hdr);
+      ASSERT_EQ(sizeof(int), len);
+      signal_fd = *(reinterpret_cast<int*>(CMSG_DATA(hdr)));
+    } else if (hdr->cmsg_type == SCM_CREDENTIALS) {
+      const struct ucred* cred =
+          reinterpret_cast<struct ucred*>(CMSG_DATA(hdr));
+      crashing_pid = cred->pid;
+    }
+  }
+
+  ASSERT_NE(crashing_pid, -1);
+  ASSERT_NE(signal_fd, -1);
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + "/exception-handler-unittest";
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), crashing_pid, context,
+                            kCrashContextSize));
+  static const char b = 0;
+  ASSERT_EQ(1, (HANDLE_EINTR(write(signal_fd, &b, 1))));
+  ASSERT_EQ(0, close(signal_fd));
+
+  ASSERT_NO_FATAL_FAILURE(WaitForProcessToTerminate(child, SIGSEGV));
+
+  struct stat st;
+  ASSERT_EQ(0, stat(templ.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+  unlink(templ.c_str());
+}
+
+#endif  // !ADDRESS_SANITIZER
+
+TEST(ExceptionHandlerTest, WriteMinidumpExceptionStream) {
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL, NULL,
+                           NULL, false, -1);
+  ASSERT_TRUE(handler.WriteMinidump());
+
+  string minidump_path = handler.minidump_descriptor().path();
+
+  // Read the minidump and check the exception stream.
+  Minidump minidump(minidump_path);
+  ASSERT_TRUE(minidump.Read());
+  MinidumpException* exception = minidump.GetException();
+  ASSERT_TRUE(exception);
+  const MDRawExceptionStream* raw = exception->exception();
+  ASSERT_TRUE(raw);
+  EXPECT_EQ(MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED,
+            raw->exception_record.exception_code);
+}
+
+TEST(ExceptionHandlerTest, GenerateMultipleDumpsWithFD) {
+  AutoTempDir temp_dir;
+  string path;
+  const int fd = CreateTMPFile(temp_dir.path(), &path);
+  ExceptionHandler handler(MinidumpDescriptor(fd), NULL, NULL, NULL, false, -1);
+  ASSERT_TRUE(handler.WriteMinidump());
+  // Check by the size of the data written to the FD that a minidump was
+  // generated.
+  off_t size = lseek(fd, 0, SEEK_CUR);
+  ASSERT_GT(size, 0);
+
+  // Generate another minidump.
+  ASSERT_TRUE(handler.WriteMinidump());
+  size = lseek(fd, 0, SEEK_CUR);
+  ASSERT_GT(size, 0);
+}
+
+TEST(ExceptionHandlerTest, GenerateMultipleDumpsWithPath) {
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(MinidumpDescriptor(temp_dir.path()), NULL, NULL,
+                           NULL, false, -1);
+  ASSERT_TRUE(handler.WriteMinidump());
+
+  const MinidumpDescriptor& minidump_1 = handler.minidump_descriptor();
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_1.path(), &st));
+  ASSERT_GT(st.st_size, 0);
+  string minidump_1_path(minidump_1.path());
+  // Check it is a valid minidump.
+  Minidump minidump1(minidump_1_path);
+  ASSERT_TRUE(minidump1.Read());
+  unlink(minidump_1.path());
+
+  // Generate another minidump, it should go to a different file.
+  ASSERT_TRUE(handler.WriteMinidump());
+  const MinidumpDescriptor& minidump_2 = handler.minidump_descriptor();
+  ASSERT_EQ(0, stat(minidump_2.path(), &st));
+  ASSERT_GT(st.st_size, 0);
+  string minidump_2_path(minidump_2.path());
+  // Check it is a valid minidump.
+  Minidump minidump2(minidump_2_path);
+  ASSERT_TRUE(minidump2.Read());
+  unlink(minidump_2.path());
+
+  // 2 distinct files should be produced.
+  ASSERT_STRNE(minidump_1_path.c_str(), minidump_2_path.c_str());
+}
+
+// Test that an additional memory region can be added to the minidump.
+TEST(ExceptionHandlerTest, AdditionalMemory) {
+  const uint32_t kMemorySize = sysconf(_SC_PAGESIZE);
+
+  // Get some heap memory.
+  uint8_t* memory = new uint8_t[kMemorySize];
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  // Stick some data into the memory so the contents can be verified.
+  for (uint32_t i = 0; i < kMemorySize; ++i) {
+    memory[i] = i % 255;
+  }
+
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(
+      MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+
+  // Add the memory region to the list of memory to be included.
+  handler.RegisterAppMemory(memory, kMemorySize);
+  handler.WriteMinidump();
+
+  const MinidumpDescriptor& minidump_desc = handler.minidump_descriptor();
+
+  // Read the minidump. Ensure that the memory region is present
+  Minidump minidump(minidump_desc.path());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* dump_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(dump_memory_list);
+  const MinidumpMemoryRegion* region =
+    dump_memory_list->GetMemoryRegionForAddress(kMemoryAddress);
+  ASSERT_TRUE(region);
+
+  EXPECT_EQ(kMemoryAddress, region->GetBase());
+  EXPECT_EQ(kMemorySize, region->GetSize());
+
+  // Verify memory contents.
+  EXPECT_EQ(0, memcmp(region->GetMemory(), memory, kMemorySize));
+
+  delete[] memory;
+}
+
+// Test that a memory region that was previously registered
+// can be unregistered.
+TEST(ExceptionHandlerTest, AdditionalMemoryRemove) {
+  const uint32_t kMemorySize = sysconf(_SC_PAGESIZE);
+
+  // Get some heap memory.
+  uint8_t* memory = new uint8_t[kMemorySize];
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  AutoTempDir temp_dir;
+  ExceptionHandler handler(
+      MinidumpDescriptor(temp_dir.path()), NULL, NULL, NULL, true, -1);
+
+  // Add the memory region to the list of memory to be included.
+  handler.RegisterAppMemory(memory, kMemorySize);
+
+  // ...and then remove it
+  handler.UnregisterAppMemory(memory);
+  handler.WriteMinidump();
+
+  const MinidumpDescriptor& minidump_desc = handler.minidump_descriptor();
+
+  // Read the minidump. Ensure that the memory region is not present.
+  Minidump minidump(minidump_desc.path());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* dump_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(dump_memory_list);
+  const MinidumpMemoryRegion* region =
+    dump_memory_list->GetMemoryRegionForAddress(kMemoryAddress);
+  EXPECT_FALSE(region);
+
+  delete[] memory;
+}
+
+static bool SimpleCallback(const MinidumpDescriptor& descriptor,
+                           void* context,
+                           bool succeeded) {
+  string* filename = reinterpret_cast<string*>(context);
+  *filename = descriptor.path();
+  return true;
+}
+
+TEST(ExceptionHandlerTest, WriteMinidumpForChild) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    HANDLE_EINTR(read(fds[0], &b, sizeof(b)));
+    close(fds[0]);
+    syscall(__NR_exit);
+  }
+  close(fds[0]);
+
+  AutoTempDir temp_dir;
+  string minidump_filename;
+  ASSERT_TRUE(
+    ExceptionHandler::WriteMinidumpForChild(child, child,
+                                            temp_dir.path(), SimpleCallback,
+                                            (void*)&minidump_filename));
+
+  Minidump minidump(minidump_filename);
+  ASSERT_TRUE(minidump.Read());
+  // Check that the crashing thread is the main thread of |child|
+  MinidumpException* exception = minidump.GetException();
+  ASSERT_TRUE(exception);
+  uint32_t thread_id;
+  ASSERT_TRUE(exception->GetThreadID(&thread_id));
+  EXPECT_EQ(child, static_cast<int32_t>(thread_id));
+
+  const MDRawExceptionStream* raw = exception->exception();
+  ASSERT_TRUE(raw);
+  EXPECT_EQ(MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED,
+            raw->exception_record.exception_code);
+
+  close(fds[1]);
+  unlink(minidump_filename.c_str());
+}
diff --git a/src/client/linux/handler/microdump_extra_info.h b/src/client/linux/handler/microdump_extra_info.h
new file mode 100644
index 0000000..bf01f0c
--- /dev/null
+++ b/src/client/linux/handler/microdump_extra_info.h
@@ -0,0 +1,52 @@
+// Copyright 2015 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_
+#define CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_
+
+namespace google_breakpad {
+
+struct MicrodumpExtraInfo {
+  // Strings pointed to by this struct are not copied, and are
+  // expected to remain valid for the lifetime of the process.
+  const char* build_fingerprint;
+  const char* product_info;
+  const char* gpu_fingerprint;
+  const char* process_type;
+
+  MicrodumpExtraInfo()
+      : build_fingerprint(NULL),
+        product_info(NULL),
+        gpu_fingerprint(NULL),
+        process_type(NULL) {}
+};
+
+}
+
+#endif  // CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_
diff --git a/src/client/linux/handler/minidump_descriptor.cc b/src/client/linux/handler/minidump_descriptor.cc
new file mode 100644
index 0000000..bd94474
--- /dev/null
+++ b/src/client/linux/handler/minidump_descriptor.cc
@@ -0,0 +1,97 @@
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdio.h>
+
+#include "client/linux/handler/minidump_descriptor.h"
+
+#include "common/linux/guid_creator.h"
+
+namespace google_breakpad {
+
+//static
+const MinidumpDescriptor::MicrodumpOnConsole
+    MinidumpDescriptor::kMicrodumpOnConsole = {};
+
+MinidumpDescriptor::MinidumpDescriptor(const MinidumpDescriptor& descriptor)
+    : mode_(descriptor.mode_),
+      fd_(descriptor.fd_),
+      directory_(descriptor.directory_),
+      c_path_(NULL),
+      size_limit_(descriptor.size_limit_),
+      address_within_principal_mapping_(
+          descriptor.address_within_principal_mapping_),
+      skip_dump_if_principal_mapping_not_referenced_(
+          descriptor.skip_dump_if_principal_mapping_not_referenced_),
+      sanitize_stacks_(descriptor.sanitize_stacks_),
+      microdump_extra_info_(descriptor.microdump_extra_info_) {
+  // The copy constructor is not allowed to be called on a MinidumpDescriptor
+  // with a valid path_, as getting its c_path_ would require the heap which
+  // can cause problems in compromised environments.
+  assert(descriptor.path_.empty());
+}
+
+MinidumpDescriptor& MinidumpDescriptor::operator=(
+    const MinidumpDescriptor& descriptor) {
+  assert(descriptor.path_.empty());
+
+  mode_ = descriptor.mode_;
+  fd_ = descriptor.fd_;
+  directory_ = descriptor.directory_;
+  path_.clear();
+  if (c_path_) {
+    // This descriptor already had a path set, so generate a new one.
+    c_path_ = NULL;
+    UpdatePath();
+  }
+  size_limit_ = descriptor.size_limit_;
+  address_within_principal_mapping_ =
+      descriptor.address_within_principal_mapping_;
+  skip_dump_if_principal_mapping_not_referenced_ =
+      descriptor.skip_dump_if_principal_mapping_not_referenced_;
+  sanitize_stacks_ = descriptor.sanitize_stacks_;
+  microdump_extra_info_ = descriptor.microdump_extra_info_;
+  return *this;
+}
+
+void MinidumpDescriptor::UpdatePath() {
+  assert(mode_ == kWriteMinidumpToFile && !directory_.empty());
+
+  GUID guid;
+  char guid_str[kGUIDStringLength + 1];
+  if (!CreateGUID(&guid) || !GUIDToString(&guid, guid_str, sizeof(guid_str))) {
+    assert(false);
+  }
+
+  path_.clear();
+  path_ = directory_ + "/" + guid_str + ".dmp";
+  c_path_ = path_.c_str();
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/handler/minidump_descriptor.h b/src/client/linux/handler/minidump_descriptor.h
new file mode 100644
index 0000000..c7e4f2b
--- /dev/null
+++ b/src/client/linux/handler/minidump_descriptor.h
@@ -0,0 +1,199 @@
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
+#define CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
+
+#include <assert.h>
+#include <sys/types.h>
+
+#include <string>
+
+#include "client/linux/handler/microdump_extra_info.h"
+#include "common/using_std_string.h"
+
+// This class describes how a crash dump should be generated, either:
+// - Writing a full minidump to a file in a given directory (the actual path,
+//   inside the directory, is determined by this class).
+// - Writing a full minidump to a given fd.
+// - Writing a reduced microdump to the console (logcat on Android).
+namespace google_breakpad {
+
+class MinidumpDescriptor {
+ public:
+  struct MicrodumpOnConsole {};
+  static const MicrodumpOnConsole kMicrodumpOnConsole;
+
+  MinidumpDescriptor()
+      : mode_(kUninitialized),
+        fd_(-1),
+        size_limit_(-1),
+        address_within_principal_mapping_(0),
+        skip_dump_if_principal_mapping_not_referenced_(false) {}
+
+  explicit MinidumpDescriptor(const string& directory)
+      : mode_(kWriteMinidumpToFile),
+        fd_(-1),
+        directory_(directory),
+        c_path_(NULL),
+        size_limit_(-1),
+        address_within_principal_mapping_(0),
+        skip_dump_if_principal_mapping_not_referenced_(false),
+        sanitize_stacks_(false) {
+    assert(!directory.empty());
+  }
+
+  explicit MinidumpDescriptor(int fd)
+      : mode_(kWriteMinidumpToFd),
+        fd_(fd),
+        c_path_(NULL),
+        size_limit_(-1),
+        address_within_principal_mapping_(0),
+        skip_dump_if_principal_mapping_not_referenced_(false),
+        sanitize_stacks_(false) {
+    assert(fd != -1);
+  }
+
+  explicit MinidumpDescriptor(const MicrodumpOnConsole&)
+      : mode_(kWriteMicrodumpToConsole),
+        fd_(-1),
+        size_limit_(-1),
+        address_within_principal_mapping_(0),
+        skip_dump_if_principal_mapping_not_referenced_(false),
+        sanitize_stacks_(false) {}
+
+  explicit MinidumpDescriptor(const MinidumpDescriptor& descriptor);
+  MinidumpDescriptor& operator=(const MinidumpDescriptor& descriptor);
+
+  static MinidumpDescriptor getMicrodumpDescriptor();
+
+  bool IsFD() const { return mode_ == kWriteMinidumpToFd; }
+
+  int fd() const { return fd_; }
+
+  string directory() const { return directory_; }
+
+  const char* path() const { return c_path_; }
+
+  bool IsMicrodumpOnConsole() const {
+    return mode_ == kWriteMicrodumpToConsole;
+  }
+
+  // Updates the path so it is unique.
+  // Should be called from a normal context: this methods uses the heap.
+  void UpdatePath();
+
+  off_t size_limit() const { return size_limit_; }
+  void set_size_limit(off_t limit) { size_limit_ = limit; }
+
+  uintptr_t address_within_principal_mapping() const {
+    return address_within_principal_mapping_;
+  }
+  void set_address_within_principal_mapping(
+      uintptr_t address_within_principal_mapping) {
+    address_within_principal_mapping_ = address_within_principal_mapping;
+  }
+
+  bool skip_dump_if_principal_mapping_not_referenced() {
+    return skip_dump_if_principal_mapping_not_referenced_;
+  }
+  void set_skip_dump_if_principal_mapping_not_referenced(
+      bool skip_dump_if_principal_mapping_not_referenced) {
+    skip_dump_if_principal_mapping_not_referenced_ =
+        skip_dump_if_principal_mapping_not_referenced;
+  }
+
+  bool sanitize_stacks() const { return sanitize_stacks_; }
+  void set_sanitize_stacks(bool sanitize_stacks) {
+    sanitize_stacks_ = sanitize_stacks;
+  }
+
+  MicrodumpExtraInfo* microdump_extra_info() {
+    assert(IsMicrodumpOnConsole());
+    return &microdump_extra_info_;
+  }
+
+ private:
+  enum DumpMode {
+    kUninitialized = 0,
+    kWriteMinidumpToFile,
+    kWriteMinidumpToFd,
+    kWriteMicrodumpToConsole
+  };
+
+  // Specifies the dump mode (see DumpMode).
+  DumpMode mode_;
+
+  // The file descriptor where the minidump is generated.
+  int fd_;
+
+  // The directory where the minidump should be generated.
+  string directory_;
+
+  // The full path to the generated minidump.
+  string path_;
+
+  // The C string of |path_|. Precomputed so it can be access from a compromised
+  // context.
+  const char* c_path_;
+
+  off_t size_limit_;
+
+  // This member points somewhere into the main module for this
+  // process (the module that is considerered interesting for the
+  // purposes of debugging crashes).
+  uintptr_t address_within_principal_mapping_;
+
+  // If set, threads that do not reference the address range
+  // associated with |address_within_principal_mapping_| will not have their
+  // stacks logged.
+  bool skip_dump_if_principal_mapping_not_referenced_;
+
+  // If set, stacks are sanitized to remove PII. This involves
+  // overwriting any pointer-aligned words that are not either
+  // pointers into a process mapping or small integers (+/-4096). This
+  // leaves enough information to unwind stacks, and preserve some
+  // register values, but elides strings and other program data.
+  bool sanitize_stacks_;
+
+  // The extra microdump data (e.g. product name/version, build
+  // fingerprint, gpu fingerprint) that should be appended to the dump
+  // (microdump only). Microdumps don't have the ability of appending
+  // extra metadata after the dump is generated (as opposite to
+  // minidumps MIME fields), therefore the extra data must be provided
+  // upfront. Any memory pointed to by members of the
+  // MicrodumpExtraInfo struct must be valid for the lifetime of the
+  // process (read: the caller has to guarantee that it is stored in
+  // global static storage.)
+  MicrodumpExtraInfo microdump_extra_info_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
diff --git a/src/client/linux/log/log.cc b/src/client/linux/log/log.cc
new file mode 100644
index 0000000..3187940
--- /dev/null
+++ b/src/client/linux/log/log.cc
@@ -0,0 +1,84 @@
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/linux/log/log.h"
+
+#if defined(__ANDROID__)
+#include <android/log.h>
+#include <dlfcn.h>
+#else
+#include "third_party/lss/linux_syscall_support.h"
+#endif
+
+namespace logger {
+
+#if defined(__ANDROID__)
+namespace {
+
+// __android_log_buf_write() is not exported in the NDK and is being used by
+// dynamic runtime linking. Its declaration is taken from Android's
+// system/core/include/log/log.h.
+using AndroidLogBufferWriteFunc = int (*)(int bufID, int prio, const char* tag,
+                                          const char* text);
+const int kAndroidCrashLogId = 4;  // From LOG_ID_CRASH in log.h.
+const char kAndroidLogTag[] = "google-breakpad";
+
+bool g_crash_log_initialized = false;
+AndroidLogBufferWriteFunc g_android_log_buf_write = nullptr;
+
+}  // namespace
+
+void initializeCrashLogWriter() {
+  if (g_crash_log_initialized)
+    return;
+  g_android_log_buf_write = reinterpret_cast<AndroidLogBufferWriteFunc>(
+      dlsym(RTLD_DEFAULT, "__android_log_buf_write"));
+  g_crash_log_initialized = true;
+}
+
+int writeToCrashLog(const char* buf) {
+  // Try writing to the crash log ring buffer. If not available, fall back to
+  // the standard log buffer.
+  if (g_android_log_buf_write) {
+    return g_android_log_buf_write(kAndroidCrashLogId, ANDROID_LOG_FATAL,
+                                   kAndroidLogTag, buf);
+  }
+  return __android_log_write(ANDROID_LOG_FATAL, kAndroidLogTag, buf);
+}
+#endif
+
+int write(const char* buf, size_t nbytes) {
+#if defined(__ANDROID__)
+  return __android_log_write(ANDROID_LOG_WARN, kAndroidLogTag, buf);
+#else
+  return sys_write(2, buf, nbytes);
+#endif
+}
+
+}  // namespace logger
diff --git a/src/client/linux/log/log.h b/src/client/linux/log/log.h
new file mode 100644
index 0000000..f94bbd5
--- /dev/null
+++ b/src/client/linux/log/log.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_LOG_LOG_H_
+#define CLIENT_LINUX_LOG_LOG_H_
+
+#include <stddef.h>
+
+namespace logger {
+
+int write(const char* buf, size_t nbytes);
+
+// In the case of Android the log can be written to the default system log
+// (default behavior of write() above, or to the crash log (see
+// writeToCrashLog() below).
+#if defined(__ANDROID__)
+
+// The logger must be initialized in a non-compromised context.
+void initializeCrashLogWriter();
+
+// Once initialized, writeToCrashLog is safe to use in a compromised context,
+// even if the initialization failed, in which case this will silently fall
+// back on write().
+int writeToCrashLog(const char* buf);
+#endif
+
+}  // namespace logger
+
+#endif  // CLIENT_LINUX_LOG_LOG_H_
diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
new file mode 100644
index 0000000..fa3c171
--- /dev/null
+++ b/src/client/linux/microdump_writer/microdump_writer.cc
@@ -0,0 +1,664 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This translation unit generates microdumps into the console (logcat on
+// Android). See crbug.com/410294 for more info and design docs.
+
+#include "client/linux/microdump_writer/microdump_writer.h"
+
+#include <limits>
+
+#include <sys/utsname.h>
+
+#include "client/linux/dump_writer_common/thread_info.h"
+#include "client/linux/dump_writer_common/ucontext_reader.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/handler/microdump_extra_info.h"
+#include "client/linux/log/log.h"
+#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+#include "common/linux/file_id.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/memory_allocator.h"
+
+namespace {
+
+using google_breakpad::auto_wasteful_vector;
+using google_breakpad::ExceptionHandler;
+using google_breakpad::kDefaultBuildIdSize;
+using google_breakpad::LinuxDumper;
+using google_breakpad::LinuxPtraceDumper;
+using google_breakpad::MappingInfo;
+using google_breakpad::MappingList;
+using google_breakpad::MicrodumpExtraInfo;
+using google_breakpad::RawContextCPU;
+using google_breakpad::ThreadInfo;
+using google_breakpad::UContextReader;
+
+const size_t kLineBufferSize = 2048;
+
+#if !defined(__LP64__)
+// The following are only used by DumpFreeSpace, so need to be compiled
+// in conditionally in the same way.
+
+template <typename Dst, typename Src>
+Dst saturated_cast(Src src) {
+  if (src >= std::numeric_limits<Dst>::max())
+    return std::numeric_limits<Dst>::max();
+  if (src <= std::numeric_limits<Dst>::min())
+    return std::numeric_limits<Dst>::min();
+  return static_cast<Dst>(src);
+}
+
+int Log2Floor(uint64_t n) {
+  // Copied from chromium src/base/bits.h
+  if (n == 0)
+    return -1;
+  int log = 0;
+  uint64_t value = n;
+  for (int i = 5; i >= 0; --i) {
+    int shift = (1 << i);
+    uint64_t x = value >> shift;
+    if (x != 0) {
+      value = x;
+      log += shift;
+    }
+  }
+  assert(value == 1u);
+  return log;
+}
+
+bool MappingsAreAdjacent(const MappingInfo& a, const MappingInfo& b) {
+  // Because of load biasing, we can end up with a situation where two
+  // mappings actually overlap. So we will define adjacency to also include a
+  // b start address that lies within a's address range (including starting
+  // immediately after a).
+  // Because load biasing only ever moves the start address backwards, the end
+  // address should still increase.
+  return a.start_addr <= b.start_addr && a.start_addr + a.size >= b.start_addr;
+}
+
+bool MappingLessThan(const MappingInfo* a, const MappingInfo* b) {
+  // Return true if mapping a is before mapping b.
+  // For the same reason (load biasing) we compare end addresses, which - unlike
+  // start addresses - will not have been modified.
+  return a->start_addr + a->size < b->start_addr + b->size;
+}
+
+size_t NextOrderedMapping(
+    const google_breakpad::wasteful_vector<MappingInfo*>& mappings,
+    size_t curr) {
+  // Find the mapping that directly follows mappings[curr].
+  // If no such mapping exists, return |invalid| to indicate this.
+  const size_t invalid = std::numeric_limits<size_t>::max();
+  size_t best = invalid;
+  for (size_t next = 0; next < mappings.size(); ++next) {
+    if (MappingLessThan(mappings[curr], mappings[next]) &&
+        (best == invalid || MappingLessThan(mappings[next], mappings[best]))) {
+      best = next;
+    }
+  }
+  return best;
+}
+
+#endif  // !__LP64__
+
+class MicrodumpWriter {
+ public:
+  MicrodumpWriter(const ExceptionHandler::CrashContext* context,
+                  const MappingList& mappings,
+                  bool skip_dump_if_principal_mapping_not_referenced,
+                  uintptr_t address_within_principal_mapping,
+                  bool sanitize_stack,
+                  const MicrodumpExtraInfo& microdump_extra_info,
+                  LinuxDumper* dumper)
+      : ucontext_(context ? &context->context : NULL),
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+        float_state_(context ? &context->float_state : NULL),
+#endif
+        dumper_(dumper),
+        mapping_list_(mappings),
+        skip_dump_if_principal_mapping_not_referenced_(
+            skip_dump_if_principal_mapping_not_referenced),
+        address_within_principal_mapping_(address_within_principal_mapping),
+        sanitize_stack_(sanitize_stack),
+        microdump_extra_info_(microdump_extra_info),
+        log_line_(NULL),
+        stack_copy_(NULL),
+        stack_len_(0),
+        stack_lower_bound_(0),
+        stack_pointer_(0) {
+    log_line_ = reinterpret_cast<char*>(Alloc(kLineBufferSize));
+    if (log_line_)
+      log_line_[0] = '\0';  // Clear out the log line buffer.
+  }
+
+  ~MicrodumpWriter() { dumper_->ThreadsResume(); }
+
+  bool Init() {
+    // In the exceptional case where the system was out of memory and there
+    // wasn't even room to allocate the line buffer, bail out. There is nothing
+    // useful we can possibly achieve without the ability to Log. At least let's
+    // try to not crash.
+    if (!dumper_->Init() || !log_line_)
+      return false;
+    return dumper_->ThreadsSuspend() && dumper_->LateInit();
+  }
+
+  void Dump() {
+    CaptureResult stack_capture_result = CaptureCrashingThreadStack(-1);
+    if (stack_capture_result == CAPTURE_UNINTERESTING) {
+      LogLine("Microdump skipped (uninteresting)");
+      return;
+    }
+
+    LogLine("-----BEGIN BREAKPAD MICRODUMP-----");
+    DumpProductInformation();
+    DumpOSInformation();
+    DumpProcessType();
+    DumpCrashReason();
+    DumpGPUInformation();
+#if !defined(__LP64__)
+    DumpFreeSpace();
+#endif
+    if (stack_capture_result == CAPTURE_OK)
+      DumpThreadStack();
+    DumpCPUState();
+    DumpMappings();
+    LogLine("-----END BREAKPAD MICRODUMP-----");
+  }
+
+ private:
+  enum CaptureResult { CAPTURE_OK, CAPTURE_FAILED, CAPTURE_UNINTERESTING };
+
+  // Writes one line to the system log.
+  void LogLine(const char* msg) {
+#if defined(__ANDROID__)
+    logger::writeToCrashLog(msg);
+#else
+    logger::write(msg, my_strlen(msg));
+    logger::write("\n", 1);
+#endif
+  }
+
+  // Stages the given string in the current line buffer.
+  void LogAppend(const char* str) {
+    my_strlcat(log_line_, str, kLineBufferSize);
+  }
+
+  // As above (required to take precedence over template specialization below).
+  void LogAppend(char* str) {
+    LogAppend(const_cast<const char*>(str));
+  }
+
+  // Stages the hex repr. of the given int type in the current line buffer.
+  template<typename T>
+  void LogAppend(T value) {
+    // Make enough room to hex encode the largest int type + NUL.
+    static const char HEX[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+                               'A', 'B', 'C', 'D', 'E', 'F'};
+    char hexstr[sizeof(T) * 2 + 1];
+    for (int i = sizeof(T) * 2 - 1; i >= 0; --i, value >>= 4)
+      hexstr[i] = HEX[static_cast<uint8_t>(value) & 0x0F];
+    hexstr[sizeof(T) * 2] = '\0';
+    LogAppend(hexstr);
+  }
+
+  // Stages the buffer content hex-encoded in the current line buffer.
+  void LogAppend(const void* buf, size_t length) {
+    const uint8_t* ptr = reinterpret_cast<const uint8_t*>(buf);
+    for (size_t i = 0; i < length; ++i, ++ptr)
+      LogAppend(*ptr);
+  }
+
+  // Writes out the current line buffer on the system log.
+  void LogCommitLine() {
+    LogLine(log_line_);
+    log_line_[0] = 0;
+  }
+
+  CaptureResult CaptureCrashingThreadStack(int max_stack_len) {
+    stack_pointer_ = UContextReader::GetStackPointer(ucontext_);
+
+    if (!dumper_->GetStackInfo(reinterpret_cast<const void**>(&stack_lower_bound_),
+                               &stack_len_, stack_pointer_)) {
+      return CAPTURE_FAILED;
+    }
+
+    if (max_stack_len >= 0 &&
+        stack_len_ > static_cast<size_t>(max_stack_len)) {
+      stack_len_ = max_stack_len;
+    }
+
+    stack_copy_ = reinterpret_cast<uint8_t*>(Alloc(stack_len_));
+    dumper_->CopyFromProcess(stack_copy_, dumper_->crash_thread(),
+                             reinterpret_cast<const void*>(stack_lower_bound_),
+                             stack_len_);
+
+    if (!skip_dump_if_principal_mapping_not_referenced_) return CAPTURE_OK;
+
+    const MappingInfo* principal_mapping =
+        dumper_->FindMappingNoBias(address_within_principal_mapping_);
+    if (!principal_mapping) return CAPTURE_UNINTERESTING;
+
+    uintptr_t low_addr = principal_mapping->system_mapping_info.start_addr;
+    uintptr_t high_addr = principal_mapping->system_mapping_info.end_addr;
+    uintptr_t pc = UContextReader::GetInstructionPointer(ucontext_);
+    if (low_addr <= pc && pc <= high_addr) return CAPTURE_OK;
+
+    if (dumper_->StackHasPointerToMapping(stack_copy_, stack_len_,
+                                          stack_pointer_ - stack_lower_bound_,
+                                          *principal_mapping)) {
+      return CAPTURE_OK;
+    }
+    return CAPTURE_UNINTERESTING;
+  }
+
+  void DumpProductInformation() {
+    LogAppend("V ");
+    if (microdump_extra_info_.product_info) {
+      LogAppend(microdump_extra_info_.product_info);
+    } else {
+      LogAppend("UNKNOWN:0.0.0.0");
+    }
+    LogCommitLine();
+  }
+
+  void DumpProcessType() {
+    LogAppend("P ");
+    if (microdump_extra_info_.process_type) {
+      LogAppend(microdump_extra_info_.process_type);
+    } else {
+      LogAppend("UNKNOWN");
+    }
+    LogCommitLine();
+  }
+
+  void DumpCrashReason() {
+    LogAppend("R ");
+    LogAppend(dumper_->crash_signal());
+    LogAppend(" ");
+    LogAppend(dumper_->GetCrashSignalString());
+    LogAppend(" ");
+    LogAppend(dumper_->crash_address());
+    LogCommitLine();
+  }
+
+  void DumpOSInformation() {
+    const uint8_t n_cpus = static_cast<uint8_t>(sysconf(_SC_NPROCESSORS_CONF));
+
+#if defined(__ANDROID__)
+    const char kOSId[] = "A";
+#else
+    const char kOSId[] = "L";
+#endif
+
+// Dump the runtime architecture. On multiarch devices it might not match the
+// hw architecture (the one returned by uname()), for instance in the case of
+// a 32-bit app running on a aarch64 device.
+#if defined(__aarch64__)
+    const char kArch[] = "arm64";
+#elif defined(__ARMEL__)
+    const char kArch[] = "arm";
+#elif defined(__x86_64__)
+    const char kArch[] = "x86_64";
+#elif defined(__i386__)
+    const char kArch[] = "x86";
+#elif defined(__mips__)
+# if _MIPS_SIM == _ABIO32
+    const char kArch[] = "mips";
+# elif _MIPS_SIM == _ABI64
+    const char kArch[] = "mips64";
+# else
+#  error "This mips ABI is currently not supported (n32)"
+#endif
+#else
+#error "This code has not been ported to your platform yet"
+#endif
+
+    LogAppend("O ");
+    LogAppend(kOSId);
+    LogAppend(" ");
+    LogAppend(kArch);
+    LogAppend(" ");
+    LogAppend(n_cpus);
+    LogAppend(" ");
+
+    // Dump the HW architecture (e.g., armv7l, aarch64).
+    struct utsname uts;
+    const bool has_uts_info = (uname(&uts) == 0);
+    const char* hwArch = has_uts_info ? uts.machine : "unknown_hw_arch";
+    LogAppend(hwArch);
+    LogAppend(" ");
+
+    // If the client has attached a build fingerprint to the MinidumpDescriptor
+    // use that one. Otherwise try to get some basic info from uname().
+    if (microdump_extra_info_.build_fingerprint) {
+      LogAppend(microdump_extra_info_.build_fingerprint);
+    } else if (has_uts_info) {
+      LogAppend(uts.release);
+      LogAppend(" ");
+      LogAppend(uts.version);
+    } else {
+      LogAppend("no build fingerprint available");
+    }
+    LogCommitLine();
+  }
+
+  void DumpGPUInformation() {
+    LogAppend("G ");
+    if (microdump_extra_info_.gpu_fingerprint) {
+      LogAppend(microdump_extra_info_.gpu_fingerprint);
+    } else {
+      LogAppend("UNKNOWN");
+    }
+    LogCommitLine();
+  }
+
+  void DumpThreadStack() {
+    if (sanitize_stack_) {
+      dumper_->SanitizeStackCopy(stack_copy_, stack_len_, stack_pointer_,
+                                 stack_pointer_ - stack_lower_bound_);
+    }
+
+    LogAppend("S 0 ");
+    LogAppend(stack_pointer_);
+    LogAppend(" ");
+    LogAppend(stack_lower_bound_);
+    LogAppend(" ");
+    LogAppend(stack_len_);
+    LogCommitLine();
+
+    const size_t STACK_DUMP_CHUNK_SIZE = 384;
+    for (size_t stack_off = 0; stack_off < stack_len_;
+         stack_off += STACK_DUMP_CHUNK_SIZE) {
+      LogAppend("S ");
+      LogAppend(stack_lower_bound_ + stack_off);
+      LogAppend(" ");
+      LogAppend(stack_copy_ + stack_off,
+                std::min(STACK_DUMP_CHUNK_SIZE, stack_len_ - stack_off));
+      LogCommitLine();
+    }
+  }
+
+  void DumpCPUState() {
+    RawContextCPU cpu;
+    my_memset(&cpu, 0, sizeof(RawContextCPU));
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+    UContextReader::FillCPUContext(&cpu, ucontext_, float_state_);
+#else
+    UContextReader::FillCPUContext(&cpu, ucontext_);
+#endif
+    LogAppend("C ");
+    LogAppend(&cpu, sizeof(cpu));
+    LogCommitLine();
+  }
+
+  // If there is caller-provided information about this mapping
+  // in the mapping_list_ list, return true. Otherwise, return false.
+  bool HaveMappingInfo(const MappingInfo& mapping) {
+    for (MappingList::const_iterator iter = mapping_list_.begin();
+         iter != mapping_list_.end();
+         ++iter) {
+      // Ignore any mappings that are wholly contained within
+      // mappings in the mapping_info_ list.
+      if (mapping.start_addr >= iter->first.start_addr &&
+          (mapping.start_addr + mapping.size) <=
+              (iter->first.start_addr + iter->first.size)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  // Dump information about the provided |mapping|. If |identifier| is non-NULL,
+  // use it instead of calculating a file ID from the mapping.
+  void DumpModule(const MappingInfo& mapping,
+                  bool member,
+                  unsigned int mapping_id,
+                  const uint8_t* identifier) {
+
+    auto_wasteful_vector<uint8_t, kDefaultBuildIdSize> identifier_bytes(
+        dumper_->allocator());
+
+    if (identifier) {
+      // GUID was provided by caller.
+      identifier_bytes.insert(identifier_bytes.end(),
+                              identifier,
+                              identifier + sizeof(MDGUID));
+    } else {
+      dumper_->ElfFileIdentifierForMapping(
+          mapping,
+          member,
+          mapping_id,
+          identifier_bytes);
+    }
+
+    // Copy as many bytes of |identifier| as will fit into a MDGUID
+    MDGUID module_identifier = {0};
+    memcpy(&module_identifier, &identifier_bytes[0],
+           std::min(sizeof(MDGUID), identifier_bytes.size()));
+
+    char file_name[NAME_MAX];
+    char file_path[NAME_MAX];
+    dumper_->GetMappingEffectiveNameAndPath(
+        mapping, file_path, sizeof(file_path), file_name, sizeof(file_name));
+
+    LogAppend("M ");
+    LogAppend(static_cast<uintptr_t>(mapping.start_addr));
+    LogAppend(" ");
+    LogAppend(mapping.offset);
+    LogAppend(" ");
+    LogAppend(mapping.size);
+    LogAppend(" ");
+    LogAppend(module_identifier.data1);
+    LogAppend(module_identifier.data2);
+    LogAppend(module_identifier.data3);
+    LogAppend(module_identifier.data4[0]);
+    LogAppend(module_identifier.data4[1]);
+    LogAppend(module_identifier.data4[2]);
+    LogAppend(module_identifier.data4[3]);
+    LogAppend(module_identifier.data4[4]);
+    LogAppend(module_identifier.data4[5]);
+    LogAppend(module_identifier.data4[6]);
+    LogAppend(module_identifier.data4[7]);
+    LogAppend("0 ");  // Age is always 0 on Linux.
+    LogAppend(file_name);
+    LogCommitLine();
+  }
+
+#if !defined(__LP64__)
+  void DumpFreeSpace() {
+    const MappingInfo* stack_mapping = nullptr;
+    ThreadInfo info;
+    if (dumper_->GetThreadInfoByIndex(dumper_->GetMainThreadIndex(), &info)) {
+      stack_mapping = dumper_->FindMappingNoBias(info.stack_pointer);
+    }
+
+    const google_breakpad::wasteful_vector<MappingInfo*>& mappings =
+        dumper_->mappings();
+    if (mappings.size() == 0) return;
+
+    // This is complicated by the fact that mappings is not in order. It should
+    // be mostly in order, however the mapping that contains the entry point for
+    // the process is always at the front of the vector.
+
+    static const int HBITS = sizeof(size_t) * 8;
+    size_t hole_histogram[HBITS];
+    my_memset(hole_histogram, 0, sizeof(hole_histogram));
+
+    // Find the lowest address mapping.
+    size_t curr = 0;
+    for (size_t i = 1; i < mappings.size(); ++i) {
+      if (mappings[i]->start_addr < mappings[curr]->start_addr) curr = i;
+    }
+
+    uintptr_t lo_addr = mappings[curr]->start_addr;
+
+    size_t hole_cnt = 0;
+    size_t hole_max = 0;
+    size_t hole_sum = 0;
+
+    while (true) {
+      // Skip to the end of an adjacent run of mappings. This is an optimization
+      // for the fact that mappings is mostly sorted.
+      while (curr != mappings.size() - 1 &&
+             MappingsAreAdjacent(*mappings[curr], *mappings[curr + 1])) {
+        ++curr;
+      }
+
+      if (mappings[curr] == stack_mapping) {
+        // Because we can't determine the top of userspace mappable
+        // memory we treat the start of the process stack as the top
+        // of the allocatable address space. Once we reach
+        // |stack_mapping| we are done scanning for free space regions.
+        break;
+      }
+
+      size_t next = NextOrderedMapping(mappings, curr);
+      if (next == std::numeric_limits<size_t>::max())
+        break;
+
+      uintptr_t hole_lo = mappings[curr]->start_addr + mappings[curr]->size;
+      uintptr_t hole_hi = mappings[next]->start_addr;
+
+      if (hole_hi > hole_lo) {
+        size_t hole_sz = hole_hi - hole_lo;
+        hole_sum += hole_sz;
+        hole_max = std::max(hole_sz, hole_max);
+        ++hole_cnt;
+        ++hole_histogram[Log2Floor(hole_sz)];
+      }
+      curr = next;
+    }
+
+    uintptr_t hi_addr = mappings[curr]->start_addr + mappings[curr]->size;
+
+    LogAppend("H ");
+    LogAppend(lo_addr);
+    LogAppend(" ");
+    LogAppend(hi_addr);
+    LogAppend(" ");
+    LogAppend(saturated_cast<uint16_t>(hole_cnt));
+    LogAppend(" ");
+    LogAppend(hole_max);
+    LogAppend(" ");
+    LogAppend(hole_sum);
+    for (unsigned int i = 0; i < HBITS; ++i) {
+      if (!hole_histogram[i]) continue;
+      LogAppend(" ");
+      LogAppend(saturated_cast<uint8_t>(i));
+      LogAppend(":");
+      LogAppend(saturated_cast<uint8_t>(hole_histogram[i]));
+    }
+    LogCommitLine();
+  }
+#endif
+
+  // Write information about the mappings in effect.
+  void DumpMappings() {
+    // First write all the mappings from the dumper
+    for (unsigned i = 0; i < dumper_->mappings().size(); ++i) {
+      const MappingInfo& mapping = *dumper_->mappings()[i];
+      if (mapping.name[0] == 0 ||  // only want modules with filenames.
+          !mapping.exec ||  // only want executable mappings.
+          mapping.size < 4096 || // too small to get a signature for.
+          HaveMappingInfo(mapping)) {
+        continue;
+      }
+
+      DumpModule(mapping, true, i, NULL);
+    }
+    // Next write all the mappings provided by the caller
+    for (MappingList::const_iterator iter = mapping_list_.begin();
+         iter != mapping_list_.end();
+         ++iter) {
+      DumpModule(iter->first, false, 0, iter->second);
+    }
+  }
+
+  void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+
+  const ucontext_t* const ucontext_;
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+  const google_breakpad::fpstate_t* const float_state_;
+#endif
+  LinuxDumper* dumper_;
+  const MappingList& mapping_list_;
+  bool skip_dump_if_principal_mapping_not_referenced_;
+  uintptr_t address_within_principal_mapping_;
+  bool sanitize_stack_;
+  const MicrodumpExtraInfo microdump_extra_info_;
+  char* log_line_;
+
+  // The local copy of crashed process stack memory, beginning at
+  // |stack_lower_bound_|.
+  uint8_t* stack_copy_;
+
+  // The length of crashed process stack copy.
+  size_t stack_len_;
+
+  // The address of the page containing the stack pointer in the
+  // crashed process. |stack_lower_bound_| <= |stack_pointer_|
+  uintptr_t stack_lower_bound_;
+
+  // The stack pointer of the crashed thread.
+  uintptr_t stack_pointer_;
+};
+}  // namespace
+
+namespace google_breakpad {
+
+bool WriteMicrodump(pid_t crashing_process,
+                    const void* blob,
+                    size_t blob_size,
+                    const MappingList& mappings,
+                    bool skip_dump_if_principal_mapping_not_referenced,
+                    uintptr_t address_within_principal_mapping,
+                    bool sanitize_stack,
+                    const MicrodumpExtraInfo& microdump_extra_info) {
+  LinuxPtraceDumper dumper(crashing_process);
+  const ExceptionHandler::CrashContext* context = NULL;
+  if (blob) {
+    if (blob_size != sizeof(ExceptionHandler::CrashContext))
+      return false;
+    context = reinterpret_cast<const ExceptionHandler::CrashContext*>(blob);
+    dumper.SetCrashInfoFromSigInfo(context->siginfo);
+    dumper.set_crash_thread(context->tid);
+  }
+  MicrodumpWriter writer(context, mappings,
+                         skip_dump_if_principal_mapping_not_referenced,
+                         address_within_principal_mapping, sanitize_stack,
+                         microdump_extra_info, &dumper);
+  if (!writer.Init())
+    return false;
+  writer.Dump();
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/microdump_writer/microdump_writer.h b/src/client/linux/microdump_writer/microdump_writer.h
new file mode 100644
index 0000000..a1e53df
--- /dev/null
+++ b/src/client/linux/microdump_writer/microdump_writer.h
@@ -0,0 +1,68 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_
+
+#include <stdint.h>
+#include <sys/types.h>
+
+#include "client/linux/dump_writer_common/mapping_info.h"
+
+namespace google_breakpad {
+
+struct MicrodumpExtraInfo;
+
+// Writes a microdump (a reduced dump containing only the state of the crashing
+// thread) on the console (logcat on Android). These functions do not malloc nor
+// use libc functions which may. Thus, it can be used in contexts where the
+// state of the heap may be corrupt.
+// Args:
+//   crashing_process: the pid of the crashing process. This must be trusted.
+//   blob: a blob of data from the crashing process. See exception_handler.h
+//   blob_size: the length of |blob| in bytes.
+//   mappings: a list of additional mappings provided by the application.
+//   build_fingerprint: a (optional) C string which determines the OS
+//     build fingerprint (e.g., aosp/occam/mako:5.1.1/LMY47W/1234:eng/dev-keys).
+//   product_info: a (optional) C string which determines the product name and
+//     version (e.g., WebView:42.0.2311.136).
+//
+// Returns true iff successful.
+bool WriteMicrodump(pid_t crashing_process,
+                    const void* blob,
+                    size_t blob_size,
+                    const MappingList& mappings,
+                    bool skip_dump_if_main_module_not_referenced,
+                    uintptr_t address_within_main_module,
+                    bool sanitize_stack,
+                    const MicrodumpExtraInfo& microdump_extra_info);
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_
diff --git a/src/client/linux/microdump_writer/microdump_writer_unittest.cc b/src/client/linux/microdump_writer/microdump_writer_unittest.cc
new file mode 100644
index 0000000..6339ac0
--- /dev/null
+++ b/src/client/linux/microdump_writer/microdump_writer_unittest.cc
@@ -0,0 +1,421 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <ctype.h>
+#include <sys/syscall.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <ucontext.h>
+
+#include <sstream>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/handler/microdump_extra_info.h"
+#include "client/linux/microdump_writer/microdump_writer.h"
+#include "common/linux/breakpad_getcontext.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/ignore_ret.h"
+#include "common/scoped_ptr.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/using_std_string.h"
+
+using namespace google_breakpad;
+
+extern "C" {
+extern char __executable_start;
+extern char __etext;
+}
+
+namespace {
+
+typedef testing::Test MicrodumpWriterTest;
+
+MicrodumpExtraInfo MakeMicrodumpExtraInfo(
+    const char* build_fingerprint,
+    const char* product_info,
+    const char* gpu_fingerprint) {
+  MicrodumpExtraInfo info;
+  info.build_fingerprint = build_fingerprint;
+  info.product_info = product_info;
+  info.gpu_fingerprint = gpu_fingerprint;
+  info.process_type = "Browser";
+  return info;
+}
+
+bool ContainsMicrodump(const std::string& buf) {
+  return std::string::npos != buf.find("-----BEGIN BREAKPAD MICRODUMP-----") &&
+         std::string::npos != buf.find("-----END BREAKPAD MICRODUMP-----");
+}
+
+const char kIdentifiableString[] = "_IDENTIFIABLE_";
+const uintptr_t kCrashAddress = 0xdeaddeadu;
+
+void CrashAndGetMicrodump(const MappingList& mappings,
+                          const MicrodumpExtraInfo& microdump_extra_info,
+                          std::string* microdump,
+                          bool skip_dump_if_principal_mapping_not_referenced = false,
+                          uintptr_t address_within_principal_mapping = 0,
+                          bool sanitize_stack = false) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  AutoTempDir temp_dir;
+  string stderr_file = temp_dir.path() + "/stderr.log";
+  int err_fd = open(stderr_file.c_str(), O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
+  ASSERT_NE(-1, err_fd);
+
+  char identifiable_string[sizeof(kIdentifiableString)];
+
+  // This string should not appear in the resulting microdump if it
+  // has been sanitized.
+  strcpy(identifiable_string, kIdentifiableString);
+  // Force the strcpy to not be optimized away.
+  IGNORE_RET(write(STDOUT_FILENO, identifiable_string, 0));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  // Pretend the current context is the child context (which is
+  // approximately right) so that we have a valid stack pointer, and
+  // can fetch child stack data via ptrace.
+  getcontext(&context.context);
+  // Set a non-zero tid to avoid tripping asserts.
+  context.tid = child;
+  context.siginfo.si_signo = MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED;
+  context.siginfo.si_addr = reinterpret_cast<void*>(kCrashAddress);
+
+  // Redirect temporarily stderr to the stderr.log file.
+  int save_err = dup(STDERR_FILENO);
+  ASSERT_NE(-1, save_err);
+  ASSERT_NE(-1, dup2(err_fd, STDERR_FILENO));
+
+  ASSERT_TRUE(WriteMicrodump(child, &context, sizeof(context), mappings,
+                             skip_dump_if_principal_mapping_not_referenced,
+                             address_within_principal_mapping, sanitize_stack,
+                             microdump_extra_info));
+
+  // Revert stderr back to the console.
+  dup2(save_err, STDERR_FILENO);
+  close(save_err);
+
+  // Read back the stderr file and check for the microdump marker.
+  fsync(err_fd);
+  lseek(err_fd, 0, SEEK_SET);
+
+  microdump->clear();
+  char buf[1024];
+
+  while (true) {
+    int bytes_read = IGNORE_EINTR(read(err_fd, buf, 1024));
+    if (bytes_read <= 0) break;
+    microdump->append(buf, buf + bytes_read);
+  }
+  close(err_fd);
+  close(fds[1]);
+}
+
+void ExtractMicrodumpStackContents(const string& microdump_content,
+                                   string* result) {
+  std::istringstream iss(microdump_content);
+  result->clear();
+  for (string line; std::getline(iss, line);) {
+    if (line.find("S ") == 0) {
+      std::istringstream stack_data(line);
+      std::string key;
+      std::string addr;
+      std::string data;
+      stack_data >> key >> addr >> data;
+      EXPECT_TRUE((data.size() & 1u) == 0u);
+      result->reserve(result->size() + data.size() / 2);
+      for (size_t i = 0; i < data.size(); i += 2) {
+        std::string byte = data.substr(i, 2);
+        result->push_back(static_cast<char>(strtoul(byte.c_str(), NULL, 16)));
+      }
+    }
+  }
+}
+
+void CheckMicrodumpContents(const string& microdump_content,
+                            const MicrodumpExtraInfo& expected_info) {
+  std::istringstream iss(microdump_content);
+  bool did_find_os_info = false;
+  bool did_find_product_info = false;
+  bool did_find_process_type = false;
+  bool did_find_crash_reason = false;
+  bool did_find_gpu_info = false;
+  for (string line; std::getline(iss, line);) {
+    if (line.find("O ") == 0) {
+      std::istringstream os_info_tokens(line);
+      string token;
+      os_info_tokens.ignore(2); // Ignore the "O " preamble.
+      // Check the OS descriptor char (L=Linux, A=Android).
+      os_info_tokens >> token;
+      ASSERT_TRUE(token == "L" || token == "A");
+
+      os_info_tokens >> token; // HW architecture.
+      os_info_tokens >> token; // Number of cpus.
+      for (size_t i = 0; i < token.size(); ++i)
+        ASSERT_TRUE(isxdigit(token[i]));
+      os_info_tokens >> token; // SW architecture.
+
+      // Check that the build fingerprint is in the right place.
+      os_info_tokens >> token;
+      ASSERT_FALSE(os_info_tokens.fail());
+      if (expected_info.build_fingerprint)
+        ASSERT_EQ(expected_info.build_fingerprint, token);
+      did_find_os_info = true;
+    } else if (line.find("P ") == 0) {
+      if (expected_info.process_type)
+        ASSERT_EQ(string("P ") + expected_info.process_type, line);
+      did_find_process_type = true;
+    } else if (line.find("R ") == 0) {
+      std::istringstream crash_reason_tokens(line);
+      string token;
+      unsigned crash_reason;
+      string crash_reason_str;
+      uintptr_t crash_address;
+      crash_reason_tokens.ignore(2); // Ignore the "R " preamble.
+      crash_reason_tokens >> std::hex >> crash_reason >> crash_reason_str >>
+          crash_address;
+      ASSERT_FALSE(crash_reason_tokens.fail());
+      ASSERT_EQ(MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED, crash_reason);
+      ASSERT_EQ("DUMP_REQUESTED", crash_reason_str);
+      ASSERT_EQ(kCrashAddress, crash_address);
+      did_find_crash_reason = true;
+    } else if (line.find("V ") == 0) {
+      if (expected_info.product_info)
+        ASSERT_EQ(string("V ") + expected_info.product_info, line);
+      did_find_product_info = true;
+    } else if (line.find("G ") == 0) {
+      if (expected_info.gpu_fingerprint)
+        ASSERT_EQ(string("G ") + expected_info.gpu_fingerprint, line);
+      did_find_gpu_info = true;
+    }
+  }
+  ASSERT_TRUE(did_find_os_info);
+  ASSERT_TRUE(did_find_product_info);
+  ASSERT_TRUE(did_find_process_type);
+  ASSERT_TRUE(did_find_crash_reason);
+  ASSERT_TRUE(did_find_gpu_info);
+}
+
+bool MicrodumpStackContains(const string& microdump_content,
+                            const string& expected_content) {
+  string result;
+  ExtractMicrodumpStackContents(microdump_content, &result);
+  return result.find(kIdentifiableString) != string::npos;
+}
+
+void CheckMicrodumpContents(const string& microdump_content,
+                            const string& expected_fingerprint,
+                            const string& expected_product_info,
+                            const string& expected_gpu_fingerprint) {
+  CheckMicrodumpContents(
+      microdump_content,
+      MakeMicrodumpExtraInfo(expected_fingerprint.c_str(),
+                             expected_product_info.c_str(),
+                             expected_gpu_fingerprint.c_str()));
+}
+
+TEST(MicrodumpWriterTest, BasicWithMappings) {
+  // Push some extra mapping to check the MappingList logic.
+  const uint32_t memory_size = sysconf(_SC_PAGESIZE);
+  const char* kMemoryName = "libfoo.so";
+  const uint8_t kModuleGUID[sizeof(MDGUID)] = {
+     0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+     0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
+  };
+
+  MappingInfo info;
+  info.start_addr = memory_size;
+  info.size = memory_size;
+  info.offset = 42;
+  strcpy(info.name, kMemoryName);
+
+  MappingList mappings;
+  MappingEntry mapping;
+  mapping.first = info;
+  memcpy(mapping.second, kModuleGUID, sizeof(MDGUID));
+  mappings.push_back(mapping);
+
+  std::string buf;
+  CrashAndGetMicrodump(mappings, MicrodumpExtraInfo(), &buf);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+
+#ifdef __LP64__
+  ASSERT_NE(std::string::npos,
+            buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
+                     "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
+#else
+  ASSERT_NE(std::string::npos,
+            buf.find("M 00001000 0000002A 00001000 "
+                     "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
+#endif
+
+  // In absence of a product info in the minidump, the writer should just write
+  // an unknown marker.
+  ASSERT_NE(std::string::npos, buf.find("V UNKNOWN:0.0.0.0"));
+}
+
+// Ensure that no output occurs if the interest region is set, but
+// doesn't overlap anything on the stack.
+TEST(MicrodumpWriterTest, NoOutputIfUninteresting) {
+  const char kProductInfo[] = "MockProduct:42.0.2311.99";
+  const char kBuildFingerprint[] =
+      "aosp/occam/mako:5.1.1/LMY47W/12345678:userdegbug/dev-keys";
+  const char kGPUFingerprint[] =
+      "Qualcomm;Adreno (TM) 330;OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)";
+  const MicrodumpExtraInfo kMicrodumpExtraInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, kGPUFingerprint));
+
+  std::string buf;
+  MappingList no_mappings;
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfo, &buf, true, 0);
+  ASSERT_FALSE(ContainsMicrodump(buf));
+}
+
+// Ensure that stack content does not contain an identifiable string if the
+// stack is sanitized.
+TEST(MicrodumpWriterTest, StringRemovedBySanitization) {
+  const char kProductInfo[] = "MockProduct:42.0.2311.99";
+  const char kBuildFingerprint[] =
+      "aosp/occam/mako:5.1.1/LMY47W/12345678:userdegbug/dev-keys";
+  const char kGPUFingerprint[] =
+      "Qualcomm;Adreno (TM) 330;OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)";
+
+  const MicrodumpExtraInfo kMicrodumpExtraInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, kGPUFingerprint));
+
+  std::string buf;
+  MappingList no_mappings;
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfo, &buf, false, 0u, true);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+  ASSERT_FALSE(MicrodumpStackContains(buf, kIdentifiableString));
+}
+
+// Ensure that stack content does contain an identifiable string if the
+// stack is not sanitized.
+TEST(MicrodumpWriterTest, StringPresentIfNotSanitized) {
+  const char kProductInfo[] = "MockProduct:42.0.2311.99";
+  const char kBuildFingerprint[] =
+      "aosp/occam/mako:5.1.1/LMY47W/12345678:userdegbug/dev-keys";
+  const char kGPUFingerprint[] =
+      "Qualcomm;Adreno (TM) 330;OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)";
+
+  const MicrodumpExtraInfo kMicrodumpExtraInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, kGPUFingerprint));
+
+  std::string buf;
+  MappingList no_mappings;
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfo, &buf, false, 0u, false);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+  ASSERT_TRUE(MicrodumpStackContains(buf, kIdentifiableString));
+}
+
+// Ensure that output occurs if the interest region is set, and
+// does overlap something on the stack.
+TEST(MicrodumpWriterTest, OutputIfInteresting) {
+  const char kProductInfo[] = "MockProduct:42.0.2311.99";
+  const char kBuildFingerprint[] =
+      "aosp/occam/mako:5.1.1/LMY47W/12345678:userdegbug/dev-keys";
+  const char kGPUFingerprint[] =
+      "Qualcomm;Adreno (TM) 330;OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)";
+
+  const MicrodumpExtraInfo kMicrodumpExtraInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, kGPUFingerprint));
+
+  std::string buf;
+  MappingList no_mappings;
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfo, &buf, true,
+                       reinterpret_cast<uintptr_t>(CrashAndGetMicrodump));
+  ASSERT_TRUE(ContainsMicrodump(buf));
+}
+
+// Ensure that the product info and build fingerprint metadata show up in the
+// final microdump if present.
+TEST(MicrodumpWriterTest, BuildFingerprintAndProductInfo) {
+  const char kProductInfo[] = "MockProduct:42.0.2311.99";
+  const char kBuildFingerprint[] =
+      "aosp/occam/mako:5.1.1/LMY47W/12345678:userdegbug/dev-keys";
+  const char kGPUFingerprint[] =
+      "Qualcomm;Adreno (TM) 330;OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)";
+  const MicrodumpExtraInfo kMicrodumpExtraInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, kGPUFingerprint));
+  std::string buf;
+  MappingList no_mappings;
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfo, &buf);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+  CheckMicrodumpContents(buf, kMicrodumpExtraInfo);
+}
+
+TEST(MicrodumpWriterTest, NoProductInfo) {
+  const char kBuildFingerprint[] = "foobar";
+  const char kGPUFingerprint[] = "bazqux";
+  std::string buf;
+  MappingList no_mappings;
+
+  const MicrodumpExtraInfo kMicrodumpExtraInfoNoProductInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, NULL, kGPUFingerprint));
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfoNoProductInfo, &buf);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+  CheckMicrodumpContents(buf, kBuildFingerprint, "UNKNOWN:0.0.0.0",
+                         kGPUFingerprint);
+}
+
+TEST(MicrodumpWriterTest, NoGPUInfo) {
+  const char kProductInfo[] = "bazqux";
+  const char kBuildFingerprint[] = "foobar";
+  std::string buf;
+  MappingList no_mappings;
+
+  const MicrodumpExtraInfo kMicrodumpExtraInfoNoGPUInfo(
+      MakeMicrodumpExtraInfo(kBuildFingerprint, kProductInfo, NULL));
+
+  CrashAndGetMicrodump(no_mappings, kMicrodumpExtraInfoNoGPUInfo, &buf);
+  ASSERT_TRUE(ContainsMicrodump(buf));
+  CheckMicrodumpContents(buf, kBuildFingerprint, kProductInfo, "UNKNOWN");
+}
+}  // namespace
diff --git a/src/client/linux/minidump_writer/cpu_set.h b/src/client/linux/minidump_writer/cpu_set.h
new file mode 100644
index 0000000..1cca9aa
--- /dev/null
+++ b/src/client/linux/minidump_writer/cpu_set.h
@@ -0,0 +1,144 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
+
+#include <stdint.h>
+#include <assert.h>
+#include <string.h>
+
+#include "common/linux/linux_libc_support.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+// Helper class used to model a set of CPUs, as read from sysfs
+// files like /sys/devices/system/cpu/present
+// See See http://www.kernel.org/doc/Documentation/cputopology.txt
+class CpuSet {
+public:
+  // The maximum number of supported CPUs.
+  static const size_t kMaxCpus = 1024;
+
+  CpuSet() {
+    my_memset(mask_, 0, sizeof(mask_));
+  }
+
+  // Parse a sysfs file to extract the corresponding CPU set.
+  bool ParseSysFile(int fd) {
+    char buffer[512];
+    int ret = sys_read(fd, buffer, sizeof(buffer)-1);
+    if (ret < 0)
+      return false;
+
+    buffer[ret] = '\0';
+
+    // Expected format: comma-separated list of items, where each
+    // item can be a decimal integer, or two decimal integers separated
+    // by a dash.
+    // E.g.:
+    //       0
+    //       0,1,2,3
+    //       0-3
+    //       1,10-23
+    const char* p = buffer;
+    const char* p_end = p + ret;
+    while (p < p_end) {
+      // Skip leading space, if any
+      while (p < p_end && my_isspace(*p))
+        p++;
+
+      // Find start and size of current item.
+      const char* item = p;
+      size_t item_len = static_cast<size_t>(p_end - p);
+      const char* item_next =
+          static_cast<const char*>(my_memchr(p, ',', item_len));
+      if (item_next != NULL) {
+        p = item_next + 1;
+        item_len = static_cast<size_t>(item_next - item);
+      } else {
+        p = p_end;
+        item_next = p_end;
+      }
+
+      // Ignore trailing spaces.
+      while (item_next > item && my_isspace(item_next[-1]))
+        item_next--;
+
+      // skip empty items.
+      if (item_next == item)
+        continue;
+
+      // read first decimal value.
+      uintptr_t start = 0;
+      const char* next = my_read_decimal_ptr(&start, item);
+      uintptr_t end = start;
+      if (*next == '-')
+        my_read_decimal_ptr(&end, next+1);
+
+      while (start <= end)
+        SetBit(start++);
+    }
+    return true;
+  }
+
+  // Intersect this CPU set with another one.
+  void IntersectWith(const CpuSet& other) {
+    for (size_t nn = 0; nn < kMaskWordCount; ++nn)
+      mask_[nn] &= other.mask_[nn];
+  }
+
+  // Return the number of CPUs in this set.
+  int GetCount() {
+    int result = 0;
+    for (size_t nn = 0; nn < kMaskWordCount; ++nn) {
+      result += __builtin_popcount(mask_[nn]);
+    }
+    return result;
+  }
+
+private:
+  void SetBit(uintptr_t index) {
+    size_t nn = static_cast<size_t>(index);
+    if (nn < kMaxCpus)
+      mask_[nn / kMaskWordBits] |= (1U << (nn % kMaskWordBits));
+  }
+
+  typedef uint32_t MaskWordType;
+  static const size_t kMaskWordBits = 8*sizeof(MaskWordType);
+  static const size_t kMaskWordCount =
+      (kMaxCpus + kMaskWordBits - 1) / kMaskWordBits;
+
+  MaskWordType mask_[kMaskWordCount];
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
diff --git a/src/client/linux/minidump_writer/cpu_set_unittest.cc b/src/client/linux/minidump_writer/cpu_set_unittest.cc
new file mode 100644
index 0000000..e2274bd
--- /dev/null
+++ b/src/client/linux/minidump_writer/cpu_set_unittest.cc
@@ -0,0 +1,164 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/minidump_writer/cpu_set.h"
+#include "common/linux/tests/auto_testfile.h"
+
+using namespace google_breakpad;
+
+namespace {
+
+typedef testing::Test CpuSetTest;
+
+// Helper class to write test text file to a temporary file and return
+// its file descriptor.
+class ScopedTestFile : public AutoTestFile {
+public:
+  explicit ScopedTestFile(const char* text)
+    : AutoTestFile("cpu_set", text) {
+  }
+};
+
+}
+
+TEST(CpuSetTest, EmptyCount) {
+  CpuSet set;
+  ASSERT_EQ(0, set.GetCount());
+}
+
+TEST(CpuSetTest, OneCpu) {
+  ScopedTestFile file("10");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(1, set.GetCount());
+}
+
+TEST(CpuSetTest, OneCpuTerminated) {
+  ScopedTestFile file("10\n");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(1, set.GetCount());
+}
+
+TEST(CpuSetTest, TwoCpusWithComma) {
+  ScopedTestFile file("1,10");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(2, set.GetCount());
+}
+
+TEST(CpuSetTest, TwoCpusWithRange) {
+  ScopedTestFile file("1-2");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(2, set.GetCount());
+}
+
+TEST(CpuSetTest, TenCpusWithRange) {
+  ScopedTestFile file("9-18");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(10, set.GetCount());
+}
+
+TEST(CpuSetTest, MultiItems) {
+  ScopedTestFile file("0, 2-4, 128");
+  ASSERT_TRUE(file.IsOk());
+
+  CpuSet set;
+  ASSERT_TRUE(set.ParseSysFile(file.GetFd()));
+  ASSERT_EQ(5, set.GetCount());
+}
+
+TEST(CpuSetTest, IntersectWith) {
+  ScopedTestFile file1("9-19");
+  ASSERT_TRUE(file1.IsOk());
+  CpuSet set1;
+  ASSERT_TRUE(set1.ParseSysFile(file1.GetFd()));
+  ASSERT_EQ(11, set1.GetCount());
+
+  ScopedTestFile file2("16-24");
+  ASSERT_TRUE(file2.IsOk());
+  CpuSet set2;
+  ASSERT_TRUE(set2.ParseSysFile(file2.GetFd()));
+  ASSERT_EQ(9, set2.GetCount());
+
+  set1.IntersectWith(set2);
+  ASSERT_EQ(4, set1.GetCount());
+  ASSERT_EQ(9, set2.GetCount());
+}
+
+TEST(CpuSetTest, SelfIntersection) {
+  ScopedTestFile file1("9-19");
+  ASSERT_TRUE(file1.IsOk());
+  CpuSet set1;
+  ASSERT_TRUE(set1.ParseSysFile(file1.GetFd()));
+  ASSERT_EQ(11, set1.GetCount());
+
+  set1.IntersectWith(set1);
+  ASSERT_EQ(11, set1.GetCount());
+}
+
+TEST(CpuSetTest, EmptyIntersection) {
+  ScopedTestFile file1("0-19");
+  ASSERT_TRUE(file1.IsOk());
+  CpuSet set1;
+  ASSERT_TRUE(set1.ParseSysFile(file1.GetFd()));
+  ASSERT_EQ(20, set1.GetCount());
+
+  ScopedTestFile file2("20-39");
+  ASSERT_TRUE(file2.IsOk());
+  CpuSet set2;
+  ASSERT_TRUE(set2.ParseSysFile(file2.GetFd()));
+  ASSERT_EQ(20, set2.GetCount());
+
+  set1.IntersectWith(set2);
+  ASSERT_EQ(0, set1.GetCount());
+
+  ASSERT_EQ(20, set2.GetCount());
+}
+
diff --git a/src/client/linux/minidump_writer/directory_reader.h b/src/client/linux/minidump_writer/directory_reader.h
new file mode 100644
index 0000000..a4bde18
--- /dev/null
+++ b/src/client/linux/minidump_writer/directory_reader.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
+
+#include <stdint.h>
+#include <unistd.h>
+#include <limits.h>
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+
+#include "common/linux/linux_libc_support.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+// A class for enumerating a directory without using diropen/readdir or other
+// functions which may allocate memory.
+class DirectoryReader {
+ public:
+  DirectoryReader(int fd)
+      : fd_(fd),
+        buf_used_(0) {
+  }
+
+  // Return the next entry from the directory
+  //   name: (output) the NUL terminated entry name
+  //
+  // Returns true iff successful (false on EOF).
+  //
+  // After calling this, one must call |PopEntry| otherwise you'll get the same
+  // entry over and over.
+  bool GetNextEntry(const char** name) {
+    struct kernel_dirent* const dent =
+      reinterpret_cast<kernel_dirent*>(buf_);
+
+    if (buf_used_ == 0) {
+      // need to read more entries.
+      const int n = sys_getdents(fd_, dent, sizeof(buf_));
+      if (n < 0) {
+        return false;
+      } else if (n == 0) {
+        hit_eof_ = true;
+      } else {
+        buf_used_ += n;
+      }
+    }
+
+    if (buf_used_ == 0 && hit_eof_)
+      return false;
+
+    assert(buf_used_ > 0);
+
+    *name = dent->d_name;
+    return true;
+  }
+
+  void PopEntry() {
+    if (!buf_used_)
+      return;
+
+    const struct kernel_dirent* const dent =
+      reinterpret_cast<kernel_dirent*>(buf_);
+
+    buf_used_ -= dent->d_reclen;
+    my_memmove(buf_, buf_ + dent->d_reclen, buf_used_);
+  }
+
+ private:
+  const int fd_;
+  bool hit_eof_;
+  unsigned buf_used_;
+  uint8_t buf_[sizeof(struct kernel_dirent) + NAME_MAX + 1];
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
diff --git a/src/client/linux/minidump_writer/directory_reader_unittest.cc b/src/client/linux/minidump_writer/directory_reader_unittest.cc
new file mode 100644
index 0000000..7292a63
--- /dev/null
+++ b/src/client/linux/minidump_writer/directory_reader_unittest.cc
@@ -0,0 +1,78 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <set>
+#include <string>
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <sys/types.h>
+
+#include "client/linux/minidump_writer/directory_reader.h"
+#include "common/using_std_string.h"
+#include "breakpad_googletest_includes.h"
+
+using namespace google_breakpad;
+
+namespace {
+typedef testing::Test DirectoryReaderTest;
+}
+
+TEST(DirectoryReaderTest, CompareResults) {
+  std::set<string> dent_set;
+
+  DIR* const dir = opendir("/proc/self");
+  ASSERT_TRUE(dir != NULL);
+
+  struct dirent* dent;
+  while ((dent = readdir(dir)))
+    dent_set.insert(dent->d_name);
+
+  closedir(dir);
+
+  const int fd = open("/proc/self", O_DIRECTORY | O_RDONLY);
+  ASSERT_GE(fd, 0);
+
+  DirectoryReader dir_reader(fd);
+  unsigned seen = 0;
+
+  const char* name;
+  while (dir_reader.GetNextEntry(&name)) {
+    ASSERT_TRUE(dent_set.find(name) != dent_set.end());
+    seen++;
+    dir_reader.PopEntry();
+  }
+
+  ASSERT_TRUE(dent_set.find("status") != dent_set.end());
+  ASSERT_TRUE(dent_set.find("stat") != dent_set.end());
+  ASSERT_TRUE(dent_set.find("cmdline") != dent_set.end());
+
+  ASSERT_EQ(dent_set.size(), seen);
+  close(fd);
+}
diff --git a/src/client/linux/minidump_writer/line_reader.h b/src/client/linux/minidump_writer/line_reader.h
new file mode 100644
index 0000000..9fc4b7c
--- /dev/null
+++ b/src/client/linux/minidump_writer/line_reader.h
@@ -0,0 +1,131 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
+
+#include <stdint.h>
+#include <assert.h>
+#include <string.h>
+
+#include "common/linux/linux_libc_support.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+// A class for reading a file, line by line, without using fopen/fgets or other
+// functions which may allocate memory.
+class LineReader {
+ public:
+  LineReader(int fd)
+      : fd_(fd),
+        hit_eof_(false),
+        buf_used_(0) {
+  }
+
+  // The maximum length of a line.
+  static const size_t kMaxLineLen = 512;
+
+  // Return the next line from the file.
+  //   line: (output) a pointer to the start of the line. The line is NUL
+  //     terminated.
+  //   len: (output) the length of the line (not inc the NUL byte)
+  //
+  // Returns true iff successful (false on EOF).
+  //
+  // One must call |PopLine| after this function, otherwise you'll continue to
+  // get the same line over and over.
+  bool GetNextLine(const char** line, unsigned* len) {
+    for (;;) {
+      if (buf_used_ == 0 && hit_eof_)
+        return false;
+
+      for (unsigned i = 0; i < buf_used_; ++i) {
+        if (buf_[i] == '\n' || buf_[i] == 0) {
+          buf_[i] = 0;
+          *len = i;
+          *line = buf_;
+          return true;
+        }
+      }
+
+      if (buf_used_ == sizeof(buf_)) {
+        // we scanned the whole buffer and didn't find an end-of-line marker.
+        // This line is too long to process.
+        return false;
+      }
+
+      // We didn't find any end-of-line terminators in the buffer. However, if
+      // this is the last line in the file it might not have one:
+      if (hit_eof_) {
+        assert(buf_used_);
+        // There's room for the NUL because of the buf_used_ == sizeof(buf_)
+        // check above.
+        buf_[buf_used_] = 0;
+        *len = buf_used_;
+        buf_used_ += 1;  // since we appended the NUL.
+        *line = buf_;
+        return true;
+      }
+
+      // Otherwise, we should pull in more data from the file
+      const ssize_t n = sys_read(fd_, buf_ + buf_used_,
+                                 sizeof(buf_) - buf_used_);
+      if (n < 0) {
+        return false;
+      } else if (n == 0) {
+        hit_eof_ = true;
+      } else {
+        buf_used_ += n;
+      }
+
+      // At this point, we have either set the hit_eof_ flag, or we have more
+      // data to process...
+    }
+  }
+
+  void PopLine(unsigned len) {
+    // len doesn't include the NUL byte at the end.
+
+    assert(buf_used_ >= len + 1);
+    buf_used_ -= len + 1;
+    my_memmove(buf_, buf_ + len + 1, buf_used_);
+  }
+
+ private:
+  const int fd_;
+
+  bool hit_eof_;
+  unsigned buf_used_;
+  char buf_[kMaxLineLen];
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
diff --git a/src/client/linux/minidump_writer/line_reader_unittest.cc b/src/client/linux/minidump_writer/line_reader_unittest.cc
new file mode 100644
index 0000000..e1ac445
--- /dev/null
+++ b/src/client/linux/minidump_writer/line_reader_unittest.cc
@@ -0,0 +1,169 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include "client/linux/minidump_writer/line_reader.h"
+#include "breakpad_googletest_includes.h"
+#include "common/linux/tests/auto_testfile.h"
+
+using namespace google_breakpad;
+
+namespace {
+
+typedef testing::Test LineReaderTest;
+
+class ScopedTestFile : public AutoTestFile {
+public:
+  explicit ScopedTestFile(const char* text)
+    : AutoTestFile("line_reader", text) {
+  }
+
+  ScopedTestFile(const char* text, size_t text_len)
+    : AutoTestFile("line_reader", text, text_len) {
+  }
+};
+
+}
+
+TEST(LineReaderTest, EmptyFile) {
+  ScopedTestFile file("");
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
+
+TEST(LineReaderTest, OneLineTerminated) {
+  ScopedTestFile file("a\n");
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned int len;
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned int)1, len);
+  ASSERT_EQ('a', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
+
+TEST(LineReaderTest, OneLine) {
+  ScopedTestFile file("a");
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned)1, len);
+  ASSERT_EQ('a', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
+
+TEST(LineReaderTest, TwoLinesTerminated) {
+  ScopedTestFile file("a\nb\n");
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned)1, len);
+  ASSERT_EQ('a', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned)1, len);
+  ASSERT_EQ('b', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
+
+TEST(LineReaderTest, TwoLines) {
+  ScopedTestFile file("a\nb");
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned)1, len);
+  ASSERT_EQ('a', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ((unsigned)1, len);
+  ASSERT_EQ('b', line[0]);
+  ASSERT_EQ('\0', line[1]);
+  reader.PopLine(len);
+
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
+
+TEST(LineReaderTest, MaxLength) {
+  char l[LineReader::kMaxLineLen-1];
+  memset(l, 'a', sizeof(l));
+  ScopedTestFile file(l, sizeof(l));
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_TRUE(reader.GetNextLine(&line, &len));
+  ASSERT_EQ(sizeof(l), len);
+  ASSERT_TRUE(memcmp(l, line, sizeof(l)) == 0);
+  ASSERT_EQ('\0', line[len]);
+}
+
+TEST(LineReaderTest, TooLong) {
+  // Note: this writes kMaxLineLen 'a' chars in the test file.
+  char l[LineReader::kMaxLineLen];
+  memset(l, 'a', sizeof(l));
+  ScopedTestFile file(l, sizeof(l));
+  ASSERT_TRUE(file.IsOk());
+  LineReader reader(file.GetFd());
+
+  const char* line;
+  unsigned len;
+  ASSERT_FALSE(reader.GetNextLine(&line, &len));
+}
diff --git a/src/client/linux/minidump_writer/linux_core_dumper.cc b/src/client/linux/minidump_writer/linux_core_dumper.cc
new file mode 100644
index 0000000..92e3a84
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_core_dumper.cc
@@ -0,0 +1,312 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_core_dumper.cc: Implement google_breakpad::LinuxCoreDumper.
+// See linux_core_dumper.h for details.
+
+#include "client/linux/minidump_writer/linux_core_dumper.h"
+
+#include <asm/ptrace.h>
+#include <assert.h>
+#include <elf.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/procfs.h>
+#if defined(__mips__) && defined(__ANDROID__)
+// To get register definitions.
+#include <asm/reg.h>
+#endif
+
+#include "common/linux/elf_gnu_compat.h"
+#include "common/linux/linux_libc_support.h"
+
+namespace google_breakpad {
+
+LinuxCoreDumper::LinuxCoreDumper(pid_t pid,
+                                 const char* core_path,
+                                 const char* procfs_path,
+                                 const char* root_prefix)
+    : LinuxDumper(pid, root_prefix),
+      core_path_(core_path),
+      procfs_path_(procfs_path),
+      thread_infos_(&allocator_, 8) {
+  assert(core_path_);
+}
+
+bool LinuxCoreDumper::BuildProcPath(char* path, pid_t pid,
+                                    const char* node) const {
+  if (!path || !node)
+    return false;
+
+  size_t node_len = my_strlen(node);
+  if (node_len == 0)
+    return false;
+
+  size_t procfs_path_len = my_strlen(procfs_path_);
+  size_t total_length = procfs_path_len + 1 + node_len;
+  if (total_length >= NAME_MAX)
+    return false;
+
+  memcpy(path, procfs_path_, procfs_path_len);
+  path[procfs_path_len] = '/';
+  memcpy(path + procfs_path_len + 1, node, node_len);
+  path[total_length] = '\0';
+  return true;
+}
+
+bool LinuxCoreDumper::CopyFromProcess(void* dest, pid_t child,
+                                      const void* src, size_t length) {
+  ElfCoreDump::Addr virtual_address = reinterpret_cast<ElfCoreDump::Addr>(src);
+  // TODO(benchan): Investigate whether the data to be copied could span
+  // across multiple segments in the core dump file. ElfCoreDump::CopyData
+  // and this method do not handle that case yet.
+  if (!core_.CopyData(dest, virtual_address, length)) {
+    // If the data segment is not found in the core dump, fill the result
+    // with marker characters.
+    memset(dest, 0xab, length);
+    return false;
+  }
+  return true;
+}
+
+bool LinuxCoreDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
+  if (index >= thread_infos_.size())
+    return false;
+
+  *info = thread_infos_[index];
+  const uint8_t* stack_pointer;
+#if defined(__i386)
+  memcpy(&stack_pointer, &info->regs.esp, sizeof(info->regs.esp));
+#elif defined(__x86_64)
+  memcpy(&stack_pointer, &info->regs.rsp, sizeof(info->regs.rsp));
+#elif defined(__ARM_EABI__)
+  memcpy(&stack_pointer, &info->regs.ARM_sp, sizeof(info->regs.ARM_sp));
+#elif defined(__aarch64__)
+  memcpy(&stack_pointer, &info->regs.sp, sizeof(info->regs.sp));
+#elif defined(__mips__)
+  stack_pointer =
+      reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
+#else
+#error "This code hasn't been ported to your platform yet."
+#endif
+  info->stack_pointer = reinterpret_cast<uintptr_t>(stack_pointer);
+  return true;
+}
+
+bool LinuxCoreDumper::IsPostMortem() const {
+  return true;
+}
+
+bool LinuxCoreDumper::ThreadsSuspend() {
+  return true;
+}
+
+bool LinuxCoreDumper::ThreadsResume() {
+  return true;
+}
+
+bool LinuxCoreDumper::EnumerateThreads() {
+  if (!mapped_core_file_.Map(core_path_, 0)) {
+    fprintf(stderr, "Could not map core dump file into memory\n");
+    return false;
+  }
+
+  char proc_mem_path[NAME_MAX];
+  if (BuildProcPath(proc_mem_path, pid_, "mem")) {
+    int fd = open(proc_mem_path, O_RDONLY | O_LARGEFILE | O_CLOEXEC);
+    if (fd != -1) {
+      core_.SetProcMem(fd);
+    } else {
+      fprintf(stderr, "Cannot open %s (%s)\n", proc_mem_path, strerror(errno));
+    }
+  }
+
+  core_.SetContent(mapped_core_file_.content());
+  if (!core_.IsValid()) {
+    fprintf(stderr, "Invalid core dump file\n");
+    return false;
+  }
+
+  ElfCoreDump::Note note = core_.GetFirstNote();
+  if (!note.IsValid()) {
+    fprintf(stderr, "PT_NOTE section not found\n");
+    return false;
+  }
+
+  bool first_thread = true;
+  do {
+    ElfCoreDump::Word type = note.GetType();
+    MemoryRange name = note.GetName();
+    MemoryRange description = note.GetDescription();
+
+    if (type == 0 || name.IsEmpty() || description.IsEmpty()) {
+      fprintf(stderr, "Could not found a valid PT_NOTE.\n");
+      return false;
+    }
+
+    // Based on write_note_info() in linux/kernel/fs/binfmt_elf.c, notes are
+    // ordered as follows (NT_PRXFPREG and NT_386_TLS are i386 specific):
+    //   Thread           Name          Type
+    //   -------------------------------------------------------------------
+    //   1st thread       CORE          NT_PRSTATUS
+    //   process-wide     CORE          NT_PRPSINFO
+    //   process-wide     CORE          NT_SIGINFO
+    //   process-wide     CORE          NT_AUXV
+    //   1st thread       CORE          NT_FPREGSET
+    //   1st thread       LINUX         NT_PRXFPREG
+    //   1st thread       LINUX         NT_386_TLS
+    //
+    //   2nd thread       CORE          NT_PRSTATUS
+    //   2nd thread       CORE          NT_FPREGSET
+    //   2nd thread       LINUX         NT_PRXFPREG
+    //   2nd thread       LINUX         NT_386_TLS
+    //
+    //   3rd thread       CORE          NT_PRSTATUS
+    //   3rd thread       CORE          NT_FPREGSET
+    //   3rd thread       LINUX         NT_PRXFPREG
+    //   3rd thread       LINUX         NT_386_TLS
+    //
+    // The following code only works if notes are ordered as expected.
+    switch (type) {
+      case NT_PRSTATUS: {
+        if (description.length() != sizeof(elf_prstatus)) {
+          fprintf(stderr, "Found NT_PRSTATUS descriptor of unexpected size\n");
+          return false;
+        }
+
+        const elf_prstatus* status =
+            reinterpret_cast<const elf_prstatus*>(description.data());
+        pid_t pid = status->pr_pid;
+        ThreadInfo info;
+        memset(&info, 0, sizeof(ThreadInfo));
+        info.tgid = status->pr_pgrp;
+        info.ppid = status->pr_ppid;
+#if defined(__mips__)
+#if defined(__ANDROID__)
+        for (int i = EF_R0; i <= EF_R31; i++)
+          info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
+#else  // __ANDROID__
+        for (int i = EF_REG0; i <= EF_REG31; i++)
+          info.mcontext.gregs[i - EF_REG0] = status->pr_reg[i];
+#endif  // __ANDROID__
+        info.mcontext.mdlo = status->pr_reg[EF_LO];
+        info.mcontext.mdhi = status->pr_reg[EF_HI];
+        info.mcontext.pc = status->pr_reg[EF_CP0_EPC];
+#else  // __mips__
+        memcpy(&info.regs, status->pr_reg, sizeof(info.regs));
+#endif  // __mips__
+        if (first_thread) {
+          crash_thread_ = pid;
+          crash_signal_ = status->pr_info.si_signo;
+          crash_signal_code_ = status->pr_info.si_code;
+        }
+        first_thread = false;
+        threads_.push_back(pid);
+        thread_infos_.push_back(info);
+        break;
+      }
+      case NT_SIGINFO: {
+        if (description.length() != sizeof(siginfo_t)) {
+          fprintf(stderr, "Found NT_SIGINFO descriptor of unexpected size\n");
+          return false;
+        }
+
+        const siginfo_t* info =
+            reinterpret_cast<const siginfo_t*>(description.data());
+
+        // Set crash_address when si_addr is valid for the signal.
+        switch (info->si_signo) {
+          case MD_EXCEPTION_CODE_LIN_SIGBUS:
+          case MD_EXCEPTION_CODE_LIN_SIGFPE:
+          case MD_EXCEPTION_CODE_LIN_SIGILL:
+          case MD_EXCEPTION_CODE_LIN_SIGSEGV:
+          case MD_EXCEPTION_CODE_LIN_SIGSYS:
+          case MD_EXCEPTION_CODE_LIN_SIGTRAP:
+            crash_address_ = reinterpret_cast<uintptr_t>(info->si_addr);
+            break;
+        }
+
+        // Set crash_exception_info for common signals.  Since exception info is
+        // unsigned, but some of these fields might be signed, we always cast.
+        switch (info->si_signo) {
+          case MD_EXCEPTION_CODE_LIN_SIGKILL:
+            set_crash_exception_info({
+              static_cast<uint64_t>(info->si_pid),
+              static_cast<uint64_t>(info->si_uid),
+            });
+            break;
+          case MD_EXCEPTION_CODE_LIN_SIGSYS:
+#ifdef si_syscall
+            set_crash_exception_info({
+              static_cast<uint64_t>(info->si_syscall),
+              static_cast<uint64_t>(info->si_arch),
+            });
+#endif
+            break;
+        }
+        break;
+      }
+#if defined(__i386) || defined(__x86_64)
+      case NT_FPREGSET: {
+        if (thread_infos_.empty())
+          return false;
+
+        ThreadInfo* info = &thread_infos_.back();
+        if (description.length() != sizeof(info->fpregs)) {
+          fprintf(stderr, "Found NT_FPREGSET descriptor of unexpected size\n");
+          return false;
+        }
+
+        memcpy(&info->fpregs, description.data(), sizeof(info->fpregs));
+        break;
+      }
+#endif
+#if defined(__i386)
+      case NT_PRXFPREG: {
+        if (thread_infos_.empty())
+          return false;
+
+        ThreadInfo* info = &thread_infos_.back();
+        if (description.length() != sizeof(info->fpxregs)) {
+          fprintf(stderr, "Found NT_PRXFPREG descriptor of unexpected size\n");
+          return false;
+        }
+
+        memcpy(&info->fpxregs, description.data(), sizeof(info->fpxregs));
+        break;
+      }
+#endif
+    }
+    note = note.GetNextNote();
+  } while (note.IsValid());
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/minidump_writer/linux_core_dumper.h b/src/client/linux/minidump_writer/linux_core_dumper.h
new file mode 100644
index 0000000..8a7c924
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_core_dumper.h
@@ -0,0 +1,125 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_core_dumper.h: Define the google_breakpad::LinuxCoreDumper
+// class, which is derived from google_breakpad::LinuxDumper to extract
+// information from a crashed process via its core dump and proc files.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_
+
+#include "client/linux/minidump_writer/linux_dumper.h"
+#include "common/linux/elf_core_dump.h"
+#include "common/linux/memory_mapped_file.h"
+
+namespace google_breakpad {
+
+class LinuxCoreDumper : public LinuxDumper {
+ public:
+  // Constructs a dumper for extracting information of a given process
+  // with a process ID of |pid| via its core dump file at |core_path| and
+  // its proc files at |procfs_path|. If |procfs_path| is a copy of
+  // /proc/<pid>, it should contain the following files:
+  //     auxv, cmdline, environ, exe, maps, status
+  // See LinuxDumper for the purpose of |root_prefix|.
+  LinuxCoreDumper(pid_t pid, const char* core_path, const char* procfs_path,
+                  const char* root_prefix = "");
+
+  // Implements LinuxDumper::BuildProcPath().
+  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
+  // |path| is a character array of at least NAME_MAX bytes to return the
+  // result.|node| is the final node without any slashes. Return true on
+  // success.
+  //
+  // As this dumper performs a post-mortem dump and makes use of a copy
+  // of the proc files of the crashed process, this derived method does
+  // not actually make use of |pid| and always returns a subpath of
+  // |procfs_path_| regardless of whether |pid| corresponds to the main
+  // process or a thread of the process, i.e. assuming both the main process
+  // and its threads have the following proc files with the same content:
+  //     auxv, cmdline, environ, exe, maps, status
+  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const;
+
+  // Implements LinuxDumper::CopyFromProcess().
+  // Copies content of |length| bytes from a given process |child|,
+  // starting from |src|, into |dest|. This method extracts the content
+  // the core dump and fills |dest| with a sequence of marker bytes
+  // if the expected data is not found in the core dump. Returns true if
+  // the expected data is found in the core dump.
+  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
+                               size_t length);
+
+  // Implements LinuxDumper::GetThreadInfoByIndex().
+  // Reads information about the |index|-th thread of |threads_|.
+  // Returns true on success. One must have called |ThreadsSuspend| first.
+  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info);
+
+  // Implements LinuxDumper::IsPostMortem().
+  // Always returns true to indicate that this dumper performs a
+  // post-mortem dump of a crashed process via a core dump file.
+  virtual bool IsPostMortem() const;
+
+  // Implements LinuxDumper::ThreadsSuspend().
+  // As the dumper performs a post-mortem dump via a core dump file,
+  // there is no threads to suspend. This method does nothing and
+  // always returns true.
+  virtual bool ThreadsSuspend();
+
+  // Implements LinuxDumper::ThreadsResume().
+  // As the dumper performs a post-mortem dump via a core dump file,
+  // there is no threads to resume. This method does nothing and
+  // always returns true.
+  virtual bool ThreadsResume();
+
+ protected:
+  // Implements LinuxDumper::EnumerateThreads().
+  // Enumerates all threads of the given process into |threads_|.
+  virtual bool EnumerateThreads();
+
+ private:
+  // Path of the core dump file.
+  const char* core_path_;
+
+  // Path of the directory containing the proc files of the given process,
+  // which is usually a copy of /proc/<pid>.
+  const char* procfs_path_;
+
+  // Memory-mapped core dump file at |core_path_|.
+  MemoryMappedFile mapped_core_file_;
+
+  // Content of the core dump file.
+  ElfCoreDump core_;
+
+  // Thread info found in the core dump file.
+  wasteful_vector<ThreadInfo> thread_infos_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_HANDLER_LINUX_CORE_DUMPER_H_
diff --git a/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc b/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
new file mode 100644
index 0000000..7744803
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
@@ -0,0 +1,192 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_core_dumper_unittest.cc:
+// Unit tests for google_breakpad::LinuxCoreDumoer.
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/minidump_writer/linux_core_dumper.h"
+#include "common/linux/tests/crash_generator.h"
+#include "common/using_std_string.h"
+
+using namespace google_breakpad;
+
+TEST(LinuxCoreDumperTest, GetMappingAbsolutePath) {
+  const LinuxCoreDumper dumper(getpid(), "core", "/tmp", "/mnt/root");
+  const MappingInfo mapping = {0, 0, {0, 0}, 0, false, "/usr/lib/libc.so"};
+
+  char path[PATH_MAX];
+  dumper.GetMappingAbsolutePath(mapping, path);
+
+  EXPECT_STREQ("/mnt/root/usr/lib/libc.so", path);
+}
+
+TEST(LinuxCoreDumperTest, BuildProcPath) {
+  const pid_t pid = getpid();
+  const char procfs_path[] = "/procfs_copy";
+  LinuxCoreDumper dumper(getpid(), "core_file", procfs_path);
+
+  char maps_path[NAME_MAX] = "";
+  char maps_path_expected[NAME_MAX];
+  snprintf(maps_path_expected, sizeof(maps_path_expected),
+           "%s/maps", procfs_path);
+  EXPECT_TRUE(dumper.BuildProcPath(maps_path, pid, "maps"));
+  EXPECT_STREQ(maps_path_expected, maps_path);
+
+  EXPECT_FALSE(dumper.BuildProcPath(NULL, pid, "maps"));
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, pid, ""));
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, pid, NULL));
+
+  char long_node[NAME_MAX];
+  size_t long_node_len = NAME_MAX - strlen(procfs_path) - 1;
+  memset(long_node, 'a', long_node_len);
+  long_node[long_node_len] = '\0';
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, pid, long_node));
+}
+
+TEST(LinuxCoreDumperTest, VerifyDumpWithMultipleThreads) {
+  CrashGenerator crash_generator;
+  if (!crash_generator.HasDefaultCorePattern()) {
+    fprintf(stderr, "LinuxCoreDumperTest.VerifyDumpWithMultipleThreads test "
+            "is skipped due to non-default core pattern\n");
+    return;
+  }
+
+  const unsigned kNumOfThreads = 3;
+  const unsigned kCrashThread = 1;
+  const int kCrashSignal = SIGABRT;
+  pid_t child_pid;
+  ASSERT_TRUE(crash_generator.CreateChildCrash(kNumOfThreads, kCrashThread,
+                                               kCrashSignal, &child_pid));
+
+  const string core_file = crash_generator.GetCoreFilePath();
+  const string procfs_path = crash_generator.GetDirectoryOfProcFilesCopy();
+
+#if defined(__ANDROID__)
+  struct stat st;
+  if (stat(core_file.c_str(), &st) != 0) {
+    fprintf(stderr, "LinuxCoreDumperTest.VerifyDumpWithMultipleThreads test is "
+            "skipped due to no core file being generated\n");
+    return;
+  }
+#endif
+
+  LinuxCoreDumper dumper(child_pid, core_file.c_str(), procfs_path.c_str());
+
+  EXPECT_TRUE(dumper.Init());
+
+  EXPECT_TRUE(dumper.IsPostMortem());
+
+  // These are no-ops and should always return true.
+  EXPECT_TRUE(dumper.ThreadsSuspend());
+  EXPECT_TRUE(dumper.ThreadsResume());
+
+  // Linux does not set the crash address with SIGABRT, so make sure it always
+  // sets the crash address to 0.
+  EXPECT_EQ(0U, dumper.crash_address());
+  EXPECT_EQ(kCrashSignal, dumper.crash_signal());
+  EXPECT_EQ(crash_generator.GetThreadId(kCrashThread),
+            dumper.crash_thread());
+
+#if defined(THREAD_SANITIZER)
+  EXPECT_GE(dumper.threads().size(), kNumOfThreads);
+#else
+  EXPECT_EQ(dumper.threads().size(), kNumOfThreads);
+#endif
+  for (unsigned i = 0; i < kNumOfThreads; ++i) {
+    ThreadInfo info;
+    EXPECT_TRUE(dumper.GetThreadInfoByIndex(i, &info));
+    const void* stack;
+    size_t stack_len;
+    EXPECT_TRUE(dumper.GetStackInfo(&stack, &stack_len, info.stack_pointer));
+    EXPECT_EQ(getpid(), info.ppid);
+  }
+}
+
+TEST(LinuxCoreDumperTest, VerifyExceptionDetails) {
+  CrashGenerator crash_generator;
+  if (!crash_generator.HasDefaultCorePattern()) {
+    fprintf(stderr, "LinuxCoreDumperTest.VerifyDumpWithMultipleThreads test "
+            "is skipped due to non-default core pattern\n");
+    return;
+  }
+
+#ifndef si_syscall
+  fprintf(stderr, "LinuxCoreDumperTest.VerifyDumpWithMultipleThreads test is "
+          "skipped due to old kernel/C library headers\n");
+  return;
+#endif
+
+  const unsigned kNumOfThreads = 2;
+  const unsigned kCrashThread = 1;
+  const int kCrashSignal = SIGSYS;
+  pid_t child_pid;
+  ASSERT_TRUE(crash_generator.CreateChildCrash(kNumOfThreads, kCrashThread,
+                                               kCrashSignal, &child_pid));
+
+  const string core_file = crash_generator.GetCoreFilePath();
+  const string procfs_path = crash_generator.GetDirectoryOfProcFilesCopy();
+
+#if defined(__ANDROID__)
+  struct stat st;
+  if (stat(core_file.c_str(), &st) != 0) {
+    fprintf(stderr, "LinuxCoreDumperTest.VerifyExceptionDetails test is "
+            "skipped due to no core file being generated\n");
+    return;
+  }
+#endif
+
+  LinuxCoreDumper dumper(child_pid, core_file.c_str(), procfs_path.c_str());
+
+  EXPECT_TRUE(dumper.Init());
+
+  EXPECT_TRUE(dumper.IsPostMortem());
+
+#if defined(__ANDROID__)
+  // TODO: For some reason, Android doesn't seem to pass this.
+  if (!dumper.crash_address()) {
+    fprintf(stderr, "LinuxCoreDumperTest.VerifyExceptionDetails test is "
+            "skipped due to missing signal details on Android\n");
+    return;
+  }
+#endif
+
+  // Check the exception details.
+  EXPECT_NE(0U, dumper.crash_address());
+  EXPECT_EQ(kCrashSignal, dumper.crash_signal());
+  EXPECT_EQ(crash_generator.GetThreadId(kCrashThread),
+            dumper.crash_thread());
+
+  // We check the length, but not the actual fields.  We sent SIGSYS ourselves
+  // instead of the kernel, so the extended fields are garbage.
+  const std::vector<uint64_t> info(dumper.crash_exception_info());
+  EXPECT_EQ(2U, info.size());
+}
diff --git a/src/client/linux/minidump_writer/linux_dumper.cc b/src/client/linux/minidump_writer/linux_dumper.cc
new file mode 100644
index 0000000..7fd6532
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_dumper.cc
@@ -0,0 +1,969 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_dumper.cc: Implement google_breakpad::LinuxDumper.
+// See linux_dumper.h for details.
+
+// This code deals with the mechanics of getting information about a crashed
+// process. Since this code may run in a compromised address space, the same
+// rules apply as detailed at the top of minidump_writer.h: no libc calls and
+// use the alternative allocator.
+
+#include "client/linux/minidump_writer/linux_dumper.h"
+
+#include <assert.h>
+#include <elf.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stddef.h>
+#include <string.h>
+
+#include "client/linux/minidump_writer/line_reader.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/file_id.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/linux/memory_mapped_file.h"
+#include "common/linux/safe_readlink.h"
+#include "google_breakpad/common/minidump_exception_linux.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+#if defined(__ANDROID__)
+
+// Android packed relocations definitions are not yet available from the
+// NDK header files, so we have to provide them manually here.
+#ifndef DT_LOOS
+#define DT_LOOS 0x6000000d
+#endif
+#ifndef DT_ANDROID_REL
+static const int DT_ANDROID_REL = DT_LOOS + 2;
+#endif
+#ifndef DT_ANDROID_RELA
+static const int DT_ANDROID_RELA = DT_LOOS + 4;
+#endif
+
+#endif  // __ANDROID __
+
+static const char kMappedFileUnsafePrefix[] = "/dev/";
+static const char kDeletedSuffix[] = " (deleted)";
+
+inline static bool IsMappedFileOpenUnsafe(
+    const google_breakpad::MappingInfo& mapping) {
+  // It is unsafe to attempt to open a mapped file that lives under /dev,
+  // because the semantics of the open may be driver-specific so we'd risk
+  // hanging the crash dumper. And a file in /dev/ almost certainly has no
+  // ELF file identifier anyways.
+  return my_strncmp(mapping.name,
+                    kMappedFileUnsafePrefix,
+                    sizeof(kMappedFileUnsafePrefix) - 1) == 0;
+}
+
+namespace google_breakpad {
+
+namespace {
+
+bool MappingContainsAddress(const MappingInfo& mapping, uintptr_t address) {
+  return mapping.system_mapping_info.start_addr <= address &&
+         address < mapping.system_mapping_info.end_addr;
+}
+
+#if defined(__CHROMEOS__)
+
+// Recover memory mappings before writing dump on ChromeOS
+//
+// On Linux, breakpad relies on /proc/[pid]/maps to associate symbols from
+// addresses. ChromeOS' hugepage implementation replaces some segments with
+// anonymous private pages, which is a restriction of current implementation
+// in Linux kernel at the time of writing. Thus, breakpad can no longer
+// symbolize addresses from those text segments replaced with hugepages.
+//
+// This postprocess tries to recover the mappings. Because hugepages are always
+// inserted in between some .text sections, it tries to infer the names and
+// offsets of the segments, by looking at segments immediately precede and
+// succeed them.
+//
+// For example, a text segment before hugepage optimization
+//   02001000-03002000 r-xp /opt/google/chrome/chrome
+//
+// can be broken into
+//   02001000-02200000 r-xp /opt/google/chrome/chrome
+//   02200000-03000000 r-xp
+//   03000000-03002000 r-xp /opt/google/chrome/chrome
+//
+// For more details, see:
+// crbug.com/628040 ChromeOS' use of hugepages confuses crash symbolization
+
+// Copied from CrOS' hugepage implementation, which is unlikely to change.
+// The hugepage size is 2M.
+const unsigned int kHpageShift = 21;
+const size_t kHpageSize = (1 << kHpageShift);
+const size_t kHpageMask = (~(kHpageSize - 1));
+
+// Find and merge anonymous r-xp segments with surrounding named segments.
+// There are two cases:
+
+// Case 1: curr, next
+//   curr is anonymous
+//   curr is r-xp
+//   curr.size >= 2M
+//   curr.size is a multiple of 2M.
+//   next is backed by some file.
+//   curr and next are contiguous.
+//   offset(next) == sizeof(curr)
+void TryRecoverMappings(MappingInfo* curr, MappingInfo* next) {
+  // Merged segments are marked with size = 0.
+  if (curr->size == 0 || next->size == 0)
+    return;
+
+  if (curr->size >= kHpageSize &&
+      curr->exec &&
+      (curr->size & kHpageMask) == curr->size &&
+      (curr->start_addr & kHpageMask) == curr->start_addr &&
+      curr->name[0] == '\0' &&
+      next->name[0] != '\0' &&
+      curr->start_addr + curr->size == next->start_addr &&
+      curr->size == next->offset) {
+
+    // matched
+    my_strlcpy(curr->name, next->name, NAME_MAX);
+    if (next->exec) {
+      // (curr, next)
+      curr->size += next->size;
+      next->size = 0;
+    }
+  }
+}
+
+// Case 2: prev, curr, next
+//   curr is anonymous
+//   curr is r-xp
+//   curr.size >= 2M
+//   curr.size is a multiple of 2M.
+//   next and prev are backed by the same file.
+//   prev, curr and next are contiguous.
+//   offset(next) == offset(prev) + sizeof(prev) + sizeof(curr)
+void TryRecoverMappings(MappingInfo* prev, MappingInfo* curr,
+                        MappingInfo* next) {
+  // Merged segments are marked with size = 0.
+  if (prev->size == 0 || curr->size == 0 || next->size == 0)
+    return;
+
+  if (curr->size >= kHpageSize &&
+      curr->exec &&
+      (curr->size & kHpageMask) == curr->size &&
+      (curr->start_addr & kHpageMask) == curr->start_addr &&
+      curr->name[0] == '\0' &&
+      next->name[0] != '\0' &&
+      curr->start_addr + curr->size == next->start_addr &&
+      prev->start_addr + prev->size == curr->start_addr &&
+      my_strncmp(prev->name, next->name, NAME_MAX) == 0 &&
+      next->offset == prev->offset + prev->size + curr->size) {
+
+    // matched
+    my_strlcpy(curr->name, prev->name, NAME_MAX);
+    if (prev->exec) {
+      curr->offset = prev->offset;
+      curr->start_addr = prev->start_addr;
+      if (next->exec) {
+        // (prev, curr, next)
+        curr->size += prev->size + next->size;
+        prev->size = 0;
+        next->size = 0;
+      } else {
+        // (prev, curr), next
+        curr->size += prev->size;
+        prev->size = 0;
+      }
+    } else {
+      curr->offset = prev->offset + prev->size;
+      if (next->exec) {
+        // prev, (curr, next)
+        curr->size += next->size;
+        next->size = 0;
+      } else {
+        // prev, curr, next
+      }
+    }
+  }
+}
+
+// mappings_ is sorted excepted for the first entry.
+// This function tries to merge segemnts into the first entry,
+// then check for other sorted entries.
+// See LinuxDumper::EnumerateMappings().
+void CrOSPostProcessMappings(wasteful_vector<MappingInfo*>& mappings) {
+  // Find the candidate "next" to first segment, which is the only one that
+  // could be out-of-order.
+  size_t l = 1;
+  size_t r = mappings.size();
+  size_t next = mappings.size();
+  while (l < r) {
+    int m = (l + r) / 2;
+    if (mappings[m]->start_addr > mappings[0]->start_addr)
+      r = next = m;
+    else
+      l = m + 1;
+  }
+
+  // Shows the range that contains the entry point is
+  // [first_start_addr, first_end_addr)
+  size_t first_start_addr = mappings[0]->start_addr;
+  size_t first_end_addr = mappings[0]->start_addr + mappings[0]->size;
+
+  // Put the out-of-order segment in order.
+  std::rotate(mappings.begin(), mappings.begin() + 1, mappings.begin() + next);
+
+  // Iterate through normal, sorted cases.
+  // Normal case 1.
+  for (size_t i = 0; i < mappings.size() - 1; i++)
+    TryRecoverMappings(mappings[i], mappings[i + 1]);
+
+  // Normal case 2.
+  for (size_t i = 0; i < mappings.size() - 2; i++)
+    TryRecoverMappings(mappings[i], mappings[i + 1], mappings[i + 2]);
+
+  // Collect merged (size == 0) segments.
+  size_t f, e;
+  for (f = e = 0; e < mappings.size(); e++)
+    if (mappings[e]->size > 0)
+      mappings[f++] = mappings[e];
+  mappings.resize(f);
+
+  // The entry point is in the first mapping. We want to find the location
+  // of the entry point after merging segment. To do this, we want to find
+  // the mapping that covers the first mapping from the original mapping list.
+  // If the mapping is not in the beginning, we move it to the begining via
+  // a right rotate by using reverse iterators.
+  for (l = 0; l < mappings.size(); l++) {
+    if (mappings[l]->start_addr <= first_start_addr
+        && (mappings[l]->start_addr + mappings[l]->size >= first_end_addr))
+      break;
+  }
+  if (l > 0) {
+    r = mappings.size();
+    std::rotate(mappings.rbegin() + r - l - 1, mappings.rbegin() + r - l,
+                mappings.rend());
+  }
+}
+
+#endif  // __CHROMEOS__
+
+}  // namespace
+
+// All interesting auvx entry types are below AT_SYSINFO_EHDR
+#define AT_MAX AT_SYSINFO_EHDR
+
+LinuxDumper::LinuxDumper(pid_t pid, const char* root_prefix)
+    : pid_(pid),
+      root_prefix_(root_prefix),
+      crash_address_(0),
+      crash_signal_(0),
+      crash_signal_code_(0),
+      crash_thread_(pid),
+      threads_(&allocator_, 8),
+      mappings_(&allocator_),
+      auxv_(&allocator_, AT_MAX + 1) {
+  assert(root_prefix_ && my_strlen(root_prefix_) < PATH_MAX);
+  // The passed-in size to the constructor (above) is only a hint.
+  // Must call .resize() to do actual initialization of the elements.
+  auxv_.resize(AT_MAX + 1);
+}
+
+LinuxDumper::~LinuxDumper() {
+}
+
+bool LinuxDumper::Init() {
+  return ReadAuxv() && EnumerateThreads() && EnumerateMappings();
+}
+
+bool LinuxDumper::LateInit() {
+#if defined(__ANDROID__)
+  LatePostprocessMappings();
+#endif
+
+#if defined(__CHROMEOS__)
+  CrOSPostProcessMappings(mappings_);
+#endif
+
+  return true;
+}
+
+bool
+LinuxDumper::ElfFileIdentifierForMapping(const MappingInfo& mapping,
+                                         bool member,
+                                         unsigned int mapping_id,
+                                         wasteful_vector<uint8_t>& identifier) {
+  assert(!member || mapping_id < mappings_.size());
+  if (IsMappedFileOpenUnsafe(mapping))
+    return false;
+
+  // Special-case linux-gate because it's not a real file.
+  if (my_strcmp(mapping.name, kLinuxGateLibraryName) == 0) {
+    void* linux_gate = NULL;
+    if (pid_ == sys_getpid()) {
+      linux_gate = reinterpret_cast<void*>(mapping.start_addr);
+    } else {
+      linux_gate = allocator_.Alloc(mapping.size);
+      CopyFromProcess(linux_gate, pid_,
+                      reinterpret_cast<const void*>(mapping.start_addr),
+                      mapping.size);
+    }
+    return FileID::ElfFileIdentifierFromMappedFile(linux_gate, identifier);
+  }
+
+  char filename[PATH_MAX];
+  if (!GetMappingAbsolutePath(mapping, filename))
+    return false;
+  bool filename_modified = HandleDeletedFileInMapping(filename);
+
+  MemoryMappedFile mapped_file(filename, mapping.offset);
+  if (!mapped_file.data() || mapped_file.size() < SELFMAG)
+    return false;
+
+  bool success =
+      FileID::ElfFileIdentifierFromMappedFile(mapped_file.data(), identifier);
+  if (success && member && filename_modified) {
+    mappings_[mapping_id]->name[my_strlen(mapping.name) -
+                                sizeof(kDeletedSuffix) + 1] = '\0';
+  }
+
+  return success;
+}
+
+void LinuxDumper::SetCrashInfoFromSigInfo(const siginfo_t& siginfo) {
+  set_crash_address(reinterpret_cast<uintptr_t>(siginfo.si_addr));
+  set_crash_signal(siginfo.si_signo);
+  set_crash_signal_code(siginfo.si_code);
+}
+
+const char* LinuxDumper::GetCrashSignalString() const {
+  switch (static_cast<unsigned int>(crash_signal_)) {
+    case MD_EXCEPTION_CODE_LIN_SIGHUP:
+      return "SIGHUP";
+    case MD_EXCEPTION_CODE_LIN_SIGINT:
+      return "SIGINT";
+    case MD_EXCEPTION_CODE_LIN_SIGQUIT:
+      return "SIGQUIT";
+    case MD_EXCEPTION_CODE_LIN_SIGILL:
+      return "SIGILL";
+    case MD_EXCEPTION_CODE_LIN_SIGTRAP:
+      return "SIGTRAP";
+    case MD_EXCEPTION_CODE_LIN_SIGABRT:
+      return "SIGABRT";
+    case MD_EXCEPTION_CODE_LIN_SIGBUS:
+      return "SIGBUS";
+    case MD_EXCEPTION_CODE_LIN_SIGFPE:
+      return "SIGFPE";
+    case MD_EXCEPTION_CODE_LIN_SIGKILL:
+      return "SIGKILL";
+    case MD_EXCEPTION_CODE_LIN_SIGUSR1:
+      return "SIGUSR1";
+    case MD_EXCEPTION_CODE_LIN_SIGSEGV:
+      return "SIGSEGV";
+    case MD_EXCEPTION_CODE_LIN_SIGUSR2:
+      return "SIGUSR2";
+    case MD_EXCEPTION_CODE_LIN_SIGPIPE:
+      return "SIGPIPE";
+    case MD_EXCEPTION_CODE_LIN_SIGALRM:
+      return "SIGALRM";
+    case MD_EXCEPTION_CODE_LIN_SIGTERM:
+      return "SIGTERM";
+    case MD_EXCEPTION_CODE_LIN_SIGSTKFLT:
+      return "SIGSTKFLT";
+    case MD_EXCEPTION_CODE_LIN_SIGCHLD:
+      return "SIGCHLD";
+    case MD_EXCEPTION_CODE_LIN_SIGCONT:
+      return "SIGCONT";
+    case MD_EXCEPTION_CODE_LIN_SIGSTOP:
+      return "SIGSTOP";
+    case MD_EXCEPTION_CODE_LIN_SIGTSTP:
+      return "SIGTSTP";
+    case MD_EXCEPTION_CODE_LIN_SIGTTIN:
+      return "SIGTTIN";
+    case MD_EXCEPTION_CODE_LIN_SIGTTOU:
+      return "SIGTTOU";
+    case MD_EXCEPTION_CODE_LIN_SIGURG:
+      return "SIGURG";
+    case MD_EXCEPTION_CODE_LIN_SIGXCPU:
+      return "SIGXCPU";
+    case MD_EXCEPTION_CODE_LIN_SIGXFSZ:
+      return "SIGXFSZ";
+    case MD_EXCEPTION_CODE_LIN_SIGVTALRM:
+      return "SIGVTALRM";
+    case MD_EXCEPTION_CODE_LIN_SIGPROF:
+      return "SIGPROF";
+    case MD_EXCEPTION_CODE_LIN_SIGWINCH:
+      return "SIGWINCH";
+    case MD_EXCEPTION_CODE_LIN_SIGIO:
+      return "SIGIO";
+    case MD_EXCEPTION_CODE_LIN_SIGPWR:
+      return "SIGPWR";
+    case MD_EXCEPTION_CODE_LIN_SIGSYS:
+      return "SIGSYS";
+    case MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED:
+      return "DUMP_REQUESTED";
+    default:
+      return "UNKNOWN";
+  }
+}
+
+bool LinuxDumper::GetMappingAbsolutePath(const MappingInfo& mapping,
+                                         char path[PATH_MAX]) const {
+  return my_strlcpy(path, root_prefix_, PATH_MAX) < PATH_MAX &&
+         my_strlcat(path, mapping.name, PATH_MAX) < PATH_MAX;
+}
+
+namespace {
+// Find the shared object name (SONAME) by examining the ELF information
+// for |mapping|. If the SONAME is found copy it into the passed buffer
+// |soname| and return true. The size of the buffer is |soname_size|.
+// The SONAME will be truncated if it is too long to fit in the buffer.
+bool ElfFileSoName(const LinuxDumper& dumper,
+    const MappingInfo& mapping, char* soname, size_t soname_size) {
+  if (IsMappedFileOpenUnsafe(mapping)) {
+    // Not safe
+    return false;
+  }
+
+  char filename[PATH_MAX];
+  if (!dumper.GetMappingAbsolutePath(mapping, filename))
+    return false;
+
+  MemoryMappedFile mapped_file(filename, mapping.offset);
+  if (!mapped_file.data() || mapped_file.size() < SELFMAG) {
+    // mmap failed
+    return false;
+  }
+
+  return ElfFileSoNameFromMappedFile(mapped_file.data(), soname, soname_size);
+}
+
+}  // namespace
+
+
+void LinuxDumper::GetMappingEffectiveNameAndPath(const MappingInfo& mapping,
+                                                 char* file_path,
+                                                 size_t file_path_size,
+                                                 char* file_name,
+                                                 size_t file_name_size) {
+  my_strlcpy(file_path, mapping.name, file_path_size);
+
+  // Tools such as minidump_stackwalk use the name of the module to look up
+  // symbols produced by dump_syms. dump_syms will prefer to use a module's
+  // DT_SONAME as the module name, if one exists, and will fall back to the
+  // filesystem name of the module.
+
+  // Just use the filesystem name if no SONAME is present.
+  if (!ElfFileSoName(*this, mapping, file_name, file_name_size)) {
+    //   file_path := /path/to/libname.so
+    //   file_name := libname.so
+    const char* basename = my_strrchr(file_path, '/');
+    basename = basename == NULL ? file_path : (basename + 1);
+    my_strlcpy(file_name, basename, file_name_size);
+    return;
+  }
+
+  if (mapping.exec && mapping.offset != 0) {
+    // If an executable is mapped from a non-zero offset, this is likely because
+    // the executable was loaded directly from inside an archive file (e.g., an
+    // apk on Android).
+    // In this case, we append the file_name to the mapped archive path:
+    //   file_name := libname.so
+    //   file_path := /path/to/ARCHIVE.APK/libname.so
+    if (my_strlen(file_path) + 1 + my_strlen(file_name) < file_path_size) {
+      my_strlcat(file_path, "/", file_path_size);
+      my_strlcat(file_path, file_name, file_path_size);
+    }
+  } else {
+    // Otherwise, replace the basename with the SONAME.
+    char* basename = const_cast<char*>(my_strrchr(file_path, '/'));
+    if (basename) {
+      my_strlcpy(basename + 1, file_name,
+                 file_path_size - my_strlen(file_path) +
+                     my_strlen(basename + 1));
+    } else {
+      my_strlcpy(file_path, file_name, file_path_size);
+    }
+  }
+}
+
+bool LinuxDumper::ReadAuxv() {
+  char auxv_path[NAME_MAX];
+  if (!BuildProcPath(auxv_path, pid_, "auxv")) {
+    return false;
+  }
+
+  int fd = sys_open(auxv_path, O_RDONLY, 0);
+  if (fd < 0) {
+    return false;
+  }
+
+  elf_aux_entry one_aux_entry;
+  bool res = false;
+  while (sys_read(fd,
+                  &one_aux_entry,
+                  sizeof(elf_aux_entry)) == sizeof(elf_aux_entry) &&
+         one_aux_entry.a_type != AT_NULL) {
+    if (one_aux_entry.a_type <= AT_MAX) {
+      auxv_[one_aux_entry.a_type] = one_aux_entry.a_un.a_val;
+      res = true;
+    }
+  }
+  sys_close(fd);
+  return res;
+}
+
+bool LinuxDumper::EnumerateMappings() {
+  char maps_path[NAME_MAX];
+  if (!BuildProcPath(maps_path, pid_, "maps"))
+    return false;
+
+  // linux_gate_loc is the beginning of the kernel's mapping of
+  // linux-gate.so in the process.  It doesn't actually show up in the
+  // maps list as a filename, but it can be found using the AT_SYSINFO_EHDR
+  // aux vector entry, which gives the information necessary to special
+  // case its entry when creating the list of mappings.
+  // See http://www.trilithium.com/johan/2005/08/linux-gate/ for more
+  // information.
+  const void* linux_gate_loc =
+      reinterpret_cast<void*>(auxv_[AT_SYSINFO_EHDR]);
+  // Although the initial executable is usually the first mapping, it's not
+  // guaranteed (see http://crosbug.com/25355); therefore, try to use the
+  // actual entry point to find the mapping.
+  const void* entry_point_loc = reinterpret_cast<void*>(auxv_[AT_ENTRY]);
+
+  const int fd = sys_open(maps_path, O_RDONLY, 0);
+  if (fd < 0)
+    return false;
+  LineReader* const line_reader = new(allocator_) LineReader(fd);
+
+  const char* line;
+  unsigned line_len;
+  while (line_reader->GetNextLine(&line, &line_len)) {
+    uintptr_t start_addr, end_addr, offset;
+
+    const char* i1 = my_read_hex_ptr(&start_addr, line);
+    if (*i1 == '-') {
+      const char* i2 = my_read_hex_ptr(&end_addr, i1 + 1);
+      if (*i2 == ' ') {
+        bool exec = (*(i2 + 3) == 'x');
+        const char* i3 = my_read_hex_ptr(&offset, i2 + 6 /* skip ' rwxp ' */);
+        if (*i3 == ' ') {
+          const char* name = NULL;
+          // Only copy name if the name is a valid path name, or if
+          // it's the VDSO image.
+          if (((name = my_strchr(line, '/')) == NULL) &&
+              linux_gate_loc &&
+              reinterpret_cast<void*>(start_addr) == linux_gate_loc) {
+            name = kLinuxGateLibraryName;
+            offset = 0;
+          }
+          // Merge adjacent mappings into one module, assuming they're a single
+          // library mapped by the dynamic linker. Do this only if their name
+          // matches and either they have the same +x protection flag, or if the
+          // previous mapping is not executable and the new one is, to handle
+          // lld's output (see crbug.com/716484).
+          if (name && !mappings_.empty()) {
+            MappingInfo* module = mappings_.back();
+            if ((start_addr == module->start_addr + module->size) &&
+                (my_strlen(name) == my_strlen(module->name)) &&
+                (my_strncmp(name, module->name, my_strlen(name)) == 0) &&
+                ((exec == module->exec) || (!module->exec && exec))) {
+              module->system_mapping_info.end_addr = end_addr;
+              module->size = end_addr - module->start_addr;
+              module->exec |= exec;
+              line_reader->PopLine(line_len);
+              continue;
+            }
+          }
+          MappingInfo* const module = new(allocator_) MappingInfo;
+          mappings_.push_back(module);
+          my_memset(module, 0, sizeof(MappingInfo));
+          module->system_mapping_info.start_addr = start_addr;
+          module->system_mapping_info.end_addr = end_addr;
+          module->start_addr = start_addr;
+          module->size = end_addr - start_addr;
+          module->offset = offset;
+          module->exec = exec;
+          if (name != NULL) {
+            const unsigned l = my_strlen(name);
+            if (l < sizeof(module->name))
+              my_memcpy(module->name, name, l);
+          }
+        }
+      }
+    }
+    line_reader->PopLine(line_len);
+  }
+
+  if (entry_point_loc) {
+    for (size_t i = 0; i < mappings_.size(); ++i) {
+      MappingInfo* module = mappings_[i];
+
+      // If this module contains the entry-point, and it's not already the first
+      // one, then we need to make it be first.  This is because the minidump
+      // format assumes the first module is the one that corresponds to the main
+      // executable (as codified in
+      // processor/minidump.cc:MinidumpModuleList::GetMainModule()).
+      if ((entry_point_loc >= reinterpret_cast<void*>(module->start_addr)) &&
+          (entry_point_loc <
+           reinterpret_cast<void*>(module->start_addr + module->size))) {
+        for (size_t j = i; j > 0; j--)
+          mappings_[j] = mappings_[j - 1];
+        mappings_[0] = module;
+        break;
+      }
+    }
+  }
+
+  sys_close(fd);
+
+  return !mappings_.empty();
+}
+
+#if defined(__ANDROID__)
+
+bool LinuxDumper::GetLoadedElfHeader(uintptr_t start_addr, ElfW(Ehdr)* ehdr) {
+  CopyFromProcess(ehdr, pid_,
+                  reinterpret_cast<const void*>(start_addr),
+                  sizeof(*ehdr));
+  return my_memcmp(&ehdr->e_ident, ELFMAG, SELFMAG) == 0;
+}
+
+void LinuxDumper::ParseLoadedElfProgramHeaders(ElfW(Ehdr)* ehdr,
+                                               uintptr_t start_addr,
+                                               uintptr_t* min_vaddr_ptr,
+                                               uintptr_t* dyn_vaddr_ptr,
+                                               size_t* dyn_count_ptr) {
+  uintptr_t phdr_addr = start_addr + ehdr->e_phoff;
+
+  const uintptr_t max_addr = UINTPTR_MAX;
+  uintptr_t min_vaddr = max_addr;
+  uintptr_t dyn_vaddr = 0;
+  size_t dyn_count = 0;
+
+  for (size_t i = 0; i < ehdr->e_phnum; ++i) {
+    ElfW(Phdr) phdr;
+    CopyFromProcess(&phdr, pid_,
+                    reinterpret_cast<const void*>(phdr_addr),
+                    sizeof(phdr));
+    if (phdr.p_type == PT_LOAD && phdr.p_vaddr < min_vaddr) {
+      min_vaddr = phdr.p_vaddr;
+    }
+    if (phdr.p_type == PT_DYNAMIC) {
+      dyn_vaddr = phdr.p_vaddr;
+      dyn_count = phdr.p_memsz / sizeof(ElfW(Dyn));
+    }
+    phdr_addr += sizeof(phdr);
+  }
+
+  *min_vaddr_ptr = min_vaddr;
+  *dyn_vaddr_ptr = dyn_vaddr;
+  *dyn_count_ptr = dyn_count;
+}
+
+bool LinuxDumper::HasAndroidPackedRelocations(uintptr_t load_bias,
+                                              uintptr_t dyn_vaddr,
+                                              size_t dyn_count) {
+  uintptr_t dyn_addr = load_bias + dyn_vaddr;
+  for (size_t i = 0; i < dyn_count; ++i) {
+    ElfW(Dyn) dyn;
+    CopyFromProcess(&dyn, pid_,
+                    reinterpret_cast<const void*>(dyn_addr),
+                    sizeof(dyn));
+    if (dyn.d_tag == DT_ANDROID_REL || dyn.d_tag == DT_ANDROID_RELA) {
+      return true;
+    }
+    dyn_addr += sizeof(dyn);
+  }
+  return false;
+}
+
+uintptr_t LinuxDumper::GetEffectiveLoadBias(ElfW(Ehdr)* ehdr,
+                                            uintptr_t start_addr) {
+  uintptr_t min_vaddr = 0;
+  uintptr_t dyn_vaddr = 0;
+  size_t dyn_count = 0;
+  ParseLoadedElfProgramHeaders(ehdr, start_addr,
+                               &min_vaddr, &dyn_vaddr, &dyn_count);
+  // If |min_vaddr| is non-zero and we find Android packed relocation tags,
+  // return the effective load bias.
+  if (min_vaddr != 0) {
+    const uintptr_t load_bias = start_addr - min_vaddr;
+    if (HasAndroidPackedRelocations(load_bias, dyn_vaddr, dyn_count)) {
+      return load_bias;
+    }
+  }
+  // Either |min_vaddr| is zero, or it is non-zero but we did not find the
+  // expected Android packed relocations tags.
+  return start_addr;
+}
+
+void LinuxDumper::LatePostprocessMappings() {
+  for (size_t i = 0; i < mappings_.size(); ++i) {
+    // Only consider exec mappings that indicate a file path was mapped, and
+    // where the ELF header indicates a mapped shared library.
+    MappingInfo* mapping = mappings_[i];
+    if (!(mapping->exec && mapping->name[0] == '/')) {
+      continue;
+    }
+    ElfW(Ehdr) ehdr;
+    if (!GetLoadedElfHeader(mapping->start_addr, &ehdr)) {
+      continue;
+    }
+    if (ehdr.e_type == ET_DYN) {
+      // Compute the effective load bias for this mapped library, and update
+      // the mapping to hold that rather than |start_addr|, at the same time
+      // adjusting |size| to account for the change in |start_addr|. Where
+      // the library does not contain Android packed relocations,
+      // GetEffectiveLoadBias() returns |start_addr| and the mapping entry
+      // is not changed.
+      const uintptr_t load_bias = GetEffectiveLoadBias(&ehdr,
+                                                       mapping->start_addr);
+      mapping->size += mapping->start_addr - load_bias;
+      mapping->start_addr = load_bias;
+    }
+  }
+}
+
+#endif  // __ANDROID__
+
+// Get information about the stack, given the stack pointer. We don't try to
+// walk the stack since we might not have all the information needed to do
+// unwind. So we just grab, up to, 32k of stack.
+bool LinuxDumper::GetStackInfo(const void** stack, size_t* stack_len,
+                               uintptr_t int_stack_pointer) {
+  // Move the stack pointer to the bottom of the page that it's in.
+  const uintptr_t page_size = getpagesize();
+
+  uint8_t* const stack_pointer =
+      reinterpret_cast<uint8_t*>(int_stack_pointer & ~(page_size - 1));
+
+  // The number of bytes of stack which we try to capture.
+  static const ptrdiff_t kStackToCapture = 32 * 1024;
+
+  const MappingInfo* mapping = FindMapping(stack_pointer);
+  if (!mapping)
+    return false;
+  const ptrdiff_t offset = stack_pointer -
+      reinterpret_cast<uint8_t*>(mapping->start_addr);
+  const ptrdiff_t distance_to_end =
+      static_cast<ptrdiff_t>(mapping->size) - offset;
+  *stack_len = distance_to_end > kStackToCapture ?
+      kStackToCapture : distance_to_end;
+  *stack = stack_pointer;
+  return true;
+}
+
+void LinuxDumper::SanitizeStackCopy(uint8_t* stack_copy, size_t stack_len,
+                                    uintptr_t stack_pointer,
+                                    uintptr_t sp_offset) {
+  // We optimize the search for containing mappings in three ways:
+  // 1) We expect that pointers into the stack mapping will be common, so
+  //    we cache that address range.
+  // 2) The last referenced mapping is a reasonable predictor for the next
+  //    referenced mapping, so we test that first.
+  // 3) We precompute a bitfield based upon bits 32:32-n of the start and
+  //    stop addresses, and use that to short circuit any values that can
+  //    not be pointers. (n=11)
+  const uintptr_t defaced =
+#if defined(__LP64__)
+      0x0defaced0defaced;
+#else
+      0x0defaced;
+#endif
+  // the bitfield length is 2^test_bits long.
+  const unsigned int test_bits = 11;
+  // byte length of the corresponding array.
+  const unsigned int array_size = 1 << (test_bits - 3);
+  const unsigned int array_mask = array_size - 1;
+  // The amount to right shift pointers by. This captures the top bits
+  // on 32 bit architectures. On 64 bit architectures this would be
+  // uninformative so we take the same range of bits.
+  const unsigned int shift = 32 - 11;
+  const MappingInfo* last_hit_mapping = nullptr;
+  const MappingInfo* hit_mapping = nullptr;
+  const MappingInfo* stack_mapping = FindMappingNoBias(stack_pointer);
+  // The magnitude below which integers are considered to be to be
+  // 'small', and not constitute a PII risk. These are included to
+  // avoid eliding useful register values.
+  const ssize_t small_int_magnitude = 4096;
+
+  char could_hit_mapping[array_size];
+  my_memset(could_hit_mapping, 0, array_size);
+
+  // Initialize the bitfield such that if the (pointer >> shift)'th
+  // bit, modulo the bitfield size, is not set then there does not
+  // exist a mapping in mappings_ that would contain that pointer.
+  for (size_t i = 0; i < mappings_.size(); ++i) {
+    if (!mappings_[i]->exec) continue;
+    // For each mapping, work out the (unmodulo'ed) range of bits to
+    // set.
+    uintptr_t start = mappings_[i]->start_addr;
+    uintptr_t end = start + mappings_[i]->size;
+    start >>= shift;
+    end >>= shift;
+    for (size_t bit = start; bit <= end; ++bit) {
+      // Set each bit in the range, applying the modulus.
+      could_hit_mapping[(bit >> 3) & array_mask] |= 1 << (bit & 7);
+    }
+  }
+
+  // Zero memory that is below the current stack pointer.
+  const uintptr_t offset =
+      (sp_offset + sizeof(uintptr_t) - 1) & ~(sizeof(uintptr_t) - 1);
+  if (offset) {
+    my_memset(stack_copy, 0, offset);
+  }
+
+  // Apply sanitization to each complete pointer-aligned word in the
+  // stack.
+  uint8_t* sp;
+  for (sp = stack_copy + offset;
+       sp <= stack_copy + stack_len - sizeof(uintptr_t);
+       sp += sizeof(uintptr_t)) {
+    uintptr_t addr;
+    my_memcpy(&addr, sp, sizeof(uintptr_t));
+    if (static_cast<intptr_t>(addr) <= small_int_magnitude &&
+        static_cast<intptr_t>(addr) >= -small_int_magnitude) {
+      continue;
+    }
+    if (stack_mapping && MappingContainsAddress(*stack_mapping, addr)) {
+      continue;
+    }
+    if (last_hit_mapping && MappingContainsAddress(*last_hit_mapping, addr)) {
+      continue;
+    }
+    uintptr_t test = addr >> shift;
+    if (could_hit_mapping[(test >> 3) & array_mask] & (1 << (test & 7)) &&
+        (hit_mapping = FindMappingNoBias(addr)) != nullptr &&
+        hit_mapping->exec) {
+      last_hit_mapping = hit_mapping;
+      continue;
+    }
+    my_memcpy(sp, &defaced, sizeof(uintptr_t));
+  }
+  // Zero any partial word at the top of the stack, if alignment is
+  // such that that is required.
+  if (sp < stack_copy + stack_len) {
+    my_memset(sp, 0, stack_copy + stack_len - sp);
+  }
+}
+
+bool LinuxDumper::StackHasPointerToMapping(const uint8_t* stack_copy,
+                                           size_t stack_len,
+                                           uintptr_t sp_offset,
+                                           const MappingInfo& mapping) {
+  // Loop over all stack words that would have been on the stack in
+  // the target process (i.e. are word aligned, and at addresses >=
+  // the stack pointer).  Regardless of the alignment of |stack_copy|,
+  // the memory starting at |stack_copy| + |offset| represents an
+  // aligned word in the target process.
+  const uintptr_t low_addr = mapping.system_mapping_info.start_addr;
+  const uintptr_t high_addr = mapping.system_mapping_info.end_addr;
+  const uintptr_t offset =
+      (sp_offset + sizeof(uintptr_t) - 1) & ~(sizeof(uintptr_t) - 1);
+
+  for (const uint8_t* sp = stack_copy + offset;
+       sp <= stack_copy + stack_len - sizeof(uintptr_t);
+       sp += sizeof(uintptr_t)) {
+    uintptr_t addr;
+    my_memcpy(&addr, sp, sizeof(uintptr_t));
+    if (low_addr <= addr && addr <= high_addr)
+      return true;
+  }
+  return false;
+}
+
+// Find the mapping which the given memory address falls in.
+const MappingInfo* LinuxDumper::FindMapping(const void* address) const {
+  const uintptr_t addr = (uintptr_t) address;
+
+  for (size_t i = 0; i < mappings_.size(); ++i) {
+    const uintptr_t start = static_cast<uintptr_t>(mappings_[i]->start_addr);
+    if (addr >= start && addr - start < mappings_[i]->size)
+      return mappings_[i];
+  }
+
+  return NULL;
+}
+
+// Find the mapping which the given memory address falls in. Uses the
+// unadjusted mapping address range from the kernel, rather than the
+// biased range.
+const MappingInfo* LinuxDumper::FindMappingNoBias(uintptr_t address) const {
+  for (size_t i = 0; i < mappings_.size(); ++i) {
+    if (address >= mappings_[i]->system_mapping_info.start_addr &&
+        address < mappings_[i]->system_mapping_info.end_addr) {
+      return mappings_[i];
+    }
+  }
+  return NULL;
+}
+
+bool LinuxDumper::HandleDeletedFileInMapping(char* path) const {
+  static const size_t kDeletedSuffixLen = sizeof(kDeletedSuffix) - 1;
+
+  // Check for ' (deleted)' in |path|.
+  // |path| has to be at least as long as "/x (deleted)".
+  const size_t path_len = my_strlen(path);
+  if (path_len < kDeletedSuffixLen + 2)
+    return false;
+  if (my_strncmp(path + path_len - kDeletedSuffixLen, kDeletedSuffix,
+                 kDeletedSuffixLen) != 0) {
+    return false;
+  }
+
+  // Check |path| against the /proc/pid/exe 'symlink'.
+  char exe_link[NAME_MAX];
+  if (!BuildProcPath(exe_link, pid_, "exe"))
+    return false;
+  MappingInfo new_mapping = {0};
+  if (!SafeReadLink(exe_link, new_mapping.name))
+    return false;
+  char new_path[PATH_MAX];
+  if (!GetMappingAbsolutePath(new_mapping, new_path))
+    return false;
+  if (my_strcmp(path, new_path) != 0)
+    return false;
+
+  // Check to see if someone actually named their executable 'foo (deleted)'.
+  struct kernel_stat exe_stat;
+  struct kernel_stat new_path_stat;
+  if (sys_stat(exe_link, &exe_stat) == 0 &&
+      sys_stat(new_path, &new_path_stat) == 0 &&
+      exe_stat.st_dev == new_path_stat.st_dev &&
+      exe_stat.st_ino == new_path_stat.st_ino) {
+    return false;
+  }
+
+  my_memcpy(path, exe_link, NAME_MAX);
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h
new file mode 100644
index 0000000..7bee160
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_dumper.h
@@ -0,0 +1,326 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_dumper.h: Define the google_breakpad::LinuxDumper class, which
+// is a base class for extracting information of a crashed process. It
+// was originally a complete implementation using the ptrace API, but
+// has been refactored to allow derived implementations supporting both
+// ptrace and core dump. A portion of the original implementation is now
+// in google_breakpad::LinuxPtraceDumper (see linux_ptrace_dumper.h for
+// details).
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_
+
+#include <assert.h>
+#include <elf.h>
+#if defined(__ANDROID__)
+#include <link.h>
+#endif
+#include <linux/limits.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+#include <vector>
+
+#include "client/linux/dump_writer_common/mapping_info.h"
+#include "client/linux/dump_writer_common/thread_info.h"
+#include "common/linux/file_id.h"
+#include "common/memory_allocator.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Typedef for our parsing of the auxv variables in /proc/pid/auxv.
+#if defined(__i386) || defined(__ARM_EABI__) || \
+ (defined(__mips__) && _MIPS_SIM == _ABIO32)
+typedef Elf32_auxv_t elf_aux_entry;
+#elif defined(__x86_64) || defined(__aarch64__) || \
+     (defined(__mips__) && _MIPS_SIM != _ABIO32)
+typedef Elf64_auxv_t elf_aux_entry;
+#endif
+
+typedef __typeof__(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
+
+// When we find the VDSO mapping in the process's address space, this
+// is the name we use for it when writing it to the minidump.
+// This should always be less than NAME_MAX!
+const char kLinuxGateLibraryName[] = "linux-gate.so";
+
+class LinuxDumper {
+ public:
+  // The |root_prefix| is prepended to mapping paths before opening them, which
+  // is useful if the crash originates from a chroot.
+  explicit LinuxDumper(pid_t pid, const char* root_prefix = "");
+
+  virtual ~LinuxDumper();
+
+  // Parse the data for |threads| and |mappings|.
+  virtual bool Init();
+
+  // Take any actions that could not be taken in Init(). LateInit() is
+  // called after all other caller's initialization is complete, and in
+  // particular after it has called ThreadsSuspend(), so that ptrace is
+  // available.
+  virtual bool LateInit();
+
+  // Return true if the dumper performs a post-mortem dump.
+  virtual bool IsPostMortem() const = 0;
+
+  // Suspend/resume all threads in the given process.
+  virtual bool ThreadsSuspend() = 0;
+  virtual bool ThreadsResume() = 0;
+
+  // Read information about the |index|-th thread of |threads_|.
+  // Returns true on success. One must have called |ThreadsSuspend| first.
+  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info) = 0;
+
+  size_t GetMainThreadIndex() const {
+    for (size_t i = 0; i < threads_.size(); ++i) {
+      if (threads_[i] == pid_) return i;
+    }
+    return -1u;
+  }
+
+  // These are only valid after a call to |Init|.
+  const wasteful_vector<pid_t>& threads() { return threads_; }
+  const wasteful_vector<MappingInfo*>& mappings() { return mappings_; }
+  const MappingInfo* FindMapping(const void* address) const;
+  // Find the mapping which the given memory address falls in. Unlike
+  // FindMapping, this method uses the unadjusted mapping address
+  // ranges from the kernel, rather than the ranges that have had the
+  // load bias applied.
+  const MappingInfo* FindMappingNoBias(uintptr_t address) const;
+  const wasteful_vector<elf_aux_val_t>& auxv() { return auxv_; }
+
+  // Find a block of memory to take as the stack given the top of stack pointer.
+  //   stack: (output) the lowest address in the memory area
+  //   stack_len: (output) the length of the memory area
+  //   stack_top: the current top of the stack
+  bool GetStackInfo(const void** stack, size_t* stack_len, uintptr_t stack_top);
+
+  // Sanitize a copy of the stack by overwriting words that are not
+  // pointers with a sentinel (0x0defaced).
+  //   stack_copy: a copy of the stack to sanitize. |stack_copy| might
+  //               not be word aligned, but it represents word aligned
+  //               data copied from another location.
+  //   stack_len: the length of the allocation pointed to by |stack_copy|.
+  //   stack_pointer: the address of the stack pointer (used to locate
+  //                  the stack mapping, as an optimization).
+  //   sp_offset: the offset relative to stack_copy that reflects the
+  //              current value of the stack pointer.
+  void SanitizeStackCopy(uint8_t* stack_copy, size_t stack_len,
+                         uintptr_t stack_pointer, uintptr_t sp_offset);
+
+  // Test whether |stack_copy| contains a pointer-aligned word that
+  // could be an address within a given mapping.
+  //   stack_copy: a copy of the stack to check. |stack_copy| might
+  //               not be word aligned, but it represents word aligned
+  //               data copied from another location.
+  //   stack_len: the length of the allocation pointed to by |stack_copy|.
+  //   sp_offset: the offset relative to stack_copy that reflects the
+  //              current value of the stack pointer.
+  //   mapping: the mapping against which to test stack words.
+  bool StackHasPointerToMapping(const uint8_t* stack_copy, size_t stack_len,
+                                uintptr_t sp_offset,
+                                const MappingInfo& mapping);
+
+  PageAllocator* allocator() { return &allocator_; }
+
+  // Copy content of |length| bytes from a given process |child|,
+  // starting from |src|, into |dest|. Returns true on success.
+  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
+                               size_t length) = 0;
+
+  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
+  // |path| is a character array of at least NAME_MAX bytes to return the
+  // result.|node| is the final node without any slashes. Returns true on
+  // success.
+  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const = 0;
+
+  // Generate a File ID from the .text section of a mapped entry.
+  // If not a member, mapping_id is ignored. This method can also manipulate the
+  // |mapping|.name to truncate "(deleted)" from the file name if necessary.
+  bool ElfFileIdentifierForMapping(const MappingInfo& mapping,
+                                   bool member,
+                                   unsigned int mapping_id,
+                                   wasteful_vector<uint8_t>& identifier);
+
+  void SetCrashInfoFromSigInfo(const siginfo_t& siginfo);
+
+  uintptr_t crash_address() const { return crash_address_; }
+  void set_crash_address(uintptr_t crash_address) {
+    crash_address_ = crash_address;
+  }
+
+  int crash_signal() const { return crash_signal_; }
+  void set_crash_signal(int crash_signal) { crash_signal_ = crash_signal; }
+  const char* GetCrashSignalString() const;
+
+  void set_crash_signal_code(int code) { crash_signal_code_ = code; }
+  int crash_signal_code() const { return crash_signal_code_; }
+
+  void set_crash_exception_info(const std::vector<uint64_t>& exception_info) {
+    assert(exception_info.size() <= MD_EXCEPTION_MAXIMUM_PARAMETERS);
+    crash_exception_info_ = exception_info;
+  }
+  const std::vector<uint64_t>& crash_exception_info() const {
+    return crash_exception_info_;
+  }
+
+  pid_t crash_thread() const { return crash_thread_; }
+  void set_crash_thread(pid_t crash_thread) { crash_thread_ = crash_thread; }
+
+  // Concatenates the |root_prefix_| and |mapping| path. Writes into |path| and
+  // returns true unless the string is too long.
+  bool GetMappingAbsolutePath(const MappingInfo& mapping,
+                              char path[PATH_MAX]) const;
+
+  // Extracts the effective path and file name of from |mapping|. In most cases
+  // the effective name/path are just the mapping's path and basename. In some
+  // other cases, however, a library can be mapped from an archive (e.g., when
+  // loading .so libs from an apk on Android) and this method is able to
+  // reconstruct the original file name.
+  void GetMappingEffectiveNameAndPath(const MappingInfo& mapping,
+                                      char* file_path,
+                                      size_t file_path_size,
+                                      char* file_name,
+                                      size_t file_name_size);
+
+ protected:
+  bool ReadAuxv();
+
+  virtual bool EnumerateMappings();
+
+  virtual bool EnumerateThreads() = 0;
+
+  // For the case where a running program has been deleted, it'll show up in
+  // /proc/pid/maps as "/path/to/program (deleted)". If this is the case, then
+  // see if '/path/to/program (deleted)' matches /proc/pid/exe and return
+  // /proc/pid/exe in |path| so ELF identifier generation works correctly. This
+  // also checks to see if '/path/to/program (deleted)' exists, so it does not
+  // get fooled by a poorly named binary.
+  // For programs that don't end with ' (deleted)', this is a no-op.
+  // This assumes |path| is a buffer with length NAME_MAX.
+  // Returns true if |path| is modified.
+  bool HandleDeletedFileInMapping(char* path) const;
+
+   // ID of the crashed process.
+  const pid_t pid_;
+
+  // Path of the root directory to which mapping paths are relative.
+  const char* const root_prefix_;
+
+  // Virtual address at which the process crashed.
+  uintptr_t crash_address_;
+
+  // Signal that terminated the crashed process.
+  int crash_signal_;
+
+  // The code associated with |crash_signal_|.
+  int crash_signal_code_;
+
+  // The additional fields associated with |crash_signal_|.
+  std::vector<uint64_t> crash_exception_info_;
+
+  // ID of the crashed thread.
+  pid_t crash_thread_;
+
+  mutable PageAllocator allocator_;
+
+  // IDs of all the threads.
+  wasteful_vector<pid_t> threads_;
+
+  // Info from /proc/<pid>/maps.
+  wasteful_vector<MappingInfo*> mappings_;
+
+  // Info from /proc/<pid>/auxv
+  wasteful_vector<elf_aux_val_t> auxv_;
+
+#if defined(__ANDROID__)
+ private:
+  // Android M and later support packed ELF relocations in shared libraries.
+  // Packing relocations changes the vaddr of the LOAD segments, such that
+  // the effective load bias is no longer the same as the start address of
+  // the memory mapping containing the executable parts of the library. The
+  // packing is applied to the stripped library run on the target, but not to
+  // any other library, and in particular not to the library used to generate
+  // breakpad symbols. As a result, we need to adjust the |start_addr| for
+  // any mapping that results from a shared library that contains Android
+  // packed relocations, so that it properly represents the effective library
+  // load bias. The following functions support this adjustment.
+
+  // Check that a given mapping at |start_addr| is for an ELF shared library.
+  // If it is, place the ELF header in |ehdr| and return true.
+  // The first LOAD segment in an ELF shared library has offset zero, so the
+  // ELF file header is at the start of this map entry, and in already mapped
+  // memory.
+  bool GetLoadedElfHeader(uintptr_t start_addr, ElfW(Ehdr)* ehdr);
+
+  // For the ELF file mapped at |start_addr|, iterate ELF program headers to
+  // find the min vaddr of all program header LOAD segments, the vaddr for
+  // the DYNAMIC segment, and a count of DYNAMIC entries. Return values in
+  // |min_vaddr_ptr|, |dyn_vaddr_ptr|, and |dyn_count_ptr|.
+  // The program header table is also in already mapped memory.
+  void ParseLoadedElfProgramHeaders(ElfW(Ehdr)* ehdr,
+                                    uintptr_t start_addr,
+                                    uintptr_t* min_vaddr_ptr,
+                                    uintptr_t* dyn_vaddr_ptr,
+                                    size_t* dyn_count_ptr);
+
+  // Search the DYNAMIC tags for the ELF file with the given |load_bias|, and
+  // return true if the tags indicate that the file contains Android packed
+  // relocations. Dynamic tags are found at |dyn_vaddr| past the |load_bias|.
+  bool HasAndroidPackedRelocations(uintptr_t load_bias,
+                                   uintptr_t dyn_vaddr,
+                                   size_t dyn_count);
+
+  // If the ELF file mapped at |start_addr| contained Android packed
+  // relocations, return the load bias that the system linker (or Chromium
+  // crazy linker) will have used. If the file did not contain Android
+  // packed relocations, returns |start_addr|, indicating that no adjustment
+  // is necessary.
+  // The effective load bias is |start_addr| adjusted downwards by the
+  // min vaddr in the library LOAD segments.
+  uintptr_t GetEffectiveLoadBias(ElfW(Ehdr)* ehdr, uintptr_t start_addr);
+
+  // Called from LateInit(). Iterates |mappings_| and rewrites the |start_addr|
+  // field of any that represent ELF shared libraries with Android packed
+  // relocations, so that |start_addr| is the load bias that the system linker
+  // (or Chromium crazy linker) used. This value matches the addresses produced
+  // when the non-relocation-packed library is used for breakpad symbol
+  // generation.
+  void LatePostprocessMappings();
+#endif  // __ANDROID__
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_HANDLER_LINUX_DUMPER_H_
diff --git a/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc b/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
new file mode 100644
index 0000000..331f4bb
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
@@ -0,0 +1,95 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Helper program for the linux_dumper class, which creates a bunch of
+// threads. The first word of each thread's stack is set to the thread
+// id.
+
+#include <pthread.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+#include "common/scoped_ptr.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+#if defined(__ARM_EABI__)
+#define TID_PTR_REGISTER "r3"
+#elif defined(__aarch64__)
+#define TID_PTR_REGISTER "x3"
+#elif defined(__i386)
+#define TID_PTR_REGISTER "ecx"
+#elif defined(__x86_64)
+#define TID_PTR_REGISTER "rcx"
+#elif defined(__mips__)
+#define TID_PTR_REGISTER "$1"
+#else
+#error This test has not been ported to this platform.
+#endif
+
+void* thread_function(void* data) {
+  int pipefd = *static_cast<int*>(data);
+  volatile pid_t* thread_id = new pid_t;
+  *thread_id = syscall(__NR_gettid);
+  // Signal parent that a thread has started.
+  uint8_t byte = 1;
+  if (write(pipefd, &byte, sizeof(byte)) != sizeof(byte)) {
+    perror("ERROR: parent notification failed");
+    return NULL;
+  }
+  register volatile pid_t* thread_id_ptr asm(TID_PTR_REGISTER) = thread_id;
+  while (true)
+    asm volatile ("" : : "r" (thread_id_ptr));
+  return NULL;
+}
+
+int main(int argc, char* argv[]) {
+  if (argc < 3) {
+    fprintf(stderr,
+            "usage: linux_dumper_unittest_helper <pipe fd> <# of threads>\n");
+    return 1;
+  }
+  int pipefd = atoi(argv[1]);
+  int num_threads = atoi(argv[2]);
+  if (num_threads < 1) {
+    fprintf(stderr, "ERROR: number of threads is 0");
+    return 1;
+  }
+  google_breakpad::scoped_array<pthread_t> threads(new pthread_t[num_threads]);
+  pthread_attr_t thread_attributes;
+  pthread_attr_init(&thread_attributes);
+  pthread_attr_setdetachstate(&thread_attributes, PTHREAD_CREATE_DETACHED);
+  for (int i = 1; i < num_threads; i++) {
+    pthread_create(&threads[i], &thread_attributes, &thread_function, &pipefd);
+  }
+  thread_function(&pipefd);
+  return 0;
+}
diff --git a/src/client/linux/minidump_writer/linux_ptrace_dumper.cc b/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
new file mode 100644
index 0000000..e3ddb81
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
@@ -0,0 +1,376 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_ptrace_dumper.cc: Implement google_breakpad::LinuxPtraceDumper.
+// See linux_ptrace_dumper.h for detals.
+// This class was originally splitted from google_breakpad::LinuxDumper.
+
+// This code deals with the mechanics of getting information about a crashed
+// process. Since this code may run in a compromised address space, the same
+// rules apply as detailed at the top of minidump_writer.h: no libc calls and
+// use the alternative allocator.
+
+#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+
+#include <asm/ptrace.h>
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ptrace.h>
+#include <sys/uio.h>
+#include <sys/wait.h>
+
+#if defined(__i386)
+#include <cpuid.h>
+#endif
+
+#include "client/linux/minidump_writer/directory_reader.h"
+#include "client/linux/minidump_writer/line_reader.h"
+#include "common/linux/linux_libc_support.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+// Suspends a thread by attaching to it.
+static bool SuspendThread(pid_t pid) {
+  // This may fail if the thread has just died or debugged.
+  errno = 0;
+  if (sys_ptrace(PTRACE_ATTACH, pid, NULL, NULL) != 0 &&
+      errno != 0) {
+    return false;
+  }
+  while (sys_waitpid(pid, NULL, __WALL) < 0) {
+    if (errno != EINTR) {
+      sys_ptrace(PTRACE_DETACH, pid, NULL, NULL);
+      return false;
+    }
+  }
+#if defined(__i386) || defined(__x86_64)
+  // On x86, the stack pointer is NULL or -1, when executing trusted code in
+  // the seccomp sandbox. Not only does this cause difficulties down the line
+  // when trying to dump the thread's stack, it also results in the minidumps
+  // containing information about the trusted threads. This information is
+  // generally completely meaningless and just pollutes the minidumps.
+  // We thus test the stack pointer and exclude any threads that are part of
+  // the seccomp sandbox's trusted code.
+  user_regs_struct regs;
+  if (sys_ptrace(PTRACE_GETREGS, pid, NULL, &regs) == -1 ||
+#if defined(__i386)
+      !regs.esp
+#elif defined(__x86_64)
+      !regs.rsp
+#endif
+      ) {
+    sys_ptrace(PTRACE_DETACH, pid, NULL, NULL);
+    return false;
+  }
+#endif
+  return true;
+}
+
+// Resumes a thread by detaching from it.
+static bool ResumeThread(pid_t pid) {
+  return sys_ptrace(PTRACE_DETACH, pid, NULL, NULL) >= 0;
+}
+
+namespace google_breakpad {
+
+LinuxPtraceDumper::LinuxPtraceDumper(pid_t pid)
+    : LinuxDumper(pid),
+      threads_suspended_(false) {
+}
+
+bool LinuxPtraceDumper::BuildProcPath(char* path, pid_t pid,
+                                      const char* node) const {
+  if (!path || !node || pid <= 0)
+    return false;
+
+  size_t node_len = my_strlen(node);
+  if (node_len == 0)
+    return false;
+
+  const unsigned pid_len = my_uint_len(pid);
+  const size_t total_length = 6 + pid_len + 1 + node_len;
+  if (total_length >= NAME_MAX)
+    return false;
+
+  my_memcpy(path, "/proc/", 6);
+  my_uitos(path + 6, pid, pid_len);
+  path[6 + pid_len] = '/';
+  my_memcpy(path + 6 + pid_len + 1, node, node_len);
+  path[total_length] = '\0';
+  return true;
+}
+
+bool LinuxPtraceDumper::CopyFromProcess(void* dest, pid_t child,
+                                        const void* src, size_t length) {
+  unsigned long tmp = 55;
+  size_t done = 0;
+  static const size_t word_size = sizeof(tmp);
+  uint8_t* const local = (uint8_t*) dest;
+  uint8_t* const remote = (uint8_t*) src;
+
+  while (done < length) {
+    const size_t l = (length - done > word_size) ? word_size : (length - done);
+    if (sys_ptrace(PTRACE_PEEKDATA, child, remote + done, &tmp) == -1) {
+      tmp = 0;
+    }
+    my_memcpy(local + done, &tmp, l);
+    done += l;
+  }
+  return true;
+}
+
+bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid)
+{
+#ifdef PTRACE_GETREGSET
+  struct iovec io;
+  info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len);
+  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
+    return false;
+  }
+
+  info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len);
+  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
+    return false;
+  }
+  return true;
+#else
+  return false;
+#endif
+}
+
+bool LinuxPtraceDumper::ReadRegisters(ThreadInfo* info, pid_t tid) {
+#ifdef PTRACE_GETREGS
+  void* gp_addr;
+  info->GetGeneralPurposeRegisters(&gp_addr, NULL);
+  if (sys_ptrace(PTRACE_GETREGS, tid, NULL, gp_addr) == -1) {
+    return false;
+  }
+
+#if !(defined(__ANDROID__) && defined(__ARM_EABI__))
+  // When running an arm build on an arm64 device, attempting to get the
+  // floating point registers fails. On Android, the floating point registers
+  // aren't written to the cpu context anyway, so just don't get them here.
+  // See http://crbug.com/508324
+  void* fp_addr;
+  info->GetFloatingPointRegisters(&fp_addr, NULL);
+  if (sys_ptrace(PTRACE_GETFPREGS, tid, NULL, fp_addr) == -1) {
+    return false;
+  }
+#endif  // !(defined(__ANDROID__) && defined(__ARM_EABI__))
+  return true;
+#else  // PTRACE_GETREGS
+  return false;
+#endif
+}
+
+// Read thread info from /proc/$pid/status.
+// Fill out the |tgid|, |ppid| and |pid| members of |info|. If unavailable,
+// these members are set to -1. Returns true iff all three members are
+// available.
+bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
+  if (index >= threads_.size())
+    return false;
+
+  pid_t tid = threads_[index];
+
+  assert(info != NULL);
+  char status_path[NAME_MAX];
+  if (!BuildProcPath(status_path, tid, "status"))
+    return false;
+
+  const int fd = sys_open(status_path, O_RDONLY, 0);
+  if (fd < 0)
+    return false;
+
+  LineReader* const line_reader = new(allocator_) LineReader(fd);
+  const char* line;
+  unsigned line_len;
+
+  info->ppid = info->tgid = -1;
+
+  while (line_reader->GetNextLine(&line, &line_len)) {
+    if (my_strncmp("Tgid:\t", line, 6) == 0) {
+      my_strtoui(&info->tgid, line + 6);
+    } else if (my_strncmp("PPid:\t", line, 6) == 0) {
+      my_strtoui(&info->ppid, line + 6);
+    }
+
+    line_reader->PopLine(line_len);
+  }
+  sys_close(fd);
+
+  if (info->ppid == -1 || info->tgid == -1)
+    return false;
+
+  if (!ReadRegisterSet(info, tid)) {
+    if (!ReadRegisters(info, tid)) {
+      return false;
+    }
+  }
+
+#if defined(__i386)
+#if !defined(bit_FXSAVE)  // e.g. Clang
+#define bit_FXSAVE bit_FXSR
+#endif
+  // Detect if the CPU supports the FXSAVE/FXRSTOR instructions
+  int eax, ebx, ecx, edx;
+  __cpuid(1, eax, ebx, ecx, edx);
+  if (edx & bit_FXSAVE) {
+    if (sys_ptrace(PTRACE_GETFPXREGS, tid, NULL, &info->fpxregs) == -1) {
+      return false;
+    }
+  } else {
+    memset(&info->fpxregs, 0, sizeof(info->fpxregs));
+  }
+#endif  // defined(__i386)
+
+#if defined(__i386) || defined(__x86_64)
+  for (unsigned i = 0; i < ThreadInfo::kNumDebugRegisters; ++i) {
+    if (sys_ptrace(
+        PTRACE_PEEKUSER, tid,
+        reinterpret_cast<void*> (offsetof(struct user,
+                                          u_debugreg[0]) + i *
+                                 sizeof(debugreg_t)),
+        &info->dregs[i]) == -1) {
+      return false;
+    }
+  }
+#endif
+
+#if defined(__mips__)
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(PC), &info->mcontext.pc);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE), &info->mcontext.hi1);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE + 1), &info->mcontext.lo1);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE + 2), &info->mcontext.hi2);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE + 3), &info->mcontext.lo2);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE + 4), &info->mcontext.hi3);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_BASE + 5), &info->mcontext.lo3);
+  sys_ptrace(PTRACE_PEEKUSER, tid,
+             reinterpret_cast<void*>(DSP_CONTROL), &info->mcontext.dsp);
+#endif
+
+  const uint8_t* stack_pointer;
+#if defined(__i386)
+  my_memcpy(&stack_pointer, &info->regs.esp, sizeof(info->regs.esp));
+#elif defined(__x86_64)
+  my_memcpy(&stack_pointer, &info->regs.rsp, sizeof(info->regs.rsp));
+#elif defined(__ARM_EABI__)
+  my_memcpy(&stack_pointer, &info->regs.ARM_sp, sizeof(info->regs.ARM_sp));
+#elif defined(__aarch64__)
+  my_memcpy(&stack_pointer, &info->regs.sp, sizeof(info->regs.sp));
+#elif defined(__mips__)
+  stack_pointer =
+      reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
+#else
+#error "This code hasn't been ported to your platform yet."
+#endif
+  info->stack_pointer = reinterpret_cast<uintptr_t>(stack_pointer);
+
+  return true;
+}
+
+bool LinuxPtraceDumper::IsPostMortem() const {
+  return false;
+}
+
+bool LinuxPtraceDumper::ThreadsSuspend() {
+  if (threads_suspended_)
+    return true;
+  for (size_t i = 0; i < threads_.size(); ++i) {
+    if (!SuspendThread(threads_[i])) {
+      // If the thread either disappeared before we could attach to it, or if
+      // it was part of the seccomp sandbox's trusted code, it is OK to
+      // silently drop it from the minidump.
+      if (i < threads_.size() - 1) {
+        my_memmove(&threads_[i], &threads_[i + 1],
+                   (threads_.size() - i - 1) * sizeof(threads_[i]));
+      }
+      threads_.resize(threads_.size() - 1);
+      --i;
+    }
+  }
+  threads_suspended_ = true;
+  return threads_.size() > 0;
+}
+
+bool LinuxPtraceDumper::ThreadsResume() {
+  if (!threads_suspended_)
+    return false;
+  bool good = true;
+  for (size_t i = 0; i < threads_.size(); ++i)
+    good &= ResumeThread(threads_[i]);
+  threads_suspended_ = false;
+  return good;
+}
+
+// Parse /proc/$pid/task to list all the threads of the process identified by
+// pid.
+bool LinuxPtraceDumper::EnumerateThreads() {
+  char task_path[NAME_MAX];
+  if (!BuildProcPath(task_path, pid_, "task"))
+    return false;
+
+  const int fd = sys_open(task_path, O_RDONLY | O_DIRECTORY, 0);
+  if (fd < 0)
+    return false;
+  DirectoryReader* dir_reader = new(allocator_) DirectoryReader(fd);
+
+  // The directory may contain duplicate entries which we filter by assuming
+  // that they are consecutive.
+  int last_tid = -1;
+  const char* dent_name;
+  while (dir_reader->GetNextEntry(&dent_name)) {
+    if (my_strcmp(dent_name, ".") &&
+        my_strcmp(dent_name, "..")) {
+      int tid = 0;
+      if (my_strtoui(&tid, dent_name) &&
+          last_tid != tid) {
+        last_tid = tid;
+        threads_.push_back(tid);
+      }
+    }
+    dir_reader->PopEntry();
+  }
+
+  sys_close(fd);
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/minidump_writer/linux_ptrace_dumper.h b/src/client/linux/minidump_writer/linux_ptrace_dumper.h
new file mode 100644
index 0000000..cee5817
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_ptrace_dumper.h
@@ -0,0 +1,101 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_ptrace_dumper.h: Define the google_breakpad::LinuxPtraceDumper
+// class, which is derived from google_breakpad::LinuxDumper to extract
+// information from a crashed process via ptrace.
+// This class was originally splitted from google_breakpad::LinuxDumper.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_
+
+#include "client/linux/minidump_writer/linux_dumper.h"
+
+namespace google_breakpad {
+
+class LinuxPtraceDumper : public LinuxDumper {
+ public:
+  // Constructs a dumper for extracting information of a given process
+  // with a process ID of |pid|.
+  explicit LinuxPtraceDumper(pid_t pid);
+
+  // Implements LinuxDumper::BuildProcPath().
+  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
+  // |path| is a character array of at least NAME_MAX bytes to return the
+  // result. |node| is the final node without any slashes. Returns true on
+  // success.
+  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const;
+
+  // Implements LinuxDumper::CopyFromProcess().
+  // Copies content of |length| bytes from a given process |child|,
+  // starting from |src|, into |dest|. This method uses ptrace to extract
+  // the content from the target process. Always returns true.
+  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
+                               size_t length);
+
+  // Implements LinuxDumper::GetThreadInfoByIndex().
+  // Reads information about the |index|-th thread of |threads_|.
+  // Returns true on success. One must have called |ThreadsSuspend| first.
+  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info);
+
+  // Implements LinuxDumper::IsPostMortem().
+  // Always returns false to indicate this dumper performs a dump of
+  // a crashed process via ptrace.
+  virtual bool IsPostMortem() const;
+
+  // Implements LinuxDumper::ThreadsSuspend().
+  // Suspends all threads in the given process. Returns true on success.
+  virtual bool ThreadsSuspend();
+
+  // Implements LinuxDumper::ThreadsResume().
+  // Resumes all threads in the given process. Returns true on success.
+  virtual bool ThreadsResume();
+
+ protected:
+  // Implements LinuxDumper::EnumerateThreads().
+  // Enumerates all threads of the given process into |threads_|.
+  virtual bool EnumerateThreads();
+
+ private:
+  // Set to true if all threads of the crashed process are suspended.
+  bool threads_suspended_;
+
+  // Read the tracee's registers on kernel with PTRACE_GETREGSET support.
+  // Returns false if PTRACE_GETREGSET is not defined.
+  // Returns true on success.
+  bool ReadRegisterSet(ThreadInfo* info, pid_t tid);
+
+  // Read the tracee's registers on kernel with PTRACE_GETREGS support.
+  // Returns true on success.
+  bool ReadRegisters(ThreadInfo* info, pid_t tid);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_HANDLER_LINUX_PTRACE_DUMPER_H_
diff --git a/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc b/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
new file mode 100644
index 0000000..da71e15
--- /dev/null
+++ b/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
@@ -0,0 +1,580 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// linux_ptrace_dumper_unittest.cc:
+// Unit tests for google_breakpad::LinuxPtraceDumper.
+//
+// This file was renamed from linux_dumper_unittest.cc and modified due
+// to LinuxDumper being splitted into two classes.
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <poll.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdint.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/prctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+#include "client/linux/minidump_writer/minidump_writer_unittest_utils.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/file_id.h"
+#include "common/linux/ignore_ret.h"
+#include "common/linux/safe_readlink.h"
+#include "common/memory_allocator.h"
+#include "common/using_std_string.h"
+
+#ifndef PR_SET_PTRACER
+#define PR_SET_PTRACER 0x59616d61
+#endif
+
+using namespace google_breakpad;
+
+namespace {
+
+pid_t SetupChildProcess(int number_of_threads) {
+  char kNumberOfThreadsArgument[2];
+  sprintf(kNumberOfThreadsArgument, "%d", number_of_threads);
+
+  int fds[2];
+  EXPECT_NE(-1, pipe(fds));
+
+  pid_t child_pid = fork();
+  if (child_pid == 0) {
+    // In child process.
+    close(fds[0]);
+
+    string helper_path(GetHelperBinary());
+    if (helper_path.empty()) {
+      fprintf(stderr, "Couldn't find helper binary\n");
+      _exit(1);
+    }
+
+    // Pass the pipe fd and the number of threads as arguments.
+    char pipe_fd_string[8];
+    sprintf(pipe_fd_string, "%d", fds[1]);
+    execl(helper_path.c_str(),
+          "linux_dumper_unittest_helper",
+          pipe_fd_string,
+          kNumberOfThreadsArgument,
+          NULL);
+    // Kill if we get here.
+    printf("Errno from exec: %d", errno);
+    std::string err_str = "Exec of  " + helper_path + " failed";
+    perror(err_str.c_str());
+    _exit(1);
+  }
+  close(fds[1]);
+
+  // Wait for all child threads to indicate that they have started
+  for (int threads = 0; threads < number_of_threads; threads++) {
+    struct pollfd pfd;
+    memset(&pfd, 0, sizeof(pfd));
+    pfd.fd = fds[0];
+    pfd.events = POLLIN | POLLERR;
+
+    const int r = HANDLE_EINTR(poll(&pfd, 1, 1000));
+    EXPECT_EQ(1, r);
+    EXPECT_TRUE(pfd.revents & POLLIN);
+    uint8_t junk;
+    EXPECT_EQ(read(fds[0], &junk, sizeof(junk)),
+              static_cast<ssize_t>(sizeof(junk)));
+  }
+  close(fds[0]);
+
+  // There is a race here because we may stop a child thread before
+  // it is actually running the busy loop. Empirically this sleep
+  // is sufficient to avoid the race.
+  usleep(100000);
+  return child_pid;
+}
+
+typedef wasteful_vector<uint8_t> id_vector;
+typedef testing::Test LinuxPtraceDumperTest;
+
+/* Fixture for running tests in a child process. */
+class LinuxPtraceDumperChildTest : public testing::Test {
+ protected:
+  virtual void SetUp() {
+    child_pid_ = fork();
+#ifndef __ANDROID__
+    prctl(PR_SET_PTRACER, child_pid_);
+#endif
+  }
+
+  /* Gtest is calling TestBody from this class, which sets up a child
+   * process in which the RealTestBody virtual member is called.
+   * As such, TestBody is not supposed to be overridden in derived classes.
+   */
+  virtual void TestBody() /* final */ {
+    if (child_pid_ == 0) {
+      // child process
+      RealTestBody();
+      _exit(HasFatalFailure() ? kFatalFailure :
+            (HasNonfatalFailure() ? kNonFatalFailure : 0));
+    }
+
+    ASSERT_TRUE(child_pid_ > 0);
+    int status;
+    waitpid(child_pid_, &status, 0);
+    if (WEXITSTATUS(status) == kFatalFailure) {
+      GTEST_FATAL_FAILURE_("Test failed in child process");
+    } else if (WEXITSTATUS(status) == kNonFatalFailure) {
+      GTEST_NONFATAL_FAILURE_("Test failed in child process");
+    }
+  }
+
+  /* Gtest defines TestBody functions through its macros, but classes
+   * derived from this one need to define RealTestBody instead.
+   * This is achieved by defining a TestBody macro further below.
+   */
+  virtual void RealTestBody() = 0;
+
+  id_vector make_vector() {
+    return id_vector(&allocator, kDefaultBuildIdSize);
+  }
+
+ private:
+  static const int kFatalFailure = 1;
+  static const int kNonFatalFailure = 2;
+
+  pid_t child_pid_;
+  PageAllocator allocator;
+};
+
+}  // namespace
+
+/* Replace TestBody declarations within TEST*() with RealTestBody
+ * declarations */
+#define TestBody RealTestBody
+
+TEST_F(LinuxPtraceDumperChildTest, Setup) {
+  LinuxPtraceDumper dumper(getppid());
+}
+
+TEST_F(LinuxPtraceDumperChildTest, FindMappings) {
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+
+  ASSERT_TRUE(dumper.FindMapping(reinterpret_cast<void*>(getpid)));
+  ASSERT_TRUE(dumper.FindMapping(reinterpret_cast<void*>(printf)));
+  ASSERT_FALSE(dumper.FindMapping(NULL));
+}
+
+TEST_F(LinuxPtraceDumperChildTest, ThreadList) {
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+
+  ASSERT_GE(dumper.threads().size(), (size_t)1);
+  bool found = false;
+  for (size_t i = 0; i < dumper.threads().size(); ++i) {
+    if (dumper.threads()[i] == getppid()) {
+      ASSERT_FALSE(found);
+      found = true;
+    }
+  }
+  ASSERT_TRUE(found);
+}
+
+// Helper stack class to close a file descriptor and unmap
+// a mmap'ed mapping.
+class StackHelper {
+ public:
+  StackHelper()
+    : fd_(-1), mapping_(NULL), size_(0) {}
+  ~StackHelper() {
+    if (size_)
+      munmap(mapping_, size_);
+    if (fd_ >= 0)
+      close(fd_);
+  }
+  void Init(int fd, char* mapping, size_t size) {
+    fd_ = fd;
+    mapping_ = mapping;
+    size_ = size;
+  }
+
+  char* mapping() const { return mapping_; }
+  size_t size() const { return size_; }
+
+ private:
+  int fd_;
+  char* mapping_;
+  size_t size_;
+};
+
+class LinuxPtraceDumperMappingsTest : public LinuxPtraceDumperChildTest {
+ protected:
+  virtual void SetUp();
+
+  string helper_path_;
+  size_t page_size_;
+  StackHelper helper_;
+};
+
+void LinuxPtraceDumperMappingsTest::SetUp() {
+  helper_path_ = GetHelperBinary();
+  if (helper_path_.empty()) {
+    FAIL() << "Couldn't find helper binary";
+    _exit(1);
+  }
+
+  // mmap two segments out of the helper binary, one
+  // enclosed in the other, but with different protections.
+  page_size_ = sysconf(_SC_PAGESIZE);
+  const size_t kMappingSize = 3 * page_size_;
+  int fd = open(helper_path_.c_str(), O_RDONLY);
+  ASSERT_NE(-1, fd) << "Failed to open file: " << helper_path_
+                    << ", Error: " << strerror(errno);
+  char* mapping =
+    reinterpret_cast<char*>(mmap(NULL,
+                                 kMappingSize,
+                                 PROT_READ,
+                                 MAP_SHARED,
+                                 fd,
+                                 0));
+  ASSERT_TRUE(mapping);
+
+  // Ensure that things get cleaned up.
+  helper_.Init(fd, mapping, kMappingSize);
+
+  // Carve a page out of the first mapping with different permissions.
+  char* inside_mapping =  reinterpret_cast<char*>(
+      mmap(mapping + 2 * page_size_,
+           page_size_,
+           PROT_NONE,
+           MAP_SHARED | MAP_FIXED,
+           fd,
+           // Map a different offset just to
+           // better test real-world conditions.
+           page_size_));
+  ASSERT_TRUE(inside_mapping);
+
+  LinuxPtraceDumperChildTest::SetUp();
+}
+
+TEST_F(LinuxPtraceDumperMappingsTest, MergedMappings) {
+  // Now check that LinuxPtraceDumper interpreted the mappings properly.
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+  int mapping_count = 0;
+  for (unsigned i = 0; i < dumper.mappings().size(); ++i) {
+    const MappingInfo& mapping = *dumper.mappings()[i];
+    if (strcmp(mapping.name, this->helper_path_.c_str()) == 0) {
+      // This mapping should encompass the entire original mapped
+      // range.
+      EXPECT_EQ(reinterpret_cast<uintptr_t>(this->helper_.mapping()),
+                mapping.start_addr);
+      EXPECT_EQ(this->helper_.size(), mapping.size);
+      EXPECT_EQ(0U, mapping.offset);
+      mapping_count++;
+    }
+  }
+  EXPECT_EQ(1, mapping_count);
+}
+
+TEST_F(LinuxPtraceDumperChildTest, BuildProcPath) {
+  const pid_t pid = getppid();
+  LinuxPtraceDumper dumper(pid);
+
+  char maps_path[NAME_MAX] = "";
+  char maps_path_expected[NAME_MAX];
+  snprintf(maps_path_expected, sizeof(maps_path_expected),
+           "/proc/%d/maps", pid);
+  EXPECT_TRUE(dumper.BuildProcPath(maps_path, pid, "maps"));
+  EXPECT_STREQ(maps_path_expected, maps_path);
+
+  EXPECT_FALSE(dumper.BuildProcPath(NULL, pid, "maps"));
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, 0, "maps"));
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, pid, ""));
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, pid, NULL));
+
+  char long_node[NAME_MAX];
+  size_t long_node_len = NAME_MAX - strlen("/proc/123") - 1;
+  memset(long_node, 'a', long_node_len);
+  long_node[long_node_len] = '\0';
+  EXPECT_FALSE(dumper.BuildProcPath(maps_path, 123, long_node));
+}
+
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+// Ensure that the linux-gate VDSO is included in the mapping list.
+TEST_F(LinuxPtraceDumperChildTest, MappingsIncludeLinuxGate) {
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+
+  void* linux_gate_loc =
+    reinterpret_cast<void*>(dumper.auxv()[AT_SYSINFO_EHDR]);
+  ASSERT_TRUE(linux_gate_loc);
+  bool found_linux_gate = false;
+
+  const wasteful_vector<MappingInfo*> mappings = dumper.mappings();
+  const MappingInfo* mapping;
+  for (unsigned i = 0; i < mappings.size(); ++i) {
+    mapping = mappings[i];
+    if (!strcmp(mapping->name, kLinuxGateLibraryName)) {
+      found_linux_gate = true;
+      break;
+    }
+  }
+  EXPECT_TRUE(found_linux_gate);
+  EXPECT_EQ(linux_gate_loc, reinterpret_cast<void*>(mapping->start_addr));
+  EXPECT_EQ(0, memcmp(linux_gate_loc, ELFMAG, SELFMAG));
+}
+
+// Ensure that the linux-gate VDSO can generate a non-zeroed File ID.
+TEST_F(LinuxPtraceDumperChildTest, LinuxGateMappingID) {
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+
+  bool found_linux_gate = false;
+  const wasteful_vector<MappingInfo*> mappings = dumper.mappings();
+  unsigned index = 0;
+  for (unsigned i = 0; i < mappings.size(); ++i) {
+    if (!strcmp(mappings[i]->name, kLinuxGateLibraryName)) {
+      found_linux_gate = true;
+      index = i;
+      break;
+    }
+  }
+  ASSERT_TRUE(found_linux_gate);
+
+  // Need to suspend the child so ptrace actually works.
+  ASSERT_TRUE(dumper.ThreadsSuspend());
+  id_vector identifier(make_vector());
+  ASSERT_TRUE(dumper.ElfFileIdentifierForMapping(*mappings[index],
+                                                 true,
+                                                 index,
+                                                 identifier));
+
+  id_vector empty_identifier(make_vector());
+  empty_identifier.resize(kDefaultBuildIdSize, 0);
+  EXPECT_NE(empty_identifier, identifier);
+  EXPECT_TRUE(dumper.ThreadsResume());
+}
+#endif
+
+TEST_F(LinuxPtraceDumperChildTest, FileIDsMatch) {
+  // Calculate the File ID of our binary using both
+  // FileID::ElfFileIdentifier and LinuxDumper::ElfFileIdentifierForMapping
+  // and ensure that we get the same result from both.
+  char exe_name[PATH_MAX];
+  ASSERT_TRUE(SafeReadLink("/proc/self/exe", exe_name));
+
+  LinuxPtraceDumper dumper(getppid());
+  ASSERT_TRUE(dumper.Init());
+  const wasteful_vector<MappingInfo*> mappings = dumper.mappings();
+  bool found_exe = false;
+  unsigned i;
+  for (i = 0; i < mappings.size(); ++i) {
+    const MappingInfo* mapping = mappings[i];
+    if (!strcmp(mapping->name, exe_name)) {
+      found_exe = true;
+      break;
+    }
+  }
+  ASSERT_TRUE(found_exe);
+
+  id_vector identifier1(make_vector());
+  id_vector identifier2(make_vector());
+  EXPECT_TRUE(dumper.ElfFileIdentifierForMapping(*mappings[i], true, i,
+                                                 identifier1));
+  FileID fileid(exe_name);
+  EXPECT_TRUE(fileid.ElfFileIdentifier(identifier2));
+
+  string identifier_string1 =
+      FileID::ConvertIdentifierToUUIDString(identifier1);
+  string identifier_string2 =
+      FileID::ConvertIdentifierToUUIDString(identifier2);
+  EXPECT_EQ(identifier_string1, identifier_string2);
+}
+
+/* Get back to normal behavior of TEST*() macros wrt TestBody. */
+#undef TestBody
+
+TEST(LinuxPtraceDumperTest, VerifyStackReadWithMultipleThreads) {
+  static const size_t kNumberOfThreadsInHelperProgram = 5;
+
+  pid_t child_pid = SetupChildProcess(kNumberOfThreadsInHelperProgram);
+  ASSERT_NE(child_pid, -1);
+
+  // Children are ready now.
+  LinuxPtraceDumper dumper(child_pid);
+  ASSERT_TRUE(dumper.Init());
+#if defined(THREAD_SANITIZER)
+  EXPECT_GE(dumper.threads().size(), (size_t)kNumberOfThreadsInHelperProgram);
+#else
+  EXPECT_EQ(dumper.threads().size(), (size_t)kNumberOfThreadsInHelperProgram);
+#endif
+  EXPECT_TRUE(dumper.ThreadsSuspend());
+
+  ThreadInfo one_thread;
+  size_t matching_threads = 0;
+  for (size_t i = 0; i < dumper.threads().size(); ++i) {
+    EXPECT_TRUE(dumper.GetThreadInfoByIndex(i, &one_thread));
+    const void* stack;
+    size_t stack_len;
+    EXPECT_TRUE(dumper.GetStackInfo(&stack, &stack_len,
+        one_thread.stack_pointer));
+    // In the helper program, we stored a pointer to the thread id in a
+    // specific register. Check that we can recover its value.
+#if defined(__ARM_EABI__)
+    pid_t* process_tid_location = (pid_t*)(one_thread.regs.uregs[3]);
+#elif defined(__aarch64__)
+    pid_t* process_tid_location = (pid_t*)(one_thread.regs.regs[3]);
+#elif defined(__i386)
+    pid_t* process_tid_location = (pid_t*)(one_thread.regs.ecx);
+#elif defined(__x86_64)
+    pid_t* process_tid_location = (pid_t*)(one_thread.regs.rcx);
+#elif defined(__mips__)
+    pid_t* process_tid_location =
+        reinterpret_cast<pid_t*>(one_thread.mcontext.gregs[1]);
+#else
+#error This test has not been ported to this platform.
+#endif
+    pid_t one_thread_id;
+    dumper.CopyFromProcess(&one_thread_id,
+                           dumper.threads()[i],
+                           process_tid_location,
+                           4);
+    matching_threads += (dumper.threads()[i] == one_thread_id) ? 1 : 0;
+  }
+  EXPECT_EQ(matching_threads, kNumberOfThreadsInHelperProgram);
+  EXPECT_TRUE(dumper.ThreadsResume());
+  kill(child_pid, SIGKILL);
+
+  // Reap child
+  int status;
+  ASSERT_NE(-1, HANDLE_EINTR(waitpid(child_pid, &status, 0)));
+  ASSERT_TRUE(WIFSIGNALED(status));
+  ASSERT_EQ(SIGKILL, WTERMSIG(status));
+}
+
+TEST_F(LinuxPtraceDumperTest, SanitizeStackCopy) {
+  static const size_t kNumberOfThreadsInHelperProgram = 1;
+
+  pid_t child_pid = SetupChildProcess(kNumberOfThreadsInHelperProgram);
+  ASSERT_NE(child_pid, -1);
+
+  LinuxPtraceDumper dumper(child_pid);
+  ASSERT_TRUE(dumper.Init());
+  EXPECT_TRUE(dumper.ThreadsSuspend());
+
+  ThreadInfo thread_info;
+  EXPECT_TRUE(dumper.GetThreadInfoByIndex(0, &thread_info));
+
+  const uintptr_t defaced =
+#if defined(__LP64__)
+      0x0defaced0defaced;
+#else
+      0x0defaced;
+#endif
+
+  uintptr_t simulated_stack[2];
+
+  // Pointers into the stack shouldn't be sanitized.
+  memset(simulated_stack, 0xff, sizeof(simulated_stack));
+  simulated_stack[1] = thread_info.stack_pointer;
+  dumper.SanitizeStackCopy(reinterpret_cast<uint8_t*>(&simulated_stack),
+                           sizeof(simulated_stack), thread_info.stack_pointer,
+                           sizeof(uintptr_t));
+  ASSERT_NE(simulated_stack[1], defaced);
+
+  // Memory prior to the stack pointer should be cleared.
+  ASSERT_EQ(simulated_stack[0], 0u);
+
+  // Small integers should not be sanitized.
+  for (int i = -4096; i <= 4096; ++i) {
+    memset(simulated_stack, 0, sizeof(simulated_stack));
+    simulated_stack[0] = static_cast<uintptr_t>(i);
+    dumper.SanitizeStackCopy(reinterpret_cast<uint8_t*>(&simulated_stack),
+                             sizeof(simulated_stack), thread_info.stack_pointer,
+                             0u);
+    ASSERT_NE(simulated_stack[0], defaced);
+  }
+
+  // The instruction pointer definitely should point into an executable mapping.
+  const MappingInfo* mapping_info = dumper.FindMappingNoBias(
+      reinterpret_cast<uintptr_t>(thread_info.GetInstructionPointer()));
+  ASSERT_NE(mapping_info, nullptr);
+  ASSERT_TRUE(mapping_info->exec);
+
+  // Pointers to code shouldn't be sanitized.
+  memset(simulated_stack, 0, sizeof(simulated_stack));
+  simulated_stack[1] = thread_info.GetInstructionPointer();
+  dumper.SanitizeStackCopy(reinterpret_cast<uint8_t*>(&simulated_stack),
+                           sizeof(simulated_stack), thread_info.stack_pointer,
+                           0u);
+  ASSERT_NE(simulated_stack[0], defaced);
+
+  // String fragments should be sanitized.
+  memcpy(simulated_stack, "abcdefghijklmnop", sizeof(simulated_stack));
+  dumper.SanitizeStackCopy(reinterpret_cast<uint8_t*>(&simulated_stack),
+                           sizeof(simulated_stack), thread_info.stack_pointer,
+                           0u);
+  ASSERT_EQ(simulated_stack[0], defaced);
+  ASSERT_EQ(simulated_stack[1], defaced);
+
+  // Heap pointers should be sanititzed.
+#if defined(__ARM_EABI__)
+  uintptr_t heap_addr = thread_info.regs.uregs[3];
+#elif defined(__aarch64__)
+  uintptr_t heap_addr = thread_info.regs.regs[3];
+#elif defined(__i386)
+  uintptr_t heap_addr = thread_info.regs.ecx;
+#elif defined(__x86_64)
+  uintptr_t heap_addr = thread_info.regs.rcx;
+#elif defined(__mips__)
+  uintptr_t heap_addr = thread_info.mcontext.gregs[1];
+#else
+#error This test has not been ported to this platform.
+#endif
+  memset(simulated_stack, 0, sizeof(simulated_stack));
+  simulated_stack[0] = heap_addr;
+  dumper.SanitizeStackCopy(reinterpret_cast<uint8_t*>(&simulated_stack),
+                           sizeof(simulated_stack), thread_info.stack_pointer,
+                           0u);
+  ASSERT_EQ(simulated_stack[0], defaced);
+
+  EXPECT_TRUE(dumper.ThreadsResume());
+  kill(child_pid, SIGKILL);
+
+  // Reap child.
+  int status;
+  ASSERT_NE(-1, HANDLE_EINTR(waitpid(child_pid, &status, 0)));
+  ASSERT_TRUE(WIFSIGNALED(status));
+  ASSERT_EQ(SIGKILL, WTERMSIG(status));
+}
diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
new file mode 100644
index 0000000..32634ef
--- /dev/null
+++ b/src/client/linux/minidump_writer/minidump_writer.cc
@@ -0,0 +1,1509 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This code writes out minidump files:
+//   http://msdn.microsoft.com/en-us/library/ms680378(VS.85,loband).aspx
+//
+// Minidumps are a Microsoft format which Breakpad uses for recording crash
+// dumps. This code has to run in a compromised environment (the address space
+// may have received SIGSEGV), thus the following rules apply:
+//   * You may not enter the dynamic linker. This means that we cannot call
+//     any symbols in a shared library (inc libc). Because of this we replace
+//     libc functions in linux_libc_support.h.
+//   * You may not call syscalls via the libc wrappers. This rule is a subset
+//     of the first rule but it bears repeating. We have direct wrappers
+//     around the system calls in linux_syscall_support.h.
+//   * You may not malloc. There's an alternative allocator in memory.h and
+//     a canonical instance in the LinuxDumper object. We use the placement
+//     new form to allocate objects and we don't delete them.
+
+#include "client/linux/handler/minidump_descriptor.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "client/minidump_file_writer-inl.h"
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <link.h>
+#include <stdio.h>
+#if defined(__ANDROID__)
+#include <sys/system_properties.h>
+#endif
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+#include <sys/utsname.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <algorithm>
+
+#include "client/linux/dump_writer_common/thread_info.h"
+#include "client/linux/dump_writer_common/ucontext_reader.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/minidump_writer/cpu_set.h"
+#include "client/linux/minidump_writer/line_reader.h"
+#include "client/linux/minidump_writer/linux_dumper.h"
+#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+#include "client/linux/minidump_writer/proc_cpuinfo_reader.h"
+#include "client/minidump_file_writer.h"
+#include "common/linux/file_id.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/minidump_type_helper.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace {
+
+using google_breakpad::AppMemoryList;
+using google_breakpad::auto_wasteful_vector;
+using google_breakpad::ExceptionHandler;
+using google_breakpad::CpuSet;
+using google_breakpad::kDefaultBuildIdSize;
+using google_breakpad::LineReader;
+using google_breakpad::LinuxDumper;
+using google_breakpad::LinuxPtraceDumper;
+using google_breakpad::MDTypeHelper;
+using google_breakpad::MappingEntry;
+using google_breakpad::MappingInfo;
+using google_breakpad::MappingList;
+using google_breakpad::MinidumpFileWriter;
+using google_breakpad::PageAllocator;
+using google_breakpad::ProcCpuInfoReader;
+using google_breakpad::RawContextCPU;
+using google_breakpad::ThreadInfo;
+using google_breakpad::TypedMDRVA;
+using google_breakpad::UContextReader;
+using google_breakpad::UntypedMDRVA;
+using google_breakpad::wasteful_vector;
+
+typedef MDTypeHelper<sizeof(void*)>::MDRawDebug MDRawDebug;
+typedef MDTypeHelper<sizeof(void*)>::MDRawLinkMap MDRawLinkMap;
+
+class MinidumpWriter {
+ public:
+  // The following kLimit* constants are for when minidump_size_limit_ is set
+  // and the minidump size might exceed it.
+  //
+  // Estimate for how big each thread's stack will be (in bytes).
+  static const unsigned kLimitAverageThreadStackLength = 8 * 1024;
+  // Number of threads whose stack size we don't want to limit.  These base
+  // threads will simply be the first N threads returned by the dumper (although
+  // the crashing thread will never be limited).  Threads beyond this count are
+  // the extra threads.
+  static const unsigned kLimitBaseThreadCount = 20;
+  // Maximum stack size to dump for any extra thread (in bytes).
+  static const unsigned kLimitMaxExtraThreadStackLen = 2 * 1024;
+  // Make sure this number of additional bytes can fit in the minidump
+  // (exclude the stack data).
+  static const unsigned kLimitMinidumpFudgeFactor = 64 * 1024;
+
+  MinidumpWriter(const char* minidump_path,
+                 int minidump_fd,
+                 const ExceptionHandler::CrashContext* context,
+                 const MappingList& mappings,
+                 const AppMemoryList& appmem,
+                 bool skip_stacks_if_mapping_unreferenced,
+                 uintptr_t principal_mapping_address,
+                 bool sanitize_stacks,
+                 LinuxDumper* dumper)
+      : fd_(minidump_fd),
+        path_(minidump_path),
+        ucontext_(context ? &context->context : NULL),
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+        float_state_(context ? &context->float_state : NULL),
+#endif
+        dumper_(dumper),
+        minidump_size_limit_(-1),
+        memory_blocks_(dumper_->allocator()),
+        mapping_list_(mappings),
+        app_memory_list_(appmem),
+        skip_stacks_if_mapping_unreferenced_(
+            skip_stacks_if_mapping_unreferenced),
+        principal_mapping_address_(principal_mapping_address),
+        principal_mapping_(nullptr),
+    sanitize_stacks_(sanitize_stacks) {
+    // Assert there should be either a valid fd or a valid path, not both.
+    assert(fd_ != -1 || minidump_path);
+    assert(fd_ == -1 || !minidump_path);
+  }
+
+  bool Init() {
+    if (!dumper_->Init())
+      return false;
+
+    if (!dumper_->ThreadsSuspend() || !dumper_->LateInit())
+      return false;
+
+    if (skip_stacks_if_mapping_unreferenced_) {
+      principal_mapping_ =
+          dumper_->FindMappingNoBias(principal_mapping_address_);
+      if (!CrashingThreadReferencesPrincipalMapping())
+        return false;
+    }
+
+    if (fd_ != -1)
+      minidump_writer_.SetFile(fd_);
+    else if (!minidump_writer_.Open(path_))
+      return false;
+
+    return true;
+  }
+
+  ~MinidumpWriter() {
+    // Don't close the file descriptor when it's been provided explicitly.
+    // Callers might still need to use it.
+    if (fd_ == -1)
+      minidump_writer_.Close();
+    dumper_->ThreadsResume();
+  }
+
+  bool CrashingThreadReferencesPrincipalMapping() {
+    if (!ucontext_ || !principal_mapping_)
+      return false;
+
+    const uintptr_t low_addr =
+        principal_mapping_->system_mapping_info.start_addr;
+    const uintptr_t high_addr =
+        principal_mapping_->system_mapping_info.end_addr;
+
+    const uintptr_t stack_pointer = UContextReader::GetStackPointer(ucontext_);
+    const uintptr_t pc = UContextReader::GetInstructionPointer(ucontext_);
+
+    if (pc >= low_addr && pc < high_addr)
+      return true;
+
+    uint8_t* stack_copy;
+    const void* stack;
+    size_t stack_len;
+
+    if (!dumper_->GetStackInfo(&stack, &stack_len, stack_pointer))
+      return false;
+
+    stack_copy = reinterpret_cast<uint8_t*>(Alloc(stack_len));
+    dumper_->CopyFromProcess(stack_copy, GetCrashThread(), stack, stack_len);
+
+    uintptr_t stack_pointer_offset =
+        stack_pointer - reinterpret_cast<uintptr_t>(stack);
+
+    return dumper_->StackHasPointerToMapping(
+        stack_copy, stack_len, stack_pointer_offset, *principal_mapping_);
+  }
+
+  bool Dump() {
+    // A minidump file contains a number of tagged streams. This is the number
+    // of stream which we write.
+    unsigned kNumWriters = 13;
+
+    TypedMDRVA<MDRawDirectory> dir(&minidump_writer_);
+    {
+      // Ensure the header gets flushed, as that happens in the destructor.
+      // If a crash occurs somewhere below, at least the header will be
+      // intact.
+      TypedMDRVA<MDRawHeader> header(&minidump_writer_);
+      if (!header.Allocate())
+        return false;
+
+      if (!dir.AllocateArray(kNumWriters))
+        return false;
+
+      my_memset(header.get(), 0, sizeof(MDRawHeader));
+
+      header.get()->signature = MD_HEADER_SIGNATURE;
+      header.get()->version = MD_HEADER_VERSION;
+      header.get()->time_date_stamp = time(NULL);
+      header.get()->stream_count = kNumWriters;
+      header.get()->stream_directory_rva = dir.position();
+    }
+
+    unsigned dir_index = 0;
+    MDRawDirectory dirent;
+
+    if (!WriteThreadListStream(&dirent))
+      return false;
+    dir.CopyIndex(dir_index++, &dirent);
+
+    if (!WriteMappings(&dirent))
+      return false;
+    dir.CopyIndex(dir_index++, &dirent);
+
+    if (!WriteAppMemory())
+      return false;
+
+    if (!WriteMemoryListStream(&dirent))
+      return false;
+    dir.CopyIndex(dir_index++, &dirent);
+
+    if (!WriteExceptionStream(&dirent))
+      return false;
+    dir.CopyIndex(dir_index++, &dirent);
+
+    if (!WriteSystemInfoStream(&dirent))
+      return false;
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_CPU_INFO;
+    if (!WriteFile(&dirent.location, "/proc/cpuinfo"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_PROC_STATUS;
+    if (!WriteProcFile(&dirent.location, GetCrashThread(), "status"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_LSB_RELEASE;
+    if (!WriteFile(&dirent.location, "/etc/lsb-release"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_CMD_LINE;
+    if (!WriteProcFile(&dirent.location, GetCrashThread(), "cmdline"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_ENVIRON;
+    if (!WriteProcFile(&dirent.location, GetCrashThread(), "environ"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_AUXV;
+    if (!WriteProcFile(&dirent.location, GetCrashThread(), "auxv"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_MAPS;
+    if (!WriteProcFile(&dirent.location, GetCrashThread(), "maps"))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    dirent.stream_type = MD_LINUX_DSO_DEBUG;
+    if (!WriteDSODebugStream(&dirent))
+      NullifyDirectoryEntry(&dirent);
+    dir.CopyIndex(dir_index++, &dirent);
+
+    // If you add more directory entries, don't forget to update kNumWriters,
+    // above.
+
+    dumper_->ThreadsResume();
+    return true;
+  }
+
+  bool FillThreadStack(MDRawThread* thread, uintptr_t stack_pointer,
+                       uintptr_t pc, int max_stack_len, uint8_t** stack_copy) {
+    *stack_copy = NULL;
+    const void* stack;
+    size_t stack_len;
+
+    thread->stack.start_of_memory_range = stack_pointer;
+    thread->stack.memory.data_size = 0;
+    thread->stack.memory.rva = minidump_writer_.position();
+
+    if (dumper_->GetStackInfo(&stack, &stack_len, stack_pointer)) {
+      if (max_stack_len >= 0 &&
+          stack_len > static_cast<unsigned int>(max_stack_len)) {
+        stack_len = max_stack_len;
+        // Skip empty chunks of length max_stack_len.
+        uintptr_t int_stack = reinterpret_cast<uintptr_t>(stack);
+        if (max_stack_len > 0) {
+          while (int_stack + max_stack_len < stack_pointer) {
+            int_stack += max_stack_len;
+          }
+        }
+        stack = reinterpret_cast<const void*>(int_stack);
+      }
+      *stack_copy = reinterpret_cast<uint8_t*>(Alloc(stack_len));
+      dumper_->CopyFromProcess(*stack_copy, thread->thread_id, stack,
+                               stack_len);
+
+      uintptr_t stack_pointer_offset =
+          stack_pointer - reinterpret_cast<uintptr_t>(stack);
+      if (skip_stacks_if_mapping_unreferenced_) {
+        if (!principal_mapping_) {
+          return true;
+        }
+        uintptr_t low_addr = principal_mapping_->system_mapping_info.start_addr;
+        uintptr_t high_addr = principal_mapping_->system_mapping_info.end_addr;
+        if ((pc < low_addr || pc > high_addr) &&
+            !dumper_->StackHasPointerToMapping(*stack_copy, stack_len,
+                                               stack_pointer_offset,
+                                               *principal_mapping_)) {
+          return true;
+        }
+      }
+
+      if (sanitize_stacks_) {
+        dumper_->SanitizeStackCopy(*stack_copy, stack_len, stack_pointer,
+                                   stack_pointer_offset);
+      }
+
+      UntypedMDRVA memory(&minidump_writer_);
+      if (!memory.Allocate(stack_len))
+        return false;
+      memory.Copy(*stack_copy, stack_len);
+      thread->stack.start_of_memory_range = reinterpret_cast<uintptr_t>(stack);
+      thread->stack.memory = memory.location();
+      memory_blocks_.push_back(thread->stack);
+    }
+    return true;
+  }
+
+  // Write information about the threads.
+  bool WriteThreadListStream(MDRawDirectory* dirent) {
+    const unsigned num_threads = dumper_->threads().size();
+
+    TypedMDRVA<uint32_t> list(&minidump_writer_);
+    if (!list.AllocateObjectAndArray(num_threads, sizeof(MDRawThread)))
+      return false;
+
+    dirent->stream_type = MD_THREAD_LIST_STREAM;
+    dirent->location = list.location();
+
+    *list.get() = num_threads;
+
+    // If there's a minidump size limit, check if it might be exceeded.  Since
+    // most of the space is filled with stack data, just check against that.
+    // If this expects to exceed the limit, set extra_thread_stack_len such
+    // that any thread beyond the first kLimitBaseThreadCount threads will
+    // have only kLimitMaxExtraThreadStackLen bytes dumped.
+    int extra_thread_stack_len = -1;  // default to no maximum
+    if (minidump_size_limit_ >= 0) {
+      const unsigned estimated_total_stack_size = num_threads *
+          kLimitAverageThreadStackLength;
+      const off_t estimated_minidump_size = minidump_writer_.position() +
+          estimated_total_stack_size + kLimitMinidumpFudgeFactor;
+      if (estimated_minidump_size > minidump_size_limit_)
+        extra_thread_stack_len = kLimitMaxExtraThreadStackLen;
+    }
+
+    for (unsigned i = 0; i < num_threads; ++i) {
+      MDRawThread thread;
+      my_memset(&thread, 0, sizeof(thread));
+      thread.thread_id = dumper_->threads()[i];
+
+      // We have a different source of information for the crashing thread. If
+      // we used the actual state of the thread we would find it running in the
+      // signal handler with the alternative stack, which would be deeply
+      // unhelpful.
+      if (static_cast<pid_t>(thread.thread_id) == GetCrashThread() &&
+          ucontext_ &&
+          !dumper_->IsPostMortem()) {
+        uint8_t* stack_copy;
+        const uintptr_t stack_ptr = UContextReader::GetStackPointer(ucontext_);
+        if (!FillThreadStack(&thread, stack_ptr,
+                             UContextReader::GetInstructionPointer(ucontext_),
+                             -1, &stack_copy))
+          return false;
+
+        // Copy 256 bytes around crashing instruction pointer to minidump.
+        const size_t kIPMemorySize = 256;
+        uint64_t ip = UContextReader::GetInstructionPointer(ucontext_);
+        // Bound it to the upper and lower bounds of the memory map
+        // it's contained within. If it's not in mapped memory,
+        // don't bother trying to write it.
+        bool ip_is_mapped = false;
+        MDMemoryDescriptor ip_memory_d;
+        for (unsigned j = 0; j < dumper_->mappings().size(); ++j) {
+          const MappingInfo& mapping = *dumper_->mappings()[j];
+          if (ip >= mapping.start_addr &&
+              ip < mapping.start_addr + mapping.size) {
+            ip_is_mapped = true;
+            // Try to get 128 bytes before and after the IP, but
+            // settle for whatever's available.
+            ip_memory_d.start_of_memory_range =
+              std::max(mapping.start_addr,
+                       uintptr_t(ip - (kIPMemorySize / 2)));
+            uintptr_t end_of_range =
+              std::min(uintptr_t(ip + (kIPMemorySize / 2)),
+                       uintptr_t(mapping.start_addr + mapping.size));
+            ip_memory_d.memory.data_size =
+              end_of_range - ip_memory_d.start_of_memory_range;
+            break;
+          }
+        }
+
+        if (ip_is_mapped) {
+          UntypedMDRVA ip_memory(&minidump_writer_);
+          if (!ip_memory.Allocate(ip_memory_d.memory.data_size))
+            return false;
+          uint8_t* memory_copy =
+              reinterpret_cast<uint8_t*>(Alloc(ip_memory_d.memory.data_size));
+          dumper_->CopyFromProcess(
+              memory_copy,
+              thread.thread_id,
+              reinterpret_cast<void*>(ip_memory_d.start_of_memory_range),
+              ip_memory_d.memory.data_size);
+          ip_memory.Copy(memory_copy, ip_memory_d.memory.data_size);
+          ip_memory_d.memory = ip_memory.location();
+          memory_blocks_.push_back(ip_memory_d);
+        }
+
+        TypedMDRVA<RawContextCPU> cpu(&minidump_writer_);
+        if (!cpu.Allocate())
+          return false;
+        my_memset(cpu.get(), 0, sizeof(RawContextCPU));
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+        UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_);
+#else
+        UContextReader::FillCPUContext(cpu.get(), ucontext_);
+#endif
+        thread.thread_context = cpu.location();
+        crashing_thread_context_ = cpu.location();
+      } else {
+        ThreadInfo info;
+        if (!dumper_->GetThreadInfoByIndex(i, &info))
+          return false;
+
+        uint8_t* stack_copy;
+        int max_stack_len = -1;  // default to no maximum for this thread
+        if (minidump_size_limit_ >= 0 && i >= kLimitBaseThreadCount)
+          max_stack_len = extra_thread_stack_len;
+        if (!FillThreadStack(&thread, info.stack_pointer,
+                             info.GetInstructionPointer(), max_stack_len,
+                             &stack_copy))
+          return false;
+
+        TypedMDRVA<RawContextCPU> cpu(&minidump_writer_);
+        if (!cpu.Allocate())
+          return false;
+        my_memset(cpu.get(), 0, sizeof(RawContextCPU));
+        info.FillCPUContext(cpu.get());
+        thread.thread_context = cpu.location();
+        if (dumper_->threads()[i] == GetCrashThread()) {
+          crashing_thread_context_ = cpu.location();
+          if (!dumper_->IsPostMortem()) {
+            // This is the crashing thread of a live process, but
+            // no context was provided, so set the crash address
+            // while the instruction pointer is already here.
+            dumper_->set_crash_address(info.GetInstructionPointer());
+          }
+        }
+      }
+
+      list.CopyIndexAfterObject(i, &thread, sizeof(thread));
+    }
+
+    return true;
+  }
+
+  // Write application-provided memory regions.
+  bool WriteAppMemory() {
+    for (AppMemoryList::const_iterator iter = app_memory_list_.begin();
+         iter != app_memory_list_.end();
+         ++iter) {
+      uint8_t* data_copy =
+        reinterpret_cast<uint8_t*>(dumper_->allocator()->Alloc(iter->length));
+      dumper_->CopyFromProcess(data_copy, GetCrashThread(), iter->ptr,
+                               iter->length);
+
+      UntypedMDRVA memory(&minidump_writer_);
+      if (!memory.Allocate(iter->length)) {
+        return false;
+      }
+      memory.Copy(data_copy, iter->length);
+      MDMemoryDescriptor desc;
+      desc.start_of_memory_range = reinterpret_cast<uintptr_t>(iter->ptr);
+      desc.memory = memory.location();
+      memory_blocks_.push_back(desc);
+    }
+
+    return true;
+  }
+
+  static bool ShouldIncludeMapping(const MappingInfo& mapping) {
+    if (mapping.name[0] == 0 ||  // only want modules with filenames.
+        // Only want to include one mapping per shared lib.
+        // Avoid filtering executable mappings.
+        (mapping.offset != 0 && !mapping.exec) ||
+        mapping.size < 4096) {  // too small to get a signature for.
+      return false;
+    }
+
+    return true;
+  }
+
+  // If there is caller-provided information about this mapping
+  // in the mapping_list_ list, return true. Otherwise, return false.
+  bool HaveMappingInfo(const MappingInfo& mapping) {
+    for (MappingList::const_iterator iter = mapping_list_.begin();
+         iter != mapping_list_.end();
+         ++iter) {
+      // Ignore any mappings that are wholly contained within
+      // mappings in the mapping_info_ list.
+      if (mapping.start_addr >= iter->first.start_addr &&
+          (mapping.start_addr + mapping.size) <=
+          (iter->first.start_addr + iter->first.size)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  // Write information about the mappings in effect. Because we are using the
+  // minidump format, the information about the mappings is pretty limited.
+  // Because of this, we also include the full, unparsed, /proc/$x/maps file in
+  // another stream in the file.
+  bool WriteMappings(MDRawDirectory* dirent) {
+    const unsigned num_mappings = dumper_->mappings().size();
+    unsigned num_output_mappings = mapping_list_.size();
+
+    for (unsigned i = 0; i < dumper_->mappings().size(); ++i) {
+      const MappingInfo& mapping = *dumper_->mappings()[i];
+      if (ShouldIncludeMapping(mapping) && !HaveMappingInfo(mapping))
+        num_output_mappings++;
+    }
+
+    TypedMDRVA<uint32_t> list(&minidump_writer_);
+    if (num_output_mappings) {
+      if (!list.AllocateObjectAndArray(num_output_mappings, MD_MODULE_SIZE))
+        return false;
+    } else {
+      // Still create the module list stream, although it will have zero
+      // modules.
+      if (!list.Allocate())
+        return false;
+    }
+
+    dirent->stream_type = MD_MODULE_LIST_STREAM;
+    dirent->location = list.location();
+    *list.get() = num_output_mappings;
+
+    // First write all the mappings from the dumper
+    unsigned int j = 0;
+    for (unsigned i = 0; i < num_mappings; ++i) {
+      const MappingInfo& mapping = *dumper_->mappings()[i];
+      if (!ShouldIncludeMapping(mapping) || HaveMappingInfo(mapping))
+        continue;
+
+      MDRawModule mod;
+      if (!FillRawModule(mapping, true, i, &mod, NULL))
+        return false;
+      list.CopyIndexAfterObject(j++, &mod, MD_MODULE_SIZE);
+    }
+    // Next write all the mappings provided by the caller
+    for (MappingList::const_iterator iter = mapping_list_.begin();
+         iter != mapping_list_.end();
+         ++iter) {
+      MDRawModule mod;
+      if (!FillRawModule(iter->first, false, 0, &mod, iter->second))
+        return false;
+      list.CopyIndexAfterObject(j++, &mod, MD_MODULE_SIZE);
+    }
+
+    return true;
+  }
+
+  // Fill the MDRawModule |mod| with information about the provided
+  // |mapping|. If |identifier| is non-NULL, use it instead of calculating
+  // a file ID from the mapping.
+  bool FillRawModule(const MappingInfo& mapping,
+                     bool member,
+                     unsigned int mapping_id,
+                     MDRawModule* mod,
+                     const uint8_t* identifier) {
+    my_memset(mod, 0, MD_MODULE_SIZE);
+
+    mod->base_of_image = mapping.start_addr;
+    mod->size_of_image = mapping.size;
+
+    auto_wasteful_vector<uint8_t, kDefaultBuildIdSize> identifier_bytes(
+        dumper_->allocator());
+
+    if (identifier) {
+      // GUID was provided by caller.
+      identifier_bytes.insert(identifier_bytes.end(),
+                              identifier,
+                              identifier + sizeof(MDGUID));
+    } else {
+      // Note: ElfFileIdentifierForMapping() can manipulate the |mapping.name|.
+      dumper_->ElfFileIdentifierForMapping(mapping,
+                                           member,
+                                           mapping_id,
+                                           identifier_bytes);
+    }
+
+    if (!identifier_bytes.empty()) {
+      UntypedMDRVA cv(&minidump_writer_);
+      if (!cv.Allocate(MDCVInfoELF_minsize + identifier_bytes.size()))
+        return false;
+
+      const uint32_t cv_signature = MD_CVINFOELF_SIGNATURE;
+      cv.Copy(&cv_signature, sizeof(cv_signature));
+      cv.Copy(cv.position() + sizeof(cv_signature), &identifier_bytes[0],
+              identifier_bytes.size());
+
+      mod->cv_record = cv.location();
+    }
+
+    char file_name[NAME_MAX];
+    char file_path[NAME_MAX];
+    dumper_->GetMappingEffectiveNameAndPath(
+        mapping, file_path, sizeof(file_path), file_name, sizeof(file_name));
+
+    MDLocationDescriptor ld;
+    if (!minidump_writer_.WriteString(file_path, my_strlen(file_path), &ld))
+      return false;
+    mod->module_name_rva = ld.rva;
+    return true;
+  }
+
+  bool WriteMemoryListStream(MDRawDirectory* dirent) {
+    TypedMDRVA<uint32_t> list(&minidump_writer_);
+    if (memory_blocks_.size()) {
+      if (!list.AllocateObjectAndArray(memory_blocks_.size(),
+                                       sizeof(MDMemoryDescriptor)))
+        return false;
+    } else {
+      // Still create the memory list stream, although it will have zero
+      // memory blocks.
+      if (!list.Allocate())
+        return false;
+    }
+
+    dirent->stream_type = MD_MEMORY_LIST_STREAM;
+    dirent->location = list.location();
+
+    *list.get() = memory_blocks_.size();
+
+    for (size_t i = 0; i < memory_blocks_.size(); ++i) {
+      list.CopyIndexAfterObject(i, &memory_blocks_[i],
+                                sizeof(MDMemoryDescriptor));
+    }
+    return true;
+  }
+
+  bool WriteExceptionStream(MDRawDirectory* dirent) {
+    TypedMDRVA<MDRawExceptionStream> exc(&minidump_writer_);
+    if (!exc.Allocate())
+      return false;
+
+    MDRawExceptionStream* stream = exc.get();
+    my_memset(stream, 0, sizeof(MDRawExceptionStream));
+
+    dirent->stream_type = MD_EXCEPTION_STREAM;
+    dirent->location = exc.location();
+
+    stream->thread_id = GetCrashThread();
+    stream->exception_record.exception_code = dumper_->crash_signal();
+    stream->exception_record.exception_flags = dumper_->crash_signal_code();
+    stream->exception_record.exception_address = dumper_->crash_address();
+    const std::vector<uint64_t> crash_exception_info =
+        dumper_->crash_exception_info();
+    stream->exception_record.number_parameters = crash_exception_info.size();
+    memcpy(stream->exception_record.exception_information,
+           crash_exception_info.data(),
+           sizeof(uint64_t) * crash_exception_info.size());
+    stream->thread_context = crashing_thread_context_;
+
+    return true;
+  }
+
+  bool WriteSystemInfoStream(MDRawDirectory* dirent) {
+    TypedMDRVA<MDRawSystemInfo> si(&minidump_writer_);
+    if (!si.Allocate())
+      return false;
+    my_memset(si.get(), 0, sizeof(MDRawSystemInfo));
+
+    dirent->stream_type = MD_SYSTEM_INFO_STREAM;
+    dirent->location = si.location();
+
+    WriteCPUInformation(si.get());
+    WriteOSInformation(si.get());
+
+    return true;
+  }
+
+  bool WriteDSODebugStream(MDRawDirectory* dirent) {
+    ElfW(Phdr)* phdr = reinterpret_cast<ElfW(Phdr)*>(dumper_->auxv()[AT_PHDR]);
+    char* base;
+    int phnum = dumper_->auxv()[AT_PHNUM];
+    if (!phnum || !phdr)
+      return false;
+
+    // Assume the program base is at the beginning of the same page as the PHDR
+    base = reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(phdr) & ~0xfff);
+
+    // Search for the program PT_DYNAMIC segment
+    ElfW(Addr) dyn_addr = 0;
+    for (; phnum >= 0; phnum--, phdr++) {
+      ElfW(Phdr) ph;
+      if (!dumper_->CopyFromProcess(&ph, GetCrashThread(), phdr, sizeof(ph)))
+        return false;
+
+      // Adjust base address with the virtual address of the PT_LOAD segment
+      // corresponding to offset 0
+      if (ph.p_type == PT_LOAD && ph.p_offset == 0) {
+        base -= ph.p_vaddr;
+      }
+      if (ph.p_type == PT_DYNAMIC) {
+        dyn_addr = ph.p_vaddr;
+      }
+    }
+    if (!dyn_addr)
+      return false;
+
+    ElfW(Dyn)* dynamic = reinterpret_cast<ElfW(Dyn)*>(dyn_addr + base);
+
+    // The dynamic linker makes information available that helps gdb find all
+    // DSOs loaded into the program. If this information is indeed available,
+    // dump it to a MD_LINUX_DSO_DEBUG stream.
+    struct r_debug* r_debug = NULL;
+    uint32_t dynamic_length = 0;
+
+    for (int i = 0; ; ++i) {
+      ElfW(Dyn) dyn;
+      dynamic_length += sizeof(dyn);
+      if (!dumper_->CopyFromProcess(&dyn, GetCrashThread(), dynamic + i,
+                                    sizeof(dyn))) {
+        return false;
+      }
+
+#ifdef __mips__
+      const int32_t debug_tag = DT_MIPS_RLD_MAP;
+#else
+      const int32_t debug_tag = DT_DEBUG;
+#endif
+      if (dyn.d_tag == debug_tag) {
+        r_debug = reinterpret_cast<struct r_debug*>(dyn.d_un.d_ptr);
+        continue;
+      } else if (dyn.d_tag == DT_NULL) {
+        break;
+      }
+    }
+
+    // The "r_map" field of that r_debug struct contains a linked list of all
+    // loaded DSOs.
+    // Our list of DSOs potentially is different from the ones in the crashing
+    // process. So, we have to be careful to never dereference pointers
+    // directly. Instead, we use CopyFromProcess() everywhere.
+    // See <link.h> for a more detailed discussion of the how the dynamic
+    // loader communicates with debuggers.
+
+    // Count the number of loaded DSOs
+    int dso_count = 0;
+    struct r_debug debug_entry;
+    if (!dumper_->CopyFromProcess(&debug_entry, GetCrashThread(), r_debug,
+                                  sizeof(debug_entry))) {
+      return false;
+    }
+    for (struct link_map* ptr = debug_entry.r_map; ptr; ) {
+      struct link_map map;
+      if (!dumper_->CopyFromProcess(&map, GetCrashThread(), ptr, sizeof(map)))
+        return false;
+
+      ptr = map.l_next;
+      dso_count++;
+    }
+
+    MDRVA linkmap_rva = minidump_writer_.kInvalidMDRVA;
+    if (dso_count > 0) {
+      // If we have at least one DSO, create an array of MDRawLinkMap
+      // entries in the minidump file.
+      TypedMDRVA<MDRawLinkMap> linkmap(&minidump_writer_);
+      if (!linkmap.AllocateArray(dso_count))
+        return false;
+      linkmap_rva = linkmap.location().rva;
+      int idx = 0;
+
+      // Iterate over DSOs and write their information to mini dump
+      for (struct link_map* ptr = debug_entry.r_map; ptr; ) {
+        struct link_map map;
+        if (!dumper_->CopyFromProcess(&map, GetCrashThread(), ptr, sizeof(map)))
+          return  false;
+
+        ptr = map.l_next;
+        char filename[257] = { 0 };
+        if (map.l_name) {
+          dumper_->CopyFromProcess(filename, GetCrashThread(), map.l_name,
+                                   sizeof(filename) - 1);
+        }
+        MDLocationDescriptor location;
+        if (!minidump_writer_.WriteString(filename, 0, &location))
+          return false;
+        MDRawLinkMap entry;
+        entry.name = location.rva;
+        entry.addr = map.l_addr;
+        entry.ld = reinterpret_cast<uintptr_t>(map.l_ld);
+        linkmap.CopyIndex(idx++, &entry);
+      }
+    }
+
+    // Write MD_LINUX_DSO_DEBUG record
+    TypedMDRVA<MDRawDebug> debug(&minidump_writer_);
+    if (!debug.AllocateObjectAndArray(1, dynamic_length))
+      return false;
+    my_memset(debug.get(), 0, sizeof(MDRawDebug));
+    dirent->stream_type = MD_LINUX_DSO_DEBUG;
+    dirent->location = debug.location();
+
+    debug.get()->version = debug_entry.r_version;
+    debug.get()->map = linkmap_rva;
+    debug.get()->dso_count = dso_count;
+    debug.get()->brk = debug_entry.r_brk;
+    debug.get()->ldbase = debug_entry.r_ldbase;
+    debug.get()->dynamic = reinterpret_cast<uintptr_t>(dynamic);
+
+    wasteful_vector<char> dso_debug_data(dumper_->allocator(), dynamic_length);
+    // The passed-in size to the constructor (above) is only a hint.
+    // Must call .resize() to do actual initialization of the elements.
+    dso_debug_data.resize(dynamic_length);
+    dumper_->CopyFromProcess(&dso_debug_data[0], GetCrashThread(), dynamic,
+                             dynamic_length);
+    debug.CopyIndexAfterObject(0, &dso_debug_data[0], dynamic_length);
+
+    return true;
+  }
+
+  void set_minidump_size_limit(off_t limit) { minidump_size_limit_ = limit; }
+
+ private:
+  void* Alloc(unsigned bytes) {
+    return dumper_->allocator()->Alloc(bytes);
+  }
+
+  pid_t GetCrashThread() const {
+    return dumper_->crash_thread();
+  }
+
+  void NullifyDirectoryEntry(MDRawDirectory* dirent) {
+    dirent->stream_type = 0;
+    dirent->location.data_size = 0;
+    dirent->location.rva = 0;
+  }
+
+#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+  bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
+    char vendor_id[sizeof(sys_info->cpu.x86_cpu_info.vendor_id) + 1] = {0};
+    static const char vendor_id_name[] = "vendor_id";
+
+    struct CpuInfoEntry {
+      const char* info_name;
+      int value;
+      bool found;
+    } cpu_info_table[] = {
+      { "processor", -1, false },
+#if defined(__i386__) || defined(__x86_64__)
+      { "model", 0, false },
+      { "stepping",  0, false },
+      { "cpu family", 0, false },
+#endif
+    };
+
+    // processor_architecture should always be set, do this first
+    sys_info->processor_architecture =
+#if defined(__mips__)
+# if _MIPS_SIM == _ABIO32
+        MD_CPU_ARCHITECTURE_MIPS;
+# elif _MIPS_SIM == _ABI64
+        MD_CPU_ARCHITECTURE_MIPS64;
+# else
+#  error "This mips ABI is currently not supported (n32)"
+#endif
+#elif defined(__i386__)
+        MD_CPU_ARCHITECTURE_X86;
+#else
+        MD_CPU_ARCHITECTURE_AMD64;
+#endif
+
+    const int fd = sys_open("/proc/cpuinfo", O_RDONLY, 0);
+    if (fd < 0)
+      return false;
+
+    {
+      PageAllocator allocator;
+      ProcCpuInfoReader* const reader = new(allocator) ProcCpuInfoReader(fd);
+      const char* field;
+      while (reader->GetNextField(&field)) {
+        bool is_first_entry = true;
+        for (CpuInfoEntry& entry : cpu_info_table) {
+          if (!is_first_entry && entry.found) {
+            // except for the 'processor' field, ignore repeated values.
+            continue;
+          }
+          is_first_entry = false;
+          if (!my_strcmp(field, entry.info_name)) {
+            size_t value_len;
+            const char* value = reader->GetValueAndLen(&value_len);
+            if (value_len == 0)
+              continue;
+
+            uintptr_t val;
+            if (my_read_decimal_ptr(&val, value) == value)
+              continue;
+
+            entry.value = static_cast<int>(val);
+            entry.found = true;
+          }
+        }
+
+        // special case for vendor_id
+        if (!my_strcmp(field, vendor_id_name)) {
+          size_t value_len;
+          const char* value = reader->GetValueAndLen(&value_len);
+          if (value_len > 0)
+            my_strlcpy(vendor_id, value, sizeof(vendor_id));
+        }
+      }
+      sys_close(fd);
+    }
+
+    // make sure we got everything we wanted
+    for (const CpuInfoEntry& entry : cpu_info_table) {
+      if (!entry.found) {
+        return false;
+      }
+    }
+    // cpu_info_table[0] holds the last cpu id listed in /proc/cpuinfo,
+    // assuming this is the highest id, change it to the number of CPUs
+    // by adding one.
+    cpu_info_table[0].value++;
+
+    sys_info->number_of_processors = cpu_info_table[0].value;
+#if defined(__i386__) || defined(__x86_64__)
+    sys_info->processor_level      = cpu_info_table[3].value;
+    sys_info->processor_revision   = cpu_info_table[1].value << 8 |
+                                     cpu_info_table[2].value;
+#endif
+
+    if (vendor_id[0] != '\0') {
+      my_memcpy(sys_info->cpu.x86_cpu_info.vendor_id, vendor_id,
+                sizeof(sys_info->cpu.x86_cpu_info.vendor_id));
+    }
+    return true;
+  }
+#elif defined(__arm__) || defined(__aarch64__)
+  bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
+    // The CPUID value is broken up in several entries in /proc/cpuinfo.
+    // This table is used to rebuild it from the entries.
+    const struct CpuIdEntry {
+      const char* field;
+      char        format;
+      char        bit_lshift;
+      char        bit_length;
+    } cpu_id_entries[] = {
+      { "CPU implementer", 'x', 24, 8 },
+      { "CPU variant", 'x', 20, 4 },
+      { "CPU part", 'x', 4, 12 },
+      { "CPU revision", 'd', 0, 4 },
+    };
+
+    // The ELF hwcaps are listed in the "Features" entry as textual tags.
+    // This table is used to rebuild them.
+    const struct CpuFeaturesEntry {
+      const char* tag;
+      uint32_t hwcaps;
+    } cpu_features_entries[] = {
+#if defined(__arm__)
+      { "swp",  MD_CPU_ARM_ELF_HWCAP_SWP },
+      { "half", MD_CPU_ARM_ELF_HWCAP_HALF },
+      { "thumb", MD_CPU_ARM_ELF_HWCAP_THUMB },
+      { "26bit", MD_CPU_ARM_ELF_HWCAP_26BIT },
+      { "fastmult", MD_CPU_ARM_ELF_HWCAP_FAST_MULT },
+      { "fpa", MD_CPU_ARM_ELF_HWCAP_FPA },
+      { "vfp", MD_CPU_ARM_ELF_HWCAP_VFP },
+      { "edsp", MD_CPU_ARM_ELF_HWCAP_EDSP },
+      { "java", MD_CPU_ARM_ELF_HWCAP_JAVA },
+      { "iwmmxt", MD_CPU_ARM_ELF_HWCAP_IWMMXT },
+      { "crunch", MD_CPU_ARM_ELF_HWCAP_CRUNCH },
+      { "thumbee", MD_CPU_ARM_ELF_HWCAP_THUMBEE },
+      { "neon", MD_CPU_ARM_ELF_HWCAP_NEON },
+      { "vfpv3", MD_CPU_ARM_ELF_HWCAP_VFPv3 },
+      { "vfpv3d16", MD_CPU_ARM_ELF_HWCAP_VFPv3D16 },
+      { "tls", MD_CPU_ARM_ELF_HWCAP_TLS },
+      { "vfpv4", MD_CPU_ARM_ELF_HWCAP_VFPv4 },
+      { "idiva", MD_CPU_ARM_ELF_HWCAP_IDIVA },
+      { "idivt", MD_CPU_ARM_ELF_HWCAP_IDIVT },
+      { "idiv", MD_CPU_ARM_ELF_HWCAP_IDIVA | MD_CPU_ARM_ELF_HWCAP_IDIVT },
+#elif defined(__aarch64__)
+      // No hwcaps on aarch64.
+#endif
+    };
+
+    // processor_architecture should always be set, do this first
+    sys_info->processor_architecture =
+#if defined(__aarch64__)
+        MD_CPU_ARCHITECTURE_ARM64_OLD;
+#else
+        MD_CPU_ARCHITECTURE_ARM;
+#endif
+
+    // /proc/cpuinfo is not readable under various sandboxed environments
+    // (e.g. Android services with the android:isolatedProcess attribute)
+    // prepare for this by setting default values now, which will be
+    // returned when this happens.
+    //
+    // Note: Bogus values are used to distinguish between failures (to
+    //       read /sys and /proc files) and really badly configured kernels.
+    sys_info->number_of_processors = 0;
+    sys_info->processor_level = 1U;  // There is no ARMv1
+    sys_info->processor_revision = 42;
+    sys_info->cpu.arm_cpu_info.cpuid = 0;
+    sys_info->cpu.arm_cpu_info.elf_hwcaps = 0;
+
+    // Counting the number of CPUs involves parsing two sysfs files,
+    // because the content of /proc/cpuinfo will only mirror the number
+    // of 'online' cores, and thus will vary with time.
+    // See http://www.kernel.org/doc/Documentation/cputopology.txt
+    {
+      CpuSet cpus_present;
+      CpuSet cpus_possible;
+
+      int fd = sys_open("/sys/devices/system/cpu/present", O_RDONLY, 0);
+      if (fd >= 0) {
+        cpus_present.ParseSysFile(fd);
+        sys_close(fd);
+
+        fd = sys_open("/sys/devices/system/cpu/possible", O_RDONLY, 0);
+        if (fd >= 0) {
+          cpus_possible.ParseSysFile(fd);
+          sys_close(fd);
+
+          cpus_present.IntersectWith(cpus_possible);
+          int cpu_count = cpus_present.GetCount();
+          if (cpu_count > 255)
+            cpu_count = 255;
+          sys_info->number_of_processors = static_cast<uint8_t>(cpu_count);
+        }
+      }
+    }
+
+    // Parse /proc/cpuinfo to reconstruct the CPUID value, as well
+    // as the ELF hwcaps field. For the latter, it would be easier to
+    // read /proc/self/auxv but unfortunately, this file is not always
+    // readable from regular Android applications on later versions
+    // (>= 4.1) of the Android platform.
+    const int fd = sys_open("/proc/cpuinfo", O_RDONLY, 0);
+    if (fd < 0) {
+      // Do not return false here to allow the minidump generation
+      // to happen properly.
+      return true;
+    }
+
+    {
+      PageAllocator allocator;
+      ProcCpuInfoReader* const reader =
+          new(allocator) ProcCpuInfoReader(fd);
+      const char* field;
+      while (reader->GetNextField(&field)) {
+        for (const CpuIdEntry& entry : cpu_id_entries) {
+          if (my_strcmp(entry.field, field) != 0)
+            continue;
+          uintptr_t result = 0;
+          const char* value = reader->GetValue();
+          const char* p = value;
+          if (value[0] == '0' && value[1] == 'x') {
+            p = my_read_hex_ptr(&result, value+2);
+          } else if (entry.format == 'x') {
+            p = my_read_hex_ptr(&result, value);
+          } else {
+            p = my_read_decimal_ptr(&result, value);
+          }
+          if (p == value)
+            continue;
+
+          result &= (1U << entry.bit_length)-1;
+          result <<= entry.bit_lshift;
+          sys_info->cpu.arm_cpu_info.cpuid |=
+              static_cast<uint32_t>(result);
+        }
+#if defined(__arm__)
+        // Get the architecture version from the "Processor" field.
+        // Note that it is also available in the "CPU architecture" field,
+        // however, some existing kernels are misconfigured and will report
+        // invalid values here (e.g. 6, while the CPU is ARMv7-A based).
+        // The "Processor" field doesn't have this issue.
+        if (!my_strcmp(field, "Processor")) {
+          size_t value_len;
+          const char* value = reader->GetValueAndLen(&value_len);
+          // Expected format: <text> (v<level><endian>)
+          // Where <text> is some text like "ARMv7 Processor rev 2"
+          // and <level> is a decimal corresponding to the ARM
+          // architecture number. <endian> is either 'l' or 'b'
+          // and corresponds to the endianess, it is ignored here.
+          while (value_len > 0 && my_isspace(value[value_len-1]))
+            value_len--;
+
+          size_t nn = value_len;
+          while (nn > 0 && value[nn-1] != '(')
+            nn--;
+          if (nn > 0 && value[nn] == 'v') {
+            uintptr_t arch_level = 5;
+            my_read_decimal_ptr(&arch_level, value + nn + 1);
+            sys_info->processor_level = static_cast<uint16_t>(arch_level);
+          }
+        }
+#elif defined(__aarch64__)
+        // The aarch64 architecture does not provide the architecture level
+        // in the Processor field, so we instead check the "CPU architecture"
+        // field.
+        if (!my_strcmp(field, "CPU architecture")) {
+          uintptr_t arch_level = 0;
+          const char* value = reader->GetValue();
+          const char* p = value;
+          p = my_read_decimal_ptr(&arch_level, value);
+          if (p == value)
+            continue;
+          sys_info->processor_level = static_cast<uint16_t>(arch_level);
+        }
+#endif
+        // Rebuild the ELF hwcaps from the 'Features' field.
+        if (!my_strcmp(field, "Features")) {
+          size_t value_len;
+          const char* value = reader->GetValueAndLen(&value_len);
+
+          // Parse each space-separated tag.
+          while (value_len > 0) {
+            const char* tag = value;
+            size_t tag_len = value_len;
+            const char* p = my_strchr(tag, ' ');
+            if (p) {
+              tag_len = static_cast<size_t>(p - tag);
+              value += tag_len + 1;
+              value_len -= tag_len + 1;
+            } else {
+              tag_len = strlen(tag);
+              value_len = 0;
+            }
+            for (const CpuFeaturesEntry& entry : cpu_features_entries) {
+              if (tag_len == strlen(entry.tag) &&
+                  !memcmp(tag, entry.tag, tag_len)) {
+                sys_info->cpu.arm_cpu_info.elf_hwcaps |= entry.hwcaps;
+                break;
+              }
+            }
+          }
+        }
+      }
+      sys_close(fd);
+    }
+
+    return true;
+  }
+#else
+#  error "Unsupported CPU"
+#endif
+
+  bool WriteFile(MDLocationDescriptor* result, const char* filename) {
+    const int fd = sys_open(filename, O_RDONLY, 0);
+    if (fd < 0)
+      return false;
+
+    // We can't stat the files because several of the files that we want to
+    // read are kernel seqfiles, which always have a length of zero. So we have
+    // to read as much as we can into a buffer.
+    static const unsigned kBufSize = 1024 - 2*sizeof(void*);
+    struct Buffers {
+      Buffers* next;
+      size_t len;
+      uint8_t data[kBufSize];
+    }* buffers = reinterpret_cast<Buffers*>(Alloc(sizeof(Buffers)));
+    buffers->next = NULL;
+    buffers->len = 0;
+
+    size_t total = 0;
+    for (Buffers* bufptr = buffers;;) {
+      ssize_t r;
+      do {
+        r = sys_read(fd, &bufptr->data[bufptr->len], kBufSize - bufptr->len);
+      } while (r == -1 && errno == EINTR);
+
+      if (r < 1)
+        break;
+
+      total += r;
+      bufptr->len += r;
+      if (bufptr->len == kBufSize) {
+        bufptr->next = reinterpret_cast<Buffers*>(Alloc(sizeof(Buffers)));
+        bufptr = bufptr->next;
+        bufptr->next = NULL;
+        bufptr->len = 0;
+      }
+    }
+    sys_close(fd);
+
+    if (!total)
+      return false;
+
+    UntypedMDRVA memory(&minidump_writer_);
+    if (!memory.Allocate(total))
+      return false;
+    for (MDRVA pos = memory.position(); buffers; buffers = buffers->next) {
+      // Check for special case of a zero-length buffer.  This should only
+      // occur if a file's size happens to be a multiple of the buffer's
+      // size, in which case the final sys_read() will have resulted in
+      // zero bytes being read after the final buffer was just allocated.
+      if (buffers->len == 0) {
+        // This can only occur with final buffer.
+        assert(buffers->next == NULL);
+        continue;
+      }
+      memory.Copy(pos, &buffers->data, buffers->len);
+      pos += buffers->len;
+    }
+    *result = memory.location();
+    return true;
+  }
+
+  bool WriteOSInformation(MDRawSystemInfo* sys_info) {
+#if defined(__ANDROID__)
+    sys_info->platform_id = MD_OS_ANDROID;
+#else
+    sys_info->platform_id = MD_OS_LINUX;
+#endif
+
+    struct utsname uts;
+    if (uname(&uts))
+      return false;
+
+    static const size_t buf_len = 512;
+    char buf[buf_len] = {0};
+    size_t space_left = buf_len - 1;
+    const char* info_table[] = {
+      uts.sysname,
+      uts.release,
+      uts.version,
+      uts.machine,
+      NULL
+    };
+    bool first_item = true;
+    for (const char** cur_info = info_table; *cur_info; cur_info++) {
+      static const char separator[] = " ";
+      size_t separator_len = sizeof(separator) - 1;
+      size_t info_len = my_strlen(*cur_info);
+      if (info_len == 0)
+        continue;
+
+      if (space_left < info_len + (first_item ? 0 : separator_len))
+        break;
+
+      if (!first_item) {
+        my_strlcat(buf, separator, sizeof(buf));
+        space_left -= separator_len;
+      }
+
+      first_item = false;
+      my_strlcat(buf, *cur_info, sizeof(buf));
+      space_left -= info_len;
+    }
+
+    MDLocationDescriptor location;
+    if (!minidump_writer_.WriteString(buf, 0, &location))
+      return false;
+    sys_info->csd_version_rva = location.rva;
+
+    return true;
+  }
+
+  bool WriteProcFile(MDLocationDescriptor* result, pid_t pid,
+                     const char* filename) {
+    char buf[NAME_MAX];
+    if (!dumper_->BuildProcPath(buf, pid, filename))
+      return false;
+    return WriteFile(result, buf);
+  }
+
+  // Only one of the 2 member variables below should be set to a valid value.
+  const int fd_;  // File descriptor where the minidum should be written.
+  const char* path_;  // Path to the file where the minidum should be written.
+
+  const ucontext_t* const ucontext_;  // also from the signal handler
+#if !defined(__ARM_EABI__) && !defined(__mips__)
+  const google_breakpad::fpstate_t* const float_state_;  // ditto
+#endif
+  LinuxDumper* dumper_;
+  MinidumpFileWriter minidump_writer_;
+  off_t minidump_size_limit_;
+  MDLocationDescriptor crashing_thread_context_;
+  // Blocks of memory written to the dump. These are all currently
+  // written while writing the thread list stream, but saved here
+  // so a memory list stream can be written afterwards.
+  wasteful_vector<MDMemoryDescriptor> memory_blocks_;
+  // Additional information about some mappings provided by the caller.
+  const MappingList& mapping_list_;
+  // Additional memory regions to be included in the dump,
+  // provided by the caller.
+  const AppMemoryList& app_memory_list_;
+  // If set, skip recording any threads that do not reference the
+  // mapping containing principal_mapping_address_.
+  bool skip_stacks_if_mapping_unreferenced_;
+  uintptr_t principal_mapping_address_;
+  const MappingInfo* principal_mapping_;
+  // If true, apply stack sanitization to stored stack data.
+  bool sanitize_stacks_;
+};
+
+
+bool WriteMinidumpImpl(const char* minidump_path,
+                       int minidump_fd,
+                       off_t minidump_size_limit,
+                       pid_t crashing_process,
+                       const void* blob, size_t blob_size,
+                       const MappingList& mappings,
+                       const AppMemoryList& appmem,
+                       bool skip_stacks_if_mapping_unreferenced,
+                       uintptr_t principal_mapping_address,
+                       bool sanitize_stacks) {
+  LinuxPtraceDumper dumper(crashing_process);
+  const ExceptionHandler::CrashContext* context = NULL;
+  if (blob) {
+    if (blob_size != sizeof(ExceptionHandler::CrashContext))
+      return false;
+    context = reinterpret_cast<const ExceptionHandler::CrashContext*>(blob);
+    dumper.SetCrashInfoFromSigInfo(context->siginfo);
+    dumper.set_crash_thread(context->tid);
+  }
+  MinidumpWriter writer(minidump_path, minidump_fd, context, mappings,
+                        appmem, skip_stacks_if_mapping_unreferenced,
+                        principal_mapping_address, sanitize_stacks, &dumper);
+  // Set desired limit for file size of minidump (-1 means no limit).
+  writer.set_minidump_size_limit(minidump_size_limit);
+  if (!writer.Init())
+    return false;
+  return writer.Dump();
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(minidump_path, -1, -1,
+                           crashing_process, blob, blob_size,
+                           MappingList(), AppMemoryList(),
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(int minidump_fd, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(NULL, minidump_fd, -1,
+                           crashing_process, blob, blob_size,
+                           MappingList(), AppMemoryList(),
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(const char* minidump_path, pid_t process,
+                   pid_t process_blamed_thread) {
+  LinuxPtraceDumper dumper(process);
+  // MinidumpWriter will set crash address
+  dumper.set_crash_signal(MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED);
+  dumper.set_crash_thread(process_blamed_thread);
+  MappingList mapping_list;
+  AppMemoryList app_memory_list;
+  MinidumpWriter writer(minidump_path, -1, NULL, mapping_list,
+                        app_memory_list, false, 0, false, &dumper);
+  if (!writer.Init())
+    return false;
+  return writer.Dump();
+}
+
+bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appmem,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(minidump_path, -1, -1, crashing_process,
+                           blob, blob_size,
+                           mappings, appmem,
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(int minidump_fd, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appmem,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(NULL, minidump_fd, -1, crashing_process,
+                           blob, blob_size,
+                           mappings, appmem,
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(const char* minidump_path, off_t minidump_size_limit,
+                   pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appmem,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(minidump_path, -1, minidump_size_limit,
+                           crashing_process, blob, blob_size,
+                           mappings, appmem,
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(int minidump_fd, off_t minidump_size_limit,
+                   pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appmem,
+                   bool skip_stacks_if_mapping_unreferenced,
+                   uintptr_t principal_mapping_address,
+                   bool sanitize_stacks) {
+  return WriteMinidumpImpl(NULL, minidump_fd, minidump_size_limit,
+                           crashing_process, blob, blob_size,
+                           mappings, appmem,
+                           skip_stacks_if_mapping_unreferenced,
+                           principal_mapping_address,
+                           sanitize_stacks);
+}
+
+bool WriteMinidump(const char* filename,
+                   const MappingList& mappings,
+                   const AppMemoryList& appmem,
+                   LinuxDumper* dumper) {
+  MinidumpWriter writer(filename, -1, NULL, mappings, appmem,
+                        false, 0, false, dumper);
+  if (!writer.Init())
+    return false;
+  return writer.Dump();
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/minidump_writer/minidump_writer.h b/src/client/linux/minidump_writer/minidump_writer.h
new file mode 100644
index 0000000..e3b0b16
--- /dev/null
+++ b/src/client/linux/minidump_writer/minidump_writer.h
@@ -0,0 +1,143 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <unistd.h>
+
+#include <list>
+#include <type_traits>
+#include <utility>
+
+#include "client/linux/minidump_writer/linux_dumper.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+class ExceptionHandler;
+
+#if defined(__aarch64__)
+typedef struct fpsimd_context fpstate_t;
+#elif !defined(__ARM_EABI__) && !defined(__mips__)
+typedef std::remove_pointer<fpregset_t>::type fpstate_t;
+#endif
+
+// These entries store a list of memory regions that the client wants included
+// in the minidump.
+struct AppMemory {
+  void* ptr;
+  size_t length;
+
+  bool operator==(const struct AppMemory& other) const {
+    return ptr == other.ptr;
+  }
+
+  bool operator==(const void* other) const {
+    return ptr == other;
+  }
+};
+typedef std::list<AppMemory> AppMemoryList;
+
+// Writes a minidump to the filesystem. These functions do not malloc nor use
+// libc functions which may. Thus, it can be used in contexts where the state
+// of the heap may be corrupt.
+//   minidump_path: the path to the file to write to. This is opened O_EXCL and
+//     fails open fails.
+//   crashing_process: the pid of the crashing process. This must be trusted.
+//   blob: a blob of data from the crashing process. See exception_handler.h
+//   blob_size: the length of |blob|, in bytes
+//
+// Returns true iff successful.
+bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+// Same as above but takes an open file descriptor instead of a path.
+bool WriteMinidump(int minidump_fd, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+
+// Alternate form of WriteMinidump() that works with processes that
+// are not expected to have crashed.  If |process_blamed_thread| is
+// meaningful, it will be the one from which a crash signature is
+// extracted.  It is not expected that this function will be called
+// from a compromised context, but it is safe to do so.
+bool WriteMinidump(const char* minidump_path, pid_t process,
+                   pid_t process_blamed_thread);
+
+// These overloads also allow passing a list of known mappings and
+// a list of additional memory regions to be included in the minidump.
+bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appdata,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+bool WriteMinidump(int minidump_fd, pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appdata,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+
+// These overloads also allow passing a file size limit for the minidump.
+bool WriteMinidump(const char* minidump_path, off_t minidump_size_limit,
+                   pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appdata,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+bool WriteMinidump(int minidump_fd, off_t minidump_size_limit,
+                   pid_t crashing_process,
+                   const void* blob, size_t blob_size,
+                   const MappingList& mappings,
+                   const AppMemoryList& appdata,
+                   bool skip_stacks_if_mapping_unreferenced = false,
+                   uintptr_t principal_mapping_address = 0,
+                   bool sanitize_stacks = false);
+
+bool WriteMinidump(const char* filename,
+                   const MappingList& mappings,
+                   const AppMemoryList& appdata,
+                   LinuxDumper* dumper);
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
diff --git a/src/client/linux/minidump_writer/minidump_writer_unittest.cc b/src/client/linux/minidump_writer/minidump_writer_unittest.cc
new file mode 100644
index 0000000..d192e5c
--- /dev/null
+++ b/src/client/linux/minidump_writer/minidump_writer_unittest.cc
@@ -0,0 +1,934 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <fcntl.h>
+#include <poll.h>
+#include <sys/stat.h>
+#include <sys/syscall.h>
+#include <sys/types.h>
+#include <ucontext.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/linux/handler/exception_handler.h"
+#include "client/linux/minidump_writer/linux_dumper.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "client/linux/minidump_writer/minidump_writer_unittest_utils.h"
+#include "common/linux/breakpad_getcontext.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/file_id.h"
+#include "common/linux/ignore_ret.h"
+#include "common/linux/safe_readlink.h"
+#include "common/scoped_ptr.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/tests/file_utils.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/minidump.h"
+
+using namespace google_breakpad;
+
+namespace {
+
+typedef testing::Test MinidumpWriterTest;
+
+const char kMDWriterUnitTestFileName[] = "/minidump-writer-unittest";
+
+TEST(MinidumpWriterTest, SetupWithPath) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  // Set a non-zero tid to avoid tripping asserts.
+  context.tid = child;
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child, &context, sizeof(context)));
+  struct stat st;
+  ASSERT_EQ(0, stat(templ.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+TEST(MinidumpWriterTest, SetupWithFD) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    HANDLE_EINTR(read(fds[0], &b, sizeof(b)));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  int fd = open(templ.c_str(), O_CREAT | O_WRONLY, S_IRWXU);
+  // Set a non-zero tid to avoid tripping asserts.
+  context.tid = child;
+  ASSERT_TRUE(WriteMinidump(fd, child, &context, sizeof(context)));
+  struct stat st;
+  ASSERT_EQ(0, stat(templ.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that mapping info can be specified when writing a minidump,
+// and that it ends up in the module list of the minidump.
+TEST(MinidumpWriterTest, MappingInfo) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t memory_size = sysconf(_SC_PAGESIZE);
+  const char* kMemoryName = "a fake module";
+  const uint8_t kModuleGUID[sizeof(MDGUID)] = {
+    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
+  };
+  const string module_identifier = "33221100554477668899AABBCCDDEEFF0";
+
+  // Get some memory.
+  char* memory =
+    reinterpret_cast<char*>(mmap(NULL,
+                                 memory_size,
+                                 PROT_READ | PROT_WRITE,
+                                 MAP_PRIVATE | MAP_ANON,
+                                 -1,
+                                 0));
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+
+  // Add information about the mapped memory.
+  MappingInfo info;
+  info.start_addr = kMemoryAddress;
+  info.size = memory_size;
+  info.offset = 0;
+  info.exec = false;
+  strcpy(info.name, kMemoryName);
+
+  MappingList mappings;
+  AppMemoryList memory_list;
+  MappingEntry mapping;
+  mapping.first = info;
+  memcpy(mapping.second, kModuleGUID, sizeof(MDGUID));
+  mappings.push_back(mapping);
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child, &context, sizeof(context),
+                            mappings, memory_list, false, 0, false));
+
+  // Read the minidump. Load the module list, and ensure that
+  // the mmap'ed |memory| is listed with the given module name
+  // and debug ID.
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* module =
+    module_list->GetModuleForAddress(kMemoryAddress);
+  ASSERT_TRUE(module);
+
+  EXPECT_EQ(kMemoryAddress, module->base_address());
+  EXPECT_EQ(memory_size, module->size());
+  EXPECT_EQ(kMemoryName, module->code_file());
+  EXPECT_EQ(module_identifier, module->debug_identifier());
+
+  uint32_t len;
+  // These streams are expected to be there
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_THREAD_LIST_STREAM, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_MEMORY_LIST_STREAM, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_EXCEPTION_STREAM, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_SYSTEM_INFO_STREAM, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_CPU_INFO, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_PROC_STATUS, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_CMD_LINE, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_ENVIRON, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_AUXV, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_MAPS, &len));
+  EXPECT_TRUE(minidump.SeekToStreamType(MD_LINUX_DSO_DEBUG, &len));
+
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that minidumping is skipped while writing minidumps if principal mapping
+// is not referenced.
+TEST(MinidumpWriterTest, MinidumpSkippedIfRequested) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+
+  // pass an invalid principal mapping address, which will force
+  // WriteMinidump to not write a minidump.
+  ASSERT_FALSE(WriteMinidump(templ.c_str(), child, &context, sizeof(context),
+                            true, static_cast<uintptr_t>(0x0102030405060708ull),
+                            false));
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that minidumping is skipped while writing minidumps if principal mapping
+// is not referenced.
+TEST(MinidumpWriterTest, MinidumpStacksSkippedIfRequested) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+
+    // Create a thread that does not return, and only references libc (not the
+    // current executable). This thread should not be captured in the minidump.
+    pthread_t thread;
+    pthread_attr_t thread_attributes;
+    pthread_attr_init(&thread_attributes);
+    pthread_attr_setdetachstate(&thread_attributes, PTHREAD_CREATE_DETACHED);
+    sigset_t sigset;
+    sigemptyset(&sigset);
+    pthread_create(&thread, &thread_attributes,
+                   reinterpret_cast<void* (*)(void*)>(&sigsuspend), &sigset);
+
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+
+  // Pass an invalid principal mapping address, which will force
+  // WriteMinidump to not dump any thread stacks.
+  ASSERT_TRUE(WriteMinidump(
+      templ.c_str(), child, &context, sizeof(context), true,
+      reinterpret_cast<uintptr_t>(google_breakpad::WriteFile), false));
+
+  // Read the minidump. And ensure that thread memory was dumped only for the
+  // main thread.
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpThreadList* threads = minidump.GetThreadList();
+  int threads_with_stacks = 0;
+  for (unsigned int i = 0; i < threads->thread_count(); ++i) {
+    MinidumpThread* thread = threads->GetThreadAtIndex(i);
+    if (thread->GetMemory()) {
+      ++threads_with_stacks;
+    }
+  }
+#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
+  ASSERT_GE(threads_with_stacks, 1);
+#else
+  ASSERT_EQ(threads_with_stacks, 1);
+#endif
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that stacks can be sanitized while writing minidumps.
+TEST(MinidumpWriterTest, StacksAreSanitizedIfRequested) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  // pass an invalid principal mapping address, which will force
+  // WriteMinidump to not dump any thread stacks.
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child, &context, sizeof(context),
+                            false, 0, true));
+
+  // Read the minidump. And ensure that thread memory contains a defaced value.
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  const uintptr_t defaced =
+#if defined(__LP64__)
+      0x0defaced0defaced;
+#else
+      0x0defaced;
+#endif
+  MinidumpThreadList* threads = minidump.GetThreadList();
+  for (unsigned int i = 0; i < threads->thread_count(); ++i) {
+    MinidumpThread* thread = threads->GetThreadAtIndex(i);
+    MinidumpMemoryRegion* mem = thread->GetMemory();
+    ASSERT_TRUE(mem != nullptr);
+    uint32_t sz = mem->GetSize();
+    const uint8_t* data = mem->GetMemory();
+    ASSERT_TRUE(memmem(data, sz, &defaced, sizeof(defaced)) != nullptr);
+  }
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that a binary with a longer-than-usual build id note
+// makes its way all the way through to the minidump unscathed.
+// The linux_client_unittest is linked with an explicit --build-id
+// in Makefile.am.
+TEST(MinidumpWriterTest, BuildIDLong) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  const string dump_path = temp_dir.path() + kMDWriterUnitTestFileName;
+
+  EXPECT_TRUE(WriteMinidump(dump_path.c_str(),
+                            child, &context, sizeof(context)));
+  close(fds[1]);
+
+  // Read the minidump. Load the module list, and ensure that
+  // the main module has the correct debug id and code id.
+  Minidump minidump(dump_path);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* module = module_list->GetMainModule();
+  ASSERT_TRUE(module);
+  const string module_identifier = "030201000504070608090A0B0C0D0E0F0";
+  // This is passed explicitly to the linker in Makefile.am
+  const string build_id =
+      "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f";
+  EXPECT_EQ(module_identifier, module->debug_identifier());
+  EXPECT_EQ(build_id, module->code_identifier());
+
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that mapping info can be specified, and that it overrides
+// existing mappings that are wholly contained within the specified
+// range.
+TEST(MinidumpWriterTest, MappingInfoContained) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const int32_t memory_size = sysconf(_SC_PAGESIZE);
+  const char* kMemoryName = "a fake module";
+  const uint8_t kModuleGUID[sizeof(MDGUID)] = {
+    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
+  };
+  const string module_identifier = "33221100554477668899AABBCCDDEEFF0";
+
+  // mmap a file
+  AutoTempDir temp_dir;
+  string tempfile = temp_dir.path() + "/minidump-writer-unittest-temp";
+  int fd = open(tempfile.c_str(), O_RDWR | O_CREAT, 0);
+  ASSERT_NE(-1, fd);
+  unlink(tempfile.c_str());
+  // fill with zeros
+  google_breakpad::scoped_array<char> buffer(new char[memory_size]);
+  memset(buffer.get(), 0, memory_size);
+  ASSERT_EQ(memory_size, write(fd, buffer.get(), memory_size));
+  lseek(fd, 0, SEEK_SET);
+
+  char* memory =
+    reinterpret_cast<char*>(mmap(NULL,
+                                 memory_size,
+                                 PROT_READ | PROT_WRITE,
+                                 MAP_PRIVATE,
+                                 fd,
+                                 0));
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+  close(fd);
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    IGNORE_RET(HANDLE_EINTR(read(fds[0], &b, sizeof(b))));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+  context.tid = 1;
+
+  string dumpfile = temp_dir.path() + kMDWriterUnitTestFileName;
+
+  // Add information about the mapped memory. Report it as being larger than
+  // it actually is.
+  MappingInfo info;
+  info.start_addr = kMemoryAddress - memory_size;
+  info.size = memory_size * 3;
+  info.offset = 0;
+  info.exec = false;
+  strcpy(info.name, kMemoryName);
+
+  MappingList mappings;
+  AppMemoryList memory_list;
+  MappingEntry mapping;
+  mapping.first = info;
+  memcpy(mapping.second, kModuleGUID, sizeof(MDGUID));
+  mappings.push_back(mapping);
+  ASSERT_TRUE(WriteMinidump(dumpfile.c_str(), child, &context, sizeof(context),
+                            mappings, memory_list));
+
+  // Read the minidump. Load the module list, and ensure that
+  // the mmap'ed |memory| is listed with the given module name
+  // and debug ID.
+  Minidump minidump(dumpfile);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* module =
+    module_list->GetModuleForAddress(kMemoryAddress);
+  ASSERT_TRUE(module);
+
+  EXPECT_EQ(info.start_addr, module->base_address());
+  EXPECT_EQ(info.size, module->size());
+  EXPECT_EQ(kMemoryName, module->code_file());
+  EXPECT_EQ(module_identifier, module->debug_identifier());
+
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+TEST(MinidumpWriterTest, DeletedBinary) {
+  const string kNumberOfThreadsArgument = "1";
+  const string helper_path(GetHelperBinary());
+  if (helper_path.empty()) {
+    FAIL() << "Couldn't find helper binary";
+    exit(1);
+  }
+
+  // Copy binary to a temp file.
+  AutoTempDir temp_dir;
+  string binpath = temp_dir.path() + "/linux-dumper-unittest-helper";
+  ASSERT_TRUE(CopyFile(helper_path, binpath))
+      << "Failed to copy " << helper_path << " to " << binpath;
+  ASSERT_EQ(0, chmod(binpath.c_str(), 0755));
+
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  pid_t child_pid = fork();
+  if (child_pid == 0) {
+    // In child process.
+    close(fds[0]);
+
+    // Pass the pipe fd and the number of threads as arguments.
+    char pipe_fd_string[8];
+    sprintf(pipe_fd_string, "%d", fds[1]);
+    execl(binpath.c_str(),
+          binpath.c_str(),
+          pipe_fd_string,
+          kNumberOfThreadsArgument.c_str(),
+          NULL);
+  }
+  close(fds[1]);
+  // Wait for the child process to signal that it's ready.
+  struct pollfd pfd;
+  memset(&pfd, 0, sizeof(pfd));
+  pfd.fd = fds[0];
+  pfd.events = POLLIN | POLLERR;
+
+  const int r = HANDLE_EINTR(poll(&pfd, 1, 1000));
+  ASSERT_EQ(1, r);
+  ASSERT_TRUE(pfd.revents & POLLIN);
+  uint8_t junk;
+  const int nr = HANDLE_EINTR(read(fds[0], &junk, sizeof(junk)));
+  ASSERT_EQ(static_cast<ssize_t>(sizeof(junk)), nr);
+  close(fds[0]);
+
+  // Child is ready now.
+  // Unlink the test binary.
+  unlink(binpath.c_str());
+
+  ExceptionHandler::CrashContext context;
+  memset(&context, 0, sizeof(context));
+
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  // Set a non-zero tid to avoid tripping asserts.
+  context.tid = child_pid;
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child_pid, &context,
+                            sizeof(context)));
+  kill(child_pid, SIGKILL);
+
+  struct stat st;
+  ASSERT_EQ(0, stat(templ.c_str(), &st));
+  ASSERT_GT(st.st_size, 0);
+
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  // Check that the main module filename is correct.
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* module = module_list->GetMainModule();
+  EXPECT_STREQ(binpath.c_str(), module->code_file().c_str());
+  // Check that the file ID is correct.
+  FileID fileid(helper_path.c_str());
+  PageAllocator allocator;
+  wasteful_vector<uint8_t> identifier(&allocator, kDefaultBuildIdSize);
+  EXPECT_TRUE(fileid.ElfFileIdentifier(identifier));
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  string module_identifier(identifier_string);
+  // Strip out dashes
+  size_t pos;
+  while ((pos = module_identifier.find('-')) != string::npos) {
+    module_identifier.erase(pos, 1);
+  }
+  // And append a zero, because module IDs include an "age" field
+  // which is always zero on Linux.
+  module_identifier += "0";
+  EXPECT_EQ(module_identifier, module->debug_identifier());
+
+  IGNORE_EINTR(waitpid(child_pid, nullptr, 0));
+}
+
+// Test that an additional memory region can be added to the minidump.
+TEST(MinidumpWriterTest, AdditionalMemory) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = sysconf(_SC_PAGESIZE);
+
+  // Get some heap memory.
+  uint8_t* memory = new uint8_t[kMemorySize];
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  // Stick some data into the memory so the contents can be verified.
+  for (uint32_t i = 0; i < kMemorySize; ++i) {
+    memory[i] = i % 255;
+  }
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    HANDLE_EINTR(read(fds[0], &b, sizeof(b)));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+
+  // This needs a valid context for minidump writing to work, but getting
+  // a useful one from the child is too much work, so just use one from
+  // the parent since the child is just a forked copy anyway.
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  unlink(templ.c_str());
+
+  MappingList mappings;
+  AppMemoryList memory_list;
+
+  // Add the memory region to the list of memory to be included.
+  AppMemory app_memory;
+  app_memory.ptr = memory;
+  app_memory.length = kMemorySize;
+  memory_list.push_back(app_memory);
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child, &context, sizeof(context),
+                            mappings, memory_list));
+
+  // Read the minidump. Ensure that the memory region is present
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* dump_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(dump_memory_list);
+  const MinidumpMemoryRegion* region =
+    dump_memory_list->GetMemoryRegionForAddress(kMemoryAddress);
+  ASSERT_TRUE(region);
+
+  EXPECT_EQ(kMemoryAddress, region->GetBase());
+  EXPECT_EQ(kMemorySize, region->GetSize());
+
+  // Verify memory contents.
+  EXPECT_EQ(0, memcmp(region->GetMemory(), memory, kMemorySize));
+
+  delete[] memory;
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that an invalid thread stack pointer still results in a minidump.
+TEST(MinidumpWriterTest, InvalidStackPointer) {
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  const pid_t child = fork();
+  if (child == 0) {
+    close(fds[1]);
+    char b;
+    HANDLE_EINTR(read(fds[0], &b, sizeof(b)));
+    close(fds[0]);
+    syscall(__NR_exit_group);
+  }
+  close(fds[0]);
+
+  ExceptionHandler::CrashContext context;
+
+  // This needs a valid context for minidump writing to work, but getting
+  // a useful one from the child is too much work, so just use one from
+  // the parent since the child is just a forked copy anyway.
+  ASSERT_EQ(0, getcontext(&context.context));
+  context.tid = child;
+
+  // Fake the child's stack pointer for its crashing thread.  NOTE: This must
+  // be an invalid memory address for the child process (stack or otherwise).
+  // Try 1MB below the current stack.
+  uintptr_t invalid_stack_pointer =
+      reinterpret_cast<uintptr_t>(&context) - 1024*1024;
+#if defined(__i386)
+  context.context.uc_mcontext.gregs[REG_ESP] = invalid_stack_pointer;
+#elif defined(__x86_64)
+  context.context.uc_mcontext.gregs[REG_RSP] = invalid_stack_pointer;
+#elif defined(__ARM_EABI__)
+  context.context.uc_mcontext.arm_sp = invalid_stack_pointer;
+#elif defined(__aarch64__)
+  context.context.uc_mcontext.sp = invalid_stack_pointer;
+#elif defined(__mips__)
+  context.context.uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP] =
+      invalid_stack_pointer;
+#else
+# error "This code has not been ported to your platform yet."
+#endif
+
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + kMDWriterUnitTestFileName;
+  // NOTE: In previous versions of Breakpad, WriteMinidump() would fail if
+  // presented with an invalid stack pointer.
+  ASSERT_TRUE(WriteMinidump(templ.c_str(), child, &context, sizeof(context)));
+
+  // Read the minidump. Ensure that the memory region is present
+  Minidump minidump(templ);
+  ASSERT_TRUE(minidump.Read());
+
+  // TODO(ted.mielczarek,mkrebs): Enable this part of the test once
+  // https://breakpad.appspot.com/413002/ is committed.
+#if 0
+  // Make sure there's a thread without a stack.  NOTE: It's okay if
+  // GetThreadList() shows the error: "ERROR: MinidumpThread has a memory
+  // region problem".
+  MinidumpThreadList* dump_thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(dump_thread_list);
+  bool found_empty_stack = false;
+  for (int i = 0; i < dump_thread_list->thread_count(); i++) {
+    MinidumpThread* thread = dump_thread_list->GetThreadAtIndex(i);
+    ASSERT_TRUE(thread->thread() != NULL);
+    // When the stack size is zero bytes, GetMemory() returns NULL.
+    if (thread->GetMemory() == NULL) {
+      found_empty_stack = true;
+      break;
+    }
+  }
+  // NOTE: If you fail this, first make sure that "invalid_stack_pointer"
+  // above is indeed set to an invalid address.
+  ASSERT_TRUE(found_empty_stack);
+#endif
+
+  close(fds[1]);
+  IGNORE_EINTR(waitpid(child, nullptr, 0));
+}
+
+// Test that limiting the size of the minidump works.
+TEST(MinidumpWriterTest, MinidumpSizeLimit) {
+  static const int kNumberOfThreadsInHelperProgram = 40;
+
+  char number_of_threads_arg[3];
+  sprintf(number_of_threads_arg, "%d", kNumberOfThreadsInHelperProgram);
+
+  string helper_path(GetHelperBinary());
+  if (helper_path.empty()) {
+    FAIL() << "Couldn't find helper binary";
+    exit(1);
+  }
+
+  int fds[2];
+  ASSERT_NE(-1, pipe(fds));
+
+  pid_t child_pid = fork();
+  if (child_pid == 0) {
+    // In child process.
+    close(fds[0]);
+
+    // Pass the pipe fd and the number of threads as arguments.
+    char pipe_fd_string[8];
+    sprintf(pipe_fd_string, "%d", fds[1]);
+    execl(helper_path.c_str(),
+          helper_path.c_str(),
+          pipe_fd_string,
+          number_of_threads_arg,
+          NULL);
+  }
+  close(fds[1]);
+
+  // Wait for all child threads to indicate that they have started
+  for (int threads = 0; threads < kNumberOfThreadsInHelperProgram; threads++) {
+    struct pollfd pfd;
+    memset(&pfd, 0, sizeof(pfd));
+    pfd.fd = fds[0];
+    pfd.events = POLLIN | POLLERR;
+
+    const int r = HANDLE_EINTR(poll(&pfd, 1, 1000));
+    ASSERT_EQ(1, r);
+    ASSERT_TRUE(pfd.revents & POLLIN);
+    uint8_t junk;
+    ASSERT_EQ(read(fds[0], &junk, sizeof(junk)),
+              static_cast<ssize_t>(sizeof(junk)));
+  }
+  close(fds[0]);
+
+  // There is a race here because we may stop a child thread before
+  // it is actually running the busy loop. Empirically this sleep
+  // is sufficient to avoid the race.
+  usleep(100000);
+
+  // Child and its threads are ready now.
+
+
+  off_t normal_file_size;
+  int total_normal_stack_size = 0;
+  AutoTempDir temp_dir;
+
+  // First, write a minidump with no size limit.
+  {
+    string normal_dump = temp_dir.path() +
+        "/minidump-writer-unittest.dmp";
+    ASSERT_TRUE(WriteMinidump(normal_dump.c_str(), -1,
+                              child_pid, NULL, 0,
+                              MappingList(), AppMemoryList()));
+    struct stat st;
+    ASSERT_EQ(0, stat(normal_dump.c_str(), &st));
+    ASSERT_GT(st.st_size, 0);
+    normal_file_size = st.st_size;
+
+    Minidump minidump(normal_dump);
+    ASSERT_TRUE(minidump.Read());
+    MinidumpThreadList* dump_thread_list = minidump.GetThreadList();
+    ASSERT_TRUE(dump_thread_list);
+    for (unsigned int i = 0; i < dump_thread_list->thread_count(); i++) {
+      MinidumpThread* thread = dump_thread_list->GetThreadAtIndex(i);
+      ASSERT_TRUE(thread->thread() != NULL);
+      // When the stack size is zero bytes, GetMemory() returns NULL.
+      MinidumpMemoryRegion* memory = thread->GetMemory();
+      ASSERT_TRUE(memory != NULL);
+      total_normal_stack_size += memory->GetSize();
+    }
+  }
+
+  // Second, write a minidump with a size limit big enough to not trigger
+  // anything.
+  {
+    // Set size limit arbitrarily 1MB larger than the normal file size -- such
+    // that the limiting code will not kick in.
+    const off_t minidump_size_limit = normal_file_size + 1024*1024;
+
+    string same_dump = temp_dir.path() +
+        "/minidump-writer-unittest-same.dmp";
+    ASSERT_TRUE(WriteMinidump(same_dump.c_str(), minidump_size_limit,
+                              child_pid, NULL, 0,
+                              MappingList(), AppMemoryList()));
+    struct stat st;
+    ASSERT_EQ(0, stat(same_dump.c_str(), &st));
+    // Make sure limiting wasn't actually triggered.  NOTE: If you fail this,
+    // first make sure that "minidump_size_limit" above is indeed set to a
+    // large enough value -- the limit-checking code in minidump_writer.cc
+    // does just a rough estimate.
+    ASSERT_EQ(normal_file_size, st.st_size);
+  }
+
+  // Third, write a minidump with a size limit small enough to be triggered.
+  {
+    // Set size limit to some arbitrary amount, such that the limiting code
+    // will kick in.  The equation used to set this value was determined by
+    // simply reversing the size-limit logic a little bit in order to pick a
+    // size we know will trigger it.  The definition of
+    // kLimitAverageThreadStackLength here was copied from class
+    // MinidumpWriter in minidump_writer.cc.
+    static const unsigned kLimitAverageThreadStackLength = 8 * 1024;
+    off_t minidump_size_limit = kNumberOfThreadsInHelperProgram *
+        kLimitAverageThreadStackLength;
+    // If, in reality, each of the threads' stack is *smaller* than
+    // kLimitAverageThreadStackLength, the normal file size could very well be
+    // smaller than the arbitrary limit that was just set.  In that case,
+    // either of these numbers should trigger the size-limiting code, but we
+    // might as well pick the smallest.
+    if (normal_file_size < minidump_size_limit)
+      minidump_size_limit = normal_file_size;
+
+    string limit_dump = temp_dir.path() +
+        "/minidump-writer-unittest-limit.dmp";
+    ASSERT_TRUE(WriteMinidump(limit_dump.c_str(), minidump_size_limit,
+                              child_pid, NULL, 0,
+                              MappingList(), AppMemoryList()));
+    struct stat st;
+    ASSERT_EQ(0, stat(limit_dump.c_str(), &st));
+    ASSERT_GT(st.st_size, 0);
+    // Make sure the file size is at least smaller than the original.  If this
+    // fails because it's the same size, then the size-limit logic didn't kick
+    // in like it was supposed to.
+    EXPECT_LT(st.st_size, normal_file_size);
+
+    Minidump minidump(limit_dump);
+    ASSERT_TRUE(minidump.Read());
+    MinidumpThreadList* dump_thread_list = minidump.GetThreadList();
+    ASSERT_TRUE(dump_thread_list);
+    int total_limit_stack_size = 0;
+    for (unsigned int i = 0; i < dump_thread_list->thread_count(); i++) {
+      MinidumpThread* thread = dump_thread_list->GetThreadAtIndex(i);
+      ASSERT_TRUE(thread->thread() != NULL);
+      // When the stack size is zero bytes, GetMemory() returns NULL.
+      MinidumpMemoryRegion* memory = thread->GetMemory();
+      ASSERT_TRUE(memory != NULL);
+      total_limit_stack_size += memory->GetSize();
+    }
+
+    // Make sure stack size shrunk by at least 1KB per extra thread.  The
+    // definition of kLimitBaseThreadCount here was copied from class
+    // MinidumpWriter in minidump_writer.cc.
+    // Note: The 1KB is arbitrary, and assumes that the thread stacks are big
+    // enough to shrink by that much.  For example, if each thread stack was
+    // originally only 2KB, the current size-limit logic wouldn't actually
+    // shrink them because that's the size to which it tries to shrink.  If
+    // you fail this part of the test due to something like that, the test
+    // logic should probably be improved to account for your situation.
+    const unsigned kLimitBaseThreadCount = 20;
+    const unsigned kMinPerExtraThreadStackReduction = 1024;
+    const int min_expected_reduction = (kNumberOfThreadsInHelperProgram -
+        kLimitBaseThreadCount) * kMinPerExtraThreadStackReduction;
+    EXPECT_LT(total_limit_stack_size,
+              total_normal_stack_size - min_expected_reduction);
+  }
+
+  // Kill the helper program.
+  kill(child_pid, SIGKILL);
+  IGNORE_EINTR(waitpid(child_pid, nullptr, 0));
+}
+
+}  // namespace
diff --git a/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc b/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
new file mode 100644
index 0000000..8e2319e
--- /dev/null
+++ b/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
@@ -0,0 +1,66 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_writer_unittest_utils.cc:
+// Shared routines used by unittests under client/linux/minidump_writer.
+
+#include <limits.h>
+#include <stdlib.h>
+
+#include "client/linux/minidump_writer/minidump_writer_unittest_utils.h"
+#include "common/linux/safe_readlink.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+string GetHelperBinary() {
+  string helper_path;
+  char* bindir = getenv("bindir");
+  if (bindir) {
+    helper_path = string(bindir) + "/";
+  } else {
+    // Locate helper binary next to the current binary.
+    char self_path[PATH_MAX];
+    if (!SafeReadLink("/proc/self/exe", self_path)) {
+      return "";
+    }
+    helper_path = string(self_path);
+    size_t pos = helper_path.rfind('/');
+    if (pos == string::npos) {
+      return "";
+    }
+    helper_path.erase(pos + 1);
+  }
+
+  helper_path += "linux_dumper_unittest_helper";
+
+  return helper_path;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/linux/minidump_writer/minidump_writer_unittest_utils.h b/src/client/linux/minidump_writer/minidump_writer_unittest_utils.h
new file mode 100644
index 0000000..f16cc08
--- /dev/null
+++ b/src/client/linux/minidump_writer/minidump_writer_unittest_utils.h
@@ -0,0 +1,49 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_writer_unittest_utils.h:
+// Shared routines used by unittests under client/linux/minidump_writer.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// Returns the full path to linux_dumper_unittest_helper.  The full path is
+// discovered either by using the environment variable "bindir" or by using
+// the location of the main module of the currently running process.
+string GetHelperBinary();
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
diff --git a/src/client/linux/minidump_writer/proc_cpuinfo_reader.h b/src/client/linux/minidump_writer/proc_cpuinfo_reader.h
new file mode 100644
index 0000000..d9461bf
--- /dev/null
+++ b/src/client/linux/minidump_writer/proc_cpuinfo_reader.h
@@ -0,0 +1,130 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
+#define CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
+
+#include <stdint.h>
+#include <assert.h>
+#include <string.h>
+
+#include "client/linux/minidump_writer/line_reader.h"
+#include "common/linux/linux_libc_support.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+// A class for reading /proc/cpuinfo without using fopen/fgets or other
+// functions which may allocate memory.
+class ProcCpuInfoReader {
+public:
+  ProcCpuInfoReader(int fd)
+    : line_reader_(fd), pop_count_(-1) {
+  }
+
+  // Return the next field name, or NULL in case of EOF.
+  // field: (output) Pointer to zero-terminated field name.
+  // Returns true on success, or false on EOF or error (line too long).
+  bool GetNextField(const char** field) {
+    for (;;) {
+      const char* line;
+      unsigned line_len;
+
+      // Try to read next line.
+      if (pop_count_ >= 0) {
+        line_reader_.PopLine(pop_count_);
+        pop_count_ = -1;
+      }
+
+      if (!line_reader_.GetNextLine(&line, &line_len))
+        return false;
+
+      pop_count_ = static_cast<int>(line_len);
+
+      const char* line_end = line + line_len;
+
+      // Expected format: <field-name> <space>+ ':' <space> <value>
+      // Note that:
+      //   - empty lines happen.
+      //   - <field-name> can contain spaces.
+      //   - some fields have an empty <value>
+      char* sep = static_cast<char*>(my_memchr(line, ':', line_len));
+      if (sep == NULL)
+        continue;
+
+      // Record the value. Skip leading space after the column to get
+      // its start.
+      const char* val = sep+1;
+      while (val < line_end && my_isspace(*val))
+        val++;
+
+      value_ = val;
+      value_len_ = static_cast<size_t>(line_end - val);
+
+      // Remove trailing spaces before the column to properly 0-terminate
+      // the field name.
+      while (sep > line && my_isspace(sep[-1]))
+        sep--;
+
+      if (sep == line)
+        continue;
+
+      // zero-terminate field name.
+      *sep = '\0';
+
+      *field = line;
+      return true;
+    }
+  }
+
+  // Return the field value. This must be called after a succesful
+  // call to GetNextField().
+  const char* GetValue() {
+    assert(value_);
+    return value_;
+  }
+
+  // Same as GetValue(), but also returns the length in characters of
+  // the value.
+  const char* GetValueAndLen(size_t* length) {
+    assert(value_);
+    *length = value_len_;
+    return value_;
+  }
+
+private:
+  LineReader line_reader_;
+  int pop_count_;
+  const char* value_;
+  size_t value_len_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
diff --git a/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc b/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
new file mode 100644
index 0000000..d9b1203
--- /dev/null
+++ b/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
@@ -0,0 +1,199 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+#include "client/linux/minidump_writer/proc_cpuinfo_reader.h"
+#include "breakpad_googletest_includes.h"
+#include "common/linux/tests/auto_testfile.h"
+
+using namespace google_breakpad;
+
+#if !defined(__ANDROID__)
+#define TEMPDIR "/tmp"
+#else
+#define TEMPDIR "/data/local/tmp"
+#endif
+
+
+namespace {
+
+typedef testing::Test ProcCpuInfoReaderTest;
+
+class ScopedTestFile : public AutoTestFile {
+public:
+  explicit ScopedTestFile(const char* text)
+    : AutoTestFile("proc_cpuinfo_reader", text) {
+  }
+};
+
+}
+
+TEST(ProcCpuInfoReaderTest, EmptyFile) {
+  ScopedTestFile file("");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, OneLineTerminated) {
+  ScopedTestFile file("foo : bar\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, OneLine) {
+  ScopedTestFile file("foo : bar");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  size_t value_len;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValueAndLen(&value_len));
+  ASSERT_EQ(3U, value_len);
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, TwoLinesTerminated) {
+  ScopedTestFile file("foo : bar\nzoo : tut\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("zoo", field);
+  ASSERT_STREQ("tut", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, SkipMalformedLine) {
+  ScopedTestFile file("this line should have a column\nfoo : bar\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, SkipOneEmptyLine) {
+  ScopedTestFile file("\n\nfoo : bar\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, SkipEmptyField) {
+  ScopedTestFile file(" : bar\nzoo : tut\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("zoo", field);
+  ASSERT_STREQ("tut", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, SkipTwoEmptyLines) {
+  ScopedTestFile file("foo : bar\n\n\nfoo : bar\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  ASSERT_STREQ("bar", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, FieldWithSpaces) {
+  ScopedTestFile file("foo bar    : zoo\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo bar", field);
+  ASSERT_STREQ("zoo", reader.GetValue());
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
+
+TEST(ProcCpuInfoReaderTest, EmptyValue) {
+  ScopedTestFile file("foo :\n");
+  ASSERT_TRUE(file.IsOk());
+  ProcCpuInfoReader reader(file.GetFd());
+
+  const char* field;
+  ASSERT_TRUE(reader.GetNextField(&field));
+  ASSERT_STREQ("foo", field);
+  size_t value_len;
+  ASSERT_STREQ("", reader.GetValueAndLen(&value_len));
+  ASSERT_EQ(0U, value_len);
+
+  ASSERT_FALSE(reader.GetNextField(&field));
+}
diff --git a/src/client/linux/sender/google_crash_report_sender.cc b/src/client/linux/sender/google_crash_report_sender.cc
new file mode 100644
index 0000000..6bf337a
--- /dev/null
+++ b/src/client/linux/sender/google_crash_report_sender.cc
@@ -0,0 +1,105 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/linux/google_crashdump_uploader.h"
+#include <string>
+#include <iostream>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "common/using_std_string.h"
+
+DEFINE_string(crash_server, "https://clients2.google.com/cr",
+              "The crash server to upload minidumps to.");
+DEFINE_string(product_name, "",
+              "The product name that the minidump corresponds to.");
+DEFINE_string(product_version, "",
+              "The version of the product that produced the minidump.");
+DEFINE_string(client_id, "",
+              "The client GUID");
+DEFINE_string(minidump_path, "",
+              "The path of the minidump file.");
+DEFINE_string(ptime, "",
+              "The process uptime in milliseconds.");
+DEFINE_string(ctime, "",
+              "The cumulative process uptime in milliseconds.");
+DEFINE_string(email, "",
+              "The user's email address.");
+DEFINE_string(comments, "",
+              "Extra user comments");
+DEFINE_string(proxy_host, "",
+              "Proxy host");
+DEFINE_string(proxy_userpasswd, "",
+              "Proxy username/password in user:pass format.");
+
+
+bool CheckForRequiredFlagsOrDie() {
+  string error_text = "";
+  if (FLAGS_product_name.empty()) {
+    error_text.append("\nProduct name must be specified.");
+  }
+
+  if (FLAGS_product_version.empty()) {
+    error_text.append("\nProduct version must be specified.");
+  }
+
+  if (FLAGS_client_id.empty()) {
+    error_text.append("\nClient ID must be specified.");
+  }
+
+  if (FLAGS_minidump_path.empty()) {
+    error_text.append("\nMinidump pathname must be specified.");
+  }
+
+  if (!error_text.empty()) {
+    std::cout << error_text;
+    return false;
+  }
+  return true;
+}
+
+int main(int argc, char* argv[]) {
+  google::InitGoogleLogging(argv[0]);
+  google::ParseCommandLineFlags(&argc, &argv, true);
+  if (!CheckForRequiredFlagsOrDie()) {
+    return 1;
+  }
+  google_breakpad::GoogleCrashdumpUploader g(FLAGS_product_name,
+                                             FLAGS_product_version,
+                                             FLAGS_client_id,
+                                             FLAGS_ptime,
+                                             FLAGS_ctime,
+                                             FLAGS_email,
+                                             FLAGS_comments,
+                                             FLAGS_minidump_path,
+                                             FLAGS_crash_server,
+                                             FLAGS_proxy_host,
+                                             FLAGS_proxy_userpasswd);
+  g.Upload(NULL, NULL, NULL);
+}
diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1087653
--- /dev/null
+++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
@@ -0,0 +1,2797 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXAggregateTarget section */
+		F94585840F782326009A47BF /* All */ = {
+			isa = PBXAggregateTarget;
+			buildConfigurationList = F94585930F78235C009A47BF /* Build configuration list for PBXAggregateTarget "All" */;
+			buildPhases = (
+			);
+			dependencies = (
+				F94585880F78232B009A47BF /* PBXTargetDependency */,
+				F945858A0F78232E009A47BF /* PBXTargetDependency */,
+				F945858C0F782330009A47BF /* PBXTargetDependency */,
+				F945858E0F782333009A47BF /* PBXTargetDependency */,
+				F94585900F782336009A47BF /* PBXTargetDependency */,
+				F93DE3A70F830D1D00608B94 /* PBXTargetDependency */,
+				F95BB8B3101F94D300AA053B /* PBXTargetDependency */,
+				F95BB8B5101F94D300AA053B /* PBXTargetDependency */,
+				F95BB8B7101F94D300AA053B /* PBXTargetDependency */,
+				8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */,
+				8B31051711F1010E00FCF3E4 /* PBXTargetDependency */,
+				8B31051911F1010E00FCF3E4 /* PBXTargetDependency */,
+				8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */,
+				8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */,
+				8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */,
+			);
+			name = All;
+			productName = All;
+		};
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+		162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
+		162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
+		162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
+		162F64F5161C579B00CD68D5 /* arch_utilities.h in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
+		163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 163201D41443019E00C4DBF5 /* ConfigFile.h */; };
+		163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 163201D51443019E00C4DBF5 /* ConfigFile.mm */; };
+		163201E31443029300C4DBF5 /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 163201D51443019E00C4DBF5 /* ConfigFile.mm */; };
+		16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C917147D45AE00776EAD /* BreakpadDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		16E02DB8147410F0008C604D /* uploader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16E02DB4147410D4008C604D /* uploader.mm */; };
+		1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */; };
+		1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */; };
+		1EEEB6271720831E00F7E689 /* BreakpadFramework_Test.mm in Sources */ = {isa = PBXBuildFile; fileRef = F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */; };
+		1EEEB62A1720859200F7E689 /* simple_string_dictionary_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */; };
+		1EEEB62B1720868C00F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */; };
+		3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */; };
+		33880C800F9E097100817F82 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33880C7E0F9E097100817F82 /* InfoPlist.strings */; };
+		4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; };
+		421BC5BC21110C0300B8042E /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */; };
+		421BC5BD21110C0300B8042E /* convert_old_arm64_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */; };
+		421BC5BE21110C1000B8042E /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */; };
+		4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244540A12439BA0009BBCE0 /* memory_allocator_unittest.cc */; };
+		4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D61A26C14F43D42002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D61A26D14F43D43002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D61A26E14F43D45002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D61A26F14F43D48002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
+		4D72CA0E13DFAD5C006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+		4D72CA2513DFAE1C006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+		4D72CA2F13DFAE65006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+		4D72CA3813DFAE91006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+		4D72CA3913DFAE92006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
+		4DBE49A6134A4F200072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
+		4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
+		4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
+		4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
+		8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
+		8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
+		8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */; };
+		8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
+		D23F4B2E12A7E13200686C8D /* minidump_generator_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */; };
+		D23F4B3312A7E17700686C8D /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
+		D23F4BB112A868CB00686C8D /* minidump_generator_test_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */; };
+		D23F4BB812A868F700686C8D /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+		D244536A12426F00009BBCE0 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
+		D244536B12426F00009BBCE0 /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
+		D244536C12426F00009BBCE0 /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
+		D244536D12426F00009BBCE0 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
+		D246417012BAA40E005170D0 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
+		D246417112BAA41C005170D0 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
+		D246417512BAA438005170D0 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+		D246417612BAA43F005170D0 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+		D246417712BAA444005170D0 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
+		D246418412BAA4BA005170D0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		D246418812BAA4E3005170D0 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+		D246418C12BAA508005170D0 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		D246419012BAA52A005170D0 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		D246419112BAA52F005170D0 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		D246419512BAA54C005170D0 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+		D246419612BAA55A005170D0 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+		D24641A012BAA67F005170D0 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+		D24641AF12BAA82D005170D0 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+		D24641EC12BAC6FB005170D0 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
+		D24641ED12BAC6FB005170D0 /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
+		D24641EE12BAC6FB005170D0 /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
+		D24641EF12BAC6FB005170D0 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
+		D24BBBFD121050F000F3D417 /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
+		D24BBD291211EDB100F3D417 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+		D24BBD321212CACF00F3D417 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+		D2A5DD301188633800081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
+		D2A5DD401188640400081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
+		D2A5DD411188642E00081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
+		D2C1DBE412AFC270006917BD /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
+		D2C1DBE512AFC270006917BD /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
+		D2C1DBE612AFC270006917BD /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
+		D2C1DBE712AFC270006917BD /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
+		D2F9A3D51212F87C002747C1 /* exception_handler_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */; };
+		D2F9A43D12131F55002747C1 /* gmock-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43C12131F55002747C1 /* gmock-all.cc */; };
+		D2F9A44012131F65002747C1 /* gtest_main.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43E12131F65002747C1 /* gtest_main.cc */; };
+		D2F9A44112131F65002747C1 /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43F12131F65002747C1 /* gtest-all.cc */; };
+		D2F9A44412131F84002747C1 /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
+		D2F9A4C9121336C7002747C1 /* client_info.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C4121336C7002747C1 /* client_info.h */; };
+		D2F9A4CA121336C7002747C1 /* crash_generation_client.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C5121336C7002747C1 /* crash_generation_client.h */; };
+		D2F9A4CB121336C7002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
+		D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C7121336C7002747C1 /* crash_generation_server.h */; };
+		D2F9A4CD121336C7002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
+		D2F9A4DF12133AD9002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
+		D2F9A4E012133AD9002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
+		D2F9A4E112133AE2002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
+		D2F9A4E212133AE2002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
+		D2F9A52E121383A1002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
+		D2F9A52F121383A1002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
+		D2F9A530121383A1002747C1 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+		D2F9A531121383A1002747C1 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
+		D2F9A532121383A1002747C1 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+		D2F9A533121383A1002747C1 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
+		D2F9A534121383A1002747C1 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+		D2F9A535121383A1002747C1 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		D2F9A536121383A1002747C1 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		D2F9A537121383A1002747C1 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		D2F9A538121383A1002747C1 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+		D2F9A539121383A1002747C1 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+		D2F9A53A121383A1002747C1 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+		D2F9A53B121383A1002747C1 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+		D2F9A53C121383A1002747C1 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+		D2F9A53F121383A1002747C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		D2F9A541121383A1002747C1 /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
+		D2F9A553121383DC002747C1 /* crash_generation_server_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */; };
+		F4DAB1DD19F1027100A5A838 /* launch_reporter.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */; };
+		F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DAB1DC19F1027100A5A838 /* launch_reporter.h */; };
+		F4F916B619F10FFC00B83BE4 /* launch_reporter.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */; };
+		F91AF6210FD60784009D8BE2 /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
+		F9286B3A0F7EB25800A4DCC8 /* InspectorMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */; };
+		F92C53B80ECCE7B3009BE4BA /* Inspector.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53B70ECCE7B3009BE4BA /* Inspector.mm */; };
+		F92C554C0ECCF534009BE4BA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
+		F92C55D00ECD0064009BE4BA /* Breakpad.h in Headers */ = {isa = PBXBuildFile; fileRef = F92C55CE0ECD0064009BE4BA /* Breakpad.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C55CF0ECD0064009BE4BA /* Breakpad.mm */; };
+		F92C56330ECD0DF1009BE4BA /* OnDemandServer.h in Headers */ = {isa = PBXBuildFile; fileRef = F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */; };
+		F92C56340ECD0DF1009BE4BA /* OnDemandServer.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */; };
+		F92C563F0ECD10CA009BE4BA /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		F92C56400ECD10CA009BE4BA /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+		F92C56410ECD10CA009BE4BA /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+		F92C56420ECD10CA009BE4BA /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+		F92C56430ECD10CA009BE4BA /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+		F92C56440ECD10CA009BE4BA /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+		F92C56450ECD10CA009BE4BA /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
+		F92C56460ECD10CA009BE4BA /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		F92C56470ECD10CA009BE4BA /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+		F92C56490ECD10CA009BE4BA /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+		F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
+		F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C554A0ECCF530009BE4BA /* Carbon.framework */; };
+		F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
+		F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */; };
+		F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
+		F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
+		F92C568A0ECD15F9009BE4BA /* Inspector in Resources */ = {isa = PBXBuildFile; fileRef = F92C53540ECCE349009BE4BA /* Inspector */; };
+		F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */; };
+		F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+		F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
+		F93803CF0F8083B7004D428B /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+		F93803D00F8083B7004D428B /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		F93803D10F8083B7004D428B /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		F93803D20F8083B7004D428B /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		F93803D30F8083B7004D428B /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+		F93803D40F8083B7004D428B /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+		F93803D50F8083B7004D428B /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+		F93803D60F8083B7004D428B /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+		F93803D70F8083B7004D428B /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+		F93DE2D80F82A70E00608B94 /* minidump_file_writer_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */; };
+		F93DE2D90F82A73500608B94 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		F93DE2DA0F82A73500608B94 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		F93DE2DB0F82A73500608B94 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		F93DE3350F82C66B00608B94 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
+		F93DE3360F82C66B00608B94 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
+		F93DE3370F82C66B00608B94 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
+		F93DE3380F82C66B00608B94 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
+		F93DE3390F82C66B00608B94 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */; };
+		F93DE33A0F82C66B00608B94 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
+		F93DE33B0F82C66B00608B94 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
+		F93DE33C0F82C66B00608B94 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
+		F93DE33D0F82C66B00608B94 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
+		F93DE33E0F82C66B00608B94 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
+		F93DE33F0F82C66B00608B94 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
+		F945849E0F280E3C009A47BF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F945849C0F280E3C009A47BF /* Localizable.strings */; };
+		F9B630A0100FF96B00D0F4AC /* goArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F9B6309F100FF96B00D0F4AC /* goArrow.png */; };
+		F9C44DB20EF07288003AEBAA /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DAC0EF07288003AEBAA /* Controller.m */; };
+		F9C44DB30EF07288003AEBAA /* crashduringload in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DAD0EF07288003AEBAA /* crashduringload */; };
+		F9C44DB40EF07288003AEBAA /* crashInMain in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DAE0EF07288003AEBAA /* crashInMain */; };
+		F9C44DB60EF07288003AEBAA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DB00EF07288003AEBAA /* main.m */; };
+		F9C44DB70EF07288003AEBAA /* TestClass.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DB10EF07288003AEBAA /* TestClass.mm */; };
+		F9C44DBC0EF072A0003AEBAA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */; };
+		F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */; };
+		F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
+		F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
+		F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */ = {isa = PBXBuildFile; fileRef = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */; };
+		F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */; };
+		F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */; };
+		F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */; };
+		F9C77E130F7DDF810045F7DB /* GTMSenTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FAFC9116BDCAD00407530;
+			remoteInfo = all_unittests;
+		};
+		8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F93803BD0F80820F004D428B;
+			remoteInfo = generator_test;
+		};
+		8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F93DE2D00F82A67300608B94;
+			remoteInfo = minidump_file_writer_unittest;
+		};
+		8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F93DE32B0F82C55600608B94;
+			remoteInfo = handler_test;
+		};
+		8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = B89E0E731166575200DD08C9;
+			remoteInfo = macho_dump;
+		};
+		8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 9BD835FA0B0544950055103E;
+			remoteInfo = minidump_upload;
+		};
+		8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B89E0E741166575200DD08C9;
+			remoteInfo = macho_dump;
+		};
+		8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB024116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB14B116CF4A700407530;
+			remoteInfo = byte_cursor_unittest;
+		};
+		8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B89E0E9511665A6400DD08C9;
+			remoteInfo = macho_reader_unittest;
+		};
+		8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB007116BDE8300407530;
+			remoteInfo = stabs_reader_unittest;
+		};
+		8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB135116CF30F00407530;
+			remoteInfo = bytereader_unittest;
+		};
+		8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FAF2F116A591E00407530;
+			remoteInfo = dwarf2reader_cfi_unittest;
+		};
+		8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB0DF116CEEA800407530;
+			remoteInfo = dwarf2diehandler_unittest;
+		};
+		8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB10A116CF07900407530;
+			remoteInfo = dwarf_cu_to_module_unittest;
+		};
+		8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB0F2116CEF1900407530;
+			remoteInfo = dwarf_line_to_module_unittest;
+		};
+		8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB11F116CF27F00407530;
+			remoteInfo = dwarf_cfi_to_module_unittest;
+		};
+		8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B84A91F4116CF784006C210E;
+			remoteInfo = stabs_to_module_unittest;
+		};
+		8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = B88FB0B9116CEABF00407530;
+			remoteInfo = module_unittest;
+		};
+		8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D21F97D211CBA0F200239E38;
+			remoteInfo = test_assembler_unittest;
+		};
+		D23F4B2F12A7E16200686C8D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D2F9A41412131EF0002747C1;
+			remoteInfo = gtest;
+		};
+		D23F4BB912A8694C00686C8D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D23F4BAA12A868A500686C8D;
+			remoteInfo = minidump_generator_test_helper;
+		};
+		D2F9A44212131F80002747C1 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D2F9A41412131EF0002747C1;
+			remoteInfo = gtest;
+		};
+		D2F9A52C121383A1002747C1 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D2F9A41412131EF0002747C1;
+			remoteInfo = gtest;
+		};
+		D2F9A5DE12142A6A002747C1 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D2F9A52A121383A1002747C1;
+			remoteInfo = crash_generation_server_test;
+		};
+		F91AF6370FD60A74009D8BE2 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+			remoteInfo = Breakpad;
+		};
+		F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
+			remoteInfo = breakpadUtilities;
+		};
+		F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
+			remoteInfo = breakpadUtilities;
+		};
+		F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C53530ECCE349009BE4BA;
+			remoteInfo = Inspector;
+		};
+		F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F93803BD0F80820F004D428B;
+			remoteInfo = generator_test;
+		};
+		F93DE36F0F82CC1300608B94 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F93DE32B0F82C55600608B94;
+			remoteInfo = handler_test;
+		};
+		F93DE3A60F830D1D00608B94 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F9C77DD90F7DD5CF0045F7DB;
+			remoteInfo = UnitTests;
+		};
+		F94585870F78232B009A47BF /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+			remoteInfo = Breakpad;
+		};
+		F94585890F78232E009A47BF /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C53530ECCE349009BE4BA;
+			remoteInfo = Inspector;
+		};
+		F945858B0F782330009A47BF /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
+			remoteInfo = breakpadUtilities;
+		};
+		F945858D0F782333009A47BF /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
+			remoteInfo = crash_report_sender;
+		};
+		F945858F0F782336009A47BF /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F9C44DA40EF060A8003AEBAA;
+			remoteInfo = BreakpadTest;
+		};
+		F95BB884101F949F00AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
+			remoteInfo = crash_report;
+		};
+		F95BB891101F94AC00AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
+			remoteInfo = dump_syms;
+		};
+		F95BB89E101F94C000AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
+			remoteInfo = symupload;
+		};
+		F95BB8A0101F94C000AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 9BD835FB0B0544950055103E;
+			remoteInfo = minidump_upload;
+		};
+		F95BB8B2101F94D300AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = B8C5B5101166531A00D34F4E;
+			remoteInfo = dump_syms;
+		};
+		F95BB8B4101F94D300AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 8DD76F960486AA7600D96B5E;
+			remoteInfo = symupload;
+		};
+		F95BB8B6101F94D300AA053B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 8DD76F960486AA7600D96B5E;
+			remoteInfo = crash_report;
+		};
+		F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+			remoteInfo = Breakpad;
+		};
+		F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
+			remoteInfo = crash_report_sender;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		F9C44E410EF08B17003AEBAA /* Copy Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */,
+			);
+			name = "Copy Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+		1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		162F64F0161C577500CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
+		162F64F1161C577500CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
+		163201D41443019E00C4DBF5 /* ConfigFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConfigFile.h; path = crash_generation/ConfigFile.h; sourceTree = "<group>"; };
+		163201D51443019E00C4DBF5 /* ConfigFile.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = ConfigFile.mm; path = crash_generation/ConfigFile.mm; sourceTree = "<group>"; };
+		163202431443201300C4DBF5 /* uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = uploader.h; path = sender/uploader.h; sourceTree = "<group>"; };
+		16C7C917147D45AE00776EAD /* BreakpadDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadDefines.h; sourceTree = "<group>"; };
+		16E02DB4147410D4008C604D /* uploader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = uploader.mm; path = sender/uploader.mm; sourceTree = "<group>"; };
+		1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simple_string_dictionary.cc; path = ../../common/simple_string_dictionary.cc; sourceTree = "<group>"; };
+		1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = simple_string_dictionary.h; path = ../../common/simple_string_dictionary.h; sourceTree = "<group>"; };
+		1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simple_string_dictionary_unittest.cc; path = ../../common/simple_string_dictionary_unittest.cc; sourceTree = "<group>"; };
+		32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Breakpad_Prefix.pch; path = Framework/Breakpad_Prefix.pch; sourceTree = "<group>"; };
+		3329D4EC0FA16D820007BBC5 /* Breakpad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Breakpad.xib; path = sender/Breakpad.xib; sourceTree = "<group>"; };
+		33880C7F0F9E097100817F82 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; };
+		421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = convert_old_arm64_context.cc; path = ../../processor/convert_old_arm64_context.cc; sourceTree = "<group>"; };
+		421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_old_arm64_context.h; path = ../../processor/convert_old_arm64_context.h; sourceTree = "<group>"; };
+		4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap_compat.cc; path = ../../common/mac/bootstrap_compat.cc; sourceTree = SOURCE_ROOT; };
+		4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_compat.h; path = ../../common/mac/bootstrap_compat.h; sourceTree = SOURCE_ROOT; };
+		4D72CA0D13DFAD5C006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../common/md5.cc; sourceTree = SOURCE_ROOT; };
+		4DBE4769134A4F080072546A /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
+		8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMDefines.h; path = ../../common/mac/GTMDefines.h; sourceTree = SOURCE_ROOT; };
+		8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+		8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
+		8DC2EF5B0486A6940098B216 /* Breakpad.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Breakpad.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator_test.cc; path = tests/minidump_generator_test.cc; sourceTree = "<group>"; };
+		D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator_test_helper.cc; path = tests/minidump_generator_test_helper.cc; sourceTree = "<group>"; };
+		D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = minidump_generator_test_helper; sourceTree = BUILT_PRODUCTS_DIR; };
+		D244534F12426E98009BBCE0 /* basic_code_modules.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = basic_code_modules.cc; path = ../../processor/basic_code_modules.cc; sourceTree = SOURCE_ROOT; };
+		D244535112426EBB009BBCE0 /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cc; path = ../../processor/logging.cc; sourceTree = SOURCE_ROOT; };
+		D244535212426EBB009BBCE0 /* minidump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump.cc; path = ../../processor/minidump.cc; sourceTree = SOURCE_ROOT; };
+		D244535312426EBB009BBCE0 /* pathname_stripper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pathname_stripper.cc; path = ../../processor/pathname_stripper.cc; sourceTree = SOURCE_ROOT; };
+		D244540A12439BA0009BBCE0 /* memory_allocator_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = memory_allocator_unittest.cc; path = ../../common/memory_allocator_unittest.cc; sourceTree = SOURCE_ROOT; };
+		D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exception_handler_test.cc; path = tests/exception_handler_test.cc; sourceTree = "<group>"; };
+		D2F9A41512131EF0002747C1 /* libgtest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgtest.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		D2F9A43C12131F55002747C1 /* gmock-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gmock-all.cc"; path = "../../testing/googlemock/src/gmock-all.cc"; sourceTree = SOURCE_ROOT; };
+		D2F9A43E12131F65002747C1 /* gtest_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtest_main.cc; path = ../../testing/googletest/src/gtest_main.cc; sourceTree = "<group>"; };
+		D2F9A43F12131F65002747C1 /* gtest-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gtest-all.cc"; path = "../../testing/googletest/src/gtest-all.cc"; sourceTree = "<group>"; };
+		D2F9A4C4121336C7002747C1 /* client_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = client_info.h; path = crash_generation/client_info.h; sourceTree = "<group>"; };
+		D2F9A4C5121336C7002747C1 /* crash_generation_client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_generation_client.h; path = crash_generation/crash_generation_client.h; sourceTree = "<group>"; };
+		D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_client.cc; path = crash_generation/crash_generation_client.cc; sourceTree = "<group>"; };
+		D2F9A4C7121336C7002747C1 /* crash_generation_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_generation_server.h; path = crash_generation/crash_generation_server.h; sourceTree = "<group>"; };
+		D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_server.cc; path = crash_generation/crash_generation_server.cc; sourceTree = "<group>"; };
+		D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_server_test.cc; path = tests/crash_generation_server_test.cc; sourceTree = "<group>"; };
+		D2F9A546121383A1002747C1 /* crash_generation_server_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = crash_generation_server_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		DE43467411C72855004F095F /* da */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = da; path = sender/da.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467511C72857004F095F /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = sender/de.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467611C7285B004F095F /* es */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = es; path = sender/es.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467711C72862004F095F /* fr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fr; path = sender/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467811C72869004F095F /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = sender/it.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467911C7286D004F095F /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = sender/nl.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467A11C72873004F095F /* no */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = no; path = sender/no.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467B11C72877004F095F /* sl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sl; path = sender/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467C11C7287A004F095F /* sv */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sv; path = sender/sv.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467E11C728DC004F095F /* ja */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ja; path = sender/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43467F11C728E1004F095F /* tr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = sender/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
+		DE43468611C72958004F095F /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = sender/de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468711C7295D004F095F /* da */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = da; path = sender/da.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468811C7295F004F095F /* es */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = es; path = sender/es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468911C72964004F095F /* fr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fr; path = sender/fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468A11C72967004F095F /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = sender/it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468B11C7296B004F095F /* ja */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ja; path = sender/ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468C11C7296D004F095F /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = sender/nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468D11C7296F004F095F /* no */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = no; path = sender/no.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468E11C72971004F095F /* sl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sl; path = sender/sl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43468F11C72973004F095F /* sv */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sv; path = sender/sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		DE43469011C72976004F095F /* tr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = sender/tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = launch_reporter.cc; path = ../../common/mac/launch_reporter.cc; sourceTree = SOURCE_ROOT; };
+		F4DAB1DC19F1027100A5A838 /* launch_reporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launch_reporter.h; path = ../../common/mac/launch_reporter.h; sourceTree = SOURCE_ROOT; };
+		F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = BreakpadFramework_Test.mm; path = tests/BreakpadFramework_Test.mm; sourceTree = "<group>"; };
+		F9286B380F7EB25800A4DCC8 /* Inspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Inspector.h; path = crash_generation/Inspector.h; sourceTree = "<group>"; };
+		F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InspectorMain.mm; path = crash_generation/InspectorMain.mm; sourceTree = "<group>"; };
+		F92C53540ECCE349009BE4BA /* Inspector */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Inspector; sourceTree = BUILT_PRODUCTS_DIR; };
+		F92C53670ECCE3FD009BE4BA /* breakpad_exc_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = breakpad_exc_server.c; path = handler/breakpad_exc_server.c; sourceTree = SOURCE_ROOT; };
+		F92C53680ECCE3FD009BE4BA /* breakpad_exc_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_exc_server.h; path = handler/breakpad_exc_server.h; sourceTree = SOURCE_ROOT; };
+		F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = breakpad_nlist_64.cc; path = handler/breakpad_nlist_64.cc; sourceTree = SOURCE_ROOT; };
+		F92C536A0ECCE3FD009BE4BA /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_nlist_64.h; path = handler/breakpad_nlist_64.h; sourceTree = SOURCE_ROOT; };
+		F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dynamic_images.cc; path = handler/dynamic_images.cc; sourceTree = SOURCE_ROOT; };
+		F92C536C0ECCE3FD009BE4BA /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_images.h; path = handler/dynamic_images.h; sourceTree = SOURCE_ROOT; };
+		F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exception_handler.cc; path = handler/exception_handler.cc; sourceTree = SOURCE_ROOT; };
+		F92C536E0ECCE3FD009BE4BA /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = exception_handler.h; path = handler/exception_handler.h; sourceTree = SOURCE_ROOT; };
+		F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator.cc; path = handler/minidump_generator.cc; sourceTree = SOURCE_ROOT; };
+		F92C53700ECCE3FD009BE4BA /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_generator.h; path = handler/minidump_generator.h; sourceTree = SOURCE_ROOT; };
+		F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = protected_memory_allocator.cc; path = handler/protected_memory_allocator.cc; sourceTree = SOURCE_ROOT; };
+		F92C53730ECCE3FD009BE4BA /* protected_memory_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = protected_memory_allocator.h; path = handler/protected_memory_allocator.h; sourceTree = SOURCE_ROOT; };
+		F92C53740ECCE635009BE4BA /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; };
+		F92C53750ECCE635009BE4BA /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ../../common/mac/file_id.h; sourceTree = SOURCE_ROOT; };
+		F92C53760ECCE635009BE4BA /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPMultipartUpload.h; path = ../../common/mac/HTTPMultipartUpload.h; sourceTree = SOURCE_ROOT; };
+		F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HTTPMultipartUpload.m; path = ../../common/mac/HTTPMultipartUpload.m; sourceTree = SOURCE_ROOT; };
+		F92C53780ECCE635009BE4BA /* MachIPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MachIPC.h; path = ../../common/mac/MachIPC.h; sourceTree = SOURCE_ROOT; };
+		F92C53790ECCE635009BE4BA /* MachIPC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MachIPC.mm; path = ../../common/mac/MachIPC.mm; sourceTree = SOURCE_ROOT; };
+		F92C537A0ECCE635009BE4BA /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ../../common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; };
+		F92C537B0ECCE635009BE4BA /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ../../common/mac/macho_id.h; sourceTree = SOURCE_ROOT; };
+		F92C537C0ECCE635009BE4BA /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; };
+		F92C537D0ECCE635009BE4BA /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; };
+		F92C537E0ECCE635009BE4BA /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
+		F92C537F0ECCE635009BE4BA /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
+		F92C53820ECCE635009BE4BA /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_utilities.cc; path = ../../common/mac/string_utilities.cc; sourceTree = SOURCE_ROOT; };
+		F92C53830ECCE635009BE4BA /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_utilities.h; path = ../../common/mac/string_utilities.h; sourceTree = SOURCE_ROOT; };
+		F92C53850ECCE6AD009BE4BA /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_conversion.cc; path = ../../common/string_conversion.cc; sourceTree = SOURCE_ROOT; };
+		F92C53860ECCE6AD009BE4BA /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_conversion.h; path = ../../common/string_conversion.h; sourceTree = SOURCE_ROOT; };
+		F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = convert_UTF.cc; path = ../../common/convert_UTF.cc; sourceTree = SOURCE_ROOT; };
+		F92C53880ECCE6C0009BE4BA /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_UTF.h; path = ../../common/convert_UTF.h; sourceTree = SOURCE_ROOT; };
+		F92C538E0ECCE70A009BE4BA /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "minidump_file_writer-inl.h"; path = "../minidump_file_writer-inl.h"; sourceTree = SOURCE_ROOT; };
+		F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer.cc; path = ../minidump_file_writer.cc; sourceTree = SOURCE_ROOT; };
+		F92C53900ECCE70A009BE4BA /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_file_writer.h; path = ../minidump_file_writer.h; sourceTree = SOURCE_ROOT; };
+		F92C53B70ECCE7B3009BE4BA /* Inspector.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Inspector.mm; path = crash_generation/Inspector.mm; sourceTree = SOURCE_ROOT; };
+		F92C554A0ECCF530009BE4BA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
+		F92C55CE0ECD0064009BE4BA /* Breakpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Breakpad.h; path = Framework/Breakpad.h; sourceTree = "<group>"; };
+		F92C55CF0ECD0064009BE4BA /* Breakpad.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Breakpad.mm; path = Framework/Breakpad.mm; sourceTree = "<group>"; };
+		F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OnDemandServer.h; path = Framework/OnDemandServer.h; sourceTree = "<group>"; };
+		F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OnDemandServer.mm; path = Framework/OnDemandServer.mm; sourceTree = "<group>"; };
+		F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = breakpadUtilities.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = crash_report_sender.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "crash_report_sender-Info.plist"; path = "sender/crash_report_sender-Info.plist"; sourceTree = "<group>"; };
+		F92C56A70ECE04C5009BE4BA /* crash_report_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_report_sender.h; path = sender/crash_report_sender.h; sourceTree = "<group>"; };
+		F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = crash_report_sender.m; path = sender/crash_report_sender.m; sourceTree = "<group>"; };
+		F93803BE0F80820F004D428B /* generator_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = generator_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = minidump_file_writer_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer_unittest.cc; path = ../minidump_file_writer_unittest.cc; sourceTree = SOURCE_ROOT; };
+		F93DE32C0F82C55600608B94 /* handler_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = handler_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		F945849D0F280E3C009A47BF /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/Localizable.strings; sourceTree = "<group>"; };
+		F945859D0F78241E009A47BF /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Framework/Info.plist; sourceTree = "<group>"; };
+		F95BB87C101F949F00AA053B /* crash_report.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = crash_report.xcodeproj; path = ../../tools/mac/crash_report/crash_report.xcodeproj; sourceTree = SOURCE_ROOT; };
+		F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = dump_syms.xcodeproj; path = ../../tools/mac/dump_syms/dump_syms.xcodeproj; sourceTree = SOURCE_ROOT; };
+		F95BB894101F94C000AA053B /* symupload.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = symupload.xcodeproj; path = ../../tools/mac/symupload/symupload.xcodeproj; sourceTree = SOURCE_ROOT; };
+		F9B6309F100FF96B00D0F4AC /* goArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = goArrow.png; path = sender/goArrow.png; sourceTree = "<group>"; };
+		F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BreakpadTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		F9C44DAC0EF07288003AEBAA /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Controller.m; path = testapp/Controller.m; sourceTree = "<group>"; };
+		F9C44DAD0EF07288003AEBAA /* crashduringload */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = crashduringload; path = testapp/crashduringload; sourceTree = "<group>"; };
+		F9C44DAE0EF07288003AEBAA /* crashInMain */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = crashInMain; path = testapp/crashInMain; sourceTree = "<group>"; };
+		F9C44DAF0EF07288003AEBAA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = testapp/Info.plist; sourceTree = "<group>"; };
+		F9C44DB00EF07288003AEBAA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = testapp/main.m; sourceTree = "<group>"; };
+		F9C44DB10EF07288003AEBAA /* TestClass.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TestClass.mm; path = testapp/TestClass.mm; sourceTree = "<group>"; };
+		F9C44DB90EF072A0003AEBAA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = testapp/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		F9C44DBB0EF072A0003AEBAA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = testapp/English.lproj/MainMenu.xib; sourceTree = "<group>"; };
+		F9C44DBF0EF0778F003AEBAA /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Controller.h; path = testapp/Controller.h; sourceTree = "<group>"; };
+		F9C44DC00EF0778F003AEBAA /* TestClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestClass.h; path = testapp/TestClass.h; sourceTree = "<group>"; };
+		F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+		F9C44EE70EF0A3C1003AEBAA /* GTMLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMLogger.h; path = ../../common/mac/GTMLogger.h; sourceTree = SOURCE_ROOT; };
+		F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTMLogger.m; path = ../../common/mac/GTMLogger.m; sourceTree = SOURCE_ROOT; };
+		F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+		F9C77DDB0F7DD5CF0045F7DB /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "UnitTests-Info.plist"; sourceTree = "<group>"; };
+		F9C77E110F7DDF810045F7DB /* GTMSenTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMSenTestCase.h; path = ../../common/mac/testing/GTMSenTestCase.h; sourceTree = SOURCE_ROOT; };
+		F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTMSenTestCase.m; path = ../../common/mac/testing/GTMSenTestCase.m; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DC2EF560486A6940098B216 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */,
+				8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D23F4BA912A868A500686C8D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D246418412BAA4BA005170D0 /* Foundation.framework in Frameworks */,
+				4DBE49A6134A4F200072546A /* CoreServices.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D2F9A41312131EF0002747C1 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D2F9A53E121383A1002747C1 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D2F9A53F121383A1002747C1 /* Foundation.framework in Frameworks */,
+				D2F9A541121383A1002747C1 /* libgtest.a in Frameworks */,
+				4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C53520ECCE349009BE4BA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */,
+				F92C554C0ECCF534009BE4BA /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C563A0ECD10B3009BE4BA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */,
+				F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C569E0ECE04A7009BE4BA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */,
+				8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */,
+				8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93803BC0F80820F004D428B /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */,
+				D23F4B3312A7E17700686C8D /* libgtest.a in Frameworks */,
+				4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93DE2CF0F82A67300608B94 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93DE32A0F82C55600608B94 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */,
+				D2F9A44412131F84002747C1 /* libgtest.a in Frameworks */,
+				4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C44DA30EF060A8003AEBAA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */,
+				8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */,
+				8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C77DD70F7DD5CF0045F7DB /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F91AF6210FD60784009D8BE2 /* Breakpad.framework in Frameworks */,
+				8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */,
+				8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */,
+				D24BBBFD121050F000F3D417 /* breakpadUtilities.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		034768DFFF38A50411DB9C8B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DC2EF5B0486A6940098B216 /* Breakpad.framework */,
+				F92C53540ECCE349009BE4BA /* Inspector */,
+				F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */,
+				F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */,
+				F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */,
+				F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */,
+				F93803BE0F80820F004D428B /* generator_test */,
+				F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */,
+				F93DE32C0F82C55600608B94 /* handler_test */,
+				D2F9A41512131EF0002747C1 /* libgtest.a */,
+				D2F9A546121383A1002747C1 /* crash_generation_server_test */,
+				D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0867D691FE84028FC02AAC07 /* Breakpad */ = {
+			isa = PBXGroup;
+			children = (
+				D2F9A43812131F3B002747C1 /* gtest */,
+				8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */,
+				8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */,
+				8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */,
+				F95BB8A3101F94C300AA053B /* Tools */,
+				32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */,
+				F92C538D0ECCE6F2009BE4BA /* client */,
+				F92C53600ECCE3D6009BE4BA /* common */,
+				D244536912426EE7009BBCE0 /* processor */,
+				0867D69AFE84028FC02AAC07 /* Frameworks */,
+				034768DFFF38A50411DB9C8B /* Products */,
+				F9C77DDB0F7DD5CF0045F7DB /* UnitTests-Info.plist */,
+			);
+			name = Breakpad;
+			sourceTree = "<group>";
+		};
+		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */,
+				F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */,
+				F92C554A0ECCF530009BE4BA /* Carbon.framework */,
+				1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
+				0867D6A5FE840307C02AAC07 /* AppKit.framework */,
+				0867D69BFE84028FC02AAC07 /* Foundation.framework */,
+				4DBE4769134A4F080072546A /* CoreServices.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		16C7C915147D45AE00776EAD /* apple */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C916147D45AE00776EAD /* Framework */,
+			);
+			name = apple;
+			path = ../apple;
+			sourceTree = SOURCE_ROOT;
+		};
+		16C7C916147D45AE00776EAD /* Framework */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C917147D45AE00776EAD /* BreakpadDefines.h */,
+			);
+			path = Framework;
+			sourceTree = "<group>";
+		};
+		D244536912426EE7009BBCE0 /* processor */ = {
+			isa = PBXGroup;
+			children = (
+				421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */,
+				421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */,
+				D244535112426EBB009BBCE0 /* logging.cc */,
+				D244535212426EBB009BBCE0 /* minidump.cc */,
+				D244535312426EBB009BBCE0 /* pathname_stripper.cc */,
+				D244534F12426E98009BBCE0 /* basic_code_modules.cc */,
+			);
+			name = processor;
+			sourceTree = "<group>";
+		};
+		D2F9A43812131F3B002747C1 /* gtest */ = {
+			isa = PBXGroup;
+			children = (
+				D2F9A43E12131F65002747C1 /* gtest_main.cc */,
+				D2F9A43F12131F65002747C1 /* gtest-all.cc */,
+				D2F9A43C12131F55002747C1 /* gmock-all.cc */,
+			);
+			name = gtest;
+			sourceTree = "<group>";
+		};
+		F92C53590ECCE3BB009BE4BA /* handler */ = {
+			isa = PBXGroup;
+			children = (
+				F92C53670ECCE3FD009BE4BA /* breakpad_exc_server.c */,
+				F92C53680ECCE3FD009BE4BA /* breakpad_exc_server.h */,
+				F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */,
+				F92C536A0ECCE3FD009BE4BA /* breakpad_nlist_64.h */,
+				F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */,
+				F92C536C0ECCE3FD009BE4BA /* dynamic_images.h */,
+				F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */,
+				F92C536E0ECCE3FD009BE4BA /* exception_handler.h */,
+				F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */,
+				F92C53700ECCE3FD009BE4BA /* minidump_generator.h */,
+				F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */,
+				F92C53730ECCE3FD009BE4BA /* protected_memory_allocator.h */,
+			);
+			name = handler;
+			sourceTree = "<group>";
+		};
+		F92C53600ECCE3D6009BE4BA /* common */ = {
+			isa = PBXGroup;
+			children = (
+				D244540A12439BA0009BBCE0 /* memory_allocator_unittest.cc */,
+				F92C53870ECCE6C0009BE4BA /* convert_UTF.cc */,
+				F92C53880ECCE6C0009BE4BA /* convert_UTF.h */,
+				4D72CA0D13DFAD5C006CABE3 /* md5.cc */,
+				1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */,
+				1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */,
+				F92C53850ECCE6AD009BE4BA /* string_conversion.cc */,
+				F92C53860ECCE6AD009BE4BA /* string_conversion.h */,
+				F92C53840ECCE68D009BE4BA /* mac */,
+			);
+			name = common;
+			sourceTree = "<group>";
+		};
+		F92C53840ECCE68D009BE4BA /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				162F64F0161C577500CD68D5 /* arch_utilities.cc */,
+				162F64F1161C577500CD68D5 /* arch_utilities.h */,
+				8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */,
+				F9C77E0F0F7DDF650045F7DB /* testing */,
+				F9C44EE70EF0A3C1003AEBAA /* GTMLogger.h */,
+				F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */,
+				F92C53740ECCE635009BE4BA /* file_id.cc */,
+				F92C53750ECCE635009BE4BA /* file_id.h */,
+				F92C53760ECCE635009BE4BA /* HTTPMultipartUpload.h */,
+				F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */,
+				F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */,
+				F4DAB1DC19F1027100A5A838 /* launch_reporter.h */,
+				F92C53780ECCE635009BE4BA /* MachIPC.h */,
+				F92C53790ECCE635009BE4BA /* MachIPC.mm */,
+				4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */,
+				4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */,
+				F92C537A0ECCE635009BE4BA /* macho_id.cc */,
+				F92C537B0ECCE635009BE4BA /* macho_id.h */,
+				F92C537C0ECCE635009BE4BA /* macho_utilities.cc */,
+				F92C537D0ECCE635009BE4BA /* macho_utilities.h */,
+				F92C537E0ECCE635009BE4BA /* macho_walker.cc */,
+				F92C537F0ECCE635009BE4BA /* macho_walker.h */,
+				F92C53820ECCE635009BE4BA /* string_utilities.cc */,
+				F92C53830ECCE635009BE4BA /* string_utilities.h */,
+			);
+			name = mac;
+			sourceTree = "<group>";
+		};
+		F92C538D0ECCE6F2009BE4BA /* client */ = {
+			isa = PBXGroup;
+			children = (
+				16C7C915147D45AE00776EAD /* apple */,
+				F92C53990ECCE78E009BE4BA /* mac */,
+				F92C538E0ECCE70A009BE4BA /* minidump_file_writer-inl.h */,
+				F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */,
+				F92C53900ECCE70A009BE4BA /* minidump_file_writer.h */,
+				F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */,
+			);
+			name = client;
+			sourceTree = "<group>";
+		};
+		F92C53990ECCE78E009BE4BA /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				F9C77DDF0F7DD7CF0045F7DB /* tests */,
+				F9C44DAB0EF0726F003AEBAA /* testapp */,
+				F92C56A60ECE04B6009BE4BA /* sender */,
+				F92C55CD0ECD0053009BE4BA /* Framework */,
+				F92C53B50ECCE799009BE4BA /* crash_generation */,
+				F92C53590ECCE3BB009BE4BA /* handler */,
+			);
+			name = mac;
+			sourceTree = "<group>";
+		};
+		F92C53B50ECCE799009BE4BA /* crash_generation */ = {
+			isa = PBXGroup;
+			children = (
+				163201D41443019E00C4DBF5 /* ConfigFile.h */,
+				163201D51443019E00C4DBF5 /* ConfigFile.mm */,
+				D2F9A4C4121336C7002747C1 /* client_info.h */,
+				D2F9A4C5121336C7002747C1 /* crash_generation_client.h */,
+				D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */,
+				D2F9A4C7121336C7002747C1 /* crash_generation_server.h */,
+				D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */,
+				F9286B380F7EB25800A4DCC8 /* Inspector.h */,
+				F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */,
+				F92C53B70ECCE7B3009BE4BA /* Inspector.mm */,
+			);
+			name = crash_generation;
+			sourceTree = "<group>";
+		};
+		F92C55CD0ECD0053009BE4BA /* Framework */ = {
+			isa = PBXGroup;
+			children = (
+				F945859D0F78241E009A47BF /* Info.plist */,
+				F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */,
+				F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */,
+				F92C55CE0ECD0064009BE4BA /* Breakpad.h */,
+				F92C55CF0ECD0064009BE4BA /* Breakpad.mm */,
+			);
+			name = Framework;
+			sourceTree = "<group>";
+		};
+		F92C56A60ECE04B6009BE4BA /* sender */ = {
+			isa = PBXGroup;
+			children = (
+				16E02DB4147410D4008C604D /* uploader.mm */,
+				163202431443201300C4DBF5 /* uploader.h */,
+				F9B6309F100FF96B00D0F4AC /* goArrow.png */,
+				F92C56A70ECE04C5009BE4BA /* crash_report_sender.h */,
+				F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */,
+				F945849C0F280E3C009A47BF /* Localizable.strings */,
+				33880C7E0F9E097100817F82 /* InfoPlist.strings */,
+				3329D4EC0FA16D820007BBC5 /* Breakpad.xib */,
+				4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */,
+				F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */,
+			);
+			name = sender;
+			sourceTree = "<group>";
+		};
+		F95BB87D101F949F00AA053B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F95BB885101F949F00AA053B /* crash_report */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		F95BB88A101F94AC00AA053B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F95BB892101F94AC00AA053B /* dump_syms */,
+				8B31F7A111EF9A8700FCF3E4 /* macho_dump */,
+				8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */,
+				8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */,
+				8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */,
+				8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */,
+				8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */,
+				8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */,
+				8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */,
+				8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */,
+				8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */,
+				8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */,
+				8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */,
+				8B31F7B911EF9A8700FCF3E4 /* module_unittest */,
+				8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		F95BB895101F94C000AA053B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F95BB89F101F94C000AA053B /* symupload */,
+				F95BB8A1101F94C000AA053B /* minidump_upload */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		F95BB8A3101F94C300AA053B /* Tools */ = {
+			isa = PBXGroup;
+			children = (
+				F95BB894101F94C000AA053B /* symupload.xcodeproj */,
+				F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */,
+				F95BB87C101F949F00AA053B /* crash_report.xcodeproj */,
+			);
+			name = Tools;
+			sourceTree = "<group>";
+		};
+		F9C44DAB0EF0726F003AEBAA /* testapp */ = {
+			isa = PBXGroup;
+			children = (
+				F9C44DBF0EF0778F003AEBAA /* Controller.h */,
+				F9C44DC00EF0778F003AEBAA /* TestClass.h */,
+				F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */,
+				F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */,
+				F9C44DAC0EF07288003AEBAA /* Controller.m */,
+				F9C44DAD0EF07288003AEBAA /* crashduringload */,
+				F9C44DAE0EF07288003AEBAA /* crashInMain */,
+				F9C44DAF0EF07288003AEBAA /* Info.plist */,
+				F9C44DB00EF07288003AEBAA /* main.m */,
+				F9C44DB10EF07288003AEBAA /* TestClass.mm */,
+			);
+			name = testapp;
+			sourceTree = "<group>";
+		};
+		F9C77DDF0F7DD7CF0045F7DB /* tests */ = {
+			isa = PBXGroup;
+			children = (
+				1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */,
+				D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */,
+				D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */,
+				D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */,
+				D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */,
+				F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */,
+			);
+			name = tests;
+			sourceTree = "<group>";
+		};
+		F9C77E0F0F7DDF650045F7DB /* testing */ = {
+			isa = PBXGroup;
+			children = (
+				F9C77E110F7DDF810045F7DB /* GTMSenTestCase.h */,
+				F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */,
+			);
+			name = testing;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		8DC2EF500486A6940098B216 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F92C55D00ECD0064009BE4BA /* Breakpad.h in Headers */,
+				F92C56330ECD0DF1009BE4BA /* OnDemandServer.h in Headers */,
+				D2F9A4C9121336C7002747C1 /* client_info.h in Headers */,
+				D2F9A4CA121336C7002747C1 /* crash_generation_client.h in Headers */,
+				D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */,
+				163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */,
+				16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */,
+				421BC5BD21110C0300B8042E /* convert_old_arm64_context.h in Headers */,
+				162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */,
+				F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */,
+				1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D2F9A41112131EF0002747C1 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C56380ECD10B3009BE4BA /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		8DC2EF4F0486A6940098B216 /* Breakpad */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
+			buildPhases = (
+				F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */,
+				8DC2EF500486A6940098B216 /* Headers */,
+				8DC2EF520486A6940098B216 /* Resources */,
+				8DC2EF540486A6940098B216 /* Sources */,
+				8DC2EF560486A6940098B216 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				F92C56860ECD15EF009BE4BA /* PBXTargetDependency */,
+				F92C56880ECD15F1009BE4BA /* PBXTargetDependency */,
+				F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */,
+			);
+			name = Breakpad;
+			productInstallPath = "$(HOME)/Library/Frameworks";
+			productName = Breakpad;
+			productReference = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */;
+			productType = "com.apple.product-type.framework";
+		};
+		D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = D23F4BB012A868C400686C8D /* Build configuration list for PBXNativeTarget "minidump_generator_test_helper" */;
+			buildPhases = (
+				D23F4BA812A868A500686C8D /* Sources */,
+				D23F4BA912A868A500686C8D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = minidump_generator_test_helper;
+			productName = minidump_generator_test_helper;
+			productReference = D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */;
+			productType = "com.apple.product-type.tool";
+		};
+		D2F9A41412131EF0002747C1 /* gtest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = D2F9A42D12131F0E002747C1 /* Build configuration list for PBXNativeTarget "gtest" */;
+			buildPhases = (
+				D2F9A41112131EF0002747C1 /* Headers */,
+				D2F9A41212131EF0002747C1 /* Sources */,
+				D2F9A41312131EF0002747C1 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = gtest;
+			productName = gtest;
+			productReference = D2F9A41512131EF0002747C1 /* libgtest.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		D2F9A52A121383A1002747C1 /* crash_generation_server_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = D2F9A542121383A1002747C1 /* Build configuration list for PBXNativeTarget "crash_generation_server_test" */;
+			buildPhases = (
+				D2F9A52D121383A1002747C1 /* Sources */,
+				D2F9A53E121383A1002747C1 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				D2F9A52B121383A1002747C1 /* PBXTargetDependency */,
+			);
+			name = crash_generation_server_test;
+			productName = handler_test;
+			productReference = D2F9A546121383A1002747C1 /* crash_generation_server_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		F92C53530ECCE349009BE4BA /* Inspector */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F92C53580ECCE36D009BE4BA /* Build configuration list for PBXNativeTarget "Inspector" */;
+			buildPhases = (
+				F94584840F27FB40009A47BF /* Change install name of breakpadUtilities */,
+				F92C53510ECCE349009BE4BA /* Sources */,
+				F92C53520ECCE349009BE4BA /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				F92C564E0ECD10E5009BE4BA /* PBXTargetDependency */,
+			);
+			name = Inspector;
+			productName = Inspector;
+			productReference = F92C53540ECCE349009BE4BA /* Inspector */;
+			productType = "com.apple.product-type.tool";
+		};
+		F92C563B0ECD10B3009BE4BA /* breakpadUtilities */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F92C56670ECD11A3009BE4BA /* Build configuration list for PBXNativeTarget "breakpadUtilities" */;
+			buildPhases = (
+				F92C56380ECD10B3009BE4BA /* Headers */,
+				F92C56390ECD10B3009BE4BA /* Sources */,
+				F92C563A0ECD10B3009BE4BA /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = breakpadUtilities;
+			productName = breakpadUtilities;
+			productReference = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */;
+			productType = "com.apple.product-type.library.dynamic";
+		};
+		F92C569F0ECE04A7009BE4BA /* crash_report_sender */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F92C56A50ECE04A8009BE4BA /* Build configuration list for PBXNativeTarget "crash_report_sender" */;
+			buildPhases = (
+				F92C569C0ECE04A7009BE4BA /* Resources */,
+				F92C569D0ECE04A7009BE4BA /* Sources */,
+				F92C569E0ECE04A7009BE4BA /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = crash_report_sender;
+			productName = crash_report_sender;
+			productReference = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */;
+			productType = "com.apple.product-type.application";
+		};
+		F93803BD0F80820F004D428B /* generator_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F93803C40F80822E004D428B /* Build configuration list for PBXNativeTarget "generator_test" */;
+			buildPhases = (
+				F93803BB0F80820F004D428B /* Sources */,
+				F93803BC0F80820F004D428B /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				D23F4B3012A7E16200686C8D /* PBXTargetDependency */,
+				D23F4BBA12A8694C00686C8D /* PBXTargetDependency */,
+			);
+			name = generator_test;
+			productName = generator_test;
+			productReference = F93803BE0F80820F004D428B /* generator_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F93DE2D60F82A67700608B94 /* Build configuration list for PBXNativeTarget "minidump_file_writer_unittest" */;
+			buildPhases = (
+				F93DE2CE0F82A67300608B94 /* Sources */,
+				F93DE2CF0F82A67300608B94 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = minidump_file_writer_unittest;
+			productName = minidump_file_writer_unittest;
+			productReference = F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		F93DE32B0F82C55600608B94 /* handler_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F93DE3320F82C5D800608B94 /* Build configuration list for PBXNativeTarget "handler_test" */;
+			buildPhases = (
+				F93DE3290F82C55600608B94 /* Sources */,
+				F93DE32A0F82C55600608B94 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				D2F9A44312131F80002747C1 /* PBXTargetDependency */,
+			);
+			name = handler_test;
+			productName = handler_test;
+			productReference = F93DE32C0F82C55600608B94 /* handler_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		F9C44DA40EF060A8003AEBAA /* BreakpadTest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F9C44DAA0EF060A9003AEBAA /* Build configuration list for PBXNativeTarget "BreakpadTest" */;
+			buildPhases = (
+				F9C44DA10EF060A8003AEBAA /* Resources */,
+				F9C44DA20EF060A8003AEBAA /* Sources */,
+				F9C44DA30EF060A8003AEBAA /* Frameworks */,
+				F9C44E410EF08B17003AEBAA /* Copy Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				F9C44E1A0EF0790F003AEBAA /* PBXTargetDependency */,
+			);
+			name = BreakpadTest;
+			productName = BreakpadTest;
+			productReference = F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */;
+			productType = "com.apple.product-type.application";
+		};
+		F9C77DD90F7DD5CF0045F7DB /* UnitTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F9C77DDE0F7DD5D00045F7DB /* Build configuration list for PBXNativeTarget "UnitTests" */;
+			buildPhases = (
+				F9C77DD50F7DD5CF0045F7DB /* Resources */,
+				F9C77DD60F7DD5CF0045F7DB /* Sources */,
+				F9C77DD70F7DD5CF0045F7DB /* Frameworks */,
+				F9C77DD80F7DD5CF0045F7DB /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */,
+				F93DE3700F82CC1300608B94 /* PBXTargetDependency */,
+				F91AF6380FD60A74009D8BE2 /* PBXTargetDependency */,
+				D2F9A5DF12142A6A002747C1 /* PBXTargetDependency */,
+			);
+			name = UnitTests;
+			productName = UnitTests;
+			productReference = F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		0867D690FE84028FC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+			};
+			buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */;
+			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				da,
+				de,
+				es,
+				fr,
+				it,
+				ja,
+				nl,
+				no,
+				sl,
+				sv,
+				tr,
+			);
+			mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */;
+			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = F95BB87D101F949F00AA053B /* Products */;
+					ProjectRef = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
+				},
+				{
+					ProductGroup = F95BB88A101F94AC00AA053B /* Products */;
+					ProjectRef = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
+				},
+				{
+					ProductGroup = F95BB895101F94C000AA053B /* Products */;
+					ProjectRef = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				8DC2EF4F0486A6940098B216 /* Breakpad */,
+				F92C53530ECCE349009BE4BA /* Inspector */,
+				F92C563B0ECD10B3009BE4BA /* breakpadUtilities */,
+				F92C569F0ECE04A7009BE4BA /* crash_report_sender */,
+				F9C44DA40EF060A8003AEBAA /* BreakpadTest */,
+				F94585840F782326009A47BF /* All */,
+				F9C77DD90F7DD5CF0045F7DB /* UnitTests */,
+				F93803BD0F80820F004D428B /* generator_test */,
+				F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */,
+				F93DE32B0F82C55600608B94 /* handler_test */,
+				D2F9A41412131EF0002747C1 /* gtest */,
+				D2F9A52A121383A1002747C1 /* crash_generation_server_test */,
+				D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		8B31F7A111EF9A8700FCF3E4 /* macho_dump */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = macho_dump;
+			remoteRef = 8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libgtestmockall.a;
+			remoteRef = 8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = byte_cursor_unittest;
+			remoteRef = 8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = macho_reader_unittest;
+			remoteRef = 8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = stabs_reader_unittest;
+			remoteRef = 8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = bytereader_unittest;
+			remoteRef = 8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dwarf2reader_cfi_unittest;
+			remoteRef = 8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dwarf2diehandler_unittest;
+			remoteRef = 8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dwarf_cu_to_module_unittest;
+			remoteRef = 8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dwarf_line_to_module_unittest;
+			remoteRef = 8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dwarf_cfi_to_module_unittest;
+			remoteRef = 8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = stabs_to_module_unittest;
+			remoteRef = 8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7B911EF9A8700FCF3E4 /* module_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = module_unittest;
+			remoteRef = 8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = test_assembler_unittest;
+			remoteRef = 8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F95BB885101F949F00AA053B /* crash_report */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = crash_report;
+			remoteRef = F95BB884101F949F00AA053B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F95BB892101F94AC00AA053B /* dump_syms */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = dump_syms;
+			remoteRef = F95BB891101F94AC00AA053B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F95BB89F101F94C000AA053B /* symupload */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = symupload;
+			remoteRef = F95BB89E101F94C000AA053B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F95BB8A1101F94C000AA053B /* minidump_upload */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = minidump_upload;
+			remoteRef = F95BB8A0101F94C000AA053B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8DC2EF520486A6940098B216 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */,
+				F92C568A0ECD15F9009BE4BA /* Inspector in Resources */,
+				F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C569C0ECE04A7009BE4BA /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F945849E0F280E3C009A47BF /* Localizable.strings in Resources */,
+				4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */,
+				33880C800F9E097100817F82 /* InfoPlist.strings in Resources */,
+				3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */,
+				F9B630A0100FF96B00D0F4AC /* goArrow.png in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C44DA10EF060A8003AEBAA /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44DB30EF07288003AEBAA /* crashduringload in Resources */,
+				F9C44DB40EF07288003AEBAA /* crashInMain in Resources */,
+				F9C44DBC0EF072A0003AEBAA /* InfoPlist.strings in Resources */,
+				F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C77DD50F7DD5CF0045F7DB /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		F94584840F27FB40009A47BF /* Change install name of breakpadUtilities */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Change install name of breakpadUtilities";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
+		};
+		F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Change install name of breakpadUtilities";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
+		};
+		F9C77DD80F7DD5CF0045F7DB /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n\necho running minidump generator tests...\n\"${BUILT_PRODUCTS_DIR}/generator_test\"\necho Running exception handler tests...\n\"${BUILT_PRODUCTS_DIR}/handler_test\"\necho Running crash generation server tests...\n\"${BUILT_PRODUCTS_DIR}/crash_generation_server_test\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DC2EF540486A6940098B216 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */,
+				F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */,
+				F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */,
+				F4DAB1DD19F1027100A5A838 /* launch_reporter.cc in Sources */,
+				F92C56340ECD0DF1009BE4BA /* OnDemandServer.mm in Sources */,
+				D2F9A4CB121336C7002747C1 /* crash_generation_client.cc in Sources */,
+				D2F9A4CD121336C7002747C1 /* crash_generation_server.cc in Sources */,
+				163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */,
+				162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */,
+				1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */,
+				421BC5BC21110C0300B8042E /* convert_old_arm64_context.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D23F4BA812A868A500686C8D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D23F4BB112A868CB00686C8D /* minidump_generator_test_helper.cc in Sources */,
+				D23F4BB812A868F700686C8D /* MachIPC.mm in Sources */,
+				D246417012BAA40E005170D0 /* exception_handler.cc in Sources */,
+				D246417112BAA41C005170D0 /* crash_generation_client.cc in Sources */,
+				D246417512BAA438005170D0 /* minidump_generator.cc in Sources */,
+				D246417612BAA43F005170D0 /* dynamic_images.cc in Sources */,
+				D246417712BAA444005170D0 /* breakpad_nlist_64.cc in Sources */,
+				D246418812BAA4E3005170D0 /* string_utilities.cc in Sources */,
+				D246418C12BAA508005170D0 /* minidump_file_writer.cc in Sources */,
+				D246419012BAA52A005170D0 /* string_conversion.cc in Sources */,
+				D246419112BAA52F005170D0 /* convert_UTF.cc in Sources */,
+				D246419512BAA54C005170D0 /* file_id.cc in Sources */,
+				D246419612BAA55A005170D0 /* macho_id.cc in Sources */,
+				D24641A012BAA67F005170D0 /* macho_walker.cc in Sources */,
+				D24641AF12BAA82D005170D0 /* macho_utilities.cc in Sources */,
+				4D72CA2513DFAE1C006CABE3 /* md5.cc in Sources */,
+				4D61A26C14F43D42002D5862 /* bootstrap_compat.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D2F9A41212131EF0002747C1 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D2F9A43D12131F55002747C1 /* gmock-all.cc in Sources */,
+				D2F9A44012131F65002747C1 /* gtest_main.cc in Sources */,
+				D2F9A44112131F65002747C1 /* gtest-all.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D2F9A52D121383A1002747C1 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D2F9A553121383DC002747C1 /* crash_generation_server_test.cc in Sources */,
+				D2F9A52E121383A1002747C1 /* crash_generation_client.cc in Sources */,
+				D2F9A52F121383A1002747C1 /* crash_generation_server.cc in Sources */,
+				D2F9A530121383A1002747C1 /* MachIPC.mm in Sources */,
+				D2F9A531121383A1002747C1 /* breakpad_nlist_64.cc in Sources */,
+				D2F9A532121383A1002747C1 /* dynamic_images.cc in Sources */,
+				D2F9A533121383A1002747C1 /* exception_handler.cc in Sources */,
+				D2F9A534121383A1002747C1 /* minidump_generator.cc in Sources */,
+				D2F9A535121383A1002747C1 /* minidump_file_writer.cc in Sources */,
+				D2F9A536121383A1002747C1 /* convert_UTF.cc in Sources */,
+				D2F9A537121383A1002747C1 /* string_conversion.cc in Sources */,
+				D2F9A538121383A1002747C1 /* file_id.cc in Sources */,
+				D2F9A539121383A1002747C1 /* macho_id.cc in Sources */,
+				D2F9A53A121383A1002747C1 /* macho_utilities.cc in Sources */,
+				D2F9A53B121383A1002747C1 /* macho_walker.cc in Sources */,
+				D2F9A53C121383A1002747C1 /* string_utilities.cc in Sources */,
+				D24641EC12BAC6FB005170D0 /* logging.cc in Sources */,
+				D24641ED12BAC6FB005170D0 /* minidump.cc in Sources */,
+				D24641EE12BAC6FB005170D0 /* pathname_stripper.cc in Sources */,
+				D24641EF12BAC6FB005170D0 /* basic_code_modules.cc in Sources */,
+				4D72CA3913DFAE92006CABE3 /* md5.cc in Sources */,
+				4D61A26F14F43D48002D5862 /* bootstrap_compat.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C53510ECCE349009BE4BA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F92C53B80ECCE7B3009BE4BA /* Inspector.mm in Sources */,
+				F9286B3A0F7EB25800A4DCC8 /* InspectorMain.mm in Sources */,
+				163201E31443029300C4DBF5 /* ConfigFile.mm in Sources */,
+				4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C56390ECD10B3009BE4BA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F4F916B619F10FFC00B83BE4 /* launch_reporter.cc in Sources */,
+				162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */,
+				162F64F5161C579B00CD68D5 /* arch_utilities.h in Sources */,
+				D2A5DD301188633800081F03 /* breakpad_nlist_64.cc in Sources */,
+				F92C563F0ECD10CA009BE4BA /* convert_UTF.cc in Sources */,
+				F92C56400ECD10CA009BE4BA /* dynamic_images.cc in Sources */,
+				F92C56410ECD10CA009BE4BA /* file_id.cc in Sources */,
+				F92C56420ECD10CA009BE4BA /* macho_id.cc in Sources */,
+				F92C56430ECD10CA009BE4BA /* macho_utilities.cc in Sources */,
+				F92C56440ECD10CA009BE4BA /* macho_walker.cc in Sources */,
+				F92C56450ECD10CA009BE4BA /* MachIPC.mm in Sources */,
+				4D72CA0E13DFAD5C006CABE3 /* md5.cc in Sources */,
+				F92C56460ECD10CA009BE4BA /* minidump_file_writer.cc in Sources */,
+				F92C56470ECD10CA009BE4BA /* minidump_generator.cc in Sources */,
+				F92C56490ECD10CA009BE4BA /* string_utilities.cc in Sources */,
+				F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */,
+				4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F92C569D0ECE04A7009BE4BA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */,
+				F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */,
+				F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */,
+				16E02DB8147410F0008C604D /* uploader.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93803BB0F80820F004D428B /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D2C1DBE412AFC270006917BD /* logging.cc in Sources */,
+				D2C1DBE512AFC270006917BD /* minidump.cc in Sources */,
+				D2C1DBE612AFC270006917BD /* pathname_stripper.cc in Sources */,
+				D2C1DBE712AFC270006917BD /* basic_code_modules.cc in Sources */,
+				D2F9A4DF12133AD9002747C1 /* crash_generation_client.cc in Sources */,
+				D2F9A4E012133AD9002747C1 /* crash_generation_server.cc in Sources */,
+				D24BBD291211EDB100F3D417 /* MachIPC.mm in Sources */,
+				D2A5DD401188640400081F03 /* breakpad_nlist_64.cc in Sources */,
+				F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */,
+				F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */,
+				F93803CF0F8083B7004D428B /* minidump_generator.cc in Sources */,
+				F93803D00F8083B7004D428B /* minidump_file_writer.cc in Sources */,
+				F93803D10F8083B7004D428B /* convert_UTF.cc in Sources */,
+				F93803D20F8083B7004D428B /* string_conversion.cc in Sources */,
+				F93803D30F8083B7004D428B /* file_id.cc in Sources */,
+				F93803D40F8083B7004D428B /* macho_id.cc in Sources */,
+				F93803D50F8083B7004D428B /* macho_utilities.cc in Sources */,
+				F93803D60F8083B7004D428B /* macho_walker.cc in Sources */,
+				F93803D70F8083B7004D428B /* string_utilities.cc in Sources */,
+				D23F4B2E12A7E13200686C8D /* minidump_generator_test.cc in Sources */,
+				4D72CA2F13DFAE65006CABE3 /* md5.cc in Sources */,
+				4D61A26D14F43D43002D5862 /* bootstrap_compat.cc in Sources */,
+				1EEEB62B1720868C00F7E689 /* simple_string_dictionary.cc in Sources */,
+				1EEEB62A1720859200F7E689 /* simple_string_dictionary_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93DE2CE0F82A67300608B94 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F93DE2D90F82A73500608B94 /* minidump_file_writer.cc in Sources */,
+				F93DE2DA0F82A73500608B94 /* convert_UTF.cc in Sources */,
+				F93DE2DB0F82A73500608B94 /* string_conversion.cc in Sources */,
+				F93DE2D80F82A70E00608B94 /* minidump_file_writer_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93DE3290F82C55600608B94 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				421BC5BE21110C1000B8042E /* convert_old_arm64_context.cc in Sources */,
+				4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */,
+				D244536A12426F00009BBCE0 /* logging.cc in Sources */,
+				D244536B12426F00009BBCE0 /* minidump.cc in Sources */,
+				D244536C12426F00009BBCE0 /* pathname_stripper.cc in Sources */,
+				D244536D12426F00009BBCE0 /* basic_code_modules.cc in Sources */,
+				D2F9A4E112133AE2002747C1 /* crash_generation_client.cc in Sources */,
+				D2F9A4E212133AE2002747C1 /* crash_generation_server.cc in Sources */,
+				D24BBD321212CACF00F3D417 /* MachIPC.mm in Sources */,
+				D2A5DD411188642E00081F03 /* breakpad_nlist_64.cc in Sources */,
+				F93DE3350F82C66B00608B94 /* dynamic_images.cc in Sources */,
+				F93DE3360F82C66B00608B94 /* exception_handler.cc in Sources */,
+				F93DE3370F82C66B00608B94 /* minidump_generator.cc in Sources */,
+				F93DE3380F82C66B00608B94 /* minidump_file_writer.cc in Sources */,
+				F93DE3390F82C66B00608B94 /* convert_UTF.cc in Sources */,
+				F93DE33A0F82C66B00608B94 /* string_conversion.cc in Sources */,
+				F93DE33B0F82C66B00608B94 /* file_id.cc in Sources */,
+				F93DE33C0F82C66B00608B94 /* macho_id.cc in Sources */,
+				F93DE33D0F82C66B00608B94 /* macho_utilities.cc in Sources */,
+				F93DE33E0F82C66B00608B94 /* macho_walker.cc in Sources */,
+				F93DE33F0F82C66B00608B94 /* string_utilities.cc in Sources */,
+				D2F9A3D51212F87C002747C1 /* exception_handler_test.cc in Sources */,
+				4D72CA3813DFAE91006CABE3 /* md5.cc in Sources */,
+				4D61A26E14F43D45002D5862 /* bootstrap_compat.cc in Sources */,
+				1EEEB6271720831E00F7E689 /* BreakpadFramework_Test.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C44DA20EF060A8003AEBAA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C44DB20EF07288003AEBAA /* Controller.m in Sources */,
+				F9C44DB60EF07288003AEBAA /* main.m in Sources */,
+				F9C44DB70EF07288003AEBAA /* TestClass.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9C77DD60F7DD5CF0045F7DB /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9C77E130F7DDF810045F7DB /* GTMSenTestCase.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = all_unittests;
+			targetProxy = 8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */;
+		};
+		8B31051711F1010E00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F93803BD0F80820F004D428B /* generator_test */;
+			targetProxy = 8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		8B31051911F1010E00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */;
+			targetProxy = 8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F93DE32B0F82C55600608B94 /* handler_test */;
+			targetProxy = 8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = macho_dump;
+			targetProxy = 8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = minidump_upload;
+			targetProxy = 8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		D23F4B3012A7E16200686C8D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D2F9A41412131EF0002747C1 /* gtest */;
+			targetProxy = D23F4B2F12A7E16200686C8D /* PBXContainerItemProxy */;
+		};
+		D23F4BBA12A8694C00686C8D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */;
+			targetProxy = D23F4BB912A8694C00686C8D /* PBXContainerItemProxy */;
+		};
+		D2F9A44312131F80002747C1 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D2F9A41412131EF0002747C1 /* gtest */;
+			targetProxy = D2F9A44212131F80002747C1 /* PBXContainerItemProxy */;
+		};
+		D2F9A52B121383A1002747C1 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D2F9A41412131EF0002747C1 /* gtest */;
+			targetProxy = D2F9A52C121383A1002747C1 /* PBXContainerItemProxy */;
+		};
+		D2F9A5DF12142A6A002747C1 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D2F9A52A121383A1002747C1 /* crash_generation_server_test */;
+			targetProxy = D2F9A5DE12142A6A002747C1 /* PBXContainerItemProxy */;
+		};
+		F91AF6380FD60A74009D8BE2 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
+			targetProxy = F91AF6370FD60A74009D8BE2 /* PBXContainerItemProxy */;
+		};
+		F92C564E0ECD10E5009BE4BA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
+			targetProxy = F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */;
+		};
+		F92C56860ECD15EF009BE4BA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
+			targetProxy = F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */;
+		};
+		F92C56880ECD15F1009BE4BA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C53530ECCE349009BE4BA /* Inspector */;
+			targetProxy = F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */;
+		};
+		F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F93803BD0F80820F004D428B /* generator_test */;
+			targetProxy = F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */;
+		};
+		F93DE3700F82CC1300608B94 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F93DE32B0F82C55600608B94 /* handler_test */;
+			targetProxy = F93DE36F0F82CC1300608B94 /* PBXContainerItemProxy */;
+		};
+		F93DE3A70F830D1D00608B94 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F9C77DD90F7DD5CF0045F7DB /* UnitTests */;
+			targetProxy = F93DE3A60F830D1D00608B94 /* PBXContainerItemProxy */;
+		};
+		F94585880F78232B009A47BF /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
+			targetProxy = F94585870F78232B009A47BF /* PBXContainerItemProxy */;
+		};
+		F945858A0F78232E009A47BF /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C53530ECCE349009BE4BA /* Inspector */;
+			targetProxy = F94585890F78232E009A47BF /* PBXContainerItemProxy */;
+		};
+		F945858C0F782330009A47BF /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
+			targetProxy = F945858B0F782330009A47BF /* PBXContainerItemProxy */;
+		};
+		F945858E0F782333009A47BF /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
+			targetProxy = F945858D0F782333009A47BF /* PBXContainerItemProxy */;
+		};
+		F94585900F782336009A47BF /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F9C44DA40EF060A8003AEBAA /* BreakpadTest */;
+			targetProxy = F945858F0F782336009A47BF /* PBXContainerItemProxy */;
+		};
+		F95BB8B3101F94D300AA053B /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = dump_syms;
+			targetProxy = F95BB8B2101F94D300AA053B /* PBXContainerItemProxy */;
+		};
+		F95BB8B5101F94D300AA053B /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = symupload;
+			targetProxy = F95BB8B4101F94D300AA053B /* PBXContainerItemProxy */;
+		};
+		F95BB8B7101F94D300AA053B /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = crash_report;
+			targetProxy = F95BB8B6101F94D300AA053B /* PBXContainerItemProxy */;
+		};
+		F9C44E1A0EF0790F003AEBAA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
+			targetProxy = F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */;
+		};
+		F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
+			targetProxy = F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		33880C7E0F9E097100817F82 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				33880C7F0F9E097100817F82 /* English */,
+				DE43468711C7295D004F095F /* da */,
+				DE43468611C72958004F095F /* de */,
+				DE43468811C7295F004F095F /* es */,
+				DE43468911C72964004F095F /* fr */,
+				DE43468A11C72967004F095F /* it */,
+				DE43468B11C7296B004F095F /* ja */,
+				DE43468C11C7296D004F095F /* nl */,
+				DE43468D11C7296F004F095F /* no */,
+				DE43468E11C72971004F095F /* sl */,
+				DE43468F11C72973004F095F /* sv */,
+				DE43469011C72976004F095F /* tr */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		F945849C0F280E3C009A47BF /* Localizable.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F945849D0F280E3C009A47BF /* English */,
+				DE43467411C72855004F095F /* da */,
+				DE43467511C72857004F095F /* de */,
+				DE43467611C7285B004F095F /* es */,
+				DE43467711C72862004F095F /* fr */,
+				DE43467811C72869004F095F /* it */,
+				DE43467E11C728DC004F095F /* ja */,
+				DE43467911C7286D004F095F /* nl */,
+				DE43467A11C72873004F095F /* no */,
+				DE43467B11C72877004F095F /* sl */,
+				DE43467C11C7287A004F095F /* sv */,
+				DE43467F11C728E1004F095F /* tr */,
+			);
+			name = Localizable.strings;
+			sourceTree = "<group>";
+		};
+		F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F9C44DB90EF072A0003AEBAA /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F9C44DBB0EF072A0003AEBAA /* English */,
+			);
+			name = MainMenu.xib;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91AE08733DA50010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				FRAMEWORK_VERSION = A;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = Framework/Info.plist;
+				INSTALL_PATH = "@executable_path/../Frameworks";
+				PRODUCT_NAME = Breakpad;
+				WRAPPER_EXTENSION = framework;
+			};
+			name = Debug;
+		};
+		1DEB91AF08733DA50010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				FRAMEWORK_VERSION = A;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = Framework/Info.plist;
+				INSTALL_PATH = "@executable_path/../Frameworks";
+				PRODUCT_NAME = Breakpad;
+				WRAPPER_EXTENSION = framework;
+			};
+			name = Release;
+		};
+		1DEB91B208733DA50010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+				SDKROOT = macosx;
+			};
+			name = Debug;
+		};
+		1DEB91B308733DA50010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+			};
+			name = Release;
+		};
+		D23F4BAD12A868A600686C8D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				HEADER_SEARCH_PATHS = ../..;
+				INSTALL_PATH = /usr/local/bin;
+				PREBINDING = NO;
+				PRODUCT_NAME = minidump_generator_test_helper;
+			};
+			name = Debug;
+		};
+		D23F4BAE12A868A600686C8D /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				HEADER_SEARCH_PATHS = ../..;
+				INSTALL_PATH = /usr/local/bin;
+				PREBINDING = NO;
+				PRODUCT_NAME = minidump_generator_test_helper;
+			};
+			name = "Debug With Code Coverage";
+		};
+		D23F4BAF12A868A600686C8D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_MODEL_TUNING = G5;
+				HEADER_SEARCH_PATHS = ../..;
+				INSTALL_PATH = /usr/local/bin;
+				PREBINDING = NO;
+				PRODUCT_NAME = minidump_generator_test_helper;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		D2F9A41612131EF0002747C1 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = gtest;
+			};
+			name = Debug;
+		};
+		D2F9A41712131EF0002747C1 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = gtest;
+			};
+			name = "Debug With Code Coverage";
+		};
+		D2F9A41812131EF0002747C1 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = gtest;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		D2F9A543121383A1002747C1 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/build/Debug\"",
+				);
+				PRODUCT_NAME = crash_generation_server_test;
+			};
+			name = Debug;
+		};
+		D2F9A544121383A1002747C1 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\\\"$(SRCROOT)/build/Debug\\\"",
+				);
+				PRODUCT_NAME = crash_generation_server_test;
+			};
+			name = "Debug With Code Coverage";
+		};
+		D2F9A545121383A1002747C1 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+					../../testing/googletest,
+					../../testing/googletest/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\\\"$(SRCROOT)/build/Debug\\\"",
+				);
+				PRODUCT_NAME = crash_generation_server_test;
+			};
+			name = Release;
+		};
+		F92C53560ECCE34A009BE4BA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = Inspector;
+			};
+			name = Debug;
+		};
+		F92C53570ECCE34A009BE4BA /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = Inspector;
+			};
+			name = Release;
+		};
+		F92C563D0ECD10B3009BE4BA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				HEADER_SEARCH_PATHS = ../..;
+				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					"-headerpad_max_install_names",
+				);
+				PRODUCT_NAME = breakpadUtilities;
+			};
+			name = Debug;
+		};
+		F92C563E0ECD10B3009BE4BA /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				HEADER_SEARCH_PATHS = ../..;
+				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					"-headerpad_max_install_names",
+				);
+				PRODUCT_NAME = breakpadUtilities;
+			};
+			name = Release;
+		};
+		F92C56A30ECE04A8009BE4BA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
+				PRODUCT_NAME = crash_report_sender;
+			};
+			name = Debug;
+		};
+		F92C56A40ECE04A8009BE4BA /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
+				PRODUCT_NAME = crash_report_sender;
+			};
+			name = Release;
+		};
+		F93803C00F808210004D428B /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../..,
+					../../testing/googlemock/include,
+					../../testing/googletest/include,
+				);
+				PRODUCT_NAME = generator_test;
+			};
+			name = Debug;
+		};
+		F93803C10F808210004D428B /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../..,
+					../../testing/googlemock/include,
+					../../testing/googletest/include,
+				);
+				PRODUCT_NAME = generator_test;
+			};
+			name = Release;
+		};
+		F93DE2D30F82A67400608B94 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = minidump_file_writer_unittest;
+			};
+			name = Debug;
+		};
+		F93DE2D40F82A67400608B94 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = minidump_file_writer_unittest;
+			};
+			name = Release;
+		};
+		F93DE32E0F82C55700608B94 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				HEADER_SEARCH_PATHS = (
+					../../..,
+					../..,
+					../../testing/googletest,
+					../../testing/googletest/include,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/build/Debug\"",
+				);
+				PRODUCT_NAME = handler_test;
+			};
+			name = Debug;
+		};
+		F93DE32F0F82C55700608B94 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../../..,
+					../..,
+					../../testing/googletest,
+					../../testing/googletest/include,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/build/Debug\"",
+				);
+				PRODUCT_NAME = handler_test;
+			};
+			name = Release;
+		};
+		F93DE3B90F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BA0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				FRAMEWORK_VERSION = A;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = Framework/Info.plist;
+				INSTALL_PATH = "@executable_path/../Frameworks";
+				PRODUCT_NAME = Breakpad;
+				WRAPPER_EXTENSION = framework;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BB0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = Inspector;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BC0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				HEADER_SEARCH_PATHS = ../..;
+				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					"-headerpad_max_install_names",
+				);
+				PRODUCT_NAME = breakpadUtilities;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BD0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
+				PRODUCT_NAME = crash_report_sender;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BE0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
+				INFOPLIST_FILE = testapp/Info.plist;
+				PRODUCT_NAME = BreakpadTest;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3BF0F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = All;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3C00F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+				);
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				HEADER_SEARCH_PATHS = ../..;
+				INFOPLIST_FILE = "UnitTests-Info.plist";
+				PRODUCT_NAME = UnitTests;
+				WRAPPER_EXTENSION = octest;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3C10F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../..,
+					../../..,
+					../../testing/googlemock/include,
+					../../testing/googletest/include,
+				);
+				PRODUCT_NAME = generator_test;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3C20F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../..;
+				PRODUCT_NAME = minidump_file_writer_unittest;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F93DE3C30F830E7000608B94 /* Debug With Code Coverage */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					../../..,
+					../..,
+					../../testing/googletest,
+					../../testing/googletest/include,
+					../../testing/googlemock,
+					../../testing/googlemock/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/build/Debug\"",
+				);
+				PRODUCT_NAME = handler_test;
+			};
+			name = "Debug With Code Coverage";
+		};
+		F94585850F782326009A47BF /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = All;
+			};
+			name = Debug;
+		};
+		F94585860F782326009A47BF /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = All;
+			};
+			name = Release;
+		};
+		F9C44DA80EF060A8003AEBAA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
+				INFOPLIST_FILE = testapp/Info.plist;
+				PRODUCT_NAME = BreakpadTest;
+			};
+			name = Debug;
+		};
+		F9C44DA90EF060A8003AEBAA /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
+				INFOPLIST_FILE = testapp/Info.plist;
+				PRODUCT_NAME = BreakpadTest;
+			};
+			name = Release;
+		};
+		F9C77DDC0F7DD5D00045F7DB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+				);
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				INFOPLIST_FILE = "UnitTests-Info.plist";
+				PRODUCT_NAME = UnitTests;
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Debug;
+		};
+		F9C77DDD0F7DD5D00045F7DB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+				);
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				INFOPLIST_FILE = "UnitTests-Info.plist";
+				PRODUCT_NAME = UnitTests;
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91AE08733DA50010E9CD /* Debug */,
+				F93DE3BA0F830E7000608B94 /* Debug With Code Coverage */,
+				1DEB91AF08733DA50010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91B208733DA50010E9CD /* Debug */,
+				F93DE3B90F830E7000608B94 /* Debug With Code Coverage */,
+				1DEB91B308733DA50010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		D23F4BB012A868C400686C8D /* Build configuration list for PBXNativeTarget "minidump_generator_test_helper" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				D23F4BAD12A868A600686C8D /* Debug */,
+				D23F4BAE12A868A600686C8D /* Debug With Code Coverage */,
+				D23F4BAF12A868A600686C8D /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		D2F9A42D12131F0E002747C1 /* Build configuration list for PBXNativeTarget "gtest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				D2F9A41612131EF0002747C1 /* Debug */,
+				D2F9A41712131EF0002747C1 /* Debug With Code Coverage */,
+				D2F9A41812131EF0002747C1 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		D2F9A542121383A1002747C1 /* Build configuration list for PBXNativeTarget "crash_generation_server_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				D2F9A543121383A1002747C1 /* Debug */,
+				D2F9A544121383A1002747C1 /* Debug With Code Coverage */,
+				D2F9A545121383A1002747C1 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F92C53580ECCE36D009BE4BA /* Build configuration list for PBXNativeTarget "Inspector" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F92C53560ECCE34A009BE4BA /* Debug */,
+				F93DE3BB0F830E7000608B94 /* Debug With Code Coverage */,
+				F92C53570ECCE34A009BE4BA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F92C56670ECD11A3009BE4BA /* Build configuration list for PBXNativeTarget "breakpadUtilities" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F92C563D0ECD10B3009BE4BA /* Debug */,
+				F93DE3BC0F830E7000608B94 /* Debug With Code Coverage */,
+				F92C563E0ECD10B3009BE4BA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F92C56A50ECE04A8009BE4BA /* Build configuration list for PBXNativeTarget "crash_report_sender" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F92C56A30ECE04A8009BE4BA /* Debug */,
+				F93DE3BD0F830E7000608B94 /* Debug With Code Coverage */,
+				F92C56A40ECE04A8009BE4BA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F93803C40F80822E004D428B /* Build configuration list for PBXNativeTarget "generator_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F93803C00F808210004D428B /* Debug */,
+				F93DE3C10F830E7000608B94 /* Debug With Code Coverage */,
+				F93803C10F808210004D428B /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F93DE2D60F82A67700608B94 /* Build configuration list for PBXNativeTarget "minidump_file_writer_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F93DE2D30F82A67400608B94 /* Debug */,
+				F93DE3C20F830E7000608B94 /* Debug With Code Coverage */,
+				F93DE2D40F82A67400608B94 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F93DE3320F82C5D800608B94 /* Build configuration list for PBXNativeTarget "handler_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F93DE32E0F82C55700608B94 /* Debug */,
+				F93DE3C30F830E7000608B94 /* Debug With Code Coverage */,
+				F93DE32F0F82C55700608B94 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F94585930F78235C009A47BF /* Build configuration list for PBXAggregateTarget "All" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F94585850F782326009A47BF /* Debug */,
+				F93DE3BF0F830E7000608B94 /* Debug With Code Coverage */,
+				F94585860F782326009A47BF /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F9C44DAA0EF060A9003AEBAA /* Build configuration list for PBXNativeTarget "BreakpadTest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F9C44DA80EF060A8003AEBAA /* Debug */,
+				F93DE3BE0F830E7000608B94 /* Debug With Code Coverage */,
+				F9C44DA90EF060A8003AEBAA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F9C77DDE0F7DD5D00045F7DB /* Build configuration list for PBXNativeTarget "UnitTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F9C77DDC0F7DD5D00045F7DB /* Debug */,
+				F93DE3C00F830E7000608B94 /* Debug With Code Coverage */,
+				F9C77DDD0F7DD5D00045F7DB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/src/client/mac/Framework/Breakpad.h b/src/client/mac/Framework/Breakpad.h
new file mode 100644
index 0000000..9e191ce
--- /dev/null
+++ b/src/client/mac/Framework/Breakpad.h
@@ -0,0 +1,285 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Framework to provide a simple C API to crash reporting for
+// applications.  By default, if any machine-level exception (e.g.,
+// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef
+// object as follows:
+//
+// 1. Create a minidump file (see Breakpad for details)
+// 2. Prompt the user (using CFUserNotification)
+// 3. Invoke a command line reporting tool to send the minidump to a
+//    server
+//
+// By specifying parameters to the BreakpadCreate function, you can
+// modify the default behavior to suit your needs and wants and
+// desires.
+
+// A service name associated with the original bootstrap parent port, saved in
+// OnDemandServer and restored in Inspector.
+#define BREAKPAD_BOOTSTRAP_PARENT_PORT    "com.Breakpad.BootstrapParent"
+
+typedef void* BreakpadRef;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <CoreFoundation/CoreFoundation.h>
+#include <Foundation/Foundation.h>
+
+#include "BreakpadDefines.h"
+
+// Optional user-defined function to dec to decide if we should handle
+// this crash or forward it along.
+// Return true if you want Breakpad to handle it.
+// Return false if you want Breakpad to skip it
+// The exception handler always returns false, as if SEND_AND_EXIT were false
+// (which means the next exception handler will take the exception)
+typedef bool (*BreakpadFilterCallback)(int exception_type,
+                                       int exception_code,
+                                       mach_port_t crashing_thread,
+                                       void* context);
+
+// Create a new BreakpadRef object and install it as an exception
+// handler.  The |parameters| will typically be the contents of your
+// bundle's Info.plist.
+//
+// You can also specify these additional keys for customizable behavior:
+// Key:                           Value:
+// BREAKPAD_PRODUCT               Product name (e.g., "MyAwesomeProduct")
+//                                This one is used as the key to identify
+//                                the product when uploading. Falls back to
+//                                CFBundleName if not specified.
+//                                REQUIRED
+//
+// BREAKPAD_PRODUCT_DISPLAY       This is the display name, e.g. a pretty
+//                                name for the product when the crash_sender
+//                                pops up UI for the user. Falls back first to
+//                                CFBundleDisplayName and then to
+//                                BREAKPAD_PRODUCT if not specified.
+//
+// BREAKPAD_VERSION               Product version (e.g., 1.2.3), used
+//                                as metadata for crash report. Falls back to
+//                                CFBundleVersion if not specified.
+//                                REQUIRED
+//
+// BREAKPAD_VENDOR                Vendor name, used in UI (e.g. "A report has
+//                                been created that you can send to <vendor>")
+//
+// BREAKPAD_URL                   URL destination for reporting
+//                                REQUIRED
+//
+// BREAKPAD_REPORT_INTERVAL       # of seconds between sending
+//                                reports.  If an additional report is
+//                                generated within this time, it will
+//                                be ignored.  Default: 3600sec.
+//                                Specify 0 to send all reports.
+//
+// BREAKPAD_SKIP_CONFIRM          If true, the reporter will send the report
+//                                without any user intervention.
+//                                Defaults to NO
+//
+// BREAKPAD_CONFIRM_TIMEOUT       Number of seconds before the upload
+//                                confirmation dialog will be automatically
+//                                dismissed (cancelling the upload).
+//                                Default: 300 seconds (min of 60).
+//                                Specify 0 to prevent timeout.
+//
+// BREAKPAD_SEND_AND_EXIT         If true, the handler will exit after sending.
+//                                This will prevent any other handler (e.g.,
+//                                CrashReporter) from getting the crash.
+//                                Defaults TO YES
+//
+// BREAKPAD_DUMP_DIRECTORY        The directory to store crash-dumps
+//                                in. By default, we use
+//                                ~/Library/Breakpad/<BREAKPAD_PRODUCT>
+//                                The path you specify here is tilde-expanded.
+//
+// BREAKPAD_INSPECTOR_LOCATION    The full path to the Inspector executable.
+//                                Defaults to <Framework resources>/Inspector
+//
+// BREAKPAD_REPORTER_EXE_LOCATION The full path to the Reporter/sender
+//                                executable.
+//                                Default:
+//                                <Framework Resources>/crash_report_sender.app
+//
+// BREAKPAD_LOGFILES              Indicates an array of log file paths that
+//                                should be uploaded at crash time.
+//
+// BREAKPAD_REQUEST_COMMENTS      If true, the message dialog will have a
+//                                text box for the user to enter comments.
+//                                Default: NO
+//
+// BREAKPAD_REQUEST_EMAIL         If true and BREAKPAD_REQUEST_COMMENTS is also
+//                                true, the message dialog will have a text
+//                                box for the user to enter their email address.
+//                                Default: NO
+//
+// BREAKPAD_SERVER_TYPE           A parameter that tells Breakpad how to
+//                                rewrite the upload parameters for a specific
+//                                server type.  The currently valid values are
+//                                'socorro' or 'google'.  If you want to add
+//                                other types, see the function in
+//                                crash_report_sender.m that maps parameters to
+//                                URL parameters.  Defaults to 'google'.
+//
+// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static
+//                                parameters that are uploaded to the
+//                                server.  The parameters are sent as
+//                                is to the crash server.  Their
+//                                content isn't added to the minidump
+//                                but pass as URL parameters when
+//                                uploading theminidump to the crash
+//                                server.
+//
+// BREAKPAD_IN_PROCESS            A boolean NSNumber value. If YES, Breakpad
+//                                will write the dump file in-process and then
+//                                launch the reporter executable as a child
+//                                process.
+//=============================================================================
+// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are
+// required to have non-NULL values.  By default, the BREAKPAD_PRODUCT
+// will be the CFBundleName and the BREAKPAD_VERSION will be the
+// CFBundleVersion when these keys are present in the bundle's
+// Info.plist, which is usually passed in to BreakpadCreate() as an
+// NSDictionary (you could also pass in another dictionary that had
+// the same keys configured).  If the BREAKPAD_PRODUCT or
+// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will
+// fail.  You have been warned.
+//
+// If you are running in a debugger, Breakpad will not install, unless the
+// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero.
+//
+// The BREAKPAD_SKIP_CONFIRM and BREAKPAD_SEND_AND_EXIT default
+// values are NO and YES.  However, they can be controlled by setting their
+// values in a user or global plist.
+//
+// It's easiest to use Breakpad via the Framework, but if you're compiling the
+// code in directly, BREAKPAD_INSPECTOR_LOCATION and
+// BREAKPAD_REPORTER_EXE_LOCATION allow you to specify custom paths
+// to the helper executables.
+//
+//=============================================================================
+// The following are NOT user-supplied but are documented here for
+// completeness.  They are calculated by Breakpad during initialization &
+// crash-dump generation, or entered in by the user.
+//
+// BREAKPAD_PROCESS_START_TIME       The time, in seconds since the Epoch, the
+//                                   process started
+//
+// BREAKPAD_PROCESS_CRASH_TIME       The time, in seconds since the Epoch, the
+//                                   process crashed.
+//
+// BREAKPAD_PROCESS_UP_TIME          The total time in milliseconds the process
+//                                   has been running.  This parameter is not
+//                                   set until the crash-dump-generation phase.
+//
+// BREAKPAD_LOGFILE_KEY_PREFIX       Used to find out which parameters in the
+//                                   parameter dictionary correspond to log
+//                                   file paths.
+//
+// BREAKPAD_SERVER_PARAMETER_PREFIX  This prefix is used by Breakpad
+//                                   internally, because Breakpad uses
+//                                   the same dictionary internally to
+//                                   track both its internal
+//                                   configuration parameters and
+//                                   parameters meant to be uploaded
+//                                   to the server.  This string is
+//                                   used internally by Breakpad to
+//                                   prefix user-supplied parameter
+//                                   names so those can be sent to the
+//                                   server without leaking Breakpad's
+//                                   internal values.
+//
+// BREAKPAD_ON_DEMAND                Used internally to indicate to the
+//                                   Reporter that we're sending on-demand,
+//                                   not as result of a crash.
+//
+// BREAKPAD_COMMENTS                 The text the user provided as comments.
+//                                   Only used in crash_report_sender.
+
+// Returns a new BreakpadRef object on success, NULL otherwise.
+BreakpadRef BreakpadCreate(NSDictionary* parameters);
+
+// Uninstall and release the data associated with |ref|.
+void BreakpadRelease(BreakpadRef ref);
+
+// Clients may set an optional callback which gets called when a crash
+// occurs.  The callback function should return |true| if we should
+// handle the crash, generate a crash report, etc. or |false| if we
+// should ignore it and forward the crash (normally to CrashReporter).
+// Context is a pointer to arbitrary data to make the callback with.
+void BreakpadSetFilterCallback(BreakpadRef ref,
+                               BreakpadFilterCallback callback,
+                               void* context);
+
+// User defined key and value string storage.  Generally this is used
+// to configure Breakpad's internal operation, such as whether the
+// crash_sender should prompt the user, or the filesystem location for
+// the minidump file.  See Breakpad.h for some parameters that can be
+// set.  Anything longer than 255 bytes will be truncated. Note that
+// the string is converted to UTF8 before truncation, so any multibyte
+// character that straddles the 255(256 - 1 for terminator) byte limit
+// will be mangled.
+//
+// A maximum number of 64 key/value pairs are supported.  An assert()
+// will fire if more than this number are set.  Unfortunately, right
+// now, the same dictionary is used for both Breakpad's parameters AND
+// the Upload parameters.
+//
+// TODO (nealsid): Investigate how necessary this is if we don't
+// automatically upload parameters to the server anymore.
+// TODO (nealsid): separate server parameter dictionary from the
+// dictionary used to configure Breakpad, and document limits for each
+// independently.
+void BreakpadSetKeyValue(BreakpadRef ref, NSString* key, NSString* value);
+NSString* BreakpadKeyValue(BreakpadRef ref, NSString* key);
+void BreakpadRemoveKeyValue(BreakpadRef ref, NSString* key);
+
+// You can use this method to specify parameters that will be uploaded
+// to the crash server.  They will be automatically encoded as
+// necessary.  Note that as mentioned above there are limits on both
+// the number of keys and their length.
+void BreakpadAddUploadParameter(BreakpadRef ref, NSString* key,
+                                NSString* value);
+
+// This method will remove a previously-added parameter from the
+// upload parameter set.
+void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString* key);
+
+// Add a log file for Breakpad to read and send upon crash dump
+void BreakpadAddLogFile(BreakpadRef ref, NSString* logPathname);
+
+// Generate a minidump and send
+void BreakpadGenerateAndSendReport(BreakpadRef ref);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm
new file mode 100644
index 0000000..1a46b59
--- /dev/null
+++ b/src/client/mac/Framework/Breakpad.mm
@@ -0,0 +1,1043 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+
+
+#define IGNORE_DEBUGGER "BREAKPAD_IGNORE_DEBUGGER"
+
+#import "client/mac/Framework/Breakpad.h"
+
+#include <assert.h>
+#import <Foundation/Foundation.h>
+#include <pthread.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+
+#import "client/mac/crash_generation/Inspector.h"
+#import "client/mac/handler/exception_handler.h"
+#import "client/mac/Framework/Breakpad.h"
+#import "client/mac/Framework/OnDemandServer.h"
+#import "client/mac/handler/protected_memory_allocator.h"
+#include "common/mac/launch_reporter.h"
+#import "common/mac/MachIPC.h"
+#import "common/simple_string_dictionary.h"
+
+#if !defined(__EXCEPTIONS) || (__clang__ && !__has_feature(cxx_exceptions))
+// This file uses C++ try/catch (but shouldn't). Duplicate the macros from
+// <c++/4.2.1/exception_defines.h> allowing this file to work properly with
+// exceptions disabled even when other C++ libraries are used. #undef the try
+// and catch macros first in case libstdc++ is in use and has already provided
+// its own definitions.
+#undef try
+#define try       if (true)
+#undef catch
+#define catch(X)  if (false)
+#endif  // __EXCEPTIONS
+
+using google_breakpad::MachPortSender;
+using google_breakpad::MachReceiveMessage;
+using google_breakpad::MachSendMessage;
+using google_breakpad::ReceivePort;
+using google_breakpad::SimpleStringDictionary;
+
+//=============================================================================
+// We want any memory allocations which are used by breakpad during the
+// exception handling process (after a crash has happened) to be read-only
+// to prevent them from being smashed before a crash occurs.  Unfortunately
+// we cannot protect against smashes to our exception handling thread's
+// stack.
+//
+// NOTE: Any memory allocations which are not used during the exception
+// handling process may be allocated in the normal ways.
+//
+// The ProtectedMemoryAllocator class provides an Allocate() method which
+// we'll using in conjunction with placement operator new() to control
+// allocation of C++ objects.  Note that we don't use operator delete()
+// but instead call the objects destructor directly:  object->~ClassName();
+//
+ProtectedMemoryAllocator* gMasterAllocator = NULL;
+ProtectedMemoryAllocator* gKeyValueAllocator = NULL;
+ProtectedMemoryAllocator* gBreakpadAllocator = NULL;
+
+// Mutex for thread-safe access to the key/value dictionary used by breakpad.
+// It's a global instead of an instance variable of Breakpad
+// since it can't live in a protected memory area.
+pthread_mutex_t gDictionaryMutex;
+
+//=============================================================================
+// Stack-based object for thread-safe access to a memory-protected region.
+// It's assumed that normally the memory block (allocated by the allocator)
+// is protected (read-only).  Creating a stack-based instance of
+// ProtectedMemoryLocker will unprotect this block after taking the lock.
+// Its destructor will first re-protect the memory then release the lock.
+class ProtectedMemoryLocker {
+ public:
+  ProtectedMemoryLocker(pthread_mutex_t* mutex,
+                        ProtectedMemoryAllocator* allocator)
+      : mutex_(mutex),
+        allocator_(allocator) {
+    // Lock the mutex
+    __attribute__((unused)) int rv = pthread_mutex_lock(mutex_);
+    assert(rv == 0);
+
+    // Unprotect the memory
+    allocator_->Unprotect();
+  }
+
+  ~ProtectedMemoryLocker() {
+    // First protect the memory
+    allocator_->Protect();
+
+    // Then unlock the mutex
+    __attribute__((unused)) int rv = pthread_mutex_unlock(mutex_);
+    assert(rv == 0);
+  }
+
+ private:
+  ProtectedMemoryLocker();
+  ProtectedMemoryLocker(const ProtectedMemoryLocker&);
+  ProtectedMemoryLocker& operator=(const ProtectedMemoryLocker&);
+
+  pthread_mutex_t* mutex_;
+  ProtectedMemoryAllocator* allocator_;
+};
+
+//=============================================================================
+class Breakpad {
+ public:
+  // factory method
+  static Breakpad* Create(NSDictionary* parameters) {
+    // Allocate from our special allocation pool
+    Breakpad* breakpad =
+      new (gBreakpadAllocator->Allocate(sizeof(Breakpad)))
+        Breakpad();
+
+    if (!breakpad)
+      return NULL;
+
+    if (!breakpad->Initialize(parameters)) {
+      // Don't use operator delete() here since we allocated from special pool
+      breakpad->~Breakpad();
+      return NULL;
+    }
+
+    return breakpad;
+  }
+
+  ~Breakpad();
+
+  void SetKeyValue(NSString* key, NSString* value);
+  NSString* KeyValue(NSString* key);
+  void RemoveKeyValue(NSString* key);
+
+  void GenerateAndSendReport();
+
+  void SetFilterCallback(BreakpadFilterCallback callback, void* context) {
+    filter_callback_ = callback;
+    filter_callback_context_ = context;
+  }
+
+ private:
+  Breakpad()
+    : handler_(NULL),
+      config_params_(NULL),
+      send_and_exit_(true),
+      filter_callback_(NULL),
+      filter_callback_context_(NULL) {
+    inspector_path_[0] = 0;
+  }
+
+  bool Initialize(NSDictionary* parameters);
+  bool InitializeInProcess(NSDictionary* parameters);
+  bool InitializeOutOfProcess(NSDictionary* parameters);
+
+  bool ExtractParameters(NSDictionary* parameters);
+
+  // Dispatches to HandleException()
+  static bool ExceptionHandlerDirectCallback(void* context,
+                                             int exception_type,
+                                             int exception_code,
+                                             int exception_subcode,
+                                             mach_port_t crashing_thread);
+
+  bool HandleException(int exception_type,
+                       int exception_code,
+                       int exception_subcode,
+                       mach_port_t crashing_thread);
+
+  // Dispatches to HandleMinidump().
+  // This gets called instead of ExceptionHandlerDirectCallback when running
+  // with the BREAKPAD_IN_PROCESS option.
+  static bool HandleMinidumpCallback(const char* dump_dir,
+                                     const char* minidump_id,
+                                     void* context,
+                                     bool succeeded);
+
+  // This is only used when BREAKPAD_IN_PROCESS is YES.
+  bool HandleMinidump(const char* dump_dir, const char* minidump_id);
+
+  // Since ExceptionHandler (w/o namespace) is defined as typedef in OSX's
+  // MachineExceptions.h, we have to explicitly name the handler.
+  google_breakpad::ExceptionHandler* handler_; // The actual handler (STRONG)
+
+  char                    inspector_path_[PATH_MAX];  // Path to inspector tool
+
+  SimpleStringDictionary* config_params_; // Create parameters (STRONG)
+
+  OnDemandServer          inspector_;
+
+  bool                    send_and_exit_;  // Exit after sending, if true
+
+  BreakpadFilterCallback  filter_callback_;
+  void*                   filter_callback_context_;
+};
+
+#pragma mark -
+#pragma mark Helper functions
+
+//=============================================================================
+// Helper functions
+
+//=============================================================================
+static BOOL IsDebuggerActive() {
+  BOOL result = NO;
+  NSUserDefaults* stdDefaults = [NSUserDefaults standardUserDefaults];
+
+  // We check both defaults and the environment variable here
+
+  BOOL ignoreDebugger = [stdDefaults boolForKey:@IGNORE_DEBUGGER];
+
+  if (!ignoreDebugger) {
+    char* ignoreDebuggerStr = getenv(IGNORE_DEBUGGER);
+    ignoreDebugger = (ignoreDebuggerStr ? strtol(ignoreDebuggerStr, NULL, 10) : 0) != 0;
+  }
+
+  if (!ignoreDebugger) {
+    pid_t pid = getpid();
+    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
+    int mibSize = sizeof(mib) / sizeof(int);
+    size_t actualSize;
+
+    if (sysctl(mib, mibSize, NULL, &actualSize, NULL, 0) == 0) {
+      struct kinfo_proc* info = (struct kinfo_proc*)malloc(actualSize);
+
+      if (info) {
+        // This comes from looking at the Darwin xnu Kernel
+        if (sysctl(mib, mibSize, info, &actualSize, NULL, 0) == 0)
+          result = (info->kp_proc.p_flag & P_TRACED) ? YES : NO;
+
+        free(info);
+      }
+    }
+  }
+
+  return result;
+}
+
+//=============================================================================
+bool Breakpad::ExceptionHandlerDirectCallback(void* context,
+                                              int exception_type,
+                                              int exception_code,
+                                              int exception_subcode,
+                                              mach_port_t crashing_thread) {
+  Breakpad* breakpad = (Breakpad*)context;
+
+  // If our context is damaged or something, just return false to indicate that
+  // the handler should continue without us.
+  if (!breakpad)
+    return false;
+
+  return breakpad->HandleException( exception_type,
+                                    exception_code,
+                                    exception_subcode,
+                                    crashing_thread);
+}
+
+//=============================================================================
+bool Breakpad::HandleMinidumpCallback(const char* dump_dir,
+                                      const char* minidump_id,
+                                      void* context,
+                                      bool succeeded) {
+  Breakpad* breakpad = (Breakpad*)context;
+
+  // If our context is damaged or something, just return false to indicate that
+  // the handler should continue without us.
+  if (!breakpad || !succeeded)
+    return false;
+
+  return breakpad->HandleMinidump(dump_dir, minidump_id);
+}
+
+//=============================================================================
+#pragma mark -
+
+#include <dlfcn.h>
+
+//=============================================================================
+// Returns the pathname to the Resources directory for this version of
+// Breakpad which we are now running.
+//
+// Don't make the function static, since _dyld_lookup_and_bind_fully needs a
+// simple non-static C name
+//
+extern "C" {
+NSString* GetResourcePath();
+NSString* GetResourcePath() {
+  NSString* resourcePath = nil;
+
+  // If there are multiple breakpads installed then calling bundleWithIdentifier
+  // will not work properly, so only use that as a backup plan.
+  // We want to find the bundle containing the code where this function lives
+  // and work from there
+  //
+
+  // Get the pathname to the code which contains this function
+  Dl_info info;
+  if (dladdr((const void*)GetResourcePath, &info) != 0) {
+    NSFileManager* filemgr = [NSFileManager defaultManager];
+    NSString* filePath =
+        [filemgr stringWithFileSystemRepresentation:info.dli_fname
+                                             length:strlen(info.dli_fname)];
+    NSString* bundlePath = [filePath stringByDeletingLastPathComponent];
+    // The "Resources" directory should be in the same directory as the
+    // executable code, since that's how the Breakpad framework is built.
+    resourcePath = [bundlePath stringByAppendingPathComponent:@"Resources/"];
+  } else {
+    // fallback plan
+    NSBundle* bundle =
+        [NSBundle bundleWithIdentifier:@"com.Google.BreakpadFramework"];
+    resourcePath = [bundle resourcePath];
+  }
+
+  return resourcePath;
+}
+}  // extern "C"
+
+//=============================================================================
+bool Breakpad::Initialize(NSDictionary* parameters) {
+  // Initialize
+  config_params_ = NULL;
+  handler_ = NULL;
+
+  // Check for debugger
+  if (IsDebuggerActive()) {
+    return true;
+  }
+
+  // Gather any user specified parameters
+  if (!ExtractParameters(parameters)) {
+    return false;
+  }
+
+  if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
+    return InitializeInProcess(parameters);
+  else
+    return InitializeOutOfProcess(parameters);
+}
+
+//=============================================================================
+bool Breakpad::InitializeInProcess(NSDictionary* parameters) {
+  handler_ =
+      new (gBreakpadAllocator->Allocate(
+          sizeof(google_breakpad::ExceptionHandler)))
+          google_breakpad::ExceptionHandler(
+              config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY),
+              0, &HandleMinidumpCallback, this, true, 0);
+  return true;    
+}
+
+//=============================================================================
+bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
+  // Get path to Inspector executable.
+  NSString* inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
+
+  // Standardize path (resolve symlinkes, etc.)  and escape spaces
+  inspectorPathString = [inspectorPathString stringByStandardizingPath];
+  inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
+                                              componentsJoinedByString:@"\\ "];
+
+  // Create an on-demand server object representing the Inspector.
+  // In case of a crash, we simply need to call the LaunchOnDemand()
+  // method on it, then send a mach message to its service port.
+  // It will then launch and perform a process inspection of our crashed state.
+  // See the HandleException() method for the details.
+#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
+
+  name_t portName;
+  snprintf(portName, sizeof(name_t),  "%s%d", RECEIVE_PORT_NAME, getpid());
+
+  // Save the location of the Inspector
+  strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
+          sizeof(inspector_path_));
+
+  // Append a single command-line argument to the Inspector path
+  // representing the bootstrap name of the launch-on-demand receive port.
+  // When the Inspector is launched, it can use this to lookup the port
+  // by calling bootstrap_check_in().
+  strlcat(inspector_path_, " ", sizeof(inspector_path_));
+  strlcat(inspector_path_, portName, sizeof(inspector_path_));
+
+  kern_return_t kr = inspector_.Initialize(inspector_path_,
+                                           portName,
+                                           true);        // shutdown on exit
+
+  if (kr != KERN_SUCCESS) {
+    return false;
+  }
+
+  // Create the handler (allocating it in our special protected pool)
+  handler_ =
+      new (gBreakpadAllocator->Allocate(
+          sizeof(google_breakpad::ExceptionHandler)))
+          google_breakpad::ExceptionHandler(
+              Breakpad::ExceptionHandlerDirectCallback, this, true);
+  return true;
+}
+
+//=============================================================================
+Breakpad::~Breakpad() {
+  // Note that we don't use operator delete() on these pointers,
+  // since they were allocated by ProtectedMemoryAllocator objects.
+  //
+  if (config_params_) {
+    config_params_->~SimpleStringDictionary();
+  }
+
+  if (handler_)
+    handler_->~ExceptionHandler();
+}
+
+//=============================================================================
+bool Breakpad::ExtractParameters(NSDictionary* parameters) {
+  NSUserDefaults* stdDefaults = [NSUserDefaults standardUserDefaults];
+  NSString* skipConfirm = [stdDefaults stringForKey:@BREAKPAD_SKIP_CONFIRM];
+  NSString* sendAndExit = [stdDefaults stringForKey:@BREAKPAD_SEND_AND_EXIT];
+
+  NSString* serverType = [parameters objectForKey:@BREAKPAD_SERVER_TYPE];
+  NSString* display = [parameters objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
+  NSString* product = [parameters objectForKey:@BREAKPAD_PRODUCT];
+  NSString* version = [parameters objectForKey:@BREAKPAD_VERSION];
+  NSString* urlStr = [parameters objectForKey:@BREAKPAD_URL];
+  NSString* interval = [parameters objectForKey:@BREAKPAD_REPORT_INTERVAL];
+  NSString* inspectorPathString =
+      [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
+  NSString* reporterPathString =
+      [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
+  NSString* timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
+  NSArray*  logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
+  NSString* logFileTailSize =
+      [parameters objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE];
+  NSString* requestUserText =
+      [parameters objectForKey:@BREAKPAD_REQUEST_COMMENTS];
+  NSString* requestEmail = [parameters objectForKey:@BREAKPAD_REQUEST_EMAIL];
+  NSString* vendor =
+      [parameters objectForKey:@BREAKPAD_VENDOR];
+  NSString* dumpSubdirectory =
+      [parameters objectForKey:@BREAKPAD_DUMP_DIRECTORY];
+
+  NSDictionary* serverParameters =
+      [parameters objectForKey:@BREAKPAD_SERVER_PARAMETER_DICT];
+
+  // These may have been set above as user prefs, which take priority.
+  if (!skipConfirm) {
+    skipConfirm = [parameters objectForKey:@BREAKPAD_SKIP_CONFIRM];
+  }
+  if (!sendAndExit) {
+    sendAndExit = [parameters objectForKey:@BREAKPAD_SEND_AND_EXIT];
+  }
+
+  if (!product)
+    product = [parameters objectForKey:@"CFBundleName"];
+
+  if (!display) {
+    display = [parameters objectForKey:@"CFBundleDisplayName"];
+    if (!display) {
+      display = product;
+    }
+  }
+
+  if (!version)
+    version = [parameters objectForKey:@"CFBundleVersion"];
+
+  if (!interval)
+    interval = @"3600";
+
+  if (!timeout)
+    timeout = @"300";
+
+  if (!logFileTailSize)
+    logFileTailSize = @"200000";
+
+  if (!vendor) {
+    vendor = @"Vendor not specified";
+  }
+
+  // Normalize the values.
+  if (skipConfirm) {
+    skipConfirm = [skipConfirm uppercaseString];
+
+    if ([skipConfirm isEqualToString:@"YES"] ||
+        [skipConfirm isEqualToString:@"TRUE"] ||
+        [skipConfirm isEqualToString:@"1"])
+      skipConfirm = @"YES";
+    else
+      skipConfirm = @"NO";
+  } else {
+    skipConfirm = @"NO";
+  }
+
+  send_and_exit_ = true;
+  if (sendAndExit) {
+    sendAndExit = [sendAndExit uppercaseString];
+
+    if ([sendAndExit isEqualToString:@"NO"] ||
+        [sendAndExit isEqualToString:@"FALSE"] ||
+        [sendAndExit isEqualToString:@"0"])
+      send_and_exit_ = false;
+  }
+
+  if (requestUserText) {
+    requestUserText = [requestUserText uppercaseString];
+
+    if ([requestUserText isEqualToString:@"YES"] ||
+        [requestUserText isEqualToString:@"TRUE"] ||
+        [requestUserText isEqualToString:@"1"])
+      requestUserText = @"YES";
+    else
+      requestUserText = @"NO";
+  } else {
+    requestUserText = @"NO";
+  }
+
+  // Find the helper applications if not specified in user config.
+  NSString* resourcePath = nil;
+  if (!inspectorPathString || !reporterPathString) {
+    resourcePath = GetResourcePath();
+    if (!resourcePath) {
+      return false;
+    }
+  }
+
+  // Find Inspector.
+  if (!inspectorPathString) {
+    inspectorPathString =
+        [resourcePath stringByAppendingPathComponent:@"Inspector"];
+  }
+
+  // Verify that there is an Inspector tool.
+  if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
+    return false;
+  }
+
+  // Find Reporter.
+  if (!reporterPathString) {
+    reporterPathString =
+        [resourcePath
+         stringByAppendingPathComponent:@"crash_report_sender.app"];
+    reporterPathString =
+        [[NSBundle bundleWithPath:reporterPathString] executablePath];
+  }
+
+  // Verify that there is a Reporter application.
+  if (![[NSFileManager defaultManager]
+             fileExistsAtPath:reporterPathString]) {
+    return false;
+  }
+
+  if (!dumpSubdirectory) {
+    dumpSubdirectory = @"";
+  }
+
+  // The product, version, and URL are required values.
+  if (![product length]) {
+    return false;
+  }
+
+  if (![version length]) {
+    return false;
+  }
+
+  if (![urlStr length]) {
+    return false;
+  }
+
+  config_params_ =
+      new (gKeyValueAllocator->Allocate(sizeof(SimpleStringDictionary)) )
+        SimpleStringDictionary();
+
+  SimpleStringDictionary& dictionary = *config_params_;
+
+  dictionary.SetKeyValue(BREAKPAD_SERVER_TYPE,     [serverType UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_PRODUCT_DISPLAY, [display UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_PRODUCT,         [product UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_VERSION,         [version UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_URL,             [urlStr UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM,    [skipConfirm UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
+                         [inspectorPathString fileSystemRepresentation]);
+  dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
+                         [reporterPathString fileSystemRepresentation]);
+  dictionary.SetKeyValue(BREAKPAD_LOGFILE_UPLOAD_SIZE,
+                         [logFileTailSize UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_REQUEST_COMMENTS,
+                         [requestUserText UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_REQUEST_EMAIL, [requestEmail UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_VENDOR, [vendor UTF8String]);
+  dictionary.SetKeyValue(BREAKPAD_DUMP_DIRECTORY,
+                         [dumpSubdirectory UTF8String]);
+
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+  char timeStartedString[32];
+  sprintf(timeStartedString, "%zd", tv.tv_sec);
+  dictionary.SetKeyValue(BREAKPAD_PROCESS_START_TIME,
+                         timeStartedString);
+
+  if (logFilePaths) {
+    char logFileKey[255];
+    for(unsigned int i = 0; i < [logFilePaths count]; i++) {
+      sprintf(logFileKey,"%s%d", BREAKPAD_LOGFILE_KEY_PREFIX, i);
+      dictionary.SetKeyValue(logFileKey,
+                             [[logFilePaths objectAtIndex:i]
+                               fileSystemRepresentation]);
+    }
+  }
+
+  if (serverParameters) {
+    // For each key-value pair, call BreakpadAddUploadParameter()
+    NSEnumerator* keyEnumerator = [serverParameters keyEnumerator];
+    NSString* aParameter;
+    while ((aParameter = [keyEnumerator nextObject])) {
+      BreakpadAddUploadParameter(this, aParameter,
+				 [serverParameters objectForKey:aParameter]);
+    }
+  }
+  return true;
+}
+
+//=============================================================================
+void Breakpad::SetKeyValue(NSString* key, NSString* value) {
+  // We allow nil values. This is the same as removing the keyvalue.
+  if (!config_params_ || !key)
+    return;
+
+  config_params_->SetKeyValue([key UTF8String], [value UTF8String]);
+}
+
+//=============================================================================
+NSString* Breakpad::KeyValue(NSString* key) {
+  if (!config_params_ || !key)
+    return nil;
+
+  const char* value = config_params_->GetValueForKey([key UTF8String]);
+  return value ? [NSString stringWithUTF8String:value] : nil;
+}
+
+//=============================================================================
+void Breakpad::RemoveKeyValue(NSString* key) {
+  if (!config_params_ || !key) return;
+
+  config_params_->RemoveKey([key UTF8String]);
+}
+
+//=============================================================================
+void Breakpad::GenerateAndSendReport() {
+  config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "YES");
+  HandleException(0, 0, 0, mach_thread_self());
+  config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "NO");
+}
+
+//=============================================================================
+bool Breakpad::HandleException(int exception_type,
+                               int exception_code,
+                               int exception_subcode,
+                               mach_port_t crashing_thread) {
+  if (filter_callback_) {
+    bool should_handle = filter_callback_(exception_type,
+                                          exception_code,
+                                          crashing_thread,
+                                          filter_callback_context_);
+    if (!should_handle) return false;
+  }
+
+  // We need to reset the memory protections to be read/write,
+  // since LaunchOnDemand() requires changing state.
+  gBreakpadAllocator->Unprotect();
+  // Configure the server to launch when we message the service port.
+  // The reason we do this here, rather than at startup, is that we
+  // can leak a bootstrap service entry if this method is called and
+  // there never ends up being a crash.
+  inspector_.LaunchOnDemand();
+  gBreakpadAllocator->Protect();
+
+  // The Inspector should send a message to this port to verify it
+  // received our information and has finished the inspection.
+  ReceivePort acknowledge_port;
+
+  // Send initial information to the Inspector.
+  MachSendMessage message(kMsgType_InspectorInitialInfo);
+  message.AddDescriptor(mach_task_self());          // our task
+  message.AddDescriptor(crashing_thread);           // crashing thread
+  message.AddDescriptor(mach_thread_self());        // exception-handling thread
+  message.AddDescriptor(acknowledge_port.GetPort());// message receive port
+
+  InspectorInfo info;
+  info.exception_type = exception_type;
+  info.exception_code = exception_code;
+  info.exception_subcode = exception_subcode;
+  info.parameter_count = config_params_->GetCount();
+  message.SetData(&info, sizeof(info));
+
+  MachPortSender sender(inspector_.GetServicePort());
+
+  kern_return_t result = sender.SendMessage(message, 2000);
+
+  if (result == KERN_SUCCESS) {
+    // Now, send a series of key-value pairs to the Inspector.
+    const SimpleStringDictionary::Entry* entry = NULL;
+    SimpleStringDictionary::Iterator iter(*config_params_);
+
+    while ( (entry = iter.Next()) ) {
+      KeyValueMessageData keyvalue_data(*entry);
+
+      MachSendMessage keyvalue_message(kMsgType_InspectorKeyValuePair);
+      keyvalue_message.SetData(&keyvalue_data, sizeof(keyvalue_data));
+
+      result = sender.SendMessage(keyvalue_message, 2000);
+
+      if (result != KERN_SUCCESS) {
+        break;
+      }
+    }
+
+    if (result == KERN_SUCCESS) {
+      // Wait for acknowledgement that the inspection has finished.
+      MachReceiveMessage acknowledge_messsage;
+      result = acknowledge_port.WaitForMessage(&acknowledge_messsage, 5000);
+    }
+  }
+
+#if VERBOSE
+  PRINT_MACH_RESULT(result, "Breakpad: SendMessage ");
+  printf("Breakpad: Inspector service port = %#x\n",
+    inspector_.GetServicePort());
+#endif
+
+  // If we don't want any forwarding, return true here to indicate that we've
+  // processed things as much as we want.
+  if (send_and_exit_) return true;
+
+  return false;
+}
+
+//=============================================================================
+bool Breakpad::HandleMinidump(const char* dump_dir, const char* minidump_id) {
+  google_breakpad::ConfigFile config_file;
+  config_file.WriteFile(dump_dir, config_params_, dump_dir, minidump_id);
+  google_breakpad::LaunchReporter(
+      config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
+      config_file.GetFilePath());
+  return true;
+}
+
+//=============================================================================
+//=============================================================================
+
+#pragma mark -
+#pragma mark Public API
+
+//=============================================================================
+BreakpadRef BreakpadCreate(NSDictionary* parameters) {
+  try {
+    // This is confusing.  Our two main allocators for breakpad memory are:
+    //    - gKeyValueAllocator for the key/value memory
+    //    - gBreakpadAllocator for the Breakpad, ExceptionHandler, and other
+    //      breakpad allocations which are accessed at exception handling time.
+    //
+    // But in order to avoid these two allocators themselves from being smashed,
+    // we'll protect them as well by allocating them with gMasterAllocator.
+    //
+    // gMasterAllocator itself will NOT be protected, but this doesn't matter,
+    // since once it does its allocations and locks the memory, smashes to itself
+    // don't affect anything we care about.
+    gMasterAllocator =
+        new ProtectedMemoryAllocator(sizeof(ProtectedMemoryAllocator) * 2);
+
+    gKeyValueAllocator =
+        new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
+            ProtectedMemoryAllocator(sizeof(SimpleStringDictionary));
+
+    // Create a mutex for use in accessing the SimpleStringDictionary
+    int mutexResult = pthread_mutex_init(&gDictionaryMutex, NULL);
+    if (mutexResult == 0) {
+
+      // With the current compiler, gBreakpadAllocator is allocating 1444 bytes.
+      // Let's round up to the nearest page size.
+      //
+      int breakpad_pool_size = 4096;
+
+      /*
+       sizeof(Breakpad)
+       + sizeof(google_breakpad::ExceptionHandler)
+       + sizeof( STUFF ALLOCATED INSIDE ExceptionHandler )
+       */
+
+      gBreakpadAllocator =
+          new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
+              ProtectedMemoryAllocator(breakpad_pool_size);
+
+      // Stack-based autorelease pool for Breakpad::Create() obj-c code.
+      NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+      Breakpad* breakpad = Breakpad::Create(parameters);
+
+      if (breakpad) {
+        // Make read-only to protect against memory smashers
+        gMasterAllocator->Protect();
+        gKeyValueAllocator->Protect();
+        gBreakpadAllocator->Protect();
+        // Can uncomment this line to figure out how much space was actually
+        // allocated using this allocator
+        //     printf("gBreakpadAllocator allocated size = %d\n",
+        //         gBreakpadAllocator->GetAllocatedSize() );
+        [pool release];
+        return (BreakpadRef)breakpad;
+      }
+
+      [pool release];
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadCreate() : error\n");
+  }
+
+  if (gKeyValueAllocator) {
+    gKeyValueAllocator->~ProtectedMemoryAllocator();
+    gKeyValueAllocator = NULL;
+  }
+
+  if (gBreakpadAllocator) {
+    gBreakpadAllocator->~ProtectedMemoryAllocator();
+    gBreakpadAllocator = NULL;
+  }
+
+  delete gMasterAllocator;
+  gMasterAllocator = NULL;
+
+  return NULL;
+}
+
+//=============================================================================
+void BreakpadRelease(BreakpadRef ref) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (gMasterAllocator) {
+      gMasterAllocator->Unprotect();
+      gKeyValueAllocator->Unprotect();
+      gBreakpadAllocator->Unprotect();
+
+      breakpad->~Breakpad();
+
+      // Unfortunately, it's not possible to deallocate this stuff
+      // because the exception handling thread is still finishing up
+      // asynchronously at this point...  OK, it could be done with
+      // locks, etc.  But since BreakpadRelease() should usually only
+      // be called right before the process exits, it's not worth
+      // deallocating this stuff.
+#if 0
+      gKeyValueAllocator->~ProtectedMemoryAllocator();
+      gBreakpadAllocator->~ProtectedMemoryAllocator();
+      delete gMasterAllocator;
+
+      gMasterAllocator = NULL;
+      gKeyValueAllocator = NULL;
+      gBreakpadAllocator = NULL;
+#endif
+
+      pthread_mutex_destroy(&gDictionaryMutex);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRelease() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadSetKeyValue(BreakpadRef ref, NSString* key, NSString* value) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      breakpad->SetKeyValue(key, value);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
+  }
+}
+
+void BreakpadAddUploadParameter(BreakpadRef ref,
+                                NSString* key,
+                                NSString* value) {
+  // The only difference, internally, between an upload parameter and
+  // a key value one that is set with BreakpadSetKeyValue is that we
+  // prepend the keyname with a special prefix.  This informs the
+  // crash sender that the parameter should be sent along with the
+  // POST of the crash dump upload.
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      NSString* prefixedKey = [@BREAKPAD_SERVER_PARAMETER_PREFIX
+				stringByAppendingString:key];
+      breakpad->SetKeyValue(prefixedKey, value);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
+  }
+}
+
+void BreakpadRemoveUploadParameter(BreakpadRef ref,
+                                   NSString* key) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      NSString* prefixedKey = [NSString stringWithFormat:@"%@%@",
+                                        @BREAKPAD_SERVER_PARAMETER_PREFIX, key];
+      breakpad->RemoveKeyValue(prefixedKey);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
+  }
+}
+//=============================================================================
+NSString* BreakpadKeyValue(BreakpadRef ref, NSString* key) {
+  NSString* value = nil;
+
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (!breakpad || !key || !gKeyValueAllocator)
+      return nil;
+
+    ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+    value = breakpad->KeyValue(key);
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadKeyValue() : error\n");
+  }
+
+  return value;
+}
+
+//=============================================================================
+void BreakpadRemoveKeyValue(BreakpadRef ref, NSString* key) {
+  try {
+    // Not called at exception time
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && key && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      breakpad->RemoveKeyValue(key);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadGenerateAndSendReport(BreakpadRef ref) {
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && gKeyValueAllocator) {
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
+
+      gBreakpadAllocator->Unprotect();
+      breakpad->GenerateAndSendReport();
+      gBreakpadAllocator->Protect();
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadGenerateAndSendReport() : error\n");
+  }
+}
+
+//=============================================================================
+void BreakpadSetFilterCallback(BreakpadRef ref,
+                               BreakpadFilterCallback callback,
+                               void* context) {
+
+  try {
+    Breakpad* breakpad = (Breakpad*)ref;
+
+    if (breakpad && gBreakpadAllocator) {
+      // share the dictionary mutex here (we really don't need a mutex)
+      ProtectedMemoryLocker locker(&gDictionaryMutex, gBreakpadAllocator);
+
+      breakpad->SetFilterCallback(callback, context);
+    }
+  } catch(...) {    // don't let exceptions leave this C API
+    fprintf(stderr, "BreakpadSetFilterCallback() : error\n");
+  }
+}
+
+//============================================================================
+void BreakpadAddLogFile(BreakpadRef ref, NSString* logPathname) {
+  int logFileCounter = 0;
+
+  NSString* logFileKey = [NSString stringWithFormat:@"%@%d",
+                                   @BREAKPAD_LOGFILE_KEY_PREFIX,
+                                   logFileCounter];
+
+  NSString* existingLogFilename = nil;
+  existingLogFilename = BreakpadKeyValue(ref, logFileKey);
+  // Find the first log file key that we can use by testing for existence
+  while (existingLogFilename) {
+    if ([existingLogFilename isEqualToString:logPathname]) {
+      return;
+    }
+    logFileCounter++;
+    logFileKey = [NSString stringWithFormat:@"%@%d",
+                           @BREAKPAD_LOGFILE_KEY_PREFIX,
+                           logFileCounter];
+    existingLogFilename = BreakpadKeyValue(ref, logFileKey);
+  }
+
+  BreakpadSetKeyValue(ref, logFileKey, logPathname);
+}
diff --git a/src/client/mac/Framework/Breakpad_Prefix.pch b/src/client/mac/Framework/Breakpad_Prefix.pch
new file mode 100644
index 0000000..7298666
--- /dev/null
+++ b/src/client/mac/Framework/Breakpad_Prefix.pch
@@ -0,0 +1,8 @@
+//
+// Prefix header for all source files of the 'Breakpad' target in the
+// 'Breakpad' project.
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif
diff --git a/src/client/mac/Framework/Info.plist b/src/client/mac/Framework/Info.plist
new file mode 100644
index 0000000..e43badd
--- /dev/null
+++ b/src/client/mac/Framework/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>com.googlecode.google-breakpad</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>FMWK</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>NSPrincipalClass</key>
+	<string></string>
+</dict>
+</plist>
diff --git a/src/client/mac/Framework/OnDemandServer.h b/src/client/mac/Framework/OnDemandServer.h
new file mode 100644
index 0000000..be0d2b7
--- /dev/null
+++ b/src/client/mac/Framework/OnDemandServer.h
@@ -0,0 +1,145 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <mach/mach.h>
+#include <servers/bootstrap.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+//==============================================================================
+// class OnDemandServer :
+//    A basic on-demand server launcher supporting a single named service port
+//
+// Example Usage :
+//
+//  kern_return_t result;
+//  OnDemandServer* server = OnDemandServer::Create("/tmp/myserver",
+//                                                  "com.MyCompany.MyServiceName",
+//                                                  true,
+//                                                  &result);
+//
+//  if (server) {
+//    server->LaunchOnDemand();
+//    mach_port_t service_port = GetServicePort();
+//
+//    // Send a mach message to service_port and "myserver" will be launched
+//  }
+//
+//
+//                  ---- Now in the server code ----
+//
+//  // "myserver" should get the service port and read the message which
+//  // launched it:
+//  mach_port_t service_rcv_port_;
+//  kern_return_t kr = bootstrap_check_in(bootstrap_port,
+//                                      "com.MyCompany.MyServiceName",
+//                                      &service_rcv_port_);
+//  // mach_msg() read service_rcv_port_ ....
+//
+//  ....
+//
+//  // Later "myserver" may want to unregister the service if it doesn't
+//  // want its bootstrap service to stick around after it exits.
+//
+//  // DO NOT use mach_port_deallocate() here -- it will fail and the
+//  // following bootstrap_register() will also fail leaving our service
+//  // name hanging around forever (until reboot)
+//  kern_return_t kr = mach_port_destroy(mach_task_self(), service_rcv_port_);
+//
+//  kr = bootstrap_register(bootstrap_port,
+//                          "com.MyCompany.MyServiceName",
+//                          MACH_PORT_NULL);
+
+class OnDemandServer {
+ public:
+  // must call Initialize() to be useful
+  OnDemandServer()
+    : server_port_(MACH_PORT_NULL),
+      service_port_(MACH_PORT_NULL),
+      unregister_on_cleanup_(true) {
+  }
+
+  // Creates the bootstrap server and service
+  kern_return_t Initialize(const char* server_command,
+                           const char* service_name,
+                           bool unregister_on_cleanup);
+
+  // Returns an OnDemandServer object if successful, or NULL if there's
+  // an error.  The error result will be returned in out_result.
+  //
+  //    server_command : the full path name including optional command-line
+  //      arguments to the executable representing the server
+  //
+  //    service_name : represents service name
+  //      something like "com.company.ServiceName"
+  //
+  //    unregister_on_cleanup : if true, unregisters the service name
+  //      when the OnDemandServer is deleted -- unregistering will
+  //      ONLY be possible if LaunchOnDemand() has NOT been called.
+  //      If false, then the service will continue to be registered
+  //      even after the current process quits.
+  //
+  //    out_result : if non-NULL, returns the result
+  //      this value will be KERN_SUCCESS if Create() returns non-NULL
+  //
+  static OnDemandServer* Create(const char *server_command,
+                                const char* service_name,
+                                bool unregister_on_cleanup,
+                                kern_return_t* out_result);
+
+  // Cleans up and if LaunchOnDemand() has not yet been called then
+  // the bootstrap service will be unregistered.
+  ~OnDemandServer();
+
+  // This must be called if we intend to commit to launching the server
+  // by sending a mach message to our service port.  Do not call it otherwise
+  // or it will be difficult (impossible?) to unregister the service name.
+  void LaunchOnDemand();
+
+  // This is the port we need to send a mach message to after calling
+  // LaunchOnDemand().  Sending a message causing an immediate launch
+  // of the server
+  mach_port_t GetServicePort() { return service_port_; }
+
+ private:
+  // Disallow copy constructor
+  OnDemandServer(const OnDemandServer&);
+
+  // Cleans up and if LaunchOnDemand() has not yet been called then
+  // the bootstrap service will be unregistered.
+  void Unregister();
+
+  name_t      service_name_;
+
+  mach_port_t server_port_;
+  mach_port_t service_port_;
+  bool        unregister_on_cleanup_;
+};
diff --git a/src/client/mac/Framework/OnDemandServer.mm b/src/client/mac/Framework/OnDemandServer.mm
new file mode 100644
index 0000000..b6b59ca
--- /dev/null
+++ b/src/client/mac/Framework/OnDemandServer.mm
@@ -0,0 +1,189 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "OnDemandServer.h"
+
+#import "Breakpad.h"
+#include "common/mac/bootstrap_compat.h"
+
+#if DEBUG
+  #define PRINT_MACH_RESULT(result_, message_) \
+    printf(message_"%s (%d)\n", mach_error_string(result_), result_ );
+#if defined(MAC_OS_X_VERSION_10_5) && \
+    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+  #define PRINT_BOOTSTRAP_RESULT(result_, message_) \
+    printf(message_"%s (%d)\n", bootstrap_strerror(result_), result_ );
+#else
+  #define PRINT_BOOTSTRAP_RESULT(result_, message_) \
+    PRINT_MACH_RESULT(result_, message_)
+#endif
+#else
+  #define PRINT_MACH_RESULT(result_, message_)
+  #define PRINT_BOOTSTRAP_RESULT(result_, message_)
+#endif
+
+//==============================================================================
+OnDemandServer* OnDemandServer::Create(const char* server_command,
+                                       const char* service_name,
+                                       bool unregister_on_cleanup,
+                                       kern_return_t* out_result) {
+  OnDemandServer* server = new OnDemandServer();
+
+  if (!server) return NULL;
+
+  kern_return_t result = server->Initialize(server_command,
+                                            service_name,
+                                            unregister_on_cleanup);
+
+  if (out_result) {
+    *out_result = result;
+  }
+
+  if (result == KERN_SUCCESS) {
+    return server;
+  }
+
+  delete server;
+  return NULL;
+}
+
+//==============================================================================
+kern_return_t OnDemandServer::Initialize(const char* server_command,
+                                         const char* service_name,
+                                         bool unregister_on_cleanup) {
+  unregister_on_cleanup_ = unregister_on_cleanup;
+
+  mach_port_t self_task = mach_task_self();
+
+  mach_port_t bootstrap_port;
+  kern_return_t kr = task_get_bootstrap_port(self_task, &bootstrap_port);
+  if (kr != KERN_SUCCESS) {
+    PRINT_MACH_RESULT(kr, "task_get_bootstrap_port(): ");
+    return kr;
+  }
+
+  mach_port_t bootstrap_subset_port;
+  kr = bootstrap_subset(bootstrap_port, self_task, &bootstrap_subset_port);
+  if (kr != BOOTSTRAP_SUCCESS) {
+    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_subset(): ");
+    return kr;
+  }
+
+  // The inspector will be invoked with its bootstrap port set to the subset,
+  // but the sender will need access to the original bootstrap port. Although
+  // the original port is the subset's parent, bootstrap_parent can't be used
+  // because it requires extra privileges. Stash the original bootstrap port
+  // in the subset by registering it under a known name. The inspector will
+  // recover this port and set it as its own bootstrap port in Inspector.mm
+  // Inspector::ResetBootstrapPort.
+  kr = breakpad::BootstrapRegister(
+      bootstrap_subset_port,
+      const_cast<char*>(BREAKPAD_BOOTSTRAP_PARENT_PORT),
+      bootstrap_port);
+  if (kr != BOOTSTRAP_SUCCESS) {
+    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_register(): ");
+    return kr;
+  }
+
+  kr = bootstrap_create_server(bootstrap_subset_port,
+                               const_cast<char*>(server_command),
+                               geteuid(),       // server uid
+                               true,
+                               &server_port_);
+  if (kr != BOOTSTRAP_SUCCESS) {
+    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_create_server(): ");
+    return kr;
+  }
+
+  strlcpy(service_name_, service_name, sizeof(service_name_));
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+  // Create a service called service_name, and return send rights to
+  // that port in service_port_.
+  kr = bootstrap_create_service(server_port_,
+                                const_cast<char*>(service_name),
+                                &service_port_);
+#pragma clang diagnostic pop
+  if (kr != BOOTSTRAP_SUCCESS) {
+    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_create_service(): ");
+
+    // perhaps the service has already been created - try to look it up
+    kr = bootstrap_look_up(bootstrap_port, (char*)service_name, &service_port_);
+
+    if (kr != BOOTSTRAP_SUCCESS) {
+      PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_look_up(): ");
+      Unregister();  // clean up server port
+      return kr;
+    }
+  }
+
+  return KERN_SUCCESS;
+}
+
+//==============================================================================
+OnDemandServer::~OnDemandServer() {
+  if (unregister_on_cleanup_) {
+    Unregister();
+  }
+}
+
+//==============================================================================
+void OnDemandServer::LaunchOnDemand() {
+  // We need to do this, since the launched server is another process
+  // and holding on to this port delays launching until the current process
+  // exits!
+  mach_port_deallocate(mach_task_self(), server_port_);
+  server_port_ = MACH_PORT_DEAD;
+
+  // Now, the service is still registered and all we need to do is send
+  // a mach message to the service port in order to launch the server.
+}
+
+//==============================================================================
+void OnDemandServer::Unregister() {
+  if (service_port_ != MACH_PORT_NULL) {
+    mach_port_deallocate(mach_task_self(), service_port_);
+    service_port_ = MACH_PORT_NULL;
+  }
+
+  if (server_port_ != MACH_PORT_NULL) {
+    // unregister the service
+    kern_return_t kr = breakpad::BootstrapRegister(server_port_,
+                                                   service_name_,
+                                                   MACH_PORT_NULL);
+
+    if (kr != KERN_SUCCESS) {
+      PRINT_MACH_RESULT(kr, "Breakpad UNREGISTER : bootstrap_register() : ");
+    }
+
+    mach_port_deallocate(mach_task_self(), server_port_);
+    server_port_ = MACH_PORT_NULL;
+  }
+}
diff --git a/src/client/mac/UnitTests-Info.plist b/src/client/mac/UnitTests-Info.plist
new file mode 100644
index 0000000..6501355
--- /dev/null
+++ b/src/client/mac/UnitTests-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+</dict>
+</plist>
diff --git a/src/client/mac/crash_generation/ConfigFile.h b/src/client/mac/crash_generation/ConfigFile.h
new file mode 100644
index 0000000..11bc2e4
--- /dev/null
+++ b/src/client/mac/crash_generation/ConfigFile.h
@@ -0,0 +1,83 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Utility class that can persist a SimpleStringDictionary to disk.
+
+#import <Foundation/Foundation.h>
+
+#include "common/simple_string_dictionary.h"
+
+namespace google_breakpad {
+
+BOOL EnsureDirectoryPathExists(NSString* dirPath);
+
+//=============================================================================
+class ConfigFile {
+ public:
+  ConfigFile() {
+    config_file_ = -1;
+    config_file_path_[0] = 0;
+    has_created_file_ = false;
+  }
+
+  ~ConfigFile() {
+  }
+
+  void WriteFile(const char* directory,
+                 const SimpleStringDictionary* configurationParameters,
+                 const char* dump_dir,
+                 const char* minidump_id);
+
+  const char* GetFilePath() { return config_file_path_; }
+
+  void Unlink() {
+    if (config_file_ != -1)
+      unlink(config_file_path_);
+
+    config_file_ = -1;
+  }
+
+ private:
+  BOOL WriteData(const void* data, size_t length);
+
+  BOOL AppendConfigData(const char* key,
+                        const void* data,
+                        size_t length);
+
+  BOOL AppendConfigString(const char* key,
+                          const char* value);
+
+  BOOL AppendCrashTimeParameters(const char* processStartTimeString);
+
+  int   config_file_;                    // descriptor for config file
+  char  config_file_path_[PATH_MAX];     // Path to configuration file
+  bool  has_created_file_;
+};
+
+} // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/ConfigFile.mm b/src/client/mac/crash_generation/ConfigFile.mm
new file mode 100644
index 0000000..57d0759
--- /dev/null
+++ b/src/client/mac/crash_generation/ConfigFile.mm
@@ -0,0 +1,167 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Utility class that can persist a SimpleStringDictionary to disk.
+
+#import "client/mac/crash_generation/ConfigFile.h"
+
+#import <Foundation/Foundation.h>
+#include <stdio.h>
+#include <sys/time.h>
+
+#import "client/apple/Framework/BreakpadDefines.h"
+#import "common/mac/GTMDefines.h"
+
+
+namespace google_breakpad {
+
+//=============================================================================
+BOOL EnsureDirectoryPathExists(NSString* dirPath) {
+  NSFileManager* mgr = [NSFileManager defaultManager];
+
+  NSDictionary* attrs =
+    [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedLong:0750]
+                                forKey:NSFilePosixPermissions];
+
+  return [mgr createDirectoryAtPath:dirPath
+        withIntermediateDirectories:YES
+                         attributes:attrs
+                              error:nil];
+}
+
+//=============================================================================
+BOOL ConfigFile::WriteData(const void* data, size_t length) {
+  size_t result = write(config_file_, data, length);
+
+  return result == length;
+}
+
+//=============================================================================
+BOOL ConfigFile::AppendConfigData(const char* key,
+                                  const void* data, size_t length) {
+  assert(config_file_ != -1);
+
+  if (!key) {
+    return NO;
+  }
+
+  if (!data) {
+    return NO;
+  }
+
+  // Write the key, \n, length of data (ascii integer), \n, data
+  char buffer[16];
+  char nl = '\n';
+  BOOL result = WriteData(key, strlen(key));
+
+  snprintf(buffer, sizeof(buffer) - 1, "\n%lu\n", length);
+  result &= WriteData(buffer, strlen(buffer));
+  result &= WriteData(data, length);
+  result &= WriteData(&nl, 1);
+  return result;
+}
+
+//=============================================================================
+BOOL ConfigFile::AppendConfigString(const char* key,
+                                    const char* value) {
+  return AppendConfigData(key, value, strlen(value));
+}
+
+//=============================================================================
+BOOL ConfigFile::AppendCrashTimeParameters(const char* processStartTimeString) {
+  // Set process uptime parameter
+  struct timeval tv;
+  gettimeofday(&tv, NULL);
+
+  char processUptimeString[32], processCrashtimeString[32];
+  // Set up time if we've received the start time.
+  if (processStartTimeString) {
+    time_t processStartTime = strtol(processStartTimeString, NULL, 10);
+    time_t processUptime = tv.tv_sec - processStartTime;
+    // Store the uptime in milliseconds.
+    sprintf(processUptimeString, "%llu",
+        static_cast<unsigned long long int>(processUptime) * 1000);
+    if (!AppendConfigString(BREAKPAD_PROCESS_UP_TIME, processUptimeString))
+      return false;
+  }
+
+  sprintf(processCrashtimeString, "%zd", tv.tv_sec);
+  return AppendConfigString(BREAKPAD_PROCESS_CRASH_TIME,
+                            processCrashtimeString);
+}
+
+//=============================================================================
+void ConfigFile::WriteFile(const char* directory,
+                           const SimpleStringDictionary* configurationParameters,
+                           const char* dump_dir,
+                           const char* minidump_id) {
+
+  assert(config_file_ == -1);
+
+  // Open and write out configuration file preamble
+  if (directory) {
+    snprintf(config_file_path_, sizeof(config_file_path_), "%s/Config-XXXXXX",
+             directory);
+  } else {
+    strlcpy(config_file_path_, "/tmp/Config-XXXXXX",
+            sizeof(config_file_path_));
+  }
+  config_file_ = mkstemp(config_file_path_);
+
+  if (config_file_ == -1) {
+    return;
+  }
+
+  has_created_file_ = true;
+
+  // Add the minidump dir
+  AppendConfigString(kReporterMinidumpDirectoryKey, dump_dir);
+  AppendConfigString(kReporterMinidumpIDKey, minidump_id);
+
+  // Write out the configuration parameters
+  BOOL result = YES;
+  const SimpleStringDictionary& dictionary = *configurationParameters;
+
+  const SimpleStringDictionary::Entry* entry = NULL;
+  SimpleStringDictionary::Iterator iter(dictionary);
+
+  while ((entry = iter.Next())) {
+    result = AppendConfigString(entry->key, entry->value);
+
+    if (!result)
+      break;
+  }
+  AppendCrashTimeParameters(
+      configurationParameters->GetValueForKey(BREAKPAD_PROCESS_START_TIME));
+
+  close(config_file_);
+  config_file_ = -1;
+}
+
+} // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/Inspector.h b/src/client/mac/crash_generation/Inspector.h
new file mode 100644
index 0000000..c967113
--- /dev/null
+++ b/src/client/mac/crash_generation/Inspector.h
@@ -0,0 +1,162 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Interface file between the Breakpad.framework and
+// the Inspector process.
+
+#include "common/simple_string_dictionary.h"
+
+#import <Foundation/Foundation.h>
+#include <mach/mach.h>
+
+#import "client/mac/crash_generation/ConfigFile.h"
+#import "client/mac/handler/minidump_generator.h"
+
+
+// Types of mach messsages (message IDs)
+enum {
+  kMsgType_InspectorInitialInfo = 0,    // data is InspectorInfo
+  kMsgType_InspectorKeyValuePair = 1,   // data is KeyValueMessageData
+  kMsgType_InspectorAcknowledgement = 2 // no data sent
+};
+
+// Initial information sent from the crashed process by
+// Breakpad.framework to the Inspector process
+// The mach message with this struct as data will also include
+// several descriptors for sending mach port rights to the crashed
+// task, etc.
+struct InspectorInfo {
+  int           exception_type;
+  int           exception_code;
+  int           exception_subcode;
+  unsigned int  parameter_count;  // key-value pairs
+};
+
+// Key/value message data to be sent to the Inspector
+struct KeyValueMessageData {
+ public:
+  KeyValueMessageData() {}
+  explicit KeyValueMessageData(
+      const google_breakpad::SimpleStringDictionary::Entry& inEntry) {
+    strlcpy(key, inEntry.key, sizeof(key) );
+    strlcpy(value, inEntry.value, sizeof(value) );
+  }
+
+  char key[google_breakpad::SimpleStringDictionary::key_size];
+  char value[google_breakpad::SimpleStringDictionary::value_size];
+};
+
+using std::string;
+using google_breakpad::MinidumpGenerator;
+
+namespace google_breakpad {
+
+//=============================================================================
+class MinidumpLocation {
+ public:
+  MinidumpLocation(NSString* minidumpDir) {
+    // Ensure that the path exists.  Fallback to /tmp if unable to locate path.
+    assert(minidumpDir);
+    if (!EnsureDirectoryPathExists(minidumpDir)) {
+      minidumpDir = @"/tmp";
+    }
+
+    strlcpy(minidump_dir_path_, [minidumpDir fileSystemRepresentation],
+            sizeof(minidump_dir_path_));
+
+    // now generate a unique ID
+    string dump_path(minidump_dir_path_);
+    string next_minidump_id;
+
+    string next_minidump_path_ =
+      (MinidumpGenerator::UniqueNameInDirectory(dump_path, &next_minidump_id));
+
+    strlcpy(minidump_id_, next_minidump_id.c_str(), sizeof(minidump_id_));
+  }
+
+  const char* GetPath() { return minidump_dir_path_; }
+  const char* GetID() { return minidump_id_; }
+
+ private:
+  char minidump_dir_path_[PATH_MAX];             // Path to minidump directory
+  char minidump_id_[128];
+};
+
+//=============================================================================
+class Inspector {
+ public:
+  Inspector() {}
+
+  // given a bootstrap service name, receives mach messages
+  // from a crashed process, then inspects it, creates a minidump file
+  // and asks the user if he wants to upload it to a server.
+  void            Inspect(const char* receive_port_name);
+
+ private:
+  // The Inspector is invoked with its bootstrap port set to the bootstrap
+  // subset established in OnDemandServer.mm OnDemandServer::Initialize.
+  // For proper communication with the system, the sender (which will inherit
+  // the Inspector's bootstrap port) needs the per-session bootstrap namespace
+  // available directly in its bootstrap port. OnDemandServer stashed this
+  // port into the subset namespace under a special name. ResetBootstrapPort
+  // recovers this port and switches this task to use it as its own bootstrap
+  // (ensuring that children like the sender will inherit it), and saves the
+  // subset in bootstrap_subset_port_ for use by ServiceCheckIn and
+  // ServiceCheckOut.
+  kern_return_t   ResetBootstrapPort();
+
+  kern_return_t   ServiceCheckIn(const char* receive_port_name);
+  kern_return_t   ServiceCheckOut(const char* receive_port_name);
+
+  kern_return_t   ReadMessages();
+
+  bool            InspectTask();
+  kern_return_t   SendAcknowledgement();
+
+  // The bootstrap port in which the inspector is registered and into which it
+  // must check in.
+  mach_port_t     bootstrap_subset_port_;
+
+  mach_port_t     service_rcv_port_;
+
+  int             exception_type_;
+  int             exception_code_;
+  int             exception_subcode_;
+  mach_port_t     remote_task_;
+  mach_port_t     crashing_thread_;
+  mach_port_t     handler_thread_;
+  mach_port_t     ack_port_;
+
+  SimpleStringDictionary config_params_;
+
+  ConfigFile      config_file_;
+};
+
+
+} // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/Inspector.mm b/src/client/mac/crash_generation/Inspector.mm
new file mode 100644
index 0000000..d5fc29e
--- /dev/null
+++ b/src/client/mac/crash_generation/Inspector.mm
@@ -0,0 +1,362 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Utility that can inspect another process and write a crash dump
+
+#include <cstdio>
+#include <iostream>
+#include <servers/bootstrap.h>
+#include <stdio.h>
+#include <string.h>
+#include <string>
+
+#import "client/mac/crash_generation/Inspector.h"
+
+#import "client/mac/Framework/Breakpad.h"
+#import "client/mac/handler/minidump_generator.h"
+
+#import "common/mac/MachIPC.h"
+#include "common/mac/bootstrap_compat.h"
+#include "common/mac/launch_reporter.h"
+
+#import "GTMDefines.h"
+
+#import <Foundation/Foundation.h>
+
+namespace google_breakpad {
+
+//=============================================================================
+void Inspector::Inspect(const char* receive_port_name) {
+  kern_return_t result = ResetBootstrapPort();
+  if (result != KERN_SUCCESS) {
+    return;
+  }
+
+  result = ServiceCheckIn(receive_port_name);
+
+  if (result == KERN_SUCCESS) {
+    result = ReadMessages();
+
+    if (result == KERN_SUCCESS) {
+      // Inspect the task and write a minidump file.
+      bool wrote_minidump = InspectTask();
+
+      // Send acknowledgement to the crashed process that the inspection
+      // has finished.  It will then be able to cleanly exit.
+      // The return value is ignored because failure isn't fatal. If the process
+      // didn't get the message there's nothing we can do, and we still want to
+      // send the report.
+      SendAcknowledgement();
+
+      if (wrote_minidump) {
+        // Ask the user if he wants to upload the crash report to a server,
+        // and do so if he agrees.
+        LaunchReporter(
+            config_params_.GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
+            config_file_.GetFilePath());
+      } else {
+        fprintf(stderr, "Inspection of crashed process failed\n");
+      }
+
+      // Now that we're done reading messages, cleanup the service, but only
+      // if there was an actual exception
+      // Otherwise, it means the dump was generated on demand and the process
+      // lives on, and we might be needed again in the future.
+      if (exception_code_) {
+        ServiceCheckOut(receive_port_name);
+      }
+    } else {
+        PRINT_MACH_RESULT(result, "Inspector: WaitForMessage()");
+    }
+  }
+}
+
+//=============================================================================
+kern_return_t Inspector::ResetBootstrapPort() {
+  // A reasonable default, in case anything fails.
+  bootstrap_subset_port_ = bootstrap_port;
+
+  mach_port_t self_task = mach_task_self();
+
+  kern_return_t kr = task_get_bootstrap_port(self_task,
+                                             &bootstrap_subset_port_);
+  if (kr != KERN_SUCCESS) {
+    NSLog(@"ResetBootstrapPort: task_get_bootstrap_port failed: %s (%d)",
+          mach_error_string(kr), kr);
+    return kr;
+  }
+
+  mach_port_t bootstrap_parent_port;
+  kr = bootstrap_look_up(bootstrap_subset_port_,
+                         const_cast<char*>(BREAKPAD_BOOTSTRAP_PARENT_PORT),
+                         &bootstrap_parent_port);
+  if (kr != BOOTSTRAP_SUCCESS) {
+    NSLog(@"ResetBootstrapPort: bootstrap_look_up failed: %s (%d)",
+#if defined(MAC_OS_X_VERSION_10_5) && \
+    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+          bootstrap_strerror(kr),
+#else
+          mach_error_string(kr),
+#endif
+          kr);
+    return kr;
+  }
+
+  kr = task_set_bootstrap_port(self_task, bootstrap_parent_port);
+  if (kr != KERN_SUCCESS) {
+    NSLog(@"ResetBootstrapPort: task_set_bootstrap_port failed: %s (%d)",
+          mach_error_string(kr), kr);
+    return kr;
+  }
+
+  // Some things access the bootstrap port through this global variable
+  // instead of calling task_get_bootstrap_port.
+  bootstrap_port = bootstrap_parent_port;
+
+  return KERN_SUCCESS;
+}
+
+//=============================================================================
+kern_return_t Inspector::ServiceCheckIn(const char* receive_port_name) {
+  // We need to get the mach port representing this service, so we can
+  // get information from the crashed process.
+  kern_return_t kr = bootstrap_check_in(bootstrap_subset_port_,
+                                        (char*)receive_port_name,
+                                        &service_rcv_port_);
+
+  if (kr != KERN_SUCCESS) {
+#if VERBOSE
+    PRINT_MACH_RESULT(kr, "Inspector: bootstrap_check_in()");
+#endif
+  }
+
+  return kr;
+}
+
+//=============================================================================
+kern_return_t Inspector::ServiceCheckOut(const char* receive_port_name) {
+  // We're done receiving mach messages from the crashed process,
+  // so clean up a bit.
+  kern_return_t kr;
+
+  // DO NOT use mach_port_deallocate() here -- it will fail and the
+  // following bootstrap_register() will also fail leaving our service
+  // name hanging around forever (until reboot)
+  kr = mach_port_destroy(mach_task_self(), service_rcv_port_);
+
+  if (kr != KERN_SUCCESS) {
+    PRINT_MACH_RESULT(kr,
+      "Inspector: UNREGISTERING: service_rcv_port mach_port_deallocate()");
+    return kr;
+  }
+
+  // Unregister the service associated with the receive port.
+  kr = breakpad::BootstrapRegister(bootstrap_subset_port_,
+                                   (char*)receive_port_name,
+                                   MACH_PORT_NULL);
+
+  if (kr != KERN_SUCCESS) {
+    PRINT_MACH_RESULT(kr, "Inspector: UNREGISTERING: bootstrap_register()");
+  }
+
+  return kr;
+}
+
+//=============================================================================
+kern_return_t Inspector::ReadMessages() {
+  // Wait for an initial message from the crashed process containing basic
+  // information about the crash.
+  ReceivePort receive_port(service_rcv_port_);
+
+  MachReceiveMessage message;
+  kern_return_t result = receive_port.WaitForMessage(&message, 1000);
+
+  if (result == KERN_SUCCESS) {
+    InspectorInfo& info = (InspectorInfo&)*message.GetData();
+    exception_type_ = info.exception_type;
+    exception_code_ = info.exception_code;
+    exception_subcode_ = info.exception_subcode;
+
+#if VERBOSE
+    printf("message ID = %d\n", message.GetMessageID());
+#endif
+
+    remote_task_ = message.GetTranslatedPort(0);
+    crashing_thread_ = message.GetTranslatedPort(1);
+    handler_thread_ = message.GetTranslatedPort(2);
+    ack_port_ = message.GetTranslatedPort(3);
+
+#if VERBOSE
+    printf("exception_type = %d\n", exception_type_);
+    printf("exception_code = %d\n", exception_code_);
+    printf("exception_subcode = %d\n", exception_subcode_);
+    printf("remote_task = %d\n", remote_task_);
+    printf("crashing_thread = %d\n", crashing_thread_);
+    printf("handler_thread = %d\n", handler_thread_);
+    printf("ack_port_ = %d\n", ack_port_);
+    printf("parameter count = %d\n", info.parameter_count);
+#endif
+
+    // In certain situations where multiple crash requests come
+    // through quickly, we can end up with the mach IPC messages not
+    // coming through correctly.  Since we don't know what parameters
+    // we've missed, we can't do much besides abort the crash dump
+    // situation in this case.
+    unsigned int parameters_read = 0;
+    // The initial message contains the number of key value pairs that
+    // we are expected to read.
+    // Read each key/value pair, one mach message per key/value pair.
+    for (unsigned int i = 0; i < info.parameter_count; ++i) {
+      MachReceiveMessage parameter_message;
+      result = receive_port.WaitForMessage(&parameter_message, 1000);
+
+      if(result == KERN_SUCCESS) {
+        KeyValueMessageData& key_value_data =
+          (KeyValueMessageData&)*parameter_message.GetData();
+        // If we get a blank key, make sure we don't increment the
+        // parameter count; in some cases (notably on-demand generation
+        // many times in a short period of time) caused the Mach IPC
+        // messages to not come through correctly.
+        if (strlen(key_value_data.key) == 0) {
+          continue;
+        }
+        parameters_read++;
+
+        config_params_.SetKeyValue(key_value_data.key, key_value_data.value);
+      } else {
+        PRINT_MACH_RESULT(result, "Inspector: key/value message");
+        break;
+      }
+    }
+    if (parameters_read != info.parameter_count) {
+      return KERN_FAILURE;
+    }
+  }
+
+  return result;
+}
+
+//=============================================================================
+bool Inspector::InspectTask() {
+  // keep the task quiet while we're looking at it
+  task_suspend(remote_task_);
+
+  NSString* minidumpDir;
+
+  const char* minidumpDirectory =
+    config_params_.GetValueForKey(BREAKPAD_DUMP_DIRECTORY);
+
+  // If the client app has not specified a minidump directory,
+  // use a default of Library/<kDefaultLibrarySubdirectory>/<Product Name>
+  if (!minidumpDirectory || 0 == strlen(minidumpDirectory)) {
+    NSArray* libraryDirectories =
+      NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
+                                          NSUserDomainMask,
+                                          YES);
+
+    NSString* applicationSupportDirectory =
+        [libraryDirectories objectAtIndex:0];
+    NSString* library_subdirectory = [NSString
+        stringWithUTF8String:kDefaultLibrarySubdirectory];
+    NSString* breakpad_product = [NSString
+        stringWithUTF8String:config_params_.GetValueForKey(BREAKPAD_PRODUCT)];
+
+    NSArray* path_components = [NSArray
+        arrayWithObjects:applicationSupportDirectory,
+                         library_subdirectory,
+                         breakpad_product,
+                         nil];
+
+    minidumpDir = [NSString pathWithComponents:path_components];
+  } else {
+    minidumpDir = [[NSString stringWithUTF8String:minidumpDirectory]
+                    stringByExpandingTildeInPath];
+  }
+
+  MinidumpLocation minidumpLocation(minidumpDir);
+
+  // Obscure bug alert:
+  // Don't use [NSString stringWithFormat] to build up the path here since it
+  // assumes system encoding and in RTL locales will prepend an LTR override
+  // character for paths beginning with '/' which fileSystemRepresentation does
+  // not remove. Filed as rdar://6889706 .
+  NSString* path_ns = [NSString
+      stringWithUTF8String:minidumpLocation.GetPath()];
+  NSString* pathid_ns = [NSString
+      stringWithUTF8String:minidumpLocation.GetID()];
+  NSString* minidumpPath = [path_ns stringByAppendingPathComponent:pathid_ns];
+  minidumpPath = [minidumpPath
+      stringByAppendingPathExtension:@"dmp"];
+
+  config_file_.WriteFile( 0,
+                          &config_params_,
+                          minidumpLocation.GetPath(),
+                          minidumpLocation.GetID());
+
+
+  MinidumpGenerator generator(remote_task_, handler_thread_);
+
+  if (exception_type_ && exception_code_) {
+    generator.SetExceptionInformation(exception_type_,
+                                      exception_code_,
+                                      exception_subcode_,
+                                      crashing_thread_);
+  }
+
+
+  bool result = generator.Write([minidumpPath fileSystemRepresentation]);
+
+  // let the task continue
+  task_resume(remote_task_);
+
+  return result;
+}
+
+//=============================================================================
+// The crashed task needs to be told that the inspection has finished.
+// It will wait on a mach port (with timeout) until we send acknowledgement.
+kern_return_t Inspector::SendAcknowledgement() {
+  if (ack_port_ != MACH_PORT_DEAD) {
+    MachPortSender sender(ack_port_);
+    MachSendMessage ack_message(kMsgType_InspectorAcknowledgement);
+
+    kern_return_t result = sender.SendMessage(ack_message, 2000);
+
+#if VERBOSE
+    PRINT_MACH_RESULT(result, "Inspector: sent acknowledgement");
+#endif
+
+    return result;
+  }
+
+  return KERN_INVALID_NAME;
+}
+
+} // namespace google_breakpad
+
diff --git a/src/client/mac/crash_generation/InspectorMain.mm b/src/client/mac/crash_generation/InspectorMain.mm
new file mode 100644
index 0000000..137c6a1
--- /dev/null
+++ b/src/client/mac/crash_generation/InspectorMain.mm
@@ -0,0 +1,65 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Main driver for Inspector
+
+#import "client/mac/crash_generation/Inspector.h"
+#import <Cocoa/Cocoa.h>
+
+namespace google_breakpad {
+
+//=============================================================================
+extern "C" {
+
+int main(int argc, char *const argv[]) {
+#if DEBUG
+  // Since we're launched on-demand, this is necessary to see debugging
+  // output in the console window.
+  freopen("/dev/console", "w", stdout);
+  freopen("/dev/console", "w", stderr);
+#endif
+
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+  if (argc != 2) {
+    exit(0);
+  }
+  // Our first command-line argument contains the name of the service
+  // that we're providing.
+  google_breakpad::Inspector inspector;
+  inspector.Inspect(argv[1]);
+
+  [pool release];
+
+  return 0;
+}
+
+} // extern "C"
+
+} // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/client_info.h b/src/client/mac/crash_generation/client_info.h
new file mode 100644
index 0000000..a3a95dc
--- /dev/null
+++ b/src/client/mac/crash_generation/client_info.h
@@ -0,0 +1,47 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_
+#define CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_
+
+namespace google_breakpad {
+
+class ClientInfo {
+ public:
+  explicit ClientInfo(pid_t pid) : pid_(pid) {}
+
+  pid_t pid() const { return pid_; }
+
+ private:
+  pid_t pid_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_
diff --git a/src/client/mac/crash_generation/crash_generation_client.cc b/src/client/mac/crash_generation/crash_generation_client.cc
new file mode 100644
index 0000000..ceeb3b3
--- /dev/null
+++ b/src/client/mac/crash_generation/crash_generation_client.cc
@@ -0,0 +1,72 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/mac/crash_generation/crash_generation_client.h"
+
+#include "client/mac/crash_generation/crash_generation_server.h"
+#include "common/mac/MachIPC.h"
+
+namespace google_breakpad {
+
+bool CrashGenerationClient::RequestDumpForException(
+    int exception_type,
+    int exception_code,
+    int exception_subcode,
+    mach_port_t crashing_thread) {
+  // The server will send a message to this port indicating that it
+  // has finished its work.
+  ReceivePort acknowledge_port;
+
+  MachSendMessage message(kDumpRequestMessage);
+  message.AddDescriptor(mach_task_self());            // this task
+  message.AddDescriptor(crashing_thread);             // crashing thread
+  message.AddDescriptor(mach_thread_self());          // handler thread
+  message.AddDescriptor(acknowledge_port.GetPort());  // message receive port
+
+  ExceptionInfo info;
+  info.exception_type = exception_type;
+  info.exception_code = exception_code;
+  info.exception_subcode = exception_subcode;
+  message.SetData(&info, sizeof(info));
+
+  const mach_msg_timeout_t kSendTimeoutMs = 2 * 1000;
+  kern_return_t result = sender_.SendMessage(message, kSendTimeoutMs);
+  if (result != KERN_SUCCESS)
+    return false;
+
+  // Give the server slightly longer to reply since it has to
+  // inspect this task and write the minidump.
+  const mach_msg_timeout_t kReceiveTimeoutMs = 5 * 1000;
+  MachReceiveMessage acknowledge_message;
+  result = acknowledge_port.WaitForMessage(&acknowledge_message,
+					   kReceiveTimeoutMs);
+  return result == KERN_SUCCESS;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/crash_generation_client.h b/src/client/mac/crash_generation/crash_generation_client.h
new file mode 100644
index 0000000..527f577
--- /dev/null
+++ b/src/client/mac/crash_generation/crash_generation_client.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+#define GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+
+#include "common/mac/MachIPC.h"
+
+namespace google_breakpad {
+
+class CrashGenerationClient {
+ public:
+  explicit CrashGenerationClient(const char* mach_port_name)
+    : sender_(mach_port_name) {
+  }
+
+  // Request the crash server to generate a dump.
+  //
+  // Return true if the dump was successful; false otherwise.
+  bool RequestDumpForException(int exception_type,
+			       int exception_code,
+			       int exception_subcode,
+			       mach_port_t crashing_thread);
+
+  bool RequestDump() {
+    return RequestDumpForException(0, 0, 0, MACH_PORT_NULL);
+  }
+
+ private:
+  MachPortSender sender_;
+
+  // Prevent copy construction and assignment.
+  CrashGenerationClient(const CrashGenerationClient&);
+  CrashGenerationClient& operator=(const CrashGenerationClient&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
diff --git a/src/client/mac/crash_generation/crash_generation_server.cc b/src/client/mac/crash_generation/crash_generation_server.cc
new file mode 100644
index 0000000..ae44e8b
--- /dev/null
+++ b/src/client/mac/crash_generation/crash_generation_server.cc
@@ -0,0 +1,166 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/mac/crash_generation/crash_generation_server.h"
+
+#include <pthread.h>
+
+#include "client/mac/crash_generation/client_info.h"
+#include "client/mac/handler/minidump_generator.h"
+#include "common/mac/scoped_task_suspend-inl.h"
+
+namespace google_breakpad {
+
+CrashGenerationServer::CrashGenerationServer(
+    const char* mach_port_name,
+    FilterCallback filter,
+    void* filter_context,
+    OnClientDumpRequestCallback dump_callback,
+    void* dump_context,
+    OnClientExitingCallback exit_callback,
+    void* exit_context,
+    bool generate_dumps,
+    const std::string& dump_path)
+    : filter_(filter),
+      filter_context_(filter_context),
+      dump_callback_(dump_callback),
+      dump_context_(dump_context),
+      exit_callback_(exit_callback),
+      exit_context_(exit_context),
+      generate_dumps_(generate_dumps),
+      dump_dir_(dump_path.empty() ? "/tmp" : dump_path),
+      started_(false),
+      receive_port_(mach_port_name),
+      mach_port_name_(mach_port_name) {
+}
+
+CrashGenerationServer::~CrashGenerationServer() {
+  if (started_)
+    Stop();
+}
+
+bool CrashGenerationServer::Start() {
+  int thread_create_result = pthread_create(&server_thread_, NULL,
+                                            &WaitForMessages, this);
+  started_ = thread_create_result == 0;
+  return started_;
+}
+
+bool CrashGenerationServer::Stop() {
+  if (!started_)
+    return false;
+
+  // Send a quit message to the background thread, and then join it.
+  MachPortSender sender(mach_port_name_.c_str());
+  MachSendMessage quit_message(kQuitMessage);
+  const mach_msg_timeout_t kSendTimeoutMs = 2 * 1000;
+  kern_return_t result = sender.SendMessage(quit_message, kSendTimeoutMs);
+  if (result == KERN_SUCCESS) {
+    int thread_join_result = pthread_join(server_thread_, NULL);
+    started_ = thread_join_result != 0;
+  }
+
+  return !started_;
+}
+
+// static
+void* CrashGenerationServer::WaitForMessages(void* server) {
+  CrashGenerationServer* self =
+      reinterpret_cast<CrashGenerationServer*>(server);
+  while (self->WaitForOneMessage()) {}
+  return NULL;
+}
+
+bool CrashGenerationServer::WaitForOneMessage() {
+  MachReceiveMessage message;
+  kern_return_t result = receive_port_.WaitForMessage(&message,
+                                                      MACH_MSG_TIMEOUT_NONE);
+  if (result == KERN_SUCCESS) {
+    switch (message.GetMessageID()) {
+      case kDumpRequestMessage: {
+        ExceptionInfo& info = (ExceptionInfo&)*message.GetData();
+      
+        mach_port_t remote_task = message.GetTranslatedPort(0);
+        mach_port_t crashing_thread = message.GetTranslatedPort(1);
+        mach_port_t handler_thread = message.GetTranslatedPort(2);
+        mach_port_t ack_port = message.GetTranslatedPort(3);
+        pid_t remote_pid = -1;
+        pid_for_task(remote_task, &remote_pid);
+        ClientInfo client(remote_pid);
+
+        bool result;
+        std::string dump_path;
+        if (generate_dumps_ && (!filter_ || filter_(filter_context_))) {
+          ScopedTaskSuspend suspend(remote_task);
+
+          MinidumpGenerator generator(remote_task, handler_thread);
+          dump_path = generator.UniqueNameInDirectory(dump_dir_, NULL);
+        
+          if (info.exception_type && info.exception_code) {
+            generator.SetExceptionInformation(info.exception_type,
+                                              info.exception_code,
+                                              info.exception_subcode,
+                                              crashing_thread);
+          }
+          result = generator.Write(dump_path.c_str());
+        } else {
+          result = true;
+        }
+
+        if (result && dump_callback_) {
+          dump_callback_(dump_context_, client, dump_path);
+        }
+
+        // TODO(ted): support a way for the client to send additional data,
+        // perhaps with a callback so users of the server can read the data
+        // themselves?
+      
+        if (ack_port != MACH_PORT_DEAD && ack_port != MACH_PORT_NULL) {
+          MachPortSender sender(ack_port);
+          MachSendMessage ack_message(kAcknowledgementMessage);
+          const mach_msg_timeout_t kSendTimeoutMs = 2 * 1000;
+
+          sender.SendMessage(ack_message, kSendTimeoutMs);
+        }
+
+        if (exit_callback_) {
+          exit_callback_(exit_context_, client);
+        }
+        break;
+      }
+      case kQuitMessage:
+        return false;
+    }
+  } else {  // result != KERN_SUCCESS
+    return false;
+  }
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/mac/crash_generation/crash_generation_server.h b/src/client/mac/crash_generation/crash_generation_server.h
new file mode 100644
index 0000000..82fef14
--- /dev/null
+++ b/src/client/mac/crash_generation/crash_generation_server.h
@@ -0,0 +1,150 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
+#define GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
+
+#include <stdint.h>
+
+#include <string>
+
+#include "common/mac/MachIPC.h"
+
+namespace google_breakpad {
+
+class ClientInfo;
+
+// Messages the server can read via its mach port
+enum {
+  kDumpRequestMessage     = 1,
+  kAcknowledgementMessage = 2,
+  kQuitMessage            = 3
+};
+
+// Exception details sent by the client when requesting a dump.
+struct ExceptionInfo {
+  int32_t exception_type;
+  int32_t exception_code;
+  int32_t exception_subcode;
+};
+
+class CrashGenerationServer {
+ public:
+  // WARNING: callbacks may be invoked on a different thread
+  // than that which creates the CrashGenerationServer.  They must
+  // be thread safe.
+  typedef void (*OnClientDumpRequestCallback)(void* context,
+                                              const ClientInfo& client_info,
+                                              const std::string& file_path);
+
+  typedef void (*OnClientExitingCallback)(void* context,
+                                          const ClientInfo& client_info);
+  // If a FilterCallback returns false, the dump will not be written.
+  typedef bool (*FilterCallback)(void* context);
+
+  // Create an instance with the given parameters.
+  //
+  // mach_port_name: Named server port to listen on.
+  // filter: Callback for a client to cancel writing a dump.
+  // filter_context: Context for the filter callback.
+  // dump_callback: Callback for a client crash dump request.
+  // dump_context: Context for client crash dump request callback.
+  // exit_callback: Callback for client process exit.
+  // exit_context: Context for client exit callback.
+  // generate_dumps: Whether to automatically generate dumps.
+  //     Client code of this class might want to generate dumps explicitly
+  //     in the crash dump request callback. In that case, false can be
+  //     passed for this parameter.
+  // dump_path: Path for generating dumps; required only if true is
+  //     passed for generateDumps parameter; NULL can be passed otherwise.
+  CrashGenerationServer(const char* mach_port_name,
+                        FilterCallback filter,
+                        void* filter_context,
+                        OnClientDumpRequestCallback dump_callback,
+                        void* dump_context,
+                        OnClientExitingCallback exit_callback,
+                        void* exit_context,
+                        bool generate_dumps,
+                        const std::string& dump_path);
+
+  ~CrashGenerationServer();
+
+  // Perform initialization steps needed to start listening to clients.
+  //
+  // Return true if initialization is successful; false otherwise.
+  bool Start();
+
+  // Stop the server.
+  bool Stop();
+
+ private:
+  // Return a unique filename at which a minidump can be written.
+  bool MakeMinidumpFilename(std::string& outFilename);
+
+  // Loop reading client messages and responding to them until
+  // a quit message is received.
+  static void* WaitForMessages(void* server);
+
+  // Wait for a single client message and respond to it. Returns false
+  // if a quit message was received or if an error occurred.
+  bool WaitForOneMessage();
+
+  FilterCallback filter_;
+  void* filter_context_;
+
+  OnClientDumpRequestCallback dump_callback_;
+  void* dump_context_;
+
+  OnClientExitingCallback exit_callback_;
+  void* exit_context_;
+
+  bool generate_dumps_;
+
+  std::string dump_dir_;
+
+  bool started_;
+
+  // The mach port that receives requests to dump from child processes.
+  ReceivePort receive_port_;
+
+  // The name of the mach port. Stored so the Stop method can message
+  // the background thread to shut it down.
+  std::string mach_port_name_;
+
+  // The thread that waits on the receive port.
+  pthread_t server_thread_;
+
+  // Disable copy constructor and operator=.
+  CrashGenerationServer(const CrashGenerationServer&);
+  CrashGenerationServer& operator=(const CrashGenerationServer&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_CLIENT_MAC_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
diff --git a/src/client/mac/gcov/libgcov.a b/src/client/mac/gcov/libgcov.a
new file mode 100644
index 0000000..f45a58d
--- /dev/null
+++ b/src/client/mac/gcov/libgcov.a
Binary files differ
diff --git a/src/client/mac/handler/breakpad_nlist_64.cc b/src/client/mac/handler/breakpad_nlist_64.cc
new file mode 100644
index 0000000..b4f04c9
--- /dev/null
+++ b/src/client/mac/handler/breakpad_nlist_64.cc
@@ -0,0 +1,399 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by the University of
+ *      California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+/*
+ * This file was copied from libc/gen/nlist.c from Darwin's source code       
+ * The version of nlist used as a base is from 10.5.2, libc-498               
+ * http://www.opensource.apple.com/darwinsource/10.5.2/Libc-498/gen/nlist.c   
+ *                                                                            
+ * The full tarball is at:                                                    
+ * http://www.opensource.apple.com/darwinsource/tarballs/apsl/Libc-498.tar.gz 
+ *                                                                            
+ * I've modified it to be compatible with 64-bit images.
+*/
+
+#include "breakpad_nlist_64.h"
+
+#include <CoreFoundation/CoreFoundation.h>
+#include <fcntl.h>
+#include <mach-o/nlist.h>
+#include <mach-o/loader.h>
+#include <mach-o/fat.h>
+#include <mach/mach.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <TargetConditionals.h>
+#include <unistd.h>
+
+/* Stuff lifted from <a.out.h> and <sys/exec.h> since they are gone */
+/*
+ * Header prepended to each a.out file.
+ */
+struct exec {
+  unsigned short  a_machtype;     /* machine type */
+  unsigned short  a_magic;        /* magic number */
+  unsigned long a_text;         /* size of text segment */
+  unsigned long a_data;         /* size of initialized data */
+  unsigned long a_bss;          /* size of uninitialized data */
+  unsigned long a_syms;         /* size of symbol table */
+  unsigned long a_entry;        /* entry point */
+  unsigned long a_trsize;       /* size of text relocation */
+  unsigned long a_drsize;       /* size of data relocation */
+};
+
+#define OMAGIC  0407            /* old impure format */
+#define NMAGIC  0410            /* read-only text */
+#define ZMAGIC  0413            /* demand load format */
+
+#define N_BADMAG(x)                                                     \
+  (((x).a_magic)!=OMAGIC && ((x).a_magic)!=NMAGIC && ((x).a_magic)!=ZMAGIC)
+#define N_TXTOFF(x)                                     \
+  ((x).a_magic==ZMAGIC ? 0 : sizeof (struct exec))
+#define N_SYMOFF(x)                                                     \
+  (N_TXTOFF(x) + (x).a_text+(x).a_data + (x).a_trsize+(x).a_drsize)
+
+// Traits structs for specializing function templates to handle
+// 32-bit/64-bit Mach-O files.
+template<typename T>
+struct MachBits {};
+
+typedef struct nlist nlist32;
+typedef struct nlist_64 nlist64;
+
+template<>
+struct MachBits<nlist32> {
+  typedef mach_header mach_header_type;
+  typedef uint32_t word_type;
+  static const uint32_t magic = MH_MAGIC;
+};
+
+template<>
+struct MachBits<nlist64> {
+  typedef mach_header_64 mach_header_type;
+  typedef uint64_t word_type;
+  static const uint32_t magic = MH_MAGIC_64;
+};
+
+template<typename nlist_type>
+int
+__breakpad_fdnlist(int fd, nlist_type* list, const char** symbolNames,
+                   cpu_type_t cpu_type);
+
+/*
+ * nlist - retreive attributes from name list (string table version)
+ */
+
+template <typename nlist_type>
+int breakpad_nlist_common(const char* name,
+                          nlist_type* list,
+                          const char** symbolNames,
+                          cpu_type_t cpu_type) {
+  int fd = open(name, O_RDONLY, 0);
+  if (fd < 0)
+    return -1;
+  int n = __breakpad_fdnlist(fd, list, symbolNames, cpu_type);
+  close(fd);
+  return n;
+}
+
+int breakpad_nlist(const char* name,
+                   struct nlist* list,
+                   const char** symbolNames,
+                   cpu_type_t cpu_type) {
+  return breakpad_nlist_common(name, list, symbolNames, cpu_type);
+}
+
+int breakpad_nlist(const char* name,
+                   struct nlist_64* list,
+                   const char** symbolNames,
+                   cpu_type_t cpu_type) {
+  return breakpad_nlist_common(name, list, symbolNames, cpu_type);
+}
+
+/* Note: __fdnlist() is called from kvm_nlist in libkvm's kvm.c */
+
+template<typename nlist_type>
+int __breakpad_fdnlist(int fd, nlist_type* list, const char** symbolNames,
+                       cpu_type_t cpu_type) {
+  typedef typename MachBits<nlist_type>::mach_header_type mach_header_type;
+  typedef typename MachBits<nlist_type>::word_type word_type;
+
+  const uint32_t magic = MachBits<nlist_type>::magic;
+
+  int maxlen = 500;
+  int nreq = 0;
+  for (nlist_type* q = list;
+       symbolNames[q-list] && symbolNames[q-list][0];
+       q++, nreq++) {
+
+    q->n_type = 0;
+    q->n_value = 0;
+    q->n_desc = 0;
+    q->n_sect = 0;
+    q->n_un.n_strx = 0;
+  }
+
+  struct exec buf;
+  if (read(fd, (char*)&buf, sizeof(buf)) != sizeof(buf) ||
+      (N_BADMAG(buf) && *((uint32_t*)&buf) != magic &&
+        CFSwapInt32BigToHost(*((uint32_t*)&buf)) != FAT_MAGIC &&
+       /* The following is the big-endian ppc64 check */
+       (*((uint32_t*)&buf)) != FAT_MAGIC)) {
+    return -1;
+  }
+
+  /* Deal with fat file if necessary */
+  unsigned arch_offset = 0;
+  if (CFSwapInt32BigToHost(*((uint32_t*)&buf)) == FAT_MAGIC ||
+      /* The following is the big-endian ppc64 check */
+      *((unsigned int*)&buf) == FAT_MAGIC) {
+    /* Read in the fat header */
+    struct fat_header fh;
+    if (lseek(fd, 0, SEEK_SET) == -1) {
+      return -1;
+    }
+    if (read(fd, (char*)&fh, sizeof(fh)) != sizeof(fh)) {
+      return -1;
+    }
+
+    /* Convert fat_narchs to host byte order */
+    fh.nfat_arch = CFSwapInt32BigToHost(fh.nfat_arch);
+
+    /* Read in the fat archs */
+    struct fat_arch* fat_archs =
+        (struct fat_arch*)malloc(fh.nfat_arch * sizeof(struct fat_arch));
+    if (fat_archs == NULL) {
+      return -1;
+    }
+    if (read(fd, (char*)fat_archs,
+             sizeof(struct fat_arch) * fh.nfat_arch) !=
+        (ssize_t)(sizeof(struct fat_arch) * fh.nfat_arch)) {
+      free(fat_archs);
+      return -1;
+    }
+
+    /*
+     * Convert archs to host byte ordering (a constraint of
+     * cpusubtype_getbestarch()
+     */
+    for (unsigned i = 0; i < fh.nfat_arch; i++) {
+      fat_archs[i].cputype =
+        CFSwapInt32BigToHost(fat_archs[i].cputype);
+      fat_archs[i].cpusubtype =
+        CFSwapInt32BigToHost(fat_archs[i].cpusubtype);
+      fat_archs[i].offset =
+        CFSwapInt32BigToHost(fat_archs[i].offset);
+      fat_archs[i].size =
+        CFSwapInt32BigToHost(fat_archs[i].size);
+      fat_archs[i].align =
+        CFSwapInt32BigToHost(fat_archs[i].align);
+    }
+
+    struct fat_arch* fap = NULL;
+    for (unsigned i = 0; i < fh.nfat_arch; i++) {
+      if (fat_archs[i].cputype == cpu_type) {
+        fap = &fat_archs[i];
+        break;
+      }
+    }
+
+    if (!fap) {
+      free(fat_archs);
+      return -1;
+    }
+    arch_offset = fap->offset;
+    free(fat_archs);
+
+    /* Read in the beginning of the architecture-specific file */
+    if (lseek(fd, arch_offset, SEEK_SET) == -1) {
+      return -1;
+    }
+    if (read(fd, (char*)&buf, sizeof(buf)) != sizeof(buf)) {
+      return -1;
+    }
+  }
+
+  off_t sa;  /* symbol address */
+  off_t ss;  /* start of strings */
+  register_t n;
+  if (*((unsigned int*)&buf) == magic) {
+    if (lseek(fd, arch_offset, SEEK_SET) == -1) {
+      return -1;
+    }
+    mach_header_type mh;
+    if (read(fd, (char*)&mh, sizeof(mh)) != sizeof(mh)) {
+      return -1;
+    }
+
+    struct load_command* load_commands =
+        (struct load_command*)malloc(mh.sizeofcmds);
+    if (load_commands == NULL) {
+      return -1;
+    }
+    if (read(fd, (char*)load_commands, mh.sizeofcmds) !=
+        (ssize_t)mh.sizeofcmds) {
+      free(load_commands);
+      return -1;
+    }
+    struct symtab_command* stp = NULL;
+    struct load_command* lcp = load_commands;
+    // iterate through all load commands, looking for
+    // LC_SYMTAB load command
+    for (uint32_t i = 0; i < mh.ncmds; i++) {
+      if (lcp->cmdsize % sizeof(word_type) != 0 ||
+          lcp->cmdsize <= 0 ||
+          (char*)lcp + lcp->cmdsize > (char*)load_commands + mh.sizeofcmds) {
+        free(load_commands);
+        return -1;
+      }
+      if (lcp->cmd == LC_SYMTAB) {
+        if (lcp->cmdsize != sizeof(struct symtab_command)) {
+          free(load_commands);
+          return -1;
+        }
+        stp = (struct symtab_command*)lcp;
+        break;
+      }
+      lcp = (struct load_command*)((char*)lcp + lcp->cmdsize);
+    }
+    if (stp == NULL) {
+      free(load_commands);
+      return -1;
+    }
+    // sa points to the beginning of the symbol table
+    sa = stp->symoff + arch_offset;
+    // ss points to the beginning of the string table
+    ss = stp->stroff + arch_offset;
+    // n is the number of bytes in the symbol table
+    // each symbol table entry is an nlist structure
+    n = stp->nsyms * sizeof(nlist_type);
+    free(load_commands);
+  } else {
+    sa = N_SYMOFF(buf) + arch_offset;
+    ss = sa + buf.a_syms + arch_offset;
+    n = buf.a_syms;
+  }
+
+  if (lseek(fd, sa, SEEK_SET) == -1) {
+    return -1;
+  }
+
+  // the algorithm here is to read the nlist entries in m-sized
+  // chunks into q.  q is then iterated over. for each entry in q,
+  // use the string table index(q->n_un.n_strx) to read the symbol 
+  // name, then scan the nlist entries passed in by the user(via p),
+  // and look for a match
+  while (n) {
+    nlist_type space[BUFSIZ/sizeof (nlist_type)];
+    register_t m = sizeof (space);
+
+    if (n < m)
+      m = n;
+    if (read(fd, (char*)space, m) != m)
+      break;
+    n -= m;
+    off_t savpos = lseek(fd, 0, SEEK_CUR);
+    if (savpos == -1) {
+      return -1;
+    }
+    for (nlist_type* q = space; (m -= sizeof(nlist_type)) >= 0; q++) {
+      char nambuf[BUFSIZ];
+
+      if (q->n_un.n_strx == 0 || q->n_type & N_STAB)
+        continue;
+
+      // seek to the location in the binary where the symbol
+      // name is stored & read it into memory
+      if (lseek(fd, ss+q->n_un.n_strx, SEEK_SET) == -1) {
+        return -1;
+      }
+      if (read(fd, nambuf, maxlen+1) == -1) {
+        return -1;
+      }
+      const char* s2 = nambuf;
+      for (nlist_type* p = list; 
+           symbolNames[p-list] && symbolNames[p-list][0];
+           p++) {
+        // get the symbol name the user has passed in that 
+        // corresponds to the nlist entry that we're looking at
+        const char* s1 = symbolNames[p - list];
+        while (*s1) {
+          if (*s1++ != *s2++)
+            goto cont;
+        }
+        if (*s2)
+          goto cont;
+
+        p->n_value = q->n_value;
+        p->n_type = q->n_type;
+        p->n_desc = q->n_desc;
+        p->n_sect = q->n_sect;
+        p->n_un.n_strx = q->n_un.n_strx;
+        if (--nreq == 0)
+          return nreq;
+
+        break;
+      cont:           ;
+      }
+    }
+    if (lseek(fd, savpos, SEEK_SET) == -1) {
+      return -1;
+    }
+  }
+  return nreq;
+}
diff --git a/src/client/mac/handler/breakpad_nlist_64.h b/src/client/mac/handler/breakpad_nlist_64.h
new file mode 100644
index 0000000..a1a3e83
--- /dev/null
+++ b/src/client/mac/handler/breakpad_nlist_64.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// breakpad_nlist.h
+//
+// This file is meant to provide a header for clients of the modified
+// nlist function implemented to work on 64-bit.
+
+#ifndef CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__
+#define CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__
+
+#include <mach/machine.h>
+
+int breakpad_nlist(const char* name,
+                   struct nlist* list,
+                   const char** symbolNames,
+                   cpu_type_t cpu_type);
+int breakpad_nlist(const char* name,
+                   struct nlist_64* list,
+                   const char** symbolNames,
+                   cpu_type_t cpu_type);
+
+#endif  /* CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__ */
diff --git a/src/client/mac/handler/dynamic_images.cc b/src/client/mac/handler/dynamic_images.cc
new file mode 100644
index 0000000..b78c208
--- /dev/null
+++ b/src/client/mac/handler/dynamic_images.cc
@@ -0,0 +1,573 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/mac/handler/dynamic_images.h"
+
+extern "C" { // needed to compile on Leopard
+  #include <mach-o/nlist.h>
+  #include <stdlib.h>
+  #include <stdio.h>
+}
+
+#include <assert.h>
+#include <AvailabilityMacros.h>
+#include <dlfcn.h>
+#include <mach/task_info.h>
+#include <sys/sysctl.h>
+#include <TargetConditionals.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <string>
+#include <vector>
+
+#include "breakpad_nlist_64.h"
+
+#if !TARGET_OS_IPHONE
+#include <CoreServices/CoreServices.h>
+
+#ifndef MAC_OS_X_VERSION_10_6
+#define MAC_OS_X_VERSION_10_6 1060
+#endif
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
+
+// Fallback declarations for TASK_DYLD_INFO and friends, introduced in
+// <mach/task_info.h> in the Mac OS X 10.6 SDK.
+#define TASK_DYLD_INFO 17
+struct task_dyld_info {
+  mach_vm_address_t all_image_info_addr;
+  mach_vm_size_t all_image_info_size;
+};
+typedef struct task_dyld_info task_dyld_info_data_t;
+typedef struct task_dyld_info* task_dyld_info_t;
+#define TASK_DYLD_INFO_COUNT (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
+
+#endif
+
+#endif  // !TARGET_OS_IPHONE
+
+namespace google_breakpad {
+
+using std::string;
+using std::vector;
+
+//==============================================================================
+// Returns the size of the memory region containing |address| and the
+// number of bytes from |address| to the end of the region.
+// We potentially, will extend the size of the original
+// region by the size of the following region if it's contiguous with the
+// first in order to handle cases when we're reading strings and they
+// straddle two vm regions.
+//
+static mach_vm_size_t GetMemoryRegionSize(task_port_t target_task,
+                                          const uint64_t address,
+                                          mach_vm_size_t* size_to_end) {
+  mach_vm_address_t region_base = (mach_vm_address_t)address;
+  mach_vm_size_t region_size;
+  natural_t nesting_level = 0;
+  vm_region_submap_info_64 submap_info;
+  mach_msg_type_number_t info_count = VM_REGION_SUBMAP_INFO_COUNT_64;
+
+  // Get information about the vm region containing |address|
+  vm_region_recurse_info_t region_info;
+  region_info = reinterpret_cast<vm_region_recurse_info_t>(&submap_info);
+
+  kern_return_t result =
+    mach_vm_region_recurse(target_task,
+                           &region_base,
+                           &region_size,
+                           &nesting_level,
+                           region_info,
+                           &info_count);
+
+  if (result == KERN_SUCCESS) {
+    // Get distance from |address| to the end of this region
+    *size_to_end = region_base + region_size -(mach_vm_address_t)address;
+
+    // If we want to handle strings as long as 4096 characters we may need
+    // to check if there's a vm region immediately following the first one.
+    // If so, we need to extend |*size_to_end| to go all the way to the end
+    // of the second region.
+    if (*size_to_end < 4096) {
+      // Second region starts where the first one ends
+      mach_vm_address_t region_base2 =
+        (mach_vm_address_t)(region_base + region_size);
+      mach_vm_size_t region_size2;
+
+      // Get information about the following vm region
+      result =
+        mach_vm_region_recurse(target_task,
+                               &region_base2,
+                               &region_size2,
+                               &nesting_level,
+                               region_info,
+                               &info_count);
+
+      // Extend region_size to go all the way to the end of the 2nd region
+      if (result == KERN_SUCCESS
+          && region_base2 == region_base + region_size) {
+        region_size += region_size2;
+      }
+    }
+
+    *size_to_end = region_base + region_size -(mach_vm_address_t)address;
+  } else {
+    region_size = 0;
+    *size_to_end = 0;
+  }
+
+  return region_size;
+}
+
+#define kMaxStringLength 8192
+//==============================================================================
+// Reads a NULL-terminated string from another task.
+//
+// Warning!  This will not read any strings longer than kMaxStringLength-1
+//
+static string ReadTaskString(task_port_t target_task,
+                             const uint64_t address) {
+  // The problem is we don't know how much to read until we know how long
+  // the string is. And we don't know how long the string is, until we've read
+  // the memory!  So, we'll try to read kMaxStringLength bytes
+  // (or as many bytes as we can until we reach the end of the vm region).
+  mach_vm_size_t size_to_end;
+  GetMemoryRegionSize(target_task, address, &size_to_end);
+
+  if (size_to_end > 0) {
+    mach_vm_size_t size_to_read =
+      size_to_end > kMaxStringLength ? kMaxStringLength : size_to_end;
+
+    vector<uint8_t> bytes;
+    if (ReadTaskMemory(target_task, address, (size_t)size_to_read, bytes) !=
+        KERN_SUCCESS)
+      return string();
+
+    return string(reinterpret_cast<const char*>(&bytes[0]));
+  }
+
+  return string();
+}
+
+//==============================================================================
+// Reads an address range from another task. The bytes read will be returned
+// in bytes, which will be resized as necessary.
+kern_return_t ReadTaskMemory(task_port_t target_task,
+                             const uint64_t address,
+                             size_t length,
+                             vector<uint8_t>& bytes) {
+  int systemPageSize = getpagesize();
+
+  // use the negative of the page size for the mask to find the page address
+  mach_vm_address_t page_address = address & (-systemPageSize);
+
+  mach_vm_address_t last_page_address =
+      (address + length + (systemPageSize - 1)) & (-systemPageSize);
+
+  mach_vm_size_t page_size = last_page_address - page_address;
+  uint8_t* local_start;
+  uint32_t local_length;
+
+  kern_return_t r = mach_vm_read(target_task,
+                                 page_address,
+                                 page_size,
+                                 reinterpret_cast<vm_offset_t*>(&local_start),
+                                 &local_length);
+
+  if (r != KERN_SUCCESS)
+    return r;
+
+  bytes.resize(length);
+  memcpy(&bytes[0],
+         &local_start[(mach_vm_address_t)address - page_address],
+         length);
+  mach_vm_deallocate(mach_task_self(), (uintptr_t)local_start, local_length);
+  return KERN_SUCCESS;
+}
+
+#pragma mark -
+
+//==============================================================================
+// Traits structs for specializing function templates to handle
+// 32-bit/64-bit Mach-O files.
+struct MachO32 {
+  typedef mach_header mach_header_type;
+  typedef segment_command mach_segment_command_type;
+  typedef dyld_image_info32 dyld_image_info;
+  typedef dyld_all_image_infos32 dyld_all_image_infos;
+  typedef struct nlist nlist_type;
+  static const uint32_t magic = MH_MAGIC;
+  static const uint32_t segment_load_command = LC_SEGMENT;
+};
+
+struct MachO64 {
+  typedef mach_header_64 mach_header_type;
+  typedef segment_command_64 mach_segment_command_type;
+  typedef dyld_image_info64 dyld_image_info;
+  typedef dyld_all_image_infos64 dyld_all_image_infos;
+  typedef struct nlist_64 nlist_type;
+  static const uint32_t magic = MH_MAGIC_64;
+  static const uint32_t segment_load_command = LC_SEGMENT_64;
+};
+
+template<typename MachBits>
+bool FindTextSection(DynamicImage& image) {
+  typedef typename MachBits::mach_header_type mach_header_type;
+  typedef typename MachBits::mach_segment_command_type
+      mach_segment_command_type;
+  
+  const mach_header_type* header =
+      reinterpret_cast<const mach_header_type*>(&image.header_[0]);
+
+  if(header->magic != MachBits::magic) {
+    return false;
+  }
+
+  const struct load_command* cmd =
+      reinterpret_cast<const struct load_command*>(header + 1);
+
+  bool found_text_section = false;
+  bool found_dylib_id_command = false;
+  for (unsigned int i = 0; cmd && (i < header->ncmds); ++i) {
+    if (!found_text_section) {
+      if (cmd->cmd == MachBits::segment_load_command) {
+        const mach_segment_command_type* seg =
+            reinterpret_cast<const mach_segment_command_type*>(cmd);
+
+        if (!strcmp(seg->segname, "__TEXT")) {
+          image.vmaddr_ = static_cast<mach_vm_address_t>(seg->vmaddr);
+          image.vmsize_ = static_cast<mach_vm_size_t>(seg->vmsize);
+          image.slide_ = 0;
+
+          if (seg->fileoff == 0 && seg->filesize != 0) {
+            image.slide_ =
+                (uintptr_t)image.GetLoadAddress() - (uintptr_t)seg->vmaddr;
+          }
+          found_text_section = true;
+        }
+      }
+    }
+
+    if (!found_dylib_id_command) {
+      if (cmd->cmd == LC_ID_DYLIB) {
+        const struct dylib_command* dc =
+            reinterpret_cast<const struct dylib_command*>(cmd);
+
+        image.version_ = dc->dylib.current_version;
+        found_dylib_id_command = true;
+      }
+    }
+
+    if (found_dylib_id_command && found_text_section) {
+      return true;
+    }
+
+    cmd = reinterpret_cast<const struct load_command*>
+        (reinterpret_cast<const char*>(cmd) + cmd->cmdsize);
+  }
+
+  return false;
+}
+
+//==============================================================================
+// Initializes vmaddr_, vmsize_, and slide_
+void DynamicImage::CalculateMemoryAndVersionInfo() {
+  // unless we can process the header, ensure that calls to
+  // IsValid() will return false
+  vmaddr_ = 0;
+  vmsize_ = 0;
+  slide_ = 0;
+  version_ = 0;
+
+  // The function template above does all the real work.
+  if (Is64Bit())
+    FindTextSection<MachO64>(*this);
+  else
+    FindTextSection<MachO32>(*this);
+}
+
+//==============================================================================
+// The helper function template abstracts the 32/64-bit differences.
+template<typename MachBits>
+uint32_t GetFileTypeFromHeader(DynamicImage& image) {
+  typedef typename MachBits::mach_header_type mach_header_type;
+
+  const mach_header_type* header =
+      reinterpret_cast<const mach_header_type*>(&image.header_[0]);
+  return header->filetype;
+}
+
+uint32_t DynamicImage::GetFileType() {
+  if (Is64Bit())
+    return GetFileTypeFromHeader<MachO64>(*this);
+
+  return GetFileTypeFromHeader<MachO32>(*this);
+}
+
+#pragma mark -
+
+//==============================================================================
+// Loads information about dynamically loaded code in the given task.
+DynamicImages::DynamicImages(mach_port_t task)
+    : task_(task),
+      cpu_type_(DetermineTaskCPUType(task)),
+      image_list_() {
+  ReadImageInfoForTask();
+}
+
+template<typename MachBits>
+static uint64_t LookupSymbol(const char* symbol_name,
+                             const char* filename,
+                             cpu_type_t cpu_type) {
+  typedef typename MachBits::nlist_type nlist_type;
+
+  nlist_type symbol_info[8] = {};
+  const char* symbolNames[2] = { symbol_name, "\0" };
+  nlist_type& list = symbol_info[0];
+  int invalidEntriesCount = breakpad_nlist(filename,
+                                           &list,
+                                           symbolNames,
+                                           cpu_type);
+
+  if(invalidEntriesCount != 0) {
+    return 0;
+  }
+
+  assert(list.n_value);
+  return list.n_value;
+}
+
+#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+static bool HasTaskDyldInfo() {
+  return true;
+}
+#else
+static SInt32 GetOSVersionInternal() {
+  SInt32 os_version = 0;
+  Gestalt(gestaltSystemVersion, &os_version);
+  return os_version;
+}
+
+static SInt32 GetOSVersion() {
+  static SInt32 os_version = GetOSVersionInternal();
+  return os_version;
+}
+
+static bool HasTaskDyldInfo() {
+  return GetOSVersion() >= 0x1060;
+}
+#endif  // TARGET_OS_IPHONE || MAC_OS_X_VERSION_MIN_REQUIRED >= 10_6
+
+uint64_t DynamicImages::GetDyldAllImageInfosPointer() {
+  if (HasTaskDyldInfo()) {
+    task_dyld_info_data_t task_dyld_info;
+    mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
+    if (task_info(task_, TASK_DYLD_INFO, (task_info_t)&task_dyld_info,
+                  &count) != KERN_SUCCESS) {
+      return 0;
+    }
+
+    return (uint64_t)task_dyld_info.all_image_info_addr;
+  } else {
+    const char* imageSymbolName = "_dyld_all_image_infos";
+    const char* dyldPath = "/usr/lib/dyld";
+
+    if (Is64Bit())
+      return LookupSymbol<MachO64>(imageSymbolName, dyldPath, cpu_type_);
+    return LookupSymbol<MachO32>(imageSymbolName, dyldPath, cpu_type_);
+  }
+}
+
+//==============================================================================
+// This code was written using dyld_debug.c (from Darwin) as a guide.
+
+template<typename MachBits>
+void ReadImageInfo(DynamicImages& images,
+                   uint64_t image_list_address) {
+  typedef typename MachBits::dyld_image_info dyld_image_info;
+  typedef typename MachBits::dyld_all_image_infos dyld_all_image_infos;
+  typedef typename MachBits::mach_header_type mach_header_type;
+
+  // Read the structure inside of dyld that contains information about
+  // loaded images.  We're reading from the desired task's address space.
+
+  // Here we make the assumption that dyld loaded at the same address in
+  // the crashed process vs. this one.  This is an assumption made in
+  // "dyld_debug.c" and is said to be nearly always valid.
+  vector<uint8_t> dyld_all_info_bytes;
+  if (ReadTaskMemory(images.task_,
+                     image_list_address,
+                     sizeof(dyld_all_image_infos),
+                     dyld_all_info_bytes) != KERN_SUCCESS)
+    return;
+
+  dyld_all_image_infos* dyldInfo =
+    reinterpret_cast<dyld_all_image_infos*>(&dyld_all_info_bytes[0]);
+
+  // number of loaded images
+  int count = dyldInfo->infoArrayCount;
+
+  // Read an array of dyld_image_info structures each containing
+  // information about a loaded image.
+  vector<uint8_t> dyld_info_array_bytes;
+    if (ReadTaskMemory(images.task_,
+                       dyldInfo->infoArray,
+                       count * sizeof(dyld_image_info),
+                       dyld_info_array_bytes) != KERN_SUCCESS)
+      return;
+
+    dyld_image_info* infoArray =
+        reinterpret_cast<dyld_image_info*>(&dyld_info_array_bytes[0]);
+    images.image_list_.reserve(count);
+
+    for (int i = 0; i < count; ++i) {
+      dyld_image_info& info = infoArray[i];
+
+      // First read just the mach_header from the image in the task.
+      vector<uint8_t> mach_header_bytes;
+      if (ReadTaskMemory(images.task_,
+                         info.load_address_,
+                         sizeof(mach_header_type),
+                         mach_header_bytes) != KERN_SUCCESS)
+        continue;  // bail on this dynamic image
+
+      mach_header_type* header =
+          reinterpret_cast<mach_header_type*>(&mach_header_bytes[0]);
+
+      // Now determine the total amount necessary to read the header
+      // plus all of the load commands.
+      size_t header_size =
+          sizeof(mach_header_type) + header->sizeofcmds;
+
+      if (ReadTaskMemory(images.task_,
+                         info.load_address_,
+                         header_size,
+                         mach_header_bytes) != KERN_SUCCESS)
+        continue;
+
+      // Read the file name from the task's memory space.
+      string file_path;
+      if (info.file_path_) {
+        // Although we're reading kMaxStringLength bytes, it's copied in the
+        // the DynamicImage constructor below with the correct string length,
+        // so it's not really wasting memory.
+        file_path = ReadTaskString(images.task_, info.file_path_);
+      }
+
+      // Create an object representing this image and add it to our list.
+      DynamicImage* new_image;
+      new_image = new DynamicImage(&mach_header_bytes[0],
+                                   header_size,
+                                   info.load_address_,
+                                   file_path,
+                                   static_cast<uintptr_t>(info.file_mod_date_),
+                                   images.task_,
+                                   images.cpu_type_);
+
+      if (new_image->IsValid()) {
+        images.image_list_.push_back(DynamicImageRef(new_image));
+      } else {
+        delete new_image;
+      }
+    }
+
+    // sorts based on loading address
+    sort(images.image_list_.begin(), images.image_list_.end());
+    // remove duplicates - this happens in certain strange cases
+    // You can see it in DashboardClient when Google Gadgets plugin
+    // is installed.  Apple's crash reporter log and gdb "info shared"
+    // both show the same library multiple times at the same address
+
+    vector<DynamicImageRef>::iterator it = unique(images.image_list_.begin(),
+                                                  images.image_list_.end());
+    images.image_list_.erase(it, images.image_list_.end());
+}
+
+void DynamicImages::ReadImageInfoForTask() {
+  uint64_t imageList = GetDyldAllImageInfosPointer();
+
+  if (imageList) {
+    if (Is64Bit())
+      ReadImageInfo<MachO64>(*this, imageList);
+    else
+      ReadImageInfo<MachO32>(*this, imageList);
+  }
+}
+
+//==============================================================================
+DynamicImage* DynamicImages::GetExecutableImage() {
+  int executable_index = GetExecutableImageIndex();
+
+  if (executable_index >= 0) {
+    return GetImage(executable_index);
+  }
+
+  return NULL;
+}
+
+//==============================================================================
+// returns -1 if failure to find executable
+int DynamicImages::GetExecutableImageIndex() {
+  int image_count = GetImageCount();
+
+  for (int i = 0; i < image_count; ++i) {
+    DynamicImage* image = GetImage(i);
+    if (image->GetFileType() == MH_EXECUTE) {
+      return i;
+    }
+  }
+
+  return -1;
+}
+
+//==============================================================================
+// static
+cpu_type_t DynamicImages::DetermineTaskCPUType(task_t task) {
+  if (task == mach_task_self())
+    return GetNativeCPUType();
+
+  int mib[CTL_MAXNAME];
+  size_t mibLen = CTL_MAXNAME;
+  int err = sysctlnametomib("sysctl.proc_cputype", mib, &mibLen);
+  if (err == 0) {
+    assert(mibLen < CTL_MAXNAME);
+    pid_for_task(task, &mib[mibLen]);
+    mibLen += 1;
+
+    cpu_type_t cpu_type;
+    size_t cpuTypeSize = sizeof(cpu_type);
+    sysctl(mib, static_cast<u_int>(mibLen), &cpu_type, &cpuTypeSize, 0, 0);
+    return cpu_type;
+  }
+
+  return GetNativeCPUType();
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/mac/handler/dynamic_images.h b/src/client/mac/handler/dynamic_images.h
new file mode 100644
index 0000000..e81ea7f
--- /dev/null
+++ b/src/client/mac/handler/dynamic_images.h
@@ -0,0 +1,319 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//  dynamic_images.h
+//
+//    Implements most of the function of the dyld API, but allowing an
+//    arbitrary task to be introspected, unlike the dyld API which
+//    only allows operation on the current task.  The current implementation
+//    is limited to use by 32-bit tasks.
+
+#ifndef CLIENT_MAC_HANDLER_DYNAMIC_IMAGES_H__
+#define CLIENT_MAC_HANDLER_DYNAMIC_IMAGES_H__
+
+#include <mach/mach.h>
+#include <mach-o/dyld.h>
+#include <mach-o/loader.h>
+#include <sys/types.h>
+
+#include <string>
+#include <vector>
+
+#include "mach_vm_compat.h"
+
+namespace google_breakpad {
+
+using std::string;
+using std::vector;
+
+//==============================================================================
+// The memory layout of this struct matches the dyld_image_info struct
+// defined in "dyld_gdb.h" in the darwin source.
+typedef struct dyld_image_info32 {
+  uint32_t                   load_address_;  // struct mach_header*
+  uint32_t                   file_path_;     // char*
+  uint32_t                   file_mod_date_;
+} dyld_image_info32;
+
+typedef struct dyld_image_info64 {
+  uint64_t                   load_address_;  // struct mach_header*
+  uint64_t                   file_path_;     // char*
+  uint64_t                   file_mod_date_;
+} dyld_image_info64;
+
+//==============================================================================
+// This is as defined in "dyld_gdb.h" in the darwin source.
+// _dyld_all_image_infos (in dyld) is a structure of this type
+// which will be used to determine which dynamic code has been loaded.
+typedef struct dyld_all_image_infos32 {
+  uint32_t                      version;  // == 1 in Mac OS X 10.4
+  uint32_t                      infoArrayCount;
+  uint32_t                      infoArray;  // const struct dyld_image_info*
+  uint32_t                      notification;
+  bool                          processDetachedFromSharedRegion;
+} dyld_all_image_infos32;
+
+typedef struct dyld_all_image_infos64 {
+  uint32_t                      version;  // == 1 in Mac OS X 10.4
+  uint32_t                      infoArrayCount;
+  uint64_t                      infoArray;  // const struct dyld_image_info*
+  uint64_t                      notification;
+  bool                          processDetachedFromSharedRegion;
+} dyld_all_image_infos64;
+
+// some typedefs to isolate 64/32 bit differences
+#ifdef __LP64__
+typedef mach_header_64 breakpad_mach_header;
+typedef segment_command_64 breakpad_mach_segment_command;
+#else
+typedef mach_header breakpad_mach_header;
+typedef segment_command breakpad_mach_segment_command;
+#endif
+
+// Helper functions to deal with 32-bit/64-bit Mach-O differences.
+class DynamicImage;
+template<typename MachBits>
+bool FindTextSection(DynamicImage& image);
+
+template<typename MachBits>
+uint32_t GetFileTypeFromHeader(DynamicImage& image);
+
+//==============================================================================
+// Represents a single dynamically loaded mach-o image
+class DynamicImage {
+ public:
+  DynamicImage(uint8_t* header,     // data is copied
+               size_t header_size,  // includes load commands
+               uint64_t load_address,
+               string file_path,
+               uintptr_t image_mod_date,
+               mach_port_t task,
+               cpu_type_t cpu_type)
+    : header_(header, header + header_size),
+      header_size_(header_size),
+      load_address_(load_address),
+      vmaddr_(0),
+      vmsize_(0),
+      slide_(0),
+      version_(0),
+      file_path_(file_path),
+      file_mod_date_(image_mod_date),
+      task_(task),
+      cpu_type_(cpu_type) {
+    CalculateMemoryAndVersionInfo();
+  }
+
+  // Size of mach_header plus load commands
+  size_t GetHeaderSize() const {return header_.size();}
+
+  // Full path to mach-o binary
+  string GetFilePath() {return file_path_;}
+
+  uint64_t GetModDate() const {return file_mod_date_;}
+
+  // Actual address where the image was loaded
+  uint64_t GetLoadAddress() const {return load_address_;}
+
+  // Address where the image should be loaded
+  mach_vm_address_t GetVMAddr() const {return vmaddr_;}
+
+  // Difference between GetLoadAddress() and GetVMAddr()
+  ptrdiff_t GetVMAddrSlide() const {return slide_;}
+
+  // Size of the image
+  mach_vm_size_t GetVMSize() const {return vmsize_;}
+
+  // Task owning this loaded image
+  mach_port_t GetTask() {return task_;}
+
+  // CPU type of the task
+  cpu_type_t GetCPUType() {return cpu_type_;}
+
+  // filetype from the Mach-O header.
+  uint32_t GetFileType();
+
+  // Return true if the task is a 64-bit architecture.
+  bool Is64Bit() { return (GetCPUType() & CPU_ARCH_ABI64) == CPU_ARCH_ABI64; }
+
+  uint32_t GetVersion() {return version_;}
+  // For sorting
+  bool operator<(const DynamicImage& inInfo) {
+    return GetLoadAddress() < inInfo.GetLoadAddress();
+  }
+
+  // Sanity checking
+  bool IsValid() {return GetVMSize() != 0;}
+
+ private:
+  DynamicImage(const DynamicImage&);
+  DynamicImage& operator=(const DynamicImage&);
+
+  friend class DynamicImages;
+  template<typename MachBits>
+  friend bool FindTextSection(DynamicImage& image);
+  template<typename MachBits>
+  friend uint32_t GetFileTypeFromHeader(DynamicImage& image);
+
+  // Initializes vmaddr_, vmsize_, and slide_
+  void CalculateMemoryAndVersionInfo();
+
+  const vector<uint8_t>   header_;        // our local copy of the header
+  size_t                  header_size_;    // mach_header plus load commands
+  uint64_t                load_address_;   // base address image is mapped into
+  mach_vm_address_t       vmaddr_;
+  mach_vm_size_t          vmsize_;
+  ptrdiff_t               slide_;
+  uint32_t                version_;        // Dylib version
+  string                  file_path_;     // path dyld used to load the image
+  uintptr_t               file_mod_date_;  // time_t of image file
+
+  mach_port_t             task_;
+  cpu_type_t              cpu_type_;        // CPU type of task_
+};
+
+//==============================================================================
+// DynamicImageRef is just a simple wrapper for a pointer to
+// DynamicImage.  The reason we use it instead of a simple typedef is so
+// that we can use stl::sort() on a vector of DynamicImageRefs
+// and simple class pointers can't implement operator<().
+//
+class DynamicImageRef {
+ public:
+  explicit DynamicImageRef(DynamicImage* inP) : p(inP) {}
+  // The copy constructor is required by STL
+  DynamicImageRef(const DynamicImageRef& inRef) : p(inRef.p) {}
+
+  bool operator<(const DynamicImageRef& inRef) const {
+    return (*const_cast<DynamicImageRef*>(this)->p)
+      < (*const_cast<DynamicImageRef&>(inRef).p);
+  }
+
+  bool operator==(const DynamicImageRef& inInfo) const {
+    return (*const_cast<DynamicImageRef*>(this)->p).GetLoadAddress() ==
+        (*const_cast<DynamicImageRef&>(inInfo)).GetLoadAddress();
+  }
+
+  // Be just like DynamicImage*
+  DynamicImage* operator->() {return p;}
+  operator DynamicImage*() {return p;}
+
+ private:
+  DynamicImage* p;
+};
+
+// Helper function to deal with 32-bit/64-bit Mach-O differences.
+class DynamicImages;
+template<typename MachBits>
+void ReadImageInfo(DynamicImages& images, uint64_t image_list_address);
+
+//==============================================================================
+// An object of type DynamicImages may be created to allow introspection of
+// an arbitrary task's dynamically loaded mach-o binaries.  This makes the
+// assumption that the current task has send rights to the target task.
+class DynamicImages {
+ public:
+  explicit DynamicImages(mach_port_t task);
+
+  ~DynamicImages() {
+    for (int i = 0; i < GetImageCount(); ++i) {
+      delete image_list_[i];
+    }
+  }
+
+  // Returns the number of dynamically loaded mach-o images.
+  int GetImageCount() const {return static_cast<int>(image_list_.size());}
+
+  // Returns an individual image.
+  DynamicImage* GetImage(int i) {
+    if (i < (int)image_list_.size()) {
+      return image_list_[i];
+    }
+    return NULL;
+  }
+
+  // Returns the image corresponding to the main executable.
+  DynamicImage* GetExecutableImage();
+  int GetExecutableImageIndex();
+
+  // Returns the task which we're looking at.
+  mach_port_t GetTask() const {return task_;}
+
+  // CPU type of the task
+  cpu_type_t GetCPUType() {return cpu_type_;}
+
+  // Return true if the task is a 64-bit architecture.
+  bool Is64Bit() { return (GetCPUType() & CPU_ARCH_ABI64) == CPU_ARCH_ABI64; }
+
+  // Determine the CPU type of the task being dumped.
+  static cpu_type_t DetermineTaskCPUType(task_t task);
+
+  // Get the native CPU type of this task.
+  static cpu_type_t GetNativeCPUType() {
+#if defined(__i386__)
+    return CPU_TYPE_I386;
+#elif defined(__x86_64__)
+    return CPU_TYPE_X86_64;
+#elif defined(__ppc__)
+    return CPU_TYPE_POWERPC;
+#elif defined(__ppc64__)
+    return CPU_TYPE_POWERPC64;
+#elif defined(__arm__)
+    return CPU_TYPE_ARM;
+#elif defined(__aarch64__)
+    return CPU_TYPE_ARM64;
+#else
+#error "GetNativeCPUType not implemented for this architecture"
+#endif
+  }
+
+ private:
+  template<typename MachBits>
+  friend void ReadImageInfo(DynamicImages& images, uint64_t image_list_address);
+
+  bool IsOurTask() {return task_ == mach_task_self();}
+
+  // Initialization
+  void ReadImageInfoForTask();
+  uint64_t GetDyldAllImageInfosPointer();
+
+  mach_port_t              task_;
+  cpu_type_t               cpu_type_;  // CPU type of task_
+  vector<DynamicImageRef>  image_list_;
+};
+
+// Fill bytes with the contents of memory at a particular
+// location in another task.
+kern_return_t ReadTaskMemory(task_port_t target_task,
+                             const uint64_t address,
+                             size_t length,
+                             vector<uint8_t>& bytes);
+
+}   // namespace google_breakpad
+
+#endif // CLIENT_MAC_HANDLER_DYNAMIC_IMAGES_H__
diff --git a/src/client/mac/handler/exception_handler.cc b/src/client/mac/handler/exception_handler.cc
new file mode 100644
index 0000000..287fe1b
--- /dev/null
+++ b/src/client/mac/handler/exception_handler.cc
@@ -0,0 +1,860 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <mach/exc.h>
+#include <mach/mig.h>
+#include <pthread.h>
+#include <signal.h>
+#include <TargetConditionals.h>
+
+#include <map>
+
+#include "client/mac/handler/exception_handler.h"
+#include "client/mac/handler/minidump_generator.h"
+#include "common/mac/macho_utilities.h"
+#include "common/mac/scoped_task_suspend-inl.h"
+#include "google_breakpad/common/minidump_exception_mac.h"
+
+#ifndef __EXCEPTIONS
+// This file uses C++ try/catch (but shouldn't). Duplicate the macros from
+// <c++/4.2.1/exception_defines.h> allowing this file to work properly with
+// exceptions disabled even when other C++ libraries are used. #undef the try
+// and catch macros first in case libstdc++ is in use and has already provided
+// its own definitions.
+#undef try
+#define try       if (true)
+#undef catch
+#define catch(X)  if (false)
+#endif  // __EXCEPTIONS
+
+#ifndef USE_PROTECTED_ALLOCATIONS
+#if TARGET_OS_IPHONE
+#define USE_PROTECTED_ALLOCATIONS 1
+#else
+#define USE_PROTECTED_ALLOCATIONS 0
+#endif
+#endif
+
+// If USE_PROTECTED_ALLOCATIONS is activated then the
+// gBreakpadAllocator needs to be setup in other code
+// ahead of time.  Please see ProtectedMemoryAllocator.h
+// for more details.
+#if USE_PROTECTED_ALLOCATIONS
+  #include "protected_memory_allocator.h"
+  extern ProtectedMemoryAllocator *gBreakpadAllocator;
+#endif
+
+namespace google_breakpad {
+
+static union {
+#if USE_PROTECTED_ALLOCATIONS
+#if defined PAGE_MAX_SIZE
+  char protected_buffer[PAGE_MAX_SIZE] __attribute__((aligned(PAGE_MAX_SIZE)));
+#else
+  char protected_buffer[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE)));
+#endif  // defined PAGE_MAX_SIZE
+#endif  // USE_PROTECTED_ALLOCATIONS
+  google_breakpad::ExceptionHandler *handler;
+} gProtectedData;
+
+using std::map;
+
+// These structures and techniques are illustrated in
+// Mac OS X Internals, Amit Singh, ch 9.7
+struct ExceptionMessage {
+  mach_msg_header_t           header;
+  mach_msg_body_t             body;
+  mach_msg_port_descriptor_t  thread;
+  mach_msg_port_descriptor_t  task;
+  NDR_record_t                ndr;
+  exception_type_t            exception;
+  mach_msg_type_number_t      code_count;
+  integer_t                   code[EXCEPTION_CODE_MAX];
+  char                        padding[512];
+};
+
+struct ExceptionParameters {
+  ExceptionParameters() : count(0) {}
+  mach_msg_type_number_t count;
+  exception_mask_t masks[EXC_TYPES_COUNT];
+  mach_port_t ports[EXC_TYPES_COUNT];
+  exception_behavior_t behaviors[EXC_TYPES_COUNT];
+  thread_state_flavor_t flavors[EXC_TYPES_COUNT];
+};
+
+struct ExceptionReplyMessage {
+  mach_msg_header_t  header;
+  NDR_record_t       ndr;
+  kern_return_t      return_code;
+};
+
+// Only catch these three exceptions.  The other ones are nebulously defined
+// and may result in treating a non-fatal exception as fatal.
+exception_mask_t s_exception_mask = EXC_MASK_BAD_ACCESS |
+EXC_MASK_BAD_INSTRUCTION | EXC_MASK_ARITHMETIC | EXC_MASK_BREAKPOINT;
+
+#if !TARGET_OS_IPHONE
+extern "C" {
+  // Forward declarations for functions that need "C" style compilation
+  boolean_t exc_server(mach_msg_header_t* request,
+                       mach_msg_header_t* reply);
+
+  // This symbol must be visible to dlsym() - see
+  // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=345 for details.
+  kern_return_t catch_exception_raise(mach_port_t target_port,
+                                      mach_port_t failed_thread,
+                                      mach_port_t task,
+                                      exception_type_t exception,
+                                      exception_data_t code,
+                                      mach_msg_type_number_t code_count)
+      __attribute__((visibility("default")));
+}
+#endif
+
+kern_return_t ForwardException(mach_port_t task,
+                               mach_port_t failed_thread,
+                               exception_type_t exception,
+                               exception_data_t code,
+                               mach_msg_type_number_t code_count);
+
+#if TARGET_OS_IPHONE
+// Implementation is based on the implementation generated by mig.
+boolean_t breakpad_exc_server(mach_msg_header_t* InHeadP,
+                              mach_msg_header_t* OutHeadP) {
+  OutHeadP->msgh_bits =
+      MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(InHeadP->msgh_bits), 0);
+  OutHeadP->msgh_remote_port = InHeadP->msgh_remote_port;
+  /* Minimal size: routine() will update it if different */
+  OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t);
+  OutHeadP->msgh_local_port = MACH_PORT_NULL;
+  OutHeadP->msgh_id = InHeadP->msgh_id + 100;
+
+  if (InHeadP->msgh_id != 2401) {
+    ((mig_reply_error_t*)OutHeadP)->NDR = NDR_record;
+    ((mig_reply_error_t*)OutHeadP)->RetCode = MIG_BAD_ID;
+    return FALSE;
+  }
+
+#ifdef  __MigPackStructs
+#pragma pack(4)
+#endif
+  typedef struct {
+    mach_msg_header_t Head;
+    /* start of the kernel processed data */
+    mach_msg_body_t msgh_body;
+    mach_msg_port_descriptor_t thread;
+    mach_msg_port_descriptor_t task;
+    /* end of the kernel processed data */
+    NDR_record_t NDR;
+    exception_type_t exception;
+    mach_msg_type_number_t codeCnt;
+    integer_t code[2];
+    mach_msg_trailer_t trailer;
+  } Request;
+
+  typedef struct {
+    mach_msg_header_t Head;
+    NDR_record_t NDR;
+    kern_return_t RetCode;
+  } Reply;
+#ifdef  __MigPackStructs
+#pragma pack()
+#endif
+
+  Request* In0P = (Request*)InHeadP;
+  Reply* OutP = (Reply*)OutHeadP;
+
+  if (In0P->task.name != mach_task_self()) {
+    return FALSE;
+  }
+  OutP->RetCode = ForwardException(In0P->task.name,
+                                   In0P->thread.name,
+                                   In0P->exception,
+                                   In0P->code,
+                                   In0P->codeCnt);
+  OutP->NDR = NDR_record;
+  return TRUE;
+}
+#else
+boolean_t breakpad_exc_server(mach_msg_header_t* request,
+                              mach_msg_header_t* reply) {
+  return exc_server(request, reply);
+}
+
+// Callback from exc_server()
+kern_return_t catch_exception_raise(mach_port_t port, mach_port_t failed_thread,
+                                    mach_port_t task,
+                                    exception_type_t exception,
+                                    exception_data_t code,
+                                    mach_msg_type_number_t code_count) {
+  if (task != mach_task_self()) {
+    return KERN_FAILURE;
+  }
+  return ForwardException(task, failed_thread, exception, code, code_count);
+}
+#endif
+
+ExceptionHandler::ExceptionHandler(const string& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   bool install_handler,
+                                   const char* port_name)
+    : dump_path_(),
+      filter_(filter),
+      callback_(callback),
+      callback_context_(callback_context),
+      directCallback_(NULL),
+      handler_thread_(NULL),
+      handler_port_(MACH_PORT_NULL),
+      previous_(NULL),
+      installed_exception_handler_(false),
+      is_in_teardown_(false),
+      last_minidump_write_result_(false),
+      use_minidump_write_mutex_(false) {
+  // This will update to the ID and C-string pointers
+  set_dump_path(dump_path);
+  MinidumpGenerator::GatherSystemInformation();
+#if !TARGET_OS_IPHONE
+  if (port_name)
+    crash_generation_client_.reset(new CrashGenerationClient(port_name));
+#endif
+  Setup(install_handler);
+}
+
+// special constructor if we want to bypass minidump writing and
+// simply get a callback with the exception information
+ExceptionHandler::ExceptionHandler(DirectCallback callback,
+                                   void* callback_context,
+                                   bool install_handler)
+    : dump_path_(),
+      filter_(NULL),
+      callback_(NULL),
+      callback_context_(callback_context),
+      directCallback_(callback),
+      handler_thread_(NULL),
+      handler_port_(MACH_PORT_NULL),
+      previous_(NULL),
+      installed_exception_handler_(false),
+      is_in_teardown_(false),
+      last_minidump_write_result_(false),
+      use_minidump_write_mutex_(false) {
+  MinidumpGenerator::GatherSystemInformation();
+  Setup(install_handler);
+}
+
+ExceptionHandler::~ExceptionHandler() {
+  Teardown();
+}
+
+bool ExceptionHandler::WriteMinidump(bool write_exception_stream) {
+  // If we're currently writing, just return
+  if (use_minidump_write_mutex_)
+    return false;
+
+  use_minidump_write_mutex_ = true;
+  last_minidump_write_result_ = false;
+
+  // Lock the mutex.  Since we just created it, this will return immediately.
+  if (pthread_mutex_lock(&minidump_write_mutex_) == 0) {
+    // Send an empty message to the handle port so that a minidump will
+    // be written
+    bool result = SendMessageToHandlerThread(write_exception_stream ?
+                                               kWriteDumpWithExceptionMessage :
+                                               kWriteDumpMessage);
+    if (!result) {
+      pthread_mutex_unlock(&minidump_write_mutex_);
+      return false;
+    }
+
+    // Wait for the minidump writer to complete its writing.  It will unlock
+    // the mutex when completed
+    pthread_mutex_lock(&minidump_write_mutex_);
+  }
+
+  use_minidump_write_mutex_ = false;
+  UpdateNextID();
+  return last_minidump_write_result_;
+}
+
+// static
+bool ExceptionHandler::WriteMinidump(const string& dump_path,
+                                     bool write_exception_stream,
+                                     MinidumpCallback callback,
+                                     void* callback_context) {
+  ExceptionHandler handler(dump_path, NULL, callback, callback_context, false,
+                           NULL);
+  return handler.WriteMinidump(write_exception_stream);
+}
+
+// static
+bool ExceptionHandler::WriteMinidumpForChild(mach_port_t child,
+                                             mach_port_t child_blamed_thread,
+                                             const string& dump_path,
+                                             MinidumpCallback callback,
+                                             void* callback_context) {
+  ScopedTaskSuspend suspend(child);
+
+  MinidumpGenerator generator(child, MACH_PORT_NULL);
+  string dump_id;
+  string dump_filename = generator.UniqueNameInDirectory(dump_path, &dump_id);
+
+  generator.SetExceptionInformation(EXC_BREAKPOINT,
+#if defined(__i386__) || defined(__x86_64__)
+                                    EXC_I386_BPT,
+#elif defined(__ppc__) || defined(__ppc64__)
+                                    EXC_PPC_BREAKPOINT,
+#elif defined(__arm__) || defined(__aarch64__)
+                                    EXC_ARM_BREAKPOINT,
+#else
+#error architecture not supported
+#endif
+                                    0,
+                                    child_blamed_thread);
+  bool result = generator.Write(dump_filename.c_str());
+
+  if (callback) {
+    return callback(dump_path.c_str(), dump_id.c_str(),
+                    callback_context, result);
+  }
+  return result;
+}
+
+bool ExceptionHandler::WriteMinidumpWithException(
+    int exception_type,
+    int exception_code,
+    int exception_subcode,
+    breakpad_ucontext_t* task_context,
+    mach_port_t thread_name,
+    bool exit_after_write,
+    bool report_current_thread) {
+  bool result = false;
+
+#if TARGET_OS_IPHONE
+  // _exit() should never be called on iOS.
+  exit_after_write = false;
+#endif
+
+  if (directCallback_) {
+    if (directCallback_(callback_context_,
+                        exception_type,
+                        exception_code,
+                        exception_subcode,
+                        thread_name) ) {
+      if (exit_after_write)
+        _exit(exception_type);
+    }
+#if !TARGET_OS_IPHONE
+  } else if (IsOutOfProcess()) {
+    if (exception_type && exception_code) {
+      // If this is a real exception, give the filter (if any) a chance to
+      // decide if this should be sent.
+      if (filter_ && !filter_(callback_context_))
+        return false;
+      result = crash_generation_client_->RequestDumpForException(
+          exception_type,
+          exception_code,
+          exception_subcode,
+          thread_name);
+      if (result && exit_after_write) {
+        _exit(exception_type);
+      }
+    }
+#endif
+  } else {
+    string minidump_id;
+
+    // Putting the MinidumpGenerator in its own context will ensure that the
+    // destructor is executed, closing the newly created minidump file.
+    if (!dump_path_.empty()) {
+      MinidumpGenerator md(mach_task_self(),
+                           report_current_thread ? MACH_PORT_NULL :
+                                                   mach_thread_self());
+      md.SetTaskContext(task_context);
+      if (exception_type && exception_code) {
+        // If this is a real exception, give the filter (if any) a chance to
+        // decide if this should be sent.
+        if (filter_ && !filter_(callback_context_))
+          return false;
+
+        md.SetExceptionInformation(exception_type, exception_code,
+                                   exception_subcode, thread_name);
+      }
+
+      result = md.Write(next_minidump_path_c_);
+    }
+
+    // Call user specified callback (if any)
+    if (callback_) {
+      // If the user callback returned true and we're handling an exception
+      // (rather than just writing out the file), then we should exit without
+      // forwarding the exception to the next handler.
+      if (callback_(dump_path_c_, next_minidump_id_c_, callback_context_,
+                    result)) {
+        if (exit_after_write)
+          _exit(exception_type);
+      }
+    }
+  }
+
+  return result;
+}
+
+kern_return_t ForwardException(mach_port_t task, mach_port_t failed_thread,
+                               exception_type_t exception,
+                               exception_data_t code,
+                               mach_msg_type_number_t code_count) {
+  // At this time, we should have called Uninstall() on the exception handler
+  // so that the current exception ports are the ones that we should be
+  // forwarding to.
+  ExceptionParameters current;
+
+  current.count = EXC_TYPES_COUNT;
+  mach_port_t current_task = mach_task_self();
+  task_get_exception_ports(current_task,
+                           s_exception_mask,
+                           current.masks,
+                           &current.count,
+                           current.ports,
+                           current.behaviors,
+                           current.flavors);
+
+  // Find the first exception handler that matches the exception
+  unsigned int found;
+  for (found = 0; found < current.count; ++found) {
+    if (current.masks[found] & (1 << exception)) {
+      break;
+    }
+  }
+
+  // Nothing to forward
+  if (found == current.count) {
+    fprintf(stderr, "** No previous ports for forwarding!! \n");
+    exit(KERN_FAILURE);
+  }
+
+  mach_port_t target_port = current.ports[found];
+  exception_behavior_t target_behavior = current.behaviors[found];
+
+  kern_return_t result;
+  // TODO: Handle the case where |target_behavior| has MACH_EXCEPTION_CODES
+  // set. https://bugs.chromium.org/p/google-breakpad/issues/detail?id=551
+  switch (target_behavior) {
+    case EXCEPTION_DEFAULT:
+      result = exception_raise(target_port, failed_thread, task, exception,
+                               code, code_count);
+      break;
+    default:
+      fprintf(stderr, "** Unknown exception behavior: %d\n", target_behavior);
+      result = KERN_FAILURE;
+      break;
+  }
+
+  return result;
+}
+
+// static
+void* ExceptionHandler::WaitForMessage(void* exception_handler_class) {
+  ExceptionHandler* self =
+    reinterpret_cast<ExceptionHandler*>(exception_handler_class);
+  ExceptionMessage receive;
+
+  // Wait for the exception info
+  while (1) {
+    receive.header.msgh_local_port = self->handler_port_;
+    receive.header.msgh_size = static_cast<mach_msg_size_t>(sizeof(receive));
+    kern_return_t result = mach_msg(&(receive.header),
+                                    MACH_RCV_MSG | MACH_RCV_LARGE, 0,
+                                    receive.header.msgh_size,
+                                    self->handler_port_,
+                                    MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+
+
+    if (result == KERN_SUCCESS) {
+      // Uninstall our handler so that we don't get in a loop if the process of
+      // writing out a minidump causes an exception.  However, if the exception
+      // was caused by a fork'd process, don't uninstall things
+
+      // If the actual exception code is zero, then we're calling this handler
+      // in a way that indicates that we want to either exit this thread or
+      // generate a minidump
+      //
+      // While reporting, all threads (except this one) must be suspended
+      // to avoid misleading stacks.  If appropriate they will be resumed
+      // afterwards.
+      if (!receive.exception) {
+        // Don't touch self, since this message could have been sent
+        // from its destructor.
+        if (receive.header.msgh_id == kShutdownMessage)
+          return NULL;
+
+        self->SuspendThreads();
+
+#if USE_PROTECTED_ALLOCATIONS
+        if (gBreakpadAllocator)
+          gBreakpadAllocator->Unprotect();
+#endif
+
+        mach_port_t thread = MACH_PORT_NULL;
+        int exception_type = 0;
+        int exception_code = 0;
+        if (receive.header.msgh_id == kWriteDumpWithExceptionMessage) {
+          thread = receive.thread.name;
+          exception_type = EXC_BREAKPOINT;
+#if defined(__i386__) || defined(__x86_64__)
+          exception_code = EXC_I386_BPT;
+#elif defined(__ppc__) || defined(__ppc64__)
+          exception_code = EXC_PPC_BREAKPOINT;
+#elif defined(__arm__) || defined(__aarch64__)
+          exception_code = EXC_ARM_BREAKPOINT;
+#else
+#error architecture not supported
+#endif
+        }
+
+        // Write out the dump and save the result for later retrieval
+        self->last_minidump_write_result_ =
+          self->WriteMinidumpWithException(exception_type, exception_code,
+                                           0, NULL, thread,
+                                           false, false);
+
+#if USE_PROTECTED_ALLOCATIONS
+        if (gBreakpadAllocator)
+          gBreakpadAllocator->Protect();
+#endif
+
+        self->ResumeThreads();
+
+        if (self->use_minidump_write_mutex_)
+          pthread_mutex_unlock(&self->minidump_write_mutex_);
+      } else {
+        // When forking a child process with the exception handler installed,
+        // if the child crashes, it will send the exception back to the parent
+        // process.  The check for task == self_task() ensures that only
+        // exceptions that occur in the parent process are caught and
+        // processed.  If the exception was not caused by this task, we
+        // still need to call into the exception server and have it return
+        // KERN_FAILURE (see catch_exception_raise) in order for the kernel
+        // to move onto the host exception handler for the child task
+        if (receive.task.name == mach_task_self()) {
+          self->SuspendThreads();
+
+#if USE_PROTECTED_ALLOCATIONS
+        if (gBreakpadAllocator)
+          gBreakpadAllocator->Unprotect();
+#endif
+
+        int subcode = 0;
+        if (receive.exception == EXC_BAD_ACCESS && receive.code_count > 1)
+          subcode = receive.code[1];
+
+        // Generate the minidump with the exception data.
+        self->WriteMinidumpWithException(receive.exception, receive.code[0],
+                                         subcode, NULL, receive.thread.name,
+                                         true, false);
+
+#if USE_PROTECTED_ALLOCATIONS
+        // This may have become protected again within
+        // WriteMinidumpWithException, but it needs to be unprotected for
+        // UninstallHandler.
+        if (gBreakpadAllocator)
+          gBreakpadAllocator->Unprotect();
+#endif
+
+        self->UninstallHandler(true);
+
+#if USE_PROTECTED_ALLOCATIONS
+        if (gBreakpadAllocator)
+          gBreakpadAllocator->Protect();
+#endif
+        }
+        // Pass along the exception to the server, which will setup the
+        // message and call catch_exception_raise() and put the return
+        // code into the reply.
+        ExceptionReplyMessage reply;
+        if (!breakpad_exc_server(&receive.header, &reply.header))
+          exit(1);
+
+        // Send a reply and exit
+        mach_msg(&(reply.header), MACH_SEND_MSG,
+                 reply.header.msgh_size, 0, MACH_PORT_NULL,
+                 MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+      }
+    }
+  }
+
+  return NULL;
+}
+
+// static
+void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) {
+#if USE_PROTECTED_ALLOCATIONS
+  if (gBreakpadAllocator)
+    gBreakpadAllocator->Unprotect();
+#endif
+  gProtectedData.handler->WriteMinidumpWithException(
+      EXC_SOFTWARE,
+      MD_EXCEPTION_CODE_MAC_ABORT,
+      0,
+      static_cast<breakpad_ucontext_t*>(uc),
+      mach_thread_self(),
+      true,
+      true);
+#if USE_PROTECTED_ALLOCATIONS
+  if (gBreakpadAllocator)
+    gBreakpadAllocator->Protect();
+#endif
+}
+
+bool ExceptionHandler::InstallHandler() {
+  // If a handler is already installed, something is really wrong.
+  if (gProtectedData.handler != NULL) {
+    return false;
+  }
+  if (!IsOutOfProcess()) {
+    struct sigaction sa;
+    memset(&sa, 0, sizeof(sa));
+    sigemptyset(&sa.sa_mask);
+    sigaddset(&sa.sa_mask, SIGABRT);
+    sa.sa_sigaction = ExceptionHandler::SignalHandler;
+    sa.sa_flags = SA_SIGINFO;
+
+    scoped_ptr<struct sigaction> old(new struct sigaction);
+    if (sigaction(SIGABRT, &sa, old.get()) == -1) {
+      return false;
+    }
+    old_handler_.swap(old);
+    gProtectedData.handler = this;
+#if USE_PROTECTED_ALLOCATIONS
+    assert(((size_t)(gProtectedData.protected_buffer) & PAGE_MASK) == 0);
+    mprotect(gProtectedData.protected_buffer, PAGE_SIZE, PROT_READ);
+#endif
+  }
+
+  try {
+#if USE_PROTECTED_ALLOCATIONS
+    previous_ = new (gBreakpadAllocator->Allocate(sizeof(ExceptionParameters)) )
+      ExceptionParameters();
+#else
+    previous_ = new ExceptionParameters();
+#endif
+  }
+  catch (std::bad_alloc) {
+    return false;
+  }
+
+  // Save the current exception ports so that we can forward to them
+  previous_->count = EXC_TYPES_COUNT;
+  mach_port_t current_task = mach_task_self();
+  kern_return_t result = task_get_exception_ports(current_task,
+                                                  s_exception_mask,
+                                                  previous_->masks,
+                                                  &previous_->count,
+                                                  previous_->ports,
+                                                  previous_->behaviors,
+                                                  previous_->flavors);
+
+  // Setup the exception ports on this task
+  if (result == KERN_SUCCESS)
+    result = task_set_exception_ports(current_task, s_exception_mask,
+                                      handler_port_, EXCEPTION_DEFAULT,
+                                      THREAD_STATE_NONE);
+
+  installed_exception_handler_ = (result == KERN_SUCCESS);
+
+  return installed_exception_handler_;
+}
+
+bool ExceptionHandler::UninstallHandler(bool in_exception) {
+  kern_return_t result = KERN_SUCCESS;
+
+  if (old_handler_.get()) {
+    sigaction(SIGABRT, old_handler_.get(), NULL);
+#if USE_PROTECTED_ALLOCATIONS
+    mprotect(gProtectedData.protected_buffer, PAGE_SIZE,
+        PROT_READ | PROT_WRITE);
+#endif
+    old_handler_.reset();
+    gProtectedData.handler = NULL;
+  }
+
+  if (installed_exception_handler_) {
+    mach_port_t current_task = mach_task_self();
+
+    // Restore the previous ports
+    for (unsigned int i = 0; i < previous_->count; ++i) {
+       result = task_set_exception_ports(current_task, previous_->masks[i],
+                                        previous_->ports[i],
+                                        previous_->behaviors[i],
+                                        previous_->flavors[i]);
+      if (result != KERN_SUCCESS)
+        return false;
+    }
+
+    // this delete should NOT happen if an exception just occurred!
+    if (!in_exception) {
+#if USE_PROTECTED_ALLOCATIONS
+      previous_->~ExceptionParameters();
+#else
+      delete previous_;
+#endif
+    }
+
+    previous_ = NULL;
+    installed_exception_handler_ = false;
+  }
+
+  return result == KERN_SUCCESS;
+}
+
+bool ExceptionHandler::Setup(bool install_handler) {
+  if (pthread_mutex_init(&minidump_write_mutex_, NULL))
+    return false;
+
+  // Create a receive right
+  mach_port_t current_task = mach_task_self();
+  kern_return_t result = mach_port_allocate(current_task,
+                                            MACH_PORT_RIGHT_RECEIVE,
+                                            &handler_port_);
+  // Add send right
+  if (result == KERN_SUCCESS)
+    result = mach_port_insert_right(current_task, handler_port_, handler_port_,
+                                    MACH_MSG_TYPE_MAKE_SEND);
+
+  if (install_handler && result == KERN_SUCCESS)
+    if (!InstallHandler())
+      return false;
+
+  if (result == KERN_SUCCESS) {
+    // Install the handler in its own thread, detached as we won't be joining.
+    pthread_attr_t attr;
+    pthread_attr_init(&attr);
+    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+    int thread_create_result = pthread_create(&handler_thread_, &attr,
+                                              &WaitForMessage, this);
+    pthread_attr_destroy(&attr);
+    result = thread_create_result ? KERN_FAILURE : KERN_SUCCESS;
+  }
+
+  return result == KERN_SUCCESS;
+}
+
+bool ExceptionHandler::Teardown() {
+  kern_return_t result = KERN_SUCCESS;
+  is_in_teardown_ = true;
+
+  if (!UninstallHandler(false))
+    return false;
+
+  // Send an empty message so that the handler_thread exits
+  if (SendMessageToHandlerThread(kShutdownMessage)) {
+    mach_port_t current_task = mach_task_self();
+    result = mach_port_deallocate(current_task, handler_port_);
+    if (result != KERN_SUCCESS)
+      return false;
+  } else {
+    return false;
+  }
+
+  handler_thread_ = NULL;
+  handler_port_ = MACH_PORT_NULL;
+  pthread_mutex_destroy(&minidump_write_mutex_);
+
+  return result == KERN_SUCCESS;
+}
+
+bool ExceptionHandler::SendMessageToHandlerThread(
+    HandlerThreadMessage message_id) {
+  ExceptionMessage msg;
+  memset(&msg, 0, sizeof(msg));
+  msg.header.msgh_id = message_id;
+  if (message_id == kWriteDumpMessage ||
+      message_id == kWriteDumpWithExceptionMessage) {
+    // Include this thread's port.
+    msg.thread.name = mach_thread_self();
+    msg.thread.disposition = MACH_MSG_TYPE_PORT_SEND;
+    msg.thread.type = MACH_MSG_PORT_DESCRIPTOR;
+  }
+  msg.header.msgh_size = sizeof(msg) - sizeof(msg.padding);
+  msg.header.msgh_remote_port = handler_port_;
+  msg.header.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND,
+                                          MACH_MSG_TYPE_MAKE_SEND_ONCE);
+  kern_return_t result = mach_msg(&(msg.header),
+                                  MACH_SEND_MSG | MACH_SEND_TIMEOUT,
+                                  msg.header.msgh_size, 0, 0,
+                                  MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+
+  return result == KERN_SUCCESS;
+}
+
+void ExceptionHandler::UpdateNextID() {
+  next_minidump_path_ =
+    (MinidumpGenerator::UniqueNameInDirectory(dump_path_, &next_minidump_id_));
+
+  next_minidump_path_c_ = next_minidump_path_.c_str();
+  next_minidump_id_c_ = next_minidump_id_.c_str();
+}
+
+bool ExceptionHandler::SuspendThreads() {
+  thread_act_port_array_t   threads_for_task;
+  mach_msg_type_number_t    thread_count;
+
+  if (task_threads(mach_task_self(), &threads_for_task, &thread_count))
+    return false;
+
+  // suspend all of the threads except for this one
+  for (unsigned int i = 0; i < thread_count; ++i) {
+    if (threads_for_task[i] != mach_thread_self()) {
+      if (thread_suspend(threads_for_task[i]))
+        return false;
+    }
+  }
+
+  return true;
+}
+
+bool ExceptionHandler::ResumeThreads() {
+  thread_act_port_array_t   threads_for_task;
+  mach_msg_type_number_t    thread_count;
+
+  if (task_threads(mach_task_self(), &threads_for_task, &thread_count))
+    return false;
+
+  // resume all of the threads except for this one
+  for (unsigned int i = 0; i < thread_count; ++i) {
+    if (threads_for_task[i] != mach_thread_self()) {
+      if (thread_resume(threads_for_task[i]))
+        return false;
+    }
+  }
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/mac/handler/exception_handler.h b/src/client/mac/handler/exception_handler.h
new file mode 100644
index 0000000..fe7491f
--- /dev/null
+++ b/src/client/mac/handler/exception_handler.h
@@ -0,0 +1,281 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exception_handler.h:  MacOS exception handler
+// This class can install a Mach exception port handler to trap most common
+// programming errors.  If an exception occurs, a minidump file will be
+// generated which contains detailed information about the process and the
+// exception.
+
+#ifndef CLIENT_MAC_HANDLER_EXCEPTION_HANDLER_H__
+#define CLIENT_MAC_HANDLER_EXCEPTION_HANDLER_H__
+
+#include <mach/mach.h>
+#include <TargetConditionals.h>
+
+#include <string>
+
+#include "client/mac/handler/ucontext_compat.h"
+#include "common/scoped_ptr.h"
+
+#if !TARGET_OS_IPHONE
+#include "client/mac/crash_generation/crash_generation_client.h"
+#endif
+
+namespace google_breakpad {
+
+using std::string;
+
+struct ExceptionParameters;
+
+enum HandlerThreadMessage {
+  // Message ID telling the handler thread to write a dump.
+  kWriteDumpMessage = 0,
+  // Message ID telling the handler thread to write a dump and include
+  // an exception stream.
+  kWriteDumpWithExceptionMessage = 1,
+  // Message ID telling the handler thread to quit.
+  kShutdownMessage = 2
+};
+
+class ExceptionHandler {
+ public:
+  // A callback function to run before Breakpad performs any substantial
+  // processing of an exception.  A FilterCallback is called before writing
+  // a minidump.  context is the parameter supplied by the user as
+  // callback_context when the handler was created.
+  //
+  // If a FilterCallback returns true, Breakpad will continue processing,
+  // attempting to write a minidump.  If a FilterCallback returns false, Breakpad
+  // will immediately report the exception as unhandled without writing a
+  // minidump, allowing another handler the opportunity to handle it.
+  typedef bool (*FilterCallback)(void* context);
+
+  // A callback function to run after the minidump has been written.
+  // |minidump_id| is a unique id for the dump, so the minidump
+  // file is <dump_dir>/<minidump_id>.dmp.
+  // |context| is the value passed into the constructor.
+  // |succeeded| indicates whether a minidump file was successfully written.
+  // Return true if the exception was fully handled and breakpad should exit.
+  // Return false to allow any other exception handlers to process the
+  // exception.
+  typedef bool (*MinidumpCallback)(const char* dump_dir,
+                                   const char* minidump_id,
+                                   void* context, bool succeeded);
+
+  // A callback function which will be called directly if an exception occurs.
+  // This bypasses the minidump file writing and simply gives the client
+  // the exception information.
+  typedef bool (*DirectCallback)(void* context,
+                                 int exception_type,
+                                 int exception_code,
+                                 int exception_subcode,
+                                 mach_port_t thread_name);
+
+  // Creates a new ExceptionHandler instance to handle writing minidumps.
+  // Minidump files will be written to dump_path, and the optional callback
+  // is called after writing the dump file, as described above.
+  // If install_handler is true, then a minidump will be written whenever
+  // an unhandled exception occurs.  If it is false, minidumps will only
+  // be written when WriteMinidump is called.
+  // If port_name is non-NULL, attempt to perform out-of-process dump generation
+  // If port_name is NULL, in-process dump generation will be used.
+  ExceptionHandler(const string& dump_path,
+                   FilterCallback filter, MinidumpCallback callback,
+                   void* callback_context, bool install_handler,
+                   const char* port_name);
+
+  // A special constructor if we want to bypass minidump writing and
+  // simply get a callback with the exception information.
+  ExceptionHandler(DirectCallback callback,
+                   void* callback_context,
+                   bool install_handler);
+
+  ~ExceptionHandler();
+
+  // Get and set the minidump path.
+  string dump_path() const { return dump_path_; }
+  void set_dump_path(const string& dump_path) {
+    dump_path_ = dump_path;
+    dump_path_c_ = dump_path_.c_str();
+    UpdateNextID();  // Necessary to put dump_path_ in next_minidump_path_.
+  }
+
+  // Writes a minidump immediately.  This can be used to capture the
+  // execution state independently of a crash.  Returns true on success.
+  bool WriteMinidump() {
+    return WriteMinidump(false);
+  }
+
+  bool WriteMinidump(bool write_exception_stream);
+
+  // Convenience form of WriteMinidump which does not require an
+  // ExceptionHandler instance.
+  static bool WriteMinidump(const string& dump_path, MinidumpCallback callback,
+                            void* callback_context) {
+    return WriteMinidump(dump_path, false, callback, callback_context);
+  }
+
+  static bool WriteMinidump(const string& dump_path,
+                            bool write_exception_stream,
+                            MinidumpCallback callback,
+                            void* callback_context);
+
+  // Write a minidump of child immediately. This can be used to capture
+  // the execution state of a child process independently of a crash.
+  static bool WriteMinidumpForChild(mach_port_t child,
+                                    mach_port_t child_blamed_thread,
+                                    const std::string& dump_path,
+                                    MinidumpCallback callback,
+                                    void* callback_context);
+
+  // Returns whether out-of-process dump generation is used or not.
+  bool IsOutOfProcess() const {
+#if TARGET_OS_IPHONE
+    return false;
+#else
+    return crash_generation_client_.get() != NULL;
+#endif
+  }
+
+ private:
+  // Install the mach exception handler
+  bool InstallHandler();
+
+  // Uninstall the mach exception handler (if any)
+  bool UninstallHandler(bool in_exception);
+
+  // Setup the handler thread, and if |install_handler| is true, install the
+  // mach exception port handler
+  bool Setup(bool install_handler);
+
+  // Uninstall the mach exception handler (if any) and terminate the helper
+  // thread
+  bool Teardown();
+
+  // Send a mach message to the exception handler.  Return true on
+  // success, false otherwise.
+  bool SendMessageToHandlerThread(HandlerThreadMessage message_id);
+
+  // All minidump writing goes through this one routine.
+  // |task_context| can be NULL. If not, it will be used to retrieve the
+  // context of the current thread, instead of using |thread_get_state|.
+  bool WriteMinidumpWithException(int exception_type,
+                                  int exception_code,
+                                  int exception_subcode,
+                                  breakpad_ucontext_t* task_context,
+                                  mach_port_t thread_name,
+                                  bool exit_after_write,
+                                  bool report_current_thread);
+
+  // When installed, this static function will be call from a newly created
+  // pthread with |this| as the argument
+  static void* WaitForMessage(void* exception_handler_class);
+
+  // Signal handler for SIGABRT.
+  static void SignalHandler(int sig, siginfo_t* info, void* uc);
+
+  // disallow copy ctor and operator=
+  explicit ExceptionHandler(const ExceptionHandler&);
+  void operator=(const ExceptionHandler&);
+
+  // Generates a new ID and stores it in next_minidump_id_, and stores the
+  // path of the next minidump to be written in next_minidump_path_.
+  void UpdateNextID();
+
+  // These functions will suspend/resume all threads except for the
+  // reporting thread
+  bool SuspendThreads();
+  bool ResumeThreads();
+
+  // The destination directory for the minidump
+  string dump_path_;
+
+  // The basename of the next minidump w/o extension
+  string next_minidump_id_;
+
+  // The full path to the next minidump to be written, including extension
+  string next_minidump_path_;
+
+  // Pointers to the UTF-8 versions of above
+  const char* dump_path_c_;
+  const char* next_minidump_id_c_;
+  const char* next_minidump_path_c_;
+
+  // The callback function and pointer to be passed back after the minidump
+  // has been written
+  FilterCallback filter_;
+  MinidumpCallback callback_;
+  void* callback_context_;
+
+  // The callback function to be passed back when we don't want a minidump
+  // file to be written
+  DirectCallback directCallback_;
+
+  // The thread that is created for the handler
+  pthread_t handler_thread_;
+
+  // The port that is waiting on an exception message to be sent, if the
+  // handler is installed
+  mach_port_t handler_port_;
+
+  // These variables save the previous exception handler's data so that it
+  // can be re-installed when this handler is uninstalled
+  ExceptionParameters* previous_;
+
+  // True, if we've installed the exception handler
+  bool installed_exception_handler_;
+
+  // True, if we're in the process of uninstalling the exception handler and
+  // the thread.
+  bool is_in_teardown_;
+
+  // Save the last result of the last minidump
+  bool last_minidump_write_result_;
+
+  // A mutex for use when writing out a minidump that was requested on a
+  // thread other than the exception handler.
+  pthread_mutex_t minidump_write_mutex_;
+
+  // True, if we're using the mutext to indicate when mindump writing occurs
+  bool use_minidump_write_mutex_;
+
+  // Old signal handler for SIGABRT. Used to be able to restore it when
+  // uninstalling.
+  scoped_ptr<struct sigaction> old_handler_;
+
+#if !TARGET_OS_IPHONE
+  // Client for out-of-process dump generation.
+  scoped_ptr<CrashGenerationClient> crash_generation_client_;
+#endif
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_MAC_HANDLER_EXCEPTION_HANDLER_H__
diff --git a/src/client/mac/handler/mach_vm_compat.h b/src/client/mac/handler/mach_vm_compat.h
new file mode 100644
index 0000000..9e9028b
--- /dev/null
+++ b/src/client/mac/handler/mach_vm_compat.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_
+#define CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_
+
+#include <TargetConditionals.h>
+
+// On iOS 5 and higher, mach/mach_vm.h is not supported. Use the corresponding
+// vm_map functions instead.
+#if TARGET_OS_IPHONE
+#include <mach/vm_map.h>
+#define mach_vm_address_t vm_address_t
+#define mach_vm_deallocate vm_deallocate
+#define mach_vm_read vm_read
+#define mach_vm_region_recurse vm_region_recurse_64
+#define mach_vm_size_t vm_size_t
+#else
+#include <mach/mach_vm.h>
+#endif  // TARGET_OS_IPHONE
+
+#endif  // CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_
diff --git a/src/client/mac/handler/minidump_generator.cc b/src/client/mac/handler/minidump_generator.cc
new file mode 100644
index 0000000..e0351c4
--- /dev/null
+++ b/src/client/mac/handler/minidump_generator.cc
@@ -0,0 +1,1604 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <algorithm>
+#include <cstdio>
+
+#include <mach/host_info.h>
+#include <mach/machine.h>
+#include <mach/vm_statistics.h>
+#include <mach-o/dyld.h>
+#include <mach-o/loader.h>
+#include <sys/sysctl.h>
+#include <sys/resource.h>
+
+#include <CoreFoundation/CoreFoundation.h>
+
+#include "client/mac/handler/minidump_generator.h"
+
+#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
+#include <mach/arm/thread_status.h>
+#endif
+#ifdef HAS_PPC_SUPPORT
+#include <mach/ppc/thread_status.h>
+#endif
+#ifdef HAS_X86_SUPPORT
+#include <mach/i386/thread_status.h>
+#endif
+
+#include "client/minidump_file_writer-inl.h"
+#include "common/mac/file_id.h"
+#include "common/mac/macho_id.h"
+#include "common/mac/string_utilities.h"
+
+using MacStringUtils::ConvertToString;
+using MacStringUtils::IntegerValueAtIndex;
+
+namespace google_breakpad {
+
+#if defined(__LP64__) && __LP64__
+#define LC_SEGMENT_ARCH LC_SEGMENT_64
+#else
+#define LC_SEGMENT_ARCH LC_SEGMENT
+#endif
+
+// constructor when generating from within the crashed process
+MinidumpGenerator::MinidumpGenerator()
+    : writer_(),
+      exception_type_(0),
+      exception_code_(0),
+      exception_subcode_(0),
+      exception_thread_(0),
+      crashing_task_(mach_task_self()),
+      handler_thread_(mach_thread_self()),
+      cpu_type_(DynamicImages::GetNativeCPUType()),
+      task_context_(NULL),
+      dynamic_images_(NULL),
+      memory_blocks_(&allocator_) {
+  GatherSystemInformation();
+}
+
+// constructor when generating from a different process than the
+// crashed process
+MinidumpGenerator::MinidumpGenerator(mach_port_t crashing_task,
+                                     mach_port_t handler_thread)
+    : writer_(),
+      exception_type_(0),
+      exception_code_(0),
+      exception_subcode_(0),
+      exception_thread_(0),
+      crashing_task_(crashing_task),
+      handler_thread_(handler_thread),
+      cpu_type_(DynamicImages::GetNativeCPUType()),
+      task_context_(NULL),
+      dynamic_images_(NULL),
+      memory_blocks_(&allocator_) {
+  if (crashing_task != mach_task_self()) {
+    dynamic_images_ = new DynamicImages(crashing_task_);
+    cpu_type_ = dynamic_images_->GetCPUType();
+  } else {
+    dynamic_images_ = NULL;
+    cpu_type_ = DynamicImages::GetNativeCPUType();
+  }
+
+  GatherSystemInformation();
+}
+
+MinidumpGenerator::~MinidumpGenerator() {
+  delete dynamic_images_;
+}
+
+char MinidumpGenerator::build_string_[16];
+int MinidumpGenerator::os_major_version_ = 0;
+int MinidumpGenerator::os_minor_version_ = 0;
+int MinidumpGenerator::os_build_number_ = 0;
+
+// static
+void MinidumpGenerator::GatherSystemInformation() {
+  // If this is non-zero, then we've already gathered the information
+  if (os_major_version_)
+    return;
+
+  // This code extracts the version and build information from the OS
+  CFStringRef vers_path =
+    CFSTR("/System/Library/CoreServices/SystemVersion.plist");
+  CFURLRef sys_vers =
+    CFURLCreateWithFileSystemPath(NULL,
+                                  vers_path,
+                                  kCFURLPOSIXPathStyle,
+                                  false);
+  CFReadStreamRef read_stream = CFReadStreamCreateWithFile(NULL, sys_vers);
+  CFRelease(sys_vers);
+  if (!read_stream) {
+    return;
+  }
+  if (!CFReadStreamOpen(read_stream)) {
+    CFRelease(read_stream);
+    return;
+  }
+  CFMutableDataRef data = NULL;
+  while (true) {
+    // Actual data file tests: Mac at 480 bytes and iOS at 413 bytes.
+    const CFIndex kMaxBufferLength = 1024;
+    UInt8 data_bytes[kMaxBufferLength];
+    CFIndex num_bytes_read =
+      CFReadStreamRead(read_stream, data_bytes, kMaxBufferLength);
+    if (num_bytes_read < 0) {
+      if (data) {
+        CFRelease(data);
+        data = NULL;
+      }
+      break;
+    } else if (num_bytes_read == 0) {
+      break;
+    } else if (!data) {
+      data = CFDataCreateMutable(NULL, 0);
+    }
+    CFDataAppendBytes(data, data_bytes, num_bytes_read);
+  }
+  CFReadStreamClose(read_stream);
+  CFRelease(read_stream);
+  if (!data) {
+    return;
+  }
+  CFDictionaryRef list =
+      static_cast<CFDictionaryRef>(CFPropertyListCreateWithData(
+          NULL, data, kCFPropertyListImmutable, NULL, NULL));
+  CFRelease(data);
+  if (!list) {
+    return;
+  }
+  CFStringRef build_version = static_cast<CFStringRef>
+    (CFDictionaryGetValue(list, CFSTR("ProductBuildVersion")));
+  CFStringRef product_version = static_cast<CFStringRef>
+    (CFDictionaryGetValue(list, CFSTR("ProductVersion")));
+  string build_str = ConvertToString(build_version);
+  string product_str = ConvertToString(product_version);
+
+  CFRelease(list);
+
+  strlcpy(build_string_, build_str.c_str(), sizeof(build_string_));
+
+  // Parse the string that looks like "10.4.8"
+  os_major_version_ = IntegerValueAtIndex(product_str, 0);
+  os_minor_version_ = IntegerValueAtIndex(product_str, 1);
+  os_build_number_ = IntegerValueAtIndex(product_str, 2);
+}
+
+void MinidumpGenerator::SetTaskContext(breakpad_ucontext_t* task_context) {
+  task_context_ = task_context;
+}
+
+string MinidumpGenerator::UniqueNameInDirectory(const string& dir,
+                                                string* unique_name) {
+  CFUUIDRef uuid = CFUUIDCreate(NULL);
+  CFStringRef uuid_cfstr = CFUUIDCreateString(NULL, uuid);
+  CFRelease(uuid);
+  string file_name(ConvertToString(uuid_cfstr));
+  CFRelease(uuid_cfstr);
+  string path(dir);
+
+  // Ensure that the directory (if non-empty) has a trailing slash so that
+  // we can append the file name and have a valid pathname.
+  if (!dir.empty()) {
+    if (dir.at(dir.size() - 1) != '/')
+      path.append(1, '/');
+  }
+
+  path.append(file_name);
+  path.append(".dmp");
+
+  if (unique_name)
+    *unique_name = file_name;
+
+  return path;
+}
+
+bool MinidumpGenerator::Write(const char* path) {
+  WriteStreamFN writers[] = {
+    &MinidumpGenerator::WriteThreadListStream,
+    &MinidumpGenerator::WriteMemoryListStream,
+    &MinidumpGenerator::WriteSystemInfoStream,
+    &MinidumpGenerator::WriteModuleListStream,
+    &MinidumpGenerator::WriteMiscInfoStream,
+    &MinidumpGenerator::WriteBreakpadInfoStream,
+    // Exception stream needs to be the last entry in this array as it may
+    // be omitted in the case where the minidump is written without an
+    // exception.
+    &MinidumpGenerator::WriteExceptionStream,
+  };
+  bool result = false;
+
+  // If opening was successful, create the header, directory, and call each
+  // writer.  The destructor for the TypedMDRVAs will cause the data to be
+  // flushed.  The destructor for the MinidumpFileWriter will close the file.
+  if (writer_.Open(path)) {
+    TypedMDRVA<MDRawHeader> header(&writer_);
+    TypedMDRVA<MDRawDirectory> dir(&writer_);
+
+    if (!header.Allocate())
+      return false;
+
+    int writer_count = static_cast<int>(sizeof(writers) / sizeof(writers[0]));
+
+    // If we don't have exception information, don't write out the
+    // exception stream
+    if (!exception_thread_ && !exception_type_)
+      --writer_count;
+
+    // Add space for all writers
+    if (!dir.AllocateArray(writer_count))
+      return false;
+
+    MDRawHeader* header_ptr = header.get();
+    header_ptr->signature = MD_HEADER_SIGNATURE;
+    header_ptr->version = MD_HEADER_VERSION;
+    time(reinterpret_cast<time_t*>(&(header_ptr->time_date_stamp)));
+    header_ptr->stream_count = writer_count;
+    header_ptr->stream_directory_rva = dir.position();
+
+    MDRawDirectory local_dir;
+    result = true;
+    for (int i = 0; (result) && (i < writer_count); ++i) {
+      result = (this->*writers[i])(&local_dir);
+
+      if (result)
+        dir.CopyIndex(i, &local_dir);
+    }
+  }
+  return result;
+}
+
+size_t MinidumpGenerator::CalculateStackSize(mach_vm_address_t start_addr) {
+  mach_vm_address_t stack_region_base = start_addr;
+  mach_vm_size_t stack_region_size;
+  natural_t nesting_level = 0;
+  vm_region_submap_info_64 submap_info;
+  mach_msg_type_number_t info_count = VM_REGION_SUBMAP_INFO_COUNT_64;
+
+  vm_region_recurse_info_t region_info;
+  region_info = reinterpret_cast<vm_region_recurse_info_t>(&submap_info);
+
+  if (start_addr == 0) {
+    return 0;
+  }
+
+  kern_return_t result =
+    mach_vm_region_recurse(crashing_task_, &stack_region_base,
+                           &stack_region_size, &nesting_level,
+                           region_info, &info_count);
+
+  if (result != KERN_SUCCESS || start_addr < stack_region_base) {
+    // Failure or stack corruption, since mach_vm_region had to go
+    // higher in the process address space to find a valid region.
+    return 0;
+  }
+
+  unsigned int tag = submap_info.user_tag;
+
+  // If the user tag is VM_MEMORY_STACK, look for more readable regions with
+  // the same tag placed immediately above the computed stack region. Under
+  // some circumstances, the stack for thread 0 winds up broken up into
+  // multiple distinct abutting regions. This can happen for several reasons,
+  // including user code that calls setrlimit(RLIMIT_STACK, ...) or changes
+  // the access on stack pages by calling mprotect.
+  if (tag == VM_MEMORY_STACK) {
+    while (true) {
+      mach_vm_address_t next_region_base = stack_region_base +
+                                           stack_region_size;
+      mach_vm_address_t proposed_next_region_base = next_region_base;
+      mach_vm_size_t next_region_size;
+      nesting_level = 0;
+      info_count = VM_REGION_SUBMAP_INFO_COUNT_64;
+      result = mach_vm_region_recurse(crashing_task_, &next_region_base,
+                                      &next_region_size, &nesting_level,
+                                      region_info, &info_count);
+      if (result != KERN_SUCCESS ||
+          next_region_base != proposed_next_region_base ||
+          submap_info.user_tag != tag ||
+          (submap_info.protection & VM_PROT_READ) == 0) {
+        break;
+      }
+
+      stack_region_size += next_region_size;
+    }
+  }
+
+  return stack_region_base + stack_region_size - start_addr;
+}
+
+bool MinidumpGenerator::WriteStackFromStartAddress(
+    mach_vm_address_t start_addr,
+    MDMemoryDescriptor* stack_location) {
+  UntypedMDRVA memory(&writer_);
+
+  bool result = false;
+  size_t size = CalculateStackSize(start_addr);
+
+  if (size == 0) {
+      // In some situations the stack address for the thread can come back 0.
+      // In these cases we skip over the threads in question and stuff the
+      // stack with a clearly borked value.
+      start_addr = 0xDEADBEEF;
+      size = 16;
+      if (!memory.Allocate(size))
+        return false;
+
+      unsigned long long dummy_stack[2];  // Fill dummy stack with 16 bytes of
+                                          // junk.
+      dummy_stack[0] = 0xDEADBEEF;
+      dummy_stack[1] = 0xDEADBEEF;
+
+      result = memory.Copy(dummy_stack, size);
+  } else {
+
+    if (!memory.Allocate(size))
+      return false;
+
+    if (dynamic_images_) {
+      vector<uint8_t> stack_memory;
+      if (ReadTaskMemory(crashing_task_,
+                         start_addr,
+                         size,
+                         stack_memory) != KERN_SUCCESS) {
+        return false;
+      }
+
+      result = memory.Copy(&stack_memory[0], size);
+    } else {
+      result = memory.Copy(reinterpret_cast<const void*>(start_addr), size);
+    }
+  }
+
+  stack_location->start_of_memory_range = start_addr;
+  stack_location->memory = memory.location();
+
+  return result;
+}
+
+bool MinidumpGenerator::WriteStack(breakpad_thread_state_data_t state,
+                                   MDMemoryDescriptor* stack_location) {
+  switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+    case CPU_TYPE_ARM:
+      return WriteStackARM(state, stack_location);
+#endif
+#ifdef HAS_ARM64_SUPPORT
+    case CPU_TYPE_ARM64:
+      return WriteStackARM64(state, stack_location);
+#endif
+#ifdef HAS_PPC_SUPPORT
+    case CPU_TYPE_POWERPC:
+      return WriteStackPPC(state, stack_location);
+    case CPU_TYPE_POWERPC64:
+      return WriteStackPPC64(state, stack_location);
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+      return WriteStackX86(state, stack_location);
+    case CPU_TYPE_X86_64:
+      return WriteStackX86_64(state, stack_location);
+#endif
+    default:
+      return false;
+  }
+}
+
+bool MinidumpGenerator::WriteContext(breakpad_thread_state_data_t state,
+                                     MDLocationDescriptor* register_location) {
+  switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+    case CPU_TYPE_ARM:
+      return WriteContextARM(state, register_location);
+#endif
+#ifdef HAS_ARM64_SUPPORT
+    case CPU_TYPE_ARM64:
+      return WriteContextARM64(state, register_location);
+#endif
+#ifdef HAS_PPC_SUPPORT
+    case CPU_TYPE_POWERPC:
+      return WriteContextPPC(state, register_location);
+    case CPU_TYPE_POWERPC64:
+      return WriteContextPPC64(state, register_location);
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+      return WriteContextX86(state, register_location);
+    case CPU_TYPE_X86_64:
+      return WriteContextX86_64(state, register_location);
+#endif
+    default:
+      return false;
+  }
+}
+
+uint64_t MinidumpGenerator::CurrentPCForStack(
+    breakpad_thread_state_data_t state) {
+  switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+    case CPU_TYPE_ARM:
+      return CurrentPCForStackARM(state);
+#endif
+#ifdef HAS_ARM64_SUPPORT
+    case CPU_TYPE_ARM64:
+      return CurrentPCForStackARM64(state);
+#endif
+#ifdef HAS_PPC_SUPPORT
+    case CPU_TYPE_POWERPC:
+      return CurrentPCForStackPPC(state);
+    case CPU_TYPE_POWERPC64:
+      return CurrentPCForStackPPC64(state);
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+      return CurrentPCForStackX86(state);
+    case CPU_TYPE_X86_64:
+      return CurrentPCForStackX86_64(state);
+#endif
+    default:
+      assert(0 && "Unknown CPU type!");
+      return 0;
+  }
+}
+
+#ifdef HAS_ARM_SUPPORT
+bool MinidumpGenerator::WriteStackARM(breakpad_thread_state_data_t state,
+                                      MDMemoryDescriptor* stack_location) {
+  arm_thread_state_t* machine_state =
+      reinterpret_cast<arm_thread_state_t*>(state);
+  mach_vm_address_t start_addr = REGISTER_FROM_THREADSTATE(machine_state, sp);
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackARM(breakpad_thread_state_data_t state) {
+  arm_thread_state_t* machine_state =
+      reinterpret_cast<arm_thread_state_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, pc);
+}
+
+bool MinidumpGenerator::WriteContextARM(breakpad_thread_state_data_t state,
+                                        MDLocationDescriptor* register_location)
+{
+  TypedMDRVA<MDRawContextARM> context(&writer_);
+  arm_thread_state_t* machine_state =
+      reinterpret_cast<arm_thread_state_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextARM* context_ptr = context.get();
+  context_ptr->context_flags = MD_CONTEXT_ARM_FULL;
+
+#define AddGPR(a) context_ptr->iregs[a] = REGISTER_FROM_THREADSTATE(machine_state, r[a])
+
+  context_ptr->iregs[13] = REGISTER_FROM_THREADSTATE(machine_state, sp);
+  context_ptr->iregs[14] = REGISTER_FROM_THREADSTATE(machine_state, lr);
+  context_ptr->iregs[15] = REGISTER_FROM_THREADSTATE(machine_state, pc);
+  context_ptr->cpsr = REGISTER_FROM_THREADSTATE(machine_state, cpsr);
+
+  AddGPR(0);
+  AddGPR(1);
+  AddGPR(2);
+  AddGPR(3);
+  AddGPR(4);
+  AddGPR(5);
+  AddGPR(6);
+  AddGPR(7);
+  AddGPR(8);
+  AddGPR(9);
+  AddGPR(10);
+  AddGPR(11);
+  AddGPR(12);
+#undef AddGPR
+
+  return true;
+}
+#endif
+
+#ifdef HAS_ARM64_SUPPORT
+bool MinidumpGenerator::WriteStackARM64(breakpad_thread_state_data_t state,
+                                        MDMemoryDescriptor* stack_location) {
+  arm_thread_state64_t* machine_state =
+      reinterpret_cast<arm_thread_state64_t*>(state);
+  mach_vm_address_t start_addr = REGISTER_FROM_THREADSTATE(machine_state, sp);
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackARM64(breakpad_thread_state_data_t state) {
+  arm_thread_state64_t* machine_state =
+      reinterpret_cast<arm_thread_state64_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, pc);
+}
+
+bool
+MinidumpGenerator::WriteContextARM64(breakpad_thread_state_data_t state,
+                                     MDLocationDescriptor* register_location)
+{
+  TypedMDRVA<MDRawContextARM64_Old> context(&writer_);
+  arm_thread_state64_t* machine_state =
+      reinterpret_cast<arm_thread_state64_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextARM64_Old* context_ptr = context.get();
+  context_ptr->context_flags = MD_CONTEXT_ARM64_FULL_OLD;
+
+#define AddGPR(a)                                                              \
+  context_ptr->iregs[a] = ARRAY_REGISTER_FROM_THREADSTATE(machine_state, x, a)
+
+  context_ptr->iregs[29] = REGISTER_FROM_THREADSTATE(machine_state, fp);
+  context_ptr->iregs[30] = REGISTER_FROM_THREADSTATE(machine_state, lr);
+  context_ptr->iregs[31] = REGISTER_FROM_THREADSTATE(machine_state, sp);
+  context_ptr->iregs[32] = REGISTER_FROM_THREADSTATE(machine_state, pc);
+  context_ptr->cpsr = REGISTER_FROM_THREADSTATE(machine_state, cpsr);
+
+  AddGPR(0);
+  AddGPR(1);
+  AddGPR(2);
+  AddGPR(3);
+  AddGPR(4);
+  AddGPR(5);
+  AddGPR(6);
+  AddGPR(7);
+  AddGPR(8);
+  AddGPR(9);
+  AddGPR(10);
+  AddGPR(11);
+  AddGPR(12);
+  AddGPR(13);
+  AddGPR(14);
+  AddGPR(15);
+  AddGPR(16);
+  AddGPR(17);
+  AddGPR(18);
+  AddGPR(19);
+  AddGPR(20);
+  AddGPR(21);
+  AddGPR(22);
+  AddGPR(23);
+  AddGPR(24);
+  AddGPR(25);
+  AddGPR(26);
+  AddGPR(27);
+  AddGPR(28);
+#undef AddGPR
+
+  return true;
+}
+#endif
+
+#ifdef HAS_PCC_SUPPORT
+bool MinidumpGenerator::WriteStackPPC(breakpad_thread_state_data_t state,
+                                      MDMemoryDescriptor* stack_location) {
+  ppc_thread_state_t* machine_state =
+      reinterpret_cast<ppc_thread_state_t*>(state);
+  mach_vm_address_t start_addr = REGISTER_FROM_THREADSTATE(machine_state, r1);
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+bool MinidumpGenerator::WriteStackPPC64(breakpad_thread_state_data_t state,
+                                        MDMemoryDescriptor* stack_location) {
+  ppc_thread_state64_t* machine_state =
+      reinterpret_cast<ppc_thread_state64_t*>(state);
+  mach_vm_address_t start_addr = REGISTER_FROM_THREADSTATE(machine_state, r1);
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackPPC(breakpad_thread_state_data_t state) {
+  ppc_thread_state_t* machine_state =
+      reinterpret_cast<ppc_thread_state_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, srr0);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackPPC64(breakpad_thread_state_data_t state) {
+  ppc_thread_state64_t* machine_state =
+      reinterpret_cast<ppc_thread_state64_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, srr0);
+}
+
+bool MinidumpGenerator::WriteContextPPC(breakpad_thread_state_data_t state,
+                                        MDLocationDescriptor* register_location)
+{
+  TypedMDRVA<MDRawContextPPC> context(&writer_);
+  ppc_thread_state_t* machine_state =
+      reinterpret_cast<ppc_thread_state_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextPPC* context_ptr = context.get();
+  context_ptr->context_flags = MD_CONTEXT_PPC_BASE;
+
+#define AddReg(a) context_ptr->a = static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, a))
+#define AddGPR(a) context_ptr->gpr[a] = \
+    static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, r ## a)
+
+  AddReg(srr0);
+  AddReg(cr);
+  AddReg(xer);
+  AddReg(ctr);
+  AddReg(lr);
+  AddReg(vrsave);
+
+  AddGPR(0);
+  AddGPR(1);
+  AddGPR(2);
+  AddGPR(3);
+  AddGPR(4);
+  AddGPR(5);
+  AddGPR(6);
+  AddGPR(7);
+  AddGPR(8);
+  AddGPR(9);
+  AddGPR(10);
+  AddGPR(11);
+  AddGPR(12);
+  AddGPR(13);
+  AddGPR(14);
+  AddGPR(15);
+  AddGPR(16);
+  AddGPR(17);
+  AddGPR(18);
+  AddGPR(19);
+  AddGPR(20);
+  AddGPR(21);
+  AddGPR(22);
+  AddGPR(23);
+  AddGPR(24);
+  AddGPR(25);
+  AddGPR(26);
+  AddGPR(27);
+  AddGPR(28);
+  AddGPR(29);
+  AddGPR(30);
+  AddGPR(31);
+  AddReg(mq);
+#undef AddReg
+#undef AddGPR
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteContextPPC64(
+    breakpad_thread_state_data_t state,
+    MDLocationDescriptor* register_location) {
+  TypedMDRVA<MDRawContextPPC64> context(&writer_);
+  ppc_thread_state64_t* machine_state =
+      reinterpret_cast<ppc_thread_state64_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextPPC64* context_ptr = context.get();
+  context_ptr->context_flags = MD_CONTEXT_PPC_BASE;
+
+#define AddReg(a) context_ptr->a = static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, a))
+#define AddGPR(a) context_ptr->gpr[a] = \
+    static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, r ## a)
+
+  AddReg(srr0);
+  AddReg(cr);
+  AddReg(xer);
+  AddReg(ctr);
+  AddReg(lr);
+  AddReg(vrsave);
+
+  AddGPR(0);
+  AddGPR(1);
+  AddGPR(2);
+  AddGPR(3);
+  AddGPR(4);
+  AddGPR(5);
+  AddGPR(6);
+  AddGPR(7);
+  AddGPR(8);
+  AddGPR(9);
+  AddGPR(10);
+  AddGPR(11);
+  AddGPR(12);
+  AddGPR(13);
+  AddGPR(14);
+  AddGPR(15);
+  AddGPR(16);
+  AddGPR(17);
+  AddGPR(18);
+  AddGPR(19);
+  AddGPR(20);
+  AddGPR(21);
+  AddGPR(22);
+  AddGPR(23);
+  AddGPR(24);
+  AddGPR(25);
+  AddGPR(26);
+  AddGPR(27);
+  AddGPR(28);
+  AddGPR(29);
+  AddGPR(30);
+  AddGPR(31);
+#undef AddReg
+#undef AddGPR
+
+  return true;
+}
+
+#endif
+
+#ifdef HAS_X86_SUPPORT
+bool MinidumpGenerator::WriteStackX86(breakpad_thread_state_data_t state,
+                                   MDMemoryDescriptor* stack_location) {
+  i386_thread_state_t* machine_state =
+      reinterpret_cast<i386_thread_state_t*>(state);
+
+  mach_vm_address_t start_addr = REGISTER_FROM_THREADSTATE(machine_state, esp);
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+bool MinidumpGenerator::WriteStackX86_64(breakpad_thread_state_data_t state,
+                                         MDMemoryDescriptor* stack_location) {
+  x86_thread_state64_t* machine_state =
+      reinterpret_cast<x86_thread_state64_t*>(state);
+
+  mach_vm_address_t start_addr = static_cast<mach_vm_address_t>(
+      REGISTER_FROM_THREADSTATE(machine_state, rsp));
+  return WriteStackFromStartAddress(start_addr, stack_location);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackX86(breakpad_thread_state_data_t state) {
+  i386_thread_state_t* machine_state =
+      reinterpret_cast<i386_thread_state_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, eip);
+}
+
+uint64_t
+MinidumpGenerator::CurrentPCForStackX86_64(breakpad_thread_state_data_t state) {
+  x86_thread_state64_t* machine_state =
+      reinterpret_cast<x86_thread_state64_t*>(state);
+
+  return REGISTER_FROM_THREADSTATE(machine_state, rip);
+}
+
+bool MinidumpGenerator::WriteContextX86(breakpad_thread_state_data_t state,
+                                        MDLocationDescriptor* register_location)
+{
+  TypedMDRVA<MDRawContextX86> context(&writer_);
+  i386_thread_state_t* machine_state =
+      reinterpret_cast<i386_thread_state_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextX86* context_ptr = context.get();
+
+#define AddReg(a) context_ptr->a = static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, a))
+
+  context_ptr->context_flags = MD_CONTEXT_X86;
+  AddReg(eax);
+  AddReg(ebx);
+  AddReg(ecx);
+  AddReg(edx);
+  AddReg(esi);
+  AddReg(edi);
+  AddReg(ebp);
+  AddReg(esp);
+
+  AddReg(cs);
+  AddReg(ds);
+  AddReg(ss);
+  AddReg(es);
+  AddReg(fs);
+  AddReg(gs);
+  AddReg(eflags);
+
+  AddReg(eip);
+#undef AddReg
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteContextX86_64(
+    breakpad_thread_state_data_t state,
+    MDLocationDescriptor* register_location) {
+  TypedMDRVA<MDRawContextAMD64> context(&writer_);
+  x86_thread_state64_t* machine_state =
+      reinterpret_cast<x86_thread_state64_t*>(state);
+
+  if (!context.Allocate())
+    return false;
+
+  *register_location = context.location();
+  MDRawContextAMD64* context_ptr = context.get();
+
+#define AddReg(a) context_ptr->a = static_cast<__typeof__(context_ptr->a)>( \
+    REGISTER_FROM_THREADSTATE(machine_state, a))
+
+  context_ptr->context_flags = MD_CONTEXT_AMD64;
+  AddReg(rax);
+  AddReg(rbx);
+  AddReg(rcx);
+  AddReg(rdx);
+  AddReg(rdi);
+  AddReg(rsi);
+  AddReg(rbp);
+  AddReg(rsp);
+  AddReg(r8);
+  AddReg(r9);
+  AddReg(r10);
+  AddReg(r11);
+  AddReg(r12);
+  AddReg(r13);
+  AddReg(r14);
+  AddReg(r15);
+  AddReg(rip);
+  // according to AMD's software developer guide, bits above 18 are
+  // not used in the flags register.  Since the minidump format
+  // specifies 32 bits for the flags register, we can truncate safely
+  // with no loss.
+  context_ptr->eflags = static_cast<uint32_t>(REGISTER_FROM_THREADSTATE(machine_state, rflags));
+  AddReg(cs);
+  AddReg(fs);
+  AddReg(gs);
+#undef AddReg
+
+  return true;
+}
+#endif
+
+bool MinidumpGenerator::GetThreadState(thread_act_t target_thread,
+                                       thread_state_t state,
+                                       mach_msg_type_number_t* count) {
+  if (task_context_ && target_thread == mach_thread_self()) {
+    switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+      case CPU_TYPE_ARM:
+        size_t final_size =
+            std::min(static_cast<size_t>(*count), sizeof(arm_thread_state_t));
+        memcpy(state, &task_context_->breakpad_uc_mcontext->__ss, final_size);
+        *count = static_cast<mach_msg_type_number_t>(final_size);
+        return true;
+#endif
+#ifdef HAS_ARM64_SUPPORT
+      case CPU_TYPE_ARM64: {
+        size_t final_size =
+            std::min(static_cast<size_t>(*count), sizeof(arm_thread_state64_t));
+        memcpy(state, &task_context_->breakpad_uc_mcontext->__ss, final_size);
+        *count = static_cast<mach_msg_type_number_t>(final_size);
+        return true;
+      }
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+    case CPU_TYPE_X86_64: {
+        size_t state_size = cpu_type_ == CPU_TYPE_I386 ?
+            sizeof(i386_thread_state_t) : sizeof(x86_thread_state64_t);
+        size_t final_size =
+            std::min(static_cast<size_t>(*count), state_size);
+        memcpy(state, &task_context_->breakpad_uc_mcontext->__ss, final_size);
+        *count = static_cast<mach_msg_type_number_t>(final_size);
+        return true;
+      }
+#endif
+    }
+  }
+
+  thread_state_flavor_t flavor;
+  switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+    case CPU_TYPE_ARM:
+      flavor = ARM_THREAD_STATE;
+      break;
+#endif
+#ifdef HAS_ARM64_SUPPORT
+    case CPU_TYPE_ARM64:
+      flavor = ARM_THREAD_STATE64;
+      break;
+#endif
+#ifdef HAS_PPC_SUPPORT
+    case CPU_TYPE_POWERPC:
+      flavor = PPC_THREAD_STATE;
+      break;
+    case CPU_TYPE_POWERPC64:
+      flavor = PPC_THREAD_STATE64;
+      break;
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+      flavor = i386_THREAD_STATE;
+      break;
+    case CPU_TYPE_X86_64:
+      flavor = x86_THREAD_STATE64;
+      break;
+#endif
+    default:
+      return false;
+  }
+  return thread_get_state(target_thread, flavor,
+                          state, count) == KERN_SUCCESS;
+}
+
+bool MinidumpGenerator::WriteThreadStream(mach_port_t thread_id,
+                                          MDRawThread* thread) {
+  breakpad_thread_state_data_t state;
+  mach_msg_type_number_t state_count
+      = static_cast<mach_msg_type_number_t>(sizeof(state));
+
+  if (GetThreadState(thread_id, state, &state_count)) {
+    if (!WriteStack(state, &thread->stack))
+      return false;
+
+    memory_blocks_.push_back(thread->stack);
+
+    if (!WriteContext(state, &thread->thread_context))
+      return false;
+
+    thread->thread_id = thread_id;
+  } else {
+    return false;
+  }
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteThreadListStream(
+    MDRawDirectory* thread_list_stream) {
+  TypedMDRVA<MDRawThreadList> list(&writer_);
+  thread_act_port_array_t threads_for_task;
+  mach_msg_type_number_t thread_count;
+  int non_generator_thread_count;
+
+  if (task_threads(crashing_task_, &threads_for_task, &thread_count))
+    return false;
+
+  // Don't include the generator thread
+  if (handler_thread_ != MACH_PORT_NULL)
+    non_generator_thread_count = thread_count - 1;
+  else
+    non_generator_thread_count = thread_count;
+  if (!list.AllocateObjectAndArray(non_generator_thread_count,
+                                   sizeof(MDRawThread)))
+    return false;
+
+  thread_list_stream->stream_type = MD_THREAD_LIST_STREAM;
+  thread_list_stream->location = list.location();
+
+  list.get()->number_of_threads = non_generator_thread_count;
+
+  MDRawThread thread;
+  int thread_idx = 0;
+
+  for (unsigned int i = 0; i < thread_count; ++i) {
+    memset(&thread, 0, sizeof(MDRawThread));
+
+    if (threads_for_task[i] != handler_thread_) {
+      if (!WriteThreadStream(threads_for_task[i], &thread))
+        return false;
+
+      list.CopyIndexAfterObject(thread_idx++, &thread, sizeof(MDRawThread));
+    }
+  }
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteMemoryListStream(
+    MDRawDirectory* memory_list_stream) {
+  TypedMDRVA<MDRawMemoryList> list(&writer_);
+
+  // If the dump has an exception, include some memory around the
+  // instruction pointer.
+  const size_t kIPMemorySize = 256;  // bytes
+  bool have_ip_memory = false;
+  MDMemoryDescriptor ip_memory_d;
+  if (exception_thread_ && exception_type_) {
+    breakpad_thread_state_data_t state;
+    mach_msg_type_number_t stateCount
+      = static_cast<mach_msg_type_number_t>(sizeof(state));
+
+    if (GetThreadState(exception_thread_, state, &stateCount)) {
+      uint64_t ip = CurrentPCForStack(state);
+      // Bound it to the upper and lower bounds of the region
+      // it's contained within. If it's not in a known memory region,
+      // don't bother trying to write it.
+      mach_vm_address_t addr = static_cast<vm_address_t>(ip);
+      mach_vm_size_t size;
+      natural_t nesting_level = 0;
+      vm_region_submap_info_64 info;
+      mach_msg_type_number_t info_count = VM_REGION_SUBMAP_INFO_COUNT_64;
+      vm_region_recurse_info_t recurse_info;
+      recurse_info = reinterpret_cast<vm_region_recurse_info_t>(&info);
+
+      kern_return_t ret =
+        mach_vm_region_recurse(crashing_task_,
+                               &addr,
+                               &size,
+                               &nesting_level,
+                               recurse_info,
+                               &info_count);
+      if (ret == KERN_SUCCESS && ip >= addr && ip < (addr + size)) {
+        // Try to get 128 bytes before and after the IP, but
+        // settle for whatever's available.
+        ip_memory_d.start_of_memory_range =
+          std::max(uintptr_t(addr),
+                   uintptr_t(ip - (kIPMemorySize / 2)));
+        uintptr_t end_of_range = 
+          std::min(uintptr_t(ip + (kIPMemorySize / 2)),
+                   uintptr_t(addr + size));
+        uintptr_t range_diff = end_of_range -
+            static_cast<uintptr_t>(ip_memory_d.start_of_memory_range);
+        ip_memory_d.memory.data_size = static_cast<uint32_t>(range_diff);
+        have_ip_memory = true;
+        // This needs to get appended to the list even though
+        // the memory bytes aren't filled in yet so the entire
+        // list can be written first. The memory bytes will get filled
+        // in after the memory list is written.
+        memory_blocks_.push_back(ip_memory_d);
+      }
+    }
+  }
+
+  // Now fill in the memory list and write it.
+  size_t memory_count = memory_blocks_.size();
+  if (!list.AllocateObjectAndArray(memory_count,
+                                   sizeof(MDMemoryDescriptor)))
+    return false;
+
+  memory_list_stream->stream_type = MD_MEMORY_LIST_STREAM;
+  memory_list_stream->location = list.location();
+
+  list.get()->number_of_memory_ranges = static_cast<uint32_t>(memory_count);
+
+  unsigned int i;
+  for (i = 0; i < memory_count; ++i) {
+    list.CopyIndexAfterObject(i, &memory_blocks_[i],
+                              sizeof(MDMemoryDescriptor));
+  }
+
+  if (have_ip_memory) {
+    // Now read the memory around the instruction pointer.
+    UntypedMDRVA ip_memory(&writer_);
+    if (!ip_memory.Allocate(ip_memory_d.memory.data_size))
+      return false;
+
+    if (dynamic_images_) {
+      // Out-of-process.
+      vector<uint8_t> memory;
+      if (ReadTaskMemory(crashing_task_,
+                         ip_memory_d.start_of_memory_range,
+                         ip_memory_d.memory.data_size,
+                         memory) != KERN_SUCCESS) {
+        return false;
+      }
+
+      ip_memory.Copy(&memory[0], ip_memory_d.memory.data_size);
+    } else {
+      // In-process, just copy from local memory.
+      ip_memory.Copy(
+        reinterpret_cast<const void*>(ip_memory_d.start_of_memory_range),
+        ip_memory_d.memory.data_size);
+    }
+
+    ip_memory_d.memory = ip_memory.location();
+    // Write this again now that the data location is filled in.
+    list.CopyIndexAfterObject(i - 1, &ip_memory_d,
+                              sizeof(MDMemoryDescriptor));
+  }
+
+  return true;
+}
+
+bool
+MinidumpGenerator::WriteExceptionStream(MDRawDirectory* exception_stream) {
+  TypedMDRVA<MDRawExceptionStream> exception(&writer_);
+
+  if (!exception.Allocate())
+    return false;
+
+  exception_stream->stream_type = MD_EXCEPTION_STREAM;
+  exception_stream->location = exception.location();
+  MDRawExceptionStream* exception_ptr = exception.get();
+  exception_ptr->thread_id = exception_thread_;
+
+  // This naming is confusing, but it is the proper translation from
+  // mach naming to minidump naming.
+  exception_ptr->exception_record.exception_code = exception_type_;
+  exception_ptr->exception_record.exception_flags = exception_code_;
+
+  breakpad_thread_state_data_t state;
+  mach_msg_type_number_t state_count
+      = static_cast<mach_msg_type_number_t>(sizeof(state));
+
+  if (!GetThreadState(exception_thread_, state, &state_count))
+    return false;
+
+  if (!WriteContext(state, &exception_ptr->thread_context))
+    return false;
+
+  if (exception_type_ == EXC_BAD_ACCESS)
+    exception_ptr->exception_record.exception_address = exception_subcode_;
+  else
+    exception_ptr->exception_record.exception_address = CurrentPCForStack(state);
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteSystemInfoStream(
+    MDRawDirectory* system_info_stream) {
+  TypedMDRVA<MDRawSystemInfo> info(&writer_);
+
+  if (!info.Allocate())
+    return false;
+
+  system_info_stream->stream_type = MD_SYSTEM_INFO_STREAM;
+  system_info_stream->location = info.location();
+
+  // CPU Information
+  uint32_t number_of_processors;
+  size_t len = sizeof(number_of_processors);
+  sysctlbyname("hw.ncpu", &number_of_processors, &len, NULL, 0);
+  MDRawSystemInfo* info_ptr = info.get();
+
+  switch (cpu_type_) {
+#ifdef HAS_ARM_SUPPORT
+    case CPU_TYPE_ARM:
+      info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_ARM;
+      break;
+#endif
+#ifdef HAS_ARM64_SUPPORT
+    case CPU_TYPE_ARM64:
+      info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_ARM64_OLD;
+      break;
+#endif
+#ifdef HAS_PPC_SUPPORT
+    case CPU_TYPE_POWERPC:
+    case CPU_TYPE_POWERPC64:
+      info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_PPC;
+      break;
+#endif
+#ifdef HAS_X86_SUPPORT
+    case CPU_TYPE_I386:
+    case CPU_TYPE_X86_64:
+      if (cpu_type_ == CPU_TYPE_I386)
+        info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_X86;
+      else
+        info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_AMD64;
+#ifdef __i386__
+      // ebx is used for PIC code, so we need
+      // to preserve it.
+#define cpuid(op,eax,ebx,ecx,edx)      \
+  asm ("pushl %%ebx   \n\t"            \
+       "cpuid         \n\t"            \
+       "movl %%ebx,%1 \n\t"            \
+       "popl %%ebx"                    \
+       : "=a" (eax),                   \
+         "=g" (ebx),                   \
+         "=c" (ecx),                   \
+         "=d" (edx)                    \
+       : "0" (op))
+#elif defined(__x86_64__)
+
+#define cpuid(op,eax,ebx,ecx,edx)      \
+  asm ("cpuid         \n\t"            \
+       : "=a" (eax),                   \
+         "=b" (ebx),                   \
+         "=c" (ecx),                   \
+         "=d" (edx)                    \
+       : "0" (op))
+#endif
+
+#if defined(__i386__) || defined(__x86_64__)
+      int unused, unused2;
+      // get vendor id
+      cpuid(0, unused, info_ptr->cpu.x86_cpu_info.vendor_id[0],
+            info_ptr->cpu.x86_cpu_info.vendor_id[2],
+            info_ptr->cpu.x86_cpu_info.vendor_id[1]);
+      // get version and feature info
+      cpuid(1, info_ptr->cpu.x86_cpu_info.version_information, unused, unused2,
+            info_ptr->cpu.x86_cpu_info.feature_information);
+
+      // family
+      info_ptr->processor_level =
+        (info_ptr->cpu.x86_cpu_info.version_information & 0xF00) >> 8;
+      // 0xMMSS (Model, Stepping)
+      info_ptr->processor_revision = static_cast<uint16_t>(
+          (info_ptr->cpu.x86_cpu_info.version_information & 0xF) |
+          ((info_ptr->cpu.x86_cpu_info.version_information & 0xF0) << 4));
+
+      // decode extended model info
+      if (info_ptr->processor_level == 0xF ||
+          info_ptr->processor_level == 0x6) {
+        info_ptr->processor_revision |=
+          ((info_ptr->cpu.x86_cpu_info.version_information & 0xF0000) >> 4);
+      }
+
+      // decode extended family info
+      if (info_ptr->processor_level == 0xF) {
+        info_ptr->processor_level +=
+          ((info_ptr->cpu.x86_cpu_info.version_information & 0xFF00000) >> 20);
+      }
+
+#endif  // __i386__ || __x86_64_
+      break;
+#endif  // HAS_X86_SUPPORT
+    default:
+      info_ptr->processor_architecture = MD_CPU_ARCHITECTURE_UNKNOWN;
+      break;
+  }
+
+  info_ptr->number_of_processors = static_cast<uint8_t>(number_of_processors);
+#if TARGET_OS_IPHONE
+  info_ptr->platform_id = MD_OS_IOS;
+#else
+  info_ptr->platform_id = MD_OS_MAC_OS_X;
+#endif  // TARGET_OS_IPHONE
+
+  MDLocationDescriptor build_string_loc;
+
+  if (!writer_.WriteString(build_string_, 0,
+                           &build_string_loc))
+    return false;
+
+  info_ptr->csd_version_rva = build_string_loc.rva;
+  info_ptr->major_version = os_major_version_;
+  info_ptr->minor_version = os_minor_version_;
+  info_ptr->build_number = os_build_number_;
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteModuleStream(unsigned int index,
+                                          MDRawModule* module) {
+  if (dynamic_images_) {
+    // we're in a different process than the crashed process
+    DynamicImage* image = dynamic_images_->GetImage(index);
+
+    if (!image)
+      return false;
+
+    memset(module, 0, sizeof(MDRawModule));
+
+    MDLocationDescriptor string_location;
+
+    string name = image->GetFilePath();
+    if (!writer_.WriteString(name.c_str(), 0, &string_location))
+      return false;
+
+    module->base_of_image = image->GetVMAddr() + image->GetVMAddrSlide();
+    module->size_of_image = static_cast<uint32_t>(image->GetVMSize());
+    module->module_name_rva = string_location.rva;
+
+    // We'll skip the executable module, because they don't have
+    // LC_ID_DYLIB load commands, and the crash processing server gets
+    // version information from the Plist file, anyway.
+    if (index != static_cast<uint32_t>(FindExecutableModule())) {
+      module->version_info.signature = MD_VSFIXEDFILEINFO_SIGNATURE;
+      module->version_info.struct_version |= MD_VSFIXEDFILEINFO_VERSION;
+      // Convert MAC dylib version format, which is a 32 bit number, to the
+      // format used by minidump.  The mac format is <16 bits>.<8 bits>.<8 bits>
+      // so it fits nicely into the windows version with some massaging
+      // The mapping is:
+      //    1) upper 16 bits of MAC version go to lower 16 bits of product HI
+      //    2) Next most significant 8 bits go to upper 16 bits of product LO
+      //    3) Least significant 8 bits go to lower 16 bits of product LO
+      uint32_t modVersion = image->GetVersion();
+      module->version_info.file_version_hi = 0;
+      module->version_info.file_version_hi = modVersion >> 16;
+      module->version_info.file_version_lo |= (modVersion & 0xff00)  << 8;
+      module->version_info.file_version_lo |= (modVersion & 0xff);
+    }
+
+    if (!WriteCVRecord(module, image->GetCPUType(), name.c_str(), false)) {
+      return false;
+    }
+  } else {
+    // Getting module info in the crashed process
+    const breakpad_mach_header* header;
+    header = (breakpad_mach_header*)_dyld_get_image_header(index);
+    if (!header)
+      return false;
+
+#ifdef __LP64__
+    assert(header->magic == MH_MAGIC_64);
+
+    if(header->magic != MH_MAGIC_64)
+      return false;
+#else
+    assert(header->magic == MH_MAGIC);
+
+    if(header->magic != MH_MAGIC)
+      return false;
+#endif
+
+    int cpu_type = header->cputype;
+    unsigned long slide = _dyld_get_image_vmaddr_slide(index);
+    const char* name = _dyld_get_image_name(index);
+    const struct load_command* cmd =
+        reinterpret_cast<const struct load_command*>(header + 1);
+
+    memset(module, 0, sizeof(MDRawModule));
+
+    for (unsigned int i = 0; cmd && (i < header->ncmds); i++) {
+      if (cmd->cmd == LC_SEGMENT_ARCH) {
+
+        const breakpad_mach_segment_command* seg =
+            reinterpret_cast<const breakpad_mach_segment_command*>(cmd);
+
+        if (!strcmp(seg->segname, "__TEXT")) {
+          MDLocationDescriptor string_location;
+
+          if (!writer_.WriteString(name, 0, &string_location))
+            return false;
+
+          module->base_of_image = seg->vmaddr + slide;
+          module->size_of_image = static_cast<uint32_t>(seg->vmsize);
+          module->module_name_rva = string_location.rva;
+
+          bool in_memory = false;
+#if TARGET_OS_IPHONE
+          in_memory = true;
+#endif
+          if (!WriteCVRecord(module, cpu_type, name, in_memory))
+            return false;
+
+          return true;
+        }
+      }
+
+      cmd = reinterpret_cast<struct load_command*>((char*)cmd + cmd->cmdsize);
+    }
+  }
+
+  return true;
+}
+
+int MinidumpGenerator::FindExecutableModule() {
+  if (dynamic_images_) {
+    int index = dynamic_images_->GetExecutableImageIndex();
+
+    if (index >= 0) {
+      return index;
+    }
+  } else {
+    int image_count = _dyld_image_count();
+    const struct mach_header* header;
+
+    for (int index = 0; index < image_count; ++index) {
+      header = _dyld_get_image_header(index);
+
+      if (header->filetype == MH_EXECUTE)
+        return index;
+    }
+  }
+
+  // failed - just use the first image
+  return 0;
+}
+
+bool MinidumpGenerator::WriteCVRecord(MDRawModule* module, int cpu_type,
+                                      const char* module_path, bool in_memory) {
+  TypedMDRVA<MDCVInfoPDB70> cv(&writer_);
+
+  // Only return the last path component of the full module path
+  const char* module_name = strrchr(module_path, '/');
+
+  // Increment past the slash
+  if (module_name)
+    ++module_name;
+  else
+    module_name = "<Unknown>";
+
+  size_t module_name_length = strlen(module_name);
+
+  if (!cv.AllocateObjectAndArray(module_name_length + 1, sizeof(uint8_t)))
+    return false;
+
+  if (!cv.CopyIndexAfterObject(0, module_name, module_name_length))
+    return false;
+
+  module->cv_record = cv.location();
+  MDCVInfoPDB70* cv_ptr = cv.get();
+  cv_ptr->cv_signature = MD_CVINFOPDB70_SIGNATURE;
+  cv_ptr->age = 0;
+
+  // Get the module identifier
+  unsigned char identifier[16];
+  bool result = false;
+  if (in_memory) {
+    MacFileUtilities::MachoID macho(module_path,
+        reinterpret_cast<void*>(module->base_of_image),
+        static_cast<size_t>(module->size_of_image));
+    result = macho.UUIDCommand(cpu_type, CPU_SUBTYPE_MULTIPLE, identifier);
+    if (!result)
+      result = macho.MD5(cpu_type, CPU_SUBTYPE_MULTIPLE, identifier);
+  }
+
+  if (!result) {
+     FileID file_id(module_path);
+     result = file_id.MachoIdentifier(cpu_type, CPU_SUBTYPE_MULTIPLE,
+                                      identifier);
+  }
+
+  if (result) {
+    cv_ptr->signature.data1 =
+        static_cast<uint32_t>(identifier[0]) << 24 |
+        static_cast<uint32_t>(identifier[1]) << 16 |
+        static_cast<uint32_t>(identifier[2]) << 8 |
+        static_cast<uint32_t>(identifier[3]);
+    cv_ptr->signature.data2 =
+        static_cast<uint16_t>(identifier[4] << 8) | identifier[5];
+    cv_ptr->signature.data3 =
+        static_cast<uint16_t>(identifier[6] << 8) | identifier[7];
+    cv_ptr->signature.data4[0] = identifier[8];
+    cv_ptr->signature.data4[1] = identifier[9];
+    cv_ptr->signature.data4[2] = identifier[10];
+    cv_ptr->signature.data4[3] = identifier[11];
+    cv_ptr->signature.data4[4] = identifier[12];
+    cv_ptr->signature.data4[5] = identifier[13];
+    cv_ptr->signature.data4[6] = identifier[14];
+    cv_ptr->signature.data4[7] = identifier[15];
+  }
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteModuleListStream(
+    MDRawDirectory* module_list_stream) {
+  TypedMDRVA<MDRawModuleList> list(&writer_);
+
+  uint32_t image_count = dynamic_images_ ?
+      dynamic_images_->GetImageCount() :
+      _dyld_image_count();
+
+  if (!list.AllocateObjectAndArray(image_count, MD_MODULE_SIZE))
+    return false;
+
+  module_list_stream->stream_type = MD_MODULE_LIST_STREAM;
+  module_list_stream->location = list.location();
+  list.get()->number_of_modules = static_cast<uint32_t>(image_count);
+
+  // Write out the executable module as the first one
+  MDRawModule module;
+  uint32_t executableIndex = FindExecutableModule();
+
+  if (!WriteModuleStream(static_cast<unsigned>(executableIndex), &module)) {
+    return false;
+  }
+
+  list.CopyIndexAfterObject(0, &module, MD_MODULE_SIZE);
+  int destinationIndex = 1;  // Write all other modules after this one
+
+  for (uint32_t i = 0; i < image_count; ++i) {
+    if (i != executableIndex) {
+      if (!WriteModuleStream(static_cast<unsigned>(i), &module)) {
+        return false;
+      }
+
+      list.CopyIndexAfterObject(destinationIndex++, &module, MD_MODULE_SIZE);
+    }
+  }
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteMiscInfoStream(MDRawDirectory* misc_info_stream) {
+  TypedMDRVA<MDRawMiscInfo> info(&writer_);
+
+  if (!info.Allocate())
+    return false;
+
+  misc_info_stream->stream_type = MD_MISC_INFO_STREAM;
+  misc_info_stream->location = info.location();
+
+  MDRawMiscInfo* info_ptr = info.get();
+  info_ptr->size_of_info = static_cast<uint32_t>(sizeof(MDRawMiscInfo));
+  info_ptr->flags1 = MD_MISCINFO_FLAGS1_PROCESS_ID |
+    MD_MISCINFO_FLAGS1_PROCESS_TIMES |
+    MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO;
+
+  // Process ID
+  info_ptr->process_id = getpid();
+
+  // Times
+  struct rusage usage;
+  if (getrusage(RUSAGE_SELF, &usage) != -1) {
+    // Omit the fractional time since the MDRawMiscInfo only wants seconds
+    info_ptr->process_user_time =
+        static_cast<uint32_t>(usage.ru_utime.tv_sec);
+    info_ptr->process_kernel_time =
+        static_cast<uint32_t>(usage.ru_stime.tv_sec);
+  }
+  int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID,
+                 static_cast<int>(info_ptr->process_id) };
+  uint mibsize = static_cast<uint>(sizeof(mib) / sizeof(mib[0]));
+  struct kinfo_proc proc;
+  size_t size = sizeof(proc);
+  if (sysctl(mib, mibsize, &proc, &size, NULL, 0) == 0) {
+    info_ptr->process_create_time =
+        static_cast<uint32_t>(proc.kp_proc.p_starttime.tv_sec);
+  }
+
+  // Speed
+  uint64_t speed;
+  const uint64_t kOneMillion = 1000 * 1000;
+  size = sizeof(speed);
+  sysctlbyname("hw.cpufrequency_max", &speed, &size, NULL, 0);
+  info_ptr->processor_max_mhz = static_cast<uint32_t>(speed / kOneMillion);
+  info_ptr->processor_mhz_limit = static_cast<uint32_t>(speed / kOneMillion);
+  size = sizeof(speed);
+  sysctlbyname("hw.cpufrequency", &speed, &size, NULL, 0);
+  info_ptr->processor_current_mhz = static_cast<uint32_t>(speed / kOneMillion);
+
+  return true;
+}
+
+bool MinidumpGenerator::WriteBreakpadInfoStream(
+    MDRawDirectory* breakpad_info_stream) {
+  TypedMDRVA<MDRawBreakpadInfo> info(&writer_);
+
+  if (!info.Allocate())
+    return false;
+
+  breakpad_info_stream->stream_type = MD_BREAKPAD_INFO_STREAM;
+  breakpad_info_stream->location = info.location();
+  MDRawBreakpadInfo* info_ptr = info.get();
+
+  if (exception_thread_ && exception_type_) {
+    info_ptr->validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID |
+                         MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID;
+    info_ptr->dump_thread_id = handler_thread_;
+    info_ptr->requesting_thread_id = exception_thread_;
+  } else {
+    info_ptr->validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID;
+    info_ptr->dump_thread_id = handler_thread_;
+    info_ptr->requesting_thread_id = 0;
+  }
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/mac/handler/minidump_generator.h b/src/client/mac/handler/minidump_generator.h
new file mode 100644
index 0000000..e3a271b
--- /dev/null
+++ b/src/client/mac/handler/minidump_generator.h
@@ -0,0 +1,253 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_generator.h:  Create a minidump of the current MacOS process.
+
+#ifndef CLIENT_MAC_GENERATOR_MINIDUMP_GENERATOR_H__
+#define CLIENT_MAC_GENERATOR_MINIDUMP_GENERATOR_H__
+
+#include <mach/mach.h>
+#include <TargetConditionals.h>
+
+#include <string>
+
+#include "client/mac/handler/ucontext_compat.h"
+#include "client/minidump_file_writer.h"
+#include "common/memory_allocator.h"
+#include "common/mac/macho_utilities.h"
+#include "google_breakpad/common/minidump_format.h"
+
+#include "dynamic_images.h"
+#include "mach_vm_compat.h"
+
+#if !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7)
+  #define HAS_PPC_SUPPORT
+#endif
+#if defined(__arm__)
+#define HAS_ARM_SUPPORT
+#elif defined(__aarch64__)
+#define HAS_ARM64_SUPPORT
+#elif defined(__i386__) || defined(__x86_64__)
+  #define HAS_X86_SUPPORT
+#endif
+
+namespace google_breakpad {
+
+using std::string;
+
+// Use the REGISTER_FROM_THREADSTATE to access a register name from the
+// breakpad_thread_state_t structure.
+#if __DARWIN_OPAQUE_ARM_THREAD_STATE64
+#define ARRAY_REGISTER_FROM_THREADSTATE(a, b, i) ((a)->__##b[i])
+#define GET_REGISTER_FROM_THREADSTATE_fp(a)                                    \
+  (reinterpret_cast<uintptr_t>((a)->__opaque_fp))
+#define GET_REGISTER_FROM_THREADSTATE_lr(a)                                    \
+  (reinterpret_cast<uintptr_t>((a)->__opaque_lr))
+#define GET_REGISTER_FROM_THREADSTATE_sp(a)                                    \
+  (reinterpret_cast<uintptr_t>((a)->__opaque_sp))
+#define GET_REGISTER_FROM_THREADSTATE_pc(a)                                    \
+  (reinterpret_cast<uintptr_t>((a)->__opaque_pc))
+#define GET_REGISTER_FROM_THREADSTATE_cpsr(a) ((a)->__cpsr)
+#define GET_REGISTER_FROM_THREADSTATE_flags(a) ((a)->__opaque_flags)
+#define REGISTER_FROM_THREADSTATE(a, b) (GET_REGISTER_FROM_THREADSTATE_##b(a))
+#elif __DARWIN_UNIX03 || TARGET_CPU_X86_64 || TARGET_CPU_PPC64 || TARGET_CPU_ARM
+// In The 10.5 SDK Headers Apple prepended __ to the variable names in the
+// i386_thread_state_t structure.  There's no good way to tell what version of
+// the SDK we're compiling against so we just toggle on the same preprocessor
+// symbol Apple's headers use.
+#define REGISTER_FROM_THREADSTATE(a, b) ((a)->__ ## b)
+#define ARRAY_REGISTER_FROM_THREADSTATE(a, b, i)                               \
+  REGISTER_FROM_THREADSTATE(a, b[i])
+#else
+#define REGISTER_FROM_THREADSTATE(a, b) (a->b)
+#define ARRAY_REGISTER_FROM_THREADSTATE(a, b, i)                               \
+  REGISTER_FROM_THREADSTATE(a, b[i])
+#endif
+
+// Creates a minidump file of the current process.  If there is exception data,
+// use SetExceptionInformation() to add this to the minidump.  The minidump
+// file is generated by the Write() function.
+// Usage:
+// MinidumpGenerator minidump();
+// minidump.Write("/tmp/minidump");
+//
+class MinidumpGenerator {
+ public:
+  MinidumpGenerator();
+  MinidumpGenerator(mach_port_t crashing_task, mach_port_t handler_thread);
+
+  virtual ~MinidumpGenerator();
+
+  // Return <dir>/<unique_name>.dmp
+  // Sets |unique_name| (if requested) to the unique name for the minidump
+  static string UniqueNameInDirectory(const string& dir, string* unique_name);
+
+  // Write out the minidump into |path|
+  // All of the components of |path| must exist and be writable
+  // Return true if successful, false otherwise
+  bool Write(const char* path);
+
+  // Specify some exception information, if applicable
+  void SetExceptionInformation(int type, int code, int subcode,
+                               mach_port_t thread_name) {
+    exception_type_ = type;
+    exception_code_ = code;
+    exception_subcode_ = subcode;
+    exception_thread_ = thread_name;
+  }
+
+  // Specify the task context. If |task_context| is not NULL, it will be used
+  // to retrieve the context of the current thread, instead of using
+  // |thread_get_state|.
+  void SetTaskContext(breakpad_ucontext_t* task_context);
+
+  // Gather system information.  This should be call at least once before using
+  // the MinidumpGenerator class.
+  static void GatherSystemInformation();
+
+ protected:
+  // Overridable Stream writers
+  virtual bool WriteExceptionStream(MDRawDirectory* exception_stream);
+
+  // Overridable Helper
+  virtual bool WriteThreadStream(mach_port_t thread_id, MDRawThread* thread);
+
+ private:
+  typedef bool (MinidumpGenerator::*WriteStreamFN)(MDRawDirectory*);
+
+  // Stream writers
+  bool WriteThreadListStream(MDRawDirectory* thread_list_stream);
+  bool WriteMemoryListStream(MDRawDirectory* memory_list_stream);
+  bool WriteSystemInfoStream(MDRawDirectory* system_info_stream);
+  bool WriteModuleListStream(MDRawDirectory* module_list_stream);
+  bool WriteMiscInfoStream(MDRawDirectory* misc_info_stream);
+  bool WriteBreakpadInfoStream(MDRawDirectory* breakpad_info_stream);
+
+  // Helpers
+  uint64_t CurrentPCForStack(breakpad_thread_state_data_t state);
+  bool GetThreadState(thread_act_t target_thread, thread_state_t state,
+                      mach_msg_type_number_t* count);
+  bool WriteStackFromStartAddress(mach_vm_address_t start_addr,
+                                  MDMemoryDescriptor* stack_location);
+  bool WriteStack(breakpad_thread_state_data_t state,
+                  MDMemoryDescriptor* stack_location);
+  bool WriteContext(breakpad_thread_state_data_t state,
+                    MDLocationDescriptor* register_location);
+  bool WriteCVRecord(MDRawModule* module, int cpu_type,
+                     const char* module_path, bool in_memory);
+  bool WriteModuleStream(unsigned int index, MDRawModule* module);
+  size_t CalculateStackSize(mach_vm_address_t start_addr);
+  int  FindExecutableModule();
+
+  // Per-CPU implementations of these methods
+#ifdef HAS_ARM_SUPPORT
+  bool WriteStackARM(breakpad_thread_state_data_t state,
+                     MDMemoryDescriptor* stack_location);
+  bool WriteContextARM(breakpad_thread_state_data_t state,
+                       MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackARM(breakpad_thread_state_data_t state);
+#endif
+#ifdef HAS_ARM64_SUPPORT
+  bool WriteStackARM64(breakpad_thread_state_data_t state,
+                       MDMemoryDescriptor* stack_location);
+  bool WriteContextARM64(breakpad_thread_state_data_t state,
+                         MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackARM64(breakpad_thread_state_data_t state);
+#endif
+#ifdef HAS_PPC_SUPPORT
+  bool WriteStackPPC(breakpad_thread_state_data_t state,
+                     MDMemoryDescriptor* stack_location);
+  bool WriteContextPPC(breakpad_thread_state_data_t state,
+                       MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackPPC(breakpad_thread_state_data_t state);
+  bool WriteStackPPC64(breakpad_thread_state_data_t state,
+                       MDMemoryDescriptor* stack_location);
+  bool WriteContextPPC64(breakpad_thread_state_data_t state,
+                       MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackPPC64(breakpad_thread_state_data_t state);
+#endif
+#ifdef HAS_X86_SUPPORT
+  bool WriteStackX86(breakpad_thread_state_data_t state,
+                       MDMemoryDescriptor* stack_location);
+  bool WriteContextX86(breakpad_thread_state_data_t state,
+                       MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackX86(breakpad_thread_state_data_t state);
+  bool WriteStackX86_64(breakpad_thread_state_data_t state,
+                        MDMemoryDescriptor* stack_location);
+  bool WriteContextX86_64(breakpad_thread_state_data_t state,
+                          MDLocationDescriptor* register_location);
+  uint64_t CurrentPCForStackX86_64(breakpad_thread_state_data_t state);
+#endif
+
+  // disallow copy ctor and operator=
+  explicit MinidumpGenerator(const MinidumpGenerator&);
+  void operator=(const MinidumpGenerator&);
+
+ protected:
+  // Use this writer to put the data to disk
+  MinidumpFileWriter writer_;
+
+ private:
+  // Exception information
+  int exception_type_;
+  int exception_code_;
+  int exception_subcode_;
+  mach_port_t exception_thread_;
+  mach_port_t crashing_task_;
+  mach_port_t handler_thread_;
+
+  // CPU type of the task being dumped.
+  cpu_type_t cpu_type_;
+
+  // System information
+  static char build_string_[16];
+  static int os_major_version_;
+  static int os_minor_version_;
+  static int os_build_number_;
+
+  // Context of the task to dump.
+  breakpad_ucontext_t* task_context_;
+
+  // Information about dynamically loaded code
+  DynamicImages* dynamic_images_;
+
+  // PageAllocator makes it possible to allocate memory
+  // directly from the system, even while handling an exception.
+  mutable PageAllocator allocator_;
+
+ protected:
+  // Blocks of memory written to the dump. These are all currently
+  // written while writing the thread list stream, but saved here
+  // so a memory list stream can be written afterwards.
+  wasteful_vector<MDMemoryDescriptor> memory_blocks_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_MAC_GENERATOR_MINIDUMP_GENERATOR_H__
diff --git a/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj b/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1924ac4
--- /dev/null
+++ b/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj
@@ -0,0 +1,843 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		8BFC813F11FF9A58002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814411FF9A9C002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814511FF9A9D002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814811FF9B13002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814911FF9B13002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814A11FF9B13002CB4DC /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */; };
+		8BFC814B11FF9B3F002CB4DC /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9721FA10E8B0E2300D7E813 /* SenTestingKit.framework */; };
+		8BFC814C11FF9B3F002CB4DC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9721F6B0E8B0D7000D7E813 /* Cocoa.framework */; };
+		8BFC81A211FF9C2E002CB4DC /* CPlusTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC819211FF9C23002CB4DC /* CPlusTest.framework */; };
+		8BFC81A311FF9C2F002CB4DC /* CPlusTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BFC819211FF9C23002CB4DC /* CPlusTest.framework */; };
+		8BFC81AD11FF9C8A002CB4DC /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */; };
+		8BFC81AE11FF9C8C002CB4DC /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */; };
+		8BFC81AF11FF9C8C002CB4DC /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */; };
+		8BFC81B011FF9C8D002CB4DC /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */; };
+		9B35FF5A0B267D5F008DE8C7 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF560B267D5F008DE8C7 /* convert_UTF.cc */; };
+		9B35FF5B0B267D5F008DE8C7 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF580B267D5F008DE8C7 /* string_conversion.cc */; };
+		9B37CEEC0AF98ECD00FA4BD4 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B37CEEB0AF98ECD00FA4BD4 /* CoreFoundation.framework */; };
+		9B7CA7700B12873A00CD3A1D /* minidump_file_writer-inl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BE3C01E0B0CE329009892DF /* minidump_file_writer-inl.h */; };
+		9B7CA8540B12989000CD3A1D /* minidump_file_writer_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B7CA8530B12989000CD3A1D /* minidump_file_writer_unittest.cc */; };
+		9B7CA8550B1298A100CD3A1D /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C230B01344C0055103E /* minidump_file_writer.cc */; };
+		9BC1D2940B336F2300F2A2B4 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF560B267D5F008DE8C7 /* convert_UTF.cc */; };
+		9BC1D2950B336F2500F2A2B4 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF580B267D5F008DE8C7 /* string_conversion.cc */; };
+		9BD82AC10B0029DF0055103E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B37CEEB0AF98ECD00FA4BD4 /* CoreFoundation.framework */; };
+		9BD82BFF0B01333D0055103E /* exception_handler_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82BFD0B01333D0055103E /* exception_handler_test.cc */; };
+		9BD82C020B01333D0055103E /* minidump_generator_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82BFE0B01333D0055103E /* minidump_generator_test.cc */; };
+		9BD82C0D0B0133520055103E /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C090B0133520055103E /* exception_handler.cc */; };
+		9BD82C0E0B0133520055103E /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C0B0B0133520055103E /* minidump_generator.cc */; };
+		9BD82C0F0B0133520055103E /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C090B0133520055103E /* exception_handler.cc */; };
+		9BD82C100B0133520055103E /* exception_handler.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BD82C0A0B0133520055103E /* exception_handler.h */; };
+		9BD82C110B0133520055103E /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C0B0B0133520055103E /* minidump_generator.cc */; };
+		9BD82C120B0133520055103E /* minidump_generator.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BD82C0C0B0133520055103E /* minidump_generator.h */; };
+		9BD82C250B01344C0055103E /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C230B01344C0055103E /* minidump_file_writer.cc */; };
+		9BD82C260B01344C0055103E /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C230B01344C0055103E /* minidump_file_writer.cc */; };
+		9BD82C270B01344C0055103E /* minidump_file_writer.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BD82C240B01344C0055103E /* minidump_file_writer.h */; };
+		9BD82C2D0B01345E0055103E /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C2B0B01345E0055103E /* string_utilities.cc */; };
+		9BD82C2E0B01345E0055103E /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BD82C2B0B01345E0055103E /* string_utilities.cc */; };
+		9BD82C2F0B01345E0055103E /* string_utilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BD82C2C0B01345E0055103E /* string_utilities.h */; };
+		D2F651000BEF947200920385 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FA0BEF947200920385 /* file_id.cc */; };
+		D2F651010BEF947200920385 /* file_id.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2F650FB0BEF947200920385 /* file_id.h */; };
+		D2F651020BEF947200920385 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FC0BEF947200920385 /* macho_id.cc */; };
+		D2F651030BEF947200920385 /* macho_id.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2F650FD0BEF947200920385 /* macho_id.h */; };
+		D2F651040BEF947200920385 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FE0BEF947200920385 /* macho_utilities.cc */; };
+		D2F651050BEF947200920385 /* macho_utilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2F650FF0BEF947200920385 /* macho_utilities.h */; };
+		D2F651090BEF949A00920385 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F651070BEF949A00920385 /* dynamic_images.cc */; };
+		D2F6510A0BEF949A00920385 /* dynamic_images.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2F651080BEF949A00920385 /* dynamic_images.h */; };
+		D2F6510E0BEF94EB00920385 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F6510C0BEF94EB00920385 /* macho_walker.cc */; };
+		D2F6510F0BEF94EB00920385 /* macho_walker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2F6510D0BEF94EB00920385 /* macho_walker.h */; };
+		D2F651110BEF951700920385 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF580B267D5F008DE8C7 /* string_conversion.cc */; };
+		D2F651130BEF951C00920385 /* string_conversion.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FF590B267D5F008DE8C7 /* string_conversion.h */; };
+		D2F651150BEF953000920385 /* convert_UTF.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FF560B267D5F008DE8C7 /* convert_UTF.cc */; };
+		D2F651160BEF953100920385 /* convert_UTF.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FF570B267D5F008DE8C7 /* convert_UTF.h */; };
+		D2F6511B0BEF970E00920385 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F651070BEF949A00920385 /* dynamic_images.cc */; };
+		D2F6511D0BEF973500920385 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FA0BEF947200920385 /* file_id.cc */; };
+		D2F6511E0BEF973600920385 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FC0BEF947200920385 /* macho_id.cc */; };
+		D2F6511F0BEF973900920385 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FE0BEF947200920385 /* macho_utilities.cc */; };
+		D2F651210BEF975400920385 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F6510C0BEF94EB00920385 /* macho_walker.cc */; };
+		F93A887D0E8B4C8C0026AF89 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F6510C0BEF94EB00920385 /* macho_walker.cc */; };
+		F93A887E0E8B4C8C0026AF89 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FC0BEF947200920385 /* macho_id.cc */; };
+		F93A887F0E8B4C8C0026AF89 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FE0BEF947200920385 /* macho_utilities.cc */; };
+		F93A88800E8B4C8C0026AF89 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F650FA0BEF947200920385 /* file_id.cc */; };
+		F93A88860E8B4C9A0026AF89 /* dwarftests.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9721F310E8B07E800D7E813 /* dwarftests.mm */; };
+		F93A88870E8B4C9A0026AF89 /* dump_syms.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9721F390E8B0D0D00D7E813 /* dump_syms.cc */; };
+		F93A88880E8B4C9A0026AF89 /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9721F760E8B0DC700D7E813 /* bytereader.cc */; };
+		F93A88890E8B4C9A0026AF89 /* dwarf2reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9721F770E8B0DC700D7E813 /* dwarf2reader.cc */; };
+		F93A888A0E8B4C9A0026AF89 /* functioninfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9721F780E8B0DC700D7E813 /* functioninfo.cc */; };
+		F93A888B0E8B4C9A0026AF89 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9721FA80E8B0E4800D7E813 /* md5.cc */; };
+		F9721F6C0E8B0D7000D7E813 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9721F6B0E8B0D7000D7E813 /* Cocoa.framework */; };
+		F9721FA20E8B0E2300D7E813 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9721FA10E8B0E2300D7E813 /* SenTestingKit.framework */; };
+		F982089C0DB3280D0017AECA /* breakpad_nlist_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F982089B0DB3280D0017AECA /* breakpad_nlist_test.cc */; };
+		F98208A30DB32CAE0017AECA /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */; };
+		F9AE5B390DBFDBDB00505983 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F651070BEF949A00920385 /* dynamic_images.cc */; };
+		F9AE5B3A0DBFDBDB00505983 /* DynamicImagesTests.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C5A4210DB82DD800209C76 /* DynamicImagesTests.cc */; };
+		F9B34E870DBC1E1600306484 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F651070BEF949A00920385 /* dynamic_images.cc */; };
+		F9C5A4220DB82DD800209C76 /* DynamicImagesTests.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C5A4210DB82DD800209C76 /* DynamicImagesTests.cc */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F690486A84900D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 8;
+			dstPath = /usr/share/man/man1/;
+			dstSubfolderSpec = 0;
+			files = (
+				9BD82C100B0133520055103E /* exception_handler.h in CopyFiles */,
+				9BD82C120B0133520055103E /* minidump_generator.h in CopyFiles */,
+				9BD82C270B01344C0055103E /* minidump_file_writer.h in CopyFiles */,
+				9BD82C2F0B01345E0055103E /* string_utilities.h in CopyFiles */,
+				9B7CA7700B12873A00CD3A1D /* minidump_file_writer-inl.h in CopyFiles */,
+				D2F651010BEF947200920385 /* file_id.h in CopyFiles */,
+				D2F651030BEF947200920385 /* macho_id.h in CopyFiles */,
+				D2F651050BEF947200920385 /* macho_utilities.h in CopyFiles */,
+				D2F6510A0BEF949A00920385 /* dynamic_images.h in CopyFiles */,
+				D2F6510F0BEF94EB00920385 /* macho_walker.h in CopyFiles */,
+				D2F651130BEF951C00920385 /* string_conversion.h in CopyFiles */,
+				D2F651160BEF953100920385 /* convert_UTF.h in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 1;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		8BFC812011FF99D5002CB4DC /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
+		8BFC812111FF99D5002CB4DC /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		8BFC812211FF99D5002CB4DC /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+		8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = usr/lib/libcrypto.dylib; sourceTree = SDKROOT; };
+		8BFC815411FF9B7F002CB4DC /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
+		8BFC819211FF9C23002CB4DC /* CPlusTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CPlusTest.framework; path = Library/Frameworks/CPlusTest.framework; sourceTree = DEVELOPER_DIR; };
+		8DD76F6C0486A84900D96B5E /* generator_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = generator_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		9B35FF560B267D5F008DE8C7 /* convert_UTF.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convert_UTF.cc; path = ../../../common/convert_UTF.cc; sourceTree = SOURCE_ROOT; };
+		9B35FF570B267D5F008DE8C7 /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = convert_UTF.h; path = ../../../common/convert_UTF.h; sourceTree = SOURCE_ROOT; };
+		9B35FF580B267D5F008DE8C7 /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = string_conversion.cc; path = ../../../common/string_conversion.cc; sourceTree = SOURCE_ROOT; };
+		9B35FF590B267D5F008DE8C7 /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = string_conversion.h; path = ../../../common/string_conversion.h; sourceTree = SOURCE_ROOT; };
+		9B37CEEB0AF98ECD00FA4BD4 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
+		9B7CA84E0B1297F200CD3A1D /* unit_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = unit_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		9B7CA8530B12989000CD3A1D /* minidump_file_writer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer_unittest.cc; path = ../../minidump_file_writer_unittest.cc; sourceTree = "<group>"; };
+		9BD82A9B0B00267E0055103E /* handler_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = handler_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		9BD82BFD0B01333D0055103E /* exception_handler_test.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = exception_handler_test.cc; sourceTree = SOURCE_ROOT; };
+		9BD82BFE0B01333D0055103E /* minidump_generator_test.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_generator_test.cc; sourceTree = SOURCE_ROOT; };
+		9BD82C090B0133520055103E /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = exception_handler.cc; sourceTree = SOURCE_ROOT; };
+		9BD82C0A0B0133520055103E /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = exception_handler.h; sourceTree = SOURCE_ROOT; };
+		9BD82C0B0B0133520055103E /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_generator.cc; sourceTree = SOURCE_ROOT; };
+		9BD82C0C0B0133520055103E /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minidump_generator.h; sourceTree = SOURCE_ROOT; };
+		9BD82C230B01344C0055103E /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer.cc; path = ../../minidump_file_writer.cc; sourceTree = SOURCE_ROOT; };
+		9BD82C240B01344C0055103E /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = minidump_file_writer.h; path = ../../minidump_file_writer.h; sourceTree = SOURCE_ROOT; };
+		9BD82C2B0B01345E0055103E /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = string_utilities.cc; path = ../../../common/mac/string_utilities.cc; sourceTree = SOURCE_ROOT; };
+		9BD82C2C0B01345E0055103E /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = string_utilities.h; path = ../../../common/mac/string_utilities.h; sourceTree = SOURCE_ROOT; };
+		9BE3C01E0B0CE329009892DF /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "minidump_file_writer-inl.h"; path = "../../minidump_file_writer-inl.h"; sourceTree = SOURCE_ROOT; };
+		D2F650FA0BEF947200920385 /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; };
+		D2F650FB0BEF947200920385 /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ../../../common/mac/file_id.h; sourceTree = SOURCE_ROOT; };
+		D2F650FC0BEF947200920385 /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ../../../common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; };
+		D2F650FD0BEF947200920385 /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ../../../common/mac/macho_id.h; sourceTree = SOURCE_ROOT; };
+		D2F650FE0BEF947200920385 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; };
+		D2F650FF0BEF947200920385 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; };
+		D2F651070BEF949A00920385 /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_images.cc; sourceTree = "<group>"; };
+		D2F651080BEF949A00920385 /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dynamic_images.h; sourceTree = "<group>"; };
+		D2F6510C0BEF94EB00920385 /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
+		D2F6510D0BEF94EB00920385 /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
+		F917C4F70E03265A00F86017 /* breakpad_exc_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = breakpad_exc_server.c; sourceTree = "<group>"; };
+		F917C4F80E03265A00F86017 /* breakpad_exc_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_exc_server.h; sourceTree = "<group>"; };
+		F93A88750E8B4C700026AF89 /* octestcases.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = octestcases.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+		F93A88760E8B4C700026AF89 /* obj-cTestCases-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "obj-cTestCases-Info.plist"; sourceTree = "<group>"; };
+		F9721F300E8B07E800D7E813 /* dwarftests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dwarftests.h; sourceTree = "<group>"; };
+		F9721F310E8B07E800D7E813 /* dwarftests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = dwarftests.mm; sourceTree = "<group>"; };
+		F9721F380E8B0CFC00D7E813 /* dump_syms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dump_syms.h; path = ../../../common/mac/dump_syms.h; sourceTree = SOURCE_ROOT; };
+		F9721F390E8B0D0D00D7E813 /* dump_syms.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = dump_syms.cc; path = ../../../common/mac/dump_syms.cc; sourceTree = SOURCE_ROOT; };
+		F9721F6B0E8B0D7000D7E813 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		F9721F760E8B0DC700D7E813 /* bytereader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bytereader.cc; path = ../../../common/dwarf/bytereader.cc; sourceTree = SOURCE_ROOT; };
+		F9721F770E8B0DC700D7E813 /* dwarf2reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2reader.cc; path = ../../../common/dwarf/dwarf2reader.cc; sourceTree = SOURCE_ROOT; };
+		F9721F780E8B0DC700D7E813 /* functioninfo.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = functioninfo.cc; path = ../../../common/dwarf/functioninfo.cc; sourceTree = SOURCE_ROOT; };
+		F9721FA10E8B0E2300D7E813 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+		F9721FA80E8B0E4800D7E813 /* md5.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.cc; path = ../../../common/md5.cc; sourceTree = SOURCE_ROOT; };
+		F982089A0DB3280D0017AECA /* breakpad_nlist_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_nlist_test.h; sourceTree = "<group>"; };
+		F982089B0DB3280D0017AECA /* breakpad_nlist_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_test.cc; sourceTree = "<group>"; };
+		F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_64.cc; sourceTree = "<group>"; };
+		F98208A20DB32CAE0017AECA /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_nlist_64.h; sourceTree = "<group>"; };
+		F9AE19B50DB040E300C98454 /* minidump_tests32-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "minidump_tests32-Info.plist"; sourceTree = "<group>"; };
+		F9AE19C30DB04A9500C98454 /* minidump_tests64.cptest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = minidump_tests64.cptest; sourceTree = BUILT_PRODUCTS_DIR; };
+		F9AE5B330DBFDBA300505983 /* minidump_tests32.cptest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = minidump_tests32.cptest; sourceTree = BUILT_PRODUCTS_DIR; };
+		F9AE5B340DBFDBA300505983 /* minidump_tests64-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "minidump_tests64-Info.plist"; sourceTree = "<group>"; };
+		F9C5A4200DB82DD800209C76 /* DynamicImagesTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicImagesTests.h; sourceTree = "<group>"; };
+		F9C5A4210DB82DD800209C76 /* DynamicImagesTests.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicImagesTests.cc; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F660486A84900D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9B37CEEC0AF98ECD00FA4BD4 /* CoreFoundation.framework in Frameworks */,
+				8BFC813F11FF9A58002CB4DC /* libcrypto.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9B7CA84C0B1297F200CD3A1D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8BFC814511FF9A9D002CB4DC /* libcrypto.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9BD82A990B00267E0055103E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9BD82AC10B0029DF0055103E /* CoreFoundation.framework in Frameworks */,
+				8BFC814411FF9A9C002CB4DC /* libcrypto.dylib in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93A88720E8B4C700026AF89 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8BFC814A11FF9B13002CB4DC /* libcrypto.dylib in Frameworks */,
+				8BFC814B11FF9B3F002CB4DC /* SenTestingKit.framework in Frameworks */,
+				8BFC814C11FF9B3F002CB4DC /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE19C00DB04A9500C98454 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8BFC814811FF9B13002CB4DC /* libcrypto.dylib in Frameworks */,
+				8BFC81A211FF9C2E002CB4DC /* CPlusTest.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE5B300DBFDBA300505983 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9721F6C0E8B0D7000D7E813 /* Cocoa.framework in Frameworks */,
+				F9721FA20E8B0E2300D7E813 /* SenTestingKit.framework in Frameworks */,
+				8BFC814911FF9B13002CB4DC /* libcrypto.dylib in Frameworks */,
+				8BFC81A311FF9C2F002CB4DC /* CPlusTest.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* MinidumpWriter */ = {
+			isa = PBXGroup;
+			children = (
+				8BFC812011FF99D5002CB4DC /* Breakpad.xcconfig */,
+				8BFC812111FF99D5002CB4DC /* BreakpadDebug.xcconfig */,
+				8BFC812211FF99D5002CB4DC /* BreakpadRelease.xcconfig */,
+				F9721FA80E8B0E4800D7E813 /* md5.cc */,
+				F9721F760E8B0DC700D7E813 /* bytereader.cc */,
+				F9721F770E8B0DC700D7E813 /* dwarf2reader.cc */,
+				F9721F780E8B0DC700D7E813 /* functioninfo.cc */,
+				F9721F390E8B0D0D00D7E813 /* dump_syms.cc */,
+				F9721F380E8B0CFC00D7E813 /* dump_syms.h */,
+				F917C4F70E03265A00F86017 /* breakpad_exc_server.c */,
+				F917C4F80E03265A00F86017 /* breakpad_exc_server.h */,
+				F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */,
+				F98208A20DB32CAE0017AECA /* breakpad_nlist_64.h */,
+				D2F6510C0BEF94EB00920385 /* macho_walker.cc */,
+				D2F6510D0BEF94EB00920385 /* macho_walker.h */,
+				D2F651070BEF949A00920385 /* dynamic_images.cc */,
+				D2F651080BEF949A00920385 /* dynamic_images.h */,
+				D2F650FA0BEF947200920385 /* file_id.cc */,
+				D2F650FB0BEF947200920385 /* file_id.h */,
+				D2F650FC0BEF947200920385 /* macho_id.cc */,
+				D2F650FD0BEF947200920385 /* macho_id.h */,
+				D2F650FE0BEF947200920385 /* macho_utilities.cc */,
+				D2F650FF0BEF947200920385 /* macho_utilities.h */,
+				F9C5A41F0DB82DB000209C76 /* testcases */,
+				9BD82C040B0133420055103E /* Breakpad */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				9B37CEEA0AF98EB600FA4BD4 /* Frameworks */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+				F9AE19B50DB040E300C98454 /* minidump_tests32-Info.plist */,
+				F9AE5B340DBFDBA300505983 /* minidump_tests64-Info.plist */,
+				F93A88760E8B4C700026AF89 /* obj-cTestCases-Info.plist */,
+			);
+			name = MinidumpWriter;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				9BD82BFD0B01333D0055103E /* exception_handler_test.cc */,
+				9BD82BFE0B01333D0055103E /* minidump_generator_test.cc */,
+				9B7CA8530B12989000CD3A1D /* minidump_file_writer_unittest.cc */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76F6C0486A84900D96B5E /* generator_test */,
+				9BD82A9B0B00267E0055103E /* handler_test */,
+				9B7CA84E0B1297F200CD3A1D /* unit_test */,
+				F9AE19C30DB04A9500C98454 /* minidump_tests64.cptest */,
+				F9AE5B330DBFDBA300505983 /* minidump_tests32.cptest */,
+				F93A88750E8B4C700026AF89 /* octestcases.octest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		9B37CEEA0AF98EB600FA4BD4 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				8BFC813E11FF9A58002CB4DC /* libcrypto.dylib */,
+				8BFC815411FF9B7F002CB4DC /* Carbon.framework */,
+				F9721FA10E8B0E2300D7E813 /* SenTestingKit.framework */,
+				F9721F6B0E8B0D7000D7E813 /* Cocoa.framework */,
+				9B37CEEB0AF98ECD00FA4BD4 /* CoreFoundation.framework */,
+				8BFC819211FF9C23002CB4DC /* CPlusTest.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		9BD82C040B0133420055103E /* Breakpad */ = {
+			isa = PBXGroup;
+			children = (
+				9B35FF560B267D5F008DE8C7 /* convert_UTF.cc */,
+				9B35FF570B267D5F008DE8C7 /* convert_UTF.h */,
+				9B35FF580B267D5F008DE8C7 /* string_conversion.cc */,
+				9B35FF590B267D5F008DE8C7 /* string_conversion.h */,
+				9BD82C090B0133520055103E /* exception_handler.cc */,
+				9BD82C0A0B0133520055103E /* exception_handler.h */,
+				9BD82C0B0B0133520055103E /* minidump_generator.cc */,
+				9BD82C0C0B0133520055103E /* minidump_generator.h */,
+				9BD82C230B01344C0055103E /* minidump_file_writer.cc */,
+				9BE3C01E0B0CE329009892DF /* minidump_file_writer-inl.h */,
+				9BD82C240B01344C0055103E /* minidump_file_writer.h */,
+				9BD82C2B0B01345E0055103E /* string_utilities.cc */,
+				9BD82C2C0B01345E0055103E /* string_utilities.h */,
+			);
+			name = Breakpad;
+			sourceTree = "<group>";
+		};
+		F9C5A41F0DB82DB000209C76 /* testcases */ = {
+			isa = PBXGroup;
+			children = (
+				F982089A0DB3280D0017AECA /* breakpad_nlist_test.h */,
+				F982089B0DB3280D0017AECA /* breakpad_nlist_test.cc */,
+				F9C5A4200DB82DD800209C76 /* DynamicImagesTests.h */,
+				F9C5A4210DB82DD800209C76 /* DynamicImagesTests.cc */,
+				F9721F300E8B07E800D7E813 /* dwarftests.h */,
+				F9721F310E8B07E800D7E813 /* dwarftests.mm */,
+			);
+			path = testcases;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F620486A84900D96B5E /* generator_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "generator_test" */;
+			buildPhases = (
+				8DD76F640486A84900D96B5E /* Sources */,
+				8DD76F660486A84900D96B5E /* Frameworks */,
+				8DD76F690486A84900D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = generator_test;
+			productInstallPath = "$(HOME)/bin";
+			productName = MinidumpWriter;
+			productReference = 8DD76F6C0486A84900D96B5E /* generator_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		9B7CA84D0B1297F200CD3A1D /* unit_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 9B7CA8500B12984300CD3A1D /* Build configuration list for PBXNativeTarget "unit_test" */;
+			buildPhases = (
+				9B7CA84B0B1297F200CD3A1D /* Sources */,
+				9B7CA84C0B1297F200CD3A1D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = unit_test;
+			productName = "filewriter unit test";
+			productReference = 9B7CA84E0B1297F200CD3A1D /* unit_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		9BD82A9A0B00267E0055103E /* handler_test */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 9BD82AA60B0026BF0055103E /* Build configuration list for PBXNativeTarget "handler_test" */;
+			buildPhases = (
+				9BD82A980B00267E0055103E /* Sources */,
+				9BD82A990B00267E0055103E /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = handler_test;
+			productName = ExceptionTester;
+			productReference = 9BD82A9B0B00267E0055103E /* handler_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		F93A88740E8B4C700026AF89 /* obj-c_TestCases */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F93A88790E8B4C700026AF89 /* Build configuration list for PBXNativeTarget "obj-c_TestCases" */;
+			buildPhases = (
+				F93A88700E8B4C700026AF89 /* Resources */,
+				F93A88710E8B4C700026AF89 /* Sources */,
+				F93A88720E8B4C700026AF89 /* Frameworks */,
+				F93A88730E8B4C700026AF89 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "obj-c_TestCases";
+			productName = octestcases;
+			productReference = F93A88750E8B4C700026AF89 /* octestcases.octest */;
+			productType = "com.apple.product-type.bundle";
+		};
+		F9AE19C20DB04A9500C98454 /* minidump_tests64 */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F9AE19C70DB04AA200C98454 /* Build configuration list for PBXNativeTarget "minidump_tests64" */;
+			buildPhases = (
+				F9AE19BE0DB04A9500C98454 /* Resources */,
+				F9AE19BF0DB04A9500C98454 /* Sources */,
+				F9AE19C00DB04A9500C98454 /* Frameworks */,
+				F9AE19C10DB04A9500C98454 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = minidump_tests64;
+			productName = minidump_tests;
+			productReference = F9AE19C30DB04A9500C98454 /* minidump_tests64.cptest */;
+			productType = "com.apple.product-type.bundle";
+		};
+		F9AE5B320DBFDBA300505983 /* minidump_tests32 */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F9AE5B380DBFDBA300505983 /* Build configuration list for PBXNativeTarget "minidump_tests32" */;
+			buildPhases = (
+				F9AE5B2E0DBFDBA300505983 /* Resources */,
+				F9AE5B2F0DBFDBA300505983 /* Sources */,
+				F9AE5B300DBFDBA300505983 /* Frameworks */,
+				F9AE5B310DBFDBA300505983 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = minidump_tests32;
+			productName = Untitled;
+			productReference = F9AE5B330DBFDBA300505983 /* minidump_tests32.cptest */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "minidump_test" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 08FB7794FE84155DC02AAC07 /* MinidumpWriter */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				8DD76F620486A84900D96B5E /* generator_test */,
+				9BD82A9A0B00267E0055103E /* handler_test */,
+				9B7CA84D0B1297F200CD3A1D /* unit_test */,
+				F9AE19C20DB04A9500C98454 /* minidump_tests64 */,
+				F9AE5B320DBFDBA300505983 /* minidump_tests32 */,
+				F93A88740E8B4C700026AF89 /* obj-c_TestCases */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		F93A88700E8B4C700026AF89 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE19BE0DB04A9500C98454 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE5B2E0DBFDBA300505983 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		F93A88730E8B4C700026AF89 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+		};
+		F9AE19C10DB04A9500C98454 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n# Run gcov on the framework getting tested\nif [ \"${CONFIGURATION}\" = 'Coverage' ];\nthen\n     FRAMEWORK_NAME=minidump_tests64\n     FRAMEWORK_OBJ_DIR=${OBJROOT}/${PROJECT_NAME}.build/${CONFIGURATION}/${FRAMEWORK_NAME}.build/Objects-normal/${NATIVE_ARCH_ACTUAL}\n     mkdir -p coverage\n     pushd coverage\n     echo find ${OBJROOT} -name *.gcda -exec gcov -o ${FRAMEWORK_OBJ_DIR} {} \\;\n     find ${OBJROOT} -name *.gcda -exec gcov -o ${FRAMEWORK_OBJ_DIR} {} \\;\n     popd\nfi ";
+		};
+		F9AE5B310DBFDBA300505983 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F640486A84900D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9BD82C020B01333D0055103E /* minidump_generator_test.cc in Sources */,
+				9BD82C0F0B0133520055103E /* exception_handler.cc in Sources */,
+				9BD82C110B0133520055103E /* minidump_generator.cc in Sources */,
+				9BD82C260B01344C0055103E /* minidump_file_writer.cc in Sources */,
+				9BD82C2E0B01345E0055103E /* string_utilities.cc in Sources */,
+				D2F651000BEF947200920385 /* file_id.cc in Sources */,
+				D2F651020BEF947200920385 /* macho_id.cc in Sources */,
+				D2F651040BEF947200920385 /* macho_utilities.cc in Sources */,
+				D2F651090BEF949A00920385 /* dynamic_images.cc in Sources */,
+				D2F6510E0BEF94EB00920385 /* macho_walker.cc in Sources */,
+				D2F651110BEF951700920385 /* string_conversion.cc in Sources */,
+				D2F651150BEF953000920385 /* convert_UTF.cc in Sources */,
+				8BFC81B011FF9C8D002CB4DC /* breakpad_nlist_64.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9B7CA84B0B1297F200CD3A1D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9B7CA8540B12989000CD3A1D /* minidump_file_writer_unittest.cc in Sources */,
+				9B7CA8550B1298A100CD3A1D /* minidump_file_writer.cc in Sources */,
+				9BC1D2940B336F2300F2A2B4 /* convert_UTF.cc in Sources */,
+				9BC1D2950B336F2500F2A2B4 /* string_conversion.cc in Sources */,
+				8BFC81AE11FF9C8C002CB4DC /* breakpad_nlist_64.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9BD82A980B00267E0055103E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9BD82BFF0B01333D0055103E /* exception_handler_test.cc in Sources */,
+				9BD82C0D0B0133520055103E /* exception_handler.cc in Sources */,
+				9BD82C0E0B0133520055103E /* minidump_generator.cc in Sources */,
+				9BD82C250B01344C0055103E /* minidump_file_writer.cc in Sources */,
+				9BD82C2D0B01345E0055103E /* string_utilities.cc in Sources */,
+				9B35FF5A0B267D5F008DE8C7 /* convert_UTF.cc in Sources */,
+				9B35FF5B0B267D5F008DE8C7 /* string_conversion.cc in Sources */,
+				D2F6511B0BEF970E00920385 /* dynamic_images.cc in Sources */,
+				D2F6511D0BEF973500920385 /* file_id.cc in Sources */,
+				D2F6511E0BEF973600920385 /* macho_id.cc in Sources */,
+				D2F6511F0BEF973900920385 /* macho_utilities.cc in Sources */,
+				D2F651210BEF975400920385 /* macho_walker.cc in Sources */,
+				8BFC81AF11FF9C8C002CB4DC /* breakpad_nlist_64.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F93A88710E8B4C700026AF89 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F93A88860E8B4C9A0026AF89 /* dwarftests.mm in Sources */,
+				F93A88870E8B4C9A0026AF89 /* dump_syms.cc in Sources */,
+				F93A88880E8B4C9A0026AF89 /* bytereader.cc in Sources */,
+				F93A88890E8B4C9A0026AF89 /* dwarf2reader.cc in Sources */,
+				F93A888A0E8B4C9A0026AF89 /* functioninfo.cc in Sources */,
+				F93A888B0E8B4C9A0026AF89 /* md5.cc in Sources */,
+				F93A887D0E8B4C8C0026AF89 /* macho_walker.cc in Sources */,
+				F93A887E0E8B4C8C0026AF89 /* macho_id.cc in Sources */,
+				F93A887F0E8B4C8C0026AF89 /* macho_utilities.cc in Sources */,
+				F93A88800E8B4C8C0026AF89 /* file_id.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE19BF0DB04A9500C98454 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9B34E870DBC1E1600306484 /* dynamic_images.cc in Sources */,
+				F982089C0DB3280D0017AECA /* breakpad_nlist_test.cc in Sources */,
+				F98208A30DB32CAE0017AECA /* breakpad_nlist_64.cc in Sources */,
+				F9C5A4220DB82DD800209C76 /* DynamicImagesTests.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F9AE5B2F0DBFDBA300505983 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F9AE5B390DBFDBDB00505983 /* dynamic_images.cc in Sources */,
+				F9AE5B3A0DBFDBDB00505983 /* DynamicImagesTests.cc in Sources */,
+				8BFC81AD11FF9C8A002CB4DC /* breakpad_nlist_64.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB923208733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+				);
+				PRODUCT_NAME = generator_test;
+				USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)";
+			};
+			name = Debug;
+		};
+		1DEB923308733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+				);
+				PRODUCT_NAME = generator_test;
+				USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)";
+			};
+			name = Release;
+		};
+		1DEB923608733DC60010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8BFC812111FF99D5002CB4DC /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		1DEB923708733DC60010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8BFC812211FF99D5002CB4DC /* BreakpadRelease.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		9B7CA8510B12984300CD3A1D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = unit_test;
+				USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)";
+			};
+			name = Debug;
+		};
+		9B7CA8520B12984300CD3A1D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = unit_test;
+				USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)";
+			};
+			name = Release;
+		};
+		9BD82AA70B0026BF0055103E /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = handler_test;
+				USER_HEADER_SEARCH_PATHS = "../../.. $(inherited)";
+			};
+			name = Debug;
+		};
+		9BD82AA80B0026BF0055103E /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = handler_test;
+				USER_HEADER_SEARCH_PATHS = "../../.. $(inherited)";
+			};
+			name = Release;
+		};
+		F93A88770E8B4C700026AF89 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "obj-cTestCases-Info.plist";
+				PRODUCT_NAME = octestcases;
+				USER_HEADER_SEARCH_PATHS = "../../../..//**";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Debug;
+		};
+		F93A88780E8B4C700026AF89 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "obj-cTestCases-Info.plist";
+				PRODUCT_NAME = octestcases;
+				USER_HEADER_SEARCH_PATHS = "../../../..//**";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Release;
+		};
+		F9AE19C40DB04A9500C98454 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "minidump_tests64-Info.plist";
+				PRODUCT_NAME = minidump_tests64;
+				USER_HEADER_SEARCH_PATHS = "../../../**";
+				WRAPPER_EXTENSION = cptest;
+			};
+			name = Debug;
+		};
+		F9AE19C50DB04A9500C98454 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "minidump_tests64-Info.plist";
+				PRODUCT_NAME = minidump_tests64;
+				USER_HEADER_SEARCH_PATHS = "../../../**";
+				WRAPPER_EXTENSION = cptest;
+			};
+			name = Release;
+		};
+		F9AE5B350DBFDBA300505983 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "minidump_tests32-Info.plist";
+				PRODUCT_NAME = minidump_tests32;
+				USER_HEADER_SEARCH_PATHS = "../../../**";
+				WRAPPER_EXTENSION = cptest;
+			};
+			name = Debug;
+		};
+		F9AE5B370DBFDBA300505983 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				INFOPLIST_FILE = "minidump_tests32-Info.plist";
+				PRODUCT_NAME = minidump_tests32;
+				USER_HEADER_SEARCH_PATHS = "../../../**";
+				WRAPPER_EXTENSION = cptest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "generator_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923208733DC60010E9CD /* Debug */,
+				1DEB923308733DC60010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "minidump_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB923608733DC60010E9CD /* Debug */,
+				1DEB923708733DC60010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		9B7CA8500B12984300CD3A1D /* Build configuration list for PBXNativeTarget "unit_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				9B7CA8510B12984300CD3A1D /* Debug */,
+				9B7CA8520B12984300CD3A1D /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		9BD82AA60B0026BF0055103E /* Build configuration list for PBXNativeTarget "handler_test" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				9BD82AA70B0026BF0055103E /* Debug */,
+				9BD82AA80B0026BF0055103E /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F93A88790E8B4C700026AF89 /* Build configuration list for PBXNativeTarget "obj-c_TestCases" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F93A88770E8B4C700026AF89 /* Debug */,
+				F93A88780E8B4C700026AF89 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F9AE19C70DB04AA200C98454 /* Build configuration list for PBXNativeTarget "minidump_tests64" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F9AE19C40DB04A9500C98454 /* Debug */,
+				F9AE19C50DB04A9500C98454 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		F9AE5B380DBFDBA300505983 /* Build configuration list for PBXNativeTarget "minidump_tests32" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F9AE5B350DBFDBA300505983 /* Debug */,
+				F9AE5B370DBFDBA300505983 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/src/client/mac/handler/minidump_tests32-Info.plist b/src/client/mac/handler/minidump_tests32-Info.plist
new file mode 100644
index 0000000..921ebf3
--- /dev/null
+++ b/src/client/mac/handler/minidump_tests32-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.google.breakpad.minidump_tests32</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+</dict>
+</plist>
diff --git a/src/client/mac/handler/minidump_tests64-Info.plist b/src/client/mac/handler/minidump_tests64-Info.plist
new file mode 100644
index 0000000..acfbd30
--- /dev/null
+++ b/src/client/mac/handler/minidump_tests64-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.google.breakpad.minidump_tests64</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CSResourcesFileMapped</key>
+	<string>yes</string>
+</dict>
+</plist>
diff --git a/src/client/mac/handler/obj-cTestCases-Info.plist b/src/client/mac/handler/obj-cTestCases-Info.plist
new file mode 100644
index 0000000..6501355
--- /dev/null
+++ b/src/client/mac/handler/obj-cTestCases-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+</dict>
+</plist>
diff --git a/src/client/mac/handler/protected_memory_allocator.cc b/src/client/mac/handler/protected_memory_allocator.cc
new file mode 100644
index 0000000..6142ad1
--- /dev/null
+++ b/src/client/mac/handler/protected_memory_allocator.cc
@@ -0,0 +1,92 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// ProtectedMemoryAllocator
+//
+// See the header file for documentation
+
+#include "protected_memory_allocator.h"
+#include <assert.h>
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ProtectedMemoryAllocator::ProtectedMemoryAllocator(vm_size_t pool_size) 
+  : pool_size_(pool_size),
+    next_alloc_offset_(0),
+    valid_(false) {
+  
+  kern_return_t result = vm_allocate(mach_task_self(),
+                                     &base_address_,
+                                     pool_size,
+                                     TRUE
+                                     );
+  
+  valid_ = (result == KERN_SUCCESS);
+  assert(valid_);
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ProtectedMemoryAllocator::~ProtectedMemoryAllocator() {
+  vm_deallocate(mach_task_self(),
+                base_address_,
+                pool_size_
+                );
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+char *ProtectedMemoryAllocator::Allocate(vm_size_t bytes) {
+  if (valid_ && next_alloc_offset_ + bytes <= pool_size_) {
+    char *p = (char*)base_address_ + next_alloc_offset_;
+    next_alloc_offset_ += bytes;
+    return p;
+  }
+  
+  return NULL;  // ran out of memory in our allocation block
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+kern_return_t  ProtectedMemoryAllocator::Protect() {
+  kern_return_t result = vm_protect(mach_task_self(),
+                                    base_address_,
+                                    pool_size_,
+                                    FALSE,
+                                    VM_PROT_READ);
+  
+  return result;
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+kern_return_t  ProtectedMemoryAllocator::Unprotect() {
+  kern_return_t result = vm_protect(mach_task_self(),
+                                    base_address_,
+                                    pool_size_,
+                                    FALSE,
+                                    VM_PROT_READ | VM_PROT_WRITE);
+  
+  return result;
+}
diff --git a/src/client/mac/handler/protected_memory_allocator.h b/src/client/mac/handler/protected_memory_allocator.h
new file mode 100644
index 0000000..7e188db
--- /dev/null
+++ b/src/client/mac/handler/protected_memory_allocator.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// ProtectedMemoryAllocator
+//
+// A very simple allocator class which allows allocation, but not deallocation.
+// The allocations can be made read-only with the Protect() method.
+// This class is NOT useful as a general-purpose memory allocation system,
+// since it does not allow deallocation.  It is useful to use for a group
+// of allocations which are created in the same time-frame and destroyed
+// in the same time-frame.  It is useful for making allocations of memory
+// which will not need to change often once initialized.  This memory can then
+// be protected from memory smashers by calling the Protect() method.
+
+#ifndef PROTECTED_MEMORY_ALLOCATOR_H__
+#define PROTECTED_MEMORY_ALLOCATOR_H__
+
+#include <mach/mach.h>
+
+//
+class ProtectedMemoryAllocator {
+ public:
+  ProtectedMemoryAllocator(vm_size_t pool_size);  
+  ~ProtectedMemoryAllocator();
+  
+  // Returns a pointer to an allocation of size n within the pool.
+  // Fails by returning NULL is no more space is available.
+  // Please note that the pointers returned from this method should not
+  // be freed in any way (for example by calling free() on them ).
+  char *         Allocate(vm_size_t n);
+  
+  // Returns the base address of the allocation pool.
+  char *         GetBaseAddress() { return (char*)base_address_; }
+
+  // Returns the size of the allocation pool, including allocated
+  // plus free space.
+  vm_size_t      GetTotalSize() { return pool_size_; }
+
+  // Returns the number of bytes already allocated in the pool.
+  vm_size_t      GetAllocatedSize() { return next_alloc_offset_; }
+
+  // Returns the number of bytes available for allocation.
+  vm_size_t      GetFreeSize() { return pool_size_ - next_alloc_offset_; }
+  
+  // Makes the entire allocation pool read-only including, of course,
+  // all allocations made from the pool.
+  kern_return_t  Protect();  
+
+  // Makes the entire allocation pool read/write.
+  kern_return_t  Unprotect();  
+  
+ private:
+  vm_size_t      pool_size_;
+  vm_address_t   base_address_;
+  vm_size_t      next_alloc_offset_;
+  bool           valid_;
+};
+
+#endif // PROTECTED_MEMORY_ALLOCATOR_H__
diff --git a/src/client/mac/handler/testcases/DynamicImagesTests.cc b/src/client/mac/handler/testcases/DynamicImagesTests.cc
new file mode 100644
index 0000000..0a80e43
--- /dev/null
+++ b/src/client/mac/handler/testcases/DynamicImagesTests.cc
@@ -0,0 +1,79 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  DynamicImagesTests.cpp
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 4/17/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+
+#include "client/mac/handler/testcases/DynamicImagesTests.h"
+#include "client/mac/handler/dynamic_images.h"
+
+DynamicImagesTests test2(TEST_INVOCATION(DynamicImagesTests,
+                                         ReadTaskMemoryTest));
+DynamicImagesTests test3(TEST_INVOCATION(DynamicImagesTests,
+                                         ReadLibrariesFromLocalTaskTest));
+
+DynamicImagesTests::DynamicImagesTests(TestInvocation* invocation)
+    : TestCase(invocation) {
+}
+
+DynamicImagesTests::~DynamicImagesTests() {
+}
+
+void DynamicImagesTests::ReadTaskMemoryTest() {
+  kern_return_t kr;
+
+  // pick test2 as a symbol we know to be valid to read
+  // anything will work, really
+  void* addr = reinterpret_cast<void*>(&test2);
+  std::vector<uint8_t> buf(getpagesize());
+
+  fprintf(stderr, "reading 0x%p\n", addr);
+  kr = google_breakpad::ReadTaskMemory(mach_task_self(),
+                                       (uint64_t)addr,
+                                       getpagesize(),
+                                       buf);
+
+  CPTAssert(kr == KERN_SUCCESS);
+
+  CPTAssert(0 == memcmp(&buf[0], (const void*)addr, getpagesize()));
+}
+
+void DynamicImagesTests::ReadLibrariesFromLocalTaskTest() {
+
+  mach_port_t me = mach_task_self();
+  google_breakpad::DynamicImages* d = new google_breakpad::DynamicImages(me);
+
+  fprintf(stderr,"Local task image count: %d\n", d->GetImageCount());
+
+  CPTAssert(d->GetImageCount() > 0);
+}
diff --git a/src/client/mac/handler/testcases/DynamicImagesTests.h b/src/client/mac/handler/testcases/DynamicImagesTests.h
new file mode 100644
index 0000000..e1e7999
--- /dev/null
+++ b/src/client/mac/handler/testcases/DynamicImagesTests.h
@@ -0,0 +1,52 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  DynamicImagesTests.h
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 4/17/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+//
+
+#ifndef _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__
+#define _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__
+
+#include <CPlusTest/CPlusTest.h>
+
+class DynamicImagesTests : public TestCase {
+ public:
+  explicit DynamicImagesTests(TestInvocation* invocation);
+  virtual ~DynamicImagesTests();
+
+  void ReadTaskMemoryTest();
+  void ReadLibrariesFromLocalTaskTest();
+};
+
+#endif /* _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__ */
diff --git a/src/client/mac/handler/testcases/breakpad_nlist_test.cc b/src/client/mac/handler/testcases/breakpad_nlist_test.cc
new file mode 100644
index 0000000..2014b90
--- /dev/null
+++ b/src/client/mac/handler/testcases/breakpad_nlist_test.cc
@@ -0,0 +1,106 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  breakpad_nlist_test.cc
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 4/13/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+
+#include "client/mac/handler/testcases/breakpad_nlist_test.h"
+#include <mach-o/nlist.h>
+#include "client/mac/handler/breakpad_nlist_64.h"
+
+BreakpadNlistTest test1(TEST_INVOCATION(BreakpadNlistTest, CompareToNM));
+
+BreakpadNlistTest::BreakpadNlistTest(TestInvocation* invocation)
+    : TestCase(invocation) {
+}
+
+
+BreakpadNlistTest::~BreakpadNlistTest() {
+}
+
+void BreakpadNlistTest::CompareToNM() {
+#if TARGET_CPU_X86_64
+  system("/usr/bin/nm -arch x86_64 /usr/lib/dyld > /tmp/dyld-namelist.txt");
+#elif TARGET_CPU_PPC64
+  system("/usr/bin/nm -arch ppc64 /usr/lib/dyld > /tmp/dyld-namelist.txt");
+#endif
+
+  FILE* fd = fopen("/tmp/dyld-namelist.txt", "rt");
+
+  char oneNMAddr[30];
+  char symbolType;
+  char symbolName[500];
+  while (!feof(fd)) {
+    fscanf(fd, "%s %c %s", oneNMAddr, &symbolType, symbolName);
+    breakpad_nlist symbolList[2];
+    breakpad_nlist& list = symbolList[0];
+
+    memset(symbolList, 0, sizeof(breakpad_nlist)*2);
+    const char* symbolNames[2];
+    symbolNames[0] = (const char*)symbolName;
+    symbolNames[1] = "\0";
+    breakpad_nlist_64("/usr/lib/dyld", &list, symbolNames);
+    uint64_t nmAddr = strtol(oneNMAddr, NULL, 16);
+    if (!IsSymbolMoreThanOnceInDyld(symbolName)) {
+      CPTAssert(nmAddr == symbolList[0].n_value);
+    }
+  }
+
+  fclose(fd);
+}
+
+bool BreakpadNlistTest::IsSymbolMoreThanOnceInDyld(const char* symbolName) {
+  // These are the symbols that occur more than once when nm dumps
+  // the symbol table of /usr/lib/dyld.  Our nlist program returns
+  // the first address because it's doing a search so we need to exclude
+  // these from causing the test to fail
+  const char* multipleSymbols[] = {
+    "__Z41__static_initialization_and_destruction_0ii",
+    "___tcf_0",
+    "___tcf_1",
+    "_read_encoded_value_with_base",
+    "_read_sleb128",
+    "_read_uleb128",
+    "\0"};
+
+  bool found = false;
+
+  for (int i = 0; multipleSymbols[i][0]; i++) {
+    if (!strcmp(multipleSymbols[i], symbolName)) {
+      found = true;
+      break;
+    }
+  }
+
+  return found;
+}
diff --git a/src/client/mac/handler/testcases/breakpad_nlist_test.h b/src/client/mac/handler/testcases/breakpad_nlist_test.h
new file mode 100644
index 0000000..ee8010c
--- /dev/null
+++ b/src/client/mac/handler/testcases/breakpad_nlist_test.h
@@ -0,0 +1,62 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  breakpad_nlist_test.h
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 4/13/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+//
+
+#ifndef CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__
+#define CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__
+
+#include <CPlusTest/CPlusTest.h>
+
+class BreakpadNlistTest : public TestCase {
+ private:
+
+  // nm dumps multiple addresses for the same symbol in
+  // /usr/lib/dyld. So we track those so we don't report failures
+  // in mismatches between what our nlist returns and what nm has
+  // for the duplicate symbols.
+  bool IsSymbolMoreThanOnceInDyld(const char* symbolName);
+
+ public:
+  explicit BreakpadNlistTest(TestInvocation* invocation);
+  virtual ~BreakpadNlistTest();
+
+
+  /* This test case runs nm on /usr/lib/dyld and then compares the
+     output of every symbol to what our nlist implementation returns */
+  void CompareToNM();
+};
+
+#endif /* CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__*/
diff --git a/src/client/mac/handler/testcases/dwarftests.h b/src/client/mac/handler/testcases/dwarftests.h
new file mode 100644
index 0000000..21ff7a4
--- /dev/null
+++ b/src/client/mac/handler/testcases/dwarftests.h
@@ -0,0 +1,46 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  dwarftests.h
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 9/24/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+
+#import <SenTestingKit/SenTestingKit.h>
+
+
+@interface dwarftests : SenTestCase {
+
+}
+
+- (void) testDWARFSymbolFileGeneration;
+
+@end
diff --git a/src/client/mac/handler/testcases/dwarftests.mm b/src/client/mac/handler/testcases/dwarftests.mm
new file mode 100644
index 0000000..40c69af
--- /dev/null
+++ b/src/client/mac/handler/testcases/dwarftests.mm
@@ -0,0 +1,60 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+//
+//  dwarftests.m
+//  minidump_test
+//
+//  Created by Neal Sidhwaney on 9/24/08.
+//  Copyright 2008 Google Inc. All rights reserved.
+//
+
+#import "dwarftests.h"
+#import "dump_syms.h"
+
+@implementation dwarftests
+- (void) testDWARFSymbolFileGeneration {
+  NSString *inputBreakpadSymbolFile = @"testcases/testdata/dump_syms_i386_breakpad.sym";
+  NSString *outputBreakpadSymbolFile = @"/tmp/dump_syms_i386.breakpad";
+
+  DumpSymbols *dump = [[DumpSymbols alloc] initWithContentsOfFile:@"testcases/testdata/dump_syms_dwarf_data"];
+
+  STAssertNotNil(dump, @"DumpSymbols is nil");
+  [dump setArchitecture:@"i386"];
+  [dump writeSymbolFile:outputBreakpadSymbolFile];
+  
+  NSData *d = [[NSData alloc] initWithContentsOfFile:inputBreakpadSymbolFile];
+  STAssertNotNil(d, @"Input breakpad symbol file not found");
+  
+  NSData *d1 = [[NSData alloc] initWithContentsOfFile:outputBreakpadSymbolFile]; 
+  STAssertNotNil(d1, @"Output breakpad symbol file not found");
+
+  STAssertTrue([d isEqualToData:d1],
+  @"Symbol files were not equal!",nil);
+}
+@end
diff --git a/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data b/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data
new file mode 100644
index 0000000..5be17ae
--- /dev/null
+++ b/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data
Binary files differ
diff --git a/src/client/mac/handler/testcases/testdata/dump_syms_i386_breakpad.sym b/src/client/mac/handler/testcases/testdata/dump_syms_i386_breakpad.sym
new file mode 100644
index 0000000..bca43c1
--- /dev/null
+++ b/src/client/mac/handler/testcases/testdata/dump_syms_i386_breakpad.sym
@@ -0,0 +1,5300 @@
+MODULE mac x86 94BF873C47A73BC07125291390B4C5F10 dump_syms_dwarf_data
+FILE 1 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/libkern/i386/OSByteOrder.h
+FILE 2 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/architecture/byte_order.h
+FILE 3 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/dump_syms.mm
+FILE 4 /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRange.h
+FILE 5 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/new
+FILE 6 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/hash_fun.h
+FILE 7 ../../../common/mac/dwarf/dwarf2reader.h
+FILE 8 ../../../common/mac/file_id.h
+FILE 9 ../../../common/mac/dwarf/functioninfo.h
+FILE 10 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_tree.h
+FILE 11 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_iterator.h
+FILE 12 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/hashtable.h
+FILE 13 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h
+FILE 14 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/new_allocator.h
+FILE 15 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/allocator.h
+FILE 16 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_vector.h
+FILE 17 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h
+FILE 18 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h
+FILE 19 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_algo.h
+FILE 20 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_map.h
+FILE 21 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_construct.h
+FILE 22 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_function.h
+FILE 23 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/hash_map
+FILE 24 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/basic_string.h
+FILE 25 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_algobase.h
+FILE 26 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_list.h
+FILE 27 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/list.tcc
+FILE 28 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_uninitialized.h
+FILE 29 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/vector.tcc
+FILE 30 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/dwarf/functioninfo.cc
+FILE 31 ../../../common/mac/dwarf/dwarf2reader.h
+FILE 32 ../../../common/mac/dwarf/functioninfo.h
+FILE 33 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h
+FILE 34 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/hashtable.h
+FILE 35 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/memory
+FILE 36 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/new_allocator.h
+FILE 37 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/basic_string.h
+FILE 38 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_iterator.h
+FILE 39 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_vector.h
+FILE 40 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_tree.h
+FILE 41 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_function.h
+FILE 42 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/hash_map
+FILE 43 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_construct.h
+FILE 44 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_algobase.h
+FILE 45 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_map.h
+FILE 46 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_uninitialized.h
+FILE 47 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/vector.tcc
+FILE 48 /g/code/breakpad-staging/src/tools/mac/dump_syms/dump_syms_tool.mm
+FILE 49 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/file_id.cc
+FILE 50 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/architecture/byte_order.h
+FILE 51 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/macho_id.cc
+FILE 52 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/libkern/i386/OSByteOrder.h
+FILE 53 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/architecture/byte_order.h
+FILE 54 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/macho_walker.cc
+FILE 55 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/libkern/i386/OSByteOrder.h
+FILE 56 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/architecture/byte_order.h
+FILE 57 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/macho_utilities.cc
+FILE 58 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/dwarf/bytereader.cc
+FILE 59 ../../../common/mac/dwarf/bytereader-inl.h
+FILE 60 /g/code/breakpad-staging/src/tools/mac/dump_syms/../../../common/mac/dwarf/dwarf2reader.cc
+FILE 61 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_algobase.h
+FILE 62 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_deque.h
+FILE 63 ../../../common/mac/dwarf/bytereader.h
+FILE 64 ../../../common/mac/dwarf/bytereader-inl.h
+FILE 65 ../../../common/mac/dwarf/line_state_machine.h
+FILE 66 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_list.h
+FILE 67 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/memory
+FILE 68 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/ext/new_allocator.h
+FILE 69 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/allocator.h
+FILE 70 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_pair.h
+FILE 71 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_vector.h
+FILE 72 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_iterator.h
+FILE 73 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_construct.h
+FILE 74 ../../../common/mac/dwarf/dwarf2reader.h
+FILE 75 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_stack.h
+FILE 76 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/deque.tcc
+FILE 77 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/list.tcc
+FILE 78 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/vector.tcc
+FILE 79 /Developer/SDKs/MacOSX10.4u.sdk/usr/include/c++/4.0.0/bits/stl_uninitialized.h
+FILE 80 /var/tmp/gcc/gcc-5484~1/src/gcc/libgcc2.c
+FUNC 162a 28 0 _OSSwapInt16
+162a 10 44 55
+163a 16 46 55
+1650 2 47 55
+FUNC 1652 1c 0 _OSSwapInt32
+1652 f 53 55
+1661 8 55 55
+1669 3 56 55
+166c 2 57 55
+FUNC 166e 2b 0 _OSSwapInt64
+166e 12 64 55
+1680 11 69 55
+1691 6 70 55
+1697 2 71 55
+1699 1 71 55
+FUNC 169a 1e 0 NXSwapShort
+169a 10 43 56
+16aa c 45 56
+16b6 2 46 56
+FUNC 16b8 19 0 NXSwapInt
+16b8 f 52 56
+16c7 8 54 56
+16cf 2 55 56
+16d1 1 55 56
+FUNC 16d2 19 0 NXSwapLong
+16d2 f 61 56
+16e1 8 63 56
+16e9 2 64 56
+16eb 1 64 56
+FUNC 16ec 1f 0 NXSwapLongLong
+16ec 12 70 56
+16fe b 72 56
+1709 2 73 56
+170b 1 73 56
+FUNC 170c 181 0 -[DumpSymbols convertCPlusPlusSymbols:]
+170c 14 128 3
+1720 54 130 3
+1774 f 132 3
+1783 7 133 3
+178a 1a 136 3
+17a4 5 138 3
+17a9 1a 139 3
+17c3 23 140 3
+17e6 7 141 3
+17ed 44 142 3
+1831 1e 145 3
+184f 29 138 3
+1878 b 148 3
+1883 3 150 3
+1886 7 151 3
+188d 1 151 3
+FUNC 188e 323 0 -[DumpSymbols convertSymbols]
+188e 14 154 3
+18a2 1f 155 3
+18c1 3e 156 3
+18ff 2b 160 3
+192a c 162 3
+1936 43 164 3
+1979 2a 165 3
+19a3 20 168 3
+19c3 d 169 3
+19d0 1e 171 3
+19ee 11 162 3
+19ff 7 181 3
+1a06 6 182 3
+1a0c 5 184 3
+1a11 15 185 3
+1a26 6 18 4
+1a2c 6 19 4
+1a32 6 20 4
+1a38 6 185 3
+1a3e 28 186 3
+1a66 21 187 3
+1a87 1a 188 3
+1aa1 a 190 3
+1aab c 194 3
+1ab7 43 198 3
+1afa 21 199 3
+1b1b 20 202 3
+1b3b 2e 203 3
+1b69 1e 194 3
+1b87 c 184 3
+1b93 17 207 3
+1baa 7 208 3
+1bb1 1 208 3
+FUNC 1bb2 4a2 0 -[DumpSymbols addFunction:line:address:section:]
+1bb2 21 211 3
+1bd3 2f 212 3
+1c02 e 214 3
+1c10 4 219 3
+1c14 2a 221 3
+1c3e 22 223 3
+1c60 6 224 3
+1c66 2a 225 3
+1c90 4 226 3
+1c94 2e 230 3
+1cc2 2e 233 3
+1cf0 2e 236 3
+1d1e a 239 3
+1d28 2b 253 3
+1d53 e 254 3
+1d61 3c 255 3
+1d9d 22 32 4
+1dbf 3 256 3
+1dc2 6 259 3
+1dc8 a 260 3
+1dd2 3c 261 3
+1e0e 25 262 3
+1e33 2a 263 3
+1e5d 22 265 3
+1e7f 26 270 3
+1ea5 6 272 3
+1eab 37 273 3
+1ee2 2a 274 3
+1f0c 17 275 3
+1f23 43 278 3
+1f66 2e 279 3
+1f94 23 282 3
+1fb7 43 285 3
+1ffa 52 287 3
+204c 8 289 3
+FUNC 2054 5a4 0 -[DumpSymbols processSymbolItem:stringTable:]
+2054 18 292 3
+206c 8 293 3
+2074 4 294 3
+2078 16 297 3
+208e c 298 3
+209a f 300 3
+20a9 b 301 3
+20b4 16 303 3
+20ca 4d 309 3
+2117 38 311 3
+214f 30 315 3
+217f 60 317 3
+21df d 322 3
+21ec 2b 325 3
+2217 3a 327 3
+2251 f 332 3
+2260 2d 333 3
+228d 1a 334 3
+22a7 32 335 3
+22d9 20 342 3
+22f9 c 343 3
+2305 24 348 3
+2329 a 349 3
+2333 3c 350 3
+236f 2a 352 3
+2399 1c 353 3
+23b5 9 354 3
+23be f 356 3
+23cd 2d 357 3
+23fa 2f 358 3
+2429 20 360 3
+2449 c 361 3
+2455 7 363 3
+245c 21 365 3
+247d 4a 368 3
+24c7 9 370 3
+24d0 1a 371 3
+24ea 4b 372 3
+2535 4 373 3
+2539 5 371 3
+253e 29 374 3
+2567 2d 376 3
+2594 4b 378 3
+25df 4 379 3
+25e3 a 382 3
+25ed b 383 3
+FUNC 25f8 c9 0 -[DumpSymbols loadSymbolInfo:offset:]
+25f8 13 391 3
+260b 2b 392 3
+2636 2a 393 3
+2660 2d 395 3
+268d 2e 398 3
+26bb 6 399 3
+26c1 1 399 3
+FUNC 26c2 2be 0 -[DumpSymbols loadSTABSSymbolInfo:offset:]
+26c2 16 537 3
+26d8 9 538 3
+26e1 10 539 3
+26f1 2e 540 3
+271f 9 542 3
+2728 22 543 3
+274a 4 544 3
+274e a 546 3
+2758 3c 547 3
+2794 c 549 3
+27a0 e 550 3
+27ae 6 551 3
+27b4 25 552 3
+27d9 25 553 3
+27fe 25 554 3
+2823 c 555 3
+282f c 556 3
+283b c 559 3
+2847 23 562 3
+286a a 563 3
+2874 a 564 3
+287e 2e 565 3
+28ac 39 566 3
+28e5 2e 570 3
+2913 4 571 3
+2917 17 559 3
+292e 25 575 3
+2953 9 576 3
+295c 17 549 3
+2973 4 579 3
+2977 9 580 3
+FUNC 2980 28a 0 -[DumpSymbols loadSymbolInfo64:offset:]
+2980 16 583 3
+2996 9 585 3
+299f 10 586 3
+29af 2e 587 3
+29dd 9 589 3
+29e6 22 590 3
+2a08 4 591 3
+2a0c c 593 3
+2a18 e 594 3
+2a26 6 595 3
+2a2c 25 596 3
+2a51 25 597 3
+2a76 25 598 3
+2a9b 9 599 3
+2aa4 c 600 3
+2ab0 c 603 3
+2abc 17 604 3
+2ad3 23 609 3
+2af6 a 610 3
+2b00 a 611 3
+2b0a 2e 612 3
+2b38 37 613 3
+2b6f 2e 615 3
+2b9d 4 616 3
+2ba1 17 603 3
+2bb8 25 620 3
+2bdd 9 621 3
+2be6 17 593 3
+2bfd 4 624 3
+2c01 9 625 3
+FUNC 2c0a 199 0 -[DumpSymbols loadSymbolInfoForArchitecture]
+2c0a 13 628 3
+2c1d 41 630 3
+2c5e 2b 631 3
+2c89 1a 632 3
+2ca3 40 634 3
+2ce3 40 635 3
+2d23 5f 637 3
+2d82 17 639 3
+2d99 4 640 3
+2d9d 6 641 3
+2da3 1 641 3
+FUNC 2da4 3e5 0 -[DumpSymbols loadHeader:offset:]
+2da4 18 728 3
+2dbc 9 729 3
+2dc5 10 730 3
+2dd5 2e 731 3
+2e03 9 733 3
+2e0c 2b 734 3
+2e37 1e 736 3
+2e55 c 738 3
+2e61 e 739 3
+2e6f 6 740 3
+2e75 50 742 3
+2ec5 2e 743 3
+2ef3 2e 744 3
+2f21 2e 745 3
+2f4f 20 746 3
+2f6f 1b7 755 3
+3126 9 757 3
+312f 25 761 3
+3154 9 762 3
+315d 17 738 3
+3174 a 765 3
+317e b 766 3
+3189 1 766 3
+FUNC 318a 41d 0 -[DumpSymbols loadHeader64:offset:]
+318a 18 769 3
+31a2 9 771 3
+31ab 10 772 3
+31bb 2e 773 3
+31e9 9 775 3
+31f2 c 777 3
+31fe 2b 778 3
+3229 e 779 3
+3237 6 780 3
+323d 50 781 3
+328d 49 782 3
+32d6 49 783 3
+331f 2e 784 3
+334d 9 785 3
+3356 29 786 3
+337f 1c5 794 3
+3544 9 795 3
+354d 25 799 3
+3572 9 800 3
+357b 17 777 3
+3592 a 803 3
+359c b 804 3
+35a7 1 804 3
+FUNC 35a8 52a 0 -[DumpSymbols loadModuleInfo]
+35a8 14 807 3
+35bc e 808 3
+35ca 41 810 3
+360b 1a 811 3
+3625 6 812 3
+362b 6 814 3
+3631 17 815 3
+3648 c 816 3
+3654 29 820 3
+367d 29 821 3
+36a6 29 822 3
+36cf 35 824 3
+3704 12 826 3
+3716 17 827 3
+372d c 828 3
+3739 3c 832 3
+3775 a 834 3
+377f 9 836 3
+3788 25 837 3
+37ad c 839 3
+37b9 54 840 3
+380d 57 841 3
+3864 57 842 3
+38bb 57 843 3
+3912 57 844 3
+3969 1c 846 3
+3985 4b 847 3
+39d0 49 849 3
+3a19 13 839 3
+3a2c 6 851 3
+3a32 3c 852 3
+3a6e 3a 854 3
+3aa8 17 857 3
+3abf c 858 3
+3acb 7 859 3
+FUNC 3ad2 b6 0 WriteFormat
+3ad2 10 862 3
+3ae2 6 867 3
+3ae8 24 868 3
+3b0c 27 869 3
+3b33 40 870 3
+3b73 c 873 3
+3b7f 9 874 3
+FUNC 3b88 35 0 -[DumpSymbols availableArchitectures]
+3b88 13 1140 3
+3b9b 1c 1141 3
+3bb7 6 1142 3
+3bbd 1 1142 3
+FUNC 3bbe 1b4 0 -[DumpSymbols setArchitecture:]
+3bbe 13 1158 3
+3bd1 1a 1159 3
+3beb 4 1160 3
+3bef 2a 1162 3
+3c19 9 1163 3
+3c22 2a 1165 3
+3c4c 9 1166 3
+3c55 9 1167 3
+3c5e 2a 1169 3
+3c88 6 1170 3
+3c8e 2a 1172 3
+3cb8 6 1173 3
+3cbe 2a 1175 3
+3ce8 4 1176 3
+3cec 6 1179 3
+3cf2 2c 1180 3
+3d1e 9 1181 3
+3d27 1c 1183 3
+3d43 1f 1184 3
+3d62 a 1187 3
+3d6c 6 1188 3
+FUNC 3d72 14 0 -[DumpSymbols architecture]
+3d72 c 1191 3
+3d7e 6 1192 3
+3d84 2 1193 3
+FUNC 3d86 e7 0 -[DumpSymbols writeSymbolFile:]
+3d86 13 1196 3
+3d99 1a 1197 3
+3db3 48 1200 3
+3dfb 9 1201 3
+3e04 1e 1203 3
+3e22 6 1205 3
+3e28 9 1206 3
+3e31 21 1208 3
+3e52 b 1210 3
+3e5d a 1212 3
+3e67 6 1213 3
+3e6d 1 1213 3
+FUNC 3e6e 65 0 -[MachSection initWithMachSection:andNumber:]
+3e6e 13 1219 3
+3e81 37 1220 3
+3eb8 9 1221 3
+3ec1 9 1222 3
+3eca 3 1225 3
+3ecd 6 1226 3
+3ed3 1 1226 3
+FUNC 3ed4 14 0 -[MachSection sectionPointer]
+3ed4 c 1228 3
+3ee0 6 1229 3
+3ee6 2 1230 3
+FUNC 3ee8 14 0 -[MachSection sectionNumber]
+3ee8 c 1232 3
+3ef4 6 1233 3
+3efa 2 1234 3
+FUNC 3efc 17c 0 -[DumpSymbols processDWARFSourceFileInfo:]
+3efc 14 459 3
+3f10 a 460 3
+3f1a 3c 461 3
+3f56 20 463 3
+3f76 5 464 3
+3f7b 3a 465 3
+3fb5 1d 466 3
+3fd2 3a 467 3
+400c 2a 468 3
+4036 3b 464 3
+4071 7 471 3
+FUNC 4078 1d7 0 DumpFunctionMap(std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >)
+4078 15 82 3
+408d 13 83 3
+40a0 1e 85 3
+40be 42 89 3
+4100 20 90 3
+4120 2b 91 3
+414b 1a 92 3
+4165 23 93 3
+4188 46 96 3
+41ce 46 99 3
+4214 33 83 3
+4247 8 102 3
+424f 1 102 3
+FUNC 4250 3ef 0 -[DumpSymbols processDWARFFunctionInfo:]
+4250 15 473 3
+4265 25 474 3
+428a 1e 476 3
+42a8 a 480 3
+42b2 3c 481 3
+42ee 3d 483 3
+432b 23 485 3
+434e 26 487 3
+4374 6 489 3
+437a 37 490 3
+43b1 2a 491 3
+43db 17 492 3
+43f2 30 496 3
+4422 3d 497 3
+445f 2e 498 3
+448d 30 502 3
+44bd 64 504 3
+4521 34 507 3
+4555 9d 509 3
+45f2 45 474 3
+4637 8 513 3
+463f 1 513 3
+FUNC 4640 1f5 0 -[DumpSymbols processDWARFLineNumberInfo:]
+4640 15 515 3
+4655 25 516 3
+467a 39 520 3
+46b3 26 521 3
+46d9 6 523 3
+46df 37 524 3
+4716 2a 525 3
+4740 17 526 3
+4757 30 529 3
+4787 61 531 3
+47e8 45 516 3
+482d 8 534 3
+4835 1 534 3
+FUNC 4836 10f 0 -[DumpSymbols dealloc]
+4836 13 1145 3
+4849 1c 1146 3
+4865 1c 1147 3
+4881 1c 1148 3
+489d 1c 1149 3
+48b9 1c 1150 3
+48d5 1c 1151 3
+48f1 25 1152 3
+4916 29 1154 3
+493f 6 1155 3
+4945 1 1155 3
+FUNC 4946 512 0 -[DumpSymbols loadDWARFSymbolInfo:offset:]
+4946 17 402 3
+495d 9 405 3
+4966 10 406 3
+4976 2b 408 3
+49a1 38 409 3
+49d9 3a 410 3
+4a13 2e 411 3
+4a41 31 416 3
+4a72 e 418 3
+4a80 24 420 3
+4aa4 5 422 3
+4aa9 b 424 3
+4ab4 b 425 3
+4abf e 426 3
+4acd 2b 427 3
+4af8 2b 428 3
+4b23 2c 431 3
+4b4f 52 439 3
+4ba1 34 444 3
+4bd5 1a 446 3
+4bef 21 451 3
+4c10 1e 452 3
+4c2e 21 453 3
+4c4f 40 422 3
+4c8f 6 453 3
+4c95 170 422 3
+4e05 43 456 3
+4e48 10 457 3
+FUNC 4e58 4fd 0 -[DumpSymbols generateSectionDictionary:]
+4e58 18 663 3
+4e70 10 665 3
+4e80 2e 666 3
+4eae 9 668 3
+4eb7 2b 669 3
+4ee2 7 670 3
+4ee9 2e 672 3
+4f17 d 676 3
+4f24 32 678 3
+4f56 29 680 3
+4f7f a 684 3
+4f89 3c 685 3
+4fc5 31 688 3
+4ff6 5d 689 3
+5053 26 692 3
+5079 21 694 3
+509a c 698 3
+50a6 e 699 3
+50b4 6 700 3
+50ba 9 701 3
+50c3 2e 702 3
+50f1 c 704 3
+50fd 3c 706 3
+5139 66 709 3
+519f 1c 712 3
+51bb fb 714 3
+52b6 6 717 3
+52bc 5 718 3
+52c1 19 704 3
+52da 25 714 3
+52ff 2e 722 3
+532d 9 723 3
+5336 17 698 3
+534d 8 725 3
+5355 1 725 3
+FUNC 5356 24a 0 -[DumpSymbols getSectionMapForArchitecture:]
+5356 14 643 3
+536a 43 645 3
+53ad 1a 648 3
+53c7 1c 645 3
+53e3 18 648 3
+53fb 40 650 3
+543b 20 651 3
+545b 17 652 3
+5472 16 651 3
+5488 cb 652 3
+5553 11 654 3
+5564 32 657 3
+5596 a 658 3
+FUNC 55a0 3fe 0 -[DumpSymbols initWithContentsOfFile:]
+55a0 14 1056 3
+55b4 3b 1057 3
+55ef 44 1059 3
+5633 17 1060 3
+564a c 1061 3
+5656 1f 1064 3
+5675 2b 1067 3
+56a0 a 1069 3
+56aa 35 1083 3
+56df 2 1087 3
+56e1 1a 1088 3
+56fb 3d 1087 3
+5738 33 1092 3
+576b 6 1094 3
+5771 e 1095 3
+577f 17 1096 3
+5796 c 1097 3
+57a2 1c 1101 3
+57be 1f 1103 3
+57dd 18 1104 3
+57f5 23 1107 3
+5818 25 1109 3
+583d 1c 1107 3
+5859 17 1110 3
+5870 c 1111 3
+587c 2a 1115 3
+58a6 8 1116 3
+58ae a 1118 3
+58b8 9 1119 3
+58c1 d 1122 3
+58ce 29 1124 3
+58f7 20 1126 3
+5917 20 1128 3
+5937 57 1132 3
+598e 9 1136 3
+5997 7 1137 3
+FUNC 599e d74 0 -[DumpSymbols outputSymbolFile:]
+599e 18 877 3
+59b6 2e 879 3
+59e4 30 880 3
+5a14 5d 882 3
+5a71 30 883 3
+5aa1 5d 885 3
+5afe 2e 888 3
+5b2c 38 891 3
+5b64 46 892 3
+5baa 26 893 3
+5bd0 20 895 3
+5bf0 20 904 3
+5c10 30 898 3
+5c40 f 899 3
+5c4f 1e 904 3
+5c6d 17 907 3
+5c84 17 908 3
+5c9b 44 911 3
+5cdf 44 914 3
+5d23 a 917 3
+5d2d 36 921 3
+5d63 30 923 3
+5d93 9 18 4
+5d9c 9 19 4
+5da5 c 20 4
+5db1 56 923 3
+5e07 74 925 3
+5e7b f 927 3
+5e8a 44 932 3
+5ece 20 933 3
+5eee c 934 3
+5efa 4e 935 3
+5f48 41 936 3
+5f89 f 937 3
+5f98 14 934 3
+5fac 7 941 3
+5fb3 14 942 3
+5fc7 14 943 3
+5fdb 1d 946 3
+5ff8 c 948 3
+6004 24 949 3
+6028 29 950 3
+6051 9 953 3
+605a 28 954 3
+6082 2e 955 3
+60b0 1e 957 3
+60ce 7 959 3
+60d5 26 962 3
+60fb 2a 963 3
+6125 2a 964 3
+614f 6 966 3
+6155 2a 967 3
+617f e 971 3
+618d 43 972 3
+61d0 4c 974 3
+621c 8 975 3
+6224 2e 979 3
+6252 2e 982 3
+6280 2e 985 3
+62ae 2e 988 3
+62dc 2e 991 3
+630a 2e 994 3
+6338 2e 997 3
+6366 2e 1000 3
+6394 54 1004 3
+63e8 c 1005 3
+63f4 e 1007 3
+6402 27 1008 3
+6429 8 1009 3
+6431 34 1010 3
+6465 24 1012 3
+6489 2 1013 3
+648b 2a 1017 3
+64b5 a 1019 3
+64bf 14 1020 3
+64d3 1d 1021 3
+64f0 a 1025 3
+64fa 32 1026 3
+652c 33 1028 3
+655f c 1029 3
+656b 55 1034 3
+65c0 f 1036 3
+65cf 16 1040 3
+65e5 61 1041 3
+6646 f 1043 3
+6655 47 1046 3
+669c c 1048 3
+66a8 11 948 3
+66b9 4e 1052 3
+6707 b 1053 3
+FUNC 6712 11 0 operator new(unsigned long, void*)
+6712 c 94 5
+671e 5 94 5
+6723 1 94 5
+FUNC 6724 e 0 operator delete(void*, void*)
+6724 c 98 5
+6730 2 98 5
+673e 7 76 6
+6745 2 77 6
+6747 1a 78 6
+6761 d 77 6
+676e 3 79 6
+6771 2 80 6
+6773 1 80 6
+6780 d 95 6
+678d 1 95 6
+678e 13 127 74
+67a1 2a 127 74
+67cb 1 127 74
+67cc 13 127 74
+67df 2a 127 74
+6809 1 127 74
+680a 13 127 74
+681d 2a 127 74
+6847 1 127 74
+FUNC 6848 e 0 dwarf2reader::LineInfoHandler::DefineDir(std::string const&, unsigned int)
+6848 c 131 7
+6854 2 131 74
+FUNC 6856 26 0 dwarf2reader::LineInfoHandler::DefineFile(std::string const&, int, unsigned int, unsigned long long, unsigned long long)
+6856 24 142 7
+687a 2 142 74
+FUNC 687c 1a 0 dwarf2reader::LineInfoHandler::AddLine(unsigned long long, unsigned int, unsigned int, unsigned int)
+687c 18 150 7
+6894 2 150 74
+6896 12 299 74
+68a8 12 299 74
+68ba 13 301 74
+68cd 2a 301 74
+68f7 1 301 74
+68f8 13 301 74
+690b 2a 301 74
+6935 1 301 74
+6936 13 301 74
+6949 2a 301 74
+6973 1 301 74
+FUNC 6974 44 0 dwarf2reader::Dwarf2Handler::StartCompilationUnit(unsigned long long, unsigned char, unsigned char, unsigned long long, unsigned char)
+6974 39 308 7
+69ad b 308 74
+FUNC 69b8 1f 0 dwarf2reader::Dwarf2Handler::StartDIE(unsigned long long, dwarf2reader::DwarfTag, std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > > const&)
+69b8 18 314 7
+69d0 7 314 74
+69d7 1 314 74
+FUNC 69d8 26 0 dwarf2reader::Dwarf2Handler::ProcessAttributeUnsigned(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, unsigned long long)
+69d8 24 323 7
+69fc 2 323 74
+FUNC 69fe 26 0 dwarf2reader::Dwarf2Handler::ProcessAttributeSigned(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, long long)
+69fe 24 332 7
+6a22 2 332 74
+FUNC 6a24 26 0 dwarf2reader::Dwarf2Handler::ProcessAttributeBuffer(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, char const*, unsigned long long)
+6a24 24 345 7
+6a48 2 345 74
+FUNC 6a4a 1a 0 dwarf2reader::Dwarf2Handler::ProcessAttributeString(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, std::string const&)
+6a4a 18 354 7
+6a62 2 354 74
+FUNC 6a64 1a 0 dwarf2reader::Dwarf2Handler::EndDIE(unsigned long long)
+6a64 18 360 7
+6a7c 2 360 74
+6a7e c 44 8
+6a8a 2 44 8
+6a8c 13 55 32
+6a9f 35 55 32
+6ad4 13 91 32
+6ae7 73 96 32
+6b5a 13 98 32
+6b6d 35 98 32
+6bae 1a 75 3
+6bc8 2 76 3
+FUNC 6bca 20 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator!=(std::_Rb_tree_const_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > const&) const
+6bca c 287 10
+6bd6 14 288 40
+FUNC 6bea 16 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator->() const
+6bea c 249 10
+6bf6 a 250 40
+6c0c 7 614 72
+6c13 1 614 72
+6c14 c 241 40
+6c20 c 242 40
+FUNC 6c2c 16 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator*() const
+6c2c c 245 11
+6c38 a 246 40
+6c42 c 241 40
+6c4e c 242 40
+FUNC 6c5a 20 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator!=(std::_Rb_tree_const_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > const&) const
+6c5a c 287 11
+6c66 14 288 40
+FUNC 6c7a 16 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator->() const
+6c7a c 249 11
+6c86 a 250 40
+6c90 c 185 34
+6c9c 18 186 34
+6cc0 14 204 34
+6cd4 c 69 70
+6ce0 d 69 70
+6ced 1 69 70
+6cee c 89 70
+6cfa 20 90 70
+6d1a c 69 70
+6d26 d 69 70
+6d33 1 69 70
+6d34 c 69 70
+6d40 d 69 70
+6d4d 1 69 70
+FUNC 6d4e 25 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator++()
+6d4e c 253 13
+6d5a 14 255 40
+6d6e 5 256 40
+6d73 1 256 40
+FUNC 6d74 25 0 std::_Rb_tree_const_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator++()
+6d74 c 253 13
+6d80 14 255 40
+6d94 5 256 40
+6d99 1 256 40
+FUNC 6d9a 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_begin()
+6d9a c 461 13
+6da6 8 462 40
+FUNC 6dae 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_begin()
+6dae c 461 13
+6dba 8 462 40
+6dc2 c 65 68
+6dce 2 65 68
+6dd0 c 72 68
+6ddc 2 72 68
+6dde c 97 69
+6dea d 97 69
+6df7 1 97 69
+6df8 c 105 69
+6e04 d 105 69
+6e11 1 105 69
+6e12 c 105 69
+6e1e d 105 69
+6e2b 1 105 69
+6e2c c 67 68
+6e38 2 67 68
+6e3a c 99 69
+6e46 14 100 69
+6e5a c 99 69
+6e66 14 100 69
+FUNC 6e7a 2b 0 std::_Vector_base<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::get_allocator() const
+6e7a 10 93 16
+6e8a 1b 94 71
+6ea5 1 94 71
+6ea6 c 65 68
+6eb2 2 65 68
+6eb4 c 72 68
+6ec0 2 72 68
+6ec2 c 97 69
+6ece d 97 69
+6edb 1 97 69
+6edc c 105 69
+6ee8 d 105 69
+6ef5 1 105 69
+6ef6 c 105 69
+6f02 d 105 69
+6f0f 1 105 69
+6f10 c 67 68
+6f1c 2 67 68
+6f1e c 99 69
+6f2a 14 100 69
+6f3e c 99 69
+6f4a 14 100 69
+FUNC 6f5e 2b 0 std::_Vector_base<std::string, std::allocator<std::string> >::get_allocator() const
+6f5e 10 93 16
+6f6e 1b 94 71
+6f89 1 94 71
+6f8a c 603 72
+6f96 c 603 72
+FUNC 6fa2 23 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::begin()
+6fa2 c 333 16
+6fae 17 334 71
+6fc5 1 334 71
+FUNC 6fc6 26 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::end()
+6fc6 c 351 16
+6fd2 1a 352 71
+6ff8 5 666 72
+6ffd 1 666 72
+6ffe c 608 72
+700a 14 609 72
+702a 5 666 72
+702f 1 666 72
+FUNC 7030 35 0 bool __gnu_cxx::operator!=<dwarf2reader::SourceFileInfo const*, dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo const*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > const&, __gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > const&)
+7030 d 693 16
+703d 28 694 72
+7065 1 694 72
+7066 c 603 72
+7072 c 603 72
+708a 27 629 72
+70b1 1 629 72
+70b2 c 84 70
+70be 1f 85 70
+70dd 1 85 70
+FUNC 70de 32 0 std::pair<std::string, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> std::make_pair<std::string, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*>(std::string, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*)
+70de 10 144 16
+70ee 22 145 70
+711c a 190 34
+7132 d 194 34
+713f 1 194 34
+7140 c 84 70
+714c 17 85 70
+7163 1 85 70
+FUNC 7164 2d 0 std::pair<char const*, unsigned long> std::make_pair<char const*, unsigned long>(char const*, unsigned long)
+7164 c 144 16
+7170 21 145 70
+7191 1 145 70
+7192 c 84 70
+719e 1d 85 70
+71bb 1 85 70
+FUNC 71bc 30 0 std::pair<char*, std::pair<char const*, unsigned long> > std::make_pair<char*, std::pair<char const*, unsigned long> >(char*, std::pair<char const*, unsigned long>)
+71bc 10 144 16
+71cc 20 145 70
+71ec c 89 70
+71f8 20 90 70
+7218 d 89 70
+7225 70 90 70
+7295 1 90 70
+FUNC 7296 12 0 std::iterator_traits<unsigned long const*>::iterator_category std::__iterator_category<unsigned long const*>(unsigned long const* const&)
+7296 c 164 17
+72a2 6 165 17
+FUNC 72a8 1d 0 std::iterator_traits<unsigned long const*>::difference_type std::__distance<unsigned long const*>(unsigned long const*, unsigned long const*, std::random_access_iterator_tag)
+72a8 c 92 18
+72b4 11 97 18
+72c5 1 97 18
+FUNC 72c6 33 0 std::iterator_traits<unsigned long const*>::difference_type std::distance<unsigned long const*>(unsigned long const*, unsigned long const*)
+72c6 c 114 18
+72d2 27 118 18
+72f9 1 118 18
+FUNC 72fa 20 0 void std::__advance<unsigned long const*, int>(unsigned long const*&, int, std::random_access_iterator_tag)
+72fa c 150 18
+7306 14 155 18
+FUNC 731a 33 0 void std::advance<unsigned long const*, int>(unsigned long const*&, int)
+731a c 172 18
+7326 27 175 18
+734d 1 175 18
+FUNC 734e 7a 0 unsigned long const* std::lower_bound<unsigned long const*, unsigned long>(unsigned long const*, unsigned long const*, unsigned long const&)
+734e c 2625 19
+735a 15 2642 19
+736f 2 2646 19
+7371 8 2648 19
+7379 6 2649 19
+737f 12 2650 19
+7391 e 2651 19
+739f 6 2653 19
+73a5 4 2654 19
+73a9 e 2655 19
+73b7 6 2658 19
+73bd 6 2646 19
+73c3 5 2660 19
+73db b 227 34
+73e6 e 228 34
+73f4 1c 229 34
+7410 20 230 34
+7430 6 231 34
+7436 c 72 68
+7442 2 72 68
+7444 c 105 69
+7450 d 105 69
+745d 1 105 69
+745e c 105 69
+746a d 105 69
+7477 1 105 69
+7478 c 80 71
+7484 d 80 71
+7491 1 80 71
+7492 c 67 68
+749e 2 67 68
+74a0 c 99 69
+74ac 14 100 69
+FUNC 74c0 2b 0 std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::get_allocator() const
+74c0 10 93 19
+74d0 1b 94 71
+74eb 1 94 71
+74ec c 238 40
+74f8 a 239 40
+FUNC 7502 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::begin() const
+7502 c 585 19
+750e 1a 588 40
+FUNC 7528 19 0 std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::begin() const
+7528 c 243 20
+7534 d 244 45
+7541 1 244 45
+FUNC 7542 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::end() const
+7542 c 596 20
+754e 1a 597 40
+FUNC 7568 19 0 std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::end() const
+7568 c 260 20
+7574 d 261 45
+7581 1 261 45
+7582 c 65 68
+758e 2 65 68
+7590 c 72 68
+759c 2 72 68
+759e c 97 69
+75aa d 97 69
+75b7 1 97 69
+75b8 c 105 69
+75c4 d 105 69
+75d1 1 105 69
+75d2 c 72 68
+75de 2 72 68
+75e0 c 105 69
+75ec d 105 69
+75f9 1 105 69
+75fa c 397 40
+7606 d 397 40
+7613 1 397 40
+7614 c 105 69
+7620 d 105 69
+762d 1 105 69
+FUNC 762e 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_right(std::_Rb_tree_node_base*)
+762e c 496 20
+763a 8 497 40
+FUNC 7642 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_left(std::_Rb_tree_node_base*)
+7642 c 488 20
+764e 8 489 40
+7656 c 65 68
+7662 2 65 68
+7664 c 72 68
+7670 2 72 68
+7672 c 97 69
+767e d 97 69
+768b 1 97 69
+768c c 105 69
+7698 d 105 69
+76a5 1 105 69
+76a6 c 72 68
+76b2 2 72 68
+76b4 c 105 69
+76c0 d 105 69
+76cd 1 105 69
+76ce c 397 40
+76da d 397 40
+76e7 1 397 40
+76e8 c 105 69
+76f4 d 105 69
+7701 1 105 69
+FUNC 7702 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_right(std::_Rb_tree_node_base*)
+7702 c 496 20
+770e 8 497 40
+FUNC 7716 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_left(std::_Rb_tree_node_base*)
+7716 c 488 20
+7722 8 489 40
+772a c 84 71
+7736 2f 85 71
+7765 2 86 71
+7767 1 86 71
+7768 c 80 71
+7774 d 80 71
+7781 1 80 71
+7782 c 96 71
+778e 12 97 71
+77a0 2 98 71
+77a2 c 84 71
+77ae 2f 85 71
+77dd 2 86 71
+77df 1 86 71
+77e0 c 80 71
+77ec d 80 71
+77f9 1 80 71
+77fa c 96 71
+7806 12 97 71
+7818 2 98 71
+7826 d 107 68
+7833 1 107 68
+FUNC 7834 2e 0 void std::_Destroy<std::string*, std::allocator<std::string> >(std::string*, std::string*, std::allocator<std::string>)
+7834 c 171 21
+7840 2 173 73
+7842 12 174 73
+7854 c 173 73
+7860 2 174 73
+7862 c 167 40
+786e a 168 40
+FUNC 7878 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::begin()
+7878 c 581 21
+7884 1a 582 40
+FUNC 789e 19 0 std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::begin()
+789e c 234 21
+78aa d 235 45
+78b7 1 235 45
+FUNC 78b8 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::end()
+78b8 c 592 21
+78c4 1a 593 40
+FUNC 78de 19 0 std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::end()
+78de c 251 21
+78ea d 252 45
+78f7 1 252 45
+78f8 c 167 40
+7904 a 168 40
+FUNC 790e 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::begin()
+790e c 581 21
+791a 1a 582 40
+FUNC 7934 19 0 std::map<unsigned long long, std::pair<std::string, unsigned int>, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::begin()
+7934 c 234 21
+7940 d 235 45
+794d 1 235 45
+FUNC 794e 26 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::end()
+794e c 592 21
+795a 1a 593 40
+FUNC 7974 19 0 std::map<unsigned long long, std::pair<std::string, unsigned int>, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::end()
+7974 c 251 21
+7980 d 252 45
+798d 1 252 45
+FUNC 798e 11 0 std::_Select1st<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >::operator()(std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*>&) const
+798e c 546 22
+799a 5 547 41
+799f 1 547 41
+79a0 c 128 34
+79ac 13 129 34
+79bf 1 129 34
+79cc 22 396 34
+79fa d 199 42
+7a07 1 199 42
+7a08 c 65 68
+7a14 2 65 68
+7a16 c 72 68
+7a22 2 72 68
+7a24 c 97 69
+7a30 d 97 69
+7a3d 1 97 69
+7a3e c 105 69
+7a4a d 105 69
+7a57 1 105 69
+7a58 c 65 68
+7a64 2 65 68
+7a66 c 72 68
+7a72 2 72 68
+7a74 c 105 69
+7a80 d 105 69
+7a8d 1 105 69
+7a8e c 97 69
+7a9a d 97 69
+7aa7 1 97 69
+7aa8 c 72 68
+7ab4 2 72 68
+7ab6 c 105 69
+7ac2 d 105 69
+7acf 1 105 69
+7adc d 94 68
+7ae9 1 94 68
+FUNC 7aea 2f 0 std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_deallocate(dwarf2reader::CompilationUnit::Abbrev*, unsigned long)
+7aea c 120 23
+7af6 6 122 71
+7afc 1d 123 71
+7b19 1 123 71
+7b1a c 108 71
+7b26 43 109 71
+7b69 1 109 71
+7b6a c 65 68
+7b76 2 65 68
+7b78 c 103 69
+7b84 d 103 69
+7b91 1 103 69
+7b92 c 65 68
+7b9e 2 65 68
+7ba0 c 103 69
+7bac d 103 69
+7bb9 1 103 69
+7bc6 d 94 68
+7bd3 1 94 68
+FUNC 7bd4 2f 0 std::_Vector_base<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::_M_deallocate(dwarf2reader::SourceFileInfo*, unsigned long)
+7bd4 c 120 23
+7be0 6 122 71
+7be6 1d 123 71
+7c03 1 123 71
+7c04 c 108 71
+7c10 43 109 71
+7c53 1 109 71
+7c54 c 188 71
+7c60 12 189 71
+7c72 2 190 71
+7c74 c 35 32
+7c80 d 35 32
+7c8d 1 35 32
+7c9a d 107 68
+7ca7 1 107 68
+FUNC 7ca8 2e 0 void std::_Destroy<dwarf2reader::SourceFileInfo*, std::allocator<dwarf2reader::SourceFileInfo> >(dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*, std::allocator<dwarf2reader::SourceFileInfo>)
+7ca8 c 171 23
+7cb4 2 173 73
+7cb6 12 174 73
+7cc8 c 173 73
+7cd4 2 174 73
+7cd6 d 272 71
+7ce3 8c 273 71
+7d6f 1 273 71
+7d7c d 94 68
+7d89 1 94 68
+FUNC 7d8a 2f 0 std::_Vector_base<std::string, std::allocator<std::string> >::_M_deallocate(std::string*, unsigned long)
+7d8a c 120 23
+7d96 6 122 71
+7d9c 1d 123 71
+7db9 1 123 71
+7dba c 108 71
+7dc6 3d 109 71
+7e03 1 109 71
+7e04 c 188 71
+7e10 12 189 71
+7e22 2 190 71
+7e24 d 272 71
+7e31 8c 273 71
+7ebd 1 273 71
+7eca 2b 596 34
+7ef5 1 596 34
+7f02 7 614 72
+7f09 1 614 72
+7f0a c 65 68
+7f16 2 65 68
+7f18 c 72 68
+7f24 2 72 68
+7f26 c 103 69
+7f32 d 103 69
+7f3f 1 103 69
+7f40 c 105 69
+7f4c d 105 69
+7f59 1 105 69
+7f5a c 65 68
+7f66 2 65 68
+7f68 c 72 68
+7f74 2 72 68
+7f76 c 103 69
+7f82 d 103 69
+7f8f 1 103 69
+7f90 c 105 69
+7f9c d 105 69
+7fa9 1 105 69
+7faa c 105 69
+7fb6 d 105 69
+7fc3 1 105 69
+7fd0 d 575 34
+7fdd 1 575 34
+7fea d 575 34
+7ff7 1 575 34
+FUNC 7ff8 11 0 std::_Select1st<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >::operator()(std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> const&) const
+7ff8 c 550 23
+8004 5 551 41
+8009 1 551 41
+8016 2f 600 34
+8045 1 600 34
+8046 c 84 70
+8052 1e 85 70
+FUNC 8070 11 0 std::_Select1st<std::pair<std::string const, std::pair<char const*, unsigned long long> > >::operator()(std::pair<std::string const, std::pair<char const*, unsigned long long> >&) const
+8070 c 546 23
+807c 5 547 41
+8081 1 547 41
+FUNC 8082 11 0 std::_Select1st<std::pair<std::string const, std::pair<char const*, unsigned long long> > >::operator()(std::pair<std::string const, std::pair<char const*, unsigned long long> > const&) const
+8082 c 550 23
+808e 5 551 41
+8093 1 551 41
+8094 c 128 34
+80a0 13 129 34
+80b3 1 129 34
+80b4 c 84 70
+80c0 1e 85 70
+80de c 65 68
+80ea 2 65 68
+80ec c 103 69
+80f8 d 103 69
+8105 1 103 69
+8106 c 65 68
+8112 2 65 68
+8114 c 72 68
+8120 2 72 68
+8122 c 105 69
+812e d 105 69
+813b 1 105 69
+813c c 103 69
+8148 d 103 69
+8155 1 103 69
+8156 c 105 69
+8162 d 105 69
+816f 1 105 69
+8170 c 80 71
+817c d 80 71
+8189 1 80 71
+818a c 67 68
+8196 2 67 68
+8198 c 99 69
+81a4 14 100 69
+FUNC 81b8 2b 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::get_allocator() const
+81b8 10 93 23
+81c8 1b 94 71
+81e3 1 94 71
+81e4 c 99 69
+81f0 14 100 69
+8210 2 107 68
+FUNC 8212 2e 0 void std::_Destroy<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>)
+8212 c 171 23
+821e 2 173 73
+8220 12 174 73
+8232 c 173 73
+823e 2 174 73
+824c d 107 68
+8259 1 107 68
+825a c 67 68
+8266 2 67 68
+8268 c 99 69
+8274 14 100 69
+8288 c 403 40
+8294 1c 404 40
+82b0 a 406 40
+82ba a 407 40
+82c4 c 408 40
+82d0 e 409 40
+82de c 553 40
+82ea 36 554 40
+8320 2 555 40
+8322 c 103 69
+832e d 103 69
+833b 1 103 69
+FUNC 833c 2b 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::get_allocator() const
+833c 10 350 23
+834c 1b 351 40
+8367 1 351 40
+8368 c 69 70
+8374 2 69 70
+8382 d 107 68
+838f 1 107 68
+839c d 94 68
+83a9 1 94 68
+FUNC 83aa 2a 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >*)
+83aa c 359 23
+83b6 1e 360 40
+FUNC 83d4 59 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::destroy_node(std::_Rb_tree_node<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >*)
+83d4 d 387 23
+83e1 35 389 40
+8416 17 390 40
+842d 1 390 40
+FUNC 842e 56 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >*)
+842e c 1051 23
+843a 2 1054 40
+843c 1a 1056 40
+8456 e 1057 40
+8464 12 1058 40
+8476 6 1059 40
+847c 6 1054 40
+8482 2 1059 40
+8484 d 569 40
+8491 58 570 40
+84e9 1 570 40
+84ea c 147 45
+84f6 31 148 45
+8527 1 148 45
+8528 c 92 45
+8534 d 92 45
+8541 1 92 45
+8542 c 67 68
+854e 2 67 68
+8550 c 99 69
+855c 14 100 69
+8570 c 403 40
+857c 1c 404 40
+8598 a 406 40
+85a2 a 407 40
+85ac c 408 40
+85b8 e 409 40
+85c6 c 553 40
+85d2 36 554 40
+8608 2 555 40
+860a c 103 69
+8616 d 103 69
+8623 1 103 69
+FUNC 8624 2b 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::get_allocator() const
+8624 10 350 23
+8634 1b 351 40
+864f 1 351 40
+8650 c 69 70
+865c d 69 70
+8669 1 69 70
+866a c 69 70
+8676 30 69 70
+86b2 d 107 68
+86bf 1 107 68
+86cc d 94 68
+86d9 1 94 68
+FUNC 86da 2a 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >*)
+86da c 359 23
+86e6 1e 360 40
+FUNC 8704 59 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::destroy_node(std::_Rb_tree_node<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >*)
+8704 d 387 23
+8711 35 389 40
+8746 17 390 40
+875d 1 390 40
+FUNC 875e 56 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >*)
+875e c 1051 23
+876a 2 1054 40
+876c 1a 1056 40
+8786 e 1057 40
+8794 12 1058 40
+87a6 6 1059 40
+87ac 6 1054 40
+87b2 2 1059 40
+87b4 d 569 40
+87c1 58 570 40
+8819 1 570 40
+881a c 147 45
+8826 31 148 45
+8857 1 148 45
+8858 c 92 45
+8864 d 92 45
+8871 1 92 45
+8872 c 603 72
+887e c 603 72
+FUNC 888a 23 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::begin()
+888a c 333 23
+8896 17 334 71
+88ad 1 334 71
+88ba 2a 654 72
+FUNC 88e4 42 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::operator[](unsigned long)
+88e4 c 494 23
+88f0 36 495 71
+FUNC 8926 26 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::end()
+8926 c 351 23
+8932 1a 352 71
+FUNC 894c 28 0 bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
+894c c 2115 24
+8958 1c 2116 37
+FUNC 8974 23 0 std::equal_to<std::string>::operator()(std::string const&, std::string const&) const
+8974 c 199 24
+8980 17 200 41
+8997 1 200 41
+8998 c 80 71
+89a4 d 80 71
+89b1 1 80 71
+89b2 c 67 68
+89be 2 67 68
+89c0 c 99 69
+89cc 14 100 69
+FUNC 89e0 2b 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::get_allocator() const
+89e0 10 93 24
+89f0 1b 94 71
+8a0b 1 94 71
+8a0c c 99 69
+8a18 14 100 69
+8a2c c 84 71
+8a38 2f 85 71
+8a67 2 86 71
+8a69 1 86 71
+8a6a c 96 71
+8a76 12 97 71
+8a88 2 98 71
+8a96 2 107 68
+FUNC 8a98 2e 0 void std::_Destroy<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>)
+8a98 c 171 24
+8aa4 2 173 73
+8aa6 12 174 73
+8ab8 c 173 73
+8ac4 2 174 73
+FUNC 8ac6 13 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::max_size() const
+8ac6 c 407 24
+8ad2 7 408 71
+8ad9 1 408 71
+8ada c 603 72
+8ae6 c 603 72
+FUNC 8af2 26 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::end()
+8af2 c 351 24
+8afe 1a 352 71
+FUNC 8b18 23 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::begin()
+8b18 c 333 24
+8b24 17 334 71
+8b3b 1 334 71
+8b48 2a 654 72
+8b7e 7 614 72
+8b85 1 614 72
+FUNC 8b86 42 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::operator[](unsigned long)
+8b86 c 494 24
+8b92 36 495 71
+8bd4 d 107 68
+8be1 1 107 68
+FUNC 8be2 28 0 void std::swap<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**&, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**&)
+8be2 c 92 25
+8bee 8 97 61
+8bf6 a 98 61
+8c00 a 99 61
+FUNC 8c0a 50 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::swap(std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >&)
+8c0a c 733 25
+8c16 12 735 71
+8c28 18 736 71
+8c40 1a 737 71
+8c66 2b 596 34
+8c91 1 596 34
+8c9e 2f 600 34
+8ccd 1 600 34
+FUNC 8cce 28 0 void std::swap<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**&, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**&)
+8cce c 92 25
+8cda 8 97 61
+8ce2 a 98 61
+8cec a 99 61
+FUNC 8cf6 50 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::swap(std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >&)
+8cf6 c 733 25
+8d02 12 735 71
+8d14 18 736 71
+8d2c 1a 737 71
+8d46 c 84 71
+8d52 2f 85 71
+8d81 2 86 71
+8d83 1 86 71
+8d84 c 96 71
+8d90 12 97 71
+8da2 2 98 71
+FUNC 8da4 13 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::max_size() const
+8da4 c 407 25
+8db0 7 408 71
+8db7 1 408 71
+8dc4 d 94 68
+8dd1 1 94 68
+FUNC 8dd2 2f 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::_M_deallocate(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long)
+8dd2 c 120 25
+8dde 6 122 71
+8de4 1d 123 71
+8e01 1 123 71
+8e02 c 108 71
+8e0e 3d 109 71
+8e4b 1 109 71
+8e4c c 272 71
+8e58 4b 273 71
+8ea3 1 273 71
+8ea4 c 188 71
+8eb0 12 189 71
+8ec2 2 190 71
+8ec4 c 603 72
+8ed0 c 603 72
+FUNC 8edc 2b 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::begin() const
+8edc c 342 25
+8ee8 1f 343 71
+8f07 1 343 71
+FUNC 8f08 2c 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::end() const
+8f08 c 360 25
+8f14 20 361 71
+8f40 5 666 72
+8f45 1 666 72
+8f53 2b 759 72
+FUNC 8f7e 3c 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::size() const
+8f7e c 402 25
+8f8a 30 403 71
+8fc6 26 588 34
+8ff8 15 511 34
+900d 79 513 34
+9086 21 517 34
+90a7 1 517 34
+90b4 14 225 42
+90d4 26 592 34
+FUNC 90fa 49 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::capacity() const
+90fa c 449 25
+9106 3d 451 71
+9143 1 451 71
+9144 c 103 69
+9150 d 103 69
+915d 1 103 69
+916e 1b 286 34
+9189 1 286 34
+9196 d 94 68
+91a3 1 94 68
+91b0 1e 301 34
+91db 56 622 34
+9231 17 623 34
+9254 9 1080 34
+925d 1a 1082 34
+9277 2 1083 34
+9279 8 1085 34
+9281 12 1086 34
+9293 6 1087 34
+9299 6 1083 34
+929f 1b 1089 34
+92ba 1d 1080 34
+92d7 c 1091 34
+92e3 1 1091 34
+92e4 d 360 34
+92f1 77 361 34
+9368 c 93 42
+9374 d 93 42
+9381 1 93 42
+9382 c 72 68
+938e 2 72 68
+9390 c 105 69
+939c d 105 69
+93a9 1 105 69
+93aa c 301 66
+93b6 d 301 66
+93c3 1 301 66
+93d0 d 94 68
+93dd 1 94 68
+FUNC 93de 2f 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::_M_deallocate(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long)
+93de c 120 26
+93ea 6 122 71
+93f0 1d 123 71
+940d 1 123 71
+940e c 108 71
+941a 3d 109 71
+9457 1 109 71
+9458 c 188 71
+9464 12 189 71
+9476 2 190 71
+9478 c 272 71
+9484 4b 273 71
+94cf 1 273 71
+94d0 c 603 72
+94dc c 603 72
+FUNC 94e8 2b 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::begin() const
+94e8 c 342 26
+94f4 1f 343 71
+9513 1 343 71
+FUNC 9514 2c 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::end() const
+9514 c 360 26
+9520 20 361 71
+954c 2d 662 72
+9579 1 662 72
+FUNC 957a 2d 0 unsigned long const& std::max<unsigned long>(unsigned long const&, unsigned long const&)
+957a c 206 26
+9586 e 211 61
+9594 8 212 61
+959c b 213 61
+95a7 1 213 61
+95b4 19 650 72
+95cd 1 650 72
+95da 5 666 72
+95df 1 666 72
+95ed 2b 759 72
+9624 5 666 72
+9629 1 666 72
+9637 2b 759 72
+FUNC 9662 49 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::capacity() const
+9662 c 449 26
+966e 3d 451 71
+96ab 1 451 71
+FUNC 96ac 3c 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::size() const
+96ac c 402 26
+96b8 30 403 71
+96f4 26 588 34
+9726 26 592 34
+974c c 103 69
+9758 d 103 69
+9765 1 103 69
+9776 1b 286 34
+9791 1 286 34
+979e d 94 68
+97ab 1 94 68
+97b8 1e 301 34
+97e3 56 622 34
+9839 17 623 34
+985c 9 1080 34
+9865 1a 1082 34
+987f 2 1083 34
+9881 8 1085 34
+9889 12 1086 34
+989b 6 1087 34
+98a1 6 1083 34
+98a7 1b 1089 34
+98c2 1d 1080 34
+98df c 1091 34
+98eb 1 1091 34
+98ec d 360 34
+98f9 77 361 34
+9970 c 69 70
+997c 20 69 70
+99a9 5c 104 68
+9a05 1 104 68
+9a06 c 69 70
+9a12 2c 69 70
+9a4b 5c 104 68
+9aa7 1 104 68
+9ab4 2d 662 72
+9ae1 1 662 72
+9aee 19 650 72
+9b07 1 650 72
+9b14 5 666 72
+9b19 1 666 72
+9b27 2b 759 72
+9b52 c 72 68
+9b5e 2 72 68
+9b60 c 105 69
+9b6c d 105 69
+9b79 1 105 69
+9b7a c 69 70
+9b86 2 69 70
+9b94 d 107 68
+9ba1 1 107 68
+9bae d 94 68
+9bbb 1 94 68
+FUNC 9bbc 2a 0 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_put_node(std::_List_node<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >*)
+9bbc c 315 26
+9bc8 1e 316 66
+FUNC 9be6 35 0 bool __gnu_cxx::operator!=<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > > const&, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > > const&)
+9be6 d 699 26
+9bf3 28 700 72
+9c1b 1 700 72
+9c28 d 623 72
+9c35 5 624 72
+FUNC 9c3a 4b 0 void std::__fill<true>::fill<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+9c3a c 539 61
+9c46 8 541 61
+9c4e 2 542 61
+9c50 12 543 61
+9c62 21 542 61
+9c83 2 543 61
+9c85 1 543 61
+FUNC 9c86 2b 0 void std::fill<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+9c86 c 560 26
+9c92 4 567 61
+9c96 1b 568 61
+9cb1 1 568 61
+FUNC 9cb2 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>)
+9cb2 c 171 26
+9cbe 2 173 73
+9cc0 1a 174 73
+9cda 21 173 73
+9cfb 2 174 73
+9cfd 1 174 73
+9d0a 7 98 68
+9d11 1 98 68
+9d1e 1d 85 68
+9d3b 5 86 68
+9d40 16 88 68
+9d62 1d 297 34
+9d7f 1 297 34
+9d8d e 605 34
+9d9b 9 606 34
+9da4 3c 609 34
+9de0 b 610 34
+9deb 11 609 34
+9dfc b 612 34
+9e07 12 614 34
+9e19 b 615 34
+9e24 13 612 34
+9e37 8 615 34
+9e3f 1 615 34
+9e4d 15 751 34
+9e62 1a 752 34
+9e7c b 754 34
+9e87 49 755 34
+9ed0 3b 756 34
+9f0b 12 754 34
+9f1d 15 758 34
+9f32 8 759 34
+9f3a 1c 760 34
+9f56 f 761 34
+9f65 41 762 34
+9fb2 7 98 68
+9fb9 1 98 68
+9fc6 1d 85 68
+9fe3 5 86 68
+9fe8 17 88 68
+9fff 1 88 68
+a00c 1d 297 34
+a029 1 297 34
+a037 e 605 34
+a045 9 606 34
+a04e 3c 609 34
+a08a b 610 34
+a095 11 609 34
+a0a6 b 612 34
+a0b1 12 614 34
+a0c3 b 615 34
+a0ce 13 612 34
+a0e1 8 615 34
+a0e9 1 615 34
+a0f7 15 751 34
+a10c 1a 752 34
+a126 b 754 34
+a131 49 755 34
+a17a 3b 756 34
+a1b5 12 754 34
+a1c7 15 758 34
+a1dc 8 759 34
+a1e4 1c 760 34
+a200 f 761 34
+a20f 41 762 34
+FUNC a250 35 0 bool __gnu_cxx::operator!=<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > > const&, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > > const&)
+a250 d 699 26
+a25d 28 700 72
+a285 1 700 72
+a292 d 623 72
+a29f 5 624 72
+FUNC a2a4 4b 0 void std::__fill<true>::fill<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+a2a4 c 539 61
+a2b0 8 541 61
+a2b8 2 542 61
+a2ba 12 543 61
+a2cc 21 542 61
+a2ed 2 543 61
+a2ef 1 543 61
+FUNC a2f0 2b 0 void std::fill<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+a2f0 c 560 26
+a2fc 4 567 61
+a300 1b 568 61
+a31b 1 568 61
+FUNC a31c 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>)
+a31c c 171 26
+a328 2 173 73
+a32a 1a 174 73
+a344 21 173 73
+a365 2 174 73
+a367 1 174 73
+a368 c 65 68
+a374 2 65 68
+a376 c 103 69
+a382 d 103 69
+a38f 1 103 69
+FUNC a390 2b 0 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::get_allocator() const
+a390 10 322 26
+a3a0 1b 324 66
+a3bb 1 324 66
+FUNC a3bc 7b 0 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear()
+a3bc d 69 27
+a3c9 8 72 77
+a3d1 2 73 77
+a3d3 6 75 77
+a3d9 8 76 77
+a3e1 35 77 77
+a416 12 78 77
+a428 a 73 77
+a432 5 78 77
+a437 1 78 77
+a438 c 331 66
+a444 18 332 66
+a45c c 392 66
+a468 d 392 66
+a475 1 392 66
+a476 c 211 74
+a482 10 211 74
+a49e d 107 68
+a4ab 1 107 68
+FUNC a4ac 2e 0 void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+a4ac c 171 27
+a4b8 2 173 73
+a4ba 12 174 73
+a4cc c 173 73
+a4d8 2 174 73
+a4da c 272 71
+a4e6 4b 273 71
+a531 1 273 71
+a532 13 196 74
+a545 10 196 74
+a555 2f 197 74
+a584 1a 198 74
+a59e 13 196 74
+a5b1 10 196 74
+a5c1 2f 197 74
+a5f0 1a 198 74
+a616 7 98 68
+a61d 1 98 68
+a62a 1d 85 68
+a647 5 86 68
+a64c 10 88 68
+FUNC a65c 2a 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::_M_allocate(unsigned long)
+a65c c 116 27
+a668 1e 117 71
+a686 d 100 71
+a693 12 101 71
+a6a5 19 103 71
+a6be b 104 71
+a6c9 3a 105 71
+a703 1 105 71
+a710 7 98 68
+a717 1 98 68
+a724 1d 85 68
+a741 5 86 68
+a746 10 88 68
+FUNC a756 2a 0 std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::_M_allocate(unsigned long)
+a756 c 116 27
+a762 1e 117 71
+a780 d 100 71
+a78d 12 101 71
+a79f 19 103 71
+a7b8 b 104 71
+a7c3 3a 105 71
+a7fd 1 105 71
+a80b 12 424 61
+a81d 2e 425 61
+a84b 13 426 61
+a86a 4 440 61
+a86e 1b 443 61
+a889 1 443 61
+a898 56 482 61
+a8fa 4 514 61
+a8fe 4 515 61
+a902 1b 517 61
+a91d 1 517 61
+a92a 8 616 61
+a932 2 617 61
+a934 8 618 61
+a93c f 617 61
+a94b 5 619 61
+a95c 4 641 61
+a960 1b 642 61
+a97b 1 642 61
+FUNC a97c 27 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&, __true_type)
+a97c c 182 28
+a988 1b 183 79
+a9a3 1 183 79
+FUNC a9a4 2f 0 void std::uninitialized_fill_n<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+a9a4 c 214 28
+a9b0 23 218 79
+a9d3 1 218 79
+FUNC a9d4 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>)
+a9d4 c 308 28
+a9e0 1b 310 79
+a9fb 1 310 79
+a9fc c 200 71
+aa08 19 201 71
+aa21 42 203 71
+aa63 15 205 71
+aa85 11 992 34
+aa96 c 993 34
+aaa2 15 995 34
+aab7 c 996 34
+aac3 4a 998 34
+ab0d f 1001 34
+ab1c 1c 998 34
+ab38 1a 1003 34
+ab52 5 1004 34
+ab57 1f 1007 34
+ab76 1c 1008 34
+ab92 19 1009 34
+abab 19 1010 34
+abc4 1a 1011 34
+abde a 1004 34
+abe8 11 1001 34
+abf9 15 1014 34
+ac0e 13 1028 34
+ac21 b 1016 34
+ac2c 9 1018 34
+ac35 19 1023 34
+ac4e 23 1024 34
+ac71 19 1025 34
+ac8a 1d 1021 34
+aca7 1a 1018 34
+acc1 b 1028 34
+accc b 1016 34
+acd7 1e 1028 34
+acf5 1 1028 34
+ad06 16 438 34
+ad1c 37 439 34
+ad53 1 439 34
+ad64 37 212 42
+ad9b 1 212 42
+ada8 8 616 61
+adb0 2 617 61
+adb2 8 618 61
+adba f 617 61
+adc9 5 619 61
+adda 4 641 61
+adde 1b 642 61
+adf9 1 642 61
+FUNC adfa 27 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&, __true_type)
+adfa c 182 28
+ae06 1b 183 79
+ae21 1 183 79
+FUNC ae22 2f 0 void std::uninitialized_fill_n<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+ae22 c 214 28
+ae2e 23 218 79
+ae51 1 218 79
+FUNC ae52 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>)
+ae52 c 308 28
+ae5e 1b 310 79
+ae79 1 310 79
+ae7a c 200 71
+ae86 19 201 71
+ae9f 42 203 71
+aee1 15 205 71
+af03 11 992 34
+af14 c 993 34
+af20 15 995 34
+af35 c 996 34
+af41 4a 998 34
+af8b f 1001 34
+af9a 1c 998 34
+afb6 1a 1003 34
+afd0 5 1004 34
+afd5 1f 1007 34
+aff4 1c 1008 34
+b010 19 1009 34
+b029 19 1010 34
+b042 1a 1011 34
+b05c a 1004 34
+b066 11 1001 34
+b077 15 1014 34
+b08c 13 1028 34
+b09f b 1016 34
+b0aa 9 1018 34
+b0b3 19 1023 34
+b0cc 23 1024 34
+b0ef 19 1025 34
+b108 1d 1021 34
+b125 1a 1018 34
+b13f b 1028 34
+b14a b 1016 34
+b155 1e 1028 34
+b173 1 1028 34
+b184 16 438 34
+b19a 37 439 34
+b1d1 1 439 34
+b1e2 37 212 42
+b219 1 212 42
+b227 12 424 61
+b239 2e 425 61
+b267 13 426 61
+b286 4 440 61
+b28a 1b 443 61
+b2a5 1 443 61
+b2b4 56 482 61
+b316 4 514 61
+b31a 4 515 61
+b31e 1b 517 61
+b339 1 517 61
+b346 8 616 61
+b34e 2 617 61
+b350 12 618 61
+b362 16 617 61
+b378 5 619 61
+b37d 1 619 61
+b38a 4 641 61
+b38e 1b 642 61
+b3a9 1 642 61
+FUNC b3aa 27 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&, __true_type)
+b3aa c 182 28
+b3b6 1b 183 79
+b3d1 1 183 79
+FUNC b3d2 2f 0 void std::uninitialized_fill_n<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+b3d2 c 214 28
+b3de 23 218 79
+b401 1 218 79
+FUNC b402 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*>)
+b402 c 308 28
+b40e 1b 310 79
+b429 1 310 79
+b436 8 616 61
+b43e 2 617 61
+b440 12 618 61
+b452 16 617 61
+b468 5 619 61
+b46d 1 619 61
+b47a 4 641 61
+b47e 1b 642 61
+b499 1 642 61
+FUNC b49a 27 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&, __true_type)
+b49a c 182 28
+b4a6 1b 183 79
+b4c1 1 183 79
+FUNC b4c2 2f 0 void std::uninitialized_fill_n<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+b4c2 c 214 28
+b4ce 23 218 79
+b4f1 1 218 79
+FUNC b4f2 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*>)
+b4f2 c 308 28
+b4fe 1b 310 79
+b519 1 310 79
+b526 22 300 61
+b548 11 301 61
+b559 1 301 61
+b566 4 315 61
+b56a 1b 317 61
+b585 1 317 61
+b592 1b 326 61
+b5ad 1 326 61
+b5ba 4 384 61
+b5be 4 385 61
+b5c2 1b 387 61
+b5dd 1 387 61
+b5ea 1b 74 79
+b605 1 74 79
+b612 23 113 79
+b635 1 113 79
+b642 1b 254 79
+b65d 1 254 79
+b66a 15 763 71
+b67f 40 766 71
+b6bf 3 768 71
+b6c2 2 773 71
+FUNC b6c4 124 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::reserve(unsigned long)
+b6c4 13 69 29
+b6d7 15 71 78
+b6ec e 72 78
+b6fa 19 73 78
+b713 e 75 78
+b721 28 78 78
+b749 3e 79 78
+b787 30 81 78
+b7b7 8 84 78
+b7bf 11 85 78
+b7d0 18 86 78
+b7f5 33 335 61
+b834 4 384 61
+b838 4 385 61
+b83c 1b 387 61
+b857 1 387 61
+b864 1b 74 79
+b87f 1 74 79
+b88c 23 113 79
+b8af 1 113 79
+b8bc 1b 254 79
+b8d7 1 254 79
+b8e6 56 354 61
+b948 4 384 61
+b94c 4 385 61
+b950 1b 387 61
+b96b 1 387 61
+b978 1b 74 79
+b993 1 74 79
+b9a0 23 113 79
+b9c3 1 113 79
+b9d0 1b 254 79
+b9eb 1 254 79
+FUNC b9ec 46e 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+b9ec 14 311 29
+ba00 b 313 78
+ba0b 24 315 78
+ba2f 8 318 78
+ba37 23 319 78
+ba5a 15 320 78
+ba6f c 321 78
+ba7b 51 323 78
+bacc 14 327 78
+bae0 30 328 78
+bb10 35 330 78
+bb45 48 334 78
+bb8d 17 338 78
+bba4 43 339 78
+bbe7 14 342 78
+bbfb 1e 343 78
+bc19 e 348 78
+bc27 1e 349 78
+bc45 e 350 78
+bc53 1d 353 78
+bc70 8 354 78
+bc78 e 355 78
+bc86 27 357 78
+bcad 6 358 78
+bcb3 4d 361 78
+bd00 40 365 78
+bd40 18 367 78
+bd58 4d 368 78
+bda5 3e 379 78
+bde3 30 381 78
+be13 12 384 78
+be25 13 385 78
+be38 22 386 78
+FUNC be5a 2e 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::insert(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >* const&)
+be5a c 657 29
+be66 22 658 71
+be94 15 580 34
+bea9 15 581 34
+bebe 37 582 34
+bef5 c 583 34
+bf01 1 583 34
+bf02 d 335 34
+bf0f 4e 337 34
+bf5d 4d 338 34
+bfaa d 134 42
+bfb7 65 135 42
+c028 22 300 61
+c04a 11 301 61
+c05b 1 301 61
+c068 4 315 61
+c06c 1b 317 61
+c087 1 317 61
+c094 1b 326 61
+c0af 1 326 61
+c0bc 4 384 61
+c0c0 4 385 61
+c0c4 1b 387 61
+c0df 1 387 61
+c0ec 1b 74 79
+c107 1 74 79
+c114 23 113 79
+c137 1 113 79
+c144 1b 254 79
+c15f 1 254 79
+c16c 15 763 71
+c181 40 766 71
+c1c1 3 768 71
+c1c4 2 773 71
+FUNC c1c6 124 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::reserve(unsigned long)
+c1c6 13 69 29
+c1d9 15 71 78
+c1ee e 72 78
+c1fc 19 73 78
+c215 e 75 78
+c223 28 78 78
+c24b 3e 79 78
+c289 30 81 78
+c2b9 8 84 78
+c2c1 11 85 78
+c2d2 18 86 78
+c2f7 33 335 61
+c336 4 384 61
+c33a 4 385 61
+c33e 1b 387 61
+c359 1 387 61
+c366 1b 74 79
+c381 1 74 79
+c38e 23 113 79
+c3b1 1 113 79
+c3be 1b 254 79
+c3d9 1 254 79
+c3e8 56 354 61
+c44a 4 384 61
+c44e 4 385 61
+c452 1b 387 61
+c46d 1 387 61
+c47a 1b 74 79
+c495 1 74 79
+c4a2 23 113 79
+c4c5 1 113 79
+c4d2 1b 254 79
+c4ed 1 254 79
+FUNC c4ee 46e 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+c4ee 14 311 29
+c502 b 313 78
+c50d 24 315 78
+c531 8 318 78
+c539 23 319 78
+c55c 15 320 78
+c571 c 321 78
+c57d 51 323 78
+c5ce 14 327 78
+c5e2 30 328 78
+c612 35 330 78
+c647 48 334 78
+c68f 17 338 78
+c6a6 43 339 78
+c6e9 14 342 78
+c6fd 1e 343 78
+c71b e 348 78
+c729 1e 349 78
+c747 e 350 78
+c755 1d 353 78
+c772 8 354 78
+c77a e 355 78
+c788 27 357 78
+c7af 6 358 78
+c7b5 4d 361 78
+c802 40 365 78
+c842 18 367 78
+c85a 4d 368 78
+c8a7 3e 379 78
+c8e5 30 381 78
+c915 12 384 78
+c927 13 385 78
+c93a 22 386 78
+FUNC c95c 2e 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> >::insert(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >**, std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >*> > >, unsigned long, __gnu_cxx::_Hashtable_node<std::pair<std::string const, __gnu_cxx::hash_map<std::string, std::pair<char const*, unsigned long long>, __gnu_cxx::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<char const*, unsigned long long> > >*> >* const&)
+c95c c 657 29
+c968 22 658 71
+c996 15 580 34
+c9ab 15 581 34
+c9c0 37 582 34
+c9f7 c 583 34
+ca03 1 583 34
+ca04 d 335 34
+ca11 4e 337 34
+ca5f 4d 338 34
+caac d 134 42
+cab9 65 135 42
+FUNC cb1e 44 0 dwarf2reader::CUFunctionInfoHandler::StartCompilationUnit(unsigned long long, unsigned char, unsigned char, unsigned long long, unsigned char)
+cb1e 39 135 42
+cb57 5 102 30
+cb5c 6 103 30
+FUNC cb62 41 0 dwarf2reader::CUFunctionInfoHandler::ProcessAttributeString(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, std::string const&)
+cb62 18 136 30
+cb7a 10 137 30
+cb8a 17 138 30
+cba1 2 139 30
+cba3 1 139 30
+FUNC cba4 2a5 0 dwarf2reader::CUFunctionInfoHandler::ProcessAttributeUnsigned(unsigned long long, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm, unsigned long long)
+cba4 2d 144 30
+cbd1 a 145 30
+cbdb 58 146 30
+cc33 35 147 30
+cc68 32 146 30
+cc9a 2a 147 30
+ccc4 82 152 30
+cd46 18 153 30
+cd5e 1c 152 30
+cd7a 2f 153 30
+cda9 e 154 30
+cdb7 28 155 30
+cddf 12 157 30
+cdf1 2 158 30
+cdf3 12 160 30
+ce05 2 161 30
+ce07 c 163 30
+ce13 2 164 30
+ce15 2c 166 30
+ce41 8 172 30
+ce49 1 172 30
+FUNC ce4a 19c 0 dwarf2reader::CULineInfoHandler::AddLine(unsigned long long, unsigned int, unsigned int, unsigned int)
+ce4a 20 84 30
+ce6a 1c 85 30
+ce86 9c 87 30
+cf22 4f 89 30
+cf71 19 87 30
+cf8a 25 90 30
+cfaf 30 93 30
+cfdf 7 95 30
+FUNC cfe6 9f 0 dwarf2reader::CUFunctionInfoHandler::EndDIE(unsigned long long)
+cfe6 19 174 30
+cfff 1c 175 30
+d01b 65 177 30
+d080 5 178 30
+d085 1 178 30
+FUNC d086 164 0 dwarf2reader::CUFunctionInfoHandler::StartDIE(unsigned long long, dwarf2reader::DwarfTag, std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > > const&)
+d086 20 111 30
+d0a6 1c 112 30
+d0c2 c 126 30
+d0ce 23 115 30
+d0f1 26 116 30
+d117 1a 117 30
+d131 d 118 30
+d13e 1b 119 30
+d159 5f 120 30
+d1b8 c 124 30
+d1c4 1c 115 30
+d1e0 3 126 30
+d1e3 7 129 30
+FUNC d1ea 73 0 dwarf2reader::CULineInfoHandler::DefineDir(std::string const&, unsigned int)
+d1ea 13 52 30
+d1fd 45 54 30
+d242 15 55 30
+d257 6 56 30
+d25d 1 56 30
+FUNC d25e 23b 0 dwarf2reader::CULineInfoHandler::DefineFile(std::string const&, int, unsigned int, unsigned long long, unsigned long long)
+d25e 2c 60 30
+d28a 45 62 30
+d2cf 2f 65 30
+d2fe 24 66 30
+d322 b 68 30
+d32d e 69 30
+d33b 19 71 30
+d354 17 72 30
+d36b 93 74 30
+d3fe 64 77 30
+d462 30 79 30
+d492 7 81 30
+d499 1 81 30
+d49a 14 38 30
+d4ae 36 40 30
+d4e4 41 43 30
+d525 41 44 30
+d566 67 45 30
+d5cd 10 46 30
+d5dd 13 45 30
+d5f0 15 47 30
+d605 e 48 30
+d613 3d 49 30
+d650 20 50 30
+d670 14 38 30
+d684 36 40 30
+d6ba 41 43 30
+d6fb 41 44 30
+d73c 67 45 30
+d7a3 10 46 30
+d7b3 13 45 30
+d7c6 15 47 30
+d7db e 48 30
+d7e9 3d 49 30
+d826 20 50 30
+d846 12 125 74
+d858 12 125 74
+d86a 13 55 32
+d87d 35 55 32
+d8b2 13 98 32
+d8c5 35 98 32
+d8fa c 35 32
+d906 d 35 32
+d913 1 35 32
+d914 d 22 32
+d921 40 22 32
+d961 1 22 32
+d962 c 89 70
+d96e 1e 90 70
+d998 14 208 34
+d9ac c 190 67
+d9b8 a 190 67
+d9c2 c 259 67
+d9ce 21 259 67
+d9ef 1 259 67
+FUNC d9f0 13 0 std::auto_ptr<dwarf2reader::LineInfo>::operator->() const
+d9f0 c 283 35
+d9fc 7 286 67
+da03 1 286 67
+da11 5c 104 68
+da6d 1 104 68
+FUNC da6e 28 0 bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)
+da6e c 2139 37
+da7a 1c 2140 37
+FUNC da96 5d 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)
+da96 d 2081 37
+daa3 12 2083 37
+dab5 1a 2084 37
+dacf 24 2085 37
+daf3 1 2085 37
+FUNC daf4 5d 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
+daf4 d 2044 37
+db01 12 2046 37
+db13 1a 2047 37
+db2d 24 2048 37
+db51 1 2048 37
+db52 c 84 70
+db5e 17 85 70
+db75 1 85 70
+FUNC db76 2d 0 std::pair<char const*, unsigned int> std::make_pair<char const*, unsigned int>(char const*, unsigned int)
+db76 c 144 37
+db82 21 145 70
+dba3 1 145 70
+dba4 c 84 70
+dbb0 23 85 70
+dbd3 1 85 70
+FUNC dbd4 3c 0 std::pair<unsigned long long, std::pair<char const*, unsigned int> > std::make_pair<unsigned long long, std::pair<char const*, unsigned int> >(unsigned long long, std::pair<char const*, unsigned int>)
+dbd4 1c 144 37
+dbf0 20 145 70
+dc10 d 89 70
+dc1d 64 90 70
+dc81 1 90 70
+dc82 c 89 70
+dc8e 2a 90 70
+dcb8 c 84 70
+dcc4 1d 85 70
+dce1 1 85 70
+FUNC dce2 3c 0 std::pair<unsigned long long, dwarf2reader::FunctionInfo*> std::make_pair<unsigned long long, dwarf2reader::FunctionInfo*>(unsigned long long, dwarf2reader::FunctionInfo*)
+dce2 1c 144 37
+dcfe 20 145 70
+dd2a a 190 34
+dd40 d 194 34
+dd4d 1 194 34
+dd4e c 603 72
+dd5a c 603 72
+FUNC dd66 2b 0 std::vector<std::string, std::allocator<std::string> >::begin() const
+dd66 c 342 39
+dd72 1f 343 71
+dd91 1 343 71
+FUNC dd92 2c 0 std::vector<std::string, std::allocator<std::string> >::end() const
+dd92 c 360 39
+dd9e 20 361 71
+ddca 5 666 72
+ddcf 1 666 72
+dddd 2b 759 72
+FUNC de08 3c 0 std::vector<std::string, std::allocator<std::string> >::size() const
+de08 c 402 39
+de14 30 403 71
+FUNC de44 2b 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::begin() const
+de44 c 342 39
+de50 1f 343 71
+de6f 1 343 71
+FUNC de70 2c 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::end() const
+de70 c 360 39
+de7c 20 361 71
+dea9 31 759 72
+FUNC deda 3c 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::size() const
+deda c 402 39
+dee6 30 403 71
+df16 c 603 72
+df22 c 603 72
+FUNC df2e 26 0 std::vector<std::string, std::allocator<std::string> >::end()
+df2e c 351 39
+df3a 1a 352 71
+df60 7 614 72
+df67 1 614 72
+FUNC df68 13 0 std::vector<std::string, std::allocator<std::string> >::max_size() const
+df68 c 407 39
+df74 7 408 71
+df7b 1 408 71
+df88 5 666 72
+df8d 1 666 72
+df9a d 623 72
+dfa7 5 624 72
+FUNC dfac 23 0 std::vector<std::string, std::allocator<std::string> >::begin()
+dfac c 333 39
+dfb8 17 334 71
+dfcf 1 334 71
+dfd0 c 35 32
+dfdc 26 35 32
+e00f 5c 104 68
+e06b 1 104 68
+e078 7 614 72
+e07f 1 614 72
+FUNC e080 35 0 dwarf2reader::SourceFileInfo::operator=(dwarf2reader::SourceFileInfo const&)
+e080 c 35 39
+e08c 29 35 32
+e0b5 1 35 32
+FUNC e0b6 13 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::max_size() const
+e0b6 c 407 39
+e0c2 7 408 71
+e0c9 1 408 71
+e0d6 d 623 72
+e0e3 5 624 72
+FUNC e0e8 3c 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::_M_range_check(unsigned long) const
+e0e8 13 515 39
+e0fb 15 517 71
+e110 14 518 71
+FUNC e124 3c 0 std::vector<std::string, std::allocator<std::string> >::_M_range_check(unsigned long) const
+e124 13 515 39
+e137 15 517 71
+e14c 14 518 71
+e16c 2a 654 72
+FUNC e196 42 0 std::vector<std::string, std::allocator<std::string> >::operator[](unsigned long)
+e196 c 494 39
+e1a2 36 495 71
+FUNC e1d8 32 0 std::vector<std::string, std::allocator<std::string> >::at(unsigned long)
+e1d8 c 534 39
+e1e4 12 536 71
+e1f6 14 537 71
+e216 32 654 72
+FUNC e248 42 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::operator[](unsigned long)
+e248 c 494 39
+e254 36 495 71
+FUNC e28a 32 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::at(unsigned long)
+e28a c 534 39
+e296 12 536 71
+e2a8 14 537 71
+FUNC e2bc 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_end()
+e2bc c 472 40
+e2c8 8 473 40
+FUNC e2d0 11 0 std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator()(std::pair<unsigned long long const, std::pair<std::string, unsigned int> > const&) const
+e2d0 c 550 41
+e2dc 5 551 41
+e2e1 1 551 41
+FUNC e2e2 53 0 std::less<unsigned long long>::operator()(unsigned long long const&, unsigned long long const&) const
+e2e2 c 226 41
+e2ee 47 227 41
+e335 1 227 41
+FUNC e336 20 0 std::_Rb_tree_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator==(std::_Rb_tree_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > const&) const
+e336 c 209 41
+e342 14 210 40
+e356 c 84 70
+e362 18 85 70
+FUNC e37a 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_end()
+e37a c 472 41
+e386 8 473 40
+FUNC e38e 11 0 std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator()(std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> const&) const
+e38e c 550 41
+e39a 5 551 41
+e39f 1 551 41
+FUNC e3a0 20 0 std::_Rb_tree_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator==(std::_Rb_tree_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > const&) const
+e3a0 c 209 41
+e3ac 14 210 40
+e3c0 c 84 70
+e3cc 18 85 70
+e3e4 c 180 34
+e3f0 13 181 34
+e403 1 181 34
+e410 22 409 34
+e43e d 207 42
+e44b 1 207 42
+FUNC e44c 35 0 bool __gnu_cxx::operator!=<std::string*, std::vector<std::string, std::allocator<std::string> > >(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > > const&, __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > > const&)
+e44c d 699 42
+e459 28 700 72
+e481 1 700 72
+FUNC e482 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::string> >(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::string>)
+e482 c 171 43
+e48e 2 173 73
+e490 1a 174 73
+e4aa 21 173 73
+e4cb 2 174 73
+e4cd 1 174 73
+FUNC e4ce 35 0 bool __gnu_cxx::operator!=<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > const&, __gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > const&)
+e4ce d 699 43
+e4db 28 700 72
+e503 1 700 72
+FUNC e504 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, std::allocator<dwarf2reader::SourceFileInfo> >(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, __gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, std::allocator<dwarf2reader::SourceFileInfo>)
+e504 c 171 43
+e510 2 173 73
+e512 1a 174 73
+e52c 21 173 73
+e54d 2 174 73
+e54f 1 174 73
+FUNC e550 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_value(std::_Rb_tree_node<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > const*)
+e550 c 480 43
+e55c 8 481 40
+FUNC e564 28 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_key(std::_Rb_tree_node<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > const*)
+e564 c 484 43
+e570 1c 485 40
+FUNC e58c 25 0 std::_Rb_tree_iterator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >::operator--()
+e58c c 194 43
+e598 14 196 40
+e5ac 5 197 40
+e5b1 1 197 40
+FUNC e5b2 25 0 std::_Rb_tree_iterator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >::operator--()
+e5b2 c 194 43
+e5be 14 196 40
+e5d2 5 197 40
+e5d7 1 197 40
+FUNC e5d8 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_value(std::_Rb_tree_node_base const*)
+e5d8 c 504 43
+e5e4 8 505 40
+FUNC e5ec 28 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_S_key(std::_Rb_tree_node_base const*)
+e5ec c 508 43
+e5f8 1c 509 40
+FUNC e614 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_value(std::_Rb_tree_node<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > const*)
+e614 c 480 43
+e620 8 481 40
+FUNC e628 28 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_key(std::_Rb_tree_node<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > const*)
+e628 c 484 43
+e634 1c 485 40
+FUNC e650 14 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_value(std::_Rb_tree_node_base const*)
+e650 c 504 43
+e65c 8 505 40
+FUNC e664 28 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_S_key(std::_Rb_tree_node_base const*)
+e664 c 508 43
+e670 1c 509 40
+e698 7 614 72
+e69f 1 614 72
+e6ac 7 98 68
+e6b3 1 98 68
+e6c0 1d 85 68
+e6dd 5 86 68
+e6e2 10 88 68
+FUNC e6f2 2a 0 std::_Vector_base<std::string, std::allocator<std::string> >::_M_allocate(unsigned long)
+e6f2 c 116 43
+e6fe 1e 117 71
+e728 7 98 68
+e72f 1 98 68
+e73c 1d 85 68
+e759 5 86 68
+e75e 16 88 68
+FUNC e774 2a 0 std::_Vector_base<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::_M_allocate(unsigned long)
+e774 c 116 43
+e780 1e 117 71
+e7aa 3a 104 68
+e7f0 2a 654 72
+FUNC e81a 42 0 std::vector<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*, std::allocator<__gnu_cxx::_Hashtable_node<std::pair<std::string const, std::pair<char const*, unsigned long long> > >*> >::operator[](unsigned long) const
+e81a c 509 43
+e826 36 510 71
+FUNC e85c 4e 0 std::string* std::__copy_backward<false, std::random_access_iterator_tag>::copy_b<std::string*, std::string*>(std::string*, std::string*, std::string*)
+e85c c 408 61
+e868 14 411 61
+e87c 1e 412 61
+e89a b 411 61
+e8a5 5 413 61
+FUNC e8aa 2b 0 std::string* std::__copy_backward_aux<std::string*, std::string*>(std::string*, std::string*, std::string*)
+e8aa c 432 44
+e8b6 4 440 61
+e8ba 1b 443 61
+e8d5 1 443 61
+e8e4 56 482 61
+e946 4 514 61
+e94a 4 515 61
+e94e 1b 517 61
+e969 1 517 61
+FUNC e96a 69 0 void std::_Construct<std::string, std::string>(std::string*, std::string const&)
+e96a d 77 44
+e977 5c 81 73
+e9d3 1 81 73
+FUNC e9d4 54 0 dwarf2reader::SourceFileInfo* std::__copy_backward<false, std::random_access_iterator_tag>::copy_b<dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*>(dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*)
+e9d4 c 408 61
+e9e0 1a 411 61
+e9fa 1e 412 61
+ea18 b 411 61
+ea23 5 413 61
+FUNC ea28 2b 0 dwarf2reader::SourceFileInfo* std::__copy_backward_aux<dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*>(dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo*)
+ea28 c 432 44
+ea34 4 440 61
+ea38 1b 443 61
+ea53 1 443 61
+ea62 56 482 61
+eac4 4 514 61
+eac8 4 515 61
+eacc 1b 517 61
+eae7 1 517 61
+FUNC eae8 69 0 void std::_Construct<dwarf2reader::SourceFileInfo, dwarf2reader::SourceFileInfo>(dwarf2reader::SourceFileInfo*, dwarf2reader::SourceFileInfo const&)
+eae8 d 77 44
+eaf5 5c 81 73
+eb51 1 81 73
+eb52 c 69 70
+eb5e 20 69 70
+eb7e c 69 70
+eb8a 2a 69 70
+ebc1 5c 104 68
+ec1d 1 104 68
+ec2a 15 523 34
+ec3f 79 525 34
+ecb8 21 529 34
+ecd9 1 529 34
+ece6 14 229 42
+ed06 7 98 68
+ed0d 1 98 68
+ed1a 1d 85 68
+ed37 5 86 68
+ed3c 10 88 68
+FUNC ed4c 29 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_get_node()
+ed4c c 355 44
+ed58 1d 356 40
+ed75 1 356 40
+FUNC ed76 b6 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_create_node(std::pair<unsigned long long const, std::pair<std::string, unsigned int> > const&)
+ed76 d 363 44
+ed83 e 365 40
+ed91 3c 367 40
+edcd b 373 40
+edd8 11 367 40
+ede9 b 368 40
+edf4 12 370 40
+ee06 b 371 40
+ee11 13 368 40
+ee24 8 373 40
+FUNC ee2c cd 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<unsigned long long const, std::pair<std::string, unsigned int> > const&)
+ee2c d 787 44
+ee39 15 789 40
+ee4e 5d 792 40
+eeab 24 796 40
+eecf f 798 40
+eede 1b 799 40
+eef9 1 799 40
+FUNC eefa 1ef 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, std::pair<std::string, unsigned int> >, std::_Select1st<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::insert_unique(std::pair<unsigned long long const, std::pair<std::string, unsigned int> > const&)
+eefa d 869 44
+ef07 e 871 40
+ef15 e 872 40
+ef23 4 873 40
+ef27 2 874 40
+ef29 6 876 40
+ef2f 35 877 40
+ef64 2a 878 40
+ef8e 6 874 40
+ef94 12 880 40
+efa6 a 881 40
+efb0 24 882 40
+efd4 51 883 40
+f025 b 885 40
+f030 36 886 40
+f066 4e 887 40
+f0b4 35 888 40
+f0e9 1 888 40
+FUNC f0ea 20 0 std::map<unsigned long long, std::pair<std::string, unsigned int>, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, std::pair<std::string, unsigned int> > > >::insert(std::pair<unsigned long long const, std::pair<std::string, unsigned int> > const&)
+f0ea c 359 45
+f0f6 14 360 45
+f116 7 98 68
+f11d 1 98 68
+f12a 1d 85 68
+f147 5 86 68
+f14c 1d 88 68
+f169 1 88 68
+FUNC f16a 29 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_get_node()
+f16a c 355 45
+f176 1d 356 40
+f193 1 356 40
+FUNC f194 5f 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_create_node(std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> const&)
+f194 d 363 45
+f1a1 e 365 40
+f1af 3c 367 40
+f1eb 8 373 40
+f1f3 1 373 40
+FUNC f1f4 cd 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> const&)
+f1f4 d 787 45
+f201 15 789 40
+f216 5d 792 40
+f273 24 796 40
+f297 f 798 40
+f2a6 1b 799 40
+f2c1 1 799 40
+FUNC f2c2 1ef 0 std::_Rb_tree<unsigned long long, std::pair<unsigned long long const, dwarf2reader::FunctionInfo*>, std::_Select1st<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> >, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::insert_unique(std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> const&)
+f2c2 d 869 45
+f2cf e 871 40
+f2dd e 872 40
+f2eb 4 873 40
+f2ef 2 874 40
+f2f1 6 876 40
+f2f7 35 877 40
+f32c 2a 878 40
+f356 6 874 40
+f35c 12 880 40
+f36e a 881 40
+f378 24 882 40
+f39c 51 883 40
+f3ed b 885 40
+f3f8 36 886 40
+f42e 4e 887 40
+f47c 35 888 40
+f4b1 1 888 40
+FUNC f4b2 20 0 std::map<unsigned long long, dwarf2reader::FunctionInfo*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> > >::insert(std::pair<unsigned long long const, dwarf2reader::FunctionInfo*> const&)
+f4b2 c 359 45
+f4be 14 360 45
+FUNC f4d2 19 0 void std::_Destroy<std::string>(std::string*)
+f4d2 c 106 45
+f4de d 107 73
+f4eb 1 107 73
+FUNC f4ec 44 0 void std::__destroy_aux<__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > > >(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, __false_type)
+f4ec c 119 45
+f4f8 2 121 73
+f4fa 13 122 73
+f50d 21 121 73
+f52e 2 122 73
+FUNC f530 28 0 void std::_Destroy<__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > > >(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >)
+f530 c 148 45
+f53c 1c 155 73
+f565 6 82 79
+f56b 2 85 79
+f56d 24 86 79
+f591 2c 85 79
+f5bd b 87 79
+f5c8 b 89 79
+f5d3 12 91 79
+f5e5 b 92 79
+f5f0 13 89 79
+f603 9 92 79
+f618 23 113 79
+f63b 1 113 79
+f648 1b 254 79
+f663 1 254 79
+FUNC f664 430 0 std::vector<std::string, std::allocator<std::string> >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::string const&)
+f664 14 249 47
+f678 14 251 78
+f68c 22 253 78
+f6ae f 255 78
+f6bd 12 256 78
+f6cf 55 257 78
+f724 4b 260 78
+f76f e 264 78
+f77d 15 265 78
+f792 e 266 78
+f7a0 1d 271 78
+f7bd 8 272 78
+f7c5 e 273 78
+f7d3 27 275 78
+f7fa 6 276 78
+f800 55 279 78
+f855 25 284 78
+f87a b 285 78
+f885 4f 286 78
+f8d4 3 284 78
+f8d7 13 279 78
+f8ea e 286 78
+f8f8 4d 298 78
+f945 30 299 78
+f975 12 302 78
+f987 13 303 78
+f99a 23 304 78
+f9bd 3 298 78
+f9c0 13 286 78
+f9d3 b 292 78
+f9de 39 294 78
+fa17 23 295 78
+fa3a 8 296 78
+fa42 16 294 78
+fa58 3 296 78
+fa5b 19 292 78
+fa74 19 298 78
+fa8d 7 304 78
+FUNC fa94 70 0 std::vector<std::string, std::allocator<std::string> >::push_back(std::string const&)
+fa94 c 602 47
+faa0 10 604 71
+fab0 1e 606 71
+face 11 607 71
+fadf 25 610 71
+FUNC fb04 19 0 void std::_Destroy<dwarf2reader::SourceFileInfo>(dwarf2reader::SourceFileInfo*)
+fb04 c 106 47
+fb10 d 107 73
+fb1d 1 107 73
+FUNC fb1e 44 0 void std::__destroy_aux<__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > >(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, __gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, __false_type)
+fb1e c 119 47
+fb2a 2 121 73
+fb2c 13 122 73
+fb3f 21 121 73
+fb60 2 122 73
+FUNC fb62 28 0 void std::_Destroy<__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > > >(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, __gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >)
+fb62 c 148 47
+fb6e 1c 155 73
+fb97 6 82 79
+fb9d 2 85 79
+fb9f 24 86 79
+fbc3 2c 85 79
+fbef b 87 79
+fbfa b 89 79
+fc05 12 91 79
+fc17 b 92 79
+fc22 13 89 79
+fc35 9 92 79
+fc4a 23 113 79
+fc6d 1 113 79
+fc7a 1b 254 79
+fc95 1 254 79
+FUNC fc96 43d 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::SourceFileInfo*, std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> > >, dwarf2reader::SourceFileInfo const&)
+fc96 14 249 47
+fcaa 14 251 78
+fcbe 22 253 78
+fce0 f 255 78
+fcef 12 256 78
+fd01 55 257 78
+fd56 4b 260 78
+fda1 e 264 78
+fdaf 15 265 78
+fdc4 e 266 78
+fdd2 1d 271 78
+fdef 8 272 78
+fdf7 e 273 78
+fe05 27 275 78
+fe2c 6 276 78
+fe32 55 279 78
+fe87 25 284 78
+feac b 285 78
+feb7 4f 286 78
+ff06 3 284 78
+ff09 13 279 78
+ff1c e 286 78
+ff2a 4d 298 78
+ff77 36 299 78
+ffad 12 302 78
+ffbf 13 303 78
+ffd2 2a 304 78
+fffc 3 298 78
+ffff 13 286 78
+10012 b 292 78
+1001d 39 294 78
+10056 23 295 78
+10079 8 296 78
+10081 16 294 78
+10097 3 296 78
+1009a 19 292 78
+100b3 19 298 78
+100cc 7 304 78
+100d3 1 304 78
+FUNC 100d4 70 0 std::vector<dwarf2reader::SourceFileInfo, std::allocator<dwarf2reader::SourceFileInfo> >::push_back(dwarf2reader::SourceFileInfo const&)
+100d4 c 602 47
+100e0 10 604 71
+100f0 1e 606 71
+1010e 11 607 71
+1011f 25 610 71
+FUNC 10144 16c 0 Start
+10144 17 610 71
+1015b 40 49 48
+1019b 6 51 48
+101a1 3f 53 48
+101e0 7 54 48
+101e7 5 55 48
+101ec 2a 58 48
+10216 61 61 48
+10277 7 62 48
+1027e 2 63 48
+10280 29 66 48
+102a9 7 67 48
+FUNC 102b0 108 0 Usage
+102b0 19 70 48
+102c9 30 71 48
+102f9 29 73 48
+10322 30 74 48
+10352 30 75 48
+10382 30 76 48
+103b2 6 77 48
+FUNC 103b8 3af 0 SetupOptions
+103b8 21 80 48
+103d9 8 82 48
+103e1 6 85 48
+103e7 10 86 48
+103f7 2e 88 48
+10425 2f 94 48
+10454 2a 91 48
+1047e 23 95 48
+104a1 3e 97 48
+104df 11 98 48
+104f0 7c 99 48
+1056c c 100 48
+10578 5 99 48
+1057d 3e 101 48
+105bb 11 102 48
+105cc 3e 103 48
+1060a 11 104 48
+1061b 37 106 48
+10652 b 107 48
+1065d c 108 48
+10669 b 113 48
+10674 c 114 48
+10680 14 119 48
+10694 30 120 48
+106c4 b 121 48
+106cf c 122 48
+106db 81 127 48
+1075c b 128 48
+10767 1 128 48
+FUNC 10768 a7 0 main
+10768 13 131 48
+1077b 37 132 48
+107b2 1e 135 48
+107d0 e 136 48
+107de 8 137 48
+107e6 17 139 48
+107fd c 141 48
+10809 6 142 48
+1080f 1 142 48
+10810 c 47 49
+1081c 1a 48 49
+10836 2 49 49
+10838 c 47 49
+10844 1a 48 49
+1085e 2 49 49
+FUNC 10860 cb 0 google_breakpad::FileID::FileIdentifier(unsigned char*)
+10860 f 51 49
+1086f 16 52 49
+10885 6 53 49
+1088b f 54 49
+1089a b 57 49
+108a5 7 62 49
+108ac 2 63 49
+108ae 1c 64 49
+108ca 32 63 49
+108fc b 67 49
+10907 12 68 49
+10919 10 70 49
+10929 2 71 49
+1092b 1 71 49
+FUNC 1092c f2 0 google_breakpad::FileID::MachoIdentifier(int, unsigned char*)
+1092c 10 73 49
+1093c 15 74 49
+10951 20 76 49
+10971 f 77 49
+10980 20 79 49
+109a0 c 80 49
+109ac 69 82 49
+10a15 9 83 49
+FUNC 10a1e fb 0 google_breakpad::FileID::ConvertIdentifierToString(unsigned char const*, char*, int)
+10a1e c 87 49
+10a2a 7 88 49
+10a31 c 89 49
+10a3d 15 90 49
+10a52 12 91 49
+10a64 18 93 49
+10a7c e 94 49
+10a8a 2b 96 49
+10ab5 2b 97 49
+10ae0 17 89 49
+10af7 20 101 49
+10b17 2 102 49
+10b19 1 102 49
+FUNC 10b1a 13 0 NXHostByteOrder
+10b1a c 144 56
+10b26 5 147 56
+10b2b 2 153 56
+10b2d 1 153 56
+10b2e c 56 51
+10b3a 1a 57 51
+10b54 1e 58 51
+10b72 2 59 51
+10b74 c 56 51
+10b80 1a 57 51
+10b9a 1e 58 51
+10bb8 2 59 51
+10bba c 61 51
+10bc6 e 62 51
+10bd4 11 63 51
+10be5 2 64 51
+10be7 1 64 51
+10be8 c 61 51
+10bf4 e 62 51
+10c02 11 63 51
+10c13 2 64 51
+10c15 1 64 51
+FUNC 10c16 477 0 MacFileUtilities::MachoID::UpdateCRC(unsigned char*, unsigned long)
+10c16 c 74 51
+10c22 11 82 51
+10c33 14 83 51
+10c47 5 86 51
+10c4c 9 87 51
+10c55 7 88 51
+10c5c 18b 90 51
+10de7 6 91 51
+10ded 14 89 51
+10e01 23 93 51
+10e24 23 94 51
+10e47 d 86 51
+10e54 f 98 51
+10e63 6 100 51
+10e69 18b 101 51
+10ff4 6 102 51
+10ffa c 99 51
+11006 13 105 51
+11019 8 106 51
+11021 10 104 51
+11031 23 108 51
+11054 23 109 51
+11077 14 110 51
+1108b 2 112 51
+1108d 1 112 51
+FUNC 1108e 2c 0 MacFileUtilities::MachoID::UpdateMD5(unsigned char*, unsigned long)
+1108e c 114 51
+1109a 1e 115 51
+110b8 2 116 51
+FUNC 110ba 2c 0 MacFileUtilities::MachoID::UpdateSHA1(unsigned char*, unsigned long)
+110ba c 118 51
+110c6 1e 119 51
+110e4 2 120 51
+FUNC 110e6 121 0 MacFileUtilities::MachoID::Update(MacFileUtilities::MachoWalker*, unsigned long, unsigned long)
+110e6 f 122 51
+110f5 1b 123 51
+11110 e 129 51
+1111e 5 130 51
+11123 9 131 51
+1112c 7 132 51
+11133 a 133 51
+1113d 6 135 51
+11143 7 136 51
+1114a 35 139 51
+1117f 6c 142 51
+111eb 10 143 51
+111fb a 130 51
+11205 2 145 51
+11207 1 145 51
+FUNC 11208 cf 0 MacFileUtilities::MachoID::UUIDCommand(int, unsigned char*)
+11208 14 147 51
+1121c 25 149 51
+11241 7 151 51
+11248 19 152 51
+11261 9 153 51
+1126a 8 157 51
+11272 1f 158 51
+11291 9 159 51
+1129a 36 162 51
+112d0 7 163 51
+112d7 1 163 51
+FUNC 112d8 224 0 MacFileUtilities::MachoID::IDCommand(int, unsigned char*)
+112d8 15 165 51
+112ed 25 167 51
+11312 7 169 51
+11319 19 170 51
+11332 c 171 51
+1133e c 175 51
+1134a 6 180 51
+11350 7 181 51
+11357 9 182 51
+11360 9 183 51
+11369 28 185 51
+11391 33 186 51
+113c4 1e 185 51
+113e2 10 189 51
+113f2 10 190 51
+11402 10 191 51
+11412 d 192 51
+1141f 10 193 51
+1142f 10 194 51
+1143f 10 195 51
+1144f d 196 51
+1145c 17 197 51
+11473 17 198 51
+1148a 17 199 51
+114a1 14 200 51
+114b5 9 202 51
+114be 36 205 51
+114f4 8 206 51
+FUNC 114fc d1 0 MacFileUtilities::MachoID::Adler32(int)
+114fc 14 208 51
+11510 25 209 51
+11535 27 210 51
+1155c d 211 51
+11569 19 213 51
+11582 9 214 51
+1158b 3b 216 51
+115c6 7 217 51
+115cd 1 217 51
+FUNC 115ce f8 0 MacFileUtilities::MachoID::MD5(int, unsigned char*)
+115ce 14 219 51
+115e2 25 220 51
+11607 27 221 51
+1162e 19 223 51
+11647 19 224 51
+11660 9 225 51
+11669 17 227 51
+11680 9 228 51
+11689 36 231 51
+116bf 7 232 51
+FUNC 116c6 f8 0 MacFileUtilities::MachoID::SHA1(int, unsigned char*)
+116c6 14 234 51
+116da 25 235 51
+116ff 27 236 51
+11726 19 238 51
+1173f 19 239 51
+11758 9 240 51
+11761 17 242 51
+11778 9 243 51
+11781 36 246 51
+117b7 7 247 51
+FUNC 117be 378 0 MacFileUtilities::MachoID::WalkerCB(MacFileUtilities::MachoWalker*, load_command*, long long, bool, void*)
+117be 2b 251 51
+117e9 6 252 51
+117ef e 254 51
+117fd 38 257 51
+11835 f 258 51
+11844 9 260 51
+1184d 17 261 51
+11864 20 266 51
+11884 f 267 51
+11893 d 271 51
+118a0 c 273 51
+118ac 38 274 51
+118e4 f 275 51
+118f3 9 277 51
+118fc 1f 278 51
+1191b 14 282 51
+1192f 2b 283 51
+1195a d 285 51
+11967 19 273 51
+11980 e 287 51
+1198e 38 290 51
+119c6 f 291 51
+119d5 9 293 51
+119de 17 294 51
+119f5 20 299 51
+11a15 f 300 51
+11a24 d 304 51
+11a31 c 306 51
+11a3d 38 307 51
+11a75 f 308 51
+11a84 9 310 51
+11a8d 1f 311 51
+11aac 1a 315 51
+11ac6 39 316 51
+11aff d 318 51
+11b0c 11 306 51
+11b1d 10 323 51
+11b2d 9 324 51
+FUNC 11b36 95 0 MacFileUtilities::MachoID::UUIDWalkerCB(MacFileUtilities::MachoWalker*, load_command*, long long, bool, void*)
+11b36 1e 328 51
+11b54 a 329 51
+11b5e 6 331 51
+11b64 2f 333 51
+11b93 9 335 51
+11b9c 6 337 51
+11ba2 14 338 51
+11bb6 9 340 51
+11bbf a 344 51
+11bc9 2 345 51
+11bcb 1 345 51
+FUNC 11bcc 95 0 MacFileUtilities::MachoID::IDWalkerCB(MacFileUtilities::MachoWalker*, load_command*, long long, bool, void*)
+11bcc 1e 349 51
+11bea a 350 51
+11bf4 6 351 51
+11bfa 2f 353 51
+11c29 9 354 51
+11c32 6 356 51
+11c38 14 357 51
+11c4c 9 359 51
+11c55 a 363 51
+11c5f 2 364 51
+11c61 1 364 51
+FUNC 11c62 1c 0 _OSSwapInt32
+11c62 f 53 55
+11c71 8 55 55
+11c79 3 56 55
+11c7c 2 57 55
+FUNC 11c7e 19 0 NXSwapInt
+11c7e f 52 56
+11c8d 8 54 56
+11c95 2 55 56
+11c97 1 55 56
+FUNC 11c98 13 0 NXHostByteOrder
+11c98 c 144 56
+11ca4 5 147 56
+11ca9 2 153 56
+11cab 1 153 56
+11cac c 52 54
+11cb8 12 54 54
+11cca 1a 55 54
+11ce4 2 56 54
+11ce6 c 52 54
+11cf2 12 54 54
+11d04 1a 55 54
+11d1e 2 56 54
+11d20 c 58 54
+11d2c a 59 54
+11d36 d 60 54
+11d43 2 61 54
+11d45 1 61 54
+11d46 c 58 54
+11d52 a 59 54
+11d5c d 60 54
+11d69 2 61 54
+11d6b 1 61 54
+FUNC 11d6c 37 0 MacFileUtilities::MachoWalker::ValidateCPUType(int)
+11d6c c 63 54
+11d78 6 66 54
+11d7e 8 67 54
+11d86 6 68 54
+11d8c b 69 54
+11d97 7 74 54
+11d9e 3 80 54
+11da1 2 81 54
+11da3 1 81 54
+FUNC 11da4 50 0 MacFileUtilities::MachoWalker::ReadBytes(void*, unsigned long, long long)
+11da4 18 96 54
+11dbc 36 97 54
+11df2 2 98 54
+FUNC 11df4 73 0 MacFileUtilities::MachoWalker::CurrentHeader(mach_header_64*, long long*)
+11df4 c 100 54
+11e00 a 101 54
+11e0a 37 102 54
+11e41 11 103 54
+11e52 9 104 54
+11e5b a 107 54
+11e65 2 108 54
+11e67 1 108 54
+FUNC 11e68 2a6 0 MacFileUtilities::MachoWalker::FindHeader(int, long long&)
+11e68 c 110 54
+11e74 15 111 54
+11e89 31 114 54
+11eba c 115 54
+11ec6 10 117 54
+11ed6 4 120 54
+11eda 14 121 54
+11eee 4 122 54
+11ef2 11 129 54
+11f03 28 124 54
+11f2b c 126 54
+11f37 31 133 54
+11f68 c 134 54
+11f74 14 136 54
+11f88 b 137 54
+11f93 8 139 54
+11f9b c 140 54
+11fa7 10 142 54
+11fb7 c 143 54
+11fc3 10 146 54
+11fd3 31 148 54
+12004 c 149 54
+12010 f 151 54
+1201f 14 152 54
+12033 16 154 54
+12049 c 158 54
+12055 31 159 54
+12086 9 160 54
+1208f f 162 54
+1209e 1c 163 54
+120ba 8 165 54
+120c2 10 166 54
+120d2 9 167 54
+120db 16 170 54
+120f1 11 158 54
+12102 a 174 54
+1210c 2 175 54
+FUNC 1210e 109 0 MacFileUtilities::MachoWalker::WalkHeaderCore(long long, unsigned int, bool)
+1210e 1e 224 54
+1212c c 225 54
+12138 2f 227 54
+12167 c 228 54
+12173 6 230 54
+12179 14 231 54
+1218d 5b 234 54
+121e8 12 237 54
+121fa 11 225 54
+1220b a 240 54
+12215 2 241 54
+12217 1 241 54
+FUNC 12218 10e 0 MacFileUtilities::MachoWalker::WalkHeader64AtOffset(long long)
+12218 18 203 54
+12230 2f 205 54
+1225f c 206 54
+1226b e 208 54
+12279 6 209 54
+1227f 14 210 54
+12293 9 212 54
+1229c a 213 54
+122a6 f 214 54
+122b5 15 215 54
+122ca 2b 216 54
+122f5 a 217 54
+122ff a 218 54
+12309 11 219 54
+1231a a 220 54
+12324 2 221 54
+FUNC 12326 143 0 MacFileUtilities::MachoWalker::WalkHeaderAtOffset(long long)
+12326 18 177 54
+1233e 2f 179 54
+1236d c 180 54
+12379 e 182 54
+12387 6 183 54
+1238d 14 184 54
+123a1 2e 189 54
+123cf 7 190 54
+123d6 9 192 54
+123df a 193 54
+123e9 f 194 54
+123f8 15 195 54
+1240d 2b 196 54
+12438 a 197 54
+12442 a 198 54
+1244c 11 199 54
+1245d a 200 54
+12467 2 201 54
+12469 1 201 54
+FUNC 1246a 99 0 MacFileUtilities::MachoWalker::WalkHeader(int)
+1246a c 83 54
+12476 15 84 54
+1248b 1d 86 54
+124a8 d 87 54
+124b5 21 88 54
+124d6 21 90 54
+124f7 a 93 54
+12501 2 94 54
+12503 1 94 54
+FUNC 12504 1c 0 _OSSwapInt32
+12504 f 53 55
+12513 8 55 55
+1251b 3 56 55
+1251e 2 57 55
+FUNC 12520 2b 0 _OSSwapInt64
+12520 12 64 55
+12532 11 69 55
+12543 6 70 55
+12549 2 71 55
+1254b 1 71 55
+FUNC 1254c 19 0 NXSwapLong
+1254c f 61 56
+1255b 8 63 56
+12563 2 64 56
+12565 1 64 56
+FUNC 12566 1f 0 NXSwapLongLong
+12566 12 70 56
+12578 b 72 56
+12583 2 73 56
+12585 1 73 56
+FUNC 12586 32 0 breakpad_swap_uuid_command(breakpad_uuid_command*, NXByteOrder)
+12586 c 37 57
+12592 11 39 57
+125a3 13 40 57
+125b6 2 41 57
+FUNC 125b8 da 0 breakpad_swap_segment_command_64(segment_command_64*, NXByteOrder)
+125b8 c 44 57
+125c4 11 46 57
+125d5 13 47 57
+125e8 17 49 57
+125ff 17 50 57
+12616 17 51 57
+1262d 17 52 57
+12644 13 54 57
+12657 13 55 57
+1266a 13 56 57
+1267d 13 57 57
+12690 2 58 57
+FUNC 12692 a4 0 breakpad_swap_mach_header_64(mach_header_64*, NXByteOrder)
+12692 c 61 57
+1269e 11 63 57
+126af 13 64 57
+126c2 13 65 57
+126d5 13 66 57
+126e8 13 67 57
+126fb 13 68 57
+1270e 13 69 57
+12721 13 70 57
+12734 2 71 57
+FUNC 12736 1d1 0 breakpad_swap_section_64(section_64*, unsigned int, NXByteOrder)
+12736 d 75 57
+12743 c 77 57
+1274f 33 78 57
+12782 33 79 57
+127b5 2d 81 57
+127e2 2d 82 57
+1280f 2d 83 57
+1283c 2d 84 57
+12869 2d 85 57
+12896 2d 86 57
+128c3 2d 87 57
+128f0 11 77 57
+12901 6 89 57
+12907 1 89 57
+12908 12 9 58
+1291a 4f 11 58
+12969 2 12 58
+1296b 1 12 58
+1296c 12 9 58
+1297e 4f 11 58
+129cd 2 12 58
+129cf 1 12 58
+129d0 13 14 58
+129e3 2a 14 58
+12a0d 1 14 58
+12a0e 13 14 58
+12a21 2a 14 58
+12a4b 1 14 58
+12a4c 13 14 58
+12a5f 2a 14 58
+12a89 1 14 58
+FUNC 12a8a bb 0 dwarf2reader::ByteReader::SetOffsetSize(unsigned char)
+12a8a 19 16 58
+12aa3 a 17 58
+12aad 48 18 58
+12af5 6 19 58
+12afb 23 20 58
+12b1e 21 22 58
+12b3f 6 24 58
+12b45 1 24 58
+FUNC 12b46 bb 0 dwarf2reader::ByteReader::SetAddressSize(unsigned char)
+12b46 19 26 58
+12b5f a 27 58
+12b69 48 28 58
+12bb1 6 29 58
+12bb7 23 30 58
+12bda 21 32 58
+12bfb 6 34 58
+12c01 1 34 58
+FUNC 12c02 a2 0 dwarf2reader::ByteReader::ReadFourBytes(char const*) const
+12c02 c 24 59
+12c0e c 25 64
+12c1a d 26 64
+12c27 f 27 64
+12c36 f 28 64
+12c45 b 29 64
+12c50 27 30 64
+12c77 2b 32 64
+12ca2 2 34 64
+FUNC 12ca4 40e 0 dwarf2reader::ByteReader::ReadEightBytes(char const*) const
+12ca4 11 36 59
+12cb5 1a 37 64
+12ccf 1b 38 64
+12cea 1d 39 64
+12d07 1d 40 64
+12d24 1d 41 64
+12d41 1d 42 64
+12d5e 1d 43 64
+12d7b 1d 44 64
+12d98 f 45 64
+12da7 18f 47 64
+12f36 172 50 64
+130a8 a 52 64
+130b2 2 52 64
+FUNC 130b4 a6 0 ReadInitialLength
+130b4 15 29 60
+130c9 18 30 60
+130e1 6 31 60
+130e7 d 35 60
+130f4 13 36 60
+13107 9 37 60
+13110 1a 38 60
+1312a 13 40 60
+1313d 9 41 60
+13146 12 43 60
+13158 2 44 60
+1315a 1f 47 60
+13179 65 50 60
+131de 1f 47 60
+131fd 65 50 60
+FUNC 13262 393 0 dwarf2reader::CompilationUnit::SkipAttribute(char const*, dwarf2reader::DwarfForm)
+13262 14 133 60
+13276 82 136 60
+132f8 1f 139 60
+13317 a 140 60
+13321 21 141 60
+13342 c 147 60
+1334e e 151 60
+1335c e 155 60
+1336a e 159 60
+13378 27 162 60
+1339f 1c 166 60
+133bb 10 167 60
+133cb 1c 171 60
+133e7 10 172 60
+133f7 1e 175 60
+13415 56 180 60
+1346b d 181 60
+13478 1e 182 60
+13496 11 183 60
+134a7 1e 184 60
+134c5 24 189 60
+134e9 26 192 60
+1350f 23 195 60
+13532 22 198 60
+13554 15 199 60
+13569 1b 203 60
+13584 30 206 60
+135b4 30 208 60
+135e4 a 209 60
+135ee 7 210 60
+135f5 1 210 60
+FUNC 135f6 29b 0 dwarf2reader::CompilationUnit::ReadHeader()
+135f6 14 217 60
+1360a 9 218 60
+13613 4e 221 60
+13661 17 223 60
+13678 a 224 60
+13682 f 225 60
+13691 4e 227 60
+136df 1e 228 60
+136fd 6 229 60
+13703 5e 231 60
+13761 1e 232 60
+1377f 18 233 60
+13797 4c 235 60
+137e3 1d 236 60
+13800 1c 237 60
+1381c 5 238 60
+13821 9 240 60
+1382a 60 245 60
+1388a 7 247 60
+13891 1 247 60
+FUNC 13892 a57 0 dwarf2reader::CompilationUnit::ProcessAttribute(unsigned long long, char const*, dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm)
+13892 24 299 60
+138b6 8a 302 60
+13940 1f 307 60
+1395f a 308 60
+13969 36 309 60
+1399f 5b 316 60
+139fa c 317 60
+13a06 5b 322 60
+13a61 e 323 60
+13a6f 55 328 60
+13ac4 e 329 60
+13ad2 55 334 60
+13b27 e 335 60
+13b35 6 338 60
+13b3b 9a 340 60
+13bd5 33 341 60
+13c08 25 340 60
+13c2d 5c 348 60
+13c89 10 349 60
+13c99 5c 354 60
+13cf5 10 355 60
+13d05 55 359 60
+13d5a 1e 360 60
+13d78 56 365 60
+13dce d 366 60
+13ddb 55 368 60
+13e30 1e 369 60
+13e4e 11 370 60
+13e5f 55 372 60
+13eb4 1e 373 60
+13ed2 29 378 60
+13efb 4a 380 60
+13f45 f 381 60
+13f54 29 385 60
+13f7d 4c 387 60
+13fc9 11 388 60
+13fda 1b 392 60
+13ff5 4c 394 60
+14041 11 395 60
+14052 22 399 60
+14074 4e 401 60
+140c2 15 402 60
+140d7 3c 406 60
+14113 1b 408 60
+1412e 54 409 60
+14182 f 411 60
+14191 9a 413 60
+1422b 24 414 60
+1424f 25 413 60
+14274 30 418 60
+142a4 30 420 60
+142d4 a 421 60
+142de b 422 60
+142e9 1 422 60
+142ea 1f 489 60
+14309 3a 491 60
+14343 a 492 60
+1434d 6 493 60
+14353 1 493 60
+14354 1f 489 60
+14373 3a 491 60
+143ad a 492 60
+143b7 6 493 60
+143bd 1 493 60
+FUNC 143be b5 0 dwarf2reader::CompilationUnit::ProcessDIE(unsigned long long, char const*, dwarf2reader::CompilationUnit::Abbrev const&)
+143be 19 426 60
+143d7 13 427 60
+143ea 46 430 60
+14430 3a 427 60
+1446a 3 432 60
+1446d 6 433 60
+14473 1 433 60
+FUNC 14474 85 0 dwarf2reader::CompilationUnit::SkipDIE(char const*, dwarf2reader::CompilationUnit::Abbrev const&)
+14474 c 122 60
+14480 13 123 60
+14493 27 126 60
+144ba 3a 123 60
+144f4 3 128 60
+144f7 2 129 60
+144f9 1 129 60
+FUNC 144fa be4 0 dwarf2reader::LineInfo::ProcessOneOpcode(dwarf2reader::ByteReader*, dwarf2reader::LineInfoHandler*, dwarf2reader::LineInfoHeader const&, char const*, dwarf2reader::LineStateMachine*, unsigned long*, unsigned long, bool*)
+144fa 18 593 60
+14512 a 594 60
+1451c 18 596 60
+14534 8 597 60
+1453c 5 598 60
+14541 19 602 60
+1455a f 603 60
+14569 50 605 60
+145b9 46 607 60
+145ff e0 610 60
+146df 6 612 60
+146e5 22 615 60
+14707 22 616 60
+14729 7 617 60
+14730 b 618 60
+1473b f 619 60
+1474a 5a 623 60
+147a4 7 625 60
+147ab b 626 60
+147b6 f 627 60
+147c5 28 631 60
+147ed e 632 60
+147fb 144 635 60
+1493f 6 637 60
+14945 9e 640 60
+149e3 5 642 60
+149e8 22 644 60
+14a0a e 645 60
+14a18 1c 646 60
+14a34 2b 652 60
+14a5f b 653 60
+14a6a 22 658 60
+14a8c e 659 60
+14a9a 8 660 60
+14aa2 5 662 60
+14aa7 22 664 60
+14ac9 e 665 60
+14ad7 9 666 60
+14ae0 5 668 60
+14ae5 12 670 60
+14af7 5 672 60
+14afc 7 674 60
+14b03 5 676 60
+14b08 16 678 60
+14b1e 9 679 60
+14b27 d9 682 60
+14c00 6 684 60
+14c06 1f 687 60
+14c25 5 689 60
+14c2a 40 693 60
+14c6a d6 696 60
+14d40 6 698 60
+14d46 1c 701 60
+14d62 5 703 60
+14d67 1f 706 60
+14d86 d 707 60
+14d93 13 708 60
+14da6 26 710 60
+14dcc 5 711 60
+14dd1 50 713 60
+14e21 7 715 60
+14e28 b 716 60
+14e33 f 717 60
+14e42 18 725 60
+14e5a f 726 60
+14e69 5 728 60
+14e6e 6 730 60
+14e74 28 732 60
+14e9c d 733 60
+14ea9 22 735 60
+14ecb e 736 60
+14ed9 22 739 60
+14efb e 740 60
+14f09 22 743 60
+14f2b e 744 60
+14f39 a 746 60
+14f43 fd 748 60
+15040 a 758 60
+1504a 9 759 60
+15053 1c 761 60
+1506f d 762 60
+1507c e 763 60
+1508a 2e 759 60
+150b8 b 769 60
+150c3 10 770 60
+150d3 b 771 60
+FUNC 150de 14b 0 dwarf2reader::LineInfo::ReadLines()
+150de e 773 60
+150ec 9 778 60
+150f5 17 782 60
+1510c 8 783 60
+15114 6 785 60
+1511a 9 787 60
+15123 5 788 60
+15128 19 789 60
+15141 5 790 60
+15146 4a 793 60
+15190 6 794 60
+15196 4a 796 60
+151e0 a 797 60
+151ea f 790 60
+151f9 15 788 60
+1520e 14 801 60
+15222 7 802 60
+15229 1 802 60
+FUNC 1522a 4fd 0 dwarf2reader::CompilationUnit::ReadAbbrevs()
+1522a 18 60 60
+15242 e 61 60
+15250 58 65 60
+152a8 38 66 60
+152e0 44 65 60
+15324 2a 66 60
+1534e 45 68 60
+15393 16 69 60
+153a9 1d 75 60
+153c6 6 76 60
+153cc 40 77 60
+1540c b 80 60
+15417 1f 82 60
+15436 e 84 60
+15444 6 77 60
+1544a 1f 68 60
+15469 a 84 60
+15473 1d 79 60
+15490 6 86 60
+15496 a 87 60
+154a0 3d 89 60
+154dd 1f 90 60
+154fc a 91 60
+15506 6 92 60
+1550c 3d 94 60
+15549 1d 95 60
+15566 5 96 60
+1556b 3d 98 60
+155a8 1f 101 60
+155c7 a 102 60
+155d1 3d 104 60
+1560e 1f 105 60
+1562d a 106 60
+15637 c 107 60
+15643 6 111 60
+15649 6 112 60
+1564f 32 113 60
+15681 47 115 60
+156c8 30 116 60
+156f8 24 79 60
+1571c b 118 60
+15727 1 118 60
+FUNC 15728 5dc 0 dwarf2reader::LineInfo::ReadHeader()
+15728 18 503 60
+15740 9 504 60
+15749 17 508 60
+15760 a 510 60
+1576a f 511 60
+15779 60 512 60
+157d9 44 516 60
+1581d 1e 518 60
+1583b 6 519 60
+15841 1e 521 60
+1585f 18 522 60
+15877 1d 524 60
+15894 5 525 60
+15899 20 527 60
+158b9 5 528 60
+158be c 530 60
+158ca 5 531 60
+158cf 1d 533 60
+158ec 5 534 60
+158f1 1d 536 60
+1590e 5 537 60
+15913 45 539 60
+15958 1f 540 60
+15977 19 541 60
+15990 15 542 60
+159a5 1f 539 60
+159c4 30 543 60
+159f4 5 544 60
+159f9 14 542 60
+15a0d e 548 60
+15a1b 7 549 60
+15a22 5 550 60
+15a27 6 551 60
+15a2d 8b 552 60
+15ab8 28 553 60
+15ae0 5 554 60
+15ae5 16 550 60
+15afb 25 552 60
+15b20 5 557 60
+15b25 e 560 60
+15b33 7 561 60
+15b3a 5 563 60
+15b3f 6 564 60
+15b45 28 565 60
+15b6d 22 567 60
+15b8f a 568 60
+15b99 22 570 60
+15bbb a 571 60
+15bc5 22 573 60
+15be7 a 574 60
+15bf1 ba 576 60
+15cab 5 577 60
+15cb0 16 563 60
+15cc6 25 576 60
+15ceb 5 580 60
+15cf0 9 582 60
+15cf9 b 583 60
+FUNC 15d04 3d 0 dwarf2reader::LineInfo::Start()
+15d04 c 495 60
+15d10 b 496 60
+15d1b b 497 60
+15d26 19 498 60
+15d3f 2 499 60
+15d41 1 499 60
+FUNC 15d42 304 0 dwarf2reader::CompilationUnit::ProcessDIEs()
+15d42 11 435 60
+15d53 9 436 60
+15d5c 9 441 60
+15d65 17 445 60
+15d7c 8 446 60
+15d84 6 448 60
+15d8a 6c 453 60
+15df6 8 455 60
+15dfe 16 453 60
+15e14 3 455 60
+15e17 2f 453 60
+15e46 29 458 60
+15e6f 22 460 60
+15e91 a 462 60
+15e9b a 465 60
+15ea5 1e 466 60
+15ec3 13 467 60
+15ed6 2b 468 60
+15f01 18 472 60
+15f19 9 473 60
+15f22 42 474 60
+15f64 1e 475 60
+15f82 2a 477 60
+15fac b 480 60
+15fb7 1e 481 60
+15fd5 26 483 60
+15ffb 1d 455 60
+16018 24 485 60
+1603c a 486 60
+FUNC 16046 35f 0 dwarf2reader::CompilationUnit::Start()
+16046 18 249 60
+1605e 58 251 60
+160b6 35 252 60
+160eb 32 251 60
+1611d 2a 252 60
+16147 20 255 60
+16167 37 256 60
+1619e b 259 60
+161a9 f 264 60
+161b8 17 265 60
+161cf c 266 60
+161db a 268 60
+161e5 95 271 60
+1627a 11 276 60
+1628b b 279 60
+16296 58 282 60
+162ee 2f 283 60
+1631d 32 282 60
+1634f 14 284 60
+16363 1a 285 60
+1637d b 289 60
+16388 12 291 60
+1639a b 292 60
+163a5 1 292 60
+FUNC 163a6 3a 0 std::fill(unsigned char*, unsigned char*, unsigned char const&)
+163a6 c 573 61
+163b2 9 576 61
+163bb 23 577 61
+163de 2 578 61
+FUNC 163e0 33 0 std::__deque_buf_size(unsigned long)
+163e0 c 83 62
+163ec 27 84 62
+16413 1 84 62
+FUNC 16414 18 0 dwarf2reader::ByteReader::OffsetSize() const
+16414 c 38 63
+16420 c 38 63
+FUNC 1642c 18 0 dwarf2reader::ByteReader::AddressSize() const
+1642c c 41 63
+16438 c 41 63
+FUNC 16444 17 0 dwarf2reader::ByteReader::ReadOneByte(char const*) const
+16444 c 10 64
+16450 9 11 64
+16459 2 12 64
+1645b 1 12 64
+FUNC 1645c 63 0 dwarf2reader::ByteReader::ReadTwoBytes(char const*) const
+1645c c 14 64
+16468 d 15 64
+16475 e 16 64
+16483 b 17 64
+1648e 17 18 64
+164a5 18 20 64
+164bd 2 22 64
+164bf 1 22 64
+FUNC 164c0 98 0 dwarf2reader::ByteReader::ReadUnsignedLEB128(char const*, unsigned long*) const
+164c0 e 59 64
+164ce e 60 64
+164dc 7 61 64
+164e3 7 62 64
+164ea e 66 64
+164f8 5 67 64
+164fd 38 69 64
+16535 6 71 64
+1653b 8 65 64
+16543 8 75 64
+1654b 6 77 64
+16551 7 78 64
+FUNC 16558 ee 0 dwarf2reader::ByteReader::ReadSignedLEB128(char const*, unsigned long*) const
+16558 e 84 64
+16566 e 85 64
+16574 7 86 64
+1657b 7 87 64
+16582 e 91 64
+16590 5 92 64
+16595 44 93 64
+165d9 6 94 64
+165df 8 90 64
+165e7 14 97 64
+165fb 36 98 64
+16631 8 99 64
+16639 6 100 64
+1663f 7 101 64
+FUNC 16646 a2 0 dwarf2reader::ByteReader::ReadOffset(char const*) const
+16646 13 103 64
+16659 3f 104 64
+16698 4a 105 64
+166e2 6 106 64
+FUNC 166e8 a2 0 dwarf2reader::ByteReader::ReadAddress(char const*) const
+166e8 13 108 64
+166fb 3f 109 64
+1673a 4a 110 64
+16784 6 111 64
+FUNC 1678a 61 0 dwarf2reader::LineStateMachine::Reset(bool)
+1678a 12 12 65
+1679c 9 13 65
+167a5 11 14 65
+167b6 11 15 65
+167c7 a 16 65
+167d1 a 17 65
+167db 7 18 65
+167e2 7 19 65
+167e9 2 20 65
+167eb 1 20 65
+FUNC 167ec 20 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator!=(std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > const&) const
+167ec c 253 66
+167f8 14 254 66
+FUNC 1680c 25 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator++(int)
+1680c c 226 66
+16818 8 228 66
+16820 c 229 66
+1682c 5 230 66
+16831 1 230 66
+FUNC 16832 16 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator->() const
+16832 c 215 66
+1683e a 216 66
+16848 c 190 67
+16854 a 190 67
+FUNC 1685e 13 0 std::auto_ptr<std::stack<unsigned long long, std::deque<unsigned long long, std::allocator<unsigned long long> > > >::operator->() const
+1685e c 283 67
+1686a 7 286 67
+16871 1 286 67
+16872 c 65 68
+1687e 2 65 68
+16880 c 97 69
+1688c d 97 69
+16899 1 97 69
+1689a c 99 69
+168a6 14 100 69
+168ba c 97 69
+168c6 d 97 69
+168d3 1 97 69
+168d4 c 84 70
+168e0 17 85 70
+168f7 1 85 70
+FUNC 168f8 2d 0 std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> std::make_pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>(dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm)
+168f8 c 144 70
+16904 21 145 70
+16925 1 145 70
+16926 c 202 66
+16932 a 203 66
+FUNC 1693c 25 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::begin() const
+1693c c 588 70
+16948 19 589 66
+16961 1 589 66
+FUNC 16962 23 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::end() const
+16962 c 605 70
+1696e 17 606 66
+16985 1 606 66
+16986 c 65 68
+16992 2 65 68
+16994 c 72 68
+169a0 2 72 68
+169a2 c 97 69
+169ae d 97 69
+169bb 1 97 69
+169bc c 105 69
+169c8 d 105 69
+169d5 1 105 69
+169d6 c 105 69
+169e2 d 105 69
+169ef 1 105 69
+169f0 c 67 68
+169fc 2 67 68
+169fe c 99 69
+16a0a 14 100 69
+16a1e c 99 69
+16a2a 14 100 69
+16a3e c 129 62
+16a4a 30 131 62
+16a7a c 65 68
+16a86 2 65 68
+16a88 c 72 68
+16a94 2 72 68
+16a96 c 97 69
+16aa2 d 97 69
+16aaf 1 97 69
+16ab0 c 105 69
+16abc d 105 69
+16ac9 1 105 69
+16aca c 105 69
+16ad6 d 105 69
+16ae3 1 105 69
+16ae4 c 67 68
+16af0 2 67 68
+16af2 c 99 69
+16afe 14 100 69
+16b12 c 99 69
+16b1e 14 100 69
+FUNC 16b32 2b 0 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::get_allocator() const
+16b32 10 93 71
+16b42 1b 94 71
+16b5d 1 94 71
+16b6a 7 614 72
+16b71 1 614 72
+16b72 c 80 71
+16b7e d 80 71
+16b8b 1 80 71
+16b98 2 107 68
+FUNC 16b9a 2d 0 void std::_Destroy<unsigned char*, std::allocator<unsigned char> >(unsigned char*, unsigned char*, std::allocator<unsigned char>)
+16b9a c 171 73
+16ba6 2 173 73
+16ba8 12 174 73
+16bba b 173 73
+16bc5 2 174 73
+16bc7 1 174 73
+16bc8 c 84 71
+16bd4 2f 85 71
+16c03 2 86 71
+16c05 1 86 71
+16c06 c 96 71
+16c12 12 97 71
+16c24 2 98 71
+FUNC 16c26 1f 0 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_init()
+16c26 c 338 73
+16c32 8 340 66
+16c3a b 341 66
+16c45 1 341 66
+16c46 c 105 69
+16c52 d 105 69
+16c5f 1 105 69
+16c60 c 125 66
+16c6c a 126 66
+FUNC 16c76 25 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::begin()
+16c76 c 579 73
+16c82 19 580 66
+16c9b 1 580 66
+FUNC 16c9c 23 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::end()
+16c9c c 597 73
+16ca8 17 597 66
+16cbf 1 597 66
+16cc0 c 603 72
+16ccc c 603 72
+FUNC 16cd8 2b 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::begin() const
+16cd8 c 342 73
+16ce4 1f 343 71
+16d03 1 343 71
+FUNC 16d04 2c 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::end() const
+16d04 c 360 73
+16d10 20 361 71
+16d3c 5 666 72
+16d41 1 666 72
+16d4f 31 759 72
+FUNC 16d80 3c 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::size() const
+16d80 c 402 73
+16d8c 30 403 71
+16dbc c 603 72
+16dc8 c 603 72
+FUNC 16dd4 23 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::begin()
+16dd4 c 333 73
+16de0 17 334 71
+16df7 1 334 71
+16e04 33 654 72
+16e37 1 654 72
+FUNC 16e38 26 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::end()
+16e38 c 351 73
+16e44 1a 352 71
+16e6a 7 614 72
+16e71 1 614 72
+FUNC 16e72 42 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::operator[](unsigned long)
+16e72 c 494 73
+16e7e 36 495 71
+FUNC 16eb4 13 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::max_size() const
+16eb4 c 407 73
+16ec0 7 408 71
+16ec7 1 408 71
+16ed4 5 666 72
+16ed9 1 666 72
+16ee6 d 623 72
+16ef3 5 624 72
+16ef8 c 382 62
+16f04 d 382 62
+16f11 1 382 62
+FUNC 16f12 2b 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::get_allocator() const
+16f12 10 360 73
+16f22 1b 361 62
+16f3d 1 361 62
+FUNC 16f3e 2d 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::get_allocator() const
+16f3e 10 764 73
+16f4e 1d 765 62
+16f6b 1 765 62
+FUNC 16f6c 13 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::operator*() const
+16f6c c 134 73
+16f78 7 135 62
+16f7f 1 135 62
+16f8c 2 107 68
+16f8e c 129 62
+16f9a 30 131 62
+FUNC 16fca 2c 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::end() const
+16fca 10 799 73
+16fda 1c 800 62
+FUNC 16ff6 2c 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::begin() const
+16ff6 10 781 73
+17006 1c 782 62
+FUNC 17022 2e 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::end()
+17022 10 790 73
+17032 1e 791 62
+FUNC 17050 3c 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_range_check(unsigned long) const
+17050 13 515 73
+17063 15 517 71
+17078 14 518 71
+FUNC 1708c 32 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::at(unsigned long)
+1708c c 534 73
+17098 12 536 71
+170aa 14 537 71
+170ca 2e 104 68
+170f8 c 84 71
+17104 2f 85 71
+17133 2 86 71
+17135 1 86 71
+17136 c 96 71
+17142 12 97 71
+17154 2 98 71
+17156 c 603 72
+17162 c 603 72
+FUNC 1716e 23 0 std::vector<unsigned char, std::allocator<unsigned char> >::begin()
+1716e c 333 73
+1717a 17 334 71
+17191 1 334 71
+1719e 27 654 72
+171c5 1 654 72
+FUNC 171c6 42 0 std::vector<unsigned char, std::allocator<unsigned char> >::operator[](unsigned long)
+171c6 c 494 73
+171d2 36 495 71
+FUNC 17208 26 0 std::vector<unsigned char, std::allocator<unsigned char> >::end()
+17208 c 351 73
+17214 1a 352 71
+1723a d 94 68
+17247 1 94 68
+FUNC 17248 2f 0 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_M_deallocate(unsigned char*, unsigned long)
+17248 c 120 73
+17254 6 122 71
+1725a 1d 123 71
+17277 1 123 71
+17278 c 108 71
+17284 3a 109 71
+172be c 188 71
+172ca 12 189 71
+172dc 2 190 71
+172de c 272 71
+172ea 4b 273 71
+17335 1 273 71
+17336 13 62 74
+17349 10 62 74
+17359 a 63 74
+17363 25 64 74
+17388 1a 66 74
+173a2 13 62 74
+173b5 10 62 74
+173c5 a 63 74
+173cf 25 64 74
+173f4 1a 66 74
+1740e c 188 71
+1741a 12 189 71
+1742c 2 190 71
+1743b 31 759 72
+1746c c 65 68
+17478 2 65 68
+1747a c 103 69
+17486 d 103 69
+17493 1 103 69
+FUNC 17494 2d 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::get_allocator() const
+17494 10 570 74
+174a4 1d 571 66
+174c1 1 571 66
+174ce 2e 104 68
+FUNC 174fc 20 0 std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator!=(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > const&) const
+174fc c 172 74
+17508 14 173 66
+FUNC 1751c 1d 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator++()
+1751c c 219 74
+17528 c 221 66
+17534 5 222 66
+17539 1 222 66
+FUNC 1753a 1d 0 std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator++()
+1753a c 138 74
+17546 c 140 66
+17552 5 141 66
+17557 1 141 66
+FUNC 17558 16 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator*() const
+17558 c 211 74
+17564 a 212 66
+FUNC 1756e 16 0 std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator*() const
+1756e c 130 74
+1757a a 131 66
+FUNC 17584 20 0 std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >::operator==(std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > const&) const
+17584 c 249 74
+17590 14 250 66
+FUNC 175a4 35 0 bool __gnu_cxx::operator!=<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > > const&, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > > const&)
+175a4 d 699 74
+175b1 28 700 72
+175d9 1 700 72
+FUNC 175da 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+175da c 171 74
+175e6 2 173 73
+175e8 1a 174 73
+17602 21 173 73
+17623 2 174 73
+17625 1 174 73
+17626 c 127 62
+17632 29 127 62
+1765b 1 127 62
+1765c c 388 62
+17668 41 389 62
+176a9 2 390 62
+176ab 1 390 62
+176b8 d 94 68
+176c5 1 94 68
+FUNC 176c6 20 0 bool std::operator==<unsigned long long, unsigned long long&, unsigned long long*>(std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&)
+176c6 c 243 74
+176d2 14 244 62
+FUNC 176e6 26 0 bool std::operator!=<unsigned long long, unsigned long long&, unsigned long long*>(std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&)
+176e6 c 256 74
+176f2 1a 257 62
+FUNC 1770c 1a 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::_S_buffer_size()
+1770c c 106 74
+17718 e 107 62
+FUNC 17726 3e 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::_M_set_node(unsigned long long**)
+17726 d 229 74
+17733 9 231 62
+1773c b 232 62
+17747 1d 233 62
+FUNC 17764 50 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::operator++()
+17764 c 142 74
+17770 d 144 62
+1777d f 145 62
+1778c 18 147 62
+177a4 b 148 62
+177af 5 150 62
+FUNC 177b4 4b 0 void std::_Destroy<std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, std::allocator<unsigned long long> >(std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, std::allocator<unsigned long long>)
+177b4 c 171 74
+177c0 2 173 73
+177c2 1a 174 73
+177dc 21 173 73
+177fd 2 174 73
+177ff 1 174 73
+FUNC 17800 50 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::operator--()
+17800 c 162 74
+1780c f 164 62
+1781b 18 166 62
+17833 b 167 62
+1783e d 169 62
+1784b 5 170 62
+FUNC 17850 39 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::back()
+17850 c 988 74
+1785c 15 990 62
+17871 b 991 62
+1787c d 992 62
+17889 1 992 62
+FUNC 1788a 19 0 std::stack<unsigned long long, std::deque<unsigned long long, std::allocator<unsigned long long> > >::top()
+1788a c 163 75
+17896 d 166 75
+178a3 1 166 75
+FUNC 178a4 66 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>::difference_type std::operator-<unsigned long long, unsigned long long&, unsigned long long*, unsigned long long&, unsigned long long*>(std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> const&)
+178a4 d 328 75
+178b1 59 333 62
+FUNC 1790a 26 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::size() const
+1790a c 840 75
+17916 1a 841 62
+1793c 36 662 72
+1797e 23 650 72
+179a1 1 650 72
+179a2 c 67 68
+179ae 2 67 68
+179b0 c 99 69
+179bc 14 100 69
+179d0 c 303 66
+179dc 12 304 66
+179ee 2 305 66
+179f0 c 326 66
+179fc 2f 327 66
+17a2b d 328 66
+17a38 c 457 66
+17a44 14 458 66
+17a58 c 211 74
+17a64 2d 211 74
+17a91 1 211 74
+17a9e 7 98 68
+17aa5 1 98 68
+17ab2 1d 85 68
+17acf 5 86 68
+17ad4 17 88 68
+17aeb 1 88 68
+FUNC 17aec 2a 0 std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_allocate(unsigned long)
+17aec c 116 75
+17af8 1e 117 71
+17b22 d 94 68
+17b2f 1 94 68
+FUNC 17b30 34 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_deallocate_node(unsigned long long*)
+17b30 c 402 75
+17b3c 28 403 62
+FUNC 17b64 38 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_destroy_nodes(unsigned long long**, unsigned long long**)
+17b64 c 504 75
+17b70 8 506 62
+17b78 14 507 62
+17b8c e 506 62
+17b9a 2 507 62
+FUNC 17b9c 62 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::_M_pop_back_aux()
+17b9c c 391 76
+17ba8 15 393 76
+17bbd 1b 394 76
+17bd8 f 395 76
+17be7 17 396 76
+FUNC 17bfe 4f 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::pop_back()
+17bfe c 1081 76
+17c0a 10 1083 62
+17c1a f 1086 62
+17c29 17 1087 62
+17c40 d 1090 62
+17c4d 1 1090 62
+FUNC 17c4e 19 0 std::stack<unsigned long long, std::deque<unsigned long long, std::allocator<unsigned long long> > >::pop()
+17c4e c 205 76
+17c5a d 208 75
+17c67 1 208 75
+17c68 c 72 68
+17c74 2 72 68
+17c76 c 105 69
+17c82 d 105 69
+17c8f 1 105 69
+17c90 c 603 72
+17c9c c 603 72
+FUNC 17ca8 2b 0 std::vector<unsigned char, std::allocator<unsigned char> >::begin() const
+17ca8 c 342 76
+17cb4 1f 343 71
+17cd3 1 343 71
+FUNC 17cd4 2c 0 std::vector<unsigned char, std::allocator<unsigned char> >::end() const
+17cd4 c 360 76
+17ce0 20 361 71
+17d0c 5 666 72
+17d11 1 666 72
+17d1f 28 759 72
+17d47 1 759 72
+FUNC 17d48 3c 0 std::vector<unsigned char, std::allocator<unsigned char> >::size() const
+17d48 c 402 76
+17d54 30 403 71
+17d90 d 623 72
+17d9d 5 624 72
+17dae 5 666 72
+17db3 1 666 72
+FUNC 17db4 35 0 bool __gnu_cxx::operator!=<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > > const&, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > > const&)
+17db4 d 699 76
+17dc1 28 700 72
+17de9 1 700 72
+FUNC 17dea 4b 0 void std::_Destroy<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<unsigned char> >(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<unsigned char>)
+17dea c 171 76
+17df6 2 173 73
+17df8 1a 174 73
+17e12 21 173 73
+17e33 2 174 73
+17e35 1 174 73
+17e43 28 759 72
+17e6b 1 759 72
+17e78 2a 662 72
+FUNC 17ea2 13 0 std::vector<unsigned char, std::allocator<unsigned char> >::max_size() const
+17ea2 c 407 76
+17eae 7 408 71
+17eb5 1 408 71
+17ec2 16 650 72
+17ee4 7 98 68
+17eeb 1 98 68
+17ef8 1d 85 68
+17f15 5 86 68
+17f1a 10 88 68
+FUNC 17f2a 29 0 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_get_node()
+17f2a c 311 76
+17f36 1d 312 66
+17f53 1 312 66
+FUNC 17f54 5f 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_create_node(std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> const&)
+17f54 d 435 76
+17f61 e 437 66
+17f6f 3c 440 66
+17fab 8 447 66
+17fb3 1 447 66
+FUNC 17fb4 35 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_insert(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> const&)
+17fb4 c 1149 76
+17fc0 15 1151 66
+17fd5 14 1152 66
+17fe9 1 1152 66
+FUNC 17fea 52 0 void std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_insert_dispatch<std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, __false_type)
+17fea c 1126 66
+17ff6 2 1128 66
+17ff8 21 1129 66
+18019 21 1128 66
+1803a 2 1129 66
+FUNC 1803c 36 0 void std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::insert<std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::_List_const_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >)
+1803c c 838 66
+18048 2a 842 66
+18072 e 491 66
+18080 32 492 66
+180b2 64 493 66
+18116 c 211 74
+18122 3d 211 74
+1815f 1 211 74
+1816d 5c 104 68
+181c9 1 104 68
+FUNC 181ca 31 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::push_back(std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> const&)
+181ca c 772 76
+181d6 25 773 66
+181fb 1 773 66
+FUNC 181fc 69 0 void std::_Construct<dwarf2reader::CompilationUnit::Abbrev, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev const&)
+181fc d 77 76
+18209 5c 81 73
+18265 1 81 73
+18272 7 98 68
+18279 1 98 68
+18286 1d 85 68
+182a3 5 86 68
+182a8 10 88 68
+182b8 c 65 68
+182c4 2 65 68
+182c6 c 103 69
+182d2 d 103 69
+182df 1 103 69
+FUNC 182e0 4d 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_get_map_allocator() const
+182e0 11 394 76
+182f1 3c 395 62
+1832d 1 395 62
+FUNC 1832e 75 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_allocate_map(unsigned long)
+1832e d 406 76
+1833b 68 407 62
+183a3 1 407 62
+FUNC 183a4 47 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_deallocate_map(unsigned long long**, unsigned long)
+183a4 c 410 76
+183b0 3b 411 62
+183eb 1 411 62
+183ec c 424 62
+183f8 9 426 62
+18401 22 428 62
+18423 2b 430 62
+1844e c 714 62
+1845a 70 715 62
+184ca c 111 75
+184d6 d 111 75
+184e3 1 111 75
+184e4 c 259 67
+184f0 26 259 67
+18522 7 98 68
+18529 1 98 68
+18536 1d 85 68
+18553 5 86 68
+18558 10 88 68
+FUNC 18568 33 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_allocate_node()
+18568 c 398 76
+18574 27 399 62
+1859b 1 399 62
+FUNC 1859c 82 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_create_nodes(unsigned long long**, unsigned long long**)
+1859c d 486 76
+185a9 8 491 62
+185b1 12 492 62
+185c3 13 491 62
+185d6 b 494 62
+185e1 19 496 62
+185fa b 497 62
+18605 13 494 62
+18618 6 497 62
+FUNC 1861e 17b 0 std::_Deque_base<unsigned long long, std::allocator<unsigned long long> >::_M_initialize_map(unsigned long)
+1861e d 447 76
+1862b 1e 450 62
+18649 2a 452 62
+18673 1c 454 62
+1868f 19 462 62
+186a8 c 463 62
+186b4 1e 466 62
+186d2 b 467 62
+186dd 1e 469 62
+186fb 9 470 62
+18704 a 471 62
+1870e b 472 62
+18719 13 467 62
+1872c 15 475 62
+18741 18 476 62
+18759 c 477 62
+18765 34 478 62
+18799 1 478 62
+1879a d 366 62
+187a7 12 367 62
+187b9 39 368 62
+187f2 c 645 62
+187fe 1c 646 62
+FUNC 1881a 4d 0 void std::__fill<true>::fill<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&)
+1881a c 539 61
+18826 9 541 61
+1882f 2 542 61
+18831 13 543 61
+18844 21 542 61
+18865 2 543 61
+18867 1 543 61
+FUNC 18868 2b 0 void std::fill<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&)
+18868 c 560 76
+18874 4 567 61
+18878 1b 568 61
+18893 1 568 61
+FUNC 18894 6a 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_erase(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >)
+18894 d 1157 76
+188a1 b 1159 66
+188ac 6 1160 66
+188b2 35 1161 66
+188e7 17 1162 66
+FUNC 188fe 37 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::erase(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >)
+188fe c 95 77
+1890a 14 97 77
+1891e 12 98 77
+18930 5 99 77
+18935 1 99 77
+FUNC 18936 3e 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::erase(std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >, std::_List_iterator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> >)
+18936 c 883 77
+18942 2 885 66
+18944 15 886 66
+18959 16 885 66
+1896f 5 887 66
+FUNC 18974 129 0 std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::operator=(std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > > const&)
+18974 e 120 77
+18982 c 122 77
+1898e e 124 77
+1899c e 125 77
+189aa e 126 77
+189b8 e 127 77
+189c6 2 128 77
+189c8 20 130 77
+189e8 5a 128 77
+18a42 16 131 77
+18a58 1b 132 77
+18a73 20 134 77
+18a93 a 136 77
+18a9d 1 136 77
+FUNC 18a9e 4c 0 dwarf2reader::CompilationUnit::Abbrev::operator=(dwarf2reader::CompilationUnit::Abbrev const&)
+18a9e c 211 77
+18aaa 40 211 74
+FUNC 18aea 52 0 dwarf2reader::CompilationUnit::Abbrev* std::__copy<false, std::random_access_iterator_tag>::copy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+18aea c 280 61
+18af6 1a 283 61
+18b10 12 285 61
+18b22 4 286 61
+18b26 6 287 61
+18b2c b 283 61
+18b37 5 289 61
+FUNC 18b3c 2b 0 dwarf2reader::CompilationUnit::Abbrev* std::__copy_aux<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+18b3c c 307 77
+18b48 4 315 61
+18b4c 1b 317 61
+18b67 1 317 61
+18b76 56 354 61
+18bd8 4 384 61
+18bdc 4 385 61
+18be0 1b 387 61
+18bfb 1 387 61
+FUNC 18bfc ac 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::erase(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >)
+18bfc d 122 78
+18c09 26 124 78
+18c2f 43 125 78
+18c72 2e 126 78
+18ca0 8 127 78
+FUNC 18ca8 54 0 dwarf2reader::CompilationUnit::Abbrev* std::__copy_backward<false, std::random_access_iterator_tag>::copy_b<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+18ca8 c 408 61
+18cb4 1a 411 61
+18cce 1e 412 61
+18cec b 411 61
+18cf7 5 413 61
+FUNC 18cfc 2b 0 dwarf2reader::CompilationUnit::Abbrev* std::__copy_backward_aux<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+18cfc c 432 78
+18d08 4 440 61
+18d0c 1b 443 61
+18d27 1 443 61
+18d36 56 482 61
+18d98 4 514 61
+18d9c 4 515 61
+18da0 1b 517 61
+18dbb 1 517 61
+FUNC 18dbc 4d 0 void std::__fill<false>::fill<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&)
+18dbc c 526 61
+18dc8 2 528 61
+18dca 1c 529 61
+18de6 21 528 61
+18e07 2 529 61
+18e09 1 529 61
+FUNC 18e0a 2b 0 void std::fill<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&)
+18e0a c 560 78
+18e16 4 567 61
+18e1a 1b 568 61
+18e35 1 568 61
+FUNC 18e36 3f 0 unsigned char* std::__copy<true, std::random_access_iterator_tag>::copy<unsigned char>(unsigned char const*, unsigned char const*, unsigned char*)
+18e36 c 298 61
+18e42 22 300 61
+18e64 11 301 61
+18e75 1 301 61
+FUNC 18e76 2b 0 unsigned char* std::__copy_aux<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*)
+18e76 c 307 78
+18e82 4 315 61
+18e86 1b 317 61
+18ea1 1 317 61
+18eb0 56 354 61
+18f12 4 384 61
+18f16 4 385 61
+18f1a 1b 387 61
+18f35 1 387 61
+FUNC 18f36 a0 0 std::vector<unsigned char, std::allocator<unsigned char> >::erase(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >)
+18f36 d 122 78
+18f43 26 124 78
+18f69 43 125 78
+18fac 22 126 78
+18fce 8 127 78
+18fe2 7 98 68
+18fe9 1 98 68
+18ff6 1d 85 68
+19013 5 86 68
+19018 d 88 68
+19025 1 88 68
+FUNC 19026 2a 0 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_M_allocate(unsigned long)
+19026 c 116 78
+19032 1e 117 71
+1905c 1b 74 79
+19077 1 74 79
+19084 23 113 79
+190a7 1 113 79
+190b4 1b 254 79
+190cf 1 254 79
+FUNC 190d0 19 0 void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*)
+190d0 c 106 79
+190dc d 107 73
+190e9 1 107 73
+FUNC 190ea 44 0 void std::__destroy_aux<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > > >(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __false_type)
+190ea c 119 79
+190f6 2 121 73
+190f8 13 122 73
+1910b 21 121 73
+1912c 2 122 73
+FUNC 1912e 28 0 void std::_Destroy<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > > >(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >)
+1912e c 148 79
+1913a 1c 155 73
+FUNC 19156 8d 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&, __false_type)
+19156 d 188 79
+19163 6 190 79
+19169 2 193 79
+1916b 1c 194 79
+19187 1b 193 79
+191a2 b 196 79
+191ad 12 198 79
+191bf b 199 79
+191ca 13 196 79
+191dd 6 199 79
+191e3 1 199 79
+FUNC 191e4 2f 0 void std::uninitialized_fill_n<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&)
+191e4 c 214 79
+191f0 23 218 79
+19213 1 218 79
+FUNC 19214 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+19214 c 308 79
+19220 1b 310 79
+1923b 1 310 79
+19249 6 82 79
+1924f 2 85 79
+19251 24 86 79
+19275 2c 85 79
+192a1 b 87 79
+192ac b 89 79
+192b7 12 91 79
+192c9 b 92 79
+192d4 13 89 79
+192e7 9 92 79
+192fc 23 113 79
+1931f 1 113 79
+1932c 1b 254 79
+19347 1 254 79
+FUNC 19348 409 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&)
+19348 14 249 79
+1935c 14 251 78
+19370 22 253 78
+19392 f 255 78
+193a1 12 256 78
+193b3 55 257 78
+19408 4b 260 78
+19453 e 264 78
+19461 15 265 78
+19476 e 266 78
+19484 1d 271 78
+194a1 8 272 78
+194a9 e 273 78
+194b7 27 275 78
+194de 6 276 78
+194e4 55 279 78
+19539 25 284 78
+1955e b 285 78
+19569 4f 286 78
+195b8 3 284 78
+195bb 13 279 78
+195ce e 286 78
+195dc 4d 298 78
+19629 36 299 78
+1965f 12 302 78
+19671 13 303 78
+19684 2e 304 78
+196b2 13 286 78
+196c5 b 292 78
+196d0 39 294 78
+19709 23 295 78
+1972c b 296 78
+19737 13 292 78
+1974a 7 304 78
+19751 1 304 78
+FUNC 19752 70 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&)
+19752 c 602 79
+1975e 10 604 71
+1976e 1e 606 71
+1978c 11 607 71
+1979d 25 610 71
+FUNC 197c2 50 0 unsigned char* std::__copy_backward<true, std::random_access_iterator_tag>::copy_b<unsigned char>(unsigned char const*, unsigned char const*, unsigned char*)
+197c2 d 422 61
+197cf f 424 61
+197de 24 425 61
+19802 10 426 61
+FUNC 19812 2b 0 unsigned char* std::__copy_backward_aux<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*)
+19812 c 432 79
+1981e 4 440 61
+19822 1b 443 61
+1983d 1 443 61
+1984c 56 482 61
+198ae 4 514 61
+198b2 4 515 61
+198b6 1b 517 61
+198d1 1 517 61
+FUNC 198d2 32 0 unsigned char* std::fill_n<unsigned long>(unsigned char*, unsigned long, unsigned char const&)
+198d2 c 647 79
+198de 1e 649 61
+198fc 8 650 61
+FUNC 19904 27 0 void std::__uninitialized_fill_n_aux<unsigned char*, unsigned long, unsigned char>(unsigned char*, unsigned long, unsigned char const&, __true_type)
+19904 c 182 79
+19910 1b 183 79
+1992b 1 183 79
+FUNC 1992c 2f 0 void std::uninitialized_fill_n<unsigned char*, unsigned long, unsigned char>(unsigned char*, unsigned long, unsigned char const&)
+1992c c 214 79
+19938 23 218 79
+1995b 1 218 79
+FUNC 1995c 27 0 void std::__uninitialized_fill_n_a<unsigned char*, unsigned long, unsigned char, unsigned char>(unsigned char*, unsigned long, unsigned char const&, std::allocator<unsigned char>)
+1995c c 308 79
+19968 1b 310 79
+19983 1 310 79
+FUNC 19984 27 0 void std::__destroy_aux<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, __false_type)
+19984 c 119 79
+19990 2 121 73
+19992 b 122 73
+1999d c 121 73
+199a9 2 122 73
+199ab 1 122 73
+FUNC 199ac 28 0 void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+199ac c 148 79
+199b8 1c 155 73
+FUNC 199d4 88 0 dwarf2reader::CompilationUnit::Abbrev* std::__uninitialized_copy_aux<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, __false_type)
+199d4 d 80 79
+199e1 6 82 79
+199e7 2 85 79
+199e9 12 86 79
+199fb 12 85 79
+19a0d b 87 79
+19a18 b 89 79
+19a23 12 91 79
+19a35 b 92 79
+19a40 13 89 79
+19a53 9 92 79
+FUNC 19a5c 2f 0 dwarf2reader::CompilationUnit::Abbrev* std::uninitialized_copy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*)
+19a5c c 108 79
+19a68 23 113 79
+19a8b 1 113 79
+FUNC 19a8c 27 0 dwarf2reader::CompilationUnit::Abbrev* std::__uninitialized_copy_a<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+19a8c c 252 79
+19a98 1b 254 79
+19ab3 1 254 79
+FUNC 19ab4 7e 0 void std::__uninitialized_fill_n_aux<dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&, __false_type)
+19ab4 d 188 79
+19ac1 6 190 79
+19ac7 2 193 79
+19ac9 12 194 79
+19adb 16 193 79
+19af1 b 196 79
+19afc 12 198 79
+19b0e b 199 79
+19b19 13 196 79
+19b2c 6 199 79
+FUNC 19b32 2f 0 void std::uninitialized_fill_n<dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&)
+19b32 c 214 79
+19b3e 23 218 79
+19b61 1 218 79
+FUNC 19b62 27 0 void std::__uninitialized_fill_n_a<dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+19b62 c 308 79
+19b6e 1b 310 79
+19b89 1 310 79
+FUNC 19b8a a5 0 dwarf2reader::CompilationUnit::Abbrev* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*, __false_type)
+19b8a d 80 79
+19b97 6 82 79
+19b9d 2 85 79
+19b9f 1a 86 79
+19bb9 27 85 79
+19be0 b 87 79
+19beb b 89 79
+19bf6 12 91 79
+19c08 b 92 79
+19c13 13 89 79
+19c26 9 92 79
+19c2f 1 92 79
+FUNC 19c30 2f 0 dwarf2reader::CompilationUnit::Abbrev* std::uninitialized_copy<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*)
+19c30 c 108 79
+19c3c 23 113 79
+19c5f 1 113 79
+FUNC 19c60 27 0 dwarf2reader::CompilationUnit::Abbrev* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev>(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, __gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev>)
+19c60 c 252 79
+19c6c 1b 254 79
+19c87 1 254 79
+FUNC 19c88 5f8 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_fill_insert(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&)
+19c88 15 311 79
+19c9d b 313 78
+19ca8 2a 315 78
+19cd2 12 318 78
+19ce4 23 319 78
+19d07 15 320 78
+19d1c c 321 78
+19d28 5a 323 78
+19d82 1c 327 78
+19d9e 35 328 78
+19dd3 16 323 78
+19de9 30 330 78
+19e19 10 343 78
+19e29 48 334 78
+19e71 21 338 78
+19e92 3d 339 78
+19ecf 13 334 78
+19ee2 b 339 78
+19eed 1c 342 78
+19f09 1e 343 78
+19f27 13 339 78
+19f3a 24 343 78
+19f5e e 348 78
+19f6c 1e 349 78
+19f8a e 350 78
+19f98 1d 353 78
+19fb5 8 354 78
+19fbd e 355 78
+19fcb 27 357 78
+19ff2 6 358 78
+19ff8 4d 361 78
+1a045 40 365 78
+1a085 18 367 78
+1a09d 44 368 78
+1a0e1 3 365 78
+1a0e4 19 361 78
+1a0fd 13 365 78
+1a110 e 368 78
+1a11e 3e 379 78
+1a15c 36 381 78
+1a192 12 384 78
+1a1a4 13 385 78
+1a1b7 2e 386 78
+1a1e5 e 368 78
+1a1f3 b 372 78
+1a1fe 39 374 78
+1a237 23 376 78
+1a25a b 377 78
+1a265 13 372 78
+1a278 8 386 78
+FUNC 1a280 2e 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::insert(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, unsigned long, dwarf2reader::CompilationUnit::Abbrev const&)
+1a280 c 657 79
+1a28c 22 658 71
+FUNC 1a2ae ab 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::resize(unsigned long, dwarf2reader::CompilationUnit::Abbrev const&)
+1a2ae d 422 79
+1a2bb 15 424 71
+1a2d0 48 425 71
+1a318 41 427 71
+1a359 1 427 71
+FUNC 1a35a 63 0 std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::resize(unsigned long)
+1a35a d 441 79
+1a367 56 442 71
+1a3bd 1 442 71
+FUNC 1a3be 13 0 std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>::operator*() const
+1a3be c 134 79
+1a3ca 7 135 62
+1a3d1 1 135 62
+FUNC 1a3d2 3f 0 unsigned long long** std::__copy<true, std::random_access_iterator_tag>::copy<unsigned long long*>(unsigned long long* const*, unsigned long long* const*, unsigned long long**)
+1a3d2 c 298 61
+1a3de 22 300 61
+1a400 11 301 61
+1a411 1 301 61
+FUNC 1a412 2b 0 unsigned long long** std::__copy_aux<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a412 c 307 79
+1a41e 4 315 61
+1a422 1b 317 61
+1a43d 1 317 61
+FUNC 1a43e 27 0 unsigned long long** std::__copy_normal<false, false>::copy_n<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a43e c 325 61
+1a44a 1b 326 61
+1a465 1 326 61
+FUNC 1a466 2f 0 unsigned long long** std::copy<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a466 c 376 79
+1a472 4 384 61
+1a476 4 385 61
+1a47a 1b 387 61
+1a495 1 387 61
+FUNC 1a496 60 0 unsigned long long** std::__copy_backward<true, std::random_access_iterator_tag>::copy_b<unsigned long long*>(unsigned long long* const*, unsigned long long* const*, unsigned long long**)
+1a496 d 422 61
+1a4a3 12 424 61
+1a4b5 2e 425 61
+1a4e3 13 426 61
+FUNC 1a4f6 2b 0 unsigned long long** std::__copy_backward_aux<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a4f6 c 432 79
+1a502 4 440 61
+1a506 1b 443 61
+1a521 1 443 61
+FUNC 1a522 27 0 unsigned long long** std::__copy_backward_normal<false, false>::copy_b_n<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a522 c 451 61
+1a52e 1b 452 61
+1a549 1 452 61
+FUNC 1a54a 2f 0 unsigned long long** std::copy_backward<unsigned long long**, unsigned long long**>(unsigned long long**, unsigned long long**, unsigned long long**)
+1a54a c 504 79
+1a556 4 514 61
+1a55a 4 515 61
+1a55e 1b 517 61
+1a579 1 517 61
+FUNC 1a57a 1df 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::_M_reallocate_map(unsigned long, bool)
+1a57a 13 723 79
+1a58d 1b 726 76
+1a5a8 9 727 76
+1a5b1 13 730 76
+1a5c4 39 732 76
+1a5fd b 735 76
+1a608 27 736 76
+1a62f 2f 740 76
+1a65e 26 748 76
+1a684 15 750 76
+1a699 36 751 76
+1a6cf 22 753 76
+1a6f1 1e 756 76
+1a70f 8 758 76
+1a717 9 759 76
+1a720 15 762 76
+1a735 24 763 76
+1a759 1 763 76
+FUNC 1a75a 59 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::_M_reserve_map_at_back(unsigned long)
+1a75a e 1443 79
+1a768 2a 1445 62
+1a792 21 1447 62
+1a7b3 1 1447 62
+FUNC 1a7b4 8c 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::_M_push_back_aux(unsigned long long const&)
+1a7b4 c 345 79
+1a7c0 e 347 76
+1a7ce 13 348 76
+1a7e1 18 349 76
+1a7f9 1e 352 76
+1a817 1b 353 76
+1a832 c 355 76
+1a83e 2 360 76
+FUNC 1a840 62 0 std::deque<unsigned long long, std::allocator<unsigned long long> >::push_back(unsigned long long const&)
+1a840 c 1039 79
+1a84c 13 1041 62
+1a85f 1e 1044 62
+1a87d 11 1045 62
+1a88e 14 1048 62
+FUNC 1a8a2 20 0 std::stack<unsigned long long, std::deque<unsigned long long, std::allocator<unsigned long long> > >::push(unsigned long long const&)
+1a8a2 c 190 79
+1a8ae 14 191 75
+FUNC 1a8c2 27 0 unsigned char* std::__copy_normal<false, false>::copy_n<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*)
+1a8c2 c 325 61
+1a8ce 1b 326 61
+1a8e9 1 326 61
+FUNC 1a8ea 2f 0 unsigned char* std::copy<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*)
+1a8ea c 376 79
+1a8f6 4 384 61
+1a8fa 4 385 61
+1a8fe 1b 387 61
+1a919 1 387 61
+FUNC 1a91a 27 0 unsigned char* std::__uninitialized_copy_aux<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*, __true_type)
+1a91a c 73 79
+1a926 1b 74 79
+1a941 1 74 79
+FUNC 1a942 2f 0 unsigned char* std::uninitialized_copy<unsigned char*, unsigned char*>(unsigned char*, unsigned char*, unsigned char*)
+1a942 c 108 79
+1a94e 23 113 79
+1a971 1 113 79
+FUNC 1a972 27 0 unsigned char* std::__uninitialized_copy_a<unsigned char*, unsigned char*, unsigned char>(unsigned char*, unsigned char*, unsigned char*, std::allocator<unsigned char>)
+1a972 c 252 79
+1a97e 1b 254 79
+1a999 1 254 79
+FUNC 1a99a 40 0 unsigned char* std::__copy_normal<true, false>::copy_n<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*)
+1a99a d 334 61
+1a9a7 33 335 61
+FUNC 1a9da 2f 0 unsigned char* std::copy<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*)
+1a9da c 376 79
+1a9e6 4 384 61
+1a9ea 4 385 61
+1a9ee 1b 387 61
+1aa09 1 387 61
+FUNC 1aa0a 27 0 unsigned char* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*, __true_type)
+1aa0a c 73 79
+1aa16 1b 74 79
+1aa31 1 74 79
+FUNC 1aa32 2f 0 unsigned char* std::uninitialized_copy<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*)
+1aa32 c 108 79
+1aa3e 23 113 79
+1aa61 1 113 79
+FUNC 1aa62 27 0 unsigned char* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char*, std::allocator<unsigned char>)
+1aa62 c 252 79
+1aa6e 1b 254 79
+1aa89 1 254 79
+1aa96 9 616 61
+1aa9f 2 617 61
+1aaa1 13 618 61
+1aab4 16 617 61
+1aaca 5 619 61
+1aacf 1 619 61
+1aadc 4 641 61
+1aae0 1b 642 61
+1aafb 1 642 61
+FUNC 1aafc 27 0 void std::__uninitialized_fill_n_aux<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&, __true_type)
+1aafc c 182 79
+1ab08 1b 183 79
+1ab23 1 183 79
+FUNC 1ab24 2f 0 void std::uninitialized_fill_n<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)
+1ab24 c 214 79
+1ab30 23 218 79
+1ab53 1 218 79
+FUNC 1ab54 27 0 void std::__uninitialized_fill_n_a<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char, unsigned char>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&, std::allocator<unsigned char>)
+1ab54 c 308 79
+1ab60 1b 310 79
+1ab7b 1 310 79
+FUNC 1ab7c 45a 0 std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)
+1ab7c 14 311 79
+1ab90 b 313 78
+1ab9b 21 315 78
+1abbc 9 318 78
+1abc5 23 319 78
+1abe8 15 320 78
+1abfd c 321 78
+1ac09 4e 323 78
+1ac57 11 327 78
+1ac68 30 328 78
+1ac98 35 330 78
+1accd 48 334 78
+1ad15 14 338 78
+1ad29 43 339 78
+1ad6c 11 342 78
+1ad7d 1e 343 78
+1ad9b e 348 78
+1ada9 1e 349 78
+1adc7 e 350 78
+1add5 1d 353 78
+1adf2 8 354 78
+1adfa e 355 78
+1ae08 27 357 78
+1ae2f 6 358 78
+1ae35 4d 361 78
+1ae82 40 365 78
+1aec2 18 367 78
+1aeda 4d 368 78
+1af27 3e 379 78
+1af65 2d 381 78
+1af92 12 384 78
+1afa4 13 385 78
+1afb7 1f 386 78
+FUNC 1afd6 2e 0 std::vector<unsigned char, std::allocator<unsigned char> >::insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)
+1afd6 c 657 79
+1afe2 22 658 71
+FUNC 1b004 ab 0 std::vector<unsigned char, std::allocator<unsigned char> >::resize(unsigned long, unsigned char const&)
+1b004 d 422 79
+1b011 15 424 71
+1b026 48 425 71
+1b06e 41 427 71
+1b0af 1 427 71
+FUNC 1b0b0 2b 0 std::vector<unsigned char, std::allocator<unsigned char> >::resize(unsigned long)
+1b0b0 c 441 79
+1b0bc 1f 442 71
+1b0db 1 442 71
+FUNC 1b0dc 1a 0 std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>::_S_buffer_size()
+1b0dc c 106 79
+1b0e8 e 107 62
+FUNC 1b0f6 66 0 std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>::difference_type std::operator-<unsigned long long, unsigned long long const&, unsigned long long const*, unsigned long long const&, unsigned long long const*>(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*> const&, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*> const&)
+1b0f6 d 328 79
+1b103 59 333 62
+FUNC 1b15c 3e 0 std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>::_M_set_node(unsigned long long**)
+1b15c d 229 79
+1b169 9 231 62
+1b172 b 232 62
+1b17d 1d 233 62
+FUNC 1b19a 50 0 std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>::operator++()
+1b19a c 142 79
+1b1a6 d 144 62
+1b1b3 f 145 62
+1b1c2 18 147 62
+1b1da b 148 62
+1b1e5 5 150 62
+FUNC 1b1ea 84 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::__copy<false, std::random_access_iterator_tag>::copy<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>)
+1b1ea e 280 61
+1b1f8 17 283 61
+1b20f 20 285 61
+1b22f b 286 61
+1b23a b 287 61
+1b245 b 283 61
+1b250 1e 289 61
+FUNC 1b26e 7e 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::__copy_aux<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>)
+1b26e 11 307 79
+1b27f 4 315 61
+1b283 69 317 61
+FUNC 1b2ec 7a 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::__copy_normal<false, false>::copy_n<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>)
+1b2ec 11 325 61
+1b2fd 69 326 61
+FUNC 1b366 82 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::copy<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>)
+1b366 11 376 79
+1b377 4 384 61
+1b37b 4 385 61
+1b37f 69 387 61
+FUNC 1b3e8 7a 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::__uninitialized_copy_aux<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, __true_type)
+1b3e8 11 73 79
+1b3f9 69 74 79
+FUNC 1b462 82 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::uninitialized_copy<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> >(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>)
+1b462 11 108 79
+1b473 71 113 79
+FUNC 1b4e4 7a 0 std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*> std::__uninitialized_copy_a<std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, unsigned long long>(std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long const&, unsigned long long const*>, std::_Deque_iterator<unsigned long long, unsigned long long&, unsigned long long*>, std::allocator<unsigned long long>)
+1b4e4 11 252 79
+1b4f5 69 254 79
+1b55e 10 679 62
+1b56e 64 680 62
+1b5d2 e8 681 62
+1b6ba c 143 75
+1b6c6 14 144 75
+1b6da 6 144 75
+FUNC 1b6e0 4d 0 __eprintf
+1b6e0 6 1826 80
+1b6e6 3 1832 80
+1b6e9 c 1826 80
+1b6f5 29 1832 80
+1b71e a 1837 80
+1b728 5 1838 80
+1b72d e8d3 1838 80
diff --git a/src/client/mac/handler/ucontext_compat.h b/src/client/mac/handler/ucontext_compat.h
new file mode 100644
index 0000000..1e4b752
--- /dev/null
+++ b/src/client/mac/handler/ucontext_compat.h
@@ -0,0 +1,47 @@
+// Copyright 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_
+#define CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_
+
+#include <sys/ucontext.h>
+
+// The purpose of this file is to work around the fact that ucontext_t's
+// uc_mcontext member is an mcontext_t rather than an mcontext64_t on ARM64.
+#if defined(__aarch64__)
+// <sys/ucontext.h> doesn't include the below file.
+#include <sys/_types/_ucontext64.h>
+typedef ucontext64_t breakpad_ucontext_t;
+#define breakpad_uc_mcontext uc_mcontext64
+#else
+typedef ucontext_t breakpad_ucontext_t;
+#define breakpad_uc_mcontext uc_mcontext
+#endif  // defined(__aarch64__)
+
+#endif  // CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_
diff --git a/src/client/mac/sender/Breakpad.xib b/src/client/mac/sender/Breakpad.xib
new file mode 100644
index 0000000..885e39e
--- /dev/null
+++ b/src/client/mac/sender/Breakpad.xib
@@ -0,0 +1,1140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1070</int>
+		<string key="IBDocument.SystemVersion">10F569</string>
+		<string key="IBDocument.InterfaceBuilderVersion">762</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">461.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys" id="0">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+		</object>
+		<reference key="IBDocument.PluginDependencies" ref="0"/>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<reference key="dict.sortedKeys" ref="0"/>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="504246249">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="273934324">
+				<string key="NSClassName">Reporter</string>
+			</object>
+			<object class="NSCustomObject" id="388635980">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="220995958">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSWindowTemplate" id="762998835">
+				<int key="NSWindowStyleMask">1</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{72, 251}, {490, 489}}</string>
+				<int key="NSWTFlags">536871936</int>
+				<string key="NSWindowTitle"/>
+				<string key="NSWindowClass">NSWindow</string>
+				<nil key="NSViewClass"/>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<string key="NSWindowContentMinSize">{72, 5}</string>
+				<object class="NSView" key="NSWindowView" id="197525436">
+					<nil key="NSNextResponder"/>
+					<int key="NSvFlags">264</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSBox" id="469837363">
+							<reference key="NSNextResponder" ref="197525436"/>
+							<int key="NSvFlags">272</int>
+							<object class="NSMutableArray" key="NSSubviews">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSView" id="966817352">
+									<reference key="NSNextResponder" ref="469837363"/>
+									<int key="NSvFlags">256</int>
+									<object class="NSMutableArray" key="NSSubviews">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSTextField" id="997378142">
+											<reference key="NSNextResponder" ref="966817352"/>
+											<int key="NSvFlags">290</int>
+											<string key="NSFrame">{{17, 36}, {456, 70}}</string>
+											<reference key="NSSuperview" ref="966817352"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="509794736">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">272760832</int>
+												<string key="NSContents">Providing your email address is optional and will allow us contact you in case we need more details. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed arcu urna, pulvinar sit amet, tincidunt ac, fermentum ut, ligula. Quisque mi. Duis lectus. Vestibulum velit. Morbi turpis. Nunc at diam consectetur turpis volutpat tristique. Donec quis diam. Suspendisse scelerisque.</string>
+												<object class="NSFont" key="NSSupport" id="26">
+													<string key="NSName">LucidaGrande</string>
+													<double key="NSSize">11</double>
+													<int key="NSfFlags">3100</int>
+												</object>
+												<reference key="NSControlView" ref="997378142"/>
+												<object class="NSColor" key="NSBackgroundColor" id="420457920">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">controlColor</string>
+													<object class="NSColor" key="NSColor">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+													</object>
+												</object>
+												<object class="NSColor" key="NSTextColor" id="800255527">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">controlTextColor</string>
+													<object class="NSColor" key="NSColor" id="908763363">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<object class="NSTextField" id="975305147">
+											<reference key="NSNextResponder" ref="966817352"/>
+											<int key="NSvFlags">290</int>
+											<string key="NSFrame">{{87, 9}, {195, 19}}</string>
+											<reference key="NSSuperview" ref="966817352"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="592393645">
+												<int key="NSCellFlags">-1804468671</int>
+												<int key="NSCellFlags2">272761856</int>
+												<string key="NSContents"/>
+												<reference key="NSSupport" ref="26"/>
+												<string key="NSPlaceholderString">optional</string>
+												<reference key="NSControlView" ref="975305147"/>
+												<bool key="NSDrawsBackground">YES</bool>
+												<object class="NSColor" key="NSBackgroundColor" id="128478752">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">textBackgroundColor</string>
+													<object class="NSColor" key="NSColor">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MQA</bytes>
+													</object>
+												</object>
+												<object class="NSColor" key="NSTextColor" id="734930533">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">textColor</string>
+													<reference key="NSColor" ref="908763363"/>
+												</object>
+											</object>
+										</object>
+										<object class="NSTextField" id="268211031">
+											<reference key="NSNextResponder" ref="966817352"/>
+											<int key="NSvFlags">292</int>
+											<string key="NSFrame">{{17, 11}, {65, 14}}</string>
+											<reference key="NSSuperview" ref="966817352"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="461570326">
+												<int key="NSCellFlags">68288064</int>
+												<int key="NSCellFlags2">71435264</int>
+												<string key="NSContents">EmailLabel:</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="268211031"/>
+												<reference key="NSBackgroundColor" ref="420457920"/>
+												<reference key="NSTextColor" ref="800255527"/>
+											</object>
+										</object>
+										<object class="NSButton" id="538303250">
+											<reference key="NSNextResponder" ref="966817352"/>
+											<int key="NSvFlags">289</int>
+											<string key="NSFrame">{{456, 10}, {16, 17}}</string>
+											<reference key="NSSuperview" ref="966817352"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSButtonCell" key="NSCell" id="778004767">
+												<int key="NSCellFlags">-2080244224</int>
+												<int key="NSCellFlags2">0</int>
+												<string key="NSContents">Privacy Policy</string>
+												<object class="NSFont" key="NSSupport" id="222882491">
+													<string key="NSName">LucidaGrande</string>
+													<double key="NSSize">13</double>
+													<int key="NSfFlags">1044</int>
+												</object>
+												<reference key="NSControlView" ref="538303250"/>
+												<int key="NSButtonFlags">-2040250113</int>
+												<int key="NSButtonFlags2">36</int>
+												<object class="NSCustomResource" key="NSNormalImage">
+													<string key="NSClassName">NSImage</string>
+													<string key="NSResourceName">goArrow</string>
+												</object>
+												<string key="NSAlternateContents"/>
+												<string key="NSKeyEquivalent"/>
+												<int key="NSPeriodicDelay">400</int>
+												<int key="NSPeriodicInterval">75</int>
+											</object>
+										</object>
+										<object class="NSTextField" id="655227981">
+											<reference key="NSNextResponder" ref="966817352"/>
+											<int key="NSvFlags">289</int>
+											<string key="NSFrame">{{355, 11}, {100, 14}}</string>
+											<reference key="NSSuperview" ref="966817352"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="1012850565">
+												<int key="NSCellFlags">68288064</int>
+												<int key="NSCellFlags2">4326400</int>
+												<string key="NSContents">PrivacyPolicyLabel</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="655227981"/>
+												<reference key="NSBackgroundColor" ref="420457920"/>
+												<reference key="NSTextColor" ref="800255527"/>
+											</object>
+										</object>
+									</object>
+									<string key="NSFrameSize">{490, 114}</string>
+									<reference key="NSSuperview" ref="469837363"/>
+								</object>
+							</object>
+							<string key="NSFrame">{{0, 51}, {490, 114}}</string>
+							<reference key="NSSuperview" ref="197525436"/>
+							<string key="NSOffsets">{0, 0}</string>
+							<object class="NSTextFieldCell" key="NSTitleCell">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Title</string>
+								<object class="NSFont" key="NSSupport" id="668643277">
+									<string key="NSName">LucidaGrande</string>
+									<double key="NSSize">11</double>
+									<int key="NSfFlags">16</int>
+								</object>
+								<reference key="NSBackgroundColor" ref="128478752"/>
+								<object class="NSColor" key="NSTextColor">
+									<int key="NSColorSpace">3</int>
+									<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+								</object>
+							</object>
+							<reference key="NSContentView" ref="966817352"/>
+							<int key="NSBorderType">0</int>
+							<int key="NSBoxType">3</int>
+							<int key="NSTitlePosition">0</int>
+							<bool key="NSTransparent">NO</bool>
+						</object>
+						<object class="NSButton" id="219938755">
+							<reference key="NSNextResponder" ref="197525436"/>
+							<int key="NSvFlags">289</int>
+							<string key="NSFrame">{{330, 12}, {146, 32}}</string>
+							<reference key="NSSuperview" ref="197525436"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="733475259">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">SendReportLabel</string>
+								<reference key="NSSupport" ref="222882491"/>
+								<reference key="NSControlView" ref="219938755"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">129</int>
+								<reference key="NSAlternateImage" ref="222882491"/>
+								<string key="NSAlternateContents"/>
+								<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="409721323">
+							<reference key="NSNextResponder" ref="197525436"/>
+							<int key="NSvFlags">289</int>
+							<string key="NSFrame">{{214, 12}, {116, 32}}</string>
+							<reference key="NSSuperview" ref="197525436"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="586160416">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">CancelLabel</string>
+								<reference key="NSSupport" ref="222882491"/>
+								<reference key="NSControlView" ref="409721323"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">129</int>
+								<reference key="NSAlternateImage" ref="222882491"/>
+								<string key="NSAlternateContents"/>
+								<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSBox" id="468151514">
+							<reference key="NSNextResponder" ref="197525436"/>
+							<int key="NSvFlags">256</int>
+							<object class="NSMutableArray" key="NSSubviews">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSView" id="1059038623">
+									<reference key="NSNextResponder" ref="468151514"/>
+									<int key="NSvFlags">256</int>
+									<object class="NSMutableArray" key="NSSubviews">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSTextField" id="375247105">
+											<reference key="NSNextResponder" ref="1059038623"/>
+											<int key="NSvFlags">266</int>
+											<string key="NSFrame">{{17, 83}, {456, 154}}</string>
+											<reference key="NSSuperview" ref="1059038623"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="188082030">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">272760832</int>
+												<string type="base64-UTF8" key="NSContents">VGhlIHN5c3RlbSBhbmQgb3RoZXIgYXBwbGljYXRpb25zIGhhdmUgbm90IGJlZW4gYWZmZWN0ZWQuIEEg
+cmVwb3J0IGhhcyBiZWVuIGNyZWF0ZWQgdGhhdCB5b3UgY2FuIHNlbmQgdG8gPFJlYWxseSBMb25nIENv
+bXBhbnkgTmFtZT4gdG8gaGVscCBpZGVudGlmeSB0aGUgcHJvYmxlbS4gTG9yZW0gaXBzdW0gZG9sb3Ig
+c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGFyY3UgdXJuYSwgcHVsdmlu
+YXIgc2l0IGFtZXQsIHRpbmNpZHVudCBhYywgZmVybWVudHVtIHV0LCBsaWd1bGEuIFF1aXNxdWUgbWku
+IER1aXMgbGVjdHVzLiBWZXN0aWJ1bHVtIHZlbGl0LiBNb3JiaSB0dXJwaXMuIE51bmMgYXQgZGlhbSBj
+b25zZWN0ZXR1ciB0dXJwaXMgdm9sdXRwYXQgdHJpc3RpcXVlLiBEb25lYyBxdWlzIGRpYW0uIFN1c3Bl
+bmRpc3NlIHNjZWxlcmlzcXVlLiBRdWlzcXVlIHB1bHZpbmFyIG1pIGlkIHB1cnVzLiBFdGlhbSB2aXRh
+ZSB0dXJwaXMgdml0YWUgbmVxdWUgcG9ydGEgY29uZ3VlLgoKUGxlYXNlIGhlbHAgdXMgZml4IHRoZSBw
+cm9ibGVtIGJ5IGRlc2NyaWJpbmcgd2hhdCBoYXBwZW5lZCBiZWZvcmUgdGhlIGNyYXNoLiBMb3JlbSBp
+cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBTZWQgYXJjdSB1
+cm5hLCBwdWx2aW5hciBzaXQgYW1ldCwgdGluY2lkdW50IGFjLCBmZXJtZW50dW0gdXQsIGxpZ3VsYS4g
+UXVpc3F1ZSBtaS4gRHVpcyBsZWN0dXMuA</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="375247105"/>
+												<reference key="NSBackgroundColor" ref="420457920"/>
+												<reference key="NSTextColor" ref="800255527"/>
+											</object>
+										</object>
+										<object class="NSTextField" id="996404163">
+											<reference key="NSNextResponder" ref="1059038623"/>
+											<int key="NSvFlags">274</int>
+											<string key="NSFrame">{{20, 14}, {450, 61}}</string>
+											<reference key="NSSuperview" ref="1059038623"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="242564194">
+												<int key="NSCellFlags">341966337</int>
+												<int key="NSCellFlags2">272760832</int>
+												<string key="NSContents">Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 </string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="996404163"/>
+												<bool key="NSDrawsBackground">YES</bool>
+												<reference key="NSBackgroundColor" ref="128478752"/>
+												<reference key="NSTextColor" ref="734930533"/>
+											</object>
+										</object>
+										<object class="NSBox" id="667608859">
+											<reference key="NSNextResponder" ref="1059038623"/>
+											<int key="NSvFlags">256</int>
+											<object class="NSMutableArray" key="NSSubviews">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<object class="NSView" id="971021844">
+													<reference key="NSNextResponder" ref="667608859"/>
+													<int key="NSvFlags">256</int>
+													<object class="NSMutableArray" key="NSSubviews">
+														<bool key="EncodedWithXMLCoder">YES</bool>
+														<object class="NSTextField" id="1032334641">
+															<reference key="NSNextResponder" ref="971021844"/>
+															<int key="NSvFlags">266</int>
+															<string key="NSFrame">{{85, 10}, {381, 54}}</string>
+															<reference key="NSSuperview" ref="971021844"/>
+															<bool key="NSEnabled">YES</bool>
+															<object class="NSTextFieldCell" key="NSCell" id="316557784">
+																<int key="NSCellFlags">67239424</int>
+																<int key="NSCellFlags2">272629760</int>
+																<string key="NSContents">The application &lt;Really Long App Name Here&gt; has quit unexpectedly.</string>
+																<object class="NSFont" key="NSSupport">
+																	<string key="NSName">LucidaGrande-Bold</string>
+																	<double key="NSSize">14</double>
+																	<int key="NSfFlags">16</int>
+																</object>
+																<reference key="NSControlView" ref="1032334641"/>
+																<reference key="NSBackgroundColor" ref="420457920"/>
+																<reference key="NSTextColor" ref="800255527"/>
+															</object>
+														</object>
+														<object class="NSImageView" id="594334723">
+															<reference key="NSNextResponder" ref="971021844"/>
+															<int key="NSvFlags">268</int>
+															<object class="NSMutableSet" key="NSDragTypes">
+																<bool key="EncodedWithXMLCoder">YES</bool>
+																<object class="NSArray" key="set.sortedObjects">
+																	<bool key="EncodedWithXMLCoder">YES</bool>
+																	<string>Apple PDF pasteboard type</string>
+																	<string>Apple PICT pasteboard type</string>
+																	<string>Apple PNG pasteboard type</string>
+																	<string>NSFilenamesPboardType</string>
+																	<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+																	<string>NeXT TIFF v4.0 pasteboard type</string>
+																</object>
+															</object>
+															<string key="NSFrame">{{16, 0}, {64, 64}}</string>
+															<reference key="NSSuperview" ref="971021844"/>
+															<bool key="NSEnabled">YES</bool>
+															<object class="NSImageCell" key="NSCell" id="465445685">
+																<int key="NSCellFlags">130560</int>
+																<int key="NSCellFlags2">33554432</int>
+																<object class="NSCustomResource" key="NSContents">
+																	<string key="NSClassName">NSImage</string>
+																	<string key="NSResourceName">NSApplicationIcon</string>
+																</object>
+																<int key="NSAlign">0</int>
+																<int key="NSScale">0</int>
+																<int key="NSStyle">0</int>
+																<bool key="NSAnimates">NO</bool>
+															</object>
+															<bool key="NSEditable">YES</bool>
+														</object>
+													</object>
+													<string key="NSFrameSize">{482, 70}</string>
+													<reference key="NSSuperview" ref="667608859"/>
+												</object>
+											</object>
+											<string key="NSFrame">{{4, 245}, {482, 70}}</string>
+											<reference key="NSSuperview" ref="1059038623"/>
+											<string key="NSOffsets">{0, 0}</string>
+											<object class="NSTextFieldCell" key="NSTitleCell">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">0</int>
+												<string key="NSContents">Title</string>
+												<reference key="NSSupport" ref="668643277"/>
+												<reference key="NSBackgroundColor" ref="128478752"/>
+												<object class="NSColor" key="NSTextColor">
+													<int key="NSColorSpace">3</int>
+													<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+												</object>
+											</object>
+											<reference key="NSContentView" ref="971021844"/>
+											<int key="NSBorderType">0</int>
+											<int key="NSBoxType">3</int>
+											<int key="NSTitlePosition">0</int>
+											<bool key="NSTransparent">NO</bool>
+										</object>
+									</object>
+									<string key="NSFrameSize">{490, 325}</string>
+									<reference key="NSSuperview" ref="468151514"/>
+								</object>
+							</object>
+							<string key="NSFrame">{{0, 160}, {490, 325}}</string>
+							<reference key="NSSuperview" ref="197525436"/>
+							<string key="NSOffsets">{0, 0}</string>
+							<object class="NSTextFieldCell" key="NSTitleCell">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Title</string>
+								<reference key="NSSupport" ref="668643277"/>
+								<reference key="NSBackgroundColor" ref="128478752"/>
+								<object class="NSColor" key="NSTextColor">
+									<int key="NSColorSpace">3</int>
+									<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+								</object>
+							</object>
+							<reference key="NSContentView" ref="1059038623"/>
+							<int key="NSBorderType">0</int>
+							<int key="NSBoxType">3</int>
+							<int key="NSTitlePosition">0</int>
+							<bool key="NSTransparent">NO</bool>
+						</object>
+						<object class="NSTextField" id="149448677">
+							<reference key="NSNextResponder" ref="197525436"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{17, 20}, {163, 14}}</string>
+							<reference key="NSSuperview" ref="197525436"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="690832321">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">xx seconds.</string>
+								<reference key="NSSupport" ref="668643277"/>
+								<reference key="NSControlView" ref="149448677"/>
+								<reference key="NSBackgroundColor" ref="420457920"/>
+								<reference key="NSTextColor" ref="800255527"/>
+							</object>
+						</object>
+					</object>
+					<string key="NSFrameSize">{490, 489}</string>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {2560, 1578}}</string>
+				<string key="NSMinSize">{72, 27}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+			</object>
+			<object class="NSUserDefaultsController" id="626548788">
+				<bool key="NSSharedInstance">YES</bool>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">sendReport:</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="219938755"/>
+					</object>
+					<int key="connectionID">45</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">cancel:</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="409721323"/>
+					</object>
+					<int key="connectionID">46</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showPrivacyPolicy:</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="538303250"/>
+					</object>
+					<int key="connectionID">53</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: emailValue</string>
+						<reference key="source" ref="975305147"/>
+						<reference key="destination" ref="273934324"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="975305147"/>
+							<reference key="NSDestination" ref="273934324"/>
+							<string key="NSLabel">value: emailValue</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">emailValue</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSNullPlaceholder</string>
+								<string key="NS.object.0">optional</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">90</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">initialFirstResponder</string>
+						<reference key="source" ref="762998835"/>
+						<reference key="destination" ref="219938755"/>
+					</object>
+					<int key="connectionID">91</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: commentsValue</string>
+						<reference key="source" ref="996404163"/>
+						<reference key="destination" ref="273934324"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="996404163"/>
+							<reference key="NSDestination" ref="273934324"/>
+							<string key="NSLabel">value: commentsValue</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">commentsValue</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSNullPlaceholder</string>
+								<string key="NS.object.0">optional comments</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">124</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">nextKeyView</string>
+						<reference key="source" ref="975305147"/>
+						<reference key="destination" ref="219938755"/>
+					</object>
+					<int key="connectionID">125</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">nextKeyView</string>
+						<reference key="source" ref="996404163"/>
+						<reference key="destination" ref="975305147"/>
+					</object>
+					<int key="connectionID">126</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">nextKeyView</string>
+						<reference key="source" ref="219938755"/>
+						<reference key="destination" ref="996404163"/>
+					</object>
+					<int key="connectionID">127</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="996404163"/>
+						<reference key="destination" ref="273934324"/>
+					</object>
+					<int key="connectionID">128</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">alertWindow_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="762998835"/>
+					</object>
+					<int key="connectionID">142</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">preEmailBox_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="468151514"/>
+					</object>
+					<int key="connectionID">150</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">headerBox_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="667608859"/>
+					</object>
+					<int key="connectionID">151</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">emailSectionBox_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="469837363"/>
+					</object>
+					<int key="connectionID">152</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">privacyLinkLabel_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="655227981"/>
+					</object>
+					<int key="connectionID">153</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">commentMessage_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="375247105"/>
+					</object>
+					<int key="connectionID">154</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">dialogTitle_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="1032334641"/>
+					</object>
+					<int key="connectionID">155</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">emailLabel_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="268211031"/>
+					</object>
+					<int key="connectionID">156</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">cancelButton_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="409721323"/>
+					</object>
+					<int key="connectionID">158</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">sendButton_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="219938755"/>
+					</object>
+					<int key="connectionID">159</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">emailEntryField_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="975305147"/>
+					</object>
+					<int key="connectionID">161</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">privacyLinkArrow_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="538303250"/>
+					</object>
+					<int key="connectionID">162</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">emailMessage_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="997378142"/>
+					</object>
+					<int key="connectionID">163</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">commentsEntryField_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="996404163"/>
+					</object>
+					<int key="connectionID">176</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: countdownMessage</string>
+						<reference key="source" ref="149448677"/>
+						<reference key="destination" ref="273934324"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="149448677"/>
+							<reference key="NSDestination" ref="273934324"/>
+							<string key="NSLabel">value: countdownMessage</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">countdownMessage</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">194</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">countdownLabel_</string>
+						<reference key="source" ref="273934324"/>
+						<reference key="destination" ref="149448677"/>
+					</object>
+					<int key="connectionID">208</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="504246249"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="273934324"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="388635980"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="220995958"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Application</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1</int>
+						<reference key="object" ref="762998835"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="197525436"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Window</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">2</int>
+						<reference key="object" ref="197525436"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="219938755"/>
+							<reference ref="409721323"/>
+							<reference ref="469837363"/>
+							<reference ref="468151514"/>
+							<reference ref="149448677"/>
+						</object>
+						<reference key="parent" ref="762998835"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">12</int>
+						<reference key="object" ref="219938755"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="733475259"/>
+						</object>
+						<reference key="parent" ref="197525436"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">14</int>
+						<reference key="object" ref="409721323"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="586160416"/>
+						</object>
+						<reference key="parent" ref="197525436"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">132</int>
+						<reference key="object" ref="469837363"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="997378142"/>
+							<reference ref="975305147"/>
+							<reference ref="268211031"/>
+							<reference ref="538303250"/>
+							<reference ref="655227981"/>
+						</object>
+						<reference key="parent" ref="197525436"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">145</int>
+						<reference key="object" ref="468151514"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="375247105"/>
+							<reference ref="996404163"/>
+							<reference ref="667608859"/>
+						</object>
+						<reference key="parent" ref="197525436"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">189</int>
+						<reference key="object" ref="149448677"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="690832321"/>
+						</object>
+						<reference key="parent" ref="197525436"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">191</int>
+						<reference key="object" ref="626548788"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Shared User Defaults Controller</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">210</int>
+						<reference key="object" ref="733475259"/>
+						<reference key="parent" ref="219938755"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">211</int>
+						<reference key="object" ref="586160416"/>
+						<reference key="parent" ref="409721323"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">221</int>
+						<reference key="object" ref="690832321"/>
+						<reference key="parent" ref="149448677"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">58</int>
+						<reference key="object" ref="997378142"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="509794736"/>
+						</object>
+						<reference key="parent" ref="469837363"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">215</int>
+						<reference key="object" ref="509794736"/>
+						<reference key="parent" ref="997378142"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">18</int>
+						<reference key="object" ref="975305147"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="592393645"/>
+						</object>
+						<reference key="parent" ref="469837363"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">212</int>
+						<reference key="object" ref="592393645"/>
+						<reference key="parent" ref="975305147"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">20</int>
+						<reference key="object" ref="268211031"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="461570326"/>
+						</object>
+						<reference key="parent" ref="469837363"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">213</int>
+						<reference key="object" ref="461570326"/>
+						<reference key="parent" ref="268211031"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">48</int>
+						<reference key="object" ref="538303250"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="778004767"/>
+						</object>
+						<reference key="parent" ref="469837363"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">214</int>
+						<reference key="object" ref="778004767"/>
+						<reference key="parent" ref="538303250"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">66</int>
+						<reference key="object" ref="655227981"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1012850565"/>
+						</object>
+						<reference key="parent" ref="469837363"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">216</int>
+						<reference key="object" ref="1012850565"/>
+						<reference key="parent" ref="655227981"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">8</int>
+						<reference key="object" ref="375247105"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="188082030"/>
+						</object>
+						<reference key="parent" ref="468151514"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">217</int>
+						<reference key="object" ref="188082030"/>
+						<reference key="parent" ref="375247105"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">116</int>
+						<reference key="object" ref="996404163"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="242564194"/>
+						</object>
+						<reference key="parent" ref="468151514"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">218</int>
+						<reference key="object" ref="242564194"/>
+						<reference key="parent" ref="996404163"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">147</int>
+						<reference key="object" ref="667608859"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1032334641"/>
+							<reference ref="594334723"/>
+						</object>
+						<reference key="parent" ref="468151514"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">3</int>
+						<reference key="object" ref="1032334641"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="316557784"/>
+						</object>
+						<reference key="parent" ref="667608859"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">219</int>
+						<reference key="object" ref="316557784"/>
+						<reference key="parent" ref="1032334641"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">6</int>
+						<reference key="object" ref="594334723"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="465445685"/>
+						</object>
+						<reference key="parent" ref="667608859"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">220</int>
+						<reference key="object" ref="465445685"/>
+						<reference key="parent" ref="594334723"/>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="flattenedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-3.ImportedFromIB2</string>
+					<string>1.IBEditorWindowLastContentRect</string>
+					<string>1.IBWindowTemplateEditedContentRect</string>
+					<string>1.ImportedFromIB2</string>
+					<string>1.windowTemplate.hasMinSize</string>
+					<string>1.windowTemplate.minSize</string>
+					<string>116.CustomClassName</string>
+					<string>116.ImportedFromIB2</string>
+					<string>12.ImportedFromIB2</string>
+					<string>132.ImportedFromIB2</string>
+					<string>14.ImportedFromIB2</string>
+					<string>145.ImportedFromIB2</string>
+					<string>147.ImportedFromIB2</string>
+					<string>18.CustomClassName</string>
+					<string>18.ImportedFromIB2</string>
+					<string>189.ImportedFromIB2</string>
+					<string>191.ImportedFromIB2</string>
+					<string>2.ImportedFromIB2</string>
+					<string>20.ImportedFromIB2</string>
+					<string>3.ImportedFromIB2</string>
+					<string>48.ImportedFromIB2</string>
+					<string>58.ImportedFromIB2</string>
+					<string>6.ImportedFromIB2</string>
+					<string>66.ImportedFromIB2</string>
+					<string>8.ImportedFromIB2</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<boolean value="YES"/>
+					<string>{{0, 656}, {490, 489}}</string>
+					<string>{{0, 656}, {490, 489}}</string>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<string>{72, 5}</string>
+					<string>LengthLimitingTextField</string>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<string>LengthLimitingTextField</string>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="activeLocalization"/>
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="sourceID"/>
+			<int key="maxID">221</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">LengthLimitingTextField</string>
+					<string key="superclassName">NSTextField</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">Reporter</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>cancel:</string>
+							<string>sendReport:</string>
+							<string>showPrivacyPolicy:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>alertWindow_</string>
+							<string>cancelButton_</string>
+							<string>commentMessage_</string>
+							<string>commentsEntryField_</string>
+							<string>countdownLabel_</string>
+							<string>dialogTitle_</string>
+							<string>emailEntryField_</string>
+							<string>emailLabel_</string>
+							<string>emailMessage_</string>
+							<string>emailSectionBox_</string>
+							<string>headerBox_</string>
+							<string>preEmailBox_</string>
+							<string>privacyLinkArrow_</string>
+							<string>privacyLinkLabel_</string>
+							<string>sendButton_</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSWindow</string>
+							<string>NSButton</string>
+							<string>NSTextField</string>
+							<string>LengthLimitingTextField</string>
+							<string>NSTextField</string>
+							<string>NSTextField</string>
+							<string>LengthLimitingTextField</string>
+							<string>NSTextField</string>
+							<string>NSTextField</string>
+							<string>NSBox</string>
+							<string>NSBox</string>
+							<string>NSBox</string>
+							<string>NSView</string>
+							<string>NSTextField</string>
+							<string>NSButton</string>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1070" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+			<integer value="3000" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<string key="IBDocument.LastKnownRelativeProjectPath">../Breakpad.xcodeproj</string>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>NSApplicationIcon</string>
+				<string>goArrow</string>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>{128, 128}</string>
+				<string>{128, 128}</string>
+			</object>
+		</object>
+	</data>
+</archive>
diff --git a/src/client/mac/sender/English.lproj/InfoPlist.strings b/src/client/mac/sender/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..65d1618
--- /dev/null
+++ b/src/client/mac/sender/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/English.lproj/Localizable.strings b/src/client/mac/sender/English.lproj/Localizable.strings
new file mode 100644
index 0000000..5f1cc82
--- /dev/null
+++ b/src/client/mac/sender/English.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/ReporterIcon.graffle b/src/client/mac/sender/ReporterIcon.graffle
new file mode 100644
index 0000000..14a0e7c
--- /dev/null
+++ b/src/client/mac/sender/ReporterIcon.graffle
@@ -0,0 +1,2489 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>137.6.0.106738</string>
+	</array>
+	<key>AutoAdjust</key>
+	<false/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {512, 512}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>FontInfo</key>
+		<dict>
+			<key>Font</key>
+			<string>CalisMTBol</string>
+			<key>Size</key>
+			<real>112</real>
+		</dict>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>fill</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>a</key>
+					<string>0</string>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0.852018</string>
+					<key>r</key>
+					<string>0.998962</string>
+				</dict>
+			</dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>CanvasSize</key>
+	<string>{512, 512}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2008-11-14 16:58:15 -0700</string>
+	<key>Creator</key>
+	<string>John P. Developer</string>
+	<key>DisplayScale</key>
+	<string>1 pt = 1 px</string>
+	<key>FileType</key>
+	<string>flat</string>
+	<key>GraphDocumentVersion</key>
+	<integer>6</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{33.9443, 35.3885}, {444.111, 437.112}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>112</real>
+			</dict>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Rotation</key>
+			<real>270</real>
+			<key>Shape</key>
+			<string>Bezier</string>
+			<key>ShapeData</key>
+			<dict>
+				<key>UnitPoints</key>
+				<array>
+					<string>{-0.5, -0.439247}</string>
+					<string>{-0.5, -0.485429}</string>
+					<string>{-0.446294, -0.512626}</string>
+					<string>{-0.409932, -0.494153}</string>
+					<string>{-0.373569, -0.47568}</string>
+					<string>{0.436363, -0.0733799}</string>
+					<string>{0.472729, -0.0549059}</string>
+					<string>{0.50909, -0.0364333}</string>
+					<string>{0.509091, 0.0364345}</string>
+					<string>{0.472729, 0.0549059}</string>
+					<string>{0.436368, 0.0733802}</string>
+					<string>{-0.373569, 0.475681}</string>
+					<string>{-0.409932, 0.494153}</string>
+					<string>{-0.446294, 0.512626}</string>
+					<string>{-0.500001, 0.485429}</string>
+					<string>{-0.5, 0.439247}</string>
+					<string>{-0.49998, 0.393072}</string>
+					<string>{-0.500002, -0.393066}</string>
+				</array>
+			</dict>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.770962</string>
+						<key>r</key>
+						<string>0.997971</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>FillType</key>
+					<integer>3</integer>
+					<key>GradientCenter</key>
+					<string>{-0.609524, 0}</string>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.911574</string>
+						<key>r</key>
+						<string>0.998779</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.6111111044883728</real>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0.43</string>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Fuzziness</key>
+					<real>7.2213706970214844</real>
+					<key>ShadowVector</key>
+					<string>{0, 6}</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.766903</string>
+						<key>r</key>
+						<string>0.997925</string>
+					</dict>
+					<key>Width</key>
+					<real>7</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+			<key>TextRelativeArea</key>
+			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
+			<key>TextRotation</key>
+			<real>90</real>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{3.89085, 67.8908}, {404.218, 332}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>112</real>
+			</dict>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Rotation</key>
+			<real>270</real>
+			<key>Shape</key>
+			<string>Bezier</string>
+			<key>ShapeData</key>
+			<dict>
+				<key>UnitPoints</key>
+				<array>
+					<string>{-0.5, -0.5}</string>
+					<string>{-0.459695, -0.475464}</string>
+					<string>{0.429465, 0.0537758}</string>
+					<string>{0.469773, 0.0783133}</string>
+					<string>{0.510074, 0.102849}</string>
+					<string>{0.510077, 0.198357}</string>
+					<string>{0.469773, 0.222892}</string>
+					<string>{0.429473, 0.247428}</string>
+					<string>{-0.00521517, 0.499998}</string>
+					<string>{-0.00521785, 0.5}</string>
+					<string>{-0.00521713, -0.113381}</string>
+					<string>{-0.44962, -0.458615}</string>
+				</array>
+			</dict>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0</string>
+						<key>b</key>
+						<string>1</string>
+						<key>g</key>
+						<string>1</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>FillType</key>
+					<integer>2</integer>
+					<key>GradientAngle</key>
+					<real>180</real>
+					<key>GradientCenter</key>
+					<string>{-0.609524, 0}</string>
+					<key>GradientColor</key>
+					<dict>
+						<key>a</key>
+						<string>0.5</string>
+						<key>w</key>
+						<string>1</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.6111111044883728</real>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0.51</string>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Fuzziness</key>
+					<real>3.3371961116790771</real>
+					<key>ShadowVector</key>
+					<string>{0, 2}</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.766903</string>
+						<key>r</key>
+						<string>0.997925</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+			<key>TextRelativeArea</key>
+			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
+			<key>TextRotation</key>
+			<real>90</real>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{33.9443, 35.3886}, {444.112, 437.111}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>112</real>
+			</dict>
+			<key>ID</key>
+			<integer>29</integer>
+			<key>Rotation</key>
+			<real>270</real>
+			<key>Shape</key>
+			<string>Bezier</string>
+			<key>ShapeData</key>
+			<dict>
+				<key>UnitPoints</key>
+				<array>
+					<string>{-0.5, -0.439247}</string>
+					<string>{-0.500001, -0.485429}</string>
+					<string>{-0.446295, -0.512626}</string>
+					<string>{-0.409932, -0.494153}</string>
+					<string>{-0.373568, -0.475681}</string>
+					<string>{0.436363, -0.0733802}</string>
+					<string>{0.472729, -0.0549062}</string>
+					<string>{0.509089, -0.0364334}</string>
+					<string>{0.509092, 0.0364341}</string>
+					<string>{0.472729, 0.0549056}</string>
+					<string>{0.436369, 0.0733803}</string>
+					<string>{-0.373568, 0.475681}</string>
+					<string>{-0.409932, 0.494153}</string>
+					<string>{-0.446294, 0.512626}</string>
+					<string>{-0.500001, 0.485428}</string>
+					<string>{-0.5, 0.439248}</string>
+					<string>{-0.499978, 0.39307}</string>
+					<string>{-0.500003, -0.393066}</string>
+				</array>
+			</dict>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0.2</string>
+						<key>b</key>
+						<string>1</string>
+						<key>g</key>
+						<string>1</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>FillType</key>
+					<integer>2</integer>
+					<key>GradientAngle</key>
+					<real>90</real>
+					<key>GradientCenter</key>
+					<string>{-0.609524, 0}</string>
+					<key>GradientColor</key>
+					<dict>
+						<key>a</key>
+						<string>0</string>
+						<key>w</key>
+						<string>1</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.6111111044883728</real>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0.51</string>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Fuzziness</key>
+					<real>3.3371961116790771</real>
+					<key>ShadowVector</key>
+					<string>{0, 2}</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.766903</string>
+						<key>r</key>
+						<string>0.997925</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+			<key>TextRelativeArea</key>
+			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
+			<key>TextRotation</key>
+			<real>90</real>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{176, 102.384}, {158.841, 537.616}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>425</real>
+			</dict>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350
+{\fonttbl\f0\fnil\fcharset0 CalistoMT;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs850 \cf1 !}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{176, 104}, {158.841, 537.616}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0.749523</string>
+					<key>r</key>
+					<string>0.997726</string>
+				</dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>425</real>
+			</dict>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>RTFD</key>
+				<data>
+				BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
+				ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
+				bmcBlIQBKwEhhoQCaUkBAZKEhIQMTlNEaWN0aW9uYXJ5
+				AJSEAWkEkoSWlhBOU1BhcmFncmFwaFN0eWxlhpKEhIQQ
+				TlNQYXJhZ3JhcGhTdHlsZQCUhARDQ0BTAgCEhIQHTlNB
+				cnJheQCUmQyShISECU5TVGV4dFRhYgCUhAJDZgAchpKE
+				n54AOIaShJ+eAFSGkoSfngBwhpKEn54AgYwAhpKEn54A
+				gagAhpKEn54AgcQAhpKEn54AgeAAhpKEn54AgfwAhpKE
+				n54AgRgBhpKEn54AgTQBhpKEn54AgVABhoYAhpKElpYG
+				TlNGb250hpKEhIQGTlNGb250HpSZIIQFWzMyY10GAAAA
+				FgAAAP/+QwBhAGwAaQBzAE0AVABCAG8AbAAAAIQBZoGp
+				AYQBYwCiAaIAogCGkoSWlg1OU1N0cm9rZVdpZHRohpKE
+				hIQITlNOdW1iZXIAhIQHTlNWYWx1ZQCUhAEqhIQBZKYD
+				hpKElpYHTlNDb2xvcoaShISEB05TQ29sb3IAlKIChARm
+				ZmZmAYN4dz8/AAGGhoY=
+				</data>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350
+{\fonttbl\f0\fnil\fcharset0 CalistoMT;}
+{\colortbl;\red255\green255\blue255;\red254\green191\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs850 \cf2 \outl\strokewidth60 \strokec2 !}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{33.9441, 35.3884}, {444.112, 437.111}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>CalisMTBol</string>
+				<key>Size</key>
+				<real>112</real>
+			</dict>
+			<key>ID</key>
+			<integer>16</integer>
+			<key>Rotation</key>
+			<real>270</real>
+			<key>Shape</key>
+			<string>Bezier</string>
+			<key>ShapeData</key>
+			<dict>
+				<key>UnitPoints</key>
+				<array>
+					<string>{-0.5, -0.439247}</string>
+					<string>{-0.5, -0.485429}</string>
+					<string>{-0.446295, -0.512626}</string>
+					<string>{-0.409933, -0.494153}</string>
+					<string>{-0.373569, -0.47568}</string>
+					<string>{0.436363, -0.073379}</string>
+					<string>{0.472729, -0.0549049}</string>
+					<string>{0.50909, -0.0364324}</string>
+					<string>{0.509091, 0.0364344}</string>
+					<string>{0.472729, 0.0549058}</string>
+					<string>{0.436368, 0.0733801}</string>
+					<string>{-0.373569, 0.47568}</string>
+					<string>{-0.409933, 0.494153}</string>
+					<string>{-0.446295, 0.512626}</string>
+					<string>{-0.500001, 0.485429}</string>
+					<string>{-0.5, 0.439247}</string>
+					<string>{-0.49998, 0.393072}</string>
+					<string>{-0.500002, -0.393066}</string>
+				</array>
+			</dict>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.770962</string>
+						<key>r</key>
+						<string>0.997971</string>
+					</dict>
+					<key>FillType</key>
+					<integer>3</integer>
+					<key>GradientCenter</key>
+					<string>{-0.609524, 0}</string>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.911574</string>
+						<key>r</key>
+						<string>0.998779</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.6111111044883728</real>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>a</key>
+						<string>0.9</string>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>Fuzziness</key>
+					<real>8.0632610321044922</real>
+					<key>ShadowVector</key>
+					<string>{0, 9}</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.766903</string>
+						<key>r</key>
+						<string>0.997925</string>
+					</dict>
+					<key>Draws</key>
+					<string>NO</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+			<key>TextRelativeArea</key>
+			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
+			<key>TextRotation</key>
+			<real>90</real>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict>
+		<key>GridSpacing</key>
+		<real>4</real>
+		<key>ShowsGrid</key>
+		<string>YES</string>
+		<key>SnapsToGrid</key>
+		<string>YES</string>
+	</dict>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>2</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2008-11-17 11:41:28 -0700</string>
+	<key>Modifier</key>
+	<string>Preston Jackson</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{612, 792}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>QuickLookPreview</key>
+	<data>
+	JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmls
+	dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGVlktvJEUQhO/9K5IbHFyuR9brioEV
+	nFh5JM5o5MWsPIA9IP4+X2b12gPrBbHWSt3lzkdFREb6Ud7Ko0R+asr+/+lOfpBfJIYW
+	/Z/8LNc35yTHsyROh/ZYxyTgfJTrN/zip7NcxVD3r1+e9oQbCd/J9fd3T8e7337/48cH
+	eSLjm3O2wEfR2ry8tiJ5hDJSVEk9pF7jkONJrr89JfnqV/p8uz1KK1YpJynNHlKVk2gJ
+	JZWqdqZz9iklBc21ZmkxlJoin0/vsEonTo6b9lC79iQzh6azSc7FYjINZWIkk4MCKtrG
+	ejhyRpZeRYcSNIbk7oXmtk5m4mRaD/NvYcOK1bKnpnkuu4qt6jqEVujLmtuOvFgdrXv7
+	mcjWQxut71ds5LcbAIADIcTkDgpt4TKmyigWoXNzVAYtfYzdUe5fOT25ACxMtZAQiPeX
+	xEVTSCkNeaBLDbXWDhwfnxH1QHJX0sfiulDDhhpMgMnUJZAGDLkCea3T6b+9T3K+N/pf
+	F6qL8+ZW0hYDjM4ESlFubyTlAFd/kvfwRKilj3IFRdTQHJsk6EwzW5UvDwBY1xf2cNVL
+	SDWiyTa2AyL8JgXr8fBOPv/sCzm8l68PNERtwm0wGIb4yTrK2LiYt3+rI5+uY1df7JW8
+	CD9tS/XNGUdxFSUs1e+yiQPuXPUMyVI9lL2qeh2bq16Rjet+qRdVLcWrceySz8+S30+A
+	zyTPTNiYWMQSe10Z64vY+/OoudZNus9dudwRqE+rVVty97v63bZd7iZHL7PkjnfYe5xw
+	vvTOAJtW5+gMv3vFB8RetF6yzYQ5x3/L08wKeQZ3t1pin5Fp1GpD0ORKy7AnlLN/kbPS
+	2ofZwIlqwA1G35aT5d3JyGncLARwMKZb0Tt2gIAHLOBGpTJExgtaxZ/MjxbK+B8mYdQ0
+	5QuYoSumBgvBBXEsP0n9khlidnI8xrK6LZqBzVm2bFzEhIjMiIwcPyGGeQqjdjrwT7h+
+	LYHiADxbwGHg6+Uux+3+4u1/I6yj5DSiaKw0CBBXpRSDluldCFM4zgHvPa9zujJygMR3
+	RXlB+JWt1t0PvmNg35PwHxsOE4mw1Weu0cykNci2JJjJhX+sVUm1pt4BgIOOr6HBGsLd
+	eYUt0uRFYFIEgAl4n6yrBqw6QuzKxtA0wdf4g/OZ2QWMAd4DfUgXOqHaYjtc4/Gjshmh
+	y/PP/YQ62VDzj4dlZttYGh2ZHAwCzaCeVcoaJty3VGm2b4bnZwuhC2LommlOA9lxF2ub
+	WDS6QrjdWjcjNZJ3Uzh/OyA6IjK7cIVwj0t8fPwuD05ya6b+F7C1v1cKZW5kc3RyZWFt
+	CmVuZG9iago1IDAgb2JqCjk4MwplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAv
+	UGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgNiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRp
+	YUJveCBbMCAwIDUxMiA1MTJdCj4+CmVuZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsg
+	L1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8
+	IC9DczIgMTIgMCBSCi9DczEgNyAwIFIgPj4gL0V4dEdTdGF0ZSA8PCAvR3MxIDE3IDAg
+	UiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvRjEuMCAxMSAwIFIKPj4gL1hPYmplY3Qg
+	PDwgL0ltMiAxMyAwIFIgL0ltMSA4IDAgUiAvSW0zIDE1IDAgUiA+PiAvU2hhZGluZyA8
+	PCAvU2gxIDEwIDAgUgo+PiA+PgplbmRvYmoKMTAgMCBvYmoKPDwgL0NvbG9yU3BhY2Ug
+	NyAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIC0yNzEuMzA2MyAwIDAgLTI3MS4z
+	MDYzIDAgNTQwLjI2NApdIC9Eb21haW4gWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFs
+	c2UgXSAvRnVuY3Rpb24gMTkgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvTGVuZ3Ro
+	IDE0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI1NiAv
+	SGVpZ2h0IDI1NiAvQ29sb3JTcGFjZQo3IDAgUiAvU01hc2sgMjAgMCBSIC9CaXRzUGVy
+	Q29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dABAQAA
+	CAKg/p+2Bx4QJpBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDDQBg4DBgwYMGDA
+	wNjAA65NNU0KZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago4ODMKZW5kb2JqCjggMCBv
+	YmoKPDwgL0xlbmd0aCA5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug
+	L1dpZHRoIDkxMiAvSGVpZ2h0IDkyNiAvQ29sb3JTcGFjZQoyMiAwIFIgL1NNYXNrIDIz
+	IDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0
+	cmVhbQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+	wMvAAKraAAEKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjExMDcwCmVuZG9iagoxNSAw
+	IG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1h
+	Z2UgL1dpZHRoIDI1NiAvSGVpZ2h0IDI1NiAvQ29sb3JTcGFjZQo3IDAgUiAvU01hc2sg
+	MjUgMCBSIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4K
+	c3RyZWFtCngB7dKBDQAgDMMw/n+6SHBGvA+aeXMKFAucd8XlNiuw8U9BuQD/5e/bzj8D
+	5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+
+	vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889A
+	uQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/
+	bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQ
+	LsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv
+	284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyU
+	C/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7
+	tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPl
+	AvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+
+	7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5
+	AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79v
+	O/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1Au
+	wH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/b
+	zj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL
+	8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2
+	889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC
+	/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t
+	/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA
+	/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287
+	/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7A
+	f/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vO
+	PwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvw
+	X/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu3f/wUgwjJ6CmVu
+	ZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKMTIxNAplbmRvYmoKMjMgMCBvYmoKPDwgL0xl
+	bmd0aCAyNCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA5
+	MTIgL0hlaWdodCA5MjYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21w
+	b25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHsnYlfTV37/288
+	j4xJUVJRGtCEoggliZCxyFQUlUiGNCgJIXOFyFTKlCljmUMlUaZK4XY/N31fv//jd621
+	9z57n6nxDPvU1ev1PHfts89a61zn+njvz7XW3uuvv/AHI4ARwAhgBDACGAGMQOeIQDfy
+	0132hx7tHB8QPwVGQCciwOiwR48e//nPf/4r9QMH/gPHQaRwjk58FhwkRkCHI0ClSIT4
+	3//27Kmn10vuR0+vZ8///peoEjWpw98zDl0HIkAuT0GLIEWqxN59+vTt269ff8lPv379
+	+vbt07s3iJSoEkSJmtSBrxWHqIsRoGKkWuzVqzcRYn/9AQMMDAwGDhxoyPwMHAh/GgzQ
+	1+/fD1QJmtQDTTKc1MUPjGPGCIg1AqwYe8IFKmiRSNFgoKHRoEGDjY1NTIbAjyn5PxMT
+	Y+PBg4wMQZcD9PszmmQkiWZSrN8sjkv3IgBqJI6xJxEjaNHAAKRobDLE1HSombmFxbBh
+	w+nPsGHDLMzNzYaampqAKkGUA/SBk+TSFShJLlx174PjiDECoosAMY0gRj0qRuCi0WDj
+	IaZDzS2GWVpZjbC2sbG1tWN+bG1trEdYWVkOH2ZuBqIETRoYEEyCJOl1KypSdN8tDkjX
+	IsCqsVevPn37DwAwDjYBLYIUR9jYjRxlb+/g6OjkDD9j4H9OTo4O9vajR9nZgiyHW5iZ
+	DjEmmNTvB2aSgSQqUte+fhyvqCLAqJGiUZ+QcYipmYWllbXtyNH2js5jxrm4uI6f4Obu
+	7j5xIvyfm9uE8a4u48Y6OznYj7KzGWE1zHyoKUjSYED/vqhIUX2vOBhdjAD1jWAbwTXq
+	GxgOMiFiHGEzcrSD0xgX1wnuEz0mT5nq6TVtmrf39One3t7TvLw8p0yePMndbbzLWGdH
+	+1G21lbDzU2HDDYayCmS+EhdjASOGSOg9QiQKg4p4vTpBxeqgEbz4VY2I+0dQYtuEydP
+	8Zw23cd3pt/sOXPn+jM/c+fM9pvlO8PH22vqZA/3CS5jnQCT1pbDzACSAw0oI0llBy9a
+	tf7N4gB0LwIUjlDFoWwcPGSohaW13WgQ44SJk6dOmz5j1uy5/vMXLgoIDFyydGkQ+Vm6
+	ZElgwOJFC+b5z/Hz9fH2nDzJzXUcSNKGQBIUSRlJa62ISN1LBxyxdiNA4QjGsS9cqYIa
+	hxE0Oo8bP3Gyp/eMWXP8FywOXLpsxargkNWhYWFr165bt27t2rDQNauDg1cuDwoMWDjf
+	f7avz7QpHm4uYxxH244gijQyGNCvDxR2EJHa/Waxdx2MAJEjgWP/AQMHmQy1sLIZ5TDG
+	xc3Dc7qvH2hxybKVwWvCwiPWb4jeFBOzecuWrVu3btmyOSYmemNUZPja0JBVy5cGLpo3
+	Z6aP1+SJ4wGSdiOGw1WroYE+FHYAkegidTAlcMhaiwC5ViV1HICjkbGpuaU1qNF14uRp
+	Pn7+CwODVoaEhkdu2LR5a2x8QmJS8s6UXbt2pe7alZKyM2lHQnzcti0xG9eHr10dvHzJ
+	YpDk9KkeE1yc7G2thg0dAhetBJHURWrtw2HHGAHdigDI8T//Jc4R4DjEbPiIkfagxine
+	vnPmBwStXL02YkPM1u3xO3bu2r133/709IOHDh0mP4cOpqcf2Je2JzUlKSFu2+bo9eGh
+	wcsDF/r7+Xh6TBjnNNrGyoJctFJEkmtW3YoJjhYjoKUIsNaxT38DQ2NTCytbe2cXUOPM
+	uQsDV4SsjdgYExuflLI77UD64aPHMzNPnDyVnX0afrKzT508kZWZcezIwfR9e1KTE+O2
+	booKX7MqaPG82T5eHhPGOoy0Hm4GiNTvR65ZUZBa+naxWx2LACtHcq1qYjbcepTjOLfJ
+	RI1LVq4J3wBiTE7de+DQ0Yysk9k5OecuXMzNu3QpH34uXcrLvXjh/NmcM6dOZB47nL5v
+	d8qOuC3RkWHBywLmASMnuY6Bi1Zz08GG5JoVBaljWYHD1VIEmEoOWEe4VjUHOI4Z7+E1
+	g6gxNCJ6S3xSalr64eNZp86cvZB7Kf/y1WvXC2/cuHETfuA/NwqvX71SkJ938VzO6ROZ
+	Rw/u370zITZm/TqiyFnTp7i5OI4cMYyUdfqjILX07WK3OhaBbt2gsNqrN1jHwXCtOtJh
+	nNsUH7/5gSvXRERvjd+5+wCIMTvnQl7+lWuFN27dKbp3/wH8PCQ/8N/79+4W3b554/rV
+	gksXz505mXk0PS11x/aYqLXBQYvm+np5uDqPthk+1MSICFIPL1l1LDVwuFqIAJRyeuox
+	chw2YpSTyyQvX//Fy0LCN25NSNmbfjQTxHjp8jWQ4r0HDx6VPH7y9NmzZ8+ZH/jt6ZOS
+	4ocP7hfdvnH9Sn7uuTMnjh/al5q0PWZ92KrA+X7TJ7uNtbe1NBtCBYmXrFr4erFL3YoA
+	raz27jtgoLHpMOvRY8ZP9vabv2TV2qjN8Tv3ph87ceZ8XsG1G7fvghSfPHv+ovTV6zdl
+	ZeXsT1nZm9evSl++ePb0cTFo8lbhlfyLOacyD+9P3RG7KXz1ssVzZ3i6uzjYWZmzgsQq
+	q24lB45W0xEg8456vcA7GpsOt7EfA9eqcxYtWx2xaXvSblBjzoX8qzdu33tQ/OTZi9LX
+	b8rL31a+q6p6//4D8/P+fdW7yrcV5WVvXr18/rTk4f2im9cLcs9mZx7atythS9TaVYHz
+	ZnpNcnEUChJnPTT9FWN/uhMBiRwHEzmOdZs6wz9gRVjUloTU/UeyzlzIv3ajiIjx5euy
+	8rfvqj5UV9d8/Pjp8+fPX+AH/vPp08ea6uoP799VVpS/KX3+rOThvduFl/POnjp+cE/y
+	9k3hwUsX+Hl7uDqOpISEaQ9YqYOC1J30wJFqOAK0ltNH32AwXKzaj3X39PUPDF4XHZu8
+	52BG9vn8azfvPighYqyoBC2CEL98ra2rl/qpq6v9+uUzqPL9u7dEkk8e3QdF5uacOLp/
+	V/zmyDXLFs6ePpkI0swEpj16Y01Hw18wdqdLESDmEZasGgzi5DhvSXB4THzK/iMncvKu
+	3Lj74PGz0jflle+raz59+QpK/NbQ0Pj9+w/Jz/fvjY0N3+rrQZSfP1Z/qHpb/vrF0+L7
+	t6/nXzidkb57x9ao0OWL5hBB2lkONTYc0LeX3n96ICB1KUVwrBqMADGPvfsZGA2xGDF6
+	jJun77ylIRExCanpx7MvFBTeATW+KntbRcRYW18PSvzx8+fff/+S/vn7758/vhNR1hFJ
+	vq8kinx07+bVvJysw2nJsRvDViyeM93DxcF2+NDBA/VhGhKvWDX4BWNXuhQBMtXRq+8A
+	QxMzq5HOE6b6zlsSErk5cffBzJzcqzfvFT8rLXv7vvojiPFbA2iRKPGf//3vf/8KfuDP
+	f/6B43//BE0SSdZ8eAeKfPLgTmH+uZNH9+3cvnHtikWzvSe52NsMMx1k0B+vWHUpQXCs
+	mowAKebA1erAwUMt7RzHT57hD3LckrjnUFbOpet3Hjx58QbY+AkuU0GMoMV//gEl/v79
+	h/w00R/66+/fv//993+gSSLJb/W1oMjK8lfPiu/duHwh+9j+lO0bw5Yv8ps2cezoERZD
+	jAb0Q0Bq8ivGvnQoAlDMIVerYB5tHFwm+0ApJ2Jz4p7DJ87l37j76Nmr8ndEjd8af/wk
+	XAQtskL8P+EPEeafP6BJKskf3xuIIt+/ffPi8YNbV3NPHz9ABLlswSxPN+dRVmbG9IoV
+	V5brUJLgUDUVAcnVqvmI0eMmes8JWBUeQ+VYcONeyfM3bz/UfCFq/JsTIyhPqET+d4Ek
+	AZIN9V8/Vb8rL3368Pa13DPH9++M3bAmaN6MKeMdbYebDmauWLGko6kvGfvRmQh0I8Wc
+	/gaDh4J5dPOctXDFuk3xuw+dOFdw4/7jl2UAx9r6BkaNQEalYmRlSSlJIAmK/Fb3peZ9
+	xetnj+5cA0LuT962PiTQ38fDxd6aXLH2xStWnUkRHKjmIsDg0cCIXK26Tp4xLyh0Y1zq
+	wayzIMcnpeVVBI7ffxI2UjXyNCS//T/mR+ogoSS9bP37RyMg8sNbRpDZR9N2bA5fFTB7
+	mvsYesXavw9MQiIgNfdFY086EQHAY68++gNNyNXqpOlzA0PWx6akZ+bks3L8SuGoSI2s
+	GOUlKVEkILL2c3XlGyDk1YunjuxJiFm3fIEvc8U6yABLOjqRHzhIjUaA4pEUcyztnCZ4
+	zlq0KnxL0r7jZy4V3nv8svz9x6/1jSwcpV2jlBjpH0JIMletcNH6vaGOCvLh7SvnTxxM
+	jdu4ZilcsY6zH2FuYgiTkAhIjX7X2Jn4I8Dg0XCIhbU91FbnBYVtit9zJDv3+t2SF+VV
+	rBzlLlXl1SgrSeai9dffP4gg4ZL1wc2Cs5kHdm6NDF4828vNeaQllHQQkOJPDxyhZiPA
+	4pEUc8a4T5sTGBIVu+vgifNX7jx6XlZV87WeWEeQoxQclaiRHOYhSRBJ6jpEkB8qXj25
+	f+PSmWNpiTFrl8+fMZmWdBCQmv2qsTcdiACHR1LMmeK7cEX45qT9GTn5Nx88e1NZ/YVc
+	rBLrKJRjM2qUU+RvIshvdZ/el78sKbp28eSh1LgNqwPnek+Eks5QBKQO5AcOUaMR4PE4
+	auzE6f5L1myM330kO6/w3pNXb6s/K5BjC2qURSQI8m8o6nysKnv+8Ba5Yk3eEr5y4cwp
+	rg42w4YgIDX6XWNn4o+ABI+2juOnQjEnYuvO9Cy4Wi1+Uf7+U13DD9mL1ZblKFQkMZH/
+	g6JO/ZfqytdP4Yr19NE98dGhS/2nTxqLgBR/duAINRwBDo9mVjDX4eO/NGxTwt5jZ/Jv
+	wNXqu5qv32Tl2Co1ygvyZ2P95w/kivXqhRPpKdsiVi2aNXW8IwJSw182dif6CFA8DjAa
+	MszWEeY6FgdHQjHn5MVrdx+XVhDz+Pev/wm9Y2vlKCjrACH/JRaSXLFCjTU/53hawqaw
+	IH+fSeNGo4MUfX7gADUaASEePXz8g8JiEvdl5BTcevgcpjrqGkgtR1DKab0cBYgka3XA
+	QsIV69tXj+9ev3jy4K5YmPPw85zgaIsOUqPfNnYm9ggw7pHgEZYC+C0OXh+beuhU7nUo
+	5lRWw1TH3zDTIamstkmN0oL836+fDaTGSko6ORn7EmMIID0AkGZYYhV7iuD4NBcBaTzO
+	C1obs2NfxtnLtx/RYg6Z6oCrVXZGsa1ylFyzMles3799ra589eReYe6pQ6mx6xGQmvuW
+	sSddiYA0HgOC128HPOYV3n/6upIt5kiuVtsuR16QpMb6s5EA8sWj25fPZuzbEbM2aB4C
+	UlfSBMepmQjI4HEZwWMmg8cPMPX49y+yEKDdeOQvWdmSztcaMuehAJB4m4dmvm/sRdwR
+	EMw9gnukeDwsxGOHrlYpUBkxk5LOr79hzgMBKe6EwNFpMwLK8AhLATg8csWc9lytkvew
+	cKWrAn58EwByu5SDREBqMw+wb3FEAPCo10ffkJl7ZPAo5R55PLZXjpwgm5rInEdj/acP
+	5S+KJQ4S5yDFkQc4ClFEQBEeSXGVw6NgrqP9emQJKQ9IpsQKj9Khc5AISFGkBA5CixGQ
+	xiPMPcoUV1WBRyEgqYMEQHIlVlyko8UvH7sWWwQ4PA6lK1f5uUd5PHaAjhILqRiQszy5
+	VawISLHlB45HsxEQ4HE8vzSHn3tUDR45QRIHSQBJHCQAUrJIZ9I4vM1Ds9879ibKCEjj
+	kaxcZZbmcHiEuUe2uNoxPEquWMmiAGGJla5i5W/zQECKMk1wUBqKgASPNuS+R27lqhrw
+	yAqSAhLuu2IAya9ixfsgNfSFYzdijgCPx1Fj4b5H9sYOunL1wydmaY6K8MgD8l8OkE/u
+	Xc89eYgHpAV5UAACUsz5gmNTbwRk8Qj3PcKNHWrBIwdIskiHAJIs0oHbPI6nJW4Kg2c/
+	8oDs0V29nxlbxwiINQJkf7l+ZIcAIR4LmBs7yENzVOYeifvkVs3RG5PhNo/XFJDkPkj6
+	oAAHGwSkWPMEx6WRCHB4tGDdI8HjSXLfI3tjB7kNmVFRR6s59P20KTrlIQ9IwZN0EJAa
+	+fKxE9FFoHsPHo/TyVNzEtOOw2MB6H2PDB5ZPapEjgoBSR4UsE0CSPKwcr3/dsfdPESX
+	Kjgg9UegW3dm5aqFjQN9qFzkNnhqDoPHauYhVirFI+8gufsgnzMOMmGT5FFzdDcPBKT6
+	v3vsQXwRYPA4iLpHwGOoEI91wscCqAaP8g4SHhRAn6RDHjU3cyo8i9UCANlb7z8ISPEl
+	C45I3RGAyQ5yY4eJFB4vsk/Noc94VDEeFQCSPEmHPGqOAHIieRbrIAPYDxIBqe7vHtsX
+	XwTk8JjAuMfn5BHI6sCjUkDSZ7GSh5VbIyDFlyc4Io1EgOCxN4NH16kz4ZHkxD2qF48K
+	AQnPYt2bQB9WDrt5WJoiIDXy7WMnYosAwWNfA+oeYccOcI8MHuGZq2rDoxQguUfNXb/I
+	PqycBeTA/uggxZYrOB61R0CCR2vY0IriMUX9eFQCyGMEkEv8Ybsr2A8SAan27x47EF8E
+	WDyaWo4cQ/EYnbD3eE4+eSS5GvEoB8i3r57Aw8oBkFsjmO2uwEEiIMWXLTgiNUeA4rH/
+	QBMLHo/pJy5ev0v2l/v67TvsZ6Xy4iozayJcpMM+rDw/59je+Og1S8h+kBJA4poANWcA
+	Ni+mCAjx6O2/JBTweEwDeJQGZP1XupvHNbLdFQtIewSkmNIEx6KZCEjjceHKiK0pgEfY
+	0IrgsV6NeJRykLCbB9mgFba7kgPkf3sgIDWTCtiLCCLQjSmuUvfoPXfJmuh4gseb6naP
+	5JJVcJsHt90VAeTOrbBhsu8UV3trc3SQIsgQHIIGI8Dj0R6KqwtXhhM8XmDw+EW9eJTo
+	kezm0VBH9oMUAtKdc5AISA3mA3al3QjAjVZk7lEej2VVsDu5cEMrVS1dFbQjC8jSx3d5
+	QE52QUBqNzewd41HgMOjuTXg0ZfgcafG8MhfsEoB8szRPfEbSYmVAeSAvr0QkBrPC+xQ
+	OxGgeBxA8ehO3ONGcI9nwD0+K2O3Q5ZsaCXAmup+VQjIrPSdW8JXLPRFQGonJ7BXrUVA
+	gEeXySwes4h7LH1brW73SFTN6ZEH5IOb+RSQqwPneLs7kzlIBKTW0gM71nAE5PG45yjg
+	8YGG8MgLEnbXoSXW0sdFVy8wgFxAADkCS6waTgnsTnsRkMbjghXhW3amaxKPvB4FgLwh
+	AeQ0d2c7S1MjBKT2MgR71mQEeDw6u0+bE7h6Y7yG8cgLUgjI81npyeAgWUAawyrWnvig
+	AE3mBfallQgAHnv27j/Q2HyEPbhHDo9Xi1j3+LfaVq4KCkJSDrKWzEE+kAbkcASkVpID
+	O9V4BBg8Gpla2gnxeENz7lFY0mEBWVFaUnSVA+QM6iCNDRCQGs8N7FDjEZDHY3J61nmC
+	xwpSXNUIHvkLVuogOUCePro7fgOUWKe5OdshIDWeGdihNiLA4XG4nbMbcY8bqHtk8Fir
+	7qU5/CUrd8UqBcjMA8mbwUEiILWRGNinNiLA4NGAcY8ziHtk8FiiUTwqBuSl00ekAdkH
+	F+loI0ewT81FQB6Pu4+eztc4HnlBygNy+XwKSDN0kJpLC+xJOxGQxuP8FeGbkw9kgnvU
+	NB55PXIO8g2UWAkg4zaEBM72cnOiDhIBqZ00wV41FAGCxz4DjEwl7jFu95HTlwCPb6o+
+	atA9SkqsTU1/KCA/V1e8LCm6cp44yHU8IPv1wjlIDWUGdqOFCFA89jMwNiNzjzPmL5fg
+	8WVF9We2uMrsaMVXXtT1G1fRAUD+aKj9+A4BqYWEwC61GgEej05uXrMDQzZI8PhO03hk
+	r1ilAHnnyrnMA0kcIK3AQSIgtZov2LlaI0DwCPuvSvC4bnPSgcxzV+6UaAGPUg6SB2T2
+	kdS4KMZB2pI5SHSQas0IbFybEZDFY5QUHn/8+p9673uUvfKlV6wSQH6oeFnMADIGHKQP
+	LNJBQGozWbBvdUdAgkcrcI8+85drF4+ygKyhDjIv+zABZMBsrwlOtsMQkOrOCWxfexGQ
+	4NGWcY9RcalHsmlx9V1NbYPG8ShxkL+ZEisHyP1JMeuWzfPxGDfaymwwOkjt5Qv2rNYI
+	yOExJmk/cY/FLys+aLq4yly6Ckus32p5QG6PCmYBOcRIHx2kWrMCG9dWBDg8DrN1muA1
+	OyAkanvq4ew8MveoJTxKAbKx/vOHcsZBAiDXIiC1lSbYr2YiwOJxsJnV6HEePvOWrZPg
+	sRzw2Ag3dvxu0tTcI1fZkQfk/RvEQRJA+nkSBznEEAGpmfzAXjQbAYpHfaMhBI+efgHB
+	UniE7ck1XFwVXLE2NREHyQHy8rnM/TsQkJpNDuxN0xGQxePamB2se9QeHqVLrMRBvn7K
+	AnI9BaQjA0g9fBarptMF+1NzBBg8GgIeHSke1zPu8f7T1+AetYVHeQf5ovj25bMISDUn
+	Azav7QgoxOPZy1Bc1SYeZQD5lQKyMO8UOMj1wYvBQSIgtZ042L9aIgB41OujL43HU3k3
+	tI1HJYDM2AcOMoiZgxyKc5BqyQhsVIsRkMFjELjHfZlnL98ufqFdPMoBshIcZGHuqUOp
+	sRSQ4x1taIkVHaQWkwe7VnkEpPG4OBjc46FTeYWAx8qar9pzj6TIyq5ilZRYqYMkgAwL
+	8veZBIt0EJAqTwdsULsR4PA4FOYeJ/n4UzxmiAKPzQNy1lQEpHYzB3tXRwQkeLRxHO85
+	C/AYC3jMFQUeBYD8xcxBvngEJdaMfYkMIMeOQkCqIyWwTe1FQBaPYeAeCR4fse7xlxaW
+	5nBLdJQCcldsZPBiBKT2sgZ7VlcEhHicCniMFBMehYD82Vj/6X05ALIgJyNNFpA9uqsr
+	PtguRkCDEeDxOGoscY9hMYn7MnIKKB4/wcpV7eJRASCf3CvMPXmQB6QFWcWKJVYNpgx2
+	pcYIcHi0APfI4HGXeNwjX2L98/vfXxwgbxXkHE9L3BS21H/6JImDRECqMUmwaY1FoHsP
+	8tScwUOtWDxuSkxj8fge8PhT23jkAfnvP79+fPtaXfn6yb3rBJDbIlctAgfpYMMCsns3
+	jcUMO8IIqCkCMnhcFRm76+DJ3Ov3nrBzj5rYYI6v3ij8jZmDZABZRx0kC8hQDpCDyIMC
+	EJBqShFsVoMREOJxuv/SMMDj8ZyCW1Bc5fD4R9P3PcqKkrsPkgPkKwDkRSlAmhjq99bD
+	/Vk1mDbYlXoi0K07s3LVwsYB3OOiVZHbAI8XKR6rydIcEeCRK7H+IZsHNBJAPn9EAZmw
+	iQByInGQgwz6IiDVkyHYqiYjwOBxEHWPgMfQTQkMHp8DHuvAPUruQ5aFlib/VgLIlG0R
+	qxbNnOoKDhIBqcmkwb7UFQGY7NDrrW9oAnh0JXiM4PD4qlI8eFQAyIe38qHEygJyzCgr
+	UwSkulIE29VgBAge+xpQPE4ULR7lSqxvWQfJAHKKq4O1hcnA/uggNZg42JU6IkDx2J/B
+	45SZBI8pjHsUFx6VAPLY3oTo0CX+3hPHjLREQKojP7BNzUaAxaOp5agxFI/RCXuP5+Tf
+	eigq90icqsBBfoc5SADk3esXT6SnbI1YuXAmAlKzWYO9qSkCDB4HmlhYO7iyeEw/QYqr
+	r96KyT1KBNkkKLESB0kAuWbJXCEgcU2AmnIFm1V/BCR4HDlmorf/klDA4zFR4lEakPVf
+	AJCP7167wAPSHh2k+tMFe1BvBKTxuHBlxNYUwOO1uxSP9d/FMffIzatwi3SYOciqsucP
+	bxJAxksDEh/9qN6UwdbVGIFuTHHV1JLgce6SNdHxBI83xeceJRes/0c2MP/1XQDInVvD
+	Vy70neJqb22OJVY15go2rfYIcHg0t7YH97hwZTjB44Vrdx+De/wiNjxKKjpkkU5D3ceq
+	smcsIDcSB+nOlVgRkGrPG+xAPRGAleRk7pHg0V0Kj2VVn+oaRLI0h7tclXeQpYyDZAAJ
+	+7MiINWTJtiqZiIgxONkX4LHnSLGI69HHpAPbuafObonXgDIAX17ISA1kz7Yi4ojQPE4
+	gMfjRtY9Piur+iiFx//jGaXV34RzkMRBUkBmpe/cEr5igS8CUsXpgc1pNgICPLpweMwi
+	7rFUjO5RWNGRB+TqwDnT3J3JIh0EpGazCHtTVQR4PDqDewxcszF+z9Ez+TcfiBaP/BUr
+	3cCcArLo6gUBIEeYG8Mq1p54H6SqcgTb0VgEJHgcYQ94XLAifMvOdMBjEYtH2H+VvQ1Z
+	LFerQEjuglUAyBuMg2QAaWdpaoSA1FgKYUcqjIAEj3bO7tPmBK7WATzygmQBWVH6uOjq
+	+az0ZM5BIiBVmCHYlAYjAHjs2bv/QGNzKTxeFTUeeT1SQNaSOcgHDCA3EEC6OdsNR0Bq
+	MImwK5VFgMGjkelwKTzeoO6xVjj3KKLLVcEVqwSQJTwgZ0CJFQBpgA5SZVmCDWkoAgwe
+	DRg8ziDuMTk96zzBYwVZmiNK9yhXYuUAefro7ngEpIYyB7tRRwQEeHQj7nFD/G4orooe
+	j/wVqxQgMw8kbw5fPh8BqY5UwTbVHwE5PG5OPpAJeCwROR55PXIO8g04yEunj+yO2xDC
+	O8g+uEhH/TmEPaguAgrweOT0JR3AIyvIJnKbx9/kNo+KlyVFV84LAWlmbNAP5yBVlyvY
+	ktojwOHRjBRXZ8xfHq4zeJQD5DshIGd7uTnREisCUu05hB2oLgIEj30G0OKqm9fswJAN
+	cbsZPL6p+iji4iop6MgA8jMB5J0r5zIPJG1exzpIAsheuEhHdemCLak3AgSPsIOOsTQe
+	rxSVvKyo/swWV7W9RQCjPUX/L1ik86Oh9iMPyKiQQAJIWzIHiYBUbwph6yqMAI9HJxk8
+	vgM8/uAfSS6uuUdOnMyDO1gHKQNIH5iDtEJAqjBZsCl1R0CCRyvGPa7bnHQg89yVO7qB
+	RykHCYCsYQCZfSQ1jgJyAgJS3QmE7as0AhI82jJ4jIpLPZJNiqtvdAKPsg7yQ8XLYuIg
+	9yfFgIP08SCAHIwOUqUpg42pLwJSePSZv3xdDIPHYp1wj+SiVdpBMoDMyz6cuj0qJGC2
+	FwBymKmRPjpI9aUQtqzCCAjwOMFrdkAI4PFwdh7FY40OuEeJIJuafsMcZGP95w/lPCCX
+	zfPxGDcaAanCfMGm1BoBFo+DzaxGj/PwmbcM8LifuEfA4wemuPq7SbzFVaamIwTkN9ZB
+	MoAMDvDzJIAcYoiAVGsaYeMqigDFo77RkGG2TgSPwVHbBXiE/Vcl+z2Ks7gqEKQ8IHfE
+	rEVAqihPsBmNREAWj2sleCwHPDbCjR3ix6O0gySAfP30/g0KyPUUkI4MIPXwUXMaySns
+	pP0RYPBoSPHo6RcQvJ7B4/1nr9/V1OoKHiUlVqGDvHw2cz8Csv2Zge/UQgTk8bgD3ONl
+	cI+6hEcZQH6lgCzMOwUlVgSkFrIKu2xvBACPen30CR4dJwjx+FS38CgPyBfFty+fzdgH
+	gAxiSqxDcQ6yvUmC79NUBBTgcV/m2cu3i1/oFh7lAFkJDrIw99Sh1Nj1wYv9PMc72tAS
+	KzpITWUW9tOeCEjjcTFxj4dO5RXeJ3j8qjvuUdEcpASQYUH+PpNgDhIB2Z4MwfdoMAIc
+	Hocyc49Ba2N27MvQSTw2D8hZUxGQGkwr7KqdEZDg0cZxvKcf4DEW8JhL8Fipa3gUOMhf
+	zCKdF4+og0yMoYAcOwoB2c4swbdpKAJCPE7y8Q8K02E8KgXkrtjI4MUISA2lFHbTgQgI
+	8Th11uLgSF3GowwgP70vB0AW5GSkyQKyR/cOhAzfihFQVwR4PI4ay+AxcV9GzuXbj6C4
+	+gmW5vzSiaU5zII5SUUHNjCHR839+Pa1pvL1k3uFuScP8oC0IKtYscSqrnzCdjsWAQ6P
+	FuAeGTzu0l33KBEk6PHfXz8b6zlAHk9L3BS21H/6JImDREB2LG/w3eqJQPce5Kk5g4da
+	SfCYlpFTQPD4HvD4U9fwyDvIf/8hgKwmgLxOALktctUicJAONiwgu3dTT0CxVYxA+yOg
+	AI8HT+Zev/dEF4urzFUr8yQdBpB1AMjnj24V5BBAhnKAHEQeFICAbH/W4DvVFQEhHqf7
+	Lw3blJh2PKfglgCP7IaPvEMT+2/cfZAcIF8BIC9KAdLEUL+3Hu7Pqq6cwnbbHYFu3enK
+	VRMLGwdwj4tWRW7bdfDkRYrHarI0R4z7r7b47wEHyP+BgxQAMoECciJxkIMM+iIg2500
+	+Ea1RYDB4yDqHgGPoZsSGDw+B/dYB+5Rch9yiyIQ0QlKAJmyLWLVoplTXcFBmhj2R0Cq
+	Lamw4fZGACY79HrrGxI8uhI8RnB4fFWpu3jk5iDJlAcLyIe38sFBsoAcM8rKFAHZ3pTB
+	96kxAgSPfQ0oHid2GjzKlVjfsg6SAeQUVwdrC5OBCEg15hU23a4IUDz2H2hiYe3gOmUm
+	wWMK4x51G49KAHlsb0J06BJ/74ljRloiINuVMPgmtUaAxaOp5cgxFI/RCXuP5+TfeqjT
+	7pEYWYGD/A5zkADIu9cvnkhP2RqxcuFMBKRakwobb28EFOAx/QQprr56q8vuUSJIumhO
+	4CCP7Y2PXrNkrhCQuCagvcmD71N5BIR49PZfEgp4PNYp8CgNSNif9e2rx3evXeABaW9t
+	jg5S5fmEDXYoAjwe7cE9LlwZsTUF8HjtLsVj/XfdnHvkpl0Ec5ANdZ+qyp4/vJmfIwdI
+	fPRjhzII36zKCMBSOVJcpe7Re+6SNdHxBI83dd89Si5Y4TYPWKRDNjDnALlza/jKhb5T
+	XBGQqswkbEsFEeDwaG4NePRduDKc4PHCtbuPwT1+0XU8Sio6ZA6yoe5jVdkzFpAbiYN0
+	pyXWAX17ISBVkEnYhCoiIMCjuxQey6o+1TXo6NIc7nJV3kGWEgeZlc4AEvZnRQepiiTC
+	NlQVASEeJ1M87uxEeOT1yAPywc38M0f3xDOAdCZzkAhIVWUTttPRCFA8DqDukeJxY/ye
+	Y2fAPT4rq/oohUcx76DD41D+N+EcJHGQHCC3hK9Y4IuA7Gj+4PtVGgEBHl0AjyvCt+xM
+	zyLusbQzuEdhRUcekKsD50xzR0CqNJ+wsY5FgMejs7v3nMA1gMejgMcHnQaP/BUr7M9K
+	S6ylj4uuEgfJAXKEuTGsYu2J90F2LJPw3SqIAOCxZ+/+A43NR9gDHhdweCxi8QgbzLG3
+	Ievq1SoQkrtgpYCsJSXWBzcYB8kA0m64qRE6SBUkEzbR4QgweDQytbRzdp82J3B1J8Qj
+	L0gWkBUEkOez0pMJIGeAg0RAdjiPsAGVREAxHq92KjzyepQD5AYCSDdnBKRKkgkb6XAE
+	ODwOt3N24/F4g7rHWuHcow5frgquWCWALAFAZkoB0gAdZIezCRvoYAQYPBow7nEGcY/J
+	6VnnrxaVlFaQpTmdwj3KlVg5B3n6yO54BGQHMwjfrsoIyOJxQ/zuo6fzOx0e+StWaUAe
+	SN4cvnw+dZBmxghIVWYWttWOCMjhcXPygcxOiEdej5yDfAMl1ksAyLgNIYFzvFgH2QdX
+	sbYjifAtKosAwWOfAUamnHvcELf7yOlLnRCPrCCbyG0edA6y4mVJ0ZXzmdKA7IdzkCpL
+	LWyo7RGgeOxnYGxG5h5nzF8ezuHxZedyjwoc5DshIGd7uTnREisCsu1JhO9QWQR4PDq5
+	ec0ODJHg8c27j52ouErkKAPIz9UAyDtXzmUeSNq8jnGQVuAgYfMAXKSjsvTChtoWAYJH
+	2EFHgsd1BI/nrhSVAB4/s8XVJrq2hclo3f5/wSKdHw21HzlApsZFhQQSQNqSRToIyLal
+	EJ6twgjI4jGKc48Ujz/4R5Lr9twj988IFSTnIAkgixlAxgAgfWCRDgJShbmFTbU5AhI8
+	WoF79Jm/fN3mJILHO50Tj1IlVgBkDQPI7MMEkAGzvSYgINucQfgGVUZAgkdbpwnEPUbF
+	pR7JJsXVN+9qahs6HR4lDvI3LbF+/sACcn9SzLpl83w8xo22MhuMDlKVGYZttSECLB4H
+	mwEePQgeY5L2EzwWv6z40PncI7loFTrIbywg8wCQ26OCGUAOG2Kkjw6yDTmEp6ouAhSP
+	+kamwygeA0Kitqcezs7rxHiUAmRj/ecP5YyDBECuRUCqLrGwpfZEgMfj6HEePvOWSeOx
+	EVau/m7qPMVVpqYjD8j7Nygg1wcH+HmCgxw2xBAB2Z5swvd0NAIMHg2HEDx6+gUES+ER
+	9l+V7PfYOYqrAkE2NREHyQHy8rnM/TsQkB1NJ3x/xyIgi8e1MTtY91gO7rFz4lHeQb5+
+	KgVIRwaQevgs1o4lF767zREAPOr10Sd4dKR4XM+4x/tPX0NxtbPiUd5Bvii+ffls5j4E
+	ZJsTCN+gyggoxOPZy1Bc7cx4lAHk15p3AMjCvFOHUrevD14MDhIBqcokw7ZaHQFFeDyV
+	V9jZ8agEkBkEkEH+dA5yKM5BtjqL8EQVRYDD41ArWlwNAve4L/Ps5dvFLzo3HuUAWUkA
+	mQuAjKWAHO9oQ0us6CBVlGjYTKsiIMDjeE+/xcHrY1MPncoleKys+dp53aNkUYCgxPri
+	EThIAsgwAOQkWKSDgGxVCuFJqouAEI+TfPyDwgCPGV0Cj80AMjJ48aypCEjVZRm21NoI
+	SPBo4zh+6qwuhUeBg/wFc5CfPpQDIAtyMvYlMoAcOwoB2do0wvNUEwEej6PGMnhMpHh8
+	xLrHX51waQ6zHkBywQr7s8KTdH58+1rDOchdsRwgLcgiHXSQqsk1bKXlCMjiMTJ2V1dx
+	jxJBEgf56ycA8j0LyLTETdRBSgDZo3vLkcQzMAIdj0D3HuSxAIOHWknwmJaRU3Ab8Pj+
+	EyzN6dx4FDjIf1hAPrl3PffkQQRkxzMLW2hHBDg8WrDuEfB48GRu4b0uUFxlrlqZBwX8
+	oYCso4C8VZBznAByqf/0SQSQg8h9kAjIdiQXvqXNERDicbr/0rBNiWnHeTz+7Ox45AH5
+	LwVkdeVrAORFAOS2yFWLoMTqYGNhQh1k925tji2+ASPQxgh0686sXLWwcYDi6qJVDB6v
+	33vyurKazD12hg3m+OqNwt84QP4PHCQB5PNHFJAJm0IRkG3MJjy9oxFg8DiIukfAYyiD
+	x1vUPdY1EjyyGz4qTOVOcZC7D5ID5CsOkBGrFs2c6soAsrcePvqxo7mG728xAjDZoddb
+	39BEgsdt4B4vAh5fdRk8cnOQZMpDASAnMg6yLzrIFpMJT+hwBAge+xpQPE6keEwg7vHW
+	o+dQXCV4lNyH3ClIqORDKAFkyjYCyCmuDtYWJrCBOQKyw9mGDbQQAQEeXafOXLQqYltK
+	18OjAkA+vJWfc3xvQjRxkBPHjLQ0HWSAgGwhl/DljkeAxaOp1agxPB7zbz3sUniUK7G+
+	pQ7yRDoAciUCsuNZhi20MgIUj/0HmlhYO7hOkcLj265SXGUuYeVKrASQxwggl8z1RkC2
+	Mp3wtA5GgMOj5cgxE739l4RGJ+w9ltP18CgFyO/1X6vfvnp899pFAOTWiJULwUHao4Ps
+	YKbh21sRAWk8LlwZsTUl/cTF63efvCJ4/N4V5h65Co88IG8SQMZHrxECEp9s1YqswlPa
+	G4FuTHHVlOJx7pI10fFdFI8ygPzCAPLCifSdW8NXLvQlgDTHEmt70wzf17oI8Hi0B/fI
+	4vHCtbuPAY9f6rsUHqVKrA11n6rKnj8UANKdK7EiIFuXWnhWOyIAK8nJ3KMMHm8+fF5W
+	1XXmHqUuWOE+SFik871eFpCTEZDtyC98S5siwOHR3Brw6LtwZfjWneknuioehbvr/Gyo
+	+1hV9gwAeebYnviNxEEygBzQtxcCsk05hie3PgIUjwMoHt29wT1upO7x5sNnZVUf6xq6
+	yNIcDo/yDrIUSqwXstJ3bglfsdAX9mdFB9n61MIz2x4BAR5dJrN4zCJ4LO2C7hFkyS2a
+	I6tYGUA+AEAeBUCuDpzj7e5MFukgINueZ/iO1kVAHo97jp7Jv/lADo+daQcdHofyv3GC
+	pPuzgoMsfVzEAXIBAeQIc2NYxdoTb/NoXX7hWW2KgDQeF6wI37IzvSvjsQVATnN3trM0
+	NUJAtinJ8ORWR4DHo7P7tDmBqzfGd3E88oIUAPLqecZBIiBbnVh4YnsiAHjs2bv/QGPz
+	EfbgHjk8Xi1i3SPsv8rehtxVrlZlHWQtKbE+uCFxkNPcnO2GIyDbk2v4npYjwODRyNTS
+	TohH2J5ctrjahfQoKemwgKwoLSkigEyGEuuCGYyDNEAH2XJy4RltjYA8HpPTs84TPFaQ
+	pTldEo/8BSstsXKAPH10d/wGKLEiINuaZHh+qyPA4XG4nbMbcY8bqHtk8FgrnHvsSnjk
+	BSkFyMwDyZvDV8xHQLY6u/DENkaAwaMB4x5nEPeYnJ4JeCzp0njk9SgE5KXTR3bHCQHZ
+	BxfptDHd8PQWIiCPx91HTud3eTzyguQA+ZI4SArI5QwgzYwN+uEcZAvphS+3LQIcHs1I
+	cXXG/OXhm5MPIB7JCgFuTQALyHdvoMTKADIkcLaXmxMtsSIg25ZueHYLESB47DPAyJS4
+	R685gSEb4gCPlwCPb6o+dmH3KBFkE7nN4+/v9Z+rK16W3LlyjgBynQCQvXCRTgsZhi+3
+	IQIUj/0MjKXxeKWo5CVfXG2ipCAZ2rV+BID80VD7kQdkFAKyDSmGp7YhAjwendy8Zgvx
+	+K6r45G9YpUHZBIBpA/MQVoRB4mAbEO64anNR4DgETaYMzazYtzjus1JBzLPXblD8PiZ
+	nXvsqniUcpAAyBoGkNlHUuMoICc42ZJFOuggm08xfLUNEZDg0ZbBY1RcKuseCR5/8I8k
+	71pzj9x1Ob1ilQDyQ8XLYuIg9yfFEEB6EEAORkC2Id3w1OYjIIVHn/nL18UweCxGPFJJ
+	SjtIBpB52YdTt0eFBMz2AkAOMzXSR0A2n2T4aqsjIMDjBK/ZASGAx8PZtLj6rgbxCJJk
+	AfkbSqyN9Z8/lPOAXDbPx2PcaARkq3MNT2wxAiweB5tZjR7n4TNvGeBxP3GPgMcPjHv8
+	3dR13SMhpBCQ31gHyQAyOMDPkwByCOzPiot0Wkw1PKEVEaB41DcaMszWieAxOGo74DGP
+	zD0CHmH/VcmGVl3TPUoE2dQkC8gdMWsRkK3IMDylDRGQxeNaCR7LAY+NcGNHV8ejPCBf
+	P71/gwJyPQWkIwNIPXzUXBvyDk9VHAEGj4YUj55+AcHrGTzef/Ya8UjYSH8UOMjLZzP3
+	IyAV5xQebXcE5PG4A9zjZXCPiEdOjTKA/FrzDgBZmHcKSqwIyHZnHr5RUQQAj3p99Ake
+	HScI8fgU8cjLUb7E+qL49uWzGfsAkEFMiXUozkEqSi881rYIcHgcyhZX18bs2Jd59vLt
+	4heIRzk9wuYBcJvHj29fayoJIHNPHUqNXR+82M9zvKMNLbGig2xb9uHZshGQxuNi4h4P
+	ncorvE/w+BWLq7wkZR2kBJBhQf4+k2AOEgEpm1v4d5sjII1H/yCCxwzEIy9DyW9Sc5Ay
+	gJw1FQHZ5tTDNyiIgASPNo7jPf0Aj7GAx1yCx0rEo0SL9BcJIH8xi3RePKIOMjGGAnLs
+	KASkgvzCQ22KAI/HUeMm+fgHhbF4fITuUVqM8JcSQO6KjQxejIBsU9rhyUoiIMTj1FmL
+	gyMRj3I6lByQAuSn9+UAyIKcjDRZQPboriTYeBgj0EIEmPseBw+1GjWWwWPivoycgtsE
+	j59gac4vXJojUaMCQD65V5h78iAPSAuyihVLrC3kHL6sNAIcHi3APTJ43IXuUaBAmV8Z
+	QP75/e+vn431HCCPpyVuClvqP32SxEEiIJUmHL7QbAS69yCPBWDwOB3c46bENBaP7wGP
+	PxGP0oLkHCRsYA5zkNWVr5/cu04AuS1y1SJwkA42LCC7d2s26vgiRkBhBLp1Z5bmCPB4
+	8GTu9XtP2OLqP7+73g460gqU+UsIyDoA5PNHtwpyCCBDOUAOIg8KQEAqTDc82EIEGDwO
+	ou5xuv9SgsfjOQW3wD2+/1RH8cjqUSYtu+yfsoB8BYC8SAAZQQDpCoA0MdTvrYf7s7aQ
+	ePiyogjAZAdZuWpiYeMA7nHRqshtuw6evEjxWE2W5nTFDeZa+KeGAyRsYN4oAGQCBeRE
+	4iAHGfRFQCrKNjzWUgRk8Bi6KYHB43MWj5L7kFtI0i70shJAphBAzpzCALI/ArKlzMPX
+	FUSA4LE3g0fXqTMXrYrg8PiqEvGo7N8YOUA+vJWfc3wvC8gxoyxNEZAKcg0PtRwBgse+
+	BsQ9jpkI7pHD40PEozIxwnEZQL5lHGS6BJDWFiYDEZAtJx+eIRsBisf+A00srB1cp1A8
+	pjDuEfHYjB7ZR82R265YB0kAeWxvQnToEn/viWNGIiBlEw3/blUEWDyaWo4cM9Eb8Bid
+	sPd4Tv4txGNzapQC5HeYgwRA3r1+8UR6ytaIlQvBQdojIFuVfXiSTARk8LgyYmtK+glS
+	XH31Ft1jc5JU6CCP7Y2PXrNkrhCQuCZAJuPwz+Yi0I1xjwwe5y4heDyGeGxOiOxrAgf5
+	vf4LAPLx3WsXCCDDWUCao4NsLvHwNUUR4PFoD+5xIYvHa3cfEzzWf8e5R+XKFACyoe5T
+	VdnzhzeJg2QA6c45SHz0o6K0w2NKIgAryUlxlcPjmuh4gsebD5+XMUtzcO5RqSCVAHIn
+	AaTvZHCQCEglSYeHlUWAw6O5NeDRd+HK8K07009cYPD4BfGoVIvkBU6PdAPzuo9VZc9Y
+	QG4kDpIB5IC+uHmAstzD4/IREODR3XvuEgken5VVfapr+MlvEdBsZnbRFzlBwm0e1EGW
+	EgeZlc4C0gUBKZ9veKTZCAjw6DJZiMfSt9WIx5b+meH0yAPywc38M0f3xG9cEzjH292Z
+	zEEiIJtNQHxRKgIUjwOoe6R43Bi/5+gZcI+Ax49SeOy6O+g0J0pOkLD9HAvIIgrILeEr
+	FvjCBuYjqIPsibd5SCUd/qEsAjJ4XBG+ZWd6FnGPiMfmZCh5jdOjPCBXB86Z5u5sZwkb
+	mKODVJZ+eFwmAjwend295wSuZvH4APEokVzzv3CCFADyKnGQPCCNYRUrAlIm7/BPhREA
+	PPbs3X+gsfkIe3CPC1g8Xi1i8QgbzOFjAVqnRwrIWlJifXCDcZAEkG7OdsMRkApTDw8q
+	iACDRyNTSztn92kSPML+q+gem5ch/6oMICtKHxddPZ+VnkwAOYM6SGMDBKSC3MNDchGQ
+	x2NyetZ5gscKUlxFPPKyU/obp0cpQJ4+ujt+AwJSLuHwQLMR4PA43M7ZTRaPtcK5Ryyu
+	KtWjZFEA6yArSksAkJkHkjcjIJtNPnxRNgIMHg0Y9ziDuEcGjyWIR+Xyk3tFESAvnT6y
+	O04IyD64SEc2+/Bv2QjI4nFD/O6jp/MZ94h4lBOesgOcIOUBuXw+dZBmxgb9sMQqm334
+	t0wEpPE4f3n45uQDmeAeEY/KlKf4OKdHzkG+gRIrA8iQwNlebk60xIqAlMk+/FM2AgSP
+	fQYYmbLuMWRD3O4jpy8BHt9UfUQ8KtaewqNUkE1NfyggP1dXvCwpukId5DoBIHvhHKRs
+	AuLfwghQPPYzMDYjc48zODxeKSp5icVVhbJTelAAyB8NtR/fISCFeYa/ty4CPB6d3Lxm
+	Bwrw+A7xqFR7Cl+QB+SdK+cyDyRtZgFpRRwkArJ1edlFzyJ4hB10JHhcR9zjuSt3CB4/
+	s3OPTTTRFKYgHhREQCEgs4+kxkUxDtKWLNJBB9lFlda6jy3Boy2DxyiJeyR4/MHf94hz
+	jwLlKflVDpDFBJD7k2IAkD4eLvZWZoMRkK3Lyy56lgSPVuAefeYvXxeThHhUoraWD0sD
+	soY6yLzsw6nbo0ICZntNcLIdZmqkj4DsolprzccW4HECcY9RcalHsmlx9V0N4rFlBcqc
+	wQLyN5RYG+s/fyh/KQHksnk+HuNGIyBbk5Rd9xwWj4PNrEa7ePjMWwZ43E/cY/HLig/o
+	HmXE1oo/hYD8VisEZHCAnycBJNnAHBfpdF3FNf/JKR71jUyH2ToBHgOCo7anHs7OI3OP
+	gEfYYE7yUDl0j61QI5yiBJA7YtYiIJtPRXz1r78EeBwnjcdywGMj3NjxuwmLq61TInOW
+	LCBfP71/gzrI9RSQjgwg9fBZrCg/BRFg8Gg4hODR0w/x2BblKTlXASAvn83cj4BUkH54
+	SDoCsnhcG7ODdY+IRyVya/GwFCC/1rwDQBbmnYISKwJSOvnwL7kIAB7J9uSAR0eKx/WM
+	e7z/9DW6xxaFp+wEWUC+KL4NgNwHgAxiSqxDcQ5SLhPxAERAIR7PXr5T/ALxqExtLR+X
+	AWQlAWTuqUOpseuDF/t5jne0oSVWdJAoQdkISONxcTDB46m8QorHr1hcbVl6is9QCMgM
+	AGRYkL/PJJiDREDKZiL+DRHg8DjUajQprgaBe9yXcfbybcSjYp219mhzgJw1FQGJ4lMc
+	AQkebRzHe/oBHmNTD53KJXisrEE8tlZ9Cs6TAPIXs0jnxSNwkBn7EhlAjh2FgFSckF37
+	qBCPk3z8g8IQjwq01Z5DSgC5KzYyeDECsmurTvmnF+Jx6qzFwZGIx/aIT9F7pAD56X05
+	ALIgJyNNFpA9uiv/dvCVLhYBHo+jxjJ4TKTu8RFbXP2FS3MUSa1Vx+QBea8w9+RBHpAW
+	ZBUrlli7mOSa/bgcHi3APTJ43IXusVVqa8VJPCB/NtZzgDyelrgpbKn/9EkSB4mAbDZF
+	u9SL3XuQxwIMHmolwWNaRk7BbcDj+0/1jT8Rj62QndJTOEDC/qw/vn2trnz95N51Asht
+	kasWgYN0sGEB2b1bl8o5/LBKI6AAjwdP5hbee4LFVaUqa8MLDCD//P7318/GOgrIWwU5
+	BJChHCAHkQcFICCVJmgXe0GIx+n+S8M2JaYdzym4JcAju6NVG5IQT5VEQBaQrwCQFwkg
+	IzhAmhjq99bD/Vm7mOyUfdxu3enKVRMLGwdwj4tWRW7bdfDkxesEj9Vk7hE3mJNIq32/
+	cID8HwvI548oIBMoICcSBznIoC8CUll+drXjDB4HUfcIeAzdlMDg8Tm4xzrqHhGP7RMi
+	+y4lgEwhgJw51RUcpIlhfwRkV9Odks8Lkx16vfUNCR5dp85ctCqCw+MrxGOHZMi/WQ6Q
+	D2/l5xzfywJyzChLUwSkkuzseocJHvsaUDxOVIRHyWM6+PzC39oWARlAvmUcZDoDyCmu
+	DtYWJrCBOTrIric++U9M8dh/oImFtYPrFIrHFMY9Ih7bJrrmzlYIyGN7E6JDl/h7Txwz
+	EgEpn5hd9AiLR1PLkWMoHqMT9h7Pyb/1kHOPiMfmhNbK1wSA/A5zkADIu9cvnkhP2Rqx
+	cuFMBGQXlZ6ijy2Dx5UR21LST5Di6qu3WFxtpdpacZoSQMZHr1kyVwhIXBOgKEm70DEh
+	Hr3nLgkFPB5DPLZCYW07RQjI+i8AyMd3r10ggAyngLS3NkcH2YVUp/Sj8ni0B/e4cGXE
+	VoLHa3cfEzzWf8e5x7bJTvnZ0oCsKnv+8GZ+zrG9DCDdOQeJj35Umqld4wVYKkeKq9Q9
+	Ah7XRMcTPN5E96hcWe17RQkgdxJA+k52RUB2Db218Ck5PJpbAx59F64M37oz/cQFBo9f
+	EI/tk57idwkA2VD3sarsGQvIjcRBMoAc0Bc3D2ghYTv5ywI8ukvhsazqU13DT36LAMU5
+	hkdbHwFZQJYSB5mVzgLSBQHZyaXWmo8nxONkxGPrxdWOMzk9/oZVrAwgH9zMP3N0T/zG
+	NYEASGcyB4mAbE3Wdt5zKB4HUPdI8bgxfs+xM+Aen5VVfZTCI+6g0w4FyryFEyRsP/ed
+	lFhLHxdRQG4JX7HAd7KL/QgssXZepbXqkwnw6AJ4XBG+ZWd6FnGPpW+r0T3KyKnDf3J6
+	lAfk6sA509yd7RCQrcraznsSj0dnd+85gasBj0cBjw8Qjx0Wn6IGOEEKAHmVOEgekMaw
+	irUn3gfZeRXX7CcDPPbs3X+gsfkI2J7cdwGHxyIWj7DBHHufFV6tKpJXm49xeqSArCUl
+	1gc3GAfJAnK4qRE6yGZTtlO/yODRyNTSztl9GuKxzfpq8xs4QbKArAAHefV8VnoyAeQM
+	6iCNDRCQnVpzzXw4eTwmp2edv4p4bLPOWvsGTo8ygNwdv4EA0s3ZDgHZTL529pc4PA63
+	c3bj8Qjbk0NxtVY494iXq60VXEvncYKUALIEAJmZnrwZAdnZ1dbi52PwaMC4xxnEPTJ4
+	LCmtIMVVdI8tiasdr3N6FALy0ukj0oDsg4t0WkzeTniCLB43xO8+ejof8dgOmbX+LZwg
+	pQF5AAC5fD51kGbGBv2wxNoJ5dbSR5LG4/wV4ZuTD2SCe0Q8tl5dbT+T0yMHyDdQYiWA
+	jNsQEjjbi3WQCMiWkrcTvk7w2GeAkSnnHjfE7T5y+hLg8Q26x7brrNXvoIJsavpDAfm5
+	uuJlSdGV85kAyHUCQPbCOchOqLhmPxLFYz8DYzMy9zhj/nIJHl+ie2y1uNpxogCQPxpq
+	P76TAaQTLbEiIJvN3c74Io9HJzev2YEhPB7fYXG1HTpr9VvkAXnnyrnMA0kcIK2Ig0RA
+	dkbNNfOZCB5hBx0JHtcR93juyp0SwONntrjaRFOn1YmGJ7YqAgoBmX0kNS6KOkgnWzIH
+	iYBsJnc740uyeIySuEeCxx/8fY8499gqlbXhJDlAFhNA7k+KAQfpA4t0rMwGIyA7o+aa
+	+UwSPFqBe/SZv3zd5iTEYxs01ZFTpQFZQx1kXvbh1O1RIQGzvSY42Q4zNdJHQDaTvZ3v
+	JQkebZ0mEPcYFZd6JJsWV9/VIB47orZWvJcF5G8osTbWf/5Q8VICyGXzfDzGjUZAdj7B
+	Nf+JWDwONrMa7eJB8BiTtJ+4x+KXFR/QPbZCUh06RQjIb7VCQAYH+HkSQJINzHGRTvM5
+	3JlepXjUNzIdRvEYEBK1PfVwdh6ZewQ8wgZzkkeSo3vskPKUvFkGkOUSQK5FQHYmmbX2
+	swjwOM7DZ94yHo/lgMdGWLn6uwmLq0rEpILDsoB8/fT+Deog11NAOjKA1MNnsbY2oXX8
+	PAaPhkMIHj39AoIRjyoQWVuaUADIy2cz9++IQUDquLTaM3xZPK6N2cG6R8RjW1TV/nMV
+	ALIw7xSUWBGQ7UloHX8P4FGvjz7BoyPF43rGPd5/+hrdY/s11qZ3ygLyRfFtAOQ+AGQQ
+	U2IdinOQOq6yVg9fIR7PXr5T/ALx2CZRdeBkKUB+rakEB1mYe+pQauz64MV+nuPRQbY6
+	m3X/REV4PJVXSPH4FYurHVBZG96qEJAZFJD+PpNgDhIBqftKa9Un4PA41Go0Ka4GgXvc
+	l3H28m3EYxvk1OFTmwPkrKnjHW3oHCSWWFuV0jp9kgSPNo7jPf0WB6+PTT10KpfgsbIG
+	8dhhobW2AQkgf9FFOuUvHoGDzNiXGBMWBIAcOwoBqdMqa/XghXic5OMfFIZ4bK2EVHqe
+	EkDuio0MXoyAbHU66/yJQjxOnYV4VKnI2tKYFCA/vSeALMiRB2SP7jqfcvgBlEeAx+Oo
+	sQweE6l7fMQWV3/h0py2iKoD58oD8l5h7slDPCAtyCpWdJDKc7kzvMLh0QLcI8FjZOwu
+	dI8dUFUH3soD8mdjPQfI42mJm8KW+k/nHSQCsjPoTtln6N6DPBZg8FArCR7TMnIKbgMe
+	33+qb/yJeOyAwNr4Vg6Q//7z68e3r9WVr5/cu5578uCubZGrFoGDdLBhAdm9m7IvE4/r
+	egQU4PHgydzCe0+wuNpGNangdAaQf37/++tnYx0A8vmjWwU5BJChHCAHkQcFICB1XXXK
+	xy/E43T/pWGbEtOO5xTcEuCR3dFKBemGTbQQAVlAvgJAXpQCpImhfm893H5OeT7r+Cvd
+	utOVqyYWNg7gHhetity26+DJi9cJHqvJ3CNuMNeChFT7MgdI2MBcCMgECsiJZA5ykEFf
+	BKSOi66Z4TN4HETdI+AxdFMCg8fn4B7rqHtEPKpWcs22pgSQKdsiVi2aOdUVHKSJYX8E
+	ZDMJrdsvwWSHXm99Q4JHV4LHCA6PrxCPzQpHXS/KAfLhrXxwkCwgx4yyMkVA6rbkmh09
+	wWNfA4rHiYrwKHlMh7ryD9uVjoAMIN+yDpIB5BRXB2sLE9jAHB1ks1mtsy9SPPYfaGJh
+	7eA6ZSbBYwrjHhGP0jLR3F8KAXlsb0J06BJ/74ljRloiIHVWbi0OnMWjqeXIMRSP0Ql7
+	j+fk33rIuUfEo+aEyPYkAOR3mIMEQN69fvFEesrWiJULZyIgW0xpXT5BAR7TT5Di6qu3
+	WFzVuBKFgmz6Q7afY0qsxEEe2xsfvWbJXCEgcU2ALktP4diFePSeuyQU8HgM8agtIQr1
+	+H9k+7lf3+u/ACAf3712gQAynALS3tocHaTCbNb5gzwe7cE9LlwZsTUF8Hjt7mOCx/rv
+	OPeoHWUKHGRD3aeqsucPb/KAdOccJD76Uef1J/sBYKkcKa5S9wh4XBMdT/B4E92jdnTI
+	9Sp0kAJA7iSA9J3iioCUzeNO8jeHR3NrwKPvwpXhBI8XGDx+QTxy8tD8f6UA+bGq7BkL
+	yI3EQTKAHNAXNw/oJDKUfAwBHt2l8FhW9amu4Se/RYDmM7Jr9ygLyFLiILPSGUDC9nPo
+	ICU53Il+EeJxMsXjTsSjKP4h4PRISqwNdQSQD27mnzm6J37jmkAApDOZg0RAdiIp0o9C
+	8TiAukeKx43xe46dAff4rKzqoxQecQcdTauUEyRXYuUAuSV8xQJfAOQILLF2NjX+JcCj
+	C+BxRfiWnelZxD2Wvq1G96hpBUr3x+lRHpCrA+dMc3e2s4QNzNFBdipN8nh0dveeE7gG
+	8HgU8PgA8SitDa38xQkS9melc5Clj4uuEgfJA9IYVrH2xPsgO40kAY89e/cfaGw+ArYn
+	913A4bGIxSNsMMfeZ4VXq1pQJKdHCsha6iBvMA6SBeRwBGSnkSL9IAwejUwt7Zzdp80J
+	XI141ILslHfJCZIFZAUB5Pms9GQCyBnUQSIgO5Mg5fGYnJ51/iriUblENPoKp0cZQO6O
+	30AA6eZsh4DsTHL8i8PjcDtnNx6PsD05FFdrhXOPeLmqUR1KOuMEKQFkCQAyMz15Mw9I
+	A3SQnUWTDB4NGPc4g7hHBo8lpRWkuIruUaILbf3C6VEIyEunj0gDsg8u0ukcipTF44b4
+	3UdP5yMetaU+Bf1ygpQG5AEA5PL51EGaGRv0wxJrp9CjNB7nLw/fnHwgE9wj4lGBMLR0
+	iNMjB8g3zx7cIICM2xASONvLzYk6SARk59Aj3NjRZ4CRKeseQzbE7T5y+hLg8Q26Ry3J
+	T75bKsgmch8kzEF+rq54WVJ05XwmAHKdAJC9cA5S9xVJ8djPwNiMzD3O4PB4pajkJbpH
+	eV1o64gMIN8hIHVfeYo/AXGPDB6d3LxmBwrw+A6Lq9qSn3y/8oC8c+Vc5oEkDpBWxEEi
+	IBXnuA4dJXiEHXQkeFxH3OO5K3cIHj+zxdUmmgzyOYJHNBcBASB/NNR+ZACZfSQ1Lopx
+	kLZkDhIdpA4pT/FQZfEYJXGPBI8/+Psece5Rc+JT1JMcIIsJIPcnxYCD9PFwsbcyG4yA
+	VJzjOnRUgkcrcI8+85ev25yEeFQkB60fkwZkDQVkXvbh1O1RIQGzvSY42Q4zNdJHQOqQ
+	9hQNVYJHW6cJxD1GxaUeyabF1Xc1iEeti1A4ABaQv6HE2lj/+UPFSwkgl83z8Rg3GgGp
+	KMF16xiLx8FmVqNdPAgeY5L2E/dY/LLiA7pHoRq0/7sQkN9qhYAMDvDzJIAkG5jjIh3d
+	UqD0aCke9Y1Mh1E8BoREbU89nJ1H5h4Bj7DBnOSR5OgeRSLIpiYOkOUSQK5FQEqnta7+
+	JcDjOA+fect4PJYDHhth5ervJiyual+JzAhkAfn66f0b1EGup4B0ZACph89i1VU50hs7
+	+ugbDiF49PQLCEY8ikV7Csch4yAJIC+fzdy/IwYBqbMSFA5cFo9rY3aw7hHxqFAQWj6o
+	AJCFeaegxIqAFKa1zv4O7lGPwaMjxeN6xj3ef/oa3aOWpae4e1lAvii+DYDcB4AMYkqs
+	Q3EOUmfVSB4qR5bmkOIqdY8Uj2cv3yl+gXhUrAdtH5UC5NeaSnCQhbmnDhFALvbzHI8O
+	UnfFCCOXxuPiYILHU3mFFI9fsbiqbfEp6l8hIDMoIP19JsEcJAJSZyXJ4XEog8cgwOO+
+	jLOXbyMeFSlBHMeUATIWADlr6nhHGzoHiSVWXRSlBI82juM9/QCPsamHTuUSPFbWIB7F
+	oT+5UUgA+Ysu0il/8QgcZMa+xJiwIADk2FEISF2UIhmzEI+TfPyDwhCPctkvvgNKALkr
+	NhIBqatKZMYtxOPUWYhH8WlP4YikAPnpPQFkQU5Gmiwge3TX7ezscqPn8ThqLIPHROoe
+	H7HF1V+4NEehHrR9UB6Q96DEepAHpAVZxYoOUtcEzeHRAtwjwWNk7C50j9oWW2v65wH5
+	s7GeA+TxtMRNYUv9p/MOEgGpW4rs3oPOPQ61kuAxLSOn4Dbg8f2n+safiMfWaEMb53CA
+	hO3nfnz7Wl35+sm967knD+7aFrlqEZRYHWxYQHbvplsJ2bVHqwCPB0/mFt57gsVVbYis
+	LX0ygPzz+99fPxvrKCBvFeQQQIZygBxEHhSAgNQlhQvxON1/adimxLTjOQW3BHhkd7Rq
+	S6bguZqIgCwgXwEgLxJARnCANDHU762H28/pkB67dacrV00sbBzAPS5aFbltF+DxOsFj
+	NZl7xA3mNKGsdvbBARI2MKeAfP6IAjKBAnIimYMcZNAXAalDcvyLweMg6h4Bj6GbEhg8
+	Pgf3WEfdI+KxnWpR/9uUADKFAHLmVFdwkCaG/RGQOqRHmOzQ661vSPDoSvAYQfB4EfD4
+	CvGofj11uAc5QD68lQ8OkgXkmFFWpghIHVLjXxSPfQ0oHicqwqPkMR0dTh1sQA0RkAHk
+	W9ZBMoCc4upgbWECG5ijg9QVTVI89h9oYmHt4DplJsFjCuJRDbpRW5MKAXlsb0J06BJ/
+	74ljRloiIHVFi2ScxD0CHk0tR46heIxO2Hs8J//WQ849Ih7VpiTVNCwA5HeYgwRA3r1+
+	8UR6ytaIlQtnIiB1SYswVgV4TD9B3eNbLK6qRjDqbkUJIOOj1yyZKwQkrgnQAW0K8eg9
+	d0ko4PEY4lHdElJp+0JA1n8BQD6+e+0CD0h7a3N0kDqgRDpEHo/24B4XrozYmgJ4vHb3
+	8SvAY/13nHtUqXLU1Jg0IKvKnj+8mZ9zbC8DSHfOQeKjH3VAlLBUTuIeAY9rouMJHm+i
+	e1STdNTSrBJA7twavnKh72RXBKQOCJEZIodHc2vAo+/CleEEjxcYPH5BPKpFPWpoVADI
+	hrqPVWXPWEBuJA6SAeSAvrh5gPhlKcCjuxQey6o+1TX85LcIUEMSYZMqi4AsIEuJg8xK
+	ZwHpgoAUvxLpCIV4nEzxuBPxqDKVaK4hTo+/YRUrA8gHN/PPHN0Tv3FNIADSmcxBIiDF
+	L0qKxwF07pHicWP8nmNnwD0+K6v6KIVH3EFHc+JqT0+cIGH7ue+kxFr6uIgCckv4igW+
+	k13sR2CJVfxqlMw9gnt0ATyuCN+yMz2LuMfSt9XoHtujC229h9OjPCBXB86Z5u5sZwkb
+	mKODFLkmeTw6u3vPCVwDeDwKeHyAeNSWrtrdLydIASCvEgfJA9IYVrH2xPsgRSxJcI89
+	e/cfaGw+guBxAYfHIhaPsMEce58VXq22WyeaeiOnRwrIWlJifXCDcZAsIIcjIEUsRTo0
+	Bo9GppZ2zu7T5gSuRjxqSj1q6IcTJAvICnCQV89npScTQM6gDhIBKW5ByuMxOT3r/FXE
+	oxrUov4mOT3KAHJ3/AYCSDdnOwSkuOVI91/tO8DIdLidsxuPR9ieHIqrtcK5R7xcVb+c
+	Ot4DJ0gJIEsAkJnpyZt5QBqggxSvJhk8GjDucQZxjwweS0orSHEV3WPHJaLRFjg9CgF5
+	6fQRaUD2wUU6YlUk5x45PG6I3330dD7iUaMiUmVnnCClAXkAALl8PnWQZsYG/bDEKlI9
+	SuNx/vLwzckHMsE9Ih5VqRFNtsXpkQPkGyixEkDGbQgJnO3l5kQdJAJSrHqEGzv68O4x
+	ZEPc7iOnLwEe36B71KSKVNgXFWRT0x8KyM/VFS9Liq6czwRArhMAshfOQYpRkRSP/QyM
+	zcjc4wwOj1eKSl6ie1ShRDTalAwg3yEgxag8xWMi7pHBo5Ob1+xAAR7fYXFVoypSYWfy
+	gLxz5VzmgSQOkFbEQSIgFStCq0cJHnsJ8LiOuMdzV+4QPH5mi6tN9OtVYbpgU2qOgACQ
+	PxpqPzKAzD6SGhfFOEhbMgeJDlKrylPcuSweoyTukeDxB3/fI849qllDKm1eDpDFBJD7
+	k2LAQfrAIh0rs8EISMWK0OpRCR6twD36zF++bnMS4lGlytBOY9KArKGAzMs+nLo9KiRg
+	ttcEJ9thpkb6CEitak9R5xI82jpNIO4xKi71SDYtrr6rQTxqR0sq6ZUF5G8osTbWf/5Q
+	8VICyGXzfDzGjUZAKpKDto+xeBxsZjXaxYPgMSZpP3GPxS8rPqB7VIkwtNSIEJDfaoWA
+	DA7w8ySAJBuY4yIdbStQun+KR30j02EUjwEhUdtTD2fnkblHwCNsMCd5JDm6Ry3pqt3d
+	ygCynAXkjpi1CEhpEYjnLwEex3n4zFvG47Ec8NgIK1d/N2Fxtd2S0OobZQH5+un9G9RB
+	rqeAdGQAqYfPYhWPHOmNHX30DYcQPHr6BQQjHrUqIdV2rgCQl89m7kdAikiA0kORxePa
+	mB2se0Q8qlYb2mhNASAL805BiRUBKS0D0fwF7lGPwaMjxeN6xj3ef/oa3aM2FKTiPmUB
+	+aL4NgByHwAyiCmxDsU5SNFoEQaiEI9nL98pfoF4VLE0tNKcFCC/1lSCgwRAHiKAXOzn
+	OR4dpJjESPSoAI+n8gopHr9icVUrGlJppwoBmUEB6e8zCeYgEZAikiSHx6FWo0lxNQjc
+	476Ms5dvIx5VKgotNqYIkLkAyFgA5Kyp4x1t6BwklljFIUoJHm0cx3v6LQ5eH5t66FQu
+	wWNlDeJRizJSXdcSQP6ii3TKXzwCB5mxLzEmLAgAOXYUAlIcUiSjEOJxko9/UBjiUXVC
+	EElLSgEZiYAUjxKZkQjxOHUW4lEkElLtMKQA+ek9AWRBjjwge3QXW3Z2ufHweBw1lsFj
+	InWPj9ji6i9cmqNaaWilNXlA3isEB7krlgOkBVnFig5S+/Ln8GgB7pHgMTJ2F7pHrWhG
+	rZ3ygPzZWM8B8nha4qawpf7TeQeJgNS2Irv3II8FGDzUSoLHtIycgtuAx/ef6ht/Ih7V
+	KhONNc4B8t9/fv349rW68vWTe9dzTx7ctS1y1SIosTrYsIDs3k3bCdm1+1eAx4Mncwvv
+	PcHiqsa0opGOGED++f3vr5+NdRSQtwpyCCBDOUAOIg8KQEBq998DIR6n+y8N25SYdjyn
+	4JYAj+yOVhpJGuxEbRGQBeQrAORFAsgIDpAmhvq99XD7Oa3qsVt3unLVxMLGAdzjolWR
+	23YdPHnxOsFjNZl7xA3m1CYQTTfMARI2MKeAfP6IAjKBAnIimYMcZNAXAalVOf7F4HEQ
+	dY+Ax9BNCQwen4N7rKPuEfGoaeGoqT8lgEwhgJw51RUcpIlhfwSkVvUIkx16vfUNCR5d
+	p85ctCqCw+MrxKOaZKG9ZuUA+fBWPjhIFpBjRlmZIiC1qsa/KB77GlA8TlSER8ljOrSX
+	RdizqiIgA8i3rINkADnF1cHawgQ2MEcHqT1NUjz2H2hiYe3gOoXiMYVxj4hHVYlATO0o
+	BOSxvQnRoUv8vSeOGWmJgNSeFknPxD0CHk0tR46heIxO2Hs8J//WQ849Ih7FJKcOj0UA
+	yO8wBwmAvHv94on0lK0RKxfOREBqV4vQuwweV0ZsS0k/QYqrr95icbXD2S/CBpQAMj56
+	zZK5QkDimgCtaFOIR++5S0IBj8cQjyLUkaqGJARk/RcA5OO71y7wgLS3NkcHqRUl0k55
+	PNqDe1y4MmIrweO1u48JHuu/49yjqmQgnnakAVlV9vzhzfycY3sZQLpzDhIf/agVUcJS
+	OYl7BDyuiY4neLyJ7lE8+lH1SJQAcufW8JULfSe7IiC1IkSmUw6P5taAR9+FK8O37kw/
+	cYHB4xfEo6qlII72BIBsqPtYVfaMBeRG4iAZQA7oi5sHaEOWAjy6S+GxrOpTXcNPfosA
+	cWQSjkIVEZAFZClxkFnpLCBdEJDaUCLtU4jHyYhHVSS7DrTB6fE3rGJlAPngZv6Zo3vi
+	N64JBEA6kzlIBKQ2REnxOIDOPVI8bozfc+wMuMdnZVUfpfCIO+jogM5aPUROkLD93HdS
+	Yi19XEQBuSV8xQJf2J91BJZYtaFGydwjuEcXwOOK8C0707OIeyx9W43usdXprXMncnqU
+	B+TqwDnT3J3tLGEDc3SQGtckj0dnd+85gasBj0cBjw8QjzonsbYNmBOkAJBXiYPkAWkM
+	q1h74n2QGpUkuMeevfsPNDYfQfC4gMNjEYtH2GCOvc8Kr1bblu6iP5vTIwVkLSmxPrjB
+	OEgWkMMRkBqVIu2MwaORqaWds/s0xKPoVaTCAXKCZAFZAQ7y6vms9GQCyBnUQRobICA1
+	K0mFeDx/FfGowrwXa1OcHmUAuTt+AwGkm7MdAlKzYoTeODwOt3N24/EI25NDcbVWOPeI
+	l6tilVX7x8UJUgLIEgBkZnryZgSkxoXIdMjg0YBxjzOIe0xOzwI8lpRWkOIqusf2J7sO
+	vJPToxCQl04fkQZkH1ykozlxyuJxQ/zuo6fzEY86ICZVDJETpDQgDwAgl8+nDtLM2KAf
+	llg1pkdpPM5fEb45+UAm4lEVqa4TbXB65AD5BkqsBJBxG0ICZ3u5OVEHiYDUnB7hxo4+
+	A4xMOfe4IW73kdOXAI9v0D3qhKA6OkgqyKamPxSQn6srXpYUXTmfCYBcJwBkL5yD1Iwi
+	KR77GRibkbnHGfOXS/D4Et1jRzNdN94vAOSPhtqP7xCQmlGe4l6Ie2Tw6OTmNTswhMfj
+	Oyyu6oagOjpKeUDeuXIu80ASB0gr4iARkIr1o+KjBI+wg44Ej+uIezx35U4J4PEzW1xt
+	ol9YR791fL9YI6AQkNlHUuOiGAdpS+Yg0UGqWHmKm5PFY5TEPRI8/uDve8S5R7HKqePj
+	kgNkMQHk/qQYcJA+Hi72VmaDEZCK9aPioxI8WoF79Jm/fN3mJMRjxxNcx1qQBmQNdZB5
+	2YdTt0eFBMz2muBkO8zUSB8BqWLtKWpOgkdbpwnEPUbFpR7JpsXVdzWIRx2TVfuHywLy
+	N5RYG+s/f6h4KQHksnk+HuNGIyAViUf1x1g8DjazGu3iQfAYk7SfuMfilxUf0D22P791
+	7Z1CQH6rFQIyOMDPkwCSbGCOi3RUr0DpFike9Y1Mh1E8BoREbU89nJ1H5h4Bj7DBnOSR
+	5OgedU1ibRuvDCDLJYBci4CUlow6/xLgcZyHz7xlPB7LAY+NsHL1dxMWV9uW2bp5tiwg
+	Xz+9f4M6yPUUkI4MIPXwWazqlCO9saOPvuEQgkdPv4BgxKNuqkkFo1YAyMtnM/fviEFA
+	qlWCwsZl8bg2ZgfrHhGPKkhxnWpCASAL805BiRUBKZSMWn8H96jH4NGR4nE94x7vP32N
+	7lGnxKSKwcoC8kXxbQDkPgBkEFNiHYpzkGpVI3moHFmaQ4qr1D1SPJ69fKf4BeJRFRmu
+	W21IAfJrTSU4yMLcU4dSY9cHL/bzHI8OUr1ihNYV4fFUXiHF41csruqWnDo+WoWAzKCA
+	9PeZBHOQCEi1SpLD41AGj0GAx30ZZy/fRjx2PLd1sYXmADlr6nhHGzoHiSVWdYlSgkcb
+	x/GefouD18emHjqVS/BYWYN41EVFdXDMEkD+oot0yl88AgeZsS8xJiwIADl2FAJSXVIk
+	7QrxOMnHPygM8djBfNb1tysB5K7YyODFCEh1apHqkSuuAh6nzkI86rqaVDB+KUB+ek8A
+	WZCTkSYLyB7d1Z2bXbB9Ho+jxjJ4TKTu8RFbXP2FS3NUkOG61YQ8IO8V5p48yAPSgqxi
+	RQepjn8uOPdoweIxMnYXukfdko/qR8sD8mdjPQfI42mJm8KW+k/nHSQCUvWK7N6Dzj0O
+	tZLgMS0jp+A24PH9p/rGn4hH1We7+FvkAPnvP79+fPtaXfn6yb3rBJDbIlctAgfpYMMC
+	sns31Sdk125RAR4PnswtvPcEi6vil436RsgA8s/vf3/9bKwDQD5/dKsghwAylAPkIPKg
+	AASkqv/1EOJxuv/SsE2JacdzCm4J8MjuaKW+7x5bFl8EZAH5CgB5UQqQJob6vfVw+zkV
+	67Fbd7py1cTCxgGKq4tWRW7bdfDkxesEj9Vk7hE3mBOfVjQyIg6QsIG5EJAJFJATyRzk
+	IIO+CEgVy/EvBo+DqHsEPIZuSmDw+BzcYx11j4hHjeS/2DpRAsiUbRGrFs2c6goO0sSw
+	PwJSxXqEyQ693vqGBI+uBI8RHB5fIR7FphANj0cOkA9v5YODZAE5ZpSVKQJSxWr8i+Kx
+	rwHF40RFeJQ8pkPDyYDdaT0CMoB8yzpIBpBTXB2sLUxgA3N0kKrUJMVj/4EmFtYOrlNm
+	EjymMO4R8ah1PWh9AAoBeWxvQnToEn/viWNGWiIgValF0hZxj4BHU8uRYygeoxP2Hs/J
+	v/WQc4+IR62rQnsDEADyO8xBAiDvXr94Ij1la8TKhTMRkKrWIrSnAI/pJ0hx9dVbLK5q
+	Twhi6VkJIOOj1yyZKwQkrglQkTaFePT2XxIKeDyGeBSLHLQ+DiEg678AIB/fvXaBADKc
+	AtLe2hwdpIqUSJvh8WgP7nHhyoitKQSPdxk8fse5R60rQssDEACyoe5TVdnzhzfzc47t
+	ZQDpzjlIfPSjikQJS+Uk7tF77pI10fGIRy0rQFzdKwHkTgJI3ymuCEgVCZFphsOjuTXg
+	0XfhynCCxwvX7j4G9/ilHvEoLm1oZTRSgPxYVfaMBeRG4iAZQA7oi5sHqEaWAjy683i8
+	+fB5WdWnuoaf/BYBWkkF7FQEEZAFZClxkFnpDCAnuyAgVaNE2ooQj5MpHnciHkWgATEN
+	gdPjb1jF2lBHAPngZv6Zo3viN64JBEA6kzlIBKRqREnxOIDOPVI8bozfc+xM/s2Hz8qq
+	PkrhEXfQEZNENDsWTpBwH+R3UmLlALklfMUCXwDkCCyxqkaNkrlHcI8ugMcV4Vt2pmcR
+	91iK7lGzOS/m3jg9ygNydeCcae7OdpawgTk6SBVoksejs7v3nMA1gMejgMcHiEcx60Pj
+	Y+MECfuzsoAsukocJA9IY1jF2hPvg+ygJME99uzdf6Cx+QiCxwUcHotYPMIGc+x9Vni1
+	qnENiKlDTo8UkLXUQd5gHCQLyOEIyA5Kkb6dwaORqaWds/u0OYGrEY9iUoGIxsIJkgVk
+	Renjoqvns9KTCSBnUAeJgOy4IOXxmAzu8SriUURKEMdQOD3KAHJ3/AYCSDdnOwRkx+VI
+	91/tO8DIdLidsxuPR9ieHIqrtcK5R7xcFYcstDcKTpASQJYAIDPTkzfzgDRAB9kxTTJ4
+	NGDc4wziHgGP568WlZRWkKU56B61l/6i65nToxCQl04fkQZkH1yk0xFFcu6Rw+OG+N1H
+	T+cjHkUnBjEMiBOkNCAPACCXz6cO0szYoB+WWDugR2k8zl8Rvjn5QCbiUQzJL8IxcHrk
+	APnm2YMbBJBxG0ICZ3u5OVEHiYDsiB7hxo4+Ave4IW73kdOXAI9v0D2KUBDaHhIVZFPT
+	HwrIz9UVL0uKrpzPBECuEwCyF85BtleRFI/9DIzNyNzjjPnLJXh8ie5R27kvxv5lAPkO
+	Adle5Sl+H3GPDB6d3LxmB4bweHyHxVUxCkLbY5IH5J0r5zIPJHGAtCIOEgGpWG0tHiV4
+	7CXA4zriHs9duVMCePzMFleb6Feg7TzA/sURAQEgfzTUfmQAmX0kNS6KcZC2ZA4SHWSL
+	ylN8giweoyTukeDxB3/fI849ikMO2h+FHCCLCSD3J8WAg/TxcLG3MhuMgFSsthaPSvBo
+	Be7RZ/7ydZuTEI/aT3lRj0AakDUUkHnZh1O3R4UEzPaa4GQ7zNRIHwHZovYUnSDBo63T
+	BOIeo+JSj2TT4uq7GsSjqGWhvcGxgPwNJdbG+s8fKl5KALlsno/HuNEISEVSa80xFo+D
+	zaxGu3gQPMYk7SfusfhlxQd0j9rLeHH3LATkt1ohIIMD/DwJIMkG5rhIpzUKlD6H4lHf
+	yHQYxWNASNT21MPZeWTuEfAIG8xJHkmO7lHcEtHs6GQAWS4B5FoEpLTA2vaXAI/jPHzm
+	LePxWA54bISVq7+bsLiq2VzXhd5kAfn66f0b1EGup4B0ZACph89ibZsc6Y0dffQNhxA8
+	evoFBCMedUENIhijAkBePpu5f0cMArKNEhSeLovHtTE7WPeIeBRB0ot4CAoAWZh3Ckqs
+	CEihwNr4O7hHPQaPjhSP6xn3eP/pa3SPIhaDGIYmC8gXxbcBkPsAkEFMiXUozkG2UY3k
+	oXJkaQ4prlL3SPF49vKd4heIRzHkvJjHIAXIrzWV4CALc08dIoBc7Oc5Hh1kW8UI50vj
+	cXEwweOpvEKKx69YXBWzHLQ/NoWAzKCA9PeZBHOQCMg2SpLD41AGj0GAx30ZZy/fRjxq
+	P9vFPwJlgIwFQM6aOt7Rhs5BYom19aKU4NHGcbynH+AxNvXQqVyCx8oaxKP4FaHlEUoA
+	+Ysu0il/8QgcZMa+xJiwIADk2FEIyNZLkZwpxOMkH/+gMMSjljNct7pXAshdsZEIyLYp
+	kTlbiMepsxCPuqUGEYxWCpCf3hNAFuRkpMkCskf39mRnl3sPj8dRYxk8JlL3+Igtrv7C
+	pTkiyHkxD0EekPegxHqQB6QFWcWKDrJ1/7RweLQA90jwGBm7C92jmNNffGPjAfmzsZ4D
+	5PG0xE1hS/2n8w4SAdkaRXbvQeceh1pJ8JiWkVNwG/D4/lN940/Eo/jyX2wj4gAJ28/9
+	+Pa1uvL1k3vXc08e3LUtctUiKLE62LCA7N6tNQnZtc9RgMeDJ3ML7z3B4qrY0l6842EA
+	+ef3v79+NtZRQN4qyCGADOUAOYg8KAAB2fK/NUI8TvdfGrYpMe14TsEtAR7ZHa3Emw04
+	Mm1HQBaQrwCQ/7+9c3+oaev6+ME5HLdEKqko5VYpROVSoVCEKNcuRBclhVRUlFshVC7J
+	raTcKUohSipKN1QKx3OO4/1H3jHnWmvvtXflnEN7t9daY/3wPJ7zPNaec6wxns/8jjnm
+	HFcIIIM5QOqP0Bo4ANvP/WM89ulLK1f1jc0tQT2u9A3Ztf/omSs3CR4byN4jNpjrbV8X
+	xO9zgIQG5hSQzx5RQMZSQDqQPciR2oMRkP8Yjr8weBxJ1SPgMWB7LIPHZ6AeW6l6RDwK
+	IiJ6d5DdAHIfAeQiR1tQkPojhiIg/zEeYbNjwECtEQSPto6LVvoGc3h8gXjsXQ8X2K93
+	AmTx3VxQkCwgbSaZGiAg/zEaf6F4HKxN8ejQFR5l13QIzD1wuGq2gBIgX7EKkgHkXFtL
+	M2N9aGCOCvL7MUnxOHS4vrGZpe1cisd9jHpEPKrZnwX/c10C8uTB2PCA1R7zHWwmmiAg
+	vx+L5L8l6hHwaGAy0YbiMTz24Kms3LvFnHpEPAo+TtQ1AR4gP8IeJACy8OaV0yn7dgb7
+	eC5CQP5zLML/ogs8ppwmydUXrzC5qi5HFsvvdAPImPBNq5fyAYk1Ad3GJh+P8z1WBwAe
+	TyIexRIgap4HH5Bt7wCQjwtvXJYD0sLMCBVkt5FI/ws5Hi1APXr6BO/cB3i8UUjx2PYR
+	9x7V7NEC/zlFQNZVPSu+k5t18qASIPHqx26DEkrlZOpx/tLVm8JjCB7voHoUeGD00vC7
+	AWTCziAfz4VzbRGQ3QYi819weDQyAzwu9PQJIni8fKPwMajHd4jHXvJqAf8sD5DtrU11
+	VWUsILcRBWlPU6zDBmPzgO7CkodHewU8VtU1t7Z/lrcIELCL4NDVaAFlQFYQBZmRwgBy
+	znQEZHeRSP85H49zKB4TEI9q9F7x/RQXj1+hipUBZNGd3PMnDsRs2+QNgLQme5AIyO6C
+	kuJxGN17pHjcFnPg5HlQj2VVdU0KeMQOOuILHdXMiAtIOAf5kaRYKx4XUEDuCNqwYiEA
+	chymWLuLRtneI6jH6YDHDUE7ElIyiHqsQPWoGm8V/1u5eOwMyI3eS+bZW08wgQbmqCC7
+	jEk5Hq3t5y/x3gh4PAF4LEI8ij9uVDZDLiChPysHyOtEQcoBqQdVrP3xHGSnkAT12H/g
+	0OF6RuMIHldweCxg8QgN5thzVrhaVZn3iu/FXDxSQLaQFGvRbUZBsoAci4DsFIr0HzB4
+	1DEwmWBtPw/xKL7Q6J0ZcQHJArIGFOT1Sxkp8QSQrlRBIiC7Csgu8XjpOuKxd9xYNL/K
+	xaMSIJNiwggg7awnICC7Ckfaf3XwMB2DsROs7eR4hPbkkFxt4e894nJVNLGilolwASkD
+	ZCkAMj0lPlIOSG1UkMoxyeBRm1GPrkQ9xqdkAB5LK2pIaQ6qR7X4rhh/hItHPiCvZqYq
+	AnIQFukoRiSnHjk8hsUkncjMRTyKMULUPCcuIBUBmQyAXL+cKkhDPQSkYjTSDjoDh3J4
+	XL4hKDI+OR3xqGbPFefPcfHIAfIlpFgJIKPD/L3dne2mUAWJgFSISILHQTz1GBadlJp5
+	FfEozghR86xoQH779jcF5NuGmvLSgvxL6QDIQDkg4W5k3IOUhSRVj0O09QzJ3qPr8vUy
+	PJajelSz84rw55QAWYuAlAVeN3+Q43GKnbO7t78Mjy9rMbkqwghR85Q6A/J+/sX05DgO
+	kKagIBGQ8tgkePydh8dAoh4v5t8vBTy+ZZOr36hR1fwh8edEYQEeID+1tzQxgDyXmhgd
+	yijI8WQPEhWkLCCV8RjKqUeKx0/yc4+49yiK+FD7JDoBsoQA8khcBChIFyjSMTXURUDK
+	w5HDoymoR5fl6wMj4xCPavdZMf+gIiAbKSBzzh0ngPRyd545ZfwYBKQsHGlpDk2ujp8y
+	k6jH0OjE1HMkufqytrGlHfEo5khR09xYQH6FFGtH29v6mnIZINctc5k9bTICkheODB51
+	DQGPswkeI+KOEPVYUl5Tj+pRTQ4r8p/hA/JDixyQu0P9vNycCCBH6WihgqRBSdWjlo7B
+	GIpHL//Q3YnHz+UgHkUeIuqdnhIgq2WA3IKAlKOR/IlNrgIeJ0+b7bJsnRyP1YDHDqhc
+	/foNk6vq9V7x/ZoyICvLHt4mCnL3VhkgR2gNGoB3sTLqUWvEKIJHJzcvPwU8Qv9VWccO
+	TK6KL0zUN6MuAJl3If3I3ggEpAIflfG4JWIvqx4Rj+rzVvH/UidAPn14K+esDJBWoCAR
+	kGS52o+2Jwc8WlE8bmXU48OnlZBcRTyKP1DUNUNlQD4vuQeAPAyAXMukWEfjHmRn9Ujx
+	eCEPkquIR3V5qjR+RwGQ7xtrKykgjxEFucrNaQYCki5bu8Lj2ZxbFI/vEY/SCBX1zLJL
+	QKZRQHq4zII9SASkLLk6mkmurgU8Hk67kHev5DniUT1eKp1fUQLkawLI7LPHEqMAkIsB
+	kOaoIOXq0dxqhpPbKr+tUYnHzmYTPL5uRDxKJ1bUMtNOgHwECjLt8J6IzWsBkFMnISC5
+	5CrB4ywXj7WbEY9q8Uxp/ki3gAwBQDoiIHnJVcCj42LEozTjRG2zlgHyC1SxNtdXP390
+	71pWZ0D266uwIyed/yDH46SpDB73UPX4iFWPX7A0R22+KoUf6gzIB0RB7o/iAGks7T1I
+	WXKVxWNI1H5Uj1IIjN6aoxyQnwGQbxhAnjq0Z/vmNR4L5ApSqoDs249cC6A72lSGx0Np
+	WdfuAR7fNLd1fEY89pbfivV3OUBC+7lPH943vK588uBm9pmjAEhfoiAtzVlA9u0jnUWq
+	fKYcHo3leDx6JvvWgyeYXBVrQPT2vBhA/v31ry+fO1opIO9eyyKADOAAOZJcFCBNQPLx
+	uMBjzebtew6dUsQj29Gqt78i/r5YLKAMyBcAyCsAyF0hvisZQOqP0Bo4QJJXP/bpSytX
+	9Y3NLSG5utI3ZNd+wONNgscGsveIDebEEgUaNA8OkNDAnALy2SMKyFg+IAdLE5AMHkdS
+	9Qh4DGDwePfRM1CPrVQ9Ih41yJPFMZRuALlvV7DvykWOtqAgpQpI2OwYMFBrBMGjLcFj
+	MMHjFcDjC8SjOHxfI2fRCZDFPEA62EwyNRipLUlAEjwO1qZ4dKB4jCXqUY5H2Tlkjfys
+	OCiBWkAJkK9YBckAcq6tpZmxPjQwl56CpHgcCng0s7Sdu4jgcR/iUaA+LqhhdwHI3KyT
+	B2PDA1Z7zHewmWgiTUCyeDQwmWjD4vHgqazcu8WcekQ8CsrLhTNYHiA/wh4kALLw5pXT
+	Kft2Bvt4LpIsIBk8DufjMeU0VY+vMLkqHOcW4ki7BeSm1Uv5gJRUTQAfj/M9VgeExx48
+	iXgUonsLbsx8QLa9A0A+LrxxWQ5ICykqSDkeLUA9evoE79xH8Fj45AXB40fcexSclwto
+	wIqArKt6VnyHKMiYcAVASurqxz5McpWqx/lLV28Kj0E8CsijhT3UbgCZsDPIx3PhXFsL
+	MyOppVg5PBqZAR4XevoEETxevlH4GPD4rg3xKGx/1/jR8wDZ3tpUV1XGAnIbAaQ9TbEO
+	G/y7hAAJleRk75Hg0V6OxzvFz6rqmlvbP8vvQNb4T4sDFKAFlAFZwShIBpDQfk5qgOTj
+	cQ7FYwLiUYB+LdQhc/H4FapYGUAW3ck9f+JAjEQBSfE4TI7HbTEHILl6p7isqq5JAY/Y
+	IkCoLq/Z4+YCEs5BfiQpVgrIjJSEHUEbViyUHCB5eJwOeNwQtDMhJYOoxwpUj5rtx2IZ
+	HRePnQG50XvJPHtrUqQjHQUpx6O1/fwl3psAjyfO594pQjyKxd81fh5cQEJ/VhaQBdcv
+	8wA5zkgPqlj7S+IcJOCx/8Chw/WMxkF78oUrNgTtoHgsYPEIDebYc1a4WtV4vxbqALl4
+	pIBsISnWotuMgmQAOcEEGphLJMXK4FHHwGSCtf28Jd4bEY9C9WoBj5sLSBaQNRWPC65f
+	ykiJ5xSkdADZNR6vIx4F7N3CGzoXj50AGUYAaWc9YaxUAMnhcewEazs5HqE9OSRXW/h7
+	j7hcFZ6bC2fEXEDKAFkKgExnAOkKKVYApLYUFCSDR21GPboS9RifknGJ4LGGlOagehSO
+	Swt6pFw8KgAyMzUphg/IQeIv0lHGY1hM0onMXMSjoJ1biIPnAlIRkMnxkUHrl1NAGkoB
+	kJ3wGBmfnA54LEU8CtGpBTxmLh45QL6EFOtVAGR0mL/3EmdWQYoekASPg4bpGHDqEfCY
+	mnkV8Shgxxbq0GlAfvv2NwfI8tKC/EvpioAcIvI9SIrHIdp6hmTv0XX5+iDEo1DdWfDj
+	VgJkLR+Q7s52U2iKVeSAlONxip2zu7d/WDSLx5eYXBW8gwttAgqAfNtQU156P/9ienJc
+	ZCCjIE1BQULzABEX6RA8QgcdGR4DCR4v5heUltc0vGWTq9+omYT2bXG8wrMAD5Cf2lua
+	OEAmRof6exNAjid7kKIGZPd4rIW9x0/yc4+49yg89xbeiDsBsoQBZAQA0gX2IMUOSBke
+	TUE9uixfHxgZR/B4H/EoPF8Ww4gVAdnIAPLccQJIL3fnmVPGjxE3IGV4HD9lJlGPodGJ
+	qedIcvUl4lEM/i24ObCA/EpTrG/ra8opII/ERQSuW+Yye9pkU0NdEStIFo+6hoDH2QSP
+	EXFHCB5LymvqUT0KzplFMGA+ID+0MIDMAUDuDvVjATlKR0u0CpLiUUvHYAzFo5d/6O7E
+	4+dyKB4bUT2KwL2FNwUeIDva3tZXywC5RfyAlONx8rTZLsvWKeKxAypXv37D5KrwfFrI
+	I+4MyIe3KSC3+nm5OREFOWqEWAHJ4HHEKIJHJzcvPwU8Qv9VWccOTK4K2cWFNfYuAJl3
+	Mf3I3gjRA1IZj1si9rLqsRrUI+JRWH4sltEqA7LyqQIgrRhADhDhXayAxwGDtAgerSge
+	tzLq8eHTytrGFsSjWBxcaPNQBuTzknt5F/iAHC3OFGuXeLyQB8lVxKPQfFhM41UA5PvG
+	WgDkrZyzkGLd6rcKFKRoAdkVHs/m3EI8ism5hTiXLgGZdhgU5FoPugcpSkByeBxtSpOr
+	a0E9Hk6/kHev5DniUYheLJ4xKwHyNQFk9tljiVEAyMVOM6zMaYpVbAqSh8cZTm6r/LZG
+	JR47m03w+LrxPapH8bi38GbSCZCPQEESQG4GQM6aNslUhIDk43GWi8fazYDHNMSj8JxX
+	hCPuFpAhAEhHcQJShkdzqxmOixGPInRr4U5JBsgvf3S0NddXPwdAZqUd3sMAcqockL+I
+	5ZHjcdJUBo97KB4fserxC5bmCNedBT/ybgC5P4oDpDEp0hGTglTGY0jUflSPgvdj0UxA
+	DsjPAMg3BJDXstIO7dkOCnLBLBkg+/UVCx/7QnvyIdq6o01leDyUlnXtHuDxTTOU5iAe
+	RePagpyIDJD/+/Lpw/vG15VPHtzMPnO0EyD79hFHQHJ4NGbVI+Dx6JnsWw8wuSpI9xXf
+	oBlA/v31ry+fO1opIO9eyzpFALmGBeRIcg5SLIDk43GBx5rN2/ccOiXH42fEo/g8XFgz
+	4gAJ/VkBkA0UkFcAkLtCfFdCitXS3FifKEiR3GzVpy9TuWpsbgnJ1ZW+IbsIHm8+eFL5
+	uoHsPWKDOWF5rwhHywESGphTQD57RAEZuz1AhIBk8DiSqkfAYwCDx7tUPbZ2EDyyDR9F
+	+KFxSoKwgDIgX4CCBEDu2xXsu3KRoy0DyIHiACRsdgwYqDVCXwGPVwCPLxCPgnBWKQyy
+	EyCLeYB0sJlkajBSe7A4FCTB42BtikcHisdYoh7vPnoGyVWCR9k5ZCl8d5yjZlrgu4Cc
+	a2tpZqwPDczFAEiKx6EUj7aOi1b6Bu/ad/QM4lEz3VK6o+oCkLlZJw/GhoOCnO9gM9FE
+	LIBk8WhgOslGjsfcu8WIR+k6vwbOXAmQr6iCPJ2yb2ewz8pFIgIkg8fh+sZmlrZzFfD4
+	CpOrGuiXkh1S94BcvZQPSIHXBHB4NJlo4zDfY3VAeOzBk1mIR8m6vcZOnAfIj23vG169
+	eFx44woDSE8ApIU4FKQiHj19gnfuSzl95WbhkxcEjx9x71Fj/VNyA1MEZF31s+I7REHG
+	hG/iA1LgN1v1YZKrBhSPS1dvCo9BPErO04UxYQVAvmMAefl0SsLOIB/PhQSQRsJPsXJ4
+	NDKzAPXI4vHyjcLHgMd3bYhHYXiqREbJA2R7a1NdVRkfkPZcilXQgIRKcrL3qITHO8XP
+	qupw71Eibi6YaSoDsgIUpAyQ0H5O+IBUwONCT5+gnQkppxGPgvFQaQ2Ui8evUMUqA+T5
+	EwdithEFyQBy2ODfBQxIisdhFI/280E9bqPq8U5xWVVdU2s7luZIy981frZcQMIxj49t
+	oCApIDNSEnYEbfBcKAJA8vA4fQ6LxwyCxwpUjxrvnBIcIBePckAW3cmlgNzovWSevTUp
+	0hEyIOV4tAY8egMeD5w4n3unqBMesYOOBL1fA6fMBSTtz0oBWXD9MgPIFQSQ44z0oIq1
+	v0DPQcrwOA7aky9csSFoR0IK4lED3RCHxFqAi0ceIG/zATnBBBqYC1ZByvA4wdp+3hLv
+	jYhHdHwNtwAXkHxAXspIiQcFKXhAAh77Dxw6XM9IAY/XC1j1CP1X2WPIuFrVcC+VzvC4
+	eKSAbCF7kEU8QNpZTxgrXEAyeNQxGKuAR2hPDsnVFn5yFeNROg6v6TPlApIFZE1FacF1
+	DpCujILUFqaCVMCjK1GP8SkZlwgea0hpDuJR011TkuPj4lEBkJknkmLCSIpVyIDk4dGO
+	qMewmCRIriIeJenmwpk0F5AKgExPjo8MWr9cyIBk8KjNqEcWj+mAx1LEo3CcU4Ij5eKR
+	A+RLUJBXM1OTosP85YAcJLwinS7wmJqJeJSghwtsylxAcoAsLy3Iv8QHpKGe9hDB7UFy
+	eDQkyVXX5euDIuOTEY8Cc01JDpeLRxaQtXxAujvbTaEpVsEBkuBx0DCaXLVzdvf2D4tO
+	Ss28CurxJSZXJenmwpk0Dchv3/6mgHzbUFNeej//YnpyXGQgqyAJIH8XVpEOxeMQbT1F
+	POYXlJbXNLxlk6vf6MSF851wpNKwAA+Qn9pbmuSADPX3JoAcT/YgBQZIOR6nKOGxFvce
+	peHWwp1ld4CMAEC6wB6kqeAASfAIDeb0DE0Z9RgYGZecfjH/PuJRuF4qnZErArKRAeS5
+	1MRoCsiZAgSkDI/jGTyGRiey6pHg8ZP8SnIszZGOmwtnpoqArK8pLyEK8kgcBeRsAkhd
+	QSlIBTy6LF8fGMHgsQTVo3CcUsIj7QqQOeeOJ+4O9fdydwZAjjHQ0RKQguThcaazu5c/
+	4PH4OZpcrW1EPErY0YUydRaQXyHF2tH2tr5aDsh1y1xmT5ssLECyeNQ1NJ08bbbLsnWA
+	xyNEPQIe65nk6tdvmFwVim9KcZx8QH5oYRQkA0g/LzcnAshR0J9VKEU6FI9aOqPGjJ9C
+	8OgXuhvwmEP2HgGP0H9V1tAK1aMUnV0Ic+4GkHsjtggPkMp43CLDYzXgsQMOdiAeheCT
+	Uh6jMiArnz68TQG5lQLSigHkAEFcNcfgcQTFo5Obl99WBo8PyyoRj1L2cUHNXRmQz0vu
+	511IPyJAQHbG415Qj3mgHhGPgnJJSQ9WAZDvG2sBkLdyzkKKVXCABDwOGKRF8Gg1k4/H
+	p4hHSXu4wCbfGZD38i6kHQZArmVSrKOFsQfZBR4Pp1/Iu1fyHPEoMJeU9HCVAPmaADL7
+	7LHEqK1+q9ycZliZ0xSr5itIRTyuIurx2NmcWw8JHt9jclXSPi6oyXcLyM1rPVxmwR6k
+	IADJ4XE03Xv0WLslYu/hNMSjoDwRB0ss8D1ALnYUCiBleDS3muHkBniMAjxmEzy+Rjyi
+	owvJAjJAfmGKdJ4/ogpyTwQF5NRJQgAkH4+zXDzWbmbx+AjVo5BcEccKFugGkPujQvxW
+	CQWQfDw6Ll7lF4J4RN8WqgXkgPzc0db8phoAeS0r7ZAyIPv1/UVjH+bco+5o00lTGTzu
+	OZyWde0ewWMzlOZ8wdIcoTqnBMfdCZBPHtzKPnNUDkhjUsWqySlWDo/GoB4ZPO5H9ShB
+	TxbJlBlA/v31ry88QJ46tGf75jUeC2bJFKTmArJvP3ItgByP2/ccYvH4BvD4GfEoEkeV
+	yDQ4QEJ/1k8f3je8rnzy4CYB5K4Q35WgIC3NWUD27aOZC9Y+fZnSHBaPviFR+4+eyb75
+	4AmbXMUOOhJxZLFMkw/IVlCQzx7dvZZFABnAAXIkuShAUwHJx+MCjzWbAY+nsq7dBfXI
+	4ZHtaCWW74XzELcFlAH5AgB5hQAymADSFgCpP0Jr4AAN7c8Kmx2kclXf2NwS1ONK35Bd
+	gMcrFI8NpDQH8Shu7xXh7DhA/gkKkgfIWApIB6IgR2oP1lRAMngcSZOrgMeA7bEMHp8B
+	HltBPcrOIYvww+GURGmBbgC5jwBy0VwGkEM1FJAEjwMZPNo6LlrpG8zh8cVrxKMovVUC
+	k+oEyOK7uVmnDrKAtJlkYqCxgCR4HKxN8eiAeJSAr0phikqAfMUoyBQZIM2M9YdrJiAp
+	HocO1zc2s7SdS/G4j1GPiEcpOK5Y59glIE8ejA0PWO0x38FmosYCksWjgclEG4rH8NiD
+	p7Jy7xajehSrq0piXjxAfoQ9SABk4c0rp1P27Qz28SQKUlMB2QUeU06T5OqLV6geJeG5
+	Ip1kN4CMCd+0eikfkBpWE8DH4/ylqwMAjycRjyL1USlNiw/ItncAyMeFNy7LAWlhZqSJ
+	ClKORwtQj54+wTv3AR5vFD4meGz7iHuPUnJhcc2VB8j21ua6qmfFd3KzTh5kAGnPKUgN
+	u/oRKslJcpWqR8DjpvAYgsc7qB7F5ZtSnE03gEzYGeTjuXCOrUYCksOjkRngcaGnTxDB
+	42UGj+8Qj1J0Y9HMmYtH2sC8tamuqowF5DaiIBlADhusWc0DeHi0V8BjVV1zazuW5ojG
+	OaU4ES4g4ZjHR6IgK4iCzEhhATldAwHJx+MciscExKMUXVeUc+biUQ7Ioju5508ciNm2
+	yRsAaU32IDULkBSPw6h6pHjcFnPg5HlQj2VVdU0KeMQOOqL0WJFPigtIaD/HArKAAnJH
+	0IYVC6GB+TgNS7Hy8Dgd8LghaEdCSgZRjxWvGlA9itxZJTA9Lh47A3Kj95J59tYTNAyQ
+	cjxa289f4r0R8HgC8FiEeJSAs0philxA8gB5nShIOSD1oIq1v4acgwQ89h84dLie0TgL
+	wOMKDo8FLB6hwRx7DBlXq1JwXhHOkYtHCsgWkmItus0oSBaQYw10NEdBMnjUMTCZYG0/
+	D/EoQn+U/JS4gGQBWVPxuOD6pYyUeAJIV6ogNQeQXeLx0nXEo+S9WDwG4OJRCZBJMWEE
+	kHbWEzQIkBwex06wtpPjEdqTQ3K1hb/3iMtV8Tio1GbCBaQMkKUAyPSU+Eg5ILU1Q0Ey
+	eNRm1KMrUY/xKRmAx9KKGpJcRfUoNdcV5Xy5eFQAZGaqBgJSGY9hMUknMnMRj6J0S+lO
+	igtIRUAmAyDXL6cK0lBPIwDZCY+R8cnpiEfpOq5IZ87FIwfIl5BivQqAjA7z93Z3ZhXk
+	oN6vYiV4HDRMx4BTj4DH1MyriEeRuqV0p0UD8tu3vykg3zbUlJcW5F9KVwTkkF7fg6R4
+	HKKtZ0j2Hl2Xrw/i8FiO6lG6vivGmSsBslYJkFNoirXXASnH4xQ7Z3dv/7BoFo8vazG5
+	Kka3lO6cOgPyfv7F9OS4yEBGQZqCgoTmAb1apEPwCB10ZHgMJHi8mF9QCnh8yyZXv9GJ
+	SPc74szFYQEeID+1tzQxgDyXmhgdShXklPFkD7KXAfl9PH6SX0mOe4/icEopz6ITIEsY
+	QEYAIF2gSKf3ASnDoymoR5fl6wMj4wge7yMepey3Yp27IiAbWUAeJ4D0cneeqQGAlOFx
+	PKMeQ6MTU8+R5OrL2saWdsSjWD1TovNiAfmVSbHW15RTQB6Jiwhct8xl9rTJpoa6vaog
+	O+ExIu4IwWNJeU09qkeJOq2Ip80H5IcWBpA5544n7g71YwA5ZpSOVi8qSIpHLR2DMeOn
+	zHR29/IP3Z14/FwO4lHELintqfEA2dH2tr5aBsgtmgBIFo+6hqaTp812WbYuUAGPHVC5
+	+vUbJlel7cHimr0yICvLHt7mAOnmBApyzKgRvQdIBo8jRhE8Orl5+SngEfqvyvo9YnJV
+	XG4p3dl0Aci8i+lH9kZoACCV8bglYi+rHqtBPSIepeu14p15J0A+ZQG51c8LAGnFAHJA
+	r1xWDngk7ckBj1YUj1sZ9fjwaSUkVxGP4nVKKc9MGZDPS+7lXUg/rAGA7BKPF/IguYp4
+	lLLHinvuCoB831hb+fThrZyzxxJ3b/Vb1buA7AqPZ3NuIR7F7ZBSn12XgEwjgFzL7EGO
+	7p09SA6Po5nk6lpQj4fTL+TdK3mOeJS6z4p5/kqAfE0AmQ2AjKKAnGFlTlOs6leQinhc
+	5Qfq8RiDx9eN71E9itklpT23bgG5ea2Hyywo0ukVQPLxOMvFg+IxDfEobVeVxOy/B8jF
+	jr0FSBkeza1mOC0GPEYBHrOJekQ8SsItpTtJGSC//NHR1lxf/fwRpFjTDu+JoICcOqk3
+	ACnH46RpBI+bI/YcJnh8xKrHL1iaI12HFfnMuwHk/qgQv1UUkMakSEe9CpKPR0fAYwji
+	UeReiNOTWUAOyM8AyDcEkNey0g4pA7Jf31/U9jDXAuiONp00VYbHrGsUj81QmoN4lH08
+	/IPoLNAJkE8e3Mw+c7QXAcnh0RjUI4PH/ageRed3OKFuLMAA8u+vf33hAHn3WtapQ3u2
+	b17jsWCWTEGqD5B9+5Fbcxg8LgD1uH3PoTQGj28Aj58Rj918SPzHorAAB0hoYP7pw/uG
+	15UsIHeF+K4EBWlpzirIvn3Us2Dt05epXGXx6BsStf/omeybD55Uvm4ge4/YYE4UboeT
+	6M4CHCD/BEC2goJ89ogCMnZ7AAfIkeSiAHUBksHjSKoeF3isIXg8lXXtLiRX3zS3Ujyy
+	DR+7mw/+c7SAkC2gDMgXAMgroCB3BRNA2gIg9UdoDRygpqsfYbODHOzQNza3BPW40jdk
+	F+DxCuJRyB6GY/9PFvguIB2IghypPVhdgFTCY8D2WAaPz1g8ys4h/6cp4v8YLSAYC3QD
+	yH0EkIvmMoAcqiZAEjwOZPBo67hopW/wrn0MHl+gehSMQ+FAf84CnQBZfDc369TB2HCi
+	IB1sJpkYqA2QBI+DtUcawN6jA6hHDo/FiMef+8T4twVkASVAvqIK8nSKDJBmxvrD1QNI
+	isehw/WNzSxt5yIeBeRDONQetECXgDxJALnaY76DzUS1AZLDo8lEG4f5gMfw2IOnsnLv
+	Ih578GPjqzTeAjxAfoQ9SABk4c0rAMidwT6eREGqC5BKePQB9ZhymiRXX7zCvUeN9yIc
+	YI9ZoBtAxoRvWr2UD0gV1wQo4HHpaoLHk4jHHvvK+CKhWIAPyLZ3AMjHhTcuywFpYWak
+	DgUpx6MFqEdPn+CdBI83Ch8TPLZ9xNIcobgTjvNnLcADZHtrc13Vs+I7uVknDzKAtOcU
+	pIqvfoRKcppcpepx6epN4TEEj3dQPf7s18W/LzQLdAPIhJ1BPp4L59qqBZAcHo3MAI8L
+	PX2CCB4vM3h8h3gUmkvheH/CAlw8foUq1vbWprqqMhaQ24iCZAA5bPDvKgUkD4/28/l4
+	rKprbm3/LG8R8BPzxL+KFhCEBbiAhGMeH4mCrCAKMiOFAST0Z1W9guTjcQ7FYwLiURC+
+	g4PseQtw8SgHZNGd3PMnDsRs2+QNgLQme5CqBSTF47CRBqAeKR63xRw4eR7UY1lVXZMC
+	HrGDTs9/fnyjplmAC0g5IAsoIHcEbVixEAA5TsUpVh4epwMeNwTtSEjJIOqx4lUDqkdN
+	8xYcj6otwMVjZ0Bu9F4yz956gooBKcejtf38Jd6bAI8nAI9FiEdVf3l8v0ZagAtI2sCc
+	KsiC60RBygGpB1Ws/VV0DlKGx3EWgMcVHB4LWDxC/1X2GDKuVjXSe3BQPW0BLh4pIFtI
+	irXoNqMgZYDUUZ2CZPCoY2Aywdp+3hLvjYjHnv6++D6BWYALSBaQNRWPC65fykiJJ4B0
+	pQpSdYAEPPYfOHS4npECHq8jHgXmQzjcnrMAF49KgEyKCSOAtLOeMNZAZYDk8DhWAY+3
+	qXps4e894nK15z44vkmzLcAFpAyQpQDIdAVAaqtGQTJ41Gbw6ErUY3xKxiWCxxqSXEX1
+	qNmOg6NTiQW4eFQAZGaqGgDJw6MdUY9hMUknMnMRjyr5zPhSoViAC0hFQCbHRwatX04V
+	pKGeSgDZCY+R8cnpgMdSxKNQXAfHqQILcPHIAfIlpFivAiCjw/y93Z1ZBTmo56tYu8Bj
+	auZVxKMKPjG+UkgWoAH57dvfFJBvG2rKSwvyL6UrAnJIj+9Bcng0JMlV1+Xrgzg8lqN6
+	FJL34Fh72gJKgKxVAuQUmmLtcUASPA4apmMwdsIUO2d3b/+w6CQGjy/rmjC52tPfGN8n
+	IAt0BuT9/IvpyXGRgYyCNAUFCc0DerRIh+AROujocXgMpHjMLygFPL5lk6vf6MAEZEgc
+	KlqgByzAA+Sn9pYmOSBDqYKcMp7sQfYwILvHYy3g8ZP83CPuPfbAF8ZXCMoC3wOkCxTp
+	9DwgZXg0ZdRjYGRccvrF/PuIR0E5Dg5WJRZQBGQjA8hzqYnRFJAzVQBIGR7HM+oxNDox
+	9RxJrr6sbUQ8quQj40uFYwFFQNbXlJcQBXkkLgIUpMtsAkjdHlWQCnh0Wb4+MILBYwmq
+	R+E4DY5UZRbgA/JDCwPInHPHE3eH+nu5OwMgxxjoaPWgguThcaazu5c/4PH4uRzEo8o+
+	ML5YWBZgAfkV9iA72t7WV8sBuW6Zy+xpk3sWkCwedQ1NJ0+f7bJsHeDxCFGPgMd6Jrn6
+	9RsmV4XlQTjanrRA94D083JzIoAcNaLnAEnxqKUzasz4KQSPfqG7eXiE9uSyfo+YXO3J
+	j4zvEo4FugHk3ogtPQ9IHh6nETxukeGxGvDYAQc7EI/C8RwcqSosoAzIyqcPb1MFuZUC
+	0ooB5IAeuYuVweMIikcnNxkeH9LkKuJRFZ8X3yk0CygD8nnJ/bwL6UdUAMjOeNwL6jEP
+	1CPiUWheg+NVlQW6AOStnLOQYu1xQAIeBwzSIni0mknwuJVRjw+fVsLeI+JRVR8Y3yss
+	C3QG5L28C2mHAZBrmRTr6J7Zg+wSjxfy7pU8RzwKy2NwtKq0gAIg3ze+BgV5K/vsscSo
+	rX6r3Jxm9JiC7AqPZ3NuUTy+Rzyq8hPju4Vkge8A0sNlFuxB9gggOTyONp1Mkqtrt0Ts
+	PZyGeBSSo+BY1WKB7wFyMQDSnO5B/myKlYfHGU5uq/y2RiUeO5tN8Pi6EfGolg+NPyIM
+	C8gA+YUp0nn+iCrIPRGb1xJATuoJQPLxOMvFY+1mxKMwnANHqXYLdAPI/VEhfqsWO/YM
+	IGV4NLea4bgY8aj2j4w/KBwLKACyub4aAHktK+0wC8ipckD+8qOPHI+TpjJ43EPV4yM2
+	ufoFS3OE4y44UhVboBMgnzwgKVY5II1JFevPKEhlPIZE7Uf1qOKviq8XrAXkgPzc0db8
+	hgHkqUN7tm9eAwpSBsh+fX+Uj8ytObqjTXl4zLp2D/D4prmt4zPiUbCugwNXgQU4QEJ/
+	1k8f3je8rnzy4Gb2maMASF9GQbKA7NvnxwKSw6Mxqx4JHs9k33rwBJOrKvia+ErBW4AB
+	5N9f//rCAfLutSwCyIA1Hgt+HpB9+5FL5Rg8LvBYs3n7nkOnEI+C9xqcgKos0BUgrwAg
+	d4X4roQUq6W5sT5RkD949WOfvkzlqrG5JUmu+gIej57Jvknw2ED2HrH/qqq+K75XoBbg
+	APknALIVFOSzRxSQsXJAjiQ36fyYgmTwOJKqR8BjAIPHu1Q9tlL1yPZDFqjxcNhogR62
+	gDIgX4CCpIAM9l25yNGWAeTAHwMkbHaQgx36DB5X+obsAjxeQTz28CfE14nJAp0AWcwD
+	pANJsY7UHvxjgOyEx1iiHu8+egbJVYJH2TUdYrInzgUt8DMW6AaQ+3YRQM61tTQjCvKH
+	AEnwOJDBo63jopW+wRweX6B6/Jkvhn9X1BboApC5WacOxoaTFKuDzSQTgx8EJMHjYG2q
+	Hh2oemTwWIx4FLU/4eR+zgI8QH6EPchXVEGeTuEDcvjQHwCkDI9mlrZzKR73MeoR8fhz
+	Hwz/trgt0CUgTxJArvaY72Az8QcByeLRwGSiDcVjeOzBU1m5dxGP4vYmnN3PWoAPyDYK
+	yMIbVwCQO4N9PFkF+QOApHgcOlzfmMGjT/CufSmnSXL1xSvYe/yIe48/+9nw74vVAp0B
+	eSc36+TBmPBNq5fyAfmfiub4eJzvsToA8HgS8ShWF8J59aAFFAD5DhTk48Ibl+WAtIAU
+	638GpCIePX2CdxI83iikeGxDPPbg58NXic0CPEC2tzbXVT0r7gqQ/+lu5D5McpWqx/lL
+	V28KjyF4vIPqUWy+g/PpeQt0A8iEnUE+ngvn2lqYGf1XQMrxaAHJVRaPl28UPgb1+A7x
+	2POfEN8oIgtw8fgVqljbW5vqqspYQG4jCtKepliHDf79PwASDlqRvcfOeKyqa25tx9Ic
+	ETkPTqXnLcAFJJyD/NgGCrKCKMiMFAaQ0MD8vwKSw6ORGeBxoadP0M6ElNOIx57/cPhG
+	UVqAi0c5IIvu5J4/cSDmBwFJ8TiM4tGeqMdtMQdOngf1WFZV16SAR2wwJ0p/wkn9pAW4
+	gFQG5I6gDZ4L/zMgeXicPofFYwbBYwWqx5/8UPjXJWEBLh67AKT30nn21qRI598ryC7w
+	eALwWIR4lIQz4SR/3gJcQEIDc1ZBFlwnChIAuYIActx/SLEq4XFD0I6EFMTjz38jfIN0
+	LMDFIw+QtxkFudF7CQBygomBzr8FpByP1vbzlnoT9Yh4lI4r4Ux7wgJcQLKArKl4XHD9
+	kgIg9aBIp/+/uElHhsdxFqAeV7B4vF7AqkdoT87e0oHJnJ74cPgOUVqAi0cKyBayB1n0
+	g4Bk8KhjYDIB8LjEeyODx9uoHkXpNzgpFVmAC0gZIEspIOOJgnSlClJP+98AEvDYf+DQ
+	4XpGMjzGp2RcInisIaU5iEcVfT98rbgswMWjAiAzYQ8yjChIO+sJY/+dgvweHlv4pTm4
+	XBWXA+FsetYCXED+HCAZPGozeHQl6pHBYynisWc/F75N5Bbg4pEPyKuZJ5L+GyA5PI6d
+	YG1H1GMYJFczcxn1iHgUuQvh9HrSAjQgv337WwGQ6cnxkUHrl1MFafjPCrIrPKaDekQ8
+	9uSXwndJwQJKgKx9CSnWq5mpSdFh/nIFOej7xzwIHgcN0zGQ4zHpROZVxKMU/Afn2MMW
+	UADk24aacpJiJYAM/LeApHgcoq1nSJKrrsvXB0XGJyvj8Rv9mR4eOr4OLSA6C/AA+am9
+	pUkBkO7OdlNoivW7gJTjcYqds7u3f1h0UirF48vaJlSPonMYnJBqLdAZkPfzL6Ynx3GA
+	NAUFCd11ui3SIXiEBnN6hqYMHgMj4wCP+QWl5TUNb9m9R8Sjar8hvl08FugGkInRof7e
+	BJDjx8Ae5HcASfGopWMwZjyDx9DoRB4eP8k7duDeo3icBmeiOgt0DcgjcRGB65a7zJ42
+	2dRQlwFk1/2S2fbkhqaTp812Wb4uMCLuSPrF/PuIR9V9MXyzmC2gCMhGRkGeO564O9TP
+	y81pptX4MaNIf9ZubtLh+q+OGW8108nNyy90d+LxcyS5StUj4lHMnoNzU4kFFAFZX1Ne
+	QhTkkb0RW9Yto4AcTQHZdX9Wcskj2558tsuydVsi9lI8lpTX1KN6VMnnwpeK3AJ8QH5o
+	IYB8eDuHAHKr3yo3xxlW5gSQ3XTXgWwO12COtCf32wp4PJtz+yHgsbGlHfEoctfB6anC
+	Aiwgv0KRTkfb2/rq8pJ7eRfSDu+N2LzWY8Esrj9rlwtWWirHXvK4wGPt5og9h9Mu5N0r
+	eV6NeFTFp8J3SsACyoCsfPrwVvbZY/ujQmT9WZnmAZ0zOtxBK3LJIzSYg/bkx85m33r4
+	tBLw+AHxKAHnwSn2vAWUAfn80b1rWacO7dkesIa9G7mbLQ+yXB0Emx1QKgfXdECLALY9
+	OcVjB5x7/PoN9x57/nvhG8VtAQVAvm98Xfnkwc0rZ46S9nPMzVZMTUC/Tt2uyHIVsjlM
+	LQActKIddEiDOaY9+Z9f8ZoOcXsOzk4lFlAAZPOb6mfFd2n7uW0boSZgJtQE0C2PX/sq
+	L1iZ5eooY3Oy2QGlcswtVrSDThviUSWfCl8qAQsoApJtP5eRAlXlsOXRfUYHNh/hZAfT
+	sgOyOVsiSKkcc4vVe1SPEvAbnKKKLMAHJGk/xxy7olsei+faWpoZwU1zv/dXXrAyy1Xm
+	ZMdCT9+QKKgFyGFvser4/AXVo4q+Fr5W7BbgAxK668CxK1ITcBgyOqvJXeXklAfU6Cgv
+	WKEYYODQEaOgdHUmnOwg2Ry62QGV5KTBHKpHsXsNzk9lFpABEtrPwbEruuVBMjpBG5gi
+	VqjRge5zfRUzOiS7CgeRTSZNneXisS4Q7iQ/fQWyOZWvoRYA8aiyb4UvFr8FZIAk7eeg
+	JoDJ6MBNc36rFjvSBSsUlSuXBIB8HAzZVXrLo6cv1OakwrU5xWXVb5rxkkfxuwzOUJUW
+	YAD5N9xs9enDe9IOktwTAEWsZMFKjiWTmjklAUlqV4cO14fs6gwnd++NdLnKnOx4R7M5
+	uPeoyg+G7xa1BThAkqI56JdMLtLJgRqdnUHrmQwrNLtSFpBEPmqNoMUA8z3WbImMp8tV
+	WpvT/hlbBIjaXXByqraAHJB0wfr8EWxBnjgQvdVv5SJyVTmcgiQCkr8D2YfIx5EGzMnH
+	DcG72JNWVWS5Ks/mqHrc+H60gBgtIAPkl8/sgpVmWMOhJMAJDnkY6w8HAakQj31/lcnH
+	RSv9QqEhcta1e3DSqoEuV7E0R4xegnNSmwU4QNIFK8mw3rxyGkoCtpAaVtjxGDUCWnko
+	7EBCOgcuzqHy0Q3k454jUAxQ+PgFza7KlqtqGz7+EFpAVBZgAQkZHViwvqkmJQFwCnIX
+	KyChGSQcglSOx6HDye6jHdSSb44g8hGOdsDFAK1QK4eV5KJyDpyM+i3AAvIvyLC+a6h+
+	XgKHPE6CgPT1hJvKJ5uOpgkd3gYkm84xmWjjsMBjXdDO/cfoRR3Vb+BiAJCPeLBD/V8Q
+	f1FMFuDi8X+f25kdj/yLaYdiyQ7kXFs2ocOv0IF4JGetTCeRi6w2BO9OhI7Idx/BUat3
+	bZ++cA1YxWQfnAtaQK0WYALyKwhIUqLz5MGNyxnJe7dv9HajCR1yD6tiPJL06mjTydAS
+	GaoBYg6eysqj98q9/0B2O+jL1Dp8/DG0gKgswMYjCEioKYdrdG5ln0mJh4oA6AUJZ66U
+	E6yw3cFW58DVAH5hsYfgnscCLp3zFeNRVK6Bk+kNC5CA/PY3P6FzbN+OLWs9SIIVzkAO
+	Vdjw6EO2O/QM4aoOx8Ve/ttIevVGIRSvknQOKx97Yw74m2gBsViAiUdI6DAlrHdyM0mC
+	dZ3HAgebiWMNYMPjt37yggCIR9juMDK3pNVy2+OSSTE5VOdgPIrFHXAevWwBumD9+y+o
+	CCAJVqjQOX8iMYq/4dFfOR5J9So9bAXbHWfgJquyl3W0OoepBujl6eDPowWEbQESkNCc
+	lVTowL3IZMMjaXcwPXI1yZRsQPLjkZQDQDX5eCs75yWrAyISSDwWlVXx4lHYtsDRowV6
+	2wJ0wfqVxuOripL7eVmnDkSH+KxwnQN9PAxGag3iF+hw8QjlAEugHCDhKFyEDPHIbD9S
+	Pvb2bPD30QICtwAE5DeIR7oBWXo/78Kpg7x4HNZdPJLyHIV4pNuPAjcFDh8t0OsWYOLx
+	D148xmwlfGQLdLrhI8Zjr384HIAoLfBj8YjrVVE6A06q1y3wnfUqKWBV4CPsdyjlc+jd
+	cvL8aq/PBgeAFhC2Bdh4pCcgO+dzFA5c0f3H7+53CNsUOHq0QG9bAMLx/779y/0O5XoA
+	clsHd9wK63N6+0vi74vBAiQe2XqAGubGju/WA0C9nJGZ5QxHNy9/OI6ccfkGXPaI9Tli
+	cAScgyZYgOIR4vFT27v66ufFUC+X+r16ObaeHFrNrYJ68sPpF6FXAL0egBxHJu/ShDnh
+	GNACQrUAE49w5aPsgoBj+3cEMvXk5MIOxXryfsx5KwvZeasLcN6q4lXDe3q7HHkXBqRQ
+	PQHHrQkW4OLxYxvTwwPOWyVEbKY3sHZx3grOI5Pr5bjzyEknsq7BeWTmOiv2PLImTArH
+	gBYQpgUo0r59/ZPcwAoXWkETyIzkuO2b4IK5meSCOaXzyL+Q61ehW8BE6BawbF0QXPeY
+	mXsHes2RTuVf/mSvlxOmIXDUaAENsACNx7/hfoD2lsbXL+gN5Ydjt/mTjgEW0OIKLmDl
+	3w/wCxSwkm460Bt5/lK4Djnh6Jls+QYk3p+jAR8UhyBkCzB4pOlVeryDlJMfjAn181wI
+	FyKbQkcduKCcd58ViUdSEMAeuNq+N5lNsEI3HUjoICCF7As49t63ABuPNJ1DOurcyT2f
+	mhglP24FDQMU73ukFwQYjbOwnbsYEqwx0G0O2neQhM4H6G6F8dj7XxRHIGAL0HCE0x3k
+	ug4mnZNz9ug+kl5lrwdQbqjD9AugF1q5rvAJ2Z3Ev2COu/ARU6wCdgkcei9agFuuMvKR
+	vV4uLiLAe4nzTHqdleJ2xy+/9Ok3gEno2JD2j0E79x1jTkDWNdMLkRGQvfgx8aeFbgEW
+	j6QagN4OQE4/ph2KCaPpHNKxnDSAVOjfQS5E5i4oJzcExBEBWfiEaRggW7AiIIXuGTj+
+	XrAAF45cuwAiH6E6Zze9HYCeftQerNSwvA9J6NCKObhhjghIuIGVbagDNyJju/Je+Ir4
+	k2KxABePTP9HtmF5SsKOQOZ2OaZ9h0J69ZdfaIMrciPytDkgIIOjuIZzcIUOdPDgMjoI
+	SLH4CM5DbRbgwlHWH7n0PtNuDqoBnGdajR8zavjQ3/mnH8m9j5DQIQJyLNmB9Fi7hV2w
+	0hJWyLBCRofp4YEBqbbPiD8kDgsw4Qh3IQMeaXcruttxIknejpXKR4XtDpLQkTcshyMe
+	22IOQgdI2sKDlOjIAYkBKQ4vwVmoywI8PH4mxTmQXSXdHxN2BK3rtl05xCMISNIywBRK
+	ysmCddf+Y2fhDlbScq6lHbYguZoArCtX13fE3xGFBXh4hM1HOGsFd6/mZUFzq/BNsNtB
+	mnfQbqxK8pEIyAGkxRWzYF2zOWLvEejhQXvqvGMBiStWUTgITkKdFpCFI6hHwGNT7Uto
+	xpoDzVijQnxpsdw4ZrdDablKF6yw46FvbGZJM6yh0YmpmVdpDWtTKwBSnmLFFas6vyf+
+	lqAtwIUjUY8Ej3A1Oc3mJMdFQC8dUpxjYjBy2GDYfeRXr9KETj+6YCUZ1tkuy9YHRsan
+	ZFy6XlBaAYeuFAGJASloF8HBq88CbDhCMofisbWpror0Ks9MTYoO8/diej+OGgHNyhUO
+	d9C+On3ognWEAfQsJ008Nm6LOQA1cwwgiYIkgGRXrBiQ6vui+EtCtgCHx7+/0uQq4LGi
+	tOD6pYyU+B1B65e7zIZWAYa6UJyjvNtBIrIvZFihJMBwHM3obAjakcAHJOxBylM6GJBC
+	dhIcu7oswIUjrFbhZAenHq+eP3EgZttGms2ZMNZAB852dF6uEgEJC1a4JMAEtiDnLfXe
+	RABJFeTL2saWD59gzwMDUl0fEn9HBBaQLVaZ1WoHafxYXnI/n8HjBtIpwAKyOcOHDuzf
+	eblKdjygJAAyOkZm9BYdHwJIkmIteV5dD1XlsGKFKh1uxYqEFIHD4BRUaQF+ONLV6vuG
+	15VPH1L1SPE4z96ay+Z0yq4yGZ3+sAUJgJxoA7cEEAWZlHou59bDJy9ekZTOHwoSEgNS
+	ld8S3y14CyiGI12tvql+9uhe3oX05PjIoA0ryM0AZkb6gEfI5ihnV2k8Mhkd2PIggFyx
+	ISgy7kgaFOkUQyPIppYPHxkJiYQUvKvgBFRvAS4cSWoVxONnWK1CMudx4c0rZ48lRoeB
+	emTxCDfndJXNkWd0CCBBQS7x9g/dnXj0zGXY8yivftPc2s5KSFlAIiJV/1nxF4Rpgc7h
+	+A5Wq7DXkZt16tDeiMD1y4l6JHjU6jqbwyxYf4ManRGMgnRdvm5LROxBktKhK9a3bbDp
+	QXM6GJDC9BEctdoswIXjN4aOUEf+vrGuClar+RczUvbtCvHzcne2s54AtQBks6OrbA67
+	YCVbHiTFOsXOyW2Vb/DO+OT0C9fuFJVVvgYJCTkdDEi1fVP8IaFagIvG/5OF44eWpjfV
+	5aUFN7LPHk+KCQ9Y4+EymyRXGTx2mc1hAfn7IC1IsY6bPG3WAo/Vm8KiE4+evpR/79Gz
+	qtrGrgIS16xCdRoct6os0FU4NtfXVDyB3Or5k4f2Rgb5eC5ynGE1fizgEdRj19kcGSAH
+	a+tAkY7VjLkLV6yHFeuB1HPZNwpg06Ou8T1HSN6+B573UNVnxfcK0gKyaOTRsbW5/tWL
+	p0V3crPSkxN2bfXzXjLfYeokU0Oy9zjgt27xSGsCYA9SW2+06SQb+3nuq3yDdsQdPnX+
+	6q1CyOlwAfknKQyQi0hEpCD9BgetCgsoRCOpkvvyx8cPrc0NryCXczfvYsbRxOhtAWuW
+	uUAyx3zMKB2oJP8OHmlNAOxBDhsxiux5zHbx8PbfuishOS0r9/aDxyQg37W1f4J9SBqQ
+	GJGq+KD4TgFbQB6NFI5f//zfl88fP7QAHSvLiu/lXz5zPCl2+5b1sFqdOQWSObra/4BH
+	Akgo0iEpnbHjrWznui5bG7Bt9/6U9Au5tx+SgISkTjsUBvzvz6+KiMRVq4C9CIfeIxbg
+	BSOJRrrtSPYd2XC8f/3KudSDIB59V7nPc5g62dRIf4TWINh77LIWgKhH8vTpC1WskNLR
+	MzSdaG3ntNhz/ZbwmMSjGTQgn1fXNrxt+QBpVopIhUUrjKZHZoUvQQsI0QKK0Ui3OWCt
+	+qm97X3Tm5oXZcUkHE8eitsR4ue9lORWzcYY6MBex4Bfv6MemYD8lVmxQo51qgNISJ/A
+	iJjEYyQgH5Q+f/m6vvk9XbP+jyxalSMSQ1KIroRj/kkL8GPx/4CNEI1UOX7u+ND6tqGu
+	uuJp0b3r2ZknD8fv2rpxtYfrHFur8bLV6nfxyACSWbGOMQcJuWCJl29QRGwSDcjCkrLK
+	mjeN71o/dICK5CKSpyPZgf3k9PCvowWEYgHFUGSCkaxU//cFlCPAsbnhdVX5k6K7+Vcy
+	Tx5JiArdtHb5QseZ1hNJbpWsVrvf66DLVbpi/RVWrEO1dUebgIScAzkdPxKQR9Ozcm8W
+	FD+tgDVr83smImlIUkrC/ycojwz/M1pAUhaAGADVSNAI0fgHicaWt41val4+K314J+/y
+	uZOHE6LCAtatWOxkbzN5nBHNrf7japWuWPuRFSsjIafM4AIyEQIy58a9osfPX9bUQUS2
+	fej4+PmPLyQk//oK2R180AIStwCEwV9//UnQ+McnEo3vmupfV1eUPSq8fe3SmROH40k4
+	ero5O0wj4hEK5cjW4z+sVhkF2e+3Ab8PGQZ1rKaTrGfOdaWEjElMScu8knf7waOyiqpX
+	bwgj29o7PpGQ/PK///0Jz1/4oAUkawESAf+DUAQyQjB+ADY21ddWVz57XHTvZu6F08cP
+	xe8KC1jv6TZvFuw8jiVbHf9qtSoLSNj00BllPI4XkPuPnDx7MfcmILLsRTVEZNNbCMkP
+	7R0fP33+/AcJS3zQAhK2wB9/QCh++tjR3gZobG6sr615Wf4U4JiffT796IG9O0MJHSEc
+	LcePHa07XItUAvxDbpUEI3ngpoD+REKONDAeN9mGEtI3MHx3wqHjGVnZ+bcLi588e1H1
+	qraehGRLaxsEZXtHx0fyfMIHLSA5C1DX7+joaP/woa2t9T0EY8Ob19Uvy8tKHgIcL507
+	lZIYGxmyce0KJhxNRuuNgMKcf7daZQKSSEheQLos9fLZHLZrb1JK2rmLuTfuFBY/Lqt4
+	Wf2qrr6hsentu/cQla0Ql/igBSRrgdbWlpb37942NzVAMNZUvXj+tKTo/q287KyM1MP7
+	YiKC/NesWEzpaGII4fhvxSMNR1oVAAGppa3LEHKOy5KV6zdtjYzZfzg14/zl3Jt3CotK
+	y55DSNa8rn1T39DQ2NjU1AzPW3zQApKzAPH85qamxgYIxbraV9VVleVlTx49vH87P+fC
+	2VMpSXFR2wL9vJctcnaAxaqJoT4Tjv+81cEEI/lXUqYzAJKsEJBjQEPOmDPfbcUav6Dw
+	qLiklJOns67k3rhd8PDR46fPyl+8rKquefX6dW1tXV3dG3zQAlK0APh+be3rVzXVEIsV
+	z8uelBQV3r2Vl3PxXPoxgGPk1oANXh6uTvbTLGg4Qmr13+w8ysORF5BEQ06cYjtr3qJl
+	3j6bQyNjEg4ePXUm63Ju/q27BQ+LSx4/LXtWXvHiReXLly+ryFOND1pAQhagTl/18mVl
+	5YuK8ufPyp6UPip6cO/2jWvZF86lpx5J3LsrPMh/recSl7l2Uy3MTUZTOtJcTld3WPFj
+	UOHPMkJCQJpOsJru4Oi6dOU6/6BtO2P3Hzp68nTmxezc67fu3Ct8WFT8qPTxkydPn5bh
+	gxaQqgWePn3yuLTkUVHRg/t3b9/Iu3o562z68eSkuOiIrQE+3ssWz58zw2ay2ViSyqF0
+	/Dc7j0oB+SuzZB05ysh0vMXUmXMWLF7mvWFT8PZde/YfTElNP5sFIZl3/ebtO3fvFxQ+
+	ePDwYRE+aAFJWuDhw4cPCgvu37t7+9aN/Nycy1mZGaeOHUmMi44MDfRbu3Kpq5PD9CmT
+	xo0x+OFwpLseEJCQZdXRNxxrNtnadpaT6xLP1b6bQ7bviklIOnL0RPqZzKxLV3Jyr+Xl
+	X79x8+atW7fxQQtI0AK3bt26eePG9fxruVezL1/IOptx6njKwf17oyPDgvzXe3kAHGdO
+	s5xgamygO/wH6UhQySxZISBH6EFWZ6LlNLs58xd5rFzjGxAcviN6774DR1JST6WfPpuZ
+	lXXx0uXLV7Kzs3PwQQtIzgLg+FeuXL508ULW+XNnMtJOHEs+lBgfsysiNNB/vfdydxdH
+	h+nWk81NDEeN1NYaTFI5/3mxyqxcSUDCtseQYcN1DYxMzSdbT3eYu2AxRKTPpqDQiJ3R
+	exISDx5OOXr8xKm09PSM02fOnDmLD1pAchYAxz99OiM9Pe1k6rGU5ENJ++NioiK3BW/2
+	WwfR6Oo8e+ZUy4njxozW14Fw/H3AD4cjJSQUBgwcoqU9Un80INLCxnaWI0Skp/d6v4Cg
+	0O2RUTF74vYlJh08dPhIcgo8R5nnGD6aaAH26+C/8S3wMx+KfQ/x/OTkI4cOHkjcn7A3
+	ZvfOiG0hWzb6rFm1DKJxjt30KQBHIwPdEaRmdcBvP0pHdsn6a3/YiKRrViMTs0mWU2fM
+	cpy/cMmyVavX+20KDA4Nj9ixa3d0TOyevXHx8fEJ8OzDBy0gGQsQj0+Ij4+L27snJmZ3
+	1M6I7WEhQZv9fdZ6e3osdiHRaG0xwRTgOJKRjr9BGcB/2uhglqrcv8KSlaRZyZoVEGls
+	aj7Jaqqtwxxnl8VLl6/0XrvBzz9gS1BwSGjYtvDt2yO4JxIfTbQA93nw33kW+JkPJX/N
+	9vDwsNCtIUGBmzf5+axb7bXCw33hfMfZNBrHjTWkcOSk40+EIyxZGRE5kCBSd9ToMRCR
+	ljbT7WY7znNZ5O6xfKWX95p1G3z8/Pw3bty0KQCezfigBaRkAeL0mzZt9Pfz8/VZv3a1
+	96oVy5a6uS5wmuMwY9oUiwnjYKmqp6M9bMjPrlVZRPaRIVJLW0d3lCFE5ESLKdNs7WbP
+	dV7gsshticey5StWrvLy8oZnNT5oAclZgHi+t9eqlZ4rlnksdV/s6jLPcY7DzOk2lpNp
+	NJKl6lACR1ir/ovzx9zStNt/pwHZ/3eyaNXW0Rs12tjEbMJkS+tp02c6zJ7j6DzfxcV1
+	4aLFbm7u7kvgWYoPWkBCFiA+v8Td3c1t8aKFri4L5jnNnTPLbsZ0GyuLieamY40MIBrp
+	LgeTyPmptSoXoRwiYdEKEak7ysBorCmEpIWVzbTpM+zsZ82eM2euo6OTk7Oz8zx80AIS
+	swC4vbOTk+PcOXNmz3Kwm2k7faq1pcXE8eNMjA0N9Eg0kqVqf7iboyfgyMRkn75MXodG
+	5IiRegajjceajhs/cbKF5RRriMrp021nzJg5c6YdPmgByVkAHH/GDFvb6dOnTbWZYmUx
+	edIEM1OTMYYGo3R1ZNFIdjl6BI4sJGlEwtbHwEGwGzlcR1ffYLTRGIhJs/ETJk6abGFh
+	YWlpZWU1BR+0gOQsAI5vZWkJMTB50sTx5uMgFoGMo/RGjtCmuhHY2NPRCEEJi1aGkb8P
+	GjwUQhIoCTFpCEFpYmoKcWlmZm5uPh4ftIDkLACOb25mNm6cqanJ2DHGRqMNRunr6kAw
+	wkJ1IFmpqiAaCSXZiKSQJCEJmBypq6c/ygDC0tDIyMgYnjH4oAUkZgHi98ZGRoaGo0cb
+	QCjqQSwOBzIOgZQqKcdRUTSSiKS7kb/++huEJFByyFCtYRCUI3QgLHX19PT0uWcUPmgB
+	aViAc3lwf13dkSMhEodr01gEMrJo7FndSMOQ9y8MJJmQBDEJQQlRCWFJn+H4oAWkaAHG
+	/YcN09ICLA5mYpGsU3s4icOLQ94faUhCGR1gEjj5+8CBgwYNGjx48BD5MxQfTbSA/APh
+	n2QW+JkPJXvJEIhCiMNBA4GKvw8Y0B9iEZapqiUjLyJh3UqyO/36wdr1t/79IS5JYOKD
+	FpCyBSAKIBZ+I6FIY7Entzf4wdfdn2lQsmH5Kzy/4YMWkKgFiP+TOCSRCFjs0a3G7uKv
+	m39Ofh0eGAc+aAHpWoAJA3VDsZugxH+MFkALoAXQAmgBtABaAC2AFkALoAXQAmgBtABa
+	AC2AFkALoAXQAmgBtABaoFct8P/b5umcCmVuZHN0cmVhbQplbmRvYmoKMjQgMCBvYmoK
+	NDQ4NjUKZW5kb2JqCjIwIDAgb2JqCjw8IC9MZW5ndGggMjEgMCBSIC9UeXBlIC9YT2Jq
+	ZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMjU2IC9IZWlnaHQgMjU2IC9Db2xvclNw
+	YWNlCi9EZXZpY2VHcmF5IC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVE
+	ZWNvZGUgPj4Kc3RyZWFtCngB7dCFQQIAAABBsTswEAxsBQWD/XdzkL8b4Vartj8MGDBg
+	IDnwiwEDBgwkB34wYMCAgeTANwYMGDCQHFhiwIABA8mBBQYMGDCQHPjCgAEDBpIDnxgw
+	YMCAgeDAHAMGDBhIDswwYMCAgeTABwYMGDCQHHjHgAEDBpIDbxgwYMBAcuAVAwYMGEgO
+	vGDAgAEDBoIDzxgwYMBAcuAJAwYMGEgOPGLAgAEDyYEHDBgwYCA5MMWAAQMGkgP3GDBg
+	wEBy4A4DBgwYSA7cYsCAAQMGggM3GDBgwEByYIIBAwYMJAfGGDBgIDpwjQED2YERBgxk
+	B64wYCA7cIkBA9mBCwyEB84xYCA7MMSAgezAGQYMZAdOMWAgO3CCAQPZgWMMGMgOHGHA
+	QHbgEAMGsgMHGDCQHdjHQHhgDwMGsgO7GDCQHdjBgIHswDYGDGQHtjBgIDuwiQED2YEN
+	DBjIDqxjwEB2YIABA9mBNQyEB/4BLgXylgplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2Jq
+	CjM2NgplbmRvYmoKMjUgMCBvYmoKPDwgL0xlbmd0aCAyNiAwIFIgL1R5cGUgL1hPYmpl
+	Y3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNTYgL0hlaWdodCAyNTYgL0NvbG9yU3Bh
+	Y2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURl
+	Y29kZSA+PgpzdHJlYW0KeAHt3Qs/k2EYB+A5j2HOZpjz+TxzNkQSSSJJJJEkkkgStq/e
+	B+n6CPtte9/nuQ//K51KPT483N//vbv7c3v7++bm1/X11dXPy8sfFxffz8/Pzr6dnn49
+	OflyfPz56Ojw8NPBwcf9/Q97e7u773d23m1vv93aerO5ubHxen391dray9XVFysry8vP
+	l5aeLS4+XViYn38yNzc7OzOTTCanp6empiYnJyYmxsfHxsZGR0dGEonE8HA8Hh8aGhwc
+	HBjo7+/v6+vt7e3p6e7u6urq7Ozo6Ghvb2tra21taWlpbm5qampsbGiIxWL19XV1dbW1
+	0Wi0piYSiVRXV1VVVVZWVJSXl5eVlZaWlpSEw+Hi4qKiosLCUChUUJCfHwwG8/Jyc3Nz
+	crKzs7OyMjMzMzICgbTP7/v3+/f/9/zz/Pf+8/53/nH+c/51/nf/cf9z/3X/V/9Q/1H/
+	Uv9T/1T/Vf9W/9f/0P/R/9L/0//U/9X/1v83/2D+w/yL+R/zT+a/zL+Z/zP/aP7T/Kv5
+	X/PP5r/Nv5v/t/9g/8P+i/0f+0/2v+y/2f+z/2j/0/6r/V/7z/a/7b/b/5d/IP9B/oX8
+	D/kn8l/k38j/kX8k/0n+lfwv+Wfy3+Tfyf+Tfyj/Uf6l/E/5p/Jf5d/K/5V/LP9Z/rX8
+	b/nn8t/l38v/5x/wH/gX/A/+Cf+Ff8P/4R/xn/hX/C/+Gf+Nf8f/4x/yH/mX/E/+Kf+V
+	f8v/5R/zn/nX/G/+Of89IxBIp1L8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8
+	d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/
+	zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf
+	+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47
+	/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/n
+	vwfSqdTjw3/sv/8DK6twSQplbmRzdHJlYW0KZW5kb2JqCjI2IDAgb2JqCjgxNwplbmRv
+	YmoKMTcgMCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMCA+PgplbmRvYmoKMTgg
+	MCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgplbmRvYmoKMjcgMCBvYmoK
+	PDwgL0xlbmd0aCAyOCAwIFIgL04gMSAvQWx0ZXJuYXRlIC9EZXZpY2VHcmF5IC9GaWx0
+	ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AYVST0gUURz+zTYShIhBhXiIdwoJlSms
+	rKDadnVZlW1bldKiGGffuqOzM9Ob2TXFkwRdojx1D6JjdOzQoZuXosCsS9cgqSAIPHXo
+	+83s6iiEb3k73/v9/X7fe0RtnabvOylBVHNDlSulp25OTYuDHylFHdROWKYV+OlicYyx
+	67mSv7vX1mfS2LLex7V2+/Y9tZVlYCHqLba3EPohkWYAH5mfKGWAs8Adlq/YPgE8WA6s
+	GvAjogMPmrkw09GcdKWyLZFT5qIoKq9iO0mu+/m5xr6LtYmD/lyPZtaOvbPqqtFM1LT3
+	RKG8D65EGc9fVPZsNRSnDeOcSEMaKfKu1d8rTMcRkSsQSgZSNWS5n2pOnXXgdRi7XbqT
+	4/j2EKU+yWCoibXpspkdhX0AdirL7BDwBejxsmIP54F7Yf9bUcOTwCdhP2SHedatH/YX
+	rlPge4Q9NeDOFK7F8dqKH14tAUP3VCNojHNNxNPXOXOkiO8x1BmY90Y5pgsxd5aqEzeA
+	O2EfWapmCrFd+67qJe57AnfT4zvRmzkLXKAcSXKxFdkU0DwJWBR9i7BJDjw+zh5V4Heo
+	mMAcuYnczSj3HtURG2ejUoFWeo1Xxk/jufHF+GVsGM+Afqx213t8/+njFXXXtj48+Y16
+	3DmuvZ0bVWFWcWUL3f/HMoSP2Sc5psHToVlYa9h25A+azEywDCjEfwU+l/qSE1Xc1e7t
+	uEUSzFA+LGwluktUbinU6j2DSqwcK9gAdnCSxCxaHLhTa7o5eHfYInpt+U1XsuuG/vr2
+	evva8h5tyqgpKBPNs0RmlLFbo+TdeNv9ZpERnzg6vue9ilrJ/klFED+FOVoq8hRV9FZQ
+	1sRvZw5+G7Z+XD+l5/VB/TwJPa2f0a/ooxG+DHRJz8JzUR+jSfCwaSHiEqCKgzPUTlRj
+	jQPiKfHytFtkkf0PQBn9ZgplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjcwNAplbmRv
+	YmoKMTIgMCBvYmoKWyAvSUNDQmFzZWQgMjcgMCBSIF0KZW5kb2JqCjI5IDAgb2JqCjw8
+	IC9MZW5ndGggMzAgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIg
+	L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa2TzWsTQRjGn02QCtZQi0jx4oJSPERdkhbb
+	W9t8SOwSlySlfhw02d1soslm3d1ErR561H+gFEQQPOjBmxc9tSeR4ieC9OBdUU9a6qGU
+	9Z0Zd4Ng8eK7zMxvH555Z+adXSC+UXWcVgxA2/bd0qkZ+ey58/LAOiQcQgJJyFXdc6Y1
+	TSXLDrH5gdwU74+xXF9iz7c+fdtz58Li7bXDSw9bO0wK5YRLCwJSkoT9luApxjXBFcbX
+	fMcnT4Ox3qgaxLeIk26llCF+RJywBD9lXBP8gnFPt9jcdWLFNpo2ENtNPGGYnk48RWwZ
+	nt4mpjwS2u0O5Y+znEd1x6W58bfER1hdaKS4mgAmv5J+r69dPAE8WQMOaH1tdBkYvgQ8
+	m+xrP97wWkkjNa+eTvF00uBBYNdqEHwPgAHyb78Ogq3lINheojU2gJWi3nV73EsblF4B
+	/3oXZxbZgXd0Bgp+R39nURfuUoAHq0BlEVBpvEvj6E9g301AA+lUpnQ6bKKGJAN7szlV
+	lVNjynhem+fKf+zarS7dFY9h6gftWvEMjSPUPju+RpsS7PXKuZDrzXwhZKOanQ15oZEp
+	hlx386WQL1dPswPynKY9Vw7ZafFv//daM5Hf9HKRZ6FRYWfmHrdbmgv5Smc28htmNtqb
+	3Sqy/4n7m34h2j+yyEGlR0YKY1AwjjyVfV58kzQDQ4+B+0PKyXR55eNLJvwRvnmd33Wm
+	49xwm1bDl6fpjzSTcsHWjyfllKJM4BeDarM/CmVuZHN0cmVhbQplbmRvYmoKMzAgMCBv
+	YmoKNTY1CmVuZG9iagoyMiAwIG9iagpbIC9JQ0NCYXNlZCAyOSAwIFIgXQplbmRvYmoK
+	MzEgMCBvYmoKPDwgL0xlbmd0aCAzMiAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VS
+	R0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhZRNSBRhGMf/s40EsQbR
+	lwjF0MEkVCYLUgLT9StTtmXVTAlinX13nRxnp5ndLUUihOiYdYwuVkSHiE7hoUOnOkQE
+	mXWJoKNFEAVeIrb/O5O7Y1S+MDO/eZ7/+3y9wwBVj1KOY0U0YMrOu8nemHZ6dEzb/BpV
+	qEYUXCnDczoSiQGfqZXP9Wv1LRRpWWqUsdb7NnyrdpkQUDQqd2QDPix5PODjki/knTw1
+	ZyQbE6k02SE3uEPJTvIt8tZsiMdDnBaeAVS1U5MzHJdxIjvILUUjK2M+IOt22rTJ76U9
+	7RlT1LDfyDc5C9q48v1A2x5g04uKbcwDHtwDdtdVbPU1wM4RYPFQxfY96c9H2fXKyxxq
+	9sMp0Rhr+lAqfa8DNt8Afl4vlX7cLpV+3mEO1vHUMgpu0deyMOUlENQb7Gb85Br9i4Oe
+	fFULsMA5jmwB+q8ANz8C+x8C2x8DiWpgqBWRy2w3uPLiIucCdOacadfMTuS1Zl0/onXw
+	aIXWZxtNDVrKsjTf5Wmu8IRbFOkmTFkFztlf23iPCnt4kE/2F7kkvO7frMylU12cJZrY
+	1qe06OomN5DvZ8yePnI9r/cZt2c4YOWAme8bCjhyyrbiPBepidTY4/GTZMZXVCcfk/OQ
+	POcVB2VM334udSJBrqU9OZnrl5pd3Ns+MzHEM5KsWDMTnfHf/MYtJGXefdTcdSz/m2dt
+	kWcYhQUBEzbvNjQk0YsYGuHARQ4ZekwqTFqlX9BqwsPkX5UWEuVdFhW9WOGeFX/PeRS4
+	W8Y/hVgccw3lCJr+Tv+iL+sL+l3983xtob7imXPPmsara18ZV2aW1ci4QY0yvqwpiG+w
+	2g56LWRpneIV9OSV9Y3h6jL2fG3Zo8kc4mp8NdSlCGVqxDjjya5l90WyxTfh51vL9q/p
+	Uft89klNJdeyunhmKfp8NlwNa/+zq2DSsqvw5I2QLjxroe5VD6p9aovaCk09prarbWoX
+	346qA+Udw5yViQus22X1KfZgY5reyklXZovg38Ivhv+lXmEL1zQ0+Q9NuLmMaQnfEdw2
+	cIeU/8NfswMN3gplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjc5MgplbmRvYmoKNyAw
+	IG9iagpbIC9JQ0NCYXNlZCAzMSAwIFIgXQplbmRvYmoKMTkgMCBvYmoKPDwgL0xlbmd0
+	aCAzMyAwIFIgL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlIDggL1NpemUgWyAx
+	MzY1IF0gL0RvbWFpbgpbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL0ZpbHRl
+	ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBzcLXcQJAEAXByT8vjLDCO4HwIoobfRPA
+	K7arW4f22V1akT1anX3ae/t85hfWOcAih1jnCIscY50TLHKKdX5jkTMsco51LrDIJda5
+	wiLXWOcGQ7cYusPEPYYeMPEHQ4+YeMLQXww9Y+IFQ6+YeMPQO4Y+MPGJoX+Y+MLAf+tF
+	vN4KZW5kc3RyZWFtCmVuZG9iagozMyAwIG9iagoxMzAKZW5kb2JqCjMgMCBvYmoKPDwg
+	L1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDUxMiA1MTJdIC9Db3VudCAxIC9LaWRz
+	IFsgMiAwIFIgXSA+PgplbmRvYmoKMzQgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL1Bh
+	Z2VzIDMgMCBSIC9WZXJzaW9uIC8xLjQgPj4KZW5kb2JqCjM1IDAgb2JqCjw8IC9MZW5n
+	dGggMzYgMCBSIC9MZW5ndGgxIDUwMzIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry
+	ZWFtCngB7TiNfxNVtufcOzOZNkDT0pbQAJl0aJWm2QIKlEJpaJKWNkILVDepsCb9kADF
+	Flo+n9Iqq2L4sK7a1d+u6K6rFaw6bZENRZevxdUVfn6ivLfig4X14z0R9Af7VoHOO5Nq
+	BZd9f8Gbk3vn3nPOveeej3vu3AACwBBoAw7u2mXhJpBhGmEOU7HWrmpR3tm342NqnwaQ
+	V9zetGhZ6hcziZ4QABDKFzWsvT0yatrbAEN/RzyvR+rDdWeXqscBhjVQf3KEEMPGCEQf
+	ZtDHRpa1rJH3Yxf1X6e+3NBYG4Y6SKc+8YC0LLymiT0q3k39Y9RX7ggvqx+59bl11P8H
+	9dWmxuYWvQpuB0gaRf3sphX1TWeOuN6jvpfWEyYcEhjPEJCoADgMjNgLILbBGCojeA9k
+	6hf0v1L5zCj9s4j2NCT31wDwEmpvi4+/qhJP0OyeAZT+L56rBlyzMzAQDE2Ncu2nHMxQ
+	AltABAsI8Az1zsJxuA8klGEyJEM+vIAfgQcq4R4shJ8TTwaUwQuwGz7ARfolEPSgfgCW
+	QidOIv0zoAAWwF44T3x/gp9CGNZAK96j30XWSYQxkAk3kDVXwDo4SRwJkAY2yMQsNo0f
+	gxE0sgHaYAPsFir0Z/XjNCaBoAKeheegH6sxou/STxEmH6aCD+bDHcT7AIqYJo7R/6Kf
+	18/DRFrnQlhE8yyHx2AXmnA4OvEPrIh3wDjSsxGaIAod8Ev4M2bjm7xS3w4uggkwh+a7
+	FWpozi3QB2/ANyixGraGvcB28RX8ogDCUfFtyae/ph+hyBXBSmMKaMRtFE+Lad4H4R34
+	EP4KX8HXmIaZOAEn4wwsw6WsQTJLP9X30BgzjAaFbJADebTSAigmmEe2uBMehS54BV4l
+	OABfokJwHcE4vBWfwR48xZKYwg6zd9g3PJ/7+aOCVVgo3Ck+Jp6UcnSPvosslQJ2UGEK
+	zVhOFrsVamlVzWT9X0InwYuwE2LwHvwFTsHfaH0j0Iqj0IOlWI7nGGePs8/5ZL5OkPpH
+	6xP19fGoTqLVziAoJ7gJZsNcuJk8GoB68vY6+De4C9bDPRQRD0I7gSFnQEof7IPXKeLe
+	JXv8B/n5FPwXnKOI+BYukz+SSLIDc/AGzMfp6CXwYQVBBFfj/bgZ2/Fh7CKNN7KH2Vc8
+	kafycl7P7+ab+JN8Lz/IjwjZwiyhR+gVC8RScROBJh4TP5G45JEekj4zbTe9IlvlIrlM
+	Xiz/+tLOfug/2n9On6HP0bfoW/V2/b/j3pPIYjL5YwhFeCpFrRNupIgqp+iZD1UQ/M5+
+	yyhSmwlWwipYC/fC/bCZYAs8RBH0G3geeuBl2A9/hNdIUwOO0c75mOA07aF/kK4ymnEo
+	aWwhGIVjcCzFnBNzMQ8nYSG6yf5zMIj1uAI34TZ8GV/Ft/AjBuRtG1NZAZvO6sgKz7Od
+	bC/55zryUD6/iS8iazwpJAluEcQO8TOpU3oV3sPptN+ufh6Br/RUYQucod2zGt7neXod
+	r8Xl0CLehk74lnbGbtJF5ZSLcRycE75AJ1vN0nAjS2OT2GnxFXykP4qJ5MuPIIdW5hM6
+	4N+hkM+gvbqW+4WF7PdCNu6kCK3BL9lC9ivmE9ewaijGF9GF5XwcHDFlSZ+wevycZ5pC
+	cBFXkRaV8Du2AzYyF/4Pm9a/T3KJE2G78BHzwHY4xjJMEkvjF9m77Am4gz1Ee+IRirpv
+	4Be03qG4gnKOCwvwXYqmg/g+5d8XxDb9vHgnK2TT8R32N4ogEJ4QwgNc/yJx/j86bgF4
+	iS0zzaKsO0I8IB4w2uwQa+Qu7mImOEJ1IzOxD4Ri+AXXTDoWiptQkd6U3sQlUCciZEOF
+	8DPswK/xIPQKU+A8fg0opEAFZkvT8AlxGlSII+ExlgkP0Sn3Br7I18DnOJrGLGGHTLMw
+	X7gICzEffisUC5/wDvYImlkOnsT78O8EDZRdnbgW1ksvwWq+EfJ42PQ+OtjP2R5oYaWU
+	ZeewbKzkb8Eh2CMVsJvpnQ37+TYWoCyXJx+GM9ggbBA24AdQxuZBG2sVEJLwuHAJGqQW
+	uFP8EO7C1XEpfYYc2vO/IVmT8E902m2gHJNNZ8sewn4IRZBLuXsN5e0dlAOClCmQzsYz
+	KFFmMHLeKbYTGfweZsHD3Mct0sNwN/sWMyjD1BE2C5bBVlQpSxRS1jyIH9M5GqBT73pe
+	A3NN24HhcNqhIG6lk0eFE/AqlsNP4EPMoMyoAjKB34htcAmrWEd/jVACiXw53yAuxRLa
+	Ty8C6qnwZz0i0PeGe1L+lBsmjM/7iSvXmTPu+uuys8aqmQ7FPmb0KFvGSOuI9LTU4SnJ
+	lqRhQ4eYExNkkyQKnCHk+tSSkKJlhzQhW501y2X01TAhwlcgQppCqJKreTTFGBcm0lWc
+	buK8/Uec7gFO9yAnWpTpMN2Vq/hURTviVZUYVs8NUHuLVw0q2pl4e3a8LWTHO0Op43DQ
+	CMVnjXgVDUOKTyvVhCwtsSrg0MqCqyJRX8jrysVuc6JH9dQnunKhO9FMTTO1tBK1qRtL
+	ZmC8wUp8Bd0M5KGkrlauen1amUpDaUae5QvXaZVzAz6vzeEIunI19NSqNRqoxVqSM84C
+	nrgYTfJoprgYZbFGmsEmpTt3X3RzzAI1IeeQOrUuvCCg8TDN4dOSnVqp6tVK1522unJj
+	+GxVQEvwxBCqAruhXG/rLmvzeoOGtBRP4P4r2W086rMuVozR0ej9ivbU3MAVk9kcxpTB
+	IE3qyvXPCzho1apvs2KoMS8Q14AmRWseLdzAGWoOKFyv+gxMaImiJajFaiS6JER+y4hq
+	MG+toyej3L1bPwHlPiVaFVAdWpFNDYa9o7pTITpvbW+ZWym7muLK7bYkD1i6e1jSd40h
+	Q69s1JMXBmjxVpzdaNGqvzc1GitSyzQ3hVutQisJqBrLyjeq+nyI1uaTR+gJIll0Mdkv
+	FLUUkHaamGVRlegFoJhQz3xxNSb8HUbKslwAg2hEzmD0aRj+vq05nVpOjhEpJg+5llY2
+	I96f5MpdpfnVJoui+clkUBmgQcGCPDK5w2F4eVPMDTXU0drmBgb6CtTYesCd5wxqLGRQ
+	9n1PSbvZoLR9TxkcHlIpsnfGbxJpmpw9+EuypA/3RQo0TP8/yPUD9BLax9FoiaqUREPR
+	cExvq1EVixrt9vujTT7afwMrj+l9m2xayeagZglFkMynDfcEuI0ZsUctZuNBF31GUGKg
+	nERAX0smutQkO5KzqKLTFS4pfN8ltwgXQRH2ERcw6NKPMyvdY0wwHCrciRIKAJQeuRDD
+	ZW6b/PwwM98q3CfhSrO0MjmttLTc/HxyWeqCVVbnHMv52Zfn+Oq9n8y2nCY4fwaKLn9Z
+	hMkpU4HK1AnjcQTjKqNPn4mUwCQ1M3vSjZPx0wlTb1non3ggtTwSKS+LLBK3Zfe/cfkW
+	thyvL7z4noGKlJVHaG2GGgzgsulXoduSpl8Am2ysGA6VNvQMvmn1pOk24k2I8xsEGiex
+	y81wWt7f/1j/4/ITgxSDajxMIhTbT9/tQPfJOqoHZC0geQvITIzuU6kwnRgLhR6yokFF
+	+ko33jQ5fXeCd25xZdktTk+4YXHz7KriRrrC0lqNR7/JuHNe4zHoZNwYf7Rn+Uh7jF/s
+	pdeUGJrdGWNW22+hspCK0jq+1d3KX37Qa59iWWfpQw6MHd7VNNZ+6ORwewz7e0+OtOfN
+	TMAHoIgKg5PsIF3F7Oyge/5rqr2pta2VtZofND9pfsm81/yWme5hlgT2dsKJhHMJPInb
+	OftPfpbrnOcpaM+8LfOsoitCkpKnFCkVSqPSqrykmJIy7ZkVmbxtOVpmOlgTKFTGU3FT
+	aafyFBVpEGtgeJxWSS02iCd9qW9hTe5EtmNdpr1tHW7siumHe63p8bf7emv6U5+a7E99
+	+owpfUnnnqyBquPp8faOpxPGpz/dmZMwUMVwQs/jZnsfToDH8Ua3xXwFLSVZdsdY/ss3
+	2xJsCe1/wOcoktvx1/Fachea2i+a2ttM7UtN7YtM7SFT+89M7QHTWDlTVuQx8ig5gy4c
+	6XKqnCJb5GHyEDlRlmVJFmQmg5wa00+4JxiuT6V/HRDSJYvxkowdAkK8bSElKZTIsxQb
+	DGVG9xD0a/tqwV+jaH+fr8YwcW61JqrFqKX4wV9VbEVtOPcz//xiLd/pj8kwT5vi9GsJ
+	lbcGuhG3BgmrsY3x4yWGIw3UvTbjZNlNXy7z7t1iM976vVuCQUhfVWQtSpmRPLXEe40q
+	9AMy5HX+82P9AYX+yrV7wY5nyWh2VOJ1aq/J/qTJ4PHPJ2J7nNgeJ7YjEdsHiNbRWod/
+	fkDbMTqoTTQa+uhgb3XfhqM+OqRCqq+eSkjbtCpi1dpqFKV7Q59BoLMiO1RTGzHe4Xqt
+	T633ahtUr9JdHR/3I/JRg1ytervhqK8q0H3UXe/tqXZX+9SwN9jb2dLYdZWsBwZlNbZc
+	Q1aLMVmjIaszPu5HsroMcqchq8uQ1WXI6nR3xmWhb/H8YrJVoFuG4qBnwcC7l5kTyT0h
+	myNYHPfTNId1va2PXcACMNMpMoQ+PoZSMVzomumaSSQP88RJw4zvku9I1vXTHLY+LGAX
+	4iQLoZMpaPAHLxmtZmdzc/PKFqpaVkLLSoJm4miOU5zQMsBMwfi/LcjbTgplbmRzdHJl
+	YW0KZW5kb2JqCjM2IDAgb2JqCjM0NTYKZW5kb2JqCjM3IDAgb2JqCjw8IC9UeXBlIC9G
+	b250RGVzY3JpcHRvciAvQXNjZW50IDc1MSAvQ2FwSGVpZ2h0IDY5NSAvRGVzY2VudCAt
+	MzE5IC9GbGFncyAzMgovRm9udEJCb3ggWy0xNzYgLTIyNyAxMDc2IDkxM10gL0ZvbnRO
+	YW1lIC9EUUJQSVYrQ2FsaXNNVEJvbCAvSXRhbGljQW5nbGUgMAovU3RlbVYgMCAvTGVh
+	ZGluZyAxMTEgL01heFdpZHRoIDEwOTQgL1hIZWlnaHQgNDcxIC9Gb250RmlsZTIgMzUg
+	MCBSID4+CmVuZG9iagozOCAwIG9iagpbIDM0NCBdCmVuZG9iagoxMSAwIG9iago8PCAv
+	VHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9EUUJQSVYrQ2Fs
+	aXNNVEJvbCAvRm9udERlc2NyaXB0b3IKMzcgMCBSIC9XaWR0aHMgMzggMCBSIC9GaXJz
+	dENoYXIgMzMgL0xhc3RDaGFyIDMzIC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+
+	PgplbmRvYmoKMSAwIG9iago8PCAvVGl0bGUgKFVudGl0bGVkKSAvQXV0aG9yIChQcmVz
+	dG9uIEphY2tzb24pIC9DcmVhdG9yIChPbW5pR3JhZmZsZSBQcm9mZXNzaW9uYWwpCi9Q
+	cm9kdWNlciAoTWFjIE9TIFggMTAuNS41IFF1YXJ0eiBQREZDb250ZXh0KSAvQ3JlYXRp
+	b25EYXRlIChEOjIwMDgxMTE3MTg0NzE0WjAwJzAwJykKL01vZERhdGUgKEQ6MjAwODEx
+	MTcxODQ3MTRaMDAnMDAnKSA+PgplbmRvYmoKeHJlZgowIDM5CjAwMDAwMDAwMDAgNjU1
+	MzUgZiAKMDAwMDA2OTExNCAwMDAwMCBuIAowMDAwMDAxMDk4IDAwMDAwIG4gCjAwMDAw
+	NjQ5NjMgMDAwMDAgbiAKMDAwMDAwMDAyMiAwMDAwMCBuIAowMDAwMDAxMDc5IDAwMDAw
+	IG4gCjAwMDAwMDEyMDIgMDAwMDAgbiAKMDAwMDA2NDYxNCAwMDAwMCBuIAowMDAwMDAy
+	Njk4IDAwMDAwIG4gCjAwMDAwMTM5NDkgMDAwMDAgbiAKMDAwMDAwMTQ1NSAwMDAwMCBu
+	IAowMDAwMDY4OTM5IDAwMDAwIG4gCjAwMDAwNjI5MzcgMDAwMDAgbiAKMDAwMDAwMTYx
+	MyAwMDAwMCBuIAowMDAwMDAyNjc4IDAwMDAwIG4gCjAwMDAwMTM5NzAgMDAwMDAgbiAK
+	MDAwMDAxNTM2NiAwMDAwMCBuIAowMDAwMDYyMDE5IDAwMDAwIG4gCjAwMDAwNjIwNjQg
+	MDAwMDAgbiAKMDAwMDA2NDY1MCAwMDAwMCBuIAowMDAwMDYwNDQ4IDAwMDAwIG4gCjAw
+	MDAwNjA5ODggMDAwMDAgbiAKMDAwMDA2MzY2MiAwMDAwMCBuIAowMDAwMDE1Mzg3IDAw
+	MDAwIG4gCjAwMDAwNjA0MjYgMDAwMDAgbiAKMDAwMDA2MTAwOCAwMDAwMCBuIAowMDAw
+	MDYxOTk5IDAwMDAwIG4gCjAwMDAwNjIxMDkgMDAwMDAgbiAKMDAwMDA2MjkxNyAwMDAw
+	MCBuIAowMDAwMDYyOTc0IDAwMDAwIG4gCjAwMDAwNjM2NDIgMDAwMDAgbiAKMDAwMDA2
+	MzY5OSAwMDAwMCBuIAowMDAwMDY0NTk0IDAwMDAwIG4gCjAwMDAwNjQ5NDMgMDAwMDAg
+	biAKMDAwMDA2NTA0NiAwMDAwMCBuIAowMDAwMDY1MTEwIDAwMDAwIG4gCjAwMDAwNjg2
+	NTYgMDAwMDAgbiAKMDAwMDA2ODY3NyAwMDAwMCBuIAowMDAwMDY4OTE1IDAwMDAwIG4g
+	CnRyYWlsZXIKPDwgL1NpemUgMzkgL1Jvb3QgMzQgMCBSIC9JbmZvIDEgMCBSIC9JRCBb
+	IDw0OWU2MjQzZGUwYzBiMTQ0NmRmMDQzNjRjNzc1ZGNlZj4KPDQ5ZTYyNDNkZTBjMGIx
+	NDQ2ZGYwNDM2NGM3NzVkY2VmPiBdID4+CnN0YXJ0eHJlZgo2OTMzNgolJUVPRgoxIDAg
+	b2JqCjw8L0F1dGhvciAoUHJlc3RvbiBKYWNrc29uKS9DcmVhdGlvbkRhdGUgKEQ6MjAw
+	ODExMTQyMzU4MDBaKS9DcmVhdG9yIChPbW5pR3JhZmZsZSBQcm9mZXNzaW9uYWwgNS4x
+	IHJjIDEpL01vZERhdGUgKEQ6MjAwODExMTcxODQxMDBaKS9Qcm9kdWNlciAoTWFjIE9T
+	IFggMTAuNS41IFF1YXJ0eiBQREZDb250ZXh0KS9UaXRsZSAoUmVwb3J0ZXJJY29uLmdy
+	YWZmbGUpPj4KZW5kb2JqCnhyZWYKMSAxCjAwMDAwNzAyNzQgMDAwMDAgbiAKdHJhaWxl
+	cgo8PC9JRCBbPDQ5ZTYyNDNkZTBjMGIxNDQ2ZGYwNDM2NGM3NzVkY2VmPiA8NDllNjI0
+	M2RlMGMwYjE0NDZkZjA0MzY0Yzc3NWRjZWY+XSAvSW5mbyAxIDAgUiAvUHJldiA2OTMz
+	NiAvUm9vdCAzNCAwIFIgL1NpemUgMzk+PgpzdGFydHhyZWYKNzA0OTgKJSVFT0YK
+	</data>
+	<key>QuickLookThumbnail</key>
+	<data>
+	TU0AKgAALDSAACBQOCQWDQeEQmFQuGQ2HQ+IRGJROKQoViABCsQhoAiEKA8AhR2PF/ux
+	vuZ/t9quB/NWKy+YTGZTOaTWbTecTmdTucAYCAADHwwUEzlADGcLA8ABaISd/N9PLV9p
+	5FKZ9op9PwAPqeV2vV+wWGxWOyWWCiAMAEQMRMgtihsJAANAABAKBAoEgB/gYDAAAgO7
+	P9+v2/Pp9gB/PV7P4BP9/gJpt1+tMnHh8E5wOh/uCzZ3PZ/QaHRaOCT6gN5XA1vhsIv8
+	NP8HA6BBII366wYAv+BbqB7x/P6BO94QJ4vMAMxsP1mDs0vcd1mt6TpdPqdXrdNIHEEp
+	I3lIBm0AbGBBQKwfgQjHboA+uB8DHQJ+ul2PwCPZ6gQ9Jl8npDqR9kO68AwFAcCQKh4G
+	LyBx2FsBp1r4AIDACDoQIEwC9Pe9iDt496/AC3qDH8wh8G2cR8sUf56BAKp6hAeh7gAe
+	kDRlGcaRqsxGDaBBJjmKwCDYAAIgmvQIAgv0jSO9MOt3DEMve3T1IOfZ2HcfgCnmeICD
+	uS58juqqrxtMEwzFMaIAUA4AAYdpcAadgEQjM4OhCgTbt2hbeQ/KEPTrPaCRCAB8m6cR
+	9OKfx4BCKp7BCex8gAe0yUfSFIxkQw0gQRo8i0Ag5H+B64gCCIKIE3ML1FI9R1IgzeSa
+	872Mc4E9ABKUqAKeksDkSZ8jkR5VH2R9JV/YFgs7NwAAVNQGnaBUIgQAAOBFCqfz4gkn
+	r1I1YWpKD0NwgZ+K0fRvnCfZ2ngfx2BEK57BEfCuHxYV3XfeCZj+MYDkOQAwAKPAAAhI
+	R/gi8sPT0f73IG9dryXUsLvVVdq1FgVq1gfR0nafYDHseACjaR58jaShXH2Sl45FkeSI
+	M0wEHcXIHHaBYDn+BR/g6Eq/AGAeCt288j4bhuGSVVGeYPVFW27WJvm+fZ1Hcfx0hHdA
+	RugrmS6lqdJDwLwDkAQ4ygKP4AAfIQAAkDE8YhDeISNalYT5D20oLbGdW2fJ0nSfQDnu
+	eIDDQRZ8DQTJZH4TOqcFwcZgLmwDzVlYGgSf4F2aEyBAIAsPz3DiC1hnODyTtW1WnVKB
+	rsgWiH2cBvH4cp1H8cgTCyewTH2wjD8J2faNIOQsgOPRGjUApCn+BshJCudSbTnudSfD
+	Gyc5gWCYd5GHc09+JHVup8bwMZDnwMZPFsfhPdr8HwrFCwC8SdoH8YBtmhRyK+z5O+2M
+	RuFp/hymd214/6/e+CtH4cI3X/DoH8OEE4Wh7AnH6cAwj4oGQNJoGoKYBg5iVDgAYRgA
+	HgECAmBxPCqlTtuaE8ZJbCyCNsYGz6EMHXnIfHwOcdA+QED6HkAcLwhB8BeFGLkfgo4H
+	Q9h8Q8ASHgCDsFwA8dgEQFD9KUBwFRenJPzIUbpV5DU7m9VVFZhL9FssOfsk8fZXB/Dj
+	G8P0bg5B/DcBUFwewKh/RSh/G+OBAgyBNAMGwTYdgDCTTQv0CgHW0J2Q1Fx+61FRJOZv
+	Id4jZyGJ3iqAAfA5RywwH4PMA4WA/j4CwKkXw/BUxxk8+JPQAx1C2AeOoCgDR+lxA2Cs
+	gQBX3QgQ4/GFDOWEIdka/dz0UZEPPj+3A3kXwAD9HIN0fw1xwD9GsC4L49wXNmk/M9qg
+	XAkAFDIKMPYBxNgAAXHwD8KJYwlZxFl+kWXLOeliteQktm1zgaE/pao9xyDiHwAkfo9A
+	EBTD2PcKYrhhD9FdNCgDJABDoFqA8dIFwHD9VCBsFjkUzv5Z252dMsn7SyQyb8hU6JCu
+	VkQnVtshx/j6UYP8csxBpGSGkDEMQ9wY0BpcsIKwQwCheFSIAA4oVilxH+BRZ6GZzLWi
+	6zeNznXMNueS9GEjZFStBlxR9hI9hxjhHwAof09gnB3HuE4WYxh+izpfV9MYAhyiyAgO
+	YDQER+AXAABmhpQC8wpL0qyir+Jbl+mctKQNEYsPHYLIyQCsV2j+HNMQZpyRmg2DMPcG
+	1YLGIzCeD0AgVxYCGAQKinJAgKgkkC/Wdzb6JV6kXFGRtTmfSGShaNgsHyBD2HEN+qY/
+	x6gICQHMe4SBcjKH6LmxtuzrACHCLACA4wPATH4a8DILS/AGAVXmEEunPrai3R6Dz9rm
+	xUupZtgo+kXj/HONwf4xxqD9GODsNRzreXnNEEgG4BAoC3EYAgV4AAEm1H+BYE8UGFTe
+	ivUapLP6O17VHOeLE7rQRanVLijcWTgD1HENwe7jh7gJCGG8e4QxfDOH6L69GGyxgBG8
+	K0CA4AQgWH4B4AAGLkAAAOAyv8Vb9zfv3f65kuSE1+kdAtdaFTAgML65y67lG1G8Hyo4
+	AA6RuAAGCM8fowQgBuHuEDDmUSeBBBkAMJIvhIgJFsAABCRQAAXBTfxDrAqJ3Wc+5tVr
+	ya+tuH4YQAI+CtSOdlLQg60WvLMLpc+vipa/D0HCNse4DABYRB8GsewPhhjSH8MPKWjS
+	ZgBGyKoCA3ATAZH4s8DALiBYrrxOSutd8g56nYqhDg+XZZwdEzlO7oQHA5labUAA7KvE
+	FdDBih4BXQ6huciYgQ6sji7GWPwXYRg5D4CNo7ZBEwdgtAGEEYglgEi+H+AgpQAQL3Ic
+	3qNs0W7SIfim0FnJ0B/6mMLqpkzwwJhKg0E3TdaiCpqIEOEQxAh/IvIKBSt8QWEPFlqh
+	keg3xsD2AYAOqYOQzj2ByMgaw/hkbJ4dRkaopwIjYBUBwfbkAL6avkUq6uNVU11Paed2
+	BetyABH1nRPYAnHJACEQICIRyBANBhIIiA7xgkCG8HZOZuwJF5YDj+D8tx8HGABr4AAt
+	hjj8FsEsOw+Al8P6gQMGoKABg7GUJsBIxMVcc0zqKkCTIunn3EPkrQAeR3VADQ8B4OuX
+	BEIEA4HCFaHk1HWLEgQ4t5lA1Znh+GoMbEH3+NXgQBB9AKBoGQewNBmjZH8M3qOyAAjQ
+	FGBEaYLwQD7lYBbFN8682d5CQIedI8234uT28G5AgIBBIEA8HaFa3lhHEI4gQ6xVF3J+
+	P8BLk2Db9xpyAgQ9zh6xG8AAWAwh+CwCiHsfAUfH5RBeCQAQNBnifAUMrtIDkPAYpaw2
+	pzbU9OYN4O7IgArlnh1cvsH3pkK54NGNpH4AB5+Ogw+401EHPRTo9UDeiMBweCAWAGHy
+	ASBgDCHuBgpOH8Gk+at2ACGWFAAiGeBoBGH2BeAAAq2wASeC48qM5oN4Hg3sBKe+vkQo
+	QMGkCSIEH2Hi5czw30p+5+f2IUPOHwHeIEJMAAFWF+H4FWCsD8HwCtAUq+BSIwBcGqFE
+	AUGg7SAa+yBoIeeQYWYeWqVeHoUYAAA2EC9Q9aQEH1BmAAGo3YT2AkzwSazWwKWqzQqK
+	WoHqG8GmHsAUAGH0AQBYC8HsBYGuHCH+GvB+meACGME2AgGUByBQH5CWAo40AUVCwI46
+	r+HsaiAgC+IEAwC0QGHmGeIEG2DcQqN2AeTPBc28/0VOrqbU5QHsHaIEHaG+AAFMF2H2
+	FMC2EEHyC3DyjgBKA4ACBUGyFMAWGoQgAYQ8Ay9OT2o0z47BA2wO7IIEAMB+IEA+X0QE
+	HUFgIEHIEbGOdCAY7m88rw34o42+YSHoG6GeHsASAGH2AOBSjUBSG2HIH+G3FigcGCEu
+	AgGMB8BYH41dEILu3cwQxpE+unGIowVixMAABMEqQGHGEhBovivkWiAQcmues6VU7+qK
+	cuIGHqHWIEHdFOFAFsH2FADCEOHyDDHYfABCAyACBOG6FSAXDwAMAWPWAw/OzSv6nGue
+	SatGjaL86IAABcFkQGG2DiIEHoGcL0AW90AMZsz4bKl2rk36eYYSliPeHoHAGcHsAQAE
+	H4AMBMgMBMG+HOJTJCcGF2EkAgGCCIBiH4/SAmxSAWAy4+lg/1DKSYc606HiHqIEBQss
+	KAbAOoGoCnBPFI/mcjKM4826s8Z05QIQHqHQOCHCAAE2FkH2E2DMEWHyDNK8ZKA6AsAC
+	BGHAFYAYG2AEAKASNyAy9a93ESxmrm/yTy9A3sA+ES5jAoNIH5LoAAGmCYbcAgWYp8Ig
+	hOl8kQMIljBYQ5JtKgGaHsQiPoBICwHsBIHGHUH+HHMqXgFoEaAgF0CWBsH4CKH+AkuQ
+	ACAYeHA0kXH4xcnIIGHsXbAqDWPG6eNIHqGwIEG0DUL1KMACAdDCx+xkeOVZLiME5oly
+	N8HoHKMeHiHGACEqFcH0EqDYEeH0/fOiUkAyAmACA+HIFeAYG9M+ASLsA1GSz2IAAACA
+	AA/4NAoJBIPCYS/4IAYHBodA4HCoLDoE+n3BAWTIIGzNDJFI5JJZNJ5E7V3BHGiIIBAF
+	BAYB4S/oTEYLAoxFpHGIhF4nOYtO5/PIuAHq4GU9wIAH6AhCVnsIXO7X+55RWa1W65Xa
+	9X7BYbFY7JJFciQetCiOn6SwAEhbBAaHaNJp3DZLO7vN7xPH2/IIAxjBBCgLLh5E5k9B
+	HUp4IB6aAASBZrYL1KL3dYVPoi83C/wC8XIAUgqn0kDik30ccRrddr9hsdlYgsEACG3O
+	sgY4gEBARMQ0QYfMYdQbzIoXFZzQeVDOLOYpBH7gAA+wrBBOmdnYnAg4I8GHBMnBchAu
+	bJH/NqJy4PEPPBPVfPRzou/QA9nAyHuAX8/n+EIqqmdR4H+dTtwPBEEwVBYAFQQgHlcK
+	4fn6KIAAiuIAAaD75uczjMsyk71vg+R/vsAB5uoFhXuHBiTmyNCCHubyZJoACYIezbjM
+	wvrkR5HaSJsfx5G+fwBHmcwBEUUp9EUO5MH0O8WylKcqSqAAJgcAALnSWYHHKAYCgMAY
+	AA0ISHzG9cQPons2JGirkqEkp5nsggSk4x4MSshZpiehR8oKBoEIEmLLM3HyHoi9LzR4
+	5SDxEhTAPwZB8H8flKhAKp6hAdp5AAdsrVBUNRLGUI/AcVAvCKfwrwsFlABFRcOIan04
+	qyjCFoQzUOome0/gADo/rkGUrHydaCGwLscIIBwFR44r2qLWqjADW9HxNXM3varSHH6e
+	Btn8AZ6nQARClCfRCj4Th9D5Ud23dd6CAgBkrnWWoHHSAgCALMYNCKwMx2krdqLq56H0
+	c+WEJtOLlHufSCAoMmHiVKx5mgghvD0l6KgXQSR4UkVGrxNOFx7XWSrynabHub5iHwfZ
+	9n+fQPioeoPngegAHheGd55BZNDyBxQjKJR/C9CwVrkEllYCrdn0RNc1TVQ1cgAfLqAZ
+	icyDFKx2FqghykqggDUIBMa6Yvbnujk017PH9HoOfp3GofoBnudwBj+Tp8j+QRQH2QWe
+	8DwTEAaBIAAgdpcAedYCgIAYCH+DQjUGyNtq/XDj6W57mMq6rqAJYYABBjMqnKTaCHaW
+	GxMi8aj5BWfNWrzWEzogzAIG6h/9yjcRoK6k4owfs6Huc51HyfB8n+ewPinmp5nvE/B+
+	l6atEmOgGk0Ngnn+MvD6QAAHBMu2EKH8jl/NtiGPfRWlvUfqbACfgLoIExJSsb/AROZS
+	CgQygApiR6jooY/noLUV8P8fB0k6EFgSQR3gAGPtvKArEoRBn4HNIGPseY9R+AFH0PoA
+	gehMj5D0IcUg+xDvUhVCtjj4B3C4AgOwAwBQAgFH+BsJJ5jKNUUeh12ZfVGsjfhDx1x7
+	y+k7HqiYFRjoKILGyGogg+RyEcAMQQATCh/DxOkPMhQ9SFMOh4rci0F1sk5iGTeMrVCG
+	H9aWyQgp9h8DpHkPkeg9R/jzUwpoesCYvQrj8zwRobgGCTDkFUAAbAAAPBUvGRcRVDpu
+	jErJzLJ31NTkoQQej0AAJ2bEBJBRCxor+Oqp8AADIHu8Oax+NLA1lPskuUYzkln0yPOS
+	TYfcc4Oj7HyAQOolR8h1EYKgfYjI/zFVEAmKoCx3i5AgO4A5lIqgcLcAAAUO4xQCZDG4
+	5C0D0E+kirFXDBSdMIj2QQD53gAALBSgofA5iCDOBsSMCS8yhrabRGhEUrkQHKWuTibD
+	sCJEInuoiLEUR1DyH0PAeY/h3oAKmw0AEmpjUTQWIUNIDBGh6C0AAOQ/wHTrACBFV0rW
+	PldakyVtL61tRoIVSVDg93eAXDSQQCIQEFDwGMQQawVjAkVWY08gtLo1ENPijhtE3FnI
+	/VzK59Eb04y3ZcAYfg+gChvEiPkN4khWD7ftRSrxspnmSmWBEd0yB/qCA2R4AAA2zI5q
+	GrapUk2mnQqXUIfR1AHhQIIBaniCR0CmYuHZsTAIWvtkeSVRrCnMVARKwsopyZ8wRJPK
+	whg/T7D6HYPQfY6x3j+HUCMK49gRj5I2r6r9pyyB+DGAsQwgQwABDy+AFFNAXohlm2wn
+	Ftk2xEcufCWI/2XkCAQDkggHA2oKHAIYgg5hLGPh2AomlASIIguoiGVSPGFLRdhUue0k
+	nOyVaqO9hoBx/D7AMGoRo+A1CXFgPwS9qL4FeX2AAA47xdARHeAu8jhgNhNMCoJtM3ag
+	NMlYh+ult2SXSpVUZqY+h0wOk8AAFcTEEDYJCAAdwtiCAKiqACGcbaiNPwVdV11Aq6Uu
+	h6UKbNQcRLQMuTyNg+7Mj7HMOwf45gShYHsCUfZ9oH3xyASMO4XAFB/EQGcARhgGgnII
+	BIGd37wQVVotOw8r5tWKJItFW7Ch+IGOrg+CEYB7gLIIDMZKChohHIIPUapcmOgDYAtG
+	xVJzmofyxG3EjJbH5zsni8kg+B3j2H0Ah3QBgyCIHwGQTotR+CdyDo+tZMQC32AkO8mY
+	/AFgBA4n0f4A3DXaiOdCk59IBSXglqVN51MuwOHQQqB5yj1Dxi8AEGo2DA1tNgMmdZTo
+	uPgcNNRgD5yJ4FpZixkeCsoomxSfPAN27Hn2KIwOyGPh2wcHEOgf44QThaHsCd95TtIW
+	oDgFcBQdxHhsAES4Br4krg1J7qOb7lrcNMrgAAfg7oHDji+iSoRDB5M4AAC4Xh4gRmwH
+	1vgAAzbauuAes2JsQK3HnMzsSWRD87wUz9LO6RIqhRGghREdzyHDD8AOF8Qg+AviiFyP
+	wUW4aJgCIGAQdwuQJjuAeAkfYDQAAbQqjbhzJ5/Ym3rONN2zrtxrgWPocB8GcYjbXOIA
+	I9YFgjMWhYH5sB5jPIINQJzBllz0YOojjNSnZMgUSfbj0QbHdlsR2zEh/t7DuHoP0bo5
+	R/jcBUFwewKu4b95c4EMwUAEBuEyHMAgkZSglYeDqw+BuvQVqaTyb/Ht7EEH1vre2YGA
+	lEqPqhGMmgNLBAABgLhsB1orAANwNzGiCgK0/Bi7ERc6ocLuiDjqiSgyx8ks/Yca2E2M
+	uyQMew7R7D4AUAEfoCAsiAHwFkVAvR+Co7+4MioAx2i5AoO0CICh8gP52FMggBZ6LSOT
+	Eaxa294EE1W1UcJCTqbSyn8C7xInkZNDDOa2Jrxx+IAAOSYjDxgBsrp7iBhDtxkR8zsa
+	3ZqD+JqiyQzTZo6QmxboeofwbAcIfwa4FoLwe4FreL6ZdoMIJYBANITwPAAi5oBhpQf4
+	CgHyoaCRtbKsBQhqMAfAbaN5nS6bKjULoripXSD48QIZ+i5o14bgOYggdYVS5wggBDDr
+	87FUDx87LTPL3yH7KxD6e6C7eaWBQwezkL4wAT5IKgPge4KgVoYIfoVsD5d4AQdYW4Cg
+	dYCgBgfKTwDYKT8L7yuY47UozAjAfiUgfIbrVz+beiAMFzLL9SB7xQAAFoWQ2AaiQxE4
+	ZA8TDpxsQ53qbUBJ4C6yxxRhR7PkKrfr+L8qlqN7aAeIe4fwaQbsVIGIMQe4wcNRUILA
+	IgA4MAU4P4AoT6dJpQAACw4TZDd4rhqROBEwfMGx3RYziSRz3SpkSzj5NkUY+BEwe5jo
+	GgZw2AZqeIAAfQrCdJGrOCbSer3qbccaHjvyI8UR8q7Q4ruDUCMyNTtQnjFbj4eodofD
+	MYAYfwBIJwO4e4JwWYYwfoWcWJKYAQdAWoCodIC4Bwe4ChMgKgx4CK3ZbLUpp0eC7BnR
+	qobQ+CBplC70YCHzoUeL8wjAeSPoGrNqtbn4sAfyMAZMXgoQBzX6t8kMkbAScbBRkKC0
+	mh18dEYKNTsalKgC7qCBIIeUVAZobAf0bIMwe8bUghBIKQH4AwLIVoQgAywABZWEXpyb
+	Fi3q3QhgfQcTyzpcGSbcQbycm8eJ8ZE6BYFoXDDbdgsJlYggaEFokSn8PJOBgjPEHccx
+	NyNJgLArxwgUUMQbEJRYeodge7MYAkfQJIOge4JIXAZIfsuEqA2QAQcoWYCwcwDICAew
+	C426voAwCcKMnsZ7oZ3SBga4gQfodiH7jbfkcryCR8ebqDFSMptIeqTQEh05CxMwsQeA
+	YIgga70qagiIBjT81D3joRRjFTZ0tI+C7JqZaLtRtKxbaK68S8LR9j+DizaAeQfAf4Y4
+	agfwY4HYNQe4HczA14JYHIAwKYWgRQAwVgAABQEAggC6HKcEwiyhRKM4hSTQe4aQ+CBb
+	eUjxWricizykKal5XwDYPoggDBowsQdAUYggb50hxzDbXAuzF825Dkiiobi7jzEkaKCr
+	jpNJRTLUKi8AegdQe4ewBgAwf4BQIgOAe4IgXoZofoXs9osgAIcQWACwcgDoCYewDRMi
+	voA468sy3hkofk2CiIawi4jdFrEE6pZzibo7Ubo1LUn8H4t4L6cwPYsYcAQoggc4TBsS
+	HZ/sHTjibypTWE2wmqorjAm9E7Ok7c71L4o7ANOgpxEwehhwYIZ4foYIIANwe6m1IAr4
+	IYGYAoJQXgSAA4Wof4BJDYAIDLrq3SHqb4fIb7y0QNTxEhWkdMHptsPMmtLQjC4M+8II
+	AAE0IYsIbKmbDAWkJcShytUxg1OUsBtik870wNPL2TeL2ySBacK5WTKYeYdQfAewBtGo
+	BQHwNYewHwYYaQfw8NRwrIAIbwVoC4cAEICweoD1JcJZ+boskD2oggfDWw6qKddk3Dob
+	d6AUJzKcnJQxka3QfhEwATdgFoWIsYaStQeoaMJbACGghDyj3aVpD0vjojozFEBFZLEr
+	Kkw0nrjYy78rF5SzNZhwXgZgfgXgIoOIfCUVbokgHYFoAgIQYgSwBFH4BNc4AADLnsQj
+	2UUiiNArezLz872dnKMMBVB1i8Hlo0GDGBhQfLhwGgZgsYZQFw6Qd7DbX4AdhrWETNYp
+	hbF5NUc5NrPcGMLZk1osTUeQgYeYdIfAeoBoA4f4BYHIM4ewHIZAawf0SVlQh4bIVQC4
+	bgEwDIepWADUSABIDaR0m7yp5TrT5DfFjtXtpKbs2jo4zaIboL2FiLK1yiNSDYggG1eA
+	AZjorIfjgAZaRooQBbhxQkcNzVhsA5HUCEBrjquU09YVO8HNxycET8mxkVj7qJhwWwY4
+	fgWwJYOwfCadRwGwFIAgHYZITQBAYgAABADgj6vskLEwiYfyBoe1p6CDgDzb9Ir0vdBU
+	n9zMtBEL+IebgAF9H4yTgorQeteAaUrooQBjMjojZbEs6VslsUZ9/FVVnNPrxr2kZi7J
+	qVZwfNtltwBYGgMgewGgZobMpczAAIaoVADAbAFQDYeh8QDKvoBQul/17LNbM6CFA7tj
+	jViETDKl8F61yZ2MKrilpIeyBYEwUBeMu4rIdwXQggbJiIf5QgAIBTn9VBXV8TzlZUGM
+	nbtKgCfF/ji9VVEa3LKJRTaL9xEweojYWIYYfgWIKAPQfCvUNQF4EgAQGgZ4T4BQZQAI
+	BADRagDYLckS7CBIf4erM4/l70tWF1rks8i8Hd3GFsv1EK7lytiwnce4ggDoQk/QLIrY
+	c7RwAAcAQIl5QgBF0JzdhmF9h0/svtpMZrecBljj3UrzPRN86iSye73LAb31tOBAmdGw
+	GAMIe4GEVUVLlwAIaAUgDAagF4D4eiRYDMSABYEMHqBCTFvGOlzGF0kGQFKF8uItZdQG
+	TOZxgIfJXwCU44DJ7orQcoSAxj6QAESq+jDtoUBdo82seU5o91ndBFYNLOUbjTA5zVjM
+	wS7dfwggewwAVYX4fgVYKwPwfF6q+IFQEAAQF4agUYBQZ4AIA4DIgYDlMl3JPyTAYqLs
+	vlT9E58l/S6mIjYUnmc8tiV6cKoAjSKJP9fmZwA9Xd/lZY4+QmdEBVr8Kzx8K8LMAlpE
+	wYlFr6ygh1tIfQeoBdGoBIFoL4ewFoawcAf9Kq04AIZgUIDAZ4GYEQegF4f4DMiAAIBc
+	RSNZXweuiiCDXtBOsNP1dsr+sSWjPx9b4NMGPloJt9PSxlEE5+AauKpM1CNk5lrZk+ji
+	oV8Rttebx6x+uLyw6ge4+wUwXYfYUwLYQQfOOCigEoDgAIFQbIU4Bgah/4CwgYDwMYno
+	wAf4el6A/iLSerEFBktePW08cmTEnBbTFdYVL2s+uVswheu46c6eQIitDjSI+WGKNzAs
+	7Y52tVsYk1ErUKMhkVFgorWGU1/eu25hg9yV2gvFZwfYeoBSGwBAFLvQFIbYcgf8GyP4
+	Y4ToDAZgHAEwegGYf4DGq4Bi2Z3oegY46TL0mswMwh87Bmc+KW2VVmZNMGJUmmjW4ExG
+	2xqqA92dyAjBfNNqNoistetEn2QY82tNo+I+tjUdEu0zzuOM6rOkxAhYfgjAe4wAUIW4
+	fYUIMAQwfIMCFQEWNoFAbgVIBgax/4CggYDoM6oAewZaByKbyTBG1GPUJy29L21+Tmsl
+	1dw9pAfxEwfCBohYhYA1dQBSRoBZ74ATX7Nme4ald0stVQA5ju3V/+PPDk6uUvCi2+nc
+	TdsFPzKWTOGNoPNoo4eYdm6oBIpoA4EzbgEwb4c4f9URwQYITIDAYwHwFQei4gDD8BDK
+	kYe5iyBEQNy9P+eJDu4+PmZiAO1sKtYabfSuj98Bascuu+Q51wBYGAggEYRTDerQsAfd
+	qgAAb70Qdr1D84A5GucOALUliWvXClinBjeMc7ANssUWULsUvpOFOU2T9RhWwoAATYWQ
+	fYTYMwRYfLC5eAD2zIEgcAVoBkjYAoCYiAD4NbyxGaiLrVD8w8vzUyld8ikxt1FybNFH
+	IJhXUYf4yIDb1bnZGAgTYI2IdoW5i5KI6rhAhgBLN91XIpXWnCw1VedvAFjOKJ9WE+ur
+	FaykxG4IAAegdgfgew8oAoEi0IEgcQdQf8sZdoXYSgDAYIIgF4ekFoC7noBVJRE48Ih2
+	mt8ethH2FmPXS4zG4Qu+4EBMaPJ73R479Q6gEpsJK8/hKge79oAAaSUR4RpfgqK1YmnJ
+	WVQNBLj2mNFzBHYetdsztuU9o4fXJgmwSwVwfYSwNYR4fPcRUADXb4EAcYWABobyaoB/
+	G2znjAXw+CVHndBk6G/pNvI9xG2VoHnN82kAoWu9GQggCa/yTb/hd1C5i7/IhgAqHY8r
+	K+UGJ0sHhXOA9G5nMWusmtemmcTIy4egdfjYAomIAYEQqQEQcwqydxKYWwR4C4XYJIGg
+	eoIkXtToAJT5EpTsKV1ejHTnCXwe+8oGdKx6SayL+SH/iCNIfRXwAMPAFwXL8MiRnoaq
+	jYAAeIYRpYBV0MecHviqCcHK3GsmttfKulY/YypHSXYvBDrw9M2htHso0B5IgABSKrfS
+	ROCSfRwAELhkNh0PiERhoXCIBDjmWIOcICAoNAQACo2hb7c8PAMMf7/iQAlMLk8Llsrl
+	UymENmcRmM3l8smYBl8xm0MAM3oMOoFEoUwmb4e0LDJphYdOcrqlVq1XhbwYsLaxXlEL
+	BIIhYCnc7mc6m9npAAoc0hj+l1mr8spNvmsutcxnd0nkmtUunFzvU7uGAllwejsfj2Ac
+	nAIhKr2ELpd7/dNYzEOV6LCy1KA4exKAARG8sAdNn0Nn9ph9ou8quGOiFnmsqvdGmW0u
+	dsoz/2Op1tK3eEusRfz9hb3e8LEqVhYTJGZ6XTiL7eELZYsuYHA0LAgE1uFiXil9m8XF
+	oHB39U3102243mz4XBtlIwes1+1tk/lD5fh/AEfQAAERhTn0Rg6ksfQ6uoqoKAeAAMnS
+	WYIHIAQCAQj4IhCwz4Pooq7w83a+LlEcTN7D6cMK4D0vlFLhoW47kuWAAYF+hYEA9Bsd
+	x4ZocIWfJxoWAwCu88D4r5D61tUwqdRHJcVpQnqfvOuazLWtq+yQo8Otc16exA2bkHqd
+	p/OWuB/BAKp6hAdh4gAdkeIcVRDAqV4qh6e4oAABoQRwBz5xc3jdS3JclylLqiqJMEQr
+	5Q0wpMlEVyour2odFiZn8wp8uQAAbGsuM5VEzJrC8rJeoWAsjgM7stJtRkYog4irS5JE
+	SUQ/K8Rc8z2K+nS9vwvVcNuux/HzTUAwGQ5Rn0Q49E0fQ9TkCIGpAdZaggc4B22AYAAm
+	Ezi1wiT7TBR8UKuvNDsFYdiUdSEX1zQr5nupoABkZMhgpUd9qsaAhoWexsVTVoC26w1h
+	N3dVY0ut9YQ8/D40tYFBRBcj1w63CUvfLElp3TqWntMp7n65B+A+Kh6g+d55gAd7qFIQ
+	ILFULYhHsKoAAYDSwAqwSVSc2csXFRVZUJV+DpavcrxjKdG4q9Dw17S7VuSeqFhMTyFg
+	iH9+a4hx+nwhZlBOmB+IWA4DoXbcur+u+lP2u1aY5E9eSSAFJp437y0zuWmvpLMW761e
+	L6+44Bn2AABkET59EEP5PH0P7MAeBYAAkdhbAgdQCW6AZ/gmFK2AEj9XaKwMk7dRdE19
+	pFMYx0q5vJoEYKNKstqFoufr4fR8qcN6Fg2NWu+EAB5mghZpiZXQAASBUTqBEss6M+qs
+	bZW75JTvL54nJUQ+jhXvOE+9I7gmy4Hudp/nwfMBHxNU2Hjqs3qoTo+AmUYxCOfIuAAB
+	YMoWAsCyjXqnsYU3VQLpkwrmgSa13K73pEOdqh5qZd1NFjA+QsFosSxpFeGqIbweyFjo
+	FCkZIcHCcMQXMix2rbjVLDYUpY+DdDgKObulp6Lpm/wKPQlEr4/B7j/H6ARsoAw+ibHy
+	H0Qgoh9iEIiA0BIAAIDsFuA4dQBgCABSK58lgAVurtMOuhdT2DeIldOz1UK8YDH0YhGV
+	L5dYctRjY9InY+EaAYDQQsDxU4OnUHgMQrgWCHgIie9NqRMHYohYgeWCLCYapJkaW9Tp
+	wG/u3RcwgvpsD9m3Z8oN1ZcWmKuh47QAA+B3D/HyPZsCbGUJ+IgH0MACBCCCDGASED/X
+	/wBaO6s96HyhwFXS2s3MEo0upbrA2Q0Z3AQQUrDWZLPx/tlAA+shYKhWELAaDCPZVR+M
+	sAANFf80RzJDbQ4h0cLIyF5ke+Q4o/mHENlCYOY7TZNwzfK+OGz33qw6dOAFKrGm3gAM
+	XM8AhyACBqEaPh4JDwBjeFYA8b4IQLj9A6AACgKyXJHhafOZLsi3TEhPPZwEloHonb6o
+	eRb2lxLtkOpZSw/lqgABEIlrIQJskMHuN8hY3HfPEGcqmDgA4OPbYfMt10657HkjWlZc
+	UKVJRnUcrAvShHtpZnZUUlcoZhoxHkpoYQ0R+jCIgA4fIvwGjsAMAgA6RQJAoJ5LuSsB
+	VETzds3WQ6UjYq2edVBRTHWoPjYkiWZrT1zxsmekBsBIJAAAA+Hw7zlEGkxHQJ8hY4RD
+	oxRoAVVoBITVNkIZhiSIFZ0frxPF6JJ65T6bbUs9ytob0odW9lvsyl5MRIYNoao/RxAW
+	IrS9AZDAMj+GEAwcYAQDALJOBFcDC1Dl/mM0KBjFJKwOudGqBClGMRme68qqtrHyQTsI
+	p0fjhy2KAT4DMhYCqLP8vSAOQY9RqkLvcQsejxpRjeJc6MAsHABMGnhF+0ZD3apev63Z
+	dEjT8UqPFO27ryrA2pV22yYhZSlV3koREZozB+DeBgCQAUF1UkMA+PEXQDRpgOAWhhb1
+	6Y0sRwTGCYOAFKzuXDa5VzpqPLEhhYCT9T1BXek/DCjOQCYKdgqABkmQ25nlYMAN0boo
+	BEmutCzGc8YY3WozjVLtWLUV/bg61hdc3rOnWCw6qWMl5K/IWOQbw/R3F0sOABVoAAQj
+	FEwAwXIOqLQXAk6BxGccbVwgPW8t1sWh4MxtaC7Fo1anjsE7kolK5E4LnvUSf6SZnaRk
+	RMDSuAczX/qwsO1V/56q2tRpbB6gW9aJwroxvxL8itVAALEYY/BcEMowB4KQPgBh8FaI
+	UBIYQAAIAmSwBoHNRaLP0bKS5dNlYNv7jnQKl2fSPerF5QMzq6pN1Xd5WaXoETDx/BHH
+	5PVCUiyuTeutUG2JZy9ivb+DJmQontautx+t6xpbcW2MRPrvHFn5Da1o5Bwj9HuBwCQA
+	gEhTD2PcMRxQLlkAAEQbgqQFiYBABkAICgAgOBAScA6EI1aAyxYPQq8D4Uez/YJiNSVX
+	Rkr2rJhNz5/q1cBCrlTQcAbxqdugla7dFt8ulzrTOm3upQ5uoKvXMcHQ2OMX6UY9TfAH
+	H6P8AI1hwD+HGC4L49wZEQAYQwGQLAQgCDKM0ToCgtX534AwDZQwDgS5nswqtG9A77RZ
+	y+5rzoHaO1RzLHi8MvbP6FYTdONJLc25JMjA+iMv6hnpOrTVQ9REoU6uO65u6V6ftXPS
+	AZdK72mKFv8ho9x6KaAGPwlWRx+g2DKPcMA1Bvj+FeRBgwAANkMCGEIGQAwvivEMAgHm
+	JouD/AGAfqgBgHEnAHnHa3I0RXZ2j5bd27249HdVdLbHio4cux70qz3fOl95+m9xHdJ+
+	TfU/HqYiWUldmtH7OweQ8iUgP40AId38h8hUD4PgR4vxnh+hLCGByiqHmjmCGAgAQAMA
+	Agjg/AwADAbAtgjACAJEiPHqawLwMQMwNQNwOQOwPF9h9B9jfBShdB+BwhBBQB9BQBwB
+	0B/hYCGBtqbCsLyKYCGLzCFgXlqM5AUgPgBALAQgMgBAGFVPJnhO6QPwkQkwlQlwmQNB
+	+GShvhzh/B2urB/Brh4B6AABliGKeiFr7CFpuEGwCgAALsQLfCGQaITHRwmw2Q2w3Q3w
+	4Q2DxLxAAB5CGJwrJiGB1CGF6muPapBgAQxpxrevLw4xDRDxERExFO5nyHeGAQZCFvKx
+	FxJxKRKxLRLxMRMxNRNxOROxPRPxQRQxRRRxSRSxTRTxURUxVRVxWRWxXRXxYRYxZRZx
+	aRaxbRbxcRcxdRdxeRexfRfxgRgxhRhxiRixjRjxkRkxlRlxmRmxnRnxoRoxpRpxqRqx
+	rRrxsRsxtRtxuRuxvRvxwRwxxRxxyRyxzRzx0R0x1R1x2R2x3R3x4R4x5R5x6R6x7R7x
+	8R8x9R9x+R+x/R/yASAyBSByCSCyDSDyESEyFSFyGSGyHSHyISIyJSJx4iAgAA8BAAAD
+	AAAAAQBxAAABAQADAAAAAQCZAAABAgADAAAABAAALO4BAwADAAAAAQAFAAABBgADAAAA
+	AQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQEh
+	AAABFwAEAAAAAQAALCwBHAADAAAAAQABAAABPQADAAAAAQACAAABUgADAAAAAQABAAAB
+	UwADAAAABAAALPaHcwAHAAAD9AAALP4AAAAAAAgACAAIAAgAAQABAAEAAQAAA/RhcHBs
+	AgAAAG1udHJSR0IgWFlaIAfYAAEAHwAOACwAIGFjc3BBUFBMAAAAAAAAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAD21gABAAAAANMtYXBwbOoCxvvn7AuJW4CIyiOWp2wAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAAAAAAAADnJYWVoAAAEsAAAAFGdYWVoAAAFAAAAAFGJYWVoA
+	AAFUAAAAFHd0cHQAAAFoAAAAFGNoYWQAAAF8AAAALHJUUkMAAAGoAAAADmdUUkMAAAG4
+	AAAADmJUUkMAAAHIAAAADnZjZ3QAAAHYAAAAMG5kaW4AAAIIAAAAOGRlc2MAAAJAAAAA
+	Z2RzY20AAAKoAAABAG1tb2QAAAOoAAAAKGNwcnQAAAPQAAAAJFhZWiAAAAAAAABxDgAA
+	OesAAAOdWFlaIAAAAAAAAF8vAACzygAAFlBYWVogAAAAAAAAJpgAABJgAAC5OVhZWiAA
+	AAAAAADzzwABAAAAARhic2YzMgAAAAAAAQwaAAAFwP//8v8AAAdgAAD9zv//+5j///2W
+	AAAD9AAAv05jdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAA
+	AQHNAAB2Y2d0AAAAAAAAAAEAANF0AAAAAAABAAAAANF0AAAAAAABAAAAANF0AAAAAAAB
+	AABuZGluAAAAAAAAADAAAKPAAABUgAAATMAAAJuAAAAm9wAAEXsAAFAAAABUAAACMzMA
+	AjMzAAIzM2Rlc2MAAAAAAAAADURFTEwgMjQwNUZQVwAAAAAAAAAAAAAAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+	AAAAAAAAAAAAbWx1YwAAAAAAAAASAAAADG5iTk8AAAAYAAAA6HB0UFQAAAAYAAAA6HN2
+	U0UAAAAYAAAA6GZpRkkAAAAYAAAA6GRhREsAAAAYAAAA6HpoQ04AAAAYAAAA6GZyRlIA
+	AAAYAAAA6GphSlAAAAAYAAAA6GVuVVMAAAAYAAAA6HBsUEwAAAAYAAAA6HB0QlIAAAAY
+	AAAA6GVzRVMAAAAYAAAA6HpoVFcAAAAYAAAA6HJ1UlUAAAAYAAAA6GtvS1IAAAAYAAAA
+	6GRlREUAAAAYAAAA6G5sTkwAAAAYAAAA6Gl0SVQAAAAYAAAA6ABEAEUATABMACAAMgA0
+	ADAANQBGAFAAV21tb2QAAAAAAAAQrAAAoBAwNzNTv9zMAAAAAAAAAAAAAAAAAAAAAAB0
+	ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOAA=
+	</data>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>NO</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>NO</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{2002, 20}, {1215, 1180}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>157</integer>
+		<key>VisibleRegion</key>
+		<string>{{-4.5, 0.5}, {522, 535.5}}</string>
+		<key>Zoom</key>
+		<real>2</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>2</real>
+				<real>4</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
diff --git a/src/client/mac/sender/crash_report_sender-Info.plist b/src/client/mac/sender/crash_report_sender-Info.plist
new file mode 100644
index 0000000..976687e
--- /dev/null
+++ b/src/client/mac/sender/crash_report_sender-Info.plist
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleDisplayName</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string>crash_report_sender</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.Breakpad.${PRODUCT_NAME:identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>LSHasLocalizedDisplayName</key>
+	<true/>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>
diff --git a/src/client/mac/sender/crash_report_sender.h b/src/client/mac/sender/crash_report_sender.h
new file mode 100644
index 0000000..6a29d48
--- /dev/null
+++ b/src/client/mac/sender/crash_report_sender.h
@@ -0,0 +1,117 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// This component uses the HTTPMultipartUpload of the breakpad project to send
+// the minidump and associated data to the crash reporting servers.
+// It will perform throttling based on the parameters passed to it and will
+// prompt the user to send the minidump.
+
+#import <Cocoa/Cocoa.h>
+
+#include "client/mac/sender/uploader.h"
+#import "GTMDefines.h"
+
+// We're sublcassing NSTextField in order to override a particular
+// method (see the implementation) that lets us reject changes if they
+// are longer than a particular length.  Bindings would normally solve
+// this problem, but when we implemented a validation method, and
+// returned NO for strings that were too long, the UI was not updated
+// right away, which was a poor user experience.  The UI would be
+// updated as soon as the text field lost first responder status,
+// which isn't soon enough.  It is a known bug that the UI KVO didn't
+// work in the middle of a validation.
+@interface LengthLimitingTextField : NSTextField {
+  @private
+   NSUInteger maximumLength_;
+}
+
+- (void)setMaximumLength:(NSUInteger)maxLength;
+@end
+
+@interface Reporter : NSObject {
+ @public
+  IBOutlet NSWindow *alertWindow_;        // The alert window
+
+  // Grouping boxes used for resizing.
+  IBOutlet NSBox *headerBox_;
+  IBOutlet NSBox *preEmailBox_;
+  IBOutlet NSBox *emailSectionBox_;
+  // Localized elements (or things that need to be moved during localization).
+  IBOutlet NSTextField                *dialogTitle_;
+  IBOutlet NSTextField                *commentMessage_;
+  IBOutlet NSTextField                *emailMessage_;
+  IBOutlet NSTextField                *emailLabel_;
+  IBOutlet NSTextField                *privacyLinkLabel_;
+  IBOutlet NSButton                   *sendButton_;
+  IBOutlet NSButton                   *cancelButton_;
+  IBOutlet LengthLimitingTextField    *emailEntryField_;
+  IBOutlet LengthLimitingTextField    *commentsEntryField_;
+  IBOutlet NSTextField                *countdownLabel_;
+  IBOutlet NSView                     *privacyLinkArrow_;
+
+  // Text field bindings, for user input.
+  NSString *commentsValue_;                // Comments from the user
+  NSString *emailValue_;                   // Email from the user
+  NSString *countdownMessage_;             // Message indicating time
+                                           // left for input.
+ @private
+  NSTimeInterval remainingDialogTime_;     // Keeps track of how long
+                                           // we have until we cancel
+                                           // the dialog
+  NSTimer *messageTimer_;                  // Timer we use to update
+                                           // the dialog
+  Uploader* uploader_;                     // Uploader we use to send the data.
+}
+
+// Stops the modal panel with an NSAlertDefaultReturn value. This is the action
+// invoked by the "Send Report" button.
+- (IBAction)sendReport:(id)sender;
+// Stops the modal panel with an NSAlertAlternateReturn value. This is the
+// action invoked by the "Cancel" button.
+- (IBAction)cancel:(id)sender;
+// Opens the Privacy Policy url in the default web browser.
+- (IBAction)showPrivacyPolicy:(id)sender;
+
+// Delegate methods for the NSTextField for comments. We want to capture the
+// Return key and use it to send the message when no text has been entered.
+// Otherwise, we want Return to add a carriage return to the comments field.
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
+                          doCommandBySelector:(SEL)commandSelector;
+
+// Accessors to make bindings work
+- (NSString *)commentsValue;
+- (void)setCommentsValue:(NSString *)value;
+
+- (NSString *)emailValue;
+- (void)setEmailValue:(NSString *)value;
+
+- (NSString *)countdownMessage;
+- (void)setCountdownMessage:(NSString *)value;
+
+@end
diff --git a/src/client/mac/sender/crash_report_sender.icns b/src/client/mac/sender/crash_report_sender.icns
new file mode 100644
index 0000000..e8c2124
--- /dev/null
+++ b/src/client/mac/sender/crash_report_sender.icns
Binary files differ
diff --git a/src/client/mac/sender/crash_report_sender.m b/src/client/mac/sender/crash_report_sender.m
new file mode 100644
index 0000000..88d26fb
--- /dev/null
+++ b/src/client/mac/sender/crash_report_sender.m
@@ -0,0 +1,755 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "client/mac/sender/crash_report_sender.h"
+
+#import <Cocoa/Cocoa.h>
+#import <pwd.h>
+#import <sys/stat.h>
+#import <SystemConfiguration/SystemConfiguration.h>
+#import <unistd.h>
+
+#import "client/apple/Framework/BreakpadDefines.h"
+#import "common/mac/GTMLogger.h"
+#import "common/mac/HTTPMultipartUpload.h"
+
+
+#define kLastSubmission @"LastSubmission"
+const int kUserCommentsMaxLength = 1500;
+const int kEmailMaxLength = 64;
+
+#define kApplePrefsSyncExcludeAllKey \
+  @"com.apple.PreferenceSync.ExcludeAllSyncKeys"
+
+#pragma mark -
+
+@interface NSView (ResizabilityExtentions)
+// Shifts the view vertically by the given amount.
+- (void)breakpad_shiftVertically:(CGFloat)offset;
+
+// Shifts the view horizontally by the given amount.
+- (void)breakpad_shiftHorizontally:(CGFloat)offset;
+@end
+
+@implementation NSView (ResizabilityExtentions)
+- (void)breakpad_shiftVertically:(CGFloat)offset {
+  NSPoint origin = [self frame].origin;
+  origin.y += offset;
+  [self setFrameOrigin:origin];
+}
+
+- (void)breakpad_shiftHorizontally:(CGFloat)offset {
+  NSPoint origin = [self frame].origin;
+  origin.x += offset;
+  [self setFrameOrigin:origin];
+}
+@end
+
+@interface NSWindow (ResizabilityExtentions)
+// Adjusts the window height by heightDelta relative to its current height,
+// keeping all the content at the same size.
+- (void)breakpad_adjustHeight:(CGFloat)heightDelta;
+@end
+
+@implementation NSWindow (ResizabilityExtentions)
+- (void)breakpad_adjustHeight:(CGFloat)heightDelta {
+  [[self contentView] setAutoresizesSubviews:NO];
+
+  NSRect windowFrame = [self frame];
+  windowFrame.size.height += heightDelta;
+  [self setFrame:windowFrame display:YES];
+  // For some reason the content view is resizing, but not adjusting its origin,
+  // so correct it manually.
+  [[self contentView] setFrameOrigin:NSMakePoint(0, 0)];
+
+  [[self contentView] setAutoresizesSubviews:YES];
+}
+@end
+
+@interface NSTextField (ResizabilityExtentions)
+// Grows or shrinks the height of the field to the minimum required to show the
+// current text, preserving the existing width and origin.
+// Returns the change in height.
+- (CGFloat)breakpad_adjustHeightToFit;
+
+// Grows or shrinks the width of the field to the minimum required to show the
+// current text, preserving the existing height and origin.
+// Returns the change in width.
+- (CGFloat)breakpad_adjustWidthToFit;
+@end
+
+@implementation NSTextField (ResizabilityExtentions)
+- (CGFloat)breakpad_adjustHeightToFit {
+  NSRect oldFrame = [self frame];
+  // Starting with the 10.5 SDK, height won't grow, so make it huge to start.
+  NSRect presizeFrame = oldFrame;
+  presizeFrame.size.height = MAXFLOAT;
+  // sizeToFit will blow out the width rather than making the field taller, so
+  // we do it manually.
+  NSSize newSize = [[self cell] cellSizeForBounds:presizeFrame];
+  NSRect newFrame = NSMakeRect(oldFrame.origin.x, oldFrame.origin.y,
+                               NSWidth(oldFrame), newSize.height);
+  [self setFrame:newFrame];
+
+  return newSize.height - NSHeight(oldFrame);
+}
+
+- (CGFloat)breakpad_adjustWidthToFit {
+  NSRect oldFrame = [self frame];
+  [self sizeToFit];
+  return NSWidth([self frame]) - NSWidth(oldFrame);
+}
+@end
+
+@interface NSButton (ResizabilityExtentions)
+// Resizes to fit the label using IB-style size-to-fit metrics and enforcing a
+// minimum width of 70, while preserving the right edge location.
+// Returns the change in width.
+- (CGFloat)breakpad_smartSizeToFit;
+@end
+
+@implementation NSButton (ResizabilityExtentions)
+- (CGFloat)breakpad_smartSizeToFit {
+  NSRect oldFrame = [self frame];
+  [self sizeToFit];
+  NSRect newFrame = [self frame];
+  // sizeToFit gives much worse results that IB's Size to Fit option. This is
+  // the amount of padding IB adds over a sizeToFit, empirically determined.
+  const float kExtraPaddingAmount = 12;
+  const float kMinButtonWidth = 70; // The default button size in IB.
+  newFrame.size.width = NSWidth(newFrame) + kExtraPaddingAmount;
+  if (NSWidth(newFrame) < kMinButtonWidth)
+    newFrame.size.width = kMinButtonWidth;
+  // Preserve the right edge location.
+  newFrame.origin.x = NSMaxX(oldFrame) - NSWidth(newFrame);
+  [self setFrame:newFrame];
+  return NSWidth(newFrame) - NSWidth(oldFrame);
+}
+@end
+
+#pragma mark -
+
+@interface Reporter(PrivateMethods)
+- (id)initWithConfigFile:(const char *)configFile;
+
+// Returns YES if it has been long enough since the last report that we should
+// submit a report for this crash.
+- (BOOL)reportIntervalElapsed;
+
+// Returns YES if we should send the report without asking the user first.
+- (BOOL)shouldSubmitSilently;
+
+// Returns YES if the minidump was generated on demand.
+- (BOOL)isOnDemand;
+
+// Returns YES if we should ask the user to provide comments.
+- (BOOL)shouldRequestComments;
+
+// Returns YES if we should ask the user to provide an email address.
+- (BOOL)shouldRequestEmail;
+
+// Shows UI to the user to ask for permission to send and any extra information
+// we've been instructed to request. Returns YES if the user allows the report
+// to be sent.
+- (BOOL)askUserPermissionToSend;
+
+// Returns the short description of the crash, suitable for use as a dialog
+// title (e.g., "The application Foo has quit unexpectedly").
+- (NSString*)shortDialogMessage;
+
+// Return explanatory text about the crash and the reporter, suitable for the
+// body text of a dialog.
+- (NSString*)explanatoryDialogText;
+
+// Returns the amount of time the UI should be shown before timing out.
+- (NSTimeInterval)messageTimeout;
+
+// Preps the comment-prompting alert window for display:
+// * localizes all the elements
+// * resizes and adjusts layout as necessary for localization
+// * removes the email section if includeEmail is NO
+- (void)configureAlertWindowIncludingEmail:(BOOL)includeEmail;
+
+// Rmevoes the email section of the dialog, adjusting the rest of the window
+// as necessary.
+- (void)removeEmailPrompt;
+
+// Run an alert window with the given timeout. Returns
+// NSRunStoppedResponse if the timeout is exceeded. A timeout of 0
+// queues the message immediately in the modal run loop.
+- (NSInteger)runModalWindow:(NSWindow*)window 
+                withTimeout:(NSTimeInterval)timeout;
+
+// This method is used to periodically update the UI with how many
+// seconds are left in the dialog display.
+- (void)updateSecondsLeftInDialogDisplay:(NSTimer*)theTimer;
+
+// When we receive this notification, it means that the user has
+// begun editing the email address or comments field, and we disable
+// the timers so that the user has as long as they want to type
+// in their comments/email.
+- (void)controlTextDidBeginEditing:(NSNotification *)aNotification;
+
+- (void)report;
+
+@end
+
+@implementation Reporter
+//=============================================================================
+- (id)initWithConfigFile:(const char *)configFile {
+  if ((self = [super init])) {
+    remainingDialogTime_ = 0;
+    uploader_ = [[Uploader alloc] initWithConfigFile:configFile];
+    if (!uploader_) {
+      [self release];
+      return nil;
+    }
+  }
+  return self;
+}
+
+//=============================================================================
+- (BOOL)askUserPermissionToSend {
+  // Initialize Cocoa, needed to display the alert
+  NSApplicationLoad();
+
+  // Get the timeout value for the notification.
+  NSTimeInterval timeout = [self messageTimeout];
+
+  NSInteger buttonPressed = NSAlertAlternateReturn;
+  // Determine whether we should create a text box for user feedback.
+  if ([self shouldRequestComments]) {
+    BOOL didLoadNib = [NSBundle loadNibNamed:@"Breakpad" owner:self];
+    if (!didLoadNib) {
+      return NO;
+    }
+
+    [self configureAlertWindowIncludingEmail:[self shouldRequestEmail]];
+
+    buttonPressed = [self runModalWindow:alertWindow_ withTimeout:timeout];
+
+    // Extract info from the user into the uploader_.
+    if ([self commentsValue]) {
+      [[uploader_ parameters] setObject:[self commentsValue]
+                                 forKey:@BREAKPAD_COMMENTS];
+    }
+    if ([self emailValue]) {
+      [[uploader_ parameters] setObject:[self emailValue]
+                                 forKey:@BREAKPAD_EMAIL];
+    }
+  } else {
+    // Create an alert panel to tell the user something happened
+    NSPanel* alert =
+        NSGetAlertPanel([self shortDialogMessage],
+                        @"%@",
+                        NSLocalizedString(@"sendReportButton", @""),
+                        NSLocalizedString(@"cancelButton", @""),
+                        nil,
+                        [self explanatoryDialogText]);
+
+    // Pop the alert with an automatic timeout, and wait for the response
+    buttonPressed = [self runModalWindow:alert withTimeout:timeout];
+
+    // Release the panel memory
+    NSReleaseAlertPanel(alert);
+  }
+  return buttonPressed == NSAlertDefaultReturn;
+}
+
+- (void)configureAlertWindowIncludingEmail:(BOOL)includeEmail {
+  // Swap in localized values, making size adjustments to impacted elements as
+  // we go. Remember that the origin is in the bottom left, so elements above
+  // "fall" as text areas are shrunk from their overly-large IB sizes.
+
+  // Localize the header. No resizing needed, as it has plenty of room.
+  [dialogTitle_ setStringValue:[self shortDialogMessage]];
+
+  // Localize the explanatory text field.
+  [commentMessage_ setStringValue:[NSString stringWithFormat:@"%@\n\n%@",
+                                   [self explanatoryDialogText],
+                                   NSLocalizedString(@"commentsMsg", @"")]];
+  CGFloat commentHeightDelta = [commentMessage_ breakpad_adjustHeightToFit];
+  [headerBox_ breakpad_shiftVertically:commentHeightDelta];
+  [alertWindow_ breakpad_adjustHeight:commentHeightDelta];
+
+  // Either localize the email explanation field or remove the whole email
+  // section depending on whether or not we are asking for email.
+  if (includeEmail) {
+    [emailMessage_ setStringValue:NSLocalizedString(@"emailMsg", @"")];
+    CGFloat emailHeightDelta = [emailMessage_ breakpad_adjustHeightToFit];
+    [preEmailBox_ breakpad_shiftVertically:emailHeightDelta];
+    [alertWindow_ breakpad_adjustHeight:emailHeightDelta];
+  } else {
+    [self removeEmailPrompt];  // Handles necessary resizing.
+  }
+
+  // Localize the email label, and shift the associated text field.
+  [emailLabel_ setStringValue:NSLocalizedString(@"emailLabel", @"")];
+  CGFloat emailLabelWidthDelta = [emailLabel_ breakpad_adjustWidthToFit];
+  [emailEntryField_ breakpad_shiftHorizontally:emailLabelWidthDelta];
+
+  // Localize the privacy policy label, and keep it right-aligned to the arrow.
+  [privacyLinkLabel_ setStringValue:NSLocalizedString(@"privacyLabel", @"")];
+  CGFloat privacyLabelWidthDelta =
+      [privacyLinkLabel_ breakpad_adjustWidthToFit];
+  [privacyLinkLabel_ breakpad_shiftHorizontally:(-privacyLabelWidthDelta)];
+
+  // Ensure that the email field and the privacy policy link don't overlap.
+  CGFloat kMinControlPadding = 8;
+  CGFloat maxEmailFieldWidth = NSMinX([privacyLinkLabel_ frame]) -
+                               NSMinX([emailEntryField_ frame]) -
+                               kMinControlPadding;
+  if (NSWidth([emailEntryField_ bounds]) > maxEmailFieldWidth &&
+      maxEmailFieldWidth > 0) {
+    NSSize emailSize = [emailEntryField_ frame].size;
+    emailSize.width = maxEmailFieldWidth;
+    [emailEntryField_ setFrameSize:emailSize];
+  }
+
+  // Localize the placeholder text.
+  [[commentsEntryField_ cell]
+      setPlaceholderString:NSLocalizedString(@"commentsPlaceholder", @"")];
+  [[emailEntryField_ cell]
+      setPlaceholderString:NSLocalizedString(@"emailPlaceholder", @"")];
+
+  // Localize the buttons, and keep the cancel button at the right distance.
+  [sendButton_ setTitle:NSLocalizedString(@"sendReportButton", @"")];
+  CGFloat sendButtonWidthDelta = [sendButton_ breakpad_smartSizeToFit];
+  [cancelButton_ breakpad_shiftHorizontally:(-sendButtonWidthDelta)];
+  [cancelButton_ setTitle:NSLocalizedString(@"cancelButton", @"")];
+  [cancelButton_ breakpad_smartSizeToFit];
+}
+
+- (void)removeEmailPrompt {
+  [emailSectionBox_ setHidden:YES];
+  CGFloat emailSectionHeight = NSHeight([emailSectionBox_ frame]);
+  [preEmailBox_ breakpad_shiftVertically:(-emailSectionHeight)];
+  [alertWindow_ breakpad_adjustHeight:(-emailSectionHeight)];
+}
+
+- (NSInteger)runModalWindow:(NSWindow*)window 
+                withTimeout:(NSTimeInterval)timeout {
+  // Queue a |stopModal| message to be performed in |timeout| seconds.
+  if (timeout > 0.001) {
+    remainingDialogTime_ = timeout;
+    SEL updateSelector = @selector(updateSecondsLeftInDialogDisplay:);
+    messageTimer_ = [NSTimer scheduledTimerWithTimeInterval:1.0
+                                                     target:self
+                                                   selector:updateSelector
+                                                   userInfo:nil
+                                                    repeats:YES];
+  }
+
+  // Run the window modally and wait for either a |stopModal| message or a
+  // button click.
+  [NSApp activateIgnoringOtherApps:YES];
+  NSInteger returnMethod = [NSApp runModalForWindow:window];
+
+  return returnMethod;
+}
+
+- (IBAction)sendReport:(id)sender {
+  // Force the text fields to end editing so text for the currently focused
+  // field will be commited.
+  [alertWindow_ makeFirstResponder:alertWindow_];
+
+  [alertWindow_ orderOut:self];
+  // Use NSAlertDefaultReturn so that the return value of |runModalWithWindow|
+  // matches the AppKit function NSRunAlertPanel()
+  [NSApp stopModalWithCode:NSAlertDefaultReturn];
+}
+
+// UI Button Actions
+//=============================================================================
+- (IBAction)cancel:(id)sender {
+  [alertWindow_ orderOut:self];
+  // Use NSAlertDefaultReturn so that the return value of |runModalWithWindow|
+  // matches the AppKit function NSRunAlertPanel()
+  [NSApp stopModalWithCode:NSAlertAlternateReturn];
+}
+
+- (IBAction)showPrivacyPolicy:(id)sender {
+  // Get the localized privacy policy URL and open it in the default browser.
+  NSURL* privacyPolicyURL =
+      [NSURL URLWithString:NSLocalizedString(@"privacyPolicyURL", @"")];
+  [[NSWorkspace sharedWorkspace] openURL:privacyPolicyURL];
+}
+
+// Text Field Delegate Methods
+//=============================================================================
+- (BOOL)    control:(NSControl*)control
+           textView:(NSTextView*)textView
+doCommandBySelector:(SEL)commandSelector {
+  BOOL result = NO;
+  // If the user has entered text on the comment field, don't end
+  // editing on "return".
+  if (control == commentsEntryField_ &&
+      commandSelector == @selector(insertNewline:)
+      && [[textView string] length] > 0) {
+    [textView insertNewlineIgnoringFieldEditor:self];
+    result = YES;
+  }
+  return result;
+}
+
+- (void)controlTextDidBeginEditing:(NSNotification *)aNotification {
+  [messageTimer_ invalidate];
+  [self setCountdownMessage:@""];
+}
+
+- (void)updateSecondsLeftInDialogDisplay:(NSTimer*)theTimer {
+  remainingDialogTime_ -= 1;
+
+  NSString *countdownMessage;
+  NSString *formatString;
+
+  int displayedTimeLeft; // This can be either minutes or seconds.
+  
+  if (remainingDialogTime_ > 59) {
+    // calculate minutes remaining for UI purposes
+    displayedTimeLeft = (int)(remainingDialogTime_ / 60);
+    
+    if (displayedTimeLeft == 1) {
+      formatString = NSLocalizedString(@"countdownMsgMinuteSingular", @"");
+    } else {
+      formatString = NSLocalizedString(@"countdownMsgMinutesPlural", @"");
+    }
+  } else {
+    displayedTimeLeft = (int)remainingDialogTime_;
+    if (displayedTimeLeft == 1) {
+      formatString = NSLocalizedString(@"countdownMsgSecondSingular", @"");
+    } else {
+      formatString = NSLocalizedString(@"countdownMsgSecondsPlural", @"");
+    }
+  }
+  countdownMessage = [NSString stringWithFormat:formatString,
+                               displayedTimeLeft];
+  if (remainingDialogTime_ <= 30) {
+    [countdownLabel_ setTextColor:[NSColor redColor]];
+  }
+  [self setCountdownMessage:countdownMessage];
+  if (remainingDialogTime_ <= 0) {
+    [messageTimer_ invalidate];
+    [NSApp stopModal];
+  }
+}
+
+
+
+#pragma mark Accessors
+#pragma mark -
+//=============================================================================
+
+- (NSString *)commentsValue {
+  return [[commentsValue_ retain] autorelease];
+}
+
+- (void)setCommentsValue:(NSString *)value {
+  if (commentsValue_ != value) {
+    [commentsValue_ release];
+    commentsValue_ = [value copy];
+  }
+}
+
+- (NSString *)emailValue {
+  return [[emailValue_ retain] autorelease];
+}
+
+- (void)setEmailValue:(NSString *)value {
+  if (emailValue_ != value) {
+    [emailValue_ release];
+    emailValue_ = [value copy];
+  }
+}
+
+- (NSString *)countdownMessage {
+  return [[countdownMessage_ retain] autorelease];
+}
+
+- (void)setCountdownMessage:(NSString *)value {
+  if (countdownMessage_ != value) {
+    [countdownMessage_ release];
+    countdownMessage_ = [value copy];
+  }
+}
+
+#pragma mark -
+//=============================================================================
+- (BOOL)reportIntervalElapsed {
+  float interval = [[[uploader_ parameters]
+      objectForKey:@BREAKPAD_REPORT_INTERVAL] floatValue];
+  NSString *program = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
+  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+  NSMutableDictionary *programDict =
+    [NSMutableDictionary dictionaryWithDictionary:[ud dictionaryForKey:program]];
+  NSNumber *lastTimeNum = [programDict objectForKey:kLastSubmission];
+  NSTimeInterval lastTime = lastTimeNum ? [lastTimeNum floatValue] : 0;
+  NSTimeInterval now = CFAbsoluteTimeGetCurrent();
+  NSTimeInterval spanSeconds = (now - lastTime);
+
+  [programDict setObject:[NSNumber numberWithDouble:now] 
+                  forKey:kLastSubmission];
+  [ud setObject:programDict forKey:program];
+  [ud synchronize];
+
+  // If we've specified an interval and we're within that time, don't ask the
+  // user if we should report
+  GTMLoggerDebug(@"Reporter Interval: %f", interval);
+  if (interval > spanSeconds) {
+    GTMLoggerDebug(@"Within throttling interval, not sending report");
+    return NO;
+  }
+  return YES;
+}
+
+- (BOOL)isOnDemand {
+  return [[[uploader_ parameters] objectForKey:@BREAKPAD_ON_DEMAND]
+	   isEqualToString:@"YES"];
+}
+
+- (BOOL)shouldSubmitSilently {
+  return [[[uploader_ parameters] objectForKey:@BREAKPAD_SKIP_CONFIRM]
+            isEqualToString:@"YES"];
+}
+
+- (BOOL)shouldRequestComments {
+  return [[[uploader_ parameters] objectForKey:@BREAKPAD_REQUEST_COMMENTS]
+            isEqualToString:@"YES"];
+}
+
+- (BOOL)shouldRequestEmail {
+  return [[[uploader_ parameters] objectForKey:@BREAKPAD_REQUEST_EMAIL]
+            isEqualToString:@"YES"];
+}
+
+- (NSString*)shortDialogMessage {
+  NSString *displayName =
+      [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
+  if (![displayName length])
+    displayName = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
+
+  if ([self isOnDemand]) {
+    // Local variable to pacify clang's -Wformat-extra-args.
+    NSString* format = NSLocalizedString(@"noCrashDialogHeader", @"");
+    return [NSString stringWithFormat:format, displayName];
+  } else {
+    // Local variable to pacify clang's -Wformat-extra-args.
+    NSString* format = NSLocalizedString(@"crashDialogHeader", @"");
+    return [NSString stringWithFormat:format, displayName];
+  }
+}
+
+- (NSString*)explanatoryDialogText {
+  NSString *displayName =
+      [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
+  if (![displayName length])
+    displayName = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
+
+  NSString *vendor = [[uploader_ parameters] objectForKey:@BREAKPAD_VENDOR];
+  if (![vendor length])
+    vendor = @"unknown vendor";
+
+  if ([self isOnDemand]) {
+    // Local variable to pacify clang's -Wformat-extra-args.
+    NSString* format = NSLocalizedString(@"noCrashDialogMsg", @"");
+    return [NSString stringWithFormat:format, vendor, displayName];
+  } else {
+    // Local variable to pacify clang's -Wformat-extra-args.
+    NSString* format = NSLocalizedString(@"crashDialogMsg", @"");
+    return [NSString stringWithFormat:format, vendor];
+  }
+}
+
+- (NSTimeInterval)messageTimeout {
+  // Get the timeout value for the notification.
+  NSTimeInterval timeout = [[[uploader_ parameters]
+      objectForKey:@BREAKPAD_CONFIRM_TIMEOUT] floatValue];
+  // Require a timeout of at least a minute (except 0, which means no timeout).
+  if (timeout > 0.001 && timeout < 60.0) {
+    timeout = 60.0;
+  }
+  return timeout;
+}
+
+- (void)report {
+  [uploader_ report];
+}
+
+//=============================================================================
+- (void)dealloc {
+  [uploader_ release];
+  [super dealloc];
+}
+
+- (void)awakeFromNib {
+  [emailEntryField_ setMaximumLength:kEmailMaxLength];
+  [commentsEntryField_ setMaximumLength:kUserCommentsMaxLength];
+}
+
+@end
+
+//=============================================================================
+@implementation LengthLimitingTextField
+
+- (void)setMaximumLength:(NSUInteger)maxLength {
+  maximumLength_ = maxLength;
+}
+
+// This is the method we're overriding in NSTextField, which lets us
+// limit the user's input if it makes the string too long.
+- (BOOL)       textView:(NSTextView *)textView
+shouldChangeTextInRange:(NSRange)affectedCharRange
+      replacementString:(NSString *)replacementString {
+
+  // Sometimes the range comes in invalid, so reject if we can't
+  // figure out if the replacement text is too long.
+  if (affectedCharRange.location == NSNotFound) {
+    return NO;
+  }
+  // Figure out what the new string length would be, taking into
+  // account user selections.
+  NSUInteger newStringLength =
+    [[textView string] length] - affectedCharRange.length +
+    [replacementString length];
+  if (newStringLength > maximumLength_) {
+    return NO;
+  } else {
+    return YES;
+  }
+}
+
+// Cut, copy, and paste have to be caught specifically since there is no menu.
+- (BOOL)performKeyEquivalent:(NSEvent*)event {
+  // Only handle the key equivalent if |self| is the text field with focus.
+  NSText* fieldEditor = [self currentEditor];
+  if (fieldEditor != nil) {
+    // Check for a single "Command" modifier
+    NSUInteger modifiers = [event modifierFlags];
+    modifiers &= NSDeviceIndependentModifierFlagsMask;
+    if (modifiers == NSCommandKeyMask) {
+      // Now, check for Select All, Cut, Copy, or Paste key equivalents.
+      NSString* characters = [event characters];
+      // Select All is Command-A.
+      if ([characters isEqualToString:@"a"]) {
+        [fieldEditor selectAll:self];
+        return YES;
+      // Cut is Command-X.
+      } else if ([characters isEqualToString:@"x"]) {
+        [fieldEditor cut:self];
+        return YES;
+      // Copy is Command-C.
+      } else if ([characters isEqualToString:@"c"]) {
+        [fieldEditor copy:self];
+        return YES;
+      // Paste is Command-V.
+      } else if ([characters isEqualToString:@"v"]) {
+        [fieldEditor paste:self];
+        return YES;
+      }
+    }
+  }
+  // Let the super class handle the rest (e.g. Command-Period will cancel).
+  return [super performKeyEquivalent:event];
+}
+
+@end
+
+//=============================================================================
+int main(int argc, const char *argv[]) {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+#if DEBUG
+  // Log to stderr in debug builds.
+  [GTMLogger setSharedLogger:[GTMLogger standardLoggerWithStderr]];
+#endif
+  GTMLoggerDebug(@"Reporter Launched, argc=%d", argc);
+  // The expectation is that there will be one argument which is the path
+  // to the configuration file
+  if (argc != 2) {
+    exit(1);
+  }
+
+  Reporter *reporter = [[Reporter alloc] initWithConfigFile:argv[1]];
+  if (!reporter) {
+    GTMLoggerDebug(@"reporter initialization failed");
+    exit(1);
+  }
+
+  // only submit a report if we have not recently crashed in the past
+  BOOL shouldSubmitReport = [reporter reportIntervalElapsed];
+  BOOL okayToSend = NO;
+
+  // ask user if we should send
+  if (shouldSubmitReport) {
+    if ([reporter shouldSubmitSilently]) {
+      GTMLoggerDebug(@"Skipping confirmation and sending report");
+      okayToSend = YES;
+    } else {
+      okayToSend = [reporter askUserPermissionToSend];
+    }
+  }
+
+  // If we're running as root, switch over to nobody
+  if (getuid() == 0 || geteuid() == 0) {
+    struct passwd *pw = getpwnam("nobody");
+
+    // If we can't get a non-root uid, don't send the report
+    if (!pw) {
+      GTMLoggerDebug(@"!pw - %s", strerror(errno));
+      exit(0);
+    }
+
+    if (setgid(pw->pw_gid) == -1) {
+      GTMLoggerDebug(@"setgid(pw->pw_gid) == -1 - %s", strerror(errno));
+      exit(0);
+    }
+
+    if (setuid(pw->pw_uid) == -1) {
+      GTMLoggerDebug(@"setuid(pw->pw_uid) == -1 - %s", strerror(errno));
+      exit(0);
+    }
+  }
+  else {
+     GTMLoggerDebug(@"getuid() !=0 || geteuid() != 0");
+  }
+
+  if (okayToSend && shouldSubmitReport) {
+    GTMLoggerDebug(@"Sending Report");
+    [reporter report];
+    GTMLoggerDebug(@"Report Sent!");
+  } else {
+    GTMLoggerDebug(@"Not sending crash report okayToSend=%d, "\
+                     "shouldSubmitReport=%d", okayToSend, shouldSubmitReport);
+  }
+
+  GTMLoggerDebug(@"Exiting with no errors");
+  // Cleanup
+  [reporter release];
+  [pool release];
+  return 0;
+}
diff --git a/src/client/mac/sender/da.lproj/InfoPlist.strings b/src/client/mac/sender/da.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/da.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/da.lproj/Localizable.strings b/src/client/mac/sender/da.lproj/Localizable.strings
new file mode 100644
index 0000000..2b8bb96
--- /dev/null
+++ b/src/client/mac/sender/da.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/de.lproj/InfoPlist.strings b/src/client/mac/sender/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000..3180973
--- /dev/null
+++ b/src/client/mac/sender/de.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/de.lproj/Localizable.strings b/src/client/mac/sender/de.lproj/Localizable.strings
new file mode 100644
index 0000000..73da36f
--- /dev/null
+++ b/src/client/mac/sender/de.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/es.lproj/InfoPlist.strings b/src/client/mac/sender/es.lproj/InfoPlist.strings
new file mode 100644
index 0000000..a82c013
--- /dev/null
+++ b/src/client/mac/sender/es.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/es.lproj/Localizable.strings b/src/client/mac/sender/es.lproj/Localizable.strings
new file mode 100644
index 0000000..c31d6f4
--- /dev/null
+++ b/src/client/mac/sender/es.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/fr.lproj/InfoPlist.strings b/src/client/mac/sender/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/fr.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/fr.lproj/Localizable.strings b/src/client/mac/sender/fr.lproj/Localizable.strings
new file mode 100644
index 0000000..c32f8ff
--- /dev/null
+++ b/src/client/mac/sender/fr.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/goArrow.png b/src/client/mac/sender/goArrow.png
new file mode 100644
index 0000000..f318a56
--- /dev/null
+++ b/src/client/mac/sender/goArrow.png
Binary files differ
diff --git a/src/client/mac/sender/it.lproj/InfoPlist.strings b/src/client/mac/sender/it.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/it.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/it.lproj/Localizable.strings b/src/client/mac/sender/it.lproj/Localizable.strings
new file mode 100644
index 0000000..a4b7fd3
--- /dev/null
+++ b/src/client/mac/sender/it.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/ja.lproj/InfoPlist.strings b/src/client/mac/sender/ja.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/ja.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/ja.lproj/Localizable.strings b/src/client/mac/sender/ja.lproj/Localizable.strings
new file mode 100644
index 0000000..1f1a4fe
--- /dev/null
+++ b/src/client/mac/sender/ja.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/nl.lproj/InfoPlist.strings b/src/client/mac/sender/nl.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/nl.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/nl.lproj/Localizable.strings b/src/client/mac/sender/nl.lproj/Localizable.strings
new file mode 100644
index 0000000..a4a54f7
--- /dev/null
+++ b/src/client/mac/sender/nl.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/no.lproj/InfoPlist.strings b/src/client/mac/sender/no.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/no.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/no.lproj/Localizable.strings b/src/client/mac/sender/no.lproj/Localizable.strings
new file mode 100644
index 0000000..725ef5a
--- /dev/null
+++ b/src/client/mac/sender/no.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/sl.lproj/InfoPlist.strings b/src/client/mac/sender/sl.lproj/InfoPlist.strings
new file mode 100644
index 0000000..585f622
--- /dev/null
+++ b/src/client/mac/sender/sl.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/sl.lproj/Localizable.strings b/src/client/mac/sender/sl.lproj/Localizable.strings
new file mode 100644
index 0000000..b7dfeec
--- /dev/null
+++ b/src/client/mac/sender/sl.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/sv.lproj/InfoPlist.strings b/src/client/mac/sender/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4cfd32c
--- /dev/null
+++ b/src/client/mac/sender/sv.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/sv.lproj/Localizable.strings b/src/client/mac/sender/sv.lproj/Localizable.strings
new file mode 100644
index 0000000..f7d1251
--- /dev/null
+++ b/src/client/mac/sender/sv.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/tr.lproj/InfoPlist.strings b/src/client/mac/sender/tr.lproj/InfoPlist.strings
new file mode 100644
index 0000000..088fb4f
--- /dev/null
+++ b/src/client/mac/sender/tr.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/sender/tr.lproj/Localizable.strings b/src/client/mac/sender/tr.lproj/Localizable.strings
new file mode 100644
index 0000000..a82f990
--- /dev/null
+++ b/src/client/mac/sender/tr.lproj/Localizable.strings
Binary files differ
diff --git a/src/client/mac/sender/uploader.h b/src/client/mac/sender/uploader.h
new file mode 100644
index 0000000..0897dad
--- /dev/null
+++ b/src/client/mac/sender/uploader.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// This component uses the HTTPMultipartUpload of the breakpad project to send
+// the minidump and associated data to the crash reporting servers.
+// It will perform throttling based on the parameters passed to it and will
+// prompt the user to send the minidump.
+
+#include <Foundation/Foundation.h>
+
+#import "common/mac/GTMDefines.h"
+
+#define kClientIdPreferenceKey @"clientid"
+
+extern NSString *const kGoogleServerType;
+extern NSString *const kSocorroServerType;
+extern NSString *const kDefaultServerType;
+
+// Optional user-defined function that will be called after a network upload
+// of a crash report.
+// |report_id| will be the id returned by the server, or "ERR" if an error
+// occurred.
+// |error| will contain the error, or nil if no error occured.
+typedef void (^UploadCompletionBlock)(NSString *reportId, NSError *error);
+
+@interface Uploader : NSObject {
+ @private
+  NSMutableDictionary *parameters_;        // Key value pairs of data (STRONG)
+  NSData *minidumpContents_;               // The data in the minidump (STRONG)
+  NSData *logFileData_;                    // An NSdata for the tar,
+                                           // bz2'd log file.
+  NSMutableDictionary *serverDictionary_;  // The dictionary mapping a
+                                           // server type name to a
+                                           // dictionary of server
+                                           // parameter names.
+  NSMutableDictionary *socorroDictionary_; // The dictionary for
+                                           // Socorro.
+  NSMutableDictionary *googleDictionary_;  // The dictionary for
+                                           // Google.
+  NSMutableDictionary *extraServerVars_;   // A dictionary containing
+                                           // extra key/value pairs
+                                           // that are uploaded to the
+                                           // crash server with the
+                                           // minidump.
+  UploadCompletionBlock uploadCompletion_;  // A block called on network upload
+                                            // completion. Parameters are:
+                                            // The report ID returned by the
+                                            // server,
+                                            // the NSError triggered during
+                                            // upload.
+}
+
+- (id)initWithConfigFile:(const char *)configFile;
+
+- (id)initWithConfig:(NSDictionary *)config;
+
+// Reads the file |configFile| and returns the corresponding NSDictionary.
+// |configFile| will be deleted after reading.
++ (NSDictionary *)readConfigurationDataFromFile:(NSString *)configFile;
+
+- (NSMutableDictionary *)parameters;
+
+- (void)report;
+
+// Upload the given data to the crash server.
+- (void)uploadData:(NSData *)data name:(NSString *)name;
+
+// This method adds a key/value pair to the dictionary that
+// will be uploaded to the crash server.
+- (void)addServerParameter:(id)value forKey:(NSString *)key;
+
+// This method process the HTTP response and renames the minidump file with the
+// new ID.
+- (void)handleNetworkResponse:(NSData *)data withError:(NSError *)error;
+
+// Sets the callback to be called after uploading a crash report to the server.
+// Only the latest callback registered will be called.
+- (void)setUploadCompletionBlock:(UploadCompletionBlock)uploadCompletion;
+
+@end
diff --git a/src/client/mac/sender/uploader.mm b/src/client/mac/sender/uploader.mm
new file mode 100644
index 0000000..13b6130
--- /dev/null
+++ b/src/client/mac/sender/uploader.mm
@@ -0,0 +1,688 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <fcntl.h>
+#include <stdio.h>
+#import <sys/stat.h>
+#include <TargetConditionals.h>
+#import <unistd.h>
+
+#import <SystemConfiguration/SystemConfiguration.h>
+
+#import "common/mac/HTTPMultipartUpload.h"
+
+#import "client/apple/Framework/BreakpadDefines.h"
+#import "client/mac/sender/uploader.h"
+
+const int kMinidumpFileLengthLimit = 2 * 1024 * 1024;  // 2MB
+
+#define kApplePrefsSyncExcludeAllKey \
+  @"com.apple.PreferenceSync.ExcludeAllSyncKeys"
+
+NSString *const kGoogleServerType = @"google";
+NSString *const kSocorroServerType = @"socorro";
+NSString *const kDefaultServerType = @"google";
+
+#pragma mark -
+
+namespace {
+// Read one line from the configuration file.
+NSString *readString(int fileId) {
+  NSMutableString *str = [NSMutableString stringWithCapacity:32];
+  char ch[2] = { 0 };
+
+  while (read(fileId, &ch[0], 1) == 1) {
+    if (ch[0] == '\n') {
+      // Break if this is the first newline after reading some other string
+      // data.
+      if ([str length])
+        break;
+    } else {
+      [str appendString:[NSString stringWithUTF8String:ch]];
+    }
+  }
+
+  return str;
+}
+
+//=============================================================================
+// Read |length| of binary data from the configuration file. This method will
+// returns |nil| in case of error.
+NSData *readData(int fileId, ssize_t length) {
+  NSMutableData *data = [NSMutableData dataWithLength:length];
+  char *bytes = (char *)[data bytes];
+
+  if (read(fileId, bytes, length) != length)
+    return nil;
+
+  return data;
+}
+
+//=============================================================================
+// Read the configuration from the config file.
+NSDictionary *readConfigurationData(const char *configFile) {
+  int fileId = open(configFile, O_RDONLY, 0600);
+  if (fileId == -1) {
+    fprintf(stderr, "Breakpad Uploader: Couldn't open config file %s - %s",
+            configFile, strerror(errno));
+  }
+
+  // we want to avoid a build-up of old config files even if they
+  // have been incorrectly written by the framework
+  if (unlink(configFile)) {
+    fprintf(stderr, "Breakpad Uploader: Couldn't unlink config file %s - %s",
+            configFile, strerror(errno));
+  }
+
+  if (fileId == -1) {
+    return nil;
+  }
+
+  NSMutableDictionary *config = [NSMutableDictionary dictionary];
+
+  while (1) {
+    NSString *key = readString(fileId);
+
+    if (![key length])
+      break;
+
+    // Read the data.  Try to convert to a UTF-8 string, or just save
+    // the data
+    NSString *lenStr = readString(fileId);
+    ssize_t len = [lenStr intValue];
+    NSData *data = readData(fileId, len);
+    id value = [[NSString alloc] initWithData:data
+                                     encoding:NSUTF8StringEncoding];
+
+    [config setObject:(value ? value : data) forKey:key];
+    [value release];
+  }
+
+  close(fileId);
+  return config;
+}
+}  // namespace
+
+#pragma mark -
+
+@interface Uploader(PrivateMethods)
+
+// Update |parameters_| as well as the server parameters using |config|.
+- (void)translateConfigurationData:(NSDictionary *)config;
+
+// Read the minidump referenced in |parameters_| and update |minidumpContents_|
+// with its content.
+- (BOOL)readMinidumpData;
+
+// Read the log files referenced in |parameters_| and update |logFileData_|
+// with their content.
+- (BOOL)readLogFileData;
+
+// Returns a unique client id (user-specific), creating a persistent
+// one in the user defaults, if necessary.
+- (NSString*)clientID;
+
+// Returns a dictionary that can be used to map Breakpad parameter names to
+// URL parameter names.
+- (NSMutableDictionary *)dictionaryForServerType:(NSString *)serverType;
+
+// Helper method to set HTTP parameters based on server type.  This is
+// called right before the upload - crashParameters will contain, on exit,
+// URL parameters that should be sent with the minidump.
+- (BOOL)populateServerDictionary:(NSMutableDictionary *)crashParameters;
+
+// Initialization helper to create dictionaries mapping Breakpad
+// parameters to URL parameters
+- (void)createServerParameterDictionaries;
+
+// Accessor method for the URL parameter dictionary
+- (NSMutableDictionary *)urlParameterDictionary;
+
+// Records the uploaded crash ID to the log file.
+- (void)logUploadWithID:(const char *)uploadID;
+
+// Builds an URL parameter for a given dictionary key. Uses Uploader's
+// parameters to provide its value. Returns nil if no item is stored for the
+// given key.
+- (NSURLQueryItem *)queryItemWithName:(NSString *)queryItemName
+                          forParamKey:(NSString *)key;
+@end
+
+@implementation Uploader
+
+//=============================================================================
+- (id)initWithConfigFile:(const char *)configFile {
+  NSDictionary *config = readConfigurationData(configFile);
+  if (!config)
+    return nil;
+
+  return [self initWithConfig:config];
+}
+
+//=============================================================================
+- (id)initWithConfig:(NSDictionary *)config {
+  if ((self = [super init])) {
+    // Because the reporter is embedded in the framework (and many copies
+    // of the framework may exist) its not completely certain that the OS
+    // will obey the com.apple.PreferenceSync.ExcludeAllSyncKeys in our
+    // Info.plist. To make sure, also set the key directly if needed.
+    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+    if (![ud boolForKey:kApplePrefsSyncExcludeAllKey]) {
+      [ud setBool:YES forKey:kApplePrefsSyncExcludeAllKey];
+    }
+
+    [self createServerParameterDictionaries];
+
+    [self translateConfigurationData:config];
+
+    // Read the minidump into memory.
+    [self readMinidumpData];
+    [self readLogFileData];
+  }
+  return self;
+}
+
+//=============================================================================
++ (NSDictionary *)readConfigurationDataFromFile:(NSString *)configFile {
+  return readConfigurationData([configFile fileSystemRepresentation]);
+}
+
+//=============================================================================
+- (void)translateConfigurationData:(NSDictionary *)config {
+  parameters_ = [[NSMutableDictionary alloc] init];
+
+  NSEnumerator *it = [config keyEnumerator];
+  while (NSString *key = [it nextObject]) {
+    // If the keyname is prefixed by BREAKPAD_SERVER_PARAMETER_PREFIX
+    // that indicates that it should be uploaded to the server along
+    // with the minidump, so we treat it specially.
+    if ([key hasPrefix:@BREAKPAD_SERVER_PARAMETER_PREFIX]) {
+      NSString *urlParameterKey =
+        [key substringFromIndex:[@BREAKPAD_SERVER_PARAMETER_PREFIX length]];
+      if ([urlParameterKey length]) {
+        id value = [config objectForKey:key];
+        if ([value isKindOfClass:[NSString class]]) {
+          [self addServerParameter:(NSString *)value
+                            forKey:urlParameterKey];
+        } else {
+          [self addServerParameter:(NSData *)value
+                            forKey:urlParameterKey];
+        }
+      }
+    } else {
+      [parameters_ setObject:[config objectForKey:key] forKey:key];
+    }
+  }
+
+  // generate a unique client ID based on this host's MAC address
+  // then add a key/value pair for it
+  NSString *clientID = [self clientID];
+  [parameters_ setObject:clientID forKey:@"guid"];
+}
+
+// Per user per machine
+- (NSString *)clientID {
+  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+  NSString *crashClientID = [ud stringForKey:kClientIdPreferenceKey];
+  if (crashClientID) {
+    return crashClientID;
+  }
+
+  // Otherwise, if we have no client id, generate one!
+  srandom((int)[[NSDate date] timeIntervalSince1970]);
+  long clientId1 = random();
+  long clientId2 = random();
+  long clientId3 = random();
+  crashClientID = [NSString stringWithFormat:@"%lx%lx%lx",
+                            clientId1, clientId2, clientId3];
+
+  [ud setObject:crashClientID forKey:kClientIdPreferenceKey];
+  [ud synchronize];
+  return crashClientID;
+}
+
+//=============================================================================
+- (BOOL)readLogFileData {
+#if TARGET_OS_IPHONE
+  return NO;
+#else
+  unsigned int logFileCounter = 0;
+
+  NSString *logPath;
+  size_t logFileTailSize =
+      [[parameters_ objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE] intValue];
+
+  NSMutableArray *logFilenames; // An array of NSString, one per log file
+  logFilenames = [[NSMutableArray alloc] init];
+
+  char tmpDirTemplate[80] = "/tmp/CrashUpload-XXXXX";
+  char *tmpDir = mkdtemp(tmpDirTemplate);
+
+  // Construct key names for the keys we expect to contain log file paths
+  for(logFileCounter = 0;; logFileCounter++) {
+    NSString *logFileKey = [NSString stringWithFormat:@"%@%d",
+                                     @BREAKPAD_LOGFILE_KEY_PREFIX,
+                                     logFileCounter];
+
+    logPath = [parameters_ objectForKey:logFileKey];
+
+    // They should all be consecutive, so if we don't find one, assume
+    // we're done
+
+    if (!logPath) {
+      break;
+    }
+
+    NSData *entireLogFile = [[NSData alloc] initWithContentsOfFile:logPath];
+
+    if (entireLogFile == nil) {
+      continue;
+    }
+
+    NSRange fileRange;
+
+    // Truncate the log file, only if necessary
+
+    if ([entireLogFile length] <= logFileTailSize) {
+      fileRange = NSMakeRange(0, [entireLogFile length]);
+    } else {
+      fileRange = NSMakeRange([entireLogFile length] - logFileTailSize,
+                              logFileTailSize);
+    }
+
+    char tmpFilenameTemplate[100];
+
+    // Generate a template based on the log filename
+    sprintf(tmpFilenameTemplate,"%s/%s-XXXX", tmpDir,
+            [[logPath lastPathComponent] fileSystemRepresentation]);
+
+    char *tmpFile = mktemp(tmpFilenameTemplate);
+
+    NSData *logSubdata = [entireLogFile subdataWithRange:fileRange];
+    NSString *tmpFileString = [NSString stringWithUTF8String:tmpFile];
+    [logSubdata writeToFile:tmpFileString atomically:NO];
+
+    [logFilenames addObject:[tmpFileString lastPathComponent]];
+    [entireLogFile release];
+  }
+
+  if ([logFilenames count] == 0) {
+    [logFilenames release];
+    logFileData_ =  nil;
+    return NO;
+  }
+
+  // now, bzip all files into one
+  NSTask *tarTask = [[NSTask alloc] init];
+
+  [tarTask setCurrentDirectoryPath:[NSString stringWithUTF8String:tmpDir]];
+  [tarTask setLaunchPath:@"/usr/bin/tar"];
+
+  NSMutableArray *bzipArgs = [NSMutableArray arrayWithObjects:@"-cjvf",
+                                             @"log.tar.bz2",nil];
+  [bzipArgs addObjectsFromArray:logFilenames];
+
+  [logFilenames release];
+
+  [tarTask setArguments:bzipArgs];
+  [tarTask launch];
+  [tarTask waitUntilExit];
+  [tarTask release];
+
+  NSString *logTarFile = [NSString stringWithFormat:@"%s/log.tar.bz2",tmpDir];
+  logFileData_ = [[NSData alloc] initWithContentsOfFile:logTarFile];
+  if (logFileData_ == nil) {
+    fprintf(stderr, "Breakpad Uploader: Cannot find temp tar log file: %s",
+            [logTarFile UTF8String]);
+    return NO;
+  }
+  return YES;
+#endif  // TARGET_OS_IPHONE
+}
+
+//=============================================================================
+- (BOOL)readMinidumpData {
+  NSString *minidumpDir =
+      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
+  NSString *minidumpID = [parameters_ objectForKey:@kReporterMinidumpIDKey];
+
+  if (![minidumpID length])
+    return NO;
+
+  NSString *path = [minidumpDir stringByAppendingPathComponent:minidumpID];
+  path = [path stringByAppendingPathExtension:@"dmp"];
+
+  // check the size of the minidump and limit it to a reasonable size
+  // before attempting to load into memory and upload
+  const char *fileName = [path fileSystemRepresentation];
+  struct stat fileStatus;
+
+  BOOL success = YES;
+
+  if (!stat(fileName, &fileStatus)) {
+    if (fileStatus.st_size > kMinidumpFileLengthLimit) {
+      fprintf(stderr, "Breakpad Uploader: minidump file too large " \
+              "to upload : %d\n", (int)fileStatus.st_size);
+      success = NO;
+    }
+  } else {
+      fprintf(stderr, "Breakpad Uploader: unable to determine minidump " \
+              "file length\n");
+      success = NO;
+  }
+
+  if (success) {
+    minidumpContents_ = [[NSData alloc] initWithContentsOfFile:path];
+    success = ([minidumpContents_ length] ? YES : NO);
+  }
+
+  if (!success) {
+    // something wrong with the minidump file -- delete it
+    unlink(fileName);
+  }
+
+  return success;
+}
+
+#pragma mark -
+//=============================================================================
+
+- (void)createServerParameterDictionaries {
+  serverDictionary_ = [[NSMutableDictionary alloc] init];
+  socorroDictionary_ = [[NSMutableDictionary alloc] init];
+  googleDictionary_ = [[NSMutableDictionary alloc] init];
+  extraServerVars_ = [[NSMutableDictionary alloc] init];
+
+  [serverDictionary_ setObject:socorroDictionary_ forKey:kSocorroServerType];
+  [serverDictionary_ setObject:googleDictionary_ forKey:kGoogleServerType];
+
+  [googleDictionary_ setObject:@"ptime" forKey:@BREAKPAD_PROCESS_UP_TIME];
+  [googleDictionary_ setObject:@"email" forKey:@BREAKPAD_EMAIL];
+  [googleDictionary_ setObject:@"comments" forKey:@BREAKPAD_COMMENTS];
+  [googleDictionary_ setObject:@"prod" forKey:@BREAKPAD_PRODUCT];
+  [googleDictionary_ setObject:@"ver" forKey:@BREAKPAD_VERSION];
+  [googleDictionary_ setObject:@"guid" forKey:@"guid"];
+
+  [socorroDictionary_ setObject:@"Comments" forKey:@BREAKPAD_COMMENTS];
+  [socorroDictionary_ setObject:@"CrashTime"
+                         forKey:@BREAKPAD_PROCESS_CRASH_TIME];
+  [socorroDictionary_ setObject:@"StartupTime"
+                         forKey:@BREAKPAD_PROCESS_START_TIME];
+  [socorroDictionary_ setObject:@"Version"
+                         forKey:@BREAKPAD_VERSION];
+  [socorroDictionary_ setObject:@"ProductName"
+                         forKey:@BREAKPAD_PRODUCT];
+  [socorroDictionary_ setObject:@"Email"
+                         forKey:@BREAKPAD_EMAIL];
+}
+
+- (NSMutableDictionary *)dictionaryForServerType:(NSString *)serverType {
+  if (serverType == nil || [serverType length] == 0) {
+    return [serverDictionary_ objectForKey:kDefaultServerType];
+  }
+  return [serverDictionary_ objectForKey:serverType];
+}
+
+- (NSMutableDictionary *)urlParameterDictionary {
+  NSString *serverType = [parameters_ objectForKey:@BREAKPAD_SERVER_TYPE];
+  return [self dictionaryForServerType:serverType];
+
+}
+
+- (BOOL)populateServerDictionary:(NSMutableDictionary *)crashParameters {
+  NSDictionary *urlParameterNames = [self urlParameterDictionary];
+
+  id key;
+  NSEnumerator *enumerator = [parameters_ keyEnumerator];
+
+  while ((key = [enumerator nextObject])) {
+    // The key from parameters_ corresponds to a key in
+    // urlParameterNames.  The value in parameters_ gets stored in
+    // crashParameters with a key that is the value in
+    // urlParameterNames.
+
+    // For instance, if parameters_ has [PRODUCT_NAME => "FOOBAR"] and
+    // urlParameterNames has [PRODUCT_NAME => "pname"] the final HTTP
+    // URL parameter becomes [pname => "FOOBAR"].
+    NSString *breakpadParameterName = (NSString *)key;
+    NSString *urlParameter = [urlParameterNames
+                                   objectForKey:breakpadParameterName];
+    if (urlParameter) {
+      [crashParameters setObject:[parameters_ objectForKey:key]
+                          forKey:urlParameter];
+    }
+  }
+
+  // Now, add the parameters that were added by the application.
+  enumerator = [extraServerVars_ keyEnumerator];
+
+  while ((key = [enumerator nextObject])) {
+    NSString *urlParameterName = (NSString *)key;
+    NSString *urlParameterValue =
+      [extraServerVars_ objectForKey:urlParameterName];
+    [crashParameters setObject:urlParameterValue
+                        forKey:urlParameterName];
+  }
+  return YES;
+}
+
+- (void)addServerParameter:(id)value forKey:(NSString *)key {
+  [extraServerVars_ setObject:value forKey:key];
+}
+
+//=============================================================================
+- (void)handleNetworkResponse:(NSData *)data withError:(NSError *)error {
+  NSString *result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  const char *reportID = "ERR";
+  if (error) {
+    fprintf(stderr, "Breakpad Uploader: Send Error: %s\n",
+            [[error description] UTF8String]);
+  } else {
+    NSCharacterSet *trimSet =
+        [NSCharacterSet whitespaceAndNewlineCharacterSet];
+    reportID = [[result stringByTrimmingCharactersInSet:trimSet] UTF8String];
+    [self logUploadWithID:reportID];
+  }
+  if (uploadCompletion_) {
+    uploadCompletion_([NSString stringWithUTF8String:reportID], error);
+  }
+
+  // rename the minidump file according to the id returned from the server
+  NSString *minidumpDir =
+      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
+  NSString *minidumpID = [parameters_ objectForKey:@kReporterMinidumpIDKey];
+
+  NSString *srcString = [NSString stringWithFormat:@"%@/%@.dmp",
+                                  minidumpDir, minidumpID];
+  NSString *destString = [NSString stringWithFormat:@"%@/%s.dmp",
+                                   minidumpDir, reportID];
+
+  const char *src = [srcString fileSystemRepresentation];
+  const char *dest = [destString fileSystemRepresentation];
+
+  if (rename(src, dest) == 0) {
+    fprintf(stderr,
+            "Breakpad Uploader: Renamed %s to %s after successful upload", src,
+            dest);
+  }
+  else {
+    // can't rename - don't worry - it's not important for users
+    fprintf(stderr, "Breakpad Uploader: successful upload report ID = %s\n",
+            reportID);
+  }
+  [result release];
+}
+
+//=============================================================================
+- (NSURLQueryItem *)queryItemWithName:(NSString *)queryItemName
+                          forParamKey:(NSString *)key {
+  NSString *value = [parameters_ objectForKey:key];
+  NSString *escapedValue =
+    [value stringByAddingPercentEncodingWithAllowedCharacters:
+      [NSCharacterSet URLQueryAllowedCharacterSet]];
+  return [NSURLQueryItem queryItemWithName:queryItemName value:escapedValue];
+}
+
+//=============================================================================
+- (void)setUploadCompletionBlock:(UploadCompletionBlock)uploadCompletion {
+  uploadCompletion_ = uploadCompletion;
+}
+
+//=============================================================================
+- (void)report {
+  NSURL *url = [NSURL URLWithString:[parameters_ objectForKey:@BREAKPAD_URL]];
+
+  NSString *serverType = [parameters_ objectForKey:@BREAKPAD_SERVER_TYPE];
+  if ([serverType length] == 0 ||
+      [serverType isEqualToString:kGoogleServerType]) {
+    // when communicating to Google's crash collecting service, add URL params
+    // which identify the product
+    NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:url
+                                                resolvingAgainstBaseURL:false];
+    NSMutableArray *queryItemsToAdd = [urlComponents.queryItems mutableCopy];
+    if (queryItemsToAdd == nil) {
+      queryItemsToAdd = [[NSMutableArray alloc] init];
+    }
+
+    NSURLQueryItem *queryItemProduct =
+      [self queryItemWithName:@"product" forParamKey:@BREAKPAD_PRODUCT];
+    NSURLQueryItem *queryItemVersion =
+      [self queryItemWithName:@"version" forParamKey:@BREAKPAD_VERSION];
+    NSURLQueryItem *queryItemGuid =
+      [self queryItemWithName:@"guid" forParamKey:@"guid"];
+
+    if (queryItemProduct != nil) [queryItemsToAdd addObject:queryItemProduct];
+    if (queryItemVersion != nil) [queryItemsToAdd addObject:queryItemVersion];
+    if (queryItemGuid != nil) [queryItemsToAdd addObject:queryItemGuid];
+
+    urlComponents.queryItems = queryItemsToAdd;
+    url = [urlComponents URL];
+  }
+
+  HTTPMultipartUpload *upload = [[HTTPMultipartUpload alloc] initWithURL:url];
+  NSMutableDictionary *uploadParameters = [NSMutableDictionary dictionary];
+
+  if (![self populateServerDictionary:uploadParameters]) {
+    [upload release];
+    return;
+  }
+
+  [upload setParameters:uploadParameters];
+
+  // Add minidump file
+  if (minidumpContents_) {
+    [upload addFileContents:minidumpContents_ name:@"upload_file_minidump"];
+
+    // If there is a log file, upload it together with the minidump.
+    if (logFileData_) {
+      [upload addFileContents:logFileData_ name:@"log"];
+    }
+
+    // Send it
+    NSError *error = nil;
+    NSData *data = [upload send:&error];
+
+    if (![url isFileURL]) {
+      [self handleNetworkResponse:data withError:error];
+    } else {
+      if (error) {
+        fprintf(stderr, "Breakpad Uploader: Error writing request file: %s\n",
+                [[error description] UTF8String]);
+      }
+    }
+
+  } else {
+    // Minidump is missing -- upload just the log file.
+    if (logFileData_) {
+      [self uploadData:logFileData_ name:@"log"];
+    }
+  }
+  [upload release];
+}
+
+- (void)uploadData:(NSData *)data name:(NSString *)name {
+  NSURL *url = [NSURL URLWithString:[parameters_ objectForKey:@BREAKPAD_URL]];
+  NSMutableDictionary *uploadParameters = [NSMutableDictionary dictionary];
+
+  if (![self populateServerDictionary:uploadParameters])
+    return;
+
+  HTTPMultipartUpload *upload =
+      [[HTTPMultipartUpload alloc] initWithURL:url];
+
+  [uploadParameters setObject:name forKey:@"type"];
+  [upload setParameters:uploadParameters];
+  [upload addFileContents:data name:name];
+
+  [upload send:nil];
+  [upload release];
+}
+
+- (void)logUploadWithID:(const char *)uploadID {
+  NSString *minidumpDir =
+      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
+  NSString *logFilePath = [NSString stringWithFormat:@"%@/%s",
+      minidumpDir, kReporterLogFilename];
+  NSString *logLine = [NSString stringWithFormat:@"%0.f,%s\n",
+      [[NSDate date] timeIntervalSince1970], uploadID];
+  NSData *logData = [logLine dataUsingEncoding:NSUTF8StringEncoding];
+
+  NSFileManager *fileManager = [NSFileManager defaultManager];
+  if ([fileManager fileExistsAtPath:logFilePath]) {
+    NSFileHandle *logFileHandle =
+       [NSFileHandle fileHandleForWritingAtPath:logFilePath];
+    [logFileHandle seekToEndOfFile];
+    [logFileHandle writeData:logData];
+    [logFileHandle closeFile];
+  } else {
+    [fileManager createFileAtPath:logFilePath
+                         contents:logData
+                       attributes:nil];
+  }
+}
+
+//=============================================================================
+- (NSMutableDictionary *)parameters {
+  return parameters_;
+}
+
+//=============================================================================
+- (void)dealloc {
+  [parameters_ release];
+  [minidumpContents_ release];
+  [logFileData_ release];
+  [googleDictionary_ release];
+  [socorroDictionary_ release];
+  [serverDictionary_ release];
+  [extraServerVars_ release];
+  [super dealloc];
+}
+
+@end
diff --git a/src/client/mac/testapp/Controller.h b/src/client/mac/testapp/Controller.h
new file mode 100644
index 0000000..7b3be2d
--- /dev/null
+++ b/src/client/mac/testapp/Controller.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Cocoa/Cocoa.h>
+
+#import <Breakpad/Breakpad.h>
+
+enum BreakpadForkBehavior {
+  DONOTHING = 0,
+  UNINSTALL,
+  RESETEXCEPTIONPORT
+};
+
+enum BreakpadForkTestCrashPoint {
+  DURINGLAUNCH = 5,
+  AFTERLAUNCH = 6,
+  BETWEENFORKEXEC = 7
+};
+
+@interface Controller : NSObject {
+  IBOutlet NSWindow *window_;
+  IBOutlet NSWindow *forkTestOptions_;
+
+  BreakpadRef breakpad_;
+
+  enum BreakpadForkBehavior bpForkOption;
+
+  BOOL useVFork;
+  enum BreakpadForkTestCrashPoint progCrashPoint;
+}
+
+- (IBAction)crash:(id)sender;
+- (IBAction)forkTestOptions:(id)sender;
+- (IBAction)forkTestGo:(id)sender;
+- (IBAction)showForkTestWindow:(id) sender;
+- (void)generateReportWithoutCrash:(id)sender;
+- (void)awakeFromNib;
+
+@end
diff --git a/src/client/mac/testapp/Controller.m b/src/client/mac/testapp/Controller.m
new file mode 100644
index 0000000..87c4302
--- /dev/null
+++ b/src/client/mac/testapp/Controller.m
@@ -0,0 +1,261 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Breakpad/Breakpad.h>
+
+#import "Controller.h"
+#import "TestClass.h"
+#import "GTMDefines.h"
+#include <unistd.h>
+#include <mach/mach.h>
+
+@implementation Controller
+
+- (void)causeCrash {
+  float *aPtr = nil;
+  NSLog(@"Crash!");
+  NSLog(@"Bad programmer: %f", *aPtr);
+}
+
+- (void)generateReportWithoutCrash:(id)sender {
+  BreakpadGenerateAndSendReport(breakpad_);
+}
+
+- (IBAction)showForkTestWindow:(id) sender {
+  [forkTestOptions_ setIsVisible:YES];
+}
+
+- (IBAction)forkTestOptions:(id)sender {
+  NSInteger tag = [[sender selectedCell] tag];
+  NSLog(@"sender tag: %d", tag);
+  if (tag <= 2) {
+    bpForkOption = tag;
+  }
+
+  if (tag == 3) {
+    useVFork = NO;
+  }
+
+  if (tag == 4) {
+    useVFork = YES;
+  }
+
+  if (tag >= 5 && tag <= 7) {
+    progCrashPoint = tag;
+  }
+
+}
+
+- (IBAction)forkTestGo:(id)sender {
+
+  NSString *resourcePath = [[NSBundle bundleForClass:
+                                        [self class]] resourcePath];
+  NSString *execProgname = nil;
+  if (progCrashPoint == DURINGLAUNCH) {
+    execProgname = [resourcePath stringByAppendingString:@"/crashduringload"];
+  } else if (progCrashPoint == AFTERLAUNCH) {
+    execProgname = [resourcePath stringByAppendingString:@"/crashInMain"];
+  }
+
+  const char *progName = NULL;
+  if (progCrashPoint != BETWEENFORKEXEC) {
+    progName = [execProgname UTF8String];
+  }
+
+  int pid;
+
+  if (bpForkOption == UNINSTALL) {
+    BreakpadRelease(breakpad_);
+  }
+
+  if (useVFork) {
+    pid = vfork();
+  } else {
+    pid = fork();
+  }
+
+  if (pid == 0) {
+    sleep(3);
+    NSLog(@"Child continuing");
+    FILE *fd = fopen("/tmp/childlog.txt","wt");
+    kern_return_t kr;
+    if (bpForkOption == RESETEXCEPTIONPORT) {
+      kr = task_set_exception_ports(mach_task_self(),
+                               EXC_MASK_BAD_ACCESS | EXC_MASK_BAD_INSTRUCTION |
+                               EXC_MASK_ARITHMETIC | EXC_MASK_BREAKPOINT,
+                               MACH_PORT_NULL,
+                               EXCEPTION_DEFAULT,
+                               THREAD_STATE_NONE);
+      fprintf(fd,"task_set_exception_ports returned %d\n", kr);
+    }
+
+    if (progCrashPoint == BETWEENFORKEXEC) {
+      fprintf(fd,"crashing post-fork\n");
+      int *a = NULL;
+      printf("%d\n",*a++);
+    }
+
+    fprintf(fd,"about to call exec with %s\n", progName);
+    fclose(fd);
+    int i = execl(progName, progName, NULL);
+    fprintf(fd, "exec returned! %d\n", i);
+    fclose(fd);
+  }
+}
+
+- (IBAction)crash:(id)sender {
+  NSInteger tag = [sender tag];
+
+  if (tag == 1) {
+    [NSObject cancelPreviousPerformRequestsWithTarget:self];
+    [self performSelector:@selector(causeCrash) withObject:nil afterDelay:10.0];
+    [sender setState:NSOnState];
+    return;
+  }
+
+  if (tag == 2 && breakpad_) {
+    BreakpadRelease(breakpad_);
+    breakpad_ = NULL;
+    return;
+  }
+
+  [self causeCrash];
+}
+
+- (void)anotherThread {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  TestClass *tc = [[TestClass alloc] init];
+
+  [tc wait];
+
+  [pool release];
+}
+
+- (void)awakeFromNib {
+  NSBundle *bundle = [NSBundle mainBundle];
+  NSDictionary *info = [bundle infoDictionary];
+
+
+  breakpad_ = BreakpadCreate(info);
+
+  // Do some unit tests with keys
+  // first a series of bogus values
+  BreakpadSetKeyValue(breakpad_, nil, @"bad2");
+  BreakpadSetKeyValue(nil, @"bad3", @"bad3");
+
+  // Now some good ones
+  BreakpadSetKeyValue(breakpad_,@"key1", @"value1");
+  BreakpadSetKeyValue(breakpad_,@"key2", @"value2");
+  BreakpadSetKeyValue(breakpad_,@"key3", @"value3");
+
+  // Look for a bogus one that we didn't try to set
+  NSString *test = BreakpadKeyValue(breakpad_, @"bad4");
+  if (test) {
+    NSLog(@"Bad BreakpadKeyValue (bad4)");
+  }
+
+  // Look for a bogus one we did try to set
+  test = BreakpadKeyValue(breakpad_, @"bad1");
+  if (test) {
+    NSLog(@"Bad BreakpadKeyValue (bad1)");
+  }
+
+  // Test some bad args for BreakpadKeyValue
+  test = BreakpadKeyValue(nil, @"bad5");
+  if (test) {
+    NSLog(@"Bad BreakpadKeyValue (bad5)");
+  }
+
+  test = BreakpadKeyValue(breakpad_, nil);
+  if (test) {
+    NSLog(@"Bad BreakpadKeyValue (nil)");
+  }
+
+  // Find some we did set
+  test = BreakpadKeyValue(breakpad_, @"key1");
+  if (![test isEqualToString:@"value1"]) {
+    NSLog(@"Can't find BreakpadKeyValue (key1)");
+  }
+  test = BreakpadKeyValue(breakpad_, @"key2");
+  if (![test isEqualToString:@"value2"]) {
+    NSLog(@"Can't find BreakpadKeyValue (key2)");
+  }
+  test = BreakpadKeyValue(breakpad_, @"key3");
+  if (![test isEqualToString:@"value3"]) {
+    NSLog(@"Can't find BreakpadKeyValue (key3)");
+  }
+
+  // Bad args for BreakpadRemoveKeyValue
+  BreakpadRemoveKeyValue(nil, @"bad6");
+  BreakpadRemoveKeyValue(breakpad_, nil);
+
+  // Remove one that is valid
+  BreakpadRemoveKeyValue(breakpad_, @"key3");
+
+  // Try and find it
+  test = BreakpadKeyValue(breakpad_, @"key3");
+  if (test) {
+    NSLog(@"Shouldn't find BreakpadKeyValue (key3)");
+  }
+
+  // Try and remove it again
+  BreakpadRemoveKeyValue(breakpad_, @"key3");
+
+  // Try removal by setting to nil
+  BreakpadSetKeyValue(breakpad_,@"key2", nil);
+  // Try and find it
+  test = BreakpadKeyValue(breakpad_, @"key2");
+  if (test) {
+    NSLog(@"Shouldn't find BreakpadKeyValue (key2)");
+  }
+
+  BreakpadAddUploadParameter(breakpad_,
+                             @"MeaningOfLife",
+                             @"42");
+  [NSThread detachNewThreadSelector:@selector(anotherThread)
+                           toTarget:self withObject:nil];
+
+  NSUserDefaults *args = [NSUserDefaults standardUserDefaults];
+
+  // If the user specified autocrash on the command line, toggle
+  // Breakpad to not confirm and crash immediately.  This is for
+  // automated testing.
+  if ([args boolForKey:@"autocrash"]) {
+    BreakpadSetKeyValue(breakpad_,
+                        @BREAKPAD_SKIP_CONFIRM,
+                        @"YES");
+    [self causeCrash];
+  }
+
+  progCrashPoint = DURINGLAUNCH;
+  [window_ center];
+  [window_ makeKeyAndOrderFront:self];
+}
+
+@end
diff --git a/src/client/mac/testapp/English.lproj/InfoPlist.strings b/src/client/mac/testapp/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..b8c6c6b
--- /dev/null
+++ b/src/client/mac/testapp/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/src/client/mac/testapp/English.lproj/MainMenu.xib b/src/client/mac/testapp/English.lproj/MainMenu.xib
new file mode 100644
index 0000000..840c0db
--- /dev/null
+++ b/src/client/mac/testapp/English.lproj/MainMenu.xib
@@ -0,0 +1,3748 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1050</int>
+		<string key="IBDocument.SystemVersion">10F569</string>
+		<string key="IBDocument.InterfaceBuilderVersion">788</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">461.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+			<string key="NS.object.0">788</string>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<integer value="220"/>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys" id="0">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="925601844">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="870565383">
+				<object class="NSMutableString" key="NSClassName">
+					<characters key="NS.bytes">NSApplication</characters>
+				</object>
+			</object>
+			<object class="NSCustomObject" id="442653439">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="751079937">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSWindowTemplate" id="341270541">
+				<int key="NSWindowStyleMask">15</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{945, 874}, {320, 188}}</string>
+				<int key="NSWTFlags">1886912512</int>
+				<string key="NSWindowTitle">Window</string>
+				<string key="NSWindowClass">NSWindow</string>
+				<object class="NSMutableString" key="NSViewClass">
+					<characters key="NS.bytes">View</characters>
+				</object>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<string key="NSWindowContentMinSize">{213, 107}</string>
+				<object class="NSView" key="NSWindowView" id="814272478">
+					<reference key="NSNextResponder"/>
+					<int key="NSvFlags">256</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSButton" id="726278107">
+							<reference key="NSNextResponder" ref="814272478"/>
+							<int key="NSvFlags">301</int>
+							<string key="NSFrame">{{14, 140}, {292, 32}}</string>
+							<reference key="NSSuperview" ref="814272478"/>
+							<reference key="NSWindow"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="539552922">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Crash! (Airbag Installed)</string>
+								<object class="NSFont" key="NSSupport" id="933596199">
+									<string key="NSName">LucidaGrande</string>
+									<double key="NSSize">13</double>
+									<int key="NSfFlags">1044</int>
+								</object>
+								<reference key="NSControlView" ref="726278107"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">1</int>
+								<reference key="NSAlternateImage" ref="933596199"/>
+								<string key="NSAlternateContents"/>
+								<object class="NSMutableString" key="NSKeyEquivalent">
+									<characters key="NS.bytes"/>
+								</object>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="799567279">
+							<reference key="NSNextResponder" ref="814272478"/>
+							<int key="NSvFlags">301</int>
+							<string key="NSFrame">{{14, 76}, {292, 32}}</string>
+							<reference key="NSSuperview" ref="814272478"/>
+							<reference key="NSWindow"/>
+							<int key="NSTag">2</int>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="1010617379">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Crash! (Airbag NOT Installed)</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<reference key="NSControlView" ref="799567279"/>
+								<int key="NSTag">2</int>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">1</int>
+								<reference key="NSAlternateImage" ref="933596199"/>
+								<string key="NSAlternateContents"/>
+								<object class="NSMutableString" key="NSKeyEquivalent">
+									<characters key="NS.bytes"/>
+								</object>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="27781390">
+							<reference key="NSNextResponder" ref="814272478"/>
+							<int key="NSvFlags">301</int>
+							<string key="NSFrame">{{14, 108}, {292, 32}}</string>
+							<reference key="NSSuperview" ref="814272478"/>
+							<reference key="NSWindow"/>
+							<int key="NSTag">1</int>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="547901497">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Crash! (Airbag Installed w/10sec delay)</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<reference key="NSControlView" ref="27781390"/>
+								<int key="NSTag">1</int>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">1</int>
+								<reference key="NSAlternateImage" ref="933596199"/>
+								<string key="NSAlternateContents"/>
+								<object class="NSMutableString" key="NSKeyEquivalent">
+									<characters key="NS.bytes"/>
+								</object>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="856256540">
+							<reference key="NSNextResponder" ref="814272478"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{14, 44}, {292, 32}}</string>
+							<reference key="NSSuperview" ref="814272478"/>
+							<reference key="NSWindow"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="353736234">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Fork Test</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<reference key="NSControlView" ref="856256540"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">129</int>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+						<object class="NSButton" id="460755987">
+							<reference key="NSNextResponder" ref="814272478"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{14, 12}, {292, 32}}</string>
+							<reference key="NSSuperview" ref="814272478"/>
+							<reference key="NSWindow"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="775425649">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Generate report without crash</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<reference key="NSControlView" ref="460755987"/>
+								<int key="NSButtonFlags">-2038284033</int>
+								<int key="NSButtonFlags2">129</int>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+						</object>
+					</object>
+					<string key="NSFrameSize">{320, 188}</string>
+					<reference key="NSSuperview"/>
+					<reference key="NSWindow"/>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
+				<string key="NSMinSize">{213, 129}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+			</object>
+			<object class="NSMenu" id="695387251">
+				<string key="NSTitle">MainMenu</string>
+				<object class="NSMutableArray" key="NSMenuItems">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="NSMenuItem" id="458207250">
+						<reference key="NSMenu" ref="695387251"/>
+						<string key="NSTitle">NewApplication</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<object class="NSCustomResource" key="NSOnImage" id="419346806">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuCheckmark</string>
+						</object>
+						<object class="NSCustomResource" key="NSMixedImage" id="290286705">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuMixedState</string>
+						</object>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="753534561">
+							<string key="NSTitle">NewApplication</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="838552093">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">About NewApplication</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="758254482">
+									<reference key="NSMenu" ref="753534561"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="443649494">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Preferences…</string>
+									<string key="NSKeyEquiv">,</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="217746140">
+									<reference key="NSMenu" ref="753534561"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="826764396">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Services</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="276709607">
+										<object class="NSMutableString" key="NSTitle">
+											<characters key="NS.bytes">Services</characters>
+										</object>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+										</object>
+										<string key="NSName">_NSServicesMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="881859155">
+									<reference key="NSMenu" ref="753534561"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="104472016">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Hide NewApplication</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="216168366">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Hide Others</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="667790509">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Show All</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="928933982">
+									<reference key="NSMenu" ref="753534561"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="887927135">
+									<reference key="NSMenu" ref="753534561"/>
+									<string key="NSTitle">Quit NewApplication</string>
+									<string key="NSKeyEquiv">q</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+							</object>
+							<string key="NSName">_NSAppleMenu</string>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="369472335">
+						<reference key="NSMenu" ref="695387251"/>
+						<string key="NSTitle">File</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="419346806"/>
+						<reference key="NSMixedImage" ref="290286705"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="902982238">
+							<object class="NSMutableString" key="NSTitle">
+								<characters key="NS.bytes">File</characters>
+							</object>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="660391032">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">New</string>
+									<string key="NSKeyEquiv">n</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="367379562">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Open...</string>
+									<string key="NSKeyEquiv">o</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="84883275">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Open Recent</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="693280130">
+										<object class="NSMutableString" key="NSTitle">
+											<characters key="NS.bytes">Open Recent</characters>
+										</object>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="85018532">
+												<reference key="NSMenu" ref="693280130"/>
+												<string key="NSTitle">Clear Menu</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+											</object>
+										</object>
+										<string key="NSName">_NSRecentDocumentsMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="154948703">
+									<reference key="NSMenu" ref="902982238"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="468594275">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Close</string>
+									<string key="NSKeyEquiv">w</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="479945444">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Save</string>
+									<string key="NSKeyEquiv">s</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="976375553">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Save As…</string>
+									<string key="NSKeyEquiv">S</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="885975128">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Revert</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="232609393">
+									<reference key="NSMenu" ref="902982238"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="409810395">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Page Setup…</string>
+									<string key="NSKeyEquiv">P</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="302505815">
+									<reference key="NSMenu" ref="902982238"/>
+									<string key="NSTitle">Print…</string>
+									<string key="NSKeyEquiv">p</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="542216986">
+						<reference key="NSMenu" ref="695387251"/>
+						<string key="NSTitle">Edit</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="419346806"/>
+						<reference key="NSMixedImage" ref="290286705"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="1053284541">
+							<object class="NSMutableString" key="NSTitle">
+								<characters key="NS.bytes">Edit</characters>
+							</object>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="284548410">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Undo</string>
+									<string key="NSKeyEquiv">z</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="1001272176">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Redo</string>
+									<string key="NSKeyEquiv">Z</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="209744238">
+									<reference key="NSMenu" ref="1053284541"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="909447496">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Cut</string>
+									<string key="NSKeyEquiv">x</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="994487277">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Copy</string>
+									<string key="NSKeyEquiv">c</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="84012734">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Paste</string>
+									<string key="NSKeyEquiv">v</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="182251545">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Paste and Match Style</string>
+									<string key="NSKeyEquiv">V</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="512189403">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Delete</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="917620781">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Select All</string>
+									<string key="NSKeyEquiv">a</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="431895313">
+									<reference key="NSMenu" ref="1053284541"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="153501847">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Find</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="333484665">
+										<object class="NSMutableString" key="NSTitle">
+											<characters key="NS.bytes">Find</characters>
+										</object>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="203238834">
+												<reference key="NSMenu" ref="333484665"/>
+												<string key="NSTitle">Find…</string>
+												<string key="NSKeyEquiv">f</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+												<int key="NSTag">1</int>
+											</object>
+											<object class="NSMenuItem" id="861312964">
+												<reference key="NSMenu" ref="333484665"/>
+												<string key="NSTitle">Find Next</string>
+												<string key="NSKeyEquiv">g</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+												<int key="NSTag">2</int>
+											</object>
+											<object class="NSMenuItem" id="743767160">
+												<reference key="NSMenu" ref="333484665"/>
+												<string key="NSTitle">Find Previous</string>
+												<string key="NSKeyEquiv">G</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+												<int key="NSTag">3</int>
+											</object>
+											<object class="NSMenuItem" id="180446588">
+												<reference key="NSMenu" ref="333484665"/>
+												<string key="NSTitle">Use Selection for Find</string>
+												<string key="NSKeyEquiv">e</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+												<int key="NSTag">7</int>
+											</object>
+											<object class="NSMenuItem" id="731027425">
+												<reference key="NSMenu" ref="333484665"/>
+												<string key="NSTitle">Jump to Selection</string>
+												<string key="NSKeyEquiv">j</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="61602259">
+									<reference key="NSMenu" ref="1053284541"/>
+									<string key="NSTitle">Spelling</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="8174285">
+										<string key="NSTitle">Spelling</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="438210660">
+												<reference key="NSMenu" ref="8174285"/>
+												<string key="NSTitle">Spelling…</string>
+												<string key="NSKeyEquiv">:</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+											</object>
+											<object class="NSMenuItem" id="102172584">
+												<reference key="NSMenu" ref="8174285"/>
+												<string key="NSTitle">Check Spelling</string>
+												<string key="NSKeyEquiv">;</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+											</object>
+											<object class="NSMenuItem" id="540509341">
+												<reference key="NSMenu" ref="8174285"/>
+												<string key="NSTitle">Check Spelling as You Type</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="419346806"/>
+												<reference key="NSMixedImage" ref="290286705"/>
+											</object>
+										</object>
+									</object>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="764068863">
+						<reference key="NSMenu" ref="695387251"/>
+						<string key="NSTitle">Window</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="419346806"/>
+						<reference key="NSMixedImage" ref="290286705"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="200536676">
+							<object class="NSMutableString" key="NSTitle">
+								<characters key="NS.bytes">Window</characters>
+							</object>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="683986939">
+									<reference key="NSMenu" ref="200536676"/>
+									<string key="NSTitle">Minimize</string>
+									<string key="NSKeyEquiv">m</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="548098734">
+									<reference key="NSMenu" ref="200536676"/>
+									<string key="NSTitle">Zoom</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="297002686">
+									<reference key="NSMenu" ref="200536676"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+								<object class="NSMenuItem" id="164762492">
+									<reference key="NSMenu" ref="200536676"/>
+									<string key="NSTitle">Bring All to Front</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+							</object>
+							<string key="NSName">_NSWindowsMenu</string>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="599772536">
+						<reference key="NSMenu" ref="695387251"/>
+						<string key="NSTitle">Help</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="419346806"/>
+						<reference key="NSMixedImage" ref="290286705"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="1066958924">
+							<string key="NSTitle">Help</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="192540884">
+									<reference key="NSMenu" ref="1066958924"/>
+									<string key="NSTitle">NewApplication Help</string>
+									<string key="NSKeyEquiv">?</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="419346806"/>
+									<reference key="NSMixedImage" ref="290286705"/>
+								</object>
+							</object>
+						</object>
+					</object>
+				</object>
+				<string key="NSName">_NSMainMenu</string>
+			</object>
+			<object class="NSCustomObject" id="623097029">
+				<string key="NSClassName">Controller</string>
+			</object>
+			<object class="NSWindowTemplate" id="347013037">
+				<int key="NSWindowStyleMask">15</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{858, 755}, {787, 260}}</string>
+				<int key="NSWTFlags">603979776</int>
+				<string key="NSWindowTitle">Window</string>
+				<string key="NSWindowClass">NSWindow</string>
+				<nil key="NSViewClass"/>
+				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<object class="NSView" key="NSWindowView" id="594333702">
+					<reference key="NSNextResponder"/>
+					<int key="NSvFlags">256</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSMatrix" id="891367997">
+							<reference key="NSNextResponder" ref="594333702"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{20, 7}, {645, 79}}</string>
+							<reference key="NSSuperview" ref="594333702"/>
+							<bool key="NSEnabled">YES</bool>
+							<int key="NSNumRows">3</int>
+							<int key="NSNumCols">1</int>
+							<object class="NSMutableArray" key="NSCells">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSButtonCell" id="410017819">
+									<int key="NSCellFlags">-2080244224</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">program crashes during launch because of missing dylib</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="891367997"/>
+									<int key="NSTag">5</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSButtonImageSource" key="NSAlternateImage" id="619763889">
+										<string key="NSImageName">NSRadioButton</string>
+									</object>
+									<string key="NSAlternateContents"/>
+									<string key="NSKeyEquivalent"/>
+									<int key="NSPeriodicDelay">200</int>
+									<int key="NSPeriodicInterval">25</int>
+								</object>
+								<object class="NSButtonCell" id="904578786">
+									<int key="NSCellFlags">67239424</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">program crashes after launch</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="891367997"/>
+									<int key="NSTag">6</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSImage" key="NSNormalImage">
+										<int key="NSImageFlags">549453824</int>
+										<string key="NSSize">{18, 18}</string>
+										<object class="NSMutableArray" key="NSReps">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSArray">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<integer value="0"/>
+												<object class="NSBitmapImageRep">
+													<object class="NSData" key="NSTIFFRepresentation">
+														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
+cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
+AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
+BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
+AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
+AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
+cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
+AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
+SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
+hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
+vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
+7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
+Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
+aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
+n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
+2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
+FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
+Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
+ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
+rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
+AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
+AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
+A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
+DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
+HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
+MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
+UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
+eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
+rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
+5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
+AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
+CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
+GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
+MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
+UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
+d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
+pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
+0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
+AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
+BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
+FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
+LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
+Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
+h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
+svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
+1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
+8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
+AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
+QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<object class="NSColor" key="NSColor" id="30384615">
+											<int key="NSColorSpace">3</int>
+											<bytes key="NSWhite">MCAwAA</bytes>
+										</object>
+									</object>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<int key="NSPeriodicDelay">400</int>
+									<int key="NSPeriodicInterval">75</int>
+								</object>
+								<object class="NSButtonCell" id="971445237">
+									<int key="NSCellFlags">67239424</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">program crashes in between fork() and exec() (3rd option in first group will happen before crash)</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="891367997"/>
+									<int key="NSTag">7</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSImage" key="NSNormalImage">
+										<int key="NSImageFlags">549453824</int>
+										<string key="NSSize">{18, 18}</string>
+										<object class="NSMutableArray" key="NSReps">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSArray">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<integer value="0"/>
+												<object class="NSBitmapImageRep">
+													<object class="NSData" key="NSTIFFRepresentation">
+														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAv0AAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAL9GFw
+cGwCAAAAbW50clJHQiBYWVogB9gAAgAMAAoAFgAIYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs625VECyhxeSV9P9A73pKGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAANclhZWgAAASAAAAAUZ1hZWgAAATQAAAAUYlhZWgAAAUgAAAAUd3RwdAAAAVwAAAAUY2hhZAAA
+AXAAAAAsclRSQwAAAZwAAAAOZ1RSQwAAAawAAAAOYlRSQwAAAbwAAAAOdmNndAAAAcwAAAYSbmRpbgAA
+B+AAAAMOZGVzYwAACvAAAACZY3BydAAAC4wAAABAbW1vZAAAC8wAAAAoWFlaIAAAAAAAAJumAABMVQAA
+ArBYWVogAAAAAAAANWMAAJ/rAAAZsVhZWiAAAAAAAAAlzQAAE9UAALbFWFlaIAAAAAAAAPPYAAEAAAAB
+FghzZjMyAAAAAAABC7cAAAWW///zVwAABykAAP3X///7t////aYAAAPaAADA9mN1cnYAAAAAAAAAAQHN
+AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAioENAYA
+B9AJlAtRDQwOshBOEekTgxUVFqMYMRm9GzwcvR4+H7chLiKnJBoliCb3KGIpyCswLJMt9C9WMLIyDjNn
+NL02FTdoOLs6ETtdPKw9+D9DQJBB1kMeRGZFq0bySDRJeEq6S/tNPk59T75Q+lI2U25Uo1XZVwlYOlln
+WpZbwFzsXhdfQWBrYZRiv2PoZRNmPWdqaJhpyGr5bC1tZW6hb+BxLXJ+c9d1OHafeA55gnr5fHR98H9t
+gOuCY4PYhUqGsIgSiWyKuIwBjTqObY+VkLORyJLUk9eU05XFlrWXlZh2mUuaG5rsm6ucbJ0qndqei588
+n9+ghKEqoceiYqL/o5qkLqTDpVml66Z7pwunnKgpqLWpQqnQqlqq5Ktvq/qsg60MrZauIa6qrzOvvbBH
+sNGxXLHnsnKy/7OMtBm0p7U3tci2Wbbrt4C4FrituUa54rqAux27wbxlvQq9rr5Tvvi/ncBAwOXBisIu
+wtPDeMQdxMLFaMYPxrXHXMgEyKzJVcn/yqnLVcwBzK7NXc4Mzr3PcNAk0NnRkdJK0wTTw9SC1UTWCtbR
+153Ybdk+2hfa8dvM3KfdhN5g3zzgGuD34dbiteOV5HblWeY85yHoCOjw6drqxuu27Kbtm+6R74zwivGM
+8pPzn/Sw9cj25/gP+T76e/u//Rr+hP//AAABpANzBRoGsggnCZsLFQx+Dd4PRRCiEf8TYxS0FgoXXRiu
+GgQbTRyZHekfMCB8IcIjCSRSJZUm3SgdKWAqpCvjLSYuZC+lMOIyIDNgNJs12TcTOFA5izrEO/49NT5w
+P6dA30IWQ01Eg0W4Ru9IIElVSoZLt0zmThVPRFBwUZ5SylP5VSRWUVd+WKtZ2lsIXDhdaV6bX89hBWI8
+Y3dktGX0ZzhohGnVayxsiW3sb1Vww3I0c6p1I3aeeBl5k3sMfIR99X9kgM6CLYOJhNyGJodriKGJ1Ir5
+jBuNL45Aj0WQSJE8kjKTGJP+lNyVspaKl1OYHZjlmaSaZJshm9ecj51EnfSepJ9Vn/+gqqFWofyio6NL
+o/CklKU4pdymfacfp8KoYqkDqaWqRarlq4asJ6zHrWiuCq6rr02v77CSsTax27KAsyezzrR3tSG1zLZ5
+tye32LiKuT659rqwu2q8J7zkvaK+YL8ev93AnMFcwhzC3MOdxF7FIMXixqXHaMgryPDJtcp6y0DMB8zO
+zZbOX88oz/PQvtGJ0lbTI9Px1MDVkNZi1zTYB9jb2bDah9te3DjdEt3t3sjfpOB/4VviN+MT4/DkzeWq
+5ojnZuhG6SXqBuro68rsre2S7nfvXvBH8TDyHPMI8/j06fXc9tL3yvjF+cL6w/vG/ND92v7s//8AAAMJ
+BboIZwrCDSsPghG8E/IWHxg5GkgcVB5VIEQiMyQTJeknuimHK00tCy7AMHEyHDO/NV829ziKOhs7pj0s
+PrBALEGmQx9EkkYCR3JI3EpCS6pND05vT89RLVKKU+dVP1aYV+9ZRVqdW/NdSV6hX+thM2JzY61k42YS
+Z0FoZ2mOaq5rz2zsbglvI3A9cVRybHOEdJx1tHbOd+d5A3ofez98Yn2Lfrl/8IEqgmyDsoT8hkuHnYjw
+ikSLmYzsjj+PjJDWkh2TW5SXlceW85gWmTOaSJtVnFqdWp5Pn0SgKaEQoeuiwqOYpGClKaXtpqmnZqgf
+qNKph6o5quWrk6xArOatja41rtevebAcsLyxWbH3spWzL7PJtGO0/LWTtiq2wrdWt+q4f7kUuaW6OLrL
+u1277Lx9vQ69nr4tvry/TL/bwGjA98GGwhPCocMvw77ESsTYxWXF9MZ/xwzHmcgkyKXJJ8mpyizKpMsc
+y5XMDsyFzPjNa83fzlPOxc81z6fQGNCK0PvRbNHe0lDSw9M206vUINSV1QvVhtYA1nzW+Nd61//YhNkK
+2ZnaL9rG213cCty63WveI97d35fgUuEO4crih+NE5ALkw+WD5kXnCufP6JbpYOor6vrry+yd7XbuUe8w
+8BXw+/Ht8uDz4PTl9fj3E/hE+X363vxa/gH//wAAbmRpbgAAAAAAAAMGAACogAAAUwAAADRAAACqQAAA
+JpcAABLbAABQQAAAVEAAAj99AAI1egACxUsAAwB4AAIAAAADAAsAGQAsAEUAYwCHALEA4QEWAVEBkgHZ
+AiYCeQLSAzEDlwQDBHYE7wVvBfUGgwcXB7IIUwj8CawKYgsgC+QMrw2BDloPORAfEQ0SBRMGFBEVJBZA
+F2MYjhm/GvYcMh1xHrMf9SE1ImwjnSTJJfAnFig7KWMqjivBLP4uSC+jMRMymzRBNgo3+joWPGY+8EG8
+RNhIQEvvT95UCFhkXOxhlWZYaylv/XTKeYN+GoKOhxGLqJBOlP6Ztp5voyan1Kx0sQG1c7nGvfHB9cX7
+ygbOFNIi1izaMN4p4hTl7emv7Vbw3vRC93z6iP1g//8AAAAEAA8AIgA9AF8AiQC7APQBNAF8AcwCIgKB
+AuYDUwPHBEIExAVOBd4GdgcUB7oIZgkaCdQKlQteDC0NAw3gDsQPrxCiEZwSnxOpFLsV0xbyGBcZQRpw
+G6Mc2R4RH0oggyG3IuckEyU8JmQniyiyKd0rDCxBLYAuyTAhMYkzBjSbNkw4HToSPDA+fED8Q7FGmUmx
+TPdQaFQAV7tbll+KY5RnrmvTb/p0H3g6fEOAMoQXiASL+I/yk/KX+JwBoA2kHKgrrDuwS7RYuGK8aMBo
+xGvId8yI0J/UuNjS3OvhAOUQ6RftE/EC9OH4rfxi//8AAAABAAYADQAXACUANQBIAF8AeQCWALcA3AEE
+ATABYQGVAc4CDAJOApUC4QMyA4gD5QRGBK4FHAWPBgkGigcQB54IMQjMCW0KFArDC3cMMgzzDbsOiA9a
+EDIRFhIIEwgUFRUvFlYXhxjDGgkbVhyqHgMfYCC8IhIjYSSrJfMnOSiBKc0rHyx7LeQvXTDrMpE0VTY7
+OEg6gjzuP5NCckWCSMJMMk/QU5xXk1u1X/9kcGkGbb5ylneLfJqByoeDjcyUf5t4oo2plLBetru8eMFr
+xirK7c+v1GnZFd2r4iXme+ql7pryUvXD+OT7qv4M//8AAGRlc2MAAAAAAAAAFUhQIExQMzA2NSBDYWxp
+YnJhdGVkAAAAAAAAAAAVAEgAUAAgAEwAUAAzADAANgA1ACAAQwBhAGwAaQBiAHIAYQB0AGUAZAAAAAAV
+SFAgTFAzMDY1IENhbGlicmF0ZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMDgAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<reference key="NSColor" ref="30384615"/>
+									</object>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<string key="NSAlternateContents"/>
+									<int key="NSPeriodicDelay">200</int>
+									<int key="NSPeriodicInterval">25</int>
+								</object>
+							</object>
+							<string key="NSCellSize">{645, 25}</string>
+							<string key="NSIntercellSpacing">{4, 2}</string>
+							<int key="NSMatrixFlags">1151868928</int>
+							<string key="NSCellClass">NSActionCell</string>
+							<object class="NSButtonCell" key="NSProtoCell" id="1072218638">
+								<int key="NSCellFlags">-2080244224</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">program crashes after launch</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<int key="NSTag">5</int>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">0</int>
+								<reference key="NSAlternateImage" ref="619763889"/>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">200</int>
+								<int key="NSPeriodicInterval">25</int>
+							</object>
+							<reference key="NSSelectedCell" ref="410017819"/>
+							<object class="NSColor" key="NSBackgroundColor" id="349124561">
+								<int key="NSColorSpace">6</int>
+								<string key="NSCatalogName">System</string>
+								<string key="NSColorName">controlColor</string>
+								<object class="NSColor" key="NSColor">
+									<int key="NSColorSpace">3</int>
+									<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+								</object>
+							</object>
+							<object class="NSColor" key="NSCellBackgroundColor" id="195671423">
+								<int key="NSColorSpace">3</int>
+								<bytes key="NSWhite">MQA</bytes>
+							</object>
+							<reference key="NSFont" ref="933596199"/>
+						</object>
+						<object class="NSMatrix" id="7590393">
+							<reference key="NSNextResponder" ref="594333702"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{20, 170}, {565, 70}}</string>
+							<reference key="NSSuperview" ref="594333702"/>
+							<bool key="NSEnabled">YES</bool>
+							<int key="NSNumRows">3</int>
+							<int key="NSNumCols">1</int>
+							<object class="NSMutableArray" key="NSCells">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSButtonCell" id="808388382">
+									<int key="NSCellFlags">-2080244224</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">Leave breakpad alone before fork</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="7590393"/>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<string key="NSAlternateContents"/>
+									<string key="NSKeyEquivalent"/>
+									<int key="NSPeriodicDelay">200</int>
+									<int key="NSPeriodicInterval">25</int>
+								</object>
+								<object class="NSButtonCell" id="378736460">
+									<int key="NSCellFlags">67239424</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">Uninitialize Breakpad before fork</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="7590393"/>
+									<int key="NSTag">1</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSImage" key="NSNormalImage">
+										<int key="NSImageFlags">549453824</int>
+										<string key="NSSize">{18, 18}</string>
+										<object class="NSMutableArray" key="NSReps">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSArray">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<integer value="0"/>
+												<object class="NSBitmapImageRep">
+													<object class="NSData" key="NSTIFFRepresentation">
+														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
+cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
+AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
+BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
+AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
+AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
+cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
+AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
+SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
+hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
+vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
+7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
+Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
+aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
+n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
+2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
+FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
+Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
+ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
+rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
+AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
+AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
+A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
+DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
+HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
+MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
+UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
+eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
+rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
+5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
+AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
+CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
+GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
+MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
+UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
+d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
+pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
+0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
+AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
+BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
+FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
+LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
+Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
+h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
+svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
+1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
+8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
+AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
+QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<reference key="NSColor" ref="30384615"/>
+									</object>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<int key="NSPeriodicDelay">400</int>
+									<int key="NSPeriodicInterval">75</int>
+								</object>
+								<object class="NSButtonCell" id="251439646">
+									<int key="NSCellFlags">67239424</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">Call task_set_exception_port with null exception port in child process before exec</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="7590393"/>
+									<int key="NSTag">2</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSImage" key="NSNormalImage">
+										<int key="NSImageFlags">549453824</int>
+										<string key="NSSize">{18, 18}</string>
+										<object class="NSMutableArray" key="NSReps">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSArray">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<integer value="0"/>
+												<object class="NSBitmapImageRep">
+													<object class="NSData" key="NSTIFFRepresentation">
+														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAv0AAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAL9GFw
+cGwCAAAAbW50clJHQiBYWVogB9gAAgAMAAoAFgAIYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBs625VECyhxeSV9P9A73pKGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAANclhZWgAAASAAAAAUZ1hZWgAAATQAAAAUYlhZWgAAAUgAAAAUd3RwdAAAAVwAAAAUY2hhZAAA
+AXAAAAAsclRSQwAAAZwAAAAOZ1RSQwAAAawAAAAOYlRSQwAAAbwAAAAOdmNndAAAAcwAAAYSbmRpbgAA
+B+AAAAMOZGVzYwAACvAAAACZY3BydAAAC4wAAABAbW1vZAAAC8wAAAAoWFlaIAAAAAAAAJumAABMVQAA
+ArBYWVogAAAAAAAANWMAAJ/rAAAZsVhZWiAAAAAAAAAlzQAAE9UAALbFWFlaIAAAAAAAAPPYAAEAAAAB
+FghzZjMyAAAAAAABC7cAAAWW///zVwAABykAAP3X///7t////aYAAAPaAADA9mN1cnYAAAAAAAAAAQHN
+AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAioENAYA
+B9AJlAtRDQwOshBOEekTgxUVFqMYMRm9GzwcvR4+H7chLiKnJBoliCb3KGIpyCswLJMt9C9WMLIyDjNn
+NL02FTdoOLs6ETtdPKw9+D9DQJBB1kMeRGZFq0bySDRJeEq6S/tNPk59T75Q+lI2U25Uo1XZVwlYOlln
+WpZbwFzsXhdfQWBrYZRiv2PoZRNmPWdqaJhpyGr5bC1tZW6hb+BxLXJ+c9d1OHafeA55gnr5fHR98H9t
+gOuCY4PYhUqGsIgSiWyKuIwBjTqObY+VkLORyJLUk9eU05XFlrWXlZh2mUuaG5rsm6ucbJ0qndqei588
+n9+ghKEqoceiYqL/o5qkLqTDpVml66Z7pwunnKgpqLWpQqnQqlqq5Ktvq/qsg60MrZauIa6qrzOvvbBH
+sNGxXLHnsnKy/7OMtBm0p7U3tci2Wbbrt4C4FrituUa54rqAux27wbxlvQq9rr5Tvvi/ncBAwOXBisIu
+wtPDeMQdxMLFaMYPxrXHXMgEyKzJVcn/yqnLVcwBzK7NXc4Mzr3PcNAk0NnRkdJK0wTTw9SC1UTWCtbR
+153Ybdk+2hfa8dvM3KfdhN5g3zzgGuD34dbiteOV5HblWeY85yHoCOjw6drqxuu27Kbtm+6R74zwivGM
+8pPzn/Sw9cj25/gP+T76e/u//Rr+hP//AAABpANzBRoGsggnCZsLFQx+Dd4PRRCiEf8TYxS0FgoXXRiu
+GgQbTRyZHekfMCB8IcIjCSRSJZUm3SgdKWAqpCvjLSYuZC+lMOIyIDNgNJs12TcTOFA5izrEO/49NT5w
+P6dA30IWQ01Eg0W4Ru9IIElVSoZLt0zmThVPRFBwUZ5SylP5VSRWUVd+WKtZ2lsIXDhdaV6bX89hBWI8
+Y3dktGX0ZzhohGnVayxsiW3sb1Vww3I0c6p1I3aeeBl5k3sMfIR99X9kgM6CLYOJhNyGJodriKGJ1Ir5
+jBuNL45Aj0WQSJE8kjKTGJP+lNyVspaKl1OYHZjlmaSaZJshm9ecj51EnfSepJ9Vn/+gqqFWofyio6NL
+o/CklKU4pdymfacfp8KoYqkDqaWqRarlq4asJ6zHrWiuCq6rr02v77CSsTax27KAsyezzrR3tSG1zLZ5
+tye32LiKuT659rqwu2q8J7zkvaK+YL8ev93AnMFcwhzC3MOdxF7FIMXixqXHaMgryPDJtcp6y0DMB8zO
+zZbOX88oz/PQvtGJ0lbTI9Px1MDVkNZi1zTYB9jb2bDah9te3DjdEt3t3sjfpOB/4VviN+MT4/DkzeWq
+5ojnZuhG6SXqBuro68rsre2S7nfvXvBH8TDyHPMI8/j06fXc9tL3yvjF+cL6w/vG/ND92v7s//8AAAMJ
+BboIZwrCDSsPghG8E/IWHxg5GkgcVB5VIEQiMyQTJeknuimHK00tCy7AMHEyHDO/NV829ziKOhs7pj0s
+PrBALEGmQx9EkkYCR3JI3EpCS6pND05vT89RLVKKU+dVP1aYV+9ZRVqdW/NdSV6hX+thM2JzY61k42YS
+Z0FoZ2mOaq5rz2zsbglvI3A9cVRybHOEdJx1tHbOd+d5A3ofez98Yn2Lfrl/8IEqgmyDsoT8hkuHnYjw
+ikSLmYzsjj+PjJDWkh2TW5SXlceW85gWmTOaSJtVnFqdWp5Pn0SgKaEQoeuiwqOYpGClKaXtpqmnZqgf
+qNKph6o5quWrk6xArOatja41rtevebAcsLyxWbH3spWzL7PJtGO0/LWTtiq2wrdWt+q4f7kUuaW6OLrL
+u1277Lx9vQ69nr4tvry/TL/bwGjA98GGwhPCocMvw77ESsTYxWXF9MZ/xwzHmcgkyKXJJ8mpyizKpMsc
+y5XMDsyFzPjNa83fzlPOxc81z6fQGNCK0PvRbNHe0lDSw9M206vUINSV1QvVhtYA1nzW+Nd61//YhNkK
+2ZnaL9rG213cCty63WveI97d35fgUuEO4crih+NE5ALkw+WD5kXnCufP6JbpYOor6vrry+yd7XbuUe8w
+8BXw+/Ht8uDz4PTl9fj3E/hE+X363vxa/gH//wAAbmRpbgAAAAAAAAMGAACogAAAUwAAADRAAACqQAAA
+JpcAABLbAABQQAAAVEAAAj99AAI1egACxUsAAwB4AAIAAAADAAsAGQAsAEUAYwCHALEA4QEWAVEBkgHZ
+AiYCeQLSAzEDlwQDBHYE7wVvBfUGgwcXB7IIUwj8CawKYgsgC+QMrw2BDloPORAfEQ0SBRMGFBEVJBZA
+F2MYjhm/GvYcMh1xHrMf9SE1ImwjnSTJJfAnFig7KWMqjivBLP4uSC+jMRMymzRBNgo3+joWPGY+8EG8
+RNhIQEvvT95UCFhkXOxhlWZYaylv/XTKeYN+GoKOhxGLqJBOlP6Ztp5voyan1Kx0sQG1c7nGvfHB9cX7
+ygbOFNIi1izaMN4p4hTl7emv7Vbw3vRC93z6iP1g//8AAAAEAA8AIgA9AF8AiQC7APQBNAF8AcwCIgKB
+AuYDUwPHBEIExAVOBd4GdgcUB7oIZgkaCdQKlQteDC0NAw3gDsQPrxCiEZwSnxOpFLsV0xbyGBcZQRpw
+G6Mc2R4RH0oggyG3IuckEyU8JmQniyiyKd0rDCxBLYAuyTAhMYkzBjSbNkw4HToSPDA+fED8Q7FGmUmx
+TPdQaFQAV7tbll+KY5RnrmvTb/p0H3g6fEOAMoQXiASL+I/yk/KX+JwBoA2kHKgrrDuwS7RYuGK8aMBo
+xGvId8yI0J/UuNjS3OvhAOUQ6RftE/EC9OH4rfxi//8AAAABAAYADQAXACUANQBIAF8AeQCWALcA3AEE
+ATABYQGVAc4CDAJOApUC4QMyA4gD5QRGBK4FHAWPBgkGigcQB54IMQjMCW0KFArDC3cMMgzzDbsOiA9a
+EDIRFhIIEwgUFRUvFlYXhxjDGgkbVhyqHgMfYCC8IhIjYSSrJfMnOSiBKc0rHyx7LeQvXTDrMpE0VTY7
+OEg6gjzuP5NCckWCSMJMMk/QU5xXk1u1X/9kcGkGbb5ylneLfJqByoeDjcyUf5t4oo2plLBetru8eMFr
+xirK7c+v1GnZFd2r4iXme+ql7pryUvXD+OT7qv4M//8AAGRlc2MAAAAAAAAAFUhQIExQMzA2NSBDYWxp
+YnJhdGVkAAAAAAAAAAAVAEgAUAAgAEwAUAAzADAANgA1ACAAQwBhAGwAaQBiAHIAYQB0AGUAZAAAAAAV
+SFAgTFAzMDY1IENhbGlicmF0ZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMDgAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<reference key="NSColor" ref="30384615"/>
+									</object>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<int key="NSPeriodicDelay">400</int>
+									<int key="NSPeriodicInterval">75</int>
+								</object>
+							</object>
+							<string key="NSCellSize">{565, 22}</string>
+							<string key="NSIntercellSpacing">{4, 2}</string>
+							<int key="NSMatrixFlags">1151868928</int>
+							<string key="NSCellClass">NSActionCell</string>
+							<object class="NSButtonCell" key="NSProtoCell" id="773902463">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Radio</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">0</int>
+								<object class="NSImage" key="NSNormalImage">
+									<int key="NSImageFlags">549453824</int>
+									<string key="NSSize">{18, 18}</string>
+									<object class="NSMutableArray" key="NSReps">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<integer value="0"/>
+											<object class="NSBitmapImageRep">
+												<object class="NSData" key="NSTIFFRepresentation">
+													<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
+												</object>
+											</object>
+										</object>
+									</object>
+									<reference key="NSColor" ref="30384615"/>
+								</object>
+								<reference key="NSAlternateImage" ref="619763889"/>
+								<int key="NSPeriodicDelay">400</int>
+								<int key="NSPeriodicInterval">75</int>
+							</object>
+							<reference key="NSSelectedCell" ref="808388382"/>
+							<reference key="NSBackgroundColor" ref="349124561"/>
+							<reference key="NSCellBackgroundColor" ref="195671423"/>
+							<reference key="NSFont" ref="933596199"/>
+						</object>
+						<object class="NSMatrix" id="1050951576">
+							<reference key="NSNextResponder" ref="594333702"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{20, 104}, {565, 38}}</string>
+							<reference key="NSSuperview" ref="594333702"/>
+							<bool key="NSEnabled">YES</bool>
+							<int key="NSNumRows">2</int>
+							<int key="NSNumCols">1</int>
+							<object class="NSMutableArray" key="NSCells">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSButtonCell" id="943458284">
+									<int key="NSCellFlags">-2080244224</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">fork()</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="1050951576"/>
+									<int key="NSTag">3</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<string key="NSAlternateContents"/>
+									<string key="NSKeyEquivalent"/>
+									<int key="NSPeriodicDelay">200</int>
+									<int key="NSPeriodicInterval">25</int>
+								</object>
+								<object class="NSButtonCell" id="69061500">
+									<int key="NSCellFlags">67239424</int>
+									<int key="NSCellFlags2">0</int>
+									<string key="NSContents">vfork()</string>
+									<reference key="NSSupport" ref="933596199"/>
+									<reference key="NSControlView" ref="1050951576"/>
+									<int key="NSTag">4</int>
+									<int key="NSButtonFlags">1211912703</int>
+									<int key="NSButtonFlags2">0</int>
+									<object class="NSImage" key="NSNormalImage">
+										<int key="NSImageFlags">549453824</int>
+										<string key="NSSize">{18, 18}</string>
+										<object class="NSMutableArray" key="NSReps">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSArray">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<integer value="0"/>
+												<object class="NSBitmapImageRep">
+													<object class="NSData" key="NSTIFFRepresentation">
+														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
+cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
+AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
+BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
+AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
+AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
+cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
+AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
+SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
+hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
+vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
+7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
+Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
+aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
+n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
+2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
+FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
+Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
+ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
+rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
+AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
+AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
+A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
+DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
+HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
+MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
+UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
+eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
+rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
+5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
+AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
+CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
+GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
+MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
+UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
+d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
+pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
+0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
+AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
+BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
+FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
+LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
+Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
+h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
+svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
+1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
+8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
+AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
+QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+										<reference key="NSColor" ref="30384615"/>
+									</object>
+									<reference key="NSAlternateImage" ref="619763889"/>
+									<int key="NSPeriodicDelay">400</int>
+									<int key="NSPeriodicInterval">75</int>
+								</object>
+							</object>
+							<string key="NSCellSize">{565, 18}</string>
+							<string key="NSIntercellSpacing">{4, 2}</string>
+							<int key="NSMatrixFlags">1151868928</int>
+							<string key="NSCellClass">NSActionCell</string>
+							<object class="NSButtonCell" key="NSProtoCell" id="709643899">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">0</int>
+								<string key="NSContents">Radio</string>
+								<reference key="NSSupport" ref="933596199"/>
+								<int key="NSButtonFlags">1211912703</int>
+								<int key="NSButtonFlags2">0</int>
+								<object class="NSImage" key="NSNormalImage">
+									<int key="NSImageFlags">549453824</int>
+									<string key="NSSize">{18, 18}</string>
+									<object class="NSMutableArray" key="NSReps">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSArray">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<integer value="0"/>
+											<object class="NSBitmapImageRep">
+												<object class="NSData" key="NSTIFFRepresentation">
+													<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
+												</object>
+											</object>
+										</object>
+									</object>
+									<reference key="NSColor" ref="30384615"/>
+								</object>
+								<reference key="NSAlternateImage" ref="619763889"/>
+								<int key="NSPeriodicDelay">400</int>
+								<int key="NSPeriodicInterval">75</int>
+							</object>
+							<reference key="NSSelectedCell" ref="943458284"/>
+							<reference key="NSBackgroundColor" ref="349124561"/>
+							<reference key="NSCellBackgroundColor" ref="195671423"/>
+							<reference key="NSFont" ref="933596199"/>
+						</object>
+						<object class="NSButton" id="512228208">
+							<reference key="NSNextResponder" ref="594333702"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{591, 59}, {178, 161}}</string>
+							<reference key="NSSuperview" ref="594333702"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSButtonCell" key="NSCell" id="69630975">
+								<int key="NSCellFlags">67239424</int>
+								<int key="NSCellFlags2">134217728</int>
+								<string key="NSContents">Go!</string>
+								<object class="NSFont" key="NSSupport">
+									<string key="NSName">LucidaGrande</string>
+									<double key="NSSize">10</double>
+									<int key="NSfFlags">16</int>
+								</object>
+								<reference key="NSControlView" ref="512228208"/>
+								<int key="NSButtonFlags">-2033434369</int>
+								<int key="NSButtonFlags2">130</int>
+								<string key="NSAlternateContents"/>
+								<string key="NSKeyEquivalent"/>
+								<int key="NSPeriodicDelay">400</int>
+								<int key="NSPeriodicInterval">75</int>
+							</object>
+						</object>
+					</object>
+					<string key="NSFrameSize">{787, 260}</string>
+					<reference key="NSSuperview"/>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
+				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performMiniaturize:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="683986939"/>
+					</object>
+					<int key="connectionID">37</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">arrangeInFront:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="164762492"/>
+					</object>
+					<int key="connectionID">39</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">print:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="302505815"/>
+					</object>
+					<int key="connectionID">86</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">runPageLayout:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="409810395"/>
+					</object>
+					<int key="connectionID">87</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showHelp:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="192540884"/>
+					</object>
+					<int key="connectionID">122</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clearRecentDocuments:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="85018532"/>
+					</object>
+					<int key="connectionID">127</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">terminate:</string>
+						<reference key="source" ref="870565383"/>
+						<reference key="destination" ref="887927135"/>
+					</object>
+					<int key="connectionID">139</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">orderFrontStandardAboutPanel:</string>
+						<reference key="source" ref="870565383"/>
+						<reference key="destination" ref="838552093"/>
+					</object>
+					<int key="connectionID">142</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">hideOtherApplications:</string>
+						<reference key="source" ref="870565383"/>
+						<reference key="destination" ref="216168366"/>
+					</object>
+					<int key="connectionID">146</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">hide:</string>
+						<reference key="source" ref="870565383"/>
+						<reference key="destination" ref="104472016"/>
+					</object>
+					<int key="connectionID">152</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">unhideAllApplications:</string>
+						<reference key="source" ref="870565383"/>
+						<reference key="destination" ref="667790509"/>
+					</object>
+					<int key="connectionID">153</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">cut:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="909447496"/>
+					</object>
+					<int key="connectionID">175</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">paste:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="84012734"/>
+					</object>
+					<int key="connectionID">176</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">redo:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="1001272176"/>
+					</object>
+					<int key="connectionID">178</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">selectAll:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="917620781"/>
+					</object>
+					<int key="connectionID">179</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">undo:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="284548410"/>
+					</object>
+					<int key="connectionID">180</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">copy:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="994487277"/>
+					</object>
+					<int key="connectionID">181</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showGuessPanel:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="438210660"/>
+					</object>
+					<int key="connectionID">188</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">checkSpelling:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="102172584"/>
+					</object>
+					<int key="connectionID">190</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleContinuousSpellChecking:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="540509341"/>
+					</object>
+					<int key="connectionID">192</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performClose:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="468594275"/>
+					</object>
+					<int key="connectionID">193</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">delete:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="512189403"/>
+					</object>
+					<int key="connectionID">195</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performZoom:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="548098734"/>
+					</object>
+					<int key="connectionID">198</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="203238834"/>
+					</object>
+					<int key="connectionID">199</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="861312964"/>
+					</object>
+					<int key="connectionID">200</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="743767160"/>
+					</object>
+					<int key="connectionID">201</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="180446588"/>
+					</object>
+					<int key="connectionID">202</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">centerSelectionInVisibleArea:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="731027425"/>
+					</object>
+					<int key="connectionID">203</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">pasteAsPlainText:</string>
+						<reference key="source" ref="442653439"/>
+						<reference key="destination" ref="182251545"/>
+					</object>
+					<int key="connectionID">205</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">crash:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="726278107"/>
+					</object>
+					<int key="connectionID">208</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">window_</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="341270541"/>
+					</object>
+					<int key="connectionID">209</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">crash:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="799567279"/>
+					</object>
+					<int key="connectionID">211</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">crash:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="27781390"/>
+					</object>
+					<int key="connectionID">213</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">forkTestOptions_</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="347013037"/>
+					</object>
+					<int key="connectionID">241</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestOptions:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="943458284"/>
+					</object>
+					<int key="connectionID">242</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestOptions:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="7590393"/>
+					</object>
+					<int key="connectionID">243</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestOptions:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="410017819"/>
+					</object>
+					<int key="connectionID">244</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestGo:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="512228208"/>
+					</object>
+					<int key="connectionID">250</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestOptions:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="1050951576"/>
+					</object>
+					<int key="connectionID">261</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">forkTestOptions:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="891367997"/>
+					</object>
+					<int key="connectionID">262</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showForkTestWindow:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="856256540"/>
+					</object>
+					<int key="connectionID">283</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">generateReportWithoutCrash:</string>
+						<reference key="source" ref="623097029"/>
+						<reference key="destination" ref="460755987"/>
+					</object>
+					<int key="connectionID">327</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="925601844"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="870565383"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="442653439"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="751079937"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Application</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">21</int>
+						<reference key="object" ref="341270541"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="814272478"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Window</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">2</int>
+						<reference key="object" ref="814272478"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="726278107"/>
+							<reference ref="799567279"/>
+							<reference ref="27781390"/>
+							<reference ref="856256540"/>
+							<reference ref="460755987"/>
+						</object>
+						<reference key="parent" ref="341270541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">206</int>
+						<reference key="object" ref="726278107"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="539552922"/>
+						</object>
+						<reference key="parent" ref="814272478"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">210</int>
+						<reference key="object" ref="799567279"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1010617379"/>
+						</object>
+						<reference key="parent" ref="814272478"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">212</int>
+						<reference key="object" ref="27781390"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="547901497"/>
+						</object>
+						<reference key="parent" ref="814272478"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">218</int>
+						<reference key="object" ref="856256540"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="353736234"/>
+						</object>
+						<reference key="parent" ref="814272478"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">325</int>
+						<reference key="object" ref="460755987"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="775425649"/>
+						</object>
+						<reference key="parent" ref="814272478"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">29</int>
+						<reference key="object" ref="695387251"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="764068863"/>
+							<reference ref="458207250"/>
+							<reference ref="369472335"/>
+							<reference ref="599772536"/>
+							<reference ref="542216986"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">MainMenu</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">19</int>
+						<reference key="object" ref="764068863"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="200536676"/>
+						</object>
+						<reference key="parent" ref="695387251"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">24</int>
+						<reference key="object" ref="200536676"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="164762492"/>
+							<reference ref="683986939"/>
+							<reference ref="297002686"/>
+							<reference ref="548098734"/>
+						</object>
+						<reference key="parent" ref="764068863"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">5</int>
+						<reference key="object" ref="164762492"/>
+						<reference key="parent" ref="200536676"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">23</int>
+						<reference key="object" ref="683986939"/>
+						<reference key="parent" ref="200536676"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">92</int>
+						<reference key="object" ref="297002686"/>
+						<reference key="parent" ref="200536676"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">197</int>
+						<reference key="object" ref="548098734"/>
+						<reference key="parent" ref="200536676"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">56</int>
+						<reference key="object" ref="458207250"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="753534561"/>
+						</object>
+						<reference key="parent" ref="695387251"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">57</int>
+						<reference key="object" ref="753534561"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="838552093"/>
+							<reference ref="443649494"/>
+							<reference ref="826764396"/>
+							<reference ref="104472016"/>
+							<reference ref="887927135"/>
+							<reference ref="217746140"/>
+							<reference ref="881859155"/>
+							<reference ref="216168366"/>
+							<reference ref="928933982"/>
+							<reference ref="667790509"/>
+							<reference ref="758254482"/>
+						</object>
+						<reference key="parent" ref="458207250"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">58</int>
+						<reference key="object" ref="838552093"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">129</int>
+						<reference key="object" ref="443649494"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">131</int>
+						<reference key="object" ref="826764396"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="276709607"/>
+						</object>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">130</int>
+						<reference key="object" ref="276709607"/>
+						<reference key="parent" ref="826764396"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">134</int>
+						<reference key="object" ref="104472016"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">136</int>
+						<reference key="object" ref="887927135"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">143</int>
+						<reference key="object" ref="217746140"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">144</int>
+						<reference key="object" ref="881859155"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">145</int>
+						<reference key="object" ref="216168366"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">149</int>
+						<reference key="object" ref="928933982"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">150</int>
+						<reference key="object" ref="667790509"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">196</int>
+						<reference key="object" ref="758254482"/>
+						<reference key="parent" ref="753534561"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">83</int>
+						<reference key="object" ref="369472335"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="902982238"/>
+						</object>
+						<reference key="parent" ref="695387251"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">81</int>
+						<reference key="object" ref="902982238"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="367379562"/>
+							<reference ref="468594275"/>
+							<reference ref="232609393"/>
+							<reference ref="479945444"/>
+							<reference ref="409810395"/>
+							<reference ref="302505815"/>
+							<reference ref="154948703"/>
+							<reference ref="976375553"/>
+							<reference ref="660391032"/>
+							<reference ref="885975128"/>
+							<reference ref="84883275"/>
+						</object>
+						<reference key="parent" ref="369472335"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">72</int>
+						<reference key="object" ref="367379562"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">73</int>
+						<reference key="object" ref="468594275"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">74</int>
+						<reference key="object" ref="232609393"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">75</int>
+						<reference key="object" ref="479945444"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">77</int>
+						<reference key="object" ref="409810395"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">78</int>
+						<reference key="object" ref="302505815"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">79</int>
+						<reference key="object" ref="154948703"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">80</int>
+						<reference key="object" ref="976375553"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">82</int>
+						<reference key="object" ref="660391032"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">112</int>
+						<reference key="object" ref="885975128"/>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">124</int>
+						<reference key="object" ref="84883275"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="693280130"/>
+						</object>
+						<reference key="parent" ref="902982238"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">125</int>
+						<reference key="object" ref="693280130"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="85018532"/>
+						</object>
+						<reference key="parent" ref="84883275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">126</int>
+						<reference key="object" ref="85018532"/>
+						<reference key="parent" ref="693280130"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">103</int>
+						<reference key="object" ref="599772536"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1066958924"/>
+						</object>
+						<reference key="parent" ref="695387251"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">106</int>
+						<reference key="object" ref="1066958924"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="192540884"/>
+						</object>
+						<reference key="parent" ref="599772536"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">111</int>
+						<reference key="object" ref="192540884"/>
+						<reference key="parent" ref="1066958924"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">163</int>
+						<reference key="object" ref="542216986"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1053284541"/>
+						</object>
+						<reference key="parent" ref="695387251"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">169</int>
+						<reference key="object" ref="1053284541"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="209744238"/>
+							<reference ref="994487277"/>
+							<reference ref="284548410"/>
+							<reference ref="909447496"/>
+							<reference ref="512189403"/>
+							<reference ref="153501847"/>
+							<reference ref="84012734"/>
+							<reference ref="917620781"/>
+							<reference ref="1001272176"/>
+							<reference ref="431895313"/>
+							<reference ref="61602259"/>
+							<reference ref="182251545"/>
+						</object>
+						<reference key="parent" ref="542216986"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">156</int>
+						<reference key="object" ref="209744238"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">157</int>
+						<reference key="object" ref="994487277"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">158</int>
+						<reference key="object" ref="284548410"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">160</int>
+						<reference key="object" ref="909447496"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">164</int>
+						<reference key="object" ref="512189403"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">168</int>
+						<reference key="object" ref="153501847"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="333484665"/>
+						</object>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">159</int>
+						<reference key="object" ref="333484665"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="203238834"/>
+							<reference ref="731027425"/>
+							<reference ref="180446588"/>
+							<reference ref="743767160"/>
+							<reference ref="861312964"/>
+						</object>
+						<reference key="parent" ref="153501847"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">154</int>
+						<reference key="object" ref="203238834"/>
+						<reference key="parent" ref="333484665"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">155</int>
+						<reference key="object" ref="731027425"/>
+						<reference key="parent" ref="333484665"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">161</int>
+						<reference key="object" ref="180446588"/>
+						<reference key="parent" ref="333484665"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">162</int>
+						<reference key="object" ref="743767160"/>
+						<reference key="parent" ref="333484665"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">167</int>
+						<reference key="object" ref="861312964"/>
+						<reference key="parent" ref="333484665"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">171</int>
+						<reference key="object" ref="84012734"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">172</int>
+						<reference key="object" ref="917620781"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">173</int>
+						<reference key="object" ref="1001272176"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">174</int>
+						<reference key="object" ref="431895313"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">184</int>
+						<reference key="object" ref="61602259"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="8174285"/>
+						</object>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">185</int>
+						<reference key="object" ref="8174285"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="438210660"/>
+							<reference ref="102172584"/>
+							<reference ref="540509341"/>
+						</object>
+						<reference key="parent" ref="61602259"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">187</int>
+						<reference key="object" ref="438210660"/>
+						<reference key="parent" ref="8174285"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">189</int>
+						<reference key="object" ref="102172584"/>
+						<reference key="parent" ref="8174285"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">191</int>
+						<reference key="object" ref="540509341"/>
+						<reference key="parent" ref="8174285"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">204</int>
+						<reference key="object" ref="182251545"/>
+						<reference key="parent" ref="1053284541"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">207</int>
+						<reference key="object" ref="623097029"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Controller</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">220</int>
+						<reference key="object" ref="347013037"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="594333702"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Window (Window)</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">221</int>
+						<reference key="object" ref="594333702"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="891367997"/>
+							<reference ref="7590393"/>
+							<reference ref="1050951576"/>
+							<reference ref="512228208"/>
+						</object>
+						<reference key="parent" ref="347013037"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">226</int>
+						<reference key="object" ref="891367997"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="410017819"/>
+							<reference ref="904578786"/>
+							<reference ref="971445237"/>
+							<reference ref="1072218638"/>
+						</object>
+						<reference key="parent" ref="594333702"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">227</int>
+						<reference key="object" ref="410017819"/>
+						<reference key="parent" ref="891367997"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">228</int>
+						<reference key="object" ref="904578786"/>
+						<reference key="parent" ref="891367997"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">272</int>
+						<reference key="object" ref="971445237"/>
+						<reference key="parent" ref="891367997"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">232</int>
+						<reference key="object" ref="7590393"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="808388382"/>
+							<reference ref="378736460"/>
+							<reference ref="251439646"/>
+							<reference ref="773902463"/>
+						</object>
+						<reference key="parent" ref="594333702"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">233</int>
+						<reference key="object" ref="808388382"/>
+						<reference key="parent" ref="7590393"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">234</int>
+						<reference key="object" ref="378736460"/>
+						<reference key="parent" ref="7590393"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">236</int>
+						<reference key="object" ref="251439646"/>
+						<reference key="parent" ref="7590393"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">237</int>
+						<reference key="object" ref="1050951576"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="943458284"/>
+							<reference ref="69061500"/>
+							<reference ref="709643899"/>
+						</object>
+						<reference key="parent" ref="594333702"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">238</int>
+						<reference key="object" ref="943458284"/>
+						<reference key="parent" ref="1050951576"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">239</int>
+						<reference key="object" ref="69061500"/>
+						<reference key="parent" ref="1050951576"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">248</int>
+						<reference key="object" ref="512228208"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="69630975"/>
+						</object>
+						<reference key="parent" ref="594333702"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">329</int>
+						<reference key="object" ref="539552922"/>
+						<reference key="parent" ref="726278107"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">330</int>
+						<reference key="object" ref="1010617379"/>
+						<reference key="parent" ref="799567279"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">331</int>
+						<reference key="object" ref="547901497"/>
+						<reference key="parent" ref="27781390"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">332</int>
+						<reference key="object" ref="353736234"/>
+						<reference key="parent" ref="856256540"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">333</int>
+						<reference key="object" ref="775425649"/>
+						<reference key="parent" ref="460755987"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">334</int>
+						<reference key="object" ref="69630975"/>
+						<reference key="parent" ref="512228208"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">335</int>
+						<reference key="object" ref="1072218638"/>
+						<reference key="parent" ref="891367997"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">336</int>
+						<reference key="object" ref="773902463"/>
+						<reference key="parent" ref="7590393"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">337</int>
+						<reference key="object" ref="709643899"/>
+						<reference key="parent" ref="1050951576"/>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="flattenedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-3.IBPluginDependency</string>
+					<string>-3.ImportedFromIB2</string>
+					<string>103.IBPluginDependency</string>
+					<string>103.ImportedFromIB2</string>
+					<string>106.IBPluginDependency</string>
+					<string>106.ImportedFromIB2</string>
+					<string>111.IBPluginDependency</string>
+					<string>111.ImportedFromIB2</string>
+					<string>112.IBPluginDependency</string>
+					<string>112.ImportedFromIB2</string>
+					<string>124.IBPluginDependency</string>
+					<string>124.ImportedFromIB2</string>
+					<string>125.IBPluginDependency</string>
+					<string>125.ImportedFromIB2</string>
+					<string>126.IBPluginDependency</string>
+					<string>126.ImportedFromIB2</string>
+					<string>129.IBPluginDependency</string>
+					<string>129.ImportedFromIB2</string>
+					<string>130.IBPluginDependency</string>
+					<string>130.ImportedFromIB2</string>
+					<string>131.IBPluginDependency</string>
+					<string>131.ImportedFromIB2</string>
+					<string>134.IBPluginDependency</string>
+					<string>134.ImportedFromIB2</string>
+					<string>136.IBPluginDependency</string>
+					<string>136.ImportedFromIB2</string>
+					<string>143.IBPluginDependency</string>
+					<string>143.ImportedFromIB2</string>
+					<string>144.IBPluginDependency</string>
+					<string>144.ImportedFromIB2</string>
+					<string>145.IBPluginDependency</string>
+					<string>145.ImportedFromIB2</string>
+					<string>149.IBPluginDependency</string>
+					<string>149.ImportedFromIB2</string>
+					<string>150.IBPluginDependency</string>
+					<string>150.ImportedFromIB2</string>
+					<string>154.IBPluginDependency</string>
+					<string>154.ImportedFromIB2</string>
+					<string>155.IBPluginDependency</string>
+					<string>155.ImportedFromIB2</string>
+					<string>156.IBPluginDependency</string>
+					<string>156.ImportedFromIB2</string>
+					<string>157.IBPluginDependency</string>
+					<string>157.ImportedFromIB2</string>
+					<string>158.IBPluginDependency</string>
+					<string>158.ImportedFromIB2</string>
+					<string>159.IBPluginDependency</string>
+					<string>159.ImportedFromIB2</string>
+					<string>160.IBPluginDependency</string>
+					<string>160.ImportedFromIB2</string>
+					<string>161.IBPluginDependency</string>
+					<string>161.ImportedFromIB2</string>
+					<string>162.IBPluginDependency</string>
+					<string>162.ImportedFromIB2</string>
+					<string>163.IBPluginDependency</string>
+					<string>163.ImportedFromIB2</string>
+					<string>164.IBPluginDependency</string>
+					<string>164.ImportedFromIB2</string>
+					<string>167.IBPluginDependency</string>
+					<string>167.ImportedFromIB2</string>
+					<string>168.IBPluginDependency</string>
+					<string>168.ImportedFromIB2</string>
+					<string>169.IBPluginDependency</string>
+					<string>169.ImportedFromIB2</string>
+					<string>171.IBPluginDependency</string>
+					<string>171.ImportedFromIB2</string>
+					<string>172.IBPluginDependency</string>
+					<string>172.ImportedFromIB2</string>
+					<string>173.IBPluginDependency</string>
+					<string>173.ImportedFromIB2</string>
+					<string>174.IBPluginDependency</string>
+					<string>174.ImportedFromIB2</string>
+					<string>184.IBPluginDependency</string>
+					<string>184.ImportedFromIB2</string>
+					<string>185.IBPluginDependency</string>
+					<string>185.ImportedFromIB2</string>
+					<string>187.IBPluginDependency</string>
+					<string>187.ImportedFromIB2</string>
+					<string>189.IBPluginDependency</string>
+					<string>189.ImportedFromIB2</string>
+					<string>19.IBPluginDependency</string>
+					<string>19.ImportedFromIB2</string>
+					<string>191.IBPluginDependency</string>
+					<string>191.ImportedFromIB2</string>
+					<string>196.IBPluginDependency</string>
+					<string>196.ImportedFromIB2</string>
+					<string>197.IBPluginDependency</string>
+					<string>197.ImportedFromIB2</string>
+					<string>2.IBPluginDependency</string>
+					<string>2.ImportedFromIB2</string>
+					<string>204.IBPluginDependency</string>
+					<string>204.ImportedFromIB2</string>
+					<string>206.IBPluginDependency</string>
+					<string>206.ImportedFromIB2</string>
+					<string>207.ImportedFromIB2</string>
+					<string>21.IBEditorWindowLastContentRect</string>
+					<string>21.IBPluginDependency</string>
+					<string>21.IBWindowTemplateEditedContentRect</string>
+					<string>21.ImportedFromIB2</string>
+					<string>21.windowTemplate.hasMinSize</string>
+					<string>21.windowTemplate.minSize</string>
+					<string>210.IBPluginDependency</string>
+					<string>210.ImportedFromIB2</string>
+					<string>212.IBPluginDependency</string>
+					<string>212.ImportedFromIB2</string>
+					<string>218.IBPluginDependency</string>
+					<string>218.ImportedFromIB2</string>
+					<string>220.IBEditorWindowLastContentRect</string>
+					<string>220.IBPluginDependency</string>
+					<string>220.IBWindowTemplateEditedContentRect</string>
+					<string>220.ImportedFromIB2</string>
+					<string>221.IBPluginDependency</string>
+					<string>221.ImportedFromIB2</string>
+					<string>226.IBPluginDependency</string>
+					<string>226.ImportedFromIB2</string>
+					<string>227.IBPluginDependency</string>
+					<string>227.ImportedFromIB2</string>
+					<string>228.IBPluginDependency</string>
+					<string>228.ImportedFromIB2</string>
+					<string>23.IBPluginDependency</string>
+					<string>23.ImportedFromIB2</string>
+					<string>232.IBPluginDependency</string>
+					<string>232.ImportedFromIB2</string>
+					<string>233.IBPluginDependency</string>
+					<string>233.ImportedFromIB2</string>
+					<string>234.IBPluginDependency</string>
+					<string>234.ImportedFromIB2</string>
+					<string>236.IBPluginDependency</string>
+					<string>236.ImportedFromIB2</string>
+					<string>237.IBPluginDependency</string>
+					<string>237.ImportedFromIB2</string>
+					<string>238.IBPluginDependency</string>
+					<string>238.ImportedFromIB2</string>
+					<string>239.IBPluginDependency</string>
+					<string>239.ImportedFromIB2</string>
+					<string>24.IBPluginDependency</string>
+					<string>24.ImportedFromIB2</string>
+					<string>248.IBPluginDependency</string>
+					<string>248.ImportedFromIB2</string>
+					<string>272.IBPluginDependency</string>
+					<string>272.ImportedFromIB2</string>
+					<string>29.IBEditorWindowLastContentRect</string>
+					<string>29.IBPluginDependency</string>
+					<string>29.ImportedFromIB2</string>
+					<string>325.IBPluginDependency</string>
+					<string>325.ImportedFromIB2</string>
+					<string>329.IBPluginDependency</string>
+					<string>330.IBPluginDependency</string>
+					<string>331.IBPluginDependency</string>
+					<string>332.IBPluginDependency</string>
+					<string>333.IBPluginDependency</string>
+					<string>334.IBPluginDependency</string>
+					<string>335.IBPluginDependency</string>
+					<string>336.IBPluginDependency</string>
+					<string>337.IBPluginDependency</string>
+					<string>5.IBPluginDependency</string>
+					<string>5.ImportedFromIB2</string>
+					<string>56.IBPluginDependency</string>
+					<string>56.ImportedFromIB2</string>
+					<string>57.IBPluginDependency</string>
+					<string>57.ImportedFromIB2</string>
+					<string>58.IBPluginDependency</string>
+					<string>58.ImportedFromIB2</string>
+					<string>72.IBPluginDependency</string>
+					<string>72.ImportedFromIB2</string>
+					<string>73.IBPluginDependency</string>
+					<string>73.ImportedFromIB2</string>
+					<string>74.IBPluginDependency</string>
+					<string>74.ImportedFromIB2</string>
+					<string>75.IBPluginDependency</string>
+					<string>75.ImportedFromIB2</string>
+					<string>77.IBPluginDependency</string>
+					<string>77.ImportedFromIB2</string>
+					<string>78.IBPluginDependency</string>
+					<string>78.ImportedFromIB2</string>
+					<string>79.IBPluginDependency</string>
+					<string>79.ImportedFromIB2</string>
+					<string>80.IBPluginDependency</string>
+					<string>80.ImportedFromIB2</string>
+					<string>81.IBPluginDependency</string>
+					<string>81.ImportedFromIB2</string>
+					<string>82.IBPluginDependency</string>
+					<string>82.ImportedFromIB2</string>
+					<string>83.IBPluginDependency</string>
+					<string>83.ImportedFromIB2</string>
+					<string>92.IBPluginDependency</string>
+					<string>92.ImportedFromIB2</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<string>{{510, 1250}, {320, 188}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{510, 1250}, {320, 188}}</string>
+					<boolean value="YES"/>
+					<boolean value="YES"/>
+					<string>{213, 107}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>{{-55, 1287}, {787, 260}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{-55, 1287}, {787, 260}}</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>{{0, 1114}, {362, 20}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<boolean value="YES"/>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="activeLocalization"/>
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="sourceID"/>
+			<int key="maxID">337</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">Controller</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>crash:</string>
+							<string>forkTestGo:</string>
+							<string>forkTestOptions:</string>
+							<string>generateReportWithoutCrash:</string>
+							<string>showForkTestWindow:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>crash:</string>
+							<string>forkTestGo:</string>
+							<string>forkTestOptions:</string>
+							<string>generateReportWithoutCrash:</string>
+							<string>showForkTestWindow:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">crash:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">forkTestGo:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">forkTestOptions:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">generateReportWithoutCrash:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">showForkTestWindow:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>forkTestOptions_</string>
+							<string>window_</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSWindow</string>
+							<string>NSWindow</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>forkTestOptions_</string>
+							<string>window_</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">forkTestOptions_</string>
+								<string key="candidateClassName">NSWindow</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">window_</string>
+								<string key="candidateClassName">NSWindow</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">testapp/Controller.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">Controller</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">FirstResponder</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSActionCell</string>
+					<string key="superclassName">NSCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<string key="superclassName">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="785325875">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="806686590">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="301712406">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSBrowser</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSButton</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSButtonCell</string>
+					<string key="superclassName">NSActionCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSCell</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSControl</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="787388657">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocument</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">printDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">revertDocumentToSaved:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">runPageLayout:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentAs:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentTo:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocument</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocumentController</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>clearRecentDocuments:</string>
+							<string>newDocument:</string>
+							<string>openDocument:</string>
+							<string>saveAllDocuments:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>clearRecentDocuments:</string>
+							<string>newDocument:</string>
+							<string>openDocument:</string>
+							<string>saveAllDocuments:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">clearRecentDocuments:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">newDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">openDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveAllDocuments:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSFormatter</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMatrix</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenu</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="136824428">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenuItem</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="171959132">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMovieView</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="785325875"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="806686590"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="301712406"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="787388657"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="136824428"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="521965700">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="104369095">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSResponder</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTableView</string>
+					<string key="superclassName">NSControl</string>
+					<reference key="sourceIdentifier" ref="521965700"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSText</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<reference key="sourceIdentifier" ref="171959132"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<string key="superclassName">NSResponder</string>
+					<reference key="sourceIdentifier" ref="104369095"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<string key="superclassName">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1050" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1050" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+			<integer value="3000" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<string key="IBDocument.LastKnownRelativeProjectPath">../../Breakpad.xcodeproj</string>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>NSMenuCheckmark</string>
+				<string>NSMenuMixedState</string>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>{9, 8}</string>
+				<string>{7, 2}</string>
+			</object>
+		</object>
+	</data>
+</archive>
diff --git a/src/client/mac/testapp/Info.plist b/src/client/mac/testapp/Info.plist
new file mode 100644
index 0000000..6094ec6
--- /dev/null
+++ b/src/client/mac/testapp/Info.plist
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string>bomb</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.Google.BreakpadTest</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+	<key>BreakpadProductDisplay</key>
+	<string>Breakpad Tester</string>
+	<key>BreakpadProduct</key>
+	<string>Breakpad_Tester</string>
+	<key>BreakpadVersion</key>
+	<string>1.2.3.4</string>
+	<key>BreakpadReportInterval</key>
+	<string>10</string>
+	<key>BreakpadSkipConfirm</key>
+	<string>NO</string>
+	<key>BreakpadSendAndExit</key>
+	<string>YES</string>
+	<key>BreakpadRequestEmail</key>
+	<string>YES</string>
+	<key>BreakpadRequestComments</key>
+	<string>YES</string>
+	<key>BreakpadVendor</key>
+	<string>Foo Bar Corp, Incorporated, LTD, LLC</string>
+	<key>BreakpadServerParameters</key>
+	<dict>
+	  <key>Param1</key>
+	  <string>Value1</string>
+	  <key>Param2</key>
+	  <string>Value2</string>
+	</dict>
+	<key>LSUIElement</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/src/client/mac/testapp/TestClass.h b/src/client/mac/testapp/TestClass.h
new file mode 100644
index 0000000..0a6d736
--- /dev/null
+++ b/src/client/mac/testapp/TestClass.h
@@ -0,0 +1,37 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Cocoa/Cocoa.h>
+
+@interface TestClass : NSObject {
+}
+
+- (void)wait;
+
+@end
diff --git a/src/client/mac/testapp/TestClass.mm b/src/client/mac/testapp/TestClass.mm
new file mode 100644
index 0000000..6e6a883
--- /dev/null
+++ b/src/client/mac/testapp/TestClass.mm
@@ -0,0 +1,95 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <unistd.h>
+
+#import "TestClass.h"
+
+struct AStruct {
+  int x;
+  float y;
+  double z;
+};
+
+class InternalTestClass {
+ public:
+  InternalTestClass(int a) : a_(a) {}
+  ~InternalTestClass() {}
+
+  void snooze(float a);
+  void snooze(int a);
+  int snooze(int a, float b);
+
+ protected:
+  int a_;
+  AStruct s_;
+
+  static void InternalFunction(AStruct &s);
+  static float kStaticFloatValue;
+};
+
+void InternalTestClass::snooze(float a) {
+  InternalFunction(s_);
+  sleep(a_ * a);
+}
+
+void InternalTestClass::snooze(int a) {
+  InternalFunction(s_);
+  sleep(a_ * a);
+}
+
+int InternalTestClass::snooze(int a, float b) {
+  InternalFunction(s_);
+  sleep(a_ * a * b);
+
+  return 33;
+}
+
+void InternalTestClass::InternalFunction(AStruct &s) {
+  s.x = InternalTestClass::kStaticFloatValue;
+}
+
+float InternalTestClass::kStaticFloatValue = 42;
+
+static float PlainOldFunction() {
+  return 3.14145f;
+}
+
+@implementation TestClass
+
+- (void)wait {
+  InternalTestClass t(10);
+  float z = PlainOldFunction();
+
+  while (1) {
+    t.snooze(z);
+  }
+}
+
+@end
diff --git a/src/client/mac/testapp/bomb.icns b/src/client/mac/testapp/bomb.icns
new file mode 100644
index 0000000..c360dbf
--- /dev/null
+++ b/src/client/mac/testapp/bomb.icns
Binary files differ
diff --git a/src/client/mac/testapp/crashInMain b/src/client/mac/testapp/crashInMain
new file mode 100755
index 0000000..03bb317
--- /dev/null
+++ b/src/client/mac/testapp/crashInMain
Binary files differ
diff --git a/src/client/mac/testapp/crashduringload b/src/client/mac/testapp/crashduringload
new file mode 100755
index 0000000..5ca9deb
--- /dev/null
+++ b/src/client/mac/testapp/crashduringload
Binary files differ
diff --git a/src/client/mac/testapp/main.m b/src/client/mac/testapp/main.m
new file mode 100644
index 0000000..de67332
--- /dev/null
+++ b/src/client/mac/testapp/main.m
@@ -0,0 +1,34 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Cocoa/Cocoa.h>
+
+int main(int argc, char *argv[]) {
+  return NSApplicationMain(argc, (const char**)argv);
+}
diff --git a/src/client/mac/tests/BreakpadFramework_Test.mm b/src/client/mac/tests/BreakpadFramework_Test.mm
new file mode 100644
index 0000000..2ea103c
--- /dev/null
+++ b/src/client/mac/tests/BreakpadFramework_Test.mm
@@ -0,0 +1,217 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// BreakpadFramework_Test.mm
+// Test case file for Breakpad.h/mm.
+//
+
+#import "GTMSenTestCase.h"
+#import "Breakpad.h"
+
+#include <mach/mach.h>
+
+@interface BreakpadFramework_Test : GTMTestCase {
+ @private
+  int last_exception_code_;
+  int last_exception_type_;
+  mach_port_t last_exception_thread_;
+  // We're not using Obj-C BOOL because we need to interop with
+  // Breakpad's callback.
+  bool shouldHandleException_;
+}
+
+// This method is used by a callback used by test cases to determine
+// whether to return true or false to Breakpad when handling an
+// exception.
+- (bool)shouldHandleException;
+// This method returns a minimal dictionary that has what
+// Breakpad needs to initialize.
+- (NSMutableDictionary *)breakpadInitializationDictionary;
+// This method is used by the exception handling callback
+// to communicate to test cases the properites of the last
+// exception.
+- (void)setLastExceptionType:(int)type andCode:(int)code
+                   andThread:(mach_port_t)thread;
+@end
+
+// Callback for Breakpad exceptions
+bool myBreakpadCallback(int exception_type,
+                        int exception_code,
+                        mach_port_t crashing_thread,
+                        void *context);
+
+bool myBreakpadCallback(int exception_type,
+                        int exception_code,
+                        mach_port_t crashing_thread,
+                        void *context) {
+  BreakpadFramework_Test *testCaseClass =
+    (BreakpadFramework_Test *)context;
+  [testCaseClass setLastExceptionType:exception_type
+                              andCode:exception_code
+                            andThread:crashing_thread];
+  bool shouldHandleException =
+    [testCaseClass shouldHandleException];
+  NSLog(@"Callback returning %d", shouldHandleException);
+  return shouldHandleException;
+}
+const int kNoLastExceptionCode = -1;
+const int kNoLastExceptionType = -1;
+const mach_port_t kNoLastExceptionThread = MACH_PORT_NULL;
+
+@implementation BreakpadFramework_Test
+- (void) initializeExceptionStateVariables {
+  last_exception_code_ = kNoLastExceptionCode;
+  last_exception_type_ = kNoLastExceptionType;
+  last_exception_thread_ = kNoLastExceptionThread;
+}
+
+- (NSMutableDictionary *)breakpadInitializationDictionary {
+  NSMutableDictionary *breakpadParams =
+    [NSMutableDictionary dictionaryWithCapacity:3];
+
+  [breakpadParams setObject:@"UnitTests" forKey:@BREAKPAD_PRODUCT];
+  [breakpadParams setObject:@"1.0" forKey:@BREAKPAD_VERSION];
+  [breakpadParams setObject:@"http://staging" forKey:@BREAKPAD_URL];
+  return breakpadParams;
+}
+
+- (bool)shouldHandleException {
+  return shouldHandleException_;
+}
+
+- (void)setLastExceptionType:(int)type 
+		     andCode:(int)code
+                   andThread:(mach_port_t)thread {
+  last_exception_type_ = type;
+  last_exception_code_ = code;
+  last_exception_thread_ = thread;
+}
+
+// Test that the parameters mark required actually enable Breakpad to
+// be initialized.
+- (void)testBreakpadInstantiationWithRequiredParameters {
+  BreakpadRef b = BreakpadCreate([self breakpadInitializationDictionary]);
+  STAssertNotNULL(b, @"BreakpadCreate failed with required parameters");
+  BreakpadRelease(b);
+}
+
+// Test that Breakpad fails to initialize cleanly when required
+// parameters are not present.
+- (void)testBreakpadInstantiationWithoutRequiredParameters {
+  NSMutableDictionary *breakpadDictionary =
+    [self breakpadInitializationDictionary];
+
+  // Skip setting version, so that BreakpadCreate fails.
+  [breakpadDictionary removeObjectForKey:@BREAKPAD_VERSION];
+  BreakpadRef b = BreakpadCreate(breakpadDictionary);
+  STAssertNULL(b, @"BreakpadCreate did not fail when missing a required"
+               " parameter!");
+
+  breakpadDictionary = [self breakpadInitializationDictionary];
+  // Now test with no product
+  [breakpadDictionary removeObjectForKey:@BREAKPAD_PRODUCT];
+  b = BreakpadCreate(breakpadDictionary);
+  STAssertNULL(b, @"BreakpadCreate did not fail when missing a required"
+               " parameter!");
+
+  breakpadDictionary = [self breakpadInitializationDictionary];
+  // Now test with no URL
+  [breakpadDictionary removeObjectForKey:@BREAKPAD_URL];
+  b = BreakpadCreate(breakpadDictionary);
+  STAssertNULL(b, @"BreakpadCreate did not fail when missing a required"
+               " parameter!");
+  BreakpadRelease(b);
+}
+
+// Test to ensure that when we call BreakpadAddUploadParameter,
+// it's added to the dictionary correctly(this test depends on
+// some internal details of Breakpad, namely, the special prefix
+// that it uses to figure out which key/value pairs to upload).
+- (void)testAddingBreakpadServerVariable {
+  NSMutableDictionary *breakpadDictionary =
+    [self breakpadInitializationDictionary];
+
+  BreakpadRef b = BreakpadCreate(breakpadDictionary);
+  STAssertNotNULL(b, @"BreakpadCreate failed with valid dictionary!");
+
+  BreakpadAddUploadParameter(b,
+                             @"key",
+                             @"value");
+
+  // Test that it did not add the key/value directly, e.g. without
+  // prepending the key with the prefix.
+  STAssertNil(BreakpadKeyValue(b, @"key"),
+              @"AddUploadParameter added key directly to dictionary"
+              " instead of prepending it!");
+
+  NSString *prependedKeyname =
+    [@BREAKPAD_SERVER_PARAMETER_PREFIX stringByAppendingString:@"key"];
+    
+  STAssertEqualStrings(BreakpadKeyValue(b, prependedKeyname),
+                       @"value",
+                       @"Calling BreakpadAddUploadParameter did not prepend "
+                       "key name");
+  BreakpadRelease(b);
+}
+
+// Test that when we do on-demand minidump generation,
+// the exception code/type/thread are set properly.
+- (void)testFilterCallbackReturnsFalse {
+  NSMutableDictionary *breakpadDictionary =
+    [self breakpadInitializationDictionary];
+
+  BreakpadRef b = BreakpadCreate(breakpadDictionary);
+  STAssertNotNULL(b, @"BreakpadCreate failed with valid dictionary!");
+  BreakpadSetFilterCallback(b, &myBreakpadCallback, self);
+
+  // This causes the callback to return false, meaning
+  // Breakpad won't take the exception
+  shouldHandleException_ = false;
+
+  [self initializeExceptionStateVariables];
+  STAssertEquals(last_exception_type_, kNoLastExceptionType,
+                 @"Last exception type not initialized correctly.");
+  STAssertEquals(last_exception_code_, kNoLastExceptionCode,
+                 @"Last exception code not initialized correctly.");
+  STAssertEquals(last_exception_thread_, kNoLastExceptionThread,
+                 @"Last exception thread is not initialized correctly.");
+
+  // Cause Breakpad's exception handler to be invoked.
+  BreakpadGenerateAndSendReport(b);
+
+  STAssertEquals(last_exception_type_, 0,
+                 @"Last exception type is not 0 for on demand");
+  STAssertEquals(last_exception_code_, 0,
+                 @"Last exception code is not 0 for on demand");
+  STAssertEquals(last_exception_thread_, mach_thread_self(),
+                 @"Last exception thread is not mach_thread_self() "
+                 "for on demand");
+}
+
+@end
diff --git a/src/client/mac/tests/crash_generation_server_test.cc b/src/client/mac/tests/crash_generation_server_test.cc
new file mode 100644
index 0000000..128f25c
--- /dev/null
+++ b/src/client/mac/tests/crash_generation_server_test.cc
@@ -0,0 +1,398 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// crash_generation_server_test.cc
+// Unit tests for CrashGenerationServer
+
+#include <dirent.h>
+#include <glob.h>
+#include <stdint.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/mac/crash_generation/client_info.h"
+#include "client/mac/crash_generation/crash_generation_client.h"
+#include "client/mac/crash_generation/crash_generation_server.h"
+#include "client/mac/handler/exception_handler.h"
+#include "client/mac/tests/spawn_child_process.h"
+#include "common/tests/auto_tempdir.h"
+#include "google_breakpad/processor/minidump.h"
+
+namespace google_breakpad {
+// This acts as the log sink for INFO logging from the processor
+// logging code. The logging output confuses XCode and makes it think
+// there are unit test failures. testlogging.h handles the overriding.
+std::ostringstream info_log;
+}
+
+namespace {
+using std::string;
+using google_breakpad::AutoTempDir;
+using google_breakpad::ClientInfo;
+using google_breakpad::CrashGenerationClient;
+using google_breakpad::CrashGenerationServer;
+using google_breakpad::ExceptionHandler;
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpContext;
+using google_breakpad::MinidumpException;
+using google_breakpad::MinidumpModule;
+using google_breakpad::MinidumpModuleList;
+using google_breakpad::MinidumpSystemInfo;
+using google_breakpad::MinidumpThread;
+using google_breakpad::MinidumpThreadList;
+using testing::Test;
+using namespace google_breakpad_test;
+
+class CrashGenerationServerTest : public Test {
+public:
+  // The port name to receive messages on
+  char mach_port_name[128];
+  // Filename of the last dump that was generated
+  string last_dump_name;
+  // PID of the child process
+  pid_t child_pid;
+  // A temp dir
+  AutoTempDir temp_dir;
+  // Counter just to ensure that we don't hit the same port again
+  static int i;
+  bool filter_callback_called;
+
+  void SetUp() {
+    sprintf(mach_port_name,
+            "com.google.breakpad.ServerTest.%d.%d", getpid(),
+            CrashGenerationServerTest::i++);
+    child_pid = (pid_t)-1;
+    filter_callback_called = false;
+  }
+};
+int CrashGenerationServerTest::i = 0;
+
+// Test that starting and stopping a server works
+TEST_F(CrashGenerationServerTest, testStartStopServer) {
+  CrashGenerationServer server(mach_port_name,
+                               NULL,  // filter callback
+                               NULL,  // filter context
+                               NULL,  // dump callback
+                               NULL,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               false, // generate dumps
+                               ""); // dump path
+  ASSERT_TRUE(server.Start());
+  ASSERT_TRUE(server.Stop());
+}
+
+// Test that requesting a dump via CrashGenerationClient works
+// Test without actually dumping
+TEST_F(CrashGenerationServerTest, testRequestDumpNoDump) {
+  CrashGenerationServer server(mach_port_name,
+                               NULL,  // filter callback
+                               NULL,  // filter context
+                               NULL,  // dump callback
+                               NULL,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               false, // don't generate dumps
+                               temp_dir.path()); // dump path
+  ASSERT_TRUE(server.Start());
+
+  pid_t pid = fork();
+  ASSERT_NE(-1, pid);
+  if (pid == 0) {
+    CrashGenerationClient client(mach_port_name);
+    bool result = client.RequestDump();
+    exit(result ? 0 : 1);
+  }
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_TRUE(WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+  EXPECT_TRUE(server.Stop());
+  // check that no minidump was written
+  string pattern = temp_dir.path() + "/*";
+  glob_t dirContents;
+  ret = glob(pattern.c_str(), GLOB_NOSORT, NULL, &dirContents);
+  EXPECT_EQ(GLOB_NOMATCH, ret);
+  if (ret != GLOB_NOMATCH)
+    globfree(&dirContents);
+}
+
+void dumpCallback(void* context, const ClientInfo& client_info,
+                  const std::string& file_path) {
+  if (context) {
+    CrashGenerationServerTest* self =
+        reinterpret_cast<CrashGenerationServerTest*>(context);
+    if (!file_path.empty())
+      self->last_dump_name = file_path;
+    self->child_pid = client_info.pid();
+  }
+}
+
+void* RequestDump(void* context) {
+  CrashGenerationClient client((const char*)context);
+  bool result = client.RequestDump();
+  return (void*)(result ? 0 : 1);
+}
+
+// Test that actually writing a minidump works
+TEST_F(CrashGenerationServerTest, testRequestDump) {
+  CrashGenerationServer server(mach_port_name,
+                               NULL,  // filter callback
+                               NULL,  // filter context
+                               dumpCallback,  // dump callback
+                               this,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               true, //  generate dumps
+                               temp_dir.path()); // dump path
+  ASSERT_TRUE(server.Start());
+
+  pid_t pid = fork();
+  ASSERT_NE(-1, pid);
+  if (pid == 0) {
+    // Have to spawn off a separate thread to request the dump,
+    // because MinidumpGenerator assumes the handler thread is not
+    // the only thread
+    pthread_t thread;
+    if (pthread_create(&thread, NULL, RequestDump, (void*)mach_port_name) != 0)
+      exit(1);
+    void* result;
+    pthread_join(thread, &result);
+    exit(reinterpret_cast<intptr_t>(result));
+  }
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_TRUE(WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+  EXPECT_TRUE(server.Stop());
+  // check that minidump was written
+  ASSERT_FALSE(last_dump_name.empty());
+  struct stat st;
+  EXPECT_EQ(0, stat(last_dump_name.c_str(), &st));
+  EXPECT_LT(0, st.st_size);
+  // check client's PID
+  ASSERT_EQ(pid, child_pid);
+}
+
+static void Crasher() {
+  int* a = (int*)0x42;
+
+  fprintf(stdout, "Going to crash...\n");
+  fprintf(stdout, "A = %d", *a);
+}
+
+// Test that crashing a child process with an OOP ExceptionHandler installed
+// results in a minidump being written by the CrashGenerationServer in
+// the parent.
+TEST_F(CrashGenerationServerTest, testChildProcessCrash) {
+  CrashGenerationServer server(mach_port_name,
+                               NULL,  // filter callback
+                               NULL,  // filter context
+                               dumpCallback,  // dump callback
+                               this,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               true, //  generate dumps
+                               temp_dir.path()); // dump path
+  ASSERT_TRUE(server.Start());
+
+  pid_t pid = fork();
+  ASSERT_NE(-1, pid);
+  if (pid == 0) {
+    // Instantiate an OOP exception handler.
+    ExceptionHandler eh("", NULL, NULL, NULL, true, mach_port_name);
+    Crasher();
+    // not reached
+    exit(0);
+  }
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_FALSE(WIFEXITED(ret));
+  EXPECT_TRUE(server.Stop());
+  // check that minidump was written
+  ASSERT_FALSE(last_dump_name.empty());
+  struct stat st;
+  EXPECT_EQ(0, stat(last_dump_name.c_str(), &st));
+  EXPECT_LT(0, st.st_size);
+
+  // Read the minidump, sanity check some data.
+  Minidump minidump(last_dump_name.c_str());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpSystemInfo* system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(system_info);
+  const MDRawSystemInfo* raw_info = system_info->system_info();
+  ASSERT_TRUE(raw_info);
+  EXPECT_EQ(kNativeArchitecture, raw_info->processor_architecture);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list);
+  ASSERT_EQ((unsigned int)1, thread_list->thread_count());
+
+  MinidumpThread* main_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(main_thread);
+  MinidumpContext* context = main_thread->GetContext();
+  ASSERT_TRUE(context);
+  EXPECT_EQ(kNativeContext, context->GetContextCPU());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* main_module = module_list->GetMainModule();
+  ASSERT_TRUE(main_module);
+  EXPECT_EQ(GetExecutablePath(), main_module->code_file());
+}
+
+#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6) && \
+  (defined(__x86_64__) || defined(__i386__))
+// Test that crashing a child process of a different architecture
+// produces a valid minidump.
+TEST_F(CrashGenerationServerTest, testChildProcessCrashCrossArchitecture) {
+  CrashGenerationServer server(mach_port_name,
+                               NULL,  // filter callback
+                               NULL,  // filter context
+                               dumpCallback,  // dump callback
+                               this,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               true, //  generate dumps
+                               temp_dir.path()); // dump path
+  ASSERT_TRUE(server.Start());
+
+  // Spawn a child process
+  string helper_path = GetHelperPath();
+  const char* argv[] = {
+    helper_path.c_str(),
+    "crash",
+    mach_port_name,
+    NULL
+  };
+  pid_t pid = spawn_child_process(argv);
+  ASSERT_NE(-1, pid);
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_FALSE(WIFEXITED(ret));
+  EXPECT_TRUE(server.Stop());
+  // check that minidump was written
+  ASSERT_FALSE(last_dump_name.empty());
+  struct stat st;
+  EXPECT_EQ(0, stat(last_dump_name.c_str(), &st));
+  EXPECT_LT(0, st.st_size);
+
+const MDCPUArchitecture kExpectedArchitecture =
+#if defined(__x86_64__)
+  MD_CPU_ARCHITECTURE_X86
+#elif defined(__i386__)
+  MD_CPU_ARCHITECTURE_AMD64
+#endif
+  ;
+const uint32_t kExpectedContext =
+#if defined(__i386__)
+  MD_CONTEXT_AMD64
+#elif defined(__x86_64__)
+  MD_CONTEXT_X86
+#endif
+  ;
+
+  // Read the minidump, sanity check some data.
+  Minidump minidump(last_dump_name.c_str());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpSystemInfo* system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(system_info);
+  const MDRawSystemInfo* raw_info = system_info->system_info();
+  ASSERT_TRUE(raw_info);
+  EXPECT_EQ(kExpectedArchitecture, raw_info->processor_architecture);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list);
+  ASSERT_EQ((unsigned int)1, thread_list->thread_count());
+
+  MinidumpThread* main_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(main_thread);
+  MinidumpContext* context = main_thread->GetContext();
+  ASSERT_TRUE(context);
+  EXPECT_EQ(kExpectedContext, context->GetContextCPU());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* main_module = module_list->GetMainModule();
+  ASSERT_TRUE(main_module);
+  EXPECT_EQ(helper_path, main_module->code_file());
+}
+#endif
+
+bool filter_callback(void* context) {
+  CrashGenerationServerTest* self =
+    reinterpret_cast<CrashGenerationServerTest*>(context);
+  self->filter_callback_called = true;
+  // veto dump generation
+  return false;
+}
+
+// Test that a filter callback can veto minidump writing.
+TEST_F(CrashGenerationServerTest, testFilter) {
+  CrashGenerationServer server(mach_port_name,
+                               filter_callback,  // filter callback
+                               this,            // filter context
+                               dumpCallback,  // dump callback
+                               this,  // dump context
+                               NULL,  // exit callback
+                               NULL,  // exit context
+                               true, //  generate dumps
+                               temp_dir.path()); // dump path
+  ASSERT_TRUE(server.Start());
+
+  pid_t pid = fork();
+  ASSERT_NE(-1, pid);
+  if (pid == 0) {
+    // Instantiate an OOP exception handler.
+    ExceptionHandler eh("", NULL, NULL, NULL, true, mach_port_name);
+    Crasher();
+    // not reached
+    exit(0);
+  }
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_FALSE(WIFEXITED(ret));
+  EXPECT_TRUE(server.Stop());
+
+  // check that no minidump was written
+  EXPECT_TRUE(last_dump_name.empty());
+  EXPECT_TRUE(filter_callback_called);
+}
+
+}  // namespace
diff --git a/src/client/mac/tests/exception_handler_test.cc b/src/client/mac/tests/exception_handler_test.cc
new file mode 100644
index 0000000..50f03f8
--- /dev/null
+++ b/src/client/mac/tests/exception_handler_test.cc
@@ -0,0 +1,714 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exception_handler_test.cc: Unit tests for google_breakpad::ExceptionHandler
+
+#include <pthread.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "breakpad_googletest_includes.h"
+#include "client/mac/handler/exception_handler.h"
+#include "common/linux/ignore_ret.h"
+#include "common/mac/MachIPC.h"
+#include "common/tests/auto_tempdir.h"
+#include "google_breakpad/processor/minidump.h"
+
+namespace google_breakpad {
+// This acts as the log sink for INFO logging from the processor
+// logging code. The logging output confuses XCode and makes it think
+// there are unit test failures. testlogging.h handles the overriding.
+std::ostringstream info_log;
+}
+
+namespace {
+using std::string;
+using google_breakpad::AutoTempDir;
+using google_breakpad::ExceptionHandler;
+using google_breakpad::MachPortSender;
+using google_breakpad::MachReceiveMessage;
+using google_breakpad::MachSendMessage;
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpContext;
+using google_breakpad::MinidumpException;
+using google_breakpad::MinidumpMemoryList;
+using google_breakpad::MinidumpMemoryRegion;
+using google_breakpad::ReceivePort;
+using testing::Test;
+
+class ExceptionHandlerTest : public Test {
+ public:
+  void InProcessCrash(bool aborting);
+  AutoTempDir tempDir;
+  string lastDumpName;
+};
+
+static void Crasher() {
+  int* a = (int*)0x42;
+
+  fprintf(stdout, "Going to crash...\n");
+  fprintf(stdout, "A = %d", *a);
+}
+
+static void AbortCrasher() {
+  fprintf(stdout, "Going to crash...\n");
+  abort();
+}
+
+static void SoonToCrash(void(*crasher)()) {
+  crasher();
+}
+
+static bool MDCallback(const char* dump_dir, const char* file_name,
+                       void* context, bool success) {
+  string path(dump_dir);
+  path.append("/");
+  path.append(file_name);
+  path.append(".dmp");
+
+  int fd = *reinterpret_cast<int*>(context);
+  IGNORE_RET(write(fd, path.c_str(), path.length() + 1));
+  close(fd);
+  exit(0);
+  // not reached
+  return true;
+}
+
+void ExceptionHandlerTest::InProcessCrash(bool aborting) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+  // Fork off a child process so it can crash.
+  pid_t pid = fork();
+  if (pid == 0) {
+    // In the child process.
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+    // crash
+    SoonToCrash(aborting ? &AbortCrasher : &Crasher);
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  ASSERT_TRUE(exception);
+
+  const MDRawExceptionStream* raw_exception = exception->exception();
+  ASSERT_TRUE(raw_exception);
+
+  if (aborting) {
+    EXPECT_EQ(MD_EXCEPTION_MAC_SOFTWARE,
+              raw_exception->exception_record.exception_code);
+    EXPECT_EQ(MD_EXCEPTION_CODE_MAC_ABORT,
+              raw_exception->exception_record.exception_flags);
+  } else {
+    EXPECT_EQ(MD_EXCEPTION_MAC_BAD_ACCESS,
+              raw_exception->exception_record.exception_code);
+#if defined(__x86_64__)
+    EXPECT_EQ(MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS,
+              raw_exception->exception_record.exception_flags);
+#elif defined(__i386__)
+    EXPECT_EQ(MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE,
+              raw_exception->exception_record.exception_flags);
+#endif
+  }
+
+  const MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  // Ideally would like to sanity check that abort() is on the stack
+  // but that's hard.
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(memory_list);
+  MinidumpMemoryRegion* region =
+      memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  EXPECT_TRUE(region);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+}
+
+TEST_F(ExceptionHandlerTest, InProcess) {
+  InProcessCrash(false);
+}
+
+TEST_F(ExceptionHandlerTest, InProcessAbort) {
+  InProcessCrash(true);
+}
+
+static bool DumpNameMDCallback(const char* dump_dir, const char* file_name,
+                               void* context, bool success) {
+  ExceptionHandlerTest* self = reinterpret_cast<ExceptionHandlerTest*>(context);
+  if (dump_dir && file_name) {
+    self->lastDumpName = dump_dir;
+    self->lastDumpName += "/";
+    self->lastDumpName += file_name;
+    self->lastDumpName += ".dmp";
+  }
+  return true;
+}
+
+TEST_F(ExceptionHandlerTest, WriteMinidump) {
+  ExceptionHandler eh(tempDir.path(), NULL, DumpNameMDCallback, this, true,
+                      NULL);
+  ASSERT_TRUE(eh.WriteMinidump());
+
+  // Ensure that minidump file exists and is > 0 bytes.
+  ASSERT_FALSE(lastDumpName.empty());
+  struct stat st;
+  ASSERT_EQ(0, stat(lastDumpName.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // The minidump should not contain an exception stream.
+  Minidump minidump(lastDumpName);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  EXPECT_FALSE(exception);
+}
+
+TEST_F(ExceptionHandlerTest, WriteMinidumpWithException) {
+  ExceptionHandler eh(tempDir.path(), NULL, DumpNameMDCallback, this, true,
+                      NULL);
+  ASSERT_TRUE(eh.WriteMinidump(true));
+
+  // Ensure that minidump file exists and is > 0 bytes.
+  ASSERT_FALSE(lastDumpName.empty());
+  struct stat st;
+  ASSERT_EQ(0, stat(lastDumpName.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // The minidump should contain an exception stream.
+  Minidump minidump(lastDumpName);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  ASSERT_TRUE(exception);
+  const MDRawExceptionStream* raw_exception = exception->exception();
+  ASSERT_TRUE(raw_exception);
+
+  EXPECT_EQ(MD_EXCEPTION_MAC_BREAKPOINT,
+            raw_exception->exception_record.exception_code);
+}
+
+TEST_F(ExceptionHandlerTest, DumpChildProcess) {
+  const int kTimeoutMs = 2000;
+  // Create a mach port to receive the child task on.
+  char machPortName[128];
+  sprintf(machPortName, "ExceptionHandlerTest.%d", getpid());
+  ReceivePort parent_recv_port(machPortName);
+
+  // Give the child process a pipe to block on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  // Fork off a child process to dump.
+  pid_t pid = fork();
+  if (pid == 0) {
+    // In the child process
+    close(fds[1]);
+
+    // Send parent process the task and thread ports.
+    MachSendMessage child_message(0);
+    child_message.AddDescriptor(mach_task_self());
+    child_message.AddDescriptor(mach_thread_self());
+
+    MachPortSender child_sender(machPortName);
+    if (child_sender.SendMessage(child_message, kTimeoutMs) != KERN_SUCCESS)
+      exit(1);
+
+    // Wait for the parent process.
+    uint8_t data;
+    read(fds[0], &data, 1);
+    exit(0);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[0]);
+
+  // Read the child's task and thread ports.
+  MachReceiveMessage child_message;
+  ASSERT_EQ(KERN_SUCCESS,
+	    parent_recv_port.WaitForMessage(&child_message, kTimeoutMs));
+  mach_port_t child_task = child_message.GetTranslatedPort(0);
+  mach_port_t child_thread = child_message.GetTranslatedPort(1);
+  ASSERT_NE((mach_port_t)MACH_PORT_NULL, child_task);
+  ASSERT_NE((mach_port_t)MACH_PORT_NULL, child_thread);
+
+  // Write a minidump of the child process.
+  bool result = ExceptionHandler::WriteMinidumpForChild(child_task,
+                                                        child_thread,
+                                                        tempDir.path(),
+                                                        DumpNameMDCallback,
+                                                        this);
+  ASSERT_EQ(true, result);
+
+  // Ensure that minidump file exists and is > 0 bytes.
+  ASSERT_FALSE(lastDumpName.empty());
+  struct stat st;
+  ASSERT_EQ(0, stat(lastDumpName.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Unblock child process
+  uint8_t data = 1;
+  IGNORE_RET(write(fds[1], &data, 1));
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+}
+
+// Test that memory around the instruction pointer is written
+// to the dump as a MinidumpMemoryRegion.
+TEST_F(ExceptionHandlerTest, InstructionPointerMemory) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = 256;  // bytes
+  const int kOffset = kMemorySize / 2;
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+    // Get some executable memory.
+    char* memory =
+      reinterpret_cast<char*>(mmap(NULL,
+                                   kMemorySize,
+                                   PROT_READ | PROT_WRITE | PROT_EXEC,
+                                   MAP_PRIVATE | MAP_ANON,
+                                   -1,
+                                   0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them in the middle
+    // of the block of memory, because the minidump should contain 128
+    // bytes on either side of the instruction pointer.
+    memcpy(memory + kOffset, instructions, sizeof(instructions));
+
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[1]);
+
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_file, &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_NE((unsigned int)0, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+    memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  EXPECT_TRUE(region);
+
+  EXPECT_EQ(kMemorySize, region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t prefix_bytes[kOffset];
+  uint8_t suffix_bytes[kMemorySize - kOffset - sizeof(instructions)];
+  memset(prefix_bytes, 0, sizeof(prefix_bytes));
+  memset(suffix_bytes, 0, sizeof(suffix_bytes));
+  EXPECT_TRUE(memcmp(bytes, prefix_bytes, sizeof(prefix_bytes)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset, instructions, sizeof(instructions)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset + sizeof(instructions),
+                     suffix_bytes, sizeof(suffix_bytes)) == 0);
+}
+
+// Test that the memory region around the instruction pointer is
+// bounded correctly on the low end.
+TEST_F(ExceptionHandlerTest, InstructionPointerMemoryMinBound) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  const uint32_t kMemorySize = 256;  // bytes
+  const int kOffset = 0;
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+    // Get some executable memory.
+    char* memory =
+      reinterpret_cast<char*>(mmap(NULL,
+                                   kMemorySize,
+                                   PROT_READ | PROT_WRITE | PROT_EXEC,
+                                   MAP_PRIVATE | MAP_ANON,
+                                   -1,
+                                   0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them at the start
+    // of the block of memory, to ensure that the memory bounding
+    // works properly.
+    memcpy(memory + kOffset, instructions, sizeof(instructions));
+    
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[1]);
+
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_file, &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_NE((unsigned int)0, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+    memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  EXPECT_TRUE(region);
+
+  EXPECT_EQ(kMemorySize / 2, region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t suffix_bytes[kMemorySize / 2 - sizeof(instructions)];
+  memset(suffix_bytes, 0, sizeof(suffix_bytes));
+  EXPECT_TRUE(memcmp(bytes + kOffset, instructions, sizeof(instructions)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kOffset + sizeof(instructions),
+                     suffix_bytes, sizeof(suffix_bytes)) == 0);
+}
+
+// Test that the memory region around the instruction pointer is
+// bounded correctly on the high end.
+TEST_F(ExceptionHandlerTest, InstructionPointerMemoryMaxBound) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  // These are defined here so the parent can use them to check the
+  // data from the minidump afterwards.
+  // Use 4k here because the OS will hand out a single page even
+  // if a smaller size is requested, and this test wants to
+  // test the upper bound of the memory range.
+  const uint32_t kMemorySize = 4096;  // bytes
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+  const int kOffset = kMemorySize - sizeof(instructions);
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+    // Get some executable memory.
+    char* memory =
+      reinterpret_cast<char*>(mmap(NULL,
+                                   kMemorySize,
+                                   PROT_READ | PROT_WRITE | PROT_EXEC,
+                                   MAP_PRIVATE | MAP_ANON,
+                                   -1,
+                                   0));
+    if (!memory)
+      exit(0);
+
+    // Write some instructions that will crash. Put them at the start
+    // of the block of memory, to ensure that the memory bounding
+    // works properly.
+    memcpy(memory + kOffset, instructions, sizeof(instructions));
+    
+    // Now execute the instructions, which should crash.
+    typedef void (*void_function)(void);
+    void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+    memory_function();
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[1]);
+
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_file, &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_NE((unsigned int)0, memory_list->region_count());
+
+  MinidumpContext* context = exception->GetContext();
+  ASSERT_TRUE(context);
+
+  uint64_t instruction_pointer;
+  ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+  MinidumpMemoryRegion* region =
+    memory_list->GetMemoryRegionForAddress(instruction_pointer);
+  EXPECT_TRUE(region);
+
+  const size_t kPrefixSize = 128;  // bytes
+  EXPECT_EQ(kPrefixSize + sizeof(instructions), region->GetSize());
+  const uint8_t* bytes = region->GetMemory();
+  ASSERT_TRUE(bytes);
+
+  uint8_t prefix_bytes[kPrefixSize];
+  memset(prefix_bytes, 0, sizeof(prefix_bytes));
+  EXPECT_TRUE(memcmp(bytes, prefix_bytes, sizeof(prefix_bytes)) == 0);
+  EXPECT_TRUE(memcmp(bytes + kPrefixSize,
+                     instructions, sizeof(instructions)) == 0);
+}
+
+// Ensure that an extra memory block doesn't get added when the
+// instruction pointer is not in mapped memory.
+TEST_F(ExceptionHandlerTest, InstructionPointerMemoryNullPointer) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+    // Try calling a NULL pointer.
+    typedef void (*void_function)(void);
+    // Volatile markings are needed to keep Clang from generating invalid
+    // opcodes.  See http://crbug.com/498354 for details.
+    volatile void_function memory_function =
+      reinterpret_cast<void_function>(NULL);
+    memory_function();
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[1]);
+
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_file, &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is only one memory region
+  // in the memory list (the thread memory from the single thread).
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpException* exception = minidump.GetException();
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(exception);
+  ASSERT_TRUE(memory_list);
+  ASSERT_EQ((unsigned int)1, memory_list->region_count());
+}
+
+static void* Junk(void*) {
+  sleep(1000000);
+  return NULL;
+}
+
+// Test that the memory list gets written correctly when multiple
+// threads are running.
+TEST_F(ExceptionHandlerTest, MemoryListMultipleThreads) {
+  // Give the child process a pipe to report back on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    close(fds[0]);
+    ExceptionHandler eh(tempDir.path(), NULL, MDCallback, &fds[1], true, NULL);
+
+    // Run an extra thread so >2 memory regions will be written.
+    pthread_t junk_thread;
+    if (pthread_create(&junk_thread, NULL, Junk, NULL) == 0)
+      pthread_detach(junk_thread);
+
+    // Just crash.
+    Crasher();
+
+    // not reached
+    exit(1);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[1]);
+
+  // Wait for the background process to return the minidump file.
+  close(fds[1]);
+  char minidump_file[PATH_MAX];
+  ssize_t nbytes = read(fds[0], minidump_file, sizeof(minidump_file));
+  ASSERT_NE(0, nbytes);
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(minidump_file, &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump, and verify that the memory list can be read.
+  Minidump minidump(minidump_file);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(memory_list);
+  // Verify that there are three memory regions:
+  // one per thread, and one for the instruction pointer memory.
+  ASSERT_EQ((unsigned int)3, memory_list->region_count());
+}
+
+}
diff --git a/src/client/mac/tests/minidump_generator_test.cc b/src/client/mac/tests/minidump_generator_test.cc
new file mode 100644
index 0000000..1f37465
--- /dev/null
+++ b/src/client/mac/tests/minidump_generator_test.cc
@@ -0,0 +1,320 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_generator_test.cc: Unit tests for google_breakpad::MinidumpGenerator
+
+#include <AvailabilityMacros.h>
+#ifndef MAC_OS_X_VERSION_10_6
+#define MAC_OS_X_VERSION_10_6 1060
+#endif
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "client/mac/handler/minidump_generator.h"
+#include "client/mac/tests/spawn_child_process.h"
+#include "common/linux/ignore_ret.h"
+#include "common/mac/MachIPC.h"
+#include "common/tests/auto_tempdir.h"
+#include "google_breakpad/processor/minidump.h"
+
+namespace google_breakpad {
+// This acts as the log sink for INFO logging from the processor
+// logging code. The logging output confuses XCode and makes it think
+// there are unit test failures. testlogging.h handles the overriding.
+std::ostringstream info_log;
+}
+
+namespace {
+using std::string;
+using std::vector;
+using google_breakpad::AutoTempDir;
+using google_breakpad::MinidumpGenerator;
+using google_breakpad::MachPortSender;
+using google_breakpad::MachReceiveMessage;
+using google_breakpad::MachSendMessage;
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpContext;
+using google_breakpad::MinidumpException;
+using google_breakpad::MinidumpModule;
+using google_breakpad::MinidumpModuleList;
+using google_breakpad::MinidumpSystemInfo;
+using google_breakpad::MinidumpThread;
+using google_breakpad::MinidumpThreadList;
+using google_breakpad::ReceivePort;
+using testing::Test;
+using namespace google_breakpad_test;
+
+class MinidumpGeneratorTest : public Test {
+ public:
+  AutoTempDir tempDir;
+};
+
+static void* Junk(void* data) {
+  bool* wait = reinterpret_cast<bool*>(data);
+  while (!*wait) {
+    usleep(10000);
+  }
+  return NULL;
+}
+
+TEST_F(MinidumpGeneratorTest, InProcess) {
+  MinidumpGenerator generator;
+  string dump_filename =
+      MinidumpGenerator::UniqueNameInDirectory(tempDir.path(), NULL);
+
+  // Run an extra thread since MinidumpGenerator assumes there
+  // are 2 or more threads.
+  pthread_t junk_thread;
+  bool quit = false;
+  ASSERT_EQ(0, pthread_create(&junk_thread, NULL, Junk, &quit));
+
+  ASSERT_TRUE(generator.Write(dump_filename.c_str()));
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(dump_filename.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // join the background thread
+  quit = true;
+  pthread_join(junk_thread, NULL);
+
+  // Read the minidump, sanity check some data.
+  Minidump minidump(dump_filename.c_str());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpSystemInfo* system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(system_info);
+  const MDRawSystemInfo* raw_info = system_info->system_info();
+  ASSERT_TRUE(raw_info);
+  EXPECT_EQ(kNativeArchitecture, raw_info->processor_architecture);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list);
+  ASSERT_EQ((unsigned int)1, thread_list->thread_count());
+
+  MinidumpThread* main_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(main_thread);
+  MinidumpContext* context = main_thread->GetContext();
+  ASSERT_TRUE(context);
+  EXPECT_EQ(kNativeContext, context->GetContextCPU());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* main_module = module_list->GetMainModule();
+  ASSERT_TRUE(main_module);
+  EXPECT_EQ(GetExecutablePath(), main_module->code_file());
+}
+
+TEST_F(MinidumpGeneratorTest, OutOfProcess) {
+  const int kTimeoutMs = 2000;
+  // Create a mach port to receive the child task on.
+  char machPortName[128];
+  sprintf(machPortName, "MinidumpGeneratorTest.OutOfProcess.%d", getpid());
+  ReceivePort parent_recv_port(machPortName);
+
+  // Give the child process a pipe to block on.
+  int fds[2];
+  ASSERT_EQ(0, pipe(fds));
+
+  // Fork off a child process to dump.
+  pid_t pid = fork();
+  if (pid == 0) {
+    // In the child process
+    close(fds[1]);
+
+    // Send parent process the task port.
+    MachSendMessage child_message(0);
+    child_message.AddDescriptor(mach_task_self());
+
+    MachPortSender child_sender(machPortName);
+    if (child_sender.SendMessage(child_message, kTimeoutMs) != KERN_SUCCESS) {
+      fprintf(stderr, "Error sending message from child process!\n");
+      exit(1);
+    }
+
+    // Wait for the parent process.
+    uint8_t data;
+    read(fds[0], &data, 1);
+    exit(0);
+  }
+  // In the parent process.
+  ASSERT_NE(-1, pid);
+  close(fds[0]);
+
+  // Read the child's task port.
+  MachReceiveMessage child_message;
+  ASSERT_EQ(KERN_SUCCESS,
+	    parent_recv_port.WaitForMessage(&child_message, kTimeoutMs));
+  mach_port_t child_task = child_message.GetTranslatedPort(0);
+  ASSERT_NE((mach_port_t)MACH_PORT_NULL, child_task);
+
+  // Write a minidump of the child process.
+  MinidumpGenerator generator(child_task, MACH_PORT_NULL);
+  string dump_filename =
+      MinidumpGenerator::UniqueNameInDirectory(tempDir.path(), NULL);
+  ASSERT_TRUE(generator.Write(dump_filename.c_str()));
+
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(dump_filename.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Unblock child process
+  uint8_t data = 1;
+  IGNORE_RET(write(fds[1], &data, 1));
+
+  // Child process should have exited with a zero status.
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+  EXPECT_NE(0, WIFEXITED(ret));
+  EXPECT_EQ(0, WEXITSTATUS(ret));
+
+  // Read the minidump, sanity check some data.
+  Minidump minidump(dump_filename.c_str());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpSystemInfo* system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(system_info);
+  const MDRawSystemInfo* raw_info = system_info->system_info();
+  ASSERT_TRUE(raw_info);
+  EXPECT_EQ(kNativeArchitecture, raw_info->processor_architecture);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list);
+  ASSERT_EQ((unsigned int)1, thread_list->thread_count());
+
+  MinidumpThread* main_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(main_thread);
+  MinidumpContext* context = main_thread->GetContext();
+  ASSERT_TRUE(context);
+  EXPECT_EQ(kNativeContext, context->GetContextCPU());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* main_module = module_list->GetMainModule();
+  ASSERT_TRUE(main_module);
+  EXPECT_EQ(GetExecutablePath(), main_module->code_file());
+}
+
+// This test fails on 10.5, but I don't have easy access to a 10.5 machine,
+// so it's simpler to just limit it to 10.6 for now.
+#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6) && \
+  (defined(__x86_64__) || defined(__i386__))
+
+TEST_F(MinidumpGeneratorTest, CrossArchitectureDump) {
+  const int kTimeoutMs = 5000;
+  // Create a mach port to receive the child task on.
+  char machPortName[128];
+  sprintf(machPortName,
+          "MinidumpGeneratorTest.CrossArchitectureDump.%d", getpid());
+
+  ReceivePort parent_recv_port(machPortName);
+
+  // Spawn a child process to dump.
+  string helper_path = GetHelperPath();
+  const char* argv[] = {
+    helper_path.c_str(),
+    machPortName,
+    NULL
+  };
+  pid_t pid = spawn_child_process(argv);
+  ASSERT_NE(-1, pid);
+
+  // Read the child's task port.
+  MachReceiveMessage child_message;
+  ASSERT_EQ(KERN_SUCCESS,
+	    parent_recv_port.WaitForMessage(&child_message, kTimeoutMs));
+  mach_port_t child_task = child_message.GetTranslatedPort(0);
+  ASSERT_NE((mach_port_t)MACH_PORT_NULL, child_task);
+
+  // Write a minidump of the child process.
+  MinidumpGenerator generator(child_task, MACH_PORT_NULL);
+  string dump_filename =
+      MinidumpGenerator::UniqueNameInDirectory(tempDir.path(), NULL);
+  ASSERT_TRUE(generator.Write(dump_filename.c_str()));
+
+  // Ensure that minidump file exists and is > 0 bytes.
+  struct stat st;
+  ASSERT_EQ(0, stat(dump_filename.c_str(), &st));
+  ASSERT_LT(0, st.st_size);
+
+  // Kill child process.
+  kill(pid, SIGKILL);
+
+  int ret;
+  ASSERT_EQ(pid, waitpid(pid, &ret, 0));
+
+const MDCPUArchitecture kExpectedArchitecture =
+#if defined(__x86_64__)
+  MD_CPU_ARCHITECTURE_X86
+#elif defined(__i386__)
+  MD_CPU_ARCHITECTURE_AMD64
+#endif
+  ;
+const uint32_t kExpectedContext =
+#if defined(__i386__)
+  MD_CONTEXT_AMD64
+#elif defined(__x86_64__)
+  MD_CONTEXT_X86
+#endif
+  ;
+
+  // Read the minidump, sanity check some data.
+  Minidump minidump(dump_filename.c_str());
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpSystemInfo* system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(system_info);
+  const MDRawSystemInfo* raw_info = system_info->system_info();
+  ASSERT_TRUE(raw_info);
+  EXPECT_EQ(kExpectedArchitecture, raw_info->processor_architecture);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list);
+  ASSERT_EQ((unsigned int)1, thread_list->thread_count());
+
+  MinidumpThread* main_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(main_thread);
+  MinidumpContext* context = main_thread->GetContext();
+  ASSERT_TRUE(context);
+  EXPECT_EQ(kExpectedContext, context->GetContextCPU());
+
+  MinidumpModuleList* module_list = minidump.GetModuleList();
+  ASSERT_TRUE(module_list);
+  const MinidumpModule* main_module = module_list->GetMainModule();
+  ASSERT_TRUE(main_module);
+  EXPECT_EQ(helper_path, main_module->code_file());
+}
+#endif  // 10.6 && (x86-64 || i386)
+
+}
diff --git a/src/client/mac/tests/minidump_generator_test_helper.cc b/src/client/mac/tests/minidump_generator_test_helper.cc
new file mode 100644
index 0000000..4e8ce3c
--- /dev/null
+++ b/src/client/mac/tests/minidump_generator_test_helper.cc
@@ -0,0 +1,74 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_generator_test_helper.cc: A helper program that
+//   minidump_generator_test.cc can launch to test certain things
+//   that require a separate executable.
+
+#include <unistd.h>
+
+#include "client/mac/handler/exception_handler.h"
+#include "common/mac/MachIPC.h"
+
+using google_breakpad::MachPortSender;
+using google_breakpad::MachReceiveMessage;
+using google_breakpad::MachSendMessage;
+using google_breakpad::ReceivePort;
+
+int main(int argc, char** argv) {
+  if (argc < 2)
+    return 1;
+
+  if (strcmp(argv[1], "crash") != 0) {
+    const int kTimeoutMs = 2000;
+    // Send parent process the task and thread ports.
+    MachSendMessage child_message(0);
+    child_message.AddDescriptor(mach_task_self());
+    child_message.AddDescriptor(mach_thread_self());
+
+    MachPortSender child_sender(argv[1]);
+    if (child_sender.SendMessage(child_message, kTimeoutMs) != KERN_SUCCESS) {
+      fprintf(stderr, "Error sending message from child process!\n");
+      exit(1);
+    }
+
+    // Loop forever.
+    while (true) {
+      sleep(100);
+    }
+  } else if (argc == 3 && strcmp(argv[1], "crash") == 0) {
+    // Instantiate an OOP exception handler
+    google_breakpad::ExceptionHandler eh("", NULL, NULL, NULL, true, argv[2]);
+    // and crash.
+    int *a = (int*)0x42;
+    *a = 1;
+  }
+
+  return 0;
+}
diff --git a/src/client/mac/tests/spawn_child_process.h b/src/client/mac/tests/spawn_child_process.h
new file mode 100644
index 0000000..e52ff6b
--- /dev/null
+++ b/src/client/mac/tests/spawn_child_process.h
@@ -0,0 +1,149 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Utility functions for spawning a helper process using a different
+// CPU architecture.
+
+#ifndef GOOGLE_BREAKPAD_CLIENT_MAC_TESTS_SPAWN_CHILD_PROCESS
+#define GOOGLE_BREAKPAD_CLIENT_MAC_TESTS_SPAWN_CHILD_PROCESS
+
+#include <AvailabilityMacros.h>
+#ifndef MAC_OS_X_VERSION_10_6
+#define MAC_OS_X_VERSION_10_6 1060
+#endif
+#include <crt_externs.h>
+#include <mach-o/dyld.h>
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+#include <spawn.h>
+#endif
+
+#include <string>
+#include <vector>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad_test {
+
+using std::string;
+using std::vector;
+
+const MDCPUArchitecture kNativeArchitecture =
+#if defined(__i386__)
+  MD_CPU_ARCHITECTURE_X86
+#elif defined(__x86_64__)
+  MD_CPU_ARCHITECTURE_AMD64
+#elif defined(__ppc__) || defined(__ppc64__)
+  MD_CPU_ARCHITECTURE_PPC
+#else
+#error "This file has not been ported to this CPU architecture."
+#endif
+  ;
+
+const uint32_t kNativeContext =
+#if defined(__i386__)
+  MD_CONTEXT_X86
+#elif defined(__x86_64__)
+  MD_CONTEXT_AMD64
+#elif defined(__ppc__) || defined(__ppc64__)
+  MD_CONTEXT_PPC
+#else
+#error "This file has not been ported to this CPU architecture."
+#endif
+  ;
+
+string GetExecutablePath() {
+  char self_path[PATH_MAX];
+  uint32_t size = sizeof(self_path);
+  if (_NSGetExecutablePath(self_path, &size) != 0)
+    return "";
+  return self_path;
+}
+
+string GetHelperPath() {
+  string helper_path(GetExecutablePath());
+  size_t pos = helper_path.rfind('/');
+  if (pos == string::npos)
+    return "";
+
+  helper_path.erase(pos + 1);
+  helper_path += "minidump_generator_test_helper";
+  return helper_path;
+}
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+
+pid_t spawn_child_process(const char** argv) {
+  posix_spawnattr_t spawnattr;
+  if (posix_spawnattr_init(&spawnattr) != 0)
+    return (pid_t)-1;
+
+  cpu_type_t pref_cpu_types[2] = {
+#if defined(__x86_64__)
+    CPU_TYPE_X86,
+#elif defined(__i386__)
+    CPU_TYPE_X86_64,
+#endif
+    CPU_TYPE_ANY
+  };
+
+  // Set spawn attributes.
+  size_t attr_count = sizeof(pref_cpu_types) / sizeof(pref_cpu_types[0]);
+  size_t attr_ocount = 0;
+  if (posix_spawnattr_setbinpref_np(&spawnattr,
+                                    attr_count,
+                                    pref_cpu_types,
+                                    &attr_ocount) != 0 ||
+      attr_ocount != attr_count) {
+    posix_spawnattr_destroy(&spawnattr);
+    return (pid_t)-1;
+  }
+
+  // Create an argv array.
+  vector<char*> argv_v;
+  while (*argv) {
+    argv_v.push_back(strdup(*argv));
+    argv++;
+  }
+  argv_v.push_back(NULL);
+  pid_t new_pid = 0;
+  int result = posix_spawnp(&new_pid, argv_v[0], NULL, &spawnattr,
+                            &argv_v[0], *_NSGetEnviron());
+  posix_spawnattr_destroy(&spawnattr);
+  
+  for (unsigned i = 0; i < argv_v.size(); i++) {
+    free(argv_v[i]);
+  }
+
+  return result == 0 ? new_pid : -1;
+}
+#endif
+
+}  // namespace google_breakpad_test
+
+#endif  // GOOGLE_BREAKPAD_CLIENT_MAC_TESTS_SPAWN_CHILD_PROCESS
diff --git a/src/client/mac/tests/testlogging.h b/src/client/mac/tests/testlogging.h
new file mode 100644
index 0000000..c6b6be6
--- /dev/null
+++ b/src/client/mac/tests/testlogging.h
@@ -0,0 +1,9 @@
+// This file exists to override the processor logging for unit tests,
+// since it confuses XCode into thinking unit tests have failed.
+#include <sstream>
+
+namespace google_breakpad {
+extern std::ostringstream info_log;
+}
+
+#define BPLOG_INFO_STREAM google_breakpad::info_log
diff --git a/src/client/minidump_file_writer-inl.h b/src/client/minidump_file_writer-inl.h
new file mode 100644
index 0000000..bdac2da
--- /dev/null
+++ b/src/client/minidump_file_writer-inl.h
@@ -0,0 +1,97 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_file_writer-inl.h: Minidump file writer implementation.
+//
+// See minidump_file_writer.h for documentation.
+
+#ifndef CLIENT_MINIDUMP_FILE_WRITER_INL_H__
+#define CLIENT_MINIDUMP_FILE_WRITER_INL_H__
+
+#include <assert.h>
+
+#include "client/minidump_file_writer.h"
+#include "google_breakpad/common/minidump_size.h"
+
+namespace google_breakpad {
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::Allocate() {
+  allocation_state_ = SINGLE_OBJECT;
+  return UntypedMDRVA::Allocate(minidump_size<MDType>::size());
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::Allocate(size_t additional) {
+  allocation_state_ = SINGLE_OBJECT;
+  return UntypedMDRVA::Allocate(minidump_size<MDType>::size() + additional);
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::AllocateArray(size_t count) {
+  assert(count);
+  allocation_state_ = ARRAY;
+  return UntypedMDRVA::Allocate(minidump_size<MDType>::size() * count);
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::AllocateObjectAndArray(size_t count,
+                                                       size_t length) {
+  assert(count && length);
+  allocation_state_ = SINGLE_OBJECT_WITH_ARRAY;
+  return UntypedMDRVA::Allocate(minidump_size<MDType>::size() + count * length);
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::CopyIndex(unsigned int index, MDType* item) {
+  assert(allocation_state_ == ARRAY);
+  return writer_->Copy(
+      static_cast<MDRVA>(position_ + index * minidump_size<MDType>::size()), 
+      item, minidump_size<MDType>::size());
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::CopyIndexAfterObject(unsigned int index,
+                                                     const void* src,
+                                                     size_t length) {
+  assert(allocation_state_ == SINGLE_OBJECT_WITH_ARRAY);
+  return writer_->Copy(
+      static_cast<MDRVA>(position_ + minidump_size<MDType>::size() 
+                         + index * length),
+      src, length);
+}
+
+template<typename MDType>
+inline bool TypedMDRVA<MDType>::Flush() {
+  return writer_->Copy(position_, &data_, minidump_size<MDType>::size());
+}
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_MINIDUMP_FILE_WRITER_INL_H__
diff --git a/src/client/minidump_file_writer.cc b/src/client/minidump_file_writer.cc
new file mode 100644
index 0000000..5c3c5cb
--- /dev/null
+++ b/src/client/minidump_file_writer.cc
@@ -0,0 +1,350 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_file_writer.cc: Minidump file writer implementation.
+//
+// See minidump_file_writer.h for documentation.
+
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "client/minidump_file_writer-inl.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/string_conversion.h"
+#if defined(__linux__) && __linux__
+#include "third_party/lss/linux_syscall_support.h"
+#endif
+
+#if defined(__ANDROID__)
+#include <errno.h>
+
+namespace {
+
+bool g_need_ftruncate_workaround = false;
+bool g_checked_need_ftruncate_workaround = false;
+
+void CheckNeedsFTruncateWorkAround(int file) {
+  if (g_checked_need_ftruncate_workaround) {
+    return;
+  }
+  g_checked_need_ftruncate_workaround = true;
+
+  // Attempt an idempotent truncate that chops off nothing and see if we
+  // run into any sort of errors.
+  off_t offset = sys_lseek(file, 0, SEEK_END);
+  if (offset == -1) {
+    // lseek failed. Don't apply work around. It's unlikely that we can write
+    // to a minidump with either method.
+    return;
+  }
+
+  int result = ftruncate(file, offset);
+  if (result == -1 && errno == EACCES) {
+    // It very likely that we are running into the kernel bug in M devices.
+    // We are going to deploy the workaround for writing minidump files
+    // without uses of ftruncate(). This workaround should be fine even
+    // for kernels without the bug.
+    // See http://crbug.com/542840 for more details.
+    g_need_ftruncate_workaround = true;
+  }
+}
+
+bool NeedsFTruncateWorkAround() {
+  return g_need_ftruncate_workaround;
+}
+
+}  // namespace
+#endif  // defined(__ANDROID__)
+
+namespace google_breakpad {
+
+const MDRVA MinidumpFileWriter::kInvalidMDRVA = static_cast<MDRVA>(-1);
+
+MinidumpFileWriter::MinidumpFileWriter()
+    : file_(-1),
+      close_file_when_destroyed_(true),
+      position_(0),
+      size_(0) {
+}
+
+MinidumpFileWriter::~MinidumpFileWriter() {
+  if (close_file_when_destroyed_)
+    Close();
+}
+
+bool MinidumpFileWriter::Open(const char* path) {
+  assert(file_ == -1);
+#if defined(__linux__) && __linux__
+  file_ = sys_open(path, O_WRONLY | O_CREAT | O_EXCL, 0600);
+#else
+  file_ = open(path, O_WRONLY | O_CREAT | O_EXCL, 0600);
+#endif
+
+  return file_ != -1;
+}
+
+void MinidumpFileWriter::SetFile(const int file) {
+  assert(file_ == -1);
+  file_ = file;
+  close_file_when_destroyed_ = false;
+#if defined(__ANDROID__)
+  CheckNeedsFTruncateWorkAround(file);
+#endif
+}
+
+bool MinidumpFileWriter::Close() {
+  bool result = true;
+
+  if (file_ != -1) {
+#if defined(__ANDROID__)
+    if (!NeedsFTruncateWorkAround() && ftruncate(file_, position_)) {
+       return false;
+    }
+#else
+    if (ftruncate(file_, position_)) {
+       return false;
+    }
+#endif
+#if defined(__linux__) && __linux__
+    result = (sys_close(file_) == 0);
+#else
+    result = (close(file_) == 0);
+#endif
+    file_ = -1;
+  }
+
+  return result;
+}
+
+bool MinidumpFileWriter::CopyStringToMDString(const wchar_t* str,
+                                              unsigned int length,
+                                              TypedMDRVA<MDString>* mdstring) {
+  bool result = true;
+  if (sizeof(wchar_t) == sizeof(uint16_t)) {
+    // Shortcut if wchar_t is the same size as MDString's buffer
+    result = mdstring->Copy(str, mdstring->get()->length);
+  } else {
+    uint16_t out[2];
+    int out_idx = 0;
+
+    // Copy the string character by character
+    while (length && result) {
+      UTF32ToUTF16Char(*str, out);
+      if (!out[0])
+        return false;
+
+      // Process one character at a time
+      --length;
+      ++str;
+
+      // Append the one or two UTF-16 characters.  The first one will be non-
+      // zero, but the second one may be zero, depending on the conversion from
+      // UTF-32.
+      int out_count = out[1] ? 2 : 1;
+      size_t out_size = sizeof(uint16_t) * out_count;
+      result = mdstring->CopyIndexAfterObject(out_idx, out, out_size);
+      out_idx += out_count;
+    }
+  }
+  return result;
+}
+
+bool MinidumpFileWriter::CopyStringToMDString(const char* str,
+                                              unsigned int length,
+                                              TypedMDRVA<MDString>* mdstring) {
+  bool result = true;
+  uint16_t out[2];
+  int out_idx = 0;
+
+  // Copy the string character by character
+  while (length && result) {
+    int conversion_count = UTF8ToUTF16Char(str, length, out);
+    if (!conversion_count)
+      return false;
+
+    // Move the pointer along based on the nubmer of converted characters
+    length -= conversion_count;
+    str += conversion_count;
+
+    // Append the one or two UTF-16 characters
+    int out_count = out[1] ? 2 : 1;
+    size_t out_size = sizeof(uint16_t) * out_count;
+    result = mdstring->CopyIndexAfterObject(out_idx, out, out_size);
+    out_idx += out_count;
+  }
+  return result;
+}
+
+template <typename CharType>
+bool MinidumpFileWriter::WriteStringCore(const CharType* str,
+                                         unsigned int length,
+                                         MDLocationDescriptor* location) {
+  assert(str);
+  assert(location);
+  // Calculate the mdstring length by either limiting to |length| as passed in
+  // or by finding the location of the NULL character.
+  unsigned int mdstring_length = 0;
+  if (!length)
+    length = INT_MAX;
+  for (; mdstring_length < length && str[mdstring_length]; ++mdstring_length)
+    ;
+
+  // Allocate the string buffer
+  TypedMDRVA<MDString> mdstring(this);
+  if (!mdstring.AllocateObjectAndArray(mdstring_length + 1, sizeof(uint16_t)))
+    return false;
+
+  // Set length excluding the NULL and copy the string
+  mdstring.get()->length =
+      static_cast<uint32_t>(mdstring_length * sizeof(uint16_t));
+  bool result = CopyStringToMDString(str, mdstring_length, &mdstring);
+
+  // NULL terminate
+  if (result) {
+    uint16_t ch = 0;
+    result = mdstring.CopyIndexAfterObject(mdstring_length, &ch, sizeof(ch));
+
+    if (result)
+      *location = mdstring.location();
+  }
+
+  return result;
+}
+
+bool MinidumpFileWriter::WriteString(const wchar_t* str, unsigned int length,
+                                     MDLocationDescriptor* location) {
+  return WriteStringCore(str, length, location);
+}
+
+bool MinidumpFileWriter::WriteString(const char* str, unsigned int length,
+                                     MDLocationDescriptor* location) {
+  return WriteStringCore(str, length, location);
+}
+
+bool MinidumpFileWriter::WriteMemory(const void* src, size_t size,
+                                     MDMemoryDescriptor* output) {
+  assert(src);
+  assert(output);
+  UntypedMDRVA mem(this);
+
+  if (!mem.Allocate(size))
+    return false;
+  if (!mem.Copy(src, mem.size()))
+    return false;
+
+  output->start_of_memory_range = reinterpret_cast<uint64_t>(src);
+  output->memory = mem.location();
+
+  return true;
+}
+
+MDRVA MinidumpFileWriter::Allocate(size_t size) {
+  assert(size);
+  assert(file_ != -1);
+#if defined(__ANDROID__)
+  if (NeedsFTruncateWorkAround()) {
+    // If ftruncate() is not available. We simply increase the size beyond the
+    // current file size. sys_write() will expand the file when data is written
+    // to it. Because we did not over allocate to fit memory pages, we also
+    // do not need to ftruncate() the file once we are done.
+    size_ += size;
+
+    // We don't need to seek since the file is unchanged.
+    MDRVA current_position = position_;
+    position_ += static_cast<MDRVA>(size);
+    return current_position;
+  }
+#endif
+  size_t aligned_size = (size + 7) & ~7;  // 64-bit alignment
+
+  if (position_ + aligned_size > size_) {
+    size_t growth = aligned_size;
+    size_t minimal_growth = getpagesize();
+
+    // Ensure that the file grows by at least the size of a memory page
+    if (growth < minimal_growth)
+      growth = minimal_growth;
+
+    size_t new_size = size_ + growth;
+    if (ftruncate(file_, new_size) != 0)
+      return kInvalidMDRVA;
+
+    size_ = new_size;
+  }
+
+  MDRVA current_position = position_;
+  position_ += static_cast<MDRVA>(aligned_size);
+
+  return current_position;
+}
+
+bool MinidumpFileWriter::Copy(MDRVA position, const void* src, ssize_t size) {
+  assert(src);
+  assert(size);
+  assert(file_ != -1);
+
+  // Ensure that the data will fit in the allocated space
+  if (static_cast<size_t>(size + position) > size_)
+    return false;
+
+  // Seek and write the data
+#if defined(__linux__) && __linux__
+  if (sys_lseek(file_, position, SEEK_SET) == static_cast<off_t>(position)) {
+    if (sys_write(file_, src, size) == size) {
+      return true;
+    }
+  }
+#else
+  if (lseek(file_, position, SEEK_SET) == static_cast<off_t>(position)) {
+    if (write(file_, src, size) == size) {
+      return true;
+    }
+  }
+#endif
+  return false;
+}
+
+bool UntypedMDRVA::Allocate(size_t size) {
+  assert(size_ == 0);
+  size_ = size;
+  position_ = writer_->Allocate(size_);
+  return position_ != MinidumpFileWriter::kInvalidMDRVA;
+}
+
+bool UntypedMDRVA::Copy(MDRVA pos, const void* src, size_t size) {
+  assert(src);
+  assert(size);
+  assert(pos + size <= position_ + size_);
+  return writer_->Copy(pos, src, size);
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/minidump_file_writer.h b/src/client/minidump_file_writer.h
new file mode 100644
index 0000000..c66dc59
--- /dev/null
+++ b/src/client/minidump_file_writer.h
@@ -0,0 +1,272 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_file_writer.h:  Implements file-based minidump generation.  It's
+// intended to be used with the Google Breakpad open source crash handling
+// project.
+
+#ifndef CLIENT_MINIDUMP_FILE_WRITER_H__
+#define CLIENT_MINIDUMP_FILE_WRITER_H__
+
+#include <string>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+class UntypedMDRVA;
+template<typename MDType> class TypedMDRVA;
+
+// The user of this class can Open() a file and add minidump streams, data, and
+// strings using the definitions in minidump_format.h.  Since this class is
+// expected to be used in a situation where the current process may be
+// damaged, it will not allocate heap memory.
+// Sample usage:
+// MinidumpFileWriter writer;
+// writer.Open("/tmp/minidump.dmp");
+// TypedMDRVA<MDRawHeader> header(&writer_);
+// header.Allocate();
+// header->get()->signature = MD_HEADER_SIGNATURE;
+//  :
+// writer.Close();
+//
+// An alternative is to use SetFile and provide a file descriptor:
+// MinidumpFileWriter writer;
+// writer.SetFile(minidump_fd);
+// TypedMDRVA<MDRawHeader> header(&writer_);
+// header.Allocate();
+// header->get()->signature = MD_HEADER_SIGNATURE;
+//  :
+// writer.Close();
+
+class MinidumpFileWriter {
+public:
+  // Invalid MDRVA (Minidump Relative Virtual Address)
+  // returned on failed allocation
+  static const MDRVA kInvalidMDRVA;
+
+  MinidumpFileWriter();
+  ~MinidumpFileWriter();
+
+  // Open |path| as the destination of the minidump data. If |path| already
+  // exists, then Open() will fail.
+  // Return true on success, or false on failure.
+  bool Open(const char* path);
+
+  // Sets the file descriptor |file| as the destination of the minidump data.
+  // Can be used as an alternative to Open() when a file descriptor is
+  // available.
+  // Note that |fd| is not closed when the instance of MinidumpFileWriter is
+  // destroyed.
+  void SetFile(const int file);
+
+  // Close the current file (that was either created when Open was called, or
+  // specified with SetFile).
+  // Return true on success, or false on failure.
+  bool Close();
+
+  // Copy the contents of |str| to a MDString and write it to the file.
+  // |str| is expected to be either UTF-16 or UTF-32 depending on the size
+  // of wchar_t.
+  // Maximum |length| of characters to copy from |str|, or specify 0 to use the
+  // entire NULL terminated string.  Copying will stop at the first NULL.
+  // |location| the allocated location
+  // Return true on success, or false on failure
+  bool WriteString(const wchar_t* str, unsigned int length,
+                   MDLocationDescriptor* location);
+
+  // Same as above, except with |str| as a UTF-8 string
+  bool WriteString(const char* str, unsigned int length,
+                   MDLocationDescriptor* location);
+
+  // Write |size| bytes starting at |src| into the current position.
+  // Return true on success and set |output| to position, or false on failure
+  bool WriteMemory(const void* src, size_t size, MDMemoryDescriptor* output);
+
+  // Copies |size| bytes from |src| to |position|
+  // Return true on success, or false on failure
+  bool Copy(MDRVA position, const void* src, ssize_t size);
+
+  // Return the current position for writing to the minidump
+  inline MDRVA position() const { return position_; }
+
+ private:
+  friend class UntypedMDRVA;
+
+  // Allocates an area of |size| bytes.
+  // Returns the position of the allocation, or kInvalidMDRVA if it was
+  // unable to allocate the bytes.
+  MDRVA Allocate(size_t size);
+
+  // The file descriptor for the output file.
+  int file_;
+
+  // Whether |file_| should be closed when the instance is destroyed.
+  bool close_file_when_destroyed_;
+
+  // Current position in buffer
+  MDRVA position_;
+
+  // Current allocated size
+  size_t size_;
+
+  // Copy |length| characters from |str| to |mdstring|.  These are distinct
+  // because the underlying MDString is a UTF-16 based string.  The wchar_t
+  // variant may need to create a MDString that has more characters than the
+  // source |str|, whereas the UTF-8 variant may coalesce characters to form
+  // a single UTF-16 character.
+  bool CopyStringToMDString(const wchar_t* str, unsigned int length,
+                            TypedMDRVA<MDString>* mdstring);
+  bool CopyStringToMDString(const char* str, unsigned int length,
+                            TypedMDRVA<MDString>* mdstring);
+
+  // The common templated code for writing a string
+  template <typename CharType>
+  bool WriteStringCore(const CharType* str, unsigned int length,
+                       MDLocationDescriptor* location);
+};
+
+// Represents an untyped allocated chunk
+class UntypedMDRVA {
+ public:
+  explicit UntypedMDRVA(MinidumpFileWriter* writer)
+      : writer_(writer),
+        position_(writer->position()),
+        size_(0) {}
+
+  // Allocates |size| bytes.  Must not call more than once.
+  // Return true on success, or false on failure
+  bool Allocate(size_t size);
+
+  // Returns the current position or kInvalidMDRVA if allocation failed
+  inline MDRVA position() const { return position_; }
+
+  // Number of bytes allocated
+  inline size_t size() const { return size_; }
+
+  // Return size and position
+  inline MDLocationDescriptor location() const {
+    MDLocationDescriptor location = { static_cast<uint32_t>(size_),
+                                      position_ };
+    return location;
+  }
+
+  // Copy |size| bytes starting at |src| into the minidump at |position|
+  // Return true on success, or false on failure
+  bool Copy(MDRVA position, const void* src, size_t size);
+
+  // Copy |size| bytes from |src| to the current position
+  inline bool Copy(const void* src, size_t size) {
+    return Copy(position_, src, size);
+  }
+
+ protected:
+  // Writer we associate with
+  MinidumpFileWriter* writer_;
+
+  // Position of the start of the data
+  MDRVA position_;
+
+  // Allocated size
+  size_t size_;
+};
+
+// Represents a Minidump object chunk.  Additional memory can be allocated at
+// the end of the object as a:
+// - single allocation
+// - Array of MDType objects
+// - A MDType object followed by an array
+template<typename MDType>
+class TypedMDRVA : public UntypedMDRVA {
+ public:
+  // Constructs an unallocated MDRVA
+  explicit TypedMDRVA(MinidumpFileWriter* writer)
+      : UntypedMDRVA(writer),
+        data_(),
+        allocation_state_(UNALLOCATED) {}
+
+  inline ~TypedMDRVA() {
+    // Ensure that the data_ object is written out
+    if (allocation_state_ != ARRAY)
+      Flush();
+  }
+
+  // Address of object data_ of MDType.  This is not declared const as the
+  // typical usage will be to access the underlying |data_| object as to
+  // alter its contents.
+  MDType* get() { return &data_; }
+
+  // Allocates minidump_size<MDType>::size() bytes.
+  // Must not call more than once.
+  // Return true on success, or false on failure
+  bool Allocate();
+
+  // Allocates minidump_size<MDType>::size() + |additional| bytes.
+  // Must not call more than once.
+  // Return true on success, or false on failure
+  bool Allocate(size_t additional);
+
+  // Allocate an array of |count| elements of MDType.
+  // Must not call more than once.
+  // Return true on success, or false on failure
+  bool AllocateArray(size_t count);
+
+  // Allocate an array of |count| elements of |size| after object of MDType
+  // Must not call more than once.
+  // Return true on success, or false on failure
+  bool AllocateObjectAndArray(size_t count, size_t size);
+
+  // Copy |item| to |index|
+  // Must have been allocated using AllocateArray().
+  // Return true on success, or false on failure
+  bool CopyIndex(unsigned int index, MDType* item);
+
+  // Copy |size| bytes starting at |str| to |index|
+  // Must have been allocated using AllocateObjectAndArray().
+  // Return true on success, or false on failure
+  bool CopyIndexAfterObject(unsigned int index, const void* src, size_t size);
+
+  // Write data_
+  bool Flush();
+
+ private:
+  enum AllocationState {
+    UNALLOCATED = 0,
+    SINGLE_OBJECT,
+    ARRAY,
+    SINGLE_OBJECT_WITH_ARRAY
+  };
+
+  MDType data_;
+  AllocationState allocation_state_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_MINIDUMP_FILE_WRITER_H__
diff --git a/src/client/minidump_file_writer_unittest.cc b/src/client/minidump_file_writer_unittest.cc
new file mode 100644
index 0000000..16c407d
--- /dev/null
+++ b/src/client/minidump_file_writer_unittest.cc
@@ -0,0 +1,180 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: waylonis@google.com (Dan Waylonis)
+
+/*
+ g++ -I../ ../common/convert_UTF.cc \
+ ../common/string_conversion.cc \
+ minidump_file_writer.cc \
+ minidump_file_writer_unittest.cc \
+ -o minidump_file_writer_unittest
+ */
+
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "minidump_file_writer-inl.h"
+
+using google_breakpad::MinidumpFileWriter;
+
+#define ASSERT_TRUE(cond) \
+if (!(cond)) { \
+  fprintf(stderr, "FAILED: %s at %s:%d\n", #cond, __FILE__, __LINE__); \
+    return false; \
+}
+
+#define ASSERT_EQ(e1, e2) ASSERT_TRUE((e1) == (e2))
+#define ASSERT_NE(e1, e2) ASSERT_TRUE((e1) != (e2))
+
+struct StringStructure {
+  unsigned long integer_value;
+  MDLocationDescriptor first_string;
+  MDLocationDescriptor second_string;
+};
+
+struct ArrayStructure {
+  unsigned char char_value;
+  unsigned short short_value;
+  unsigned long long_value;
+};
+
+typedef struct {
+  unsigned long count;
+  ArrayStructure array[0];
+} ObjectAndArrayStructure;
+
+static bool WriteFile(const char* path) {
+  MinidumpFileWriter writer;
+  if (writer.Open(path)) {
+    // Test a single structure
+    google_breakpad::TypedMDRVA<StringStructure> strings(&writer);
+    ASSERT_TRUE(strings.Allocate());
+    strings.get()->integer_value = 0xBEEF;
+    const char* first = "First String";
+    ASSERT_TRUE(writer.WriteString(first, 0, &strings.get()->first_string));
+    const wchar_t* second = L"Second String";
+    ASSERT_TRUE(writer.WriteString(second, 0, &strings.get()->second_string));
+
+    // Test an array structure
+    google_breakpad::TypedMDRVA<ArrayStructure> array(&writer);
+    unsigned int count = 10;
+    ASSERT_TRUE(array.AllocateArray(count));
+    for (unsigned char i = 0; i < count; ++i) {
+      ArrayStructure local;
+      local.char_value = i;
+      local.short_value = i + 1;
+      local.long_value = i + 2;
+      ASSERT_TRUE(array.CopyIndex(i, &local));
+    }
+
+    // Test an object followed by an array
+    google_breakpad::TypedMDRVA<ObjectAndArrayStructure> obj_array(&writer);
+    ASSERT_TRUE(obj_array.AllocateObjectAndArray(count,
+                                                 sizeof(ArrayStructure)));
+    obj_array.get()->count = count;
+    for (unsigned char i = 0; i < count; ++i) {
+      ArrayStructure local;
+      local.char_value = i;
+      local.short_value = i + 1;
+      local.long_value = i + 2;
+      ASSERT_TRUE(obj_array.CopyIndexAfterObject(i, &local, sizeof(local)));
+    }
+  }
+
+  return writer.Close();
+}
+
+static bool CompareFile(const char* path) {
+  unsigned long expected[] = {
+#if defined(__BIG_ENDIAN__)
+    0x0000beef, 0x0000001e, 0x00000018, 0x00000020, 0x00000038, 0x00000000, 
+    0x00000018, 0x00460069, 0x00720073, 0x00740020, 0x00530074, 0x00720069,
+    0x006e0067, 0x00000000, 0x0000001a, 0x00530065, 0x0063006f, 0x006e0064,
+    0x00200053, 0x00740072, 0x0069006e, 0x00670000, 0x00000001, 0x00000002,
+    0x01000002, 0x00000003, 0x02000003, 0x00000004, 0x03000004, 0x00000005,
+    0x04000005, 0x00000006, 0x05000006, 0x00000007, 0x06000007, 0x00000008,
+    0x07000008, 0x00000009, 0x08000009, 0x0000000a, 0x0900000a, 0x0000000b,
+    0x0000000a, 0x00000001, 0x00000002, 0x01000002, 0x00000003, 0x02000003,
+    0x00000004, 0x03000004, 0x00000005, 0x04000005, 0x00000006, 0x05000006,
+    0x00000007, 0x06000007, 0x00000008, 0x07000008, 0x00000009, 0x08000009,
+    0x0000000a, 0x0900000a, 0x0000000b, 0x00000000
+#else
+    0x0000beef, 0x0000001e, 0x00000018, 0x00000020,
+    0x00000038, 0x00000000, 0x00000018, 0x00690046,
+    0x00730072, 0x00200074, 0x00740053, 0x00690072,
+    0x0067006e, 0x00000000, 0x0000001a, 0x00650053,
+    0x006f0063, 0x0064006e, 0x00530020, 0x00720074,
+    0x006e0069, 0x00000067, 0x00011e00, 0x00000002,
+    0x00021e01, 0x00000003, 0x00031e02, 0x00000004,
+    0x00041e03, 0x00000005, 0x00051e04, 0x00000006,
+    0x00061e05, 0x00000007, 0x00071e06, 0x00000008,
+    0x00081e07, 0x00000009, 0x00091e08, 0x0000000a,
+    0x000a1e09, 0x0000000b, 0x0000000a, 0x00011c00,
+    0x00000002, 0x00021c01, 0x00000003, 0x00031c02,
+    0x00000004, 0x00041c03, 0x00000005, 0x00051c04,
+    0x00000006, 0x00061c05, 0x00000007, 0x00071c06,
+    0x00000008, 0x00081c07, 0x00000009, 0x00091c08,
+    0x0000000a, 0x000a1c09, 0x0000000b, 0x00000000,
+#endif
+  };
+  size_t expected_byte_count = sizeof(expected);
+  int fd = open(path, O_RDONLY, 0600);
+  void* buffer = malloc(expected_byte_count);
+  ASSERT_NE(fd, -1);
+  ASSERT_TRUE(buffer);
+  ASSERT_EQ(read(fd, buffer, expected_byte_count), 
+            static_cast<ssize_t>(expected_byte_count));
+
+  char* b1;
+  char* b2;
+  b1 = reinterpret_cast<char*>(buffer);
+  b2 = reinterpret_cast<char*>(expected);
+  while (*b1 == *b2) {
+    b1++;
+    b2++;
+  }
+
+  printf("%p\n", reinterpret_cast<void*>(b1 - (char*)buffer));
+
+  ASSERT_EQ(memcmp(buffer, expected, expected_byte_count), 0);
+  return true;
+}
+
+static bool RunTests() {
+  const char* path = "/tmp/minidump_file_writer_unittest.dmp";
+  ASSERT_TRUE(WriteFile(path));
+  ASSERT_TRUE(CompareFile(path));
+  unlink(path);
+  return true;
+}
+
+extern "C" int main(int argc, const char* argv[]) {
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/client/solaris/handler/Makefile b/src/client/solaris/handler/Makefile
new file mode 100644
index 0000000..6da9464
--- /dev/null
+++ b/src/client/solaris/handler/Makefile
@@ -0,0 +1,77 @@
+# Copyright (c) 2007, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Author: Alfred Peng
+
+CC=cc
+CXX=CC
+
+CPPFLAGS=-g -I../../.. -DNDEBUG -features=extensions -D_REENTRANT
+LDFLAGS=-lpthread -lssl -lgnutls-openssl -lelf
+
+OBJ_DIR=.
+BIN_DIR=.
+
+THREAD_SRC=solaris_lwp.cc
+SHARE_SRC=../../minidump_file_writer.cc\
+	  ../../../common/convert_UTF.cc\
+	  ../../../common/md5.cc\
+	  ../../../common/string_conversion.cc\
+	  ../../../common/solaris/file_id.cc\
+	  minidump_generator.cc
+HANDLER_SRC=exception_handler.cc\
+	  ../../../common/solaris/guid_creator.cc
+
+MINIDUMP_TEST_SRC=minidump_test.cc
+EXCEPTION_TEST_SRC=exception_handler_test.cc
+
+THREAD_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(THREAD_SRC))
+SHARE_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(SHARE_SRC))
+HANDLER_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(HANDLER_SRC))
+MINIDUMP_TEST_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o, $(MINIDUMP_TEST_SRC))\
+		  $(THREAD_OBJ) $(SHARE_OBJ) $(HANDLER_OBJ)
+EXCEPTION_TEST_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o, $(EXCEPTION_TEST_SRC))\
+          $(THREAD_OBJ) $(SHARE_OBJ) $(HANDLER_OBJ)
+
+BIN=$(BIN_DIR)/minidump_test\
+    $(BIN_DIR)/exception_handler_test
+
+.PHONY:all clean
+
+all:$(BIN)
+
+$(BIN_DIR)/minidump_test:$(MINIDUMP_TEST_OBJ)
+	$(CXX) $(CPPFLAGS) $(LDFLAGS) $^ -o $@
+
+$(BIN_DIR)/exception_handler_test:$(EXCEPTION_TEST_OBJ)
+	$(CXX) $(CPPFLAGS) $(LDFLAGS) $^ -o $@
+
+clean:
+	rm -f $(BIN) *.o *.out *.dmp core ../../minidump_file_writer.o\
+		../../../common/*.o ../../../common/solaris/*.o
diff --git a/src/client/solaris/handler/exception_handler.cc b/src/client/solaris/handler/exception_handler.cc
new file mode 100644
index 0000000..c96683f
--- /dev/null
+++ b/src/client/solaris/handler/exception_handler.cc
@@ -0,0 +1,258 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <cassert>
+#include <cstdlib>
+#include <ctime>
+
+#include "client/solaris/handler/exception_handler.h"
+#include "common/solaris/guid_creator.h"
+#include "common/solaris/message_output.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Signals that we are interested.
+static const int kSigTable[] = {
+  SIGSEGV,
+  SIGABRT,
+  SIGFPE,
+  SIGILL,
+  SIGBUS
+};
+
+std::vector<ExceptionHandler*>* ExceptionHandler::handler_stack_ = NULL;
+int ExceptionHandler::handler_stack_index_ = 0;
+pthread_mutex_t ExceptionHandler::handler_stack_mutex_ =
+  PTHREAD_MUTEX_INITIALIZER;
+
+ExceptionHandler::ExceptionHandler(const string& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   bool install_handler)
+    : filter_(filter),
+      callback_(callback),
+      callback_context_(callback_context),
+      dump_path_(),
+      installed_handler_(install_handler) {
+  set_dump_path(dump_path);
+
+  if (install_handler) {
+    SetupHandler();
+  }
+
+  if (install_handler) {
+    pthread_mutex_lock(&handler_stack_mutex_);
+
+    if (handler_stack_ == NULL)
+      handler_stack_ = new std::vector<ExceptionHandler*>;
+    handler_stack_->push_back(this);
+    pthread_mutex_unlock(&handler_stack_mutex_);
+  }
+}
+
+ExceptionHandler::~ExceptionHandler() {
+  TeardownAllHandlers();
+  pthread_mutex_lock(&handler_stack_mutex_);
+  if (handler_stack_->back() == this) {
+    handler_stack_->pop_back();
+  } else {
+    print_message1(2, "warning: removing Breakpad handler out of order\n");
+    for (std::vector<ExceptionHandler*>::iterator iterator =
+         handler_stack_->begin();
+         iterator != handler_stack_->end();
+         ++iterator) {
+      if (*iterator == this) {
+        handler_stack_->erase(iterator);
+      }
+    }
+  }
+
+  if (handler_stack_->empty()) {
+    // When destroying the last ExceptionHandler that installed a handler,
+    // clean up the handler stack.
+    delete handler_stack_;
+    handler_stack_ = NULL;
+  }
+  pthread_mutex_unlock(&handler_stack_mutex_);
+}
+
+bool ExceptionHandler::WriteMinidump() {
+  return InternalWriteMinidump(0, 0, NULL);
+}
+
+// static
+bool ExceptionHandler::WriteMinidump(const string& dump_path,
+                                     MinidumpCallback callback,
+                                     void* callback_context) {
+  ExceptionHandler handler(dump_path, NULL, callback,
+                           callback_context, false);
+  return handler.InternalWriteMinidump(0, 0, NULL);
+}
+
+void ExceptionHandler::SetupHandler() {
+  // Signal on a different stack to avoid using the stack
+  // of the crashing lwp.
+  struct sigaltstack sig_stack;
+  sig_stack.ss_sp = malloc(MINSIGSTKSZ);
+  if (sig_stack.ss_sp == NULL)
+    return;
+  sig_stack.ss_size = MINSIGSTKSZ;
+  sig_stack.ss_flags = 0;
+
+  if (sigaltstack(&sig_stack, NULL) < 0)
+    return;
+  for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i)
+    SetupHandler(kSigTable[i]);
+}
+
+void ExceptionHandler::SetupHandler(int signo) {
+  struct sigaction act, old_act;
+  act.sa_handler = HandleException;
+  act.sa_flags = SA_ONSTACK;
+  if (sigaction(signo, &act, &old_act) < 0)
+    return;
+  old_handlers_[signo] = old_act.sa_handler;
+}
+
+void ExceptionHandler::TeardownHandler(int signo) {
+  if (old_handlers_.find(signo) != old_handlers_.end()) {
+    struct sigaction act;
+    act.sa_handler = old_handlers_[signo];
+    act.sa_flags = 0;
+    sigaction(signo, &act, 0);
+  }
+}
+
+void ExceptionHandler::TeardownAllHandlers() {
+  for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i) {
+    TeardownHandler(kSigTable[i]);
+  }
+}
+
+// static
+void ExceptionHandler::HandleException(int signo) {
+//void ExceptionHandler::HandleException(int signo, siginfo_t* sip, ucontext_t* sig_ctx) {
+  // The context information about the signal is put on the stack of
+  // the signal handler frame as value parameter. For some reasons, the
+  // prototype of the handler doesn't declare this information as parameter, we
+  // will do it by hand. The stack layout for a signal handler frame is here:
+  // http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libproc/common/Pstack.c#81
+  //
+  // However, if we are being called by another signal handler passing the
+  // signal up the chain, then we may not have this random extra parameter,
+  // so we may have to walk the stack to find it.  We do the actual work
+  // on another thread, where it's a little safer, but we want the ebp
+  // from this frame to find it.
+  uintptr_t current_ebp = (uintptr_t)_getfp();
+
+  pthread_mutex_lock(&handler_stack_mutex_);
+  ExceptionHandler* current_handler =
+    handler_stack_->at(handler_stack_->size() - ++handler_stack_index_);
+  pthread_mutex_unlock(&handler_stack_mutex_);
+
+  // Restore original handler.
+  current_handler->TeardownHandler(signo);
+
+  ucontext_t* sig_ctx = NULL;
+  if (current_handler->InternalWriteMinidump(signo, current_ebp, &sig_ctx)) {
+//  if (current_handler->InternalWriteMinidump(signo, &sig_ctx)) {
+    // Fully handled this exception, safe to exit.
+    exit(EXIT_FAILURE);
+  } else {
+    // Exception not fully handled, will call the next handler in stack to
+    // process it.
+    typedef void (*SignalHandler)(int signo);
+    SignalHandler old_handler =
+      reinterpret_cast<SignalHandler>(current_handler->old_handlers_[signo]);
+    if (old_handler != NULL)
+      old_handler(signo);
+  }
+
+  pthread_mutex_lock(&handler_stack_mutex_);
+  current_handler->SetupHandler(signo);
+  --handler_stack_index_;
+  // All the handlers in stack have been invoked to handle the exception,
+  // normally the process should be terminated and should not reach here.
+  // In case we got here, ask the OS to handle it to avoid endless loop,
+  // normally the OS will generate a core and termiate the process. This
+  // may be desired to debug the program.
+  if (handler_stack_index_ == 0)
+    signal(signo, SIG_DFL);
+  pthread_mutex_unlock(&handler_stack_mutex_);
+}
+
+bool ExceptionHandler::InternalWriteMinidump(int signo,
+                                             uintptr_t sighandler_ebp,
+                                             ucontext_t** sig_ctx) {
+  if (filter_ && !filter_(callback_context_))
+    return false;
+
+  bool success = false;
+  GUID guid;
+  char guid_str[kGUIDStringLength + 1];
+  if (CreateGUID(&guid) && GUIDToString(&guid, guid_str, sizeof(guid_str))) {
+    char minidump_path[PATH_MAX];
+    snprintf(minidump_path, sizeof(minidump_path), "%s/%s.dmp",
+             dump_path_c_, guid_str);
+
+    // Block all the signals we want to process when writing minidump.
+    // We don't want it to be interrupted.
+    sigset_t sig_blocked, sig_old;
+    bool blocked = true;
+    sigfillset(&sig_blocked);
+    for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i)
+      sigdelset(&sig_blocked, kSigTable[i]);
+    if (sigprocmask(SIG_BLOCK, &sig_blocked, &sig_old) != 0) {
+      blocked = false;
+      print_message1(2, "HandleException: failed to block signals.\n");
+    }
+
+    success = minidump_generator_.WriteMinidumpToFile(
+                       minidump_path, signo, sighandler_ebp, sig_ctx);
+
+    // Unblock the signals.
+    if (blocked)
+      sigprocmask(SIG_SETMASK, &sig_old, &sig_old);
+
+    if (callback_)
+      success = callback_(dump_path_c_, guid_str, callback_context_, success);
+  }
+  return success;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/solaris/handler/exception_handler.h b/src/client/solaris/handler/exception_handler.h
new file mode 100644
index 0000000..cd6c85e
--- /dev/null
+++ b/src/client/solaris/handler/exception_handler.h
@@ -0,0 +1,201 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: Alfred Peng
+
+#ifndef CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
+#define CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "client/solaris/handler/minidump_generator.h"
+
+namespace google_breakpad {
+
+using std::string;
+
+//
+// ExceptionHandler
+//
+// ExceptionHandler can write a minidump file when an exception occurs,
+// or when WriteMinidump() is called explicitly by your program.
+//
+// To have the exception handler write minidumps when an uncaught exception
+// (crash) occurs, you should create an instance early in the execution
+// of your program, and keep it around for the entire time you want to
+// have crash handling active (typically, until shutdown).
+// (NOTE): There should be only one this kind of exception handler
+// object per process.
+//
+// If you want to write minidumps without installing the exception handler,
+// you can create an ExceptionHandler with install_handler set to false,
+// then call WriteMinidump.  You can also use this technique if you want to
+// use different minidump callbacks for different call sites.
+//
+// In either case, a callback function is called when a minidump is written,
+// which receives the unqiue id of the minidump.  The caller can use this
+// id to collect and write additional application state, and to launch an
+// external crash-reporting application.
+//
+// Caller should try to make the callbacks as crash-friendly as possible,
+// it should avoid use heap memory allocation as much as possible.
+//
+class ExceptionHandler {
+ public:
+  // A callback function to run before Breakpad performs any substantial
+  // processing of an exception.  A FilterCallback is called before writing
+  // a minidump.  context is the parameter supplied by the user as
+  // callback_context when the handler was created.
+  //
+  // If a FilterCallback returns true, Breakpad will continue processing,
+  // attempting to write a minidump.  If a FilterCallback returns false,
+  // Breakpad  will immediately report the exception as unhandled without
+  // writing a minidump, allowing another handler the opportunity to handle it.
+  typedef bool (*FilterCallback)(void* context);
+
+  // A callback function to run after the minidump has been written.
+  // minidump_id is a unique id for the dump, so the minidump
+  // file is <dump_path>/<minidump_id>.dmp.  context is the parameter supplied
+  // by the user as callback_context when the handler was created.  succeeded
+  // indicates whether a minidump file was successfully written.
+  //
+  // If an exception occurred and the callback returns true, Breakpad will
+  // treat the exception as fully-handled, suppressing any other handlers from
+  // being notified of the exception.  If the callback returns false, Breakpad
+  // will treat the exception as unhandled, and allow another handler to handle
+  // it. If there are no other handlers, Breakpad will report the exception to
+  // the system as unhandled, allowing a debugger or native crash dialog the
+  // opportunity to handle the exception.  Most callback implementations
+  // should normally return the value of |succeeded|, or when they wish to
+  // not report an exception of handled, false.  Callbacks will rarely want to
+  // return true directly (unless |succeeded| is true).
+  typedef bool (*MinidumpCallback)(const char* dump_path,
+                                   const char* minidump_id,
+                                   void* context,
+                                   bool succeeded);
+
+  // Creates a new ExceptionHandler instance to handle writing minidumps.
+  // Before writing a minidump, the optional filter callback will be called.
+  // Its return value determines whether or not Breakpad should write a
+  // minidump.  Minidump files will be written to dump_path, and the optional
+  // callback is called after writing the dump file, as described above.
+  // If install_handler is true, then a minidump will be written whenever
+  // an unhandled exception occurs.  If it is false, minidumps will only
+  // be written when WriteMinidump is called.
+  ExceptionHandler(const string& dump_path,
+                   FilterCallback filter, MinidumpCallback callback,
+                   void* callback_context,
+                   bool install_handler);
+  ~ExceptionHandler();
+
+  // Get and Set the minidump path.
+  string dump_path() const { return dump_path_; }
+  void set_dump_path(const string& dump_path) {
+    dump_path_ = dump_path;
+    dump_path_c_ = dump_path_.c_str();
+  }
+
+  // Writes a minidump immediately.  This can be used to capture the
+  // execution state independently of a crash.  Returns true on success.
+  bool WriteMinidump();
+
+  // Convenience form of WriteMinidump which does not require an
+  // ExceptionHandler instance.
+  static bool WriteMinidump(const string& dump_path,
+                            MinidumpCallback callback,
+                            void* callback_context);
+
+ private:
+  // Setup crash handler.
+  void SetupHandler();
+  // Setup signal handler for a signal.
+  void SetupHandler(int signo);
+  // Teardown the handler for a signal.
+  void TeardownHandler(int signo);
+  // Teardown all handlers.
+  void TeardownAllHandlers();
+
+  // Runs the main loop for the exception handler thread.
+  static void* ExceptionHandlerThreadMain(void* lpParameter);
+
+  // Signal handler.
+  static void HandleException(int signo);
+
+  // Write all the information to the dump file.
+  // If called from a signal handler, sighandler_ebp is the ebp of
+  // that signal handler's frame, and sig_ctx is an out parameter
+  // that will be set to point at the ucontext_t that was placed
+  // on the stack by the kernel.  You can pass zero and NULL
+  // for the second and third parameters if you are not calling
+  // this from a signal handler.
+  bool InternalWriteMinidump(int signo, uintptr_t sighandler_ebp,
+                             ucontext_t** sig_ctx);
+
+ private:
+  // The callbacks before and after writing the dump file.
+  FilterCallback filter_;
+  MinidumpCallback callback_;
+  void* callback_context_;
+
+  // The directory in which a minidump will be written, set by the dump_path
+  // argument to the constructor, or set_dump_path.
+  string dump_path_;
+  // C style dump path. Keep this when setting dump path, since calling
+  // c_str() of std::string when crashing may not be safe.
+  const char* dump_path_c_;
+
+  // True if the ExceptionHandler installed an unhandled exception filter
+  // when created (with an install_handler parameter set to true).
+  bool installed_handler_;
+
+  // Keep the previous handlers for the signal.
+  typedef void (*sighandler_t)(int);
+  std::map<int, sighandler_t> old_handlers_;
+
+  // The global exception handler stack. This is need becuase there may exist
+  // multiple ExceptionHandler instances in a process. Each will have itself
+  // registered in this stack.
+  static std::vector<ExceptionHandler*>* handler_stack_;
+  // The index of the handler that should handle the next exception.
+  static int handler_stack_index_;
+  static pthread_mutex_t handler_stack_mutex_;
+
+  // The minidump generator.
+  MinidumpGenerator minidump_generator_;
+
+  // disallow copy ctor and operator=
+  explicit ExceptionHandler(const ExceptionHandler&);
+  void operator=(const ExceptionHandler&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
diff --git a/src/client/solaris/handler/exception_handler_test.cc b/src/client/solaris/handler/exception_handler_test.cc
new file mode 100644
index 0000000..4d2b33f
--- /dev/null
+++ b/src/client/solaris/handler/exception_handler_test.cc
@@ -0,0 +1,119 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <pthread.h>
+#include <unistd.h>
+
+#include <cassert>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+
+#include "client/solaris/handler/exception_handler.h"
+#include "client/solaris/handler/solaris_lwp.h"
+
+using namespace google_breakpad;
+
+// Thread use this to see if it should stop working.
+static bool should_exit = false;
+
+static int foo2(int arg) {
+  // Stack variable, used for debugging stack dumps.
+  int c = 0xcccccccc;
+  fprintf(stderr, "Thread trying to crash: %x\n", getpid());
+  c = *reinterpret_cast<int*>(0x5);
+  return c;
+}
+
+static int foo(int arg) {
+  // Stack variable, used for debugging stack dumps.
+  int b = 0xbbbbbbbb;
+  b = foo2(b);
+  return b;
+}
+
+static void* thread_crash(void*) {
+  // Stack variable, used for debugging stack dumps.
+  int a = 0xaaaaaaaa;
+  sleep(3);
+  a = foo(a);
+  printf("%x\n", a);
+  return NULL;
+}
+
+static void* thread_main(void*) {
+  while (!should_exit)
+    sleep(1);
+  return NULL;
+}
+
+static void CreateCrashThread() {
+  pthread_t h;
+  pthread_create(&h, NULL, thread_crash, NULL);
+  pthread_detach(h);
+}
+
+// Create working threads.
+static void CreateThread(int num) {
+  pthread_t h;
+  for (int i = 0; i < num; ++i) {
+    pthread_create(&h, NULL, thread_main, NULL);
+    pthread_detach(h);
+  }
+}
+
+// Callback when minidump written.
+static bool MinidumpCallback(const char* dump_path,
+                             const char* minidump_id,
+                             void* context,
+                             bool succeeded) {
+  int index = reinterpret_cast<int>(context);
+  if (index == 0) {
+    should_exit = true;
+    return true;
+  }
+  // Don't process it.
+  return false;
+}
+
+int main(int argc, char* argv[]) {
+  int handler_index = 1;
+  ExceptionHandler handler_ignore(".", NULL, MinidumpCallback,
+                                  (void*)handler_index, true);
+  CreateCrashThread();
+  CreateThread(10);
+
+  while (true)
+    sleep(20);
+  should_exit = true;
+
+  return 0;
+}
diff --git a/src/client/solaris/handler/minidump_generator.cc b/src/client/solaris/handler/minidump_generator.cc
new file mode 100644
index 0000000..5675666
--- /dev/null
+++ b/src/client/solaris/handler/minidump_generator.cc
@@ -0,0 +1,786 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <fcntl.h>
+#include <sys/frame.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <cstdlib>
+#include <ctime>
+
+#include "client/solaris/handler/minidump_generator.h"
+#include "client/minidump_file_writer-inl.h"
+#include "common/solaris/file_id.h"
+
+namespace {
+
+using namespace google_breakpad;
+
+// Argument for the writer function.
+struct WriterArgument {
+  MinidumpFileWriter* minidump_writer;
+
+  // Pid of the lwp who called WriteMinidumpToFile
+  int requester_pid;
+
+  // The stack bottom of the lwp which caused the dump.
+  // Mainly used to find the lwp id of the crashed lwp since signal
+  // handler may not be called in the lwp who caused it.
+  uintptr_t crashed_stack_bottom;
+
+  // Id of the crashing lwp.
+  int crashed_lwpid;
+
+  // Signal number when crash happened. Can be 0 if this is a requested dump.
+  int signo;
+
+  // The ebp of the signal handler frame on x86.  Can be 0 if this is a
+  // requested dump.
+  uintptr_t sighandler_ebp;
+
+  // User context when crash happens. Can be NULL if this is a requested dump.
+  // This is actually an out parameter, but it will be filled in at the start
+  // of the writer LWP.
+  ucontext_t* sig_ctx;
+
+  // Used to get information about the lwps.
+  SolarisLwp* lwp_lister;
+};
+
+// Holding context information for the callback of finding the crashing lwp.
+struct FindCrashLwpContext {
+  const SolarisLwp* lwp_lister;
+  uintptr_t crashing_stack_bottom;
+  int crashing_lwpid;
+
+  FindCrashLwpContext() :
+    lwp_lister(NULL),
+    crashing_stack_bottom(0UL),
+    crashing_lwpid(-1) {
+  }
+};
+
+// Callback for list lwps.
+// It will compare the stack bottom of the provided lwp with the stack
+// bottom of the crashed lwp, it they are eqaul, this lwp is the one
+// who crashed.
+bool IsLwpCrashedCallback(lwpstatus_t* lsp, void* context) {
+  FindCrashLwpContext* crashing_context =
+    static_cast<FindCrashLwpContext*>(context);
+  const SolarisLwp* lwp_lister = crashing_context->lwp_lister;
+  const prgregset_t* gregs = &(lsp->pr_reg);
+#if TARGET_CPU_SPARC
+  uintptr_t last_ebp = (*gregs)[R_FP];
+#elif TARGET_CPU_X86
+  uintptr_t last_ebp = (*gregs)[EBP];
+#endif
+  uintptr_t stack_bottom = lwp_lister->GetLwpStackBottom(last_ebp);
+  if (stack_bottom > last_ebp &&
+      stack_bottom == crashing_context->crashing_stack_bottom) {
+    // Got it. Stop iteration.
+    crashing_context->crashing_lwpid = lsp->pr_lwpid;
+    return false;
+  }
+
+  return true;
+}
+
+// Find the crashing lwpid.
+// This is done based on stack bottom comparing.
+int FindCrashingLwp(uintptr_t crashing_stack_bottom,
+                    int requester_pid,
+                    const SolarisLwp* lwp_lister) {
+  FindCrashLwpContext context;
+  context.lwp_lister = lwp_lister;
+  context.crashing_stack_bottom = crashing_stack_bottom;
+  CallbackParam<LwpCallback> callback_param(IsLwpCrashedCallback,
+                                            &context);
+  lwp_lister->Lwp_iter_all(lwp_lister->getpid(), &callback_param);
+  return context.crashing_lwpid;
+}
+
+bool WriteLwpStack(const SolarisLwp* lwp_lister,
+                   uintptr_t last_esp,
+                   UntypedMDRVA* memory,
+                   MDMemoryDescriptor* loc) {
+  uintptr_t stack_bottom = lwp_lister->GetLwpStackBottom(last_esp);
+  if (stack_bottom >= last_esp) {
+    int size = stack_bottom - last_esp;
+    if (size > 0) {
+      if (!memory->Allocate(size))
+        return false;
+      memory->Copy(reinterpret_cast<void*>(last_esp), size);
+      loc->start_of_memory_range = last_esp;
+      loc->memory = memory->location();
+    }
+    return true;
+  }
+  return false;
+}
+
+#if TARGET_CPU_SPARC
+bool WriteContext(MDRawContextSPARC* context, ucontext_t* sig_ctx) {
+  assert(sig_ctx != NULL);
+  int* regs = sig_ctx->uc_mcontext.gregs;
+  context->context_flags = MD_CONTEXT_SPARC_FULL;
+
+  context->ccr = (unsigned int)(regs[0]);
+  context->pc = (unsigned int)(regs[REG_PC]);
+  context->npc = (unsigned int)(regs[REG_nPC]);
+  context->y = (unsigned int)(regs[REG_Y]);
+  context->asi = (unsigned int)(regs[19]);
+  context->fprs = (unsigned int)(regs[20]);
+
+  for ( int i = 0 ; i < 32; ++i ) {
+    context->g_r[i] = 0;
+  }
+
+  for ( int i = 1 ; i < 16; ++i ) {
+    context->g_r[i] = (uintptr_t)(sig_ctx->uc_mcontext.gregs[i + 3]);
+  }
+  context->g_r[30] = (uintptr_t)(((struct frame*)context->g_r[14])->fr_savfp);
+
+  return true;
+}
+
+bool WriteContext(MDRawContextSPARC* context, prgregset_t regs,
+                  prfpregset_t* fp_regs) {
+  if (!context || !regs)
+    return false;
+
+  context->context_flags = MD_CONTEXT_SPARC_FULL;
+
+  context->ccr = (uintptr_t)(regs[32]);
+  context->pc = (uintptr_t)(regs[R_PC]);
+  context->npc = (uintptr_t)(regs[R_nPC]);
+  context->y = (uintptr_t)(regs[R_Y]);
+  context->asi = (uintptr_t)(regs[36]);
+  context->fprs = (uintptr_t)(regs[37]);
+  for ( int i = 0 ; i < 32 ; ++i ){
+    context->g_r[i] = (uintptr_t)(regs[i]);
+  }
+
+  return true;
+}
+#elif TARGET_CPU_X86
+bool WriteContext(MDRawContextX86* context, prgregset_t regs,
+                  prfpregset_t* fp_regs) {
+  if (!context || !regs)
+    return false;
+
+  context->context_flags = MD_CONTEXT_X86_FULL;
+
+  context->cs = regs[CS];
+  context->ds = regs[DS];
+  context->es = regs[ES];
+  context->fs = regs[FS];
+  context->gs = regs[GS];
+  context->ss = regs[SS];
+  context->edi = regs[EDI];
+  context->esi = regs[ESI];
+  context->ebx = regs[EBX];
+  context->edx = regs[EDX];
+  context->ecx = regs[ECX];
+  context->eax = regs[EAX];
+  context->ebp = regs[EBP];
+  context->eip = regs[EIP];
+  context->esp = regs[UESP];
+  context->eflags = regs[EFL];
+
+  return true;
+}
+#endif /* TARGET_CPU_XXX */
+
+// Write information about a crashed Lwp.
+// When a lwp crash, kernel will write something on the stack for processing
+// signal. This makes the current stack not reliable, and our stack walker
+// won't figure out the whole call stack for this. So we write the stack at the
+// time of the crash into the minidump file, not the current stack.
+bool WriteCrashedLwpStream(MinidumpFileWriter* minidump_writer,
+                           const WriterArgument* writer_args,
+                           const lwpstatus_t* lsp,
+                           MDRawThread* lwp) {
+  assert(writer_args->sig_ctx != NULL);
+
+  lwp->thread_id = lsp->pr_lwpid;
+
+#if TARGET_CPU_SPARC
+  UntypedMDRVA memory(minidump_writer);
+  if (!WriteLwpStack(writer_args->lwp_lister,
+                     writer_args->sig_ctx->uc_mcontext.gregs[REG_O6],
+                     &memory,
+                     &lwp->stack))
+    return false;
+
+  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  lwp->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextSPARC));
+  return WriteContext(context.get(), writer_args->sig_ctx);
+#elif TARGET_CPU_X86
+  UntypedMDRVA memory(minidump_writer);
+  if (!WriteLwpStack(writer_args->lwp_lister,
+                     writer_args->sig_ctx->uc_mcontext.gregs[UESP],
+                     &memory,
+                     &lwp->stack))
+    return false;
+
+  TypedMDRVA<MDRawContextX86> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  lwp->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextX86));
+  return WriteContext(context.get(),
+                      (int*)&writer_args->sig_ctx->uc_mcontext.gregs,
+                      &writer_args->sig_ctx->uc_mcontext.fpregs);
+#endif
+}
+
+bool WriteLwpStream(MinidumpFileWriter* minidump_writer,
+                    const SolarisLwp* lwp_lister,
+                    const lwpstatus_t* lsp, MDRawThread* lwp) {
+  prfpregset_t fp_regs = lsp->pr_fpreg;
+  const prgregset_t* gregs = &(lsp->pr_reg);
+  UntypedMDRVA memory(minidump_writer);
+#if TARGET_CPU_SPARC
+  if (!WriteLwpStack(lwp_lister,
+                     (*gregs)[R_SP],
+                     &memory,
+                     &lwp->stack))
+    return false;
+
+  // Write context
+  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  // should be the thread_id
+  lwp->thread_id = lsp->pr_lwpid;
+  lwp->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextSPARC));
+#elif TARGET_CPU_X86
+  if (!WriteLwpStack(lwp_lister,
+                     (*gregs)[UESP],
+                     &memory,
+                     &lwp->stack))
+  return false;
+
+  // Write context
+  TypedMDRVA<MDRawContextX86> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  // should be the thread_id
+  lwp->thread_id = lsp->pr_lwpid;
+  lwp->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextX86));
+#endif /* TARGET_CPU_XXX */
+  return WriteContext(context.get(), (int*)gregs, &fp_regs);
+}
+
+bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
+  struct utsname uts;
+  char *major, *minor, *build;
+
+  sys_info->number_of_processors = sysconf(_SC_NPROCESSORS_CONF);
+  sys_info->processor_architecture = MD_CPU_ARCHITECTURE_UNKNOWN;
+  if (uname(&uts) != -1) {
+    // Match "i86pc" as X86 architecture.
+    if (strcmp(uts.machine, "i86pc") == 0)
+      sys_info->processor_architecture = MD_CPU_ARCHITECTURE_X86;
+    else if (strcmp(uts.machine, "sun4u") == 0)
+      sys_info->processor_architecture = MD_CPU_ARCHITECTURE_SPARC;
+  }
+
+  major = uts.release;
+  minor = strchr(major, '.');
+  *minor = '\0';
+  ++minor;
+  sys_info->major_version = atoi(major);
+  sys_info->minor_version = atoi(minor);
+
+  build = strchr(uts.version, '_');
+  ++build;
+  sys_info->build_number = atoi(build);
+  
+  return true;
+}
+
+bool WriteOSInformation(MinidumpFileWriter* minidump_writer,
+                        MDRawSystemInfo* sys_info) {
+  sys_info->platform_id = MD_OS_SOLARIS;
+
+  struct utsname uts;
+  if (uname(&uts) != -1) {
+    char os_version[512];
+    size_t space_left = sizeof(os_version);
+    memset(os_version, 0, space_left);
+    const char* os_info_table[] = {
+      uts.sysname,
+      uts.release,
+      uts.version,
+      uts.machine,
+      "OpenSolaris",
+      NULL
+    };
+    for (const char** cur_os_info = os_info_table;
+         *cur_os_info != NULL;
+         ++cur_os_info) {
+      if (cur_os_info != os_info_table && space_left > 1) {
+        strcat(os_version, " ");
+        --space_left;
+      }
+      if (space_left > strlen(*cur_os_info)) {
+        strcat(os_version, *cur_os_info);
+        space_left -= strlen(*cur_os_info);
+      } else {
+        break;
+      }
+    }
+
+    MDLocationDescriptor location;
+    if (!minidump_writer->WriteString(os_version, 0, &location))
+      return false;
+    sys_info->csd_version_rva = location.rva;
+  }
+  return true;
+}
+
+// Callback context for get writting lwp information.
+struct LwpInfoCallbackCtx {
+  MinidumpFileWriter* minidump_writer;
+  const WriterArgument* writer_args;
+  TypedMDRVA<MDRawThreadList>* list;
+  int lwp_index;
+};
+
+bool LwpInformationCallback(lwpstatus_t* lsp, void* context) {
+  bool success = true;
+  LwpInfoCallbackCtx* callback_context =
+    static_cast<LwpInfoCallbackCtx*>(context);
+
+  // The current lwp is the one to handle the crash. Ignore it.
+  if (lsp->pr_lwpid != pthread_self()) {
+    LwpInfoCallbackCtx* callback_context =
+      static_cast<LwpInfoCallbackCtx*>(context);
+    MDRawThread lwp;
+    memset(&lwp, 0, sizeof(MDRawThread));
+
+    if (lsp->pr_lwpid != callback_context->writer_args->crashed_lwpid ||
+        callback_context->writer_args->sig_ctx == NULL) {
+      success = WriteLwpStream(callback_context->minidump_writer,
+                               callback_context->writer_args->lwp_lister,
+                               lsp, &lwp);
+    } else {
+      success = WriteCrashedLwpStream(callback_context->minidump_writer,
+                                      callback_context->writer_args,
+                                      lsp, &lwp);
+    }
+    if (success) {
+      callback_context->list->CopyIndexAfterObject(
+          callback_context->lwp_index++,
+          &lwp, sizeof(MDRawThread));
+    }
+  }
+
+  return success;
+}
+
+bool WriteLwpListStream(MinidumpFileWriter* minidump_writer,
+                        const WriterArgument* writer_args,
+                        MDRawDirectory* dir) {
+  // Get the lwp information.
+  const SolarisLwp* lwp_lister = writer_args->lwp_lister;
+  int lwp_count = lwp_lister->GetLwpCount();
+  if (lwp_count < 0)
+    return false;
+  TypedMDRVA<MDRawThreadList> list(minidump_writer);
+  if (!list.AllocateObjectAndArray(lwp_count - 1, sizeof(MDRawThread)))
+    return false;
+  dir->stream_type = MD_THREAD_LIST_STREAM;
+  dir->location = list.location();
+  list.get()->number_of_threads = lwp_count - 1;
+
+  LwpInfoCallbackCtx context;
+  context.minidump_writer = minidump_writer;
+  context.writer_args = writer_args;
+  context.list = &list;
+  context.lwp_index = 0;
+  CallbackParam<LwpCallback> callback_param(LwpInformationCallback,
+                                            &context);
+  int written =
+    lwp_lister->Lwp_iter_all(lwp_lister->getpid(), &callback_param);
+  return written == lwp_count;
+}
+
+bool WriteCVRecord(MinidumpFileWriter* minidump_writer,
+                   MDRawModule* module,
+                   const char* module_path,
+                   char* realname) {
+  TypedMDRVA<MDCVInfoPDB70> cv(minidump_writer);
+
+  char path[PATH_MAX];
+  const char* module_name = module_path ? module_path : "<Unknown>";
+  snprintf(path, sizeof(path), "/proc/self/object/%s", module_name);
+
+  size_t module_name_length = strlen(realname);
+  if (!cv.AllocateObjectAndArray(module_name_length + 1, sizeof(uint8_t)))
+    return false;
+  if (!cv.CopyIndexAfterObject(0, realname, module_name_length))
+    return false;
+
+  module->cv_record = cv.location();
+  MDCVInfoPDB70* cv_ptr = cv.get();
+  memset(cv_ptr, 0, sizeof(MDCVInfoPDB70));
+  cv_ptr->cv_signature = MD_CVINFOPDB70_SIGNATURE;
+  cv_ptr->age = 0;
+
+  // Get the module identifier
+  FileID file_id(path);
+  unsigned char identifier[16];
+
+  if (file_id.ElfFileIdentifier(identifier)) {
+    cv_ptr->signature.data1 = (uint32_t)identifier[0] << 24 |
+      (uint32_t)identifier[1] << 16 | (uint32_t)identifier[2] << 8 |
+      (uint32_t)identifier[3];
+    cv_ptr->signature.data2 = (uint32_t)identifier[4] << 8 | identifier[5];
+    cv_ptr->signature.data3 = (uint32_t)identifier[6] << 8 | identifier[7];
+    cv_ptr->signature.data4[0] = identifier[8];
+    cv_ptr->signature.data4[1] = identifier[9];
+    cv_ptr->signature.data4[2] = identifier[10];
+    cv_ptr->signature.data4[3] = identifier[11];
+    cv_ptr->signature.data4[4] = identifier[12];
+    cv_ptr->signature.data4[5] = identifier[13];
+    cv_ptr->signature.data4[6] = identifier[14];
+    cv_ptr->signature.data4[7] = identifier[15];
+  }
+  return true;
+}
+
+struct ModuleInfoCallbackCtx {
+  MinidumpFileWriter* minidump_writer;
+  const WriterArgument* writer_args;
+  TypedMDRVA<MDRawModuleList>* list;
+  int module_index;
+};
+
+bool ModuleInfoCallback(const ModuleInfo& module_info, void* context) {
+  ModuleInfoCallbackCtx* callback_context =
+    static_cast<ModuleInfoCallbackCtx*>(context);
+  // Skip those modules without name, or those that are not modules.
+  if (strlen(module_info.name) == 0)
+    return true;
+
+  MDRawModule module;
+  memset(&module, 0, sizeof(module));
+  MDLocationDescriptor loc;
+  char path[PATH_MAX];
+  char buf[PATH_MAX];
+  char* realname;
+  int count;
+
+  snprintf(path, sizeof (path), "/proc/self/path/%s", module_info.name);
+  if ((count = readlink(path, buf, PATH_MAX)) < 0)
+    return false;
+  buf[count] = '\0';
+
+  if ((realname = strrchr(buf, '/')) == NULL)
+    return false;
+  realname++;
+
+  if (!callback_context->minidump_writer->WriteString(realname, 0, &loc))
+    return false;
+
+  module.base_of_image = (uint64_t)module_info.start_addr;
+  module.size_of_image = module_info.size;
+  module.module_name_rva = loc.rva;
+
+  if (!WriteCVRecord(callback_context->minidump_writer, &module,
+                     module_info.name, realname))
+    return false;
+
+  callback_context->list->CopyIndexAfterObject(
+      callback_context->module_index++, &module, MD_MODULE_SIZE);
+  return true;
+}
+
+bool WriteModuleListStream(MinidumpFileWriter* minidump_writer,
+                           const WriterArgument* writer_args,
+                           MDRawDirectory* dir) {
+  TypedMDRVA<MDRawModuleList> list(minidump_writer);
+  int module_count = writer_args->lwp_lister->GetModuleCount();
+
+  if (module_count <= 0 ||
+      !list.AllocateObjectAndArray(module_count, MD_MODULE_SIZE)) {
+    return false;
+  }
+
+  dir->stream_type = MD_MODULE_LIST_STREAM;
+  dir->location = list.location();
+  list.get()->number_of_modules = module_count;
+  ModuleInfoCallbackCtx context;
+  context.minidump_writer = minidump_writer;
+  context.writer_args = writer_args;
+  context.list = &list;
+  context.module_index = 0;
+  CallbackParam<ModuleCallback> callback(ModuleInfoCallback, &context);
+  return writer_args->lwp_lister->ListModules(&callback) == module_count;
+}
+
+bool WriteSystemInfoStream(MinidumpFileWriter* minidump_writer,
+                           const WriterArgument* writer_args,
+                           MDRawDirectory* dir) {
+  TypedMDRVA<MDRawSystemInfo> sys_info(minidump_writer);
+
+  if (!sys_info.Allocate())
+    return false;
+
+  dir->stream_type = MD_SYSTEM_INFO_STREAM;
+  dir->location = sys_info.location();
+
+  return WriteCPUInformation(sys_info.get()) &&
+         WriteOSInformation(minidump_writer, sys_info.get());
+}
+
+bool WriteExceptionStream(MinidumpFileWriter* minidump_writer,
+                          const WriterArgument* writer_args,
+                          MDRawDirectory* dir) {
+  // This happenes when this is not a crash, but a requested dump.
+  if (writer_args->sig_ctx == NULL)
+    return false;
+
+  TypedMDRVA<MDRawExceptionStream> exception(minidump_writer);
+  if (!exception.Allocate())
+    return false;
+
+  dir->stream_type = MD_EXCEPTION_STREAM;
+  dir->location = exception.location();
+  exception.get()->thread_id = writer_args->crashed_lwpid;
+  exception.get()->exception_record.exception_code = writer_args->signo;
+  exception.get()->exception_record.exception_flags = 0;
+
+#if TARGET_CPU_SPARC
+  if (writer_args->sig_ctx != NULL) {
+    exception.get()->exception_record.exception_address = 
+      writer_args->sig_ctx->uc_mcontext.gregs[REG_PC];
+  } else {
+    return true;
+  }
+
+  // Write context of the exception.
+  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  exception.get()->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextSPARC));
+  return WriteContext(context.get(), writer_args->sig_ctx);
+#elif TARGET_CPU_X86
+  if (writer_args->sig_ctx != NULL) {
+    exception.get()->exception_record.exception_address =
+      writer_args->sig_ctx->uc_mcontext.gregs[EIP];
+  } else {
+    return true;
+  }
+
+  // Write context of the exception.
+  TypedMDRVA<MDRawContextX86> context(minidump_writer);
+  if (!context.Allocate())
+    return false;
+  exception.get()->thread_context = context.location();
+  memset(context.get(), 0, sizeof(MDRawContextX86));
+  return WriteContext(context.get(),
+                      (int*)&writer_args->sig_ctx->uc_mcontext.gregs,
+                      NULL);
+#endif
+}
+
+bool WriteMiscInfoStream(MinidumpFileWriter* minidump_writer,
+                         const WriterArgument* writer_args,
+                         MDRawDirectory* dir) {
+  TypedMDRVA<MDRawMiscInfo> info(minidump_writer);
+
+  if (!info.Allocate())
+    return false;
+
+  dir->stream_type = MD_MISC_INFO_STREAM;
+  dir->location = info.location();
+  info.get()->size_of_info = sizeof(MDRawMiscInfo);
+  info.get()->flags1 = MD_MISCINFO_FLAGS1_PROCESS_ID;
+  info.get()->process_id = writer_args->requester_pid;
+
+  return true;
+}
+
+bool WriteBreakpadInfoStream(MinidumpFileWriter* minidump_writer,
+                             const WriterArgument* writer_args,
+                             MDRawDirectory* dir) {
+  TypedMDRVA<MDRawBreakpadInfo> info(minidump_writer);
+
+  if (!info.Allocate())
+    return false;
+
+  dir->stream_type = MD_BREAKPAD_INFO_STREAM;
+  dir->location = info.location();
+
+  info.get()->validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID |
+                         MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID;
+  info.get()->dump_thread_id = getpid();
+  info.get()->requesting_thread_id = writer_args->requester_pid;
+  return true;
+}
+
+class AutoLwpResumer {
+ public:
+  AutoLwpResumer(SolarisLwp* lwp) : lwp_(lwp) {}
+  ~AutoLwpResumer() { lwp_->ControlAllLwps(false); }
+ private:
+  SolarisLwp* lwp_;
+};
+
+// Prototype of writer functions.
+typedef bool (*WriteStreamFN)(MinidumpFileWriter*,
+                              const WriterArgument*,
+                              MDRawDirectory*);
+
+// Function table to writer a full minidump.
+const WriteStreamFN writers[] = {
+  WriteLwpListStream,
+  WriteModuleListStream,
+  WriteSystemInfoStream,
+  WriteExceptionStream,
+  WriteMiscInfoStream,
+  WriteBreakpadInfoStream,
+};
+
+// Will call each writer function in the writers table.
+//void* MinidumpGenerator::Write(void* argument) {
+void* Write(void* argument) {
+  WriterArgument* writer_args = static_cast<WriterArgument*>(argument);
+
+  if (!writer_args->lwp_lister->ControlAllLwps(true))
+    return NULL;
+
+  AutoLwpResumer lwpResumer(writer_args->lwp_lister);
+
+  if (writer_args->sighandler_ebp != 0 &&
+      writer_args->lwp_lister->FindSigContext(writer_args->sighandler_ebp,
+                                              &writer_args->sig_ctx)) {
+    writer_args->crashed_stack_bottom = 
+      writer_args->lwp_lister->GetLwpStackBottom(
+#if TARGET_CPU_SPARC
+          writer_args->sig_ctx->uc_mcontext.gregs[REG_O6]
+#elif TARGET_CPU_X86
+          writer_args->sig_ctx->uc_mcontext.gregs[UESP]
+#endif
+      );
+
+    int crashed_lwpid = FindCrashingLwp(writer_args->crashed_stack_bottom,
+                                        writer_args->requester_pid,
+                                        writer_args->lwp_lister);
+    if (crashed_lwpid > 0)
+      writer_args->crashed_lwpid = crashed_lwpid;
+  }
+
+  MinidumpFileWriter* minidump_writer = writer_args->minidump_writer;
+  TypedMDRVA<MDRawHeader> header(minidump_writer);
+  TypedMDRVA<MDRawDirectory> dir(minidump_writer);
+  if (!header.Allocate())
+    return 0;
+
+  int writer_count = sizeof(writers) / sizeof(writers[0]);
+  // Need directory space for all writers.
+  if (!dir.AllocateArray(writer_count))
+    return 0;
+  header.get()->signature = MD_HEADER_SIGNATURE;
+  header.get()->version = MD_HEADER_VERSION;
+  header.get()->time_date_stamp = time(NULL);
+  header.get()->stream_count = writer_count;
+  header.get()->stream_directory_rva = dir.position();
+
+  int dir_index = 0;
+  MDRawDirectory local_dir;
+  for (int i = 0; i < writer_count; ++i) {
+    if ((*writers[i])(minidump_writer, writer_args, &local_dir))
+      dir.CopyIndex(dir_index++, &local_dir);
+  }
+
+  return 0;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+MinidumpGenerator::MinidumpGenerator() {
+}
+
+MinidumpGenerator::~MinidumpGenerator() {
+}
+
+// Write minidump into file.
+// It runs in a different thread from the crashing thread.
+bool MinidumpGenerator::WriteMinidumpToFile(const char* file_pathname,
+                                            int signo,
+                                            uintptr_t sighandler_ebp,
+                                            ucontext_t** sig_ctx) const {
+  // The exception handler thread.
+  pthread_t handler_thread;
+
+  assert(file_pathname != NULL);
+
+  if (file_pathname == NULL)
+    return false;
+
+  MinidumpFileWriter minidump_writer;
+  if (minidump_writer.Open(file_pathname)) {
+    WriterArgument argument;
+    memset(&argument, 0, sizeof(argument));
+    SolarisLwp lwp_lister(getpid());
+    argument.lwp_lister = &lwp_lister;
+    argument.minidump_writer = &minidump_writer;
+    argument.requester_pid = getpid();
+    argument.crashed_lwpid = pthread_self();
+    argument.signo = signo;
+    argument.sighandler_ebp = sighandler_ebp;
+    argument.sig_ctx = NULL;
+
+    pthread_create(&handler_thread, NULL, Write, (void*)&argument);
+    pthread_join(handler_thread, NULL);
+    return true;
+  }
+
+  return false;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/solaris/handler/minidump_generator.h b/src/client/solaris/handler/minidump_generator.h
new file mode 100644
index 0000000..daa6fe0
--- /dev/null
+++ b/src/client/solaris/handler/minidump_generator.h
@@ -0,0 +1,70 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#ifndef CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H__
+#define CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H__
+
+#include <ucontext.h>
+
+#include "client/minidump_file_writer.h"
+#include "client/solaris/handler/solaris_lwp.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+//
+// MinidumpGenerator
+//
+// A minidump generator should be created before any exception happen.
+//
+class MinidumpGenerator {
+  // Callback run for writing lwp information in the process.
+  friend bool LwpInformationCallback(lwpstatus_t* lsp, void* context);
+
+  // Callback run for writing module information in the process.
+  friend bool ModuleInfoCallback(const ModuleInfo& module_info, void* context);
+
+ public:
+  MinidumpGenerator();
+
+  ~MinidumpGenerator();
+
+  // Write minidump.
+  bool WriteMinidumpToFile(const char* file_pathname,
+                           int signo,
+                           uintptr_t sighandler_ebp,
+                           ucontext_t** sig_ctx) const;
+};
+
+}  // namespace google_breakpad
+
+#endif   // CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H_
diff --git a/src/client/solaris/handler/minidump_test.cc b/src/client/solaris/handler/minidump_test.cc
new file mode 100644
index 0000000..5f685ef
--- /dev/null
+++ b/src/client/solaris/handler/minidump_test.cc
@@ -0,0 +1,75 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <pthread.h>
+#include <unistd.h>
+
+#include "client/minidump_file_writer.h"
+#include "client/solaris/handler/minidump_generator.h"
+
+using std::string;
+using google_breakpad::MinidumpGenerator;
+
+static bool doneWritingReport = false;
+
+static void* Reporter(void*) {
+  char buffer[PATH_MAX];
+  MinidumpGenerator md;
+
+  // Write it to the desktop
+  snprintf(buffer, sizeof(buffer), "./minidump_test.out");
+  fprintf(stdout, "Writing %s\n", buffer);
+
+  md.WriteMinidumpToFile(buffer, 0, 0, NULL);
+  doneWritingReport = true;
+
+  return NULL;
+}
+
+static void SleepyFunction() {
+  while (!doneWritingReport) {
+    usleep(100);
+  }
+}
+
+int main(int argc, char * const argv[]) {
+  pthread_t reporter_thread;
+
+  if (pthread_create(&reporter_thread, NULL, Reporter, NULL) == 0) {
+    pthread_detach(reporter_thread);
+  } else {
+    perror("pthread_create");
+  }
+
+  SleepyFunction();
+
+  return 0;
+}
diff --git a/src/client/solaris/handler/solaris_lwp.cc b/src/client/solaris/handler/solaris_lwp.cc
new file mode 100644
index 0000000..cb6cc8a
--- /dev/null
+++ b/src/client/solaris/handler/solaris_lwp.cc
@@ -0,0 +1,436 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <dirent.h>
+#include <elf.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <sys/frame.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <cassert>
+#include <cstdio>
+#include <cstdlib>
+#include <functional>
+
+#include "client/solaris/handler/solaris_lwp.h"
+#include "common/solaris/message_output.h"
+
+using namespace google_breakpad;
+
+// This unamed namespace contains helper function.
+namespace {
+
+uintptr_t stack_base_address = 0;
+static const int HEADER_MAX = 2000;
+static const int MAP_MAX = 1000;
+
+// Context information for the callbacks when validating address by listing
+// modules.
+struct AddressValidatingContext {
+  uintptr_t address;
+  bool is_mapped;
+
+  AddressValidatingContext() : address(0UL), is_mapped(false) {
+  }
+};
+
+// Convert from string to int.
+static bool LocalAtoi(char* s, int* r) {
+  assert(s != NULL);
+  assert(r != NULL);
+  char* endptr = NULL;
+  int ret = strtol(s, &endptr, 10);
+  if (endptr == s)
+    return false;
+  *r = ret;
+  return true;
+}
+
+// Callback invoked for each mapped module.
+// It uses the module's adderss range to validate the address.
+static bool AddressNotInModuleCallback(const ModuleInfo& module_info,
+                                       void* context) {
+  AddressValidatingContext* addr =
+    reinterpret_cast<AddressValidatingContext*>(context);
+  if (addr->is_mapped = ((module_info.start_addr > 0) &&
+                         (addr->address >= module_info.start_addr) &&
+                         (addr->address <= module_info.start_addr +
+                          module_info.size))) {
+    stack_base_address = module_info.start_addr + module_info.size;
+  }
+
+  return !addr->is_mapped;
+}
+
+static int IterateLwpAll(int pid,
+                         CallbackParam<LwpidCallback>* callback_param) {
+  char lwp_path[40];
+  DIR* dir;
+  int count = 0;
+
+  snprintf(lwp_path, sizeof (lwp_path), "/proc/%d/lwp", (int)pid);
+  if ((dir = opendir(lwp_path)) == NULL)
+    return -1;
+
+  struct dirent* entry = NULL;
+  while ((entry = readdir(dir)) != NULL) {
+    if ((strcmp(entry->d_name, ".") != 0) &&
+        (strcmp(entry->d_name, "..") != 0)) {
+      int lwpid = 0;
+      int last_pid = 0;
+      if (LocalAtoi(entry->d_name, &lwpid) && last_pid != lwpid) {
+        last_pid = lwpid;
+        ++count;
+        if (callback_param &&
+            !(callback_param->call_back)(lwpid, callback_param->context)) {
+          break;
+        }
+      }
+    }
+  }
+
+  closedir(dir);
+  return count;
+}
+
+#if defined(__i386) && !defined(NO_FRAME_POINTER)
+void* GetNextFrame(void** last_ebp) {
+  void* sp = *last_ebp;
+  if ((unsigned long)sp == (unsigned long)last_ebp)
+    return NULL;
+  if ((unsigned long)sp & (sizeof(void*) - 1))
+    return NULL;
+  if ((unsigned long)sp - (unsigned long)last_ebp > 100000)
+    return NULL;
+  return sp;
+}
+#elif defined(__sparc)
+void* GetNextFrame(void* last_ebp) {
+  return reinterpret_cast<struct frame*>(last_ebp)->fr_savfp;
+}
+#else
+void* GetNextFrame(void** last_ebp) {
+  return reinterpret_cast<void*>(last_ebp);
+}
+#endif
+
+
+class AutoCloser {
+ public:
+  AutoCloser(int fd) : fd_(fd) {}
+  ~AutoCloser() { if (fd_) close(fd_); }
+ private:
+  int fd_;
+};
+
+// Control the execution of the lwp.
+// Suspend/Resume lwp based on the value of context.
+static bool ControlLwp(int lwpid, void* context) {
+  // The current thread is the one to handle the crash. Ignore it.
+  if (lwpid != pthread_self()) {
+    int ctlfd;
+    char procname[PATH_MAX];
+    bool suspend = *(bool*)context;
+
+    // Open the /proc/$pid/lwp/$lwpid/lwpctl files
+    snprintf(procname, sizeof (procname), "/proc/self/lwp/%d/lwpctl", lwpid);
+
+    if ((ctlfd = open(procname, O_WRONLY|O_EXCL)) < 0) {
+      print_message2(2, "failed to open %s in ControlLwp\n", procname);
+      return false;
+    }
+
+    AutoCloser autocloser(ctlfd);
+
+    long ctl[2];
+    ctl[0] = suspend ? PCSTOP : PCRUN;
+    ctl[1] = 0;
+    if (write(ctlfd, ctl, sizeof (ctl)) != sizeof (ctl)) {
+      print_message2(2, "failed in lwp %d\n", lwpid);
+      return false;
+    }
+  }
+
+  return true;
+}
+
+/*
+ * Utility function to read the contents of a file that contains a
+ * prheader_t at the start (/proc/$pid/lstatus or /proc/$pid/lpsinfo).
+ * Return true on success.
+ */
+static bool read_lfile(int pid, const char* lname, prheader_t* lhp) {
+  char lpath[PATH_MAX];
+  struct stat statb;
+  int fd;
+  size_t size;
+
+  snprintf(lpath, sizeof (lpath), "/proc/%d/%s", pid, lname);
+  if ((fd = open(lpath, O_RDONLY)) < 0) {
+    print_message2(2, "failed to open %s in read_lfile\n", lpath);
+    return false;
+  }
+
+  AutoCloser autocloser(fd);
+
+  if (fstat(fd, &statb) != 0)
+    return false;
+
+  size = statb.st_size;
+  if ((size / sizeof (prheader_t)) + 32 > HEADER_MAX) {
+    print_message1(2, "map size overflow\n");
+    return false;
+  }
+
+  if (pread(fd, lhp, size, 0) <= sizeof (prheader_t))
+    return false;
+
+  return true;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+SolarisLwp::SolarisLwp(int pid) : pid_(pid) {
+}
+
+SolarisLwp::~SolarisLwp() {
+}
+
+int SolarisLwp::ControlAllLwps(bool suspend) {
+  CallbackParam<LwpidCallback> callback_param(ControlLwp, &suspend);
+  return IterateLwpAll(pid_, &callback_param);
+}
+
+int SolarisLwp::GetLwpCount() const {
+  return IterateLwpAll(pid_, NULL);
+}
+
+int SolarisLwp::Lwp_iter_all(int pid,
+                             CallbackParam<LwpCallback>* callback_param) const {
+  lwpstatus_t* Lsp;
+  lwpstatus_t* sp;
+  prheader_t lphp[HEADER_MAX];
+  prheader_t lhp[HEADER_MAX];
+  prheader_t* Lphp = lphp;
+  prheader_t* Lhp = lhp;
+  lwpsinfo_t* Lpsp;
+  long nstat;
+  long ninfo;
+  int rv = 0;
+
+  /*
+   * The /proc/pid/lstatus file has the array of lwpstatus_t's and the
+   * /proc/pid/lpsinfo file has the array of lwpsinfo_t's.
+   */
+  if (read_lfile(pid, "lstatus", Lhp) == NULL)
+    return -1;
+  if (read_lfile(pid, "lpsinfo", Lphp) == NULL) {
+    return -1;
+  }
+
+  Lsp = (lwpstatus_t*)(uintptr_t)(Lhp + 1);
+  Lpsp = (lwpsinfo_t*)(uintptr_t)(Lphp + 1);
+
+  for (ninfo = Lphp->pr_nent; ninfo != 0; --ninfo) {
+    if (Lpsp->pr_sname != 'Z') {
+      sp = Lsp;
+      Lsp = (lwpstatus_t*)((uintptr_t)Lsp + Lhp->pr_entsize);
+    } else {
+      sp = NULL;
+    }
+    if (callback_param &&
+        !(callback_param->call_back)(sp, callback_param->context))
+      break;
+    ++rv;
+    Lpsp = (lwpsinfo_t*)((uintptr_t)Lpsp + Lphp->pr_entsize);
+  }
+
+  return rv;
+}
+
+uintptr_t SolarisLwp::GetLwpStackBottom(uintptr_t current_esp) const {
+  AddressValidatingContext addr;
+  addr.address = current_esp;
+  CallbackParam<ModuleCallback> callback_param(AddressNotInModuleCallback,
+                                               &addr);
+  ListModules(&callback_param);
+  return stack_base_address;
+}
+
+int SolarisLwp::GetModuleCount() const {
+  return ListModules(NULL);
+}
+
+int SolarisLwp::ListModules(
+    CallbackParam<ModuleCallback>* callback_param) const {
+  const char* maps_path = "/proc/self/map";
+  struct stat status;
+  int fd = 0, num;
+  prmap_t map_array[MAP_MAX];
+  prmap_t* maps = map_array;
+  size_t size;
+
+  if ((fd = open(maps_path, O_RDONLY)) == -1) {
+    print_message2(2, "failed to open %s in ListModules\n", maps_path);
+    return -1;
+  }
+
+  AutoCloser autocloser(fd);
+
+  if (fstat(fd, &status))
+    return -1;
+
+  /*
+   * Determine number of mappings, this value must be 
+   * larger than the actual module count
+   */
+  size = status.st_size;
+  if ((num = (int)(size / sizeof (prmap_t))) > MAP_MAX) {
+    print_message1(2, "map size overflow\n");
+    return -1;
+  }
+
+  if (read(fd, (void*)maps, size) < 0) {
+    print_message2(2, "failed to read %d\n", fd);
+    return -1;
+  }
+
+  prmap_t* _maps;
+  int _num;
+  int module_count = 0;
+  
+  /*
+   * Scan each mapping - note it is assummed that the mappings are
+   * presented in order.  We fill holes between mappings.  On intel
+   * the last mapping is usually the data segment of ld.so.1, after
+   * this comes a red zone into which non-fixed mapping won't get
+   * place.  Thus we can simply bail from the loop after seeing the
+   * last mapping.
+   */
+  for (_num = 0, _maps = maps; _num < num; ++_num, ++_maps) {
+    ModuleInfo module;
+    char* name = _maps->pr_mapname;
+
+    memset(&module, 0, sizeof (module));
+    module.start_addr = _maps->pr_vaddr;
+    module.size = _maps->pr_size;
+    if (strlen(name) > 0) {
+      int objectfd = 0;
+      char path[PATH_MAX];
+      char buf[SELFMAG];
+
+      snprintf(path, sizeof (path), "/proc/self/object/%s", name);
+      if ((objectfd = open(path, O_RDONLY)) < 0) {
+        print_message1(2, "can't open module file\n");
+        continue;
+      }
+
+      AutoCloser autocloser(objectfd);
+
+      if (read(objectfd, buf, SELFMAG) != SELFMAG) {
+        print_message1(2, "can't read module file\n");
+        continue;
+      }
+      if (buf[0] != ELFMAG0 || buf[1] != ELFMAG1 ||
+          buf[2] != ELFMAG2 || buf[3] != ELFMAG3) {
+        continue;
+      }
+
+      strncpy(module.name, name, sizeof (module.name) - 1);
+      ++module_count;
+    }
+    if (callback_param &&
+        (!callback_param->call_back(module, callback_param->context))) {
+      break;
+    }
+  }
+
+  return module_count;
+}
+
+// Check if the address is a valid virtual address.
+// If the address is in any of the mapped modules, we take it as valid.
+// Otherwise it is invalid.
+bool SolarisLwp::IsAddressMapped(uintptr_t address) const {
+  AddressValidatingContext addr;
+  addr.address = address;
+  CallbackParam<ModuleCallback> callback_param(AddressNotInModuleCallback,
+                                               &addr);
+  ListModules(&callback_param);
+  return addr.is_mapped;
+}
+
+// We're looking for a ucontext_t as the second parameter
+// to a signal handler function call.  Luckily, the ucontext_t
+// has an ebp(fp on SPARC) member which should match the ebp(fp)
+// pointed to by the ebp(fp) of the signal handler frame.
+// The Solaris stack looks like this:
+// http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libproc/common/Pstack.c#81
+bool SolarisLwp::FindSigContext(uintptr_t sighandler_ebp,
+                                ucontext_t** sig_ctx) {
+  uintptr_t previous_ebp;
+  uintptr_t sig_ebp;
+  const int MAX_STACK_DEPTH = 50;
+  int depth_counter = 0;
+
+  do {
+#if TARGET_CPU_SPARC
+    previous_ebp = reinterpret_cast<uintptr_t>(GetNextFrame(
+                                  reinterpret_cast<void*>(sighandler_ebp)));
+    *sig_ctx = reinterpret_cast<ucontext_t*>(sighandler_ebp + sizeof (struct frame));
+    uintptr_t sig_esp = (*sig_ctx)->uc_mcontext.gregs[REG_O6];
+    if (sig_esp < previous_ebp && sig_esp > sighandler_ebp)
+      sig_ebp = (uintptr_t)(((struct frame*)sig_esp)->fr_savfp);
+
+#elif TARGET_CPU_X86
+    previous_ebp = reinterpret_cast<uintptr_t>(GetNextFrame(
+                                  reinterpret_cast<void**>(sighandler_ebp)));
+    *sig_ctx = reinterpret_cast<ucontext_t*>(sighandler_ebp + sizeof (struct frame) +
+                                             3 * sizeof(uintptr_t));
+    sig_ebp = (*sig_ctx)->uc_mcontext.gregs[EBP];
+#endif
+    sighandler_ebp = previous_ebp;
+    depth_counter++;
+  } while(previous_ebp != sig_ebp && sighandler_ebp != 0 &&
+          IsAddressMapped(sighandler_ebp) && depth_counter < MAX_STACK_DEPTH);
+
+  return previous_ebp == sig_ebp && previous_ebp != 0;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/solaris/handler/solaris_lwp.h b/src/client/solaris/handler/solaris_lwp.h
new file mode 100644
index 0000000..afe352c
--- /dev/null
+++ b/src/client/solaris/handler/solaris_lwp.h
@@ -0,0 +1,160 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#ifndef CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
+#define CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
+
+#if defined(sparc) || defined(__sparc)
+#define TARGET_CPU_SPARC 1
+#elif defined(i386) || defined(__i386)
+#define TARGET_CPU_X86 1
+#else
+#error "cannot determine cpu type"
+#endif
+
+#include <signal.h>
+#include <stdint.h>
+#include <sys/user.h>
+#include <ucontext.h>
+
+#ifndef _KERNEL
+#define _KERNEL
+#define MUST_UNDEF_KERNEL
+#endif  // _KERNEL
+#include <sys/procfs.h>
+#ifdef MUST_UNDEF_KERNEL
+#undef _KERNEL
+#undef MUST_UNDEF_KERNEL
+#endif  // MUST_UNDEF_KERNEL
+
+namespace google_breakpad {
+
+// Max module path name length.
+static const int kMaxModuleNameLength = 256;
+
+// Holding infomaton about a module in the process.
+struct ModuleInfo {
+  char name[kMaxModuleNameLength];
+  uintptr_t start_addr;
+  int size;
+};
+
+// A callback to run when getting a lwp in the process.
+// Return true will go on to the next lwp while return false will stop the
+// iteration.
+typedef bool (*LwpCallback)(lwpstatus_t* lsp, void* context);
+
+// A callback to run when a new module is found in the process.
+// Return true will go on to the next module while return false will stop the
+// iteration.
+typedef bool (*ModuleCallback)(const ModuleInfo& module_info, void* context);
+
+// A callback to run when getting a lwpid in the process.
+// Return true will go on to the next lwp while return false will stop the
+// iteration.
+typedef bool (*LwpidCallback)(int lwpid, void* context);
+
+// Holding the callback information.
+template<class CallbackFunc>
+struct CallbackParam {
+  // Callback function address.
+  CallbackFunc call_back;
+  // Callback context;
+  void* context;
+
+  CallbackParam() : call_back(NULL), context(NULL) {
+  }
+
+  CallbackParam(CallbackFunc func, void* func_context) :
+    call_back(func), context(func_context) {
+  }
+};
+
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// SolarisLwp
+//
+// Provides handy support for operation on Solaris lwps.
+// It uses proc file system to get lwp information.
+//
+// TODO(Alfred): Currently it only supports x86. Add SPARC support.
+//
+class SolarisLwp {
+ public:
+  // Create a SolarisLwp instance to list all the lwps in a process.
+  explicit SolarisLwp(int pid);
+  ~SolarisLwp();
+
+  int getpid() const { return this->pid_; }
+
+  // Control all the lwps in the process.
+  // Return the number of suspended/resumed lwps in the process.
+  // Return -1 means failed to control lwps.
+  int ControlAllLwps(bool suspend);
+
+  // Get the count of lwps in the process.
+  // Return -1 means error.
+  int GetLwpCount() const;
+
+  // Iterate the lwps of process.
+  // Whenever there is a lwp found, the callback will be invoked to process
+  // the information.
+  // Return the callback return value or -1 on error.
+  int Lwp_iter_all(int pid, CallbackParam<LwpCallback>* callback_param) const;
+
+  // Get the module count of the current process.
+  int GetModuleCount() const;
+
+  // Get the mapped modules in the address space.
+  // Whenever a module is found, the callback will be invoked to process the
+  // information.
+  // Return how may modules are found.
+  int ListModules(CallbackParam<ModuleCallback>* callback_param) const;
+
+  // Get the bottom of the stack from esp.
+  uintptr_t GetLwpStackBottom(uintptr_t current_esp) const;
+
+  // Finds a signal context on the stack given the ebp of our signal handler.
+  bool FindSigContext(uintptr_t sighandler_ebp, ucontext_t** sig_ctx);
+
+ private:
+  // Check if the address is a valid virtual address.
+  bool IsAddressMapped(uintptr_t address) const;
+
+ private:
+  // The pid of the process we are listing lwps.
+  int pid_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
diff --git a/src/client/windows/breakpad_client.gyp b/src/client/windows/breakpad_client.gyp
new file mode 100644
index 0000000..6479753
--- /dev/null
+++ b/src/client/windows/breakpad_client.gyp
@@ -0,0 +1,66 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'build_all',
+      'type': 'none',
+      'dependencies': [
+        './crash_generation/crash_generation.gyp:*',
+        './handler/exception_handler.gyp:*',
+        './sender/crash_report_sender.gyp:*',
+        './unittests/client_tests.gyp:*',
+        './unittests/testing.gyp:*',
+        './tests/crash_generation_app/crash_generation_app.gyp:*',
+      ]
+    },
+    {
+      'target_name': 'common',
+      'type': 'static_library',
+      'include_dirs': [
+        '<(DEPTH)',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '<(DEPTH)',
+        ]
+      },
+      'sources': [
+        '<(DEPTH)/common/windows/guid_string.cc',
+        '<(DEPTH)/common/windows/guid_string.h',
+        '<(DEPTH)/common/windows/http_upload.cc',
+        '<(DEPTH)/common/windows/http_upload.h',
+        '<(DEPTH)/common/windows/string_utils.cc',
+      ]
+    }
+  ]
+}
diff --git a/src/client/windows/common/auto_critical_section.h b/src/client/windows/common/auto_critical_section.h
new file mode 100644
index 0000000..3fd4b9b
--- /dev/null
+++ b/src/client/windows/common/auto_critical_section.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_COMMON_AUTO_CRITICAL_SECTION_H__
+#define CLIENT_WINDOWS_COMMON_AUTO_CRITICAL_SECTION_H__
+
+#include <windows.h>
+
+namespace google_breakpad {
+
+// Automatically enters the critical section in the constructor and leaves
+// the critical section in the destructor.
+class AutoCriticalSection {
+ public:
+  // Creates a new instance with the given critical section object
+  // and enters the critical section immediately.
+  explicit AutoCriticalSection(CRITICAL_SECTION* cs) : cs_(cs), taken_(false) {
+    assert(cs_);
+    Acquire();
+  }
+
+  // Destructor: leaves the critical section.
+  ~AutoCriticalSection() {
+    if (taken_) {
+      Release();
+    }
+  }
+
+  // Enters the critical section. Recursive Acquire() calls are not allowed.
+  void Acquire() {
+    assert(!taken_);
+    EnterCriticalSection(cs_);
+    taken_ = true;
+  }
+
+  // Leaves the critical section. The caller should not call Release() unless
+  // the critical seciton has been entered already.
+  void Release() {
+    assert(taken_);
+    taken_ = false;
+    LeaveCriticalSection(cs_);
+  }
+
+ private:
+  // Disable copy ctor and operator=.
+  AutoCriticalSection(const AutoCriticalSection&);
+  AutoCriticalSection& operator=(const AutoCriticalSection&);
+
+  CRITICAL_SECTION* cs_;
+  bool taken_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_COMMON_AUTO_CRITICAL_SECTION_H__
diff --git a/src/client/windows/common/ipc_protocol.h b/src/client/windows/common/ipc_protocol.h
new file mode 100644
index 0000000..c748681
--- /dev/null
+++ b/src/client/windows/common/ipc_protocol.h
@@ -0,0 +1,181 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_COMMON_IPC_PROTOCOL_H__
+#define CLIENT_WINDOWS_COMMON_IPC_PROTOCOL_H__
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <string>
+#include <utility>
+#include "common/windows/string_utils-inl.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Name/value pair for custom client information.
+struct CustomInfoEntry {
+  // Maximum length for name and value for client custom info.
+  static const int kNameMaxLength = 64;
+  static const int kValueMaxLength = 64;
+
+  CustomInfoEntry() {
+    // Putting name and value in initializer list makes VC++ show warning 4351.
+    set_name(NULL);
+    set_value(NULL);
+  }
+
+  CustomInfoEntry(const wchar_t* name_arg, const wchar_t* value_arg) {
+    set_name(name_arg);
+    set_value(value_arg);
+  }
+
+  void set_name(const wchar_t* name_arg) {
+    if (!name_arg) {
+      name[0] = L'\0';
+      return;
+    }
+    WindowsStringUtils::safe_wcscpy(name, kNameMaxLength, name_arg);
+  }
+
+  void set_value(const wchar_t* value_arg) {
+    if (!value_arg) {
+      value[0] = L'\0';
+      return;
+    }
+
+    WindowsStringUtils::safe_wcscpy(value, kValueMaxLength, value_arg);
+  }
+
+  void set(const wchar_t* name_arg, const wchar_t* value_arg) {
+    set_name(name_arg);
+    set_value(value_arg);
+  }
+
+  wchar_t name[kNameMaxLength];
+  wchar_t value[kValueMaxLength];
+};
+
+// Constants for the protocol between client and the server.
+
+// Tags sent with each message indicating the purpose of
+// the message.
+enum MessageTag {
+  MESSAGE_TAG_NONE = 0,
+  MESSAGE_TAG_REGISTRATION_REQUEST = 1,
+  MESSAGE_TAG_REGISTRATION_RESPONSE = 2,
+  MESSAGE_TAG_REGISTRATION_ACK = 3,
+  MESSAGE_TAG_UPLOAD_REQUEST = 4
+};
+
+struct CustomClientInfo {
+  const CustomInfoEntry* entries;
+  size_t count;
+};
+
+// Message structure for IPC between crash client and crash server.
+struct ProtocolMessage {
+  ProtocolMessage()
+      : tag(MESSAGE_TAG_NONE),
+        id(0),
+        dump_type(MiniDumpNormal),
+        thread_id(0),
+        exception_pointers(NULL),
+        assert_info(NULL),
+        custom_client_info(),
+        dump_request_handle(NULL),
+        dump_generated_handle(NULL),
+        server_alive_handle(NULL) {
+  }
+
+  // Creates an instance with the given parameters.
+  ProtocolMessage(MessageTag arg_tag,
+                  DWORD arg_id,
+                  MINIDUMP_TYPE arg_dump_type,
+                  DWORD* arg_thread_id,
+                  EXCEPTION_POINTERS** arg_exception_pointers,
+                  MDRawAssertionInfo* arg_assert_info,
+                  const CustomClientInfo& custom_info,
+                  HANDLE arg_dump_request_handle,
+                  HANDLE arg_dump_generated_handle,
+                  HANDLE arg_server_alive)
+    : tag(arg_tag),
+      id(arg_id),
+      dump_type(arg_dump_type),
+      thread_id(arg_thread_id),
+      exception_pointers(arg_exception_pointers),
+      assert_info(arg_assert_info),
+      custom_client_info(custom_info),
+      dump_request_handle(arg_dump_request_handle),
+      dump_generated_handle(arg_dump_generated_handle),
+      server_alive_handle(arg_server_alive) {
+  }
+
+  // Tag in the message.
+  MessageTag tag;
+
+  // The id for this message. This may be either a process id or a crash id
+  // depending on the type of message.
+  DWORD id;
+
+  // Dump type requested.
+  MINIDUMP_TYPE dump_type;
+
+  // Client thread id pointer.
+  DWORD* thread_id;
+
+  // Exception information.
+  EXCEPTION_POINTERS** exception_pointers;
+
+  // Assert information in case of an invalid parameter or
+  // pure call failure.
+  MDRawAssertionInfo* assert_info;
+
+  // Custom client information.
+  CustomClientInfo custom_client_info;
+
+  // Handle to signal the crash event.
+  HANDLE dump_request_handle;
+
+  // Handle to check if server is done generating crash.
+  HANDLE dump_generated_handle;
+
+  // Handle to a mutex that becomes signaled (WAIT_ABANDONED)
+  // if server process goes down.
+  HANDLE server_alive_handle;
+
+ private:
+  // Disable copy ctor and operator=.
+  ProtocolMessage(const ProtocolMessage& msg);
+  ProtocolMessage& operator=(const ProtocolMessage& msg);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_COMMON_IPC_PROTOCOL_H__
diff --git a/src/client/windows/crash_generation/ReadMe.txt b/src/client/windows/crash_generation/ReadMe.txt
new file mode 100644
index 0000000..b54d0e1
--- /dev/null
+++ b/src/client/windows/crash_generation/ReadMe.txt
@@ -0,0 +1,58 @@
+=========================================================================
+ State machine transitions for the Crash Generation Server
+=========================================================================
+
+=========================================================================
+               |
+ STATE         | ACTIONS
+               |
+=========================================================================
+ ERROR         | Clean up resources used to serve clients.
+               | Always remain in ERROR state.
+-------------------------------------------------------------------------
+ INITIAL       | Connect to the pipe asynchronously.
+               | If connection is successfully queued up asynchronously,
+               | go into CONNECTING state.
+               | If connection is done synchronously, go into CONNECTED
+               | state.
+               | For any unexpected problems, go into ERROR state.
+-------------------------------------------------------------------------
+ CONNECTING    | Get the result of async connection request.
+               | If I/O is still incomplete, remain in the CONNECTING
+               | state.
+               | If connection is complete, go into CONNECTED state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ CONNECTED     | Read from the pipe asynchronously.
+               | If read request is successfully queued up asynchronously,
+               | go into READING state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ READING       | Get the result of async read request.
+               | If read is done, go into READ_DONE state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ READ_DONE     | Register the client, prepare the reply and write the
+               | reply to the pipe asynchronously.
+               | If write request is successfully queued up asynchronously,
+               | go into WRITING state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ WRITING       | Get the result of the async write request.
+               | If write is done, go into WRITE_DONE state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ WRITE_DONE    | Read from the pipe asynchronously (for an ACK).
+               | If read request is successfully queued up asynchonously,
+               | go into READING_ACK state.
+               | For any unexpected problems, go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ READING_ACK   | Get the result of the async read request.
+               | If read is done, perform action for successful client
+               | connection.
+               | Go into DISCONNECTING state.
+-------------------------------------------------------------------------
+ DISCONNECTING | Disconnect from the pipe, reset the event and go into
+               | INITIAL state and signal the event again. If anything
+               | fails, go into ERROR state.
+=========================================================================
diff --git a/src/client/windows/crash_generation/client_info.cc b/src/client/windows/crash_generation/client_info.cc
new file mode 100644
index 0000000..ed31263
--- /dev/null
+++ b/src/client/windows/crash_generation/client_info.cc
@@ -0,0 +1,223 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/crash_generation/client_info.h"
+#include "client/windows/common/ipc_protocol.h"
+
+static const wchar_t kCustomInfoProcessUptimeName[] = L"ptime";
+static const size_t kMaxCustomInfoEntries = 4096;
+
+namespace google_breakpad {
+
+ClientInfo::ClientInfo(CrashGenerationServer* crash_server,
+                       DWORD pid,
+                       MINIDUMP_TYPE dump_type,
+                       DWORD* thread_id,
+                       EXCEPTION_POINTERS** ex_info,
+                       MDRawAssertionInfo* assert_info,
+                       const CustomClientInfo& custom_client_info)
+    : crash_server_(crash_server),
+      pid_(pid),
+      dump_type_(dump_type),
+      ex_info_(ex_info),
+      assert_info_(assert_info),
+      custom_client_info_(custom_client_info),
+      thread_id_(thread_id),
+      process_handle_(NULL),
+      dump_requested_handle_(NULL),
+      dump_generated_handle_(NULL),
+      dump_request_wait_handle_(NULL),
+      process_exit_wait_handle_(NULL),
+      crash_id_(NULL) {
+  GetSystemTimeAsFileTime(&start_time_);
+}
+
+bool ClientInfo::Initialize() {
+  process_handle_ = OpenProcess(GENERIC_ALL, FALSE, pid_);
+  if (!process_handle_) {
+    return false;
+  }
+
+  // The crash_id will be the low order word of the process creation time.
+  FILETIME creation_time, exit_time, kernel_time, user_time;
+  if (GetProcessTimes(process_handle_, &creation_time, &exit_time,
+                      &kernel_time, &user_time)) {
+    start_time_ = creation_time;
+  }
+  crash_id_ = start_time_.dwLowDateTime;
+
+  dump_requested_handle_ = CreateEvent(NULL,    // Security attributes.
+                                       TRUE,    // Manual reset.
+                                       FALSE,   // Initial state.
+                                       NULL);   // Name.
+  if (!dump_requested_handle_) {
+    return false;
+  }
+
+  dump_generated_handle_ = CreateEvent(NULL,    // Security attributes.
+                                       TRUE,    // Manual reset.
+                                       FALSE,   // Initial state.
+                                       NULL);   // Name.
+  return dump_generated_handle_ != NULL;
+}
+
+void ClientInfo::UnregisterDumpRequestWaitAndBlockUntilNoPending() {
+  if (dump_request_wait_handle_) {
+    // Wait for callbacks that might already be running to finish.
+    UnregisterWaitEx(dump_request_wait_handle_, INVALID_HANDLE_VALUE);
+    dump_request_wait_handle_ = NULL;
+  }
+}
+
+void ClientInfo::UnregisterProcessExitWait(bool block_until_no_pending) {
+  if (process_exit_wait_handle_) {
+    if (block_until_no_pending) {
+      // Wait for the callback that might already be running to finish.
+      UnregisterWaitEx(process_exit_wait_handle_, INVALID_HANDLE_VALUE);
+    } else {
+      UnregisterWait(process_exit_wait_handle_);
+    }
+    process_exit_wait_handle_ = NULL;
+  }
+}
+
+ClientInfo::~ClientInfo() {
+  // Waiting for the callback to finish here is safe because ClientInfo's are
+  // never destroyed from the dump request handling callback.
+  UnregisterDumpRequestWaitAndBlockUntilNoPending();
+
+  // This is a little tricky because ClientInfo's may be destroyed by the same
+  // callback (OnClientEnd) and waiting for it to finish will cause a deadlock.
+  // Regardless of this complication, wait for any running callbacks to finish
+  // so that the common case is properly handled.  In order to avoid deadlocks,
+  // the OnClientEnd callback must call UnregisterProcessExitWait(false)
+  // before deleting the ClientInfo.
+  UnregisterProcessExitWait(true);
+
+  if (process_handle_) {
+    CloseHandle(process_handle_);
+  }
+
+  if (dump_requested_handle_) {
+    CloseHandle(dump_requested_handle_);
+  }
+
+  if (dump_generated_handle_) {
+    CloseHandle(dump_generated_handle_);
+  }
+}
+
+bool ClientInfo::GetClientExceptionInfo(EXCEPTION_POINTERS** ex_info) const {
+  SIZE_T bytes_count = 0;
+  if (!ReadProcessMemory(process_handle_,
+                         ex_info_,
+                         ex_info,
+                         sizeof(*ex_info),
+                         &bytes_count)) {
+    return false;
+  }
+
+  return bytes_count == sizeof(*ex_info);
+}
+
+bool ClientInfo::GetClientThreadId(DWORD* thread_id) const {
+  SIZE_T bytes_count = 0;
+  if (!ReadProcessMemory(process_handle_,
+                         thread_id_,
+                         thread_id,
+                         sizeof(*thread_id),
+                         &bytes_count)) {
+    return false;
+  }
+
+  return bytes_count == sizeof(*thread_id);
+}
+
+void ClientInfo::SetProcessUptime() {
+  FILETIME now = {0};
+  GetSystemTimeAsFileTime(&now);
+
+  ULARGE_INTEGER time_start;
+  time_start.HighPart = start_time_.dwHighDateTime;
+  time_start.LowPart = start_time_.dwLowDateTime;
+
+  ULARGE_INTEGER time_now;
+  time_now.HighPart = now.dwHighDateTime;
+  time_now.LowPart = now.dwLowDateTime;
+
+  // Calculate the delay and convert it from 100-nanoseconds to milliseconds.
+  __int64 delay = (time_now.QuadPart - time_start.QuadPart) / 10 / 1000;
+
+  // Convert it to a string.
+  wchar_t* value = custom_info_entries_.get()[custom_client_info_.count].value;
+  _i64tow_s(delay, value, CustomInfoEntry::kValueMaxLength, 10);
+}
+
+bool ClientInfo::PopulateCustomInfo() {
+  if (custom_client_info_.count > kMaxCustomInfoEntries)
+    return false;
+
+  SIZE_T bytes_count = 0;
+  SIZE_T read_count = sizeof(CustomInfoEntry) * custom_client_info_.count;
+
+  // If the scoped array for custom info already has an array, it will be
+  // the same size as what we need. This is because the number of custom info
+  // entries is always the same. So allocate memory only if scoped array has
+  // a NULL pointer.
+  if (!custom_info_entries_.get()) {
+    // Allocate an extra entry for reporting uptime for the client process.
+    custom_info_entries_.reset(
+        new CustomInfoEntry[custom_client_info_.count + 1]);
+    // Use the last element in the array for uptime.
+    custom_info_entries_.get()[custom_client_info_.count].set_name(
+        kCustomInfoProcessUptimeName);
+  }
+
+  if (!ReadProcessMemory(process_handle_,
+                         custom_client_info_.entries,
+                         custom_info_entries_.get(),
+                         read_count,
+                         &bytes_count)) {
+    return false;
+  }
+
+  SetProcessUptime();
+  return (bytes_count == read_count);
+}
+
+CustomClientInfo ClientInfo::GetCustomInfo() const {
+  CustomClientInfo custom_info;
+  custom_info.entries = custom_info_entries_.get();
+  // Add 1 to the count from the client process to account for extra entry for
+  // process uptime.
+  custom_info.count = custom_client_info_.count + 1;
+  return custom_info;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/crash_generation/client_info.h b/src/client/windows/crash_generation/client_info.h
new file mode 100644
index 0000000..6a8fba3
--- /dev/null
+++ b/src/client/windows/crash_generation/client_info.h
@@ -0,0 +1,177 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_CRASH_GENERATION_CLIENT_INFO_H__
+#define CLIENT_WINDOWS_CRASH_GENERATION_CLIENT_INFO_H__
+
+#include <windows.h>
+#include <dbghelp.h>
+#include "client/windows/common/ipc_protocol.h"
+#include "common/scoped_ptr.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+class CrashGenerationServer;
+
+// Abstraction for a crash client process.
+class ClientInfo {
+ public:
+  // Creates an instance with the given values. Gets the process
+  // handle for the given process id and creates necessary event
+  // objects.
+  ClientInfo(CrashGenerationServer* crash_server,
+             DWORD pid,
+             MINIDUMP_TYPE dump_type,
+             DWORD* thread_id,
+             EXCEPTION_POINTERS** ex_info,
+             MDRawAssertionInfo* assert_info,
+             const CustomClientInfo& custom_client_info);
+
+  ~ClientInfo();
+
+  CrashGenerationServer* crash_server() const { return crash_server_; }
+  DWORD pid() const { return pid_; }
+  MINIDUMP_TYPE dump_type() const { return dump_type_; }
+  EXCEPTION_POINTERS** ex_info() const { return ex_info_; }
+  MDRawAssertionInfo* assert_info() const { return assert_info_; }
+  DWORD* thread_id() const { return thread_id_; }
+  HANDLE process_handle() const { return process_handle_; }
+  HANDLE dump_requested_handle() const { return dump_requested_handle_; }
+  HANDLE dump_generated_handle() const { return dump_generated_handle_; }
+  DWORD crash_id() const { return crash_id_; }
+  const CustomClientInfo& custom_client_info() const {
+    return custom_client_info_;
+  }
+
+  void set_dump_request_wait_handle(HANDLE value) {
+    dump_request_wait_handle_ = value;
+  }
+
+  void set_process_exit_wait_handle(HANDLE value) {
+    process_exit_wait_handle_ = value;
+  }
+
+  // Unregister the dump request wait operation and wait for all callbacks
+  // that might already be running to complete before returning.
+  void UnregisterDumpRequestWaitAndBlockUntilNoPending();
+
+  // Unregister the process exit wait operation.  If block_until_no_pending is
+  // true, wait for all callbacks that might already be running to complete
+  // before returning.
+  void UnregisterProcessExitWait(bool block_until_no_pending);
+
+  bool Initialize();
+  bool GetClientExceptionInfo(EXCEPTION_POINTERS** ex_info) const;
+  bool GetClientThreadId(DWORD* thread_id) const;
+
+  // Reads the custom information from the client process address space.
+  bool PopulateCustomInfo();
+
+  // Returns the client custom information.
+  CustomClientInfo GetCustomInfo() const;
+
+ private:
+  // Calcualtes the uptime for the client process, converts it to a string and
+  // stores it in the last entry of client custom info.
+  void SetProcessUptime();
+
+  // Crash generation server.
+  CrashGenerationServer* crash_server_;
+
+  // Client process ID.
+  DWORD pid_;
+
+  // Dump type requested by the client.
+  MINIDUMP_TYPE dump_type_;
+
+  // Address of an EXCEPTION_POINTERS* variable in the client
+  // process address space that will point to an instance of
+  // EXCEPTION_POINTERS containing information about crash.
+  //
+  // WARNING: Do not dereference these pointers as they are pointers
+  // in the address space of another process.
+  EXCEPTION_POINTERS** ex_info_;
+
+  // Address of an instance of MDRawAssertionInfo in the client
+  // process address space that will contain information about
+  // non-exception related crashes like invalid parameter assertion
+  // failures and pure calls.
+  //
+  // WARNING: Do not dereference these pointers as they are pointers
+  // in the address space of another process.
+  MDRawAssertionInfo* assert_info_;
+
+  // Custom information about the client.
+  CustomClientInfo custom_client_info_;
+
+  // Contains the custom client info entries read from the client process
+  // memory. This will be populated only if the method GetClientCustomInfo
+  // is called.
+  scoped_array<CustomInfoEntry> custom_info_entries_;
+
+  // Address of a variable in the client process address space that
+  // will contain the thread id of the crashing client thread.
+  //
+  // WARNING: Do not dereference these pointers as they are pointers
+  // in the address space of another process.
+  DWORD* thread_id_;
+
+  // Client process handle.
+  HANDLE process_handle_;
+
+  // Dump request event handle.
+  HANDLE dump_requested_handle_;
+
+  // Dump generated event handle.
+  HANDLE dump_generated_handle_;
+
+  // Wait handle for dump request event.
+  HANDLE dump_request_wait_handle_;
+
+  // Wait handle for process exit event.
+  HANDLE process_exit_wait_handle_;
+
+  // Time when the client process started. It is used to determine the uptime
+  // for the client process when it signals a crash.
+  FILETIME start_time_;
+
+  // The crash id which can be used to request an upload. This will be the
+  // value of the low order dword of the process creation time for the process
+  // being dumped.
+  DWORD crash_id_;
+
+  // Disallow copy ctor and operator=.
+  ClientInfo(const ClientInfo& client_info);
+  ClientInfo& operator=(const ClientInfo& client_info);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_CRASH_GENERATION_CLIENT_INFO_H__
diff --git a/src/client/windows/crash_generation/crash_generation.gyp b/src/client/windows/crash_generation/crash_generation.gyp
new file mode 100644
index 0000000..ba34376
--- /dev/null
+++ b/src/client/windows/crash_generation/crash_generation.gyp
@@ -0,0 +1,63 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'crash_generation_server',
+      'type': 'static_library',
+      'sources': [
+        'client_info.cc',
+        'crash_generation_server.cc',
+        'minidump_generator.cc',
+        'client_info.h',
+        'crash_generation_client.h',
+        'crash_generation_server.h',
+        'minidump_generator.h',
+      ],
+      'dependencies': [
+        '../breakpad_client.gyp:common'
+      ],
+    },
+    {
+      'target_name': 'crash_generation_client',
+      'type': 'static_library',
+      'include_dirs': [
+        '<(DEPTH)',
+      ],
+      'sources': [
+        'crash_generation_client.h',
+        'crash_generation_client.cc',
+        'crash_generation_server.h',
+      ],
+    },
+  ],
+}
diff --git a/src/client/windows/crash_generation/crash_generation_client.cc b/src/client/windows/crash_generation/crash_generation_client.cc
new file mode 100644
index 0000000..3ba5d4e
--- /dev/null
+++ b/src/client/windows/crash_generation/crash_generation_client.cc
@@ -0,0 +1,405 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/crash_generation/crash_generation_client.h"
+#include <cassert>
+#include <utility>
+#include "client/windows/common/ipc_protocol.h"
+
+namespace google_breakpad {
+
+const int kPipeBusyWaitTimeoutMs = 2000;
+
+#ifdef _DEBUG
+const DWORD kWaitForServerTimeoutMs = INFINITE;
+#else
+const DWORD kWaitForServerTimeoutMs = 15000;
+#endif
+
+const int kPipeConnectMaxAttempts = 2;
+
+const DWORD kPipeDesiredAccess = FILE_READ_DATA |
+                                 FILE_WRITE_DATA |
+                                 FILE_WRITE_ATTRIBUTES;
+
+const DWORD kPipeFlagsAndAttributes = SECURITY_IDENTIFICATION |
+                                      SECURITY_SQOS_PRESENT;
+
+const DWORD kPipeMode = PIPE_READMODE_MESSAGE;
+
+const size_t kWaitEventCount = 2;
+
+// This function is orphan for production code. It can be used
+// for debugging to help repro some scenarios like the client
+// is slow in writing to the pipe after connecting, the client
+// is slow in reading from the pipe after writing, etc. The parameter
+// overlapped below is not used and it is present to match the signature
+// of this function to TransactNamedPipe Win32 API. Uncomment if needed
+// for debugging.
+/**
+static bool TransactNamedPipeDebugHelper(HANDLE pipe,
+                                         const void* in_buffer,
+                                         DWORD in_size,
+                                         void* out_buffer,
+                                         DWORD out_size,
+                                         DWORD* bytes_count,
+                                         LPOVERLAPPED) {
+  // Uncomment the next sleep to create a gap before writing
+  // to pipe.
+  // Sleep(5000);
+
+  if (!WriteFile(pipe,
+                 in_buffer,
+                 in_size,
+                 bytes_count,
+                 NULL)) {
+    return false;
+  }
+
+  // Uncomment the next sleep to create a gap between write
+  // and read.
+  // Sleep(5000);
+
+  return ReadFile(pipe, out_buffer, out_size, bytes_count, NULL) != FALSE;
+}
+**/
+
+CrashGenerationClient::CrashGenerationClient(
+    const wchar_t* pipe_name,
+    MINIDUMP_TYPE dump_type,
+    const CustomClientInfo* custom_info)
+        : pipe_name_(pipe_name),
+          pipe_handle_(NULL),
+          custom_info_(),
+          dump_type_(dump_type),
+          crash_event_(NULL),
+          crash_generated_(NULL),
+          server_alive_(NULL),
+          server_process_id_(0),
+          thread_id_(0),
+          exception_pointers_(NULL) {
+  memset(&assert_info_, 0, sizeof(assert_info_));
+  if (custom_info) {
+    custom_info_ = *custom_info;
+  }
+}
+
+CrashGenerationClient::CrashGenerationClient(
+    HANDLE pipe_handle,
+    MINIDUMP_TYPE dump_type,
+    const CustomClientInfo* custom_info)
+        : pipe_name_(),
+          pipe_handle_(pipe_handle),
+          custom_info_(),
+          dump_type_(dump_type),
+          crash_event_(NULL),
+          crash_generated_(NULL),
+          server_alive_(NULL),
+          server_process_id_(0),
+          thread_id_(0),
+          exception_pointers_(NULL) {
+  memset(&assert_info_, 0, sizeof(assert_info_));
+  if (custom_info) {
+    custom_info_ = *custom_info;
+  }
+}
+
+CrashGenerationClient::~CrashGenerationClient() {
+  if (crash_event_) {
+    CloseHandle(crash_event_);
+  }
+
+  if (crash_generated_) {
+    CloseHandle(crash_generated_);
+  }
+
+  if (server_alive_) {
+    CloseHandle(server_alive_);
+  }
+}
+
+// Performs the registration step with the server process.
+// The registration step involves communicating with the server
+// via a named pipe. The client sends the following pieces of
+// data to the server:
+//
+// * Message tag indicating the client is requesting registration.
+// * Process id of the client process.
+// * Address of a DWORD variable in the client address space
+//   that will contain the thread id of the client thread that
+//   caused the crash.
+// * Address of a EXCEPTION_POINTERS* variable in the client
+//   address space that will point to an instance of EXCEPTION_POINTERS
+//   when the crash happens.
+// * Address of an instance of MDRawAssertionInfo that will contain
+//   relevant information in case of non-exception crashes like assertion
+//   failures and pure calls.
+//
+// In return the client expects the following information from the server:
+//
+// * Message tag indicating successful registration.
+// * Server process id.
+// * Handle to an object that client can signal to request dump
+//   generation from the server.
+// * Handle to an object that client can wait on after requesting
+//   dump generation for the server to finish dump generation.
+// * Handle to a mutex object that client can wait on to make sure
+//   server is still alive.
+//
+// If any step of the expected behavior mentioned above fails, the
+// registration step is not considered successful and hence out-of-process
+// dump generation service is not available.
+//
+// Returns true if the registration is successful; false otherwise.
+bool CrashGenerationClient::Register() {
+  if (IsRegistered()) {
+    return true;
+  }
+
+  HANDLE pipe = ConnectToServer();
+  if (!pipe) {
+    return false;
+  }
+
+  bool success = RegisterClient(pipe);
+  CloseHandle(pipe);
+  return success;
+}
+
+bool CrashGenerationClient::RequestUpload(DWORD crash_id) {
+  HANDLE pipe = ConnectToServer();
+  if (!pipe) {
+    return false;
+  }
+
+  CustomClientInfo custom_info = {NULL, 0};
+  ProtocolMessage msg(MESSAGE_TAG_UPLOAD_REQUEST, crash_id,
+                      static_cast<MINIDUMP_TYPE>(NULL), NULL, NULL, NULL,
+                      custom_info, NULL, NULL, NULL);
+  DWORD bytes_count = 0;
+  bool success = WriteFile(pipe, &msg, sizeof(msg), &bytes_count, NULL) != 0;
+
+  CloseHandle(pipe);
+  return success;
+}
+
+HANDLE CrashGenerationClient::ConnectToServer() {
+  HANDLE pipe = ConnectToPipe(pipe_name_.c_str(),
+                              kPipeDesiredAccess,
+                              kPipeFlagsAndAttributes);
+  if (!pipe) {
+    return NULL;
+  }
+
+  DWORD mode = kPipeMode;
+  if (!SetNamedPipeHandleState(pipe, &mode, NULL, NULL)) {
+    CloseHandle(pipe);
+    pipe = NULL;
+  }
+
+  return pipe;
+}
+
+bool CrashGenerationClient::RegisterClient(HANDLE pipe) {
+  ProtocolMessage msg(MESSAGE_TAG_REGISTRATION_REQUEST,
+                      GetCurrentProcessId(),
+                      dump_type_,
+                      &thread_id_,
+                      &exception_pointers_,
+                      &assert_info_,
+                      custom_info_,
+                      NULL,
+                      NULL,
+                      NULL);
+  ProtocolMessage reply;
+  DWORD bytes_count = 0;
+  // The call to TransactNamedPipe below can be changed to a call
+  // to TransactNamedPipeDebugHelper to help repro some scenarios.
+  // For details see comments for TransactNamedPipeDebugHelper.
+  if (!TransactNamedPipe(pipe,
+                         &msg,
+                         sizeof(msg),
+                         &reply,
+                         sizeof(ProtocolMessage),
+                         &bytes_count,
+                         NULL)) {
+    return false;
+  }
+
+  if (!ValidateResponse(reply)) {
+    return false;
+  }
+
+  ProtocolMessage ack_msg;
+  ack_msg.tag = MESSAGE_TAG_REGISTRATION_ACK;
+
+  if (!WriteFile(pipe, &ack_msg, sizeof(ack_msg), &bytes_count, NULL)) {
+    return false;
+  }
+  crash_event_ = reply.dump_request_handle;
+  crash_generated_ = reply.dump_generated_handle;
+  server_alive_ = reply.server_alive_handle;
+  server_process_id_ = reply.id;
+
+  return true;
+}
+
+HANDLE CrashGenerationClient::ConnectToPipe(const wchar_t* pipe_name,
+                                            DWORD pipe_access,
+                                            DWORD flags_attrs) {
+  if (pipe_handle_) {
+    HANDLE t = pipe_handle_;
+    pipe_handle_ = NULL;
+    return t;
+  }
+
+  for (int i = 0; i < kPipeConnectMaxAttempts; ++i) {
+    HANDLE pipe = CreateFile(pipe_name,
+                             pipe_access,
+                             0,
+                             NULL,
+                             OPEN_EXISTING,
+                             flags_attrs,
+                             NULL);
+    if (pipe != INVALID_HANDLE_VALUE) {
+      return pipe;
+    }
+
+    // Cannot continue retrying if error is something other than
+    // ERROR_PIPE_BUSY.
+    if (GetLastError() != ERROR_PIPE_BUSY) {
+      break;
+    }
+
+    // Cannot continue retrying if wait on pipe fails.
+    if (!WaitNamedPipe(pipe_name, kPipeBusyWaitTimeoutMs)) {
+      break;
+    }
+  }
+
+  return NULL;
+}
+
+bool CrashGenerationClient::ValidateResponse(
+    const ProtocolMessage& msg) const {
+  return (msg.tag == MESSAGE_TAG_REGISTRATION_RESPONSE) &&
+         (msg.id != 0) &&
+         (msg.dump_request_handle != NULL) &&
+         (msg.dump_generated_handle != NULL) &&
+         (msg.server_alive_handle != NULL);
+}
+
+bool CrashGenerationClient::IsRegistered() const {
+  return crash_event_ != NULL;
+}
+
+bool CrashGenerationClient::RequestDump(EXCEPTION_POINTERS* ex_info,
+                                        MDRawAssertionInfo* assert_info) {
+  if (!IsRegistered()) {
+    return false;
+  }
+
+  exception_pointers_ = ex_info;
+  thread_id_ = GetCurrentThreadId();
+
+  if (assert_info) {
+    memcpy(&assert_info_, assert_info, sizeof(assert_info_));
+  } else {
+    memset(&assert_info_, 0, sizeof(assert_info_));
+  }
+
+  return SignalCrashEventAndWait();
+}
+
+bool CrashGenerationClient::RequestDump(EXCEPTION_POINTERS* ex_info) {
+  return RequestDump(ex_info, NULL);
+}
+
+bool CrashGenerationClient::RequestDump(MDRawAssertionInfo* assert_info) {
+  return RequestDump(NULL, assert_info);
+}
+
+bool CrashGenerationClient::SignalCrashEventAndWait() {
+  assert(crash_event_);
+  assert(crash_generated_);
+  assert(server_alive_);
+
+  // Reset the dump generated event before signaling the crash
+  // event so that the server can set the dump generated event
+  // once it is done generating the event.
+  if (!ResetEvent(crash_generated_)) {
+    return false;
+  }
+
+  if (!SetEvent(crash_event_)) {
+    return false;
+  }
+
+  HANDLE wait_handles[kWaitEventCount] = {crash_generated_, server_alive_};
+
+  DWORD result = WaitForMultipleObjects(kWaitEventCount,
+                                        wait_handles,
+                                        FALSE,
+                                        kWaitForServerTimeoutMs);
+
+  // Crash dump was successfully generated only if the server
+  // signaled the crash generated event.
+  return result == WAIT_OBJECT_0;
+}
+
+HANDLE CrashGenerationClient::DuplicatePipeToClientProcess(const wchar_t* pipe_name,
+                                                           HANDLE hProcess) {
+  for (int i = 0; i < kPipeConnectMaxAttempts; ++i) {
+    HANDLE local_pipe = CreateFile(pipe_name, kPipeDesiredAccess,
+                                   0, NULL, OPEN_EXISTING,
+                                   kPipeFlagsAndAttributes, NULL);
+    if (local_pipe != INVALID_HANDLE_VALUE) {
+      HANDLE remotePipe = INVALID_HANDLE_VALUE;
+      if (DuplicateHandle(GetCurrentProcess(), local_pipe,
+                          hProcess, &remotePipe, 0, FALSE,
+                          DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) {
+        return remotePipe;
+      } else {
+        return INVALID_HANDLE_VALUE;
+      }
+    }
+
+    // Cannot continue retrying if the error wasn't a busy pipe.
+    if (GetLastError() != ERROR_PIPE_BUSY) {
+      return INVALID_HANDLE_VALUE;
+    }
+
+    if (!WaitNamedPipe(pipe_name, kPipeBusyWaitTimeoutMs)) {
+      return INVALID_HANDLE_VALUE;
+    }
+  }
+  return INVALID_HANDLE_VALUE;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/crash_generation/crash_generation_client.h b/src/client/windows/crash_generation/crash_generation_client.h
new file mode 100644
index 0000000..457f731
--- /dev/null
+++ b/src/client/windows/crash_generation/crash_generation_client.h
@@ -0,0 +1,182 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+#define CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <string>
+#include <utility>
+#include "client/windows/common/ipc_protocol.h"
+#include "common/scoped_ptr.h"
+
+namespace google_breakpad {
+
+struct CustomClientInfo;
+
+// Abstraction of client-side implementation of out of process
+// crash generation.
+//
+// The process that desires to have out-of-process crash dump
+// generation service can use this class in the following way:
+//
+// * Create an instance.
+// * Call Register method so that the client tries to register
+//   with the server process and check the return value. If
+//   registration is not successful, out-of-process crash dump
+//   generation will not be available
+// * Request dump generation by calling either of the two
+//   overloaded RequestDump methods - one in case of exceptions
+//   and the other in case of assertion failures
+//
+// Note that it is the responsibility of the client code of
+// this class to set the unhandled exception filter with the
+// system by calling the SetUnhandledExceptionFilter function
+// and the client code should explicitly request dump generation.
+class CrashGenerationClient {
+ public:
+  CrashGenerationClient(const wchar_t* pipe_name,
+                        MINIDUMP_TYPE dump_type,
+                        const CustomClientInfo* custom_info);
+
+  CrashGenerationClient(HANDLE pipe_handle,
+                        MINIDUMP_TYPE dump_type,
+                        const CustomClientInfo* custom_info);
+
+  ~CrashGenerationClient();
+
+  // Registers the client process with the crash server.
+  //
+  // Returns true if the registration is successful; false otherwise.
+  bool Register();
+
+  // Requests the crash server to upload a previous dump with the
+  // given crash id.
+  bool RequestUpload(DWORD crash_id);
+
+  bool RequestDump(EXCEPTION_POINTERS* ex_info,
+                   MDRawAssertionInfo* assert_info);
+
+  // Requests the crash server to generate a dump with the given
+  // exception information.
+  //
+  // Returns true if the dump was successful; false otherwise. Note that
+  // if the registration step was not performed or it was not successful,
+  // false will be returned.
+  bool RequestDump(EXCEPTION_POINTERS* ex_info);
+
+  // Requests the crash server to generate a dump with the given
+  // assertion information.
+  //
+  // Returns true if the dump was successful; false otherwise. Note that
+  // if the registration step was not performed or it was not successful,
+  // false will be returned.
+  bool RequestDump(MDRawAssertionInfo* assert_info);
+
+  // If the crash generation client is running in a sandbox that prevents it
+  // from opening the named pipe directly, the server process may open the
+  // handle and duplicate it into the client process with this helper method.
+  // Returns INVALID_HANDLE_VALUE on failure. The process must have been opened
+  // with the PROCESS_DUP_HANDLE access right.
+  static HANDLE DuplicatePipeToClientProcess(const wchar_t* pipe_name,
+                                             HANDLE hProcess);
+
+ private:
+  // Connects to the appropriate pipe and sets the pipe handle state.
+  //
+  // Returns the pipe handle if everything goes well; otherwise Returns NULL.
+  HANDLE ConnectToServer();
+
+  // Performs a handshake with the server over the given pipe which should be
+  // already connected to the server.
+  //
+  // Returns true if handshake with the server was successful; false otherwise.
+  bool RegisterClient(HANDLE pipe);
+
+  // Validates the given server response.
+  bool ValidateResponse(const ProtocolMessage& msg) const;
+
+  // Returns true if the registration step succeeded; false otherwise.
+  bool IsRegistered() const;
+
+  // Connects to the given named pipe with given parameters.
+  //
+  // Returns true if the connection is successful; false otherwise.
+  HANDLE ConnectToPipe(const wchar_t* pipe_name,
+                       DWORD pipe_access,
+                       DWORD flags_attrs);
+
+  // Signals the crash event and wait for the server to generate crash.
+  bool SignalCrashEventAndWait();
+
+  // Pipe name to use to talk to server.
+  std::wstring pipe_name_;
+
+  // Pipe handle duplicated from server process. Only valid before
+  // Register is called.
+  HANDLE pipe_handle_;
+
+  // Custom client information
+  CustomClientInfo custom_info_;
+
+  // Type of dump to generate.
+  MINIDUMP_TYPE dump_type_;
+
+  // Event to signal in case of a crash.
+  HANDLE crash_event_;
+
+  // Handle to wait on after signaling a crash for the server
+  // to finish generating crash dump.
+  HANDLE crash_generated_;
+
+  // Handle to a mutex that will become signaled with WAIT_ABANDONED
+  // if the server process goes down.
+  HANDLE server_alive_;
+
+  // Server process id.
+  DWORD server_process_id_;
+
+  // Id of the thread that caused the crash.
+  DWORD thread_id_;
+
+  // Exception pointers for an exception crash.
+  EXCEPTION_POINTERS* exception_pointers_;
+
+  // Assertion info for an invalid parameter or pure call crash.
+  MDRawAssertionInfo assert_info_;
+
+  // Disable copy ctor and operator=.
+  CrashGenerationClient(const CrashGenerationClient& crash_client);
+  CrashGenerationClient& operator=(const CrashGenerationClient& crash_client);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
diff --git a/src/client/windows/crash_generation/crash_generation_server.cc b/src/client/windows/crash_generation/crash_generation_server.cc
new file mode 100644
index 0000000..0af213b
--- /dev/null
+++ b/src/client/windows/crash_generation/crash_generation_server.cc
@@ -0,0 +1,943 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/crash_generation/crash_generation_server.h"
+#include <windows.h>
+#include <cassert>
+#include <list>
+#include "client/windows/common/auto_critical_section.h"
+#include "common/scoped_ptr.h"
+
+#include "client/windows/crash_generation/client_info.h"
+
+namespace google_breakpad {
+
+// Output buffer size.
+static const size_t kOutBufferSize = 64;
+
+// Input buffer size.
+static const size_t kInBufferSize = 64;
+
+// Access flags for the client on the dump request event.
+static const DWORD kDumpRequestEventAccess = EVENT_MODIFY_STATE;
+
+// Access flags for the client on the dump generated event.
+static const DWORD kDumpGeneratedEventAccess = EVENT_MODIFY_STATE |
+                                               SYNCHRONIZE;
+
+// Access flags for the client on the mutex.
+static const DWORD kMutexAccess = SYNCHRONIZE;
+
+// Attribute flags for the pipe.
+static const DWORD kPipeAttr = FILE_FLAG_FIRST_PIPE_INSTANCE |
+                               PIPE_ACCESS_DUPLEX |
+                               FILE_FLAG_OVERLAPPED;
+
+// Mode for the pipe.
+static const DWORD kPipeMode = PIPE_TYPE_MESSAGE |
+                               PIPE_READMODE_MESSAGE |
+                               PIPE_WAIT;
+
+// For pipe I/O, execute the callback in the wait thread itself,
+// since the callback does very little work. The callback executes
+// the code for one of the states of the server state machine and
+// the code for all of the states perform async I/O and hence
+// finish very quickly.
+static const ULONG kPipeIOThreadFlags = WT_EXECUTEINWAITTHREAD;
+
+// Dump request threads will, most likely, generate dumps. That may
+// take some time to finish, so specify WT_EXECUTELONGFUNCTION flag.
+static const ULONG kDumpRequestThreadFlags = WT_EXECUTEINWAITTHREAD |
+                                             WT_EXECUTELONGFUNCTION;
+
+static bool IsClientRequestValid(const ProtocolMessage& msg) {
+  return msg.tag == MESSAGE_TAG_UPLOAD_REQUEST ||
+         (msg.tag == MESSAGE_TAG_REGISTRATION_REQUEST &&
+          msg.id != 0 &&
+          msg.thread_id != NULL &&
+          msg.exception_pointers != NULL &&
+          msg.assert_info != NULL);
+}
+
+#ifndef NDEBUG
+static bool CheckForIOIncomplete(bool success) {
+  // We should never get an I/O incomplete since we should not execute this
+  // unless the operation has finished and the overlapped event is signaled. If
+  // we do get INCOMPLETE, we have a bug in our code.
+  return success ? false : (GetLastError() == ERROR_IO_INCOMPLETE);
+}
+#endif
+
+CrashGenerationServer::CrashGenerationServer(
+    const std::wstring& pipe_name,
+    SECURITY_ATTRIBUTES* pipe_sec_attrs,
+    OnClientConnectedCallback connect_callback,
+    void* connect_context,
+    OnClientDumpRequestCallback dump_callback,
+    void* dump_context,
+    OnClientExitedCallback exit_callback,
+    void* exit_context,
+    OnClientUploadRequestCallback upload_request_callback,
+    void* upload_context,
+    bool generate_dumps,
+    const std::wstring* dump_path)
+    : pipe_name_(pipe_name),
+      pipe_sec_attrs_(pipe_sec_attrs),
+      pipe_(NULL),
+      pipe_wait_handle_(NULL),
+      server_alive_handle_(NULL),
+      connect_callback_(connect_callback),
+      connect_context_(connect_context),
+      dump_callback_(dump_callback),
+      dump_context_(dump_context),
+      exit_callback_(exit_callback),
+      exit_context_(exit_context),
+      upload_request_callback_(upload_request_callback),
+      upload_context_(upload_context),
+      generate_dumps_(generate_dumps),
+      pre_fetch_custom_info_(true),
+      dump_path_(dump_path ? *dump_path : L""),
+      server_state_(IPC_SERVER_STATE_UNINITIALIZED),
+      shutting_down_(false),
+      overlapped_(),
+      client_info_(NULL) {
+  InitializeCriticalSection(&sync_);
+}
+
+// This should never be called from the OnPipeConnected callback.
+// Otherwise the UnregisterWaitEx call below will cause a deadlock.
+CrashGenerationServer::~CrashGenerationServer() {
+  // New scope to release the lock automatically.
+  {
+    // Make sure no clients are added or removed beyond this point.
+    // Before adding or removing any clients, the critical section
+    // must be entered and the shutting_down_ flag checked. The
+    // critical section is then exited only after the clients_ list
+    // modifications are done and the list is in a consistent state.
+    AutoCriticalSection lock(&sync_);
+
+    // Indicate to existing threads that server is shutting down.
+    shutting_down_ = true;
+  }
+  // No one will modify the clients_ list beyond this point -
+  // not even from another thread.
+
+  // Even if there are no current worker threads running, it is possible that
+  // an I/O request is pending on the pipe right now but not yet done.
+  // In fact, it's very likely this is the case unless we are in an ERROR
+  // state. If we don't wait for the pending I/O to be done, then when the I/O
+  // completes, it may write to invalid memory. AppVerifier will flag this
+  // problem too. So we disconnect from the pipe and then wait for the server
+  // to get into error state so that the pending I/O will fail and get
+  // cleared.
+  DisconnectNamedPipe(pipe_);
+  int num_tries = 100;
+  while (num_tries-- && server_state_ != IPC_SERVER_STATE_ERROR) {
+    Sleep(10);
+  }
+
+  // Unregister wait on the pipe.
+  if (pipe_wait_handle_) {
+    // Wait for already executing callbacks to finish.
+    UnregisterWaitEx(pipe_wait_handle_, INVALID_HANDLE_VALUE);
+  }
+
+  // Close the pipe to avoid further client connections.
+  if (pipe_) {
+    CloseHandle(pipe_);
+  }
+
+  // Request all ClientInfo objects to unregister all waits.
+  // No need to enter the critical section because no one is allowed to modify
+  // the clients_ list once the shutting_down_ flag is set.
+  std::list<ClientInfo*>::iterator iter;
+  for (iter = clients_.begin(); iter != clients_.end(); ++iter) {
+    ClientInfo* client_info = *iter;
+    // Unregister waits. Wait for already executing callbacks to finish.
+    // Unregister the client process exit wait first and only then unregister
+    // the dump request wait.  The reason is that the OnClientExit callback
+    // also unregisters the dump request wait and such a race (doing the same
+    // unregistration from two threads) is undesirable.
+    client_info->UnregisterProcessExitWait(true);
+    client_info->UnregisterDumpRequestWaitAndBlockUntilNoPending();
+
+    // Destroying the ClientInfo here is safe because all wait operations for
+    // this ClientInfo were unregistered and no pending or running callbacks
+    // for this ClientInfo can possible exist (block_until_no_pending option
+    // was used).
+    delete client_info;
+  }
+
+  if (server_alive_handle_) {
+    // Release the mutex before closing the handle so that clients requesting
+    // dumps wait for a long time for the server to generate a dump.
+    ReleaseMutex(server_alive_handle_);
+    CloseHandle(server_alive_handle_);
+  }
+
+  if (overlapped_.hEvent) {
+    CloseHandle(overlapped_.hEvent);
+  }
+
+  DeleteCriticalSection(&sync_);
+}
+
+bool CrashGenerationServer::Start() {
+  if (server_state_ != IPC_SERVER_STATE_UNINITIALIZED) {
+    return false;
+  }
+
+  server_state_ = IPC_SERVER_STATE_INITIAL;
+
+  server_alive_handle_ = CreateMutex(NULL, TRUE, NULL);
+  if (!server_alive_handle_) {
+    return false;
+  }
+
+  // Event to signal the client connection and pipe reads and writes.
+  overlapped_.hEvent = CreateEvent(NULL,   // Security descriptor.
+                                   TRUE,   // Manual reset.
+                                   FALSE,  // Initially nonsignaled.
+                                   NULL);  // Name.
+  if (!overlapped_.hEvent) {
+    return false;
+  }
+
+  // Register a callback with the thread pool for the client connection.
+  if (!RegisterWaitForSingleObject(&pipe_wait_handle_,
+                                   overlapped_.hEvent,
+                                   OnPipeConnected,
+                                   this,
+                                   INFINITE,
+                                   kPipeIOThreadFlags)) {
+    return false;
+  }
+
+  pipe_ = CreateNamedPipe(pipe_name_.c_str(),
+                          kPipeAttr,
+                          kPipeMode,
+                          1,
+                          kOutBufferSize,
+                          kInBufferSize,
+                          0,
+                          pipe_sec_attrs_);
+  if (pipe_ == INVALID_HANDLE_VALUE) {
+    return false;
+  }
+
+  // Kick-start the state machine. This will initiate an asynchronous wait
+  // for client connections.
+  if (!SetEvent(overlapped_.hEvent)) {
+    server_state_ = IPC_SERVER_STATE_ERROR;
+    return false;
+  }
+
+  // If we are in error state, it's because we failed to start listening.
+  return true;
+}
+
+// If the server thread serving clients ever gets into the
+// ERROR state, reset the event, close the pipe and remain
+// in the error state forever. Error state means something
+// that we didn't account for has happened, and it's dangerous
+// to do anything unknowingly.
+void CrashGenerationServer::HandleErrorState() {
+  assert(server_state_ == IPC_SERVER_STATE_ERROR);
+
+  // If the server is shutting down anyway, don't clean up
+  // here since shut down process will clean up.
+  if (shutting_down_) {
+    return;
+  }
+
+  if (pipe_wait_handle_) {
+    UnregisterWait(pipe_wait_handle_);
+    pipe_wait_handle_ = NULL;
+  }
+
+  if (pipe_) {
+    CloseHandle(pipe_);
+    pipe_ = NULL;
+  }
+
+  if (overlapped_.hEvent) {
+    CloseHandle(overlapped_.hEvent);
+    overlapped_.hEvent = NULL;
+  }
+}
+
+// When the server thread serving clients is in the INITIAL state,
+// try to connect to the pipe asynchronously. If the connection
+// finishes synchronously, directly go into the CONNECTED state;
+// otherwise go into the CONNECTING state. For any problems, go
+// into the ERROR state.
+void CrashGenerationServer::HandleInitialState() {
+  assert(server_state_ == IPC_SERVER_STATE_INITIAL);
+
+  if (!ResetEvent(overlapped_.hEvent)) {
+    EnterErrorState();
+    return;
+  }
+
+  bool success = ConnectNamedPipe(pipe_, &overlapped_) != FALSE;
+  DWORD error_code = success ? ERROR_SUCCESS : GetLastError();
+
+  // From MSDN, it is not clear that when ConnectNamedPipe is used
+  // in an overlapped mode, will it ever return non-zero value, and
+  // if so, in what cases.
+  assert(!success);
+
+  switch (error_code) {
+    case ERROR_IO_PENDING:
+      EnterStateWhenSignaled(IPC_SERVER_STATE_CONNECTING);
+      break;
+
+    case ERROR_PIPE_CONNECTED:
+      EnterStateImmediately(IPC_SERVER_STATE_CONNECTED);
+      break;
+
+    default:
+      EnterErrorState();
+      break;
+  }
+}
+
+// When the server thread serving the clients is in the CONNECTING state,
+// try to get the result of the asynchronous connection request using
+// the OVERLAPPED object. If the result indicates the connection is done,
+// go into the CONNECTED state. If the result indicates I/O is still
+// INCOMPLETE, remain in the CONNECTING state. For any problems,
+// go into the DISCONNECTING state.
+void CrashGenerationServer::HandleConnectingState() {
+  assert(server_state_ == IPC_SERVER_STATE_CONNECTING);
+
+  DWORD bytes_count = 0;
+  bool success = GetOverlappedResult(pipe_,
+                                     &overlapped_,
+                                     &bytes_count,
+                                     FALSE) != FALSE;
+  DWORD error_code = success ? ERROR_SUCCESS : GetLastError();
+
+  if (success) {
+    EnterStateImmediately(IPC_SERVER_STATE_CONNECTED);
+  } else if (error_code != ERROR_IO_INCOMPLETE) {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+  } else {
+    // remain in CONNECTING state
+  }
+}
+
+// When the server thread serving the clients is in the CONNECTED state,
+// try to issue an asynchronous read from the pipe. If read completes
+// synchronously or if I/O is pending then go into the READING state.
+// For any problems, go into the DISCONNECTING state.
+void CrashGenerationServer::HandleConnectedState() {
+  assert(server_state_ == IPC_SERVER_STATE_CONNECTED);
+
+  DWORD bytes_count = 0;
+  memset(&msg_, 0, sizeof(msg_));
+  bool success = ReadFile(pipe_,
+                          &msg_,
+                          sizeof(msg_),
+                          &bytes_count,
+                          &overlapped_) != FALSE;
+  DWORD error_code = success ? ERROR_SUCCESS : GetLastError();
+
+  // Note that the asynchronous read issued above can finish before the
+  // code below executes. But, it is okay to change state after issuing
+  // the asynchronous read. This is because even if the asynchronous read
+  // is done, the callback for it would not be executed until the current
+  // thread finishes its execution.
+  if (success || error_code == ERROR_IO_PENDING) {
+    EnterStateWhenSignaled(IPC_SERVER_STATE_READING);
+  } else {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+  }
+}
+
+// When the server thread serving the clients is in the READING state,
+// try to get the result of the async read. If async read is done,
+// go into the READ_DONE state. For any problems, go into the
+// DISCONNECTING state.
+void CrashGenerationServer::HandleReadingState() {
+  assert(server_state_ == IPC_SERVER_STATE_READING);
+
+  DWORD bytes_count = 0;
+  bool success = GetOverlappedResult(pipe_,
+                                     &overlapped_,
+                                     &bytes_count,
+                                     FALSE) != FALSE;
+  if (success && bytes_count == sizeof(ProtocolMessage)) {
+    EnterStateImmediately(IPC_SERVER_STATE_READ_DONE);
+    return;
+  }
+
+  assert(!CheckForIOIncomplete(success));
+  EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+}
+
+// When the server thread serving the client is in the READ_DONE state,
+// validate the client's request message, register the client by
+// creating appropriate objects and prepare the response.  Then try to
+// write the response to the pipe asynchronously. If that succeeds,
+// go into the WRITING state. For any problems, go into the DISCONNECTING
+// state.
+void CrashGenerationServer::HandleReadDoneState() {
+  assert(server_state_ == IPC_SERVER_STATE_READ_DONE);
+
+  if (!IsClientRequestValid(msg_)) {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+    return;
+  }
+
+  if (msg_.tag == MESSAGE_TAG_UPLOAD_REQUEST) {
+    if (upload_request_callback_)
+      upload_request_callback_(upload_context_, msg_.id);
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+    return;
+  }
+
+  scoped_ptr<ClientInfo> client_info(
+      new ClientInfo(this,
+                     msg_.id,
+                     msg_.dump_type,
+                     msg_.thread_id,
+                     msg_.exception_pointers,
+                     msg_.assert_info,
+                     msg_.custom_client_info));
+
+  if (!client_info->Initialize()) {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+    return;
+  }
+
+  // Issues an asynchronous WriteFile call if successful.
+  // Iff successful, assigns ownership of the client_info pointer to the server
+  // instance, in which case we must be sure not to free it in this function.
+  if (!RespondToClient(client_info.get())) {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+    return;
+  }
+
+  // This is only valid as long as it can be found in the clients_ list
+  client_info_ = client_info.release();
+
+  // Note that the asynchronous write issued by RespondToClient function
+  // can finish before  the code below executes. But it is okay to change
+  // state after issuing the asynchronous write. This is because even if
+  // the asynchronous write is done, the callback for it would not be
+  // executed until the current thread finishes its execution.
+  EnterStateWhenSignaled(IPC_SERVER_STATE_WRITING);
+}
+
+// When the server thread serving the clients is in the WRITING state,
+// try to get the result of the async write. If the async write is done,
+// go into the WRITE_DONE state. For any problems, go into the
+// DISONNECTING state.
+void CrashGenerationServer::HandleWritingState() {
+  assert(server_state_ == IPC_SERVER_STATE_WRITING);
+
+  DWORD bytes_count = 0;
+  bool success = GetOverlappedResult(pipe_,
+                                     &overlapped_,
+                                     &bytes_count,
+                                     FALSE) != FALSE;
+  if (success) {
+    EnterStateImmediately(IPC_SERVER_STATE_WRITE_DONE);
+    return;
+  }
+
+  assert(!CheckForIOIncomplete(success));
+  EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+}
+
+// When the server thread serving the clients is in the WRITE_DONE state,
+// try to issue an async read on the pipe. If the read completes synchronously
+// or if I/O is still pending then go into the READING_ACK state. For any
+// issues, go into the DISCONNECTING state.
+void CrashGenerationServer::HandleWriteDoneState() {
+  assert(server_state_ == IPC_SERVER_STATE_WRITE_DONE);
+
+  DWORD bytes_count = 0;
+  bool success = ReadFile(pipe_,
+                           &msg_,
+                           sizeof(msg_),
+                           &bytes_count,
+                           &overlapped_) != FALSE;
+  DWORD error_code = success ? ERROR_SUCCESS : GetLastError();
+
+  if (success) {
+    EnterStateImmediately(IPC_SERVER_STATE_READING_ACK);
+  } else if (error_code == ERROR_IO_PENDING) {
+    EnterStateWhenSignaled(IPC_SERVER_STATE_READING_ACK);
+  } else {
+    EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+  }
+}
+
+// When the server thread serving the clients is in the READING_ACK state,
+// try to get result of async read. Go into the DISCONNECTING state.
+void CrashGenerationServer::HandleReadingAckState() {
+  assert(server_state_ == IPC_SERVER_STATE_READING_ACK);
+
+  DWORD bytes_count = 0;
+  bool success = GetOverlappedResult(pipe_,
+                                     &overlapped_,
+                                     &bytes_count,
+                                     FALSE) != FALSE;
+  if (success) {
+    // The connection handshake with the client is now complete; perform
+    // the callback.
+    if (connect_callback_) {
+      // Note that there is only a single copy of the ClientInfo of the
+      // currently connected client.  However it is being referenced from
+      // two different places:
+      //  - the client_info_ member
+      //  - the clients_ list
+      // The lifetime of this ClientInfo depends on the lifetime of the
+      // client process - basically it can go away at any time.
+      // However, as long as it is referenced by the clients_ list it
+      // is guaranteed to be valid. Enter the critical section and check
+      // to see whether the client_info_ can be found in the list.
+      // If found, execute the callback and only then leave the critical
+      // section.
+      AutoCriticalSection lock(&sync_);
+
+      bool client_is_still_alive = false;
+      std::list<ClientInfo*>::iterator iter;
+      for (iter = clients_.begin(); iter != clients_.end(); ++iter) {
+        if (client_info_ == *iter) {
+          client_is_still_alive = true;
+          break;
+        }
+      }
+
+      if (client_is_still_alive) {
+        connect_callback_(connect_context_, client_info_);
+      }
+    }
+  } else {
+    assert(!CheckForIOIncomplete(success));
+  }
+
+  EnterStateImmediately(IPC_SERVER_STATE_DISCONNECTING);
+}
+
+// When the server thread serving the client is in the DISCONNECTING state,
+// disconnect from the pipe and reset the event. If anything fails, go into
+// the ERROR state. If it goes well, go into the INITIAL state and set the
+// event to start all over again.
+void CrashGenerationServer::HandleDisconnectingState() {
+  assert(server_state_ == IPC_SERVER_STATE_DISCONNECTING);
+
+  // Done serving the client.
+  client_info_ = NULL;
+
+  overlapped_.Internal = NULL;
+  overlapped_.InternalHigh = NULL;
+  overlapped_.Offset = 0;
+  overlapped_.OffsetHigh = 0;
+  overlapped_.Pointer = NULL;
+
+  if (!ResetEvent(overlapped_.hEvent)) {
+    EnterErrorState();
+    return;
+  }
+
+  if (!DisconnectNamedPipe(pipe_)) {
+    EnterErrorState();
+    return;
+  }
+
+  // If the server is shutting down do not connect to the
+  // next client.
+  if (shutting_down_) {
+    return;
+  }
+
+  EnterStateImmediately(IPC_SERVER_STATE_INITIAL);
+}
+
+void CrashGenerationServer::EnterErrorState() {
+  SetEvent(overlapped_.hEvent);
+  server_state_ = IPC_SERVER_STATE_ERROR;
+}
+
+void CrashGenerationServer::EnterStateWhenSignaled(IPCServerState state) {
+  server_state_ = state;
+}
+
+void CrashGenerationServer::EnterStateImmediately(IPCServerState state) {
+  server_state_ = state;
+
+  if (!SetEvent(overlapped_.hEvent)) {
+    server_state_ = IPC_SERVER_STATE_ERROR;
+  }
+}
+
+bool CrashGenerationServer::PrepareReply(const ClientInfo& client_info,
+                                         ProtocolMessage* reply) const {
+  reply->tag = MESSAGE_TAG_REGISTRATION_RESPONSE;
+  reply->id = GetCurrentProcessId();
+
+  if (CreateClientHandles(client_info, reply)) {
+    return true;
+  }
+
+  // Closing of remote handles (belonging to a different process) can
+  // only be done through DuplicateHandle.
+  if (reply->dump_request_handle) {
+    DuplicateHandle(client_info.process_handle(),  // hSourceProcessHandle
+                    reply->dump_request_handle,    // hSourceHandle
+                    NULL,                          // hTargetProcessHandle
+                    0,                             // lpTargetHandle
+                    0,                             // dwDesiredAccess
+                    FALSE,                         // bInheritHandle
+                    DUPLICATE_CLOSE_SOURCE);       // dwOptions
+    reply->dump_request_handle = NULL;
+  }
+
+  if (reply->dump_generated_handle) {
+    DuplicateHandle(client_info.process_handle(),  // hSourceProcessHandle
+                    reply->dump_generated_handle,  // hSourceHandle
+                    NULL,                          // hTargetProcessHandle
+                    0,                             // lpTargetHandle
+                    0,                             // dwDesiredAccess
+                    FALSE,                         // bInheritHandle
+                    DUPLICATE_CLOSE_SOURCE);       // dwOptions
+    reply->dump_generated_handle = NULL;
+  }
+
+  if (reply->server_alive_handle) {
+    DuplicateHandle(client_info.process_handle(),  // hSourceProcessHandle
+                    reply->server_alive_handle,    // hSourceHandle
+                    NULL,                          // hTargetProcessHandle
+                    0,                             // lpTargetHandle
+                    0,                             // dwDesiredAccess
+                    FALSE,                         // bInheritHandle
+                    DUPLICATE_CLOSE_SOURCE);       // dwOptions
+    reply->server_alive_handle = NULL;
+  }
+
+  return false;
+}
+
+bool CrashGenerationServer::CreateClientHandles(const ClientInfo& client_info,
+                                                ProtocolMessage* reply) const {
+  HANDLE current_process = GetCurrentProcess();
+  if (!DuplicateHandle(current_process,
+                       client_info.dump_requested_handle(),
+                       client_info.process_handle(),
+                       &reply->dump_request_handle,
+                       kDumpRequestEventAccess,
+                       FALSE,
+                       0)) {
+    return false;
+  }
+
+  if (!DuplicateHandle(current_process,
+                       client_info.dump_generated_handle(),
+                       client_info.process_handle(),
+                       &reply->dump_generated_handle,
+                       kDumpGeneratedEventAccess,
+                       FALSE,
+                       0)) {
+    return false;
+  }
+
+  if (!DuplicateHandle(current_process,
+                       server_alive_handle_,
+                       client_info.process_handle(),
+                       &reply->server_alive_handle,
+                       kMutexAccess,
+                       FALSE,
+                       0)) {
+    return false;
+  }
+
+  return true;
+}
+
+bool CrashGenerationServer::RespondToClient(ClientInfo* client_info) {
+  ProtocolMessage reply;
+  if (!PrepareReply(*client_info, &reply)) {
+    return false;
+  }
+
+  DWORD bytes_count = 0;
+  bool success = WriteFile(pipe_,
+                            &reply,
+                            sizeof(reply),
+                            &bytes_count,
+                            &overlapped_) != FALSE;
+  DWORD error_code = success ? ERROR_SUCCESS : GetLastError();
+
+  if (!success && error_code != ERROR_IO_PENDING) {
+    return false;
+  }
+
+  // Takes over ownership of client_info. We MUST return true if AddClient
+  // succeeds.
+  return AddClient(client_info);
+}
+
+// The server thread servicing the clients runs this method. The method
+// implements the state machine described in ReadMe.txt along with the
+// helper methods HandleXXXState.
+void CrashGenerationServer::HandleConnectionRequest() {
+  // If the server is shutting down, get into ERROR state, reset the event so
+  // more workers don't run and return immediately.
+  if (shutting_down_) {
+    server_state_ = IPC_SERVER_STATE_ERROR;
+    ResetEvent(overlapped_.hEvent);
+    return;
+  }
+
+  switch (server_state_) {
+    case IPC_SERVER_STATE_ERROR:
+      HandleErrorState();
+      break;
+
+    case IPC_SERVER_STATE_INITIAL:
+      HandleInitialState();
+      break;
+
+    case IPC_SERVER_STATE_CONNECTING:
+      HandleConnectingState();
+      break;
+
+    case IPC_SERVER_STATE_CONNECTED:
+      HandleConnectedState();
+      break;
+
+    case IPC_SERVER_STATE_READING:
+      HandleReadingState();
+      break;
+
+    case IPC_SERVER_STATE_READ_DONE:
+      HandleReadDoneState();
+      break;
+
+    case IPC_SERVER_STATE_WRITING:
+      HandleWritingState();
+      break;
+
+    case IPC_SERVER_STATE_WRITE_DONE:
+      HandleWriteDoneState();
+      break;
+
+    case IPC_SERVER_STATE_READING_ACK:
+      HandleReadingAckState();
+      break;
+
+    case IPC_SERVER_STATE_DISCONNECTING:
+      HandleDisconnectingState();
+      break;
+
+    default:
+      assert(false);
+      // This indicates that we added one more state without
+      // adding handling code.
+      server_state_ = IPC_SERVER_STATE_ERROR;
+      break;
+  }
+}
+
+bool CrashGenerationServer::AddClient(ClientInfo* client_info) {
+  HANDLE request_wait_handle = NULL;
+  if (!RegisterWaitForSingleObject(&request_wait_handle,
+                                   client_info->dump_requested_handle(),
+                                   OnDumpRequest,
+                                   client_info,
+                                   INFINITE,
+                                   kDumpRequestThreadFlags)) {
+    return false;
+  }
+
+  client_info->set_dump_request_wait_handle(request_wait_handle);
+
+  // OnClientEnd will be called when the client process terminates.
+  HANDLE process_wait_handle = NULL;
+  if (!RegisterWaitForSingleObject(&process_wait_handle,
+                                   client_info->process_handle(),
+                                   OnClientEnd,
+                                   client_info,
+                                   INFINITE,
+                                   WT_EXECUTEONLYONCE)) {
+    return false;
+  }
+
+  client_info->set_process_exit_wait_handle(process_wait_handle);
+
+  // New scope to hold the lock for the shortest time.
+  {
+    AutoCriticalSection lock(&sync_);
+    if (shutting_down_) {
+      // If server is shutting down, don't add new clients
+      return false;
+    }
+    clients_.push_back(client_info);
+  }
+
+  return true;
+}
+
+// static
+void CALLBACK CrashGenerationServer::OnPipeConnected(void* context, BOOLEAN) {
+  assert(context);
+
+  CrashGenerationServer* obj =
+      reinterpret_cast<CrashGenerationServer*>(context);
+  obj->HandleConnectionRequest();
+}
+
+// static
+void CALLBACK CrashGenerationServer::OnDumpRequest(void* context, BOOLEAN) {
+  assert(context);
+  ClientInfo* client_info = reinterpret_cast<ClientInfo*>(context);
+
+  CrashGenerationServer* crash_server = client_info->crash_server();
+  assert(crash_server);
+  if (crash_server->pre_fetch_custom_info_) {
+    client_info->PopulateCustomInfo();
+  }
+  crash_server->HandleDumpRequest(*client_info);
+
+  ResetEvent(client_info->dump_requested_handle());
+}
+
+// static
+void CALLBACK CrashGenerationServer::OnClientEnd(void* context, BOOLEAN) {
+  assert(context);
+  ClientInfo* client_info = reinterpret_cast<ClientInfo*>(context);
+
+  CrashGenerationServer* crash_server = client_info->crash_server();
+  assert(crash_server);
+
+  crash_server->HandleClientProcessExit(client_info);
+}
+
+void CrashGenerationServer::HandleClientProcessExit(ClientInfo* client_info) {
+  assert(client_info);
+
+  // Must unregister the dump request wait operation and wait for any
+  // dump requests that might be pending to finish before proceeding
+  // with the client_info cleanup.
+  client_info->UnregisterDumpRequestWaitAndBlockUntilNoPending();
+
+  if (exit_callback_) {
+    exit_callback_(exit_context_, client_info);
+  }
+
+  // Start a new scope to release lock automatically.
+  {
+    AutoCriticalSection lock(&sync_);
+    if (shutting_down_) {
+      // The crash generation server is shutting down and as part of the
+      // shutdown process it will delete all clients from the clients_ list.
+      return;
+    }
+    clients_.remove(client_info);
+  }
+
+  // Explicitly unregister the process exit wait using the non-blocking method.
+  // Otherwise, the destructor will attempt to unregister it using the blocking
+  // method which will lead to a deadlock because it is being called from the
+  // callback of the same wait operation
+  client_info->UnregisterProcessExitWait(false);
+
+  delete client_info;
+}
+
+void CrashGenerationServer::HandleDumpRequest(const ClientInfo& client_info) {
+  bool execute_callback = true;
+  // Generate the dump only if it's explicitly requested by the
+  // server application; otherwise the server might want to generate
+  // dump in the callback.
+  std::wstring dump_path;
+  if (generate_dumps_) {
+    if (!GenerateDump(client_info, &dump_path)) {
+      // client proccess terminated or some other error
+      execute_callback = false;
+    }
+  }
+
+  if (dump_callback_ && execute_callback) {
+    std::wstring* ptr_dump_path = (dump_path == L"") ? NULL : &dump_path;
+    dump_callback_(dump_context_, &client_info, ptr_dump_path);
+  }
+
+  SetEvent(client_info.dump_generated_handle());
+}
+
+bool CrashGenerationServer::GenerateDump(const ClientInfo& client,
+                                         std::wstring* dump_path) {
+  assert(client.pid() != 0);
+  assert(client.process_handle());
+
+  // We have to get the address of EXCEPTION_INFORMATION from
+  // the client process address space.
+  EXCEPTION_POINTERS* client_ex_info = NULL;
+  if (!client.GetClientExceptionInfo(&client_ex_info)) {
+    return false;
+  }
+
+  DWORD client_thread_id = 0;
+  if (!client.GetClientThreadId(&client_thread_id)) {
+    return false;
+  }
+
+  MinidumpGenerator dump_generator(dump_path_,
+                                   client.process_handle(),
+                                   client.pid(),
+                                   client_thread_id,
+                                   GetCurrentThreadId(),
+                                   client_ex_info,
+                                   client.assert_info(),
+                                   client.dump_type(),
+                                   true);
+
+  if (!dump_generator.GenerateDumpFile(dump_path)) {
+    return false;
+  }
+
+  // If the client requests a full memory dump, we will write a normal mini
+  // dump and a full memory dump. Both dump files use the same uuid as file
+  // name prefix.
+  if (client.dump_type() & MiniDumpWithFullMemory) {
+    std::wstring full_dump_path;
+    if (!dump_generator.GenerateFullDumpFile(&full_dump_path)) {
+      return false;
+    }
+  }
+
+  return dump_generator.WriteMinidump();
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/crash_generation/crash_generation_server.h b/src/client/windows/crash_generation/crash_generation_server.h
new file mode 100644
index 0000000..0ea90e5
--- /dev/null
+++ b/src/client/windows/crash_generation/crash_generation_server.h
@@ -0,0 +1,299 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_SERVER_H__
+#define CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_SERVER_H__
+
+#include <list>
+#include <string>
+#include "client/windows/common/ipc_protocol.h"
+#include "client/windows/crash_generation/minidump_generator.h"
+#include "common/scoped_ptr.h"
+
+namespace google_breakpad {
+class ClientInfo;
+
+// Abstraction for server side implementation of out-of-process crash
+// generation protocol for Windows platform only. It generates Windows
+// minidump files for client processes that request dump generation. When
+// the server is requested to start listening for clients (by calling the
+// Start method), it creates a named pipe and waits for the clients to
+// register. In response, it hands them event handles that the client can
+// signal to request dump generation. When the clients request dump
+// generation in this way, the server generates Windows minidump files.
+class CrashGenerationServer {
+ public:
+  typedef void (*OnClientConnectedCallback)(void* context,
+                                            const ClientInfo* client_info);
+
+  typedef void (*OnClientDumpRequestCallback)(void* context,
+                                              const ClientInfo* client_info,
+                                              const std::wstring* file_path);
+
+  typedef void (*OnClientExitedCallback)(void* context,
+                                         const ClientInfo* client_info);
+
+  typedef void (*OnClientUploadRequestCallback)(void* context,
+                                                const DWORD crash_id);
+
+  // Creates an instance with the given parameters.
+  //
+  // Parameter pipe_name: Name of the Windows named pipe
+  // Parameter pipe_sec_attrs Security attributes to set on the pipe. Pass
+  //     NULL to use default security on the pipe. By default, the pipe created
+  //     allows Local System, Administrators and the Creator full control and
+  //     the Everyone group read access on the pipe.
+  // Parameter connect_callback: Callback for a new client connection.
+  // Parameter connect_context: Context for client connection callback.
+  // Parameter crash_callback: Callback for a client crash dump request.
+  // Parameter crash_context: Context for client crash dump request callback.
+  // Parameter exit_callback: Callback for client process exit.
+  // Parameter exit_context: Context for client exit callback.
+  // Parameter generate_dumps: Whether to automatically generate dumps.
+  // Client code of this class might want to generate dumps explicitly in the
+  // crash dump request callback. In that case, false can be passed for this
+  // parameter.
+  // Parameter dump_path: Path for generating dumps; required only if true is
+  // passed for generateDumps parameter; NULL can be passed otherwise.
+  CrashGenerationServer(const std::wstring& pipe_name,
+                        SECURITY_ATTRIBUTES* pipe_sec_attrs,
+                        OnClientConnectedCallback connect_callback,
+                        void* connect_context,
+                        OnClientDumpRequestCallback dump_callback,
+                        void* dump_context,
+                        OnClientExitedCallback exit_callback,
+                        void* exit_context,
+                        OnClientUploadRequestCallback upload_request_callback,
+                        void* upload_context,
+                        bool generate_dumps,
+                        const std::wstring* dump_path);
+
+  ~CrashGenerationServer();
+
+  // Performs initialization steps needed to start listening to clients. Upon
+  // successful return clients may connect to this server's pipe.
+  //
+  // Returns true if initialization is successful; false otherwise.
+  bool Start();
+
+  void pre_fetch_custom_info(bool do_pre_fetch) {
+    pre_fetch_custom_info_ = do_pre_fetch;
+  }
+
+ private:
+  // Various states the client can be in during the handshake with
+  // the server.
+  enum IPCServerState {
+    // Server starts in this state.
+    IPC_SERVER_STATE_UNINITIALIZED,
+
+    // Server is in error state and it cannot serve any clients.
+    IPC_SERVER_STATE_ERROR,
+
+    // Server starts in this state.
+    IPC_SERVER_STATE_INITIAL,
+
+    // Server has issued an async connect to the pipe and it is waiting
+    // for the connection to be established.
+    IPC_SERVER_STATE_CONNECTING,
+
+    // Server is connected successfully.
+    IPC_SERVER_STATE_CONNECTED,
+
+    // Server has issued an async read from the pipe and it is waiting for
+    // the read to finish.
+    IPC_SERVER_STATE_READING,
+
+    // Server is done reading from the pipe.
+    IPC_SERVER_STATE_READ_DONE,
+
+    // Server has issued an async write to the pipe and it is waiting for
+    // the write to finish.
+    IPC_SERVER_STATE_WRITING,
+
+    // Server is done writing to the pipe.
+    IPC_SERVER_STATE_WRITE_DONE,
+
+    // Server has issued an async read from the pipe for an ack and it
+    // is waiting for the read to finish.
+    IPC_SERVER_STATE_READING_ACK,
+
+    // Server is done writing to the pipe and it is now ready to disconnect
+    // and reconnect.
+    IPC_SERVER_STATE_DISCONNECTING
+  };
+
+  //
+  // Helper methods to handle various server IPC states.
+  //
+  void HandleErrorState();
+  void HandleInitialState();
+  void HandleConnectingState();
+  void HandleConnectedState();
+  void HandleReadingState();
+  void HandleReadDoneState();
+  void HandleWritingState();
+  void HandleWriteDoneState();
+  void HandleReadingAckState();
+  void HandleDisconnectingState();
+
+  // Prepares reply for a client from the given parameters.
+  bool PrepareReply(const ClientInfo& client_info,
+                    ProtocolMessage* reply) const;
+
+  // Duplicates various handles in the ClientInfo object for the client
+  // process and stores them in the given ProtocolMessage instance. If
+  // creating any handle fails, ProtocolMessage will contain the handles
+  // already created successfully, which should be closed by the caller.
+  bool CreateClientHandles(const ClientInfo& client_info,
+                           ProtocolMessage* reply) const;
+
+  // Response to the given client. Return true if all steps of
+  // responding to the client succeed, false otherwise.
+  bool RespondToClient(ClientInfo* client_info);
+
+  // Handles a connection request from the client.
+  void HandleConnectionRequest();
+
+  // Handles a dump request from the client.
+  void HandleDumpRequest(const ClientInfo& client_info);
+
+  // Callback for pipe connected event.
+  static void CALLBACK OnPipeConnected(void* context, BOOLEAN timer_or_wait);
+
+  // Callback for a dump request.
+  static void CALLBACK OnDumpRequest(void* context, BOOLEAN timer_or_wait);
+
+  // Callback for client process exit event.
+  static void CALLBACK OnClientEnd(void* context, BOOLEAN timer_or_wait);
+
+  // Handles client process exit.
+  void HandleClientProcessExit(ClientInfo* client_info);
+
+  // Adds the given client to the list of registered clients.
+  bool AddClient(ClientInfo* client_info);
+
+  // Generates dump for the given client.
+  bool GenerateDump(const ClientInfo& client, std::wstring* dump_path);
+
+  // Puts the server in a permanent error state and sets a signal such that
+  // the state will be immediately entered after the current state transition
+  // is complete.
+  void EnterErrorState();
+
+  // Puts the server in the specified state and sets a signal such that the
+  // state is immediately entered after the current state transition is
+  // complete.
+  void EnterStateImmediately(IPCServerState state);
+
+  // Puts the server in the specified state. No signal will be set, so the state
+  // transition will only occur when signaled manually or by completion of an
+  // asynchronous IO operation.
+  void EnterStateWhenSignaled(IPCServerState state);
+
+  // Sync object for thread-safe access to the shared list of clients.
+  CRITICAL_SECTION sync_;
+
+  // List of clients.
+  std::list<ClientInfo*> clients_;
+
+  // Pipe name.
+  std::wstring pipe_name_;
+
+  // Pipe security attributes
+  SECURITY_ATTRIBUTES* pipe_sec_attrs_;
+
+  // Handle to the pipe used for handshake with clients.
+  HANDLE pipe_;
+
+  // Pipe wait handle.
+  HANDLE pipe_wait_handle_;
+
+  // Handle to server-alive mutex.
+  HANDLE server_alive_handle_;
+
+  // Callback for a successful client connection.
+  OnClientConnectedCallback connect_callback_;
+
+  // Context for client connected callback.
+  void* connect_context_;
+
+  // Callback for a client dump request.
+  OnClientDumpRequestCallback dump_callback_;
+
+  // Context for client dump request callback.
+  void* dump_context_;
+
+  // Callback for client process exit.
+  OnClientExitedCallback exit_callback_;
+
+  // Context for client process exit callback.
+  void* exit_context_;
+
+  // Callback for upload request.
+  OnClientUploadRequestCallback upload_request_callback_;
+
+  // Context for upload request callback.
+  void* upload_context_;
+
+  // Whether to generate dumps.
+  bool generate_dumps_;
+
+  // Wether to populate custom information up-front.
+  bool pre_fetch_custom_info_;
+
+  // The dump path for the server.
+  const std::wstring dump_path_;
+
+  // State of the server in performing the IPC with the client.
+  // Note that since we restrict the pipe to one instance, we
+  // only need to keep one state of the server. Otherwise, server
+  // would have one state per client it is talking to.
+  IPCServerState server_state_;
+
+  // Whether the server is shutting down.
+  bool shutting_down_;
+
+  // Overlapped instance for async I/O on the pipe.
+  OVERLAPPED overlapped_;
+
+  // Message object used in IPC with the client.
+  ProtocolMessage msg_;
+
+  // Client Info for the client that's connecting to the server.
+  ClientInfo* client_info_;
+
+  // Disable copy ctor and operator=.
+  CrashGenerationServer(const CrashGenerationServer& crash_server);
+  CrashGenerationServer& operator=(const CrashGenerationServer& crash_server);
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_CRASH_GENERATION_CRASH_GENERATION_SERVER_H__
diff --git a/src/client/windows/crash_generation/minidump_generator.cc b/src/client/windows/crash_generation/minidump_generator.cc
new file mode 100644
index 0000000..573c278
--- /dev/null
+++ b/src/client/windows/crash_generation/minidump_generator.cc
@@ -0,0 +1,583 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/crash_generation/minidump_generator.h"
+
+#include <assert.h>
+#include <avrfsdk.h>
+
+#include <algorithm>
+#include <iterator>
+#include <list>
+#include <vector>
+
+#include "client/windows/common/auto_critical_section.h"
+#include "common/scoped_ptr.h"
+#include "common/windows/guid_string.h"
+
+using std::wstring;
+
+namespace {
+
+// A helper class used to collect handle operations data. Unlike
+// |MiniDumpWithHandleData| it records the operations for a single handle value
+// only, making it possible to include this information to a minidump.
+class HandleTraceData {
+ public:
+  HandleTraceData();
+  ~HandleTraceData();
+
+  // Collects the handle operations data and formats a user stream to be added
+  // to the minidump.
+  bool CollectHandleData(HANDLE process_handle,
+                         EXCEPTION_POINTERS* exception_pointers);
+
+  // Fills the user dump entry with a pointer to the collected handle operations
+  // data. Returns |true| if the entry was initialized successfully, or |false|
+  // if no trace data is available.
+  bool GetUserStream(MINIDUMP_USER_STREAM* user_stream);
+
+ private:
+  // Reads the exception code from the client process's address space.
+  // This routine assumes that the client process's pointer width matches ours.
+  static bool ReadExceptionCode(HANDLE process_handle,
+                                EXCEPTION_POINTERS* exception_pointers,
+                                DWORD* exception_code);
+
+  // Stores handle operations retrieved by VerifierEnumerateResource().
+  static ULONG CALLBACK RecordHandleOperations(void* resource_description,
+                                               void* enumeration_context,
+                                               ULONG* enumeration_level);
+
+  // Function pointer type for VerifierEnumerateResource, which is looked up
+  // dynamically.
+  typedef BOOL (WINAPI* VerifierEnumerateResourceType)(
+      HANDLE Process,
+      ULONG Flags,
+      ULONG ResourceType,
+      AVRF_RESOURCE_ENUMERATE_CALLBACK ResourceCallback,
+      PVOID EnumerationContext);
+
+  // Handle to dynamically loaded verifier.dll.
+  HMODULE verifier_module_;
+
+  // Pointer to the VerifierEnumerateResource function.
+  VerifierEnumerateResourceType enumerate_resource_;
+
+  // Handle value to look for.
+  ULONG64 handle_;
+
+  // List of handle operations for |handle_|.
+  std::list<AVRF_HANDLE_OPERATION> operations_;
+
+  // Minidump stream data.
+  std::vector<char> stream_;
+};
+
+HandleTraceData::HandleTraceData()
+    : verifier_module_(NULL),
+      enumerate_resource_(NULL),
+      handle_(NULL) {
+}
+
+HandleTraceData::~HandleTraceData() {
+  if (verifier_module_) {
+    FreeLibrary(verifier_module_);
+  }
+}
+
+bool HandleTraceData::CollectHandleData(
+    HANDLE process_handle,
+    EXCEPTION_POINTERS* exception_pointers) {
+  DWORD exception_code;
+  if (!ReadExceptionCode(process_handle, exception_pointers, &exception_code)) {
+    return false;
+  }
+
+  // Verify whether the execption is STATUS_INVALID_HANDLE. Do not record any
+  // handle information if it is a different exception to keep the minidump
+  // small.
+  if (exception_code != STATUS_INVALID_HANDLE) {
+    return true;
+  }
+
+  // Load verifier!VerifierEnumerateResource() dynamically.
+  verifier_module_ = LoadLibrary(TEXT("verifier.dll"));
+  if (!verifier_module_) {
+    return false;
+  }
+
+  enumerate_resource_ = reinterpret_cast<VerifierEnumerateResourceType>(
+      GetProcAddress(verifier_module_, "VerifierEnumerateResource"));
+  if (!enumerate_resource_) {
+    return false;
+  }
+
+  // STATUS_INVALID_HANDLE does not provide the offending handle value in
+  // the exception parameters so we have to guess. At the moment we scan
+  // the handle operations trace looking for the last invalid handle operation
+  // and record only the operations for that handle value.
+  if (enumerate_resource_(process_handle,
+                          0,
+                          AvrfResourceHandleTrace,
+                          &RecordHandleOperations,
+                          this) != ERROR_SUCCESS) {
+    // The handle tracing must have not been enabled.
+    return true;
+  }
+
+  // Now that |handle_| is initialized, purge all irrelevant operations.
+  std::list<AVRF_HANDLE_OPERATION>::iterator i = operations_.begin();
+  std::list<AVRF_HANDLE_OPERATION>::iterator i_end = operations_.end();
+  while (i != i_end) {
+    if (i->Handle == handle_) {
+      ++i;
+    } else {
+      i = operations_.erase(i);
+    }
+  }
+
+  // Convert the list of recorded operations to a minidump stream.
+  stream_.resize(sizeof(MINIDUMP_HANDLE_OPERATION_LIST) +
+      sizeof(AVRF_HANDLE_OPERATION) * operations_.size());
+
+  MINIDUMP_HANDLE_OPERATION_LIST* stream_data =
+      reinterpret_cast<MINIDUMP_HANDLE_OPERATION_LIST*>(
+          &stream_.front());
+  stream_data->SizeOfHeader = sizeof(MINIDUMP_HANDLE_OPERATION_LIST);
+  stream_data->SizeOfEntry = sizeof(AVRF_HANDLE_OPERATION);
+  stream_data->NumberOfEntries = static_cast<ULONG32>(operations_.size());
+  stream_data->Reserved = 0;
+  std::copy(operations_.begin(),
+            operations_.end(),
+#if defined(_MSC_VER) && !defined(_LIBCPP_STD_VER)
+            stdext::checked_array_iterator<AVRF_HANDLE_OPERATION*>(
+                reinterpret_cast<AVRF_HANDLE_OPERATION*>(stream_data + 1),
+                operations_.size())
+#else
+            reinterpret_cast<AVRF_HANDLE_OPERATION*>(stream_data + 1)
+#endif
+            );
+
+  return true;
+}
+
+bool HandleTraceData::GetUserStream(MINIDUMP_USER_STREAM* user_stream) {
+  if (stream_.empty()) {
+    return false;
+  } else {
+    user_stream->Type = HandleOperationListStream;
+    user_stream->BufferSize = static_cast<ULONG>(stream_.size());
+    user_stream->Buffer = &stream_.front();
+    return true;
+  }
+}
+
+bool HandleTraceData::ReadExceptionCode(
+    HANDLE process_handle,
+    EXCEPTION_POINTERS* exception_pointers,
+    DWORD* exception_code) {
+  EXCEPTION_POINTERS pointers;
+  if (!ReadProcessMemory(process_handle,
+                         exception_pointers,
+                         &pointers,
+                         sizeof(pointers),
+                         NULL)) {
+    return false;
+  }
+
+  if (!ReadProcessMemory(process_handle,
+                         pointers.ExceptionRecord,
+                         exception_code,
+                         sizeof(*exception_code),
+                         NULL)) {
+    return false;
+  }
+
+  return true;
+}
+
+ULONG CALLBACK HandleTraceData::RecordHandleOperations(
+    void* resource_description,
+    void* enumeration_context,
+    ULONG* enumeration_level) {
+  AVRF_HANDLE_OPERATION* description =
+      reinterpret_cast<AVRF_HANDLE_OPERATION*>(resource_description);
+  HandleTraceData* self =
+      reinterpret_cast<HandleTraceData*>(enumeration_context);
+
+  // Remember the last invalid handle operation.
+  if (description->OperationType == OperationDbBADREF) {
+    self->handle_ = description->Handle;
+  }
+
+  // Record all handle operations.
+  self->operations_.push_back(*description);
+
+  *enumeration_level = HeapEnumerationEverything;
+  return ERROR_SUCCESS;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+MinidumpGenerator::MinidumpGenerator(
+    const std::wstring& dump_path,
+    const HANDLE process_handle,
+    const DWORD process_id,
+    const DWORD thread_id,
+    const DWORD requesting_thread_id,
+    EXCEPTION_POINTERS* exception_pointers,
+    MDRawAssertionInfo* assert_info,
+    const MINIDUMP_TYPE dump_type,
+    const bool is_client_pointers)
+    : dbghelp_module_(NULL),
+      write_dump_(NULL),
+      rpcrt4_module_(NULL),
+      create_uuid_(NULL),
+      process_handle_(process_handle),
+      process_id_(process_id),
+      thread_id_(thread_id),
+      requesting_thread_id_(requesting_thread_id),
+      exception_pointers_(exception_pointers),
+      assert_info_(assert_info),
+      dump_type_(dump_type),
+      is_client_pointers_(is_client_pointers),
+      dump_path_(dump_path),
+      uuid_generated_(false),
+      dump_file_(INVALID_HANDLE_VALUE),
+      full_dump_file_(INVALID_HANDLE_VALUE),
+      dump_file_is_internal_(false),
+      full_dump_file_is_internal_(false),
+      additional_streams_(NULL),
+      callback_info_(NULL) {
+  uuid_ = {0};
+  InitializeCriticalSection(&module_load_sync_);
+  InitializeCriticalSection(&get_proc_address_sync_);
+}
+
+MinidumpGenerator::~MinidumpGenerator() {
+  if (dump_file_is_internal_ && dump_file_ != INVALID_HANDLE_VALUE) {
+    CloseHandle(dump_file_);
+  }
+
+  if (full_dump_file_is_internal_ && full_dump_file_ != INVALID_HANDLE_VALUE) {
+    CloseHandle(full_dump_file_);
+  }
+
+  if (dbghelp_module_) {
+    FreeLibrary(dbghelp_module_);
+  }
+
+  if (rpcrt4_module_) {
+    FreeLibrary(rpcrt4_module_);
+  }
+
+  DeleteCriticalSection(&get_proc_address_sync_);
+  DeleteCriticalSection(&module_load_sync_);
+}
+
+bool MinidumpGenerator::WriteMinidump() {
+  bool full_memory_dump = (dump_type_ & MiniDumpWithFullMemory) != 0;
+  if (dump_file_ == INVALID_HANDLE_VALUE ||
+      (full_memory_dump && full_dump_file_ == INVALID_HANDLE_VALUE)) {
+    return false;
+  }
+
+  MiniDumpWriteDumpType write_dump = GetWriteDump();
+  if (!write_dump) {
+    return false;
+  }
+
+  MINIDUMP_EXCEPTION_INFORMATION* dump_exception_pointers = NULL;
+  MINIDUMP_EXCEPTION_INFORMATION dump_exception_info;
+
+  // Setup the exception information object only if it's a dump
+  // due to an exception.
+  if (exception_pointers_) {
+    dump_exception_pointers = &dump_exception_info;
+    dump_exception_info.ThreadId = thread_id_;
+    dump_exception_info.ExceptionPointers = exception_pointers_;
+    dump_exception_info.ClientPointers = is_client_pointers_;
+  }
+
+  // Add an MDRawBreakpadInfo stream to the minidump, to provide additional
+  // information about the exception handler to the Breakpad processor.
+  // The information will help the processor determine which threads are
+  // relevant. The Breakpad processor does not require this information but
+  // can function better with Breakpad-generated dumps when it is present.
+  // The native debugger is not harmed by the presence of this information.
+  MDRawBreakpadInfo breakpad_info = {0};
+  if (!is_client_pointers_) {
+    // Set the dump thread id and requesting thread id only in case of
+    // in-process dump generation.
+    breakpad_info.validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID |
+                             MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID;
+    breakpad_info.dump_thread_id = thread_id_;
+    breakpad_info.requesting_thread_id = requesting_thread_id_;
+  }
+
+  int additional_streams_count = additional_streams_ ?
+      additional_streams_->UserStreamCount : 0;
+  scoped_array<MINIDUMP_USER_STREAM> user_stream_array(
+      new MINIDUMP_USER_STREAM[3 + additional_streams_count]);
+  user_stream_array[0].Type = MD_BREAKPAD_INFO_STREAM;
+  user_stream_array[0].BufferSize = sizeof(breakpad_info);
+  user_stream_array[0].Buffer = &breakpad_info;
+
+  MINIDUMP_USER_STREAM_INFORMATION user_streams;
+  user_streams.UserStreamCount = 1;
+  user_streams.UserStreamArray = user_stream_array.get();
+
+  MDRawAssertionInfo* actual_assert_info = assert_info_;
+  MDRawAssertionInfo client_assert_info = {{0}};
+
+  if (assert_info_) {
+    // If the assertion info object lives in the client process,
+    // read the memory of the client process.
+    if (is_client_pointers_) {
+      SIZE_T bytes_read = 0;
+      if (!ReadProcessMemory(process_handle_,
+                             assert_info_,
+                             &client_assert_info,
+                             sizeof(client_assert_info),
+                             &bytes_read)) {
+        if (dump_file_is_internal_)
+          CloseHandle(dump_file_);
+        if (full_dump_file_is_internal_ &&
+            full_dump_file_ != INVALID_HANDLE_VALUE)
+          CloseHandle(full_dump_file_);
+        return false;
+      }
+
+      if (bytes_read != sizeof(client_assert_info)) {
+        if (dump_file_is_internal_)
+          CloseHandle(dump_file_);
+        if (full_dump_file_is_internal_ &&
+            full_dump_file_ != INVALID_HANDLE_VALUE)
+          CloseHandle(full_dump_file_);
+        return false;
+      }
+
+      actual_assert_info  = &client_assert_info;
+    }
+
+    user_stream_array[1].Type = MD_ASSERTION_INFO_STREAM;
+    user_stream_array[1].BufferSize = sizeof(MDRawAssertionInfo);
+    user_stream_array[1].Buffer = actual_assert_info;
+    ++user_streams.UserStreamCount;
+  }
+
+  if (additional_streams_) {
+    for (size_t i = 0;
+         i < additional_streams_->UserStreamCount;
+         i++, user_streams.UserStreamCount++) {
+      user_stream_array[user_streams.UserStreamCount].Type =
+          additional_streams_->UserStreamArray[i].Type;
+      user_stream_array[user_streams.UserStreamCount].BufferSize =
+          additional_streams_->UserStreamArray[i].BufferSize;
+      user_stream_array[user_streams.UserStreamCount].Buffer =
+          additional_streams_->UserStreamArray[i].Buffer;
+    }
+  }
+
+  // If the process is terminated by STATUS_INVALID_HANDLE exception store
+  // the trace of operations for the offending handle value. Do nothing special
+  // if the client already requested the handle trace to be stored in the dump.
+  HandleTraceData handle_trace_data;
+  if (exception_pointers_ && (dump_type_ & MiniDumpWithHandleData) == 0) {
+    if (!handle_trace_data.CollectHandleData(process_handle_,
+                                             exception_pointers_)) {
+      if (dump_file_is_internal_)
+        CloseHandle(dump_file_);
+      if (full_dump_file_is_internal_ &&
+          full_dump_file_ != INVALID_HANDLE_VALUE)
+        CloseHandle(full_dump_file_);
+      return false;
+    }
+  }
+
+  bool result_full_memory = true;
+  if (full_memory_dump) {
+    result_full_memory = write_dump(
+        process_handle_,
+        process_id_,
+        full_dump_file_,
+        static_cast<MINIDUMP_TYPE>((dump_type_ & (~MiniDumpNormal))
+                                    | MiniDumpWithHandleData),
+        exception_pointers_ ? &dump_exception_info : NULL,
+        &user_streams,
+        NULL) != FALSE;
+  }
+
+  // Add handle operations trace stream to the minidump if it was collected.
+  if (handle_trace_data.GetUserStream(
+          &user_stream_array[user_streams.UserStreamCount])) {
+    ++user_streams.UserStreamCount;
+  }
+
+  bool result_minidump = write_dump(
+      process_handle_,
+      process_id_,
+      dump_file_,
+      static_cast<MINIDUMP_TYPE>((dump_type_ & (~MiniDumpWithFullMemory))
+                                  | MiniDumpNormal),
+      exception_pointers_ ? &dump_exception_info : NULL,
+      &user_streams,
+      callback_info_) != FALSE;
+
+  return result_minidump && result_full_memory;
+}
+
+bool MinidumpGenerator::GenerateDumpFile(wstring* dump_path) {
+  // The dump file was already set by handle or this function was previously
+  // called.
+  if (dump_file_ != INVALID_HANDLE_VALUE) {
+    return false;
+  }
+
+  wstring dump_file_path;
+  if (!GenerateDumpFilePath(&dump_file_path)) {
+    return false;
+  }
+
+  dump_file_ = CreateFile(dump_file_path.c_str(),
+                          GENERIC_WRITE,
+                          0,
+                          NULL,
+                          CREATE_NEW,
+                          FILE_ATTRIBUTE_NORMAL,
+                          NULL);
+  if (dump_file_ == INVALID_HANDLE_VALUE) {
+    return false;
+  }
+
+  dump_file_is_internal_ = true;
+  *dump_path = dump_file_path;
+  return true;
+}
+
+bool MinidumpGenerator::GenerateFullDumpFile(wstring* full_dump_path) {
+  // A full minidump was not requested.
+  if ((dump_type_ & MiniDumpWithFullMemory) == 0) {
+    return false;
+  }
+
+  // The dump file was already set by handle or this function was previously
+  // called.
+  if (full_dump_file_ != INVALID_HANDLE_VALUE) {
+    return false;
+  }
+
+  wstring full_dump_file_path;
+  if (!GenerateDumpFilePath(&full_dump_file_path)) {
+    return false;
+  }
+  full_dump_file_path.resize(full_dump_file_path.size() - 4);  // strip .dmp
+  full_dump_file_path.append(TEXT("-full.dmp"));
+
+  full_dump_file_ = CreateFile(full_dump_file_path.c_str(),
+                               GENERIC_WRITE,
+                               0,
+                               NULL,
+                               CREATE_NEW,
+                               FILE_ATTRIBUTE_NORMAL,
+                               NULL);
+  if (full_dump_file_ == INVALID_HANDLE_VALUE) {
+    return false;
+  }
+
+  full_dump_file_is_internal_ = true;
+  *full_dump_path = full_dump_file_path;
+  return true;
+}
+
+HMODULE MinidumpGenerator::GetDbghelpModule() {
+  AutoCriticalSection lock(&module_load_sync_);
+  if (!dbghelp_module_) {
+    dbghelp_module_ = LoadLibrary(TEXT("dbghelp.dll"));
+  }
+
+  return dbghelp_module_;
+}
+
+MinidumpGenerator::MiniDumpWriteDumpType MinidumpGenerator::GetWriteDump() {
+  AutoCriticalSection lock(&get_proc_address_sync_);
+  if (!write_dump_) {
+    HMODULE module = GetDbghelpModule();
+    if (module) {
+      FARPROC proc = GetProcAddress(module, "MiniDumpWriteDump");
+      write_dump_ = reinterpret_cast<MiniDumpWriteDumpType>(proc);
+    }
+  }
+
+  return write_dump_;
+}
+
+HMODULE MinidumpGenerator::GetRpcrt4Module() {
+  AutoCriticalSection lock(&module_load_sync_);
+  if (!rpcrt4_module_) {
+    rpcrt4_module_ = LoadLibrary(TEXT("rpcrt4.dll"));
+  }
+
+  return rpcrt4_module_;
+}
+
+MinidumpGenerator::UuidCreateType MinidumpGenerator::GetCreateUuid() {
+  AutoCriticalSection lock(&module_load_sync_);
+  if (!create_uuid_) {
+    HMODULE module = GetRpcrt4Module();
+    if (module) {
+      FARPROC proc = GetProcAddress(module, "UuidCreate");
+      create_uuid_ = reinterpret_cast<UuidCreateType>(proc);
+    }
+  }
+
+  return create_uuid_;
+}
+
+bool MinidumpGenerator::GenerateDumpFilePath(wstring* file_path) {
+  if (!uuid_generated_) {
+    UuidCreateType create_uuid = GetCreateUuid();
+    if (!create_uuid) {
+      return false;
+    }
+
+    create_uuid(&uuid_);
+    uuid_generated_ = true;
+  }
+
+  wstring id_str = GUIDString::GUIDToWString(&uuid_);
+
+  *file_path = dump_path_ + TEXT("\\") + id_str + TEXT(".dmp");
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/crash_generation/minidump_generator.h b/src/client/windows/crash_generation/minidump_generator.h
new file mode 100644
index 0000000..a707c0b
--- /dev/null
+++ b/src/client/windows/crash_generation/minidump_generator.h
@@ -0,0 +1,203 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_
+#define CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <rpc.h>
+#include <list>
+#include <string>
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// Abstraction for various objects and operations needed to generate
+// minidump on Windows. This abstraction is useful to hide all the gory
+// details for minidump generation and provide a clean interface to
+// the clients to generate minidumps.
+class MinidumpGenerator {
+ public:
+  // Creates an instance with the given parameters.
+  // is_client_pointers specifies whether the exception_pointers and
+  // assert_info point into the process that is being dumped.
+  // Before calling WriteMinidump on the returned instance a dump file muct be
+  // specified by a call to either SetDumpFile() or GenerateDumpFile().
+  // If a full dump file will be requested via a subsequent call to either
+  // SetFullDumpFile or GenerateFullDumpFile() dump_type must include
+  // MiniDumpWithFullMemory.
+  MinidumpGenerator(const std::wstring& dump_path,
+                    const HANDLE process_handle,
+                    const DWORD process_id,
+                    const DWORD thread_id,
+                    const DWORD requesting_thread_id,
+                    EXCEPTION_POINTERS* exception_pointers,
+                    MDRawAssertionInfo* assert_info,
+                    const MINIDUMP_TYPE dump_type,
+                    const bool is_client_pointers);
+
+  ~MinidumpGenerator();
+
+  void SetDumpFile(const HANDLE dump_file) { dump_file_ = dump_file; }
+  void SetFullDumpFile(const HANDLE full_dump_file) {
+    full_dump_file_ = full_dump_file;
+  }
+
+  // Generate the name for the dump file that will be written to once
+  // WriteMinidump() is called. Can only be called once and cannot be called
+  // if the dump file is set via SetDumpFile().
+  bool GenerateDumpFile(std::wstring* dump_path);
+
+  // Generate the name for the full dump file that will be written to once
+  // WriteMinidump() is called. Cannot be called unless the minidump type
+  // includes MiniDumpWithFullMemory. Can only be called once and cannot be
+  // called if the dump file is set via SetFullDumpFile().
+  bool GenerateFullDumpFile(std::wstring* full_dump_path);
+
+  void SetAdditionalStreams(
+      MINIDUMP_USER_STREAM_INFORMATION* additional_streams) {
+    additional_streams_ = additional_streams;
+  }
+
+  void SetCallback(MINIDUMP_CALLBACK_INFORMATION* callback_info) {
+    callback_info_ = callback_info;
+  }
+
+  // Writes the minidump with the given parameters. Stores the
+  // dump file path in the dump_path parameter if dump generation
+  // succeeds.
+  bool WriteMinidump();
+
+ private:
+  // Function pointer type for MiniDumpWriteDump, which is looked up
+  // dynamically.
+  typedef BOOL (WINAPI* MiniDumpWriteDumpType)(
+      HANDLE hProcess,
+      DWORD ProcessId,
+      HANDLE hFile,
+      MINIDUMP_TYPE DumpType,
+      CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
+      CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
+      CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
+
+  // Function pointer type for UuidCreate, which is looked up dynamically.
+  typedef RPC_STATUS (RPC_ENTRY* UuidCreateType)(UUID* Uuid);
+
+  // Loads the appropriate DLL lazily in a thread safe way.
+  HMODULE GetDbghelpModule();
+
+  // Loads the appropriate DLL and gets a pointer to the MiniDumpWriteDump
+  // function lazily and in a thread-safe manner.
+  MiniDumpWriteDumpType GetWriteDump();
+
+  // Loads the appropriate DLL lazily in a thread safe way.
+  HMODULE GetRpcrt4Module();
+
+  // Loads the appropriate DLL and gets a pointer to the UuidCreate
+  // function lazily and in a thread-safe manner.
+  UuidCreateType GetCreateUuid();
+
+  // Returns the path for the file to write dump to.
+  bool GenerateDumpFilePath(std::wstring* file_path);
+
+  // Handle to dynamically loaded DbgHelp.dll.
+  HMODULE dbghelp_module_;
+
+  // Pointer to the MiniDumpWriteDump function.
+  MiniDumpWriteDumpType write_dump_;
+
+  // Handle to dynamically loaded rpcrt4.dll.
+  HMODULE rpcrt4_module_;
+
+  // Pointer to the UuidCreate function.
+  UuidCreateType create_uuid_;
+
+  // Handle for the process to dump.
+  HANDLE process_handle_;
+
+  // Process ID for the process to dump.
+  DWORD process_id_;
+
+  // The crashing thread ID.
+  DWORD thread_id_;
+
+  // The thread ID which is requesting the dump.
+  DWORD requesting_thread_id_;
+
+  // Pointer to the exception information for the crash. This may point to an
+  // address in the crashing process so it should not be dereferenced.
+  EXCEPTION_POINTERS* exception_pointers_;
+
+  // Assertion info for the report.
+  MDRawAssertionInfo* assert_info_;
+
+  // Type of minidump to generate.
+  MINIDUMP_TYPE dump_type_;
+
+  // Specifies whether the exception_pointers_ reference memory in the crashing
+  // process.
+  bool is_client_pointers_;
+
+  // Folder path to store dump files.
+  std::wstring dump_path_;
+
+  // UUID used to make dump file names.
+  UUID uuid_;
+  bool uuid_generated_;
+
+  // The file where the dump will be written.
+  HANDLE dump_file_;
+
+  // The file where the full dump will be written.
+  HANDLE full_dump_file_;
+
+  // Tracks whether the dump file handle is managed externally.
+  bool dump_file_is_internal_;
+
+  // Tracks whether the full dump file handle is managed externally.
+  bool full_dump_file_is_internal_;
+
+  // Additional streams to be written to the dump.
+  MINIDUMP_USER_STREAM_INFORMATION* additional_streams_;
+
+  // The user defined callback for the various stages of the dump process.
+  MINIDUMP_CALLBACK_INFORMATION* callback_info_;
+
+  // Critical section to sychronize action of loading modules dynamically.
+  CRITICAL_SECTION module_load_sync_;
+
+  // Critical section to synchronize action of dynamically getting function
+  // addresses from modules.
+  CRITICAL_SECTION get_proc_address_sync_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_
diff --git a/src/client/windows/handler/exception_handler.cc b/src/client/windows/handler/exception_handler.cc
new file mode 100644
index 0000000..20d63a8
--- /dev/null
+++ b/src/client/windows/handler/exception_handler.cc
@@ -0,0 +1,1082 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <objbase.h>
+
+#include <algorithm>
+#include <cassert>
+#include <cstdio>
+
+#include "common/windows/string_utils-inl.h"
+
+#include "client/windows/common/ipc_protocol.h"
+#include "client/windows/handler/exception_handler.h"
+#include "common/windows/guid_string.h"
+
+namespace google_breakpad {
+
+// This is passed as the context to the MinidumpWriteDump callback.
+typedef struct {
+  AppMemoryList::const_iterator iter;
+  AppMemoryList::const_iterator end;
+} MinidumpCallbackContext;
+
+// This define is new to Windows 10.
+#ifndef DBG_PRINTEXCEPTION_WIDE_C
+#define DBG_PRINTEXCEPTION_WIDE_C ((DWORD)0x4001000A)
+#endif
+
+vector<ExceptionHandler*>* ExceptionHandler::handler_stack_ = NULL;
+LONG ExceptionHandler::handler_stack_index_ = 0;
+CRITICAL_SECTION ExceptionHandler::handler_stack_critical_section_;
+volatile LONG ExceptionHandler::instance_count_ = 0;
+
+ExceptionHandler::ExceptionHandler(const wstring& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   int handler_types,
+                                   MINIDUMP_TYPE dump_type,
+                                   const wchar_t* pipe_name,
+                                   const CustomClientInfo* custom_info) {
+  Initialize(dump_path,
+             filter,
+             callback,
+             callback_context,
+             handler_types,
+             dump_type,
+             pipe_name,
+             NULL,  // pipe_handle
+             NULL,  // crash_generation_client
+             custom_info);
+}
+
+ExceptionHandler::ExceptionHandler(const wstring& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   int handler_types,
+                                   MINIDUMP_TYPE dump_type,
+                                   HANDLE pipe_handle,
+                                   const CustomClientInfo* custom_info) {
+  Initialize(dump_path,
+             filter,
+             callback,
+             callback_context,
+             handler_types,
+             dump_type,
+             NULL,  // pipe_name
+             pipe_handle,
+             NULL,  // crash_generation_client
+             custom_info);
+}
+
+ExceptionHandler::ExceptionHandler(
+    const wstring& dump_path,
+    FilterCallback filter,
+    MinidumpCallback callback,
+    void* callback_context,
+    int handler_types,
+    CrashGenerationClient* crash_generation_client) {
+  // The dump_type, pipe_name and custom_info that are passed in to Initialize()
+  // are not used.  The ones set in crash_generation_client are used instead.
+  Initialize(dump_path,
+             filter,
+             callback,
+             callback_context,
+             handler_types,
+             MiniDumpNormal,           // dump_type - not used
+             NULL,                     // pipe_name - not used
+             NULL,                     // pipe_handle
+             crash_generation_client,
+             NULL);                    // custom_info - not used
+}
+
+ExceptionHandler::ExceptionHandler(const wstring& dump_path,
+                                   FilterCallback filter,
+                                   MinidumpCallback callback,
+                                   void* callback_context,
+                                   int handler_types) {
+  Initialize(dump_path,
+             filter,
+             callback,
+             callback_context,
+             handler_types,
+             MiniDumpNormal,
+             NULL,   // pipe_name
+             NULL,   // pipe_handle
+             NULL,   // crash_generation_client
+             NULL);  // custom_info
+}
+
+void ExceptionHandler::Initialize(
+    const wstring& dump_path,
+    FilterCallback filter,
+    MinidumpCallback callback,
+    void* callback_context,
+    int handler_types,
+    MINIDUMP_TYPE dump_type,
+    const wchar_t* pipe_name,
+    HANDLE pipe_handle,
+    CrashGenerationClient* crash_generation_client,
+    const CustomClientInfo* custom_info) {
+  LONG instance_count = InterlockedIncrement(&instance_count_);
+  filter_ = filter;
+  callback_ = callback;
+  callback_context_ = callback_context;
+  dump_path_c_ = NULL;
+  next_minidump_id_c_ = NULL;
+  next_minidump_path_c_ = NULL;
+  dbghelp_module_ = NULL;
+  minidump_write_dump_ = NULL;
+  dump_type_ = dump_type;
+  rpcrt4_module_ = NULL;
+  uuid_create_ = NULL;
+  handler_types_ = handler_types;
+  previous_filter_ = NULL;
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  previous_iph_ = NULL;
+#endif  // _MSC_VER >= 1400
+  previous_pch_ = NULL;
+  handler_thread_ = NULL;
+  is_shutdown_ = false;
+  handler_start_semaphore_ = NULL;
+  handler_finish_semaphore_ = NULL;
+  requesting_thread_id_ = 0;
+  exception_info_ = NULL;
+  assertion_ = NULL;
+  handler_return_value_ = false;
+  handle_debug_exceptions_ = false;
+  consume_invalid_handle_exceptions_ = false;
+
+  // Attempt to use out-of-process if user has specified a pipe or a
+  // crash generation client.
+  scoped_ptr<CrashGenerationClient> client;
+  if (crash_generation_client) {
+    client.reset(crash_generation_client);
+  } else if (pipe_name) {
+    client.reset(
+      new CrashGenerationClient(pipe_name, dump_type_, custom_info));
+  } else if (pipe_handle) {
+    client.reset(
+      new CrashGenerationClient(pipe_handle, dump_type_, custom_info));
+  }
+
+  if (client.get() != NULL) {
+    // If successful in registering with the monitoring process,
+    // there is no need to setup in-process crash generation.
+    if (client->Register()) {
+      crash_generation_client_.reset(client.release());
+    }
+  }
+
+  if (!IsOutOfProcess()) {
+    // Either client did not ask for out-of-process crash generation
+    // or registration with the server process failed. In either case,
+    // setup to do in-process crash generation.
+
+    // Set synchronization primitives and the handler thread.  Each
+    // ExceptionHandler object gets its own handler thread because that's the
+    // only way to reliably guarantee sufficient stack space in an exception,
+    // and it allows an easy way to get a snapshot of the requesting thread's
+    // context outside of an exception.
+    InitializeCriticalSection(&handler_critical_section_);
+    handler_start_semaphore_ = CreateSemaphore(NULL, 0, 1, NULL);
+    assert(handler_start_semaphore_ != NULL);
+
+    handler_finish_semaphore_ = CreateSemaphore(NULL, 0, 1, NULL);
+    assert(handler_finish_semaphore_ != NULL);
+
+    // Don't attempt to create the thread if we could not create the semaphores.
+    if (handler_finish_semaphore_ != NULL && handler_start_semaphore_ != NULL) {
+      DWORD thread_id;
+      const int kExceptionHandlerThreadInitialStackSize = 64 * 1024;
+      handler_thread_ = CreateThread(NULL,         // lpThreadAttributes
+                                     kExceptionHandlerThreadInitialStackSize,
+                                     ExceptionHandlerThreadMain,
+                                     this,         // lpParameter
+                                     0,            // dwCreationFlags
+                                     &thread_id);
+      assert(handler_thread_ != NULL);
+    }
+
+    dbghelp_module_ = LoadLibrary(L"dbghelp.dll");
+    if (dbghelp_module_) {
+      minidump_write_dump_ = reinterpret_cast<MiniDumpWriteDump_type>(
+          GetProcAddress(dbghelp_module_, "MiniDumpWriteDump"));
+    }
+
+    // Load this library dynamically to not affect existing projects.  Most
+    // projects don't link against this directly, it's usually dynamically
+    // loaded by dependent code.
+    rpcrt4_module_ = LoadLibrary(L"rpcrt4.dll");
+    if (rpcrt4_module_) {
+      uuid_create_ = reinterpret_cast<UuidCreate_type>(
+          GetProcAddress(rpcrt4_module_, "UuidCreate"));
+    }
+
+    // set_dump_path calls UpdateNextID.  This sets up all of the path and id
+    // strings, and their equivalent c_str pointers.
+    set_dump_path(dump_path);
+  }
+
+  // Reserve one element for the instruction memory
+  AppMemory instruction_memory;
+  instruction_memory.ptr = NULL;
+  instruction_memory.length = 0;
+  app_memory_info_.push_back(instruction_memory);
+
+  // There is a race condition here. If the first instance has not yet
+  // initialized the critical section, the second (and later) instances may
+  // try to use uninitialized critical section object. The feature of multiple
+  // instances in one module is not used much, so leave it as is for now.
+  // One way to solve this in the current design (that is, keeping the static
+  // handler stack) is to use spin locks with volatile bools to synchronize
+  // the handler stack. This works only if the compiler guarantees to generate
+  // cache coherent code for volatile.
+  // TODO(munjal): Fix this in a better way by changing the design if possible.
+
+  // Lazy initialization of the handler_stack_critical_section_
+  if (instance_count == 1) {
+    InitializeCriticalSection(&handler_stack_critical_section_);
+  }
+
+  if (handler_types != HANDLER_NONE) {
+    EnterCriticalSection(&handler_stack_critical_section_);
+
+    // The first time an ExceptionHandler that installs a handler is
+    // created, set up the handler stack.
+    if (!handler_stack_) {
+      handler_stack_ = new vector<ExceptionHandler*>();
+    }
+    handler_stack_->push_back(this);
+
+    if (handler_types & HANDLER_EXCEPTION)
+      previous_filter_ = SetUnhandledExceptionFilter(HandleException);
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+    if (handler_types & HANDLER_INVALID_PARAMETER)
+      previous_iph_ = _set_invalid_parameter_handler(HandleInvalidParameter);
+#endif  // _MSC_VER >= 1400
+
+    if (handler_types & HANDLER_PURECALL)
+      previous_pch_ = _set_purecall_handler(HandlePureVirtualCall);
+
+    LeaveCriticalSection(&handler_stack_critical_section_);
+  }
+}
+
+ExceptionHandler::~ExceptionHandler() {
+  if (dbghelp_module_) {
+    FreeLibrary(dbghelp_module_);
+  }
+
+  if (rpcrt4_module_) {
+    FreeLibrary(rpcrt4_module_);
+  }
+
+  if (handler_types_ != HANDLER_NONE) {
+    EnterCriticalSection(&handler_stack_critical_section_);
+
+    if (handler_types_ & HANDLER_EXCEPTION)
+      SetUnhandledExceptionFilter(previous_filter_);
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+    if (handler_types_ & HANDLER_INVALID_PARAMETER)
+      _set_invalid_parameter_handler(previous_iph_);
+#endif  // _MSC_VER >= 1400
+
+    if (handler_types_ & HANDLER_PURECALL)
+      _set_purecall_handler(previous_pch_);
+
+    if (handler_stack_->back() == this) {
+      handler_stack_->pop_back();
+    } else {
+      // TODO(mmentovai): use advapi32!ReportEvent to log the warning to the
+      // system's application event log.
+      fprintf(stderr, "warning: removing Breakpad handler out of order\n");
+      vector<ExceptionHandler*>::iterator iterator = handler_stack_->begin();
+      while (iterator != handler_stack_->end()) {
+        if (*iterator == this) {
+          iterator = handler_stack_->erase(iterator);
+        } else {
+          ++iterator;
+        }
+      }
+    }
+
+    if (handler_stack_->empty()) {
+      // When destroying the last ExceptionHandler that installed a handler,
+      // clean up the handler stack.
+      delete handler_stack_;
+      handler_stack_ = NULL;
+    }
+
+    LeaveCriticalSection(&handler_stack_critical_section_);
+  }
+
+  // Some of the objects were only initialized if out of process
+  // registration was not done.
+  if (!IsOutOfProcess()) {
+#ifdef BREAKPAD_NO_TERMINATE_THREAD
+    // Clean up the handler thread and synchronization primitives. The handler
+    // thread is either waiting on the semaphore to handle a crash or it is
+    // handling a crash. Coming out of the wait is fast but wait more in the
+    // eventuality a crash is handled.  This compilation option results in a
+    // deadlock if the exception handler is destroyed while executing code
+    // inside DllMain.
+    is_shutdown_ = true;
+    ReleaseSemaphore(handler_start_semaphore_, 1, NULL);
+    const int kWaitForHandlerThreadMs = 60000;
+    WaitForSingleObject(handler_thread_, kWaitForHandlerThreadMs);
+#else
+    TerminateThread(handler_thread_, 1);
+#endif  // BREAKPAD_NO_TERMINATE_THREAD
+
+    CloseHandle(handler_thread_);
+    handler_thread_ = NULL;
+    DeleteCriticalSection(&handler_critical_section_);
+    CloseHandle(handler_start_semaphore_);
+    CloseHandle(handler_finish_semaphore_);
+  }
+
+  // There is a race condition in the code below: if this instance is
+  // deleting the static critical section and a new instance of the class
+  // is created, then there is a possibility that the critical section be
+  // initialized while the same critical section is being deleted. Given the
+  // usage pattern for the code, this race condition is unlikely to hit, but it
+  // is a race condition nonetheless.
+  if (InterlockedDecrement(&instance_count_) == 0) {
+    DeleteCriticalSection(&handler_stack_critical_section_);
+  }
+}
+
+bool ExceptionHandler::RequestUpload(DWORD crash_id) {
+  return crash_generation_client_->RequestUpload(crash_id);
+}
+
+// static
+DWORD ExceptionHandler::ExceptionHandlerThreadMain(void* lpParameter) {
+  ExceptionHandler* self = reinterpret_cast<ExceptionHandler*>(lpParameter);
+  assert(self);
+  assert(self->handler_start_semaphore_ != NULL);
+  assert(self->handler_finish_semaphore_ != NULL);
+
+  for (;;) {
+    if (WaitForSingleObject(self->handler_start_semaphore_, INFINITE) ==
+        WAIT_OBJECT_0) {
+      // Perform the requested action.
+      if (self->is_shutdown_) {
+        // The instance of the exception handler is being destroyed.
+        break;
+      } else {
+        self->handler_return_value_ =
+            self->WriteMinidumpWithException(self->requesting_thread_id_,
+                                             self->exception_info_,
+                                             self->assertion_);
+      }
+
+      // Allow the requesting thread to proceed.
+      ReleaseSemaphore(self->handler_finish_semaphore_, 1, NULL);
+    }
+  }
+
+  // This statement is not reached when the thread is unconditionally
+  // terminated by the ExceptionHandler destructor.
+  return 0;
+}
+
+// HandleException and HandleInvalidParameter must create an
+// AutoExceptionHandler object to maintain static state and to determine which
+// ExceptionHandler instance to use.  The constructor locates the correct
+// instance, and makes it available through get_handler().  The destructor
+// restores the state in effect prior to allocating the AutoExceptionHandler.
+class AutoExceptionHandler {
+ public:
+  AutoExceptionHandler() {
+    // Increment handler_stack_index_ so that if another Breakpad handler is
+    // registered using this same HandleException function, and it needs to be
+    // called while this handler is running (either because this handler
+    // declines to handle the exception, or an exception occurs during
+    // handling), HandleException will find the appropriate ExceptionHandler
+    // object in handler_stack_ to deliver the exception to.
+    //
+    // Because handler_stack_ is addressed in reverse (as |size - index|),
+    // preincrementing handler_stack_index_ avoids needing to subtract 1 from
+    // the argument to |at|.
+    //
+    // The index is maintained instead of popping elements off of the handler
+    // stack and pushing them at the end of this method.  This avoids ruining
+    // the order of elements in the stack in the event that some other thread
+    // decides to manipulate the handler stack (such as creating a new
+    // ExceptionHandler object) while an exception is being handled.
+    EnterCriticalSection(&ExceptionHandler::handler_stack_critical_section_);
+    handler_ = ExceptionHandler::handler_stack_->at(
+        ExceptionHandler::handler_stack_->size() -
+        ++ExceptionHandler::handler_stack_index_);
+
+    // In case another exception occurs while this handler is doing its thing,
+    // it should be delivered to the previous filter.
+    SetUnhandledExceptionFilter(handler_->previous_filter_);
+#if _MSC_VER >= 1400  // MSVC 2005/8
+    _set_invalid_parameter_handler(handler_->previous_iph_);
+#endif  // _MSC_VER >= 1400
+    _set_purecall_handler(handler_->previous_pch_);
+  }
+
+  ~AutoExceptionHandler() {
+    // Put things back the way they were before entering this handler.
+    SetUnhandledExceptionFilter(ExceptionHandler::HandleException);
+#if _MSC_VER >= 1400  // MSVC 2005/8
+    _set_invalid_parameter_handler(ExceptionHandler::HandleInvalidParameter);
+#endif  // _MSC_VER >= 1400
+    _set_purecall_handler(ExceptionHandler::HandlePureVirtualCall);
+
+    --ExceptionHandler::handler_stack_index_;
+    LeaveCriticalSection(&ExceptionHandler::handler_stack_critical_section_);
+  }
+
+  ExceptionHandler* get_handler() const { return handler_; }
+
+ private:
+  ExceptionHandler* handler_;
+};
+
+// static
+LONG ExceptionHandler::HandleException(EXCEPTION_POINTERS* exinfo) {
+  AutoExceptionHandler auto_exception_handler;
+  ExceptionHandler* current_handler = auto_exception_handler.get_handler();
+
+  // Ignore EXCEPTION_BREAKPOINT and EXCEPTION_SINGLE_STEP exceptions.  This
+  // logic will short-circuit before calling WriteMinidumpOnHandlerThread,
+  // allowing something else to handle the breakpoint without incurring the
+  // overhead transitioning to and from the handler thread.  This behavior
+  // can be overridden by calling ExceptionHandler::set_handle_debug_exceptions.
+  DWORD code = exinfo->ExceptionRecord->ExceptionCode;
+  LONG action;
+  bool is_debug_exception = (code == EXCEPTION_BREAKPOINT) ||
+                            (code == EXCEPTION_SINGLE_STEP) ||
+                            (code == DBG_PRINTEXCEPTION_C) ||
+                            (code == DBG_PRINTEXCEPTION_WIDE_C);
+
+  if (code == EXCEPTION_INVALID_HANDLE &&
+      current_handler->consume_invalid_handle_exceptions_) {
+    return EXCEPTION_CONTINUE_EXECUTION;
+  }
+
+  bool success = false;
+
+  if (!is_debug_exception ||
+      current_handler->get_handle_debug_exceptions()) {
+    // If out-of-proc crash handler client is available, we have to use that
+    // to generate dump and we cannot fall back on in-proc dump generation
+    // because we never prepared for an in-proc dump generation
+
+    // In case of out-of-process dump generation, directly call
+    // WriteMinidumpWithException since there is no separate thread running.
+    if (current_handler->IsOutOfProcess()) {
+      success = current_handler->WriteMinidumpWithException(
+          GetCurrentThreadId(),
+          exinfo,
+          NULL);
+    } else {
+      success = current_handler->WriteMinidumpOnHandlerThread(exinfo, NULL);
+    }
+  }
+
+  // The handler fully handled the exception.  Returning
+  // EXCEPTION_EXECUTE_HANDLER indicates this to the system, and usually
+  // results in the application being terminated.
+  //
+  // Note: If the application was launched from within the Cygwin
+  // environment, returning EXCEPTION_EXECUTE_HANDLER seems to cause the
+  // application to be restarted.
+  if (success) {
+    action = EXCEPTION_EXECUTE_HANDLER;
+  } else {
+    // There was an exception, it was a breakpoint or something else ignored
+    // above, or it was passed to the handler, which decided not to handle it.
+    // This could be because the filter callback didn't want it, because
+    // minidump writing failed for some reason, or because the post-minidump
+    // callback function indicated failure.  Give the previous handler a
+    // chance to do something with the exception.  If there is no previous
+    // handler, return EXCEPTION_CONTINUE_SEARCH, which will allow a debugger
+    // or native "crashed" dialog to handle the exception.
+    if (current_handler->previous_filter_) {
+      action = current_handler->previous_filter_(exinfo);
+    } else {
+      action = EXCEPTION_CONTINUE_SEARCH;
+    }
+  }
+
+  return action;
+}
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+// static
+void ExceptionHandler::HandleInvalidParameter(const wchar_t* expression,
+                                              const wchar_t* function,
+                                              const wchar_t* file,
+                                              unsigned int line,
+                                              uintptr_t reserved) {
+  // This is an invalid parameter, not an exception.  It's safe to play with
+  // sprintf here.
+  AutoExceptionHandler auto_exception_handler;
+  ExceptionHandler* current_handler = auto_exception_handler.get_handler();
+
+  MDRawAssertionInfo assertion;
+  memset(&assertion, 0, sizeof(assertion));
+  _snwprintf_s(reinterpret_cast<wchar_t*>(assertion.expression),
+               sizeof(assertion.expression) / sizeof(assertion.expression[0]),
+               _TRUNCATE, L"%s", expression);
+  _snwprintf_s(reinterpret_cast<wchar_t*>(assertion.function),
+               sizeof(assertion.function) / sizeof(assertion.function[0]),
+               _TRUNCATE, L"%s", function);
+  _snwprintf_s(reinterpret_cast<wchar_t*>(assertion.file),
+               sizeof(assertion.file) / sizeof(assertion.file[0]),
+               _TRUNCATE, L"%s", file);
+  assertion.line = line;
+  assertion.type = MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER;
+
+  // Make up an exception record for the current thread and CPU context
+  // to make it possible for the crash processor to classify these
+  // as do regular crashes, and to make it humane for developers to
+  // analyze them.
+  EXCEPTION_RECORD exception_record = {};
+  CONTEXT exception_context = {};
+  EXCEPTION_POINTERS exception_ptrs = { &exception_record, &exception_context };
+
+  ::RtlCaptureContext(&exception_context);
+
+  exception_record.ExceptionCode = STATUS_INVALID_PARAMETER;
+
+  // We store pointers to the the expression and function strings,
+  // and the line as exception parameters to make them easy to
+  // access by the developer on the far side.
+  exception_record.NumberParameters = 3;
+  exception_record.ExceptionInformation[0] =
+      reinterpret_cast<ULONG_PTR>(&assertion.expression);
+  exception_record.ExceptionInformation[1] =
+      reinterpret_cast<ULONG_PTR>(&assertion.file);
+  exception_record.ExceptionInformation[2] = assertion.line;
+
+  bool success = false;
+  // In case of out-of-process dump generation, directly call
+  // WriteMinidumpWithException since there is no separate thread running.
+  if (current_handler->IsOutOfProcess()) {
+    success = current_handler->WriteMinidumpWithException(
+        GetCurrentThreadId(),
+        &exception_ptrs,
+        &assertion);
+  } else {
+    success = current_handler->WriteMinidumpOnHandlerThread(&exception_ptrs,
+                                                            &assertion);
+  }
+
+  if (!success) {
+    if (current_handler->previous_iph_) {
+      // The handler didn't fully handle the exception.  Give it to the
+      // previous invalid parameter handler.
+      current_handler->previous_iph_(expression,
+                                     function,
+                                     file,
+                                     line,
+                                     reserved);
+    } else {
+      // If there's no previous handler, pass the exception back in to the
+      // invalid parameter handler's core.  That's the routine that called this
+      // function, but now, since this function is no longer registered (and in
+      // fact, no function at all is registered), this will result in the
+      // default code path being taken: _CRT_DEBUGGER_HOOK and _invoke_watson.
+      // Use _invalid_parameter where it exists (in _DEBUG builds) as it passes
+      // more information through.  In non-debug builds, it is not available,
+      // so fall back to using _invalid_parameter_noinfo.  See invarg.c in the
+      // CRT source.
+#ifdef _DEBUG
+      _invalid_parameter(expression, function, file, line, reserved);
+#else  // _DEBUG
+      _invalid_parameter_noinfo();
+#endif  // _DEBUG
+    }
+  }
+
+  // The handler either took care of the invalid parameter problem itself,
+  // or passed it on to another handler.  "Swallow" it by exiting, paralleling
+  // the behavior of "swallowing" exceptions.
+  exit(0);
+}
+#endif  // _MSC_VER >= 1400
+
+// static
+void ExceptionHandler::HandlePureVirtualCall() {
+  // This is an pure virtual function call, not an exception.  It's safe to
+  // play with sprintf here.
+  AutoExceptionHandler auto_exception_handler;
+  ExceptionHandler* current_handler = auto_exception_handler.get_handler();
+
+  MDRawAssertionInfo assertion;
+  memset(&assertion, 0, sizeof(assertion));
+  assertion.type = MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL;
+
+  // Make up an exception record for the current thread and CPU context
+  // to make it possible for the crash processor to classify these
+  // as do regular crashes, and to make it humane for developers to
+  // analyze them.
+  EXCEPTION_RECORD exception_record = {};
+  CONTEXT exception_context = {};
+  EXCEPTION_POINTERS exception_ptrs = { &exception_record, &exception_context };
+
+  ::RtlCaptureContext(&exception_context);
+
+  exception_record.ExceptionCode = STATUS_NONCONTINUABLE_EXCEPTION;
+
+  // We store pointers to the the expression and function strings,
+  // and the line as exception parameters to make them easy to
+  // access by the developer on the far side.
+  exception_record.NumberParameters = 3;
+  exception_record.ExceptionInformation[0] =
+      reinterpret_cast<ULONG_PTR>(&assertion.expression);
+  exception_record.ExceptionInformation[1] =
+      reinterpret_cast<ULONG_PTR>(&assertion.file);
+  exception_record.ExceptionInformation[2] = assertion.line;
+
+  bool success = false;
+  // In case of out-of-process dump generation, directly call
+  // WriteMinidumpWithException since there is no separate thread running.
+
+  if (current_handler->IsOutOfProcess()) {
+    success = current_handler->WriteMinidumpWithException(
+        GetCurrentThreadId(),
+        &exception_ptrs,
+        &assertion);
+  } else {
+    success = current_handler->WriteMinidumpOnHandlerThread(&exception_ptrs,
+                                                            &assertion);
+  }
+
+  if (!success) {
+    if (current_handler->previous_pch_) {
+      // The handler didn't fully handle the exception.  Give it to the
+      // previous purecall handler.
+      current_handler->previous_pch_();
+    } else {
+      // If there's no previous handler, return and let _purecall handle it.
+      // This will just put up an assertion dialog.
+      return;
+    }
+  }
+
+  // The handler either took care of the invalid parameter problem itself,
+  // or passed it on to another handler.  "Swallow" it by exiting, paralleling
+  // the behavior of "swallowing" exceptions.
+  exit(0);
+}
+
+bool ExceptionHandler::WriteMinidumpOnHandlerThread(
+    EXCEPTION_POINTERS* exinfo, MDRawAssertionInfo* assertion) {
+  EnterCriticalSection(&handler_critical_section_);
+
+  // There isn't much we can do if the handler thread
+  // was not successfully created.
+  if (handler_thread_ == NULL) {
+    LeaveCriticalSection(&handler_critical_section_);
+    return false;
+  }
+
+  // The handler thread should only be created when the semaphores are valid.
+  assert(handler_start_semaphore_ != NULL);
+  assert(handler_finish_semaphore_ != NULL);
+
+  // Set up data to be passed in to the handler thread.
+  requesting_thread_id_ = GetCurrentThreadId();
+  exception_info_ = exinfo;
+  assertion_ = assertion;
+
+  // This causes the handler thread to call WriteMinidumpWithException.
+  ReleaseSemaphore(handler_start_semaphore_, 1, NULL);
+
+  // Wait until WriteMinidumpWithException is done and collect its return value.
+  WaitForSingleObject(handler_finish_semaphore_, INFINITE);
+  bool status = handler_return_value_;
+
+  // Clean up.
+  requesting_thread_id_ = 0;
+  exception_info_ = NULL;
+  assertion_ = NULL;
+
+  LeaveCriticalSection(&handler_critical_section_);
+
+  return status;
+}
+
+bool ExceptionHandler::WriteMinidump() {
+  // Make up an exception record for the current thread and CPU context
+  // to make it possible for the crash processor to classify these
+  // as do regular crashes, and to make it humane for developers to
+  // analyze them.
+  EXCEPTION_RECORD exception_record = {};
+  CONTEXT exception_context = {};
+  EXCEPTION_POINTERS exception_ptrs = { &exception_record, &exception_context };
+
+  ::RtlCaptureContext(&exception_context);
+  exception_record.ExceptionCode = STATUS_NONCONTINUABLE_EXCEPTION;
+
+  return WriteMinidumpForException(&exception_ptrs);
+}
+
+bool ExceptionHandler::WriteMinidumpForException(EXCEPTION_POINTERS* exinfo) {
+  // In case of out-of-process dump generation, directly call
+  // WriteMinidumpWithException since there is no separate thread running.
+  if (IsOutOfProcess()) {
+    return WriteMinidumpWithException(GetCurrentThreadId(),
+                                      exinfo,
+                                      NULL);
+  }
+
+  bool success = WriteMinidumpOnHandlerThread(exinfo, NULL);
+  UpdateNextID();
+  return success;
+}
+
+// static
+bool ExceptionHandler::WriteMinidump(const wstring& dump_path,
+                                     MinidumpCallback callback,
+                                     void* callback_context,
+                                     MINIDUMP_TYPE dump_type) {
+  ExceptionHandler handler(dump_path, NULL, callback, callback_context,
+                           HANDLER_NONE, dump_type, (HANDLE)NULL, NULL);
+  return handler.WriteMinidump();
+}
+
+// static
+bool ExceptionHandler::WriteMinidumpForChild(HANDLE child,
+                                             DWORD child_blamed_thread,
+                                             const wstring& dump_path,
+                                             MinidumpCallback callback,
+                                             void* callback_context,
+                                             MINIDUMP_TYPE dump_type) {
+  EXCEPTION_RECORD ex;
+  CONTEXT ctx;
+  EXCEPTION_POINTERS exinfo = { NULL, NULL };
+  // As documented on MSDN, on failure SuspendThread returns (DWORD) -1
+  const DWORD kFailedToSuspendThread = static_cast<DWORD>(-1);
+  DWORD last_suspend_count = kFailedToSuspendThread;
+  HANDLE child_thread_handle = OpenThread(THREAD_GET_CONTEXT |
+                                          THREAD_QUERY_INFORMATION |
+                                          THREAD_SUSPEND_RESUME,
+                                          FALSE,
+                                          child_blamed_thread);
+  // This thread may have died already, so not opening the handle is a
+  // non-fatal error.
+  if (child_thread_handle != NULL) {
+    last_suspend_count = SuspendThread(child_thread_handle);
+    if (last_suspend_count != kFailedToSuspendThread) {
+      ctx.ContextFlags = CONTEXT_ALL;
+      if (GetThreadContext(child_thread_handle, &ctx)) {
+        memset(&ex, 0, sizeof(ex));
+        ex.ExceptionCode = EXCEPTION_BREAKPOINT;
+#if defined(_M_IX86)
+        ex.ExceptionAddress = reinterpret_cast<PVOID>(ctx.Eip);
+#elif defined(_M_X64)
+        ex.ExceptionAddress = reinterpret_cast<PVOID>(ctx.Rip);
+#endif
+        exinfo.ExceptionRecord = &ex;
+        exinfo.ContextRecord = &ctx;
+      }
+    }
+  }
+
+  ExceptionHandler handler(dump_path, NULL, callback, callback_context,
+                           HANDLER_NONE, dump_type, (HANDLE)NULL, NULL);
+  bool success = handler.WriteMinidumpWithExceptionForProcess(
+      child_blamed_thread,
+      exinfo.ExceptionRecord ? &exinfo : NULL,
+      NULL, child, false);
+
+  if (last_suspend_count != kFailedToSuspendThread) {
+    ResumeThread(child_thread_handle);
+  }
+
+  CloseHandle(child_thread_handle);
+
+  if (callback) {
+    success = callback(handler.dump_path_c_, handler.next_minidump_id_c_,
+                       callback_context, NULL, NULL, success);
+  }
+
+  return success;
+}
+
+bool ExceptionHandler::WriteMinidumpWithException(
+    DWORD requesting_thread_id,
+    EXCEPTION_POINTERS* exinfo,
+    MDRawAssertionInfo* assertion) {
+  // Give user code a chance to approve or prevent writing a minidump.  If the
+  // filter returns false, don't handle the exception at all.  If this method
+  // was called as a result of an exception, returning false will cause
+  // HandleException to call any previous handler or return
+  // EXCEPTION_CONTINUE_SEARCH on the exception thread, allowing it to appear
+  // as though this handler were not present at all.
+  if (filter_ && !filter_(callback_context_, exinfo, assertion)) {
+    return false;
+  }
+
+  bool success = false;
+  if (IsOutOfProcess()) {
+    success = crash_generation_client_->RequestDump(exinfo, assertion);
+  } else {
+    success = WriteMinidumpWithExceptionForProcess(requesting_thread_id,
+                                                   exinfo,
+                                                   assertion,
+                                                   GetCurrentProcess(),
+                                                   true);
+  }
+
+  if (callback_) {
+    // TODO(munjal): In case of out-of-process dump generation, both
+    // dump_path_c_ and next_minidump_id_ will be NULL. For out-of-process
+    // scenario, the server process ends up creating the dump path and dump
+    // id so they are not known to the client.
+    success = callback_(dump_path_c_, next_minidump_id_c_, callback_context_,
+                        exinfo, assertion, success);
+  }
+
+  return success;
+}
+
+// static
+BOOL CALLBACK ExceptionHandler::MinidumpWriteDumpCallback(
+    PVOID context,
+    const PMINIDUMP_CALLBACK_INPUT callback_input,
+    PMINIDUMP_CALLBACK_OUTPUT callback_output) {
+  switch (callback_input->CallbackType) {
+  case MemoryCallback: {
+    MinidumpCallbackContext* callback_context =
+        reinterpret_cast<MinidumpCallbackContext*>(context);
+    if (callback_context->iter == callback_context->end)
+      return FALSE;
+
+    // Include the specified memory region.
+    callback_output->MemoryBase = callback_context->iter->ptr;
+    callback_output->MemorySize = callback_context->iter->length;
+    callback_context->iter++;
+    return TRUE;
+  }
+
+    // Include all modules.
+  case IncludeModuleCallback:
+  case ModuleCallback:
+    return TRUE;
+
+    // Include all threads.
+  case IncludeThreadCallback:
+  case ThreadCallback:
+    return TRUE;
+
+    // Stop receiving cancel callbacks.
+  case CancelCallback:
+    callback_output->CheckCancel = FALSE;
+    callback_output->Cancel = FALSE;
+    return TRUE;
+  }
+  // Ignore other callback types.
+  return FALSE;
+}
+
+bool ExceptionHandler::WriteMinidumpWithExceptionForProcess(
+    DWORD requesting_thread_id,
+    EXCEPTION_POINTERS* exinfo,
+    MDRawAssertionInfo* assertion,
+    HANDLE process,
+    bool write_requester_stream) {
+  bool success = false;
+  if (minidump_write_dump_) {
+    HANDLE dump_file = CreateFile(next_minidump_path_c_,
+                                  GENERIC_WRITE,
+                                  0,  // no sharing
+                                  NULL,
+                                  CREATE_NEW,  // fail if exists
+                                  FILE_ATTRIBUTE_NORMAL,
+                                  NULL);
+    if (dump_file != INVALID_HANDLE_VALUE) {
+      MINIDUMP_EXCEPTION_INFORMATION except_info;
+      except_info.ThreadId = requesting_thread_id;
+      except_info.ExceptionPointers = exinfo;
+      except_info.ClientPointers = FALSE;
+
+      // Leave room in user_stream_array for possible breakpad and
+      // assertion info streams.
+      MINIDUMP_USER_STREAM user_stream_array[2];
+      MINIDUMP_USER_STREAM_INFORMATION user_streams;
+      user_streams.UserStreamCount = 0;
+      user_streams.UserStreamArray = user_stream_array;
+
+      if (write_requester_stream) {
+        // Add an MDRawBreakpadInfo stream to the minidump, to provide
+        // additional information about the exception handler to the Breakpad
+        // processor. The information will help the processor determine which
+        // threads are relevant.  The Breakpad processor does not require this
+        // information but can function better with Breakpad-generated dumps
+        // when it is present. The native debugger is not harmed by the
+        // presence of this information.
+        MDRawBreakpadInfo breakpad_info;
+        breakpad_info.validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID |
+                                 MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID;
+        breakpad_info.dump_thread_id = GetCurrentThreadId();
+        breakpad_info.requesting_thread_id = requesting_thread_id;
+
+        int index = user_streams.UserStreamCount;
+        user_stream_array[index].Type = MD_BREAKPAD_INFO_STREAM;
+        user_stream_array[index].BufferSize = sizeof(breakpad_info);
+        user_stream_array[index].Buffer = &breakpad_info;
+        ++user_streams.UserStreamCount;
+      }
+
+      if (assertion) {
+        int index = user_streams.UserStreamCount;
+        user_stream_array[index].Type = MD_ASSERTION_INFO_STREAM;
+        user_stream_array[index].BufferSize = sizeof(MDRawAssertionInfo);
+        user_stream_array[index].Buffer = assertion;
+        ++user_streams.UserStreamCount;
+      }
+
+      // Older versions of DbgHelp.dll don't correctly put the memory around
+      // the faulting instruction pointer into the minidump. This
+      // callback will ensure that it gets included.
+      if (exinfo) {
+        // Find a memory region of 256 bytes centered on the
+        // faulting instruction pointer.
+        const ULONG64 instruction_pointer =
+#if defined(_M_IX86)
+          exinfo->ContextRecord->Eip;
+#elif defined(_M_AMD64)
+          exinfo->ContextRecord->Rip;
+#elif defined(_M_ARM64)
+          exinfo->ContextRecord->Pc;
+#else
+#error Unsupported platform
+#endif
+
+        MEMORY_BASIC_INFORMATION info;
+        if (VirtualQueryEx(process,
+                           reinterpret_cast<LPCVOID>(instruction_pointer),
+                           &info,
+                           sizeof(MEMORY_BASIC_INFORMATION)) != 0 &&
+            info.State == MEM_COMMIT) {
+          // Attempt to get 128 bytes before and after the instruction
+          // pointer, but settle for whatever's available up to the
+          // boundaries of the memory region.
+          const ULONG64 kIPMemorySize = 256;
+          ULONG64 base =
+            (std::max)(reinterpret_cast<ULONG64>(info.BaseAddress),
+                       instruction_pointer - (kIPMemorySize / 2));
+          ULONG64 end_of_range =
+            (std::min)(instruction_pointer + (kIPMemorySize / 2),
+                       reinterpret_cast<ULONG64>(info.BaseAddress)
+                       + info.RegionSize);
+          ULONG size = static_cast<ULONG>(end_of_range - base);
+
+          AppMemory& elt = app_memory_info_.front();
+          elt.ptr = base;
+          elt.length = size;
+        }
+      }
+
+      MinidumpCallbackContext context;
+      context.iter = app_memory_info_.begin();
+      context.end = app_memory_info_.end();
+
+      // Skip the reserved element if there was no instruction memory
+      if (context.iter->ptr == 0) {
+        context.iter++;
+      }
+
+      MINIDUMP_CALLBACK_INFORMATION callback;
+      callback.CallbackRoutine = MinidumpWriteDumpCallback;
+      callback.CallbackParam = reinterpret_cast<void*>(&context);
+
+      // The explicit comparison to TRUE avoids a warning (C4800).
+      success = (minidump_write_dump_(process,
+                                      GetProcessId(process),
+                                      dump_file,
+                                      dump_type_,
+                                      exinfo ? &except_info : NULL,
+                                      &user_streams,
+                                      &callback) == TRUE);
+
+      CloseHandle(dump_file);
+    }
+  }
+
+  return success;
+}
+
+void ExceptionHandler::UpdateNextID() {
+  assert(uuid_create_);
+  UUID id = {0};
+  if (uuid_create_) {
+    uuid_create_(&id);
+  }
+  next_minidump_id_ = GUIDString::GUIDToWString(&id);
+  next_minidump_id_c_ = next_minidump_id_.c_str();
+
+  wchar_t minidump_path[MAX_PATH];
+  swprintf(minidump_path, MAX_PATH, L"%s\\%s.dmp",
+           dump_path_c_, next_minidump_id_c_);
+
+  // remove when VC++7.1 is no longer supported
+  minidump_path[MAX_PATH - 1] = L'\0';
+
+  next_minidump_path_ = minidump_path;
+  next_minidump_path_c_ = next_minidump_path_.c_str();
+}
+
+void ExceptionHandler::RegisterAppMemory(void* ptr, size_t length) {
+  AppMemoryList::iterator iter =
+    std::find(app_memory_info_.begin(), app_memory_info_.end(), ptr);
+  if (iter != app_memory_info_.end()) {
+    // Don't allow registering the same pointer twice.
+    return;
+  }
+
+  AppMemory app_memory;
+  app_memory.ptr = reinterpret_cast<ULONG64>(ptr);
+  app_memory.length = static_cast<ULONG>(length);
+  app_memory_info_.push_back(app_memory);
+}
+
+void ExceptionHandler::UnregisterAppMemory(void* ptr) {
+  AppMemoryList::iterator iter =
+    std::find(app_memory_info_.begin(), app_memory_info_.end(), ptr);
+  if (iter != app_memory_info_.end()) {
+    app_memory_info_.erase(iter);
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/handler/exception_handler.gyp b/src/client/windows/handler/exception_handler.gyp
new file mode 100644
index 0000000..c573327
--- /dev/null
+++ b/src/client/windows/handler/exception_handler.gyp
@@ -0,0 +1,47 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'exception_handler',
+      'type': 'static_library',
+      'sources': [
+        "exception_handler.cc",
+        "exception_handler.h",
+      ],
+      'dependencies': [
+        '../breakpad_client.gyp:common',
+        '../crash_generation/crash_generation.gyp:crash_generation_server',
+      ]
+    },
+  ],
+}
diff --git a/src/client/windows/handler/exception_handler.h b/src/client/windows/handler/exception_handler.h
new file mode 100644
index 0000000..eb5adaa
--- /dev/null
+++ b/src/client/windows/handler/exception_handler.h
@@ -0,0 +1,524 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ExceptionHandler can write a minidump file when an exception occurs,
+// or when WriteMinidump() is called explicitly by your program.
+//
+// To have the exception handler write minidumps when an uncaught exception
+// (crash) occurs, you should create an instance early in the execution
+// of your program, and keep it around for the entire time you want to
+// have crash handling active (typically, until shutdown).
+//
+// If you want to write minidumps without installing the exception handler,
+// you can create an ExceptionHandler with install_handler set to false,
+// then call WriteMinidump.  You can also use this technique if you want to
+// use different minidump callbacks for different call sites.
+//
+// In either case, a callback function is called when a minidump is written,
+// which receives the unqiue id of the minidump.  The caller can use this
+// id to collect and write additional application state, and to launch an
+// external crash-reporting application.
+//
+// It is important that creation and destruction of ExceptionHandler objects
+// be nested cleanly, when using install_handler = true.
+// Avoid the following pattern:
+//   ExceptionHandler *e = new ExceptionHandler(...);
+//   ExceptionHandler *f = new ExceptionHandler(...);
+//   delete e;
+// This will put the exception filter stack into an inconsistent state.
+
+#ifndef CLIENT_WINDOWS_HANDLER_EXCEPTION_HANDLER_H__
+#define CLIENT_WINDOWS_HANDLER_EXCEPTION_HANDLER_H__
+
+#include <stdlib.h>
+#include <windows.h>
+#include <dbghelp.h>
+#include <rpc.h>
+
+#pragma warning(push)
+// Disable exception handler warnings.
+#pragma warning(disable:4530)
+
+#include <list>
+#include <string>
+#include <vector>
+
+#include "client/windows/common/ipc_protocol.h"
+#include "client/windows/crash_generation/crash_generation_client.h"
+#include "common/scoped_ptr.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+using std::vector;
+using std::wstring;
+
+// These entries store a list of memory regions that the client wants included
+// in the minidump.
+struct AppMemory {
+  ULONG64 ptr;
+  ULONG length;
+
+  bool operator==(const struct AppMemory& other) const {
+    return ptr == other.ptr;
+  }
+
+  bool operator==(const void* other) const {
+    return ptr == reinterpret_cast<ULONG64>(other);
+  }
+};
+typedef std::list<AppMemory> AppMemoryList;
+
+class ExceptionHandler {
+ public:
+  // A callback function to run before Breakpad performs any substantial
+  // processing of an exception.  A FilterCallback is called before writing
+  // a minidump.  context is the parameter supplied by the user as
+  // callback_context when the handler was created.  exinfo points to the
+  // exception record, if any; assertion points to assertion information,
+  // if any.
+  //
+  // If a FilterCallback returns true, Breakpad will continue processing,
+  // attempting to write a minidump.  If a FilterCallback returns false,
+  // Breakpad will immediately report the exception as unhandled without
+  // writing a minidump, allowing another handler the opportunity to handle it.
+  typedef bool (*FilterCallback)(void* context, EXCEPTION_POINTERS* exinfo,
+                                 MDRawAssertionInfo* assertion);
+
+  // A callback function to run after the minidump has been written.
+  // minidump_id is a unique id for the dump, so the minidump
+  // file is <dump_path>\<minidump_id>.dmp.  context is the parameter supplied
+  // by the user as callback_context when the handler was created.  exinfo
+  // points to the exception record, or NULL if no exception occurred.
+  // succeeded indicates whether a minidump file was successfully written.
+  // assertion points to information about an assertion if the handler was
+  // invoked by an assertion.
+  //
+  // If an exception occurred and the callback returns true, Breakpad will treat
+  // the exception as fully-handled, suppressing any other handlers from being
+  // notified of the exception.  If the callback returns false, Breakpad will
+  // treat the exception as unhandled, and allow another handler to handle it.
+  // If there are no other handlers, Breakpad will report the exception to the
+  // system as unhandled, allowing a debugger or native crash dialog the
+  // opportunity to handle the exception.  Most callback implementations
+  // should normally return the value of |succeeded|, or when they wish to
+  // not report an exception of handled, false.  Callbacks will rarely want to
+  // return true directly (unless |succeeded| is true).
+  //
+  // For out-of-process dump generation, dump path and minidump ID will always
+  // be NULL. In case of out-of-process dump generation, the dump path and
+  // minidump id are controlled by the server process and are not communicated
+  // back to the crashing process.
+  typedef bool (*MinidumpCallback)(const wchar_t* dump_path,
+                                   const wchar_t* minidump_id,
+                                   void* context,
+                                   EXCEPTION_POINTERS* exinfo,
+                                   MDRawAssertionInfo* assertion,
+                                   bool succeeded);
+
+  // HandlerType specifies which types of handlers should be installed, if
+  // any.  Use HANDLER_NONE for an ExceptionHandler that remains idle,
+  // without catching any failures on its own.  This type of handler may
+  // still be triggered by calling WriteMinidump.  Otherwise, use a
+  // combination of the other HANDLER_ values, or HANDLER_ALL to install
+  // all handlers.
+  enum HandlerType {
+    HANDLER_NONE = 0,
+    HANDLER_EXCEPTION = 1 << 0,          // SetUnhandledExceptionFilter
+    HANDLER_INVALID_PARAMETER = 1 << 1,  // _set_invalid_parameter_handler
+    HANDLER_PURECALL = 1 << 2,           // _set_purecall_handler
+    HANDLER_ALL = HANDLER_EXCEPTION |
+                  HANDLER_INVALID_PARAMETER |
+                  HANDLER_PURECALL
+  };
+
+  // Creates a new ExceptionHandler instance to handle writing minidumps.
+  // Before writing a minidump, the optional filter callback will be called.
+  // Its return value determines whether or not Breakpad should write a
+  // minidump.  Minidump files will be written to dump_path, and the optional
+  // callback is called after writing the dump file, as described above.
+  // handler_types specifies the types of handlers that should be installed.
+  ExceptionHandler(const wstring& dump_path,
+                   FilterCallback filter,
+                   MinidumpCallback callback,
+                   void* callback_context,
+                   int handler_types);
+
+  // Creates a new ExceptionHandler instance that can attempt to perform
+  // out-of-process dump generation if pipe_name is not NULL. If pipe_name is
+  // NULL, or if out-of-process dump generation registration step fails,
+  // in-process dump generation will be used. This also allows specifying
+  // the dump type to generate.
+  ExceptionHandler(const wstring& dump_path,
+                   FilterCallback filter,
+                   MinidumpCallback callback,
+                   void* callback_context,
+                   int handler_types,
+                   MINIDUMP_TYPE dump_type,
+                   const wchar_t* pipe_name,
+                   const CustomClientInfo* custom_info);
+
+  // As above, creates a new ExceptionHandler instance to perform
+  // out-of-process dump generation if the given pipe_handle is not NULL.
+  ExceptionHandler(const wstring& dump_path,
+                   FilterCallback filter,
+                   MinidumpCallback callback,
+                   void* callback_context,
+                   int handler_types,
+                   MINIDUMP_TYPE dump_type,
+                   HANDLE pipe_handle,
+                   const CustomClientInfo* custom_info);
+
+  // ExceptionHandler that ENSURES out-of-process dump generation.  Expects a
+  // crash generation client that is already registered with a crash generation
+  // server.  Takes ownership of the passed-in crash_generation_client.
+  //
+  // Usage example:
+  //   crash_generation_client = new CrashGenerationClient(..);
+  //   if (crash_generation_client->Register()) {
+  //     // Registration with the crash generation server succeeded.
+  //     // Out-of-process dump generation is guaranteed.
+  //     g_handler = new ExceptionHandler(.., crash_generation_client, ..);
+  //     return true;
+  //   }
+  ExceptionHandler(const wstring& dump_path,
+                   FilterCallback filter,
+                   MinidumpCallback callback,
+                   void* callback_context,
+                   int handler_types,
+                   CrashGenerationClient* crash_generation_client);
+
+  ~ExceptionHandler();
+
+  // Get and set the minidump path.
+  wstring dump_path() const { return dump_path_; }
+  void set_dump_path(const wstring& dump_path) {
+    dump_path_ = dump_path;
+    dump_path_c_ = dump_path_.c_str();
+    UpdateNextID();  // Necessary to put dump_path_ in next_minidump_path_.
+  }
+
+  // Requests that a previously reported crash be uploaded.
+  bool RequestUpload(DWORD crash_id);
+
+  // Writes a minidump immediately.  This can be used to capture the
+  // execution state independently of a crash.  Returns true on success.
+  bool WriteMinidump();
+
+  // Writes a minidump immediately, with the user-supplied exception
+  // information.
+  bool WriteMinidumpForException(EXCEPTION_POINTERS* exinfo);
+
+  // Convenience form of WriteMinidump which does not require an
+  // ExceptionHandler instance.
+  static bool WriteMinidump(const wstring& dump_path,
+                            MinidumpCallback callback, void* callback_context,
+                            MINIDUMP_TYPE dump_type = MiniDumpNormal);
+
+  // Write a minidump of |child| immediately.  This can be used to
+  // capture the execution state of |child| independently of a crash.
+  // Pass a meaningful |child_blamed_thread| to make that thread in
+  // the child process the one from which a crash signature is
+  // extracted.
+  static bool WriteMinidumpForChild(HANDLE child,
+                                    DWORD child_blamed_thread,
+                                    const wstring& dump_path,
+                                    MinidumpCallback callback,
+                                    void* callback_context,
+                                    MINIDUMP_TYPE dump_type = MiniDumpNormal);
+
+  // Get the thread ID of the thread requesting the dump (either the exception
+  // thread or any other thread that called WriteMinidump directly).  This
+  // may be useful if you want to include additional thread state in your
+  // dumps.
+  DWORD get_requesting_thread_id() const { return requesting_thread_id_; }
+
+  // Controls behavior of EXCEPTION_BREAKPOINT and EXCEPTION_SINGLE_STEP.
+  bool get_handle_debug_exceptions() const { return handle_debug_exceptions_; }
+  void set_handle_debug_exceptions(bool handle_debug_exceptions) {
+    handle_debug_exceptions_ = handle_debug_exceptions;
+  }
+
+  // Controls behavior of EXCEPTION_INVALID_HANDLE.
+  bool get_consume_invalid_handle_exceptions() const {
+    return consume_invalid_handle_exceptions_;
+  }
+  void set_consume_invalid_handle_exceptions(
+      bool consume_invalid_handle_exceptions) {
+    consume_invalid_handle_exceptions_ = consume_invalid_handle_exceptions;
+  }
+
+  // Returns whether out-of-process dump generation is used or not.
+  bool IsOutOfProcess() const { return crash_generation_client_.get() != NULL; }
+
+  // Calling RegisterAppMemory(p, len) causes len bytes starting
+  // at address p to be copied to the minidump when a crash happens.
+  void RegisterAppMemory(void* ptr, size_t length);
+  void UnregisterAppMemory(void* ptr);
+
+ private:
+  friend class AutoExceptionHandler;
+
+  // Initializes the instance with given values.
+  void Initialize(const wstring& dump_path,
+                  FilterCallback filter,
+                  MinidumpCallback callback,
+                  void* callback_context,
+                  int handler_types,
+                  MINIDUMP_TYPE dump_type,
+                  const wchar_t* pipe_name,
+                  HANDLE pipe_handle,
+                  CrashGenerationClient* crash_generation_client,
+                  const CustomClientInfo* custom_info);
+
+  // Function pointer type for MiniDumpWriteDump, which is looked up
+  // dynamically.
+  typedef BOOL (WINAPI *MiniDumpWriteDump_type)(
+      HANDLE hProcess,
+      DWORD dwPid,
+      HANDLE hFile,
+      MINIDUMP_TYPE DumpType,
+      CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
+      CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
+      CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
+
+  // Function pointer type for UuidCreate, which is looked up dynamically.
+  typedef RPC_STATUS (RPC_ENTRY *UuidCreate_type)(UUID* Uuid);
+
+  // Runs the main loop for the exception handler thread.
+  static DWORD WINAPI ExceptionHandlerThreadMain(void* lpParameter);
+
+  // Called on the exception thread when an unhandled exception occurs.
+  // Signals the exception handler thread to handle the exception.
+  static LONG WINAPI HandleException(EXCEPTION_POINTERS* exinfo);
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  // This function will be called by some CRT functions when they detect
+  // that they were passed an invalid parameter.  Note that in _DEBUG builds,
+  // the CRT may display an assertion dialog before calling this function,
+  // and the function will not be called unless the assertion dialog is
+  // dismissed by clicking "Ignore."
+  static void HandleInvalidParameter(const wchar_t* expression,
+                                     const wchar_t* function,
+                                     const wchar_t* file,
+                                     unsigned int line,
+                                     uintptr_t reserved);
+#endif  // _MSC_VER >= 1400
+
+  // This function will be called by the CRT when a pure virtual
+  // function is called.
+  static void HandlePureVirtualCall();
+
+  // This is called on the exception thread or on another thread that
+  // the user wishes to produce a dump from.  It calls
+  // WriteMinidumpWithException on the handler thread, avoiding stack
+  // overflows and inconsistent dumps due to writing the dump from
+  // the exception thread.  If the dump is requested as a result of an
+  // exception, exinfo contains exception information, otherwise, it
+  // is NULL.  If the dump is requested as a result of an assertion
+  // (such as an invalid parameter being passed to a CRT function),
+  // assertion contains data about the assertion, otherwise, it is NULL.
+  bool WriteMinidumpOnHandlerThread(EXCEPTION_POINTERS* exinfo,
+                                    MDRawAssertionInfo* assertion);
+
+  // This function is called on the handler thread.  It calls into
+  // WriteMinidumpWithExceptionForProcess() with a handle to the
+  // current process.  requesting_thread_id is the ID of the thread
+  // that requested the dump.  If the dump is requested as a result of
+  // an exception, exinfo contains exception information, otherwise,
+  // it is NULL.
+  bool WriteMinidumpWithException(DWORD requesting_thread_id,
+                                  EXCEPTION_POINTERS* exinfo,
+                                  MDRawAssertionInfo* assertion);
+
+  // This function is used as a callback when calling MinidumpWriteDump,
+  // in order to add additional memory regions to the dump.
+  static BOOL CALLBACK MinidumpWriteDumpCallback(
+      PVOID context,
+      const PMINIDUMP_CALLBACK_INPUT callback_input,
+      PMINIDUMP_CALLBACK_OUTPUT callback_output);
+
+  // This function does the actual writing of a minidump.  It is
+  // called on the handler thread.  requesting_thread_id is the ID of
+  // the thread that requested the dump, if that information is
+  // meaningful.  If the dump is requested as a result of an
+  // exception, exinfo contains exception information, otherwise, it
+  // is NULL.  process is the one that will be dumped.  If
+  // requesting_thread_id is meaningful and should be added to the
+  // minidump, write_requester_stream is |true|.
+  bool WriteMinidumpWithExceptionForProcess(DWORD requesting_thread_id,
+                                            EXCEPTION_POINTERS* exinfo,
+                                            MDRawAssertionInfo* assertion,
+                                            HANDLE process,
+                                            bool write_requester_stream);
+
+  // Generates a new ID and stores it in next_minidump_id_, and stores the
+  // path of the next minidump to be written in next_minidump_path_.
+  void UpdateNextID();
+
+  FilterCallback filter_;
+  MinidumpCallback callback_;
+  void* callback_context_;
+
+  scoped_ptr<CrashGenerationClient> crash_generation_client_;
+
+  // The directory in which a minidump will be written, set by the dump_path
+  // argument to the constructor, or set_dump_path.
+  wstring dump_path_;
+
+  // The basename of the next minidump to be written, without the extension.
+  wstring next_minidump_id_;
+
+  // The full pathname of the next minidump to be written, including the file
+  // extension.
+  wstring next_minidump_path_;
+
+  // Pointers to C-string representations of the above.  These are set when
+  // the above wstring versions are set in order to avoid calling c_str during
+  // an exception, as c_str may attempt to allocate heap memory.  These
+  // pointers are not owned by the ExceptionHandler object, but their lifetimes
+  // should be equivalent to the lifetimes of the associated wstring, provided
+  // that the wstrings are not altered.
+  const wchar_t* dump_path_c_;
+  const wchar_t* next_minidump_id_c_;
+  const wchar_t* next_minidump_path_c_;
+
+  HMODULE dbghelp_module_;
+  MiniDumpWriteDump_type minidump_write_dump_;
+  MINIDUMP_TYPE dump_type_;
+
+  HMODULE rpcrt4_module_;
+  UuidCreate_type uuid_create_;
+
+  // Tracks the handler types that were installed according to the
+  // handler_types constructor argument.
+  int handler_types_;
+
+  // When installed_handler_ is true, previous_filter_ is the unhandled
+  // exception filter that was set prior to installing ExceptionHandler as
+  // the unhandled exception filter and pointing it to |this|.  NULL indicates
+  // that there is no previous unhandled exception filter.
+  LPTOP_LEVEL_EXCEPTION_FILTER previous_filter_;
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  // Beginning in VC 8, the CRT provides an invalid parameter handler that will
+  // be called when some CRT functions are passed invalid parameters.  In
+  // earlier CRTs, the same conditions would cause unexpected behavior or
+  // crashes.
+  _invalid_parameter_handler previous_iph_;
+#endif  // _MSC_VER >= 1400
+
+  // The CRT allows you to override the default handler for pure
+  // virtual function calls.
+  _purecall_handler previous_pch_;
+
+  // The exception handler thread.
+  HANDLE handler_thread_;
+
+  // True if the exception handler is being destroyed.
+  // Starting with MSVC 2005, Visual C has stronger guarantees on volatile vars.
+  // It has release semantics on write and acquire semantics on reads.
+  // See the msdn documentation.
+  volatile bool is_shutdown_;
+
+  // The critical section enforcing the requirement that only one exception be
+  // handled by a handler at a time.
+  CRITICAL_SECTION handler_critical_section_;
+
+  // Semaphores used to move exception handling between the exception thread
+  // and the handler thread.  handler_start_semaphore_ is signalled by the
+  // exception thread to wake up the handler thread when an exception occurs.
+  // handler_finish_semaphore_ is signalled by the handler thread to wake up
+  // the exception thread when handling is complete.
+  HANDLE handler_start_semaphore_;
+  HANDLE handler_finish_semaphore_;
+
+  // The next 2 fields contain data passed from the requesting thread to
+  // the handler thread.
+
+  // The thread ID of the thread requesting the dump (either the exception
+  // thread or any other thread that called WriteMinidump directly).
+  DWORD requesting_thread_id_;
+
+  // The exception info passed to the exception handler on the exception
+  // thread, if an exception occurred.  NULL for user-requested dumps.
+  EXCEPTION_POINTERS* exception_info_;
+
+  // If the handler is invoked due to an assertion, this will contain a
+  // pointer to the assertion information.  It is NULL at other times.
+  MDRawAssertionInfo* assertion_;
+
+  // The return value of the handler, passed from the handler thread back to
+  // the requesting thread.
+  bool handler_return_value_;
+
+  // If true, the handler will intercept EXCEPTION_BREAKPOINT and
+  // EXCEPTION_SINGLE_STEP exceptions.  Leave this false (the default)
+  // to not interfere with debuggers.
+  bool handle_debug_exceptions_;
+
+  // If true, the handler will consume any EXCEPTION_INVALID_HANDLE exceptions.
+  // Leave this false (the default) to handle these exceptions as normal.
+  bool consume_invalid_handle_exceptions_;
+
+  // Callers can request additional memory regions to be included in
+  // the dump.
+  AppMemoryList app_memory_info_;
+
+  // A stack of ExceptionHandler objects that have installed unhandled
+  // exception filters.  This vector is used by HandleException to determine
+  // which ExceptionHandler object to route an exception to.  When an
+  // ExceptionHandler is created with install_handler true, it will append
+  // itself to this list.
+  static vector<ExceptionHandler*>* handler_stack_;
+
+  // The index of the ExceptionHandler in handler_stack_ that will handle the
+  // next exception.  Note that 0 means the last entry in handler_stack_, 1
+  // means the next-to-last entry, and so on.  This is used by HandleException
+  // to support multiple stacked Breakpad handlers.
+  static LONG handler_stack_index_;
+
+  // handler_stack_critical_section_ guards operations on handler_stack_ and
+  // handler_stack_index_. The critical section is initialized by the
+  // first instance of the class and destroyed by the last instance of it.
+  static CRITICAL_SECTION handler_stack_critical_section_;
+
+  // The number of instances of this class.
+  static volatile LONG instance_count_;
+
+  // disallow copy ctor and operator=
+  explicit ExceptionHandler(const ExceptionHandler&);
+  void operator=(const ExceptionHandler&);
+};
+
+}  // namespace google_breakpad
+
+#pragma warning(pop)
+
+#endif  // CLIENT_WINDOWS_HANDLER_EXCEPTION_HANDLER_H__
diff --git a/src/client/windows/sender/crash_report_sender.cc b/src/client/windows/sender/crash_report_sender.cc
new file mode 100644
index 0000000..7fc6448
--- /dev/null
+++ b/src/client/windows/sender/crash_report_sender.cc
@@ -0,0 +1,142 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Disable exception handler warnings.
+#pragma warning( disable : 4530 )
+
+#include <errno.h>
+
+#include "client/windows/sender/crash_report_sender.h"
+#include "common/windows/http_upload.h"
+
+#if _MSC_VER < 1400  // MSVC 2005/8
+// Older MSVC doesn't have fscanf_s, but they are compatible as long as
+// we don't use the string conversions (%s/%c/%S/%C).
+#define fscanf_s fscanf
+#endif
+
+namespace google_breakpad {
+
+static const char kCheckpointSignature[] = "GBP1\n";
+
+CrashReportSender::CrashReportSender(const wstring& checkpoint_file)
+    : checkpoint_file_(checkpoint_file),
+      max_reports_per_day_(-1),
+      last_sent_date_(-1),
+      reports_sent_(0) {
+  FILE* fd;
+  if (OpenCheckpointFile(L"r", &fd) == 0) {
+    ReadCheckpoint(fd);
+    fclose(fd);
+  }
+}
+
+ReportResult CrashReportSender::SendCrashReport(
+    const wstring& url, const map<wstring, wstring>& parameters,
+    const map<wstring, wstring>& files, wstring* report_code) {
+  int today = GetCurrentDate();
+  if (today == last_sent_date_ &&
+      max_reports_per_day_ != -1 &&
+      reports_sent_ >= max_reports_per_day_) {
+    return RESULT_THROTTLED;
+  }
+
+  int http_response = 0;
+  bool result = HTTPUpload::SendMultipartPostRequest(
+    url, parameters, files, NULL, report_code,
+    &http_response);
+
+  if (result) {
+    ReportSent(today);
+    return RESULT_SUCCEEDED;
+  } else if (http_response >= 400 && http_response < 500) {
+    return RESULT_REJECTED;
+  } else {
+    return RESULT_FAILED;
+  }
+}
+
+void CrashReportSender::ReadCheckpoint(FILE* fd) {
+  char buf[128];
+  if (!fgets(buf, sizeof(buf), fd) ||
+      strcmp(buf, kCheckpointSignature) != 0) {
+    return;
+  }
+
+  if (fscanf_s(fd, "%d\n", &last_sent_date_) != 1) {
+    last_sent_date_ = -1;
+    return;
+  }
+  if (fscanf_s(fd, "%d\n", &reports_sent_) != 1) {
+    reports_sent_ = 0;
+    return;
+  }
+}
+
+void CrashReportSender::ReportSent(int today) {
+  // Update the report stats
+  if (today != last_sent_date_) {
+    last_sent_date_ = today;
+    reports_sent_ = 0;
+  }
+  ++reports_sent_;
+
+  // Update the checkpoint file
+  FILE* fd;
+  if (OpenCheckpointFile(L"w", &fd) == 0) {
+    fputs(kCheckpointSignature, fd);
+    fprintf(fd, "%d\n", last_sent_date_);
+    fprintf(fd, "%d\n", reports_sent_);
+    fclose(fd);
+  }
+}
+
+int CrashReportSender::GetCurrentDate() const {
+  SYSTEMTIME system_time;
+  GetSystemTime(&system_time);
+  return (system_time.wYear * 10000) + (system_time.wMonth * 100) +
+      system_time.wDay;
+}
+
+int CrashReportSender::OpenCheckpointFile(const wchar_t* mode, FILE** fd) {
+  if (checkpoint_file_.empty()) {
+    return ENOENT;
+  }
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  return _wfopen_s(fd, checkpoint_file_.c_str(), mode);
+#else
+  *fd = _wfopen(checkpoint_file_.c_str(), mode);
+  if (*fd == NULL) {
+    return errno;
+  }
+  return 0;
+#endif
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/sender/crash_report_sender.gyp b/src/client/windows/sender/crash_report_sender.gyp
new file mode 100644
index 0000000..dc8583a
--- /dev/null
+++ b/src/client/windows/sender/crash_report_sender.gyp
@@ -0,0 +1,46 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'crash_report_sender',
+      'type': 'static_library',
+      'sources': [
+        'crash_report_sender.cc',
+        'crash_report_sender.h',
+      ],
+      'dependencies': [
+        '../breakpad_client.gyp:common'
+      ],
+    },
+  ],
+}
diff --git a/src/client/windows/sender/crash_report_sender.h b/src/client/windows/sender/crash_report_sender.h
new file mode 100644
index 0000000..e605585
--- /dev/null
+++ b/src/client/windows/sender/crash_report_sender.h
@@ -0,0 +1,125 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_SENDER_CRASH_REPORT_SENDER_H__
+#define CLIENT_WINDOWS_SENDER_CRASH_REPORT_SENDER_H__
+
+// CrashReportSender is a "static" class which provides an API to upload
+// crash reports via HTTP(S).  A crash report is formatted as a multipart POST
+// request, which contains a set of caller-supplied string key/value pairs,
+// and a minidump file to upload.
+//
+// To use this library in your project, you will need to link against
+// wininet.lib.
+
+#pragma warning( push )
+// Disable exception handler warnings.
+#pragma warning( disable : 4530 ) 
+
+#include <map>
+#include <string>
+
+namespace google_breakpad {
+
+using std::wstring;
+using std::map;
+
+typedef enum {
+  RESULT_FAILED = 0,  // Failed to communicate with the server; try later.
+  RESULT_REJECTED,    // Successfully sent the crash report, but the
+                      // server rejected it; don't resend this report.
+  RESULT_SUCCEEDED,   // The server accepted the crash report.
+  RESULT_THROTTLED    // No attempt was made to send the crash report, because
+                      // we exceeded the maximum reports per day.
+} ReportResult;
+
+class CrashReportSender {
+ public:
+  // Initializes a CrashReportSender instance.
+  // If checkpoint_file is non-empty, breakpad will persist crash report
+  // state to this file.  A checkpoint file is required for
+  // set_max_reports_per_day() to function properly.
+  explicit CrashReportSender(const wstring& checkpoint_file);
+  ~CrashReportSender() {}
+
+  // Sets the maximum number of crash reports that will be sent in a 24-hour
+  // period.  This uses the state persisted to the checkpoint file.
+  // The default value of -1 means that there is no limit on reports sent.
+  void set_max_reports_per_day(int reports) {
+    max_reports_per_day_ = reports;
+  }
+
+  int max_reports_per_day() const { return max_reports_per_day_; }
+
+  // Sends the specified files, along with the map of
+  // name value pairs, as a multipart POST request to the given URL.
+  // Parameter names must contain only printable ASCII characters,
+  // and may not contain a quote (") character.
+  // Only HTTP(S) URLs are currently supported.  The return value indicates
+  // the result of the operation (see above for possible results).
+  // If report_code is non-NULL and the report is sent successfully (that is,
+  // the return value is RESULT_SUCCEEDED), a code uniquely identifying the
+  // report will be returned in report_code.
+  // (Otherwise, report_code will be unchanged.)
+  ReportResult SendCrashReport(const wstring& url,
+                               const map<wstring, wstring>& parameters,
+                               const map<wstring, wstring>& files,
+                               wstring* report_code);
+
+ private:
+  // Reads persistent state from a checkpoint file.
+  void ReadCheckpoint(FILE* fd);
+
+  // Called when a new report has been sent, to update the checkpoint state.
+  void ReportSent(int today);
+
+  // Returns today's date (UTC) formatted as YYYYMMDD.
+  int GetCurrentDate() const;
+
+  // Opens the checkpoint file with the specified mode.
+  // Returns zero on success, or an error code on failure.
+  int OpenCheckpointFile(const wchar_t* mode, FILE** fd);
+
+  wstring checkpoint_file_;
+  int max_reports_per_day_;
+  // The last date on which we sent a report, expressed as YYYYMMDD.
+  int last_sent_date_;
+  // Number of reports sent on last_sent_date_
+  int reports_sent_;
+
+  // Disallow copy constructor and operator=
+  explicit CrashReportSender(const CrashReportSender&);
+  void operator=(const CrashReportSender&);
+};
+
+}  // namespace google_breakpad
+
+#pragma warning( pop )
+
+#endif  // CLIENT_WINDOWS_SENDER_CRASH_REPORT_SENDER_H__
diff --git a/src/client/windows/tests/crash_generation_app/abstract_class.cc b/src/client/windows/tests/crash_generation_app/abstract_class.cc
new file mode 100644
index 0000000..32f78f2
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/abstract_class.cc
@@ -0,0 +1,53 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/tests/crash_generation_app/abstract_class.h"
+
+namespace google_breakpad {
+
+Base::Base(Derived* derived)
+    : derived_(derived) {
+}
+
+Base::~Base() {
+  derived_->DoSomething();
+}
+
+#pragma warning(push)
+#pragma warning(disable:4355)
+// Disable warning C4355: 'this' : used in base member initializer list.
+Derived::Derived()
+    : Base(this) {  // C4355
+}
+#pragma warning(pop)
+
+void Derived::DoSomething() {
+}
+
+}  // namespace google_breakpad
diff --git a/src/client/windows/tests/crash_generation_app/abstract_class.h b/src/client/windows/tests/crash_generation_app/abstract_class.h
new file mode 100644
index 0000000..e3f2a4f
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/abstract_class.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__
+#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__
+
+namespace google_breakpad {
+
+// Dummy classes to help generate a pure call violation.
+
+class Derived;
+
+class Base {
+ public:
+  Base(Derived* derived);
+  virtual ~Base();
+  virtual void DoSomething() = 0;
+
+ private:
+  Derived* derived_;
+};
+
+class Derived : public Base {
+ public:
+  Derived();
+  virtual void DoSomething();
+};
+
+}  // namespace google_breakpad
+
+#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc
new file mode 100644
index 0000000..0d837e5
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc
@@ -0,0 +1,522 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// crash_generation_app.cpp : Defines the entry point for the application.
+//
+
+#include "client/windows/tests/crash_generation_app/crash_generation_app.h"
+
+#include <windows.h>
+#include <tchar.h>
+
+#include "client/windows/crash_generation/client_info.h"
+#include "client/windows/crash_generation/crash_generation_server.h"
+#include "client/windows/handler/exception_handler.h"
+#include "client/windows/common/ipc_protocol.h"
+
+#include "client/windows/tests/crash_generation_app/abstract_class.h"
+
+namespace google_breakpad {
+
+const int kMaxLoadString = 100;
+const wchar_t kPipeName[] = L"\\\\.\\pipe\\BreakpadCrashServices\\TestServer";
+
+const DWORD kEditBoxStyles = WS_CHILD |
+                             WS_VISIBLE |
+                             WS_VSCROLL |
+                             ES_LEFT |
+                             ES_MULTILINE |
+                             ES_AUTOVSCROLL |
+                             ES_READONLY;
+
+// Maximum length of a line in the edit box.
+const size_t kMaximumLineLength = 256;
+
+// CS to access edit control in a thread safe way.
+static CRITICAL_SECTION* cs_edit = NULL;
+
+// Edit control.
+static HWND client_status_edit_box;
+
+HINSTANCE current_instance;             // Current instance.
+TCHAR title[kMaxLoadString];            // Title bar text.
+TCHAR window_class[kMaxLoadString];     // Main window class name.
+
+ATOM MyRegisterClass(HINSTANCE instance);
+BOOL InitInstance(HINSTANCE, int);
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
+INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
+
+static size_t kCustomInfoCount = 2;
+static CustomInfoEntry kCustomInfoEntries[] = {
+    CustomInfoEntry(L"prod", L"CrashTestApp"),
+    CustomInfoEntry(L"ver", L"1.0"),
+};
+
+static ExceptionHandler* handler = NULL;
+static CrashGenerationServer* crash_server = NULL;
+
+// Registers the window class.
+//
+// This function and its usage are only necessary if you want this code
+// to be compatible with Win32 systems prior to the 'RegisterClassEx'
+// function that was added to Windows 95. It is important to call this
+// function so that the application will get 'well formed' small icons
+// associated with it.
+ATOM MyRegisterClass(HINSTANCE instance) {
+  WNDCLASSEX wcex;
+  wcex.cbSize = sizeof(WNDCLASSEX);
+  wcex.style = CS_HREDRAW | CS_VREDRAW;
+  wcex.lpfnWndProc = WndProc;
+  wcex.cbClsExtra = 0;
+  wcex.cbWndExtra = 0;
+  wcex.hInstance = instance;
+  wcex.hIcon = LoadIcon(instance,
+                        MAKEINTRESOURCE(IDI_CRASHGENERATIONAPP));
+  wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
+  wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
+  wcex.lpszMenuName = MAKEINTRESOURCE(IDC_CRASHGENERATIONAPP);
+  wcex.lpszClassName = window_class;
+  wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
+
+  return RegisterClassEx(&wcex);
+}
+
+// Saves instance handle and creates main window
+//
+// In this function, we save the instance handle in a global variable and
+//   create and display the main program window.
+BOOL InitInstance(HINSTANCE instance, int command_show) {
+  current_instance = instance;
+  HWND wnd = CreateWindow(window_class,
+                          title,
+                          WS_OVERLAPPEDWINDOW,
+                          CW_USEDEFAULT,
+                          0,
+                          CW_USEDEFAULT,
+                          0,
+                          NULL,
+                          NULL,
+                          instance,
+                          NULL);
+
+  if (!wnd) {
+    return FALSE;
+  }
+
+  ShowWindow(wnd, command_show);
+  UpdateWindow(wnd);
+
+  return TRUE;
+}
+
+static void AppendTextToEditBox(TCHAR* text) {
+  EnterCriticalSection(cs_edit);
+  SYSTEMTIME current_time;
+  GetLocalTime(&current_time);
+  TCHAR line[kMaximumLineLength];
+  int result = swprintf_s(line,
+                          kMaximumLineLength,
+                          L"[%.2d-%.2d-%.4d %.2d:%.2d:%.2d] %s",
+                          current_time.wMonth,
+                          current_time.wDay,
+                          current_time.wYear,
+                          current_time.wHour,
+                          current_time.wMinute,
+                          current_time.wSecond,
+                          text);
+
+  if (result == -1) {
+    return;
+  }
+
+  int length = GetWindowTextLength(client_status_edit_box);
+  SendMessage(client_status_edit_box,
+              EM_SETSEL,
+              (WPARAM)length,
+              (LPARAM)length);
+  SendMessage(client_status_edit_box,
+              EM_REPLACESEL,
+              (WPARAM)FALSE,
+              (LPARAM)line);
+  LeaveCriticalSection(cs_edit);
+}
+
+static DWORD WINAPI AppendTextWorker(void* context) {
+  TCHAR* text = reinterpret_cast<TCHAR*>(context);
+
+  AppendTextToEditBox(text);
+  delete[] text;
+
+  return 0;
+}
+
+bool ShowDumpResults(const wchar_t* dump_path,
+                     const wchar_t* minidump_id,
+                     void* context,
+                     EXCEPTION_POINTERS* exinfo,
+                     MDRawAssertionInfo* assertion,
+                     bool succeeded) {
+  TCHAR* text = new TCHAR[kMaximumLineLength];
+  text[0] = _T('\0');
+  int result = swprintf_s(text,
+                          kMaximumLineLength,
+                          TEXT("Dump generation request %s\r\n"),
+                          succeeded ? TEXT("succeeded") : TEXT("failed"));
+  if (result == -1) {
+    delete [] text;
+  }
+
+  QueueUserWorkItem(AppendTextWorker, text, WT_EXECUTEDEFAULT);
+  return succeeded;
+}
+
+static void ShowClientConnected(void* context,
+                                const ClientInfo* client_info) {
+  TCHAR* line = new TCHAR[kMaximumLineLength];
+  line[0] = _T('\0');
+  int result = swprintf_s(line,
+                          kMaximumLineLength,
+                          L"Client connected:\t\t%d\r\n",
+                          client_info->pid());
+
+  if (result == -1) {
+    delete[] line;
+    return;
+  }
+
+  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
+}
+
+static void ShowClientCrashed(void* context,
+                              const ClientInfo* client_info,
+                              const wstring* dump_path) {
+  TCHAR* line = new TCHAR[kMaximumLineLength];
+  line[0] = _T('\0');
+  int result = swprintf_s(line,
+                          kMaximumLineLength,
+                          TEXT("Client requested dump:\t%d\r\n"),
+                          client_info->pid());
+
+  if (result == -1) {
+    delete[] line;
+    return;
+  }
+
+  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
+
+  CustomClientInfo custom_info = client_info->GetCustomInfo();
+  if (custom_info.count <= 0) {
+    return;
+  }
+
+  wstring str_line;
+  for (size_t i = 0; i < custom_info.count; ++i) {
+    if (i > 0) {
+      str_line += L", ";
+    }
+    str_line += custom_info.entries[i].name;
+    str_line += L": ";
+    str_line += custom_info.entries[i].value;
+  }
+
+  line = new TCHAR[kMaximumLineLength];
+  line[0] = _T('\0');
+  result = swprintf_s(line,
+                      kMaximumLineLength,
+                      L"%s\n",
+                      str_line.c_str());
+  if (result == -1) {
+    delete[] line;
+    return;
+  }
+  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
+}
+
+static void ShowClientExited(void* context,
+                             const ClientInfo* client_info) {
+  TCHAR* line = new TCHAR[kMaximumLineLength];
+  line[0] = _T('\0');
+  int result = swprintf_s(line,
+                          kMaximumLineLength,
+                          TEXT("Client exited:\t\t%d\r\n"),
+                          client_info->pid());
+
+  if (result == -1) {
+    delete[] line;
+    return;
+  }
+
+  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
+}
+
+void CrashServerStart() {
+  // Do not create another instance of the server.
+  if (crash_server) {
+    return;
+  }
+
+  std::wstring dump_path = L"C:\\Dumps\\";
+
+  if (_wmkdir(dump_path.c_str()) && (errno != EEXIST)) {
+    MessageBoxW(NULL, L"Unable to create dump directory", L"Dumper", MB_OK);
+    return;
+  }
+
+  crash_server = new CrashGenerationServer(kPipeName,
+                                           NULL,
+                                           ShowClientConnected,
+                                           NULL,
+                                           ShowClientCrashed,
+                                           NULL,
+                                           ShowClientExited,
+                                           NULL,
+                                           NULL,
+                                           NULL,
+                                           true,
+                                           &dump_path);
+
+  if (!crash_server->Start()) {
+    MessageBoxW(NULL, L"Unable to start server", L"Dumper", MB_OK);
+    delete crash_server;
+    crash_server = NULL;
+  }
+}
+
+void CrashServerStop() {
+  delete crash_server;
+  crash_server = NULL;
+}
+
+void DerefZeroCrash() {
+  int* x = 0;
+  *x = 1;
+}
+
+void InvalidParamCrash() {
+  printf(NULL);
+}
+
+void PureCallCrash() {
+  Derived derived;
+}
+
+void RequestDump() {
+  if (!handler->WriteMinidump()) {
+    MessageBoxW(NULL, L"Dump request failed", L"Dumper", MB_OK);
+  }
+  kCustomInfoEntries[1].set_value(L"1.1");
+}
+
+void CleanUp() {
+  if (cs_edit) {
+    DeleteCriticalSection(cs_edit);
+    delete cs_edit;
+  }
+
+  if (handler) {
+    delete handler;
+  }
+
+  if (crash_server) {
+    delete crash_server;
+  }
+}
+
+// Processes messages for the main window.
+//
+// WM_COMMAND - process the application menu.
+// WM_PAINT   - Paint the main window.
+// WM_DESTROY - post a quit message and return.
+LRESULT CALLBACK WndProc(HWND wnd,
+                         UINT message,
+                         WPARAM w_param,
+                         LPARAM l_param) {
+  int message_id;
+  int message_event;
+  PAINTSTRUCT ps;
+  HDC hdc;
+
+  HINSTANCE instance = (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE);
+
+  switch (message) {
+    case WM_COMMAND:
+      // Parse the menu selections.
+      message_id = LOWORD(w_param);
+      message_event = HIWORD(w_param);
+      switch (message_id) {
+        case IDM_ABOUT:
+          DialogBox(current_instance,
+                    MAKEINTRESOURCE(IDD_ABOUTBOX),
+                    wnd,
+                    About);
+          break;
+        case IDM_EXIT:
+          DestroyWindow(wnd);
+          break;
+        case ID_SERVER_START:
+          CrashServerStart();
+          break;
+        case ID_SERVER_STOP:
+          CrashServerStop();
+          break;
+        case ID_CLIENT_DEREFZERO:
+          DerefZeroCrash();
+          break;
+        case ID_CLIENT_INVALIDPARAM:
+          InvalidParamCrash();
+          break;
+        case ID_CLIENT_PURECALL:
+          PureCallCrash();
+          break;
+        case ID_CLIENT_REQUESTEXPLICITDUMP:
+          RequestDump();
+          break;
+        default:
+          return DefWindowProc(wnd, message, w_param, l_param);
+      }
+      break;
+    case WM_CREATE:
+      client_status_edit_box = CreateWindow(TEXT("EDIT"),
+                                            NULL,
+                                            kEditBoxStyles,
+                                            0,
+                                            0,
+                                            0,
+                                            0,
+                                            wnd,
+                                            NULL,
+                                            instance,
+                                            NULL);
+      break;
+    case WM_SIZE:
+      // Make the edit control the size of the window's client area.
+      MoveWindow(client_status_edit_box,
+                 0,
+                 0,
+                 LOWORD(l_param),        // width of client area.
+                 HIWORD(l_param),        // height of client area.
+                 TRUE);                  // repaint window.
+      break;
+    case WM_SETFOCUS:
+      SetFocus(client_status_edit_box);
+      break;
+    case WM_PAINT:
+      hdc = BeginPaint(wnd, &ps);
+      EndPaint(wnd, &ps);
+      break;
+    case WM_DESTROY:
+      CleanUp();
+      PostQuitMessage(0);
+      break;
+    default:
+      return DefWindowProc(wnd, message, w_param, l_param);
+  }
+
+  return 0;
+}
+
+// Message handler for about box.
+INT_PTR CALLBACK About(HWND dlg,
+                       UINT message,
+                       WPARAM w_param,
+                       LPARAM l_param) {
+  UNREFERENCED_PARAMETER(l_param);
+  switch (message) {
+    case WM_INITDIALOG:
+      return (INT_PTR)TRUE;
+
+    case WM_COMMAND:
+      if (LOWORD(w_param) == IDOK || LOWORD(w_param) == IDCANCEL) {
+        EndDialog(dlg, LOWORD(w_param));
+        return (INT_PTR)TRUE;
+      }
+      break;
+  }
+
+  return (INT_PTR)FALSE;
+}
+
+}  // namespace google_breakpad
+
+int APIENTRY _tWinMain(HINSTANCE instance,
+                       HINSTANCE previous_instance,
+                       LPTSTR command_line,
+                       int command_show) {
+  using namespace google_breakpad;
+
+  UNREFERENCED_PARAMETER(previous_instance);
+  UNREFERENCED_PARAMETER(command_line);
+
+  cs_edit = new CRITICAL_SECTION();
+  InitializeCriticalSection(cs_edit);
+
+  CustomClientInfo custom_info = {kCustomInfoEntries, kCustomInfoCount};
+
+  CrashServerStart();
+  // This is needed for CRT to not show dialog for invalid param
+  // failures and instead let the code handle it.
+  _CrtSetReportMode(_CRT_ASSERT, 0);
+  handler = new ExceptionHandler(L"C:\\dumps\\",
+                                 NULL,
+                                 google_breakpad::ShowDumpResults,
+                                 NULL,
+                                 ExceptionHandler::HANDLER_ALL,
+                                 MiniDumpNormal,
+                                 kPipeName,
+                                 &custom_info);
+
+  // Initialize global strings.
+  LoadString(instance, IDS_APP_TITLE, title, kMaxLoadString);
+  LoadString(instance,
+             IDC_CRASHGENERATIONAPP,
+             window_class,
+             kMaxLoadString);
+  MyRegisterClass(instance);
+
+  // Perform application initialization.
+  if (!InitInstance(instance, command_show)) {
+    return FALSE;
+  }
+
+  HACCEL accel_table = LoadAccelerators(
+      instance,
+      MAKEINTRESOURCE(IDC_CRASHGENERATIONAPP));
+
+  // Main message loop.
+  MSG msg;
+  while (GetMessage(&msg, NULL, 0, 0)) {
+    if (!TranslateAccelerator(msg.hwnd, accel_table, &msg)) {
+      TranslateMessage(&msg);
+      DispatchMessage(&msg);
+    }
+  }
+
+  return static_cast<int>(msg.wParam);
+}
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp
new file mode 100644
index 0000000..3ce307d
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.gyp
@@ -0,0 +1,63 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'crash_generation_app',
+      'type': 'executable',
+      'sources': [
+        'abstract_class.cc',
+        'abstract_class.h',
+        'crash_generation_app.cc',
+        'crash_generation_app.h',
+        'crash_generation_app.ico',
+        'crash_generation_app.rc',
+        'resource.h',
+        'small.ico',
+      ],
+      'libraries': [
+        'user32.lib',
+      ],
+      'dependencies': [
+        '../../breakpad_client.gyp:common',
+        '../../crash_generation/crash_generation.gyp:crash_generation_server',
+        '../../crash_generation/crash_generation.gyp:crash_generation_client',
+        '../../handler/exception_handler.gyp:exception_handler',
+      ],
+      'msvs_settings': {
+        'VCLinkerTool': {
+          'SubSystem': '2',  # Windows Subsystem as opposed to a console app
+        },
+      },
+    }
+  ]
+}
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.h b/src/client/windows/tests/crash_generation_app/crash_generation_app.h
new file mode 100644
index 0000000..4d3bb6e
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.h
@@ -0,0 +1,35 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
+#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
+
+#include "resource.h"
+
+#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.ico b/src/client/windows/tests/crash_generation_app/crash_generation_app.ico
new file mode 100644
index 0000000..d551aa3
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.ico
Binary files differ
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.rc b/src/client/windows/tests/crash_generation_app/crash_generation_app.rc
new file mode 100644
index 0000000..a362562
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.rc
@@ -0,0 +1,144 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_CRASHGENERATIONAPP  ICON                    "crash_generation_app.ico"
+IDI_SMALL               ICON                    "small.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDC_CRASHGENERATIONAPP MENU 
+BEGIN
+    POPUP "&File"
+    BEGIN
+        MENUITEM "E&xit",                       IDM_EXIT
+    END
+    POPUP "&Server"
+    BEGIN
+        MENUITEM "&Start",                      ID_SERVER_START
+        MENUITEM "S&top",                       ID_SERVER_STOP
+    END
+    POPUP "&Client"
+    BEGIN
+        MENUITEM "&Deref Zero",                 ID_CLIENT_DEREFZERO
+        MENUITEM "&Invalid Param",              ID_CLIENT_INVALIDPARAM
+        MENUITEM "&Pure Call",                  ID_CLIENT_PURECALL
+        MENUITEM "&Request Dump",               ID_CLIENT_REQUESTEXPLICITDUMP
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDC_CRASHGENERATIONAPP ACCELERATORS 
+BEGIN
+    "?",            IDM_ABOUT,              ASCII,  ALT
+    "/",            IDM_ABOUT,              ASCII,  ALT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG  22, 17, 230, 75
+STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "System"
+BEGIN
+    ICON            IDI_CRASHGENERATIONAPP,IDC_MYICON,14,9,16,16
+    LTEXT           "CrashGenerationApp Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX
+    LTEXT           "Copyright (C) 2008",IDC_STATIC,49,20,119,8
+    DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""windows.h""\r\n"
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_APP_TITLE           "CrashGenerationApp"
+    IDC_CRASHGENERATIONAPP  "CRASHGENERATIONAPP"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/src/client/windows/tests/crash_generation_app/resource.h b/src/client/windows/tests/crash_generation_app/resource.h
new file mode 100644
index 0000000..8c7f657
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/resource.h
@@ -0,0 +1,73 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// PreCompile.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
+#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
+
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by crash_generation_app.rc
+//
+#define IDC_MYICON                      2
+#define IDD_CRASHGENERATIONAPP_DIALOG   102
+#define IDS_APP_TITLE                   103
+#define IDD_ABOUTBOX                    103
+#define IDM_ABOUT                       104
+#define IDM_EXIT                        105
+#define IDI_CRASHGENERATIONAPP          107
+#define IDI_SMALL                       108
+#define IDC_CRASHGENERATIONAPP          109
+#define IDR_MAINFRAME                   128
+#define ID_SERVER_START                 32771
+#define ID_SERVER_STOP                  32772
+#define ID_CLIENT_INVALIDPARAM          32773
+#define ID_CLIENT_ASSERTFAILURE         32774
+#define ID_CLIENT_DEREFZERO             32775
+#define ID_CLIENT_PURECALL              32777
+#define ID_CLIENT_REQUESTEXPLICITDUMP   32778
+#define IDC_STATIC                      -1
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        129
+#define _APS_NEXT_COMMAND_VALUE         32780
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           110
+#endif
+#endif
+
+#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
diff --git a/src/client/windows/tests/crash_generation_app/small.ico b/src/client/windows/tests/crash_generation_app/small.ico
new file mode 100644
index 0000000..d551aa3
--- /dev/null
+++ b/src/client/windows/tests/crash_generation_app/small.ico
Binary files differ
diff --git a/src/client/windows/unittests/client_tests.gyp b/src/client/windows/unittests/client_tests.gyp
new file mode 100644
index 0000000..768f8fd
--- /dev/null
+++ b/src/client/windows/unittests/client_tests.gyp
@@ -0,0 +1,81 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'client_tests',
+      'type': 'executable',
+      'sources': [
+        'exception_handler_test.h',
+        'exception_handler_test.cc',
+        'exception_handler_death_test.cc',
+        'exception_handler_nesting_test.cc',
+        'minidump_test.cc',
+        'dump_analysis.cc',
+        'dump_analysis.h',
+        'crash_generation_server_test.cc'
+      ],
+      'dependencies': [
+        'testing.gyp:gtest',
+        'testing.gyp:gmock',
+        '../breakpad_client.gyp:common',
+        '../crash_generation/crash_generation.gyp:crash_generation_server',
+        '../crash_generation/crash_generation.gyp:crash_generation_client',
+        '../handler/exception_handler.gyp:exception_handler',
+	'processor_bits',
+      ]
+    },
+    {
+      'target_name': 'processor_bits',
+      'type': 'static_library',
+      'include_dirs': [
+        '<(DEPTH)',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '<(DEPTH)',
+        ]
+      },
+      'sources': [
+        '<(DEPTH)/common/string_conversion.cc',
+        '<(DEPTH)/processor/basic_code_modules.cc',
+        '<(DEPTH)/processor/convert_old_arm64_context.cc',
+        '<(DEPTH)/processor/dump_context.cc',
+        '<(DEPTH)/processor/dump_object.cc',
+        '<(DEPTH)/processor/logging.cc',
+        '<(DEPTH)/processor/minidump.cc',
+        '<(DEPTH)/processor/pathname_stripper.cc',
+        '<(DEPTH)/processor/proc_maps_linux.cc',
+      ]
+    }
+  ],
+}
diff --git a/src/client/windows/unittests/crash_generation_server_test.cc b/src/client/windows/unittests/crash_generation_server_test.cc
new file mode 100644
index 0000000..09f2dd2
--- /dev/null
+++ b/src/client/windows/unittests/crash_generation_server_test.cc
@@ -0,0 +1,303 @@
+// Copyright 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/crash_generation/crash_generation_server.h"
+#include "client/windows/common/ipc_protocol.h"
+
+using testing::_;
+
+namespace {
+
+const wchar_t kPipeName[] =
+  L"\\\\.\\pipe\\CrashGenerationServerTest\\TestCaseServer";
+
+const DWORD kPipeDesiredAccess = FILE_READ_DATA |
+                                 FILE_WRITE_DATA |
+                                 FILE_WRITE_ATTRIBUTES;
+
+const DWORD kPipeFlagsAndAttributes = SECURITY_IDENTIFICATION |
+                                      SECURITY_SQOS_PRESENT;
+
+const DWORD kPipeMode = PIPE_READMODE_MESSAGE;
+
+#define arraysize(f) (sizeof(f) / sizeof(*f))
+const google_breakpad::CustomInfoEntry kCustomInfoEntries[] = {
+    google_breakpad::CustomInfoEntry(L"prod", L"CrashGenerationServerTest"),
+    google_breakpad::CustomInfoEntry(L"ver", L"1.0"),
+};
+
+class CrashGenerationServerTest : public ::testing::Test {
+ public:
+  CrashGenerationServerTest()
+      : crash_generation_server_(kPipeName,
+                                 NULL,
+                                 CallOnClientConnected, &mock_callbacks_,
+                                 CallOnClientDumpRequested, &mock_callbacks_,
+                                 CallOnClientExited, &mock_callbacks_,
+                                 CallOnClientUploadRequested, &mock_callbacks_,
+                                 false,
+                                 NULL),
+        thread_id_(0),
+        exception_pointers_(NULL) {
+    memset(&assert_info_, 0, sizeof(assert_info_));
+  }
+
+ protected:
+  class MockCrashGenerationServerCallbacks {
+   public:
+    MOCK_METHOD1(OnClientConnected,
+                 void(const google_breakpad::ClientInfo* client_info));
+    MOCK_METHOD2(OnClientDumpRequested,
+                 void(const google_breakpad::ClientInfo* client_info,
+                      const std::wstring* file_path));
+    MOCK_METHOD1(OnClientExited,
+                 void(const google_breakpad::ClientInfo* client_info));
+    MOCK_METHOD1(OnClientUploadRequested,
+                 void(const DWORD crash_id));
+  };
+
+  enum ClientFault {
+    NO_FAULT,
+    CLOSE_AFTER_CONNECT,
+    SEND_INVALID_REGISTRATION,
+    TRUNCATE_REGISTRATION,
+    CLOSE_AFTER_REGISTRATION,
+    RESPONSE_BUFFER_TOO_SMALL,
+    CLOSE_AFTER_RESPONSE,
+    SEND_INVALID_ACK
+  };
+
+  void SetUp() {
+    ASSERT_TRUE(crash_generation_server_.Start());
+  }
+
+  void FaultyClient(ClientFault fault_type) {
+    HANDLE pipe = CreateFile(kPipeName,
+                             kPipeDesiredAccess,
+                             0,
+                             NULL,
+                             OPEN_EXISTING,
+                             kPipeFlagsAndAttributes,
+                             NULL);
+
+    if (pipe == INVALID_HANDLE_VALUE) {
+      ASSERT_EQ(ERROR_PIPE_BUSY, GetLastError());
+
+      // Cannot continue retrying if wait on pipe fails.
+      ASSERT_TRUE(WaitNamedPipe(kPipeName, 500));
+
+      pipe = CreateFile(kPipeName,
+                        kPipeDesiredAccess,
+                        0,
+                        NULL,
+                        OPEN_EXISTING,
+                        kPipeFlagsAndAttributes,
+                        NULL);
+    }
+
+    ASSERT_NE(pipe, INVALID_HANDLE_VALUE);
+
+    DWORD mode = kPipeMode;
+    ASSERT_TRUE(SetNamedPipeHandleState(pipe, &mode, NULL, NULL));
+
+    DoFaultyClient(fault_type, pipe);
+
+    CloseHandle(pipe);
+  }
+
+  void DoTestFault(ClientFault fault) {
+    EXPECT_CALL(mock_callbacks_, OnClientConnected(_)).Times(0);
+    ASSERT_NO_FATAL_FAILURE(FaultyClient(fault));
+    ASSERT_NO_FATAL_FAILURE(FaultyClient(fault));
+    ASSERT_NO_FATAL_FAILURE(FaultyClient(fault));
+
+    EXPECT_CALL(mock_callbacks_, OnClientConnected(_));
+
+    ASSERT_NO_FATAL_FAILURE(FaultyClient(NO_FAULT));
+
+    // Slight hack. The OnClientConnected is only invoked after the ack is
+    // received by the server. At that point, the FaultyClient call has already
+    // returned. The best way to wait until the server is done handling that is
+    // to send one more ping, whose processing will be blocked by delivery of
+    // the OnClientConnected message.
+    ASSERT_NO_FATAL_FAILURE(FaultyClient(CLOSE_AFTER_CONNECT));
+  }
+
+  MockCrashGenerationServerCallbacks mock_callbacks_;
+
+ private:
+  // Depends on the caller to successfully open the pipe before invocation and
+  // to close it immediately afterwards.
+  void DoFaultyClient(ClientFault fault_type, HANDLE pipe) {
+    if (fault_type == CLOSE_AFTER_CONNECT) {
+      return;
+    }
+
+    google_breakpad::CustomClientInfo custom_info = {kCustomInfoEntries,
+                                                     arraysize(kCustomInfoEntries)};
+
+    google_breakpad::ProtocolMessage msg(
+      fault_type == SEND_INVALID_REGISTRATION ?
+        google_breakpad::MESSAGE_TAG_NONE :
+        google_breakpad::MESSAGE_TAG_REGISTRATION_REQUEST,
+      GetCurrentProcessId(),
+      MiniDumpNormal,
+      &thread_id_,
+      &exception_pointers_,
+      &assert_info_,
+      custom_info,
+      NULL,
+      NULL,
+      NULL);
+
+    DWORD bytes_count = 0;
+
+    ASSERT_TRUE(WriteFile(pipe,
+                          &msg,
+                          fault_type == TRUNCATE_REGISTRATION ?
+                            sizeof(msg) / 2 : sizeof(msg),
+                          &bytes_count,
+                          NULL));
+
+    if (fault_type == CLOSE_AFTER_REGISTRATION) {
+      return;
+    }
+
+    google_breakpad::ProtocolMessage reply;
+
+    if (!ReadFile(pipe,
+                  &reply,
+                  fault_type == RESPONSE_BUFFER_TOO_SMALL ?
+                    sizeof(google_breakpad::ProtocolMessage) / 2 :
+                    sizeof(google_breakpad::ProtocolMessage),
+                  &bytes_count,
+                  NULL)) {
+      switch (fault_type) {
+        case TRUNCATE_REGISTRATION:
+        case RESPONSE_BUFFER_TOO_SMALL:
+        case SEND_INVALID_REGISTRATION:
+          return;
+
+        default:
+          FAIL() << "Unexpectedly failed to register.";
+      }
+    }
+
+    if (fault_type == CLOSE_AFTER_RESPONSE) {
+      return;
+    }
+
+    google_breakpad::ProtocolMessage ack_msg;
+    ack_msg.tag = google_breakpad::MESSAGE_TAG_REGISTRATION_ACK;
+
+    ASSERT_TRUE(WriteFile(pipe,
+                          &ack_msg,
+                          SEND_INVALID_ACK ?
+                            sizeof(ack_msg) : sizeof(ack_msg) / 2,
+                          &bytes_count,
+                          NULL));
+
+    return;
+  }
+
+  static void CallOnClientConnected(
+    void* context, const google_breakpad::ClientInfo* client_info) {
+    static_cast<MockCrashGenerationServerCallbacks*>(context)->
+      OnClientConnected(client_info);
+  }
+
+  static void CallOnClientDumpRequested(
+    void* context,
+    const google_breakpad::ClientInfo* client_info,
+    const std::wstring* file_path) {
+    static_cast<MockCrashGenerationServerCallbacks*>(context)->
+      OnClientDumpRequested(client_info, file_path);
+  }
+
+  static void CallOnClientExited(
+    void* context, const google_breakpad::ClientInfo* client_info) {
+    static_cast<MockCrashGenerationServerCallbacks*>(context)->
+      OnClientExited(client_info);
+  }
+
+  static void CallOnClientUploadRequested(void* context, const DWORD crash_id) {
+    static_cast<MockCrashGenerationServerCallbacks*>(context)->
+      OnClientUploadRequested(crash_id);
+  }
+
+  DWORD thread_id_;
+  EXCEPTION_POINTERS* exception_pointers_;
+  MDRawAssertionInfo assert_info_;
+
+  google_breakpad::CrashGenerationServer crash_generation_server_;
+};
+
+TEST_F(CrashGenerationServerTest, PingServerTest) {
+  DoTestFault(CLOSE_AFTER_CONNECT);
+}
+
+TEST_F(CrashGenerationServerTest, InvalidRegistration) {
+  DoTestFault(SEND_INVALID_REGISTRATION);
+}
+
+TEST_F(CrashGenerationServerTest, TruncateRegistration) {
+  DoTestFault(TRUNCATE_REGISTRATION);
+}
+
+TEST_F(CrashGenerationServerTest, CloseAfterRegistration) {
+  DoTestFault(CLOSE_AFTER_REGISTRATION);
+}
+
+TEST_F(CrashGenerationServerTest, ResponseBufferTooSmall) {
+  DoTestFault(RESPONSE_BUFFER_TOO_SMALL);
+}
+
+TEST_F(CrashGenerationServerTest, CloseAfterResponse) {
+  DoTestFault(CLOSE_AFTER_RESPONSE);
+}
+
+// It turns out that, as long as you send one byte, the ACK is accepted and
+// registration succeeds.
+TEST_F(CrashGenerationServerTest, SendInvalidAck) {
+  EXPECT_CALL(mock_callbacks_, OnClientConnected(_));
+  ASSERT_NO_FATAL_FAILURE(FaultyClient(SEND_INVALID_ACK));
+
+  // See DoTestFault for an explanation of this line
+  ASSERT_NO_FATAL_FAILURE(FaultyClient(CLOSE_AFTER_CONNECT));
+
+  EXPECT_CALL(mock_callbacks_, OnClientConnected(_));
+  ASSERT_NO_FATAL_FAILURE(FaultyClient(NO_FAULT));
+
+  // See DoTestFault for an explanation of this line
+  ASSERT_NO_FATAL_FAILURE(FaultyClient(CLOSE_AFTER_CONNECT));
+}
+
+}  // anonymous namespace
diff --git a/src/client/windows/unittests/dump_analysis.cc b/src/client/windows/unittests/dump_analysis.cc
new file mode 100644
index 0000000..0bb8f6c
--- /dev/null
+++ b/src/client/windows/unittests/dump_analysis.cc
@@ -0,0 +1,184 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <windows.h>
+#include <objbase.h>
+#include <dbghelp.h>
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/unittests/dump_analysis.h"  // NOLINT
+
+DumpAnalysis::~DumpAnalysis() {
+  if (dump_file_view_ != NULL) {
+    EXPECT_TRUE(::UnmapViewOfFile(dump_file_view_));
+    ::CloseHandle(dump_file_mapping_);
+    dump_file_mapping_ = NULL;
+  }
+
+  if (dump_file_handle_ != NULL) {
+    ::CloseHandle(dump_file_handle_);
+    dump_file_handle_ = NULL;
+  }
+}
+
+void DumpAnalysis::EnsureDumpMapped() {
+  if (dump_file_view_ == NULL) {
+    dump_file_handle_ = ::CreateFile(dump_file_.c_str(),
+      GENERIC_READ,
+      0,
+      NULL,
+      OPEN_EXISTING,
+      0,
+      NULL);
+    ASSERT_TRUE(dump_file_handle_ != NULL);
+    ASSERT_TRUE(dump_file_mapping_ == NULL);
+
+    dump_file_mapping_ = ::CreateFileMapping(dump_file_handle_,
+      NULL,
+      PAGE_READONLY,
+      0,
+      0,
+      NULL);
+    ASSERT_TRUE(dump_file_mapping_ != NULL);
+
+    dump_file_view_ = ::MapViewOfFile(dump_file_mapping_,
+      FILE_MAP_READ,
+      0,
+      0,
+      0);
+    ASSERT_TRUE(dump_file_view_ != NULL);
+  }
+}
+
+bool DumpAnalysis::HasTebs() const {
+  MINIDUMP_THREAD_LIST* thread_list = NULL;
+  size_t thread_list_size = GetStream(ThreadListStream, &thread_list);
+
+  if (thread_list_size > 0 && thread_list != NULL) {
+    for (ULONG i = 0; i < thread_list->NumberOfThreads; ++i) {
+      if (!HasMemory(thread_list->Threads[i].Teb))
+        return false;
+    }
+
+    return true;
+  }
+
+  // No thread list, no TEB info.
+  return false;
+}
+
+bool DumpAnalysis::HasPeb() const {
+  MINIDUMP_THREAD_LIST* thread_list = NULL;
+  size_t thread_list_size = GetStream(ThreadListStream, &thread_list);
+
+  if (thread_list_size > 0 && thread_list != NULL &&
+      thread_list->NumberOfThreads > 0) {
+    FakeTEB* teb = NULL;
+    if (!HasMemory(thread_list->Threads[0].Teb, &teb))
+      return false;
+
+    return HasMemory(teb->peb);
+  }
+
+  return false;
+}
+
+bool DumpAnalysis::HasStream(ULONG stream_number) const {
+  void* stream = NULL;
+  size_t stream_size = GetStreamImpl(stream_number, &stream);
+  return stream_size > 0 && stream != NULL;
+}
+
+size_t DumpAnalysis::GetStreamImpl(ULONG stream_number, void** stream) const {
+  MINIDUMP_DIRECTORY* directory = NULL;
+  ULONG memory_list_size = 0;
+  BOOL ret = ::MiniDumpReadDumpStream(dump_file_view_,
+                                      stream_number,
+                                      &directory,
+                                      stream,
+                                      &memory_list_size);
+
+  return ret ? memory_list_size : 0;
+}
+
+bool DumpAnalysis::HasMemoryImpl(const void* addr_in, size_t structuresize,
+                                 void** structure) const {
+  uintptr_t address = reinterpret_cast<uintptr_t>(addr_in);
+  MINIDUMP_MEMORY_LIST* memory_list = NULL;
+  size_t memory_list_size = GetStream(MemoryListStream, &memory_list);
+  if (memory_list_size > 0 && memory_list != NULL) {
+    for (ULONG i = 0; i < memory_list->NumberOfMemoryRanges; ++i) {
+      MINIDUMP_MEMORY_DESCRIPTOR& descr = memory_list->MemoryRanges[i];
+      const uintptr_t range_start =
+          static_cast<uintptr_t>(descr.StartOfMemoryRange);
+      uintptr_t range_end = range_start + descr.Memory.DataSize;
+
+      if (address >= range_start &&
+          address + structuresize < range_end) {
+        // The start address falls in the range, and the end address is
+        // in bounds, return a pointer to the structure if requested.
+        if (structure != NULL)
+          *structure = RVA_TO_ADDR(dump_file_view_, descr.Memory.Rva);
+
+        return true;
+      }
+    }
+  }
+
+  // We didn't find the range in a MINIDUMP_MEMORY_LIST, so maybe this
+  // is a full dump using MINIDUMP_MEMORY64_LIST with all the memory at the
+  // end of the dump file.
+  MINIDUMP_MEMORY64_LIST* memory64_list = NULL;
+  memory_list_size = GetStream(Memory64ListStream, &memory64_list);
+  if (memory_list_size > 0 && memory64_list != NULL) {
+    // Keep track of where the current descriptor maps to.
+    RVA64 curr_rva = memory64_list->BaseRva;
+    for (ULONG i = 0; i < memory64_list->NumberOfMemoryRanges; ++i) {
+      MINIDUMP_MEMORY_DESCRIPTOR64& descr = memory64_list->MemoryRanges[i];
+      uintptr_t range_start =
+          static_cast<uintptr_t>(descr.StartOfMemoryRange);
+      uintptr_t range_end = range_start + static_cast<size_t>(descr.DataSize);
+
+      if (address >= range_start &&
+          address + structuresize < range_end) {
+        // The start address falls in the range, and the end address is
+        // in bounds, return a pointer to the structure if requested.
+        if (structure != NULL)
+          *structure = RVA_TO_ADDR(dump_file_view_, curr_rva);
+
+        return true;
+      }
+
+      // Advance the current RVA.
+      curr_rva += descr.DataSize;
+    }
+  }
+
+  return false;
+}
diff --git a/src/client/windows/unittests/dump_analysis.h b/src/client/windows/unittests/dump_analysis.h
new file mode 100644
index 0000000..6cef48d
--- /dev/null
+++ b/src/client/windows/unittests/dump_analysis.h
@@ -0,0 +1,102 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_UNITTESTS_DUMP_ANALYSIS_H_
+#define CLIENT_WINDOWS_UNITTESTS_DUMP_ANALYSIS_H_
+
+#include "client/windows/crash_generation/minidump_generator.h"
+
+// Convenience to get to the PEB pointer in a TEB.
+struct FakeTEB {
+  char dummy[0x30];
+  void* peb;
+};
+
+class DumpAnalysis {
+ public:
+  explicit DumpAnalysis(const std::wstring& file_path)
+      : dump_file_(file_path), dump_file_view_(NULL), dump_file_mapping_(NULL),
+        dump_file_handle_(NULL) {
+    EnsureDumpMapped();
+  }
+  ~DumpAnalysis();
+
+  bool HasStream(ULONG stream_number) const;
+
+  // This is template to keep type safety in the front, but we end up casting
+  // to void** inside the implementation to pass the pointer to Win32. So
+  // casting here is considered safe.
+  template <class StreamType>
+  size_t GetStream(ULONG stream_number, StreamType** stream) const {
+    return GetStreamImpl(stream_number, reinterpret_cast<void**>(stream));
+  }
+
+  bool HasTebs() const;
+  bool HasPeb() const;
+  bool HasMemory(ULONG64 address) const {
+    return HasMemory<BYTE>(address, NULL);
+  }
+
+  bool HasMemory(const void* address) const {
+    return HasMemory<BYTE>(address, NULL);
+  }
+
+  template <class StructureType>
+  bool HasMemory(ULONG64 address, StructureType** structure = NULL) const {
+    // We can't cope with 64 bit addresses for now.
+    if (address > 0xFFFFFFFFUL)
+      return false;
+
+    return HasMemory(reinterpret_cast<void*>(address), structure);
+  }
+
+  template <class StructureType>
+  bool HasMemory(const void* addr_in, StructureType** structure = NULL) const {
+    return HasMemoryImpl(addr_in, sizeof(StructureType),
+                             reinterpret_cast<void**>(structure));
+  }
+
+ protected:
+  void EnsureDumpMapped();
+
+  HANDLE dump_file_mapping_;
+  HANDLE dump_file_handle_;
+  void* dump_file_view_;
+  std::wstring dump_file_;
+
+ private:
+  // This is the implementation of GetStream<>.
+  size_t GetStreamImpl(ULONG stream_number, void** stream) const;
+
+  // This is the implementation of HasMemory<>.
+  bool HasMemoryImpl(const void* addr_in, size_t pointersize,
+                     void** structure) const;
+};
+
+#endif  // CLIENT_WINDOWS_UNITTESTS_DUMP_ANALYSIS_H_
diff --git a/src/client/windows/unittests/exception_handler_death_test.cc b/src/client/windows/unittests/exception_handler_death_test.cc
new file mode 100644
index 0000000..04034e8
--- /dev/null
+++ b/src/client/windows/unittests/exception_handler_death_test.cc
@@ -0,0 +1,587 @@
+// Copyright 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <strsafe.h>
+#include <objbase.h>
+#include <shellapi.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/crash_generation/crash_generation_server.h"
+#include "client/windows/handler/exception_handler.h"
+#include "client/windows/unittests/exception_handler_test.h"
+#include "common/windows/string_utils-inl.h"
+#include "google_breakpad/processor/minidump.h"
+
+namespace {
+
+using std::wstring;
+using namespace google_breakpad;
+
+const wchar_t kPipeName[] = L"\\\\.\\pipe\\BreakpadCrashTest\\TestCaseServer";
+const char kSuccessIndicator[] = "success";
+const char kFailureIndicator[] = "failure";
+
+// Utility function to test for a path's existence.
+BOOL DoesPathExist(const TCHAR* path_name);
+
+enum OutOfProcGuarantee {
+  OUT_OF_PROC_GUARANTEED,
+  OUT_OF_PROC_BEST_EFFORT,
+};
+
+class ExceptionHandlerDeathTest : public ::testing::Test {
+ protected:
+  // Member variable for each test that they can use
+  // for temporary storage.
+  TCHAR temp_path_[MAX_PATH];
+  // Actually constructs a temp path name.
+  virtual void SetUp();
+  // A helper method that tests can use to crash.
+  void DoCrashAccessViolation(const OutOfProcGuarantee out_of_proc_guarantee);
+  void DoCrashPureVirtualCall();
+};
+
+void ExceptionHandlerDeathTest::SetUp() {
+  const ::testing::TestInfo* const test_info =
+    ::testing::UnitTest::GetInstance()->current_test_info();
+  TCHAR temp_path[MAX_PATH] = { '\0' };
+  TCHAR test_name_wide[MAX_PATH] = { '\0' };
+  // We want the temporary directory to be what the OS returns
+  // to us, + the test case name.
+  GetTempPath(MAX_PATH, temp_path);
+  // The test case name is exposed as a c-style string,
+  // convert it to a wchar_t string.
+  int dwRet = MultiByteToWideChar(CP_ACP, 0, test_info->name(),
+                                  static_cast<int>(strlen(test_info->name())),
+                                  test_name_wide,
+                                  MAX_PATH);
+  if (!dwRet) {
+    assert(false);
+  }
+  StringCchPrintfW(temp_path_, MAX_PATH, L"%s%s", temp_path, test_name_wide);
+  CreateDirectory(temp_path_, NULL);
+}
+
+BOOL DoesPathExist(const TCHAR* path_name) {
+  DWORD flags = GetFileAttributes(path_name);
+  if (flags == INVALID_FILE_ATTRIBUTES) {
+    return FALSE;
+  }
+  return TRUE;
+}
+
+bool MinidumpWrittenCallback(const wchar_t* dump_path,
+                             const wchar_t* minidump_id,
+                             void* context,
+                             EXCEPTION_POINTERS* exinfo,
+                             MDRawAssertionInfo* assertion,
+                             bool succeeded) {
+  if (succeeded && DoesPathExist(dump_path)) {
+    fprintf(stderr, kSuccessIndicator);
+  } else {
+    fprintf(stderr, kFailureIndicator);
+  }
+  // If we don't flush, the output doesn't get sent before
+  // this process dies.
+  fflush(stderr);
+  return succeeded;
+}
+
+TEST_F(ExceptionHandlerDeathTest, InProcTest) {
+  // For the in-proc test, we just need to instantiate an exception
+  // handler in in-proc mode, and crash.   Since the entire test is
+  // reexecuted in the child process, we don't have to worry about
+  // the semantics of the exception handler being inherited/not
+  // inherited across CreateProcess().
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  scoped_ptr<google_breakpad::ExceptionHandler> exc(
+      new google_breakpad::ExceptionHandler(
+          temp_path_,
+          NULL,
+          &MinidumpWrittenCallback,
+          NULL,
+          google_breakpad::ExceptionHandler::HANDLER_ALL));
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  int* i = NULL;
+  ASSERT_DEATH((*i)++, kSuccessIndicator);
+}
+
+static bool gDumpCallbackCalled = false;
+
+void clientDumpCallback(void* dump_context,
+                        const google_breakpad::ClientInfo* client_info,
+                        const std::wstring* dump_path) {
+  gDumpCallbackCalled = true;
+}
+
+void ExceptionHandlerDeathTest::DoCrashAccessViolation(
+    const OutOfProcGuarantee out_of_proc_guarantee) {
+  scoped_ptr<google_breakpad::ExceptionHandler> exc;
+
+  if (out_of_proc_guarantee == OUT_OF_PROC_GUARANTEED) {
+    google_breakpad::CrashGenerationClient* client =
+        new google_breakpad::CrashGenerationClient(kPipeName,
+                                                   MiniDumpNormal,
+                                                   NULL);  // custom_info
+    ASSERT_TRUE(client->Register());
+    exc.reset(new google_breakpad::ExceptionHandler(
+        temp_path_,
+        NULL,   // filter
+        NULL,   // callback
+        NULL,   // callback_context
+        google_breakpad::ExceptionHandler::HANDLER_ALL,
+        client));
+  } else {
+    ASSERT_TRUE(out_of_proc_guarantee == OUT_OF_PROC_BEST_EFFORT);
+    exc.reset(new google_breakpad::ExceptionHandler(
+        temp_path_,
+        NULL,   // filter
+        NULL,   // callback
+        NULL,   // callback_context
+        google_breakpad::ExceptionHandler::HANDLER_ALL,
+        MiniDumpNormal,
+        kPipeName,
+        NULL));  // custom_info
+  }
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  // Although this is executing in the child process of the death test,
+  // if it's not true we'll still get an error rather than the crash
+  // being expected.
+  ASSERT_TRUE(exc->IsOutOfProcess());
+  int* i = NULL;
+  printf("%d\n", (*i)++);
+}
+
+TEST_F(ExceptionHandlerDeathTest, OutOfProcTest) {
+  // We can take advantage of a detail of google test here to save some
+  // complexity in testing: when you do a death test, it actually forks.
+  // So we can make the main test harness the crash generation server,
+  // and call ASSERT_DEATH on a NULL dereference, it to expecting test
+  // the out of process scenario, since it's happening in a different
+  // process!  This is different from the above because, above, we pass
+  // a NULL pipe name, and we also don't start a crash generation server.
+
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  std::wstring dump_path(temp_path_);
+  google_breakpad::CrashGenerationServer server(
+      kPipeName, NULL, NULL, NULL, &clientDumpCallback, NULL, NULL, NULL, NULL,
+      NULL, true, &dump_path);
+
+  // This HAS to be EXPECT_, because when this test case is executed in the
+  // child process, the server registration will fail due to the named pipe
+  // being the same.
+  EXPECT_TRUE(server.Start());
+  gDumpCallbackCalled = false;
+  ASSERT_DEATH(this->DoCrashAccessViolation(OUT_OF_PROC_BEST_EFFORT), "");
+  EXPECT_TRUE(gDumpCallbackCalled);
+}
+
+TEST_F(ExceptionHandlerDeathTest, OutOfProcGuaranteedTest) {
+  // This is similar to the previous test (OutOfProcTest).  The only difference
+  // is that in this test, the crash generation client is created and registered
+  // with the crash generation server outside of the ExceptionHandler
+  // constructor which allows breakpad users to opt out of the default
+  // in-process dump generation when the registration with the crash generation
+  // server fails.
+
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  std::wstring dump_path(temp_path_);
+  google_breakpad::CrashGenerationServer server(
+      kPipeName, NULL, NULL, NULL, &clientDumpCallback, NULL, NULL, NULL, NULL,
+      NULL, true, &dump_path);
+
+  // This HAS to be EXPECT_, because when this test case is executed in the
+  // child process, the server registration will fail due to the named pipe
+  // being the same.
+  EXPECT_TRUE(server.Start());
+  gDumpCallbackCalled = false;
+  ASSERT_DEATH(this->DoCrashAccessViolation(OUT_OF_PROC_GUARANTEED), "");
+  EXPECT_TRUE(gDumpCallbackCalled);
+}
+
+TEST_F(ExceptionHandlerDeathTest, InvalidParameterTest) {
+  using google_breakpad::ExceptionHandler;
+
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  ExceptionHandler handler(temp_path_, NULL, NULL, NULL,
+                           ExceptionHandler::HANDLER_INVALID_PARAMETER);
+
+  // Disable the message box for assertions
+  _CrtSetReportMode(_CRT_ASSERT, 0);
+
+  // Call with a bad argument. The invalid parameter will be swallowed
+  // and a dump will be generated, the process will exit(0).
+  ASSERT_EXIT(printf(NULL), ::testing::ExitedWithCode(0), "");
+}
+
+
+struct PureVirtualCallBase {
+  PureVirtualCallBase() {
+    // We have to reinterpret so the linker doesn't get confused because the
+    // method isn't defined.
+    reinterpret_cast<PureVirtualCallBase*>(this)->PureFunction();
+  }
+  virtual ~PureVirtualCallBase() {}
+  virtual void PureFunction() const = 0;
+};
+struct PureVirtualCall : public PureVirtualCallBase {
+  PureVirtualCall() { PureFunction(); }
+  virtual void PureFunction() const {}
+};
+
+void ExceptionHandlerDeathTest::DoCrashPureVirtualCall() {
+  PureVirtualCall instance;
+}
+
+TEST_F(ExceptionHandlerDeathTest, PureVirtualCallTest) {
+  using google_breakpad::ExceptionHandler;
+
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  ExceptionHandler handler(temp_path_, NULL, NULL, NULL,
+                           ExceptionHandler::HANDLER_PURECALL);
+
+  // Disable the message box for assertions
+  _CrtSetReportMode(_CRT_ASSERT, 0);
+
+  // Calls a pure virtual function.
+  EXPECT_EXIT(DoCrashPureVirtualCall(), ::testing::ExitedWithCode(0), "");
+}
+
+wstring find_minidump_in_directory(const wstring& directory) {
+  wstring search_path = directory + L"\\*";
+  WIN32_FIND_DATA find_data;
+  HANDLE find_handle = FindFirstFileW(search_path.c_str(), &find_data);
+  if (find_handle == INVALID_HANDLE_VALUE)
+    return wstring();
+
+  wstring filename;
+  do {
+    const wchar_t extension[] = L".dmp";
+    const size_t extension_length = sizeof(extension) / sizeof(extension[0]) - 1;
+    const size_t filename_length = wcslen(find_data.cFileName);
+    if (filename_length > extension_length &&
+    wcsncmp(extension,
+            find_data.cFileName + filename_length - extension_length,
+            extension_length) == 0) {
+      filename = directory + L"\\" + find_data.cFileName;
+      break;
+    }
+  } while (FindNextFile(find_handle, &find_data));
+  FindClose(find_handle);
+  return filename;
+}
+
+#ifndef ADDRESS_SANITIZER
+
+TEST_F(ExceptionHandlerDeathTest, InstructionPointerMemory) {
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  scoped_ptr<google_breakpad::ExceptionHandler> exc(
+      new google_breakpad::ExceptionHandler(
+          temp_path_,
+          NULL,
+          NULL,
+          NULL,
+          google_breakpad::ExceptionHandler::HANDLER_ALL));
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  // Get some executable memory.
+  const uint32_t kMemorySize = 256;  // bytes
+  const int kOffset = kMemorySize / 2;
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+  char* memory = reinterpret_cast<char*>(VirtualAlloc(NULL,
+                                                      kMemorySize,
+                                                      MEM_COMMIT | MEM_RESERVE,
+                                                      PAGE_EXECUTE_READWRITE));
+  ASSERT_TRUE(memory);
+
+  // Write some instructions that will crash. Put them
+  // in the middle of the block of memory, because the
+  // minidump should contain 128 bytes on either side of the
+  // instruction pointer.
+  memcpy(memory + kOffset, instructions, sizeof(instructions));
+
+  // Now execute the instructions, which should crash.
+  typedef void (*void_function)(void);
+  void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+  ASSERT_DEATH(memory_function(), "");
+
+  // free the memory.
+  VirtualFree(memory, 0, MEM_RELEASE);
+
+  // Verify that the resulting minidump contains the memory around the IP
+  wstring minidump_filename_wide = find_minidump_in_directory(temp_path_);
+  ASSERT_FALSE(minidump_filename_wide.empty());
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(minidump_filename_wide,
+                                                &minidump_filename));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers at least 128 bytes on either
+  // side of the instruction pointer from the exception record.
+  {
+    Minidump minidump(minidump_filename);
+    ASSERT_TRUE(minidump.Read());
+
+    MinidumpException* exception = minidump.GetException();
+    MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+    ASSERT_TRUE(exception);
+    ASSERT_TRUE(memory_list);
+    ASSERT_LT((unsigned)0, memory_list->region_count());
+
+    MinidumpContext* context = exception->GetContext();
+    ASSERT_TRUE(context);
+
+    uint64_t instruction_pointer;
+    ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+    MinidumpMemoryRegion* region =
+        memory_list->GetMemoryRegionForAddress(instruction_pointer);
+    ASSERT_TRUE(region);
+
+    EXPECT_LE(kMemorySize, region->GetSize());
+    const uint8_t* bytes = region->GetMemory();
+    ASSERT_TRUE(bytes);
+
+    uint64_t ip_offset = instruction_pointer - region->GetBase();
+    EXPECT_GE(region->GetSize() - kOffset, ip_offset);
+    EXPECT_LE(kOffset, ip_offset);
+
+    uint8_t prefix_bytes[kOffset];
+    uint8_t suffix_bytes[kMemorySize - kOffset - sizeof(instructions)];
+    memset(prefix_bytes, 0, sizeof(prefix_bytes));
+    memset(suffix_bytes, 0, sizeof(suffix_bytes));
+    EXPECT_EQ(0, memcmp(bytes + ip_offset - kOffset, prefix_bytes,
+                        sizeof(prefix_bytes)));
+    EXPECT_EQ(0, memcmp(bytes + ip_offset, instructions, sizeof(instructions)));
+    EXPECT_EQ(0, memcmp(bytes + ip_offset + sizeof(instructions), suffix_bytes,
+                        sizeof(suffix_bytes)));
+  }
+
+  DeleteFileW(minidump_filename_wide.c_str());
+}
+
+TEST_F(ExceptionHandlerDeathTest, InstructionPointerMemoryMinBound) {
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  scoped_ptr<google_breakpad::ExceptionHandler> exc(
+      new google_breakpad::ExceptionHandler(
+          temp_path_,
+          NULL,
+          NULL,
+          NULL,
+          google_breakpad::ExceptionHandler::HANDLER_ALL));
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  SYSTEM_INFO sSysInfo;         // Useful information about the system
+  GetSystemInfo(&sSysInfo);     // Initialize the structure.
+
+  const uint32_t kMemorySize = 256;  // bytes
+  const DWORD kPageSize = sSysInfo.dwPageSize;
+  const int kOffset = 0;
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+  // Get some executable memory. Specifically, reserve two pages,
+  // but only commit the second.
+  char* all_memory = reinterpret_cast<char*>(VirtualAlloc(NULL,
+                                                          kPageSize * 2,
+                                                          MEM_RESERVE,
+                                                          PAGE_NOACCESS));
+  ASSERT_TRUE(all_memory);
+  char* memory = all_memory + kPageSize;
+  ASSERT_TRUE(VirtualAlloc(memory, kPageSize,
+                           MEM_COMMIT, PAGE_EXECUTE_READWRITE));
+
+  // Write some instructions that will crash. Put them
+  // in the middle of the block of memory, because the
+  // minidump should contain 128 bytes on either side of the
+  // instruction pointer.
+  memcpy(memory + kOffset, instructions, sizeof(instructions));
+
+  // Now execute the instructions, which should crash.
+  typedef void (*void_function)(void);
+  void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+  ASSERT_DEATH(memory_function(), "");
+
+  // free the memory.
+  VirtualFree(memory, 0, MEM_RELEASE);
+
+  // Verify that the resulting minidump contains the memory around the IP
+  wstring minidump_filename_wide = find_minidump_in_directory(temp_path_);
+  ASSERT_FALSE(minidump_filename_wide.empty());
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(minidump_filename_wide,
+                                                &minidump_filename));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  {
+    Minidump minidump(minidump_filename);
+    ASSERT_TRUE(minidump.Read());
+
+    MinidumpException* exception = minidump.GetException();
+    MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+    ASSERT_TRUE(exception);
+    ASSERT_TRUE(memory_list);
+    ASSERT_LT((unsigned)0, memory_list->region_count());
+
+    MinidumpContext* context = exception->GetContext();
+    ASSERT_TRUE(context);
+
+    uint64_t instruction_pointer;
+    ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+    MinidumpMemoryRegion* region =
+        memory_list->GetMemoryRegionForAddress(instruction_pointer);
+    ASSERT_TRUE(region);
+
+    EXPECT_EQ(kMemorySize / 2, region->GetSize());
+    const uint8_t* bytes = region->GetMemory();
+    ASSERT_TRUE(bytes);
+
+    uint8_t suffix_bytes[kMemorySize / 2 - sizeof(instructions)];
+    memset(suffix_bytes, 0, sizeof(suffix_bytes));
+    EXPECT_TRUE(memcmp(bytes + kOffset,
+                       instructions, sizeof(instructions)) == 0);
+    EXPECT_TRUE(memcmp(bytes + kOffset + sizeof(instructions),
+                       suffix_bytes, sizeof(suffix_bytes)) == 0);
+  }
+
+  DeleteFileW(minidump_filename_wide.c_str());
+}
+
+TEST_F(ExceptionHandlerDeathTest, InstructionPointerMemoryMaxBound) {
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  scoped_ptr<google_breakpad::ExceptionHandler> exc(
+      new google_breakpad::ExceptionHandler(
+          temp_path_,
+          NULL,
+          NULL,
+          NULL,
+          google_breakpad::ExceptionHandler::HANDLER_ALL));
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  SYSTEM_INFO sSysInfo;         // Useful information about the system
+  GetSystemInfo(&sSysInfo);     // Initialize the structure.
+
+  const DWORD kPageSize = sSysInfo.dwPageSize;
+  // This crashes with SIGILL on x86/x86-64/arm.
+  const unsigned char instructions[] = { 0xff, 0xff, 0xff, 0xff };
+  const int kOffset = kPageSize - sizeof(instructions);
+  // Get some executable memory. Specifically, reserve two pages,
+  // but only commit the first.
+  char* memory = reinterpret_cast<char*>(VirtualAlloc(NULL,
+                                                      kPageSize * 2,
+                                                      MEM_RESERVE,
+                                                      PAGE_NOACCESS));
+  ASSERT_TRUE(memory);
+  ASSERT_TRUE(VirtualAlloc(memory, kPageSize,
+                           MEM_COMMIT, PAGE_EXECUTE_READWRITE));
+
+  // Write some instructions that will crash.
+  memcpy(memory + kOffset, instructions, sizeof(instructions));
+
+  // Now execute the instructions, which should crash.
+  typedef void (*void_function)(void);
+  void_function memory_function =
+      reinterpret_cast<void_function>(memory + kOffset);
+  ASSERT_DEATH(memory_function(), "");
+
+  // free the memory.
+  VirtualFree(memory, 0, MEM_RELEASE);
+
+  // Verify that the resulting minidump contains the memory around the IP
+  wstring minidump_filename_wide = find_minidump_in_directory(temp_path_);
+  ASSERT_FALSE(minidump_filename_wide.empty());
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(minidump_filename_wide,
+                                                &minidump_filename));
+
+  // Read the minidump. Locate the exception record and the
+  // memory list, and then ensure that there is a memory region
+  // in the memory list that covers the instruction pointer from
+  // the exception record.
+  {
+    Minidump minidump(minidump_filename);
+    ASSERT_TRUE(minidump.Read());
+
+    MinidumpException* exception = minidump.GetException();
+    MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+    ASSERT_TRUE(exception);
+    ASSERT_TRUE(memory_list);
+    ASSERT_LT((unsigned)0, memory_list->region_count());
+
+    MinidumpContext* context = exception->GetContext();
+    ASSERT_TRUE(context);
+
+    uint64_t instruction_pointer;
+    ASSERT_TRUE(context->GetInstructionPointer(&instruction_pointer));
+
+    MinidumpMemoryRegion* region =
+        memory_list->GetMemoryRegionForAddress(instruction_pointer);
+    ASSERT_TRUE(region);
+
+    const size_t kPrefixSize = 128;  // bytes
+    EXPECT_EQ(kPrefixSize + sizeof(instructions), region->GetSize());
+    const uint8_t* bytes = region->GetMemory();
+    ASSERT_TRUE(bytes);
+
+    uint8_t prefix_bytes[kPrefixSize];
+    memset(prefix_bytes, 0, sizeof(prefix_bytes));
+    EXPECT_EQ(0, memcmp(bytes, prefix_bytes, sizeof(prefix_bytes)));
+    EXPECT_EQ(0, memcmp(bytes + kPrefixSize,
+                        instructions, sizeof(instructions)));
+  }
+
+  DeleteFileW(minidump_filename_wide.c_str());
+}
+
+#endif  // !ADDRESS_SANITIZER
+
+}  // namespace
diff --git a/src/client/windows/unittests/exception_handler_nesting_test.cc b/src/client/windows/unittests/exception_handler_nesting_test.cc
new file mode 100644
index 0000000..e24bd18
--- /dev/null
+++ b/src/client/windows/unittests/exception_handler_nesting_test.cc
@@ -0,0 +1,327 @@
+// Copyright 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <windows.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/handler/exception_handler.h"
+#include "client/windows/unittests/exception_handler_test.h"
+
+namespace {
+
+const char kFoo[] = "foo";
+const char kBar[] = "bar";
+
+const char kStartOfLine[] = "^";
+const char kEndOfLine[] = "$";
+
+const char kFilterReturnsTrue[] = "filter_returns_true";
+const char kFilterReturnsFalse[] = "filter_returns_false";
+
+const char kCallbackReturnsTrue[] = "callback_returns_true";
+const char kCallbackReturnsFalse[] = "callback_returns_false";
+
+bool DoesPathExist(const wchar_t* path_name) {
+  DWORD flags = GetFileAttributes(path_name);
+  if (flags == INVALID_FILE_ATTRIBUTES) {
+    return false;
+  }
+  return true;
+}
+
+// A callback function to run before Breakpad performs any substantial
+// processing of an exception.  A FilterCallback is called before writing
+// a minidump.  context is the parameter supplied by the user as
+// callback_context when the handler was created.  exinfo points to the
+// exception record, if any; assertion points to assertion information,
+// if any.
+//
+// If a FilterCallback returns true, Breakpad will continue processing,
+// attempting to write a minidump.  If a FilterCallback returns false,
+// Breakpad will immediately report the exception as unhandled without
+// writing a minidump, allowing another handler the opportunity to handle it.
+template <bool filter_return_value>
+bool CrashHandlerFilter(void* context,
+                        EXCEPTION_POINTERS* exinfo,
+                        MDRawAssertionInfo* assertion) {
+  if (filter_return_value) {
+    fprintf(stderr, kFilterReturnsTrue);
+  } else {
+    fprintf(stderr, kFilterReturnsFalse);
+  }
+  fflush(stderr);
+
+  return filter_return_value;
+}
+
+// A callback function to run after the minidump has been written.
+// minidump_id is a unique id for the dump, so the minidump
+// file is <dump_path>\<minidump_id>.dmp.  context is the parameter supplied
+// by the user as callback_context when the handler was created.  exinfo
+// points to the exception record, or NULL if no exception occurred.
+// succeeded indicates whether a minidump file was successfully written.
+// assertion points to information about an assertion if the handler was
+// invoked by an assertion.
+//
+// If an exception occurred and the callback returns true, Breakpad will treat
+// the exception as fully-handled, suppressing any other handlers from being
+// notified of the exception.  If the callback returns false, Breakpad will
+// treat the exception as unhandled, and allow another handler to handle it.
+// If there are no other handlers, Breakpad will report the exception to the
+// system as unhandled, allowing a debugger or native crash dialog the
+// opportunity to handle the exception.  Most callback implementations
+// should normally return the value of |succeeded|, or when they wish to
+// not report an exception of handled, false.  Callbacks will rarely want to
+// return true directly (unless |succeeded| is true).
+//
+// For out-of-process dump generation, dump path and minidump ID will always
+// be NULL. In case of out-of-process dump generation, the dump path and
+// minidump id are controlled by the server process and are not communicated
+// back to the crashing process.
+template <bool callback_return_value>
+bool MinidumpWrittenCallback(const wchar_t* dump_path,
+                             const wchar_t* minidump_id,
+                             void* context,
+                             EXCEPTION_POINTERS* exinfo,
+                             MDRawAssertionInfo* assertion,
+                             bool succeeded) {
+  bool rv = false;
+  if (callback_return_value &&
+      succeeded &&
+      DoesPathExist(dump_path)) {
+    rv = true;
+    fprintf(stderr, kCallbackReturnsTrue);
+  } else {
+    fprintf(stderr, kCallbackReturnsFalse);
+  }
+  fflush(stderr);
+
+  return rv;
+}
+
+
+void DoCrash(const char* message) {
+  if (message) {
+    fprintf(stderr, "%s", message);
+    fflush(stderr);
+  }
+  int* i = NULL;
+  (*i)++;
+
+  ASSERT_TRUE(false);
+}
+
+void InstallExceptionHandlerAndCrash(bool install_filter,
+                                     bool filter_return_value,
+                                     bool install_callback,
+                                     bool callback_return_value) {
+  wchar_t temp_path[MAX_PATH] = { '\0' };
+  GetTempPath(MAX_PATH, temp_path);
+
+  ASSERT_TRUE(DoesPathExist(temp_path));
+  google_breakpad::ExceptionHandler exc(
+      temp_path,
+      install_filter ?
+        (filter_return_value ?
+          &CrashHandlerFilter<true> :
+          &CrashHandlerFilter<false>) :
+        NULL,
+      install_callback ?
+        (callback_return_value ?
+          &MinidumpWrittenCallback<true> :
+          &MinidumpWrittenCallback<false>) :
+        NULL,
+      NULL,  // callback_context
+      google_breakpad::ExceptionHandler::HANDLER_EXCEPTION);
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  DoCrash(NULL);
+}
+
+TEST(AssertDeathSanity, Simple) {
+  ASSERT_DEATH(DoCrash(NULL), "");
+}
+
+TEST(AssertDeathSanity, Regex) {
+  ASSERT_DEATH(DoCrash(kFoo),
+    std::string(kStartOfLine) +
+      std::string(kFoo) +
+      std::string(kEndOfLine));
+
+  ASSERT_DEATH(DoCrash(kBar),
+    std::string(kStartOfLine) +
+      std::string(kBar) +
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerCallbacks, FilterTrue_No_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,    // install_filter
+                                    true,    // filter_return_value
+                                    false,   // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsTrue) +
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerCallbacks, FilterTrue_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,    // install_filter
+                                    true,    // filter_return_value
+                                    true,    // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsTrue) +
+      std::string(kCallbackReturnsFalse) +
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerCallbacks, FilterFalse_No_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,    // install_filter
+                                    false,   // filter_return_value
+                                    false,   // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsFalse) +
+      std::string(kEndOfLine));
+}
+
+// Callback shouldn't be executed when filter returns false
+TEST(ExceptionHandlerCallbacks, FilterFalse_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,    // install_filter
+                                    false,   // filter_return_value
+                                    true,    // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsFalse) +
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerCallbacks, No_Filter_No_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(false,   // install_filter
+                                    true,    // filter_return_value
+                                    false,   // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerCallbacks, No_Filter_Callback) {
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(false,   // install_filter
+                                    true,    // filter_return_value
+                                    true,    // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kCallbackReturnsFalse) +
+      std::string(kEndOfLine));
+}
+
+
+TEST(ExceptionHandlerNesting, Skip_From_Inner_Filter) {
+  wchar_t temp_path[MAX_PATH] = { '\0' };
+  GetTempPath(MAX_PATH, temp_path);
+
+  ASSERT_TRUE(DoesPathExist(temp_path));
+  google_breakpad::ExceptionHandler exc(
+      temp_path,
+      &CrashHandlerFilter<true>,
+      &MinidumpWrittenCallback<false>,
+      NULL,  // callback_context
+      google_breakpad::ExceptionHandler::HANDLER_EXCEPTION);
+
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,   // install_filter
+                                    false,  // filter_return_value
+                                    true,   // install_callback
+                                    true),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsFalse) +    // inner filter
+      std::string(kFilterReturnsTrue) +     // outer filter
+      std::string(kCallbackReturnsFalse) +  // outer callback
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerNesting, Skip_From_Inner_Callback) {
+  wchar_t temp_path[MAX_PATH] = { '\0' };
+  GetTempPath(MAX_PATH, temp_path);
+
+  ASSERT_TRUE(DoesPathExist(temp_path));
+  google_breakpad::ExceptionHandler exc(
+      temp_path,
+      &CrashHandlerFilter<true>,
+      &MinidumpWrittenCallback<false>,
+      NULL,  // callback_context
+      google_breakpad::ExceptionHandler::HANDLER_EXCEPTION);
+
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,    // install_filter
+                                    true,    // filter_return_value
+                                    true,    // install_callback
+                                    false),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsTrue) +      // inner filter
+      std::string(kCallbackReturnsFalse) +   // inner callback
+      std::string(kFilterReturnsTrue) +      // outer filter
+      std::string(kCallbackReturnsFalse) +   // outer callback
+      std::string(kEndOfLine));
+}
+
+TEST(ExceptionHandlerNesting, Handled_By_Inner_Handler) {
+  wchar_t temp_path[MAX_PATH] = { '\0' };
+  GetTempPath(MAX_PATH, temp_path);
+
+  ASSERT_TRUE(DoesPathExist(temp_path));
+  google_breakpad::ExceptionHandler exc(
+      temp_path,
+      &CrashHandlerFilter<true>,
+      &MinidumpWrittenCallback<true>,
+      NULL,  // callback_context
+      google_breakpad::ExceptionHandler::HANDLER_EXCEPTION);
+
+  ASSERT_DEATH(
+    InstallExceptionHandlerAndCrash(true,   // install_filter
+                                    true,   // filter_return_value
+                                    true,   // install_callback
+                                    true),  // callback_return_value
+    std::string(kStartOfLine) +
+      std::string(kFilterReturnsTrue) +    // inner filter
+      std::string(kCallbackReturnsTrue) +  // inner callback
+      std::string(kEndOfLine));
+}
+
+}  // namespace
diff --git a/src/client/windows/unittests/exception_handler_test.cc b/src/client/windows/unittests/exception_handler_test.cc
new file mode 100644
index 0000000..51196ca
--- /dev/null
+++ b/src/client/windows/unittests/exception_handler_test.cc
@@ -0,0 +1,503 @@
+// Copyright 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "client/windows/unittests/exception_handler_test.h"
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <strsafe.h>
+#include <objbase.h>
+#include <shellapi.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/crash_generation/crash_generation_server.h"
+#include "client/windows/handler/exception_handler.h"
+#include "client/windows/unittests/dump_analysis.h"  // NOLINT
+#include "common/windows/string_utils-inl.h"
+#include "google_breakpad/processor/minidump.h"
+
+namespace testing {
+
+DisableExceptionHandlerInScope::DisableExceptionHandlerInScope() {
+  catch_exceptions_ = GTEST_FLAG(catch_exceptions);
+  GTEST_FLAG(catch_exceptions) = false;
+}
+
+DisableExceptionHandlerInScope::~DisableExceptionHandlerInScope() {
+  GTEST_FLAG(catch_exceptions) = catch_exceptions_;
+}
+
+}  // namespace testing
+
+namespace {
+
+using std::wstring;
+using namespace google_breakpad;
+
+const wchar_t kPipeName[] = L"\\\\.\\pipe\\BreakpadCrashTest\\TestCaseServer";
+const char kSuccessIndicator[] = "success";
+const char kFailureIndicator[] = "failure";
+
+const MINIDUMP_TYPE kFullDumpType = static_cast<MINIDUMP_TYPE>(
+    MiniDumpWithFullMemory |  // Full memory from process.
+    MiniDumpWithProcessThreadData |  // Get PEB and TEB.
+    MiniDumpWithHandleData);  // Get all handle information.
+
+class ExceptionHandlerTest : public ::testing::Test {
+ protected:
+  // Member variable for each test that they can use
+  // for temporary storage.
+  TCHAR temp_path_[MAX_PATH];
+
+  // Actually constructs a temp path name.
+  virtual void SetUp();
+
+  // Deletes temporary files.
+  virtual void TearDown();
+
+  void DoCrashInvalidParameter();
+  void DoCrashPureVirtualCall();
+
+  // Utility function to test for a path's existence.
+  static BOOL DoesPathExist(const TCHAR* path_name);
+
+  // Client callback.
+  static void ClientDumpCallback(
+      void* dump_context,
+      const google_breakpad::ClientInfo* client_info,
+      const std::wstring* dump_path);
+
+  static bool DumpCallback(const wchar_t* dump_path,
+                           const wchar_t* minidump_id,
+                           void* context,
+                           EXCEPTION_POINTERS* exinfo,
+                           MDRawAssertionInfo* assertion,
+                           bool succeeded);
+
+  static std::wstring dump_file;
+  static std::wstring full_dump_file;
+};
+
+std::wstring ExceptionHandlerTest::dump_file;
+std::wstring ExceptionHandlerTest::full_dump_file;
+
+void ExceptionHandlerTest::SetUp() {
+  const ::testing::TestInfo* const test_info =
+    ::testing::UnitTest::GetInstance()->current_test_info();
+  TCHAR temp_path[MAX_PATH] = { '\0' };
+  TCHAR test_name_wide[MAX_PATH] = { '\0' };
+  // We want the temporary directory to be what the OS returns
+  // to us, + the test case name.
+  GetTempPath(MAX_PATH, temp_path);
+  // THe test case name is exposed to use as a c-style string,
+  // But we might be working in UNICODE here on Windows.
+  int dwRet = MultiByteToWideChar(CP_ACP, 0, test_info->name(),
+                                  static_cast<int>(strlen(test_info->name())),
+                                  test_name_wide,
+                                  MAX_PATH);
+  if (!dwRet) {
+    assert(false);
+  }
+  StringCchPrintfW(temp_path_, MAX_PATH, L"%s%s", temp_path, test_name_wide);
+  CreateDirectory(temp_path_, NULL);
+}
+
+void ExceptionHandlerTest::TearDown() {
+  if (!dump_file.empty()) {
+    ::DeleteFile(dump_file.c_str());
+    dump_file = L"";
+  }
+  if (!full_dump_file.empty()) {
+    ::DeleteFile(full_dump_file.c_str());
+    full_dump_file = L"";
+  }
+}
+
+BOOL ExceptionHandlerTest::DoesPathExist(const TCHAR* path_name) {
+  DWORD flags = GetFileAttributes(path_name);
+  if (flags == INVALID_FILE_ATTRIBUTES) {
+    return FALSE;
+  }
+  return TRUE;
+}
+
+// static
+void ExceptionHandlerTest::ClientDumpCallback(
+    void* dump_context,
+    const google_breakpad::ClientInfo* client_info,
+    const wstring* dump_path) {
+  dump_file = *dump_path;
+  // Create the full dump file name from the dump path.
+  full_dump_file = dump_file.substr(0, dump_file.length() - 4) + L"-full.dmp";
+}
+
+// static
+bool ExceptionHandlerTest::DumpCallback(const wchar_t* dump_path,
+                    const wchar_t* minidump_id,
+                    void* context,
+                    EXCEPTION_POINTERS* exinfo,
+                    MDRawAssertionInfo* assertion,
+                    bool succeeded) {
+  dump_file = dump_path;
+  dump_file += L"\\";
+  dump_file += minidump_id;
+  dump_file += L".dmp";
+    return succeeded;
+}
+
+void ExceptionHandlerTest::DoCrashInvalidParameter() {
+  google_breakpad::ExceptionHandler* exc =
+      new google_breakpad::ExceptionHandler(
+          temp_path_, NULL, NULL, NULL,
+          google_breakpad::ExceptionHandler::HANDLER_INVALID_PARAMETER,
+          kFullDumpType, kPipeName, NULL);
+
+  // Disable the message box for assertions
+  _CrtSetReportMode(_CRT_ASSERT, 0);
+
+  // Although this is executing in the child process of the death test,
+  // if it's not true we'll still get an error rather than the crash
+  // being expected.
+  ASSERT_TRUE(exc->IsOutOfProcess());
+  printf(NULL);
+}
+
+
+struct PureVirtualCallBase {
+  PureVirtualCallBase() {
+    // We have to reinterpret so the linker doesn't get confused because the
+    // method isn't defined.
+    reinterpret_cast<PureVirtualCallBase*>(this)->PureFunction();
+  }
+  virtual ~PureVirtualCallBase() {}
+  virtual void PureFunction() const = 0;
+};
+struct PureVirtualCall : public PureVirtualCallBase {
+  PureVirtualCall() { PureFunction(); }
+  virtual void PureFunction() const {}
+};
+
+void ExceptionHandlerTest::DoCrashPureVirtualCall() {
+  google_breakpad::ExceptionHandler* exc =
+      new google_breakpad::ExceptionHandler(
+          temp_path_, NULL, NULL, NULL,
+          google_breakpad::ExceptionHandler::HANDLER_PURECALL,
+          kFullDumpType, kPipeName, NULL);
+
+  // Disable the message box for assertions
+  _CrtSetReportMode(_CRT_ASSERT, 0);
+
+  // Although this is executing in the child process of the death test,
+  // if it's not true we'll still get an error rather than the crash
+  // being expected.
+  ASSERT_TRUE(exc->IsOutOfProcess());
+
+  // Create a new frame to ensure PureVirtualCall is not optimized to some
+  // other line in this function.
+  {
+    PureVirtualCall instance;
+  }
+}
+
+// This test validates that the minidump is written correctly.
+TEST_F(ExceptionHandlerTest, InvalidParameterMiniDumpTest) {
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+
+  // Call with a bad argument
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  wstring dump_path(temp_path_);
+  google_breakpad::CrashGenerationServer server(
+      kPipeName, NULL, NULL, NULL, ClientDumpCallback, NULL, NULL, NULL, NULL,
+      NULL, true, &dump_path);
+
+  ASSERT_TRUE(dump_file.empty() && full_dump_file.empty());
+
+  // This HAS to be EXPECT_, because when this test case is executed in the
+  // child process, the server registration will fail due to the named pipe
+  // being the same.
+  EXPECT_TRUE(server.Start());
+  EXPECT_EXIT(DoCrashInvalidParameter(), ::testing::ExitedWithCode(0), "");
+  ASSERT_TRUE(!dump_file.empty() && !full_dump_file.empty());
+  ASSERT_TRUE(DoesPathExist(dump_file.c_str()));
+  ASSERT_TRUE(DoesPathExist(full_dump_file.c_str()));
+
+  // Verify the dump for infos.
+  DumpAnalysis mini(dump_file);
+  DumpAnalysis full(full_dump_file);
+
+  // The dump should have all of these streams.
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(full.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(full.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(full.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(full.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+  EXPECT_TRUE(full.HasStream(MiscInfoStream));
+  EXPECT_TRUE(mini.HasStream(HandleDataStream));
+  EXPECT_TRUE(full.HasStream(HandleDataStream));
+
+  // We expect PEB and TEBs in this dump.
+  EXPECT_TRUE(mini.HasTebs() || full.HasTebs());
+  EXPECT_TRUE(mini.HasPeb() || full.HasPeb());
+
+  // Minidump should have a memory listing, but no 64-bit memory.
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+
+  EXPECT_FALSE(full.HasStream(MemoryListStream));
+  EXPECT_TRUE(full.HasStream(Memory64ListStream));
+
+  // This is the only place we don't use OR because we want both not
+  // to have the streams.
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(full.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(full.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(full.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(full.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(full.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(full.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(full.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+  EXPECT_FALSE(full.HasStream(TokenStream));
+}
+
+
+// This test validates that the minidump is written correctly.
+TEST_F(ExceptionHandlerTest, PureVirtualCallMiniDumpTest) {
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+
+  // Call with a bad argument
+  ASSERT_TRUE(DoesPathExist(temp_path_));
+  wstring dump_path(temp_path_);
+  google_breakpad::CrashGenerationServer server(
+      kPipeName, NULL, NULL, NULL, ClientDumpCallback, NULL, NULL, NULL, NULL,
+      NULL, true, &dump_path);
+
+  ASSERT_TRUE(dump_file.empty() && full_dump_file.empty());
+
+  // This HAS to be EXPECT_, because when this test case is executed in the
+  // child process, the server registration will fail due to the named pipe
+  // being the same.
+  EXPECT_TRUE(server.Start());
+  EXPECT_EXIT(DoCrashPureVirtualCall(), ::testing::ExitedWithCode(0), "");
+  ASSERT_TRUE(!dump_file.empty() && !full_dump_file.empty());
+  ASSERT_TRUE(DoesPathExist(dump_file.c_str()));
+  ASSERT_TRUE(DoesPathExist(full_dump_file.c_str()));
+
+  // Verify the dump for infos.
+  DumpAnalysis mini(dump_file);
+  DumpAnalysis full(full_dump_file);
+
+  // The dump should have all of these streams.
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(full.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(full.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(full.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(full.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+  EXPECT_TRUE(full.HasStream(MiscInfoStream));
+  EXPECT_TRUE(mini.HasStream(HandleDataStream));
+  EXPECT_TRUE(full.HasStream(HandleDataStream));
+
+  // We expect PEB and TEBs in this dump.
+  EXPECT_TRUE(mini.HasTebs() || full.HasTebs());
+  EXPECT_TRUE(mini.HasPeb() || full.HasPeb());
+
+  // Minidump should have a memory listing, but no 64-bit memory.
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+
+  EXPECT_FALSE(full.HasStream(MemoryListStream));
+  EXPECT_TRUE(full.HasStream(Memory64ListStream));
+
+  // This is the only place we don't use OR because we want both not
+  // to have the streams.
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(full.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(full.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(full.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(full.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(full.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(full.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(full.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+  EXPECT_FALSE(full.HasStream(TokenStream));
+}
+
+// Test that writing a minidump produces a valid minidump containing
+// some expected structures.
+TEST_F(ExceptionHandlerTest, WriteMinidumpTest) {
+  ExceptionHandler handler(temp_path_,
+                           NULL,
+                           DumpCallback,
+                           NULL,
+                           ExceptionHandler::HANDLER_ALL);
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  ASSERT_TRUE(handler.WriteMinidump());
+  ASSERT_FALSE(dump_file.empty());
+
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(dump_file,
+                                                &minidump_filename));
+
+  // Read the minidump and verify some info.
+  Minidump minidump(minidump_filename);
+  ASSERT_TRUE(minidump.Read());
+  // TODO(ted): more comprehensive tests...
+}
+
+// Test that an additional memory region can be included in the minidump.
+TEST_F(ExceptionHandlerTest, AdditionalMemory) {
+  SYSTEM_INFO si;
+  GetSystemInfo(&si);
+  const uint32_t kMemorySize = si.dwPageSize;
+
+  // Get some heap memory.
+  uint8_t* memory = new uint8_t[kMemorySize];
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  // Stick some data into the memory so the contents can be verified.
+  for (uint32_t i = 0; i < kMemorySize; ++i) {
+    memory[i] = i % 255;
+  }
+
+  ExceptionHandler handler(temp_path_,
+                           NULL,
+                           DumpCallback,
+                           NULL,
+                           ExceptionHandler::HANDLER_ALL);
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  // Add the memory region to the list of memory to be included.
+  handler.RegisterAppMemory(memory, kMemorySize);
+  ASSERT_TRUE(handler.WriteMinidump());
+  ASSERT_FALSE(dump_file.empty());
+
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(dump_file,
+                                                &minidump_filename));
+
+  // Read the minidump. Ensure that the memory region is present
+  Minidump minidump(minidump_filename);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* dump_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(dump_memory_list);
+  const MinidumpMemoryRegion* region =
+    dump_memory_list->GetMemoryRegionForAddress(kMemoryAddress);
+  ASSERT_TRUE(region);
+
+  EXPECT_EQ(kMemoryAddress, region->GetBase());
+  EXPECT_EQ(kMemorySize, region->GetSize());
+
+  // Verify memory contents.
+  EXPECT_EQ(0, memcmp(region->GetMemory(), memory, kMemorySize));
+
+  delete[] memory;
+}
+
+// Test that a memory region that was previously registered
+// can be unregistered.
+TEST_F(ExceptionHandlerTest, AdditionalMemoryRemove) {
+  SYSTEM_INFO si;
+  GetSystemInfo(&si);
+  const uint32_t kMemorySize = si.dwPageSize;
+
+  // Get some heap memory.
+  uint8_t* memory = new uint8_t[kMemorySize];
+  const uintptr_t kMemoryAddress = reinterpret_cast<uintptr_t>(memory);
+  ASSERT_TRUE(memory);
+
+  // Stick some data into the memory so the contents can be verified.
+  for (uint32_t i = 0; i < kMemorySize; ++i) {
+    memory[i] = i % 255;
+  }
+
+  ExceptionHandler handler(temp_path_,
+                           NULL,
+                           DumpCallback,
+                           NULL,
+                           ExceptionHandler::HANDLER_ALL);
+
+  // Disable GTest SEH handler
+  testing::DisableExceptionHandlerInScope disable_exception_handler;
+
+  // Add the memory region to the list of memory to be included.
+  handler.RegisterAppMemory(memory, kMemorySize);
+
+  // ...and then remove it
+  handler.UnregisterAppMemory(memory);
+
+  ASSERT_TRUE(handler.WriteMinidump());
+  ASSERT_FALSE(dump_file.empty());
+
+  string minidump_filename;
+  ASSERT_TRUE(WindowsStringUtils::safe_wcstombs(dump_file,
+                                                &minidump_filename));
+
+  // Read the minidump. Ensure that the memory region is not present.
+  Minidump minidump(minidump_filename);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpMemoryList* dump_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(dump_memory_list);
+  const MinidumpMemoryRegion* region =
+    dump_memory_list->GetMemoryRegionForAddress(kMemoryAddress);
+  EXPECT_FALSE(region);
+
+  delete[] memory;
+}
+
+}  // namespace
diff --git a/src/client/windows/unittests/exception_handler_test.h b/src/client/windows/unittests/exception_handler_test.h
new file mode 100644
index 0000000..ef973e5
--- /dev/null
+++ b/src/client/windows/unittests/exception_handler_test.h
@@ -0,0 +1,61 @@
+// Copyright 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef CLIENT_WINDOWS_UNITTESTS_EXCEPTION_HANDLER_TEST_H_
+#define CLIENT_WINDOWS_UNITTESTS_EXCEPTION_HANDLER_TEST_H_
+
+namespace testing {
+
+// By default, GTest (on Windows) installs a SEH filter (and a handler) before
+// starting to run all the tests in order to avoid test interruptions is some
+// of the tests are crashing.  Unfortunately, this functionality prevents the
+// execution to reach the UnhandledExceptionFilter installed by Google-Breakpad
+// ExceptionHandler so in order to test the Google-Breakpad exception handling
+// code the exception handling done by GTest must be disabled.
+// Usage:
+//
+//  google_breakpad::ExceptionHandler exc(...);
+//
+//  // Disable GTest SEH handler
+//  testing::DisableExceptionHandlerInScope disable_exception_handler;
+//  ...
+//  ASSERT_DEATH( ... some crash ...);
+//
+class DisableExceptionHandlerInScope {
+ public:
+  DisableExceptionHandlerInScope();
+  ~DisableExceptionHandlerInScope();
+
+ private:
+  bool catch_exceptions_;
+};
+
+}  // namespace testing
+
+#endif  // CLIENT_WINDOWS_UNITTESTS_EXCEPTION_HANDLER_TEST_H_
diff --git a/src/client/windows/unittests/minidump_test.cc b/src/client/windows/unittests/minidump_test.cc
new file mode 100644
index 0000000..8264112
--- /dev/null
+++ b/src/client/windows/unittests/minidump_test.cc
@@ -0,0 +1,332 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <windows.h>
+#include <objbase.h>
+#include <dbghelp.h>
+
+#include "breakpad_googletest_includes.h"
+#include "client/windows/crash_generation/minidump_generator.h"
+#include "client/windows/unittests/dump_analysis.h"  // NOLINT
+
+namespace {
+
+// Minidump with stacks, PEB, TEB, and unloaded module list.
+const MINIDUMP_TYPE kSmallDumpType = static_cast<MINIDUMP_TYPE>(
+    MiniDumpWithProcessThreadData |  // Get PEB and TEB.
+    MiniDumpWithUnloadedModules);  // Get unloaded modules when available.
+
+// Minidump with all of the above, plus memory referenced from stack.
+const MINIDUMP_TYPE kLargerDumpType = static_cast<MINIDUMP_TYPE>(
+    MiniDumpWithProcessThreadData |  // Get PEB and TEB.
+    MiniDumpWithUnloadedModules |  // Get unloaded modules when available.
+    MiniDumpWithIndirectlyReferencedMemory);  // Get memory referenced by stack.
+
+// Large dump with all process memory.
+const MINIDUMP_TYPE kFullDumpType = static_cast<MINIDUMP_TYPE>(
+    MiniDumpWithFullMemory |  // Full memory from process.
+    MiniDumpWithProcessThreadData |  // Get PEB and TEB.
+    MiniDumpWithHandleData |  // Get all handle information.
+    MiniDumpWithUnloadedModules);  // Get unloaded modules when available.
+
+class MinidumpTest: public testing::Test {
+ public:
+  MinidumpTest() {
+    wchar_t temp_dir_path[ MAX_PATH ] = {0};
+    ::GetTempPath(MAX_PATH, temp_dir_path);
+    dump_path_ = temp_dir_path;
+  }
+
+  virtual void SetUp() {
+    // Make sure URLMon isn't loaded into our process.
+    ASSERT_EQ(NULL, ::GetModuleHandle(L"urlmon.dll"));
+
+    // Then load and unload it to ensure we have something to
+    // stock the unloaded module list with.
+    HMODULE urlmon = ::LoadLibrary(L"urlmon.dll");
+    ASSERT_TRUE(urlmon != NULL);
+    ASSERT_TRUE(::FreeLibrary(urlmon));
+  }
+
+  virtual void TearDown() {
+    if (!dump_file_.empty()) {
+      ::DeleteFile(dump_file_.c_str());
+      dump_file_ = L"";
+    }
+    if (!full_dump_file_.empty()) {
+      ::DeleteFile(full_dump_file_.c_str());
+      full_dump_file_ = L"";
+    }
+  }
+
+  bool WriteDump(ULONG flags) {
+    using google_breakpad::MinidumpGenerator;
+
+    // Fake exception is access violation on write to this.
+    EXCEPTION_RECORD ex_record = {
+        STATUS_ACCESS_VIOLATION,  // ExceptionCode
+        0,  // ExceptionFlags
+        NULL,  // ExceptionRecord;
+        reinterpret_cast<void*>(static_cast<uintptr_t>(0xCAFEBABE)),  // ExceptionAddress;
+        2,  // NumberParameters;
+        { EXCEPTION_WRITE_FAULT, reinterpret_cast<ULONG_PTR>(this) }
+    };
+    CONTEXT ctx_record = {};
+    EXCEPTION_POINTERS ex_ptrs = {
+      &ex_record,
+      &ctx_record,
+    };
+
+    MinidumpGenerator generator(dump_path_,
+                                ::GetCurrentProcess(),
+                                ::GetCurrentProcessId(),
+                                ::GetCurrentThreadId(),
+                                ::GetCurrentThreadId(),
+                                &ex_ptrs,
+                                NULL,
+                                static_cast<MINIDUMP_TYPE>(flags),
+                                TRUE);
+    generator.GenerateDumpFile(&dump_file_);
+    generator.GenerateFullDumpFile(&full_dump_file_);
+    // And write a dump
+    bool result = generator.WriteMinidump();
+    return result == TRUE;
+  }
+
+ protected:
+  std::wstring dump_file_;
+  std::wstring full_dump_file_;
+
+  std::wstring dump_path_;
+};
+
+// We need to be able to get file information from Windows
+bool HasFileInfo(const std::wstring& file_path) {
+  DWORD dummy;
+  const wchar_t* path = file_path.c_str();
+  DWORD length = ::GetFileVersionInfoSize(path, &dummy);
+  if (length == 0)
+    return NULL;
+
+  void* data = calloc(length, 1);
+  if (!data)
+    return false;
+
+  if (!::GetFileVersionInfo(path, dummy, length, data)) {
+    free(data);
+    return false;
+  }
+
+  void* translate = NULL;
+  UINT page_count;
+  BOOL query_result = VerQueryValue(
+      data,
+      L"\\VarFileInfo\\Translation",
+      static_cast<void**>(&translate),
+      &page_count);
+
+  free(data);
+  if (query_result && translate) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+TEST_F(MinidumpTest, Version) {
+  // Loads DbgHelp.dll in process
+  ImagehlpApiVersion();
+
+  HMODULE dbg_help = ::GetModuleHandle(L"dbghelp.dll");
+  ASSERT_TRUE(dbg_help != NULL);
+
+  wchar_t dbg_help_file[1024] = {};
+  ASSERT_TRUE(::GetModuleFileName(dbg_help,
+                                  dbg_help_file,
+                                  sizeof(dbg_help_file) /
+                                      sizeof(*dbg_help_file)));
+  ASSERT_TRUE(HasFileInfo(std::wstring(dbg_help_file)) != NULL);
+
+//  LOG(INFO) << "DbgHelp.dll version: " << file_info->file_version();
+}
+
+TEST_F(MinidumpTest, Normal) {
+  EXPECT_TRUE(WriteDump(MiniDumpNormal));
+  DumpAnalysis mini(dump_file_);
+
+  // We expect threads, modules and some memory.
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(HandleDataStream));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(UnloadedModuleListStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+
+  // We expect no PEB nor TEBs in this dump.
+  EXPECT_FALSE(mini.HasTebs());
+  EXPECT_FALSE(mini.HasPeb());
+
+  // We expect no off-stack memory in this dump.
+  EXPECT_FALSE(mini.HasMemory(this));
+}
+
+TEST_F(MinidumpTest, SmallDump) {
+  ASSERT_TRUE(WriteDump(kSmallDumpType));
+  DumpAnalysis mini(dump_file_);
+
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(UnloadedModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+
+  // We expect PEB and TEBs in this dump.
+  EXPECT_TRUE(mini.HasTebs());
+  EXPECT_TRUE(mini.HasPeb());
+
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(HandleDataStream));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+
+  // We expect no off-stack memory in this dump.
+  EXPECT_FALSE(mini.HasMemory(this));
+}
+
+TEST_F(MinidumpTest, LargerDump) {
+  ASSERT_TRUE(WriteDump(kLargerDumpType));
+  DumpAnalysis mini(dump_file_);
+
+  // The dump should have all of these streams.
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(UnloadedModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+
+  // We expect memory referenced by stack in this dump.
+  EXPECT_TRUE(mini.HasMemory(this));
+
+  // We expect PEB and TEBs in this dump.
+  EXPECT_TRUE(mini.HasTebs());
+  EXPECT_TRUE(mini.HasPeb());
+
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(HandleDataStream));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+}
+
+TEST_F(MinidumpTest, FullDump) {
+  ASSERT_TRUE(WriteDump(kFullDumpType));
+  ASSERT_TRUE(dump_file_ != L"");
+  ASSERT_TRUE(full_dump_file_ != L"");
+  DumpAnalysis mini(dump_file_);
+  DumpAnalysis full(full_dump_file_);
+
+  // Either dumps can contain part of the information.
+
+  // The dump should have all of these streams.
+  EXPECT_TRUE(mini.HasStream(ThreadListStream));
+  EXPECT_TRUE(full.HasStream(ThreadListStream));
+  EXPECT_TRUE(mini.HasStream(ModuleListStream));
+  EXPECT_TRUE(full.HasStream(ModuleListStream));
+  EXPECT_TRUE(mini.HasStream(ExceptionStream));
+  EXPECT_TRUE(full.HasStream(ExceptionStream));
+  EXPECT_TRUE(mini.HasStream(SystemInfoStream));
+  EXPECT_TRUE(full.HasStream(SystemInfoStream));
+  EXPECT_TRUE(mini.HasStream(UnloadedModuleListStream));
+  EXPECT_TRUE(full.HasStream(UnloadedModuleListStream));
+  EXPECT_TRUE(mini.HasStream(MiscInfoStream));
+  EXPECT_TRUE(full.HasStream(MiscInfoStream));
+  EXPECT_TRUE(mini.HasStream(HandleDataStream));
+  EXPECT_TRUE(full.HasStream(HandleDataStream));
+
+  // We expect memory referenced by stack in this dump.
+  EXPECT_FALSE(mini.HasMemory(this));
+  EXPECT_TRUE(full.HasMemory(this));
+
+  // We expect PEB and TEBs in this dump.
+  EXPECT_TRUE(mini.HasTebs() || full.HasTebs());
+  EXPECT_TRUE(mini.HasPeb() || full.HasPeb());
+
+  EXPECT_TRUE(mini.HasStream(MemoryListStream));
+  EXPECT_TRUE(full.HasStream(Memory64ListStream));
+  EXPECT_FALSE(mini.HasStream(Memory64ListStream));
+  EXPECT_FALSE(full.HasStream(MemoryListStream));
+
+  // This is the only place we don't use OR because we want both not
+  // to have the streams.
+  EXPECT_FALSE(mini.HasStream(ThreadExListStream));
+  EXPECT_FALSE(full.HasStream(ThreadExListStream));
+  EXPECT_FALSE(mini.HasStream(CommentStreamA));
+  EXPECT_FALSE(full.HasStream(CommentStreamA));
+  EXPECT_FALSE(mini.HasStream(CommentStreamW));
+  EXPECT_FALSE(full.HasStream(CommentStreamW));
+  EXPECT_FALSE(mini.HasStream(FunctionTableStream));
+  EXPECT_FALSE(full.HasStream(FunctionTableStream));
+  EXPECT_FALSE(mini.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(full.HasStream(MemoryInfoListStream));
+  EXPECT_FALSE(mini.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(full.HasStream(ThreadInfoListStream));
+  EXPECT_FALSE(mini.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(full.HasStream(HandleOperationListStream));
+  EXPECT_FALSE(mini.HasStream(TokenStream));
+  EXPECT_FALSE(full.HasStream(TokenStream));
+}
+
+}  // namespace
diff --git a/src/client/windows/unittests/testing.gyp b/src/client/windows/unittests/testing.gyp
new file mode 100644
index 0000000..0f9f944
--- /dev/null
+++ b/src/client/windows/unittests/testing.gyp
@@ -0,0 +1,90 @@
+# Copyright 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'target_defaults': {
+  },
+  'targets': [
+    {
+      'target_name': 'gtest',
+      'type': 'static_library',
+      'include_dirs': [
+        '<(DEPTH)/testing/include',
+        '<(DEPTH)/testing/googletest/include',
+        '<(DEPTH)/testing/googletest',
+        '<(DEPTH)/testing',
+      ],
+      'sources': [
+        '<(DEPTH)/testing/googletest/src/gtest-all.cc',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '<(DEPTH)/testing/include',
+          '<(DEPTH)/testing/gtest/include',
+        ],
+        # Visual C++ implements variadic templates strangely, and
+        # VC++2012 broke Google Test by lowering this value. See
+        # http://stackoverflow.com/questions/12558327/google-test-in-visual-studio-2012
+        'defines': ['_VARIADIC_MAX=10', '_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING'],
+      },
+      'defines': ['_VARIADIC_MAX=10', '_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING'],
+    },
+    {
+      'target_name': 'gmock',
+      'type': 'static_library',
+      'include_dirs': [
+        '<(DEPTH)/testing/include',
+        '<(DEPTH)/testing/googletest/include',
+        '<(DEPTH)/testing/googletest',
+        '<(DEPTH)/testing/googlemock/include',
+        '<(DEPTH)/testing/googlemock',
+        '<(DEPTH)/testing',
+      ],
+      'sources': [
+        '<(DEPTH)/testing/googlemock/src/gmock-all.cc',
+        '<(DEPTH)/testing/googletest/src/gtest_main.cc',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '<(DEPTH)/testing/include',
+          '<(DEPTH)/testing/googletest/include',
+          '<(DEPTH)/testing/googletest',
+          '<(DEPTH)/testing/googlemock/include',
+          '<(DEPTH)/testing/googlemock',
+          '<(DEPTH)/testing',
+        ],
+        'defines': ['_VARIADIC_MAX=10', '_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING'],
+      },
+      'defines': ['_VARIADIC_MAX=10', '_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING'],
+    },
+
+  ],
+}
diff --git a/src/common/android/include/asm-mips/README.md b/src/common/android/include/asm-mips/README.md
new file mode 100644
index 0000000..b56ee60
--- /dev/null
+++ b/src/common/android/include/asm-mips/README.md
@@ -0,0 +1,9 @@
+# asm-mips
+
+The files in this directory are almost direct copies from Android NDK r12, with
+the exception of changing the include guards to Breakpad ones. They are copied
+from the MIPS asm/ directory, but are meant to be used as replacements for both
+asm/ and machine/ includes since the files in each are largely duplicates.
+
+Some MIPS asm/ and all machine/ headers were removed in the move to unified NDK
+headers, so Breakpad fails to compile on newer NDK versions without these files.
\ No newline at end of file
diff --git a/src/common/android/include/asm-mips/asm.h b/src/common/android/include/asm-mips/asm.h
new file mode 100644
index 0000000..8f086e7
--- /dev/null
+++ b/src/common/android/include/asm-mips/asm.h
@@ -0,0 +1,270 @@
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_ASM_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_ASM_H
+
+#if defined(__has_include_next) && __has_include_next(<asm/asm.h>)
+#include_next <asm/asm.h>
+#else
+
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+
+#include <asm/sgidefs.h>
+#ifndef CAT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __STDC__
+#define __CAT(str1, str2) str1##str2
+#else
+#define __CAT(str1, str2) str1 str2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define CAT(str1, str2) __CAT(str1, str2)
+#endif
+#ifdef __PIC__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CPRESTORE(register)   .cprestore register
+#define CPADD(register)   .cpadd register
+#define CPLOAD(register)   .cpload register
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CPRESTORE(register)
+#define CPADD(register)
+#define CPLOAD(register)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LEAF(symbol)   .globl symbol;   .align 2;   .type symbol, @function;   .ent symbol, 0;  symbol: .frame sp, 0, ra
+#define NESTED(symbol, framesize, rpc)   .globl symbol;   .align 2;   .type symbol, @function;   .ent symbol, 0;  symbol: .frame sp, framesize, rpc
+#define END(function)   .end function;   .size function, .-function
+#define EXPORT(symbol)   .globl symbol;  symbol:
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FEXPORT(symbol)   .globl symbol;   .type symbol, @function;  symbol:
+#define ABS(symbol,value)   .globl symbol;  symbol = value
+#define PANIC(msg)   .set push;   .set reorder;   PTR_LA a0, 8f;   jal panic;  9: b 9b;   .set pop;   TEXT(msg)
+#define PRINT(string)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TEXT(msg)   .pushsection .data;  8: .asciiz msg;   .popsection;
+#define TTABLE(string)   .pushsection .text;   .word 1f;   .popsection   .pushsection .data;  1: .asciiz string;   .popsection
+#define PREF(hint, addr)
+#define PREFX(hint, addr)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS1
+#define MOVN(rd, rs, rt)   .set push;   .set reorder;   beqz rt, 9f;   move rd, rs;   .set pop;  9:
+#define MOVZ(rd, rs, rt)   .set push;   .set reorder;   bnez rt, 9f;   move rd, rs;   .set pop;  9:
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS2 || _MIPS_ISA == _MIPS_ISA_MIPS3
+#define MOVN(rd, rs, rt)   .set push;   .set noreorder;   bnezl rt, 9f;   move rd, rs;   .set pop;  9:
+#define MOVZ(rd, rs, rt)   .set push;   .set noreorder;   beqzl rt, 9f;   move rd, rs;   .set pop;  9:
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS4 || _MIPS_ISA == _MIPS_ISA_MIPS5 || _MIPS_ISA == _MIPS_ISA_MIPS32 || _MIPS_ISA == _MIPS_ISA_MIPS64
+#define MOVN(rd, rs, rt)   movn rd, rs, rt
+#define MOVZ(rd, rs, rt)   movz rd, rs, rt
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define ALSZ 7
+#define ALMASK ~7
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#define ALSZ 15
+#define ALMASK ~15
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __mips64
+#define SZREG 8
+#else
+#define SZREG 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define REG_S sw
+#define REG_L lw
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REG_SUBU subu
+#define REG_ADDU addu
+#endif
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REG_S sd
+#define REG_L ld
+#define REG_SUBU dsubu
+#define REG_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZINT == 32
+#define INT_ADD add
+#define INT_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_ADDI addi
+#define INT_ADDIU addiu
+#define INT_SUB sub
+#define INT_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_L lw
+#define INT_S sw
+#define INT_SLL sll
+#define INT_SLLV sllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_SRL srl
+#define INT_SRLV srlv
+#define INT_SRA sra
+#define INT_SRAV srav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZINT == 64
+#define INT_ADD dadd
+#define INT_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_ADDI daddi
+#define INT_ADDIU daddiu
+#define INT_SUB dsub
+#define INT_SUBU dsubu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_L ld
+#define INT_S sd
+#define INT_SLL dsll
+#define INT_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_SRL dsrl
+#define INT_SRLV dsrlv
+#define INT_SRA dsra
+#define INT_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZLONG == 32
+#define LONG_ADD add
+#define LONG_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_ADDI addi
+#define LONG_ADDIU addiu
+#define LONG_SUB sub
+#define LONG_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_L lw
+#define LONG_S sw
+#define LONG_SLL sll
+#define LONG_SLLV sllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_SRL srl
+#define LONG_SRLV srlv
+#define LONG_SRA sra
+#define LONG_SRAV srav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG .word
+#define LONGSIZE 4
+#define LONGMASK 3
+#define LONGLOG 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZLONG == 64
+#define LONG_ADD dadd
+#define LONG_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_ADDI daddi
+#define LONG_ADDIU daddiu
+#define LONG_SUB dsub
+#define LONG_SUBU dsubu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_L ld
+#define LONG_S sd
+#define LONG_SLL dsll
+#define LONG_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_SRL dsrl
+#define LONG_SRLV dsrlv
+#define LONG_SRA dsra
+#define LONG_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG .dword
+#define LONGSIZE 8
+#define LONGMASK 7
+#define LONGLOG 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZPTR == 32
+#define PTR_ADD add
+#define PTR_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_ADDI addi
+#define PTR_ADDIU addiu
+#define PTR_SUB sub
+#define PTR_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_L lw
+#define PTR_S sw
+#define PTR_LA la
+#define PTR_LI li
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SLL sll
+#define PTR_SLLV sllv
+#define PTR_SRL srl
+#define PTR_SRLV srlv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SRA sra
+#define PTR_SRAV srav
+#define PTR_SCALESHIFT 2
+#define PTR .word
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTRSIZE 4
+#define PTRLOG 2
+#endif
+#if _MIPS_SZPTR == 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_ADD dadd
+#define PTR_ADDU daddu
+#define PTR_ADDI daddi
+#define PTR_ADDIU daddiu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SUB dsub
+#define PTR_SUBU dsubu
+#define PTR_L ld
+#define PTR_S sd
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_LA dla
+#define PTR_LI dli
+#define PTR_SLL dsll
+#define PTR_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SRL dsrl
+#define PTR_SRLV dsrlv
+#define PTR_SRA dsra
+#define PTR_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SCALESHIFT 3
+#define PTR .dword
+#define PTRSIZE 8
+#define PTRLOG 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define MFC0 mfc0
+#define MTC0 mtc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#define MFC0 dmfc0
+#define MTC0 dmtc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define SSNOP sll zero, zero, 1
+#define R10KCBARRIER(addr)
+#endif  // defined(__has_include_next) && __has_include_next(<asm/asm.h>)
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_ASM_H
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/src/common/android/include/asm-mips/fpregdef.h b/src/common/android/include/asm-mips/fpregdef.h
new file mode 100644
index 0000000..a6eedc0
--- /dev/null
+++ b/src/common/android/include/asm-mips/fpregdef.h
@@ -0,0 +1,117 @@
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_FPREGDEF_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_FPREGDEF_H
+
+#if defined(__has_include_next) && __has_include_next(<asm/fpregdef.h>)
+#include_next <asm/fpregdef.h>
+#else
+
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fv0 $f0  
+#define fv0f $f1
+#define fv1 $f2
+#define fv1f $f3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa0 $f12  
+#define fa0f $f13
+#define fa1 $f14
+#define fa1f $f15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft0 $f4  
+#define ft0f $f5
+#define ft1 $f6
+#define ft1f $f7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft2 $f8
+#define ft2f $f9
+#define ft3 $f10
+#define ft3f $f11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft4 $f16
+#define ft4f $f17
+#define ft5 $f18
+#define ft5f $f19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs0 $f20  
+#define fs0f $f21
+#define fs1 $f22
+#define fs1f $f23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs2 $f24
+#define fs2f $f25
+#define fs3 $f26
+#define fs3f $f27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs4 $f28
+#define fs4f $f29
+#define fs5 $f30
+#define fs5f $f31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fcr31 $31  
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+#define fv0 $f0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fv1 $f2
+#define fa0 $f12  
+#define fa1 $f13
+#define fa2 $f14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa3 $f15
+#define fa4 $f16
+#define fa5 $f17
+#define fa6 $f18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa7 $f19
+#define ft0 $f4  
+#define ft1 $f5
+#define ft2 $f6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft3 $f7
+#define ft4 $f8
+#define ft5 $f9
+#define ft6 $f10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft7 $f11
+#define ft8 $f20
+#define ft9 $f21
+#define ft10 $f22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft11 $f23
+#define ft12 $f1
+#define ft13 $f3
+#define fs0 $f24  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs1 $f25
+#define fs2 $f26
+#define fs3 $f27
+#define fs4 $f28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs5 $f29
+#define fs6 $f30
+#define fs7 $f31
+#define fcr31 $31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif  // defined(__has_include_next) && __has_include_next(<asm/fpregdef.h>)
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_FPREGDEF_H
diff --git a/src/common/android/include/asm-mips/regdef.h b/src/common/android/include/asm-mips/regdef.h
new file mode 100644
index 0000000..a7fd769
--- /dev/null
+++ b/src/common/android/include/asm-mips/regdef.h
@@ -0,0 +1,125 @@
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_REGDEF_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_REGDEF_H
+
+#if defined(__has_include_next) && __has_include_next(<asm/regdef.h>)
+#include_next <asm/regdef.h>
+#else
+
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define zero $0  
+#define AT $1  
+#define v0 $2  
+#define v1 $3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a0 $4  
+#define a1 $5
+#define a2 $6
+#define a3 $7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t0 $8  
+#define t1 $9
+#define t2 $10
+#define t3 $11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t4 $12
+#define t5 $13
+#define t6 $14
+#define t7 $15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s0 $16  
+#define s1 $17
+#define s2 $18
+#define s3 $19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s4 $20
+#define s5 $21
+#define s6 $22
+#define s7 $23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t8 $24  
+#define t9 $25
+#define jp $25  
+#define k0 $26  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define k1 $27
+#define gp $28  
+#define sp $29  
+#define fp $30  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s8 $30  
+#define ra $31  
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define zero $0  
+#define AT $at  
+#define v0 $2  
+#define v1 $3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a0 $4  
+#define a1 $5
+#define a2 $6
+#define a3 $7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a4 $8  
+#define ta0 $8
+#define a5 $9
+#define ta1 $9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a6 $10
+#define ta2 $10
+#define a7 $11
+#define ta3 $11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t0 $12  
+#define t1 $13
+#define t2 $14
+#define t3 $15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s0 $16  
+#define s1 $17
+#define s2 $18
+#define s3 $19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s4 $20
+#define s5 $21
+#define s6 $22
+#define s7 $23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t8 $24  
+#define t9 $25  
+#define jp $25  
+#define k0 $26  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define k1 $27
+#define gp $28  
+#define sp $29  
+#define fp $30  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s8 $30  
+#define ra $31  
+#endif
+#endif  // defined(__has_include_next) && __has_include_next(<asm/regdef.h>)
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ASM_MIPS_REGDEF_H
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/src/common/android/include/elf.h b/src/common/android/include/elf.h
new file mode 100644
index 0000000..e6f0c67
--- /dev/null
+++ b/src/common/android/include/elf.h
@@ -0,0 +1,157 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H
+
+#include <stdint.h>
+#include <libgen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+// The Android <elf.h> provides BSD-based definitions for the ElfXX_Nhdr
+// types
+// always source-compatible with the GLibc/kernel ones. To overcome this
+// issue without modifying a lot of code in Breakpad, use an ugly macro
+// renaming trick with #include_next
+
+// Avoid conflict with BSD-based definition of ElfXX_Nhdr.
+// Unfortunately, their field member names do not use a 'n_' prefix.
+#define Elf32_Nhdr   __bsd_Elf32_Nhdr
+#define Elf64_Nhdr   __bsd_Elf64_Nhdr
+
+// In case they are defined by the NDK version
+#define Elf32_auxv_t  __bionic_Elf32_auxv_t
+#define Elf64_auxv_t  __bionic_Elf64_auxv_t
+
+#define Elf32_Dyn     __bionic_Elf32_Dyn
+#define Elf64_Dyn     __bionic_Elf64_Dyn
+
+#include_next <elf.h>
+
+#undef Elf32_Nhdr
+#undef Elf64_Nhdr
+
+typedef struct {
+  Elf32_Word n_namesz;
+  Elf32_Word n_descsz;
+  Elf32_Word n_type;
+} Elf32_Nhdr;
+
+typedef struct {
+  Elf64_Word n_namesz;
+  Elf64_Word n_descsz;
+  Elf64_Word n_type;
+} Elf64_Nhdr;
+
+#undef Elf32_auxv_t
+#undef Elf64_auxv_t
+
+typedef struct {
+    uint32_t a_type;
+    union {
+      uint32_t a_val;
+    } a_un;
+} Elf32_auxv_t;
+
+typedef struct {
+    uint64_t a_type;
+    union {
+      uint64_t a_val;
+    } a_un;
+} Elf64_auxv_t;
+
+#undef Elf32_Dyn
+#undef Elf64_Dyn
+
+typedef struct {
+  Elf32_Sword   d_tag;
+  union {
+    Elf32_Word  d_val;
+    Elf32_Addr  d_ptr;
+  } d_un;
+} Elf32_Dyn;
+
+typedef struct {
+  Elf64_Sxword   d_tag;
+  union {
+    Elf64_Xword  d_val;
+    Elf64_Addr   d_ptr;
+  } d_un;
+} Elf64_Dyn;
+
+
+// The Android headers don't always define this constant.
+#ifndef EM_X86_64
+#define EM_X86_64  62
+#endif
+
+#ifndef EM_PPC64
+#define EM_PPC64   21
+#endif
+
+#ifndef EM_S390
+#define EM_S390    22
+#endif
+
+#if !defined(AT_SYSINFO_EHDR)
+#define AT_SYSINFO_EHDR 33
+#endif
+
+#if !defined(NT_PRSTATUS)
+#define NT_PRSTATUS 1
+#endif
+
+#if !defined(NT_PRPSINFO)
+#define NT_PRPSINFO 3
+#endif
+
+#if !defined(NT_AUXV)
+#define NT_AUXV   6
+#endif
+
+#if !defined(NT_PRXFPREG)
+#define NT_PRXFPREG 0x46e62b7f
+#endif
+
+#if !defined(NT_FPREGSET)
+#define NT_FPREGSET 2
+#endif
+
+#if !defined(SHT_MIPS_DWARF)
+#define SHT_MIPS_DWARF 0x7000001e
+#endif
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H
diff --git a/src/common/android/include/link.h b/src/common/android/include/link.h
new file mode 100644
index 0000000..4324629
--- /dev/null
+++ b/src/common/android/include/link.h
@@ -0,0 +1,77 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H
+#define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H
+
+/* Android doesn't provide all the data-structures required in its <link.h>.
+   Provide custom version here. */
+#include_next <link.h>
+
+#include <android/api-level.h>
+
+// TODO(rmcilroy): Remove this file once the NDK API level is updated to at
+// least 21 for all architectures. https://crbug.com/358831
+
+// These structures are only present in traditional headers at API level 21 and
+// above. Unified headers define these structures regardless of the chosen API
+// level. __ANDROID_API_N__ is a proxy for determining whether unified headers
+// are in use. It’s only defined by unified headers.
+#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__)
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+struct r_debug {
+  int              r_version;
+  struct link_map* r_map;
+  ElfW(Addr)       r_brk;
+  enum {
+    RT_CONSISTENT,
+    RT_ADD,
+    RT_DELETE }    r_state;
+  ElfW(Addr)       r_ldbase;
+};
+
+struct link_map {
+  ElfW(Addr)       l_addr;
+  char*            l_name;
+  ElfW(Dyn)*       l_ld;
+  struct link_map* l_next;
+  struct link_map* l_prev;
+};
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__)
+
+#endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */
diff --git a/src/common/android/include/stab.h b/src/common/android/include/stab.h
new file mode 100644
index 0000000..cd92902
--- /dev/null
+++ b/src/common/android/include/stab.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
+
+#include <sys/cdefs.h>
+
+#ifdef __BIONIC_HAVE_STAB_H
+#include <stab.h>
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+#define _STAB_CODE_LIST       \
+  _STAB_CODE_DEF(UNDF,0x00)   \
+  _STAB_CODE_DEF(GSYM,0x20)   \
+  _STAB_CODE_DEF(FNAME,0x22)  \
+  _STAB_CODE_DEF(FUN,0x24)    \
+  _STAB_CODE_DEF(STSYM,0x26)  \
+  _STAB_CODE_DEF(LCSYM,0x28)  \
+  _STAB_CODE_DEF(MAIN,0x2a)   \
+  _STAB_CODE_DEF(PC,0x30)     \
+  _STAB_CODE_DEF(NSYMS,0x32)  \
+  _STAB_CODE_DEF(NOMAP,0x34)  \
+  _STAB_CODE_DEF(OBJ,0x38)    \
+  _STAB_CODE_DEF(OPT,0x3c)    \
+  _STAB_CODE_DEF(RSYM,0x40)   \
+  _STAB_CODE_DEF(M2C,0x42)    \
+  _STAB_CODE_DEF(SLINE,0x44)  \
+  _STAB_CODE_DEF(DSLINE,0x46) \
+  _STAB_CODE_DEF(BSLINE,0x48) \
+  _STAB_CODE_DEF(BROWS,0x48)  \
+  _STAB_CODE_DEF(DEFD,0x4a)   \
+  _STAB_CODE_DEF(EHDECL,0x50) \
+  _STAB_CODE_DEF(MOD2,0x50)   \
+  _STAB_CODE_DEF(CATCH,0x54)  \
+  _STAB_CODE_DEF(SSYM,0x60)   \
+  _STAB_CODE_DEF(SO,0x64)     \
+  _STAB_CODE_DEF(LSYM,0x80)   \
+  _STAB_CODE_DEF(BINCL,0x82)  \
+  _STAB_CODE_DEF(SOL,0x84)    \
+  _STAB_CODE_DEF(PSYM,0xa0)   \
+  _STAB_CODE_DEF(EINCL,0xa2)  \
+  _STAB_CODE_DEF(ENTRY,0xa4)  \
+  _STAB_CODE_DEF(LBRAC,0xc0)  \
+  _STAB_CODE_DEF(EXCL,0xc2)   \
+  _STAB_CODE_DEF(SCOPE,0xc4)  \
+  _STAB_CODE_DEF(RBRAC,0xe0)  \
+  _STAB_CODE_DEF(BCOMM,0xe2)  \
+  _STAB_CODE_DEF(ECOMM,0xe4)  \
+  _STAB_CODE_DEF(ECOML,0xe8)  \
+  _STAB_CODE_DEF(NBTEXT,0xf0) \
+  _STAB_CODE_DEF(NBDATA,0xf2) \
+  _STAB_CODE_DEF(NBBSS,0xf4)  \
+  _STAB_CODE_DEF(NBSTS,0xf6)  \
+  _STAB_CODE_DEF(NBLCS,0xf8)  \
+  _STAB_CODE_DEF(LENG,0xfe)
+
+enum __stab_debug_code {
+#define _STAB_CODE_DEF(x,y)  N_##x = y,
+_STAB_CODE_LIST
+#undef _STAB_CODE_DEF
+};
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // __BIONIC_HAVE_STAB_H
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
diff --git a/src/common/android/include/sys/procfs.h b/src/common/android/include/sys/procfs.h
new file mode 100644
index 0000000..1851243
--- /dev/null
+++ b/src/common/android/include/sys/procfs.h
@@ -0,0 +1,124 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H
+
+#ifdef __BIONIC_HAVE_SYS_PROCFS_H
+
+#include_next <sys/procfs.h>
+
+#else
+
+#include <asm/ptrace.h>
+#include <sys/cdefs.h>
+#if defined (__mips__)
+#include <sys/types.h>
+#endif
+#include <sys/user.h>
+#include <unistd.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+#if defined(__x86_64__) || defined(__aarch64__)
+typedef unsigned long long elf_greg_t;
+#else
+typedef unsigned long  elf_greg_t;
+#endif
+
+#ifdef __arm__
+#define ELF_NGREG (sizeof(struct user_regs) / sizeof(elf_greg_t))
+#elif defined(__aarch64__)
+#define ELF_NGREG (sizeof(struct user_pt_regs) / sizeof(elf_greg_t))
+#elif defined(__mips__)
+#define ELF_NGREG 45
+#else
+#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))
+#endif
+
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct elf_siginfo {
+  int si_signo;
+  int si_code;
+  int si_errno;
+};
+
+struct elf_prstatus {
+  struct elf_siginfo pr_info;
+  short              pr_cursig;
+  unsigned long      pr_sigpend;
+  unsigned long      pr_sighold;
+  pid_t              pr_pid;
+  pid_t              pr_ppid;
+  pid_t              pr_pgrp;
+  pid_t              pd_sid;
+  struct timeval     pr_utime;
+  struct timeval     pr_stime;
+  struct timeval     pr_cutime;
+  struct timeval     pr_cstime;
+  elf_gregset_t      pr_reg;
+  int                pr_fpvalid;
+};
+
+#define ELF_PRARGSZ 80
+
+struct elf_prpsinfo {
+  char           pr_state;
+  char           pr_sname;
+  char           pr_zomb;
+  char           pr_nice;
+  unsigned long  pr_flags;
+#ifdef __x86_64__
+  unsigned int   pr_uid;
+  unsigned int   pr_gid;
+#elif defined(__mips__)
+  __kernel_uid_t pr_uid;
+  __kernel_gid_t pr_gid;
+#else
+  unsigned short pr_uid;
+  unsigned short pr_gid;
+#endif
+  int pr_pid;
+  int pr_ppid;
+  int pr_pgrp;
+  int pr_sid;
+  char pr_fname[16];
+  char pr_psargs[ELF_PRARGSZ];
+};
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // __BIONIC_HAVE_SYS_PROCFS_H
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H
diff --git a/src/common/android/include/sys/user.h b/src/common/android/include/sys/user.h
new file mode 100644
index 0000000..9c27ef0
--- /dev/null
+++ b/src/common/android/include/sys/user.h
@@ -0,0 +1,69 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H
+
+// The purpose of this file is to glue the mismatching headers (Android NDK vs
+// glibc) and therefore avoid doing otherwise awkward #ifdefs in the code.
+// The following quirks are currently handled by this file:
+// - i386: Use the Android NDK but alias user_fxsr_struct > user_fpxregs_struct.
+
+// TODO(primiano): remove these changes after Chromium has stably rolled to
+// an NDK with the appropriate fixes. https://crbug.com/358831
+
+// With traditional headers, <sys/user.h> forgot to do this. Unified headers get
+// it right.
+#include <sys/types.h>
+
+#include_next <sys/user.h>
+
+#include <android/api-level.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+#if defined(__i386__)
+#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__)
+
+// user_fpxregs_struct was called user_fxsr_struct in traditional headers before
+// API level 21. Unified headers call it user_fpxregs_struct regardless of the
+// chosen API level. __ANDROID_API_N__ is a proxy for determining whether
+// unified headers are in use. It’s only defined by unified headers.
+typedef struct user_fxsr_struct user_fpxregs_struct;
+
+#endif  // __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__)
+#endif  // defined(__i386__)
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H
diff --git a/src/common/android/testing/include/wchar.h b/src/common/android/testing/include/wchar.h
new file mode 100644
index 0000000..85373fd
--- /dev/null
+++ b/src/common/android/testing/include/wchar.h
@@ -0,0 +1,76 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Android doesn't provide wcscasecmp(), so provide an alternative here.
+//
+// Note that this header is not needed when Breakpad is compiled against
+// a recent version of Googletest. It shall be considered for removal once
+// src/testing/ is updated to an appropriate revision in the future.
+
+#ifndef GOOGLEBREAKPAD_COMMON_ANDROID_INCLUDE_WCHAR_H
+#define GOOGLEBREAKPAD_COMMON_ANDROID_INCLUDE_WCHAR_H
+
+#include_next <wchar.h>
+
+#if !defined(__aarch64__) && !defined(__x86_64__) && \
+    !(defined(__mips__) && _MIPS_SIM == _ABI64)
+
+// This needs to be in an extern "C" namespace, or Googletest will not
+// compile against it.
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+static wchar_t inline wcstolower(wchar_t ch) {
+  if (ch >= L'a' && ch <= L'A')
+    ch -= L'a' - L'A';
+  return ch;
+}
+
+static int inline wcscasecmp(const wchar_t* s1, const wchar_t* s2) {
+  for (;;) {
+    wchar_t c1 = wcstolower(*s1);
+    wchar_t c2 = wcstolower(*s2);
+    if (c1 < c2)
+      return -1;
+    if (c1 > c2)
+      return 1;
+    if (c1 == L'0')
+      return 0;
+    s1++;
+    s2++;
+  }
+}
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+#endif
+
+#endif  // GOOGLEBREAKPAD_COMMON_ANDROID_INCLUDE_WCHAR_H
diff --git a/src/common/android/testing/mkdtemp.h b/src/common/android/testing/mkdtemp.h
new file mode 100644
index 0000000..b86e2cd
--- /dev/null
+++ b/src/common/android/testing/mkdtemp.h
@@ -0,0 +1,110 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// mkdtemp() wasn't declared in <stdlib.h> until NDK r9b due to a simple
+// packaging bug (the function has always been implemented in all versions
+// of the C library). This header is provided to build Breakpad with earlier
+// NDK revisions (e.g. the one used by Chromium). It may be removed in the
+// future once all major projects upgrade to use a more recent NDK.
+//
+// The reason this is inlined here is to avoid linking a new object file
+// into each unit test program (i.e. keep build files simple).
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_MKDTEMP_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_MKDTEMP_H
+
+#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+// Using a macro renaming trick here is necessary when building against
+// NDK r9b. Otherwise the compiler will complain that calls to mkdtemp()
+// are ambiguous.
+#define mkdtemp breakpad_mkdtemp
+
+namespace {
+
+char* breakpad_mkdtemp(char* path) {
+  if (path == NULL) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  // 'path' must be terminated with six 'X'
+  const char kSuffix[] = "XXXXXX";
+  const size_t kSuffixLen = strlen(kSuffix);
+  char* path_end = path + strlen(path);
+
+  if (static_cast<size_t>(path_end - path) < kSuffixLen ||
+      memcmp(path_end - kSuffixLen, kSuffix, kSuffixLen) != 0) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  // If 'path' contains a directory separator, check that it exists to
+  // avoid looping later.
+  char* sep = strrchr(path, '/');
+  if (sep != NULL) {
+    struct stat st;
+    int ret;
+    *sep = '\0';  // temporarily zero-terminate the dirname.
+    ret = stat(path, &st);
+    *sep = '/';   // restore full path.
+    if (ret < 0)
+      return NULL;
+    if (!S_ISDIR(st.st_mode)) {
+      errno = ENOTDIR;
+      return NULL;
+    }
+  }
+
+  // Loop. On each iteration, replace the XXXXXX suffix with a random
+  // number.
+  int tries;
+  for (tries = 128; tries > 0; tries--) {
+    int random = rand() % 1000000;
+
+    snprintf(path_end - kSuffixLen, kSuffixLen + 1, "%0d", random);
+    if (mkdir(path, 0700) == 0)
+      return path;  // Success
+
+    if (errno != EEXIST)
+      return NULL;
+  }
+
+  assert(errno == EEXIST);
+  return NULL;
+}
+
+}  // namespace
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_MKDTEMP_H
diff --git a/src/common/android/testing/pthread_fixes.h b/src/common/android/testing/pthread_fixes.h
new file mode 100644
index 0000000..b0a3d82
--- /dev/null
+++ b/src/common/android/testing/pthread_fixes.h
@@ -0,0 +1,94 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This contains Pthread-related functions not provided by the Android NDK
+// but required by the Breakpad unit test. The functions are inlined here
+// in a C++ anonymous namespace in order to keep the build files simples.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_PTHREAD_FIXES_H
+#define GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_PTHREAD_FIXES_H
+
+#include <pthread.h>
+
+namespace {
+
+// Android doesn't provide pthread_barrier_t for now.
+#ifndef PTHREAD_BARRIER_SERIAL_THREAD
+
+// Anything except 0 will do here.
+#define PTHREAD_BARRIER_SERIAL_THREAD  0x12345
+
+typedef struct {
+  pthread_mutex_t  mutex;
+  pthread_cond_t   cond;
+  unsigned         count;
+} pthread_barrier_t;
+
+int pthread_barrier_init(pthread_barrier_t* barrier,
+                         const void* /* barrier_attr */,
+                         unsigned count) {
+  barrier->count = count;
+  pthread_mutex_init(&barrier->mutex, NULL);
+  pthread_cond_init(&barrier->cond, NULL);
+  return 0;
+}
+
+int pthread_barrier_wait(pthread_barrier_t* barrier) {
+  // Lock the mutex
+  pthread_mutex_lock(&barrier->mutex);
+  // Decrement the count. If this is the first thread to reach 0, wake up
+  // waiters, unlock the mutex, then return PTHREAD_BARRIER_SERIAL_THREAD.
+  if (--barrier->count == 0) {
+    // First thread to reach the barrier
+    pthread_cond_broadcast(&barrier->cond);
+    pthread_mutex_unlock(&barrier->mutex);
+    return PTHREAD_BARRIER_SERIAL_THREAD;
+  }
+  // Otherwise, wait for other threads until the count reaches 0, then
+  // return 0 to indicate this is not the first thread.
+  do {
+    pthread_cond_wait(&barrier->cond, &barrier->mutex);
+  } while (barrier->count > 0);
+
+  pthread_mutex_unlock(&barrier->mutex);
+  return 0;
+}
+
+int pthread_barrier_destroy(pthread_barrier_t* barrier) {
+  barrier->count = 0;
+  pthread_cond_destroy(&barrier->cond);
+  pthread_mutex_destroy(&barrier->mutex);
+  return 0;
+}
+
+#endif  // defined(PTHREAD_BARRIER_SERIAL_THREAD)
+
+}  // namespace
+
+#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_TESTING_PTHREAD_FIXES_H
diff --git a/src/common/basictypes.h b/src/common/basictypes.h
new file mode 100644
index 0000000..9426c1f
--- /dev/null
+++ b/src/common/basictypes.h
@@ -0,0 +1,58 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_BASICTYPES_H_
+#define COMMON_BASICTYPES_H_
+
+// A macro to disallow the copy constructor and operator= functions
+// This should be used in the private: declarations for a class
+#ifndef DISALLOW_COPY_AND_ASSIGN
+#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
+  TypeName(const TypeName&);               \
+  void operator=(const TypeName&)
+#endif  // DISALLOW_COPY_AND_ASSIGN
+
+namespace google_breakpad {
+
+// Used to explicitly mark the return value of a function as unused. If you are
+// really sure you don't want to do anything with the return value of a function
+// that has been marked with __attribute__((warn_unused_result)), wrap it with
+// this. Example:
+//
+//   scoped_ptr<MyType> my_var = ...;
+//   if (TakeOwnership(my_var.get()) == SUCCESS)
+//     ignore_result(my_var.release());
+//
+template<typename T>
+inline void ignore_result(const T&) {
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_BASICTYPES_H_
diff --git a/src/common/byte_cursor.h b/src/common/byte_cursor.h
new file mode 100644
index 0000000..28bb8e7
--- /dev/null
+++ b/src/common/byte_cursor.h
@@ -0,0 +1,266 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// byte_cursor.h: Classes for parsing values from a buffer of bytes.
+// The ByteCursor class provides a convenient interface for reading
+// fixed-size integers of arbitrary endianness, being thorough about
+// checking for buffer overruns.
+
+#ifndef COMMON_BYTE_CURSOR_H_
+#define COMMON_BYTE_CURSOR_H_
+
+#include <assert.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// A buffer holding a series of bytes.
+struct ByteBuffer {
+  ByteBuffer() : start(0), end(0) { }
+  ByteBuffer(const uint8_t* set_start, size_t set_size)
+      : start(set_start), end(set_start + set_size) { }
+  ~ByteBuffer() { };
+
+  // Equality operators. Useful in unit tests, and when we're using
+  // ByteBuffers to refer to regions of a larger buffer.
+  bool operator==(const ByteBuffer& that) const {
+    return start == that.start && end == that.end;
+  }
+  bool operator!=(const ByteBuffer& that) const {
+    return start != that.start || end != that.end;
+  }
+
+  // Not C++ style guide compliant, but this definitely belongs here.
+  size_t Size() const {
+    assert(start <= end);
+    return end - start;
+  }
+
+  const uint8_t* start;
+  const uint8_t* end;
+};
+
+// A cursor pointing into a ByteBuffer that can parse numbers of various
+// widths and representations, strings, and data blocks, advancing through
+// the buffer as it goes. All ByteCursor operations check that accesses
+// haven't gone beyond the end of the enclosing ByteBuffer.
+class ByteCursor {
+ public:
+  // Create a cursor reading bytes from the start of BUFFER. By default, the
+  // cursor reads multi-byte values in little-endian form.
+  ByteCursor(const ByteBuffer* buffer, bool big_endian = false)
+      : buffer_(buffer), here_(buffer->start),
+        big_endian_(big_endian), complete_(true) { }
+
+  // Accessor and setter for this cursor's endianness flag.
+  bool big_endian() const { return big_endian_; }
+  void set_big_endian(bool big_endian) { big_endian_ = big_endian; }
+
+  // Accessor and setter for this cursor's current position. The setter
+  // returns a reference to this cursor.
+  const uint8_t* here() const { return here_; }
+  ByteCursor& set_here(const uint8_t* here) {
+    assert(buffer_->start <= here && here <= buffer_->end);
+    here_ = here;
+    return *this;
+  }
+
+  // Return the number of bytes available to read at the cursor.
+  size_t Available() const { return size_t(buffer_->end - here_); }
+
+  // Return true if this cursor is at the end of its buffer.
+  bool AtEnd() const { return Available() == 0; }
+
+  // When used as a boolean value this cursor converts to true if all
+  // prior reads have been completed, or false if we ran off the end
+  // of the buffer.
+  operator bool() const { return complete_; }
+
+  // Read a SIZE-byte integer at this cursor, signed if IS_SIGNED is true,
+  // unsigned otherwise, using the cursor's established endianness, and set
+  // *RESULT to the number. If we read off the end of our buffer, clear
+  // this cursor's complete_ flag, and store a dummy value in *RESULT.
+  // Return a reference to this cursor.
+  template<typename T>
+  ByteCursor& Read(size_t size, bool is_signed, T* result) {
+    if (CheckAvailable(size)) {
+      T v = 0;
+      if (big_endian_) {
+        for (size_t i = 0; i < size; i++)
+          v = (v << 8) + here_[i];
+      } else {
+        // This loop condition looks weird, but size_t is unsigned, so
+        // decrementing i after it is zero yields the largest size_t value.
+        for (size_t i = size - 1; i < size; i--)
+          v = (v << 8) + here_[i];
+      }
+      if (is_signed && size < sizeof(T)) {
+        size_t sign_bit = (T)1 << (size * 8 - 1);
+        v = (v ^ sign_bit) - sign_bit;
+      }
+      here_ += size;
+      *result = v;
+    } else {
+      *result = (T) 0xdeadbeef;
+    }
+    return *this;
+  }
+
+  // Read an integer, using the cursor's established endianness and
+  // *RESULT's size and signedness, and set *RESULT to the number. If we
+  // read off the end of our buffer, clear this cursor's complete_ flag.
+  // Return a reference to this cursor.
+  template<typename T>
+  ByteCursor& operator>>(T& result) {
+    bool T_is_signed = (T)-1 < 0;
+    return Read(sizeof(T), T_is_signed, &result); 
+  }
+
+  // Copy the SIZE bytes at the cursor to BUFFER, and advance this
+  // cursor to the end of them. If we read off the end of our buffer,
+  // clear this cursor's complete_ flag, and set *POINTER to NULL.
+  // Return a reference to this cursor.
+  ByteCursor& Read(uint8_t* buffer, size_t size) {
+    if (CheckAvailable(size)) {
+      memcpy(buffer, here_, size);
+      here_ += size;
+    }
+    return *this;
+  }
+
+  // Set STR to a copy of the '\0'-terminated string at the cursor. If the
+  // byte buffer does not contain a terminating zero, clear this cursor's
+  // complete_ flag, and set STR to the empty string. Return a reference to
+  // this cursor.
+  ByteCursor& CString(string* str) {
+    const uint8_t* end
+      = static_cast<const uint8_t*>(memchr(here_, '\0', Available()));
+    if (end) {
+      str->assign(reinterpret_cast<const char*>(here_), end - here_);
+      here_ = end + 1;
+    } else {
+      str->clear();
+      here_ = buffer_->end;
+      complete_ = false;
+    }
+    return *this;
+  }
+
+  // Like CString(STR), but extract the string from a fixed-width buffer
+  // LIMIT bytes long, which may or may not contain a terminating '\0'
+  // byte. Specifically:
+  //
+  // - If there are not LIMIT bytes available at the cursor, clear the
+  //   cursor's complete_ flag and set STR to the empty string.
+  //
+  // - Otherwise, if the LIMIT bytes at the cursor contain any '\0'
+  //   characters, set *STR to a copy of the bytes before the first '\0',
+  //   and advance the cursor by LIMIT bytes.
+  //   
+  // - Otherwise, set *STR to a copy of those LIMIT bytes, and advance the
+  //   cursor by LIMIT bytes.
+  ByteCursor& CString(string* str, size_t limit) {
+    if (CheckAvailable(limit)) {
+      const uint8_t* end
+        = static_cast<const uint8_t*>(memchr(here_, '\0', limit));
+      if (end)
+        str->assign(reinterpret_cast<const char*>(here_), end - here_);
+      else
+        str->assign(reinterpret_cast<const char*>(here_), limit);
+      here_ += limit;
+    } else {
+      str->clear();
+    }
+    return *this;
+  }
+
+  // Set *POINTER to point to the SIZE bytes at the cursor, and advance
+  // this cursor to the end of them. If SIZE is omitted, don't move the
+  // cursor. If we read off the end of our buffer, clear this cursor's
+  // complete_ flag, and set *POINTER to NULL. Return a reference to this
+  // cursor.
+  ByteCursor& PointTo(const uint8_t** pointer, size_t size = 0) {
+    if (CheckAvailable(size)) {
+      *pointer = here_;
+      here_ += size;
+    } else {
+      *pointer = NULL;
+    }
+    return *this;
+  }
+
+  // Skip SIZE bytes at the cursor. If doing so would advance us off
+  // the end of our buffer, clear this cursor's complete_ flag, and
+  // set *POINTER to NULL. Return a reference to this cursor.
+  ByteCursor& Skip(size_t size) {
+    if (CheckAvailable(size))
+      here_ += size;
+    return *this;
+  }
+
+ private:
+  // If there are at least SIZE bytes available to read from the buffer,
+  // return true. Otherwise, set here_ to the end of the buffer, set
+  // complete_ to false, and return false.
+  bool CheckAvailable(size_t size) {
+    if (Available() >= size) {
+      return true;
+    } else {
+      here_ = buffer_->end;
+      complete_ = false;
+      return false;
+    }
+  }
+
+  // The buffer we're reading bytes from.
+  const ByteBuffer* buffer_;
+
+  // The next byte within buffer_ that we'll read.
+  const uint8_t* here_;
+
+  // True if we should read numbers in big-endian form; false if we
+  // should read in little-endian form.
+  bool big_endian_;
+
+  // True if we've been able to read all we've been asked to.
+  bool complete_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_BYTE_CURSOR_H_
diff --git a/src/common/byte_cursor_unittest.cc b/src/common/byte_cursor_unittest.cc
new file mode 100644
index 0000000..45e6f2b
--- /dev/null
+++ b/src/common/byte_cursor_unittest.cc
@@ -0,0 +1,776 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// byte_cursor_unittest.cc: Unit tests for google_breakpad::ByteBuffer
+// and google_breakpad::ByteCursor.
+
+#include <string>
+
+#include <string.h>
+
+#include "breakpad_googletest_includes.h"
+#include "common/byte_cursor.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::ByteBuffer;
+using google_breakpad::ByteCursor;
+
+TEST(Buffer, SizeOfNothing) {
+  uint8_t data[1];
+  ByteBuffer buffer(data, 0);
+  EXPECT_EQ(0U, buffer.Size());
+}
+
+TEST(Buffer, SizeOfSomething) {
+  uint8_t data[10];
+  ByteBuffer buffer(data, sizeof(data));
+  EXPECT_EQ(10U, buffer.Size());
+}
+
+TEST(Extent, AvailableEmpty) {
+  uint8_t data[1];
+  ByteBuffer buffer(data, 0);
+  ByteCursor cursor(&buffer);
+  EXPECT_EQ(0U, cursor.Available());
+}
+
+TEST(Extent, AtEndEmpty) {
+  uint8_t data[1];
+  ByteBuffer buffer(data, 0);
+  ByteCursor cursor(&buffer);
+  EXPECT_TRUE(cursor.AtEnd());
+}
+
+TEST(Extent, AsBoolEmpty) {
+  uint8_t data[1];
+  ByteBuffer buffer(data, 0);
+  ByteCursor cursor(&buffer);
+  EXPECT_TRUE(cursor);
+}
+
+TEST(Extent, AvailableSome) {
+  uint8_t data[10];
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  EXPECT_EQ(10U, cursor.Available());
+}
+
+TEST(Extent, AtEndSome) {
+  uint8_t data[10];
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  EXPECT_FALSE(cursor.AtEnd());
+  EXPECT_TRUE(cursor.Skip(sizeof(data)).AtEnd());
+}
+
+TEST(Extent, AsBoolSome) {
+  uint8_t data[10];
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  EXPECT_TRUE(cursor);
+  EXPECT_TRUE(cursor.Skip(sizeof(data)));
+  EXPECT_FALSE(cursor.Skip(1));
+}
+
+TEST(Extent, Cursor) {
+  uint8_t data[] = { 0xf7,
+                     0x9f, 0xbe,
+                     0x67, 0xfb, 0xd3, 0x58,
+                     0x6f, 0x36, 0xde, 0xd1,
+                     0x2a, 0x2a, 0x2a };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+
+  uint8_t a;
+  uint16_t b;
+  uint32_t c;
+  uint32_t d;
+  uint8_t stars[3];
+
+  EXPECT_EQ(data + 0U, cursor.here());
+
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(data + 1U, cursor.here());
+
+  EXPECT_TRUE(cursor >> b);
+  EXPECT_EQ(data + 3U, cursor.here());
+
+  EXPECT_TRUE(cursor >> c);
+  EXPECT_EQ(data + 7U, cursor.here());
+
+  EXPECT_TRUE(cursor.Skip(4));
+  EXPECT_EQ(data + 11U, cursor.here());
+
+  EXPECT_TRUE(cursor.Read(stars, 3));
+  EXPECT_EQ(data + 14U, cursor.here());
+
+  EXPECT_FALSE(cursor >> d);
+  EXPECT_EQ(data + 14U, cursor.here());
+}
+
+TEST(Extent, SetOffset) {
+  uint8_t data[] = { 0x5c, 0x79, 0x8c, 0xd5 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+
+  uint8_t a, b, c, d, e;
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(0x5cU, a);
+  EXPECT_EQ(data + 1U, cursor.here());
+  EXPECT_TRUE(((cursor >> b).set_here(data + 3) >> c).set_here(data + 1)
+              >> d >> e);
+  EXPECT_EQ(0x79U, b);
+  EXPECT_EQ(0xd5U, c);
+  EXPECT_EQ(0x79U, d);
+  EXPECT_EQ(0x8cU, e);
+  EXPECT_EQ(data + 3U, cursor.here());
+}
+
+TEST(BigEndian, Signed1) {
+  uint8_t data[] = { 0x00, 0x7f, 0x80, 0xff };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  cursor.set_big_endian(true);
+  int a, b, c, d, e;
+  ASSERT_TRUE(cursor
+              .Read(1, true, &a)
+              .Read(1, true, &b)
+              .Read(1, true, &c)
+              .Read(1, true, &d));
+  EXPECT_EQ(0,     a);
+  EXPECT_EQ(0x7f,  b);
+  EXPECT_EQ(-0x80, c);
+  EXPECT_EQ(-1,    d);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(1, true, &e));
+}
+
+TEST(BigEndian, Signed2) {
+  uint8_t data[] = { 0x00, 0x00,   0x00, 0x80,   0x7f, 0xff,
+                     0x80, 0x00,   0x80, 0x80,   0xff, 0xff,
+                     0x39, 0xf1,   0x8a, 0xbc,   0x5a, 0xec };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, true);
+  int a, b, c, d, e, f, g, h, i, j;
+  ASSERT_TRUE(cursor
+              .Read(2, true, &a)
+              .Read(2, true, &b)
+              .Read(2, true, &c)
+              .Read(2, true, &d)
+              .Read(2, true, &e)
+              .Read(2, true, &f)
+              .Read(2, true, &g)
+              .Read(2, true, &h)
+              .Read(2, true, &i));
+  EXPECT_EQ(0,       a);
+  EXPECT_EQ(0x80,    b);
+  EXPECT_EQ(0x7fff,  c);
+  EXPECT_EQ(-0x8000, d);
+  EXPECT_EQ(-0x7f80, e);
+  EXPECT_EQ(-1,      f);
+  EXPECT_EQ(0x39f1,  g);
+  EXPECT_EQ(-0x7544, h);
+  EXPECT_EQ(0x5aec,  i);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(2, true, &j));
+}
+
+TEST(BigEndian, Signed4) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00,
+                     0x7f, 0xff, 0xff, 0xff,
+                     0x80, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0xff,
+                     0xb6, 0xb1, 0xff, 0xef,
+                     0x19, 0x6a, 0xca, 0x46 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  cursor.set_big_endian(true);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(4, true, &a)
+              .Read(4, true, &b)
+              .Read(4, true, &c)
+              .Read(4, true, &d)
+              .Read(4, true, &e)
+              .Read(4, true, &f));
+  EXPECT_EQ(0,                    a);
+  EXPECT_EQ(0x7fffffff,           b);
+  EXPECT_EQ(-0x80000000LL,        c);
+  EXPECT_EQ(-1,                   d);
+  EXPECT_EQ((int32_t) 0xb6b1ffef, e);
+  EXPECT_EQ(0x196aca46,           f);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(4, true, &g));
+}
+
+TEST(BigEndian, Signed8) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+                     0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x93, 0x20, 0xd5, 0xe9, 0xd2, 0xd5, 0x87, 0x9c,
+                     0x4e, 0x42, 0x49, 0xd2, 0x7f, 0x84, 0x14, 0xa4 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, true);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(8, true, &a)
+              .Read(8, true, &b)
+              .Read(8, true, &c)
+              .Read(8, true, &d)
+              .Read(8, true, &e)
+              .Read(8, true, &f));
+  EXPECT_EQ(0,                               a);
+  EXPECT_EQ(0x7fffffffffffffffLL,            b);
+  EXPECT_EQ(-0x7fffffffffffffffLL - 1,       c);
+  EXPECT_EQ(-1,                              d);
+  EXPECT_EQ((int64_t) 0x9320d5e9d2d5879cULL, e);
+  EXPECT_EQ(0x4e4249d27f8414a4LL,            f);  
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(8, true, &g));
+}
+
+TEST(BigEndian, Unsigned1) {
+  uint8_t data[] = { 0x00, 0x7f, 0x80, 0xff };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  cursor.set_big_endian(true);
+  int32_t a, b, c, d, e;
+  ASSERT_TRUE(cursor
+              .Read(1, false, &a)
+              .Read(1, false, &b)
+              .Read(1, false, &c)
+              .Read(1, false, &d));
+  EXPECT_EQ(0,    a);
+  EXPECT_EQ(0x7f, b);
+  EXPECT_EQ(0x80, c);
+  EXPECT_EQ(0xff, d);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(1, false, &e));
+}
+
+TEST(BigEndian, Unsigned2) {
+  uint8_t data[] = { 0x00, 0x00,   0x00, 0x80,   0x7f, 0xff,
+                     0x80, 0x00,   0x80, 0x80,   0xff, 0xff,
+                     0x39, 0xf1,   0x8a, 0xbc,   0x5a, 0xec };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, true);
+  int64_t a, b, c, d, e, f, g, h, i, j;
+  ASSERT_TRUE(cursor
+              .Read(2, false, &a)
+              .Read(2, false, &b)
+              .Read(2, false, &c)
+              .Read(2, false, &d)
+              .Read(2, false, &e)
+              .Read(2, false, &f)
+              .Read(2, false, &g)
+              .Read(2, false, &h)
+              .Read(2, false, &i));
+  EXPECT_EQ(0,      a);
+  EXPECT_EQ(0x80,   b);
+  EXPECT_EQ(0x7fff, c);
+  EXPECT_EQ(0x8000, d);
+  EXPECT_EQ(0x8080, e);
+  EXPECT_EQ(0xffff, f);
+  EXPECT_EQ(0x39f1, g);
+  EXPECT_EQ(0x8abc, h);
+  EXPECT_EQ(0x5aec, i);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(2, false, &j));
+}
+
+TEST(BigEndian, Unsigned4) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00,
+                     0x7f, 0xff, 0xff, 0xff,
+                     0x80, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0xff,
+                     0xb6, 0xb1, 0xff, 0xef,
+                     0x19, 0x6a, 0xca, 0x46 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  cursor.set_big_endian(true);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(4, false, &a)
+              .Read(4, false, &b)
+              .Read(4, false, &c)
+              .Read(4, false, &d)
+              .Read(4, false, &e)
+              .Read(4, false, &f));
+  EXPECT_EQ(0,          a);
+  EXPECT_EQ(0x7fffffff, b);
+  EXPECT_EQ(0x80000000, c);
+  EXPECT_EQ(0xffffffff, d);
+  EXPECT_EQ(0xb6b1ffef, e);
+  EXPECT_EQ(0x196aca46, f);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(4, false, &g));
+}
+
+TEST(BigEndian, Unsigned8) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+                     0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x93, 0x20, 0xd5, 0xe9, 0xd2, 0xd5, 0x87, 0x9c,
+                     0x4e, 0x42, 0x49, 0xd2, 0x7f, 0x84, 0x14, 0xa4 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, true);
+  uint64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(8, false, &a)
+              .Read(8, false, &b)
+              .Read(8, false, &c)
+              .Read(8, false, &d)
+              .Read(8, false, &e)
+              .Read(8, false, &f));
+  EXPECT_EQ(0U,                    a);
+  EXPECT_EQ(0x7fffffffffffffffULL, b);
+  EXPECT_EQ(0x8000000000000000ULL, c);
+  EXPECT_EQ(0xffffffffffffffffULL, d);
+  EXPECT_EQ(0x9320d5e9d2d5879cULL, e);
+  EXPECT_EQ(0x4e4249d27f8414a4ULL, f);  
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(8, false, &g));
+}
+
+TEST(LittleEndian, Signed1) {
+  uint8_t data[] = { 0x00, 0x7f, 0x80, 0xff };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int32_t a, b, c, d, e;
+  ASSERT_TRUE(cursor
+              .Read(1, true, &a)
+              .Read(1, true, &b)
+              .Read(1, true, &c)
+              .Read(1, true, &d));
+  EXPECT_EQ(0,     a);
+  EXPECT_EQ(0x7f,  b);
+  EXPECT_EQ(-0x80, c);
+  EXPECT_EQ(-1,    d);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(1, true, &e));
+}
+
+TEST(LittleEndian, Signed2) {
+  uint8_t data[] = { 0x00, 0x00,   0x80, 0x00,   0xff, 0x7f,
+                     0x00, 0x80,   0x80, 0x80,   0xff, 0xff,
+                     0xf1, 0x39,   0xbc, 0x8a,   0xec, 0x5a };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, false);
+  int32_t a, b, c, d, e, f, g, h, i, j;
+  ASSERT_TRUE(cursor
+              .Read(2, true, &a)
+              .Read(2, true, &b)
+              .Read(2, true, &c)
+              .Read(2, true, &d)
+              .Read(2, true, &e)
+              .Read(2, true, &f)
+              .Read(2, true, &g)
+              .Read(2, true, &h)
+              .Read(2, true, &i));
+  EXPECT_EQ(0,       a);
+  EXPECT_EQ(0x80,    b);
+  EXPECT_EQ(0x7fff,  c);
+  EXPECT_EQ(-0x8000, d);
+  EXPECT_EQ(-0x7f80, e);
+  EXPECT_EQ(-1,      f);
+  EXPECT_EQ(0x39f1,  g);
+  EXPECT_EQ(-0x7544, h);
+  EXPECT_EQ(0x5aec,  i);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(2, true, &j));
+}
+
+TEST(LittleEndian, Signed4) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0x7f,
+                     0x00, 0x00, 0x00, 0x80,
+                     0xff, 0xff, 0xff, 0xff,
+                     0xef, 0xff, 0xb1, 0xb6, 
+                     0x46, 0xca, 0x6a, 0x19 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(4, true, &a)
+              .Read(4, true, &b)
+              .Read(4, true, &c)
+              .Read(4, true, &d)
+              .Read(4, true, &e)
+              .Read(4, true, &f));
+  EXPECT_EQ(0,                    a);
+  EXPECT_EQ(0x7fffffff,           b);
+  EXPECT_EQ(-0x80000000LL,        c);
+  EXPECT_EQ(-1,                   d);
+  EXPECT_EQ((int32_t) 0xb6b1ffef, e);
+  EXPECT_EQ(0x196aca46,           f);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(4, true, &g));
+}
+
+TEST(LittleEndian, Signed8) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
+                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x9c, 0x87, 0xd5, 0xd2, 0xe9, 0xd5, 0x20, 0x93,
+                     0xa4, 0x14, 0x84, 0x7f, 0xd2, 0x49, 0x42, 0x4e };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer, false);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(8, true, &a)
+              .Read(8, true, &b)
+              .Read(8, true, &c)
+              .Read(8, true, &d)
+              .Read(8, true, &e)
+              .Read(8, true, &f));
+  EXPECT_EQ(0,                               a);
+  EXPECT_EQ(0x7fffffffffffffffLL,            b);
+  EXPECT_EQ(-0x7fffffffffffffffLL - 1,       c);
+  EXPECT_EQ(-1,                              d);
+  EXPECT_EQ((int64_t) 0x9320d5e9d2d5879cULL, e);
+  EXPECT_EQ(0x4e4249d27f8414a4LL,            f);  
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(8, true, &g));
+}
+
+TEST(LittleEndian, Unsigned1) {
+  uint8_t data[] = { 0x00, 0x7f, 0x80, 0xff };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int32_t a, b, c, d, e;
+  ASSERT_TRUE(cursor
+              .Read(1, false, &a)
+              .Read(1, false, &b)
+              .Read(1, false, &c)
+              .Read(1, false, &d));
+  EXPECT_EQ(0,    a);
+  EXPECT_EQ(0x7f, b);
+  EXPECT_EQ(0x80, c);
+  EXPECT_EQ(0xff, d);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(1, false, &e));
+}
+
+TEST(LittleEndian, Unsigned2) {
+  uint8_t data[] = { 0x00, 0x00,   0x80, 0x00,   0xff, 0x7f,
+                     0x00, 0x80,   0x80, 0x80,   0xff, 0xff,
+                     0xf1, 0x39,   0xbc, 0x8a,   0xec, 0x5a };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int32_t a, b, c, d, e, f, g, h, i, j;
+  ASSERT_TRUE(cursor
+              .Read(2, false, &a)
+              .Read(2, false, &b)
+              .Read(2, false, &c)
+              .Read(2, false, &d)
+              .Read(2, false, &e)
+              .Read(2, false, &f)
+              .Read(2, false, &g)
+              .Read(2, false, &h)
+              .Read(2, false, &i));
+  EXPECT_EQ(0,      a);
+  EXPECT_EQ(0x80,   b);
+  EXPECT_EQ(0x7fff, c);
+  EXPECT_EQ(0x8000, d);
+  EXPECT_EQ(0x8080, e);
+  EXPECT_EQ(0xffff, f);
+  EXPECT_EQ(0x39f1, g);
+  EXPECT_EQ(0x8abc, h);
+  EXPECT_EQ(0x5aec, i);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(2, false, &j));
+}
+
+TEST(LittleEndian, Unsigned4) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00,
+                     0xff, 0xff, 0xff, 0x7f,
+                     0x00, 0x00, 0x00, 0x80,
+                     0xff, 0xff, 0xff, 0xff,
+                     0xef, 0xff, 0xb1, 0xb6,
+                     0x46, 0xca, 0x6a, 0x19 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(4, false, &a)
+              .Read(4, false, &b)
+              .Read(4, false, &c)
+              .Read(4, false, &d)
+              .Read(4, false, &e)
+              .Read(4, false, &f));
+  EXPECT_EQ(0,          a);
+  EXPECT_EQ(0x7fffffff, b);
+  EXPECT_EQ(0x80000000, c);
+  EXPECT_EQ(0xffffffff, d);
+  EXPECT_EQ(0xb6b1ffef, e);
+  EXPECT_EQ(0x196aca46, f);
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(4, false, &g));
+}
+
+TEST(LittleEndian, Unsigned8) {
+  uint8_t data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
+                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+                     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+                     0x9c, 0x87, 0xd5, 0xd2, 0xe9, 0xd5, 0x20, 0x93,
+                     0xa4, 0x14, 0x84, 0x7f, 0xd2, 0x49, 0x42, 0x4e };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  uint64_t a, b, c, d, e, f, g;
+  ASSERT_TRUE(cursor
+              .Read(8, false, &a)
+              .Read(8, false, &b)
+              .Read(8, false, &c)
+              .Read(8, false, &d)
+              .Read(8, false, &e)
+              .Read(8, false, &f));
+  EXPECT_EQ(0U,                    a);
+  EXPECT_EQ(0x7fffffffffffffffULL, b);
+  EXPECT_EQ(0x8000000000000000ULL, c);
+  EXPECT_EQ(0xffffffffffffffffULL, d);
+  EXPECT_EQ(0x9320d5e9d2d5879cULL, e);
+  EXPECT_EQ(0x4e4249d27f8414a4ULL, f);  
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor.Read(8, false, &g));
+}
+
+TEST(Extractor, Signed1) {
+  uint8_t data[] = { 0xfd };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int8_t a;
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(-3, a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Signed2) {
+  uint8_t data[] = { 0x13, 0xcd };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int16_t a;
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(-13037, a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Signed4) {
+  uint8_t data[] = { 0xd2, 0xe4, 0x53, 0xe9 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  int32_t a;
+  // For some reason, G++ 4.4.1 complains:
+  //   warning: array subscript is above array bounds
+  // in ByteCursor::Read(size_t, bool, T*) as it inlines this call, but
+  // I'm not able to see how such a reference would occur.
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(-380377902, a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Unsigned1) {
+  uint8_t data[] = { 0xfd };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  uint8_t a;
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(0xfd, a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Unsigned2) {
+  uint8_t data[] = { 0x13, 0xcd };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  uint16_t a;
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(0xcd13, a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Unsigned4) {
+  uint8_t data[] = { 0xd2, 0xe4, 0x53, 0xe9 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  uint32_t a;
+  // For some reason, G++ 4.4.1 complains:
+  //   warning: array subscript is above array bounds
+  // in ByteCursor::Read(size_t, bool, T*) as it inlines this call, but
+  // I'm not able to see how such a reference would occur.
+  EXPECT_TRUE(cursor >> a);
+  EXPECT_EQ(0xe953e4d2, a);
+  EXPECT_FALSE(cursor >> a);
+  EXPECT_FALSE(cursor >> a);
+}
+
+TEST(Extractor, Mixed) {
+  uint8_t data[] = { 0x42,
+                     0x25, 0x0b,
+                     0x3d, 0x25, 0xed, 0x2a,
+                     0xec, 0x16, 0x9e, 0x14, 0x61, 0x5b, 0x2c, 0xcf,
+                     0xd8,
+                     0x22, 0xa5,
+                     0x3a, 0x02, 0x6a, 0xd7,
+                     0x93, 0x2a, 0x2d, 0x8d, 0xb4, 0x95, 0xe0, 0xc6 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+  cursor.set_big_endian(true);
+
+  uint8_t a;
+  uint16_t b;
+  uint32_t c;
+  uint64_t d;
+  int8_t e;
+  int16_t f;
+  int32_t g;
+  int64_t h;
+  int z;
+  EXPECT_FALSE(cursor.AtEnd());
+  EXPECT_TRUE(cursor >> a >> b >> c >> d >> e >> f >> g >> h);
+  EXPECT_EQ(0x42U, a);
+  EXPECT_EQ(0x250bU, b);
+  EXPECT_EQ(0x3d25ed2aU, c);
+  EXPECT_EQ(0xec169e14615b2ccfULL, d);
+  EXPECT_EQ(-40, e);
+  EXPECT_EQ(0x22a5, f);
+  EXPECT_EQ(0x3a026ad7, g);
+  EXPECT_EQ(-7842405714468937530LL, h);
+
+  EXPECT_TRUE(cursor.AtEnd());
+  EXPECT_FALSE(cursor >> z);
+}
+
+TEST(Strings, Zero) {
+  uint8_t data[] = { 0xa6 };
+  ByteBuffer buffer(data, 0);
+  ByteCursor cursor(&buffer);
+
+  uint8_t received[1];
+  received[0] = 0xc2;
+  EXPECT_TRUE(cursor.Read(received, 0));
+  EXPECT_EQ(0xc2U, received[0]);
+}
+
+TEST(Strings, Some) {
+  uint8_t data[] = { 0x5d, 0x31, 0x09, 0xa6, 0x2e, 0x2c, 0x83, 0xbb };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+
+  uint8_t received[7] = { 0xa7, 0xf7, 0x43, 0x0c, 0x27, 0xea, 0xed };
+  EXPECT_TRUE(cursor.Skip(2).Read(received, 5));
+  uint8_t expected[7] = { 0x09, 0xa6, 0x2e, 0x2c, 0x83, 0xea, 0xed };
+  EXPECT_TRUE(memcmp(received, expected, 7) == 0);
+}
+
+TEST(Strings, TooMuch) {
+  uint8_t data[] = { 0x5d, 0x31, 0x09, 0xa6, 0x2e, 0x2c, 0x83, 0xbb };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+
+  uint8_t received1[3];
+  uint8_t received2[3];
+  uint8_t received3[3];
+  EXPECT_FALSE(cursor
+               .Read(received1, 3)
+               .Read(received2, 3)
+               .Read(received3, 3));
+  uint8_t expected1[3] = { 0x5d, 0x31, 0x09 };
+  uint8_t expected2[3] = { 0xa6, 0x2e, 0x2c };
+
+  EXPECT_TRUE(memcmp(received1, expected1, 3) == 0);
+  EXPECT_TRUE(memcmp(received2, expected2, 3) == 0);
+}
+
+TEST(Strings, PointTo) {
+  uint8_t data[] = { 0x83, 0x80, 0xb4, 0x38, 0x00, 0x2c, 0x0a, 0x27 };
+  ByteBuffer buffer(data, sizeof(data));
+  ByteCursor cursor(&buffer);
+
+  const uint8_t* received1;
+  const uint8_t* received2;
+  const uint8_t* received3;
+  const uint8_t* received4;
+  EXPECT_FALSE(cursor
+               .PointTo(&received1, 3)
+               .PointTo(&received2, 3)
+               .PointTo(&received3)
+               .PointTo(&received4, 3));
+  EXPECT_EQ(data + 0, received1);
+  EXPECT_EQ(data + 3, received2);
+  EXPECT_EQ(data + 6, received3);
+  EXPECT_EQ(NULL, received4);
+}
+
+TEST(Strings, CString) {
+  uint8_t data[] = "abc\0\0foo";
+  ByteBuffer buffer(data, sizeof(data) - 1);  // don't include terminating '\0'
+  ByteCursor cursor(&buffer);
+
+  string a, b, c;
+  EXPECT_TRUE(cursor.CString(&a).CString(&b));
+  EXPECT_EQ("abc", a);
+  EXPECT_EQ("", b);
+  EXPECT_FALSE(cursor.CString(&c));
+  EXPECT_EQ("", c);
+  EXPECT_TRUE(cursor.AtEnd());
+}
+
+TEST(Strings, CStringLimit) {
+  uint8_t data[] = "abcdef\0\0foobar";
+  ByteBuffer buffer(data, sizeof(data) - 1);  // don't include terminating '\0'
+  ByteCursor cursor(&buffer);
+
+  string a, b, c, d, e;
+
+  EXPECT_TRUE(cursor.CString(&a, 3));
+  EXPECT_EQ("abc", a);
+
+  EXPECT_TRUE(cursor.CString(&b, 0));
+  EXPECT_EQ("", b);
+
+  EXPECT_TRUE(cursor.CString(&c, 6));
+  EXPECT_EQ("def", c);
+
+  EXPECT_TRUE(cursor.CString(&d, 4));
+  EXPECT_EQ("ooba", d);
+
+  EXPECT_FALSE(cursor.CString(&e, 4));
+  EXPECT_EQ("", e);
+
+  EXPECT_TRUE(cursor.AtEnd());
+}
+
+//  uint8_t data[] = { 0xa6, 0x54, 0xdf, 0x67, 0x51, 0x43, 0xac, 0xf1 };
+//  ByteBuffer buffer(data, sizeof(data));
diff --git a/src/common/common.gyp b/src/common/common.gyp
new file mode 100644
index 0000000..c1dbb0f
--- /dev/null
+++ b/src/common/common.gyp
@@ -0,0 +1,260 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'target_defaults': {
+    'target_conditions': [
+      ['OS=="mac"', {
+        'defines': ['HAVE_MACH_O_NLIST_H'],
+      }],
+      ['OS=="linux"', {
+        # Assume glibc.
+        'defines': ['HAVE_A_OUT_H', 'HAVE_GETCONTEXT'],
+        'sources!': [
+          'linux/breakpad_getcontext.S',
+          'linux/breakpad_getcontext.h',
+          'linux/breakpad_getcontext_unittest.cc',
+        ],
+      }],
+      ['OS!="android"', {'sources/': [['exclude', '(^|/)android/']]}],
+      ['OS!="linux"', {'sources/': [['exclude', '(^|/)linux/']]}],
+      ['OS!="mac"', {'sources/': [['exclude', '(^|/)mac/']]}],
+      ['OS!="solaris"', {'sources/': [['exclude', '(^|/)solaris/']]}],
+      ['OS!="win"', {'sources/': [['exclude', '(^|/)windows/']]}],
+    ],
+  },
+  'targets': [
+    {
+      'target_name': 'common',
+      'type': 'static_library',
+      'sources': [
+        'android/include/elf.h',
+        'android/include/link.h',
+        'android/include/stab.h',
+        'android/include/sys/procfs.h',
+        'android/include/sys/user.h',
+        'android/testing/include/wchar.h',
+        'android/testing/mkdtemp.h',
+        'android/testing/pthread_fixes.h',
+        'android/ucontext_constants.h',
+        'basictypes.h',
+        'byte_cursor.h',
+        'convert_UTF.cc',
+        'convert_UTF.h',
+        'dwarf/bytereader-inl.h',
+        'dwarf/bytereader.cc',
+        'dwarf/bytereader.h',
+        'dwarf/cfi_assembler.cc',
+        'dwarf/cfi_assembler.h',
+        'dwarf/dwarf2diehandler.cc',
+        'dwarf/dwarf2diehandler.h',
+        'dwarf/dwarf2enums.h',
+        'dwarf/dwarf2reader.cc',
+        'dwarf/dwarf2reader.h',
+        'dwarf/dwarf2reader_test_common.h',
+        'dwarf/elf_reader.cc',
+        'dwarf/elf_reader.h',
+        'dwarf/functioninfo.cc',
+        'dwarf/functioninfo.h',
+        'dwarf/line_state_machine.h',
+        'dwarf/types.h',
+        'dwarf_cfi_to_module.cc',
+        'dwarf_cfi_to_module.h',
+        'dwarf_cu_to_module.cc',
+        'dwarf_cu_to_module.h',
+        'dwarf_line_to_module.cc',
+        'dwarf_line_to_module.h',
+        'language.cc',
+        'language.h',
+        'linux/breakpad_getcontext.S',
+        'linux/breakpad_getcontext.h',
+        'linux/crc32.cc',
+        'linux/crc32.h',
+        'linux/dump_symbols.cc',
+        'linux/dump_symbols.h',
+        'linux/eintr_wrapper.h',
+        'linux/elf_core_dump.cc',
+        'linux/elf_core_dump.h',
+        'linux/elf_gnu_compat.h',
+        'linux/elf_symbols_to_module.cc',
+        'linux/elf_symbols_to_module.h',
+        'linux/elfutils-inl.h',
+        'linux/elfutils.cc',
+        'linux/elfutils.h',
+        'linux/file_id.cc',
+        'linux/file_id.h',
+        'linux/google_crashdump_uploader.cc',
+        'linux/google_crashdump_uploader.h',
+        'linux/guid_creator.cc',
+        'linux/guid_creator.h',
+        'linux/http_upload.cc',
+        'linux/http_upload.h',
+        'linux/ignore_ret.h',
+        'linux/libcurl_wrapper.cc',
+        'linux/libcurl_wrapper.h',
+        'linux/linux_libc_support.cc',
+        'linux/linux_libc_support.h',
+        'linux/memory_mapped_file.cc',
+        'linux/memory_mapped_file.h',
+        'linux/safe_readlink.cc',
+        'linux/safe_readlink.h',
+        'linux/symbol_collector_client.cc',
+        'linux/symbol_collector_client.h',
+        'linux/synth_elf.cc',
+        'linux/synth_elf.h',
+        'long_string_dictionary.cc',
+        'long_string_dictionary.h',
+        'mac/arch_utilities.cc',
+        'mac/arch_utilities.h',
+        'mac/bootstrap_compat.cc',
+        'mac/bootstrap_compat.h',
+        'mac/byteswap.h',
+        'mac/dump_syms.h',
+        'mac/dump_syms.cc',
+        'mac/file_id.cc',
+        'mac/file_id.h',
+        'mac/GTMDefines.h',
+        'mac/GTMLogger.h',
+        'mac/GTMLogger.m',
+        'mac/HTTPMultipartUpload.h',
+        'mac/HTTPMultipartUpload.m',
+        'mac/MachIPC.h',
+        'mac/MachIPC.mm',
+        'mac/macho_id.cc',
+        'mac/macho_id.h',
+        'mac/macho_reader.cc',
+        'mac/macho_reader.h',
+        'mac/macho_utilities.cc',
+        'mac/macho_utilities.h',
+        'mac/macho_walker.cc',
+        'mac/macho_walker.h',
+        'mac/scoped_task_suspend-inl.h',
+        'mac/string_utilities.cc',
+        'mac/string_utilities.h',
+        'mac/super_fat_arch.h',
+        'md5.cc',
+        'md5.h',
+        'memory_allocator.h',
+        'memory_range.h',
+        'module.cc',
+        'module.h',
+        'scoped_ptr.h',
+        'simple_string_dictionary.cc',
+        'simple_string_dictionary.h',
+        'solaris/dump_symbols.cc',
+        'solaris/dump_symbols.h',
+        'solaris/file_id.cc',
+        'solaris/file_id.h',
+        'solaris/guid_creator.cc',
+        'solaris/guid_creator.h',
+        'solaris/message_output.h',
+        'stabs_reader.cc',
+        'stabs_reader.h',
+        'stabs_to_module.cc',
+        'stabs_to_module.h',
+        'string_conversion.cc',
+        'string_conversion.h',
+        'symbol_data.h',
+        'test_assembler.cc',
+        'test_assembler.h',
+        'unordered.h',
+        'using_std_string.h',
+        'windows/common_windows.gyp',
+        'windows/dia_util.cc',
+        'windows/dia_util.h',
+        'windows/guid_string.cc',
+        'windows/guid_string.h',
+        'windows/http_upload.cc',
+        'windows/http_upload.h',
+        'windows/omap.cc',
+        'windows/omap.h',
+        'windows/omap_internal.h',
+        'windows/pdb_source_line_writer.cc',
+        'windows/pdb_source_line_writer.h',
+        'windows/string_utils-inl.h',
+        'windows/string_utils.cc',
+      ],
+      'include_dirs': [
+        '..',
+      ],
+    },
+    {
+      'target_name': 'common_unittests',
+      'type': 'executable',
+      'sources': [
+        'byte_cursor_unittest.cc',
+        'dwarf/bytereader_unittest.cc',
+        'dwarf/dwarf2diehandler_unittest.cc',
+        'dwarf/dwarf2reader_cfi_unittest.cc',
+        'dwarf/dwarf2reader_die_unittest.cc',
+        'dwarf_cfi_to_module_unittest.cc',
+        'dwarf_cu_to_module_unittest.cc',
+        'dwarf_line_to_module_unittest.cc',
+        'linux/breakpad_getcontext_unittest.cc',
+        'linux/dump_symbols_unittest.cc',
+        'linux/elf_core_dump_unittest.cc',
+        'linux/elf_symbols_to_module_unittest.cc',
+        'linux/file_id_unittest.cc',
+        'linux/google_crashdump_uploader_test.cc',
+        'linux/linux_libc_support_unittest.cc',
+        'linux/memory_mapped_file_unittest.cc',
+        'linux/safe_readlink_unittest.cc',
+        'linux/synth_elf_unittest.cc',
+        'linux/tests/auto_testfile.h',
+        'linux/tests/crash_generator.cc',
+        'linux/tests/crash_generator.h',
+        'long_string_dictionary_unittest.cc',
+        'mac/macho_reader_unittest.cc',
+        'memory_allocator_unittest.cc',
+        'memory_range_unittest.cc',
+        'module_unittest.cc',
+        'simple_string_dictionary_unittest.cc',
+        'stabs_reader_unittest.cc',
+        'stabs_to_module_unittest.cc',
+        'string_conversion_unittest.cc',
+        'test_assembler_unittest.cc',
+        'tests/auto_tempdir.h',
+        'tests/file_utils.cc',
+        'tests/file_utils.h',
+        'windows/omap_unittest.cc',
+      ],
+      'include_dirs': [
+        '..',
+      ],
+      'dependencies': [
+        'common',
+        '../build/testing.gyp:gmock_main',
+        '../build/testing.gyp:gmock',
+        '../build/testing.gyp:gtest',
+      ],
+      'libraries': [
+        '-ldl',
+      ],
+    },
+  ],
+}
diff --git a/src/common/convert_UTF.cc b/src/common/convert_UTF.cc
new file mode 100644
index 0000000..4a5df1e
--- /dev/null
+++ b/src/common/convert_UTF.cc
@@ -0,0 +1,591 @@
+/*
+ * Copyright © 1991-2015 Unicode, Inc. All rights reserved.
+ * Distributed under the Terms of Use in 
+ * http://www.unicode.org/copyright.html.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Unicode data files and any associated documentation
+ * (the "Data Files") or Unicode software and any associated documentation
+ * (the "Software") to deal in the Data Files or Software
+ * without restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, and/or sell copies of
+ * the Data Files or Software, and to permit persons to whom the Data Files
+ * or Software are furnished to do so, provided that
+ * (a) this copyright and permission notice appear with all copies 
+ * of the Data Files or Software,
+ * (b) this copyright and permission notice appear in associated 
+ * documentation, and
+ * (c) there is clear notice in each modified Data File or in the Software
+ * as well as in the documentation associated with the Data File(s) or
+ * Software that the data or software has been modified.
+ *
+ * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+ * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+ * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in these Data Files or Software without prior
+ * written authorization of the copyright holder.
+ */
+
+/* ---------------------------------------------------------------------
+
+Conversions between UTF32, UTF-16, and UTF-8. Source code file.
+Author: Mark E. Davis, 1994.
+Rev History: Rick McGowan, fixes & updates May 2001.
+Sept 2001: fixed const & error conditions per
+mods suggested by S. Parent & A. Lillich.
+June 2002: Tim Dodd added detection and handling of incomplete
+source sequences, enhanced error detection, added casts
+to eliminate compiler warnings.
+July 2003: slight mods to back out aggressive FFFE detection.
+Jan 2004: updated switches in from-UTF8 conversions.
+Oct 2004: updated to use UNI_MAX_LEGAL_UTF32 in UTF-32 conversions.
+
+See the header file "ConvertUTF.h" for complete documentation.
+
+------------------------------------------------------------------------ */
+
+
+#include "convert_UTF.h"
+#ifdef CVTUTF_DEBUG
+#include <stdio.h>
+#endif
+
+#include "common/macros.h"
+
+namespace google_breakpad {
+
+namespace {
+
+const int halfShift  = 10; /* used for shifting by 10 bits */
+
+const UTF32 halfBase = 0x0010000UL;
+const UTF32 halfMask = 0x3FFUL;
+
+}  // namespace
+
+#define UNI_SUR_HIGH_START  (UTF32)0xD800
+#define UNI_SUR_HIGH_END    (UTF32)0xDBFF
+#define UNI_SUR_LOW_START   (UTF32)0xDC00
+#define UNI_SUR_LOW_END     (UTF32)0xDFFF
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF32toUTF16 (const UTF32** sourceStart, const UTF32* sourceEnd,
+                                      UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF32* source = *sourceStart;
+  UTF16* target = *targetStart;
+  while (source < sourceEnd) {
+    UTF32 ch;
+    if (target >= targetEnd) {
+	    result = targetExhausted; break;
+    }
+    ch = *source++;
+    if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */
+	    /* UTF-16 surrogate values are illegal in UTF-32; 0xffff or 0xfffe are both reserved values */
+	    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
+        if (flags == strictConversion) {
+          --source; /* return to the illegal value itself */
+          result = sourceIllegal;
+          break;
+        } else {
+          *target++ = UNI_REPLACEMENT_CHAR;
+        }
+	    } else {
+        *target++ = (UTF16)ch; /* normal case */
+	    }
+    } else if (ch > UNI_MAX_LEGAL_UTF32) {
+	    if (flags == strictConversion) {
+        result = sourceIllegal;
+	    } else {
+        *target++ = UNI_REPLACEMENT_CHAR;
+	    }
+    } else {
+	    /* target is a character in range 0xFFFF - 0x10FFFF. */
+	    if (target + 1 >= targetEnd) {
+        --source; /* Back up source pointer! */
+        result = targetExhausted; break;
+	    }
+	    ch -= halfBase;
+	    *target++ = (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START);
+	    *target++ = (UTF16)((ch & halfMask) + UNI_SUR_LOW_START);
+    }
+  }
+*sourceStart = source;
+*targetStart = target;
+return result;
+}
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF16toUTF32 (const UTF16** sourceStart, const UTF16* sourceEnd,
+                                      UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF16* source = *sourceStart;
+  UTF32* target = *targetStart;
+  UTF32 ch, ch2;
+  while (source < sourceEnd) {
+    const UTF16* oldSource = source; /*  In case we have to back up because of target overflow. */
+    ch = *source++;
+    /* If we have a surrogate pair, convert to UTF32 first. */
+    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END) {
+	    /* If the 16 bits following the high surrogate are in the source buffer... */
+	    if (source < sourceEnd) {
+        ch2 = *source;
+        /* If it's a low surrogate, convert to UTF32. */
+        if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) {
+          ch = ((ch - UNI_SUR_HIGH_START) << halfShift)
+          + (ch2 - UNI_SUR_LOW_START) + halfBase;
+          ++source;
+        } else if (flags == strictConversion) { /* it's an unpaired high surrogate */
+          --source; /* return to the illegal value itself */
+          result = sourceIllegal;
+          break;
+        }
+	    } else { /* We don't have the 16 bits following the high surrogate. */
+        --source; /* return to the high surrogate */
+        result = sourceExhausted;
+        break;
+	    }
+    } else if (flags == strictConversion) {
+	    /* UTF-16 surrogate values are illegal in UTF-32 */
+	    if (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END) {
+        --source; /* return to the illegal value itself */
+        result = sourceIllegal;
+        break;
+	    }
+    }
+    if (target >= targetEnd) {
+	    source = oldSource; /* Back up source pointer! */
+	    result = targetExhausted; break;
+    }
+    *target++ = ch;
+  }
+  *sourceStart = source;
+  *targetStart = target;
+#ifdef CVTUTF_DEBUG
+  if (result == sourceIllegal) {
+    fprintf(stderr, "ConvertUTF16toUTF32 illegal seq 0x%04x,%04x\n", ch, ch2);
+    fflush(stderr);
+  }
+#endif
+  return result;
+}
+
+/* --------------------------------------------------------------------- */
+
+namespace {
+
+/*
+ * Index into the table below with the first byte of a UTF-8 sequence to
+ * get the number of trailing bytes that are supposed to follow it.
+ * Note that *legal* UTF-8 values can't have 4 or 5-bytes. The table is
+ * left as-is for anyone who may want to do such conversion, which was
+ * allowed in earlier algorithms.
+ */
+const char trailingBytesForUTF8[256] = {
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
+};
+
+/*
+ * Magic values subtracted from a buffer value during UTF8 conversion.
+ * This table contains as many values as there might be trailing bytes
+ * in a UTF-8 sequence.
+ */
+const UTF32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL,
+  0x03C82080UL, 0xFA082080UL, 0x82082080UL };
+
+/*
+ * Once the bits are split out into bytes of UTF-8, this is a mask OR-ed
+ * into the first byte, depending on how many bytes follow.  There are
+ * as many entries in this table as there are UTF-8 sequence types.
+ * (I.e., one byte sequence, two byte... etc.). Remember that sequencs
+ * for *legal* UTF-8 will be 4 or fewer bytes total.
+ */
+const UTF8 firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
+
+/* --------------------------------------------------------------------- */
+
+/* The interface converts a whole buffer to avoid function-call overhead.
+* Constants have been gathered. Loops & conditionals have been removed as
+* much as possible for efficiency, in favor of drop-through switches.
+* (See "Note A" at the bottom of the file for equivalent code.)
+* If your compiler supports it, the "isLegalUTF8" call can be turned
+* into an inline function.
+*/
+
+}  // namespace
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF16toUTF8 (const UTF16** sourceStart, const UTF16* sourceEnd,
+                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF16* source = *sourceStart;
+  UTF8* target = *targetStart;
+  while (source < sourceEnd) {
+    UTF32 ch;
+    unsigned short bytesToWrite = 0;
+    const UTF32 byteMask = 0xBF;
+    const UTF32 byteMark = 0x80;
+    const UTF16* oldSource = source; /* In case we have to back up because of target overflow. */
+    ch = *source++;
+    /* If we have a surrogate pair, convert to UTF32 first. */
+    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END) {
+	    /* If the 16 bits following the high surrogate are in the source buffer... */
+	    if (source < sourceEnd) {
+        UTF32 ch2 = *source;
+        /* If it's a low surrogate, convert to UTF32. */
+        if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) {
+          ch = ((ch - UNI_SUR_HIGH_START) << halfShift)
+          + (ch2 - UNI_SUR_LOW_START) + halfBase;
+          ++source;
+        } else if (flags == strictConversion) { /* it's an unpaired high surrogate */
+          --source; /* return to the illegal value itself */
+          result = sourceIllegal;
+          break;
+        }
+	    } else { /* We don't have the 16 bits following the high surrogate. */
+        --source; /* return to the high surrogate */
+        result = sourceExhausted;
+        break;
+	    }
+    } else if (flags == strictConversion) {
+	    /* UTF-16 surrogate values are illegal in UTF-32 */
+	    if (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END) {
+        --source; /* return to the illegal value itself */
+        result = sourceIllegal;
+        break;
+	    }
+    }
+    /* Figure out how many bytes the result will require */
+    if (ch < (UTF32)0x80) {	     bytesToWrite = 1;
+    } else if (ch < (UTF32)0x800) {     bytesToWrite = 2;
+    } else if (ch < (UTF32)0x10000) {   bytesToWrite = 3;
+    } else if (ch < (UTF32)0x110000) {  bytesToWrite = 4;
+    } else {			    bytesToWrite = 3;
+      ch = UNI_REPLACEMENT_CHAR;
+    }
+
+    target += bytesToWrite;
+    if (target > targetEnd) {
+	    source = oldSource; /* Back up source pointer! */
+	    target -= bytesToWrite; result = targetExhausted; break;
+    }
+    switch (bytesToWrite) { /* note: everything falls through. */
+      case 4:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 3:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 2:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 1:
+        *--target =  (UTF8)(ch | firstByteMark[bytesToWrite]);
+    }
+    target += bytesToWrite;
+  }
+*sourceStart = source;
+*targetStart = target;
+return result;
+}
+
+/* --------------------------------------------------------------------- */
+
+namespace {
+
+/*
+ * Utility routine to tell whether a sequence of bytes is legal UTF-8.
+ * This must be called with the length pre-determined by the first byte.
+ * If not calling this from ConvertUTF8to*, then the length can be set by:
+ *  length = trailingBytesForUTF8[*source]+1;
+ * and the sequence is illegal right away if there aren't that many bytes
+ * available.
+ * If presented with a length > 4, this returns false.  The Unicode
+ * definition of UTF-8 goes up to 4-byte sequences.
+ */
+Boolean isLegalUTF8(const UTF8 *source, int length) {
+  UTF8 a;
+  const UTF8 *srcptr = source+length;
+  switch (length) {
+    default: return false;
+      /* Everything else falls through when "true"... */
+    case 4:
+      if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false;
+      BP_FALLTHROUGH;
+    case 3:
+      if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false;
+      BP_FALLTHROUGH;
+    case 2:
+      if ((a = (*--srcptr)) > 0xBF) return false;
+
+      switch (*source) {
+        /* no fall-through in this inner switch */
+        case 0xE0: if (a < 0xA0) return false; break;
+        case 0xED: if (a > 0x9F) return false; break;
+        case 0xF0: if (a < 0x90) return false; break;
+        case 0xF4: if (a > 0x8F) return false; break;
+        default:   if (a < 0x80) return false;
+      }
+      BP_FALLTHROUGH;
+    case 1: if (*source >= 0x80 && *source < 0xC2) return false;
+  }
+  if (*source > 0xF4) return false;
+  return true;
+}
+
+}  // namespace
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Exported function to return whether a UTF-8 sequence is legal or not.
+ * This is not used here; it's just exported.
+ */
+Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd) {
+  int length = trailingBytesForUTF8[*source]+1;
+  if (source+length > sourceEnd) {
+    return false;
+  }
+  return isLegalUTF8(source, length);
+}
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF8toUTF16 (const UTF8** sourceStart, const UTF8* sourceEnd,
+                                     UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF8* source = *sourceStart;
+  UTF16* target = *targetStart;
+  while (source < sourceEnd) {
+    UTF32 ch = 0;
+    unsigned short extraBytesToRead = trailingBytesForUTF8[*source];
+    if (source + extraBytesToRead >= sourceEnd) {
+	    result = sourceExhausted; break;
+    }
+    /* Do this check whether lenient or strict */
+    if (! isLegalUTF8(source, extraBytesToRead+1)) {
+	    result = sourceIllegal;
+	    break;
+    }
+    /*
+     * The cases all fall through. See "Note A" below.
+     */
+    switch (extraBytesToRead) {
+      /* remember, illegal UTF-8 */
+      case 5: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      /* remember, illegal UTF-8 */
+      case 4: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 3: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 2: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 1: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 0: ch += *source++;
+    }
+    ch -= offsetsFromUTF8[extraBytesToRead];
+
+    if (target >= targetEnd) {
+	    source -= (extraBytesToRead+1); /* Back up source pointer! */
+	    result = targetExhausted; break;
+    }
+    if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */
+	    /* UTF-16 surrogate values are illegal in UTF-32 */
+	    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
+        if (flags == strictConversion) {
+          source -= (extraBytesToRead+1); /* return to the illegal value itself */
+          result = sourceIllegal;
+          break;
+        } else {
+          *target++ = UNI_REPLACEMENT_CHAR;
+        }
+	    } else {
+        *target++ = (UTF16)ch; /* normal case */
+	    }
+    } else if (ch > UNI_MAX_UTF16) {
+	    if (flags == strictConversion) {
+        result = sourceIllegal;
+        source -= (extraBytesToRead+1); /* return to the start */
+        break; /* Bail out; shouldn't continue */
+	    } else {
+        *target++ = UNI_REPLACEMENT_CHAR;
+	    }
+    } else {
+	    /* target is a character in range 0xFFFF - 0x10FFFF. */
+	    if (target + 1 >= targetEnd) {
+        source -= (extraBytesToRead+1); /* Back up source pointer! */
+        result = targetExhausted; break;
+	    }
+	    ch -= halfBase;
+	    *target++ = (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START);
+	    *target++ = (UTF16)((ch & halfMask) + UNI_SUR_LOW_START);
+    }
+  }
+*sourceStart = source;
+*targetStart = target;
+return result;
+}
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF32toUTF8 (const UTF32** sourceStart, const UTF32* sourceEnd,
+                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF32* source = *sourceStart;
+  UTF8* target = *targetStart;
+  while (source < sourceEnd) {
+    UTF32 ch;
+    unsigned short bytesToWrite = 0;
+    const UTF32 byteMask = 0xBF;
+    const UTF32 byteMark = 0x80;
+    ch = *source++;
+    if (flags == strictConversion ) {
+	    /* UTF-16 surrogate values are illegal in UTF-32 */
+	    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
+        --source; /* return to the illegal value itself */
+        result = sourceIllegal;
+        break;
+	    }
+    }
+    /*
+     * Figure out how many bytes the result will require. Turn any
+     * illegally large UTF32 things (> Plane 17) into replacement chars.
+     */
+    if (ch < (UTF32)0x80) {	     bytesToWrite = 1;
+    } else if (ch < (UTF32)0x800) {     bytesToWrite = 2;
+    } else if (ch < (UTF32)0x10000) {   bytesToWrite = 3;
+    } else if (ch <= UNI_MAX_LEGAL_UTF32) {  bytesToWrite = 4;
+    } else {			    bytesToWrite = 3;
+      ch = UNI_REPLACEMENT_CHAR;
+      result = sourceIllegal;
+    }
+
+    target += bytesToWrite;
+    if (target > targetEnd) {
+	    --source; /* Back up source pointer! */
+	    target -= bytesToWrite; result = targetExhausted; break;
+    }
+    switch (bytesToWrite) { /* note: everything falls through. */
+      case 4:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 3:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 2:
+        *--target = (UTF8)((ch | byteMark) & byteMask);
+        ch >>= 6;
+        BP_FALLTHROUGH;
+      case 1:
+        *--target = (UTF8) (ch | firstByteMark[bytesToWrite]);
+    }
+    target += bytesToWrite;
+  }
+*sourceStart = source;
+*targetStart = target;
+return result;
+}
+
+/* --------------------------------------------------------------------- */
+
+ConversionResult ConvertUTF8toUTF32 (const UTF8** sourceStart, const UTF8* sourceEnd,
+                                     UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags) {
+  ConversionResult result = conversionOK;
+  const UTF8* source = *sourceStart;
+  UTF32* target = *targetStart;
+  while (source < sourceEnd) {
+    UTF32 ch = 0;
+    unsigned short extraBytesToRead = trailingBytesForUTF8[*source];
+    if (source + extraBytesToRead >= sourceEnd) {
+	    result = sourceExhausted; break;
+    }
+    /* Do this check whether lenient or strict */
+    if (! isLegalUTF8(source, extraBytesToRead+1)) {
+	    result = sourceIllegal;
+	    break;
+    }
+    /*
+     * The cases all fall through. See "Note A" below.
+     */
+    switch (extraBytesToRead) {
+      case 5: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 4: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 3: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 2: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 1: ch += *source++; ch <<= 6; BP_FALLTHROUGH;
+      case 0: ch += *source++;
+    }
+    ch -= offsetsFromUTF8[extraBytesToRead];
+
+    if (target >= targetEnd) {
+	    source -= (extraBytesToRead+1); /* Back up the source pointer! */
+	    result = targetExhausted; break;
+    }
+    if (ch <= UNI_MAX_LEGAL_UTF32) {
+	    /*
+	     * UTF-16 surrogate values are illegal in UTF-32, and anything
+	     * over Plane 17 (> 0x10FFFF) is illegal.
+	     */
+	    if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
+        if (flags == strictConversion) {
+          source -= (extraBytesToRead+1); /* return to the illegal value itself */
+          result = sourceIllegal;
+          break;
+        } else {
+          *target++ = UNI_REPLACEMENT_CHAR;
+        }
+	    } else {
+        *target++ = ch;
+	    }
+    } else { /* i.e., ch > UNI_MAX_LEGAL_UTF32 */
+	    result = sourceIllegal;
+	    *target++ = UNI_REPLACEMENT_CHAR;
+    }
+  }
+  *sourceStart = source;
+  *targetStart = target;
+  return result;
+}
+
+/* ---------------------------------------------------------------------
+
+Note A.
+The fall-through switches in UTF-8 reading code save a
+temp variable, some decrements & conditionals.  The switches
+are equivalent to the following loop:
+{
+  int tmpBytesToRead = extraBytesToRead+1;
+  do {
+		ch += *source++;
+		--tmpBytesToRead;
+		if (tmpBytesToRead) ch <<= 6;
+  } while (tmpBytesToRead > 0);
+}
+In UTF-8 writing code, the switches on "bytesToWrite" are
+similarly unrolled loops.
+
+--------------------------------------------------------------------- */
+
+}  // namespace google_breakpad
diff --git a/src/common/convert_UTF.h b/src/common/convert_UTF.h
new file mode 100644
index 0000000..2f69495
--- /dev/null
+++ b/src/common/convert_UTF.h
@@ -0,0 +1,159 @@
+/*
+ * Copyright © 1991-2015 Unicode, Inc. All rights reserved.
+ * Distributed under the Terms of Use in 
+ * http://www.unicode.org/copyright.html.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Unicode data files and any associated documentation
+ * (the "Data Files") or Unicode software and any associated documentation
+ * (the "Software") to deal in the Data Files or Software
+ * without restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, and/or sell copies of
+ * the Data Files or Software, and to permit persons to whom the Data Files
+ * or Software are furnished to do so, provided that
+ * (a) this copyright and permission notice appear with all copies 
+ * of the Data Files or Software,
+ * (b) this copyright and permission notice appear in associated 
+ * documentation, and
+ * (c) there is clear notice in each modified Data File or in the Software
+ * as well as in the documentation associated with the Data File(s) or
+ * Software that the data or software has been modified.
+ *
+ * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+ * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+ * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in these Data Files or Software without prior
+ * written authorization of the copyright holder.
+ */
+
+#ifndef COMMON_CONVERT_UTF_H_
+#define COMMON_CONVERT_UTF_H_
+
+/* ---------------------------------------------------------------------
+
+Conversions between UTF32, UTF-16, and UTF-8.  Header file.
+
+Several funtions are included here, forming a complete set of
+conversions between the three formats.  UTF-7 is not included
+here, but is handled in a separate source file.
+
+Each of these routines takes pointers to input buffers and output
+buffers.  The input buffers are const.
+
+Each routine converts the text between *sourceStart and sourceEnd,
+putting the result into the buffer between *targetStart and
+targetEnd. Note: the end pointers are *after* the last item: e.g.
+*(sourceEnd - 1) is the last item.
+
+The return result indicates whether the conversion was successful,
+and if not, whether the problem was in the source or target buffers.
+(Only the first encountered problem is indicated.)
+
+After the conversion, *sourceStart and *targetStart are both
+updated to point to the end of last text successfully converted in
+the respective buffers.
+
+Input parameters:
+sourceStart - pointer to a pointer to the source buffer.
+The contents of this are modified on return so that
+it points at the next thing to be converted.
+targetStart - similarly, pointer to pointer to the target buffer.
+sourceEnd, targetEnd - respectively pointers to the ends of the
+two buffers, for overflow checking only.
+
+These conversion functions take a ConversionFlags argument. When this
+flag is set to strict, both irregular sequences and isolated surrogates
+will cause an error.  When the flag is set to lenient, both irregular
+sequences and isolated surrogates are converted.
+
+Whether the flag is strict or lenient, all illegal sequences will cause
+an error return. This includes sequences such as: <F4 90 80 80>, <C0 80>,
+or <A0> in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code
+must check for illegal sequences.
+
+When the flag is set to lenient, characters over 0x10FFFF are converted
+to the replacement character; otherwise (when the flag is set to strict)
+they constitute an error.
+
+Output parameters:
+The value "sourceIllegal" is returned from some routines if the input
+sequence is malformed.  When "sourceIllegal" is returned, the source
+value will point to the illegal value that caused the problem. E.g.,
+in UTF-8 when a sequence is malformed, it points to the start of the
+malformed sequence.
+
+Author: Mark E. Davis, 1994.
+Rev History: Rick McGowan, fixes & updates May 2001.
+Fixes & updates, Sept 2001.
+
+------------------------------------------------------------------------ */
+
+/* ---------------------------------------------------------------------
+The following 4 definitions are compiler-specific.
+The C standard does not guarantee that wchar_t has at least
+16 bits, so wchar_t is no less portable than unsigned short!
+All should be unsigned values to avoid sign extension during
+bit mask & shift operations.
+------------------------------------------------------------------------ */
+
+namespace google_breakpad {
+
+typedef unsigned long	UTF32;	/* at least 32 bits */
+typedef unsigned short	UTF16;	/* at least 16 bits */
+typedef unsigned char	UTF8;	/* typically 8 bits */
+typedef unsigned char	Boolean; /* 0 or 1 */
+
+/* Some fundamental constants */
+#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
+#define UNI_MAX_BMP (UTF32)0x0000FFFF
+#define UNI_MAX_UTF16 (UTF32)0x0010FFFF
+#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
+#define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF
+
+typedef enum {
+	conversionOK, 		/* conversion successful */
+	sourceExhausted,	/* partial character in source, but hit end */
+	targetExhausted,	/* insuff. room in target for conversion */
+	sourceIllegal		/* source sequence is illegal/malformed */
+} ConversionResult;
+
+typedef enum {
+	strictConversion = 0,
+	lenientConversion
+} ConversionFlags;
+
+ConversionResult ConvertUTF8toUTF16 (const UTF8** sourceStart, const UTF8* sourceEnd,
+                                     UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
+
+ConversionResult ConvertUTF16toUTF8 (const UTF16** sourceStart, const UTF16* sourceEnd,
+                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
+
+ConversionResult ConvertUTF8toUTF32 (const UTF8** sourceStart, const UTF8* sourceEnd,
+                                     UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
+
+ConversionResult ConvertUTF32toUTF8 (const UTF32** sourceStart, const UTF32* sourceEnd,
+                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
+
+ConversionResult ConvertUTF16toUTF32 (const UTF16** sourceStart, const UTF16* sourceEnd,
+                                      UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
+
+ConversionResult ConvertUTF32toUTF16 (const UTF32** sourceStart, const UTF32* sourceEnd,
+                                      UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
+
+Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd);
+
+}  // namespace google_breakpad
+
+/* --------------------------------------------------------------------- */
+
+#endif  // COMMON_CONVERT_UTF_H_
diff --git a/src/common/dwarf/bytereader-inl.h b/src/common/dwarf/bytereader-inl.h
new file mode 100644
index 0000000..448be23
--- /dev/null
+++ b/src/common/dwarf/bytereader-inl.h
@@ -0,0 +1,181 @@
+// Copyright 2006 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef UTIL_DEBUGINFO_BYTEREADER_INL_H__
+#define UTIL_DEBUGINFO_BYTEREADER_INL_H__
+
+#include "common/dwarf/bytereader.h"
+
+#include <assert.h>
+#include <stdint.h>
+
+namespace dwarf2reader {
+
+inline uint8_t ByteReader::ReadOneByte(const uint8_t* buffer) const {
+  return buffer[0];
+}
+
+inline uint16_t ByteReader::ReadTwoBytes(const uint8_t* buffer) const {
+  const uint16_t buffer0 = buffer[0];
+  const uint16_t buffer1 = buffer[1];
+  if (endian_ == ENDIANNESS_LITTLE) {
+    return buffer0 | buffer1 << 8;
+  } else {
+    return buffer1 | buffer0 << 8;
+  }
+}
+
+inline uint64_t ByteReader::ReadThreeBytes(const uint8_t* buffer) const {
+  const uint32_t buffer0 = buffer[0];
+  const uint32_t buffer1 = buffer[1];
+  const uint32_t buffer2 = buffer[2];
+  if (endian_ == ENDIANNESS_LITTLE) {
+    return buffer0 | buffer1 << 8 | buffer2 << 16;
+  } else {
+    return buffer2 | buffer1 << 8 | buffer0 << 16;
+  }
+}
+
+inline uint64_t ByteReader::ReadFourBytes(const uint8_t* buffer) const {
+  const uint32_t buffer0 = buffer[0];
+  const uint32_t buffer1 = buffer[1];
+  const uint32_t buffer2 = buffer[2];
+  const uint32_t buffer3 = buffer[3];
+  if (endian_ == ENDIANNESS_LITTLE) {
+    return buffer0 | buffer1 << 8 | buffer2 << 16 | buffer3 << 24;
+  } else {
+    return buffer3 | buffer2 << 8 | buffer1 << 16 | buffer0 << 24;
+  }
+}
+
+inline uint64_t ByteReader::ReadEightBytes(const uint8_t* buffer) const {
+  const uint64_t buffer0 = buffer[0];
+  const uint64_t buffer1 = buffer[1];
+  const uint64_t buffer2 = buffer[2];
+  const uint64_t buffer3 = buffer[3];
+  const uint64_t buffer4 = buffer[4];
+  const uint64_t buffer5 = buffer[5];
+  const uint64_t buffer6 = buffer[6];
+  const uint64_t buffer7 = buffer[7];
+  if (endian_ == ENDIANNESS_LITTLE) {
+    return buffer0 | buffer1 << 8 | buffer2 << 16 | buffer3 << 24 |
+      buffer4 << 32 | buffer5 << 40 | buffer6 << 48 | buffer7 << 56;
+  } else {
+    return buffer7 | buffer6 << 8 | buffer5 << 16 | buffer4 << 24 |
+      buffer3 << 32 | buffer2 << 40 | buffer1 << 48 | buffer0 << 56;
+  }
+}
+
+// Read an unsigned LEB128 number.  Each byte contains 7 bits of
+// information, plus one bit saying whether the number continues or
+// not.
+
+inline uint64_t ByteReader::ReadUnsignedLEB128(const uint8_t* buffer,
+                                             size_t* len) const {
+  uint64_t result = 0;
+  size_t num_read = 0;
+  unsigned int shift = 0;
+  uint8_t byte;
+
+  do {
+    byte = *buffer++;
+    num_read++;
+
+    result |= (static_cast<uint64_t>(byte & 0x7f)) << shift;
+
+    shift += 7;
+
+  } while (byte & 0x80);
+
+  *len = num_read;
+
+  return result;
+}
+
+// Read a signed LEB128 number.  These are like regular LEB128
+// numbers, except the last byte may have a sign bit set.
+
+inline int64_t ByteReader::ReadSignedLEB128(const uint8_t* buffer,
+                                          size_t* len) const {
+  int64_t result = 0;
+  unsigned int shift = 0;
+  size_t num_read = 0;
+  uint8_t byte;
+
+  do {
+      byte = *buffer++;
+      num_read++;
+      result |= (static_cast<uint64_t>(byte & 0x7f) << shift);
+      shift += 7;
+  } while (byte & 0x80);
+
+  if ((shift < 8 * sizeof (result)) && (byte & 0x40))
+    result |= -((static_cast<int64_t>(1)) << shift);
+  *len = num_read;
+  return result;
+}
+
+inline uint64_t ByteReader::ReadOffset(const uint8_t* buffer) const {
+  assert(this->offset_reader_);
+  return (this->*offset_reader_)(buffer);
+}
+
+inline uint64_t ByteReader::ReadAddress(const uint8_t* buffer) const {
+  assert(this->address_reader_);
+  return (this->*address_reader_)(buffer);
+}
+
+inline void ByteReader::SetCFIDataBase(uint64_t section_base,
+                                       const uint8_t* buffer_base) {
+  section_base_ = section_base;
+  buffer_base_ = buffer_base;
+  have_section_base_ = true;
+}
+
+inline void ByteReader::SetTextBase(uint64_t text_base) {
+  text_base_ = text_base;
+  have_text_base_ = true;
+}
+
+inline void ByteReader::SetDataBase(uint64_t data_base) {
+  data_base_ = data_base;
+  have_data_base_ = true;
+}
+
+inline void ByteReader::SetFunctionBase(uint64_t function_base) {
+  function_base_ = function_base;
+  have_function_base_ = true;
+}
+
+inline void ByteReader::ClearFunctionBase() {
+  have_function_base_ = false;
+}
+
+}  // namespace dwarf2reader
+
+#endif  // UTIL_DEBUGINFO_BYTEREADER_INL_H__
diff --git a/src/common/dwarf/bytereader.cc b/src/common/dwarf/bytereader.cc
new file mode 100644
index 0000000..ac5064a
--- /dev/null
+++ b/src/common/dwarf/bytereader.cc
@@ -0,0 +1,250 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/bytereader.h"
+
+namespace dwarf2reader {
+
+ByteReader::ByteReader(enum Endianness endian)
+    :offset_reader_(NULL), address_reader_(NULL), endian_(endian),
+     address_size_(0), offset_size_(0),
+     have_section_base_(), have_text_base_(), have_data_base_(),
+     have_function_base_() { }
+
+ByteReader::~ByteReader() { }
+
+void ByteReader::SetOffsetSize(uint8_t size) {
+  offset_size_ = size;
+  assert(size == 4 || size == 8);
+  if (size == 4) {
+    this->offset_reader_ = &ByteReader::ReadFourBytes;
+  } else {
+    this->offset_reader_ = &ByteReader::ReadEightBytes;
+  }
+}
+
+void ByteReader::SetAddressSize(uint8_t size) {
+  address_size_ = size;
+  assert(size == 4 || size == 8);
+  if (size == 4) {
+    this->address_reader_ = &ByteReader::ReadFourBytes;
+  } else {
+    this->address_reader_ = &ByteReader::ReadEightBytes;
+  }
+}
+
+uint64_t ByteReader::ReadInitialLength(const uint8_t* start, size_t* len) {
+  const uint64_t initial_length = ReadFourBytes(start);
+  start += 4;
+
+  // In DWARF2/3, if the initial length is all 1 bits, then the offset
+  // size is 8 and we need to read the next 8 bytes for the real length.
+  if (initial_length == 0xffffffff) {
+    SetOffsetSize(8);
+    *len = 12;
+    return ReadOffset(start);
+  } else {
+    SetOffsetSize(4);
+    *len = 4;
+  }
+  return initial_length;
+}
+
+bool ByteReader::ValidEncoding(DwarfPointerEncoding encoding) const {
+  if (encoding == DW_EH_PE_omit) return true;
+  if (encoding == DW_EH_PE_aligned) return true;
+  if ((encoding & 0x7) > DW_EH_PE_udata8)
+    return false;
+  if ((encoding & 0x70) > DW_EH_PE_funcrel)
+    return false;
+  return true;
+}
+
+bool ByteReader::UsableEncoding(DwarfPointerEncoding encoding) const {
+  switch (encoding & 0x70) {
+    case DW_EH_PE_absptr:  return true;
+    case DW_EH_PE_pcrel:   return have_section_base_;
+    case DW_EH_PE_textrel: return have_text_base_;
+    case DW_EH_PE_datarel: return have_data_base_;
+    case DW_EH_PE_funcrel: return have_function_base_;
+    default:               return false;
+  }
+}
+
+uint64_t ByteReader::ReadEncodedPointer(const uint8_t* buffer,
+                                      DwarfPointerEncoding encoding,
+                                      size_t* len) const {
+  // UsableEncoding doesn't approve of DW_EH_PE_omit, so we shouldn't
+  // see it here.
+  assert(encoding != DW_EH_PE_omit);
+
+  // The Linux Standards Base 4.0 does not make this clear, but the
+  // GNU tools (gcc/unwind-pe.h; readelf/dwarf.c; gdb/dwarf2-frame.c)
+  // agree that aligned pointers are always absolute, machine-sized,
+  // machine-signed pointers.
+  if (encoding == DW_EH_PE_aligned) {
+    assert(have_section_base_);
+
+    // We don't need to align BUFFER in *our* address space. Rather, we
+    // need to find the next position in our buffer that would be aligned
+    // when the .eh_frame section the buffer contains is loaded into the
+    // program's memory. So align assuming that buffer_base_ gets loaded at
+    // address section_base_, where section_base_ itself may or may not be
+    // aligned.
+
+    // First, find the offset to START from the closest prior aligned
+    // address.
+    uint64_t skew = section_base_ & (AddressSize() - 1);
+    // Now find the offset from that aligned address to buffer.
+    uint64_t offset = skew + (buffer - buffer_base_);
+    // Round up to the next boundary.
+    uint64_t aligned = (offset + AddressSize() - 1) & -AddressSize();
+    // Convert back to a pointer.
+    const uint8_t* aligned_buffer = buffer_base_ + (aligned - skew);
+    // Finally, store the length and actually fetch the pointer.
+    *len = aligned_buffer - buffer + AddressSize();
+    return ReadAddress(aligned_buffer);
+  }
+
+  // Extract the value first, ignoring whether it's a pointer or an
+  // offset relative to some base.
+  uint64_t offset;
+  switch (encoding & 0x0f) {
+    case DW_EH_PE_absptr:
+      // DW_EH_PE_absptr is weird, as it is used as a meaningful value for
+      // both the high and low nybble of encoding bytes. When it appears in
+      // the high nybble, it means that the pointer is absolute, not an
+      // offset from some base address. When it appears in the low nybble,
+      // as here, it means that the pointer is stored as a normal
+      // machine-sized and machine-signed address. A low nybble of
+      // DW_EH_PE_absptr does not imply that the pointer is absolute; it is
+      // correct for us to treat the value as an offset from a base address
+      // if the upper nybble is not DW_EH_PE_absptr.
+      offset = ReadAddress(buffer);
+      *len = AddressSize();
+      break;
+
+    case DW_EH_PE_uleb128:
+      offset = ReadUnsignedLEB128(buffer, len);
+      break;
+
+    case DW_EH_PE_udata2:
+      offset = ReadTwoBytes(buffer);
+      *len = 2;
+      break;
+
+    case DW_EH_PE_udata4:
+      offset = ReadFourBytes(buffer);
+      *len = 4;
+      break;
+
+    case DW_EH_PE_udata8:
+      offset = ReadEightBytes(buffer);
+      *len = 8;
+      break;
+
+    case DW_EH_PE_sleb128:
+      offset = ReadSignedLEB128(buffer, len);
+      break;
+
+    case DW_EH_PE_sdata2:
+      offset = ReadTwoBytes(buffer);
+      // Sign-extend from 16 bits.
+      offset = (offset ^ 0x8000) - 0x8000;
+      *len = 2;
+      break;
+
+    case DW_EH_PE_sdata4:
+      offset = ReadFourBytes(buffer);
+      // Sign-extend from 32 bits.
+      offset = (offset ^ 0x80000000ULL) - 0x80000000ULL;
+      *len = 4;
+      break;
+
+    case DW_EH_PE_sdata8:
+      // No need to sign-extend; this is the full width of our type.
+      offset = ReadEightBytes(buffer);
+      *len = 8;
+      break;
+
+    default:
+      abort();
+  }
+
+  // Find the appropriate base address.
+  uint64_t base;
+  switch (encoding & 0x70) {
+    case DW_EH_PE_absptr:
+      base = 0;
+      break;
+
+    case DW_EH_PE_pcrel:
+      assert(have_section_base_);
+      base = section_base_ + (buffer - buffer_base_);
+      break;
+
+    case DW_EH_PE_textrel:
+      assert(have_text_base_);
+      base = text_base_;
+      break;
+
+    case DW_EH_PE_datarel:
+      assert(have_data_base_);
+      base = data_base_;
+      break;
+
+    case DW_EH_PE_funcrel:
+      assert(have_function_base_);
+      base = function_base_;
+      break;
+
+    default:
+      abort();
+  }
+
+  uint64_t pointer = base + offset;
+
+  // Remove inappropriate upper bits.
+  if (AddressSize() == 4)
+    pointer = pointer & 0xffffffff;
+  else
+    assert(AddressSize() == sizeof(uint64_t));
+
+  return pointer;
+}
+
+Endianness ByteReader::GetEndianness() const {
+  return endian_;
+}
+
+}  // namespace dwarf2reader
diff --git a/src/common/dwarf/bytereader.h b/src/common/dwarf/bytereader.h
new file mode 100644
index 0000000..5d7a9a7
--- /dev/null
+++ b/src/common/dwarf/bytereader.h
@@ -0,0 +1,320 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_DWARF_BYTEREADER_H__
+#define COMMON_DWARF_BYTEREADER_H__
+
+#include <stdint.h>
+
+#include <string>
+
+#include "common/dwarf/types.h"
+#include "common/dwarf/dwarf2enums.h"
+
+namespace dwarf2reader {
+
+// We can't use the obvious name of LITTLE_ENDIAN and BIG_ENDIAN
+// because it conflicts with a macro
+enum Endianness {
+  ENDIANNESS_BIG,
+  ENDIANNESS_LITTLE
+};
+
+// A ByteReader knows how to read single- and multi-byte values of
+// various endiannesses, sizes, and encodings, as used in DWARF
+// debugging information and Linux C++ exception handling data.
+class ByteReader {
+ public:
+  // Construct a ByteReader capable of reading one-, two-, four-, and
+  // eight-byte values according to ENDIANNESS, absolute machine-sized
+  // addresses, DWARF-style "initial length" values, signed and
+  // unsigned LEB128 numbers, and Linux C++ exception handling data's
+  // encoded pointers.
+  explicit ByteReader(enum Endianness endianness);
+  virtual ~ByteReader();
+
+  // Read a single byte from BUFFER and return it as an unsigned 8 bit
+  // number.
+  uint8_t ReadOneByte(const uint8_t* buffer) const;
+
+  // Read two bytes from BUFFER and return them as an unsigned 16 bit
+  // number, using this ByteReader's endianness.
+  uint16_t ReadTwoBytes(const uint8_t* buffer) const;
+
+  // Read three bytes from BUFFER and return them as an unsigned 64 bit
+  // number, using this ByteReader's endianness. DWARF 5 uses this encoding
+  // for various index-related DW_FORMs.
+  uint64_t ReadThreeBytes(const uint8_t* buffer) const;
+
+  // Read four bytes from BUFFER and return them as an unsigned 32 bit
+  // number, using this ByteReader's endianness. This function returns
+  // a uint64_t so that it is compatible with ReadAddress and
+  // ReadOffset. The number it returns will never be outside the range
+  // of an unsigned 32 bit integer.
+  uint64_t ReadFourBytes(const uint8_t* buffer) const;
+
+  // Read eight bytes from BUFFER and return them as an unsigned 64
+  // bit number, using this ByteReader's endianness.
+  uint64_t ReadEightBytes(const uint8_t* buffer) const;
+
+  // Read an unsigned LEB128 (Little Endian Base 128) number from
+  // BUFFER and return it as an unsigned 64 bit integer. Set LEN to
+  // the number of bytes read.
+  //
+  // The unsigned LEB128 representation of an integer N is a variable
+  // number of bytes:
+  //
+  // - If N is between 0 and 0x7f, then its unsigned LEB128
+  //   representation is a single byte whose value is N.
+  //
+  // - Otherwise, its unsigned LEB128 representation is (N & 0x7f) |
+  //   0x80, followed by the unsigned LEB128 representation of N /
+  //   128, rounded towards negative infinity.
+  //
+  // In other words, we break VALUE into groups of seven bits, put
+  // them in little-endian order, and then write them as eight-bit
+  // bytes with the high bit on all but the last.
+  uint64_t ReadUnsignedLEB128(const uint8_t* buffer, size_t* len) const;
+
+  // Read a signed LEB128 number from BUFFER and return it as an
+  // signed 64 bit integer. Set LEN to the number of bytes read.
+  //
+  // The signed LEB128 representation of an integer N is a variable
+  // number of bytes:
+  //
+  // - If N is between -0x40 and 0x3f, then its signed LEB128
+  //   representation is a single byte whose value is N in two's
+  //   complement.
+  //
+  // - Otherwise, its signed LEB128 representation is (N & 0x7f) |
+  //   0x80, followed by the signed LEB128 representation of N / 128,
+  //   rounded towards negative infinity.
+  //
+  // In other words, we break VALUE into groups of seven bits, put
+  // them in little-endian order, and then write them as eight-bit
+  // bytes with the high bit on all but the last.
+  int64_t ReadSignedLEB128(const uint8_t* buffer, size_t* len) const;
+
+  // Indicate that addresses on this architecture are SIZE bytes long. SIZE
+  // must be either 4 or 8. (DWARF allows addresses to be any number of
+  // bytes in length from 1 to 255, but we only support 32- and 64-bit
+  // addresses at the moment.) You must call this before using the
+  // ReadAddress member function.
+  //
+  // For data in a .debug_info section, or something that .debug_info
+  // refers to like line number or macro data, the compilation unit
+  // header's address_size field indicates the address size to use. Call
+  // frame information doesn't indicate its address size (a shortcoming of
+  // the spec); you must supply the appropriate size based on the
+  // architecture of the target machine.
+  void SetAddressSize(uint8_t size);
+
+  // Return the current address size, in bytes. This is either 4,
+  // indicating 32-bit addresses, or 8, indicating 64-bit addresses.
+  uint8_t AddressSize() const { return address_size_; }
+
+  // Read an address from BUFFER and return it as an unsigned 64 bit
+  // integer, respecting this ByteReader's endianness and address size. You
+  // must call SetAddressSize before calling this function.
+  uint64_t ReadAddress(const uint8_t* buffer) const;
+
+  // DWARF actually defines two slightly different formats: 32-bit DWARF
+  // and 64-bit DWARF. This is *not* related to the size of registers or
+  // addresses on the target machine; it refers only to the size of section
+  // offsets and data lengths appearing in the DWARF data. One only needs
+  // 64-bit DWARF when the debugging data itself is larger than 4GiB.
+  // 32-bit DWARF can handle x86_64 or PPC64 code just fine, unless the
+  // debugging data itself is very large.
+  //
+  // DWARF information identifies itself as 32-bit or 64-bit DWARF: each
+  // compilation unit and call frame information entry begins with an
+  // "initial length" field, which, in addition to giving the length of the
+  // data, also indicates the size of section offsets and lengths appearing
+  // in that data. The ReadInitialLength member function, below, reads an
+  // initial length and sets the ByteReader's offset size as a side effect.
+  // Thus, in the normal process of reading DWARF data, the appropriate
+  // offset size is set automatically. So, you should only need to call
+  // SetOffsetSize if you are using the same ByteReader to jump from the
+  // midst of one block of DWARF data into another.
+
+  // Read a DWARF "initial length" field from START, and return it as
+  // an unsigned 64 bit integer, respecting this ByteReader's
+  // endianness. Set *LEN to the length of the initial length in
+  // bytes, either four or twelve. As a side effect, set this
+  // ByteReader's offset size to either 4 (if we see a 32-bit DWARF
+  // initial length) or 8 (if we see a 64-bit DWARF initial length).
+  //
+  // A DWARF initial length is either:
+  //
+  // - a byte count stored as an unsigned 32-bit value less than
+  //   0xffffff00, indicating that the data whose length is being
+  //   measured uses the 32-bit DWARF format, or
+  //
+  // - The 32-bit value 0xffffffff, followed by a 64-bit byte count,
+  //   indicating that the data whose length is being measured uses
+  //   the 64-bit DWARF format.
+  uint64_t ReadInitialLength(const uint8_t* start, size_t* len);
+
+  // Read an offset from BUFFER and return it as an unsigned 64 bit
+  // integer, respecting the ByteReader's endianness. In 32-bit DWARF, the
+  // offset is 4 bytes long; in 64-bit DWARF, the offset is eight bytes
+  // long. You must call ReadInitialLength or SetOffsetSize before calling
+  // this function; see the comments above for details.
+  uint64_t ReadOffset(const uint8_t* buffer) const;
+
+  // Return the current offset size, in bytes.
+  // A return value of 4 indicates that we are reading 32-bit DWARF.
+  // A return value of 8 indicates that we are reading 64-bit DWARF.
+  uint8_t OffsetSize() const { return offset_size_; }
+
+  // Indicate that section offsets and lengths are SIZE bytes long. SIZE
+  // must be either 4 (meaning 32-bit DWARF) or 8 (meaning 64-bit DWARF).
+  // Usually, you should not call this function yourself; instead, let a
+  // call to ReadInitialLength establish the data's offset size
+  // automatically.
+  void SetOffsetSize(uint8_t size);
+
+  // The Linux C++ ABI uses a variant of DWARF call frame information
+  // for exception handling. This data is included in the program's
+  // address space as the ".eh_frame" section, and intepreted at
+  // runtime to walk the stack, find exception handlers, and run
+  // cleanup code. The format is mostly the same as DWARF CFI, with
+  // some adjustments made to provide the additional
+  // exception-handling data, and to make the data easier to work with
+  // in memory --- for example, to allow it to be placed in read-only
+  // memory even when describing position-independent code.
+  //
+  // In particular, exception handling data can select a number of
+  // different encodings for pointers that appear in the data, as
+  // described by the DwarfPointerEncoding enum. There are actually
+  // four axes(!) to the encoding:
+  //
+  // - The pointer size: pointers can be 2, 4, or 8 bytes long, or use
+  //   the DWARF LEB128 encoding.
+  //
+  // - The pointer's signedness: pointers can be signed or unsigned.
+  //
+  // - The pointer's base address: the data stored in the exception
+  //   handling data can be the actual address (that is, an absolute
+  //   pointer), or relative to one of a number of different base
+  //   addreses --- including that of the encoded pointer itself, for
+  //   a form of "pc-relative" addressing.
+  //
+  // - The pointer may be indirect: it may be the address where the
+  //   true pointer is stored. (This is used to refer to things via
+  //   global offset table entries, program linkage table entries, or
+  //   other tricks used in position-independent code.)
+  //
+  // There are also two options that fall outside that matrix
+  // altogether: the pointer may be omitted, or it may have padding to
+  // align it on an appropriate address boundary. (That last option
+  // may seem like it should be just another axis, but it is not.)
+
+  // Indicate that the exception handling data is loaded starting at
+  // SECTION_BASE, and that the start of its buffer in our own memory
+  // is BUFFER_BASE. This allows us to find the address that a given
+  // byte in our buffer would have when loaded into the program the
+  // data describes. We need this to resolve DW_EH_PE_pcrel pointers.
+  void SetCFIDataBase(uint64_t section_base, const uint8_t* buffer_base);
+
+  // Indicate that the base address of the program's ".text" section
+  // is TEXT_BASE. We need this to resolve DW_EH_PE_textrel pointers.
+  void SetTextBase(uint64_t text_base);
+
+  // Indicate that the base address for DW_EH_PE_datarel pointers is
+  // DATA_BASE. The proper value depends on the ABI; it is usually the
+  // address of the global offset table, held in a designated register in
+  // position-independent code. You will need to look at the startup code
+  // for the target system to be sure. I tried; my eyes bled.
+  void SetDataBase(uint64_t data_base);
+
+  // Indicate that the base address for the FDE we are processing is
+  // FUNCTION_BASE. This is the start address of DW_EH_PE_funcrel
+  // pointers. (This encoding does not seem to be used by the GNU
+  // toolchain.)
+  void SetFunctionBase(uint64_t function_base);
+
+  // Indicate that we are no longer processing any FDE, so any use of
+  // a DW_EH_PE_funcrel encoding is an error.
+  void ClearFunctionBase();
+
+  // Return true if ENCODING is a valid pointer encoding.
+  bool ValidEncoding(DwarfPointerEncoding encoding) const;
+
+  // Return true if we have all the information we need to read a
+  // pointer that uses ENCODING. This checks that the appropriate
+  // SetFooBase function for ENCODING has been called.
+  bool UsableEncoding(DwarfPointerEncoding encoding) const;
+
+  // Read an encoded pointer from BUFFER using ENCODING; return the
+  // absolute address it represents, and set *LEN to the pointer's
+  // length in bytes, including any padding for aligned pointers.
+  //
+  // This function calls 'abort' if ENCODING is invalid or refers to a
+  // base address this reader hasn't been given, so you should check
+  // with ValidEncoding and UsableEncoding first if you would rather
+  // die in a more helpful way.
+  uint64_t ReadEncodedPointer(const uint8_t* buffer,
+                            DwarfPointerEncoding encoding,
+                            size_t* len) const;
+
+  Endianness GetEndianness() const;
+ private:
+
+  // Function pointer type for our address and offset readers.
+  typedef uint64_t (ByteReader::*AddressReader)(const uint8_t*) const;
+
+  // Read an offset from BUFFER and return it as an unsigned 64 bit
+  // integer.  DWARF2/3 define offsets as either 4 or 8 bytes,
+  // generally depending on the amount of DWARF2/3 info present.
+  // This function pointer gets set by SetOffsetSize.
+  AddressReader offset_reader_;
+
+  // Read an address from BUFFER and return it as an unsigned 64 bit
+  // integer.  DWARF2/3 allow addresses to be any size from 0-255
+  // bytes currently.  Internally we support 4 and 8 byte addresses,
+  // and will CHECK on anything else.
+  // This function pointer gets set by SetAddressSize.
+  AddressReader address_reader_;
+
+  Endianness endian_;
+  uint8_t address_size_;
+  uint8_t offset_size_;
+
+  // Base addresses for Linux C++ exception handling data's encoded pointers.
+  bool have_section_base_, have_text_base_, have_data_base_;
+  bool have_function_base_;
+  uint64_t section_base_, text_base_, data_base_, function_base_;
+  const uint8_t* buffer_base_;
+};
+
+}  // namespace dwarf2reader
+
+#endif  // COMMON_DWARF_BYTEREADER_H__
diff --git a/src/common/dwarf/bytereader_unittest.cc b/src/common/dwarf/bytereader_unittest.cc
new file mode 100644
index 0000000..3d7924b
--- /dev/null
+++ b/src/common/dwarf/bytereader_unittest.cc
@@ -0,0 +1,707 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// bytereader_unittest.cc: Unit tests for dwarf2reader::ByteReader
+
+#include <stdint.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf/bytereader.h"
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/cfi_assembler.h"
+#include "common/using_std_string.h"
+
+using dwarf2reader::ByteReader;
+using dwarf2reader::DwarfPointerEncoding;
+using dwarf2reader::ENDIANNESS_BIG;
+using dwarf2reader::ENDIANNESS_LITTLE;
+using google_breakpad::CFISection;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Section;
+using testing::Test;
+
+struct ReaderFixture {
+  string contents;
+  size_t pointer_size;
+};
+
+class Reader: public ReaderFixture, public Test { };
+class ReaderDeathTest: public ReaderFixture, public Test { };
+
+TEST_F(Reader, SimpleConstructor) {
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  CFISection section(kBigEndian, 4);
+  section
+    .D8(0xc0)
+    .D16(0xcf0d)
+    .D32(0x96fdd219)
+    .D64(0xbbf55fef0825f117ULL)
+    .ULEB128(0xa0927048ba8121afULL)
+    .LEB128(-0x4f337badf4483f83LL)
+    .D32(0xfec319c9);
+  ASSERT_TRUE(section.GetContents(&contents));
+  const uint8_t* data = reinterpret_cast<const uint8_t*>(contents.data());
+  EXPECT_EQ(0xc0U, reader.ReadOneByte(data));
+  EXPECT_EQ(0xcf0dU, reader.ReadTwoBytes(data + 1));
+  EXPECT_EQ(0x96fdd219U, reader.ReadFourBytes(data + 3));
+  EXPECT_EQ(0xbbf55fef0825f117ULL, reader.ReadEightBytes(data + 7));
+  size_t leb128_size;
+  EXPECT_EQ(0xa0927048ba8121afULL,
+            reader.ReadUnsignedLEB128(data + 15, &leb128_size));
+  EXPECT_EQ(10U, leb128_size);
+  EXPECT_EQ(-0x4f337badf4483f83LL,
+            reader.ReadSignedLEB128(data + 25, &leb128_size));
+  EXPECT_EQ(10U, leb128_size);
+  EXPECT_EQ(0xfec319c9, reader.ReadAddress(data + 35));
+}
+
+TEST_F(Reader, ValidEncodings) {
+  ByteReader reader(ENDIANNESS_LITTLE);
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_absptr)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_omit)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_aligned)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_uleb128)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata2)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata4)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata8)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sleb128)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata2)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata4)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata8)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_pcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_textrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_datarel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_absptr |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_uleb128 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata2 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata4 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_udata8 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sleb128 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata2 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata4 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+  EXPECT_TRUE(reader.ValidEncoding(
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect |
+                           dwarf2reader::DW_EH_PE_sdata8 |
+                           dwarf2reader::DW_EH_PE_funcrel)));
+
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x05)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x07)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x0d)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x0f)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x51)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x60)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0x70)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0xf0)));
+  EXPECT_FALSE(reader.ValidEncoding(DwarfPointerEncoding(0xd0)));
+}
+
+TEST_F(ReaderDeathTest, DW_EH_PE_omit) {
+  static const uint8_t data[] = { 42 };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  EXPECT_DEATH(reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_omit,
+                                         &pointer_size),
+               "encoding != DW_EH_PE_omit");
+}
+
+TEST_F(Reader, DW_EH_PE_absptr4) {
+  static const uint8_t data[] = { 0x27, 0x57, 0xea, 0x40 };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(4);
+  EXPECT_EQ(0x40ea5727U,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_absptr,
+                                      &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_absptr8) {
+  static const uint8_t data[] = {
+    0x60, 0x27, 0x57, 0xea, 0x40, 0xc2, 0x98, 0x05, 0x01, 0x50
+  };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0x010598c240ea5727ULL,
+            reader.ReadEncodedPointer(data + 1, dwarf2reader::DW_EH_PE_absptr,
+                                      &pointer_size));
+  EXPECT_EQ(8U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_uleb128) {
+  static const uint8_t data[] = { 0x81, 0x84, 0x4c };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(4);
+  EXPECT_EQ(0x130201U,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_uleb128,
+                                      &pointer_size));
+  EXPECT_EQ(3U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_udata2) {
+  static const uint8_t data[] = { 0xf4, 0x8d };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  EXPECT_EQ(0xf48dU,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_udata2,
+                                      &pointer_size));
+  EXPECT_EQ(2U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_udata4) {
+  static const uint8_t data[] = { 0xb2, 0x68, 0xa5, 0x62, 0x8f, 0x8b };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0xa5628f8b,
+            reader.ReadEncodedPointer(data + 2, dwarf2reader::DW_EH_PE_udata4,
+                                      &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_udata8Addr8) {
+  static const uint8_t data[] = {
+    0x27, 0x04, 0x73, 0x04, 0x69, 0x9f, 0x19, 0xed, 0x8f, 0xfe
+  };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0x8fed199f69047304ULL,
+            reader.ReadEncodedPointer(data + 1, dwarf2reader::DW_EH_PE_udata8,
+                                        &pointer_size));
+  EXPECT_EQ(8U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_udata8Addr4) {
+  static const uint8_t data[] = {
+    0x27, 0x04, 0x73, 0x04, 0x69, 0x9f, 0x19, 0xed, 0x8f, 0xfe
+  };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(4);
+  EXPECT_EQ(0x69047304ULL,
+            reader.ReadEncodedPointer(data + 1, dwarf2reader::DW_EH_PE_udata8,
+                                        &pointer_size));
+  EXPECT_EQ(8U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_sleb128) {
+  static const uint8_t data[] = { 0x42, 0xff, 0xfb, 0x73 };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  EXPECT_EQ(-0x030201U & 0xffffffff,
+            reader.ReadEncodedPointer(data + 1, dwarf2reader::DW_EH_PE_sleb128,
+                                        &pointer_size));
+  EXPECT_EQ(3U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_sdata2) {
+  static const uint8_t data[] = { 0xb9, 0xbf };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0xffffffffffffbfb9ULL,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_sdata2,
+                                        &pointer_size));
+  EXPECT_EQ(2U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_sdata4) {
+  static const uint8_t data[] = { 0xa0, 0xca, 0xf2, 0xb8, 0xc2, 0xad };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0xffffffffadc2b8f2ULL,
+            reader.ReadEncodedPointer(data + 2, dwarf2reader::DW_EH_PE_sdata4,
+                                        &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_sdata8) {
+  static const uint8_t data[] = {
+    0xf6, 0x66, 0x57, 0x79, 0xe0, 0x0c, 0x9b, 0x26, 0x87
+  };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(8);
+  EXPECT_EQ(0x87269b0ce0795766ULL,
+            reader.ReadEncodedPointer(data + 1, dwarf2reader::DW_EH_PE_sdata8,
+                                        &pointer_size));
+  EXPECT_EQ(8U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_pcrel) {
+  static const uint8_t data[] = {
+    0x4a, 0x8b, 0x1b, 0x14, 0xc8, 0xc4, 0x02, 0xce
+  };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  DwarfPointerEncoding encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_pcrel
+                           | dwarf2reader::DW_EH_PE_absptr);
+  reader.SetCFIDataBase(0x89951377, data);
+  EXPECT_EQ(0x89951377 + 3 + 0x14c8c402,
+            reader.ReadEncodedPointer(data + 3, encoding, &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_textrel) {
+  static const uint8_t data[] = {
+    0xd9, 0x0d, 0x05, 0x17, 0xc9, 0x7a, 0x42, 0x1e
+  };
+  ByteReader reader(ENDIANNESS_LITTLE);
+  reader.SetAddressSize(4);
+  reader.SetTextBase(0xb91beaf0);
+  DwarfPointerEncoding encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_textrel
+                           | dwarf2reader::DW_EH_PE_sdata2);
+  EXPECT_EQ((0xb91beaf0 + 0xffffc917) & 0xffffffff,
+            reader.ReadEncodedPointer(data + 3, encoding, &pointer_size));
+  EXPECT_EQ(2U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_datarel) {
+  static const uint8_t data[] = {
+    0x16, 0xf2, 0xbb, 0x82, 0x68, 0xa7, 0xbc, 0x39
+  };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(8);
+  reader.SetDataBase(0xbef308bd25ce74f0ULL);
+  DwarfPointerEncoding encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_datarel
+                           | dwarf2reader::DW_EH_PE_sleb128);
+  EXPECT_EQ(0xbef308bd25ce74f0ULL + 0xfffffffffffa013bULL,
+            reader.ReadEncodedPointer(data + 2, encoding, &pointer_size));
+  EXPECT_EQ(3U, pointer_size);
+}
+
+TEST_F(Reader, DW_EH_PE_funcrel) {
+  static const uint8_t data[] = {
+    0x84, 0xf8, 0x14, 0x01, 0x61, 0xd1, 0x48, 0xc9
+  };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetAddressSize(4);
+  reader.SetFunctionBase(0x823c3520);
+  DwarfPointerEncoding encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_funcrel
+                           | dwarf2reader::DW_EH_PE_udata2);
+  EXPECT_EQ(0x823c3520 + 0xd148,
+            reader.ReadEncodedPointer(data + 5, encoding, &pointer_size));
+  EXPECT_EQ(2U, pointer_size);
+}
+
+TEST(UsableBase, CFI) {
+  static const uint8_t data[] = { 0x42 };
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetCFIDataBase(0xb31cbd20, data);
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_absptr));
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_pcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_textrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_datarel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_funcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_omit));
+  EXPECT_FALSE(reader.UsableEncoding(DwarfPointerEncoding(0x60)));
+}
+
+TEST(UsableBase, Text) {
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetTextBase(0xa899ccb9);
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_absptr));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_pcrel));
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_textrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_datarel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_funcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_omit));
+  EXPECT_FALSE(reader.UsableEncoding(DwarfPointerEncoding(0x60)));
+}
+
+TEST(UsableBase, Data) {
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetDataBase(0xf7b10bcd);
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_absptr));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_pcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_textrel));
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_datarel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_funcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_omit));
+  EXPECT_FALSE(reader.UsableEncoding(DwarfPointerEncoding(0x60)));
+}
+
+TEST(UsableBase, Function) {
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetFunctionBase(0xc2c0ed81);
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_absptr));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_pcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_textrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_datarel));
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_funcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_omit));
+  EXPECT_FALSE(reader.UsableEncoding(DwarfPointerEncoding(0x60)));
+}
+
+TEST(UsableBase, ClearFunction) {
+  ByteReader reader(ENDIANNESS_BIG);
+  reader.SetFunctionBase(0xc2c0ed81);
+  reader.ClearFunctionBase();
+  EXPECT_TRUE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_absptr));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_pcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_textrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_datarel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_funcrel));
+  EXPECT_FALSE(reader.UsableEncoding(dwarf2reader::DW_EH_PE_omit));
+  EXPECT_FALSE(reader.UsableEncoding(DwarfPointerEncoding(0x60)));
+}
+
+struct AlignedFixture {
+  AlignedFixture() : reader(ENDIANNESS_BIG) { reader.SetAddressSize(4); }
+  static const uint8_t data[10];
+  ByteReader reader;
+  size_t pointer_size;
+};
+  
+const uint8_t AlignedFixture::data[10] = {
+  0xfe, 0x6e, 0x93, 0xd8, 0x34, 0xd5, 0x1c, 0xd3, 0xac, 0x2b
+};
+
+class Aligned: public AlignedFixture, public Test { };
+
+TEST_F(Aligned, DW_EH_PE_aligned0) {
+  reader.SetCFIDataBase(0xb440305c, data);
+  EXPECT_EQ(0xfe6e93d8U,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned1) {
+  reader.SetCFIDataBase(0xb440305d, data);
+  EXPECT_EQ(0xd834d51cU,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(7U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned2) {
+  reader.SetCFIDataBase(0xb440305e, data);
+  EXPECT_EQ(0x93d834d5U,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(6U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned3) {
+  reader.SetCFIDataBase(0xb440305f, data);
+  EXPECT_EQ(0x6e93d834U,
+            reader.ReadEncodedPointer(data, dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(5U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned11) {
+  reader.SetCFIDataBase(0xb4403061, data);
+  EXPECT_EQ(0xd834d51cU,
+            reader.ReadEncodedPointer(data + 1,
+                                      dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(6U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned30) {
+  reader.SetCFIDataBase(0xb4403063, data);
+  EXPECT_EQ(0x6e93d834U,
+            reader.ReadEncodedPointer(data + 1,
+                                      dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(4U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned23) {
+  reader.SetCFIDataBase(0xb4403062, data);
+  EXPECT_EQ(0x1cd3ac2bU,
+            reader.ReadEncodedPointer(data + 3,
+                                      dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(7U, pointer_size);
+}
+
+TEST_F(Aligned, DW_EH_PE_aligned03) {
+  reader.SetCFIDataBase(0xb4403064, data);
+  EXPECT_EQ(0x34d51cd3U,
+            reader.ReadEncodedPointer(data + 3,
+                                      dwarf2reader::DW_EH_PE_aligned,
+                                      &pointer_size));
+  EXPECT_EQ(5U, pointer_size);
+}  
diff --git a/src/common/dwarf/cfi_assembler.cc b/src/common/dwarf/cfi_assembler.cc
new file mode 100644
index 0000000..858fd56
--- /dev/null
+++ b/src/common/dwarf/cfi_assembler.cc
@@ -0,0 +1,204 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_assembler.cc: Implementation of google_breakpad::CFISection class.
+// See cfi_assembler.h for details.
+
+#include "common/dwarf/cfi_assembler.h"
+
+#include <assert.h>
+#include <stdlib.h>
+
+namespace google_breakpad {
+
+using dwarf2reader::DwarfPointerEncoding;
+  
+CFISection& CFISection::CIEHeader(uint64_t code_alignment_factor,
+                                  int data_alignment_factor,
+                                  unsigned return_address_register,
+                                  uint8_t version,
+                                  const string& augmentation,
+                                  bool dwarf64,
+                                  uint8_t address_size,
+                                  uint8_t segment_size) {
+  assert(!entry_length_);
+  entry_length_ = new PendingLength();
+  in_fde_ = false;
+
+  if (dwarf64) {
+    D32(kDwarf64InitialLengthMarker);
+    D64(entry_length_->length);
+    entry_length_->start = Here();
+    D64(eh_frame_ ? kEHFrame64CIEIdentifier : kDwarf64CIEIdentifier);
+  } else {
+    D32(entry_length_->length);
+    entry_length_->start = Here();
+    D32(eh_frame_ ? kEHFrame32CIEIdentifier : kDwarf32CIEIdentifier);
+  }
+  D8(version);
+  AppendCString(augmentation);
+  if (version >= 4) {
+    D8(address_size);
+    D8(segment_size);
+  }
+  ULEB128(code_alignment_factor);
+  LEB128(data_alignment_factor);
+  if (version == 1)
+    D8(return_address_register);
+  else
+    ULEB128(return_address_register);
+  return *this;
+}
+
+CFISection& CFISection::FDEHeader(Label cie_pointer,
+                                  uint64_t initial_location,
+                                  uint64_t address_range,
+                                  bool dwarf64) {
+  assert(!entry_length_);
+  entry_length_ = new PendingLength();
+  in_fde_ = true;
+  fde_start_address_ = initial_location;
+
+  if (dwarf64) {
+    D32(0xffffffff);
+    D64(entry_length_->length);
+    entry_length_->start = Here();
+    if (eh_frame_)
+      D64(Here() - cie_pointer);
+    else
+      D64(cie_pointer);
+  } else {
+    D32(entry_length_->length);
+    entry_length_->start = Here();
+    if (eh_frame_)
+      D32(Here() - cie_pointer);
+    else
+      D32(cie_pointer);
+  }
+  EncodedPointer(initial_location);
+  // The FDE length in an .eh_frame section uses the same encoding as the
+  // initial location, but ignores the base address (selected by the upper
+  // nybble of the encoding), as it's a length, not an address that can be
+  // made relative.
+  EncodedPointer(address_range,
+                 DwarfPointerEncoding(pointer_encoding_ & 0x0f));
+  return *this;
+}
+
+CFISection& CFISection::FinishEntry() {
+  assert(entry_length_);
+  Align(address_size_, dwarf2reader::DW_CFA_nop);
+  entry_length_->length = Here() - entry_length_->start;
+  delete entry_length_;
+  entry_length_ = NULL;
+  in_fde_ = false;
+  return *this;
+}
+
+CFISection& CFISection::EncodedPointer(uint64_t address,
+                                       DwarfPointerEncoding encoding,
+                                       const EncodedPointerBases& bases) {
+  // Omitted data is extremely easy to emit.
+  if (encoding == dwarf2reader::DW_EH_PE_omit)
+    return *this;
+
+  // If (encoding & dwarf2reader::DW_EH_PE_indirect) != 0, then we assume
+  // that ADDRESS is the address at which the pointer is stored --- in
+  // other words, that bit has no effect on how we write the pointer.
+  encoding = DwarfPointerEncoding(encoding & ~dwarf2reader::DW_EH_PE_indirect);
+
+  // Find the base address to which this pointer is relative. The upper
+  // nybble of the encoding specifies this.
+  uint64_t base;
+  switch (encoding & 0xf0) {
+    case dwarf2reader::DW_EH_PE_absptr:  base = 0;                  break;
+    case dwarf2reader::DW_EH_PE_pcrel:   base = bases.cfi + Size(); break;
+    case dwarf2reader::DW_EH_PE_textrel: base = bases.text;         break;
+    case dwarf2reader::DW_EH_PE_datarel: base = bases.data;         break;
+    case dwarf2reader::DW_EH_PE_funcrel: base = fde_start_address_; break;
+    case dwarf2reader::DW_EH_PE_aligned: base = 0;                  break;
+    default: abort();
+  };
+
+  // Make ADDRESS relative. Yes, this is appropriate even for "absptr"
+  // values; see gcc/unwind-pe.h.
+  address -= base;
+
+  // Align the pointer, if required.
+  if ((encoding & 0xf0) == dwarf2reader::DW_EH_PE_aligned)
+    Align(AddressSize());
+
+  // Append ADDRESS to this section in the appropriate form. For the
+  // fixed-width forms, we don't need to differentiate between signed and
+  // unsigned encodings, because ADDRESS has already been extended to 64
+  // bits before it was passed to us.
+  switch (encoding & 0x0f) {
+    case dwarf2reader::DW_EH_PE_absptr:
+      Address(address);
+      break;
+
+    case dwarf2reader::DW_EH_PE_uleb128:
+      ULEB128(address);
+      break;
+
+    case dwarf2reader::DW_EH_PE_sleb128:
+      LEB128(address);
+      break;
+
+    case dwarf2reader::DW_EH_PE_udata2:
+    case dwarf2reader::DW_EH_PE_sdata2:
+      D16(address);
+      break;
+
+    case dwarf2reader::DW_EH_PE_udata4:
+    case dwarf2reader::DW_EH_PE_sdata4:
+      D32(address);
+      break;
+
+    case dwarf2reader::DW_EH_PE_udata8:
+    case dwarf2reader::DW_EH_PE_sdata8:
+      D64(address);
+      break;
+
+    default:
+      abort();
+  }
+
+  return *this;
+};
+
+const uint32_t CFISection::kDwarf64InitialLengthMarker;
+const uint32_t CFISection::kDwarf32CIEIdentifier;
+const uint64_t CFISection::kDwarf64CIEIdentifier;
+const uint32_t CFISection::kEHFrame32CIEIdentifier;
+const uint64_t CFISection::kEHFrame64CIEIdentifier;
+
+} // namespace google_breakpad
diff --git a/src/common/dwarf/cfi_assembler.h b/src/common/dwarf/cfi_assembler.h
new file mode 100644
index 0000000..d60ecc9
--- /dev/null
+++ b/src/common/dwarf/cfi_assembler.h
@@ -0,0 +1,271 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_assembler.h: Define CFISection, a class for creating properly
+// (and improperly) formatted DWARF CFI data for unit tests.
+
+#ifndef PROCESSOR_CFI_ASSEMBLER_H_
+#define PROCESSOR_CFI_ASSEMBLER_H_
+
+#include <string>
+
+#include "common/dwarf/dwarf2enums.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+using dwarf2reader::DwarfPointerEncoding;
+using google_breakpad::test_assembler::Endianness;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+
+class CFISection: public Section {
+ public:
+
+  // CFI augmentation strings beginning with 'z', defined by the
+  // Linux/IA-64 C++ ABI, can specify interesting encodings for
+  // addresses appearing in FDE headers and call frame instructions (and
+  // for additional fields whose presence the augmentation string
+  // specifies). In particular, pointers can be specified to be relative
+  // to various base address: the start of the .text section, the
+  // location holding the address itself, and so on. These allow the
+  // frame data to be position-independent even when they live in
+  // write-protected pages. These variants are specified at the
+  // following two URLs:
+  //
+  // http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/dwarfext.html
+  // http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
+  //
+  // CFISection leaves the production of well-formed 'z'-augmented CIEs and
+  // FDEs to the user, but does provide EncodedPointer, to emit
+  // properly-encoded addresses for a given pointer encoding.
+  // EncodedPointer uses an instance of this structure to find the base
+  // addresses it should use; you can establish a default for all encoded
+  // pointers appended to this section with SetEncodedPointerBases.
+  struct EncodedPointerBases {
+    EncodedPointerBases() : cfi(), text(), data() { }
+
+    // The starting address of this CFI section in memory, for
+    // DW_EH_PE_pcrel. DW_EH_PE_pcrel pointers may only be used in data
+    // that has is loaded into the program's address space.
+    uint64_t cfi;
+
+    // The starting address of this file's .text section, for DW_EH_PE_textrel.
+    uint64_t text;
+
+    // The starting address of this file's .got or .eh_frame_hdr section,
+    // for DW_EH_PE_datarel.
+    uint64_t data;
+  };
+
+  // Create a CFISection whose endianness is ENDIANNESS, and where
+  // machine addresses are ADDRESS_SIZE bytes long. If EH_FRAME is
+  // true, use the .eh_frame format, as described by the Linux
+  // Standards Base Core Specification, instead of the DWARF CFI
+  // format.
+  CFISection(Endianness endianness, size_t address_size,
+             bool eh_frame = false)
+      : Section(endianness), address_size_(address_size), eh_frame_(eh_frame),
+        pointer_encoding_(dwarf2reader::DW_EH_PE_absptr),
+        encoded_pointer_bases_(), entry_length_(NULL), in_fde_(false) {
+    // The 'start', 'Here', and 'Mark' members of a CFISection all refer
+    // to section offsets.
+    start() = 0;
+  }
+
+  // Return this CFISection's address size.
+  size_t AddressSize() const { return address_size_; }
+
+  // Return true if this CFISection uses the .eh_frame format, or
+  // false if it contains ordinary DWARF CFI data.
+  bool ContainsEHFrame() const { return eh_frame_; }
+
+  // Use ENCODING for pointers in calls to FDEHeader and EncodedPointer.
+  void SetPointerEncoding(DwarfPointerEncoding encoding) {
+    pointer_encoding_ = encoding;
+  }
+
+  // Use the addresses in BASES as the base addresses for encoded
+  // pointers in subsequent calls to FDEHeader or EncodedPointer.
+  // This function makes a copy of BASES.
+  void SetEncodedPointerBases(const EncodedPointerBases& bases) {
+    encoded_pointer_bases_ = bases;
+  }
+
+  // Append a Common Information Entry header to this section with the
+  // given values. If dwarf64 is true, use the 64-bit DWARF initial
+  // length format for the CIE's initial length. Return a reference to
+  // this section. You should call FinishEntry after writing the last
+  // instruction for the CIE.
+  //
+  // Before calling this function, you will typically want to use Mark
+  // or Here to make a label to pass to FDEHeader that refers to this
+  // CIE's position in the section.
+  CFISection& CIEHeader(uint64_t code_alignment_factor,
+                        int data_alignment_factor,
+                        unsigned return_address_register,
+                        uint8_t version = 3,
+                        const string& augmentation = "",
+                        bool dwarf64 = false,
+                        uint8_t address_size = 8,
+                        uint8_t segment_size = 0);
+
+  // Append a Frame Description Entry header to this section with the
+  // given values. If dwarf64 is true, use the 64-bit DWARF initial
+  // length format for the CIE's initial length. Return a reference to
+  // this section. You should call FinishEntry after writing the last
+  // instruction for the CIE.
+  //
+  // This function doesn't support entries that are longer than
+  // 0xffffff00 bytes. (The "initial length" is always a 32-bit
+  // value.) Nor does it support .debug_frame sections longer than
+  // 0xffffff00 bytes.
+  CFISection& FDEHeader(Label cie_pointer,
+                        uint64_t initial_location,
+                        uint64_t address_range,
+                        bool dwarf64 = false);
+
+  // Note the current position as the end of the last CIE or FDE we
+  // started, after padding with DW_CFA_nops for alignment. This
+  // defines the label representing the entry's length, cited in the
+  // entry's header. Return a reference to this section.
+  CFISection& FinishEntry();
+
+  // Append the contents of BLOCK as a DW_FORM_block value: an
+  // unsigned LEB128 length, followed by that many bytes of data.
+  CFISection& Block(const string& block) {
+    ULEB128(block.size());
+    Append(block);
+    return *this;
+  }
+
+  // Append ADDRESS to this section, in the appropriate size and
+  // endianness. Return a reference to this section.
+  CFISection& Address(uint64_t address) {
+    Section::Append(endianness(), address_size_, address);
+    return *this;
+  }
+  CFISection& Address(Label address) {
+    Section::Append(endianness(), address_size_, address);
+    return *this;
+  }
+
+  // Append ADDRESS to this section, using ENCODING and BASES. ENCODING
+  // defaults to this section's default encoding, established by
+  // SetPointerEncoding. BASES defaults to this section's bases, set by
+  // SetEncodedPointerBases. If the DW_EH_PE_indirect bit is set in the
+  // encoding, assume that ADDRESS is where the true address is stored.
+  // Return a reference to this section.
+  // 
+  // (C++ doesn't let me use default arguments here, because I want to
+  // refer to members of *this in the default argument expression.)
+  CFISection& EncodedPointer(uint64_t address) {
+    return EncodedPointer(address, pointer_encoding_, encoded_pointer_bases_);
+  }
+  CFISection& EncodedPointer(uint64_t address, DwarfPointerEncoding encoding) {
+    return EncodedPointer(address, encoding, encoded_pointer_bases_);
+  }
+  CFISection& EncodedPointer(uint64_t address, DwarfPointerEncoding encoding,
+                             const EncodedPointerBases& bases);
+
+  // Restate some member functions, to keep chaining working nicely.
+  CFISection& Mark(Label* label)  { Section::Mark(label); return *this; }
+  CFISection& D8(uint8_t v)       { Section::D8(v);       return *this; }
+  CFISection& D16(uint16_t v)     { Section::D16(v);      return *this; }
+  CFISection& D16(Label v)        { Section::D16(v);      return *this; }
+  CFISection& D32(uint32_t v)     { Section::D32(v);      return *this; }
+  CFISection& D32(const Label& v) { Section::D32(v);      return *this; }
+  CFISection& D64(uint64_t v)     { Section::D64(v);      return *this; }
+  CFISection& D64(const Label& v) { Section::D64(v);      return *this; }
+  CFISection& LEB128(long long v) { Section::LEB128(v);   return *this; }
+  CFISection& ULEB128(uint64_t v) { Section::ULEB128(v);  return *this; }
+
+ private:
+  // A length value that we've appended to the section, but is not yet
+  // known. LENGTH is the appended value; START is a label referring
+  // to the start of the data whose length was cited.
+  struct PendingLength {
+    Label length;
+    Label start;
+  };
+
+  // Constants used in CFI/.eh_frame data:
+
+  // If the first four bytes of an "initial length" are this constant, then
+  // the data uses the 64-bit DWARF format, and the length itself is the
+  // subsequent eight bytes.
+  static const uint32_t kDwarf64InitialLengthMarker = 0xffffffffU;
+
+  // The CIE identifier for 32- and 64-bit DWARF CFI and .eh_frame data.
+  static const uint32_t kDwarf32CIEIdentifier = ~(uint32_t)0;
+  static const uint64_t kDwarf64CIEIdentifier = ~(uint64_t)0;
+  static const uint32_t kEHFrame32CIEIdentifier = 0;
+  static const uint64_t kEHFrame64CIEIdentifier = 0;
+
+  // The size of a machine address for the data in this section.
+  size_t address_size_;
+
+  // If true, we are generating a Linux .eh_frame section, instead of
+  // a standard DWARF .debug_frame section.
+  bool eh_frame_;
+
+  // The encoding to use for FDE pointers.
+  DwarfPointerEncoding pointer_encoding_;
+
+  // The base addresses to use when emitting encoded pointers.
+  EncodedPointerBases encoded_pointer_bases_;
+
+  // The length value for the current entry.
+  //
+  // Oddly, this must be dynamically allocated. Labels never get new
+  // values; they only acquire constraints on the value they already
+  // have, or assert if you assign them something incompatible. So
+  // each header needs truly fresh Label objects to cite in their
+  // headers and track their positions. The alternative is explicit
+  // destructor invocation and a placement new. Ick.
+  PendingLength *entry_length_;
+
+  // True if we are currently emitting an FDE --- that is, we have
+  // called FDEHeader but have not yet called FinishEntry.
+  bool in_fde_;
+
+  // If in_fde_ is true, this is its starting address. We use this for
+  // emitting DW_EH_PE_funcrel pointers.
+  uint64_t fde_start_address_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_CFI_ASSEMBLER_H_
diff --git a/src/common/dwarf/dwarf2diehandler.cc b/src/common/dwarf/dwarf2diehandler.cc
new file mode 100644
index 0000000..f5a0683
--- /dev/null
+++ b/src/common/dwarf/dwarf2diehandler.cc
@@ -0,0 +1,199 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2diehandler.cc: Implement the dwarf2reader::DieDispatcher class.
+// See dwarf2diehandler.h for details.
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <string>
+
+#include "common/dwarf/dwarf2diehandler.h"
+#include "common/using_std_string.h"
+
+namespace dwarf2reader {
+
+DIEDispatcher::~DIEDispatcher() {
+  while (!die_handlers_.empty()) {
+    HandlerStack& entry = die_handlers_.top();
+    if (entry.handler_ != root_handler_)
+      delete entry.handler_;
+    die_handlers_.pop();
+  }
+}
+
+bool DIEDispatcher::StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                                         uint8_t offset_size, uint64_t cu_length,
+                                         uint8_t dwarf_version) {
+  return root_handler_->StartCompilationUnit(offset, address_size,
+                                             offset_size, cu_length,
+                                             dwarf_version);
+}
+
+bool DIEDispatcher::StartDIE(uint64_t offset, enum DwarfTag tag) {
+  // The stack entry for the parent of this DIE, if there is one.
+  HandlerStack* parent = die_handlers_.empty() ? NULL : &die_handlers_.top();
+
+  // Does this call indicate that we're done receiving the parent's
+  // attributes' values?  If so, call its EndAttributes member function.
+  if (parent && parent->handler_ && !parent->reported_attributes_end_) {
+    parent->reported_attributes_end_ = true;
+    if (!parent->handler_->EndAttributes()) {
+      // Finish off this handler now. and edit *PARENT to indicate that
+      // we don't want to visit any of the children.
+      parent->handler_->Finish();
+      if (parent->handler_ != root_handler_)
+        delete parent->handler_;
+      parent->handler_ = NULL;
+      return false;
+    }
+  }
+
+  // Find a handler for this DIE.
+  DIEHandler* handler;
+  if (parent) {
+    if (parent->handler_)
+      // Ask the parent to find a handler.
+      handler = parent->handler_->FindChildHandler(offset, tag);
+    else
+      // No parent handler means we're not interested in any of our
+      // children.
+      handler = NULL;
+  } else {
+    // This is the root DIE.  For a non-root DIE, the parent's handler
+    // decides whether to visit it, but the root DIE has no parent
+    // handler, so we have a special method on the root DIE handler
+    // itself to decide.
+    if (root_handler_->StartRootDIE(offset, tag))
+      handler = root_handler_;
+    else
+      handler = NULL;
+  }
+
+  // Push a handler stack entry for this new handler. As an
+  // optimization, we don't push NULL-handler entries on top of other
+  // NULL-handler entries; we just let the oldest such entry stand for
+  // the whole subtree.
+  if (handler || !parent || parent->handler_) {
+    HandlerStack entry;
+    entry.offset_ = offset;
+    entry.handler_ = handler;
+    entry.reported_attributes_end_ = false;
+    die_handlers_.push(entry);
+  }
+
+  return handler != NULL;
+}
+
+void DIEDispatcher::EndDIE(uint64_t offset) {
+  assert(!die_handlers_.empty());
+  HandlerStack* entry = &die_handlers_.top();
+  if (entry->handler_) {
+    // This entry had better be the handler for this DIE.
+    assert(entry->offset_ == offset);
+    // If a DIE has no children, this EndDIE call indicates that we're
+    // done receiving its attributes' values.
+    if (!entry->reported_attributes_end_)
+      entry->handler_->EndAttributes(); // Ignore return value: no children.
+    entry->handler_->Finish();
+    if (entry->handler_ != root_handler_)
+      delete entry->handler_;
+  } else {
+    // If this DIE is within a tree we're ignoring, then don't pop the
+    // handler stack: that entry stands for the whole tree.
+    if (entry->offset_ != offset)
+      return;
+  }
+  die_handlers_.pop();
+}
+
+void DIEDispatcher::ProcessAttributeUnsigned(uint64_t offset,
+                                             enum DwarfAttribute attr,
+                                             enum DwarfForm form,
+                                             uint64_t data) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeUnsigned(attr, form, data);
+}
+
+void DIEDispatcher::ProcessAttributeSigned(uint64_t offset,
+                                           enum DwarfAttribute attr,
+                                           enum DwarfForm form,
+                                           int64_t data) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeSigned(attr, form, data);
+}
+
+void DIEDispatcher::ProcessAttributeReference(uint64_t offset,
+                                              enum DwarfAttribute attr,
+                                              enum DwarfForm form,
+                                              uint64_t data) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeReference(attr, form, data);
+}
+
+void DIEDispatcher::ProcessAttributeBuffer(uint64_t offset,
+                                           enum DwarfAttribute attr,
+                                           enum DwarfForm form,
+                                           const uint8_t* data,
+                                           uint64_t len) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeBuffer(attr, form, data, len);
+}
+
+void DIEDispatcher::ProcessAttributeString(uint64_t offset,
+                                           enum DwarfAttribute attr,
+                                           enum DwarfForm form,
+                                           const string& data) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeString(attr, form, data);
+}
+
+void DIEDispatcher::ProcessAttributeSignature(uint64_t offset,
+                                              enum DwarfAttribute attr,
+                                              enum DwarfForm form,
+                                              uint64_t signature) {
+  HandlerStack& current = die_handlers_.top();
+  // This had better be an attribute of the DIE we were meant to handle.
+  assert(offset == current.offset_);
+  current.handler_->ProcessAttributeSignature(attr, form, signature);
+}
+
+} // namespace dwarf2reader
diff --git a/src/common/dwarf/dwarf2diehandler.h b/src/common/dwarf/dwarf2diehandler.h
new file mode 100644
index 0000000..028a6d1
--- /dev/null
+++ b/src/common/dwarf/dwarf2diehandler.h
@@ -0,0 +1,365 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2reader::CompilationUnit is a simple and direct parser for
+// DWARF data, but its handler interface is not convenient to use.  In
+// particular:
+//
+// - CompilationUnit calls Dwarf2Handler's member functions to report
+//   every attribute's value, regardless of what sort of DIE it is.
+//   As a result, the ProcessAttributeX functions end up looking like
+//   this:
+//
+//     switch (parent_die_tag) {
+//       case DW_TAG_x:
+//         switch (attribute_name) {
+//           case DW_AT_y:
+//             handle attribute y of DIE type x
+//           ...
+//         } break;
+//       ...
+//     } 
+//
+//   In C++ it's much nicer to use virtual function dispatch to find
+//   the right code for a given case than to switch on the DIE tag
+//   like this.
+//
+// - Processing different kinds of DIEs requires different sets of
+//   data: lexical block DIEs have start and end addresses, but struct
+//   type DIEs don't.  It would be nice to be able to have separate
+//   handler classes for separate kinds of DIEs, each with the members
+//   appropriate to its role, instead of having one handler class that
+//   needs to hold data for every DIE type.
+//
+// - There should be a separate instance of the appropriate handler
+//   class for each DIE, instead of a single object with tables
+//   tracking all the dies in the compilation unit.
+//
+// - It's not convenient to take some action after all a DIE's
+//   attributes have been seen, but before visiting any of its
+//   children.  The only indication you have that a DIE's attribute
+//   list is complete is that you get either a StartDIE or an EndDIE
+//   call.
+//
+// - It's not convenient to make use of the tree structure of the
+//   DIEs.  Skipping all the children of a given die requires
+//   maintaining state and returning false from StartDIE until we get
+//   an EndDIE call with the appropriate offset.
+//
+// This interface tries to take care of all that.  (You're shocked, I'm sure.)
+//
+// Using the classes here, you provide an initial handler for the root
+// DIE of the compilation unit.  Each handler receives its DIE's
+// attributes, and provides fresh handler objects for children of
+// interest, if any.  The three classes are:
+//
+// - DIEHandler: the base class for your DIE-type-specific handler
+//   classes.
+//
+// - RootDIEHandler: derived from DIEHandler, the base class for your
+//   root DIE handler class.
+//
+// - DIEDispatcher: derived from Dwarf2Handler, an instance of this
+//   invokes your DIE-type-specific handler objects.
+//
+// In detail:
+//
+// - Define handler classes specialized for the DIE types you're
+//   interested in.  These handler classes must inherit from
+//   DIEHandler.  Thus:
+//
+//     class My_DW_TAG_X_Handler: public DIEHandler { ... };
+//     class My_DW_TAG_Y_Handler: public DIEHandler { ... };
+//
+//   DIEHandler subclasses needn't correspond exactly to single DIE
+//   types, as shown here; the point is that you can have several
+//   different classes appropriate to different kinds of DIEs.
+//
+// - In particular, define a handler class for the compilation
+//   unit's root DIE, that inherits from RootDIEHandler:
+//
+//     class My_DW_TAG_compile_unit_Handler: public RootDIEHandler { ... };
+//
+//   RootDIEHandler inherits from DIEHandler, adding a few additional
+//   member functions for examining the compilation unit as a whole,
+//   and other quirks of rootness.
+//
+// - Then, create a DIEDispatcher instance, passing it an instance of
+//   your root DIE handler class, and use that DIEDispatcher as the
+//   dwarf2reader::CompilationUnit's handler:
+//
+//     My_DW_TAG_compile_unit_Handler root_die_handler(...);
+//     DIEDispatcher die_dispatcher(&root_die_handler);
+//     CompilationUnit reader(sections, offset, bytereader, &die_dispatcher);
+//
+//   Here, 'die_dispatcher' acts as a shim between 'reader' and the
+//   various DIE-specific handlers you have defined.
+//
+// - When you call reader.Start(), die_dispatcher behaves as follows,
+//   starting with your root die handler and the compilation unit's
+//   root DIE:
+//
+//   - It calls the handler's ProcessAttributeX member functions for
+//     each of the DIE's attributes.
+//
+//   - It calls the handler's EndAttributes member function.  This
+//     should return true if any of the DIE's children should be
+//     visited, in which case:
+//
+//     - For each of the DIE's children, die_dispatcher calls the
+//       DIE's handler's FindChildHandler member function.  If that
+//       returns a pointer to a DIEHandler instance, then
+//       die_dispatcher uses that handler to process the child, using
+//       this procedure recursively.  Alternatively, if
+//       FindChildHandler returns NULL, die_dispatcher ignores that
+//       child and its descendants.
+// 
+//   - When die_dispatcher has finished processing all the DIE's
+//     children, it invokes the handler's Finish() member function,
+//     and destroys the handler.  (As a special case, it doesn't
+//     destroy the root DIE handler.)
+// 
+// This allows the code for handling a particular kind of DIE to be
+// gathered together in a single class, makes it easy to skip all the
+// children or individual children of a particular DIE, and provides
+// appropriate parental context for each die.
+
+#ifndef COMMON_DWARF_DWARF2DIEHANDLER_H__
+#define COMMON_DWARF_DWARF2DIEHANDLER_H__
+
+#include <stdint.h>
+
+#include <stack>
+#include <string>
+
+#include "common/dwarf/types.h"
+#include "common/dwarf/dwarf2enums.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+
+namespace dwarf2reader {
+
+// A base class for handlers for specific DIE types.  The series of
+// calls made on a DIE handler is as follows:
+//
+// - for each attribute of the DIE:
+//   - ProcessAttributeX()
+// - EndAttributes()
+// - if that returned true, then for each child:
+//   - FindChildHandler()
+//   - if that returns a non-NULL pointer to a new handler:
+//     - recurse, with the new handler and the child die
+// - Finish()
+// - destruction
+class DIEHandler {
+ public:
+  DIEHandler() { }
+  virtual ~DIEHandler() { }
+
+  // When we visit a DIE, we first use these member functions to
+  // report the DIE's attributes and their values.  These have the
+  // same restrictions as the corresponding member functions of
+  // dwarf2reader::Dwarf2Handler.
+  //
+  // Since DWARF does not specify in what order attributes must
+  // appear, avoid making decisions in these functions that would be
+  // affected by the presence of other attributes. The EndAttributes
+  // function is a more appropriate place for such work, as all the
+  // DIE's attributes have been seen at that point.
+  //
+  // The default definitions ignore the values they are passed.
+  virtual void ProcessAttributeUnsigned(enum DwarfAttribute attr,
+                                        enum DwarfForm form,
+                                        uint64_t data) { }
+  virtual void ProcessAttributeSigned(enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      int64_t data) { }
+  virtual void ProcessAttributeReference(enum DwarfAttribute attr,
+                                         enum DwarfForm form,
+                                         uint64_t data) { }
+  virtual void ProcessAttributeBuffer(enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      const uint8_t* data,
+                                      uint64_t len) { }
+  virtual void ProcessAttributeString(enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      const string& data) { }
+  virtual void ProcessAttributeSignature(enum DwarfAttribute attr,
+                                         enum DwarfForm form,
+                                         uint64_t signture) { }
+
+  // Once we have reported all the DIE's attributes' values, we call
+  // this member function.  If it returns false, we skip all the DIE's
+  // children.  If it returns true, we call FindChildHandler on each
+  // child.  If that returns a handler object, we use that to visit
+  // the child; otherwise, we skip the child.
+  //
+  // This is a good place to make decisions that depend on more than
+  // one attribute. DWARF does not specify in what order attributes
+  // must appear, so only when the EndAttributes function is called
+  // does the handler have a complete picture of the DIE's attributes.
+  //
+  // The default definition elects to ignore the DIE's children.
+  // You'll need to override this if you override FindChildHandler,
+  // but at least the default behavior isn't to pass the children to
+  // FindChildHandler, which then ignores them all.
+  virtual bool EndAttributes() { return false; }
+
+  // If EndAttributes returns true to indicate that some of the DIE's
+  // children might be of interest, then we apply this function to
+  // each of the DIE's children.  If it returns a handler object, then
+  // we use that to visit the child DIE.  If it returns NULL, we skip
+  // that child DIE (and all its descendants).
+  //
+  // OFFSET is the offset of the child; TAG indicates what kind of DIE
+  // it is.
+  //
+  // The default definition skips all children.
+  virtual DIEHandler* FindChildHandler(uint64_t offset, enum DwarfTag tag) {
+    return NULL;
+  }
+
+  // When we are done processing a DIE, we call this member function.
+  // This happens after the EndAttributes call, all FindChildHandler
+  // calls (if any), and all operations on the children themselves (if
+  // any). We call Finish on every handler --- even if EndAttributes
+  // returns false.
+  virtual void Finish() { };
+};
+
+// A subclass of DIEHandler, with additional kludges for handling the
+// compilation unit's root die.
+class RootDIEHandler: public DIEHandler {
+ public:
+  RootDIEHandler() { }
+  virtual ~RootDIEHandler() { }
+
+  // We pass the values reported via Dwarf2Handler::StartCompilationUnit
+  // to this member function, and skip the entire compilation unit if it
+  // returns false.  So the root DIE handler is actually also
+  // responsible for handling the compilation unit metadata.
+  // The default definition always visits the compilation unit.
+  virtual bool StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                                    uint8_t offset_size, uint64_t cu_length,
+                                    uint8_t dwarf_version) { return true; }
+
+  // For the root DIE handler only, we pass the offset, tag and
+  // attributes of the compilation unit's root DIE.  This is the only
+  // way the root DIE handler can find the root DIE's tag.  If this
+  // function returns true, we will visit the root DIE using the usual
+  // DIEHandler methods; otherwise, we skip the entire compilation
+  // unit.
+  //
+  // The default definition elects to visit the root DIE.
+  virtual bool StartRootDIE(uint64_t offset, enum DwarfTag tag) { return true; }
+};
+
+class DIEDispatcher: public Dwarf2Handler {
+ public:
+  // Create a Dwarf2Handler which uses ROOT_HANDLER as the handler for
+  // the compilation unit's root die, as described for the DIEHandler
+  // class.
+  DIEDispatcher(RootDIEHandler* root_handler) : root_handler_(root_handler) { }
+  // Destroying a DIEDispatcher destroys all active handler objects
+  // except the root handler.
+  ~DIEDispatcher();
+  bool StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                            uint8_t offset_size, uint64_t cu_length,
+                            uint8_t dwarf_version);
+  bool StartDIE(uint64_t offset, enum DwarfTag tag);
+  void ProcessAttributeUnsigned(uint64_t offset,
+                                enum DwarfAttribute attr,
+                                enum DwarfForm form,
+                                uint64_t data);
+  void ProcessAttributeSigned(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              int64_t data);
+  void ProcessAttributeReference(uint64_t offset,
+                                 enum DwarfAttribute attr,
+                                 enum DwarfForm form,
+                                 uint64_t data);
+  void ProcessAttributeBuffer(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const uint8_t* data,
+                              uint64_t len);
+  void ProcessAttributeString(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const string& data);
+  void ProcessAttributeSignature(uint64_t offset,
+                                 enum DwarfAttribute attr,
+                                 enum DwarfForm form,
+                                 uint64_t signature);
+  void EndDIE(uint64_t offset);
+
+ private:
+
+  // The type of a handler stack entry.  This includes some fields
+  // which don't really need to be on the stack --- they could just be
+  // single data members of DIEDispatcher --- but putting them here
+  // makes it easier to see that the code is correct.
+  struct HandlerStack {
+    // The offset of the DIE for this handler stack entry.
+    uint64_t offset_;
+
+    // The handler object interested in this DIE's attributes and
+    // children.  If NULL, we're not interested in either.
+    DIEHandler* handler_;
+
+    // Have we reported the end of this DIE's attributes to the handler?
+    bool reported_attributes_end_;
+  };
+
+  // Stack of DIE attribute handlers.  At StartDIE(D), the top of the
+  // stack is the handler of D's parent, whom we may ask for a handler
+  // for D itself.  At EndDIE(D), the top of the stack is D's handler.
+  // Special cases:
+  //
+  // - Before we've seen the compilation unit's root DIE, the stack is
+  //   empty; we'll call root_handler_'s special member functions, and
+  //   perhaps push root_handler_ on the stack to look at the root's
+  //   immediate children.
+  //
+  // - When we decide to ignore a subtree, we only push an entry on
+  //   the stack for the root of the tree being ignored, rather than
+  //   pushing lots of stack entries with handler_ set to NULL.
+  std::stack<HandlerStack> die_handlers_;
+
+  // The root handler.  We don't push it on die_handlers_ until we
+  // actually get the StartDIE call for the root.
+  RootDIEHandler* root_handler_;
+};
+
+} // namespace dwarf2reader
+#endif  // COMMON_DWARF_DWARF2DIEHANDLER_H__
diff --git a/src/common/dwarf/dwarf2diehandler_unittest.cc b/src/common/dwarf/dwarf2diehandler_unittest.cc
new file mode 100644
index 0000000..552c3d1
--- /dev/null
+++ b/src/common/dwarf/dwarf2diehandler_unittest.cc
@@ -0,0 +1,528 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2diehander_unittest.cc: Unit tests for google_breakpad::DIEDispatcher.
+
+#include <stdint.h>
+
+#include <string>
+#include <utility>
+
+#include "breakpad_googletest_includes.h"
+
+#include "common/dwarf/dwarf2diehandler.h"
+#include "common/using_std_string.h"
+
+using std::make_pair;
+
+using ::testing::_;
+using ::testing::ContainerEq;
+using ::testing::ElementsAreArray;
+using ::testing::Eq;
+using ::testing::InSequence;
+using ::testing::Return;
+using ::testing::Sequence;
+using ::testing::StrEq;
+
+using dwarf2reader::DIEDispatcher;
+using dwarf2reader::DIEHandler;
+using dwarf2reader::DwarfAttribute;
+using dwarf2reader::DwarfForm;
+using dwarf2reader::DwarfTag;
+using dwarf2reader::RootDIEHandler;
+
+class MockDIEHandler: public DIEHandler {
+ public:
+  MOCK_METHOD3(ProcessAttributeUnsigned,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD3(ProcessAttributeSigned,
+               void(DwarfAttribute, DwarfForm, int64_t));
+  MOCK_METHOD3(ProcessAttributeReference,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD4(ProcessAttributeBuffer,
+               void(DwarfAttribute, DwarfForm, const uint8_t*, uint64_t));
+  MOCK_METHOD3(ProcessAttributeString,
+               void(DwarfAttribute, DwarfForm, const string&));
+  MOCK_METHOD3(ProcessAttributeSignature,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD0(EndAttributes, bool());
+  MOCK_METHOD2(FindChildHandler, DIEHandler *(uint64_t, DwarfTag));
+  MOCK_METHOD0(Finish, void());
+};
+
+class MockRootDIEHandler: public RootDIEHandler {
+ public:
+  MOCK_METHOD3(ProcessAttributeUnsigned,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD3(ProcessAttributeSigned,
+               void(DwarfAttribute, DwarfForm, int64_t));
+  MOCK_METHOD3(ProcessAttributeReference,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD4(ProcessAttributeBuffer,
+               void(DwarfAttribute, DwarfForm, const uint8_t*, uint64_t));
+  MOCK_METHOD3(ProcessAttributeString,
+               void(DwarfAttribute, DwarfForm, const string&));
+  MOCK_METHOD3(ProcessAttributeSignature,
+               void(DwarfAttribute, DwarfForm, uint64_t));
+  MOCK_METHOD0(EndAttributes, bool());
+  MOCK_METHOD2(FindChildHandler, DIEHandler *(uint64_t, DwarfTag));
+  MOCK_METHOD0(Finish, void());
+  MOCK_METHOD5(StartCompilationUnit, bool(uint64_t, uint8_t, uint8_t, uint64_t,
+                                          uint8_t));
+  MOCK_METHOD2(StartRootDIE, bool(uint64_t, DwarfTag));
+};
+
+// If the handler elects to skip the compilation unit, the dispatcher
+// should tell the reader so.
+TEST(Dwarf2DIEHandler, SkipCompilationUnit) {
+  Sequence s;
+  MockRootDIEHandler mock_root_handler;
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+
+  EXPECT_CALL(mock_root_handler,
+              StartCompilationUnit(0x8d42aed77cfccf3eLL,
+                                   0x89, 0xdc,
+                                   0x2ecb4dc778a80f21LL,
+                                   0x66))
+      .InSequence(s)
+      .WillOnce(Return(false));
+
+  EXPECT_FALSE(die_dispatcher.StartCompilationUnit(0x8d42aed77cfccf3eLL,
+                                                   0x89, 0xdc,
+                                                   0x2ecb4dc778a80f21LL,
+                                                   0x66));
+}
+
+// If the handler elects to skip the root DIE, the dispatcher should
+// tell the reader so.
+TEST(Dwarf2DIEHandler, SkipRootDIE) {
+  Sequence s;
+  MockRootDIEHandler mock_root_handler;
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+
+  EXPECT_CALL(mock_root_handler,
+              StartCompilationUnit(0xde8994029fc8b999LL, 0xf4, 0x02,
+                                   0xb00febffa76e2b2bLL, 0x5c))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(mock_root_handler,
+              StartRootDIE(0x7d08242b4b510cf2LL, (DwarfTag) 0xb4f98da6))
+      .InSequence(s)
+      .WillOnce(Return(false));
+
+  EXPECT_TRUE(die_dispatcher.StartCompilationUnit(0xde8994029fc8b999LL, 
+                                                  0xf4, 0x02,
+                                                  0xb00febffa76e2b2bLL, 0x5c));
+  EXPECT_FALSE(die_dispatcher.StartDIE(0x7d08242b4b510cf2LL,
+                                       (DwarfTag) 0xb4f98da6));
+  die_dispatcher.EndDIE(0x7d08242b4b510cf2LL);
+}
+
+// If the handler elects to skip the root DIE's children, the
+// dispatcher should tell the reader so --- and avoid deleting the
+// root handler.
+TEST(Dwarf2DIEHandler, SkipRootDIEChildren) {
+  MockRootDIEHandler mock_root_handler;
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_root_handler,
+                StartCompilationUnit(0x15d6897480cc65a7LL, 0x26, 0xa0,
+                                     0x09f8bf0767f91675LL, 0xdb))
+      .WillOnce(Return(true));
+    EXPECT_CALL(mock_root_handler,
+                StartRootDIE(0x7d08242b4b510cf2LL, (DwarfTag) 0xb4f98da6))
+      .WillOnce(Return(true));
+    // Please don't tell me about my children.
+    EXPECT_CALL(mock_root_handler, EndAttributes())
+      .WillOnce(Return(false));
+    EXPECT_CALL(mock_root_handler, Finish())
+      .WillOnce(Return());
+  }
+
+  EXPECT_TRUE(die_dispatcher.StartCompilationUnit(0x15d6897480cc65a7LL,
+                                                  0x26, 0xa0,
+                                                  0x09f8bf0767f91675LL, 0xdb));
+  EXPECT_TRUE(die_dispatcher.StartDIE(0x7d08242b4b510cf2LL,
+                                      (DwarfTag) 0xb4f98da6));
+  EXPECT_FALSE(die_dispatcher.StartDIE(0x435150ceedccda18LL,
+                                       (DwarfTag) 0xc3a17bba));
+  die_dispatcher.EndDIE(0x435150ceedccda18LL);
+  die_dispatcher.EndDIE(0x7d08242b4b510cf2LL);
+}
+
+// The dispatcher should pass attribute values through to the die
+// handler accurately.
+TEST(Dwarf2DIEHandler, PassAttributeValues) {
+  MockRootDIEHandler mock_root_handler;
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+
+  const uint8_t buffer[10] = {
+    0x24, 0x24, 0x35, 0x9a, 0xca, 0xcf, 0xa8, 0x84, 0xa7, 0x18
+  };
+  string str = "\xc8\x26\x2e\x0d\xa4\x9c\x37\xd6\xfb\x1d";
+
+  // Set expectations.
+  {
+    InSequence s;
+
+    // We'll like the compilation unit header.
+    EXPECT_CALL(mock_root_handler,
+                StartCompilationUnit(0x8d42aed77cfccf3eLL, 0x89, 0xdc,
+                                     0x2ecb4dc778a80f21LL, 0x66))
+      .WillOnce(Return(true));
+
+    // We'll like the root DIE.
+    EXPECT_CALL(mock_root_handler,
+                StartRootDIE(0xe2222da01e29f2a9LL, (DwarfTag) 0x9829445c))
+      .WillOnce(Return(true));
+
+    // Expect some attribute values.
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeUnsigned((DwarfAttribute) 0x1cc0bfed,
+                                         (DwarfForm) 0x424f1468,
+                                         0xa592571997facda1ULL))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeSigned((DwarfAttribute) 0x43694dc9,
+                                       (DwarfForm) 0xf6f78901L,
+                                       0x92602a4e3bf1f446LL))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeReference((DwarfAttribute) 0x4033e8cL,
+                                          (DwarfForm) 0xf66fbe0bL,
+                                          0x50fddef44734fdecULL))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeBuffer((DwarfAttribute) 0x25d7e0af,
+                                       (DwarfForm) 0xe99a539a,
+                                       buffer, sizeof(buffer)))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeString((DwarfAttribute) 0x310ed065,
+                                       (DwarfForm) 0x15762fec,
+                                       StrEq(str)))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler,
+                ProcessAttributeSignature((DwarfAttribute) 0x58790d72,
+                                          (DwarfForm) 0x4159f138,
+                                          0x94682463613e6a5fULL))
+      .WillOnce(Return());
+    EXPECT_CALL(mock_root_handler, EndAttributes())
+      .WillOnce(Return(true));
+    EXPECT_CALL(mock_root_handler, FindChildHandler(_, _))
+      .Times(0);
+    EXPECT_CALL(mock_root_handler, Finish())
+      .WillOnce(Return());
+  }
+
+  // Drive the dispatcher.
+
+  // Report the CU header.
+  EXPECT_TRUE(die_dispatcher.StartCompilationUnit(0x8d42aed77cfccf3eLL,
+                                                  0x89, 0xdc,
+                                                  0x2ecb4dc778a80f21LL,
+                                                  0x66));
+  // Report the root DIE.
+  EXPECT_TRUE(die_dispatcher.StartDIE(0xe2222da01e29f2a9LL,
+                                      (DwarfTag) 0x9829445c));
+
+  // Report some attribute values.
+  die_dispatcher.ProcessAttributeUnsigned(0xe2222da01e29f2a9LL,
+                                          (DwarfAttribute) 0x1cc0bfed,
+                                          (DwarfForm) 0x424f1468,
+                                          0xa592571997facda1ULL);
+  die_dispatcher.ProcessAttributeSigned(0xe2222da01e29f2a9LL,
+                                        (DwarfAttribute) 0x43694dc9,
+                                        (DwarfForm) 0xf6f78901,
+                                        0x92602a4e3bf1f446LL);
+  die_dispatcher.ProcessAttributeReference(0xe2222da01e29f2a9LL,
+                                           (DwarfAttribute) 0x4033e8c,
+                                           (DwarfForm) 0xf66fbe0b,
+                                           0x50fddef44734fdecULL);
+  die_dispatcher.ProcessAttributeBuffer(0xe2222da01e29f2a9LL,
+                                        (DwarfAttribute) 0x25d7e0af,
+                                        (DwarfForm) 0xe99a539a,
+                                        buffer, sizeof(buffer));
+  die_dispatcher.ProcessAttributeString(0xe2222da01e29f2a9LL,
+                                        (DwarfAttribute) 0x310ed065,
+                                        (DwarfForm) 0x15762fec,
+                                        str);
+  die_dispatcher.ProcessAttributeSignature(0xe2222da01e29f2a9LL,
+                                           (DwarfAttribute) 0x58790d72,
+                                           (DwarfForm) 0x4159f138,
+                                           0x94682463613e6a5fULL);
+
+  // Finish the root DIE (and thus the CU).
+  die_dispatcher.EndDIE(0xe2222da01e29f2a9LL);
+}
+
+TEST(Dwarf2DIEHandler, FindAndSkipChildren) {
+  MockRootDIEHandler mock_root_handler;
+  MockDIEHandler *mock_child1_handler = new(MockDIEHandler);
+  MockDIEHandler *mock_child3_handler = new(MockDIEHandler);
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+
+  {
+    InSequence s;
+
+    // We'll like the compilation unit header.
+    EXPECT_CALL(mock_root_handler,
+                StartCompilationUnit(0x9ec1e6d05e434a0eLL, 0xeb, 0x21,
+                                     0x47dd3c764275a216LL, 0xa5))
+      .WillOnce(Return(true));
+
+    // Root DIE.
+    {
+      EXPECT_CALL(mock_root_handler,
+                  StartRootDIE(0x15f0e06bdfe3c372LL, (DwarfTag) 0xf5d60c59))
+        .WillOnce(Return(true));
+      EXPECT_CALL(mock_root_handler,
+                  ProcessAttributeSigned((DwarfAttribute) 0xf779a642,
+                                         (DwarfForm) 0x2cb63027,
+                                         0x18e744661769d08fLL))
+        .WillOnce(Return());
+      EXPECT_CALL(mock_root_handler, EndAttributes())
+        .WillOnce(Return(true));
+
+      // First child DIE.
+      EXPECT_CALL(mock_root_handler,
+                  FindChildHandler(0x149f644f8116fe8cLL,
+                                   (DwarfTag) 0xac2cbd8c))
+        .WillOnce(Return(mock_child1_handler));
+      {
+        EXPECT_CALL(*mock_child1_handler,
+                    ProcessAttributeSigned((DwarfAttribute) 0xa6fd6f65,
+                                           (DwarfForm) 0xe4f64c41,
+                                           0x1b04e5444a55fe67LL))
+          .WillOnce(Return());
+        EXPECT_CALL(*mock_child1_handler, EndAttributes())
+          .WillOnce(Return(false));
+        // Skip first grandchild DIE and first great-grandchild DIE.
+        EXPECT_CALL(*mock_child1_handler, Finish())
+          .WillOnce(Return());
+      }
+
+      // Second child DIE.  Root handler will decline to return a handler
+      // for this child.
+      EXPECT_CALL(mock_root_handler,
+                  FindChildHandler(0x97412be24875de9dLL,
+                                   (DwarfTag) 0x505a068b))
+        .WillOnce(Return((DIEHandler*) NULL));
+
+      // Third child DIE.
+      EXPECT_CALL(mock_root_handler,
+                  FindChildHandler(0x753c964c8ab538aeLL,
+                                   (DwarfTag) 0x8c22970e))
+        .WillOnce(Return(mock_child3_handler));
+      {
+        EXPECT_CALL(*mock_child3_handler,
+                    ProcessAttributeSigned((DwarfAttribute) 0x4e2b7cfb,
+                                           (DwarfForm) 0x610b7ae1,
+                                           0x3ea5c609d7d7560fLL))
+          .WillOnce(Return());
+        EXPECT_CALL(*mock_child3_handler, EndAttributes())
+          .WillOnce(Return(true));
+        EXPECT_CALL(*mock_child3_handler, Finish())
+          .WillOnce(Return());
+      }
+
+      EXPECT_CALL(mock_root_handler, Finish())
+        .WillOnce(Return());
+    }
+  }
+
+    
+  // Drive the dispatcher.
+
+  // Report the CU header.
+  EXPECT_TRUE(die_dispatcher
+              .StartCompilationUnit(0x9ec1e6d05e434a0eLL, 0xeb, 0x21,
+                                    0x47dd3c764275a216LL, 0xa5));
+  // Report the root DIE.
+  {
+    EXPECT_TRUE(die_dispatcher.StartDIE(0x15f0e06bdfe3c372LL,
+                                        (DwarfTag) 0xf5d60c59));
+    die_dispatcher.ProcessAttributeSigned(0x15f0e06bdfe3c372LL,
+                                          (DwarfAttribute) 0xf779a642,
+                                          (DwarfForm) 0x2cb63027,
+                                          0x18e744661769d08fLL);
+
+    // First child DIE.
+    {
+      EXPECT_TRUE(die_dispatcher.StartDIE(0x149f644f8116fe8cLL,
+                                          (DwarfTag) 0xac2cbd8c));
+      die_dispatcher.ProcessAttributeSigned(0x149f644f8116fe8cLL,
+                                            (DwarfAttribute) 0xa6fd6f65,
+                                            (DwarfForm) 0xe4f64c41,
+                                            0x1b04e5444a55fe67LL);
+
+      // First grandchild DIE.  Will be skipped.
+      {
+        EXPECT_FALSE(die_dispatcher.StartDIE(0xd68de1ee0bd29419LL,
+                                            (DwarfTag) 0x22f05a15));
+        // First great-grandchild DIE.  Will be skipped without being
+        // mentioned to any handler.
+        {
+          EXPECT_FALSE(die_dispatcher
+                       .StartDIE(0xb3076285d25cac25LL,
+                                 (DwarfTag) 0xcff4061b));
+          die_dispatcher.EndDIE(0xb3076285d25cac25LL);          
+        }
+        die_dispatcher.EndDIE(0xd68de1ee0bd29419LL);
+      }
+      die_dispatcher.EndDIE(0x149f644f8116fe8cLL);
+    }
+
+    // Second child DIE.  Root handler will decline to find a handler for it.
+    {
+      EXPECT_FALSE(die_dispatcher.StartDIE(0x97412be24875de9dLL,
+                                           (DwarfTag) 0x505a068b));
+      die_dispatcher.EndDIE(0x97412be24875de9dLL);
+    }
+    
+    // Third child DIE.
+    {
+      EXPECT_TRUE(die_dispatcher.StartDIE(0x753c964c8ab538aeLL,
+                                          (DwarfTag) 0x8c22970e));
+      die_dispatcher.ProcessAttributeSigned(0x753c964c8ab538aeLL,
+                                            (DwarfAttribute) 0x4e2b7cfb,
+                                            (DwarfForm) 0x610b7ae1,
+                                            0x3ea5c609d7d7560fLL);
+      die_dispatcher.EndDIE(0x753c964c8ab538aeLL);
+    }
+    
+    // Finish the root DIE (and thus the CU).
+    die_dispatcher.EndDIE(0x15f0e06bdfe3c372LL);
+  }
+}
+
+// The DIEDispatcher destructor is supposed to delete all handlers on
+// the stack, except for the root.
+TEST(Dwarf2DIEHandler, FreeHandlersOnStack) {
+  MockRootDIEHandler mock_root_handler;
+  MockDIEHandler *mock_child_handler = new(MockDIEHandler);
+  MockDIEHandler *mock_grandchild_handler = new(MockDIEHandler);
+
+  {
+    InSequence s;
+
+    // We'll like the compilation unit header.
+    EXPECT_CALL(mock_root_handler,
+                StartCompilationUnit(0x87b41ba8381cd71cLL, 0xff, 0x89,
+                                     0x76d392ff393ddda2LL, 0xbf))
+      .WillOnce(Return(true));
+
+    // Root DIE.
+    {
+      EXPECT_CALL(mock_root_handler,
+                  StartRootDIE(0xbf13b761691ddc91LL, (DwarfTag) 0x98980361))
+        .WillOnce(Return(true));
+      EXPECT_CALL(mock_root_handler, EndAttributes())
+        .WillOnce(Return(true));
+      
+      // Child DIE.
+      EXPECT_CALL(mock_root_handler,
+                  FindChildHandler(0x058f09240c5fc8c9LL,
+                                   (DwarfTag) 0x898bf0d0))
+        .WillOnce(Return(mock_child_handler));
+      {
+        EXPECT_CALL(*mock_child_handler, EndAttributes())
+          .WillOnce(Return(true));
+
+        // Grandchild DIE.
+        EXPECT_CALL(*mock_child_handler,
+                    FindChildHandler(0x32dc00c9945dc0c8LL,
+                                     (DwarfTag) 0x2802d007))
+          .WillOnce(Return(mock_grandchild_handler));
+        {
+          EXPECT_CALL(*mock_grandchild_handler,
+                      ProcessAttributeSigned((DwarfAttribute) 0x4e2b7cfb,
+                                             (DwarfForm) 0x610b7ae1,
+                                             0x3ea5c609d7d7560fLL))
+            .WillOnce(Return());
+
+          // At this point, we abandon the traversal, so none of the
+          // usual stuff should get called.
+          EXPECT_CALL(*mock_grandchild_handler, EndAttributes())
+            .Times(0);
+          EXPECT_CALL(*mock_grandchild_handler, Finish())
+            .Times(0);
+        }
+
+        EXPECT_CALL(*mock_child_handler, Finish())
+          .Times(0);
+      }
+
+      EXPECT_CALL(mock_root_handler, Finish())
+        .Times(0);
+    }
+  }
+
+  // The dispatcher.
+  DIEDispatcher die_dispatcher(&mock_root_handler);
+  
+  // Report the CU header.
+  EXPECT_TRUE(die_dispatcher
+              .StartCompilationUnit(0x87b41ba8381cd71cLL, 0xff, 0x89,
+                                    0x76d392ff393ddda2LL, 0xbf));
+  // Report the root DIE.
+  {
+    EXPECT_TRUE(die_dispatcher.StartDIE(0xbf13b761691ddc91LL,
+                                        (DwarfTag) 0x98980361));
+
+    // Child DIE.
+    {
+      EXPECT_TRUE(die_dispatcher.StartDIE(0x058f09240c5fc8c9LL,
+                                          (DwarfTag) 0x898bf0d0));
+
+      // Grandchild DIE.
+      {
+        EXPECT_TRUE(die_dispatcher.StartDIE(0x32dc00c9945dc0c8LL,
+                                            (DwarfTag) 0x2802d007));
+        die_dispatcher.ProcessAttributeSigned(0x32dc00c9945dc0c8LL,
+                                              (DwarfAttribute) 0x4e2b7cfb,
+                                              (DwarfForm) 0x610b7ae1,
+                                              0x3ea5c609d7d7560fLL);
+
+        // Stop the traversal abruptly, so that there will still be
+        // handlers on the stack when the dispatcher is destructed.
+
+        // No EndDIE call...
+      }
+      // No EndDIE call...
+    }
+    // No EndDIE call...
+  }
+}
diff --git a/src/common/dwarf/dwarf2enums.h b/src/common/dwarf/dwarf2enums.h
new file mode 100644
index 0000000..b9aae05
--- /dev/null
+++ b/src/common/dwarf/dwarf2enums.h
@@ -0,0 +1,738 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_DWARF_DWARF2ENUMS_H__
+#define COMMON_DWARF_DWARF2ENUMS_H__
+
+namespace dwarf2reader {
+
+// These enums do not follow the google3 style only because they are
+// known universally (specs, other implementations) by the names in
+// exactly this capitalization.
+// Tag names and codes.
+enum DwarfTag {
+  DW_TAG_padding = 0x00,
+  DW_TAG_array_type = 0x01,
+  DW_TAG_class_type = 0x02,
+  DW_TAG_entry_point = 0x03,
+  DW_TAG_enumeration_type = 0x04,
+  DW_TAG_formal_parameter = 0x05,
+  DW_TAG_imported_declaration = 0x08,
+  DW_TAG_label = 0x0a,
+  DW_TAG_lexical_block = 0x0b,
+  DW_TAG_member = 0x0d,
+  DW_TAG_pointer_type = 0x0f,
+  DW_TAG_reference_type = 0x10,
+  DW_TAG_compile_unit = 0x11,
+  DW_TAG_string_type = 0x12,
+  DW_TAG_structure_type = 0x13,
+  DW_TAG_subroutine_type = 0x15,
+  DW_TAG_typedef = 0x16,
+  DW_TAG_union_type = 0x17,
+  DW_TAG_unspecified_parameters = 0x18,
+  DW_TAG_variant = 0x19,
+  DW_TAG_common_block = 0x1a,
+  DW_TAG_common_inclusion = 0x1b,
+  DW_TAG_inheritance = 0x1c,
+  DW_TAG_inlined_subroutine = 0x1d,
+  DW_TAG_module = 0x1e,
+  DW_TAG_ptr_to_member_type = 0x1f,
+  DW_TAG_set_type = 0x20,
+  DW_TAG_subrange_type = 0x21,
+  DW_TAG_with_stmt = 0x22,
+  DW_TAG_access_declaration = 0x23,
+  DW_TAG_base_type = 0x24,
+  DW_TAG_catch_block = 0x25,
+  DW_TAG_const_type = 0x26,
+  DW_TAG_constant = 0x27,
+  DW_TAG_enumerator = 0x28,
+  DW_TAG_file_type = 0x29,
+  DW_TAG_friend = 0x2a,
+  DW_TAG_namelist = 0x2b,
+  DW_TAG_namelist_item = 0x2c,
+  DW_TAG_packed_type = 0x2d,
+  DW_TAG_subprogram = 0x2e,
+  DW_TAG_template_type_param = 0x2f,
+  DW_TAG_template_value_param = 0x30,
+  DW_TAG_thrown_type = 0x31,
+  DW_TAG_try_block = 0x32,
+  DW_TAG_variant_part = 0x33,
+  DW_TAG_variable = 0x34,
+  DW_TAG_volatile_type = 0x35,
+  // DWARF 3.
+  DW_TAG_dwarf_procedure = 0x36,
+  DW_TAG_restrict_type = 0x37,
+  DW_TAG_interface_type = 0x38,
+  DW_TAG_namespace = 0x39,
+  DW_TAG_imported_module = 0x3a,
+  DW_TAG_unspecified_type = 0x3b,
+  DW_TAG_partial_unit = 0x3c,
+  DW_TAG_imported_unit = 0x3d,
+  // SGI/MIPS Extensions.
+  DW_TAG_MIPS_loop = 0x4081,
+  // HP extensions.  See:
+  // ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz
+  DW_TAG_HP_array_descriptor = 0x4090,
+  // GNU extensions.
+  DW_TAG_format_label = 0x4101,  // For FORTRAN 77 and Fortran 90.
+  DW_TAG_function_template = 0x4102,  // For C++.
+  DW_TAG_class_template = 0x4103,  // For C++.
+  DW_TAG_GNU_BINCL = 0x4104,
+  DW_TAG_GNU_EINCL = 0x4105,
+  // Extensions for UPC.  See: http://upc.gwu.edu/~upc.
+  DW_TAG_upc_shared_type = 0x8765,
+  DW_TAG_upc_strict_type = 0x8766,
+  DW_TAG_upc_relaxed_type = 0x8767,
+  // PGI (STMicroelectronics) extensions.  No documentation available.
+  DW_TAG_PGI_kanji_type      = 0xA000,
+  DW_TAG_PGI_interface_block = 0xA020
+};
+
+enum DwarfUnitHeader {
+  DW_UT_compile = 0x01,
+  DW_UT_type = 0x02,
+  DW_UT_partial = 0x03,
+  DW_UT_skeleton = 0x04,
+  DW_UT_split_compile = 0x05,
+  DW_UT_split_type = 0x06,
+  DW_UT_lo_user = 0x80,
+  DW_UT_hi_user = 0xFF
+};
+
+enum DwarfHasChild {
+  DW_children_no = 0,
+  DW_children_yes = 1
+};
+
+// Form names and codes.
+enum DwarfForm {
+  DW_FORM_addr = 0x01,
+  DW_FORM_block2 = 0x03,
+  DW_FORM_block4 = 0x04,
+  DW_FORM_data2 = 0x05,
+  DW_FORM_data4 = 0x06,
+  DW_FORM_data8 = 0x07,
+  DW_FORM_string = 0x08,
+  DW_FORM_block = 0x09,
+  DW_FORM_block1 = 0x0a,
+  DW_FORM_data1 = 0x0b,
+  DW_FORM_flag = 0x0c,
+  DW_FORM_sdata = 0x0d,
+  DW_FORM_strp = 0x0e,
+  DW_FORM_udata = 0x0f,
+  DW_FORM_ref_addr = 0x10,
+  DW_FORM_ref1 = 0x11,
+  DW_FORM_ref2 = 0x12,
+  DW_FORM_ref4 = 0x13,
+  DW_FORM_ref8 = 0x14,
+  DW_FORM_ref_udata = 0x15,
+  DW_FORM_indirect = 0x16,
+
+  // Added in DWARF 4:
+  DW_FORM_sec_offset = 0x17,
+  DW_FORM_exprloc = 0x18,
+  DW_FORM_flag_present = 0x19,
+
+  // Added in DWARF 5:
+  DW_FORM_strx = 0x1a,
+  DW_FORM_addrx = 0x1b,
+  DW_FORM_ref_sup4 = 0x1c,
+  DW_FORM_strp_sup = 0x1d,
+  DW_FORM_data16 = 0x1e,
+  DW_FORM_line_strp = 0x1f,
+
+  // DWARF 4, but value out of order.
+  DW_FORM_ref_sig8 = 0x20,
+
+  // Added in DWARF 5:
+  DW_FORM_implicit_const = 0x21,
+  DW_FORM_loclistx = 0x22,
+  DW_FORM_rnglistx = 0x23,
+  DW_FORM_ref_sup8 = 0x24,
+  DW_FORM_strx1 = 0x25,
+  DW_FORM_strx2 = 0x26,
+  DW_FORM_strx3 = 0x27,
+  DW_FORM_strx4 = 0x28,
+
+  DW_FORM_addrx1 = 0x29,
+  DW_FORM_addrx2 = 0x2a,
+  DW_FORM_addrx3 = 0x2b,
+  DW_FORM_addrx4 = 0x2c,
+
+  // Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.
+  DW_FORM_GNU_addr_index = 0x1f01,
+  DW_FORM_GNU_str_index = 0x1f02
+};
+
+// Attribute names and codes
+enum DwarfAttribute {
+  DW_AT_sibling = 0x01,
+  DW_AT_location = 0x02,
+  DW_AT_name = 0x03,
+  DW_AT_ordering = 0x09,
+  DW_AT_subscr_data = 0x0a,
+  DW_AT_byte_size = 0x0b,
+  DW_AT_bit_offset = 0x0c,
+  DW_AT_bit_size = 0x0d,
+  DW_AT_element_list = 0x0f,
+  DW_AT_stmt_list = 0x10,
+  DW_AT_low_pc = 0x11,
+  DW_AT_high_pc = 0x12,
+  DW_AT_language = 0x13,
+  DW_AT_member = 0x14,
+  DW_AT_discr = 0x15,
+  DW_AT_discr_value = 0x16,
+  DW_AT_visibility = 0x17,
+  DW_AT_import = 0x18,
+  DW_AT_string_length = 0x19,
+  DW_AT_common_reference = 0x1a,
+  DW_AT_comp_dir = 0x1b,
+  DW_AT_const_value = 0x1c,
+  DW_AT_containing_type = 0x1d,
+  DW_AT_default_value = 0x1e,
+  DW_AT_inline = 0x20,
+  DW_AT_is_optional = 0x21,
+  DW_AT_lower_bound = 0x22,
+  DW_AT_producer = 0x25,
+  DW_AT_prototyped = 0x27,
+  DW_AT_return_addr = 0x2a,
+  DW_AT_start_scope = 0x2c,
+  DW_AT_stride_size = 0x2e,
+  DW_AT_upper_bound = 0x2f,
+  DW_AT_abstract_origin = 0x31,
+  DW_AT_accessibility = 0x32,
+  DW_AT_address_class = 0x33,
+  DW_AT_artificial = 0x34,
+  DW_AT_base_types = 0x35,
+  DW_AT_calling_convention = 0x36,
+  DW_AT_count = 0x37,
+  DW_AT_data_member_location = 0x38,
+  DW_AT_decl_column = 0x39,
+  DW_AT_decl_file = 0x3a,
+  DW_AT_decl_line = 0x3b,
+  DW_AT_declaration = 0x3c,
+  DW_AT_discr_list = 0x3d,
+  DW_AT_encoding = 0x3e,
+  DW_AT_external = 0x3f,
+  DW_AT_frame_base = 0x40,
+  DW_AT_friend = 0x41,
+  DW_AT_identifier_case = 0x42,
+  DW_AT_macro_info = 0x43,
+  DW_AT_namelist_items = 0x44,
+  DW_AT_priority = 0x45,
+  DW_AT_segment = 0x46,
+  DW_AT_specification = 0x47,
+  DW_AT_static_link = 0x48,
+  DW_AT_type = 0x49,
+  DW_AT_use_location = 0x4a,
+  DW_AT_variable_parameter = 0x4b,
+  DW_AT_virtuality = 0x4c,
+  DW_AT_vtable_elem_location = 0x4d,
+  // DWARF 3 values.
+  DW_AT_allocated     = 0x4e,
+  DW_AT_associated    = 0x4f,
+  DW_AT_data_location = 0x50,
+  DW_AT_stride        = 0x51,
+  DW_AT_entry_pc      = 0x52,
+  DW_AT_use_UTF8      = 0x53,
+  DW_AT_extension     = 0x54,
+  DW_AT_ranges        = 0x55,
+  DW_AT_trampoline    = 0x56,
+  DW_AT_call_column   = 0x57,
+  DW_AT_call_file     = 0x58,
+  DW_AT_call_line     = 0x59,
+  // DWARF 4
+  DW_AT_linkage_name  = 0x6e,
+  // DWARF 5
+  DW_AT_addr_base = 0x73,
+  DW_AT_rnglists_base = 0x74,
+  // SGI/MIPS extensions.
+  DW_AT_MIPS_fde = 0x2001,
+  DW_AT_MIPS_loop_begin = 0x2002,
+  DW_AT_MIPS_tail_loop_begin = 0x2003,
+  DW_AT_MIPS_epilog_begin = 0x2004,
+  DW_AT_MIPS_loop_unroll_factor = 0x2005,
+  DW_AT_MIPS_software_pipeline_depth = 0x2006,
+  DW_AT_MIPS_linkage_name = 0x2007,
+  DW_AT_MIPS_stride = 0x2008,
+  DW_AT_MIPS_abstract_name = 0x2009,
+  DW_AT_MIPS_clone_origin = 0x200a,
+  DW_AT_MIPS_has_inlines = 0x200b,
+  // HP extensions.
+  DW_AT_HP_block_index         = 0x2000,
+  DW_AT_HP_unmodifiable        = 0x2001,  // Same as DW_AT_MIPS_fde.
+  DW_AT_HP_actuals_stmt_list   = 0x2010,
+  DW_AT_HP_proc_per_section    = 0x2011,
+  DW_AT_HP_raw_data_ptr        = 0x2012,
+  DW_AT_HP_pass_by_reference   = 0x2013,
+  DW_AT_HP_opt_level           = 0x2014,
+  DW_AT_HP_prof_version_id     = 0x2015,
+  DW_AT_HP_opt_flags           = 0x2016,
+  DW_AT_HP_cold_region_low_pc  = 0x2017,
+  DW_AT_HP_cold_region_high_pc = 0x2018,
+  DW_AT_HP_all_variables_modifiable = 0x2019,
+  DW_AT_HP_linkage_name        = 0x201a,
+  DW_AT_HP_prof_flags          = 0x201b,  // In comp unit of procs_info for -g.
+  // GNU extensions.
+  DW_AT_sf_names   = 0x2101,
+  DW_AT_src_info   = 0x2102,
+  DW_AT_mac_info   = 0x2103,
+  DW_AT_src_coords = 0x2104,
+  DW_AT_body_begin = 0x2105,
+  DW_AT_body_end   = 0x2106,
+  DW_AT_GNU_vector = 0x2107,
+  // Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.
+  DW_AT_GNU_dwo_name = 0x2130,
+  DW_AT_GNU_dwo_id = 0x2131,
+  DW_AT_GNU_ranges_base = 0x2132,
+  DW_AT_GNU_addr_base = 0x2133,
+  DW_AT_GNU_pubnames = 0x2134,
+  DW_AT_GNU_pubtypes = 0x2135,
+  // VMS extensions.
+  DW_AT_VMS_rtnbeg_pd_address = 0x2201,
+  // UPC extension.
+  DW_AT_upc_threads_scaled = 0x3210,
+  // PGI (STMicroelectronics) extensions.
+  DW_AT_PGI_lbase    = 0x3a00,
+  DW_AT_PGI_soffset  = 0x3a01,
+  DW_AT_PGI_lstride  = 0x3a02
+};
+
+// .debug_rngslist entry types
+enum DwarfRngListEntry {
+  DW_RLE_end_of_list = 0,
+  DW_RLE_base_addressx = 1,
+  DW_RLE_startx_endx = 2,
+  DW_RLE_startx_length = 3,
+  DW_RLE_offset_pair = 4,
+  DW_RLE_base_address = 5,
+  DW_RLE_start_end = 6,
+  DW_RLE_start_length = 7,
+};
+
+// Line number content type codes (DWARF 5).
+enum DwarfLineNumberContentType {
+  DW_LNCT_path = 1,
+  DW_LNCT_directory_index = 2,
+  DW_LNCT_timestamp = 3,
+  DW_LNCT_size = 4,
+  DW_LNCT_MD5 = 5,
+};
+
+// Line number opcodes.
+enum DwarfLineNumberOps {
+  DW_LNS_extended_op = 0,
+  DW_LNS_copy = 1,
+  DW_LNS_advance_pc = 2,
+  DW_LNS_advance_line = 3,
+  DW_LNS_set_file = 4,
+  DW_LNS_set_column = 5,
+  DW_LNS_negate_stmt = 6,
+  DW_LNS_set_basic_block = 7,
+  DW_LNS_const_add_pc = 8,
+  DW_LNS_fixed_advance_pc = 9,
+  // DWARF 3.
+  DW_LNS_set_prologue_end = 10,
+  DW_LNS_set_epilogue_begin = 11,
+  DW_LNS_set_isa = 12
+};
+
+// Line number extended opcodes.
+enum DwarfLineNumberExtendedOps {
+  DW_LNE_end_sequence = 1,
+  DW_LNE_set_address = 2,
+  DW_LNE_define_file = 3,
+  // HP extensions.
+  DW_LNE_HP_negate_is_UV_update      = 0x11,
+  DW_LNE_HP_push_context             = 0x12,
+  DW_LNE_HP_pop_context              = 0x13,
+  DW_LNE_HP_set_file_line_column     = 0x14,
+  DW_LNE_HP_set_routine_name         = 0x15,
+  DW_LNE_HP_set_sequence             = 0x16,
+  DW_LNE_HP_negate_post_semantics    = 0x17,
+  DW_LNE_HP_negate_function_exit     = 0x18,
+  DW_LNE_HP_negate_front_end_logical = 0x19,
+  DW_LNE_HP_define_proc              = 0x20
+};
+
+// Type encoding names and codes
+enum DwarfEncoding {
+  DW_ATE_address                     =0x1,
+  DW_ATE_boolean                     =0x2,
+  DW_ATE_complex_float               =0x3,
+  DW_ATE_float                       =0x4,
+  DW_ATE_signed                      =0x5,
+  DW_ATE_signed_char                 =0x6,
+  DW_ATE_unsigned                    =0x7,
+  DW_ATE_unsigned_char               =0x8,
+  // DWARF3/DWARF3f
+  DW_ATE_imaginary_float             =0x9,
+  DW_ATE_packed_decimal              =0xa,
+  DW_ATE_numeric_string              =0xb,
+  DW_ATE_edited                      =0xc,
+  DW_ATE_signed_fixed                =0xd,
+  DW_ATE_unsigned_fixed              =0xe,
+  DW_ATE_decimal_float               =0xf,
+  DW_ATE_lo_user                     =0x80,
+  DW_ATE_hi_user                     =0xff
+};
+
+// Location virtual machine opcodes
+enum DwarfOpcode {
+  DW_OP_addr                         =0x03,
+  DW_OP_deref                        =0x06,
+  DW_OP_const1u                      =0x08,
+  DW_OP_const1s                      =0x09,
+  DW_OP_const2u                      =0x0a,
+  DW_OP_const2s                      =0x0b,
+  DW_OP_const4u                      =0x0c,
+  DW_OP_const4s                      =0x0d,
+  DW_OP_const8u                      =0x0e,
+  DW_OP_const8s                      =0x0f,
+  DW_OP_constu                       =0x10,
+  DW_OP_consts                       =0x11,
+  DW_OP_dup                          =0x12,
+  DW_OP_drop                         =0x13,
+  DW_OP_over                         =0x14,
+  DW_OP_pick                         =0x15,
+  DW_OP_swap                         =0x16,
+  DW_OP_rot                          =0x17,
+  DW_OP_xderef                       =0x18,
+  DW_OP_abs                          =0x19,
+  DW_OP_and                          =0x1a,
+  DW_OP_div                          =0x1b,
+  DW_OP_minus                        =0x1c,
+  DW_OP_mod                          =0x1d,
+  DW_OP_mul                          =0x1e,
+  DW_OP_neg                          =0x1f,
+  DW_OP_not                          =0x20,
+  DW_OP_or                           =0x21,
+  DW_OP_plus                         =0x22,
+  DW_OP_plus_uconst                  =0x23,
+  DW_OP_shl                          =0x24,
+  DW_OP_shr                          =0x25,
+  DW_OP_shra                         =0x26,
+  DW_OP_xor                          =0x27,
+  DW_OP_bra                          =0x28,
+  DW_OP_eq                           =0x29,
+  DW_OP_ge                           =0x2a,
+  DW_OP_gt                           =0x2b,
+  DW_OP_le                           =0x2c,
+  DW_OP_lt                           =0x2d,
+  DW_OP_ne                           =0x2e,
+  DW_OP_skip                         =0x2f,
+  DW_OP_lit0                         =0x30,
+  DW_OP_lit1                         =0x31,
+  DW_OP_lit2                         =0x32,
+  DW_OP_lit3                         =0x33,
+  DW_OP_lit4                         =0x34,
+  DW_OP_lit5                         =0x35,
+  DW_OP_lit6                         =0x36,
+  DW_OP_lit7                         =0x37,
+  DW_OP_lit8                         =0x38,
+  DW_OP_lit9                         =0x39,
+  DW_OP_lit10                        =0x3a,
+  DW_OP_lit11                        =0x3b,
+  DW_OP_lit12                        =0x3c,
+  DW_OP_lit13                        =0x3d,
+  DW_OP_lit14                        =0x3e,
+  DW_OP_lit15                        =0x3f,
+  DW_OP_lit16                        =0x40,
+  DW_OP_lit17                        =0x41,
+  DW_OP_lit18                        =0x42,
+  DW_OP_lit19                        =0x43,
+  DW_OP_lit20                        =0x44,
+  DW_OP_lit21                        =0x45,
+  DW_OP_lit22                        =0x46,
+  DW_OP_lit23                        =0x47,
+  DW_OP_lit24                        =0x48,
+  DW_OP_lit25                        =0x49,
+  DW_OP_lit26                        =0x4a,
+  DW_OP_lit27                        =0x4b,
+  DW_OP_lit28                        =0x4c,
+  DW_OP_lit29                        =0x4d,
+  DW_OP_lit30                        =0x4e,
+  DW_OP_lit31                        =0x4f,
+  DW_OP_reg0                         =0x50,
+  DW_OP_reg1                         =0x51,
+  DW_OP_reg2                         =0x52,
+  DW_OP_reg3                         =0x53,
+  DW_OP_reg4                         =0x54,
+  DW_OP_reg5                         =0x55,
+  DW_OP_reg6                         =0x56,
+  DW_OP_reg7                         =0x57,
+  DW_OP_reg8                         =0x58,
+  DW_OP_reg9                         =0x59,
+  DW_OP_reg10                        =0x5a,
+  DW_OP_reg11                        =0x5b,
+  DW_OP_reg12                        =0x5c,
+  DW_OP_reg13                        =0x5d,
+  DW_OP_reg14                        =0x5e,
+  DW_OP_reg15                        =0x5f,
+  DW_OP_reg16                        =0x60,
+  DW_OP_reg17                        =0x61,
+  DW_OP_reg18                        =0x62,
+  DW_OP_reg19                        =0x63,
+  DW_OP_reg20                        =0x64,
+  DW_OP_reg21                        =0x65,
+  DW_OP_reg22                        =0x66,
+  DW_OP_reg23                        =0x67,
+  DW_OP_reg24                        =0x68,
+  DW_OP_reg25                        =0x69,
+  DW_OP_reg26                        =0x6a,
+  DW_OP_reg27                        =0x6b,
+  DW_OP_reg28                        =0x6c,
+  DW_OP_reg29                        =0x6d,
+  DW_OP_reg30                        =0x6e,
+  DW_OP_reg31                        =0x6f,
+  DW_OP_breg0                        =0x70,
+  DW_OP_breg1                        =0x71,
+  DW_OP_breg2                        =0x72,
+  DW_OP_breg3                        =0x73,
+  DW_OP_breg4                        =0x74,
+  DW_OP_breg5                        =0x75,
+  DW_OP_breg6                        =0x76,
+  DW_OP_breg7                        =0x77,
+  DW_OP_breg8                        =0x78,
+  DW_OP_breg9                        =0x79,
+  DW_OP_breg10                       =0x7a,
+  DW_OP_breg11                       =0x7b,
+  DW_OP_breg12                       =0x7c,
+  DW_OP_breg13                       =0x7d,
+  DW_OP_breg14                       =0x7e,
+  DW_OP_breg15                       =0x7f,
+  DW_OP_breg16                       =0x80,
+  DW_OP_breg17                       =0x81,
+  DW_OP_breg18                       =0x82,
+  DW_OP_breg19                       =0x83,
+  DW_OP_breg20                       =0x84,
+  DW_OP_breg21                       =0x85,
+  DW_OP_breg22                       =0x86,
+  DW_OP_breg23                       =0x87,
+  DW_OP_breg24                       =0x88,
+  DW_OP_breg25                       =0x89,
+  DW_OP_breg26                       =0x8a,
+  DW_OP_breg27                       =0x8b,
+  DW_OP_breg28                       =0x8c,
+  DW_OP_breg29                       =0x8d,
+  DW_OP_breg30                       =0x8e,
+  DW_OP_breg31                       =0x8f,
+  DW_OP_regX                         =0x90,
+  DW_OP_fbreg                        =0x91,
+  DW_OP_bregX                        =0x92,
+  DW_OP_piece                        =0x93,
+  DW_OP_deref_size                   =0x94,
+  DW_OP_xderef_size                  =0x95,
+  DW_OP_nop                          =0x96,
+  // DWARF3/DWARF3f
+  DW_OP_push_object_address          =0x97,
+  DW_OP_call2                        =0x98,
+  DW_OP_call4                        =0x99,
+  DW_OP_call_ref                     =0x9a,
+  DW_OP_form_tls_address             =0x9b,
+  DW_OP_call_frame_cfa               =0x9c,
+  DW_OP_bit_piece                    =0x9d,
+  DW_OP_lo_user                      =0xe0,
+  DW_OP_hi_user                      =0xff,
+  // GNU extensions
+  DW_OP_GNU_push_tls_address         =0xe0,
+  // Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.
+  DW_OP_GNU_addr_index               =0xfb,
+  DW_OP_GNU_const_index              =0xfc
+};
+
+// Section identifiers for DWP files
+enum DwarfSectionId {
+  DW_SECT_INFO = 1,
+  DW_SECT_TYPES = 2,
+  DW_SECT_ABBREV = 3,
+  DW_SECT_LINE = 4,
+  DW_SECT_LOC = 5,
+  DW_SECT_STR_OFFSETS = 6,
+  DW_SECT_MACINFO = 7,
+  DW_SECT_MACRO = 8
+};
+
+// Source languages.  These are values for DW_AT_language.
+enum DwarfLanguage
+  {
+    DW_LANG_none                     =0x0000,
+    DW_LANG_C89                      =0x0001,
+    DW_LANG_C                        =0x0002,
+    DW_LANG_Ada83                    =0x0003,
+    DW_LANG_C_plus_plus              =0x0004,
+    DW_LANG_Cobol74                  =0x0005,
+    DW_LANG_Cobol85                  =0x0006,
+    DW_LANG_Fortran77                =0x0007,
+    DW_LANG_Fortran90                =0x0008,
+    DW_LANG_Pascal83                 =0x0009,
+    DW_LANG_Modula2                  =0x000a,
+    DW_LANG_Java                     =0x000b,
+    DW_LANG_C99                      =0x000c,
+    DW_LANG_Ada95                    =0x000d,
+    DW_LANG_Fortran95                =0x000e,
+    DW_LANG_PLI                      =0x000f,
+    DW_LANG_ObjC                     =0x0010,
+    DW_LANG_ObjC_plus_plus           =0x0011,
+    DW_LANG_UPC                      =0x0012,
+    DW_LANG_D                        =0x0013,
+    DW_LANG_Rust                     =0x001c,
+    DW_LANG_Swift                    =0x001e,
+    // Implementation-defined language code range.
+    DW_LANG_lo_user = 0x8000,
+    DW_LANG_hi_user = 0xffff,
+
+    // Extensions.
+
+    // MIPS assembly language.  The GNU toolchain uses this for all
+    // assembly languages, since there's no generic DW_LANG_ value for that.
+    // See include/dwarf2.h in the binutils, gdb, or gcc source trees.
+    DW_LANG_Mips_Assembler           =0x8001,
+    DW_LANG_Upc                      =0x8765 // Unified Parallel C
+  };
+
+// Inline codes.  These are values for DW_AT_inline.
+enum DwarfInline {
+  DW_INL_not_inlined                 =0x0,
+  DW_INL_inlined                     =0x1,
+  DW_INL_declared_not_inlined        =0x2,
+  DW_INL_declared_inlined            =0x3
+};
+
+// Call Frame Info instructions.
+enum DwarfCFI
+  {
+    DW_CFA_advance_loc        = 0x40,
+    DW_CFA_offset             = 0x80,
+    DW_CFA_restore            = 0xc0,
+    DW_CFA_nop                = 0x00,
+    DW_CFA_set_loc            = 0x01,
+    DW_CFA_advance_loc1       = 0x02,
+    DW_CFA_advance_loc2       = 0x03,
+    DW_CFA_advance_loc4       = 0x04,
+    DW_CFA_offset_extended    = 0x05,
+    DW_CFA_restore_extended   = 0x06,
+    DW_CFA_undefined          = 0x07,
+    DW_CFA_same_value         = 0x08,
+    DW_CFA_register           = 0x09,
+    DW_CFA_remember_state     = 0x0a,
+    DW_CFA_restore_state      = 0x0b,
+    DW_CFA_def_cfa            = 0x0c,
+    DW_CFA_def_cfa_register   = 0x0d,
+    DW_CFA_def_cfa_offset     = 0x0e,
+    DW_CFA_def_cfa_expression = 0x0f,
+    DW_CFA_expression         = 0x10,
+    DW_CFA_offset_extended_sf = 0x11,
+    DW_CFA_def_cfa_sf         = 0x12,
+    DW_CFA_def_cfa_offset_sf  = 0x13,
+    DW_CFA_val_offset         = 0x14,
+    DW_CFA_val_offset_sf      = 0x15,
+    DW_CFA_val_expression     = 0x16,
+
+    // Opcodes in this range are reserved for user extensions.
+    DW_CFA_lo_user = 0x1c,
+    DW_CFA_hi_user = 0x3f,
+
+    // SGI/MIPS specific.
+    DW_CFA_MIPS_advance_loc8 = 0x1d,
+
+    // GNU extensions.
+    DW_CFA_GNU_window_save = 0x2d,
+    DW_CFA_GNU_args_size = 0x2e,
+    DW_CFA_GNU_negative_offset_extended = 0x2f
+  };
+
+// Exception handling 'z' augmentation letters.
+enum DwarfZAugmentationCodes {
+  // If the CFI augmentation string begins with 'z', then the CIE and FDE
+  // have an augmentation data area just before the instructions, whose
+  // contents are determined by the subsequent augmentation letters.
+  DW_Z_augmentation_start = 'z',
+
+  // If this letter is present in a 'z' augmentation string, the CIE
+  // augmentation data includes a pointer encoding, and the FDE
+  // augmentation data includes a language-specific data area pointer,
+  // represented using that encoding.
+  DW_Z_has_LSDA = 'L',
+
+  // If this letter is present in a 'z' augmentation string, the CIE
+  // augmentation data includes a pointer encoding, followed by a pointer
+  // to a personality routine, represented using that encoding.
+  DW_Z_has_personality_routine = 'P',
+
+  // If this letter is present in a 'z' augmentation string, the CIE
+  // augmentation data includes a pointer encoding describing how the FDE's
+  // initial location, address range, and DW_CFA_set_loc operands are
+  // encoded.
+  DW_Z_has_FDE_address_encoding = 'R',
+
+  // If this letter is present in a 'z' augmentation string, then code
+  // addresses covered by FDEs that cite this CIE are signal delivery
+  // trampolines. Return addresses of frames in trampolines should not be
+  // adjusted as described in section 6.4.4 of the DWARF 3 spec.
+  DW_Z_is_signal_trampoline = 'S'
+};
+
+// Exception handling frame description pointer formats, as described
+// by the Linux Standard Base Core Specification 4.0, section 11.5,
+// DWARF Extensions.
+enum DwarfPointerEncoding
+  {
+    DW_EH_PE_absptr	= 0x00,
+    DW_EH_PE_omit	= 0xff,
+    DW_EH_PE_uleb128    = 0x01,
+    DW_EH_PE_udata2	= 0x02,
+    DW_EH_PE_udata4	= 0x03,
+    DW_EH_PE_udata8	= 0x04,
+    DW_EH_PE_sleb128    = 0x09,
+    DW_EH_PE_sdata2	= 0x0A,
+    DW_EH_PE_sdata4	= 0x0B,
+    DW_EH_PE_sdata8	= 0x0C,
+    DW_EH_PE_pcrel	= 0x10,
+    DW_EH_PE_textrel	= 0x20,
+    DW_EH_PE_datarel	= 0x30,
+    DW_EH_PE_funcrel	= 0x40,
+    DW_EH_PE_aligned	= 0x50,
+
+    // The GNU toolchain sources define this enum value as well,
+    // simply to help classify the lower nybble values into signed and
+    // unsigned groups.
+    DW_EH_PE_signed	= 0x08,
+
+    // This is not documented in LSB 4.0, but it is used in both the
+    // Linux and OS X toolchains. It can be added to any other
+    // encoding (except DW_EH_PE_aligned), and indicates that the
+    // encoded value represents the address at which the true address
+    // is stored, not the true address itself.
+    DW_EH_PE_indirect	= 0x80
+  };
+
+}  // namespace dwarf2reader
+#endif  // COMMON_DWARF_DWARF2ENUMS_H__
diff --git a/src/common/dwarf/dwarf2reader.cc b/src/common/dwarf/dwarf2reader.cc
new file mode 100644
index 0000000..367d936
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader.cc
@@ -0,0 +1,3292 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// CFI reader author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// Implementation of dwarf2reader::LineInfo, dwarf2reader::CompilationUnit,
+// and dwarf2reader::CallFrameInfo. See dwarf2reader.h for details.
+
+#include "common/dwarf/dwarf2reader.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <map>
+#include <memory>
+#include <stack>
+#include <string>
+#include <utility>
+
+#include <sys/stat.h>
+
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/bytereader.h"
+#include "common/dwarf/line_state_machine.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace dwarf2reader {
+
+const SectionMap::const_iterator GetSectionByName(const SectionMap&
+                                                  sections, const char *name) {
+  assert(name[0] == '.');
+  auto iter = sections.find(name);
+  if (iter != sections.end())
+    return iter;
+  std::string macho_name("__");
+  macho_name += name + 1;
+  iter = sections.find(macho_name);
+  return iter;
+}
+
+CompilationUnit::CompilationUnit(const string& path,
+                                 const SectionMap& sections, uint64_t offset,
+                                 ByteReader* reader, Dwarf2Handler* handler)
+    : path_(path), offset_from_section_start_(offset), reader_(reader),
+      sections_(sections), handler_(handler), abbrevs_(),
+      string_buffer_(NULL), string_buffer_length_(0),
+      line_string_buffer_(NULL), line_string_buffer_length_(0),
+      str_offsets_buffer_(NULL), str_offsets_buffer_length_(0),
+      addr_buffer_(NULL), addr_buffer_length_(0),
+      is_split_dwarf_(false), dwo_id_(0), dwo_name_(),
+      skeleton_dwo_id_(0), ranges_base_(0), addr_base_(0),
+      have_checked_for_dwp_(false), dwp_path_(),
+      dwp_byte_reader_(), dwp_reader_() {}
+
+// Initialize a compilation unit from a .dwo or .dwp file.
+// In this case, we need the .debug_addr section from the
+// executable file that contains the corresponding skeleton
+// compilation unit.  We also inherit the Dwarf2Handler from
+// the executable file, and call it as if we were still
+// processing the original compilation unit.
+
+void CompilationUnit::SetSplitDwarf(const uint8_t* addr_buffer,
+                                    uint64_t addr_buffer_length,
+                                    uint64_t addr_base,
+                                    uint64_t ranges_base,
+                                    uint64_t dwo_id) {
+  is_split_dwarf_ = true;
+  addr_buffer_ = addr_buffer;
+  addr_buffer_length_ = addr_buffer_length;
+  addr_base_ = addr_base;
+  ranges_base_ = ranges_base;
+  skeleton_dwo_id_ = dwo_id;
+}
+
+// Read a DWARF2/3 abbreviation section.
+// Each abbrev consists of a abbreviation number, a tag, a byte
+// specifying whether the tag has children, and a list of
+// attribute/form pairs.
+// The list of forms is terminated by a 0 for the attribute, and a
+// zero for the form.  The entire abbreviation section is terminated
+// by a zero for the code.
+
+void CompilationUnit::ReadAbbrevs() {
+  if (abbrevs_)
+    return;
+
+  // First get the debug_abbrev section.
+  SectionMap::const_iterator iter =
+      GetSectionByName(sections_, ".debug_abbrev");
+  assert(iter != sections_.end());
+
+  abbrevs_ = new std::vector<Abbrev>;
+  abbrevs_->resize(1);
+
+  // The only way to check whether we are reading over the end of the
+  // buffer would be to first compute the size of the leb128 data by
+  // reading it, then go back and read it again.
+  const uint8_t* abbrev_start = iter->second.first +
+                                      header_.abbrev_offset;
+  const uint8_t* abbrevptr = abbrev_start;
+#ifndef NDEBUG
+  const uint64_t abbrev_length = iter->second.second - header_.abbrev_offset;
+#endif
+
+  while (1) {
+    CompilationUnit::Abbrev abbrev;
+    size_t len;
+    const uint64_t number = reader_->ReadUnsignedLEB128(abbrevptr, &len);
+
+    if (number == 0)
+      break;
+    abbrev.number = number;
+    abbrevptr += len;
+
+    assert(abbrevptr < abbrev_start + abbrev_length);
+    const uint64_t tag = reader_->ReadUnsignedLEB128(abbrevptr, &len);
+    abbrevptr += len;
+    abbrev.tag = static_cast<enum DwarfTag>(tag);
+
+    assert(abbrevptr < abbrev_start + abbrev_length);
+    abbrev.has_children = reader_->ReadOneByte(abbrevptr);
+    abbrevptr += 1;
+
+    assert(abbrevptr < abbrev_start + abbrev_length);
+
+    while (1) {
+      const uint64_t nametemp = reader_->ReadUnsignedLEB128(abbrevptr, &len);
+      abbrevptr += len;
+
+      assert(abbrevptr < abbrev_start + abbrev_length);
+      const uint64_t formtemp = reader_->ReadUnsignedLEB128(abbrevptr, &len);
+      abbrevptr += len;
+      if (nametemp == 0 && formtemp == 0)
+        break;
+
+      uint64_t value = 0;
+      if (formtemp == DW_FORM_implicit_const) {
+        value = reader_->ReadUnsignedLEB128(abbrevptr, &len);
+        abbrevptr += len;
+      }
+      AttrForm abbrev_attr(static_cast<enum DwarfAttribute>(nametemp),
+                           static_cast<enum DwarfForm>(formtemp),
+                           value);
+      abbrev.attributes.push_back(abbrev_attr);
+    }
+    assert(abbrev.number == abbrevs_->size());
+    abbrevs_->push_back(abbrev);
+  }
+}
+
+// Skips a single DIE's attributes.
+const uint8_t* CompilationUnit::SkipDIE(const uint8_t* start,
+                                        const Abbrev& abbrev) {
+  for (AttributeList::const_iterator i = abbrev.attributes.begin();
+       i != abbrev.attributes.end();
+       i++)  {
+    start = SkipAttribute(start, i->form_);
+  }
+  return start;
+}
+
+// Skips a single attribute form's data.
+const uint8_t* CompilationUnit::SkipAttribute(const uint8_t* start,
+                                              enum DwarfForm form) {
+  size_t len;
+
+  switch (form) {
+    case DW_FORM_indirect:
+      form = static_cast<enum DwarfForm>(reader_->ReadUnsignedLEB128(start,
+                                                                     &len));
+      start += len;
+      return SkipAttribute(start, form);
+
+    case DW_FORM_flag_present:
+    case DW_FORM_implicit_const:
+      return start;
+    case DW_FORM_addrx1:
+    case DW_FORM_data1:
+    case DW_FORM_flag:
+    case DW_FORM_ref1:
+    case DW_FORM_strx1:
+      return start + 1;
+    case DW_FORM_addrx2:
+    case DW_FORM_ref2:
+    case DW_FORM_data2:
+    case DW_FORM_strx2:
+      return start + 2;
+    case DW_FORM_addrx3:
+    case DW_FORM_strx3:
+      return start + 3;
+    case DW_FORM_addrx4:
+    case DW_FORM_ref4:
+    case DW_FORM_data4:
+    case DW_FORM_strx4:
+    case DW_FORM_ref_sup4:
+      return start + 4;
+    case DW_FORM_ref8:
+    case DW_FORM_data8:
+    case DW_FORM_ref_sig8:
+    case DW_FORM_ref_sup8:
+      return start + 8;
+    case DW_FORM_data16:
+      return start + 16;
+    case DW_FORM_string:
+      return start + strlen(reinterpret_cast<const char*>(start)) + 1;
+    case DW_FORM_udata:
+    case DW_FORM_ref_udata:
+    case DW_FORM_strx:
+    case DW_FORM_GNU_str_index:
+    case DW_FORM_GNU_addr_index:
+    case DW_FORM_addrx:
+    case DW_FORM_rnglistx:
+    case DW_FORM_loclistx:
+      reader_->ReadUnsignedLEB128(start, &len);
+      return start + len;
+
+    case DW_FORM_sdata:
+      reader_->ReadSignedLEB128(start, &len);
+      return start + len;
+    case DW_FORM_addr:
+      return start + reader_->AddressSize();
+    case DW_FORM_ref_addr:
+      // DWARF2 and 3/4 differ on whether ref_addr is address size or
+      // offset size.
+      assert(header_.version >= 2);
+      if (header_.version == 2) {
+        return start + reader_->AddressSize();
+      } else if (header_.version >= 3) {
+        return start + reader_->OffsetSize();
+      }
+      break;
+
+    case DW_FORM_block1:
+      return start + 1 + reader_->ReadOneByte(start);
+    case DW_FORM_block2:
+      return start + 2 + reader_->ReadTwoBytes(start);
+    case DW_FORM_block4:
+      return start + 4 + reader_->ReadFourBytes(start);
+    case DW_FORM_block:
+    case DW_FORM_exprloc: {
+      uint64_t size = reader_->ReadUnsignedLEB128(start, &len);
+      return start + size + len;
+    }
+    case DW_FORM_strp:
+    case DW_FORM_line_strp:
+    case DW_FORM_strp_sup:
+    case DW_FORM_sec_offset:
+      return start + reader_->OffsetSize();
+  }
+  fprintf(stderr,"Unhandled form type");
+  return NULL;
+}
+
+// Read the abbreviation offset from a compilation unit header.
+size_t CompilationUnit::ReadAbbrevOffset(const uint8_t* headerptr) {
+  assert(headerptr + reader_->OffsetSize() < buffer_ + buffer_length_);
+  header_.abbrev_offset = reader_->ReadOffset(headerptr);
+  return reader_->OffsetSize();
+}
+
+// Read the address size from a compilation unit header.
+size_t CompilationUnit::ReadAddressSize(const uint8_t* headerptr) {
+  // Compare against less than or equal because this may be the last
+  // section in the file.
+  assert(headerptr + 1 <= buffer_ + buffer_length_);
+  header_.address_size = reader_->ReadOneByte(headerptr);
+  reader_->SetAddressSize(header_.address_size);
+  return 1;
+}
+
+// Read the DWO id from a split or skeleton compilation unit header.
+size_t CompilationUnit::ReadDwoId(const uint8_t* headerptr) {
+  assert(headerptr + 8 <= buffer_ + buffer_length_);
+  dwo_id_ = reader_->ReadEightBytes(headerptr);
+  return 8;
+}
+
+// Read the type signature from a type or split type compilation unit header.
+size_t CompilationUnit::ReadTypeSignature(const uint8_t* headerptr) {
+  assert(headerptr + 8 <= buffer_ + buffer_length_);
+  type_signature_ = reader_->ReadEightBytes(headerptr);
+  return 8;
+}
+
+// Read the DWO id from a split or skeleton compilation unit header.
+size_t CompilationUnit::ReadTypeOffset(const uint8_t* headerptr) {
+  assert(headerptr + reader_->OffsetSize() < buffer_ + buffer_length_);
+  type_offset_ = reader_->ReadOffset(headerptr);
+  return reader_->OffsetSize();
+}
+
+
+// Read a DWARF header.  The header is variable length in DWARF3 and DWARF4
+// (and DWARF2 as extended by most compilers), and consists of an length
+// field, a version number, the offset in the .debug_abbrev section for our
+// abbrevs, and an address size. DWARF5 adds a unit_type to distinguish
+// between partial-, full-, skeleton-, split-, and type- compilation units.
+void CompilationUnit::ReadHeader() {
+  const uint8_t* headerptr = buffer_;
+  size_t initial_length_size;
+
+  assert(headerptr + 4 < buffer_ + buffer_length_);
+  const uint64_t initial_length
+    = reader_->ReadInitialLength(headerptr, &initial_length_size);
+  headerptr += initial_length_size;
+  header_.length = initial_length;
+
+  assert(headerptr + 2 < buffer_ + buffer_length_);
+  header_.version = reader_->ReadTwoBytes(headerptr);
+  headerptr += 2;
+
+  if (header_.version <= 4) {
+    // Older versions of dwarf have a relatively simple structure.
+    headerptr += ReadAbbrevOffset(headerptr);
+    headerptr += ReadAddressSize(headerptr);
+  } else {
+    // DWARF5 adds a unit_type field, and various fields based on unit_type.
+    assert(headerptr + 1 < buffer_ + buffer_length_);
+    uint8_t unit_type = reader_->ReadOneByte(headerptr);
+    headerptr += 1;
+    headerptr += ReadAddressSize(headerptr);
+    headerptr += ReadAbbrevOffset(headerptr);
+    switch (unit_type) {
+      case DW_UT_compile:
+      case DW_UT_partial:
+        // nothing else to read
+        break;
+      case DW_UT_skeleton:
+      case DW_UT_split_compile:
+        headerptr += ReadDwoId(headerptr);
+        break;
+      case DW_UT_type:
+      case DW_UT_split_type:
+        headerptr += ReadTypeSignature(headerptr);
+        headerptr += ReadTypeOffset(headerptr);
+        break;
+      default:
+        fprintf(stderr, "Unhandled compilation unit type 0x%x", unit_type);
+        break;
+    }
+  }
+  after_header_ = headerptr;
+
+  // This check ensures that we don't have to do checking during the
+  // reading of DIEs. header_.length does not include the size of the
+  // initial length.
+  assert(buffer_ + initial_length_size + header_.length <=
+        buffer_ + buffer_length_);
+}
+
+uint64_t CompilationUnit::Start() {
+  // First get the debug_info section.
+  SectionMap::const_iterator iter =
+      GetSectionByName(sections_, ".debug_info");
+  assert(iter != sections_.end());
+
+  // Set up our buffer
+  buffer_ = iter->second.first + offset_from_section_start_;
+  buffer_length_ = iter->second.second - offset_from_section_start_;
+
+  // Read the header
+  ReadHeader();
+
+  // Figure out the real length from the end of the initial length to
+  // the end of the compilation unit, since that is the value we
+  // return.
+  uint64_t ourlength = header_.length;
+  if (reader_->OffsetSize() == 8)
+    ourlength += 12;
+  else
+    ourlength += 4;
+
+  // See if the user wants this compilation unit, and if not, just return.
+  if (!handler_->StartCompilationUnit(offset_from_section_start_,
+                                      reader_->AddressSize(),
+                                      reader_->OffsetSize(),
+                                      header_.length,
+                                      header_.version))
+    return ourlength;
+
+  // Otherwise, continue by reading our abbreviation entries.
+  ReadAbbrevs();
+
+  // Set the string section if we have one.
+  iter = GetSectionByName(sections_, ".debug_str");
+  if (iter != sections_.end()) {
+    string_buffer_ = iter->second.first;
+    string_buffer_length_ = iter->second.second;
+  }
+
+  // Set the line string section if we have one.
+  iter = GetSectionByName(sections_, ".debug_line_str");
+  if (iter != sections_.end()) {
+    line_string_buffer_ = iter->second.first;
+    line_string_buffer_length_ = iter->second.second;
+  }
+
+  // Set the string offsets section if we have one.
+  iter = GetSectionByName(sections_, ".debug_str_offsets");
+  if (iter != sections_.end()) {
+    str_offsets_buffer_ = iter->second.first;
+    str_offsets_buffer_length_ = iter->second.second;
+  }
+
+  // Set the address section if we have one.
+  iter = GetSectionByName(sections_, ".debug_addr");
+  if (iter != sections_.end()) {
+    addr_buffer_ = iter->second.first;
+    addr_buffer_length_ = iter->second.second;
+  }
+
+  // Now that we have our abbreviations, start processing DIE's.
+  ProcessDIEs();
+
+  // If this is a skeleton compilation unit generated with split DWARF,
+  // and the client needs the full debug info, we need to find the full
+  // compilation unit in a .dwo or .dwp file.
+  if (!is_split_dwarf_
+      && dwo_name_ != NULL
+      && handler_->NeedSplitDebugInfo())
+    ProcessSplitDwarf();
+
+  return ourlength;
+}
+
+void CompilationUnit::ProcessFormStringIndex(
+    uint64_t dieoffset, enum DwarfAttribute attr, enum DwarfForm form,
+    uint64_t str_index) {
+  const uint8_t* offset_ptr =
+      str_offsets_buffer_ + str_index * reader_->OffsetSize();
+  const uint64_t offset = reader_->ReadOffset(offset_ptr);
+  if (offset >= string_buffer_length_) {
+    return;
+  }
+
+  const char* str = reinterpret_cast<const char*>(string_buffer_) + offset;
+  ProcessAttributeString(dieoffset, attr, form, str);
+}
+
+// If one really wanted, you could merge SkipAttribute and
+// ProcessAttribute
+// This is all boring data manipulation and calling of the handler.
+const uint8_t* CompilationUnit::ProcessAttribute(
+    uint64_t dieoffset, const uint8_t* start, enum DwarfAttribute attr,
+    enum DwarfForm form, uint64_t implicit_const) {
+  size_t len;
+
+  switch (form) {
+    // DW_FORM_indirect is never used because it is such a space
+    // waster.
+    case DW_FORM_indirect:
+      form = static_cast<enum DwarfForm>(reader_->ReadUnsignedLEB128(start,
+                                                                     &len));
+      start += len;
+      return ProcessAttribute(dieoffset, start, attr, form, implicit_const);
+
+    case DW_FORM_flag_present:
+      ProcessAttributeUnsigned(dieoffset, attr, form, 1);
+      return start;
+    case DW_FORM_data1:
+    case DW_FORM_flag:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadOneByte(start));
+      return start + 1;
+    case DW_FORM_data2:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadTwoBytes(start));
+      return start + 2;
+    case DW_FORM_data4:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadFourBytes(start));
+      return start + 4;
+    case DW_FORM_data8:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadEightBytes(start));
+      return start + 8;
+    case DW_FORM_data16:
+      // This form is designed for an md5 checksum inside line tables.
+      fprintf(stderr, "Unhandled form type: DW_FORM_data16\n");
+      return start + 16;
+    case DW_FORM_string: {
+      const char* str = reinterpret_cast<const char*>(start);
+      ProcessAttributeString(dieoffset, attr, form, str);
+      return start + strlen(str) + 1;
+    }
+    case DW_FORM_udata:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadUnsignedLEB128(start, &len));
+      return start + len;
+
+    case DW_FORM_sdata:
+      ProcessAttributeSigned(dieoffset, attr, form,
+                             reader_->ReadSignedLEB128(start, &len));
+      return start + len;
+    case DW_FORM_addr:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadAddress(start));
+      return start + reader_->AddressSize();
+    case DW_FORM_sec_offset:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadOffset(start));
+      return start + reader_->OffsetSize();
+
+    case DW_FORM_ref1:
+      handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                          reader_->ReadOneByte(start)
+                                          + offset_from_section_start_);
+      return start + 1;
+    case DW_FORM_ref2:
+      handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                          reader_->ReadTwoBytes(start)
+                                          + offset_from_section_start_);
+      return start + 2;
+    case DW_FORM_ref4:
+      handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                          reader_->ReadFourBytes(start)
+                                          + offset_from_section_start_);
+      return start + 4;
+    case DW_FORM_ref8:
+      handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                          reader_->ReadEightBytes(start)
+                                          + offset_from_section_start_);
+      return start + 8;
+    case DW_FORM_ref_udata:
+      handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                          reader_->ReadUnsignedLEB128(start,
+                                                                      &len)
+                                          + offset_from_section_start_);
+      return start + len;
+    case DW_FORM_ref_addr:
+      // DWARF2 and 3/4 differ on whether ref_addr is address size or
+      // offset size.
+      assert(header_.version >= 2);
+      if (header_.version == 2) {
+        handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                            reader_->ReadAddress(start));
+        return start + reader_->AddressSize();
+      } else if (header_.version >= 3) {
+        handler_->ProcessAttributeReference(dieoffset, attr, form,
+                                            reader_->ReadOffset(start));
+        return start + reader_->OffsetSize();
+      }
+      break;
+    case DW_FORM_ref_sig8:
+      handler_->ProcessAttributeSignature(dieoffset, attr, form,
+                                          reader_->ReadEightBytes(start));
+      return start + 8;
+    case DW_FORM_implicit_const:
+      handler_->ProcessAttributeUnsigned(dieoffset, attr, form,
+                                         implicit_const);
+      return start;
+    case DW_FORM_block1: {
+      uint64_t datalen = reader_->ReadOneByte(start);
+      handler_->ProcessAttributeBuffer(dieoffset, attr, form, start + 1,
+                                       datalen);
+      return start + 1 + datalen;
+    }
+    case DW_FORM_block2: {
+      uint64_t datalen = reader_->ReadTwoBytes(start);
+      handler_->ProcessAttributeBuffer(dieoffset, attr, form, start + 2,
+                                       datalen);
+      return start + 2 + datalen;
+    }
+    case DW_FORM_block4: {
+      uint64_t datalen = reader_->ReadFourBytes(start);
+      handler_->ProcessAttributeBuffer(dieoffset, attr, form, start + 4,
+                                       datalen);
+      return start + 4 + datalen;
+    }
+    case DW_FORM_block:
+    case DW_FORM_exprloc: {
+      uint64_t datalen = reader_->ReadUnsignedLEB128(start, &len);
+      handler_->ProcessAttributeBuffer(dieoffset, attr, form, start + len,
+                                       datalen);
+      return start + datalen + len;
+    }
+    case DW_FORM_strp: {
+      assert(string_buffer_ != NULL);
+
+      const uint64_t offset = reader_->ReadOffset(start);
+      assert(string_buffer_ + offset < string_buffer_ + string_buffer_length_);
+
+      const char* str = reinterpret_cast<const char*>(string_buffer_ + offset);
+      ProcessAttributeString(dieoffset, attr, form, str);
+      return start + reader_->OffsetSize();
+    }
+    case DW_FORM_line_strp: {
+      assert(line_string_buffer_ != NULL);
+
+      const uint64_t offset = reader_->ReadOffset(start);
+      assert(line_string_buffer_ + offset <
+             line_string_buffer_ + line_string_buffer_length_);
+
+      const char* str =
+          reinterpret_cast<const char*>(line_string_buffer_ + offset);
+      ProcessAttributeString(dieoffset, attr, form, str);
+      return start + reader_->OffsetSize();
+    }
+    case DW_FORM_strp_sup:
+      // No support currently for suplementary object files.
+      fprintf(stderr, "Unhandled form type: DW_FORM_strp_sup\n");
+      return start + 4;
+    case DW_FORM_ref_sup4:
+      // No support currently for suplementary object files.
+      fprintf(stderr, "Unhandled form type: DW_FORM_ref_sup4\n");
+      return start + 4;
+    case DW_FORM_ref_sup8:
+      // No support currently for suplementary object files.
+      fprintf(stderr, "Unhandled form type: DW_FORM_ref_sup8\n");
+      return start + 8;
+    case DW_FORM_loclistx:
+      ProcessAttributeUnsigned(dieoffset, attr, form,
+                               reader_->ReadUnsignedLEB128(start, &len));
+      return start + len;
+    case DW_FORM_strx:
+    case DW_FORM_GNU_str_index: {
+      uint64_t str_index = reader_->ReadUnsignedLEB128(start, &len);
+      ProcessFormStringIndex(dieoffset, attr, form, str_index);
+      return start + len;
+    }
+    case DW_FORM_strx1: {
+      uint64_t str_index = reader_->ReadOneByte(start);
+      ProcessFormStringIndex(dieoffset, attr, form, str_index);
+      return start + 1;
+    }
+    case DW_FORM_strx2: {
+      uint64_t str_index = reader_->ReadTwoBytes(start);
+      ProcessFormStringIndex(dieoffset, attr, form, str_index);
+      return start + 2;
+    }
+    case DW_FORM_strx3: {
+      uint64_t str_index = reader_->ReadThreeBytes(start);
+      ProcessFormStringIndex(dieoffset, attr, form, str_index);
+      return start + 3;
+    }
+    case DW_FORM_strx4: {
+      uint64_t str_index = reader_->ReadFourBytes(start);
+      ProcessFormStringIndex(dieoffset, attr, form, str_index);
+      return start + 4;
+    }
+
+    case DW_FORM_addrx:
+    case DW_FORM_GNU_addr_index:
+      ProcessAttributeAddrIndex(
+          dieoffset, attr, form, reader_->ReadUnsignedLEB128(start, &len));
+      return start + len;
+    case DW_FORM_addrx1:
+      ProcessAttributeAddrIndex(
+          dieoffset, attr, form, reader_->ReadOneByte(start));
+      return start + 1;
+    case DW_FORM_addrx2:
+      ProcessAttributeAddrIndex(
+          dieoffset, attr, form, reader_->ReadTwoBytes(start));
+      return start + 2;
+    case DW_FORM_addrx3:
+      ProcessAttributeAddrIndex(
+          dieoffset, attr, form, reader_->ReadThreeBytes(start));
+      return start + 3;
+    case DW_FORM_addrx4:
+      ProcessAttributeAddrIndex(
+          dieoffset, attr, form, reader_->ReadFourBytes(start));
+      return start + 4;
+    case DW_FORM_rnglistx:
+      ProcessAttributeUnsigned(
+          dieoffset, attr, form, reader_->ReadUnsignedLEB128(start, &len));
+      return start + len;
+  }
+  fprintf(stderr, "Unhandled form type\n");
+  return NULL;
+}
+
+const uint8_t* CompilationUnit::ProcessDIE(uint64_t dieoffset,
+                                           const uint8_t* start,
+                                           const Abbrev& abbrev) {
+  for (AttributeList::const_iterator i = abbrev.attributes.begin();
+       i != abbrev.attributes.end();
+       i++)  {
+    start = ProcessAttribute(dieoffset, start, i->attr_, i->form_, i->value_);
+  }
+
+  // If this is a compilation unit in a split DWARF object, verify that
+  // the dwo_id matches. If it does not match, we will ignore this
+  // compilation unit.
+  if (abbrev.tag == DW_TAG_compile_unit
+      && is_split_dwarf_
+      && dwo_id_ != skeleton_dwo_id_) {
+    return NULL;
+  }
+
+  return start;
+}
+
+void CompilationUnit::ProcessDIEs() {
+  const uint8_t* dieptr = after_header_;
+  size_t len;
+
+  // lengthstart is the place the length field is based on.
+  // It is the point in the header after the initial length field
+  const uint8_t* lengthstart = buffer_;
+
+  // In 64 bit dwarf, the initial length is 12 bytes, because of the
+  // 0xffffffff at the start.
+  if (reader_->OffsetSize() == 8)
+    lengthstart += 12;
+  else
+    lengthstart += 4;
+
+  std::stack<uint64_t> die_stack;
+  
+  while (dieptr < (lengthstart + header_.length)) {
+    // We give the user the absolute offset from the beginning of
+    // debug_info, since they need it to deal with ref_addr forms.
+    uint64_t absolute_offset = (dieptr - buffer_) + offset_from_section_start_;
+
+    uint64_t abbrev_num = reader_->ReadUnsignedLEB128(dieptr, &len);
+
+    dieptr += len;
+
+    // Abbrev == 0 represents the end of a list of children, or padding
+    // at the end of the compilation unit.
+    if (abbrev_num == 0) {
+      if (die_stack.size() == 0)
+        // If it is padding, then we are done with the compilation unit's DIEs.
+        return;
+      const uint64_t offset = die_stack.top();
+      die_stack.pop();
+      handler_->EndDIE(offset);
+      continue;
+    }
+
+    const Abbrev& abbrev = abbrevs_->at(static_cast<size_t>(abbrev_num));
+    const enum DwarfTag tag = abbrev.tag;
+    if (!handler_->StartDIE(absolute_offset, tag)) {
+      dieptr = SkipDIE(dieptr, abbrev);
+    } else {
+      dieptr = ProcessDIE(absolute_offset, dieptr, abbrev);
+    }
+
+    if (abbrev.has_children) {
+      die_stack.push(absolute_offset);
+    } else {
+      handler_->EndDIE(absolute_offset);
+    }
+  }
+}
+
+// Check for a valid ELF file and return the Address size.
+// Returns 0 if not a valid ELF file.
+inline int GetElfWidth(const ElfReader& elf) {
+  if (elf.IsElf32File())
+    return 4;
+  if (elf.IsElf64File())
+    return 8;
+  return 0;
+}
+
+void CompilationUnit::ProcessSplitDwarf() {
+  struct stat statbuf;
+  if (!have_checked_for_dwp_) {
+    // Look for a .dwp file in the same directory as the executable.
+    have_checked_for_dwp_ = true;
+    string dwp_suffix(".dwp");
+    dwp_path_ = path_ + dwp_suffix;
+    if (stat(dwp_path_.c_str(), &statbuf) != 0) {
+      // Fall back to a split .debug file in the same directory.
+      string debug_suffix(".debug");
+      dwp_path_ = path_;
+      size_t found = path_.rfind(debug_suffix);
+      if (found + debug_suffix.length() == path_.length())
+        dwp_path_ = dwp_path_.replace(found, debug_suffix.length(), dwp_suffix);
+    }
+    if (stat(dwp_path_.c_str(), &statbuf) == 0) {
+      ElfReader* elf = new ElfReader(dwp_path_);
+      int width = GetElfWidth(*elf);
+      if (width != 0) {
+        dwp_byte_reader_.reset(new ByteReader(reader_->GetEndianness()));
+        dwp_byte_reader_->SetAddressSize(width);
+        dwp_reader_.reset(new DwpReader(*dwp_byte_reader_, elf));
+        dwp_reader_->Initialize();
+      } else {
+        delete elf;
+      }
+    }
+  }
+  bool found_in_dwp = false;
+  if (dwp_reader_) {
+    // If we have a .dwp file, read the debug sections for the requested CU.
+    SectionMap sections;
+    dwp_reader_->ReadDebugSectionsForCU(dwo_id_, &sections);
+    if (!sections.empty()) {
+      found_in_dwp = true;
+      CompilationUnit dwp_comp_unit(dwp_path_, sections, 0,
+                                    dwp_byte_reader_.get(), handler_);
+      dwp_comp_unit.SetSplitDwarf(addr_buffer_, addr_buffer_length_, addr_base_,
+                                  ranges_base_, dwo_id_);
+      dwp_comp_unit.Start();
+    }
+  }
+  if (!found_in_dwp) {
+    // If no .dwp file, try to open the .dwo file.
+    if (stat(dwo_name_, &statbuf) == 0) {
+      ElfReader elf(dwo_name_);
+      int width = GetElfWidth(elf);
+      if (width != 0) {
+        ByteReader reader(ENDIANNESS_LITTLE);
+        reader.SetAddressSize(width);
+        SectionMap sections;
+        ReadDebugSectionsFromDwo(&elf, &sections);
+        CompilationUnit dwo_comp_unit(dwo_name_, sections, 0, &reader,
+                                      handler_);
+        dwo_comp_unit.SetSplitDwarf(addr_buffer_, addr_buffer_length_,
+                                    addr_base_, ranges_base_, dwo_id_);
+        dwo_comp_unit.Start();
+      }
+    }
+  }
+}
+
+void CompilationUnit::ReadDebugSectionsFromDwo(ElfReader* elf_reader,
+                                               SectionMap* sections) {
+  static const char* const section_names[] = {
+    ".debug_abbrev",
+    ".debug_info",
+    ".debug_str_offsets",
+    ".debug_str"
+  };
+  for (unsigned int i = 0u;
+       i < sizeof(section_names)/sizeof(*(section_names)); ++i) {
+    string base_name = section_names[i];
+    string dwo_name = base_name + ".dwo";
+    size_t section_size;
+    const char* section_data = elf_reader->GetSectionByName(dwo_name,
+                                                            &section_size);
+    if (section_data != NULL)
+      sections->insert(std::make_pair(
+          base_name, std::make_pair(
+             reinterpret_cast<const uint8_t*>(section_data),
+             section_size)));
+  }
+}
+
+DwpReader::DwpReader(const ByteReader& byte_reader, ElfReader* elf_reader)
+    : elf_reader_(elf_reader), byte_reader_(byte_reader),
+      cu_index_(NULL), cu_index_size_(0), string_buffer_(NULL),
+      string_buffer_size_(0), version_(0), ncolumns_(0), nunits_(0),
+      nslots_(0), phash_(NULL), pindex_(NULL), shndx_pool_(NULL),
+      offset_table_(NULL), size_table_(NULL), abbrev_data_(NULL),
+      abbrev_size_(0), info_data_(NULL), info_size_(0),
+      str_offsets_data_(NULL), str_offsets_size_(0) {}
+
+DwpReader::~DwpReader() {
+  if (elf_reader_) delete elf_reader_;
+}
+
+void DwpReader::Initialize() {
+  cu_index_ = elf_reader_->GetSectionByName(".debug_cu_index",
+                                            &cu_index_size_);
+  if (cu_index_ == NULL) {
+    return;
+  }
+  // The .debug_str.dwo section is shared by all CUs in the file.
+  string_buffer_ = elf_reader_->GetSectionByName(".debug_str.dwo",
+                                                 &string_buffer_size_);
+
+  version_ = byte_reader_.ReadFourBytes(
+      reinterpret_cast<const uint8_t*>(cu_index_));
+
+  if (version_ == 1) {
+    nslots_ = byte_reader_.ReadFourBytes(
+        reinterpret_cast<const uint8_t*>(cu_index_)
+        + 3 * sizeof(uint32_t));
+    phash_ = cu_index_ + 4 * sizeof(uint32_t);
+    pindex_ = phash_ + nslots_ * sizeof(uint64_t);
+    shndx_pool_ = pindex_ + nslots_ * sizeof(uint32_t);
+    if (shndx_pool_ >= cu_index_ + cu_index_size_) {
+      version_ = 0;
+    }
+  } else if (version_ == 2) {
+    ncolumns_ = byte_reader_.ReadFourBytes(
+        reinterpret_cast<const uint8_t*>(cu_index_) + sizeof(uint32_t));
+    nunits_ = byte_reader_.ReadFourBytes(
+        reinterpret_cast<const uint8_t*>(cu_index_) + 2 * sizeof(uint32_t));
+    nslots_ = byte_reader_.ReadFourBytes(
+        reinterpret_cast<const uint8_t*>(cu_index_) + 3 * sizeof(uint32_t));
+    phash_ = cu_index_ + 4 * sizeof(uint32_t);
+    pindex_ = phash_ + nslots_ * sizeof(uint64_t);
+    offset_table_ = pindex_ + nslots_ * sizeof(uint32_t);
+    size_table_ = offset_table_ + ncolumns_ * (nunits_ + 1) * sizeof(uint32_t);
+    abbrev_data_ = elf_reader_->GetSectionByName(".debug_abbrev.dwo",
+                                                 &abbrev_size_);
+    info_data_ = elf_reader_->GetSectionByName(".debug_info.dwo", &info_size_);
+    str_offsets_data_ = elf_reader_->GetSectionByName(".debug_str_offsets.dwo",
+                                                      &str_offsets_size_);
+    if (size_table_ >= cu_index_ + cu_index_size_) {
+      version_ = 0;
+    }
+  }
+}
+
+void DwpReader::ReadDebugSectionsForCU(uint64_t dwo_id,
+                                       SectionMap* sections) {
+  if (version_ == 1) {
+    int slot = LookupCU(dwo_id);
+    if (slot == -1) {
+      return;
+    }
+
+    // The index table points to the section index pool, where we
+    // can read a list of section indexes for the debug sections
+    // for the CU whose dwo_id we are looking for.
+    int index = byte_reader_.ReadFourBytes(
+        reinterpret_cast<const uint8_t*>(pindex_)
+        + slot * sizeof(uint32_t));
+    const char* shndx_list = shndx_pool_ + index * sizeof(uint32_t);
+    for (;;) {
+      if (shndx_list >= cu_index_ + cu_index_size_) {
+        version_ = 0;
+        return;
+      }
+      unsigned int shndx = byte_reader_.ReadFourBytes(
+          reinterpret_cast<const uint8_t*>(shndx_list));
+      shndx_list += sizeof(uint32_t);
+      if (shndx == 0)
+        break;
+      const char* section_name = elf_reader_->GetSectionName(shndx);
+      size_t section_size;
+      const char* section_data;
+      // We're only interested in these four debug sections.
+      // The section names in the .dwo file end with ".dwo", but we
+      // add them to the sections table with their normal names.
+      if (!strncmp(section_name, ".debug_abbrev", strlen(".debug_abbrev"))) {
+        section_data = elf_reader_->GetSectionByIndex(shndx, &section_size);
+        sections->insert(std::make_pair(
+            ".debug_abbrev",
+            std::make_pair(reinterpret_cast<const uint8_t*> (section_data),
+                                                              section_size)));
+      } else if (!strncmp(section_name, ".debug_info", strlen(".debug_info"))) {
+        section_data = elf_reader_->GetSectionByIndex(shndx, &section_size);
+        sections->insert(std::make_pair(
+            ".debug_info",
+            std::make_pair(reinterpret_cast<const uint8_t*> (section_data),
+                           section_size)));
+      } else if (!strncmp(section_name, ".debug_str_offsets",
+                          strlen(".debug_str_offsets"))) {
+        section_data = elf_reader_->GetSectionByIndex(shndx, &section_size);
+        sections->insert(std::make_pair(
+            ".debug_str_offsets",
+            std::make_pair(reinterpret_cast<const uint8_t*> (section_data),
+                           section_size)));
+      }
+    }
+    sections->insert(std::make_pair(
+        ".debug_str",
+        std::make_pair(reinterpret_cast<const uint8_t*> (string_buffer_),
+                       string_buffer_size_)));
+  } else if (version_ == 2) {
+    uint32_t index = LookupCUv2(dwo_id);
+    if (index == 0) {
+      return;
+    }
+
+    // The index points to a row in each of the section offsets table
+    // and the section size table, where we can read the offsets and sizes
+    // of the contributions to each debug section from the CU whose dwo_id
+    // we are looking for. Row 0 of the section offsets table has the
+    // section ids for each column of the table. The size table begins
+    // with row 1.
+    const char* id_row = offset_table_;
+    const char* offset_row = offset_table_
+                             + index * ncolumns_ * sizeof(uint32_t);
+    const char* size_row =
+        size_table_ + (index - 1) * ncolumns_ * sizeof(uint32_t);
+    if (size_row + ncolumns_ * sizeof(uint32_t) > cu_index_ + cu_index_size_) {
+      version_ = 0;
+      return;
+    }
+    for (unsigned int col = 0u; col < ncolumns_; ++col) {
+      uint32_t section_id =
+          byte_reader_.ReadFourBytes(reinterpret_cast<const uint8_t*>(id_row)
+                                     + col * sizeof(uint32_t));
+      uint32_t offset = byte_reader_.ReadFourBytes(
+          reinterpret_cast<const uint8_t*>(offset_row)
+          + col * sizeof(uint32_t));
+      uint32_t size = byte_reader_.ReadFourBytes(
+          reinterpret_cast<const uint8_t*>(size_row) + col * sizeof(uint32_t));
+      if (section_id == DW_SECT_ABBREV) {
+        sections->insert(std::make_pair(
+            ".debug_abbrev",
+            std::make_pair(reinterpret_cast<const uint8_t*> (abbrev_data_)
+                           + offset, size)));
+      } else if (section_id == DW_SECT_INFO) {
+        sections->insert(std::make_pair(
+            ".debug_info",
+            std::make_pair(reinterpret_cast<const uint8_t*> (info_data_)
+                           + offset, size)));
+      } else if (section_id == DW_SECT_STR_OFFSETS) {
+        sections->insert(std::make_pair(
+            ".debug_str_offsets",
+            std::make_pair(reinterpret_cast<const uint8_t*> (str_offsets_data_)
+                           + offset, size)));
+      }
+    }
+    sections->insert(std::make_pair(
+        ".debug_str",
+        std::make_pair(reinterpret_cast<const uint8_t*> (string_buffer_),
+                       string_buffer_size_)));
+  }
+}
+
+int DwpReader::LookupCU(uint64_t dwo_id) {
+  uint32_t slot = static_cast<uint32_t>(dwo_id) & (nslots_ - 1);
+  uint64_t probe = byte_reader_.ReadEightBytes(
+      reinterpret_cast<const uint8_t*>(phash_) + slot * sizeof(uint64_t));
+  if (probe != 0 && probe != dwo_id) {
+    uint32_t secondary_hash =
+        (static_cast<uint32_t>(dwo_id >> 32) & (nslots_ - 1)) | 1;
+    do {
+      slot = (slot + secondary_hash) & (nslots_ - 1);
+      probe = byte_reader_.ReadEightBytes(
+          reinterpret_cast<const uint8_t*>(phash_) + slot * sizeof(uint64_t));
+    } while (probe != 0 && probe != dwo_id);
+  }
+  if (probe == 0)
+    return -1;
+  return slot;
+}
+
+uint32_t DwpReader::LookupCUv2(uint64_t dwo_id) {
+  uint32_t slot = static_cast<uint32_t>(dwo_id) & (nslots_ - 1);
+  uint64_t probe = byte_reader_.ReadEightBytes(
+      reinterpret_cast<const uint8_t*>(phash_) + slot * sizeof(uint64_t));
+  uint32_t index = byte_reader_.ReadFourBytes(
+      reinterpret_cast<const uint8_t*>(pindex_) + slot * sizeof(uint32_t));
+  if (index != 0 && probe != dwo_id) {
+    uint32_t secondary_hash =
+        (static_cast<uint32_t>(dwo_id >> 32) & (nslots_ - 1)) | 1;
+    do {
+      slot = (slot + secondary_hash) & (nslots_ - 1);
+      probe = byte_reader_.ReadEightBytes(
+          reinterpret_cast<const uint8_t*>(phash_) + slot * sizeof(uint64_t));
+      index = byte_reader_.ReadFourBytes(
+          reinterpret_cast<const uint8_t*>(pindex_) + slot * sizeof(uint32_t));
+    } while (index != 0 && probe != dwo_id);
+  }
+  return index;
+}
+
+LineInfo::LineInfo(const uint8_t* buffer, uint64_t buffer_length,
+                   ByteReader* reader, const uint8_t* string_buffer,
+                   size_t string_buffer_length,
+                   const uint8_t* line_string_buffer,
+                   size_t line_string_buffer_length, LineInfoHandler* handler):
+    handler_(handler), reader_(reader), buffer_(buffer),
+    string_buffer_(string_buffer),
+    line_string_buffer_(line_string_buffer) {
+#ifndef NDEBUG
+  buffer_length_ = buffer_length;
+  string_buffer_length_ = string_buffer_length;
+  line_string_buffer_length_ = line_string_buffer_length;
+#endif
+  header_.std_opcode_lengths = NULL;
+}
+
+uint64_t LineInfo::Start() {
+  ReadHeader();
+  ReadLines();
+  return after_header_ - buffer_;
+}
+
+void LineInfo::ReadTypesAndForms(const uint8_t** lineptr,
+                                 uint32_t* content_types,
+                                 uint32_t* content_forms,
+                                 uint32_t max_types,
+                                 uint32_t* format_count) {
+  size_t len;
+
+  uint32_t count = reader_->ReadUnsignedLEB128(*lineptr, &len);
+  *lineptr += len;
+  if (count < 1 || count > max_types) {
+    return;
+  }
+  for (uint32_t col = 0; col < count; ++col) {
+    content_types[col] = reader_->ReadUnsignedLEB128(*lineptr, &len);
+    *lineptr += len;
+    content_forms[col] = reader_->ReadUnsignedLEB128(*lineptr, &len);
+    *lineptr += len;
+  }
+  *format_count = count;
+}
+
+const char* LineInfo::ReadStringForm(uint32_t form, const uint8_t** lineptr) {
+  const char* name = nullptr;
+  if (form == DW_FORM_string) {
+    name = reinterpret_cast<const char*>(*lineptr);
+    *lineptr += strlen(name) + 1;
+    return name;
+  } else if (form == DW_FORM_strp) {
+    uint64_t offset = reader_->ReadOffset(*lineptr);
+    assert(offset < string_buffer_length_);
+    *lineptr += reader_->OffsetSize();
+    if (string_buffer_ != nullptr) {
+      name = reinterpret_cast<const char*>(string_buffer_) + offset;
+      return name;
+    }
+  } else if (form == DW_FORM_line_strp) {
+    uint64_t offset = reader_->ReadOffset(*lineptr);
+    assert(offset < line_string_buffer_length_);
+    *lineptr += reader_->OffsetSize();
+    if (line_string_buffer_ != nullptr) {
+      name = reinterpret_cast<const char*>(line_string_buffer_) + offset;
+      return name;
+    }
+  }
+  // Shouldn't be called with a non-string-form, and
+  // if there is a string form but no string buffer,
+  // that is a problem too.
+  assert(0);
+  return nullptr;
+}
+
+uint64_t LineInfo::ReadUnsignedData(uint32_t form, const uint8_t** lineptr) {
+  size_t len;
+  uint64_t value;
+
+  switch (form) {
+    case DW_FORM_data1:
+      value = reader_->ReadOneByte(*lineptr);
+      *lineptr += 1;
+      return value;
+    case DW_FORM_data2:
+      value = reader_->ReadTwoBytes(*lineptr);
+      *lineptr += 2;
+      return value;
+    case DW_FORM_data4:
+      value = reader_->ReadFourBytes(*lineptr);
+      *lineptr += 4;
+      return value;
+    case DW_FORM_data8:
+      value = reader_->ReadEightBytes(*lineptr);
+      *lineptr += 8;
+      return value;
+    case DW_FORM_udata:
+      value = reader_->ReadUnsignedLEB128(*lineptr, &len);
+      *lineptr += len;
+      return value;
+    default:
+      fprintf(stderr, "Unrecognized data form.");
+      return 0;
+  }
+}
+
+void LineInfo::ReadFileRow(const uint8_t** lineptr,
+                           const uint32_t* content_types,
+                           const uint32_t* content_forms, uint32_t row,
+                           uint32_t format_count) {
+  const char* filename = nullptr;
+  uint64_t dirindex = 0;
+  uint64_t mod_time = 0;
+  uint64_t filelength = 0;
+
+  for (uint32_t col = 0; col < format_count; ++col) {
+    switch (content_types[col]) {
+      case DW_LNCT_path:
+        filename = ReadStringForm(content_forms[col], lineptr);
+        break;
+      case DW_LNCT_directory_index:
+        dirindex = ReadUnsignedData(content_forms[col], lineptr);
+        break;
+      case DW_LNCT_timestamp:
+        mod_time = ReadUnsignedData(content_forms[col], lineptr);
+        break;
+      case DW_LNCT_size:
+        filelength = ReadUnsignedData(content_forms[col], lineptr);
+        break;
+      case DW_LNCT_MD5:
+        // MD5 entries help a debugger sort different versions of files with
+        // the same name.  It is always paired with a DW_FORM_data16 and is
+        // unused in this case.
+        lineptr += 16;
+        break;
+      default:
+        fprintf(stderr, "Unrecognized form in line table header. %d\n",
+                content_types[col]);
+        assert(false);
+        break;
+    }
+  }
+  assert(filename != nullptr);
+  handler_->DefineFile(filename, row, dirindex, mod_time, filelength);
+}
+
+// The header for a debug_line section is mildly complicated, because
+// the line info is very tightly encoded.
+void LineInfo::ReadHeader() {
+  const uint8_t* lineptr = buffer_;
+  size_t initial_length_size;
+
+  const uint64_t initial_length
+    = reader_->ReadInitialLength(lineptr, &initial_length_size);
+
+  lineptr += initial_length_size;
+  header_.total_length = initial_length;
+  assert(buffer_ + initial_length_size + header_.total_length <=
+        buffer_ + buffer_length_);
+
+
+  header_.version = reader_->ReadTwoBytes(lineptr);
+  lineptr += 2;
+
+  if (header_.version >= 5) {
+    uint8_t address_size = reader_->ReadOneByte(lineptr);
+    reader_->SetAddressSize(address_size);
+    lineptr += 1;
+    uint8_t segment_selector_size = reader_->ReadOneByte(lineptr);
+    if (segment_selector_size != 0) {
+      fprintf(stderr,"No support for segmented memory.");
+    }
+    lineptr += 1;
+  } else {
+    // Address size *must* be set by CU ahead of time.
+    assert(reader_->AddressSize() != 0);
+  }
+
+  header_.prologue_length = reader_->ReadOffset(lineptr);
+  lineptr += reader_->OffsetSize();
+
+  header_.min_insn_length = reader_->ReadOneByte(lineptr);
+  lineptr += 1;
+
+  if (header_.version >= 4) {
+    __attribute__((unused)) uint8_t max_ops_per_insn =
+        reader_->ReadOneByte(lineptr);
+    ++lineptr;
+    assert(max_ops_per_insn == 1);
+  }
+
+  header_.default_is_stmt = reader_->ReadOneByte(lineptr);
+  lineptr += 1;
+
+  header_.line_base = *reinterpret_cast<const int8_t*>(lineptr);
+  lineptr += 1;
+
+  header_.line_range = reader_->ReadOneByte(lineptr);
+  lineptr += 1;
+
+  header_.opcode_base = reader_->ReadOneByte(lineptr);
+  lineptr += 1;
+
+  header_.std_opcode_lengths = new std::vector<unsigned char>;
+  header_.std_opcode_lengths->resize(header_.opcode_base + 1);
+  (*header_.std_opcode_lengths)[0] = 0;
+  for (int i = 1; i < header_.opcode_base; i++) {
+    (*header_.std_opcode_lengths)[i] = reader_->ReadOneByte(lineptr);
+    lineptr += 1;
+  }
+
+  if (header_.version <= 4) {
+    // Directory zero is assumed to be the compilation directory and special
+    // cased where used. It is not actually stored in the dwarf data. But an
+    // empty entry here avoids off-by-one errors elsewhere in the code.
+    handler_->DefineDir("", 0);
+    // It is legal for the directory entry table to be empty.
+    if (*lineptr) {
+      uint32_t dirindex = 1;
+      while (*lineptr) {
+        const char* dirname = reinterpret_cast<const char*>(lineptr);
+        handler_->DefineDir(dirname, dirindex);
+        lineptr += strlen(dirname) + 1;
+        dirindex++;
+      }
+    }
+    lineptr++;
+    // It is also legal for the file entry table to be empty.
+
+    // Similarly for file zero.
+    handler_->DefineFile("", 0, 0, 0, 0);
+    if (*lineptr) {
+      uint32_t fileindex = 1;
+      size_t len;
+      while (*lineptr) {
+        const char* filename = ReadStringForm(DW_FORM_string, &lineptr);
+
+        uint64_t dirindex = reader_->ReadUnsignedLEB128(lineptr, &len);
+        lineptr += len;
+
+        uint64_t mod_time = reader_->ReadUnsignedLEB128(lineptr, &len);
+        lineptr += len;
+
+        uint64_t filelength = reader_->ReadUnsignedLEB128(lineptr, &len);
+        lineptr += len;
+        handler_->DefineFile(filename, fileindex,
+                             static_cast<uint32_t>(dirindex), mod_time,
+                             filelength);
+        fileindex++;
+      }
+    }
+    lineptr++;
+  } else {
+    // Read the DWARF-5 directory table.
+
+    // Dwarf5 supports five different types and forms per directory- and
+    // file-table entry. Theoretically, there could be duplicate entries
+    // in this table, but that would be quite unusual.
+    static const uint32_t kMaxTypesAndForms = 5;
+    uint32_t content_types[kMaxTypesAndForms];
+    uint32_t content_forms[kMaxTypesAndForms];
+    uint32_t format_count;
+    size_t len;
+
+    ReadTypesAndForms(&lineptr, content_types, content_forms, kMaxTypesAndForms,
+                      &format_count);
+    uint32_t entry_count = reader_->ReadUnsignedLEB128(lineptr, &len);
+    lineptr += len;
+    for (uint32_t row = 0; row < entry_count; ++row) {
+      const char* dirname = nullptr;
+      for (uint32_t col = 0; col < format_count; ++col) {
+        // The path is the only relevant content type for this implementation.
+        if (content_types[col] == DW_LNCT_path) {
+          dirname = ReadStringForm(content_forms[col], &lineptr);
+        }
+      }
+      handler_->DefineDir(dirname, row);
+    }
+
+    // Read the DWARF-5 filename table.
+    ReadTypesAndForms(&lineptr, content_types, content_forms, kMaxTypesAndForms,
+                      &format_count);
+    entry_count = reader_->ReadUnsignedLEB128(lineptr, &len);
+    lineptr += len;
+
+    for (uint32_t row = 0; row < entry_count; ++row) {
+      ReadFileRow(&lineptr, content_types, content_forms, row, format_count);
+    }
+  }
+  after_header_ = lineptr;
+}
+
+/* static */
+bool LineInfo::ProcessOneOpcode(ByteReader* reader,
+                                LineInfoHandler* handler,
+                                const struct LineInfoHeader& header,
+                                const uint8_t* start,
+                                struct LineStateMachine* lsm,
+                                size_t* len,
+                                uintptr pc,
+                                bool* lsm_passes_pc) {
+  size_t oplen = 0;
+  size_t templen;
+  uint8_t opcode = reader->ReadOneByte(start);
+  oplen++;
+  start++;
+
+  // If the opcode is great than the opcode_base, it is a special
+  // opcode. Most line programs consist mainly of special opcodes.
+  if (opcode >= header.opcode_base) {
+    opcode -= header.opcode_base;
+    const int64_t advance_address = (opcode / header.line_range)
+                                  * header.min_insn_length;
+    const int32_t advance_line = (opcode % header.line_range)
+                               + header.line_base;
+
+    // Check if the lsm passes "pc". If so, mark it as passed.
+    if (lsm_passes_pc &&
+        lsm->address <= pc && pc < lsm->address + advance_address) {
+      *lsm_passes_pc = true;
+    }
+
+    lsm->address += advance_address;
+    lsm->line_num += advance_line;
+    lsm->basic_block = true;
+    *len = oplen;
+    return true;
+  }
+
+  // Otherwise, we have the regular opcodes
+  switch (opcode) {
+    case DW_LNS_copy: {
+      lsm->basic_block = false;
+      *len = oplen;
+      return true;
+    }
+
+    case DW_LNS_advance_pc: {
+      uint64_t advance_address = reader->ReadUnsignedLEB128(start, &templen);
+      oplen += templen;
+
+      // Check if the lsm passes "pc". If so, mark it as passed.
+      if (lsm_passes_pc && lsm->address <= pc &&
+          pc < lsm->address + header.min_insn_length * advance_address) {
+        *lsm_passes_pc = true;
+      }
+
+      lsm->address += header.min_insn_length * advance_address;
+    }
+      break;
+    case DW_LNS_advance_line: {
+      const int64_t advance_line = reader->ReadSignedLEB128(start, &templen);
+      oplen += templen;
+      lsm->line_num += static_cast<int32_t>(advance_line);
+
+      // With gcc 4.2.1, we can get the line_no here for the first time
+      // since DW_LNS_advance_line is called after DW_LNE_set_address is
+      // called. So we check if the lsm passes "pc" here, not in
+      // DW_LNE_set_address.
+      if (lsm_passes_pc && lsm->address == pc) {
+        *lsm_passes_pc = true;
+      }
+    }
+      break;
+    case DW_LNS_set_file: {
+      const uint64_t fileno = reader->ReadUnsignedLEB128(start, &templen);
+      oplen += templen;
+      lsm->file_num = static_cast<uint32_t>(fileno);
+    }
+      break;
+    case DW_LNS_set_column: {
+      const uint64_t colno = reader->ReadUnsignedLEB128(start, &templen);
+      oplen += templen;
+      lsm->column_num = static_cast<uint32_t>(colno);
+    }
+      break;
+    case DW_LNS_negate_stmt: {
+      lsm->is_stmt = !lsm->is_stmt;
+    }
+      break;
+    case DW_LNS_set_basic_block: {
+      lsm->basic_block = true;
+    }
+      break;
+    case DW_LNS_fixed_advance_pc: {
+      const uint16_t advance_address = reader->ReadTwoBytes(start);
+      oplen += 2;
+
+      // Check if the lsm passes "pc". If so, mark it as passed.
+      if (lsm_passes_pc &&
+          lsm->address <= pc && pc < lsm->address + advance_address) {
+        *lsm_passes_pc = true;
+      }
+
+      lsm->address += advance_address;
+    }
+      break;
+    case DW_LNS_const_add_pc: {
+      const int64_t advance_address = header.min_insn_length
+                                    * ((255 - header.opcode_base)
+                                       / header.line_range);
+
+      // Check if the lsm passes "pc". If so, mark it as passed.
+      if (lsm_passes_pc &&
+          lsm->address <= pc && pc < lsm->address + advance_address) {
+        *lsm_passes_pc = true;
+      }
+
+      lsm->address += advance_address;
+    }
+      break;
+    case DW_LNS_extended_op: {
+      const uint64_t extended_op_len = reader->ReadUnsignedLEB128(start,
+                                                                &templen);
+      start += templen;
+      oplen += templen + extended_op_len;
+
+      const uint64_t extended_op = reader->ReadOneByte(start);
+      start++;
+
+      switch (extended_op) {
+        case DW_LNE_end_sequence: {
+          lsm->end_sequence = true;
+          *len = oplen;
+          return true;
+        }
+          break;
+        case DW_LNE_set_address: {
+          // With gcc 4.2.1, we cannot tell the line_no here since
+          // DW_LNE_set_address is called before DW_LNS_advance_line is
+          // called.  So we do not check if the lsm passes "pc" here.  See
+          // also the comment in DW_LNS_advance_line.
+          uint64_t address = reader->ReadAddress(start);
+          lsm->address = address;
+        }
+          break;
+        case DW_LNE_define_file: {
+          const char* filename = reinterpret_cast<const char*>(start);
+
+          templen = strlen(filename) + 1;
+          start += templen;
+
+          uint64_t dirindex = reader->ReadUnsignedLEB128(start, &templen);
+          oplen += templen;
+
+          const uint64_t mod_time = reader->ReadUnsignedLEB128(start,
+                                                             &templen);
+          oplen += templen;
+
+          const uint64_t filelength = reader->ReadUnsignedLEB128(start,
+                                                               &templen);
+          oplen += templen;
+
+          if (handler) {
+            handler->DefineFile(filename, -1, static_cast<uint32_t>(dirindex), 
+                                mod_time, filelength);
+          }
+        }
+          break;
+      }
+    }
+      break;
+
+    default: {
+      // Ignore unknown opcode  silently
+      if (header.std_opcode_lengths) {
+        for (int i = 0; i < (*header.std_opcode_lengths)[opcode]; i++) {
+          reader->ReadUnsignedLEB128(start, &templen);
+          start += templen;
+          oplen += templen;
+        }
+      }
+    }
+      break;
+  }
+  *len = oplen;
+  return false;
+}
+
+void LineInfo::ReadLines() {
+  struct LineStateMachine lsm;
+
+  // lengthstart is the place the length field is based on.
+  // It is the point in the header after the initial length field
+  const uint8_t* lengthstart = buffer_;
+
+  // In 64 bit dwarf, the initial length is 12 bytes, because of the
+  // 0xffffffff at the start.
+  if (reader_->OffsetSize() == 8)
+    lengthstart += 12;
+  else
+    lengthstart += 4;
+
+  const uint8_t* lineptr = after_header_;
+  lsm.Reset(header_.default_is_stmt);
+
+  // The LineInfoHandler interface expects each line's length along
+  // with its address, but DWARF only provides addresses (sans
+  // length), and an end-of-sequence address; one infers the length
+  // from the next address. So we report a line only when we get the
+  // next line's address, or the end-of-sequence address.
+  bool have_pending_line = false;
+  uint64_t pending_address = 0;
+  uint32_t pending_file_num = 0, pending_line_num = 0, pending_column_num = 0;
+
+  while (lineptr < lengthstart + header_.total_length) {
+    size_t oplength;
+    bool add_row = ProcessOneOpcode(reader_, handler_, header_,
+                                    lineptr, &lsm, &oplength, (uintptr)-1,
+                                    NULL);
+    if (add_row) {
+      if (have_pending_line)
+        handler_->AddLine(pending_address, lsm.address - pending_address,
+                          pending_file_num, pending_line_num,
+                          pending_column_num);
+      if (lsm.end_sequence) {
+        lsm.Reset(header_.default_is_stmt);      
+        have_pending_line = false;
+      } else {
+        pending_address = lsm.address;
+        pending_file_num = lsm.file_num;
+        pending_line_num = lsm.line_num;
+        pending_column_num = lsm.column_num;
+        have_pending_line = true;
+      }
+    }
+    lineptr += oplength;
+  }
+
+  after_header_ = lengthstart + header_.total_length;
+}
+
+bool RangeListReader::SetRangesBase(uint64_t offset) {
+  // Versions less than 5 don't use ranges base.
+  if (cu_info_->version_ < 5) {
+    return true;
+  }
+  // Length may not be 12 bytes, but if 12 bytes aren't available
+  // at this point, then the header is too short.
+  if (offset + 12 >= cu_info_->size_) {
+    return false;
+  }
+  // The length of this CU's contribution.
+  uint64_t cu_length = reader_->ReadFourBytes(cu_info_->buffer_ + offset);
+  offset += 4;
+  if (cu_length == 0xffffffffUL) {
+    cu_length = reader_->ReadEightBytes(cu_info_->buffer_ + offset);
+    offset += 8;
+  }
+
+  // Truncating size here results in correctly ignoring everything not from
+  // this cu from here on out.
+  cu_info_->size_ = offset + cu_length;
+
+  // Check for the rest of the header in advance.
+  if (offset + 8 >= cu_info_->size_) {
+    return false;
+  }
+  // Version. Can only read version 5.
+  if (reader_->ReadTwoBytes(cu_info_->buffer_ + offset) != 5) {
+    return false;
+  }
+  offset += 2;
+  // Address size
+  if (reader_->ReadOneByte(cu_info_->buffer_ + offset) !=
+      reader_->AddressSize()) {
+    return false;
+  }
+  offset += 1;
+  // Segment selectors are unsupported
+  if (reader_->ReadOneByte(cu_info_->buffer_ + offset) != 0) {
+    return false;
+  }
+  offset += 1;
+  offset_entry_count_ = reader_->ReadFourBytes(cu_info_->buffer_ + offset);
+  offset += 4;
+  offset_array_ = offset;
+  return true;
+}
+
+bool RangeListReader::ReadRanges(enum DwarfForm form, uint64_t data) {
+  if (form == DW_FORM_sec_offset) {
+    if (cu_info_->version_ <= 4) {
+      return ReadDebugRanges(data);
+    } else {
+      return ReadDebugRngList(data);
+    }
+  } else if (form == DW_FORM_rnglistx) {
+    SetRangesBase(cu_info_->ranges_base_);
+    if (data >= offset_entry_count_) {
+      return false;
+    }
+    uint64_t index_offset = reader_->AddressSize() * data;
+    uint64_t range_list_offset =
+        reader_->ReadAddress(cu_info_->buffer_ + offset_array_ + index_offset);
+
+    return ReadDebugRngList(range_list_offset);
+  }
+  return false;
+}
+
+bool RangeListReader::ReadDebugRanges(uint64_t offset) {
+  const uint64_t max_address =
+    (reader_->AddressSize() == 4) ? 0xffffffffUL
+                                  : 0xffffffffffffffffULL;
+  const uint64_t entry_size = reader_->AddressSize() * 2;
+  bool list_end = false;
+
+  do {
+    if (offset > cu_info_->size_ - entry_size) {
+      return false; // Invalid range detected
+    }
+
+    uint64_t start_address = reader_->ReadAddress(cu_info_->buffer_ + offset);
+    uint64_t end_address = reader_->ReadAddress(
+        cu_info_->buffer_ + offset + reader_->AddressSize());
+
+    if (start_address == max_address) { // Base address selection
+      cu_info_->base_address_ = end_address;
+    } else if (start_address == 0 && end_address == 0) { // End-of-list
+      handler_->Finish();
+      list_end = true;
+    } else { // Add a range entry
+      handler_->AddRange(start_address + cu_info_->base_address_,
+                         end_address + cu_info_->base_address_);
+    }
+
+    offset += entry_size;
+  } while (!list_end);
+
+  return true;
+}
+
+bool RangeListReader::ReadDebugRngList(uint64_t offset) {
+  uint64_t start = 0;
+  uint64_t end = 0;
+  uint64_t range_len = 0;
+  uint64_t index = 0;
+  // A uleb128's length isn't known until after it has been read, so overruns
+  // are only caught after an entire entry.
+  while (offset < cu_info_->size_) {
+    uint8_t entry_type = reader_->ReadOneByte(cu_info_->buffer_ + offset);
+    offset += 1;
+    // Handle each entry type per Dwarf 5 Standard, section 2.17.3.
+    switch (entry_type) {
+      case DW_RLE_end_of_list:
+        handler_->Finish();
+        return true;
+      case DW_RLE_base_addressx:
+        offset += ReadULEB(offset, &index);
+        cu_info_->base_address_ = GetAddressAtIndex(index);
+        break;
+      case DW_RLE_startx_endx:
+        offset += ReadULEB(offset, &index);
+        start = GetAddressAtIndex(index);
+        offset += ReadULEB(offset, &index);
+        end = GetAddressAtIndex(index);
+        handler_->AddRange(start, end);
+        break;
+      case DW_RLE_startx_length:
+        offset += ReadULEB(offset, &index);
+        start = GetAddressAtIndex(index);
+        offset += ReadULEB(offset, &range_len);
+        handler_->AddRange(start, start + range_len);
+        break;
+      case DW_RLE_offset_pair:
+        offset += ReadULEB(offset, &start);
+        offset += ReadULEB(offset, &end);
+        handler_->AddRange(start + cu_info_->base_address_,
+                           end + cu_info_->base_address_);
+        break;
+      case DW_RLE_base_address:
+        offset += ReadAddress(offset, &cu_info_->base_address_);
+        break;
+      case DW_RLE_start_end:
+        offset += ReadAddress(offset, &start);
+        offset += ReadAddress(offset, &end);
+        handler_->AddRange(start, end);
+        break;
+      case DW_RLE_start_length:
+        offset += ReadAddress(offset, &start);
+        offset += ReadULEB(offset, &end);
+        handler_->AddRange(start, start + end);
+        break;
+    }
+  }
+  return false;
+}
+
+// A DWARF rule for recovering the address or value of a register, or
+// computing the canonical frame address. There is one subclass of this for
+// each '*Rule' member function in CallFrameInfo::Handler.
+//
+// It's annoying that we have to handle Rules using pointers (because
+// the concrete instances can have an arbitrary size). They're small,
+// so it would be much nicer if we could just handle them by value
+// instead of fretting about ownership and destruction.
+//
+// It seems like all these could simply be instances of std::tr1::bind,
+// except that we need instances to be EqualityComparable, too.
+//
+// This could logically be nested within State, but then the qualified names
+// get horrendous.
+class CallFrameInfo::Rule {
+ public:
+  virtual ~Rule() { }
+
+  // Tell HANDLER that, at ADDRESS in the program, REG can be recovered using
+  // this rule. If REG is kCFARegister, then this rule describes how to compute
+  // the canonical frame address. Return what the HANDLER member function
+  // returned.
+  virtual bool Handle(Handler* handler,
+                      uint64_t address, int reg) const = 0;
+
+  // Equality on rules. We use these to decide which rules we need
+  // to report after a DW_CFA_restore_state instruction.
+  virtual bool operator==(const Rule& rhs) const = 0;
+
+  bool operator!=(const Rule& rhs) const { return ! (*this == rhs); }
+
+  // Return a pointer to a copy of this rule.
+  virtual Rule* Copy() const = 0;
+
+  // If this is a base+offset rule, change its base register to REG.
+  // Otherwise, do nothing. (Ugly, but required for DW_CFA_def_cfa_register.)
+  virtual void SetBaseRegister(unsigned reg) { }
+
+  // If this is a base+offset rule, change its offset to OFFSET. Otherwise,
+  // do nothing. (Ugly, but required for DW_CFA_def_cfa_offset.)
+  virtual void SetOffset(long long offset) { }
+};
+
+// Rule: the value the register had in the caller cannot be recovered.
+class CallFrameInfo::UndefinedRule: public CallFrameInfo::Rule {
+ public:
+  UndefinedRule() { }
+  ~UndefinedRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->UndefinedRule(address, reg);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const UndefinedRule* our_rhs = dynamic_cast<const UndefinedRule*>(&rhs);
+    return (our_rhs != NULL);
+  }
+  Rule* Copy() const { return new UndefinedRule(*this); }
+};
+
+// Rule: the register's value is the same as that it had in the caller.
+class CallFrameInfo::SameValueRule: public CallFrameInfo::Rule {
+ public:
+  SameValueRule() { }
+  ~SameValueRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->SameValueRule(address, reg);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const SameValueRule* our_rhs = dynamic_cast<const SameValueRule*>(&rhs);
+    return (our_rhs != NULL);
+  }
+  Rule* Copy() const { return new SameValueRule(*this); }
+};
+
+// Rule: the register is saved at OFFSET from BASE_REGISTER.  BASE_REGISTER
+// may be CallFrameInfo::Handler::kCFARegister.
+class CallFrameInfo::OffsetRule: public CallFrameInfo::Rule {
+ public:
+  OffsetRule(int base_register, long offset)
+      : base_register_(base_register), offset_(offset) { }
+  ~OffsetRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->OffsetRule(address, reg, base_register_, offset_);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const OffsetRule* our_rhs = dynamic_cast<const OffsetRule*>(&rhs);
+    return (our_rhs &&
+            base_register_ == our_rhs->base_register_ &&
+            offset_ == our_rhs->offset_);
+  }
+  Rule* Copy() const { return new OffsetRule(*this); }
+  // We don't actually need SetBaseRegister or SetOffset here, since they
+  // are only ever applied to CFA rules, for DW_CFA_def_cfa_offset, and it
+  // doesn't make sense to use OffsetRule for computing the CFA: it
+  // computes the address at which a register is saved, not a value.
+ private:
+  int base_register_;
+  long offset_;
+};
+
+// Rule: the value the register had in the caller is the value of
+// BASE_REGISTER plus offset. BASE_REGISTER may be
+// CallFrameInfo::Handler::kCFARegister.
+class CallFrameInfo::ValOffsetRule: public CallFrameInfo::Rule {
+ public:
+  ValOffsetRule(int base_register, long offset)
+      : base_register_(base_register), offset_(offset) { }
+  ~ValOffsetRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->ValOffsetRule(address, reg, base_register_, offset_);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const ValOffsetRule* our_rhs = dynamic_cast<const ValOffsetRule*>(&rhs);
+    return (our_rhs &&
+            base_register_ == our_rhs->base_register_ &&
+            offset_ == our_rhs->offset_);
+  }
+  Rule* Copy() const { return new ValOffsetRule(*this); }
+  void SetBaseRegister(unsigned reg) { base_register_ = reg; }
+  void SetOffset(long long offset) { offset_ = offset; }
+ private:
+  int base_register_;
+  long offset_;
+};
+
+// Rule: the register has been saved in another register REGISTER_NUMBER_.
+class CallFrameInfo::RegisterRule: public CallFrameInfo::Rule {
+ public:
+  explicit RegisterRule(int register_number)
+      : register_number_(register_number) { }
+  ~RegisterRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->RegisterRule(address, reg, register_number_);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const RegisterRule* our_rhs = dynamic_cast<const RegisterRule*>(&rhs);
+    return (our_rhs && register_number_ == our_rhs->register_number_);
+  }
+  Rule* Copy() const { return new RegisterRule(*this); }
+ private:
+  int register_number_;
+};
+
+// Rule: EXPRESSION evaluates to the address at which the register is saved.
+class CallFrameInfo::ExpressionRule: public CallFrameInfo::Rule {
+ public:
+  explicit ExpressionRule(const string& expression)
+      : expression_(expression) { }
+  ~ExpressionRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->ExpressionRule(address, reg, expression_);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const ExpressionRule* our_rhs = dynamic_cast<const ExpressionRule*>(&rhs);
+    return (our_rhs && expression_ == our_rhs->expression_);
+  }
+  Rule* Copy() const { return new ExpressionRule(*this); }
+ private:
+  string expression_;
+};
+
+// Rule: EXPRESSION evaluates to the address at which the register is saved.
+class CallFrameInfo::ValExpressionRule: public CallFrameInfo::Rule {
+ public:
+  explicit ValExpressionRule(const string& expression)
+      : expression_(expression) { }
+  ~ValExpressionRule() { }
+  bool Handle(Handler* handler, uint64_t address, int reg) const {
+    return handler->ValExpressionRule(address, reg, expression_);
+  }
+  bool operator==(const Rule& rhs) const {
+    // dynamic_cast is allowed by the Google C++ Style Guide, if the use has
+    // been carefully considered; cheap RTTI-like workarounds are forbidden.
+    const ValExpressionRule* our_rhs =
+        dynamic_cast<const ValExpressionRule*>(&rhs);
+    return (our_rhs && expression_ == our_rhs->expression_);
+  }
+  Rule* Copy() const { return new ValExpressionRule(*this); }
+ private:
+  string expression_;
+};
+
+// A map from register numbers to rules.
+class CallFrameInfo::RuleMap {
+ public:
+  RuleMap() : cfa_rule_(NULL) { }
+  RuleMap(const RuleMap& rhs) : cfa_rule_(NULL) { *this = rhs; }
+  ~RuleMap() { Clear(); }
+
+  RuleMap& operator=(const RuleMap& rhs);
+
+  // Set the rule for computing the CFA to RULE. Take ownership of RULE.
+  void SetCFARule(Rule* rule) { delete cfa_rule_; cfa_rule_ = rule; }
+
+  // Return the current CFA rule. Unlike RegisterRule, this RuleMap retains
+  // ownership of the rule. We use this for DW_CFA_def_cfa_offset and
+  // DW_CFA_def_cfa_register, and for detecting references to the CFA before
+  // a rule for it has been established.
+  Rule* CFARule() const { return cfa_rule_; }
+
+  // Return the rule for REG, or NULL if there is none. The caller takes
+  // ownership of the result.
+  Rule* RegisterRule(int reg) const;
+
+  // Set the rule for computing REG to RULE. Take ownership of RULE.
+  void SetRegisterRule(int reg, Rule* rule);
+
+  // Make all the appropriate calls to HANDLER as if we were changing from
+  // this RuleMap to NEW_RULES at ADDRESS. We use this to implement
+  // DW_CFA_restore_state, where lots of rules can change simultaneously.
+  // Return true if all handlers returned true; otherwise, return false.
+  bool HandleTransitionTo(Handler* handler, uint64_t address,
+                          const RuleMap& new_rules) const;
+
+ private:
+  // A map from register numbers to Rules.
+  typedef std::map<int, Rule*> RuleByNumber;
+
+  // Remove all register rules and clear cfa_rule_.
+  void Clear();
+
+  // The rule for computing the canonical frame address. This RuleMap owns
+  // this rule.
+  Rule* cfa_rule_;
+
+  // A map from register numbers to postfix expressions to recover
+  // their values. This RuleMap owns the Rules the map refers to.
+  RuleByNumber registers_;
+};
+
+CallFrameInfo::RuleMap& CallFrameInfo::RuleMap::operator=(const RuleMap& rhs) {
+  Clear();
+  // Since each map owns the rules it refers to, assignment must copy them.
+  if (rhs.cfa_rule_) cfa_rule_ = rhs.cfa_rule_->Copy();
+  for (RuleByNumber::const_iterator it = rhs.registers_.begin();
+       it != rhs.registers_.end(); it++)
+    registers_[it->first] = it->second->Copy();
+  return *this;
+}
+
+CallFrameInfo::Rule* CallFrameInfo::RuleMap::RegisterRule(int reg) const {
+  assert(reg != Handler::kCFARegister);
+  RuleByNumber::const_iterator it = registers_.find(reg);
+  if (it != registers_.end())
+    return it->second->Copy();
+  else
+    return NULL;
+}
+
+void CallFrameInfo::RuleMap::SetRegisterRule(int reg, Rule* rule) {
+  assert(reg != Handler::kCFARegister);
+  assert(rule);
+  Rule** slot = &registers_[reg];
+  delete *slot;
+  *slot = rule;
+}
+
+bool CallFrameInfo::RuleMap::HandleTransitionTo(
+    Handler* handler,
+    uint64_t address,
+    const RuleMap& new_rules) const {
+  // Transition from cfa_rule_ to new_rules.cfa_rule_.
+  if (cfa_rule_ && new_rules.cfa_rule_) {
+    if (*cfa_rule_ != *new_rules.cfa_rule_ &&
+        !new_rules.cfa_rule_->Handle(handler, address,
+                                     Handler::kCFARegister))
+      return false;
+  } else if (cfa_rule_) {
+    // this RuleMap has a CFA rule but new_rules doesn't.
+    // CallFrameInfo::Handler has no way to handle this --- and shouldn't;
+    // it's garbage input. The instruction interpreter should have
+    // detected this and warned, so take no action here.
+  } else if (new_rules.cfa_rule_) {
+    // This shouldn't be possible: NEW_RULES is some prior state, and
+    // there's no way to remove entries.
+    assert(0);
+  } else {
+    // Both CFA rules are empty.  No action needed.
+  }
+
+  // Traverse the two maps in order by register number, and report
+  // whatever differences we find.
+  RuleByNumber::const_iterator old_it = registers_.begin();
+  RuleByNumber::const_iterator new_it = new_rules.registers_.begin();
+  while (old_it != registers_.end() && new_it != new_rules.registers_.end()) {
+    if (old_it->first < new_it->first) {
+      // This RuleMap has an entry for old_it->first, but NEW_RULES
+      // doesn't.
+      //
+      // This isn't really the right thing to do, but since CFI generally
+      // only mentions callee-saves registers, and GCC's convention for
+      // callee-saves registers is that they are unchanged, it's a good
+      // approximation.
+      if (!handler->SameValueRule(address, old_it->first))
+        return false;
+      old_it++;
+    } else if (old_it->first > new_it->first) {
+      // NEW_RULES has entry for new_it->first, but this RuleMap
+      // doesn't. This shouldn't be possible: NEW_RULES is some prior
+      // state, and there's no way to remove entries.
+      assert(0);
+    } else {
+      // Both maps have an entry for this register. Report the new
+      // rule if it is different.
+      if (*old_it->second != *new_it->second &&
+          !new_it->second->Handle(handler, address, new_it->first))
+        return false;
+      new_it++, old_it++;
+    }
+  }
+  // Finish off entries from this RuleMap with no counterparts in new_rules.
+  while (old_it != registers_.end()) {
+    if (!handler->SameValueRule(address, old_it->first))
+      return false;
+    old_it++;
+  }
+  // Since we only make transitions from a rule set to some previously
+  // saved rule set, and we can only add rules to the map, NEW_RULES
+  // must have fewer rules than *this.
+  assert(new_it == new_rules.registers_.end());
+
+  return true;
+}
+
+// Remove all register rules and clear cfa_rule_.
+void CallFrameInfo::RuleMap::Clear() {
+  delete cfa_rule_;
+  cfa_rule_ = NULL;
+  for (RuleByNumber::iterator it = registers_.begin();
+       it != registers_.end(); it++)
+    delete it->second;
+  registers_.clear();
+}
+
+// The state of the call frame information interpreter as it processes
+// instructions from a CIE and FDE.
+class CallFrameInfo::State {
+ public:
+  // Create a call frame information interpreter state with the given
+  // reporter, reader, handler, and initial call frame info address.
+  State(ByteReader* reader, Handler* handler, Reporter* reporter,
+        uint64_t address)
+      : reader_(reader), handler_(handler), reporter_(reporter),
+        address_(address), entry_(NULL), cursor_(NULL) { }
+
+  // Interpret instructions from CIE, save the resulting rule set for
+  // DW_CFA_restore instructions, and return true. On error, report
+  // the problem to reporter_ and return false.
+  bool InterpretCIE(const CIE& cie);
+
+  // Interpret instructions from FDE, and return true. On error,
+  // report the problem to reporter_ and return false.
+  bool InterpretFDE(const FDE& fde);
+
+ private:  
+  // The operands of a CFI instruction, for ParseOperands.
+  struct Operands {
+    unsigned register_number;  // A register number.
+    uint64_t offset;             // An offset or address.
+    long signed_offset;        // A signed offset.
+    string expression;         // A DWARF expression.
+  };
+
+  // Parse CFI instruction operands from STATE's instruction stream as
+  // described by FORMAT. On success, populate OPERANDS with the
+  // results, and return true. On failure, report the problem and
+  // return false.
+  //
+  // Each character of FORMAT should be one of the following:
+  //
+  //   'r'  unsigned LEB128 register number (OPERANDS->register_number)
+  //   'o'  unsigned LEB128 offset          (OPERANDS->offset)
+  //   's'  signed LEB128 offset            (OPERANDS->signed_offset)
+  //   'a'  machine-size address            (OPERANDS->offset)
+  //        (If the CIE has a 'z' augmentation string, 'a' uses the
+  //        encoding specified by the 'R' argument.)
+  //   '1'  a one-byte offset               (OPERANDS->offset)
+  //   '2'  a two-byte offset               (OPERANDS->offset)
+  //   '4'  a four-byte offset              (OPERANDS->offset)
+  //   '8'  an eight-byte offset            (OPERANDS->offset)
+  //   'e'  a DW_FORM_block holding a       (OPERANDS->expression)
+  //        DWARF expression
+  bool ParseOperands(const char* format, Operands* operands);
+
+  // Interpret one CFI instruction from STATE's instruction stream, update
+  // STATE, report any rule changes to handler_, and return true. On
+  // failure, report the problem and return false.
+  bool DoInstruction();
+
+  // The following Do* member functions are subroutines of DoInstruction,
+  // factoring out the actual work of operations that have several
+  // different encodings.
+
+  // Set the CFA rule to be the value of BASE_REGISTER plus OFFSET, and
+  // return true. On failure, report and return false. (Used for
+  // DW_CFA_def_cfa and DW_CFA_def_cfa_sf.)
+  bool DoDefCFA(unsigned base_register, long offset);
+
+  // Change the offset of the CFA rule to OFFSET, and return true. On
+  // failure, report and return false. (Subroutine for
+  // DW_CFA_def_cfa_offset and DW_CFA_def_cfa_offset_sf.)
+  bool DoDefCFAOffset(long offset);
+
+  // Specify that REG can be recovered using RULE, and return true. On
+  // failure, report and return false.
+  bool DoRule(unsigned reg, Rule* rule);
+
+  // Specify that REG can be found at OFFSET from the CFA, and return true.
+  // On failure, report and return false. (Subroutine for DW_CFA_offset,
+  // DW_CFA_offset_extended, and DW_CFA_offset_extended_sf.)
+  bool DoOffset(unsigned reg, long offset);
+
+  // Specify that the caller's value for REG is the CFA plus OFFSET,
+  // and return true. On failure, report and return false. (Subroutine
+  // for DW_CFA_val_offset and DW_CFA_val_offset_sf.)
+  bool DoValOffset(unsigned reg, long offset);
+
+  // Restore REG to the rule established in the CIE, and return true. On
+  // failure, report and return false. (Subroutine for DW_CFA_restore and
+  // DW_CFA_restore_extended.)
+  bool DoRestore(unsigned reg);
+
+  // Return the section offset of the instruction at cursor. For use
+  // in error messages.
+  uint64_t CursorOffset() { return entry_->offset + (cursor_ - entry_->start); }
+
+  // Report that entry_ is incomplete, and return false. For brevity.
+  bool ReportIncomplete() {
+    reporter_->Incomplete(entry_->offset, entry_->kind);
+    return false;
+  }
+
+  // For reading multi-byte values with the appropriate endianness.
+  ByteReader* reader_;
+
+  // The handler to which we should report the data we find.
+  Handler* handler_;
+
+  // For reporting problems in the info we're parsing.
+  Reporter* reporter_;
+
+  // The code address to which the next instruction in the stream applies.
+  uint64_t address_;
+
+  // The entry whose instructions we are currently processing. This is
+  // first a CIE, and then an FDE.
+  const Entry* entry_;
+
+  // The next instruction to process.
+  const uint8_t* cursor_;
+
+  // The current set of rules.
+  RuleMap rules_;
+
+  // The set of rules established by the CIE, used by DW_CFA_restore
+  // and DW_CFA_restore_extended. We set this after interpreting the
+  // CIE's instructions.
+  RuleMap cie_rules_;
+
+  // A stack of saved states, for DW_CFA_remember_state and
+  // DW_CFA_restore_state.
+  std::stack<RuleMap> saved_rules_;
+};
+
+bool CallFrameInfo::State::InterpretCIE(const CIE& cie) {
+  entry_ = &cie;
+  cursor_ = entry_->instructions;
+  while (cursor_ < entry_->end)
+    if (!DoInstruction())
+      return false;
+  // Note the rules established by the CIE, for use by DW_CFA_restore
+  // and DW_CFA_restore_extended.
+  cie_rules_ = rules_;
+  return true;
+}
+
+bool CallFrameInfo::State::InterpretFDE(const FDE& fde) {
+  entry_ = &fde;
+  cursor_ = entry_->instructions;
+  while (cursor_ < entry_->end)
+    if (!DoInstruction())
+      return false;
+  return true;
+}
+
+bool CallFrameInfo::State::ParseOperands(const char* format,
+                                         Operands* operands) {
+  size_t len;
+  const char* operand;
+
+  for (operand = format; *operand; operand++) {
+    size_t bytes_left = entry_->end - cursor_;
+    switch (*operand) {
+      case 'r':
+        operands->register_number = reader_->ReadUnsignedLEB128(cursor_, &len);
+        if (len > bytes_left) return ReportIncomplete();
+        cursor_ += len;
+        break;
+
+      case 'o':
+        operands->offset = reader_->ReadUnsignedLEB128(cursor_, &len);
+        if (len > bytes_left) return ReportIncomplete();
+        cursor_ += len;
+        break;
+
+      case 's':
+        operands->signed_offset = reader_->ReadSignedLEB128(cursor_, &len);
+        if (len > bytes_left) return ReportIncomplete();
+        cursor_ += len;
+        break;
+
+      case 'a':
+        operands->offset =
+          reader_->ReadEncodedPointer(cursor_, entry_->cie->pointer_encoding,
+                                      &len);
+        if (len > bytes_left) return ReportIncomplete();
+        cursor_ += len;
+        break;
+
+      case '1':
+        if (1 > bytes_left) return ReportIncomplete();
+        operands->offset = static_cast<unsigned char>(*cursor_++);
+        break;
+
+      case '2':
+        if (2 > bytes_left) return ReportIncomplete();
+        operands->offset = reader_->ReadTwoBytes(cursor_);
+        cursor_ += 2;
+        break;
+
+      case '4':
+        if (4 > bytes_left) return ReportIncomplete();
+        operands->offset = reader_->ReadFourBytes(cursor_);
+        cursor_ += 4;
+        break;
+
+      case '8':
+        if (8 > bytes_left) return ReportIncomplete();
+        operands->offset = reader_->ReadEightBytes(cursor_);
+        cursor_ += 8;
+        break;
+
+      case 'e': {
+        size_t expression_length = reader_->ReadUnsignedLEB128(cursor_, &len);
+        if (len > bytes_left || expression_length > bytes_left - len)
+          return ReportIncomplete();
+        cursor_ += len;
+        operands->expression = string(reinterpret_cast<const char*>(cursor_),
+                                      expression_length);
+        cursor_ += expression_length;
+        break;
+      }
+
+      default:
+          assert(0);
+    }
+  }
+
+  return true;
+}
+
+bool CallFrameInfo::State::DoInstruction() {
+  CIE* cie = entry_->cie;
+  Operands ops;
+
+  // Our entry's kind should have been set by now.
+  assert(entry_->kind != kUnknown);
+
+  // We shouldn't have been invoked unless there were more
+  // instructions to parse.
+  assert(cursor_ < entry_->end);
+
+  unsigned opcode = *cursor_++;
+  if ((opcode & 0xc0) != 0) {
+    switch (opcode & 0xc0) {
+      // Advance the address.
+      case DW_CFA_advance_loc: {
+        size_t code_offset = opcode & 0x3f;
+        address_ += code_offset * cie->code_alignment_factor;
+        break;
+      }
+
+      // Find a register at an offset from the CFA.
+      case DW_CFA_offset:
+        if (!ParseOperands("o", &ops) ||
+            !DoOffset(opcode & 0x3f, ops.offset * cie->data_alignment_factor))
+          return false;
+        break;
+
+      // Restore the rule established for a register by the CIE.
+      case DW_CFA_restore:
+        if (!DoRestore(opcode & 0x3f)) return false;
+        break;
+
+      // The 'if' above should have excluded this possibility.
+      default:
+        assert(0);
+    }
+
+    // Return here, so the big switch below won't be indented.
+    return true;
+  }
+
+  switch (opcode) {
+    // Set the address.
+    case DW_CFA_set_loc:
+      if (!ParseOperands("a", &ops)) return false;
+      address_ = ops.offset;
+      break;
+
+    // Advance the address.
+    case DW_CFA_advance_loc1:
+      if (!ParseOperands("1", &ops)) return false;
+      address_ += ops.offset * cie->code_alignment_factor;
+      break;
+      
+    // Advance the address.
+    case DW_CFA_advance_loc2:
+      if (!ParseOperands("2", &ops)) return false;
+      address_ += ops.offset * cie->code_alignment_factor;
+      break;
+      
+    // Advance the address.
+    case DW_CFA_advance_loc4:
+      if (!ParseOperands("4", &ops)) return false;
+      address_ += ops.offset * cie->code_alignment_factor;
+      break;
+      
+    // Advance the address.
+    case DW_CFA_MIPS_advance_loc8:
+      if (!ParseOperands("8", &ops)) return false;
+      address_ += ops.offset * cie->code_alignment_factor;
+      break;
+
+    // Compute the CFA by adding an offset to a register.
+    case DW_CFA_def_cfa:
+      if (!ParseOperands("ro", &ops) ||
+          !DoDefCFA(ops.register_number, ops.offset))
+        return false;
+      break;
+
+    // Compute the CFA by adding an offset to a register.
+    case DW_CFA_def_cfa_sf:
+      if (!ParseOperands("rs", &ops) ||
+          !DoDefCFA(ops.register_number,
+                    ops.signed_offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // Change the base register used to compute the CFA.
+    case DW_CFA_def_cfa_register: {
+      if (!ParseOperands("r", &ops)) return false;
+      Rule* cfa_rule = rules_.CFARule();
+      if (!cfa_rule) {
+        if (!DoDefCFA(ops.register_number, ops.offset)) {
+          reporter_->NoCFARule(entry_->offset, entry_->kind, CursorOffset());
+          return false;
+        }
+      } else {
+        cfa_rule->SetBaseRegister(ops.register_number);
+        if (!cfa_rule->Handle(handler_, address_,
+                              Handler::kCFARegister))
+        return false;
+      }
+      break;
+    }
+
+    // Change the offset used to compute the CFA.
+    case DW_CFA_def_cfa_offset:
+      if (!ParseOperands("o", &ops) ||
+          !DoDefCFAOffset(ops.offset))
+        return false;
+      break;
+
+    // Change the offset used to compute the CFA.
+    case DW_CFA_def_cfa_offset_sf:
+      if (!ParseOperands("s", &ops) ||
+          !DoDefCFAOffset(ops.signed_offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // Specify an expression whose value is the CFA.
+    case DW_CFA_def_cfa_expression: {
+      if (!ParseOperands("e", &ops))
+        return false;
+      Rule* rule = new ValExpressionRule(ops.expression);
+      rules_.SetCFARule(rule);
+      if (!rule->Handle(handler_, address_,
+                        Handler::kCFARegister))
+        return false;
+      break;
+    }
+
+    // The register's value cannot be recovered.
+    case DW_CFA_undefined: {
+      if (!ParseOperands("r", &ops) ||
+          !DoRule(ops.register_number, new UndefinedRule()))
+        return false;
+      break;
+    }
+
+    // The register's value is unchanged from its value in the caller.
+    case DW_CFA_same_value: {
+      if (!ParseOperands("r", &ops) ||
+          !DoRule(ops.register_number, new SameValueRule()))
+        return false;
+      break;
+    }
+
+    // Find a register at an offset from the CFA.
+    case DW_CFA_offset_extended:
+      if (!ParseOperands("ro", &ops) ||
+          !DoOffset(ops.register_number,
+                    ops.offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // The register is saved at an offset from the CFA.
+    case DW_CFA_offset_extended_sf:
+      if (!ParseOperands("rs", &ops) ||
+          !DoOffset(ops.register_number,
+                    ops.signed_offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // The register is saved at an offset from the CFA.
+    case DW_CFA_GNU_negative_offset_extended:
+      if (!ParseOperands("ro", &ops) ||
+          !DoOffset(ops.register_number,
+                    -ops.offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // The register's value is the sum of the CFA plus an offset.
+    case DW_CFA_val_offset:
+      if (!ParseOperands("ro", &ops) ||
+          !DoValOffset(ops.register_number,
+                       ops.offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // The register's value is the sum of the CFA plus an offset.
+    case DW_CFA_val_offset_sf:
+      if (!ParseOperands("rs", &ops) ||
+          !DoValOffset(ops.register_number,
+                       ops.signed_offset * cie->data_alignment_factor))
+        return false;
+      break;
+
+    // The register has been saved in another register.
+    case DW_CFA_register: {
+      if (!ParseOperands("ro", &ops) ||
+          !DoRule(ops.register_number, new RegisterRule(ops.offset)))
+        return false;
+      break;
+    }
+
+    // An expression yields the address at which the register is saved.
+    case DW_CFA_expression: {
+      if (!ParseOperands("re", &ops) ||
+          !DoRule(ops.register_number, new ExpressionRule(ops.expression)))
+        return false;
+      break;
+    }
+
+    // An expression yields the caller's value for the register.
+    case DW_CFA_val_expression: {
+      if (!ParseOperands("re", &ops) ||
+          !DoRule(ops.register_number, new ValExpressionRule(ops.expression)))
+        return false;
+      break;
+    }
+
+    // Restore the rule established for a register by the CIE.
+    case DW_CFA_restore_extended:
+      if (!ParseOperands("r", &ops) ||
+          !DoRestore( ops.register_number))
+        return false;
+      break;
+
+    // Save the current set of rules on a stack.
+    case DW_CFA_remember_state:
+      saved_rules_.push(rules_);
+      break;
+
+    // Pop the current set of rules off the stack.
+    case DW_CFA_restore_state: {
+      if (saved_rules_.empty()) {
+        reporter_->EmptyStateStack(entry_->offset, entry_->kind,
+                                   CursorOffset());
+        return false;
+      }
+      const RuleMap& new_rules = saved_rules_.top();
+      if (rules_.CFARule() && !new_rules.CFARule()) {
+        reporter_->ClearingCFARule(entry_->offset, entry_->kind,
+                                   CursorOffset());
+        return false;
+      }
+      rules_.HandleTransitionTo(handler_, address_, new_rules);
+      rules_ = new_rules;
+      saved_rules_.pop();
+      break;
+    }
+
+    // No operation.  (Padding instruction.)
+    case DW_CFA_nop:
+      break;
+
+    // A SPARC register window save: Registers 8 through 15 (%o0-%o7)
+    // are saved in registers 24 through 31 (%i0-%i7), and registers
+    // 16 through 31 (%l0-%l7 and %i0-%i7) are saved at CFA offsets
+    // (0-15 * the register size). The register numbers must be
+    // hard-coded. A GNU extension, and not a pretty one.
+    case DW_CFA_GNU_window_save: {
+      // Save %o0-%o7 in %i0-%i7.
+      for (int i = 8; i < 16; i++)
+        if (!DoRule(i, new RegisterRule(i + 16)))
+          return false;
+      // Save %l0-%l7 and %i0-%i7 at the CFA.
+      for (int i = 16; i < 32; i++)
+        // Assume that the byte reader's address size is the same as
+        // the architecture's register size. !@#%*^ hilarious.
+        if (!DoRule(i, new OffsetRule(Handler::kCFARegister,
+                                      (i - 16) * reader_->AddressSize())))
+          return false;
+      break;
+    }
+
+    // I'm not sure what this is. GDB doesn't use it for unwinding.
+    case DW_CFA_GNU_args_size:
+      if (!ParseOperands("o", &ops)) return false;
+      break;
+
+    // An opcode we don't recognize.
+    default: {
+      reporter_->BadInstruction(entry_->offset, entry_->kind, CursorOffset());
+      return false;
+    }
+  }
+
+  return true;
+}
+
+bool CallFrameInfo::State::DoDefCFA(unsigned base_register, long offset) {
+  Rule* rule = new ValOffsetRule(base_register, offset);
+  rules_.SetCFARule(rule);
+  return rule->Handle(handler_, address_,
+                      Handler::kCFARegister);
+}
+
+bool CallFrameInfo::State::DoDefCFAOffset(long offset) {
+  Rule* cfa_rule = rules_.CFARule();
+  if (!cfa_rule) {
+    reporter_->NoCFARule(entry_->offset, entry_->kind, CursorOffset());
+    return false;
+  }
+  cfa_rule->SetOffset(offset);
+  return cfa_rule->Handle(handler_, address_,
+                          Handler::kCFARegister);
+}
+
+bool CallFrameInfo::State::DoRule(unsigned reg, Rule* rule) {
+  rules_.SetRegisterRule(reg, rule);
+  return rule->Handle(handler_, address_, reg);
+}
+
+bool CallFrameInfo::State::DoOffset(unsigned reg, long offset) {
+  if (!rules_.CFARule()) {
+    reporter_->NoCFARule(entry_->offset, entry_->kind, CursorOffset());
+    return false;
+  }
+  return DoRule(reg,
+                new OffsetRule(Handler::kCFARegister, offset));
+}
+
+bool CallFrameInfo::State::DoValOffset(unsigned reg, long offset) {
+  if (!rules_.CFARule()) {
+    reporter_->NoCFARule(entry_->offset, entry_->kind, CursorOffset());
+    return false;
+  }
+  return DoRule(reg,
+                new ValOffsetRule(Handler::kCFARegister, offset));
+}
+
+bool CallFrameInfo::State::DoRestore(unsigned reg) {
+  // DW_CFA_restore and DW_CFA_restore_extended don't make sense in a CIE.
+  if (entry_->kind == kCIE) {
+    reporter_->RestoreInCIE(entry_->offset, CursorOffset());
+    return false;
+  }
+  Rule* rule = cie_rules_.RegisterRule(reg);
+  if (!rule) {
+    // This isn't really the right thing to do, but since CFI generally
+    // only mentions callee-saves registers, and GCC's convention for
+    // callee-saves registers is that they are unchanged, it's a good
+    // approximation.
+    rule = new SameValueRule();
+  }
+  return DoRule(reg, rule);
+}
+
+bool CallFrameInfo::ReadEntryPrologue(const uint8_t* cursor, Entry* entry) {
+  const uint8_t* buffer_end = buffer_ + buffer_length_;
+
+  // Initialize enough of ENTRY for use in error reporting.
+  entry->offset = cursor - buffer_;
+  entry->start = cursor;
+  entry->kind = kUnknown;
+  entry->end = NULL;
+
+  // Read the initial length. This sets reader_'s offset size.
+  size_t length_size;
+  uint64_t length = reader_->ReadInitialLength(cursor, &length_size);
+  if (length_size > size_t(buffer_end - cursor))
+    return ReportIncomplete(entry);
+  cursor += length_size;
+
+  // In a .eh_frame section, a length of zero marks the end of the series
+  // of entries.
+  if (length == 0 && eh_frame_) {
+    entry->kind = kTerminator;
+    entry->end = cursor;
+    return true;
+  }
+
+  // Validate the length.
+  if (length > size_t(buffer_end - cursor))
+    return ReportIncomplete(entry);
+ 
+  // The length is the number of bytes after the initial length field;
+  // we have that position handy at this point, so compute the end
+  // now. (If we're parsing 64-bit-offset DWARF on a 32-bit machine,
+  // and the length didn't fit in a size_t, we would have rejected it
+  // above.)
+  entry->end = cursor + length;
+
+  // Parse the next field: either the offset of a CIE or a CIE id.
+  size_t offset_size = reader_->OffsetSize();
+  if (offset_size > size_t(entry->end - cursor)) return ReportIncomplete(entry);
+  entry->id = reader_->ReadOffset(cursor);
+
+  // Don't advance cursor past id field yet; in .eh_frame data we need
+  // the id's position to compute the section offset of an FDE's CIE.
+
+  // Now we can decide what kind of entry this is.
+  if (eh_frame_) {
+    // In .eh_frame data, an ID of zero marks the entry as a CIE, and
+    // anything else is an offset from the id field of the FDE to the start
+    // of the CIE.
+    if (entry->id == 0) {
+      entry->kind = kCIE;
+    } else {
+      entry->kind = kFDE;
+      // Turn the offset from the id into an offset from the buffer's start.
+      entry->id = (cursor - buffer_) - entry->id;
+    }
+  } else {
+    // In DWARF CFI data, an ID of ~0 (of the appropriate width, given the
+    // offset size for the entry) marks the entry as a CIE, and anything
+    // else is the offset of the CIE from the beginning of the section.
+    if (offset_size == 4)
+      entry->kind = (entry->id == 0xffffffff) ? kCIE : kFDE;
+    else {
+      assert(offset_size == 8);
+      entry->kind = (entry->id == 0xffffffffffffffffULL) ? kCIE : kFDE;
+    }
+  }
+
+  // Now advance cursor past the id.
+   cursor += offset_size;
+ 
+  // The fields specific to this kind of entry start here.
+  entry->fields = cursor;
+
+  entry->cie = NULL;
+
+  return true;
+}
+
+bool CallFrameInfo::ReadCIEFields(CIE* cie) {
+  const uint8_t* cursor = cie->fields;
+  size_t len;
+
+  assert(cie->kind == kCIE);
+
+  // Prepare for early exit.
+  cie->version = 0;
+  cie->augmentation.clear();
+  cie->code_alignment_factor = 0;
+  cie->data_alignment_factor = 0;
+  cie->return_address_register = 0;
+  cie->has_z_augmentation = false;
+  cie->pointer_encoding = DW_EH_PE_absptr;
+  cie->instructions = 0;
+
+  // Parse the version number.
+  if (cie->end - cursor < 1)
+    return ReportIncomplete(cie);
+  cie->version = reader_->ReadOneByte(cursor);
+  cursor++;
+
+  // If we don't recognize the version, we can't parse any more fields of the
+  // CIE. For DWARF CFI, we handle versions 1 through 4 (there was never a
+  // version 2 of CFI data). For .eh_frame, we handle versions 1 and 4 as well;
+  // the difference between those versions seems to be the same as for
+  // .debug_frame.
+  if (cie->version < 1 || cie->version > 4) {
+    reporter_->UnrecognizedVersion(cie->offset, cie->version);
+    return false;
+  }
+
+  const uint8_t* augmentation_start = cursor;
+  const uint8_t* augmentation_end =
+      reinterpret_cast<const uint8_t*>(memchr(augmentation_start, '\0',
+                                               cie->end - augmentation_start));
+  if (! augmentation_end) return ReportIncomplete(cie);
+  cursor = augmentation_end;
+  cie->augmentation = string(reinterpret_cast<const char*>(augmentation_start),
+                             cursor - augmentation_start);
+  // Skip the terminating '\0'.
+  cursor++;
+
+  // Is this CFI augmented?
+  if (!cie->augmentation.empty()) {
+    // Is it an augmentation we recognize?
+    if (cie->augmentation[0] == DW_Z_augmentation_start) {
+      // Linux C++ ABI 'z' augmentation, used for exception handling data.
+      cie->has_z_augmentation = true;
+    } else {
+      // Not an augmentation we recognize. Augmentations can have arbitrary
+      // effects on the form of rest of the content, so we have to give up.
+      reporter_->UnrecognizedAugmentation(cie->offset, cie->augmentation);
+      return false;
+    }
+  }
+
+  if (cie->version >= 4) {
+    cie->address_size = *cursor++;
+    if (cie->address_size != 8 && cie->address_size != 4) {
+      reporter_->UnexpectedAddressSize(cie->offset, cie->address_size);
+      return false;
+    }
+
+    cie->segment_size = *cursor++;
+    if (cie->segment_size != 0) {
+      reporter_->UnexpectedSegmentSize(cie->offset, cie->segment_size);
+      return false;
+    }
+  }
+
+  // Parse the code alignment factor.
+  cie->code_alignment_factor = reader_->ReadUnsignedLEB128(cursor, &len);
+  if (size_t(cie->end - cursor) < len) return ReportIncomplete(cie);
+  cursor += len;
+
+  // Parse the data alignment factor.
+  cie->data_alignment_factor = reader_->ReadSignedLEB128(cursor, &len);
+  if (size_t(cie->end - cursor) < len) return ReportIncomplete(cie);
+  cursor += len;
+
+  // Parse the return address register. This is a ubyte in version 1, and
+  // a ULEB128 in version 3.
+  if (cie->version == 1) {
+    if (cursor >= cie->end) return ReportIncomplete(cie);
+    cie->return_address_register = uint8_t(*cursor++);
+  } else {
+    cie->return_address_register = reader_->ReadUnsignedLEB128(cursor, &len);
+    if (size_t(cie->end - cursor) < len) return ReportIncomplete(cie);
+    cursor += len;
+  }
+
+  // If we have a 'z' augmentation string, find the augmentation data and
+  // use the augmentation string to parse it.
+  if (cie->has_z_augmentation) {
+    uint64_t data_size = reader_->ReadUnsignedLEB128(cursor, &len);
+    if (size_t(cie->end - cursor) < len + data_size)
+      return ReportIncomplete(cie);
+    cursor += len;
+    const uint8_t* data = cursor;
+    cursor += data_size;
+    const uint8_t* data_end = cursor;
+
+    cie->has_z_lsda = false;
+    cie->has_z_personality = false;
+    cie->has_z_signal_frame = false;
+
+    // Walk the augmentation string, and extract values from the
+    // augmentation data as the string directs.
+    for (size_t i = 1; i < cie->augmentation.size(); i++) {
+      switch (cie->augmentation[i]) {
+        case DW_Z_has_LSDA:
+          // The CIE's augmentation data holds the language-specific data
+          // area pointer's encoding, and the FDE's augmentation data holds
+          // the pointer itself.
+          cie->has_z_lsda = true;
+          // Fetch the LSDA encoding from the augmentation data.
+          if (data >= data_end) return ReportIncomplete(cie);
+          cie->lsda_encoding = DwarfPointerEncoding(*data++);
+          if (!reader_->ValidEncoding(cie->lsda_encoding)) {
+            reporter_->InvalidPointerEncoding(cie->offset, cie->lsda_encoding);
+            return false;
+          }
+          // Don't check if the encoding is usable here --- we haven't
+          // read the FDE's fields yet, so we're not prepared for
+          // DW_EH_PE_funcrel, although that's a fine encoding for the
+          // LSDA to use, since it appears in the FDE.
+          break;
+
+        case DW_Z_has_personality_routine:
+          // The CIE's augmentation data holds the personality routine
+          // pointer's encoding, followed by the pointer itself.
+          cie->has_z_personality = true;
+          // Fetch the personality routine pointer's encoding from the
+          // augmentation data.
+          if (data >= data_end) return ReportIncomplete(cie);
+          cie->personality_encoding = DwarfPointerEncoding(*data++);
+          if (!reader_->ValidEncoding(cie->personality_encoding)) {
+            reporter_->InvalidPointerEncoding(cie->offset,
+                                              cie->personality_encoding);
+            return false;
+          }
+          if (!reader_->UsableEncoding(cie->personality_encoding)) {
+            reporter_->UnusablePointerEncoding(cie->offset,
+                                               cie->personality_encoding);
+            return false;
+          }
+          // Fetch the personality routine's pointer itself from the data.
+          cie->personality_address =
+            reader_->ReadEncodedPointer(data, cie->personality_encoding,
+                                        &len);
+          if (len > size_t(data_end - data))
+            return ReportIncomplete(cie);
+          data += len;
+          break;
+
+        case DW_Z_has_FDE_address_encoding:
+          // The CIE's augmentation data holds the pointer encoding to use
+          // for addresses in the FDE.
+          if (data >= data_end) return ReportIncomplete(cie);
+          cie->pointer_encoding = DwarfPointerEncoding(*data++);
+          if (!reader_->ValidEncoding(cie->pointer_encoding)) {
+            reporter_->InvalidPointerEncoding(cie->offset,
+                                              cie->pointer_encoding);
+            return false;
+          }
+          if (!reader_->UsableEncoding(cie->pointer_encoding)) {
+            reporter_->UnusablePointerEncoding(cie->offset,
+                                               cie->pointer_encoding);
+            return false;
+          }
+          break;
+
+        case DW_Z_is_signal_trampoline:
+          // Frames using this CIE are signal delivery frames.
+          cie->has_z_signal_frame = true;
+          break;
+
+        default:
+          // An augmentation we don't recognize.
+          reporter_->UnrecognizedAugmentation(cie->offset, cie->augmentation);
+          return false;
+      }
+    }
+  }
+
+  // The CIE's instructions start here.
+  cie->instructions = cursor;
+
+  return true;
+}
+
+bool CallFrameInfo::ReadFDEFields(FDE* fde) {
+  const uint8_t* cursor = fde->fields;
+  size_t size;
+
+  fde->address = reader_->ReadEncodedPointer(cursor, fde->cie->pointer_encoding,
+                                             &size);
+  if (size > size_t(fde->end - cursor))
+    return ReportIncomplete(fde);
+  cursor += size;
+  reader_->SetFunctionBase(fde->address);
+
+  // For the length, we strip off the upper nybble of the encoding used for
+  // the starting address.
+  DwarfPointerEncoding length_encoding =
+    DwarfPointerEncoding(fde->cie->pointer_encoding & 0x0f);
+  fde->size = reader_->ReadEncodedPointer(cursor, length_encoding, &size);
+  if (size > size_t(fde->end - cursor))
+    return ReportIncomplete(fde);
+  cursor += size;
+
+  // If the CIE has a 'z' augmentation string, then augmentation data
+  // appears here.
+  if (fde->cie->has_z_augmentation) {
+    uint64_t data_size = reader_->ReadUnsignedLEB128(cursor, &size);
+    if (size_t(fde->end - cursor) < size + data_size)
+      return ReportIncomplete(fde);
+    cursor += size;
+    
+    // In the abstract, we should walk the augmentation string, and extract
+    // items from the FDE's augmentation data as we encounter augmentation
+    // string characters that specify their presence: the ordering of items
+    // in the augmentation string determines the arrangement of values in
+    // the augmentation data.
+    //
+    // In practice, there's only ever one value in FDE augmentation data
+    // that we support --- the LSDA pointer --- and we have to bail if we
+    // see any unrecognized augmentation string characters. So if there is
+    // anything here at all, we know what it is, and where it starts.
+    if (fde->cie->has_z_lsda) {
+      // Check whether the LSDA's pointer encoding is usable now: only once
+      // we've parsed the FDE's starting address do we call reader_->
+      // SetFunctionBase, so that the DW_EH_PE_funcrel encoding becomes
+      // usable.
+      if (!reader_->UsableEncoding(fde->cie->lsda_encoding)) {
+        reporter_->UnusablePointerEncoding(fde->cie->offset,
+                                           fde->cie->lsda_encoding);
+        return false;
+      }
+
+      fde->lsda_address =
+        reader_->ReadEncodedPointer(cursor, fde->cie->lsda_encoding, &size);
+      if (size > data_size)
+        return ReportIncomplete(fde);
+      // Ideally, we would also complain here if there were unconsumed
+      // augmentation data.
+    }
+
+    cursor += data_size;
+  }
+
+  // The FDE's instructions start after those.
+  fde->instructions = cursor;
+
+  return true;
+}
+  
+bool CallFrameInfo::Start() {
+  const uint8_t* buffer_end = buffer_ + buffer_length_;
+  const uint8_t* cursor;
+  bool all_ok = true;
+  const uint8_t* entry_end;
+  bool ok;
+
+  // Traverse all the entries in buffer_, skipping CIEs and offering
+  // FDEs to the handler.
+  for (cursor = buffer_; cursor < buffer_end;
+       cursor = entry_end, all_ok = all_ok && ok) {
+    FDE fde;
+
+    // Make it easy to skip this entry with 'continue': assume that
+    // things are not okay until we've checked all the data, and
+    // prepare the address of the next entry.
+    ok = false;
+
+    // Read the entry's prologue.
+    if (!ReadEntryPrologue(cursor, &fde)) {
+      if (!fde.end) {
+        // If we couldn't even figure out this entry's extent, then we
+        // must stop processing entries altogether.
+        all_ok = false;
+        break;
+      }
+      entry_end = fde.end;
+      continue;
+    }
+
+    // The next iteration picks up after this entry.
+    entry_end = fde.end;
+
+    // Did we see an .eh_frame terminating mark?
+    if (fde.kind == kTerminator) {
+      // If there appears to be more data left in the section after the
+      // terminating mark, warn the user. But this is just a warning;
+      // we leave all_ok true.
+      if (fde.end < buffer_end) reporter_->EarlyEHTerminator(fde.offset);
+      break;
+    }
+
+    // In this loop, we skip CIEs. We only parse them fully when we
+    // parse an FDE that refers to them. This limits our memory
+    // consumption (beyond the buffer itself) to that needed to
+    // process the largest single entry.
+    if (fde.kind != kFDE) {
+      ok = true;
+      continue;
+    }
+
+    // Validate the CIE pointer.
+    if (fde.id > buffer_length_) {
+      reporter_->CIEPointerOutOfRange(fde.offset, fde.id);
+      continue;
+    }
+      
+    CIE cie;
+
+    // Parse this FDE's CIE header.
+    if (!ReadEntryPrologue(buffer_ + fde.id, &cie))
+      continue;
+    // This had better be an actual CIE.
+    if (cie.kind != kCIE) {
+      reporter_->BadCIEId(fde.offset, fde.id);
+      continue;
+    }
+    if (!ReadCIEFields(&cie))
+      continue;
+
+    // TODO(nbilling): This could lead to strange behavior if a single buffer
+    // contained a mixture of DWARF versions as well as address sizes. Not
+    // sure if it's worth handling such a case.
+
+    // DWARF4 CIE specifies address_size, so use it for this call frame.
+    if (cie.version >= 4) {
+      reader_->SetAddressSize(cie.address_size);
+    }
+
+    // We now have the values that govern both the CIE and the FDE.
+    cie.cie = &cie;
+    fde.cie = &cie;
+
+    // Parse the FDE's header.
+    if (!ReadFDEFields(&fde))
+      continue;
+
+    // Call Entry to ask the consumer if they're interested.
+    if (!handler_->Entry(fde.offset, fde.address, fde.size,
+                         cie.version, cie.augmentation,
+                         cie.return_address_register)) {
+      // The handler isn't interested in this entry. That's not an error.
+      ok = true;
+      continue;
+    }
+                         
+    if (cie.has_z_augmentation) {
+      // Report the personality routine address, if we have one.
+      if (cie.has_z_personality) {
+        if (!handler_
+            ->PersonalityRoutine(cie.personality_address,
+                                 IsIndirectEncoding(cie.personality_encoding)))
+          continue;
+      }
+
+      // Report the language-specific data area address, if we have one.
+      if (cie.has_z_lsda) {
+        if (!handler_
+            ->LanguageSpecificDataArea(fde.lsda_address,
+                                       IsIndirectEncoding(cie.lsda_encoding)))
+          continue;
+      }
+
+      // If this is a signal-handling frame, report that.
+      if (cie.has_z_signal_frame) {
+        if (!handler_->SignalHandler())
+          continue;
+      }
+    }
+
+    // Interpret the CIE's instructions, and then the FDE's instructions.
+    State state(reader_, handler_, reporter_, fde.address);
+    ok = state.InterpretCIE(cie) && state.InterpretFDE(fde);
+
+    // Tell the ByteReader that the function start address from the
+    // FDE header is no longer valid.
+    reader_->ClearFunctionBase();
+
+    // Report the end of the entry.
+    handler_->End();
+  }
+
+  return all_ok;
+}
+
+const char* CallFrameInfo::KindName(EntryKind kind) {
+  if (kind == CallFrameInfo::kUnknown)
+    return "entry";
+  else if (kind == CallFrameInfo::kCIE)
+    return "common information entry";
+  else if (kind == CallFrameInfo::kFDE)
+    return "frame description entry";
+  else {
+    assert (kind == CallFrameInfo::kTerminator);
+    return ".eh_frame sequence terminator";
+  }
+}
+
+bool CallFrameInfo::ReportIncomplete(Entry* entry) {
+  reporter_->Incomplete(entry->offset, entry->kind);
+  return false;
+}
+
+void CallFrameInfo::Reporter::Incomplete(uint64_t offset,
+                                         CallFrameInfo::EntryKind kind) {
+  fprintf(stderr,
+          "%s: CFI %s at offset 0x%" PRIx64 " in '%s': entry ends early\n",
+          filename_.c_str(), CallFrameInfo::KindName(kind), offset,
+          section_.c_str());
+}
+
+void CallFrameInfo::Reporter::EarlyEHTerminator(uint64_t offset) {
+  fprintf(stderr,
+          "%s: CFI at offset 0x%" PRIx64 " in '%s': saw end-of-data marker"
+          " before end of section contents\n",
+          filename_.c_str(), offset, section_.c_str());
+}
+
+void CallFrameInfo::Reporter::CIEPointerOutOfRange(uint64_t offset,
+                                                   uint64_t cie_offset) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE pointer is out of range: 0x%" PRIx64 "\n",
+          filename_.c_str(), offset, section_.c_str(), cie_offset);
+}
+
+void CallFrameInfo::Reporter::BadCIEId(uint64_t offset, uint64_t cie_offset) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE pointer does not point to a CIE: 0x%" PRIx64 "\n",
+          filename_.c_str(), offset, section_.c_str(), cie_offset);
+}
+
+void CallFrameInfo::Reporter::UnexpectedAddressSize(uint64_t offset,
+                                                    uint8_t address_size) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE specifies unexpected address size: %d\n",
+          filename_.c_str(), offset, section_.c_str(), address_size);
+}
+
+void CallFrameInfo::Reporter::UnexpectedSegmentSize(uint64_t offset,
+                                                    uint8_t segment_size) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE specifies unexpected segment size: %d\n",
+          filename_.c_str(), offset, section_.c_str(), segment_size);
+}
+
+void CallFrameInfo::Reporter::UnrecognizedVersion(uint64_t offset, int version) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE specifies unrecognized version: %d\n",
+          filename_.c_str(), offset, section_.c_str(), version);
+}
+
+void CallFrameInfo::Reporter::UnrecognizedAugmentation(uint64_t offset,
+                                                       const string& aug) {
+  fprintf(stderr,
+          "%s: CFI frame description entry at offset 0x%" PRIx64 " in '%s':"
+          " CIE specifies unrecognized augmentation: '%s'\n",
+          filename_.c_str(), offset, section_.c_str(), aug.c_str());
+}
+
+void CallFrameInfo::Reporter::InvalidPointerEncoding(uint64_t offset,
+                                                     uint8_t encoding) {
+  fprintf(stderr,
+          "%s: CFI common information entry at offset 0x%" PRIx64 " in '%s':"
+          " 'z' augmentation specifies invalid pointer encoding: 0x%02x\n",
+          filename_.c_str(), offset, section_.c_str(), encoding);
+}
+
+void CallFrameInfo::Reporter::UnusablePointerEncoding(uint64_t offset,
+                                                      uint8_t encoding) {
+  fprintf(stderr,
+          "%s: CFI common information entry at offset 0x%" PRIx64 " in '%s':"
+          " 'z' augmentation specifies a pointer encoding for which"
+          " we have no base address: 0x%02x\n",
+          filename_.c_str(), offset, section_.c_str(), encoding);
+}
+
+void CallFrameInfo::Reporter::RestoreInCIE(uint64_t offset, uint64_t insn_offset) {
+  fprintf(stderr,
+          "%s: CFI common information entry at offset 0x%" PRIx64 " in '%s':"
+          " the DW_CFA_restore instruction at offset 0x%" PRIx64
+          " cannot be used in a common information entry\n",
+          filename_.c_str(), offset, section_.c_str(), insn_offset);
+}
+
+void CallFrameInfo::Reporter::BadInstruction(uint64_t offset,
+                                             CallFrameInfo::EntryKind kind,
+                                             uint64_t insn_offset) {
+  fprintf(stderr,
+          "%s: CFI %s at offset 0x%" PRIx64 " in section '%s':"
+          " the instruction at offset 0x%" PRIx64 " is unrecognized\n",
+          filename_.c_str(), CallFrameInfo::KindName(kind),
+          offset, section_.c_str(), insn_offset);
+}
+
+void CallFrameInfo::Reporter::NoCFARule(uint64_t offset,
+                                        CallFrameInfo::EntryKind kind,
+                                        uint64_t insn_offset) {
+  fprintf(stderr,
+          "%s: CFI %s at offset 0x%" PRIx64 " in section '%s':"
+          " the instruction at offset 0x%" PRIx64 " assumes that a CFA rule has"
+          " been set, but none has been set\n",
+          filename_.c_str(), CallFrameInfo::KindName(kind), offset,
+          section_.c_str(), insn_offset);
+}
+
+void CallFrameInfo::Reporter::EmptyStateStack(uint64_t offset,
+                                              CallFrameInfo::EntryKind kind,
+                                              uint64_t insn_offset) {
+  fprintf(stderr,
+          "%s: CFI %s at offset 0x%" PRIx64 " in section '%s':"
+          " the DW_CFA_restore_state instruction at offset 0x%" PRIx64
+          " should pop a saved state from the stack, but the stack is empty\n",
+          filename_.c_str(), CallFrameInfo::KindName(kind), offset,
+          section_.c_str(), insn_offset);
+}
+
+void CallFrameInfo::Reporter::ClearingCFARule(uint64_t offset,
+                                              CallFrameInfo::EntryKind kind,
+                                              uint64_t insn_offset) {
+  fprintf(stderr,
+          "%s: CFI %s at offset 0x%" PRIx64 " in section '%s':"
+          " the DW_CFA_restore_state instruction at offset 0x%" PRIx64
+          " would clear the CFA rule in effect\n",
+          filename_.c_str(), CallFrameInfo::KindName(kind), offset,
+          section_.c_str(), insn_offset);
+}
+
+}  // namespace dwarf2reader
diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h
new file mode 100644
index 0000000..7ee80f0
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader.h
@@ -0,0 +1,1480 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// CFI reader author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// This file contains definitions related to the DWARF2/3 reader and
+// it's handler interfaces.
+// The DWARF2/3 specification can be found at
+// http://dwarf.freestandards.org and should be considered required
+// reading if you wish to modify the implementation.
+// Only a cursory attempt is made to explain terminology that is
+// used here, as it is much better explained in the standard documents
+#ifndef COMMON_DWARF_DWARF2READER_H__
+#define COMMON_DWARF_DWARF2READER_H__
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <list>
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
+#include <memory>
+
+#include "common/dwarf/bytereader.h"
+#include "common/dwarf/dwarf2enums.h"
+#include "common/dwarf/types.h"
+#include "common/using_std_string.h"
+#include "common/dwarf/elf_reader.h"
+
+namespace dwarf2reader {
+struct LineStateMachine;
+class Dwarf2Handler;
+class LineInfoHandler;
+class DwpReader;
+
+// This maps from a string naming a section to a pair containing a
+// the data for the section, and the size of the section.
+typedef std::map<string, std::pair<const uint8_t*, uint64_t> > SectionMap;
+
+// Abstract away the difference between elf and mach-o section names.
+// Elf-names use ".section_name, mach-o uses "__section_name".  Pass "name" in
+// the elf form, ".section_name".
+const SectionMap::const_iterator GetSectionByName(const SectionMap&
+                                                  sections, const char* name);
+
+// Most of the time, this struct functions as a simple attribute and form pair.
+// However, Dwarf5 DW_FORM_implicit_const means that a form may have its value
+// in line in the abbrev table, and that value must be associated with the
+// pair until the attr's value is needed.
+struct AttrForm {
+  AttrForm(enum DwarfAttribute attr, enum DwarfForm form, uint64_t value) :
+      attr_(attr), form_(form), value_(value) { }
+
+  enum DwarfAttribute attr_;
+  enum DwarfForm form_;
+  uint64_t value_;
+};
+typedef std::list<AttrForm> AttributeList;
+typedef AttributeList::iterator AttributeIterator;
+typedef AttributeList::const_iterator ConstAttributeIterator;
+
+struct LineInfoHeader {
+  uint64_t total_length;
+  uint16_t version;
+  uint64_t prologue_length;
+  uint8_t min_insn_length; // insn stands for instructin
+  bool default_is_stmt; // stmt stands for statement
+  int8_t line_base;
+  uint8_t line_range;
+  uint8_t opcode_base;
+  // Use a pointer so that signalsafe_addr2line is able to use this structure
+  // without heap allocation problem.
+  std::vector<unsigned char>* std_opcode_lengths;
+};
+
+class LineInfo {
+ public:
+
+  // Initializes a .debug_line reader. Buffer and buffer length point
+  // to the beginning and length of the line information to read.
+  // Reader is a ByteReader class that has the endianness set
+  // properly.
+  LineInfo(const uint8_t* buffer, uint64_t buffer_length,
+           ByteReader* reader, const uint8_t* string_buffer,
+           size_t string_buffer_length, const uint8_t* line_string_buffer,
+           size_t line_string_buffer_length, LineInfoHandler* handler);
+
+  virtual ~LineInfo() {
+    if (header_.std_opcode_lengths) {
+      delete header_.std_opcode_lengths;
+    }
+  }
+
+  // Start processing line info, and calling callbacks in the handler.
+  // Consumes the line number information for a single compilation unit.
+  // Returns the number of bytes processed.
+  uint64_t Start();
+
+  // Process a single line info opcode at START using the state
+  // machine at LSM.  Return true if we should define a line using the
+  // current state of the line state machine.  Place the length of the
+  // opcode in LEN.
+  // If LSM_PASSES_PC is non-NULL, this function also checks if the lsm
+  // passes the address of PC. In other words, LSM_PASSES_PC will be
+  // set to true, if the following condition is met.
+  //
+  // lsm's old address < PC <= lsm's new address
+  static bool ProcessOneOpcode(ByteReader* reader,
+                               LineInfoHandler* handler,
+                               const struct LineInfoHeader& header,
+                               const uint8_t* start,
+                               struct LineStateMachine* lsm,
+                               size_t* len,
+                               uintptr pc,
+                               bool* lsm_passes_pc);
+
+ private:
+  // Reads the DWARF2/3 header for this line info.
+  void ReadHeader();
+
+  // Reads the DWARF2/3 line information
+  void ReadLines();
+
+  // Read the DWARF5 types and forms for the file and directory tables.
+  void ReadTypesAndForms(const uint8_t** lineptr, uint32_t* content_types,
+                         uint32_t* content_forms, uint32_t max_types,
+                         uint32_t* format_count);
+
+  // Read a row from the dwarf5 LineInfo file table.
+  void ReadFileRow(const uint8_t** lineptr, const uint32_t* content_types,
+                   const uint32_t* content_forms, uint32_t row,
+                   uint32_t format_count);
+
+  // Read and return the data at *lineptr according to form. Advance
+  // *lineptr appropriately.
+  uint64_t ReadUnsignedData(uint32_t form, const uint8_t** lineptr);
+
+  // Read and return the data at *lineptr according to form. Advance
+  // *lineptr appropriately.
+  const char* ReadStringForm(uint32_t form, const uint8_t** lineptr);
+
+  // The associated handler to call processing functions in
+  LineInfoHandler* handler_;
+
+  // The associated ByteReader that handles endianness issues for us
+  ByteReader* reader_;
+
+  // A DWARF line info header.  This is not the same size as in the actual file,
+  // as the one in the file may have a 32 bit or 64 bit lengths
+
+  struct LineInfoHeader header_;
+
+  // buffer is the buffer for our line info, starting at exactly where
+  // the line info to read is.  after_header is the place right after
+  // the end of the line information header.
+  const uint8_t* buffer_;
+#ifndef NDEBUG
+  uint64_t buffer_length_;
+#endif
+  // Convenience pointers into .debug_str and .debug_line_str. These exactly
+  // correspond to those in the compilation unit.
+  const uint8_t* string_buffer_;
+#ifndef NDEBUG
+  uint64_t string_buffer_length_;
+#endif
+  const uint8_t* line_string_buffer_;
+#ifndef NDEBUG
+  uint64_t line_string_buffer_length_;
+#endif
+
+  const uint8_t* after_header_;
+};
+
+// This class is the main interface between the line info reader and
+// the client.  The virtual functions inside this get called for
+// interesting events that happen during line info reading.  The
+// default implementation does nothing
+
+class LineInfoHandler {
+ public:
+  LineInfoHandler() { }
+
+  virtual ~LineInfoHandler() { }
+
+  // Called when we define a directory.  NAME is the directory name,
+  // DIR_NUM is the directory number
+  virtual void DefineDir(const string& name, uint32_t dir_num) { }
+
+  // Called when we define a filename. NAME is the filename, FILE_NUM
+  // is the file number which is -1 if the file index is the next
+  // index after the last numbered index (this happens when files are
+  // dynamically defined by the line program), DIR_NUM is the
+  // directory index for the directory name of this file, MOD_TIME is
+  // the modification time of the file, and LENGTH is the length of
+  // the file
+  virtual void DefineFile(const string& name, int32_t file_num,
+                          uint32_t dir_num, uint64_t mod_time,
+                          uint64_t length) { }
+
+  // Called when the line info reader has a new line, address pair
+  // ready for us. ADDRESS is the address of the code, LENGTH is the
+  // length of its machine code in bytes, FILE_NUM is the file number
+  // containing the code, LINE_NUM is the line number in that file for
+  // the code, and COLUMN_NUM is the column number the code starts at,
+  // if we know it (0 otherwise).
+  virtual void AddLine(uint64_t address, uint64_t length,
+                       uint32_t file_num, uint32_t line_num, uint32_t column_num) { }
+};
+
+class RangeListHandler {
+ public:
+  RangeListHandler() { }
+
+  virtual ~RangeListHandler() { }
+
+  // Add a range.
+  virtual void AddRange(uint64_t begin, uint64_t end) { };
+
+  // Finish processing the range list.
+  virtual void Finish() { };
+};
+
+class RangeListReader {
+ public:
+  // Reading a range list requires quite a bit of information
+  // from the compilation unit. Package it conveniently.
+  struct CURangesInfo {
+    CURangesInfo() :
+        version_(0), base_address_(0), ranges_base_(0),
+        buffer_(nullptr), size_(0), addr_buffer_(nullptr),
+        addr_buffer_size_(0), addr_base_(0) { }
+
+    uint16_t version_;
+    // Ranges base address. Ordinarily the CU's low_pc.
+    uint64_t base_address_;
+    // Offset into .debug_rnglists for this CU's rangelists.
+    uint64_t ranges_base_;
+    // Contents of either .debug_ranges or .debug_rnglists.
+    const uint8_t* buffer_;
+    uint64_t size_;
+    // Contents of .debug_addr. This cu's contribution starts at
+    // addr_base_
+    const uint8_t* addr_buffer_;
+    uint64_t addr_buffer_size_;
+    uint64_t addr_base_;
+  };
+
+  RangeListReader(ByteReader* reader, CURangesInfo* cu_info,
+                  RangeListHandler* handler) :
+      reader_(reader), cu_info_(cu_info), handler_(handler),
+      offset_array_(0), offset_entry_count_(0) { }
+
+  // Read ranges from cu_info as specified by form and data.
+  bool ReadRanges(enum DwarfForm form, uint64_t data);
+
+ private:
+  bool SetRangesBase(uint64_t base);
+
+  // Read dwarf4 .debug_ranges at offset.
+  bool ReadDebugRanges(uint64_t offset);
+  // Read dwarf5 .debug_rngslist at offset.
+  bool ReadDebugRngList(uint64_t offset);
+
+  // Convenience functions to handle the mechanics of reading entries in the
+  // ranges section.
+  uint64_t ReadULEB(uint64_t offset, uint64_t* value) {
+    size_t len;
+    *value = reader_->ReadUnsignedLEB128(cu_info_->buffer_ + offset, &len);
+    return len;
+  }
+
+  uint64_t ReadAddress(uint64_t offset, uint64_t* value) {
+    *value = reader_->ReadAddress(cu_info_->buffer_ + offset);
+    return reader_->AddressSize();
+  }
+
+  // Read the address at this CU's addr_index in the .debug_addr section.
+  uint64_t GetAddressAtIndex(uint64_t addr_index) {
+    assert(cu_info_->addr_buffer_ != nullptr);
+    uint64_t offset =
+        cu_info_->addr_base_ + addr_index * reader_->AddressSize();
+    assert(offset < cu_info_->addr_buffer_size_);
+    return reader_->ReadAddress(cu_info_->addr_buffer_ + offset);
+  }
+
+  ByteReader* reader_;
+  CURangesInfo* cu_info_;
+  RangeListHandler* handler_;
+  uint64_t offset_array_;
+  uint64_t offset_entry_count_;
+};
+
+// This class is the main interface between the reader and the
+// client.  The virtual functions inside this get called for
+// interesting events that happen during DWARF2 reading.
+// The default implementation skips everything.
+class Dwarf2Handler {
+ public:
+  Dwarf2Handler() { }
+
+  virtual ~Dwarf2Handler() { }
+
+  // Start to process a compilation unit at OFFSET from the beginning of the
+  // .debug_info section. Return false if you would like to skip this
+  // compilation unit.
+  virtual bool StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                                    uint8_t offset_size, uint64_t cu_length,
+                                    uint8_t dwarf_version) { return false; }
+
+  // When processing a skeleton compilation unit, resulting from a split
+  // DWARF compilation, once the skeleton debug info has been read,
+  // the reader will call this function to ask the client if it needs
+  // the full debug info from the .dwo or .dwp file.  Return true if
+  // you need it, or false to skip processing the split debug info.
+  virtual bool NeedSplitDebugInfo() { return true; }
+
+  // Start to process a split compilation unit at OFFSET from the beginning of
+  // the debug_info section in the .dwp/.dwo file.  Return false if you would
+  // like to skip this compilation unit.
+  virtual bool StartSplitCompilationUnit(uint64_t offset,
+                                         uint64_t cu_length) { return false; }
+
+  // Start to process a DIE at OFFSET from the beginning of the .debug_info
+  // section. Return false if you would like to skip this DIE.
+  virtual bool StartDIE(uint64_t offset, enum DwarfTag tag) { return false; }
+
+  // Called when we have an attribute with unsigned data to give to our
+  // handler. The attribute is for the DIE at OFFSET from the beginning of the
+  // .debug_info section. Its name is ATTR, its form is FORM, and its value is
+  // DATA.
+  virtual void ProcessAttributeUnsigned(uint64_t offset,
+                                        enum DwarfAttribute attr,
+                                        enum DwarfForm form,
+                                        uint64_t data) { }
+
+  // Called when we have an attribute with signed data to give to our handler.
+  // The attribute is for the DIE at OFFSET from the beginning of the
+  // .debug_info section. Its name is ATTR, its form is FORM, and its value is
+  // DATA.
+  virtual void ProcessAttributeSigned(uint64_t offset,
+                                      enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      int64_t data) { }
+
+  // Called when we have an attribute whose value is a reference to
+  // another DIE. The attribute belongs to the DIE at OFFSET from the
+  // beginning of the .debug_info section. Its name is ATTR, its form
+  // is FORM, and the offset of the DIE being referred to from the
+  // beginning of the .debug_info section is DATA.
+  virtual void ProcessAttributeReference(uint64_t offset,
+                                         enum DwarfAttribute attr,
+                                         enum DwarfForm form,
+                                         uint64_t data) { }
+
+  // Called when we have an attribute with a buffer of data to give to our
+  // handler. The attribute is for the DIE at OFFSET from the beginning of the
+  // .debug_info section. Its name is ATTR, its form is FORM, DATA points to
+  // the buffer's contents, and its length in bytes is LENGTH. The buffer is
+  // owned by the caller, not the callee, and may not persist for very long.
+  // If you want the data to be available later, it needs to be copied.
+  virtual void ProcessAttributeBuffer(uint64_t offset,
+                                      enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      const uint8_t* data,
+                                      uint64_t len) { }
+
+  // Called when we have an attribute with string data to give to our handler.
+  // The attribute is for the DIE at OFFSET from the beginning of the
+  // .debug_info section. Its name is ATTR, its form is FORM, and its value is
+  // DATA.
+  virtual void ProcessAttributeString(uint64_t offset,
+                                      enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      const string& data) { }
+
+  // Called when we have an attribute whose value is the 64-bit signature
+  // of a type unit in the .debug_types section. OFFSET is the offset of
+  // the DIE whose attribute we're reporting. ATTR and FORM are the
+  // attribute's name and form. SIGNATURE is the type unit's signature.
+  virtual void ProcessAttributeSignature(uint64_t offset,
+                                         enum DwarfAttribute attr,
+                                         enum DwarfForm form,
+                                         uint64_t signature) { }
+
+  // Called when finished processing the DIE at OFFSET.
+  // Because DWARF2/3 specifies a tree of DIEs, you may get starts
+  // before ends of the previous DIE, as we process children before
+  // ending the parent.
+  virtual void EndDIE(uint64_t offset) { }
+
+};
+
+// The base of DWARF2/3 debug info is a DIE (Debugging Information
+// Entry.
+// DWARF groups DIE's into a tree and calls the root of this tree a
+// "compilation unit".  Most of the time, there is one compilation
+// unit in the .debug_info section for each file that had debug info
+// generated.
+// Each DIE consists of
+
+// 1. a tag specifying a thing that is being described (ie
+// DW_TAG_subprogram for functions, DW_TAG_variable for variables, etc
+// 2. attributes (such as DW_AT_location for location in memory,
+// DW_AT_name for name), and data for each attribute.
+// 3. A flag saying whether the DIE has children or not
+
+// In order to gain some amount of compression, the format of
+// each DIE (tag name, attributes and data forms for the attributes)
+// are stored in a separate table called the "abbreviation table".
+// This is done because a large number of DIEs have the exact same tag
+// and list of attributes, but different data for those attributes.
+// As a result, the .debug_info section is just a stream of data, and
+// requires reading of the .debug_abbrev section to say what the data
+// means.
+
+// As a warning to the user, it should be noted that the reason for
+// using absolute offsets from the beginning of .debug_info is that
+// DWARF2/3 supports referencing DIE's from other DIE's by their offset
+// from either the current compilation unit start, *or* the beginning
+// of the .debug_info section.  This means it is possible to reference
+// a DIE in one compilation unit from a DIE in another compilation
+// unit.  This style of reference is usually used to eliminate
+// duplicated information that occurs across compilation
+// units, such as base types, etc.  GCC 3.4+ support this with
+// -feliminate-dwarf2-dups.  Other toolchains will sometimes do
+// duplicate elimination in the linker.
+
+class CompilationUnit {
+ public:
+
+  // Initialize a compilation unit.  This requires a map of sections,
+  // the offset of this compilation unit in the .debug_info section, a
+  // ByteReader, and a Dwarf2Handler class to call callbacks in.
+  CompilationUnit(const string& path, const SectionMap& sections,
+                  uint64_t offset, ByteReader* reader, Dwarf2Handler* handler);
+  virtual ~CompilationUnit() {
+    if (abbrevs_) delete abbrevs_;
+  }
+
+  // Initialize a compilation unit from a .dwo or .dwp file.
+  // In this case, we need the .debug_addr section from the
+  // executable file that contains the corresponding skeleton
+  // compilation unit.  We also inherit the Dwarf2Handler from
+  // the executable file, and call it as if we were still
+  // processing the original compilation unit.
+  void SetSplitDwarf(const uint8_t* addr_buffer, uint64_t addr_buffer_length,
+                     uint64_t addr_base, uint64_t ranges_base, uint64_t dwo_id);
+
+  // Begin reading a Dwarf2 compilation unit, and calling the
+  // callbacks in the Dwarf2Handler
+
+  // Return the full length of the compilation unit, including
+  // headers. This plus the starting offset passed to the constructor
+  // is the offset of the end of the compilation unit --- and the
+  // start of the next compilation unit, if there is one.
+  uint64_t Start();
+
+ private:
+
+  // This struct represents a single DWARF2/3 abbreviation
+  // The abbreviation tells how to read a DWARF2/3 DIE, and consist of a
+  // tag and a list of attributes, as well as the data form of each attribute.
+  struct Abbrev {
+    uint64_t number;
+    enum DwarfTag tag;
+    bool has_children;
+    AttributeList attributes;
+  };
+
+  // A DWARF2/3 compilation unit header.  This is not the same size as
+  // in the actual file, as the one in the file may have a 32 bit or
+  // 64 bit length.
+  struct CompilationUnitHeader {
+    uint64_t length;
+    uint16_t version;
+    uint64_t abbrev_offset;
+    uint8_t address_size;
+  } header_;
+
+  // Reads the DWARF2/3 header for this compilation unit.
+  void ReadHeader();
+
+  // Reads the DWARF2/3 abbreviations for this compilation unit
+  void ReadAbbrevs();
+
+  // Read the abbreviation offset for this compilation unit
+  size_t ReadAbbrevOffset(const uint8_t* headerptr);
+
+  // Read the address size for this compilation unit
+  size_t ReadAddressSize(const uint8_t* headerptr);
+
+  // Read the DWO id from a split or skeleton compilation unit header
+  size_t ReadDwoId(const uint8_t* headerptr);
+
+  // Read the type signature from a type or split type compilation unit header
+  size_t ReadTypeSignature(const uint8_t* headerptr);
+
+  // Read the DWO id from a split or skeleton compilation unit header
+  size_t ReadTypeOffset(const uint8_t* headerptr);
+
+  // Processes a single DIE for this compilation unit and return a new
+  // pointer just past the end of it
+  const uint8_t* ProcessDIE(uint64_t dieoffset,
+                            const uint8_t* start,
+                            const Abbrev& abbrev);
+
+  // Processes a single attribute and return a new pointer just past the
+  // end of it
+  const uint8_t* ProcessAttribute(uint64_t dieoffset,
+                                  const uint8_t* start,
+                                  enum DwarfAttribute attr,
+                                  enum DwarfForm form,
+                                  uint64_t implicit_const);
+
+  // Called when we have an attribute with unsigned data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of compilation unit, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA.
+  // If we see a DW_AT_GNU_dwo_id attribute, save the value so that
+  // we can find the debug info in a .dwo or .dwp file.
+  void ProcessAttributeUnsigned(uint64_t offset,
+                                enum DwarfAttribute attr,
+                                enum DwarfForm form,
+                                uint64_t data) {
+    if (attr == DW_AT_GNU_dwo_id) {
+      dwo_id_ = data;
+    }
+    else if (attr == DW_AT_GNU_addr_base) {
+      addr_base_ = data;
+    }
+    else if (attr == DW_AT_GNU_ranges_base || attr == DW_AT_rnglists_base) {
+      ranges_base_ = data;
+    }
+    // TODO(yunlian): When we add DW_AT_ranges_base from DWARF-5,
+    // that base will apply to DW_AT_ranges attributes in the
+    // skeleton CU as well as in the .dwo/.dwp files.
+    else if (attr == DW_AT_ranges && is_split_dwarf_) {
+      data += ranges_base_;
+    }
+    handler_->ProcessAttributeUnsigned(offset, attr, form, data);
+  }
+
+  // Called when we have an attribute with signed data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of compilation unit, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA.
+  void ProcessAttributeSigned(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              int64_t data) {
+    handler_->ProcessAttributeSigned(offset, attr, form, data);
+  }
+
+  // Called when we have an attribute with a buffer of data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of compilation unit, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA, and the
+  // length of the buffer is LENGTH.
+  void ProcessAttributeBuffer(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const uint8_t* data,
+                              uint64_t len) {
+    handler_->ProcessAttributeBuffer(offset, attr, form, data, len);
+  }
+
+  // Handles the common parts of DW_FORM_GNU_str_index, DW_FORM_strx,
+  // DW_FORM_strx1, DW_FORM_strx2, DW_FORM_strx3, and DW_FORM_strx4.
+  // Retrieves the data and calls through to ProcessAttributeString.
+  void ProcessFormStringIndex(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              uint64_t str_index);
+
+  // Called when we have an attribute with string data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of compilation unit, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA.
+  // If we see a DW_AT_GNU_dwo_name attribute, save the value so
+  // that we can find the debug info in a .dwo or .dwp file.
+  void ProcessAttributeString(uint64_t offset,
+                              enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const char* data) {
+    if (attr == DW_AT_GNU_dwo_name)
+      dwo_name_ = data;
+    handler_->ProcessAttributeString(offset, attr, form, data);
+  }
+
+  // Called to handle common portions of DW_FORM_addrx and variations, as well
+  // as DW_FORM_GNU_addr_index.
+  void ProcessAttributeAddrIndex(uint64_t offset,
+                                 enum DwarfAttribute attr,
+                                 enum DwarfForm form,
+                                 uint64_t addr_index) {
+    const uint8_t* addr_ptr =
+        addr_buffer_ + addr_base_ + addr_index * reader_->AddressSize();
+    ProcessAttributeUnsigned(
+        offset, attr, form, reader_->ReadAddress(addr_ptr));
+  }
+
+  // Processes all DIEs for this compilation unit
+  void ProcessDIEs();
+
+  // Skips the die with attributes specified in ABBREV starting at
+  // START, and return the new place to position the stream to.
+  const uint8_t* SkipDIE(const uint8_t* start, const Abbrev& abbrev);
+
+  // Skips the attribute starting at START, with FORM, and return the
+  // new place to position the stream to.
+  const uint8_t* SkipAttribute(const uint8_t* start, enum DwarfForm form);
+
+  // Process the actual debug information in a split DWARF file.
+  void ProcessSplitDwarf();
+
+  // Read the debug sections from a .dwo file.
+  void ReadDebugSectionsFromDwo(ElfReader* elf_reader,
+                                SectionMap* sections);
+
+  // Path of the file containing the debug information.
+  const string path_;
+
+  // Offset from section start is the offset of this compilation unit
+  // from the beginning of the .debug_info section.
+  uint64_t offset_from_section_start_;
+
+  // buffer is the buffer for our CU, starting at .debug_info + offset
+  // passed in from constructor.
+  // after_header points to right after the compilation unit header.
+  const uint8_t* buffer_;
+  uint64_t buffer_length_;
+  const uint8_t* after_header_;
+
+  // The associated ByteReader that handles endianness issues for us
+  ByteReader* reader_;
+
+  // The map of sections in our file to buffers containing their data
+  const SectionMap& sections_;
+
+  // The associated handler to call processing functions in
+  Dwarf2Handler* handler_;
+
+  // Set of DWARF2/3 abbreviations for this compilation unit.  Indexed
+  // by abbreviation number, which means that abbrevs_[0] is not
+  // valid.
+  std::vector<Abbrev>* abbrevs_;
+
+  // String section buffer and length, if we have a string section.
+  // This is here to avoid doing a section lookup for strings in
+  // ProcessAttribute, which is in the hot path for DWARF2 reading.
+  const uint8_t* string_buffer_;
+  uint64_t string_buffer_length_;
+
+  // Similarly for .debug_line_string.
+  const uint8_t* line_string_buffer_;
+  uint64_t line_string_buffer_length_;
+
+  // String offsets section buffer and length, if we have a string offsets
+  // section (.debug_str_offsets or .debug_str_offsets.dwo).
+  const uint8_t* str_offsets_buffer_;
+  uint64_t str_offsets_buffer_length_;
+
+  // Address section buffer and length, if we have an address section
+  // (.debug_addr).
+  const uint8_t* addr_buffer_;
+  uint64_t addr_buffer_length_;
+
+  // Flag indicating whether this compilation unit is part of a .dwo
+  // or .dwp file.  If true, we are reading this unit because a
+  // skeleton compilation unit in an executable file had a
+  // DW_AT_GNU_dwo_name or DW_AT_GNU_dwo_id attribute.
+  // In a .dwo file, we expect the string offsets section to
+  // have a ".dwo" suffix, and we will use the ".debug_addr" section
+  // associated with the skeleton compilation unit.
+  bool is_split_dwarf_;
+
+  // The value of the DW_AT_GNU_dwo_id attribute, if any.
+  uint64_t dwo_id_;
+
+  // The value of the DW_AT_GNU_type_signature attribute, if any.
+  uint64_t type_signature_;
+
+  // The value of the DW_AT_GNU_type_offset attribute, if any.
+  size_t type_offset_;
+
+  // The value of the DW_AT_GNU_dwo_name attribute, if any.
+  const char* dwo_name_;
+
+  // If this is a split DWARF CU, the value of the DW_AT_GNU_dwo_id attribute
+  // from the skeleton CU.
+  uint64_t skeleton_dwo_id_;
+
+  // The value of the DW_AT_GNU_ranges_base or DW_AT_rnglists_base attribute,
+  // if any.
+  uint64_t ranges_base_;
+
+  // The value of the DW_AT_GNU_addr_base attribute, if any.
+  uint64_t addr_base_;
+
+  // True if we have already looked for a .dwp file.
+  bool have_checked_for_dwp_;
+
+  // Path to the .dwp file.
+  string dwp_path_;
+
+  // ByteReader for the DWP file.
+  std::unique_ptr<ByteReader> dwp_byte_reader_;
+
+  // DWP reader.
+   std::unique_ptr<DwpReader> dwp_reader_;
+};
+
+// A Reader for a .dwp file.  Supports the fetching of DWARF debug
+// info for a given dwo_id.
+//
+// There are two versions of .dwp files.  In both versions, the
+// .dwp file is an ELF file containing only debug sections.
+// In Version 1, the file contains many copies of each debug
+// section, one for each .dwo file that is packaged in the .dwp
+// file, and the .debug_cu_index section maps from the dwo_id
+// to a set of section indexes.  In Version 2, the file contains
+// one of each debug section, and the .debug_cu_index section
+// maps from the dwo_id to a set of offsets and lengths that
+// identify each .dwo file's contribution to the larger sections.
+
+class DwpReader {
+ public:
+  DwpReader(const ByteReader& byte_reader, ElfReader* elf_reader);
+
+  ~DwpReader();
+
+  // Read the CU index and initialize data members.
+  void Initialize();
+
+  // Read the debug sections for the given dwo_id.
+  void ReadDebugSectionsForCU(uint64_t dwo_id, SectionMap* sections);
+
+ private:
+  // Search a v1 hash table for "dwo_id".  Returns the slot index
+  // where the dwo_id was found, or -1 if it was not found.
+  int LookupCU(uint64_t dwo_id);
+
+  // Search a v2 hash table for "dwo_id".  Returns the row index
+  // in the offsets and sizes tables, or 0 if it was not found.
+  uint32_t LookupCUv2(uint64_t dwo_id);
+
+  // The ELF reader for the .dwp file.
+  ElfReader* elf_reader_;
+
+  // The ByteReader for the .dwp file.
+  const ByteReader& byte_reader_;
+
+  // Pointer to the .debug_cu_index section.
+  const char* cu_index_;
+
+  // Size of the .debug_cu_index section.
+  size_t cu_index_size_;
+
+  // Pointer to the .debug_str.dwo section.
+  const char* string_buffer_;
+
+  // Size of the .debug_str.dwo section.
+  size_t string_buffer_size_;
+
+  // Version of the .dwp file.  We support versions 1 and 2 currently.
+  int version_;
+
+  // Number of columns in the section tables (version 2).
+  unsigned int ncolumns_;
+
+  // Number of units in the section tables (version 2).
+  unsigned int nunits_;
+
+  // Number of slots in the hash table.
+  unsigned int nslots_;
+
+  // Pointer to the beginning of the hash table.
+  const char* phash_;
+
+  // Pointer to the beginning of the index table.
+  const char* pindex_;
+
+  // Pointer to the beginning of the section index pool (version 1).
+  const char* shndx_pool_;
+
+  // Pointer to the beginning of the section offset table (version 2).
+  const char* offset_table_;
+
+  // Pointer to the beginning of the section size table (version 2).
+  const char* size_table_;
+
+  // Contents of the sections of interest (version 2).
+  const char* abbrev_data_;
+  size_t abbrev_size_;
+  const char* info_data_;
+  size_t info_size_;
+  const char* str_offsets_data_;
+  size_t str_offsets_size_;
+};
+
+// This class is a reader for DWARF's Call Frame Information.  CFI
+// describes how to unwind stack frames --- even for functions that do
+// not follow fixed conventions for saving registers, whose frame size
+// varies as they execute, etc.
+//
+// CFI describes, at each machine instruction, how to compute the
+// stack frame's base address, how to find the return address, and
+// where to find the saved values of the caller's registers (if the
+// callee has stashed them somewhere to free up the registers for its
+// own use).
+//
+// For example, suppose we have a function whose machine code looks
+// like this (imagine an assembly language that looks like C, for a
+// machine with 32-bit registers, and a stack that grows towards lower
+// addresses):
+//
+// func:                                ; entry point; return address at sp
+// func+0:      sp = sp - 16            ; allocate space for stack frame
+// func+1:      sp[12] = r0             ; save r0 at sp+12
+// ...                                  ; other code, not frame-related
+// func+10:     sp -= 4; *sp = x        ; push some x on the stack
+// ...                                  ; other code, not frame-related
+// func+20:     r0 = sp[16]             ; restore saved r0
+// func+21:     sp += 20                ; pop whole stack frame
+// func+22:     pc = *sp; sp += 4       ; pop return address and jump to it
+//
+// DWARF CFI is (a very compressed representation of) a table with a
+// row for each machine instruction address and a column for each
+// register showing how to restore it, if possible.
+//
+// A special column named "CFA", for "Canonical Frame Address", tells how
+// to compute the base address of the frame; registers' entries may
+// refer to the CFA in describing where the registers are saved.
+//
+// Another special column, named "RA", represents the return address.
+//
+// For example, here is a complete (uncompressed) table describing the
+// function above:
+// 
+//     insn      cfa    r0      r1 ...  ra
+//     =======================================
+//     func+0:   sp                     cfa[0]
+//     func+1:   sp+16                  cfa[0] 
+//     func+2:   sp+16  cfa[-4]         cfa[0]
+//     func+11:  sp+20  cfa[-4]         cfa[0]
+//     func+21:  sp+20                  cfa[0]
+//     func+22:  sp                     cfa[0]
+//
+// Some things to note here:
+//
+// - Each row describes the state of affairs *before* executing the
+//   instruction at the given address.  Thus, the row for func+0
+//   describes the state before we allocate the stack frame.  In the
+//   next row, the formula for computing the CFA has changed,
+//   reflecting that allocation.
+//
+// - The other entries are written in terms of the CFA; this allows
+//   them to remain unchanged as the stack pointer gets bumped around.
+//   For example, the rule for recovering the return address (the "ra"
+//   column) remains unchanged throughout the function, even as the
+//   stack pointer takes on three different offsets from the return
+//   address.
+//
+// - Although we haven't shown it, most calling conventions designate
+//   "callee-saves" and "caller-saves" registers. The callee must
+//   preserve the values of callee-saves registers; if it uses them,
+//   it must save their original values somewhere, and restore them
+//   before it returns. In contrast, the callee is free to trash
+//   caller-saves registers; if the callee uses these, it will
+//   probably not bother to save them anywhere, and the CFI will
+//   probably mark their values as "unrecoverable".
+//
+//   (However, since the caller cannot assume the callee was going to
+//   save them, caller-saves registers are probably dead in the caller
+//   anyway, so compilers usually don't generate CFA for caller-saves
+//   registers.)
+// 
+// - Exactly where the CFA points is a matter of convention that
+//   depends on the architecture and ABI in use. In the example, the
+//   CFA is the value the stack pointer had upon entry to the
+//   function, pointing at the saved return address. But on the x86,
+//   the call frame information generated by GCC follows the
+//   convention that the CFA is the address *after* the saved return
+//   address.
+//
+//   But by definition, the CFA remains constant throughout the
+//   lifetime of the frame. This makes it a useful value for other
+//   columns to refer to. It is also gives debuggers a useful handle
+//   for identifying a frame.
+//
+// If you look at the table above, you'll notice that a given entry is
+// often the same as the one immediately above it: most instructions
+// change only one or two aspects of the stack frame, if they affect
+// it at all. The DWARF format takes advantage of this fact, and
+// reduces the size of the data by mentioning only the addresses and
+// columns at which changes take place. So for the above, DWARF CFI
+// data would only actually mention the following:
+// 
+//     insn      cfa    r0      r1 ...  ra
+//     =======================================
+//     func+0:   sp                     cfa[0]
+//     func+1:   sp+16
+//     func+2:          cfa[-4]
+//     func+11:  sp+20
+//     func+21:         r0
+//     func+22:  sp            
+//
+// In fact, this is the way the parser reports CFI to the consumer: as
+// a series of statements of the form, "At address X, column Y changed
+// to Z," and related conventions for describing the initial state.
+//
+// Naturally, it would be impractical to have to scan the entire
+// program's CFI, noting changes as we go, just to recover the
+// unwinding rules in effect at one particular instruction. To avoid
+// this, CFI data is grouped into "entries", each of which covers a
+// specified range of addresses and begins with a complete statement
+// of the rules for all recoverable registers at that starting
+// address. Each entry typically covers a single function.
+//
+// Thus, to compute the contents of a given row of the table --- that
+// is, rules for recovering the CFA, RA, and registers at a given
+// instruction --- the consumer should find the entry that covers that
+// instruction's address, start with the initial state supplied at the
+// beginning of the entry, and work forward until it has processed all
+// the changes up to and including those for the present instruction.
+//
+// There are seven kinds of rules that can appear in an entry of the
+// table:
+//
+// - "undefined": The given register is not preserved by the callee;
+//   its value cannot be recovered.
+//
+// - "same value": This register has the same value it did in the callee.
+//
+// - offset(N): The register is saved at offset N from the CFA.
+//
+// - val_offset(N): The value the register had in the caller is the
+//   CFA plus offset N. (This is usually only useful for describing
+//   the stack pointer.)
+//
+// - register(R): The register's value was saved in another register R.
+//
+// - expression(E): Evaluating the DWARF expression E using the
+//   current frame's registers' values yields the address at which the
+//   register was saved.
+//
+// - val_expression(E): Evaluating the DWARF expression E using the
+//   current frame's registers' values yields the value the register
+//   had in the caller.
+
+class CallFrameInfo {
+ public:
+  // The different kinds of entries one finds in CFI. Used internally,
+  // and for error reporting.
+  enum EntryKind { kUnknown, kCIE, kFDE, kTerminator };
+
+  // The handler class to which the parser hands the parsed call frame
+  // information.  Defined below.
+  class Handler;
+
+  // A reporter class, which CallFrameInfo uses to report errors
+  // encountered while parsing call frame information.  Defined below.
+  class Reporter;
+
+  // Create a DWARF CFI parser. BUFFER points to the contents of the
+  // .debug_frame section to parse; BUFFER_LENGTH is its length in bytes.
+  // REPORTER is an error reporter the parser should use to report
+  // problems. READER is a ByteReader instance that has the endianness and
+  // address size set properly. Report the data we find to HANDLER.
+  //
+  // This class can also parse Linux C++ exception handling data, as found
+  // in '.eh_frame' sections. This data is a variant of DWARF CFI that is
+  // placed in loadable segments so that it is present in the program's
+  // address space, and is interpreted by the C++ runtime to search the
+  // call stack for a handler interested in the exception being thrown,
+  // actually pop the frames, and find cleanup code to run.
+  //
+  // There are two differences between the call frame information described
+  // in the DWARF standard and the exception handling data Linux places in
+  // the .eh_frame section:
+  //
+  // - Exception handling data uses uses a different format for call frame
+  //   information entry headers. The distinguished CIE id, the way FDEs
+  //   refer to their CIEs, and the way the end of the series of entries is
+  //   determined are all slightly different.
+  //
+  //   If the constructor's EH_FRAME argument is true, then the
+  //   CallFrameInfo parses the entry headers as Linux C++ exception
+  //   handling data. If EH_FRAME is false or omitted, the CallFrameInfo
+  //   parses standard DWARF call frame information.
+  //
+  // - Linux C++ exception handling data uses CIE augmentation strings
+  //   beginning with 'z' to specify the presence of additional data after
+  //   the CIE and FDE headers and special encodings used for addresses in
+  //   frame description entries.
+  //
+  //   CallFrameInfo can handle 'z' augmentations in either DWARF CFI or
+  //   exception handling data if you have supplied READER with the base
+  //   addresses needed to interpret the pointer encodings that 'z'
+  //   augmentations can specify. See the ByteReader interface for details
+  //   about the base addresses. See the CallFrameInfo::Handler interface
+  //   for details about the additional information one might find in
+  //   'z'-augmented data.
+  //
+  // Thus:
+  //
+  // - If you are parsing standard DWARF CFI, as found in a .debug_frame
+  //   section, you should pass false for the EH_FRAME argument, or omit
+  //   it, and you need not worry about providing READER with the
+  //   additional base addresses.
+  //
+  // - If you want to parse Linux C++ exception handling data from a
+  //   .eh_frame section, you should pass EH_FRAME as true, and call
+  //   READER's Set*Base member functions before calling our Start method.
+  //
+  // - If you want to parse DWARF CFI that uses the 'z' augmentations
+  //   (although I don't think any toolchain ever emits such data), you
+  //   could pass false for EH_FRAME, but call READER's Set*Base members.
+  //
+  // The extensions the Linux C++ ABI makes to DWARF for exception
+  // handling are described here, rather poorly:
+  // http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/dwarfext.html
+  // http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
+  // 
+  // The mechanics of C++ exception handling, personality routines,
+  // and language-specific data areas are described here, rather nicely:
+  // http://www.codesourcery.com/public/cxx-abi/abi-eh.html
+  CallFrameInfo(const uint8_t* buffer, size_t buffer_length,
+                ByteReader* reader, Handler* handler, Reporter* reporter,
+                bool eh_frame = false)
+      : buffer_(buffer), buffer_length_(buffer_length),
+        reader_(reader), handler_(handler), reporter_(reporter),
+        eh_frame_(eh_frame) { }
+
+  ~CallFrameInfo() { }
+
+  // Parse the entries in BUFFER, reporting what we find to HANDLER.
+  // Return true if we reach the end of the section successfully, or
+  // false if we encounter an error.
+  bool Start();
+
+  // Return the textual name of KIND. For error reporting.
+  static const char* KindName(EntryKind kind);
+
+ private:
+
+  struct CIE;
+
+  // A CFI entry, either an FDE or a CIE.
+  struct Entry {
+    // The starting offset of the entry in the section, for error
+    // reporting.
+    size_t offset;
+
+    // The start of this entry in the buffer.
+    const uint8_t* start;
+    
+    // Which kind of entry this is.
+    //
+    // We want to be able to use this for error reporting even while we're
+    // in the midst of parsing. Error reporting code may assume that kind,
+    // offset, and start fields are valid, although kind may be kUnknown.
+    EntryKind kind;
+
+    // The end of this entry's common prologue (initial length and id), and
+    // the start of this entry's kind-specific fields.
+    const uint8_t* fields;
+
+    // The start of this entry's instructions.
+    const uint8_t* instructions;
+
+    // The address past the entry's last byte in the buffer. (Note that
+    // since offset points to the entry's initial length field, and the
+    // length field is the number of bytes after that field, this is not
+    // simply buffer_ + offset + length.)
+    const uint8_t* end;
+
+    // For both DWARF CFI and .eh_frame sections, this is the CIE id in a
+    // CIE, and the offset of the associated CIE in an FDE.
+    uint64_t id;
+
+    // The CIE that applies to this entry, if we've parsed it. If this is a
+    // CIE, then this field points to this structure.
+    CIE* cie;
+  };
+
+  // A common information entry (CIE).
+  struct CIE: public Entry {
+    uint8_t version;                      // CFI data version number
+    string augmentation;                // vendor format extension markers
+    uint64_t code_alignment_factor;       // scale for code address adjustments 
+    int data_alignment_factor;          // scale for stack pointer adjustments
+    unsigned return_address_register;   // which register holds the return addr
+
+    // True if this CIE includes Linux C++ ABI 'z' augmentation data.
+    bool has_z_augmentation;
+ 
+    // Parsed 'z' augmentation data. These are meaningful only if
+    // has_z_augmentation is true.
+    bool has_z_lsda;                    // The 'z' augmentation included 'L'.
+    bool has_z_personality;             // The 'z' augmentation included 'P'.
+    bool has_z_signal_frame;            // The 'z' augmentation included 'S'.
+
+    // If has_z_lsda is true, this is the encoding to be used for language-
+    // specific data area pointers in FDEs.
+    DwarfPointerEncoding lsda_encoding;
+
+    // If has_z_personality is true, this is the encoding used for the
+    // personality routine pointer in the augmentation data.
+    DwarfPointerEncoding personality_encoding;
+
+    // If has_z_personality is true, this is the address of the personality
+    // routine --- or, if personality_encoding & DW_EH_PE_indirect, the
+    // address where the personality routine's address is stored.
+    uint64_t personality_address;
+
+    // This is the encoding used for addresses in the FDE header and
+    // in DW_CFA_set_loc instructions. This is always valid, whether
+    // or not we saw a 'z' augmentation string; its default value is
+    // DW_EH_PE_absptr, which is what normal DWARF CFI uses.
+    DwarfPointerEncoding pointer_encoding;
+
+    // These were only introduced in DWARF4, so will not be set in older
+    // versions.
+    uint8_t address_size;
+    uint8_t segment_size;
+  };
+
+  // A frame description entry (FDE).
+  struct FDE: public Entry {
+    uint64_t address;                     // start address of described code
+    uint64_t size;                        // size of described code, in bytes
+
+    // If cie->has_z_lsda is true, then this is the language-specific data
+    // area's address --- or its address's address, if cie->lsda_encoding
+    // has the DW_EH_PE_indirect bit set.
+    uint64_t lsda_address;
+  };
+
+  // Internal use.
+  class Rule;
+  class UndefinedRule;
+  class SameValueRule;
+  class OffsetRule;
+  class ValOffsetRule;
+  class RegisterRule;
+  class ExpressionRule;
+  class ValExpressionRule;
+  class RuleMap;
+  class State;
+  
+  // Parse the initial length and id of a CFI entry, either a CIE, an FDE,
+  // or a .eh_frame end-of-data mark. CURSOR points to the beginning of the
+  // data to parse. On success, populate ENTRY as appropriate, and return
+  // true. On failure, report the problem, and return false. Even if we
+  // return false, set ENTRY->end to the first byte after the entry if we
+  // were able to figure that out, or NULL if we weren't.
+  bool ReadEntryPrologue(const uint8_t* cursor, Entry* entry);
+
+  // Parse the fields of a CIE after the entry prologue, including any 'z'
+  // augmentation data. Assume that the 'Entry' fields of CIE are
+  // populated; use CIE->fields and CIE->end as the start and limit for
+  // parsing. On success, populate the rest of *CIE, and return true; on
+  // failure, report the problem and return false.
+  bool ReadCIEFields(CIE* cie);
+
+  // Parse the fields of an FDE after the entry prologue, including any 'z'
+  // augmentation data. Assume that the 'Entry' fields of *FDE are
+  // initialized; use FDE->fields and FDE->end as the start and limit for
+  // parsing. Assume that FDE->cie is fully initialized. On success,
+  // populate the rest of *FDE, and return true; on failure, report the
+  // problem and return false.
+  bool ReadFDEFields(FDE* fde);
+
+  // Report that ENTRY is incomplete, and return false. This is just a
+  // trivial wrapper for invoking reporter_->Incomplete; it provides a
+  // little brevity.
+  bool ReportIncomplete(Entry* entry);
+
+  // Return true if ENCODING has the DW_EH_PE_indirect bit set.
+  static bool IsIndirectEncoding(DwarfPointerEncoding encoding) {
+    return encoding & DW_EH_PE_indirect;
+  }
+
+  // The contents of the DWARF .debug_info section we're parsing.
+  const uint8_t* buffer_;
+  size_t buffer_length_;
+
+  // For reading multi-byte values with the appropriate endianness.
+  ByteReader* reader_;
+
+  // The handler to which we should report the data we find.
+  Handler* handler_;
+
+  // For reporting problems in the info we're parsing.
+  Reporter* reporter_;
+
+  // True if we are processing .eh_frame-format data.
+  bool eh_frame_;
+};
+
+// The handler class for CallFrameInfo.  The a CFI parser calls the
+// member functions of a handler object to report the data it finds.
+class CallFrameInfo::Handler {
+ public:
+  // The pseudo-register number for the canonical frame address.
+  enum { kCFARegister = -1 };
+
+  Handler() { }
+  virtual ~Handler() { }
+
+  // The parser has found CFI for the machine code at ADDRESS,
+  // extending for LENGTH bytes. OFFSET is the offset of the frame
+  // description entry in the section, for use in error messages.
+  // VERSION is the version number of the CFI format. AUGMENTATION is
+  // a string describing any producer-specific extensions present in
+  // the data. RETURN_ADDRESS is the number of the register that holds
+  // the address to which the function should return.
+  //
+  // Entry should return true to process this CFI, or false to skip to
+  // the next entry.
+  //
+  // The parser invokes Entry for each Frame Description Entry (FDE)
+  // it finds.  The parser doesn't report Common Information Entries
+  // to the handler explicitly; instead, if the handler elects to
+  // process a given FDE, the parser reiterates the appropriate CIE's
+  // contents at the beginning of the FDE's rules.
+  virtual bool Entry(size_t offset, uint64_t address, uint64_t length,
+                     uint8_t version, const string& augmentation,
+                     unsigned return_address) = 0;
+
+  // When the Entry function returns true, the parser calls these
+  // handler functions repeatedly to describe the rules for recovering
+  // registers at each instruction in the given range of machine code.
+  // Immediately after a call to Entry, the handler should assume that
+  // the rule for each callee-saves register is "unchanged" --- that
+  // is, that the register still has the value it had in the caller.
+  // 
+  // If a *Rule function returns true, we continue processing this entry's
+  // instructions. If a *Rule function returns false, we stop evaluating
+  // instructions, and skip to the next entry. Either way, we call End
+  // before going on to the next entry.
+  //
+  // In all of these functions, if the REG parameter is kCFARegister, then
+  // the rule describes how to find the canonical frame address.
+  // kCFARegister may be passed as a BASE_REGISTER argument, meaning that
+  // the canonical frame address should be used as the base address for the
+  // computation. All other REG values will be positive.
+
+  // At ADDRESS, register REG's value is not recoverable.
+  virtual bool UndefinedRule(uint64_t address, int reg) = 0;
+
+  // At ADDRESS, register REG's value is the same as that it had in
+  // the caller.
+  virtual bool SameValueRule(uint64_t address, int reg) = 0;
+
+  // At ADDRESS, register REG has been saved at offset OFFSET from
+  // BASE_REGISTER.
+  virtual bool OffsetRule(uint64_t address, int reg,
+                          int base_register, long offset) = 0;
+
+  // At ADDRESS, the caller's value of register REG is the current
+  // value of BASE_REGISTER plus OFFSET. (This rule doesn't provide an
+  // address at which the register's value is saved.)
+  virtual bool ValOffsetRule(uint64_t address, int reg,
+                             int base_register, long offset) = 0;
+
+  // At ADDRESS, register REG has been saved in BASE_REGISTER. This differs
+  // from ValOffsetRule(ADDRESS, REG, BASE_REGISTER, 0), in that
+  // BASE_REGISTER is the "home" for REG's saved value: if you want to
+  // assign to a variable whose home is REG in the calling frame, you
+  // should put the value in BASE_REGISTER.
+  virtual bool RegisterRule(uint64_t address, int reg, int base_register) = 0;
+
+  // At ADDRESS, the DWARF expression EXPRESSION yields the address at
+  // which REG was saved.
+  virtual bool ExpressionRule(uint64_t address, int reg,
+                              const string& expression) = 0;
+
+  // At ADDRESS, the DWARF expression EXPRESSION yields the caller's
+  // value for REG. (This rule doesn't provide an address at which the
+  // register's value is saved.)
+  virtual bool ValExpressionRule(uint64_t address, int reg,
+                                 const string& expression) = 0;
+
+  // Indicate that the rules for the address range reported by the
+  // last call to Entry are complete.  End should return true if
+  // everything is okay, or false if an error has occurred and parsing
+  // should stop.
+  virtual bool End() = 0;
+
+  // Handler functions for Linux C++ exception handling data. These are
+  // only called if the data includes 'z' augmentation strings.
+
+  // The Linux C++ ABI uses an extension of the DWARF CFI format to
+  // walk the stack to propagate exceptions from the throw to the
+  // appropriate catch, and do the appropriate cleanups along the way.
+  // CFI entries used for exception handling have two additional data
+  // associated with them:
+  //
+  // - The "language-specific data area" describes which exception
+  //   types the function has 'catch' clauses for, and indicates how
+  //   to go about re-entering the function at the appropriate catch
+  //   clause. If the exception is not caught, it describes the
+  //   destructors that must run before the frame is popped.
+  //
+  // - The "personality routine" is responsible for interpreting the
+  //   language-specific data area's contents, and deciding whether
+  //   the exception should continue to propagate down the stack,
+  //   perhaps after doing some cleanup for this frame, or whether the
+  //   exception will be caught here.
+  //
+  // In principle, the language-specific data area is opaque to
+  // everybody but the personality routine. In practice, these values
+  // may be useful or interesting to readers with extra context, and
+  // we have to at least skip them anyway, so we might as well report
+  // them to the handler.
+
+  // This entry's exception handling personality routine's address is
+  // ADDRESS. If INDIRECT is true, then ADDRESS is the address at
+  // which the routine's address is stored. The default definition for
+  // this handler function simply returns true, allowing parsing of
+  // the entry to continue.
+  virtual bool PersonalityRoutine(uint64_t address, bool indirect) {
+    return true;
+  }
+
+  // This entry's language-specific data area (LSDA) is located at
+  // ADDRESS. If INDIRECT is true, then ADDRESS is the address at
+  // which the area's address is stored. The default definition for
+  // this handler function simply returns true, allowing parsing of
+  // the entry to continue.
+  virtual bool LanguageSpecificDataArea(uint64_t address, bool indirect) {
+    return true;
+  }
+
+  // This entry describes a signal trampoline --- this frame is the
+  // caller of a signal handler. The default definition for this
+  // handler function simply returns true, allowing parsing of the
+  // entry to continue.
+  //
+  // The best description of the rationale for and meaning of signal
+  // trampoline CFI entries seems to be in the GCC bug database:
+  // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26208
+  virtual bool SignalHandler() { return true; }
+};
+
+// The CallFrameInfo class makes calls on an instance of this class to
+// report errors or warn about problems in the data it is parsing. The
+// default definitions of these methods print a message to stderr, but
+// you can make a derived class that overrides them.
+class CallFrameInfo::Reporter {
+ public:
+  // Create an error reporter which attributes troubles to the section
+  // named SECTION in FILENAME.
+  //
+  // Normally SECTION would be .debug_frame, but the Mac puts CFI data
+  // in a Mach-O section named __debug_frame. If we support
+  // Linux-style exception handling data, we could be reading an
+  // .eh_frame section.
+  Reporter(const string& filename,
+           const string& section = ".debug_frame")
+      : filename_(filename), section_(section) { }
+  virtual ~Reporter() { }
+
+  // The CFI entry at OFFSET ends too early to be well-formed. KIND
+  // indicates what kind of entry it is; KIND can be kUnknown if we
+  // haven't parsed enough of the entry to tell yet.
+  virtual void Incomplete(uint64_t offset, CallFrameInfo::EntryKind kind);
+
+  // The .eh_frame data has a four-byte zero at OFFSET where the next
+  // entry's length would be; this is a terminator. However, the buffer
+  // length as given to the CallFrameInfo constructor says there should be
+  // more data.
+  virtual void EarlyEHTerminator(uint64_t offset);
+
+  // The FDE at OFFSET refers to the CIE at CIE_OFFSET, but the
+  // section is not that large.
+  virtual void CIEPointerOutOfRange(uint64_t offset, uint64_t cie_offset);
+
+  // The FDE at OFFSET refers to the CIE at CIE_OFFSET, but the entry
+  // there is not a CIE.
+  virtual void BadCIEId(uint64_t offset, uint64_t cie_offset);
+
+  // The FDE at OFFSET refers to a CIE with an address size we don't know how
+  // to handle.
+  virtual void UnexpectedAddressSize(uint64_t offset, uint8_t address_size);
+
+  // The FDE at OFFSET refers to a CIE with an segment descriptor size we
+  // don't know how to handle.
+  virtual void UnexpectedSegmentSize(uint64_t offset, uint8_t segment_size);
+
+  // The FDE at OFFSET refers to a CIE with version number VERSION,
+  // which we don't recognize. We cannot parse DWARF CFI if it uses
+  // a version number we don't recognize.
+  virtual void UnrecognizedVersion(uint64_t offset, int version);
+
+  // The FDE at OFFSET refers to a CIE with augmentation AUGMENTATION,
+  // which we don't recognize. We cannot parse DWARF CFI if it uses
+  // augmentations we don't recognize.
+  virtual void UnrecognizedAugmentation(uint64_t offset,
+                                        const string& augmentation);
+
+  // The pointer encoding ENCODING, specified by the CIE at OFFSET, is not
+  // a valid encoding.
+  virtual void InvalidPointerEncoding(uint64_t offset, uint8_t encoding);
+
+  // The pointer encoding ENCODING, specified by the CIE at OFFSET, depends
+  // on a base address which has not been supplied.
+  virtual void UnusablePointerEncoding(uint64_t offset, uint8_t encoding);
+
+  // The CIE at OFFSET contains a DW_CFA_restore instruction at
+  // INSN_OFFSET, which may not appear in a CIE.
+  virtual void RestoreInCIE(uint64_t offset, uint64_t insn_offset);
+
+  // The entry at OFFSET, of kind KIND, has an unrecognized
+  // instruction at INSN_OFFSET.
+  virtual void BadInstruction(uint64_t offset, CallFrameInfo::EntryKind kind,
+                              uint64_t insn_offset);
+
+  // The instruction at INSN_OFFSET in the entry at OFFSET, of kind
+  // KIND, establishes a rule that cites the CFA, but we have not
+  // established a CFA rule yet.
+  virtual void NoCFARule(uint64_t offset, CallFrameInfo::EntryKind kind, 
+                         uint64_t insn_offset);
+
+  // The instruction at INSN_OFFSET in the entry at OFFSET, of kind
+  // KIND, is a DW_CFA_restore_state instruction, but the stack of
+  // saved states is empty.
+  virtual void EmptyStateStack(uint64_t offset, CallFrameInfo::EntryKind kind, 
+                               uint64_t insn_offset);
+
+  // The DW_CFA_remember_state instruction at INSN_OFFSET in the entry
+  // at OFFSET, of kind KIND, would restore a state that has no CFA
+  // rule, whereas the current state does have a CFA rule. This is
+  // bogus input, which the CallFrameInfo::Handler interface doesn't
+  // (and shouldn't) have any way to report.
+  virtual void ClearingCFARule(uint64_t offset, CallFrameInfo::EntryKind kind, 
+                               uint64_t insn_offset);
+
+ protected:
+  // The name of the file whose CFI we're reading.
+  string filename_;
+
+  // The name of the CFI section in that file.
+  string section_;
+};
+
+}  // namespace dwarf2reader
+
+#endif  // UTIL_DEBUGINFO_DWARF2READER_H__
diff --git a/src/common/dwarf/dwarf2reader_cfi_unittest.cc b/src/common/dwarf/dwarf2reader_cfi_unittest.cc
new file mode 100644
index 0000000..8e5d68b
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader_cfi_unittest.cc
@@ -0,0 +1,2584 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2reader_cfi_unittest.cc: Unit tests for dwarf2reader::CallFrameInfo
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <string>
+#include <vector>
+
+// The '.eh_frame' format, used by the Linux C++ ABI for exception
+// handling, is poorly specified. To help test our support for .eh_frame,
+// if you #define WRITE_ELF while compiling this file, and add the
+// 'include' directory from the binutils, gcc, or gdb source tree to the
+// #include path, then each test that calls the
+// PERHAPS_WRITE_DEBUG_FRAME_FILE or PERHAPS_WRITE_EH_FRAME_FILE will write
+// an ELF file containing a .debug_frame or .eh_frame section; you can then
+// use tools like readelf to examine the test data, and check the tools'
+// interpretation against the test's intentions. Each ELF file is named
+// "cfitest-TEST", where TEST identifies the particular test.
+#ifdef WRITE_ELF
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+extern "C" {
+// To compile with WRITE_ELF, you should add the 'include' directory
+// of the binutils, gcc, or gdb source tree to your #include path;
+// that directory contains this header.
+#include "elf/common.h"
+}
+#endif
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/cfi_assembler.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+using google_breakpad::CFISection;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Section;
+
+using dwarf2reader::DwarfPointerEncoding;
+using dwarf2reader::ENDIANNESS_BIG;
+using dwarf2reader::ENDIANNESS_LITTLE;
+using dwarf2reader::ByteReader;
+using dwarf2reader::CallFrameInfo;
+
+using std::vector;
+using testing::InSequence;
+using testing::Return;
+using testing::Sequence;
+using testing::Test;
+using testing::_;
+
+#ifdef WRITE_ELF
+void WriteELFFrameSection(const char *filename, const char *section_name,
+                          const CFISection& section);
+#define PERHAPS_WRITE_DEBUG_FRAME_FILE(name, section)                   \
+    WriteELFFrameSection("cfitest-" name, ".debug_frame", section);
+#define PERHAPS_WRITE_EH_FRAME_FILE(name, section)                      \
+    WriteELFFrameSection("cfitest-" name, ".eh_frame", section);
+#else
+#define PERHAPS_WRITE_DEBUG_FRAME_FILE(name, section)
+#define PERHAPS_WRITE_EH_FRAME_FILE(name, section)
+#endif
+
+class MockCallFrameInfoHandler: public CallFrameInfo::Handler {
+ public:
+  MOCK_METHOD6(Entry, bool(size_t offset, uint64_t address, uint64_t length,
+                           uint8_t version, const string& augmentation,
+                           unsigned return_address));
+  MOCK_METHOD2(UndefinedRule, bool(uint64_t address, int reg));
+  MOCK_METHOD2(SameValueRule, bool(uint64_t address, int reg));
+  MOCK_METHOD4(OffsetRule, bool(uint64_t address, int reg, int base_register,
+                                long offset));
+  MOCK_METHOD4(ValOffsetRule, bool(uint64_t address, int reg, int base_register,
+                                   long offset));
+  MOCK_METHOD3(RegisterRule, bool(uint64_t address, int reg, int base_register));
+  MOCK_METHOD3(ExpressionRule, bool(uint64_t address, int reg,
+                                    const string& expression));
+  MOCK_METHOD3(ValExpressionRule, bool(uint64_t address, int reg,
+                                       const string& expression));
+  MOCK_METHOD0(End, bool());
+  MOCK_METHOD2(PersonalityRoutine, bool(uint64_t address, bool indirect));
+  MOCK_METHOD2(LanguageSpecificDataArea, bool(uint64_t address, bool indirect));
+  MOCK_METHOD0(SignalHandler, bool());
+};
+
+class MockCallFrameErrorReporter: public CallFrameInfo::Reporter {
+ public:
+  MockCallFrameErrorReporter() : Reporter("mock filename", "mock section") { }
+  MOCK_METHOD2(Incomplete, void(uint64_t, CallFrameInfo::EntryKind));
+  MOCK_METHOD1(EarlyEHTerminator, void(uint64_t));
+  MOCK_METHOD2(CIEPointerOutOfRange, void(uint64_t, uint64_t));
+  MOCK_METHOD2(BadCIEId, void(uint64_t, uint64_t));
+  MOCK_METHOD2(UnexpectedAddressSize, void(uint64_t, uint8_t));
+  MOCK_METHOD2(UnexpectedSegmentSize, void(uint64_t, uint8_t));
+  MOCK_METHOD2(UnrecognizedVersion, void(uint64_t, int version));
+  MOCK_METHOD2(UnrecognizedAugmentation, void(uint64_t, const string&));
+  MOCK_METHOD2(InvalidPointerEncoding, void(uint64_t, uint8_t));
+  MOCK_METHOD2(UnusablePointerEncoding, void(uint64_t, uint8_t));
+  MOCK_METHOD2(RestoreInCIE, void(uint64_t, uint64_t));
+  MOCK_METHOD3(BadInstruction, void(uint64_t, CallFrameInfo::EntryKind,
+                                    uint64_t));
+  MOCK_METHOD3(NoCFARule, void(uint64_t, CallFrameInfo::EntryKind, uint64_t));
+  MOCK_METHOD3(EmptyStateStack, void(uint64_t, CallFrameInfo::EntryKind,
+                                     uint64_t));
+};
+
+struct CFIFixture {
+
+  enum { kCFARegister = CallFrameInfo::Handler::kCFARegister };
+
+  CFIFixture() {
+    // Default expectations for the data handler.
+    //
+    // - Leave Entry and End without expectations, as it's probably a
+    //   good idea to set those explicitly in each test.
+    //
+    // - Expect the *Rule functions to not be called, 
+    //   so that each test can simply list the calls they expect.
+    //
+    // I gather I could use StrictMock for this, but the manual seems
+    // to suggest using that only as a last resort, and this isn't so
+    // bad.
+    EXPECT_CALL(handler, UndefinedRule(_, _)).Times(0);
+    EXPECT_CALL(handler, SameValueRule(_, _)).Times(0);
+    EXPECT_CALL(handler, OffsetRule(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, ValOffsetRule(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, RegisterRule(_, _, _)).Times(0);
+    EXPECT_CALL(handler, ExpressionRule(_, _, _)).Times(0);
+    EXPECT_CALL(handler, ValExpressionRule(_, _, _)).Times(0);
+    EXPECT_CALL(handler, PersonalityRoutine(_, _)).Times(0);
+    EXPECT_CALL(handler, LanguageSpecificDataArea(_, _)).Times(0);
+    EXPECT_CALL(handler, SignalHandler()).Times(0);
+
+    // Default expectations for the error/warning reporer.
+    EXPECT_CALL(reporter, Incomplete(_, _)).Times(0);
+    EXPECT_CALL(reporter, EarlyEHTerminator(_)).Times(0);
+    EXPECT_CALL(reporter, CIEPointerOutOfRange(_, _)).Times(0);
+    EXPECT_CALL(reporter, BadCIEId(_, _)).Times(0);
+    EXPECT_CALL(reporter, UnrecognizedVersion(_, _)).Times(0);
+    EXPECT_CALL(reporter, UnrecognizedAugmentation(_, _)).Times(0);
+    EXPECT_CALL(reporter, InvalidPointerEncoding(_, _)).Times(0);
+    EXPECT_CALL(reporter, UnusablePointerEncoding(_, _)).Times(0);
+    EXPECT_CALL(reporter, RestoreInCIE(_, _)).Times(0);
+    EXPECT_CALL(reporter, BadInstruction(_, _, _)).Times(0);
+    EXPECT_CALL(reporter, NoCFARule(_, _, _)).Times(0);
+    EXPECT_CALL(reporter, EmptyStateStack(_, _, _)).Times(0);
+  }
+
+  MockCallFrameInfoHandler handler;
+  MockCallFrameErrorReporter reporter;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+TEST_F(CFI, EmptyRegion) {
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+  static const uint8_t data[] = { 42 };
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  CallFrameInfo parser(data, 0, &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+TEST_F(CFI, IncompleteLength32) {
+  CFISection section(kBigEndian, 8);
+  section
+      // Not even long enough for an initial length.
+      .D16(0xa0f)
+      // Padding to keep valgrind happy. We subtract these off when we
+      // construct the parser.
+      .D16(0);
+
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+
+  EXPECT_CALL(reporter, Incomplete(_, CallFrameInfo::kUnknown))
+      .WillOnce(Return());
+
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(8);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size() - 2,
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+TEST_F(CFI, IncompleteLength64) {
+  CFISection section(kLittleEndian, 4);
+  section
+      // An incomplete 64-bit DWARF initial length.
+      .D32(0xffffffff).D32(0x71fbaec2)
+      // Padding to keep valgrind happy. We subtract these off when we
+      // construct the parser.
+      .D32(0);
+
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+
+  EXPECT_CALL(reporter, Incomplete(_, CallFrameInfo::kUnknown))
+      .WillOnce(Return());
+
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size() - 4,
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+TEST_F(CFI, IncompleteId32) {
+  CFISection section(kBigEndian, 8);
+  section
+      .D32(3)                      // Initial length, not long enough for id
+      .D8(0xd7).D8(0xe5).D8(0xf1)  // incomplete id
+      .CIEHeader(8727, 3983, 8889, 3, "")
+      .FinishEntry();
+
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+
+  EXPECT_CALL(reporter, Incomplete(_, CallFrameInfo::kUnknown))
+      .WillOnce(Return());
+
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(8);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+TEST_F(CFI, BadId32) {
+  CFISection section(kBigEndian, 8);
+  section
+      .D32(0x100)                       // Initial length
+      .D32(0xe802fade)                  // bogus ID
+      .Append(0x100 - 4, 0x42);         // make the length true
+  section
+      .CIEHeader(1672, 9872, 8529, 3, "")
+      .FinishEntry();
+
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+
+  EXPECT_CALL(reporter, CIEPointerOutOfRange(_, 0xe802fade))
+      .WillOnce(Return());
+
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(8);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+// A lone CIE shouldn't cause any handler calls.
+TEST_F(CFI, SingleCIE) {
+  CFISection section(kLittleEndian, 4);
+  section.CIEHeader(0xffe799a8, 0x3398dcdd, 0x6e9683de, 3, "");
+  section.Append(10, dwarf2reader::DW_CFA_nop);
+  section.FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("SingleCIE", section);
+
+  EXPECT_CALL(handler, Entry(_, _, _, _, _, _)).Times(0);
+  EXPECT_CALL(handler, End()).Times(0);
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+// One FDE, one CIE.
+TEST_F(CFI, OneFDE) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(0x4be22f75, 0x2492236e, 0x6b6efb87, 3, "")
+      .FinishEntry()
+      .FDEHeader(cie, 0x7714740d, 0x3d5a10cd)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("OneFDE", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, 0x7714740d, 0x3d5a10cd, 3, "", 0x6b6efb87))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+// Two FDEs share a CIE.
+TEST_F(CFI, TwoFDEsOneCIE) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      // First FDE. readelf complains about this one because it makes
+      // a forward reference to its CIE.
+      .FDEHeader(cie, 0xa42744df, 0xa3b42121)
+      .FinishEntry()
+      // CIE.
+      .Mark(&cie)
+      .CIEHeader(0x04f7dc7b, 0x3d00c05f, 0xbd43cb59, 3, "")
+      .FinishEntry()
+      // Second FDE.
+      .FDEHeader(cie, 0x6057d391, 0x700f608d)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("TwoFDEsOneCIE", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, 0xa42744df, 0xa3b42121, 3, "", 0xbd43cb59))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, 0x6057d391, 0x700f608d, 3, "", 0xbd43cb59))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+// Two FDEs, two CIEs.
+TEST_F(CFI, TwoFDEsTwoCIEs) {
+  CFISection section(kLittleEndian, 8);
+  Label cie1, cie2;
+  section
+      // First CIE.
+      .Mark(&cie1)
+      .CIEHeader(0x694d5d45, 0x4233221b, 0xbf45e65a, 3, "")
+      .FinishEntry()
+      // First FDE which cites second CIE. readelf complains about
+      // this one because it makes a forward reference to its CIE.
+      .FDEHeader(cie2, 0x778b27dfe5871f05ULL, 0x324ace3448070926ULL)
+      .FinishEntry()
+      // Second FDE, which cites first CIE.
+      .FDEHeader(cie1, 0xf6054ca18b10bf5fULL, 0x45fdb970d8bca342ULL)
+      .FinishEntry()
+      // Second CIE.
+      .Mark(&cie2)
+      .CIEHeader(0xfba3fad7, 0x6287e1fd, 0x61d2c581, 2, "")
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("TwoFDEsTwoCIEs", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, 0x778b27dfe5871f05ULL, 0x324ace3448070926ULL, 2,
+                      "", 0x61d2c581))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, 0xf6054ca18b10bf5fULL, 0x45fdb970d8bca342ULL, 3,
+                      "", 0xbf45e65a))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  byte_reader.SetAddressSize(8);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+// An FDE whose CIE specifies a version we don't recognize.
+TEST_F(CFI, BadVersion) {
+  CFISection section(kBigEndian, 4);
+  Label cie1, cie2;
+  section
+      .Mark(&cie1)
+      .CIEHeader(0xca878cf0, 0x7698ec04, 0x7b616f54, 0x52, "")
+      .FinishEntry()
+      // We should skip this entry, as its CIE specifies a version we
+      // don't recognize.
+      .FDEHeader(cie1, 0x08852292, 0x2204004a)
+      .FinishEntry()
+      // Despite the above, we should visit this entry.
+      .Mark(&cie2)
+      .CIEHeader(0x7c3ae7c9, 0xb9b9a512, 0x96cb3264, 3, "")
+      .FinishEntry()
+      .FDEHeader(cie2, 0x2094735a, 0x6e875501)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("BadVersion", section);
+
+  EXPECT_CALL(reporter, UnrecognizedVersion(_, 0x52))
+    .WillOnce(Return());
+
+  {
+    InSequence s;
+    // We should see no mention of the first FDE, but we should get
+    // a call to Entry for the second.
+    EXPECT_CALL(handler, Entry(_, 0x2094735a, 0x6e875501, 3, "",
+                               0x96cb3264))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End())
+        .WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+// An FDE whose CIE specifies an augmentation we don't recognize.
+TEST_F(CFI, BadAugmentation) {
+  CFISection section(kBigEndian, 4);
+  Label cie1, cie2;
+  section
+      .Mark(&cie1)
+      .CIEHeader(0x4be22f75, 0x2492236e, 0x6b6efb87, 3, "spaniels!")
+      .FinishEntry()
+      // We should skip this entry, as its CIE specifies an
+      // augmentation we don't recognize.
+      .FDEHeader(cie1, 0x7714740d, 0x3d5a10cd)
+      .FinishEntry()
+      // Despite the above, we should visit this entry.
+      .Mark(&cie2)
+      .CIEHeader(0xf8bc4399, 0x8cf09931, 0xf2f519b2, 3, "")
+      .FinishEntry()
+      .FDEHeader(cie2, 0x7bf0fda0, 0xcbcd28d8)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("BadAugmentation", section);
+
+  EXPECT_CALL(reporter, UnrecognizedAugmentation(_, "spaniels!"))
+    .WillOnce(Return());
+
+  {
+    InSequence s;
+    // We should see no mention of the first FDE, but we should get
+    // a call to Entry for the second.
+    EXPECT_CALL(handler, Entry(_, 0x7bf0fda0, 0xcbcd28d8, 3, "",
+                               0xf2f519b2))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End())
+        .WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+// The return address column field is a byte in CFI version 1
+// (DWARF2), but a ULEB128 value in version 3 (DWARF3).
+TEST_F(CFI, CIEVersion1ReturnColumn) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      // CIE, using the version 1 format: return column is a ubyte.
+      .Mark(&cie)
+      // Use a value for the return column that is parsed differently
+      // as a ubyte and as a ULEB128.
+      .CIEHeader(0xbcdea24f, 0x5be28286, 0x9f, 1, "")
+      .FinishEntry()
+      // FDE, citing that CIE.
+      .FDEHeader(cie, 0xb8d347b5, 0x825e55dc)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("CIEVersion1ReturnColumn", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler, Entry(_, 0xb8d347b5, 0x825e55dc, 1, "", 0x9f))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+// The return address column field is a byte in CFI version 1
+// (DWARF2), but a ULEB128 value in version 3 (DWARF3).
+TEST_F(CFI, CIEVersion3ReturnColumn) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      // CIE, using the version 3 format: return column is a ULEB128.
+      .Mark(&cie)
+      // Use a value for the return column that is parsed differently
+      // as a ubyte and as a ULEB128.
+      .CIEHeader(0x0ab4758d, 0xc010fdf7, 0x89, 3, "")
+      .FinishEntry()
+      // FDE, citing that CIE.
+      .FDEHeader(cie, 0x86763f2b, 0x2a66dc23)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("CIEVersion3ReturnColumn", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler, Entry(_, 0x86763f2b, 0x2a66dc23, 3, "", 0x89))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+TEST_F(CFI, CIEVersion4AdditionalFields) {
+  CFISection section(kBigEndian, 8);
+  Label cie;
+  section
+      .Mark(&cie)
+      // CIE version 4 with expected address (64bit) and segment size.
+      .CIEHeader(0x0ab4758d, 0xc010fdf7, 0x89, 4, "", true, 8, 0)
+      .FinishEntry()
+      // FDE, citing that CIE.
+      .FDEHeader(cie, 0x86763f2b, 0x2a66dc23)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("CIEVersion3ReturnColumn", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler, Entry(_, 0x86763f2b, 0x2a66dc23, 4, "", 0x89))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+TEST_F(CFI, CIEVersion4AdditionalFields32BitAddress) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      .Mark(&cie)
+      // CIE version 4 with expected address (32bit) and segment size.
+      .CIEHeader(0x0ab4758d, 0xc010fdf7, 0x89, 4, "", true, 4, 0)
+      .FinishEntry()
+      // FDE, citing that CIE.
+      .FDEHeader(cie, 0x86763f2b, 0x2a66dc23)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("CIEVersion3ReturnColumn", section);
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler, Entry(_, 0x86763f2b, 0x2a66dc23, 4, "", 0x89))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_TRUE(parser.Start());
+}
+
+TEST_F(CFI, CIEVersion4AdditionalFieldsUnexpectedAddressSize) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+
+  section
+      .Mark(&cie)
+      // Unexpected address size.
+      .CIEHeader(0x4be22f75, 0x2492236e, 0x6b6efb87, 4, "", true, 3, 0)
+      .FinishEntry()
+      // FDE, citing that CIE.
+      .FDEHeader(cie, 0x86763f2b, 0x2a66dc23)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("AdditionalFieldsUnexpectedAddress", section);
+
+  EXPECT_CALL(reporter, UnexpectedAddressSize(_, 3))
+    .WillOnce(Return());
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+TEST_F(CFI, CIEVersion4AdditionalFieldsUnexpectedSegmentSize) {
+  CFISection section(kBigEndian, 8);
+  Label cie;
+
+  section
+      .Mark(&cie)
+      .CIEHeader(0xf8bc4399, 0x8cf09931, 0xf2f519b2, 4, "", true, 8, 7)
+      .FinishEntry()
+      .FDEHeader(cie, 0x7bf0fda0, 0xcbcd28d8)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("AdditionalFieldsUnexpectedSegment", section);
+
+  EXPECT_CALL(reporter, UnexpectedSegmentSize(_, 7))
+    .WillOnce(Return());
+
+  string contents;
+  EXPECT_TRUE(section.GetContents(&contents));
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                       contents.size(),
+                       &byte_reader, &handler, &reporter);
+  EXPECT_FALSE(parser.Start());
+}
+
+struct CFIInsnFixture: public CFIFixture {
+  CFIInsnFixture() : CFIFixture() {
+    data_factor = 0xb6f;
+    return_register = 0x9be1ed9f;
+    version = 3;
+    cfa_base_register = 0x383a3aa;
+    cfa_offset = 0xf748;
+  }
+  
+  // Prepare SECTION to receive FDE instructions.
+  //
+  // - Append a stock CIE header that establishes the fixture's
+  //   code_factor, data_factor, return_register, version, and
+  //   augmentation values.
+  // - Have the CIE set up a CFA rule using cfa_base_register and
+  //   cfa_offset.
+  // - Append a stock FDE header, referring to the above CIE, for the
+  //   fde_size bytes at fde_start. Choose fde_start and fde_size
+  //   appropriately for the section's address size.
+  // - Set appropriate expectations on handler in sequence s for the
+  //   frame description entry and the CIE's CFA rule.
+  //
+  // On return, SECTION is ready to have FDE instructions appended to
+  // it, and its FinishEntry member called.
+  void StockCIEAndFDE(CFISection *section) {
+    // Choose appropriate constants for our address size.
+    if (section->AddressSize() == 4) {
+      fde_start = 0xc628ecfbU;
+      fde_size = 0x5dee04a2;
+      code_factor = 0x60b;
+    } else {
+      assert(section->AddressSize() == 8);
+      fde_start = 0x0005c57ce7806bd3ULL;
+      fde_size = 0x2699521b5e333100ULL;
+      code_factor = 0x01008e32855274a8ULL;
+    }
+
+    // Create the CIE.
+    (*section)
+        .Mark(&cie_label)
+        .CIEHeader(code_factor, data_factor, return_register, version,
+                   "")
+        .D8(dwarf2reader::DW_CFA_def_cfa)
+        .ULEB128(cfa_base_register)
+        .ULEB128(cfa_offset)
+        .FinishEntry();
+
+    // Create the FDE.
+    section->FDEHeader(cie_label, fde_start, fde_size);
+
+    // Expect an Entry call for the FDE and a ValOffsetRule call for the
+    // CIE's CFA rule.
+    EXPECT_CALL(handler, Entry(_, fde_start, fde_size, version, "",
+                               return_register))
+        .InSequence(s)
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, ValOffsetRule(fde_start, kCFARegister,
+                                       cfa_base_register, cfa_offset))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  }
+
+  // Run the contents of SECTION through a CallFrameInfo parser,
+  // expecting parser.Start to return SUCCEEDS
+  void ParseSection(CFISection *section, bool succeeds = true) {
+    string contents;
+    EXPECT_TRUE(section->GetContents(&contents));
+    dwarf2reader::Endianness endianness;
+    if (section->endianness() == kBigEndian)
+      endianness = ENDIANNESS_BIG;
+    else {
+      assert(section->endianness() == kLittleEndian);
+      endianness = ENDIANNESS_LITTLE;
+    }
+    ByteReader byte_reader(endianness);
+    byte_reader.SetAddressSize(section->AddressSize());
+    CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                         contents.size(),
+                         &byte_reader, &handler, &reporter);
+    if (succeeds)
+      EXPECT_TRUE(parser.Start());
+    else
+      EXPECT_FALSE(parser.Start());
+  }
+
+  Label cie_label;
+  Sequence s;
+  uint64_t code_factor;
+  int data_factor;
+  unsigned return_register;
+  unsigned version;
+  unsigned cfa_base_register;
+  int cfa_offset;
+  uint64_t fde_start, fde_size;
+};
+
+class CFIInsn: public CFIInsnFixture, public Test { };
+
+TEST_F(CFIInsn, DW_CFA_set_loc) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_set_loc).D32(0xb1ee3e7a)
+      // Use DW_CFA_def_cfa to force a handler call that we can use to
+      // check the effect of the DW_CFA_set_loc.
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x4defb431).ULEB128(0x6d17b0ee)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_set_loc", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(0xb1ee3e7a, kCFARegister, 0x4defb431, 0x6d17b0ee))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_advance_loc) {
+  CFISection section(kBigEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x2a)
+      // Use DW_CFA_def_cfa to force a handler call that we can use to
+      // check the effect of the DW_CFA_advance_loc.
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x5bbb3715).ULEB128(0x0186c7bf)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_advance_loc", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start + 0x2a * code_factor,
+                            kCFARegister, 0x5bbb3715, 0x0186c7bf))
+        .InSequence(s)
+        .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_advance_loc1) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_advance_loc1).D8(0xd8)
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x69d5696a).ULEB128(0x1eb7fc93)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_advance_loc1", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule((fde_start + 0xd8 * code_factor),
+                            kCFARegister, 0x69d5696a, 0x1eb7fc93))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_advance_loc2) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_advance_loc2).D16(0x3adb)
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x3a368bed).ULEB128(0x3194ee37)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_advance_loc2", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule((fde_start + 0x3adb * code_factor),
+                            kCFARegister, 0x3a368bed, 0x3194ee37))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_advance_loc4) {
+  CFISection section(kBigEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_advance_loc4).D32(0x15813c88)
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x135270c5).ULEB128(0x24bad7cb)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_advance_loc4", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule((fde_start + 0x15813c88ULL * code_factor),
+                            kCFARegister, 0x135270c5, 0x24bad7cb))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_MIPS_advance_loc8) {
+  code_factor = 0x2d;
+  CFISection section(kBigEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_MIPS_advance_loc8).D64(0x3c4f3945b92c14ULL)
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0xe17ed602).ULEB128(0x3d162e7f)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_advance_loc8", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule((fde_start + 0x3c4f3945b92c14ULL * code_factor),
+                            kCFARegister, 0xe17ed602, 0x3d162e7f))
+      .InSequence(s)
+      .WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x4e363a85).ULEB128(0x815f9aa7)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("DW_CFA_def_cfa", section);
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, 0x4e363a85, 0x815f9aa7))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa_sf) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_sf).ULEB128(0x8ccb32b7).LEB128(0x9ea)
+      .D8(dwarf2reader::DW_CFA_def_cfa_sf).ULEB128(0x9b40f5da).LEB128(-0x40a2)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, 0x8ccb32b7,
+                            0x9ea * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, 0x9b40f5da,
+                            -0x40a2 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa_register) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_register).ULEB128(0x3e7e9363)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, 0x3e7e9363, cfa_offset))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+// DW_CFA_def_cfa_register should have no effect when applied to a
+// non-base/offset rule.
+TEST_F(CFIInsn, DW_CFA_def_cfa_registerBadRule) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_expression).Block("needle in a haystack")
+      .D8(dwarf2reader::DW_CFA_def_cfa_register).ULEB128(0xf1b49e49)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValExpressionRule(fde_start, kCFARegister,
+                                "needle in a haystack"))
+      .WillRepeatedly(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa_offset) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_offset).ULEB128(0x1e8e3b9b)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, cfa_base_register,
+                            0x1e8e3b9b))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa_offset_sf) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_offset_sf).LEB128(0x970)
+      .D8(dwarf2reader::DW_CFA_def_cfa_offset_sf).LEB128(-0x2cd)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, cfa_base_register,
+                            0x970 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, cfa_base_register,
+                            -0x2cd * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+// DW_CFA_def_cfa_offset should have no effect when applied to a
+// non-base/offset rule.
+TEST_F(CFIInsn, DW_CFA_def_cfa_offsetBadRule) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_expression).Block("six ways to Sunday")
+      .D8(dwarf2reader::DW_CFA_def_cfa_offset).ULEB128(0x1e8e3b9b)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValExpressionRule(fde_start, kCFARegister, "six ways to Sunday"))
+      .WillRepeatedly(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_def_cfa_expression) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_def_cfa_expression).Block("eating crow")
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValExpressionRule(fde_start, kCFARegister,
+                                         "eating crow"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_undefined) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x300ce45d)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, UndefinedRule(fde_start, 0x300ce45d))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_same_value) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_same_value).ULEB128(0x3865a760)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, SameValueRule(fde_start, 0x3865a760))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_offset) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset | 0x2c).ULEB128(0x9f6)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x2c, kCFARegister, 0x9f6 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_offset_extended) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset_extended).ULEB128(0x402b).ULEB128(0xb48)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x402b, kCFARegister, 0xb48 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_offset_extended_sf) {
+  CFISection section(kBigEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset_extended_sf)
+          .ULEB128(0x997c23ee).LEB128(0x2d00)
+      .D8(dwarf2reader::DW_CFA_offset_extended_sf)
+          .ULEB128(0x9519eb82).LEB128(-0xa77)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x997c23ee,
+                         kCFARegister, 0x2d00 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x9519eb82,
+                         kCFARegister, -0xa77 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_val_offset) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_offset).ULEB128(0x623562fe).ULEB128(0x673)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, 0x623562fe,
+                            kCFARegister, 0x673 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_val_offset_sf) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_offset_sf).ULEB128(0x6f4f).LEB128(0xaab)
+      .D8(dwarf2reader::DW_CFA_val_offset_sf).ULEB128(0x2483).LEB128(-0x8a2)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, 0x6f4f,
+                            kCFARegister, 0xaab * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, 0x2483,
+                            kCFARegister, -0x8a2 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_register) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0x278d18f9).ULEB128(0x1a684414)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, RegisterRule(fde_start, 0x278d18f9, 0x1a684414))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_expression) {
+  CFISection section(kBigEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0xa1619fb2)
+      .Block("plus ça change, plus c'est la même chose")
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ExpressionRule(fde_start, 0xa1619fb2,
+                             "plus ça change, plus c'est la même chose"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_val_expression) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_expression).ULEB128(0xc5e4a9e3)
+      .Block("he who has the gold makes the rules")
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValExpressionRule(fde_start, 0xc5e4a9e3,
+                                "he who has the gold makes the rules"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_restore) {
+  CFISection section(kLittleEndian, 8);
+  code_factor = 0x01bd188a9b1fa083ULL;
+  data_factor = -0x1ac8;
+  return_register = 0x8c35b049;
+  version = 2;
+  fde_start = 0x2d70fe998298bbb1ULL;
+  fde_size = 0x46ccc2e63cf0b108ULL;
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(code_factor, data_factor, return_register, version,
+                 "")
+      // Provide a CFA rule, because register rules require them.
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x6ca1d50e).ULEB128(0x372e38e8)
+      // Provide an offset(N) rule for register 0x3c.
+      .D8(dwarf2reader::DW_CFA_offset | 0x3c).ULEB128(0xb348)
+      .FinishEntry()
+      // In the FDE...
+      .FDEHeader(cie, fde_start, fde_size)
+      // At a second address, provide a new offset(N) rule for register 0x3c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x13)
+      .D8(dwarf2reader::DW_CFA_offset | 0x3c).ULEB128(0x9a50)
+      // At a third address, restore the original rule for register 0x3c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x01)
+      .D8(dwarf2reader::DW_CFA_restore | 0x3c)
+      .FinishEntry();
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, fde_start, fde_size, version, "", return_register))
+        .WillOnce(Return(true));
+    // CIE's CFA rule.
+    EXPECT_CALL(handler,
+                ValOffsetRule(fde_start, kCFARegister, 0x6ca1d50e, 0x372e38e8))
+        .WillOnce(Return(true));
+    // CIE's rule for register 0x3c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start, 0x3c, kCFARegister, 0xb348 * data_factor))
+        .WillOnce(Return(true));
+    // FDE's rule for register 0x3c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start + 0x13 * code_factor, 0x3c,
+                           kCFARegister, 0x9a50 * data_factor))
+        .WillOnce(Return(true));
+    // Restore CIE's rule for register 0x3c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start + (0x13 + 0x01) * code_factor, 0x3c,
+                           kCFARegister, 0xb348 * data_factor))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+    
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_restoreNoRule) {
+  CFISection section(kBigEndian, 4);
+  code_factor = 0x005f78143c1c3b82ULL;
+  data_factor = 0x25d0;
+  return_register = 0xe8;
+  version = 1;
+  fde_start = 0x4062e30f;
+  fde_size = 0x5302a389;
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(code_factor, data_factor, return_register, version, "")
+      // Provide a CFA rule, because register rules require them.
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x470aa334).ULEB128(0x099ef127)
+      .FinishEntry()
+      // In the FDE...
+      .FDEHeader(cie, fde_start, fde_size)
+      // At a second address, provide an offset(N) rule for register 0x2c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x7)
+      .D8(dwarf2reader::DW_CFA_offset | 0x2c).ULEB128(0x1f47)
+      // At a third address, restore the (missing) CIE rule for register 0x2c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0xb)
+      .D8(dwarf2reader::DW_CFA_restore | 0x2c)
+      .FinishEntry();
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, fde_start, fde_size, version, "", return_register))
+        .WillOnce(Return(true));
+    // CIE's CFA rule.
+    EXPECT_CALL(handler,
+                ValOffsetRule(fde_start, kCFARegister, 0x470aa334, 0x099ef127))
+        .WillOnce(Return(true));
+    // FDE's rule for register 0x2c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start + 0x7 * code_factor, 0x2c,
+                           kCFARegister, 0x1f47 * data_factor))
+        .WillOnce(Return(true));
+    // Restore CIE's (missing) rule for register 0x2c.
+    EXPECT_CALL(handler,
+                SameValueRule(fde_start + (0x7 + 0xb) * code_factor, 0x2c))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+    
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_restore_extended) {
+  CFISection section(kBigEndian, 4);
+  code_factor = 0x126e;
+  data_factor = -0xd8b;
+  return_register = 0x77711787;
+  version = 3;
+  fde_start = 0x01f55a45;
+  fde_size = 0x452adb80;
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(code_factor, data_factor, return_register, version,
+                 "", true /* dwarf64 */ )
+      // Provide a CFA rule, because register rules require them.
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x56fa0edd).ULEB128(0x097f78a5)
+      // Provide an offset(N) rule for register 0x0f9b8a1c.
+      .D8(dwarf2reader::DW_CFA_offset_extended)
+          .ULEB128(0x0f9b8a1c).ULEB128(0xc979)
+      .FinishEntry()
+      // In the FDE...
+      .FDEHeader(cie, fde_start, fde_size)
+      // At a second address, provide a new offset(N) rule for reg 0x0f9b8a1c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x3)
+      .D8(dwarf2reader::DW_CFA_offset_extended)
+          .ULEB128(0x0f9b8a1c).ULEB128(0x3b7b)
+      // At a third address, restore the original rule for register 0x0f9b8a1c.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 0x04)
+      .D8(dwarf2reader::DW_CFA_restore_extended).ULEB128(0x0f9b8a1c)
+      .FinishEntry();
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                Entry(_, fde_start, fde_size, version, "", return_register))
+        .WillOnce(Return(true));
+    // CIE's CFA rule.
+    EXPECT_CALL(handler,
+                ValOffsetRule(fde_start, kCFARegister, 0x56fa0edd, 0x097f78a5))
+        .WillOnce(Return(true));
+    // CIE's rule for register 0x0f9b8a1c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start, 0x0f9b8a1c, kCFARegister,
+                           0xc979 * data_factor))
+        .WillOnce(Return(true));
+    // FDE's rule for register 0x0f9b8a1c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start + 0x3 * code_factor, 0x0f9b8a1c,
+                           kCFARegister, 0x3b7b * data_factor))
+        .WillOnce(Return(true));
+    // Restore CIE's rule for register 0x0f9b8a1c.
+    EXPECT_CALL(handler,
+                OffsetRule(fde_start + (0x3 + 0x4) * code_factor, 0x0f9b8a1c,
+                           kCFARegister, 0xc979 * data_factor))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End()).WillOnce(Return(true));
+  }
+    
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_remember_and_restore_state) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+
+  // We create a state, save it, modify it, and then restore. We
+  // refer to the state that is overridden the restore as the
+  // "outgoing" state, and the restored state the "incoming" state.
+  //
+  // Register         outgoing        incoming        expect
+  // 1                offset(N)       no rule         new "same value" rule
+  // 2                register(R)     offset(N)       report changed rule
+  // 3                offset(N)       offset(M)       report changed offset
+  // 4                offset(N)       offset(N)       no report
+  // 5                offset(N)       no rule         new "same value" rule
+  section
+      // Create the "incoming" state, which we will save and later restore.
+      .D8(dwarf2reader::DW_CFA_offset | 2).ULEB128(0x9806)
+      .D8(dwarf2reader::DW_CFA_offset | 3).ULEB128(0x995d)
+      .D8(dwarf2reader::DW_CFA_offset | 4).ULEB128(0x7055)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      // Advance to a new instruction; an implementation could legitimately
+      // ignore all but the final rule for a given register at a given address.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      // Create the "outgoing" state, which we will discard.
+      .D8(dwarf2reader::DW_CFA_offset | 1).ULEB128(0xea1a)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(2).ULEB128(0x1d2a3767)
+      .D8(dwarf2reader::DW_CFA_offset | 3).ULEB128(0xdd29)
+      .D8(dwarf2reader::DW_CFA_offset | 5).ULEB128(0xf1ce)
+      // At a third address, restore the incoming state.
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  uint64_t addr = fde_start;
+
+  // Expect the incoming rules to be reported.
+  EXPECT_CALL(handler, OffsetRule(addr, 2, kCFARegister, 0x9806 * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 3, kCFARegister, 0x995d * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 4, kCFARegister, 0x7055 * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+
+  addr += code_factor;
+
+  // After the save, we establish the outgoing rule set.
+  EXPECT_CALL(handler, OffsetRule(addr, 1, kCFARegister, 0xea1a * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, RegisterRule(addr, 2, 0x1d2a3767))
+    .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 3, kCFARegister, 0xdd29 * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 5, kCFARegister, 0xf1ce * data_factor))
+    .InSequence(s).WillOnce(Return(true));
+
+  addr += code_factor;
+
+  // Finally, after the restore, expect to see the differences from
+  // the outgoing to the incoming rules reported.
+  EXPECT_CALL(handler, SameValueRule(addr, 1))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 2, kCFARegister, 0x9806 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(addr, 3, kCFARegister, 0x995d * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, SameValueRule(addr, 5))
+      .InSequence(s).WillOnce(Return(true));
+
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+// Check that restoring a rule set reports changes to the CFA rule.
+TEST_F(CFIInsn, DW_CFA_remember_and_restore_stateCFA) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+
+  section
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_def_cfa_offset).ULEB128(0x90481102)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValOffsetRule(fde_start + code_factor, kCFARegister,
+                                     cfa_base_register, 0x90481102))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(fde_start + code_factor * 2, kCFARegister,
+                                     cfa_base_register, cfa_offset))
+      .InSequence(s).WillOnce(Return(true));
+
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_nop) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_nop)
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x3fb8d4f1).ULEB128(0x078dc67b)
+      .D8(dwarf2reader::DW_CFA_nop)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              ValOffsetRule(fde_start, kCFARegister, 0x3fb8d4f1, 0x078dc67b))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_GNU_window_save) {
+  CFISection section(kBigEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_GNU_window_save)
+      .FinishEntry();
+
+  // Don't include all the rules in any particular sequence.
+
+  // The caller's %o0-%o7 have become the callee's %i0-%i7. This is
+  // the GCC register numbering.
+  for (int i = 8; i < 16; i++)
+    EXPECT_CALL(handler, RegisterRule(fde_start, i, i + 16))
+        .WillOnce(Return(true));
+  // The caller's %l0-%l7 and %i0-%i7 have been saved at the top of
+  // its frame.
+  for (int i = 16; i < 32; i++)
+    EXPECT_CALL(handler, OffsetRule(fde_start, i, kCFARegister, (i-16) * 4))
+        .WillOnce(Return(true));
+
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_GNU_args_size) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_GNU_args_size).ULEB128(0xeddfa520)
+      // Verify that we see this, meaning we parsed the above properly.
+      .D8(dwarf2reader::DW_CFA_offset | 0x23).ULEB128(0x269)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x23, kCFARegister, 0x269 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIInsn, DW_CFA_GNU_negative_offset_extended) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_GNU_negative_offset_extended)
+      .ULEB128(0x430cc87a).ULEB128(0x613)
+      .FinishEntry();
+
+  EXPECT_CALL(handler,
+              OffsetRule(fde_start, 0x430cc87a,
+                         kCFARegister, -0x613 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).InSequence(s).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+// Three FDEs: skip the second
+TEST_F(CFIInsn, SkipFDE) {
+  CFISection section(kBigEndian, 4);
+  Label cie;
+  section
+      // CIE, used by all FDEs.
+      .Mark(&cie)
+      .CIEHeader(0x010269f2, 0x9177, 0xedca5849, 2, "")
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(0x42ed390b).ULEB128(0x98f43aad)
+      .FinishEntry()
+      // First FDE.
+      .FDEHeader(cie, 0xa870ebdd, 0x60f6aa4)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0x3a860351).ULEB128(0x6c9a6bcf)
+      .FinishEntry()
+      // Second FDE.
+      .FDEHeader(cie, 0xc534f7c0, 0xf6552e9, true /* dwarf64 */)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0x1b62c234).ULEB128(0x26586b18)
+      .FinishEntry()
+      // Third FDE.
+      .FDEHeader(cie, 0xf681cfc8, 0x7e4594e)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0x26c53934).ULEB128(0x18eeb8a4)
+      .FinishEntry();
+
+  {
+    InSequence s;
+
+    // Process the first FDE.
+    EXPECT_CALL(handler, Entry(_, 0xa870ebdd, 0x60f6aa4, 2, "", 0xedca5849))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, ValOffsetRule(0xa870ebdd, kCFARegister,
+                                       0x42ed390b, 0x98f43aad))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, RegisterRule(0xa870ebdd, 0x3a860351, 0x6c9a6bcf))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End())
+        .WillOnce(Return(true));
+
+    // Skip the second FDE.
+    EXPECT_CALL(handler, Entry(_, 0xc534f7c0, 0xf6552e9, 2, "", 0xedca5849))
+        .WillOnce(Return(false));
+
+    // Process the third FDE.
+    EXPECT_CALL(handler, Entry(_, 0xf681cfc8, 0x7e4594e, 2, "", 0xedca5849))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, ValOffsetRule(0xf681cfc8, kCFARegister,
+                                       0x42ed390b, 0x98f43aad))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, RegisterRule(0xf681cfc8, 0x26c53934, 0x18eeb8a4))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, End())
+        .WillOnce(Return(true));
+  }
+
+  ParseSection(&section);
+}
+
+// Quit processing in the middle of an entry's instructions.
+TEST_F(CFIInsn, QuitMidentry) {
+  CFISection section(kLittleEndian, 8);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0xe0cf850d).ULEB128(0x15aab431)
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0x46750aa5).Block("meat")
+      .FinishEntry();
+
+  EXPECT_CALL(handler, RegisterRule(fde_start, 0xe0cf850d, 0x15aab431))
+      .InSequence(s).WillOnce(Return(false));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+  
+  ParseSection(&section, false);
+}
+
+class CFIRestore: public CFIInsnFixture, public Test { };
+
+TEST_F(CFIRestore, RestoreUndefinedRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x0bac878e)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, UndefinedRule(fde_start, 0x0bac878e))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreUndefinedRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x7dedff5f)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_same_value).ULEB128(0x7dedff5f)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, UndefinedRule(fde_start, 0x7dedff5f))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, SameValueRule(fde_start + code_factor, 0x7dedff5f))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + 2 * code_factor, 0x7dedff5f))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreSameValueRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_same_value).ULEB128(0xadbc9b3a)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, SameValueRule(fde_start, 0xadbc9b3a))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreSameValueRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_same_value).ULEB128(0x3d90dcb5)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x3d90dcb5)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, SameValueRule(fde_start, 0x3d90dcb5))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0x3d90dcb5))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, SameValueRule(fde_start + 2 * code_factor, 0x3d90dcb5))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreOffsetRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset | 0x14).ULEB128(0xb6f)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, OffsetRule(fde_start, 0x14,
+                                  kCFARegister, 0xb6f * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreOffsetRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset | 0x21).ULEB128(0xeb7)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x21)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, OffsetRule(fde_start, 0x21,
+                                  kCFARegister, 0xeb7 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0x21))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(fde_start + 2 * code_factor, 0x21,
+                                  kCFARegister, 0xeb7 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreOffsetRuleChangedOffset) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_offset | 0x21).ULEB128(0x134)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_offset | 0x21).ULEB128(0xf4f)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, OffsetRule(fde_start, 0x21,
+                                  kCFARegister, 0x134 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(fde_start + code_factor, 0x21,
+                                  kCFARegister, 0xf4f * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, OffsetRule(fde_start + 2 * code_factor, 0x21,
+                                  kCFARegister, 0x134 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValOffsetRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_offset).ULEB128(0x829caee6).ULEB128(0xe4c)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValOffsetRule(fde_start, 0x829caee6,
+                                  kCFARegister, 0xe4c * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValOffsetRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_offset).ULEB128(0xf17c36d6).ULEB128(0xeb7)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0xf17c36d6)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValOffsetRule(fde_start, 0xf17c36d6,
+                                  kCFARegister, 0xeb7 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0xf17c36d6))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(fde_start + 2 * code_factor, 0xf17c36d6,
+                                  kCFARegister, 0xeb7 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValOffsetRuleChangedValOffset) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_offset).ULEB128(0x2cf0ab1b).ULEB128(0x562)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_val_offset).ULEB128(0x2cf0ab1b).ULEB128(0xe88)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValOffsetRule(fde_start, 0x2cf0ab1b,
+                                  kCFARegister, 0x562 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(fde_start + code_factor, 0x2cf0ab1b,
+                                  kCFARegister, 0xe88 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(fde_start + 2 * code_factor, 0x2cf0ab1b,
+                                  kCFARegister, 0x562 * data_factor))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreRegisterRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0x77514acc).ULEB128(0x464de4ce)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, RegisterRule(fde_start, 0x77514acc, 0x464de4ce))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreRegisterRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0xe39acce5).ULEB128(0x095f1559)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0xe39acce5)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, RegisterRule(fde_start, 0xe39acce5, 0x095f1559))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0xe39acce5))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, RegisterRule(fde_start + 2 * code_factor, 0xe39acce5,
+                                    0x095f1559))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreRegisterRuleChangedRegister) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0xd40e21b1).ULEB128(0x16607d6a)
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(0xd40e21b1).ULEB128(0xbabb4742)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, RegisterRule(fde_start, 0xd40e21b1, 0x16607d6a))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, RegisterRule(fde_start + code_factor, 0xd40e21b1,
+                                    0xbabb4742))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, RegisterRule(fde_start + 2 * code_factor, 0xd40e21b1,
+                                    0x16607d6a))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreExpressionRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0x666ae152).Block("dwarf")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ExpressionRule(fde_start, 0x666ae152, "dwarf"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreExpressionRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0xb5ca5c46).Block("elf")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0xb5ca5c46)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ExpressionRule(fde_start, 0xb5ca5c46, "elf"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0xb5ca5c46))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ExpressionRule(fde_start + 2 * code_factor, 0xb5ca5c46,
+                                      "elf"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreExpressionRuleChangedExpression) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0x500f5739).Block("smurf")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_expression).ULEB128(0x500f5739).Block("orc")
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ExpressionRule(fde_start, 0x500f5739, "smurf"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ExpressionRule(fde_start + code_factor, 0x500f5739,
+                                      "orc"))
+      .InSequence(s).WillOnce(Return(true));
+  // Expectations are not wishes.
+  EXPECT_CALL(handler, ExpressionRule(fde_start + 2 * code_factor, 0x500f5739,
+                                      "smurf"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValExpressionRuleUnchanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_expression).ULEB128(0x666ae152)
+      .Block("hideous")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  EXPECT_CALL(handler, ValExpressionRule(fde_start, 0x666ae152, "hideous"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValExpressionRuleChanged) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_expression).ULEB128(0xb5ca5c46)
+      .Block("revolting")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0xb5ca5c46)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("RestoreValExpressionRuleChanged", section);
+
+  EXPECT_CALL(handler, ValExpressionRule(fde_start, 0xb5ca5c46, "revolting"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(fde_start + code_factor, 0xb5ca5c46))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValExpressionRule(fde_start + 2 * code_factor, 0xb5ca5c46,
+                                      "revolting"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+TEST_F(CFIRestore, RestoreValExpressionRuleChangedValExpression) {
+  CFISection section(kLittleEndian, 4);
+  StockCIEAndFDE(&section);
+  section
+      .D8(dwarf2reader::DW_CFA_val_expression).ULEB128(0x500f5739)
+      .Block("repulsive")
+      .D8(dwarf2reader::DW_CFA_remember_state)
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_val_expression).ULEB128(0x500f5739)
+      .Block("nauseous")
+      .D8(dwarf2reader::DW_CFA_advance_loc | 1)
+      .D8(dwarf2reader::DW_CFA_restore_state)
+      .FinishEntry();
+
+  PERHAPS_WRITE_DEBUG_FRAME_FILE("RestoreValExpressionRuleChangedValExpression",
+                                 section);
+
+  EXPECT_CALL(handler, ValExpressionRule(fde_start, 0x500f5739, "repulsive"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValExpressionRule(fde_start + code_factor, 0x500f5739,
+                                      "nauseous"))
+      .InSequence(s).WillOnce(Return(true));
+  // Expectations are not wishes.
+  EXPECT_CALL(handler, ValExpressionRule(fde_start + 2 * code_factor, 0x500f5739,
+                                      "repulsive"))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End()).WillOnce(Return(true));
+
+  ParseSection(&section);
+}
+
+struct EHFrameFixture: public CFIInsnFixture {
+  EHFrameFixture() 
+      : CFIInsnFixture(), section(kBigEndian, 4, true) {
+    encoded_pointer_bases.cfi  = 0x7f496cb2;
+    encoded_pointer_bases.text = 0x540f67b6;
+    encoded_pointer_bases.data = 0xe3eab768;
+    section.SetEncodedPointerBases(encoded_pointer_bases);
+  }
+  CFISection section;
+  CFISection::EncodedPointerBases encoded_pointer_bases;
+
+  // Parse CFIInsnFixture::ParseSection, but parse the section as
+  // .eh_frame data, supplying stock base addresses.
+  void ParseEHFrameSection(CFISection *section, bool succeeds = true) {
+    EXPECT_TRUE(section->ContainsEHFrame());
+    string contents;
+    EXPECT_TRUE(section->GetContents(&contents));
+    dwarf2reader::Endianness endianness;
+    if (section->endianness() == kBigEndian)
+      endianness = ENDIANNESS_BIG;
+    else {
+      assert(section->endianness() == kLittleEndian);
+      endianness = ENDIANNESS_LITTLE;
+    }
+    ByteReader byte_reader(endianness);
+    byte_reader.SetAddressSize(section->AddressSize());
+    byte_reader.SetCFIDataBase(encoded_pointer_bases.cfi,
+                               reinterpret_cast<const uint8_t*>(contents.data()));
+    byte_reader.SetTextBase(encoded_pointer_bases.text);
+    byte_reader.SetDataBase(encoded_pointer_bases.data);
+    CallFrameInfo parser(reinterpret_cast<const uint8_t*>(contents.data()),
+                         contents.size(),
+                         &byte_reader, &handler, &reporter, true);
+    if (succeeds)
+      EXPECT_TRUE(parser.Start());
+    else
+      EXPECT_FALSE(parser.Start());
+  }
+
+};
+
+class EHFrame: public EHFrameFixture, public Test { };
+
+// A simple CIE, an FDE, and a terminator.
+TEST_F(EHFrame, Terminator) {
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(9968, 2466, 67, 1, "")
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(3772).ULEB128(1372)
+      .FinishEntry()
+      .FDEHeader(cie, 0x848037a1, 0x7b30475e)
+      .D8(dwarf2reader::DW_CFA_set_loc).D32(0x17713850)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(5721)
+      .FinishEntry()
+      .D32(0)                           // Terminate the sequence.
+      // This FDE should be ignored.
+      .FDEHeader(cie, 0xf19629fe, 0x439fb09b)
+      .FinishEntry();
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.Terminator", section);
+
+  EXPECT_CALL(handler, Entry(_, 0x848037a1, 0x7b30475e, 1, "", 67))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(0x848037a1, kCFARegister, 3772, 1372))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(0x17713850, 5721))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(reporter, EarlyEHTerminator(_))
+      .InSequence(s).WillOnce(Return());
+
+  ParseEHFrameSection(&section);
+}
+
+// The parser should recognize the Linux Standards Base 'z' augmentations.
+TEST_F(EHFrame, SimpleFDE) {
+  DwarfPointerEncoding lsda_encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_indirect
+                           | dwarf2reader::DW_EH_PE_datarel
+                           | dwarf2reader::DW_EH_PE_sdata2);
+  DwarfPointerEncoding fde_encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_textrel
+                           | dwarf2reader::DW_EH_PE_udata2);
+  
+  section.SetPointerEncoding(fde_encoding);
+  section.SetEncodedPointerBases(encoded_pointer_bases);
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(4873, 7012, 100, 1, "zSLPR")
+      .ULEB128(7)                                // Augmentation data length
+      .D8(lsda_encoding)                         // LSDA pointer format
+      .D8(dwarf2reader::DW_EH_PE_pcrel)          // personality pointer format
+      .EncodedPointer(0x97baa00, dwarf2reader::DW_EH_PE_pcrel) // and value 
+      .D8(fde_encoding)                          // FDE pointer format
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(6706).ULEB128(31)
+      .FinishEntry()
+      .FDEHeader(cie, 0x540f6b56, 0xf686)
+      .ULEB128(2)                                // Augmentation data length
+      .EncodedPointer(0xe3eab475, lsda_encoding) // LSDA pointer, signed
+      .D8(dwarf2reader::DW_CFA_set_loc)
+      .EncodedPointer(0x540fa4ce, fde_encoding)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(0x675e)
+      .FinishEntry()
+      .D32(0);                                   // terminator
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.SimpleFDE", section);
+
+  EXPECT_CALL(handler, Entry(_, 0x540f6b56, 0xf686, 1, "zSLPR", 100))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, PersonalityRoutine(0x97baa00, false))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, LanguageSpecificDataArea(0xe3eab475, true))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, SignalHandler())
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(0x540f6b56, kCFARegister, 6706, 31))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(0x540fa4ce, 0x675e))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+// Check that we can handle an empty 'z' augmentation.
+TEST_F(EHFrame, EmptyZ) {
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(5955, 5805, 228, 1, "z")
+      .ULEB128(0)                                // Augmentation data length
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(3629).ULEB128(247)
+      .FinishEntry()
+      .FDEHeader(cie, 0xda007738, 0xfb55c641)
+      .ULEB128(0)                                // Augmentation data length
+      .D8(dwarf2reader::DW_CFA_advance_loc1).D8(11)
+      .D8(dwarf2reader::DW_CFA_undefined).ULEB128(3769)
+      .FinishEntry();
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.EmptyZ", section);
+
+  EXPECT_CALL(handler, Entry(_, 0xda007738, 0xfb55c641, 1, "z", 228))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, ValOffsetRule(0xda007738, kCFARegister, 3629, 247))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, UndefinedRule(0xda007738 + 11 * 5955, 3769))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+// Check that we recognize bad 'z' augmentation characters.
+TEST_F(EHFrame, BadZ) {
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(6937, 1045, 142, 1, "zQ")
+      .ULEB128(0)                                // Augmentation data length
+      .D8(dwarf2reader::DW_CFA_def_cfa).ULEB128(9006).ULEB128(7725)
+      .FinishEntry()
+      .FDEHeader(cie, 0x1293efa8, 0x236f53f2)
+      .ULEB128(0)                                // Augmentation data length
+      .D8(dwarf2reader::DW_CFA_advance_loc | 12)
+      .D8(dwarf2reader::DW_CFA_register).ULEB128(5667).ULEB128(3462)
+      .FinishEntry();
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.BadZ", section);
+
+  EXPECT_CALL(reporter, UnrecognizedAugmentation(_, "zQ"))
+      .WillOnce(Return());
+
+  ParseEHFrameSection(&section, false);
+}
+
+TEST_F(EHFrame, zL) {
+  Label cie;
+  DwarfPointerEncoding lsda_encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_funcrel
+                           | dwarf2reader::DW_EH_PE_udata2);
+  section
+      .Mark(&cie)
+      .CIEHeader(9285, 9959, 54, 1, "zL")
+      .ULEB128(1)                       // Augmentation data length
+      .D8(lsda_encoding)                // encoding for LSDA pointer in FDE
+
+      .FinishEntry()
+      .FDEHeader(cie, 0xd40091aa, 0x9aa6e746)
+      .ULEB128(2)                       // Augmentation data length
+      .EncodedPointer(0xd40099cd, lsda_encoding) // LSDA pointer
+      .FinishEntry()
+      .D32(0);                                   // terminator
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.zL", section);
+
+  EXPECT_CALL(handler, Entry(_, 0xd40091aa, 0x9aa6e746, 1, "zL", 54))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, LanguageSpecificDataArea(0xd40099cd, false))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+TEST_F(EHFrame, zP) {
+  Label cie;
+  DwarfPointerEncoding personality_encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_datarel
+                           | dwarf2reader::DW_EH_PE_udata2);
+  section
+      .Mark(&cie)
+      .CIEHeader(1097, 6313, 17, 1, "zP")
+      .ULEB128(3)                  // Augmentation data length
+      .D8(personality_encoding)    // encoding for personality routine
+      .EncodedPointer(0xe3eaccac, personality_encoding) // value
+      .FinishEntry()
+      .FDEHeader(cie, 0x0c8350c9, 0xbef11087)
+      .ULEB128(0)                       // Augmentation data length
+      .FinishEntry()
+      .D32(0);                                   // terminator
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.zP", section);
+
+  EXPECT_CALL(handler, Entry(_, 0x0c8350c9, 0xbef11087, 1, "zP", 17))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, PersonalityRoutine(0xe3eaccac, false))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+TEST_F(EHFrame, zR) {
+  Label cie;
+  DwarfPointerEncoding pointer_encoding =
+      DwarfPointerEncoding(dwarf2reader::DW_EH_PE_textrel
+                           | dwarf2reader::DW_EH_PE_sdata2);
+  section.SetPointerEncoding(pointer_encoding);
+  section
+      .Mark(&cie)
+      .CIEHeader(8011, 5496, 75, 1, "zR")
+      .ULEB128(1)                       // Augmentation data length
+      .D8(pointer_encoding)             // encoding for FDE addresses
+      .FinishEntry()
+      .FDEHeader(cie, 0x540f9431, 0xbd0)
+      .ULEB128(0)                       // Augmentation data length
+      .FinishEntry()
+      .D32(0);                          // terminator
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.zR", section);
+
+  EXPECT_CALL(handler, Entry(_, 0x540f9431, 0xbd0, 1, "zR", 75))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+TEST_F(EHFrame, zS) {
+  Label cie;
+  section
+      .Mark(&cie)
+      .CIEHeader(9217, 7694, 57, 1, "zS")
+      .ULEB128(0)                                // Augmentation data length
+      .FinishEntry()
+      .FDEHeader(cie, 0xd40091aa, 0x9aa6e746)
+      .ULEB128(0)                                // Augmentation data length
+      .FinishEntry()
+      .D32(0);                                   // terminator
+
+  PERHAPS_WRITE_EH_FRAME_FILE("EHFrame.zS", section);
+
+  EXPECT_CALL(handler, Entry(_, 0xd40091aa, 0x9aa6e746, 1, "zS", 57))
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, SignalHandler())
+      .InSequence(s).WillOnce(Return(true));
+  EXPECT_CALL(handler, End())
+      .InSequence(s).WillOnce(Return(true));
+
+  ParseEHFrameSection(&section);
+}
+
+// These tests require manual inspection of the test output.
+struct CFIReporterFixture {
+  CFIReporterFixture() : reporter("test file name", "test section name") { }
+  CallFrameInfo::Reporter reporter;
+};
+
+class CFIReporter: public CFIReporterFixture, public Test { };
+
+TEST_F(CFIReporter, Incomplete) {
+  reporter.Incomplete(0x0102030405060708ULL, CallFrameInfo::kUnknown);
+}
+
+TEST_F(CFIReporter, EarlyEHTerminator) {
+  reporter.EarlyEHTerminator(0x0102030405060708ULL);
+}
+
+TEST_F(CFIReporter, CIEPointerOutOfRange) {
+  reporter.CIEPointerOutOfRange(0x0123456789abcdefULL, 0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, BadCIEId) {
+  reporter.BadCIEId(0x0123456789abcdefULL, 0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, UnrecognizedVersion) {
+  reporter.UnrecognizedVersion(0x0123456789abcdefULL, 43);
+}
+
+TEST_F(CFIReporter, UnrecognizedAugmentation) {
+  reporter.UnrecognizedAugmentation(0x0123456789abcdefULL, "poodles");
+}
+
+TEST_F(CFIReporter, InvalidPointerEncoding) {
+  reporter.InvalidPointerEncoding(0x0123456789abcdefULL, 0x42);
+}
+
+TEST_F(CFIReporter, UnusablePointerEncoding) {
+  reporter.UnusablePointerEncoding(0x0123456789abcdefULL, 0x42);
+}
+
+TEST_F(CFIReporter, RestoreInCIE) {
+  reporter.RestoreInCIE(0x0123456789abcdefULL, 0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, BadInstruction) {
+  reporter.BadInstruction(0x0123456789abcdefULL, CallFrameInfo::kFDE,
+                          0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, NoCFARule) {
+  reporter.NoCFARule(0x0123456789abcdefULL, CallFrameInfo::kCIE,
+                     0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, EmptyStateStack) {
+  reporter.EmptyStateStack(0x0123456789abcdefULL, CallFrameInfo::kTerminator,
+                           0xfedcba9876543210ULL);
+}
+
+TEST_F(CFIReporter, ClearingCFARule) {
+  reporter.ClearingCFARule(0x0123456789abcdefULL, CallFrameInfo::kFDE,
+                           0xfedcba9876543210ULL);
+}
+
+#ifdef WRITE_ELF
+// See comments at the top of the file mentioning WRITE_ELF for details.
+
+using google_breakpad::test_assembler::Section;
+
+struct ELFSectionHeader {
+  ELFSectionHeader(unsigned int set_type)
+      : type(set_type), flags(0), address(0), link(0), info(0),
+        alignment(1), entry_size(0) { }
+  Label name;
+  unsigned int type;
+  uint64_t flags;
+  uint64_t address;
+  Label file_offset;
+  Label file_size;
+  unsigned int link;
+  unsigned int info;
+  uint64_t alignment;
+  uint64_t entry_size;
+};
+
+void AppendSectionHeader(CFISection* table, const ELFSectionHeader& header) {
+  (*table)
+      .D32(header.name)                   // name, index in string tbl
+      .D32(header.type)                   // type
+      .Address(header.flags)              // flags
+      .Address(header.address)            // address in memory
+      .Address(header.file_offset)        // offset in ELF file
+      .Address(header.file_size)          // length in bytes
+      .D32(header.link)                   // link to related section
+      .D32(header.info)                   // miscellaneous
+      .Address(header.alignment)          // alignment
+      .Address(header.entry_size);        // entry size
+}
+
+void WriteELFFrameSection(const char *filename, const char *cfi_name,
+                          const CFISection& cfi) {
+  int elf_class = cfi.AddressSize() == 4 ? ELFCLASS32 : ELFCLASS64;
+  int elf_data = (cfi.endianness() == kBigEndian
+                  ? ELFDATA2MSB : ELFDATA2LSB);
+  CFISection elf(cfi.endianness(), cfi.AddressSize());
+  Label elf_header_size, section_table_offset;
+  elf
+      .Append("\x7f" "ELF")
+      .D8(elf_class)              // 32-bit or 64-bit ELF
+      .D8(elf_data)               // endianness
+      .D8(1)                      // ELF version
+      .D8(ELFOSABI_LINUX)         // Operating System/ABI indication
+      .D8(0)                      // ABI version
+      .Append(7, 0xda)            // padding
+      .D16(ET_EXEC)               // file type: executable file
+      .D16(EM_386)                // architecture: Intel IA-32
+      .D32(EV_CURRENT);           // ELF version
+  elf
+      .Address(0x0123456789abcdefULL) // program entry point
+      .Address(0)                 // program header offset
+      .Address(section_table_offset) // section header offset
+      .D32(0)                     // processor-specific flags
+      .D16(elf_header_size)       // ELF header size in bytes */
+      .D16(elf_class == ELFCLASS32 ? 32 : 56) // program header entry size
+      .D16(0)                     // program header table entry count
+      .D16(elf_class == ELFCLASS32 ? 40 : 64) // section header entry size
+      .D16(3)                     // section  count
+      .D16(1)                     // section name string table
+      .Mark(&elf_header_size);
+
+  // The null section. Every ELF file has one, as the first entry in
+  // the section header table.
+  ELFSectionHeader null_header(SHT_NULL);
+  null_header.file_offset = 0;
+  null_header.file_size = 0;
+
+  // The CFI section. The whole reason for writing out this ELF file
+  // is to put this in it so that we can run other dumping programs on
+  // it to check its contents.
+  ELFSectionHeader cfi_header(SHT_PROGBITS);
+  cfi_header.file_size = cfi.Size();
+
+  // The section holding the names of the sections. This is the
+  // section whose index appears in the e_shstrndx member of the ELF
+  // header.
+  ELFSectionHeader section_names_header(SHT_STRTAB);
+  CFISection section_names(cfi.endianness(), cfi.AddressSize());
+  section_names
+      .Mark(&null_header.name)
+      .AppendCString("")
+      .Mark(&section_names_header.name)
+      .AppendCString(".shstrtab")
+      .Mark(&cfi_header.name)
+      .AppendCString(cfi_name)
+      .Mark(&section_names_header.file_size);
+  
+  // Create the section table. The ELF header's e_shoff member refers
+  // to this, and the e_shnum member gives the number of entries it
+  // contains.
+  CFISection section_table(cfi.endianness(), cfi.AddressSize());
+  AppendSectionHeader(&section_table, null_header);
+  AppendSectionHeader(&section_table, section_names_header);
+  AppendSectionHeader(&section_table, cfi_header);
+
+  // Append the section table and the section contents to the ELF file.
+  elf
+      .Mark(&section_table_offset)
+      .Append(section_table)
+      .Mark(&section_names_header.file_offset)
+      .Append(section_names)
+      .Mark(&cfi_header.file_offset)
+      .Append(cfi);
+
+  string contents;
+  if (!elf.GetContents(&contents)) {
+    fprintf(stderr, "failed to get ELF file contents\n");
+    exit(1);
+  }
+
+  FILE *out = fopen(filename, "w");
+  if (!out) {
+    fprintf(stderr, "error opening ELF file '%s': %s\n",
+            filename, strerror(errno));
+    exit(1);
+  }
+
+  if (fwrite(contents.data(), 1, contents.size(), out) != contents.size()) {
+    fprintf(stderr, "error writing ELF data to '%s': %s\n",
+            filename, strerror(errno));
+    exit(1);
+  }
+
+  if (fclose(out) == EOF) {
+    fprintf(stderr, "error closing ELF file '%s': %s\n",
+            filename, strerror(errno));
+    exit(1);
+  }
+}
+#endif
diff --git a/src/common/dwarf/dwarf2reader_die_unittest.cc b/src/common/dwarf/dwarf2reader_die_unittest.cc
new file mode 100644
index 0000000..4240fa8
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader_die_unittest.cc
@@ -0,0 +1,659 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2reader_die_unittest.cc: Unit tests for dwarf2reader::CompilationUnit
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/dwarf2reader_test_common.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+using google_breakpad::test_assembler::Endianness;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+
+using dwarf2reader::ByteReader;
+using dwarf2reader::CompilationUnit;
+using dwarf2reader::Dwarf2Handler;
+using dwarf2reader::DwarfAttribute;
+using dwarf2reader::DwarfForm;
+using dwarf2reader::DwarfHasChild;
+using dwarf2reader::DwarfTag;
+using dwarf2reader::ENDIANNESS_BIG;
+using dwarf2reader::ENDIANNESS_LITTLE;
+using dwarf2reader::SectionMap;
+
+using std::vector;
+using testing::InSequence;
+using testing::Pointee;
+using testing::Return;
+using testing::Sequence;
+using testing::Test;
+using testing::TestWithParam;
+using testing::_;
+
+class MockDwarf2Handler: public Dwarf2Handler {
+ public:
+  MOCK_METHOD5(StartCompilationUnit, bool(uint64_t offset, uint8_t address_size,
+                                          uint8_t offset_size,
+                                          uint64_t cu_length,
+                                          uint8_t dwarf_version));
+  MOCK_METHOD2(StartDIE, bool(uint64_t offset, enum DwarfTag tag));
+  MOCK_METHOD4(ProcessAttributeUnsigned, void(uint64_t offset,
+                                              DwarfAttribute attr,
+                                              enum DwarfForm form,
+                                              uint64_t data));
+  MOCK_METHOD4(ProcessAttributeSigned, void(uint64_t offset,
+                                            enum DwarfAttribute attr,
+                                            enum DwarfForm form,
+                                            int64_t data));
+  MOCK_METHOD4(ProcessAttributeReference, void(uint64_t offset,
+                                               enum DwarfAttribute attr,
+                                               enum DwarfForm form,
+                                               uint64_t data));
+  MOCK_METHOD5(ProcessAttributeBuffer, void(uint64_t offset,
+                                            enum DwarfAttribute attr,
+                                            enum DwarfForm form,
+                                            const uint8_t* data,
+                                            uint64_t len));
+  MOCK_METHOD4(ProcessAttributeString, void(uint64_t offset,
+                                            enum DwarfAttribute attr,
+                                            enum DwarfForm form,
+                                            const string& data));
+  MOCK_METHOD4(ProcessAttributeSignature, void(uint64_t offset,
+                                               DwarfAttribute attr,
+                                               enum DwarfForm form,
+                                               uint64_t signature));
+  MOCK_METHOD1(EndDIE, void(uint64_t offset));
+};
+
+struct DIEFixture {
+
+  DIEFixture() {
+    // Fix the initial offset of the .debug_info and .debug_abbrev sections.
+    info.start() = 0;
+    abbrevs.start() = 0;
+
+    // Default expectations for the data handler.
+    EXPECT_CALL(handler, StartCompilationUnit(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(handler, StartDIE(_, _)).Times(0);
+    EXPECT_CALL(handler, ProcessAttributeUnsigned(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, ProcessAttributeSigned(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, ProcessAttributeReference(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, ProcessAttributeBuffer(_, _, _, _, _)).Times(0);
+    EXPECT_CALL(handler, ProcessAttributeString(_, _, _, _)).Times(0);
+    EXPECT_CALL(handler, EndDIE(_)).Times(0);
+  }
+
+  // Return a reference to a section map whose .debug_info section refers
+  // to |info|, and whose .debug_abbrev section refers to |abbrevs|. This
+  // function returns a reference to the same SectionMap each time; new
+  // calls wipe out maps established by earlier calls.
+  const SectionMap& MakeSectionMap() {
+    // Copy the sections' contents into strings that will live as long as
+    // the map itself.
+    assert(info.GetContents(&info_contents));
+    assert(abbrevs.GetContents(&abbrevs_contents));
+    section_map.clear();
+    section_map[".debug_info"].first
+      = reinterpret_cast<const uint8_t*>(info_contents.data());
+    section_map[".debug_info"].second = info_contents.size();
+    section_map[".debug_abbrev"].first
+      = reinterpret_cast<const uint8_t*>(abbrevs_contents.data());
+    section_map[".debug_abbrev"].second = abbrevs_contents.size();
+    return section_map;
+  }
+
+  TestCompilationUnit info;
+  TestAbbrevTable abbrevs;
+  MockDwarf2Handler handler;
+  string abbrevs_contents, info_contents;
+  SectionMap section_map;
+};
+
+struct DwarfHeaderParams {
+  DwarfHeaderParams(Endianness endianness, size_t format_size,
+                   int version, size_t address_size)
+      : endianness(endianness), format_size(format_size),
+        version(version), address_size(address_size) { }
+  Endianness endianness;
+  size_t format_size;                   // 4-byte or 8-byte DWARF offsets
+  int version;
+  size_t address_size;
+};
+
+class DwarfHeader: public DIEFixture,
+                   public TestWithParam<DwarfHeaderParams> { };
+
+TEST_P(DwarfHeader, Header) {
+  Label abbrev_table = abbrevs.Here();
+  abbrevs.Abbrev(1, dwarf2reader::DW_TAG_compile_unit,
+                 dwarf2reader::DW_children_yes)
+      .Attribute(dwarf2reader::DW_AT_name, dwarf2reader::DW_FORM_string)
+      .EndAbbrev()
+      .EndTable();
+
+  info.set_format_size(GetParam().format_size);
+  info.set_endianness(GetParam().endianness);
+
+  info.Header(GetParam().version, abbrev_table, GetParam().address_size)
+      .ULEB128(1)                     // DW_TAG_compile_unit, with children
+      .AppendCString("sam")           // DW_AT_name, DW_FORM_string
+      .D8(0);                         // end of children
+  info.Finish();
+
+  {
+    InSequence s;
+    EXPECT_CALL(handler,
+                StartCompilationUnit(0, GetParam().address_size,
+                                     GetParam().format_size, _,
+                                     GetParam().version))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, StartDIE(_, dwarf2reader::DW_TAG_compile_unit))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, ProcessAttributeString(_, dwarf2reader::DW_AT_name, 
+                                                dwarf2reader::DW_FORM_string,
+                                                "sam"))
+        .WillOnce(Return());
+    EXPECT_CALL(handler, EndDIE(_))
+        .WillOnce(Return());
+  }
+
+  ByteReader byte_reader(GetParam().endianness == kLittleEndian ?
+                         ENDIANNESS_LITTLE : ENDIANNESS_BIG);
+  CompilationUnit parser("", MakeSectionMap(), 0, &byte_reader, &handler);
+  EXPECT_EQ(parser.Start(), info_contents.size());
+}
+
+INSTANTIATE_TEST_CASE_P(
+    HeaderVariants, DwarfHeader,
+    ::testing::Values(DwarfHeaderParams(kLittleEndian, 4, 2, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 2, 8),
+                      DwarfHeaderParams(kLittleEndian, 4, 3, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 3, 8),
+                      DwarfHeaderParams(kLittleEndian, 4, 4, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 4, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 2, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 2, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 3, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 3, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 4, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 4, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 5, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 5, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 2, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 2, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 3, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 3, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 4, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 4, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 2, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 2, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 3, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 3, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 4, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 4, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 5, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 5, 8)));
+
+struct DwarfFormsFixture: public DIEFixture {
+  // Start a compilation unit, as directed by |params|, containing one
+  // childless DIE of the given tag, with one attribute of the given name
+  // and form. The 'info' fixture member is left just after the abbrev
+  // code, waiting for the attribute value to be appended.
+  void StartSingleAttributeDIE(const DwarfHeaderParams& params,
+                               DwarfTag tag, DwarfAttribute name,
+                               DwarfForm form) {
+    // Create the abbreviation table.
+    Label abbrev_table = abbrevs.Here();
+    abbrevs.Abbrev(1, tag, dwarf2reader::DW_children_no)
+        .Attribute(name, form)
+        .EndAbbrev()
+        .EndTable();
+
+    // Create the compilation unit, up to the attribute value.
+    info.set_format_size(params.format_size);
+    info.set_endianness(params.endianness);
+    info.Header(params.version, abbrev_table, params.address_size)
+        .ULEB128(1);                    // abbrev code
+  }
+
+  // Set up handler to expect a compilation unit matching |params|,
+  // containing one childless DIE of the given tag, in the sequence s. Stop
+  // just before the expectations.
+  void ExpectBeginCompilationUnit(const DwarfHeaderParams& params,
+                                  DwarfTag tag, uint64_t offset=0) {
+    EXPECT_CALL(handler,
+                StartCompilationUnit(offset, params.address_size,
+                                     params.format_size, _,
+                                     params.version))
+        .InSequence(s)
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, StartDIE(_, tag))
+        .InSequence(s)
+        .WillOnce(Return(true));
+  }
+
+  void ExpectEndCompilationUnit() {
+    EXPECT_CALL(handler, EndDIE(_))
+        .InSequence(s)
+        .WillOnce(Return());
+  }
+
+  void ParseCompilationUnit(const DwarfHeaderParams& params,
+                            uint64_t offset=0) {
+    ByteReader byte_reader(params.endianness == kLittleEndian ?
+                           ENDIANNESS_LITTLE : ENDIANNESS_BIG);
+    CompilationUnit parser("", MakeSectionMap(), offset, &byte_reader, &handler);
+    EXPECT_EQ(offset + parser.Start(), info_contents.size());
+  }
+
+  // The sequence to which the fixture's methods append expectations.
+  Sequence s;
+};
+
+struct DwarfForms: public DwarfFormsFixture,
+                   public TestWithParam<DwarfHeaderParams> { };
+
+TEST_P(DwarfForms, addr) {
+  StartSingleAttributeDIE(GetParam(), dwarf2reader::DW_TAG_compile_unit,
+                          dwarf2reader::DW_AT_low_pc,
+                          dwarf2reader::DW_FORM_addr);
+  uint64_t value;
+  if (GetParam().address_size == 4) {
+    value = 0xc8e9ffcc;
+    info.D32(value);
+  } else {
+    value = 0xe942517fc2768564ULL;
+    info.D64(value);
+  }
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), dwarf2reader::DW_TAG_compile_unit);
+  EXPECT_CALL(handler, ProcessAttributeUnsigned(_, dwarf2reader::DW_AT_low_pc, 
+                                                dwarf2reader::DW_FORM_addr,
+                                                value))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, block2_empty) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x16e4d2f7,
+                          (DwarfAttribute) 0xe52c4463,
+                          dwarf2reader::DW_FORM_block2);
+  info.D16(0);
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x16e4d2f7);
+  EXPECT_CALL(handler, ProcessAttributeBuffer(_, (DwarfAttribute) 0xe52c4463,
+                                              dwarf2reader::DW_FORM_block2,
+                                              _, 0))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, block2) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x16e4d2f7,
+                          (DwarfAttribute) 0xe52c4463,
+                          dwarf2reader::DW_FORM_block2);
+  unsigned char data[258];
+  memset(data, '*', sizeof(data));
+  info.D16(sizeof(data))
+      .Append(data, sizeof(data));
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x16e4d2f7);
+  EXPECT_CALL(handler, ProcessAttributeBuffer(_, (DwarfAttribute) 0xe52c4463,
+                                              dwarf2reader::DW_FORM_block2,
+                                              Pointee('*'), 258))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, flag_present) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x3e449ac2,
+                          (DwarfAttribute) 0x359d1972,
+                          dwarf2reader::DW_FORM_flag_present);
+  // DW_FORM_flag_present occupies no space in the DIE.
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x3e449ac2);
+  EXPECT_CALL(handler,
+              ProcessAttributeUnsigned(_, (DwarfAttribute) 0x359d1972,
+                                       dwarf2reader::DW_FORM_flag_present,
+                                       1))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, sec_offset) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x1d971689,
+                          (DwarfAttribute) 0xa060bfd1,
+                          dwarf2reader::DW_FORM_sec_offset);
+  uint64_t value;
+  if (GetParam().format_size == 4) {
+    value = 0xacc9c388;
+    info.D32(value);
+  } else {
+    value = 0xcffe5696ffe3ed0aULL;
+    info.D64(value);
+  }
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x1d971689);
+  EXPECT_CALL(handler, ProcessAttributeUnsigned(_, (DwarfAttribute) 0xa060bfd1,
+                                                dwarf2reader::DW_FORM_sec_offset,
+                                                value))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, exprloc) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0xb6d167bb,
+                          (DwarfAttribute) 0xba3ae5cb,
+                          dwarf2reader::DW_FORM_exprloc);
+  info.ULEB128(29)
+      .Append(29, 173);
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0xb6d167bb);
+  EXPECT_CALL(handler, ProcessAttributeBuffer(_, (DwarfAttribute) 0xba3ae5cb,
+                                              dwarf2reader::DW_FORM_exprloc,
+                                              Pointee(173), 29))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+TEST_P(DwarfForms, ref_sig8) {
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x253e7b2b,
+                          (DwarfAttribute) 0xd708d908,
+                          dwarf2reader::DW_FORM_ref_sig8);
+  info.D64(0xf72fa0cb6ddcf9d6ULL);
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x253e7b2b);
+  EXPECT_CALL(handler, ProcessAttributeSignature(_, (DwarfAttribute) 0xd708d908,
+                                                 dwarf2reader::DW_FORM_ref_sig8,
+                                                 0xf72fa0cb6ddcf9d6ULL))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+// A value passed to ProcessAttributeSignature is just an absolute number,
+// not an offset within the compilation unit as most of the other
+// DW_FORM_ref forms are. Check that the reader doesn't try to apply any
+// offset to the signature, by reading it from a compilation unit that does
+// not start at the beginning of the section.
+TEST_P(DwarfForms, ref_sig8_not_first) {
+  info.Append(98, '*');
+  StartSingleAttributeDIE(GetParam(), (DwarfTag) 0x253e7b2b,
+                          (DwarfAttribute) 0xd708d908,
+                          dwarf2reader::DW_FORM_ref_sig8);
+  info.D64(0xf72fa0cb6ddcf9d6ULL);
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x253e7b2b, 98);
+  EXPECT_CALL(handler, ProcessAttributeSignature(_, (DwarfAttribute) 0xd708d908,
+                                                 dwarf2reader::DW_FORM_ref_sig8,
+                                                 0xf72fa0cb6ddcf9d6ULL))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam(), 98);
+}
+
+TEST_P(DwarfForms, implicit_const) {
+  const DwarfHeaderParams& params = GetParam();
+  const uint64_t implicit_constant_value = 0x1234;
+  // Create the abbreviation table.
+  Label abbrev_table = abbrevs.Here();
+  abbrevs.Abbrev(1, (DwarfTag) 0x253e7b2b, dwarf2reader::DW_children_no)
+      .Attribute((DwarfAttribute) 0xd708d908,
+                 dwarf2reader::DW_FORM_implicit_const)
+      .ULEB128(implicit_constant_value);
+  abbrevs.EndAbbrev().EndTable();
+
+  info.set_format_size(params.format_size);
+  info.set_endianness(params.endianness);
+  info.Header(params.version, abbrev_table, params.address_size)
+          .ULEB128(1);                    // abbrev code
+  info.Finish();
+
+  ExpectBeginCompilationUnit(GetParam(), (DwarfTag) 0x253e7b2b);
+  EXPECT_CALL(handler,
+              ProcessAttributeUnsigned(_, (DwarfAttribute) 0xd708d908,
+                                       dwarf2reader::DW_FORM_implicit_const,
+                                       implicit_constant_value))
+      .InSequence(s)
+      .WillOnce(Return());
+  ExpectEndCompilationUnit();
+
+  ParseCompilationUnit(GetParam());
+}
+
+// Tests for the other attribute forms could go here.
+
+INSTANTIATE_TEST_CASE_P(
+    HeaderVariants, DwarfForms,
+    ::testing::Values(DwarfHeaderParams(kLittleEndian, 4, 2, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 2, 8),
+                      DwarfHeaderParams(kLittleEndian, 4, 3, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 3, 8),
+                      DwarfHeaderParams(kLittleEndian, 4, 4, 4),
+                      DwarfHeaderParams(kLittleEndian, 4, 4, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 2, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 2, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 3, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 3, 8),
+                      DwarfHeaderParams(kLittleEndian, 8, 4, 4),
+                      DwarfHeaderParams(kLittleEndian, 8, 4, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 2, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 2, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 3, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 3, 8),
+                      DwarfHeaderParams(kBigEndian,    4, 4, 4),
+                      DwarfHeaderParams(kBigEndian,    4, 4, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 2, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 2, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 3, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 3, 8),
+                      DwarfHeaderParams(kBigEndian,    8, 4, 4),
+                      DwarfHeaderParams(kBigEndian,    8, 4, 8)));
+
+class MockRangeListHandler: public dwarf2reader::RangeListHandler {
+ public:
+  MOCK_METHOD(void, AddRange, (uint64_t begin, uint64_t end));
+  MOCK_METHOD(void, Finish, ());
+};
+
+TEST(RangeList, Dwarf4ReadRangeList) {
+  using dwarf2reader::RangeListReader;
+  using dwarf2reader::DW_FORM_sec_offset;
+
+  // Create a dwarf4 .debug_ranges section.
+  google_breakpad::test_assembler::Section ranges(kBigEndian);
+  std::string padding_offset = "padding offset";
+  ranges.Append(padding_offset);
+  const uint64_t section_offset = ranges.Size();
+  ranges.D32(1).D32(2);          // (2, 3)
+  ranges.D32(0xFFFFFFFF).D32(3); // base_address = 3.
+  ranges.D32(1).D32(2);          // (4, 5)
+  ranges.D32(0).D32(1);          // (3, 4) An out of order entry is legal.
+  ranges.D32(0).D32(0);          // End of range.
+
+  std::string section_contents;
+  ranges.GetContents(&section_contents);
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+
+  RangeListReader::CURangesInfo cu_info;
+  // Only set the fields that matter for dwarf 4.
+  cu_info.version_ = 4;
+  cu_info.base_address_ = 1;
+  cu_info.buffer_ = reinterpret_cast<const uint8_t*>(section_contents.data());
+  cu_info.size_ = section_contents.size();
+
+  MockRangeListHandler handler;
+  dwarf2reader::RangeListReader range_list_reader(&byte_reader, &cu_info,
+                                                  &handler);
+  EXPECT_CALL(handler, AddRange(2, 3));
+  EXPECT_CALL(handler, AddRange(4, 5));
+  EXPECT_CALL(handler, AddRange(3, 4));
+  EXPECT_CALL(handler, Finish());
+  EXPECT_TRUE(range_list_reader.ReadRanges(DW_FORM_sec_offset,
+                                           section_offset));
+}
+
+TEST(RangeList, Dwarf5ReadRangeList) {
+  using dwarf2reader::RangeListReader;
+  using dwarf2reader::DW_RLE_base_addressx;
+  using dwarf2reader::DW_RLE_startx_endx;
+  using dwarf2reader::DW_RLE_startx_length;
+  using dwarf2reader::DW_RLE_offset_pair;
+  using dwarf2reader::DW_RLE_end_of_list;
+  using dwarf2reader::DW_RLE_base_address;
+  using dwarf2reader::DW_RLE_start_end;
+  using dwarf2reader::DW_RLE_start_length;
+  using dwarf2reader::DW_FORM_sec_offset;
+  using dwarf2reader::DW_FORM_rnglistx;
+
+  // .debug_addr for the indexed entries like startx.
+  Section addr;
+  addr.set_endianness(kBigEndian);
+  // Test addr_base handling with a padding address at 0.
+  addr.D32(0).D32(1).D32(2).D32(3).D32(4);
+  std::string addr_contents;
+  assert(addr.GetContents(&addr_contents));
+
+  // .debug_rnglists is the dwarf 5 section.
+  Section rnglists;
+  rnglists.set_endianness(kBigEndian);
+  std::string padding_offset = "padding offset";
+  rnglists.Append(padding_offset);
+  const uint64_t ranges_base = rnglists.Size();
+
+  // Header
+  Label section_size;
+  rnglists.Append(kBigEndian, 4, section_size);
+  rnglists.D16(5); // Version
+  rnglists.D8(4);  // Address size
+  rnglists.D8(0);  // Segment selector size
+  rnglists.D32(2); // Offset entry count
+  // Offset entries.
+  Label range0;
+  rnglists.Append(kBigEndian, 4, range0);
+  Label range1;
+  rnglists.Append(kBigEndian, 4, range1);
+
+  // Range 0 (will be read via DW_AT_ranges, DW_FORM_sec_offset).
+  range0 = rnglists.Size();
+  rnglists.D8(DW_RLE_base_addressx).ULEB128(0); // base_addr = 1
+  rnglists.D8(DW_RLE_startx_endx).ULEB128(1).ULEB128(2); // (2, 3)
+  rnglists.D8(DW_RLE_startx_length).ULEB128(3).ULEB128(1); // (4, 5)
+  rnglists.D8(DW_RLE_offset_pair).ULEB128(5).ULEB128(6); // (6, 7)
+  rnglists.D8(DW_RLE_end_of_list);
+
+  // Range 1 (will be read via DW_AT_ranges, DW_FORM_rnglistx).
+  range1 = rnglists.Size();
+  rnglists.D8(DW_RLE_base_address).D32(8); // base_addr = 8
+  rnglists.D8(DW_RLE_offset_pair).ULEB128(1).ULEB128(2); // (9, 10)
+  rnglists.D8(DW_RLE_start_end).D32(10).D32(11); // (10, 11)
+  rnglists.D8(DW_RLE_start_length).D32(12).ULEB128(1); // (12, 13)
+  rnglists.D8(DW_RLE_end_of_list);
+  section_size = rnglists.Size();
+  std::string rnglists_contents;
+  assert(rnglists.GetContents(&rnglists_contents));
+
+  RangeListReader::CURangesInfo cu_info;
+  // Only set the fields that matter for dwarf 4.
+  cu_info.version_ = 5;
+  cu_info.base_address_ = 1;
+  cu_info.ranges_base_ = ranges_base;
+  cu_info.buffer_ =
+      reinterpret_cast<const uint8_t*>(rnglists_contents.data());
+  cu_info.size_ = rnglists_contents.size();
+  cu_info.addr_buffer_ =
+      reinterpret_cast<const uint8_t*>(addr_contents.data());
+  cu_info.addr_buffer_size_ = addr_contents.size();
+  cu_info.addr_base_ = 4;
+
+  ByteReader byte_reader(ENDIANNESS_BIG);
+  byte_reader.SetAddressSize(4);
+  MockRangeListHandler handler;
+  dwarf2reader::RangeListReader range_list_reader(&byte_reader, &cu_info,
+                                                  &handler);
+  EXPECT_CALL(handler, AddRange(2, 3));
+  EXPECT_CALL(handler, AddRange(4, 5));
+  EXPECT_CALL(handler, AddRange(6, 7));
+  EXPECT_CALL(handler, AddRange(9, 10));
+  EXPECT_CALL(handler, AddRange(10, 11));
+  EXPECT_CALL(handler, AddRange(12, 13));
+  EXPECT_CALL(handler, Finish()).Times(2);
+  EXPECT_TRUE(range_list_reader.ReadRanges(DW_FORM_rnglistx, 1));
+  EXPECT_TRUE(range_list_reader.ReadRanges(DW_FORM_sec_offset,
+                                           range0.Value()));
+  // Out of range index, should result in no calls.
+  EXPECT_FALSE(range_list_reader.ReadRanges(DW_FORM_rnglistx, 2));
+}
diff --git a/src/common/dwarf/dwarf2reader_lineinfo_unittest.cc b/src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
new file mode 100644
index 0000000..37df73a
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader_lineinfo_unittest.cc
@@ -0,0 +1,187 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Sterling Augustine <saugustine@google.com>
+
+// dwarf2reader_lineinfo_unittest.cc: Unit tests for dwarf2reader::LineInfo
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf/bytereader.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+using std::vector;
+using testing::InSequence;
+using testing::Return;
+using testing::Sequence;
+using testing::Test;
+using testing::_;
+
+using namespace dwarf2reader;
+
+namespace {
+
+const uint8_t dwarf5_line_program[] = {
+  0x40, 0x0, 0x0, 0x0,  // unit_length (end - begin)
+  // begin
+  0x05, 0x0,  // version
+  0x8,  // address_size
+  0x0,  // segment_selector_size
+  0x26, 0x0, 0x0, 0x0, // header_length (end_header_end - begin_header)
+  // begin_header:
+  0x1,  // minimum_instruction_length
+  0x1,  // maximum_operations_per_instruction
+  0x1,  // default_is_stmt
+  0xfb, // line_base
+  0xe,  // line_range
+  0xd,  // opcode_base and lengths
+  0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
+  0x1,  // directory entry format count
+  DW_LNCT_path, DW_FORM_strp,
+  0x1,  // directories count
+  0x1, 0x0, 0x0, 0x0, // offset into .debug_line_str
+  0x2,  // file_name_entry_format_count
+  DW_LNCT_directory_index, DW_FORM_data1,
+  DW_LNCT_path, DW_FORM_line_strp,
+  0x1,  // filename count
+  0x0,  // directory index
+  0x1, 0x0, 0x0, 0x0, // offset into .debug_str
+  // end_header
+  DW_LNS_set_file, 0x0,
+  //  set address to 0x0
+  0x0, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+  // Advance Address by 0 and line by 3
+  0x15,
+  // Advance PC by 1
+  0x2, 0x1,
+  0x0,
+  DW_LNE_end_sequence,
+  DW_LNE_end_sequence,
+  // end
+};
+
+const uint8_t dwarf4_line_program[] = {
+  0x37, 0x0, 0x0, 0x0,  // unit_length (end - begin)
+  // begin
+  0x04, 0x0,  // version
+  0x1d, 0x0, 0x0, 0x0, // header_length (end_header - begin_header)
+  // begin_header:
+  0x1,  // minimum_instruction_length
+  0x1,  // maximum_operations_per_instruction
+  0x1,  // default_is_stmt
+  0xfb, // line_base
+  0xe,  // line_range
+  0xd,  // opcode_base and lengths
+  0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
+  '/', 'a', '\0',  // directory entry 1 (zeroth entry implied)
+  '\0', // end of directory table
+  'b', '/', 'c', '\0',  // file entry 1 (zeroth entry implied)
+  0, // file 1 directory
+  0, // file 1 modification time
+  0, // file 1 length
+  '\0', // end of file table
+  // end_header
+  DW_LNS_set_file, 0x0,
+  //  set address to 0x0
+  0x0, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+  // Advance Address by 0 and line by 3
+  0x15,
+  // Advance PC by 1
+  0x2, 0x1,
+  0x0,
+  DW_LNE_end_sequence,
+  DW_LNE_end_sequence,
+  // end
+};
+
+class MockLineInfoHandler: public LineInfoHandler {
+ public:
+  MOCK_METHOD(void, DefineDir, (const string&, uint32_t dir_num), (override));
+  MOCK_METHOD(void, DefineFile, (const string& name, int32_t file_num,
+                                 uint32_t dir_num, uint64_t mod_time,
+                                 uint64_t length), (override));
+  MOCK_METHOD(void, AddLine, (uint64_t address, uint64_t length,
+                              uint32_t file_num, uint32_t line_num,
+                              uint32_t column_num), (override));
+};
+
+const uint8_t string_section[] = {'x', '/', 'a', '\0'};
+const uint8_t line_string_section[] = {'x', 'b', '/', 'c', '\0' };
+
+struct LineProgram: public Test {
+  MockLineInfoHandler handler_;
+};
+
+TEST_F(LineProgram, ReadLinesDwarf5) {
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  // LineTables don't specify the offset size like Compilation Units do.
+  byte_reader.SetOffsetSize(4);
+  LineInfo line_reader(dwarf5_line_program,
+                       sizeof(dwarf5_line_program),
+                       &byte_reader,
+                       string_section,
+                       sizeof(string_section),
+                       line_string_section,
+                       sizeof(line_string_section),
+                       &handler_);
+  EXPECT_CALL(handler_, DefineDir("/a", 0)).Times(1);
+  EXPECT_CALL(handler_, DefineFile("b/c", 0, 0, 0, 0)).Times(1);
+  EXPECT_CALL(handler_, AddLine(0, 1, 0, 4, 0)).Times(1);
+  EXPECT_EQ(line_reader.Start(), sizeof(dwarf5_line_program));
+}
+
+TEST_F(LineProgram, ReadLinesDwarf4) {
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  // LineTables don't specify the offset size like Compilation Units do.
+  byte_reader.SetOffsetSize(4);
+  // dwarf4 line info headers don't encode the address size.
+  byte_reader.SetAddressSize(8);
+  LineInfo line_reader(dwarf4_line_program,
+                       sizeof(dwarf4_line_program),
+                       &byte_reader,
+                       // dwarf4 line tables can't access the string sections
+                       // so pass values likely to make assertions fail if
+                       // the code uses them improperly.
+                       nullptr, 0, nullptr, 0,
+                       &handler_);
+  EXPECT_CALL(handler_, DefineDir("", 0)).Times(1);
+  EXPECT_CALL(handler_, DefineDir("/a", 1)).Times(1);
+  EXPECT_CALL(handler_, DefineFile("", 0, 0, 0, 0)).Times(1);
+  EXPECT_CALL(handler_, DefineFile("b/c", 1, 0, 0, 0)).Times(1);
+  EXPECT_CALL(handler_, AddLine(0, 1, 0, 4, 0)).Times(1);
+  EXPECT_EQ(line_reader.Start(), sizeof(dwarf4_line_program));
+}
+
+}  // anonymous namespace
diff --git a/src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc b/src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
new file mode 100644
index 0000000..8c93e27
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader_splitfunctions_unittest.cc
@@ -0,0 +1,126 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Snehasish Kumar <snehasishk@google.com>
+
+// dwarf2reader_splitfunctions_unittest.cc: Unit tests for with a focus on debug
+// information generated when with splitting optimizations such as
+// -fsplit-machine-functions (clang) -freorder-blocks-and-partition (gcc).
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf/bytereader.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+using testing::_;
+using namespace dwarf2reader;
+
+namespace {
+
+class MockLineInfoHandler: public LineInfoHandler {
+ public:
+  MOCK_METHOD(void, DefineFile, (const string& name, int32_t file_num,
+                                 uint32_t dir_num, uint64_t mod_time,
+                                 uint64_t length), (override));
+  MOCK_METHOD(void, AddLine, (uint64_t address, uint64_t length,
+                              uint32_t file_num, uint32_t line_num,
+                              uint32_t column_num), (override));
+};
+
+struct LineProgram: public testing::Test {
+  MockLineInfoHandler handler_;
+};
+
+// The debug information is generated from the following program --
+// $ cat -n split_functions.c
+//   1  #include <stdio.h>
+//   2
+//   3  __attribute__((noinline)) int foo(int i)  {
+//   4    if (i % 100) {
+//   5      return i + 1;
+//   6    } else {
+//   7      return i * 10 % 3;
+//   8    }
+//   9  }
+//  10
+//  11
+//  12  int main(int argc, char *argv[]) {
+//  13    int total = 0;
+//  14    for (int i = 0; i < 1000; ++i) {
+//  15      total += foo(i);
+//  16    }
+//  17    printf("%d\n", total);
+//  18  }
+//
+// $ bin/clang -fprofile-generate -O2 split_functions.c
+// $ ./a.out > /dev/null
+// $ bin/llvm-profdata merge -o default.profdata default_*.profraw
+// $ bin/clang -fprofile-use -O2 -gmlt -gdwarf-5 -fsplit-machine-functions \
+//             split_functions.c -o split.out
+//
+//  For the test we pick the first instruction in foo.cold which should be the
+//  else part of the function foo above.
+
+const uint8_t debug_line[] = {
+  0xb0,0x0,0x0,0x0,0x5,0x0,0x8,0x0,0x37,0x0,0x0,0x0,0x1,0x1,0x1,0xfb,0xe,0xd,0x0,0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1,0x1f,0x1,0x0,0x0,0x0,0x0,0x3,0x1,0x1f,0x2,0xf,0x5,0x1e,0x1,0x3d,0x0,0x0,0x0,0x0,0x24,0xb2,0xb6,0xb5,0xbb,0xf,0xf7,0x6d,0x27,0x92,0xab,0x55,0x3a,0x29,0x48,0x81,0x4,0x0,0x0,0x9,0x2,0x40,0x10,0x40,0x0,0x0,0x0,0x0,0x0,0x14,0x5,0x9,0xa,0x2f,0x5,0x7,0x6,0x8,0x4a,0x5,0xe,0x6,0x67,0x5,0x1,0x40,0x5,0x0,0xf5,0x5,0xe,0xa,0xf5,0x5,0xb,0x6,0x74,0x5,0x1d,0x6,0x2d,0x5,0x15,0x6,0x3c,0x5,0x3,0x66,0x2,0x7,0x0,0x1,0x1,0x4,0x0,0x5,0xe,0x0,0x9,0x2,0x84,0x11,0x40,0x0,0x0,0x0,0x0,0x0,0x18,0x5,0x13,0x6,0x58,0x5,0x1,0x6,0x8,0xa0,0x2,0x1,0x0,0x1,0x1,0x4,0x0,0x5,0x3,0x0,0x9,0x2,0xa5,0x11,0x40,0x0,0x0,0x0,0x0,0x0,0x3,0x10,0x1,0x5,0x1,0xd7,0x2,0x9,0x0,0x1,0x1
+};
+
+const uint8_t debug_str[] = {
+  0x63,0x6c,0x61,0x6e,0x67,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x32,0x2e,0x30,0x2e,0x30,0x20,0x28,0x67,0x69,0x74,0x40,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x3a,0x6c,0x6c,0x76,0x6d,0x2f,0x6c,0x6c,0x76,0x6d,0x2d,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2e,0x67,0x69,0x74,0x20,0x63,0x37,0x35,0x61,0x30,0x61,0x31,0x65,0x39,0x64,0x63,0x32,0x39,0x62,0x65,0x34,0x65,0x30,0x30,0x64,0x33,0x37,0x64,0x30,0x64,0x30,0x30,0x32,0x38,0x38,0x61,0x66,0x63,0x31,0x61,0x36,0x31,0x35,0x33,0x66,0x29,0x0,0x73,0x70,0x6c,0x69,0x74,0x5f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x0,0x2f,0x75,0x73,0x72,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x2f,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2f,0x68,0x6f,0x6d,0x65,0x2f,0x73,0x6e,0x65,0x68,0x61,0x73,0x69,0x73,0x68,0x6b,0x2f,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x2f,0x6c,0x6c,0x76,0x6d,0x2d,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2f,0x62,0x75,0x69,0x6c,0x64,0x0,0x66,0x6f,0x6f,0x0,0x69,0x6e,0x74,0x0,0x6d,0x61,0x69,0x6e,0x0,0x69,0x0,0x61,0x72,0x67,0x63,0x0,0x61,0x72,0x67,0x76,0x0,0x63,0x68,0x61,0x72,0x0,0x74,0x6f,0x74,0x61,0x6c,0x0
+};
+
+const uint8_t debug_line_str[] = {
+  0x2f,0x75,0x73,0x72,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x2f,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x2f,0x68,0x6f,0x6d,0x65,0x2f,0x73,0x6e,0x65,0x68,0x61,0x73,0x69,0x73,0x68,0x6b,0x2f,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x2f,0x6c,0x6c,0x76,0x6d,0x2d,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2f,0x62,0x75,0x69,0x6c,0x64,0x0,0x73,0x70,0x6c,0x69,0x74,0x5f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x0
+};
+
+TEST_F(LineProgram, ReadLinesSplitFunctions) {
+  ByteReader byte_reader(ENDIANNESS_LITTLE);
+  // LineTables don't specify the offset size like Compilation Units do.
+  byte_reader.SetOffsetSize(4);
+  LineInfo line_reader(debug_line,
+                       sizeof(debug_line),
+                       &byte_reader,
+                       debug_str,
+                       sizeof(debug_str),
+                       debug_line_str,
+                       sizeof(debug_line_str),
+                       &handler_);
+  EXPECT_CALL(handler_, DefineFile("split_functions.c", 0, 0, 0, 0)).Times(1);
+  EXPECT_CALL(handler_, AddLine(_, _, _, _, _)).Times(testing::AtLeast(1));
+  // Pick the first address from the foo.cold symbol and check the line number.
+  EXPECT_CALL(handler_, AddLine(testing::Eq(0x401184lu), _, _, /*line_num*/ 7, _)).Times(1);
+  EXPECT_EQ(line_reader.Start(), sizeof(debug_line));
+}
+
+}  // anonymous namespace
diff --git a/src/common/dwarf/dwarf2reader_test_common.h b/src/common/dwarf/dwarf2reader_test_common.h
new file mode 100644
index 0000000..1934094
--- /dev/null
+++ b/src/common/dwarf/dwarf2reader_test_common.h
@@ -0,0 +1,155 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf2reader_test_common.h: Define TestCompilationUnit and
+// TestAbbrevTable, classes for creating properly (and improperly)
+// formatted DWARF compilation unit data for unit tests.
+
+#ifndef COMMON_DWARF_DWARF2READER_TEST_COMMON_H__
+#define COMMON_DWARF_DWARF2READER_TEST_COMMON_H__
+
+#include "common/test_assembler.h"
+#include "common/dwarf/dwarf2enums.h"
+
+// A subclass of test_assembler::Section, specialized for constructing
+// DWARF compilation units.
+class TestCompilationUnit: public google_breakpad::test_assembler::Section {
+ public:
+  typedef dwarf2reader::DwarfTag DwarfTag;
+  typedef dwarf2reader::DwarfAttribute DwarfAttribute;
+  typedef dwarf2reader::DwarfForm DwarfForm;
+  typedef google_breakpad::test_assembler::Label Label;
+
+  // Set the section's DWARF format size (the 32-bit DWARF format or the
+  // 64-bit DWARF format, for lengths and section offsets --- not the
+  // address size) to format_size.
+  void set_format_size(size_t format_size) {
+    assert(format_size == 4 || format_size == 8);
+    format_size_ = format_size;
+  }
+
+  // Append a DWARF section offset value, of the appropriate size for this
+  // compilation unit.
+  template<typename T>
+  void SectionOffset(T offset) {
+    if (format_size_ == 4)
+      D32(offset);
+    else
+      D64(offset);
+  }
+
+  // Append a DWARF compilation unit header to the section, with the given
+  // DWARF version, abbrev table offset, and address size.
+  TestCompilationUnit& Header(int version, const Label& abbrev_offset,
+                              size_t address_size) {
+    if (format_size_ == 4) {
+      D32(length_);
+    } else {
+      D32(0xffffffff);
+      D64(length_);
+    }
+    post_length_offset_ = Size();
+    D16(version);
+    if (version <= 4) {
+      SectionOffset(abbrev_offset);
+      D8(address_size);
+    } else {
+      D8(0x01);  // DW_UT_compile
+      D8(address_size);
+      SectionOffset(abbrev_offset);
+    }
+    return *this;
+  }
+
+  // Mark the end of this header's DIEs.
+  TestCompilationUnit& Finish() {
+    length_ = Size() - post_length_offset_;
+    return *this;
+  }
+
+ private:
+  // The DWARF format size for this compilation unit.
+  size_t format_size_;
+
+  // The offset of the point in the compilation unit header immediately
+  // after the initial length field.
+  uint64_t post_length_offset_;
+
+  // The length of the compilation unit, not including the initial length field.
+  Label length_;
+};
+
+// A subclass of test_assembler::Section specialized for constructing DWARF
+// abbreviation tables.
+class TestAbbrevTable: public google_breakpad::test_assembler::Section {
+ public:
+  typedef dwarf2reader::DwarfTag DwarfTag;
+  typedef dwarf2reader::DwarfAttribute DwarfAttribute;
+  typedef dwarf2reader::DwarfForm DwarfForm;
+  typedef dwarf2reader::DwarfHasChild DwarfHasChild;
+  typedef google_breakpad::test_assembler::Label Label;
+
+  // Start a new abbreviation table entry for abbreviation code |code|,
+  // encoding a DIE whose tag is |tag|, and which has children if and only
+  // if |has_children| is true.
+  TestAbbrevTable& Abbrev(int code, DwarfTag tag, DwarfHasChild has_children) {
+    assert(code != 0);
+    ULEB128(code);
+    ULEB128(static_cast<unsigned>(tag));
+    D8(static_cast<unsigned>(has_children));
+    return *this;
+  };
+
+  // Add an attribute to the current abbreviation code whose name is |name|
+  // and whose form is |form|.
+  TestAbbrevTable& Attribute(DwarfAttribute name, DwarfForm form) {
+    ULEB128(static_cast<unsigned>(name));
+    ULEB128(static_cast<unsigned>(form));
+    return *this;
+  }
+
+  // Finish the current abbreviation code.
+  TestAbbrevTable& EndAbbrev() {
+    ULEB128(0);
+    ULEB128(0);
+    return *this;
+  }
+
+  // Finish the current abbreviation table.
+  TestAbbrevTable& EndTable() {
+    ULEB128(0);
+    return *this;
+  }
+};
+
+#endif // COMMON_DWARF_DWARF2READER_TEST_COMMON_H__
diff --git a/src/common/dwarf/elf_reader.cc b/src/common/dwarf/elf_reader.cc
new file mode 100644
index 0000000..bbfdba6
--- /dev/null
+++ b/src/common/dwarf/elf_reader.cc
@@ -0,0 +1,1274 @@
+// Copyright 2005 Google Inc. All Rights Reserved.
+// Author: chatham@google.com (Andrew Chatham)
+// Author: satorux@google.com (Satoru Takabayashi)
+//
+// Code for reading in ELF files.
+//
+// For information on the ELF format, see
+// http://www.x86.org/ftp/manuals/tools/elf.pdf
+//
+// I also liked:
+// http://www.caldera.com/developers/gabi/1998-04-29/contents.html
+//
+// A note about types: When dealing with the file format, we use types
+// like Elf32_Word, but in the public interfaces we treat all
+// addresses as uint64. As a result, we should be able to symbolize
+// 64-bit binaries from a 32-bit process (which we don't do,
+// anyway). size_t should therefore be avoided, except where required
+// by things like mmap().
+//
+// Although most of this code can deal with arbitrary ELF files of
+// either word size, the public ElfReader interface only examines
+// files loaded into the current address space, which must all match
+// the machine's native word size. This code cannot handle ELF files
+// with a non-native byte ordering.
+//
+// TODO(chatham): It would be nice if we could accomplish this task
+// without using malloc(), so we could use it as the process is dying.
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE  // needed for pread()
+#endif
+
+#include <fcntl.h>
+#include <limits.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <map>
+#include <string>
+#include <vector>
+// TODO(saugustine): Add support for compressed debug.
+// Also need to add configure tests for zlib.
+//#include "zlib.h"
+
+#include "third_party/musl/include/elf.h"
+#include "elf_reader.h"
+#include "common/using_std_string.h"
+
+// EM_AARCH64 is not defined by elf.h of GRTE v3 on x86.
+// TODO(dougkwan): Remove this when v17 is retired.
+#if !defined(EM_AARCH64)
+#define EM_AARCH64      183             /* ARM AARCH64 */
+#endif
+
+// Map Linux macros to their Apple equivalents.
+#if __APPLE__
+#ifndef __LITTLE_ENDIAN
+#define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
+#endif  // __LITTLE_ENDIAN
+#ifndef __BIG_ENDIAN
+#define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
+#endif  // __BIG_ENDIAN
+#ifndef __BYTE_ORDER
+#define __BYTE_ORDER __BYTE_ORDER__
+#endif  // __BYTE_ORDER
+#endif  // __APPLE__
+
+// TODO(dthomson): Can be removed once all Java code is using the Google3
+// launcher. We need to avoid processing PLT functions as it causes memory
+// fragmentation in malloc, which is fixed in tcmalloc - and if the Google3
+// launcher is used the JVM will then use tcmalloc. b/13735638
+//DEFINE_bool(elfreader_process_dynsyms, true,
+//            "Activate PLT function processing");
+
+using std::vector;
+
+namespace {
+
+// The lowest bit of an ARM symbol value is used to indicate a Thumb address.
+const int kARMThumbBitOffset = 0;
+
+// Converts an ARM Thumb symbol value to a true aligned address value.
+template <typename T>
+T AdjustARMThumbSymbolValue(const T& symbol_table_value) {
+  return symbol_table_value & ~(1 << kARMThumbBitOffset);
+}
+
+// Names of PLT-related sections.
+const char kElfPLTRelSectionName[] = ".rel.plt";      // Use Rel struct.
+const char kElfPLTRelaSectionName[] = ".rela.plt";    // Use Rela struct.
+const char kElfPLTSectionName[] = ".plt";
+const char kElfDynSymSectionName[] = ".dynsym";
+
+const int kX86PLTCodeSize = 0x10;  // Size of one x86 PLT function in bytes.
+const int kARMPLTCodeSize = 0xc;
+const int kAARCH64PLTCodeSize = 0x10;
+
+const int kX86PLT0Size = 0x10;  // Size of the special PLT0 entry.
+const int kARMPLT0Size = 0x14;
+const int kAARCH64PLT0Size = 0x20;
+
+// Suffix for PLT functions when it needs to be explicitly identified as such.
+const char kPLTFunctionSuffix[] = "@plt";
+
+}  // namespace
+
+namespace dwarf2reader {
+
+template <class ElfArch> class ElfReaderImpl;
+
+// 32-bit and 64-bit ELF files are processed exactly the same, except
+// for various field sizes. Elf32 and Elf64 encompass all of the
+// differences between the two formats, and all format-specific code
+// in this file is templated on one of them.
+class Elf32 {
+ public:
+  typedef Elf32_Ehdr Ehdr;
+  typedef Elf32_Shdr Shdr;
+  typedef Elf32_Phdr Phdr;
+  typedef Elf32_Word Word;
+  typedef Elf32_Sym Sym;
+  typedef Elf32_Rel Rel;
+  typedef Elf32_Rela Rela;
+
+  // What should be in the EI_CLASS header.
+  static const int kElfClass = ELFCLASS32;
+
+  // Given a symbol pointer, return the binding type (eg STB_WEAK).
+  static char Bind(const Elf32_Sym* sym) {
+    return ELF32_ST_BIND(sym->st_info);
+  }
+  // Given a symbol pointer, return the symbol type (eg STT_FUNC).
+  static char Type(const Elf32_Sym* sym) {
+    return ELF32_ST_TYPE(sym->st_info);
+  }
+
+  // Extract the symbol index from the r_info field of a relocation.
+  static int r_sym(const Elf32_Word r_info) {
+    return ELF32_R_SYM(r_info);
+  }
+};
+
+
+class Elf64 {
+ public:
+  typedef Elf64_Ehdr Ehdr;
+  typedef Elf64_Shdr Shdr;
+  typedef Elf64_Phdr Phdr;
+  typedef Elf64_Word Word;
+  typedef Elf64_Sym Sym;
+  typedef Elf64_Rel Rel;
+  typedef Elf64_Rela Rela;
+
+  // What should be in the EI_CLASS header.
+  static const int kElfClass = ELFCLASS64;
+
+  static char Bind(const Elf64_Sym* sym) {
+    return ELF64_ST_BIND(sym->st_info);
+  }
+  static char Type(const Elf64_Sym* sym) {
+    return ELF64_ST_TYPE(sym->st_info);
+  }
+  static int r_sym(const Elf64_Xword r_info) {
+    return ELF64_R_SYM(r_info);
+  }
+};
+
+
+// ElfSectionReader mmaps a section of an ELF file ("section" is ELF
+// terminology). The ElfReaderImpl object providing the section header
+// must exist for the lifetime of this object.
+//
+// The motivation for mmaping individual sections of the file is that
+// many Google executables are large enough when unstripped that we
+// have to worry about running out of virtual address space.
+//
+// For compressed sections we have no choice but to allocate memory.
+template<class ElfArch>
+class ElfSectionReader {
+ public:
+  ElfSectionReader(const char* name, const string& path, int fd,
+                   const typename ElfArch::Shdr& section_header)
+      : contents_aligned_(NULL),
+        contents_(NULL),
+        header_(section_header) {
+    // Back up to the beginning of the page we're interested in.
+    const size_t additional = header_.sh_offset % getpagesize();
+    const size_t offset_aligned = header_.sh_offset - additional;
+    section_size_ = header_.sh_size;
+    size_aligned_ = section_size_ + additional;
+    // If the section has been stripped or is empty, do not attempt
+    // to process its contents.
+    if (header_.sh_type == SHT_NOBITS || header_.sh_size == 0)
+      return;
+    contents_aligned_ = mmap(NULL, size_aligned_, PROT_READ, MAP_SHARED,
+                             fd, offset_aligned);
+    // Set where the offset really should begin.
+    contents_ = reinterpret_cast<char*>(contents_aligned_) +
+                (header_.sh_offset - offset_aligned);
+
+    // Check for and handle any compressed contents.
+    //if (strncmp(name, ".zdebug_", strlen(".zdebug_")) == 0)
+    //  DecompressZlibContents();
+    // TODO(saugustine): Add support for proposed elf-section flag
+    // "SHF_COMPRESS".
+  }
+
+  ~ElfSectionReader() {
+    if (contents_aligned_ != NULL)
+      munmap(contents_aligned_, size_aligned_);
+    else
+      delete[] contents_;
+  }
+
+  // Return the section header for this section.
+  typename ElfArch::Shdr const& header() const { return header_; }
+
+  // Return memory at the given offset within this section.
+  const char* GetOffset(typename ElfArch::Word bytes) const {
+    return contents_ + bytes;
+  }
+
+  const char* contents() const { return contents_; }
+  size_t section_size() const { return section_size_; }
+
+ private:
+  // page-aligned file contents
+  void* contents_aligned_;
+  // contents as usable by the client. For non-compressed sections,
+  // pointer within contents_aligned_ to where the section data
+  // begins; for compressed sections, pointer to the decompressed
+  // data.
+  char* contents_;
+  // size of contents_aligned_
+  size_t size_aligned_;
+  // size of contents.
+  size_t section_size_;
+  const typename ElfArch::Shdr header_;
+};
+
+// An iterator over symbols in a given section. It handles walking
+// through the entries in the specified section and mapping symbol
+// entries to their names in the appropriate string table (in
+// another section).
+template<class ElfArch>
+class SymbolIterator {
+ public:
+  SymbolIterator(ElfReaderImpl<ElfArch>* reader,
+                 typename ElfArch::Word section_type)
+      : symbol_section_(reader->GetSectionByType(section_type)),
+        string_section_(NULL),
+        num_symbols_in_section_(0),
+        symbol_within_section_(0) {
+
+    // If this section type doesn't exist, leave
+    // num_symbols_in_section_ as zero, so this iterator is already
+    // done().
+    if (symbol_section_ != NULL) {
+      num_symbols_in_section_ = symbol_section_->header().sh_size /
+                                symbol_section_->header().sh_entsize;
+
+      // Symbol sections have sh_link set to the section number of
+      // the string section containing the symbol names.
+      string_section_ = reader->GetSection(symbol_section_->header().sh_link);
+    }
+  }
+
+  // Return true iff we have passed all symbols in this section.
+  bool done() const {
+    return symbol_within_section_ >= num_symbols_in_section_;
+  }
+
+  // Advance to the next symbol in this section.
+  // REQUIRES: !done()
+  void Next() { ++symbol_within_section_; }
+
+  // Return a pointer to the current symbol.
+  // REQUIRES: !done()
+  const typename ElfArch::Sym* GetSymbol() const {
+    return reinterpret_cast<const typename ElfArch::Sym*>(
+        symbol_section_->GetOffset(symbol_within_section_ *
+                                   symbol_section_->header().sh_entsize));
+  }
+
+  // Return the name of the current symbol, NULL if it has none.
+  // REQUIRES: !done()
+  const char* GetSymbolName() const {
+    int name_offset = GetSymbol()->st_name;
+    if (name_offset == 0)
+      return NULL;
+    return string_section_->GetOffset(name_offset);
+  }
+
+  int GetCurrentSymbolIndex() const {
+    return symbol_within_section_;
+  }
+
+ private:
+  const ElfSectionReader<ElfArch>* const symbol_section_;
+  const ElfSectionReader<ElfArch>* string_section_;
+  int num_symbols_in_section_;
+  int symbol_within_section_;
+};
+
+
+// Copied from strings/strutil.h.  Per chatham,
+// this library should not depend on strings.
+
+static inline bool MyHasSuffixString(const string& str, const string& suffix) {
+  int len = str.length();
+  int suflen = suffix.length();
+  return (suflen <= len) && (str.compare(len-suflen, suflen, suffix) == 0);
+}
+
+
+// ElfReader loads an ELF binary and can provide information about its
+// contents. It is most useful for matching addresses to function
+// names. It does not understand debugging formats (eg dwarf2), so it
+// can't print line numbers. It takes a path to an elf file and a
+// readable file descriptor for that file, which it does not assume
+// ownership of.
+template<class ElfArch>
+class ElfReaderImpl {
+ public:
+  explicit ElfReaderImpl(const string& path, int fd)
+      : path_(path),
+        fd_(fd),
+        section_headers_(NULL),
+        program_headers_(NULL),
+        opd_section_(NULL),
+        base_for_text_(0),
+        plts_supported_(false),
+        plt_code_size_(0),
+        plt0_size_(0),
+        visited_relocation_entries_(false) {
+    string error;
+    is_dwp_ = MyHasSuffixString(path, ".dwp");
+    ParseHeaders(fd, path);
+    // Currently we need some extra information for PowerPC64 binaries
+    // including a way to read the .opd section for function descriptors and a
+    // way to find the linked base for function symbols.
+    if (header_.e_machine == EM_PPC64) {
+      // "opd_section_" must always be checked for NULL before use.
+      opd_section_ = GetSectionInfoByName(".opd", &opd_info_);
+      for (unsigned int k = 0u; k < GetNumSections(); ++k) {
+        const char* name = GetSectionName(section_headers_[k].sh_name);
+        if (strncmp(name, ".text", strlen(".text")) == 0) {
+          base_for_text_ =
+              section_headers_[k].sh_addr - section_headers_[k].sh_offset;
+          break;
+        }
+      }
+    }
+    // Turn on PLTs.
+    if (header_.e_machine == EM_386 || header_.e_machine == EM_X86_64) {
+      plt_code_size_ = kX86PLTCodeSize;
+      plt0_size_ = kX86PLT0Size;
+      plts_supported_ = true;
+    } else if (header_.e_machine == EM_ARM) {
+      plt_code_size_ = kARMPLTCodeSize;
+      plt0_size_ = kARMPLT0Size;
+      plts_supported_ = true;
+    } else if (header_.e_machine == EM_AARCH64) {
+      plt_code_size_ = kAARCH64PLTCodeSize;
+      plt0_size_ = kAARCH64PLT0Size;
+      plts_supported_ = true;
+    }
+  }
+
+  ~ElfReaderImpl() {
+    for (unsigned int i = 0u; i < sections_.size(); ++i)
+      delete sections_[i];
+    delete [] section_headers_;
+    delete [] program_headers_;
+  }
+
+  // Examine the headers of the file and return whether the file looks
+  // like an ELF file for this architecture. Takes an already-open
+  // file descriptor for the candidate file, reading in the prologue
+  // to see if the ELF file appears to match the current
+  // architecture. If error is non-NULL, it will be set with a reason
+  // in case of failure.
+  static bool IsArchElfFile(int fd, string* error) {
+    unsigned char header[EI_NIDENT];
+    if (pread(fd, header, sizeof(header), 0) != sizeof(header)) {
+      if (error != NULL) *error = "Could not read header";
+      return false;
+    }
+
+    if (memcmp(header, ELFMAG, SELFMAG) != 0) {
+      if (error != NULL) *error = "Missing ELF magic";
+      return false;
+    }
+
+    if (header[EI_CLASS] != ElfArch::kElfClass) {
+      if (error != NULL) *error = "Different word size";
+      return false;
+    }
+
+    int endian = 0;
+    if (header[EI_DATA] == ELFDATA2LSB)
+      endian = __LITTLE_ENDIAN;
+    else if (header[EI_DATA] == ELFDATA2MSB)
+      endian = __BIG_ENDIAN;
+    if (endian != __BYTE_ORDER) {
+      if (error != NULL) *error = "Different byte order";
+      return false;
+    }
+
+    return true;
+  }
+
+  // Return true if we can use this symbol in Address-to-Symbol map.
+  bool CanUseSymbol(const char* name, const typename ElfArch::Sym* sym) {
+    // For now we only save FUNC and NOTYPE symbols. For now we just
+    // care about functions, but some functions written in assembler
+    // don't have a proper ELF type attached to them, so we store
+    // NOTYPE symbols as well. The remaining significant type is
+    // OBJECT (eg global variables), which represent about 25% of
+    // the symbols in a typical google3 binary.
+    if (ElfArch::Type(sym) != STT_FUNC &&
+        ElfArch::Type(sym) != STT_NOTYPE) {
+      return false;
+    }
+
+    // Target specific filtering.
+    switch (header_.e_machine) {
+    case EM_AARCH64:
+    case EM_ARM:
+      // Filter out '$x' special local symbols used by tools
+      return name[0] != '$' || ElfArch::Bind(sym) != STB_LOCAL;
+    case EM_X86_64:
+      // Filter out read-only constants like .LC123.
+      return name[0] != '.' || ElfArch::Bind(sym) != STB_LOCAL;
+    default:
+      return true;
+    }
+  }
+
+  // Iterate over the symbols in a section, either SHT_DYNSYM or
+  // SHT_SYMTAB. Add all symbols to the given SymbolMap.
+  /*
+  void GetSymbolPositions(SymbolMap* symbols,
+                          typename ElfArch::Word section_type,
+                          uint64_t mem_offset,
+                          uint64_t file_offset) {
+    // This map is used to filter out "nested" functions.
+    // See comment below.
+    AddrToSymMap addr_to_sym_map;
+    for (SymbolIterator<ElfArch> it(this, section_type);
+         !it.done(); it.Next()) {
+      const char* name = it.GetSymbolName();
+      if (name == NULL)
+        continue;
+      const typename ElfArch::Sym* sym = it.GetSymbol();
+      if (CanUseSymbol(name, sym)) {
+        const int sec = sym->st_shndx;
+
+        // We don't support special section indices. The most common
+        // is SHN_ABS, for absolute symbols used deep in the bowels of
+        // glibc. Also ignore any undefined symbols.
+        if (sec == SHN_UNDEF ||
+            (sec >= SHN_LORESERVE && sec <= SHN_HIRESERVE)) {
+          continue;
+        }
+
+        const typename ElfArch::Shdr& hdr = section_headers_[sec];
+
+        // Adjust for difference between where we expected to mmap
+        // this section, and where it was actually mmapped.
+        const int64_t expected_base = hdr.sh_addr - hdr.sh_offset;
+        const int64_t real_base = mem_offset - file_offset;
+        const int64_t adjust = real_base - expected_base;
+
+        uint64_t start = sym->st_value + adjust;
+
+        // Adjust function symbols for PowerPC64 by dereferencing and adjusting
+        // the function descriptor to get the function address.
+        if (header_.e_machine == EM_PPC64 && ElfArch::Type(sym) == STT_FUNC) {
+          const uint64_t opd_addr =
+              AdjustPPC64FunctionDescriptorSymbolValue(sym->st_value);
+          // Only adjust the returned value if the function address was found.
+          if (opd_addr != sym->st_value) {
+            const int64_t adjust_function_symbols =
+                real_base - base_for_text_;
+            start = opd_addr + adjust_function_symbols;
+          }
+        }
+
+        addr_to_sym_map.push_back(std::make_pair(start, sym));
+      }
+    }
+    std::sort(addr_to_sym_map.begin(), addr_to_sym_map.end(), &AddrToSymSorter);
+    addr_to_sym_map.erase(std::unique(addr_to_sym_map.begin(),
+                                      addr_to_sym_map.end(), &AddrToSymEquals),
+                          addr_to_sym_map.end());
+
+    // Squeeze out any "nested functions".
+    // Nested functions are not allowed in C, but libc plays tricks.
+    //
+    // For example, here is disassembly of /lib64/tls/libc-2.3.5.so:
+    //   0x00000000000aa380 <read+0>:             cmpl   $0x0,0x2781b9(%rip)
+    //   0x00000000000aa387 <read+7>:             jne    0xaa39b <read+27>
+    //   0x00000000000aa389 <__read_nocancel+0>:  mov    $0x0,%rax
+    //   0x00000000000aa390 <__read_nocancel+7>:  syscall
+    //   0x00000000000aa392 <__read_nocancel+9>:  cmp $0xfffffffffffff001,%rax
+    //   0x00000000000aa398 <__read_nocancel+15>: jae    0xaa3ef <read+111>
+    //   0x00000000000aa39a <__read_nocancel+17>: retq
+    //   0x00000000000aa39b <read+27>:            sub    $0x28,%rsp
+    //   0x00000000000aa39f <read+31>:            mov    %rdi,0x8(%rsp)
+    //   ...
+    // Without removing __read_nocancel, symbolizer will return NULL
+    // given e.g. 0xaa39f (because the lower bound is __read_nocancel,
+    // but 0xaa39f is beyond its end.
+    if (addr_to_sym_map.empty()) {
+      return;
+    }
+    const ElfSectionReader<ElfArch>* const symbol_section =
+        this->GetSectionByType(section_type);
+    const ElfSectionReader<ElfArch>* const string_section =
+        this->GetSection(symbol_section->header().sh_link);
+
+    typename AddrToSymMap::iterator curr = addr_to_sym_map.begin();
+    // Always insert the first symbol.
+    symbols->AddSymbol(string_section->GetOffset(curr->second->st_name),
+                       curr->first, curr->second->st_size);
+    typename AddrToSymMap::iterator prev = curr++;
+    for (; curr != addr_to_sym_map.end(); ++curr) {
+      const uint64_t prev_addr = prev->first;
+      const uint64_t curr_addr = curr->first;
+      const typename ElfArch::Sym* const prev_sym = prev->second;
+      const typename ElfArch::Sym* const curr_sym = curr->second;
+      if (prev_addr + prev_sym->st_size <= curr_addr ||
+          // The next condition is true if two symbols overlap like this:
+          //
+          //   Previous symbol  |----------------------------|
+          //   Current symbol     |-------------------------------|
+          //
+          // These symbols are not found in google3 codebase, but in
+          // jdk1.6.0_01_gg1/jre/lib/i386/server/libjvm.so.
+          //
+          // 0619e040 00000046 t CardTableModRefBS::write_region_work()
+          // 0619e070 00000046 t CardTableModRefBS::write_ref_array_work()
+          //
+          // We allow overlapped symbols rather than ignore these.
+          // Due to the way SymbolMap::GetSymbolAtPosition() works,
+          // lookup for any address in [curr_addr, curr_addr + its size)
+          // (e.g. 0619e071) will produce the current symbol,
+          // which is the desired outcome.
+          prev_addr + prev_sym->st_size < curr_addr + curr_sym->st_size) {
+        const char* name = string_section->GetOffset(curr_sym->st_name);
+        symbols->AddSymbol(name, curr_addr, curr_sym->st_size);
+        prev = curr;
+      } else {
+        // Current symbol is "nested" inside previous one like this:
+        //
+        //   Previous symbol  |----------------------------|
+        //   Current symbol     |---------------------|
+        //
+        // This happens within glibc, e.g. __read_nocancel is nested
+        // "inside" __read. Ignore "inner" symbol.
+        //DCHECK_LE(curr_addr + curr_sym->st_size,
+        //          prev_addr + prev_sym->st_size);
+        ;
+      }
+    }
+  }
+*/
+
+  void VisitSymbols(typename ElfArch::Word section_type,
+                    ElfReader::SymbolSink* sink) {
+    VisitSymbols(section_type, sink, -1, -1, false);
+  }
+
+  void VisitSymbols(typename ElfArch::Word section_type,
+                    ElfReader::SymbolSink* sink,
+                    int symbol_binding,
+                    int symbol_type,
+                    bool get_raw_symbol_values) {
+    for (SymbolIterator<ElfArch> it(this, section_type);
+         !it.done(); it.Next()) {
+      const char* name = it.GetSymbolName();
+      if (!name) continue;
+      const typename ElfArch::Sym* sym = it.GetSymbol();
+      if ((symbol_binding < 0 || ElfArch::Bind(sym) == symbol_binding) &&
+          (symbol_type < 0 || ElfArch::Type(sym) == symbol_type)) {
+        typename ElfArch::Sym symbol = *sym;
+        // Add a PLT symbol in addition to the main undefined symbol.
+        // Only do this for SHT_DYNSYM, because PLT symbols are dynamic.
+        int symbol_index = it.GetCurrentSymbolIndex();
+        // TODO(dthomson): Can be removed once all Java code is using the
+        // Google3 launcher.
+        if (section_type == SHT_DYNSYM &&
+            static_cast<unsigned int>(symbol_index) < symbols_plt_offsets_.size() &&
+            symbols_plt_offsets_[symbol_index] != 0) {
+          string plt_name = string(name) + kPLTFunctionSuffix;
+          if (plt_function_names_[symbol_index].empty()) {
+            plt_function_names_[symbol_index] = plt_name;
+          } else if (plt_function_names_[symbol_index] != plt_name) {
+		;
+          }
+          sink->AddSymbol(plt_function_names_[symbol_index].c_str(),
+                          symbols_plt_offsets_[it.GetCurrentSymbolIndex()],
+                          plt_code_size_);
+        }
+        if (!get_raw_symbol_values)
+          AdjustSymbolValue(&symbol);
+        sink->AddSymbol(name, symbol.st_value, symbol.st_size);
+      }
+    }
+  }
+
+  void VisitRelocationEntries() {
+    if (visited_relocation_entries_) {
+      return;
+    }
+    visited_relocation_entries_ = true;
+
+    if (!plts_supported_) {
+      return;
+    }
+    // First determine if PLTs exist. If not, then there is nothing to do.
+    ElfReader::SectionInfo plt_section_info;
+    const char* plt_section =
+        GetSectionInfoByName(kElfPLTSectionName, &plt_section_info);
+    if (!plt_section) {
+      return;
+    }
+    if (plt_section_info.size == 0) {
+      return;
+    }
+
+    // The PLTs could be referenced by either a Rel or Rela (Rel with Addend)
+    // section.
+    ElfReader::SectionInfo rel_section_info;
+    ElfReader::SectionInfo rela_section_info;
+    const char* rel_section =
+        GetSectionInfoByName(kElfPLTRelSectionName, &rel_section_info);
+    const char* rela_section =
+        GetSectionInfoByName(kElfPLTRelaSectionName, &rela_section_info);
+
+    const typename ElfArch::Rel* rel =
+        reinterpret_cast<const typename ElfArch::Rel*>(rel_section);
+    const typename ElfArch::Rela* rela =
+        reinterpret_cast<const typename ElfArch::Rela*>(rela_section);
+
+    if (!rel_section && !rela_section) {
+      return;
+    }
+
+    // Use either Rel or Rela section, depending on which one exists.
+    size_t section_size = rel_section ? rel_section_info.size
+                                      : rela_section_info.size;
+    size_t entry_size = rel_section ? sizeof(typename ElfArch::Rel)
+                                    : sizeof(typename ElfArch::Rela);
+
+    // Determine the number of entries in the dynamic symbol table.
+    ElfReader::SectionInfo dynsym_section_info;
+    const char* dynsym_section =
+        GetSectionInfoByName(kElfDynSymSectionName, &dynsym_section_info);
+    // The dynsym section might not exist, or it might be empty. In either case
+    // there is nothing to be done so return.
+    if (!dynsym_section || dynsym_section_info.size == 0) {
+      return;
+    }
+    size_t num_dynamic_symbols =
+        dynsym_section_info.size / dynsym_section_info.entsize;
+    symbols_plt_offsets_.resize(num_dynamic_symbols, 0);
+
+    // TODO(dthomson): Can be removed once all Java code is using the
+    // Google3 launcher.
+    // Make storage room for PLT function name strings.
+    plt_function_names_.resize(num_dynamic_symbols);
+
+    for (size_t i = 0; i < section_size / entry_size; ++i) {
+      // Determine symbol index from the |r_info| field.
+      int sym_index = ElfArch::r_sym(rel_section ? rel[i].r_info
+                                                 : rela[i].r_info);
+      if (static_cast<unsigned int>(sym_index) >= symbols_plt_offsets_.size()) {
+        continue;
+      }
+      symbols_plt_offsets_[sym_index] =
+          plt_section_info.addr + plt0_size_ + i * plt_code_size_;
+    }
+  }
+
+  // Return an ElfSectionReader for the first section of the given
+  // type by iterating through all section headers. Returns NULL if
+  // the section type is not found.
+  const ElfSectionReader<ElfArch>* GetSectionByType(
+      typename ElfArch::Word section_type) {
+    for (unsigned int k = 0u; k < GetNumSections(); ++k) {
+      if (section_headers_[k].sh_type == section_type) {
+        return GetSection(k);
+      }
+    }
+    return NULL;
+  }
+
+  // Return the name of section "shndx".  Returns NULL if the section
+  // is not found.
+  const char* GetSectionNameByIndex(int shndx) {
+    return GetSectionName(section_headers_[shndx].sh_name);
+  }
+
+  // Return a pointer to section "shndx", and store the size in
+  // "size".  Returns NULL if the section is not found.
+  const char* GetSectionContentsByIndex(int shndx, size_t* size) {
+    const ElfSectionReader<ElfArch>* section = GetSection(shndx);
+    if (section != NULL) {
+      *size = section->section_size();
+      return section->contents();
+    }
+    return NULL;
+  }
+
+  // Return a pointer to the first section of the given name by
+  // iterating through all section headers, and store the size in
+  // "size".  Returns NULL if the section name is not found.
+  const char* GetSectionContentsByName(const string& section_name,
+                                       size_t* size) {
+    for (unsigned int k = 0u; k < GetNumSections(); ++k) {
+      // When searching for sections in a .dwp file, the sections
+      // we're looking for will always be at the end of the section
+      // table, so reverse the direction of iteration.
+      int shndx = is_dwp_ ? GetNumSections() - k - 1 : k;
+      const char* name = GetSectionName(section_headers_[shndx].sh_name);
+      if (name != NULL && ElfReader::SectionNamesMatch(section_name, name)) {
+        const ElfSectionReader<ElfArch>* section = GetSection(shndx);
+        if (section == NULL) {
+          return NULL;
+        } else {
+          *size = section->section_size();
+          return section->contents();
+        }
+      }
+    }
+    return NULL;
+  }
+
+  // This is like GetSectionContentsByName() but it returns a lot of extra
+  // information about the section.
+  const char* GetSectionInfoByName(const string& section_name,
+                                   ElfReader::SectionInfo* info) {
+    for (unsigned int k = 0u; k < GetNumSections(); ++k) {
+      // When searching for sections in a .dwp file, the sections
+      // we're looking for will always be at the end of the section
+      // table, so reverse the direction of iteration.
+      int shndx = is_dwp_ ? GetNumSections() - k - 1 : k;
+      const char* name = GetSectionName(section_headers_[shndx].sh_name);
+      if (name != NULL && ElfReader::SectionNamesMatch(section_name, name)) {
+        const ElfSectionReader<ElfArch>* section = GetSection(shndx);
+        if (section == NULL) {
+          return NULL;
+        } else {
+          info->type = section->header().sh_type;
+          info->flags = section->header().sh_flags;
+          info->addr = section->header().sh_addr;
+          info->offset = section->header().sh_offset;
+          info->size = section->header().sh_size;
+          info->link = section->header().sh_link;
+          info->info = section->header().sh_info;
+          info->addralign = section->header().sh_addralign;
+          info->entsize = section->header().sh_entsize;
+          return section->contents();
+        }
+      }
+    }
+    return NULL;
+  }
+
+  // p_vaddr of the first PT_LOAD segment (if any), or 0 if no PT_LOAD
+  // segments are present. This is the address an ELF image was linked
+  // (by static linker) to be loaded at. Usually (but not always) 0 for
+  // shared libraries and position-independent executables.
+  uint64_t VaddrOfFirstLoadSegment() const {
+    // Relocatable objects (of type ET_REL) do not have LOAD segments.
+    if (header_.e_type == ET_REL) {
+      return 0;
+    }
+    for (int i = 0; i < GetNumProgramHeaders(); ++i) {
+      if (program_headers_[i].p_type == PT_LOAD) {
+        return program_headers_[i].p_vaddr;
+      }
+    }
+    return 0;
+  }
+
+  // According to the LSB ("ELF special sections"), sections with debug
+  // info are prefixed by ".debug".  The names are not specified, but they
+  // look like ".debug_line", ".debug_info", etc.
+  bool HasDebugSections() {
+    // Debug sections are likely to be near the end, so reverse the
+    // direction of iteration.
+    for (int k = GetNumSections() - 1; k >= 0; --k) {
+      const char* name = GetSectionName(section_headers_[k].sh_name);
+      if (strncmp(name, ".debug", strlen(".debug")) == 0) return true;
+      if (strncmp(name, ".zdebug", strlen(".zdebug")) == 0) return true;
+    }
+    return false;
+  }
+
+  bool IsDynamicSharedObject() const {
+    return header_.e_type == ET_DYN;
+  }
+
+  // Return the number of sections.
+  uint64_t GetNumSections() const {
+    if (HasManySections())
+      return first_section_header_.sh_size;
+    return header_.e_shnum;
+  }
+
+ private:
+  typedef vector<pair<uint64_t, const typename ElfArch::Sym*> > AddrToSymMap;
+
+  static bool AddrToSymSorter(const typename AddrToSymMap::value_type& lhs,
+                              const typename AddrToSymMap::value_type& rhs) {
+    return lhs.first < rhs.first;
+  }
+
+  static bool AddrToSymEquals(const typename AddrToSymMap::value_type& lhs,
+                              const typename AddrToSymMap::value_type& rhs) {
+    return lhs.first == rhs.first;
+  }
+
+  // Does this ELF file have too many sections to fit in the program header?
+  bool HasManySections() const {
+    return header_.e_shnum == SHN_UNDEF;
+  }
+
+  // Return the number of program headers.
+  int GetNumProgramHeaders() const {
+    if (HasManySections() && header_.e_phnum == 0xffff &&
+        first_section_header_.sh_info != 0)
+      return first_section_header_.sh_info;
+    return header_.e_phnum;
+  }
+
+  // Return the index of the string table.
+  int GetStringTableIndex() const {
+    if (HasManySections()) {
+      if (header_.e_shstrndx == 0xffff)
+        return first_section_header_.sh_link;
+      else if (header_.e_shstrndx >= GetNumSections())
+        return 0;
+    }
+    return header_.e_shstrndx;
+  }
+
+  // Given an offset into the section header string table, return the
+  // section name.
+  const char* GetSectionName(typename ElfArch::Word sh_name) {
+    const ElfSectionReader<ElfArch>* shstrtab =
+        GetSection(GetStringTableIndex());
+    if (shstrtab != NULL) {
+      return shstrtab->GetOffset(sh_name);
+    }
+    return NULL;
+  }
+
+  // Return an ElfSectionReader for the given section. The reader will
+  // be freed when this object is destroyed.
+  const ElfSectionReader<ElfArch>* GetSection(int num) {
+    const char* name;
+    // Hard-coding the name for the section-name string table prevents
+    // infinite recursion.
+    if (num == GetStringTableIndex())
+      name = ".shstrtab";
+    else
+      name = GetSectionNameByIndex(num);
+    ElfSectionReader<ElfArch>*& reader = sections_[num];
+    if (reader == NULL)
+      reader = new ElfSectionReader<ElfArch>(name, path_, fd_,
+                                             section_headers_[num]);
+    return reader;
+  }
+
+  // Parse out the overall header information from the file and assert
+  // that it looks sane. This contains information like the magic
+  // number and target architecture.
+  bool ParseHeaders(int fd, const string& path) {
+    // Read in the global ELF header.
+    if (pread(fd, &header_, sizeof(header_), 0) != sizeof(header_)) {
+      return false;
+    }
+
+    // Must be an executable, dynamic shared object or relocatable object
+    if (header_.e_type != ET_EXEC &&
+        header_.e_type != ET_DYN &&
+        header_.e_type != ET_REL) {
+      return false;
+    }
+    // Need a section header.
+    if (header_.e_shoff == 0) {
+      return false;
+    }
+
+    if (header_.e_shnum == SHN_UNDEF) {
+      // The number of sections in the program header is only a 16-bit value. In
+      // the event of overflow (greater than SHN_LORESERVE sections), e_shnum
+      // will read SHN_UNDEF and the true number of section header table entries
+      // is found in the sh_size field of the first section header.
+      // See: http://www.sco.com/developers/gabi/2003-12-17/ch4.sheader.html
+      if (pread(fd, &first_section_header_, sizeof(first_section_header_),
+                header_.e_shoff) != sizeof(first_section_header_)) {
+        return false;
+      }
+    }
+
+    // Dynamically allocate enough space to store the section headers
+    // and read them out of the file.
+    const int section_headers_size =
+        GetNumSections() * sizeof(*section_headers_);
+    section_headers_ = new typename ElfArch::Shdr[section_headers_size];
+    if (pread(fd, section_headers_, section_headers_size, header_.e_shoff) !=
+        section_headers_size) {
+      return false;
+    }
+
+    // Dynamically allocate enough space to store the program headers
+    // and read them out of the file.
+    //const int program_headers_size =
+    //    GetNumProgramHeaders() * sizeof(*program_headers_);
+    program_headers_ = new typename ElfArch::Phdr[GetNumProgramHeaders()];
+
+    // Presize the sections array for efficiency.
+    sections_.resize(GetNumSections(), NULL);
+    return true;
+  }
+
+  // Given the "value" of a function descriptor return the address of the
+  // function (i.e. the dereferenced value). Otherwise return "value".
+  uint64_t AdjustPPC64FunctionDescriptorSymbolValue(uint64_t value) {
+    if (opd_section_ != NULL &&
+        opd_info_.addr <= value &&
+        value < opd_info_.addr + opd_info_.size) {
+      uint64_t offset = value - opd_info_.addr;
+      return (*reinterpret_cast<const uint64_t*>(opd_section_ + offset));
+    }
+    return value;
+  }
+
+  void AdjustSymbolValue(typename ElfArch::Sym* sym) {
+    switch (header_.e_machine) {
+    case EM_ARM:
+      // For ARM architecture, if the LSB of the function symbol offset is set,
+      // it indicates a Thumb function.  This bit should not be taken literally.
+      // Clear it.
+      if (ElfArch::Type(sym) == STT_FUNC)
+        sym->st_value = AdjustARMThumbSymbolValue(sym->st_value);
+      break;
+    case EM_386:
+      // No adjustment needed for Intel x86 architecture.  However, explicitly
+      // define this case as we use it quite often.
+      break;
+    case EM_PPC64:
+      // PowerPC64 currently has function descriptors as part of the ABI.
+      // Function symbols need to be adjusted accordingly.
+      if (ElfArch::Type(sym) == STT_FUNC)
+        sym->st_value = AdjustPPC64FunctionDescriptorSymbolValue(sym->st_value);
+      break;
+    default:
+      break;
+    }
+  }
+
+  friend class SymbolIterator<ElfArch>;
+
+  // The file we're reading.
+  const string path_;
+  // Open file descriptor for path_. Not owned by this object.
+  const int fd_;
+
+  // The global header of the ELF file.
+  typename ElfArch::Ehdr header_;
+
+  // The header of the first section. This may be used to supplement the ELF
+  // file header.
+  typename ElfArch::Shdr first_section_header_;
+
+  // Array of GetNumSections() section headers, allocated when we read
+  // in the global header.
+  typename ElfArch::Shdr* section_headers_;
+
+  // Array of GetNumProgramHeaders() program headers, allocated when we read
+  // in the global header.
+  typename ElfArch::Phdr* program_headers_;
+
+  // An array of pointers to ElfSectionReaders. Sections are
+  // mmaped as they're needed and not released until this object is
+  // destroyed.
+  vector<ElfSectionReader<ElfArch>*> sections_;
+
+  // For PowerPC64 we need to keep track of function descriptors when looking up
+  // values for funtion symbols values. Function descriptors are kept in the
+  // .opd section and are dereferenced to find the function address.
+  ElfReader::SectionInfo opd_info_;
+  const char* opd_section_;  // Must be checked for NULL before use.
+  int64_t base_for_text_;
+
+  // Read PLT-related sections for the current architecture.
+  bool plts_supported_;
+  // Code size of each PLT function for the current architecture.
+  size_t plt_code_size_;
+  // Size of the special first entry in the .plt section that calls the runtime
+  // loader resolution routine, and that all other entries jump to when doing
+  // lazy symbol binding.
+  size_t plt0_size_;
+
+  // Maps a dynamic symbol index to a PLT offset.
+  // The vector entry index is the dynamic symbol index.
+  std::vector<uint64_t> symbols_plt_offsets_;
+
+  // Container for PLT function name strings. These strings are passed by
+  // reference to SymbolSink::AddSymbol() so they need to be stored somewhere.
+  std::vector<string> plt_function_names_;
+
+  bool visited_relocation_entries_;
+
+  // True if this is a .dwp file.
+  bool is_dwp_;
+};
+
+ElfReader::ElfReader(const string& path)
+    : path_(path), fd_(-1), impl32_(NULL), impl64_(NULL) {
+  // linux 2.6.XX kernel can show deleted files like this:
+  //   /var/run/nscd/dbYLJYaE (deleted)
+  // and the kernel-supplied vdso and vsyscall mappings like this:
+  //   [vdso]
+  //   [vsyscall]
+  if (MyHasSuffixString(path, " (deleted)"))
+    return;
+  if (path == "[vdso]")
+    return;
+  if (path == "[vsyscall]")
+    return;
+
+  fd_ = open(path.c_str(), O_RDONLY);
+}
+
+ElfReader::~ElfReader() {
+  if (fd_ != -1)
+    close(fd_);
+  if (impl32_ != NULL)
+    delete impl32_;
+  if (impl64_ != NULL)
+    delete impl64_;
+}
+
+
+// The only word-size specific part of this file is IsNativeElfFile().
+#if ULONG_MAX == 0xffffffff
+#define NATIVE_ELF_ARCH Elf32
+#elif ULONG_MAX == 0xffffffffffffffff
+#define NATIVE_ELF_ARCH Elf64
+#else
+#error "Invalid word size"
+#endif
+
+template <typename ElfArch>
+static bool IsElfFile(const int fd, const string& path) {
+  if (fd < 0)
+    return false;
+  if (!ElfReaderImpl<ElfArch>::IsArchElfFile(fd, NULL)) {
+    // No error message here.  IsElfFile gets called many times.
+    return false;
+  }
+  return true;
+}
+
+bool ElfReader::IsNativeElfFile() const {
+  return IsElfFile<NATIVE_ELF_ARCH>(fd_, path_);
+}
+
+bool ElfReader::IsElf32File() const {
+  return IsElfFile<Elf32>(fd_, path_);
+}
+
+bool ElfReader::IsElf64File() const {
+  return IsElfFile<Elf64>(fd_, path_);
+}
+
+/*
+void ElfReader::AddSymbols(SymbolMap* symbols,
+                           uint64_t mem_offset, uint64_t file_offset,
+                           uint64_t length) {
+  if (fd_ < 0)
+    return;
+  // TODO(chatham): Actually use the information about file offset and
+  // the length of the mapped section. On some machines the data
+  // section gets mapped as executable, and we'll end up reading the
+  // file twice and getting some of the offsets wrong.
+  if (IsElf32File()) {
+    GetImpl32()->GetSymbolPositions(symbols, SHT_SYMTAB,
+                                    mem_offset, file_offset);
+    GetImpl32()->GetSymbolPositions(symbols, SHT_DYNSYM,
+                                    mem_offset, file_offset);
+  } else if (IsElf64File()) {
+    GetImpl64()->GetSymbolPositions(symbols, SHT_SYMTAB,
+                                    mem_offset, file_offset);
+    GetImpl64()->GetSymbolPositions(symbols, SHT_DYNSYM,
+                                    mem_offset, file_offset);
+  }
+}
+*/
+
+void ElfReader::VisitSymbols(ElfReader::SymbolSink* sink) {
+  VisitSymbols(sink, -1, -1);
+}
+
+void ElfReader::VisitSymbols(ElfReader::SymbolSink* sink,
+                             int symbol_binding,
+                             int symbol_type) {
+  VisitSymbols(sink, symbol_binding, symbol_type, false);
+}
+
+void ElfReader::VisitSymbols(ElfReader::SymbolSink* sink,
+                             int symbol_binding,
+                             int symbol_type,
+                             bool get_raw_symbol_values) {
+  if (IsElf32File()) {
+    GetImpl32()->VisitRelocationEntries();
+    GetImpl32()->VisitSymbols(SHT_SYMTAB, sink, symbol_binding, symbol_type,
+                              get_raw_symbol_values);
+    GetImpl32()->VisitSymbols(SHT_DYNSYM, sink, symbol_binding, symbol_type,
+                              get_raw_symbol_values);
+  } else if (IsElf64File()) {
+    GetImpl64()->VisitRelocationEntries();
+    GetImpl64()->VisitSymbols(SHT_SYMTAB, sink, symbol_binding, symbol_type,
+                              get_raw_symbol_values);
+    GetImpl64()->VisitSymbols(SHT_DYNSYM, sink, symbol_binding, symbol_type,
+                              get_raw_symbol_values);
+  }
+}
+
+uint64_t ElfReader::VaddrOfFirstLoadSegment() {
+  if (IsElf32File()) {
+    return GetImpl32()->VaddrOfFirstLoadSegment();
+  } else if (IsElf64File()) {
+    return GetImpl64()->VaddrOfFirstLoadSegment();
+  } else {
+    return 0;
+  }
+}
+
+const char* ElfReader::GetSectionName(int shndx) {
+  if (shndx < 0 || static_cast<unsigned int>(shndx) >= GetNumSections()) return NULL;
+  if (IsElf32File()) {
+    return GetImpl32()->GetSectionNameByIndex(shndx);
+  } else if (IsElf64File()) {
+    return GetImpl64()->GetSectionNameByIndex(shndx);
+  } else {
+    return NULL;
+  }
+}
+
+uint64_t ElfReader::GetNumSections() {
+  if (IsElf32File()) {
+    return GetImpl32()->GetNumSections();
+  } else if (IsElf64File()) {
+    return GetImpl64()->GetNumSections();
+  } else {
+    return 0;
+  }
+}
+
+const char* ElfReader::GetSectionByIndex(int shndx, size_t* size) {
+  if (IsElf32File()) {
+    return GetImpl32()->GetSectionContentsByIndex(shndx, size);
+  } else if (IsElf64File()) {
+    return GetImpl64()->GetSectionContentsByIndex(shndx, size);
+  } else {
+    return NULL;
+  }
+}
+
+const char* ElfReader::GetSectionByName(const string& section_name,
+                                        size_t* size) {
+  if (IsElf32File()) {
+    return GetImpl32()->GetSectionContentsByName(section_name, size);
+  } else if (IsElf64File()) {
+    return GetImpl64()->GetSectionContentsByName(section_name, size);
+  } else {
+    return NULL;
+  }
+}
+
+const char* ElfReader::GetSectionInfoByName(const string& section_name,
+                                            SectionInfo* info) {
+  if (IsElf32File()) {
+    return GetImpl32()->GetSectionInfoByName(section_name, info);
+  } else if (IsElf64File()) {
+    return GetImpl64()->GetSectionInfoByName(section_name, info);
+  } else {
+    return NULL;
+  }
+}
+
+bool ElfReader::SectionNamesMatch(const string& name, const string& sh_name) {
+  if ((name.find(".debug_", 0) == 0) && (sh_name.find(".zdebug_", 0) == 0)) {
+    const string name_suffix(name, strlen(".debug_"));
+    const string sh_name_suffix(sh_name, strlen(".zdebug_"));
+    return name_suffix == sh_name_suffix;
+  }
+  return name == sh_name;
+}
+
+bool ElfReader::IsDynamicSharedObject() {
+  if (IsElf32File()) {
+    return GetImpl32()->IsDynamicSharedObject();
+  } else if (IsElf64File()) {
+    return GetImpl64()->IsDynamicSharedObject();
+  } else {
+    return false;
+  }
+}
+
+ElfReaderImpl<Elf32>* ElfReader::GetImpl32() {
+  if (impl32_ == NULL) {
+    impl32_ = new ElfReaderImpl<Elf32>(path_, fd_);
+  }
+  return impl32_;
+}
+
+ElfReaderImpl<Elf64>* ElfReader::GetImpl64() {
+  if (impl64_ == NULL) {
+    impl64_ = new ElfReaderImpl<Elf64>(path_, fd_);
+  }
+  return impl64_;
+}
+
+// Return true if file is an ELF binary of ElfArch, with unstripped
+// debug info (debug_only=true) or symbol table (debug_only=false).
+// Otherwise, return false.
+template <typename ElfArch>
+static bool IsNonStrippedELFBinaryImpl(const string& path, const int fd,
+                                       bool debug_only) {
+  if (!ElfReaderImpl<ElfArch>::IsArchElfFile(fd, NULL)) return false;
+  ElfReaderImpl<ElfArch> elf_reader(path, fd);
+  return debug_only ?
+      elf_reader.HasDebugSections()
+      : (elf_reader.GetSectionByType(SHT_SYMTAB) != NULL);
+}
+
+// Helper for the IsNon[Debug]StrippedELFBinary functions.
+static bool IsNonStrippedELFBinaryHelper(const string& path,
+                                         bool debug_only) {
+  const int fd = open(path.c_str(), O_RDONLY);
+  if (fd == -1) {
+    return false;
+  }
+
+  if (IsNonStrippedELFBinaryImpl<Elf32>(path, fd, debug_only) ||
+      IsNonStrippedELFBinaryImpl<Elf64>(path, fd, debug_only)) {
+    close(fd);
+    return true;
+  }
+  close(fd);
+  return false;
+}
+
+bool ElfReader::IsNonStrippedELFBinary(const string& path) {
+  return IsNonStrippedELFBinaryHelper(path, false);
+}
+
+bool ElfReader::IsNonDebugStrippedELFBinary(const string& path) {
+  return IsNonStrippedELFBinaryHelper(path, true);
+}
+}  // namespace dwarf2reader
diff --git a/src/common/dwarf/elf_reader.h b/src/common/dwarf/elf_reader.h
new file mode 100644
index 0000000..0aa9228
--- /dev/null
+++ b/src/common/dwarf/elf_reader.h
@@ -0,0 +1,167 @@
+// Copyright 2005 Google Inc. All Rights Reserved.
+// Author: chatham@google.com (Andrew Chatham)
+// Author: satorux@google.com (Satoru Takabayashi)
+//
+// ElfReader handles reading in ELF. It can extract symbols from the
+// current process, which may be used to symbolize stack traces
+// without having to make a potentially dangerous call to fork().
+//
+// ElfReader dynamically allocates memory, so it is not appropriate to
+// use once the address space might be corrupted, such as during
+// process death.
+//
+// ElfReader supports both 32-bit and 64-bit ELF binaries.
+
+#ifndef COMMON_DWARF_ELF_READER_H__
+#define COMMON_DWARF_ELF_READER_H__
+
+#include <string>
+#include <vector>
+
+#include "common/dwarf/types.h"
+#include "common/using_std_string.h"
+
+using std::vector;
+using std::pair;
+
+namespace dwarf2reader {
+
+class SymbolMap;
+class Elf32;
+class Elf64;
+template<typename ElfArch>
+class ElfReaderImpl;
+
+class ElfReader {
+ public:
+  explicit ElfReader(const string& path);
+  ~ElfReader();
+
+  // Parse the ELF prologue of this file and return whether it was
+  // successfully parsed and matches the word size and byte order of
+  // the current process.
+  bool IsNativeElfFile() const;
+
+  // Similar to IsNativeElfFile but checks if it's a 32-bit ELF file.
+  bool IsElf32File() const;
+
+  // Similar to IsNativeElfFile but checks if it's a 64-bit ELF file.
+  bool IsElf64File() const;
+
+  // Checks if it's an ELF file of type ET_DYN (shared object file).
+  bool IsDynamicSharedObject();
+
+  // Add symbols in the given ELF file into the provided SymbolMap,
+  // assuming that the file has been loaded into the specified
+  // offset.
+  //
+  // The remaining arguments are typically taken from a
+  // ProcMapsIterator (base/sysinfo.h) and describe which portions of
+  // the ELF file are mapped into which parts of memory:
+  //
+  // mem_offset - position at which the segment is mapped into memory
+  // file_offset - offset in the file where the mapping begins
+  // length - length of the mapped segment
+  void AddSymbols(SymbolMap* symbols,
+                  uint64_t mem_offset, uint64_t file_offset,
+                  uint64_t length);
+
+  class SymbolSink {
+   public:
+    virtual ~SymbolSink() {}
+    virtual void AddSymbol(const char* name, uint64_t address,
+                           uint64_t size) = 0;
+  };
+
+  // Like AddSymbols above, but with no address correction.
+  // Processes any SHT_SYMTAB section, followed by any SHT_DYNSYM section.
+  void VisitSymbols(SymbolSink* sink);
+
+  // Like VisitSymbols above, but for a specific symbol binding/type.
+  // A negative value for the binding and type parameters means any
+  // binding or type.
+  void VisitSymbols(SymbolSink* sink, int symbol_binding, int symbol_type);
+
+  // Like VisitSymbols above but can optionally export raw symbol values instead
+  // of adjusted ones.
+  void VisitSymbols(SymbolSink* sink, int symbol_binding, int symbol_type,
+                    bool get_raw_symbol_values);
+
+  // p_vaddr of the first PT_LOAD segment (if any), or 0 if no PT_LOAD
+  // segments are present. This is the address an ELF image was linked
+  // (by static linker) to be loaded at. Usually (but not always) 0 for
+  // shared libraries and position-independent executables.
+  uint64_t VaddrOfFirstLoadSegment();
+
+  // Return the name of section "shndx".  Returns NULL if the section
+  // is not found.
+  const char* GetSectionName(int shndx);
+
+  // Return the number of sections in the given ELF file.
+  uint64_t GetNumSections();
+
+  // Get section "shndx" from the given ELF file.  On success, return
+  // the pointer to the section and store the size in "size".
+  // On error, return NULL.  The returned section data is only valid
+  // until the ElfReader gets destroyed.
+  const char* GetSectionByIndex(int shndx, size_t* size);
+
+  // Get section with "section_name" (ex. ".text", ".symtab") in the
+  // given ELF file.  On success, return the pointer to the section
+  // and store the size in "size".  On error, return NULL.  The
+  // returned section data is only valid until the ElfReader gets
+  // destroyed.
+  const char* GetSectionByName(const string& section_name, size_t* size);
+
+  // This is like GetSectionByName() but it returns a lot of extra information
+  // about the section. The SectionInfo structure is almost identical to
+  // the typedef struct Elf64_Shdr defined in <elf.h>, but is redefined
+  // here so that the many short macro names in <elf.h> don't have to be
+  // added to our already cluttered namespace.
+  struct SectionInfo {
+    uint32_t type;              // Section type (SHT_xxx constant from elf.h).
+    uint64_t flags;             // Section flags (SHF_xxx constants from elf.h).
+    uint64_t addr;              // Section virtual address at execution.
+    uint64_t offset;            // Section file offset.
+    uint64_t size;              // Section size in bytes.
+    uint32_t link;              // Link to another section.
+    uint32_t info;              // Additional section information.
+    uint64_t addralign;         // Section alignment.
+    uint64_t entsize;           // Entry size if section holds a table.
+  };
+  const char* GetSectionInfoByName(const string& section_name,
+                                   SectionInfo* info);
+
+  // Check if "path" is an ELF binary that has not been stripped of symbol
+  // tables.  This function supports both 32-bit and 64-bit ELF binaries.
+  static bool IsNonStrippedELFBinary(const string& path);
+
+  // Check if "path" is an ELF binary that has not been stripped of debug
+  // info. Unlike IsNonStrippedELFBinary, this function will return
+  // false for binaries passed through "strip -S".
+  static bool IsNonDebugStrippedELFBinary(const string& path);
+
+  // Match a requested section name with the section name as it
+  // appears in the elf-file, adjusting for compressed debug section
+  // names.  For example, returns true if name == ".debug_abbrev" and
+  // sh_name == ".zdebug_abbrev"
+  static bool SectionNamesMatch(const string& name, const string& sh_name);
+
+ private:
+  // Lazily initialize impl32_ and return it.
+  ElfReaderImpl<Elf32>* GetImpl32();
+  // Ditto for impl64_.
+  ElfReaderImpl<Elf64>* GetImpl64();
+
+  // Path of the file we're reading.
+  const string path_;
+  // Read-only file descriptor for the file. May be -1 if there was an
+  // error during open.
+  int fd_;
+  ElfReaderImpl<Elf32>* impl32_;
+  ElfReaderImpl<Elf64>* impl64_;
+};
+
+}  // namespace dwarf2reader
+
+#endif  // COMMON_DWARF_ELF_READER_H__
diff --git a/src/common/dwarf/functioninfo.cc b/src/common/dwarf/functioninfo.cc
new file mode 100644
index 0000000..6b9a92a
--- /dev/null
+++ b/src/common/dwarf/functioninfo.cc
@@ -0,0 +1,230 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This is a client for the dwarf2reader to extract function and line
+// information from the debug info.
+
+#include <assert.h>
+#include <limits.h>
+#include <stdio.h>
+
+#include <map>
+#include <queue>
+#include <vector>
+
+#include "common/dwarf/functioninfo.h"
+#include "common/dwarf/bytereader.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::scoped_ptr;
+
+namespace dwarf2reader {
+
+CULineInfoHandler::CULineInfoHandler(std::vector<SourceFileInfo>* files,
+                                     std::vector<string>* dirs,
+                                     LineMap* linemap):linemap_(linemap),
+                                                       files_(files),
+                                                       dirs_(dirs) {
+  // In dwarf4, the dirs and files are 1 indexed, and in dwarf5 they are zero
+  // indexed. This is handled in the LineInfo reader, so empty files are not
+  // needed here.
+}
+
+void CULineInfoHandler::DefineDir(const string& name, uint32_t dir_num) {
+  // These should never come out of order, actually
+  assert(dir_num == dirs_->size());
+  dirs_->push_back(name);
+}
+
+void CULineInfoHandler::DefineFile(const string& name,
+                                   int32 file_num, uint32_t dir_num,
+                                   uint64_t mod_time, uint64_t length) {
+  assert(dir_num >= 0);
+  assert(dir_num < dirs_->size());
+
+  // These should never come out of order, actually.
+  if (file_num == (int32)files_->size() || file_num == -1) {
+    string dir = dirs_->at(dir_num);
+
+    SourceFileInfo s;
+    s.lowpc = ULLONG_MAX;
+
+    if (dir == "") {
+      s.name = name;
+    } else {
+      s.name = dir + "/" + name;
+    }
+
+    files_->push_back(s);
+  } else {
+    fprintf(stderr, "error in DefineFile");
+  }
+}
+
+void CULineInfoHandler::AddLine(uint64_t address, uint64_t length,
+                                uint32_t file_num, uint32_t line_num,
+                                uint32_t column_num) {
+  if (file_num < files_->size()) {
+    linemap_->insert(
+        std::make_pair(address,
+                       std::make_pair(files_->at(file_num).name.c_str(),
+                                      line_num)));
+
+    if (address < files_->at(file_num).lowpc) {
+      files_->at(file_num).lowpc = address;
+    }
+  } else {
+    fprintf(stderr, "error in AddLine");
+  }
+}
+
+bool CUFunctionInfoHandler::StartCompilationUnit(uint64_t offset,
+                                                 uint8_t address_size,
+                                                 uint8_t offset_size,
+                                                 uint64_t cu_length,
+                                                 uint8_t dwarf_version) {
+  current_compilation_unit_offset_ = offset;
+  return true;
+}
+
+
+// For function info, we only care about subprograms and inlined
+// subroutines. For line info, the DW_AT_stmt_list lives in the
+// compile unit tag.
+
+bool CUFunctionInfoHandler::StartDIE(uint64_t offset, enum DwarfTag tag) {
+  switch (tag) {
+    case DW_TAG_subprogram:
+    case DW_TAG_inlined_subroutine: {
+      current_function_info_ = new FunctionInfo;
+      current_function_info_->lowpc = current_function_info_->highpc = 0;
+      current_function_info_->name = "";
+      current_function_info_->line = 0;
+      current_function_info_->file = "";
+      offset_to_funcinfo_->insert(std::make_pair(offset,
+                                                 current_function_info_));
+    };
+      // FALLTHROUGH
+    case DW_TAG_compile_unit:
+      return true;
+    default:
+      return false;
+  }
+  return false;
+}
+
+// Only care about the name attribute for functions
+
+void CUFunctionInfoHandler::ProcessAttributeString(uint64_t offset,
+                                                   enum DwarfAttribute attr,
+                                                   enum DwarfForm form,
+                                                   const string& data) {
+  if (current_function_info_) {
+    if (attr == DW_AT_name)
+      current_function_info_->name = data;
+    else if (attr == DW_AT_MIPS_linkage_name)
+      current_function_info_->mangled_name = data;
+  }
+}
+
+void CUFunctionInfoHandler::ProcessAttributeUnsigned(uint64_t offset,
+                                                     enum DwarfAttribute attr,
+                                                     enum DwarfForm form,
+                                                     uint64_t data) {
+  if (attr == DW_AT_stmt_list) {
+    SectionMap::const_iterator iter =
+        GetSectionByName(sections_, ".debug_line");
+    assert(iter != sections_.end());
+
+    scoped_ptr<LineInfo> lireader(new LineInfo(iter->second.first + data,
+                                               iter->second.second  - data,
+                                               reader_, linehandler_));
+    lireader->Start();
+  } else if (current_function_info_) {
+    switch (attr) {
+      case DW_AT_low_pc:
+        current_function_info_->lowpc = data;
+        break;
+      case DW_AT_high_pc:
+        current_function_info_->highpc = data;
+        break;
+      case DW_AT_decl_line:
+        current_function_info_->line = data;
+        break;
+      case DW_AT_decl_file:
+        current_function_info_->file = files_->at(data).name;
+        break;
+      case DW_AT_ranges:
+        current_function_info_->ranges = data;
+        break;
+      default:
+        break;
+    }
+  }
+}
+
+void CUFunctionInfoHandler::ProcessAttributeReference(uint64_t offset,
+                                                      enum DwarfAttribute attr,
+                                                      enum DwarfForm form,
+                                                      uint64_t data) {
+  if (current_function_info_) {
+    switch (attr) {
+      case DW_AT_specification: {
+        // Some functions have a "specification" attribute
+        // which means they were defined elsewhere. The name
+        // attribute is not repeated, and must be taken from
+        // the specification DIE. Here we'll assume that
+        // any DIE referenced in this manner will already have
+        // been seen, but that's not really required by the spec.
+        FunctionMap::iterator iter = offset_to_funcinfo_->find(data);
+        if (iter != offset_to_funcinfo_->end()) {
+          current_function_info_->name = iter->second->name;
+          current_function_info_->mangled_name = iter->second->mangled_name;
+        } else {
+          // If you hit this, this code probably needs to be rewritten.
+          fprintf(stderr,
+                  "Error: DW_AT_specification was seen before the referenced "
+                  "DIE! (Looking for DIE at offset %08llx, in DIE at "
+                  "offset %08llx)\n", data, offset);
+        }
+        break;
+      }
+      default:
+        break;
+    }
+  }
+}
+
+void CUFunctionInfoHandler::EndDIE(uint64_t offset) {
+  if (current_function_info_ && current_function_info_->lowpc)
+    address_to_funcinfo_->insert(std::make_pair(current_function_info_->lowpc,
+                                                current_function_info_));
+}
+
+}  // namespace dwarf2reader
diff --git a/src/common/dwarf/functioninfo.h b/src/common/dwarf/functioninfo.h
new file mode 100644
index 0000000..5c733c6
--- /dev/null
+++ b/src/common/dwarf/functioninfo.h
@@ -0,0 +1,191 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This file contains the definitions for a DWARF2/3 information
+// collector that uses the DWARF2/3 reader interface to build a mapping
+// of addresses to files, lines, and functions.
+
+#ifndef COMMON_DWARF_FUNCTIONINFO_H__
+#define COMMON_DWARF_FUNCTIONINFO_H__
+
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+
+
+namespace dwarf2reader {
+
+struct FunctionInfo {
+  // Name of the function
+  string name;
+  // Mangled name of the function
+  string mangled_name;
+  // File containing this function
+  string file;
+  // Line number for start of function.
+  uint32_t line;
+  // Beginning address for this function
+  uint64_t lowpc;
+  // End address for this function.
+  uint64_t highpc;
+  // Ranges offset
+  uint64_t ranges;
+};
+
+struct SourceFileInfo {
+  // Name of the source file name
+  string name;
+  // Low address of source file name
+  uint64_t lowpc;
+};
+
+typedef std::map<uint64, FunctionInfo*> FunctionMap;
+typedef std::map<uint64, std::pair<string, uint32> > LineMap;
+
+// This class is a basic line info handler that fills in the dirs,
+// file, and linemap passed into it with the data produced from the
+// LineInfoHandler.
+class CULineInfoHandler: public LineInfoHandler {
+ public:
+
+  //
+  CULineInfoHandler(std::vector<SourceFileInfo>* files,
+                    std::vector<string>* dirs,
+                    LineMap* linemap);
+  virtual ~CULineInfoHandler() { }
+
+  // Called when we define a directory.  We just place NAME into dirs_
+  // at position DIR_NUM.
+  virtual void DefineDir(const string& name, uint32_t dir_num);
+
+  // Called when we define a filename.  We just place
+  // concat(dirs_[DIR_NUM], NAME) into files_ at position FILE_NUM.
+  virtual void DefineFile(const string& name, int32 file_num,
+                          uint32_t dir_num, uint64_t mod_time, uint64_t length);
+
+
+  // Called when the line info reader has a new line, address pair
+  // ready for us. ADDRESS is the address of the code, LENGTH is the
+  // length of its machine code in bytes, FILE_NUM is the file number
+  // containing the code, LINE_NUM is the line number in that file for
+  // the code, and COLUMN_NUM is the column number the code starts at,
+  // if we know it (0 otherwise).
+  virtual void AddLine(uint64_t address, uint64_t length,
+                       uint32_t file_num, uint32_t line_num,
+                       uint32_t column_num);
+
+ private:
+  LineMap* linemap_;
+  std::vector<SourceFileInfo>* files_;
+  std::vector<string>* dirs_;
+};
+
+class CUFunctionInfoHandler: public Dwarf2Handler {
+ public:
+  CUFunctionInfoHandler(std::vector<SourceFileInfo>* files,
+                        std::vector<string>* dirs,
+                        LineMap* linemap,
+                        FunctionMap* offset_to_funcinfo,
+                        FunctionMap* address_to_funcinfo,
+                        CULineInfoHandler* linehandler,
+                        const SectionMap& sections,
+                        ByteReader* reader)
+      : files_(files), dirs_(dirs), linemap_(linemap),
+        offset_to_funcinfo_(offset_to_funcinfo),
+        address_to_funcinfo_(address_to_funcinfo),
+        linehandler_(linehandler), sections_(sections),
+        reader_(reader), current_function_info_(NULL) { }
+
+  virtual ~CUFunctionInfoHandler() { }
+
+  // Start to process a compilation unit at OFFSET from the beginning of the
+  // .debug_info section.  We want to see all compilation units, so we
+  // always return true.
+
+  virtual bool StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                                    uint8_t offset_size, uint64_t cu_length,
+                                    uint8_t dwarf_version);
+
+  // Start to process a DIE at OFFSET from the beginning of the
+  // .debug_info section.  We only care about function related DIE's.
+  virtual bool StartDIE(uint64_t offset, enum DwarfTag tag);
+
+  // Called when we have an attribute with unsigned data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of the .debug_info section, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA.
+  virtual void ProcessAttributeUnsigned(uint64_t offset,
+                                        enum DwarfAttribute attr,
+                                        enum DwarfForm form,
+                                        uint64_t data);
+
+  // Called when we have an attribute with a DIE reference to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of the .debug_info section, has a name of ATTR, a form of
+  // FORM, and the offset of the referenced DIE from the start of the
+  // .debug_info section is in DATA.
+  virtual void ProcessAttributeReference(uint64_t offset,
+                                         enum DwarfAttribute attr,
+                                         enum DwarfForm form,
+                                         uint64_t data);
+
+  // Called when we have an attribute with string data to give to
+  // our handler.  The attribute is for the DIE at OFFSET from the
+  // beginning of the .debug_info section, has a name of ATTR, a form of
+  // FORM, and the actual data of the attribute is in DATA.
+  virtual void ProcessAttributeString(uint64_t offset,
+                                      enum DwarfAttribute attr,
+                                      enum DwarfForm form,
+                                      const string& data);
+
+  // Called when finished processing the DIE at OFFSET.
+  // Because DWARF2/3 specifies a tree of DIEs, you may get starts
+  // before ends of the previous DIE, as we process children before
+  // ending the parent.
+  virtual void EndDIE(uint64_t offset);
+
+ private:
+  std::vector<SourceFileInfo>* files_;
+  std::vector<string>* dirs_;
+  LineMap* linemap_;
+  FunctionMap* offset_to_funcinfo_;
+  FunctionMap* address_to_funcinfo_;
+  CULineInfoHandler* linehandler_;
+  const SectionMap& sections_;
+  ByteReader* reader_;
+  FunctionInfo* current_function_info_;
+  uint64_t current_compilation_unit_offset_;
+};
+
+}  // namespace dwarf2reader
+#endif  // COMMON_DWARF_FUNCTIONINFO_H__
diff --git a/src/common/dwarf/line_state_machine.h b/src/common/dwarf/line_state_machine.h
new file mode 100644
index 0000000..fc301c7
--- /dev/null
+++ b/src/common/dwarf/line_state_machine.h
@@ -0,0 +1,61 @@
+// Copyright 2008 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#ifndef COMMON_DWARF_LINE_STATE_MACHINE_H__
+#define COMMON_DWARF_LINE_STATE_MACHINE_H__
+
+namespace dwarf2reader {
+
+// This is the format of a DWARF2/3 line state machine that we process
+// opcodes using.  There is no need for anything outside the lineinfo
+// processor to know how this works.
+struct LineStateMachine {
+  void Reset(bool default_is_stmt) {
+    file_num = 1;
+    address = 0;
+    line_num = 1;
+    column_num = 0;
+    is_stmt = default_is_stmt;
+    basic_block = false;
+    end_sequence = false;
+  }
+
+  uint32_t file_num;
+  uint64_t address;
+  uint32_t line_num;
+  uint32_t column_num;
+  bool is_stmt;  // stmt means statement.
+  bool basic_block;
+  bool end_sequence;
+};
+
+}  // namespace dwarf2reader
+
+
+#endif  // COMMON_DWARF_LINE_STATE_MACHINE_H__
diff --git a/src/common/dwarf/types.h b/src/common/dwarf/types.h
new file mode 100644
index 0000000..23412d0
--- /dev/null
+++ b/src/common/dwarf/types.h
@@ -0,0 +1,41 @@
+// Copyright 2008 Google, Inc.  All Rights reserved
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This file contains some typedefs for basic types
+
+
+#ifndef _COMMON_DWARF_TYPES_H__
+#define _COMMON_DWARF_TYPES_H__
+
+#include <stdint.h>
+
+typedef intptr_t           intptr;
+typedef uintptr_t          uintptr;
+
+#endif // _COMMON_DWARF_TYPES_H__
diff --git a/src/common/dwarf_cfi_to_module.cc b/src/common/dwarf_cfi_to_module.cc
new file mode 100644
index 0000000..eb19c13
--- /dev/null
+++ b/src/common/dwarf_cfi_to_module.cc
@@ -0,0 +1,295 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// Implementation of google_breakpad::DwarfCFIToModule.
+// See dwarf_cfi_to_module.h for details.
+
+#include <sstream>
+
+#include "common/dwarf_cfi_to_module.h"
+
+namespace google_breakpad {
+
+using std::ostringstream;
+
+vector<string> DwarfCFIToModule::RegisterNames::MakeVector(
+    const char * const *strings,
+    size_t size) {
+  vector<string> names(strings, strings + size);
+  return names;
+}
+
+vector<string> DwarfCFIToModule::RegisterNames::I386() {
+  static const char *const names[] = {
+    "$eax", "$ecx", "$edx", "$ebx", "$esp", "$ebp", "$esi", "$edi",
+    "$eip", "$eflags", "$unused1",
+    "$st0", "$st1", "$st2", "$st3", "$st4", "$st5", "$st6", "$st7",
+    "$unused2", "$unused3",
+    "$xmm0", "$xmm1", "$xmm2", "$xmm3", "$xmm4", "$xmm5", "$xmm6", "$xmm7",
+    "$mm0", "$mm1", "$mm2", "$mm3", "$mm4", "$mm5", "$mm6", "$mm7",
+    "$fcw", "$fsw", "$mxcsr",
+    "$es", "$cs", "$ss", "$ds", "$fs", "$gs", "$unused4", "$unused5",
+    "$tr", "$ldtr"
+  };
+
+  return MakeVector(names, sizeof(names) / sizeof(names[0]));
+}
+
+vector<string> DwarfCFIToModule::RegisterNames::X86_64() {
+  static const char *const names[] = {
+    "$rax", "$rdx", "$rcx", "$rbx", "$rsi", "$rdi", "$rbp", "$rsp",
+    "$r8",  "$r9",  "$r10", "$r11", "$r12", "$r13", "$r14", "$r15",
+    "$rip",
+    "$xmm0","$xmm1","$xmm2", "$xmm3", "$xmm4", "$xmm5", "$xmm6", "$xmm7",
+    "$xmm8","$xmm9","$xmm10","$xmm11","$xmm12","$xmm13","$xmm14","$xmm15",
+    "$st0", "$st1", "$st2", "$st3", "$st4", "$st5", "$st6", "$st7",
+    "$mm0", "$mm1", "$mm2", "$mm3", "$mm4", "$mm5", "$mm6", "$mm7",
+    "$rflags",
+    "$es", "$cs", "$ss", "$ds", "$fs", "$gs", "$unused1", "$unused2",
+    "$fs.base", "$gs.base", "$unused3", "$unused4",
+    "$tr", "$ldtr",
+    "$mxcsr", "$fcw", "$fsw"
+  };
+
+  return MakeVector(names, sizeof(names) / sizeof(names[0]));
+}
+
+// Per ARM IHI 0040A, section 3.1
+vector<string> DwarfCFIToModule::RegisterNames::ARM() {
+  static const char *const names[] = {
+    "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
+    "r8",  "r9",  "r10", "r11", "r12", "sp",  "lr",  "pc",
+    "f0",  "f1",  "f2",  "f3",  "f4",  "f5",  "f6",  "f7",
+    "fps", "cpsr", "",   "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "s0",  "s1",  "s2",  "s3",  "s4",  "s5",  "s6",  "s7",
+    "s8",  "s9",  "s10", "s11", "s12", "s13", "s14", "s15",
+    "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
+    "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31",
+    "f0",  "f1",  "f2",  "f3",  "f4",  "f5",  "f6",  "f7"
+  };
+
+  return MakeVector(names, sizeof(names) / sizeof(names[0]));
+}
+
+// Per ARM IHI 0057A, section 3.1
+vector<string> DwarfCFIToModule::RegisterNames::ARM64() {
+  static const char *const names[] = {
+    "x0",  "x1",  "x2",  "x3",  "x4",  "x5",  "x6",  "x7",
+    "x8",  "x9",  "x10", "x11", "x12", "x13", "x14", "x15",
+    "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23",
+    "x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "",    "",    "",    "",    "",    "",    "",    "",
+    "v0",  "v1",  "v2",  "v3",  "v4",  "v5",  "v6",  "v7",
+    "v8",  "v9",  "v10", "v11", "v12", "v13", "v14", "v15",
+    "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
+    "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31"
+  };
+
+  return MakeVector(names, sizeof(names) / sizeof(names[0]));
+}
+
+vector<string> DwarfCFIToModule::RegisterNames::MIPS() {
+  static const char* const kRegisterNames[] = {
+    "$zero", "$at",  "$v0",  "$v1",  "$a0",   "$a1",  "$a2",  "$a3",
+    "$t0",   "$t1",  "$t2",  "$t3",  "$t4",   "$t5",  "$t6",  "$t7",
+    "$s0",   "$s1",  "$s2",  "$s3",  "$s4",   "$s5",  "$s6",  "$s7",
+    "$t8",   "$t9",  "$k0",  "$k1",  "$gp",   "$sp",  "$fp",  "$ra",
+    "$lo",   "$hi",  "$pc",  "$f0",  "$f2",   "$f3",  "$f4",  "$f5",
+    "$f6",   "$f7",  "$f8",  "$f9",  "$f10",  "$f11", "$f12", "$f13",
+    "$f14",  "$f15", "$f16", "$f17", "$f18",  "$f19", "$f20",
+    "$f21",  "$f22", "$f23", "$f24", "$f25",  "$f26", "$f27",
+    "$f28",  "$f29", "$f30", "$f31", "$fcsr", "$fir"
+  };
+
+  return MakeVector(kRegisterNames,
+                    sizeof(kRegisterNames) / sizeof(kRegisterNames[0]));
+}
+
+bool DwarfCFIToModule::Entry(size_t offset, uint64_t address, uint64_t length,
+                             uint8_t version, const string& augmentation,
+                             unsigned return_address) {
+  assert(!entry_);
+
+  // If dwarf2reader::CallFrameInfo can handle this version and
+  // augmentation, then we should be okay with that, so there's no
+  // need to check them here.
+
+  // Get ready to collect entries.
+  entry_ = new Module::StackFrameEntry;
+  entry_->address = address;
+  entry_->size = length;
+  entry_offset_ = offset;
+  return_address_ = return_address;
+
+  // Breakpad STACK CFI records must provide a .ra rule, but DWARF CFI
+  // may not establish any rule for .ra if the return address column
+  // is an ordinary register, and that register holds the return
+  // address on entry to the function. So establish an initial .ra
+  // rule citing the return address register.
+  if (return_address_ < register_names_.size())
+    entry_->initial_rules[ra_name_] = register_names_[return_address_];
+
+  return true;
+}
+
+string DwarfCFIToModule::RegisterName(int i) {
+  assert(entry_);
+  if (i < 0) {
+    assert(i == kCFARegister);
+    return cfa_name_;
+  }
+  unsigned reg = i;
+  if (reg == return_address_)
+    return ra_name_;
+
+  // Ensure that a non-empty name exists for this register value.
+  if (reg < register_names_.size() && !register_names_[reg].empty())
+    return register_names_[reg];
+
+  reporter_->UnnamedRegister(entry_offset_, reg);
+  char buf[30];
+  sprintf(buf, "unnamed_register%u", reg);
+  return buf;
+}
+
+void DwarfCFIToModule::Record(Module::Address address, int reg,
+                              const string& rule) {
+  assert(entry_);
+
+  // Place the name in our global set of strings, and then use the string
+  // from the set. Even though the assignment looks like a copy, all the
+  // major string implementations use reference counting internally,
+  // so the effect is to have all our data structures share copies of rules
+  // whenever possible. Since register names are drawn from a
+  // vector<string>, register names are already shared.
+  string shared_rule = *common_strings_.insert(rule).first;
+
+  // Is this one of this entry's initial rules?
+  if (address == entry_->address)
+    entry_->initial_rules[RegisterName(reg)] = shared_rule;
+  // File it under the appropriate address.
+  else
+    entry_->rule_changes[address][RegisterName(reg)] = shared_rule;
+}
+
+bool DwarfCFIToModule::UndefinedRule(uint64_t address, int reg) {
+  reporter_->UndefinedNotSupported(entry_offset_, RegisterName(reg));
+  // Treat this as a non-fatal error.
+  return true;
+}
+
+bool DwarfCFIToModule::SameValueRule(uint64_t address, int reg) {
+  ostringstream s;
+  s << RegisterName(reg);
+  Record(address, reg, s.str());
+  return true;
+}
+
+bool DwarfCFIToModule::OffsetRule(uint64_t address, int reg,
+                                  int base_register, long offset) {
+  ostringstream s;
+  s << RegisterName(base_register) << " " << offset << " + ^";
+  Record(address, reg, s.str());
+  return true;
+}
+
+bool DwarfCFIToModule::ValOffsetRule(uint64_t address, int reg,
+                                     int base_register, long offset) {
+  ostringstream s;
+  s << RegisterName(base_register) << " " << offset << " +";
+  Record(address, reg, s.str());
+  return true;
+}
+
+bool DwarfCFIToModule::RegisterRule(uint64_t address, int reg,
+                                    int base_register) {
+  ostringstream s;
+  s << RegisterName(base_register);
+  Record(address, reg, s.str());
+  return true;
+}
+
+bool DwarfCFIToModule::ExpressionRule(uint64_t address, int reg,
+                                      const string& expression) {
+  reporter_->ExpressionsNotSupported(entry_offset_, RegisterName(reg));
+  // Treat this as a non-fatal error.
+  return true;
+}
+
+bool DwarfCFIToModule::ValExpressionRule(uint64_t address, int reg,
+                                         const string& expression) {
+  reporter_->ExpressionsNotSupported(entry_offset_, RegisterName(reg));
+  // Treat this as a non-fatal error.
+  return true;
+}
+
+bool DwarfCFIToModule::End() {
+  module_->AddStackFrameEntry(entry_);
+  entry_ = NULL;
+  return true;
+}
+
+void DwarfCFIToModule::Reporter::UnnamedRegister(size_t offset, int reg) {
+  fprintf(stderr, "%s, section '%s': "
+          "the call frame entry at offset 0x%zx refers to register %d,"
+          " whose name we don't know\n",
+          file_.c_str(), section_.c_str(), offset, reg);
+}
+
+void DwarfCFIToModule::Reporter::UndefinedNotSupported(size_t offset,
+                                                       const string& reg) {
+  fprintf(stderr, "%s, section '%s': "
+          "the call frame entry at offset 0x%zx sets the rule for "
+          "register '%s' to 'undefined', but the Breakpad symbol file format"
+          " cannot express this\n",
+          file_.c_str(), section_.c_str(), offset, reg.c_str());
+}
+
+void DwarfCFIToModule::Reporter::ExpressionsNotSupported(size_t offset,
+                                                         const string& reg) {
+  fprintf(stderr, "%s, section '%s': "
+          "the call frame entry at offset 0x%zx uses a DWARF expression to"
+          " describe how to recover register '%s', "
+          " but this translator cannot yet translate DWARF expressions to"
+          " Breakpad postfix expressions\n",
+          file_.c_str(), section_.c_str(), offset, reg.c_str());
+}
+
+} // namespace google_breakpad
diff --git a/src/common/dwarf_cfi_to_module.h b/src/common/dwarf_cfi_to_module.h
new file mode 100644
index 0000000..35bdb5f
--- /dev/null
+++ b/src/common/dwarf_cfi_to_module.h
@@ -0,0 +1,202 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf_cfi_to_module.h: Define the DwarfCFIToModule class, which
+// accepts parsed DWARF call frame info and adds it to a
+// google_breakpad::Module object, which can write that information to
+// a Breakpad symbol file.
+
+#ifndef COMMON_LINUX_DWARF_CFI_TO_MODULE_H
+#define COMMON_LINUX_DWARF_CFI_TO_MODULE_H
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "common/module.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using dwarf2reader::CallFrameInfo;
+using google_breakpad::Module;
+using std::set;
+using std::vector;
+
+// A class that accepts parsed call frame information from the DWARF
+// CFI parser and populates a google_breakpad::Module object with the
+// contents.
+class DwarfCFIToModule: public CallFrameInfo::Handler {
+ public:
+
+  // DwarfCFIToModule uses an instance of this class to report errors
+  // detected while converting DWARF CFI to Breakpad STACK CFI records.
+  class Reporter {
+   public:
+    // Create a reporter that writes messages to the standard error
+    // stream. FILE is the name of the file we're processing, and
+    // SECTION is the name of the section within that file that we're
+    // looking at (.debug_frame, .eh_frame, etc.).
+    Reporter(const string& file, const string& section)
+      : file_(file), section_(section) { }
+    virtual ~Reporter() { }
+
+    // The DWARF CFI entry at OFFSET cites register REG, but REG is not
+    // covered by the vector of register names passed to the
+    // DwarfCFIToModule constructor, nor does it match the return
+    // address column number for this entry.
+    virtual void UnnamedRegister(size_t offset, int reg);
+
+    // The DWARF CFI entry at OFFSET says that REG is undefined, but the
+    // Breakpad symbol file format cannot express this.
+    virtual void UndefinedNotSupported(size_t offset, const string& reg);
+
+    // The DWARF CFI entry at OFFSET says that REG uses a DWARF
+    // expression to find its value, but DwarfCFIToModule is not
+    // capable of translating DWARF expressions to Breakpad postfix
+    // expressions.
+    virtual void ExpressionsNotSupported(size_t offset, const string& reg);
+
+  protected:
+    string file_, section_;
+  };
+
+  // Register name tables. If TABLE is a vector returned by one of these
+  // functions, then TABLE[R] is the name of the register numbered R in
+  // DWARF call frame information.
+  class RegisterNames {
+   public:
+    // Intel's "x86" or IA-32.
+    static vector<string> I386();
+
+    // AMD x86_64, AMD64, Intel EM64T, or Intel 64
+    static vector<string> X86_64();
+
+    // ARM.
+    static vector<string> ARM();
+
+    // ARM64, aka AARCH64.
+    static vector<string> ARM64();
+
+    // MIPS.
+    static vector<string> MIPS();
+
+   private:
+    // Given STRINGS, an array of C strings with SIZE elements, return an
+    // equivalent vector<string>.
+    static vector<string> MakeVector(const char* const* strings, size_t size);
+  };
+
+  // Create a handler for the dwarf2reader::CallFrameInfo parser that
+  // records the stack unwinding information it receives in MODULE.
+  //
+  // Use REGISTER_NAMES[I] as the name of register number I; *this
+  // keeps a reference to the vector, so the vector should remain
+  // alive for as long as the DwarfCFIToModule does.
+  //
+  // Use REPORTER for reporting problems encountered in the conversion
+  // process.
+  DwarfCFIToModule(Module* module, const vector<string>& register_names,
+                   Reporter* reporter)
+      : module_(module), register_names_(register_names), reporter_(reporter),
+        entry_(NULL), return_address_(-1), cfa_name_(".cfa"), ra_name_(".ra") {
+  }
+  virtual ~DwarfCFIToModule() { delete entry_; }
+
+  virtual bool Entry(size_t offset, uint64_t address, uint64_t length,
+                     uint8_t version, const string& augmentation,
+                     unsigned return_address);
+  virtual bool UndefinedRule(uint64_t address, int reg);
+  virtual bool SameValueRule(uint64_t address, int reg);
+  virtual bool OffsetRule(uint64_t address, int reg,
+                          int base_register, long offset);
+  virtual bool ValOffsetRule(uint64_t address, int reg,
+                             int base_register, long offset);
+  virtual bool RegisterRule(uint64_t address, int reg, int base_register);
+  virtual bool ExpressionRule(uint64_t address, int reg,
+                              const string& expression);
+  virtual bool ValExpressionRule(uint64_t address, int reg,
+                                 const string& expression);
+  virtual bool End();
+
+ private:
+  // Return the name to use for register REG.
+  string RegisterName(int i);
+
+  // Record RULE for register REG at ADDRESS.
+  void Record(Module::Address address, int reg, const string& rule);
+
+  // The module to which we should add entries.
+  Module* module_;
+
+  // Map from register numbers to register names.
+  const vector<string>& register_names_;
+
+  // The reporter to use to report problems.
+  Reporter* reporter_;
+
+  // The current entry we're constructing.
+  Module::StackFrameEntry* entry_;
+
+  // The section offset of the current frame description entry, for
+  // use in error messages.
+  size_t entry_offset_;
+
+  // The return address column for that entry.
+  unsigned return_address_;
+
+  // The names of the return address and canonical frame address. Putting
+  // these here instead of using string literals allows us to share their
+  // texts in reference-counted string implementations (all the
+  // popular ones). Many, many rules cite these strings.
+  string cfa_name_, ra_name_;
+
+  // A set of strings used by this CFI. Before storing a string in one of
+  // our data structures, insert it into this set, and then use the string
+  // from the set.
+  //
+  // Because string uses reference counting internally, simply using
+  // strings from this set, even if passed by value, assigned, or held
+  // directly in structures and containers (map<string, ...>, for example),
+  // causes those strings to share a single instance of each distinct piece
+  // of text.
+  set<string> common_strings_;
+};
+
+} // namespace google_breakpad
+
+#endif // COMMON_LINUX_DWARF_CFI_TO_MODULE_H
diff --git a/src/common/dwarf_cfi_to_module_unittest.cc b/src/common/dwarf_cfi_to_module_unittest.cc
new file mode 100644
index 0000000..58c3cca
--- /dev/null
+++ b/src/common/dwarf_cfi_to_module_unittest.cc
@@ -0,0 +1,306 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf_cfi_to_module_unittest.cc: Tests for google_breakpad::DwarfCFIToModule.
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf_cfi_to_module.h"
+#include "common/using_std_string.h"
+
+using std::vector;
+
+using google_breakpad::Module;
+using google_breakpad::DwarfCFIToModule;
+using testing::ContainerEq;
+using testing::Test;
+using testing::_;
+
+struct MockCFIReporter: public DwarfCFIToModule::Reporter {
+  MockCFIReporter(const string& file, const string& section)
+      : Reporter(file, section) { }
+  MOCK_METHOD2(UnnamedRegister, void(size_t offset, int reg));
+  MOCK_METHOD2(UndefinedNotSupported, void(size_t offset, const string& reg));
+  MOCK_METHOD2(ExpressionsNotSupported, void(size_t offset, const string& reg));
+};
+
+struct DwarfCFIToModuleFixture {
+  DwarfCFIToModuleFixture()
+      : module("module name", "module os", "module arch", "module id"),
+        reporter("reporter file", "reporter section"),
+        handler(&module, register_names, &reporter) {
+    register_names.push_back("reg0");
+    register_names.push_back("reg1");
+    register_names.push_back("reg2");
+    register_names.push_back("reg3");
+    register_names.push_back("reg4");
+    register_names.push_back("reg5");
+    register_names.push_back("reg6");
+    register_names.push_back("reg7");
+    register_names.push_back("sp");
+    register_names.push_back("pc");
+    register_names.push_back("");
+
+    EXPECT_CALL(reporter, UnnamedRegister(_, _)).Times(0);
+    EXPECT_CALL(reporter, UndefinedNotSupported(_, _)).Times(0);
+    EXPECT_CALL(reporter, ExpressionsNotSupported(_, _)).Times(0);
+  }
+
+  Module module;
+  vector<string> register_names;
+  MockCFIReporter reporter;
+  DwarfCFIToModule handler;
+  vector<Module::StackFrameEntry*> entries;
+};
+
+class Entry: public DwarfCFIToModuleFixture, public Test { };
+
+TEST_F(Entry, Accept) {
+  ASSERT_TRUE(handler.Entry(0x3b8961b8, 0xa21069698096fc98ULL,
+                            0xb440ce248169c8d6ULL, 3, "", 0xea93c106));
+  ASSERT_TRUE(handler.End());
+  module.GetStackFrameEntries(&entries);
+  EXPECT_EQ(1U, entries.size());
+  EXPECT_EQ(0xa21069698096fc98ULL, entries[0]->address);
+  EXPECT_EQ(0xb440ce248169c8d6ULL, entries[0]->size);
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Entry, AcceptOldVersion) {
+  ASSERT_TRUE(handler.Entry(0xeb60e0fc, 0x75b8806bb09eab78ULL,
+                            0xc771f44958d40bbcULL, 1, "", 0x093c945e));
+  ASSERT_TRUE(handler.End());
+  module.GetStackFrameEntries(&entries);
+  EXPECT_EQ(1U, entries.size());
+  EXPECT_EQ(0x75b8806bb09eab78ULL, entries[0]->address);
+  EXPECT_EQ(0xc771f44958d40bbcULL, entries[0]->size);
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+struct RuleFixture: public DwarfCFIToModuleFixture {
+  RuleFixture() : DwarfCFIToModuleFixture() {
+    entry_address = 0x89327ebf86b47492ULL;
+    entry_size    = 0x2f8cd573072fe02aULL;
+    return_reg    = 0x7886a346;
+  }
+  void StartEntry() {
+    ASSERT_TRUE(handler.Entry(0x4445c05c, entry_address, entry_size,
+                              3, "", return_reg));
+  }
+  void CheckEntry() {
+    module.GetStackFrameEntries(&entries);
+    EXPECT_EQ(1U, entries.size());
+    EXPECT_EQ(entry_address, entries[0]->address);
+    EXPECT_EQ(entry_size, entries[0]->size);
+  }
+  uint64_t entry_address, entry_size;
+  unsigned return_reg;
+};
+
+class Rule: public RuleFixture, public Test { };
+
+TEST_F(Rule, UndefinedRule) {
+  EXPECT_CALL(reporter, UndefinedNotSupported(_, "reg7"));
+  StartEntry();
+  ASSERT_TRUE(handler.UndefinedRule(entry_address, 7));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, RegisterWithEmptyName) {
+  EXPECT_CALL(reporter, UnnamedRegister(_, 10));
+  EXPECT_CALL(reporter, UndefinedNotSupported(_, "unnamed_register10"));
+  StartEntry();
+  ASSERT_TRUE(handler.UndefinedRule(entry_address, 10));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, SameValueRule) {
+  StartEntry();
+  ASSERT_TRUE(handler.SameValueRule(entry_address, 6));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  Module::RuleMap expected_initial;
+  expected_initial["reg6"] = "reg6";
+  EXPECT_THAT(entries[0]->initial_rules, ContainerEq(expected_initial));
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, OffsetRule) {
+  StartEntry();
+  ASSERT_TRUE(handler.OffsetRule(entry_address + 1, return_reg,
+                                 DwarfCFIToModule::kCFARegister,
+                                 16927065));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  Module::RuleChangeMap expected_changes;
+  expected_changes[entry_address + 1][".ra"] = ".cfa 16927065 + ^";
+  EXPECT_THAT(entries[0]->rule_changes, ContainerEq(expected_changes));
+}
+
+TEST_F(Rule, OffsetRuleNegative) {
+  StartEntry();
+  ASSERT_TRUE(handler.OffsetRule(entry_address + 1,
+                                 DwarfCFIToModule::kCFARegister, 4, -34530721));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  Module::RuleChangeMap expected_changes;
+  expected_changes[entry_address + 1][".cfa"] = "reg4 -34530721 + ^";
+  EXPECT_THAT(entries[0]->rule_changes, ContainerEq(expected_changes));
+}
+
+TEST_F(Rule, ValOffsetRule) {
+  // Use an unnamed register number, to exercise that branch of RegisterName.
+  EXPECT_CALL(reporter, UnnamedRegister(_, 11));
+  StartEntry();
+  ASSERT_TRUE(handler.ValOffsetRule(entry_address + 0x5ab7,
+                                    DwarfCFIToModule::kCFARegister,
+                                    11, 61812979));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  Module::RuleChangeMap expected_changes;
+  expected_changes[entry_address + 0x5ab7][".cfa"] =
+      "unnamed_register11 61812979 +";
+  EXPECT_THAT(entries[0]->rule_changes, ContainerEq(expected_changes));
+}
+
+TEST_F(Rule, RegisterRule) {
+  StartEntry();
+  ASSERT_TRUE(handler.RegisterRule(entry_address, return_reg, 3));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  Module::RuleMap expected_initial;
+  expected_initial[".ra"] = "reg3";
+  EXPECT_THAT(entries[0]->initial_rules, ContainerEq(expected_initial));
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, ExpressionRule) {
+  EXPECT_CALL(reporter, ExpressionsNotSupported(_, "reg2"));
+  StartEntry();
+  ASSERT_TRUE(handler.ExpressionRule(entry_address + 0xf326, 2,
+                                     "it takes two to tango"));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, ValExpressionRule) {
+  EXPECT_CALL(reporter, ExpressionsNotSupported(_, "reg0"));
+  StartEntry();
+  ASSERT_TRUE(handler.ValExpressionRule(entry_address + 0x6367, 0,
+                                        "bit off more than he could chew"));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  EXPECT_EQ(0U, entries[0]->initial_rules.size());
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, DefaultReturnAddressRule) {
+  return_reg = 2;
+  StartEntry();
+  ASSERT_TRUE(handler.RegisterRule(entry_address, 0, 1));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  Module::RuleMap expected_initial;
+  expected_initial[".ra"] = "reg2";
+  expected_initial["reg0"] = "reg1";
+  EXPECT_THAT(entries[0]->initial_rules, ContainerEq(expected_initial));
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, DefaultReturnAddressRuleOverride) {
+  return_reg = 2;
+  StartEntry();
+  ASSERT_TRUE(handler.RegisterRule(entry_address, return_reg, 1));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  Module::RuleMap expected_initial;
+  expected_initial[".ra"] = "reg1";
+  EXPECT_THAT(entries[0]->initial_rules, ContainerEq(expected_initial));
+  EXPECT_EQ(0U, entries[0]->rule_changes.size());
+}
+
+TEST_F(Rule, DefaultReturnAddressRuleLater) {
+  return_reg = 2;
+  StartEntry();
+  ASSERT_TRUE(handler.RegisterRule(entry_address + 1, return_reg, 1));
+  ASSERT_TRUE(handler.End());
+  CheckEntry();
+  Module::RuleMap expected_initial;
+  expected_initial[".ra"] = "reg2";
+  EXPECT_THAT(entries[0]->initial_rules, ContainerEq(expected_initial));
+  Module::RuleChangeMap expected_changes;
+  expected_changes[entry_address + 1][".ra"] = "reg1";
+  EXPECT_THAT(entries[0]->rule_changes, ContainerEq(expected_changes));
+}
+
+TEST(RegisterNames, I386) {
+  vector<string> names = DwarfCFIToModule::RegisterNames::I386();
+
+  EXPECT_EQ("$eax", names[0]);
+  EXPECT_EQ("$ecx", names[1]);
+  EXPECT_EQ("$esp", names[4]);
+  EXPECT_EQ("$eip", names[8]);
+}
+
+TEST(RegisterNames, ARM) {
+  vector<string> names = DwarfCFIToModule::RegisterNames::ARM();
+
+  EXPECT_EQ("r0", names[0]);
+  EXPECT_EQ("r10", names[10]);
+  EXPECT_EQ("sp", names[13]);
+  EXPECT_EQ("lr", names[14]);
+  EXPECT_EQ("pc", names[15]);
+}
+
+TEST(RegisterNames, X86_64) {
+  vector<string> names = DwarfCFIToModule::RegisterNames::X86_64();
+
+  EXPECT_EQ("$rax", names[0]);
+  EXPECT_EQ("$rdx", names[1]);
+  EXPECT_EQ("$rbp", names[6]);
+  EXPECT_EQ("$rsp", names[7]);
+  EXPECT_EQ("$rip", names[16]);
+}
diff --git a/src/common/dwarf_cu_to_module.cc b/src/common/dwarf_cu_to_module.cc
new file mode 100644
index 0000000..168c466
--- /dev/null
+++ b/src/common/dwarf_cu_to_module.cc
@@ -0,0 +1,1339 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// Implement the DwarfCUToModule class; see dwarf_cu_to_module.h.
+
+// For <inttypes.h> PRI* macros, before anything else might #include it.
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif  /* __STDC_FORMAT_MACROS */
+
+#include "common/dwarf_cu_to_module.h"
+
+#include <assert.h>
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <algorithm>
+#include <numeric>
+#include <utility>
+
+#include "common/dwarf_line_to_module.h"
+#include "common/unordered.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+using std::accumulate;
+using std::map;
+using std::pair;
+using std::sort;
+using std::vector;
+
+// Data provided by a DWARF specification DIE.
+//
+// In DWARF, the DIE for a definition may contain a DW_AT_specification
+// attribute giving the offset of the corresponding declaration DIE, and
+// the definition DIE may omit information given in the declaration. For
+// example, it's common for a function's address range to appear only in
+// its definition DIE, but its name to appear only in its declaration
+// DIE.
+//
+// The dumper needs to be able to follow DW_AT_specification links to
+// bring all this information together in a FUNC record. Conveniently,
+// DIEs that are the target of such links have a DW_AT_declaration flag
+// set, so we can identify them when we first see them, and record their
+// contents for later reference.
+//
+// A Specification holds information gathered from a declaration DIE that
+// we may need if we find a DW_AT_specification link pointing to it.
+struct DwarfCUToModule::Specification {
+  // The qualified name that can be found by demangling DW_AT_MIPS_linkage_name.
+  string qualified_name;
+
+  // The name of the enclosing scope, or the empty string if there is none.
+  string enclosing_name;
+
+  // The name for the specification DIE itself, without any enclosing
+  // name components.
+  string unqualified_name;
+};
+
+// An abstract origin -- base definition of an inline function.
+struct AbstractOrigin {
+  AbstractOrigin() : name() {}
+  explicit AbstractOrigin(const string& name) : name(name) {}
+
+  string name;
+};
+
+typedef map<uint64_t, AbstractOrigin> AbstractOriginByOffset;
+
+// Data global to the DWARF-bearing file that is private to the
+// DWARF-to-Module process.
+struct DwarfCUToModule::FilePrivate {
+  // A set of strings used in this CU. Before storing a string in one of
+  // our data structures, insert it into this set, and then use the string
+  // from the set.
+  //
+  // In some STL implementations, strings are reference-counted internally,
+  // meaning that simply using strings from this set, even if passed by
+  // value, assigned, or held directly in structures and containers
+  // (map<string, ...>, for example), causes those strings to share a
+  // single instance of each distinct piece of text. GNU's libstdc++ uses
+  // reference counts, and I believe MSVC did as well, at some point.
+  // However, C++ '11 implementations are moving away from reference
+  // counting.
+  //
+  // In other implementations, string assignments copy the string's text,
+  // so this set will actually hold yet another copy of the string (although
+  // everything will still work). To improve memory consumption portably,
+  // we will probably need to use pointers to strings held in this set.
+  unordered_set<string> common_strings;
+
+  // A map from offsets of DIEs within the .debug_info section to
+  // Specifications describing those DIEs. Specification references can
+  // cross compilation unit boundaries.
+  SpecificationByOffset specifications;
+
+  AbstractOriginByOffset origins;
+};
+
+DwarfCUToModule::FileContext::FileContext(const string& filename,
+                                          Module* module,
+                                          bool handle_inter_cu_refs)
+    : filename_(filename),
+      module_(module),
+      handle_inter_cu_refs_(handle_inter_cu_refs),
+      file_private_(new FilePrivate()) {
+}
+
+DwarfCUToModule::FileContext::~FileContext() {
+}
+
+void DwarfCUToModule::FileContext::AddSectionToSectionMap(
+    const string& name, const uint8_t* contents, uint64_t length) {
+  section_map_[name] = std::make_pair(contents, length);
+}
+
+void DwarfCUToModule::FileContext::ClearSectionMapForTest() {
+  section_map_.clear();
+}
+
+const dwarf2reader::SectionMap&
+DwarfCUToModule::FileContext::section_map() const {
+  return section_map_;
+}
+
+void DwarfCUToModule::FileContext::ClearSpecifications() {
+  if (!handle_inter_cu_refs_)
+    file_private_->specifications.clear();
+}
+
+bool DwarfCUToModule::FileContext::IsUnhandledInterCUReference(
+    uint64_t offset, uint64_t compilation_unit_start) const {
+  if (handle_inter_cu_refs_)
+    return false;
+  return offset < compilation_unit_start;
+}
+
+// Information global to the particular compilation unit we're
+// parsing. This is for data shared across the CU's entire DIE tree,
+// and parameters from the code invoking the CU parser.
+struct DwarfCUToModule::CUContext {
+  CUContext(FileContext* file_context_arg, WarningReporter* reporter_arg,
+            RangesHandler* ranges_handler_arg)
+      : version(0),
+        file_context(file_context_arg),
+        reporter(reporter_arg),
+        ranges_handler(ranges_handler_arg),
+        language(Language::CPlusPlus),
+        low_pc(0),
+        high_pc(0),
+        ranges_form(dwarf2reader::DW_FORM_sec_offset),
+        ranges_data(0),
+        ranges_base(0) { }
+
+  ~CUContext() {
+    for (vector<Module::Function*>::iterator it = functions.begin();
+         it != functions.end(); ++it) {
+      delete *it;
+    }
+  };
+
+  // Dwarf version of the source CU.
+  uint8_t version;
+
+  // The DWARF-bearing file into which this CU was incorporated.
+  FileContext* file_context;
+
+  // For printing error messages.
+  WarningReporter* reporter;
+
+  // For reading ranges from the .debug_ranges section
+  RangesHandler* ranges_handler;
+
+  // The source language of this compilation unit.
+  const Language* language;
+
+  // Addresses covered by this CU. If high_pc_ is non-zero then the CU covers
+  // low_pc to high_pc, otherwise ranges_data is non-zero and low_pc represents
+  // the base address of the ranges covered by the CU. ranges_data will define
+  // the CU's actual ranges.
+  uint64_t low_pc;
+  uint64_t high_pc;
+
+  // Ranges for this CU are read according to this form.
+  enum dwarf2reader::DwarfForm ranges_form;
+  uint64_t ranges_data;
+
+  // Offset into .debug_rngslists where this CU's ranges are stored.
+  // Data in DW_FORM_rnglistx is relative to this offset.
+  uint64_t ranges_base;
+
+  // Offset into .debug_addr where this CU's addresses are stored. Data in
+  // form DW_FORM_addrxX is relative to this offset.
+  uint64_t addr_base;
+
+  // Collect all the data from the CU that a RangeListReader needs to read a
+  // range.
+  bool AssembleRangeListInfo(
+      dwarf2reader::RangeListReader::CURangesInfo* info) {
+    const dwarf2reader::SectionMap& section_map
+        = file_context->section_map();
+    info->version_ = version;
+    info->base_address_ = low_pc;
+    info->ranges_base_ = ranges_base;
+    const char* section_name = (version <= 4 ?
+                                ".debug_ranges" : ".debug_rnglists");
+    dwarf2reader::SectionMap::const_iterator map_entry
+        = dwarf2reader::GetSectionByName(section_map, section_name);
+    if (map_entry == section_map.end()) {
+      return false;
+    }
+    info->buffer_ = map_entry->second.first;
+    info->size_ = map_entry->second.second;
+    if (version > 4) {
+      dwarf2reader::SectionMap::const_iterator map_entry
+          = dwarf2reader::GetSectionByName(section_map, ".debug_addr");
+      if (map_entry == section_map.end()) {
+        return false;
+      }
+      info->addr_buffer_ = map_entry->second.first;
+      info->addr_buffer_size_ = map_entry->second.second;
+      info->addr_base_ = addr_base;
+    }
+    return true;
+  }
+
+  // The functions defined in this compilation unit. We accumulate
+  // them here during parsing. Then, in DwarfCUToModule::Finish, we
+  // assign them lines and add them to file_context->module.
+  //
+  // Destroying this destroys all the functions this vector points to.
+  vector<Module::Function*> functions;
+
+  // Keep a list of forward references from DW_AT_abstract_origin and
+  // DW_AT_specification attributes so names can be fixed up.
+  std::map<uint64_t, Module::Function*> forward_ref_die_to_func;
+};
+
+// Information about the context of a particular DIE. This is for
+// information that changes as we descend the tree towards the leaves:
+// the containing classes/namespaces, etc.
+struct DwarfCUToModule::DIEContext {
+  // The fully-qualified name of the context. For example, for a
+  // tree like:
+  //
+  // DW_TAG_namespace Foo
+  //   DW_TAG_class Bar
+  //     DW_TAG_subprogram Baz
+  //
+  // in a C++ compilation unit, the DIEContext's name for the
+  // DW_TAG_subprogram DIE would be "Foo::Bar". The DIEContext's
+  // name for the DW_TAG_namespace DIE would be "".
+  string name;
+};
+
+// An abstract base class for all the dumper's DIE handlers.
+class DwarfCUToModule::GenericDIEHandler: public dwarf2reader::DIEHandler {
+ public:
+  // Create a handler for the DIE at OFFSET whose compilation unit is
+  // described by CU_CONTEXT, and whose immediate context is described
+  // by PARENT_CONTEXT.
+  GenericDIEHandler(CUContext* cu_context, DIEContext* parent_context,
+                    uint64_t offset)
+      : cu_context_(cu_context),
+        parent_context_(parent_context),
+        offset_(offset),
+        declaration_(false),
+        specification_(NULL),
+        forward_ref_die_offset_(0) { }
+
+  // Derived classes' ProcessAttributeUnsigned can defer to this to
+  // handle DW_AT_declaration, or simply not override it.
+  void ProcessAttributeUnsigned(enum DwarfAttribute attr,
+                                enum DwarfForm form,
+                                uint64_t data);
+
+  // Derived classes' ProcessAttributeReference can defer to this to
+  // handle DW_AT_specification, or simply not override it.
+  void ProcessAttributeReference(enum DwarfAttribute attr,
+                                 enum DwarfForm form,
+                                 uint64_t data);
+
+  // Derived classes' ProcessAttributeReference can defer to this to
+  // handle DW_AT_specification, or simply not override it.
+  void ProcessAttributeString(enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const string& data);
+
+ protected:
+  // Compute and return the fully-qualified name of the DIE. If this
+  // DIE is a declaration DIE, to be cited by other DIEs'
+  // DW_AT_specification attributes, record its enclosing name and
+  // unqualified name in the specification table.
+  //
+  // Use this from EndAttributes member functions, not ProcessAttribute*
+  // functions; only the former can be sure that all the DIE's attributes
+  // have been seen.
+  string ComputeQualifiedName();
+
+  CUContext* cu_context_;
+  DIEContext* parent_context_;
+  uint64_t offset_;
+
+  // Place the name in the global set of strings. Even though this looks
+  // like a copy, all the major string implementations use reference
+  // counting internally, so the effect is to have all the data structures
+  // share copies of strings whenever possible.
+  // FIXME: Should this return something like a string_ref to avoid the
+  // assumption about how strings are implemented?
+  string AddStringToPool(const string& str);
+
+  // If this DIE has a DW_AT_declaration attribute, this is its value.
+  // It is false on DIEs with no DW_AT_declaration attribute.
+  bool declaration_;
+
+  // If this DIE has a DW_AT_specification attribute, this is the
+  // Specification structure for the DIE the attribute refers to.
+  // Otherwise, this is NULL.
+  Specification* specification_;
+
+  // If this DIE has a DW_AT_specification or DW_AT_abstract_origin and it is a
+  // forward reference, no Specification will be available. Track the reference
+  // to be fixed up when the DIE is parsed.
+  uint64_t forward_ref_die_offset_;
+
+  // The value of the DW_AT_name attribute, or the empty string if the
+  // DIE has no such attribute.
+  string name_attribute_;
+
+  // The demangled value of the DW_AT_MIPS_linkage_name attribute, or the empty
+  // string if the DIE has no such attribute or its content could not be
+  // demangled.
+  string demangled_name_;
+
+  // The non-demangled value of the DW_AT_MIPS_linkage_name attribute,
+  // it its content count not be demangled.
+  string raw_name_;
+};
+
+void DwarfCUToModule::GenericDIEHandler::ProcessAttributeUnsigned(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    uint64_t data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_declaration: declaration_ = (data != 0); break;
+    default: break;
+  }
+}
+
+void DwarfCUToModule::GenericDIEHandler::ProcessAttributeReference(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    uint64_t data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_specification: {
+      FileContext* file_context = cu_context_->file_context;
+      if (file_context->IsUnhandledInterCUReference(
+              data, cu_context_->reporter->cu_offset())) {
+        cu_context_->reporter->UnhandledInterCUReference(offset_, data);
+        break;
+      }
+      // Find the Specification to which this attribute refers, and
+      // set specification_ appropriately. We could do more processing
+      // here, but it's better to leave the real work to our
+      // EndAttribute member function, at which point we know we have
+      // seen all the DIE's attributes.
+      SpecificationByOffset* specifications =
+          &file_context->file_private_->specifications;
+      SpecificationByOffset::iterator spec = specifications->find(data);
+      if (spec != specifications->end()) {
+        specification_ = &spec->second;
+      } else if (data > offset_) {
+        forward_ref_die_offset_ = data;
+      } else {
+        cu_context_->reporter->UnknownSpecification(offset_, data);
+      }
+      break;
+    }
+    default: break;
+  }
+}
+
+string DwarfCUToModule::GenericDIEHandler::AddStringToPool(const string& str) {
+  pair<unordered_set<string>::iterator, bool> result =
+    cu_context_->file_context->file_private_->common_strings.insert(str);
+  return *result.first;
+}
+
+void DwarfCUToModule::GenericDIEHandler::ProcessAttributeString(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    const string& data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_name:
+      name_attribute_ = AddStringToPool(data);
+      break;
+    case dwarf2reader::DW_AT_MIPS_linkage_name:
+    case dwarf2reader::DW_AT_linkage_name: {
+      string demangled;
+      Language::DemangleResult result =
+          cu_context_->language->DemangleName(data, &demangled);
+      switch (result) {
+        case Language::kDemangleSuccess:
+          demangled_name_ = AddStringToPool(demangled);
+          break;
+
+        case Language::kDemangleFailure:
+          cu_context_->reporter->DemangleError(data);
+          // fallthrough
+        case Language::kDontDemangle:
+          demangled_name_.clear();
+          raw_name_ = AddStringToPool(data);
+          break;
+      }
+      break;
+    }
+    default: break;
+  }
+}
+
+string DwarfCUToModule::GenericDIEHandler::ComputeQualifiedName() {
+  // Use the demangled name, if one is available. Demangled names are
+  // preferable to those inferred from the DWARF structure because they
+  // include argument types.
+  const string* qualified_name = NULL;
+  if (!demangled_name_.empty()) {
+    // Found it is this DIE.
+    qualified_name = &demangled_name_;
+  } else if (specification_ && !specification_->qualified_name.empty()) {
+    // Found it on the specification.
+    qualified_name = &specification_->qualified_name;
+  }
+
+  const string* unqualified_name = NULL;
+  const string* enclosing_name;
+  if (!qualified_name) {
+    // Find the unqualified name. If the DIE has its own DW_AT_name
+    // attribute, then use that; otherwise, check the specification.
+    if (!name_attribute_.empty())
+      unqualified_name = &name_attribute_;
+    else if (specification_)
+      unqualified_name = &specification_->unqualified_name;
+    else if (!raw_name_.empty())
+      unqualified_name = &raw_name_;
+
+    // Find the name of the enclosing context. If this DIE has a
+    // specification, it's the specification's enclosing context that
+    // counts; otherwise, use this DIE's context.
+    if (specification_)
+      enclosing_name = &specification_->enclosing_name;
+    else
+      enclosing_name = &parent_context_->name;
+  }
+
+  // Prepare the return value before upcoming mutations possibly invalidate the
+  // existing pointers.
+  string return_value;
+  if (qualified_name) {
+    return_value = *qualified_name;
+  } else if (unqualified_name && enclosing_name) {
+    // Combine the enclosing name and unqualified name to produce our
+    // own fully-qualified name.
+    return_value = cu_context_->language->MakeQualifiedName(*enclosing_name,
+                                                            *unqualified_name);
+  }
+
+  // If this DIE was marked as a declaration, record its names in the
+  // specification table.
+  if ((declaration_ && qualified_name) ||
+      (unqualified_name && enclosing_name)) {
+    Specification spec;
+    if (qualified_name) {
+      spec.qualified_name = *qualified_name;
+    } else {
+      spec.enclosing_name = *enclosing_name;
+      spec.unqualified_name = *unqualified_name;
+    }
+    cu_context_->file_context->file_private_->specifications[offset_] = spec;
+  }
+
+  return return_value;
+}
+
+// A handler class for DW_TAG_subprogram DIEs.
+class DwarfCUToModule::FuncHandler: public GenericDIEHandler {
+ public:
+  FuncHandler(CUContext* cu_context, DIEContext* parent_context,
+              uint64_t offset)
+      : GenericDIEHandler(cu_context, parent_context, offset),
+        low_pc_(0), high_pc_(0), high_pc_form_(dwarf2reader::DW_FORM_addr),
+        ranges_form_(dwarf2reader::DW_FORM_sec_offset), ranges_data_(0),
+        abstract_origin_(NULL), inline_(false) { }
+
+  void ProcessAttributeUnsigned(enum DwarfAttribute attr,
+                                enum DwarfForm form,
+                                uint64_t data);
+  void ProcessAttributeSigned(enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              int64_t data);
+  void ProcessAttributeReference(enum DwarfAttribute attr,
+                                 enum DwarfForm form,
+                                 uint64_t data);
+
+  bool EndAttributes();
+  void Finish();
+
+ private:
+  // The fully-qualified name, as derived from name_attribute_,
+  // specification_, parent_context_.  Computed in EndAttributes.
+  string name_;
+  uint64_t low_pc_, high_pc_; // DW_AT_low_pc, DW_AT_high_pc
+  DwarfForm high_pc_form_; // DW_AT_high_pc can be length or address.
+  DwarfForm ranges_form_; // DW_FORM_sec_offset or DW_FORM_rnglistx
+  uint64_t ranges_data_; // DW_AT_ranges
+  const AbstractOrigin* abstract_origin_;
+  bool inline_;
+};
+
+void DwarfCUToModule::FuncHandler::ProcessAttributeUnsigned(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    uint64_t data) {
+  switch (attr) {
+    // If this attribute is present at all --- even if its value is
+    // DW_INL_not_inlined --- then GCC may cite it as someone else's
+    // DW_AT_abstract_origin attribute.
+    case dwarf2reader::DW_AT_inline:      inline_  = true; break;
+
+    case dwarf2reader::DW_AT_low_pc:      low_pc_  = data; break;
+    case dwarf2reader::DW_AT_high_pc:
+      high_pc_form_ = form;
+      high_pc_ = data;
+      break;
+    case dwarf2reader::DW_AT_ranges:
+      ranges_data_ = data;
+      ranges_form_ = form;
+      break;
+
+    default:
+      GenericDIEHandler::ProcessAttributeUnsigned(attr, form, data);
+      break;
+  }
+}
+
+void DwarfCUToModule::FuncHandler::ProcessAttributeSigned(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    int64_t data) {
+  switch (attr) {
+    // If this attribute is present at all --- even if its value is
+    // DW_INL_not_inlined --- then GCC may cite it as someone else's
+    // DW_AT_abstract_origin attribute.
+    case dwarf2reader::DW_AT_inline:      inline_  = true; break;
+
+    default:
+      break;
+  }
+}
+
+void DwarfCUToModule::FuncHandler::ProcessAttributeReference(
+    enum DwarfAttribute attr,
+    enum DwarfForm form,
+    uint64_t data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_abstract_origin: {
+      const AbstractOriginByOffset& origins =
+          cu_context_->file_context->file_private_->origins;
+      AbstractOriginByOffset::const_iterator origin = origins.find(data);
+      if (origin != origins.end()) {
+        abstract_origin_ = &(origin->second);
+      } else if (data > offset_) {
+        forward_ref_die_offset_ = data;
+      } else {
+        cu_context_->reporter->UnknownAbstractOrigin(offset_, data);
+      }
+      break;
+    }
+    default:
+      GenericDIEHandler::ProcessAttributeReference(attr, form, data);
+      break;
+  }
+}
+
+bool DwarfCUToModule::FuncHandler::EndAttributes() {
+  // Compute our name, and record a specification, if appropriate.
+  name_ = ComputeQualifiedName();
+  if (name_.empty() && abstract_origin_) {
+    name_ = abstract_origin_->name;
+  }
+  return true;
+}
+
+static bool IsEmptyRange(const vector<Module::Range>& ranges) {
+  uint64_t size = accumulate(ranges.cbegin(), ranges.cend(), 0,
+    [](uint64_t total, Module::Range entry) {
+      return total + entry.size;
+    }
+  );
+
+  return size == 0;
+}
+
+void DwarfCUToModule::FuncHandler::Finish() {
+  vector<Module::Range> ranges;
+
+  // Check if this DIE was one of the forward references that was not able
+  // to be processed, and fix up the name of the appropriate Module::Function.
+  // "name_" will have already been fixed up in EndAttributes().
+  if (!name_.empty()) {
+    auto iter = cu_context_->forward_ref_die_to_func.find(offset_);
+    if (iter != cu_context_->forward_ref_die_to_func.end())
+      iter->second->name = name_;
+  }
+
+  if (!ranges_data_) {
+    // Make high_pc_ an address, if it isn't already.
+    if (high_pc_form_ != dwarf2reader::DW_FORM_addr &&
+        high_pc_form_ != dwarf2reader::DW_FORM_GNU_addr_index &&
+        high_pc_form_ != dwarf2reader::DW_FORM_addrx &&
+        high_pc_form_ != dwarf2reader::DW_FORM_addrx1 &&
+        high_pc_form_ != dwarf2reader::DW_FORM_addrx2 &&
+        high_pc_form_ != dwarf2reader::DW_FORM_addrx3 &&
+        high_pc_form_ != dwarf2reader::DW_FORM_addrx4) {
+      high_pc_ += low_pc_;
+    }
+
+    Module::Range range(low_pc_, high_pc_ - low_pc_);
+    ranges.push_back(range);
+  } else {
+    RangesHandler* ranges_handler = cu_context_->ranges_handler;
+    if (ranges_handler) {
+      dwarf2reader::RangeListReader::CURangesInfo cu_info;
+      if (cu_context_->AssembleRangeListInfo(&cu_info)) {
+        if (!ranges_handler->ReadRanges(ranges_form_, ranges_data_,
+                                        &cu_info, &ranges)) {
+          ranges.clear();
+          cu_context_->reporter->MalformedRangeList(ranges_data_);
+        }
+      } else {
+        cu_context_->reporter->MissingRanges();
+      }
+    }
+  }
+
+  // Did we collect the information we need?  Not all DWARF function
+  // entries are non-empty (for example, inlined functions that were never
+  // used), but all the ones we're interested in cover a non-empty range of
+  // bytes.
+  if (!IsEmptyRange(ranges)) {
+    low_pc_ = ranges.front().address;
+
+    // Malformed DWARF may omit the name, but all Module::Functions must
+    // have names.
+    string name;
+    if (!name_.empty()) {
+      name = name_;
+    } else {
+      // If we have a forward reference to a DW_AT_specification or
+      // DW_AT_abstract_origin, then don't warn, the name will be fixed up
+      // later
+      if (forward_ref_die_offset_ == 0)
+        cu_context_->reporter->UnnamedFunction(offset_);
+      name = "<name omitted>";
+    }
+
+    // Create a Module::Function based on the data we've gathered, and
+    // add it to the functions_ list.
+    scoped_ptr<Module::Function> func(new Module::Function(name, low_pc_));
+    func->ranges = ranges;
+    func->parameter_size = 0;
+    if (func->address) {
+      // If the function address is zero this is a sign that this function
+      // description is just empty debug data and should just be discarded.
+      cu_context_->functions.push_back(func.release());
+      if (forward_ref_die_offset_ != 0) {
+        auto iter =
+            cu_context_->forward_ref_die_to_func.find(forward_ref_die_offset_);
+        if (iter == cu_context_->forward_ref_die_to_func.end()) {
+          cu_context_->reporter->UnknownSpecification(offset_,
+                                                      forward_ref_die_offset_);
+        } else {
+          iter->second = cu_context_->functions.back();
+        }
+      }
+    }
+  } else if (inline_) {
+    AbstractOrigin origin(name_);
+    cu_context_->file_context->file_private_->origins[offset_] = origin;
+  }
+}
+
+// A handler for DIEs that contain functions and contribute a
+// component to their names: namespaces, classes, etc.
+class DwarfCUToModule::NamedScopeHandler: public GenericDIEHandler {
+ public:
+  NamedScopeHandler(CUContext* cu_context, DIEContext* parent_context,
+                    uint64_t offset)
+      : GenericDIEHandler(cu_context, parent_context, offset) { }
+  bool EndAttributes();
+  DIEHandler* FindChildHandler(uint64_t offset, enum DwarfTag tag);
+
+ private:
+  DIEContext child_context_; // A context for our children.
+};
+
+bool DwarfCUToModule::NamedScopeHandler::EndAttributes() {
+  child_context_.name = ComputeQualifiedName();
+  return true;
+}
+
+dwarf2reader::DIEHandler* DwarfCUToModule::NamedScopeHandler::FindChildHandler(
+    uint64_t offset,
+    enum DwarfTag tag) {
+  switch (tag) {
+    case dwarf2reader::DW_TAG_subprogram:
+      return new FuncHandler(cu_context_, &child_context_, offset);
+    case dwarf2reader::DW_TAG_namespace:
+    case dwarf2reader::DW_TAG_class_type:
+    case dwarf2reader::DW_TAG_structure_type:
+    case dwarf2reader::DW_TAG_union_type:
+      return new NamedScopeHandler(cu_context_, &child_context_, offset);
+    default:
+      return NULL;
+  }
+}
+
+void DwarfCUToModule::WarningReporter::CUHeading() {
+  if (printed_cu_header_)
+    return;
+  fprintf(stderr, "%s: in compilation unit '%s' (offset 0x%" PRIx64 "):\n",
+          filename_.c_str(), cu_name_.c_str(), cu_offset_);
+  printed_cu_header_ = true;
+}
+
+void DwarfCUToModule::WarningReporter::UnknownSpecification(uint64_t offset,
+                                                            uint64_t target) {
+  CUHeading();
+  fprintf(stderr, "%s: the DIE at offset 0x%" PRIx64 " has a "
+          "DW_AT_specification attribute referring to the DIE at offset 0x%"
+          PRIx64 ", which was not marked as a declaration\n",
+          filename_.c_str(), offset, target);
+}
+
+void DwarfCUToModule::WarningReporter::UnknownAbstractOrigin(uint64_t offset,
+                                                             uint64_t target) {
+  CUHeading();
+  fprintf(stderr, "%s: the DIE at offset 0x%" PRIx64 " has a "
+          "DW_AT_abstract_origin attribute referring to the DIE at offset 0x%"
+          PRIx64 ", which was not marked as an inline\n",
+          filename_.c_str(), offset, target);
+}
+
+void DwarfCUToModule::WarningReporter::MissingSection(const string& name) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: couldn't find DWARF '%s' section\n",
+          filename_.c_str(), name.c_str());
+}
+
+void DwarfCUToModule::WarningReporter::BadLineInfoOffset(uint64_t offset) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: line number data offset beyond end"
+          " of '.debug_line' section\n",
+          filename_.c_str());
+}
+
+void DwarfCUToModule::WarningReporter::UncoveredHeading() {
+  if (printed_unpaired_header_)
+    return;
+  CUHeading();
+  fprintf(stderr, "%s: warning: skipping unpaired lines/functions:\n",
+          filename_.c_str());
+  printed_unpaired_header_ = true;
+}
+
+void DwarfCUToModule::WarningReporter::UncoveredFunction(
+    const Module::Function& function) {
+  if (!uncovered_warnings_enabled_)
+    return;
+  UncoveredHeading();
+  fprintf(stderr, "    function%s: %s\n",
+          IsEmptyRange(function.ranges) ? " (zero-length)" : "",
+          function.name.c_str());
+}
+
+void DwarfCUToModule::WarningReporter::UncoveredLine(const Module::Line& line) {
+  if (!uncovered_warnings_enabled_)
+    return;
+  UncoveredHeading();
+  fprintf(stderr, "    line%s: %s:%d at 0x%" PRIx64 "\n",
+          (line.size == 0 ? " (zero-length)" : ""),
+          line.file->name.c_str(), line.number, line.address);
+}
+
+void DwarfCUToModule::WarningReporter::UnnamedFunction(uint64_t offset) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: function at offset 0x%" PRIx64 " has no name\n",
+          filename_.c_str(), offset);
+}
+
+void DwarfCUToModule::WarningReporter::DemangleError(const string& input) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: failed to demangle %s\n",
+          filename_.c_str(), input.c_str());
+}
+
+void DwarfCUToModule::WarningReporter::UnhandledInterCUReference(
+    uint64_t offset, uint64_t target) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: the DIE at offset 0x%" PRIx64 " has a "
+                  "DW_FORM_ref_addr attribute with an inter-CU reference to "
+                  "0x%" PRIx64 ", but inter-CU reference handling is turned "
+                  " off.\n", filename_.c_str(), offset, target);
+}
+
+void DwarfCUToModule::WarningReporter::MalformedRangeList(uint64_t offset) {
+  CUHeading();
+  fprintf(stderr, "%s: warning: the range list at offset 0x%" PRIx64 " falls "
+                  " out of the .debug_ranges section.\n",
+                  filename_.c_str(), offset);
+}
+
+void DwarfCUToModule::WarningReporter::MissingRanges() {
+  CUHeading();
+  fprintf(stderr, "%s: warning: A DW_AT_ranges attribute was encountered but "
+                  "the .debug_ranges section is missing.\n", filename_.c_str());
+}
+
+DwarfCUToModule::DwarfCUToModule(FileContext* file_context,
+                                 LineToModuleHandler* line_reader,
+                                 RangesHandler* ranges_handler,
+                                 WarningReporter* reporter)
+    : line_reader_(line_reader),
+      cu_context_(new CUContext(file_context, reporter, ranges_handler)),
+      child_context_(new DIEContext()),
+      has_source_line_info_(false) {
+}
+
+DwarfCUToModule::~DwarfCUToModule() {
+}
+
+void DwarfCUToModule::ProcessAttributeSigned(enum DwarfAttribute attr,
+                                             enum DwarfForm form,
+                                             int64_t data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_language: // source language of this CU
+      SetLanguage(static_cast<DwarfLanguage>(data));
+      break;
+    default:
+      break;
+  }
+}
+
+void DwarfCUToModule::ProcessAttributeUnsigned(enum DwarfAttribute attr,
+                                               enum DwarfForm form,
+                                               uint64_t data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_stmt_list: // Line number information.
+      has_source_line_info_ = true;
+      source_line_offset_ = data;
+      break;
+    case dwarf2reader::DW_AT_language: // source language of this CU
+      SetLanguage(static_cast<DwarfLanguage>(data));
+      break;
+    case dwarf2reader::DW_AT_low_pc:
+      cu_context_->low_pc  = data;
+      break;
+    case dwarf2reader::DW_AT_high_pc:
+      cu_context_->high_pc  = data;
+      break;
+    case dwarf2reader::DW_AT_ranges:
+      cu_context_->ranges_data = data;
+      cu_context_->ranges_form = form;
+      break;
+    case dwarf2reader::DW_AT_rnglists_base:
+      cu_context_->ranges_base = data;
+      break;
+    case dwarf2reader::DW_AT_addr_base:
+    case dwarf2reader::DW_AT_GNU_addr_base:
+      cu_context_->addr_base = data;
+      break;
+
+    default:
+      break;
+  }
+}
+
+void DwarfCUToModule::ProcessAttributeString(enum DwarfAttribute attr,
+                                             enum DwarfForm form,
+                                             const string& data) {
+  switch (attr) {
+    case dwarf2reader::DW_AT_name:
+      cu_context_->reporter->SetCUName(data);
+      break;
+    case dwarf2reader::DW_AT_comp_dir:
+      line_reader_->StartCompilationUnit(data);
+      break;
+    default:
+      break;
+  }
+}
+
+bool DwarfCUToModule::EndAttributes() {
+  return true;
+}
+
+dwarf2reader::DIEHandler* DwarfCUToModule::FindChildHandler(
+    uint64_t offset,
+    enum DwarfTag tag) {
+  switch (tag) {
+    case dwarf2reader::DW_TAG_subprogram:
+      return new FuncHandler(cu_context_.get(), child_context_.get(), offset);
+    case dwarf2reader::DW_TAG_namespace:
+    case dwarf2reader::DW_TAG_class_type:
+    case dwarf2reader::DW_TAG_structure_type:
+    case dwarf2reader::DW_TAG_union_type:
+    case dwarf2reader::DW_TAG_module:
+      return new NamedScopeHandler(cu_context_.get(), child_context_.get(),
+                                   offset);
+    default:
+      return NULL;
+  }
+}
+
+void DwarfCUToModule::SetLanguage(DwarfLanguage language) {
+  switch (language) {
+    case dwarf2reader::DW_LANG_Java:
+      cu_context_->language = Language::Java;
+      break;
+
+    case dwarf2reader::DW_LANG_Swift:
+      cu_context_->language = Language::Swift;
+      break;
+
+    case dwarf2reader::DW_LANG_Rust:
+      cu_context_->language = Language::Rust;
+      break;
+
+    // DWARF has no generic language code for assembly language; this is
+    // what the GNU toolchain uses.
+    case dwarf2reader::DW_LANG_Mips_Assembler:
+      cu_context_->language = Language::Assembler;
+      break;
+
+    // C++ covers so many cases that it probably has some way to cope
+    // with whatever the other languages throw at us. So make it the
+    // default.
+    //
+    // Objective C and Objective C++ seem to create entries for
+    // methods whose DW_AT_name values are already fully-qualified:
+    // "-[Classname method:]".  These appear at the top level.
+    //
+    // DWARF data for C should never include namespaces or functions
+    // nested in struct types, but if it ever does, then C++'s
+    // notation is probably not a bad choice for that.
+    default:
+    case dwarf2reader::DW_LANG_ObjC:
+    case dwarf2reader::DW_LANG_ObjC_plus_plus:
+    case dwarf2reader::DW_LANG_C:
+    case dwarf2reader::DW_LANG_C89:
+    case dwarf2reader::DW_LANG_C99:
+    case dwarf2reader::DW_LANG_C_plus_plus:
+      cu_context_->language = Language::CPlusPlus;
+      break;
+  }
+}
+
+void DwarfCUToModule::ReadSourceLines(uint64_t offset) {
+  const dwarf2reader::SectionMap& section_map
+      = cu_context_->file_context->section_map();
+  dwarf2reader::SectionMap::const_iterator map_entry
+      = dwarf2reader::GetSectionByName(section_map, ".debug_line");
+  if (map_entry == section_map.end()) {
+    cu_context_->reporter->MissingSection(".debug_line");
+    return;
+  }
+  const uint8_t* line_section_start = map_entry->second.first + offset;
+  uint64_t line_section_length = map_entry->second.second;
+  if (offset >= line_section_length) {
+    cu_context_->reporter->BadLineInfoOffset(offset);
+    return;
+  }
+  line_section_length -= offset;
+  // When reading line tables, string sections are never needed for dwarf4, and
+  // may or may not be needed by dwarf5, so no error if they are missing.
+  const uint8_t* string_section_start = nullptr;
+  uint64_t string_section_length = 0;
+  map_entry = dwarf2reader::GetSectionByName(section_map, ".debug_str");
+  if (map_entry != section_map.end()) {
+    string_section_start = map_entry->second.first + offset;
+    string_section_length = map_entry->second.second - offset;
+  }
+  const uint8_t* line_string_section_start = nullptr;
+  uint64_t line_string_section_length = 0;
+  map_entry = dwarf2reader::GetSectionByName(section_map, ".debug_line_str");
+  if (map_entry != section_map.end()) {
+    line_string_section_start = map_entry->second.first + offset;
+    line_string_section_length = map_entry->second.second - offset;
+    return;
+  }
+  line_reader_->ReadProgram(
+      line_section_start, line_section_length,
+      string_section_start, string_section_length,
+      line_string_section_start, line_string_section_length,
+      cu_context_->file_context->module_, &lines_);
+}
+
+namespace {
+class FunctionRange {
+ public:
+  FunctionRange(const Module::Range& range, Module::Function* function) :
+      address(range.address), size(range.size), function(function) { }
+
+  void AddLine(Module::Line& line) {
+    function->lines.push_back(line);
+  }
+
+  Module::Address address;
+  Module::Address size;
+  Module::Function* function;
+};
+
+// Fills an array of ranges with pointers to the functions which owns
+// them. The array is sorted in ascending order and the ranges are non
+// empty and non-overlapping.
+
+static void FillSortedFunctionRanges(vector<FunctionRange>& dest_ranges,
+                                     vector<Module::Function*>* functions) {
+  for (vector<Module::Function*>::const_iterator func_it = functions->cbegin();
+       func_it != functions->cend();
+       func_it++)
+  {
+    Module::Function* func = *func_it;
+    vector<Module::Range>& ranges = func->ranges;
+    for (vector<Module::Range>::const_iterator ranges_it = ranges.cbegin();
+         ranges_it != ranges.cend();
+         ++ranges_it) {
+      FunctionRange range(*ranges_it, func);
+      if (range.size != 0) {
+          dest_ranges.push_back(range);
+      }
+    }
+  }
+
+  sort(dest_ranges.begin(), dest_ranges.end(),
+    [](const FunctionRange& fr1, const FunctionRange& fr2) {
+      return fr1.address < fr2.address;
+    }
+  );
+}
+
+// Return true if ADDRESS falls within the range of ITEM.
+template <class T>
+inline bool within(const T& item, Module::Address address) {
+  // Because Module::Address is unsigned, and unsigned arithmetic
+  // wraps around, this will be false if ADDRESS falls before the
+  // start of ITEM, or if it falls after ITEM's end.
+  return address - item.address < item.size;
+}
+}
+
+void DwarfCUToModule::AssignLinesToFunctions() {
+  vector<Module::Function*>* functions = &cu_context_->functions;
+  WarningReporter* reporter = cu_context_->reporter;
+
+  // This would be simpler if we assumed that source line entries
+  // don't cross function boundaries.  However, there's no real reason
+  // to assume that (say) a series of function definitions on the same
+  // line wouldn't get coalesced into one line number entry.  The
+  // DWARF spec certainly makes no such promises.
+  //
+  // So treat the functions and lines as peers, and take the trouble
+  // to compute their ranges' intersections precisely.  In any case,
+  // the hair here is a constant factor for performance; the
+  // complexity from here on out is linear.
+
+  // Put both our functions and lines in order by address.
+  std::sort(functions->begin(), functions->end(),
+            Module::Function::CompareByAddress);
+  std::sort(lines_.begin(), lines_.end(), Module::Line::CompareByAddress);
+
+  // The last line that we used any piece of.  We use this only for
+  // generating warnings.
+  const Module::Line* last_line_used = NULL;
+
+  // The last function and line we warned about --- so we can avoid
+  // doing so more than once.
+  const Module::Function* last_function_cited = NULL;
+  const Module::Line* last_line_cited = NULL;
+
+  // Prepare a sorted list of ranges with range-to-function mapping
+  vector<FunctionRange> sorted_ranges;
+  FillSortedFunctionRanges(sorted_ranges, functions);
+
+  // Make a single pass through both the range and line vectors from lower to
+  // higher addresses, populating each range's function lines vector with lines
+  // from our lines_ vector that fall within the range.
+  vector<FunctionRange>::iterator range_it = sorted_ranges.begin();
+  vector<Module::Line>::const_iterator line_it = lines_.begin();
+
+  Module::Address current;
+
+  // Pointers to the referents of func_it and line_it, or NULL if the
+  // iterator is at the end of the sequence.
+  FunctionRange* range;
+  const Module::Line* line;
+
+  // Start current at the beginning of the first line or function,
+  // whichever is earlier.
+  if (range_it != sorted_ranges.end() && line_it != lines_.end()) {
+    range = &*range_it;
+    line = &*line_it;
+    current = std::min(range->address, line->address);
+  } else if (line_it != lines_.end()) {
+    range = NULL;
+    line = &*line_it;
+    current = line->address;
+  } else if (range_it != sorted_ranges.end()) {
+    range = &*range_it;
+    line = NULL;
+    current = range->address;
+  } else {
+    return;
+  }
+
+  // Some dwarf producers handle linker-removed functions by using -1 as a
+  // tombstone in the line table. So the end marker can be -1.
+  if (current == Module::kMaxAddress)
+    return;
+
+  while (range || line) {
+    // This loop has two invariants that hold at the top.
+    //
+    // First, at least one of the iterators is not at the end of its
+    // sequence, and those that are not refer to the earliest
+    // range or line that contains or starts after CURRENT.
+    //
+    // Note that every byte is in one of four states: it is covered
+    // or not covered by a range, and, independently, it is
+    // covered or not covered by a line.
+    //
+    // The second invariant is that CURRENT refers to a byte whose
+    // state is different from its predecessor, or it refers to the
+    // first byte in the address space. In other words, CURRENT is
+    // always the address of a transition.
+    //
+    // Note that, although each iteration advances CURRENT from one
+    // transition address to the next in each iteration, it might
+    // not advance the iterators. Suppose we have a range that
+    // starts with a line, has a gap, and then a second line, and
+    // suppose that we enter an iteration with CURRENT at the end of
+    // the first line. The next transition address is the start of
+    // the second line, after the gap, so the iteration should
+    // advance CURRENT to that point. At the head of that iteration,
+    // the invariants require that the line iterator be pointing at
+    // the second line. But this is also true at the head of the
+    // next. And clearly, the iteration must not change the range
+    // iterator. So neither iterator moves.
+
+    // Assert the first invariant (see above).
+    assert(!range || current < range->address || within(*range, current));
+    assert(!line || current < line->address || within(*line, current));
+
+    // The next transition after CURRENT.
+    Module::Address next_transition;
+
+    // Figure out which state we're in, add lines or warn, and compute
+    // the next transition address.
+    if (range && current >= range->address) {
+      if (line && current >= line->address) {
+        // Covered by both a line and a range.
+        Module::Address range_left = range->size - (current - range->address);
+        Module::Address line_left = line->size - (current - line->address);
+        // This may overflow, but things work out.
+        next_transition = current + std::min(range_left, line_left);
+        Module::Line l = *line;
+        l.address = current;
+        l.size = next_transition - current;
+        range->AddLine(l);
+        last_line_used = line;
+      } else {
+        // Covered by a range, but no line.
+        if (range->function != last_function_cited) {
+          reporter->UncoveredFunction(*(range->function));
+          last_function_cited = range->function;
+        }
+        if (line && within(*range, line->address))
+          next_transition = line->address;
+        else
+          // If this overflows, we'll catch it below.
+          next_transition = range->address + range->size;
+      }
+    } else {
+      if (line && current >= line->address) {
+        // Covered by a line, but no range.
+        //
+        // If GCC emits padding after one function to align the start
+        // of the next, then it will attribute the padding
+        // instructions to the last source line of function (to reduce
+        // the size of the line number info), but omit it from the
+        // DW_AT_{low,high}_pc range given in .debug_info (since it
+        // costs nothing to be precise there). If we did use at least
+        // some of the line we're about to skip, and it ends at the
+        // start of the next function, then assume this is what
+        // happened, and don't warn.
+        if (line != last_line_cited
+            && !(range
+                 && line == last_line_used
+                 && range->address - line->address == line->size)) {
+          reporter->UncoveredLine(*line);
+          last_line_cited = line;
+        }
+        if (range && within(*line, range->address))
+          next_transition = range->address;
+        else
+          // If this overflows, we'll catch it below.
+          next_transition = line->address + line->size;
+      } else {
+        // Covered by neither a range nor a line. By the invariant,
+        // both range and line begin after CURRENT. The next transition
+        // is the start of the next range or next line, whichever
+        // is earliest.
+        assert(range || line);
+        if (range && line)
+          next_transition = std::min(range->address, line->address);
+        else if (range)
+          next_transition = range->address;
+        else
+          next_transition = line->address;
+      }
+    }
+
+    // If a function or line abuts the end of the address space, then
+    // next_transition may end up being zero, in which case we've completed
+    // our pass. Handle that here, instead of trying to deal with it in
+    // each place we compute next_transition.
+
+    // Some dwarf producers handle linker-removed functions by using -1 as a
+    // tombstone in the line table. So the end marker can be -1.
+    if (!next_transition || next_transition == Module::kMaxAddress)
+      break;
+
+    // Advance iterators as needed. If lines overlap or functions overlap,
+    // then we could go around more than once. We don't worry too much
+    // about what result we produce in that case, just as long as we don't
+    // hang or crash.
+    while (range_it != sorted_ranges.end()
+           && next_transition >= range_it->address
+           && !within(*range_it, next_transition))
+      range_it++;
+    range = (range_it != sorted_ranges.end()) ? &(*range_it) : NULL;
+    while (line_it != lines_.end()
+           && next_transition >= line_it->address
+           && !within(*line_it, next_transition))
+      line_it++;
+    line = (line_it != lines_.end()) ? &*line_it : NULL;
+
+    // We must make progress.
+    assert(next_transition > current);
+    current = next_transition;
+  }
+}
+
+void DwarfCUToModule::Finish() {
+  // Assembly language files have no function data, and that gives us
+  // no place to store our line numbers (even though the GNU toolchain
+  // will happily produce source line info for assembly language
+  // files).  To avoid spurious warnings about lines we can't assign
+  // to functions, skip CUs in languages that lack functions.
+  if (!cu_context_->language->HasFunctions())
+    return;
+
+  // Read source line info, if we have any.
+  if (has_source_line_info_)
+    ReadSourceLines(source_line_offset_);
+
+  vector<Module::Function*>* functions = &cu_context_->functions;
+
+  // Dole out lines to the appropriate functions.
+  AssignLinesToFunctions();
+
+  // Add our functions, which now have source lines assigned to them,
+  // to module_.
+  cu_context_->file_context->module_->AddFunctions(functions->begin(),
+                                                   functions->end());
+
+  // Ownership of the function objects has shifted from cu_context to
+  // the Module.
+  functions->clear();
+
+  cu_context_->file_context->ClearSpecifications();
+}
+
+bool DwarfCUToModule::StartCompilationUnit(uint64_t offset,
+                                           uint8_t address_size,
+                                           uint8_t offset_size,
+                                           uint64_t cu_length,
+                                           uint8_t dwarf_version) {
+  cu_context_->version = dwarf_version;
+  return dwarf_version >= 2;
+}
+
+bool DwarfCUToModule::StartRootDIE(uint64_t offset, enum DwarfTag tag) {
+  // We don't deal with partial compilation units (the only other tag
+  // likely to be used for root DIE).
+  return tag == dwarf2reader::DW_TAG_compile_unit;
+}
+
+} // namespace google_breakpad
diff --git a/src/common/dwarf_cu_to_module.h b/src/common/dwarf_cu_to_module.h
new file mode 100644
index 0000000..386d628
--- /dev/null
+++ b/src/common/dwarf_cu_to_module.h
@@ -0,0 +1,347 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// Add DWARF debugging information to a Breakpad symbol file. This
+// file defines the DwarfCUToModule class, which accepts parsed DWARF
+// data and populates a google_breakpad::Module with the results; the
+// Module can then write its contents as a Breakpad symbol file.
+
+#ifndef COMMON_LINUX_DWARF_CU_TO_MODULE_H__
+#define COMMON_LINUX_DWARF_CU_TO_MODULE_H__
+
+#include <stdint.h>
+
+#include <string>
+
+#include "common/language.h"
+#include "common/module.h"
+#include "common/dwarf/dwarf2diehandler.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using dwarf2reader::DwarfAttribute;
+using dwarf2reader::DwarfForm;
+using dwarf2reader::DwarfLanguage;
+using dwarf2reader::DwarfTag;
+
+// Populate a google_breakpad::Module with DWARF debugging information.
+//
+// An instance of this class can be provided as a handler to a
+// dwarf2reader::DIEDispatcher, which can in turn be a handler for a
+// dwarf2reader::CompilationUnit DWARF parser. The handler uses the results
+// of parsing to populate a google_breakpad::Module with source file,
+// function, and source line information.
+class DwarfCUToModule: public dwarf2reader::RootDIEHandler {
+  struct FilePrivate;
+ public:
+  // Information global to the DWARF-bearing file we are processing,
+  // for use by DwarfCUToModule. Each DwarfCUToModule instance deals
+  // with a single compilation unit within the file, but information
+  // global to the whole file is held here. The client is responsible
+  // for filling it in appropriately (except for the 'file_private'
+  // field, which the constructor and destructor take care of), and
+  // then providing it to the DwarfCUToModule instance for each
+  // compilation unit we process in that file. Set HANDLE_INTER_CU_REFS
+  // to true to handle debugging symbols with DW_FORM_ref_addr entries.
+  class FileContext {
+   public:
+    FileContext(const string& filename,
+                Module* module,
+                bool handle_inter_cu_refs);
+    ~FileContext();
+
+    // Add CONTENTS of size LENGTH to the section map as NAME.
+    void AddSectionToSectionMap(const string& name,
+                                const uint8_t* contents,
+                                uint64_t length);
+
+    // Clear the section map for testing.
+    void ClearSectionMapForTest();
+
+    const dwarf2reader::SectionMap& section_map() const;
+
+   private:
+    friend class DwarfCUToModule;
+
+    // Clears all the Specifications if HANDLE_INTER_CU_REFS_ is false.
+    void ClearSpecifications();
+
+    // Given an OFFSET and a CU that starts at COMPILATION_UNIT_START, returns
+    // true if this is an inter-compilation unit reference that is not being
+    // handled.
+    bool IsUnhandledInterCUReference(uint64_t offset,
+                                     uint64_t compilation_unit_start) const;
+
+    // The name of this file, for use in error messages.
+    const string filename_;
+
+    // A map of this file's sections, used for finding other DWARF
+    // sections that the .debug_info section may refer to.
+    dwarf2reader::SectionMap section_map_;
+
+    // The Module to which we're contributing definitions.
+    Module* module_;
+
+    // True if we are handling references between compilation units.
+    const bool handle_inter_cu_refs_;
+
+    // Inter-compilation unit data used internally by the handlers.
+    scoped_ptr<FilePrivate> file_private_;
+  };
+
+  // An abstract base class for handlers that handle DWARF range lists for
+  // DwarfCUToModule.
+  class RangesHandler {
+   public:
+    RangesHandler() { }
+    virtual ~RangesHandler() { }
+
+    // Called when finishing a function to populate the function's ranges.
+    // The entries are read according to the form and data.
+    virtual bool ReadRanges(
+        enum dwarf2reader::DwarfForm form, uint64_t data,
+        dwarf2reader::RangeListReader::CURangesInfo* cu_info,
+        vector<Module::Range>* ranges) = 0;
+  };
+
+  // An abstract base class for handlers that handle DWARF line data
+  // for DwarfCUToModule. DwarfCUToModule could certainly just use
+  // dwarf2reader::LineInfo itself directly, but decoupling things
+  // this way makes unit testing a little easier.
+  class LineToModuleHandler {
+   public:
+    LineToModuleHandler() { }
+    virtual ~LineToModuleHandler() { }
+
+    // Called at the beginning of a new compilation unit, prior to calling
+    // ReadProgram(). compilation_dir will indicate the path that the
+    // current compilation unit was compiled in, consistent with the
+    // DW_AT_comp_dir DIE.
+    virtual void StartCompilationUnit(const string& compilation_dir) = 0;
+
+    // Populate MODULE and LINES with source file names and code/line
+    // mappings, given a pointer to some DWARF line number data
+    // PROGRAM, and an overestimate of its size. Add no zero-length
+    // lines to LINES.
+    virtual void ReadProgram(const uint8_t* program, uint64_t length,
+                             const uint8_t* string_section,
+                             uint64_t string_section_length,
+                             const uint8_t* line_string_section,
+                             uint64_t line_string_length,
+                             Module* module, vector<Module::Line>* lines) = 0;
+  };
+
+  // The interface DwarfCUToModule uses to report warnings. The member
+  // function definitions for this class write messages to stderr, but
+  // you can override them if you'd like to detect or report these
+  // conditions yourself.
+  class WarningReporter {
+   public:
+    // Warn about problems in the DWARF file FILENAME, in the
+    // compilation unit at OFFSET.
+    WarningReporter(const string& filename, uint64_t cu_offset)
+        : filename_(filename), cu_offset_(cu_offset), printed_cu_header_(false),
+          printed_unpaired_header_(false),
+          uncovered_warnings_enabled_(false) { }
+    virtual ~WarningReporter() { }
+
+    // Set the name of the compilation unit we're processing to NAME.
+    virtual void SetCUName(const string& name) { cu_name_ = name; }
+
+    // Accessor and setter for uncovered_warnings_enabled_.
+    // UncoveredFunction and UncoveredLine only report a problem if that is
+    // true. By default, these warnings are disabled, because those
+    // conditions occur occasionally in healthy code.
+    virtual bool uncovered_warnings_enabled() const {
+      return uncovered_warnings_enabled_;
+    }
+    virtual void set_uncovered_warnings_enabled(bool value) {
+      uncovered_warnings_enabled_ = value;
+    }
+
+    // A DW_AT_specification in the DIE at OFFSET refers to a DIE we
+    // haven't processed yet, or that wasn't marked as a declaration,
+    // at TARGET.
+    virtual void UnknownSpecification(uint64_t offset, uint64_t target);
+
+    // A DW_AT_abstract_origin in the DIE at OFFSET refers to a DIE we
+    // haven't processed yet, or that wasn't marked as inline, at TARGET.
+    virtual void UnknownAbstractOrigin(uint64_t offset, uint64_t target);
+
+    // We were unable to find the DWARF section named SECTION_NAME.
+    virtual void MissingSection(const string& section_name);
+
+    // The CU's DW_AT_stmt_list offset OFFSET is bogus.
+    virtual void BadLineInfoOffset(uint64_t offset);
+
+    // FUNCTION includes code covered by no line number data.
+    virtual void UncoveredFunction(const Module::Function& function);
+
+    // Line number NUMBER in LINE_FILE, of length LENGTH, includes code
+    // covered by no function.
+    virtual void UncoveredLine(const Module::Line& line);
+
+    // The DW_TAG_subprogram DIE at OFFSET has no name specified directly
+    // in the DIE, nor via a DW_AT_specification or DW_AT_abstract_origin
+    // link.
+    virtual void UnnamedFunction(uint64_t offset);
+
+    // __cxa_demangle() failed to demangle INPUT.
+    virtual void DemangleError(const string& input);
+
+    // The DW_FORM_ref_addr at OFFSET to TARGET was not handled because
+    // FilePrivate did not retain the inter-CU specification data.
+    virtual void UnhandledInterCUReference(uint64_t offset, uint64_t target);
+
+    // The DW_AT_ranges at offset is malformed (truncated or outside of the
+    // .debug_ranges section's bound).
+    virtual void MalformedRangeList(uint64_t offset);
+
+    // A DW_AT_ranges attribute was encountered but the no .debug_ranges
+    // section was found.
+    virtual void MissingRanges();
+
+    uint64_t cu_offset() const {
+      return cu_offset_;
+    }
+
+   protected:
+    const string filename_;
+    const uint64_t cu_offset_;
+    string cu_name_;
+    bool printed_cu_header_;
+    bool printed_unpaired_header_;
+    bool uncovered_warnings_enabled_;
+
+   private:
+    // Print a per-CU heading, once.
+    void CUHeading();
+    // Print an unpaired function/line heading, once.
+    void UncoveredHeading();
+  };
+
+  // Create a DWARF debugging info handler for a compilation unit
+  // within FILE_CONTEXT. This uses information received from the
+  // dwarf2reader::CompilationUnit DWARF parser to populate
+  // FILE_CONTEXT->module. Use LINE_READER to handle the compilation
+  // unit's line number data. Use REPORTER to report problems with the
+  // data we find.
+  DwarfCUToModule(FileContext* file_context,
+                  LineToModuleHandler* line_reader,
+                  RangesHandler* ranges_handler,
+                  WarningReporter* reporter);
+  ~DwarfCUToModule();
+
+  void ProcessAttributeSigned(enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              int64_t data);
+  void ProcessAttributeUnsigned(enum DwarfAttribute attr,
+                                enum DwarfForm form,
+                                uint64_t data);
+  void ProcessAttributeString(enum DwarfAttribute attr,
+                              enum DwarfForm form,
+                              const string& data);
+  bool EndAttributes();
+  DIEHandler* FindChildHandler(uint64_t offset, enum DwarfTag tag);
+
+  // Assign all our source Lines to the Functions that cover their
+  // addresses, and then add them to module_.
+  void Finish();
+
+  bool StartCompilationUnit(uint64_t offset, uint8_t address_size,
+                            uint8_t offset_size, uint64_t cu_length,
+                            uint8_t dwarf_version);
+  bool StartRootDIE(uint64_t offset, enum DwarfTag tag);
+
+ private:
+  // Used internally by the handler. Full definitions are in
+  // dwarf_cu_to_module.cc.
+  struct CUContext;
+  struct DIEContext;
+  struct Specification;
+  class GenericDIEHandler;
+  class FuncHandler;
+  class NamedScopeHandler;
+
+  // A map from section offsets to specifications.
+  typedef map<uint64_t, Specification> SpecificationByOffset;
+
+  // Set this compilation unit's source language to LANGUAGE.
+  void SetLanguage(DwarfLanguage language);
+
+  // Read source line information at OFFSET in the .debug_line
+  // section.  Record source files in module_, but record source lines
+  // in lines_; we apportion them to functions in
+  // AssignLinesToFunctions.
+  void ReadSourceLines(uint64_t offset);
+
+  // Assign the lines in lines_ to the individual line lists of the
+  // functions in functions_.  (DWARF line information maps an entire
+  // compilation unit at a time, and gives no indication of which
+  // lines belong to which functions, beyond their addresses.)
+  void AssignLinesToFunctions();
+
+  // The only reason cu_context_ and child_context_ are pointers is
+  // that we want to keep their definitions private to
+  // dwarf_cu_to_module.cc, instead of listing them all here. They are
+  // owned by this DwarfCUToModule: the constructor sets them, and the
+  // destructor deletes them.
+
+  // The handler to use to handle line number data.
+  LineToModuleHandler* line_reader_;
+
+  // This compilation unit's context.
+  scoped_ptr<CUContext> cu_context_;
+
+  // A context for our children.
+  scoped_ptr<DIEContext> child_context_;
+
+  // True if this compilation unit has source line information.
+  bool has_source_line_info_;
+
+  // The offset of this compilation unit's line number information in
+  // the .debug_line section.
+  uint64_t source_line_offset_;
+
+  // The line numbers we have seen thus far.  We accumulate these here
+  // during parsing.  Then, in Finish, we call AssignLinesToFunctions
+  // to dole them out to the appropriate functions.
+  vector<Module::Line> lines_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_DWARF_CU_TO_MODULE_H__
diff --git a/src/common/dwarf_cu_to_module_unittest.cc b/src/common/dwarf_cu_to_module_unittest.cc
new file mode 100644
index 0000000..8545c67
--- /dev/null
+++ b/src/common/dwarf_cu_to_module_unittest.cc
@@ -0,0 +1,1862 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf_cu_to_module.cc: Unit tests for google_breakpad::DwarfCUToModule.
+
+#include <stdint.h>
+
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf_cu_to_module.h"
+#include "common/using_std_string.h"
+
+using std::make_pair;
+using std::vector;
+
+using dwarf2reader::DIEHandler;
+using dwarf2reader::DwarfTag;
+using dwarf2reader::DwarfAttribute;
+using dwarf2reader::DwarfForm;
+using dwarf2reader::DwarfInline;
+using dwarf2reader::RootDIEHandler;
+using google_breakpad::DwarfCUToModule;
+using google_breakpad::Module;
+
+using ::testing::_;
+using ::testing::AtMost;
+using ::testing::Invoke;
+using ::testing::Return;
+using ::testing::Test;
+using ::testing::TestWithParam;
+using ::testing::Values;
+using ::testing::ValuesIn;
+
+// Mock classes.
+
+class MockLineToModuleHandler: public DwarfCUToModule::LineToModuleHandler {
+ public:
+  MOCK_METHOD1(StartCompilationUnit, void(const string& compilation_dir));
+  MOCK_METHOD8(ReadProgram, void(const uint8_t* program, uint64_t length,
+                                 const uint8_t* string_section,
+                                 uint64_t string_section_length,
+                                 const uint8_t* line_string_section,
+                                 uint64_t line_string_section_length,
+                                 Module* module, vector<Module::Line>* lines));
+};
+
+class MockWarningReporter: public DwarfCUToModule::WarningReporter {
+ public:
+  MockWarningReporter(const string& filename, uint64_t cu_offset)
+      : DwarfCUToModule::WarningReporter(filename, cu_offset) { }
+  MOCK_METHOD1(SetCUName, void(const string& name));
+  MOCK_METHOD2(UnknownSpecification, void(uint64_t offset, uint64_t target));
+  MOCK_METHOD2(UnknownAbstractOrigin, void(uint64_t offset, uint64_t target));
+  MOCK_METHOD1(MissingSection, void(const string& section_name));
+  MOCK_METHOD1(BadLineInfoOffset, void(uint64_t offset));
+  MOCK_METHOD1(UncoveredFunction, void(const Module::Function& function));
+  MOCK_METHOD1(UncoveredLine, void(const Module::Line& line));
+  MOCK_METHOD1(UnnamedFunction, void(uint64_t offset));
+  MOCK_METHOD1(DemangleError, void(const string& input));
+  MOCK_METHOD2(UnhandledInterCUReference, void(uint64_t offset, uint64_t target));
+};
+
+// A fixture class including all the objects needed to handle a
+// compilation unit, and their entourage. It includes member functions
+// for doing common kinds of setup and tests.
+class CUFixtureBase {
+ public:
+  // If we have:
+  //
+  //   vector<Module::Line> lines;
+  //   AppendLinesFunctor appender(lines);
+  //
+  // then doing:
+  //
+  //   appender(line_program, length, module, line_vector);
+  //
+  // will append lines to the end of line_vector.  We can use this with
+  // MockLineToModuleHandler like this:
+  //
+  //   MockLineToModuleHandler l2m;
+  //   EXPECT_CALL(l2m, ReadProgram(_,_,_,_))
+  //       .WillOnce(DoAll(Invoke(appender), Return()));
+  //
+  // in which case calling l2m with some line vector will append lines.
+  class AppendLinesFunctor {
+   public:
+    explicit AppendLinesFunctor(
+        const vector<Module::Line>* lines) : lines_(lines) { }
+    void operator()(const uint8_t* program, uint64_t length,
+                    const uint8_t* string_section,
+                    uint64_t string_section_length,
+                    const uint8_t* line_string_section,
+                    uint64_t line_string_section_length,
+                    Module *module, vector<Module::Line>* lines) {
+      lines->insert(lines->end(), lines_->begin(), lines_->end());
+    }
+   private:
+    const vector<Module::Line>* lines_;
+  };
+
+  CUFixtureBase()
+      : module_("module-name", "module-os", "module-arch", "module-id"),
+        file_context_("dwarf-filename", &module_, true),
+        language_(dwarf2reader::DW_LANG_none),
+        language_signed_(false),
+        appender_(&lines_),
+        reporter_("dwarf-filename", 0xcf8f9bb6443d29b5LL),
+        root_handler_(&file_context_, &line_reader_,
+                      /* ranges_reader */ nullptr, &reporter_),
+        functions_filled_(false) {
+    // By default, expect no warnings to be reported, and expect the
+    // compilation unit's name to be provided. The test can override
+    // these expectations.
+    EXPECT_CALL(reporter_, SetCUName("compilation-unit-name")).Times(1);
+    EXPECT_CALL(reporter_, UnknownSpecification(_, _)).Times(0);
+    EXPECT_CALL(reporter_, UnknownAbstractOrigin(_, _)).Times(0);
+    EXPECT_CALL(reporter_, MissingSection(_)).Times(0);
+    EXPECT_CALL(reporter_, BadLineInfoOffset(_)).Times(0);
+    EXPECT_CALL(reporter_, UncoveredFunction(_)).Times(0);
+    EXPECT_CALL(reporter_, UncoveredLine(_)).Times(0);
+    EXPECT_CALL(reporter_, UnnamedFunction(_)).Times(0);
+    EXPECT_CALL(reporter_, UnhandledInterCUReference(_, _)).Times(0);
+
+    // By default, expect the line program reader not to be invoked. We
+    // may override this in StartCU.
+    EXPECT_CALL(line_reader_, StartCompilationUnit(_)).Times(0);
+    EXPECT_CALL(line_reader_, ReadProgram(_,_,_,_,_,_,_,_)).Times(0);
+
+    // The handler will consult this section map to decide what to
+    // pass to our line reader.
+    file_context_.AddSectionToSectionMap(".debug_line",
+                                         dummy_line_program_,
+                                         dummy_line_size_);
+  }
+
+  // Add a line with the given address, size, filename, and line
+  // number to the end of the statement list the handler will receive
+  // when it invokes its LineToModuleHandler. Call this before calling
+  // StartCU.
+  void PushLine(Module::Address address, Module::Address size,
+                const string& filename, int line_number);
+
+  // Use LANGUAGE for the compilation unit. More precisely, arrange
+  // for StartCU to pass the compilation unit's root DIE a
+  // DW_AT_language attribute whose value is LANGUAGE.
+  void SetLanguage(dwarf2reader::DwarfLanguage language) {
+    language_ = language;
+  }
+
+  // If SIGNED true, have StartCU report DW_AT_language as a signed
+  // attribute; if false, have it report it as unsigned.
+  void SetLanguageSigned(bool is_signed) { language_signed_ = is_signed; }
+
+  // Call the handler this.root_handler_'s StartCompilationUnit and
+  // StartRootDIE member functions, passing it appropriate attributes as
+  // determined by prior calls to PushLine and SetLanguage. Leave
+  // this.root_handler_ ready to hear about children: call
+  // this.root_handler_.EndAttributes, but not this.root_handler_.Finish.
+  void StartCU();
+
+  // Have HANDLER process some strange attribute/form/value triples.
+  void ProcessStrangeAttributes(dwarf2reader::DIEHandler* handler);
+
+  // Start a child DIE of PARENT with the given tag and name. Leave
+  // the handler ready to hear about children: call EndAttributes, but
+  // not Finish.
+  DIEHandler* StartNamedDIE(DIEHandler* parent, DwarfTag tag,
+                            const string& name);
+
+  // Start a child DIE of PARENT with the given tag and a
+  // DW_AT_specification attribute whose value is SPECIFICATION. Leave
+  // the handler ready to hear about children: call EndAttributes, but
+  // not Finish. If NAME is non-zero, use it as the DW_AT_name
+  // attribute.
+  DIEHandler* StartSpecifiedDIE(DIEHandler* parent, DwarfTag tag,
+                                uint64_t specification, const char* name = NULL);
+
+  // Define a function as a child of PARENT with the given name, address, and
+  // size. If high_pc_form is DW_FORM_addr then the DW_AT_high_pc attribute
+  // will be written as an address; otherwise it will be written as the
+  // function's size. Call EndAttributes and Finish; one cannot define
+  // children of the defined function's DIE.
+  void DefineFunction(DIEHandler* parent, const string& name,
+                      Module::Address address, Module::Address size,
+                      const char* mangled_name,
+                      DwarfForm high_pc_form = dwarf2reader::DW_FORM_addr);
+
+  // Create a declaration DIE as a child of PARENT with the given
+  // offset, tag and name. If NAME is the empty string, don't provide
+  // a DW_AT_name attribute. Call EndAttributes and Finish.
+  void DeclarationDIE(DIEHandler* parent, uint64_t offset,
+                      DwarfTag tag, const string& name,
+                      const string& mangled_name);
+
+  // Create a definition DIE as a child of PARENT with the given tag
+  // that refers to the declaration DIE at offset SPECIFICATION as its
+  // specification. If NAME is non-empty, pass it as the DW_AT_name
+  // attribute. If SIZE is non-zero, record ADDRESS and SIZE as
+  // low_pc/high_pc attributes.
+  void DefinitionDIE(DIEHandler* parent, DwarfTag tag,
+                     uint64_t specification, const string& name,
+                     Module::Address address = 0, Module::Address size = 0);
+
+  // Create an inline DW_TAG_subprogram DIE as a child of PARENT.  If
+  // SPECIFICATION is non-zero, then the DIE refers to the declaration DIE at
+  // offset SPECIFICATION as its specification.  If Name is non-empty, pass it
+  // as the DW_AT_name attribute.
+  void AbstractInstanceDIE(DIEHandler* parent, uint64_t offset,
+                           DwarfInline type, uint64_t specification,
+                           const string& name,
+                           DwarfForm form = dwarf2reader::DW_FORM_data1);
+
+  // Create a DW_TAG_subprogram DIE as a child of PARENT that refers to
+  // ORIGIN in its DW_AT_abstract_origin attribute.  If NAME is the empty
+  // string, don't provide a DW_AT_name attribute.
+  void DefineInlineInstanceDIE(DIEHandler* parent, const string& name,
+                               uint64_t origin, Module::Address address,
+                               Module::Address size);
+
+  // The following Test* functions should be called after calling
+  // this.root_handler_.Finish. After that point, no further calls
+  // should be made on the handler.
+
+  // Test that the number of functions defined in the module this.module_ is
+  // equal to EXPECTED.
+  void TestFunctionCount(size_t expected);
+
+  // Test that the I'th function (ordered by address) in the module
+  // this.module_ has the given name, address, and size, and that its
+  // parameter size is zero.
+  void TestFunction(int i, const string& name,
+                    Module::Address address, Module::Address size);
+
+  // Test that the number of source lines owned by the I'th function
+  // in the module this.module_ is equal to EXPECTED.
+  void TestLineCount(int i, size_t expected);
+
+  // Test that the J'th line (ordered by address) of the I'th function
+  // (again, by address) has the given address, size, filename, and
+  // line number.
+  void TestLine(int i, int j, Module::Address address, Module::Address size,
+                const string& filename, int number);
+
+  // Actual objects under test.
+  Module module_;
+  DwarfCUToModule::FileContext file_context_;
+
+  // If this is not DW_LANG_none, we'll pass it as a DW_AT_language
+  // attribute to the compilation unit. This defaults to DW_LANG_none.
+  dwarf2reader::DwarfLanguage language_;
+
+  // If this is true, report DW_AT_language as a signed value; if false,
+  // report it as an unsigned value.
+  bool language_signed_;
+
+  // If this is not empty, we'll give the CU a DW_AT_comp_dir attribute that
+  // indicates the path that this compilation unit was compiled in.
+  string compilation_dir_;
+
+  // If this is not empty, we'll give the CU a DW_AT_stmt_list
+  // attribute that, when passed to line_reader_, adds these lines to the
+  // provided lines array.
+  vector<Module::Line> lines_;
+
+  // Mock line program reader.
+  MockLineToModuleHandler line_reader_;
+  AppendLinesFunctor appender_;
+  static const uint8_t dummy_line_program_[];
+  static const size_t dummy_line_size_;
+
+  MockWarningReporter reporter_;
+  DwarfCUToModule root_handler_;
+
+ private:
+  // Fill functions_, if we haven't already.
+  void FillFunctions();
+
+  // If functions_filled_ is true, this is a table of functions we've
+  // extracted from module_, sorted by address.
+  vector<Module::Function*> functions_;
+  // True if we have filled the above vector with this.module_'s function list.
+  bool functions_filled_;
+};
+
+const uint8_t CUFixtureBase::dummy_line_program_[] = "lots of fun data";
+const size_t CUFixtureBase::dummy_line_size_ =
+    sizeof(CUFixtureBase::dummy_line_program_);
+
+void CUFixtureBase::PushLine(Module::Address address, Module::Address size,
+                             const string& filename, int line_number) {
+  Module::Line l;
+  l.address = address;
+  l.size = size;
+  l.file = module_.FindFile(filename);
+  l.number = line_number;
+  lines_.push_back(l);
+}
+
+void CUFixtureBase::StartCU() {
+  if (!compilation_dir_.empty())
+    EXPECT_CALL(line_reader_,
+                StartCompilationUnit(compilation_dir_)).Times(1);
+
+  // If we have lines, make the line reader expect to be invoked at
+  // most once. (Hey, if the handler can pass its tests without
+  // bothering to read the line number data, that's great.)
+  // Have it add the lines passed to PushLine. Otherwise, leave the
+  // initial expectation (no calls) in force.
+  if (!lines_.empty())
+    EXPECT_CALL(line_reader_,
+                ReadProgram(&dummy_line_program_[0], dummy_line_size_,
+                            _,_,_,_,
+                            &module_, _))
+        .Times(AtMost(1))
+        .WillOnce(DoAll(Invoke(appender_), Return()));
+  ASSERT_TRUE(root_handler_
+              .StartCompilationUnit(0x51182ec307610b51ULL, 0x81, 0x44,
+                                    0x4241b4f33720dd5cULL, 3));
+  {
+    ASSERT_TRUE(root_handler_.StartRootDIE(0x02e56bfbda9e7337ULL,
+                                           dwarf2reader::DW_TAG_compile_unit));
+  }
+  root_handler_.ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                       dwarf2reader::DW_FORM_strp,
+                                       "compilation-unit-name");
+  if (!compilation_dir_.empty())
+    root_handler_.ProcessAttributeString(dwarf2reader::DW_AT_comp_dir,
+                                         dwarf2reader::DW_FORM_strp,
+                                         compilation_dir_);
+  if (!lines_.empty())
+    root_handler_.ProcessAttributeUnsigned(dwarf2reader::DW_AT_stmt_list,
+                                           dwarf2reader::DW_FORM_ref4,
+                                           0);
+  if (language_ != dwarf2reader::DW_LANG_none) {
+    if (language_signed_)
+      root_handler_.ProcessAttributeSigned(dwarf2reader::DW_AT_language,
+                                           dwarf2reader::DW_FORM_sdata,
+                                           language_);
+    else
+      root_handler_.ProcessAttributeUnsigned(dwarf2reader::DW_AT_language,
+                                             dwarf2reader::DW_FORM_udata,
+                                             language_);
+  }
+  ASSERT_TRUE(root_handler_.EndAttributes());
+}
+
+void CUFixtureBase::ProcessStrangeAttributes(
+    dwarf2reader::DIEHandler* handler) {
+  handler->ProcessAttributeUnsigned((DwarfAttribute) 0xf560dead,
+                                    (DwarfForm) 0x4106e4db,
+                                    0xa592571997facda1ULL);
+  handler->ProcessAttributeSigned((DwarfAttribute) 0x85380095,
+                                  (DwarfForm) 0x0f16fe87,
+                                  0x12602a4e3bf1f446LL);
+  handler->ProcessAttributeReference((DwarfAttribute) 0xf7f7480f,
+                                     (DwarfForm) 0x829e038a,
+                                     0x50fddef44734fdecULL);
+  static const uint8_t buffer[10] = "frobynode";
+  handler->ProcessAttributeBuffer((DwarfAttribute) 0xa55ffb51,
+                                  (DwarfForm) 0x2f43b041,
+                                  buffer, sizeof(buffer));
+  handler->ProcessAttributeString((DwarfAttribute) 0x2f43b041,
+                                  (DwarfForm) 0x895ffa23,
+                                  "strange string");
+}
+
+DIEHandler* CUFixtureBase::StartNamedDIE(DIEHandler* parent,
+                                         DwarfTag tag,
+                                         const string& name) {
+  dwarf2reader::DIEHandler* handler
+    = parent->FindChildHandler(0x8f4c783c0467c989ULL, tag);
+  if (!handler)
+    return NULL;
+  handler->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                  dwarf2reader::DW_FORM_strp,
+                                  name);
+  ProcessStrangeAttributes(handler);
+  if (!handler->EndAttributes()) {
+    handler->Finish();
+    delete handler;
+    return NULL;
+  }
+
+  return handler;
+}
+
+DIEHandler* CUFixtureBase::StartSpecifiedDIE(DIEHandler* parent,
+                                             DwarfTag tag,
+                                             uint64_t specification,
+                                             const char* name) {
+  dwarf2reader::DIEHandler* handler
+    = parent->FindChildHandler(0x8f4c783c0467c989ULL, tag);
+  if (!handler)
+    return NULL;
+  if (name)
+    handler->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                    dwarf2reader::DW_FORM_strp,
+                                    name);
+  handler->ProcessAttributeReference(dwarf2reader::DW_AT_specification,
+                                     dwarf2reader::DW_FORM_ref4,
+                                     specification);
+  if (!handler->EndAttributes()) {
+    handler->Finish();
+    delete handler;
+    return NULL;
+  }
+
+  return handler;
+}
+
+void CUFixtureBase::DefineFunction(dwarf2reader::DIEHandler* parent,
+                                   const string& name, Module::Address address,
+                                   Module::Address size,
+                                   const char* mangled_name,
+                                   DwarfForm high_pc_form) {
+  dwarf2reader::DIEHandler* func
+      = parent->FindChildHandler(0xe34797c7e68590a8LL,
+                                 dwarf2reader::DW_TAG_subprogram);
+  ASSERT_TRUE(func != NULL);
+  func->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                               dwarf2reader::DW_FORM_strp,
+                               name);
+  func->ProcessAttributeUnsigned(dwarf2reader::DW_AT_low_pc,
+                                 dwarf2reader::DW_FORM_addr,
+                                 address);
+
+  Module::Address high_pc = size;
+  if (high_pc_form == dwarf2reader::DW_FORM_addr) {
+    high_pc += address;
+  }
+  func->ProcessAttributeUnsigned(dwarf2reader::DW_AT_high_pc,
+                                 high_pc_form,
+                                 high_pc);
+
+  if (mangled_name)
+    func->ProcessAttributeString(dwarf2reader::DW_AT_MIPS_linkage_name,
+                                 dwarf2reader::DW_FORM_strp,
+                                 mangled_name);
+
+  ProcessStrangeAttributes(func);
+  EXPECT_TRUE(func->EndAttributes());
+  func->Finish();
+  delete func;
+}
+
+void CUFixtureBase::DeclarationDIE(DIEHandler* parent, uint64_t offset,
+                                   DwarfTag tag,
+                                   const string& name,
+                                   const string& mangled_name) {
+  dwarf2reader::DIEHandler* die = parent->FindChildHandler(offset, tag);
+  ASSERT_TRUE(die != NULL);
+  if (!name.empty())
+    die->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                dwarf2reader::DW_FORM_strp,
+                                name);
+  if (!mangled_name.empty())
+    die->ProcessAttributeString(dwarf2reader::DW_AT_MIPS_linkage_name,
+                                dwarf2reader::DW_FORM_strp,
+                                mangled_name);
+
+  die->ProcessAttributeUnsigned(dwarf2reader::DW_AT_declaration,
+                                dwarf2reader::DW_FORM_flag,
+                                1);
+  EXPECT_TRUE(die->EndAttributes());
+  die->Finish();
+  delete die;
+}
+
+void CUFixtureBase::DefinitionDIE(DIEHandler* parent,
+                                  DwarfTag tag,
+                                  uint64_t specification,
+                                  const string& name,
+                                  Module::Address address,
+                                  Module::Address size) {
+  dwarf2reader::DIEHandler* die
+    = parent->FindChildHandler(0x6ccfea031a9e6cc9ULL, tag);
+  ASSERT_TRUE(die != NULL);
+  die->ProcessAttributeReference(dwarf2reader::DW_AT_specification,
+                                 dwarf2reader::DW_FORM_ref4,
+                                 specification);
+  if (!name.empty())
+    die->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                dwarf2reader::DW_FORM_strp,
+                                name);
+  if (size) {
+    die->ProcessAttributeUnsigned(dwarf2reader::DW_AT_low_pc,
+                                  dwarf2reader::DW_FORM_addr,
+                                  address);
+    die->ProcessAttributeUnsigned(dwarf2reader::DW_AT_high_pc,
+                                  dwarf2reader::DW_FORM_addr,
+                                  address + size);
+  }
+  EXPECT_TRUE(die->EndAttributes());
+  die->Finish();
+  delete die;
+}
+
+void CUFixtureBase::AbstractInstanceDIE(DIEHandler* parent,
+                                        uint64_t offset,
+                                        DwarfInline type,
+                                        uint64_t specification,
+                                        const string& name,
+                                        DwarfForm form) {
+  dwarf2reader::DIEHandler* die
+    = parent->FindChildHandler(offset, dwarf2reader::DW_TAG_subprogram);
+  ASSERT_TRUE(die != NULL);
+  if (specification != 0ULL)
+    die->ProcessAttributeReference(dwarf2reader::DW_AT_specification,
+                                   dwarf2reader::DW_FORM_ref4,
+                                   specification);
+  if (form == dwarf2reader::DW_FORM_sdata) {
+    die->ProcessAttributeSigned(dwarf2reader::DW_AT_inline, form, type);
+  } else {
+    die->ProcessAttributeUnsigned(dwarf2reader::DW_AT_inline, form, type);
+  }
+  if (!name.empty())
+    die->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                dwarf2reader::DW_FORM_strp,
+                                name);
+
+  EXPECT_TRUE(die->EndAttributes());
+  die->Finish();
+  delete die;
+}
+
+void CUFixtureBase::DefineInlineInstanceDIE(DIEHandler* parent,
+                                            const string& name,
+                                            uint64_t origin,
+                                            Module::Address address,
+                                            Module::Address size) {
+  dwarf2reader::DIEHandler* func
+      = parent->FindChildHandler(0x11c70f94c6e87ccdLL,
+                                 dwarf2reader::DW_TAG_subprogram);
+  ASSERT_TRUE(func != NULL);
+  if (!name.empty()) {
+    func->ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                 dwarf2reader::DW_FORM_strp,
+                                 name);
+  }
+  func->ProcessAttributeUnsigned(dwarf2reader::DW_AT_low_pc,
+                                 dwarf2reader::DW_FORM_addr,
+                                 address);
+  func->ProcessAttributeUnsigned(dwarf2reader::DW_AT_high_pc,
+                                 dwarf2reader::DW_FORM_addr,
+                                 address + size);
+  func->ProcessAttributeReference(dwarf2reader::DW_AT_abstract_origin,
+                                 dwarf2reader::DW_FORM_ref4,
+                                 origin);
+  ProcessStrangeAttributes(func);
+  EXPECT_TRUE(func->EndAttributes());
+  func->Finish();
+  delete func;
+}
+
+void CUFixtureBase::FillFunctions() {
+  if (functions_filled_)
+    return;
+  module_.GetFunctions(&functions_, functions_.end());
+  sort(functions_.begin(), functions_.end(),
+       Module::Function::CompareByAddress);
+  functions_filled_ = true;
+}
+
+void CUFixtureBase::TestFunctionCount(size_t expected) {
+  FillFunctions();
+  ASSERT_EQ(expected, functions_.size());
+}
+
+void CUFixtureBase::TestFunction(int i, const string& name,
+                                 Module::Address address,
+                                 Module::Address size) {
+  FillFunctions();
+  ASSERT_LT((size_t) i, functions_.size());
+
+  Module::Function* function = functions_[i];
+  EXPECT_EQ(name,    function->name);
+  EXPECT_EQ(address, function->address);
+  EXPECT_EQ(size,    function->ranges[0].size);
+  EXPECT_EQ(0U,      function->parameter_size);
+}
+
+void CUFixtureBase::TestLineCount(int i, size_t expected) {
+  FillFunctions();
+  ASSERT_LT((size_t) i, functions_.size());
+
+  ASSERT_EQ(expected, functions_[i]->lines.size());
+}
+
+void CUFixtureBase::TestLine(int i, int j,
+                             Module::Address address, Module::Address size,
+                             const string& filename, int number) {
+  FillFunctions();
+  ASSERT_LT((size_t) i, functions_.size());
+  ASSERT_LT((size_t) j, functions_[i]->lines.size());
+
+  Module::Line* line = &functions_[i]->lines[j];
+  EXPECT_EQ(address,  line->address);
+  EXPECT_EQ(size,     line->size);
+  EXPECT_EQ(filename, line->file->name.c_str());
+  EXPECT_EQ(number,   line->number);
+}
+
+// Include caller locations for our test subroutines.
+#define TRACE(call) do { SCOPED_TRACE("called from here"); call; } while (0)
+#define PushLine(a,b,c,d)         TRACE(PushLine((a),(b),(c),(d)))
+#define SetLanguage(a)            TRACE(SetLanguage(a))
+#define StartCU()                 TRACE(StartCU())
+#define DefineFunction(a,b,c,d,e) TRACE(DefineFunction((a),(b),(c),(d),(e)))
+// (DefineFunction) instead of DefineFunction to avoid macro expansion.
+#define DefineFunction6(a,b,c,d,e,f) \
+    TRACE((DefineFunction)((a),(b),(c),(d),(e),(f)))
+#define DeclarationDIE(a,b,c,d,e) TRACE(DeclarationDIE((a),(b),(c),(d),(e)))
+#define DefinitionDIE(a,b,c,d,e,f) \
+    TRACE(DefinitionDIE((a),(b),(c),(d),(e),(f)))
+#define TestFunctionCount(a)      TRACE(TestFunctionCount(a))
+#define TestFunction(a,b,c,d)     TRACE(TestFunction((a),(b),(c),(d)))
+#define TestLineCount(a,b)        TRACE(TestLineCount((a),(b)))
+#define TestLine(a,b,c,d,e,f)     TRACE(TestLine((a),(b),(c),(d),(e),(f)))
+
+class SimpleCU: public CUFixtureBase, public Test {
+};
+
+TEST_F(SimpleCU, CompilationDir) {
+  compilation_dir_ = "/src/build/";
+
+  StartCU();
+  root_handler_.Finish();
+}
+
+TEST_F(SimpleCU, OneFunc) {
+  PushLine(0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "line-file", 246571772);
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1",
+                 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "function1", 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "line-file",
+           246571772);
+}
+
+// As above, only DW_AT_high_pc is a length rather than an address.
+TEST_F(SimpleCU, OneFuncHighPcIsLength) {
+  PushLine(0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "line-file", 246571772);
+
+  StartCU();
+  DefineFunction6(&root_handler_, "function1",
+                  0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, NULL,
+                  dwarf2reader::DW_FORM_udata);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "function1", 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "line-file",
+           246571772);
+}
+
+TEST_F(SimpleCU, MangledName) {
+  PushLine(0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "line-file", 246571772);
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1",
+                 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL, "_ZN1n1fEi");
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "n::f(int)", 0x938cf8c07def4d34ULL, 0x55592d727f6cd01fLL);
+}
+
+TEST_F(SimpleCU, IrrelevantRootChildren) {
+  StartCU();
+  EXPECT_FALSE(root_handler_
+               .FindChildHandler(0x7db32bff4e2dcfb1ULL,
+                                 dwarf2reader::DW_TAG_lexical_block));
+}
+
+TEST_F(SimpleCU, IrrelevantNamedScopeChildren) {
+  StartCU();
+  DIEHandler* class_A_handler
+    = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type, "class_A");
+  EXPECT_TRUE(class_A_handler != NULL);
+  EXPECT_FALSE(class_A_handler
+               ->FindChildHandler(0x02e55999b865e4e9ULL,
+                                  dwarf2reader::DW_TAG_lexical_block));
+  delete class_A_handler;
+}
+
+// Verify that FileContexts can safely be deleted unused.
+TEST_F(SimpleCU, UnusedFileContext) {
+  Module m("module-name", "module-os", "module-arch", "module-id");
+  DwarfCUToModule::FileContext fc("dwarf-filename", &m, true);
+
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+}
+
+TEST_F(SimpleCU, InlineFunction) {
+  PushLine(0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL, "line-file", 75173118);
+
+  StartCU();
+  AbstractInstanceDIE(&root_handler_, 0x1e8dac5d507ed7abULL,
+                      dwarf2reader::DW_INL_inlined, 0, "inline-name");
+  DefineInlineInstanceDIE(&root_handler_, "", 0x1e8dac5d507ed7abULL,
+                       0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "inline-name",
+               0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+}
+
+TEST_F(SimpleCU, InlineFunctionSignedAttribute) {
+  PushLine(0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL, "line-file", 75173118);
+
+  StartCU();
+  AbstractInstanceDIE(&root_handler_, 0x1e8dac5d507ed7abULL,
+                      dwarf2reader::DW_INL_inlined, 0, "inline-name",
+                      dwarf2reader::DW_FORM_sdata);
+  DefineInlineInstanceDIE(&root_handler_, "", 0x1e8dac5d507ed7abULL,
+                       0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "inline-name",
+               0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+}
+
+// Any DIE with an DW_AT_inline attribute can be cited by
+// DW_AT_abstract_origin attributes --- even if the value of the
+// DW_AT_inline attribute is DW_INL_not_inlined.
+TEST_F(SimpleCU, AbstractOriginNotInlined) {
+  PushLine(0x2805c4531be6ca0eULL, 0x686b52155a8d4d2cULL, "line-file", 6111581);
+
+  StartCU();
+  AbstractInstanceDIE(&root_handler_, 0x93e9cdad52826b39ULL,
+                      dwarf2reader::DW_INL_not_inlined, 0, "abstract-instance");
+  DefineInlineInstanceDIE(&root_handler_, "", 0x93e9cdad52826b39ULL,
+                          0x2805c4531be6ca0eULL, 0x686b52155a8d4d2cULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "abstract-instance",
+               0x2805c4531be6ca0eULL, 0x686b52155a8d4d2cULL);
+}
+
+TEST_F(SimpleCU, UnknownAbstractOrigin) {
+  EXPECT_CALL(reporter_, UnknownAbstractOrigin(_, 1ULL)).WillOnce(Return());
+  EXPECT_CALL(reporter_, UnnamedFunction(0x11c70f94c6e87ccdLL))
+    .WillOnce(Return());
+  PushLine(0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL, "line-file", 75173118);
+
+  StartCU();
+  AbstractInstanceDIE(&root_handler_, 0x1e8dac5d507ed7abULL,
+                      dwarf2reader::DW_INL_inlined, 0, "inline-name");
+  DefineInlineInstanceDIE(&root_handler_, "", 1ULL,
+                       0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "<name omitted>",
+               0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+}
+
+TEST_F(SimpleCU, UnnamedFunction) {
+  EXPECT_CALL(reporter_, UnnamedFunction(0xe34797c7e68590a8LL))
+    .WillOnce(Return());
+  PushLine(0x72b80e41a0ac1d40ULL, 0x537174f231ee181cULL, "line-file", 14044850);
+
+  StartCU();
+  DefineFunction(&root_handler_, "",
+                 0x72b80e41a0ac1d40ULL, 0x537174f231ee181cULL, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "<name omitted>",
+               0x72b80e41a0ac1d40ULL, 0x537174f231ee181cULL);
+}
+
+// An address range.
+struct Range {
+  Module::Address start, end;
+};
+
+// Test data for pairing functions and lines.
+struct Situation {
+  // Two function intervals, and two line intervals.
+  Range functions[2], lines[2];
+
+  // The number of lines we expect to be assigned to each of the
+  // functions, and the address ranges.
+  int paired_count[2];
+  Range paired[2][2];
+
+  // The number of functions that are not entirely covered by lines,
+  // and vice versa.
+  int uncovered_functions, uncovered_lines;
+};
+
+#define PAIRING(func1_start, func1_end, func2_start, func2_end, \
+                line1_start, line1_end, line2_start, line2_end, \
+                func1_num_lines, func2_num_lines,               \
+                func1_line1_start, func1_line1_end,             \
+                func1_line2_start, func1_line2_end,             \
+                func2_line1_start, func2_line1_end,             \
+                func2_line2_start, func2_line2_end,             \
+                uncovered_functions, uncovered_lines)           \
+  { { { func1_start, func1_end }, { func2_start, func2_end } }, \
+    { { line1_start, line1_end }, { line2_start, line2_end } }, \
+    { func1_num_lines, func2_num_lines },                       \
+    { { { func1_line1_start, func1_line1_end },                 \
+        { func1_line2_start, func1_line2_end } },               \
+      { { func2_line1_start, func2_line1_end },                 \
+          { func2_line2_start, func2_line2_end } } },           \
+    uncovered_functions, uncovered_lines },
+
+Situation situations[] = {
+#include "common/testdata/func-line-pairing.h"
+};
+
+#undef PAIRING
+
+class FuncLinePairing: public CUFixtureBase,
+                       public TestWithParam<Situation> { };
+
+INSTANTIATE_TEST_CASE_P(AllSituations, FuncLinePairing,
+                        ValuesIn(situations));
+
+TEST_P(FuncLinePairing, Pairing) {
+  const Situation& s = GetParam();
+  PushLine(s.lines[0].start,
+           s.lines[0].end - s.lines[0].start,
+           "line-file", 67636963);
+  PushLine(s.lines[1].start,
+           s.lines[1].end - s.lines[1].start,
+           "line-file", 67636963);
+  if (s.uncovered_functions)
+    EXPECT_CALL(reporter_, UncoveredFunction(_))
+      .Times(s.uncovered_functions)
+      .WillRepeatedly(Return());
+  if (s.uncovered_lines)
+    EXPECT_CALL(reporter_, UncoveredLine(_))
+      .Times(s.uncovered_lines)
+      .WillRepeatedly(Return());
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1",
+                 s.functions[0].start,
+                 s.functions[0].end - s.functions[0].start, NULL);
+  DefineFunction(&root_handler_, "function2",
+                 s.functions[1].start,
+                 s.functions[1].end - s.functions[1].start, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "function1",
+               s.functions[0].start,
+               s.functions[0].end - s.functions[0].start);
+  TestLineCount(0, s.paired_count[0]);
+  for (int i = 0; i < s.paired_count[0]; i++)
+    TestLine(0, i, s.paired[0][i].start,
+             s.paired[0][i].end - s.paired[0][i].start,
+             "line-file", 67636963);
+  TestFunction(1, "function2",
+               s.functions[1].start,
+               s.functions[1].end - s.functions[1].start);
+  TestLineCount(1, s.paired_count[1]);
+  for (int i = 0; i < s.paired_count[1]; i++)
+    TestLine(1, i, s.paired[1][i].start,
+             s.paired[1][i].end - s.paired[1][i].start,
+             "line-file", 67636963);
+}
+
+TEST_F(FuncLinePairing, EmptyCU) {
+  StartCU();
+  root_handler_.Finish();
+
+  TestFunctionCount(0);
+}
+
+TEST_F(FuncLinePairing, LinesNoFuncs) {
+  PushLine(40, 2, "line-file", 82485646);
+  EXPECT_CALL(reporter_, UncoveredLine(_)).WillOnce(Return());
+
+  StartCU();
+  root_handler_.Finish();
+
+  TestFunctionCount(0);
+}
+
+TEST_F(FuncLinePairing, FuncsNoLines) {
+  EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return());
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1", 0x127da12ffcf5c51fULL, 0x1000U,
+                 NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "function1", 0x127da12ffcf5c51fULL, 0x1000U);
+}
+
+TEST_F(FuncLinePairing, GapThenFunction) {
+  PushLine(20, 2, "line-file-2", 174314698);
+  PushLine(10, 2, "line-file-1", 263008005);
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1", 10, 2, NULL);
+  DefineFunction(&root_handler_, "function2", 20, 2, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "function1", 10, 2);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 10, 2, "line-file-1", 263008005);
+  TestFunction(1, "function2", 20, 2);
+  TestLineCount(1, 1);
+  TestLine(1, 0, 20, 2, "line-file-2", 174314698);
+}
+
+// If GCC emits padding after one function to align the start of
+// the next, then it will attribute the padding instructions to
+// the last source line of function (to reduce the size of the
+// line number info), but omit it from the DW_AT_{low,high}_pc
+// range given in .debug_info (since it costs nothing to be
+// precise there).  If we did use at least some of the line
+// we're about to skip, then assume this is what happened, and
+// don't warn.
+TEST_F(FuncLinePairing, GCCAlignmentStretch) {
+  PushLine(10, 10, "line-file", 63351048);
+  PushLine(20, 10, "line-file", 61661044);
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1", 10, 5, NULL);
+  // five-byte gap between functions, covered by line 63351048.
+  // This should not elicit a warning.
+  DefineFunction(&root_handler_, "function2", 20, 10, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "function1", 10, 5);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 10, 5, "line-file", 63351048);
+  TestFunction(1, "function2", 20, 10);
+  TestLineCount(1, 1);
+  TestLine(1, 0, 20, 10, "line-file", 61661044);
+}
+
+// Unfortunately, neither the DWARF parser's handler interface nor the
+// DIEHandler interface is capable of expressing a function that abuts
+// the end of the address space: the high_pc value looks like zero.
+
+TEST_F(FuncLinePairing, LineAtEndOfAddressSpace) {
+  PushLine(0xfffffffffffffff0ULL, 16, "line-file", 63351048);
+  EXPECT_CALL(reporter_, UncoveredLine(_)).WillOnce(Return());
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1", 0xfffffffffffffff0ULL, 6, NULL);
+  DefineFunction(&root_handler_, "function2", 0xfffffffffffffffaULL, 5, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "function1", 0xfffffffffffffff0ULL, 6);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 0xfffffffffffffff0ULL, 6, "line-file", 63351048);
+  TestFunction(1, "function2", 0xfffffffffffffffaULL, 5);
+  TestLineCount(1, 1);
+  TestLine(1, 0, 0xfffffffffffffffaULL, 5, "line-file", 63351048);
+}
+
+// A function with more than one uncovered area should only be warned
+// about once.
+TEST_F(FuncLinePairing, WarnOnceFunc) {
+  PushLine(20, 1, "line-file-2", 262951329);
+  PushLine(11, 1, "line-file-1", 219964021);
+  EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return());
+
+  StartCU();
+  DefineFunction(&root_handler_, "function", 10, 11, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "function", 10, 11);
+  TestLineCount(0, 2);
+  TestLine(0, 0, 11, 1, "line-file-1", 219964021);
+  TestLine(0, 1, 20, 1, "line-file-2", 262951329);
+}
+
+// A line with more than one uncovered area should only be warned
+// about once.
+TEST_F(FuncLinePairing, WarnOnceLine) {
+  PushLine(10, 20, "filename1", 118581871);
+  EXPECT_CALL(reporter_, UncoveredLine(_)).WillOnce(Return());
+
+  StartCU();
+  DefineFunction(&root_handler_, "function1", 11, 1, NULL);
+  DefineFunction(&root_handler_, "function2", 13, 1, NULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "function1", 11, 1);
+  TestLineCount(0, 1);
+  TestLine(0, 0, 11, 1, "filename1", 118581871);
+  TestFunction(1, "function2", 13, 1);
+  TestLineCount(1, 1);
+  TestLine(1, 0, 13, 1, "filename1", 118581871);
+}
+
+class CXXQualifiedNames: public CUFixtureBase,
+                         public TestWithParam<DwarfTag> { };
+
+INSTANTIATE_TEST_CASE_P(VersusEnclosures, CXXQualifiedNames,
+                        Values(dwarf2reader::DW_TAG_class_type,
+                               dwarf2reader::DW_TAG_structure_type,
+                               dwarf2reader::DW_TAG_union_type,
+                               dwarf2reader::DW_TAG_namespace));
+
+TEST_P(CXXQualifiedNames, TwoFunctions) {
+  DwarfTag tag = GetParam();
+
+  SetLanguage(dwarf2reader::DW_LANG_C_plus_plus);
+  PushLine(10, 1, "filename1", 69819327);
+  PushLine(20, 1, "filename2", 95115701);
+
+  StartCU();
+  DIEHandler* enclosure_handler = StartNamedDIE(&root_handler_, tag,
+                                                "Enclosure");
+  EXPECT_TRUE(enclosure_handler != NULL);
+  DefineFunction(enclosure_handler, "func_B", 10, 1, NULL);
+  DefineFunction(enclosure_handler, "func_C", 20, 1, NULL);
+  enclosure_handler->Finish();
+  delete enclosure_handler;
+  root_handler_.Finish();
+
+  TestFunctionCount(2);
+  TestFunction(0, "Enclosure::func_B", 10, 1);
+  TestFunction(1, "Enclosure::func_C", 20, 1);
+}
+
+TEST_P(CXXQualifiedNames, FuncInEnclosureInNamespace) {
+  DwarfTag tag = GetParam();
+
+  SetLanguage(dwarf2reader::DW_LANG_C_plus_plus);
+  PushLine(10, 1, "line-file", 69819327);
+
+  StartCU();
+  DIEHandler* namespace_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                      "Namespace");
+  EXPECT_TRUE(namespace_handler != NULL);
+  DIEHandler* enclosure_handler = StartNamedDIE(namespace_handler, tag,
+                                                "Enclosure");
+  EXPECT_TRUE(enclosure_handler != NULL);
+  DefineFunction(enclosure_handler, "function", 10, 1, NULL);
+  enclosure_handler->Finish();
+  delete enclosure_handler;
+  namespace_handler->Finish();
+  delete namespace_handler;
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "Namespace::Enclosure::function", 10, 1);
+}
+
+TEST_F(CXXQualifiedNames, FunctionInClassInStructInNamespace) {
+  SetLanguage(dwarf2reader::DW_LANG_C_plus_plus);
+  PushLine(10, 1, "filename1", 69819327);
+
+  StartCU();
+  DIEHandler* namespace_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                      "namespace_A");
+  EXPECT_TRUE(namespace_handler != NULL);
+  DIEHandler* struct_handler
+      = StartNamedDIE(namespace_handler, dwarf2reader::DW_TAG_structure_type,
+                      "struct_B");
+  EXPECT_TRUE(struct_handler != NULL);
+  DIEHandler* class_handler
+      = StartNamedDIE(struct_handler, dwarf2reader::DW_TAG_class_type,
+                      "class_C");
+  DefineFunction(class_handler, "function_D", 10, 1, NULL);
+  class_handler->Finish();
+  delete class_handler;
+  struct_handler->Finish();
+  delete struct_handler;
+  namespace_handler->Finish();
+  delete namespace_handler;
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "namespace_A::struct_B::class_C::function_D", 10, 1);
+}
+
+struct LanguageAndQualifiedName {
+  dwarf2reader::DwarfLanguage language;
+  const char* name;
+};
+
+const LanguageAndQualifiedName LanguageAndQualifiedNameCases[] = {
+  { dwarf2reader::DW_LANG_none,           "class_A::function_B" },
+  { dwarf2reader::DW_LANG_C,              "class_A::function_B" },
+  { dwarf2reader::DW_LANG_C89,            "class_A::function_B" },
+  { dwarf2reader::DW_LANG_C99,            "class_A::function_B" },
+  { dwarf2reader::DW_LANG_C_plus_plus,    "class_A::function_B" },
+  { dwarf2reader::DW_LANG_Java,           "class_A.function_B" },
+  { dwarf2reader::DW_LANG_Cobol74,        "class_A::function_B" },
+  { dwarf2reader::DW_LANG_Mips_Assembler, NULL }
+};
+
+class QualifiedForLanguage
+    : public CUFixtureBase,
+      public TestWithParam<LanguageAndQualifiedName> { };
+
+INSTANTIATE_TEST_CASE_P(LanguageAndQualifiedName, QualifiedForLanguage,
+                        ValuesIn(LanguageAndQualifiedNameCases));
+
+TEST_P(QualifiedForLanguage, MemberFunction) {
+  const LanguageAndQualifiedName& param = GetParam();
+
+  PushLine(10, 1, "line-file", 212966758);
+  SetLanguage(param.language);
+
+  StartCU();
+  DIEHandler* class_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                      "class_A");
+  DefineFunction(class_handler, "function_B", 10, 1, NULL);
+  class_handler->Finish();
+  delete class_handler;
+  root_handler_.Finish();
+
+  if (param.name) {
+    TestFunctionCount(1);
+    TestFunction(0, param.name, 10, 1);
+  } else {
+    TestFunctionCount(0);
+  }
+}
+
+TEST_P(QualifiedForLanguage, MemberFunctionSignedLanguage) {
+  const LanguageAndQualifiedName& param = GetParam();
+
+  PushLine(10, 1, "line-file", 212966758);
+  SetLanguage(param.language);
+  SetLanguageSigned(true);
+
+  StartCU();
+  DIEHandler* class_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                      "class_A");
+  DefineFunction(class_handler, "function_B", 10, 1, NULL);
+  class_handler->Finish();
+  delete class_handler;
+  root_handler_.Finish();
+
+  if (param.name) {
+    TestFunctionCount(1);
+    TestFunction(0, param.name, 10, 1);
+  } else {
+    TestFunctionCount(0);
+  }
+}
+
+class Specifications: public CUFixtureBase, public Test { };
+
+TEST_F(Specifications, Function) {
+  PushLine(0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL, "line-file", 54883661);
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xcd3c51b946fb1eeeLL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name", "");
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0xcd3c51b946fb1eeeLL, "",
+                0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "declaration-name",
+               0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+}
+
+TEST_F(Specifications, MangledName) {
+  // Language defaults to C++, so no need to set it here.
+  PushLine(0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL, "line-file", 54883661);
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xcd3c51b946fb1eeeLL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name",
+                 "_ZN1C1fEi");
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0xcd3c51b946fb1eeeLL, "",
+                0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "C::f(int)",
+               0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+}
+
+TEST_F(Specifications, MangledNameSwift) {
+  // Swift mangled names should pass through untouched.
+  SetLanguage(dwarf2reader::DW_LANG_Swift);
+  PushLine(0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL, "line-file", 54883661);
+  StartCU();
+  const string kName = "_TFC9swifttest5Shape17simpleDescriptionfS0_FT_Si";
+  DeclarationDIE(&root_handler_, 0xcd3c51b946fb1eeeLL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name",
+                 kName);
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0xcd3c51b946fb1eeeLL, "",
+                0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, kName,
+               0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+}
+
+TEST_F(Specifications, MangledNameRust) {
+  SetLanguage(dwarf2reader::DW_LANG_Rust);
+  PushLine(0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL, "line-file", 54883661);
+
+  StartCU();
+  const string kName = "_ZN14rustc_demangle8demangle17h373defa94bffacdeE";
+  DeclarationDIE(&root_handler_, 0xcd3c51b946fb1eeeLL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name",
+                 kName);
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0xcd3c51b946fb1eeeLL, "",
+                0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0,
+#ifndef HAVE_RUST_DEMANGLE
+               // Rust mangled names should pass through untouched if not
+               // using rust-demangle.
+               kName,
+#else
+               // If rust-demangle is available this should be properly
+               // demangled.
+               "rustc_demangle::demangle",
+#endif
+               0x93cd3dfc1aa10097ULL, 0x0397d47a0b4ca0d4ULL);
+}
+
+TEST_F(Specifications, MemberFunction) {
+  PushLine(0x3341a248634e7170ULL, 0x5f6938ee5553b953ULL, "line-file", 18116691);
+
+  StartCU();
+  DIEHandler* class_handler
+    = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type, "class_A");
+  DeclarationDIE(class_handler, 0x7d83028c431406e8ULL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name", "");
+  class_handler->Finish();
+  delete class_handler;
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0x7d83028c431406e8ULL, "",
+                0x3341a248634e7170ULL, 0x5f6938ee5553b953ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "class_A::declaration-name",
+               0x3341a248634e7170ULL, 0x5f6938ee5553b953ULL);
+}
+
+// This case should gather the name from both the definition and the
+// declaration's parent.
+TEST_F(Specifications, FunctionDeclarationParent) {
+  PushLine(0x463c9ddf405be227ULL, 0x6a47774af5049680ULL, "line-file", 70254922);
+
+  StartCU();
+  {
+    DIEHandler* class_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                      "class_A");
+    ASSERT_TRUE(class_handler != NULL);
+    DeclarationDIE(class_handler, 0x0e0e877c8404544aULL,
+                   dwarf2reader::DW_TAG_subprogram, "declaration-name", "");
+    class_handler->Finish();
+    delete class_handler;
+  }
+
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0x0e0e877c8404544aULL, "definition-name",
+                0x463c9ddf405be227ULL, 0x6a47774af5049680ULL);
+
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "class_A::definition-name",
+               0x463c9ddf405be227ULL, 0x6a47774af5049680ULL);
+}
+
+// Named scopes should also gather enclosing name components from
+// their declarations.
+TEST_F(Specifications, NamedScopeDeclarationParent) {
+  PushLine(0x5d13433d0df13d00ULL, 0x48ebebe5ade2cab4ULL, "line-file", 77392604);
+
+  StartCU();
+  {
+    DIEHandler* space_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                      "space_A");
+    ASSERT_TRUE(space_handler != NULL);
+    DeclarationDIE(space_handler, 0x419bb1d12f9a73a2ULL,
+                   dwarf2reader::DW_TAG_class_type, "class-declaration-name",
+                   "");
+    space_handler->Finish();
+    delete space_handler;
+  }
+
+  {
+    DIEHandler* class_handler
+      = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                          0x419bb1d12f9a73a2ULL, "class-definition-name");
+    ASSERT_TRUE(class_handler != NULL);
+    DefineFunction(class_handler, "function",
+                   0x5d13433d0df13d00ULL, 0x48ebebe5ade2cab4ULL, NULL);
+    class_handler->Finish();
+    delete class_handler;
+  }
+
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "space_A::class-definition-name::function",
+               0x5d13433d0df13d00ULL, 0x48ebebe5ade2cab4ULL);
+}
+
+// This test recreates bug 364.
+TEST_F(Specifications, InlineFunction) {
+  PushLine(0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL, "line-file", 75173118);
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xcd3c51b946fb1eeeLL,
+                 dwarf2reader::DW_TAG_subprogram, "inline-name", "");
+  AbstractInstanceDIE(&root_handler_, 0x1e8dac5d507ed7abULL,
+                      dwarf2reader::DW_INL_inlined, 0xcd3c51b946fb1eeeLL, "");
+  DefineInlineInstanceDIE(&root_handler_, "", 0x1e8dac5d507ed7abULL,
+                       0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "inline-name",
+               0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+}
+
+// An inline function in a namespace should correctly derive its
+// name from its abstract origin, and not just the namespace name.
+TEST_F(Specifications, InlineFunctionInNamespace) {
+  PushLine(0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL, "line-file", 75173118);
+
+  StartCU();
+  DIEHandler* space_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                      "Namespace");
+  ASSERT_TRUE(space_handler != NULL);
+  AbstractInstanceDIE(space_handler, 0x1e8dac5d507ed7abULL,
+                      dwarf2reader::DW_INL_inlined, 0LL, "func-name");
+  DefineInlineInstanceDIE(space_handler, "", 0x1e8dac5d507ed7abULL,
+                       0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+  space_handler->Finish();
+  delete space_handler;
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "Namespace::func-name",
+               0x1758a0f941b71efbULL, 0x1cf154f1f545e146ULL);
+}
+
+// Check name construction for a long chain containing each combination of:
+// - struct, union, class, namespace
+// - direct and definition
+TEST_F(Specifications, LongChain) {
+  PushLine(0x5a0dd6bb85db754cULL, 0x3bccb213d08c7fd3ULL, "line-file", 21192926);
+  SetLanguage(dwarf2reader::DW_LANG_C_plus_plus);
+
+  StartCU();
+  // The structure we're building here is:
+  // space_A full definition
+  //   space_B declaration
+  // space_B definition
+  //   struct_C full definition
+  //     struct_D declaration
+  // struct_D definition
+  //   union_E full definition
+  //     union_F declaration
+  // union_F definition
+  //   class_G full definition
+  //     class_H declaration
+  // class_H definition
+  //   func_I declaration
+  // func_I definition
+  //
+  // So:
+  // - space_A, struct_C, union_E, and class_G don't use specifications;
+  // - space_B, struct_D, union_F, and class_H do.
+  // - func_I uses a specification.
+  //
+  // The full name for func_I is thus:
+  //
+  // space_A::space_B::struct_C::struct_D::union_E::union_F::
+  //   class_G::class_H::func_I
+  {
+    DIEHandler* space_A_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                      "space_A");
+    DeclarationDIE(space_A_handler, 0x2e111126496596e2ULL,
+                   dwarf2reader::DW_TAG_namespace, "space_B", "");
+    space_A_handler->Finish();
+    delete space_A_handler;
+  }
+
+  {
+    DIEHandler* space_B_handler
+      = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_namespace,
+                          0x2e111126496596e2ULL);
+    DIEHandler* struct_C_handler
+      = StartNamedDIE(space_B_handler, dwarf2reader::DW_TAG_structure_type,
+                      "struct_C");
+    DeclarationDIE(struct_C_handler, 0x20cd423bf2a25a4cULL,
+                   dwarf2reader::DW_TAG_structure_type, "struct_D", "");
+    struct_C_handler->Finish();
+    delete struct_C_handler;
+    space_B_handler->Finish();
+    delete space_B_handler;
+  }
+
+  {
+    DIEHandler* struct_D_handler
+      = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_structure_type,
+                          0x20cd423bf2a25a4cULL);
+    DIEHandler* union_E_handler
+      = StartNamedDIE(struct_D_handler, dwarf2reader::DW_TAG_union_type,
+                      "union_E");
+    DeclarationDIE(union_E_handler, 0xe25c84805aa58c32ULL,
+                   dwarf2reader::DW_TAG_union_type, "union_F", "");
+    union_E_handler->Finish();
+    delete union_E_handler;
+    struct_D_handler->Finish();
+    delete struct_D_handler;
+  }
+
+  {
+    DIEHandler* union_F_handler
+      = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_union_type,
+                          0xe25c84805aa58c32ULL);
+    DIEHandler* class_G_handler
+      = StartNamedDIE(union_F_handler, dwarf2reader::DW_TAG_class_type,
+                      "class_G");
+    DeclarationDIE(class_G_handler, 0xb70d960dcc173b6eULL,
+                   dwarf2reader::DW_TAG_class_type, "class_H", "");
+    class_G_handler->Finish();
+    delete class_G_handler;
+    union_F_handler->Finish();
+    delete union_F_handler;
+  }
+
+  {
+    DIEHandler* class_H_handler
+      = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                          0xb70d960dcc173b6eULL);
+    DeclarationDIE(class_H_handler, 0x27ff829e3bf69f37ULL,
+                   dwarf2reader::DW_TAG_subprogram, "func_I", "");
+    class_H_handler->Finish();
+    delete class_H_handler;
+  }
+
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0x27ff829e3bf69f37ULL, "",
+                0x5a0dd6bb85db754cULL, 0x3bccb213d08c7fd3ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "space_A::space_B::struct_C::struct_D::union_E::union_F"
+               "::class_G::class_H::func_I",
+               0x5a0dd6bb85db754cULL, 0x3bccb213d08c7fd3ULL);
+}
+
+TEST_F(Specifications, InterCU) {
+  Module m("module-name", "module-os", "module-arch", "module-id");
+  DwarfCUToModule::FileContext fc("dwarf-filename", &m, true);
+  EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return());
+  MockLineToModuleHandler lr;
+  EXPECT_CALL(lr, ReadProgram(_,_,_,_,_,_,_,_)).Times(0);
+
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  // First CU.  Declares class_A.
+  {
+    DwarfCUToModule root1_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root1_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root1_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ProcessStrangeAttributes(&root1_handler);
+    ASSERT_TRUE(root1_handler.EndAttributes());
+    DeclarationDIE(&root1_handler, 0xb8fbfdd5f0b26fceULL,
+                   dwarf2reader::DW_TAG_class_type, "class_A", "");
+    root1_handler.Finish();
+  }
+
+  // Second CU.  Defines class_A, declares member_func_B.
+  {
+    DwarfCUToModule root2_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root2_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root2_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ASSERT_TRUE(root2_handler.EndAttributes());
+    DIEHandler* class_A_handler
+      = StartSpecifiedDIE(&root2_handler, dwarf2reader::DW_TAG_class_type,
+                          0xb8fbfdd5f0b26fceULL);
+    DeclarationDIE(class_A_handler, 0xb01fef8b380bd1a2ULL,
+                   dwarf2reader::DW_TAG_subprogram, "member_func_B", "");
+    class_A_handler->Finish();
+    delete class_A_handler;
+    root2_handler.Finish();
+  }
+
+  // Third CU.  Defines member_func_B.
+  {
+    DwarfCUToModule root3_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root3_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root3_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ASSERT_TRUE(root3_handler.EndAttributes());
+    DefinitionDIE(&root3_handler, dwarf2reader::DW_TAG_subprogram,
+                  0xb01fef8b380bd1a2ULL, "",
+                  0x2618f00a1a711e53ULL, 0x4fd94b76d7c2caf5ULL);
+    root3_handler.Finish();
+  }
+
+  vector<Module::Function*> functions;
+  m.GetFunctions(&functions, functions.end());
+  EXPECT_EQ(1U, functions.size());
+  EXPECT_STREQ("class_A::member_func_B", functions[0]->name.c_str());
+}
+
+TEST_F(Specifications, UnhandledInterCU) {
+  Module m("module-name", "module-os", "module-arch", "module-id");
+  DwarfCUToModule::FileContext fc("dwarf-filename", &m, false);
+  EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return());
+  MockLineToModuleHandler lr;
+  EXPECT_CALL(lr, ReadProgram(_,_,_,_,_,_,_,_)).Times(0);
+
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  // First CU.  Declares class_A.
+  {
+    DwarfCUToModule root1_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root1_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root1_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ProcessStrangeAttributes(&root1_handler);
+    ASSERT_TRUE(root1_handler.EndAttributes());
+    DeclarationDIE(&root1_handler, 0xb8fbfdd5f0b26fceULL,
+                   dwarf2reader::DW_TAG_class_type, "class_A", "");
+    root1_handler.Finish();
+  }
+
+  // Second CU.  Defines class_A, declares member_func_B.
+  {
+    DwarfCUToModule root2_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root2_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root2_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ASSERT_TRUE(root2_handler.EndAttributes());
+    EXPECT_CALL(reporter_, UnhandledInterCUReference(_, _)).Times(1);
+    DIEHandler* class_A_handler
+      = StartSpecifiedDIE(&root2_handler, dwarf2reader::DW_TAG_class_type,
+                          0xb8fbfdd5f0b26fceULL);
+    DeclarationDIE(class_A_handler, 0xb01fef8b380bd1a2ULL,
+                   dwarf2reader::DW_TAG_subprogram, "member_func_B", "");
+    class_A_handler->Finish();
+    delete class_A_handler;
+    root2_handler.Finish();
+  }
+
+  // Third CU.  Defines member_func_B.
+  {
+    DwarfCUToModule root3_handler(&fc, &lr, nullptr, &reporter_);
+    ASSERT_TRUE(root3_handler.StartCompilationUnit(0, 1, 2, 3, 3));
+    ASSERT_TRUE(root3_handler.StartRootDIE(1,
+                                           dwarf2reader::DW_TAG_compile_unit));
+    ASSERT_TRUE(root3_handler.EndAttributes());
+    EXPECT_CALL(reporter_, UnhandledInterCUReference(_, _)).Times(1);
+    EXPECT_CALL(reporter_, UnnamedFunction(_)).Times(1);
+    DefinitionDIE(&root3_handler, dwarf2reader::DW_TAG_subprogram,
+                  0xb01fef8b380bd1a2ULL, "",
+                  0x2618f00a1a711e53ULL, 0x4fd94b76d7c2caf5ULL);
+    root3_handler.Finish();
+  }
+}
+
+TEST_F(Specifications, BadOffset) {
+  PushLine(0xa0277efd7ce83771ULL, 0x149554a184c730c1ULL, "line-file", 56636272);
+  EXPECT_CALL(reporter_, UnknownSpecification(_, 0x2be953efa6f9a996ULL))
+    .WillOnce(Return());
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xefd7f7752c27b7e4ULL,
+                 dwarf2reader::DW_TAG_subprogram, "", "");
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0x2be953efa6f9a996ULL, "function",
+                0xa0277efd7ce83771ULL, 0x149554a184c730c1ULL);
+  root_handler_.Finish();
+}
+
+TEST_F(Specifications, FunctionDefinitionHasOwnName) {
+  PushLine(0xced50b3eea81022cULL, 0x08dd4d301cc7a7d2ULL, "line-file", 56792403);
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xc34ff4786cae78bdULL,
+                 dwarf2reader::DW_TAG_subprogram, "declaration-name", "");
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0xc34ff4786cae78bdULL, "definition-name",
+                0xced50b3eea81022cULL, 0x08dd4d301cc7a7d2ULL);
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "definition-name",
+               0xced50b3eea81022cULL, 0x08dd4d301cc7a7d2ULL);
+}
+
+TEST_F(Specifications, ClassDefinitionHasOwnName) {
+  PushLine(0x1d0f5e0f6ce309bdULL, 0x654e1852ec3599e7ULL, "line-file", 57119241);
+
+  StartCU();
+  DeclarationDIE(&root_handler_, 0xd0fe467ec2f1a58cULL,
+                 dwarf2reader::DW_TAG_class_type, "class-declaration-name", "");
+
+  dwarf2reader::DIEHandler* class_definition
+    = StartSpecifiedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                        0xd0fe467ec2f1a58cULL, "class-definition-name");
+  ASSERT_TRUE(class_definition);
+  DeclarationDIE(class_definition, 0x6d028229c15623dbULL,
+                 dwarf2reader::DW_TAG_subprogram,
+                 "function-declaration-name", "");
+  class_definition->Finish();
+  delete class_definition;
+
+  DefinitionDIE(&root_handler_, dwarf2reader::DW_TAG_subprogram,
+                0x6d028229c15623dbULL, "function-definition-name",
+                0x1d0f5e0f6ce309bdULL, 0x654e1852ec3599e7ULL);
+
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "class-definition-name::function-definition-name",
+               0x1d0f5e0f6ce309bdULL, 0x654e1852ec3599e7ULL);
+}
+
+// DIEs that cite a specification should prefer the specification's
+// parents over their own when choosing qualified names. In this test,
+// we take the name from our definition but the enclosing scope name
+// from our declaration. I don't see why they'd ever be different, but
+// we want to verify what DwarfCUToModule is looking at.
+TEST_F(Specifications, PreferSpecificationParents) {
+  PushLine(0xbbd9d54dce3b95b7ULL, 0x39188b7b52b0899fULL, "line-file", 79488694);
+
+  StartCU();
+  {
+    dwarf2reader::DIEHandler* declaration_class_handler =
+      StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                    "declaration-class");
+    DeclarationDIE(declaration_class_handler, 0x9ddb35517455ef7aULL,
+                   dwarf2reader::DW_TAG_subprogram, "function-declaration",
+                   "");
+    declaration_class_handler->Finish();
+    delete declaration_class_handler;
+  }
+  {
+    dwarf2reader::DIEHandler* definition_class_handler
+      = StartNamedDIE(&root_handler_, dwarf2reader::DW_TAG_class_type,
+                      "definition-class");
+    DefinitionDIE(definition_class_handler, dwarf2reader::DW_TAG_subprogram,
+                  0x9ddb35517455ef7aULL, "function-definition",
+                  0xbbd9d54dce3b95b7ULL, 0x39188b7b52b0899fULL);
+    definition_class_handler->Finish();
+    delete definition_class_handler;
+  }
+  root_handler_.Finish();
+
+  TestFunctionCount(1);
+  TestFunction(0, "declaration-class::function-definition",
+               0xbbd9d54dce3b95b7ULL, 0x39188b7b52b0899fULL);
+}
+
+class CUErrors: public CUFixtureBase, public Test { };
+
+TEST_F(CUErrors, BadStmtList) {
+  EXPECT_CALL(reporter_, BadLineInfoOffset(dummy_line_size_ + 10)).Times(1);
+
+  ASSERT_TRUE(root_handler_
+              .StartCompilationUnit(0xc591d5b037543d7cULL, 0x11, 0xcd,
+                                    0x2d7d19546cf6590cULL, 3));
+  ASSERT_TRUE(root_handler_.StartRootDIE(0xae789dc102cfca54ULL,
+                                         dwarf2reader::DW_TAG_compile_unit));
+  root_handler_.ProcessAttributeString(dwarf2reader::DW_AT_name,
+                                       dwarf2reader::DW_FORM_strp,
+                                       "compilation-unit-name");
+  root_handler_.ProcessAttributeUnsigned(dwarf2reader::DW_AT_stmt_list,
+                                         dwarf2reader::DW_FORM_ref4,
+                                         dummy_line_size_ + 10);
+  root_handler_.EndAttributes();
+  root_handler_.Finish();
+}
+
+TEST_F(CUErrors, NoLineSection) {
+  EXPECT_CALL(reporter_, MissingSection(".debug_line")).Times(1);
+  PushLine(0x88507fb678052611ULL, 0x42c8e9de6bbaa0faULL, "line-file", 64472290);
+  // Delete the entry for .debug_line added by the fixture class's constructor.
+  file_context_.ClearSectionMapForTest();
+
+  StartCU();
+  root_handler_.Finish();
+}
+
+TEST_F(CUErrors, BadDwarfVersion1) {
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  ASSERT_FALSE(root_handler_
+               .StartCompilationUnit(0xadf6e0eb71e2b0d9ULL, 0x4d, 0x90,
+                                     0xc9de224ccb99ac3eULL, 1));
+}
+
+TEST_F(CUErrors, GoodDwarfVersion2) {
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  ASSERT_TRUE(root_handler_
+               .StartCompilationUnit(0xadf6e0eb71e2b0d9ULL, 0x4d, 0x90,
+                                     0xc9de224ccb99ac3eULL, 2));
+}
+
+TEST_F(CUErrors, GoodDwarfVersion3) {
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  ASSERT_TRUE(root_handler_
+               .StartCompilationUnit(0xadf6e0eb71e2b0d9ULL, 0x4d, 0x90,
+                                     0xc9de224ccb99ac3eULL, 3));
+}
+
+TEST_F(CUErrors, BadCURootDIETag) {
+  // Kludge: satisfy reporter_'s expectation.
+  reporter_.SetCUName("compilation-unit-name");
+
+  ASSERT_TRUE(root_handler_
+               .StartCompilationUnit(0xadf6e0eb71e2b0d9ULL, 0x4d, 0x90,
+                                     0xc9de224ccb99ac3eULL, 3));
+
+  ASSERT_FALSE(root_handler_.StartRootDIE(0x02e56bfbda9e7337ULL,
+                                          dwarf2reader::DW_TAG_subprogram));
+}
+
+// Tests for DwarfCUToModule::Reporter. These just produce (or fail to
+// produce) output, so their results need to be checked by hand.
+struct Reporter: public Test {
+  Reporter()
+      : reporter("filename", 0x123456789abcdef0ULL),
+        function("function name", 0x19c45c30770c1eb0ULL),
+        file("source file name") {
+    reporter.SetCUName("compilation-unit-name");
+
+    Module::Range range(0x19c45c30770c1eb0ULL, 0x89808a5bdfa0a6a3ULL);
+    function.ranges.push_back(range);
+    function.parameter_size = 0x6a329f18683dcd51ULL;
+
+    line.address = 0x3606ac6267aebeccULL;
+    line.size = 0x5de482229f32556aULL;
+    line.file = &file;
+    line.number = 93400201;
+  }
+
+  DwarfCUToModule::WarningReporter reporter;
+  Module::Function function;
+  Module::File file;
+  Module::Line line;
+};
+
+TEST_F(Reporter, UnknownSpecification) {
+  reporter.UnknownSpecification(0x123456789abcdef1ULL, 0x323456789abcdef2ULL);
+}
+
+TEST_F(Reporter, UnknownAbstractOrigin) {
+  reporter.UnknownAbstractOrigin(0x123456789abcdef1ULL, 0x323456789abcdef2ULL);
+}
+
+TEST_F(Reporter, MissingSection) {
+  reporter.MissingSection("section name");
+}
+
+TEST_F(Reporter, BadLineInfoOffset) {
+  reporter.BadLineInfoOffset(0x123456789abcdef1ULL);
+}
+
+TEST_F(Reporter, UncoveredFunctionDisabled) {
+  reporter.UncoveredFunction(function);
+  EXPECT_FALSE(reporter.uncovered_warnings_enabled());
+}
+
+TEST_F(Reporter, UncoveredFunctionEnabled) {
+  reporter.set_uncovered_warnings_enabled(true);
+  reporter.UncoveredFunction(function);
+  EXPECT_TRUE(reporter.uncovered_warnings_enabled());
+}
+
+TEST_F(Reporter, UncoveredLineDisabled) {
+  reporter.UncoveredLine(line);
+  EXPECT_FALSE(reporter.uncovered_warnings_enabled());
+}
+
+TEST_F(Reporter, UncoveredLineEnabled) {
+  reporter.set_uncovered_warnings_enabled(true);
+  reporter.UncoveredLine(line);
+  EXPECT_TRUE(reporter.uncovered_warnings_enabled());
+}
+
+TEST_F(Reporter, UnnamedFunction) {
+  reporter.UnnamedFunction(0x90c0baff9dedb2d9ULL);
+}
+
+// Would be nice to also test:
+// - overlapping lines, functions
diff --git a/src/common/dwarf_line_to_module.cc b/src/common/dwarf_line_to_module.cc
new file mode 100644
index 0000000..fe808c0
--- /dev/null
+++ b/src/common/dwarf_line_to_module.cc
@@ -0,0 +1,143 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf_line_to_module.cc: Implementation of DwarfLineToModule class.
+// See dwarf_line_to_module.h for details. 
+
+#include <stdio.h>
+
+#include <string>
+
+#include "common/dwarf_line_to_module.h"
+#include "common/using_std_string.h"
+
+// Trying to support Windows paths in a reasonable way adds a lot of
+// variations to test; it would be better to just put off dealing with
+// it until we actually have to deal with DWARF on Windows.
+
+// Return true if PATH is an absolute path, false if it is relative.
+static bool PathIsAbsolute(const string& path) {
+  return (path.size() >= 1 && path[0] == '/');
+}
+
+static bool HasTrailingSlash(const string& path) {
+  return (path.size() >= 1 && path[path.size() - 1] == '/');
+}
+
+// If PATH is an absolute path, return PATH.  If PATH is a relative path,
+// treat it as relative to BASE and return the combined path.
+static string ExpandPath(const string& path,
+                         const string& base) {
+  if (PathIsAbsolute(path) || base.empty())
+    return path;
+  return base + (HasTrailingSlash(base) ? "" : "/") + path;
+}
+
+namespace google_breakpad {
+
+void DwarfLineToModule::DefineDir(const string& name, uint32_t dir_num) {
+  // Directory number zero is reserved to mean the compilation
+  // directory. Silently ignore attempts to redefine it.
+  if (dir_num != 0)
+    directories_[dir_num] = ExpandPath(name, compilation_dir_);
+}
+
+void DwarfLineToModule::DefineFile(const string& name, int32_t file_num,
+                                   uint32_t dir_num, uint64_t mod_time,
+                                   uint64_t length) {
+  if (file_num == -1)
+    file_num = ++highest_file_number_;
+  else if (file_num > highest_file_number_)
+    highest_file_number_ = file_num;
+
+  string dir_name;
+  if (dir_num == 0) {
+    // Directory number zero is the compilation directory, and is stored as
+    // an attribute on the compilation unit, rather than in the program table.
+    dir_name = compilation_dir_;
+  } else {
+    DirectoryTable::const_iterator directory_it = directories_.find(dir_num);
+    if (directory_it != directories_.end()) {
+      dir_name = directory_it->second;
+    } else {
+      if (!warned_bad_directory_number_) {
+        fprintf(stderr, "warning: DWARF line number data refers to undefined"
+                " directory numbers\n");
+        warned_bad_directory_number_ = true;
+      }
+    }
+  }
+
+  string full_name = ExpandPath(name, dir_name);
+
+  // Find a Module::File object of the given name, and add it to the
+  // file table.
+  files_[file_num] = module_->FindFile(full_name);
+}
+
+void DwarfLineToModule::AddLine(uint64_t address, uint64_t length,
+                                uint32_t file_num, uint32_t line_num,
+                                uint32_t column_num) {
+  if (length == 0)
+    return;
+
+  // Clip lines not to extend beyond the end of the address space.
+  if (address + length < address)
+    length = -address;
+
+  // Should we omit this line? (See the comments for omitted_line_end_.)
+  if (address == 0 || address == omitted_line_end_) {
+    omitted_line_end_ = address + length;
+    return;
+  } else {
+    omitted_line_end_ = 0;
+  }
+
+  // Find the source file being referred to.
+  Module::File *file = files_[file_num];
+  if (!file) {
+    if (!warned_bad_file_number_) {
+      fprintf(stderr, "warning: DWARF line number data refers to "
+              "undefined file numbers\n");
+      warned_bad_file_number_ = true;
+    }
+    return;
+  }
+  Module::Line line;
+  line.address = address;
+  // We set the size when we get the next line or the EndSequence call.
+  line.size = length;
+  line.file = file;
+  line.number = line_num;
+  lines_->push_back(line);
+}
+
+} // namespace google_breakpad
diff --git a/src/common/dwarf_line_to_module.h b/src/common/dwarf_line_to_module.h
new file mode 100644
index 0000000..f80f1b0
--- /dev/null
+++ b/src/common/dwarf_line_to_module.h
@@ -0,0 +1,188 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// The DwarfLineToModule class accepts line number information from a
+// DWARF parser and adds it to a google_breakpad::Module. The Module
+// can write that data out as a Breakpad symbol file.
+
+#ifndef COMMON_LINUX_DWARF_LINE_TO_MODULE_H
+#define COMMON_LINUX_DWARF_LINE_TO_MODULE_H
+
+#include <string>
+
+#include "common/module.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// A class for producing a vector of google_breakpad::Module::Line
+// instances from parsed DWARF line number data.  
+//
+// An instance of this class can be provided as a handler to a
+// dwarf2reader::LineInfo DWARF line number information parser. The
+// handler accepts source location information from the parser and
+// uses it to produce a vector of google_breakpad::Module::Line
+// objects, referring to google_breakpad::Module::File objects added
+// to a particular google_breakpad::Module.
+//
+// GNU toolchain omitted sections support:
+// ======================================
+//
+// Given the right options, the GNU toolchain will omit unreferenced
+// functions from the final executable. Unfortunately, when it does so, it
+// does not remove the associated portions of the DWARF line number
+// program; instead, it gives the DW_LNE_set_address instructions referring
+// to the now-deleted code addresses of zero. Given this input, the DWARF
+// line parser will call AddLine with a series of lines starting at address
+// zero. For example, here is the output from 'readelf -wl' for a program
+// with four functions, the first three of which have been omitted:
+//
+//   Line Number Statements:
+//    Extended opcode 2: set Address to 0x0
+//    Advance Line by 14 to 15
+//    Copy
+//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 16
+//    Special opcode 119: advance Address by 8 to 0xb and Line by 2 to 18
+//    Advance PC by 2 to 0xd
+//    Extended opcode 1: End of Sequence
+// 
+//    Extended opcode 2: set Address to 0x0
+//    Advance Line by 14 to 15
+//    Copy
+//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 16
+//    Special opcode 119: advance Address by 8 to 0xb and Line by 2 to 18
+//    Advance PC by 2 to 0xd
+//    Extended opcode 1: End of Sequence
+// 
+//    Extended opcode 2: set Address to 0x0
+//    Advance Line by 19 to 20
+//    Copy
+//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 21
+//    Special opcode 76: advance Address by 5 to 0x8 and Line by 1 to 22
+//    Advance PC by 2 to 0xa
+//    Extended opcode 1: End of Sequence
+// 
+//    Extended opcode 2: set Address to 0x80483a4
+//    Advance Line by 23 to 24
+//    Copy
+//    Special opcode 202: advance Address by 14 to 0x80483b2 and Line by 1 to 25
+//    Special opcode 76: advance Address by 5 to 0x80483b7 and Line by 1 to 26
+//    Advance PC by 6 to 0x80483bd
+//    Extended opcode 1: End of Sequence
+//
+// Instead of collecting runs of lines describing code that is not there,
+// we try to recognize and drop them. Since the linker doesn't explicitly
+// distinguish references to dropped sections from genuine references to
+// code at address zero, we must use a heuristic. We have chosen:
+//
+// - If a line starts at address zero, omit it. (On the platforms
+//   breakpad targets, it is extremely unlikely that there will be code
+//   at address zero.)
+//
+// - If a line starts immediately after an omitted line, omit it too.
+class DwarfLineToModule: public dwarf2reader::LineInfoHandler {
+ public:
+  // As the DWARF line info parser passes us line records, add source
+  // files to MODULE, and add all lines to the end of LINES. LINES
+  // need not be empty. If the parser hands us a zero-length line, we
+  // omit it. If the parser hands us a line that extends beyond the
+  // end of the address space, we clip it. It's up to our client to
+  // sort out which lines belong to which functions; we don't add them
+  // to any particular function in MODULE ourselves.
+  DwarfLineToModule(Module *module, const string& compilation_dir,
+                    vector<Module::Line>* lines)
+      : module_(module),
+        compilation_dir_(compilation_dir),
+        lines_(lines),
+        highest_file_number_(-1),
+        omitted_line_end_(0),
+        warned_bad_file_number_(false),
+        warned_bad_directory_number_(false) { }
+  
+  ~DwarfLineToModule() { }
+
+  void DefineDir(const string& name, uint32_t dir_num);
+  void DefineFile(const string& name, int32_t file_num,
+                  uint32_t dir_num, uint64_t mod_time,
+                  uint64_t length);
+  void AddLine(uint64_t address, uint64_t length,
+               uint32_t file_num, uint32_t line_num, uint32_t column_num);
+
+ private:
+
+  typedef std::map<uint32_t, string> DirectoryTable;
+  typedef std::map<uint32_t, Module::File*> FileTable;
+
+  // The module we're contributing debugging info to. Owned by our
+  // client.
+  Module *module_;
+
+  // The compilation directory for the current compilation unit whose
+  // lines are being accumulated.
+  string compilation_dir_;
+
+  // The vector of lines we're accumulating. Owned by our client.
+  //
+  // In a Module, as in a breakpad symbol file, lines belong to
+  // specific functions, but DWARF simply assigns lines to addresses;
+  // one must infer the line/function relationship using the
+  // functions' beginning and ending addresses. So we can't add these
+  // to the appropriate function from module_ until we've read the
+  // function info as well. Instead, we accumulate lines here, and let
+  // whoever constructed this sort it all out.
+  vector<Module::Line>* lines_;
+
+  // A table mapping directory numbers to paths.
+  DirectoryTable directories_;
+
+  // A table mapping file numbers to Module::File pointers.
+  FileTable files_;
+
+  // The highest file number we've seen so far, or -1 if we've seen
+  // none.  Used for dynamically defined file numbers.
+  int32_t highest_file_number_;
+  
+  // This is the ending address of the last line we omitted, or zero if we
+  // didn't omit the previous line. It is zero before we have received any
+  // AddLine calls.
+  uint64_t omitted_line_end_;
+
+  // True if we've warned about:
+  bool warned_bad_file_number_; // bad file numbers
+  bool warned_bad_directory_number_; // bad directory numbers
+};
+
+} // namespace google_breakpad
+
+#endif // COMMON_LINUX_DWARF_LINE_TO_MODULE_H
diff --git a/src/common/dwarf_line_to_module_unittest.cc b/src/common/dwarf_line_to_module_unittest.cc
new file mode 100644
index 0000000..90b6570
--- /dev/null
+++ b/src/common/dwarf_line_to_module_unittest.cc
@@ -0,0 +1,391 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dwarf_line_to_module.cc: Unit tests for google_breakpad::DwarfLineToModule.
+
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/dwarf_line_to_module.h"
+
+using std::vector;
+
+using google_breakpad::DwarfLineToModule;
+using google_breakpad::Module;
+using google_breakpad::Module;
+
+TEST(SimpleModule, One) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("file1", 0x30bf0f27, 0, 0, 0);
+  h.AddLine(0x6fd126fbf74f2680LL, 0x63c9a14cf556712bLL, 0x30bf0f27,
+            0x4c090cbf, 0x1cf9fe0d);
+
+  vector<Module::File*> files;
+  m.GetFiles(&files);
+  EXPECT_EQ(1U, files.size());
+  EXPECT_STREQ("/file1", files[0]->name.c_str());
+
+  EXPECT_EQ(1U, lines.size());
+  EXPECT_EQ(0x6fd126fbf74f2680ULL, lines[0].address);
+  EXPECT_EQ(0x63c9a14cf556712bULL, lines[0].size);
+  EXPECT_TRUE(lines[0].file == files[0]);
+  EXPECT_EQ(0x4c090cbf, lines[0].number);
+}
+
+TEST(SimpleModule, Many) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory1", 0x838299ab);
+  h.DefineDir("directory2", 0xf85de023);
+  h.DefineFile("file1", 0x2b80377a, 0x838299ab, 0, 0);
+  h.DefineFile("file1", 0x63beb4a4, 0xf85de023, 0, 0);
+  h.DefineFile("file2", 0x1d161d56, 0x838299ab, 0, 0);
+  h.DefineFile("file2", 0x1e7a667c, 0xf85de023, 0, 0);
+  h.AddLine(0x69900c5d553b7274ULL, 0x90fded183f0d0d3cULL, 0x2b80377a,
+            0x15b0f0a9U, 0x3ff5abd6U);
+  h.AddLine(0x45811219a39b7101ULL, 0x25a5e6a924afc41fULL, 0x63beb4a4,
+            0x4d259ce9U, 0x41c5ee32U);
+  h.AddLine(0xfa90514c1dc9704bULL, 0x0063efeabc02f313ULL, 0x1d161d56,
+            0x1ee9fa4fU, 0xbf70e46aU);
+  h.AddLine(0x556b55fb6a647b10ULL, 0x3f3089ca2bfd80f5ULL, 0x1e7a667c,
+            0x77fc280eU, 0x2c4a728cU);
+  h.DefineFile("file3", -1, 0, 0, 0);
+  h.AddLine(0xe2d72a37f8d9403aULL, 0x034dfab5b0d4d236ULL, 0x63beb4a5,
+            0x75047044U, 0xb6a0016cU);
+
+  vector<Module::File*> files;
+  m.GetFiles(&files);
+  ASSERT_EQ(5U, files.size());
+  EXPECT_STREQ("/directory1/file1", files[0]->name.c_str());
+  EXPECT_STREQ("/directory1/file2", files[1]->name.c_str());
+  EXPECT_STREQ("/directory2/file1", files[2]->name.c_str());
+  EXPECT_STREQ("/directory2/file2", files[3]->name.c_str());
+  EXPECT_STREQ("/file3",            files[4]->name.c_str());
+
+  ASSERT_EQ(5U, lines.size());
+
+  EXPECT_EQ(0x69900c5d553b7274ULL, lines[0].address);
+  EXPECT_EQ(0x90fded183f0d0d3cULL, lines[0].size);
+  EXPECT_TRUE(lines[0].file == files[0]);
+  EXPECT_EQ(0x15b0f0a9, lines[0].number);
+
+  EXPECT_EQ(0x45811219a39b7101ULL, lines[1].address);
+  EXPECT_EQ(0x25a5e6a924afc41fULL, lines[1].size);
+  EXPECT_TRUE(lines[1].file == files[2]);
+  EXPECT_EQ(0x4d259ce9, lines[1].number);
+
+  EXPECT_EQ(0xfa90514c1dc9704bULL, lines[2].address);
+  EXPECT_EQ(0x0063efeabc02f313ULL, lines[2].size);
+  EXPECT_TRUE(lines[2].file == files[1]);
+  EXPECT_EQ(0x1ee9fa4f, lines[2].number);
+
+  EXPECT_EQ(0x556b55fb6a647b10ULL, lines[3].address);
+  EXPECT_EQ(0x3f3089ca2bfd80f5ULL, lines[3].size);
+  EXPECT_TRUE(lines[3].file == files[3]);
+  EXPECT_EQ(0x77fc280e, lines[3].number);
+
+  EXPECT_EQ(0xe2d72a37f8d9403aULL, lines[4].address);
+  EXPECT_EQ(0x034dfab5b0d4d236ULL, lines[4].size);
+  EXPECT_TRUE(lines[4].file == files[4]);
+  EXPECT_EQ(0x75047044, lines[4].number);
+}
+
+TEST(Filenames, Absolute) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory1", 1);
+  h.DefineFile("/absolute", 1, 1, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  vector<Module::File*> files;
+  m.GetFiles(&files);
+  ASSERT_EQ(1U, files.size());
+  EXPECT_STREQ("/absolute", files[0]->name.c_str());
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_TRUE(lines[0].file == files[0]);
+}
+
+TEST(Filenames, Relative) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory1", 1);
+  h.DefineFile("relative", 1, 1, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  vector<Module::File*> files;
+  m.GetFiles(&files);
+  ASSERT_EQ(1U, files.size());
+  EXPECT_STREQ("/directory1/relative", files[0]->name.c_str());
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_TRUE(lines[0].file == files[0]);
+}
+
+TEST(Filenames, StrangeFile) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory1", 1);
+  h.DefineFile("", 1, 1, 0, 0);
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("/directory1/", lines[0].file->name.c_str());
+}
+
+TEST(Filenames, StrangeDirectory) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("", 1);
+  h.DefineFile("file1", 1, 1, 0, 0);
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("/file1", lines[0].file->name.c_str());
+}
+
+TEST(Filenames, StrangeDirectoryAndFile) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("", 1);
+  h.DefineFile("", 1, 1, 0, 0);
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("/", lines[0].file->name.c_str());
+}
+
+// We should use the compilation directory when encountering a file for
+// directory number zero.
+TEST(Filenames, DirectoryZeroFileIsRelativeToCompilationDir) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "src/build", &lines);
+
+  h.DefineDir("Dir", 1);
+  h.DefineFile("File", 1, 0, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("src/build/File", lines[0].file->name.c_str());
+}
+
+// We should treat non-absolute directories as relative to the compilation
+// directory.
+TEST(Filenames, IncludeDirectoryRelativeToDirectoryZero) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "src/build", &lines);
+
+  h.DefineDir("Dir", 1);
+  h.DefineFile("File", 1, 1, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("src/build/Dir/File", lines[0].file->name.c_str());
+}
+
+// We should treat absolute directories as absolute, and not relative to
+// the compilation dir.
+TEST(Filenames, IncludeDirectoryAbsolute) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "src/build", &lines);
+
+  h.DefineDir("/Dir", 1);
+  h.DefineFile("File", 1, 1, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("/Dir/File", lines[0].file->name.c_str());
+}
+
+// We should silently ignore attempts to define directory number zero,
+// since that is always the compilation directory.
+TEST(ModuleErrors, DirectoryZero) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory0", 0); // should be ignored
+  h.DefineFile("relative", 1, 0, 0, 0);
+
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("/relative", lines[0].file->name.c_str());
+}
+
+// We should refuse to add lines with bogus file numbers. We should
+// produce only one warning, however.
+TEST(ModuleErrors, BadFileNumber) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("relative", 1, 0, 0, 0);
+  h.AddLine(1, 1, 2, 0, 0); // bad file number
+  h.AddLine(2, 1, 2, 0, 0); // bad file number (no duplicate warning)
+
+  EXPECT_EQ(0U, lines.size());
+}
+
+// We should treat files with bogus directory numbers as relative to
+// the compilation unit.
+TEST(ModuleErrors, BadDirectoryNumber) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineDir("directory1", 1);
+  h.DefineFile("baddirnumber1", 1, 2, 0, 0); // bad directory number
+  h.DefineFile("baddirnumber2", 2, 2, 0, 0); // bad dir number (no warning)
+  h.AddLine(1, 1, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_STREQ("baddirnumber1", lines[0].file->name.c_str());
+}
+
+// We promise not to report empty lines.
+TEST(ModuleErrors, EmptyLine) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(1, 0, 1, 0, 0);
+
+  ASSERT_EQ(0U, lines.size());
+}  
+
+// We are supposed to clip lines that extend beyond the end of the
+// address space.
+TEST(ModuleErrors, BigLine) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(0xffffffffffffffffULL, 2, 1, 0, 0);
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_EQ(1U, lines[0].size);
+}  
+
+// The 'Omitted' tests verify that we correctly omit line information
+// for code in sections that the linker has dropped. See "GNU
+// toolchain omitted sections support" at the top of the
+// DwarfLineToModule class.
+
+TEST(Omitted, DroppedThenGood) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(0,  10, 1, 83816211, 0);   // should be omitted
+  h.AddLine(20, 10, 1, 13059195, 0);   // should be recorded
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_EQ(13059195, lines[0].number);
+}
+
+TEST(Omitted, GoodThenDropped) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(0x9dd6a372, 10, 1, 41454594, 0);   // should be recorded
+  h.AddLine(0,  10, 1, 44793413, 0);           // should be omitted
+
+  ASSERT_EQ(1U, lines.size());
+  EXPECT_EQ(41454594, lines[0].number);
+}
+
+TEST(Omitted, Mix1) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(0x679ed72f,  10,   1, 58932642, 0);   // should be recorded
+  h.AddLine(0xdfb5a72d,  10,   1, 39847385, 0);   // should be recorded
+  h.AddLine(0,           0x78, 1, 23053829, 0);   // should be omitted
+  h.AddLine(0x78,        0x6a, 1, 65317783, 0);   // should be omitted
+  h.AddLine(0x78 + 0x6a, 0x2a, 1, 77601423, 0);   // should be omitted
+  h.AddLine(0x9fe0cea5,  10,   1, 91806582, 0);   // should be recorded
+  h.AddLine(0x7e41a109,  10,   1, 56169221, 0);   // should be recorded
+
+  ASSERT_EQ(4U, lines.size());
+  EXPECT_EQ(58932642, lines[0].number);
+  EXPECT_EQ(39847385, lines[1].number);
+  EXPECT_EQ(91806582, lines[2].number);
+  EXPECT_EQ(56169221, lines[3].number);
+}
+
+TEST(Omitted, Mix2) {
+  Module m("name", "os", "architecture", "id");
+  vector<Module::Line> lines;
+  DwarfLineToModule h(&m, "/", &lines);
+
+  h.DefineFile("filename1", 1, 0, 0, 0);
+  h.AddLine(0,           0xf2, 1, 58802211, 0);   // should be omitted
+  h.AddLine(0xf2,        0xb9, 1, 78958222, 0);   // should be omitted
+  h.AddLine(0xf2 + 0xb9, 0xf7, 1, 64861892, 0);   // should be omitted
+  h.AddLine(0x4e4d271e,  9,    1, 67355743, 0);   // should be recorded
+  h.AddLine(0xdfb5a72d,  30,   1, 23365776, 0);   // should be recorded
+  h.AddLine(0,           0x64, 1, 76196762, 0);   // should be omitted
+  h.AddLine(0x64,        0x33, 1, 71066611, 0);   // should be omitted
+  h.AddLine(0x64 + 0x33, 0xe3, 1, 61749337, 0);   // should be omitted
+
+  ASSERT_EQ(2U, lines.size());
+  EXPECT_EQ(67355743, lines[0].number);
+  EXPECT_EQ(23365776, lines[1].number);
+}
diff --git a/src/common/dwarf_range_list_handler.cc b/src/common/dwarf_range_list_handler.cc
new file mode 100644
index 0000000..3fecb56
--- /dev/null
+++ b/src/common/dwarf_range_list_handler.cc
@@ -0,0 +1,56 @@
+// Copyright (c) 2018 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Gabriele Svelto <gsvelto@mozilla.com>
+//                                  <gabriele.svelto@gmail.com>
+
+// dwarf_range_list_handler.cc: Implementation of DwarfRangeListHandler class.
+// See dwarf_range_list_handler.h for details.
+
+#include <algorithm>
+
+#include "common/dwarf_range_list_handler.h"
+
+namespace google_breakpad {
+
+void DwarfRangeListHandler::AddRange(uint64_t begin, uint64_t end) {
+  Module::Range r(begin, end - begin);
+
+  ranges_->push_back(r);
+}
+
+void DwarfRangeListHandler::Finish() {
+  std::sort(ranges_->begin(), ranges_->end(),
+    [](const Module::Range& a, const Module::Range& b) {
+      return a.address < b.address;
+    }
+  );
+}
+
+} // namespace google_breakpad
diff --git a/src/common/dwarf_range_list_handler.h b/src/common/dwarf_range_list_handler.h
new file mode 100644
index 0000000..5db5d1e
--- /dev/null
+++ b/src/common/dwarf_range_list_handler.h
@@ -0,0 +1,72 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2018 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Gabriele Svelto <gsvelto@mozilla.com>
+//                                  <gabriele.svelto@gmail.com>
+
+// The DwarfRangeListHandler class accepts rangelist data from a DWARF parser
+// and adds it to a google_breakpad::Function or other objects supporting
+// ranges.
+
+#ifndef COMMON_LINUX_DWARF_RANGE_LIST_HANDLER_H
+#define COMMON_LINUX_DWARF_RANGE_LIST_HANDLER_H
+
+#include <vector>
+
+#include "common/module.h"
+#include "common/dwarf/dwarf2reader.h"
+
+namespace google_breakpad {
+
+// A class for producing a vector of google_breakpad::Module::Range
+// instances from a parsed DWARF range list.
+
+class DwarfRangeListHandler: public dwarf2reader::RangeListHandler {
+ public:
+  DwarfRangeListHandler(vector<Module::Range>* ranges)
+      : ranges_(ranges) { }
+
+  ~DwarfRangeListHandler() { }
+
+  // Add a range to the list
+  void AddRange(uint64_t begin, uint64_t end);
+
+  // Sort the ranges so that they are in ascending order of starting address
+  void Finish();
+
+ private:
+  // The list of ranges to be populated
+  vector<Module::Range>* ranges_;
+};
+
+} // namespace google_breakpad
+
+#endif // COMMON_LINUX_DWARF_RANGE_LIST_HANDLER_H
diff --git a/src/common/language.cc b/src/common/language.cc
new file mode 100644
index 0000000..381c8bd
--- /dev/null
+++ b/src/common/language.cc
@@ -0,0 +1,219 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// language.cc: Subclasses and singletons for google_breakpad::Language.
+// See language.h for details.
+
+#include "common/language.h"
+
+#include <stdlib.h>
+
+#if !defined(__ANDROID__)
+#include <cxxabi.h>
+#endif
+
+#if defined(HAVE_RUST_DEMANGLE)
+#include <rust_demangle.h>
+#endif
+
+#include <limits>
+
+namespace {
+
+string MakeQualifiedNameWithSeparator(const string& parent_name,
+                                      const char* separator,
+                                      const string& name) {
+  if (parent_name.empty()) {
+    return name;
+  }
+
+  return parent_name + separator + name;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+// C++ language-specific operations.
+class CPPLanguage: public Language {
+ public:
+  CPPLanguage() {}
+
+  string MakeQualifiedName(const string& parent_name,
+                           const string& name) const {
+    return MakeQualifiedNameWithSeparator(parent_name, "::", name);
+  }
+
+  virtual DemangleResult DemangleName(const string& mangled,
+                                      string* demangled) const {
+#if defined(__ANDROID__)
+    // Android NDK doesn't provide abi::__cxa_demangle.
+    demangled->clear();
+    return kDontDemangle;
+#else
+    // Attempting to demangle non-C++ symbols with the C++ demangler would print
+    // warnings and fail, so return kDontDemangle for these.
+    if (!IsMangledName(mangled)) {
+      demangled->clear();
+      return kDontDemangle;
+    }
+
+    int status;
+    char* demangled_c =
+        abi::__cxa_demangle(mangled.c_str(), NULL, NULL, &status);
+
+    DemangleResult result;
+    if (status == 0) {
+      result = kDemangleSuccess;
+      demangled->assign(demangled_c);
+    } else {
+      result = kDemangleFailure;
+      demangled->clear();
+    }
+
+    if (demangled_c) {
+      free(reinterpret_cast<void*>(demangled_c));
+    }
+
+    return result;
+#endif
+  }
+
+ private:
+  static bool IsMangledName(const string& name) {
+    // NOTE: For proper cross-compilation support, this should depend on target
+    // binary's platform, not current build platform.
+#if defined(__APPLE__)
+    // Mac C++ symbols can have up to 4 underscores, followed by a "Z".
+    // Non-C++ symbols are not coded that way, but may have leading underscores.
+    size_t i = name.find_first_not_of('_');
+    return i > 0 && i != string::npos && i <= 4 && name[i] == 'Z';
+#else
+    // Linux C++ symbols always start with "_Z".
+    return name.size() > 2 && name[0] == '_' && name[1] == 'Z';
+#endif
+  }
+};
+
+CPPLanguage CPPLanguageSingleton;
+
+// Java language-specific operations.
+class JavaLanguage: public Language {
+ public:
+  JavaLanguage() {}
+
+  string MakeQualifiedName(const string& parent_name,
+                           const string& name) const {
+    return MakeQualifiedNameWithSeparator(parent_name, ".", name);
+  }
+};
+
+JavaLanguage JavaLanguageSingleton;
+
+// Swift language-specific operations.
+class SwiftLanguage: public Language {
+ public:
+  SwiftLanguage() {}
+
+  string MakeQualifiedName(const string& parent_name,
+                           const string& name) const {
+    return MakeQualifiedNameWithSeparator(parent_name, ".", name);
+  }
+
+  virtual DemangleResult DemangleName(const string& mangled,
+                                      string* demangled) const {
+    // There is no programmatic interface to a Swift demangler. Pass through the
+    // mangled form because it encodes more information than the qualified name
+    // that would have been built by MakeQualifiedName(). The output can be
+    // post-processed by xcrun swift-demangle to transform mangled Swift names
+    // into something more readable.
+    demangled->assign(mangled);
+    return kDemangleSuccess;
+  }
+};
+
+SwiftLanguage SwiftLanguageSingleton;
+
+// Rust language-specific operations.
+class RustLanguage: public Language {
+ public:
+  RustLanguage() {}
+
+  string MakeQualifiedName(const string& parent_name,
+                           const string& name) const {
+    return MakeQualifiedNameWithSeparator(parent_name, ".", name);
+  }
+
+  virtual DemangleResult DemangleName(const string& mangled,
+                                      string* demangled) const {
+    // Rust names use GCC C++ name mangling, but demangling them with
+    // abi_demangle doesn't produce stellar results due to them having
+    // another layer of encoding.
+    // If callers provide rustc-demangle, use that.
+#if defined(HAVE_RUST_DEMANGLE)
+    char* rust_demangled = rust_demangle(mangled.c_str());
+    if (rust_demangled == nullptr) {
+      return kDemangleFailure;
+    }
+    demangled->assign(rust_demangled);
+    free_rust_demangled_name(rust_demangled);
+#else
+    // Otherwise, pass through the mangled name so callers can demangle
+    // after the fact.
+    demangled->assign(mangled);
+#endif
+    return kDemangleSuccess;
+  }
+};
+
+RustLanguage RustLanguageSingleton;
+
+// Assembler language-specific operations.
+class AssemblerLanguage: public Language {
+ public:
+  AssemblerLanguage() {}
+
+  bool HasFunctions() const { return false; }
+  string MakeQualifiedName(const string& parent_name,
+                           const string& name) const {
+    return name;
+  }
+};
+
+AssemblerLanguage AssemblerLanguageSingleton;
+
+const Language * const Language::CPlusPlus = &CPPLanguageSingleton;
+const Language * const Language::Java = &JavaLanguageSingleton;
+const Language * const Language::Swift = &SwiftLanguageSingleton;
+const Language * const Language::Rust = &RustLanguageSingleton;
+const Language * const Language::Assembler = &AssemblerLanguageSingleton;
+
+} // namespace google_breakpad
diff --git a/src/common/language.h b/src/common/language.h
new file mode 100644
index 0000000..892ea86
--- /dev/null
+++ b/src/common/language.h
@@ -0,0 +1,105 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// language.h: Define google_breakpad::Language. Instances of
+// subclasses of this class provide language-appropriate operations
+// for the Breakpad symbol dumper.
+
+#ifndef COMMON_LINUX_LANGUAGE_H__
+#define COMMON_LINUX_LANGUAGE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// An abstract base class for language-specific operations. We choose
+// an instance of a subclass of this when we find the CU's language.
+// This class's definitions are appropriate for CUs with no specified
+// language.
+class Language {
+ public:
+  // A base class destructor should be either public and virtual,
+  // or protected and nonvirtual.
+  virtual ~Language() {}
+
+  // Return true if this language has functions to which we can assign
+  // line numbers. (Debugging info for assembly language, for example,
+  // can have source location information, but does not have functions
+  // recorded using DW_TAG_subprogram DIEs.)
+  virtual bool HasFunctions() const { return true; }
+
+  // Construct a fully-qualified, language-appropriate form of NAME,
+  // given that PARENT_NAME is the name of the construct enclosing
+  // NAME. If PARENT_NAME is the empty string, then NAME is a
+  // top-level name.
+  //
+  // This API sort of assumes that a fully-qualified name is always
+  // some simple textual composition of the unqualified name and its
+  // parent's name, and that we don't need to know anything else about
+  // the parent or the child (say, their DIEs' tags) to do the job.
+  // This is true for the languages we support at the moment, and
+  // keeps things concrete. Perhaps a more refined operation would
+  // take into account the parent and child DIE types, allow languages
+  // to use their own data type for complex parent names, etc. But if
+  // C++ doesn't need all that, who would?
+  virtual string MakeQualifiedName (const string& parent_name,
+                                    const string& name) const = 0;
+
+  enum DemangleResult {
+    // Demangling was not performed because it’s not appropriate to attempt.
+    kDontDemangle = -1,
+
+    kDemangleSuccess,
+    kDemangleFailure,
+  };
+
+  // Wraps abi::__cxa_demangle() or similar for languages where appropriate.
+  virtual DemangleResult DemangleName(const string& mangled,
+                                      string* demangled) const {
+    demangled->clear();
+    return kDontDemangle;
+  }
+
+  // Instances for specific languages.
+  static const Language * const CPlusPlus,
+                        * const Java,
+                        * const Swift,
+                        * const Rust,
+                        * const Assembler;
+};
+
+} // namespace google_breakpad
+
+#endif  // COMMON_LINUX_LANGUAGE_H__
diff --git a/src/common/linux/breakpad_getcontext.S b/src/common/linux/breakpad_getcontext.S
new file mode 100644
index 0000000..528dba7
--- /dev/null
+++ b/src/common/linux/breakpad_getcontext.S
@@ -0,0 +1,486 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// A minimalistic implementation of getcontext() to be used by
+// Google Breakpad when getcontext() is not available in libc.
+
+#include "common/linux/ucontext_constants.h"
+
+/* int getcontext (ucontext_t* ucp) */
+
+#if defined(__arm__)
+
+  .text
+  .global breakpad_getcontext
+  .hidden breakpad_getcontext
+  .type breakpad_getcontext, #function
+  .align 0
+  .fnstart
+breakpad_getcontext:
+
+  /* First, save r4-r11 */
+  add   r1, r0, #(MCONTEXT_GREGS_OFFSET + 4*4)
+  stm   r1, {r4-r11}
+
+  /* r12 is a scratch register, don't save it */
+
+  /* Save sp and lr explicitly. */
+  /* - sp can't be stored with stmia in Thumb-2 */
+  /* - STM instructions that store sp and pc are deprecated in ARM */
+  str   sp, [r0, #(MCONTEXT_GREGS_OFFSET + 13*4)]
+  str   lr, [r0, #(MCONTEXT_GREGS_OFFSET + 14*4)]
+
+  /* Save the caller's address in 'pc' */
+  str   lr, [r0, #(MCONTEXT_GREGS_OFFSET + 15*4)]
+
+  /* Save ucontext_t* pointer across next call */
+  mov   r4, r0
+
+  /* Call sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
+  mov   r0, #0  /* SIG_BLOCK */
+  mov   r1, #0  /* NULL */
+  add   r2, r4, #UCONTEXT_SIGMASK_OFFSET
+  bl    sigprocmask(PLT)
+
+  /* Intentionally do not save the FPU state here. This is because on
+   * Linux/ARM, one should instead use ptrace(PTRACE_GETFPREGS) or
+   * ptrace(PTRACE_GETVFPREGS) to get it.
+   *
+   * Note that a real implementation of getcontext() would need to save
+   * this here to allow setcontext()/swapcontext() to work correctly.
+   */
+
+  /* Restore the values of r4 and lr */
+  mov   r0, r4
+  ldr   lr, [r0, #(MCONTEXT_GREGS_OFFSET + 14*4)]
+  ldr   r4, [r0, #(MCONTEXT_GREGS_OFFSET +  4*4)]
+
+  /* Return 0 */
+  mov   r0, #0
+  bx    lr
+
+  .fnend
+  .size breakpad_getcontext, . - breakpad_getcontext
+
+#elif defined(__aarch64__)
+
+#define  _NSIG                       64
+#define  __NR_rt_sigprocmask         135
+
+  .text
+  .global breakpad_getcontext
+  .hidden breakpad_getcontext
+  .type breakpad_getcontext, #function
+  .align 4
+  .cfi_startproc
+breakpad_getcontext:
+
+  /* The saved context will return to the getcontext() call point
+     with a return value of 0 */
+  str     xzr,      [x0, MCONTEXT_GREGS_OFFSET +  0 * REGISTER_SIZE]
+
+  stp     x18, x19, [x0, MCONTEXT_GREGS_OFFSET + 18 * REGISTER_SIZE]
+  stp     x20, x21, [x0, MCONTEXT_GREGS_OFFSET + 20 * REGISTER_SIZE]
+  stp     x22, x23, [x0, MCONTEXT_GREGS_OFFSET + 22 * REGISTER_SIZE]
+  stp     x24, x25, [x0, MCONTEXT_GREGS_OFFSET + 24 * REGISTER_SIZE]
+  stp     x26, x27, [x0, MCONTEXT_GREGS_OFFSET + 26 * REGISTER_SIZE]
+  stp     x28, x29, [x0, MCONTEXT_GREGS_OFFSET + 28 * REGISTER_SIZE]
+  str     x30,      [x0, MCONTEXT_GREGS_OFFSET + 30 * REGISTER_SIZE]
+
+  /* Place LR into the saved PC, this will ensure that when
+     switching to this saved context with setcontext() control
+     will pass back to the caller of getcontext(), we have
+     already arranged to return the appropriate return value in x0
+     above.  */
+  str     x30, [x0, MCONTEXT_PC_OFFSET]
+
+  /* Save the current SP */
+  mov     x2, sp
+  str     x2, [x0, MCONTEXT_SP_OFFSET]
+
+  /* Initialize the pstate.  */
+  str     xzr, [x0, MCONTEXT_PSTATE_OFFSET]
+
+  /* Figure out where to place the first context extension
+     block.  */
+  add     x2, x0, #MCONTEXT_EXTENSION_OFFSET
+
+  /* Write the context extension fpsimd header.  */
+  mov     w3, #(FPSIMD_MAGIC & 0xffff)
+  movk    w3, #(FPSIMD_MAGIC >> 16), lsl #16
+  str     w3, [x2, #FPSIMD_CONTEXT_MAGIC_OFFSET]
+  mov     w3, #FPSIMD_CONTEXT_SIZE
+  str     w3, [x2, #FPSIMD_CONTEXT_SIZE_OFFSET]
+
+  /* Fill in the FP SIMD context.  */
+  add     x3, x2, #(FPSIMD_CONTEXT_VREGS_OFFSET + 8 * SIMD_REGISTER_SIZE)
+  stp     d8,  d9, [x3], #(2 * SIMD_REGISTER_SIZE)
+  stp     d10, d11, [x3], #(2 * SIMD_REGISTER_SIZE)
+  stp     d12, d13, [x3], #(2 * SIMD_REGISTER_SIZE)
+  stp     d14, d15, [x3], #(2 * SIMD_REGISTER_SIZE)
+
+  add     x3, x2, FPSIMD_CONTEXT_FPSR_OFFSET
+
+  mrs     x4, fpsr
+  str     w4, [x3]
+
+  mrs     x4, fpcr
+  str     w4, [x3, FPSIMD_CONTEXT_FPCR_OFFSET - FPSIMD_CONTEXT_FPSR_OFFSET]
+
+  /* Write the termination context extension header.  */
+  add     x2, x2, #FPSIMD_CONTEXT_SIZE
+
+  str     xzr, [x2, #FPSIMD_CONTEXT_MAGIC_OFFSET]
+  str     xzr, [x2, #FPSIMD_CONTEXT_SIZE_OFFSET]
+
+  /* Grab the signal mask */
+  /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+  add     x2, x0, #UCONTEXT_SIGMASK_OFFSET
+  mov     x0, #0  /* SIG_BLOCK */
+  mov     x1, #0  /* NULL */
+  mov     x3, #(_NSIG / 8)
+  mov     x8, #__NR_rt_sigprocmask
+  svc     0
+
+  /* Return x0 for success */
+  mov     x0, 0
+  ret
+
+  .cfi_endproc
+  .size breakpad_getcontext, . - breakpad_getcontext
+
+#elif defined(__i386__)
+
+  .text
+  .global breakpad_getcontext
+  .hidden breakpad_getcontext
+  .align 4
+  .type breakpad_getcontext, @function
+
+breakpad_getcontext:
+
+  movl 4(%esp), %eax   /* eax = uc */
+
+  /* Save register values */
+  movl %ecx, MCONTEXT_ECX_OFFSET(%eax)
+  movl %edx, MCONTEXT_EDX_OFFSET(%eax)
+  movl %ebx, MCONTEXT_EBX_OFFSET(%eax)
+  movl %edi, MCONTEXT_EDI_OFFSET(%eax)
+  movl %esi, MCONTEXT_ESI_OFFSET(%eax)
+  movl %ebp, MCONTEXT_EBP_OFFSET(%eax)
+
+  movl (%esp), %edx   /* return address */
+  lea  4(%esp), %ecx  /* exclude return address from stack */
+  mov  %edx, MCONTEXT_EIP_OFFSET(%eax)
+  mov  %ecx, MCONTEXT_ESP_OFFSET(%eax)
+
+  xorl %ecx, %ecx
+  movw %fs, %cx
+  mov  %ecx, MCONTEXT_FS_OFFSET(%eax)
+
+  movl $0, MCONTEXT_EAX_OFFSET(%eax)
+
+  /* Save floating point state to fpregstate, then update
+   * the fpregs pointer to point to it */
+  leal UCONTEXT_FPREGS_MEM_OFFSET(%eax), %ecx
+  fnstenv (%ecx)
+  fldenv  (%ecx)
+  mov %ecx, UCONTEXT_FPREGS_OFFSET(%eax)
+
+  /* Save signal mask: sigprocmask(SIGBLOCK, NULL, &uc->uc_sigmask) */
+  leal UCONTEXT_SIGMASK_OFFSET(%eax), %edx
+  xorl %ecx, %ecx
+  push %edx   /* &uc->uc_sigmask */
+  push %ecx   /* NULL */
+  push %ecx   /* SIGBLOCK == 0 on i386 */
+  call sigprocmask@PLT
+  addl $12, %esp
+
+  movl $0, %eax
+  ret
+
+  .size breakpad_getcontext, . - breakpad_getcontext
+
+#elif defined(__mips__)
+
+// This implementation is inspired by implementation of getcontext in glibc.
+#include <asm-mips/asm.h>
+#include <asm-mips/regdef.h>
+#if _MIPS_SIM == _ABIO32
+#include <asm-mips/fpregdef.h>
+#endif
+
+// from asm-mips/asm.h
+#if _MIPS_SIM == _ABIO32
+#define ALSZ 7
+#define ALMASK ~7
+#define SZREG 4
+#else // _MIPS_SIM != _ABIO32
+#define ALSZ 15
+#define ALMASK ~15
+#define SZREG 8
+#endif
+
+#include <asm/unistd.h> // for __NR_rt_sigprocmask
+
+#define _NSIG8 128 / 8
+#define SIG_BLOCK 1
+
+
+  .text
+LOCALS_NUM = 1 // save gp on stack
+FRAME_SIZE = ((LOCALS_NUM * SZREG) + ALSZ) & ALMASK
+
+GP_FRAME_OFFSET = FRAME_SIZE - (1 * SZREG)
+MCONTEXT_REG_SIZE = 8
+
+#if _MIPS_SIM == _ABIO32
+
+NESTED (breakpad_getcontext, FRAME_SIZE, ra)
+  .mask	0x00000000, 0
+  .fmask 0x00000000, 0
+
+  .set noreorder
+  .cpload t9
+  .set reorder
+
+  move a2, sp
+#define _SP a2
+
+  addiu sp, -FRAME_SIZE
+  .cprestore GP_FRAME_OFFSET
+
+  sw s0, (16 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s1, (17 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s2, (18 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s3, (19 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s4, (20 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s5, (21 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s6, (22 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw s7, (23 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw _SP, (29 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw fp, (30 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw ra, (31 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sw ra, MCONTEXT_PC_OFFSET(a0)
+
+#ifdef __mips_hard_float
+  s.d fs0, (20 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d fs1, (22 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d fs2, (24 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d fs3, (26 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d fs4, (28 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d fs5, (30 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+
+  cfc1 v1, fcr31
+  sw v1, MCONTEXT_FPC_CSR(a0)
+#endif  // __mips_hard_float
+
+  /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+  li a3, _NSIG8
+  addu a2, a0, UCONTEXT_SIGMASK_OFFSET
+  move a1, zero
+  li a0, SIG_BLOCK
+  li v0, __NR_rt_sigprocmask
+  syscall
+
+  addiu sp, FRAME_SIZE
+  jr ra
+
+END (breakpad_getcontext)
+#else
+
+#ifndef NESTED
+/*
+ * NESTED - declare nested routine entry point
+ */
+#define NESTED(symbol, framesize, rpc)  \
+    .globl  symbol;                     \
+    .align  2;                          \
+    .type symbol,@function;             \
+    .ent  symbol,0;                     \
+symbol:   .frame  sp, framesize, rpc;
+#endif
+
+/*
+ * END - mark end of function
+ */
+#ifndef END
+# define END(function)                  \
+    .end  function;                     \
+    .size function,.-function
+#endif
+
+/* int getcontext (ucontext_t* ucp) */
+
+NESTED (breakpad_getcontext, FRAME_SIZE, ra)
+  .mask   0x10000000, 0
+  .fmask  0x00000000, 0
+
+  move  a2, sp
+#define _SP a2
+  move  a3, gp
+#define _GP a3
+
+  daddiu sp, -FRAME_SIZE
+  .cpsetup $25, GP_FRAME_OFFSET, breakpad_getcontext
+
+  /* Store a magic flag.  */
+  li  v1, 1
+  sd v1, (0 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)  /* zero */
+
+  sd s0, (16 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s1, (17 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s2, (18 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s3, (19 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s4, (20 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s5, (21 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s6, (22 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s7, (23 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd _GP, (28 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd _SP, (29 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd s8, (30 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd ra, (31 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0)
+  sd ra, MCONTEXT_PC_OFFSET(a0)
+
+#ifdef __mips_hard_float
+  s.d $f24, (24 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f25, (25 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f26, (26 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f27, (27 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f28, (28 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f29, (29 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f30, (30 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+  s.d $f31, (31 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0)
+
+  cfc1  v1, $31
+  sw  v1, MCONTEXT_FPC_CSR(a0)
+#endif /* __mips_hard_float */
+
+/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+  li  a3, _NSIG8
+  daddu a2, a0, UCONTEXT_SIGMASK_OFFSET
+  move  a1, zero
+  li  a0, SIG_BLOCK
+
+  li  v0, __NR_rt_sigprocmask
+  syscall
+
+  .cpreturn
+  daddiu sp, FRAME_SIZE
+  move  v0, zero
+  jr  ra
+
+END (breakpad_getcontext)
+#endif // _MIPS_SIM == _ABIO32
+
+#elif defined(__x86_64__)
+/* The x64 implementation of breakpad_getcontext was derived in part
+   from the implementation of libunwind which requires the following
+   notice. */
+/* libunwind - a platform-independent unwind library
+   Copyright (C) 2008 Google, Inc
+	Contributed by Paul Pluzhnikov <ppluzhnikov@google.com>
+   Copyright (C) 2010 Konstantin Belousov <kib@freebsd.org>
+
+This file is part of libunwind.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
+
+  .text
+  .global breakpad_getcontext
+  .hidden breakpad_getcontext
+  .align 4
+  .type breakpad_getcontext, @function
+
+breakpad_getcontext:
+  .cfi_startproc
+
+  /* Callee saved: RBX, RBP, R12-R15  */
+  movq %r12, MCONTEXT_GREGS_R12(%rdi)
+  movq %r13, MCONTEXT_GREGS_R13(%rdi)
+  movq %r14, MCONTEXT_GREGS_R14(%rdi)
+  movq %r15, MCONTEXT_GREGS_R15(%rdi)
+  movq %rbp, MCONTEXT_GREGS_RBP(%rdi)
+  movq %rbx, MCONTEXT_GREGS_RBX(%rdi)
+
+  /* Save argument registers (not strictly needed, but setcontext
+     restores them, so don't restore garbage).  */
+  movq %r8,  MCONTEXT_GREGS_R8(%rdi)
+  movq %r9,  MCONTEXT_GREGS_R9(%rdi)
+  movq %rdi, MCONTEXT_GREGS_RDI(%rdi)
+  movq %rsi, MCONTEXT_GREGS_RSI(%rdi)
+  movq %rdx, MCONTEXT_GREGS_RDX(%rdi)
+  movq %rax, MCONTEXT_GREGS_RAX(%rdi)
+  movq %rcx, MCONTEXT_GREGS_RCX(%rdi)
+
+  /* Save fp state (not needed, except for setcontext not
+     restoring garbage).  */
+  leaq MCONTEXT_FPREGS_MEM(%rdi),%r8
+  movq %r8, MCONTEXT_FPREGS_PTR(%rdi)
+  fnstenv (%r8)
+  stmxcsr FPREGS_OFFSET_MXCSR(%r8)
+
+  leaq 8(%rsp), %rax /* exclude this call.  */
+  movq %rax, MCONTEXT_GREGS_RSP(%rdi)
+
+  movq 0(%rsp), %rax
+  movq %rax, MCONTEXT_GREGS_RIP(%rdi)
+
+  /* Save signal mask: sigprocmask(SIGBLOCK, NULL, &uc->uc_sigmask) */
+  leaq UCONTEXT_SIGMASK_OFFSET(%rdi), %rdx  // arg3
+  xorq %rsi, %rsi  // arg2 NULL
+  xorq %rdi, %rdi  // arg1 SIGBLOCK == 0
+  call sigprocmask@PLT
+
+  /* Always return 0 for success, even if sigprocmask failed. */
+  xorl %eax, %eax
+  ret
+  .cfi_endproc
+  .size breakpad_getcontext, . - breakpad_getcontext
+
+#else
+#error "This file has not been ported for your CPU!"
+#endif
diff --git a/src/common/linux/breakpad_getcontext.h b/src/common/linux/breakpad_getcontext.h
new file mode 100644
index 0000000..1418cde
--- /dev/null
+++ b/src/common/linux/breakpad_getcontext.h
@@ -0,0 +1,56 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_LINUX_INCLUDE_UCONTEXT_H
+#define GOOGLE_BREAKPAD_COMMON_LINUX_INCLUDE_UCONTEXT_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifndef HAVE_GETCONTEXT
+
+#include <signal.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+// Provided by src/common/linux/breakpad_getcontext.S
+int breakpad_getcontext(ucontext_t* ucp);
+
+#define getcontext(x)   breakpad_getcontext(x)
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // HAVE_GETCONTEXT
+
+#endif  // GOOGLE_BREAKPAD_COMMON_LINUX_INCLUDE_UCONTEXT_H
diff --git a/src/common/linux/breakpad_getcontext_unittest.cc b/src/common/linux/breakpad_getcontext_unittest.cc
new file mode 100644
index 0000000..a57bfed
--- /dev/null
+++ b/src/common/linux/breakpad_getcontext_unittest.cc
@@ -0,0 +1,194 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// asm/sigcontext.h can't be included with signal.h on glibc or
+// musl, so only compare _libc_fpstate and _fpstate on Android.
+#if defined(__ANDROID__) && defined(__x86_64__)
+#include <asm/sigcontext.h>
+#endif
+
+#include <sys/ucontext.h>
+
+#include <type_traits>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/ucontext_constants.h"
+
+template <int left, int right>
+struct CompileAssertEquals {
+  // a compilation error here indicates left and right are not equal.
+  char left_too_large[right - left];
+  // a compilation error here indicates left and right are not equal.
+  char right_too_large[left - right];
+};
+
+#define COMPILE_ASSERT_EQ(left, right, tag) \
+  CompileAssertEquals<left, right> tag;
+
+TEST(AndroidUContext, GRegsOffset) {
+#if defined(__arm__)
+  // There is no gregs[] array on ARM, so compare to the offset of
+  // first register fields, since they're stored in order.
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.arm_r0));
+#elif defined(__aarch64__)
+  // There is no gregs[] array on ARM, so compare to the offset of
+  // first register fields, since they're stored in order.
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.regs[0]));
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_SP_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.sp));
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_PC_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.pc));
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_PSTATE_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.pstate));
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_EXTENSION_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.__reserved));
+#elif defined(__i386__)
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.gregs));
+#define CHECK_REG(x) \
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_##x##_OFFSET),         \
+            offsetof(ucontext_t,uc_mcontext.gregs[REG_##x]))
+  CHECK_REG(GS);
+  CHECK_REG(FS);
+  CHECK_REG(ES);
+  CHECK_REG(DS);
+  CHECK_REG(EDI);
+  CHECK_REG(ESI);
+  CHECK_REG(EBP);
+  CHECK_REG(ESP);
+  CHECK_REG(EBX);
+  CHECK_REG(EDX);
+  CHECK_REG(ECX);
+  CHECK_REG(EAX);
+  CHECK_REG(TRAPNO);
+  CHECK_REG(ERR);
+  CHECK_REG(EIP);
+  CHECK_REG(CS);
+  CHECK_REG(EFL);
+  CHECK_REG(UESP);
+  CHECK_REG(SS);
+
+  ASSERT_EQ(static_cast<size_t>(UCONTEXT_FPREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.fpregs));
+
+  ASSERT_EQ(static_cast<size_t>(UCONTEXT_FPREGS_MEM_OFFSET),
+            offsetof(ucontext_t,__fpregs_mem));
+#elif defined(__mips__)
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.gregs));
+
+  // PC for mips is not part of gregs.
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_PC_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.pc));
+
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_FPREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.fpregs));
+
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_FPC_CSR),
+            offsetof(ucontext_t,uc_mcontext.fpc_csr));
+#elif defined(__x86_64__)
+
+  COMPILE_ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+                    offsetof(ucontext_t,uc_mcontext.gregs),
+                    mcontext_gregs_offset);
+#define CHECK_REG(x) \
+  COMPILE_ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_##x), \
+                    offsetof(ucontext_t,uc_mcontext.gregs[REG_##x]), reg_##x)
+  CHECK_REG(R8);
+  CHECK_REG(R9);
+  CHECK_REG(R10);
+  CHECK_REG(R11);
+  CHECK_REG(R12);
+  CHECK_REG(R13);
+  CHECK_REG(R14);
+  CHECK_REG(R15);
+  CHECK_REG(RDI);
+  CHECK_REG(RSI);
+  CHECK_REG(RBP);
+  CHECK_REG(RBX);
+  CHECK_REG(RDX);
+  CHECK_REG(RAX);
+  CHECK_REG(RCX);
+  CHECK_REG(RSP);
+  CHECK_REG(RIP);
+
+  // sigcontext is an analog to mcontext_t. The layout should be the same.
+  COMPILE_ASSERT_EQ(offsetof(mcontext_t,fpregs),
+                    offsetof(sigcontext,fpstate), sigcontext_fpstate);
+
+#if defined(__ANDROID__)
+  // Check that _fpstate from asm/sigcontext.h is essentially the same
+  // as _libc_fpstate.
+  COMPILE_ASSERT_EQ(sizeof(_libc_fpstate), sizeof(_fpstate),
+                    sigcontext_fpstate_size);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,cwd),offsetof(_fpstate,cwd),
+                    sigcontext_fpstate_cwd);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,swd),offsetof(_fpstate,swd),
+                    sigcontext_fpstate_swd);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,ftw),offsetof(_fpstate,twd),
+                    sigcontext_fpstate_twd);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,fop),offsetof(_fpstate,fop),
+                    sigcontext_fpstate_fop);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,rip),offsetof(_fpstate,rip),
+                    sigcontext_fpstate_rip);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,rdp),offsetof(_fpstate,rdp),
+                    sigcontext_fpstate_rdp);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,mxcsr),offsetof(_fpstate,mxcsr),
+                    sigcontext_fpstate_mxcsr);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,mxcr_mask),
+                    offsetof(_fpstate,mxcsr_mask),
+                    sigcontext_fpstate_mxcsr_mask);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,_st), offsetof(_fpstate,st_space),
+                    sigcontext_fpstate_stspace);
+  COMPILE_ASSERT_EQ(offsetof(_libc_fpstate,_xmm), offsetof(_fpstate,xmm_space),
+                    sigcontext_fpstate_xmm_space);
+#endif
+
+  COMPILE_ASSERT_EQ(MCONTEXT_FPREGS_PTR,
+                    offsetof(ucontext_t,uc_mcontext.fpregs),
+                    mcontext_fpregs_ptr);
+  COMPILE_ASSERT_EQ(MCONTEXT_FPREGS_MEM, offsetof(ucontext_t,__fpregs_mem),
+                    mcontext_fpregs_mem);
+  COMPILE_ASSERT_EQ(FPREGS_OFFSET_MXCSR,
+                    offsetof(std::remove_pointer<fpregset_t>::type,mxcsr),
+                    fpregs_offset_mxcsr);
+  COMPILE_ASSERT_EQ(UCONTEXT_SIGMASK_OFFSET, offsetof(ucontext_t, uc_sigmask),
+                    ucontext_sigmask);
+#else
+  ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET),
+            offsetof(ucontext_t,uc_mcontext.gregs));
+#endif
+}
+
+TEST(AndroidUContext, SigmakOffset) {
+  ASSERT_EQ(static_cast<size_t>(UCONTEXT_SIGMASK_OFFSET),
+            offsetof(ucontext_t,uc_sigmask));
+}
diff --git a/src/common/linux/crc32.cc b/src/common/linux/crc32.cc
new file mode 100644
index 0000000..8df636c
--- /dev/null
+++ b/src/common/linux/crc32.cc
@@ -0,0 +1,70 @@
+// Copyright 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/linux/crc32.h"
+
+namespace google_breakpad {
+
+// This implementation is based on the sample implementation in RFC 1952.
+
+// CRC32 polynomial, in reversed form.
+// See RFC 1952, or http://en.wikipedia.org/wiki/Cyclic_redundancy_check
+static const uint32_t kCrc32Polynomial = 0xEDB88320;
+static uint32_t kCrc32Table[256] = { 0 };
+
+#define arraysize(f) (sizeof(f) / sizeof(*f))
+
+static void EnsureCrc32TableInited() {
+  if (kCrc32Table[arraysize(kCrc32Table) - 1])
+    return;  // already inited
+  for (uint32_t i = 0; i < arraysize(kCrc32Table); ++i) {
+    uint32_t c = i;
+    for (size_t j = 0; j < 8; ++j) {
+      if (c & 1) {
+        c = kCrc32Polynomial ^ (c >> 1);
+      } else {
+        c >>= 1;
+      }
+    }
+    kCrc32Table[i] = c;
+  }
+}
+
+uint32_t UpdateCrc32(uint32_t start, const void* buf, size_t len) {
+  EnsureCrc32TableInited();
+
+  uint32_t c = start ^ 0xFFFFFFFF;
+  const uint8_t* u = static_cast<const uint8_t*>(buf);
+  for (size_t i = 0; i < len; ++i) {
+    c = kCrc32Table[(c ^ u[i]) & 0xFF] ^ (c >> 8);
+  }
+  return c ^ 0xFFFFFFFF;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/crc32.h b/src/common/linux/crc32.h
new file mode 100644
index 0000000..e3d9db9
--- /dev/null
+++ b/src/common/linux/crc32.h
@@ -0,0 +1,53 @@
+// Copyright 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_CRC32_H_
+#define COMMON_LINUX_CRC32_H_
+
+#include <stdint.h>
+
+#include <string>
+
+namespace google_breakpad {
+
+// Updates a CRC32 checksum with |len| bytes from |buf|. |initial| holds the
+// checksum result from the previous update; for the first call, it should be 0.
+uint32_t UpdateCrc32(uint32_t initial, const void* buf, size_t len);
+
+// Computes a CRC32 checksum using |len| bytes from |buf|.
+inline uint32_t ComputeCrc32(const void* buf, size_t len) {
+  return UpdateCrc32(0, buf, len);
+}
+inline uint32_t ComputeCrc32(const std::string& str) {
+  return ComputeCrc32(str.c_str(), str.size());
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_CRC32_H_
diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc
new file mode 100644
index 0000000..0514f5a
--- /dev/null
+++ b/src/common/linux/dump_symbols.cc
@@ -0,0 +1,1140 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Restructured in 2009 by: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_symbols.cc: implement google_breakpad::WriteSymbolFile:
+// Find all the debugging info in a file and dump it as a Breakpad symbol file.
+
+#include "common/linux/dump_symbols.h"
+
+#include <assert.h>
+#include <elf.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <link.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <iostream>
+#include <set>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/dwarf2diehandler.h"
+#include "common/dwarf_cfi_to_module.h"
+#include "common/dwarf_cu_to_module.h"
+#include "common/dwarf_line_to_module.h"
+#include "common/dwarf_range_list_handler.h"
+#include "common/linux/crc32.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/elfutils-inl.h"
+#include "common/linux/elf_symbols_to_module.h"
+#include "common/linux/file_id.h"
+#include "common/memory_allocator.h"
+#include "common/module.h"
+#include "common/path_helper.h"
+#include "common/scoped_ptr.h"
+#ifndef NO_STABS_SUPPORT
+#include "common/stabs_reader.h"
+#include "common/stabs_to_module.h"
+#endif
+#include "common/using_std_string.h"
+
+// This namespace contains helper functions.
+namespace {
+
+using google_breakpad::DumpOptions;
+using google_breakpad::DwarfCFIToModule;
+using google_breakpad::DwarfCUToModule;
+using google_breakpad::DwarfLineToModule;
+using google_breakpad::DwarfRangeListHandler;
+using google_breakpad::ElfClass;
+using google_breakpad::ElfClass32;
+using google_breakpad::ElfClass64;
+using google_breakpad::FileID;
+using google_breakpad::FindElfSectionByName;
+using google_breakpad::GetOffset;
+using google_breakpad::IsValidElf;
+using google_breakpad::kDefaultBuildIdSize;
+using google_breakpad::Module;
+using google_breakpad::PageAllocator;
+#ifndef NO_STABS_SUPPORT
+using google_breakpad::StabsToModule;
+#endif
+using google_breakpad::scoped_ptr;
+using google_breakpad::wasteful_vector;
+
+// Define AARCH64 ELF architecture if host machine does not include this define.
+#ifndef EM_AARCH64
+#define EM_AARCH64      183
+#endif
+
+//
+// FDWrapper
+//
+// Wrapper class to make sure opened file is closed.
+//
+class FDWrapper {
+ public:
+  explicit FDWrapper(int fd) :
+    fd_(fd) {}
+  ~FDWrapper() {
+    if (fd_ != -1)
+      close(fd_);
+  }
+  int get() {
+    return fd_;
+  }
+  int release() {
+    int fd = fd_;
+    fd_ = -1;
+    return fd;
+  }
+ private:
+  int fd_;
+};
+
+//
+// MmapWrapper
+//
+// Wrapper class to make sure mapped regions are unmapped.
+//
+class MmapWrapper {
+ public:
+  MmapWrapper() : is_set_(false) {}
+  ~MmapWrapper() {
+    if (is_set_ && base_ != NULL) {
+      assert(size_ > 0);
+      munmap(base_, size_);
+    }
+  }
+  void set(void* mapped_address, size_t mapped_size) {
+    is_set_ = true;
+    base_ = mapped_address;
+    size_ = mapped_size;
+  }
+  void release() {
+    assert(is_set_);
+    is_set_ = false;
+    base_ = NULL;
+    size_ = 0;
+  }
+
+ private:
+  bool is_set_;
+  void* base_;
+  size_t size_;
+};
+
+// Find the preferred loading address of the binary.
+template<typename ElfClass>
+typename ElfClass::Addr GetLoadingAddress(
+    const typename ElfClass::Phdr* program_headers,
+    int nheader) {
+  typedef typename ElfClass::Phdr Phdr;
+
+  // For non-PIC executables (e_type == ET_EXEC), the load address is
+  // the start address of the first PT_LOAD segment.  (ELF requires
+  // the segments to be sorted by load address.)  For PIC executables
+  // and dynamic libraries (e_type == ET_DYN), this address will
+  // normally be zero.
+  for (int i = 0; i < nheader; ++i) {
+    const Phdr& header = program_headers[i];
+    if (header.p_type == PT_LOAD)
+      return header.p_vaddr;
+  }
+  return 0;
+}
+
+// Find the set of address ranges for all PT_LOAD segments.
+template <typename ElfClass>
+vector<Module::Range> GetPtLoadSegmentRanges(
+    const typename ElfClass::Phdr* program_headers,
+    int nheader) {
+  typedef typename ElfClass::Phdr Phdr;
+  vector<Module::Range> ranges;
+
+  for (int i = 0; i < nheader; ++i) {
+    const Phdr& header = program_headers[i];
+    if (header.p_type == PT_LOAD) {
+      ranges.push_back(Module::Range(header.p_vaddr, header.p_memsz));
+    }
+  }
+  return ranges;
+}
+
+#ifndef NO_STABS_SUPPORT
+template<typename ElfClass>
+bool LoadStabs(const typename ElfClass::Ehdr* elf_header,
+               const typename ElfClass::Shdr* stab_section,
+               const typename ElfClass::Shdr* stabstr_section,
+               const bool big_endian,
+               Module* module) {
+  // A callback object to handle data from the STABS reader.
+  StabsToModule handler(module);
+  // Find the addresses of the STABS data, and create a STABS reader object.
+  // On Linux, STABS entries always have 32-bit values, regardless of the
+  // address size of the architecture whose code they're describing, and
+  // the strings are always "unitized".
+  const uint8_t* stabs =
+      GetOffset<ElfClass, uint8_t>(elf_header, stab_section->sh_offset);
+  const uint8_t* stabstr =
+      GetOffset<ElfClass, uint8_t>(elf_header, stabstr_section->sh_offset);
+  google_breakpad::StabsReader reader(stabs, stab_section->sh_size,
+                                      stabstr, stabstr_section->sh_size,
+                                      big_endian, 4, true, &handler);
+  // Read the STABS data, and do post-processing.
+  if (!reader.Process())
+    return false;
+  handler.Finalize();
+  return true;
+}
+#endif  // NO_STABS_SUPPORT
+
+// A range handler that accepts rangelist data parsed by
+// dwarf2reader::RangeListReader and populates a range vector (typically
+// owned by a function) with the results.
+class DumperRangesHandler : public DwarfCUToModule::RangesHandler {
+ public:
+  DumperRangesHandler(dwarf2reader::ByteReader* reader) :
+      reader_(reader) { }
+
+  bool ReadRanges(
+      enum dwarf2reader::DwarfForm form, uint64_t data,
+      dwarf2reader::RangeListReader::CURangesInfo* cu_info,
+      vector<Module::Range>* ranges) {
+    DwarfRangeListHandler handler(ranges);
+    dwarf2reader::RangeListReader range_list_reader(reader_, cu_info,
+                                                    &handler);
+    return range_list_reader.ReadRanges(form, data);
+  }
+
+ private:
+  dwarf2reader::ByteReader* reader_;
+};
+
+// A line-to-module loader that accepts line number info parsed by
+// dwarf2reader::LineInfo and populates a Module and a line vector
+// with the results.
+class DumperLineToModule: public DwarfCUToModule::LineToModuleHandler {
+ public:
+  // Create a line-to-module converter using BYTE_READER.
+  explicit DumperLineToModule(dwarf2reader::ByteReader* byte_reader)
+      : byte_reader_(byte_reader) { }
+  void StartCompilationUnit(const string& compilation_dir) {
+    compilation_dir_ = compilation_dir;
+  }
+  void ReadProgram(const uint8_t* program, uint64_t length,
+                   const uint8_t* string_section,
+                   uint64_t string_section_length,
+                   const uint8_t* line_string_section,
+                   uint64_t line_string_section_length,
+                   Module* module, std::vector<Module::Line>* lines) {
+    DwarfLineToModule handler(module, compilation_dir_, lines);
+    dwarf2reader::LineInfo parser(program, length, byte_reader_,
+                                  string_section, string_section_length,
+                                  line_string_section,
+                                  line_string_section_length,
+                                  &handler);
+    parser.Start();
+  }
+ private:
+  string compilation_dir_;
+  dwarf2reader::ByteReader* byte_reader_;
+};
+
+template<typename ElfClass>
+bool LoadDwarf(const string& dwarf_filename,
+               const typename ElfClass::Ehdr* elf_header,
+               const bool big_endian,
+               bool handle_inter_cu_refs,
+               Module* module) {
+  typedef typename ElfClass::Shdr Shdr;
+
+  const dwarf2reader::Endianness endianness = big_endian ?
+      dwarf2reader::ENDIANNESS_BIG : dwarf2reader::ENDIANNESS_LITTLE;
+  dwarf2reader::ByteReader byte_reader(endianness);
+
+  // Construct a context for this file.
+  DwarfCUToModule::FileContext file_context(dwarf_filename,
+                                            module,
+                                            handle_inter_cu_refs);
+
+  // Build a map of the ELF file's sections.
+  const Shdr* sections =
+      GetOffset<ElfClass, Shdr>(elf_header, elf_header->e_shoff);
+  int num_sections = elf_header->e_shnum;
+  const Shdr* section_names = sections + elf_header->e_shstrndx;
+  for (int i = 0; i < num_sections; i++) {
+    const Shdr* section = &sections[i];
+    string name = GetOffset<ElfClass, char>(elf_header,
+                                            section_names->sh_offset) +
+                  section->sh_name;
+    const uint8_t* contents = GetOffset<ElfClass, uint8_t>(elf_header,
+                                                           section->sh_offset);
+    file_context.AddSectionToSectionMap(name, contents, section->sh_size);
+  }
+
+  // .debug_ranges and .debug_rnglists reader
+  DumperRangesHandler ranges_handler(&byte_reader);
+
+  // Parse all the compilation units in the .debug_info section.
+  DumperLineToModule line_to_module(&byte_reader);
+  dwarf2reader::SectionMap::const_iterator debug_info_entry =
+      file_context.section_map().find(".debug_info");
+  assert(debug_info_entry != file_context.section_map().end());
+  const std::pair<const uint8_t*, uint64_t>& debug_info_section =
+      debug_info_entry->second;
+  // This should never have been called if the file doesn't have a
+  // .debug_info section.
+  assert(debug_info_section.first);
+  uint64_t debug_info_length = debug_info_section.second;
+  for (uint64_t offset = 0; offset < debug_info_length;) {
+    // Make a handler for the root DIE that populates MODULE with the
+    // data that was found.
+    DwarfCUToModule::WarningReporter reporter(dwarf_filename, offset);
+    DwarfCUToModule root_handler(&file_context, &line_to_module,
+                                 &ranges_handler, &reporter);
+    // Make a Dwarf2Handler that drives the DIEHandler.
+    dwarf2reader::DIEDispatcher die_dispatcher(&root_handler);
+    // Make a DWARF parser for the compilation unit at OFFSET.
+    dwarf2reader::CompilationUnit reader(dwarf_filename,
+                                         file_context.section_map(),
+                                         offset,
+                                         &byte_reader,
+                                         &die_dispatcher);
+    // Process the entire compilation unit; get the offset of the next.
+    offset += reader.Start();
+  }
+  return true;
+}
+
+// Fill REGISTER_NAMES with the register names appropriate to the
+// machine architecture given in HEADER, indexed by the register
+// numbers used in DWARF call frame information. Return true on
+// success, or false if HEADER's machine architecture is not
+// supported.
+template<typename ElfClass>
+bool DwarfCFIRegisterNames(const typename ElfClass::Ehdr* elf_header,
+                           std::vector<string>* register_names) {
+  switch (elf_header->e_machine) {
+    case EM_386:
+      *register_names = DwarfCFIToModule::RegisterNames::I386();
+      return true;
+    case EM_ARM:
+      *register_names = DwarfCFIToModule::RegisterNames::ARM();
+      return true;
+    case EM_AARCH64:
+      *register_names = DwarfCFIToModule::RegisterNames::ARM64();
+      return true;
+    case EM_MIPS:
+      *register_names = DwarfCFIToModule::RegisterNames::MIPS();
+      return true;
+    case EM_X86_64:
+      *register_names = DwarfCFIToModule::RegisterNames::X86_64();
+      return true;
+    default:
+      return false;
+  }
+}
+
+template<typename ElfClass>
+bool LoadDwarfCFI(const string& dwarf_filename,
+                  const typename ElfClass::Ehdr* elf_header,
+                  const char* section_name,
+                  const typename ElfClass::Shdr* section,
+                  const bool eh_frame,
+                  const typename ElfClass::Shdr* got_section,
+                  const typename ElfClass::Shdr* text_section,
+                  const bool big_endian,
+                  Module* module) {
+  // Find the appropriate set of register names for this file's
+  // architecture.
+  std::vector<string> register_names;
+  if (!DwarfCFIRegisterNames<ElfClass>(elf_header, &register_names)) {
+    fprintf(stderr, "%s: unrecognized ELF machine architecture '%d';"
+            " cannot convert DWARF call frame information\n",
+            dwarf_filename.c_str(), elf_header->e_machine);
+    return false;
+  }
+
+  const dwarf2reader::Endianness endianness = big_endian ?
+      dwarf2reader::ENDIANNESS_BIG : dwarf2reader::ENDIANNESS_LITTLE;
+
+  // Find the call frame information and its size.
+  const uint8_t* cfi =
+      GetOffset<ElfClass, uint8_t>(elf_header, section->sh_offset);
+  size_t cfi_size = section->sh_size;
+
+  // Plug together the parser, handler, and their entourages.
+  DwarfCFIToModule::Reporter module_reporter(dwarf_filename, section_name);
+  DwarfCFIToModule handler(module, register_names, &module_reporter);
+  dwarf2reader::ByteReader byte_reader(endianness);
+
+  byte_reader.SetAddressSize(ElfClass::kAddrSize);
+
+  // Provide the base addresses for .eh_frame encoded pointers, if
+  // possible.
+  byte_reader.SetCFIDataBase(section->sh_addr, cfi);
+  if (got_section)
+    byte_reader.SetDataBase(got_section->sh_addr);
+  if (text_section)
+    byte_reader.SetTextBase(text_section->sh_addr);
+
+  dwarf2reader::CallFrameInfo::Reporter dwarf_reporter(dwarf_filename,
+                                                       section_name);
+  dwarf2reader::CallFrameInfo parser(cfi, cfi_size,
+                                     &byte_reader, &handler, &dwarf_reporter,
+                                     eh_frame);
+  parser.Start();
+  return true;
+}
+
+bool LoadELF(const string& obj_file, MmapWrapper* map_wrapper,
+             void** elf_header) {
+  int obj_fd = open(obj_file.c_str(), O_RDONLY);
+  if (obj_fd < 0) {
+    fprintf(stderr, "Failed to open ELF file '%s': %s\n",
+            obj_file.c_str(), strerror(errno));
+    return false;
+  }
+  FDWrapper obj_fd_wrapper(obj_fd);
+  struct stat st;
+  if (fstat(obj_fd, &st) != 0 && st.st_size <= 0) {
+    fprintf(stderr, "Unable to fstat ELF file '%s': %s\n",
+            obj_file.c_str(), strerror(errno));
+    return false;
+  }
+  void* obj_base = mmap(NULL, st.st_size,
+                        PROT_READ | PROT_WRITE, MAP_PRIVATE, obj_fd, 0);
+  if (obj_base == MAP_FAILED) {
+    fprintf(stderr, "Failed to mmap ELF file '%s': %s\n",
+            obj_file.c_str(), strerror(errno));
+    return false;
+  }
+  map_wrapper->set(obj_base, st.st_size);
+  *elf_header = obj_base;
+  if (!IsValidElf(*elf_header)) {
+    fprintf(stderr, "Not a valid ELF file: %s\n", obj_file.c_str());
+    return false;
+  }
+  return true;
+}
+
+// Get the endianness of ELF_HEADER. If it's invalid, return false.
+template<typename ElfClass>
+bool ElfEndianness(const typename ElfClass::Ehdr* elf_header,
+                   bool* big_endian) {
+  if (elf_header->e_ident[EI_DATA] == ELFDATA2LSB) {
+    *big_endian = false;
+    return true;
+  }
+  if (elf_header->e_ident[EI_DATA] == ELFDATA2MSB) {
+    *big_endian = true;
+    return true;
+  }
+
+  fprintf(stderr, "bad data encoding in ELF header: %d\n",
+          elf_header->e_ident[EI_DATA]);
+  return false;
+}
+
+// Given |left_abspath|, find the absolute path for |right_path| and see if the
+// two absolute paths are the same.
+bool IsSameFile(const char* left_abspath, const string& right_path) {
+  char right_abspath[PATH_MAX];
+  if (!realpath(right_path.c_str(), right_abspath))
+    return false;
+  return strcmp(left_abspath, right_abspath) == 0;
+}
+
+// Read the .gnu_debuglink and get the debug file name. If anything goes
+// wrong, return an empty string.
+string ReadDebugLink(const uint8_t* debuglink,
+                     const size_t debuglink_size,
+                     const bool big_endian,
+                     const string& obj_file,
+                     const std::vector<string>& debug_dirs) {
+  // Include '\0' + CRC32 (4 bytes).
+  size_t debuglink_len = strlen(reinterpret_cast<const char*>(debuglink)) + 5;
+  debuglink_len = 4 * ((debuglink_len + 3) / 4);  // Round up to 4 bytes.
+
+  // Sanity check.
+  if (debuglink_len != debuglink_size) {
+    fprintf(stderr, "Mismatched .gnu_debuglink string / section size: "
+            "%zx %zx\n", debuglink_len, debuglink_size);
+    return string();
+  }
+
+  char obj_file_abspath[PATH_MAX];
+  if (!realpath(obj_file.c_str(), obj_file_abspath)) {
+    fprintf(stderr, "Cannot resolve absolute path for %s\n", obj_file.c_str());
+    return string();
+  }
+
+  std::vector<string> searched_paths;
+  string debuglink_path;
+  std::vector<string>::const_iterator it;
+  for (it = debug_dirs.begin(); it < debug_dirs.end(); ++it) {
+    const string& debug_dir = *it;
+    debuglink_path = debug_dir + "/" +
+                     reinterpret_cast<const char*>(debuglink);
+
+    // There is the annoying case of /path/to/foo.so having foo.so as the
+    // debug link file name. Thus this may end up opening /path/to/foo.so again,
+    // and there is a small chance of the two files having the same CRC.
+    if (IsSameFile(obj_file_abspath, debuglink_path))
+      continue;
+
+    searched_paths.push_back(debug_dir);
+    int debuglink_fd = open(debuglink_path.c_str(), O_RDONLY);
+    if (debuglink_fd < 0)
+      continue;
+
+    FDWrapper debuglink_fd_wrapper(debuglink_fd);
+
+    // The CRC is the last 4 bytes in |debuglink|.
+    const dwarf2reader::Endianness endianness = big_endian ?
+        dwarf2reader::ENDIANNESS_BIG : dwarf2reader::ENDIANNESS_LITTLE;
+    dwarf2reader::ByteReader byte_reader(endianness);
+    uint32_t expected_crc =
+        byte_reader.ReadFourBytes(&debuglink[debuglink_size - 4]);
+
+    uint32_t actual_crc = 0;
+    while (true) {
+      const size_t kReadSize = 4096;
+      char buf[kReadSize];
+      ssize_t bytes_read = HANDLE_EINTR(read(debuglink_fd, &buf, kReadSize));
+      if (bytes_read < 0) {
+        fprintf(stderr, "Error reading debug ELF file %s.\n",
+                debuglink_path.c_str());
+        return string();
+      }
+      if (bytes_read == 0)
+        break;
+      actual_crc = google_breakpad::UpdateCrc32(actual_crc, buf, bytes_read);
+    }
+    if (actual_crc != expected_crc) {
+      fprintf(stderr, "Error reading debug ELF file - CRC32 mismatch: %s\n",
+              debuglink_path.c_str());
+      continue;
+    }
+
+    // Found debug file.
+    return debuglink_path;
+  }
+
+  // Not found case.
+  fprintf(stderr, "Failed to find debug ELF file for '%s' after trying:\n",
+          obj_file.c_str());
+  for (it = searched_paths.begin(); it < searched_paths.end(); ++it) {
+    const string& debug_dir = *it;
+    fprintf(stderr, "  %s/%s\n", debug_dir.c_str(), debuglink);
+  }
+  return string();
+}
+
+//
+// LoadSymbolsInfo
+//
+// Holds the state between the two calls to LoadSymbols() in case it's necessary
+// to follow the .gnu_debuglink section and load debug information from a
+// different file.
+//
+template<typename ElfClass>
+class LoadSymbolsInfo {
+ public:
+  typedef typename ElfClass::Addr Addr;
+
+  explicit LoadSymbolsInfo(const std::vector<string>& dbg_dirs) :
+    debug_dirs_(dbg_dirs),
+    has_loading_addr_(false) {}
+
+  // Keeps track of which sections have been loaded so sections don't
+  // accidentally get loaded twice from two different files.
+  void LoadedSection(const string& section) {
+    if (loaded_sections_.count(section) == 0) {
+      loaded_sections_.insert(section);
+    } else {
+      fprintf(stderr, "Section %s has already been loaded.\n",
+              section.c_str());
+    }
+  }
+
+  // The ELF file and linked debug file are expected to have the same preferred
+  // loading address.
+  void set_loading_addr(Addr addr, const string& filename) {
+    if (!has_loading_addr_) {
+      loading_addr_ = addr;
+      loaded_file_ = filename;
+      return;
+    }
+
+    if (addr != loading_addr_) {
+      fprintf(stderr,
+              "ELF file '%s' and debug ELF file '%s' "
+              "have different load addresses.\n",
+              loaded_file_.c_str(), filename.c_str());
+      assert(false);
+    }
+  }
+
+  // Setters and getters
+  const std::vector<string>& debug_dirs() const {
+    return debug_dirs_;
+  }
+
+  string debuglink_file() const {
+    return debuglink_file_;
+  }
+  void set_debuglink_file(string file) {
+    debuglink_file_ = file;
+  }
+
+ private:
+  const std::vector<string>& debug_dirs_; // Directories in which to
+                                          // search for the debug ELF file.
+
+  string debuglink_file_;  // Full path to the debug ELF file.
+
+  bool has_loading_addr_;  // Indicate if LOADING_ADDR_ is valid.
+
+  Addr loading_addr_;  // Saves the preferred loading address from the
+                       // first call to LoadSymbols().
+
+  string loaded_file_;  // Name of the file loaded from the first call to
+                        // LoadSymbols().
+
+  std::set<string> loaded_sections_;  // Tracks the Loaded ELF sections
+                                      // between calls to LoadSymbols().
+};
+
+template<typename ElfClass>
+bool LoadSymbols(const string& obj_file,
+                 const bool big_endian,
+                 const typename ElfClass::Ehdr* elf_header,
+                 const bool read_gnu_debug_link,
+                 LoadSymbolsInfo<ElfClass>* info,
+                 const DumpOptions& options,
+                 Module* module) {
+  typedef typename ElfClass::Addr Addr;
+  typedef typename ElfClass::Phdr Phdr;
+  typedef typename ElfClass::Shdr Shdr;
+
+  Addr loading_addr = GetLoadingAddress<ElfClass>(
+      GetOffset<ElfClass, Phdr>(elf_header, elf_header->e_phoff),
+      elf_header->e_phnum);
+  module->SetLoadAddress(loading_addr);
+  info->set_loading_addr(loading_addr, obj_file);
+
+  // Allow filtering of extraneous debug information in partitioned libraries.
+  // Such libraries contain debug information for all libraries extracted from
+  // the same combined library, implying extensive duplication.
+  vector<Module::Range> address_ranges = GetPtLoadSegmentRanges<ElfClass>(
+      GetOffset<ElfClass, Phdr>(elf_header, elf_header->e_phoff),
+      elf_header->e_phnum);
+  module->SetAddressRanges(address_ranges);
+
+  const Shdr* sections =
+      GetOffset<ElfClass, Shdr>(elf_header, elf_header->e_shoff);
+  const Shdr* section_names = sections + elf_header->e_shstrndx;
+  const char* names =
+      GetOffset<ElfClass, char>(elf_header, section_names->sh_offset);
+  const char* names_end = names + section_names->sh_size;
+  bool found_debug_info_section = false;
+  bool found_usable_info = false;
+
+  if (options.symbol_data != ONLY_CFI) {
+#ifndef NO_STABS_SUPPORT
+    // Look for STABS debugging information, and load it if present.
+    const Shdr* stab_section =
+      FindElfSectionByName<ElfClass>(".stab", SHT_PROGBITS,
+                                     sections, names, names_end,
+                                     elf_header->e_shnum);
+    if (stab_section) {
+      const Shdr* stabstr_section = stab_section->sh_link + sections;
+      if (stabstr_section) {
+        found_debug_info_section = true;
+        found_usable_info = true;
+        info->LoadedSection(".stab");
+        if (!LoadStabs<ElfClass>(elf_header, stab_section, stabstr_section,
+                                 big_endian, module)) {
+          fprintf(stderr, "%s: \".stab\" section found, but failed to load"
+                  " STABS debugging information\n", obj_file.c_str());
+        }
+      }
+    }
+#endif  // NO_STABS_SUPPORT
+
+    // Look for DWARF debugging information, and load it if present.
+    const Shdr* dwarf_section =
+      FindElfSectionByName<ElfClass>(".debug_info", SHT_PROGBITS,
+                                     sections, names, names_end,
+                                     elf_header->e_shnum);
+
+    // .debug_info section type is SHT_PROGBITS for mips on pnacl toolchains,
+    // but MIPS_DWARF for regular gnu toolchains, so both need to be checked
+    if (elf_header->e_machine == EM_MIPS && !dwarf_section) {
+      dwarf_section =
+        FindElfSectionByName<ElfClass>(".debug_info", SHT_MIPS_DWARF,
+                                       sections, names, names_end,
+                                       elf_header->e_shnum);
+    }
+
+    if (dwarf_section) {
+      found_debug_info_section = true;
+      found_usable_info = true;
+      info->LoadedSection(".debug_info");
+      if (!LoadDwarf<ElfClass>(obj_file, elf_header, big_endian,
+                               options.handle_inter_cu_refs, module)) {
+        fprintf(stderr, "%s: \".debug_info\" section found, but failed to load "
+                "DWARF debugging information\n", obj_file.c_str());
+      }
+    }
+
+    // See if there are export symbols available.
+    const Shdr* symtab_section =
+        FindElfSectionByName<ElfClass>(".symtab", SHT_SYMTAB,
+                                       sections, names, names_end,
+                                       elf_header->e_shnum);
+    const Shdr* strtab_section =
+        FindElfSectionByName<ElfClass>(".strtab", SHT_STRTAB,
+                                       sections, names, names_end,
+                                       elf_header->e_shnum);
+    if (symtab_section && strtab_section) {
+      info->LoadedSection(".symtab");
+
+      const uint8_t* symtab =
+          GetOffset<ElfClass, uint8_t>(elf_header,
+                                       symtab_section->sh_offset);
+      const uint8_t* strtab =
+          GetOffset<ElfClass, uint8_t>(elf_header,
+                                       strtab_section->sh_offset);
+      bool result =
+          ELFSymbolsToModule(symtab,
+                             symtab_section->sh_size,
+                             strtab,
+                             strtab_section->sh_size,
+                             big_endian,
+                             ElfClass::kAddrSize,
+                             module);
+      found_usable_info = found_usable_info || result;
+    } else {
+      // Look in dynsym only if full symbol table was not available.
+      const Shdr* dynsym_section =
+          FindElfSectionByName<ElfClass>(".dynsym", SHT_DYNSYM,
+                                         sections, names, names_end,
+                                         elf_header->e_shnum);
+      const Shdr* dynstr_section =
+          FindElfSectionByName<ElfClass>(".dynstr", SHT_STRTAB,
+                                         sections, names, names_end,
+                                         elf_header->e_shnum);
+      if (dynsym_section && dynstr_section) {
+        info->LoadedSection(".dynsym");
+
+        const uint8_t* dynsyms =
+            GetOffset<ElfClass, uint8_t>(elf_header,
+                                         dynsym_section->sh_offset);
+        const uint8_t* dynstrs =
+            GetOffset<ElfClass, uint8_t>(elf_header,
+                                         dynstr_section->sh_offset);
+        bool result =
+            ELFSymbolsToModule(dynsyms,
+                               dynsym_section->sh_size,
+                               dynstrs,
+                               dynstr_section->sh_size,
+                               big_endian,
+                               ElfClass::kAddrSize,
+                               module);
+        found_usable_info = found_usable_info || result;
+      }
+    }
+  }
+
+  if (options.symbol_data != NO_CFI) {
+    // Dwarf Call Frame Information (CFI) is actually independent from
+    // the other DWARF debugging information, and can be used alone.
+    const Shdr* dwarf_cfi_section =
+        FindElfSectionByName<ElfClass>(".debug_frame", SHT_PROGBITS,
+                                       sections, names, names_end,
+                                       elf_header->e_shnum);
+
+    // .debug_frame section type is SHT_PROGBITS for mips on pnacl toolchains,
+    // but MIPS_DWARF for regular gnu toolchains, so both need to be checked
+    if (elf_header->e_machine == EM_MIPS && !dwarf_cfi_section) {
+      dwarf_cfi_section =
+          FindElfSectionByName<ElfClass>(".debug_frame", SHT_MIPS_DWARF,
+                                        sections, names, names_end,
+                                        elf_header->e_shnum);
+    }
+
+    if (dwarf_cfi_section) {
+      // Ignore the return value of this function; even without call frame
+      // information, the other debugging information could be perfectly
+      // useful.
+      info->LoadedSection(".debug_frame");
+      bool result =
+          LoadDwarfCFI<ElfClass>(obj_file, elf_header, ".debug_frame",
+                                 dwarf_cfi_section, false, 0, 0, big_endian,
+                                 module);
+      found_usable_info = found_usable_info || result;
+    }
+
+    // Linux C++ exception handling information can also provide
+    // unwinding data.
+    const Shdr* eh_frame_section =
+        FindElfSectionByName<ElfClass>(".eh_frame", SHT_PROGBITS,
+                                       sections, names, names_end,
+                                       elf_header->e_shnum);
+    if (eh_frame_section) {
+      // Pointers in .eh_frame data may be relative to the base addresses of
+      // certain sections. Provide those sections if present.
+      const Shdr* got_section =
+          FindElfSectionByName<ElfClass>(".got", SHT_PROGBITS,
+                                         sections, names, names_end,
+                                         elf_header->e_shnum);
+      const Shdr* text_section =
+          FindElfSectionByName<ElfClass>(".text", SHT_PROGBITS,
+                                         sections, names, names_end,
+                                         elf_header->e_shnum);
+      info->LoadedSection(".eh_frame");
+      // As above, ignore the return value of this function.
+      bool result =
+          LoadDwarfCFI<ElfClass>(obj_file, elf_header, ".eh_frame",
+                                 eh_frame_section, true,
+                                 got_section, text_section, big_endian, module);
+      found_usable_info = found_usable_info || result;
+    }
+  }
+
+  if (!found_debug_info_section) {
+    fprintf(stderr, "%s: file contains no debugging information"
+            " (no \".stab\" or \".debug_info\" sections)\n",
+            obj_file.c_str());
+
+    // Failed, but maybe there's a .gnu_debuglink section?
+    if (read_gnu_debug_link) {
+      const Shdr* gnu_debuglink_section
+          = FindElfSectionByName<ElfClass>(".gnu_debuglink", SHT_PROGBITS,
+                                           sections, names,
+                                           names_end, elf_header->e_shnum);
+      if (gnu_debuglink_section) {
+        if (!info->debug_dirs().empty()) {
+          const uint8_t* debuglink_contents =
+              GetOffset<ElfClass, uint8_t>(elf_header,
+                                           gnu_debuglink_section->sh_offset);
+          string debuglink_file =
+              ReadDebugLink(debuglink_contents,
+                            gnu_debuglink_section->sh_size,
+                            big_endian,
+                            obj_file,
+                            info->debug_dirs());
+          info->set_debuglink_file(debuglink_file);
+        } else {
+          fprintf(stderr, ".gnu_debuglink section found in '%s', "
+                  "but no debug path specified.\n", obj_file.c_str());
+        }
+      } else {
+        fprintf(stderr, "%s does not contain a .gnu_debuglink section.\n",
+                obj_file.c_str());
+      }
+    } else {
+      // Return true if some usable information was found, since the caller
+      // doesn't want to use .gnu_debuglink.
+      return found_usable_info;
+    }
+
+    // No debug info was found, let the user try again with .gnu_debuglink
+    // if present.
+    return false;
+  }
+
+  return true;
+}
+
+// Return the breakpad symbol file identifier for the architecture of
+// ELF_HEADER.
+template<typename ElfClass>
+const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) {
+  typedef typename ElfClass::Half Half;
+  Half arch = elf_header->e_machine;
+  switch (arch) {
+    case EM_386:        return "x86";
+    case EM_ARM:        return "arm";
+    case EM_AARCH64:    return "arm64";
+    case EM_MIPS:       return "mips";
+    case EM_PPC64:      return "ppc64";
+    case EM_PPC:        return "ppc";
+    case EM_S390:       return "s390";
+    case EM_SPARC:      return "sparc";
+    case EM_SPARCV9:    return "sparcv9";
+    case EM_X86_64:     return "x86_64";
+    default: return NULL;
+  }
+}
+
+template<typename ElfClass>
+bool SanitizeDebugFile(const typename ElfClass::Ehdr* debug_elf_header,
+                       const string& debuglink_file,
+                       const string& obj_filename,
+                       const char* obj_file_architecture,
+                       const bool obj_file_is_big_endian) {
+  const char* debug_architecture =
+      ElfArchitecture<ElfClass>(debug_elf_header);
+  if (!debug_architecture) {
+    fprintf(stderr, "%s: unrecognized ELF machine architecture: %d\n",
+            debuglink_file.c_str(), debug_elf_header->e_machine);
+    return false;
+  }
+  if (strcmp(obj_file_architecture, debug_architecture)) {
+    fprintf(stderr, "%s with ELF machine architecture %s does not match "
+            "%s with ELF architecture %s\n",
+            debuglink_file.c_str(), debug_architecture,
+            obj_filename.c_str(), obj_file_architecture);
+    return false;
+  }
+  bool debug_big_endian;
+  if (!ElfEndianness<ElfClass>(debug_elf_header, &debug_big_endian))
+    return false;
+  if (debug_big_endian != obj_file_is_big_endian) {
+    fprintf(stderr, "%s and %s does not match in endianness\n",
+            obj_filename.c_str(), debuglink_file.c_str());
+    return false;
+  }
+  return true;
+}
+
+template<typename ElfClass>
+bool InitModuleForElfClass(const typename ElfClass::Ehdr* elf_header,
+                           const string& obj_filename,
+                           const string& obj_os,
+                           scoped_ptr<Module>& module) {
+  PageAllocator allocator;
+  wasteful_vector<uint8_t> identifier(&allocator, kDefaultBuildIdSize);
+  if (!FileID::ElfFileIdentifierFromMappedFile(elf_header, identifier)) {
+    fprintf(stderr, "%s: unable to generate file identifier\n",
+            obj_filename.c_str());
+    return false;
+  }
+
+  const char* architecture = ElfArchitecture<ElfClass>(elf_header);
+  if (!architecture) {
+    fprintf(stderr, "%s: unrecognized ELF machine architecture: %d\n",
+            obj_filename.c_str(), elf_header->e_machine);
+    return false;
+  }
+
+  char name_buf[NAME_MAX] = {};
+  std::string name = google_breakpad::ElfFileSoNameFromMappedFile(
+                         elf_header, name_buf, sizeof(name_buf))
+                         ? name_buf
+                         : google_breakpad::BaseName(obj_filename);
+
+  // Add an extra "0" at the end.  PDB files on Windows have an 'age'
+  // number appended to the end of the file identifier; this isn't
+  // really used or necessary on other platforms, but be consistent.
+  string id = FileID::ConvertIdentifierToUUIDString(identifier) + "0";
+  // This is just the raw Build ID in hex.
+  string code_id = FileID::ConvertIdentifierToString(identifier);
+
+  module.reset(new Module(name, obj_os, architecture, id, code_id));
+
+  return true;
+}
+
+template<typename ElfClass>
+bool ReadSymbolDataElfClass(const typename ElfClass::Ehdr* elf_header,
+                            const string& obj_filename,
+                            const string& obj_os,
+                            const std::vector<string>& debug_dirs,
+                            const DumpOptions& options,
+                            Module** out_module) {
+  typedef typename ElfClass::Ehdr Ehdr;
+
+  *out_module = NULL;
+
+  scoped_ptr<Module> module;
+  if (!InitModuleForElfClass<ElfClass>(elf_header, obj_filename, obj_os,
+                                       module)) {
+    return false;
+  }
+
+  // Figure out what endianness this file is.
+  bool big_endian;
+  if (!ElfEndianness<ElfClass>(elf_header, &big_endian))
+    return false;
+
+  LoadSymbolsInfo<ElfClass> info(debug_dirs);
+  if (!LoadSymbols<ElfClass>(obj_filename, big_endian, elf_header,
+                             !debug_dirs.empty(), &info,
+                             options, module.get())) {
+    const string debuglink_file = info.debuglink_file();
+    if (debuglink_file.empty())
+      return false;
+
+    // Load debuglink ELF file.
+    fprintf(stderr, "Found debugging info in %s\n", debuglink_file.c_str());
+    MmapWrapper debug_map_wrapper;
+    Ehdr* debug_elf_header = NULL;
+    if (!LoadELF(debuglink_file, &debug_map_wrapper,
+                 reinterpret_cast<void**>(&debug_elf_header)) ||
+        !SanitizeDebugFile<ElfClass>(debug_elf_header, debuglink_file,
+                                     obj_filename,
+                                     module->architecture().c_str(),
+                                     big_endian)) {
+      return false;
+    }
+
+    if (!LoadSymbols<ElfClass>(debuglink_file, big_endian,
+                               debug_elf_header, false, &info,
+                               options, module.get())) {
+      return false;
+    }
+  }
+
+  *out_module = module.release();
+  return true;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+// Not explicitly exported, but not static so it can be used in unit tests.
+bool ReadSymbolDataInternal(const uint8_t* obj_file,
+                            const string& obj_filename,
+                            const string& obj_os,
+                            const std::vector<string>& debug_dirs,
+                            const DumpOptions& options,
+                            Module** module) {
+  if (!IsValidElf(obj_file)) {
+    fprintf(stderr, "Not a valid ELF file: %s\n", obj_filename.c_str());
+    return false;
+  }
+
+  int elfclass = ElfClass(obj_file);
+  if (elfclass == ELFCLASS32) {
+    return ReadSymbolDataElfClass<ElfClass32>(
+        reinterpret_cast<const Elf32_Ehdr*>(obj_file), obj_filename, obj_os,
+        debug_dirs, options, module);
+  }
+  if (elfclass == ELFCLASS64) {
+    return ReadSymbolDataElfClass<ElfClass64>(
+        reinterpret_cast<const Elf64_Ehdr*>(obj_file), obj_filename, obj_os,
+        debug_dirs, options, module);
+  }
+
+  return false;
+}
+
+bool WriteSymbolFile(const string& load_path,
+                     const string& obj_file,
+                     const string& obj_os,
+                     const std::vector<string>& debug_dirs,
+                     const DumpOptions& options,
+                     std::ostream& sym_stream) {
+  Module* module;
+  if (!ReadSymbolData(load_path, obj_file, obj_os, debug_dirs, options,
+                      &module))
+    return false;
+
+  bool result = module->Write(sym_stream, options.symbol_data);
+  delete module;
+  return result;
+}
+
+// Read the selected object file's debugging information, and write out the
+// header only to |stream|. Return true on success; if an error occurs, report
+// it and return false.
+bool WriteSymbolFileHeader(const string& load_path,
+                           const string& obj_file,
+                           const string& obj_os,
+                           std::ostream& sym_stream) {
+  MmapWrapper map_wrapper;
+  void* elf_header = NULL;
+  if (!LoadELF(load_path, &map_wrapper, &elf_header)) {
+    fprintf(stderr, "Could not load ELF file: %s\n", obj_file.c_str());
+    return false;
+  }
+
+  if (!IsValidElf(elf_header)) {
+    fprintf(stderr, "Not a valid ELF file: %s\n", obj_file.c_str());
+    return false;
+  }
+
+  int elfclass = ElfClass(elf_header);
+  scoped_ptr<Module> module;
+  if (elfclass == ELFCLASS32) {
+    if (!InitModuleForElfClass<ElfClass32>(
+        reinterpret_cast<const Elf32_Ehdr*>(elf_header), obj_file, obj_os,
+        module)) {
+      fprintf(stderr, "Failed to load ELF module: %s\n", obj_file.c_str());
+      return false;
+    }
+  } else if (elfclass == ELFCLASS64) {
+    if (!InitModuleForElfClass<ElfClass64>(
+        reinterpret_cast<const Elf64_Ehdr*>(elf_header), obj_file, obj_os,
+        module)) {
+      fprintf(stderr, "Failed to load ELF module: %s\n", obj_file.c_str());
+      return false;
+    }
+  } else {
+    fprintf(stderr, "Unsupported module file: %s\n", obj_file.c_str());
+    return false;
+  }
+
+  return module->Write(sym_stream, ALL_SYMBOL_DATA);
+}
+
+bool ReadSymbolData(const string& load_path,
+                    const string& obj_file,
+                    const string& obj_os,
+                    const std::vector<string>& debug_dirs,
+                    const DumpOptions& options,
+                    Module** module) {
+  MmapWrapper map_wrapper;
+  void* elf_header = NULL;
+  if (!LoadELF(load_path, &map_wrapper, &elf_header))
+    return false;
+
+  return ReadSymbolDataInternal(reinterpret_cast<uint8_t*>(elf_header),
+                                obj_file, obj_os, debug_dirs, options, module);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/dump_symbols.h b/src/common/linux/dump_symbols.h
new file mode 100644
index 0000000..b033ce0
--- /dev/null
+++ b/src/common/linux/dump_symbols.h
@@ -0,0 +1,93 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_symbols.h: Read debugging information from an ELF file, and write
+// it out as a Breakpad symbol file.
+
+#ifndef COMMON_LINUX_DUMP_SYMBOLS_H__
+#define COMMON_LINUX_DUMP_SYMBOLS_H__
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "common/symbol_data.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class Module;
+
+struct DumpOptions {
+  DumpOptions(SymbolData symbol_data, bool handle_inter_cu_refs)
+      : symbol_data(symbol_data),
+        handle_inter_cu_refs(handle_inter_cu_refs) {
+  }
+
+  SymbolData symbol_data;
+  bool handle_inter_cu_refs;
+};
+
+// Find all the debugging information in OBJ_FILE, an ELF executable
+// or shared library, and write it to SYM_STREAM in the Breakpad symbol
+// file format.
+// If OBJ_FILE has been stripped but contains a .gnu_debuglink section,
+// then look for the debug file in DEBUG_DIRS.
+// SYMBOL_DATA allows limiting the type of symbol data written.
+bool WriteSymbolFile(const string& load_path,
+                     const string& obj_file,
+                     const string& obj_os,
+                     const std::vector<string>& debug_dirs,
+                     const DumpOptions& options,
+                     std::ostream& sym_stream);
+
+// Read the selected object file's debugging information, and write out the
+// header only to |stream|. Return true on success; if an error occurs, report
+// it and return false. |obj_file| becomes the MODULE file name and |obj_os|
+// becomes the MODULE operating system.
+bool WriteSymbolFileHeader(const string& load_path,
+                           const string& obj_file,
+                           const string& obj_os,
+                           std::ostream& sym_stream);
+
+// As above, but simply return the debugging information in MODULE
+// instead of writing it to a stream. The caller owns the resulting
+// Module object and must delete it when finished.
+bool ReadSymbolData(const string& load_path,
+                    const string& obj_file,
+                    const string& obj_os,
+                    const std::vector<string>& debug_dirs,
+                    const DumpOptions& options,
+                    Module** module);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_DUMP_SYMBOLS_H__
diff --git a/src/common/linux/dump_symbols_unittest.cc b/src/common/linux/dump_symbols_unittest.cc
new file mode 100644
index 0000000..54c2109
--- /dev/null
+++ b/src/common/linux/dump_symbols_unittest.cc
@@ -0,0 +1,208 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+// dump_symbols_unittest.cc:
+// Unittests for google_breakpad::DumpSymbols
+
+#include <elf.h>
+#include <link.h>
+#include <stdio.h>
+
+#include <sstream>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/elf_gnu_compat.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/dump_symbols.h"
+#include "common/linux/synth_elf.h"
+#include "common/module.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+bool ReadSymbolDataInternal(const uint8_t* obj_file,
+                            const string& obj_filename,
+                            const string& obj_os,
+                            const std::vector<string>& debug_dir,
+                            const DumpOptions& options,
+                            Module** module);
+
+using google_breakpad::synth_elf::ELF;
+using google_breakpad::synth_elf::Notes;
+using google_breakpad::synth_elf::StringTable;
+using google_breakpad::synth_elf::SymbolTable;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Section;
+using std::stringstream;
+using std::vector;
+using ::testing::Test;
+using ::testing::Types;
+
+template<typename ElfClass>
+class DumpSymbols : public Test {
+ public:
+  void GetElfContents(ELF& elf) {
+    string contents;
+    ASSERT_TRUE(elf.GetContents(&contents));
+    ASSERT_LT(0U, contents.size());
+
+    elfdata_v.clear();
+    elfdata_v.insert(elfdata_v.begin(), contents.begin(), contents.end());
+    elfdata = &elfdata_v[0];
+  }
+
+  vector<uint8_t> elfdata_v;
+  uint8_t* elfdata;
+};
+
+typedef Types<ElfClass32, ElfClass64> ElfClasses;
+
+TYPED_TEST_SUITE(DumpSymbols, ElfClasses);
+
+TYPED_TEST(DumpSymbols, Invalid) {
+  Elf32_Ehdr header;
+  memset(&header, 0, sizeof(header));
+  Module* module;
+  DumpOptions options(ALL_SYMBOL_DATA, true);
+  EXPECT_FALSE(ReadSymbolDataInternal(reinterpret_cast<uint8_t*>(&header),
+                                      "foo",
+                                      "Linux",
+                                      vector<string>(),
+                                      options,
+                                      &module));
+}
+
+TYPED_TEST(DumpSymbols, SimplePublic) {
+  ELF elf(TypeParam::kMachine, TypeParam::kClass, kLittleEndian);
+  // Zero out text section for simplicity.
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+
+  // Add a public symbol.
+  StringTable table(kLittleEndian);
+  SymbolTable syms(kLittleEndian, TypeParam::kAddrSize, table);
+  syms.AddSymbol("superfunc",
+                   (typename TypeParam::Addr)0x1000,
+                   (typename TypeParam::Addr)0x10,
+                 // ELF32_ST_INFO works for 32-or 64-bit.
+                 ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+                 SHN_UNDEF + 1);
+  int index = elf.AddSection(".dynstr", table, SHT_STRTAB);
+  elf.AddSection(".dynsym", syms,
+                 SHT_DYNSYM,          // type
+                 SHF_ALLOC,           // flags
+                 0,                   // addr
+                 index,               // link
+                 sizeof(typename TypeParam::Sym));  // entsize
+
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  Module* module;
+  DumpOptions options(ALL_SYMBOL_DATA, true);
+  EXPECT_TRUE(ReadSymbolDataInternal(this->elfdata,
+                                     "foo",
+                                     "Linux",
+                                     vector<string>(),
+                                     options,
+                                     &module));
+
+  stringstream s;
+  module->Write(s, ALL_SYMBOL_DATA);
+  const string expected =
+    string("MODULE Linux ") + TypeParam::kMachineName
+    + " 000000000000000000000000000000000 foo\n"
+    "INFO CODE_ID 00000000000000000000000000000000\n"
+    "PUBLIC 1000 0 superfunc\n";
+  EXPECT_EQ(expected, s.str());
+  delete module;
+}
+
+TYPED_TEST(DumpSymbols, SimpleBuildID) {
+  ELF elf(TypeParam::kMachine, TypeParam::kClass, kLittleEndian);
+  // Zero out text section for simplicity.
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+
+  // Add a Build ID
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13};
+  Notes notes(kLittleEndian);
+  notes.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                sizeof(kExpectedIdentifierBytes));
+  elf.AddSection(".note.gnu.build-id", notes, SHT_NOTE);
+
+  // Add a public symbol.
+  StringTable table(kLittleEndian);
+  SymbolTable syms(kLittleEndian, TypeParam::kAddrSize, table);
+  syms.AddSymbol("superfunc",
+                   (typename TypeParam::Addr)0x1000,
+                   (typename TypeParam::Addr)0x10,
+                 // ELF32_ST_INFO works for 32-or 64-bit.
+                 ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+                 SHN_UNDEF + 1);
+  int index = elf.AddSection(".dynstr", table, SHT_STRTAB);
+  elf.AddSection(".dynsym", syms,
+                 SHT_DYNSYM,          // type
+                 SHF_ALLOC,           // flags
+                 0,                   // addr
+                 index,               // link
+                 sizeof(typename TypeParam::Sym));  // entsize
+
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  Module* module;
+  DumpOptions options(ALL_SYMBOL_DATA, true);
+  EXPECT_TRUE(ReadSymbolDataInternal(this->elfdata,
+                                     "foo",
+                                     "Linux",
+                                     vector<string>(),
+                                     options,
+                                     &module));
+
+  stringstream s;
+  module->Write(s, ALL_SYMBOL_DATA);
+  const string expected =
+    string("MODULE Linux ") + TypeParam::kMachineName
+    + " 030201000504070608090A0B0C0D0E0F0 foo\n"
+    "INFO CODE_ID 000102030405060708090A0B0C0D0E0F10111213\n"
+    "PUBLIC 1000 0 superfunc\n";
+  EXPECT_EQ(expected, s.str());
+  delete module;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/eintr_wrapper.h b/src/common/linux/eintr_wrapper.h
new file mode 100644
index 0000000..3f1d184
--- /dev/null
+++ b/src/common/linux/eintr_wrapper.h
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_EINTR_WRAPPER_H_
+#define COMMON_LINUX_EINTR_WRAPPER_H_
+
+#include <errno.h>
+
+// This provides a wrapper around system calls which may be interrupted by a
+// signal and return EINTR. See man 7 signal.
+//
+
+#define HANDLE_EINTR(x) ({ \
+  __typeof__(x) eintr_wrapper_result; \
+  do { \
+    eintr_wrapper_result = (x); \
+  } while (eintr_wrapper_result == -1 && errno == EINTR); \
+  eintr_wrapper_result; \
+})
+
+#define IGNORE_EINTR(x) ({ \
+  __typeof__(x) eintr_wrapper_result; \
+  do { \
+    eintr_wrapper_result = (x); \
+    if (eintr_wrapper_result == -1 && errno == EINTR) { \
+      eintr_wrapper_result = 0; \
+    } \
+  } while (0); \
+  eintr_wrapper_result; \
+})
+
+#endif  // COMMON_LINUX_EINTR_WRAPPER_H_
diff --git a/src/common/linux/elf_core_dump.cc b/src/common/linux/elf_core_dump.cc
new file mode 100644
index 0000000..f320609
--- /dev/null
+++ b/src/common/linux/elf_core_dump.cc
@@ -0,0 +1,203 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// elf_core_dump.cc: Implement google_breakpad::ElfCoreDump.
+// See elf_core_dump.h for details.
+
+#include "common/linux/elf_core_dump.h"
+
+#include <stddef.h>
+#include <string.h>
+#include <unistd.h>
+
+namespace google_breakpad {
+
+// Implementation of ElfCoreDump::Note.
+
+ElfCoreDump::Note::Note() {}
+
+ElfCoreDump::Note::Note(const MemoryRange& content) : content_(content) {}
+
+bool ElfCoreDump::Note::IsValid() const {
+  return GetHeader() != NULL;
+}
+
+const ElfCoreDump::Nhdr* ElfCoreDump::Note::GetHeader() const {
+  return content_.GetData<Nhdr>(0);
+}
+
+ElfCoreDump::Word ElfCoreDump::Note::GetType() const {
+  const Nhdr* header = GetHeader();
+  // 0 is not being used as a NOTE type.
+  return header ? header->n_type : 0;
+}
+
+MemoryRange ElfCoreDump::Note::GetName() const {
+  const Nhdr* header = GetHeader();
+  if (header) {
+      return content_.Subrange(sizeof(Nhdr), header->n_namesz);
+  }
+  return MemoryRange();
+}
+
+MemoryRange ElfCoreDump::Note::GetDescription() const {
+  const Nhdr* header = GetHeader();
+  if (header) {
+    return content_.Subrange(AlignedSize(sizeof(Nhdr) + header->n_namesz),
+                             header->n_descsz);
+  }
+  return MemoryRange();
+}
+
+ElfCoreDump::Note ElfCoreDump::Note::GetNextNote() const {
+  MemoryRange next_content;
+  const Nhdr* header = GetHeader();
+  if (header) {
+    size_t next_offset = AlignedSize(sizeof(Nhdr) + header->n_namesz);
+    next_offset = AlignedSize(next_offset + header->n_descsz);
+    next_content =
+        content_.Subrange(next_offset, content_.length() - next_offset);
+  }
+  return Note(next_content);
+}
+
+// static
+size_t ElfCoreDump::Note::AlignedSize(size_t size) {
+  size_t mask = sizeof(Word) - 1;
+  return (size + mask) & ~mask;
+}
+
+
+// Implementation of ElfCoreDump.
+
+ElfCoreDump::ElfCoreDump() : proc_mem_fd_(-1) {}
+
+ElfCoreDump::ElfCoreDump(const MemoryRange& content)
+    : content_(content), proc_mem_fd_(-1) {}
+
+ElfCoreDump::~ElfCoreDump() {
+  if (proc_mem_fd_ != -1) {
+    close(proc_mem_fd_);
+    proc_mem_fd_ = -1;
+  }
+}
+
+void ElfCoreDump::SetContent(const MemoryRange& content) {
+  content_ = content;
+}
+
+void ElfCoreDump::SetProcMem(int fd) {
+  if (proc_mem_fd_ != -1) {
+    close(proc_mem_fd_);
+  }
+  proc_mem_fd_ = fd;
+}
+
+bool ElfCoreDump::IsValid() const {
+  const Ehdr* header = GetHeader();
+  return (header &&
+          header->e_ident[0] == ELFMAG0 &&
+          header->e_ident[1] == ELFMAG1 &&
+          header->e_ident[2] == ELFMAG2 &&
+          header->e_ident[3] == ELFMAG3 &&
+          header->e_ident[4] == kClass &&
+          header->e_version == EV_CURRENT &&
+          header->e_type == ET_CORE);
+}
+
+const ElfCoreDump::Ehdr* ElfCoreDump::GetHeader() const {
+  return content_.GetData<Ehdr>(0);
+}
+
+const ElfCoreDump::Phdr* ElfCoreDump::GetProgramHeader(unsigned index) const {
+  const Ehdr* header = GetHeader();
+  if (header) {
+    return reinterpret_cast<const Phdr*>(content_.GetArrayElement(
+        header->e_phoff, header->e_phentsize, index));
+  }
+  return NULL;
+}
+
+const ElfCoreDump::Phdr* ElfCoreDump::GetFirstProgramHeaderOfType(
+    Word type) const {
+  for (unsigned i = 0, n = GetProgramHeaderCount(); i < n; ++i) {
+    const Phdr* program = GetProgramHeader(i);
+    if (program->p_type == type) {
+      return program;
+    }
+  }
+  return NULL;
+}
+
+unsigned ElfCoreDump::GetProgramHeaderCount() const {
+  const Ehdr* header = GetHeader();
+  return header ? header->e_phnum : 0;
+}
+
+bool ElfCoreDump::CopyData(void* buffer, Addr virtual_address, size_t length) {
+  for (unsigned i = 0, n = GetProgramHeaderCount(); i < n; ++i) {
+    const Phdr* program = GetProgramHeader(i);
+    if (program->p_type != PT_LOAD)
+      continue;
+
+    size_t offset_in_segment = virtual_address - program->p_vaddr;
+    if (virtual_address >= program->p_vaddr &&
+        offset_in_segment < program->p_filesz) {
+      const void* data =
+          content_.GetData(program->p_offset + offset_in_segment, length);
+      if (data) {
+        memcpy(buffer, data, length);
+        return true;
+      }
+    }
+  }
+
+  /* fallback: if available, read from /proc/<pid>/mem */
+  if (proc_mem_fd_ != -1) {
+    off_t offset = virtual_address;
+    ssize_t r = pread(proc_mem_fd_, buffer, length, offset);
+    if (r < ssize_t(length)) {
+      return false;
+    }
+    return true;
+  }
+  return false;
+}
+
+ElfCoreDump::Note ElfCoreDump::GetFirstNote() const {
+  MemoryRange note_content;
+  const Phdr* program_header = GetFirstProgramHeaderOfType(PT_NOTE);
+  if (program_header) {
+    note_content = content_.Subrange(program_header->p_offset,
+                                     program_header->p_filesz);
+  }
+  return Note(note_content);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/elf_core_dump.h b/src/common/linux/elf_core_dump.h
new file mode 100644
index 0000000..c8117a0
--- /dev/null
+++ b/src/common/linux/elf_core_dump.h
@@ -0,0 +1,157 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// elf_core_dump.h: Define the google_breakpad::ElfCoreDump class, which
+// encapsulates an ELF core dump file mapped into memory.
+
+#ifndef COMMON_LINUX_ELF_CORE_DUMP_H_
+#define COMMON_LINUX_ELF_CORE_DUMP_H_
+
+#include <elf.h>
+#include <limits.h>
+#include <link.h>
+#include <stddef.h>
+
+#include "common/memory_range.h"
+
+namespace google_breakpad {
+
+// A class encapsulating an ELF core dump file mapped into memory, which
+// provides methods for accessing program headers and the note section.
+class ElfCoreDump {
+ public:
+  // ELF types based on the native word size.
+  typedef ElfW(Ehdr) Ehdr;
+  typedef ElfW(Nhdr) Nhdr;
+  typedef ElfW(Phdr) Phdr;
+  typedef ElfW(Word) Word;
+  typedef ElfW(Addr) Addr;
+#if ULONG_MAX == 0xffffffff
+  static const int kClass = ELFCLASS32;
+#elif ULONG_MAX == 0xffffffffffffffff
+  static const int kClass = ELFCLASS64;
+#else
+#error "Unsupported word size for ElfCoreDump."
+#endif
+
+  // A class encapsulating the note content in a core dump, which provides
+  // methods for accessing the name and description of a note.
+  class Note {
+   public:
+    Note();
+
+    // Constructor that takes the note content from |content|.
+    explicit Note(const MemoryRange& content);
+
+    // Returns true if this note is valid, i,e. a note header is found in
+    // |content_|, or false otherwise.
+    bool IsValid() const;
+
+    // Returns the note header, or NULL if no note header is found in
+    // |content_|.
+    const Nhdr* GetHeader() const;
+
+    // Returns the note type, or 0 if no note header is found in |content_|.
+    Word GetType() const;
+
+    // Returns a memory range covering the note name, or an empty range
+    // if no valid note name is found in |content_|.
+    MemoryRange GetName() const;
+
+    // Returns a memory range covering the note description, or an empty
+    // range if no valid note description is found in |content_|.
+    MemoryRange GetDescription() const;
+
+    // Returns the note following this note, or an empty note if no valid
+    // note is found after this note.
+    Note GetNextNote() const;
+
+   private:
+    // Returns the size in bytes round up to the word alignment, specified
+    // for the note section, of a given size in bytes.
+    static size_t AlignedSize(size_t size);
+
+    // Note content.
+    MemoryRange content_;
+  };
+
+  ElfCoreDump();
+
+  // Constructor that takes the core dump content from |content|.
+  explicit ElfCoreDump(const MemoryRange& content);
+
+  ~ElfCoreDump();
+
+  // Sets the core dump content to |content|.
+  void SetContent(const MemoryRange& content);
+
+  // Returns true if a valid ELF header in the core dump, or false otherwise.
+  bool IsValid() const;
+
+  // Returns the ELF header in the core dump, or NULL if no ELF header
+  // is found in |content_|.
+  const Ehdr* GetHeader() const;
+
+  // Returns the |index|-th program header in the core dump, or NULL if no
+  // ELF header is found in |content_| or |index| is out of bounds.
+  const Phdr* GetProgramHeader(unsigned index) const;
+
+  // Returns the first program header of |type| in the core dump, or NULL if
+  // no ELF header is found in |content_| or no program header of |type| is
+  // found.
+  const Phdr* GetFirstProgramHeaderOfType(Word type) const;
+
+  // Returns the number of program headers in the core dump, or 0 if no
+  // ELF header is found in |content_|.
+  unsigned GetProgramHeaderCount() const;
+
+  // Copies |length| bytes of data starting at |virtual_address| in the core
+  // dump to |buffer|. |buffer| should be a valid pointer to a buffer of at
+  // least |length| bytes. Returns true if the data to be copied is found in
+  // the core dump, or false otherwise.
+  bool CopyData(void* buffer, Addr virtual_address, size_t length);
+
+  // Returns the first note found in the note section of the core dump, or
+  // an empty note if no note is found.
+  Note GetFirstNote() const;
+
+  // Sets the mem fd.
+  void SetProcMem(const int fd);
+
+ private:
+  // Core dump content.
+  MemoryRange content_;
+
+  // Descriptor for /proc/<pid>/mem.
+  int proc_mem_fd_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_ELF_CORE_DUMP_H_
diff --git a/src/common/linux/elf_core_dump_unittest.cc b/src/common/linux/elf_core_dump_unittest.cc
new file mode 100644
index 0000000..2399c12
--- /dev/null
+++ b/src/common/linux/elf_core_dump_unittest.cc
@@ -0,0 +1,265 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// elf_core_dump_unittest.cc: Unit tests for google_breakpad::ElfCoreDump.
+
+#include <sys/procfs.h>
+
+#include <set>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/elf_core_dump.h"
+#include "common/linux/memory_mapped_file.h"
+#include "common/tests/file_utils.h"
+#include "common/linux/tests/crash_generator.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::AutoTempDir;
+using google_breakpad::CrashGenerator;
+using google_breakpad::ElfCoreDump;
+using google_breakpad::MemoryMappedFile;
+using google_breakpad::MemoryRange;
+using google_breakpad::WriteFile;
+using std::set;
+
+TEST(ElfCoreDumpTest, DefaultConstructor) {
+  ElfCoreDump core;
+  EXPECT_FALSE(core.IsValid());
+  EXPECT_EQ(NULL, core.GetHeader());
+  EXPECT_EQ(0U, core.GetProgramHeaderCount());
+  EXPECT_EQ(NULL, core.GetProgramHeader(0));
+  EXPECT_EQ(NULL, core.GetFirstProgramHeaderOfType(PT_LOAD));
+  EXPECT_FALSE(core.GetFirstNote().IsValid());
+}
+
+TEST(ElfCoreDumpTest, TestElfHeader) {
+  ElfCoreDump::Ehdr header;
+  memset(&header, 0, sizeof(header));
+
+  AutoTempDir temp_dir;
+  string core_path = temp_dir.path() + "/core";
+  const char* core_file = core_path.c_str();
+  MemoryMappedFile mapped_core_file;
+  ElfCoreDump core;
+
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header) - 1));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+  EXPECT_EQ(NULL, core.GetHeader());
+  EXPECT_EQ(0U, core.GetProgramHeaderCount());
+  EXPECT_EQ(NULL, core.GetProgramHeader(0));
+  EXPECT_EQ(NULL, core.GetFirstProgramHeaderOfType(PT_LOAD));
+  EXPECT_FALSE(core.GetFirstNote().IsValid());
+
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_ident[0] = ELFMAG0;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_ident[1] = ELFMAG1;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_ident[2] = ELFMAG2;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_ident[3] = ELFMAG3;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_ident[4] = ElfCoreDump::kClass;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_version = EV_CURRENT;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_FALSE(core.IsValid());
+
+  header.e_type = ET_CORE;
+  ASSERT_TRUE(WriteFile(core_file, &header, sizeof(header)));
+  ASSERT_TRUE(mapped_core_file.Map(core_file, 0));
+  core.SetContent(mapped_core_file.content());
+  EXPECT_TRUE(core.IsValid());
+}
+
+TEST(ElfCoreDumpTest, ValidCoreFile) {
+  CrashGenerator crash_generator;
+  if (!crash_generator.HasDefaultCorePattern()) {
+    fprintf(stderr, "ElfCoreDumpTest.ValidCoreFile test is skipped "
+            "due to non-default core pattern");
+    return;
+  }
+
+  const unsigned kNumOfThreads = 3;
+  const unsigned kCrashThread = 1;
+  const int kCrashSignal = SIGABRT;
+  ASSERT_TRUE(crash_generator.CreateChildCrash(kNumOfThreads, kCrashThread,
+                                               kCrashSignal, NULL));
+  pid_t expected_crash_thread_id = crash_generator.GetThreadId(kCrashThread);
+  set<pid_t> expected_thread_ids;
+  for (unsigned i = 0; i < kNumOfThreads; ++i) {
+    expected_thread_ids.insert(crash_generator.GetThreadId(i));
+  }
+
+#if defined(__ANDROID__)
+  struct stat st;
+  if (stat(crash_generator.GetCoreFilePath().c_str(), &st) != 0) {
+    fprintf(stderr, "ElfCoreDumpTest.ValidCoreFile test is skipped "
+            "due to no core file being generated");
+    return;
+  }
+#endif
+
+  MemoryMappedFile mapped_core_file;
+  ASSERT_TRUE(
+      mapped_core_file.Map(crash_generator.GetCoreFilePath().c_str(), 0));
+
+  ElfCoreDump core;
+  core.SetContent(mapped_core_file.content());
+  EXPECT_TRUE(core.IsValid());
+
+  // Based on write_note_info() in linux/kernel/fs/binfmt_elf.c, notes are
+  // ordered as follows (NT_PRXFPREG and NT_386_TLS are i386 specific):
+  //   Thread           Name          Type
+  //   -------------------------------------------------------------------
+  //   1st thread       CORE          NT_PRSTATUS
+  //   process-wide     CORE          NT_PRPSINFO
+  //   process-wide     CORE          NT_AUXV
+  //   1st thread       CORE          NT_FPREGSET
+  //   1st thread       LINUX         NT_PRXFPREG
+  //   1st thread       LINUX         NT_386_TLS
+  //
+  //   2nd thread       CORE          NT_PRSTATUS
+  //   2nd thread       CORE          NT_FPREGSET
+  //   2nd thread       LINUX         NT_PRXFPREG
+  //   2nd thread       LINUX         NT_386_TLS
+  //
+  //   3rd thread       CORE          NT_PRSTATUS
+  //   3rd thread       CORE          NT_FPREGSET
+  //   3rd thread       LINUX         NT_PRXFPREG
+  //   3rd thread       LINUX         NT_386_TLS
+
+  size_t num_nt_prpsinfo = 0;
+  size_t num_nt_prstatus = 0;
+  size_t num_pr_fpvalid = 0;
+#if defined(__i386__) || defined(__x86_64__)
+  size_t num_nt_fpregset = 0;
+#endif
+#if defined(__i386__)
+  size_t num_nt_prxfpreg = 0;
+#endif
+  set<pid_t> actual_thread_ids;
+  ElfCoreDump::Note note = core.GetFirstNote();
+  while (note.IsValid()) {
+    MemoryRange name = note.GetName();
+    MemoryRange description = note.GetDescription();
+    EXPECT_FALSE(name.IsEmpty());
+    EXPECT_FALSE(description.IsEmpty());
+
+    switch (note.GetType()) {
+      case NT_PRPSINFO: {
+        EXPECT_TRUE(description.data() != NULL);
+        EXPECT_EQ(sizeof(elf_prpsinfo), description.length());
+        ++num_nt_prpsinfo;
+        break;
+      }
+      case NT_PRSTATUS: {
+        EXPECT_TRUE(description.data() != NULL);
+        EXPECT_EQ(sizeof(elf_prstatus), description.length());
+        const elf_prstatus* status = description.GetData<elf_prstatus>(0);
+        actual_thread_ids.insert(status->pr_pid);
+        if (num_nt_prstatus == 0) {
+          EXPECT_EQ(expected_crash_thread_id, status->pr_pid);
+          EXPECT_EQ(kCrashSignal, status->pr_info.si_signo);
+        }
+        ++num_nt_prstatus;
+        if (status->pr_fpvalid)
+          ++num_pr_fpvalid;
+        break;
+      }
+#if defined(__i386__) || defined(__x86_64__)
+      case NT_FPREGSET: {
+        EXPECT_TRUE(description.data() != NULL);
+        EXPECT_EQ(sizeof(user_fpregs_struct), description.length());
+        ++num_nt_fpregset;
+        break;
+      }
+#endif
+#if defined(__i386__)
+      case NT_PRXFPREG: {
+        EXPECT_TRUE(description.data() != NULL);
+        EXPECT_EQ(sizeof(user_fpxregs_struct), description.length());
+        ++num_nt_prxfpreg;
+        break;
+      }
+#endif
+      default:
+        break;
+    }
+    note = note.GetNextNote();
+  }
+
+#if defined(THREAD_SANITIZER)
+  for (std::set<pid_t>::const_iterator expected = expected_thread_ids.begin();
+       expected != expected_thread_ids.end();
+       ++expected) {
+    EXPECT_NE(actual_thread_ids.find(*expected), actual_thread_ids.end());
+  }
+  EXPECT_GE(num_nt_prstatus, kNumOfThreads);
+#else
+  EXPECT_EQ(actual_thread_ids, expected_thread_ids);
+  EXPECT_EQ(num_nt_prstatus, kNumOfThreads);
+#endif
+  EXPECT_EQ(1U, num_nt_prpsinfo);
+#if defined(__i386__) || defined(__x86_64__)
+  EXPECT_EQ(num_pr_fpvalid, num_nt_fpregset);
+#endif
+#if defined(__i386__)
+  EXPECT_EQ(num_pr_fpvalid, num_nt_prxfpreg);
+#endif
+}
diff --git a/src/common/linux/elf_gnu_compat.h b/src/common/linux/elf_gnu_compat.h
new file mode 100644
index 0000000..0a3dfed
--- /dev/null
+++ b/src/common/linux/elf_gnu_compat.h
@@ -0,0 +1,51 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Lei Zhang <thestig@google.com>
+
+// elf_gnu_compat.h: #defines unique to glibc's elf.h.
+
+#ifndef COMMON_LINUX_ELF_GNU_COMPAT_H_
+#define COMMON_LINUX_ELF_GNU_COMPAT_H_
+
+#include <elf.h>
+
+// A note type on GNU systems corresponding to the .note.gnu.build-id section.
+#ifndef NT_GNU_BUILD_ID
+#define NT_GNU_BUILD_ID 3
+#endif
+
+// Newer Linux systems offer this.
+#ifndef NT_SIGINFO
+#define NT_SIGINFO 0x53494749
+#endif
+
+#endif  // COMMON_LINUX_ELF_GNU_COMPAT_H_
diff --git a/src/common/linux/elf_symbols_to_module.cc b/src/common/linux/elf_symbols_to_module.cc
new file mode 100644
index 0000000..81e985a
--- /dev/null
+++ b/src/common/linux/elf_symbols_to_module.cc
@@ -0,0 +1,178 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+#include "common/linux/elf_symbols_to_module.h"
+
+#include <cxxabi.h>
+#include <elf.h>
+#include <string.h>
+
+#include "common/byte_cursor.h"
+#include "common/module.h"
+
+namespace google_breakpad {
+
+class ELFSymbolIterator {
+public:
+  // The contents of an ELF symbol, adjusted for the host's endianness,
+  // word size, and so on. Corresponds to the data in Elf32_Sym / Elf64_Sym.
+  struct Symbol {
+    // True if this iterator has reached the end of the symbol array. When
+    // this is set, the other members of this structure are not valid.
+    bool at_end;
+
+    // The number of this symbol within the list.
+    size_t index;
+
+    // The current symbol's name offset. This is the offset within the
+    // string table.
+    size_t name_offset;
+
+    // The current symbol's value, size, info and shndx fields.
+    uint64_t value;
+    uint64_t size;
+    unsigned char info;
+    uint16_t shndx;
+  };
+
+  // Create an ELFSymbolIterator walking the symbols in BUFFER. Treat the
+  // symbols as big-endian if BIG_ENDIAN is true, as little-endian
+  // otherwise. Assume each symbol has a 'value' field whose size is
+  // VALUE_SIZE.
+  //
+  ELFSymbolIterator(const ByteBuffer* buffer, bool big_endian,
+                    size_t value_size)
+    : value_size_(value_size), cursor_(buffer, big_endian) {
+    // Actually, weird sizes could be handled just fine, but they're
+    // probably mistakes --- expressed in bits, say.
+    assert(value_size == 4 || value_size == 8);
+    symbol_.index = 0;
+    Fetch();
+  }
+
+  // Move to the next symbol. This function's behavior is undefined if
+  // at_end() is true when it is called.
+  ELFSymbolIterator& operator++() { Fetch(); symbol_.index++; return *this; }
+
+  // Dereferencing this iterator produces a reference to an Symbol structure
+  // that holds the current symbol's values. The symbol is owned by this
+  // SymbolIterator, and will be invalidated at the next call to operator++.
+  const Symbol& operator*() const { return symbol_; }
+  const Symbol* operator->() const { return &symbol_; }
+
+private:
+  // Read the symbol at cursor_, and set symbol_ appropriately.
+  void Fetch() {
+    // Elf32_Sym and Elf64_Sym have different layouts.
+    unsigned char other;
+    if (value_size_ == 4) {
+      // Elf32_Sym
+      cursor_
+        .Read(4, false, &symbol_.name_offset)
+        .Read(4, false, &symbol_.value)
+        .Read(4, false, &symbol_.size)
+        .Read(1, false, &symbol_.info)
+        .Read(1, false, &other)
+        .Read(2, false, &symbol_.shndx);
+    } else {
+      // Elf64_Sym
+      cursor_
+        .Read(4, false, &symbol_.name_offset)
+        .Read(1, false, &symbol_.info)
+        .Read(1, false, &other)
+        .Read(2, false, &symbol_.shndx)
+        .Read(8, false, &symbol_.value)
+        .Read(8, false, &symbol_.size);
+    }
+    symbol_.at_end = !cursor_;
+  }
+
+  // The size of symbols' value field, in bytes.
+  size_t value_size_;
+
+  // A byte cursor traversing buffer_.
+  ByteCursor cursor_;
+
+  // Values for the symbol this iterator refers to.
+  Symbol symbol_;
+};
+
+const char* SymbolString(ptrdiff_t offset, ByteBuffer& strings) {
+  if (offset < 0 || (size_t) offset >= strings.Size()) {
+    // Return the null string.
+    offset = 0;
+  }
+  return reinterpret_cast<const char*>(strings.start + offset);
+}
+
+bool ELFSymbolsToModule(const uint8_t* symtab_section,
+                        size_t symtab_size,
+                        const uint8_t* string_section,
+                        size_t string_size,
+                        const bool big_endian,
+                        size_t value_size,
+                        Module* module) {
+  ByteBuffer symbols(symtab_section, symtab_size);
+  // Ensure that the string section is null-terminated.
+  if (string_section[string_size - 1] != '\0') {
+    const void* null_terminator = memrchr(string_section, '\0', string_size);
+    string_size = reinterpret_cast<const uint8_t*>(null_terminator)
+      - string_section;
+  }
+  ByteBuffer strings(string_section, string_size);
+
+  // The iterator walking the symbol table.
+  ELFSymbolIterator iterator(&symbols, big_endian, value_size);
+
+  while(!iterator->at_end) {
+    if (ELF32_ST_TYPE(iterator->info) == STT_FUNC &&
+        iterator->shndx != SHN_UNDEF) {
+      Module::Extern* ext = new Module::Extern(iterator->value);
+      ext->name = SymbolString(iterator->name_offset, strings);
+#if !defined(__ANDROID__)  // Android NDK doesn't provide abi::__cxa_demangle.
+      int status = 0;
+      char* demangled =
+          abi::__cxa_demangle(ext->name.c_str(), NULL, NULL, &status);
+      if (demangled) {
+        if (status == 0)
+          ext->name = demangled;
+        free(demangled);
+      }
+#endif
+      module->AddExtern(ext);
+    }
+    ++iterator;
+  }
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/elf_symbols_to_module.h b/src/common/linux/elf_symbols_to_module.h
new file mode 100644
index 0000000..861f725
--- /dev/null
+++ b/src/common/linux/elf_symbols_to_module.h
@@ -0,0 +1,58 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+// elf_symbols_to_module.h: Exposes ELFSymbolsToModule, a function
+// for reading ELF symbol tables and inserting exported symbol names
+// into a google_breakpad::Module as Extern definitions.
+
+#ifndef BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
+#define BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
+
+#include <stddef.h>
+#include <stdint.h>
+
+namespace google_breakpad {
+
+class Module;
+
+bool ELFSymbolsToModule(const uint8_t* symtab_section,
+                        size_t symtab_size,
+                        const uint8_t* string_section,
+                        size_t string_size,
+                        const bool big_endian,
+                        size_t value_size,
+                        Module* module);
+
+}  // namespace google_breakpad
+
+
+#endif  // BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
diff --git a/src/common/linux/elf_symbols_to_module_unittest.cc b/src/common/linux/elf_symbols_to_module_unittest.cc
new file mode 100644
index 0000000..3f66589
--- /dev/null
+++ b/src/common/linux/elf_symbols_to_module_unittest.cc
@@ -0,0 +1,370 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+// elf_symbols_to_module_unittest.cc:
+// Unittests for google_breakpad::ELFSymbolsToModule
+
+#include <elf.h>
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/elf_symbols_to_module.h"
+#include "common/linux/synth_elf.h"
+#include "common/module.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::Module;
+using google_breakpad::synth_elf::StringTable;
+using google_breakpad::test_assembler::Endianness;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using ::testing::Test;
+using ::testing::TestWithParam;
+using std::vector;
+
+class ELFSymbolsToModuleTestFixture {
+public:
+  ELFSymbolsToModuleTestFixture(Endianness endianness,
+                                size_t value_size) : module("a", "b", "c", "d"),
+                                                     section(endianness),
+                                                     table(endianness),
+                                                     value_size(value_size) {}
+
+  bool ProcessSection() {
+    string section_contents, table_contents;
+    section.GetContents(&section_contents);
+    table.GetContents(&table_contents);
+
+    bool ret = ELFSymbolsToModule(reinterpret_cast<const uint8_t*>(section_contents.data()),
+                                  section_contents.size(),
+                                  reinterpret_cast<const uint8_t*>(table_contents.data()),
+                                  table_contents.size(),
+                                  section.endianness() == kBigEndian,
+                                  value_size,
+                                  &module);
+    module.GetExterns(&externs, externs.end());
+    return ret;
+  }
+
+  Module module;
+  Section section;
+  StringTable table;
+  string section_contents;
+  // 4 or 8 (bytes)
+  size_t value_size;
+
+  vector<Module::Extern*> externs;
+};
+
+class ELFSymbolsToModuleTest32 : public ELFSymbolsToModuleTestFixture,
+                                   public TestWithParam<Endianness>  {
+public:
+  ELFSymbolsToModuleTest32() : ELFSymbolsToModuleTestFixture(GetParam(), 4) {}
+
+  void AddElf32Sym(const string& name, uint32_t value,
+                   uint32_t size, unsigned info, uint16_t shndx) {
+    section
+      .D32(table.Add(name))
+      .D32(value)
+      .D32(size)
+      .D8(info)
+      .D8(0) // other
+      .D16(shndx);
+  }
+};
+
+TEST_P(ELFSymbolsToModuleTest32, NoFuncs) {
+  ProcessSection();
+
+  ASSERT_EQ((size_t)0, externs.size());
+}
+
+TEST_P(ELFSymbolsToModuleTest32, OneFunc) {
+  const string kFuncName = "superfunc";
+  const uint32_t kFuncAddr = 0x1000;
+  const uint32_t kFuncSize = 0x10;
+
+  AddElf32Sym(kFuncName, kFuncAddr, kFuncSize,
+              ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest32, NameOutOfBounds) {
+  const string kFuncName = "";
+  const uint32_t kFuncAddr = 0x1000;
+  const uint32_t kFuncSize = 0x10;
+
+  table.Add("Foo");
+  table.Add("Bar");
+  // Can't use AddElf32Sym because it puts in a valid string offset.
+  section
+    .D32((uint32_t)table.Here().Value() + 1)
+    .D32(kFuncAddr)
+    .D32(kFuncSize)
+    .D8(ELF32_ST_INFO(STB_GLOBAL, STT_FUNC))
+    .D8(0) // other
+    .D16(SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest32, NonTerminatedStringTable) {
+  const string kFuncName = "";
+  const uint32_t kFuncAddr = 0x1000;
+  const uint32_t kFuncSize = 0x10;
+
+  table.Add("Foo");
+  table.Add("Bar");
+  // Add a non-null-terminated string to the end of the string table
+  Label l;
+  table
+    .Mark(&l)
+    .Append("Unterminated");
+  // Can't use AddElf32Sym because it puts in a valid string offset.
+  section
+    .D32((uint32_t)l.Value())
+    .D32(kFuncAddr)
+    .D32(kFuncSize)
+    .D8(ELF32_ST_INFO(STB_GLOBAL, STT_FUNC))
+    .D8(0) // other
+    .D16(SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest32, MultipleFuncs) {
+  const string kFuncName1 = "superfunc";
+  const uint32_t kFuncAddr1 = 0x10001000;
+  const uint32_t kFuncSize1 = 0x10;
+  const string kFuncName2 = "awesomefunc";
+  const uint32_t kFuncAddr2 = 0x20002000;
+  const uint32_t kFuncSize2 = 0x2f;
+  const string kFuncName3 = "megafunc";
+  const uint32_t kFuncAddr3 = 0x30003000;
+  const uint32_t kFuncSize3 = 0x3c;
+
+  AddElf32Sym(kFuncName1, kFuncAddr1, kFuncSize1,
+              ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+  AddElf32Sym(kFuncName2, kFuncAddr2, kFuncSize2,
+              ELF32_ST_INFO(STB_LOCAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 2);
+  AddElf32Sym(kFuncName3, kFuncAddr3, kFuncSize3,
+              ELF32_ST_INFO(STB_LOCAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 3);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)3, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName1, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr1, extern1->address);
+  Module::Extern *extern2 = externs[1];
+  EXPECT_EQ(kFuncName2, extern2->name);
+  EXPECT_EQ((Module::Address)kFuncAddr2, extern2->address);
+  Module::Extern *extern3 = externs[2];
+  EXPECT_EQ(kFuncName3, extern3->name);
+  EXPECT_EQ((Module::Address)kFuncAddr3, extern3->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest32, SkipStuff) {
+  const string kFuncName = "superfunc";
+  const uint32_t kFuncAddr = 0x1000;
+  const uint32_t kFuncSize = 0x10;
+
+  // Should skip functions in SHN_UNDEF
+  AddElf32Sym("skipme", 0xFFFF, 0x10,
+              ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+              SHN_UNDEF);
+  AddElf32Sym(kFuncName, kFuncAddr, kFuncSize,
+              ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+  // Should skip non-STT_FUNC entries.
+  AddElf32Sym("skipmetoo", 0xAAAA, 0x10,
+              ELF32_ST_INFO(STB_GLOBAL, STT_FILE),
+              SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+// Run all the 32-bit tests with both endianness
+INSTANTIATE_TEST_CASE_P(Endian,
+                        ELFSymbolsToModuleTest32,
+                        ::testing::Values(kLittleEndian, kBigEndian));
+
+// Similar tests, but with 64-bit values. Ostensibly this could be
+// shoehorned into the parameterization by using ::testing::Combine,
+// but that would make it difficult to get the types right since these
+// actual test cases aren't parameterized. This could also be written
+// as a type-parameterized test, but combining that with a value-parameterized
+// test seemed really ugly, and also makes it harder to test 64-bit
+// values.
+class ELFSymbolsToModuleTest64 : public ELFSymbolsToModuleTestFixture,
+                                 public TestWithParam<Endianness>  {
+public:
+  ELFSymbolsToModuleTest64() : ELFSymbolsToModuleTestFixture(GetParam(), 8) {}
+
+  void AddElf64Sym(const string& name, uint64_t value,
+                   uint64_t size, unsigned info, uint16_t shndx) {
+    section
+      .D32(table.Add(name))
+      .D8(info)
+      .D8(0) // other
+      .D16(shndx)
+      .D64(value)
+      .D64(size);
+  }
+};
+
+TEST_P(ELFSymbolsToModuleTest64, NoFuncs) {
+  ProcessSection();
+
+  ASSERT_EQ((size_t)0, externs.size());
+}
+
+TEST_P(ELFSymbolsToModuleTest64, OneFunc) {
+  const string kFuncName = "superfunc";
+  const uint64_t kFuncAddr = 0x1000200030004000ULL;
+  const uint64_t kFuncSize = 0x1000;
+
+  AddElf64Sym(kFuncName, kFuncAddr, kFuncSize,
+              ELF64_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest64, MultipleFuncs) {
+  const string kFuncName1 = "superfunc";
+  const uint64_t kFuncAddr1 = 0x1000100010001000ULL;
+  const uint64_t kFuncSize1 = 0x1000;
+  const string kFuncName2 = "awesomefunc";
+  const uint64_t kFuncAddr2 = 0x2000200020002000ULL;
+  const uint64_t kFuncSize2 = 0x2f00;
+  const string kFuncName3 = "megafunc";
+  const uint64_t kFuncAddr3 = 0x3000300030003000ULL;
+  const uint64_t kFuncSize3 = 0x3c00;
+
+  AddElf64Sym(kFuncName1, kFuncAddr1, kFuncSize1,
+              ELF64_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+  AddElf64Sym(kFuncName2, kFuncAddr2, kFuncSize2,
+              ELF64_ST_INFO(STB_LOCAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 2);
+  AddElf64Sym(kFuncName3, kFuncAddr3, kFuncSize3,
+              ELF64_ST_INFO(STB_LOCAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 3);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)3, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName1, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr1, extern1->address);
+  Module::Extern *extern2 = externs[1];
+  EXPECT_EQ(kFuncName2, extern2->name);
+  EXPECT_EQ((Module::Address)kFuncAddr2, extern2->address);
+  Module::Extern *extern3 = externs[2];
+  EXPECT_EQ(kFuncName3, extern3->name);
+  EXPECT_EQ((Module::Address)kFuncAddr3, extern3->address);
+}
+
+TEST_P(ELFSymbolsToModuleTest64, SkipStuff) {
+  const string kFuncName = "superfunc";
+  const uint64_t kFuncAddr = 0x1000100010001000ULL;
+  const uint64_t kFuncSize = 0x1000;
+
+  // Should skip functions in SHN_UNDEF
+  AddElf64Sym("skipme", 0xFFFF, 0x10,
+              ELF64_ST_INFO(STB_GLOBAL, STT_FUNC),
+              SHN_UNDEF);
+  AddElf64Sym(kFuncName, kFuncAddr, kFuncSize,
+              ELF64_ST_INFO(STB_GLOBAL, STT_FUNC),
+              // Doesn't really matter, just can't be SHN_UNDEF.
+              SHN_UNDEF + 1);
+  // Should skip non-STT_FUNC entries.
+  AddElf64Sym("skipmetoo", 0xAAAA, 0x10,
+              ELF64_ST_INFO(STB_GLOBAL, STT_FILE),
+              SHN_UNDEF + 1);
+
+  ProcessSection();
+
+  ASSERT_EQ((size_t)1, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_EQ(kFuncName, extern1->name);
+  EXPECT_EQ((Module::Address)kFuncAddr, extern1->address);
+}
+
+// Run all the 64-bit tests with both endianness
+INSTANTIATE_TEST_CASE_P(Endian,
+                        ELFSymbolsToModuleTest64,
+                        ::testing::Values(kLittleEndian, kBigEndian));
diff --git a/src/common/linux/elfutils-inl.h b/src/common/linux/elfutils-inl.h
new file mode 100644
index 0000000..e56b37a
--- /dev/null
+++ b/src/common/linux/elfutils-inl.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_ELFUTILS_INL_H__
+#define COMMON_LINUX_ELFUTILS_INL_H__
+
+#include "common/linux/linux_libc_support.h"
+#include "elfutils.h"
+
+namespace google_breakpad {
+
+template<typename ElfClass, typename T>
+const T* GetOffset(const typename ElfClass::Ehdr* elf_header,
+                   typename ElfClass::Off offset) {
+  return reinterpret_cast<const T*>(reinterpret_cast<uintptr_t>(elf_header) +
+                                    offset);
+}
+
+template<typename ElfClass>
+const typename ElfClass::Shdr* FindElfSectionByName(
+    const char* name,
+    typename ElfClass::Word section_type,
+    const typename ElfClass::Shdr* sections,
+    const char* section_names,
+    const char* names_end,
+    int nsection) {
+  assert(name != NULL);
+  assert(sections != NULL);
+  assert(nsection > 0);
+
+  int name_len = my_strlen(name);
+  if (name_len == 0)
+    return NULL;
+
+  for (int i = 0; i < nsection; ++i) {
+    const char* section_name = section_names + sections[i].sh_name;
+    if (sections[i].sh_type == section_type &&
+        names_end - section_name >= name_len + 1 &&
+        my_strcmp(name, section_name) == 0) {
+      return sections + i;
+    }
+  }
+  return NULL;
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_ELFUTILS_INL_H__
diff --git a/src/common/linux/elfutils.cc b/src/common/linux/elfutils.cc
new file mode 100644
index 0000000..aa95357
--- /dev/null
+++ b/src/common/linux/elfutils.cc
@@ -0,0 +1,243 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/linux/elfutils.h"
+
+#include <assert.h>
+#include <string.h>
+
+#include "common/linux/linux_libc_support.h"
+#include "common/linux/elfutils-inl.h"
+
+namespace google_breakpad {
+
+namespace {
+
+template<typename ElfClass>
+void FindElfClassSection(const char* elf_base,
+                         const char* section_name,
+                         typename ElfClass::Word section_type,
+                         const void** section_start,
+                         size_t* section_size) {
+  typedef typename ElfClass::Ehdr Ehdr;
+  typedef typename ElfClass::Shdr Shdr;
+
+  assert(elf_base);
+  assert(section_start);
+  assert(section_size);
+
+  assert(my_strncmp(elf_base, ELFMAG, SELFMAG) == 0);
+
+  const Ehdr* elf_header = reinterpret_cast<const Ehdr*>(elf_base);
+  assert(elf_header->e_ident[EI_CLASS] == ElfClass::kClass);
+
+  if (elf_header->e_shoff == 0) {
+    *section_start = NULL;
+    *section_size = 0;
+    return;
+  }
+
+  const Shdr* sections =
+    GetOffset<ElfClass, Shdr>(elf_header, elf_header->e_shoff);
+  const Shdr* section_names = sections + elf_header->e_shstrndx;
+  const char* names =
+    GetOffset<ElfClass, char>(elf_header, section_names->sh_offset);
+  const char* names_end = names + section_names->sh_size;
+
+  const Shdr* section =
+    FindElfSectionByName<ElfClass>(section_name, section_type,
+                                   sections, names, names_end,
+                                   elf_header->e_shnum);
+
+  if (section != NULL && section->sh_size > 0) {
+    *section_start = elf_base + section->sh_offset;
+    *section_size = section->sh_size;
+  }
+}
+
+template<typename ElfClass>
+void FindElfClassSegment(const char* elf_base,
+                         typename ElfClass::Word segment_type,
+                         wasteful_vector<ElfSegment>* segments) {
+  typedef typename ElfClass::Ehdr Ehdr;
+  typedef typename ElfClass::Phdr Phdr;
+
+  assert(elf_base);
+  assert(segments);
+
+  assert(my_strncmp(elf_base, ELFMAG, SELFMAG) == 0);
+
+  const Ehdr* elf_header = reinterpret_cast<const Ehdr*>(elf_base);
+  assert(elf_header->e_ident[EI_CLASS] == ElfClass::kClass);
+
+  const Phdr* phdrs =
+    GetOffset<ElfClass, Phdr>(elf_header, elf_header->e_phoff);
+
+  for (int i = 0; i < elf_header->e_phnum; ++i) {
+    if (phdrs[i].p_type == segment_type) {
+      ElfSegment seg = {};
+      seg.start = elf_base + phdrs[i].p_offset;
+      seg.size = phdrs[i].p_filesz;
+      segments->push_back(seg);
+    }
+  }
+}
+
+}  // namespace
+
+bool IsValidElf(const void* elf_base) {
+  return my_strncmp(reinterpret_cast<const char*>(elf_base),
+                    ELFMAG, SELFMAG) == 0;
+}
+
+int ElfClass(const void* elf_base) {
+  const ElfW(Ehdr)* elf_header =
+    reinterpret_cast<const ElfW(Ehdr)*>(elf_base);
+
+  return elf_header->e_ident[EI_CLASS];
+}
+
+bool FindElfSection(const void* elf_mapped_base,
+                    const char* section_name,
+                    uint32_t section_type,
+                    const void** section_start,
+                    size_t* section_size) {
+  assert(elf_mapped_base);
+  assert(section_start);
+  assert(section_size);
+
+  *section_start = NULL;
+  *section_size = 0;
+
+  if (!IsValidElf(elf_mapped_base))
+    return false;
+
+  int cls = ElfClass(elf_mapped_base);
+  const char* elf_base =
+    static_cast<const char*>(elf_mapped_base);
+
+  if (cls == ELFCLASS32) {
+    FindElfClassSection<ElfClass32>(elf_base, section_name, section_type,
+                                    section_start, section_size);
+    return *section_start != NULL;
+  } else if (cls == ELFCLASS64) {
+    FindElfClassSection<ElfClass64>(elf_base, section_name, section_type,
+                                    section_start, section_size);
+    return *section_start != NULL;
+  }
+
+  return false;
+}
+
+bool FindElfSegments(const void* elf_mapped_base,
+                     uint32_t segment_type,
+                     wasteful_vector<ElfSegment>* segments) {
+  assert(elf_mapped_base);
+  assert(segments);
+
+  if (!IsValidElf(elf_mapped_base))
+    return false;
+
+  int cls = ElfClass(elf_mapped_base);
+  const char* elf_base =
+    static_cast<const char*>(elf_mapped_base);
+
+  if (cls == ELFCLASS32) {
+    FindElfClassSegment<ElfClass32>(elf_base, segment_type, segments);
+    return true;
+  } else if (cls == ELFCLASS64) {
+    FindElfClassSegment<ElfClass64>(elf_base, segment_type, segments);
+    return true;
+  }
+
+  return false;
+}
+
+template <typename ElfClass>
+bool FindElfSoNameFromDynamicSection(const void* section_start,
+                                     size_t section_size,
+                                     const void* dynstr_start,
+                                     size_t dynstr_size,
+                                     char* soname,
+                                     size_t soname_size) {
+  typedef typename ElfClass::Dyn Dyn;
+
+  auto* dynamic = static_cast<const Dyn*>(section_start);
+  size_t dcount = section_size / sizeof(Dyn);
+  for (const Dyn* dyn = dynamic; dyn < dynamic + dcount; ++dyn) {
+    if (dyn->d_tag == DT_SONAME) {
+      const char* dynstr = static_cast<const char*>(dynstr_start);
+      if (dyn->d_un.d_val >= dynstr_size) {
+        // Beyond the end of the dynstr section
+        return false;
+      }
+      const char* str = dynstr + dyn->d_un.d_val;
+      const size_t maxsize = dynstr_size - dyn->d_un.d_val;
+      my_strlcpy(soname, str, maxsize < soname_size ? maxsize : soname_size);
+      return true;
+    }
+  }
+
+  return false;
+}
+
+bool ElfFileSoNameFromMappedFile(const void* elf_base,
+                                 char* soname,
+                                 size_t soname_size) {
+  if (!IsValidElf(elf_base)) {
+    // Not ELF
+    return false;
+  }
+
+  const void* segment_start;
+  size_t segment_size;
+  if (!FindElfSection(elf_base, ".dynamic", SHT_DYNAMIC, &segment_start,
+                      &segment_size)) {
+    // No dynamic section
+    return false;
+  }
+
+  const void* dynstr_start;
+  size_t dynstr_size;
+  if (!FindElfSection(elf_base, ".dynstr", SHT_STRTAB, &dynstr_start,
+                      &dynstr_size)) {
+    // No dynstr section
+    return false;
+  }
+
+  int cls = ElfClass(elf_base);
+  return cls == ELFCLASS32 ? FindElfSoNameFromDynamicSection<ElfClass32>(
+                                 segment_start, segment_size, dynstr_start,
+                                 dynstr_size, soname, soname_size)
+                           : FindElfSoNameFromDynamicSection<ElfClass64>(
+                                 segment_start, segment_size, dynstr_start,
+                                 dynstr_size, soname, soname_size);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/elfutils.h b/src/common/linux/elfutils.h
new file mode 100644
index 0000000..ec5872a
--- /dev/null
+++ b/src/common/linux/elfutils.h
@@ -0,0 +1,135 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// elfutils.h: Utilities for dealing with ELF files.
+//
+
+#ifndef COMMON_LINUX_ELFUTILS_H_
+#define COMMON_LINUX_ELFUTILS_H_
+
+#include <elf.h>
+#include <link.h>
+#include <stdint.h>
+
+#include "common/memory_allocator.h"
+
+namespace google_breakpad {
+
+// Traits classes so consumers can write templatized code to deal
+// with specific ELF bits.
+struct ElfClass32 {
+  typedef Elf32_Addr Addr;
+  typedef Elf32_Dyn Dyn;
+  typedef Elf32_Ehdr Ehdr;
+  typedef Elf32_Nhdr Nhdr;
+  typedef Elf32_Phdr Phdr;
+  typedef Elf32_Shdr Shdr;
+  typedef Elf32_Half Half;
+  typedef Elf32_Off Off;
+  typedef Elf32_Sym Sym;
+  typedef Elf32_Word Word;
+
+  static const int kClass = ELFCLASS32;
+  static const uint16_t kMachine = EM_386;
+  static const size_t kAddrSize = sizeof(Elf32_Addr);
+  static constexpr const char* kMachineName = "x86";
+};
+
+struct ElfClass64 {
+  typedef Elf64_Addr Addr;
+  typedef Elf64_Dyn Dyn;
+  typedef Elf64_Ehdr Ehdr;
+  typedef Elf64_Nhdr Nhdr;
+  typedef Elf64_Phdr Phdr;
+  typedef Elf64_Shdr Shdr;
+  typedef Elf64_Half Half;
+  typedef Elf64_Off Off;
+  typedef Elf64_Sym Sym;
+  typedef Elf64_Word Word;
+
+  static const int kClass = ELFCLASS64;
+  static const uint16_t kMachine = EM_X86_64;
+  static const size_t kAddrSize = sizeof(Elf64_Addr);
+  static constexpr const char* kMachineName = "x86_64";
+};
+
+bool IsValidElf(const void* elf_header);
+int ElfClass(const void* elf_base);
+
+// Attempt to find a section named |section_name| of type |section_type|
+// in the ELF binary data at |elf_mapped_base|. On success, returns true
+// and sets |*section_start| to point to the start of the section data,
+// and |*section_size| to the size of the section's data.
+bool FindElfSection(const void* elf_mapped_base,
+                    const char* section_name,
+                    uint32_t section_type,
+                    const void** section_start,
+                    size_t* section_size);
+
+// Internal helper method, exposed for convenience for callers
+// that already have more info.
+template<typename ElfClass>
+const typename ElfClass::Shdr*
+FindElfSectionByName(const char* name,
+                     typename ElfClass::Word section_type,
+                     const typename ElfClass::Shdr* sections,
+                     const char* section_names,
+                     const char* names_end,
+                     int nsection);
+
+struct ElfSegment {
+  const void* start;
+  size_t size;
+};
+
+// Attempt to find all segments of type |segment_type| in the ELF
+// binary data at |elf_mapped_base|. On success, returns true and fills
+// |*segments| with a list of segments of the given type.
+bool FindElfSegments(const void* elf_mapped_base,
+                     uint32_t segment_type,
+                     wasteful_vector<ElfSegment>* segments);
+
+// Convert an offset from an Elf header into a pointer to the mapped
+// address in the current process. Takes an extra template parameter
+// to specify the return type to avoid having to dynamic_cast the
+// result.
+template<typename ElfClass, typename T>
+const T*
+GetOffset(const typename ElfClass::Ehdr* elf_header,
+          typename ElfClass::Off offset);
+
+// Read the value of DT_SONAME from the elf file mapped at |elf_base|. Returns
+// true and fills |soname| with the result if found.
+bool ElfFileSoNameFromMappedFile(const void* elf_base,
+                                 char* soname,
+                                 size_t soname_size);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_ELFUTILS_H_
diff --git a/src/common/linux/file_id.cc b/src/common/linux/file_id.cc
new file mode 100644
index 0000000..9944af7
--- /dev/null
+++ b/src/common/linux/file_id.cc
@@ -0,0 +1,201 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// file_id.cc: Return a unique identifier for a file
+//
+// See file_id.h for documentation
+//
+
+#include "common/linux/file_id.h"
+
+#include <arpa/inet.h>
+#include <assert.h>
+#include <string.h>
+
+#include <algorithm>
+#include <string>
+
+#include "common/linux/elf_gnu_compat.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/linux_libc_support.h"
+#include "common/linux/memory_mapped_file.h"
+#include "common/using_std_string.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+// Used in a few places for backwards-compatibility.
+const size_t kMDGUIDSize = sizeof(MDGUID);
+
+FileID::FileID(const char* path) : path_(path) {}
+
+// ELF note name and desc are 32-bits word padded.
+#define NOTE_PADDING(a) ((a + 3) & ~3)
+
+// These functions are also used inside the crashed process, so be safe
+// and use the syscall/libc wrappers instead of direct syscalls or libc.
+
+static bool ElfClassBuildIDNoteIdentifier(const void* section, size_t length,
+                                          wasteful_vector<uint8_t>& identifier) {
+  static_assert(sizeof(ElfClass32::Nhdr) == sizeof(ElfClass64::Nhdr),
+                "Elf32_Nhdr and Elf64_Nhdr should be the same");
+  typedef typename ElfClass32::Nhdr Nhdr;
+
+  const void* section_end = reinterpret_cast<const char*>(section) + length;
+  const Nhdr* note_header = reinterpret_cast<const Nhdr*>(section);
+  while (reinterpret_cast<const void*>(note_header) < section_end) {
+    if (note_header->n_type == NT_GNU_BUILD_ID)
+      break;
+    note_header = reinterpret_cast<const Nhdr*>(
+                  reinterpret_cast<const char*>(note_header) + sizeof(Nhdr) +
+                  NOTE_PADDING(note_header->n_namesz) +
+                  NOTE_PADDING(note_header->n_descsz));
+  }
+  if (reinterpret_cast<const void*>(note_header) >= section_end ||
+      note_header->n_descsz == 0) {
+    return false;
+  }
+
+  const uint8_t* build_id = reinterpret_cast<const uint8_t*>(note_header) +
+    sizeof(Nhdr) + NOTE_PADDING(note_header->n_namesz);
+  identifier.insert(identifier.end(),
+                    build_id,
+                    build_id + note_header->n_descsz);
+
+  return true;
+}
+
+// Attempt to locate a .note.gnu.build-id section in an ELF binary
+// and copy it into |identifier|.
+static bool FindElfBuildIDNote(const void* elf_mapped_base,
+                               wasteful_vector<uint8_t>& identifier) {
+  PageAllocator allocator;
+  // lld normally creates 2 PT_NOTEs, gold normally creates 1.
+  auto_wasteful_vector<ElfSegment, 2> segs(&allocator);
+  if (FindElfSegments(elf_mapped_base, PT_NOTE, &segs)) {
+    for (ElfSegment& seg : segs) {
+      if (ElfClassBuildIDNoteIdentifier(seg.start, seg.size, identifier)) {
+        return true;
+      }
+    }
+  }
+
+  void* note_section;
+  size_t note_size;
+  if (FindElfSection(elf_mapped_base, ".note.gnu.build-id", SHT_NOTE,
+                     (const void**)&note_section, &note_size)) {
+    return ElfClassBuildIDNoteIdentifier(note_section, note_size, identifier);
+  }
+
+  return false;
+}
+
+// Attempt to locate the .text section of an ELF binary and generate
+// a simple hash by XORing the first page worth of bytes into |identifier|.
+static bool HashElfTextSection(const void* elf_mapped_base,
+                               wasteful_vector<uint8_t>& identifier) {
+  identifier.resize(kMDGUIDSize);
+
+  void* text_section;
+  size_t text_size;
+  if (!FindElfSection(elf_mapped_base, ".text", SHT_PROGBITS,
+                      (const void**)&text_section, &text_size) ||
+      text_size == 0) {
+    return false;
+  }
+
+  // Only provide |kMDGUIDSize| bytes to keep identifiers produced by this
+  // function backwards-compatible.
+  my_memset(&identifier[0], 0, kMDGUIDSize);
+  const uint8_t* ptr = reinterpret_cast<const uint8_t*>(text_section);
+  const uint8_t* ptr_end = ptr + std::min(text_size, static_cast<size_t>(4096));
+  while (ptr < ptr_end) {
+    for (unsigned i = 0; i < kMDGUIDSize; i++)
+      identifier[i] ^= ptr[i];
+    ptr += kMDGUIDSize;
+  }
+  return true;
+}
+
+// static
+bool FileID::ElfFileIdentifierFromMappedFile(const void* base,
+                                             wasteful_vector<uint8_t>& identifier) {
+  // Look for a build id note first.
+  if (FindElfBuildIDNote(base, identifier))
+    return true;
+
+  // Fall back on hashing the first page of the text section.
+  return HashElfTextSection(base, identifier);
+}
+
+bool FileID::ElfFileIdentifier(wasteful_vector<uint8_t>& identifier) {
+  MemoryMappedFile mapped_file(path_.c_str(), 0);
+  if (!mapped_file.data())  // Should probably check if size >= ElfW(Ehdr)?
+    return false;
+
+  return ElfFileIdentifierFromMappedFile(mapped_file.data(), identifier);
+}
+
+// These three functions are not ever called in an unsafe context, so it's OK
+// to allocate memory and use libc.
+static string bytes_to_hex_string(const uint8_t* bytes, size_t count) {
+  string result;
+  for (unsigned int idx = 0; idx < count; ++idx) {
+    char buf[3];
+    snprintf(buf, sizeof(buf), "%02X", bytes[idx]);
+    result.append(buf);
+  }
+  return result;
+}
+
+// static
+string FileID::ConvertIdentifierToUUIDString(
+    const wasteful_vector<uint8_t>& identifier) {
+  uint8_t identifier_swapped[kMDGUIDSize] = { 0 };
+
+  // Endian-ness swap to match dump processor expectation.
+  memcpy(identifier_swapped, &identifier[0],
+         std::min(kMDGUIDSize, identifier.size()));
+  uint32_t* data1 = reinterpret_cast<uint32_t*>(identifier_swapped);
+  *data1 = htonl(*data1);
+  uint16_t* data2 = reinterpret_cast<uint16_t*>(identifier_swapped + 4);
+  *data2 = htons(*data2);
+  uint16_t* data3 = reinterpret_cast<uint16_t*>(identifier_swapped + 6);
+  *data3 = htons(*data3);
+
+  return bytes_to_hex_string(identifier_swapped, kMDGUIDSize);
+}
+
+// static
+string FileID::ConvertIdentifierToString(
+    const wasteful_vector<uint8_t>& identifier) {
+  return bytes_to_hex_string(&identifier[0], identifier.size());
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/file_id.h b/src/common/linux/file_id.h
new file mode 100644
index 0000000..4aff021
--- /dev/null
+++ b/src/common/linux/file_id.h
@@ -0,0 +1,88 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// file_id.h: Return a unique identifier for a file
+//
+
+#ifndef COMMON_LINUX_FILE_ID_H__
+#define COMMON_LINUX_FILE_ID_H__
+
+#include <limits.h>
+#include <string>
+
+#include "common/linux/guid_creator.h"
+#include "common/memory_allocator.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// GNU binutils' ld defaults to 'sha1', which is 160 bits == 20 bytes,
+// so this is enough to fit that, which most binaries will use.
+// This is just a sensible default for auto_wasteful_vector so most
+// callers can get away with stack allocation.
+static const size_t kDefaultBuildIdSize = 20;
+
+class FileID {
+ public:
+  explicit FileID(const char* path);
+  ~FileID() {}
+
+  // Load the identifier for the elf file path specified in the constructor into
+  // |identifier|.
+  //
+  // The current implementation will look for a .note.gnu.build-id
+  // section and use that as the file id, otherwise it falls back to
+  // XORing the first 4096 bytes of the .text section to generate an identifier.
+  bool ElfFileIdentifier(wasteful_vector<uint8_t>& identifier);
+
+  // Load the identifier for the elf file mapped into memory at |base| into
+  // |identifier|. Return false if the identifier could not be created for this
+  // file.
+  static bool ElfFileIdentifierFromMappedFile(
+      const void* base,
+      wasteful_vector<uint8_t>& identifier);
+
+  // Convert the |identifier| data to a string.  The string will
+  // be formatted as a UUID in all uppercase without dashes.
+  // (e.g., 22F065BBFC9C49F780FE26A7CEBD7BCE).
+  static string ConvertIdentifierToUUIDString(
+      const wasteful_vector<uint8_t>& identifier);
+
+  // Convert the entire |identifier| data to a hex string.
+  static string ConvertIdentifierToString(
+      const wasteful_vector<uint8_t>& identifier);
+
+ private:
+  // Storage for the path specified
+  string path_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_FILE_ID_H__
diff --git a/src/common/linux/file_id_unittest.cc b/src/common/linux/file_id_unittest.cc
new file mode 100644
index 0000000..8225e5a
--- /dev/null
+++ b/src/common/linux/file_id_unittest.cc
@@ -0,0 +1,381 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unit tests for FileID
+
+#include <elf.h>
+#include <spawn.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include <string>
+#include <vector>
+
+#include "common/linux/elf_gnu_compat.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/file_id.h"
+#include "common/linux/safe_readlink.h"
+#include "common/linux/synth_elf.h"
+#include "common/test_assembler.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/tests/file_utils.h"
+#include "common/using_std_string.h"
+#include "breakpad_googletest_includes.h"
+
+using namespace google_breakpad;
+using google_breakpad::synth_elf::ELF;
+using google_breakpad::synth_elf::Notes;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using ::testing::Types;
+
+namespace {
+
+// Simply calling Section::Append(size, byte) produces a uninteresting pattern
+// that tends to get hashed to 0000...0000. This populates the section with
+// data to produce better hashes.
+void PopulateSection(Section* section, int size, int prime_number) {
+  for (int i = 0; i < size; i++)
+    section->Append(1, (i % prime_number) % 256);
+}
+
+typedef wasteful_vector<uint8_t> id_vector;
+
+}  // namespace
+
+#ifndef __ANDROID__
+// This test is disabled on Android: It will always fail, since there is no
+// 'strip' binary installed on test devices.
+TEST(FileIDStripTest, StripSelf) {
+  // Calculate the File ID of this binary using
+  // FileID::ElfFileIdentifier, then make a copy of this binary,
+  // strip it, and ensure that the result is the same.
+  char exe_name[PATH_MAX];
+  ASSERT_TRUE(SafeReadLink("/proc/self/exe", exe_name));
+
+  // copy our binary to a temp file, and strip it
+  AutoTempDir temp_dir;
+  string templ = temp_dir.path() + "/file-id-unittest";
+  ASSERT_TRUE(CopyFile(exe_name, templ));
+  pid_t pid;
+  char* argv[] = {
+      const_cast<char*>("strip"),
+      const_cast<char*>(templ.c_str()),
+      nullptr,
+  };
+  ASSERT_EQ(0, posix_spawnp(&pid, argv[0], nullptr, nullptr, argv, nullptr));
+  int status;
+  ASSERT_EQ(pid, waitpid(pid, &status, 0));
+  ASSERT_TRUE(WIFEXITED(status));
+  ASSERT_EQ(0, WEXITSTATUS(status));
+
+  PageAllocator allocator;
+  id_vector identifier1(&allocator, kDefaultBuildIdSize);
+  id_vector identifier2(&allocator, kDefaultBuildIdSize);
+
+  FileID fileid1(exe_name);
+  EXPECT_TRUE(fileid1.ElfFileIdentifier(identifier1));
+  FileID fileid2(templ.c_str());
+  EXPECT_TRUE(fileid2.ElfFileIdentifier(identifier2));
+
+  string identifier_string1 =
+      FileID::ConvertIdentifierToUUIDString(identifier1);
+  string identifier_string2 =
+      FileID::ConvertIdentifierToUUIDString(identifier2);
+  EXPECT_EQ(identifier_string1, identifier_string2);
+}
+#endif  // !__ANDROID__
+
+template<typename ElfClass>
+class FileIDTest : public testing::Test {
+public:
+  void GetElfContents(ELF& elf) {
+    string contents;
+    ASSERT_TRUE(elf.GetContents(&contents));
+    ASSERT_LT(0U, contents.size());
+
+    elfdata_v.clear();
+    elfdata_v.insert(elfdata_v.begin(), contents.begin(), contents.end());
+    elfdata = &elfdata_v[0];
+  }
+
+  id_vector make_vector() {
+    return id_vector(&allocator, kDefaultBuildIdSize);
+  }
+
+  template<size_t N>
+  string get_file_id(const uint8_t (&data)[N]) {
+    id_vector expected_identifier(make_vector());
+    expected_identifier.insert(expected_identifier.end(),
+                               &data[0],
+                               data + N);
+    return FileID::ConvertIdentifierToUUIDString(expected_identifier);
+  }
+
+  vector<uint8_t> elfdata_v;
+  uint8_t* elfdata;
+  PageAllocator allocator;
+};
+
+typedef Types<ElfClass32, ElfClass64> ElfClasses;
+
+TYPED_TEST_SUITE(FileIDTest, ElfClasses);
+
+TYPED_TEST(FileIDTest, ElfClass) {
+  const char expected_identifier_string[] =
+      "80808080808000000000008080808080";
+  const size_t kTextSectionSize = 128;
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  for (size_t i = 0; i < kTextSectionSize; ++i) {
+    text.D8(i * 3);
+  }
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+TYPED_TEST(FileIDTest, BuildID) {
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13};
+  const string expected_identifier_string =
+      this->get_file_id(kExpectedIdentifierBytes);
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  Notes notes(kLittleEndian);
+  notes.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                sizeof(kExpectedIdentifierBytes));
+  elf.AddSection(".note.gnu.build-id", notes, SHT_NOTE);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+  EXPECT_EQ(sizeof(kExpectedIdentifierBytes), identifier.size());
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+// Test that a build id note with fewer bytes than usual is handled.
+TYPED_TEST(FileIDTest, BuildIDShort) {
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03};
+  const string expected_identifier_string =
+      this->get_file_id(kExpectedIdentifierBytes);
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  Notes notes(kLittleEndian);
+  notes.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                sizeof(kExpectedIdentifierBytes));
+  elf.AddSection(".note.gnu.build-id", notes, SHT_NOTE);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+  EXPECT_EQ(sizeof(kExpectedIdentifierBytes), identifier.size());
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+// Test that a build id note with more bytes than usual is handled.
+TYPED_TEST(FileIDTest, BuildIDLong) {
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+     0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F};
+  const string expected_identifier_string =
+      this->get_file_id(kExpectedIdentifierBytes);
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  Notes notes(kLittleEndian);
+  notes.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                sizeof(kExpectedIdentifierBytes));
+  elf.AddSection(".note.gnu.build-id", notes, SHT_NOTE);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+  EXPECT_EQ(sizeof(kExpectedIdentifierBytes), identifier.size());
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+TYPED_TEST(FileIDTest, BuildIDPH) {
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13};
+  const string expected_identifier_string =
+      this->get_file_id(kExpectedIdentifierBytes);
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  Notes notes(kLittleEndian);
+  notes.AddNote(0, "Linux",
+                reinterpret_cast<const uint8_t*>("\0x42\0x02\0\0"), 4);
+  notes.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                sizeof(kExpectedIdentifierBytes));
+  int note_idx = elf.AddSection(".note", notes, SHT_NOTE);
+  elf.AddSegment(note_idx, note_idx, PT_NOTE);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+  EXPECT_EQ(sizeof(kExpectedIdentifierBytes), identifier.size());
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+TYPED_TEST(FileIDTest, BuildIDMultiplePH) {
+  const uint8_t kExpectedIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13};
+  const string expected_identifier_string =
+      this->get_file_id(kExpectedIdentifierBytes);
+
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4096, 0);
+  elf.AddSection(".text", text, SHT_PROGBITS);
+  Notes notes1(kLittleEndian);
+  notes1.AddNote(0, "Linux",
+                reinterpret_cast<const uint8_t*>("\0x42\0x02\0\0"), 4);
+  Notes notes2(kLittleEndian);
+  notes2.AddNote(NT_GNU_BUILD_ID, "GNU", kExpectedIdentifierBytes,
+                 sizeof(kExpectedIdentifierBytes));
+  int note1_idx = elf.AddSection(".note1", notes1, SHT_NOTE);
+  int note2_idx = elf.AddSection(".note2", notes2, SHT_NOTE);
+  elf.AddSegment(note1_idx, note1_idx, PT_NOTE);
+  elf.AddSegment(note2_idx, note2_idx, PT_NOTE);
+  elf.Finish();
+  this->GetElfContents(elf);
+
+  id_vector identifier(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier));
+  EXPECT_EQ(sizeof(kExpectedIdentifierBytes), identifier.size());
+
+  string identifier_string = FileID::ConvertIdentifierToUUIDString(identifier);
+  EXPECT_EQ(expected_identifier_string, identifier_string);
+}
+
+// Test to make sure two files with different text sections produce
+// different hashes when not using a build id.
+TYPED_TEST(FileIDTest, UniqueHashes) {
+  {
+    ELF elf1(EM_386, TypeParam::kClass, kLittleEndian);
+    Section foo_1(kLittleEndian);
+    PopulateSection(&foo_1, 32, 5);
+    elf1.AddSection(".foo", foo_1, SHT_PROGBITS);
+    Section text_1(kLittleEndian);
+    PopulateSection(&text_1, 4096, 17);
+    elf1.AddSection(".text", text_1, SHT_PROGBITS);
+    elf1.Finish();
+    this->GetElfContents(elf1);
+  }
+
+  id_vector identifier_1(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier_1));
+  string identifier_string_1 =
+      FileID::ConvertIdentifierToUUIDString(identifier_1);
+
+  {
+    ELF elf2(EM_386, TypeParam::kClass, kLittleEndian);
+    Section text_2(kLittleEndian);
+    Section foo_2(kLittleEndian);
+    PopulateSection(&foo_2, 32, 5);
+    elf2.AddSection(".foo", foo_2, SHT_PROGBITS);
+    PopulateSection(&text_2, 4096, 31);
+    elf2.AddSection(".text", text_2, SHT_PROGBITS);
+    elf2.Finish();
+    this->GetElfContents(elf2);
+  }
+
+  id_vector identifier_2(this->make_vector());
+  EXPECT_TRUE(FileID::ElfFileIdentifierFromMappedFile(this->elfdata,
+                                                      identifier_2));
+  string identifier_string_2 =
+      FileID::ConvertIdentifierToUUIDString(identifier_2);
+
+  EXPECT_NE(identifier_string_1, identifier_string_2);
+}
+
+TYPED_TEST(FileIDTest, ConvertIdentifierToString) {
+  const uint8_t kIdentifierBytes[] =
+    {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+     0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+     0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F};
+  const char* kExpected =
+    "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F";
+
+  id_vector identifier(this->make_vector());
+  identifier.insert(identifier.end(),
+                    kIdentifierBytes,
+                    kIdentifierBytes + sizeof(kIdentifierBytes));
+  ASSERT_EQ(kExpected,
+            FileID::ConvertIdentifierToString(identifier));
+}
diff --git a/src/common/linux/google_crashdump_uploader.cc b/src/common/linux/google_crashdump_uploader.cc
new file mode 100644
index 0000000..a0d940b
--- /dev/null
+++ b/src/common/linux/google_crashdump_uploader.cc
@@ -0,0 +1,207 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#include "common/linux/google_crashdump_uploader.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <iostream>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+GoogleCrashdumpUploader::GoogleCrashdumpUploader(const string& product,
+                                                 const string& version,
+                                                 const string& guid,
+                                                 const string& ptime,
+                                                 const string& ctime,
+                                                 const string& email,
+                                                 const string& comments,
+                                                 const string& minidump_pathname,
+                                                 const string& crash_server,
+                                                 const string& proxy_host,
+                                                 const string& proxy_userpassword) {
+  LibcurlWrapper* http_layer = new LibcurlWrapper();
+  Init(product,
+       version,
+       guid,
+       ptime,
+       ctime,
+       email,
+       comments,
+       minidump_pathname,
+       crash_server,
+       proxy_host,
+       proxy_userpassword,
+       http_layer);
+}
+
+GoogleCrashdumpUploader::GoogleCrashdumpUploader(const string& product,
+                                                 const string& version,
+                                                 const string& guid,
+                                                 const string& ptime,
+                                                 const string& ctime,
+                                                 const string& email,
+                                                 const string& comments,
+                                                 const string& minidump_pathname,
+                                                 const string& crash_server,
+                                                 const string& proxy_host,
+                                                 const string& proxy_userpassword,
+                                                 LibcurlWrapper* http_layer) {
+  Init(product,
+       version,
+       guid,
+       ptime,
+       ctime,
+       email,
+       comments,
+       minidump_pathname,
+       crash_server,
+       proxy_host,
+       proxy_userpassword,
+       http_layer);
+}
+
+void GoogleCrashdumpUploader::Init(const string& product,
+                                   const string& version,
+                                   const string& guid,
+                                   const string& ptime,
+                                   const string& ctime,
+                                   const string& email,
+                                   const string& comments,
+                                   const string& minidump_pathname,
+                                   const string& crash_server,
+                                   const string& proxy_host,
+                                   const string& proxy_userpassword,
+                                   LibcurlWrapper* http_layer) {
+  product_ = product;
+  version_ = version;
+  guid_ = guid;
+  ptime_ = ptime;
+  ctime_ = ctime;
+  email_ = email;
+  comments_ = comments;
+  http_layer_.reset(http_layer);
+
+  crash_server_ = crash_server;
+  proxy_host_ = proxy_host;
+  proxy_userpassword_ = proxy_userpassword;
+  minidump_pathname_ = minidump_pathname;
+  std::cout << "Uploader initializing";
+  std::cout << "\tProduct: " << product_;
+  std::cout << "\tVersion: " << version_;
+  std::cout << "\tGUID: " << guid_;
+  if (!ptime_.empty()) {
+    std::cout << "\tProcess uptime: " << ptime_;
+  }
+  if (!ctime_.empty()) {
+    std::cout << "\tCumulative Process uptime: " << ctime_;
+  }
+  if (!email_.empty()) {
+    std::cout << "\tEmail: " << email_;
+  }
+  if (!comments_.empty()) {
+    std::cout << "\tComments: " << comments_;
+  }
+}
+
+bool GoogleCrashdumpUploader::CheckRequiredParametersArePresent() {
+  string error_text;
+  if (product_.empty()) {
+    error_text.append("\nProduct name must be specified.");
+  }
+
+  if (version_.empty()) {
+    error_text.append("\nProduct version must be specified.");
+  }
+
+  if (guid_.empty()) {
+    error_text.append("\nClient ID must be specified.");
+  }
+
+  if (minidump_pathname_.empty()) {
+    error_text.append("\nMinidump pathname must be specified.");
+  }
+
+  if (!error_text.empty()) {
+    std::cout << error_text;
+    return false;
+  }
+  return true;
+
+}
+
+bool GoogleCrashdumpUploader::Upload(int* http_status_code,
+                                     string* http_response_header,
+                                     string* http_response_body) {
+  bool ok = http_layer_->Init();
+  if (!ok) {
+    std::cout << "http layer init failed";
+    return ok;
+  }
+
+  if (!CheckRequiredParametersArePresent()) {
+    return false;
+  }
+
+  struct stat st;
+  int err = stat(minidump_pathname_.c_str(), &st);
+  if (err) {
+    std::cout << minidump_pathname_ << " could not be found";
+    return false;
+  }
+
+  parameters_["prod"] = product_;
+  parameters_["ver"] = version_;
+  parameters_["guid"] = guid_;
+  parameters_["ptime"] = ptime_;
+  parameters_["ctime"] = ctime_;
+  parameters_["email"] = email_;
+  parameters_["comments_"] = comments_;
+  if (!http_layer_->AddFile(minidump_pathname_,
+                            "upload_file_minidump")) {
+    return false;
+  }
+  std::cout << "Sending request to " << crash_server_;
+  long status_code;
+  bool success = http_layer_->SendRequest(crash_server_,
+                                          parameters_,
+                                          &status_code,
+                                          http_response_header,
+                                          http_response_body);
+  if (http_status_code) {
+    *http_status_code = status_code;
+  }
+  return success;
+}
+}
diff --git a/src/common/linux/google_crashdump_uploader.h b/src/common/linux/google_crashdump_uploader.h
new file mode 100644
index 0000000..a2d0575
--- /dev/null
+++ b/src/common/linux/google_crashdump_uploader.h
@@ -0,0 +1,107 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#ifndef COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
+#define COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
+
+#include <string>
+#include <map>
+
+#include "common/linux/libcurl_wrapper.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class GoogleCrashdumpUploader {
+ public:
+  GoogleCrashdumpUploader(const string& product,
+                          const string& version,
+                          const string& guid,
+                          const string& ptime,
+                          const string& ctime,
+                          const string& email,
+                          const string& comments,
+                          const string& minidump_pathname,
+                          const string& crash_server,
+                          const string& proxy_host,
+                          const string& proxy_userpassword);
+
+  GoogleCrashdumpUploader(const string& product,
+                          const string& version,
+                          const string& guid,
+                          const string& ptime,
+                          const string& ctime,
+                          const string& email,
+                          const string& comments,
+                          const string& minidump_pathname,
+                          const string& crash_server,
+                          const string& proxy_host,
+                          const string& proxy_userpassword,
+                          LibcurlWrapper* http_layer);
+
+  void Init(const string& product,
+            const string& version,
+            const string& guid,
+            const string& ptime,
+            const string& ctime,
+            const string& email,
+            const string& comments,
+            const string& minidump_pathname,
+            const string& crash_server,
+            const string& proxy_host,
+            const string& proxy_userpassword,
+            LibcurlWrapper* http_layer);
+  bool Upload(int* http_status_code,
+              string* http_response_header,
+              string* http_response_body);
+
+ private:
+  bool CheckRequiredParametersArePresent();
+
+  scoped_ptr<LibcurlWrapper> http_layer_;
+  string product_;
+  string version_;
+  string guid_;
+  string ptime_;
+  string ctime_;
+  string email_;
+  string comments_;
+  string minidump_pathname_;
+
+  string crash_server_;
+  string proxy_host_;
+  string proxy_userpassword_;
+
+  std::map<string, string> parameters_;
+};
+}
+
+#endif  // COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
diff --git a/src/common/linux/google_crashdump_uploader_test.cc b/src/common/linux/google_crashdump_uploader_test.cc
new file mode 100644
index 0000000..3d6612e
--- /dev/null
+++ b/src/common/linux/google_crashdump_uploader_test.cc
@@ -0,0 +1,170 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unit test for crash dump uploader.
+
+#include <string>
+
+#include "common/linux/google_crashdump_uploader.h"
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using ::testing::Return;
+using ::testing::_;
+
+class MockLibcurlWrapper : public LibcurlWrapper {
+ public:
+  MOCK_METHOD0(Init, bool());
+  MOCK_METHOD2(SetProxy, bool(const string& proxy_host,
+                              const string& proxy_userpwd));
+  MOCK_METHOD2(AddFile, bool(const string& upload_file_path,
+                             const string& basename));
+  MOCK_METHOD5(SendRequest,
+               bool(const string& url,
+                    const std::map<string, string>& parameters,
+                    long* http_status_code,
+                    string* http_header_data,
+                    string* http_response_data));
+};
+
+class GoogleCrashdumpUploaderTest : public ::testing::Test {
+};
+
+TEST_F(GoogleCrashdumpUploaderTest, InitFailsCausesUploadFailure) {
+  MockLibcurlWrapper m;
+  EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(false));
+  GoogleCrashdumpUploader *uploader = new GoogleCrashdumpUploader("foobar",
+                                                                  "1.0",
+                                                                  "AAA-BBB",
+                                                                  "",
+                                                                  "",
+                                                                  "test@test.com",
+                                                                  "none",
+                                                                  "/tmp/foo.dmp",
+                                                                  "http://foo.com",
+                                                                  "",
+                                                                  "",
+                                                                  &m);
+  ASSERT_FALSE(uploader->Upload(NULL, NULL, NULL));
+}
+
+TEST_F(GoogleCrashdumpUploaderTest, TestSendRequestHappensWithValidParameters) {
+  // Create a temp file
+  char tempfn[80] = "/tmp/googletest-upload-XXXXXX";
+  int fd = mkstemp(tempfn);
+  ASSERT_NE(fd, -1);
+  close(fd);
+
+  MockLibcurlWrapper m;
+  EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
+  EXPECT_CALL(m, AddFile(tempfn, _)).WillOnce(Return(true));
+  EXPECT_CALL(m,
+              SendRequest("http://foo.com",_,_,_,_)).Times(1).WillOnce(Return(true));
+  GoogleCrashdumpUploader *uploader = new GoogleCrashdumpUploader("foobar",
+                                                                  "1.0",
+                                                                  "AAA-BBB",
+                                                                  "",
+                                                                  "",
+                                                                  "test@test.com",
+                                                                  "none",
+                                                                  tempfn,
+                                                                  "http://foo.com",
+                                                                  "",
+                                                                  "",
+                                                                  &m);
+  ASSERT_TRUE(uploader->Upload(NULL, NULL, NULL));
+}
+
+
+TEST_F(GoogleCrashdumpUploaderTest, InvalidPathname) {
+  MockLibcurlWrapper m;
+  EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
+  EXPECT_CALL(m, SendRequest(_,_,_,_,_)).Times(0);
+  GoogleCrashdumpUploader *uploader = new GoogleCrashdumpUploader("foobar",
+                                                                  "1.0",
+                                                                  "AAA-BBB",
+                                                                  "",
+                                                                  "",
+                                                                  "test@test.com",
+                                                                  "none",
+                                                                  "/tmp/foo.dmp",
+                                                                  "http://foo.com",
+                                                                  "",
+                                                                  "",
+                                                                  &m);
+  ASSERT_FALSE(uploader->Upload(NULL, NULL, NULL));
+}
+
+TEST_F(GoogleCrashdumpUploaderTest, TestRequiredParametersMustBePresent) {
+  // Test with empty product name.
+  GoogleCrashdumpUploader uploader("",
+                                   "1.0",
+                                   "AAA-BBB",
+                                   "",
+                                   "",
+                                   "test@test.com",
+                                   "none",
+                                   "/tmp/foo.dmp",
+                                   "http://foo.com",
+                                   "",
+                                   "");
+  ASSERT_FALSE(uploader.Upload(NULL, NULL, NULL));
+
+  // Test with empty product version.
+  GoogleCrashdumpUploader uploader1("product",
+                                    "",
+                                    "AAA-BBB",
+                                    "",
+                                    "",
+                                    "",
+                                    "",
+                                    "/tmp/foo.dmp",
+                                    "",
+                                    "",
+                                    "");
+
+  ASSERT_FALSE(uploader1.Upload(NULL, NULL, NULL));
+
+  // Test with empty client GUID.
+  GoogleCrashdumpUploader uploader2("product",
+                                    "1.0",
+                                    "",
+                                    "",
+                                    "",
+                                    "",
+                                    "",
+                                    "/tmp/foo.dmp",
+                                    "",
+                                    "",
+                                    "");
+  ASSERT_FALSE(uploader2.Upload(NULL, NULL, NULL));
+}
+}
diff --git a/src/common/linux/guid_creator.cc b/src/common/linux/guid_creator.cc
new file mode 100644
index 0000000..6374063
--- /dev/null
+++ b/src/common/linux/guid_creator.cc
@@ -0,0 +1,189 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "common/linux/eintr_wrapper.h"
+#include "common/linux/guid_creator.h"
+
+#include <assert.h>
+#include <fcntl.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <unistd.h>
+
+#if defined(HAVE_SYS_RANDOM_H)
+#include <sys/random.h>
+#endif
+
+//
+// GUIDGenerator
+//
+// This class is used to generate random GUID.
+// Currently use random number to generate a GUID since Linux has
+// no native GUID generator. This should be OK since we don't expect
+// crash to happen very offen.
+//
+class GUIDGenerator {
+ public:
+  static uint32_t BytesToUInt32(const uint8_t bytes[]) {
+    return ((uint32_t) bytes[0]
+            | ((uint32_t) bytes[1] << 8)
+            | ((uint32_t) bytes[2] << 16)
+            | ((uint32_t) bytes[3] << 24));
+  }
+
+  static void UInt32ToBytes(uint8_t bytes[], uint32_t n) {
+    bytes[0] = n & 0xff;
+    bytes[1] = (n >> 8) & 0xff;
+    bytes[2] = (n >> 16) & 0xff;
+    bytes[3] = (n >> 24) & 0xff;
+  }
+
+  static bool CreateGUID(GUID *guid) {
+#if defined(HAVE_ARC4RANDOM) // Android, BSD, ...
+    CreateGuidFromArc4Random(guid);
+#else // Linux
+    bool success = false;
+
+#if defined(HAVE_SYS_RANDOM_H) && defined(HAVE_GETRANDOM)
+    success = CreateGUIDFromGetrandom(guid);
+#endif // HAVE_SYS_RANDOM_H && HAVE_GETRANDOM
+    if (!success) {
+      success = CreateGUIDFromDevUrandom(guid);
+    }
+
+    if (!success) {
+      CreateGUIDFromRand(guid);
+      success = true;
+    }
+#endif
+
+    // Put in the version according to RFC 4122.
+    guid->data3 &= 0x0fff;
+    guid->data3 |= 0x4000;
+
+    // Put in the variant according to RFC 4122.
+    guid->data4[0] &= 0x3f;
+    guid->data4[0] |= 0x80;
+
+    return true;
+  }
+
+ private:
+#ifdef HAVE_ARC4RANDOM
+  static void CreateGuidFromArc4Random(GUID *guid) {
+    char *buf = reinterpret_cast<char*>(guid);
+
+    for (size_t i = 0; i < sizeof(GUID); i += sizeof(uint32_t)) {
+      uint32_t random_data = arc4random();
+
+      memcpy(buf + i, &random_data, sizeof(uint32_t));
+    }
+  }
+#else
+  static void InitOnce() {
+    pthread_once(&once_control, &InitOnceImpl);
+  }
+
+  static void InitOnceImpl() {
+    // time(NULL) is a very poor seed, so lacking anything better mix an
+    // address into it. We drop the four rightmost bits as they're likely to
+    // be 0 on almost all architectures.
+    srand(time(NULL) | ((uintptr_t)&once_control >> 4));
+  }
+
+  static pthread_once_t once_control;
+
+#if defined(HAVE_SYS_RANDOM_H) && defined(HAVE_GETRANDOM)
+  static bool CreateGUIDFromGetrandom(GUID *guid) {
+    char *buf = reinterpret_cast<char*>(guid);
+    int read_bytes = getrandom(buf, sizeof(GUID), GRND_NONBLOCK);
+
+    return (read_bytes == static_cast<int>(sizeof(GUID)));
+  }
+#endif // HAVE_SYS_RANDOM_H && HAVE_GETRANDOM
+
+  // Populate the GUID using random bytes read from /dev/urandom, returns false
+  // if the GUID wasn't fully populated with random data.
+  static bool CreateGUIDFromDevUrandom(GUID *guid) {
+    char *buf = reinterpret_cast<char*>(guid);
+    int fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC);
+
+    if (fd == -1) {
+      return false;
+    }
+
+    ssize_t read_bytes = HANDLE_EINTR(read(fd, buf, sizeof(GUID)));
+    close(fd);
+
+    return (read_bytes == static_cast<ssize_t>(sizeof(GUID)));
+  }
+
+  // Populate the GUID using a stream of random bytes obtained from rand().
+  static void CreateGUIDFromRand(GUID *guid) {
+    char *buf = reinterpret_cast<char*>(guid);
+
+    InitOnce();
+
+    for (size_t i = 0; i < sizeof(GUID); i++) {
+      buf[i] = rand();
+    }
+  }
+#endif
+};
+
+#ifndef HAVE_ARC4RANDOM
+pthread_once_t GUIDGenerator::once_control = PTHREAD_ONCE_INIT;
+#endif
+
+bool CreateGUID(GUID *guid) {
+  return GUIDGenerator::CreateGUID(guid);
+}
+
+// Parse guid to string.
+bool GUIDToString(const GUID *guid, char *buf, int buf_len) {
+  // Should allow more space the the max length of GUID.
+  assert(buf_len > kGUIDStringLength);
+  int num = snprintf(buf, buf_len, kGUIDFormatString,
+                     guid->data1, guid->data2, guid->data3,
+                     GUIDGenerator::BytesToUInt32(&(guid->data4[0])),
+                     GUIDGenerator::BytesToUInt32(&(guid->data4[4])));
+  if (num != kGUIDStringLength)
+    return false;
+
+  buf[num] = '\0';
+  return true;
+}
diff --git a/src/common/linux/guid_creator.h b/src/common/linux/guid_creator.h
new file mode 100644
index 0000000..c86d856
--- /dev/null
+++ b/src/common/linux/guid_creator.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_GUID_CREATOR_H__
+#define COMMON_LINUX_GUID_CREATOR_H__
+
+#include "google_breakpad/common/minidump_format.h"
+
+typedef MDGUID GUID;
+
+// Format string for parsing GUID.
+#define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x"
+// Length of GUID string. Don't count the ending '\0'.
+#define kGUIDStringLength 36
+
+// Create a guid.
+bool CreateGUID(GUID *guid);
+
+// Get the string from guid.
+bool GUIDToString(const GUID *guid, char *buf, int buf_len);
+
+#endif
diff --git a/src/common/linux/http_upload.cc b/src/common/linux/http_upload.cc
new file mode 100644
index 0000000..ace12b8
--- /dev/null
+++ b/src/common/linux/http_upload.cc
@@ -0,0 +1,230 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/linux/http_upload.h"
+
+#include <assert.h>
+#include <dlfcn.h>
+#include "third_party/curl/curl.h"
+
+namespace {
+
+// Callback to get the response data from server.
+static size_t WriteCallback(void* ptr, size_t size,
+                            size_t nmemb, void* userp) {
+  if (!userp)
+    return 0;
+
+  string* response = reinterpret_cast<string*>(userp);
+  size_t real_size = size * nmemb;
+  response->append(reinterpret_cast<char*>(ptr), real_size);
+  return real_size;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+static const char kUserAgent[] = "Breakpad/1.0 (Linux)";
+
+// static
+bool HTTPUpload::SendRequest(const string& url,
+                             const map<string, string>& parameters,
+                             const map<string, string>& files,
+                             const string& proxy,
+                             const string& proxy_user_pwd,
+                             const string& ca_certificate_file,
+                             string* response_body,
+                             long* response_code,
+                             string* error_description) {
+  if (response_code != NULL)
+    *response_code = 0;
+
+  if (!CheckParameters(parameters))
+    return false;
+
+  // We may have been linked statically; if curl_easy_init is in the
+  // current binary, no need to search for a dynamic version.
+  void* curl_lib = dlopen(NULL, RTLD_NOW);
+  if (!CheckCurlLib(curl_lib)) {
+    fprintf(stderr,
+            "Failed to open curl lib from binary, use libcurl.so instead\n");
+    dlerror();  // Clear dlerror before attempting to open libraries.
+    dlclose(curl_lib);
+    curl_lib = NULL;
+  }
+  if (!curl_lib) {
+    curl_lib = dlopen("libcurl.so", RTLD_NOW);
+  }
+  if (!curl_lib) {
+    if (error_description != NULL)
+      *error_description = dlerror();
+    curl_lib = dlopen("libcurl.so.4", RTLD_NOW);
+  }
+  if (!curl_lib) {
+    // Debian gives libcurl a different name when it is built against GnuTLS
+    // instead of OpenSSL.
+    curl_lib = dlopen("libcurl-gnutls.so.4", RTLD_NOW);
+  }
+  if (!curl_lib) {
+    curl_lib = dlopen("libcurl.so.3", RTLD_NOW);
+  }
+  if (!curl_lib) {
+    return false;
+  }
+
+  CURL* (*curl_easy_init)(void);
+  *(void**) (&curl_easy_init) = dlsym(curl_lib, "curl_easy_init");
+  CURL* curl = (*curl_easy_init)();
+  if (error_description != NULL)
+    *error_description = "No Error";
+
+  if (!curl) {
+    dlclose(curl_lib);
+    return false;
+  }
+
+  CURLcode err_code = CURLE_OK;
+  CURLcode (*curl_easy_setopt)(CURL*, CURLoption, ...);
+  *(void**) (&curl_easy_setopt) = dlsym(curl_lib, "curl_easy_setopt");
+  (*curl_easy_setopt)(curl, CURLOPT_URL, url.c_str());
+  (*curl_easy_setopt)(curl, CURLOPT_USERAGENT, kUserAgent);
+  // Support multithread by disabling timeout handling, would get SIGSEGV with
+  // Curl_resolv_timeout in stack trace otherwise.
+  // See https://curl.haxx.se/libcurl/c/threadsafe.html
+  (*curl_easy_setopt)(curl, CURLOPT_NOSIGNAL, 1);
+  // Set proxy information if necessary.
+  if (!proxy.empty())
+    (*curl_easy_setopt)(curl, CURLOPT_PROXY, proxy.c_str());
+  if (!proxy_user_pwd.empty())
+    (*curl_easy_setopt)(curl, CURLOPT_PROXYUSERPWD, proxy_user_pwd.c_str());
+
+  if (!ca_certificate_file.empty())
+    (*curl_easy_setopt)(curl, CURLOPT_CAINFO, ca_certificate_file.c_str());
+
+  struct curl_httppost* formpost = NULL;
+  struct curl_httppost* lastptr = NULL;
+  // Add form data.
+  CURLFORMcode (*curl_formadd)(struct curl_httppost**, struct curl_httppost**, ...);
+  *(void**) (&curl_formadd) = dlsym(curl_lib, "curl_formadd");
+  map<string, string>::const_iterator iter = parameters.begin();
+  for (; iter != parameters.end(); ++iter)
+    (*curl_formadd)(&formpost, &lastptr,
+                 CURLFORM_COPYNAME, iter->first.c_str(),
+                 CURLFORM_COPYCONTENTS, iter->second.c_str(),
+                 CURLFORM_END);
+
+  // Add form files.
+  for (iter = files.begin(); iter != files.end(); ++iter) {
+    (*curl_formadd)(&formpost, &lastptr,
+                 CURLFORM_COPYNAME, iter->first.c_str(),
+                 CURLFORM_FILE, iter->second.c_str(),
+                 CURLFORM_END);
+  }
+
+  (*curl_easy_setopt)(curl, CURLOPT_HTTPPOST, formpost);
+
+  // Disable 100-continue header.
+  struct curl_slist* headerlist = NULL;
+  char buf[] = "Expect:";
+  struct curl_slist* (*curl_slist_append)(struct curl_slist*, const char*);
+  *(void**) (&curl_slist_append) = dlsym(curl_lib, "curl_slist_append");
+  headerlist = (*curl_slist_append)(headerlist, buf);
+  (*curl_easy_setopt)(curl, CURLOPT_HTTPHEADER, headerlist);
+
+  if (response_body != NULL) {
+    (*curl_easy_setopt)(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
+    (*curl_easy_setopt)(curl, CURLOPT_WRITEDATA,
+                     reinterpret_cast<void*>(response_body));
+  }
+
+  // Fail if 400+ is returned from the web server.
+  (*curl_easy_setopt)(curl, CURLOPT_FAILONERROR, 1);
+
+  CURLcode (*curl_easy_perform)(CURL*);
+  *(void**) (&curl_easy_perform) = dlsym(curl_lib, "curl_easy_perform");
+  err_code = (*curl_easy_perform)(curl);
+  if (response_code != NULL) {
+    CURLcode (*curl_easy_getinfo)(CURL*, CURLINFO, ...);
+    *(void**) (&curl_easy_getinfo) = dlsym(curl_lib, "curl_easy_getinfo");
+    (*curl_easy_getinfo)(curl, CURLINFO_RESPONSE_CODE, response_code);
+  }
+  const char* (*curl_easy_strerror)(CURLcode);
+  *(void**) (&curl_easy_strerror) = dlsym(curl_lib, "curl_easy_strerror");
+#ifndef NDEBUG
+  if (err_code != CURLE_OK)
+    fprintf(stderr, "Failed to send http request to %s, error: %s\n",
+            url.c_str(),
+            (*curl_easy_strerror)(err_code));
+#endif
+  if (error_description != NULL)
+    *error_description = (*curl_easy_strerror)(err_code);
+
+  void (*curl_easy_cleanup)(CURL*);
+  *(void**) (&curl_easy_cleanup) = dlsym(curl_lib, "curl_easy_cleanup");
+  (*curl_easy_cleanup)(curl);
+  if (formpost != NULL) {
+    void (*curl_formfree)(struct curl_httppost*);
+    *(void**) (&curl_formfree) = dlsym(curl_lib, "curl_formfree");
+    (*curl_formfree)(formpost);
+  }
+  if (headerlist != NULL) {
+    void (*curl_slist_free_all)(struct curl_slist*);
+    *(void**) (&curl_slist_free_all) = dlsym(curl_lib, "curl_slist_free_all");
+    (*curl_slist_free_all)(headerlist);
+  }
+  dlclose(curl_lib);
+  return err_code == CURLE_OK;
+}
+
+// static
+bool HTTPUpload::CheckCurlLib(void* curl_lib) {
+  return curl_lib &&
+      dlsym(curl_lib, "curl_easy_init") &&
+      dlsym(curl_lib, "curl_easy_setopt");
+}
+
+// static
+bool HTTPUpload::CheckParameters(const map<string, string>& parameters) {
+  for (map<string, string>::const_iterator pos = parameters.begin();
+       pos != parameters.end(); ++pos) {
+    const string& str = pos->first;
+    if (str.size() == 0)
+      return false;  // disallow empty parameter names
+    for (unsigned int i = 0; i < str.size(); ++i) {
+      int c = str[i];
+      if (c < 32 || c == '"' || c > 127) {
+        return false;
+      }
+    }
+  }
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/http_upload.h b/src/common/linux/http_upload.h
new file mode 100644
index 0000000..13f3d56
--- /dev/null
+++ b/src/common/linux/http_upload.h
@@ -0,0 +1,90 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// HTTPUpload provides a "nice" API to send a multipart HTTP(S) POST
+// request using libcurl.  It currently supports requests that contain
+// a set of string parameters (key/value pairs), and a file to upload.
+
+#ifndef COMMON_LINUX_HTTP_UPLOAD_H__
+#define COMMON_LINUX_HTTP_UPLOAD_H__
+
+#include <map>
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class HTTPUpload {
+ public:
+  // Sends the given sets of parameters and files as a multipart POST
+  // request to the given URL.
+  // Each key in |files| is the name of the file part of the request
+  // (i.e. it corresponds to the name= attribute on an <input type="file">.
+  // Parameter names must contain only printable ASCII characters,
+  // and may not contain a quote (") character.
+  // Only HTTP(S) URLs are currently supported.  Returns true on success.
+  // If the request is successful and response_body is non-NULL,
+  // the response body will be returned in response_body.
+  // If response_code is non-NULL, it will be set to the HTTP response code
+  // received (or 0 if the request failed before getting an HTTP response).
+  // If the send fails, a description of the error will be
+  // returned in error_description.
+  static bool SendRequest(const string& url,
+                          const map<string, string>& parameters,
+                          const map<string, string>& files,
+                          const string& proxy,
+                          const string& proxy_user_pwd,
+                          const string& ca_certificate_file,
+                          string* response_body,
+                          long* response_code,
+                          string* error_description);
+
+ private:
+  // Checks that the given list of parameters has only printable
+  // ASCII characters in the parameter name, and does not contain
+  // any quote (") characters.  Returns true if so.
+  static bool CheckParameters(const map<string, string>& parameters);
+
+  // Checks the curl_lib parameter points to a valid curl lib.
+  static bool CheckCurlLib(void* curl_lib);
+
+  // No instances of this class should be created.
+  // Disallow all constructors, destructors, and operator=.
+  HTTPUpload();
+  explicit HTTPUpload(const HTTPUpload&);
+  void operator=(const HTTPUpload&);
+  ~HTTPUpload();
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_HTTP_UPLOAD_H__
diff --git a/src/common/linux/ignore_ret.h b/src/common/linux/ignore_ret.h
new file mode 100644
index 0000000..efd274c
--- /dev/null
+++ b/src/common/linux/ignore_ret.h
@@ -0,0 +1,40 @@
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_IGNORE_RET_H_
+#define COMMON_LINUX_IGNORE_RET_H_
+
+// Some compilers are prone to warn about unused return values. In cases where
+// either a) the call cannot fail, or b) there is nothing that can be done when
+// the call fails, IGNORE_RET() can be used to mark the return code as ignored.
+// This avoids spurious compiler warnings.
+
+#define IGNORE_RET(x) do { if (x) {} } while (0)
+
+#endif  // COMMON_LINUX_IGNORE_RET_H_
diff --git a/src/common/linux/libcurl_wrapper.cc b/src/common/linux/libcurl_wrapper.cc
new file mode 100644
index 0000000..fdb200f
--- /dev/null
+++ b/src/common/linux/libcurl_wrapper.cc
@@ -0,0 +1,338 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <dlfcn.h>
+
+#include <iostream>
+#include <string>
+
+#include "common/linux/libcurl_wrapper.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+LibcurlWrapper::LibcurlWrapper()
+    : init_ok_(false),
+      curl_lib_(nullptr),
+      last_curl_error_(""),
+      curl_(nullptr),
+      formpost_(nullptr),
+      lastptr_(nullptr),
+      headerlist_(nullptr) {}
+
+LibcurlWrapper::~LibcurlWrapper() {
+  if (init_ok_) {
+    (*easy_cleanup_)(curl_);
+    dlclose(curl_lib_);
+  }
+}
+
+bool LibcurlWrapper::SetProxy(const string& proxy_host,
+                              const string& proxy_userpwd) {
+  if (!CheckInit()) return false;
+
+  // Set proxy information if necessary.
+  if (!proxy_host.empty()) {
+    (*easy_setopt_)(curl_, CURLOPT_PROXY, proxy_host.c_str());
+  } else {
+    std::cout << "SetProxy called with empty proxy host.";
+    return false;
+  }
+  if (!proxy_userpwd.empty()) {
+    (*easy_setopt_)(curl_, CURLOPT_PROXYUSERPWD, proxy_userpwd.c_str());
+  } else {
+    std::cout << "SetProxy called with empty proxy username/password.";
+    return false;
+  }
+  std::cout << "Set proxy host to " << proxy_host;
+  return true;
+}
+
+bool LibcurlWrapper::AddFile(const string& upload_file_path,
+                             const string& basename) {
+  if (!CheckInit()) return false;
+
+  std::cout << "Adding " << upload_file_path << " to form upload.";
+  // Add form file.
+  (*formadd_)(&formpost_, &lastptr_,
+              CURLFORM_COPYNAME, basename.c_str(),
+              CURLFORM_FILE, upload_file_path.c_str(),
+              CURLFORM_END);
+
+  return true;
+}
+
+// Callback to get the response data from server.
+static size_t WriteCallback(void* ptr, size_t size,
+                            size_t nmemb, void* userp) {
+  if (!userp)
+    return 0;
+
+  string* response = reinterpret_cast<string*>(userp);
+  size_t real_size = size * nmemb;
+  response->append(reinterpret_cast<char*>(ptr), real_size);
+  return real_size;
+}
+
+bool LibcurlWrapper::SendRequest(const string& url,
+                                 const std::map<string, string>& parameters,
+                                 long* http_status_code,
+                                 string* http_header_data,
+                                 string* http_response_data) {
+  if (!CheckInit()) return false;
+
+  std::map<string, string>::const_iterator iter = parameters.begin();
+  for (; iter != parameters.end(); ++iter)
+    (*formadd_)(&formpost_, &lastptr_,
+                CURLFORM_COPYNAME, iter->first.c_str(),
+                CURLFORM_COPYCONTENTS, iter->second.c_str(),
+                CURLFORM_END);
+
+  (*easy_setopt_)(curl_, CURLOPT_HTTPPOST, formpost_);
+
+  return SendRequestInner(url, http_status_code, http_header_data,
+                          http_response_data);
+}
+
+bool LibcurlWrapper::SendGetRequest(const string& url,
+                                    long* http_status_code,
+                                    string* http_header_data,
+                                    string* http_response_data) {
+  if (!CheckInit()) return false;
+
+  (*easy_setopt_)(curl_, CURLOPT_HTTPGET, 1L);
+
+  return SendRequestInner(url, http_status_code, http_header_data,
+                          http_response_data);
+}
+
+bool LibcurlWrapper::SendPutRequest(const string& url,
+                                    const string& path,
+                                    long* http_status_code,
+                                    string* http_header_data,
+                                    string* http_response_data) {
+  if (!CheckInit()) return false;
+
+  FILE* file = fopen(path.c_str(), "rb");
+  (*easy_setopt_)(curl_, CURLOPT_UPLOAD, 1L);
+  (*easy_setopt_)(curl_, CURLOPT_PUT, 1L);
+  (*easy_setopt_)(curl_, CURLOPT_READDATA, file);
+
+  bool success = SendRequestInner(url, http_status_code, http_header_data,
+                                  http_response_data);
+
+  fclose(file);
+  return success;
+}
+
+bool LibcurlWrapper::SendSimplePostRequest(const string& url,
+                                           const string& body,
+                                           const string& content_type,
+                                           long* http_status_code,
+                                           string* http_header_data,
+                                           string* http_response_data) {
+  if (!CheckInit()) return false;
+
+  (*easy_setopt_)(curl_, CURLOPT_POSTFIELDSIZE, body.size());
+  (*easy_setopt_)(curl_, CURLOPT_COPYPOSTFIELDS, body.c_str());
+
+  if (!content_type.empty()) {
+    string content_type_header = "Content-Type: " + content_type;
+    headerlist_ = (*slist_append_)(
+        headerlist_,
+        content_type_header.c_str());
+  }
+
+  return SendRequestInner(url, http_status_code, http_header_data,
+                          http_response_data);
+}
+
+bool LibcurlWrapper::Init() {
+  // First check to see if libcurl was statically linked:
+  curl_lib_ = dlopen(nullptr, RTLD_NOW);
+  if (curl_lib_ &&
+      (!dlsym(curl_lib_, "curl_easy_init") ||
+      !dlsym(curl_lib_, "curl_easy_setopt"))) {
+    // Not statically linked, try again below.
+    dlerror();  // Clear dlerror before attempting to open libraries.
+    dlclose(curl_lib_);
+    curl_lib_ = nullptr;
+  }
+  if (!curl_lib_) {
+    curl_lib_ = dlopen("libcurl.so", RTLD_NOW);
+  }
+  if (!curl_lib_) {
+    curl_lib_ = dlopen("libcurl.so.4", RTLD_NOW);
+  }
+  if (!curl_lib_) {
+    curl_lib_ = dlopen("libcurl.so.3", RTLD_NOW);
+  }
+  if (!curl_lib_) {
+    std::cout << "Could not find libcurl via dlopen";
+    return false;
+  }
+
+  if (!SetFunctionPointers()) {
+    std::cout << "Could not find function pointers";
+    return false;
+  }
+
+  curl_ = (*easy_init_)();
+
+  last_curl_error_ = "No Error";
+
+  if (!curl_) {
+    dlclose(curl_lib_);
+    std::cout << "Curl initialization failed";
+    return false;
+  }
+
+  init_ok_ = true;
+  return true;
+}
+
+#define SET_AND_CHECK_FUNCTION_POINTER(var, function_name, type) \
+  var = reinterpret_cast<type>(dlsym(curl_lib_, function_name)); \
+  if (!var) { \
+    std::cout << "Could not find libcurl function " << function_name; \
+    init_ok_ = false; \
+    return false; \
+  }
+
+bool LibcurlWrapper::SetFunctionPointers() {
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_init_,
+                                 "curl_easy_init",
+                                 CURL*(*)());
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_setopt_,
+                                 "curl_easy_setopt",
+                                 CURLcode(*)(CURL*, CURLoption, ...));
+
+  SET_AND_CHECK_FUNCTION_POINTER(formadd_, "curl_formadd",
+      CURLFORMcode(*)(curl_httppost**, curl_httppost**, ...));
+
+  SET_AND_CHECK_FUNCTION_POINTER(slist_append_, "curl_slist_append",
+      curl_slist*(*)(curl_slist*, const char*));
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_perform_,
+                                 "curl_easy_perform",
+                                 CURLcode(*)(CURL*));
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_cleanup_,
+                                 "curl_easy_cleanup",
+                                 void(*)(CURL*));
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_getinfo_,
+                                 "curl_easy_getinfo",
+                                 CURLcode(*)(CURL*, CURLINFO info, ...));
+
+  SET_AND_CHECK_FUNCTION_POINTER(easy_reset_,
+                                 "curl_easy_reset",
+                                 void(*)(CURL*));
+
+  SET_AND_CHECK_FUNCTION_POINTER(slist_free_all_,
+                                 "curl_slist_free_all",
+                                 void(*)(curl_slist*));
+
+  SET_AND_CHECK_FUNCTION_POINTER(formfree_,
+                                 "curl_formfree",
+                                 void(*)(curl_httppost*));
+  return true;
+}
+
+bool LibcurlWrapper::SendRequestInner(const string& url,
+                                      long* http_status_code,
+                                      string* http_header_data,
+                                      string* http_response_data) {
+  string url_copy(url);
+  (*easy_setopt_)(curl_, CURLOPT_URL, url_copy.c_str());
+
+  // Disable 100-continue header.
+  char buf[] = "Expect:";
+  headerlist_ = (*slist_append_)(headerlist_, buf);
+  (*easy_setopt_)(curl_, CURLOPT_HTTPHEADER, headerlist_);
+
+  if (http_response_data != nullptr) {
+    http_response_data->clear();
+    (*easy_setopt_)(curl_, CURLOPT_WRITEFUNCTION, WriteCallback);
+    (*easy_setopt_)(curl_, CURLOPT_WRITEDATA,
+                    reinterpret_cast<void*>(http_response_data));
+  }
+  if (http_header_data != nullptr) {
+    http_header_data->clear();
+    (*easy_setopt_)(curl_, CURLOPT_HEADERFUNCTION, WriteCallback);
+    (*easy_setopt_)(curl_, CURLOPT_HEADERDATA,
+                    reinterpret_cast<void*>(http_header_data));
+  }
+  CURLcode err_code = CURLE_OK;
+  err_code = (*easy_perform_)(curl_);
+  easy_strerror_ = reinterpret_cast<const char* (*)(CURLcode)>
+      (dlsym(curl_lib_, "curl_easy_strerror"));
+
+  if (http_status_code != nullptr) {
+    (*easy_getinfo_)(curl_, CURLINFO_RESPONSE_CODE, http_status_code);
+  }
+
+#ifndef NDEBUG
+  if (err_code != CURLE_OK)
+    fprintf(stderr, "Failed to send http request to %s, error: %s\n",
+            url.c_str(),
+            (*easy_strerror_)(err_code));
+#endif
+
+  Reset();
+
+  return err_code == CURLE_OK;
+}
+
+void LibcurlWrapper::Reset() {
+  if (headerlist_ != nullptr) {
+    (*slist_free_all_)(headerlist_);
+    headerlist_ = nullptr;
+  }
+
+  if (formpost_ != nullptr) {
+    (*formfree_)(formpost_);
+    formpost_ = nullptr;
+  }
+
+  (*easy_reset_)(curl_);
+}
+
+bool LibcurlWrapper::CheckInit() {
+  if (!init_ok_) {
+    std::cout << "LibcurlWrapper: You must call Init(), and have it return "
+                 "'true' before invoking any other methods.\n";
+    return false;
+  }
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/libcurl_wrapper.h b/src/common/linux/libcurl_wrapper.h
new file mode 100644
index 0000000..823f83c
--- /dev/null
+++ b/src/common/linux/libcurl_wrapper.h
@@ -0,0 +1,119 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// A wrapper for libcurl to do HTTP Uploads, to support easy mocking
+// and unit testing of the HTTPUpload class.
+
+#ifndef COMMON_LINUX_LIBCURL_WRAPPER_H_
+#define COMMON_LINUX_LIBCURL_WRAPPER_H_
+
+#include <string>
+#include <map>
+
+#include "common/using_std_string.h"
+#include "third_party/curl/curl.h"
+
+namespace google_breakpad {
+class LibcurlWrapper {
+ public:
+  LibcurlWrapper();
+  virtual ~LibcurlWrapper();
+  virtual bool Init();
+  virtual bool SetProxy(const string& proxy_host,
+                        const string& proxy_userpwd);
+  virtual bool AddFile(const string& upload_file_path,
+                       const string& basename);
+  virtual bool SendRequest(const string& url,
+                           const std::map<string, string>& parameters,
+                           long* http_status_code,
+                           string* http_header_data,
+                           string* http_response_data);
+  bool SendGetRequest(const string& url,
+                      long* http_status_code,
+                      string* http_header_data,
+                      string* http_response_data);
+  bool SendPutRequest(const string& url,
+                      const string& path,
+                      long* http_status_code,
+                      string* http_header_data,
+                      string* http_response_data);
+  bool SendSimplePostRequest(const string& url,
+                             const string& body,
+                             const string& content_type,
+                             long* http_status_code,
+                             string* http_header_data,
+                             string* http_response_data);
+
+ private:
+  // This function initializes class state corresponding to function
+  // pointers into the CURL library.
+  bool SetFunctionPointers();
+
+  bool SendRequestInner(const string& url,
+                        long* http_status_code,
+                        string* http_header_data,
+                        string* http_response_data);
+
+  void Reset();
+
+  bool CheckInit();
+
+  bool init_ok_;                 // Whether init succeeded
+  void* curl_lib_;               // Pointer to result of dlopen() on
+                                 // curl library
+  string last_curl_error_;  // The text of the last error when
+                                 // dealing
+  // with CURL.
+
+  CURL* curl_;                   // Pointer for handle for CURL calls.
+
+  CURL* (*easy_init_)(void);
+
+  // Stateful pointers for calling into curl_formadd()
+  struct curl_httppost* formpost_;
+  struct curl_httppost* lastptr_;
+  struct curl_slist* headerlist_;
+
+  // Function pointers into CURL library
+  CURLcode (*easy_setopt_)(CURL*, CURLoption, ...);
+  CURLFORMcode (*formadd_)(struct curl_httppost**,
+                           struct curl_httppost**, ...);
+  struct curl_slist* (*slist_append_)(struct curl_slist*, const char*);
+  void (*slist_free_all_)(struct curl_slist*);
+  CURLcode (*easy_perform_)(CURL*);
+  const char* (*easy_strerror_)(CURLcode);
+  void (*easy_cleanup_)(CURL*);
+  CURLcode (*easy_getinfo_)(CURL*, CURLINFO info, ...);
+  void (*easy_reset_)(CURL*);
+  void (*formfree_)(struct curl_httppost*);
+
+};
+}
+
+#endif  // COMMON_LINUX_LIBCURL_WRAPPER_H_
diff --git a/src/common/linux/linux_libc_support.cc b/src/common/linux/linux_libc_support.cc
new file mode 100644
index 0000000..dd29296
--- /dev/null
+++ b/src/common/linux/linux_libc_support.cc
@@ -0,0 +1,237 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This source file provides replacements for libc functions that we need. If
+// we call the libc functions directly we risk crashing in the dynamic linker
+// as it tries to resolve uncached PLT entries.
+
+#include "common/linux/linux_libc_support.h"
+
+#include <stddef.h>
+
+extern "C" {
+
+size_t my_strlen(const char* s) {
+  size_t len = 0;
+  while (*s++) len++;
+  return len;
+}
+
+int my_strcmp(const char* a, const char* b) {
+  for (;;) {
+    if (*a < *b)
+      return -1;
+    else if (*a > *b)
+      return 1;
+    else if (*a == 0)
+      return 0;
+    a++;
+    b++;
+  }
+}
+
+int my_strncmp(const char* a, const char* b, size_t len) {
+  for (size_t i = 0; i < len; ++i) {
+    if (*a < *b)
+      return -1;
+    else if (*a > *b)
+      return 1;
+    else if (*a == 0)
+      return 0;
+    a++;
+    b++;
+  }
+
+  return 0;
+}
+
+// Parse a non-negative integer.
+//   result: (output) the resulting non-negative integer
+//   s: a NUL terminated string
+// Return true iff successful.
+bool my_strtoui(int* result, const char* s) {
+  if (*s == 0)
+    return false;
+  int r = 0;
+  for (;; s++) {
+    if (*s == 0)
+      break;
+    const int old_r = r;
+    r *= 10;
+    if (*s < '0' || *s > '9')
+      return false;
+    r += *s - '0';
+    if (r < old_r)
+      return false;
+  }
+
+  *result = r;
+  return true;
+}
+
+// Return the length of the given unsigned integer when expressed in base 10.
+unsigned my_uint_len(uintmax_t i) {
+  if (!i)
+    return 1;
+
+  int len = 0;
+  while (i) {
+    len++;
+    i /= 10;
+  }
+
+  return len;
+}
+
+// Convert an unsigned integer to a string
+//   output: (output) the resulting string is written here. This buffer must be
+//     large enough to hold the resulting string. Call |my_uint_len| to get the
+//     required length.
+//   i: the unsigned integer to serialise.
+//   i_len: the length of the integer in base 10 (see |my_uint_len|).
+void my_uitos(char* output, uintmax_t i, unsigned i_len) {
+  for (unsigned index = i_len; index; --index, i /= 10)
+    output[index - 1] = '0' + (i % 10);
+}
+
+const char* my_strchr(const char* haystack, char needle) {
+  while (*haystack && *haystack != needle)
+    haystack++;
+  if (*haystack == needle)
+    return haystack;
+  return (const char*) 0;
+}
+
+const char* my_strrchr(const char* haystack, char needle) {
+  const char* ret = NULL;
+  while (*haystack) {
+    if (*haystack == needle)
+      ret = haystack;
+    haystack++;
+  }
+  return ret;
+}
+
+void* my_memchr(const void* src, int needle, size_t src_len) {
+  const unsigned char* p = (const unsigned char*)src;
+  const unsigned char* p_end = p + src_len;
+  for (; p < p_end; ++p) {
+    if (*p == needle)
+      return (void*)p;
+  }
+  return NULL;
+}
+
+// Read a hex value
+//   result: (output) the resulting value
+//   s: a string
+// Returns a pointer to the first invalid charactor.
+const char* my_read_hex_ptr(uintptr_t* result, const char* s) {
+  uintptr_t r = 0;
+
+  for (;; ++s) {
+    if (*s >= '0' && *s <= '9') {
+      r <<= 4;
+      r += *s - '0';
+    } else if (*s >= 'a' && *s <= 'f') {
+      r <<= 4;
+      r += (*s - 'a') + 10;
+    } else if (*s >= 'A' && *s <= 'F') {
+      r <<= 4;
+      r += (*s - 'A') + 10;
+    } else {
+      break;
+    }
+  }
+
+  *result = r;
+  return s;
+}
+
+const char* my_read_decimal_ptr(uintptr_t* result, const char* s) {
+  uintptr_t r = 0;
+
+  for (;; ++s) {
+    if (*s >= '0' && *s <= '9') {
+      r *= 10;
+      r += *s - '0';
+    } else {
+      break;
+    }
+  }
+  *result = r;
+  return s;
+}
+
+void my_memset(void* ip, char c, size_t len) {
+  char* p = (char*) ip;
+  while (len--)
+    *p++ = c;
+}
+
+size_t my_strlcpy(char* s1, const char* s2, size_t len) {
+  size_t pos1 = 0;
+  size_t pos2 = 0;
+
+  while (s2[pos2] != '\0') {
+    if (pos1 + 1 < len) {
+      s1[pos1] = s2[pos2];
+      pos1++;
+    }
+    pos2++;
+  }
+  if (len > 0)
+    s1[pos1] = '\0';
+
+  return pos2;
+}
+
+size_t my_strlcat(char* s1, const char* s2, size_t len) {
+  size_t pos1 = 0;
+
+  while (pos1 < len && s1[pos1] != '\0')
+    pos1++;
+
+  if (pos1 == len)
+    return pos1;
+
+  return pos1 + my_strlcpy(s1 + pos1, s2, len - pos1);
+}
+
+int my_isspace(int ch) {
+  // Matches the C locale.
+  const char spaces[] = " \t\f\n\r\t\v";
+  for (size_t i = 0; i < sizeof(spaces); i++) {
+    if (ch == spaces[i])
+      return 1;
+  }
+  return 0;
+}
+
+}  // extern "C"
diff --git a/src/common/linux/linux_libc_support.h b/src/common/linux/linux_libc_support.h
new file mode 100644
index 0000000..ec5a8d6
--- /dev/null
+++ b/src/common/linux/linux_libc_support.h
@@ -0,0 +1,96 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This header provides replacements for libc functions that we need. We if
+// call the libc functions directly we risk crashing in the dynamic linker as
+// it tries to resolve uncached PLT entries.
+
+#ifndef CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
+#define CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
+
+#include <stdint.h>
+#include <limits.h>
+#include <sys/types.h>
+
+extern "C" {
+
+extern size_t my_strlen(const char* s);
+
+extern int my_strcmp(const char* a, const char* b);
+
+extern int my_strncmp(const char* a, const char* b, size_t len);
+
+// Parse a non-negative integer.
+//   result: (output) the resulting non-negative integer
+//   s: a NUL terminated string
+// Return true iff successful.
+extern bool my_strtoui(int* result, const char* s);
+
+// Return the length of the given unsigned integer when expressed in base 10.
+extern unsigned my_uint_len(uintmax_t i);
+
+// Convert an unsigned integer to a string
+//   output: (output) the resulting string is written here. This buffer must be
+//     large enough to hold the resulting string. Call |my_uint_len| to get the
+//     required length.
+//   i: the unsigned integer to serialise.
+//   i_len: the length of the integer in base 10 (see |my_uint_len|).
+extern void my_uitos(char* output, uintmax_t i, unsigned i_len);
+
+extern const char* my_strchr(const char* haystack, char needle);
+
+extern const char* my_strrchr(const char* haystack, char needle);
+
+// Read a hex value
+//   result: (output) the resulting value
+//   s: a string
+// Returns a pointer to the first invalid charactor.
+extern const char* my_read_hex_ptr(uintptr_t* result, const char* s);
+
+extern const char* my_read_decimal_ptr(uintptr_t* result, const char* s);
+
+extern void my_memset(void* ip, char c, size_t len);
+
+extern void* my_memchr(const void* src, int c, size_t len);
+
+// The following are considered safe to use in a compromised environment.
+// Besides, this gives the compiler an opportunity to optimize their calls.
+#define my_memcpy  memcpy
+#define my_memmove memmove
+#define my_memcmp  memcmp
+
+extern size_t my_strlcpy(char* s1, const char* s2, size_t len);
+
+extern size_t my_strlcat(char* s1, const char* s2, size_t len);
+
+extern int my_isspace(int ch);
+
+}  // extern "C"
+
+#endif  // CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
diff --git a/src/common/linux/linux_libc_support_unittest.cc b/src/common/linux/linux_libc_support_unittest.cc
new file mode 100644
index 0000000..adadfed
--- /dev/null
+++ b/src/common/linux/linux_libc_support_unittest.cc
@@ -0,0 +1,213 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/linux_libc_support.h"
+
+namespace {
+typedef testing::Test LinuxLibcSupportTest;
+}
+
+TEST(LinuxLibcSupportTest, strlen) {
+  static const char* test_data[] = { "", "a", "aa", "aaa", "aabc", NULL };
+  for (unsigned i = 0; ; ++i) {
+    if (!test_data[i])
+      break;
+    ASSERT_EQ(strlen(test_data[i]), my_strlen(test_data[i]));
+  }
+}
+
+TEST(LinuxLibcSupportTest, strcmp) {
+  static const char* test_data[] = {
+    "", "",
+    "a", "",
+    "", "a",
+    "a", "b",
+    "a", "a",
+    "ab", "aa",
+    "abc", "ab",
+    "abc", "abc",
+    NULL,
+  };
+
+  for (unsigned i = 0; ; ++i) {
+    if (!test_data[i*2])
+      break;
+    int libc_result = strcmp(test_data[i*2], test_data[i*2 + 1]);
+    if (libc_result > 1)
+      libc_result = 1;
+    else if (libc_result < -1)
+      libc_result = -1;
+    ASSERT_EQ(my_strcmp(test_data[i*2], test_data[i*2 + 1]), libc_result);
+  }
+}
+
+TEST(LinuxLibcSupportTest, strtoui) {
+  int result;
+
+  ASSERT_FALSE(my_strtoui(&result, ""));
+  ASSERT_FALSE(my_strtoui(&result, "-1"));
+  ASSERT_FALSE(my_strtoui(&result, "-"));
+  ASSERT_FALSE(my_strtoui(&result, "a"));
+  ASSERT_FALSE(my_strtoui(&result, "23472893472938472987987398472398"));
+
+  ASSERT_TRUE(my_strtoui(&result, "0"));
+  ASSERT_EQ(result, 0);
+  ASSERT_TRUE(my_strtoui(&result, "1"));
+  ASSERT_EQ(result, 1);
+  ASSERT_TRUE(my_strtoui(&result, "12"));
+  ASSERT_EQ(result, 12);
+  ASSERT_TRUE(my_strtoui(&result, "123"));
+  ASSERT_EQ(result, 123);
+  ASSERT_TRUE(my_strtoui(&result, "0123"));
+  ASSERT_EQ(result, 123);
+}
+
+TEST(LinuxLibcSupportTest, uint_len) {
+  ASSERT_EQ(my_uint_len(0), 1U);
+  ASSERT_EQ(my_uint_len(2), 1U);
+  ASSERT_EQ(my_uint_len(5), 1U);
+  ASSERT_EQ(my_uint_len(9), 1U);
+  ASSERT_EQ(my_uint_len(10), 2U);
+  ASSERT_EQ(my_uint_len(99), 2U);
+  ASSERT_EQ(my_uint_len(100), 3U);
+  ASSERT_EQ(my_uint_len(101), 3U);
+  ASSERT_EQ(my_uint_len(1000), 4U);
+  // 0xFFFFFFFFFFFFFFFF
+  ASSERT_EQ(my_uint_len(18446744073709551615LLU), 20U);
+}
+
+TEST(LinuxLibcSupportTest, uitos) {
+  char buf[32];
+
+  my_uitos(buf, 0, 1);
+  ASSERT_EQ(0, memcmp(buf, "0", 1));
+
+  my_uitos(buf, 1, 1);
+  ASSERT_EQ(0, memcmp(buf, "1", 1));
+
+  my_uitos(buf, 10, 2);
+  ASSERT_EQ(0, memcmp(buf, "10", 2));
+
+  my_uitos(buf, 63, 2);
+  ASSERT_EQ(0, memcmp(buf, "63", 2));
+
+  my_uitos(buf, 101, 3);
+  ASSERT_EQ(0, memcmp(buf, "101", 2));
+
+  // 0xFFFFFFFFFFFFFFFF
+  my_uitos(buf, 18446744073709551615LLU, 20);
+  ASSERT_EQ(0, memcmp(buf, "18446744073709551615", 20));
+}
+
+TEST(LinuxLibcSupportTest, strchr) {
+  ASSERT_EQ(NULL, my_strchr("abc", 'd'));
+  ASSERT_EQ(NULL, my_strchr("", 'd'));
+  ASSERT_EQ(NULL, my_strchr("efghi", 'd'));
+
+  ASSERT_TRUE(my_strchr("a", 'a'));
+  ASSERT_TRUE(my_strchr("abc", 'a'));
+  ASSERT_TRUE(my_strchr("bcda", 'a'));
+  ASSERT_TRUE(my_strchr("sdfasdf", 'a'));
+
+  static const char abc3[] = "abcabcabc";
+  ASSERT_EQ(abc3, my_strchr(abc3, 'a'));
+}
+
+TEST(LinuxLibcSupportTest, strrchr) {
+  ASSERT_EQ(NULL, my_strrchr("abc", 'd'));
+  ASSERT_EQ(NULL, my_strrchr("", 'd'));
+  ASSERT_EQ(NULL, my_strrchr("efghi", 'd'));
+
+  ASSERT_TRUE(my_strrchr("a", 'a'));
+  ASSERT_TRUE(my_strrchr("abc", 'a'));
+  ASSERT_TRUE(my_strrchr("bcda", 'a'));
+  ASSERT_TRUE(my_strrchr("sdfasdf", 'a'));
+
+  static const char abc3[] = "abcabcabc";
+  ASSERT_EQ(abc3 + 6, my_strrchr(abc3, 'a'));
+}
+
+TEST(LinuxLibcSupportTest, memchr) {
+  ASSERT_EQ(NULL, my_memchr("abc", 'd', 3));
+  ASSERT_EQ(NULL, my_memchr("abcd", 'd', 3));
+  ASSERT_EQ(NULL, my_memchr("a", 'a', 0));
+
+  static const char abc3[] = "abcabcabc";
+  ASSERT_EQ(abc3, my_memchr(abc3, 'a', 3));
+  ASSERT_EQ(abc3, my_memchr(abc3, 'a', 9));
+  ASSERT_EQ(abc3+1, my_memchr(abc3, 'b', 9));
+  ASSERT_EQ(abc3+2, my_memchr(abc3, 'c', 9));
+}
+
+TEST(LinuxLibcSupportTest, read_hex_ptr) {
+  uintptr_t result;
+  const char* last;
+
+  last = my_read_hex_ptr(&result, "");
+  ASSERT_EQ(result, 0U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_hex_ptr(&result, "0");
+  ASSERT_EQ(result, 0U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_hex_ptr(&result, "0123");
+  ASSERT_EQ(result, 0x123U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_hex_ptr(&result, "0123a");
+  ASSERT_EQ(result, 0x123aU);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_hex_ptr(&result, "0123a-");
+  ASSERT_EQ(result, 0x123aU);
+  ASSERT_EQ(*last, '-');
+}
+
+TEST(LinuxLibcSupportTest, read_decimal_ptr) {
+  uintptr_t result;
+  const char* last;
+
+  last = my_read_decimal_ptr(&result, "0");
+  ASSERT_EQ(result, 0U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_decimal_ptr(&result, "0123");
+  ASSERT_EQ(result, 123U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_decimal_ptr(&result, "1234");
+  ASSERT_EQ(result, 1234U);
+  ASSERT_EQ(*last, 0);
+
+  last = my_read_decimal_ptr(&result, "01234-");
+  ASSERT_EQ(result, 1234U);
+  ASSERT_EQ(*last, '-');
+}
diff --git a/src/common/linux/memory_mapped_file.cc b/src/common/linux/memory_mapped_file.cc
new file mode 100644
index 0000000..9936294
--- /dev/null
+++ b/src/common/linux/memory_mapped_file.cc
@@ -0,0 +1,108 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_mapped_file.cc: Implement google_breakpad::MemoryMappedFile.
+// See memory_mapped_file.h for details.
+
+#include "common/linux/memory_mapped_file.h"
+
+#include <fcntl.h>
+#include <sys/mman.h>
+#if defined(__ANDROID__)
+#include <sys/stat.h>
+#endif
+#include <unistd.h>
+
+#include "common/memory_range.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+MemoryMappedFile::MemoryMappedFile() {}
+
+MemoryMappedFile::MemoryMappedFile(const char* path, size_t offset) {
+  Map(path, offset);
+}
+
+MemoryMappedFile::~MemoryMappedFile() {
+  Unmap();
+}
+
+#include <unistd.h>
+
+bool MemoryMappedFile::Map(const char* path, size_t offset) {
+  Unmap();
+
+  int fd = sys_open(path, O_RDONLY, 0);
+  if (fd == -1) {
+    return false;
+  }
+
+#if defined(__x86_64__) || defined(__aarch64__) || \
+   (defined(__mips__) && _MIPS_SIM == _ABI64)
+
+  struct kernel_stat st;
+  if (sys_fstat(fd, &st) == -1 || st.st_size < 0) {
+#else
+  struct kernel_stat64 st;
+  if (sys_fstat64(fd, &st) == -1 || st.st_size < 0) {
+#endif
+    sys_close(fd);
+    return false;
+  }
+
+  // Strangely file size can be negative, but we check above that it is not.
+  size_t file_len = static_cast<size_t>(st.st_size);
+  // If the file does not extend beyond the offset, simply use an empty
+  // MemoryRange and return true. Don't bother to call mmap()
+  // even though mmap() can handle an empty file on some platforms.
+  if (offset >= file_len) {
+    sys_close(fd);
+    return true;
+  }
+
+  size_t content_len = file_len - offset;
+  void* data = sys_mmap(NULL, content_len, PROT_READ, MAP_PRIVATE, fd, offset);
+  sys_close(fd);
+  if (data == MAP_FAILED) {
+    return false;
+  }
+
+  content_.Set(data, content_len);
+  return true;
+}
+
+void MemoryMappedFile::Unmap() {
+  if (content_.data()) {
+    sys_munmap(const_cast<uint8_t*>(content_.data()), content_.length());
+    content_.Set(NULL, 0);
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/memory_mapped_file.h b/src/common/linux/memory_mapped_file.h
new file mode 100644
index 0000000..fa660cc
--- /dev/null
+++ b/src/common/linux/memory_mapped_file.h
@@ -0,0 +1,87 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_mapped_file.h: Define the google_breakpad::MemoryMappedFile
+// class, which maps a file into memory for read-only access.
+
+#ifndef COMMON_LINUX_MEMORY_MAPPED_FILE_H_
+#define COMMON_LINUX_MEMORY_MAPPED_FILE_H_
+
+#include <stddef.h>
+#include "common/basictypes.h"
+#include "common/memory_range.h"
+
+namespace google_breakpad {
+
+// A utility class for mapping a file into memory for read-only access of
+// the file content. Its implementation avoids calling into libc functions
+// by directly making system calls for open, close, mmap, and munmap.
+class MemoryMappedFile {
+ public:
+  MemoryMappedFile();
+
+  // Constructor that calls Map() to map a file at |path| into memory.
+  // If Map() fails, the object behaves as if it is default constructed.
+  MemoryMappedFile(const char* path, size_t offset);
+
+  ~MemoryMappedFile();
+
+  // Maps a file at |path| into memory, which can then be accessed via
+  // content() as a MemoryRange object or via data(), and returns true on
+  // success. Mapping an empty file will succeed but with data() and size()
+  // returning NULL and 0, respectively. An existing mapping is unmapped
+  // before a new mapping is created.
+  bool Map(const char* path, size_t offset);
+
+  // Unmaps the memory for the mapped file. It's a no-op if no file is
+  // mapped.
+  void Unmap();
+
+  // Returns a MemoryRange object that covers the memory for the mapped
+  // file. The MemoryRange object is empty if no file is mapped.
+  const MemoryRange& content() const { return content_; }
+
+  // Returns a pointer to the beginning of the memory for the mapped file.
+  // or NULL if no file is mapped or the mapped file is empty.
+  const void* data() const { return content_.data(); }
+
+  // Returns the size in bytes of the mapped file, or zero if no file
+  // is mapped.
+  size_t size() const { return content_.length(); }
+
+ private:
+  // Mapped file content as a MemoryRange object.
+  MemoryRange content_;
+
+  DISALLOW_COPY_AND_ASSIGN(MemoryMappedFile);
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_MEMORY_MAPPED_FILE_H_
diff --git a/src/common/linux/memory_mapped_file_unittest.cc b/src/common/linux/memory_mapped_file_unittest.cc
new file mode 100644
index 0000000..fad59f4
--- /dev/null
+++ b/src/common/linux/memory_mapped_file_unittest.cc
@@ -0,0 +1,208 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_mapped_file_unittest.cc:
+// Unit tests for google_breakpad::MemoryMappedFile.
+
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/memory_mapped_file.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/tests/file_utils.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::AutoTempDir;
+using google_breakpad::MemoryMappedFile;
+using google_breakpad::WriteFile;
+
+namespace {
+
+class MemoryMappedFileTest : public testing::Test {
+ protected:
+  void ExpectNoMappedData(const MemoryMappedFile& mapped_file) {
+    EXPECT_TRUE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() == NULL);
+    EXPECT_EQ(0U, mapped_file.size());
+  }
+};
+
+}  // namespace
+
+TEST_F(MemoryMappedFileTest, DefaultConstructor) {
+  MemoryMappedFile mapped_file;
+  ExpectNoMappedData(mapped_file);
+}
+
+TEST_F(MemoryMappedFileTest, UnmapWithoutMap) {
+  MemoryMappedFile mapped_file;
+  mapped_file.Unmap();
+}
+
+TEST_F(MemoryMappedFileTest, MapNonexistentFile) {
+  {
+    MemoryMappedFile mapped_file("nonexistent-file", 0);
+    ExpectNoMappedData(mapped_file);
+  }
+  {
+    MemoryMappedFile mapped_file;
+    EXPECT_FALSE(mapped_file.Map("nonexistent-file", 0));
+    ExpectNoMappedData(mapped_file);
+  }
+}
+
+TEST_F(MemoryMappedFileTest, MapEmptyFile) {
+  AutoTempDir temp_dir;
+  string test_file = temp_dir.path() + "/empty_file";
+  ASSERT_TRUE(WriteFile(test_file.c_str(), NULL, 0));
+
+  {
+    MemoryMappedFile mapped_file(test_file.c_str(), 0);
+    ExpectNoMappedData(mapped_file);
+  }
+  {
+    MemoryMappedFile mapped_file;
+    EXPECT_TRUE(mapped_file.Map(test_file.c_str(), 0));
+    ExpectNoMappedData(mapped_file);
+  }
+}
+
+TEST_F(MemoryMappedFileTest, MapNonEmptyFile) {
+  char data[256];
+  size_t data_size = sizeof(data);
+  for (size_t i = 0; i < data_size; ++i) {
+    data[i] = i;
+  }
+
+  AutoTempDir temp_dir;
+  string test_file = temp_dir.path() + "/test_file";
+  ASSERT_TRUE(WriteFile(test_file.c_str(), data, data_size));
+
+  {
+    MemoryMappedFile mapped_file(test_file.c_str(), 0);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data, mapped_file.data(), data_size));
+  }
+  {
+    MemoryMappedFile mapped_file;
+    EXPECT_TRUE(mapped_file.Map(test_file.c_str(), 0));
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data, mapped_file.data(), data_size));
+  }
+}
+
+TEST_F(MemoryMappedFileTest, RemapAfterMap) {
+  char data1[256];
+  size_t data1_size = sizeof(data1);
+  for (size_t i = 0; i < data1_size; ++i) {
+    data1[i] = i;
+  }
+
+  char data2[50];
+  size_t data2_size = sizeof(data2);
+  for (size_t i = 0; i < data2_size; ++i) {
+    data2[i] = 255 - i;
+  }
+
+  AutoTempDir temp_dir;
+  string test_file1 = temp_dir.path() + "/test_file1";
+  string test_file2 = temp_dir.path() + "/test_file2";
+  ASSERT_TRUE(WriteFile(test_file1.c_str(), data1, data1_size));
+  ASSERT_TRUE(WriteFile(test_file2.c_str(), data2, data2_size));
+
+  {
+    MemoryMappedFile mapped_file(test_file1.c_str(), 0);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data1_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data1, mapped_file.data(), data1_size));
+
+    mapped_file.Map(test_file2.c_str(), 0);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data2_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data2, mapped_file.data(), data2_size));
+  }
+  {
+    MemoryMappedFile mapped_file;
+    EXPECT_TRUE(mapped_file.Map(test_file1.c_str(), 0));
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data1_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data1, mapped_file.data(), data1_size));
+
+    mapped_file.Map(test_file2.c_str(), 0);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data2_size, mapped_file.size());
+    EXPECT_EQ(0, memcmp(data2, mapped_file.data(), data2_size));
+  }
+}
+
+TEST_F(MemoryMappedFileTest, MapWithOffset) {
+  // Put more data in the test file this time. Offsets can only be
+  // done on page boundaries, so we need a two page file to test this.
+  const int page_size = 4096;
+  char data1[2 * page_size];
+  size_t data1_size = sizeof(data1);
+  for (size_t i = 0; i < data1_size; ++i) {
+    data1[i] = i & 0x7f;
+  }
+
+  AutoTempDir temp_dir;
+  string test_file1 = temp_dir.path() + "/test_file1";
+  ASSERT_TRUE(WriteFile(test_file1.c_str(), data1, data1_size));
+  {
+    MemoryMappedFile mapped_file(test_file1.c_str(), page_size);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data1_size - page_size, mapped_file.size());
+    EXPECT_EQ(
+        0,
+        memcmp(data1 + page_size, mapped_file.data(), data1_size - page_size));
+  }
+  {
+    MemoryMappedFile mapped_file;
+    mapped_file.Map(test_file1.c_str(), page_size);
+    EXPECT_FALSE(mapped_file.content().IsEmpty());
+    EXPECT_TRUE(mapped_file.data() != NULL);
+    EXPECT_EQ(data1_size - page_size, mapped_file.size());
+    EXPECT_EQ(
+        0,
+        memcmp(data1 + page_size, mapped_file.data(), data1_size - page_size));
+  }
+}
diff --git a/src/common/linux/safe_readlink.cc b/src/common/linux/safe_readlink.cc
new file mode 100644
index 0000000..870c28a
--- /dev/null
+++ b/src/common/linux/safe_readlink.cc
@@ -0,0 +1,53 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// safe_readlink.cc: Implement google_breakpad::SafeReadLink.
+// See safe_readlink.h for details.
+
+#include <stddef.h>
+
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace google_breakpad {
+
+bool SafeReadLink(const char* path, char* buffer, size_t buffer_size) {
+  // sys_readlink() does not add a NULL byte to |buffer|. In order to return
+  // a NULL-terminated string in |buffer|, |buffer_size| should be at least
+  // one byte longer than the expected path length. Also, sys_readlink()
+  // returns the actual path length on success, which does not count the
+  // NULL byte, so |result_size| should be less than |buffer_size|.
+  ssize_t result_size = sys_readlink(path, buffer, buffer_size);
+  if (result_size >= 0 && static_cast<size_t>(result_size) < buffer_size) {
+    buffer[result_size] = '\0';
+    return true;
+  }
+  return false;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/safe_readlink.h b/src/common/linux/safe_readlink.h
new file mode 100644
index 0000000..4ae131b
--- /dev/null
+++ b/src/common/linux/safe_readlink.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// safe_readlink.h: Define the google_breakpad::SafeReadLink function,
+// which wraps sys_readlink and gurantees the result is NULL-terminated.
+
+#ifndef COMMON_LINUX_SAFE_READLINK_H_
+#define COMMON_LINUX_SAFE_READLINK_H_
+
+#include <stddef.h>
+
+namespace google_breakpad {
+
+// This function wraps sys_readlink() and performs the same functionalty,
+// but guarantees |buffer| is NULL-terminated if sys_readlink() returns
+// no error. It takes the same arguments as sys_readlink(), but unlike
+// sys_readlink(), it returns true on success.
+//
+// |buffer_size| specifies the size of |buffer| in bytes. As this function
+// always NULL-terminates |buffer| on success, |buffer_size| should be
+// at least one byte longer than the expected path length (e.g. PATH_MAX,
+// which is typically defined as the maximum length of a path name
+// including the NULL byte).
+//
+// The implementation of this function calls sys_readlink() instead of
+// readlink(), it can thus be used in the context where calling to libc
+// functions is discouraged.
+bool SafeReadLink(const char* path, char* buffer, size_t buffer_size);
+
+// Same as the three-argument version of SafeReadLink() but deduces the
+// size of |buffer| if it is a char array of known size.
+template <size_t N>
+bool SafeReadLink(const char* path, char (&buffer)[N]) {
+  return SafeReadLink(path, buffer, sizeof(buffer));
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_SAFE_READLINK_H_
diff --git a/src/common/linux/safe_readlink_unittest.cc b/src/common/linux/safe_readlink_unittest.cc
new file mode 100644
index 0000000..d346b2a
--- /dev/null
+++ b/src/common/linux/safe_readlink_unittest.cc
@@ -0,0 +1,89 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// safe_readlink_unittest.cc: Unit tests for google_breakpad::SafeReadLink.
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/safe_readlink.h"
+
+using google_breakpad::SafeReadLink;
+
+TEST(SafeReadLinkTest, ZeroBufferSize) {
+  char buffer[1];
+  EXPECT_FALSE(SafeReadLink("/proc/self/exe", buffer, 0));
+}
+
+TEST(SafeReadLinkTest, BufferSizeTooSmall) {
+  char buffer[1];
+  EXPECT_FALSE(SafeReadLink("/proc/self/exe", buffer, 1));
+}
+
+TEST(SafeReadLinkTest, BoundaryBufferSize) {
+  char buffer[PATH_MAX];
+  EXPECT_TRUE(SafeReadLink("/proc/self/exe", buffer, sizeof(buffer)));
+  size_t path_length = strlen(buffer);
+  EXPECT_LT(0U, path_length);
+  EXPECT_GT(sizeof(buffer), path_length);
+
+  // Buffer size equals to the expected path length plus 1 for the NULL byte.
+  char buffer2[PATH_MAX];
+  EXPECT_TRUE(SafeReadLink("/proc/self/exe", buffer2, path_length + 1));
+  EXPECT_EQ(path_length, strlen(buffer2));
+  EXPECT_EQ(0, strncmp(buffer, buffer2, PATH_MAX));
+
+  // Buffer size equals to the expected path length.
+  EXPECT_FALSE(SafeReadLink("/proc/self/exe", buffer, path_length));
+}
+
+TEST(SafeReadLinkTest, NonexistentPath) {
+  char buffer[PATH_MAX];
+  EXPECT_FALSE(SafeReadLink("nonexistent_path", buffer, sizeof(buffer)));
+}
+
+TEST(SafeReadLinkTest, NonSymbolicLinkPath) {
+  char actual_path[PATH_MAX];
+  EXPECT_TRUE(SafeReadLink("/proc/self/exe", actual_path, sizeof(actual_path)));
+
+  char buffer[PATH_MAX];
+  EXPECT_FALSE(SafeReadLink(actual_path, buffer, sizeof(buffer)));
+}
+
+TEST(SafeReadLinkTest, DeduceBufferSizeFromCharArray) {
+  char buffer[PATH_MAX];
+  char* buffer_pointer = buffer;
+  EXPECT_TRUE(SafeReadLink("/proc/self/exe", buffer_pointer, sizeof(buffer)));
+  size_t path_length = strlen(buffer);
+
+  // Use the template version of SafeReadLink to deduce the buffer size
+  // from the char array.
+  char buffer2[PATH_MAX];
+  EXPECT_TRUE(SafeReadLink("/proc/self/exe", buffer2));
+  EXPECT_EQ(path_length, strlen(buffer2));
+  EXPECT_EQ(0, strncmp(buffer, buffer2, PATH_MAX));
+}
diff --git a/src/common/linux/symbol_collector_client.cc b/src/common/linux/symbol_collector_client.cc
new file mode 100644
index 0000000..92b25dd
--- /dev/null
+++ b/src/common/linux/symbol_collector_client.cc
@@ -0,0 +1,195 @@
+// Copyright (c) 2019 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/linux/symbol_collector_client.h"
+
+#include <stdio.h>
+
+#include <iostream>
+#include <regex>
+
+#include "common/linux/libcurl_wrapper.h"
+
+namespace google_breakpad {
+namespace sym_upload {
+
+// static
+bool SymbolCollectorClient::CreateUploadUrl(
+    LibcurlWrapper* libcurl_wrapper,
+    const string& api_url,
+    const string& api_key,
+    UploadUrlResponse* uploadUrlResponse) {
+  string header, response;
+  long response_code;
+
+  string url = api_url + "/v1/uploads:create";
+  if (!api_key.empty()) {
+    url += "?key=" + api_key;
+  }
+
+  if (!libcurl_wrapper->SendSimplePostRequest(url,
+                                              /*body=*/"",
+                                              /*content_type=*/"",
+                                              &response_code,
+                                              &header,
+                                              &response)) {
+    printf("Failed to create upload url.\n");
+    printf("Response code: %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return false;
+  }
+
+  // Note camel-case rather than underscores.
+  std::regex upload_url_regex("\"uploadUrl\": \"([^\"]+)\"");
+  std::regex upload_key_regex("\"uploadKey\": \"([^\"]+)\"");
+
+  std::smatch upload_url_match;
+  if (!std::regex_search(response, upload_url_match, upload_url_regex) ||
+      upload_url_match.size() != 2) {
+    printf("Failed to parse create url response.");
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return false;
+  }
+  string upload_url = upload_url_match[1].str();
+
+  std::smatch upload_key_match;
+  if (!std::regex_search(response, upload_key_match, upload_key_regex) ||
+      upload_key_match.size() != 2) {
+    printf("Failed to parse create url response.");
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return false;
+  }
+  string upload_key = upload_key_match[1].str();
+
+  uploadUrlResponse->upload_url = upload_url;
+  uploadUrlResponse->upload_key = upload_key;
+  return true;
+}
+
+// static
+CompleteUploadResult SymbolCollectorClient::CompleteUpload(
+    LibcurlWrapper* libcurl_wrapper,
+    const string& api_url,
+    const string& api_key,
+    const string& upload_key,
+    const string& debug_file,
+    const string& debug_id,
+    const string& type) {
+  string header, response;
+  long response_code;
+
+  string url = api_url + "/v1/uploads/" + upload_key + ":complete";
+  if (!api_key.empty()) {
+    url += "?key=" + api_key;
+  }
+  string body =
+      "{ symbol_id: {"
+      "debug_file: \"" + debug_file + "\", "
+      "debug_id: \"" + debug_id + "\" }, "
+      "symbol_upload_type: \"" + type + "\" }";
+
+  if (!libcurl_wrapper->SendSimplePostRequest(url,
+                                              body,
+                                              "application/son",
+                                              &response_code,
+                                              &header,
+                                              &response)) {
+    printf("Failed to complete upload.\n");
+    printf("Response code: %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return CompleteUploadResult::Error;
+  }
+
+  std::regex result_regex("\"result\": \"([^\"]+)\"");
+  std::smatch result_match;
+  if (!std::regex_search(response, result_match, result_regex) ||
+      result_match.size() != 2) {
+    printf("Failed to parse complete upload response.");
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return CompleteUploadResult::Error;
+  }
+  string result = result_match[1].str();
+
+  if (result.compare("DUPLICATE_DATA") == 0) {
+    return CompleteUploadResult::DuplicateData;
+  }
+
+  return CompleteUploadResult::Ok;
+}
+
+// static
+SymbolStatus SymbolCollectorClient::CheckSymbolStatus(
+    LibcurlWrapper* libcurl_wrapper,
+    const string& api_url,
+    const string& api_key,
+    const string& debug_file,
+    const string& debug_id) {
+  string header, response;
+  long response_code;
+  string url = api_url +
+               "/v1/symbols/" + debug_file + "/" + debug_id + ":checkStatus";
+  if (!api_key.empty()) {
+    url += "?key=" + api_key;
+  }
+
+  if (!libcurl_wrapper->SendGetRequest(
+      url,
+      &response_code,
+      &header,
+      &response)) {
+    printf("Failed to check symbol status, error message.\n");
+    printf("Response code: %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return SymbolStatus::Unknown;
+  }
+
+  std::regex status_regex("\"status\": \"([^\"]+)\"");
+  std::smatch status_match;
+  if (!std::regex_search(response, status_match, status_regex) ||
+      status_match.size() != 2) {
+    printf("Failed to parse check symbol status response.");
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return SymbolStatus::Unknown;
+  }
+  string status = status_match[1].str();
+
+  return (status.compare("FOUND") == 0) ?
+      SymbolStatus::Found :
+      SymbolStatus::Missing;
+}
+
+}  // namespace sym_upload
+}  // namespace google_breakpad
diff --git a/src/common/linux/symbol_collector_client.h b/src/common/linux/symbol_collector_client.h
new file mode 100644
index 0000000..0e23242
--- /dev/null
+++ b/src/common/linux/symbol_collector_client.h
@@ -0,0 +1,88 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LINUX_SYMBOL_COLLECTOR_CLIENT_H_
+#define COMMON_LINUX_SYMBOL_COLLECTOR_CLIENT_H_
+
+#include <string>
+
+#include "common/linux/libcurl_wrapper.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+namespace sym_upload {
+
+struct UploadUrlResponse {
+  string upload_url;
+  string upload_key;
+};
+
+enum SymbolStatus {
+  Found,
+  Missing,
+  Unknown
+};
+
+enum CompleteUploadResult {
+  Ok,
+  DuplicateData,
+  Error
+};
+
+// Helper class to communicate with a sym-upload-v2 service over HTTP/REST,
+// via libcurl.
+class SymbolCollectorClient {
+ public:
+  static bool CreateUploadUrl(
+      LibcurlWrapper* libcurl_wrapper,
+      const string& api_url,
+      const string& api_key,
+      UploadUrlResponse* uploadUrlResponse);
+
+  static CompleteUploadResult CompleteUpload(
+      LibcurlWrapper* libcurl_wrapper,
+      const string& api_url,
+      const string& api_key,
+      const string& upload_key,
+      const string& debug_file,
+      const string& debug_id,
+      const string& type);
+
+  static SymbolStatus CheckSymbolStatus(
+      LibcurlWrapper* libcurl_wrapper,
+      const string& api_url,
+      const string& api_key,
+      const string& debug_file,
+      const string& debug_id);
+};
+
+}  // namespace sym_upload
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_SYMBOL_COLLECTOR_CLIENT_H_
diff --git a/src/common/linux/symbol_upload.cc b/src/common/linux/symbol_upload.cc
new file mode 100644
index 0000000..1d5ff71
--- /dev/null
+++ b/src/common/linux/symbol_upload.cc
@@ -0,0 +1,284 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// symbol_upload.cc: implemented google_breakpad::sym_upload::Start, a helper
+// function for linux symbol upload tool.
+
+#include "common/linux/symbol_upload.h"
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <functional>
+#include <iostream>
+#include <vector>
+
+#include "common/linux/http_upload.h"
+#include "common/linux/libcurl_wrapper.h"
+#include "common/linux/symbol_collector_client.h"
+
+namespace google_breakpad {
+namespace sym_upload {
+
+void TokenizeByChar(const string& source_string, int c,
+                    std::vector<string>* results) {
+  assert(results);
+  string::size_type cur_pos = 0, next_pos = 0;
+  while ((next_pos = source_string.find(c, cur_pos)) != string::npos) {
+    if (next_pos != cur_pos)
+      results->push_back(source_string.substr(cur_pos, next_pos - cur_pos));
+    cur_pos = next_pos + 1;
+  }
+  if (cur_pos < source_string.size() && next_pos != cur_pos)
+    results->push_back(source_string.substr(cur_pos));
+}
+
+//=============================================================================
+// Parse out the module line which have 5 parts.
+// MODULE <os> <cpu> <uuid> <module-name>
+bool ModuleDataForSymbolFile(const string& file,
+                             std::vector<string>* module_parts) {
+  assert(module_parts);
+  const size_t kModulePartNumber = 5;
+  FILE* fp = fopen(file.c_str(), "r");
+  if (fp) {
+    char buffer[1024];
+    if (fgets(buffer, sizeof(buffer), fp)) {
+      string line(buffer);
+      string::size_type line_break_pos = line.find_first_of('\n');
+      if (line_break_pos == string::npos) {
+        assert(0 && "The file is invalid!");
+        fclose(fp);
+        return false;
+      }
+      line.resize(line_break_pos);
+      const char kDelimiter = ' ';
+      TokenizeByChar(line, kDelimiter, module_parts);
+      if (module_parts->size() != kModulePartNumber)
+        module_parts->clear();
+    }
+    fclose(fp);
+  }
+
+  return module_parts->size() == kModulePartNumber;
+}
+
+//=============================================================================
+string CompactIdentifier(const string& uuid) {
+  std::vector<string> components;
+  TokenizeByChar(uuid, '-', &components);
+  string result;
+  for (size_t i = 0; i < components.size(); ++i)
+    result += components[i];
+  return result;
+}
+
+// |options| describes the current sym_upload options.
+// |module_parts| contains the strings parsed from the MODULE entry of the
+// Breakpad symbol file being uploaded.
+// |compacted_id| is the debug_id from the MODULE entry of the Breakpad symbol
+// file being uploaded, with all hyphens removed.
+bool SymUploadV1Start(
+    const Options& options,
+    std::vector<string> module_parts,
+    const string& compacted_id) {
+  std::map<string, string> parameters;
+  // Add parameters
+  if (!options.version.empty())
+    parameters["version"] = options.version;
+
+  // MODULE <os> <cpu> <uuid> <module-name>
+  // 0      1    2     3      4
+  parameters["os"] = module_parts[1];
+  parameters["cpu"] = module_parts[2];
+  parameters["debug_file"] = module_parts[4];
+  parameters["code_file"] = module_parts[4];
+  parameters["debug_identifier"] = compacted_id;
+
+  std::map<string, string> files;
+  files["symbol_file"] = options.symbolsPath;
+
+  string response, error;
+  long response_code;
+  bool success = HTTPUpload::SendRequest(options.uploadURLStr,
+                                         parameters,
+                                         files,
+                                         options.proxy,
+                                         options.proxy_user_pwd,
+                                         /*ca_certificate_file=*/"",
+                                         &response,
+                                         &response_code,
+                                         &error);
+
+  if (!success) {
+    printf("Failed to send symbol file: %s\n", error.c_str());
+    printf("Response code: %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+  } else if (response_code == 0) {
+    printf("Failed to send symbol file: No response code\n");
+  } else if (response_code != 200) {
+    printf("Failed to send symbol file: Response code %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+  } else {
+    printf("Successfully sent the symbol file.\n");
+  }
+
+  return success;
+}
+
+// |options| describes the current sym_upload options.
+// |code_id| is the basename of the module for which symbols are being
+// uploaded.
+// |debug_id| is the debug_id of the module for which symbols are being
+// uploaded.
+bool SymUploadV2Start(
+    const Options& options,
+    const string& code_file,
+    const string& debug_id,
+    const string& type) {
+  google_breakpad::LibcurlWrapper libcurl_wrapper;
+  if (!libcurl_wrapper.Init()) {
+    printf("Failed to init google_breakpad::LibcurlWrapper.\n");
+    return false;
+  }
+
+  if (!options.force) {
+    SymbolStatus symbolStatus = SymbolCollectorClient::CheckSymbolStatus(
+        &libcurl_wrapper,
+        options.uploadURLStr,
+        options.api_key,
+        code_file,
+        debug_id);
+    if (symbolStatus == SymbolStatus::Found) {
+      printf("Symbol file already exists, upload aborted."
+          " Use \"-f\" to overwrite.\n");
+      return true;
+    } else if (symbolStatus == SymbolStatus::Unknown) {
+      printf("Failed to check for existing symbol.\n");
+      return false;
+    }
+  }
+
+  UploadUrlResponse uploadUrlResponse;
+  if (!SymbolCollectorClient::CreateUploadUrl(
+      &libcurl_wrapper,
+      options.uploadURLStr,
+      options.api_key,
+      &uploadUrlResponse)) {
+    printf("Failed to create upload URL.\n");
+    return false;
+  }
+
+  string signed_url = uploadUrlResponse.upload_url;
+  string upload_key = uploadUrlResponse.upload_key;
+  string header;
+  string response;
+  long response_code;
+
+  if (!libcurl_wrapper.SendPutRequest(signed_url,
+                                      options.symbolsPath,
+                                      &response_code,
+                                      &header,
+                                      &response)) {
+    printf("Failed to send symbol file.\n");
+    printf("Response code: %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return false;
+  } else if (response_code == 0) {
+    printf("Failed to send symbol file: No response code\n");
+    return false;
+  } else if (response_code != 200) {
+    printf("Failed to send symbol file: Response code %ld\n", response_code);
+    printf("Response:\n");
+    printf("%s\n", response.c_str());
+    return false;
+  }
+
+  CompleteUploadResult completeUploadResult =
+      SymbolCollectorClient::CompleteUpload(&libcurl_wrapper,
+                                            options.uploadURLStr,
+                                            options.api_key,
+                                            upload_key,
+                                            code_file,
+                                            debug_id,
+                                            type);
+  if (completeUploadResult == CompleteUploadResult::Error) {
+    printf("Failed to complete upload.\n");
+    return false;
+  } else if (completeUploadResult == CompleteUploadResult::DuplicateData) {
+    printf("Uploaded file checksum matched existing file checksum,"
+      " no change necessary.\n");
+  } else {
+    printf("Successfully sent the symbol file.\n");
+  }
+
+  return true;
+}
+
+//=============================================================================
+void Start(Options* options) {
+  if (options->upload_protocol == UploadProtocol::SYM_UPLOAD_V2) {
+    string code_file;
+    string debug_id;
+    string type;
+
+    if (options->type.empty() || options->type == kBreakpadSymbolType) {
+      // Breakpad upload so read these from input file.
+      std::vector<string> module_parts;
+      if (!ModuleDataForSymbolFile(options->symbolsPath, &module_parts)) {
+        fprintf(stderr, "Failed to parse symbol file!\n");
+        return;
+      }
+      code_file = module_parts[4];
+      debug_id = CompactIdentifier(module_parts[3]);
+      type = kBreakpadSymbolType;
+    } else {
+      // Native upload so these must be explicitly set.
+      code_file = options->code_file;
+      debug_id = options->debug_id;
+      type = options->type;
+    }
+
+    options->success = SymUploadV2Start(*options, code_file, debug_id, type);
+  } else {
+    std::vector<string> module_parts;
+    if (!ModuleDataForSymbolFile(options->symbolsPath, &module_parts)) {
+      fprintf(stderr, "Failed to parse symbol file!\n");
+      return;
+    }
+    const string compacted_id = CompactIdentifier(module_parts[3]);
+    options->success = SymUploadV1Start(*options, module_parts, compacted_id);
+  }
+}
+
+}  // namespace sym_upload
+}  // namespace google_breakpad
diff --git a/src/common/linux/symbol_upload.h b/src/common/linux/symbol_upload.h
new file mode 100644
index 0000000..9033152
--- /dev/null
+++ b/src/common/linux/symbol_upload.h
@@ -0,0 +1,76 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// symbol_upload.h: helper functions for linux symbol upload tool.
+
+#ifndef COMMON_LINUX_SYMBOL_UPLOAD_H_
+#define COMMON_LINUX_SYMBOL_UPLOAD_H_
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+namespace sym_upload {
+
+enum class UploadProtocol {
+  SYM_UPLOAD_V1,
+  SYM_UPLOAD_V2,
+};
+
+constexpr char kBreakpadSymbolType[] = "BREAKPAD";
+
+struct Options {
+  Options() : upload_protocol(UploadProtocol::SYM_UPLOAD_V1), force(false) {}
+
+  string symbolsPath;
+  string uploadURLStr;
+  string proxy;
+  string proxy_user_pwd;
+  string version;
+  bool success;
+  UploadProtocol upload_protocol;
+  bool force;
+  string api_key;
+
+  // These only need to be set for native symbol uploads.
+  string code_file;
+  string debug_id;
+  string type;
+};
+
+// Starts upload to symbol server with options.
+void Start(Options* options);
+
+}  // namespace sym_upload
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_SYMBOL_UPLOAD_H_
diff --git a/src/common/linux/synth_elf.cc b/src/common/linux/synth_elf.cc
new file mode 100644
index 0000000..2ba25e6
--- /dev/null
+++ b/src/common/linux/synth_elf.cc
@@ -0,0 +1,263 @@
+#include "common/linux/synth_elf.h"
+
+#include <assert.h>
+#include <elf.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "common/linux/elf_gnu_compat.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+namespace synth_elf {
+
+ELF::ELF(uint16_t machine,
+         uint8_t file_class,
+         Endianness endianness)
+  : Section(endianness),
+    addr_size_(file_class == ELFCLASS64 ? 8 : 4),
+    program_count_(0),
+    program_header_table_(endianness),
+    section_count_(0),
+    section_header_table_(endianness),
+    section_header_strings_(endianness) {
+  // Could add support for more machine types here if needed.
+  assert(machine == EM_386 ||
+         machine == EM_X86_64 ||
+         machine == EM_ARM);
+  assert(file_class == ELFCLASS32 || file_class == ELFCLASS64);
+
+  start() = 0;
+  // Add ELF header
+  // e_ident
+  // EI_MAG0...EI_MAG3
+  D8(ELFMAG0);
+  D8(ELFMAG1);
+  D8(ELFMAG2);
+  D8(ELFMAG3);
+  // EI_CLASS
+  D8(file_class);
+  // EI_DATA
+  D8(endianness == kLittleEndian ? ELFDATA2LSB : ELFDATA2MSB);
+  // EI_VERSION
+  D8(EV_CURRENT);
+  // EI_OSABI
+  D8(ELFOSABI_SYSV);
+  // EI_ABIVERSION
+  D8(0);
+  // EI_PAD
+  Append(7, 0);
+  assert(Size() == EI_NIDENT);
+
+  // e_type
+  D16(ET_EXEC);  //TODO: allow passing ET_DYN?
+  // e_machine
+  D16(machine);
+  // e_version
+  D32(EV_CURRENT);
+  // e_entry
+  Append(endianness, addr_size_, 0);
+  // e_phoff
+  Append(endianness, addr_size_, program_header_label_);
+  // e_shoff
+  Append(endianness, addr_size_, section_header_label_);
+  // e_flags
+  D32(0);
+  // e_ehsize
+  D16(addr_size_ == 8 ? sizeof(Elf64_Ehdr) : sizeof(Elf32_Ehdr));
+  // e_phentsize
+  D16(addr_size_ == 8 ? sizeof(Elf64_Phdr) : sizeof(Elf32_Phdr));
+  // e_phnum
+  D16(program_count_label_);
+  // e_shentsize
+  D16(addr_size_ == 8 ? sizeof(Elf64_Shdr) : sizeof(Elf32_Shdr));
+  // e_shnum
+  D16(section_count_label_);
+  // e_shstrndx
+  D16(section_header_string_index_);
+
+  // Add an empty section for SHN_UNDEF.
+  Section shn_undef;
+  AddSection("", shn_undef, SHT_NULL);
+}
+
+int ELF::AddSection(const string& name, const Section& section,
+                    uint32_t type, uint32_t flags, uint64_t addr,
+                    uint32_t link, uint64_t entsize, uint64_t offset) {
+  Label offset_label;
+  Label string_label(section_header_strings_.Add(name));
+  size_t size = section.Size();
+
+  int index = section_count_;
+  ++section_count_;
+
+  section_header_table_
+    // sh_name
+    .D32(string_label)
+    // sh_type
+    .D32(type)
+    // sh_flags
+    .Append(endianness(), addr_size_, flags)
+    // sh_addr
+    .Append(endianness(), addr_size_, addr)
+    // sh_offset
+    .Append(endianness(), addr_size_, offset_label)
+    // sh_size
+    .Append(endianness(), addr_size_, size)
+    // sh_link
+    .D32(link)
+    // sh_info
+    .D32(0)
+    // sh_addralign
+    .Append(endianness(), addr_size_, 0)
+    // sh_entsize
+    .Append(endianness(), addr_size_, entsize);
+
+  sections_.push_back(ElfSection(section, type, addr, offset, offset_label,
+                                 size));
+  return index;
+}
+
+void ELF::AppendSection(ElfSection& section) {
+  // NULL and NOBITS sections have no content, so they
+  // don't need to be written to the file.
+  if (section.type_ == SHT_NULL) {
+    section.offset_label_ = 0;
+  } else if (section.type_ == SHT_NOBITS) {
+    section.offset_label_ = section.offset_;
+  } else {
+    Mark(&section.offset_label_);
+    Append(section);
+    Align(4);
+  }
+}
+
+void ELF::AddSegment(int start, int end, uint32_t type, uint32_t flags) {
+  assert(start > 0);
+  assert(size_t(start) < sections_.size());
+  assert(end > 0);
+  assert(size_t(end) < sections_.size());
+  ++program_count_;
+
+  // p_type
+  program_header_table_.D32(type);
+
+  if (addr_size_ == 8) {
+    // p_flags
+    program_header_table_.D32(flags);
+  }
+
+  size_t filesz = 0;
+  size_t memsz = 0;
+  bool prev_was_nobits = false;
+  for (int i = start; i <= end; ++i) {
+    size_t size = sections_[i].size_;
+    if (sections_[i].type_ != SHT_NOBITS) {
+      assert(!prev_was_nobits);
+      // non SHT_NOBITS sections are 4-byte aligned (see AddSection)
+      size = (size + 3) & ~3;
+      filesz += size;
+    } else {
+      prev_was_nobits = true;
+    }
+    memsz += size;
+  }
+
+  program_header_table_
+    // p_offset
+    .Append(endianness(), addr_size_, sections_[start].offset_label_)
+    // p_vaddr
+    .Append(endianness(), addr_size_, sections_[start].addr_)
+    // p_paddr
+    .Append(endianness(), addr_size_, sections_[start].addr_)
+    // p_filesz
+    .Append(endianness(), addr_size_, filesz)
+    // p_memsz
+    .Append(endianness(), addr_size_, memsz);
+
+  if (addr_size_ == 4) {
+    // p_flags
+    program_header_table_.D32(flags);
+  }
+
+  // p_align
+  program_header_table_.Append(endianness(), addr_size_, 0);
+}
+
+void ELF::Finish() {
+  // Add the section header string table at the end.
+  section_header_string_index_ = section_count_;
+  //printf(".shstrtab size: %ld\n", section_header_strings_.Size());
+  AddSection(".shstrtab", section_header_strings_, SHT_STRTAB);
+  //printf("section_count_: %ld, sections_.size(): %ld\n",
+  //     section_count_, sections_.size());
+  if (program_count_) {
+    Mark(&program_header_label_);
+    Append(program_header_table_);
+  } else {
+    program_header_label_ = 0;
+  }
+
+  for (vector<ElfSection>::iterator it = sections_.begin();
+       it < sections_.end(); ++it) {
+    AppendSection(*it);
+  }
+  section_count_label_ = section_count_;
+  program_count_label_ = program_count_;
+
+  // Section header table starts here.
+  Mark(&section_header_label_);
+  Append(section_header_table_);
+}
+
+SymbolTable::SymbolTable(Endianness endianness,
+                         size_t addr_size,
+                         StringTable& table) : Section(endianness),
+                                               table_(table) {
+#ifndef NDEBUG
+  addr_size_ = addr_size;
+#endif
+  assert(addr_size_ == 4 || addr_size_ == 8);
+}
+
+void SymbolTable::AddSymbol(const string& name, uint32_t value,
+                            uint32_t size, unsigned info, uint16_t shndx) {
+  assert(addr_size_ == 4);
+  D32(table_.Add(name));
+  D32(value);
+  D32(size);
+  D8(info);
+  D8(0); // other
+  D16(shndx);
+}
+
+void SymbolTable::AddSymbol(const string& name, uint64_t value,
+                            uint64_t size, unsigned info, uint16_t shndx) {
+  assert(addr_size_ == 8);
+  D32(table_.Add(name));
+  D8(info);
+  D8(0); // other
+  D16(shndx);
+  D64(value);
+  D64(size);
+}
+
+void Notes::AddNote(int type, const string& name, const uint8_t* desc_bytes,
+                    size_t desc_size) {
+  // Elf32_Nhdr and Elf64_Nhdr are exactly the same.
+  Elf32_Nhdr note_header;
+  memset(&note_header, 0, sizeof(note_header));
+  note_header.n_namesz = name.length() + 1;
+  note_header.n_descsz = desc_size;
+  note_header.n_type = type;
+
+  Append(reinterpret_cast<const uint8_t*>(&note_header),
+         sizeof(note_header));
+  AppendCString(name);
+  Align(4);
+  Append(desc_bytes, desc_size);
+  Align(4);
+}
+
+}  // namespace synth_elf
+}  // namespace google_breakpad
diff --git a/src/common/linux/synth_elf.h b/src/common/linux/synth_elf.h
new file mode 100644
index 0000000..90fa28c
--- /dev/null
+++ b/src/common/linux/synth_elf.h
@@ -0,0 +1,197 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+// synth_elf.h: Interface to synth_elf::ELF: fake ELF generator.
+
+#ifndef COMMON_LINUX_SYNTH_ELF_H_
+#define COMMON_LINUX_SYNTH_ELF_H_
+
+#include "common/test_assembler.h"
+
+#include <list>
+#include <vector>
+#include <map>
+#include <string>
+#include <utility>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+namespace synth_elf {
+
+using std::list;
+using std::vector;
+using std::map;
+using std::pair;
+using test_assembler::Endianness;
+using test_assembler::kLittleEndian;
+using test_assembler::kUnsetEndian;
+using test_assembler::Label;
+using test_assembler::Section;
+
+// String tables are common in ELF headers, so subclass Section
+// to make them easy to generate.
+class StringTable : public Section {
+public:
+  StringTable(Endianness endianness = kUnsetEndian)
+  : Section(endianness) {
+    start() = 0;
+    empty_string = Add("");
+  }
+
+  // Add the string s to the string table, and return
+  // a label containing the offset into the string table
+  // at which it was added.
+  Label Add(const string& s) {
+    if (strings_.find(s) != strings_.end())
+      return strings_[s];
+
+    Label string_label(Here());
+    AppendCString(s);
+    strings_[s] = string_label;
+    return string_label;
+  }
+
+  // All StringTables contain an empty string as their first
+  // entry.
+  Label empty_string;
+
+  // Avoid inserting duplicate strings.
+  map<string,Label> strings_;
+};
+
+// A Section representing an entire ELF file.
+class ELF : public Section {
+ public:
+  ELF(uint16_t machine,    // EM_386, etc
+      uint8_t file_class,  // ELFCLASS{32,64}
+      Endianness endianness = kLittleEndian);
+
+  // Add the Section section to the section header table and append it
+  // to the file. Returns the index of the section in the section
+  // header table.
+  int AddSection(const string& name, const Section& section,
+                 uint32_t type, uint32_t flags = 0, uint64_t addr = 0,
+                 uint32_t link = 0, uint64_t entsize = 0, uint64_t offset = 0);
+                  
+  // Add a segment containing from section index start to section index end.
+  // The indexes must have been gotten from AddSection.
+  void AddSegment(int start, int end, uint32_t type, uint32_t flags = 0);
+
+  // Write out all data. GetContents may be used after this.
+  void Finish();
+
+ private:
+  // Size of an address, in bytes.
+  const size_t addr_size_;
+
+  // Offset to the program header table.
+  Label program_header_label_;
+  // Number of entries in the program header table.
+  int program_count_;
+  Label program_count_label_;
+  // The program header table itself.
+  Section program_header_table_;
+
+  // Offset to the section header table.
+  Label section_header_label_;
+  // Number of entries in the section header table.
+  int section_count_;
+  Label section_count_label_;
+  // The section header table itself.
+  Section section_header_table_;
+
+  // Index of the section header string table in the section
+  // header table.
+  Label section_header_string_index_;
+  // Section containing the names of section header table entries.
+  StringTable section_header_strings_;
+
+  // Record of an added section
+  struct ElfSection : public Section {
+    ElfSection(const Section& section, uint32_t type, uint32_t addr,
+               uint32_t offset, Label offset_label, uint32_t size)
+    : Section(section), type_(type), addr_(addr), offset_(offset)
+    , offset_label_(offset_label), size_(size) {
+    }
+
+    uint32_t type_;
+    uint32_t addr_;
+    uint32_t offset_;
+    Label offset_label_;
+    uint32_t size_;
+  };
+
+  vector<ElfSection> sections_;
+
+  void AppendSection(ElfSection& section);
+};
+
+// A class to build .symtab or .dynsym sections.
+class SymbolTable : public Section {
+ public:
+  // table is the StringTable that contains symbol names. The caller
+  // must ensure that it remains alive for the life of the
+  // SymbolTable.
+  SymbolTable(Endianness endianness, size_t addr_size, StringTable& table);
+
+  // Add an Elf32_Sym.
+  void AddSymbol(const string& name, uint32_t value,
+                 uint32_t size, unsigned info, uint16_t shndx);
+  // Add an Elf64_Sym.
+  void AddSymbol(const string& name, uint64_t value,
+                 uint64_t size, unsigned info, uint16_t shndx);
+
+ private:
+#ifndef NDEBUG
+  size_t addr_size_;
+#endif
+  StringTable& table_;
+};
+
+// A class for note sections
+class Notes : public Section {
+public:
+  Notes(Endianness endianness)
+  : Section(endianness) {
+  }
+
+  // Add a note.
+  void AddNote(int type, const string& name, const uint8_t* desc_bytes,
+               size_t desc_size);
+};
+
+}  // namespace synth_elf
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_SYNTH_ELF_H_
diff --git a/src/common/linux/synth_elf_unittest.cc b/src/common/linux/synth_elf_unittest.cc
new file mode 100644
index 0000000..fb3601e
--- /dev/null
+++ b/src/common/linux/synth_elf_unittest.cc
@@ -0,0 +1,413 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
+
+// synth_elf_unittest.cc:
+// Unittests for google_breakpad::synth_elf::ELF
+
+#include <elf.h>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/elfutils.h"
+#include "common/linux/synth_elf.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::ElfClass32;
+using google_breakpad::ElfClass64;
+using google_breakpad::synth_elf::ELF;
+using google_breakpad::synth_elf::Notes;
+using google_breakpad::synth_elf::Section;
+using google_breakpad::synth_elf::StringTable;
+using google_breakpad::synth_elf::SymbolTable;
+using google_breakpad::test_assembler::Endianness;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using ::testing::Test;
+using ::testing::Types;
+
+class StringTableTest : public Test {
+public:
+  StringTableTest() : table(kLittleEndian) {}
+
+  StringTable table;
+};
+
+TEST_F(StringTableTest, Empty) {
+  EXPECT_EQ(1U, table.Size());
+  string contents;
+  ASSERT_TRUE(table.GetContents(&contents));
+  const char* kExpectedContents = "\0";
+  EXPECT_EQ(0, memcmp(kExpectedContents,
+                      contents.c_str(),
+                      contents.size()));
+  ASSERT_TRUE(table.empty_string.IsKnownConstant());
+  EXPECT_EQ(0U, table.empty_string.Value());
+}
+
+TEST_F(StringTableTest, Basic) {
+  const string s1("table fills with strings");
+  const string s2("offsets preserved as labels");
+  const string s3("verified with tests");
+  const char* kExpectedContents = 
+    "\0table fills with strings\0"
+    "offsets preserved as labels\0"
+    "verified with tests\0";
+  Label l1(table.Add(s1));
+  Label l2(table.Add(s2));
+  Label l3(table.Add(s3));
+  string contents;
+  ASSERT_TRUE(table.GetContents(&contents));
+  EXPECT_EQ(0, memcmp(kExpectedContents,
+                      contents.c_str(),
+                      contents.size()));
+  // empty_string is at zero, other strings start at 1.
+  ASSERT_TRUE(l1.IsKnownConstant());
+  EXPECT_EQ(1U, l1.Value());
+  // Each string has an extra byte for a trailing null.
+  EXPECT_EQ(1 + s1.length() + 1, l2.Value());
+  EXPECT_EQ(1 + s1.length() + 1 + s2.length() + 1, l3.Value());
+}
+
+TEST_F(StringTableTest, Duplicates) {
+  const string s1("string 1");
+  const string s2("string 2");
+  const string s3("");
+  const char* kExpectedContents = "\0string 1\0string 2\0";
+  Label l1(table.Add(s1));
+  Label l2(table.Add(s2));
+  // Adding strings twice should return the same Label.
+  Label l3(table.Add(s3));
+  Label l4(table.Add(s2));
+  string contents;
+  ASSERT_TRUE(table.GetContents(&contents));
+  EXPECT_EQ(0, memcmp(kExpectedContents,
+                      contents.c_str(),
+                      contents.size()));
+  EXPECT_EQ(0U, table.empty_string.Value());
+  EXPECT_EQ(table.empty_string.Value(), l3.Value());
+  EXPECT_EQ(l2.Value(), l4.Value());
+}
+
+class SymbolTableTest : public Test {};
+
+TEST_F(SymbolTableTest, Simple32) {
+  StringTable table(kLittleEndian);
+  SymbolTable syms(kLittleEndian, 4, table);
+
+  const string kFuncName1 = "superfunc";
+  const uint32_t kFuncAddr1 = 0x10001000;
+  const uint32_t kFuncSize1 = 0x10;
+  const string kFuncName2 = "awesomefunc";
+  const uint32_t kFuncAddr2 = 0x20002000;
+  const uint32_t kFuncSize2 = 0x2f;
+  const string kFuncName3 = "megafunc";
+  const uint32_t kFuncAddr3 = 0x30003000;
+  const uint32_t kFuncSize3 = 0x3c;
+
+  syms.AddSymbol(kFuncName1, kFuncAddr1, kFuncSize1,
+                 ELF32_ST_INFO(STB_GLOBAL, STT_FUNC),
+                 SHN_UNDEF + 1);
+  syms.AddSymbol(kFuncName2, kFuncAddr2, kFuncSize2,
+                 ELF32_ST_INFO(STB_LOCAL, STT_FUNC),
+                 SHN_UNDEF + 2);
+  syms.AddSymbol(kFuncName3, kFuncAddr3, kFuncSize3,
+                 ELF32_ST_INFO(STB_LOCAL, STT_FUNC),
+                 SHN_UNDEF + 3);
+
+  const char kExpectedStringTable[] = "\0superfunc\0awesomefunc\0megafunc";
+  const size_t kExpectedStringTableSize = sizeof(kExpectedStringTable);
+  EXPECT_EQ(kExpectedStringTableSize, table.Size());
+  string table_contents;
+  table.GetContents(&table_contents);
+  EXPECT_EQ(0, memcmp(kExpectedStringTable,
+                      table_contents.c_str(),
+                      table_contents.size()));
+
+  const uint8_t kExpectedSymbolContents[] = {
+    // Symbol 1
+    0x01, 0x00, 0x00, 0x00, // name
+    0x00, 0x10, 0x00, 0x10, // value
+    0x10, 0x00, 0x00, 0x00, // size
+    ELF32_ST_INFO(STB_GLOBAL, STT_FUNC), // info
+    0x00, // other
+    0x01, 0x00, // shndx
+    // Symbol 2
+    0x0B, 0x00, 0x00, 0x00, // name
+    0x00, 0x20, 0x00, 0x20, // value
+    0x2f, 0x00, 0x00, 0x00, // size
+    ELF32_ST_INFO(STB_LOCAL, STT_FUNC), // info
+    0x00, // other
+    0x02, 0x00, // shndx
+    // Symbol 3
+    0x17, 0x00, 0x00, 0x00, // name
+    0x00, 0x30, 0x00, 0x30, // value
+    0x3c, 0x00, 0x00, 0x00, // size
+    ELF32_ST_INFO(STB_LOCAL, STT_FUNC), // info
+    0x00, // other
+    0x03, 0x00, // shndx
+  };
+  const size_t kExpectedSymbolSize = sizeof(kExpectedSymbolContents);
+  EXPECT_EQ(kExpectedSymbolSize, syms.Size());
+
+  string symbol_contents;
+  syms.GetContents(&symbol_contents);
+  EXPECT_EQ(0, memcmp(kExpectedSymbolContents,
+                      symbol_contents.c_str(),
+                      symbol_contents.size()));
+}
+
+template<typename ElfClass>
+class BasicElf : public Test {};
+
+// Doesn't seem worthwhile writing the tests to be endian-independent
+// when they're unlikely to ever be run on big-endian systems.
+#if defined(__i386__) || defined(__x86_64__)
+
+typedef Types<ElfClass32, ElfClass64> ElfClasses;
+
+TYPED_TEST_SUITE(BasicElf, ElfClasses);
+
+TYPED_TEST(BasicElf, EmptyLE) {
+  typedef typename TypeParam::Ehdr Ehdr;
+  typedef typename TypeParam::Phdr Phdr;
+  typedef typename TypeParam::Shdr Shdr;
+  const size_t kStringTableSize = sizeof("\0.shstrtab");
+  const size_t kStringTableAlign = 4 - kStringTableSize % 4;
+  const size_t kExpectedSize = sizeof(Ehdr) +
+    // Two sections, SHT_NULL + the section header string table.
+    2 * sizeof(Shdr) +
+    kStringTableSize + kStringTableAlign;
+
+  // It doesn't really matter that the machine type is right for the class.
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  elf.Finish();
+  EXPECT_EQ(kExpectedSize, elf.Size());
+
+  string contents;
+  ASSERT_TRUE(elf.GetContents(&contents));
+  ASSERT_EQ(kExpectedSize, contents.size());
+  const Ehdr* header =
+    reinterpret_cast<const Ehdr*>(contents.data());
+  const uint8_t kIdent[] = {
+    ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3,
+    TypeParam::kClass, ELFDATA2LSB, EV_CURRENT, ELFOSABI_SYSV,
+    0, 0, 0, 0, 0, 0, 0, 0
+  };
+  EXPECT_EQ(0, memcmp(kIdent, header->e_ident, sizeof(kIdent)));
+  EXPECT_EQ(ET_EXEC, header->e_type);
+  EXPECT_EQ(EM_386, header->e_machine);
+  EXPECT_EQ(static_cast<unsigned int>(EV_CURRENT), header->e_version);
+  EXPECT_EQ(0U, header->e_entry);
+  EXPECT_EQ(0U, header->e_phoff);
+  EXPECT_EQ(sizeof(Ehdr) + kStringTableSize + kStringTableAlign,
+            header->e_shoff);
+  EXPECT_EQ(0U, header->e_flags);
+  EXPECT_EQ(sizeof(Ehdr), header->e_ehsize);
+  EXPECT_EQ(sizeof(Phdr), header->e_phentsize);
+  EXPECT_EQ(0, header->e_phnum);
+  EXPECT_EQ(sizeof(Shdr), header->e_shentsize);
+  EXPECT_EQ(2, header->e_shnum);
+  EXPECT_EQ(1, header->e_shstrndx);
+
+  const Shdr* shdr =
+    reinterpret_cast<const Shdr*>(contents.data() + header->e_shoff);
+  EXPECT_EQ(0U, shdr[0].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_NULL), shdr[0].sh_type);
+  EXPECT_EQ(0U, shdr[0].sh_flags);
+  EXPECT_EQ(0U, shdr[0].sh_addr);
+  EXPECT_EQ(0U, shdr[0].sh_offset);
+  EXPECT_EQ(0U, shdr[0].sh_size);
+  EXPECT_EQ(0U, shdr[0].sh_link);
+  EXPECT_EQ(0U, shdr[0].sh_info);
+  EXPECT_EQ(0U, shdr[0].sh_addralign);
+  EXPECT_EQ(0U, shdr[0].sh_entsize);
+
+  EXPECT_EQ(1U, shdr[1].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_STRTAB), shdr[1].sh_type);
+  EXPECT_EQ(0U, shdr[1].sh_flags);
+  EXPECT_EQ(0U, shdr[1].sh_addr);
+  EXPECT_EQ(sizeof(Ehdr), shdr[1].sh_offset);
+  EXPECT_EQ(kStringTableSize, shdr[1].sh_size);
+  EXPECT_EQ(0U, shdr[1].sh_link);
+  EXPECT_EQ(0U, shdr[1].sh_info);
+  EXPECT_EQ(0U, shdr[1].sh_addralign);
+  EXPECT_EQ(0U, shdr[1].sh_entsize);
+}
+
+TYPED_TEST(BasicElf, BasicLE) {
+  typedef typename TypeParam::Ehdr Ehdr;
+  typedef typename TypeParam::Phdr Phdr;
+  typedef typename TypeParam::Shdr Shdr;
+  const size_t kStringTableSize = sizeof("\0.text\0.bss\0.shstrtab");
+  const size_t kStringTableAlign = 4 - kStringTableSize % 4;
+  const size_t kExpectedSize = sizeof(Ehdr) +
+    // Four sections, SHT_NULL + the section header string table +
+    // 4096 bytes of the size-aligned .text section + one program header.
+    sizeof(Phdr) + 4 * sizeof(Shdr) + 4096 +
+    kStringTableSize + kStringTableAlign;
+
+  // It doesn't really matter that the machine type is right for the class.
+  ELF elf(EM_386, TypeParam::kClass, kLittleEndian);
+  Section text(kLittleEndian);
+  text.Append(4094, 0);
+  int text_idx = elf.AddSection(".text", text, SHT_PROGBITS);
+  Section bss(kLittleEndian);
+  bss.Append(16, 0);
+  int bss_idx = elf.AddSection(".bss", bss, SHT_NOBITS);
+  elf.AddSegment(text_idx, bss_idx, PT_LOAD);
+  elf.Finish();
+  EXPECT_EQ(kExpectedSize, elf.Size());
+
+  string contents;
+  ASSERT_TRUE(elf.GetContents(&contents));
+  ASSERT_EQ(kExpectedSize, contents.size());
+  const Ehdr* header =
+    reinterpret_cast<const Ehdr*>(contents.data());
+  const uint8_t kIdent[] = {
+    ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3,
+    TypeParam::kClass, ELFDATA2LSB, EV_CURRENT, ELFOSABI_SYSV,
+    0, 0, 0, 0, 0, 0, 0, 0
+  };
+  EXPECT_EQ(0, memcmp(kIdent, header->e_ident, sizeof(kIdent)));
+  EXPECT_EQ(ET_EXEC, header->e_type);
+  EXPECT_EQ(EM_386, header->e_machine);
+  EXPECT_EQ(static_cast<unsigned int>(EV_CURRENT), header->e_version);
+  EXPECT_EQ(0U, header->e_entry);
+  EXPECT_EQ(sizeof(Ehdr), header->e_phoff);
+  EXPECT_EQ(sizeof(Ehdr) + sizeof(Phdr) + 4096 + kStringTableSize +
+            kStringTableAlign, header->e_shoff);
+  EXPECT_EQ(0U, header->e_flags);
+  EXPECT_EQ(sizeof(Ehdr), header->e_ehsize);
+  EXPECT_EQ(sizeof(Phdr), header->e_phentsize);
+  EXPECT_EQ(1, header->e_phnum);
+  EXPECT_EQ(sizeof(Shdr), header->e_shentsize);
+  EXPECT_EQ(4, header->e_shnum);
+  EXPECT_EQ(3, header->e_shstrndx);
+
+  const Shdr* shdr =
+    reinterpret_cast<const Shdr*>(contents.data() + header->e_shoff);
+  EXPECT_EQ(0U, shdr[0].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_NULL), shdr[0].sh_type);
+  EXPECT_EQ(0U, shdr[0].sh_flags);
+  EXPECT_EQ(0U, shdr[0].sh_addr);
+  EXPECT_EQ(0U, shdr[0].sh_offset);
+  EXPECT_EQ(0U, shdr[0].sh_size);
+  EXPECT_EQ(0U, shdr[0].sh_link);
+  EXPECT_EQ(0U, shdr[0].sh_info);
+  EXPECT_EQ(0U, shdr[0].sh_addralign);
+  EXPECT_EQ(0U, shdr[0].sh_entsize);
+
+  EXPECT_EQ(1U, shdr[1].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_PROGBITS), shdr[1].sh_type);
+  EXPECT_EQ(0U, shdr[1].sh_flags);
+  EXPECT_EQ(0U, shdr[1].sh_addr);
+  EXPECT_EQ(sizeof(Ehdr) + sizeof(Phdr), shdr[1].sh_offset);
+  EXPECT_EQ(4094U, shdr[1].sh_size);
+  EXPECT_EQ(0U, shdr[1].sh_link);
+  EXPECT_EQ(0U, shdr[1].sh_info);
+  EXPECT_EQ(0U, shdr[1].sh_addralign);
+  EXPECT_EQ(0U, shdr[1].sh_entsize);
+
+  EXPECT_EQ(sizeof("\0.text"), shdr[2].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_NOBITS), shdr[2].sh_type);
+  EXPECT_EQ(0U, shdr[2].sh_flags);
+  EXPECT_EQ(0U, shdr[2].sh_addr);
+  EXPECT_EQ(0U, shdr[2].sh_offset);
+  EXPECT_EQ(16U, shdr[2].sh_size);
+  EXPECT_EQ(0U, shdr[2].sh_link);
+  EXPECT_EQ(0U, shdr[2].sh_info);
+  EXPECT_EQ(0U, shdr[2].sh_addralign);
+  EXPECT_EQ(0U, shdr[2].sh_entsize);
+
+  EXPECT_EQ(sizeof("\0.text\0.bss"), shdr[3].sh_name);
+  EXPECT_EQ(static_cast<unsigned int>(SHT_STRTAB), shdr[3].sh_type);
+  EXPECT_EQ(0U, shdr[3].sh_flags);
+  EXPECT_EQ(0U, shdr[3].sh_addr);
+  EXPECT_EQ(sizeof(Ehdr) + sizeof(Phdr) + 4096, shdr[3].sh_offset);
+  EXPECT_EQ(kStringTableSize, shdr[3].sh_size);
+  EXPECT_EQ(0U, shdr[3].sh_link);
+  EXPECT_EQ(0U, shdr[3].sh_info);
+  EXPECT_EQ(0U, shdr[3].sh_addralign);
+  EXPECT_EQ(0U, shdr[3].sh_entsize);
+
+  const Phdr* phdr =
+    reinterpret_cast<const Phdr*>(contents.data() + header->e_phoff);
+  EXPECT_EQ(static_cast<unsigned int>(PT_LOAD), phdr->p_type);
+  EXPECT_EQ(sizeof(Ehdr) + sizeof(Phdr), phdr->p_offset);
+  EXPECT_EQ(0U, phdr->p_vaddr);
+  EXPECT_EQ(0U, phdr->p_paddr);
+  EXPECT_EQ(4096U, phdr->p_filesz);
+  EXPECT_EQ(4096U + 16U, phdr->p_memsz);
+  EXPECT_EQ(0U, phdr->p_flags);
+  EXPECT_EQ(0U, phdr->p_align);
+}
+
+class ElfNotesTest : public Test {};
+
+TEST_F(ElfNotesTest, Empty) {
+  Notes notes(kLittleEndian);
+  string contents;
+  ASSERT_TRUE(notes.GetContents(&contents));
+  EXPECT_EQ(0U, contents.size());
+}
+
+TEST_F(ElfNotesTest, Notes) {
+  Notes notes(kLittleEndian);
+  notes.AddNote(1, "Linux", reinterpret_cast<const uint8_t*>("\x42\x02\0\0"),
+                4);
+  notes.AddNote(2, "a", reinterpret_cast<const uint8_t*>("foobar"),
+                sizeof("foobar") - 1);
+
+  const uint8_t kExpectedNotesContents[] = {
+    // Note 1
+    0x06, 0x00, 0x00, 0x00, // name size, including terminating zero
+    0x04, 0x00, 0x00, 0x00, // desc size
+    0x01, 0x00, 0x00, 0x00, // type
+    'L', 'i', 'n', 'u', 'x', 0x00, 0x00, 0x00, // padded "Linux"
+    0x42, 0x02, 0x00, 0x00, // desc
+    // Note 2
+    0x02, 0x00, 0x00, 0x00, // name size
+    0x06, 0x00, 0x00, 0x00, // desc size
+    0x02, 0x00, 0x00, 0x00, // type
+    'a',  0x00, 0x00, 0x00, // padded "a"
+    'f', 'o', 'o', 'b', 'a', 'r', 0x00, 0x00, // padded "foobar"
+  };
+  const size_t kExpectedNotesSize = sizeof(kExpectedNotesContents);
+  EXPECT_EQ(kExpectedNotesSize, notes.Size());
+
+  string notes_contents;
+  ASSERT_TRUE(notes.GetContents(&notes_contents));
+  EXPECT_EQ(0, memcmp(kExpectedNotesContents,
+                      notes_contents.data(),
+                      notes_contents.size()));
+}
+
+#endif  // defined(__i386__) || defined(__x86_64__)
diff --git a/src/common/linux/tests/auto_testfile.h b/src/common/linux/tests/auto_testfile.h
new file mode 100644
index 0000000..92fe017
--- /dev/null
+++ b/src/common/linux/tests/auto_testfile.h
@@ -0,0 +1,124 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Utility class for creating a temporary file for unit tests
+// that is deleted in the destructor.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_LINUX_TESTS_AUTO_TESTFILE
+#define GOOGLE_BREAKPAD_COMMON_LINUX_TESTS_AUTO_TESTFILE
+
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/linux/eintr_wrapper.h"
+#include "common/tests/auto_tempdir.h"
+
+namespace google_breakpad {
+
+class AutoTestFile {
+ public:
+  // Create a new empty test file.
+  // test_prefix: (input) test-specific prefix, can't be NULL.
+  explicit AutoTestFile(const char* test_prefix) {
+    Init(test_prefix);
+  }
+
+  // Create a new test file, and fill it with initial data from a C string.
+  // The terminating zero is not written.
+  // test_prefix: (input) test-specific prefix, can't be NULL.
+  // text: (input) initial content.
+  AutoTestFile(const char* test_prefix, const char* text) {
+    Init(test_prefix);
+    if (fd_ >= 0)
+      WriteText(text, static_cast<size_t>(strlen(text)));
+  }
+
+  AutoTestFile(const char* test_prefix, const char* text, size_t text_len) {
+    Init(test_prefix);
+    if (fd_ >= 0)
+      WriteText(text, text_len);
+  }
+
+  // Destroy test file on scope exit.
+  ~AutoTestFile() {
+    if (fd_ >= 0) {
+      close(fd_);
+      fd_ = -1;
+    }
+  }
+
+  // Returns true iff the test file could be created properly.
+  // Useful in tests inside EXPECT_TRUE(file.IsOk());
+  bool IsOk() {
+    return fd_ >= 0;
+  }
+
+  // Returns the Posix file descriptor for the test file, or -1
+  // If IsOk() returns false. Note: on Windows, this always returns -1.
+  int GetFd() {
+    return fd_;
+  }
+
+ private:
+  void Init(const char* test_prefix) {
+    fd_ = -1;
+    char path_templ[PATH_MAX];
+    int ret = snprintf(path_templ, sizeof(path_templ),
+                       TEMPDIR "/%s-unittest.XXXXXX",
+                       test_prefix);
+    if (ret >= static_cast<int>(sizeof(path_templ)))
+      return;
+
+    fd_ = mkstemp(path_templ);
+    if (fd_ < 0)
+      return;
+
+    unlink(path_templ);
+  }
+
+  void WriteText(const char* text, size_t text_len) {
+    ssize_t r = HANDLE_EINTR(write(fd_, text, text_len));
+    if (r != static_cast<ssize_t>(text_len)) {
+      close(fd_);
+      fd_ = -1;
+      return;
+    }
+
+    lseek(fd_, 0, SEEK_SET);
+  }
+
+  int fd_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_LINUX_TESTS_AUTO_TESTFILE
diff --git a/src/common/linux/tests/crash_generator.cc b/src/common/linux/tests/crash_generator.cc
new file mode 100644
index 0000000..a70df28
--- /dev/null
+++ b/src/common/linux/tests/crash_generator.cc
@@ -0,0 +1,329 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// crash_generator.cc: Implement google_breakpad::CrashGenerator.
+// See crash_generator.h for details.
+
+#include "common/linux/tests/crash_generator.h"
+
+#include <pthread.h>
+#include <sched.h>
+#include <signal.h>
+#include <stdio.h>
+#include <sys/mman.h>
+#include <sys/resource.h>
+#include <sys/syscall.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <string>
+
+#if defined(__ANDROID__)
+#include "common/android/testing/pthread_fixes.h"
+#endif
+#include "common/linux/eintr_wrapper.h"
+#include "common/tests/auto_tempdir.h"
+#include "common/tests/file_utils.h"
+#include "common/using_std_string.h"
+
+namespace {
+
+struct ThreadData {
+  pthread_t thread;
+  pthread_barrier_t* barrier;
+  pid_t* thread_id_ptr;
+};
+
+const char* const kProcFilesToCopy[] = {
+  "auxv", "cmdline", "environ", "maps", "status"
+};
+const size_t kNumProcFilesToCopy =
+    sizeof(kProcFilesToCopy) / sizeof(kProcFilesToCopy[0]);
+
+int gettid() {
+  // Glibc does not provide a wrapper for this.
+  return syscall(__NR_gettid);
+}
+
+int tkill(pid_t tid, int sig) {
+  // Glibc does not provide a wrapper for this.
+  return syscall(__NR_tkill, tid, sig);
+}
+
+// Core file size limit set to 1 MB, which is big enough for test purposes.
+const rlim_t kCoreSizeLimit = 1024 * 1024;
+
+void* thread_function(void* data) {
+  ThreadData* thread_data = reinterpret_cast<ThreadData*>(data);
+  volatile pid_t thread_id = gettid();
+  *(thread_data->thread_id_ptr) = thread_id;
+  int result = pthread_barrier_wait(thread_data->barrier);
+  if (result != 0 && result != PTHREAD_BARRIER_SERIAL_THREAD) {
+    perror("Failed to wait for sync barrier");
+    exit(1);
+  }
+  while (true) {
+    sched_yield();
+  }
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+CrashGenerator::CrashGenerator()
+    : shared_memory_(NULL),
+      shared_memory_size_(0) {
+}
+
+CrashGenerator::~CrashGenerator() {
+  UnmapSharedMemory();
+}
+
+bool CrashGenerator::HasDefaultCorePattern() const {
+  char buffer[8];
+  ssize_t buffer_size = sizeof(buffer);
+  return ReadFile("/proc/sys/kernel/core_pattern", buffer, &buffer_size) &&
+         buffer_size == 5 && memcmp(buffer, "core", 4) == 0;
+}
+
+string CrashGenerator::GetCoreFilePath() const {
+  return temp_dir_.path() + "/core";
+}
+
+string CrashGenerator::GetDirectoryOfProcFilesCopy() const {
+  return temp_dir_.path() + "/proc";
+}
+
+pid_t CrashGenerator::GetThreadId(unsigned index) const {
+  return reinterpret_cast<pid_t*>(shared_memory_)[index];
+}
+
+pid_t* CrashGenerator::GetThreadIdPointer(unsigned index) {
+  return reinterpret_cast<pid_t*>(shared_memory_) + index;
+}
+
+bool CrashGenerator::MapSharedMemory(size_t memory_size) {
+  if (!UnmapSharedMemory())
+    return false;
+
+  void* mapped_memory = mmap(0, memory_size, PROT_READ | PROT_WRITE,
+                             MAP_SHARED | MAP_ANONYMOUS, -1, 0);
+  if (mapped_memory == MAP_FAILED) {
+    perror("CrashGenerator: Failed to map shared memory");
+    return false;
+  }
+
+  memset(mapped_memory, 0, memory_size);
+  shared_memory_ = mapped_memory;
+  shared_memory_size_ = memory_size;
+  return true;
+}
+
+bool CrashGenerator::UnmapSharedMemory() {
+  if (!shared_memory_)
+    return true;
+
+  if (munmap(shared_memory_, shared_memory_size_) == 0) {
+    shared_memory_ = NULL;
+    shared_memory_size_ = 0;
+    return true;
+  }
+
+  perror("CrashGenerator: Failed to unmap shared memory");
+  return false;
+}
+
+bool CrashGenerator::SetCoreFileSizeLimit(rlim_t limit) const {
+  struct rlimit limits = { limit, limit };
+  if (setrlimit(RLIMIT_CORE, &limits) == -1) {
+    perror("CrashGenerator: Failed to set core file size limit");
+    return false;
+  }
+  return true;
+}
+
+bool CrashGenerator::CreateChildCrash(
+    unsigned num_threads, unsigned crash_thread, int crash_signal,
+    pid_t* child_pid) {
+  if (num_threads == 0 || crash_thread >= num_threads) {
+    fprintf(stderr, "CrashGenerator: Invalid thread counts; num_threads=%u"
+                    " crash_thread=%u\n", num_threads, crash_thread);
+    return false;
+  }
+
+  if (!MapSharedMemory(num_threads * sizeof(pid_t))) {
+    perror("CrashGenerator: Unable to map shared memory");
+    return false;
+  }
+
+  pid_t pid = fork();
+  if (pid == 0) {
+    // Custom signal handlers, which may have been installed by a test launcher,
+    // are undesirable in this child.
+    if (signal(crash_signal, SIG_DFL) == SIG_ERR) {
+      perror("CrashGenerator: signal");
+      exit(1);
+    }
+    if (chdir(temp_dir_.path().c_str()) == -1) {
+      perror("CrashGenerator: Failed to change directory");
+      exit(1);
+    }
+    if (SetCoreFileSizeLimit(kCoreSizeLimit)) {
+      CreateThreadsInChildProcess(num_threads);
+      string proc_dir = GetDirectoryOfProcFilesCopy();
+      if (mkdir(proc_dir.c_str(), 0755) == -1) {
+        perror("CrashGenerator: Failed to create proc directory");
+        exit(1);
+      }
+      if (!CopyProcFiles(getpid(), proc_dir.c_str())) {
+        fprintf(stderr, "CrashGenerator: Failed to copy proc files\n");
+        exit(1);
+      }
+      // On Android the signal sometimes doesn't seem to get sent even though
+      // tkill returns '0'.  Retry a couple of times if the signal doesn't get
+      // through on the first go:
+      // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=579
+#if defined(__ANDROID__)
+      const int kRetries = 60;
+      const unsigned int kSleepTimeInSeconds = 1;
+#else
+      const int kRetries = 1;
+      const unsigned int kSleepTimeInSeconds = 600;
+#endif
+      for (int i = 0; i < kRetries; i++) {
+        if (tkill(*GetThreadIdPointer(crash_thread), crash_signal) == -1) {
+          perror("CrashGenerator: Failed to kill thread by signal");
+        } else {
+          // At this point, we've queued the signal for delivery, but there's no
+          // guarantee when it'll be delivered.  We don't want the main thread to
+          // race and exit before the thread we signaled is processed.  So sleep
+          // long enough that we won't flake even under fairly high load.
+          // TODO: See if we can't be a bit more deterministic.  There doesn't
+          // seem to be an API to check on signal delivery status, so we can't
+          // really poll and wait for the kernel to declare the signal has been
+          // delivered.  If it has, and things worked, we'd be killed, so the
+          // sleep length doesn't really matter.
+          sleep(kSleepTimeInSeconds);
+        }
+      }
+    } else {
+      perror("CrashGenerator: Failed to set core limit");
+    }
+    exit(1);
+  } else if (pid == -1) {
+    perror("CrashGenerator: Failed to create child process");
+    return false;
+  }
+
+  int status;
+  if (HANDLE_EINTR(waitpid(pid, &status, 0)) == -1) {
+    perror("CrashGenerator: Failed to wait for child process");
+    return false;
+  }
+  if (!WIFSIGNALED(status) || WTERMSIG(status) != crash_signal) {
+    fprintf(stderr, "CrashGenerator: Child process not killed by the expected signal\n"
+                    "  exit status=0x%x pid=%u signaled=%s sig=%d expected=%d\n",
+                    status, pid, WIFSIGNALED(status) ? "true" : "false",
+                    WTERMSIG(status), crash_signal);
+    return false;
+  }
+
+  if (child_pid)
+    *child_pid = pid;
+  return true;
+}
+
+bool CrashGenerator::CopyProcFiles(pid_t pid, const char* path) const {
+  char from_path[PATH_MAX], to_path[PATH_MAX];
+  for (size_t i = 0; i < kNumProcFilesToCopy; ++i) {
+    int num_chars = snprintf(from_path, PATH_MAX, "/proc/%d/%s",
+                             pid, kProcFilesToCopy[i]);
+    if (num_chars < 0 || num_chars >= PATH_MAX)
+      return false;
+
+    num_chars = snprintf(to_path, PATH_MAX, "%s/%s",
+                         path, kProcFilesToCopy[i]);
+    if (num_chars < 0 || num_chars >= PATH_MAX)
+      return false;
+
+    if (!CopyFile(from_path, to_path))
+      return false;
+  }
+  return true;
+}
+
+void CrashGenerator::CreateThreadsInChildProcess(unsigned num_threads) {
+  *GetThreadIdPointer(0) = getpid();
+
+  if (num_threads <= 1)
+    return;
+
+  // This method does not clean up any pthread resource, as the process
+  // is expected to be killed anyway.
+  ThreadData* thread_data = new ThreadData[num_threads];
+
+  // Create detached threads so that we do not worry about pthread_join()
+  // later being called or not.
+  pthread_attr_t thread_attributes;
+  if (pthread_attr_init(&thread_attributes) != 0 ||
+      pthread_attr_setdetachstate(&thread_attributes,
+                                  PTHREAD_CREATE_DETACHED) != 0) {
+    fprintf(stderr, "CrashGenerator: Failed to initialize thread attribute\n");
+    exit(1);
+  }
+
+  pthread_barrier_t thread_barrier;
+  if (pthread_barrier_init(&thread_barrier, NULL, num_threads) != 0) {
+    fprintf(stderr, "CrashGenerator: Failed to initialize thread barrier\n");
+    exit(1);
+  }
+
+  for (unsigned i = 1; i < num_threads; ++i) {
+    thread_data[i].barrier = &thread_barrier;
+    thread_data[i].thread_id_ptr = GetThreadIdPointer(i);
+    if (pthread_create(&thread_data[i].thread, &thread_attributes,
+                       thread_function, &thread_data[i]) != 0) {
+      fprintf(stderr, "CrashGenerator: Failed to create thread %d\n", i);
+      exit(1);
+    }
+  }
+
+  int result = pthread_barrier_wait(&thread_barrier);
+  if (result != 0 && result != PTHREAD_BARRIER_SERIAL_THREAD) {
+    fprintf(stderr, "CrashGenerator: Failed to wait for thread barrier\n");
+    exit(1);
+  }
+
+  pthread_barrier_destroy(&thread_barrier);
+  pthread_attr_destroy(&thread_attributes);
+  delete[] thread_data;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/linux/tests/crash_generator.h b/src/common/linux/tests/crash_generator.h
new file mode 100644
index 0000000..7e2fcbf
--- /dev/null
+++ b/src/common/linux/tests/crash_generator.h
@@ -0,0 +1,117 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// crash_generator.h: Define the google_breakpad::CrashGenerator class,
+// which is used to generate a crash (and a core dump file) for testing.
+
+#ifndef COMMON_LINUX_TESTS_CRASH_GENERATOR_H_
+#define COMMON_LINUX_TESTS_CRASH_GENERATOR_H_
+
+#include <sys/resource.h>
+
+#include <string>
+
+#include "common/tests/auto_tempdir.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// A utility class for generating a crash (and a core dump file) for
+// testing. It creates a child process with the specified number of
+// threads, which is then termainated by the specified signal. A core
+// dump file is expected to be created upon the termination of the child
+// process, which can then be used for testing code that processes core
+// dump files.
+class CrashGenerator {
+ public:
+  CrashGenerator();
+
+  ~CrashGenerator();
+
+  // Returns true if a core dump file named 'core' will be generated in
+  // the current directory for a test that produces a crash by checking
+  // if /proc/sys/kernel/core_pattern has the default value 'core'.
+  bool HasDefaultCorePattern() const;
+
+  // Returns the expected path of the core dump file.
+  string GetCoreFilePath() const;
+
+  // Returns the directory of a copy of proc files of the child process.
+  string GetDirectoryOfProcFilesCopy() const;
+
+  // Creates a crash (and a core dump file) by creating a child process with
+  // |num_threads| threads, and the terminating the child process by sending
+  // a signal with number |crash_signal| to the |crash_thread|-th thread.
+  // Returns true on success.
+  bool CreateChildCrash(unsigned num_threads, unsigned crash_thread,
+                        int crash_signal, pid_t* child_pid);
+
+  // Returns the thread ID of the |index|-th thread in the child process.
+  // This method does not validate |index|.
+  pid_t GetThreadId(unsigned index) const;
+
+ private:
+  // Copies the following proc files of the process with |pid| to the directory
+  // at |path|: auxv, cmdline, environ, maps, status
+  // The directory must have been created. Returns true on success.
+  bool CopyProcFiles(pid_t pid, const char* path) const;
+
+  // Creates |num_threads| threads in the child process.
+  void CreateThreadsInChildProcess(unsigned num_threads);
+
+  // Sets the maximum size of core dump file (both the soft and hard limit)
+  // to |limit| bytes. Returns true on success.
+  bool SetCoreFileSizeLimit(rlim_t limit) const;
+
+  // Creates a shared memory of |memory_size| bytes for communicating thread
+  // IDs between the parent and child process. Returns true on success.
+  bool MapSharedMemory(size_t memory_size);
+
+  // Releases any shared memory created by MapSharedMemory(). Returns true on
+  // success.
+  bool UnmapSharedMemory();
+
+  // Returns the pointer to the thread ID of the |index|-th thread in the child
+  // process. This method does not validate |index|.
+  pid_t* GetThreadIdPointer(unsigned index);
+
+  // Temporary directory in which a core file is generated.
+  AutoTempDir temp_dir_;
+
+  // Shared memory for communicating thread IDs between the parent and
+  // child process.
+  void* shared_memory_;
+
+  // Number of bytes mapped for |shared_memory_|.
+  size_t shared_memory_size_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_TESTS_CRASH_GENERATOR_H_
diff --git a/src/common/linux/ucontext_constants.h b/src/common/linux/ucontext_constants.h
new file mode 100644
index 0000000..c390508
--- /dev/null
+++ b/src/common/linux/ucontext_constants.h
@@ -0,0 +1,153 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This header can be included either from a C, C++ or Assembly file.
+// Its purpose is to contain constants that must match the offsets of
+// various fields in ucontext_t.
+//
+// They should match the definitions from signal.h.
+//
+// Used by src/common/linux/breakpad_getcontext.S
+// Tested by src/common/linux/breakpad_getcontext_unittest.cc
+//
+// This header should not be used by anything else.
+
+#ifndef GOOGLEBREAKPAD_COMMON_LINUX_UCONTEXT_CONSTANTS_H
+#define GOOGLEBREAKPAD_COMMON_LINUX_UCONTEXT_CONSTANTS_H
+
+#if defined(__arm__)
+
+#define  MCONTEXT_GREGS_OFFSET     32
+#define  UCONTEXT_SIGMASK_OFFSET   104
+
+#elif defined(__aarch64__)
+
+#define  UCONTEXT_SIGMASK_OFFSET     40
+
+#define  MCONTEXT_GREGS_OFFSET       184
+#define  MCONTEXT_SP_OFFSET          432
+#define  MCONTEXT_PC_OFFSET          440
+#define  MCONTEXT_PSTATE_OFFSET      448
+#define  MCONTEXT_EXTENSION_OFFSET   464
+
+#define  FPSIMD_MAGIC                0x46508001
+
+#define  FPSIMD_CONTEXT_MAGIC_OFFSET 0
+#define  FPSIMD_CONTEXT_SIZE_OFFSET  4
+#define  FPSIMD_CONTEXT_FPSR_OFFSET  8
+#define  FPSIMD_CONTEXT_FPCR_OFFSET  12
+#define  FPSIMD_CONTEXT_VREGS_OFFSET 16
+#define  FPSIMD_CONTEXT_SIZE         528
+
+#define  REGISTER_SIZE               8
+#define  SIMD_REGISTER_SIZE          16
+
+#elif defined(__i386__)
+
+#define  MCONTEXT_GREGS_OFFSET     20
+#define  MCONTEXT_GS_OFFSET        (MCONTEXT_GREGS_OFFSET + 0*4)
+#define  MCONTEXT_FS_OFFSET        (MCONTEXT_GREGS_OFFSET + 1*4)
+#define  MCONTEXT_ES_OFFSET        (MCONTEXT_GREGS_OFFSET + 2*4)
+#define  MCONTEXT_DS_OFFSET        (MCONTEXT_GREGS_OFFSET + 3*4)
+#define  MCONTEXT_EDI_OFFSET       (MCONTEXT_GREGS_OFFSET + 4*4)
+#define  MCONTEXT_ESI_OFFSET       (MCONTEXT_GREGS_OFFSET + 5*4)
+#define  MCONTEXT_EBP_OFFSET       (MCONTEXT_GREGS_OFFSET + 6*4)
+#define  MCONTEXT_ESP_OFFSET       (MCONTEXT_GREGS_OFFSET + 7*4)
+#define  MCONTEXT_EBX_OFFSET       (MCONTEXT_GREGS_OFFSET + 8*4)
+#define  MCONTEXT_EDX_OFFSET       (MCONTEXT_GREGS_OFFSET + 9*4)
+#define  MCONTEXT_ECX_OFFSET       (MCONTEXT_GREGS_OFFSET + 10*4)
+#define  MCONTEXT_EAX_OFFSET       (MCONTEXT_GREGS_OFFSET + 11*4)
+#define  MCONTEXT_TRAPNO_OFFSET    (MCONTEXT_GREGS_OFFSET + 12*4)
+#define  MCONTEXT_ERR_OFFSET       (MCONTEXT_GREGS_OFFSET + 13*4)
+#define  MCONTEXT_EIP_OFFSET       (MCONTEXT_GREGS_OFFSET + 14*4)
+#define  MCONTEXT_CS_OFFSET        (MCONTEXT_GREGS_OFFSET + 15*4)
+#define  MCONTEXT_EFL_OFFSET       (MCONTEXT_GREGS_OFFSET + 16*4)
+#define  MCONTEXT_UESP_OFFSET      (MCONTEXT_GREGS_OFFSET + 17*4)
+#define  MCONTEXT_SS_OFFSET        (MCONTEXT_GREGS_OFFSET + 18*4)
+
+#define  UCONTEXT_SIGMASK_OFFSET   108
+
+#define  UCONTEXT_FPREGS_OFFSET       96
+#if defined(__BIONIC__)
+#define  UCONTEXT_FPREGS_MEM_OFFSET   116
+#else
+#define  UCONTEXT_FPREGS_MEM_OFFSET   236
+#endif
+
+#elif defined(__mips__)
+
+#if _MIPS_SIM == _ABIO32
+#define  MCONTEXT_PC_OFFSET        32
+#define  MCONTEXT_GREGS_OFFSET     40
+#define  MCONTEXT_FPREGS_OFFSET    296
+#define  MCONTEXT_FPC_CSR          556
+#define  UCONTEXT_SIGMASK_OFFSET   616
+#else
+#define  MCONTEXT_GREGS_OFFSET     40
+#define  MCONTEXT_FPREGS_OFFSET    296
+#define  MCONTEXT_PC_OFFSET        616
+#define  MCONTEXT_FPC_CSR          624
+#define  UCONTEXT_SIGMASK_OFFSET   640
+#endif
+
+#elif defined(__x86_64__)
+
+#define MCONTEXT_GREGS_OFFSET     40
+#define UCONTEXT_SIGMASK_OFFSET   296
+
+#define MCONTEXT_GREGS_R8    40
+#define MCONTEXT_GREGS_R9    48
+#define MCONTEXT_GREGS_R10   56
+#define MCONTEXT_GREGS_R11   64
+#define MCONTEXT_GREGS_R12   72
+#define MCONTEXT_GREGS_R13   80
+#define MCONTEXT_GREGS_R14   88
+#define MCONTEXT_GREGS_R15   96
+#define MCONTEXT_GREGS_RDI   104
+#define MCONTEXT_GREGS_RSI   112
+#define MCONTEXT_GREGS_RBP   120
+#define MCONTEXT_GREGS_RBX   128
+#define MCONTEXT_GREGS_RDX   136
+#define MCONTEXT_GREGS_RAX   144
+#define MCONTEXT_GREGS_RCX   152
+#define MCONTEXT_GREGS_RSP   160
+#define MCONTEXT_GREGS_RIP   168
+#define MCONTEXT_FPREGS_PTR  224
+#if defined(__BIONIC__)
+#define MCONTEXT_FPREGS_MEM  304
+#else
+#define MCONTEXT_FPREGS_MEM  424
+#endif
+#define FPREGS_OFFSET_MXCSR  24
+
+#else
+#error "This header has not been ported for your CPU"
+#endif
+
+#endif  // GOOGLEBREAKPAD_COMMON_ANDROID_UCONTEXT_CONSTANTS_H
diff --git a/src/common/long_string_dictionary.cc b/src/common/long_string_dictionary.cc
new file mode 100644
index 0000000..46bbf61
--- /dev/null
+++ b/src/common/long_string_dictionary.cc
@@ -0,0 +1,178 @@
+// Copyright (c) 2017, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/long_string_dictionary.h"
+
+#include <assert.h>
+#include <string.h>
+
+#include <algorithm>
+#include <string>
+
+#include "common/simple_string_dictionary.h"
+
+#define arraysize(f) (sizeof(f) / sizeof(*f))
+
+namespace {
+// Suffixes for segment keys.
+const char* const kSuffixes[] = {"__1", "__2", "__3", "__4", "__5", "__6",
+    "__7", "__8", "__9", "__10"};
+#if !defined(NDEBUG)
+// The maximum suffix string length.
+const size_t kMaxSuffixLength = 4;
+#endif
+} // namespace
+
+namespace google_breakpad {
+
+using std::string;
+
+void LongStringDictionary::SetKeyValue(const char* key, const char* value) {
+  assert(key);
+  if (!key)
+    return;
+
+  RemoveKey(key);
+
+  if (!value) {
+    return;
+  }
+
+  // Key must not be an empty string.
+  assert(key[0] != '\0');
+  if (key[0] == '\0')
+    return;
+
+  // If the value is not valid for segmentation, forwards the key and the value
+  // to SetKeyValue of SimpleStringDictionary and returns.
+  size_t value_length = strlen(value);
+  if (value_length <= (value_size - 1)) {
+    SimpleStringDictionary::SetKeyValue(key, value);
+    return;
+  }
+
+  size_t key_length = strlen(key);
+  assert(key_length + kMaxSuffixLength <= (key_size - 1));
+
+  char segment_key[key_size];
+  char segment_value[value_size];
+
+  strcpy(segment_key, key);
+
+  const char* remain_value = value;
+  size_t remain_value_length = strlen(value);
+
+  for (unsigned long i = 0; i < arraysize(kSuffixes); i++) {
+    if (remain_value_length == 0) {
+      return;
+    }
+
+    strcpy(segment_key + key_length, kSuffixes[i]);
+
+    size_t segment_value_length =
+        std::min(remain_value_length, value_size - 1);
+
+    strncpy(segment_value, remain_value, segment_value_length);
+    segment_value[segment_value_length] = '\0';
+
+    remain_value += segment_value_length;
+    remain_value_length -= segment_value_length;
+
+    SimpleStringDictionary::SetKeyValue(segment_key, segment_value);
+  }
+}
+
+bool LongStringDictionary::RemoveKey(const char* key) {
+  assert(key);
+  if (!key)
+    return false;
+
+  if (SimpleStringDictionary::RemoveKey(key)) {
+    return true;
+  }
+
+  size_t key_length = strlen(key);
+  assert(key_length + kMaxSuffixLength <= (key_size - 1));
+
+  char segment_key[key_size];
+  strcpy(segment_key, key);
+
+  unsigned long i = 0;
+  for (; i < arraysize(kSuffixes); i++) {
+    strcpy(segment_key + key_length, kSuffixes[i]);
+    if (!SimpleStringDictionary::RemoveKey(segment_key)) {
+      break;
+    }
+  }
+  return i != 0;
+}
+
+const string LongStringDictionary::GetValueForKey(const char* key) const {
+  assert(key);
+  if (!key)
+    return "";
+
+  // Key must not be an empty string.
+  assert(key[0] != '\0');
+  if (key[0] == '\0')
+    return "";
+
+  const char* value = SimpleStringDictionary::GetValueForKey(key);
+  if (value)
+    return string(value);
+
+  size_t key_length = strlen(key);
+  assert(key_length + kMaxSuffixLength <= (key_size - 1));
+
+  bool found_segment = false;
+  char segment_key[key_size];
+  string return_value;
+
+  strcpy(segment_key, key);
+  for (unsigned long i = 0; i < arraysize(kSuffixes); i++) {
+    strcpy(segment_key + key_length, kSuffixes[i]);
+
+    const char* segment_value =
+        SimpleStringDictionary::GetValueForKey(segment_key);
+
+    if (segment_value != NULL) {
+      found_segment = true;
+      return_value.append(segment_value);
+    } else {
+      break;
+    }
+  }
+
+  if (found_segment) {
+    return return_value;
+  }
+  return "";
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/long_string_dictionary.h b/src/common/long_string_dictionary.h
new file mode 100644
index 0000000..68bf03d
--- /dev/null
+++ b/src/common/long_string_dictionary.h
@@ -0,0 +1,87 @@
+// Copyright (c) 2017, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_LONG_STRING_DICTIONARY_H_
+#define COMMON_LONG_STRING_DICTIONARY_H_
+
+#include <string>
+
+#include "common/simple_string_dictionary.h"
+
+namespace google_breakpad {
+// key_size is the maxium size that |key| can take in
+// SimpleStringDictionary which is defined in simple_string_dictionary.h.
+//
+// value_size is the maxium size that |value| can take in
+// SimpleStringDictionary which is defined in simple_string_dictionary.h.
+//
+// LongStringDictionary is a subclass of SimpleStringDictionary which supports
+// longer values to be stored in the dictionary. The maximum length supported is
+// (value_size - 1) * 10.
+//
+// For example, LongStringDictionary will store long value with key 'abc' into
+// segment values with segment keys 'abc__1', 'abc__2', 'abc__3', ...
+//
+// Clients must avoid using the same suffixes as their key's suffix when
+// LongStringDictionary is used.
+class LongStringDictionary : public SimpleStringDictionary {
+ public:
+  // Stores |value| into |key|, or segment values into segment keys. The maxium
+  // number of segments is 10. If |value| can not be stored in 10 segments, it
+  // will be truncated. Replacing the existing value if |key| is already present
+  // and replacing the existing segment values if segment keys are already
+  // present.
+  //
+  // |key| must not be NULL. If the |value| need to be divided into segments,
+  // the lengh of |key| must be smaller enough so that lengths of segment keys
+  // which are key with suffixes are all samller than (key_size - 1). Currently,
+  // the max length of suffixes are 4.
+  //
+  // If |value| is NULL, the key and its corresponding segment keys are removed
+  // from the map. If there is no more space in the map, then the operation
+  // silently fails.
+  void SetKeyValue(const char* key, const char* value);
+
+  // Given |key|, removes any associated value or associated segment values.
+  // |key| must not be NULL. If the key is not found, searchs its segment keys
+  // and removes corresponding segment values if found.
+  bool RemoveKey(const char* key);
+
+  // Given |key|, returns its corresponding |value|. |key| must not be NULL. If
+  // the key is found, its corresponding |value| is returned.
+  //
+  // If no corresponding |value| is found, segment keys of the given |key| will
+  // be used to search for corresponding segment values. If segment values
+  // exist, assembled value from them is returned. If no segment value exists,
+  // NULL is returned.
+  const std::string GetValueForKey(const char* key) const;
+};
+} // namespace google_breakpad
+
+#endif // COMMON_LONG_STRING_DICTIONARY_H_
diff --git a/src/common/long_string_dictionary_unittest.cc b/src/common/long_string_dictionary_unittest.cc
new file mode 100644
index 0000000..f9b645b
--- /dev/null
+++ b/src/common/long_string_dictionary_unittest.cc
@@ -0,0 +1,301 @@
+// Copyright (c) 2017, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <algorithm>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/long_string_dictionary.h"
+
+namespace google_breakpad {
+
+using std::string;
+
+TEST(LongStringDictionary, LongStringDictionary) {
+  // Make a new dictionary
+  LongStringDictionary dict;
+
+  // Set three distinct values on three keys
+  dict.SetKeyValue("key1", "value1");
+  dict.SetKeyValue("key2", "value2");
+  dict.SetKeyValue("key3", "value3");
+
+  EXPECT_EQ("value1", dict.GetValueForKey("key1"));
+  EXPECT_EQ("value2", dict.GetValueForKey("key2"));
+  EXPECT_EQ("value3", dict.GetValueForKey("key3"));
+  EXPECT_EQ(3u, dict.GetCount());
+  // try an unknown key
+  EXPECT_EQ("", dict.GetValueForKey("key4"));
+
+  // Remove a key
+  dict.RemoveKey("key3");
+
+  // Now make sure it's not there anymore
+  EXPECT_EQ("", dict.GetValueForKey("key3"));
+
+  // Remove by setting value to NULL
+  dict.SetKeyValue("key2", NULL);
+
+  // Now make sure it's not there anymore
+  EXPECT_EQ("", dict.GetValueForKey("key2"));
+}
+
+// Add a bunch of values to the dictionary, remove some entries in the middle,
+// and then add more.
+TEST(LongStringDictionary, Iterator) {
+  LongStringDictionary* dict = new LongStringDictionary();
+  ASSERT_TRUE(dict);
+
+  char key[LongStringDictionary::key_size];
+  char value[LongStringDictionary::value_size];
+
+  const int kDictionaryCapacity = LongStringDictionary::num_entries;
+  const int kPartitionIndex = kDictionaryCapacity - 5;
+
+  // We assume at least this size in the tests below
+  ASSERT_GE(kDictionaryCapacity, 64);
+
+  // We'll keep track of the number of key/value pairs we think should
+  // be in the dictionary
+  int expectedDictionarySize = 0;
+
+  // Set a bunch of key/value pairs like key0/value0, key1/value1, ...
+  for (int i = 0; i < kPartitionIndex; ++i) {
+    sprintf(key, "key%d", i);
+    sprintf(value, "value%d", i);
+    dict->SetKeyValue(key, value);
+  }
+  expectedDictionarySize = kPartitionIndex;
+
+  // set a couple of the keys twice (with the same value) - should be nop
+  dict->SetKeyValue("key2", "value2");
+  dict->SetKeyValue("key4", "value4");
+  dict->SetKeyValue("key15", "value15");
+
+  // Remove some random elements in the middle
+  dict->RemoveKey("key7");
+  dict->RemoveKey("key18");
+  dict->RemoveKey("key23");
+  dict->RemoveKey("key31");
+  expectedDictionarySize -= 4; // we just removed four key/value pairs
+
+  // Set some more key/value pairs like key59/value59, key60/value60, ...
+  for (int i = kPartitionIndex; i < kDictionaryCapacity; ++i) {
+    sprintf(key, "key%d", i);
+    sprintf(value, "value%d", i);
+    dict->SetKeyValue(key, value);
+  }
+  expectedDictionarySize += kDictionaryCapacity - kPartitionIndex;
+
+  // Now create an iterator on the dictionary
+  SimpleStringDictionary::Iterator iter(*dict);
+
+  // We then verify that it iterates through exactly the number of
+  // key/value pairs we expect, and that they match one-for-one with what we
+  // would expect.  The ordering of the iteration does not matter...
+
+  // used to keep track of number of occurrences found for key/value pairs
+  int count[kDictionaryCapacity];
+  memset(count, 0, sizeof(count));
+
+  int totalCount = 0;
+
+  const SimpleStringDictionary::Entry* entry;
+  while ((entry = iter.Next())) {
+    totalCount++;
+
+    // Extract keyNumber from a string of the form key<keyNumber>
+    int keyNumber;
+    sscanf(entry->key, "key%d", &keyNumber);
+
+    // Extract valueNumber from a string of the form value<valueNumber>
+    int valueNumber;
+    sscanf(entry->value, "value%d", &valueNumber);
+
+    // The value number should equal the key number since that's how we set them
+    EXPECT_EQ(keyNumber, valueNumber);
+
+    // Key and value numbers should be in proper range:
+    // 0 <= keyNumber < kDictionaryCapacity
+    bool isKeyInGoodRange = (keyNumber >= 0 && keyNumber < kDictionaryCapacity);
+    bool isValueInGoodRange =
+        (valueNumber >= 0 && valueNumber < kDictionaryCapacity);
+    EXPECT_TRUE(isKeyInGoodRange);
+    EXPECT_TRUE(isValueInGoodRange);
+
+    if (isKeyInGoodRange && isValueInGoodRange) {
+      ++count[keyNumber];
+    }
+  }
+
+  // Make sure each of the key/value pairs showed up exactly one time, except
+  // for the ones which we removed.
+  for (size_t i = 0; i < kDictionaryCapacity; ++i) {
+    // Skip over key7, key18, key23, and key31, since we removed them
+    if (!(i == 7 || i == 18 || i == 23 || i == 31)) {
+      EXPECT_EQ(count[i], 1);
+    }
+  }
+
+  // Make sure the number of iterations matches the expected dictionary size.
+  EXPECT_EQ(totalCount, expectedDictionarySize);
+}
+
+TEST(LongStringDictionary, AddRemove) {
+  LongStringDictionary dict;
+  dict.SetKeyValue("rob", "ert");
+  dict.SetKeyValue("mike", "pink");
+  dict.SetKeyValue("mark", "allays");
+
+  EXPECT_EQ(3u, dict.GetCount());
+  EXPECT_EQ("ert", dict.GetValueForKey("rob"));
+  EXPECT_EQ("pink", dict.GetValueForKey("mike"));
+  EXPECT_EQ("allays", dict.GetValueForKey("mark"));
+
+  dict.RemoveKey("mike");
+
+  EXPECT_EQ(2u, dict.GetCount());
+  EXPECT_EQ("", dict.GetValueForKey("mike"));
+
+  dict.SetKeyValue("mark", "mal");
+  EXPECT_EQ(2u, dict.GetCount());
+  EXPECT_EQ("mal", dict.GetValueForKey("mark"));
+
+  dict.RemoveKey("mark");
+  EXPECT_EQ(1u, dict.GetCount());
+  EXPECT_EQ("", dict.GetValueForKey("mark"));
+}
+
+TEST(LongStringDictionary, AddRemoveLongValue) {
+  LongStringDictionary dict;
+
+  string long_value = string(256, 'x');
+  dict.SetKeyValue("rob", long_value.c_str());
+
+  EXPECT_EQ(2u, dict.GetCount());
+
+  string long_value_part_1 = string(255, 'x');
+
+  EXPECT_EQ(long_value_part_1, dict.GetValueForKey("rob__1"));
+  EXPECT_EQ("x", dict.GetValueForKey("rob__2"));
+
+  EXPECT_EQ(long_value, dict.GetValueForKey("rob"));
+
+  dict.RemoveKey("rob");
+  EXPECT_EQ(0u, dict.GetCount());
+}
+
+TEST(LongStringDictionary, AddRemoveSuperLongValue) {
+  LongStringDictionary dict;
+
+  string long_value = string(255 * 10, 'x');
+  dict.SetKeyValue("rob", long_value.c_str());
+
+  EXPECT_EQ(10u, dict.GetCount());
+
+  string long_value_part = string(255, 'x');
+
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__1"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__2"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__3"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__4"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__5"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__6"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__7"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__8"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__9"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__10"));
+  EXPECT_EQ(10u, dict.GetCount());
+
+  EXPECT_EQ(long_value, dict.GetValueForKey("rob"));
+
+  dict.RemoveKey("rob");
+  EXPECT_EQ(0u, dict.GetCount());
+}
+
+TEST(LongStringDictionary, TruncateSuperLongValue) {
+  LongStringDictionary dict;
+
+  string long_value = string(255 * 11, 'x');
+  dict.SetKeyValue("rob", long_value.c_str());
+
+  EXPECT_EQ(10u, dict.GetCount());
+
+  string long_value_part = string(255, 'x');
+
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__1"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__2"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__3"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__4"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__5"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__6"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__7"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__8"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__9"));
+  EXPECT_EQ(long_value_part, dict.GetValueForKey("rob__10"));
+  EXPECT_EQ(10u, dict.GetCount());
+
+  string expected_long_value = string(255 * 10, 'x');
+  EXPECT_EQ(expected_long_value, dict.GetValueForKey("rob"));
+
+  dict.RemoveKey("rob");
+  EXPECT_EQ(0u, dict.GetCount());
+}
+
+TEST(LongStringDictionary, OverrideLongValue) {
+  LongStringDictionary dict;
+
+  string long_value = string(255 * 10, 'x');
+  dict.SetKeyValue("rob", long_value.c_str());
+
+  EXPECT_EQ(10u, dict.GetCount());
+  EXPECT_EQ(long_value, dict.GetValueForKey("rob"));
+
+  dict.SetKeyValue("rob", "short_value");
+
+  EXPECT_EQ(1u, dict.GetCount());
+  EXPECT_EQ("short_value", dict.GetValueForKey("rob"));
+}
+
+TEST(LongStringDictionary, OverrideShortValue) {
+  LongStringDictionary dict;
+
+  dict.SetKeyValue("rob", "short_value");
+
+  EXPECT_EQ(1u, dict.GetCount());
+  EXPECT_EQ("short_value", dict.GetValueForKey("rob"));
+
+  string long_value = string(255 * 10, 'x');
+  dict.SetKeyValue("rob", long_value.c_str());
+
+  EXPECT_EQ(10u, dict.GetCount());
+  EXPECT_EQ(long_value, dict.GetValueForKey("rob"));
+}
+
+} // namespace google_breakpad
diff --git a/src/common/mac/Breakpad.xcconfig b/src/common/mac/Breakpad.xcconfig
new file mode 100644
index 0000000..f091369
--- /dev/null
+++ b/src/common/mac/Breakpad.xcconfig
@@ -0,0 +1,52 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+GCC_C_LANGUAGE_STANDARD = c99
+
+GCC_WARN_CHECK_SWITCH_STATEMENTS = YES
+// TODO(nealsid): Get the code so we can turn on the 64_TO_32 warning.
+GCC_WARN_64_TO_32_BIT_CONVERSION = NO
+GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
+GCC_WARN_ABOUT_RETURN_TYPE = YES
+GCC_WARN_MISSING_PARENTHESES = YES
+
+// Once https://bugs.chromium.org/p/google-breakpad/issues/detail?id=697
+// is fixed this should be reenabled.
+//GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
+GCC_WARN_ABOUT_MISSING_NEWLINE = YES
+GCC_WARN_SIGN_COMPARE = YES
+GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES
+GCC_WARN_UNDECLARED_SELECTOR = YES
+GCC_WARN_UNKNOWN_PRAGMAS = YES
+GCC_WARN_UNUSED_VARIABLE = YES
+GCC_TREAT_WARNINGS_AS_ERRORS = YES
+
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
+
+ALWAYS_SEARCH_USER_PATHS = NO
diff --git a/src/common/mac/BreakpadDebug.xcconfig b/src/common/mac/BreakpadDebug.xcconfig
new file mode 100644
index 0000000..94cdd8c
--- /dev/null
+++ b/src/common/mac/BreakpadDebug.xcconfig
@@ -0,0 +1,32 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "Breakpad.xcconfig"
+
+GCC_OPTIMIZATION_LEVEL = 0
diff --git a/src/common/mac/BreakpadRelease.xcconfig b/src/common/mac/BreakpadRelease.xcconfig
new file mode 100644
index 0000000..920f277
--- /dev/null
+++ b/src/common/mac/BreakpadRelease.xcconfig
@@ -0,0 +1,34 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "Breakpad.xcconfig"
+
+GCC_OPTIMIZATION_LEVEL = s
+GCC_WARN_UNINITIALIZED_AUTOS = YES
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) NDEBUG
diff --git a/src/common/mac/GTMDefines.h b/src/common/mac/GTMDefines.h
new file mode 100644
index 0000000..04fcf6d
--- /dev/null
+++ b/src/common/mac/GTMDefines.h
@@ -0,0 +1,456 @@
+//
+// GTMDefines.h
+//
+//  Copyright 2008 Google Inc.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
+//  use this file except in compliance with the License.  You may obtain a copy
+//  of the License at
+//
+//  http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+//  License for the specific language governing permissions and limitations under
+//  the License.
+//
+
+// ============================================================================
+
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
+
+#ifdef __OBJC__
+#include <Foundation/NSObjCRuntime.h>
+#endif  // __OBJC__
+
+#if TARGET_OS_IPHONE
+#include <Availability.h>
+#endif  // TARGET_OS_IPHONE
+
+// Not all MAC_OS_X_VERSION_10_X macros defined in past SDKs
+#ifndef MAC_OS_X_VERSION_10_5
+  #define MAC_OS_X_VERSION_10_5 1050
+#endif
+#ifndef MAC_OS_X_VERSION_10_6
+  #define MAC_OS_X_VERSION_10_6 1060
+#endif
+#ifndef MAC_OS_X_VERSION_10_7
+  #define MAC_OS_X_VERSION_10_7 1070
+#endif
+
+// Not all __IPHONE_X macros defined in past SDKs
+#ifndef __IPHONE_3_0
+  #define __IPHONE_3_0 30000
+#endif
+#ifndef __IPHONE_3_1
+  #define __IPHONE_3_1 30100
+#endif
+#ifndef __IPHONE_3_2
+  #define __IPHONE_3_2 30200
+#endif
+#ifndef __IPHONE_4_0
+  #define __IPHONE_4_0 40000
+#endif
+#ifndef __IPHONE_4_3
+  #define __IPHONE_4_3 40300
+#endif
+#ifndef __IPHONE_5_0
+  #define __IPHONE_5_0 50000
+#endif
+
+// ----------------------------------------------------------------------------
+// CPP symbols that can be overridden in a prefix to control how the toolbox
+// is compiled.
+// ----------------------------------------------------------------------------
+
+
+// By setting the GTM_CONTAINERS_VALIDATION_FAILED_LOG and
+// GTM_CONTAINERS_VALIDATION_FAILED_ASSERT macros you can control what happens
+// when a validation fails. If you implement your own validators, you may want
+// to control their internals using the same macros for consistency.
+#ifndef GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
+  #define GTM_CONTAINERS_VALIDATION_FAILED_ASSERT 0
+#endif
+
+// Give ourselves a consistent way to do inlines.  Apple's macros even use
+// a few different actual definitions, so we're based off of the foundation
+// one.
+#if !defined(GTM_INLINE)
+  #if (defined (__GNUC__) && (__GNUC__ == 4)) || defined (__clang__)
+    #define GTM_INLINE static __inline__ __attribute__((always_inline))
+  #else
+    #define GTM_INLINE static __inline__
+  #endif
+#endif
+
+// Give ourselves a consistent way of doing externs that links up nicely
+// when mixing objc and objc++
+#if !defined (GTM_EXTERN)
+  #if defined __cplusplus
+    #define GTM_EXTERN extern "C"
+    #define GTM_EXTERN_C_BEGIN extern "C" {
+    #define GTM_EXTERN_C_END }
+  #else
+    #define GTM_EXTERN extern
+    #define GTM_EXTERN_C_BEGIN
+    #define GTM_EXTERN_C_END
+  #endif
+#endif
+
+// Give ourselves a consistent way of exporting things if we have visibility
+// set to hidden.
+#if !defined (GTM_EXPORT)
+  #define GTM_EXPORT __attribute__((visibility("default")))
+#endif
+
+// Give ourselves a consistent way of declaring something as unused. This
+// doesn't use __unused because that is only supported in gcc 4.2 and greater.
+#if !defined (GTM_UNUSED)
+#define GTM_UNUSED(x) ((void)(x))
+#endif
+
+// _GTMDevLog & _GTMDevAssert
+//
+// _GTMDevLog & _GTMDevAssert are meant to be a very lightweight shell for
+// developer level errors.  This implementation simply macros to NSLog/NSAssert.
+// It is not intended to be a general logging/reporting system.
+//
+// Please see https://github.com/google/google-toolbox-for-mac/wiki/DevLogNAssert
+// for a little more background on the usage of these macros.
+//
+//    _GTMDevLog           log some error/problem in debug builds
+//    _GTMDevAssert        assert if conditon isn't met w/in a method/function
+//                           in all builds.
+//
+// To replace this system, just provide different macro definitions in your
+// prefix header.  Remember, any implementation you provide *must* be thread
+// safe since this could be called by anything in what ever situtation it has
+// been placed in.
+//
+
+// We only define the simple macros if nothing else has defined this.
+#ifndef _GTMDevLog
+
+#ifdef DEBUG
+  #define _GTMDevLog(...) NSLog(__VA_ARGS__)
+#else
+  #define _GTMDevLog(...) do { } while (0)
+#endif
+
+#endif // _GTMDevLog
+
+#ifndef _GTMDevAssert
+// we directly invoke the NSAssert handler so we can pass on the varargs
+// (NSAssert doesn't have a macro we can use that takes varargs)
+#if !defined(NS_BLOCK_ASSERTIONS)
+  #define _GTMDevAssert(condition, ...)                                       \
+    do {                                                                      \
+      if (!(condition)) {                                                     \
+        [[NSAssertionHandler currentHandler]                                  \
+            handleFailureInFunction:[NSString stringWithUTF8String:__PRETTY_FUNCTION__] \
+                               file:[NSString stringWithUTF8String:__FILE__]  \
+                         lineNumber:__LINE__                                  \
+                        description:__VA_ARGS__];                             \
+      }                                                                       \
+    } while(0)
+#else // !defined(NS_BLOCK_ASSERTIONS)
+  #define _GTMDevAssert(condition, ...) do { } while (0)
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
+#endif // _GTMDevAssert
+
+// _GTMCompileAssert
+// _GTMCompileAssert is an assert that is meant to fire at compile time if you
+// want to check things at compile instead of runtime. For example if you
+// want to check that a wchar is 4 bytes instead of 2 you would use
+// _GTMCompileAssert(sizeof(wchar_t) == 4, wchar_t_is_4_bytes_on_OS_X)
+// Note that the second "arg" is not in quotes, and must be a valid processor
+// symbol in it's own right (no spaces, punctuation etc).
+
+// Wrapping this in an #ifndef allows external groups to define their own
+// compile time assert scheme.
+#ifndef _GTMCompileAssert
+  // We got this technique from here:
+  // http://unixjunkie.blogspot.com/2007/10/better-compile-time-asserts_29.html
+
+  #define _GTMCompileAssertSymbolInner(line, msg) _GTMCOMPILEASSERT ## line ## __ ## msg
+  #define _GTMCompileAssertSymbol(line, msg) _GTMCompileAssertSymbolInner(line, msg)
+  #define _GTMCompileAssert(test, msg) \
+    typedef char _GTMCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ]
+#endif // _GTMCompileAssert
+
+// ----------------------------------------------------------------------------
+// CPP symbols defined based on the project settings so the GTM code has
+// simple things to test against w/o scattering the knowledge of project
+// setting through all the code.
+// ----------------------------------------------------------------------------
+
+// Provide a single constant CPP symbol that all of GTM uses for ifdefing
+// iPhone code.
+#if TARGET_OS_IPHONE // iPhone SDK
+  // For iPhone specific stuff
+  #define GTM_IPHONE_SDK 1
+  #if TARGET_IPHONE_SIMULATOR
+    #define GTM_IPHONE_DEVICE 0
+    #define GTM_IPHONE_SIMULATOR 1
+  #else
+    #define GTM_IPHONE_DEVICE 1
+    #define GTM_IPHONE_SIMULATOR 0
+  #endif  // TARGET_IPHONE_SIMULATOR
+  // By default, GTM has provided it's own unittesting support, define this
+  // to use the support provided by Xcode, especially for the Xcode4 support
+  // for unittesting.
+  #ifndef GTM_IPHONE_USE_SENTEST
+    #define GTM_IPHONE_USE_SENTEST 0
+  #endif
+  #define GTM_MACOS_SDK 0
+#else
+  // For MacOS specific stuff
+  #define GTM_MACOS_SDK 1
+  #define GTM_IPHONE_SDK 0
+  #define GTM_IPHONE_SIMULATOR 0
+  #define GTM_IPHONE_DEVICE 0
+  #define GTM_IPHONE_USE_SENTEST 0
+#endif
+
+// Some of our own availability macros
+#if GTM_MACOS_SDK
+#define GTM_AVAILABLE_ONLY_ON_IPHONE UNAVAILABLE_ATTRIBUTE
+#define GTM_AVAILABLE_ONLY_ON_MACOS
+#else
+#define GTM_AVAILABLE_ONLY_ON_IPHONE
+#define GTM_AVAILABLE_ONLY_ON_MACOS UNAVAILABLE_ATTRIBUTE
+#endif
+
+// GC was dropped by Apple, define the old constant incase anyone still keys
+// off of it.
+#ifndef GTM_SUPPORT_GC
+  #define GTM_SUPPORT_GC 0
+#endif
+
+// To simplify support for 64bit (and Leopard in general), we provide the type
+// defines for non Leopard SDKs
+#if !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
+ // NSInteger/NSUInteger and Max/Mins
+  #ifndef NSINTEGER_DEFINED
+    #if (defined(__LP64__) && __LP64__) || NS_BUILD_32_LIKE_64
+      typedef long NSInteger;
+      typedef unsigned long NSUInteger;
+    #else
+      typedef int NSInteger;
+      typedef unsigned int NSUInteger;
+    #endif
+    #define NSIntegerMax    LONG_MAX
+    #define NSIntegerMin    LONG_MIN
+    #define NSUIntegerMax   ULONG_MAX
+    #define NSINTEGER_DEFINED 1
+  #endif  // NSINTEGER_DEFINED
+  // CGFloat
+  #ifndef CGFLOAT_DEFINED
+    #if defined(__LP64__) && __LP64__
+      // This really is an untested path (64bit on Tiger?)
+      typedef double CGFloat;
+      #define CGFLOAT_MIN DBL_MIN
+      #define CGFLOAT_MAX DBL_MAX
+      #define CGFLOAT_IS_DOUBLE 1
+    #else /* !defined(__LP64__) || !__LP64__ */
+      typedef float CGFloat;
+      #define CGFLOAT_MIN FLT_MIN
+      #define CGFLOAT_MAX FLT_MAX
+      #define CGFLOAT_IS_DOUBLE 0
+    #endif /* !defined(__LP64__) || !__LP64__ */
+    #define CGFLOAT_DEFINED 1
+  #endif // CGFLOAT_DEFINED
+#endif  // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+
+// Some support for advanced clang static analysis functionality
+// See http://clang-analyzer.llvm.org/annotations.html
+#ifndef __has_feature      // Optional.
+  #define __has_feature(x) 0 // Compatibility with non-clang compilers.
+#endif
+
+#ifndef NS_RETURNS_RETAINED
+  #if __has_feature(attribute_ns_returns_retained)
+    #define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
+  #else
+    #define NS_RETURNS_RETAINED
+  #endif
+#endif
+
+#ifndef NS_RETURNS_NOT_RETAINED
+  #if __has_feature(attribute_ns_returns_not_retained)
+    #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
+  #else
+    #define NS_RETURNS_NOT_RETAINED
+  #endif
+#endif
+
+#ifndef CF_RETURNS_RETAINED
+  #if __has_feature(attribute_cf_returns_retained)
+    #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained))
+  #else
+    #define CF_RETURNS_RETAINED
+  #endif
+#endif
+
+#ifndef CF_RETURNS_NOT_RETAINED
+  #if __has_feature(attribute_cf_returns_not_retained)
+    #define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained))
+  #else
+    #define CF_RETURNS_NOT_RETAINED
+  #endif
+#endif
+
+#ifndef NS_CONSUMED
+  #if __has_feature(attribute_ns_consumed)
+    #define NS_CONSUMED __attribute__((ns_consumed))
+  #else
+    #define NS_CONSUMED
+  #endif
+#endif
+
+#ifndef CF_CONSUMED
+  #if __has_feature(attribute_cf_consumed)
+    #define CF_CONSUMED __attribute__((cf_consumed))
+  #else
+    #define CF_CONSUMED
+  #endif
+#endif
+
+#ifndef NS_CONSUMES_SELF
+  #if __has_feature(attribute_ns_consumes_self)
+    #define NS_CONSUMES_SELF __attribute__((ns_consumes_self))
+  #else
+    #define NS_CONSUMES_SELF
+  #endif
+#endif
+
+// Defined on 10.6 and above.
+#ifndef NS_FORMAT_ARGUMENT
+  #define NS_FORMAT_ARGUMENT(A)
+#endif
+
+// Defined on 10.6 and above.
+#ifndef NS_FORMAT_FUNCTION
+  #define NS_FORMAT_FUNCTION(F,A)
+#endif
+
+// Defined on 10.6 and above.
+#ifndef CF_FORMAT_ARGUMENT
+  #define CF_FORMAT_ARGUMENT(A)
+#endif
+
+// Defined on 10.6 and above.
+#ifndef CF_FORMAT_FUNCTION
+  #define CF_FORMAT_FUNCTION(F,A)
+#endif
+
+#ifndef GTM_NONNULL
+  #if defined(__has_attribute)
+    #if __has_attribute(nonnull)
+      #define GTM_NONNULL(x) __attribute__((nonnull x))
+    #else
+      #define GTM_NONNULL(x)
+    #endif
+  #else
+    #define GTM_NONNULL(x)
+  #endif
+#endif
+
+// Invalidates the initializer from which it's called.
+#ifndef GTMInvalidateInitializer
+  #if __has_feature(objc_arc)
+    #define GTMInvalidateInitializer() \
+      do { \
+        [self class]; /* Avoid warning of dead store to |self|. */ \
+        _GTMDevAssert(NO, @"Invalid initializer."); \
+        return nil; \
+      } while (0)
+  #else
+    #define GTMInvalidateInitializer() \
+      do { \
+        [self release]; \
+        _GTMDevAssert(NO, @"Invalid initializer."); \
+        return nil; \
+      } while (0)
+  #endif
+#endif
+
+#ifndef GTMCFAutorelease
+  #if __has_feature(objc_arc)
+    #define GTMCFAutorelease(x) CFBridgingRelease(x)
+  #else
+    #define GTMCFAutorelease(x) ([(id)x autorelease])
+  #endif
+#endif
+
+#ifdef __OBJC__
+
+// Declared here so that it can easily be used for logging tracking if
+// necessary. See GTMUnitTestDevLog.h for details.
+@class NSString;
+GTM_EXTERN void _GTMUnitTestDevLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2);
+
+// Macro to allow you to create NSStrings out of other macros.
+// #define FOO foo
+// NSString *fooString = GTM_NSSTRINGIFY(FOO);
+#if !defined (GTM_NSSTRINGIFY)
+  #define GTM_NSSTRINGIFY_INNER(x) @#x
+  #define GTM_NSSTRINGIFY(x) GTM_NSSTRINGIFY_INNER(x)
+#endif
+
+// Macro to allow fast enumeration when building for 10.5 or later, and
+// reliance on NSEnumerator for 10.4.  Remember, NSDictionary w/ FastEnumeration
+// does keys, so pick the right thing, nothing is done on the FastEnumeration
+// side to be sure you're getting what you wanted.
+#ifndef GTM_FOREACH_OBJECT
+  #if TARGET_OS_IPHONE || !(MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5)
+    #define GTM_FOREACH_ENUMEREE(element, enumeration) \
+      for (element in enumeration)
+    #define GTM_FOREACH_OBJECT(element, collection) \
+      for (element in collection)
+    #define GTM_FOREACH_KEY(element, collection) \
+      for (element in collection)
+  #else
+    #define GTM_FOREACH_ENUMEREE(element, enumeration) \
+      for (NSEnumerator *_ ## element ## _enum = enumeration; \
+           (element = [_ ## element ## _enum nextObject]) != nil; )
+    #define GTM_FOREACH_OBJECT(element, collection) \
+      GTM_FOREACH_ENUMEREE(element, [collection objectEnumerator])
+    #define GTM_FOREACH_KEY(element, collection) \
+      GTM_FOREACH_ENUMEREE(element, [collection keyEnumerator])
+  #endif
+#endif
+
+// ============================================================================
+
+// To simplify support for both Leopard and Snow Leopard we declare
+// the Snow Leopard protocols that we need here.
+#if !defined(GTM_10_6_PROTOCOLS_DEFINED) && !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
+#define GTM_10_6_PROTOCOLS_DEFINED 1
+@protocol NSConnectionDelegate
+@end
+@protocol NSAnimationDelegate
+@end
+@protocol NSImageDelegate
+@end
+@protocol NSTabViewDelegate
+@end
+#endif  // !defined(GTM_10_6_PROTOCOLS_DEFINED) && !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
+
+// GTM_SEL_STRING is for specifying selector (usually property) names to KVC
+// or KVO methods.
+// In debug it will generate warnings for undeclared selectors if
+// -Wunknown-selector is turned on.
+// In release it will have no runtime overhead.
+#ifndef GTM_SEL_STRING
+  #ifdef DEBUG
+    #define GTM_SEL_STRING(selName) NSStringFromSelector(@selector(selName))
+  #else
+    #define GTM_SEL_STRING(selName) @#selName
+  #endif  // DEBUG
+#endif  // GTM_SEL_STRING
+
+#endif  // __OBJC__
diff --git a/src/common/mac/GTMLogger.h b/src/common/mac/GTMLogger.h
new file mode 100644
index 0000000..c4fd140
--- /dev/null
+++ b/src/common/mac/GTMLogger.h
@@ -0,0 +1,504 @@
+//
+//  GTMLogger.h
+//
+//  Copyright 2007-2008 Google Inc.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
+//  use this file except in compliance with the License.  You may obtain a copy
+//  of the License at
+//
+//  http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+//  License for the specific language governing permissions and limitations under
+//  the License.
+//
+
+// Key Abstractions
+// ----------------
+//
+// This file declares multiple classes and protocols that are used by the
+// GTMLogger logging system. The 4 main abstractions used in this file are the
+// following:
+//
+//   * logger (GTMLogger) - The main logging class that users interact with. It
+//   has methods for logging at different levels and uses a log writer, a log
+//   formatter, and a log filter to get the job done.
+//
+//   * log writer (GTMLogWriter) - Writes a given string to some log file, where
+//   a "log file" can be a physical file on disk, a POST over HTTP to some URL,
+//   or even some in-memory structure (e.g., a ring buffer).
+//
+//   * log formatter (GTMLogFormatter) - Given a format string and arguments as
+//   a va_list, returns a single formatted NSString. A "formatted string" could
+//   be a string with the date prepended, a string with values in a CSV format,
+//   or even a string of XML.
+//
+//   * log filter (GTMLogFilter) - Given a formatted log message as an NSString
+//   and the level at which the message is to be logged, this class will decide
+//   whether the given message should be logged or not. This is a flexible way
+//   to filter out messages logged at a certain level, messages that contain
+//   certain text, or filter nothing out at all. This gives the caller the
+//   flexibility to dynamically enable debug logging in Release builds.
+//
+// This file also declares some classes to handle the common log writer, log
+// formatter, and log filter cases. Callers can also create their own writers,
+// formatters, and filters and they can even build them on top of the ones
+// declared here. Keep in mind that your custom writer/formatter/filter may be
+// called from multiple threads, so it must be thread-safe.
+
+#import <Foundation/Foundation.h>
+#import "GTMDefines.h"
+
+// Predeclaration of used protocols that are declared later in this file.
+@protocol GTMLogWriter, GTMLogFormatter, GTMLogFilter;
+
+// GTMLogger
+//
+// GTMLogger is the primary user-facing class for an object-oriented logging
+// system. It is built on the concept of log formatters (GTMLogFormatter), log
+// writers (GTMLogWriter), and log filters (GTMLogFilter). When a message is
+// sent to a GTMLogger to log a message, the message is formatted using the log
+// formatter, then the log filter is consulted to see if the message should be
+// logged, and if so, the message is sent to the log writer to be written out.
+//
+// GTMLogger is intended to be a flexible and thread-safe logging solution. Its
+// flexibility comes from the fact that GTMLogger instances can be customized
+// with user defined formatters, filters, and writers. And these writers,
+// filters, and formatters can be combined, stacked, and customized in arbitrary
+// ways to suit the needs at hand. For example, multiple writers can be used at
+// the same time, and a GTMLogger instance can even be used as another
+// GTMLogger's writer. This allows for arbitrarily deep logging trees.
+//
+// A standard GTMLogger uses a writer that sends messages to standard out, a
+// formatter that smacks a timestamp and a few other bits of interesting
+// information on the message, and a filter that filters out debug messages from
+// release builds. Using the standard log settings, a log message will look like
+// the following:
+//
+//   2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] foo=<Foo: 0x123>
+//
+// The output contains the date and time of the log message, the name of the
+// process followed by its process ID/thread ID, the log level at which the
+// message was logged (in the previous example the level was 1:
+// kGTMLoggerLevelDebug), and finally, the user-specified log message itself (in
+// this case, the log message was @"foo=%@", foo).
+//
+// Multiple instances of GTMLogger can be created, each configured their own
+// way.  Though GTMLogger is not a singleton (in the GoF sense), it does provide
+// access to a shared (i.e., globally accessible) GTMLogger instance. This makes
+// it convenient for all code in a process to use the same GTMLogger instance.
+// The shared GTMLogger instance can also be configured in an arbitrary, and
+// these configuration changes will affect all code that logs through the shared
+// instance.
+
+//
+// Log Levels
+// ----------
+// GTMLogger has 3 different log levels: Debug, Info, and Error. GTMLogger
+// doesn't take any special action based on the log level; it simply forwards
+// this information on to formatters, filters, and writers, each of which may
+// optionally take action based on the level. Since log level filtering is
+// performed at runtime, log messages are typically not filtered out at compile
+// time.  The exception to this rule is that calls to the GTMLoggerDebug() macro
+// *ARE* filtered out of non-DEBUG builds. This is to be backwards compatible
+// with behavior that many developers are currently used to. Note that this
+// means that GTMLoggerDebug(@"hi") will be compiled out of Release builds, but
+// [[GTMLogger sharedLogger] logDebug:@"hi"] will NOT be compiled out.
+//
+// Standard loggers are created with the GTMLogLevelFilter log filter, which
+// filters out certain log messages based on log level, and some other settings.
+//
+// In addition to the -logDebug:, -logInfo:, and -logError: methods defined on
+// GTMLogger itself, there are also C macros that make usage of the shared
+// GTMLogger instance very convenient. These macros are:
+//
+//   GTMLoggerDebug(...)
+//   GTMLoggerInfo(...)
+//   GTMLoggerError(...)
+//
+// Again, a notable feature of these macros is that GTMLogDebug() calls *will be
+// compiled out of non-DEBUG builds*.
+//
+// Standard Loggers
+// ----------------
+// GTMLogger has the concept of "standard loggers". A standard logger is simply
+// a logger that is pre-configured with some standard/common writer, formatter,
+// and filter combination. Standard loggers are created using the creation
+// methods beginning with "standard". The alternative to a standard logger is a
+// regular logger, which will send messages to stdout, with no special
+// formatting, and no filtering.
+//
+// How do I use GTMLogger?
+// ----------------------
+// The typical way you will want to use GTMLogger is to simply use the
+// GTMLogger*() macros for logging from code. That way we can easily make
+// changes to the GTMLogger class and simply update the macros accordingly. Only
+// your application startup code (perhaps, somewhere in main()) should use the
+// GTMLogger class directly in order to configure the shared logger, which all
+// of the code using the macros will be using. Again, this is just the typical
+// situation.
+//
+// To be complete, there are cases where you may want to use GTMLogger directly,
+// or even create separate GTMLogger instances for some reason. That's fine,
+// too.
+//
+// Examples
+// --------
+// The following show some common GTMLogger use cases.
+//
+// 1. You want to log something as simply as possible. Also, this call will only
+//    appear in debug builds. In non-DEBUG builds it will be completely removed.
+//
+//      GTMLoggerDebug(@"foo = %@", foo);
+//
+// 2. The previous example is similar to the following. The major difference is
+//    that the previous call (example 1) will be compiled out of Release builds
+//    but this statement will not be compiled out.
+//
+//      [[GTMLogger sharedLogger] logDebug:@"foo = %@", foo];
+//
+// 3. Send all logging output from the shared logger to a file. We do this by
+//    creating an NSFileHandle for writing associated with a file, and setting
+//    that file handle as the logger's writer.
+//
+//      NSFileHandle *f = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log"
+//                                                          create:YES];
+//      [[GTMLogger sharedLogger] setWriter:f];
+//      GTMLoggerError(@"hi");  // This will be sent to /tmp/f.log
+//
+// 4. Create a new GTMLogger that will log to a file. This example differs from
+//    the previous one because here we create a new GTMLogger that is different
+//    from the shared logger.
+//
+//      GTMLogger *logger = [GTMLogger standardLoggerWithPath:@"/tmp/temp.log"];
+//      [logger logInfo:@"hi temp log file"];
+//
+// 5. Create a logger that writes to stdout and does NOT do any formatting to
+//    the log message. This might be useful, for example, when writing a help
+//    screen for a command-line tool to standard output.
+//
+//      GTMLogger *logger = [GTMLogger logger];
+//      [logger logInfo:@"%@ version 0.1 usage", progName];
+//
+// 6. Send log output to stdout AND to a log file. The trick here is that
+//    NSArrays function as composite log writers, which means when an array is
+//    set as the log writer, it forwards all logging messages to all of its
+//    contained GTMLogWriters.
+//
+//      // Create array of GTMLogWriters
+//      NSArray *writers = [NSArray arrayWithObjects:
+//          [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" create:YES],
+//          [NSFileHandle fileHandleWithStandardOutput], nil];
+//
+//      GTMLogger *logger = [GTMLogger standardLogger];
+//      [logger setWriter:writers];
+//      [logger logInfo:@"hi"];  // Output goes to stdout and /tmp/f.log
+//
+// For futher details on log writers, formatters, and filters, see the
+// documentation below.
+//
+// NOTE: GTMLogger is application level logging.  By default it does nothing
+// with _GTMDevLog/_GTMDevAssert (see GTMDefines.h).  An application can choose
+// to bridge _GTMDevLog/_GTMDevAssert to GTMLogger by providing macro
+// definitions in its prefix header (see GTMDefines.h for how one would do
+// that).
+//
+@interface GTMLogger : NSObject {
+ @private
+  id<GTMLogWriter> writer_;
+  id<GTMLogFormatter> formatter_;
+  id<GTMLogFilter> filter_;
+}
+
+//
+// Accessors for the shared logger instance
+//
+
+// Returns a shared/global standard GTMLogger instance. Callers should typically
+// use this method to get a GTMLogger instance, unless they explicitly want
+// their own instance to configure for their own needs. This is the only method
+// that returns a shared instance; all the rest return new GTMLogger instances.
++ (id)sharedLogger;
+
+// Sets the shared logger instance to |logger|. Future calls to +sharedLogger
+// will return |logger| instead.
++ (void)setSharedLogger:(GTMLogger *)logger;
+
+//
+// Creation methods
+//
+
+// Returns a new autoreleased GTMLogger instance that will log to stdout, using
+// the GTMLogStandardFormatter, and the GTMLogLevelFilter filter.
++ (id)standardLogger;
+
+// Same as +standardLogger, but logs to stderr.
++ (id)standardLoggerWithStderr;
+
+// Same as +standardLogger but levels >= kGTMLoggerLevelError are routed to
+// stderr, everything else goes to stdout.
++ (id)standardLoggerWithStdoutAndStderr;
+
+// Returns a new standard GTMLogger instance with a log writer that will
+// write to the file at |path|, and will use the GTMLogStandardFormatter and
+// GTMLogLevelFilter classes. If |path| does not exist, it will be created.
++ (id)standardLoggerWithPath:(NSString *)path;
+
+// Returns an autoreleased GTMLogger instance that will use the specified
+// |writer|, |formatter|, and |filter|.
++ (id)loggerWithWriter:(id<GTMLogWriter>)writer
+             formatter:(id<GTMLogFormatter>)formatter
+                filter:(id<GTMLogFilter>)filter;
+
+// Returns an autoreleased GTMLogger instance that logs to stdout, with the
+// basic formatter, and no filter. The returned logger differs from the logger
+// returned by +standardLogger because this one does not do any filtering and
+// does not do any special log formatting; this is the difference between a
+// "regular" logger and a "standard" logger.
++ (id)logger;
+
+// Designated initializer. This method returns a GTMLogger initialized with the
+// specified |writer|, |formatter|, and |filter|. See the setter methods below
+// for what values will be used if nil is passed for a parameter.
+- (id)initWithWriter:(id<GTMLogWriter>)writer
+           formatter:(id<GTMLogFormatter>)formatter
+              filter:(id<GTMLogFilter>)filter;
+
+//
+// Logging  methods
+//
+
+// Logs a message at the debug level (kGTMLoggerLevelDebug).
+- (void)logDebug:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
+// Logs a message at the info level (kGTMLoggerLevelInfo).
+- (void)logInfo:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
+// Logs a message at the error level (kGTMLoggerLevelError).
+- (void)logError:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
+// Logs a message at the assert level (kGTMLoggerLevelAssert).
+- (void)logAssert:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
+
+
+//
+// Accessors
+//
+
+// Accessor methods for the log writer. If the log writer is set to nil,
+// [NSFileHandle fileHandleWithStandardOutput] is used.
+- (id<GTMLogWriter>)writer;
+- (void)setWriter:(id<GTMLogWriter>)writer;
+
+// Accessor methods for the log formatter. If the log formatter is set to nil,
+// GTMLogBasicFormatter is used. This formatter will format log messages in a
+// plain printf style.
+- (id<GTMLogFormatter>)formatter;
+- (void)setFormatter:(id<GTMLogFormatter>)formatter;
+
+// Accessor methods for the log filter. If the log filter is set to nil,
+// GTMLogNoFilter is used, which allows all log messages through.
+- (id<GTMLogFilter>)filter;
+- (void)setFilter:(id<GTMLogFilter>)filter;
+
+@end  // GTMLogger
+
+
+// Helper functions that are used by the convenience GTMLogger*() macros that
+// enable the logging of function names.
+@interface GTMLogger (GTMLoggerMacroHelpers)
+- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ...
+  NS_FORMAT_FUNCTION(2, 3);
+- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ...
+  NS_FORMAT_FUNCTION(2, 3);
+- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ...
+  NS_FORMAT_FUNCTION(2, 3);
+- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ...
+  NS_FORMAT_FUNCTION(2, 3);
+@end  // GTMLoggerMacroHelpers
+
+
+// The convenience macros are only defined if they haven't already been defined.
+#ifndef GTMLoggerInfo
+
+// Convenience macros that log to the shared GTMLogger instance. These macros
+// are how users should typically log to GTMLogger. Notice that GTMLoggerDebug()
+// calls will be compiled out of non-Debug builds.
+#define GTMLoggerDebug(...)  \
+  [[GTMLogger sharedLogger] logFuncDebug:__func__ msg:__VA_ARGS__]
+#define GTMLoggerInfo(...)   \
+  [[GTMLogger sharedLogger] logFuncInfo:__func__ msg:__VA_ARGS__]
+#define GTMLoggerError(...)  \
+  [[GTMLogger sharedLogger] logFuncError:__func__ msg:__VA_ARGS__]
+#define GTMLoggerAssert(...) \
+  [[GTMLogger sharedLogger] logFuncAssert:__func__ msg:__VA_ARGS__]
+
+// If we're not in a debug build, remove the GTMLoggerDebug statements. This
+// makes calls to GTMLoggerDebug "compile out" of Release builds
+#ifndef DEBUG
+#undef GTMLoggerDebug
+#define GTMLoggerDebug(...) do {} while(0)
+#endif
+
+#endif  // !defined(GTMLoggerInfo)
+
+// Log levels.
+typedef enum {
+  kGTMLoggerLevelUnknown,
+  kGTMLoggerLevelDebug,
+  kGTMLoggerLevelInfo,
+  kGTMLoggerLevelError,
+  kGTMLoggerLevelAssert,
+} GTMLoggerLevel;
+
+
+//
+//   Log Writers
+//
+
+// Protocol to be implemented by a GTMLogWriter instance.
+@protocol GTMLogWriter <NSObject>
+// Writes the given log message to where the log writer is configured to write.
+- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level;
+@end  // GTMLogWriter
+
+
+// Simple category on NSFileHandle that makes NSFileHandles valid log writers.
+// This is convenient because something like, say, +fileHandleWithStandardError
+// now becomes a valid log writer. Log messages are written to the file handle
+// with a newline appended.
+@interface NSFileHandle (GTMFileHandleLogWriter) <GTMLogWriter>
+// Opens the file at |path| in append mode, and creates the file with |mode|
+// if it didn't previously exist.
++ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode;
+@end  // NSFileHandle
+
+
+// This category makes NSArray a GTMLogWriter that can be composed of other
+// GTMLogWriters. This is the classic Composite GoF design pattern. When the
+// GTMLogWriter -logMessage:level: message is sent to the array, the array
+// forwards the message to all of its elements that implement the GTMLogWriter
+// protocol.
+//
+// This is useful in situations where you would like to send log output to
+// multiple log writers at the same time. Simply create an NSArray of the log
+// writers you wish to use, then set the array as the "writer" for your
+// GTMLogger instance.
+@interface NSArray (GTMArrayCompositeLogWriter) <GTMLogWriter>
+@end  // GTMArrayCompositeLogWriter
+
+
+// This category adapts the GTMLogger interface so that it can be used as a log
+// writer; it's an "adapter" in the GoF Adapter pattern sense.
+//
+// This is useful when you want to configure a logger to log to a specific
+// writer with a specific formatter and/or filter. But you want to also compose
+// that with a different log writer that may have its own formatter and/or
+// filter.
+@interface GTMLogger (GTMLoggerLogWriter) <GTMLogWriter>
+@end  // GTMLoggerLogWriter
+
+
+//
+//   Log Formatters
+//
+
+// Protocol to be implemented by a GTMLogFormatter instance.
+@protocol GTMLogFormatter <NSObject>
+// Returns a formatted string using the format specified in |fmt| and the va
+// args specified in |args|.
+- (NSString *)stringForFunc:(NSString *)func
+                 withFormat:(NSString *)fmt
+                     valist:(va_list)args
+                      level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0);
+@end  // GTMLogFormatter
+
+
+// A basic log formatter that formats a string the same way that NSLog (or
+// printf) would. It does not do anything fancy, nor does it add any data of its
+// own.
+@interface GTMLogBasicFormatter : NSObject <GTMLogFormatter>
+
+// Helper method for prettying C99 __func__ and GCC __PRETTY_FUNCTION__
+- (NSString *)prettyNameForFunc:(NSString *)func;
+
+@end  // GTMLogBasicFormatter
+
+
+// A log formatter that formats the log string like the basic formatter, but
+// also prepends a timestamp and some basic process info to the message, as
+// shown in the following sample output.
+//   2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] log mesage here
+@interface GTMLogStandardFormatter : GTMLogBasicFormatter {
+ @private
+  NSDateFormatter *dateFormatter_;  // yyyy-MM-dd HH:mm:ss.SSS
+  NSString *pname_;
+  pid_t pid_;
+}
+@end  // GTMLogStandardFormatter
+
+
+//
+//   Log Filters
+//
+
+// Protocol to be imlemented by a GTMLogFilter instance.
+@protocol GTMLogFilter <NSObject>
+// Returns YES if |msg| at |level| should be filtered out; NO otherwise.
+- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level;
+@end  // GTMLogFilter
+
+
+// A log filter that filters messages at the kGTMLoggerLevelDebug level out of
+// non-debug builds. Messages at the kGTMLoggerLevelInfo level are also filtered
+// out of non-debug builds unless GTMVerboseLogging is set in the environment or
+// the processes's defaults. Messages at the kGTMLoggerLevelError level are
+// never filtered.
+@interface GTMLogLevelFilter : NSObject <GTMLogFilter>
+@end  // GTMLogLevelFilter
+
+// A simple log filter that does NOT filter anything out;
+// -filterAllowsMessage:level will always return YES. This can be a convenient
+// way to enable debug-level logging in release builds (if you so desire).
+@interface GTMLogNoFilter : NSObject <GTMLogFilter>
+@end  // GTMLogNoFilter
+
+
+// Base class for custom level filters. Not for direct use, use the minimum
+// or maximum level subclasses below.
+@interface GTMLogAllowedLevelFilter : NSObject <GTMLogFilter> {
+ @private
+  NSIndexSet *allowedLevels_;
+}
+@end
+
+// A log filter that allows you to set a minimum log level. Messages below this
+// level will be filtered.
+@interface GTMLogMininumLevelFilter : GTMLogAllowedLevelFilter
+
+// Designated initializer, logs at levels < |level| will be filtered.
+- (id)initWithMinimumLevel:(GTMLoggerLevel)level;
+
+@end
+
+// A log filter that allows you to set a maximum log level. Messages whose level
+// exceeds this level will be filtered. This is really only useful if you have
+// a composite GTMLogger that is sending the other messages elsewhere.
+@interface GTMLogMaximumLevelFilter : GTMLogAllowedLevelFilter
+
+// Designated initializer, logs at levels > |level| will be filtered.
+- (id)initWithMaximumLevel:(GTMLoggerLevel)level;
+
+@end
+
+
+// For subclasses only
+@interface GTMLogger (PrivateMethods)
+
+- (void)logInternalFunc:(const char *)func
+                 format:(NSString *)fmt
+                 valist:(va_list)args
+                  level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0);
+
+@end
+
diff --git a/src/common/mac/GTMLogger.m b/src/common/mac/GTMLogger.m
new file mode 100644
index 0000000..ebc5836
--- /dev/null
+++ b/src/common/mac/GTMLogger.m
@@ -0,0 +1,611 @@
+//
+//  GTMLogger.m
+//
+//  Copyright 2007-2008 Google Inc.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
+//  use this file except in compliance with the License.  You may obtain a copy
+//  of the License at
+//
+//  http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+//  License for the specific language governing permissions and limitations under
+//  the License.
+//
+
+#import "GTMLogger.h"
+#import <fcntl.h>
+#import <unistd.h>
+#import <stdlib.h>
+#import <pthread.h>
+
+
+#if !defined(__clang__) && (__GNUC__*10+__GNUC_MINOR__ >= 42)
+// Some versions of GCC (4.2 and below AFAIK) aren't great about supporting
+// -Wmissing-format-attribute
+// when the function is anything more complex than foo(NSString *fmt, ...).
+// You see the error inside the function when you turn ... into va_args and
+// attempt to call another function (like vsprintf for example).
+// So we just shut off the warning for this file. We reenable it at the end.
+#pragma GCC diagnostic ignored "-Wmissing-format-attribute"
+#endif  // !__clang__
+
+// Reference to the shared GTMLogger instance. This is not a singleton, it's
+// just an easy reference to one shared instance.
+static GTMLogger *gSharedLogger = nil;
+
+
+@implementation GTMLogger
+
+// Returns a pointer to the shared logger instance. If none exists, a standard
+// logger is created and returned.
++ (id)sharedLogger {
+  @synchronized(self) {
+    if (gSharedLogger == nil) {
+      gSharedLogger = [[self standardLogger] retain];
+    }
+  }
+  return [[gSharedLogger retain] autorelease];
+}
+
++ (void)setSharedLogger:(GTMLogger *)logger {
+  @synchronized(self) {
+    [gSharedLogger autorelease];
+    gSharedLogger = [logger retain];
+  }
+}
+
++ (id)standardLogger {
+  // Don't trust NSFileHandle not to throw
+  @try {
+    id<GTMLogWriter> writer = [NSFileHandle fileHandleWithStandardOutput];
+    id<GTMLogFormatter> fr = [[[GTMLogStandardFormatter alloc] init]
+                                 autorelease];
+    id<GTMLogFilter> filter = [[[GTMLogLevelFilter alloc] init] autorelease];
+    return [[[self alloc] initWithWriter:writer
+                               formatter:fr
+                                  filter:filter] autorelease];
+  }
+  @catch (id e) {
+    // Ignored
+  }
+  return nil;
+}
+
++ (id)standardLoggerWithStderr {
+  // Don't trust NSFileHandle not to throw
+  @try {
+    id me = [self standardLogger];
+    [me setWriter:[NSFileHandle fileHandleWithStandardError]];
+    return me;
+  }
+  @catch (id e) {
+    // Ignored
+  }
+  return nil;
+}
+
++ (id)standardLoggerWithStdoutAndStderr {
+  // We're going to take advantage of the GTMLogger to GTMLogWriter adaptor
+  // and create a composite logger that an outer "standard" logger can use
+  // as a writer. Our inner loggers should apply no formatting since the main
+  // logger does that and we want the caller to be able to change formatters
+  // or add writers without knowing the inner structure of our composite.
+
+  // Don't trust NSFileHandle not to throw
+  @try {
+    GTMLogBasicFormatter *formatter = [[[GTMLogBasicFormatter alloc] init] 
+                                          autorelease];
+    GTMLogger *stdoutLogger =
+        [self loggerWithWriter:[NSFileHandle fileHandleWithStandardOutput]
+                     formatter:formatter
+                        filter:[[[GTMLogMaximumLevelFilter alloc]
+                                  initWithMaximumLevel:kGTMLoggerLevelInfo]
+                                      autorelease]];
+    GTMLogger *stderrLogger =
+        [self loggerWithWriter:[NSFileHandle fileHandleWithStandardError]
+                     formatter:formatter
+                        filter:[[[GTMLogMininumLevelFilter alloc]
+                                  initWithMinimumLevel:kGTMLoggerLevelError]
+                                      autorelease]];
+    GTMLogger *compositeWriter =
+        [self loggerWithWriter:[NSArray arrayWithObjects:
+                                   stdoutLogger, stderrLogger, nil]
+                     formatter:formatter
+                        filter:[[[GTMLogNoFilter alloc] init] autorelease]];
+    GTMLogger *outerLogger = [self standardLogger];
+    [outerLogger setWriter:compositeWriter];
+    return outerLogger;
+  }
+  @catch (id e) {
+    // Ignored
+  }
+  return nil;
+}
+
++ (id)standardLoggerWithPath:(NSString *)path {
+  @try {
+    NSFileHandle *fh = [NSFileHandle fileHandleForLoggingAtPath:path mode:0644];
+    if (fh == nil) return nil;
+    id me = [self standardLogger];
+    [me setWriter:fh];
+    return me;
+  }
+  @catch (id e) {
+    // Ignored
+  }
+  return nil;
+}
+
++ (id)loggerWithWriter:(id<GTMLogWriter>)writer
+             formatter:(id<GTMLogFormatter>)formatter
+                filter:(id<GTMLogFilter>)filter {
+  return [[[self alloc] initWithWriter:writer
+                             formatter:formatter
+                                filter:filter] autorelease];
+}
+
++ (id)logger {
+  return [[[self alloc] init] autorelease];
+}
+
+- (id)init {
+  return [self initWithWriter:nil formatter:nil filter:nil];
+}
+
+- (id)initWithWriter:(id<GTMLogWriter>)writer
+           formatter:(id<GTMLogFormatter>)formatter
+              filter:(id<GTMLogFilter>)filter {
+  if ((self = [super init])) {
+    [self setWriter:writer];
+    [self setFormatter:formatter];
+    [self setFilter:filter];
+  }
+  return self;
+}
+
+- (void)dealloc {
+  // Unlikely, but |writer_| may be an NSFileHandle, which can throw
+  @try {
+    [formatter_ release];
+    [filter_ release];
+    [writer_ release];
+  }
+  @catch (id e) {
+    // Ignored
+  }
+  [super dealloc];
+}
+
+- (id<GTMLogWriter>)writer {
+  return [[writer_ retain] autorelease];
+}
+
+- (void)setWriter:(id<GTMLogWriter>)writer {
+  @synchronized(self) {
+    [writer_ autorelease];
+    writer_ = nil;
+    if (writer == nil) {
+      // Try to use stdout, but don't trust NSFileHandle
+      @try {
+        writer_ = [[NSFileHandle fileHandleWithStandardOutput] retain];
+      }
+      @catch (id e) {
+        // Leave |writer_| nil
+      }
+    } else {
+      writer_ = [writer retain];
+    }
+  }
+}
+
+- (id<GTMLogFormatter>)formatter {
+  return [[formatter_ retain] autorelease];
+}
+
+- (void)setFormatter:(id<GTMLogFormatter>)formatter {
+  @synchronized(self) {
+    [formatter_ autorelease];
+    formatter_ = nil;
+    if (formatter == nil) {
+      @try {
+        formatter_ = [[GTMLogBasicFormatter alloc] init];
+      }
+      @catch (id e) {
+        // Leave |formatter_| nil
+      }
+    } else {
+      formatter_ = [formatter retain];
+    }
+  }
+}
+
+- (id<GTMLogFilter>)filter {
+  return [[filter_ retain] autorelease];
+}
+
+- (void)setFilter:(id<GTMLogFilter>)filter {
+  @synchronized(self) {
+    [filter_ autorelease];
+    filter_ = nil;
+    if (filter == nil) {
+      @try {
+        filter_ = [[GTMLogNoFilter alloc] init];
+      }
+      @catch (id e) {
+        // Leave |filter_| nil
+      }
+    } else {
+      filter_ = [filter retain];
+    }
+  }
+}
+
+- (void)logDebug:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelDebug];
+  va_end(args);
+}
+
+- (void)logInfo:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelInfo];
+  va_end(args);
+}
+
+- (void)logError:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelError];
+  va_end(args);
+}
+
+- (void)logAssert:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:NULL format:fmt valist:args level:kGTMLoggerLevelAssert];
+  va_end(args);
+}
+
+@end  // GTMLogger
+
+@implementation GTMLogger (GTMLoggerMacroHelpers)
+
+- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelDebug];
+  va_end(args);
+}
+
+- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelInfo];
+  va_end(args);
+}
+
+- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelError];
+  va_end(args);
+}
+
+- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ... {
+  va_list args;
+  va_start(args, fmt);
+  [self logInternalFunc:func format:fmt valist:args level:kGTMLoggerLevelAssert];
+  va_end(args);
+}
+
+@end  // GTMLoggerMacroHelpers
+
+@implementation GTMLogger (PrivateMethods)
+
+- (void)logInternalFunc:(const char *)func
+                 format:(NSString *)fmt
+                 valist:(va_list)args
+                  level:(GTMLoggerLevel)level {
+  // Primary point where logging happens, logging should never throw, catch
+  // everything.
+  @try {
+    NSString *fname = func ? [NSString stringWithUTF8String:func] : nil;
+    NSString *msg = [formatter_ stringForFunc:fname
+                                   withFormat:fmt
+                                       valist:args
+                                        level:level];
+    if (msg && [filter_ filterAllowsMessage:msg level:level])
+      [writer_ logMessage:msg level:level];
+  }
+  @catch (id e) {
+    // Ignored
+  }
+}
+
+@end  // PrivateMethods
+
+
+@implementation NSFileHandle (GTMFileHandleLogWriter)
+
++ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode {
+  int fd = -1;
+  if (path) {
+    int flags = O_WRONLY | O_APPEND | O_CREAT;
+    fd = open([path fileSystemRepresentation], flags, mode);
+  }
+  if (fd == -1) return nil;
+  return [[[self alloc] initWithFileDescriptor:fd
+                                closeOnDealloc:YES] autorelease];
+}
+
+- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+  @synchronized(self) {
+    // Closed pipes should not generate exceptions in our caller. Catch here
+    // as well [GTMLogger logInternalFunc:...] so that an exception in this
+    // writer does not prevent other writers from having a chance.
+    @try {
+      NSString *line = [NSString stringWithFormat:@"%@\n", msg];
+      [self writeData:[line dataUsingEncoding:NSUTF8StringEncoding]];
+    }
+    @catch (id e) {
+      // Ignored
+    }
+  }
+}
+
+@end  // GTMFileHandleLogWriter
+
+
+@implementation NSArray (GTMArrayCompositeLogWriter)
+
+- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+  @synchronized(self) {
+    id<GTMLogWriter> child = nil;
+    GTM_FOREACH_OBJECT(child, self) {
+      if ([child conformsToProtocol:@protocol(GTMLogWriter)])
+        [child logMessage:msg level:level];
+    }
+  }
+}
+
+@end  // GTMArrayCompositeLogWriter
+
+
+@implementation GTMLogger (GTMLoggerLogWriter)
+
+- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+  switch (level) {
+    case kGTMLoggerLevelDebug:
+      [self logDebug:@"%@", msg];
+      break;
+    case kGTMLoggerLevelInfo:
+      [self logInfo:@"%@", msg];
+      break;
+    case kGTMLoggerLevelError:
+      [self logError:@"%@", msg];
+      break;
+    case kGTMLoggerLevelAssert:
+      [self logAssert:@"%@", msg];
+      break;
+    default:
+      // Ignore the message.
+      break;
+  }
+}
+
+@end  // GTMLoggerLogWriter
+
+
+@implementation GTMLogBasicFormatter
+
+- (NSString *)prettyNameForFunc:(NSString *)func {
+  NSString *name = [func stringByTrimmingCharactersInSet:
+                     [NSCharacterSet whitespaceAndNewlineCharacterSet]];
+  NSString *function = @"(unknown)";
+  if ([name length]) {
+    if (// Objective C __func__ and __PRETTY_FUNCTION__
+        [name hasPrefix:@"-["] || [name hasPrefix:@"+["] ||
+        // C++ __PRETTY_FUNCTION__ and other preadorned formats
+        [name hasSuffix:@")"]) {
+      function = name;
+    } else {
+      // Assume C99 __func__
+      function = [NSString stringWithFormat:@"%@()", name];
+    }
+  }
+  return function;
+}
+
+- (NSString *)stringForFunc:(NSString *)func
+                 withFormat:(NSString *)fmt
+                     valist:(va_list)args
+                      level:(GTMLoggerLevel)level {
+  // Performance note: We may want to do a quick check here to see if |fmt|
+  // contains a '%', and if not, simply return 'fmt'.
+  if (!(fmt && args)) return nil;
+  return [[[NSString alloc] initWithFormat:fmt arguments:args] autorelease];
+}
+
+@end  // GTMLogBasicFormatter
+
+
+@implementation GTMLogStandardFormatter
+
+- (id)init {
+  if ((self = [super init])) {
+    dateFormatter_ = [[NSDateFormatter alloc] init];
+    [dateFormatter_ setFormatterBehavior:NSDateFormatterBehavior10_4];
+    [dateFormatter_ setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
+    pname_ = [[[NSProcessInfo processInfo] processName] copy];
+    pid_ = [[NSProcessInfo processInfo] processIdentifier];
+    if (!(dateFormatter_ && pname_)) {
+      [self release];
+      return nil;
+    }
+  }
+  return self;
+}
+
+- (void)dealloc {
+  [dateFormatter_ release];
+  [pname_ release];
+  [super dealloc];
+}
+
+- (NSString *)stringForFunc:(NSString *)func
+                 withFormat:(NSString *)fmt
+                     valist:(va_list)args
+                      level:(GTMLoggerLevel)level {
+  NSString *tstamp = nil;
+  @synchronized (dateFormatter_) {
+    tstamp = [dateFormatter_ stringFromDate:[NSDate date]];
+  }
+  return [NSString stringWithFormat:@"%@ %@[%d/%p] [lvl=%d] %@ %@",
+           tstamp, pname_, pid_, pthread_self(),
+           level, [self prettyNameForFunc:func],
+           // |super| has guard for nil |fmt| and |args|
+           [super stringForFunc:func withFormat:fmt valist:args level:level]];
+}
+
+@end  // GTMLogStandardFormatter
+
+
+@implementation GTMLogLevelFilter
+
+// Check the environment and the user preferences for the GTMVerboseLogging key
+// to see if verbose logging has been enabled. The environment variable will
+// override the defaults setting, so check the environment first.
+// COV_NF_START
+static BOOL IsVerboseLoggingEnabled(void) {
+  static NSString *const kVerboseLoggingKey = @"GTMVerboseLogging";
+  NSString *value = [[[NSProcessInfo processInfo] environment]
+                        objectForKey:kVerboseLoggingKey];
+  if (value) {
+    // Emulate [NSString boolValue] for pre-10.5
+    value = [value stringByTrimmingCharactersInSet:
+                [NSCharacterSet whitespaceAndNewlineCharacterSet]];
+    if ([[value uppercaseString] hasPrefix:@"Y"] ||
+        [[value uppercaseString] hasPrefix:@"T"] ||
+        [value intValue]) {
+      return YES;
+    } else {
+      return NO;
+    }
+  }
+  return [[NSUserDefaults standardUserDefaults] boolForKey:kVerboseLoggingKey];
+}
+// COV_NF_END
+
+// In DEBUG builds, log everything. If we're not in a debug build we'll assume
+// that we're in a Release build.
+- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+#if defined(DEBUG) && DEBUG
+  return YES;
+#endif
+
+  BOOL allow = YES;
+
+  switch (level) {
+    case kGTMLoggerLevelDebug:
+      allow = NO;
+      break;
+    case kGTMLoggerLevelInfo:
+      allow = IsVerboseLoggingEnabled();
+      break;
+    case kGTMLoggerLevelError:
+      allow = YES;
+      break;
+    case kGTMLoggerLevelAssert:
+      allow = YES;
+      break;
+    default:
+      allow = YES;
+      break;
+  }
+
+  return allow;
+}
+
+@end  // GTMLogLevelFilter
+
+
+@implementation GTMLogNoFilter
+
+- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+  return YES;  // Allow everything through
+}
+
+@end  // GTMLogNoFilter
+
+
+@implementation GTMLogAllowedLevelFilter
+
+// Private designated initializer
+- (id)initWithAllowedLevels:(NSIndexSet *)levels {
+  self = [super init];
+  if (self != nil) {
+    allowedLevels_ = [levels retain];
+    // Cap min/max level
+    if (!allowedLevels_ ||
+        // NSIndexSet is unsigned so only check the high bound, but need to
+        // check both first and last index because NSIndexSet appears to allow
+        // wraparound.
+        ([allowedLevels_ firstIndex] > kGTMLoggerLevelAssert) ||
+        ([allowedLevels_ lastIndex] > kGTMLoggerLevelAssert)) {
+      [self release];
+      return nil;
+    }
+  }
+  return self;
+}
+
+- (id)init {
+  // Allow all levels in default init
+  return [self initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange:
+             NSMakeRange(kGTMLoggerLevelUnknown,
+                 (kGTMLoggerLevelAssert - kGTMLoggerLevelUnknown + 1))]];
+}
+
+- (void)dealloc {
+  [allowedLevels_ release];
+  [super dealloc];
+}
+
+- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level {
+  return [allowedLevels_ containsIndex:level];
+}
+
+@end  // GTMLogAllowedLevelFilter
+
+
+@implementation GTMLogMininumLevelFilter
+
+- (id)initWithMinimumLevel:(GTMLoggerLevel)level {
+  return [super initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange:
+             NSMakeRange(level,
+                         (kGTMLoggerLevelAssert - level + 1))]];
+}
+
+@end  // GTMLogMininumLevelFilter
+
+
+@implementation GTMLogMaximumLevelFilter
+
+- (id)initWithMaximumLevel:(GTMLoggerLevel)level {
+  return [super initWithAllowedLevels:[NSIndexSet indexSetWithIndexesInRange:
+             NSMakeRange(kGTMLoggerLevelUnknown, level + 1)]];
+}
+
+@end  // GTMLogMaximumLevelFilter
+
+#if !defined(__clang__) && (__GNUC__*10+__GNUC_MINOR__ >= 42)
+// See comment at top of file.
+#pragma GCC diagnostic error "-Wmissing-format-attribute"
+#endif  // !__clang__
+
diff --git a/src/common/mac/HTTPGetRequest.h b/src/common/mac/HTTPGetRequest.h
new file mode 100644
index 0000000..3aa316b
--- /dev/null
+++ b/src/common/mac/HTTPGetRequest.h
@@ -0,0 +1,42 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+#import "HTTPRequest.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Represents a HTTP GET request
+ */
+@interface HTTPGetRequest : HTTPRequest
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/common/mac/HTTPGetRequest.m b/src/common/mac/HTTPGetRequest.m
new file mode 100644
index 0000000..f9b7bf0
--- /dev/null
+++ b/src/common/mac/HTTPGetRequest.m
@@ -0,0 +1,39 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "HTTPGetRequest.h"
+
+@implementation HTTPGetRequest
+
+//=============================================================================
+- (NSString*)HTTPMethod {
+  return @"GET";
+}
+
+@end
diff --git a/src/common/mac/HTTPMultipartUpload.h b/src/common/mac/HTTPMultipartUpload.h
new file mode 100644
index 0000000..56d5394
--- /dev/null
+++ b/src/common/mac/HTTPMultipartUpload.h
@@ -0,0 +1,63 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+#import "HTTPRequest.h"
+/**
+ Represents a multipart/form-data HTTP upload (POST request).
+ Each parameter pair is sent as a boundary.
+ Each file is sent with a name field in addition to the filename and data.
+ */
+@interface HTTPMultipartUpload : HTTPRequest {
+ @protected
+  NSDictionary* parameters_;    // The key/value pairs for sending data (STRONG)
+  NSMutableDictionary* files_;  // Dictionary of name/file-path (STRONG)
+  NSString* boundary_;          // The boundary string (STRONG)
+}
+
+/**
+ Sets the parameters that will be sent in the multipart POST request.
+ */
+- (void)setParameters:(NSDictionary*)parameters;
+- (NSDictionary*)parameters;
+
+/**
+ Adds a file to be uploaded in the multipart POST request, by its file path.
+ */
+- (void)addFileAtPath:(NSString*)path name:(NSString*)name;
+
+/**
+ Adds a file to be uploaded in the multipart POST request, by its name and
+ contents.
+ */
+- (void)addFileContents:(NSData*)data name:(NSString*)name;
+- (NSDictionary*)files;
+
+@end
diff --git a/src/common/mac/HTTPMultipartUpload.m b/src/common/mac/HTTPMultipartUpload.m
new file mode 100644
index 0000000..2aa64f7
--- /dev/null
+++ b/src/common/mac/HTTPMultipartUpload.m
@@ -0,0 +1,170 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "HTTPMultipartUpload.h"
+
+#import "GTMDefines.h"
+#import "encoding_util.h"
+
+@interface HTTPMultipartUpload (PrivateMethods)
+- (NSString*)multipartBoundary;
+// Each of the following methods will append the starting multipart boundary,
+// but not the ending one.
+- (NSData*)formDataForKey:(NSString*)key value:(NSString*)value;
+- (NSData*)formDataForFileContents:(NSData*)contents name:(NSString*)name;
+- (NSData*)formDataForFile:(NSString*)file name:(NSString*)name;
+@end
+
+@implementation HTTPMultipartUpload
+//=============================================================================
+#pragma mark -
+#pragma mark || Private ||
+//=============================================================================
+- (NSString*)multipartBoundary {
+  // The boundary has 27 '-' characters followed by 16 hex digits
+  return [NSString
+      stringWithFormat:@"---------------------------%08X%08X", rand(), rand()];
+}
+
+//=============================================================================
+- (NSData*)formDataForKey:(NSString*)key value:(NSString*)value {
+  NSMutableData* data = [NSMutableData data];
+  [self appendBoundaryData:data];
+
+  NSString* escaped = PercentEncodeNSString(key);
+  NSString* fmt = @"Content-Disposition: form-data; name=\"%@\"\r\n\r\n%@\r\n";
+  NSString *form = [NSString stringWithFormat:fmt, escaped, value];
+
+  [data appendData:[form dataUsingEncoding:NSUTF8StringEncoding]];
+  return data;
+}
+
+//=============================================================================
+- (void)appendBoundaryData:(NSMutableData*)data {
+  NSString* fmt = @"--%@\r\n";
+  NSString* pre = [NSString stringWithFormat:fmt, boundary_];
+
+  [data appendData:[pre dataUsingEncoding:NSUTF8StringEncoding]];
+}
+
+//=============================================================================
+#pragma mark -
+#pragma mark || Public ||
+//=============================================================================
+- (id)initWithURL:(NSURL*)url {
+  if ((self = [super initWithURL:url])) {
+    boundary_ = [[self multipartBoundary] retain];
+    files_ = [[NSMutableDictionary alloc] init];
+  }
+
+  return self;
+}
+
+//=============================================================================
+- (void)dealloc {
+  [parameters_ release];
+  [files_ release];
+  [boundary_ release];
+
+  [super dealloc];
+}
+
+//=============================================================================
+- (void)setParameters:(NSDictionary*)parameters {
+  if (parameters != parameters_) {
+    [parameters_ release];
+    parameters_ = [parameters copy];
+  }
+}
+
+//=============================================================================
+- (NSDictionary*)parameters {
+  return parameters_;
+}
+
+//=============================================================================
+- (void)addFileAtPath:(NSString*)path name:(NSString*)name {
+  [files_ setObject:path forKey:name];
+}
+
+//=============================================================================
+- (void)addFileContents:(NSData*)data name:(NSString*)name {
+  [files_ setObject:data forKey:name];
+}
+
+//=============================================================================
+- (NSDictionary*)files {
+  return files_;
+}
+
+//=============================================================================
+- (NSString*)HTTPMethod {
+  return @"POST";
+}
+
+//=============================================================================
+- (NSString*)contentType {
+  return [NSString
+      stringWithFormat:@"multipart/form-data; boundary=%@", boundary_];
+}
+
+//=============================================================================
+- (NSData*)bodyData {
+  NSMutableData* postBody = [NSMutableData data];
+
+  // Add any parameters to the message
+  NSArray* parameterKeys = [parameters_ allKeys];
+  NSString* key;
+
+  NSInteger count = [parameterKeys count];
+  for (NSInteger i = 0; i < count; ++i) {
+    key = [parameterKeys objectAtIndex:i];
+    [postBody appendData:[self formDataForKey:key
+                                        value:[parameters_ objectForKey:key]]];
+  }
+
+  // Add any files to the message
+  NSArray* fileNames = [files_ allKeys];
+  for (NSString* name in fileNames) {
+    // First append boundary
+    [self appendBoundaryData:postBody];
+    // Then the formdata
+    id fileOrData = [files_ objectForKey:name];
+    [HTTPRequest appendFileToBodyData:postBody
+                             withName:name
+                       withFileOrData:fileOrData];
+  }
+
+  NSString* epilogue = [NSString stringWithFormat:@"\r\n--%@--\r\n", boundary_];
+  [postBody appendData:[epilogue dataUsingEncoding:NSUTF8StringEncoding]];
+
+  return postBody;
+}
+
+@end
diff --git a/src/common/mac/HTTPPutRequest.h b/src/common/mac/HTTPPutRequest.h
new file mode 100644
index 0000000..431ea61
--- /dev/null
+++ b/src/common/mac/HTTPPutRequest.h
@@ -0,0 +1,51 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+#import "HTTPRequest.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Represents an HTTP PUT request.
+ */
+@interface HTTPPutRequest : HTTPRequest {
+ @protected
+  NSString* file_;
+}
+
+/**
+ Sets the path of the file that will be sent in the PUT request.
+ */
+- (void)setFile:(NSString*)file;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/common/mac/HTTPPutRequest.m b/src/common/mac/HTTPPutRequest.m
new file mode 100644
index 0000000..ec67376
--- /dev/null
+++ b/src/common/mac/HTTPPutRequest.m
@@ -0,0 +1,62 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "HTTPPutRequest.h"
+
+@implementation HTTPPutRequest
+
+//=============================================================================
+- (void)dealloc {
+  [file_ release];
+
+  [super dealloc];
+}
+
+//=============================================================================
+- (void)setFile:(NSString*)file {
+  file_ = [file copy];
+}
+
+//=============================================================================
+- (NSString*)HTTPMethod {
+  return @"PUT";
+}
+
+//=============================================================================
+- (NSData*)bodyData {
+  NSMutableData* postBody = [NSMutableData data];
+
+  [HTTPRequest appendFileToBodyData:postBody
+                           withName:@"symbol_file"
+                     withFileOrData:file_];
+
+  return postBody;
+}
+
+@end
diff --git a/src/common/mac/HTTPRequest.h b/src/common/mac/HTTPRequest.h
new file mode 100644
index 0000000..b78fad6
--- /dev/null
+++ b/src/common/mac/HTTPRequest.h
@@ -0,0 +1,73 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+/**
+ Represents a single HTTP request. Sending the request is synchronous.
+ Once the send is complete, the response will be set.
+
+ This is a base interface that specific HTTP requests derive from.
+ It is not intended to be instantiated directly.
+ */
+@interface HTTPRequest : NSObject {
+ @protected
+  NSURL* URL_;                   // The destination URL (STRONG)
+  NSHTTPURLResponse* response_;  // The response from the send (STRONG)
+}
+
+/**
+ Initializes the HTTPRequest and sets its URL.
+ */
+- (id)initWithURL:(NSURL*)URL;
+
+- (NSURL*)URL;
+
+- (NSHTTPURLResponse*)response;
+
+- (NSString*)HTTPMethod;  // Internal, don't call outside class hierarchy.
+
+- (NSString*)contentType;  // Internal, don't call outside class hierarchy.
+
+- (NSData*)bodyData;  // Internal, don't call outside class hierarchy.
+
+- (NSData*)send:(NSError**)error;
+
+/**
+ Appends a file to the HTTP request, either by filename or by file content
+ (in the form of NSData).
+ */
++ (void)appendFileToBodyData:(NSMutableData*)data
+                    withName:(NSString*)name
+              withFileOrData:(id)fileOrData;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/common/mac/HTTPRequest.m b/src/common/mac/HTTPRequest.m
new file mode 100644
index 0000000..ee7de3a
--- /dev/null
+++ b/src/common/mac/HTTPRequest.m
@@ -0,0 +1,213 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "HTTPRequest.h"
+
+#include <Availability.h>
+#include <AvailabilityMacros.h>
+
+#import "encoding_util.h"
+
+// As -[NSURLConnection sendSynchronousRequest:returningResponse:error:] has
+// been deprecated with iOS 9.0 / OS X 10.11 SDKs, this function re-implements
+// it using -[NSURLSession dataTaskWithRequest:completionHandler:] which is
+// available on iOS 7+.
+static NSData* SendSynchronousNSURLRequest(NSURLRequest* req,
+                                           NSURLResponse** outResponse,
+                                           NSError** outError) {
+#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_7_0) && \
+     __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_0) ||                  \
+    (defined(MAC_OS_X_VERSION_MIN_REQUIRED) &&                             \
+     defined(MAC_OS_X_VERSION_10_11) &&                                    \
+     MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11)
+  __block NSData* result = nil;
+  __block NSError* error = nil;
+  __block NSURLResponse* response = nil;
+  dispatch_semaphore_t waitSemaphone = dispatch_semaphore_create(0);
+  NSURLSessionConfiguration* config =
+      [NSURLSessionConfiguration defaultSessionConfiguration];
+  [config setTimeoutIntervalForRequest:240.0];
+  NSURLSession* session = [NSURLSession sessionWithConfiguration:config];
+  [[session
+      dataTaskWithRequest:req
+        completionHandler:^(NSData* data, NSURLResponse* resp, NSError* err) {
+          if (outError)
+            error = [err retain];
+          if (outResponse)
+            response = [resp retain];
+          if (err == nil)
+            result = [data retain];
+          dispatch_semaphore_signal(waitSemaphone);
+        }] resume];
+  dispatch_semaphore_wait(waitSemaphone, DISPATCH_TIME_FOREVER);
+  dispatch_release(waitSemaphone);
+  if (outError)
+    *outError = [error autorelease];
+  if (outResponse)
+    *outResponse = [response autorelease];
+  return [result autorelease];
+#else
+  return [NSURLConnection sendSynchronousRequest:req
+                               returningResponse:outResponse
+                                           error:outError];
+#endif
+}
+
+@implementation HTTPRequest
+
+//=============================================================================
+- (id)initWithURL:(NSURL*)URL {
+  if ((self = [super init])) {
+    URL_ = [URL copy];
+  }
+
+  return self;
+}
+
+//=============================================================================
+- (void)dealloc {
+  [URL_ release];
+  [response_ release];
+
+  [super dealloc];
+}
+
+//=============================================================================
+- (NSURL*)URL {
+  return URL_;
+}
+
+//=============================================================================
+- (NSHTTPURLResponse*)response {
+  return response_;
+}
+
+//=============================================================================
+- (NSString*)HTTPMethod {
+  @throw [NSException
+      exceptionWithName:NSInternalInconsistencyException
+                 reason:[NSString stringWithFormat:@"You must"
+                                                    "override %@ in a subclass",
+                                                   NSStringFromSelector(_cmd)]
+               userInfo:nil];
+}
+
+//=============================================================================
+- (NSString*)contentType {
+  return nil;
+}
+
+//=============================================================================
+- (NSData*)bodyData {
+  return nil;
+}
+
+//=============================================================================
+- (NSData*)send:(NSError**)withError {
+  NSMutableURLRequest* req = [[NSMutableURLRequest alloc]
+          initWithURL:URL_
+          cachePolicy:NSURLRequestUseProtocolCachePolicy
+      timeoutInterval:60.0];
+
+  NSString* contentType = [self contentType];
+  if ([contentType length] > 0) {
+    [req setValue:contentType forHTTPHeaderField:@"Content-type"];
+  }
+
+  NSData* bodyData = [self bodyData];
+  if ([bodyData length] > 0) {
+    [req setHTTPBody:bodyData];
+  }
+
+  [req setHTTPMethod:[self HTTPMethod]];
+
+  [response_ release];
+  response_ = nil;
+
+  NSData* data = nil;
+  if ([[req URL] isFileURL]) {
+    [[req HTTPBody] writeToURL:[req URL] options:0 error:withError];
+  } else {
+    NSURLResponse* response = nil;
+    data = SendSynchronousNSURLRequest(req, &response, withError);
+    response_ = (NSHTTPURLResponse*)[response retain];
+  }
+  [req release];
+
+  return data;
+}
+
+//=============================================================================
++ (NSData*)formDataForFileContents:(NSData*)contents withName:(NSString*)name {
+  NSMutableData* data = [NSMutableData data];
+  NSString* escaped = PercentEncodeNSString(name);
+  NSString* fmt = @"Content-Disposition: form-data; name=\"%@\"; "
+                   "filename=\"minidump.dmp\"\r\nContent-Type: "
+                   "application/octet-stream\r\n\r\n";
+  NSString* pre = [NSString stringWithFormat:fmt, escaped];
+
+  [data appendData:[pre dataUsingEncoding:NSUTF8StringEncoding]];
+  [data appendData:contents];
+
+  return data;
+}
+
+//=============================================================================
++ (NSData*)formDataForFile:(NSString*)file withName:(NSString*)name {
+  NSData* contents = [NSData dataWithContentsOfFile:file];
+
+  return [HTTPRequest formDataForFileContents:contents withName:name];
+}
+
+//=============================================================================
++ (NSData*)formDataForKey:(NSString*)key value:(NSString*)value {
+  NSString* escaped = PercentEncodeNSString(key);
+  NSString* fmt = @"Content-Disposition: form-data; name=\"%@\"\r\n\r\n%@\r\n";
+  NSString* form = [NSString stringWithFormat:fmt, escaped, value];
+
+  return [form dataUsingEncoding:NSUTF8StringEncoding];
+}
+
+//=============================================================================
++ (void)appendFileToBodyData:(NSMutableData*)data
+                    withName:(NSString*)name
+              withFileOrData:(id)fileOrData {
+  NSData* fileData;
+
+  // The object can be either the path to a file (NSString) or the contents
+  // of the file (NSData).
+  if ([fileOrData isKindOfClass:[NSData class]])
+    fileData = [self formDataForFileContents:fileOrData withName:name];
+  else
+    fileData = [HTTPRequest formDataForFile:fileOrData withName:name];
+
+  [data appendData:fileData];
+}
+
+@end
diff --git a/src/common/mac/HTTPSimplePostRequest.h b/src/common/mac/HTTPSimplePostRequest.h
new file mode 100644
index 0000000..bfabfea
--- /dev/null
+++ b/src/common/mac/HTTPSimplePostRequest.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+#import "HTTPRequest.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Represents a simple (non-multipart) HTTP POST request.
+ */
+@interface HTTPSimplePostRequest : HTTPRequest {
+ @protected
+  NSString* contentType_;
+  NSString* body_;
+}
+
+/**
+ Sets the content type of the POST request.
+ */
+- (void)setContentType:(NSString*)contentType;
+
+/**
+ Sets the contents of the POST request's body.
+ */
+- (void)setBody:(NSString*)body;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/common/mac/HTTPSimplePostRequest.m b/src/common/mac/HTTPSimplePostRequest.m
new file mode 100644
index 0000000..4cb3ef1
--- /dev/null
+++ b/src/common/mac/HTTPSimplePostRequest.m
@@ -0,0 +1,69 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "HTTPSimplePostRequest.h"
+
+@implementation HTTPSimplePostRequest
+
+//=============================================================================
+- (void)dealloc {
+  [contentType_ release];
+  [body_ release];
+
+  [super dealloc];
+}
+
+//=============================================================================
+- (void)setContentType:(NSString*)contentType {
+  contentType_ = [contentType copy];
+}
+
+//=============================================================================
+- (void)setBody:(NSString*)body {
+  body_ = [body copy];
+}
+
+//=============================================================================
+- (NSString*)HTTPMethod {
+  return @"POST";
+}
+
+//=============================================================================
+- (NSString*)contentType {
+  return contentType_;
+}
+
+//=============================================================================
+- (NSData*)bodyData {
+  NSMutableData* data = [NSMutableData data];
+  [data appendData:[body_ dataUsingEncoding:NSUTF8StringEncoding]];
+  return data;
+}
+
+@end
diff --git a/src/common/mac/MachIPC.h b/src/common/mac/MachIPC.h
new file mode 100644
index 0000000..a3fae5a
--- /dev/null
+++ b/src/common/mac/MachIPC.h
@@ -0,0 +1,301 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//  MachIPC.h
+//
+//  Some helpful wrappers for using Mach IPC calls
+
+#ifndef MACH_IPC_H__
+#define MACH_IPC_H__
+
+#import <mach/mach.h>
+#import <mach/message.h>
+#import <servers/bootstrap.h>
+#import <sys/types.h>
+
+#import <CoreServices/CoreServices.h>
+
+//==============================================================================
+// DISCUSSION:
+//
+// The three main classes of interest are
+//
+//  MachMessage:    a wrapper for a mach message of the following form
+//   mach_msg_header_t
+//   mach_msg_body_t
+//   optional descriptors
+//   optional extra message data
+//
+//  MachReceiveMessage and MachSendMessage subclass MachMessage
+//    and are used instead of MachMessage which is an abstract base class
+//
+//  ReceivePort:
+//    Represents a mach port for which we have receive rights
+//
+//  MachPortSender:
+//    Represents a mach port for which we have send rights
+//
+// Here's an example to receive a message on a server port:
+//
+//        // This creates our named server port
+//        ReceivePort receivePort("com.Google.MyService");
+//
+//        MachReceiveMessage message;
+//        kern_return_t result = receivePort.WaitForMessage(&message, 0);
+//
+//        if (result == KERN_SUCCESS && message.GetMessageID() == 57) {
+//          mach_port_t task = message.GetTranslatedPort(0);
+//          mach_port_t thread = message.GetTranslatedPort(1);
+//
+//          char* messageString = message.GetData();
+//
+//          printf("message string = %s\n", messageString);
+//        }
+//
+// Here is an example of using these classes to send a message to this port:
+//
+//    // send to already named port
+//    MachPortSender sender("com.Google.MyService");
+//    MachSendMessage message(57);      // our message ID is 57
+//
+//    // add some ports to be translated for us
+//    message.AddDescriptor(mach_task_self());     // our task
+//    message.AddDescriptor(mach_thread_self());   // this thread
+//
+//    char messageString[] = "Hello server!\n";
+//    message.SetData(messageString, strlen(messageString)+1);
+//
+//    kern_return_t result = sender.SendMessage(message, 1000); // timeout 1000ms
+//
+
+namespace google_breakpad {
+#define PRINT_MACH_RESULT(result_, message_) \
+  printf(message_" %s (%d)\n", mach_error_string(result_), result_ );
+
+//==============================================================================
+// A wrapper class for mach_msg_port_descriptor_t (with same memory layout)
+// with convenient constructors and accessors
+class MachMsgPortDescriptor : public mach_msg_port_descriptor_t {
+ public:
+  // General-purpose constructor
+  MachMsgPortDescriptor(mach_port_t in_name,
+                        mach_msg_type_name_t in_disposition) {
+    name = in_name;
+    pad1 = 0;
+    pad2 = 0;
+    disposition = in_disposition;
+    type = MACH_MSG_PORT_DESCRIPTOR;
+  }
+
+  // For passing send rights to a port
+  MachMsgPortDescriptor(mach_port_t in_name) {
+    name = in_name;
+    pad1 = 0;
+    pad2 = 0;
+    disposition = MACH_MSG_TYPE_COPY_SEND;
+    type = MACH_MSG_PORT_DESCRIPTOR;
+  }
+
+  // Copy constructor
+  MachMsgPortDescriptor(const MachMsgPortDescriptor& desc) {
+    name = desc.name;
+    pad1 = desc.pad1;
+    pad2 = desc.pad2;
+    disposition = desc.disposition;
+    type = desc.type;
+  }
+
+  mach_port_t GetMachPort() const {
+    return name;
+  }
+
+  mach_msg_type_name_t GetDisposition() const {
+    return disposition;
+  }
+
+  // For convenience
+  operator mach_port_t() const {
+    return GetMachPort();
+  }
+};
+
+//==============================================================================
+// MachMessage: a wrapper for a mach message
+//  (mach_msg_header_t, mach_msg_body_t, extra data)
+//
+//  This considerably simplifies the construction of a message for sending
+//  and the getting at relevant data and descriptors for the receiver.
+//
+//  Currently the combined size of the descriptors plus data must be
+//  less than 1024.  But as a benefit no memory allocation is necessary.
+//
+// TODO: could consider adding malloc() support for very large messages
+//
+//  A MachMessage object is used by ReceivePort::WaitForMessage
+//  and MachPortSender::SendMessage
+//
+class MachMessage {
+ public:
+
+  // The receiver of the message can retrieve the raw data this way
+  uint8_t* GetData() {
+    return GetDataLength() > 0 ? GetDataPacket()->data : NULL;
+  }
+
+  uint32_t GetDataLength() {
+    return EndianU32_LtoN(GetDataPacket()->data_length);
+  }
+
+  // The message ID may be used as a code identifying the type of message
+  void SetMessageID(int32_t message_id) {
+    GetDataPacket()->id = EndianU32_NtoL(message_id);
+  }
+
+  int32_t GetMessageID() { return EndianU32_LtoN(GetDataPacket()->id); }
+
+  // Adds a descriptor (typically a mach port) to be translated
+  // returns true if successful, otherwise not enough space
+  bool AddDescriptor(const MachMsgPortDescriptor& desc);
+
+  int GetDescriptorCount() const { return body.msgh_descriptor_count; }
+  MachMsgPortDescriptor* GetDescriptor(int n);
+
+  // Convenience method which gets the mach port described by the descriptor
+  mach_port_t GetTranslatedPort(int n);
+
+  // A simple message is one with no descriptors
+  bool IsSimpleMessage() const { return GetDescriptorCount() == 0; }
+
+  // Sets raw data for the message (returns false if not enough space)
+  bool SetData(void* data, int32_t data_length);
+
+ protected:
+  // Consider this an abstract base class - must create an actual instance
+  // of MachReceiveMessage or MachSendMessage
+
+  MachMessage() {
+    memset(this, 0, sizeof(MachMessage));
+  }
+
+  friend class ReceivePort;
+  friend class MachPortSender;
+
+  // Represents raw data in our message
+  struct MessageDataPacket {
+    int32_t      id;          // little-endian
+    int32_t      data_length; // little-endian
+    uint8_t      data[1];     // actual size limited by sizeof(MachMessage)
+  };
+
+  MessageDataPacket* GetDataPacket();
+
+  void SetDescriptorCount(int n);
+  void SetDescriptor(int n, const MachMsgPortDescriptor& desc);
+
+  // Returns total message size setting msgh_size in the header to this value
+  mach_msg_size_t CalculateSize();
+
+  mach_msg_header_t  head;
+  mach_msg_body_t    body;
+  uint8_t            padding[1024]; // descriptors and data may be embedded here
+};
+
+//==============================================================================
+// MachReceiveMessage and MachSendMessage are useful to separate the idea
+// of a mach message being sent and being received, and adds increased type
+// safety:
+//  ReceivePort::WaitForMessage() only accepts a MachReceiveMessage
+//  MachPortSender::SendMessage() only accepts a MachSendMessage
+
+//==============================================================================
+class MachReceiveMessage : public MachMessage {
+ public:
+  MachReceiveMessage() : MachMessage() {}
+};
+
+//==============================================================================
+class MachSendMessage : public MachMessage {
+ public:
+  MachSendMessage(int32_t message_id);
+};
+
+//==============================================================================
+// Represents a mach port for which we have receive rights
+class ReceivePort {
+ public:
+  // Creates a new mach port for receiving messages and registers a name for it
+  explicit ReceivePort(const char* receive_port_name);
+
+  // Given an already existing mach port, use it.  We take ownership of the
+  // port and deallocate it in our destructor.
+  explicit ReceivePort(mach_port_t receive_port);
+
+  // Create a new mach port for receiving messages
+  ReceivePort();
+
+  ~ReceivePort();
+
+  // Waits on the mach port until message received or timeout
+  kern_return_t WaitForMessage(MachReceiveMessage* out_message,
+                               mach_msg_timeout_t timeout);
+
+  // The underlying mach port that we wrap
+  mach_port_t  GetPort() const { return port_; }
+
+ private:
+  ReceivePort(const ReceivePort&);  // disable copy c-tor
+
+  mach_port_t   port_;
+  kern_return_t init_result_;
+};
+
+//==============================================================================
+// Represents a mach port for which we have send rights
+class MachPortSender {
+ public:
+  // get a port with send rights corresponding to a named registered service
+  explicit MachPortSender(const char* receive_port_name);
+
+
+  // Given an already existing mach port, use it.
+  explicit MachPortSender(mach_port_t send_port);
+
+  kern_return_t SendMessage(MachSendMessage& message,
+                            mach_msg_timeout_t timeout);
+
+ private:
+  MachPortSender(const MachPortSender&);  // disable copy c-tor
+
+  mach_port_t   send_port_;
+  kern_return_t init_result_;
+};
+
+}  // namespace google_breakpad
+
+#endif // MACH_IPC_H__
diff --git a/src/common/mac/MachIPC.mm b/src/common/mac/MachIPC.mm
new file mode 100644
index 0000000..b41a825
--- /dev/null
+++ b/src/common/mac/MachIPC.mm
@@ -0,0 +1,306 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//  MachIPC.mm
+//  Wrapper for mach IPC calls
+
+#import <stdio.h>
+#import "MachIPC.h"
+#include "common/mac/bootstrap_compat.h"
+
+namespace google_breakpad {
+//==============================================================================
+MachSendMessage::MachSendMessage(int32_t message_id) : MachMessage() {
+  head.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND, 0);
+
+  // head.msgh_remote_port = ...; // filled out in MachPortSender::SendMessage()
+  head.msgh_local_port = MACH_PORT_NULL;
+  head.msgh_reserved = 0;
+  head.msgh_id = 0;
+
+  SetDescriptorCount(0);  // start out with no descriptors
+
+  SetMessageID(message_id);
+  SetData(NULL, 0);       // client may add data later
+}
+
+//==============================================================================
+// returns true if successful
+bool MachMessage::SetData(void* data,
+                          int32_t data_length) {
+  // first check to make sure we have enough space
+  size_t size = CalculateSize();
+  size_t new_size = size + data_length;
+  
+  if (new_size > sizeof(MachMessage)) {
+    return false;  // not enough space
+  }
+
+  GetDataPacket()->data_length = EndianU32_NtoL(data_length);
+  if (data) memcpy(GetDataPacket()->data, data, data_length);
+
+  CalculateSize();
+
+  return true;
+}
+
+//==============================================================================
+// calculates and returns the total size of the message
+// Currently, the entire message MUST fit inside of the MachMessage
+//    messsage size <= sizeof(MachMessage)
+mach_msg_size_t MachMessage::CalculateSize() {
+  size_t size = sizeof(mach_msg_header_t) + sizeof(mach_msg_body_t);
+  
+  // add space for MessageDataPacket
+  int32_t alignedDataLength = (GetDataLength() + 3) & ~0x3;
+  size += 2*sizeof(int32_t) + alignedDataLength;
+  
+  // add space for descriptors
+  size += GetDescriptorCount() * sizeof(MachMsgPortDescriptor);
+  
+  head.msgh_size = static_cast<mach_msg_size_t>(size);
+  
+  return head.msgh_size;
+}
+
+//==============================================================================
+MachMessage::MessageDataPacket* MachMessage::GetDataPacket() {
+  size_t desc_size = sizeof(MachMsgPortDescriptor)*GetDescriptorCount();
+  MessageDataPacket* packet =
+    reinterpret_cast<MessageDataPacket*>(padding + desc_size);
+
+  return packet;
+}
+
+//==============================================================================
+void MachMessage::SetDescriptor(int n,
+                                const MachMsgPortDescriptor& desc) {
+  MachMsgPortDescriptor* desc_array =
+    reinterpret_cast<MachMsgPortDescriptor*>(padding);
+  desc_array[n] = desc;
+}
+
+//==============================================================================
+// returns true if successful otherwise there was not enough space
+bool MachMessage::AddDescriptor(const MachMsgPortDescriptor& desc) {
+  // first check to make sure we have enough space
+  int size = CalculateSize();
+  size_t new_size = size + sizeof(MachMsgPortDescriptor);
+  
+  if (new_size > sizeof(MachMessage)) {
+    return false;  // not enough space
+  }
+
+  // unfortunately, we need to move the data to allow space for the
+  // new descriptor
+  u_int8_t* p = reinterpret_cast<u_int8_t*>(GetDataPacket());
+  bcopy(p, p+sizeof(MachMsgPortDescriptor), GetDataLength()+2*sizeof(int32_t));
+  
+  SetDescriptor(GetDescriptorCount(), desc);
+  SetDescriptorCount(GetDescriptorCount() + 1);
+
+  CalculateSize();
+  
+  return true;
+}
+
+//==============================================================================
+void MachMessage::SetDescriptorCount(int n) {
+  body.msgh_descriptor_count = n;
+
+  if (n > 0) {
+    head.msgh_bits |= MACH_MSGH_BITS_COMPLEX;
+  } else {
+    head.msgh_bits &= ~MACH_MSGH_BITS_COMPLEX;
+  }
+}
+
+//==============================================================================
+MachMsgPortDescriptor* MachMessage::GetDescriptor(int n) {
+  if (n < GetDescriptorCount()) {
+    MachMsgPortDescriptor* desc =
+      reinterpret_cast<MachMsgPortDescriptor*>(padding);
+    return desc + n;
+  }
+  
+  return nil;
+}
+
+//==============================================================================
+mach_port_t MachMessage::GetTranslatedPort(int n) {
+  if (n < GetDescriptorCount()) {
+    return GetDescriptor(n)->GetMachPort();
+  }
+  return MACH_PORT_NULL;
+}
+
+#pragma mark -
+
+//==============================================================================
+// create a new mach port for receiving messages and register a name for it
+ReceivePort::ReceivePort(const char* receive_port_name) {
+  mach_port_t current_task = mach_task_self();
+
+  init_result_ = mach_port_allocate(current_task,
+                                    MACH_PORT_RIGHT_RECEIVE,
+                                    &port_);
+
+  if (init_result_ != KERN_SUCCESS)
+    return;
+    
+  init_result_ = mach_port_insert_right(current_task,
+                                        port_,
+                                        port_,
+                                        MACH_MSG_TYPE_MAKE_SEND);
+
+  if (init_result_ != KERN_SUCCESS)
+    return;
+
+  mach_port_t task_bootstrap_port = 0;
+  init_result_ = task_get_bootstrap_port(current_task, &task_bootstrap_port);
+
+  if (init_result_ != KERN_SUCCESS)
+    return;
+
+  init_result_ = breakpad::BootstrapRegister(
+      bootstrap_port,
+      const_cast<char*>(receive_port_name),
+      port_);
+}
+
+//==============================================================================
+// create a new mach port for receiving messages
+ReceivePort::ReceivePort() {
+  mach_port_t current_task = mach_task_self();
+
+  init_result_ = mach_port_allocate(current_task,
+                                    MACH_PORT_RIGHT_RECEIVE,
+                                    &port_);
+
+  if (init_result_ != KERN_SUCCESS)
+    return;
+
+  init_result_ =   mach_port_insert_right(current_task,
+                                          port_,
+                                          port_,
+                                          MACH_MSG_TYPE_MAKE_SEND);
+}
+
+//==============================================================================
+// Given an already existing mach port, use it.  We take ownership of the
+// port and deallocate it in our destructor.
+ReceivePort::ReceivePort(mach_port_t receive_port)
+  : port_(receive_port),
+    init_result_(KERN_SUCCESS) {
+}
+
+//==============================================================================
+ReceivePort::~ReceivePort() {
+  if (init_result_ == KERN_SUCCESS)
+    mach_port_deallocate(mach_task_self(), port_);
+}
+
+//==============================================================================
+kern_return_t ReceivePort::WaitForMessage(MachReceiveMessage* out_message,
+                                          mach_msg_timeout_t timeout) {
+  if (!out_message) {
+    return KERN_INVALID_ARGUMENT;
+  }
+
+  // return any error condition encountered in constructor
+  if (init_result_ != KERN_SUCCESS)
+    return init_result_;
+  
+  out_message->head.msgh_bits = 0;
+  out_message->head.msgh_local_port = port_;
+  out_message->head.msgh_remote_port = MACH_PORT_NULL;
+  out_message->head.msgh_reserved = 0;
+  out_message->head.msgh_id = 0;
+
+  mach_msg_option_t options = MACH_RCV_MSG;
+  if (timeout != MACH_MSG_TIMEOUT_NONE)
+    options |= MACH_RCV_TIMEOUT;
+  kern_return_t result = mach_msg(&out_message->head,
+                                  options,
+                                  0,
+                                  sizeof(MachMessage),
+                                  port_,
+                                  timeout,              // timeout in ms
+                                  MACH_PORT_NULL);
+
+  return result;
+}
+
+#pragma mark -
+
+//==============================================================================
+// get a port with send rights corresponding to a named registered service
+MachPortSender::MachPortSender(const char* receive_port_name) {
+  mach_port_t task_bootstrap_port = 0;
+  init_result_ = task_get_bootstrap_port(mach_task_self(), 
+                                         &task_bootstrap_port);
+  
+  if (init_result_ != KERN_SUCCESS)
+    return;
+
+  init_result_ = bootstrap_look_up(task_bootstrap_port,
+                    const_cast<char*>(receive_port_name),
+                    &send_port_);
+}
+
+//==============================================================================
+MachPortSender::MachPortSender(mach_port_t send_port) 
+  : send_port_(send_port),
+    init_result_(KERN_SUCCESS) {
+}
+
+//==============================================================================
+kern_return_t MachPortSender::SendMessage(MachSendMessage& message,
+                                          mach_msg_timeout_t timeout) {
+  if (message.head.msgh_size == 0) {
+    return KERN_INVALID_VALUE;    // just for safety -- never should occur
+  };
+  
+  if (init_result_ != KERN_SUCCESS)
+    return init_result_;
+  
+  message.head.msgh_remote_port = send_port_;
+
+  kern_return_t result = mach_msg(&message.head,
+                                  MACH_SEND_MSG | MACH_SEND_TIMEOUT,
+                                  message.head.msgh_size,
+                                  0,
+                                  MACH_PORT_NULL,
+                                  timeout,              // timeout in ms
+                                  MACH_PORT_NULL);
+
+  return result;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/mac/SymbolCollectorClient.h b/src/common/mac/SymbolCollectorClient.h
new file mode 100644
index 0000000..9e955c8
--- /dev/null
+++ b/src/common/mac/SymbolCollectorClient.h
@@ -0,0 +1,103 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Represents a response from a sym-upload-v2 server to a createUploadURLOnServer
+ call.
+ */
+@interface UploadURLResponse : NSObject {
+ @protected
+  NSString* uploadURL_;
+  NSString* uploadKey_;
+}
+
+- (id)initWithUploadURL:(NSString*)uploadURL withUploadKey:(NSString*)uploadKey;
+
+- (NSString*)uploadURL;
+- (NSString*)uploadKey;
+@end
+
+/**
+ Possible return statuses from a sym-upload-v2 server to a
+ completeUploadOnServer call.
+ */
+typedef NS_ENUM(NSInteger, CompleteUploadResult) {
+  CompleteUploadResultOk,
+  CompleteUploadResultDuplicateData,
+  CompleteUploadResultError
+};
+
+/**
+ Possible return statuses from a sym-upload-v2 server to a
+ checkSymbolStatusOnServer call.
+ */
+typedef NS_ENUM(NSInteger, SymbolStatus) {
+  SymbolStatusFound,
+  SymbolStatusMissing,
+  SymbolStatusUnknown
+};
+
+/**
+ Interface to help a client interact with a sym-upload-v2 server, over HTTP.
+ For details of the API and protocol, see :/docs/sym_upload_v2_protocol.md.
+ */
+@interface SymbolCollectorClient : NSObject
+;
+
+/**
+ Calls the /v1/symbols/{debug_file}/{debug_id}:checkStatus API on the server.
+ */
++ (SymbolStatus)checkSymbolStatusOnServer:(NSString*)APIURL
+                               withAPIKey:(NSString*)APIKey
+                            withDebugFile:(NSString*)debugFile
+                              withDebugID:(NSString*)debugID;
+
+/**
+ Calls the /v1/uploads:create API on the server.
+ */
++ (UploadURLResponse*)createUploadURLOnServer:(NSString*)APIURL
+                                   withAPIKey:(NSString*)APIKey;
+
+/**
+ Calls the /v1/uploads/{key}:complete API on the server.
+ */
++ (CompleteUploadResult)completeUploadOnServer:(NSString*)APIURL
+                                    withAPIKey:(NSString*)APIKey
+                                 withUploadKey:(NSString*)uploadKey
+                                 withDebugFile:(NSString*)debugFile
+                                   withDebugID:(NSString*)debugID
+                                      withType:(NSString*)type;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/common/mac/SymbolCollectorClient.m b/src/common/mac/SymbolCollectorClient.m
new file mode 100644
index 0000000..5926d2a
--- /dev/null
+++ b/src/common/mac/SymbolCollectorClient.m
@@ -0,0 +1,268 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import "SymbolCollectorClient.h"
+
+#import "HTTPGetRequest.h"
+#import "HTTPSimplePostRequest.h"
+
+@implementation UploadURLResponse
+
+//=============================================================================
+- (id)initWithUploadURL:(NSString*)uploadURL
+          withUploadKey:(NSString*)uploadKey {
+  if (self = [super init]) {
+    uploadURL_ = [uploadURL copy];
+    uploadKey_ = [uploadKey copy];
+  }
+  return self;
+}
+
+//=============================================================================
+- (void)dealloc {
+  [uploadURL_ release];
+  [uploadKey_ release];
+
+  [super dealloc];
+}
+
+//=============================================================================
+- (NSString*)uploadURL {
+  return uploadURL_;
+}
+
+//=============================================================================
+- (NSString*)uploadKey {
+  return uploadKey_;
+}
+@end
+
+@implementation SymbolCollectorClient
+
+//=============================================================================
++ (SymbolStatus)checkSymbolStatusOnServer:(NSString*)APIURL
+                               withAPIKey:(NSString*)APIKey
+                            withDebugFile:(NSString*)debugFile
+                              withDebugID:(NSString*)debugID {
+  // Note that forward-slash is listed as a character to escape here, for
+  // completeness, however it is illegal in a debugFile input.
+  NSMutableCharacterSet* allowedDebugFileCharacters = [NSMutableCharacterSet
+      characterSetWithCharactersInString:@" \"\\/#%:?@|^`{}<>[]&=;"];
+  [allowedDebugFileCharacters
+      formUnionWithCharacterSet:[NSCharacterSet controlCharacterSet]];
+  [allowedDebugFileCharacters invert];
+  NSString* escapedDebugFile =
+      [debugFile stringByAddingPercentEncodingWithAllowedCharacters:
+                     allowedDebugFileCharacters];
+
+  NSURL* URL = [NSURL
+      URLWithString:[NSString
+                        stringWithFormat:@"%@/v1/symbols/%@/%@:checkStatus"
+                                         @"?key=%@",
+                                         APIURL, escapedDebugFile, debugID,
+                                         APIKey]];
+
+  HTTPGetRequest* getRequest = [[HTTPGetRequest alloc] initWithURL:URL];
+  NSError* error = nil;
+  NSData* data = [getRequest send:&error];
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  int responseCode = [[getRequest response] statusCode];
+  [getRequest release];
+
+  if (error || responseCode != 200) {
+    fprintf(stdout, "Failed to check symbol status.\n");
+    fprintf(stdout, "Response code: %d\n", responseCode);
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return SymbolStatusUnknown;
+  }
+
+  error = nil;
+  NSRegularExpression* statusRegex = [NSRegularExpression
+      regularExpressionWithPattern:@"\"status\": \"([^\"]+)\""
+                           options:0
+                             error:&error];
+  NSArray* matches =
+      [statusRegex matchesInString:result
+                           options:0
+                             range:NSMakeRange(0, [result length])];
+  if ([matches count] != 1) {
+    fprintf(stdout, "Failed to parse check symbol status response.");
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return SymbolStatusUnknown;
+  }
+
+  NSString* status = [result substringWithRange:[matches[0] rangeAtIndex:1]];
+  [result release];
+
+  return [status isEqualToString:@"FOUND"] ? SymbolStatusFound
+                                           : SymbolStatusMissing;
+}
+
+//=============================================================================
++ (UploadURLResponse*)createUploadURLOnServer:(NSString*)APIURL
+                                   withAPIKey:(NSString*)APIKey {
+  NSURL* URL = [NSURL
+      URLWithString:[NSString stringWithFormat:@"%@/v1/uploads:create?key=%@",
+                                               APIURL, APIKey]];
+
+  HTTPSimplePostRequest* postRequest =
+      [[HTTPSimplePostRequest alloc] initWithURL:URL];
+  NSError* error = nil;
+  NSData* data = [postRequest send:&error];
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  int responseCode = [[postRequest response] statusCode];
+  [postRequest release];
+
+  if (error || responseCode != 200) {
+    fprintf(stdout, "Failed to create upload URL.\n");
+    fprintf(stdout, "Response code: %d\n", responseCode);
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return nil;
+  }
+
+  // Note camel-case rather than underscores.
+  NSRegularExpression* uploadURLRegex = [NSRegularExpression
+      regularExpressionWithPattern:@"\"uploadUrl\": \"([^\"]+)\""
+                           options:0
+                             error:&error];
+  NSRegularExpression* uploadKeyRegex = [NSRegularExpression
+      regularExpressionWithPattern:@"\"uploadKey\": \"([^\"]+)\""
+                           options:0
+                             error:&error];
+
+  NSArray* uploadURLMatches =
+      [uploadURLRegex matchesInString:result
+                              options:0
+                                range:NSMakeRange(0, [result length])];
+  NSArray* uploadKeyMatches =
+      [uploadKeyRegex matchesInString:result
+                              options:0
+                                range:NSMakeRange(0, [result length])];
+  if ([uploadURLMatches count] != 1 || [uploadKeyMatches count] != 1) {
+    fprintf(stdout, "Failed to parse create url response.");
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return nil;
+  }
+  NSString* uploadURL =
+      [result substringWithRange:[uploadURLMatches[0] rangeAtIndex:1]];
+  NSString* uploadKey =
+      [result substringWithRange:[uploadKeyMatches[0] rangeAtIndex:1]];
+
+  return [[UploadURLResponse alloc] initWithUploadURL:uploadURL
+                                        withUploadKey:uploadKey];
+}
+
+//=============================================================================
++ (CompleteUploadResult)completeUploadOnServer:(NSString*)APIURL
+                                    withAPIKey:(NSString*)APIKey
+                                 withUploadKey:(NSString*)uploadKey
+                                 withDebugFile:(NSString*)debugFile
+                                   withDebugID:(NSString*)debugID
+                                      withType:(NSString*)type {
+  NSURL* URL = [NSURL
+      URLWithString:[NSString
+                        stringWithFormat:@"%@/v1/uploads/%@:complete?key=%@",
+                                         APIURL, uploadKey, APIKey]];
+
+  NSDictionary* symbolIdDictionary =
+      [NSDictionary dictionaryWithObjectsAndKeys:debugFile, @"debug_file",
+                                                 debugID, @"debug_id", nil];
+  NSDictionary* jsonDictionary = [NSDictionary
+      dictionaryWithObjectsAndKeys:symbolIdDictionary, @"symbol_id", type,
+                                   @"symbol_upload_type", nil];
+  NSError* error = nil;
+  NSData* jsonData =
+      [NSJSONSerialization dataWithJSONObject:jsonDictionary
+                                      options:NSJSONWritingPrettyPrinted
+                                        error:&error];
+  if (jsonData == nil) {
+    fprintf(stdout, "Error: %s\n", [[error localizedDescription] UTF8String]);
+    fprintf(stdout,
+            "Failed to complete upload. Could not write JSON payload.\n");
+    return CompleteUploadResultError;
+  }
+
+  NSString* body = [[NSString alloc] initWithData:jsonData
+                                         encoding:NSUTF8StringEncoding];
+  HTTPSimplePostRequest* postRequest =
+      [[HTTPSimplePostRequest alloc] initWithURL:URL];
+  [postRequest setBody:body];
+  [postRequest setContentType:@"application/json"];
+
+  NSData* data = [postRequest send:&error];
+  if (data == nil) {
+    fprintf(stdout, "Error: %s\n", [[error localizedDescription] UTF8String]);
+    fprintf(stdout, "Failed to complete upload URL.\n");
+    return CompleteUploadResultError;
+  }
+
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  int responseCode = [[postRequest response] statusCode];
+  [postRequest release];
+  if (responseCode != 200) {
+    fprintf(stdout, "Failed to complete upload URL.\n");
+    fprintf(stdout, "Response code: %d\n", responseCode);
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return CompleteUploadResultError;
+  }
+
+  // Note camel-case rather than underscores.
+  NSRegularExpression* completeResultRegex = [NSRegularExpression
+      regularExpressionWithPattern:@"\"result\": \"([^\"]+)\""
+                           options:0
+                             error:&error];
+
+  NSArray* completeResultMatches =
+      [completeResultRegex matchesInString:result
+                                   options:0
+                                     range:NSMakeRange(0, [result length])];
+
+  if ([completeResultMatches count] != 1) {
+    fprintf(stdout, "Failed to parse complete upload response.");
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return CompleteUploadResultError;
+  }
+  NSString* completeResult =
+      [result substringWithRange:[completeResultMatches[0] rangeAtIndex:1]];
+  [result release];
+
+  return ([completeResult isEqualToString:@"DUPLICATE_DATA"])
+             ? CompleteUploadResultDuplicateData
+             : CompleteUploadResultOk;
+}
+@end
diff --git a/src/common/mac/arch_utilities.cc b/src/common/mac/arch_utilities.cc
new file mode 100644
index 0000000..c0e4bac
--- /dev/null
+++ b/src/common/mac/arch_utilities.cc
@@ -0,0 +1,264 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/mac/arch_utilities.h"
+
+#include <mach-o/arch.h>
+#include <mach-o/fat.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifndef CPU_SUBTYPE_ARM_V7S
+#define CPU_SUBTYPE_ARM_V7S (static_cast<cpu_subtype_t>(11))
+#endif  // CPU_SUBTYPE_ARM_V7S
+
+#ifndef CPU_TYPE_ARM64
+#define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64)
+#endif  // CPU_TYPE_ARM64
+
+#ifndef CPU_SUBTYPE_ARM64_ALL
+#define CPU_SUBTYPE_ARM64_ALL (static_cast<cpu_subtype_t>(0))
+#endif  // CPU_SUBTYPE_ARM64_ALL
+
+#ifndef CPU_SUBTYPE_ARM64_E
+#define CPU_SUBTYPE_ARM64_E (static_cast<cpu_subtype_t>(2))
+#endif  // CPU_SUBTYPE_ARM64_E
+
+namespace {
+
+const NXArchInfo* ArchInfo_arm64(cpu_subtype_t cpu_subtype) {
+  const char* name = NULL;
+  switch (cpu_subtype) {
+    case CPU_SUBTYPE_ARM64_ALL:
+      name = "arm64";
+      break;
+    case CPU_SUBTYPE_ARM64_E:
+      name = "arm64e";
+      break;
+    default:
+      return NULL;
+  }
+
+  NXArchInfo* arm64 = new NXArchInfo;
+  *arm64 = *NXGetArchInfoFromCpuType(CPU_TYPE_ARM,
+                                     CPU_SUBTYPE_ARM_V7);
+  arm64->name = name;
+  arm64->cputype = CPU_TYPE_ARM64;
+  arm64->cpusubtype = cpu_subtype;
+  arm64->description = "arm 64";
+  return arm64;
+}
+
+const NXArchInfo* ArchInfo_armv7s() {
+  NXArchInfo* armv7s = new NXArchInfo;
+  *armv7s = *NXGetArchInfoFromCpuType(CPU_TYPE_ARM,
+                                      CPU_SUBTYPE_ARM_V7);
+  armv7s->name = "armv7s";
+  armv7s->cpusubtype = CPU_SUBTYPE_ARM_V7S;
+  armv7s->description = "arm v7s";
+  return armv7s;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+const NXArchInfo* BreakpadGetArchInfoFromName(const char* arch_name) {
+  // TODO: Remove this when the OS knows about arm64.
+  if (!strcmp("arm64", arch_name))
+    return BreakpadGetArchInfoFromCpuType(CPU_TYPE_ARM64,
+                                          CPU_SUBTYPE_ARM64_ALL);
+
+  if (!strcmp("arm64e", arch_name))
+    return BreakpadGetArchInfoFromCpuType(CPU_TYPE_ARM64,
+                                          CPU_SUBTYPE_ARM64_E);
+
+  // TODO: Remove this when the OS knows about armv7s.
+  if (!strcmp("armv7s", arch_name))
+    return BreakpadGetArchInfoFromCpuType(CPU_TYPE_ARM, CPU_SUBTYPE_ARM_V7S);
+
+  return NXGetArchInfoFromName(arch_name);
+}
+
+const NXArchInfo* BreakpadGetArchInfoFromCpuType(cpu_type_t cpu_type,
+                                                 cpu_subtype_t cpu_subtype) {
+  // TODO: Remove this when the OS knows about arm64.
+  if (cpu_type == CPU_TYPE_ARM64 && cpu_subtype == CPU_SUBTYPE_ARM64_ALL) {
+    static const NXArchInfo* arm64 = ArchInfo_arm64(cpu_subtype);
+    return arm64;
+  }
+
+  if (cpu_type == CPU_TYPE_ARM64 && cpu_subtype == CPU_SUBTYPE_ARM64_E) {
+    static const NXArchInfo* arm64e = ArchInfo_arm64(cpu_subtype);
+    return arm64e;
+  }
+
+  // TODO: Remove this when the OS knows about armv7s.
+  if (cpu_type == CPU_TYPE_ARM && cpu_subtype == CPU_SUBTYPE_ARM_V7S) {
+    static const NXArchInfo* armv7s = ArchInfo_armv7s();
+    return armv7s;
+  }
+
+  return NXGetArchInfoFromCpuType(cpu_type, cpu_subtype);
+}
+
+}  // namespace google_breakpad
+
+#ifndef __APPLE__
+namespace {
+
+enum Architecture {
+  kArch_i386 = 0,
+  kArch_x86_64,
+  kArch_x86_64h,
+  kArch_arm,
+  kArch_arm64,
+  kArch_arm64e,
+  kArch_ppc,
+  // This must be last.
+  kNumArchitectures
+};
+
+// enum Architecture above and kKnownArchitectures below
+// must be kept in sync.
+const NXArchInfo kKnownArchitectures[] = {
+  {
+    "i386",
+    CPU_TYPE_I386,
+    CPU_SUBTYPE_I386_ALL,
+    NX_LittleEndian,
+    "Intel 80x86"
+  },
+  {
+    "x86_64",
+    CPU_TYPE_X86_64,
+    CPU_SUBTYPE_X86_64_ALL,
+    NX_LittleEndian,
+    "Intel x86-64"
+  },
+  {
+    "x86_64h",
+    CPU_TYPE_X86_64,
+    CPU_SUBTYPE_X86_64_H,
+    NX_LittleEndian,
+    "Intel x86-64h Haswell"
+  },
+  {
+    "arm",
+    CPU_TYPE_ARM,
+    CPU_SUBTYPE_ARM_ALL,
+    NX_LittleEndian,
+    "ARM"
+  },
+  {
+    "arm64",
+    CPU_TYPE_ARM64,
+    CPU_SUBTYPE_ARM64_ALL,
+    NX_LittleEndian,
+    "ARM64"
+  },
+  {
+    "arm64e",
+    CPU_TYPE_ARM64,
+    CPU_SUBTYPE_ARM64_E,
+    NX_LittleEndian,
+    "ARM64e"
+  },
+  {
+    "ppc",
+    CPU_TYPE_POWERPC,
+    CPU_SUBTYPE_POWERPC_ALL,
+    NX_BigEndian,
+    "PowerPC"
+  }
+};
+
+}  // namespace
+
+const NXArchInfo *NXGetLocalArchInfo(void) {
+  Architecture arch;
+#if defined(__i386__)
+  arch = kArch_i386;
+#elif defined(__x86_64__)
+  arch = kArch_x86_64;
+#elif defined(__arm64)
+  arch = kArch_arm64;
+#elif defined(__arm__)
+  arch = kArch_arm;
+#elif defined(__powerpc__)
+  arch = kArch_ppc;
+#else
+  #error "Unsupported CPU architecture"
+#endif
+  return &kKnownArchitectures[arch];
+}
+
+const NXArchInfo *NXGetArchInfoFromName(const char *name) {
+  for (int arch = 0; arch < kNumArchitectures; ++arch) {
+    if (!strcmp(name, kKnownArchitectures[arch].name)) {
+      return &kKnownArchitectures[arch];
+    }
+  }
+  return NULL;
+}
+
+const NXArchInfo *NXGetArchInfoFromCpuType(cpu_type_t cputype,
+                                           cpu_subtype_t cpusubtype) {
+  const NXArchInfo *candidate = NULL;
+  for (int arch = 0; arch < kNumArchitectures; ++arch) {
+    if (kKnownArchitectures[arch].cputype == cputype) {
+      if (kKnownArchitectures[arch].cpusubtype == cpusubtype) {
+        return &kKnownArchitectures[arch];
+      }
+      if (!candidate) {
+        candidate = &kKnownArchitectures[arch];
+      }
+    }
+  }
+  return candidate;
+}
+
+struct fat_arch *NXFindBestFatArch(cpu_type_t cputype,
+                                   cpu_subtype_t cpusubtype,
+                                   struct fat_arch *fat_archs,
+                                   uint32_t nfat_archs) {
+  struct fat_arch *candidate = NULL;
+  for (uint32_t f = 0; f < nfat_archs; ++f) {
+    if (fat_archs[f].cputype == cputype) {
+      if (fat_archs[f].cpusubtype == cpusubtype) {
+        return &fat_archs[f];
+      }
+      if (!candidate) {
+        candidate = &fat_archs[f];
+      }
+    }
+  }
+  return candidate;
+}
+#endif  // !__APPLE__
diff --git a/src/common/mac/arch_utilities.h b/src/common/mac/arch_utilities.h
new file mode 100644
index 0000000..397c1f5
--- /dev/null
+++ b/src/common/mac/arch_utilities.h
@@ -0,0 +1,47 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// arch_utilities.h: Utilities for architecture introspection for Mac platform.
+
+#ifndef COMMON_MAC_ARCH_UTILITIES_H__
+#define COMMON_MAC_ARCH_UTILITIES_H__
+
+#include <mach-o/arch.h>
+
+namespace google_breakpad {
+
+// Custom implementation of |NXGetArchInfoFromName| and
+// |NXGetArchInfoFromCpuType| that handle newer CPU on older OSes.
+const NXArchInfo* BreakpadGetArchInfoFromName(const char* arch_name);
+const NXArchInfo* BreakpadGetArchInfoFromCpuType(cpu_type_t cpu_type,
+                                                 cpu_subtype_t cpu_subtype);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_MAC_ARCH_UTILITIES_H__
diff --git a/src/common/mac/bootstrap_compat.cc b/src/common/mac/bootstrap_compat.cc
new file mode 100644
index 0000000..d875d95
--- /dev/null
+++ b/src/common/mac/bootstrap_compat.cc
@@ -0,0 +1,42 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/mac/bootstrap_compat.h"
+
+namespace breakpad {
+
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+kern_return_t BootstrapRegister(mach_port_t bp,
+                                name_t service_name,
+                                mach_port_t sp) {
+  return bootstrap_register(bp, service_name, sp);
+}
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
+
+}  // namesapce breakpad
diff --git a/src/common/mac/bootstrap_compat.h b/src/common/mac/bootstrap_compat.h
new file mode 100644
index 0000000..8ca7357
--- /dev/null
+++ b/src/common/mac/bootstrap_compat.h
@@ -0,0 +1,54 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_MAC_BOOTSTRAP_COMPAT_H_
+#define COMMON_MAC_BOOTSTRAP_COMPAT_H_
+
+#include <servers/bootstrap.h>
+
+namespace breakpad {
+
+// Wrapper for bootstrap_register to avoid deprecation warnings.
+//
+// In 10.6, it's possible to call bootstrap_check_in as the one-stop-shop for
+// handling what bootstrap_register is used for. In 10.5, bootstrap_check_in
+// can't check in a service whose name has not yet been registered, despite
+// bootstrap_register being marked as deprecated in that OS release. Breakpad
+// needs to register new service names, and in 10.5, calling
+// bootstrap_register is the only way to achieve that. Attempts to call
+// bootstrap_check_in for a new service name on 10.5 will result in
+// BOOTSTRAP_UNKNOWN_SERVICE being returned rather than registration of the
+// new service name.
+kern_return_t BootstrapRegister(mach_port_t bp,
+                                name_t service_name,
+                                mach_port_t sp);
+
+}  // namespace breakpad
+
+#endif  // COMMON_MAC_BOOTSTRAP_COMPAT_H_
diff --git a/src/common/mac/byteswap.h b/src/common/mac/byteswap.h
new file mode 100644
index 0000000..b7bbc0b
--- /dev/null
+++ b/src/common/mac/byteswap.h
@@ -0,0 +1,73 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jim@mozilla.com> <jimb@red-bean.com>
+
+// byteswap.h: Overloaded functions for conveniently byteswapping values.
+
+#ifndef COMMON_MAC_BYTESWAP_H_
+#define COMMON_MAC_BYTESWAP_H_
+
+#ifdef __APPLE__
+#include <libkern/OSByteOrder.h>
+
+static inline uint16_t ByteSwap(uint16_t v) { return OSSwapInt16(v); }
+static inline uint32_t ByteSwap(uint32_t v) { return OSSwapInt32(v); }
+static inline uint64_t ByteSwap(uint64_t v) { return OSSwapInt64(v); }
+static inline int16_t  ByteSwap(int16_t  v) { return OSSwapInt16(v); }
+static inline int32_t  ByteSwap(int32_t  v) { return OSSwapInt32(v); }
+static inline int64_t  ByteSwap(int64_t  v) { return OSSwapInt64(v); }
+
+#elif defined(__linux__)
+// For NXByteOrder
+#include <architecture/byte_order.h>
+#include <stdint.h>
+#include <endian.h>
+#include_next <byteswap.h>
+
+static inline uint16_t ByteSwap(uint16_t v) { return bswap_16(v); }
+static inline uint32_t ByteSwap(uint32_t v) { return bswap_32(v); }
+static inline uint64_t ByteSwap(uint64_t v) { return bswap_64(v); }
+static inline int16_t  ByteSwap(int16_t  v) { return bswap_16(v); }
+static inline int32_t  ByteSwap(int32_t  v) { return bswap_32(v); }
+static inline int64_t  ByteSwap(int64_t  v) { return bswap_64(v); }
+
+static inline NXByteOrder NXHostByteOrder() {
+#ifdef __LITTLE_ENDIAN
+  return NX_LittleEndian;
+#else
+  return NX_BigEndian;
+#endif
+}
+
+#endif  // __APPLE__
+
+#endif  // COMMON_MAC_BYTESWAP_H_
diff --git a/src/common/mac/dump_syms.cc b/src/common/mac/dump_syms.cc
new file mode 100644
index 0000000..672323c
--- /dev/null
+++ b/src/common/mac/dump_syms.cc
@@ -0,0 +1,673 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_syms.cc: Create a symbol file for use with minidumps
+
+#include "common/mac/dump_syms.h"
+
+#include <assert.h>
+#include <dirent.h>
+#include <errno.h>
+#include <mach-o/arch.h>
+#include <mach-o/fat.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include "common/dwarf/bytereader-inl.h"
+#include "common/dwarf/dwarf2reader.h"
+#include "common/dwarf_cfi_to_module.h"
+#include "common/dwarf_cu_to_module.h"
+#include "common/dwarf_line_to_module.h"
+#include "common/dwarf_range_list_handler.h"
+#include "common/mac/file_id.h"
+#include "common/mac/arch_utilities.h"
+#include "common/mac/macho_reader.h"
+#include "common/module.h"
+#include "common/path_helper.h"
+#include "common/scoped_ptr.h"
+#include "common/stabs_reader.h"
+#include "common/stabs_to_module.h"
+#include "common/symbol_data.h"
+
+#ifndef CPU_TYPE_ARM
+#define CPU_TYPE_ARM (static_cast<cpu_type_t>(12))
+#endif //  CPU_TYPE_ARM
+
+#ifndef CPU_TYPE_ARM64
+#define CPU_TYPE_ARM64 (static_cast<cpu_type_t>(16777228))
+#endif  // CPU_TYPE_ARM64
+
+using dwarf2reader::ByteReader;
+using google_breakpad::DwarfCUToModule;
+using google_breakpad::DwarfLineToModule;
+using google_breakpad::DwarfRangeListHandler;
+using google_breakpad::FileID;
+using google_breakpad::mach_o::FatReader;
+using google_breakpad::mach_o::Section;
+using google_breakpad::mach_o::Segment;
+using google_breakpad::Module;
+using google_breakpad::StabsReader;
+using google_breakpad::StabsToModule;
+using google_breakpad::scoped_ptr;
+using std::make_pair;
+using std::pair;
+using std::string;
+using std::vector;
+
+namespace {
+// Return a vector<string> with absolute paths to all the entries
+// in directory (excluding . and ..).
+vector<string> list_directory(const string& directory) {
+  vector<string> entries;
+  DIR* dir = opendir(directory.c_str());
+  if (!dir) {
+    return entries;
+  }
+
+  string path = directory;
+  if (path[path.length() - 1] != '/') {
+    path += '/';
+  }
+
+  struct dirent* entry = NULL;
+  while ((entry = readdir(dir))) {
+    if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) {
+      entries.push_back(path + entry->d_name);
+    }
+  }
+
+  closedir(dir);
+  return entries;
+}
+}
+
+namespace google_breakpad {
+
+bool DumpSymbols::Read(const string& filename) {
+  struct stat st;
+  if (stat(filename.c_str(), &st) == -1) {
+    fprintf(stderr, "Could not access object file %s: %s\n",
+            filename.c_str(), strerror(errno));
+    return false;
+  }
+
+  input_pathname_ = filename;
+
+  // Does this filename refer to a dSYM bundle?
+  string contents_path = input_pathname_ + "/Contents/Resources/DWARF";
+  if (S_ISDIR(st.st_mode) &&
+      access(contents_path.c_str(), F_OK) == 0) {
+    // If there's one file under Contents/Resources/DWARF then use that,
+    // otherwise bail out.
+    const vector<string> entries = list_directory(contents_path);
+    if (entries.size() == 0) {
+      fprintf(stderr, "Unable to find DWARF-bearing file in bundle: %s\n",
+              input_pathname_.c_str());
+      return false;
+    }
+    if (entries.size() > 1) {
+      fprintf(stderr, "Too many DWARF files in bundle: %s\n",
+              input_pathname_.c_str());
+      return false;
+    }
+
+    object_filename_ = entries[0];
+  } else {
+    object_filename_ = input_pathname_;
+  }
+
+  // Read the file's contents into memory.
+  bool read_ok = true;
+  string error;
+  if (stat(object_filename_.c_str(), &st) != -1) {
+    FILE* f = fopen(object_filename_.c_str(), "rb");
+    if (f) {
+      contents_.reset(new uint8_t[st.st_size]);
+      off_t total = 0;
+      while (total < st.st_size && !feof(f)) {
+        size_t read = fread(&contents_[0] + total, 1, st.st_size - total, f);
+        if (read == 0) {
+          if (ferror(f)) {
+            read_ok = false;
+            error = strerror(errno);
+          }
+          break;
+        }
+        total += read;
+      }
+      fclose(f);
+    } else {
+      error = strerror(errno);
+    }
+  }
+
+  if (!read_ok) {
+    fprintf(stderr, "Error reading object file: %s: %s\n",
+            object_filename_.c_str(),
+            error.c_str());
+    return false;
+  }
+
+  // Get the list of object files present in the file.
+  FatReader::Reporter fat_reporter(object_filename_);
+  FatReader fat_reader(&fat_reporter);
+  if (!fat_reader.Read(&contents_[0],
+                       st.st_size)) {
+    return false;
+  }
+
+  // Get our own copy of fat_reader's object file list.
+  size_t object_files_count;
+  const SuperFatArch* object_files =
+    fat_reader.object_files(&object_files_count);
+  if (object_files_count == 0) {
+    fprintf(stderr, "Fat binary file contains *no* architectures: %s\n",
+            object_filename_.c_str());
+    return false;
+  }
+  object_files_.resize(object_files_count);
+  memcpy(&object_files_[0], object_files,
+         sizeof(SuperFatArch) * object_files_count);
+
+  return true;
+}
+
+bool DumpSymbols::SetArchitecture(cpu_type_t cpu_type,
+                                  cpu_subtype_t cpu_subtype) {
+  // Find the best match for the architecture the user requested.
+  const SuperFatArch* best_match = FindBestMatchForArchitecture(
+      cpu_type, cpu_subtype);
+  if (!best_match) return false;
+
+  // Record the selected object file.
+  selected_object_file_ = best_match;
+  return true;
+}
+
+bool DumpSymbols::SetArchitecture(const std::string& arch_name) {
+  bool arch_set = false;
+  const NXArchInfo* arch_info =
+      google_breakpad::BreakpadGetArchInfoFromName(arch_name.c_str());
+  if (arch_info) {
+    arch_set = SetArchitecture(arch_info->cputype, arch_info->cpusubtype);
+  }
+  return arch_set;
+}
+
+SuperFatArch* DumpSymbols::FindBestMatchForArchitecture(
+    cpu_type_t cpu_type, cpu_subtype_t cpu_subtype) {
+  // Check if all the object files can be converted to struct fat_arch.
+  bool can_convert_to_fat_arch = true;
+  vector<struct fat_arch> fat_arch_vector;
+  for (vector<SuperFatArch>::const_iterator it = object_files_.begin();
+       it != object_files_.end();
+       ++it) {
+    struct fat_arch arch;
+    bool success = it->ConvertToFatArch(&arch);
+    if (!success) {
+      can_convert_to_fat_arch = false;
+      break;
+    }
+    fat_arch_vector.push_back(arch);
+  }
+
+  // If all the object files can be converted to struct fat_arch, use
+  // NXFindBestFatArch.
+  if (can_convert_to_fat_arch) {
+    const struct fat_arch* best_match
+      = NXFindBestFatArch(cpu_type, cpu_subtype, &fat_arch_vector[0],
+                          static_cast<uint32_t>(fat_arch_vector.size()));
+
+    for (size_t i = 0; i < fat_arch_vector.size(); ++i) {
+      if (best_match == &fat_arch_vector[i])
+        return &object_files_[i];
+    }
+    assert(best_match == NULL);
+    return NULL;
+  }
+
+  // Check for an exact match with cpu_type and cpu_subtype.
+  for (vector<SuperFatArch>::iterator it = object_files_.begin();
+       it != object_files_.end();
+       ++it) {
+    if (static_cast<cpu_type_t>(it->cputype) == cpu_type &&
+        static_cast<cpu_subtype_t>(it->cpusubtype) == cpu_subtype)
+      return &*it;
+  }
+
+  // No exact match found.
+  // TODO(erikchen): If it becomes necessary, we can copy the implementation of
+  // NXFindBestFatArch, located at
+  // http://web.mit.edu/darwin/src/modules/cctools/libmacho/arch.c.
+  fprintf(stderr, "Failed to find an exact match for an object file with cpu "
+      "type: %d and cpu subtype: %d. Furthermore, at least one object file is "
+      "larger than 2**32.\n", cpu_type, cpu_subtype);
+  return NULL;
+}
+
+string DumpSymbols::Identifier() {
+  FileID file_id(object_filename_.c_str());
+  unsigned char identifier_bytes[16];
+  cpu_type_t cpu_type = selected_object_file_->cputype;
+  cpu_subtype_t cpu_subtype = selected_object_file_->cpusubtype;
+  if (!file_id.MachoIdentifier(cpu_type, cpu_subtype, identifier_bytes)) {
+    fprintf(stderr, "Unable to calculate UUID of mach-o binary %s!\n",
+            object_filename_.c_str());
+    return "";
+  }
+
+  char identifier_string[40];
+  FileID::ConvertIdentifierToString(identifier_bytes, identifier_string,
+                                    sizeof(identifier_string));
+
+  string compacted(identifier_string);
+  for(size_t i = compacted.find('-'); i != string::npos;
+      i = compacted.find('-', i))
+    compacted.erase(i, 1);
+
+  return compacted;
+}
+
+// A range handler that accepts rangelist data parsed by
+// dwarf2reader::RangeListReader and populates a range vector (typically
+// owned by a function) with the results.
+class DumpSymbols::DumperRangesHandler:
+      public DwarfCUToModule::RangesHandler {
+ public:
+  DumperRangesHandler(dwarf2reader::ByteReader* reader) :
+      reader_(reader) { }
+
+  bool ReadRanges(
+      enum dwarf2reader::DwarfForm form, uint64_t data,
+      dwarf2reader::RangeListReader::CURangesInfo* cu_info,
+      vector<Module::Range>* ranges) {
+    DwarfRangeListHandler handler(ranges);
+    dwarf2reader::RangeListReader range_list_reader(reader_, cu_info,
+                                                    &handler);
+    return range_list_reader.ReadRanges(form, data);
+  }
+
+ private:
+  dwarf2reader::ByteReader* reader_;
+};
+
+// A line-to-module loader that accepts line number info parsed by
+// dwarf2reader::LineInfo and populates a Module and a line vector
+// with the results.
+class DumpSymbols::DumperLineToModule:
+      public DwarfCUToModule::LineToModuleHandler {
+ public:
+  // Create a line-to-module converter using BYTE_READER.
+  DumperLineToModule(dwarf2reader::ByteReader* byte_reader)
+      : byte_reader_(byte_reader) { }
+
+  void StartCompilationUnit(const string& compilation_dir) {
+    compilation_dir_ = compilation_dir;
+  }
+
+  void ReadProgram(const uint8_t* program, uint64_t length,
+                   const uint8_t* string_section,
+                   uint64_t string_section_length,
+                   const uint8_t* line_string_section,
+                   uint64_t line_string_section_length,
+                   Module* module, vector<Module::Line>* lines) {
+    DwarfLineToModule handler(module, compilation_dir_, lines);
+    dwarf2reader::LineInfo parser(program, length, byte_reader_,
+                                  nullptr, 0, nullptr, 0, &handler);
+    parser.Start();
+  }
+ private:
+  string compilation_dir_;
+  dwarf2reader::ByteReader* byte_reader_;  // WEAK
+};
+
+bool DumpSymbols::CreateEmptyModule(scoped_ptr<Module>& module) {
+  // Select an object file, if SetArchitecture hasn't been called to set one
+  // explicitly.
+  if (!selected_object_file_) {
+    // If there's only one architecture, that's the one.
+    if (object_files_.size() == 1)
+      selected_object_file_ = &object_files_[0];
+    else {
+      // Look for an object file whose architecture matches our own.
+      const NXArchInfo* local_arch = NXGetLocalArchInfo();
+      if (!SetArchitecture(local_arch->cputype, local_arch->cpusubtype)) {
+        fprintf(stderr, "%s: object file contains more than one"
+                " architecture, none of which match the current"
+                " architecture; specify an architecture explicitly"
+                " with '-a ARCH' to resolve the ambiguity\n",
+                object_filename_.c_str());
+        return false;
+      }
+    }
+  }
+
+  assert(selected_object_file_);
+
+  // Find the name of the selected file's architecture, to appear in
+  // the MODULE record and in error messages.
+  const NXArchInfo* selected_arch_info =
+      google_breakpad::BreakpadGetArchInfoFromCpuType(
+          selected_object_file_->cputype, selected_object_file_->cpusubtype);
+
+  const char* selected_arch_name = selected_arch_info->name;
+  if (strcmp(selected_arch_name, "i386") == 0)
+    selected_arch_name = "x86";
+
+  // Produce a name to use in error messages that includes the
+  // filename, and the architecture, if there is more than one.
+  selected_object_name_ = object_filename_;
+  if (object_files_.size() > 1) {
+    selected_object_name_ += ", architecture ";
+    selected_object_name_ + selected_arch_name;
+  }
+
+  // Compute a module name, to appear in the MODULE record.
+  string module_name = google_breakpad::BaseName(object_filename_);
+
+  // Choose an identifier string, to appear in the MODULE record.
+  string identifier = Identifier();
+  if (identifier.empty())
+    return false;
+  identifier += "0";
+
+  // Create a module to hold the debugging information.
+  module.reset(new Module(module_name,
+                          "mac",
+                          selected_arch_name,
+                          identifier));
+  return true;
+}
+
+void DumpSymbols::ReadDwarf(google_breakpad::Module* module,
+                            const mach_o::Reader& macho_reader,
+                            const mach_o::SectionMap& dwarf_sections,
+                            bool handle_inter_cu_refs) const {
+  // Build a byte reader of the appropriate endianness.
+  ByteReader byte_reader(macho_reader.big_endian()
+                         ? dwarf2reader::ENDIANNESS_BIG
+                         : dwarf2reader::ENDIANNESS_LITTLE);
+
+  // Construct a context for this file.
+  DwarfCUToModule::FileContext file_context(selected_object_name_,
+                                            module,
+                                            handle_inter_cu_refs);
+
+  // Build a dwarf2reader::SectionMap from our mach_o::SectionMap.
+  for (mach_o::SectionMap::const_iterator it = dwarf_sections.begin();
+       it != dwarf_sections.end(); ++it) {
+    file_context.AddSectionToSectionMap(
+        it->first,
+        it->second.contents.start,
+        it->second.contents.Size());
+  }
+
+  // Find the __debug_info section.
+  dwarf2reader::SectionMap::const_iterator debug_info_entry =
+      file_context.section_map().find("__debug_info");
+  // There had better be a __debug_info section!
+  if (debug_info_entry == file_context.section_map().end()) {
+    fprintf(stderr, "%s: __DWARF segment of file has no __debug_info section\n",
+            selected_object_name_.c_str());
+    return;
+  }
+  const std::pair<const uint8_t*, uint64_t>& debug_info_section =
+      debug_info_entry->second;
+
+  // Build a line-to-module loader for the root handler to use.
+  DumperLineToModule line_to_module(&byte_reader);
+
+  // .debug_ranges and .debug_rngslists reader
+  DumperRangesHandler ranges_handler(&byte_reader);
+
+  // Walk the __debug_info section, one compilation unit at a time.
+  uint64_t debug_info_length = debug_info_section.second;
+  for (uint64_t offset = 0; offset < debug_info_length;) {
+    // Make a handler for the root DIE that populates MODULE with the
+    // debug info.
+    DwarfCUToModule::WarningReporter reporter(selected_object_name_,
+                                              offset);
+    DwarfCUToModule root_handler(&file_context, &line_to_module,
+                                 &ranges_handler, &reporter);
+    // Make a Dwarf2Handler that drives our DIEHandler.
+    dwarf2reader::DIEDispatcher die_dispatcher(&root_handler);
+    // Make a DWARF parser for the compilation unit at OFFSET.
+    dwarf2reader::CompilationUnit dwarf_reader(selected_object_name_,
+                                               file_context.section_map(),
+                                               offset,
+                                               &byte_reader,
+                                               &die_dispatcher);
+    // Process the entire compilation unit; get the offset of the next.
+    offset += dwarf_reader.Start();
+  }
+}
+
+bool DumpSymbols::ReadCFI(google_breakpad::Module* module,
+                          const mach_o::Reader& macho_reader,
+                          const mach_o::Section& section,
+                          bool eh_frame) const {
+  // Find the appropriate set of register names for this file's
+  // architecture.
+  vector<string> register_names;
+  switch (macho_reader.cpu_type()) {
+    case CPU_TYPE_X86:
+      register_names = DwarfCFIToModule::RegisterNames::I386();
+      break;
+    case CPU_TYPE_X86_64:
+      register_names = DwarfCFIToModule::RegisterNames::X86_64();
+      break;
+    case CPU_TYPE_ARM:
+      register_names = DwarfCFIToModule::RegisterNames::ARM();
+      break;
+    case CPU_TYPE_ARM64:
+      register_names = DwarfCFIToModule::RegisterNames::ARM64();
+      break;
+    default: {
+      const NXArchInfo* arch = google_breakpad::BreakpadGetArchInfoFromCpuType(
+          macho_reader.cpu_type(), macho_reader.cpu_subtype());
+      fprintf(stderr, "%s: cannot convert DWARF call frame information for ",
+              selected_object_name_.c_str());
+      if (arch)
+        fprintf(stderr, "architecture '%s'", arch->name);
+      else
+        fprintf(stderr, "architecture %d,%d",
+                macho_reader.cpu_type(), macho_reader.cpu_subtype());
+      fprintf(stderr, " to Breakpad symbol file: no register name table\n");
+      return false;
+    }
+  }
+
+  // Find the call frame information and its size.
+  const uint8_t* cfi = section.contents.start;
+  size_t cfi_size = section.contents.Size();
+
+  // Plug together the parser, handler, and their entourages.
+  DwarfCFIToModule::Reporter module_reporter(selected_object_name_,
+                                             section.section_name);
+  DwarfCFIToModule handler(module, register_names, &module_reporter);
+  dwarf2reader::ByteReader byte_reader(macho_reader.big_endian() ?
+                                       dwarf2reader::ENDIANNESS_BIG :
+                                       dwarf2reader::ENDIANNESS_LITTLE);
+  byte_reader.SetAddressSize(macho_reader.bits_64() ? 8 : 4);
+  // At the moment, according to folks at Apple and some cursory
+  // investigation, Mac OS X only uses DW_EH_PE_pcrel-based pointers, so
+  // this is the only base address the CFI parser will need.
+  byte_reader.SetCFIDataBase(section.address, cfi);
+
+  dwarf2reader::CallFrameInfo::Reporter dwarf_reporter(selected_object_name_,
+                                                       section.section_name);
+  dwarf2reader::CallFrameInfo parser(cfi, cfi_size,
+                                     &byte_reader, &handler, &dwarf_reporter,
+                                     eh_frame);
+  parser.Start();
+  return true;
+}
+
+// A LoadCommandHandler that loads whatever debugging data it finds into a
+// Module.
+class DumpSymbols::LoadCommandDumper:
+      public mach_o::Reader::LoadCommandHandler {
+ public:
+  // Create a load command dumper handling load commands from READER's
+  // file, and adding data to MODULE.
+  LoadCommandDumper(const DumpSymbols& dumper,
+                    google_breakpad::Module* module,
+                    const mach_o::Reader& reader,
+                    SymbolData symbol_data,
+                    bool handle_inter_cu_refs)
+      : dumper_(dumper),
+        module_(module),
+        reader_(reader),
+        symbol_data_(symbol_data),
+        handle_inter_cu_refs_(handle_inter_cu_refs) { }
+
+  bool SegmentCommand(const mach_o::Segment& segment);
+  bool SymtabCommand(const ByteBuffer& entries, const ByteBuffer& strings);
+
+ private:
+  const DumpSymbols& dumper_;
+  google_breakpad::Module* module_;  // WEAK
+  const mach_o::Reader& reader_;
+  const SymbolData symbol_data_;
+  const bool handle_inter_cu_refs_;
+};
+
+bool DumpSymbols::LoadCommandDumper::SegmentCommand(const Segment& segment) {
+  mach_o::SectionMap section_map;
+  if (!reader_.MapSegmentSections(segment, &section_map))
+    return false;
+
+  if (segment.name == "__TEXT") {
+    module_->SetLoadAddress(segment.vmaddr);
+    if (symbol_data_ != NO_CFI) {
+      mach_o::SectionMap::const_iterator eh_frame =
+          section_map.find("__eh_frame");
+      if (eh_frame != section_map.end()) {
+        // If there is a problem reading this, don't treat it as a fatal error.
+        dumper_.ReadCFI(module_, reader_, eh_frame->second, true);
+      }
+    }
+    return true;
+  }
+
+  if (segment.name == "__DWARF") {
+    if (symbol_data_ != ONLY_CFI) {
+      dumper_.ReadDwarf(module_, reader_, section_map, handle_inter_cu_refs_);
+    }
+    if (symbol_data_ != NO_CFI) {
+      mach_o::SectionMap::const_iterator debug_frame
+          = section_map.find("__debug_frame");
+      if (debug_frame != section_map.end()) {
+        // If there is a problem reading this, don't treat it as a fatal error.
+        dumper_.ReadCFI(module_, reader_, debug_frame->second, false);
+      }
+    }
+  }
+
+  return true;
+}
+
+bool DumpSymbols::LoadCommandDumper::SymtabCommand(const ByteBuffer& entries,
+                                                   const ByteBuffer& strings) {
+  StabsToModule stabs_to_module(module_);
+  // Mac OS X STABS are never "unitized", and the size of the 'value' field
+  // matches the address size of the executable.
+  StabsReader stabs_reader(entries.start, entries.Size(),
+                           strings.start, strings.Size(),
+                           reader_.big_endian(),
+                           reader_.bits_64() ? 8 : 4,
+                           true,
+                           &stabs_to_module);
+  if (!stabs_reader.Process())
+    return false;
+  stabs_to_module.Finalize();
+  return true;
+}
+
+bool DumpSymbols::ReadSymbolData(Module** out_module) {
+  scoped_ptr<Module> module;
+  if (!CreateEmptyModule(module))
+    return false;
+
+  // Parse the selected object file.
+  mach_o::Reader::Reporter reporter(selected_object_name_);
+  mach_o::Reader reader(&reporter);
+  if (!reader.Read(&contents_[0]
+                   + selected_object_file_->offset,
+                   selected_object_file_->size,
+                   selected_object_file_->cputype,
+                   selected_object_file_->cpusubtype))
+    return false;
+
+  // Walk its load commands, and deal with whatever is there.
+  LoadCommandDumper load_command_dumper(*this, module.get(), reader,
+                                        symbol_data_, handle_inter_cu_refs_);
+  if (!reader.WalkLoadCommands(&load_command_dumper))
+    return false;
+
+  *out_module = module.release();
+
+  return true;
+}
+
+bool DumpSymbols::WriteSymbolFile(std::ostream& stream) {
+  Module* module = NULL;
+
+  if (ReadSymbolData(&module) && module) {
+    bool res = module->Write(stream, symbol_data_);
+    delete module;
+    return res;
+  }
+
+  return false;
+}
+
+// Read the selected object file's debugging information, and write out the
+// header only to |stream|. Return true on success; if an error occurs, report
+// it and return false.
+bool DumpSymbols::WriteSymbolFileHeader(std::ostream& stream) {
+  scoped_ptr<Module> module;
+  if (!CreateEmptyModule(module))
+    return false;
+
+  return module->Write(stream, symbol_data_);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/mac/dump_syms.h b/src/common/mac/dump_syms.h
new file mode 100644
index 0000000..daebf87
--- /dev/null
+++ b/src/common/mac/dump_syms.h
@@ -0,0 +1,196 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_syms.h: Declaration of google_breakpad::DumpSymbols, a class for
+// reading debugging information from Mach-O files and writing it out as a
+// Breakpad symbol file.
+
+#include <mach-o/loader.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include "common/byte_cursor.h"
+#include "common/mac/macho_reader.h"
+#include "common/mac/super_fat_arch.h"
+#include "common/module.h"
+#include "common/scoped_ptr.h"
+#include "common/symbol_data.h"
+
+namespace google_breakpad {
+
+class DumpSymbols {
+ public:
+  DumpSymbols(SymbolData symbol_data, bool handle_inter_cu_refs)
+      : symbol_data_(symbol_data),
+        handle_inter_cu_refs_(handle_inter_cu_refs),
+        input_pathname_(),
+        object_filename_(),
+        contents_(),
+        object_files_(),
+        selected_object_file_(),
+        selected_object_name_() { }
+  ~DumpSymbols() {
+  }
+
+  // Prepare to read debugging information from |filename|. |filename| may be
+  // the name of a universal binary, a Mach-O file, or a dSYM bundle
+  // containing either of the above. On success, return true; if there is a
+  // problem reading |filename|, report it and return false.
+  bool Read(const std::string& filename);
+
+  // If this dumper's file includes an object file for |cpu_type| and
+  // |cpu_subtype|, then select that object file for dumping, and return
+  // true. Otherwise, return false, and leave this dumper's selected
+  // architecture unchanged.
+  //
+  // By default, if this dumper's file contains only one object file, then
+  // the dumper will dump those symbols; and if it contains more than one
+  // object file, then the dumper will dump the object file whose
+  // architecture matches that of this dumper program.
+  bool SetArchitecture(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype);
+
+  // If this dumper's file includes an object file for |arch_name|, then select
+  // that object file for dumping, and return true. Otherwise, return false,
+  // and leave this dumper's selected architecture unchanged.
+  //
+  // By default, if this dumper's file contains only one object file, then
+  // the dumper will dump those symbols; and if it contains more than one
+  // object file, then the dumper will dump the object file whose
+  // architecture matches that of this dumper program.
+  bool SetArchitecture(const std::string& arch_name);
+
+  // Return a pointer to an array of SuperFatArch structures describing the
+  // object files contained in this dumper's file. Set *|count| to the number
+  // of elements in the array. The returned array is owned by this DumpSymbols
+  // instance.
+  //
+  // If there are no available architectures, this function
+  // may return NULL.
+  const SuperFatArch* AvailableArchitectures(size_t* count) {
+    *count = object_files_.size();
+    if (object_files_.size() > 0)
+      return &object_files_[0];
+    return NULL;
+  }
+
+  // Read the selected object file's debugging information, and write it out to
+  // |stream|. Return true on success; if an error occurs, report it and
+  // return false.
+  bool WriteSymbolFile(std::ostream& stream);
+
+  // Read the selected object file's debugging information, and write out the
+  // header only to |stream|. Return true on success; if an error occurs, report
+  // it and return false.
+  bool WriteSymbolFileHeader(std::ostream& stream);
+
+  // As above, but simply return the debugging information in module
+  // instead of writing it to a stream. The caller owns the resulting
+  // module object and must delete it when finished.
+  bool ReadSymbolData(Module** module);
+
+ private:
+  // Used internally.
+  class DumperLineToModule;
+  class DumperRangesHandler;
+  class LoadCommandDumper;
+
+  // This method behaves similarly to NXFindBestFatArch, but it supports
+  // SuperFatArch.
+  SuperFatArch* FindBestMatchForArchitecture(
+      cpu_type_t cpu_type, cpu_subtype_t cpu_subtype);
+
+  // Return an identifier string for the file this DumpSymbols is dumping.
+  std::string Identifier();
+
+
+  // Creates an empty module object.
+  bool CreateEmptyModule(scoped_ptr<Module>& module);
+
+  // Read debugging information from |dwarf_sections|, which was taken from
+  // |macho_reader|, and add it to |module|.
+  void ReadDwarf(google_breakpad::Module* module,
+                 const mach_o::Reader& macho_reader,
+                 const mach_o::SectionMap& dwarf_sections,
+                 bool handle_inter_cu_refs) const;
+
+  // Read DWARF CFI or .eh_frame data from |section|, belonging to
+  // |macho_reader|, and record it in |module|.  If |eh_frame| is true,
+  // then the data is .eh_frame-format data; otherwise, it is standard DWARF
+  // .debug_frame data. On success, return true; on failure, report
+  // the problem and return false.
+  bool ReadCFI(google_breakpad::Module* module,
+               const mach_o::Reader& macho_reader,
+               const mach_o::Section& section,
+               bool eh_frame) const;
+
+  // The selection of what type of symbol data to read/write.
+  const SymbolData symbol_data_;
+
+  // Whether to handle references between compilation units.
+  const bool handle_inter_cu_refs_;
+
+  // The name of the file or bundle whose symbols this will dump.
+  // This is the path given to Read, for use in error messages.
+  std::string input_pathname_;
+
+  // The name of the file this DumpSymbols will actually read debugging
+  // information from. Normally, this is the same as input_pathname_, but if
+  // filename refers to a dSYM bundle, then this is the resource file
+  // within that bundle.
+  std::string object_filename_;
+
+  // The complete contents of object_filename_, mapped into memory.
+  scoped_array<uint8_t> contents_;
+
+  // A vector of SuperFatArch structures describing the object files
+  // object_filename_ contains. If object_filename_ refers to a fat binary,
+  // this may have more than one element; if it refers to a Mach-O file, this
+  // has exactly one element.
+  vector<SuperFatArch> object_files_;
+
+  // The object file in object_files_ selected to dump, or NULL if
+  // SetArchitecture hasn't been called yet.
+  const SuperFatArch* selected_object_file_;
+
+  // A string that identifies the selected object file, for use in error
+  // messages.  This is usually object_filename_, but if that refers to a
+  // fat binary, it includes an indication of the particular architecture
+  // within that binary.
+  string selected_object_name_;
+};
+
+}  // namespace google_breakpad
diff --git a/src/common/mac/encoding_util.h b/src/common/mac/encoding_util.h
new file mode 100644
index 0000000..6495a74
--- /dev/null
+++ b/src/common/mac/encoding_util.h
@@ -0,0 +1,41 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MAC_ENCODING_UTIL_H
+#define GOOGLE_BREAKPAD_COMMON_MAC_ENCODING_UTIL_H
+
+#import <Foundation/Foundation.h>
+
+// As -[NSString stringByAddingPercentEscapesUsingEncoding:] has been
+// deprecated with iOS 9.0 / OS X 10.11 SDKs, this function re-implements it
+// using -[NSString stringByAddingPercentEncodingWithAllowedCharacters:] when
+// using those SDKs.
+NSString* PercentEncodeNSString(NSString* key);
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MAC_ENCODING_UTIL_H
diff --git a/src/common/mac/encoding_util.m b/src/common/mac/encoding_util.m
new file mode 100644
index 0000000..86d70fb
--- /dev/null
+++ b/src/common/mac/encoding_util.m
@@ -0,0 +1,47 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "encoding_util.h"
+
+#include <Availability.h>
+#include <AvailabilityMacros.h>
+#import <Foundation/Foundation.h>
+
+NSString* PercentEncodeNSString(NSString* key) {
+#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_9_0) && \
+     __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_9_0) ||                  \
+    (defined(MAC_OS_X_VERSION_MIN_REQUIRED) &&                             \
+     defined(MAC_OS_X_VERSION_10_11) &&                                    \
+     MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11)
+  return [key stringByAddingPercentEncodingWithAllowedCharacters:
+                  [NSCharacterSet URLQueryAllowedCharacterSet]];
+#else
+  return [key stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+#endif
+}
diff --git a/src/common/mac/file_id.cc b/src/common/mac/file_id.cc
new file mode 100644
index 0000000..4661d5d
--- /dev/null
+++ b/src/common/mac/file_id.cc
@@ -0,0 +1,106 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_id.cc: Return a unique identifier for a file
+//
+// See file_id.h for documentation
+//
+// Author: Dan Waylonis
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "common/mac/file_id.h"
+#include "common/mac/macho_id.h"
+
+using MacFileUtilities::MachoID;
+
+namespace google_breakpad {
+
+FileID::FileID(const char *path) {
+  snprintf(path_, sizeof(path_), "%s", path);
+}
+
+bool FileID::FileIdentifier(unsigned char identifier[16]) {
+  int fd = open(path_, O_RDONLY);
+  if (fd == -1)
+    return false;
+
+  MD5Context md5;
+  MD5Init(&md5);
+
+  // Read 4k x 2 bytes at a time.  This is faster than just 4k bytes, but
+  // doesn't seem to be an unreasonable size for the stack.
+  unsigned char buffer[4096 * 2];
+  size_t buffer_size = sizeof(buffer);
+  while ((buffer_size = read(fd, buffer, buffer_size) > 0)) {
+    MD5Update(&md5, buffer, static_cast<unsigned>(buffer_size));
+  }
+
+  close(fd);
+  MD5Final(identifier, &md5);
+
+  return true;
+}
+
+bool FileID::MachoIdentifier(cpu_type_t cpu_type,
+                             cpu_subtype_t cpu_subtype,
+                             unsigned char identifier[16]) {
+  MachoID macho(path_);
+
+  if (macho.UUIDCommand(cpu_type, cpu_subtype, identifier))
+    return true;
+
+  return macho.MD5(cpu_type, cpu_subtype, identifier);
+}
+
+// static
+void FileID::ConvertIdentifierToString(const unsigned char identifier[16],
+                                       char *buffer, int buffer_length) {
+  int buffer_idx = 0;
+  for (int idx = 0; (buffer_idx < buffer_length) && (idx < 16); ++idx) {
+    int hi = (identifier[idx] >> 4) & 0x0F;
+    int lo = (identifier[idx]) & 0x0F;
+
+    if (idx == 4 || idx == 6 || idx == 8 || idx == 10)
+      buffer[buffer_idx++] = '-';
+
+    buffer[buffer_idx++] =
+        static_cast<char>((hi >= 10) ? ('A' + hi - 10) : ('0' + hi));
+    buffer[buffer_idx++] =
+        static_cast<char>((lo >= 10) ? ('A' + lo - 10) : ('0' + lo));
+  }
+
+  // NULL terminate
+  buffer[(buffer_idx < buffer_length) ? buffer_idx : buffer_idx - 1] = 0;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/mac/file_id.h b/src/common/mac/file_id.h
new file mode 100644
index 0000000..5d60e84
--- /dev/null
+++ b/src/common/mac/file_id.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_id.h: Return a unique identifier for a file
+//
+// Author: Dan Waylonis
+
+#ifndef COMMON_MAC_FILE_ID_H__
+#define COMMON_MAC_FILE_ID_H__
+
+#include <limits.h>
+#include <mach/machine.h>
+
+namespace google_breakpad {
+
+class FileID {
+ public:
+  FileID(const char *path);
+  ~FileID() {}
+
+  // Load the identifier for the file path specified in the constructor into
+  // |identifier|.  Return false if the identifier could not be created for the
+  // file.
+  // The current implementation will return the MD5 hash of the file's bytes.
+  bool FileIdentifier(unsigned char identifier[16]);
+
+  // Treat the file as a mach-o file that will contain one or more archicture.
+  // Accepted values for |cpu_type| and |cpu_subtype| (e.g., CPU_TYPE_X86 or
+  // CPU_TYPE_POWERPC) are listed in /usr/include/mach/machine.h.
+  // If |cpu_type| is 0, then the native cpu type is used. If |cpu_subtype| is
+  // CPU_SUBTYPE_MULTIPLE, the match is only done on |cpu_type|.
+  // Returns false if opening the file failed or if the |cpu_type|/|cpu_subtype|
+  // is not present in the file.
+  // Return the unique identifier in |identifier|.
+  // The current implementation will look for the (in order of priority):
+  // LC_UUID, LC_ID_DYLIB, or MD5 hash of the given |cpu_type|.
+  bool MachoIdentifier(cpu_type_t cpu_type,
+                       cpu_subtype_t cpu_subtype,
+                       unsigned char identifier[16]);
+
+  // Convert the |identifier| data to a NULL terminated string.  The string will
+  // be formatted as a UUID (e.g., 22F065BB-FC9C-49F7-80FE-26A7CEBD7BCE).
+  // The |buffer| should be at least 37 bytes long to receive all of the data
+  // and termination.  Shorter buffers will contain truncated data.
+  static void ConvertIdentifierToString(const unsigned char identifier[16],
+                                        char *buffer, int buffer_length);
+
+ private:
+  // Storage for the path specified
+  char path_[PATH_MAX];
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_MAC_FILE_ID_H__
diff --git a/src/common/mac/launch_reporter.cc b/src/common/mac/launch_reporter.cc
new file mode 100644
index 0000000..245be82
--- /dev/null
+++ b/src/common/mac/launch_reporter.cc
@@ -0,0 +1,84 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdio.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+namespace google_breakpad {
+
+void LaunchReporter(const char *reporter_executable_path,
+                    const char *config_file_path) {
+  const char* argv[] = { reporter_executable_path, config_file_path, NULL };
+
+  // Launch the reporter
+  pid_t pid = fork();
+
+  if (pid == -1) {
+    perror("fork");
+    fprintf(stderr, "Failed to fork reporter process\n");
+    return;
+  }
+
+  // If we're in the child, load in our new executable and run.
+  // The parent will not wait for the child to complete.
+  if (pid == 0) {
+    execv(argv[0], (char* const*)argv);
+    perror("exec");
+    fprintf(stderr,
+            "Failed to launch reporter process from path %s\n",
+            reporter_executable_path);
+    unlink(config_file_path);  // launch failed - get rid of config file
+    _exit(1);
+  }
+
+  // Wait until the Reporter child process exits.
+  //
+
+  // We'll use a timeout of one minute.
+  int timeout_count = 60;   // 60 seconds
+
+  while (timeout_count-- > 0) {
+    int status;
+    pid_t result = waitpid(pid, &status, WNOHANG);
+
+    if (result == 0) {
+      // The child has not yet finished.
+      sleep(1);
+    } else if (result == -1) {
+      // error occurred.
+      break;
+    } else {
+      // child has finished
+      break;
+    }
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/mac/launch_reporter.h b/src/common/mac/launch_reporter.h
new file mode 100644
index 0000000..4531123
--- /dev/null
+++ b/src/common/mac/launch_reporter.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_MAC_LAUNCH_REPORTER_H__
+#define COMMON_MAC_LAUNCH_REPORTER_H__
+
+namespace google_breakpad {
+
+// Launch the crash dump sender app.
+// |reporter_executable_path| is the path to the sender executable.
+// |config_file_path| is the path to the config file.
+void LaunchReporter(const char *reporter_executable_path,
+                    const char *config_file_path);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_MAC_LAUNCH_REPORTER_H__
diff --git a/src/common/mac/macho_id.cc b/src/common/mac/macho_id.cc
new file mode 100644
index 0000000..3cf1d4b
--- /dev/null
+++ b/src/common/mac/macho_id.cc
@@ -0,0 +1,369 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_id.cc: Functions to gather identifying information from a macho file
+//
+// See macho_id.h for documentation
+//
+// Author: Dan Waylonis
+
+
+#include <fcntl.h>
+#include <mach-o/loader.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "common/mac/macho_id.h"
+#include "common/mac/macho_walker.h"
+#include "common/mac/macho_utilities.h"
+
+namespace MacFileUtilities {
+
+using google_breakpad::MD5Init;
+using google_breakpad::MD5Update;
+using google_breakpad::MD5Final;
+
+MachoID::MachoID(const char* path)
+   : memory_(0),
+     memory_size_(0),
+     crc_(0), 
+     md5_context_(), 
+     update_function_(NULL) {
+  snprintf(path_, sizeof(path_), "%s", path);
+}
+
+MachoID::MachoID(const char* path, void* memory, size_t size)
+   : memory_(memory),
+     memory_size_(size),
+     crc_(0), 
+     md5_context_(), 
+     update_function_(NULL) {
+  snprintf(path_, sizeof(path_), "%s", path);
+}
+
+MachoID::~MachoID() {
+}
+
+// The CRC info is from http://en.wikipedia.org/wiki/Adler-32
+// With optimizations from http://www.zlib.net/
+
+// The largest prime smaller than 65536
+#define MOD_ADLER 65521
+// MAX_BLOCK is the largest n such that 255n(n+1)/2 + (n+1)(MAX_BLOCK-1) <= 2^32-1
+#define MAX_BLOCK 5552
+
+void MachoID::UpdateCRC(unsigned char* bytes, size_t size) {
+// Unrolled loops for summing
+#define DO1(buf,i)  {sum1 += (buf)[i]; sum2 += sum1;}
+#define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1);
+#define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2);
+#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
+#define DO16(buf)   DO8(buf,0); DO8(buf,8);
+  // Split up the crc
+  uint32_t sum1 = crc_ & 0xFFFF;
+  uint32_t sum2 = (crc_ >> 16) & 0xFFFF;
+
+  // Do large blocks
+  while (size >= MAX_BLOCK) {
+    size -= MAX_BLOCK;
+    int block_count = MAX_BLOCK / 16;
+    do {
+      DO16(bytes);
+      bytes += 16;
+    } while (--block_count);
+    sum1 %= MOD_ADLER;
+    sum2 %= MOD_ADLER;
+  }
+
+  // Do remaining bytes
+  if (size) {
+    while (size >= 16) {
+      size -= 16;
+      DO16(bytes);
+      bytes += 16;
+    }
+    while (size--) {
+      sum1 += *bytes++;
+      sum2 += sum1;
+    }
+    sum1 %= MOD_ADLER;
+    sum2 %= MOD_ADLER;
+    crc_ = (sum2 << 16) | sum1;
+  }
+}
+
+void MachoID::UpdateMD5(unsigned char* bytes, size_t size) {
+  MD5Update(&md5_context_, bytes, static_cast<unsigned>(size));
+}
+
+void MachoID::Update(MachoWalker* walker, off_t offset, size_t size) {
+  if (!update_function_ || !size)
+    return;
+
+  // Read up to 4k bytes at a time
+  unsigned char buffer[4096];
+  size_t buffer_size;
+  off_t file_offset = offset;
+  while (size > 0) {
+    if (size > sizeof(buffer)) {
+      buffer_size = sizeof(buffer);
+      size -= buffer_size;
+    } else {
+      buffer_size = size;
+      size = 0;
+    }
+
+    if (!walker->ReadBytes(buffer, buffer_size, file_offset))
+      return;
+
+    (this->*update_function_)(buffer, buffer_size);
+    file_offset += buffer_size;
+  }
+}
+
+bool MachoID::UUIDCommand(cpu_type_t cpu_type,
+                          cpu_subtype_t cpu_subtype,
+                          unsigned char bytes[16]) {
+  struct breakpad_uuid_command uuid_cmd;
+  uuid_cmd.cmd = 0;
+  if (!WalkHeader(cpu_type, cpu_subtype, UUIDWalkerCB, &uuid_cmd))
+    return false;
+
+  // If we found the command, we'll have initialized the uuid_command
+  // structure
+  if (uuid_cmd.cmd == LC_UUID) {
+    memcpy(bytes, uuid_cmd.uuid, sizeof(uuid_cmd.uuid));
+    return true;
+  }
+
+  return false;
+}
+
+bool MachoID::IDCommand(cpu_type_t cpu_type,
+                        cpu_subtype_t cpu_subtype,
+                        unsigned char identifier[16]) {
+  struct dylib_command dylib_cmd;
+  dylib_cmd.cmd = 0;
+  if (!WalkHeader(cpu_type, cpu_subtype, IDWalkerCB, &dylib_cmd))
+    return false;
+
+  // If we found the command, we'll have initialized the dylib_command
+  // structure
+  if (dylib_cmd.cmd == LC_ID_DYLIB) {
+    // Take the hashed filename, version, and compatability version bytes
+    // to form the first 12 bytes, pad the rest with zeros
+
+    // create a crude hash of the filename to generate the first 4 bytes
+    identifier[0] = 0;
+    identifier[1] = 0;
+    identifier[2] = 0;
+    identifier[3] = 0;
+
+    for (int j = 0, i = (int)strlen(path_)-1; i>=0 && path_[i]!='/'; ++j, --i) {
+      identifier[j%4] += path_[i];
+    }
+
+    identifier[4] = (dylib_cmd.dylib.current_version >> 24) & 0xFF;
+    identifier[5] = (dylib_cmd.dylib.current_version >> 16) & 0xFF;
+    identifier[6] = (dylib_cmd.dylib.current_version >> 8) & 0xFF;
+    identifier[7] = dylib_cmd.dylib.current_version & 0xFF;
+    identifier[8] = (dylib_cmd.dylib.compatibility_version >> 24) & 0xFF;
+    identifier[9] = (dylib_cmd.dylib.compatibility_version >> 16) & 0xFF;
+    identifier[10] = (dylib_cmd.dylib.compatibility_version >> 8) & 0xFF;
+    identifier[11] = dylib_cmd.dylib.compatibility_version & 0xFF;
+    identifier[12] = (cpu_type >> 24) & 0xFF;
+    identifier[13] = (cpu_type >> 16) & 0xFF;
+    identifier[14] = (cpu_type >> 8) & 0xFF;
+    identifier[15] = cpu_type & 0xFF;
+
+    return true;
+  }
+
+  return false;
+}
+
+uint32_t MachoID::Adler32(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype) {
+  update_function_ = &MachoID::UpdateCRC;
+  crc_ = 0;
+
+  if (!WalkHeader(cpu_type, cpu_subtype, WalkerCB, this))
+    return 0;
+
+  return crc_;
+}
+
+bool MachoID::MD5(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype, unsigned char identifier[16]) {
+  update_function_ = &MachoID::UpdateMD5;
+
+  MD5Init(&md5_context_);
+
+  if (!WalkHeader(cpu_type, cpu_subtype, WalkerCB, this))
+    return false;
+
+  MD5Final(identifier, &md5_context_);
+  return true;
+}
+
+bool MachoID::WalkHeader(cpu_type_t cpu_type,
+                         cpu_subtype_t cpu_subtype,
+                         MachoWalker::LoadCommandCallback callback,
+                         void* context) {
+  if (memory_) {
+    MachoWalker walker(memory_, memory_size_, callback, context);
+    return walker.WalkHeader(cpu_type, cpu_subtype);
+  } else {
+    MachoWalker walker(path_, callback, context);
+    return walker.WalkHeader(cpu_type, cpu_subtype);
+  }
+}
+
+// static
+bool MachoID::WalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                       bool swap, void* context) {
+  MachoID* macho_id = (MachoID*)context;
+
+  if (cmd->cmd == LC_SEGMENT) {
+    struct segment_command seg;
+
+    if (!walker->ReadBytes(&seg, sizeof(seg), offset))
+      return false;
+
+    if (swap)
+      breakpad_swap_segment_command(&seg);
+
+    struct mach_header_64 header;
+    off_t header_offset;
+    
+    if (!walker->CurrentHeader(&header, &header_offset))
+      return false;
+        
+    // Process segments that have sections:
+    // (e.g., __TEXT, __DATA, __IMPORT, __OBJC)
+    offset += sizeof(struct segment_command);
+    struct section sec;
+    for (unsigned long i = 0; i < seg.nsects; ++i) {
+      if (!walker->ReadBytes(&sec, sizeof(sec), offset))
+        return false;
+
+      if (swap)
+        breakpad_swap_section(&sec, 1);
+
+      // sections of type S_ZEROFILL are "virtual" and contain no data
+      // in the file itself
+      if ((sec.flags & SECTION_TYPE) != S_ZEROFILL && sec.offset != 0)
+        macho_id->Update(walker, header_offset + sec.offset, sec.size);
+
+      offset += sizeof(struct section);
+    }
+  } else if (cmd->cmd == LC_SEGMENT_64) {
+    struct segment_command_64 seg64;
+
+    if (!walker->ReadBytes(&seg64, sizeof(seg64), offset))
+      return false;
+
+    if (swap)
+      breakpad_swap_segment_command_64(&seg64);
+
+    struct mach_header_64 header;
+    off_t header_offset;
+    
+    if (!walker->CurrentHeader(&header, &header_offset))
+      return false;
+    
+    // Process segments that have sections:
+    // (e.g., __TEXT, __DATA, __IMPORT, __OBJC)
+    offset += sizeof(struct segment_command_64);
+    struct section_64 sec64;
+    for (unsigned long i = 0; i < seg64.nsects; ++i) {
+      if (!walker->ReadBytes(&sec64, sizeof(sec64), offset))
+        return false;
+
+      if (swap)
+        breakpad_swap_section_64(&sec64, 1);
+
+      // sections of type S_ZEROFILL are "virtual" and contain no data
+      // in the file itself
+      if ((sec64.flags & SECTION_TYPE) != S_ZEROFILL && sec64.offset != 0)
+        macho_id->Update(walker, 
+                         header_offset + sec64.offset, 
+                         (size_t)sec64.size);
+
+      offset += sizeof(struct section_64);
+    }
+  }
+
+  // Continue processing
+  return true;
+}
+
+// static
+bool MachoID::UUIDWalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                           bool swap, void* context) {
+  if (cmd->cmd == LC_UUID) {
+    struct breakpad_uuid_command* uuid_cmd =
+      (struct breakpad_uuid_command*)context;
+
+    if (!walker->ReadBytes(uuid_cmd, sizeof(struct breakpad_uuid_command),
+                           offset))
+      return false;
+
+    if (swap)
+      breakpad_swap_uuid_command(uuid_cmd);
+
+    return false;
+  }
+
+  // Continue processing
+  return true;
+}
+
+// static
+bool MachoID::IDWalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                         bool swap, void* context) {
+  if (cmd->cmd == LC_ID_DYLIB) {
+    struct dylib_command* dylib_cmd = (struct dylib_command*)context;
+
+    if (!walker->ReadBytes(dylib_cmd, sizeof(struct dylib_command), offset))
+      return false;
+
+    if (swap)
+      breakpad_swap_dylib_command(dylib_cmd);
+
+    return false;
+  }
+
+  // Continue processing
+  return true;
+}
+
+}  // namespace MacFileUtilities
diff --git a/src/common/mac/macho_id.h b/src/common/mac/macho_id.h
new file mode 100644
index 0000000..e8874c3
--- /dev/null
+++ b/src/common/mac/macho_id.h
@@ -0,0 +1,131 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_id.h: Functions to gather identifying information from a macho file
+//
+// Author: Dan Waylonis
+
+#ifndef COMMON_MAC_MACHO_ID_H__
+#define COMMON_MAC_MACHO_ID_H__
+
+#include <limits.h>
+#include <mach/machine.h>
+#include <mach-o/loader.h>
+
+#include "common/mac/macho_walker.h"
+#include "common/md5.h"
+
+namespace MacFileUtilities {
+
+class MachoID {
+ public:
+  MachoID(const char* path);
+  MachoID(const char* path, void* memory, size_t size);
+  ~MachoID();
+
+  // For the given |cpu_type| and |cpu_subtype|, return a UUID from the LC_UUID
+  // command.
+  // Return false if there isn't a LC_UUID command.
+  bool UUIDCommand(cpu_type_t cpu_type,
+                   cpu_subtype_t cpu_subtype,
+                   unsigned char identifier[16]);
+
+  // For the given |cpu_type| and |cpu_subtype|, return a UUID from the
+  // LC_ID_DYLIB command.
+  // Return false if there isn't a LC_ID_DYLIB command.
+  bool IDCommand(cpu_type_t cpu_type,
+                 cpu_subtype_t cpu_subtype,
+                 unsigned char identifier[16]);
+
+  // For the given |cpu_type| and |cpu_subtype|, return the Adler32 CRC for the
+  // mach-o data segment(s).
+  // Return 0 on error (e.g., if the file is not a mach-o file)
+  uint32_t Adler32(cpu_type_t cpu_type,
+                   cpu_subtype_t cpu_subtype);
+
+  // For the given |cpu_type|, and |cpu_subtype| return the MD5 for the mach-o
+  // data segment(s).
+  // Return true on success, false otherwise
+  bool MD5(cpu_type_t cpu_type,
+           cpu_subtype_t cpu_subtype,
+           unsigned char identifier[16]);
+
+ private:
+  // Signature of class member function to be called with data read from file
+  typedef void (MachoID::*UpdateFunction)(unsigned char* bytes, size_t size);
+
+  // Update the CRC value by examining |size| |bytes| and applying the algorithm
+  // to each byte.
+  void UpdateCRC(unsigned char* bytes, size_t size);
+
+  // Update the MD5 value by examining |size| |bytes| and applying the algorithm
+  // to each byte.
+  void UpdateMD5(unsigned char* bytes, size_t size);
+
+  // Bottleneck for update routines
+  void Update(MachoWalker* walker, off_t offset, size_t size);
+
+  // Factory for the MachoWalker
+  bool WalkHeader(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype,
+                  MachoWalker::LoadCommandCallback callback, void* context);
+
+  // The callback from the MachoWalker for CRC and MD5
+  static bool WalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                       bool swap, void* context);
+
+  // The callback from the MachoWalker for LC_UUID
+  static bool UUIDWalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                           bool swap, void* context);
+
+  // The callback from the MachoWalker for LC_ID_DYLIB
+  static bool IDWalkerCB(MachoWalker* walker, load_command* cmd, off_t offset,
+                         bool swap, void* context);
+
+  // File path
+  char path_[PATH_MAX];
+
+  // Memory region to read from
+  void* memory_;
+
+  // Size of the memory region
+  size_t memory_size_;
+
+  // The current crc value
+  uint32_t crc_;
+
+  // The MD5 context
+  google_breakpad::MD5Context md5_context_;
+
+  // The current update to call from the Update callback
+  UpdateFunction update_function_;
+};
+
+}  // namespace MacFileUtilities
+
+#endif  // COMMON_MAC_MACHO_ID_H__
diff --git a/src/common/mac/macho_reader.cc b/src/common/mac/macho_reader.cc
new file mode 100644
index 0000000..b42506c
--- /dev/null
+++ b/src/common/mac/macho_reader.cc
@@ -0,0 +1,558 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// macho_reader.cc: Implementation of google_breakpad::Mach_O::FatReader and
+// google_breakpad::Mach_O::Reader. See macho_reader.h for details.
+
+#include "common/mac/macho_reader.h"
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <limits>
+
+// Unfortunately, CPU_TYPE_ARM is not define for 10.4.
+#if !defined(CPU_TYPE_ARM)
+#define CPU_TYPE_ARM 12
+#endif
+
+#if !defined(CPU_TYPE_ARM_64)
+#define CPU_TYPE_ARM_64 16777228
+#endif
+
+namespace google_breakpad {
+namespace mach_o {
+
+// If NDEBUG is #defined, then the 'assert' macro doesn't evaluate its
+// arguments, so you can't place expressions that do necessary work in
+// the argument of an assert. Nor can you assign the result of the
+// expression to a variable and assert that the variable's value is
+// true: you'll get unused variable warnings when NDEBUG is #defined.
+//
+// ASSERT_ALWAYS_EVAL always evaluates its argument, and asserts that
+// the result is true if NDEBUG is not #defined.
+#if defined(NDEBUG)
+#define ASSERT_ALWAYS_EVAL(x) (x)
+#else
+#define ASSERT_ALWAYS_EVAL(x) assert(x)
+#endif
+
+void FatReader::Reporter::BadHeader() {
+  fprintf(stderr, "%s: file is neither a fat binary file"
+          " nor a Mach-O object file\n", filename_.c_str());
+}
+
+void FatReader::Reporter::TooShort() {
+  fprintf(stderr, "%s: file too short for the data it claims to contain\n",
+          filename_.c_str());
+}
+
+void FatReader::Reporter::MisplacedObjectFile() {
+  fprintf(stderr, "%s: file too short for the object files it claims"
+          " to contain\n", filename_.c_str());
+}
+
+bool FatReader::Read(const uint8_t* buffer, size_t size) {
+  buffer_.start = buffer;
+  buffer_.end = buffer + size;
+  ByteCursor cursor(&buffer_);
+
+  // Fat binaries always use big-endian, so read the magic number in
+  // that endianness. To recognize Mach-O magic numbers, which can use
+  // either endianness, check for both the proper and reversed forms
+  // of the magic numbers.
+  cursor.set_big_endian(true);
+  if (cursor >> magic_) {
+    if (magic_ == FAT_MAGIC) {
+      // How many object files does this fat binary contain?
+      uint32_t object_files_count;
+      if (!(cursor >> object_files_count)) {  // nfat_arch
+        reporter_->TooShort();
+        return false;
+      }
+
+      // Read the list of object files.
+      object_files_.resize(object_files_count);
+      for (size_t i = 0; i < object_files_count; i++) {
+        struct fat_arch objfile;
+
+        // Read this object file entry, byte-swapping as appropriate.
+        cursor >> objfile.cputype
+               >> objfile.cpusubtype
+               >> objfile.offset
+               >> objfile.size
+               >> objfile.align;
+
+        SuperFatArch super_fat_arch(objfile);
+        object_files_[i] = super_fat_arch;
+
+        if (!cursor) {
+          reporter_->TooShort();
+          return false;
+        }
+        // Does the file actually have the bytes this entry refers to?
+        size_t fat_size = buffer_.Size();
+        if (objfile.offset > fat_size ||
+            objfile.size > fat_size - objfile.offset) {
+          reporter_->MisplacedObjectFile();
+          return false;
+        }
+      }
+
+      return true;
+    } else if (magic_ == MH_MAGIC || magic_ == MH_MAGIC_64 ||
+               magic_ == MH_CIGAM || magic_ == MH_CIGAM_64) {
+      // If this is a little-endian Mach-O file, fix the cursor's endianness.
+      if (magic_ == MH_CIGAM || magic_ == MH_CIGAM_64)
+        cursor.set_big_endian(false);
+      // Record the entire file as a single entry in the object file list.
+      object_files_.resize(1);
+
+      // Get the cpu type and subtype from the Mach-O header.
+      if (!(cursor >> object_files_[0].cputype
+                   >> object_files_[0].cpusubtype)) {
+        reporter_->TooShort();
+        return false;
+      }
+
+      object_files_[0].offset = 0;
+      object_files_[0].size = static_cast<uint64_t>(buffer_.Size());
+      // This alignment is correct for 32 and 64-bit x86 and ppc.
+      // See get_align in the lipo source for other architectures:
+      // http://www.opensource.apple.com/source/cctools/cctools-773/misc/lipo.c
+      object_files_[0].align = 12;  // 2^12 == 4096
+      return true;
+    }
+  }
+  reporter_->BadHeader();
+  return false;
+}
+
+void Reader::Reporter::BadHeader() {
+  fprintf(stderr, "%s: file is not a Mach-O object file\n", filename_.c_str());
+}
+
+void Reader::Reporter::CPUTypeMismatch(cpu_type_t cpu_type,
+                                       cpu_subtype_t cpu_subtype,
+                                       cpu_type_t expected_cpu_type,
+                                       cpu_subtype_t expected_cpu_subtype) {
+  fprintf(stderr, "%s: CPU type %d, subtype %d does not match expected"
+          " type %d, subtype %d\n",
+          filename_.c_str(), cpu_type, cpu_subtype,
+          expected_cpu_type, expected_cpu_subtype);
+}
+
+void Reader::Reporter::HeaderTruncated() {
+  fprintf(stderr, "%s: file does not contain a complete Mach-O header\n",
+          filename_.c_str());
+}
+
+void Reader::Reporter::LoadCommandRegionTruncated() {
+  fprintf(stderr, "%s: file too short to hold load command region"
+          " given in Mach-O header\n", filename_.c_str());
+}
+
+void Reader::Reporter::LoadCommandsOverrun(size_t claimed, size_t i,
+                                           LoadCommandType type) {
+  fprintf(stderr, "%s: file's header claims there are %zu"
+          " load commands, but load command #%zu",
+          filename_.c_str(), claimed, i);
+  if (type) fprintf(stderr, ", of type %d,", type);
+  fprintf(stderr, " extends beyond the end of the load command region\n");
+}
+
+void Reader::Reporter::LoadCommandTooShort(size_t i, LoadCommandType type) {
+  fprintf(stderr, "%s: the contents of load command #%zu, of type %d,"
+          " extend beyond the size given in the load command's header\n",
+          filename_.c_str(), i, type);
+}
+
+void Reader::Reporter::SectionsMissing(const string& name) {
+  fprintf(stderr, "%s: the load command for segment '%s'"
+          " is too short to hold the section headers it claims to have\n",
+          filename_.c_str(), name.c_str());
+}
+
+void Reader::Reporter::MisplacedSegmentData(const string& name) {
+  fprintf(stderr, "%s: the segment '%s' claims its contents lie beyond"
+          " the end of the file\n", filename_.c_str(), name.c_str());
+}
+
+void Reader::Reporter::MisplacedSectionData(const string& section,
+                                            const string& segment) {
+  fprintf(stderr, "%s: the section '%s' in segment '%s'"
+          " claims its contents lie outside the segment's contents\n",
+          filename_.c_str(), section.c_str(), segment.c_str());
+}
+
+void Reader::Reporter::MisplacedSymbolTable() {
+  fprintf(stderr, "%s: the LC_SYMTAB load command claims that the symbol"
+          " table's contents are located beyond the end of the file\n",
+          filename_.c_str());
+}
+
+void Reader::Reporter::UnsupportedCPUType(cpu_type_t cpu_type) {
+  fprintf(stderr, "%s: CPU type %d is not supported\n",
+          filename_.c_str(), cpu_type);
+}
+
+bool Reader::Read(const uint8_t* buffer,
+                  size_t size,
+                  cpu_type_t expected_cpu_type,
+                  cpu_subtype_t expected_cpu_subtype) {
+  assert(!buffer_.start);
+  buffer_.start = buffer;
+  buffer_.end = buffer + size;
+  ByteCursor cursor(&buffer_, true);
+  uint32_t magic;
+  if (!(cursor >> magic)) {
+    reporter_->HeaderTruncated();
+    return false;
+  }
+
+  if (expected_cpu_type != CPU_TYPE_ANY) {
+    uint32_t expected_magic;
+    // validate that magic matches the expected cpu type
+    switch (expected_cpu_type) {
+      case CPU_TYPE_ARM:
+      case CPU_TYPE_I386:
+        expected_magic = MH_CIGAM;
+        break;
+      case CPU_TYPE_POWERPC:
+        expected_magic = MH_MAGIC;
+        break;
+      case CPU_TYPE_ARM_64:
+      case CPU_TYPE_X86_64:
+        expected_magic = MH_CIGAM_64;
+        break;
+      case CPU_TYPE_POWERPC64:
+        expected_magic = MH_MAGIC_64;
+        break;
+      default:
+        reporter_->UnsupportedCPUType(expected_cpu_type);
+        return false;
+    }
+
+    if (expected_magic != magic) {
+      reporter_->BadHeader();
+      return false;
+    }
+  }
+
+  // Since the byte cursor is in big-endian mode, a reversed magic number
+  // always indicates a little-endian file, regardless of our own endianness.
+  switch (magic) {
+    case MH_MAGIC:    big_endian_ = true;  bits_64_ = false; break;
+    case MH_CIGAM:    big_endian_ = false; bits_64_ = false; break;
+    case MH_MAGIC_64: big_endian_ = true;  bits_64_ = true;  break;
+    case MH_CIGAM_64: big_endian_ = false; bits_64_ = true;  break;
+    default:
+      reporter_->BadHeader();
+      return false;
+  }
+  cursor.set_big_endian(big_endian_);
+  uint32_t commands_size, reserved;
+  cursor >> cpu_type_ >> cpu_subtype_ >> file_type_ >> load_command_count_
+         >> commands_size >> flags_;
+  if (bits_64_)
+    cursor >> reserved;
+  if (!cursor) {
+    reporter_->HeaderTruncated();
+    return false;
+  }
+
+  if (expected_cpu_type != CPU_TYPE_ANY &&
+      (expected_cpu_type != cpu_type_ ||
+       expected_cpu_subtype != cpu_subtype_)) {
+    reporter_->CPUTypeMismatch(cpu_type_, cpu_subtype_,
+                              expected_cpu_type, expected_cpu_subtype);
+    return false;
+  }
+
+  cursor
+      .PointTo(&load_commands_.start, commands_size)
+      .PointTo(&load_commands_.end, 0);
+  if (!cursor) {
+    reporter_->LoadCommandRegionTruncated();
+    return false;
+  }
+
+  return true;
+}
+
+bool Reader::WalkLoadCommands(Reader::LoadCommandHandler* handler) const {
+  ByteCursor list_cursor(&load_commands_, big_endian_);
+
+  for (size_t index = 0; index < load_command_count_; ++index) {
+    // command refers to this load command alone, so that cursor will
+    // refuse to read past the load command's end. But since we haven't
+    // read the size yet, let command initially refer to the entire
+    // remainder of the load command series.
+    ByteBuffer command(list_cursor.here(), list_cursor.Available());
+    ByteCursor cursor(&command, big_endian_);
+
+    // Read the command type and size --- fields common to all commands.
+    uint32_t type, size;
+    if (!(cursor >> type)) {
+      reporter_->LoadCommandsOverrun(load_command_count_, index, 0);
+      return false;
+    }
+    if (!(cursor >> size) || size > command.Size()) {
+      reporter_->LoadCommandsOverrun(load_command_count_, index, type);
+      return false;
+    }
+
+    // Now that we've read the length, restrict command's range to this
+    // load command only.
+    command.end = command.start + size;
+
+    switch (type) {
+      case LC_SEGMENT:
+      case LC_SEGMENT_64: {
+        Segment segment;
+        segment.bits_64 = (type == LC_SEGMENT_64);
+        size_t word_size = segment.bits_64 ? 8 : 4;
+        cursor.CString(&segment.name, 16);
+        cursor
+            .Read(word_size, false, &segment.vmaddr)
+            .Read(word_size, false, &segment.vmsize)
+            .Read(word_size, false, &segment.fileoff)
+            .Read(word_size, false, &segment.filesize);
+        cursor >> segment.maxprot
+               >> segment.initprot
+               >> segment.nsects
+               >> segment.flags;
+        if (!cursor) {
+          reporter_->LoadCommandTooShort(index, type);
+          return false;
+        }
+        if (segment.fileoff > buffer_.Size() ||
+            segment.filesize > buffer_.Size() - segment.fileoff) {
+          reporter_->MisplacedSegmentData(segment.name);
+          return false;
+        }
+        // Mach-O files in .dSYM bundles have the contents of the loaded
+        // segments removed, and their file offsets and file sizes zeroed
+        // out. To help us handle this special case properly, give such
+        // segments' contents NULL starting and ending pointers.
+        if (segment.fileoff == 0 && segment.filesize == 0) {
+          segment.contents.start = segment.contents.end = NULL;
+        } else {
+          segment.contents.start = buffer_.start + segment.fileoff;
+          segment.contents.end = segment.contents.start + segment.filesize;
+        }
+        // The section list occupies the remainder of this load command's space.
+        segment.section_list.start = cursor.here();
+        segment.section_list.end = command.end;
+
+        if (!handler->SegmentCommand(segment))
+          return false;
+        break;
+      }
+
+      case LC_SYMTAB: {
+        uint32_t symoff, nsyms, stroff, strsize;
+        cursor >> symoff >> nsyms >> stroff >> strsize;
+        if (!cursor) {
+          reporter_->LoadCommandTooShort(index, type);
+          return false;
+        }
+        // How big are the entries in the symbol table?
+        // sizeof(struct nlist_64) : sizeof(struct nlist),
+        // but be paranoid about alignment vs. target architecture.
+        size_t symbol_size = bits_64_ ? 16 : 12;
+        // How big is the entire symbol array?
+        size_t symbols_size = nsyms * symbol_size;
+        if (symoff > buffer_.Size() || symbols_size > buffer_.Size() - symoff ||
+            stroff > buffer_.Size() || strsize > buffer_.Size() - stroff) {
+          reporter_->MisplacedSymbolTable();
+          return false;
+        }
+        ByteBuffer entries(buffer_.start + symoff, symbols_size);
+        ByteBuffer names(buffer_.start + stroff, strsize);
+        if (!handler->SymtabCommand(entries, names))
+          return false;
+        break;
+      }
+
+      default: {
+        if (!handler->UnknownCommand(type, command))
+          return false;
+        break;
+      }
+    }
+
+    list_cursor.set_here(command.end);
+  }
+
+  return true;
+}
+
+// A load command handler that looks for a segment of a given name.
+class Reader::SegmentFinder : public LoadCommandHandler {
+ public:
+  // Create a load command handler that looks for a segment named NAME,
+  // and sets SEGMENT to describe it if found.
+  SegmentFinder(const string& name, Segment* segment)
+      : name_(name), segment_(segment), found_() { }
+
+  // Return true if the traversal found the segment, false otherwise.
+  bool found() const { return found_; }
+
+  bool SegmentCommand(const Segment& segment) {
+    if (segment.name == name_) {
+      *segment_ = segment;
+      found_ = true;
+      return false;
+    }
+    return true;
+  }
+
+ private:
+  // The name of the segment our creator is looking for.
+  const string& name_;
+
+  // Where we should store the segment if found. (WEAK)
+  Segment* segment_;
+
+  // True if we found the segment.
+  bool found_;
+};
+
+bool Reader::FindSegment(const string& name, Segment* segment) const {
+  SegmentFinder finder(name, segment);
+  WalkLoadCommands(&finder);
+  return finder.found();
+}
+
+bool Reader::WalkSegmentSections(const Segment& segment,
+                                 SectionHandler* handler) const {
+  size_t word_size = segment.bits_64 ? 8 : 4;
+  ByteCursor cursor(&segment.section_list, big_endian_);
+
+  for (size_t i = 0; i < segment.nsects; i++) {
+    Section section;
+    section.bits_64 = segment.bits_64;
+    uint64_t size, offset;
+    uint32_t dummy32;
+    cursor
+        .CString(&section.section_name, 16)
+        .CString(&section.segment_name, 16)
+        .Read(word_size, false, &section.address)
+        .Read(word_size, false, &size)
+        .Read(sizeof(uint32_t), false, &offset)  // clears high bits of |offset|
+        >> section.align
+        >> dummy32
+        >> dummy32
+        >> section.flags
+        >> dummy32
+        >> dummy32;
+    if (section.bits_64)
+      cursor >> dummy32;
+    if (!cursor) {
+      reporter_->SectionsMissing(segment.name);
+      return false;
+    }
+
+    // Even 64-bit Mach-O isn’t a true 64-bit format in that it doesn’t handle
+    // 64-bit file offsets gracefully. Segment load commands do contain 64-bit
+    // file offsets, but sections within do not. Because segments load
+    // contiguously, recompute each section’s file offset on the basis of its
+    // containing segment’s file offset and the difference between the section’s
+    // and segment’s load addresses. If truncation is detected, honor the
+    // recomputed offset.
+    if (segment.bits_64 &&
+        segment.fileoff + segment.filesize >
+            std::numeric_limits<uint32_t>::max()) {
+      const uint64_t section_offset_recomputed =
+          segment.fileoff + section.address - segment.vmaddr;
+      if (offset == static_cast<uint32_t>(section_offset_recomputed)) {
+        offset = section_offset_recomputed;
+      }
+    }
+
+    const uint32_t section_type = section.flags & SECTION_TYPE;
+    if (section_type == S_ZEROFILL || section_type == S_THREAD_LOCAL_ZEROFILL ||
+            section_type == S_GB_ZEROFILL) {
+      // Zero-fill sections have a size, but no contents.
+      section.contents.start = section.contents.end = NULL;
+    } else if (segment.contents.start == NULL &&
+               segment.contents.end == NULL) {
+      // Mach-O files in .dSYM bundles have the contents of the loaded
+      // segments removed, and their file offsets and file sizes zeroed
+      // out.  However, the sections within those segments still have
+      // non-zero sizes.  There's no reason to call MisplacedSectionData in
+      // this case; the caller may just need the section's load
+      // address. But do set the contents' limits to NULL, for safety.
+      section.contents.start = section.contents.end = NULL;
+    } else {
+      if (offset < size_t(segment.contents.start - buffer_.start) ||
+          offset > size_t(segment.contents.end - buffer_.start) ||
+          size > size_t(segment.contents.end - buffer_.start - offset)) {
+        reporter_->MisplacedSectionData(section.section_name,
+                                        section.segment_name);
+        return false;
+      }
+      section.contents.start = buffer_.start + offset;
+      section.contents.end = section.contents.start + size;
+    }
+    if (!handler->HandleSection(section))
+      return false;
+  }
+  return true;
+}
+
+// A SectionHandler that builds a SectionMap for the sections within a
+// given segment.
+class Reader::SectionMapper: public SectionHandler {
+ public:
+  // Create a SectionHandler that populates MAP with an entry for
+  // each section it is given.
+  SectionMapper(SectionMap* map) : map_(map) { }
+  bool HandleSection(const Section& section) {
+    (*map_)[section.section_name] = section;
+    return true;
+  }
+ private:
+  // The map under construction. (WEAK)
+  SectionMap* map_;
+};
+
+bool Reader::MapSegmentSections(const Segment& segment,
+                                SectionMap* section_map) const {
+  section_map->clear();
+  SectionMapper mapper(section_map);
+  return WalkSegmentSections(segment, &mapper);
+}
+
+}  // namespace mach_o
+}  // namespace google_breakpad
diff --git a/src/common/mac/macho_reader.h b/src/common/mac/macho_reader.h
new file mode 100644
index 0000000..02762c5
--- /dev/null
+++ b/src/common/mac/macho_reader.h
@@ -0,0 +1,464 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// macho_reader.h: A class for parsing Mach-O files.
+
+#ifndef BREAKPAD_COMMON_MAC_MACHO_READER_H_
+#define BREAKPAD_COMMON_MAC_MACHO_READER_H_
+
+#include <mach-o/loader.h>
+#include <mach-o/fat.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/byte_cursor.h"
+#include "common/mac/super_fat_arch.h"
+
+namespace google_breakpad {
+namespace mach_o {
+
+using std::map;
+using std::string;
+using std::vector;
+
+// The Mac headers don't specify particular types for these groups of
+// constants, but defining them here provides some documentation
+// value.  We also give them the same width as the fields in which
+// they appear, which makes them a bit easier to use with ByteCursors.
+typedef uint32_t Magic;
+typedef uint32_t FileType;
+typedef uint32_t FileFlags;
+typedef uint32_t LoadCommandType;
+typedef uint32_t SegmentFlags;
+typedef uint32_t SectionFlags;
+
+// A parser for fat binary files, used to store universal binaries.
+// When applied to a (non-fat) Mach-O file, this behaves as if the
+// file were a fat file containing a single object file.
+class FatReader {
+ public:
+
+  // A class for reporting errors found while parsing fat binary files. The
+  // default definitions of these methods print messages to stderr.
+  class Reporter {
+   public:
+    // Create a reporter that attributes problems to |filename|.
+    explicit Reporter(const string& filename) : filename_(filename) { }
+
+    virtual ~Reporter() { }
+
+    // The data does not begin with a fat binary or Mach-O magic number.
+    // This is a fatal error.
+    virtual void BadHeader();
+
+    // The Mach-O fat binary file ends abruptly, without enough space
+    // to contain an object file it claims is present.
+    virtual void MisplacedObjectFile();
+
+    // The file ends abruptly: either it is not large enough to hold a
+    // complete header, or the header implies that contents are present
+    // beyond the actual end of the file.
+    virtual void TooShort();
+
+   private:
+    // The filename to which the reader should attribute problems.
+    string filename_;
+  };
+
+  // Create a fat binary file reader that uses |reporter| to report problems.
+  explicit FatReader(Reporter* reporter) : reporter_(reporter) { }
+
+  // Read the |size| bytes at |buffer| as a fat binary file. On success,
+  // return true; on failure, report the problem to reporter_ and return
+  // false.
+  //
+  // If the data is a plain Mach-O file, rather than a fat binary file,
+  // then the reader behaves as if it had found a fat binary file whose
+  // single object file is the Mach-O file.
+  bool Read(const uint8_t* buffer, size_t size);
+
+  // Return an array of 'SuperFatArch' structures describing the
+  // object files present in this fat binary file. Set |size| to the
+  // number of elements in the array.
+  //
+  // Assuming Read returned true, the entries are validated: it is safe to
+  // assume that the offsets and sizes in each SuperFatArch refer to subranges
+  // of the bytes passed to Read.
+  //
+  // If there are no object files in this fat binary, then this
+  // function can return NULL.
+  //
+  // The array is owned by this FatReader instance; it will be freed when
+  // this FatReader is destroyed.
+  //
+  // This function returns a C-style array instead of a vector to make it
+  // possible to use the result with OS X functions like NXFindBestFatArch,
+  // so that the symbol dumper will behave consistently with other OS X
+  // utilities that work with fat binaries.
+  const SuperFatArch* object_files(size_t* count) const {
+    *count = object_files_.size();
+    if (object_files_.size() > 0)
+      return &object_files_[0];
+    return NULL;
+  }
+
+ private:
+  // We use this to report problems parsing the file's contents. (WEAK)
+  Reporter* reporter_;
+
+  // The contents of the fat binary or Mach-O file we're parsing. We do not
+  // own the storage it refers to.
+  ByteBuffer buffer_;
+
+  // The magic number of this binary, in host byte order.
+  Magic magic_;
+
+  // The list of object files in this binary.
+  // object_files_.size() == fat_header.nfat_arch
+  vector<SuperFatArch> object_files_;
+};
+
+// A segment in a Mach-O file. All these fields have been byte-swapped as
+// appropriate for use by the executing architecture.
+struct Segment {
+  // The ByteBuffers below point into the bytes passed to the Reader that
+  // created this Segment.
+
+  ByteBuffer section_list;    // This segment's section list.
+  ByteBuffer contents;        // This segment's contents.
+
+  // This segment's name.
+  string name;
+
+  // The address at which this segment should be loaded in memory. If
+  // bits_64 is false, only the bottom 32 bits of this value are valid.
+  uint64_t vmaddr;
+
+  // The size of this segment when loaded into memory. This may be larger
+  // than contents.Size(), in which case the extra area will be
+  // initialized with zeros. If bits_64 is false, only the bottom 32 bits
+  // of this value are valid.
+  uint64_t vmsize;
+
+  // The file offset and size of the segment in the Mach-O image.
+  uint64_t fileoff;
+  uint64_t filesize;
+
+  // The maximum and initial VM protection of this segment's contents.
+  uint32_t maxprot;
+  uint32_t initprot;
+
+  // The number of sections in section_list.
+  uint32_t nsects;
+
+  // Flags describing this segment, from SegmentFlags.
+  uint32_t flags;
+
+  // True if this is a 64-bit section; false if it is a 32-bit section.
+  bool bits_64;
+};
+
+// A section in a Mach-O file. All these fields have been byte-swapped as
+// appropriate for use by the executing architecture.
+struct Section {
+  // This section's contents. This points into the bytes passed to the
+  // Reader that created this Section.
+  ByteBuffer contents;
+
+  // This section's name.
+  string section_name;  // section[_64].sectname
+  // The name of the segment this section belongs to.
+  string segment_name;  // section[_64].segname
+
+  // The address at which this section's contents should be loaded in
+  // memory. If bits_64 is false, only the bottom 32 bits of this value
+  // are valid.
+  uint64_t address;
+
+  // The contents of this section should be loaded into memory at an
+  // address which is a multiple of (two raised to this power).
+  uint32_t align;
+
+  // Flags from SectionFlags describing the section's contents.
+  uint32_t flags;
+
+  // We don't support reading relocations yet.
+
+  // True if this is a 64-bit section; false if it is a 32-bit section.
+  bool bits_64;
+};
+
+// A map from section names to Sections.
+typedef map<string, Section> SectionMap;
+
+// A reader for a Mach-O file.
+//
+// This does not handle fat binaries; see FatReader above. FatReader
+// provides a friendly interface for parsing data that could be either a
+// fat binary or a Mach-O file.
+class Reader {
+ public:
+
+  // A class for reporting errors found while parsing Mach-O files. The
+  // default definitions of these member functions print messages to
+  // stderr.
+  class Reporter {
+   public:
+    // Create a reporter that attributes problems to |filename|.
+    explicit Reporter(const string& filename) : filename_(filename) { }
+    virtual ~Reporter() { }
+
+    // Reporter functions for fatal errors return void; the reader will
+    // definitely return an error to its caller after calling them
+
+    // The data does not begin with a Mach-O magic number, or the magic
+    // number does not match the expected value for the cpu architecture.
+    // This is a fatal error.
+    virtual void BadHeader();
+
+    // The data contained in a Mach-O fat binary (|cpu_type|, |cpu_subtype|)
+    // does not match the expected CPU architecture
+    // (|expected_cpu_type|, |expected_cpu_subtype|).
+    virtual void CPUTypeMismatch(cpu_type_t cpu_type,
+                                 cpu_subtype_t cpu_subtype,
+                                 cpu_type_t expected_cpu_type,
+                                 cpu_subtype_t expected_cpu_subtype);
+
+    // The file ends abruptly: either it is not large enough to hold a
+    // complete header, or the header implies that contents are present
+    // beyond the actual end of the file.
+    virtual void HeaderTruncated();
+
+    // The file's load command region, as given in the Mach-O header, is
+    // too large for the file.
+    virtual void LoadCommandRegionTruncated();
+
+    // The file's Mach-O header claims the file contains |claimed| load
+    // commands, but the I'th load command, of type |type|, extends beyond
+    // the end of the load command region, as given by the Mach-O header.
+    // If |type| is zero, the command's type was unreadable.
+    virtual void LoadCommandsOverrun(size_t claimed, size_t i,
+                                     LoadCommandType type);
+
+    // The contents of the |i|'th load command, of type |type|, extend beyond
+    // the size given in the load command's header.
+    virtual void LoadCommandTooShort(size_t i, LoadCommandType type);
+
+    // The LC_SEGMENT or LC_SEGMENT_64 load command for the segment named
+    // |name| is too short to hold the sections that its header says it does.
+    // (This more specific than LoadCommandTooShort.)
+    virtual void SectionsMissing(const string& name);
+
+    // The segment named |name| claims that its contents lie beyond the end
+    // of the file.
+    virtual void MisplacedSegmentData(const string& name);
+
+    // The section named |section| in the segment named |segment| claims that
+    // its contents do not lie entirely within the segment.
+    virtual void MisplacedSectionData(const string& section,
+                                      const string& segment);
+
+    // The LC_SYMTAB command claims that symbol table contents are located
+    // beyond the end of the file.
+    virtual void MisplacedSymbolTable();
+
+    // An attempt was made to read a Mach-O file of the unsupported
+    // CPU architecture |cpu_type|.
+    virtual void UnsupportedCPUType(cpu_type_t cpu_type);
+
+   private:
+    string filename_;
+  };
+
+  // A handler for sections parsed from a segment. The WalkSegmentSections
+  // member function accepts an instance of this class, and applies it to
+  // each section defined in a given segment.
+  class SectionHandler {
+   public:
+    virtual ~SectionHandler() { }
+
+    // Called to report that the segment's section list contains |section|.
+    // This should return true if the iteration should continue, or false
+    // if it should stop.
+    virtual bool HandleSection(const Section& section) = 0;
+  };
+
+  // A handler for the load commands in a Mach-O file.
+  class LoadCommandHandler {
+   public:
+    LoadCommandHandler() { }
+    virtual ~LoadCommandHandler() { }
+
+    // When called from WalkLoadCommands, the following handler functions
+    // should return true if they wish to continue iterating over the load
+    // command list, or false if they wish to stop iterating.
+    //
+    // When called from LoadCommandIterator::Handle or Reader::Handle,
+    // these functions' return values are simply passed through to Handle's
+    // caller.
+    //
+    // The definitions provided by this base class simply return true; the
+    // default is to silently ignore sections whose member functions the
+    // subclass doesn't override.
+
+    // COMMAND is load command we don't recognize. We provide only the
+    // command type and a ByteBuffer enclosing the command's data (If we
+    // cannot parse the command type or its size, we call
+    // reporter_->IncompleteLoadCommand instead.)
+    virtual bool UnknownCommand(LoadCommandType type,
+                                const ByteBuffer& contents) {
+      return true;
+    }
+
+    // The load command is LC_SEGMENT or LC_SEGMENT_64, defining a segment
+    // with the properties given in |segment|.
+    virtual bool SegmentCommand(const Segment& segment) {
+      return true;
+    }
+
+    // The load command is LC_SYMTAB. |entries| holds the array of nlist
+    // entries, and |names| holds the strings the entries refer to.
+    virtual bool SymtabCommand(const ByteBuffer& entries,
+                               const ByteBuffer& names) {
+      return true;
+    }
+
+    // Add handler functions for more load commands here as needed.
+  };
+
+  // Create a Mach-O file reader that reports problems to |reporter|.
+  explicit Reader(Reporter* reporter)
+      : reporter_(reporter) { }
+
+  // Read the given data as a Mach-O file. The reader retains pointers
+  // into the data passed, so the data should live as long as the reader
+  // does. On success, return true; on failure, return false.
+  //
+  // At most one of these functions should be invoked once on each Reader
+  // instance.
+  bool Read(const uint8_t* buffer,
+            size_t size,
+            cpu_type_t expected_cpu_type,
+            cpu_subtype_t expected_cpu_subtype);
+  bool Read(const ByteBuffer& buffer,
+            cpu_type_t expected_cpu_type,
+            cpu_subtype_t expected_cpu_subtype) {
+    return Read(buffer.start,
+                buffer.Size(),
+                expected_cpu_type,
+                expected_cpu_subtype);
+  }
+
+  // Return this file's characteristics, as found in the Mach-O header.
+  cpu_type_t    cpu_type()    const { return cpu_type_; }
+  cpu_subtype_t cpu_subtype() const { return cpu_subtype_; }
+  FileType      file_type()   const { return file_type_; }
+  FileFlags     flags()       const { return flags_; }
+
+  // Return true if this is a 64-bit Mach-O file, false if it is a 32-bit
+  // Mach-O file.
+  bool bits_64() const { return bits_64_; }
+
+  // Return true if this is a big-endian Mach-O file, false if it is
+  // little-endian.
+  bool big_endian() const { return big_endian_; }
+
+  // Apply |handler| to each load command in this Mach-O file, stopping when
+  // a handler function returns false. If we encounter a malformed load
+  // command, report it via reporter_ and return false. Return true if all
+  // load commands were parseable and all handlers returned true.
+  bool WalkLoadCommands(LoadCommandHandler* handler) const;
+
+  // Set |segment| to describe the segment named |name|, if present. If
+  // found, |segment|'s byte buffers refer to a subregion of the bytes
+  // passed to Read. If we find the section, return true; otherwise,
+  // return false.
+  bool FindSegment(const string& name, Segment* segment) const;
+
+  // Apply |handler| to each section defined in |segment|. If |handler| returns
+  // false, stop iterating and return false. If all calls to |handler| return
+  // true and we reach the end of the section list, return true.
+  bool WalkSegmentSections(const Segment& segment, SectionHandler* handler)
+    const;
+
+  // Clear |section_map| and then populate it with a map of the sections
+  // in |segment|, from section names to Section structures.
+  // Each Section's contents refer to bytes in |segment|'s contents.
+  // On success, return true; if a problem occurs, report it and return false.
+  bool MapSegmentSections(const Segment& segment, SectionMap* section_map)
+    const;
+
+ private:
+  // Used internally.
+  class SegmentFinder;
+  class SectionMapper;
+
+  // We use this to report problems parsing the file's contents. (WEAK)
+  Reporter* reporter_;
+
+  // The contents of the Mach-O file we're parsing. We do not own the
+  // storage it refers to.
+  ByteBuffer buffer_;
+
+  // True if this file is big-endian.
+  bool big_endian_;
+
+  // True if this file is a 64-bit Mach-O file.
+  bool bits_64_;
+
+  // This file's cpu type and subtype.
+  cpu_type_t cpu_type_;        // mach_header[_64].cputype
+  cpu_subtype_t cpu_subtype_;  // mach_header[_64].cpusubtype
+
+  // This file's type.
+  FileType file_type_;         // mach_header[_64].filetype
+
+  // The region of buffer_ occupied by load commands.
+  ByteBuffer load_commands_;
+
+  // The number of load commands in load_commands_.
+  uint32_t load_command_count_;  // mach_header[_64].ncmds
+
+  // This file's header flags.
+  FileFlags flags_;
+};
+
+}  // namespace mach_o
+}  // namespace google_breakpad
+
+#endif  // BREAKPAD_COMMON_MAC_MACHO_READER_H_
diff --git a/src/common/mac/macho_reader_unittest.cc b/src/common/mac/macho_reader_unittest.cc
new file mode 100644
index 0000000..dccda4e
--- /dev/null
+++ b/src/common/mac/macho_reader_unittest.cc
@@ -0,0 +1,1902 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// macho_reader_unittest.cc: Unit tests for google_breakpad::Mach_O::FatReader
+// and google_breakpad::Mach_O::Reader.
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/mac/macho_reader.h"
+#include "common/test_assembler.h"
+
+namespace mach_o = google_breakpad::mach_o;
+namespace test_assembler = google_breakpad::test_assembler;
+
+using mach_o::FatReader;
+using mach_o::FileFlags;
+using mach_o::FileType;
+using mach_o::LoadCommandType;
+using mach_o::Reader;
+using mach_o::Section;
+using mach_o::SectionMap;
+using mach_o::Segment;
+using test_assembler::Endianness;
+using test_assembler::Label;
+using test_assembler::kBigEndian;
+using test_assembler::kLittleEndian;
+using test_assembler::kUnsetEndian;
+using google_breakpad::ByteBuffer;
+using std::map;
+using std::string;
+using std::vector;
+using testing::AllOf;
+using testing::DoAll;
+using testing::Field;
+using testing::InSequence;
+using testing::Matcher;
+using testing::Return;
+using testing::SaveArg;
+using testing::Test;
+using testing::_;
+
+
+// Mock classes for the reader's various reporters and handlers.
+
+class MockFatReaderReporter: public FatReader::Reporter {
+ public:
+  MockFatReaderReporter(const string& filename)
+      : FatReader::Reporter(filename) { }
+  MOCK_METHOD0(BadHeader, void());
+  MOCK_METHOD0(MisplacedObjectFile, void());
+  MOCK_METHOD0(TooShort, void());
+};
+
+class MockReaderReporter: public Reader::Reporter {
+ public:
+  MockReaderReporter(const string& filename) : Reader::Reporter(filename) { }
+  MOCK_METHOD0(BadHeader, void());
+  MOCK_METHOD4(CPUTypeMismatch, void(cpu_type_t cpu_type,
+                                     cpu_subtype_t cpu_subtype,
+                                     cpu_type_t expected_cpu_type,
+                                     cpu_subtype_t expected_cpu_subtype));
+  MOCK_METHOD0(HeaderTruncated, void());
+  MOCK_METHOD0(LoadCommandRegionTruncated, void());
+  MOCK_METHOD3(LoadCommandsOverrun, void(size_t claimed, size_t i,
+                                         LoadCommandType type));
+  MOCK_METHOD2(LoadCommandTooShort, void(size_t i, LoadCommandType type));
+  MOCK_METHOD1(SectionsMissing, void(const string& name));
+  MOCK_METHOD1(MisplacedSegmentData, void(const string& name));
+  MOCK_METHOD2(MisplacedSectionData, void(const string& section,
+                                          const string& segment));
+  MOCK_METHOD0(MisplacedSymbolTable, void());
+  MOCK_METHOD1(UnsupportedCPUType, void(cpu_type_t cpu_type));
+};
+
+class MockLoadCommandHandler: public Reader::LoadCommandHandler {
+ public:
+  MOCK_METHOD2(UnknownCommand, bool(LoadCommandType, const ByteBuffer&));
+  MOCK_METHOD1(SegmentCommand, bool(const Segment&));
+  MOCK_METHOD2(SymtabCommand,  bool(const ByteBuffer&, const ByteBuffer&));
+};
+
+class MockSectionHandler: public Reader::SectionHandler {
+ public:
+  MOCK_METHOD1(HandleSection, bool(const Section& section));
+};
+
+
+// Tests for mach_o::FatReader.
+
+// Since the effect of these functions is to write to stderr, the
+// results of these tests must be inspected by hand.
+TEST(FatReaderReporter, BadHeader) {
+  FatReader::Reporter reporter("filename");
+  reporter.BadHeader();
+}
+
+TEST(FatReaderReporter, MisplacedObjectFile) {
+  FatReader::Reporter reporter("filename");
+  reporter.MisplacedObjectFile();
+}
+
+TEST(FatReaderReporter, TooShort) {
+  FatReader::Reporter reporter("filename");
+  reporter.TooShort();
+}
+
+TEST(MachOReaderReporter, BadHeader) {
+  Reader::Reporter reporter("filename");
+  reporter.BadHeader();
+}
+
+TEST(MachOReaderReporter, CPUTypeMismatch) {
+  Reader::Reporter reporter("filename");
+  reporter.CPUTypeMismatch(CPU_TYPE_I386, CPU_SUBTYPE_X86_ALL,
+                           CPU_TYPE_POWERPC, CPU_SUBTYPE_POWERPC_ALL);
+}
+
+TEST(MachOReaderReporter, HeaderTruncated) {
+  Reader::Reporter reporter("filename");
+  reporter.HeaderTruncated();
+}
+
+TEST(MachOReaderReporter, LoadCommandRegionTruncated) {
+  Reader::Reporter reporter("filename");
+  reporter.LoadCommandRegionTruncated();
+}
+
+TEST(MachOReaderReporter, LoadCommandsOverrun) {
+  Reader::Reporter reporter("filename");
+  reporter.LoadCommandsOverrun(10, 9, LC_DYSYMTAB);
+  reporter.LoadCommandsOverrun(10, 9, 0);
+}
+
+TEST(MachOReaderReporter, LoadCommandTooShort) {
+  Reader::Reporter reporter("filename");
+  reporter.LoadCommandTooShort(11, LC_SYMTAB);
+}
+
+TEST(MachOReaderReporter, SectionsMissing) {
+  Reader::Reporter reporter("filename");
+  reporter.SectionsMissing("segment name");
+}
+
+TEST(MachOReaderReporter, MisplacedSegmentData) {
+  Reader::Reporter reporter("filename");
+  reporter.MisplacedSegmentData("segment name");
+}
+
+TEST(MachOReaderReporter, MisplacedSectionData) {
+  Reader::Reporter reporter("filename");
+  reporter.MisplacedSectionData("section name", "segment name");
+}
+
+TEST(MachOReaderReporter, MisplacedSymbolTable) {
+  Reader::Reporter reporter("filename");
+  reporter.MisplacedSymbolTable();
+}
+
+TEST(MachOReaderReporter, UnsupportedCPUType) {
+  Reader::Reporter reporter("filename");
+  reporter.UnsupportedCPUType(CPU_TYPE_HPPA);
+}
+
+struct FatReaderFixture {
+  FatReaderFixture()
+      : fat(kBigEndian),
+        reporter("reporter filename"),
+        reader(&reporter), object_files() {
+    EXPECT_CALL(reporter, BadHeader()).Times(0);
+    EXPECT_CALL(reporter, TooShort()).Times(0);
+
+    // here, start, and Mark are file offsets in 'fat'.
+    fat.start() = 0;
+  }
+  // Append a 'fat_arch' entry to 'fat', with the given field values.
+  void AppendFatArch(cpu_type_t type, cpu_subtype_t subtype,
+                     Label offset, Label size, uint32_t align) {
+    fat
+        .B32(type)
+        .B32(subtype)
+        .B32(offset)
+        .B32(size)
+        .B32(align);
+  }
+  // Append |n| dummy 'fat_arch' entries to 'fat'. The cpu type and
+  // subtype have unrealistic values.
+  void AppendDummyArchEntries(int n) {
+    for (int i = 0; i < n; i++)
+      AppendFatArch(0xb68ad617, 0x715a0840, 0, 0, 1);
+  }
+  void ReadFat(bool expect_parse_success = true) {
+    ASSERT_TRUE(fat.GetContents(&contents));
+    fat_bytes = reinterpret_cast<const uint8_t*>(contents.data());
+    if (expect_parse_success) {
+      EXPECT_TRUE(reader.Read(fat_bytes, contents.size()));
+      size_t fat_files_count;
+      const SuperFatArch* fat_files = reader.object_files(&fat_files_count);
+      object_files.resize(fat_files_count);
+      for (size_t i = 0; i < fat_files_count; ++i) {
+        EXPECT_TRUE(fat_files[i].ConvertToFatArch(&object_files[i]));
+      }
+    }
+    else
+      EXPECT_FALSE(reader.Read(fat_bytes, contents.size()));
+  }
+  test_assembler::Section fat;
+  MockFatReaderReporter reporter;
+  FatReader reader;
+  string contents;
+  const uint8_t* fat_bytes;
+  vector<struct fat_arch> object_files;
+};
+
+class FatReaderTest: public FatReaderFixture, public Test { };
+
+TEST_F(FatReaderTest, BadMagic) {
+  EXPECT_CALL(reporter, BadHeader()).Times(1);
+  fat
+      .B32(0xcafed00d)           // magic number (incorrect)
+      .B32(10);                  // number of architectures
+  AppendDummyArchEntries(10);
+  ReadFat(false);
+}
+
+TEST_F(FatReaderTest, HeaderTooShort) {
+  EXPECT_CALL(reporter, TooShort()).Times(1);
+  fat
+      .B32(0xcafebabe);             // magic number
+  ReadFat(false);
+}
+
+TEST_F(FatReaderTest, ObjectListTooShort) {
+  EXPECT_CALL(reporter, TooShort()).Times(1);
+  fat
+      .B32(0xcafebabe)              // magic number
+      .B32(10);                     // number of architectures
+  AppendDummyArchEntries(9);        // nine dummy architecture entries...
+  fat                               // and a tenth, missing a byte at the end
+      .B32(0x3d46c8fc)              // cpu type
+      .B32(0x8a7bfb01)              // cpu subtype
+      .B32(0)                       // offset
+      .B32(0)                       // size
+      .Append(3, '*');              // one byte short of a four-byte alignment
+  ReadFat(false);
+}
+
+TEST_F(FatReaderTest, DataTooShort) {
+  EXPECT_CALL(reporter, MisplacedObjectFile()).Times(1);
+  Label arch_data;
+  fat
+      .B32(0xcafebabe)              // magic number
+      .B32(1);                      // number of architectures
+  AppendFatArch(0xb4d4a366, 0x4ba4f525, arch_data, 40, 0);
+  fat
+      .Mark(&arch_data)             // file data begins here
+      .Append(30, '*');             // only 30 bytes, not 40 as header claims
+  ReadFat(false);
+}
+
+TEST_F(FatReaderTest, NoObjectFiles) {
+  fat
+      .B32(0xcafebabe)              // magic number
+      .B32(0);                      // number of architectures
+  ReadFat();
+  EXPECT_EQ(0U, object_files.size());
+}
+
+TEST_F(FatReaderTest, OneObjectFile) {
+  Label obj1_offset;
+  fat
+      .B32(0xcafebabe)              // magic number
+      .B32(1);                      // number of architectures
+  // First object file list entry
+  AppendFatArch(0x5e3a6e91, 0x52ccd852, obj1_offset, 0x42, 0x355b15b2);
+  // First object file data
+  fat
+      .Mark(&obj1_offset)           
+      .Append(0x42, '*');           // dummy contents
+  ReadFat();
+  ASSERT_EQ(1U, object_files.size());
+  EXPECT_EQ(0x5e3a6e91, object_files[0].cputype);
+  EXPECT_EQ(0x52ccd852, object_files[0].cpusubtype);
+  EXPECT_EQ(obj1_offset.Value(), object_files[0].offset);
+  EXPECT_EQ(0x42U, object_files[0].size);
+  EXPECT_EQ(0x355b15b2U, object_files[0].align);
+}
+
+TEST_F(FatReaderTest, ThreeObjectFiles) {
+  Label obj1, obj2, obj3;
+  fat
+      .B32(0xcafebabe)              // magic number
+      .B32(3);                      // number of architectures
+  // Three object file list entries.
+  AppendFatArch(0x0cb92c30, 0x6a159a71, obj1, 0xfb4, 0x2615dbe8);
+  AppendFatArch(0x0f3f1cbb, 0x6c55e90f, obj2, 0xc31, 0x83af6ffd);
+  AppendFatArch(0x3717276d, 0x10ecdc84, obj3, 0x4b3, 0x035267d7);
+  fat
+      // First object file data
+      .Mark(&obj1)           
+      .Append(0xfb4, '*')           // dummy contents
+      // Second object file data
+      .Mark(&obj2)           
+      .Append(0xc31, '%')           // dummy contents
+      // Third object file data
+      .Mark(&obj3)           
+      .Append(0x4b3, '^');          // dummy contents
+  
+  ReadFat();
+
+  ASSERT_EQ(3U, object_files.size());
+
+  // First object file.
+  EXPECT_EQ(0x0cb92c30, object_files[0].cputype);
+  EXPECT_EQ(0x6a159a71, object_files[0].cpusubtype);
+  EXPECT_EQ(obj1.Value(), object_files[0].offset);
+  EXPECT_EQ(0xfb4U, object_files[0].size);
+  EXPECT_EQ(0x2615dbe8U, object_files[0].align);
+
+  // Second object file.
+  EXPECT_EQ(0x0f3f1cbb, object_files[1].cputype);
+  EXPECT_EQ(0x6c55e90f, object_files[1].cpusubtype);
+  EXPECT_EQ(obj2.Value(), object_files[1].offset);
+  EXPECT_EQ(0xc31U, object_files[1].size);
+  EXPECT_EQ(0x83af6ffdU, object_files[1].align);
+
+  // Third object file.
+  EXPECT_EQ(0x3717276d, object_files[2].cputype);
+  EXPECT_EQ(0x10ecdc84, object_files[2].cpusubtype);
+  EXPECT_EQ(obj3.Value(), object_files[2].offset);
+  EXPECT_EQ(0x4b3U, object_files[2].size);
+  EXPECT_EQ(0x035267d7U, object_files[2].align);
+}
+
+TEST_F(FatReaderTest, BigEndianMachO32) {
+  fat.set_endianness(kBigEndian);
+  fat
+      .D32(0xfeedface)                  // Mach-O file magic number
+      .D32(0x1a9d0518)                  // cpu type
+      .D32(0x1b779357)                  // cpu subtype
+      .D32(0x009df67e)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // the load commands occupy no bytes
+      .D32(0x21987a99);                 // flags
+
+  ReadFat();
+
+  // FatReader should treat a Mach-O file as if it were a fat binary file
+  // containing one object file --- the whole thing.
+  ASSERT_EQ(1U, object_files.size());
+  EXPECT_EQ(0x1a9d0518, object_files[0].cputype);
+  EXPECT_EQ(0x1b779357, object_files[0].cpusubtype);
+  EXPECT_EQ(0U, object_files[0].offset);
+  EXPECT_EQ(contents.size(), object_files[0].size);
+}
+
+TEST_F(FatReaderTest, BigEndianMachO64) {
+  fat.set_endianness(kBigEndian);
+  fat
+      .D32(0xfeedfacf)                  // Mach-O 64-bit file magic number
+      .D32(0x5aff8487)                  // cpu type
+      .D32(0x4c6a57f7)                  // cpu subtype
+      .D32(0x4392d2c8)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // the load commands occupy no bytes
+      .D32(0x1b033eea);                 // flags
+
+  ReadFat();
+
+  // FatReader should treat a Mach-O file as if it were a fat binary file
+  // containing one object file --- the whole thing.
+  ASSERT_EQ(1U, object_files.size());
+  EXPECT_EQ(0x5aff8487, object_files[0].cputype);
+  EXPECT_EQ(0x4c6a57f7, object_files[0].cpusubtype);
+  EXPECT_EQ(0U, object_files[0].offset);
+  EXPECT_EQ(contents.size(), object_files[0].size);
+}
+
+TEST_F(FatReaderTest, LittleEndianMachO32) {
+  fat.set_endianness(kLittleEndian);
+  fat
+      .D32(0xfeedface)                  // Mach-O file magic number
+      .D32(0x1a9d0518)                  // cpu type
+      .D32(0x1b779357)                  // cpu subtype
+      .D32(0x009df67e)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // the load commands occupy no bytes
+      .D32(0x21987a99);                 // flags
+
+  ReadFat();
+
+  // FatReader should treat a Mach-O file as if it were a fat binary file
+  // containing one object file --- the whole thing.
+  ASSERT_EQ(1U, object_files.size());
+  EXPECT_EQ(0x1a9d0518, object_files[0].cputype);
+  EXPECT_EQ(0x1b779357, object_files[0].cpusubtype);
+  EXPECT_EQ(0U, object_files[0].offset);
+  EXPECT_EQ(contents.size(), object_files[0].size);
+}
+
+TEST_F(FatReaderTest, LittleEndianMachO64) {
+  fat.set_endianness(kLittleEndian);
+  fat
+      .D32(0xfeedfacf)                  // Mach-O 64-bit file magic number
+      .D32(0x5aff8487)                  // cpu type
+      .D32(0x4c6a57f7)                  // cpu subtype
+      .D32(0x4392d2c8)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // the load commands occupy no bytes
+      .D32(0x1b033eea);                 // flags
+
+  ReadFat();
+
+  // FatReader should treat a Mach-O file as if it were a fat binary file
+  // containing one object file --- the whole thing.
+  ASSERT_EQ(1U, object_files.size());
+  EXPECT_EQ(0x5aff8487, object_files[0].cputype);
+  EXPECT_EQ(0x4c6a57f7, object_files[0].cpusubtype);
+  EXPECT_EQ(0U, object_files[0].offset);
+  EXPECT_EQ(contents.size(), object_files[0].size);
+}
+
+TEST_F(FatReaderTest, IncompleteMach) {
+  fat.set_endianness(kLittleEndian);
+  fat
+      .D32(0xfeedfacf)                  // Mach-O 64-bit file magic number
+      .D32(0x5aff8487);                 // cpu type
+      // Truncated!
+
+  EXPECT_CALL(reporter, TooShort()).WillOnce(Return());
+
+  ReadFat(false);
+}
+
+
+// General mach_o::Reader tests.
+
+// Dynamically scoped configuration data.
+class WithConfiguration {
+ public:
+  // Establish the given parameters as the default for SizedSections
+  // created within the dynamic scope of this instance.
+  WithConfiguration(Endianness endianness, size_t word_size)
+      : endianness_(endianness), word_size_(word_size), saved_(current_) {
+    current_ = this;
+  }
+  ~WithConfiguration() { current_ = saved_; }
+  static Endianness endianness() { 
+    assert(current_);
+    return current_->endianness_;
+  }
+  static size_t word_size() { 
+    assert(current_);
+    return current_->word_size_;
+  }
+
+ private:
+  // The innermost WithConfiguration in whose dynamic scope we are
+  // currently executing.
+  static WithConfiguration* current_;
+
+  // The innermost WithConfiguration whose dynamic scope encloses this
+  // WithConfiguration.
+  Endianness endianness_;
+  size_t word_size_;
+  WithConfiguration* saved_;
+};
+
+WithConfiguration* WithConfiguration::current_ = NULL;
+
+// A test_assembler::Section with a size that we can cite. The start(),
+// Here() and Mark() member functions of a SizedSection always represent
+// offsets within the overall file.
+class SizedSection: public test_assembler::Section {
+ public:
+  // Construct a section of the given endianness and word size.
+  explicit SizedSection(Endianness endianness, size_t word_size)
+      : test_assembler::Section(endianness), word_size_(word_size) {
+    assert(word_size_ == 32 || word_size_ == 64);
+  }
+  SizedSection()
+      : test_assembler::Section(WithConfiguration::endianness()),
+        word_size_(WithConfiguration::word_size()) {
+    assert(word_size_ == 32 || word_size_ == 64);
+  }
+
+  // Access/set this section's word size.
+  size_t word_size() const { return word_size_; }
+  void set_word_size(size_t word_size) { 
+    assert(word_size_ == 32 || word_size_ == 64);
+    word_size_ = word_size;
+  }
+
+  // Return a label representing the size this section will have when it
+  // is Placed in some containing section.
+  Label final_size() const { return final_size_; }
+
+  // Append SECTION to the end of this section, and call its Finish member.
+  // Return a reference to this section.
+  SizedSection& Place(SizedSection* section) {
+    assert(section->endianness() == endianness());
+    section->Finish();
+    section->start() = Here();
+    test_assembler::Section::Append(*section);
+    return *this;
+  }
+
+ protected:
+  // Mark this section's contents as complete. For plain SizedSections, we
+  // set SECTION's start to its position in this section, and its final_size
+  // label to its current size. Derived classes can extend this as needed
+  // for their additional semantics.
+  virtual void Finish() {
+    final_size_ = Size();
+  }
+
+  // The word size for this data: either 32 or 64.
+  size_t word_size_;
+
+ private:
+  // This section's final size, set when we are placed in some other
+  // SizedSection.
+  Label final_size_;
+};
+
+// A SizedSection that is loaded into memory at a particular address.
+class LoadedSection: public SizedSection {
+ public:
+  explicit LoadedSection(Label address = Label()) : address_(address) { }
+
+  // Return a label representing this section's address.
+  Label address() const { return address_; }
+
+  // Placing a loaded section within a loaded section sets the relationship
+  // between their addresses.
+  LoadedSection& Place(LoadedSection* section) {
+    section->address() = address() + Size();
+    SizedSection::Place(section);
+    return *this;
+  }
+
+ protected:
+  // The address at which this section's contents will be loaded.
+  Label address_;
+};
+  
+// A SizedSection representing a segment load command.
+class SegmentLoadCommand: public SizedSection {
+ public:
+  SegmentLoadCommand() : section_count_(0) { }
+
+  // Append a segment load command header with the given characteristics.
+  // The load command will refer to CONTENTS, which must be Placed in the
+  // file separately, at the desired position. Return a reference to this
+  // section.
+  SegmentLoadCommand& Header(const string& name, const LoadedSection& contents,
+                             uint32_t maxprot, uint32_t initprot,
+                             uint32_t flags) {
+    assert(contents.word_size() == word_size());
+    D32(word_size() == 32 ? LC_SEGMENT : LC_SEGMENT_64);
+    D32(final_size());
+    AppendCString(name, 16);
+    Append(endianness(), word_size() / 8, contents.address());
+    Append(endianness(), word_size() / 8, vmsize_);
+    Append(endianness(), word_size() / 8, contents.start());
+    Append(endianness(), word_size() / 8, contents.final_size());
+    D32(maxprot);
+    D32(initprot);
+    D32(final_section_count_);
+    D32(flags);
+
+    content_final_size_ = contents.final_size();
+
+    return *this;
+  }
+
+  // Return a label representing the size of this segment when loaded into
+  // memory. If this label is still undefined by the time we place this
+  // segment, it defaults to the final size of the segment's in-file
+  // contents. Return a reference to this load command.
+  Label& vmsize() { return vmsize_; }
+
+  // Add a section entry with the given characteristics to this segment
+  // load command. Return a reference to this. The section entry will refer
+  // to CONTENTS, which must be Placed in the segment's contents
+  // separately, at the desired position.
+  SegmentLoadCommand& AppendSectionEntry(const string& section_name,
+                                         const string& segment_name,
+                                         uint32_t alignment, uint32_t flags,
+                                         const LoadedSection& contents) {
+    AppendCString(section_name, 16);
+    AppendCString(segment_name, 16);
+    Append(endianness(), word_size() / 8, contents.address());
+    Append(endianness(), word_size() / 8, contents.final_size());
+    D32(contents.start());
+    D32(alignment);
+    D32(0);                  // relocations start
+    D32(0);                  // relocations size
+    D32(flags);
+    D32(0x93656b95);         // reserved1
+    D32(0xc35a2473);         // reserved2
+    if (word_size() == 64)
+      D32(0x70284b95);       // reserved3
+
+    section_count_++;
+
+    return *this;
+  }
+
+ protected:
+  void Finish() {
+    final_section_count_ = section_count_;
+    if (!vmsize_.IsKnownConstant())
+      vmsize_ = content_final_size_;
+    SizedSection::Finish();
+  }
+
+ private:
+  // The number of sections that have been added to this segment so far.
+  size_t section_count_;
+
+  // A label representing the final number of sections this segment will hold.
+  Label final_section_count_;
+
+  // The size of the contents for this segment present in the file.
+  Label content_final_size_;
+
+  // A label representing the size of this segment when loaded; this can be
+  // larger than the size of its file contents, the difference being
+  // zero-filled. If not set explicitly by calling set_vmsize, this is set
+  // equal to the size of the contents.
+  Label vmsize_;
+};
+
+// A SizedSection holding a list of Mach-O load commands.
+class LoadCommands: public SizedSection {
+ public:
+  LoadCommands() : command_count_(0) { }
+
+  // Return a label representing the final load command count.
+  Label final_command_count() const { return final_command_count_; }
+
+  // Increment the command count; return a reference to this section.
+  LoadCommands& CountCommand() {
+    command_count_++;
+    return *this;
+  }
+
+  // Place COMMAND, containing a load command, at the end of this section.
+  // Return a reference to this section.
+  LoadCommands& Place(SizedSection* section) {
+    SizedSection::Place(section);
+    CountCommand();
+    return *this;
+  }
+
+ protected:
+  // Mark this load command list as complete.
+  void Finish() {
+    SizedSection::Finish();
+    final_command_count_ = command_count_;
+  }
+
+ private:
+  // The number of load commands we have added to this file so far.
+  size_t command_count_;
+
+  // A label representing the final command count.
+  Label final_command_count_;
+};
+
+// A SizedSection holding the contents of a Mach-O file. Within a
+// MachOFile, the start, Here, and Mark members refer to file offsets.
+class MachOFile: public SizedSection {
+ public:
+  MachOFile() { 
+    start() = 0;
+  }
+
+  // Create a Mach-O file header using the given characteristics and load
+  // command list. This Places COMMANDS immediately after the header.
+  // Return a reference to this section.
+  MachOFile& Header(LoadCommands* commands,
+                    cpu_type_t cpu_type = CPU_TYPE_X86,
+                    cpu_subtype_t cpu_subtype = CPU_SUBTYPE_I386_ALL,
+                    FileType file_type = MH_EXECUTE,
+                    uint32_t file_flags = (MH_TWOLEVEL |
+                                           MH_DYLDLINK |
+                                           MH_NOUNDEFS)) {
+    D32(word_size() == 32 ? 0xfeedface : 0xfeedfacf);  // magic number
+    D32(cpu_type);                              // cpu type
+    D32(cpu_subtype);                           // cpu subtype
+    D32(file_type);                             // file type
+    D32(commands->final_command_count());       // number of load commands
+    D32(commands->final_size());                // their size in bytes
+    D32(file_flags);                            // flags
+    if (word_size() == 64)
+      D32(0x55638b90);                          // reserved
+    Place(commands);
+    return *this;
+  }
+};
+
+
+struct ReaderFixture {
+  ReaderFixture()
+      : reporter("reporter filename"),
+        reader(&reporter) { 
+    EXPECT_CALL(reporter, BadHeader()).Times(0);
+    EXPECT_CALL(reporter, CPUTypeMismatch(_, _, _, _)).Times(0);
+    EXPECT_CALL(reporter, HeaderTruncated()).Times(0);
+    EXPECT_CALL(reporter, LoadCommandRegionTruncated()).Times(0);
+    EXPECT_CALL(reporter, LoadCommandsOverrun(_, _, _)).Times(0);
+    EXPECT_CALL(reporter, LoadCommandTooShort(_, _)).Times(0);
+    EXPECT_CALL(reporter, SectionsMissing(_)).Times(0);
+    EXPECT_CALL(reporter, MisplacedSegmentData(_)).Times(0);
+    EXPECT_CALL(reporter, MisplacedSectionData(_, _)).Times(0);
+    EXPECT_CALL(reporter, MisplacedSymbolTable()).Times(0);
+    EXPECT_CALL(reporter, UnsupportedCPUType(_)).Times(0);
+
+    EXPECT_CALL(load_command_handler, UnknownCommand(_, _)).Times(0);
+    EXPECT_CALL(load_command_handler, SegmentCommand(_)).Times(0);
+  }
+
+  void ReadFile(MachOFile* file,
+                bool expect_parse_success,
+                cpu_type_t expected_cpu_type,
+                cpu_subtype_t expected_cpu_subtype) {
+    ASSERT_TRUE(file->GetContents(&file_contents));
+    file_bytes = reinterpret_cast<const uint8_t*>(file_contents.data());
+    if (expect_parse_success) {
+      EXPECT_TRUE(reader.Read(file_bytes,
+                              file_contents.size(),
+                              expected_cpu_type,
+                              expected_cpu_subtype));
+    } else {
+      EXPECT_FALSE(reader.Read(file_bytes,
+                               file_contents.size(),
+                               expected_cpu_type,
+                               expected_cpu_subtype));
+    }
+  }
+
+  string file_contents;
+  const uint8_t* file_bytes;
+  MockReaderReporter reporter;
+  Reader reader;
+  MockLoadCommandHandler load_command_handler;
+  MockSectionHandler section_handler;
+};
+
+class ReaderTest: public ReaderFixture, public Test { };
+
+TEST_F(ReaderTest, BadMagic) {
+  WithConfiguration config(kLittleEndian, 32);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0x67bdebe1)                  // Not a proper magic number.
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  EXPECT_CALL(reporter, BadHeader()).WillOnce(Return());
+  ReadFile(&file, false, CPU_TYPE_ANY, kCPUSubType);
+}
+
+TEST_F(ReaderTest, MismatchedMagic) {
+  WithConfiguration config(kLittleEndian, 32);
+  const cpu_type_t kCPUType = CPU_TYPE_I386;
+  const cpu_subtype_t kCPUSubType = CPU_SUBTYPE_X86_ALL;
+  MachOFile file;
+  file
+      .D32(MH_CIGAM)                    // Right magic, but winds up wrong
+                                        // due to bitswapping
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  EXPECT_CALL(reporter, BadHeader()).WillOnce(Return());
+  ReadFile(&file, false, kCPUType, kCPUSubType);
+}
+
+TEST_F(ReaderTest, ShortMagic) {
+  WithConfiguration config(kBigEndian, 32);
+  MachOFile file;
+  file
+      .D16(0xfeed);                     // magic number
+                                        // truncated!
+  EXPECT_CALL(reporter, HeaderTruncated()).WillOnce(Return());
+  ReadFile(&file, false, CPU_TYPE_ANY, 0);
+}
+
+TEST_F(ReaderTest, ShortHeader) {
+  WithConfiguration config(kBigEndian, 32);
+  const cpu_type_t kCPUType = CPU_TYPE_ANY;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedface)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0);                          // they occupy no bytes
+  EXPECT_CALL(reporter, HeaderTruncated()).WillOnce(Return());
+  ReadFile(&file, false, CPU_TYPE_ANY, kCPUSubType);
+}
+
+TEST_F(ReaderTest, MismatchedCPU) {
+  WithConfiguration config(kBigEndian, 32);
+  const cpu_type_t kCPUType = CPU_TYPE_I386;
+  const cpu_subtype_t kCPUSubType = CPU_SUBTYPE_X86_ALL;
+  MachOFile file;
+  file
+      .D32(MH_MAGIC)                    // Right magic for PPC (once bitswapped)
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  EXPECT_CALL(reporter,
+              CPUTypeMismatch(CPU_TYPE_I386, CPU_SUBTYPE_X86_ALL,
+                              CPU_TYPE_POWERPC, CPU_SUBTYPE_POWERPC_ALL))
+    .WillOnce(Return());
+  ReadFile(&file, false, CPU_TYPE_POWERPC, CPU_SUBTYPE_POWERPC_ALL);
+}
+
+TEST_F(ReaderTest, LittleEndian32Bit) {
+  WithConfiguration config(kLittleEndian, 32);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedface)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+           ReadFile(&file, true, CPU_TYPE_ANY, kCPUSubType);
+  EXPECT_FALSE(reader.bits_64());
+  EXPECT_FALSE(reader.big_endian());
+  EXPECT_EQ(kCPUType,               reader.cpu_type());
+  EXPECT_EQ(kCPUSubType,            reader.cpu_subtype());
+  EXPECT_EQ(FileType(0x149fc717),   reader.file_type());
+  EXPECT_EQ(FileFlags(0x80e71d64),  reader.flags());
+}
+
+TEST_F(ReaderTest, LittleEndian64Bit) {
+  WithConfiguration config(kLittleEndian, 64);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedfacf)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  ReadFile(&file, true, CPU_TYPE_ANY, kCPUSubType);
+  EXPECT_TRUE(reader.bits_64());
+  EXPECT_FALSE(reader.big_endian());
+  EXPECT_EQ(kCPUType,               reader.cpu_type());
+  EXPECT_EQ(kCPUSubType,            reader.cpu_subtype());
+  EXPECT_EQ(FileType(0x149fc717),   reader.file_type());
+  EXPECT_EQ(FileFlags(0x80e71d64),  reader.flags());
+}
+
+TEST_F(ReaderTest, BigEndian32Bit) {
+  WithConfiguration config(kBigEndian, 32);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedface)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  ReadFile(&file, true, CPU_TYPE_ANY, kCPUSubType);
+  EXPECT_FALSE(reader.bits_64());
+  EXPECT_TRUE(reader.big_endian());
+  EXPECT_EQ(kCPUType,               reader.cpu_type());
+  EXPECT_EQ(kCPUSubType,            reader.cpu_subtype());
+  EXPECT_EQ(FileType(0x149fc717),   reader.file_type());
+  EXPECT_EQ(FileFlags(0x80e71d64),  reader.flags());
+}
+
+TEST_F(ReaderTest, BigEndian64Bit) {
+  WithConfiguration config(kBigEndian, 64);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedfacf)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(0)                           // no load commands
+      .D32(0)                           // they occupy no bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0);                          // reserved
+  ReadFile(&file, true, CPU_TYPE_ANY, kCPUSubType);
+  EXPECT_TRUE(reader.bits_64());
+  EXPECT_TRUE(reader.big_endian());
+  EXPECT_EQ(kCPUType,               reader.cpu_type());
+  EXPECT_EQ(kCPUSubType,            reader.cpu_subtype());
+  EXPECT_EQ(FileType(0x149fc717),   reader.file_type());
+  EXPECT_EQ(FileFlags(0x80e71d64),  reader.flags());
+}
+
+
+// Load command tests.
+
+class LoadCommand: public ReaderFixture, public Test { };
+
+TEST_F(LoadCommand, RegionTruncated) {
+  WithConfiguration config(kBigEndian, 64);
+  const cpu_type_t kCPUType = 0x46b760df;
+  const cpu_subtype_t kCPUSubType = 0x76a0e7f7;
+  MachOFile file;
+  file
+      .D32(0xfeedfacf)                  // magic number
+      .D32(kCPUType)                    // cpu type
+      .D32(kCPUSubType)                 // cpu subtype
+      .D32(0x149fc717)                  // file type
+      .D32(1)                           // one load command
+      .D32(40)                          // occupying 40 bytes
+      .D32(0x80e71d64)                  // flags
+      .D32(0)                           // reserved
+      .Append(20, 0);                   // load command region, not as long as
+                                        // Mach-O header promised
+
+  EXPECT_CALL(reporter, LoadCommandRegionTruncated()).WillOnce(Return());
+
+  ReadFile(&file, false, CPU_TYPE_ANY, kCPUSubType);
+}
+
+TEST_F(LoadCommand, None) {
+  WithConfiguration config(kLittleEndian, 32);
+  LoadCommands load_commands;
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_X86, CPU_SUBTYPE_I386_ALL);
+
+  EXPECT_FALSE(reader.bits_64());
+  EXPECT_FALSE(reader.big_endian());
+  EXPECT_EQ(CPU_TYPE_X86,         reader.cpu_type());
+  EXPECT_EQ(CPU_SUBTYPE_I386_ALL, reader.cpu_subtype());
+  EXPECT_EQ(static_cast<uint32_t>(MH_EXECUTE), reader.file_type());
+  EXPECT_EQ(FileFlags(MH_TWOLEVEL |
+                      MH_DYLDLINK |
+                      MH_NOUNDEFS),
+            FileFlags(reader.flags()));
+  
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, Unknown) {
+  WithConfiguration config(kBigEndian, 32);
+  LoadCommands load_commands;
+  load_commands
+      .CountCommand()
+      .D32(0x33293d4a)                  // unknown load command
+      .D32(40)                          // total size in bytes
+      .Append(32, '*');                 // dummy data
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_FALSE(reader.bits_64());
+  EXPECT_TRUE(reader.big_endian());
+  EXPECT_EQ(CPU_TYPE_X86,         reader.cpu_type());
+  EXPECT_EQ(CPU_SUBTYPE_I386_ALL, reader.cpu_subtype());
+  EXPECT_EQ(static_cast<uint32_t>(MH_EXECUTE), reader.file_type());
+  EXPECT_EQ(FileFlags(MH_TWOLEVEL |
+                      MH_DYLDLINK |
+                      MH_NOUNDEFS),
+            reader.flags());
+
+  ByteBuffer expected;
+  expected.start = file_bytes + load_commands.start().Value();
+  expected.end = expected.start + load_commands.final_size().Value();
+  EXPECT_CALL(load_command_handler, UnknownCommand(0x33293d4a,
+                                                   expected))
+      .WillOnce(Return(true));
+
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, TypeIncomplete) {
+  WithConfiguration config(kLittleEndian, 32);
+  LoadCommands load_commands;
+  load_commands
+      .CountCommand()
+      .Append(3, 0);                    // load command type, incomplete
+
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, LoadCommandsOverrun(1, 0, 0))
+      .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, LengthIncomplete) {
+  WithConfiguration config(kBigEndian, 64);
+  LoadCommands load_commands;
+  load_commands
+      .CountCommand()
+      .D32(LC_SEGMENT);                 // load command
+                                                // no length
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, LoadCommandsOverrun(1, 0, LC_SEGMENT))
+      .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, ContentIncomplete) {
+  WithConfiguration config(kLittleEndian, 64);
+  LoadCommands load_commands;
+  load_commands
+      .CountCommand()
+      .D32(LC_SEGMENT)          // load command
+      .D32(40)                          // total size in bytes
+      .Append(28, '*');                 // not enough dummy data
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, LoadCommandsOverrun(1, 0, LC_SEGMENT))
+      .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, SegmentBE32) {
+  WithConfiguration config(kBigEndian, 32);
+  LoadedSection segment;
+  segment.address() = 0x1891139c;
+  segment.Append(42, '*');              // segment contents
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("froon", segment, 0x94d6dd22, 0x8bdbc319, 0x990a16dd);
+  segment_command.vmsize() = 0xcb76584fU;
+  LoadCommands load_commands;
+  load_commands.Place(&segment_command);
+  MachOFile file;
+  file
+      .Header(&load_commands)
+      .Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_CALL(load_command_handler, SegmentCommand(_))
+    .WillOnce(DoAll(SaveArg<0>(&actual_segment),
+                    Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_FALSE(actual_segment.bits_64);
+  EXPECT_EQ("froon",                      actual_segment.name);
+  EXPECT_EQ(0x1891139cU,                  actual_segment.vmaddr);
+  EXPECT_EQ(0xcb76584fU,                  actual_segment.vmsize);
+  EXPECT_EQ(0x94d6dd22U,                  actual_segment.maxprot);
+  EXPECT_EQ(0x8bdbc319U,                  actual_segment.initprot);
+  EXPECT_EQ(0x990a16ddU,                  actual_segment.flags);
+  EXPECT_EQ(0U,                           actual_segment.nsects);
+  EXPECT_EQ(0U,                           actual_segment.section_list.Size());
+  EXPECT_EQ(segment.final_size().Value(), actual_segment.contents.Size());
+}
+
+TEST_F(LoadCommand, SegmentLE32) {
+  WithConfiguration config(kLittleEndian, 32);
+  LoadedSection segment;
+  segment.address() = 0x4b877866;
+  segment.Append(42, '*');              // segment contents
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("sixteenprecisely", segment,
+              0x350759ed, 0x6cf5a62e, 0x990a16dd);
+  segment_command.vmsize() = 0xcb76584fU;
+  LoadCommands load_commands;
+  load_commands.Place(&segment_command);
+  MachOFile file;
+  file
+      .Header(&load_commands)
+      .Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_CALL(load_command_handler, SegmentCommand(_))
+    .WillOnce(DoAll(SaveArg<0>(&actual_segment),
+                    Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_FALSE(actual_segment.bits_64);
+  EXPECT_EQ("sixteenprecisely",           actual_segment.name);
+  EXPECT_EQ(0x4b877866U,                  actual_segment.vmaddr);
+  EXPECT_EQ(0xcb76584fU,                  actual_segment.vmsize);
+  EXPECT_EQ(0x350759edU,                  actual_segment.maxprot);
+  EXPECT_EQ(0x6cf5a62eU,                  actual_segment.initprot);
+  EXPECT_EQ(0x990a16ddU,                  actual_segment.flags);
+  EXPECT_EQ(0U,                           actual_segment.nsects);
+  EXPECT_EQ(0U,                           actual_segment.section_list.Size());
+  EXPECT_EQ(segment.final_size().Value(), actual_segment.contents.Size());
+}
+
+TEST_F(LoadCommand, SegmentBE64) {
+  WithConfiguration config(kBigEndian, 64);
+  LoadedSection segment;
+  segment.address() = 0x79f484f77009e511ULL;
+  segment.Append(42, '*');              // segment contents
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("froon", segment, 0x42b45da5, 0x8bdbc319, 0xb2335220);
+  segment_command.vmsize() = 0x8d92397ce6248abaULL;
+  LoadCommands load_commands;
+  load_commands.Place(&segment_command);
+  MachOFile file;
+  file
+      .Header(&load_commands)
+      .Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_CALL(load_command_handler, SegmentCommand(_))
+    .WillOnce(DoAll(SaveArg<0>(&actual_segment),
+                    Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_EQ(true,                         actual_segment.bits_64);
+  EXPECT_EQ("froon",                      actual_segment.name);
+  EXPECT_EQ(0x79f484f77009e511ULL,        actual_segment.vmaddr);
+  EXPECT_EQ(0x8d92397ce6248abaULL,        actual_segment.vmsize);
+  EXPECT_EQ(0x42b45da5U,                  actual_segment.maxprot);
+  EXPECT_EQ(0x8bdbc319U,                  actual_segment.initprot);
+  EXPECT_EQ(0xb2335220U,                  actual_segment.flags);
+  EXPECT_EQ(0U,                           actual_segment.nsects);
+  EXPECT_EQ(0U,                           actual_segment.section_list.Size());
+  EXPECT_EQ(segment.final_size().Value(), actual_segment.contents.Size());
+}
+
+TEST_F(LoadCommand, SegmentLE64) {
+  WithConfiguration config(kLittleEndian, 64);
+  LoadedSection segment;
+  segment.address() = 0x50c0501dc5922d35ULL;
+  segment.Append(42, '*');              // segment contents
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("sixteenprecisely", segment,
+              0x917c339d, 0xdbc446fa, 0xb650b563);
+  segment_command.vmsize() = 0x84ae73e7c75469bfULL;
+  LoadCommands load_commands;
+  load_commands.Place(&segment_command);
+  MachOFile file;
+  file
+      .Header(&load_commands)
+      .Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_CALL(load_command_handler, SegmentCommand(_))
+    .WillOnce(DoAll(SaveArg<0>(&actual_segment),
+                    Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_EQ(true,                         actual_segment.bits_64);
+  EXPECT_EQ("sixteenprecisely",           actual_segment.name);
+  EXPECT_EQ(0x50c0501dc5922d35ULL,        actual_segment.vmaddr);
+  EXPECT_EQ(0x84ae73e7c75469bfULL,        actual_segment.vmsize);
+  EXPECT_EQ(0x917c339dU,                  actual_segment.maxprot);
+  EXPECT_EQ(0xdbc446faU,                  actual_segment.initprot);
+  EXPECT_EQ(0xb650b563U,                  actual_segment.flags);
+  EXPECT_EQ(0U,                           actual_segment.nsects);
+  EXPECT_EQ(0U,                           actual_segment.section_list.Size());
+  EXPECT_EQ(segment.final_size().Value(), actual_segment.contents.Size());
+}
+
+TEST_F(LoadCommand, SegmentCommandTruncated) {
+  WithConfiguration config(kBigEndian, 32);
+  LoadedSection segment_contents;
+  segment_contents.Append(20, '*');     	// lah di dah
+  SizedSection command;
+  command
+      .D32(LC_SEGMENT)          	// command type
+      .D32(command.final_size())                // command size
+      .AppendCString("too-short", 16)           // segment name
+      .D32(0x9c759211)                          // vmaddr
+      .D32(segment_contents.final_size())       // vmsize
+      .D32(segment_contents.start())            // file offset
+      .D32(segment_contents.final_size())       // file size
+      .D32(0x56f28446)                          // max protection
+      .D32(0xe7910dcb)                          // initial protection
+      .D32(0)                                   // no sections
+      .Append(3, 0);                            // flags (one byte short!)
+  LoadCommands load_commands;
+  load_commands.Place(&command);
+  MachOFile file;
+  file
+      .Header(&load_commands)
+      .Place(&segment_contents);
+  
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, LoadCommandTooShort(0, LC_SEGMENT))
+      .WillOnce(Return());
+
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, SegmentBadContentOffset) {
+  WithConfiguration config(kLittleEndian, 32);
+  // Instead of letting a Place call set the segment's file offset and size,
+  // set them ourselves, to check that the parser catches invalid offsets
+  // instead of handing us bogus pointers.
+  LoadedSection segment;
+  segment.address() = 0x4db5489c;
+  segment.start() = 0x7e189e76;         // beyond end of file
+  segment.final_size() = 0x98b9c3ab;
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("notmerelyfifteen", segment, 0xcbab25ee, 0x359a20db, 0x68a3933f);
+  LoadCommands load_commands;
+  load_commands.Place(&segment_command);
+  MachOFile file;
+  file.Header(&load_commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, MisplacedSegmentData("notmerelyfifteen"))
+      .WillOnce(Return());
+
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(LoadCommand, ThreeLoadCommands) {
+  WithConfiguration config(kBigEndian, 32);
+  LoadedSection seg1, seg2, seg3;
+  SegmentLoadCommand cmd1, cmd2, cmd3;
+
+  seg1.Append(128, '@');
+  seg1.address() = 0xa7f61ef6;
+  cmd1.Header("head", seg1, 0x88bf1cc7, 0x889a26a4, 0xe9b80d87);
+  // Include some dummy data at the end of the load command. Since we
+  // didn't claim to have any sections, the reader should ignore this. But
+  // making sure the commands have different lengths ensures that we're
+  // using the right command's length to advance the LoadCommandIterator.
+  cmd1.Append(128, '!');
+
+  seg2.Append(42, '*');
+  seg2.address() = 0xc70fc909;
+  cmd2.Header("thorax", seg2, 0xde7327f4, 0xfdaf771d, 0x65e74b30);
+  // More dummy data at the end of the load command. 
+  cmd2.Append(32, '^');
+
+  seg3.Append(42, '%');
+  seg3.address() = 0x46b3ab05;
+  cmd3.Header("abdomen", seg3, 0x7098b70d, 0x8d8d7728, 0x5131419b);
+  // More dummy data at the end of the load command. 
+  cmd3.Append(64, '&');
+
+  LoadCommands load_commands;
+  load_commands.Place(&cmd1).Place(&cmd2).Place(&cmd3);
+
+  MachOFile file;
+  file.Header(&load_commands).Place(&seg1).Place(&seg2).Place(&seg3);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  {
+    InSequence s;
+    EXPECT_CALL(load_command_handler,
+                SegmentCommand(Field(&Segment::name, "head")))
+      .WillOnce(Return(true));
+    EXPECT_CALL(load_command_handler,
+                SegmentCommand(Field(&Segment::name, "thorax")))
+      .WillOnce(Return(true));
+    EXPECT_CALL(load_command_handler,
+                SegmentCommand(Field(&Segment::name, "abdomen")))
+      .WillOnce(Return(true));
+  }
+
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+static inline Matcher<const Section&> MatchSection(
+    Matcher<bool> bits_64,
+    Matcher<const string&> section_name,
+    Matcher<const string&> segment_name,
+    Matcher<uint64_t> address,
+    Matcher<uint32_t> alignment,
+    Matcher<uint32_t> flags,
+    Matcher<const ByteBuffer&> contents) {
+  return AllOf(AllOf(Field(&Section::bits_64, bits_64),
+                     Field(&Section::section_name, section_name),
+                     Field(&Section::segment_name, segment_name),
+                     Field(&Section::address, address)),
+               AllOf(Field(&Section::align, alignment),
+                     Field(&Section::flags, flags),
+                     Field(&Section::contents, contents)));
+}
+
+static inline Matcher<const Section&> MatchSection(
+    Matcher<bool> bits_64,
+    Matcher<const string&> section_name,
+    Matcher<const string&> segment_name,
+    Matcher<uint64_t> address) {
+  return AllOf(Field(&Section::bits_64, bits_64),
+               Field(&Section::section_name, section_name),
+               Field(&Section::segment_name, segment_name),
+               Field(&Section::address, address));
+}
+
+TEST_F(LoadCommand, OneSegmentTwoSections) {
+  WithConfiguration config(kBigEndian, 64);
+
+  // Create some sections with some data.
+  LoadedSection section1, section2;
+  section1.Append("buddha's hand");
+  section2.Append("kumquat");
+
+  // Create a segment to hold them.
+  LoadedSection segment;
+  segment.address() = 0xe1d0eeec;
+  segment.Place(&section2).Place(&section1);
+
+  SegmentLoadCommand segment_command;
+  segment_command
+      .Header("head", segment, 0x92c9568c, 0xa89f2627, 0x4dc7a1e2)
+      .AppendSectionEntry("mandarin", "kishu", 12, 0x8cd4604bU, section1)
+      .AppendSectionEntry("bergamot", "cara cara", 12, 0x98746efaU, section2);
+
+  LoadCommands commands;
+  commands.Place(&segment_command);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+  
+  Segment actual_segment;
+  EXPECT_CALL(load_command_handler, SegmentCommand(_))
+      .WillOnce(DoAll(SaveArg<0>(&actual_segment),
+                      Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  {
+    InSequence s;
+    ByteBuffer contents1;
+    contents1.start = file_bytes + section1.start().Value();
+    contents1.end = contents1.start + section1.final_size().Value();
+    EXPECT_EQ("buddha's hand",
+              string(reinterpret_cast<const char*>(contents1.start),
+                     contents1.Size()));
+    EXPECT_CALL(section_handler,
+                HandleSection(MatchSection(true, "mandarin", "kishu",
+                                           section1.address().Value(), 12,
+                                           0x8cd4604bU, contents1)))
+      .WillOnce(Return(true));
+    
+    ByteBuffer contents2;
+    contents2.start = file_bytes + section2.start().Value();
+    contents2.end = contents2.start + section2.final_size().Value();
+    EXPECT_EQ("kumquat",
+              string(reinterpret_cast<const char*>(contents2.start),
+                     contents2.Size()));
+    EXPECT_CALL(section_handler,
+                HandleSection(MatchSection(true, "bergamot", "cara cara",
+                                           section2.address().Value(), 12,
+                                           0x98746efaU, contents2)))
+      .WillOnce(Return(true));
+  }
+
+  EXPECT_TRUE(reader.WalkSegmentSections(actual_segment, &section_handler));
+}
+
+TEST_F(LoadCommand, MisplacedSectionBefore) {
+  WithConfiguration config(kLittleEndian, 64);
+
+  // The segment.
+  LoadedSection segment;
+  segment.address() = 0x696d83cc;
+  segment.Append(10, '0');
+
+  // The contents of the following sections don't matter, because
+  // we're not really going to Place them in segment; we're just going
+  // to set all their labels by hand to get the (impossible)
+  // configurations we want.
+
+  // A section whose starting offset is before that of its section.
+  LoadedSection before;
+  before.Append(10, '1');
+  before.start()   = segment.start() - 1;
+  before.address() = segment.address() - 1;
+  before.final_size() = before.Size();
+  
+  SegmentLoadCommand command;
+  command
+    .Header("segment", segment, 0x173baa29, 0x8407275d, 0xed8f7057)
+    .AppendSectionEntry("before",     "segment", 0, 0x686c6921, before);
+
+  LoadCommands commands;
+  commands.Place(&command);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_TRUE(reader.FindSegment("segment", &actual_segment));
+
+  EXPECT_CALL(reporter, MisplacedSectionData("before", "segment"))
+    .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkSegmentSections(actual_segment, &section_handler));
+}
+
+TEST_F(LoadCommand, MisplacedSectionAfter) {
+  WithConfiguration config(kLittleEndian, 64);
+
+  // The segment.
+  LoadedSection segment;
+  segment.address() = 0x696d83cc;
+  segment.Append(10, '0');
+
+  // The contents of the following sections don't matter, because
+  // we're not really going to Place them in segment; we're just going
+  // to set all their labels by hand to get the (impossible)
+  // configurations we want.
+
+  // A section whose starting offset is after the end of its section.
+  LoadedSection after;
+  after.Append(10, '2');
+  after.start()    = segment.start() + 11;
+  after.address()   = segment.address() + 11;
+  after.final_size() = after.Size();
+
+  SegmentLoadCommand command;
+  command
+    .Header("segment", segment, 0x173baa29, 0x8407275d, 0xed8f7057)
+    .AppendSectionEntry("after",      "segment", 0, 0x2ee50124, after);
+
+  LoadCommands commands;
+  commands.Place(&command);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_TRUE(reader.FindSegment("segment", &actual_segment));
+
+  EXPECT_CALL(reporter, MisplacedSectionData("after", "segment"))
+    .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkSegmentSections(actual_segment, &section_handler));
+}
+
+TEST_F(LoadCommand, MisplacedSectionTooBig) {
+  WithConfiguration config(kLittleEndian, 64);
+
+  // The segment.
+  LoadedSection segment;
+  segment.address() = 0x696d83cc;
+  segment.Append(10, '0');
+
+  // The contents of the following sections don't matter, because
+  // we're not really going to Place them in segment; we're just going
+  // to set all their labels by hand to get the (impossible)
+  // configurations we want.
+
+  // A section that extends beyond the end of its section.
+  LoadedSection too_big;
+  too_big.Append(10, '3');
+  too_big.start()   = segment.start() + 1;
+  too_big.address() = segment.address() + 1;
+  too_big.final_size() = too_big.Size();
+
+  SegmentLoadCommand command;
+  command
+    .Header("segment", segment, 0x173baa29, 0x8407275d, 0xed8f7057)
+    .AppendSectionEntry("too big",    "segment", 0, 0x8b53ae5c, too_big);
+
+  LoadCommands commands;
+  commands.Place(&command);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_TRUE(reader.FindSegment("segment", &actual_segment));
+
+  EXPECT_CALL(reporter, MisplacedSectionData("too big", "segment"))
+    .WillOnce(Return());
+  EXPECT_FALSE(reader.WalkSegmentSections(actual_segment, &section_handler));
+}
+
+
+// The segments in a .dSYM bundle's Mach-O file have their file offset
+// and size set to zero, but the sections don't.  The reader shouldn't
+// report an error in this case.
+TEST_F(LoadCommand, ZappedSegment) {
+  WithConfiguration config(kBigEndian, 32);
+
+  // The segment.
+  LoadedSection segment;
+  segment.address() = 0x696d83cc;
+  segment.start() = 0;
+  segment.final_size() = 0;
+
+  // The section.
+  LoadedSection section;
+  section.address() = segment.address();
+  section.start() = 0;
+  section.final_size() = 1000;          // extends beyond its segment
+  
+  SegmentLoadCommand command;
+  command
+    .Header("zapped", segment, 0x0861a5cb, 0x68ccff67, 0x0b66255c)
+    .AppendSectionEntry("twitching", "zapped", 0, 0x93b3bd42, section);
+
+  LoadCommands commands;
+  commands.Place(&command);
+
+  MachOFile file;
+  file.Header(&commands);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+  EXPECT_TRUE(reader.FindSegment("zapped", &actual_segment));
+
+  ByteBuffer zapped_extent(NULL, 0);
+  EXPECT_CALL(section_handler,
+              HandleSection(MatchSection(false, "twitching", "zapped",
+                                         0x696d83cc, 0, 0x93b3bd42,
+                                         zapped_extent)))
+    .WillOnce(Return(true));
+
+  EXPECT_TRUE(reader.WalkSegmentSections(actual_segment, &section_handler));
+}
+
+TEST_F(LoadCommand, MapSegmentSections) {
+  WithConfiguration config(kLittleEndian, 32);
+
+  // Create some sections with some data.
+  LoadedSection section1, section2, section3, section4;
+  section1.Append("buddha's hand");
+  section2.start() = 0;                 // Section 2 is an S_ZEROFILL section.
+  section2.final_size() = 0;
+  section3.Append("shasta gold");
+  section4.Append("satsuma");
+
+  // Create two segments to hold them.
+  LoadedSection segment1, segment2;
+  segment1.address() = 0x13e6c8a9;
+  segment1.Place(&section3).Place(&section1);
+  segment2.set_word_size(64);
+  segment2.address() = 0x04d462e2;
+  segment2.Place(&section4);
+  section2.address() = segment2.address() + segment2.Size();
+
+  SegmentLoadCommand segment_command1, segment_command2;
+  segment_command1
+      .Header("head", segment1, 0x67d955a6, 0x7a61c13e, 0xe3e50c64)
+      .AppendSectionEntry("mandarin", "head", 12, 0x5bb565d7, section1)
+      .AppendSectionEntry("bergamot", "head", 12, 0x8620de73, section3);
+  segment_command2.set_word_size(64);
+  segment_command2
+      .Header("thorax", segment2, 0x7aab2419, 0xe908007f, 0x17961d33)
+      .AppendSectionEntry("sixteenprecisely", "thorax",
+                          12, S_ZEROFILL, section2)
+      .AppendSectionEntry("cara cara", "thorax", 12, 0xb6c5dd8a, section4);
+
+  LoadCommands commands;
+  commands.Place(&segment_command1).Place(&segment_command2);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment1).Place(&segment2);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment segment;
+  SectionMap section_map;
+
+  EXPECT_FALSE(reader.FindSegment("smoot", &segment));
+
+  ASSERT_TRUE(reader.FindSegment("thorax", &segment));
+  ASSERT_TRUE(reader.MapSegmentSections(segment, &section_map));
+
+  EXPECT_FALSE(section_map.find("sixteenpreciselyandthensome")
+               != section_map.end());
+  EXPECT_FALSE(section_map.find("mandarin") != section_map.end());
+  ASSERT_TRUE(section_map.find("cara cara") != section_map.end());
+  EXPECT_THAT(section_map["cara cara"],
+              MatchSection(true, "cara cara", "thorax", 0x04d462e2));
+  ASSERT_TRUE(section_map.find("sixteenprecisely")
+              != section_map.end());
+  ByteBuffer sixteenprecisely_contents(NULL, 0);
+  EXPECT_THAT(section_map["sixteenprecisely"],
+              MatchSection(true, "sixteenprecisely", "thorax",
+                           0x04d462e2 + 7, 12, S_ZEROFILL,
+                           sixteenprecisely_contents));
+
+  ASSERT_TRUE(reader.FindSegment("head", &segment));
+  ASSERT_TRUE(reader.MapSegmentSections(segment, &section_map));
+
+  ASSERT_TRUE(section_map.find("mandarin") != section_map.end());
+  EXPECT_THAT(section_map["mandarin"],
+              MatchSection(false, "mandarin", "head", 0x13e6c8a9 + 11));
+  ASSERT_TRUE(section_map.find("bergamot") != section_map.end());
+  EXPECT_THAT(section_map["bergamot"],
+              MatchSection(false, "bergamot", "head", 0x13e6c8a9));
+}
+
+TEST_F(LoadCommand, FindSegment) {
+  WithConfiguration config(kBigEndian, 32);
+
+  LoadedSection segment1, segment2, segment3;
+  segment1.address() = 0xb8ae5752;
+  segment1.Append("Some contents!");
+  segment2.address() = 0xd6b0ce83;
+  segment2.Append("Different stuff.");
+  segment3.address() = 0x7374fd2a;
+  segment3.Append("Further materials.");
+
+  SegmentLoadCommand cmd1, cmd2, cmd3;
+  cmd1.Header("first",  segment1, 0xfadb6932, 0x175bf529, 0x0de790ad);
+  cmd2.Header("second", segment2, 0xeef716e0, 0xe103a9d7, 0x7d38a8ef);
+  cmd3.Header("third",  segment3, 0xe172b39e, 0x86012f07, 0x080ac94d);
+
+  LoadCommands commands;
+  commands.Place(&cmd1).Place(&cmd2).Place(&cmd3);
+
+  MachOFile file;
+  file.Header(&commands).Place(&segment1).Place(&segment2).Place(&segment3);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  Segment actual_segment;
+
+  EXPECT_FALSE(reader.FindSegment("murphy", &actual_segment));
+
+  EXPECT_TRUE(reader.FindSegment("second", &actual_segment));
+  EXPECT_EQ(0xd6b0ce83, actual_segment.vmaddr);
+}
+
+
+// Symtab tests.
+
+// A StringAssembler is a class for generating .stabstr sections to present
+// as input to the STABS parser.
+class StringAssembler: public SizedSection {
+ public:
+  // Add the string S to this StringAssembler, and return the string's
+  // offset within this compilation unit's strings.
+  size_t Add(const string& s) {
+    size_t offset = Size();
+    AppendCString(s);
+    return offset;
+  }
+};
+
+// A SymbolAssembler is a class for generating .stab sections to present as
+// test input for the STABS parser.
+class SymbolAssembler: public SizedSection {
+ public:
+  // Create a SymbolAssembler that uses StringAssembler for its strings.
+  explicit SymbolAssembler(StringAssembler* string_assembler)
+      : string_assembler_(string_assembler),
+        entry_count_(0) { }
+
+  // Append a STAB entry to the end of this section with the given
+  // characteristics. NAME is the offset of this entry's name string within
+  // its compilation unit's portion of the .stabstr section; this can be a
+  // value generated by a StringAssembler. Return a reference to this
+  // SymbolAssembler.
+  SymbolAssembler& Symbol(uint8_t type, uint8_t other, Label descriptor,
+                          Label value, Label name) {
+    D32(name);
+    D8(type);
+    D8(other);
+    D16(descriptor);
+    Append(endianness(), word_size_ / 8, value);
+    entry_count_++;
+    return *this;
+  }
+
+  // As above, but automatically add NAME to our StringAssembler.
+  SymbolAssembler& Symbol(uint8_t type, uint8_t other, Label descriptor,
+                          Label value, const string& name) {
+    return Symbol(type, other, descriptor, value, string_assembler_->Add(name));
+  }
+
+ private:
+  // The strings for our STABS entries.
+  StringAssembler* string_assembler_;
+
+  // The number of entries in this compilation unit so far.
+  size_t entry_count_;
+};
+
+class Symtab: public ReaderFixture, public Test { };
+
+TEST_F(Symtab, Symtab32) {
+  WithConfiguration config(kLittleEndian, 32);
+
+  StringAssembler strings;
+  SymbolAssembler symbols(&strings);
+  symbols
+      .Symbol(0x52, 0x7c, 0x3470, 0x9bb02e7c, "hrududu")
+      .Symbol(0x50, 0x90, 0x7520, 0x1122525d, "Frith");
+
+  SizedSection symtab_command;
+  symtab_command
+      .D32(LC_SYMTAB)                    // command
+      .D32(symtab_command.final_size())  // size
+      .D32(symbols.start())              // file offset of symbols
+      .D32(2)                            // symbol count
+      .D32(strings.start())              // file offset of strings
+      .D32(strings.final_size());        // strings size
+
+  LoadCommands load_commands;
+  load_commands.Place(&symtab_command);
+
+  MachOFile file;
+  file.Header(&load_commands).Place(&symbols).Place(&strings);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  ByteBuffer symbols_found, strings_found;
+  EXPECT_CALL(load_command_handler, SymtabCommand(_, _))
+      .WillOnce(DoAll(SaveArg<0>(&symbols_found),
+                      SaveArg<1>(&strings_found),
+                      Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_EQ(24U, symbols_found.Size());
+  EXPECT_EQ(14U, strings_found.Size());
+}
+
+TEST_F(Symtab, Symtab64) {
+  WithConfiguration config(kBigEndian, 64);
+
+  StringAssembler strings;
+  SymbolAssembler symbols(&strings);
+  symbols
+      .Symbol(0xa7, 0xaf, 0x03af, 0x42f3072c74335181ULL, "foo")
+      .Symbol(0xb0, 0x9a, 0x2aa7, 0x2e2d349b3d5744a0ULL, "bar");
+
+  SizedSection symtab_command;
+  symtab_command
+      .D32(LC_SYMTAB)                    // command
+      .D32(symtab_command.final_size())  // size
+      .D32(symbols.start())              // file offset of symbols
+      .D32(2)                            // symbol count
+      .D32(strings.start())              // file offset of strings
+      .D32(strings.final_size());        // strings size
+
+  LoadCommands load_commands;
+  load_commands.Place(&symtab_command);
+
+  MachOFile file;
+  file.Header(&load_commands).Place(&symbols).Place(&strings);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  ByteBuffer symbols_found, strings_found;
+  EXPECT_CALL(load_command_handler, SymtabCommand(_, _))
+      .WillOnce(DoAll(SaveArg<0>(&symbols_found),
+                      SaveArg<1>(&strings_found),
+                      Return(true)));
+  EXPECT_TRUE(reader.WalkLoadCommands(&load_command_handler));
+
+  EXPECT_EQ(32U, symbols_found.Size());
+  EXPECT_EQ(8U,  strings_found.Size());
+}
+
+TEST_F(Symtab, SymtabMisplacedSymbols) {
+  WithConfiguration config(kBigEndian, 32);
+
+  StringAssembler strings;
+  SymbolAssembler symbols(&strings);
+  symbols
+      .Symbol(0xa7, 0xaf, 0x03af, 0x42f3072c74335181ULL, "foo")
+      .Symbol(0xb0, 0x9a, 0x2aa7, 0x2e2d349b3d5744a0ULL, "bar");
+
+  SizedSection symtab_command;
+  symtab_command
+      .D32(LC_SYMTAB)                    // command
+      .D32(symtab_command.final_size())  // size
+      .D32(symbols.start())              // file offset of symbols
+      .D32(3)                            // symbol count (too many)
+      .D32(strings.start())              // file offset of strings
+      .D32(strings.final_size());        // strings size
+
+  LoadCommands load_commands;
+  load_commands.Place(&symtab_command);
+
+  MachOFile file;
+  // Put symbols at end, so the excessive length will be noticed.
+  file.Header(&load_commands).Place(&strings).Place(&symbols);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, MisplacedSymbolTable()).Times(1);
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
+TEST_F(Symtab, SymtabMisplacedStrings) {
+  WithConfiguration config(kLittleEndian, 32);
+
+  StringAssembler strings;
+  SymbolAssembler symbols(&strings);
+  symbols
+      .Symbol(0xa7, 0xaf, 0x03af, 0x42f3072c74335181ULL, "foo")
+      .Symbol(0xb0, 0x9a, 0x2aa7, 0x2e2d349b3d5744a0ULL, "bar");
+
+  SizedSection symtab_command;
+  symtab_command
+      .D32(LC_SYMTAB)                    // command
+      .D32(symtab_command.final_size())  // size
+      .D32(symbols.start())              // file offset of symbols
+      .D32(2)                            // symbol count
+      .D32(strings.start())              // file offset of strings
+      .D32(strings.final_size() + 1);    // strings size (too long)
+
+  LoadCommands load_commands;
+  load_commands.Place(&symtab_command);
+
+  MachOFile file;
+  // Put strings at end, so the excessive length will be noticed.
+  file.Header(&load_commands).Place(&symbols).Place(&strings);
+
+  ReadFile(&file, true, CPU_TYPE_ANY, 0);
+
+  EXPECT_CALL(reporter, MisplacedSymbolTable()).Times(1);
+  EXPECT_FALSE(reader.WalkLoadCommands(&load_command_handler));
+}
+
diff --git a/src/common/mac/macho_utilities.cc b/src/common/mac/macho_utilities.cc
new file mode 100644
index 0000000..f56fe76
--- /dev/null
+++ b/src/common/mac/macho_utilities.cc
@@ -0,0 +1,155 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_utilties.cc: Utilities for dealing with mach-o files
+//
+// Author: Dave Camp
+
+#include "common/mac/byteswap.h"
+#include "common/mac/macho_utilities.h"
+
+#include <mach-o/fat.h>
+#include <mach-o/loader.h>
+
+void breakpad_swap_uuid_command(struct breakpad_uuid_command *uc) {
+  uc->cmd = ByteSwap(uc->cmd);
+  uc->cmdsize = ByteSwap(uc->cmdsize);
+}
+
+void breakpad_swap_load_command(struct load_command *lc) {
+  lc->cmd = ByteSwap(lc->cmd);
+  lc->cmdsize = ByteSwap(lc->cmdsize);
+}
+
+void breakpad_swap_dylib_command(struct dylib_command *dc) {
+  dc->cmd = ByteSwap(dc->cmd);
+  dc->cmdsize = ByteSwap(dc->cmdsize);
+
+  dc->dylib.name.offset = ByteSwap(dc->dylib.name.offset);
+  dc->dylib.timestamp = ByteSwap(dc->dylib.timestamp);
+  dc->dylib.current_version = ByteSwap(dc->dylib.current_version);
+  dc->dylib.compatibility_version = ByteSwap(dc->dylib.compatibility_version);
+}
+
+void breakpad_swap_segment_command(struct segment_command *sc) {
+  sc->cmd = ByteSwap(sc->cmd);
+  sc->cmdsize = ByteSwap(sc->cmdsize);
+
+  sc->vmaddr = ByteSwap(sc->vmaddr);
+  sc->vmsize = ByteSwap(sc->vmsize);
+  sc->fileoff = ByteSwap(sc->fileoff);
+  sc->filesize = ByteSwap(sc->filesize);
+  sc->maxprot = ByteSwap(sc->maxprot);
+  sc->initprot = ByteSwap(sc->initprot);
+  sc->nsects = ByteSwap(sc->nsects);
+  sc->flags = ByteSwap(sc->flags);
+}
+
+void breakpad_swap_segment_command_64(struct segment_command_64 *sg) {
+  sg->cmd = ByteSwap(sg->cmd);
+  sg->cmdsize = ByteSwap(sg->cmdsize);
+
+  sg->vmaddr = ByteSwap(sg->vmaddr);
+  sg->vmsize = ByteSwap(sg->vmsize);
+  sg->fileoff = ByteSwap(sg->fileoff);
+  sg->filesize = ByteSwap(sg->filesize);
+
+  sg->maxprot = ByteSwap(sg->maxprot);
+  sg->initprot = ByteSwap(sg->initprot);
+  sg->nsects = ByteSwap(sg->nsects);
+  sg->flags = ByteSwap(sg->flags);
+}
+
+void breakpad_swap_fat_header(struct fat_header *fh) {
+  fh->magic = ByteSwap(fh->magic);
+  fh->nfat_arch = ByteSwap(fh->nfat_arch);
+}
+
+void breakpad_swap_fat_arch(struct fat_arch *fa, uint32_t narchs) {
+  for (uint32_t i = 0; i < narchs; ++i) {
+    fa[i].cputype = ByteSwap(fa[i].cputype);
+    fa[i].cpusubtype = ByteSwap(fa[i].cpusubtype);
+    fa[i].offset = ByteSwap(fa[i].offset);
+    fa[i].size = ByteSwap(fa[i].size);
+    fa[i].align = ByteSwap(fa[i].align);
+  }
+}
+
+void breakpad_swap_mach_header(struct mach_header *mh) {
+  mh->magic = ByteSwap(mh->magic);
+  mh->cputype = ByteSwap(mh->cputype);
+  mh->cpusubtype = ByteSwap(mh->cpusubtype);
+  mh->filetype = ByteSwap(mh->filetype);
+  mh->ncmds = ByteSwap(mh->ncmds);
+  mh->sizeofcmds = ByteSwap(mh->sizeofcmds);
+  mh->flags = ByteSwap(mh->flags);
+}
+
+void breakpad_swap_mach_header_64(struct mach_header_64 *mh) {
+  mh->magic = ByteSwap(mh->magic);
+  mh->cputype = ByteSwap(mh->cputype);
+  mh->cpusubtype = ByteSwap(mh->cpusubtype);
+  mh->filetype = ByteSwap(mh->filetype);
+  mh->ncmds = ByteSwap(mh->ncmds);
+  mh->sizeofcmds = ByteSwap(mh->sizeofcmds);
+  mh->flags = ByteSwap(mh->flags);
+  mh->reserved = ByteSwap(mh->reserved);
+}
+
+void breakpad_swap_section(struct section *s,
+                           uint32_t nsects) {
+  for (uint32_t i = 0; i < nsects; i++) {
+    s[i].addr = ByteSwap(s[i].addr);
+    s[i].size = ByteSwap(s[i].size);
+
+    s[i].offset = ByteSwap(s[i].offset);
+    s[i].align = ByteSwap(s[i].align);
+    s[i].reloff = ByteSwap(s[i].reloff);
+    s[i].nreloc = ByteSwap(s[i].nreloc);
+    s[i].flags = ByteSwap(s[i].flags);
+    s[i].reserved1 = ByteSwap(s[i].reserved1);
+    s[i].reserved2 = ByteSwap(s[i].reserved2);
+  }
+}
+
+void breakpad_swap_section_64(struct section_64 *s,
+                              uint32_t nsects) {
+  for (uint32_t i = 0; i < nsects; i++) {
+    s[i].addr = ByteSwap(s[i].addr);
+    s[i].size = ByteSwap(s[i].size);
+
+    s[i].offset = ByteSwap(s[i].offset);
+    s[i].align = ByteSwap(s[i].align);
+    s[i].reloff = ByteSwap(s[i].reloff);
+    s[i].nreloc = ByteSwap(s[i].nreloc);
+    s[i].flags = ByteSwap(s[i].flags);
+    s[i].reserved1 = ByteSwap(s[i].reserved1);
+    s[i].reserved2 = ByteSwap(s[i].reserved2);
+  }
+}
diff --git a/src/common/mac/macho_utilities.h b/src/common/mac/macho_utilities.h
new file mode 100644
index 0000000..00563a7
--- /dev/null
+++ b/src/common/mac/macho_utilities.h
@@ -0,0 +1,95 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_utilities.h: Utilities for dealing with mach-o files
+//
+// Author: Dave Camp
+
+#ifndef COMMON_MAC_MACHO_UTILITIES_H__
+#define COMMON_MAC_MACHO_UTILITIES_H__
+
+#include <mach-o/loader.h>
+#include <mach/thread_status.h>
+
+/* Some #defines and structs that aren't defined in older SDKs */
+#ifndef CPU_ARCH_ABI64
+# define CPU_ARCH_ABI64    0x01000000
+#endif
+
+#ifndef CPU_TYPE_X86
+# define CPU_TYPE_X86 CPU_TYPE_I386
+#endif
+
+#ifndef CPU_TYPE_POWERPC64
+# define CPU_TYPE_POWERPC64 (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
+#endif
+
+#ifndef LC_UUID
+# define LC_UUID         0x1b    /* the uuid */
+#endif
+
+// The uuid_command struct/swap routines were added during the 10.4 series.
+// Their presence isn't guaranteed.
+struct breakpad_uuid_command {
+  uint32_t    cmd;            /* LC_UUID */
+  uint32_t    cmdsize;        /* sizeof(struct uuid_command) */
+  uint8_t     uuid[16];       /* the 128-bit uuid */
+};
+
+void breakpad_swap_uuid_command(struct breakpad_uuid_command *uc);
+
+void breakpad_swap_load_command(struct load_command *lc);
+
+void breakpad_swap_dylib_command(struct dylib_command *dc);
+
+// Older SDKs defines thread_state_data_t as an int[] instead
+// of the natural_t[] it should be.
+typedef natural_t breakpad_thread_state_data_t[THREAD_STATE_MAX];
+
+void breakpad_swap_segment_command(struct segment_command *sc);
+
+// The 64-bit swap routines were added during the 10.4 series, their
+// presence isn't guaranteed.
+void breakpad_swap_segment_command_64(struct segment_command_64 *sg);
+
+void breakpad_swap_fat_header(struct fat_header *fh);
+
+void breakpad_swap_fat_arch(struct fat_arch *fa, uint32_t narchs);
+
+void breakpad_swap_mach_header(struct mach_header *mh);
+
+void breakpad_swap_mach_header_64(struct mach_header_64 *mh);
+
+void breakpad_swap_section(struct section *s,
+                           uint32_t nsects);
+
+void breakpad_swap_section_64(struct section_64 *s,
+                              uint32_t nsects);
+
+#endif
diff --git a/src/common/mac/macho_walker.cc b/src/common/mac/macho_walker.cc
new file mode 100644
index 0000000..a42128b
--- /dev/null
+++ b/src/common/mac/macho_walker.cc
@@ -0,0 +1,268 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_walker.cc: Iterate over the load commands in a mach-o file
+//
+// See macho_walker.h for documentation
+//
+// Author: Dan Waylonis
+
+#include <assert.h>
+#include <fcntl.h>
+#include <mach-o/arch.h>
+#include <mach-o/fat.h>
+#include <mach-o/loader.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "common/mac/byteswap.h"
+#include "common/mac/macho_walker.h"
+#include "common/mac/macho_utilities.h"
+
+namespace MacFileUtilities {
+
+MachoWalker::MachoWalker(const char* path, LoadCommandCallback callback,
+                         void* context)
+    : file_(-1),
+      memory_(NULL),
+      memory_size_(0),
+      callback_(callback),
+      callback_context_(context),
+      current_header_(NULL),
+      current_header_size_(0),
+      current_header_offset_(0) {
+  file_ = open(path, O_RDONLY);
+}
+
+MachoWalker::MachoWalker(void* memory, size_t size,
+                         LoadCommandCallback callback, void* context)
+    : file_(-1),
+      memory_(memory),
+      memory_size_(size),
+      callback_(callback),
+      callback_context_(context),
+      current_header_(NULL),
+      current_header_size_(0),
+      current_header_offset_(0) {
+}
+
+MachoWalker::~MachoWalker() {
+  if (file_ != -1)
+    close(file_);
+}
+
+bool MachoWalker::WalkHeader(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype) {
+  cpu_type_t valid_cpu_type = cpu_type;
+  cpu_subtype_t valid_cpu_subtype = cpu_subtype;
+  // if |cpu_type| is 0, use the native cpu type.
+  if (cpu_type == 0) {
+    const NXArchInfo* arch = NXGetLocalArchInfo();
+    assert(arch);
+    valid_cpu_type = arch->cputype;
+    valid_cpu_subtype = CPU_SUBTYPE_MULTIPLE;
+  }
+  off_t offset;
+  if (FindHeader(valid_cpu_type, valid_cpu_subtype, offset)) {
+    if (cpu_type & CPU_ARCH_ABI64)
+      return WalkHeader64AtOffset(offset);
+
+    return WalkHeaderAtOffset(offset);
+  }
+
+  return false;
+}
+
+bool MachoWalker::ReadBytes(void* buffer, size_t size, off_t offset) {
+  if (memory_) {
+    if (offset < 0)
+      return false;
+    bool result = true;
+    if (offset + size > memory_size_) {
+      if (static_cast<size_t>(offset) >= memory_size_)
+        return false;
+      size = memory_size_ - static_cast<size_t>(offset);
+      result = false;
+    }
+    memcpy(buffer, static_cast<char*>(memory_) + offset, size);
+    return result;
+  } else {
+    return pread(file_, buffer, size, offset) == (ssize_t)size;
+  }
+}
+
+bool MachoWalker::CurrentHeader(struct mach_header_64* header, off_t* offset) {
+  if (current_header_) {
+    memcpy(header, current_header_, sizeof(mach_header_64));
+    *offset = current_header_offset_;
+    return true;
+  }
+
+  return false;
+}
+
+bool MachoWalker::FindHeader(cpu_type_t cpu_type,
+                             cpu_subtype_t cpu_subtype,
+                             off_t& offset) {
+  // Read the magic bytes that's common amongst all mach-o files
+  uint32_t magic;
+  if (!ReadBytes(&magic, sizeof(magic), 0))
+    return false;
+
+  offset = sizeof(magic);
+
+  // Figure out what type of file we've got
+  bool is_fat = false;
+  if (magic == FAT_MAGIC || magic == FAT_CIGAM) {
+    is_fat = true;
+  }
+  else if (magic != MH_MAGIC && magic != MH_CIGAM && magic != MH_MAGIC_64 &&
+           magic != MH_CIGAM_64) {
+    return false;
+  }
+
+  if (!is_fat) {
+    // If we don't have a fat header, check if the cpu type matches the single
+    // header
+    struct mach_header header;
+    if (!ReadBytes(&header, sizeof(header), 0))
+      return false;
+
+    if (magic == MH_CIGAM || magic == MH_CIGAM_64)
+      breakpad_swap_mach_header(&header);
+
+    if (cpu_type != header.cputype ||
+        (cpu_subtype != CPU_SUBTYPE_MULTIPLE &&
+         cpu_subtype != header.cpusubtype)) {
+      return false;
+    }
+
+    offset = 0;
+    return true;
+  } else {
+    // Read the fat header and find an appropriate architecture
+    offset = 0;
+    struct fat_header fat;
+    if (!ReadBytes(&fat, sizeof(fat), offset))
+      return false;
+
+    if (NXHostByteOrder() != NX_BigEndian)
+      breakpad_swap_fat_header(&fat);
+
+    offset += sizeof(fat);
+
+    // Search each architecture for the desired one
+    struct fat_arch arch;
+    for (uint32_t i = 0; i < fat.nfat_arch; ++i) {
+      if (!ReadBytes(&arch, sizeof(arch), offset))
+        return false;
+
+      if (NXHostByteOrder() != NX_BigEndian)
+        breakpad_swap_fat_arch(&arch, 1);
+
+      if (arch.cputype == cpu_type &&
+          (cpu_subtype == CPU_SUBTYPE_MULTIPLE ||
+           arch.cpusubtype == cpu_subtype)) {
+        offset = arch.offset;
+        return true;
+      }
+
+      offset += sizeof(arch);
+    }
+  }
+
+  return false;
+}
+
+bool MachoWalker::WalkHeaderAtOffset(off_t offset) {
+  struct mach_header header;
+  if (!ReadBytes(&header, sizeof(header), offset))
+    return false;
+
+  bool swap = (header.magic == MH_CIGAM);
+  if (swap)
+    breakpad_swap_mach_header(&header);
+
+  // Copy the data into the mach_header_64 structure.  Since the 32-bit and
+  // 64-bit only differ in the last field (reserved), this is safe to do.
+  struct mach_header_64 header64;
+  memcpy((void*)&header64, (const void*)&header, sizeof(header));
+  header64.reserved = 0;
+
+  current_header_ = &header64;
+  current_header_size_ = sizeof(header); // 32-bit, not 64-bit
+  current_header_offset_ = offset;
+  offset += current_header_size_;
+  bool result = WalkHeaderCore(offset, header.ncmds, swap);
+  current_header_ = NULL;
+  current_header_size_ = 0;
+  current_header_offset_ = 0;
+  return result;
+}
+
+bool MachoWalker::WalkHeader64AtOffset(off_t offset) {
+  struct mach_header_64 header;
+  if (!ReadBytes(&header, sizeof(header), offset))
+    return false;
+
+  bool swap = (header.magic == MH_CIGAM_64);
+  if (swap)
+    breakpad_swap_mach_header_64(&header);
+
+  current_header_ = &header;
+  current_header_size_ = sizeof(header);
+  current_header_offset_ = offset;
+  offset += current_header_size_;
+  bool result = WalkHeaderCore(offset, header.ncmds, swap);
+  current_header_ = NULL;
+  current_header_size_ = 0;
+  current_header_offset_ = 0;
+  return result;
+}
+
+bool MachoWalker::WalkHeaderCore(off_t offset, uint32_t number_of_commands,
+                                 bool swap) {
+  for (uint32_t i = 0; i < number_of_commands; ++i) {
+    struct load_command cmd;
+    if (!ReadBytes(&cmd, sizeof(cmd), offset))
+      return false;
+
+    if (swap)
+      breakpad_swap_load_command(&cmd);
+
+    // Call the user callback
+    if (callback_ && !callback_(this, &cmd, offset, swap, callback_context_))
+      break;
+
+    offset += cmd.cmdsize;
+  }
+
+  return true;
+}
+
+}  // namespace MacFileUtilities
diff --git a/src/common/mac/macho_walker.h b/src/common/mac/macho_walker.h
new file mode 100644
index 0000000..168f30e
--- /dev/null
+++ b/src/common/mac/macho_walker.h
@@ -0,0 +1,119 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// macho_walker.h: Iterate over the load commands in a mach-o file
+//
+// Author: Dan Waylonis
+
+#ifndef COMMON_MAC_MACHO_WALKER_H__
+#define COMMON_MAC_MACHO_WALKER_H__
+
+#include <mach/machine.h>
+#include <mach-o/loader.h>
+#include <sys/types.h>
+
+namespace MacFileUtilities {
+
+class MachoWalker {
+ public:
+  // A callback function executed when a new load command is read.  If no
+  // further processing of load commands is desired, return false.  Otherwise,
+  // return true.
+  // |cmd| is the current command, and |offset| is the location relative to the
+  // beginning of the file (not header) where the command was read.  If |swap|
+  // is set, then any command data (other than the returned load_command) should
+  // be swapped when read
+  typedef bool (*LoadCommandCallback)(MachoWalker* walker, load_command* cmd,
+                                      off_t offset, bool swap, void* context);
+
+  MachoWalker(const char* path, LoadCommandCallback callback, void* context);
+  MachoWalker(void* memory, size_t size, LoadCommandCallback callback,
+              void* context);
+  ~MachoWalker();
+
+  // Begin walking the header for |cpu_type| and |cpu_subtype|.  If |cpu_type|
+  // is 0, then the native cpu type is used. Otherwise, accepted values are
+  // listed in /usr/include/mach/machine.h (e.g., CPU_TYPE_X86 or
+  // CPU_TYPE_POWERPC). If |cpu_subtype| is CPU_SUBTYPE_MULTIPLE, the match is
+  // only done on |cpu_type|.
+  // Returns false if opening the file failed or if the |cpu_type|/|cpu_subtype|
+  // is not present in the file.
+  bool WalkHeader(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype);
+
+  // Read |size| bytes from the opened file at |offset| into |buffer|
+  bool ReadBytes(void* buffer, size_t size, off_t offset);
+
+  // Return the current header and header offset
+  bool CurrentHeader(struct mach_header_64* header, off_t* offset);
+
+ private:
+  // Locate (if any) the header offset for |cpu_type| and return in |offset|.
+  // Return true if found, false otherwise.
+  bool FindHeader(cpu_type_t cpu_type,
+                  cpu_subtype_t cpu_subtype,
+                  off_t& offset);
+
+  // Process an individual header starting at |offset| from the start of the
+  // file.  Return true if successful, false otherwise.
+  bool WalkHeaderAtOffset(off_t offset);
+  bool WalkHeader64AtOffset(off_t offset);
+
+  // Bottleneck for walking the load commands
+  bool WalkHeaderCore(off_t offset, uint32_t number_of_commands, bool swap);
+
+  // File descriptor to the opened file
+  int file_;
+
+  // Memory location to read from.
+  void* memory_;
+
+  // Size of the memory segment we can read from.
+  size_t memory_size_;
+
+  // User specified callback & context
+  LoadCommandCallback callback_;
+  void* callback_context_;
+
+  // Current header, size, and offset.  The mach_header_64 is used for both
+  // 32-bit and 64-bit headers because they only differ in their last field
+  // (reserved).  By adding the |current_header_size_| and the
+  // |current_header_offset_|, you can determine the offset in the file just
+  // after the header.
+  struct mach_header_64* current_header_;
+  unsigned long current_header_size_;
+  off_t current_header_offset_;
+
+ private:
+  MachoWalker(const MachoWalker&);
+  MachoWalker& operator=(const MachoWalker&);
+};
+
+}  // namespace MacFileUtilities
+
+#endif  // COMMON_MAC_MACHO_WALKER_H__
diff --git a/src/common/mac/minidump_upload.m b/src/common/mac/minidump_upload.m
new file mode 100644
index 0000000..1fe4f21
--- /dev/null
+++ b/src/common/mac/minidump_upload.m
@@ -0,0 +1,135 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_upload.m: Upload a minidump to a HTTP server.  The upload is sent as
+// a multipart/form-data POST request with the following parameters:
+//  prod: the product name
+//  ver: the product version
+//  symbol_file: the breakpad format symbol file
+
+#import <unistd.h>
+
+#import <Foundation/Foundation.h>
+
+#import "common/mac/HTTPMultipartUpload.h"
+
+typedef struct {
+  NSString* minidumpPath;
+  NSString* uploadURLStr;
+  NSString* product;
+  NSString* version;
+  BOOL success;
+} Options;
+
+//=============================================================================
+static void Start(Options* options) {
+  NSURL* url = [NSURL URLWithString:options->uploadURLStr];
+  HTTPMultipartUpload* ul = [[HTTPMultipartUpload alloc] initWithURL:url];
+  NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
+
+  // Add parameters
+  [parameters setObject:options->product forKey:@"prod"];
+  [parameters setObject:options->version forKey:@"ver"];
+  [ul setParameters:parameters];
+
+  // Add file
+  [ul addFileAtPath:options->minidumpPath name:@"upload_file_minidump"];
+
+  // Send it
+  NSError* error = nil;
+  NSData* data = [ul send:&error];
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+
+  NSLog(@"Send: %@", error ? [error description] : @"No Error");
+  NSLog(@"Response: %ld", (long)[[ul response] statusCode]);
+  NSLog(@"Result: %lu bytes\n%@", (unsigned long)[data length], result);
+
+  [result release];
+  [ul release];
+  options->success = !error;
+}
+
+//=============================================================================
+static void Usage(int argc, const char* argv[]) {
+  fprintf(stderr, "Submit minidump information.\n");
+  fprintf(stderr,
+          "Usage: %s -p <product> -v <version> <minidump> "
+          "<upload-URL>\n",
+          argv[0]);
+  fprintf(stderr, "<minidump> should be a minidump.\n");
+  fprintf(stderr, "<upload-URL> is the destination for the upload\n");
+
+  fprintf(stderr, "\t-h: Usage\n");
+  fprintf(stderr, "\t-?: Usage\n");
+}
+
+//=============================================================================
+static void SetupOptions(int argc, const char* argv[], Options* options) {
+  extern int optind;
+  char ch;
+
+  while ((ch = getopt(argc, (char* const*)argv, "p:v:h?")) != -1) {
+    switch (ch) {
+      case 'p':
+        options->product = [NSString stringWithUTF8String:optarg];
+        break;
+      case 'v':
+        options->version = [NSString stringWithUTF8String:optarg];
+        break;
+
+      default:
+        Usage(argc, argv);
+        exit(0);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 2) {
+    fprintf(stderr, "%s: Missing symbols file and/or upload-URL\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->minidumpPath = [NSString stringWithUTF8String:argv[optind]];
+  options->uploadURLStr = [NSString stringWithUTF8String:argv[optind + 1]];
+}
+
+//=============================================================================
+int main(int argc, const char* argv[]) {
+  NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+  Options options;
+
+  bzero(&options, sizeof(Options));
+  SetupOptions(argc, argv, &options);
+  Start(&options);
+
+  [pool release];
+  return options.success ? 0 : 1;
+}
diff --git a/src/common/mac/scoped_task_suspend-inl.h b/src/common/mac/scoped_task_suspend-inl.h
new file mode 100644
index 0000000..d6d1bef
--- /dev/null
+++ b/src/common/mac/scoped_task_suspend-inl.h
@@ -0,0 +1,56 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Inline implementation of ScopedTaskSuspend, which suspends a Mach
+// task for the duration of its scope.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_
+#define GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_
+
+#include <mach/mach.h>
+
+namespace google_breakpad {
+
+class ScopedTaskSuspend {
+ public:
+  explicit ScopedTaskSuspend(mach_port_t target) : target_(target) {
+    task_suspend(target_);
+  }
+
+  ~ScopedTaskSuspend() {
+    task_resume(target_);
+  }
+
+ private:
+  mach_port_t target_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_
diff --git a/src/common/mac/string_utilities.cc b/src/common/mac/string_utilities.cc
new file mode 100644
index 0000000..cb15540
--- /dev/null
+++ b/src/common/mac/string_utilities.cc
@@ -0,0 +1,84 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/scoped_ptr.h"
+#include "common/mac/string_utilities.h"
+
+namespace MacStringUtils {
+
+using google_breakpad::scoped_array;
+
+std::string ConvertToString(CFStringRef str) {
+  CFIndex length = CFStringGetLength(str);
+  std::string result;
+
+  if (!length)
+    return result;
+
+  CFIndex maxUTF8Length =
+    CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8);
+  scoped_array<UInt8> buffer(new UInt8[maxUTF8Length + 1]);
+  CFIndex actualUTF8Length;
+  CFStringGetBytes(str, CFRangeMake(0, length), kCFStringEncodingUTF8, 0,
+                   false, buffer.get(), maxUTF8Length, &actualUTF8Length);
+  buffer[actualUTF8Length] = 0;
+  result.assign((const char*)buffer.get());
+
+  return result;
+}
+
+unsigned int IntegerValueAtIndex(string& str, unsigned int idx) {
+  string digits("0123456789"), temp;
+  size_t start = 0;
+  size_t end;
+  size_t found = 0;
+  unsigned int result = 0;
+
+  for (; found <= idx; ++found) {
+    end = str.find_first_not_of(digits, start);
+
+    if (end == string::npos)
+      end = str.size();
+
+    temp = str.substr(start, end - start);
+
+    if (found == idx) {
+      result = atoi(temp.c_str());
+    }
+
+    start = str.find_first_of(digits, end + 1);
+
+    if (start == string::npos)
+      break;
+  }
+
+  return result;
+}
+
+}  // namespace MacStringUtils
diff --git a/src/common/mac/string_utilities.h b/src/common/mac/string_utilities.h
new file mode 100644
index 0000000..e87304c
--- /dev/null
+++ b/src/common/mac/string_utilities.h
@@ -0,0 +1,52 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// string_utilities.h: Utilities for strings for Mac platform
+
+#ifndef COMMON_MAC_STRING_UTILITIES_H__
+#define COMMON_MAC_STRING_UTILITIES_H__
+
+#include <CoreFoundation/CoreFoundation.h>
+
+#include <string>
+
+namespace MacStringUtils {
+
+using std::string;
+
+// Convert a CoreFoundation string into a std::string
+string ConvertToString(CFStringRef str);
+
+// Return the idx'th decimal integer in str, separated by non-decimal-digits
+// E.g., str = 10.4.8, idx = 1 -> 4
+unsigned int IntegerValueAtIndex(string& str, unsigned int idx);
+
+}  // namespace MacStringUtils
+
+#endif  // COMMON_MAC_STRING_UTILITIES_H__
diff --git a/src/common/mac/super_fat_arch.h b/src/common/mac/super_fat_arch.h
new file mode 100644
index 0000000..d7fa018
--- /dev/null
+++ b/src/common/mac/super_fat_arch.h
@@ -0,0 +1,88 @@
+// Copyright (c) 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Erik Chen <erikchen@chromium.org>
+
+// super_fat_arch.h: A class to handle 64-bit object files. Has conversions to
+// and from struct fat_arch.
+
+#ifndef BREAKPAD_COMMON_MAC_SUPER_FAT_ARCH_H_
+#define BREAKPAD_COMMON_MAC_SUPER_FAT_ARCH_H_
+
+#include <limits>
+#include <mach-o/fat.h>
+#include <stdint.h>
+
+// Similar to struct fat_arch, except size-related parameters support
+// 64-bits.
+class SuperFatArch {
+ public:
+  uint32_t cputype;
+  uint32_t cpusubtype;
+  uint64_t offset;
+  uint64_t size;
+  uint64_t align;
+
+  SuperFatArch() :
+      cputype(0),
+      cpusubtype(0),
+      offset(0),
+      size(0),
+      align(0) {
+  }
+
+  explicit SuperFatArch(const struct fat_arch& arch) :
+      cputype(arch.cputype),
+      cpusubtype(arch.cpusubtype),
+      offset(arch.offset),
+      size(arch.size),
+      align(arch.align) {
+  }
+
+  // Returns false if the conversion cannot be made.
+  // If the conversion succeeds, the result is placed in |output_arch|.
+  bool ConvertToFatArch(struct fat_arch* output_arch) const {
+    if (offset > std::numeric_limits<uint32_t>::max())
+      return false;
+    if (size > std::numeric_limits<uint32_t>::max())
+      return false;
+    if (align > std::numeric_limits<uint32_t>::max())
+      return false;
+    struct fat_arch arch;
+    arch.cputype = cputype;
+    arch.cpusubtype = cpusubtype;
+    arch.offset = offset;
+    arch.size = size;
+    arch.align = align;
+    *output_arch = arch;
+    return true;
+  }
+};
+
+#endif  // BREAKPAD_COMMON_MAC_SUPER_FAT_ARCH_H_
diff --git a/src/common/mac/testing/GTMSenTestCase.h b/src/common/mac/testing/GTMSenTestCase.h
new file mode 100644
index 0000000..ce3d902
--- /dev/null
+++ b/src/common/mac/testing/GTMSenTestCase.h
@@ -0,0 +1,1110 @@
+//
+//  GTMSenTestCase.h
+//
+//  Copyright 2007-2008 Google Inc.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
+//  use this file except in compliance with the License.  You may obtain a copy
+//  of the License at
+//
+//  http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+//  License for the specific language governing permissions and limitations under
+//  the License.
+//
+
+// Portions of this file fall under the following license, marked with
+// SENTE_BEGIN - SENTE_END
+//
+// Copyright (c) 1997-2005, Sen:te (Sente SA).  All rights reserved.
+//
+// Use of this source code is governed by the following license:
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// (1) Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// (2) Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+// IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Note: this license is equivalent to the FreeBSD license.
+//
+// This notice may not be removed from this file.
+
+// Some extra test case macros that would have been convenient for SenTestingKit
+// to provide. I didn't stick GTM in front of the Macro names, so that they would
+// be easy to remember.
+
+#import "GTMDefines.h"
+
+#if (!GTM_IPHONE_SDK) || (GTM_IPHONE_USE_SENTEST)
+#import <SenTestingKit/SenTestingKit.h>
+#else
+#import <Foundation/Foundation.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+  
+#if defined __clang__
+// gcc and gcc-llvm do not allow you to use STAssert(blah, nil) with nil
+// as a description if you have the NS_FORMAT_FUNCTION on.
+// clang however will not compile without warnings if you don't have it.
+NSString *STComposeString(NSString *, ...) NS_FORMAT_FUNCTION(1, 2);
+#else
+NSString *STComposeString(NSString *, ...);
+#endif  // __clang__
+  
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // !GTM_IPHONE_SDK || GTM_IPHONE_USE_SENTEST
+
+// Generates a failure when a1 != noErr
+//  Args:
+//    a1: should be either an OSErr or an OSStatus
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNoErr(a1, description, ...) \
+do { \
+  @try { \
+    OSStatus a1value = (a1); \
+    if (a1value != noErr) { \
+      NSString *_expression = [NSString stringWithFormat:@"Expected noErr, got %ld for (%s)", (long)a1value, #a1]; \
+      [self failWithException:([NSException failureInCondition:_expression \
+                       isTrue:NO \
+                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                       atLine:__LINE__ \
+              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == noErr fails", #a1] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when a1 != a2
+//  Args:
+//    a1: received value. Should be either an OSErr or an OSStatus
+//    a2: expected value. Should be either an OSErr or an OSStatus
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertErr(a1, a2, description, ...) \
+do { \
+  @try { \
+    OSStatus a1value = (a1); \
+    OSStatus a2value = (a2); \
+    if (a1value != a2value) { \
+      NSString *_expression = [NSString stringWithFormat:@"Expected %s(%ld) but got %ld for (%s)", #a2, (long)a2value, (long)a1value, #a1]; \
+      [self failWithException:([NSException failureInCondition:_expression \
+                       isTrue:NO \
+                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                       atLine:__LINE__ \
+              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s) fails", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+
+// Generates a failure when a1 is NULL
+//  Args:
+//    a1: should be a pointer (use STAssertNotNil for an object)
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNotNULL(a1, description, ...) \
+do { \
+  @try { \
+    __typeof__(a1) a1value = (a1); \
+    if (a1value == (__typeof__(a1))NULL) { \
+      NSString *_expression = [NSString stringWithFormat:@"((%s) != NULL)", #a1]; \
+      [self failWithException:([NSException failureInCondition:_expression \
+                       isTrue:NO \
+                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                       atLine:__LINE__ \
+              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) != NULL fails", #a1] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when a1 is not NULL
+//  Args:
+//    a1: should be a pointer (use STAssertNil for an object)
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNULL(a1, description, ...) \
+do { \
+  @try { \
+    __typeof__(a1) a1value = (a1); \
+    if (a1value != (__typeof__(a1))NULL) { \
+      NSString *_expression = [NSString stringWithFormat:@"((%s) == NULL)", #a1]; \
+      [self failWithException:([NSException failureInCondition:_expression \
+                                                        isTrue:NO \
+                                                        inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                        atLine:__LINE__ \
+                                               withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == NULL fails", #a1] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when a1 is equal to a2. This test is for C scalars,
+// structs and unions.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNotEquals(a1, a2, description, ...) \
+do { \
+  @try { \
+    if (strcmp(@encode(__typeof__(a1)), @encode(__typeof__(a2)))) { \
+      [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                  atLine:__LINE__ \
+                                         withDescription:@"Type mismatch -- %@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } else { \
+      __typeof__(a1) a1value = (a1); \
+      __typeof__(a2) a2value = (a2); \
+      NSValue *a1encoded = [NSValue value:&a1value withObjCType:@encode(__typeof__(a1))]; \
+      NSValue *a2encoded = [NSValue value:&a2value withObjCType:@encode(__typeof__(a2))]; \
+      if ([a1encoded isEqualToValue:a2encoded]) { \
+        NSString *_expression = [NSString stringWithFormat:@"((%s) != (%s))", #a1, #a2]; \
+        [self failWithException:([NSException failureInCondition:_expression \
+                         isTrue:NO \
+                         inFile:[NSString stringWithUTF8String:__FILE__] \
+                         atLine:__LINE__ \
+                withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+      }\
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) != (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+            withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when a1 is equal to a2. This test is for objects.
+//  Args:
+//    a1: argument 1. object.
+//    a2: argument 2. object.
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNotEqualObjects(a1, a2, description, ...) \
+do { \
+  @try {\
+    id a1value = (a1); \
+    id a2value = (a2); \
+    if ( (strcmp(@encode(__typeof__(a1value)), @encode(id)) == 0) && \
+         (strcmp(@encode(__typeof__(a2value)), @encode(id)) == 0) && \
+         (![(id)a1value isEqual:(id)a2value]) ) continue; \
+    [self failWithException:([NSException failureInEqualityBetweenObject:a1value \
+                  andObject:a2value \
+                     inFile:[NSString stringWithUTF8String:__FILE__] \
+                     atLine:__LINE__ \
+            withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+  }\
+  @catch (id anException) {\
+    [self failWithException:([NSException failureInRaise:[NSString stringWithFormat:@"(%s) != (%s)", #a1, #a2] \
+                                               exception:anException \
+                                                  inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                  atLine:__LINE__ \
+                                         withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+  }\
+} while(0)
+
+// Generates a failure when a1 is not 'op' to a2. This test is for C scalars.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    op: operation
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertOperation(a1, a2, op, description, ...) \
+do { \
+  @try { \
+    if (strcmp(@encode(__typeof__(a1)), @encode(__typeof__(a2)))) { \
+      [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                  atLine:__LINE__ \
+                                         withDescription:@"Type mismatch -- %@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } else { \
+      __typeof__(a1) a1value = (a1); \
+      __typeof__(a2) a2value = (a2); \
+      if (!(a1value op a2value)) { \
+        double a1DoubleValue = a1value; \
+        double a2DoubleValue = a2value; \
+        NSString *_expression = [NSString stringWithFormat:@"(%s (%lg) %s %s (%lg))", #a1, a1DoubleValue, #op, #a2, a2DoubleValue]; \
+        [self failWithException:([NSException failureInCondition:_expression \
+                         isTrue:NO \
+                         inFile:[NSString stringWithUTF8String:__FILE__] \
+                         atLine:__LINE__ \
+                withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)])]; \
+      } \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException \
+             failureInRaise:[NSString stringWithFormat:@"(%s) %s (%s)", #a1, #op, #a2] \
+                  exception:anException \
+                     inFile:[NSString stringWithUTF8String:__FILE__] \
+                     atLine:__LINE__ \
+            withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when a1 is not > a2. This test is for C scalars.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    op: operation
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertGreaterThan(a1, a2, description, ...) \
+  STAssertOperation(a1, a2, >, description, ##__VA_ARGS__)
+
+// Generates a failure when a1 is not >= a2. This test is for C scalars.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    op: operation
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertGreaterThanOrEqual(a1, a2, description, ...) \
+  STAssertOperation(a1, a2, >=, description, ##__VA_ARGS__)
+
+// Generates a failure when a1 is not < a2. This test is for C scalars.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    op: operation
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertLessThan(a1, a2, description, ...) \
+  STAssertOperation(a1, a2, <, description, ##__VA_ARGS__)
+
+// Generates a failure when a1 is not <= a2. This test is for C scalars.
+//  Args:
+//    a1: argument 1
+//    a2: argument 2
+//    op: operation
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertLessThanOrEqual(a1, a2, description, ...) \
+  STAssertOperation(a1, a2, <=, description, ##__VA_ARGS__)
+
+// Generates a failure when string a1 is not equal to string a2. This call
+// differs from STAssertEqualObjects in that strings that are different in
+// composition (precomposed vs decomposed) will compare equal if their final
+// representation is equal.
+// ex O + umlaut decomposed is the same as O + umlaut composed.
+//  Args:
+//    a1: string 1
+//    a2: string 2
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertEqualStrings(a1, a2, description, ...) \
+do { \
+  @try { \
+    id a1value = (a1); \
+    id a2value = (a2); \
+    if (a1value == a2value) continue; \
+    if ([a1value isKindOfClass:[NSString class]] && \
+        [a2value isKindOfClass:[NSString class]] && \
+        [a1value compare:a2value options:0] == NSOrderedSame) continue; \
+     [self failWithException:[NSException failureInEqualityBetweenObject:a1value \
+                                                               andObject:a2value \
+                                                                  inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                  atLine:__LINE__ \
+                                                         withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when string a1 is equal to string a2. This call
+// differs from STAssertEqualObjects in that strings that are different in
+// composition (precomposed vs decomposed) will compare equal if their final
+// representation is equal.
+// ex O + umlaut decomposed is the same as O + umlaut composed.
+//  Args:
+//    a1: string 1
+//    a2: string 2
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNotEqualStrings(a1, a2, description, ...) \
+do { \
+  @try { \
+    id a1value = (a1); \
+    id a2value = (a2); \
+    if ([a1value isKindOfClass:[NSString class]] && \
+        [a2value isKindOfClass:[NSString class]] && \
+        [a1value compare:a2value options:0] != NSOrderedSame) continue; \
+     [self failWithException:[NSException failureInEqualityBetweenObject:a1value \
+                                                               andObject:a2value \
+                                                                  inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                  atLine:__LINE__ \
+                                                         withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) != (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when c-string a1 is not equal to c-string a2.
+//  Args:
+//    a1: string 1
+//    a2: string 2
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertEqualCStrings(a1, a2, description, ...) \
+do { \
+  @try { \
+    const char* a1value = (a1); \
+    const char* a2value = (a2); \
+    if (a1value == a2value) continue; \
+    if (strcmp(a1value, a2value) == 0) continue; \
+    [self failWithException:[NSException failureInEqualityBetweenObject:[NSString stringWithUTF8String:a1value] \
+                                                              andObject:[NSString stringWithUTF8String:a2value] \
+                                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                 atLine:__LINE__ \
+                                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+// Generates a failure when c-string a1 is equal to c-string a2.
+//  Args:
+//    a1: string 1
+//    a2: string 2
+//    description: A format string as in the printf() function. Can be nil or
+//                 an empty string but must be present.
+//    ...: A variable number of arguments to the format string. Can be absent.
+#define STAssertNotEqualCStrings(a1, a2, description, ...) \
+do { \
+  @try { \
+    const char* a1value = (a1); \
+    const char* a2value = (a2); \
+    if (strcmp(a1value, a2value) != 0) continue; \
+    [self failWithException:[NSException failureInEqualityBetweenObject:[NSString stringWithUTF8String:a1value] \
+                                                              andObject:[NSString stringWithUTF8String:a2value] \
+                                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                 atLine:__LINE__ \
+                                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) != (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+/*" Generates a failure when a1 is not equal to a2 within + or - accuracy is false.
+  This test is for GLKit types (GLKVector, GLKMatrix) where small differences
+  could  make these items not exactly equal. Do not use this version directly.
+  Use the explicit STAssertEqualGLKVectors and STAssertEqualGLKMatrices defined
+  below.
+  _{a1    The GLKType on the left.}
+  _{a2    The GLKType on the right.}
+  _{accuracy  The maximum difference between a1 and a2 for these values to be
+  considered equal.}
+  _{description A format string as in the printf() function. Can be nil or
+                      an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+
+#define STInternalAssertEqualGLKVectorsOrMatrices(a1, a2, accuracy, description, ...) \
+do { \
+  @try { \
+    if (strcmp(@encode(__typeof__(a1)), @encode(__typeof__(a2)))) { \
+      [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                                 atLine:__LINE__ \
+                                                                        withDescription:@"Type mismatch -- %@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } else { \
+      __typeof__(a1) a1GLKValue = (a1); \
+      __typeof__(a2) a2GLKValue = (a2); \
+      __typeof__(accuracy) accuracyvalue = (accuracy); \
+      float *a1FloatValue = ((float*)&a1GLKValue); \
+      float *a2FloatValue = ((float*)&a2GLKValue); \
+      for (size_t i = 0; i < sizeof(__typeof__(a1)) / sizeof(float); ++i) { \
+        float a1value = a1FloatValue[i]; \
+        float a2value = a2FloatValue[i]; \
+        if (STAbsoluteDifference(a1value, a2value) > accuracyvalue) { \
+          NSMutableArray *strings = [NSMutableArray arrayWithCapacity:sizeof(a1) / sizeof(float)]; \
+          NSString *string; \
+          for (size_t j = 0; j < sizeof(__typeof__(a1)) / sizeof(float); ++j) { \
+            string = [NSString stringWithFormat:@"(%0.3f == %0.3f)", a1FloatValue[j], a2FloatValue[j]]; \
+            [strings addObject:string]; \
+          } \
+          string = [strings componentsJoinedByString:@", "]; \
+          NSString *desc = STComposeString(description, ##__VA_ARGS__); \
+          desc = [NSString stringWithFormat:@"%@ With Accuracy %0.3f: %@", string, (float)accuracyvalue, desc]; \
+          [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                      atLine:__LINE__ \
+                                             withDescription:@"%@", desc]]; \
+          break; \
+        } \
+      } \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+#define STAssertEqualGLKVectors(a1, a2, accuracy, description, ...) \
+     STInternalAssertEqualGLKVectorsOrMatrices(a1, a2, accuracy, description, ##__VA_ARGS__)
+
+#define STAssertEqualGLKMatrices(a1, a2, accuracy, description, ...) \
+     STInternalAssertEqualGLKVectorsOrMatrices(a1, a2, accuracy, description, ##__VA_ARGS__)
+
+#define STAssertEqualGLKQuaternions(a1, a2, accuracy, description, ...) \
+     STInternalAssertEqualGLKVectorsOrMatrices(a1, a2, accuracy, description, ##__VA_ARGS__)
+
+#if GTM_IPHONE_SDK && !GTM_IPHONE_USE_SENTEST
+// When not using the Xcode provided version, define everything ourselves.
+
+// SENTE_BEGIN
+/*" Generates a failure when !{ [a1 isEqualTo:a2] } is false
+	(or one is nil and the other is not).
+	_{a1    The object on the left.}
+	_{a2    The object on the right.}
+	_{description A format string as in the printf() function. Can be nil or
+		an empty string but must be present.}
+	_{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertEqualObjects(a1, a2, description, ...) \
+do { \
+  @try { \
+    id a1value = (a1); \
+    id a2value = (a2); \
+    if (a1value == a2value) continue; \
+    if ((strcmp(@encode(__typeof__(a1value)), @encode(id)) == 0) && \
+        (strcmp(@encode(__typeof__(a2value)), @encode(id)) == 0) && \
+        [(id)a1value isEqual:(id)a2value]) continue; \
+    [self failWithException:[NSException failureInEqualityBetweenObject:a1value \
+                                                              andObject:a2value \
+                                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                 atLine:__LINE__ \
+                                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+
+/*" Generates a failure when a1 is not equal to a2. This test is for
+    C scalars, structs and unions.
+    _{a1    The argument on the left.}
+    _{a2    The argument on the right.}
+    _{description A format string as in the printf() function. Can be nil or
+                        an empty string but must be present.}
+    _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertEquals(a1, a2, description, ...) \
+do { \
+  @try { \
+    if (strcmp(@encode(__typeof__(a1)), @encode(__typeof__(a2)))) { \
+      [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                                 atLine:__LINE__ \
+                                                                        withDescription:@"Type mismatch -- %@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } else { \
+      __typeof__(a1) a1value = (a1); \
+      __typeof__(a2) a2value = (a2); \
+      NSValue *a1encoded = [NSValue value:&a1value withObjCType:@encode(__typeof__(a1))]; \
+      NSValue *a2encoded = [NSValue value:&a2value withObjCType:@encode(__typeof__(a2))]; \
+      if (![a1encoded isEqualToValue:a2encoded]) { \
+        [self failWithException:[NSException failureInEqualityBetweenValue:a1encoded \
+                                                                  andValue:a2encoded \
+                                                              withAccuracy:nil \
+                                                                    inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                    atLine:__LINE__ \
+                                                           withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+      } \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+#define STAbsoluteDifference(left,right) (MAX(left,right)-MIN(left,right))
+
+
+/*" Generates a failure when a1 is not equal to a2 within + or - accuracy is false.
+  This test is for scalars such as floats and doubles where small differences
+  could make these items not exactly equal, but also works for all scalars.
+  _{a1    The scalar on the left.}
+  _{a2    The scalar on the right.}
+  _{accuracy  The maximum difference between a1 and a2 for these values to be
+  considered equal.}
+  _{description A format string as in the printf() function. Can be nil or
+                      an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+
+#define STAssertEqualsWithAccuracy(a1, a2, accuracy, description, ...) \
+do { \
+  @try { \
+    if (strcmp(@encode(__typeof__(a1)), @encode(__typeof__(a2)))) { \
+      [self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                                 atLine:__LINE__ \
+                                                                        withDescription:@"Type mismatch -- %@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } else { \
+      __typeof__(a1) a1value = (a1); \
+      __typeof__(a2) a2value = (a2); \
+      __typeof__(accuracy) accuracyvalue = (accuracy); \
+      if (STAbsoluteDifference(a1value, a2value) > accuracyvalue) { \
+              NSValue *a1encoded = [NSValue value:&a1value withObjCType:@encode(__typeof__(a1))]; \
+              NSValue *a2encoded = [NSValue value:&a2value withObjCType:@encode(__typeof__(a2))]; \
+              NSValue *accuracyencoded = [NSValue value:&accuracyvalue withObjCType:@encode(__typeof__(accuracy))]; \
+              [self failWithException:[NSException failureInEqualityBetweenValue:a1encoded \
+                                                                        andValue:a2encoded \
+                                                                    withAccuracy:accuracyencoded \
+                                                                          inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                          atLine:__LINE__ \
+                                                                 withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+      } \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == (%s)", #a1, #a2] \
+                                                                         exception:anException \
+                                                                            inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                                            atLine:__LINE__ \
+                                                                   withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+
+
+/*" Generates a failure unconditionally.
+  _{description A format string as in the printf() function. Can be nil or
+                      an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STFail(description, ...) \
+[self failWithException:[NSException failureInFile:[NSString stringWithUTF8String:__FILE__] \
+                                            atLine:__LINE__ \
+                                   withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]
+
+
+
+/*" Generates a failure when a1 is not nil.
+  _{a1    An object.}
+  _{description A format string as in the printf() function. Can be nil or
+    an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertNil(a1, description, ...) \
+do { \
+  @try { \
+    id a1value = (a1); \
+    if (a1value != nil) { \
+      NSString *_a1 = [NSString stringWithUTF8String:#a1]; \
+      NSString *_expression = [NSString stringWithFormat:@"((%@) == nil)", _a1]; \
+      [self failWithException:[NSException failureInCondition:_expression \
+                                                       isTrue:NO \
+                                                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                       atLine:__LINE__ \
+                                              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) == nil fails", #a1] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+
+/*" Generates a failure when a1 is nil.
+  _{a1    An object.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertNotNil(a1, description, ...) \
+do { \
+  @try { \
+    id a1value = (a1); \
+    if (a1value == nil) { \
+      NSString *_a1 = [NSString stringWithUTF8String:#a1]; \
+      NSString *_expression = [NSString stringWithFormat:@"((%@) != nil)", _a1]; \
+      [self failWithException:[NSException failureInCondition:_expression \
+                                                       isTrue:NO \
+                                                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                       atLine:__LINE__ \
+                                              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) != nil fails", #a1] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while(0)
+
+
+/*" Generates a failure when expression evaluates to false.
+  _{expr    The expression that is tested.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertTrue(expr, description, ...) \
+do { \
+  BOOL _evaluatedExpression = (expr); \
+  if (!_evaluatedExpression) { \
+    NSString *_expression = [NSString stringWithUTF8String:#expr]; \
+    [self failWithException:[NSException failureInCondition:_expression \
+                                                     isTrue:NO \
+                                                     inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                     atLine:__LINE__ \
+                                            withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when expression evaluates to false and in addition will
+  generate error messages if an exception is encountered.
+  _{expr    The expression that is tested.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertTrueNoThrow(expr, description, ...) \
+do { \
+  @try { \
+    BOOL _evaluatedExpression = (expr); \
+    if (!_evaluatedExpression) { \
+      NSString *_expression = [NSString stringWithUTF8String:#expr]; \
+      [self failWithException:[NSException failureInCondition:_expression \
+                                                       isTrue:NO \
+                                                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                       atLine:__LINE__ \
+                                              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"(%s) ", #expr] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when the expression evaluates to true.
+  _{expr    The expression that is tested.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertFalse(expr, description, ...) \
+do { \
+  BOOL _evaluatedExpression = (expr); \
+  if (_evaluatedExpression) { \
+    NSString *_expression = [NSString stringWithUTF8String:#expr]; \
+    [self failWithException:[NSException failureInCondition:_expression \
+                                                     isTrue:YES \
+                                                     inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                     atLine:__LINE__ \
+                                            withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when the expression evaluates to true and in addition
+  will generate error messages if an exception is encountered.
+  _{expr    The expression that is tested.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertFalseNoThrow(expr, description, ...) \
+do { \
+  @try { \
+    BOOL _evaluatedExpression = (expr); \
+    if (_evaluatedExpression) { \
+      NSString *_expression = [NSString stringWithUTF8String:#expr]; \
+      [self failWithException:[NSException failureInCondition:_expression \
+                                                       isTrue:YES \
+                                                       inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                       atLine:__LINE__ \
+                                              withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+    } \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithFormat:@"!(%s) ", #expr] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when expression does not throw an exception.
+  _{expression    The expression that is evaluated.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.
+"*/
+#define STAssertThrows(expr, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (id anException) { \
+    continue; \
+  } \
+  [self failWithException:[NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                                            exception:nil \
+                                               inFile:[NSString stringWithUTF8String:__FILE__] \
+                                               atLine:__LINE__ \
+                                      withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+} while (0)
+
+
+/*" Generates a failure when expression does not throw an exception of a
+  specific class.
+  _{expression    The expression that is evaluated.}
+  _{specificException    The specified class of the exception.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertThrowsSpecific(expr, specificException, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (specificException *anException) { \
+    continue; \
+  } \
+  @catch (id anException) { \
+    NSString *_descrip = STComposeString(@"(Expected exception: %@) %@", NSStringFromClass([specificException class]), description); \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+                                            continue; \
+  } \
+  NSString *_descrip = STComposeString(@"(Expected exception: %@) %@", NSStringFromClass([specificException class]), description); \
+  [self failWithException:[NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                                            exception:nil \
+                                               inFile:[NSString stringWithUTF8String:__FILE__] \
+                                               atLine:__LINE__ \
+                                      withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+} while (0)
+
+
+/*" Generates a failure when expression does not throw an exception of a
+  specific class with a specific name.  Useful for those frameworks like
+  AppKit or Foundation that throw generic NSException w/specific names
+  (NSInvalidArgumentException, etc).
+  _{expression    The expression that is evaluated.}
+  _{specificException    The specified class of the exception.}
+  _{aName    The name of the specified exception.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+
+"*/
+#define STAssertThrowsSpecificNamed(expr, specificException, aName, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (specificException *anException) { \
+    if ([aName isEqualToString:[anException name]]) continue; \
+    NSString *_descrip = STComposeString(@"(Expected exception: %@ (name: %@)) %@", NSStringFromClass([specificException class]), aName, description); \
+    [self failWithException: \
+      [NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                        exception:anException \
+                           inFile:[NSString stringWithUTF8String:__FILE__] \
+                           atLine:__LINE__ \
+                  withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+    continue; \
+  } \
+  @catch (id anException) { \
+    NSString *_descrip = STComposeString(@"(Expected exception: %@) %@", NSStringFromClass([specificException class]), description); \
+    [self failWithException: \
+      [NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                        exception:anException \
+                           inFile:[NSString stringWithUTF8String:__FILE__] \
+                           atLine:__LINE__ \
+                  withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+    continue; \
+  } \
+  NSString *_descrip = STComposeString(@"(Expected exception: %@) %@", NSStringFromClass([specificException class]), description); \
+  [self failWithException: \
+    [NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                      exception:nil \
+                         inFile:[NSString stringWithUTF8String:__FILE__] \
+                         atLine:__LINE__ \
+                withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+} while (0)
+
+
+/*" Generates a failure when expression does throw an exception.
+  _{expression    The expression that is evaluated.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertNoThrow(expr, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (id anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when expression does throw an exception of the specitied
+  class. Any other exception is okay (i.e. does not generate a failure).
+  _{expression    The expression that is evaluated.}
+  _{specificException    The specified class of the exception.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+"*/
+#define STAssertNoThrowSpecific(expr, specificException, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (specificException *anException) { \
+    [self failWithException:[NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                                              exception:anException \
+                                                 inFile:[NSString stringWithUTF8String:__FILE__] \
+                                                 atLine:__LINE__ \
+                                        withDescription:@"%@", STComposeString(description, ##__VA_ARGS__)]]; \
+  } \
+  @catch (id anythingElse) { \
+    ; \
+  } \
+} while (0)
+
+
+/*" Generates a failure when expression does throw an exception of a
+  specific class with a specific name.  Useful for those frameworks like
+  AppKit or Foundation that throw generic NSException w/specific names
+  (NSInvalidArgumentException, etc).
+  _{expression    The expression that is evaluated.}
+  _{specificException    The specified class of the exception.}
+  _{aName    The name of the specified exception.}
+  _{description A format string as in the printf() function. Can be nil or
+  an empty string but must be present.}
+  _{... A variable number of arguments to the format string. Can be absent.}
+
+"*/
+#define STAssertNoThrowSpecificNamed(expr, specificException, aName, description, ...) \
+do { \
+  @try { \
+    (expr); \
+  } \
+  @catch (specificException *anException) { \
+    if ([aName isEqualToString:[anException name]]) { \
+      NSString *_descrip = STComposeString(@"(Expected exception: %@ (name: %@)) %@", NSStringFromClass([specificException class]), aName, description); \
+      [self failWithException: \
+        [NSException failureInRaise:[NSString stringWithUTF8String:#expr] \
+                          exception:anException \
+                             inFile:[NSString stringWithUTF8String:__FILE__] \
+                             atLine:__LINE__ \
+                    withDescription:@"%@", STComposeString(_descrip, ##__VA_ARGS__)]]; \
+    } \
+    continue; \
+  } \
+  @catch (id anythingElse) { \
+    ; \
+  } \
+} while (0)
+
+
+
+@interface NSException (GTMSenTestAdditions)
++ (NSException *)failureInFile:(NSString *)filename
+                        atLine:(int)lineNumber
+               withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(3, 4);
++ (NSException *)failureInCondition:(NSString *)condition
+                             isTrue:(BOOL)isTrue
+                             inFile:(NSString *)filename
+                             atLine:(int)lineNumber
+                    withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(5, 6);
++ (NSException *)failureInEqualityBetweenObject:(id)left
+                                      andObject:(id)right
+                                         inFile:(NSString *)filename
+                                         atLine:(int)lineNumber
+                                withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(5, 6);
++ (NSException *)failureInEqualityBetweenValue:(NSValue *)left
+                                      andValue:(NSValue *)right
+                                  withAccuracy:(NSValue *)accuracy
+                                        inFile:(NSString *)filename
+                                        atLine:(int) ineNumber
+                               withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(6, 7);
++ (NSException *)failureInRaise:(NSString *)expression
+                         inFile:(NSString *)filename
+                         atLine:(int)lineNumber
+                withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(4, 5);
++ (NSException *)failureInRaise:(NSString *)expression
+                      exception:(NSException *)exception
+                         inFile:(NSString *)filename
+                         atLine:(int)lineNumber
+                withDescription:(NSString *)formatString, ... NS_FORMAT_FUNCTION(5, 6);
+@end
+
+// SENTE_END
+
+@protocol SenTestCase
++ (id)testCaseWithInvocation:(NSInvocation *)anInvocation;
+- (id)initWithInvocation:(NSInvocation *)anInvocation;
+- (void)setUp;
+- (void)invokeTest;
+- (void)tearDown;
+- (void)performTest;
+- (void)failWithException:(NSException*)exception;
+- (NSInvocation *)invocation;
+- (SEL)selector;
++ (NSArray *)testInvocations;
+@end
+
+@interface SenTestCase : NSObject<SenTestCase> {
+ @private
+  NSInvocation *invocation_;
+}
+@end
+
+GTM_EXTERN NSString *const SenTestFailureException;
+
+GTM_EXTERN NSString *const SenTestFilenameKey;
+GTM_EXTERN NSString *const SenTestLineNumberKey;
+
+#endif // GTM_IPHONE_SDK && !GTM_IPHONE_USE_SENTEST
+
+// All unittest cases in GTM should inherit from GTMTestCase. It makes sure
+// to set up our logging system correctly to verify logging calls.
+// See GTMUnitTestDevLog.h for details
+@interface GTMTestCase : SenTestCase
+
+// Returns YES if this is an abstract testCase class as opposed to a concrete
+// testCase class that you want tests run against. SenTestCase is not designed
+// out of the box to handle an abstract class hierarchy descending from it with
+// some concrete subclasses.  In some cases we want all the "concrete"
+// subclasses of an abstract subclass of SenTestCase to run a test, but we don't
+// want that test to be run against an instance of an abstract subclass itself.
+// By returning "YES" here, the tests defined by this class won't be run against
+// an instance of this class. As an example class hierarchy:
+//
+//                                            FooExtensionTestCase
+// GTMTestCase <- ExtensionAbstractTestCase <
+//                                            BarExtensionTestCase
+//
+// So FooExtensionTestCase and BarExtensionTestCase inherit from
+// ExtensionAbstractTestCase (and probably FooExtension and BarExtension inherit
+// from a class named Extension). We want the tests in ExtensionAbstractTestCase
+// to be run as part of FooExtensionTestCase and BarExtensionTestCase, but we
+// don't want them run against ExtensionAbstractTestCase. The default
+// implementation checks to see if the name of the class contains the word
+// "AbstractTest" (case sensitive).
++ (BOOL)isAbstractTestCase;
+
+@end
diff --git a/src/common/mac/testing/GTMSenTestCase.m b/src/common/mac/testing/GTMSenTestCase.m
new file mode 100644
index 0000000..162f01e
--- /dev/null
+++ b/src/common/mac/testing/GTMSenTestCase.m
@@ -0,0 +1,428 @@
+//
+//  GTMSenTestCase.m
+//
+//  Copyright 2007-2008 Google Inc.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
+//  use this file except in compliance with the License.  You may obtain a copy
+//  of the License at
+//
+//  http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+//  License for the specific language governing permissions and limitations under
+//  the License.
+//
+
+#import "GTMSenTestCase.h"
+
+#import <unistd.h>
+#if GTM_IPHONE_SIMULATOR
+#import <objc/message.h>
+#endif
+
+#import "GTMObjC2Runtime.h"
+#import "GTMUnitTestDevLog.h"
+
+#if GTM_IPHONE_SDK && !GTM_IPHONE_USE_SENTEST
+#import <stdarg.h>
+
+@interface NSException (GTMSenTestPrivateAdditions)
++ (NSException *)failureInFile:(NSString *)filename
+                        atLine:(int)lineNumber
+                        reason:(NSString *)reason;
+@end
+
+@implementation NSException (GTMSenTestPrivateAdditions)
++ (NSException *)failureInFile:(NSString *)filename
+                        atLine:(int)lineNumber
+                        reason:(NSString *)reason {
+  NSDictionary *userInfo =
+    [NSDictionary dictionaryWithObjectsAndKeys:
+     [NSNumber numberWithInteger:lineNumber], SenTestLineNumberKey,
+     filename, SenTestFilenameKey,
+     nil];
+
+  return [self exceptionWithName:SenTestFailureException
+                          reason:reason
+                        userInfo:userInfo];
+}
+@end
+
+@implementation NSException (GTMSenTestAdditions)
+
++ (NSException *)failureInFile:(NSString *)filename
+                        atLine:(int)lineNumber
+               withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason = testDescription;
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
++ (NSException *)failureInCondition:(NSString *)condition
+                             isTrue:(BOOL)isTrue
+                             inFile:(NSString *)filename
+                             atLine:(int)lineNumber
+                    withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason = [NSString stringWithFormat:@"'%@' should be %s. %@",
+                      condition, isTrue ? "false" : "true", testDescription];
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
++ (NSException *)failureInEqualityBetweenObject:(id)left
+                                      andObject:(id)right
+                                         inFile:(NSString *)filename
+                                         atLine:(int)lineNumber
+                                withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason =
+    [NSString stringWithFormat:@"'%@' should be equal to '%@'. %@",
+     [left description], [right description], testDescription];
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
++ (NSException *)failureInEqualityBetweenValue:(NSValue *)left
+                                      andValue:(NSValue *)right
+                                  withAccuracy:(NSValue *)accuracy
+                                        inFile:(NSString *)filename
+                                        atLine:(int)lineNumber
+                               withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason;
+  if (accuracy) {
+    reason =
+      [NSString stringWithFormat:@"'%@' should be equal to '%@'. %@",
+       left, right, testDescription];
+  } else {
+    reason =
+      [NSString stringWithFormat:@"'%@' should be equal to '%@' +/-'%@'. %@",
+       left, right, accuracy, testDescription];
+  }
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
++ (NSException *)failureInRaise:(NSString *)expression
+                         inFile:(NSString *)filename
+                         atLine:(int)lineNumber
+                withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason = [NSString stringWithFormat:@"'%@' should raise. %@",
+                      expression, testDescription];
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
++ (NSException *)failureInRaise:(NSString *)expression
+                      exception:(NSException *)exception
+                         inFile:(NSString *)filename
+                         atLine:(int)lineNumber
+                withDescription:(NSString *)formatString, ... {
+
+  NSString *testDescription = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    testDescription =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+
+  NSString *reason;
+  if ([[exception name] isEqualToString:SenTestFailureException]) {
+    // it's our exception, assume it has the right description on it.
+    reason = [exception reason];
+  } else {
+    // not one of our exception, use the exceptions reason and our description
+    reason = [NSString stringWithFormat:@"'%@' raised '%@'. %@",
+              expression, [exception reason], testDescription];
+  }
+
+  return [self failureInFile:filename atLine:lineNumber reason:reason];
+}
+
+@end
+
+NSString *STComposeString(NSString *formatString, ...) {
+  NSString *reason = @"";
+  if (formatString) {
+    va_list vl;
+    va_start(vl, formatString);
+    reason =
+      [[[NSString alloc] initWithFormat:formatString arguments:vl] autorelease];
+    va_end(vl);
+  }
+  return reason;
+}
+
+NSString *const SenTestFailureException = @"SenTestFailureException";
+NSString *const SenTestFilenameKey = @"SenTestFilenameKey";
+NSString *const SenTestLineNumberKey = @"SenTestLineNumberKey";
+
+@interface SenTestCase (SenTestCasePrivate)
+// our method of logging errors
++ (void)printException:(NSException *)exception fromTestName:(NSString *)name;
+@end
+
+@implementation SenTestCase
++ (id)testCaseWithInvocation:(NSInvocation *)anInvocation {
+  return [[[self alloc] initWithInvocation:anInvocation] autorelease];
+}
+
+- (id)initWithInvocation:(NSInvocation *)anInvocation {
+  if ((self = [super init])) {
+    invocation_ = [anInvocation retain];
+  }
+  return self;
+}
+
+- (void)dealloc {
+  [invocation_ release];
+  [super dealloc];
+}
+
+- (void)failWithException:(NSException*)exception {
+  [exception raise];
+}
+
+- (void)setUp {
+}
+
+- (void)performTest {
+  @try {
+    [self invokeTest];
+  } @catch (NSException *exception) {
+    [[self class] printException:exception
+                    fromTestName:NSStringFromSelector([self selector])];
+    [exception raise];
+  }
+}
+
+- (NSInvocation *)invocation {
+  return invocation_;
+}
+
+- (SEL)selector {
+  return [invocation_ selector];
+}
+
++ (void)printException:(NSException *)exception fromTestName:(NSString *)name {
+  NSDictionary *userInfo = [exception userInfo];
+  NSString *filename = [userInfo objectForKey:SenTestFilenameKey];
+  NSNumber *lineNumber = [userInfo objectForKey:SenTestLineNumberKey];
+  NSString *className = NSStringFromClass([self class]);
+  if ([filename length] == 0) {
+    filename = @"Unknown.m";
+  }
+  fprintf(stderr, "%s:%ld: error: -[%s %s] : %s\n",
+          [filename UTF8String],
+          (long)[lineNumber integerValue],
+          [className UTF8String],
+          [name UTF8String],
+          [[exception reason] UTF8String]);
+  fflush(stderr);
+}
+
+- (void)invokeTest {
+  NSException *e = nil;
+  @try {
+    // Wrap things in autorelease pools because they may
+    // have an STMacro in their dealloc which may get called
+    // when the pool is cleaned up
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+    // We don't log exceptions here, instead we let the person that called
+    // this log the exception.  This ensures they are only logged once but the
+    // outer layers get the exceptions to report counts, etc.
+    @try {
+      [self setUp];
+      @try {
+        NSInvocation *invocation = [self invocation];
+#if GTM_IPHONE_SIMULATOR
+        // We don't call [invocation invokeWithTarget:self]; because of
+        // Radar 8081169: NSInvalidArgumentException can't be caught
+        // It turns out that on iOS4 (and 3.2) exceptions thrown inside an
+        // [invocation invoke] on the simulator cannot be caught.
+        // http://openradar.appspot.com/8081169
+        objc_msgSend(self, [invocation selector]);
+#else
+        [invocation invokeWithTarget:self];
+#endif
+      } @catch (NSException *exception) {
+        e = [exception retain];
+      }
+      [self tearDown];
+    } @catch (NSException *exception) {
+      e = [exception retain];
+    }
+    [pool release];
+  } @catch (NSException *exception) {
+    e = [exception retain];
+  }
+  if (e) {
+    [e autorelease];
+    [e raise];
+  }
+}
+
+- (void)tearDown {
+}
+
+- (NSString *)description {
+  // This matches the description OCUnit would return to you
+  return [NSString stringWithFormat:@"-[%@ %@]", [self class],
+          NSStringFromSelector([self selector])];
+}
+
+// Used for sorting methods below
+static int MethodSort(id a, id b, void *context) {
+  NSInvocation *invocationA = a;
+  NSInvocation *invocationB = b;
+  const char *nameA = sel_getName([invocationA selector]);
+  const char *nameB = sel_getName([invocationB selector]);
+  return strcmp(nameA, nameB);
+}
+
+
++ (NSArray *)testInvocations {
+  NSMutableArray *invocations = nil;
+  // Need to walk all the way up the parent classes collecting methods (in case
+  // a test is a subclass of another test).
+  Class senTestCaseClass = [SenTestCase class];
+  for (Class currentClass = self;
+       currentClass && (currentClass != senTestCaseClass);
+       currentClass = class_getSuperclass(currentClass)) {
+    unsigned int methodCount;
+    Method *methods = class_copyMethodList(currentClass, &methodCount);
+    if (methods) {
+      // This handles disposing of methods for us even if an exception should fly.
+      [NSData dataWithBytesNoCopy:methods
+                           length:sizeof(Method) * methodCount];
+      if (!invocations) {
+        invocations = [NSMutableArray arrayWithCapacity:methodCount];
+      }
+      for (size_t i = 0; i < methodCount; ++i) {
+        Method currMethod = methods[i];
+        SEL sel = method_getName(currMethod);
+        char *returnType = NULL;
+        const char *name = sel_getName(sel);
+        // If it starts with test, takes 2 args (target and sel) and returns
+        // void run it.
+        if (strstr(name, "test") == name) {
+          returnType = method_copyReturnType(currMethod);
+          if (returnType) {
+            // This handles disposing of returnType for us even if an
+            // exception should fly. Length +1 for the terminator, not that
+            // the length really matters here, as we never reference inside
+            // the data block.
+            [NSData dataWithBytesNoCopy:returnType
+                                 length:strlen(returnType) + 1];
+          }
+        }
+        // TODO: If a test class is a subclass of another, and they reuse the
+        // same selector name (ie-subclass overrides it), this current loop
+        // and test here will cause cause it to get invoked twice.  To fix this
+        // the selector would have to be checked against all the ones already
+        // added, so it only gets done once.
+        if (returnType  // True if name starts with "test"
+            && strcmp(returnType, @encode(void)) == 0
+            && method_getNumberOfArguments(currMethod) == 2) {
+          NSMethodSignature *sig = [self instanceMethodSignatureForSelector:sel];
+          NSInvocation *invocation
+            = [NSInvocation invocationWithMethodSignature:sig];
+          [invocation setSelector:sel];
+          [invocations addObject:invocation];
+        }
+      }
+    }
+  }
+  // Match SenTestKit and run everything in alphbetical order.
+  [invocations sortUsingFunction:MethodSort context:nil];
+  return invocations;
+}
+
+@end
+
+#endif  // GTM_IPHONE_SDK && !GTM_IPHONE_USE_SENTEST
+
+@implementation GTMTestCase : SenTestCase
+- (void)invokeTest {
+  NSAutoreleasePool *localPool = [[NSAutoreleasePool alloc] init];
+  Class devLogClass = NSClassFromString(@"GTMUnitTestDevLog");
+  if (devLogClass) {
+    [devLogClass performSelector:@selector(enableTracking)];
+    [devLogClass performSelector:@selector(verifyNoMoreLogsExpected)];
+
+  }
+  [super invokeTest];
+  if (devLogClass) {
+    [devLogClass performSelector:@selector(verifyNoMoreLogsExpected)];
+    [devLogClass performSelector:@selector(disableTracking)];
+  }
+  [localPool drain];
+}
+
++ (BOOL)isAbstractTestCase {
+  NSString *name = NSStringFromClass(self);
+  return [name rangeOfString:@"AbstractTest"].location != NSNotFound;
+}
+
++ (NSArray *)testInvocations {
+  NSArray *invocations = nil;
+  if (![self isAbstractTestCase]) {
+    invocations = [super testInvocations];
+  }
+  return invocations;
+}
+
+@end
diff --git a/src/common/macros.h b/src/common/macros.h
new file mode 100644
index 0000000..14bb3f7
--- /dev/null
+++ b/src/common/macros.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef BREAKPAD_COMMON_MACROS_H_
+#define BREAKPAD_COMMON_MACROS_H_
+
+// Ensure that this macro definition stays in a private header file: clang
+// suggests the first macro expanding to [[clang::fallthrough]] in its
+// diagnostics, so if BP_FALLTHROUGH is visible in code depending on breakpad,
+// clang would suggest BP_FALLTHROUGH for code depending on breakpad, instead of
+// the client code's own fallthrough macro.
+// TODO(thakis): Once everyone uses C++17, use its [[fallthrough]] instead.
+#if defined(__clang__)
+#define BP_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define BP_FALLTHROUGH
+#endif
+
+#endif // BREAKPAD_COMMON_MACROS_H_
diff --git a/src/common/md5.cc b/src/common/md5.cc
new file mode 100644
index 0000000..b6e710d
--- /dev/null
+++ b/src/common/md5.cc
@@ -0,0 +1,251 @@
+/*
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
+ *
+ * Equivalent code is available from RSA Data Security, Inc.
+ * This code has been tested against that, and is equivalent,
+ * except that you don't need to include two pages of legalese
+ * with every copy.
+ *
+ * To compute the message digest of a chunk of bytes, declare an
+ * MD5Context structure, pass it to MD5Init, call MD5Update as
+ * needed on buffers full of bytes, and then call MD5Final, which
+ * will fill a supplied 16-byte array with the digest.
+ */
+
+#include <string.h>
+
+#include "common/md5.h"
+
+namespace google_breakpad {
+
+#ifndef WORDS_BIGENDIAN
+#define byteReverse(buf, len)   /* Nothing */
+#else
+/*
+ * Note: this code is harmless on little-endian machines.
+ */
+static void byteReverse(unsigned char *buf, unsigned longs)
+{
+  u32 t;
+  do {
+    t = (u32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
+      ((unsigned) buf[1] << 8 | buf[0]);
+    *(u32*) buf = t;
+    buf += 4;
+  } while (--longs);
+}
+#endif
+
+static void MD5Transform(u32 buf[4], u32 const in[16]);
+
+/*
+ * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
+ * initialization constants.
+ */
+void MD5Init(struct MD5Context *ctx)
+{
+  ctx->buf[0] = 0x67452301;
+  ctx->buf[1] = 0xefcdab89;
+  ctx->buf[2] = 0x98badcfe;
+  ctx->buf[3] = 0x10325476;
+
+  ctx->bits[0] = 0;
+  ctx->bits[1] = 0;
+}
+
+/*
+ * Update context to reflect the concatenation of another buffer full
+ * of bytes.
+ */
+void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len)
+{
+  u32 t;
+
+  /* Update bitcount */
+
+  t = ctx->bits[0];
+  if ((ctx->bits[0] = t + ((u32) len << 3)) < t)
+    ctx->bits[1]++;         /* Carry from low to high */
+  ctx->bits[1] += len >> 29;
+
+  t = (t >> 3) & 0x3f;        /* Bytes already in shsInfo->data */
+
+  /* Handle any leading odd-sized chunks */
+
+  if (t) {
+    unsigned char *p = (unsigned char*) ctx->in + t;
+
+    t = 64 - t;
+    if (len < t) {
+      memcpy(p, buf, len);
+      return;
+    }
+    memcpy(p, buf, t);
+    byteReverse(ctx->in, 16);
+    MD5Transform(ctx->buf, (u32*) ctx->in);
+    buf += t;
+    len -= t;
+  }
+  /* Process data in 64-byte chunks */
+
+  while (len >= 64) {
+    memcpy(ctx->in, buf, 64);
+    byteReverse(ctx->in, 16);
+    MD5Transform(ctx->buf, (u32*) ctx->in);
+    buf += 64;
+    len -= 64;
+  }
+
+  /* Handle any remaining bytes of data. */
+
+  memcpy(ctx->in, buf, len);
+}
+
+/*
+ * Final wrapup - pad to 64-byte boundary with the bit pattern
+ * 1 0* (64-bit count of bits processed, MSB-first)
+ */
+void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
+{
+  unsigned count;
+  unsigned char *p;
+
+  /* Compute number of bytes mod 64 */
+  count = (ctx->bits[0] >> 3) & 0x3F;
+
+  /* Set the first char of padding to 0x80.  This is safe since there is
+     always at least one byte free */
+  p = ctx->in + count;
+  *p++ = 0x80;
+
+  /* Bytes of padding needed to make 64 bytes */
+  count = 64 - 1 - count;
+
+  /* Pad out to 56 mod 64 */
+  if (count < 8) {
+    /* Two lots of padding:  Pad the first block to 64 bytes */
+    memset(p, 0, count);
+    byteReverse(ctx->in, 16);
+    MD5Transform(ctx->buf, (u32*) ctx->in);
+
+    /* Now fill the next block with 56 bytes */
+    memset(ctx->in, 0, 56);
+  } else {
+    /* Pad block to 56 bytes */
+    memset(p, 0, count - 8);
+  }
+  byteReverse(ctx->in, 14);
+
+  /* Append length in bits and transform */
+  memcpy(&ctx->in[14], &ctx->bits[0], sizeof(u32));
+  memcpy(&ctx->in[15], &ctx->bits[1], sizeof(u32));
+
+  MD5Transform(ctx->buf, (u32*) ctx->in);
+  byteReverse((unsigned char*) ctx->buf, 4);
+  memcpy(digest, ctx->buf, 16);
+  memset(ctx, 0, sizeof(*ctx));        /* In case it's sensitive */
+}
+
+/* The four core functions - F1 is optimized somewhat */
+
+/* #define F1(x, y, z) (x & y | ~x & z) */
+#define F1(x, y, z) (z ^ (x & (y ^ z)))
+#define F2(x, y, z) F1(z, x, y)
+#define F3(x, y, z) (x ^ y ^ z)
+#define F4(x, y, z) (y ^ (x | ~z))
+
+/* This is the central step in the MD5 algorithm. */
+#define MD5STEP(f, w, x, y, z, data, s) \
+  ( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )
+
+/*
+ * The core of the MD5 algorithm, this alters an existing MD5 hash to
+ * reflect the addition of 16 longwords of new data.  MD5Update blocks
+ * the data and converts bytes into longwords for this routine.
+ */
+static void MD5Transform(u32 buf[4], u32 const in[16])
+{
+  u32 a, b, c, d;
+
+  a = buf[0];
+  b = buf[1];
+  c = buf[2];
+  d = buf[3];
+
+  MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
+  MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
+  MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
+  MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
+  MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
+  MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
+  MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
+  MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
+  MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
+  MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
+  MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
+  MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
+  MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
+  MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
+  MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
+  MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
+
+  MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
+  MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
+  MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
+  MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
+  MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
+  MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
+  MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
+  MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
+  MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
+  MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
+  MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
+  MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
+  MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
+  MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
+  MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
+  MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
+
+  MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
+  MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
+  MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
+  MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
+  MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
+  MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
+  MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
+  MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
+  MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
+  MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
+  MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
+  MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
+  MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
+  MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
+  MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
+  MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
+
+  MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
+  MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
+  MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
+  MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
+  MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
+  MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
+  MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
+  MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
+  MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
+  MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
+  MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
+  MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
+  MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
+  MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
+  MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
+  MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
+
+  buf[0] += a;
+  buf[1] += b;
+  buf[2] += c;
+  buf[3] += d;
+}
+
+}  // namespace google_breakpad
+
diff --git a/src/common/md5.h b/src/common/md5.h
new file mode 100644
index 0000000..2ab0ab9
--- /dev/null
+++ b/src/common/md5.h
@@ -0,0 +1,27 @@
+// Copyright 2007 Google Inc. All Rights Reserved.
+// Author: liuli@google.com (Liu Li)
+#ifndef COMMON_MD5_H__
+#define COMMON_MD5_H__
+
+#include <stdint.h>
+
+namespace google_breakpad {
+
+typedef uint32_t u32;
+typedef uint8_t u8;
+
+struct MD5Context {
+  u32 buf[4];
+  u32 bits[2];
+  u8 in[64];
+};
+
+void MD5Init(struct MD5Context *ctx);
+
+void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len);
+
+void MD5Final(unsigned char digest[16], struct MD5Context *ctx);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_MD5_H__
diff --git a/src/common/memory_allocator.h b/src/common/memory_allocator.h
new file mode 100644
index 0000000..69055a1
--- /dev/null
+++ b/src/common/memory_allocator.h
@@ -0,0 +1,249 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MEMORY_ALLOCATOR_H_
+#define GOOGLE_BREAKPAD_COMMON_MEMORY_ALLOCATOR_H_
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/mman.h>
+
+#include <memory>
+#include <vector>
+
+#if defined(MEMORY_SANITIZER)
+#include <sanitizer/msan_interface.h>
+#endif
+
+#ifdef __APPLE__
+#define sys_mmap mmap
+#define sys_munmap munmap
+#define MAP_ANONYMOUS MAP_ANON
+#else
+#include "third_party/lss/linux_syscall_support.h"
+#endif
+
+namespace google_breakpad {
+
+// This is very simple allocator which fetches pages from the kernel directly.
+// Thus, it can be used even when the heap may be corrupted.
+//
+// There is no free operation. The pages are only freed when the object is
+// destroyed.
+class PageAllocator {
+ public:
+  PageAllocator()
+      : page_size_(getpagesize()),
+        last_(NULL),
+        current_page_(NULL),
+        page_offset_(0),
+        pages_allocated_(0) {
+  }
+
+  ~PageAllocator() {
+    FreeAll();
+  }
+
+  void* Alloc(size_t bytes) {
+    if (!bytes)
+      return NULL;
+
+    if (current_page_ && page_size_ - page_offset_ >= bytes) {
+      uint8_t* const ret = current_page_ + page_offset_;
+      page_offset_ += bytes;
+      if (page_offset_ == page_size_) {
+        page_offset_ = 0;
+        current_page_ = NULL;
+      }
+
+      return ret;
+    }
+
+    const size_t pages =
+        (bytes + sizeof(PageHeader) + page_size_ - 1) / page_size_;
+    uint8_t* const ret = GetNPages(pages);
+    if (!ret)
+      return NULL;
+
+    page_offset_ =
+        (page_size_ - (page_size_ * pages - (bytes + sizeof(PageHeader)))) %
+        page_size_;
+    current_page_ = page_offset_ ? ret + page_size_ * (pages - 1) : NULL;
+
+    return ret + sizeof(PageHeader);
+  }
+
+  // Checks whether the page allocator owns the passed-in pointer.
+  // This method exists for testing pursposes only.
+  bool OwnsPointer(const void* p) {
+    for (PageHeader* header = last_; header; header = header->next) {
+      const char* current = reinterpret_cast<char*>(header);
+      if ((p >= current) && (p < current + header->num_pages * page_size_))
+        return true;
+    }
+
+    return false;
+  }
+
+  unsigned long pages_allocated() { return pages_allocated_; }
+
+ private:
+  uint8_t* GetNPages(size_t num_pages) {
+    void* a = sys_mmap(NULL, page_size_ * num_pages, PROT_READ | PROT_WRITE,
+                       MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    if (a == MAP_FAILED)
+      return NULL;
+
+#if defined(MEMORY_SANITIZER)
+    // We need to indicate to MSan that memory allocated through sys_mmap is
+    // initialized, since linux_syscall_support.h doesn't have MSan hooks.
+    __msan_unpoison(a, page_size_ * num_pages);
+#endif
+
+    struct PageHeader* header = reinterpret_cast<PageHeader*>(a);
+    header->next = last_;
+    header->num_pages = num_pages;
+    last_ = header;
+
+    pages_allocated_ += num_pages;
+
+    return reinterpret_cast<uint8_t*>(a);
+  }
+
+  void FreeAll() {
+    PageHeader* next;
+
+    for (PageHeader* cur = last_; cur; cur = next) {
+      next = cur->next;
+      sys_munmap(cur, cur->num_pages * page_size_);
+    }
+  }
+
+  struct PageHeader {
+    PageHeader* next;  // pointer to the start of the next set of pages.
+    size_t num_pages;  // the number of pages in this set.
+  };
+
+  const size_t page_size_;
+  PageHeader* last_;
+  uint8_t* current_page_;
+  size_t page_offset_;
+  unsigned long pages_allocated_;
+};
+
+// Wrapper to use with STL containers
+template <typename T>
+struct PageStdAllocator : public std::allocator<T> {
+  typedef typename std::allocator<T>::pointer pointer;
+  typedef typename std::allocator<T>::size_type size_type;
+
+  explicit PageStdAllocator(PageAllocator& allocator) : allocator_(allocator),
+                                                        stackdata_(NULL),
+                                                        stackdata_size_(0)
+  {}
+
+  template <class Other> PageStdAllocator(const PageStdAllocator<Other>& other)
+      : allocator_(other.allocator_),
+        stackdata_(nullptr),
+        stackdata_size_(0)
+  {}
+
+  explicit PageStdAllocator(PageAllocator& allocator,
+                            pointer stackdata,
+                            size_type stackdata_size) : allocator_(allocator),
+      stackdata_(stackdata),
+      stackdata_size_(stackdata_size)
+  {}
+
+  inline pointer allocate(size_type n, const void* = 0) {
+    const size_type size = sizeof(T) * n;
+    if (size <= stackdata_size_) {
+      return stackdata_;
+    }
+    return static_cast<pointer>(allocator_.Alloc(size));
+  }
+
+  inline void deallocate(pointer, size_type) {
+    // The PageAllocator doesn't free.
+  }
+
+  template <typename U> struct rebind {
+    typedef PageStdAllocator<U> other;
+  };
+
+ private:
+  // Silly workaround for the gcc from Android's ndk (gcc 4.6), which will
+  // otherwise complain that `other.allocator_` is private in the constructor
+  // code.
+  template<typename Other> friend struct PageStdAllocator;
+
+  PageAllocator& allocator_;
+  pointer stackdata_;
+  size_type stackdata_size_;
+};
+
+// A wasteful vector is a std::vector, except that it allocates memory from a
+// PageAllocator. It's wasteful because, when resizing, it always allocates a
+// whole new array since the PageAllocator doesn't support realloc.
+template<class T>
+class wasteful_vector : public std::vector<T, PageStdAllocator<T> > {
+ public:
+  wasteful_vector(PageAllocator* allocator, unsigned size_hint = 16)
+      : std::vector<T, PageStdAllocator<T> >(PageStdAllocator<T>(*allocator)) {
+    std::vector<T, PageStdAllocator<T> >::reserve(size_hint);
+  }
+ protected:
+  wasteful_vector(PageStdAllocator<T> allocator)
+      : std::vector<T, PageStdAllocator<T> >(allocator) {}
+};
+
+// auto_wasteful_vector allocates space on the stack for N entries to avoid
+// using the PageAllocator for small data, while still allowing for larger data.
+template<class T, unsigned int N>
+class auto_wasteful_vector : public wasteful_vector<T> {
+ T stackdata_[N];
+ public:
+  auto_wasteful_vector(PageAllocator* allocator)
+      : wasteful_vector<T>(
+            PageStdAllocator<T>(*allocator,
+                                &stackdata_[0],
+                                sizeof(stackdata_))) {
+    std::vector<T, PageStdAllocator<T> >::reserve(N);
+  }
+};
+
+}  // namespace google_breakpad
+
+inline void* operator new(size_t nbytes,
+                          google_breakpad::PageAllocator& allocator) {
+  return allocator.Alloc(nbytes);
+}
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MEMORY_ALLOCATOR_H_
diff --git a/src/common/memory_allocator_unittest.cc b/src/common/memory_allocator_unittest.cc
new file mode 100644
index 0000000..5803b90
--- /dev/null
+++ b/src/common/memory_allocator_unittest.cc
@@ -0,0 +1,124 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "breakpad_googletest_includes.h"
+#include "common/memory_allocator.h"
+
+using namespace google_breakpad;
+
+namespace {
+typedef testing::Test PageAllocatorTest;
+}
+
+TEST(PageAllocatorTest, Setup) {
+  PageAllocator allocator;
+  EXPECT_EQ(0U, allocator.pages_allocated());
+}
+
+TEST(PageAllocatorTest, SmallObjects) {
+  PageAllocator allocator;
+
+  EXPECT_EQ(0U, allocator.pages_allocated());
+  for (unsigned i = 1; i < 1024; ++i) {
+    uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
+    ASSERT_FALSE(p == NULL);
+    memset(p, 0, i);
+  }
+}
+
+TEST(PageAllocatorTest, LargeObject) {
+  PageAllocator allocator;
+
+  EXPECT_EQ(0U, allocator.pages_allocated());
+  uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(10000));
+  ASSERT_FALSE(p == NULL);
+  EXPECT_EQ(3U, allocator.pages_allocated());
+  for (unsigned i = 1; i < 10; ++i) {
+    uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
+    ASSERT_FALSE(p == NULL);
+    memset(p, 0, i);
+  }
+}
+
+namespace {
+typedef testing::Test WastefulVectorTest;
+}
+
+TEST(WastefulVectorTest, Setup) {
+  PageAllocator allocator_;
+  wasteful_vector<int> v(&allocator_);
+  ASSERT_TRUE(v.empty());
+  ASSERT_EQ(v.size(), 0u);
+}
+
+TEST(WastefulVectorTest, Simple) {
+  PageAllocator allocator_;
+  EXPECT_EQ(0U, allocator_.pages_allocated());
+  wasteful_vector<unsigned> v(&allocator_);
+
+  for (unsigned i = 0; i < 256; ++i) {
+    v.push_back(i);
+    ASSERT_EQ(i, v.back());
+    ASSERT_EQ(&v.back(), &v[i]);
+  }
+  ASSERT_FALSE(v.empty());
+  ASSERT_EQ(v.size(), 256u);
+  EXPECT_EQ(1U, allocator_.pages_allocated());
+  for (unsigned i = 0; i < 256; ++i)
+    ASSERT_EQ(v[i], i);
+}
+
+TEST(WastefulVectorTest, UsesPageAllocator) {
+  PageAllocator allocator_;
+  wasteful_vector<unsigned> v(&allocator_);
+  EXPECT_EQ(1U, allocator_.pages_allocated());
+
+  v.push_back(1);
+  ASSERT_TRUE(allocator_.OwnsPointer(&v[0]));
+}
+
+TEST(WastefulVectorTest, AutoWastefulVector) {
+  PageAllocator allocator_;
+  EXPECT_EQ(0U, allocator_.pages_allocated());
+
+  auto_wasteful_vector<unsigned, 4> v(&allocator_);
+  EXPECT_EQ(0U, allocator_.pages_allocated());
+
+  v.push_back(1);
+  EXPECT_EQ(0U, allocator_.pages_allocated());
+  EXPECT_FALSE(allocator_.OwnsPointer(&v[0]));
+
+  v.resize(4);
+  EXPECT_EQ(0U, allocator_.pages_allocated());
+  EXPECT_FALSE(allocator_.OwnsPointer(&v[0]));
+
+  v.resize(10);
+  EXPECT_EQ(1U, allocator_.pages_allocated());
+  EXPECT_TRUE(allocator_.OwnsPointer(&v[0]));
+}
diff --git a/src/common/memory_range.h b/src/common/memory_range.h
new file mode 100644
index 0000000..41dd2da
--- /dev/null
+++ b/src/common/memory_range.h
@@ -0,0 +1,145 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_range.h: Define the google_breakpad::MemoryRange class, which
+// is a lightweight wrapper with a pointer and a length to encapsulate
+// a contiguous range of memory.
+
+#ifndef COMMON_MEMORY_RANGE_H_
+#define COMMON_MEMORY_RANGE_H_
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+// A lightweight wrapper with a pointer and a length to encapsulate a
+// contiguous range of memory. It provides helper methods for checked
+// access of a subrange of the memory. Its implemementation does not
+// allocate memory or call into libc functions, and is thus safer to use
+// in a crashed environment.
+class MemoryRange {
+ public:
+  MemoryRange() : data_(NULL), length_(0) {}
+
+  MemoryRange(const void* data, size_t length) {
+    Set(data, length);
+  }
+
+  // Returns true if this memory range contains no data.
+  bool IsEmpty() const {
+    // Set() guarantees that |length_| is zero if |data_| is NULL.
+    return length_ == 0;
+  }
+
+  // Resets to an empty range.
+  void Reset() {
+    data_ = NULL;
+    length_ = 0;
+  }
+
+  // Sets this memory range to point to |data| and its length to |length|.
+  void Set(const void* data, size_t length) {
+    data_ = reinterpret_cast<const uint8_t*>(data);
+    // Always set |length_| to zero if |data_| is NULL.
+    length_ = data ? length : 0;
+  }
+
+  // Returns true if this range covers a subrange of |sub_length| bytes
+  // at |sub_offset| bytes of this memory range, or false otherwise.
+  bool Covers(size_t sub_offset, size_t sub_length) const {
+    // The following checks verify that:
+    // 1. sub_offset is within [ 0 .. length_ - 1 ]
+    // 2. sub_offset + sub_length is within
+    //    [ sub_offset .. length_ ]
+    return sub_offset < length_ &&
+           sub_offset + sub_length >= sub_offset &&
+           sub_offset + sub_length <= length_;
+  }
+
+  // Returns a raw data pointer to a subrange of |sub_length| bytes at
+  // |sub_offset| bytes of this memory range, or NULL if the subrange
+  // is out of bounds.
+  const void* GetData(size_t sub_offset, size_t sub_length) const {
+    return Covers(sub_offset, sub_length) ? (data_ + sub_offset) : NULL;
+  }
+
+  // Same as the two-argument version of GetData() but uses sizeof(DataType)
+  // as the subrange length and returns an |DataType| pointer for convenience.
+  template <typename DataType>
+  const DataType* GetData(size_t sub_offset) const {
+    return reinterpret_cast<const DataType*>(
+        GetData(sub_offset, sizeof(DataType)));
+  }
+
+  // Returns a raw pointer to the |element_index|-th element of an array
+  // of elements of length |element_size| starting at |sub_offset| bytes
+  // of this memory range, or NULL if the element is out of bounds.
+  const void* GetArrayElement(size_t element_offset,
+                              size_t element_size,
+                              unsigned element_index) const {
+    size_t sub_offset = element_offset + element_index * element_size;
+    return GetData(sub_offset, element_size);
+  }
+
+  // Same as the three-argument version of GetArrayElement() but deduces
+  // the element size using sizeof(ElementType) and returns an |ElementType|
+  // pointer for convenience.
+  template <typename ElementType>
+  const ElementType* GetArrayElement(size_t element_offset,
+                                     unsigned element_index) const {
+    return reinterpret_cast<const ElementType*>(
+        GetArrayElement(element_offset, sizeof(ElementType), element_index));
+  }
+
+  // Returns a subrange of |sub_length| bytes at |sub_offset| bytes of
+  // this memory range, or an empty range if the subrange is out of bounds.
+  MemoryRange Subrange(size_t sub_offset, size_t sub_length) const {
+    return Covers(sub_offset, sub_length) ?
+        MemoryRange(data_ + sub_offset, sub_length) : MemoryRange();
+  }
+
+  // Returns a pointer to the beginning of this memory range.
+  const uint8_t* data() const { return data_; }
+
+  // Returns the length, in bytes, of this memory range.
+  size_t length() const { return length_; }
+
+ private:
+  // Pointer to the beginning of this memory range.
+  const uint8_t* data_;
+
+  // Length, in bytes, of this memory range.
+  size_t length_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_MEMORY_RANGE_H_
diff --git a/src/common/memory_range_unittest.cc b/src/common/memory_range_unittest.cc
new file mode 100644
index 0000000..f6cf8c8
--- /dev/null
+++ b/src/common/memory_range_unittest.cc
@@ -0,0 +1,193 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_range_unittest.cc: Unit tests for google_breakpad::MemoryRange.
+
+#include "breakpad_googletest_includes.h"
+#include "common/memory_range.h"
+
+using google_breakpad::MemoryRange;
+using testing::Message;
+
+namespace {
+
+const uint32_t kBuffer[10] = { 0 };
+const size_t kBufferSize = sizeof(kBuffer);
+const uint8_t* kBufferPointer = reinterpret_cast<const uint8_t*>(kBuffer);
+
+// Test vectors for verifying Covers, GetData, and Subrange.
+const struct {
+  bool valid;
+  size_t offset;
+  size_t length;
+} kSubranges[] = {
+  { true, 0, 0 },
+  { true, 0, 2 },
+  { true, 0, kBufferSize },
+  { true, 2, 0 },
+  { true, 2, 4 },
+  { true, 2, kBufferSize - 2 },
+  { true, kBufferSize - 1, 1 },
+  { false, kBufferSize, 0 },
+  { false, kBufferSize, static_cast<size_t>(-1) },
+  { false, kBufferSize + 1, 0 },
+  { false, static_cast<size_t>(-1), 2 },
+  { false, 1, kBufferSize },
+  { false, kBufferSize - 1, 2 },
+  { false, 0, static_cast<size_t>(-1) },
+  { false, 1, static_cast<size_t>(-1) },
+};
+const size_t kNumSubranges = sizeof(kSubranges) / sizeof(kSubranges[0]);
+
+// Test vectors for verifying GetArrayElement.
+const struct {
+  size_t offset;
+  size_t size;
+  size_t index;
+  const void* const pointer;
+} kElements[] = {
+  // Valid array elemenets
+  { 0, 1, 0, kBufferPointer },
+  { 0, 1, 1, kBufferPointer + 1 },
+  { 0, 1, kBufferSize - 1, kBufferPointer + kBufferSize - 1 },
+  { 0, 2, 1, kBufferPointer + 2 },
+  { 0, 4, 2, kBufferPointer + 8 },
+  { 0, 4, 9, kBufferPointer + 36 },
+  { kBufferSize - 1, 1, 0, kBufferPointer + kBufferSize - 1 },
+  // Invalid array elemenets
+  { 0, 1, kBufferSize, NULL },
+  { 0, 4, 10, NULL },
+  { kBufferSize - 1, 1, 1, NULL },
+  { kBufferSize - 1, 2, 0, NULL },
+  { kBufferSize, 1, 0, NULL },
+};
+const size_t kNumElements = sizeof(kElements) / sizeof(kElements[0]);
+
+}  // namespace
+
+TEST(MemoryRangeTest, DefaultConstructor) {
+  MemoryRange range;
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MemoryRangeTest, ConstructorWithDataAndLength) {
+  MemoryRange range(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+}
+
+TEST(MemoryRangeTest, Reset) {
+  MemoryRange range;
+  range.Reset();
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+
+  range.Set(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+
+  range.Reset();
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MemoryRangeTest, Set) {
+  MemoryRange range;
+  range.Set(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+
+  range.Set(NULL, 0);
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MemoryRangeTest, SubrangeOfEmptyMemoryRange) {
+  MemoryRange range;
+  MemoryRange subrange = range.Subrange(0, 10);
+  EXPECT_EQ(NULL, subrange.data());
+  EXPECT_EQ(0U, subrange.length());
+}
+
+TEST(MemoryRangeTest, SubrangeAndGetData) {
+  MemoryRange range(kBuffer, kBufferSize);
+  for (size_t i = 0; i < kNumSubranges; ++i) {
+    bool valid = kSubranges[i].valid;
+    size_t sub_offset = kSubranges[i].offset;
+    size_t sub_length = kSubranges[i].length;
+    SCOPED_TRACE(Message() << "offset=" << sub_offset
+                 << ", length=" << sub_length);
+
+    MemoryRange subrange = range.Subrange(sub_offset, sub_length);
+    if (valid) {
+      EXPECT_TRUE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset,
+                range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset, subrange.data());
+      EXPECT_EQ(sub_length, subrange.length());
+    } else {
+      EXPECT_FALSE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(NULL, range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(NULL, subrange.data());
+      EXPECT_EQ(0U, subrange.length());
+    }
+  }
+}
+
+TEST(MemoryRangeTest, GetDataWithTemplateType) {
+  MemoryRange range(kBuffer, kBufferSize);
+  const char* char_pointer = range.GetData<char>(0);
+  EXPECT_EQ(reinterpret_cast<const char*>(kBufferPointer), char_pointer);
+  const int* int_pointer = range.GetData<int>(0);
+  EXPECT_EQ(reinterpret_cast<const int*>(kBufferPointer), int_pointer);
+}
+
+TEST(MemoryRangeTest, GetArrayElement) {
+  MemoryRange range(kBuffer, kBufferSize);
+  for (size_t i = 0; i < kNumElements; ++i) {
+    size_t element_offset = kElements[i].offset;
+    size_t element_size = kElements[i].size;
+    unsigned element_index = kElements[i].index;
+    const void* const element_pointer = kElements[i].pointer;
+    SCOPED_TRACE(Message() << "offset=" << element_offset
+                 << ", size=" << element_size
+                 << ", index=" << element_index);
+    EXPECT_EQ(element_pointer, range.GetArrayElement(
+        element_offset, element_size, element_index));
+  }
+}
+
+TEST(MemoryRangeTest, GetArrayElmentWithTemplateType) {
+  MemoryRange range(kBuffer, kBufferSize);
+  const char* char_pointer = range.GetArrayElement<char>(0, 0);
+  EXPECT_EQ(reinterpret_cast<const char*>(kBufferPointer), char_pointer);
+  const int* int_pointer = range.GetArrayElement<int>(0, 0);
+  EXPECT_EQ(reinterpret_cast<const int*>(kBufferPointer), int_pointer);
+}
diff --git a/src/common/minidump_type_helper.h b/src/common/minidump_type_helper.h
new file mode 100644
index 0000000..5a7d5a6
--- /dev/null
+++ b/src/common/minidump_type_helper.h
@@ -0,0 +1,56 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
+
+#include <stdint.h>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+template <size_t>
+struct MDTypeHelper;
+
+template <>
+struct MDTypeHelper<sizeof(uint32_t)> {
+  typedef MDRawDebug32 MDRawDebug;
+  typedef MDRawLinkMap32 MDRawLinkMap;
+};
+
+template <>
+struct MDTypeHelper<sizeof(uint64_t)> {
+  typedef MDRawDebug64 MDRawDebug;
+  typedef MDRawLinkMap64 MDRawLinkMap;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
diff --git a/src/common/module.cc b/src/common/module.cc
new file mode 100644
index 0000000..f70ae20
--- /dev/null
+++ b/src/common/module.cc
@@ -0,0 +1,364 @@
+// Copyright (c) 2011 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// module.cc: Implement google_breakpad::Module.  See module.h.
+
+#include "common/module.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <iostream>
+#include <utility>
+
+namespace google_breakpad {
+
+using std::dec;
+using std::hex;
+
+
+Module::Module(const string& name, const string& os,
+               const string& architecture, const string& id,
+               const string& code_id /* = "" */) :
+    name_(name),
+    os_(os),
+    architecture_(architecture),
+    id_(id),
+    code_id_(code_id),
+    load_address_(0) { }
+
+Module::~Module() {
+  for (FileByNameMap::iterator it = files_.begin(); it != files_.end(); ++it)
+    delete it->second;
+  for (FunctionSet::iterator it = functions_.begin();
+       it != functions_.end(); ++it) {
+    delete *it;
+  }
+  for (vector<StackFrameEntry*>::iterator it = stack_frame_entries_.begin();
+       it != stack_frame_entries_.end(); ++it) {
+    delete *it;
+  }
+  for (ExternSet::iterator it = externs_.begin(); it != externs_.end(); ++it)
+    delete *it;
+}
+
+void Module::SetLoadAddress(Address address) {
+  load_address_ = address;
+}
+
+void Module::SetAddressRanges(const vector<Range>& ranges) {
+  address_ranges_ = ranges;
+}
+
+void Module::AddFunction(Function* function) {
+  // FUNC lines must not hold an empty name, so catch the problem early if
+  // callers try to add one.
+  assert(!function->name.empty());
+
+  if (!AddressIsInModule(function->address)) {
+    return;
+  }
+
+  // FUNCs are better than PUBLICs as they come with sizes, so remove an extern
+  // with the same address if present.
+  Extern ext(function->address);
+  ExternSet::iterator it_ext = externs_.find(&ext);
+  if (it_ext == externs_.end() &&
+      architecture_ == "arm" &&
+      (function->address & 0x1) == 0) {
+    // ARM THUMB functions have bit 0 set. ARM64 does not have THUMB.
+    Extern arm_thumb_ext(function->address | 0x1);
+    it_ext = externs_.find(&arm_thumb_ext);
+  }
+  if (it_ext != externs_.end()) {
+    delete *it_ext;
+    externs_.erase(it_ext);
+  }
+#if _DEBUG
+  {
+    // There should be no other PUBLIC symbols that overlap with the function.
+    for (const Range& range : function->ranges) {
+      Extern debug_ext(range.address);
+      ExternSet::iterator it_debug = externs_.lower_bound(&ext);
+      assert(it_debug == externs_.end() ||
+             (*it_debug)->address >= range.address + range.size);
+    }
+  }
+#endif
+
+  std::pair<FunctionSet::iterator,bool> ret = functions_.insert(function);
+  if (!ret.second && (*ret.first != function)) {
+    // Free the duplicate that was not inserted because this Module
+    // now owns it.
+    delete function;
+  }
+}
+
+void Module::AddFunctions(vector<Function*>::iterator begin,
+                          vector<Function*>::iterator end) {
+  for (vector<Function*>::iterator it = begin; it != end; ++it)
+    AddFunction(*it);
+}
+
+void Module::AddStackFrameEntry(StackFrameEntry* stack_frame_entry) {
+  if (!AddressIsInModule(stack_frame_entry->address)) {
+    return;
+  }
+
+  stack_frame_entries_.push_back(stack_frame_entry);
+}
+
+void Module::AddExtern(Extern* ext) {
+  if (!AddressIsInModule(ext->address)) {
+    return;
+  }
+
+  std::pair<ExternSet::iterator,bool> ret = externs_.insert(ext);
+  if (!ret.second) {
+    // Free the duplicate that was not inserted because this Module
+    // now owns it.
+    delete ext;
+  }
+}
+
+void Module::GetFunctions(vector<Function*>* vec,
+                          vector<Function*>::iterator i) {
+  vec->insert(i, functions_.begin(), functions_.end());
+}
+
+void Module::GetExterns(vector<Extern*>* vec,
+                        vector<Extern*>::iterator i) {
+  vec->insert(i, externs_.begin(), externs_.end());
+}
+
+Module::File* Module::FindFile(const string& name) {
+  // A tricky bit here.  The key of each map entry needs to be a
+  // pointer to the entry's File's name string.  This means that we
+  // can't do the initial lookup with any operation that would create
+  // an empty entry for us if the name isn't found (like, say,
+  // operator[] or insert do), because such a created entry's key will
+  // be a pointer the string passed as our argument.  Since the key of
+  // a map's value type is const, we can't fix it up once we've
+  // created our file.  lower_bound does the lookup without doing an
+  // insertion, and returns a good hint iterator to pass to insert.
+  // Our "destiny" is where we belong, whether we're there or not now.
+  FileByNameMap::iterator destiny = files_.lower_bound(&name);
+  if (destiny == files_.end()
+      || *destiny->first != name) {  // Repeated string comparison, boo hoo.
+    File* file = new File(name);
+    file->source_id = -1;
+    destiny = files_.insert(destiny,
+                            FileByNameMap::value_type(&file->name, file));
+  }
+  return destiny->second;
+}
+
+Module::File* Module::FindFile(const char* name) {
+  string name_string = name;
+  return FindFile(name_string);
+}
+
+Module::File* Module::FindExistingFile(const string& name) {
+  FileByNameMap::iterator it = files_.find(&name);
+  return (it == files_.end()) ? NULL : it->second;
+}
+
+void Module::GetFiles(vector<File*>* vec) {
+  vec->clear();
+  for (FileByNameMap::iterator it = files_.begin(); it != files_.end(); ++it)
+    vec->push_back(it->second);
+}
+
+void Module::GetStackFrameEntries(vector<StackFrameEntry*>* vec) const {
+  *vec = stack_frame_entries_;
+}
+
+void Module::AssignSourceIds() {
+  // First, give every source file an id of -1.
+  for (FileByNameMap::iterator file_it = files_.begin();
+       file_it != files_.end(); ++file_it) {
+    file_it->second->source_id = -1;
+  }
+
+  // Next, mark all files actually cited by our functions' line number
+  // info, by setting each one's source id to zero.
+  for (FunctionSet::const_iterator func_it = functions_.begin();
+       func_it != functions_.end(); ++func_it) {
+    Function* func = *func_it;
+    for (vector<Line>::iterator line_it = func->lines.begin();
+         line_it != func->lines.end(); ++line_it)
+      line_it->file->source_id = 0;
+  }
+
+  // Finally, assign source ids to those files that have been marked.
+  // We could have just assigned source id numbers while traversing
+  // the line numbers, but doing it this way numbers the files in
+  // lexicographical order by name, which is neat.
+  int next_source_id = 0;
+  for (FileByNameMap::iterator file_it = files_.begin();
+       file_it != files_.end(); ++file_it) {
+    if (!file_it->second->source_id)
+      file_it->second->source_id = next_source_id++;
+  }
+}
+
+bool Module::ReportError() {
+  fprintf(stderr, "error writing symbol file: %s\n",
+          strerror(errno));
+  return false;
+}
+
+bool Module::WriteRuleMap(const RuleMap& rule_map, std::ostream& stream) {
+  for (RuleMap::const_iterator it = rule_map.begin();
+       it != rule_map.end(); ++it) {
+    if (it != rule_map.begin())
+      stream << ' ';
+    stream << it->first << ": " << it->second;
+  }
+  return stream.good();
+}
+
+bool Module::AddressIsInModule(Address address) const {
+  if (address_ranges_.empty()) {
+    return true;
+  }
+  for (const auto& segment : address_ranges_) {
+    if (address >= segment.address &&
+        address < segment.address + segment.size) {
+      return true;
+    }
+  }
+  return false;
+}
+
+bool Module::Write(std::ostream& stream, SymbolData symbol_data) {
+  stream << "MODULE " << os_ << " " << architecture_ << " "
+         << id_ << " " << name_ << "\n";
+  if (!stream.good())
+    return ReportError();
+
+  if (!code_id_.empty()) {
+    stream << "INFO CODE_ID " << code_id_ << "\n";
+  }
+
+  if (symbol_data != ONLY_CFI) {
+    AssignSourceIds();
+
+    // Write out files.
+    for (FileByNameMap::iterator file_it = files_.begin();
+         file_it != files_.end(); ++file_it) {
+      File* file = file_it->second;
+      if (file->source_id >= 0) {
+        stream << "FILE " << file->source_id << " " <<  file->name << "\n";
+        if (!stream.good())
+          return ReportError();
+      }
+    }
+
+    // Write out functions and their lines.
+    for (FunctionSet::const_iterator func_it = functions_.begin();
+         func_it != functions_.end(); ++func_it) {
+      Function* func = *func_it;
+      vector<Line>::iterator line_it = func->lines.begin();
+      for (auto range_it = func->ranges.cbegin();
+           range_it != func->ranges.cend(); ++range_it) {
+        stream << "FUNC " << hex
+               << (range_it->address - load_address_) << " "
+               << range_it->size << " "
+               << func->parameter_size << " "
+               << func->name << dec << "\n";
+
+        if (!stream.good())
+          return ReportError();
+
+        while ((line_it != func->lines.end()) &&
+               (line_it->address >= range_it->address) &&
+               (line_it->address < (range_it->address + range_it->size))) {
+          stream << hex
+                 << (line_it->address - load_address_) << " "
+                 << line_it->size << " "
+                 << dec
+                 << line_it->number << " "
+                 << line_it->file->source_id << "\n";
+
+          if (!stream.good())
+            return ReportError();
+
+          ++line_it;
+        }
+      }
+    }
+
+    // Write out 'PUBLIC' records.
+    for (ExternSet::const_iterator extern_it = externs_.begin();
+         extern_it != externs_.end(); ++extern_it) {
+      Extern* ext = *extern_it;
+      stream << "PUBLIC " << hex
+             << (ext->address - load_address_) << " 0 "
+             << ext->name << dec << "\n";
+    }
+  }
+
+  if (symbol_data != NO_CFI) {
+    // Write out 'STACK CFI INIT' and 'STACK CFI' records.
+    vector<StackFrameEntry*>::const_iterator frame_it;
+    for (frame_it = stack_frame_entries_.begin();
+         frame_it != stack_frame_entries_.end(); ++frame_it) {
+      StackFrameEntry* entry = *frame_it;
+      stream << "STACK CFI INIT " << hex
+             << (entry->address - load_address_) << " "
+             << entry->size << " " << dec;
+      if (!stream.good()
+          || !WriteRuleMap(entry->initial_rules, stream))
+        return ReportError();
+
+      stream << "\n";
+
+      // Write out this entry's delta rules as 'STACK CFI' records.
+      for (RuleChangeMap::const_iterator delta_it = entry->rule_changes.begin();
+           delta_it != entry->rule_changes.end(); ++delta_it) {
+        stream << "STACK CFI " << hex
+               << (delta_it->first - load_address_) << " " << dec;
+        if (!stream.good()
+            || !WriteRuleMap(delta_it->second, stream))
+          return ReportError();
+
+        stream << "\n";
+      }
+    }
+  }
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/module.h b/src/common/module.h
new file mode 100644
index 0000000..408e620
--- /dev/null
+++ b/src/common/module.h
@@ -0,0 +1,362 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// module.h: Define google_breakpad::Module. A Module holds debugging
+// information, and can write that information out as a Breakpad
+// symbol file.
+
+#ifndef COMMON_LINUX_MODULE_H__
+#define COMMON_LINUX_MODULE_H__
+
+#include <iostream>
+#include <limits>
+#include <map>
+#include <set>
+#include <string>
+#include <vector>
+
+#include "common/symbol_data.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+using std::set;
+using std::vector;
+using std::map;
+
+// A Module represents the contents of a module, and supports methods
+// for adding information produced by parsing STABS or DWARF data
+// --- possibly both from the same file --- and then writing out the
+// unified contents as a Breakpad-format symbol file.
+class Module {
+ public:
+  // The type of addresses and sizes in a symbol table.
+  typedef uint64_t Address;
+  static constexpr uint64_t kMaxAddress = std::numeric_limits<Address>::max();
+  struct File;
+  struct Function;
+  struct Line;
+  struct Extern;
+
+  // Addresses appearing in File, Function, and Line structures are
+  // absolute, not relative to the the module's load address.  That
+  // is, if the module were loaded at its nominal load address, the
+  // addresses would be correct.
+
+  // A source file.
+  struct File {
+    explicit File(const string& name_input) : name(name_input), source_id(0) {}
+
+    // The name of the source file.
+    const string name;
+
+    // The file's source id.  The Write member function clears this
+    // field and assigns source ids a fresh, so any value placed here
+    // before calling Write will be lost.
+    int source_id;
+  };
+
+  // An address range.
+  struct Range {
+    Range(const Address address_input, const Address size_input) :
+        address(address_input), size(size_input) { }
+
+    Address address;
+    Address size;
+  };
+
+  // A function.
+  struct Function {
+    Function(const string& name_input, const Address& address_input) :
+        name(name_input), address(address_input), parameter_size(0) {}
+
+    // For sorting by address.  (Not style-guide compliant, but it's
+    // stupid not to put this in the struct.)
+    static bool CompareByAddress(const Function* x, const Function* y) {
+      return x->address < y->address;
+    }
+
+    // The function's name.
+    string name;
+
+    // The start address and the address ranges covered by the function.
+    const Address address;
+    vector<Range> ranges;
+
+    // The function's parameter size.
+    Address parameter_size;
+
+    // Source lines belonging to this function, sorted by increasing
+    // address.
+    vector<Line> lines;
+  };
+
+  // A source line.
+  struct Line {
+    // For sorting by address.  (Not style-guide compliant, but it's
+    // stupid not to put this in the struct.)
+    static bool CompareByAddress(const Module::Line& x, const Module::Line& y) {
+      return x.address < y.address;
+    }
+
+    Address address, size;    // The address and size of the line's code.
+    File* file;                // The source file.
+    int number;                // The source line number.
+  };
+
+  // An exported symbol.
+  struct Extern {
+    explicit Extern(const Address& address_input) : address(address_input) {}
+    const Address address;
+    string name;
+  };
+
+  // A map from register names to postfix expressions that recover
+  // their their values. This can represent a complete set of rules to
+  // follow at some address, or a set of changes to be applied to an
+  // extant set of rules.
+  typedef map<string, string> RuleMap;
+
+  // A map from addresses to RuleMaps, representing changes that take
+  // effect at given addresses.
+  typedef map<Address, RuleMap> RuleChangeMap;
+
+  // A range of 'STACK CFI' stack walking information. An instance of
+  // this structure corresponds to a 'STACK CFI INIT' record and the
+  // subsequent 'STACK CFI' records that fall within its range.
+  struct StackFrameEntry {
+    // The starting address and number of bytes of machine code this
+    // entry covers.
+    Address address, size;
+
+    // The initial register recovery rules, in force at the starting
+    // address.
+    RuleMap initial_rules;
+
+    // A map from addresses to rule changes. To find the rules in
+    // force at a given address, start with initial_rules, and then
+    // apply the changes given in this map for all addresses up to and
+    // including the address you're interested in.
+    RuleChangeMap rule_changes;
+  };
+
+  struct FunctionCompare {
+    bool operator() (const Function* lhs, const Function* rhs) const {
+      if (lhs->address == rhs->address)
+        return lhs->name < rhs->name;
+      return lhs->address < rhs->address;
+    }
+  };
+
+  struct ExternCompare {
+    bool operator() (const Extern* lhs, const Extern* rhs) const {
+      return lhs->address < rhs->address;
+    }
+  };
+
+  // Create a new module with the given name, operating system,
+  // architecture, and ID string.
+  Module(const string& name, const string& os, const string& architecture,
+         const string& id, const string& code_id = "");
+  ~Module();
+
+  // Set the module's load address to LOAD_ADDRESS; addresses given
+  // for functions and lines will be written to the Breakpad symbol
+  // file as offsets from this address.  Construction initializes this
+  // module's load address to zero: addresses written to the symbol
+  // file will be the same as they appear in the Function, Line, and
+  // StackFrameEntry structures.
+  //
+  // Note that this member function has no effect on addresses stored
+  // in the data added to this module; the Write member function
+  // simply subtracts off the load address from addresses before it
+  // prints them. Only the last load address given before calling
+  // Write is used.
+  void SetLoadAddress(Address load_address);
+
+  // Sets address filtering on elements added to the module.  This allows
+  // libraries with extraneous debug symbols to generate symbol files containing
+  // only relevant symbols.  For example, an LLD-generated partition library may
+  // contain debug information pertaining to all partitions derived from a
+  // single "combined" library.  Filtering applies only to elements added after
+  // this method is called.
+  void SetAddressRanges(const vector<Range>& ranges);
+
+  // Add FUNCTION to the module. FUNCTION's name must not be empty.
+  // This module owns all Function objects added with this function:
+  // destroying the module destroys them as well.
+  void AddFunction(Function* function);
+
+  // Add all the functions in [BEGIN,END) to the module.
+  // This module owns all Function objects added with this function:
+  // destroying the module destroys them as well.
+  void AddFunctions(vector<Function*>::iterator begin,
+                    vector<Function*>::iterator end);
+
+  // Add STACK_FRAME_ENTRY to the module.
+  // This module owns all StackFrameEntry objects added with this
+  // function: destroying the module destroys them as well.
+  void AddStackFrameEntry(StackFrameEntry* stack_frame_entry);
+
+  // Add PUBLIC to the module.
+  // This module owns all Extern objects added with this function:
+  // destroying the module destroys them as well.
+  void AddExtern(Extern* ext);
+
+  // If this module has a file named NAME, return a pointer to it. If
+  // it has none, then create one and return a pointer to the new
+  // file. This module owns all File objects created using these
+  // functions; destroying the module destroys them as well.
+  File* FindFile(const string& name);
+  File* FindFile(const char* name);
+
+  // If this module has a file named NAME, return a pointer to it.
+  // Otherwise, return NULL.
+  File* FindExistingFile(const string& name);
+
+  // Insert pointers to the functions added to this module at I in
+  // VEC. The pointed-to Functions are still owned by this module.
+  // (Since this is effectively a copy of the function list, this is
+  // mostly useful for testing; other uses should probably get a more
+  // appropriate interface.)
+  void GetFunctions(vector<Function*>* vec, vector<Function*>::iterator i);
+
+  // Insert pointers to the externs added to this module at I in
+  // VEC. The pointed-to Externs are still owned by this module.
+  // (Since this is effectively a copy of the extern list, this is
+  // mostly useful for testing; other uses should probably get a more
+  // appropriate interface.)
+  void GetExterns(vector<Extern*>* vec, vector<Extern*>::iterator i);
+
+  // Clear VEC and fill it with pointers to the Files added to this
+  // module, sorted by name. The pointed-to Files are still owned by
+  // this module. (Since this is effectively a copy of the file list,
+  // this is mostly useful for testing; other uses should probably get
+  // a more appropriate interface.)
+  void GetFiles(vector<File*>* vec);
+
+  // Clear VEC and fill it with pointers to the StackFrameEntry
+  // objects that have been added to this module. (Since this is
+  // effectively a copy of the stack frame entry list, this is mostly
+  // useful for testing; other uses should probably get
+  // a more appropriate interface.)
+  void GetStackFrameEntries(vector<StackFrameEntry*>* vec) const;
+
+  // Find those files in this module that are actually referred to by
+  // functions' line number data, and assign them source id numbers.
+  // Set the source id numbers for all other files --- unused by the
+  // source line data --- to -1.  We do this before writing out the
+  // symbol file, at which point we omit any unused files.
+  void AssignSourceIds();
+
+  // Call AssignSourceIds, and write this module to STREAM in the
+  // breakpad symbol format. Return true if all goes well, or false if
+  // an error occurs. This method writes out:
+  // - a header based on the values given to the constructor,
+  // If symbol_data is not ONLY_CFI then:
+  // - the source files added via FindFile,
+  // - the functions added via AddFunctions, each with its lines,
+  // - all public records,
+  // If symbol_data is not NO_CFI then:
+  // - all CFI records.
+  // Addresses in the output are all relative to the load address
+  // established by SetLoadAddress.
+  bool Write(std::ostream& stream, SymbolData symbol_data);
+
+  string name() const { return name_; }
+  string os() const { return os_; }
+  string architecture() const { return architecture_; }
+  string identifier() const { return id_; }
+  string code_identifier() const { return code_id_; }
+
+ private:
+  // Report an error that has occurred writing the symbol file, using
+  // errno to find the appropriate cause.  Return false.
+  static bool ReportError();
+
+  // Write RULE_MAP to STREAM, in the form appropriate for 'STACK CFI'
+  // records, without a final newline. Return true if all goes well;
+  // if an error occurs, return false, and leave errno set.
+  static bool WriteRuleMap(const RuleMap& rule_map, std::ostream& stream);
+
+  // Returns true of the specified address resides with an specified address
+  // range, or if no ranges have been specified.
+  bool AddressIsInModule(Address address) const;
+
+  // Module header entries.
+  string name_, os_, architecture_, id_, code_id_;
+
+  // The module's nominal load address.  Addresses for functions and
+  // lines are absolute, assuming the module is loaded at this
+  // address.
+  Address load_address_;
+
+  // The set of valid address ranges of the module.  If specified, attempts to
+  // add elements residing outside these ranges will be silently filtered.
+  vector<Range> address_ranges_;
+
+  // Relation for maps whose keys are strings shared with some other
+  // structure.
+  struct CompareStringPtrs {
+    bool operator()(const string* x, const string* y) const { return *x < *y; }
+  };
+
+  // A map from filenames to File structures.  The map's keys are
+  // pointers to the Files' names.
+  typedef map<const string*, File*, CompareStringPtrs> FileByNameMap;
+
+  // A set containing Function structures, sorted by address.
+  typedef set<Function*, FunctionCompare> FunctionSet;
+
+  // A set containing Extern structures, sorted by address.
+  typedef set<Extern*, ExternCompare> ExternSet;
+
+  // The module owns all the files and functions that have been added
+  // to it; destroying the module frees the Files and Functions these
+  // point to.
+  FileByNameMap files_;    // This module's source files.
+  FunctionSet functions_;  // This module's functions.
+
+  // The module owns all the call frame info entries that have been
+  // added to it.
+  vector<StackFrameEntry*> stack_frame_entries_;
+
+  // The module owns all the externs that have been added to it;
+  // destroying the module frees the Externs these point to.
+  ExternSet externs_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_LINUX_MODULE_H__
diff --git a/src/common/module_unittest.cc b/src/common/module_unittest.cc
new file mode 100644
index 0000000..cede09c
--- /dev/null
+++ b/src/common/module_unittest.cc
@@ -0,0 +1,616 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// module_unittest.cc: Unit tests for google_breakpad::Module.
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <algorithm>
+#include <sstream>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/module.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::Module;
+using std::stringstream;
+using std::vector;
+using testing::ContainerEq;
+
+static Module::Function* generate_duplicate_function(const string& name) {
+  const Module::Address DUP_ADDRESS = 0xd35402aac7a7ad5cULL;
+  const Module::Address DUP_SIZE = 0x200b26e605f99071ULL;
+  const Module::Address DUP_PARAMETER_SIZE = 0xf14ac4fed48c4a99ULL;
+
+  Module::Function* function = new Module::Function(name, DUP_ADDRESS);
+  Module::Range range(DUP_ADDRESS, DUP_SIZE);
+  function->ranges.push_back(range);
+  function->parameter_size = DUP_PARAMETER_SIZE;
+  return function;
+}
+
+#define MODULE_NAME "name with spaces"
+#define MODULE_OS "os-name"
+#define MODULE_ARCH "architecture"
+#define MODULE_ID "id-string"
+#define MODULE_CODE_ID "code-id-string"
+
+TEST(Write, Header) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n",
+               contents.c_str());
+}
+
+TEST(Write, HeaderCodeId) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, MODULE_CODE_ID);
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "INFO CODE_ID code-id-string\n",
+               contents.c_str());
+}
+
+TEST(Write, OneLineFunc) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  Module::File* file = m.FindFile("file_name.cc");
+  Module::Function* function = new Module::Function(
+      "function_name", 0xe165bf8023b9d9abULL);
+  Module::Range range(0xe165bf8023b9d9abULL, 0x1e4bb0eb1cbf5b09ULL);
+  function->ranges.push_back(range);
+  function->parameter_size = 0x772beee89114358aULL;
+  Module::Line line = { 0xe165bf8023b9d9abULL, 0x1e4bb0eb1cbf5b09ULL,
+                        file, 67519080 };
+  function->lines.push_back(line);
+  m.AddFunction(function);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FILE 0 file_name.cc\n"
+               "FUNC e165bf8023b9d9ab 1e4bb0eb1cbf5b09 772beee89114358a"
+               " function_name\n"
+               "e165bf8023b9d9ab 1e4bb0eb1cbf5b09 67519080 0\n",
+               contents.c_str());
+}
+
+TEST(Write, RelativeLoadAddress) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Some source files.  We will expect to see them in lexicographic order.
+  Module::File* file1 = m.FindFile("filename-b.cc");
+  Module::File* file2 = m.FindFile("filename-a.cc");
+
+  // A function.
+  Module::Function* function = new Module::Function(
+      "A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)", 0xbec774ea5dd935f3ULL);
+  Module::Range range(0xbec774ea5dd935f3ULL, 0x2922088f98d3f6fcULL);
+  function->ranges.push_back(range);
+  function->parameter_size = 0xe5e9aa008bd5f0d0ULL;
+
+  // Some source lines.  The module should not sort these.
+  Module::Line line1 = { 0xbec774ea5dd935f3ULL, 0x1c2be6d6c5af2611ULL,
+                         file1, 41676901 };
+  Module::Line line2 = { 0xdaf35bc123885c04ULL, 0xcf621b8d324d0ebULL,
+                         file2, 67519080 };
+  function->lines.push_back(line2);
+  function->lines.push_back(line1);
+
+  m.AddFunction(function);
+
+  // Some stack information.
+  Module::StackFrameEntry* entry = new Module::StackFrameEntry();
+  entry->address = 0x30f9e5c83323973dULL;
+  entry->size = 0x49fc9ca7c7c13dc2ULL;
+  entry->initial_rules[".cfa"] = "he was a handsome man";
+  entry->initial_rules["and"] = "what i want to know is";
+  entry->rule_changes[0x30f9e5c83323973eULL]["how"] =
+    "do you like your blueeyed boy";
+  entry->rule_changes[0x30f9e5c83323973eULL]["Mister"] = "Death";
+  m.AddStackFrameEntry(entry);
+
+  // Set the load address.  Doing this after adding all the data to
+  // the module must work fine.
+  m.SetLoadAddress(0x2ab698b0b6407073ULL);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FILE 0 filename-a.cc\n"
+               "FILE 1 filename-b.cc\n"
+               "FUNC 9410dc39a798c580 2922088f98d3f6fc e5e9aa008bd5f0d0"
+               " A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)\n"
+               "b03cc3106d47eb91 cf621b8d324d0eb 67519080 0\n"
+               "9410dc39a798c580 1c2be6d6c5af2611 41676901 1\n"
+               "STACK CFI INIT 6434d177ce326ca 49fc9ca7c7c13dc2"
+               " .cfa: he was a handsome man"
+               " and: what i want to know is\n"
+               "STACK CFI 6434d177ce326cb"
+               " Mister: Death"
+               " how: do you like your blueeyed boy\n",
+               contents.c_str());
+}
+
+TEST(Write, OmitUnusedFiles) {
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Create some source files.
+  Module::File* file1 = m.FindFile("filename1");
+  m.FindFile("filename2");  // not used by any line
+  Module::File* file3 = m.FindFile("filename3");
+
+  // Create a function.
+  Module::Function* function = new Module::Function(
+      "function_name", 0x9b926d464f0b9384ULL);
+  Module::Range range(0x9b926d464f0b9384ULL, 0x4f524a4ba795e6a6ULL);
+  function->ranges.push_back(range);
+  function->parameter_size = 0xbbe8133a6641c9b7ULL;
+
+  // Source files that refer to some files, but not others.
+  Module::Line line1 = { 0xab415089485e1a20ULL, 0x126e3124979291f2ULL,
+                         file1, 137850127 };
+  Module::Line line2 = { 0xb2675b5c3c2ed33fULL, 0x1df77f5551dbd68cULL,
+                         file3, 28113549 };
+  function->lines.push_back(line1);
+  function->lines.push_back(line2);
+  m.AddFunction(function);
+
+  m.AssignSourceIds();
+
+  vector<Module::File*> vec;
+  m.GetFiles(&vec);
+  EXPECT_EQ((size_t) 3, vec.size());
+  EXPECT_STREQ("filename1", vec[0]->name.c_str());
+  EXPECT_NE(-1, vec[0]->source_id);
+  // Expect filename2 not to be used.
+  EXPECT_STREQ("filename2", vec[1]->name.c_str());
+  EXPECT_EQ(-1, vec[1]->source_id);
+  EXPECT_STREQ("filename3", vec[2]->name.c_str());
+  EXPECT_NE(-1, vec[2]->source_id);
+
+  stringstream s;
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FILE 0 filename1\n"
+               "FILE 1 filename3\n"
+               "FUNC 9b926d464f0b9384 4f524a4ba795e6a6 bbe8133a6641c9b7"
+               " function_name\n"
+               "ab415089485e1a20 126e3124979291f2 137850127 0\n"
+               "b2675b5c3c2ed33f 1df77f5551dbd68c 28113549 1\n",
+               contents.c_str());
+}
+
+TEST(Write, NoCFI) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Some source files.  We will expect to see them in lexicographic order.
+  Module::File* file1 = m.FindFile("filename.cc");
+
+  // A function.
+  Module::Function* function = new Module::Function(
+      "A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)", 0xbec774ea5dd935f3ULL);
+  Module::Range range(0xbec774ea5dd935f3ULL, 0x2922088f98d3f6fcULL);
+  function->ranges.push_back(range);
+  function->parameter_size = 0xe5e9aa008bd5f0d0ULL;
+
+  // Some source lines.  The module should not sort these.
+  Module::Line line1 = { 0xbec774ea5dd935f3ULL, 0x1c2be6d6c5af2611ULL,
+                         file1, 41676901 };
+  function->lines.push_back(line1);
+
+  m.AddFunction(function);
+
+  // Some stack information.
+  Module::StackFrameEntry* entry = new Module::StackFrameEntry();
+  entry->address = 0x30f9e5c83323973dULL;
+  entry->size = 0x49fc9ca7c7c13dc2ULL;
+  entry->initial_rules[".cfa"] = "he was a handsome man";
+  entry->initial_rules["and"] = "what i want to know is";
+  entry->rule_changes[0x30f9e5c83323973eULL]["how"] =
+    "do you like your blueeyed boy";
+  entry->rule_changes[0x30f9e5c83323973eULL]["Mister"] = "Death";
+  m.AddStackFrameEntry(entry);
+
+  // Set the load address.  Doing this after adding all the data to
+  // the module must work fine.
+  m.SetLoadAddress(0x2ab698b0b6407073ULL);
+
+  m.Write(s, NO_CFI);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FILE 0 filename.cc\n"
+               "FUNC 9410dc39a798c580 2922088f98d3f6fc e5e9aa008bd5f0d0"
+               " A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)\n"
+               "9410dc39a798c580 1c2be6d6c5af2611 41676901 0\n",
+               contents.c_str());
+}
+
+TEST(Construct, AddFunctions) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two functions.
+  Module::Function* function1 = new Module::Function(
+      "_without_form", 0xd35024aa7ca7da5cULL);
+  Module::Range r1(0xd35024aa7ca7da5cULL, 0x200b26e605f99071ULL);
+  function1->ranges.push_back(r1);
+  function1->parameter_size = 0xf14ac4fed48c4a99ULL;
+
+  Module::Function* function2 = new Module::Function(
+      "_and_void", 0x2987743d0b35b13fULL);
+  Module::Range r2(0x2987743d0b35b13fULL, 0xb369db048deb3010ULL);
+  function2->ranges.push_back(r2);
+  function2->parameter_size = 0x938e556cb5a79988ULL;
+
+  // Put them in a vector.
+  vector<Module::Function*> vec;
+  vec.push_back(function1);
+  vec.push_back(function2);
+
+  m.AddFunctions(vec.begin(), vec.end());
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FUNC 2987743d0b35b13f b369db048deb3010 938e556cb5a79988"
+               " _and_void\n"
+               "FUNC d35024aa7ca7da5c 200b26e605f99071 f14ac4fed48c4a99"
+               " _without_form\n",
+               contents.c_str());
+
+  // Check that m.GetFunctions returns the functions we expect.
+  vec.clear();
+  m.GetFunctions(&vec, vec.end());
+  EXPECT_TRUE(vec.end() != find(vec.begin(), vec.end(), function1));
+  EXPECT_TRUE(vec.end() != find(vec.begin(), vec.end(), function2));
+  EXPECT_EQ((size_t) 2, vec.size());
+}
+
+TEST(Construct, AddFrames) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // First STACK CFI entry, with no initial rules or deltas.
+  Module::StackFrameEntry* entry1 = new Module::StackFrameEntry();
+  entry1->address = 0xddb5f41285aa7757ULL;
+  entry1->size = 0x1486493370dc5073ULL;
+  m.AddStackFrameEntry(entry1);
+
+  // Second STACK CFI entry, with initial rules but no deltas.
+  Module::StackFrameEntry* entry2 = new Module::StackFrameEntry();
+  entry2->address = 0x8064f3af5e067e38ULL;
+  entry2->size = 0x0de2a5ee55509407ULL;
+  entry2->initial_rules[".cfa"] = "I think that I shall never see";
+  entry2->initial_rules["stromboli"] = "a poem lovely as a tree";
+  entry2->initial_rules["cannoli"] = "a tree whose hungry mouth is prest";
+  m.AddStackFrameEntry(entry2);
+
+  // Third STACK CFI entry, with initial rules and deltas.
+  Module::StackFrameEntry* entry3 = new Module::StackFrameEntry();
+  entry3->address = 0x5e8d0db0a7075c6cULL;
+  entry3->size = 0x1c7edb12a7aea229ULL;
+  entry3->initial_rules[".cfa"] = "Whose woods are these";
+  entry3->rule_changes[0x47ceb0f63c269d7fULL]["calzone"] =
+    "the village though";
+  entry3->rule_changes[0x47ceb0f63c269d7fULL]["cannoli"] =
+    "he will not see me stopping here";
+  entry3->rule_changes[0x36682fad3763ffffULL]["stromboli"] =
+    "his house is in";
+  entry3->rule_changes[0x36682fad3763ffffULL][".cfa"] =
+    "I think I know";
+  m.AddStackFrameEntry(entry3);
+
+  // Check that Write writes STACK CFI records properly.
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "STACK CFI INIT ddb5f41285aa7757 1486493370dc5073 \n"
+               "STACK CFI INIT 8064f3af5e067e38 de2a5ee55509407"
+               " .cfa: I think that I shall never see"
+               " cannoli: a tree whose hungry mouth is prest"
+               " stromboli: a poem lovely as a tree\n"
+               "STACK CFI INIT 5e8d0db0a7075c6c 1c7edb12a7aea229"
+               " .cfa: Whose woods are these\n"
+               "STACK CFI 36682fad3763ffff"
+               " .cfa: I think I know"
+               " stromboli: his house is in\n"
+               "STACK CFI 47ceb0f63c269d7f"
+               " calzone: the village though"
+               " cannoli: he will not see me stopping here\n",
+               contents.c_str());
+
+  // Check that GetStackFrameEntries works.
+  vector<Module::StackFrameEntry*> entries;
+  m.GetStackFrameEntries(&entries);
+  ASSERT_EQ(3U, entries.size());
+  // Check first entry.
+  EXPECT_EQ(0xddb5f41285aa7757ULL, entries[0]->address);
+  EXPECT_EQ(0x1486493370dc5073ULL, entries[0]->size);
+  ASSERT_EQ(0U, entries[0]->initial_rules.size());
+  ASSERT_EQ(0U, entries[0]->rule_changes.size());
+  // Check second entry.
+  EXPECT_EQ(0x8064f3af5e067e38ULL, entries[1]->address);
+  EXPECT_EQ(0x0de2a5ee55509407ULL, entries[1]->size);
+  ASSERT_EQ(3U, entries[1]->initial_rules.size());
+  Module::RuleMap entry2_initial;
+  entry2_initial[".cfa"] = "I think that I shall never see";
+  entry2_initial["stromboli"] = "a poem lovely as a tree";
+  entry2_initial["cannoli"] = "a tree whose hungry mouth is prest";
+  EXPECT_THAT(entries[1]->initial_rules, ContainerEq(entry2_initial));
+  ASSERT_EQ(0U, entries[1]->rule_changes.size());
+  // Check third entry.
+  EXPECT_EQ(0x5e8d0db0a7075c6cULL, entries[2]->address);
+  EXPECT_EQ(0x1c7edb12a7aea229ULL, entries[2]->size);
+  Module::RuleMap entry3_initial;
+  entry3_initial[".cfa"] = "Whose woods are these";
+  EXPECT_THAT(entries[2]->initial_rules, ContainerEq(entry3_initial));
+  Module::RuleChangeMap entry3_changes;
+  entry3_changes[0x36682fad3763ffffULL][".cfa"] = "I think I know";
+  entry3_changes[0x36682fad3763ffffULL]["stromboli"] = "his house is in";
+  entry3_changes[0x47ceb0f63c269d7fULL]["calzone"] = "the village though";
+  entry3_changes[0x47ceb0f63c269d7fULL]["cannoli"] =
+    "he will not see me stopping here";
+  EXPECT_THAT(entries[2]->rule_changes, ContainerEq(entry3_changes));
+}
+
+TEST(Construct, UniqueFiles) {
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+  Module::File* file1 = m.FindFile("foo");
+  Module::File* file2 = m.FindFile(string("bar"));
+  Module::File* file3 = m.FindFile(string("foo"));
+  Module::File* file4 = m.FindFile("bar");
+  EXPECT_NE(file1, file2);
+  EXPECT_EQ(file1, file3);
+  EXPECT_EQ(file2, file4);
+  EXPECT_EQ(file1, m.FindExistingFile("foo"));
+  EXPECT_TRUE(m.FindExistingFile("baz") == NULL);
+}
+
+TEST(Construct, DuplicateFunctions) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two functions.
+  Module::Function* function1 = generate_duplicate_function("_without_form");
+  Module::Function* function2 = generate_duplicate_function("_without_form");
+
+  m.AddFunction(function1);
+  m.AddFunction(function2);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FUNC d35402aac7a7ad5c 200b26e605f99071 f14ac4fed48c4a99"
+               " _without_form\n",
+               contents.c_str());
+}
+
+TEST(Construct, FunctionsWithSameAddress) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two functions.
+  Module::Function* function1 = generate_duplicate_function("_without_form");
+  Module::Function* function2 = generate_duplicate_function("_and_void");
+
+  m.AddFunction(function1);
+  m.AddFunction(function2);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "FUNC d35402aac7a7ad5c 200b26e605f99071 f14ac4fed48c4a99"
+               " _and_void\n"
+               "FUNC d35402aac7a7ad5c 200b26e605f99071 f14ac4fed48c4a99"
+               " _without_form\n",
+               contents.c_str());
+}
+
+// Externs should be written out as PUBLIC records, sorted by
+// address.
+TEST(Construct, Externs) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two externs.
+  Module::Extern* extern1 = new Module::Extern(0xffff);
+  extern1->name = "_abc";
+  Module::Extern* extern2 = new Module::Extern(0xaaaa);
+  extern2->name = "_xyz";
+
+  m.AddExtern(extern1);
+  m.AddExtern(extern2);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+
+  EXPECT_STREQ("MODULE " MODULE_OS " " MODULE_ARCH " "
+               MODULE_ID " " MODULE_NAME "\n"
+               "PUBLIC aaaa 0 _xyz\n"
+               "PUBLIC ffff 0 _abc\n",
+               contents.c_str());
+}
+
+// Externs with the same address should only keep the first entry
+// added.
+TEST(Construct, DuplicateExterns) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two externs.
+  Module::Extern* extern1 = new Module::Extern(0xffff);
+  extern1->name = "_xyz";
+  Module::Extern* extern2 = new Module::Extern(0xffff);
+  extern2->name = "_abc";
+
+  m.AddExtern(extern1);
+  m.AddExtern(extern2);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+
+  EXPECT_STREQ("MODULE " MODULE_OS " " MODULE_ARCH " "
+               MODULE_ID " " MODULE_NAME "\n"
+               "PUBLIC ffff 0 _xyz\n",
+               contents.c_str());
+}
+
+// If there exists an extern and a function at the same address, only write
+// out the FUNC entry.
+TEST(Construct, FunctionsAndExternsWithSameAddress) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Two externs.
+  Module::Extern* extern1 = new Module::Extern(0xabc0);
+  extern1->name = "abc";
+  Module::Extern* extern2 = new Module::Extern(0xfff0);
+  extern2->name = "xyz";
+
+  m.AddExtern(extern1);
+  m.AddExtern(extern2);
+
+  Module::Function* function = new Module::Function("_xyz", 0xfff0);
+  Module::Range range(0xfff0, 0x10);
+  function->ranges.push_back(range);
+  function->parameter_size = 0;
+  m.AddFunction(function);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+
+  EXPECT_STREQ("MODULE " MODULE_OS " " MODULE_ARCH " "
+               MODULE_ID " " MODULE_NAME "\n"
+               "FUNC fff0 10 0 _xyz\n"
+               "PUBLIC abc0 0 abc\n",
+               contents.c_str());
+}
+
+// If there exists an extern and a function at the same address, only write
+// out the FUNC entry. For ARM THUMB, the extern that comes from the ELF
+// symbol section has bit 0 set.
+TEST(Construct, FunctionsAndThumbExternsWithSameAddress) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, "arm", MODULE_ID);
+
+  // Two THUMB externs.
+  Module::Extern* thumb_extern1 = new Module::Extern(0xabc1);
+  thumb_extern1->name = "thumb_abc";
+  Module::Extern* thumb_extern2 = new Module::Extern(0xfff1);
+  thumb_extern2->name = "thumb_xyz";
+
+  Module::Extern* arm_extern1 = new Module::Extern(0xcc00);
+  arm_extern1->name = "arm_func";
+
+  m.AddExtern(thumb_extern1);
+  m.AddExtern(thumb_extern2);
+  m.AddExtern(arm_extern1);
+
+  // The corresponding function from the DWARF debug data have the actual
+  // address.
+  Module::Function* function = new Module::Function("_thumb_xyz", 0xfff0);
+  Module::Range range(0xfff0, 0x10);
+  function->ranges.push_back(range);
+  function->parameter_size = 0;
+  m.AddFunction(function);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+  string contents = s.str();
+
+  EXPECT_STREQ("MODULE " MODULE_OS " arm "
+               MODULE_ID " " MODULE_NAME "\n"
+               "FUNC fff0 10 0 _thumb_xyz\n"
+               "PUBLIC abc1 0 thumb_abc\n"
+               "PUBLIC cc00 0 arm_func\n",
+               contents.c_str());
+}
+
+TEST(Write, OutOfRangeAddresses) {
+  stringstream s;
+  Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+
+  // Specify an allowed address range, representing a PT_LOAD segment in a
+  // module.
+  vector<Module::Range> address_ranges = {
+    Module::Range(0x2000ULL, 0x1000ULL),
+  };
+  m.SetAddressRanges(address_ranges);
+
+  // Add three stack frames (one lower, one in, and one higher than the allowed
+  // address range).  Only the middle frame should be captured.
+  Module::StackFrameEntry* entry1 = new Module::StackFrameEntry();
+  entry1->address = 0x1000ULL;
+  entry1->size = 0x100ULL;
+  m.AddStackFrameEntry(entry1);
+  Module::StackFrameEntry* entry2 = new Module::StackFrameEntry();
+  entry2->address = 0x2000ULL;
+  entry2->size = 0x100ULL;
+  m.AddStackFrameEntry(entry2);
+  Module::StackFrameEntry* entry3 = new Module::StackFrameEntry();
+  entry3->address = 0x3000ULL;
+  entry3->size = 0x100ULL;
+  m.AddStackFrameEntry(entry3);
+
+  // Add a function outside the allowed range.
+  Module::File* file = m.FindFile("file_name.cc");
+  Module::Function* function = new Module::Function(
+      "function_name", 0x4000ULL);
+  Module::Range range(0x4000ULL, 0x1000ULL);
+  function->ranges.push_back(range);
+  function->parameter_size = 0x100ULL;
+  Module::Line line = { 0x4000ULL, 0x100ULL, file, 67519080 };
+  function->lines.push_back(line);
+  m.AddFunction(function);
+
+  // Add an extern outside the allowed range.
+  Module::Extern* extern1 = new Module::Extern(0x5000ULL);
+  extern1->name = "_xyz";
+  m.AddExtern(extern1);
+
+  m.Write(s, ALL_SYMBOL_DATA);
+
+  EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
+               "STACK CFI INIT 2000 100 \n",
+               s.str().c_str());
+
+}
diff --git a/src/common/path_helper.cc b/src/common/path_helper.cc
new file mode 100644
index 0000000..61a6e31
--- /dev/null
+++ b/src/common/path_helper.cc
@@ -0,0 +1,55 @@
+// Copyright 2017, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/path_helper.h"
+
+#include <assert.h>
+#include <libgen.h>
+#include <stdlib.h>
+#include <string.h>
+
+namespace google_breakpad {
+
+string BaseName(const string& path) {
+  char* path_tmp = strdup(path.c_str());
+  assert(path_tmp);
+  string result(basename(path_tmp));
+  free(path_tmp);
+  return result;
+}
+
+string DirName(const string& path) {
+  char* path_tmp = strdup(path.c_str());
+  assert(path_tmp);
+  string result(dirname(path_tmp));
+  free(path_tmp);
+  return result;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/path_helper.h b/src/common/path_helper.h
new file mode 100644
index 0000000..2166ba0
--- /dev/null
+++ b/src/common/path_helper.h
@@ -0,0 +1,44 @@
+// Copyright 2017, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_PATH_HELPER_H
+#define GOOGLE_BREAKPAD_COMMON_PATH_HELPER_H
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+string BaseName(const string& path);
+string DirName(const string& path);
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_PATH_HELPER_H
diff --git a/src/common/scoped_ptr.h b/src/common/scoped_ptr.h
new file mode 100644
index 0000000..d137c18
--- /dev/null
+++ b/src/common/scoped_ptr.h
@@ -0,0 +1,404 @@
+// Copyright 2013 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Scopers help you manage ownership of a pointer, helping you easily manage the
+// a pointer within a scope, and automatically destroying the pointer at the
+// end of a scope.  There are two main classes you will use, which correspond
+// to the operators new/delete and new[]/delete[].
+//
+// Example usage (scoped_ptr):
+//   {
+//     scoped_ptr<Foo> foo(new Foo("wee"));
+//   }  // foo goes out of scope, releasing the pointer with it.
+//
+//   {
+//     scoped_ptr<Foo> foo;          // No pointer managed.
+//     foo.reset(new Foo("wee"));    // Now a pointer is managed.
+//     foo.reset(new Foo("wee2"));   // Foo("wee") was destroyed.
+//     foo.reset(new Foo("wee3"));   // Foo("wee2") was destroyed.
+//     foo->Method();                // Foo::Method() called.
+//     foo.get()->Method();          // Foo::Method() called.
+//     SomeFunc(foo.release());      // SomeFunc takes ownership, foo no longer
+//                                   // manages a pointer.
+//     foo.reset(new Foo("wee4"));   // foo manages a pointer again.
+//     foo.reset();                  // Foo("wee4") destroyed, foo no longer
+//                                   // manages a pointer.
+//   }  // foo wasn't managing a pointer, so nothing was destroyed.
+//
+// Example usage (scoped_array):
+//   {
+//     scoped_array<Foo> foo(new Foo[100]);
+//     foo.get()->Method();  // Foo::Method on the 0th element.
+//     foo[10].Method();     // Foo::Method on the 10th element.
+//   }
+
+#ifndef COMMON_SCOPED_PTR_H_
+#define COMMON_SCOPED_PTR_H_
+
+// This is an implementation designed to match the anticipated future TR2
+// implementation of the scoped_ptr class, and its closely-related brethren,
+// scoped_array, scoped_ptr_malloc.
+
+#include <assert.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+namespace google_breakpad {
+
+// A scoped_ptr<T> is like a T*, except that the destructor of scoped_ptr<T>
+// automatically deletes the pointer it holds (if any).
+// That is, scoped_ptr<T> owns the T object that it points to.
+// Like a T*, a scoped_ptr<T> may hold either NULL or a pointer to a T object.
+// Also like T*, scoped_ptr<T> is thread-compatible, and once you
+// dereference it, you get the threadsafety guarantees of T.
+//
+// The size of a scoped_ptr is small:
+// sizeof(scoped_ptr<C>) == sizeof(C*)
+template <class C>
+class scoped_ptr {
+ public:
+
+  // The element type
+  typedef C element_type;
+
+  // Constructor.  Defaults to initializing with NULL.
+  // There is no way to create an uninitialized scoped_ptr.
+  // The input parameter must be allocated with new.
+  explicit scoped_ptr(C* p = NULL) : ptr_(p) { }
+
+  // Destructor.  If there is a C object, delete it.
+  // We don't need to test ptr_ == NULL because C++ does that for us.
+  ~scoped_ptr() {
+    enum { type_must_be_complete = sizeof(C) };
+    delete ptr_;
+  }
+
+  // Reset.  Deletes the current owned object, if any.
+  // Then takes ownership of a new object, if given.
+  // this->reset(this->get()) works.
+  void reset(C* p = NULL) {
+    if (p != ptr_) {
+      enum { type_must_be_complete = sizeof(C) };
+      delete ptr_;
+      ptr_ = p;
+    }
+  }
+
+  // Accessors to get the owned object.
+  // operator* and operator-> will assert() if there is no current object.
+  C& operator*() const {
+    assert(ptr_ != NULL);
+    return *ptr_;
+  }
+  C* operator->() const  {
+    assert(ptr_ != NULL);
+    return ptr_;
+  }
+  C* get() const { return ptr_; }
+
+  // Comparison operators.
+  // These return whether two scoped_ptr refer to the same object, not just to
+  // two different but equal objects.
+  bool operator==(C* p) const { return ptr_ == p; }
+  bool operator!=(C* p) const { return ptr_ != p; }
+
+  // Swap two scoped pointers.
+  void swap(scoped_ptr& p2) {
+    C* tmp = ptr_;
+    ptr_ = p2.ptr_;
+    p2.ptr_ = tmp;
+  }
+
+  // Release a pointer.
+  // The return value is the current pointer held by this object.
+  // If this object holds a NULL pointer, the return value is NULL.
+  // After this operation, this object will hold a NULL pointer,
+  // and will not own the object any more.
+  C* release() {
+    C* retVal = ptr_;
+    ptr_ = NULL;
+    return retVal;
+  }
+
+ private:
+  C* ptr_;
+
+  // Forbid comparison of scoped_ptr types.  If C2 != C, it totally doesn't
+  // make sense, and if C2 == C, it still doesn't make sense because you should
+  // never have the same object owned by two different scoped_ptrs.
+  template <class C2> bool operator==(scoped_ptr<C2> const& p2) const;
+  template <class C2> bool operator!=(scoped_ptr<C2> const& p2) const;
+
+  // Disallow evil constructors
+  scoped_ptr(const scoped_ptr&);
+  void operator=(const scoped_ptr&);
+};
+
+// Free functions
+template <class C>
+void swap(scoped_ptr<C>& p1, scoped_ptr<C>& p2) {
+  p1.swap(p2);
+}
+
+template <class C>
+bool operator==(C* p1, const scoped_ptr<C>& p2) {
+  return p1 == p2.get();
+}
+
+template <class C>
+bool operator!=(C* p1, const scoped_ptr<C>& p2) {
+  return p1 != p2.get();
+}
+
+// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate
+// with new [] and the destructor deletes objects with delete [].
+//
+// As with scoped_ptr<C>, a scoped_array<C> either points to an object
+// or is NULL.  A scoped_array<C> owns the object that it points to.
+// scoped_array<T> is thread-compatible, and once you index into it,
+// the returned objects have only the threadsafety guarantees of T.
+//
+// Size: sizeof(scoped_array<C>) == sizeof(C*)
+template <class C>
+class scoped_array {
+ public:
+
+  // The element type
+  typedef C element_type;
+
+  // Constructor.  Defaults to intializing with NULL.
+  // There is no way to create an uninitialized scoped_array.
+  // The input parameter must be allocated with new [].
+  explicit scoped_array(C* p = NULL) : array_(p) { }
+
+  // Destructor.  If there is a C object, delete it.
+  // We don't need to test ptr_ == NULL because C++ does that for us.
+  ~scoped_array() {
+    enum { type_must_be_complete = sizeof(C) };
+    delete[] array_;
+  }
+
+  // Reset.  Deletes the current owned object, if any.
+  // Then takes ownership of a new object, if given.
+  // this->reset(this->get()) works.
+  void reset(C* p = NULL) {
+    if (p != array_) {
+      enum { type_must_be_complete = sizeof(C) };
+      delete[] array_;
+      array_ = p;
+    }
+  }
+
+  // Get one element of the current object.
+  // Will assert() if there is no current object, or index i is negative.
+  C& operator[](ptrdiff_t i) const {
+    assert(i >= 0);
+    assert(array_ != NULL);
+    return array_[i];
+  }
+
+  // Get a pointer to the zeroth element of the current object.
+  // If there is no current object, return NULL.
+  C* get() const {
+    return array_;
+  }
+
+  // Comparison operators.
+  // These return whether two scoped_array refer to the same object, not just to
+  // two different but equal objects.
+  bool operator==(C* p) const { return array_ == p; }
+  bool operator!=(C* p) const { return array_ != p; }
+
+  // Swap two scoped arrays.
+  void swap(scoped_array& p2) {
+    C* tmp = array_;
+    array_ = p2.array_;
+    p2.array_ = tmp;
+  }
+
+  // Release an array.
+  // The return value is the current pointer held by this object.
+  // If this object holds a NULL pointer, the return value is NULL.
+  // After this operation, this object will hold a NULL pointer,
+  // and will not own the object any more.
+  C* release() {
+    C* retVal = array_;
+    array_ = NULL;
+    return retVal;
+  }
+
+ private:
+  C* array_;
+
+  // Forbid comparison of different scoped_array types.
+  template <class C2> bool operator==(scoped_array<C2> const& p2) const;
+  template <class C2> bool operator!=(scoped_array<C2> const& p2) const;
+
+  // Disallow evil constructors
+  scoped_array(const scoped_array&);
+  void operator=(const scoped_array&);
+};
+
+// Free functions
+template <class C>
+void swap(scoped_array<C>& p1, scoped_array<C>& p2) {
+  p1.swap(p2);
+}
+
+template <class C>
+bool operator==(C* p1, const scoped_array<C>& p2) {
+  return p1 == p2.get();
+}
+
+template <class C>
+bool operator!=(C* p1, const scoped_array<C>& p2) {
+  return p1 != p2.get();
+}
+
+// This class wraps the c library function free() in a class that can be
+// passed as a template argument to scoped_ptr_malloc below.
+class ScopedPtrMallocFree {
+ public:
+  inline void operator()(void* x) const {
+    free(x);
+  }
+};
+
+// scoped_ptr_malloc<> is similar to scoped_ptr<>, but it accepts a
+// second template argument, the functor used to free the object.
+
+template<class C, class FreeProc = ScopedPtrMallocFree>
+class scoped_ptr_malloc {
+ public:
+
+  // The element type
+  typedef C element_type;
+
+  // Constructor.  Defaults to initializing with NULL.
+  // There is no way to create an uninitialized scoped_ptr.
+  // The input parameter must be allocated with an allocator that matches the
+  // Free functor.  For the default Free functor, this is malloc, calloc, or
+  // realloc.
+  explicit scoped_ptr_malloc(C* p = NULL): ptr_(p) {}
+
+  // Destructor.  If there is a C object, call the Free functor.
+  ~scoped_ptr_malloc() {
+    reset();
+  }
+
+  // Reset.  Calls the Free functor on the current owned object, if any.
+  // Then takes ownership of a new object, if given.
+  // this->reset(this->get()) works.
+  void reset(C* p = NULL) {
+    if (ptr_ != p) {
+      FreeProc free_proc;
+      free_proc(ptr_);
+      ptr_ = p;
+    }
+  }
+
+  // Get the current object.
+  // operator* and operator-> will cause an assert() failure if there is
+  // no current object.
+  C& operator*() const {
+    assert(ptr_ != NULL);
+    return *ptr_;
+  }
+
+  C* operator->() const {
+    assert(ptr_ != NULL);
+    return ptr_;
+  }
+
+  C* get() const {
+    return ptr_;
+  }
+
+  // Comparison operators.
+  // These return whether a scoped_ptr_malloc and a plain pointer refer
+  // to the same object, not just to two different but equal objects.
+  // For compatibility with the boost-derived implementation, these
+  // take non-const arguments.
+  bool operator==(C* p) const {
+    return ptr_ == p;
+  }
+
+  bool operator!=(C* p) const {
+    return ptr_ != p;
+  }
+
+  // Swap two scoped pointers.
+  void swap(scoped_ptr_malloc & b) {
+    C* tmp = b.ptr_;
+    b.ptr_ = ptr_;
+    ptr_ = tmp;
+  }
+
+  // Release a pointer.
+  // The return value is the current pointer held by this object.
+  // If this object holds a NULL pointer, the return value is NULL.
+  // After this operation, this object will hold a NULL pointer,
+  // and will not own the object any more.
+  C* release() {
+    C* tmp = ptr_;
+    ptr_ = NULL;
+    return tmp;
+  }
+
+ private:
+  C* ptr_;
+
+  // no reason to use these: each scoped_ptr_malloc should have its own object
+  template <class C2, class GP>
+  bool operator==(scoped_ptr_malloc<C2, GP> const& p) const;
+  template <class C2, class GP>
+  bool operator!=(scoped_ptr_malloc<C2, GP> const& p) const;
+
+  // Disallow evil constructors
+  scoped_ptr_malloc(const scoped_ptr_malloc&);
+  void operator=(const scoped_ptr_malloc&);
+};
+
+template<class C, class FP> inline
+void swap(scoped_ptr_malloc<C, FP>& a, scoped_ptr_malloc<C, FP>& b) {
+  a.swap(b);
+}
+
+template<class C, class FP> inline
+bool operator==(C* p, const scoped_ptr_malloc<C, FP>& b) {
+  return p == b.get();
+}
+
+template<class C, class FP> inline
+bool operator!=(C* p, const scoped_ptr_malloc<C, FP>& b) {
+  return p != b.get();
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_SCOPED_PTR_H_
diff --git a/src/common/simple_string_dictionary.cc b/src/common/simple_string_dictionary.cc
new file mode 100644
index 0000000..e0a74ce
--- /dev/null
+++ b/src/common/simple_string_dictionary.cc
@@ -0,0 +1,45 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/simple_string_dictionary.h"
+
+namespace google_breakpad {
+
+namespace {
+
+// In C++98 (ISO 14882), section 9.5.1 says that a union cannot have a member
+// with a non-trivial ctor, copy ctor, dtor, or assignment operator. Use this
+// property to ensure that Entry remains POD.
+union Compile_Assert {
+  NonAllocatingMap<1, 1, 1>::Entry Compile_Assert__entry_must_be_pod;
+};
+
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/simple_string_dictionary.h b/src/common/simple_string_dictionary.h
new file mode 100644
index 0000000..9484920
--- /dev/null
+++ b/src/common/simple_string_dictionary.h
@@ -0,0 +1,279 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_SIMPLE_STRING_DICTIONARY_H_
+#define COMMON_SIMPLE_STRING_DICTIONARY_H_
+
+#include <assert.h>
+#include <string.h>
+
+#include "common/basictypes.h"
+
+namespace google_breakpad {
+
+// Opaque type for the serialized representation of a NonAllocatingMap. One is
+// created in NonAllocatingMap::Serialize and can be deserialized using one of
+// the constructors.
+struct SerializedNonAllocatingMap;
+
+// NonAllocatingMap is an implementation of a map/dictionary collection that
+// uses a fixed amount of storage, so that it does not perform any dynamic
+// allocations for its operations.
+//
+// The actual map storage (the Entry) is guaranteed to be POD, so that it can
+// be transmitted over various IPC mechanisms.
+//
+// The template parameters control the amount of storage used for the key,
+// value, and map. The KeySize and ValueSize are measured in bytes, not glyphs,
+// and includes space for a \0 byte. This gives space for KeySize-1 and
+// ValueSize-1 characters in an entry. NumEntries is the total number of
+// entries that will fit in the map.
+template <size_t KeySize, size_t ValueSize, size_t NumEntries>
+class NonAllocatingMap {
+ public:
+  // Constant and publicly accessible versions of the template parameters.
+  static const size_t key_size = KeySize;
+  static const size_t value_size = ValueSize;
+  static const size_t num_entries = NumEntries;
+
+  // An Entry object is a single entry in the map. If the key is a 0-length
+  // NUL-terminated string, the entry is empty.
+  struct Entry {
+    char key[KeySize];
+    char value[ValueSize];
+
+    bool is_active() const {
+      return key[0] != '\0';
+    }
+  };
+
+  // An Iterator can be used to iterate over all the active entries in a
+  // NonAllocatingMap.
+  class Iterator {
+   public:
+    explicit Iterator(const NonAllocatingMap& map)
+        : map_(map),
+          current_(0) {
+    }
+
+    // Returns the next entry in the map, or NULL if at the end of the
+    // collection.
+    const Entry* Next() {
+      while (current_ < map_.num_entries) {
+        const Entry* entry = &map_.entries_[current_++];
+        if (entry->is_active()) {
+          return entry;
+        }
+      }
+      return NULL;
+    }
+
+   private:
+    const NonAllocatingMap& map_;
+    size_t current_;
+
+    DISALLOW_COPY_AND_ASSIGN(Iterator);
+  };
+
+  NonAllocatingMap() : entries_() {
+  }
+
+  NonAllocatingMap(const NonAllocatingMap& other) {
+    *this = other;
+  }
+
+  NonAllocatingMap& operator=(const NonAllocatingMap& other) {
+    assert(other.key_size == key_size);
+    assert(other.value_size == value_size);
+    assert(other.num_entries == num_entries);
+    if (other.key_size == key_size && other.value_size == value_size &&
+        other.num_entries == num_entries) {
+      memcpy(entries_, other.entries_, sizeof(entries_));
+    }
+    return *this;
+  }
+
+  // Constructs a map from its serialized form. |map| should be the out
+  // parameter from Serialize() and |size| should be its return value.
+  NonAllocatingMap(const SerializedNonAllocatingMap* map, size_t size) {
+    assert(size == sizeof(entries_));
+    if (size == sizeof(entries_)) {
+      memcpy(entries_, map, size);
+    }
+  }
+
+  // Returns the number of active key/value pairs. The upper limit for this
+  // is NumEntries.
+  size_t GetCount() const {
+    size_t count = 0;
+    for (size_t i = 0; i < num_entries; ++i) {
+      if (entries_[i].is_active()) {
+        ++count;
+      }
+    }
+    return count;
+  }
+
+  // Given |key|, returns its corresponding |value|. |key| must not be NULL. If
+  // the key is not found, NULL is returned.
+  const char* GetValueForKey(const char* key) const {
+    assert(key);
+    if (!key)
+      return NULL;
+
+    size_t index = GetEntryIndexForKey(key);
+    if (index == num_entries)
+      return NULL;
+
+    return entries_[index].value;
+  }
+
+  // Stores |value| into |key|, replacing the existing value if |key| is
+  // already present. |key| must not be NULL. If |value| is NULL, the key is
+  // removed from the map. If there is no more space in the map, then the
+  // operation silently fails. Returns an index into the map that can be used
+  // to quickly access the entry, or |num_entries| on failure or when clearing
+  // a key with a null value.
+  size_t SetKeyValue(const char* key, const char* value) {
+    if (!value) {
+      RemoveKey(key);
+      return num_entries;
+    }
+
+    assert(key);
+    if (!key)
+      return num_entries;
+
+    // Key must not be an empty string.
+    assert(key[0] != '\0');
+    if (key[0] == '\0')
+      return num_entries;
+
+    size_t entry_index = GetEntryIndexForKey(key);
+
+    // If it does not yet exist, attempt to insert it.
+    if (entry_index == num_entries) {
+      for (size_t i = 0; i < num_entries; ++i) {
+        if (!entries_[i].is_active()) {
+          entry_index = i;
+          Entry* entry = &entries_[i];
+
+          strncpy(entry->key, key, key_size);
+          entry->key[key_size - 1] = '\0';
+
+          break;
+        }
+      }
+    }
+
+    // If the map is out of space, entry will be NULL.
+    if (entry_index == num_entries)
+      return num_entries;
+
+#ifndef NDEBUG
+    // Sanity check that the key only appears once.
+    int count = 0;
+    for (size_t i = 0; i < num_entries; ++i) {
+      if (strncmp(entries_[i].key, key, key_size) == 0)
+        ++count;
+    }
+    assert(count == 1);
+#endif
+
+    strncpy(entries_[entry_index].value, value, value_size);
+    entries_[entry_index].value[value_size - 1] = '\0';
+
+    return entry_index;
+  }
+
+  // Sets a value for a key that has already been set with SetKeyValue(), using
+  // the index returned from that function.
+  void SetValueAtIndex(size_t index, const char* value) {
+    assert(index < num_entries);
+    if (index >= num_entries)
+      return;
+
+    Entry* entry = &entries_[index];
+    assert(entry->key[0] != '\0');
+
+    strncpy(entry->value, value, value_size);
+    entry->value[value_size - 1] = '\0';
+  }
+
+  // Given |key|, removes any associated value. |key| must not be NULL. If
+  // the key is not found, this is a noop. This invalidates the index
+  // returned by SetKeyValue().
+  bool RemoveKey(const char* key) {
+    assert(key);
+    if (!key)
+      return false;
+
+    return RemoveAtIndex(GetEntryIndexForKey(key));
+  }
+
+  // Removes a value and key using an index that was returned from
+  // SetKeyValue(). After a call to this function, the index is invalidated.
+  bool RemoveAtIndex(size_t index) {
+    if (index >= num_entries)
+      return false;
+
+    entries_[index].key[0] = '\0';
+    entries_[index].value[0] = '\0';
+    return true;
+  }
+
+  // Places a serialized version of the map into |map| and returns the size.
+  // Both of these should be passed to the deserializing constructor. Note that
+  // the serialized |map| is scoped to the lifetime of the non-serialized
+  // instance of this class. The |map| can be copied across IPC boundaries.
+  size_t Serialize(const SerializedNonAllocatingMap** map) const {
+    *map = reinterpret_cast<const SerializedNonAllocatingMap*>(entries_);
+    return sizeof(entries_);
+  }
+
+ private:
+  size_t GetEntryIndexForKey(const char* key) const {
+    for (size_t i = 0; i < num_entries; ++i) {
+      if (strncmp(key, entries_[i].key, key_size) == 0) {
+        return i;
+      }
+    }
+    return num_entries;
+  }
+
+  Entry entries_[NumEntries];
+};
+
+// For historical reasons this specialized version is available with the same
+// size factors as a previous implementation.
+typedef NonAllocatingMap<256, 256, 64> SimpleStringDictionary;
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_SIMPLE_STRING_DICTIONARY_H_
diff --git a/src/common/simple_string_dictionary_unittest.cc b/src/common/simple_string_dictionary_unittest.cc
new file mode 100644
index 0000000..e7b8fd7
--- /dev/null
+++ b/src/common/simple_string_dictionary_unittest.cc
@@ -0,0 +1,339 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "breakpad_googletest_includes.h"
+#include "common/simple_string_dictionary.h"
+
+namespace google_breakpad {
+
+TEST(NonAllocatingMapTest, Entry) {
+  typedef NonAllocatingMap<5, 9, 15> TestMap;
+  TestMap map;
+
+  const TestMap::Entry* entry = TestMap::Iterator(map).Next();
+  EXPECT_FALSE(entry);
+
+  // Try setting a key/value and then verify.
+  map.SetKeyValue("key1", "value1");
+  entry = TestMap::Iterator(map).Next();
+  ASSERT_TRUE(entry);
+  EXPECT_STREQ(entry->key, "key1");
+  EXPECT_STREQ(entry->value, "value1");
+
+  // Try setting a new value.
+  map.SetKeyValue("key1", "value3");
+  EXPECT_STREQ(entry->value, "value3");
+
+  // Make sure the key didn't change.
+  EXPECT_STREQ(entry->key, "key1");
+
+  // Clear the entry and verify the key and value are empty strings.
+  map.RemoveKey("key1");
+  EXPECT_FALSE(entry->is_active());
+  EXPECT_EQ(strlen(entry->key), 0u);
+  EXPECT_EQ(strlen(entry->value), 0u);
+}
+
+TEST(NonAllocatingMapTest, SimpleStringDictionary) {
+  // Make a new dictionary
+  SimpleStringDictionary dict;
+
+  // Set three distinct values on three keys
+  dict.SetKeyValue("key1", "value1");
+  dict.SetKeyValue("key2", "value2");
+  dict.SetKeyValue("key3", "value3");
+
+  EXPECT_NE(dict.GetValueForKey("key1"), "value1");
+  EXPECT_NE(dict.GetValueForKey("key2"), "value2");
+  EXPECT_NE(dict.GetValueForKey("key3"), "value3");
+  EXPECT_EQ(dict.GetCount(), 3u);
+  // try an unknown key
+  EXPECT_FALSE(dict.GetValueForKey("key4"));
+
+  // Remove a key
+  dict.RemoveKey("key3");
+
+  // Now make sure it's not there anymore
+  EXPECT_FALSE(dict.GetValueForKey("key3"));
+
+  // Remove by setting value to NULL
+  dict.SetKeyValue("key2", NULL);
+
+  // Now make sure it's not there anymore
+  EXPECT_FALSE(dict.GetValueForKey("key2"));
+}
+
+TEST(NonAllocatingMapTest, CopyAndAssign) {
+  NonAllocatingMap<10, 10, 10> map;
+  map.SetKeyValue("one", "a");
+  map.SetKeyValue("two", "b");
+  map.SetKeyValue("three", "c");
+  map.RemoveKey("two");
+  EXPECT_EQ(2u, map.GetCount());
+
+  // Test copy.
+  NonAllocatingMap<10, 10, 10> map_copy(map);
+  EXPECT_EQ(2u, map_copy.GetCount());
+  EXPECT_STREQ("a", map_copy.GetValueForKey("one"));
+  EXPECT_STREQ("c", map_copy.GetValueForKey("three"));
+  map_copy.SetKeyValue("four", "d");
+  EXPECT_STREQ("d", map_copy.GetValueForKey("four"));
+  EXPECT_FALSE(map.GetValueForKey("four"));
+
+  // Test assign.
+  NonAllocatingMap<10, 10, 10> map_assign;
+  map_assign = map;
+  EXPECT_EQ(2u, map_assign.GetCount());
+  EXPECT_STREQ("a", map_assign.GetValueForKey("one"));
+  EXPECT_STREQ("c", map_assign.GetValueForKey("three"));
+  map_assign.SetKeyValue("four", "d");
+  EXPECT_STREQ("d", map_assign.GetValueForKey("four"));
+  EXPECT_FALSE(map.GetValueForKey("four"));
+
+  map.RemoveKey("one");
+  EXPECT_FALSE(map.GetValueForKey("one"));
+  EXPECT_STREQ("a", map_copy.GetValueForKey("one"));
+  EXPECT_STREQ("a", map_assign.GetValueForKey("one"));
+}
+
+// Add a bunch of values to the dictionary, remove some entries in the middle,
+// and then add more.
+TEST(NonAllocatingMapTest, Iterator) {
+  SimpleStringDictionary* dict = new SimpleStringDictionary();
+  ASSERT_TRUE(dict);
+
+  char key[SimpleStringDictionary::key_size];
+  char value[SimpleStringDictionary::value_size];
+
+  const int kDictionaryCapacity = SimpleStringDictionary::num_entries;
+  const int kPartitionIndex = kDictionaryCapacity - 5;
+
+  // We assume at least this size in the tests below
+  ASSERT_GE(kDictionaryCapacity, 64);
+
+  // We'll keep track of the number of key/value pairs we think should
+  // be in the dictionary
+  int expectedDictionarySize = 0;
+
+  // Set a bunch of key/value pairs like key0/value0, key1/value1, ...
+  for (int i = 0; i < kPartitionIndex; ++i) {
+    sprintf(key, "key%d", i);
+    sprintf(value, "value%d", i);
+    dict->SetKeyValue(key, value);
+  }
+  expectedDictionarySize = kPartitionIndex;
+
+  // set a couple of the keys twice (with the same value) - should be nop
+  dict->SetKeyValue("key2", "value2");
+  dict->SetKeyValue("key4", "value4");
+  dict->SetKeyValue("key15", "value15");
+
+  // Remove some random elements in the middle
+  dict->RemoveKey("key7");
+  dict->RemoveKey("key18");
+  dict->RemoveKey("key23");
+  dict->RemoveKey("key31");
+  expectedDictionarySize -= 4;  // we just removed four key/value pairs
+
+  // Set some more key/value pairs like key59/value59, key60/value60, ...
+  for (int i = kPartitionIndex; i < kDictionaryCapacity; ++i) {
+    sprintf(key, "key%d", i);
+    sprintf(value, "value%d", i);
+    dict->SetKeyValue(key, value);
+  }
+  expectedDictionarySize += kDictionaryCapacity - kPartitionIndex;
+
+  // Now create an iterator on the dictionary
+  SimpleStringDictionary::Iterator iter(*dict);
+
+  // We then verify that it iterates through exactly the number of
+  // key/value pairs we expect, and that they match one-for-one with what we
+  // would expect.  The ordering of the iteration does not matter...
+
+  // used to keep track of number of occurrences found for key/value pairs
+  int count[kDictionaryCapacity];
+  memset(count, 0, sizeof(count));
+
+  int totalCount = 0;
+
+  const SimpleStringDictionary::Entry* entry;
+  while ((entry = iter.Next())) {
+    totalCount++;
+
+    // Extract keyNumber from a string of the form key<keyNumber>
+    int keyNumber;
+    sscanf(entry->key, "key%d", &keyNumber);
+
+    // Extract valueNumber from a string of the form value<valueNumber>
+    int valueNumber;
+    sscanf(entry->value, "value%d", &valueNumber);
+
+    // The value number should equal the key number since that's how we set them
+    EXPECT_EQ(keyNumber, valueNumber);
+
+    // Key and value numbers should be in proper range:
+    // 0 <= keyNumber < kDictionaryCapacity
+    bool isKeyInGoodRange =
+      (keyNumber >= 0 && keyNumber < kDictionaryCapacity);
+    bool isValueInGoodRange =
+      (valueNumber >= 0 && valueNumber < kDictionaryCapacity);
+    EXPECT_TRUE(isKeyInGoodRange);
+    EXPECT_TRUE(isValueInGoodRange);
+
+    if (isKeyInGoodRange && isValueInGoodRange) {
+      ++count[keyNumber];
+    }
+  }
+
+  // Make sure each of the key/value pairs showed up exactly one time, except
+  // for the ones which we removed.
+  for (size_t i = 0; i < kDictionaryCapacity; ++i) {
+    // Skip over key7, key18, key23, and key31, since we removed them
+    if (!(i == 7 || i == 18 || i == 23 || i == 31)) {
+      EXPECT_EQ(count[i], 1);
+    }
+  }
+
+  // Make sure the number of iterations matches the expected dictionary size.
+  EXPECT_EQ(totalCount, expectedDictionarySize);
+}
+
+
+TEST(NonAllocatingMapTest, AddRemove) {
+  NonAllocatingMap<5, 7, 6> map;
+  map.SetKeyValue("rob", "ert");
+  map.SetKeyValue("mike", "pink");
+  map.SetKeyValue("mark", "allays");
+
+  EXPECT_EQ(3u, map.GetCount());
+  EXPECT_STREQ("ert", map.GetValueForKey("rob"));
+  EXPECT_STREQ("pink", map.GetValueForKey("mike"));
+  EXPECT_STREQ("allays", map.GetValueForKey("mark"));
+
+  map.RemoveKey("mike");
+
+  EXPECT_EQ(2u, map.GetCount());
+  EXPECT_FALSE(map.GetValueForKey("mike"));
+
+  map.SetKeyValue("mark", "mal");
+  EXPECT_EQ(2u, map.GetCount());
+  EXPECT_STREQ("mal", map.GetValueForKey("mark"));
+
+  map.RemoveKey("mark");
+  EXPECT_EQ(1u, map.GetCount());
+  EXPECT_FALSE(map.GetValueForKey("mark"));
+}
+
+TEST(NonAllocatingMapTest, Serialize) {
+  typedef NonAllocatingMap<4, 5, 7> TestMap;
+  TestMap map;
+  map.SetKeyValue("one", "abc");
+  map.SetKeyValue("two", "def");
+  map.SetKeyValue("tre", "hig");
+
+  EXPECT_STREQ("abc", map.GetValueForKey("one"));
+  EXPECT_STREQ("def", map.GetValueForKey("two"));
+  EXPECT_STREQ("hig", map.GetValueForKey("tre"));
+
+  const SerializedNonAllocatingMap* serialized;
+  size_t size = map.Serialize(&serialized);
+
+  SerializedNonAllocatingMap* serialized_copy =
+      reinterpret_cast<SerializedNonAllocatingMap*>(malloc(size));
+  ASSERT_TRUE(serialized_copy);
+  memcpy(serialized_copy, serialized, size);
+
+  TestMap deserialized(serialized_copy, size);
+  free(serialized_copy);
+
+  EXPECT_EQ(3u, deserialized.GetCount());
+  EXPECT_STREQ("abc", deserialized.GetValueForKey("one"));
+  EXPECT_STREQ("def", deserialized.GetValueForKey("two"));
+  EXPECT_STREQ("hig", deserialized.GetValueForKey("tre"));
+}
+
+// Running out of space shouldn't crash.
+TEST(NonAllocatingMapTest, OutOfSpace) {
+  NonAllocatingMap<3, 2, 2> map;
+  map.SetKeyValue("a", "1");
+  map.SetKeyValue("b", "2");
+  map.SetKeyValue("c", "3");
+  EXPECT_EQ(2u, map.GetCount());
+  EXPECT_FALSE(map.GetValueForKey("c"));
+}
+
+TEST(NonAllocatingMapTest, ByIndex) {
+  NonAllocatingMap<10, 10, 3> map;
+
+  size_t index1 = map.SetKeyValue("test", "one");
+  EXPECT_TRUE(index1 >= 0 && index1 <= map.num_entries);
+
+  size_t index2 = map.SetKeyValue("moo", "foo");
+  EXPECT_TRUE(index2 >= 0 && index2 <= map.num_entries);
+  EXPECT_NE(index1, index2);
+
+  size_t index3 = map.SetKeyValue("blob", "kebab");
+  EXPECT_TRUE(index3 >= 0 && index3 <= map.num_entries);
+  EXPECT_NE(index2, index3);
+
+  size_t index4 = map.SetKeyValue("nogo", "full");
+  EXPECT_TRUE(index4 == map.num_entries);
+
+  EXPECT_STREQ("one", map.GetValueForKey("test"));
+  EXPECT_STREQ("foo", map.GetValueForKey("moo"));
+  EXPECT_STREQ("kebab", map.GetValueForKey("blob"));
+
+  map.SetValueAtIndex(index2, "booo");
+  EXPECT_STREQ("booo", map.GetValueForKey("moo"));
+
+  EXPECT_TRUE(map.RemoveAtIndex(index1));
+  EXPECT_FALSE(map.GetValueForKey("test"));
+
+  EXPECT_FALSE(map.RemoveAtIndex(map.num_entries));
+  EXPECT_FALSE(map.RemoveAtIndex(9999));
+}
+
+#ifndef NDEBUG
+
+TEST(NonAllocatingMapTest, NullKey) {
+  NonAllocatingMap<4, 6, 6> map;
+  ASSERT_DEATH(map.SetKeyValue(NULL, "hello"), "");
+
+  map.SetKeyValue("hi", "there");
+  ASSERT_DEATH(map.GetValueForKey(NULL), "");
+  EXPECT_STREQ("there", map.GetValueForKey("hi"));
+
+  ASSERT_DEATH(map.GetValueForKey(NULL), "");
+  map.RemoveKey("hi");
+  EXPECT_EQ(0u, map.GetCount());
+}
+
+#endif  // !NDEBUG
+
+}  // namespace google_breakpad
diff --git a/src/common/solaris/dump_symbols.cc b/src/common/solaris/dump_symbols.cc
new file mode 100644
index 0000000..9524a18
--- /dev/null
+++ b/src/common/solaris/dump_symbols.cc
@@ -0,0 +1,680 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <demangle.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <link.h>
+#include <sys/mman.h>
+#include <stab.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <functional>
+#include <map>
+#include <vector>
+
+#include "common/scoped_ptr.h"
+#include "common/solaris/dump_symbols.h"
+#include "common/solaris/file_id.h"
+#include "common/solaris/guid_creator.h"
+
+// This namespace contains helper functions.
+namespace {
+
+using std::make_pair;
+
+#if defined(_LP64)
+typedef Elf64_Sym   Elf_Sym;
+#else
+typedef Elf32_Sym   Elf_Sym;
+#endif
+
+// Symbol table entry from stabs. Sun CC specific.
+struct slist {
+  // String table index.
+  unsigned int n_strx;
+  // Stab type. 
+  unsigned char n_type;
+  char n_other;
+  short n_desc;
+  unsigned long n_value;
+};
+
+// Symbol table entry
+struct SymbolEntry {
+  // Offset from the start of the file.
+  GElf_Addr offset;
+  // Function size.
+  GElf_Word size;
+};
+
+// Infomation of a line.
+struct LineInfo {
+  // Offset from start of the function.
+  // Load from stab symbol.
+  GElf_Off rva_to_func;
+  // Offset from base of the loading binary.
+  GElf_Off rva_to_base;
+  // Size of the line.
+  // The first line: equals to rva_to_func.
+  // The other lines: the difference of rva_to_func of the line and
+  // rva_to_func of the previous N_SLINE.
+  uint32_t size;
+  // Line number.
+  uint32_t line_num;
+};
+
+// Information of a function.
+struct FuncInfo {
+  // Name of the function.
+  const char* name;
+  // Offset from the base of the loading address.
+  GElf_Off rva_to_base;
+  // Virtual address of the function.
+  // Load from stab symbol.
+  GElf_Addr addr;
+  // Size of the function.
+  // Equal to rva_to_func of the last function line.
+  uint32_t size;
+  // Total size of stack parameters.
+  uint32_t stack_param_size;
+  // Line information array.
+  std::vector<struct LineInfo> line_info;
+};
+
+// Information of a source file.
+struct SourceFileInfo {
+  // Name of the source file.
+  const char* name;
+  // Starting address of the source file.
+  GElf_Addr addr;
+  // Id of the source file.
+  int source_id;
+  // Functions information.
+  std::vector<struct FuncInfo> func_info;
+};
+
+struct CompareString {
+  bool operator()(const char* s1, const char* s2) const {
+    return strcmp(s1, s2) < 0;
+  }
+};
+
+typedef std::map<const char*, struct SymbolEntry*, CompareString> SymbolMap;
+
+// Information of a symbol table.
+// This is the root of all types of symbol.
+struct SymbolInfo {
+  std::vector<struct SourceFileInfo> source_file_info;
+  // Symbols information.
+  SymbolMap symbol_entries;
+};
+
+// Stab section name.
+const char* kStabName = ".stab";
+
+// Stab str section name.
+const char* kStabStrName = ".stabstr";
+
+// Symtab section name.
+const char* kSymtabName = ".symtab";
+
+// Strtab section name.
+const char* kStrtabName = ".strtab";
+
+// Default buffer lenght for demangle.
+const int demangleLen = 20000;
+
+// Offset to the string table.
+uint64_t stringOffset = 0;
+
+// Update the offset to the start of the string index of the next
+// object module for every N_ENDM stabs.
+inline void RecalculateOffset(struct slist* cur_list, char* stabstr) {
+  while ((--cur_list)->n_strx == 0) ;
+  stringOffset += cur_list->n_strx;
+
+  char* temp = stabstr + stringOffset;
+  while (*temp != '\0') {
+    ++stringOffset;
+    ++temp;
+  }
+  // Skip the extra '\0'
+  ++stringOffset;
+}
+
+// Demangle using demangle library on Solaris.
+std::string Demangle(const char* mangled) {
+  int status = 0;
+  std::string str(mangled);
+  char* demangled = (char*)malloc(demangleLen);
+
+  if (!demangled) {
+    fprintf(stderr, "no enough memory.\n");
+    goto out;
+  }
+
+  if ((status = cplus_demangle(mangled, demangled, demangleLen)) ==
+      DEMANGLE_ESPACE) {
+    fprintf(stderr, "incorrect demangle.\n");
+    goto out;
+  }
+
+  str = demangled;
+  free(demangled);
+
+out:
+  return str; 
+}
+
+bool WriteFormat(int fd, const char* fmt, ...) {
+  va_list list;
+  char buffer[4096];
+  ssize_t expected, written;
+  va_start(list, fmt);
+  vsnprintf(buffer, sizeof(buffer), fmt, list);
+  expected = strlen(buffer);
+  written = write(fd, buffer, strlen(buffer));
+  va_end(list);
+  return expected == written;
+}
+
+bool IsValidElf(const GElf_Ehdr* elf_header) {
+  return memcmp(elf_header, ELFMAG, SELFMAG) == 0;
+}
+
+static bool FindSectionByName(Elf* elf, const char* name,
+                              int shstrndx,
+                              GElf_Shdr* shdr) {
+  assert(name != NULL);
+
+  if (strlen(name) == 0)
+    return false;
+
+  Elf_Scn* scn = NULL;
+
+  while ((scn = elf_nextscn(elf, scn)) != NULL) {
+    if (gelf_getshdr(scn, shdr) == (GElf_Shdr*)0) {
+      fprintf(stderr, "failed to read section header: %s\n", elf_errmsg(0));
+      return false;
+    }
+
+    const char* section_name = elf_strptr(elf, shstrndx, shdr->sh_name);
+    if (!section_name) {
+      fprintf(stderr, "Section name error: %s\n", elf_errmsg(-1));
+      continue;
+    }
+
+    if (strcmp(section_name, name) == 0)
+      return true;
+  }
+
+  return false;
+}
+
+// The parameter size is used for FPO-optimized code, and
+// this is all tied up with the debugging data for Windows x86.
+// Set it to 0 on Solaris.
+int LoadStackParamSize(struct slist* list,
+                       struct slist* list_end,
+                       struct FuncInfo* func_info) {
+  struct slist* cur_list = list;
+  int step = 1;
+  while (cur_list < list_end && cur_list->n_type == N_PSYM) {
+    ++cur_list;
+    ++step;
+  }
+
+  func_info->stack_param_size = 0;
+  return step;
+}
+
+int LoadLineInfo(struct slist* list,
+                 struct slist* list_end,
+                 struct FuncInfo* func_info) {
+  struct slist* cur_list = list;
+  do {
+    // Skip non line information.
+    while (cur_list < list_end && cur_list->n_type != N_SLINE) {
+      // Only exit when got another function, or source file, or end stab.
+      if (cur_list->n_type == N_FUN || cur_list->n_type == N_SO ||
+          cur_list->n_type == N_ENDM) {
+        return cur_list - list;
+      }
+      ++cur_list;
+    }
+    struct LineInfo line;
+    while (cur_list < list_end && cur_list->n_type == N_SLINE) {
+      line.rva_to_func = cur_list->n_value;
+      // n_desc is a signed short
+      line.line_num = (unsigned short)cur_list->n_desc;
+      func_info->line_info.push_back(line);
+      ++cur_list;
+    }
+    if (cur_list == list_end && cur_list->n_type == N_ENDM)
+      break;
+  } while (list < list_end);
+
+  return cur_list - list;
+}
+
+int LoadFuncSymbols(struct slist* list,
+                    struct slist* list_end,
+                    char* stabstr,
+                    GElf_Word base,
+                    struct SourceFileInfo* source_file_info) {
+  struct slist* cur_list = list;
+  assert(cur_list->n_type == N_SO);
+  ++cur_list;
+
+  source_file_info->func_info.clear();
+  while (cur_list < list_end) {
+    // Go until the function symbol.
+    while (cur_list < list_end && cur_list->n_type != N_FUN) {
+      if (cur_list->n_type == N_SO) {
+        return cur_list - list;
+      }
+      ++cur_list;
+      if (cur_list->n_type == N_ENDM)
+        RecalculateOffset(cur_list, stabstr);
+      continue;
+    }
+    while (cur_list->n_type == N_FUN) {
+      struct FuncInfo func_info;
+      memset(&func_info, 0, sizeof(func_info));
+      func_info.name = stabstr + cur_list->n_strx + stringOffset;
+      // The n_value field is always 0 from stab generated by Sun CC.
+      // TODO(Alfred): Find the correct value.
+      func_info.addr = cur_list->n_value;
+      ++cur_list;
+      if (cur_list->n_type == N_ENDM)
+        RecalculateOffset(cur_list, stabstr);
+      if (cur_list->n_type != N_ESYM && cur_list->n_type != N_ISYM &&
+          cur_list->n_type != N_FUN) {
+        // Stack parameter size.
+        cur_list += LoadStackParamSize(cur_list, list_end, &func_info);
+        // Line info.
+        cur_list += LoadLineInfo(cur_list, list_end, &func_info);
+      }
+      if (cur_list < list_end && cur_list->n_type == N_ENDM)
+        RecalculateOffset(cur_list, stabstr);
+      // Functions in this module should have address bigger than the module
+      // starting address.
+      //
+      // These two values are always 0 with Sun CC.
+      // TODO(Alfred): Get the correct value or remove the condition statement.
+      if (func_info.addr >= source_file_info->addr) {
+        source_file_info->func_info.push_back(func_info);
+      }
+    }
+  }
+  return cur_list - list;
+}
+
+// Compute size and rva information based on symbols loaded from stab section.
+bool ComputeSizeAndRVA(struct SymbolInfo* symbols) {
+  std::vector<struct SourceFileInfo>* sorted_files =
+    &(symbols->source_file_info);
+  SymbolMap* symbol_entries = &(symbols->symbol_entries);
+  for (size_t i = 0; i < sorted_files->size(); ++i) {
+    struct SourceFileInfo& source_file = (*sorted_files)[i];
+    std::vector<struct FuncInfo>* sorted_functions = &(source_file.func_info);
+    int func_size = sorted_functions->size();
+
+    for (size_t j = 0; j < func_size; ++j) {
+      struct FuncInfo& func_info = (*sorted_functions)[j];
+      int line_count = func_info.line_info.size();
+
+      // Discard the ending part of the name.
+      std::string func_name(func_info.name);
+      std::string::size_type last_colon = func_name.find_first_of(':');
+      if (last_colon != std::string::npos)
+        func_name = func_name.substr(0, last_colon);
+
+      // Fine the symbol offset from the loading address and size by name.
+      SymbolMap::const_iterator it = symbol_entries->find(func_name.c_str());
+      if (it->second) {
+        func_info.rva_to_base = it->second->offset;
+        func_info.size = (line_count == 0) ? 0 : it->second->size;
+      } else {
+        func_info.rva_to_base = 0;
+        func_info.size = 0;
+      }
+
+      // Compute function and line size.
+      for (size_t k = 0; k < line_count; ++k) {
+        struct LineInfo& line_info = func_info.line_info[k];
+
+        line_info.rva_to_base = line_info.rva_to_func + func_info.rva_to_base;
+        if (k == line_count - 1) {
+          line_info.size = func_info.size - line_info.rva_to_func;
+        } else {
+          struct LineInfo& next_line = func_info.line_info[k + 1];
+          line_info.size = next_line.rva_to_func - line_info.rva_to_func;
+        }
+      }  // for each line.
+    }  // for each function.
+  }  // for each source file.
+  for (SymbolMap::iterator it = symbol_entries->begin();
+       it != symbol_entries->end(); ++it) {
+    free(it->second);
+  }
+  return true;
+}
+
+bool LoadAllSymbols(const GElf_Shdr* stab_section,
+                    const GElf_Shdr* stabstr_section,
+                    GElf_Word base,
+                    struct SymbolInfo* symbols) {
+  if (stab_section == NULL || stabstr_section == NULL)
+    return false;
+
+  char* stabstr = reinterpret_cast<char*>(stabstr_section->sh_offset + base);
+  struct slist* lists =
+    reinterpret_cast<struct slist*>(stab_section->sh_offset + base);
+  int nstab = stab_section->sh_size / sizeof(struct slist);
+  int source_id = 0;
+
+  // First pass, load all symbols from the object file.
+  for (int i = 0; i < nstab; ) {
+    int step = 1;
+    struct slist* cur_list = lists + i;
+    if (cur_list->n_type == N_SO) {
+      // FUNC <address> <size> <param_stack_size> <function>
+      struct SourceFileInfo source_file_info;
+      source_file_info.name = stabstr + cur_list->n_strx + stringOffset;
+      // The n_value field is always 0 from stab generated by Sun CC.
+      // TODO(Alfred): Find the correct value.
+      source_file_info.addr = cur_list->n_value;
+      if (strchr(source_file_info.name, '.'))
+        source_file_info.source_id = source_id++;
+      else
+        source_file_info.source_id = -1;
+      step = LoadFuncSymbols(cur_list, lists + nstab - 1, stabstr,
+                             base, &source_file_info);
+      symbols->source_file_info.push_back(source_file_info);
+    }
+    i += step;
+  }
+  // Second pass, compute the size of functions and lines.
+  return ComputeSizeAndRVA(symbols);
+}
+
+bool LoadSymbols(Elf* elf, GElf_Ehdr* elf_header, struct SymbolInfo* symbols,
+                 void* obj_base) {
+  GElf_Word base = reinterpret_cast<GElf_Word>(obj_base);
+
+  const GElf_Shdr* sections =
+    reinterpret_cast<GElf_Shdr*>(elf_header->e_shoff + base);
+  GElf_Shdr stab_section;
+  if (!FindSectionByName(elf, kStabName, elf_header->e_shstrndx,
+                         &stab_section)) {
+    fprintf(stderr, "Stab section not found.\n");
+    return false;
+  }
+  GElf_Shdr stabstr_section;
+  if (!FindSectionByName(elf, kStabStrName, elf_header->e_shstrndx,
+                         &stabstr_section)) {
+    fprintf(stderr, "Stabstr section not found.\n");
+    return false;
+  }
+  GElf_Shdr symtab_section;
+  if (!FindSectionByName(elf, kSymtabName, elf_header->e_shstrndx,
+                         &symtab_section)) {
+    fprintf(stderr, "Symtab section not found.\n");
+    return false;
+  }
+  GElf_Shdr strtab_section;
+  if (!FindSectionByName(elf, kStrtabName, elf_header->e_shstrndx,
+                         &strtab_section)) {
+    fprintf(stderr, "Strtab section not found.\n");
+    return false;
+  }
+
+  Elf_Sym* symbol = (Elf_Sym*)((char*)base + symtab_section.sh_offset);
+  for (int i = 0; i < symtab_section.sh_size/symtab_section.sh_entsize; ++i) {
+    struct SymbolEntry* symbol_entry =
+        (struct SymbolEntry*)malloc(sizeof(struct SymbolEntry));
+    const char* name = reinterpret_cast<char*>(
+        strtab_section.sh_offset + (GElf_Word)base + symbol->st_name);
+    symbol_entry->offset = symbol->st_value;
+    symbol_entry->size = symbol->st_size;
+    symbols->symbol_entries.insert(make_pair(name, symbol_entry));
+    ++symbol;
+  }
+
+
+  // Load symbols.
+  return LoadAllSymbols(&stab_section, &stabstr_section, base, symbols);
+}
+
+bool WriteModuleInfo(int fd, GElf_Half arch, const std::string& obj_file) {
+  const char* arch_name = NULL;
+  if (arch == EM_386)
+    arch_name = "x86";
+  else if (arch == EM_X86_64)
+    arch_name = "x86_64";
+  else if (arch == EM_SPARC32PLUS)
+    arch_name = "SPARC_32+";
+  else {
+    printf("Please add more ARCH support\n");
+    return false;
+  }
+
+  unsigned char identifier[16];
+  google_breakpad::FileID file_id(obj_file.c_str());
+  if (file_id.ElfFileIdentifier(identifier)) {
+    char identifier_str[40];
+    file_id.ConvertIdentifierToString(identifier,
+                                      identifier_str, sizeof(identifier_str));
+    std::string filename = obj_file;
+    size_t slash_pos = obj_file.find_last_of("/");
+    if (slash_pos != std::string::npos)
+      filename = obj_file.substr(slash_pos + 1);
+    return WriteFormat(fd, "MODULE solaris %s %s %s\n", arch_name,
+                       identifier_str, filename.c_str());
+  }
+  return false;
+}
+
+bool WriteSourceFileInfo(int fd, const struct SymbolInfo& symbols) {
+  for (size_t i = 0; i < symbols.source_file_info.size(); ++i) {
+    if (symbols.source_file_info[i].source_id != -1) {
+      const char* name = symbols.source_file_info[i].name;
+      if (!WriteFormat(fd, "FILE %d %s\n",
+                       symbols.source_file_info[i].source_id, name))
+        return false;
+    }
+  }
+  return true;
+}
+
+bool WriteOneFunction(int fd, int source_id,
+                      const struct FuncInfo& func_info){
+  // Discard the ending part of the name.
+  std::string func_name(func_info.name);
+  std::string::size_type last_colon = func_name.find_last_of(':');
+  if (last_colon != std::string::npos)
+    func_name = func_name.substr(0, last_colon);
+  func_name = Demangle(func_name.c_str());
+
+  if (func_info.size <= 0)
+    return true;
+
+  // rva_to_base could be unsigned long(32 bit) or unsigned long long(64 bit).
+  if (WriteFormat(fd, "FUNC %llx %x %d %s\n",
+                  (long long)func_info.rva_to_base,
+                  func_info.size,
+                  func_info.stack_param_size,
+                  func_name.c_str())) {
+    for (size_t i = 0; i < func_info.line_info.size(); ++i) {
+      const struct LineInfo& line_info = func_info.line_info[i];
+      if (line_info.line_num == 0)
+        return true;
+      if (!WriteFormat(fd, "%llx %x %d %d\n",
+                       (long long)line_info.rva_to_base,
+                       line_info.size,
+                       line_info.line_num,
+                       source_id))
+        return false;
+    }
+    return true;
+  }
+  return false;
+}
+
+bool WriteFunctionInfo(int fd, const struct SymbolInfo& symbols) {
+  for (size_t i = 0; i < symbols.source_file_info.size(); ++i) {
+    const struct SourceFileInfo& file_info = symbols.source_file_info[i];
+    for (size_t j = 0; j < file_info.func_info.size(); ++j) {
+      const struct FuncInfo& func_info = file_info.func_info[j];
+      if (!WriteOneFunction(fd, file_info.source_id, func_info))
+        return false;
+    }
+  }
+  return true;
+}
+
+bool DumpStabSymbols(int fd, const struct SymbolInfo& symbols) {
+  return WriteSourceFileInfo(fd, symbols) &&
+    WriteFunctionInfo(fd, symbols);
+}
+
+//
+// FDWrapper
+//
+// Wrapper class to make sure opened file is closed.
+//
+class FDWrapper {
+ public:
+  explicit FDWrapper(int fd) :
+    fd_(fd) {
+    }
+  ~FDWrapper() {
+    if (fd_ != -1)
+      close(fd_);
+  }
+  int get() {
+    return fd_;
+  }
+  int release() {
+    int fd = fd_;
+    fd_ = -1;
+    return fd;
+  }
+ private:
+  int fd_;
+};
+
+//
+// MmapWrapper
+//
+// Wrapper class to make sure mapped regions are unmapped.
+//
+class MmapWrapper {
+ public:
+  MmapWrapper(void* mapped_address, size_t mapped_size) :
+    base_(mapped_address), size_(mapped_size) {
+  }
+  ~MmapWrapper() {
+    if (base_ != NULL) {
+      assert(size_ > 0);
+      munmap((char*)base_, size_);
+    }
+  }
+  void release() {
+    base_ = NULL;
+    size_ = 0;
+  }
+
+ private:
+  void* base_;
+  size_t size_;
+};
+
+}  // namespace
+
+namespace google_breakpad {
+
+class AutoElfEnder {
+ public:
+  AutoElfEnder(Elf* elf) : elf_(elf) {}
+  ~AutoElfEnder() { if (elf_) elf_end(elf_); }
+ private:
+  Elf* elf_;
+};
+
+
+bool DumpSymbols::WriteSymbolFile(const std::string& obj_file, int sym_fd) {
+  if (elf_version(EV_CURRENT) == EV_NONE) {
+    fprintf(stderr, "elf_version() failed: %s\n", elf_errmsg(0));
+    return false;
+  }
+
+  int obj_fd = open(obj_file.c_str(), O_RDONLY);
+  if (obj_fd < 0)
+    return false;
+  FDWrapper obj_fd_wrapper(obj_fd);
+  struct stat st;
+  if (fstat(obj_fd, &st) != 0 && st.st_size <= 0)
+    return false;
+  void* obj_base = mmap(NULL, st.st_size,
+                        PROT_READ, MAP_PRIVATE, obj_fd, 0);
+  if (obj_base == MAP_FAILED)
+    return false;
+  MmapWrapper map_wrapper(obj_base, st.st_size);
+  GElf_Ehdr elf_header;
+  Elf* elf = elf_begin(obj_fd, ELF_C_READ, NULL);
+  AutoElfEnder elfEnder(elf);
+
+  if (gelf_getehdr(elf, &elf_header) == (GElf_Ehdr*)NULL) {
+    fprintf(stderr, "failed to read elf header: %s\n", elf_errmsg(-1));
+    return false;
+  }
+
+  if (!IsValidElf(&elf_header)) {
+    fprintf(stderr, "header magic doesn't match\n");
+    return false;
+  }
+  struct SymbolInfo symbols;
+  if (!LoadSymbols(elf, &elf_header, &symbols, obj_base))
+    return false;
+  // Write to symbol file.
+  if (WriteModuleInfo(sym_fd, elf_header.e_machine, obj_file) &&
+      DumpStabSymbols(sym_fd, symbols))
+    return true;
+
+  return false;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/solaris/dump_symbols.h b/src/common/solaris/dump_symbols.h
new file mode 100644
index 0000000..3bca8a2
--- /dev/null
+++ b/src/common/solaris/dump_symbols.h
@@ -0,0 +1,49 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// dump_symbols.cc: Implements a Solaris stab debugging format dumper.
+//
+// Author: Alfred Peng
+
+#ifndef COMMON_SOLARIS_DUMP_SYMBOLS_H__
+#define COMMON_SOLARIS_DUMP_SYMBOLS_H__
+
+#include <string>
+
+namespace google_breakpad {
+
+class DumpSymbols {
+ public:
+  bool WriteSymbolFile(const std::string& obj_file,
+                       int sym_fd);
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_SOLARIS_DUMP_SYMBOLS_H__
diff --git a/src/common/solaris/file_id.cc b/src/common/solaris/file_id.cc
new file mode 100644
index 0000000..c32c73b
--- /dev/null
+++ b/src/common/solaris/file_id.cc
@@ -0,0 +1,197 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_id.cc: Return a unique identifier for a file
+//
+// See file_id.h for documentation
+//
+// Author: Alfred Peng
+
+#include <elf.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <sys/mman.h>
+#include <sys/ksyms.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <cassert>
+#include <cstdio>
+
+#include "common/md5.h"
+#include "common/solaris/file_id.h"
+#include "common/solaris/message_output.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+class AutoElfEnder {
+ public:
+  AutoElfEnder(Elf* elf) : elf_(elf) {}
+  ~AutoElfEnder() { if (elf_) elf_end(elf_); }
+ private:
+  Elf* elf_;
+};
+
+// Find the text section in elf object file.
+// Return the section start address and the size.
+static bool FindElfTextSection(int fd, const void* elf_base,
+                               const void** text_start,
+                               int* text_size) {
+  assert(text_start);
+  assert(text_size);
+
+  *text_start = NULL;
+  *text_size = 0;
+
+  if (elf_version(EV_CURRENT) == EV_NONE) {
+    print_message2(2, "elf_version() failed: %s\n", elf_errmsg(0));
+    return false;
+  }
+
+  GElf_Ehdr elf_header;
+  lseek(fd, 0L, 0);
+  Elf* elf = elf_begin(fd, ELF_C_READ, NULL);
+  AutoElfEnder elfEnder(elf);
+
+  if (gelf_getehdr(elf, &elf_header) == (GElf_Ehdr*)NULL) {
+    print_message2(2, "failed to read elf header: %s\n", elf_errmsg(-1));
+    return false;
+  }
+
+  if (elf_header.e_ident[EI_MAG0] != ELFMAG0 ||
+      elf_header.e_ident[EI_MAG1] != ELFMAG1 ||
+      elf_header.e_ident[EI_MAG2] != ELFMAG2 ||
+      elf_header.e_ident[EI_MAG3] != ELFMAG3) {
+    print_message1(2, "header magic doesn't match\n");
+    return false;
+  }
+
+  static const char kTextSectionName[] = ".text";
+  const GElf_Shdr* text_section = NULL;
+  Elf_Scn* scn = NULL;
+  GElf_Shdr shdr;
+
+  while ((scn = elf_nextscn(elf, scn)) != NULL) {
+    if (gelf_getshdr(scn, &shdr) == (GElf_Shdr*)0) {
+      print_message2(2, "failed to read section header: %s\n", elf_errmsg(0));
+      return false;
+    }
+
+    if (shdr.sh_type == SHT_PROGBITS) {
+      const char* section_name = elf_strptr(elf, elf_header.e_shstrndx,
+                                            shdr.sh_name);
+      if (!section_name) {
+        print_message2(2, "Section name error: %s\n", elf_errmsg(-1));
+        continue;
+      }
+
+      if (strcmp(section_name, kTextSectionName) == 0) {
+        text_section = &shdr;
+        break;
+      }
+    }
+  }
+  if (text_section != NULL && text_section->sh_size > 0) {
+    *text_start = (char*)elf_base + text_section->sh_offset;
+    *text_size = text_section->sh_size;
+    return true;
+  }
+
+  return false;
+}
+
+FileID::FileID(const char* path) {
+  strcpy(path_, path);
+}
+
+class AutoCloser {
+ public:
+  AutoCloser(int fd) : fd_(fd) {}
+  ~AutoCloser() { if (fd_) close(fd_); }
+ private:
+  int fd_;
+};
+
+bool FileID::ElfFileIdentifier(unsigned char identifier[16]) {
+  int fd = 0;
+  if ((fd = open(path_, O_RDONLY)) < 0)
+    return false;
+
+  AutoCloser autocloser(fd);
+  struct stat st;
+  if (fstat(fd, &st) != 0 || st.st_size <= 0)
+    return false;
+
+  void* base = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
+  if (base == MAP_FAILED)
+    return false;
+
+  bool success = false;
+  const void* text_section = NULL;
+  int text_size = 0;
+
+  if (FindElfTextSection(fd, base, &text_section, &text_size)) {
+    MD5Context md5;
+    MD5Init(&md5);
+    MD5Update(&md5, (const unsigned char*)text_section, text_size);
+    MD5Final(identifier, &md5);
+    success = true;
+  }
+
+  munmap((char*)base, st.st_size);
+  return success;
+}
+
+// static
+bool FileID::ConvertIdentifierToString(const unsigned char identifier[16],
+                                       char* buffer, int buffer_length) {
+  if (buffer_length < 34)
+    return false;
+
+  int buffer_idx = 0;
+  for (int idx = 0; idx < 16; ++idx) {
+    int hi = (identifier[idx] >> 4) & 0x0F;
+    int lo = (identifier[idx]) & 0x0F;
+
+    buffer[buffer_idx++] = (hi >= 10) ? 'A' + hi - 10 : '0' + hi;
+    buffer[buffer_idx++] = (lo >= 10) ? 'A' + lo - 10 : '0' + lo;
+  }
+
+  // Add an extra "0" by the end.
+  buffer[buffer_idx++] = '0';
+
+  // NULL terminate
+  buffer[buffer_idx] = 0;
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/solaris/file_id.h b/src/common/solaris/file_id.h
new file mode 100644
index 0000000..375e857
--- /dev/null
+++ b/src/common/solaris/file_id.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_id.h: Return a unique identifier for a file
+//
+// Author: Alfred Peng
+
+#ifndef COMMON_SOLARIS_FILE_ID_H__
+#define COMMON_SOLARIS_FILE_ID_H__
+
+#include <limits.h>
+
+namespace google_breakpad {
+
+class FileID {
+ public:
+  FileID(const char *path);
+  ~FileID() {};
+
+  // Load the identifier for the elf file path specified in the constructor into
+  // |identifier|.  Return false if the identifier could not be created for the
+  // file.
+  // The current implementation will return the MD5 hash of the file's bytes.
+  bool ElfFileIdentifier(unsigned char identifier[16]);
+
+  // Convert the |identifier| data to a NULL terminated string.  The string will
+  // be formatted as a MDCVInfoPDB70 struct.
+  // The |buffer| should be at least 34 bytes long to receive all of the data
+  // and termination. Shorter buffers will return false.
+  static bool ConvertIdentifierToString(const unsigned char identifier[16],
+                                        char *buffer, int buffer_length);
+
+ private:
+  // Storage for the path specified
+  char path_[PATH_MAX];
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_SOLARIS_FILE_ID_H__
diff --git a/src/common/solaris/guid_creator.cc b/src/common/solaris/guid_creator.cc
new file mode 100644
index 0000000..17d773e
--- /dev/null
+++ b/src/common/solaris/guid_creator.cc
@@ -0,0 +1,84 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <cassert>
+#include <ctime>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "common/solaris/guid_creator.h"
+
+//
+// GUIDGenerator
+//
+// This class is used to generate random GUID.
+// Currently use random number to generate a GUID. This should be OK since
+// we don't expect crash to happen very offen.
+//
+class GUIDGenerator {
+ public:
+  GUIDGenerator() {
+    srandom(time(NULL));
+  }
+
+  bool CreateGUID(GUID *guid) const {
+    guid->data1 = random();
+    guid->data2 = (uint16_t)(random());
+    guid->data3 = (uint16_t)(random());
+    *reinterpret_cast<uint32_t*>(&guid->data4[0]) = random();
+    *reinterpret_cast<uint32_t*>(&guid->data4[4]) = random();
+    return true;
+  }
+};
+
+// Guid generator.
+const GUIDGenerator kGuidGenerator;
+
+bool CreateGUID(GUID *guid) {
+  return kGuidGenerator.CreateGUID(guid);
+}
+
+// Parse guid to string.
+bool GUIDToString(const GUID *guid, char *buf, int buf_len) {
+  // Should allow more space the the max length of GUID.
+  assert(buf_len > kGUIDStringLength);
+  int num = snprintf(buf, buf_len, kGUIDFormatString,
+                     guid->data1, guid->data2, guid->data3,
+                     *reinterpret_cast<const uint32_t*>(&(guid->data4[0])),
+                     *reinterpret_cast<const uint32_t*>(&(guid->data4[4])));
+  if (num != kGUIDStringLength)
+    return false;
+
+  buf[num] = '\0';
+  return true;
+}
diff --git a/src/common/solaris/guid_creator.h b/src/common/solaris/guid_creator.h
new file mode 100644
index 0000000..4aee3a1
--- /dev/null
+++ b/src/common/solaris/guid_creator.h
@@ -0,0 +1,50 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#ifndef COMMON_SOLARIS_GUID_CREATOR_H__
+#define COMMON_SOLARIS_GUID_CREATOR_H__
+
+#include "google_breakpad/common/minidump_format.h"
+
+typedef MDGUID GUID;
+
+// Format string for parsing GUID.
+#define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x"
+// Length of GUID string. Don't count the ending '\0'.
+#define kGUIDStringLength 36
+
+// Create a guid.
+bool CreateGUID(GUID *guid);
+
+// Get the string from guid.
+bool GUIDToString(const GUID *guid, char *buf, int buf_len);
+
+#endif  // COMMON_SOLARIS_GUID_CREATOR_H__
diff --git a/src/common/solaris/message_output.h b/src/common/solaris/message_output.h
new file mode 100644
index 0000000..3e3b1d4
--- /dev/null
+++ b/src/common/solaris/message_output.h
@@ -0,0 +1,54 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#ifndef COMMON_SOLARIS_MESSAGE_OUTPUT_H__
+#define COMMON_SOLARIS_MESSAGE_OUTPUT_H__
+
+namespace google_breakpad {
+
+const int MESSAGE_MAX = 1000;
+
+// Message output macros.
+// snprintf doesn't operate heap on Solaris, while printf and fprintf do.
+// Use snprintf here to avoid heap allocation.
+#define print_message1(std, message) \
+  char buffer[MESSAGE_MAX]; \
+  int len = snprintf(buffer, MESSAGE_MAX, message); \
+  write(std, buffer, len)
+
+#define print_message2(std, message, para) \
+  char buffer[MESSAGE_MAX]; \
+  int len = snprintf(buffer, MESSAGE_MAX, message, para); \
+  write(std, buffer, len);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_SOLARIS_MESSAGE_OUTPUT_H__
diff --git a/src/common/stabs_reader.cc b/src/common/stabs_reader.cc
new file mode 100644
index 0000000..43c4040
--- /dev/null
+++ b/src/common/stabs_reader.cc
@@ -0,0 +1,315 @@
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// This file implements the google_breakpad::StabsReader class.
+// See stabs_reader.h.
+
+#include "common/stabs_reader.h"
+
+#include <assert.h>
+#include <stab.h>
+#include <string.h>
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+using std::vector;
+
+namespace google_breakpad {
+
+StabsReader::EntryIterator::EntryIterator(const ByteBuffer* buffer,
+                                          bool big_endian, size_t value_size)
+    : value_size_(value_size), cursor_(buffer, big_endian) {
+  // Actually, we could handle weird sizes just fine, but they're
+  // probably mistakes --- expressed in bits, say.
+  assert(value_size == 4 || value_size == 8);
+  entry_.index = 0;
+  Fetch();
+}
+
+void StabsReader::EntryIterator::Fetch() {
+  cursor_
+      .Read(4, false, &entry_.name_offset)
+      .Read(1, false, &entry_.type)
+      .Read(1, false, &entry_.other)
+      .Read(2, false, &entry_.descriptor)
+      .Read(value_size_, false, &entry_.value);
+  entry_.at_end = !cursor_;
+}
+
+StabsReader::StabsReader(const uint8_t* stab,    size_t stab_size,
+                         const uint8_t* stabstr, size_t stabstr_size,
+                         bool big_endian, size_t value_size, bool unitized,
+                         StabsHandler* handler)
+    : entries_(stab, stab_size),
+      strings_(stabstr, stabstr_size),
+      iterator_(&entries_, big_endian, value_size),
+      unitized_(unitized),
+      handler_(handler),
+      string_offset_(0),
+      next_cu_string_offset_(0),
+      current_source_file_(NULL) { }
+
+const char* StabsReader::SymbolString() {
+  ptrdiff_t offset = string_offset_ + iterator_->name_offset;
+  if (offset < 0 || (size_t) offset >= strings_.Size()) {
+    handler_->Warning("symbol %d: name offset outside the string section\n",
+                      iterator_->index);
+    // Return our null string, to keep our promise about all names being
+    // taken from the string section.
+    offset = 0;
+  }
+  return reinterpret_cast<const char*>(strings_.start + offset);
+}
+
+bool StabsReader::Process() {
+  while (!iterator_->at_end) {
+    if (iterator_->type == N_SO) {
+      if (! ProcessCompilationUnit())
+        return false;
+    } else if (iterator_->type == N_UNDF && unitized_) {
+      // In unitized STABS (including Linux STABS, and pretty much anything
+      // else that puts STABS data in sections), at the head of each
+      // compilation unit's entries there is an N_UNDF stab giving the
+      // number of symbols in the compilation unit, and the number of bytes
+      // that compilation unit's strings take up in the .stabstr section.
+      // Each CU's strings are separate; the n_strx values are offsets
+      // within the current CU's portion of the .stabstr section.
+      //
+      // As an optimization, the GNU linker combines all the
+      // compilation units into one, with a single N_UNDF at the
+      // beginning. However, other linkers, like Gold, do not perform
+      // this optimization.
+      string_offset_ = next_cu_string_offset_;
+      next_cu_string_offset_ = iterator_->value;
+      ++iterator_;
+    }
+#if defined(HAVE_MACH_O_NLIST_H)
+    // Export symbols in Mach-O binaries look like this.
+    // This is necessary in order to be able to dump symbols
+    // from OS X system libraries.
+    else if ((iterator_->type & N_STAB) == 0 &&
+               (iterator_->type & N_TYPE) == N_SECT) {
+      ProcessExtern();
+    }
+#endif
+    else {
+      ++iterator_;
+    }
+  }
+  return true;
+}
+
+bool StabsReader::ProcessCompilationUnit() {
+  assert(!iterator_->at_end && iterator_->type == N_SO);
+
+  // There may be an N_SO entry whose name ends with a slash,
+  // indicating the directory in which the compilation occurred.
+  // The build directory defaults to NULL.
+  const char* build_directory = NULL;
+  {
+    const char* name = SymbolString();
+    if (name[0] && name[strlen(name) - 1] == '/') {
+      build_directory = name;
+      ++iterator_;
+    }
+  }
+
+  // We expect to see an N_SO entry with a filename next, indicating
+  // the start of the compilation unit.
+  {
+    if (iterator_->at_end || iterator_->type != N_SO)
+      return true;
+    const char* name = SymbolString();
+    if (name[0] == '\0') {
+      // This seems to be a stray end-of-compilation-unit marker;
+      // consume it, but don't report the end, since we didn't see a
+      // beginning.
+      ++iterator_;
+      return true;
+    }
+    current_source_file_ = name;
+  }
+
+  if (! handler_->StartCompilationUnit(current_source_file_,
+                                       iterator_->value,
+                                       build_directory))
+    return false;
+
+  ++iterator_;
+
+  // The STABS documentation says that some compilers may emit
+  // additional N_SO entries with names immediately following the
+  // first, and that they should be ignored.  However, the original
+  // Breakpad STABS reader doesn't ignore them, so we won't either.
+
+  // Process the body of the compilation unit, up to the next N_SO.
+  while (!iterator_->at_end && iterator_->type != N_SO) {
+    if (iterator_->type == N_FUN) {
+      if (! ProcessFunction())
+        return false;
+    } else if (iterator_->type == N_SLINE) {
+      // Mac OS X STABS place SLINE records before functions.
+      Line line;
+      // The value of an N_SLINE entry that appears outside a function is
+      // the absolute address of the line.
+      line.address = iterator_->value;
+      line.filename = current_source_file_;
+      // The n_desc of a N_SLINE entry is the line number.  It's a
+      // signed 16-bit field; line numbers from 32768 to 65535 are
+      // stored as n-65536.
+      line.number = (uint16_t) iterator_->descriptor;
+      queued_lines_.push_back(line);
+      ++iterator_;
+    } else if (iterator_->type == N_SOL) {
+      current_source_file_ = SymbolString();
+      ++iterator_;
+    } else {
+      // Ignore anything else.
+      ++iterator_;
+    }
+  }
+
+  // An N_SO with an empty name indicates the end of the compilation
+  // unit.  Default to zero.
+  uint64_t ending_address = 0;
+  if (!iterator_->at_end) {
+    assert(iterator_->type == N_SO);
+    const char* name = SymbolString();
+    if (name[0] == '\0') {
+      ending_address = iterator_->value;
+      ++iterator_;
+    }
+  }
+
+  if (! handler_->EndCompilationUnit(ending_address))
+    return false;
+
+  queued_lines_.clear();
+
+  return true;
+}
+
+bool StabsReader::ProcessFunction() {
+  assert(!iterator_->at_end && iterator_->type == N_FUN);
+
+  uint64_t function_address = iterator_->value;
+  // The STABS string for an N_FUN entry is the name of the function,
+  // followed by a colon, followed by type information for the
+  // function.  We want to pass the name alone to StartFunction.
+  const char* stab_string = SymbolString();
+  const char* name_end = strchr(stab_string, ':');
+  if (! name_end)
+    name_end = stab_string + strlen(stab_string);
+  string name(stab_string, name_end - stab_string);
+  if (! handler_->StartFunction(name, function_address))
+    return false;
+  ++iterator_;
+
+  // If there were any SLINE records given before the function, report them now.
+  for (vector<Line>::const_iterator it = queued_lines_.begin();
+       it != queued_lines_.end(); it++) {
+    if (!handler_->Line(it->address, it->filename, it->number))
+      return false;
+  }
+  queued_lines_.clear();
+
+  while (!iterator_->at_end) {
+    if (iterator_->type == N_SO || iterator_->type == N_FUN)
+      break;
+    else if (iterator_->type == N_SLINE) {
+      // The value of an N_SLINE entry is the offset of the line from
+      // the function's start address.
+      uint64_t line_address = function_address + iterator_->value;
+      // The n_desc of a N_SLINE entry is the line number.  It's a
+      // signed 16-bit field; line numbers from 32768 to 65535 are
+      // stored as n-65536.
+      uint16_t line_number = iterator_->descriptor;
+      if (! handler_->Line(line_address, current_source_file_, line_number))
+        return false;
+      ++iterator_;
+    } else if (iterator_->type == N_SOL) {
+      current_source_file_ = SymbolString();
+      ++iterator_;
+    } else
+      // Ignore anything else.
+      ++iterator_;
+  }
+
+  // We've reached the end of the function. See if we can figure out its
+  // ending address.
+  uint64_t ending_address = 0;
+  if (!iterator_->at_end) {
+    assert(iterator_->type == N_SO || iterator_->type == N_FUN);
+    if (iterator_->type == N_FUN) {
+      const char* symbol_name = SymbolString();
+      if (symbol_name[0] == '\0') {
+        // An N_FUN entry with no name is a terminator for this function;
+        // its value is the function's size.
+        ending_address = function_address + iterator_->value;
+        ++iterator_;
+      } else {
+        // An N_FUN entry with a name is the next function, and we can take
+        // its value as our ending address. Don't advance the iterator, as
+        // we'll use this symbol to start the next function as well.
+        ending_address = iterator_->value;
+      }
+    } else {
+      // An N_SO entry could be an end-of-compilation-unit marker, or the
+      // start of the next compilation unit, but in either case, its value
+      // is our ending address. We don't advance the iterator;
+      // ProcessCompilationUnit will decide what to do with this symbol.
+      ending_address = iterator_->value;
+    }
+  }
+
+  if (! handler_->EndFunction(ending_address))
+    return false;
+
+  return true;
+}
+
+bool StabsReader::ProcessExtern() {
+#if defined(HAVE_MACH_O_NLIST_H)
+  assert(!iterator_->at_end &&
+         (iterator_->type & N_STAB) == 0 &&
+         (iterator_->type & N_TYPE) == N_SECT);
+#endif
+
+  // TODO(mark): only do symbols in the text section?
+  if (!handler_->Extern(SymbolString(), iterator_->value))
+    return false;
+
+  ++iterator_;
+  return true;
+}
+
+} // namespace google_breakpad
diff --git a/src/common/stabs_reader.h b/src/common/stabs_reader.h
new file mode 100644
index 0000000..1e773f4
--- /dev/null
+++ b/src/common/stabs_reader.h
@@ -0,0 +1,325 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stabs_reader.h: Define StabsReader, a parser for STABS debugging
+// information. A description of the STABS debugging format can be
+// found at:
+//
+//    http://sourceware.org/gdb/current/onlinedocs/stabs_toc.html
+//
+// The comments here assume you understand the format.
+//
+// This parser can handle big-endian and little-endian data, and the symbol
+// values may be either 32 or 64 bits long. It handles both STABS in
+// sections (as used on Linux) and STABS appearing directly in an
+// a.out-like symbol table (as used in Darwin OS X Mach-O files).
+
+#ifndef COMMON_STABS_READER_H__
+#define COMMON_STABS_READER_H__
+
+#include <stddef.h>
+#include <stdint.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_MACH_O_NLIST_H
+#include <mach-o/nlist.h>
+#elif defined(HAVE_A_OUT_H)
+#include <a.out.h>
+#endif
+
+#include <string>
+#include <vector>
+
+#include "common/byte_cursor.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class StabsHandler;
+
+class StabsReader {
+ public:
+  // Create a reader for the STABS debug information whose .stab section is
+  // being traversed by ITERATOR, and whose .stabstr section is referred to
+  // by STRINGS. The reader will call the member functions of HANDLER to
+  // report the information it finds, when the reader's 'Process' member
+  // function is called.
+  //
+  // BIG_ENDIAN should be true if the entries in the .stab section are in
+  // big-endian form, or false if they are in little-endian form.
+  //
+  // VALUE_SIZE should be either 4 or 8, indicating the size of the 'value'
+  // field in each entry in bytes.
+  //
+  // UNITIZED should be true if the STABS data is stored in units with
+  // N_UNDF headers. This is usually the case for STABS stored in sections,
+  // like .stab/.stabstr, and usually not the case for STABS stored in the
+  // actual symbol table; UNITIZED should be true when parsing Linux stabs,
+  // false when parsing Mac OS X STABS. For details, see:
+  // http://sourceware.org/gdb/current/onlinedocs/stabs/Stab-Section-Basics.html
+  // 
+  // Note that, in ELF, the .stabstr section should be found using the
+  // 'sh_link' field of the .stab section header, not by name.
+  StabsReader(const uint8_t* stab,    size_t stab_size,
+              const uint8_t* stabstr, size_t stabstr_size,
+              bool big_endian, size_t value_size, bool unitized,
+              StabsHandler* handler);
+
+  // Process the STABS data, calling the handler's member functions to
+  // report what we find.  While the handler functions return true,
+  // continue to process until we reach the end of the section.  If we
+  // processed the entire section and all handlers returned true,
+  // return true.  If any handler returned false, return false.
+  // 
+  // This is only meant to be called once per StabsReader instance;
+  // resuming a prior processing pass that stopped abruptly isn't supported.
+  bool Process();
+
+ private:
+
+  // An class for walking arrays of STABS entries. This isolates the main
+  // STABS reader from the exact format (size; endianness) of the entries
+  // themselves.
+  class EntryIterator {
+   public:
+    // The contents of a STABS entry, adjusted for the host's endianness,
+    // word size, 'struct nlist' layout, and so on.
+    struct Entry {
+      // True if this iterator has reached the end of the entry array. When
+      // this is set, the other members of this structure are not valid.
+      bool at_end;
+
+      // The number of this entry within the list.
+      size_t index;
+
+      // The current entry's name offset. This is the offset within the
+      // current compilation unit's strings, as establish by the N_UNDF entries.
+      size_t name_offset;
+
+      // The current entry's type, 'other' field, descriptor, and value.
+      unsigned char type;
+      unsigned char other;
+      short descriptor;
+      uint64_t value;
+    };
+
+    // Create a EntryIterator walking the entries in BUFFER. Treat the
+    // entries as big-endian if BIG_ENDIAN is true, as little-endian
+    // otherwise. Assume each entry has a 'value' field whose size is
+    // VALUE_SIZE.
+    //
+    // This would not be terribly clean to extend to other format variations,
+    // but it's enough to handle Linux and Mac, and we'd like STABS to die
+    // anyway.
+    //
+    // For the record: on Linux, STABS entry values are always 32 bits,
+    // regardless of the architecture address size (don't ask me why); on
+    // Mac, they are 32 or 64 bits long. Oddly, the section header's entry
+    // size for a Linux ELF .stab section varies according to the ELF class
+    // from 12 to 20 even as the actual entries remain unchanged.
+    EntryIterator(const ByteBuffer* buffer, bool big_endian, size_t value_size);
+
+    // Move to the next entry. This function's behavior is undefined if
+    // at_end() is true when it is called.
+    EntryIterator& operator++() { Fetch(); entry_.index++; return *this; }
+
+    // Dereferencing this iterator produces a reference to an Entry structure
+    // that holds the current entry's values. The entry is owned by this
+    // EntryIterator, and will be invalidated at the next call to operator++.
+    const Entry& operator*() const { return entry_; }
+    const Entry* operator->() const { return &entry_; }
+
+   private:
+    // Read the STABS entry at cursor_, and set entry_ appropriately.
+    void Fetch();
+
+    // The size of entries' value field, in bytes.
+    size_t value_size_;
+
+    // A byte cursor traversing buffer_.
+    ByteCursor cursor_;
+
+    // Values for the entry this iterator refers to.
+    Entry entry_;
+  };
+
+  // A source line, saved to be reported later.
+  struct Line {
+    uint64_t address;
+    const char* filename;
+    int number;
+  };
+
+  // Return the name of the current symbol.
+  const char* SymbolString();
+
+  // Process a compilation unit starting at symbol_.  Return true
+  // to continue processing, or false to abort.
+  bool ProcessCompilationUnit();
+
+  // Process a function in current_source_file_ starting at symbol_.
+  // Return true to continue processing, or false to abort.
+  bool ProcessFunction();
+
+  // Process an exported function symbol.
+  // Return true to continue processing, or false to abort.
+  bool ProcessExtern();
+
+  // The STABS entries being parsed.
+  ByteBuffer entries_;
+
+  // The string section to which the entries refer.
+  ByteBuffer strings_;
+
+  // The iterator walking the STABS entries.
+  EntryIterator iterator_;
+
+  // True if the data is "unitized"; see the explanation in the comment for
+  // StabsReader::StabsReader.
+  bool unitized_;
+
+  StabsHandler* handler_;
+
+  // The offset of the current compilation unit's strings within stabstr_.
+  size_t string_offset_;
+
+  // The value string_offset_ should have for the next compilation unit,
+  // as established by N_UNDF entries.
+  size_t next_cu_string_offset_;
+
+  // The current source file name.
+  const char* current_source_file_;
+
+  // Mac OS X STABS place SLINE records before functions; we accumulate a
+  // vector of these until we see the FUN record, and then report them
+  // after the StartFunction call.
+  std::vector<Line> queued_lines_;
+};
+
+// Consumer-provided callback structure for the STABS reader.  Clients
+// of the STABS reader provide an instance of this structure.  The
+// reader then invokes the member functions of that instance to report
+// the information it finds.
+//
+// The default definitions of the member functions do nothing, and return
+// true so processing will continue.
+class StabsHandler {
+ public:
+  StabsHandler() { }
+  virtual ~StabsHandler() { }
+
+  // Some general notes about the handler callback functions:
+
+  // Processing proceeds until the end of the .stabs section, or until
+  // one of these functions returns false.
+
+  // The addresses given are as reported in the STABS info, without
+  // regard for whether the module may be loaded at different
+  // addresses at different times (a shared library, say).  When
+  // processing STABS from an ELF shared library, the addresses given
+  // all assume the library is loaded at its nominal load address.
+  // They are *not* offsets from the nominal load address.  If you
+  // want offsets, you must subtract off the library's nominal load
+  // address.
+
+  // The arguments to these functions named FILENAME are all
+  // references to strings stored in the .stabstr section.  Because
+  // both the Linux and Solaris linkers factor out duplicate strings
+  // from the .stabstr section, the consumer can assume that if two
+  // FILENAME values are different addresses, they represent different
+  // file names.
+  //
+  // Thus, it's safe to use (say) std::map<char*, ...>, which does
+  // string address comparisons, not string content comparisons.
+  // Since all the strings are in same array of characters --- the
+  // .stabstr section --- comparing their addresses produces
+  // predictable, if not lexicographically meaningful, results.
+
+  // Begin processing a compilation unit whose main source file is
+  // named FILENAME, and whose base address is ADDRESS.  If
+  // BUILD_DIRECTORY is non-NULL, it is the name of the build
+  // directory in which the compilation occurred.
+  virtual bool StartCompilationUnit(const char* filename, uint64_t address,
+                                    const char* build_directory) {
+    return true;
+  }
+
+  // Finish processing the compilation unit.  If ADDRESS is non-zero,
+  // it is the ending address of the compilation unit.  If ADDRESS is
+  // zero, then the compilation unit's ending address is not
+  // available, and the consumer must infer it by other means.
+  virtual bool EndCompilationUnit(uint64_t address) { return true; }
+
+  // Begin processing a function named NAME, whose starting address is
+  // ADDRESS.  This function belongs to the compilation unit that was
+  // most recently started but not ended.
+  //
+  // Note that, unlike filenames, NAME is not a pointer into the
+  // .stabstr section; this is because the name as it appears in the
+  // STABS data is followed by type information.  The value passed to
+  // StartFunction is the function name alone.
+  //
+  // In languages that use name mangling, like C++, NAME is mangled.
+  virtual bool StartFunction(const string& name, uint64_t address) {
+    return true;
+  }
+
+  // Finish processing the function.  If ADDRESS is non-zero, it is
+  // the ending address for the function.  If ADDRESS is zero, then
+  // the function's ending address is not available, and the consumer
+  // must infer it by other means.
+  virtual bool EndFunction(uint64_t address) { return true; }
+  
+  // Report that the code at ADDRESS is attributable to line NUMBER of
+  // the source file named FILENAME.  The caller must infer the ending
+  // address of the line.
+  virtual bool Line(uint64_t address, const char* filename, int number) {
+    return true;
+  }
+
+  // Report that an exported function NAME is present at ADDRESS.
+  // The size of the function is unknown.
+  virtual bool Extern(const string& name, uint64_t address) {
+    return true;
+  }
+
+  // Report a warning.  FORMAT is a printf-like format string,
+  // specifying how to format the subsequent arguments.
+  virtual void Warning(const char* format, ...) = 0;
+};
+
+} // namespace google_breakpad
+
+#endif  // COMMON_STABS_READER_H__
diff --git a/src/common/stabs_reader_unittest.cc b/src/common/stabs_reader_unittest.cc
new file mode 100644
index 0000000..24f3e1a
--- /dev/null
+++ b/src/common/stabs_reader_unittest.cc
@@ -0,0 +1,611 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stabs_reader_unittest.cc: Unit tests for google_breakpad::StabsReader.
+
+#include <assert.h>
+#include <errno.h>
+#include <stab.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+#include <map>
+#include <sstream>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/stabs_reader.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+
+using ::testing::Eq;
+using ::testing::InSequence;
+using ::testing::Return;
+using ::testing::StrEq;
+using ::testing::Test;
+using ::testing::_;
+using google_breakpad::StabsHandler;
+using google_breakpad::StabsReader;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using std::map;
+
+namespace {
+
+// A StringAssembler is a class for generating .stabstr sections to present
+// as input to the STABS parser.
+class StringAssembler: public Section {
+ public:
+  StringAssembler() : in_cu_(false) { StartCU(); }
+
+  // Add the string S to this StringAssembler, and return the string's
+  // offset within this compilation unit's strings. If S has been added
+  // already, this returns the offset of its first instance.
+  size_t Add(const string& s) {
+    map<string, size_t>::iterator it = added_.find(s);
+    if (it != added_.end())
+      return it->second;
+    size_t offset = Size() - cu_start_;
+    AppendCString(s);
+    added_[s] = offset;
+    return offset;
+  }
+
+  // Start a fresh compilation unit string collection.
+  void StartCU() {
+    // Ignore duplicate calls to StartCU. Our test data don't always call
+    // StartCU at all, meaning that our constructor has to take care of it,
+    // meaning that tests that *do* call StartCU call it twice at the
+    // beginning.  This is not worth smoothing out.
+    if (in_cu_) return;
+
+    added_.clear();
+    cu_start_ = Size();
+
+    // Each compilation unit's strings start with an empty string.
+    AppendCString("");
+    added_[""] = 0;
+
+    in_cu_ = true;
+  }
+
+  // Finish off the current CU's strings.
+  size_t EndCU() {
+    assert(in_cu_);
+    in_cu_ = false;
+    return Size() - cu_start_;
+  }
+
+ private:
+  // The offset of the start of this compilation unit's strings.
+  size_t cu_start_;
+
+  // True if we're in a CU.
+  bool in_cu_;
+
+  // A map from the strings that have been added to this section to
+  // their starting indices within their compilation unit.
+  map<string, size_t> added_;
+};
+
+// A StabsAssembler is a class for generating .stab sections to present as
+// test input for the STABS parser.
+class StabsAssembler: public Section {
+ public:
+  // Create a StabsAssembler that uses StringAssembler for its strings.
+  StabsAssembler(StringAssembler* string_assembler)
+      : Section(string_assembler->endianness()),
+        string_assembler_(string_assembler),
+        value_size_(0),
+        entry_count_(0),
+        cu_header_(NULL) { }
+  ~StabsAssembler() { assert(!cu_header_); }
+
+  // Accessor and setter for value_size_.
+  size_t value_size() const { return value_size_; }
+  StabsAssembler& set_value_size(size_t value_size) {
+    value_size_ = value_size;
+    return *this;
+  }
+
+  // Append a STAB entry to the end of this section with the given
+  // characteristics. NAME is the offset of this entry's name string within
+  // its compilation unit's portion of the .stabstr section; this can be a
+  // value generated by a StringAssembler. Return a reference to this
+  // StabsAssembler.
+  StabsAssembler& Stab(uint8_t type, uint8_t other, Label descriptor,
+                       Label value, Label name) {
+    D32(name);
+    D8(type);
+    D8(other);
+    D16(descriptor);
+    Append(endianness(), value_size_, value);
+    entry_count_++;
+    return *this;
+  }
+
+  // As above, but automatically add NAME to our StringAssembler.
+  StabsAssembler& Stab(uint8_t type, uint8_t other, Label descriptor,
+                       Label value, const string& name) {
+    return Stab(type, other, descriptor, value, string_assembler_->Add(name));
+  }
+
+  // Start a compilation unit named NAME, with an N_UNDF symbol to start
+  // it, and its own portion of the string section. Return a reference to
+  // this StabsAssembler.
+  StabsAssembler& StartCU(const string& name) {
+    assert(!cu_header_);
+    cu_header_ = new CUHeader;
+    string_assembler_->StartCU();
+    entry_count_ = 0;
+    return Stab(N_UNDF, 0,
+                cu_header_->final_entry_count,
+                cu_header_->final_string_size,
+                string_assembler_->Add(name));
+  }
+
+  // Close off the current compilation unit. Return a reference to this
+  // StabsAssembler.
+  StabsAssembler& EndCU() {
+    assert(cu_header_);
+    cu_header_->final_entry_count = entry_count_;
+    cu_header_->final_string_size = string_assembler_->EndCU();
+    delete cu_header_;
+    cu_header_ = NULL;
+    return *this;
+  }
+
+ private:
+  // Data used in a compilation unit header STAB that we won't know until
+  // we've finished the compilation unit.
+  struct CUHeader {
+    // The final number of entries this compilation unit will hold.
+    Label final_entry_count;
+
+    // The final size of this compilation unit's strings.
+    Label final_string_size;
+  };
+
+  // The strings for our STABS entries.
+  StringAssembler* string_assembler_;
+
+  // The size of the 'value' field of stabs entries in this section.
+  size_t value_size_;
+
+  // The number of entries in this compilation unit so far.
+  size_t entry_count_;
+
+  // Header labels for this compilation unit, if we've started one but not
+  // finished it.
+  CUHeader* cu_header_;
+};
+
+class MockStabsReaderHandler: public StabsHandler {
+ public:
+  MOCK_METHOD3(StartCompilationUnit,
+               bool(const char*, uint64_t, const char*));
+  MOCK_METHOD1(EndCompilationUnit, bool(uint64_t));
+  MOCK_METHOD2(StartFunction, bool(const string&, uint64_t));
+  MOCK_METHOD1(EndFunction, bool(uint64_t));
+  MOCK_METHOD3(Line, bool(uint64_t, const char*, int));
+  MOCK_METHOD2(Extern, bool(const string&, uint64_t));
+  void Warning(const char* format, ...) { MockWarning(format); }
+  MOCK_METHOD1(MockWarning, void(const char*));
+};
+
+struct StabsFixture {
+  StabsFixture() : stabs(&strings), unitized(true) { }
+
+  // Create a StabsReader to parse the mock stabs data in stabs and
+  // strings, and pass the parsed information to mock_handler. Use the
+  // endianness and value size of stabs to parse the data. If all goes
+  // well, return the result of calling the reader's Process member
+  // function. Otherwise, return false.
+  bool ApplyHandlerToMockStabsData() {
+    string stabs_contents, stabstr_contents;
+    if (!stabs.GetContents(&stabs_contents) ||
+        !strings.GetContents(&stabstr_contents))
+      return false;
+
+    // Run the parser on the test input, passing whatever we find to HANDLER.
+    StabsReader reader(
+        reinterpret_cast<const uint8_t*>(stabs_contents.data()),
+        stabs_contents.size(),
+        reinterpret_cast<const uint8_t*>(stabstr_contents.data()),
+        stabstr_contents.size(),
+        stabs.endianness() == kBigEndian, stabs.value_size(), unitized,
+        &mock_handler);
+    return reader.Process();
+  }
+
+  StringAssembler strings;
+  StabsAssembler stabs;
+  bool unitized;
+  MockStabsReaderHandler mock_handler;
+};
+
+class Stabs: public StabsFixture, public Test { };
+
+TEST_F(Stabs, MockStabsInput) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(4);
+  stabs
+      .Stab(N_SO,      149, 40232, 0x18a2a72bU, "builddir/")
+      .Stab(N_FUN,      83, 50010, 0x91a5353fU,
+            "not the SO with source file name we expected ")
+      .Stab(N_SO,      165, 24791, 0xfe69d23cU, "")
+      .Stab(N_SO,      184, 34178, 0xca4d883aU, "builddir1/")
+      .Stab(N_SO,       83, 40859, 0xd2fe5df3U, "file1.c")
+      .Stab(N_LSYM,    147, 39565, 0x60d4bb8aU, "not the FUN we're looking for")
+      .Stab(N_FUN,     120, 50271, 0xa049f4b1U, "fun1")
+      .Stab(N_BINCL,   150, 15694, 0xef65c659U,
+            "something to ignore in a FUN body")
+      .Stab(N_SLINE,   147,  4967, 0xd904b3f, "")
+      .Stab(N_SOL,     177, 56135, 0xbd97b1dcU, "header.h")
+      .Stab(N_SLINE,   130, 24610, 0x90f145b, "")
+      .Stab(N_FUN,      45, 32441, 0xbf27cf93U,
+            "fun2:some stabs type info here:to trim from the name")
+      .Stab(N_SLINE,   138, 39002, 0x8148b87, "")
+      .Stab(N_SOL,      60, 49318, 0x1d06e025U, "file1.c")
+      .Stab(N_SLINE,    29, 52163, 0x6eebbb7, "")
+      .Stab(N_SO,      167,  4647, 0xd04b7448U, "")
+      .Stab(N_LSYM,     58, 37837, 0xe6b14d37U, "")
+      .Stab(N_SO,      152,  7810, 0x11759f10U, "file3.c")
+      .Stab(N_SO,      218, 12447, 0x11cfe4b5U, "");
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("file1.c"), 0xd2fe5df3U,
+                                     StrEq("builddir1/")))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartFunction(StrEq("fun1"), 0xa049f4b1U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0xa049f4b1U + 0xd904b3f, StrEq("file1.c"), 4967))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0xa049f4b1U + 0x90f145b, StrEq("header.h"), 24610))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xbf27cf93U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartFunction(StrEq("fun2"), 0xbf27cf93U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0xbf27cf93U + 0x8148b87, StrEq("header.h"), 39002))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0xbf27cf93U + 0x6eebbb7, StrEq("file1.c"), 52163))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xd04b7448U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0xd04b7448U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartCompilationUnit(StrEq("file3.c"),
+                                                   0x11759f10U, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0x11cfe4b5U))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, AbruptCU) {
+  stabs.set_endianness(kBigEndian);
+  stabs.set_value_size(4);
+  stabs.Stab(N_SO, 177, 23446, 0xbf10d5e4, "file2-1.c");
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("file2-1.c"), 0xbf10d5e4, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, AbruptFunction) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(8);
+  stabs
+      .Stab(N_SO,      218,   26631,   0xb83ddf10U, "file3-1.c")
+      .Stab(N_FUN,     113,   24765,   0xbbd4a145U, "fun3_1");
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("file3-1.c"), 0xb83ddf10U, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartFunction(StrEq("fun3_1"), 0xbbd4a145U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, NoCU) {
+  stabs.set_endianness(kBigEndian);
+  stabs.set_value_size(8);
+  stabs.Stab(N_SO, 161, 25673, 0x8f676e7bU, "build-directory/");
+
+  EXPECT_CALL(mock_handler, StartCompilationUnit(_, _, _))
+      .Times(0);
+  EXPECT_CALL(mock_handler, StartFunction(_, _))
+      .Times(0);
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, NoCUEnd) {
+  stabs.set_endianness(kBigEndian);
+  stabs.set_value_size(8);
+  stabs
+      .Stab(N_SO,      116,   58280,   0x2f7493c9U, "file5-1.c")
+      .Stab(N_SO,      224,   23057,   0xf9f1d50fU, "file5-2.c");
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("file5-1.c"), 0x2f7493c9U, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("file5-2.c"), 0xf9f1d50fU, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+// On systems that store STABS in sections, string offsets are relative to
+// the beginning of that compilation unit's strings, marked with N_UNDF
+// symbols; see the comments for StabsReader::StabsReader.
+TEST_F(Stabs, Unitized) {
+  stabs.set_endianness(kBigEndian);
+  stabs.set_value_size(4);
+  stabs
+      .StartCU("antimony")
+      .Stab(N_SO,   49, 26043, 0x7e259f1aU, "antimony")
+      .Stab(N_FUN, 101, 63253, 0x7fbcccaeU, "arsenic")
+      .Stab(N_SO,  124, 37175, 0x80b0014cU, "")
+      .EndCU()
+      .StartCU("aluminum")
+      .Stab(N_SO,   72, 23084, 0x86756839U, "aluminum")
+      .Stab(N_FUN,  59,  3305, 0xa8e120b0U, "selenium")
+      .Stab(N_SO,  178, 56949, 0xbffff983U, "")
+      .EndCU();
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("antimony"), 0x7e259f1aU, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartFunction(Eq("arsenic"), 0x7fbcccaeU))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0x80b0014cU))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0x80b0014cU))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("aluminum"), 0x86756839U, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, StartFunction(Eq("selenium"), 0xa8e120b0U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xbffff983U))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0xbffff983U))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+// On systems that store STABS entries in the real symbol table, the N_UNDF
+// entries have no special meaning, and shouldn't mess up the string
+// indices.
+TEST_F(Stabs, NonUnitized) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(4);
+  unitized = false;
+  stabs
+      .Stab(N_UNDF,    21, 11551, 0x9bad2b2e, "")
+      .Stab(N_UNDF,    21, 11551, 0x9bad2b2e, "")
+      .Stab(N_SO,      71, 45139, 0x11a97352, "Tanzania")
+      .Stab(N_SO,     221, 41976, 0x21a97352, "");
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("Tanzania"),
+                                     0x11a97352, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0x21a97352))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, FunctionEnd) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(8);
+  stabs
+      .Stab(N_SO,    102, 62362, 0x52a830d644cd6942ULL, "compilation unit")
+      // This function is terminated by the start of the next function.
+      .Stab(N_FUN,   216, 38405, 0xbb5ab70ecdd23bfeULL, "function 1")
+      // This function is terminated by an explicit end-of-function stab,
+      // whose value is a size in bytes.
+      .Stab(N_FUN,   240, 10973, 0xc954de9b8fb3e5e2ULL, "function 2")
+      .Stab(N_FUN,    14, 36749, 0xc1ab,     "")
+      // This function is terminated by the end of the compilation unit.
+      .Stab(N_FUN,   143, 64514, 0xdff98c9a35386e1fULL, "function 3")
+      .Stab(N_SO,    164, 60142, 0xfdacb856e78bbf57ULL, "");
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("compilation unit"),
+                                     0x52a830d644cd6942ULL, NULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartFunction(Eq("function 1"), 0xbb5ab70ecdd23bfeULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xc954de9b8fb3e5e2ULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartFunction(Eq("function 2"), 0xc954de9b8fb3e5e2ULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xc954de9b8fb3e5e2ULL + 0xc1ab))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartFunction(Eq("function 3"), 0xdff98c9a35386e1fULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xfdacb856e78bbf57ULL))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0xfdacb856e78bbf57ULL))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+// On Mac OS X, SLINE records can appear before the FUN stab to which they
+// belong, and their values are absolute addresses, not offsets.
+TEST_F(Stabs, LeadingLine) {
+  stabs.set_endianness(kBigEndian);
+  stabs.set_value_size(4);
+  stabs
+      .Stab(N_SO,    179, 27357, 0x8adabc15, "build directory/")
+      .Stab(N_SO,     52, 53058, 0x4c7e3bf4, "compilation unit")
+      .Stab(N_SOL,   165, 12086, 0x6a797ca3, "source file name")
+      .Stab(N_SLINE, 229, 20015, 0x4cb3d7e0, "")
+      .Stab(N_SLINE,  89, 43802, 0x4cba8b88, "")
+      .Stab(N_FUN,   251, 51639, 0xce1b98fa, "rutabaga")
+      .Stab(N_FUN,   218, 16113, 0x5798,     "")
+      .Stab(N_SO,     52, 53058, 0xd4af4415, "");
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                StartCompilationUnit(StrEq("compilation unit"),
+                                     0x4c7e3bf4, StrEq("build directory/")))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                StartFunction(Eq("rutabaga"), 0xce1b98fa))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0x4cb3d7e0, StrEq("source file name"), 20015))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Line(0x4cba8b88, StrEq("source file name"), 43802))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndFunction(0xce1b98fa + 0x5798))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler, EndCompilationUnit(0xd4af4415))
+        .WillOnce(Return(true));
+  }
+
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+
+#if defined(HAVE_MACH_O_NLIST_H)
+// These tests have no meaning on non-Mach-O-based systems, as
+// only Mach-O uses N_SECT to represent public symbols.
+TEST_F(Stabs, OnePublicSymbol) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(4);
+
+  const uint32_t kExpectedAddress = 0x9000;
+  const string kExpectedFunctionName("public_function");
+  stabs
+    .Stab(N_SECT, 1, 0, kExpectedAddress, kExpectedFunctionName);
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                Extern(StrEq(kExpectedFunctionName),
+                       kExpectedAddress))
+        .WillOnce(Return(true));
+  }
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+TEST_F(Stabs, TwoPublicSymbols) {
+  stabs.set_endianness(kLittleEndian);
+  stabs.set_value_size(4);
+
+  const uint32_t kExpectedAddress1 = 0xB0B0B0B0;
+  const string kExpectedFunctionName1("public_function");
+  const uint32_t kExpectedAddress2 = 0xF0F0F0F0;
+  const string kExpectedFunctionName2("something else");
+  stabs
+    .Stab(N_SECT, 1, 0, kExpectedAddress1, kExpectedFunctionName1)
+    .Stab(N_SECT, 1, 0, kExpectedAddress2, kExpectedFunctionName2);
+
+  {
+    InSequence s;
+    EXPECT_CALL(mock_handler,
+                Extern(StrEq(kExpectedFunctionName1),
+                       kExpectedAddress1))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_handler,
+                Extern(StrEq(kExpectedFunctionName2),
+                       kExpectedAddress2))
+        .WillOnce(Return(true));
+  }
+  ASSERT_TRUE(ApplyHandlerToMockStabsData());
+}
+
+#endif
+
+} // anonymous namespace
diff --git a/src/common/stabs_to_module.cc b/src/common/stabs_to_module.cc
new file mode 100644
index 0000000..05b25a7
--- /dev/null
+++ b/src/common/stabs_to_module.cc
@@ -0,0 +1,199 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_stabs.cc --- implement the StabsToModule class.
+
+#include <assert.h>
+#include <cxxabi.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <algorithm>
+
+#include "common/stabs_to_module.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// Demangle using abi call.
+// Older GCC may not support it.
+static string Demangle(const string& mangled) {
+  int status = 0;
+  char *demangled = abi::__cxa_demangle(mangled.c_str(), NULL, NULL, &status);
+  if (status == 0 && demangled != NULL) {
+    string str(demangled);
+    free(demangled);
+    return str;
+  }
+  return string(mangled);
+}
+
+StabsToModule::~StabsToModule() {
+  // Free any functions we've accumulated but not added to the module.
+  for (vector<Module::Function*>::const_iterator func_it = functions_.begin();
+       func_it != functions_.end(); func_it++)
+    delete *func_it;
+  // Free any function that we're currently within.
+  delete current_function_;
+}
+
+bool StabsToModule::StartCompilationUnit(const char *name, uint64_t address,
+                                         const char *build_directory) {
+  assert(!in_compilation_unit_);
+  in_compilation_unit_ = true;
+  current_source_file_name_ = name;
+  current_source_file_ = module_->FindFile(name);
+  comp_unit_base_address_ = address;
+  boundaries_.push_back(static_cast<Module::Address>(address));
+  return true;
+}
+
+bool StabsToModule::EndCompilationUnit(uint64_t address) {
+  assert(in_compilation_unit_);
+  in_compilation_unit_ = false;
+  comp_unit_base_address_ = 0;
+  current_source_file_ = NULL;
+  current_source_file_name_ = NULL;
+  if (address)
+    boundaries_.push_back(static_cast<Module::Address>(address));
+  return true;
+}
+
+bool StabsToModule::StartFunction(const string& name,
+                                  uint64_t address) {
+  assert(!current_function_);
+  Module::Function *f = new Module::Function(Demangle(name), address);
+  Module::Range r(address, 0); // We compute this in StabsToModule::Finalize().
+  f->ranges.push_back(r);
+  f->parameter_size = 0; // We don't provide this information.
+  current_function_ = f;
+  boundaries_.push_back(static_cast<Module::Address>(address));
+  return true;
+}
+
+bool StabsToModule::EndFunction(uint64_t address) {
+  assert(current_function_);
+  // Functions in this compilation unit should have address bigger
+  // than the compilation unit's starting address.  There may be a lot
+  // of duplicated entries for functions in the STABS data. We will
+  // count on the Module to remove the duplicates.
+  if (current_function_->address >= comp_unit_base_address_)
+    functions_.push_back(current_function_);
+  else
+    delete current_function_;
+  current_function_ = NULL;
+  if (address)
+    boundaries_.push_back(static_cast<Module::Address>(address));
+  return true;
+}
+
+bool StabsToModule::Line(uint64_t address, const char *name, int number) {
+  assert(current_function_);
+  assert(current_source_file_);
+  if (name != current_source_file_name_) {
+    current_source_file_ = module_->FindFile(name);
+    current_source_file_name_ = name;
+  }
+  Module::Line line;
+  line.address = address;
+  line.size = 0;  // We compute this in StabsToModule::Finalize().
+  line.file = current_source_file_;
+  line.number = number;
+  current_function_->lines.push_back(line);
+  return true;
+}
+
+bool StabsToModule::Extern(const string& name, uint64_t address) {
+  Module::Extern *ext = new Module::Extern(address);
+  // Older libstdc++ demangle implementations can crash on unexpected
+  // input, so be careful about what gets passed in.
+  if (name.compare(0, 3, "__Z") == 0) {
+    ext->name = Demangle(name.substr(1));
+  } else if (name[0] == '_') {
+    ext->name = name.substr(1);
+  } else {
+    ext->name = name;
+  }
+  module_->AddExtern(ext);
+  return true;
+}
+
+void StabsToModule::Warning(const char *format, ...) {
+  va_list args;
+  va_start(args, format);
+  vfprintf(stderr, format, args);
+  va_end(args);
+}
+
+void StabsToModule::Finalize() {
+  // Sort our boundary list, so we can search it quickly.
+  sort(boundaries_.begin(), boundaries_.end());
+  // Sort all functions by address, just for neatness.
+  sort(functions_.begin(), functions_.end(),
+       Module::Function::CompareByAddress);
+
+  for (vector<Module::Function*>::const_iterator func_it = functions_.begin();
+       func_it != functions_.end();
+       func_it++) {
+    Module::Function *f = *func_it;
+    // Compute the function f's size.
+    vector<Module::Address>::const_iterator boundary
+        = std::upper_bound(boundaries_.begin(), boundaries_.end(), f->address);
+    if (boundary != boundaries_.end())
+      f->ranges[0].size = *boundary - f->address;
+    else
+      // If this is the last function in the module, and the STABS
+      // reader was unable to give us its ending address, then assign
+      // it a bogus, very large value.  This will happen at most once
+      // per module: since we've added all functions' addresses to the
+      // boundary table, only one can be the last.
+      f->ranges[0].size = kFallbackSize;
+
+    // Compute sizes for each of the function f's lines --- if it has any.
+    if (!f->lines.empty()) {
+      stable_sort(f->lines.begin(), f->lines.end(),
+                  Module::Line::CompareByAddress);
+      vector<Module::Line>::iterator last_line = f->lines.end() - 1;
+      for (vector<Module::Line>::iterator line_it = f->lines.begin();
+           line_it != last_line; line_it++)
+        line_it[0].size = line_it[1].address - line_it[0].address;
+      // Compute the size of the last line from f's end address.
+      last_line->size =
+        (f->ranges[0].address + f->ranges[0].size) - last_line->address;
+    }
+  }
+  // Now that everything has a size, add our functions to the module, and
+  // dispose of our private list.
+  module_->AddFunctions(functions_.begin(), functions_.end());
+  functions_.clear();
+}
+
+} // namespace google_breakpad
diff --git a/src/common/stabs_to_module.h b/src/common/stabs_to_module.h
new file mode 100644
index 0000000..6f6e0ed
--- /dev/null
+++ b/src/common/stabs_to_module.h
@@ -0,0 +1,143 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_stabs.h: Define the StabsToModule class, which receives
+// STABS debugging information from a parser and adds it to a Breakpad
+// symbol file.
+
+#ifndef BREAKPAD_COMMON_STABS_TO_MODULE_H_
+#define BREAKPAD_COMMON_STABS_TO_MODULE_H_
+
+#include <stdint.h>
+
+#include <string>
+#include <vector>
+
+#include "common/module.h"
+#include "common/stabs_reader.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using std::vector;
+
+// A StabsToModule is a handler that receives parsed STABS debugging 
+// information from a StabsReader, and uses that to populate
+// a Module. (All classes are in the google_breakpad namespace.) A
+// Module represents the contents of a Breakpad symbol file, and knows
+// how to write itself out as such. A StabsToModule thus acts as
+// the bridge between STABS and Breakpad data.
+// When processing Darwin Mach-O files, this also receives public linker
+// symbols, like those found in system libraries.
+class StabsToModule: public google_breakpad::StabsHandler {
+ public:
+  // Receive parsed debugging information from a StabsReader, and
+  // store it all in MODULE.
+  StabsToModule(Module *module) :
+      module_(module),
+      in_compilation_unit_(false),
+      comp_unit_base_address_(0),
+      current_function_(NULL),
+      current_source_file_(NULL),
+      current_source_file_name_(NULL) { }
+  ~StabsToModule();
+
+  // The standard StabsHandler virtual member functions.
+  bool StartCompilationUnit(const char *name, uint64_t address,
+                            const char *build_directory);
+  bool EndCompilationUnit(uint64_t address);
+  bool StartFunction(const string& name, uint64_t address);
+  bool EndFunction(uint64_t address);
+  bool Line(uint64_t address, const char *name, int number);
+  bool Extern(const string& name, uint64_t address);
+  void Warning(const char *format, ...);
+
+  // Do any final processing necessary to make module_ contain all the
+  // data provided by the STABS reader.
+  //
+  // Because STABS does not provide reliable size information for
+  // functions and lines, we need to make a pass over the data after
+  // processing all the STABS to compute those sizes.  We take care of
+  // that here.
+  void Finalize();
+
+ private:
+
+  // An arbitrary, but very large, size to use for functions whose
+  // size we can't compute properly.
+  static const uint64_t kFallbackSize = 0x10000000;
+
+  // The module we're contributing debugging info to.
+  Module *module_;
+
+  // The functions we've generated so far.  We don't add these to
+  // module_ as we parse them.  Instead, we wait until we've computed
+  // their ending address, and their lines' ending addresses.
+  //
+  // We could just stick them in module_ from the outset, but if
+  // module_ already contains data gathered from other debugging
+  // formats, that would complicate the size computation.
+  vector<Module::Function*> functions_;
+
+  // Boundary addresses.  STABS doesn't necessarily supply sizes for
+  // functions and lines, so we need to compute them ourselves by
+  // finding the next object.
+  vector<Module::Address> boundaries_;
+
+  // True if we are currently within a compilation unit: we have gotten a
+  // StartCompilationUnit call, but no matching EndCompilationUnit call
+  // yet. We use this for sanity checks.
+  bool in_compilation_unit_;
+
+  // The base address of the current compilation unit.  We use this to
+  // recognize functions we should omit from the symbol file.  (If you
+  // know the details of why we omit these, please patch this
+  // comment.)
+  Module::Address comp_unit_base_address_;
+
+  // The function we're currently contributing lines to.
+  Module::Function *current_function_;
+
+  // The last Module::File we got a line number in.
+  Module::File *current_source_file_;
+
+  // The pointer in the .stabstr section of the name that
+  // current_source_file_ is built from.  This allows us to quickly
+  // recognize when the current line is in the same file as the
+  // previous one (which it usually is).
+  const char *current_source_file_name_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // BREAKPAD_COMMON_STABS_TO_MODULE_H_
diff --git a/src/common/stabs_to_module_unittest.cc b/src/common/stabs_to_module_unittest.cc
new file mode 100644
index 0000000..9c134e7
--- /dev/null
+++ b/src/common/stabs_to_module_unittest.cc
@@ -0,0 +1,258 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// dump_stabs_unittest.cc: Unit tests for StabsToModule.
+
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/stabs_to_module.h"
+
+using google_breakpad::Module;
+using google_breakpad::StabsToModule;
+using std::vector;
+
+TEST(StabsToModule, SimpleCU) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // Feed in a simple compilation unit that defines a function with
+  // one line.
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit", 0x9f4d1271e50db93bLL,
+                                     "build-directory"));
+  EXPECT_TRUE(h.StartFunction("function", 0xfde4abbed390c394LL));
+  EXPECT_TRUE(h.Line(0xfde4abbed390c394LL, "source-file-name", 174823314));
+  EXPECT_TRUE(h.EndFunction(0xfde4abbed390c3a4LL));
+  EXPECT_TRUE(h.EndCompilationUnit(0xfee4abbed390c3a4LL));
+  h.Finalize();
+
+  // Now check to see what has been added to the Module.
+  Module::File *file = m.FindExistingFile("source-file-name");
+  ASSERT_TRUE(file != NULL);
+
+  vector<Module::Function*> functions;
+  m.GetFunctions(&functions, functions.end());
+  ASSERT_EQ((size_t) 1, functions.size());
+  Module::Function *function = functions[0];
+  EXPECT_STREQ("function", function->name.c_str());
+  EXPECT_EQ(0xfde4abbed390c394LL, function->address);
+  EXPECT_EQ(0x10U, function->ranges[0].size);
+  EXPECT_EQ(0U, function->parameter_size);
+  ASSERT_EQ((size_t) 1, function->lines.size());
+  Module::Line *line = &function->lines[0];
+  EXPECT_EQ(0xfde4abbed390c394LL, line->address);
+  EXPECT_EQ(0x10U, line->size); // derived from EndFunction
+  EXPECT_TRUE(line->file == file);
+  EXPECT_EQ(174823314, line->number);
+}
+
+#ifdef __GNUC__
+// Function name mangling can vary by compiler, so only run mangled-name
+// tests on GCC for simplicity's sake.
+TEST(StabsToModule, Externs) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // Feed in a few Extern symbols.
+  EXPECT_TRUE(h.Extern("_foo", 0xffff));
+  EXPECT_TRUE(h.Extern("__Z21dyldGlobalLockAcquirev", 0xaaaa));
+  EXPECT_TRUE(h.Extern("_MorphTableGetNextMorphChain", 0x1111));
+  h.Finalize();
+
+  // Now check to see what has been added to the Module.
+  vector<Module::Extern*> externs;
+  m.GetExterns(&externs, externs.end());
+  ASSERT_EQ((size_t) 3, externs.size());
+  Module::Extern *extern1 = externs[0];
+  EXPECT_STREQ("MorphTableGetNextMorphChain", extern1->name.c_str());
+  EXPECT_EQ((Module::Address)0x1111, extern1->address);
+  Module::Extern *extern2 = externs[1];
+  EXPECT_STREQ("dyldGlobalLockAcquire()", extern2->name.c_str());
+  EXPECT_EQ((Module::Address)0xaaaa, extern2->address);
+  Module::Extern *extern3 = externs[2];
+  EXPECT_STREQ("foo", extern3->name.c_str());
+  EXPECT_EQ((Module::Address)0xffff, extern3->address);
+}
+#endif  // __GNUC__
+
+TEST(StabsToModule, DuplicateFunctionNames) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // Compilation unit with one function, mangled name.
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit", 0xf2cfda36ecf7f46cLL,
+                                     "build-directory"));
+  EXPECT_TRUE(h.StartFunction("funcfoo",
+                              0xf2cfda36ecf7f46dLL));
+  EXPECT_TRUE(h.EndFunction(0));
+  EXPECT_TRUE(h.StartFunction("funcfoo",
+                              0xf2cfda36ecf7f46dLL));
+  EXPECT_TRUE(h.EndFunction(0));
+  EXPECT_TRUE(h.EndCompilationUnit(0));
+
+  h.Finalize();
+
+  // Now check to see what has been added to the Module.
+  Module::File *file = m.FindExistingFile("compilation-unit");
+  ASSERT_TRUE(file != NULL);
+
+  vector<Module::Function*> functions;
+  m.GetFunctions(&functions, functions.end());
+  ASSERT_EQ(1U, functions.size());
+
+  Module::Function *function = functions[0];
+  EXPECT_EQ(0xf2cfda36ecf7f46dLL, function->address);
+  EXPECT_LT(0U, function->ranges[0].size); // should have used dummy size
+  EXPECT_EQ(0U, function->parameter_size);
+  ASSERT_EQ(0U, function->lines.size());
+}
+
+TEST(InferSizes, LineSize) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // Feed in a simple compilation unit that defines a function with
+  // one line.
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit", 0xb4513962eff94e92LL,
+                                     "build-directory"));
+  EXPECT_TRUE(h.StartFunction("function", 0xb4513962eff94e92LL));
+  EXPECT_TRUE(h.Line(0xb4513962eff94e92LL, "source-file-name-1", 77396614));
+  EXPECT_TRUE(h.Line(0xb4513963eff94e92LL, "source-file-name-2", 87660088));
+  EXPECT_TRUE(h.EndFunction(0));  // unknown function end address
+  EXPECT_TRUE(h.EndCompilationUnit(0)); // unknown CU end address
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit-2", 0xb4523963eff94e92LL,
+                                     "build-directory-2")); // next boundary
+  EXPECT_TRUE(h.EndCompilationUnit(0));
+  h.Finalize();
+
+  // Now check to see what has been added to the Module.
+  Module::File *file1 = m.FindExistingFile("source-file-name-1");
+  ASSERT_TRUE(file1 != NULL);
+  Module::File *file2 = m.FindExistingFile("source-file-name-2");
+  ASSERT_TRUE(file2 != NULL);
+
+  vector<Module::Function*> functions;
+  m.GetFunctions(&functions, functions.end());
+  ASSERT_EQ((size_t) 1, functions.size());
+
+  Module::Function *function = functions[0];
+  EXPECT_STREQ("function", function->name.c_str());
+  EXPECT_EQ(0xb4513962eff94e92LL, function->address);
+  EXPECT_EQ(0x1000100000000ULL, function->ranges[0].size); // inferred from CU end
+  EXPECT_EQ(0U, function->parameter_size);
+  ASSERT_EQ((size_t) 2, function->lines.size());
+
+  Module::Line *line1 = &function->lines[0];
+  EXPECT_EQ(0xb4513962eff94e92LL, line1->address);
+  EXPECT_EQ(0x100000000ULL, line1->size); // derived from EndFunction
+  EXPECT_TRUE(line1->file == file1);
+  EXPECT_EQ(77396614, line1->number);
+
+  Module::Line *line2 = &function->lines[1];
+  EXPECT_EQ(0xb4513963eff94e92LL, line2->address);
+  EXPECT_EQ(0x1000000000000ULL, line2->size); // derived from EndFunction
+  EXPECT_TRUE(line2->file == file2);
+  EXPECT_EQ(87660088, line2->number);
+}
+
+#ifdef __GNUC__
+// Function name mangling can vary by compiler, so only run mangled-name
+// tests on GCC for simplicity's sake.
+TEST(FunctionNames, Mangled) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // Compilation unit with one function, mangled name.
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit", 0xf2cfda63cef7f46cLL,
+                                     "build-directory"));
+  EXPECT_TRUE(h.StartFunction("_ZNSt6vectorIySaIyEE9push_backERKy",
+                              0xf2cfda63cef7f46dLL));
+  EXPECT_TRUE(h.EndFunction(0));
+  EXPECT_TRUE(h.EndCompilationUnit(0));
+
+  h.Finalize();
+
+  // Now check to see what has been added to the Module.
+  Module::File *file = m.FindExistingFile("compilation-unit");
+  ASSERT_TRUE(file != NULL);
+
+  vector<Module::Function*> functions;
+  m.GetFunctions(&functions, functions.end());
+  ASSERT_EQ(1U, functions.size());
+
+  Module::Function *function = functions[0];
+  // This is GCC-specific, but we shouldn't be seeing STABS data anywhere
+  // but Linux.
+  EXPECT_STREQ("std::vector<unsigned long long, "
+               "std::allocator<unsigned long long> >::"
+               "push_back(unsigned long long const&)",
+               function->name.c_str());
+  EXPECT_EQ(0xf2cfda63cef7f46dLL, function->address);
+  EXPECT_LT(0U, function->ranges[0].size); // should have used dummy size
+  EXPECT_EQ(0U, function->parameter_size);
+  ASSERT_EQ(0U, function->lines.size());
+}
+#endif  // __GNUC__
+
+// The GNU toolchain can omit functions that are not used; however,
+// when it does so, it doesn't clean up the debugging information that
+// refers to them. In STABS, this results in compilation units whose
+// SO addresses are zero.
+TEST(Omitted, Function) {
+  Module m("name", "os", "arch", "id");
+  StabsToModule h(&m);
+
+  // The StartCompilationUnit and EndCompilationUnit calls may both have an
+  // address of zero if the compilation unit has had sections removed.
+  EXPECT_TRUE(h.StartCompilationUnit("compilation-unit", 0, "build-directory"));
+  EXPECT_TRUE(h.StartFunction("function", 0x2a133596));
+  EXPECT_TRUE(h.EndFunction(0));
+  EXPECT_TRUE(h.EndCompilationUnit(0));
+}
+
+// TODO --- if we actually cared about STABS. Even without these we've
+// got full coverage of non-failure source lines in dump_stabs.cc.
+
+// Line size from next line
+// Line size from function end
+// Line size from next function start
+// line size from cu end
+// line size from next cu start
+// fallback size is something plausible
+
+// function size from function end
+// function size from next function start
+// function size from cu end
+// function size from next cu start
+// fallback size is something plausible
+
+// omitting functions outside the compilation unit's address range
+// zero-line, one-line, many-line functions
diff --git a/src/common/stdio_wrapper.h b/src/common/stdio_wrapper.h
new file mode 100644
index 0000000..a3dd50a
--- /dev/null
+++ b/src/common/stdio_wrapper.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_COMMON_STDIO_WRAPPER_H
+#define GOOGLE_BREAKPAD_COMMON_STDIO_WRAPPER_H
+
+#include <stdio.h>
+
+#if defined(_MSC_VER) && MSC_VER < 1900
+#include <basetsd.h>
+
+#define snprintf _snprintf
+typedef SSIZE_T ssize_t;
+#endif
+
+
+#endif  // GOOGLE_BREAKPAD_COMMON_STDIO_WRAPPER_H
diff --git a/src/common/string_conversion.cc b/src/common/string_conversion.cc
new file mode 100644
index 0000000..6a78ed7
--- /dev/null
+++ b/src/common/string_conversion.cc
@@ -0,0 +1,155 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <string.h>
+
+#include "common/convert_UTF.h"
+#include "common/scoped_ptr.h"
+#include "common/string_conversion.h"
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using std::vector;
+
+void UTF8ToUTF16(const char* in, vector<uint16_t>* out) {
+  size_t source_length = strlen(in);
+  const UTF8* source_ptr = reinterpret_cast<const UTF8*>(in);
+  const UTF8* source_end_ptr = source_ptr + source_length;
+  // Erase the contents and zero fill to the expected size
+  out->clear();
+  out->insert(out->begin(), source_length, 0);
+  uint16_t* target_ptr = &(*out)[0];
+  uint16_t* target_end_ptr = target_ptr + out->capacity();
+  ConversionResult result = ConvertUTF8toUTF16(&source_ptr, source_end_ptr,
+                                               &target_ptr, target_end_ptr,
+                                               strictConversion);
+
+  // Resize to be the size of the # of converted characters + NULL
+  out->resize(result == conversionOK ? target_ptr - &(*out)[0] + 1: 0);
+}
+
+int UTF8ToUTF16Char(const char* in, int in_length, uint16_t out[2]) {
+  const UTF8* source_ptr = reinterpret_cast<const UTF8*>(in);
+  const UTF8* source_end_ptr = source_ptr + 1;
+  uint16_t* target_ptr = out;
+  uint16_t* target_end_ptr = target_ptr + 2;
+  out[0] = out[1] = 0;
+
+  // Process one character at a time
+  while (1) {
+    ConversionResult result = ConvertUTF8toUTF16(&source_ptr, source_end_ptr,
+                                                 &target_ptr, target_end_ptr,
+                                                 strictConversion);
+
+    if (result == conversionOK)
+      return static_cast<int>(source_ptr - reinterpret_cast<const UTF8*>(in));
+
+    // Add another character to the input stream and try again
+    source_ptr = reinterpret_cast<const UTF8*>(in);
+    ++source_end_ptr;
+
+    if (source_end_ptr > reinterpret_cast<const UTF8*>(in) + in_length)
+      break;
+  }
+
+  return 0;
+}
+
+void UTF32ToUTF16(const wchar_t* in, vector<uint16_t>* out) {
+  size_t source_length = wcslen(in);
+  const UTF32* source_ptr = reinterpret_cast<const UTF32*>(in);
+  const UTF32* source_end_ptr = source_ptr + source_length;
+  // Erase the contents and zero fill to the expected size
+  out->clear();
+  out->insert(out->begin(), source_length, 0);
+  uint16_t* target_ptr = &(*out)[0];
+  uint16_t* target_end_ptr = target_ptr + out->capacity();
+  ConversionResult result = ConvertUTF32toUTF16(&source_ptr, source_end_ptr,
+                                                &target_ptr, target_end_ptr,
+                                                strictConversion);
+
+  // Resize to be the size of the # of converted characters + NULL
+  out->resize(result == conversionOK ? target_ptr - &(*out)[0] + 1: 0);
+}
+
+void UTF32ToUTF16Char(wchar_t in, uint16_t out[2]) {
+  const UTF32* source_ptr = reinterpret_cast<const UTF32*>(&in);
+  const UTF32* source_end_ptr = source_ptr + 1;
+  uint16_t* target_ptr = out;
+  uint16_t* target_end_ptr = target_ptr + 2;
+  out[0] = out[1] = 0;
+  ConversionResult result = ConvertUTF32toUTF16(&source_ptr, source_end_ptr,
+                                                &target_ptr, target_end_ptr,
+                                                strictConversion);
+
+  if (result != conversionOK) {
+    out[0] = out[1] = 0;
+  }
+}
+
+static inline uint16_t Swap(uint16_t value) {
+  return (value >> 8) | static_cast<uint16_t>(value << 8);
+}
+
+string UTF16ToUTF8(const vector<uint16_t>& in, bool swap) {
+  const UTF16* source_ptr = &in[0];
+  scoped_array<uint16_t> source_buffer;
+
+  // If we're to swap, we need to make a local copy and swap each byte pair
+  if (swap) {
+    int idx = 0;
+    source_buffer.reset(new uint16_t[in.size()]);
+    UTF16* source_buffer_ptr = source_buffer.get();
+    for (vector<uint16_t>::const_iterator it = in.begin();
+         it != in.end(); ++it, ++idx)
+      source_buffer_ptr[idx] = Swap(*it);
+
+    source_ptr = source_buffer.get();
+  }
+
+  // The maximum expansion would be 4x the size of the input string.
+  const UTF16* source_end_ptr = source_ptr + in.size();
+  size_t target_capacity = in.size() * 4;
+  scoped_array<UTF8> target_buffer(new UTF8[target_capacity]);
+  UTF8* target_ptr = target_buffer.get();
+  UTF8* target_end_ptr = target_ptr + target_capacity;
+  ConversionResult result = ConvertUTF16toUTF8(&source_ptr, source_end_ptr,
+                                               &target_ptr, target_end_ptr,
+                                               strictConversion);
+
+  if (result == conversionOK) {
+    const char* targetPtr = reinterpret_cast<const char*>(target_buffer.get());
+    return targetPtr;
+  }
+
+  return "";
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/string_conversion.h b/src/common/string_conversion.h
new file mode 100644
index 0000000..02d1486
--- /dev/null
+++ b/src/common/string_conversion.h
@@ -0,0 +1,68 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// string_conversion.h: Conversion between different UTF-8/16/32 encodings.
+
+#ifndef COMMON_STRING_CONVERSION_H__
+#define COMMON_STRING_CONVERSION_H__
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+  
+using std::vector;
+
+// Convert |in| to UTF-16 into |out|.  Use platform byte ordering.  If the
+// conversion failed, |out| will be zero length.
+void UTF8ToUTF16(const char* in, vector<uint16_t>* out);
+
+// Convert at least one character (up to a maximum of |in_length|) from |in|
+// to UTF-16 into |out|.  Return the number of characters consumed from |in|.
+// Any unused characters in |out| will be initialized to 0.  No memory will
+// be allocated by this routine.
+int UTF8ToUTF16Char(const char* in, int in_length, uint16_t out[2]);
+
+// Convert |in| to UTF-16 into |out|.  Use platform byte ordering.  If the
+// conversion failed, |out| will be zero length.
+void UTF32ToUTF16(const wchar_t* in, vector<uint16_t>* out);
+
+// Convert |in| to UTF-16 into |out|.  Any unused characters in |out| will be
+// initialized to 0.  No memory will be allocated by this routine.
+void UTF32ToUTF16Char(wchar_t in, uint16_t out[2]);
+
+// Convert |in| to UTF-8.  If |swap| is true, swap bytes before converting.
+string UTF16ToUTF8(const vector<uint16_t>& in, bool swap);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_STRING_CONVERSION_H__
diff --git a/src/common/string_conversion_unittest.cc b/src/common/string_conversion_unittest.cc
new file mode 100644
index 0000000..e9f9b55
--- /dev/null
+++ b/src/common/string_conversion_unittest.cc
@@ -0,0 +1,64 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// string_conversion_unittest.cc: Unit tests for google_breakpad::UTF* helpers.
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/string_conversion.h"
+
+using google_breakpad::UTF8ToUTF16;
+using google_breakpad::UTF8ToUTF16Char;
+using google_breakpad::UTF16ToUTF8;
+using std::vector;
+
+TEST(StringConversionTest, UTF8ToUTF16) {
+  const char in[] = "aßc";
+  vector<uint16_t> out;
+  vector<uint16_t> exp{'a', 0xdf, 'c', 0};
+  UTF8ToUTF16(in, &out);
+  EXPECT_EQ(4u, out.size());
+  EXPECT_EQ(exp, out);
+}
+
+TEST(StringConversionTest, UTF8ToUTF16Char) {
+  const char in[] = "a";
+  uint16_t out[3] = {0xff, 0xff, 0xff};
+  EXPECT_EQ(1, UTF8ToUTF16Char(in, 1, out));
+  EXPECT_EQ('a', out[0]);
+  EXPECT_EQ(0, out[1]);
+  EXPECT_EQ(0xff, out[2]);
+}
+
+TEST(StringConversionTest, UTF16ToUTF8) {
+  vector<uint16_t> in{'a', 0xdf, 'c', 0};
+  EXPECT_EQ("aßc", UTF16ToUTF8(in, false));
+}
diff --git a/src/common/symbol_data.h b/src/common/symbol_data.h
new file mode 100644
index 0000000..2cf15a8
--- /dev/null
+++ b/src/common/symbol_data.h
@@ -0,0 +1,42 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_SYMBOL_DATA_H_
+#define COMMON_SYMBOL_DATA_H_
+
+// Control what data is used from the symbol file.
+enum SymbolData {
+  ALL_SYMBOL_DATA,
+  NO_CFI,
+  ONLY_CFI
+};
+
+#endif  // COMMON_SYMBOL_DATA_H_
diff --git a/src/common/test_assembler.cc b/src/common/test_assembler.cc
new file mode 100644
index 0000000..8a48bfb
--- /dev/null
+++ b/src/common/test_assembler.cc
@@ -0,0 +1,359 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// test_assembler.cc: Implementation of google_breakpad::TestAssembler.
+// See test_assembler.h for details.
+
+#include "common/test_assembler.h"
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <iterator>
+
+namespace google_breakpad {
+namespace test_assembler {
+
+using std::back_insert_iterator;
+
+Label::Label() : value_(new Binding()) { }
+Label::Label(uint64_t value) : value_(new Binding(value)) { }
+Label::Label(const Label& label) {
+  value_ = label.value_;
+  value_->Acquire();
+}
+Label::~Label() {
+  if (value_->Release()) delete value_;
+}
+
+Label& Label::operator=(uint64_t value) {
+  value_->Set(NULL, value);
+  return *this;
+}
+
+Label& Label::operator=(const Label& label) {
+  value_->Set(label.value_, 0);
+  return *this;
+}
+
+Label Label::operator+(uint64_t addend) const {
+  Label l;
+  l.value_->Set(this->value_, addend);
+  return l;
+}
+
+Label Label::operator-(uint64_t subtrahend) const {
+  Label l;
+  l.value_->Set(this->value_, -subtrahend);
+  return l;
+}
+
+// When NDEBUG is #defined, assert doesn't evaluate its argument. This
+// means you can't simply use assert to check the return value of a
+// function with necessary side effects.
+//
+// ALWAYS_EVALUATE_AND_ASSERT(x) evaluates x regardless of whether
+// NDEBUG is #defined; when NDEBUG is not #defined, it further asserts
+// that x is true.
+#ifdef NDEBUG
+#define ALWAYS_EVALUATE_AND_ASSERT(x) x
+#else
+#define ALWAYS_EVALUATE_AND_ASSERT(x) assert(x)
+#endif
+
+uint64_t Label::operator-(const Label& label) const {
+  uint64_t offset;
+  ALWAYS_EVALUATE_AND_ASSERT(IsKnownOffsetFrom(label, &offset));
+  return offset;
+}
+
+uint64_t Label::Value() const {
+  uint64_t v = 0;
+  ALWAYS_EVALUATE_AND_ASSERT(IsKnownConstant(&v));
+  return v;
+};
+
+bool Label::IsKnownConstant(uint64_t* value_p) const {
+  Binding* base;
+  uint64_t addend;
+  value_->Get(&base, &addend);
+  if (base != NULL) return false;
+  if (value_p) *value_p = addend;
+  return true;
+}
+
+bool Label::IsKnownOffsetFrom(const Label& label, uint64_t* offset_p) const
+{
+  Binding* label_base, *this_base;
+  uint64_t label_addend, this_addend;
+  label.value_->Get(&label_base, &label_addend);
+  value_->Get(&this_base, &this_addend);
+  // If this and label are related, Get will find their final
+  // common ancestor, regardless of how indirect the relation is. This
+  // comparison also handles the constant vs. constant case.
+  if (this_base != label_base) return false;
+  if (offset_p) *offset_p = this_addend - label_addend;
+  return true;
+}
+
+Label::Binding::Binding() : base_(this), addend_(), reference_count_(1) { }
+
+Label::Binding::Binding(uint64_t addend)
+    : base_(NULL), addend_(addend), reference_count_(1) { }
+
+Label::Binding::~Binding() {
+  assert(reference_count_ == 0);
+  if (base_ && base_ != this && base_->Release())
+    delete base_;
+}
+
+void Label::Binding::Set(Binding* binding, uint64_t addend) {
+  if (!base_ && !binding) {
+    // We're equating two constants. This could be okay.
+    assert(addend_ == addend);
+  } else if (!base_) {
+    // We are a known constant, but BINDING may not be, so turn the
+    // tables and try to set BINDING's value instead.
+    binding->Set(NULL, addend_ - addend);
+  } else {
+    if (binding) {
+      // Find binding's final value. Since the final value is always either
+      // completely unconstrained or a constant, never a reference to
+      // another variable (otherwise, it wouldn't be final), this
+      // guarantees we won't create cycles here, even for code like this:
+      //   l = m, m = n, n = l;
+      uint64_t binding_addend;
+      binding->Get(&binding, &binding_addend);
+      addend += binding_addend;
+    }
+
+    // It seems likely that setting a binding to itself is a bug
+    // (although I can imagine this might turn out to be helpful to
+    // permit).
+    assert(binding != this);
+
+    if (base_ != this) {
+      // Set the other bindings on our chain as well. Note that this
+      // is sufficient even though binding relationships form trees:
+      // All binding operations traverse their chains to the end, and
+      // all bindings related to us share some tail of our chain, so
+      // they will see the changes we make here.
+      base_->Set(binding, addend - addend_);
+      // We're not going to use base_ any more.
+      if (base_->Release()) delete base_;
+    }
+    
+    // Adopt BINDING as our base. Note that it should be correct to
+    // acquire here, after the release above, even though the usual
+    // reference-counting rules call for acquiring first, and then
+    // releasing: the self-reference assertion above should have
+    // complained if BINDING were 'this' or anywhere along our chain,
+    // so we didn't release BINDING.
+    if (binding) binding->Acquire();
+    base_ = binding;
+    addend_ = addend;
+  }
+}
+
+void Label::Binding::Get(Binding** base, uint64_t* addend) {
+  if (base_ && base_ != this) {
+    // Recurse to find the end of our reference chain (the root of our
+    // tree), and then rewrite every binding along the chain to refer
+    // to it directly, adjusting addends appropriately. (This is why
+    // this member function isn't this-const.)
+    Binding* final_base;
+    uint64_t final_addend;
+    base_->Get(&final_base, &final_addend);
+    if (final_base) final_base->Acquire();
+    if (base_->Release()) delete base_;
+    base_ = final_base;
+    addend_ += final_addend;
+  }
+  *base = base_;
+  *addend = addend_;
+}
+
+template<typename Inserter>
+static inline void InsertEndian(test_assembler::Endianness endianness,
+                                size_t size, uint64_t number, Inserter dest) {
+  assert(size > 0);
+  if (endianness == kLittleEndian) {
+    for (size_t i = 0; i < size; i++) {
+      *dest++ = (char) (number & 0xff);
+      number >>= 8;
+    }
+  } else {
+    assert(endianness == kBigEndian);
+    // The loop condition is odd, but it's correct for size_t.
+    for (size_t i = size - 1; i < size; i--)
+      *dest++ = (char) ((number >> (i * 8)) & 0xff);
+  }
+}
+
+Section& Section::Append(Endianness endianness, size_t size, uint64_t number) {
+  InsertEndian(endianness, size, number,
+               back_insert_iterator<string>(contents_));
+  return *this;
+}
+
+Section& Section::Append(Endianness endianness, size_t size,
+                         const Label& label) {
+  // If this label's value is known, there's no reason to waste an
+  // entry in references_ on it.
+  uint64_t value;
+  if (label.IsKnownConstant(&value))
+    return Append(endianness, size, value);
+
+  // This will get caught when the references are resolved, but it's
+  // nicer to find out earlier.
+  assert(endianness != kUnsetEndian);
+
+  references_.push_back(Reference(contents_.size(), endianness, size, label));
+  contents_.append(size, 0);
+  return *this;
+}
+
+#define ENDIANNESS_L kLittleEndian
+#define ENDIANNESS_B kBigEndian
+#define ENDIANNESS(e) ENDIANNESS_ ## e
+
+#define DEFINE_SHORT_APPEND_NUMBER_ENDIAN(e, bits)                      \
+  Section& Section::e ## bits(uint ## bits ## _t v) {                   \
+    InsertEndian(ENDIANNESS(e), bits / 8, v,                            \
+                 back_insert_iterator<string>(contents_));              \
+    return *this;                                                       \
+  }
+
+#define DEFINE_SHORT_APPEND_LABEL_ENDIAN(e, bits)                       \
+  Section& Section::e ## bits(const Label& v) {                         \
+    return Append(ENDIANNESS(e), bits / 8, v);                          \
+  }
+
+// Define L16, B32, and friends.
+#define DEFINE_SHORT_APPEND_ENDIAN(e, bits)                             \
+  DEFINE_SHORT_APPEND_NUMBER_ENDIAN(e, bits)                            \
+  DEFINE_SHORT_APPEND_LABEL_ENDIAN(e, bits)
+
+DEFINE_SHORT_APPEND_LABEL_ENDIAN(L, 8);
+DEFINE_SHORT_APPEND_LABEL_ENDIAN(B, 8);
+DEFINE_SHORT_APPEND_ENDIAN(L, 16);
+DEFINE_SHORT_APPEND_ENDIAN(L, 32);
+DEFINE_SHORT_APPEND_ENDIAN(L, 64);
+DEFINE_SHORT_APPEND_ENDIAN(B, 16);
+DEFINE_SHORT_APPEND_ENDIAN(B, 32);
+DEFINE_SHORT_APPEND_ENDIAN(B, 64);
+
+#define DEFINE_SHORT_APPEND_NUMBER_DEFAULT(bits)                        \
+  Section& Section::D ## bits(uint ## bits ## _t v) {                   \
+    InsertEndian(endianness_, bits / 8, v,                              \
+                 back_insert_iterator<string>(contents_));              \
+    return *this;                                                       \
+  }
+#define DEFINE_SHORT_APPEND_LABEL_DEFAULT(bits)                         \
+  Section& Section::D ## bits(const Label& v) {                         \
+    return Append(endianness_, bits / 8, v);                            \
+  }
+#define DEFINE_SHORT_APPEND_DEFAULT(bits)                               \
+  DEFINE_SHORT_APPEND_NUMBER_DEFAULT(bits)                              \
+  DEFINE_SHORT_APPEND_LABEL_DEFAULT(bits)
+
+DEFINE_SHORT_APPEND_LABEL_DEFAULT(8)
+DEFINE_SHORT_APPEND_DEFAULT(16);
+DEFINE_SHORT_APPEND_DEFAULT(32);
+DEFINE_SHORT_APPEND_DEFAULT(64);
+
+Section& Section::Append(const Section& section) {
+  size_t base = contents_.size();
+  contents_.append(section.contents_);
+  for (vector<Reference>::const_iterator it = section.references_.begin();
+       it != section.references_.end(); it++)
+    references_.push_back(Reference(base + it->offset, it->endianness,
+                                    it->size, it->label));
+  return *this;
+}
+
+Section& Section::LEB128(long long value) {
+  while (value < -0x40 || 0x3f < value) {
+    contents_ += (value & 0x7f) | 0x80;
+    if (value < 0)
+      value = (value >> 7) | ~(((unsigned long long) -1) >> 7);
+    else
+      value = (value >> 7);
+  }
+  contents_ += value & 0x7f;
+  return *this;
+}
+
+Section& Section::ULEB128(uint64_t value) {
+  while (value > 0x7f) {
+    contents_ += (value & 0x7f) | 0x80;
+    value = (value >> 7);
+  }
+  contents_ += value;
+  return *this;
+}
+
+Section& Section::Align(size_t alignment, uint8_t pad_byte) {
+  // ALIGNMENT must be a power of two.
+  assert(((alignment - 1) & alignment) == 0);
+  size_t new_size = (contents_.size() + alignment - 1) & ~(alignment - 1);
+  contents_.append(new_size - contents_.size(), pad_byte);
+  assert((contents_.size() & (alignment - 1)) == 0);
+  return *this;
+}
+
+void Section::Clear() {
+  contents_.clear();
+  references_.clear();
+}
+
+bool Section::GetContents(string* contents) {
+  // For each label reference, find the label's value, and patch it into
+  // the section's contents.
+  for (size_t i = 0; i < references_.size(); i++) {
+    Reference& r = references_[i];
+    uint64_t value;
+    if (!r.label.IsKnownConstant(&value)) {
+      fprintf(stderr, "Undefined label #%zu at offset 0x%zx\n", i, r.offset);
+      return false;
+    }
+    assert(r.offset < contents_.size());
+    assert(contents_.size() - r.offset >= r.size);
+    InsertEndian(r.endianness, r.size, value, contents_.begin() + r.offset);
+  }
+  contents->clear();
+  std::swap(contents_, *contents);
+  references_.clear();
+  return true;
+}
+
+}  // namespace test_assembler
+}  // namespace google_breakpad
diff --git a/src/common/test_assembler.h b/src/common/test_assembler.h
new file mode 100644
index 0000000..125ef45
--- /dev/null
+++ b/src/common/test_assembler.h
@@ -0,0 +1,484 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// test-assembler.h: interface to class for building complex binary streams.
+
+// To test the Breakpad symbol dumper and processor thoroughly, for
+// all combinations of host system and minidump processor
+// architecture, we need to be able to easily generate complex test
+// data like debugging information and minidump files.
+// 
+// For example, if we want our unit tests to provide full code
+// coverage for stack walking, it may be difficult to persuade the
+// compiler to generate every possible sort of stack walking
+// information that we want to support; there are probably DWARF CFI
+// opcodes that GCC never emits. Similarly, if we want to test our
+// error handling, we will need to generate damaged minidumps or
+// debugging information that (we hope) the client or compiler will
+// never produce on its own.
+//
+// google_breakpad::TestAssembler provides a predictable and
+// (relatively) simple way to generate complex formatted data streams
+// like minidumps and CFI. Furthermore, because TestAssembler is
+// portable, developers without access to (say) Visual Studio or a
+// SPARC assembler can still work on test data for those targets.
+
+#ifndef PROCESSOR_TEST_ASSEMBLER_H_
+#define PROCESSOR_TEST_ASSEMBLER_H_
+
+#include <list>
+#include <vector>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+using std::list;
+using std::vector;
+
+namespace test_assembler {
+
+// A Label represents a value not yet known that we need to store in a
+// section. As long as all the labels a section refers to are defined
+// by the time we retrieve its contents as bytes, we can use undefined
+// labels freely in that section's construction.
+//
+// A label can be in one of three states:
+// - undefined,
+// - defined as the sum of some other label and a constant, or
+// - a constant.
+// 
+// A label's value never changes, but it can accumulate constraints.
+// Adding labels and integers is permitted, and yields a label.
+// Subtracting a constant from a label is permitted, and also yields a
+// label. Subtracting two labels that have some relationship to each
+// other is permitted, and yields a constant.
+//
+// For example:
+//
+//   Label a;               // a's value is undefined
+//   Label b;               // b's value is undefined
+//   {
+//     Label c = a + 4;     // okay, even though a's value is unknown
+//     b = c + 4;           // also okay; b is now a+8
+//   }
+//   Label d = b - 2;       // okay; d == a+6, even though c is gone
+//   d.Value();             // error: d's value is not yet known
+//   d - a;                 // is 6, even though their values are not known
+//   a = 12;                // now b == 20, and d == 18
+//   d.Value();             // 18: no longer an error
+//   b.Value();             // 20
+//   d = 10;                // error: d is already defined.
+//
+// Label objects' lifetimes are unconstrained: notice that, in the
+// above example, even though a and b are only related through c, and
+// c goes out of scope, the assignment to a sets b's value as well. In
+// particular, it's not necessary to ensure that a Label lives beyond
+// Sections that refer to it.
+class Label {
+ public:
+  Label();                      // An undefined label.
+  Label(uint64_t value);       // A label with a fixed value
+  Label(const Label& value);    // A label equal to another.
+  ~Label();
+
+  // Return this label's value; it must be known.
+  //
+  // Providing this as a cast operator is nifty, but the conversions
+  // happen in unexpected places. In particular, ISO C++ says that
+  // Label + size_t becomes ambigious, because it can't decide whether
+  // to convert the Label to a uint64_t and then to a size_t, or use
+  // the overloaded operator that returns a new label, even though the
+  // former could fail if the label is not yet defined and the latter won't.
+  uint64_t Value() const;
+
+  Label& operator=(uint64_t value);
+  Label& operator=(const Label& value);
+  Label operator+(uint64_t addend) const;
+  Label operator-(uint64_t subtrahend) const;
+  uint64_t operator-(const Label& subtrahend) const;
+
+  // We could also provide == and != that work on undefined, but
+  // related, labels.
+
+  // Return true if this label's value is known. If VALUE_P is given,
+  // set *VALUE_P to the known value if returning true.
+  bool IsKnownConstant(uint64_t* value_p = NULL) const;
+
+  // Return true if the offset from LABEL to this label is known. If
+  // OFFSET_P is given, set *OFFSET_P to the offset when returning true.
+  //
+  // You can think of l.KnownOffsetFrom(m, &d) as being like 'd = l-m',
+  // except that it also returns a value indicating whether the
+  // subtraction is possible given what we currently know of l and m.
+  // It can be possible even if we don't know l and m's values. For
+  // example:
+  // 
+  //   Label l, m;
+  //   m = l + 10;
+  //   l.IsKnownConstant();             // false
+  //   m.IsKnownConstant();             // false
+  //   uint64_t d;                     
+  //   l.IsKnownOffsetFrom(m, &d);      // true, and sets d to -10.
+  //   l-m                              // -10
+  //   m-l                              // 10
+  //   m.Value()                        // error: m's value is not known
+  bool IsKnownOffsetFrom(const Label& label, uint64_t* offset_p = NULL) const;
+
+ private:
+  // A label's value, or if that is not yet known, how the value is
+  // related to other labels' values. A binding may be:
+  // - a known constant,
+  // - constrained to be equal to some other binding plus a constant, or
+  // - unconstrained, and free to take on any value.
+  //
+  // Many labels may point to a single binding, and each binding may
+  // refer to another, so bindings and labels form trees whose leaves
+  // are labels, whose interior nodes (and roots) are bindings, and
+  // where links point from children to parents. Bindings are
+  // reference counted, allowing labels to be lightweight, copyable,
+  // assignable, placed in containers, and so on.
+  class Binding {
+   public:
+    Binding();
+    Binding(uint64_t addend);
+    ~Binding();
+
+    // Increment our reference count.
+    void Acquire() { reference_count_++; };
+    // Decrement our reference count, and return true if it is zero.
+    bool Release() { return --reference_count_ == 0; }
+
+    // Set this binding to be equal to BINDING + ADDEND. If BINDING is
+    // NULL, then set this binding to the known constant ADDEND.
+    // Update every binding on this binding's chain to point directly
+    // to BINDING, or to be a constant, with addends adjusted
+    // appropriately.
+    void Set(Binding* binding, uint64_t value);
+
+    // Return what we know about the value of this binding.
+    // - If this binding's value is a known constant, set BASE to
+    //   NULL, and set ADDEND to its value.
+    // - If this binding is not a known constant but related to other
+    //   bindings, set BASE to the binding at the end of the relation
+    //   chain (which will always be unconstrained), and set ADDEND to the
+    //   value to add to that binding's value to get this binding's
+    //   value.
+    // - If this binding is unconstrained, set BASE to this, and leave
+    //   ADDEND unchanged.
+    void Get(Binding** base, uint64_t* addend);
+
+   private:
+    // There are three cases:
+    //
+    // - A binding representing a known constant value has base_ NULL,
+    //   and addend_ equal to the value.
+    //
+    // - A binding representing a completely unconstrained value has
+    //   base_ pointing to this; addend_ is unused.
+    //
+    // - A binding whose value is related to some other binding's
+    //   value has base_ pointing to that other binding, and addend_
+    //   set to the amount to add to that binding's value to get this
+    //   binding's value. We only represent relationships of the form
+    //   x = y+c.
+    //
+    // Thus, the bind_ links form a chain terminating in either a
+    // known constant value or a completely unconstrained value. Most
+    // operations on bindings do path compression: they change every
+    // binding on the chain to point directly to the final value,
+    // adjusting addends as appropriate.
+    Binding* base_;
+    uint64_t addend_;
+
+    // The number of Labels and Bindings pointing to this binding.
+    // (When a binding points to itself, indicating a completely
+    // unconstrained binding, that doesn't count as a reference.)
+    int reference_count_;
+  };
+
+  // This label's value.
+  Binding* value_;
+};
+
+inline Label operator+(uint64_t a, const Label& l) { return l + a; }
+// Note that int-Label isn't defined, as negating a Label is not an
+// operation we support.
+
+// Conventions for representing larger numbers as sequences of bytes.
+enum Endianness {
+  kBigEndian,        // Big-endian: the most significant byte comes first.
+  kLittleEndian,     // Little-endian: the least significant byte comes first.
+  kUnsetEndian,      // used internally
+};
+ 
+// A section is a sequence of bytes, constructed by appending bytes
+// to the end. Sections have a convenient and flexible set of member
+// functions for appending data in various formats: big-endian and
+// little-endian signed and unsigned values of different sizes;
+// LEB128 and ULEB128 values (see below), and raw blocks of bytes.
+//
+// If you need to append a value to a section that is not convenient
+// to compute immediately, you can create a label, append the
+// label's value to the section, and then set the label's value
+// later, when it's convenient to do so. Once a label's value is
+// known, the section class takes care of updating all previously
+// appended references to it.
+//
+// Once all the labels to which a section refers have had their
+// values determined, you can get a copy of the section's contents
+// as a string.
+//
+// Note that there is no specified "start of section" label. This is
+// because there are typically several different meanings for "the
+// start of a section": the offset of the section within an object
+// file, the address in memory at which the section's content appear,
+// and so on. It's up to the code that uses the Section class to 
+// keep track of these explicitly, as they depend on the application.
+class Section {
+ public:
+  Section(Endianness endianness = kUnsetEndian)
+      : endianness_(endianness) { };
+
+  // A base class destructor should be either public and virtual,
+  // or protected and nonvirtual.
+  virtual ~Section() { };
+
+  // Set the default endianness of this section to ENDIANNESS. This
+  // sets the behavior of the D<N> appending functions. If the
+  // assembler's default endianness was set, this is the 
+  void set_endianness(Endianness endianness) {
+    endianness_ = endianness;
+  }
+
+  // Return the default endianness of this section.
+  Endianness endianness() const { return endianness_; }
+
+  // Append the SIZE bytes at DATA or the contents of STRING to the
+  // end of this section. Return a reference to this section.
+  Section& Append(const uint8_t* data, size_t size) {
+    contents_.append(reinterpret_cast<const char*>(data), size);
+    return *this;
+  };
+  Section& Append(const string& data) {
+    contents_.append(data);
+    return *this;
+  };
+
+  // Append SIZE copies of BYTE to the end of this section. Return a
+  // reference to this section.
+  Section& Append(size_t size, uint8_t byte) {
+    contents_.append(size, (char) byte);
+    return *this;
+  }
+      
+  // Append NUMBER to this section. ENDIANNESS is the endianness to
+  // use to write the number. SIZE is the length of the number in
+  // bytes. Return a reference to this section.
+  Section& Append(Endianness endianness, size_t size, uint64_t number);
+  Section& Append(Endianness endianness, size_t size, const Label& label);
+
+  // Append SECTION to the end of this section. The labels SECTION
+  // refers to need not be defined yet.
+  //
+  // Note that this has no effect on any Labels' values, or on
+  // SECTION. If placing SECTION within 'this' provides new
+  // constraints on existing labels' values, then it's up to the
+  // caller to fiddle with those labels as needed.
+  Section& Append(const Section& section);
+
+  // Append the contents of DATA as a series of bytes terminated by
+  // a NULL character.
+  Section& AppendCString(const string& data) {
+    Append(data);
+    contents_ += '\0';
+    return *this;
+  }
+
+  // Append at most SIZE bytes from DATA; if DATA is less than SIZE bytes
+  // long, pad with '\0' characters.
+  Section& AppendCString(const string& data, size_t size) {
+    contents_.append(data, 0, size);
+    if (data.size() < size)
+      Append(size - data.size(), 0);
+    return *this;
+  }
+
+  // Append VALUE or LABEL to this section, with the given bit width and
+  // endianness. Return a reference to this section.
+  //
+  // The names of these functions have the form <ENDIANNESS><BITWIDTH>:
+  // <ENDIANNESS> is either 'L' (little-endian, least significant byte first),
+  //                        'B' (big-endian, most significant byte first), or
+  //                        'D' (default, the section's default endianness)
+  // <BITWIDTH> is 8, 16, 32, or 64.
+  //
+  // Since endianness doesn't matter for a single byte, all the
+  // <BITWIDTH>=8 functions are equivalent.
+  //
+  // These can be used to write both signed and unsigned values, as
+  // the compiler will properly sign-extend a signed value before
+  // passing it to the function, at which point the function's
+  // behavior is the same either way.
+  Section& L8(uint8_t value) { contents_ += value; return *this; }
+  Section& B8(uint8_t value) { contents_ += value; return *this; }
+  Section& D8(uint8_t value) { contents_ += value; return *this; }
+  Section &L16(uint16_t), &L32(uint32_t), &L64(uint64_t),
+          &B16(uint16_t), &B32(uint32_t), &B64(uint64_t),
+          &D16(uint16_t), &D32(uint32_t), &D64(uint64_t);
+  Section &L8(const Label& label),  &L16(const Label& label),
+          &L32(const Label& label), &L64(const Label& label),
+          &B8(const Label& label),  &B16(const Label& label),
+          &B32(const Label& label), &B64(const Label& label),
+          &D8(const Label& label),  &D16(const Label& label),
+          &D32(const Label& label), &D64(const Label& label);
+
+  // Append VALUE in a signed LEB128 (Little-Endian Base 128) form.
+  // 
+  // The signed LEB128 representation of an integer N is a variable
+  // number of bytes:
+  //
+  // - If N is between -0x40 and 0x3f, then its signed LEB128
+  //   representation is a single byte whose value is N.
+  // 
+  // - Otherwise, its signed LEB128 representation is (N & 0x7f) |
+  //   0x80, followed by the signed LEB128 representation of N / 128,
+  //   rounded towards negative infinity.
+  //
+  // In other words, we break VALUE into groups of seven bits, put
+  // them in little-endian order, and then write them as eight-bit
+  // bytes with the high bit on all but the last.
+  //
+  // Note that VALUE cannot be a Label (we would have to implement
+  // relaxation).
+  Section& LEB128(long long value);
+
+  // Append VALUE in unsigned LEB128 (Little-Endian Base 128) form.
+  // 
+  // The unsigned LEB128 representation of an integer N is a variable
+  // number of bytes:
+  //
+  // - If N is between 0 and 0x7f, then its unsigned LEB128
+  //   representation is a single byte whose value is N.
+  // 
+  // - Otherwise, its unsigned LEB128 representation is (N & 0x7f) |
+  //   0x80, followed by the unsigned LEB128 representation of N /
+  //   128, rounded towards negative infinity.
+  //
+  // Note that VALUE cannot be a Label (we would have to implement
+  // relaxation).
+  Section& ULEB128(uint64_t value);
+
+  // Jump to the next location aligned on an ALIGNMENT-byte boundary,
+  // relative to the start of the section. Fill the gap with PAD_BYTE.
+  // ALIGNMENT must be a power of two. Return a reference to this
+  // section.
+  Section& Align(size_t alignment, uint8_t pad_byte = 0);
+
+  // Clear the contents of this section.
+  void Clear();
+
+  // Return the current size of the section.
+  size_t Size() const { return contents_.size(); }
+
+  // Return a label representing the start of the section.
+  // 
+  // It is up to the user whether this label represents the section's
+  // position in an object file, the section's address in memory, or
+  // what have you; some applications may need both, in which case
+  // this simple-minded interface won't be enough. This class only
+  // provides a single start label, for use with the Here and Mark
+  // member functions.
+  //
+  // Ideally, we'd provide this in a subclass that actually knows more
+  // about the application at hand and can provide an appropriate
+  // collection of start labels. But then the appending member
+  // functions like Append and D32 would return a reference to the
+  // base class, not the derived class, and the chaining won't work.
+  // Since the only value here is in pretty notation, that's a fatal
+  // flaw.
+  Label start() const { return start_; }
+
+  // Return a label representing the point at which the next Appended
+  // item will appear in the section, relative to start().
+  Label Here() const { return start_ + Size(); }
+
+  // Set *LABEL to Here, and return a reference to this section.
+  Section& Mark(Label* label) { *label = Here(); return *this; }
+
+  // If there are no undefined label references left in this
+  // section, set CONTENTS to the contents of this section, as a
+  // string, and clear this section. Return true on success, or false
+  // if there were still undefined labels.
+  bool GetContents(string* contents);
+
+ private:
+  // Used internally. A reference to a label's value.
+  struct Reference {
+    Reference(size_t set_offset, Endianness set_endianness,  size_t set_size,
+              const Label& set_label)
+        : offset(set_offset), endianness(set_endianness), size(set_size),
+          label(set_label) { }
+      
+    // The offset of the reference within the section.
+    size_t offset;
+
+    // The endianness of the reference.
+    Endianness endianness;
+
+    // The size of the reference.
+    size_t size;
+
+    // The label to which this is a reference.
+    Label label;
+  };
+
+  // The default endianness of this section.
+  Endianness endianness_;
+
+  // The contents of the section.
+  string contents_;
+  
+  // References to labels within those contents.
+  vector<Reference> references_;
+
+  // A label referring to the beginning of the section.
+  Label start_;
+};
+
+}  // namespace test_assembler
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_TEST_ASSEMBLER_H_
diff --git a/src/common/test_assembler_unittest.cc b/src/common/test_assembler_unittest.cc
new file mode 100644
index 0000000..bda25eb
--- /dev/null
+++ b/src/common/test_assembler_unittest.cc
@@ -0,0 +1,1662 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// test_assembler_unittest.cc: Unit tests for google_breakpad::TestAssembler.
+
+#include <string>
+#include <string.h>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using testing::Test;
+
+TEST(ConstructLabel, Simple) {
+  Label l;
+}
+
+TEST(ConstructLabel, Undefined) {
+  Label l;
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(ConstructLabelDeathTest, Undefined) {
+  Label l;
+  ASSERT_DEATH(l.Value(), "IsKnownConstant\\(&v\\)");
+}
+
+TEST(ConstructLabel, Constant) {
+  Label l(0x060b9f974eaf301eULL);
+  uint64_t v;
+  EXPECT_TRUE(l.IsKnownConstant(&v));
+  EXPECT_EQ(v, 0x060b9f974eaf301eULL);
+  EXPECT_EQ(l.Value(), 0x060b9f974eaf301eULL);
+}
+
+TEST(ConstructLabel, Copy) {
+  Label l;
+  Label m(l);
+  uint64_t v;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m, &v));
+  EXPECT_EQ(0U, v);
+}
+
+// The left-hand-side of a label assignment can be either
+// unconstrained, related, or known. The right-hand-side can be any of
+// those, or an integer.
+TEST(Assignment, UnconstrainedToUnconstrained) {
+  Label l, m;
+  l = m;
+  EXPECT_EQ(0U, l-m);
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m));
+  uint64_t d;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m, &d));
+  EXPECT_EQ(0U, d);
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(Assignment, UnconstrainedToRelated) {
+  Label l, m, n;
+  l = n;
+  l = m;
+  EXPECT_EQ(0U, l-m);
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m));
+  uint64_t d;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m, &d));
+  EXPECT_EQ(0U, d);
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(Assignment, UnconstrainedToKnown) {
+  Label l, m;
+  l = 0x8fd16e55b20a39c1ULL;
+  l = m;
+  EXPECT_EQ(0U, l-m);
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m));
+  uint64_t d;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m, &d));
+  EXPECT_EQ(0U, d);
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x8fd16e55b20a39c1ULL, m.Value());
+}
+
+TEST(Assignment, RelatedToUnconstrained) {
+  Label l, m, n;
+  m = n;
+  l = m;
+  EXPECT_EQ(0U, l-n);
+  EXPECT_TRUE(l.IsKnownOffsetFrom(n));
+  uint64_t d;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(n, &d));
+  EXPECT_EQ(0U, d);
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(Assignment, RelatedToRelated) {
+  Label l, m, n, o;
+  l = n;
+  m = o;
+  l = m;
+  EXPECT_EQ(0U, n-o);
+  EXPECT_TRUE(n.IsKnownOffsetFrom(o));
+  uint64_t d;
+  EXPECT_TRUE(n.IsKnownOffsetFrom(o, &d));
+  EXPECT_EQ(0U, d);
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(Assignment, RelatedToKnown) {
+  Label l, m, n;
+  m = n;
+  l = 0xd2011f8c82ad56f2ULL;
+  l = m;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0xd2011f8c82ad56f2ULL, l.Value());
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0xd2011f8c82ad56f2ULL, m.Value());
+  EXPECT_TRUE(n.IsKnownConstant());
+  EXPECT_EQ(0xd2011f8c82ad56f2ULL, n.Value());
+}
+
+TEST(Assignment, KnownToUnconstrained) {
+  Label l, m;
+  m = 0x50b024c0d6073887ULL;
+  l = m;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0x50b024c0d6073887ULL, l.Value());
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x50b024c0d6073887ULL, m.Value());
+}
+
+TEST(Assignment, KnownToRelated) {
+  Label l, m, n;
+  l = n;
+  m = 0x5348883655c727e5ULL;
+  l = m;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0x5348883655c727e5ULL, l.Value());
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x5348883655c727e5ULL, m.Value());
+  EXPECT_TRUE(n.IsKnownConstant());
+  EXPECT_EQ(0x5348883655c727e5ULL, n.Value());
+}
+
+TEST(Assignment, KnownToKnown) {
+  Label l, m;
+  l = 0x36c209c20987564eULL;
+  m = 0x36c209c20987564eULL;
+  l = m;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0x36c209c20987564eULL, l.Value());
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x36c209c20987564eULL, m.Value());
+}
+
+TEST(Assignment, ConstantToUnconstrained) {
+  Label l;
+  l = 0xc02495f4d7f5a957ULL;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0xc02495f4d7f5a957ULL, l.Value());
+}
+
+TEST(Assignment, ConstantToRelated) {
+  Label l, m;
+  l = m;
+  l = 0x4577901cf275488dULL;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0x4577901cf275488dULL, l.Value());
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x4577901cf275488dULL, m.Value());
+}
+
+TEST(Assignment, ConstantToKnown) {
+  Label l;
+  l = 0xec0b9c369b7e8ea7ULL;
+  l = 0xec0b9c369b7e8ea7ULL;
+  EXPECT_TRUE(l.IsKnownConstant());
+  EXPECT_EQ(0xec0b9c369b7e8ea7ULL, l.Value());
+}
+
+TEST(AssignmentDeathTest, Self) {
+  Label l;
+  ASSERT_DEATH(l = l, "binding != this");
+}
+
+TEST(AssignmentDeathTest, IndirectCycle) {
+  Label l, m, n;
+  l = m;
+  m = n;
+  ASSERT_DEATH(n = l, "binding != this");
+}
+
+TEST(AssignmentDeathTest, Cycle) {
+  Label l, m, n, o;
+  l = m;
+  m = n;
+  o = n;
+  ASSERT_DEATH(o = l, "binding != this");
+}
+
+TEST(Addition, LabelConstant) {
+  Label l, m;
+  m = l + 0x5248d93e8bbe9497ULL;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(0x5248d93e8bbe9497ULL, d);
+  EXPECT_FALSE(m.IsKnownConstant());
+}
+
+TEST(Addition, ConstantLabel) {
+  Label l, m;
+  m = 0xf51e94e00d6e3c84ULL + l;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(0xf51e94e00d6e3c84ULL, d);
+  EXPECT_FALSE(m.IsKnownConstant());
+}
+
+TEST(Addition, KnownLabelConstant) {
+  Label l, m;
+  l = 0x16286307042ce0d8ULL;
+  m = l + 0x3fdddd91306719d7ULL;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(0x3fdddd91306719d7ULL, d);
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x16286307042ce0d8ULL + 0x3fdddd91306719d7ULL, m.Value());
+}
+
+TEST(Addition, ConstantKnownLabel) {
+  Label l, m;
+  l = 0x50f62d0cdd1031deULL;
+  m = 0x1b13462d8577c538ULL + l;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(0x1b13462d8577c538ULL, d);
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x50f62d0cdd1031deULL + 0x1b13462d8577c538ULL, m.Value());
+}
+
+TEST(Subtraction, LabelConstant) {
+  Label l, m;
+  m = l - 0x0620884d21d3138eULL;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(-0x0620884d21d3138eULL, d);
+  EXPECT_FALSE(m.IsKnownConstant());
+}
+
+TEST(Subtraction, KnownLabelConstant) {
+  Label l, m;
+  l = 0x6237fbaf9ef7929eULL;
+  m = l - 0x317730995d2ab6eeULL;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l));
+  uint64_t d;
+  EXPECT_TRUE(m.IsKnownOffsetFrom(l, &d));
+  EXPECT_EQ(-0x317730995d2ab6eeULL, d);
+  EXPECT_TRUE(m.IsKnownConstant());
+  EXPECT_EQ(0x6237fbaf9ef7929eULL - 0x317730995d2ab6eeULL, m.Value());
+}
+
+TEST(SubtractionDeathTest, LabelLabel) {
+  Label l, m;
+  ASSERT_DEATH(l - m, "IsKnownOffsetFrom\\(label, &offset\\)");
+}
+
+TEST(Subtraction, LabelLabel) {
+  Label l, m;
+  l = m + 0x7fa77ec63e28a17aULL;
+  EXPECT_EQ(0x7fa77ec63e28a17aULL, l - m);
+  EXPECT_EQ(-0x7fa77ec63e28a17aULL, m - l);
+}
+
+TEST(IsKnownConstant, Undefined) {
+  Label l;
+  EXPECT_FALSE(l.IsKnownConstant());
+}
+
+TEST(IsKnownConstant, RelatedLabel) {
+  Label l, m;
+  l = m;
+  EXPECT_FALSE(l.IsKnownConstant());
+  EXPECT_FALSE(m.IsKnownConstant());
+}
+
+TEST(IsKnownConstant, Constant) {
+  Label l;
+  l = 0xf374b1bdd6a22576ULL;
+  EXPECT_TRUE(l.IsKnownConstant());
+}
+
+TEST(IsKnownOffsetFrom, Unrelated) {
+  Label l, m;
+  EXPECT_FALSE(l.IsKnownOffsetFrom(m));
+}
+
+TEST(IsKnownOffsetFrom, Related) {
+  Label l, m;
+  l = m;
+  EXPECT_TRUE(l.IsKnownOffsetFrom(m));
+}
+
+// Test the construction of chains of related labels, and the
+// propagation of values through them.
+//
+// Although the relations between labels are supposed to behave
+// symmetrically --- that is, 'a = b' should put a and b in
+// indistinguishable states --- there's a distinction made internally
+// between the target (a) and the source (b).
+// 
+// So there are five test axes to cover:
+//
+// - Do we construct the chain with assignment ("Assign") or with constructors
+//   ("Construct")?
+//
+// - Do we set the value of the label at the start of the chain
+//   ("Start") or the label at the end ("End")?
+//
+// - Are we testing the propagation of a relationship between variable
+//   values ("Relation"), or the propagation of a known constant value
+//   ("Value")?
+//
+// - Do we set the value before building the chain ("Before") or after
+//   the chain has been built ("After")?
+//
+// - Do we add new relationships to the end of the existing chain
+//   ("Forward") or to the beginning ("Backward")?
+//
+// Of course, "Construct" and "Backward" can't be combined, which
+// eliminates eight combinations, and "Construct", "End", and "Before"
+// can't be combined, which eliminates two more, so there are are 22
+// combinations, not 32.
+
+TEST(LabelChain, AssignStartRelationBeforeForward) {
+  Label a, b, c, d;
+  Label x;
+  a = x;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, AssignStartRelationBeforeBackward) {
+  Label a, b, c, d;
+  Label x;
+  a = x;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, AssignStartRelationAfterForward) {
+  Label a, b, c, d;
+  Label x;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  a = x;
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, AssignStartRelationAfterBackward) {
+  Label a, b, c, d;
+  Label x;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  a = x;
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, AssignStartValueBeforeForward) {
+  Label a, b, c, d;
+  a = 0xa131200190546ac2ULL;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  EXPECT_EQ(0xa131200190546ac2ULL + 0x111U, d.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL + 0x11U,  c.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL + 0x1U,   b.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL + 0U,     a.Value());
+}
+
+TEST(LabelChain, AssignStartValueBeforeBackward) {
+  Label a, b, c, d;
+  a = 0x8da17e1670ad4fa2ULL;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL + 0x111U, d.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL + 0x11U,  c.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL + 0x1U,   b.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL + 0U,     a.Value());
+}
+
+TEST(LabelChain, AssignStartValueAfterForward) {
+  Label a, b, c, d;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  a = 0x99b8f51bafd41adaULL;
+  EXPECT_EQ(0x99b8f51bafd41adaULL + 0x111U, d.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL + 0x11U,  c.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL + 0x1U,   b.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL + 0U,     a.Value());
+}
+
+TEST(LabelChain, AssignStartValueAfterBackward) {
+  Label a, b, c, d;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  a = 0xc86ca1d97ab5df6eULL;
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL + 0x111U, d.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL + 0x11U,  c.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL + 0x1U,   b.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL + 0U,     a.Value());
+}
+
+TEST(LabelChain, AssignEndRelationBeforeForward) {
+  Label a, b, c, d;
+  Label x;
+  x = d;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  EXPECT_EQ(-(uint64_t)0x111U, a-x);
+  EXPECT_EQ(-(uint64_t)0x110U, b-x);
+  EXPECT_EQ(-(uint64_t)0x100U, c-x);
+  EXPECT_EQ(-(uint64_t)0U,     d-x);
+}
+
+TEST(LabelChain, AssignEndRelationBeforeBackward) {
+  Label a, b, c, d;
+  Label x;
+  x = d;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  EXPECT_EQ(-(uint64_t)0x111U, a-x);
+  EXPECT_EQ(-(uint64_t)0x110U, b-x);
+  EXPECT_EQ(-(uint64_t)0x100U, c-x);
+  EXPECT_EQ(-(uint64_t)0U,     d-x);
+}
+
+TEST(LabelChain, AssignEndRelationAfterForward) {
+  Label a, b, c, d;
+  Label x;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  x = d;
+  EXPECT_EQ(-(uint64_t)0x111U, a-x);
+  EXPECT_EQ(-(uint64_t)0x110U, b-x);
+  EXPECT_EQ(-(uint64_t)0x100U, c-x);
+  EXPECT_EQ(-(uint64_t)0x000U, d-x);
+}
+
+TEST(LabelChain, AssignEndRelationAfterBackward) {
+  Label a, b, c, d;
+  Label x;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  x = d;
+  EXPECT_EQ(-(uint64_t)0x111U, a-x);
+  EXPECT_EQ(-(uint64_t)0x110U, b-x);
+  EXPECT_EQ(-(uint64_t)0x100U, c-x);
+  EXPECT_EQ(-(uint64_t)0x000U, d-x);
+}
+
+TEST(LabelChain, AssignEndValueBeforeForward) {
+  Label a, b, c, d;
+  d = 0xa131200190546ac2ULL;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  EXPECT_EQ(0xa131200190546ac2ULL - 0x111, a.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL - 0x110, b.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL - 0x100, c.Value());
+  EXPECT_EQ(0xa131200190546ac2ULL - 0x000, d.Value());
+}
+
+TEST(LabelChain, AssignEndValueBeforeBackward) {
+  Label a, b, c, d;
+  d = 0x8da17e1670ad4fa2ULL;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL - 0x111, a.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL - 0x110, b.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL - 0x100, c.Value());
+  EXPECT_EQ(0x8da17e1670ad4fa2ULL - 0x000, d.Value());
+}
+
+TEST(LabelChain, AssignEndValueAfterForward) {
+  Label a, b, c, d;
+  b = a + 0x1;
+  c = b + 0x10;
+  d = c + 0x100;
+  d = 0x99b8f51bafd41adaULL;
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x111, a.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x110, b.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x100, c.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x000, d.Value());
+}
+
+TEST(LabelChain, AssignEndValueAfterBackward) {
+  Label a, b, c, d;
+  d = c + 0x100;
+  c = b + 0x10;
+  b = a + 0x1;
+  d = 0xc86ca1d97ab5df6eULL;
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL - 0x111, a.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL - 0x110, b.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL - 0x100, c.Value());
+  EXPECT_EQ(0xc86ca1d97ab5df6eULL - 0x000, d.Value());
+}
+
+TEST(LabelChain, ConstructStartRelationBeforeForward) {
+  Label x;
+  Label a(x);
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, ConstructStartRelationAfterForward) {
+  Label x;
+  Label a;
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  a = x;
+  EXPECT_EQ(0x111U, d-x);
+  EXPECT_EQ(0x11U,  c-x);
+  EXPECT_EQ(0x1U,   b-x);
+  EXPECT_EQ(0U,     a-x);
+}
+
+TEST(LabelChain, ConstructStartValueBeforeForward) {
+  Label a(0x5d234d177d01ccc8ULL);
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  EXPECT_EQ(0x5d234d177d01ccc8ULL + 0x111U, d.Value());
+  EXPECT_EQ(0x5d234d177d01ccc8ULL + 0x011U, c.Value());
+  EXPECT_EQ(0x5d234d177d01ccc8ULL + 0x001U, b.Value());
+  EXPECT_EQ(0x5d234d177d01ccc8ULL + 0x000U, a.Value());
+}
+
+TEST(LabelChain, ConstructStartValueAfterForward) {
+  Label a;
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  a = 0xded85d54586e84fcULL;
+  EXPECT_EQ(0xded85d54586e84fcULL + 0x111U, d.Value());
+  EXPECT_EQ(0xded85d54586e84fcULL + 0x011U, c.Value());
+  EXPECT_EQ(0xded85d54586e84fcULL + 0x001U, b.Value());
+  EXPECT_EQ(0xded85d54586e84fcULL + 0x000U, a.Value());
+}
+
+TEST(LabelChain, ConstructEndRelationAfterForward) {
+  Label x;
+  Label a;
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  x = d;
+  EXPECT_EQ(-(uint64_t)0x111U, a-x);
+  EXPECT_EQ(-(uint64_t)0x110U, b-x);
+  EXPECT_EQ(-(uint64_t)0x100U, c-x);
+  EXPECT_EQ(-(uint64_t)0x000U, d-x);
+}
+
+TEST(LabelChain, ConstructEndValueAfterForward) {
+  Label a;
+  Label b(a + 0x1);
+  Label c(b + 0x10);
+  Label d(c + 0x100);
+  d = 0x99b8f51bafd41adaULL;
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x111, a.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x110, b.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x100, c.Value());
+  EXPECT_EQ(0x99b8f51bafd41adaULL - 0x000, d.Value());
+}
+
+TEST(LabelTree, KnownValue) {
+  Label l, m, n, o, p;
+  l = m;
+  m = n;
+  o = p;
+  p = n;
+  l = 0x536b5de3d468a1b5ULL;
+  EXPECT_EQ(0x536b5de3d468a1b5ULL, o.Value());
+}
+
+TEST(LabelTree, Related) {
+  Label l, m, n, o, p;
+  l = m - 1;
+  m = n - 10;
+  o = p + 100;
+  p = n + 1000;
+  EXPECT_EQ(1111U, o - l);
+}
+
+TEST(EquationDeathTest, EqualConstants) {
+  Label m = 0x0d3962f280f07d24ULL;
+  Label n = 0x0d3962f280f07d24ULL;
+  m = n; // no death expected
+}
+
+TEST(EquationDeathTest, EqualIndirectConstants) {
+  Label m = 0xa347f1e5238fe6a1ULL;
+  Label n;
+  Label o = n;
+  n = 0xa347f1e5238fe6a1ULL;
+  n = m; // no death expected
+}
+
+TEST(EquationDeathTest, ConstantClash) {
+  Label m = 0xd4cc0f4f630ec741ULL;
+  Label n = 0x934cd2d8254fc3eaULL;
+  ASSERT_DEATH(m = n, "addend_ == addend");
+}
+
+TEST(EquationDeathTest, IndirectConstantClash) {
+  Label m = 0xd4cc0f4f630ec741ULL;
+  Label n, o;
+  n = o;
+  o = 0xcfbe3b83ac49ce86ULL;
+  ASSERT_DEATH(m = n, "addend_ == addend");
+}
+
+// Assigning to a related label may free the next Binding on its
+// chain. This test always passes; it is interesting to memory
+// checkers and coverage analysis.
+TEST(LabelReferenceCount, AssignmentFree) {
+  Label l;
+  {
+    Label m;
+    l = m;
+  }
+  // This should free m's Binding.
+  l = 0xca8bae92f0376d4fULL;
+  ASSERT_EQ(0xca8bae92f0376d4fULL, l.Value());
+}
+
+// Finding the value of a label may free the Binding it refers to. This test
+// always passes; it is interesting to memory checkers and coverage analysis.
+TEST(LabelReferenceCount, FindValueFree) {
+  Label l;
+  {
+    Label m, n;
+    l = m;
+    m = n;
+    n = 0x7a0b0c576672daafULL;
+    // At this point, l's Binding refers to m's Binding, which refers
+    // to n's binding.
+  }
+  // Now, l is the only reference keeping the three Bindings alive.
+  // Resolving its value should free l's and m's original bindings.
+  ASSERT_EQ(0x7a0b0c576672daafULL, l.Value());
+}
+
+TEST(ConstructSection, Simple) {
+  Section s;
+}
+
+TEST(ConstructSection, WithEndian) {
+  Section s(kBigEndian);
+}
+
+// A fixture class for TestAssembler::Section tests.
+class SectionFixture {
+ public:
+  Section section;
+  string contents;
+  static const uint8_t data[];
+  static const size_t data_size;
+};
+
+const uint8_t SectionFixture::data[] = {
+  0x87, 0x4f, 0x43, 0x67, 0x30, 0xd0, 0xd4, 0x0e
+};
+
+#define I0()
+#define I1(a) { a }
+#define I2(a,b) { a,b }
+#define I3(a,b,c) { a,b,c }
+#define I4(a,b,c,d) { a,b,c,d }
+#define I5(a,b,c,d,e) { a,b,c,d,e }
+#define I6(a,b,c,d,e,f) { a,b,c,d,e,f }
+#define I7(a,b,c,d,e,f,g) { a,b,c,d,e,f,g }
+#define I8(a,b,c,d,e,f,g,h) { a,b,c,d,e,f,g,h }
+#define I9(a,b,c,d,e,f,g,h,i) { a,b,c,d,e,f,g,h,i }
+#define ASSERT_BYTES(s, b)                                              \
+  do                                                                    \
+    {                                                                   \
+      static const uint8_t expected_bytes[] = b;                       \
+      ASSERT_EQ(sizeof(expected_bytes), s.size());                      \
+      ASSERT_TRUE(memcmp(s.data(), (const char*) expected_bytes,       \
+                         sizeof(expected_bytes)) == 0);                 \
+    }                                                                   \
+  while(0)
+
+class Append: public SectionFixture, public Test { };
+
+TEST_F(Append, Bytes) {
+  section.Append(data, sizeof(data));
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_EQ(sizeof(data), contents.size());
+  EXPECT_TRUE(0 == memcmp(contents.data(), (const char*) data, sizeof(data)));
+}
+
+TEST_F(Append, BytesTwice) {
+  section.Append(data, sizeof(data));
+  section.Append(data, sizeof(data));
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_EQ(2 * sizeof(data), contents.size());
+  ASSERT_TRUE(0 == memcmp(contents.data(), (const char*) data, sizeof(data)));
+  ASSERT_TRUE(0 == memcmp(contents.data() + sizeof(data),
+                          (const char*) data, sizeof(data)));
+}
+
+TEST_F(Append, String) {
+  string s1 = "howdy ";
+  string s2 = "there";
+  section.Append(s1);
+  section.Append(s2);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_STREQ(contents.c_str(), "howdy there");
+}
+
+TEST_F(Append, CString) {
+  section.AppendCString("howdy");
+  section.AppendCString("");
+  section.AppendCString("there");
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_EQ(string("howdy\0\0there\0", 13), contents);
+}
+
+TEST_F(Append, CStringSize) {
+  section.AppendCString("howdy", 3);
+  section.AppendCString("there", 5);
+  section.AppendCString("fred", 6);
+  section.AppendCString("natalie", 0);
+  section.AppendCString("", 10);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_EQ(string("howtherefred\0\0\0\0\0\0\0\0\0\0\0\0", 24), contents);
+}
+
+TEST_F(Append, RepeatedBytes) {
+  section.Append((size_t) 10, '*');
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_STREQ(contents.c_str(), "**********");
+}
+
+TEST_F(Append, GeneralLE1) {
+  section.Append(kLittleEndian, 1, 42);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I1(42));
+}
+
+TEST_F(Append, GeneralLE2) {
+  section.Append(kLittleEndian, 2, 0x15a1);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0xa1, 0x15));
+}
+
+TEST_F(Append, GeneralLE3) {
+  section.Append(kLittleEndian, 3, 0x59ae8d);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x8d, 0xae, 0x59));
+}
+
+TEST_F(Append, GeneralLE4) {
+  section.Append(kLittleEndian, 4, 0x51603c56);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I4(0x56, 0x3c, 0x60, 0x51));
+}
+
+TEST_F(Append, GeneralLE5) {
+  section.Append(kLittleEndian, 5, 0x385e2803b4ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0xb4, 0x03, 0x28, 0x5e, 0x38));
+}
+
+TEST_F(Append, GeneralLE6) {
+  section.Append(kLittleEndian, 6, 0xc7db9534dd1fULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I6(0x1f, 0xdd, 0x34, 0x95, 0xdb, 0xc7));
+}
+
+TEST_F(Append, GeneralLE7) {
+  section.Append(kLittleEndian, 7, 0x1445c9f1b843e6ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I7(0xe6, 0x43, 0xb8, 0xf1, 0xc9, 0x45, 0x14));
+}
+
+TEST_F(Append, GeneralLE8) {
+  section.Append(kLittleEndian, 8, 0xaf48019dfe5c01e5ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I8(0xe5, 0x01, 0x5c, 0xfe, 0x9d, 0x01, 0x48, 0xaf));
+}
+
+TEST_F(Append, GeneralBE1) {
+  section.Append(kBigEndian, 1, 0xd0ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I1(0xd0));
+}
+
+TEST_F(Append, GeneralBE2) {
+  section.Append(kBigEndian, 2, 0x2e7eULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2e, 0x7e));
+}
+
+TEST_F(Append, GeneralBE3) {
+  section.Append(kBigEndian, 3, 0x37dad6ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x37, 0xda, 0xd6));
+}
+
+TEST_F(Append, GeneralBE4) {
+  section.Append(kBigEndian, 4, 0x715935c7ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I4(0x71, 0x59, 0x35, 0xc7));
+}
+
+TEST_F(Append, GeneralBE5) {
+  section.Append(kBigEndian, 5, 0x42baeb02b7ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x42, 0xba, 0xeb, 0x02, 0xb7));
+}
+
+TEST_F(Append, GeneralBE6) {
+  section.Append(kBigEndian, 6, 0xf1cdf10e7b18ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I6(0xf1, 0xcd, 0xf1, 0x0e, 0x7b, 0x18));
+}
+
+TEST_F(Append, GeneralBE7) {
+  section.Append(kBigEndian, 7, 0xf50a724f0b0d20ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I7(0xf5, 0x0a, 0x72, 0x4f, 0x0b, 0x0d, 0x20));
+}
+
+TEST_F(Append, GeneralBE8) {
+  section.Append(kBigEndian, 8, 0xa6b2cb5e98dc9c16ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I8(0xa6, 0xb2, 0xcb, 0x5e, 0x98, 0xdc, 0x9c, 0x16));
+}
+
+TEST_F(Append, GeneralLE1Label) {
+  Label l;
+  section.Append(kLittleEndian, 1, l);
+  l = 42;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I1(42));
+}
+
+TEST_F(Append, GeneralLE2Label) {
+  Label l;
+  section.Append(kLittleEndian, 2, l);
+  l = 0x15a1;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0xa1, 0x15));
+}
+
+TEST_F(Append, GeneralLE3Label) {
+  Label l;
+  section.Append(kLittleEndian, 3, l);
+  l = 0x59ae8d;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x8d, 0xae, 0x59));
+}
+
+TEST_F(Append, GeneralLE4Label) {
+  Label l;
+  section.Append(kLittleEndian, 4, l);
+  l = 0x51603c56;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I4(0x56, 0x3c, 0x60, 0x51));
+}
+
+TEST_F(Append, GeneralLE5Label) {
+  Label l;
+  section.Append(kLittleEndian, 5, l);
+  l = 0x385e2803b4ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0xb4, 0x03, 0x28, 0x5e, 0x38));
+}
+
+TEST_F(Append, GeneralLE6Label) {
+  Label l;
+  section.Append(kLittleEndian, 6, l);
+  l = 0xc7db9534dd1fULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I6(0x1f, 0xdd, 0x34, 0x95, 0xdb, 0xc7));
+}
+
+TEST_F(Append, GeneralLE7Label) {
+  Label l;
+  section.Append(kLittleEndian, 7, l);
+  l = 0x1445c9f1b843e6ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I7(0xe6, 0x43, 0xb8, 0xf1, 0xc9, 0x45, 0x14));
+}
+
+TEST_F(Append, GeneralLE8Label) {
+  Label l;
+  section.Append(kLittleEndian, 8, l);
+  l = 0xaf48019dfe5c01e5ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I8(0xe5, 0x01, 0x5c, 0xfe, 0x9d, 0x01, 0x48, 0xaf));
+}
+
+TEST_F(Append, GeneralBE1Label) {
+  Label l;
+  section.Append(kBigEndian, 1, l);
+  l = 0xd0ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I1(0xd0));
+}
+
+TEST_F(Append, GeneralBE2Label) {
+  Label l;
+  section.Append(kBigEndian, 2, l);
+  l = 0x2e7eULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2e, 0x7e));
+}
+
+TEST_F(Append, GeneralBE3Label) {
+  Label l;
+  section.Append(kBigEndian, 3, l);
+  l = 0x37dad6ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x37, 0xda, 0xd6));
+}
+
+TEST_F(Append, GeneralBE4Label) {
+  Label l;
+  section.Append(kBigEndian, 4, l);
+  l = 0x715935c7ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I4(0x71, 0x59, 0x35, 0xc7));
+}
+
+TEST_F(Append, GeneralBE5Label) {
+  Label l;
+  section.Append(kBigEndian, 5, l);
+  l = 0x42baeb02b7ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x42, 0xba, 0xeb, 0x02, 0xb7));
+}
+
+TEST_F(Append, GeneralBE6Label) {
+  Label l;
+  section.Append(kBigEndian, 6, l);
+  l = 0xf1cdf10e7b18ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I6(0xf1, 0xcd, 0xf1, 0x0e, 0x7b, 0x18));
+}
+
+TEST_F(Append, GeneralBE7Label) {
+  Label l;
+  section.Append(kBigEndian, 7, l);
+  l = 0xf50a724f0b0d20ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I7(0xf5, 0x0a, 0x72, 0x4f, 0x0b, 0x0d, 0x20));
+}
+
+TEST_F(Append, GeneralBE8Label) {
+  Label l;
+  section.Append(kBigEndian, 8, l);
+  l = 0xa6b2cb5e98dc9c16ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I8(0xa6, 0xb2, 0xcb, 0x5e, 0x98, 0xdc, 0x9c, 0x16));
+}
+
+TEST_F(Append, B8) {
+  section.Append(1, 0x2a);
+  section.B8(0xd3U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0xd3));
+}
+
+TEST_F(Append, B8Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.B8(l);
+  l = 0x4bU;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0x4b));
+}
+
+TEST_F(Append, B16) {
+  section.Append(1, 0x2a);
+  section.B16(0x472aU);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x47, 0x2a));
+}
+
+TEST_F(Append, B16Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.B16(l);
+  l = 0x55e8U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x55, 0xe8));
+}
+
+TEST_F(Append, B32) {
+  section.Append(1, 0x2a);
+  section.B32(0xbd412cbcU);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0xbd, 0x41, 0x2c, 0xbc));
+}
+
+TEST_F(Append, B32Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.B32(l);
+  l = 0x208e37d5U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0x20, 0x8e, 0x37, 0xd5));
+}
+
+TEST_F(Append, B64) {
+  section.Append(1, 0x2a);
+  section.B64(0x3402a013111e68adULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0x34, 0x02, 0xa0, 0x13, 0x11, 0x1e, 0x68, 0xad));
+}
+
+TEST_F(Append, B64Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.B64(l);
+  l = 0x355dbfbb4ac6d57fULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0x35, 0x5d, 0xbf, 0xbb, 0x4a, 0xc6, 0xd5, 0x7f));
+}
+
+TEST_F(Append, L8) {
+  section.Append(1, 0x2a);
+  section.L8(0x26U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0x26));
+}
+
+TEST_F(Append, L8Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.L8(l);
+  l = 0xa8U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0xa8));
+}
+
+TEST_F(Append, L16) {
+  section.Append(1, 0x2a);
+  section.L16(0xca6dU);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x6d, 0xca));
+}
+
+TEST_F(Append, L16Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.L16(l);
+  l = 0xd21fU;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x1f, 0xd2));
+}
+
+TEST_F(Append, L32) {
+  section.Append(1, 0x2a);
+  section.L32(0x558f6181U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0x81, 0x61, 0x8f, 0x55));
+}
+
+TEST_F(Append, L32Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.L32(l);
+  l = 0x4b810f82U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0x82, 0x0f, 0x81, 0x4b));
+}
+
+TEST_F(Append, L64) {
+  section.Append(1, 0x2a);
+  section.L64(0x564384f7579515bfULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0xbf, 0x15, 0x95, 0x57, 0xf7, 0x84, 0x43, 0x56));
+}
+
+TEST_F(Append, L64Label) {
+  Label l;
+  section.Append(1, 0x2a);
+  section.L64(l);
+  l = 0x424b1d020667c8dbULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0xdb, 0xc8, 0x67, 0x06, 0x02, 0x1d, 0x4b, 0x42));
+}
+
+TEST_F(Append, D8Big) {
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D8(0xe6U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0xe6));
+}
+
+TEST_F(Append, D8BigLabel) {
+  Label l;
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D8(l);
+  l = 0xeeU;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0xee));
+}
+
+TEST_F(Append, D16Big) {
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D16(0x83b1U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x83, 0xb1));
+}
+
+TEST_F(Append, D16BigLabel) {
+  Label l;
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D16(l);
+  l = 0x5b55U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x5b, 0x55));
+}
+
+TEST_F(Append, D32Big) {
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D32(0xd0b0e431U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0xd0, 0xb0, 0xe4, 0x31));
+}
+
+TEST_F(Append, D32BigLabel) {
+  Label l;
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D32(l);
+  l = 0x312fb340U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0x31, 0x2f, 0xb3, 0x40));
+}
+
+TEST_F(Append, D64Big) {
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D64(0xb109843500dbcb16ULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0xb1, 0x09, 0x84, 0x35, 0x00, 0xdb, 0xcb, 0x16));
+}
+
+TEST_F(Append, D64BigLabel) {
+  Label l;
+  section.set_endianness(kBigEndian);
+  section.Append(1, 0x2a);
+  section.D64(l);
+  l = 0x9a0d61b70f671fd7ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0x9a, 0x0d, 0x61, 0xb7, 0x0f, 0x67, 0x1f, 0xd7));
+}
+
+TEST_F(Append, D8Little) {
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D8(0x42U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0x42));
+}
+
+TEST_F(Append, D8LittleLabel) {
+  Label l;
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D8(l);
+  l = 0x05U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I2(0x2a, 0x05));
+}
+
+TEST_F(Append, D16Little) {
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D16(0xc5c5U);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0xc5, 0xc5));
+}
+
+TEST_F(Append, D16LittleLabel) {
+  Label l;
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D16(l);
+  l = 0xb620U;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I3(0x2a, 0x20, 0xb6));
+}
+
+TEST_F(Append, D32Little) {
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D32(0x1a87d0feU);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0xfe, 0xd0, 0x87, 0x1a));
+}
+
+TEST_F(Append, D32LittleLabel) {
+  Label l;
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D32(l);
+  l = 0xb8012d6bU;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I5(0x2a, 0x6b, 0x2d, 0x01, 0xb8));
+}
+
+TEST_F(Append, D64Little) {
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D64(0x42de75c61375a1deULL);
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0xde, 0xa1, 0x75, 0x13, 0xc6, 0x75, 0xde, 0x42));
+}
+
+TEST_F(Append, D64LittleLabel) {
+  Label l;
+  section.set_endianness(kLittleEndian);
+  section.Append(1, 0x2a);
+  section.D64(l);
+  l = 0x8b3bececf3fb5312ULL;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, 
+               I9(0x2a, 0x12, 0x53, 0xfb, 0xf3, 0xec, 0xec, 0x3b, 0x8b));
+}
+
+TEST_F(Append, Variety) {
+  Label a, b, c, d, e, f, g, h;
+  section.Append(kBigEndian, 1, a)
+      .Append(kLittleEndian, 8, h)
+      .Append(kBigEndian, 1, 0x8bULL)
+      .Append(kLittleEndian, 8, 0x0ea56540448f4439ULL)
+      .Append(kBigEndian, 2, b)
+      .Append(kLittleEndian, 7, g)
+      .Append(kBigEndian, 2, 0xcf15ULL)
+      .Append(kLittleEndian, 7, 0x29694f04c5724aULL)
+      .Append(kBigEndian, 3, c)
+      .Append(kLittleEndian, 6, f)
+      .Append(kBigEndian, 3, 0x8c3ffdULL)
+      .Append(kLittleEndian, 6, 0x6f11ba80187aULL)
+      .Append(kBigEndian, 4, d)
+      .Append(kLittleEndian, 5, e)
+      .Append(kBigEndian, 4, 0x2fda2472ULL)
+      .Append(kLittleEndian, 5, 0x0aa02d423fULL)
+      .Append(kBigEndian, 5, e)
+      .Append(kLittleEndian, 4, d)
+      .Append(kBigEndian, 5, 0x53ba432138ULL)
+      .Append(kLittleEndian, 4, 0xf139ae60ULL)
+      .Append(kBigEndian, 6, f)
+      .Append(kLittleEndian, 3, c)
+      .Append(kBigEndian, 6, 0x168e436af716ULL)
+      .Append(kLittleEndian, 3, 0x3ef189ULL)
+      .Append(kBigEndian, 7, g)
+      .Append(kLittleEndian, 2, b)
+      .Append(kBigEndian, 7, 0xacd4ef233e47d9ULL)
+      .Append(kLittleEndian, 2, 0x5311ULL)
+      .Append(kBigEndian, 8, h)
+      .Append(kLittleEndian, 1, a)
+      .Append(kBigEndian, 8, 0x4668d5f1c93637a1ULL)
+      .Append(kLittleEndian, 1, 0x65ULL);
+  a = 0x79ac9bd8aa256b35ULL;
+  b = 0x22d13097ef86c91cULL;
+  c = 0xf204968b0a05862fULL;
+  d = 0x163177f15a0eb4ecULL;
+  e = 0xbd1b0f1d977f2246ULL;
+  f = 0x2b0842eee83c6461ULL;
+  g = 0x92f4b928a4bf875eULL;
+  h = 0x61a199a8f7286ba6ULL;
+  ASSERT_EQ(8 * 18U, section.Size());
+  ASSERT_TRUE(section.GetContents(&contents));
+
+  static const uint8_t expected[] = {
+    0x35,    0xa6, 0x6b, 0x28, 0xf7, 0xa8, 0x99, 0xa1, 0x61,
+    0x8b,    0x39, 0x44, 0x8f, 0x44, 0x40, 0x65, 0xa5, 0x0e,
+    0xc9, 0x1c,    0x5e, 0x87, 0xbf, 0xa4, 0x28, 0xb9, 0xf4,
+    0xcf, 0x15,    0x4a, 0x72, 0xc5, 0x04, 0x4f, 0x69, 0x29,
+    0x05, 0x86, 0x2f,    0x61, 0x64, 0x3c, 0xe8, 0xee, 0x42,
+    0x8c, 0x3f, 0xfd,    0x7a, 0x18, 0x80, 0xba, 0x11, 0x6f,
+    0x5a, 0x0e, 0xb4, 0xec,    0x46, 0x22, 0x7f, 0x97, 0x1d,
+    0x2f, 0xda, 0x24, 0x72,    0x3f, 0x42, 0x2d, 0xa0, 0x0a,
+    0x1d, 0x97, 0x7f, 0x22, 0x46,    0xec, 0xb4, 0x0e, 0x5a,
+    0x53, 0xba, 0x43, 0x21, 0x38,    0x60, 0xae, 0x39, 0xf1,
+    0x42, 0xee, 0xe8, 0x3c, 0x64, 0x61,    0x2f, 0x86, 0x05,
+    0x16, 0x8e, 0x43, 0x6a, 0xf7, 0x16,    0x89, 0xf1, 0x3e,
+    0xf4, 0xb9, 0x28, 0xa4, 0xbf, 0x87, 0x5e,    0x1c, 0xc9,
+    0xac, 0xd4, 0xef, 0x23, 0x3e, 0x47, 0xd9,    0x11, 0x53,
+    0x61, 0xa1, 0x99, 0xa8, 0xf7, 0x28, 0x6b, 0xa6,    0x35,
+    0x46, 0x68, 0xd5, 0xf1, 0xc9, 0x36, 0x37, 0xa1,    0x65,
+  };
+
+  ASSERT_TRUE(0 == memcmp(contents.data(), expected, sizeof(expected)));
+}
+
+TEST_F(Append, Section) {
+  section.Append("murder");
+  {
+    Section middle;
+    middle.Append(" she");
+    section.Append(middle);
+  }
+  section.Append(" wrote");
+  EXPECT_EQ(16U, section.Size());
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_STREQ(contents.c_str(), "murder she wrote");
+}
+
+TEST_F(Append, SectionRefs) {
+  section.Append("sugar ");
+  Label l;
+  {
+    Section middle;
+    Label m;
+    middle.B32(m);
+    section.Append(middle);
+    m = 0x66726565;
+  }
+  section.Append(" jazz");
+  EXPECT_EQ(15U, section.Size());
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_STREQ(contents.c_str(), "sugar free jazz");
+}
+
+TEST_F(Append, LEB128_0) {
+  section.LEB128(0);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\0", 1), contents);
+}
+
+TEST_F(Append, LEB128_0x3f) {
+  section.LEB128(0x3f);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x3f", 1), contents);
+}
+
+TEST_F(Append, LEB128_0x40) {
+  section.LEB128(0x40);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xc0\x00", 2), contents);
+}
+
+TEST_F(Append, LEB128_0x7f) {
+  section.LEB128(0x7f);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x00", 2), contents);
+}
+
+TEST_F(Append, LEB128_0x80) {
+  section.LEB128(0x80);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x01", 2), contents);
+}
+
+TEST_F(Append, LEB128_0xff) {
+  section.LEB128(0xff);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x01", 2), contents);
+}
+
+TEST_F(Append, LEB128_0x1fff) {
+  section.LEB128(0x1fff);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x3f", 2), contents);
+}
+
+TEST_F(Append, LEB128_0x2000) {
+  section.LEB128(0x2000);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\xc0\x00", 3), contents);
+}
+
+TEST_F(Append, LEB128_n1) {
+  section.LEB128(-1);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x7f", 1), contents);
+}
+
+TEST_F(Append, LEB128_n0x40) {
+  section.LEB128(-0x40);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x40", 1), contents);
+}
+
+TEST_F(Append, LEB128_n0x41) {
+  section.LEB128(-0x41);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xbf\x7f", 2), contents);
+}
+
+TEST_F(Append, LEB128_n0x7f) {
+  section.LEB128(-0x7f);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x81\x7f", 2), contents);
+}
+
+TEST_F(Append, LEB128_n0x80) {
+  section.LEB128(-0x80);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x7f", 2), contents);
+}
+
+TEST_F(Append, LEB128_n0x2000) {
+  section.LEB128(-0x2000);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x40", 2), contents);
+}
+
+TEST_F(Append, LEB128_n0x2001) {
+  section.LEB128(-0x2001);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\xbf\x7f", 3), contents);
+}
+
+TEST_F(Append,ULEB128_0) {
+  section.ULEB128(0);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\0", 1), contents);
+}
+
+TEST_F(Append,ULEB128_1) {
+  section.ULEB128(1);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x01", 1), contents);
+}
+
+TEST_F(Append,ULEB128_0x3f) {
+  section.ULEB128(0x3f);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x3f", 1), contents);
+}
+
+TEST_F(Append,ULEB128_0x40) {
+  section.ULEB128(0x40);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x40", 1), contents);
+}
+
+TEST_F(Append,ULEB128_0x7f) {
+  section.ULEB128(0x7f);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x7f", 1), contents);
+}
+
+TEST_F(Append,ULEB128_0x80) {
+  section.ULEB128(0x80);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x01", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0xff) {
+  section.ULEB128(0xff);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x01", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0x100) {
+  section.ULEB128(0x100);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x02", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0x1fff) {
+  section.ULEB128(0x1fff);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x3f", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0x2000) {
+  section.ULEB128(0x2000);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x40", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0x3fff) {
+  section.ULEB128(0x3fff);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xff\x7f", 2), contents);
+}
+
+TEST_F(Append,ULEB128_0x4000) {
+  section.ULEB128(0x4000);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x80\x01", 3), contents);
+}
+
+TEST_F(Append,ULEB128_12857) {
+  section.ULEB128(12857);
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\xb9\x64", 2), contents);
+}
+
+TEST_F(Append, LEBChain) {
+  section.LEB128(-0x80).ULEB128(12857).Append("*");
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x80\x7f\xb9\x64*", 5), contents);
+}
+
+
+class GetContents: public SectionFixture, public Test { };
+
+TEST_F(GetContents, Undefined) {
+  Label l;
+  section.Append(kLittleEndian, 8, l);
+  ASSERT_FALSE(section.GetContents(&contents));
+}
+
+TEST_F(GetContents, ClearsContents) {
+  section.Append((size_t) 10, '*');
+  EXPECT_EQ(10U, section.Size());
+  EXPECT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(0U, section.Size());
+}
+
+TEST_F(GetContents, ClearsReferences) {
+  Label l;
+  section.Append(kBigEndian, 1, l);
+  l = 42;
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_BYTES(contents, I1(42));
+  ASSERT_TRUE(section.GetContents(&contents)); // should not die
+}
+
+class Miscellanea: public SectionFixture, public Test { };
+
+TEST_F(Miscellanea, Clear) {
+  section.Append("howdy");
+  Label l;
+  section.L32(l);
+  EXPECT_EQ(9U, section.Size());
+  section.Clear();
+  EXPECT_EQ(0U, section.Size());
+  l = 0x8d231bf0U;
+  ASSERT_TRUE(section.GetContents(&contents)); // should not die
+}
+
+TEST_F(Miscellanea, Align) {
+  section.Append("*");
+  EXPECT_EQ(1U, section.Size());
+  section.Align(4).Append("*");
+  EXPECT_EQ(5U, section.Size());
+  section.Append("*").Align(2);
+  EXPECT_EQ(6U, section.Size());
+}
+
+TEST_F(Miscellanea, AlignPad) {
+  section.Append("*");
+  EXPECT_EQ(1U, section.Size());
+  section.Align(4, ' ').Append("*");
+  EXPECT_EQ(5U, section.Size());
+  section.Append("*").Align(2, ' ');
+  EXPECT_EQ(6U, section.Size());
+  ASSERT_TRUE(section.GetContents(&contents));
+  ASSERT_EQ(string("*   **"), contents);
+}
+
+TEST_F(Miscellanea, StartHereMark) {
+  Label m;
+  section.Append(42, ' ').Mark(&m).Append(13, '+');
+  EXPECT_EQ(42U, m - section.start());
+  EXPECT_EQ(42U + 13U, section.Here() - section.start());
+  EXPECT_FALSE(section.start().IsKnownConstant());
+  EXPECT_FALSE(m.IsKnownConstant());
+  EXPECT_FALSE(section.Here().IsKnownConstant());
+}
+
+TEST_F(Miscellanea, Endianness) {
+  section.set_endianness(kBigEndian);
+  EXPECT_EQ(kBigEndian, section.endianness());
+  section.set_endianness(kLittleEndian);
+  EXPECT_EQ(kLittleEndian, section.endianness());
+}
diff --git a/src/common/testdata/func-line-pairing.h b/src/common/testdata/func-line-pairing.h
new file mode 100644
index 0000000..05538f9
--- /dev/null
+++ b/src/common/testdata/func-line-pairing.h
@@ -0,0 +1,676 @@
+// -*- mode: c++ -*-
+
+// Test data for pairing functions and lines.
+// 
+// For a pair of functions that are adjacent (10,20),(20,25) and a
+// pair that are not (10,15),(20,25), we include a test case for every
+// possible arrangement of two lines relative to those functions. We
+// include cases only for non-empty ranges, since empty functions and
+// lines are dropped before we do any pairing.
+//
+// Each test case is represented by a macro call of the form:
+// 
+//   PAIRING(func1_start, func1_end, func2_start, func2_end,
+//           line1_start, line1_end, line2_start, line2_end,
+//           func1_num_lines, func2_num_lines,
+//           func1_line1_start, func1_line1_end,
+//           func1_line2_start, func1_line2_end,
+//           func2_line1_start, func2_line1_end,
+//           func2_line2_start, func2_line2_end,
+//           uncovered_funcs, uncovered_lines)
+//
+// where:
+// - funcN_{start,end} is the range of the N'th function
+// - lineN_{start,end} is the range of the N'th function
+// - funcN_num_lines is the number of source lines that should be
+//   paired with the N'th function
+// - funcN_lineM_{start,end} is the range of the M'th line
+//   paired with the N'th function, where 0,0 indicates that
+//   there should be no such line paired
+// - uncovered_funcs is the number of functions with area that is
+//   uncovered by any line, and
+// - uncovered_lines is the reverse.
+
+//      func1   func2    line1   line2    num    pairing1        pairing2       uncovered
+PAIRING(10, 20, 20, 25,  6,  7,  7,  8,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #0
+PAIRING(10, 20, 20, 25,  6,  7,  7, 10,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #1
+PAIRING(10, 20, 20, 25,  6,  7,  7, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #2
+PAIRING(10, 20, 20, 25,  6,  7,  7, 20,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 2) // #3
+PAIRING(10, 20, 20, 25,  6,  7,  7, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 2) // #4
+PAIRING(10, 20, 20, 25,  6,  7,  7, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #5
+PAIRING(10, 20, 20, 25,  6,  7,  7, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #6
+PAIRING(10, 20, 20, 25,  6,  7,  8,  9,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #7
+PAIRING(10, 20, 20, 25,  6,  7,  8, 10,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #8
+PAIRING(10, 20, 20, 25,  6,  7,  8, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #9
+PAIRING(10, 20, 20, 25,  6,  7,  8, 20,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 2) // #10
+PAIRING(10, 20, 20, 25,  6,  7,  8, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 2) // #11
+PAIRING(10, 20, 20, 25,  6,  7,  8, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #12
+PAIRING(10, 20, 20, 25,  6,  7,  8, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #13
+PAIRING(10, 20, 20, 25,  6,  7, 10, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #14
+PAIRING(10, 20, 20, 25,  6,  7, 10, 20,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 1) // #15
+PAIRING(10, 20, 20, 25,  6,  7, 10, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 1) // #16
+PAIRING(10, 20, 20, 25,  6,  7, 10, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #17
+PAIRING(10, 20, 20, 25,  6,  7, 10, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #18
+PAIRING(10, 20, 20, 25,  6,  7, 11, 12,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #19
+PAIRING(10, 20, 20, 25,  6,  7, 11, 20,   1, 0, 11, 20,  0,  0,  0,  0,  0,  0,   2, 1) // #20
+PAIRING(10, 20, 20, 25,  6,  7, 11, 21,   1, 1, 11, 20,  0,  0, 20, 21,  0,  0,   2, 1) // #21
+PAIRING(10, 20, 20, 25,  6,  7, 11, 25,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 1) // #22
+PAIRING(10, 20, 20, 25,  6,  7, 11, 26,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 2) // #23
+PAIRING(10, 20, 20, 25,  6,  7, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #24
+PAIRING(10, 20, 20, 25,  6,  7, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #25
+PAIRING(10, 20, 20, 25,  6,  7, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #26
+PAIRING(10, 20, 20, 25,  6,  7, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #27
+PAIRING(10, 20, 20, 25,  6,  7, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #28
+PAIRING(10, 20, 20, 25,  6,  7, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #29
+PAIRING(10, 20, 20, 25,  6,  7, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #30
+PAIRING(10, 20, 20, 25,  6,  7, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #31
+PAIRING(10, 20, 20, 25,  6, 10, 10, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #32
+PAIRING(10, 20, 20, 25,  6, 10, 10, 20,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 1) // #33
+PAIRING(10, 20, 20, 25,  6, 10, 10, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 1) // #34
+PAIRING(10, 20, 20, 25,  6, 10, 10, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #35
+PAIRING(10, 20, 20, 25,  6, 10, 10, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #36
+PAIRING(10, 20, 20, 25,  6, 10, 11, 12,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #37
+PAIRING(10, 20, 20, 25,  6, 10, 11, 20,   1, 0, 11, 20,  0,  0,  0,  0,  0,  0,   2, 1) // #38
+PAIRING(10, 20, 20, 25,  6, 10, 11, 21,   1, 1, 11, 20,  0,  0, 20, 21,  0,  0,   2, 1) // #39
+PAIRING(10, 20, 20, 25,  6, 10, 11, 25,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 1) // #40
+PAIRING(10, 20, 20, 25,  6, 10, 11, 26,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 2) // #41
+PAIRING(10, 20, 20, 25,  6, 10, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #42
+PAIRING(10, 20, 20, 25,  6, 10, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #43
+PAIRING(10, 20, 20, 25,  6, 10, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #44
+PAIRING(10, 20, 20, 25,  6, 10, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #45
+PAIRING(10, 20, 20, 25,  6, 10, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #46
+PAIRING(10, 20, 20, 25,  6, 10, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #47
+PAIRING(10, 20, 20, 25,  6, 10, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #48
+PAIRING(10, 20, 20, 25,  6, 10, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #49
+PAIRING(10, 20, 20, 25,  6, 11, 11, 12,   2, 0, 10, 11, 11, 12,  0,  0,  0,  0,   2, 1) // #50
+PAIRING(10, 20, 20, 25,  6, 11, 11, 20,   2, 0, 10, 11, 11, 20,  0,  0,  0,  0,   1, 1) // #51
+PAIRING(10, 20, 20, 25,  6, 11, 11, 21,   2, 1, 10, 11, 11, 20, 20, 21,  0,  0,   1, 1) // #52
+PAIRING(10, 20, 20, 25,  6, 11, 11, 25,   2, 1, 10, 11, 11, 20, 20, 25,  0,  0,   0, 1) // #53
+PAIRING(10, 20, 20, 25,  6, 11, 11, 26,   2, 1, 10, 11, 11, 20, 20, 25,  0,  0,   0, 2) // #54
+PAIRING(10, 20, 20, 25,  6, 11, 12, 13,   2, 0, 10, 11, 12, 13,  0,  0,  0,  0,   2, 1) // #55
+PAIRING(10, 20, 20, 25,  6, 11, 12, 20,   2, 0, 10, 11, 12, 20,  0,  0,  0,  0,   2, 1) // #56
+PAIRING(10, 20, 20, 25,  6, 11, 12, 21,   2, 1, 10, 11, 12, 20, 20, 21,  0,  0,   2, 1) // #57
+PAIRING(10, 20, 20, 25,  6, 11, 12, 25,   2, 1, 10, 11, 12, 20, 20, 25,  0,  0,   1, 1) // #58
+PAIRING(10, 20, 20, 25,  6, 11, 12, 26,   2, 1, 10, 11, 12, 20, 20, 25,  0,  0,   1, 2) // #59
+PAIRING(10, 20, 20, 25,  6, 11, 20, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 1) // #60
+PAIRING(10, 20, 20, 25,  6, 11, 20, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #61
+PAIRING(10, 20, 20, 25,  6, 11, 20, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #62
+PAIRING(10, 20, 20, 25,  6, 11, 21, 22,   1, 1, 10, 11,  0,  0, 21, 22,  0,  0,   2, 1) // #63
+PAIRING(10, 20, 20, 25,  6, 11, 21, 25,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 1) // #64
+PAIRING(10, 20, 20, 25,  6, 11, 21, 26,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 2) // #65
+PAIRING(10, 20, 20, 25,  6, 11, 25, 26,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #66
+PAIRING(10, 20, 20, 25,  6, 11, 26, 27,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #67
+PAIRING(10, 20, 20, 25,  6, 20, 20, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 1) // #68
+PAIRING(10, 20, 20, 25,  6, 20, 20, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #69
+PAIRING(10, 20, 20, 25,  6, 20, 20, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #70
+PAIRING(10, 20, 20, 25,  6, 20, 21, 22,   1, 1, 10, 20,  0,  0, 21, 22,  0,  0,   1, 1) // #71
+PAIRING(10, 20, 20, 25,  6, 20, 21, 25,   1, 1, 10, 20,  0,  0, 21, 25,  0,  0,   1, 1) // #72
+PAIRING(10, 20, 20, 25,  6, 20, 21, 26,   1, 1, 10, 20,  0,  0, 21, 25,  0,  0,   1, 2) // #73
+PAIRING(10, 20, 20, 25,  6, 20, 25, 26,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 2) // #74
+PAIRING(10, 20, 20, 25,  6, 20, 26, 27,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 2) // #75
+PAIRING(10, 20, 20, 25,  6, 21, 21, 22,   1, 2, 10, 20,  0,  0, 20, 21, 21, 22,   1, 1) // #76
+PAIRING(10, 20, 20, 25,  6, 21, 21, 25,   1, 2, 10, 20,  0,  0, 20, 21, 21, 25,   0, 1) // #77
+PAIRING(10, 20, 20, 25,  6, 21, 21, 26,   1, 2, 10, 20,  0,  0, 20, 21, 21, 25,   0, 2) // #78
+PAIRING(10, 20, 20, 25,  6, 21, 22, 23,   1, 2, 10, 20,  0,  0, 20, 21, 22, 23,   1, 1) // #79
+PAIRING(10, 20, 20, 25,  6, 21, 22, 25,   1, 2, 10, 20,  0,  0, 20, 21, 22, 25,   1, 1) // #80
+PAIRING(10, 20, 20, 25,  6, 21, 22, 26,   1, 2, 10, 20,  0,  0, 20, 21, 22, 25,   1, 2) // #81
+PAIRING(10, 20, 20, 25,  6, 21, 25, 26,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 2) // #82
+PAIRING(10, 20, 20, 25,  6, 21, 26, 27,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 2) // #83
+PAIRING(10, 20, 20, 25,  6, 25, 25, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #84
+PAIRING(10, 20, 20, 25,  6, 25, 26, 27,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #85
+PAIRING(10, 20, 20, 25,  6, 26, 26, 27,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #86
+PAIRING(10, 20, 20, 25,  6, 26, 27, 28,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #87
+PAIRING(10, 20, 20, 25, 10, 11, 11, 12,   2, 0, 10, 11, 11, 12,  0,  0,  0,  0,   2, 0) // #88
+PAIRING(10, 20, 20, 25, 10, 11, 11, 20,   2, 0, 10, 11, 11, 20,  0,  0,  0,  0,   1, 0) // #89
+PAIRING(10, 20, 20, 25, 10, 11, 11, 21,   2, 1, 10, 11, 11, 20, 20, 21,  0,  0,   1, 0) // #90
+PAIRING(10, 20, 20, 25, 10, 11, 11, 25,   2, 1, 10, 11, 11, 20, 20, 25,  0,  0,   0, 0) // #91
+PAIRING(10, 20, 20, 25, 10, 11, 11, 26,   2, 1, 10, 11, 11, 20, 20, 25,  0,  0,   0, 1) // #92
+PAIRING(10, 20, 20, 25, 10, 11, 12, 13,   2, 0, 10, 11, 12, 13,  0,  0,  0,  0,   2, 0) // #93
+PAIRING(10, 20, 20, 25, 10, 11, 12, 20,   2, 0, 10, 11, 12, 20,  0,  0,  0,  0,   2, 0) // #94
+PAIRING(10, 20, 20, 25, 10, 11, 12, 21,   2, 1, 10, 11, 12, 20, 20, 21,  0,  0,   2, 0) // #95
+PAIRING(10, 20, 20, 25, 10, 11, 12, 25,   2, 1, 10, 11, 12, 20, 20, 25,  0,  0,   1, 0) // #96
+PAIRING(10, 20, 20, 25, 10, 11, 12, 26,   2, 1, 10, 11, 12, 20, 20, 25,  0,  0,   1, 1) // #97
+PAIRING(10, 20, 20, 25, 10, 11, 20, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 0) // #98
+PAIRING(10, 20, 20, 25, 10, 11, 20, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 0) // #99
+PAIRING(10, 20, 20, 25, 10, 11, 20, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #100
+PAIRING(10, 20, 20, 25, 10, 11, 21, 22,   1, 1, 10, 11,  0,  0, 21, 22,  0,  0,   2, 0) // #101
+PAIRING(10, 20, 20, 25, 10, 11, 21, 25,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 0) // #102
+PAIRING(10, 20, 20, 25, 10, 11, 21, 26,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 1) // #103
+PAIRING(10, 20, 20, 25, 10, 11, 25, 26,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #104
+PAIRING(10, 20, 20, 25, 10, 11, 26, 27,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #105
+PAIRING(10, 20, 20, 25, 10, 20, 20, 21,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 0) // #106
+PAIRING(10, 20, 20, 25, 10, 20, 20, 25,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 0) // #107
+PAIRING(10, 20, 20, 25, 10, 20, 20, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #108
+PAIRING(10, 20, 20, 25, 10, 20, 21, 22,   1, 1, 10, 20,  0,  0, 21, 22,  0,  0,   1, 0) // #109
+PAIRING(10, 20, 20, 25, 10, 20, 21, 25,   1, 1, 10, 20,  0,  0, 21, 25,  0,  0,   1, 0) // #110
+PAIRING(10, 20, 20, 25, 10, 20, 21, 26,   1, 1, 10, 20,  0,  0, 21, 25,  0,  0,   1, 1) // #111
+PAIRING(10, 20, 20, 25, 10, 20, 25, 26,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 1) // #112
+PAIRING(10, 20, 20, 25, 10, 20, 26, 27,   1, 0, 10, 20,  0,  0,  0,  0,  0,  0,   1, 1) // #113
+PAIRING(10, 20, 20, 25, 10, 21, 21, 22,   1, 2, 10, 20,  0,  0, 20, 21, 21, 22,   1, 0) // #114
+PAIRING(10, 20, 20, 25, 10, 21, 21, 25,   1, 2, 10, 20,  0,  0, 20, 21, 21, 25,   0, 0) // #115
+PAIRING(10, 20, 20, 25, 10, 21, 21, 26,   1, 2, 10, 20,  0,  0, 20, 21, 21, 25,   0, 1) // #116
+PAIRING(10, 20, 20, 25, 10, 21, 22, 23,   1, 2, 10, 20,  0,  0, 20, 21, 22, 23,   1, 0) // #117
+PAIRING(10, 20, 20, 25, 10, 21, 22, 25,   1, 2, 10, 20,  0,  0, 20, 21, 22, 25,   1, 0) // #118
+PAIRING(10, 20, 20, 25, 10, 21, 22, 26,   1, 2, 10, 20,  0,  0, 20, 21, 22, 25,   1, 1) // #119
+PAIRING(10, 20, 20, 25, 10, 21, 25, 26,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 1) // #120
+PAIRING(10, 20, 20, 25, 10, 21, 26, 27,   1, 1, 10, 20,  0,  0, 20, 21,  0,  0,   1, 1) // #121
+PAIRING(10, 20, 20, 25, 10, 25, 25, 26,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #122
+PAIRING(10, 20, 20, 25, 10, 25, 26, 27,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 1) // #123
+PAIRING(10, 20, 20, 25, 10, 26, 26, 27,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #124
+PAIRING(10, 20, 20, 25, 10, 26, 27, 28,   1, 1, 10, 20,  0,  0, 20, 25,  0,  0,   0, 2) // #125
+PAIRING(10, 20, 20, 25, 11, 12, 12, 13,   2, 0, 11, 12, 12, 13,  0,  0,  0,  0,   2, 0) // #126
+PAIRING(10, 20, 20, 25, 11, 12, 12, 20,   2, 0, 11, 12, 12, 20,  0,  0,  0,  0,   2, 0) // #127
+PAIRING(10, 20, 20, 25, 11, 12, 12, 21,   2, 1, 11, 12, 12, 20, 20, 21,  0,  0,   2, 0) // #128
+PAIRING(10, 20, 20, 25, 11, 12, 12, 25,   2, 1, 11, 12, 12, 20, 20, 25,  0,  0,   1, 0) // #129
+PAIRING(10, 20, 20, 25, 11, 12, 12, 26,   2, 1, 11, 12, 12, 20, 20, 25,  0,  0,   1, 1) // #130
+PAIRING(10, 20, 20, 25, 11, 12, 13, 14,   2, 0, 11, 12, 13, 14,  0,  0,  0,  0,   2, 0) // #131
+PAIRING(10, 20, 20, 25, 11, 12, 13, 20,   2, 0, 11, 12, 13, 20,  0,  0,  0,  0,   2, 0) // #132
+PAIRING(10, 20, 20, 25, 11, 12, 13, 21,   2, 1, 11, 12, 13, 20, 20, 21,  0,  0,   2, 0) // #133
+PAIRING(10, 20, 20, 25, 11, 12, 13, 25,   2, 1, 11, 12, 13, 20, 20, 25,  0,  0,   1, 0) // #134
+PAIRING(10, 20, 20, 25, 11, 12, 13, 26,   2, 1, 11, 12, 13, 20, 20, 25,  0,  0,   1, 1) // #135
+PAIRING(10, 20, 20, 25, 11, 12, 20, 21,   1, 1, 11, 12,  0,  0, 20, 21,  0,  0,   2, 0) // #136
+PAIRING(10, 20, 20, 25, 11, 12, 20, 25,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 0) // #137
+PAIRING(10, 20, 20, 25, 11, 12, 20, 26,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #138
+PAIRING(10, 20, 20, 25, 11, 12, 21, 22,   1, 1, 11, 12,  0,  0, 21, 22,  0,  0,   2, 0) // #139
+PAIRING(10, 20, 20, 25, 11, 12, 21, 25,   1, 1, 11, 12,  0,  0, 21, 25,  0,  0,   2, 0) // #140
+PAIRING(10, 20, 20, 25, 11, 12, 21, 26,   1, 1, 11, 12,  0,  0, 21, 25,  0,  0,   2, 1) // #141
+PAIRING(10, 20, 20, 25, 11, 12, 25, 26,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #142
+PAIRING(10, 20, 20, 25, 11, 12, 26, 27,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #143
+PAIRING(10, 20, 20, 25, 11, 20, 20, 21,   1, 1, 11, 20,  0,  0, 20, 21,  0,  0,   2, 0) // #144
+PAIRING(10, 20, 20, 25, 11, 20, 20, 25,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 0) // #145
+PAIRING(10, 20, 20, 25, 11, 20, 20, 26,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 1) // #146
+PAIRING(10, 20, 20, 25, 11, 20, 21, 22,   1, 1, 11, 20,  0,  0, 21, 22,  0,  0,   2, 0) // #147
+PAIRING(10, 20, 20, 25, 11, 20, 21, 25,   1, 1, 11, 20,  0,  0, 21, 25,  0,  0,   2, 0) // #148
+PAIRING(10, 20, 20, 25, 11, 20, 21, 26,   1, 1, 11, 20,  0,  0, 21, 25,  0,  0,   2, 1) // #149
+PAIRING(10, 20, 20, 25, 11, 20, 25, 26,   1, 0, 11, 20,  0,  0,  0,  0,  0,  0,   2, 1) // #150
+PAIRING(10, 20, 20, 25, 11, 20, 26, 27,   1, 0, 11, 20,  0,  0,  0,  0,  0,  0,   2, 1) // #151
+PAIRING(10, 20, 20, 25, 11, 21, 21, 22,   1, 2, 11, 20,  0,  0, 20, 21, 21, 22,   2, 0) // #152
+PAIRING(10, 20, 20, 25, 11, 21, 21, 25,   1, 2, 11, 20,  0,  0, 20, 21, 21, 25,   1, 0) // #153
+PAIRING(10, 20, 20, 25, 11, 21, 21, 26,   1, 2, 11, 20,  0,  0, 20, 21, 21, 25,   1, 1) // #154
+PAIRING(10, 20, 20, 25, 11, 21, 22, 23,   1, 2, 11, 20,  0,  0, 20, 21, 22, 23,   2, 0) // #155
+PAIRING(10, 20, 20, 25, 11, 21, 22, 25,   1, 2, 11, 20,  0,  0, 20, 21, 22, 25,   2, 0) // #156
+PAIRING(10, 20, 20, 25, 11, 21, 22, 26,   1, 2, 11, 20,  0,  0, 20, 21, 22, 25,   2, 1) // #157
+PAIRING(10, 20, 20, 25, 11, 21, 25, 26,   1, 1, 11, 20,  0,  0, 20, 21,  0,  0,   2, 1) // #158
+PAIRING(10, 20, 20, 25, 11, 21, 26, 27,   1, 1, 11, 20,  0,  0, 20, 21,  0,  0,   2, 1) // #159
+PAIRING(10, 20, 20, 25, 11, 25, 25, 26,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 1) // #160
+PAIRING(10, 20, 20, 25, 11, 25, 26, 27,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 1) // #161
+PAIRING(10, 20, 20, 25, 11, 26, 26, 27,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 2) // #162
+PAIRING(10, 20, 20, 25, 11, 26, 27, 28,   1, 1, 11, 20,  0,  0, 20, 25,  0,  0,   1, 2) // #163
+PAIRING(10, 20, 20, 25, 20, 21, 21, 22,   0, 2,  0,  0,  0,  0, 20, 21, 21, 22,   2, 0) // #164
+PAIRING(10, 20, 20, 25, 20, 21, 21, 25,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 0) // #165
+PAIRING(10, 20, 20, 25, 20, 21, 21, 26,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 1) // #166
+PAIRING(10, 20, 20, 25, 20, 21, 22, 23,   0, 2,  0,  0,  0,  0, 20, 21, 22, 23,   2, 0) // #167
+PAIRING(10, 20, 20, 25, 20, 21, 22, 25,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 0) // #168
+PAIRING(10, 20, 20, 25, 20, 21, 22, 26,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 1) // #169
+PAIRING(10, 20, 20, 25, 20, 21, 25, 26,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #170
+PAIRING(10, 20, 20, 25, 20, 21, 26, 27,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #171
+PAIRING(10, 20, 20, 25, 20, 25, 25, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #172
+PAIRING(10, 20, 20, 25, 20, 25, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #173
+PAIRING(10, 20, 20, 25, 20, 26, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #174
+PAIRING(10, 20, 20, 25, 20, 26, 27, 28,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #175
+PAIRING(10, 20, 20, 25, 21, 22, 22, 23,   0, 2,  0,  0,  0,  0, 21, 22, 22, 23,   2, 0) // #176
+PAIRING(10, 20, 20, 25, 21, 22, 22, 25,   0, 2,  0,  0,  0,  0, 21, 22, 22, 25,   2, 0) // #177
+PAIRING(10, 20, 20, 25, 21, 22, 22, 26,   0, 2,  0,  0,  0,  0, 21, 22, 22, 25,   2, 1) // #178
+PAIRING(10, 20, 20, 25, 21, 22, 23, 24,   0, 2,  0,  0,  0,  0, 21, 22, 23, 24,   2, 0) // #179
+PAIRING(10, 20, 20, 25, 21, 22, 23, 25,   0, 2,  0,  0,  0,  0, 21, 22, 23, 25,   2, 0) // #180
+PAIRING(10, 20, 20, 25, 21, 22, 23, 26,   0, 2,  0,  0,  0,  0, 21, 22, 23, 25,   2, 1) // #181
+PAIRING(10, 20, 20, 25, 21, 22, 25, 26,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #182
+PAIRING(10, 20, 20, 25, 21, 22, 26, 27,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #183
+PAIRING(10, 20, 20, 25, 21, 25, 25, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #184
+PAIRING(10, 20, 20, 25, 21, 25, 26, 27,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #185
+PAIRING(10, 20, 20, 25, 21, 26, 26, 27,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #186
+PAIRING(10, 20, 20, 25, 21, 26, 27, 28,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #187
+PAIRING(10, 20, 20, 25, 25, 26, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #188
+PAIRING(10, 20, 20, 25, 25, 26, 27, 28,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #189
+PAIRING(10, 20, 20, 25, 26, 27, 27, 28,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #190
+PAIRING(10, 20, 20, 25, 26, 27, 28, 29,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #191
+PAIRING(10, 15, 20, 25,  6,  7,  7,  8,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #192
+PAIRING(10, 15, 20, 25,  6,  7,  7, 10,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #193
+PAIRING(10, 15, 20, 25,  6,  7,  7, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #194
+PAIRING(10, 15, 20, 25,  6,  7,  7, 15,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #195
+PAIRING(10, 15, 20, 25,  6,  7,  7, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #196
+PAIRING(10, 15, 20, 25,  6,  7,  7, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #197
+PAIRING(10, 15, 20, 25,  6,  7,  7, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #198
+PAIRING(10, 15, 20, 25,  6,  7,  7, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #199
+PAIRING(10, 15, 20, 25,  6,  7,  7, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #200
+PAIRING(10, 15, 20, 25,  6,  7,  8,  9,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #201
+PAIRING(10, 15, 20, 25,  6,  7,  8, 10,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #202
+PAIRING(10, 15, 20, 25,  6,  7,  8, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #203
+PAIRING(10, 15, 20, 25,  6,  7,  8, 15,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #204
+PAIRING(10, 15, 20, 25,  6,  7,  8, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #205
+PAIRING(10, 15, 20, 25,  6,  7,  8, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #206
+PAIRING(10, 15, 20, 25,  6,  7,  8, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #207
+PAIRING(10, 15, 20, 25,  6,  7,  8, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #208
+PAIRING(10, 15, 20, 25,  6,  7,  8, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #209
+PAIRING(10, 15, 20, 25,  6,  7, 10, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #210
+PAIRING(10, 15, 20, 25,  6,  7, 10, 15,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #211
+PAIRING(10, 15, 20, 25,  6,  7, 10, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #212
+PAIRING(10, 15, 20, 25,  6,  7, 10, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #213
+PAIRING(10, 15, 20, 25,  6,  7, 10, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #214
+PAIRING(10, 15, 20, 25,  6,  7, 10, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #215
+PAIRING(10, 15, 20, 25,  6,  7, 10, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #216
+PAIRING(10, 15, 20, 25,  6,  7, 11, 12,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #217
+PAIRING(10, 15, 20, 25,  6,  7, 11, 15,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #218
+PAIRING(10, 15, 20, 25,  6,  7, 11, 16,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #219
+PAIRING(10, 15, 20, 25,  6,  7, 11, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #220
+PAIRING(10, 15, 20, 25,  6,  7, 11, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #221
+PAIRING(10, 15, 20, 25,  6,  7, 11, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #222
+PAIRING(10, 15, 20, 25,  6,  7, 11, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #223
+PAIRING(10, 15, 20, 25,  6,  7, 15, 16,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #224
+PAIRING(10, 15, 20, 25,  6,  7, 15, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #225
+PAIRING(10, 15, 20, 25,  6,  7, 15, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #226
+PAIRING(10, 15, 20, 25,  6,  7, 15, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #227
+PAIRING(10, 15, 20, 25,  6,  7, 15, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #228
+PAIRING(10, 15, 20, 25,  6,  7, 16, 17,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #229
+PAIRING(10, 15, 20, 25,  6,  7, 16, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #230
+PAIRING(10, 15, 20, 25,  6,  7, 16, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #231
+PAIRING(10, 15, 20, 25,  6,  7, 16, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #232
+PAIRING(10, 15, 20, 25,  6,  7, 16, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #233
+PAIRING(10, 15, 20, 25,  6,  7, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #234
+PAIRING(10, 15, 20, 25,  6,  7, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #235
+PAIRING(10, 15, 20, 25,  6,  7, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #236
+PAIRING(10, 15, 20, 25,  6,  7, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #237
+PAIRING(10, 15, 20, 25,  6,  7, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #238
+PAIRING(10, 15, 20, 25,  6,  7, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #239
+PAIRING(10, 15, 20, 25,  6,  7, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #240
+PAIRING(10, 15, 20, 25,  6,  7, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #241
+PAIRING(10, 15, 20, 25,  6, 10, 10, 11,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #242
+PAIRING(10, 15, 20, 25,  6, 10, 10, 15,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #243
+PAIRING(10, 15, 20, 25,  6, 10, 10, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #244
+PAIRING(10, 15, 20, 25,  6, 10, 10, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #245
+PAIRING(10, 15, 20, 25,  6, 10, 10, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #246
+PAIRING(10, 15, 20, 25,  6, 10, 10, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #247
+PAIRING(10, 15, 20, 25,  6, 10, 10, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #248
+PAIRING(10, 15, 20, 25,  6, 10, 11, 12,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #249
+PAIRING(10, 15, 20, 25,  6, 10, 11, 15,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #250
+PAIRING(10, 15, 20, 25,  6, 10, 11, 16,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #251
+PAIRING(10, 15, 20, 25,  6, 10, 11, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #252
+PAIRING(10, 15, 20, 25,  6, 10, 11, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #253
+PAIRING(10, 15, 20, 25,  6, 10, 11, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #254
+PAIRING(10, 15, 20, 25,  6, 10, 11, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #255
+PAIRING(10, 15, 20, 25,  6, 10, 15, 16,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #256
+PAIRING(10, 15, 20, 25,  6, 10, 15, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #257
+PAIRING(10, 15, 20, 25,  6, 10, 15, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #258
+PAIRING(10, 15, 20, 25,  6, 10, 15, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #259
+PAIRING(10, 15, 20, 25,  6, 10, 15, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #260
+PAIRING(10, 15, 20, 25,  6, 10, 16, 17,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #261
+PAIRING(10, 15, 20, 25,  6, 10, 16, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #262
+PAIRING(10, 15, 20, 25,  6, 10, 16, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #263
+PAIRING(10, 15, 20, 25,  6, 10, 16, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #264
+PAIRING(10, 15, 20, 25,  6, 10, 16, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #265
+PAIRING(10, 15, 20, 25,  6, 10, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #266
+PAIRING(10, 15, 20, 25,  6, 10, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #267
+PAIRING(10, 15, 20, 25,  6, 10, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #268
+PAIRING(10, 15, 20, 25,  6, 10, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #269
+PAIRING(10, 15, 20, 25,  6, 10, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #270
+PAIRING(10, 15, 20, 25,  6, 10, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #271
+PAIRING(10, 15, 20, 25,  6, 10, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #272
+PAIRING(10, 15, 20, 25,  6, 10, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #273
+PAIRING(10, 15, 20, 25,  6, 11, 11, 12,   2, 0, 10, 11, 11, 12,  0,  0,  0,  0,   2, 1) // #274
+PAIRING(10, 15, 20, 25,  6, 11, 11, 15,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 1) // #275
+PAIRING(10, 15, 20, 25,  6, 11, 11, 16,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 2) // #276
+PAIRING(10, 15, 20, 25,  6, 11, 11, 20,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 1) // #277
+PAIRING(10, 15, 20, 25,  6, 11, 11, 21,   2, 1, 10, 11, 11, 15, 20, 21,  0,  0,   1, 2) // #278
+PAIRING(10, 15, 20, 25,  6, 11, 11, 25,   2, 1, 10, 11, 11, 15, 20, 25,  0,  0,   0, 2) // #279
+PAIRING(10, 15, 20, 25,  6, 11, 11, 26,   2, 1, 10, 11, 11, 15, 20, 25,  0,  0,   0, 2) // #280
+PAIRING(10, 15, 20, 25,  6, 11, 12, 13,   2, 0, 10, 11, 12, 13,  0,  0,  0,  0,   2, 1) // #281
+PAIRING(10, 15, 20, 25,  6, 11, 12, 15,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 1) // #282
+PAIRING(10, 15, 20, 25,  6, 11, 12, 16,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 2) // #283
+PAIRING(10, 15, 20, 25,  6, 11, 12, 20,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 1) // #284
+PAIRING(10, 15, 20, 25,  6, 11, 12, 21,   2, 1, 10, 11, 12, 15, 20, 21,  0,  0,   2, 2) // #285
+PAIRING(10, 15, 20, 25,  6, 11, 12, 25,   2, 1, 10, 11, 12, 15, 20, 25,  0,  0,   1, 2) // #286
+PAIRING(10, 15, 20, 25,  6, 11, 12, 26,   2, 1, 10, 11, 12, 15, 20, 25,  0,  0,   1, 2) // #287
+PAIRING(10, 15, 20, 25,  6, 11, 15, 16,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #288
+PAIRING(10, 15, 20, 25,  6, 11, 15, 20,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #289
+PAIRING(10, 15, 20, 25,  6, 11, 15, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 2) // #290
+PAIRING(10, 15, 20, 25,  6, 11, 15, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #291
+PAIRING(10, 15, 20, 25,  6, 11, 15, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #292
+PAIRING(10, 15, 20, 25,  6, 11, 16, 17,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #293
+PAIRING(10, 15, 20, 25,  6, 11, 16, 20,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #294
+PAIRING(10, 15, 20, 25,  6, 11, 16, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 2) // #295
+PAIRING(10, 15, 20, 25,  6, 11, 16, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #296
+PAIRING(10, 15, 20, 25,  6, 11, 16, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #297
+PAIRING(10, 15, 20, 25,  6, 11, 20, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 1) // #298
+PAIRING(10, 15, 20, 25,  6, 11, 20, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #299
+PAIRING(10, 15, 20, 25,  6, 11, 20, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 2) // #300
+PAIRING(10, 15, 20, 25,  6, 11, 21, 22,   1, 1, 10, 11,  0,  0, 21, 22,  0,  0,   2, 1) // #301
+PAIRING(10, 15, 20, 25,  6, 11, 21, 25,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 1) // #302
+PAIRING(10, 15, 20, 25,  6, 11, 21, 26,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 2) // #303
+PAIRING(10, 15, 20, 25,  6, 11, 25, 26,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #304
+PAIRING(10, 15, 20, 25,  6, 11, 26, 27,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 2) // #305
+PAIRING(10, 15, 20, 25,  6, 15, 15, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #306
+PAIRING(10, 15, 20, 25,  6, 15, 15, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #307
+PAIRING(10, 15, 20, 25,  6, 15, 15, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #308
+PAIRING(10, 15, 20, 25,  6, 15, 15, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #309
+PAIRING(10, 15, 20, 25,  6, 15, 15, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #310
+PAIRING(10, 15, 20, 25,  6, 15, 16, 17,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #311
+PAIRING(10, 15, 20, 25,  6, 15, 16, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #312
+PAIRING(10, 15, 20, 25,  6, 15, 16, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #313
+PAIRING(10, 15, 20, 25,  6, 15, 16, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #314
+PAIRING(10, 15, 20, 25,  6, 15, 16, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #315
+PAIRING(10, 15, 20, 25,  6, 15, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #316
+PAIRING(10, 15, 20, 25,  6, 15, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #317
+PAIRING(10, 15, 20, 25,  6, 15, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #318
+PAIRING(10, 15, 20, 25,  6, 15, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 1) // #319
+PAIRING(10, 15, 20, 25,  6, 15, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #320
+PAIRING(10, 15, 20, 25,  6, 15, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 2) // #321
+PAIRING(10, 15, 20, 25,  6, 15, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #322
+PAIRING(10, 15, 20, 25,  6, 15, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #323
+PAIRING(10, 15, 20, 25,  6, 16, 16, 17,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #324
+PAIRING(10, 15, 20, 25,  6, 16, 16, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #325
+PAIRING(10, 15, 20, 25,  6, 16, 16, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #326
+PAIRING(10, 15, 20, 25,  6, 16, 16, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #327
+PAIRING(10, 15, 20, 25,  6, 16, 16, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #328
+PAIRING(10, 15, 20, 25,  6, 16, 17, 18,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #329
+PAIRING(10, 15, 20, 25,  6, 16, 17, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #330
+PAIRING(10, 15, 20, 25,  6, 16, 17, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #331
+PAIRING(10, 15, 20, 25,  6, 16, 17, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #332
+PAIRING(10, 15, 20, 25,  6, 16, 17, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #333
+PAIRING(10, 15, 20, 25,  6, 16, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #334
+PAIRING(10, 15, 20, 25,  6, 16, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #335
+PAIRING(10, 15, 20, 25,  6, 16, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #336
+PAIRING(10, 15, 20, 25,  6, 16, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 1) // #337
+PAIRING(10, 15, 20, 25,  6, 16, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #338
+PAIRING(10, 15, 20, 25,  6, 16, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 2) // #339
+PAIRING(10, 15, 20, 25,  6, 16, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #340
+PAIRING(10, 15, 20, 25,  6, 16, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #341
+PAIRING(10, 15, 20, 25,  6, 20, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #342
+PAIRING(10, 15, 20, 25,  6, 20, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #343
+PAIRING(10, 15, 20, 25,  6, 20, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #344
+PAIRING(10, 15, 20, 25,  6, 20, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 1) // #345
+PAIRING(10, 15, 20, 25,  6, 20, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #346
+PAIRING(10, 15, 20, 25,  6, 20, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 2) // #347
+PAIRING(10, 15, 20, 25,  6, 20, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #348
+PAIRING(10, 15, 20, 25,  6, 20, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #349
+PAIRING(10, 15, 20, 25,  6, 21, 21, 22,   1, 2, 10, 15,  0,  0, 20, 21, 21, 22,   1, 1) // #350
+PAIRING(10, 15, 20, 25,  6, 21, 21, 25,   1, 2, 10, 15,  0,  0, 20, 21, 21, 25,   0, 1) // #351
+PAIRING(10, 15, 20, 25,  6, 21, 21, 26,   1, 2, 10, 15,  0,  0, 20, 21, 21, 25,   0, 2) // #352
+PAIRING(10, 15, 20, 25,  6, 21, 22, 23,   1, 2, 10, 15,  0,  0, 20, 21, 22, 23,   1, 1) // #353
+PAIRING(10, 15, 20, 25,  6, 21, 22, 25,   1, 2, 10, 15,  0,  0, 20, 21, 22, 25,   1, 1) // #354
+PAIRING(10, 15, 20, 25,  6, 21, 22, 26,   1, 2, 10, 15,  0,  0, 20, 21, 22, 25,   1, 2) // #355
+PAIRING(10, 15, 20, 25,  6, 21, 25, 26,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #356
+PAIRING(10, 15, 20, 25,  6, 21, 26, 27,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #357
+PAIRING(10, 15, 20, 25,  6, 25, 25, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #358
+PAIRING(10, 15, 20, 25,  6, 25, 26, 27,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #359
+PAIRING(10, 15, 20, 25,  6, 26, 26, 27,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #360
+PAIRING(10, 15, 20, 25,  6, 26, 27, 28,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #361
+PAIRING(10, 15, 20, 25, 10, 11, 11, 12,   2, 0, 10, 11, 11, 12,  0,  0,  0,  0,   2, 0) // #362
+PAIRING(10, 15, 20, 25, 10, 11, 11, 15,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 0) // #363
+PAIRING(10, 15, 20, 25, 10, 11, 11, 16,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 1) // #364
+PAIRING(10, 15, 20, 25, 10, 11, 11, 20,   2, 0, 10, 11, 11, 15,  0,  0,  0,  0,   1, 0) // #365
+PAIRING(10, 15, 20, 25, 10, 11, 11, 21,   2, 1, 10, 11, 11, 15, 20, 21,  0,  0,   1, 1) // #366
+PAIRING(10, 15, 20, 25, 10, 11, 11, 25,   2, 1, 10, 11, 11, 15, 20, 25,  0,  0,   0, 1) // #367
+PAIRING(10, 15, 20, 25, 10, 11, 11, 26,   2, 1, 10, 11, 11, 15, 20, 25,  0,  0,   0, 1) // #368
+PAIRING(10, 15, 20, 25, 10, 11, 12, 13,   2, 0, 10, 11, 12, 13,  0,  0,  0,  0,   2, 0) // #369
+PAIRING(10, 15, 20, 25, 10, 11, 12, 15,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 0) // #370
+PAIRING(10, 15, 20, 25, 10, 11, 12, 16,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 1) // #371
+PAIRING(10, 15, 20, 25, 10, 11, 12, 20,   2, 0, 10, 11, 12, 15,  0,  0,  0,  0,   2, 0) // #372
+PAIRING(10, 15, 20, 25, 10, 11, 12, 21,   2, 1, 10, 11, 12, 15, 20, 21,  0,  0,   2, 1) // #373
+PAIRING(10, 15, 20, 25, 10, 11, 12, 25,   2, 1, 10, 11, 12, 15, 20, 25,  0,  0,   1, 1) // #374
+PAIRING(10, 15, 20, 25, 10, 11, 12, 26,   2, 1, 10, 11, 12, 15, 20, 25,  0,  0,   1, 1) // #375
+PAIRING(10, 15, 20, 25, 10, 11, 15, 16,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #376
+PAIRING(10, 15, 20, 25, 10, 11, 15, 20,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #377
+PAIRING(10, 15, 20, 25, 10, 11, 15, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 1) // #378
+PAIRING(10, 15, 20, 25, 10, 11, 15, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #379
+PAIRING(10, 15, 20, 25, 10, 11, 15, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #380
+PAIRING(10, 15, 20, 25, 10, 11, 16, 17,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #381
+PAIRING(10, 15, 20, 25, 10, 11, 16, 20,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #382
+PAIRING(10, 15, 20, 25, 10, 11, 16, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 1) // #383
+PAIRING(10, 15, 20, 25, 10, 11, 16, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #384
+PAIRING(10, 15, 20, 25, 10, 11, 16, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #385
+PAIRING(10, 15, 20, 25, 10, 11, 20, 21,   1, 1, 10, 11,  0,  0, 20, 21,  0,  0,   2, 0) // #386
+PAIRING(10, 15, 20, 25, 10, 11, 20, 25,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 0) // #387
+PAIRING(10, 15, 20, 25, 10, 11, 20, 26,   1, 1, 10, 11,  0,  0, 20, 25,  0,  0,   1, 1) // #388
+PAIRING(10, 15, 20, 25, 10, 11, 21, 22,   1, 1, 10, 11,  0,  0, 21, 22,  0,  0,   2, 0) // #389
+PAIRING(10, 15, 20, 25, 10, 11, 21, 25,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 0) // #390
+PAIRING(10, 15, 20, 25, 10, 11, 21, 26,   1, 1, 10, 11,  0,  0, 21, 25,  0,  0,   2, 1) // #391
+PAIRING(10, 15, 20, 25, 10, 11, 25, 26,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #392
+PAIRING(10, 15, 20, 25, 10, 11, 26, 27,   1, 0, 10, 11,  0,  0,  0,  0,  0,  0,   2, 1) // #393
+PAIRING(10, 15, 20, 25, 10, 15, 15, 16,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #394
+PAIRING(10, 15, 20, 25, 10, 15, 15, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #395
+PAIRING(10, 15, 20, 25, 10, 15, 15, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #396
+PAIRING(10, 15, 20, 25, 10, 15, 15, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #397
+PAIRING(10, 15, 20, 25, 10, 15, 15, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #398
+PAIRING(10, 15, 20, 25, 10, 15, 16, 17,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #399
+PAIRING(10, 15, 20, 25, 10, 15, 16, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #400
+PAIRING(10, 15, 20, 25, 10, 15, 16, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #401
+PAIRING(10, 15, 20, 25, 10, 15, 16, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #402
+PAIRING(10, 15, 20, 25, 10, 15, 16, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #403
+PAIRING(10, 15, 20, 25, 10, 15, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 0) // #404
+PAIRING(10, 15, 20, 25, 10, 15, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 0) // #405
+PAIRING(10, 15, 20, 25, 10, 15, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #406
+PAIRING(10, 15, 20, 25, 10, 15, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 0) // #407
+PAIRING(10, 15, 20, 25, 10, 15, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 0) // #408
+PAIRING(10, 15, 20, 25, 10, 15, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #409
+PAIRING(10, 15, 20, 25, 10, 15, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #410
+PAIRING(10, 15, 20, 25, 10, 15, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #411
+PAIRING(10, 15, 20, 25, 10, 16, 16, 17,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #412
+PAIRING(10, 15, 20, 25, 10, 16, 16, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #413
+PAIRING(10, 15, 20, 25, 10, 16, 16, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #414
+PAIRING(10, 15, 20, 25, 10, 16, 16, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #415
+PAIRING(10, 15, 20, 25, 10, 16, 16, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #416
+PAIRING(10, 15, 20, 25, 10, 16, 17, 18,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #417
+PAIRING(10, 15, 20, 25, 10, 16, 17, 20,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #418
+PAIRING(10, 15, 20, 25, 10, 16, 17, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #419
+PAIRING(10, 15, 20, 25, 10, 16, 17, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #420
+PAIRING(10, 15, 20, 25, 10, 16, 17, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #421
+PAIRING(10, 15, 20, 25, 10, 16, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 1) // #422
+PAIRING(10, 15, 20, 25, 10, 16, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #423
+PAIRING(10, 15, 20, 25, 10, 16, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #424
+PAIRING(10, 15, 20, 25, 10, 16, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 1) // #425
+PAIRING(10, 15, 20, 25, 10, 16, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #426
+PAIRING(10, 15, 20, 25, 10, 16, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 2) // #427
+PAIRING(10, 15, 20, 25, 10, 16, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #428
+PAIRING(10, 15, 20, 25, 10, 16, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 2) // #429
+PAIRING(10, 15, 20, 25, 10, 20, 20, 21,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 0) // #430
+PAIRING(10, 15, 20, 25, 10, 20, 20, 25,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 0) // #431
+PAIRING(10, 15, 20, 25, 10, 20, 20, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 1) // #432
+PAIRING(10, 15, 20, 25, 10, 20, 21, 22,   1, 1, 10, 15,  0,  0, 21, 22,  0,  0,   1, 0) // #433
+PAIRING(10, 15, 20, 25, 10, 20, 21, 25,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 0) // #434
+PAIRING(10, 15, 20, 25, 10, 20, 21, 26,   1, 1, 10, 15,  0,  0, 21, 25,  0,  0,   1, 1) // #435
+PAIRING(10, 15, 20, 25, 10, 20, 25, 26,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #436
+PAIRING(10, 15, 20, 25, 10, 20, 26, 27,   1, 0, 10, 15,  0,  0,  0,  0,  0,  0,   1, 1) // #437
+PAIRING(10, 15, 20, 25, 10, 21, 21, 22,   1, 2, 10, 15,  0,  0, 20, 21, 21, 22,   1, 1) // #438
+PAIRING(10, 15, 20, 25, 10, 21, 21, 25,   1, 2, 10, 15,  0,  0, 20, 21, 21, 25,   0, 1) // #439
+PAIRING(10, 15, 20, 25, 10, 21, 21, 26,   1, 2, 10, 15,  0,  0, 20, 21, 21, 25,   0, 2) // #440
+PAIRING(10, 15, 20, 25, 10, 21, 22, 23,   1, 2, 10, 15,  0,  0, 20, 21, 22, 23,   1, 1) // #441
+PAIRING(10, 15, 20, 25, 10, 21, 22, 25,   1, 2, 10, 15,  0,  0, 20, 21, 22, 25,   1, 1) // #442
+PAIRING(10, 15, 20, 25, 10, 21, 22, 26,   1, 2, 10, 15,  0,  0, 20, 21, 22, 25,   1, 2) // #443
+PAIRING(10, 15, 20, 25, 10, 21, 25, 26,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #444
+PAIRING(10, 15, 20, 25, 10, 21, 26, 27,   1, 1, 10, 15,  0,  0, 20, 21,  0,  0,   1, 2) // #445
+PAIRING(10, 15, 20, 25, 10, 25, 25, 26,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #446
+PAIRING(10, 15, 20, 25, 10, 25, 26, 27,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #447
+PAIRING(10, 15, 20, 25, 10, 26, 26, 27,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #448
+PAIRING(10, 15, 20, 25, 10, 26, 27, 28,   1, 1, 10, 15,  0,  0, 20, 25,  0,  0,   0, 2) // #449
+PAIRING(10, 15, 20, 25, 11, 12, 12, 13,   2, 0, 11, 12, 12, 13,  0,  0,  0,  0,   2, 0) // #450
+PAIRING(10, 15, 20, 25, 11, 12, 12, 15,   2, 0, 11, 12, 12, 15,  0,  0,  0,  0,   2, 0) // #451
+PAIRING(10, 15, 20, 25, 11, 12, 12, 16,   2, 0, 11, 12, 12, 15,  0,  0,  0,  0,   2, 1) // #452
+PAIRING(10, 15, 20, 25, 11, 12, 12, 20,   2, 0, 11, 12, 12, 15,  0,  0,  0,  0,   2, 0) // #453
+PAIRING(10, 15, 20, 25, 11, 12, 12, 21,   2, 1, 11, 12, 12, 15, 20, 21,  0,  0,   2, 1) // #454
+PAIRING(10, 15, 20, 25, 11, 12, 12, 25,   2, 1, 11, 12, 12, 15, 20, 25,  0,  0,   1, 1) // #455
+PAIRING(10, 15, 20, 25, 11, 12, 12, 26,   2, 1, 11, 12, 12, 15, 20, 25,  0,  0,   1, 1) // #456
+PAIRING(10, 15, 20, 25, 11, 12, 13, 14,   2, 0, 11, 12, 13, 14,  0,  0,  0,  0,   2, 0) // #457
+PAIRING(10, 15, 20, 25, 11, 12, 13, 15,   2, 0, 11, 12, 13, 15,  0,  0,  0,  0,   2, 0) // #458
+PAIRING(10, 15, 20, 25, 11, 12, 13, 16,   2, 0, 11, 12, 13, 15,  0,  0,  0,  0,   2, 1) // #459
+PAIRING(10, 15, 20, 25, 11, 12, 13, 20,   2, 0, 11, 12, 13, 15,  0,  0,  0,  0,   2, 0) // #460
+PAIRING(10, 15, 20, 25, 11, 12, 13, 21,   2, 1, 11, 12, 13, 15, 20, 21,  0,  0,   2, 1) // #461
+PAIRING(10, 15, 20, 25, 11, 12, 13, 25,   2, 1, 11, 12, 13, 15, 20, 25,  0,  0,   1, 1) // #462
+PAIRING(10, 15, 20, 25, 11, 12, 13, 26,   2, 1, 11, 12, 13, 15, 20, 25,  0,  0,   1, 1) // #463
+PAIRING(10, 15, 20, 25, 11, 12, 15, 16,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #464
+PAIRING(10, 15, 20, 25, 11, 12, 15, 20,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #465
+PAIRING(10, 15, 20, 25, 11, 12, 15, 21,   1, 1, 11, 12,  0,  0, 20, 21,  0,  0,   2, 1) // #466
+PAIRING(10, 15, 20, 25, 11, 12, 15, 25,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #467
+PAIRING(10, 15, 20, 25, 11, 12, 15, 26,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #468
+PAIRING(10, 15, 20, 25, 11, 12, 16, 17,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #469
+PAIRING(10, 15, 20, 25, 11, 12, 16, 20,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #470
+PAIRING(10, 15, 20, 25, 11, 12, 16, 21,   1, 1, 11, 12,  0,  0, 20, 21,  0,  0,   2, 1) // #471
+PAIRING(10, 15, 20, 25, 11, 12, 16, 25,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #472
+PAIRING(10, 15, 20, 25, 11, 12, 16, 26,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #473
+PAIRING(10, 15, 20, 25, 11, 12, 20, 21,   1, 1, 11, 12,  0,  0, 20, 21,  0,  0,   2, 0) // #474
+PAIRING(10, 15, 20, 25, 11, 12, 20, 25,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 0) // #475
+PAIRING(10, 15, 20, 25, 11, 12, 20, 26,   1, 1, 11, 12,  0,  0, 20, 25,  0,  0,   1, 1) // #476
+PAIRING(10, 15, 20, 25, 11, 12, 21, 22,   1, 1, 11, 12,  0,  0, 21, 22,  0,  0,   2, 0) // #477
+PAIRING(10, 15, 20, 25, 11, 12, 21, 25,   1, 1, 11, 12,  0,  0, 21, 25,  0,  0,   2, 0) // #478
+PAIRING(10, 15, 20, 25, 11, 12, 21, 26,   1, 1, 11, 12,  0,  0, 21, 25,  0,  0,   2, 1) // #479
+PAIRING(10, 15, 20, 25, 11, 12, 25, 26,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #480
+PAIRING(10, 15, 20, 25, 11, 12, 26, 27,   1, 0, 11, 12,  0,  0,  0,  0,  0,  0,   2, 1) // #481
+PAIRING(10, 15, 20, 25, 11, 15, 15, 16,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #482
+PAIRING(10, 15, 20, 25, 11, 15, 15, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #483
+PAIRING(10, 15, 20, 25, 11, 15, 15, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 1) // #484
+PAIRING(10, 15, 20, 25, 11, 15, 15, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #485
+PAIRING(10, 15, 20, 25, 11, 15, 15, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #486
+PAIRING(10, 15, 20, 25, 11, 15, 16, 17,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #487
+PAIRING(10, 15, 20, 25, 11, 15, 16, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #488
+PAIRING(10, 15, 20, 25, 11, 15, 16, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 1) // #489
+PAIRING(10, 15, 20, 25, 11, 15, 16, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #490
+PAIRING(10, 15, 20, 25, 11, 15, 16, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #491
+PAIRING(10, 15, 20, 25, 11, 15, 20, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 0) // #492
+PAIRING(10, 15, 20, 25, 11, 15, 20, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 0) // #493
+PAIRING(10, 15, 20, 25, 11, 15, 20, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #494
+PAIRING(10, 15, 20, 25, 11, 15, 21, 22,   1, 1, 11, 15,  0,  0, 21, 22,  0,  0,   2, 0) // #495
+PAIRING(10, 15, 20, 25, 11, 15, 21, 25,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 0) // #496
+PAIRING(10, 15, 20, 25, 11, 15, 21, 26,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 1) // #497
+PAIRING(10, 15, 20, 25, 11, 15, 25, 26,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #498
+PAIRING(10, 15, 20, 25, 11, 15, 26, 27,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #499
+PAIRING(10, 15, 20, 25, 11, 16, 16, 17,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #500
+PAIRING(10, 15, 20, 25, 11, 16, 16, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #501
+PAIRING(10, 15, 20, 25, 11, 16, 16, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #502
+PAIRING(10, 15, 20, 25, 11, 16, 16, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #503
+PAIRING(10, 15, 20, 25, 11, 16, 16, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #504
+PAIRING(10, 15, 20, 25, 11, 16, 17, 18,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #505
+PAIRING(10, 15, 20, 25, 11, 16, 17, 20,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #506
+PAIRING(10, 15, 20, 25, 11, 16, 17, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #507
+PAIRING(10, 15, 20, 25, 11, 16, 17, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #508
+PAIRING(10, 15, 20, 25, 11, 16, 17, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #509
+PAIRING(10, 15, 20, 25, 11, 16, 20, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 1) // #510
+PAIRING(10, 15, 20, 25, 11, 16, 20, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #511
+PAIRING(10, 15, 20, 25, 11, 16, 20, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #512
+PAIRING(10, 15, 20, 25, 11, 16, 21, 22,   1, 1, 11, 15,  0,  0, 21, 22,  0,  0,   2, 1) // #513
+PAIRING(10, 15, 20, 25, 11, 16, 21, 25,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 1) // #514
+PAIRING(10, 15, 20, 25, 11, 16, 21, 26,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 2) // #515
+PAIRING(10, 15, 20, 25, 11, 16, 25, 26,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #516
+PAIRING(10, 15, 20, 25, 11, 16, 26, 27,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 2) // #517
+PAIRING(10, 15, 20, 25, 11, 20, 20, 21,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 0) // #518
+PAIRING(10, 15, 20, 25, 11, 20, 20, 25,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 0) // #519
+PAIRING(10, 15, 20, 25, 11, 20, 20, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 1) // #520
+PAIRING(10, 15, 20, 25, 11, 20, 21, 22,   1, 1, 11, 15,  0,  0, 21, 22,  0,  0,   2, 0) // #521
+PAIRING(10, 15, 20, 25, 11, 20, 21, 25,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 0) // #522
+PAIRING(10, 15, 20, 25, 11, 20, 21, 26,   1, 1, 11, 15,  0,  0, 21, 25,  0,  0,   2, 1) // #523
+PAIRING(10, 15, 20, 25, 11, 20, 25, 26,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #524
+PAIRING(10, 15, 20, 25, 11, 20, 26, 27,   1, 0, 11, 15,  0,  0,  0,  0,  0,  0,   2, 1) // #525
+PAIRING(10, 15, 20, 25, 11, 21, 21, 22,   1, 2, 11, 15,  0,  0, 20, 21, 21, 22,   2, 1) // #526
+PAIRING(10, 15, 20, 25, 11, 21, 21, 25,   1, 2, 11, 15,  0,  0, 20, 21, 21, 25,   1, 1) // #527
+PAIRING(10, 15, 20, 25, 11, 21, 21, 26,   1, 2, 11, 15,  0,  0, 20, 21, 21, 25,   1, 2) // #528
+PAIRING(10, 15, 20, 25, 11, 21, 22, 23,   1, 2, 11, 15,  0,  0, 20, 21, 22, 23,   2, 1) // #529
+PAIRING(10, 15, 20, 25, 11, 21, 22, 25,   1, 2, 11, 15,  0,  0, 20, 21, 22, 25,   2, 1) // #530
+PAIRING(10, 15, 20, 25, 11, 21, 22, 26,   1, 2, 11, 15,  0,  0, 20, 21, 22, 25,   2, 2) // #531
+PAIRING(10, 15, 20, 25, 11, 21, 25, 26,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #532
+PAIRING(10, 15, 20, 25, 11, 21, 26, 27,   1, 1, 11, 15,  0,  0, 20, 21,  0,  0,   2, 2) // #533
+PAIRING(10, 15, 20, 25, 11, 25, 25, 26,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #534
+PAIRING(10, 15, 20, 25, 11, 25, 26, 27,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #535
+PAIRING(10, 15, 20, 25, 11, 26, 26, 27,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #536
+PAIRING(10, 15, 20, 25, 11, 26, 27, 28,   1, 1, 11, 15,  0,  0, 20, 25,  0,  0,   1, 2) // #537
+PAIRING(10, 15, 20, 25, 15, 16, 16, 17,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #538
+PAIRING(10, 15, 20, 25, 15, 16, 16, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #539
+PAIRING(10, 15, 20, 25, 15, 16, 16, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #540
+PAIRING(10, 15, 20, 25, 15, 16, 16, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #541
+PAIRING(10, 15, 20, 25, 15, 16, 16, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #542
+PAIRING(10, 15, 20, 25, 15, 16, 17, 18,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #543
+PAIRING(10, 15, 20, 25, 15, 16, 17, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #544
+PAIRING(10, 15, 20, 25, 15, 16, 17, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #545
+PAIRING(10, 15, 20, 25, 15, 16, 17, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #546
+PAIRING(10, 15, 20, 25, 15, 16, 17, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #547
+PAIRING(10, 15, 20, 25, 15, 16, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #548
+PAIRING(10, 15, 20, 25, 15, 16, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #549
+PAIRING(10, 15, 20, 25, 15, 16, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #550
+PAIRING(10, 15, 20, 25, 15, 16, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #551
+PAIRING(10, 15, 20, 25, 15, 16, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #552
+PAIRING(10, 15, 20, 25, 15, 16, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #553
+PAIRING(10, 15, 20, 25, 15, 16, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #554
+PAIRING(10, 15, 20, 25, 15, 16, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #555
+PAIRING(10, 15, 20, 25, 15, 20, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #556
+PAIRING(10, 15, 20, 25, 15, 20, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #557
+PAIRING(10, 15, 20, 25, 15, 20, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #558
+PAIRING(10, 15, 20, 25, 15, 20, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #559
+PAIRING(10, 15, 20, 25, 15, 20, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #560
+PAIRING(10, 15, 20, 25, 15, 20, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #561
+PAIRING(10, 15, 20, 25, 15, 20, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #562
+PAIRING(10, 15, 20, 25, 15, 20, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #563
+PAIRING(10, 15, 20, 25, 15, 21, 21, 22,   0, 2,  0,  0,  0,  0, 20, 21, 21, 22,   2, 1) // #564
+PAIRING(10, 15, 20, 25, 15, 21, 21, 25,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 1) // #565
+PAIRING(10, 15, 20, 25, 15, 21, 21, 26,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 2) // #566
+PAIRING(10, 15, 20, 25, 15, 21, 22, 23,   0, 2,  0,  0,  0,  0, 20, 21, 22, 23,   2, 1) // #567
+PAIRING(10, 15, 20, 25, 15, 21, 22, 25,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 1) // #568
+PAIRING(10, 15, 20, 25, 15, 21, 22, 26,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 2) // #569
+PAIRING(10, 15, 20, 25, 15, 21, 25, 26,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #570
+PAIRING(10, 15, 20, 25, 15, 21, 26, 27,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #571
+PAIRING(10, 15, 20, 25, 15, 25, 25, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #572
+PAIRING(10, 15, 20, 25, 15, 25, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #573
+PAIRING(10, 15, 20, 25, 15, 26, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #574
+PAIRING(10, 15, 20, 25, 15, 26, 27, 28,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #575
+PAIRING(10, 15, 20, 25, 16, 17, 17, 18,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #576
+PAIRING(10, 15, 20, 25, 16, 17, 17, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #577
+PAIRING(10, 15, 20, 25, 16, 17, 17, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #578
+PAIRING(10, 15, 20, 25, 16, 17, 17, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #579
+PAIRING(10, 15, 20, 25, 16, 17, 17, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #580
+PAIRING(10, 15, 20, 25, 16, 17, 18, 19,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #581
+PAIRING(10, 15, 20, 25, 16, 17, 18, 20,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #582
+PAIRING(10, 15, 20, 25, 16, 17, 18, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #583
+PAIRING(10, 15, 20, 25, 16, 17, 18, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #584
+PAIRING(10, 15, 20, 25, 16, 17, 18, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #585
+PAIRING(10, 15, 20, 25, 16, 17, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #586
+PAIRING(10, 15, 20, 25, 16, 17, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #587
+PAIRING(10, 15, 20, 25, 16, 17, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #588
+PAIRING(10, 15, 20, 25, 16, 17, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #589
+PAIRING(10, 15, 20, 25, 16, 17, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #590
+PAIRING(10, 15, 20, 25, 16, 17, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #591
+PAIRING(10, 15, 20, 25, 16, 17, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #592
+PAIRING(10, 15, 20, 25, 16, 17, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #593
+PAIRING(10, 15, 20, 25, 16, 20, 20, 21,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #594
+PAIRING(10, 15, 20, 25, 16, 20, 20, 25,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #595
+PAIRING(10, 15, 20, 25, 16, 20, 20, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #596
+PAIRING(10, 15, 20, 25, 16, 20, 21, 22,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #597
+PAIRING(10, 15, 20, 25, 16, 20, 21, 25,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #598
+PAIRING(10, 15, 20, 25, 16, 20, 21, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #599
+PAIRING(10, 15, 20, 25, 16, 20, 25, 26,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #600
+PAIRING(10, 15, 20, 25, 16, 20, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #601
+PAIRING(10, 15, 20, 25, 16, 21, 21, 22,   0, 2,  0,  0,  0,  0, 20, 21, 21, 22,   2, 1) // #602
+PAIRING(10, 15, 20, 25, 16, 21, 21, 25,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 1) // #603
+PAIRING(10, 15, 20, 25, 16, 21, 21, 26,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 2) // #604
+PAIRING(10, 15, 20, 25, 16, 21, 22, 23,   0, 2,  0,  0,  0,  0, 20, 21, 22, 23,   2, 1) // #605
+PAIRING(10, 15, 20, 25, 16, 21, 22, 25,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 1) // #606
+PAIRING(10, 15, 20, 25, 16, 21, 22, 26,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 2) // #607
+PAIRING(10, 15, 20, 25, 16, 21, 25, 26,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #608
+PAIRING(10, 15, 20, 25, 16, 21, 26, 27,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 2) // #609
+PAIRING(10, 15, 20, 25, 16, 25, 25, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #610
+PAIRING(10, 15, 20, 25, 16, 25, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #611
+PAIRING(10, 15, 20, 25, 16, 26, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #612
+PAIRING(10, 15, 20, 25, 16, 26, 27, 28,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #613
+PAIRING(10, 15, 20, 25, 20, 21, 21, 22,   0, 2,  0,  0,  0,  0, 20, 21, 21, 22,   2, 0) // #614
+PAIRING(10, 15, 20, 25, 20, 21, 21, 25,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 0) // #615
+PAIRING(10, 15, 20, 25, 20, 21, 21, 26,   0, 2,  0,  0,  0,  0, 20, 21, 21, 25,   1, 1) // #616
+PAIRING(10, 15, 20, 25, 20, 21, 22, 23,   0, 2,  0,  0,  0,  0, 20, 21, 22, 23,   2, 0) // #617
+PAIRING(10, 15, 20, 25, 20, 21, 22, 25,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 0) // #618
+PAIRING(10, 15, 20, 25, 20, 21, 22, 26,   0, 2,  0,  0,  0,  0, 20, 21, 22, 25,   2, 1) // #619
+PAIRING(10, 15, 20, 25, 20, 21, 25, 26,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #620
+PAIRING(10, 15, 20, 25, 20, 21, 26, 27,   0, 1,  0,  0,  0,  0, 20, 21,  0,  0,   2, 1) // #621
+PAIRING(10, 15, 20, 25, 20, 25, 25, 26,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #622
+PAIRING(10, 15, 20, 25, 20, 25, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 1) // #623
+PAIRING(10, 15, 20, 25, 20, 26, 26, 27,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #624
+PAIRING(10, 15, 20, 25, 20, 26, 27, 28,   0, 1,  0,  0,  0,  0, 20, 25,  0,  0,   1, 2) // #625
+PAIRING(10, 15, 20, 25, 21, 22, 22, 23,   0, 2,  0,  0,  0,  0, 21, 22, 22, 23,   2, 0) // #626
+PAIRING(10, 15, 20, 25, 21, 22, 22, 25,   0, 2,  0,  0,  0,  0, 21, 22, 22, 25,   2, 0) // #627
+PAIRING(10, 15, 20, 25, 21, 22, 22, 26,   0, 2,  0,  0,  0,  0, 21, 22, 22, 25,   2, 1) // #628
+PAIRING(10, 15, 20, 25, 21, 22, 23, 24,   0, 2,  0,  0,  0,  0, 21, 22, 23, 24,   2, 0) // #629
+PAIRING(10, 15, 20, 25, 21, 22, 23, 25,   0, 2,  0,  0,  0,  0, 21, 22, 23, 25,   2, 0) // #630
+PAIRING(10, 15, 20, 25, 21, 22, 23, 26,   0, 2,  0,  0,  0,  0, 21, 22, 23, 25,   2, 1) // #631
+PAIRING(10, 15, 20, 25, 21, 22, 25, 26,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #632
+PAIRING(10, 15, 20, 25, 21, 22, 26, 27,   0, 1,  0,  0,  0,  0, 21, 22,  0,  0,   2, 1) // #633
+PAIRING(10, 15, 20, 25, 21, 25, 25, 26,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #634
+PAIRING(10, 15, 20, 25, 21, 25, 26, 27,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 1) // #635
+PAIRING(10, 15, 20, 25, 21, 26, 26, 27,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #636
+PAIRING(10, 15, 20, 25, 21, 26, 27, 28,   0, 1,  0,  0,  0,  0, 21, 25,  0,  0,   2, 2) // #637
+PAIRING(10, 15, 20, 25, 25, 26, 26, 27,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #638
+PAIRING(10, 15, 20, 25, 25, 26, 27, 28,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #639
+PAIRING(10, 15, 20, 25, 26, 27, 27, 28,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #640
+PAIRING(10, 15, 20, 25, 26, 27, 28, 29,   0, 0,  0,  0,  0,  0,  0,  0,  0,  0,   2, 2) // #641
diff --git a/src/common/tests/auto_tempdir.h b/src/common/tests/auto_tempdir.h
new file mode 100644
index 0000000..1df88db
--- /dev/null
+++ b/src/common/tests/auto_tempdir.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Utility class for creating a temporary directory for unit tests
+// that is deleted in the destructor.
+#ifndef GOOGLE_BREAKPAD_COMMON_TESTS_AUTO_TEMPDIR
+#define GOOGLE_BREAKPAD_COMMON_TESTS_AUTO_TEMPDIR
+
+#include <dirent.h>
+#include <sys/types.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+
+#if !defined(__ANDROID__)
+#define TEMPDIR "/tmp"
+#else
+#define TEMPDIR "/data/local/tmp"
+#include "common/android/testing/mkdtemp.h"
+#endif
+
+namespace google_breakpad {
+
+class AutoTempDir {
+ public:
+  AutoTempDir() {
+    char temp_dir[] = TEMPDIR "/breakpad.XXXXXX";
+    EXPECT_TRUE(mkdtemp(temp_dir) != NULL);
+    path_.assign(temp_dir);
+  }
+
+  ~AutoTempDir() {
+    DeleteRecursively(path_);
+  }
+
+  const string& path() const {
+    return path_;
+  }
+
+ private:
+  void DeleteRecursively(const string& path) {
+    // First remove any files in the dir
+    DIR* dir = opendir(path.c_str());
+    if (!dir)
+      return;
+
+    dirent* entry;
+    while ((entry = readdir(dir)) != NULL) {
+      if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
+        continue;
+      string entry_path = path + "/" + entry->d_name;
+      struct stat stats;
+      EXPECT_TRUE(lstat(entry_path.c_str(), &stats) == 0);
+      if (S_ISDIR(stats.st_mode))
+        DeleteRecursively(entry_path);
+      else
+        EXPECT_TRUE(unlink(entry_path.c_str()) == 0);
+    }
+    EXPECT_TRUE(closedir(dir) == 0);
+    EXPECT_TRUE(rmdir(path.c_str()) == 0);
+  }
+
+  // prevent copy construction and assignment
+  AutoTempDir(const AutoTempDir&);
+  AutoTempDir& operator=(const AutoTempDir&);
+
+  string path_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_TESTS_AUTO_TEMPDIR
diff --git a/src/common/tests/file_utils.cc b/src/common/tests/file_utils.cc
new file mode 100644
index 0000000..c1cbb39
--- /dev/null
+++ b/src/common/tests/file_utils.cc
@@ -0,0 +1,157 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_utils.cc: Implement utility functions for file manipulation.
+// See file_utils.h for details.
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "common/linux/eintr_wrapper.h"
+#include "common/tests/file_utils.h"
+
+namespace google_breakpad {
+
+bool CopyFile(const char* from_path, const char* to_path) {
+  int infile = HANDLE_EINTR(open(from_path, O_RDONLY));
+  if (infile < 0) {
+    perror("open");
+    return false;
+  }
+
+  int outfile = HANDLE_EINTR(creat(to_path, 0666));
+  if (outfile < 0) {
+    perror("creat");
+    if (IGNORE_EINTR(close(infile)) < 0) {
+      perror("close");
+    }
+    return false;
+  }
+
+  char buffer[1024];
+  bool result = true;
+
+  while (result) {
+    ssize_t bytes_read = HANDLE_EINTR(read(infile, buffer, sizeof(buffer)));
+    if (bytes_read < 0) {
+      perror("read");
+      result = false;
+      break;
+    }
+    if (bytes_read == 0)
+      break;
+    ssize_t bytes_written_per_read = 0;
+    do {
+      ssize_t bytes_written_partial = HANDLE_EINTR(write(
+          outfile,
+          &buffer[bytes_written_per_read],
+          bytes_read - bytes_written_per_read));
+      if (bytes_written_partial < 0) {
+        perror("write");
+        result = false;
+        break;
+      }
+      bytes_written_per_read += bytes_written_partial;
+    } while (bytes_written_per_read < bytes_read);
+  }
+
+  if (IGNORE_EINTR(close(infile)) == -1) {
+    perror("close");
+    result = false;
+  }
+  if (IGNORE_EINTR(close(outfile)) == -1) {
+    perror("close");
+    result = false;
+  }
+
+  return result;
+}
+
+bool CopyFile(const std::string& from_path, const std::string& to_path) {
+  return CopyFile(from_path.c_str(), to_path.c_str());
+}
+
+bool ReadFile(const char* path, void* buffer, ssize_t* buffer_size) {
+  int fd = HANDLE_EINTR(open(path, O_RDONLY));
+  if (fd == -1) {
+    perror("open");
+    return false;
+  }
+
+  bool ok = true;
+  if (buffer && buffer_size && *buffer_size > 0) {
+    memset(buffer, 0, sizeof(*buffer_size));
+    *buffer_size = HANDLE_EINTR(read(fd, buffer, *buffer_size));
+    if (*buffer_size == -1) {
+      perror("read");
+      ok = false;
+    }
+  }
+  if (IGNORE_EINTR(close(fd)) == -1) {
+    perror("close");
+    ok = false;
+  }
+  return ok;
+}
+
+bool WriteFile(const char* path, const void* buffer, size_t buffer_size) {
+  int fd = HANDLE_EINTR(open(path, O_CREAT | O_TRUNC | O_WRONLY, S_IRWXU));
+  if (fd == -1) {
+    perror("open");
+    return false;
+  }
+
+  bool ok = true;
+  if (buffer) {
+    size_t bytes_written_total = 0;
+    ssize_t bytes_written_partial = 0;
+    const char* data = reinterpret_cast<const char*>(buffer);
+    while (bytes_written_total < buffer_size) {
+      bytes_written_partial =
+          HANDLE_EINTR(write(fd, data + bytes_written_total,
+                             buffer_size - bytes_written_total));
+      if (bytes_written_partial < 0) {
+        perror("write");
+        ok = false;
+        break;
+      }
+      bytes_written_total += bytes_written_partial;
+    }
+  }
+  if (IGNORE_EINTR(close(fd)) == -1) {
+    perror("close");
+    ok = false;
+  }
+  return ok;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/tests/file_utils.h b/src/common/tests/file_utils.h
new file mode 100644
index 0000000..3d1a9c6
--- /dev/null
+++ b/src/common/tests/file_utils.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// file_utils.h: Define utility functions for file manipulation, which
+// are used for testing.
+
+#ifndef COMMON_TESTS_FILE_UTILS_H_
+#define COMMON_TESTS_FILE_UTILS_H_
+
+#include <string>
+
+namespace google_breakpad {
+
+// Copies a file from |from_path| to |to_path|. Returns true on success.
+bool CopyFile(const std::string& from_path, const std::string& to_path);
+bool CopyFile(const char* from_path, const char* to_path);
+
+// Reads the content of a file at |path| into |buffer|. |buffer_size| specifies
+// the size of |buffer| in bytes and returns the number of bytes read from the
+// file on success. Returns true on success.
+bool ReadFile(const char* path, void* buffer, ssize_t* buffer_size);
+
+// Writes |buffer_size| bytes of the content in |buffer| to a file at |path|.
+// Returns true on success.
+bool WriteFile(const char* path, const void* buffer, size_t buffer_size);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_TESTS_FILE_UTILS_H_
diff --git a/src/common/unordered.h b/src/common/unordered.h
new file mode 100644
index 0000000..c9cbd58
--- /dev/null
+++ b/src/common/unordered.h
@@ -0,0 +1,62 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Include this file to use unordered_map and unordered_set.  If tr1
+// or C++11 is not available, you can switch to using hash_set and
+// hash_map by defining BP_USE_HASH_SET.
+
+#ifndef COMMON_UNORDERED_H_
+#define COMMON_UNORDERED_H_
+
+#if defined(BP_USE_HASH_SET)
+#include <hash_map>
+#include <hash_set>
+
+// For hash<string>.
+#include "util/hash/hash.h"
+
+template <class T, class U, class H = __gnu_cxx::hash<T> >
+struct unordered_map : public __gnu_cxx::hash_map<T, U, H> {};
+template <class T, class H = __gnu_cxx::hash<T> >
+struct unordered_set : public __gnu_cxx::hash_set<T, H> {};
+
+#elif defined(_LIBCPP_VERSION)  // c++11
+#include <unordered_map>
+#include <unordered_set>
+using std::unordered_map;
+using std::unordered_set;
+
+#else  // Fallback to tr1::unordered
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
+using std::tr1::unordered_map;
+using std::tr1::unordered_set;
+#endif
+
+#endif  // COMMON_UNORDERED_H_
diff --git a/src/common/using_std_string.h b/src/common/using_std_string.h
new file mode 100644
index 0000000..13c1da5
--- /dev/null
+++ b/src/common/using_std_string.h
@@ -0,0 +1,65 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Ivan Penkov
+
+// using_std_string.h: Allows building this code in environments where
+//                     global string (::string) exists.
+//
+// The problem:
+// -------------
+// Let's say you want to build this code in an environment where a global
+// string type is defined (i.e. ::string).  Now, let's suppose that ::string
+// is different that std::string and you'd like to have the option to easily
+// choose between the two string types.  Ideally you'd like to control which
+// string type is chosen by simply #defining an identifier.
+//
+// The solution:
+// -------------
+// #define HAS_GLOBAL_STRING somewhere in a global header file and then
+// globally replace std::string with string.  Then include this header
+// file everywhere where string is used.  If you want to revert back to
+// using std::string, simply remove the #define (HAS_GLOBAL_STRING).
+
+#ifndef THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
+#define THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
+
+#ifdef HAS_GLOBAL_STRING
+  typedef ::string google_breakpad_string;
+#else
+  using std::string;
+  typedef std::string google_breakpad_string;
+#endif
+
+// Inicates that type google_breakpad_string is defined
+#define HAS_GOOGLE_BREAKPAD_STRING
+
+#endif  // THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
diff --git a/src/common/windows/common_windows.gyp b/src/common/windows/common_windows.gyp
new file mode 100644
index 0000000..5f7594b
--- /dev/null
+++ b/src/common/windows/common_windows.gyp
@@ -0,0 +1,112 @@
+# Copyright 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'dia_sdk',
+      'type': 'none',
+      'all_dependent_settings': {
+        'include_dirs': [
+          '<(DEPTH)',
+          '$(VSInstallDir)/DIA SDK/include',
+        ],
+        'msvs_settings': {
+          'VCLinkerTool': {
+            'AdditionalDependencies': [
+              'diaguids.lib',
+              'imagehlp.lib',
+            ],
+          },
+        },
+        'configurations': {
+          'x86_Base': {
+            'msvs_settings': {
+              'VCLinkerTool': {
+                'AdditionalLibraryDirectories':
+                  ['$(VSInstallDir)/DIA SDK/lib'],
+              },
+            },
+          },
+          'x64_Base': {
+            'msvs_settings': {
+              'VCLinkerTool': {
+                'AdditionalLibraryDirectories':
+                  ['$(VSInstallDir)/DIA SDK/lib/amd64'],
+              },
+            },
+          },
+        },
+      },
+    },
+    {
+      'target_name': 'common_windows_lib',
+      'type': 'static_library',
+      'sources': [
+        'dia_util.cc',
+        'dia_util.h',
+        'guid_string.cc',
+        'guid_string.h',
+        'http_upload.cc',
+        'http_upload.h',
+        'module_info.h',
+        'omap.cc',
+        'omap.h',
+        'omap_internal.h',
+        'pdb_source_line_writer.cc',
+        'pdb_source_line_writer.h',
+        'pe_source_line_writer.cc',
+        'pe_source_line_writer.h',
+        'pe_util.h',
+        'pe_util.cc',
+        'string_utils.cc',
+        'string_utils-inl.h',
+        'symbol_collector_client.cc',
+        'symbol_collector_client.h',
+      ],
+      'dependencies': [
+        'dia_sdk',
+      ],
+    },
+    {
+      'target_name': 'common_windows_unittests',
+      'type': 'executable',
+      'sources': [
+        'omap_unittest.cc',
+      ],
+      'dependencies': [
+        '<(DEPTH)/client/windows/unittests/testing.gyp:gmock',
+        '<(DEPTH)/client/windows/unittests/testing.gyp:gtest',
+        'common_windows_lib',
+      ],
+    },
+  ],
+}
diff --git a/src/common/windows/dia_util.cc b/src/common/windows/dia_util.cc
new file mode 100644
index 0000000..ed8cb5b
--- /dev/null
+++ b/src/common/windows/dia_util.cc
@@ -0,0 +1,92 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/windows/dia_util.h"
+
+#include <atlbase.h>
+
+namespace google_breakpad {
+
+bool FindDebugStream(const wchar_t* name,
+                     IDiaSession* session,
+                     IDiaEnumDebugStreamData** debug_stream) {
+  CComPtr<IDiaEnumDebugStreams> enum_debug_streams;
+  if (FAILED(session->getEnumDebugStreams(&enum_debug_streams))) {
+    fprintf(stderr, "IDiaSession::getEnumDebugStreams failed\n");
+    return false;
+  }
+
+  CComPtr<IDiaEnumDebugStreamData> temp_debug_stream;
+  ULONG fetched = 0;
+  while (SUCCEEDED(enum_debug_streams->Next(1, &temp_debug_stream, &fetched)) &&
+         fetched == 1) {
+    CComBSTR stream_name;
+    if (FAILED(temp_debug_stream->get_name(&stream_name))) {
+      fprintf(stderr, "IDiaEnumDebugStreamData::get_name failed\n");
+      return false;
+    }
+
+    // Found the stream?
+    if (wcsncmp((LPWSTR)stream_name, name, stream_name.Length()) == 0) {
+      *debug_stream = temp_debug_stream.Detach();
+      return true;
+    }
+
+    temp_debug_stream.Release();
+  }
+
+  // No table was found.
+  return false;
+}
+
+bool FindTable(REFIID iid, IDiaSession* session, void** table) {
+  // Get the table enumerator.
+  CComPtr<IDiaEnumTables> enum_tables;
+  if (FAILED(session->getEnumTables(&enum_tables))) {
+    fprintf(stderr, "IDiaSession::getEnumTables failed\n");
+    return false;
+  }
+
+  // Iterate through the tables.
+  CComPtr<IDiaTable> temp_table;
+  ULONG fetched = 0;
+  while (SUCCEEDED(enum_tables->Next(1, &temp_table, &fetched)) &&
+         fetched == 1) {
+    void* temp = NULL;
+    if (SUCCEEDED(temp_table->QueryInterface(iid, &temp))) {
+      *table = temp;
+      return true;
+    }
+    temp_table.Release();
+  }
+
+  // The table was not found.
+  return false;
+}
+
+}  // namespace google_breakpad
\ No newline at end of file
diff --git a/src/common/windows/dia_util.h b/src/common/windows/dia_util.h
new file mode 100644
index 0000000..b9e0df2
--- /dev/null
+++ b/src/common/windows/dia_util.h
@@ -0,0 +1,64 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Utilities for loading debug streams and tables from a PDB file.
+
+#ifndef COMMON_WINDOWS_DIA_UTIL_H_
+#define COMMON_WINDOWS_DIA_UTIL_H_
+
+#include <Windows.h>
+#include <dia2.h>
+
+namespace google_breakpad {
+
+// Find the debug stream of the given |name| in the given |session|. Returns
+// true on success, false on error of if the stream does not exist. On success
+// the stream will be returned via |debug_stream|.
+bool FindDebugStream(const wchar_t* name,
+                     IDiaSession* session,
+                     IDiaEnumDebugStreamData** debug_stream);
+
+// Finds the first table implementing the COM interface with ID |iid| in the
+// given |session|. Returns true on success, false on error or if no such
+// table is found. On success the table will be returned via |table|.
+bool FindTable(REFIID iid, IDiaSession* session, void** table);
+
+// A templated version of FindTable. Finds the first table implementing type
+// |InterfaceType| in the given |session|. Returns true on success, false on
+// error or if no such table is found. On success the table will be returned via
+// |table|.
+template<typename InterfaceType>
+bool FindTable(IDiaSession* session, InterfaceType** table) {
+  return FindTable(__uuidof(InterfaceType),
+                   session,
+                   reinterpret_cast<void**>(table));
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_DIA_UTIL_H_
diff --git a/src/common/windows/guid_string.cc b/src/common/windows/guid_string.cc
new file mode 100644
index 0000000..b7f877e
--- /dev/null
+++ b/src/common/windows/guid_string.cc
@@ -0,0 +1,76 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// guid_string.cc: Convert GUIDs to strings.
+//
+// See guid_string.h for documentation.
+
+#include <wchar.h>
+
+#include "common/windows/string_utils-inl.h"
+
+#include "common/windows/guid_string.h"
+
+namespace google_breakpad {
+
+// static
+wstring GUIDString::GUIDToWString(GUID *guid) {
+  wchar_t guid_string[37];
+  swprintf(
+      guid_string, sizeof(guid_string) / sizeof(guid_string[0]),
+      L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+      guid->Data1, guid->Data2, guid->Data3,
+      guid->Data4[0], guid->Data4[1], guid->Data4[2],
+      guid->Data4[3], guid->Data4[4], guid->Data4[5],
+      guid->Data4[6], guid->Data4[7]);
+
+  // remove when VC++7.1 is no longer supported
+  guid_string[sizeof(guid_string) / sizeof(guid_string[0]) - 1] = L'\0';
+
+  return wstring(guid_string);
+}
+
+// static
+wstring GUIDString::GUIDToSymbolServerWString(GUID *guid) {
+  wchar_t guid_string[33];
+  swprintf(
+      guid_string, sizeof(guid_string) / sizeof(guid_string[0]),
+      L"%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X",
+      guid->Data1, guid->Data2, guid->Data3,
+      guid->Data4[0], guid->Data4[1], guid->Data4[2],
+      guid->Data4[3], guid->Data4[4], guid->Data4[5],
+      guid->Data4[6], guid->Data4[7]);
+
+  // remove when VC++7.1 is no longer supported
+  guid_string[sizeof(guid_string) / sizeof(guid_string[0]) - 1] = L'\0';
+
+  return wstring(guid_string);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/guid_string.h b/src/common/windows/guid_string.h
new file mode 100644
index 0000000..48a5c1d
--- /dev/null
+++ b/src/common/windows/guid_string.h
@@ -0,0 +1,58 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// guid_string.cc: Convert GUIDs to strings.
+
+#ifndef COMMON_WINDOWS_GUID_STRING_H_
+#define COMMON_WINDOWS_GUID_STRING_H_
+
+#include <guiddef.h>
+
+#include <string>
+
+namespace google_breakpad {
+
+using std::wstring;
+
+class GUIDString {
+ public:
+  // Converts guid to a string in the format recommended by RFC 4122 and
+  // returns the string.
+  static wstring GUIDToWString(GUID *guid);
+
+  // Converts guid to a string formatted as uppercase hexadecimal, with
+  // no separators, and returns the string.  This is the format used for
+  // symbol server identifiers, although identifiers have an age tacked
+  // on to the string.
+  static wstring GUIDToSymbolServerWString(GUID *guid);
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_GUID_STRING_H_
diff --git a/src/common/windows/http_upload.cc b/src/common/windows/http_upload.cc
new file mode 100644
index 0000000..efee0d5
--- /dev/null
+++ b/src/common/windows/http_upload.cc
@@ -0,0 +1,510 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+
+// Disable exception handler warnings.
+#pragma warning(disable:4530)
+
+#include <fstream>
+#include <vector>
+
+#include "common/windows/string_utils-inl.h"
+
+#include "common/windows/http_upload.h"
+
+namespace {
+  using std::string;
+  using std::wstring;
+  using std::map;
+  using std::vector;
+  using std::ifstream;
+  using std::ios;
+
+  const wchar_t kUserAgent[] = L"Breakpad/1.0 (Windows)";
+
+  // Helper class which closes an internet handle when it goes away
+  class AutoInternetHandle {
+  public:
+    explicit AutoInternetHandle(HINTERNET handle) : handle_(handle) {}
+    ~AutoInternetHandle() {
+      if (handle_) {
+        InternetCloseHandle(handle_);
+      }
+    }
+
+    HINTERNET get() { return handle_; }
+
+  private:
+    HINTERNET handle_;
+  };
+
+  wstring UTF8ToWide(const string& utf8) {
+    if (utf8.length() == 0) {
+      return wstring();
+    }
+
+    // compute the length of the buffer we'll need
+    int charcount = MultiByteToWideChar(CP_UTF8, 0, utf8.c_str(), -1, NULL, 0);
+
+    if (charcount == 0) {
+      return wstring();
+    }
+
+    // convert
+    wchar_t* buf = new wchar_t[charcount];
+    MultiByteToWideChar(CP_UTF8, 0, utf8.c_str(), -1, buf, charcount);
+    wstring result(buf);
+    delete[] buf;
+    return result;
+  }
+
+  string WideToMBCP(const wstring& wide, unsigned int cp) {
+    if (wide.length() == 0) {
+      return string();
+    }
+
+    // compute the length of the buffer we'll need
+    int charcount = WideCharToMultiByte(cp, 0, wide.c_str(), -1,
+        NULL, 0, NULL, NULL);
+    if (charcount == 0) {
+      return string();
+    }
+
+    // convert
+    char *buf = new char[charcount];
+    WideCharToMultiByte(cp, 0, wide.c_str(), -1, buf, charcount,
+        NULL, NULL);
+
+    string result(buf);
+    delete[] buf;
+    return result;
+  }
+
+  bool GetFileContents(const wstring& filename, vector<char>* contents) {
+    bool rv = false;
+    // The "open" method on pre-MSVC8 ifstream implementations doesn't accept a
+    // wchar_t* filename, so use _wfopen directly in that case.  For VC8 and
+    // later, _wfopen has been deprecated in favor of _wfopen_s, which does
+    // not exist in earlier versions, so let the ifstream open the file itself.
+    // GCC doesn't support wide file name and opening on FILE* requires ugly
+    // hacks, so fallback to multi byte file.
+#ifdef _MSC_VER
+    ifstream file;
+    file.open(filename.c_str(), ios::binary);
+#else // GCC
+    ifstream file(WideToMBCP(filename, CP_ACP).c_str(), ios::binary);
+#endif  // _MSC_VER >= 1400
+    if (file.is_open()) {
+      file.seekg(0, ios::end);
+      std::streamoff length = file.tellg();
+      // Check for loss of data when converting lenght from std::streamoff into
+      // std::vector<char>::size_type
+      std::vector<char>::size_type vector_size =
+        static_cast<std::vector<char>::size_type>(length);
+      if (static_cast<std::streamoff>(vector_size) == length) {
+        contents->resize(vector_size);
+        if (length != 0) {
+          file.seekg(0, ios::beg);
+          file.read(&((*contents)[0]), length);
+        }
+        rv = true;
+      }
+      file.close();
+    }
+    return rv;
+  }
+
+  bool CheckParameters(const map<wstring, wstring>& parameters) {
+    for (map<wstring, wstring>::const_iterator pos = parameters.begin();
+          pos != parameters.end(); ++pos) {
+      const wstring& str = pos->first;
+      if (str.size() == 0) {
+        return false;  // disallow empty parameter names
+      }
+      for (unsigned int i = 0; i < str.size(); ++i) {
+        wchar_t c = str[i];
+        if (c < 32 || c == '"' || c > 127) {
+          return false;
+        }
+      }
+    }
+    return true;
+  }
+
+  // Converts a UTF16 string to UTF8.
+  string WideToUTF8(const wstring& wide) {
+    return WideToMBCP(wide, CP_UTF8);
+  }
+
+  bool ReadResponse(HINTERNET request, wstring *response) {
+    bool has_content_length_header = false;
+    wchar_t content_length[32];
+    DWORD content_length_size = sizeof(content_length);
+    DWORD claimed_size = 0;
+    string response_body;
+
+    if (HttpQueryInfo(request, HTTP_QUERY_CONTENT_LENGTH,
+        static_cast<LPVOID>(&content_length),
+        &content_length_size, 0)) {
+      has_content_length_header = true;
+      claimed_size = wcstol(content_length, NULL, 10);
+      response_body.reserve(claimed_size);
+    }
+
+    DWORD bytes_available;
+    DWORD total_read = 0;
+    BOOL return_code;
+
+    while (((return_code = InternetQueryDataAvailable(request, &bytes_available,
+        0, 0)) != 0) && bytes_available > 0) {
+      vector<char> response_buffer(bytes_available);
+      DWORD size_read;
+
+      return_code = InternetReadFile(request,
+          &response_buffer[0],
+          bytes_available, &size_read);
+
+      if (return_code && size_read > 0) {
+        total_read += size_read;
+        response_body.append(&response_buffer[0], size_read);
+      }
+      else {
+        break;
+      }
+    }
+
+    bool succeeded = return_code && (!has_content_length_header ||
+        (total_read == claimed_size));
+    if (succeeded && response) {
+      *response = UTF8ToWide(response_body);
+    }
+
+    return succeeded;
+  }
+
+  bool SendRequestInner(
+      const wstring& url,
+      const wstring& http_method,
+      const wstring& content_type_header,
+      const string& request_body,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code) {
+    if (response_code) {
+      *response_code = 0;
+    }
+
+    // Break up the URL and make sure we can handle it
+    wchar_t scheme[16], host[256], path[1024];
+    URL_COMPONENTS components;
+    memset(&components, 0, sizeof(components));
+    components.dwStructSize = sizeof(components);
+    components.lpszScheme = scheme;
+    components.dwSchemeLength = sizeof(scheme) / sizeof(scheme[0]);
+    components.lpszHostName = host;
+    components.dwHostNameLength = sizeof(host) / sizeof(host[0]);
+    components.lpszUrlPath = path;
+    components.dwUrlPathLength = sizeof(path) / sizeof(path[0]);
+    if (!InternetCrackUrl(url.c_str(), static_cast<DWORD>(url.size()),
+        0, &components)) {
+      DWORD err = GetLastError();
+      wprintf(L"%d\n", err);
+      return false;
+    }
+    bool secure = false;
+    if (wcscmp(scheme, L"https") == 0) {
+      secure = true;
+    }
+    else if (wcscmp(scheme, L"http") != 0) {
+      return false;
+    }
+
+    AutoInternetHandle internet(InternetOpen(kUserAgent,
+        INTERNET_OPEN_TYPE_PRECONFIG,
+        NULL,  // proxy name
+        NULL,  // proxy bypass
+        0));   // flags
+    if (!internet.get()) {
+      return false;
+    }
+
+    AutoInternetHandle connection(InternetConnect(internet.get(),
+        host,
+        components.nPort,
+        NULL,    // user name
+        NULL,    // password
+        INTERNET_SERVICE_HTTP,
+        0,       // flags
+        NULL));  // context
+    if (!connection.get()) {
+      return false;
+    }
+
+    DWORD http_open_flags = secure ? INTERNET_FLAG_SECURE : 0;
+    http_open_flags |= INTERNET_FLAG_NO_COOKIES;
+    AutoInternetHandle request(HttpOpenRequest(connection.get(),
+        http_method.c_str(),
+        path,
+        NULL,    // version
+        NULL,    // referer
+        NULL,    // agent type
+        http_open_flags,
+        NULL));  // context
+    if (!request.get()) {
+      return false;
+    }
+
+    if (!content_type_header.empty()) {
+      HttpAddRequestHeaders(request.get(),
+          content_type_header.c_str(),
+          static_cast<DWORD>(-1),
+          HTTP_ADDREQ_FLAG_ADD);
+    }
+
+    if (timeout_ms) {
+      if (!InternetSetOption(request.get(),
+          INTERNET_OPTION_SEND_TIMEOUT,
+          timeout_ms,
+          sizeof(*timeout_ms))) {
+        fwprintf(stderr, L"Could not unset send timeout, continuing...\n");
+      }
+
+      if (!InternetSetOption(request.get(),
+          INTERNET_OPTION_RECEIVE_TIMEOUT,
+          timeout_ms,
+          sizeof(*timeout_ms))) {
+        fwprintf(stderr, L"Could not unset receive timeout, continuing...\n");
+      }
+    }
+
+    if (!HttpSendRequest(request.get(), NULL, 0,
+        const_cast<char*>(request_body.data()),
+        static_cast<DWORD>(request_body.size()))) {
+      return false;
+    }
+
+    // The server indicates a successful upload with HTTP status 200.
+    wchar_t http_status[4];
+    DWORD http_status_size = sizeof(http_status);
+    if (!HttpQueryInfo(request.get(), HTTP_QUERY_STATUS_CODE,
+        static_cast<LPVOID>(&http_status), &http_status_size,
+        0)) {
+      return false;
+    }
+
+    int http_response = wcstol(http_status, NULL, 10);
+    if (response_code) {
+      *response_code = http_response;
+    }
+
+    bool result = (http_response == 200);
+
+    if (result) {
+      result = ReadResponse(request.get(), response_body);
+    }
+
+    return result;
+  }
+
+  wstring GenerateMultipartBoundary() {
+    // The boundary has 27 '-' characters followed by 16 hex digits
+    static const wchar_t kBoundaryPrefix[] = L"---------------------------";
+    static const int kBoundaryLength = 27 + 16 + 1;
+
+    // Generate some random numbers to fill out the boundary
+    int r0 = rand();
+    int r1 = rand();
+
+    wchar_t temp[kBoundaryLength];
+    swprintf(temp, kBoundaryLength, L"%s%08X%08X", kBoundaryPrefix, r0, r1);
+
+    // remove when VC++7.1 is no longer supported
+    temp[kBoundaryLength - 1] = L'\0';
+
+    return wstring(temp);
+  }
+
+  wstring GenerateMultipartPostRequestHeader(const wstring& boundary) {
+    wstring header = L"Content-Type: multipart/form-data; boundary=";
+    header += boundary;
+    return header;
+  }
+
+  bool AppendFileToRequestBody(
+      const wstring& file_part_name,
+      const wstring& filename,
+      string* request_body) {
+    string file_part_name_utf8 = WideToUTF8(file_part_name);
+    if (file_part_name_utf8.empty()) {
+      return false;
+    }
+
+    string filename_utf8 = WideToUTF8(filename);
+    if (filename_utf8.empty()) {
+      return false;
+    }
+
+    request_body->append("Content-Disposition: form-data; "
+        "name=\"" + file_part_name_utf8 + "\"; "
+        "filename=\"" + filename_utf8 + "\"\r\n");
+    request_body->append("Content-Type: application/octet-stream\r\n");
+    request_body->append("\r\n");
+
+    vector<char> contents;
+    if (!GetFileContents(filename, &contents)) {
+      return false;
+    }
+
+    if (!contents.empty()) {
+      request_body->append(&(contents[0]), contents.size());
+    }
+    request_body->append("\r\n");
+
+    return true;
+  }
+
+  bool GenerateRequestBody(const map<wstring, wstring>& parameters,
+      const map<wstring, wstring>& files,
+      const wstring& boundary,
+      string *request_body) {
+    string boundary_str = WideToUTF8(boundary);
+    if (boundary_str.empty()) {
+      return false;
+    }
+
+    request_body->clear();
+
+    // Append each of the parameter pairs as a form-data part
+    for (map<wstring, wstring>::const_iterator pos = parameters.begin();
+        pos != parameters.end(); ++pos) {
+      request_body->append("--" + boundary_str + "\r\n");
+      request_body->append("Content-Disposition: form-data; name=\"" +
+          WideToUTF8(pos->first) + "\"\r\n\r\n" +
+          WideToUTF8(pos->second) + "\r\n");
+    }
+
+    // Now append each upload file as a binary (octet-stream) part
+    for (map<wstring, wstring>::const_iterator pos = files.begin();
+        pos != files.end(); ++pos) {
+      request_body->append("--" + boundary_str + "\r\n");
+
+      if (!AppendFileToRequestBody(pos->first, pos->second, request_body)) {
+        return false;
+      }
+    }
+    request_body->append("--" + boundary_str + "--\r\n");
+    return true;
+  }
+}
+
+namespace google_breakpad {
+  bool HTTPUpload::SendPutRequest(
+      const wstring& url,
+      const wstring& path,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code) {
+    string request_body;
+    if (!AppendFileToRequestBody(L"symbol_file", path, &request_body)) {
+      return false;
+    }
+
+    return SendRequestInner(
+        url,
+        L"PUT",
+        L"",
+        request_body,
+        timeout_ms,
+        response_body,
+        response_code);
+  }
+
+  bool HTTPUpload::SendGetRequest(
+      const wstring& url,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code) {
+    return SendRequestInner(
+        url,
+        L"GET",
+        L"",
+        "",
+        timeout_ms,
+        response_body,
+        response_code);
+  }
+
+  bool HTTPUpload::SendMultipartPostRequest(
+      const wstring& url,
+      const map<wstring, wstring>& parameters,
+      const map<wstring, wstring>& files,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code) {
+    // TODO(bryner): support non-ASCII parameter names
+    if (!CheckParameters(parameters)) {
+      return false;
+    }
+
+    wstring boundary = GenerateMultipartBoundary();
+    wstring content_type_header = GenerateMultipartPostRequestHeader(boundary);
+
+    string request_body;
+    if (!GenerateRequestBody(parameters, files, boundary, &request_body)) {
+      return false;
+    }
+
+    return SendRequestInner(
+        url,
+        L"POST",
+        content_type_header,
+        request_body,
+        timeout_ms,
+        response_body,
+        response_code);
+  }
+
+  bool HTTPUpload::SendSimplePostRequest(
+      const wstring& url,
+      const wstring& body,
+      const wstring& content_type,
+      int *timeout_ms,
+      wstring *response_body,
+      int *response_code) {
+    return SendRequestInner(
+        url,
+        L"POST",
+        content_type,
+        WideToUTF8(body),
+        timeout_ms,
+        response_body,
+        response_code);
+  }
+}  // namespace google_breakpad
diff --git a/src/common/windows/http_upload.h b/src/common/windows/http_upload.h
new file mode 100644
index 0000000..c7d8c6f
--- /dev/null
+++ b/src/common/windows/http_upload.h
@@ -0,0 +1,126 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// HTTPUpload provides a "nice" API to send a multipart HTTP(S) POST
+// request using wininet.  It currently supports requests that contain
+// a set of string parameters (key/value pairs), and a file to upload.
+
+#ifndef COMMON_WINDOWS_HTTP_UPLOAD_H_
+#define COMMON_WINDOWS_HTTP_UPLOAD_H_
+
+#pragma warning(push)
+// Disable exception handler warnings.
+#pragma warning(disable : 4530)
+
+#include <windows.h>
+#include <wininet.h>
+
+#include <map>
+
+namespace google_breakpad {
+
+using std::string;
+using std::wstring;
+using std::map;
+
+class HTTPUpload {
+ public:
+  // Sends a PUT request containing the data in |path| to the given
+  // URL.
+  // Only HTTP(S) URLs are currently supported.  Returns true on success.
+  // If the request is successful and response_body is non-NULL,
+  // the response body will be returned in response_body.
+  // If response_code is non-NULL, it will be set to the HTTP response code
+  // received (or 0 if the request failed before getting an HTTP response).
+  static bool SendPutRequest(
+      const wstring& url,
+      const wstring& path,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code);
+
+  // Sends a GET request to the given URL.
+  // Only HTTP(S) URLs are currently supported.  Returns true on success.
+  // If the request is successful and response_body is non-NULL,
+  // the response body will be returned in response_body.
+  // If response_code is non-NULL, it will be set to the HTTP response code
+  // received (or 0 if the request failed before getting an HTTP response).
+  static bool SendGetRequest(
+      const wstring& url,
+      int* timeout_ms,
+      wstring* response_body,
+      int* response_code);
+
+  // Sends the given sets of parameters and files as a multipart POST
+  // request to the given URL.
+  // Each key in |files| is the name of the file part of the request
+  // (i.e. it corresponds to the name= attribute on an <input type="file">.
+  // Parameter names must contain only printable ASCII characters,
+  // and may not contain a quote (") character.
+  // Only HTTP(S) URLs are currently supported.  Returns true on success.
+  // If the request is successful and response_body is non-NULL,
+  // the response body will be returned in response_body.
+  // If response_code is non-NULL, it will be set to the HTTP response code
+  // received (or 0 if the request failed before getting an HTTP response).
+  static bool SendMultipartPostRequest(
+      const wstring& url,
+      const map<wstring, wstring>& parameters,
+      const map<wstring, wstring>& files,
+      int *timeout_ms,
+      wstring *response_body,
+      int *response_code);
+
+  // Sends a POST request, with the body set to |body|, to the given URL.
+  // Only HTTP(S) URLs are currently supported.  Returns true on success.
+  // If the request is successful and response_body is non-NULL,
+  // the response body will be returned in response_body.
+  // If response_code is non-NULL, it will be set to the HTTP response code
+  // received (or 0 if the request failed before getting an HTTP response).
+  static bool SendSimplePostRequest(
+      const wstring& url,
+      const wstring& body,
+      const wstring& content_type,
+      int *timeout_ms,
+      wstring *response_body,
+      int *response_code);
+
+ private:
+  // No instances of this class should be created.
+  // Disallow all constructors, destructors, and operator=.
+  HTTPUpload();
+  explicit HTTPUpload(const HTTPUpload&);
+  void operator=(const HTTPUpload&);
+  ~HTTPUpload();
+};
+
+}  // namespace google_breakpad
+
+#pragma warning(pop)
+
+#endif  // COMMON_WINDOWS_HTTP_UPLOAD_H_
diff --git a/src/common/windows/module_info.h b/src/common/windows/module_info.h
new file mode 100644
index 0000000..3dccc80
--- /dev/null
+++ b/src/common/windows/module_info.h
@@ -0,0 +1,75 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_WINDOWS_MODULE_INFO_H_
+#define COMMON_WINDOWS_MODULE_INFO_H_
+
+#include <string>
+
+namespace google_breakpad {
+
+using std::wstring;
+// A structure that carries information that identifies a module.
+struct PDBModuleInfo {
+public:
+  // The basename of the pe/pdb file from which information was loaded.
+  wstring debug_file;
+
+  // The module's identifier.  For recent pe/pdb files, the identifier consists
+  // of the pe/pdb's guid, in uppercase hexadecimal form without any dashes
+  // or separators, followed immediately by the pe/pdb's age, also in
+  // uppercase hexadecimal form.  For older pe/pdb files which have no guid,
+  // the identifier is the pe/pdb's 32-bit signature value, in zero-padded
+  // hexadecimal form, followed immediately by the pe/pdb's age, in lowercase
+  // hexadecimal form.
+  wstring debug_identifier;
+
+  // A string identifying the cpu that the pe/pdb is associated with.
+  // Currently, this may be "x86" or "unknown".
+  wstring cpu;
+};
+
+// A structure that carries information that identifies a PE file,
+// either an EXE or a DLL.
+struct PEModuleInfo {
+  // The basename of the PE file.
+  wstring code_file;
+
+  // The PE file's code identifier, which consists of its timestamp
+  // and file size concatenated together into a single hex string.
+  // (The fields IMAGE_OPTIONAL_HEADER::SizeOfImage and
+  // IMAGE_FILE_HEADER::TimeDateStamp, as defined in the ImageHlp
+  // documentation.) This is not well documented, if it's documented
+  // at all, but it's what symstore does and what DbgHelp supports.
+  wstring code_identifier;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_MODULE_INFO_H_
diff --git a/src/common/windows/omap.cc b/src/common/windows/omap.cc
new file mode 100644
index 0000000..5a821b6
--- /dev/null
+++ b/src/common/windows/omap.cc
@@ -0,0 +1,716 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This contains a suite of tools for transforming symbol information when
+// when that information has been extracted from a PDB containing OMAP
+// information.
+
+// OMAP information is a lightweight description of a mapping between two
+// address spaces. It consists of two streams, each of them a vector 2-tuples.
+// The OMAPTO stream contains tuples of the form
+//
+//   (RVA in transformed image, RVA in original image)
+//
+// while the OMAPFROM stream contains tuples of the form
+//
+//   (RVA in original image, RVA in transformed image)
+//
+// The entries in each vector are sorted by the first value of the tuple, and
+// the lengths associated with a mapping are implicit as the distance between
+// two successive addresses in the vector.
+
+// Consider a trivial 10-byte function described by the following symbol:
+//
+//   Function: RVA 0x00001000, length 10, "foo"
+//
+// Now consider the same function, but with 5-bytes of instrumentation injected
+// at offset 5. The OMAP streams describing this would look like:
+//
+//   OMAPTO  :  [ [0x00001000, 0x00001000],
+//                [0x00001005, 0xFFFFFFFF],
+//                [0x0000100a, 0x00001005] ]
+//   OMAPFROM:  [ [0x00001000, 0x00001000],
+//                [0x00001005, 0x0000100a] ]
+//
+// In this case the injected code has been marked as not originating in the
+// source image, and thus it will have no symbol information at all. However,
+// the injected code may also be associated with an original address range;
+// for example, when prepending instrumentation to a basic block the
+// instrumentation can be labelled as originating from the same source BB such
+// that symbol resolution will still find the appropriate source code line
+// number. In this case the OMAP stream would look like:
+//
+//   OMAPTO  :  [ [0x00001000, 0x00001000],
+//                [0x00001005, 0x00001005],
+//                [0x0000100a, 0x00001005] ]
+//   OMAPFROM:  [ [0x00001000, 0x00001000],
+//                [0x00001005, 0x0000100a] ]
+//
+// Suppose we asked DIA to lookup the symbol at location 0x0000100a of the
+// instrumented image. It would first run this through the OMAPTO table and
+// translate that address to 0x00001005. It would then lookup the symbol
+// at that address and return the symbol for the function "foo". This is the
+// correct result.
+//
+// However, if we query DIA for the length and address of the symbol it will
+// tell us that it has length 10 and is at RVA 0x00001000. The location is
+// correct, but the length doesn't take into account the 5-bytes of injected
+// code. Symbol resolution works (starting from an instrumented address,
+// mapping to an original address, and looking up a symbol), but the symbol
+// metadata is incorrect.
+//
+// If we dump the symbols using DIA they will have their addresses
+// appropriately transformed and reflect positions in the instrumented image.
+// However, if we try to do a lookup using those symbols resolution can fail.
+// For example, the address 0x0000100a will not map to the symbol for "foo",
+// because DIA tells us it is at location 0x00001000 (correct) with length
+// 10 (incorrect). The problem is one of order of operations: in this case
+// we're attempting symbol resolution by looking up an instrumented address
+// in the table of translated symbols.
+//
+// One way to handle this is to dump the OMAP information as part of the
+// breakpad symbols. This requires the rest of the toolchain to be aware of
+// OMAP information and to use it when present prior to performing lookup. The
+// other option is to properly transform the symbols (updating length as well as
+// position) so that resolution will work as expected for translated addresses.
+// This is transparent to the rest of the toolchain.
+
+#include "common/windows/omap.h"
+
+#include <atlbase.h>
+
+#include <algorithm>
+#include <cassert>
+#include <set>
+
+#include "common/windows/dia_util.h"
+
+namespace google_breakpad {
+
+namespace {
+
+static const wchar_t kOmapToDebugStreamName[] = L"OMAPTO";
+static const wchar_t kOmapFromDebugStreamName[] = L"OMAPFROM";
+
+// Dependending on where this is used in breakpad we sometimes get min/max from
+// windef, and other times from algorithm. To get around this we simply
+// define our own min/max functions.
+template<typename T>
+const T& Min(const T& t1, const T& t2) { return t1 < t2 ? t1 : t2; }
+template<typename T>
+const T& Max(const T& t1, const T& t2) { return t1 > t2 ? t1 : t2; }
+
+// It makes things more readable to have two different OMAP types. We cast
+// normal OMAPs into these. They must be the same size as the OMAP structure
+// for this to work, hence the static asserts.
+struct OmapOrigToTran {
+  DWORD rva_original;
+  DWORD rva_transformed;
+};
+struct OmapTranToOrig {
+  DWORD rva_transformed;
+  DWORD rva_original;
+};
+static_assert(sizeof(OmapOrigToTran) == sizeof(OMAP),
+              "OmapOrigToTran must have same size as OMAP.");
+static_assert(sizeof(OmapTranToOrig) == sizeof(OMAP),
+              "OmapTranToOrig must have same size as OMAP.");
+typedef std::vector<OmapOrigToTran> OmapFromTable;
+typedef std::vector<OmapTranToOrig> OmapToTable;
+
+// Used for sorting and searching through a Mapping.
+bool MappedRangeOriginalLess(const MappedRange& lhs, const MappedRange& rhs) {
+  if (lhs.rva_original < rhs.rva_original)
+    return true;
+  if (lhs.rva_original > rhs.rva_original)
+    return false;
+  return lhs.length < rhs.length;
+}
+bool MappedRangeMappedLess(const MappedRange& lhs, const MappedRange& rhs) {
+  if (lhs.rva_transformed < rhs.rva_transformed)
+    return true;
+  if (lhs.rva_transformed > rhs.rva_transformed)
+    return false;
+  return lhs.length < rhs.length;
+}
+
+// Used for searching through the EndpointIndexMap.
+bool EndpointIndexLess(const EndpointIndex& ei1, const EndpointIndex& ei2) {
+  return ei1.endpoint < ei2.endpoint;
+}
+
+// Finds the debug stream with the given |name| in the given |session|, and
+// populates |table| with its contents. Casts the data directly into OMAP
+// structs.
+bool FindAndLoadOmapTable(const wchar_t* name,
+                          IDiaSession* session,
+                          OmapTable* table) {
+  assert(name != NULL);
+  assert(session != NULL);
+  assert(table != NULL);
+
+  CComPtr<IDiaEnumDebugStreamData> stream;
+  if (!FindDebugStream(name, session, &stream))
+    return false;
+  assert(stream.p != NULL);
+
+  LONG count = 0;
+  if (FAILED(stream->get_Count(&count))) {
+    fprintf(stderr, "IDiaEnumDebugStreamData::get_Count failed for stream "
+                    "\"%ws\"\n", name);
+    return false;
+  }
+
+  // Get the length of the stream in bytes.
+  DWORD bytes_read = 0;
+  ULONG count_read = 0;
+  if (FAILED(stream->Next(count, 0, &bytes_read, NULL, &count_read))) {
+    fprintf(stderr, "IDiaEnumDebugStreamData::Next failed while reading "
+                    "length of stream \"%ws\"\n", name);
+    return false;
+  }
+
+  // Ensure it's consistent with the OMAP data type.
+  DWORD bytes_expected = count * sizeof(OmapTable::value_type);
+  if (count * sizeof(OmapTable::value_type) != bytes_read) {
+    fprintf(stderr, "DIA debug stream \"%ws\" has an unexpected length", name);
+    return false;
+  }
+
+  // Read the table.
+  table->resize(count);
+  bytes_read = 0;
+  count_read = 0;
+  if (FAILED(stream->Next(count, bytes_expected, &bytes_read,
+                          reinterpret_cast<BYTE*>(&table->at(0)),
+                          &count_read))) {
+    fprintf(stderr, "IDiaEnumDebugStreamData::Next failed while reading "
+                    "data from stream \"%ws\"\n", name);
+    return false;
+  }
+
+  return true;
+}
+
+// This determines the original image length by looking through the segment
+// table.
+bool GetOriginalImageLength(IDiaSession* session, DWORD* image_length) {
+  assert(session != NULL);
+  assert(image_length != NULL);
+
+  CComPtr<IDiaEnumSegments> enum_segments;
+  if (!FindTable(session, &enum_segments))
+    return false;
+  assert(enum_segments.p != NULL);
+
+  DWORD temp_image_length = 0;
+  CComPtr<IDiaSegment> segment;
+  ULONG fetched = 0;
+  while (SUCCEEDED(enum_segments->Next(1, &segment, &fetched)) &&
+         fetched == 1) {
+    assert(segment.p != NULL);
+
+    DWORD rva = 0;
+    DWORD length = 0;
+    DWORD frame = 0;
+    if (FAILED(segment->get_relativeVirtualAddress(&rva)) ||
+        FAILED(segment->get_length(&length)) ||
+        FAILED(segment->get_frame(&frame))) {
+      fprintf(stderr, "Failed to get basic properties for IDiaSegment\n");
+      return false;
+    }
+
+    if (frame > 0) {
+      DWORD segment_end = rva + length;
+      if (segment_end > temp_image_length)
+        temp_image_length = segment_end;
+    }
+    segment.Release();
+  }
+
+  *image_length = temp_image_length;
+  return true;
+}
+
+// Detects regions of the original image that have been removed in the
+// transformed image, and sets the 'removed' property on all mapped ranges
+// immediately preceding a gap. The mapped ranges must be sorted by
+// 'rva_original'.
+void FillInRemovedLengths(Mapping* mapping) {
+  assert(mapping != NULL);
+
+  // Find and fill gaps. We do this with two sweeps. We first sweep forward
+  // looking for gaps. When we identify a gap we then sweep forward with a
+  // second scan and set the 'removed' property for any intervals that
+  // immediately precede the gap.
+  //
+  // Gaps are typically between two successive intervals, but not always:
+  //
+  //   Range 1: ---------------
+  //   Range 2:     -------
+  //   Range 3:                      -------------
+  //   Gap    :                ******
+  //
+  // In the above example the gap is between range 1 and range 3. A forward
+  // sweep finds the gap, and a second forward sweep identifies that range 1
+  // immediately precedes the gap and sets its 'removed' property.
+
+  size_t fill = 0;
+  DWORD rva_front = 0;
+  for (size_t find = 0; find < mapping->size(); ++find) {
+#ifndef NDEBUG
+    // We expect the mapped ranges to be sorted by 'rva_original'.
+    if (find > 0) {
+      assert(mapping->at(find - 1).rva_original <=
+                 mapping->at(find).rva_original);
+    }
+#endif
+
+    if (rva_front < mapping->at(find).rva_original) {
+      // We've found a gap. Fill it in by setting the 'removed' property for
+      // any affected intervals.
+      DWORD removed = mapping->at(find).rva_original - rva_front;
+      for (; fill < find; ++fill) {
+        if (mapping->at(fill).rva_original + mapping->at(fill).length !=
+                rva_front) {
+          continue;
+        }
+
+        // This interval ends right where the gap starts. It needs to have its
+        // 'removed' information filled in.
+        mapping->at(fill).removed = removed;
+      }
+    }
+
+    // Advance the front that indicates the covered portion of the image.
+    rva_front = mapping->at(find).rva_original + mapping->at(find).length;
+  }
+}
+
+// Builds a unified view of the mapping between the original and transformed
+// image space by merging OMAPTO and OMAPFROM data.
+void BuildMapping(const OmapData& omap_data, Mapping* mapping) {
+  assert(mapping != NULL);
+
+  mapping->clear();
+
+  if (omap_data.omap_from.empty() || omap_data.omap_to.empty())
+    return;
+
+  // The names 'omap_to' and 'omap_from' are awfully confusing, so we make
+  // ourselves more explicit here. This cast is only safe because the underlying
+  // types have the exact same size.
+  const OmapToTable& tran2orig =
+      reinterpret_cast<const OmapToTable&>(omap_data.omap_to);
+  const OmapFromTable& orig2tran = reinterpret_cast<const OmapFromTable&>(
+      omap_data.omap_from);
+
+  // Handle the range of data at the beginning of the image. This is not usually
+  // specified by the OMAP data.
+  if (tran2orig[0].rva_transformed > 0 && orig2tran[0].rva_original > 0) {
+    DWORD header_transformed = tran2orig[0].rva_transformed;
+    DWORD header_original = orig2tran[0].rva_original;
+    DWORD header = Min(header_transformed, header_original);
+
+    MappedRange mr = {};
+    mr.length = header;
+    mr.injected = header_transformed - header;
+    mr.removed = header_original - header;
+    mapping->push_back(mr);
+  }
+
+  // Convert the implied lengths to explicit lengths, and infer which content
+  // has been injected into the transformed image. Injected content is inferred
+  // as regions of the transformed address space that does not map back to
+  // known valid content in the original image.
+  for (size_t i = 0; i < tran2orig.size(); ++i) {
+    const OmapTranToOrig& o1 = tran2orig[i];
+
+    // This maps to content that is outside the original image, thus it
+    // describes injected content. We can skip this entry.
+    if (o1.rva_original >= omap_data.length_original)
+      continue;
+
+    // Calculate the length of the current OMAP entry. This is implicit as the
+    // distance between successive |rva| values, capped at the end of the
+    // original image.
+    DWORD length = 0;
+    if (i + 1 < tran2orig.size()) {
+      const OmapTranToOrig& o2 = tran2orig[i + 1];
+
+      // We expect the table to be sorted by rva_transformed.
+      assert(o1.rva_transformed <= o2.rva_transformed);
+
+      length = o2.rva_transformed - o1.rva_transformed;
+      if (o1.rva_original + length > omap_data.length_original) {
+        length = omap_data.length_original - o1.rva_original;
+      }
+    } else {
+      length = omap_data.length_original - o1.rva_original;
+    }
+
+    // Zero-length entries don't describe anything and can be ignored.
+    if (length == 0)
+      continue;
+
+    // Any gaps in the transformed address-space are due to injected content.
+    if (!mapping->empty()) {
+      MappedRange& prev_mr = mapping->back();
+      prev_mr.injected += o1.rva_transformed -
+          (prev_mr.rva_transformed + prev_mr.length);
+    }
+
+    MappedRange mr = {};
+    mr.rva_original = o1.rva_original;
+    mr.rva_transformed = o1.rva_transformed;
+    mr.length = length;
+    mapping->push_back(mr);
+  }
+
+  // Sort based on the original image addresses.
+  std::sort(mapping->begin(), mapping->end(), MappedRangeOriginalLess);
+
+  // Fill in the 'removed' lengths by looking for gaps in the coverage of the
+  // original address space.
+  FillInRemovedLengths(mapping);
+
+  return;
+}
+
+void BuildEndpointIndexMap(ImageMap* image_map) {
+  assert(image_map != NULL);
+
+  if (image_map->mapping.size() == 0)
+    return;
+
+  const Mapping& mapping = image_map->mapping;
+  EndpointIndexMap& eim = image_map->endpoint_index_map;
+
+  // Get the unique set of interval endpoints.
+  std::set<DWORD> endpoints;
+  for (size_t i = 0; i < mapping.size(); ++i) {
+    endpoints.insert(mapping[i].rva_original);
+    endpoints.insert(mapping[i].rva_original +
+                         mapping[i].length +
+                         mapping[i].removed);
+  }
+
+  // Use the endpoints to initialize the secondary search structure for the
+  // mapping.
+  eim.resize(endpoints.size());
+  std::set<DWORD>::const_iterator it = endpoints.begin();
+  for (size_t i = 0; it != endpoints.end(); ++it, ++i) {
+    eim[i].endpoint = *it;
+    eim[i].index = mapping.size();
+  }
+
+  // For each endpoint we want the smallest index of any interval containing
+  // it. We iterate over the intervals and update the indices associated with
+  // each interval endpoint contained in the current interval. In the general
+  // case of an arbitrary set of intervals this is O(n^2), but the structure of
+  // OMAP data makes this O(n).
+  for (size_t i = 0; i < mapping.size(); ++i) {
+    EndpointIndex ei1 = { mapping[i].rva_original, 0 };
+    EndpointIndexMap::iterator it1 = std::lower_bound(
+        eim.begin(), eim.end(), ei1, EndpointIndexLess);
+
+    EndpointIndex ei2 = { mapping[i].rva_original + mapping[i].length +
+                              mapping[i].removed, 0 };
+    EndpointIndexMap::iterator it2 = std::lower_bound(
+        eim.begin(), eim.end(), ei2, EndpointIndexLess);
+
+    for (; it1 != it2; ++it1)
+      it1->index = Min(i, it1->index);
+  }
+}
+
+void BuildSubsequentRVAMap(const OmapData& omap_data,
+                           std::map<DWORD, DWORD>* subsequent) {
+  assert(subsequent->empty());
+  const OmapFromTable& orig2tran =
+      reinterpret_cast<const OmapFromTable&>(omap_data.omap_from);
+
+  if (orig2tran.empty())
+    return;
+
+  for (size_t i = 0; i < orig2tran.size() - 1; ++i) {
+    // Expect that orig2tran is sorted.
+    if (orig2tran[i].rva_original >= orig2tran[i + 1].rva_original) {
+      fprintf(stderr, "OMAP 'from' table unexpectedly unsorted\n");
+      subsequent->clear();
+      return;
+    }
+    subsequent->insert(std::make_pair(orig2tran[i].rva_original,
+                                      orig2tran[i + 1].rva_original));
+  }
+}
+
+// Clips the given mapped range.
+void ClipMappedRangeOriginal(const AddressRange& clip_range,
+                             MappedRange* mapped_range) {
+  assert(mapped_range != NULL);
+
+  // The clipping range is entirely outside of the mapped range.
+  if (clip_range.end() <= mapped_range->rva_original ||
+      mapped_range->rva_original + mapped_range->length +
+          mapped_range->removed <= clip_range.rva) {
+    mapped_range->length = 0;
+    mapped_range->injected = 0;
+    mapped_range->removed = 0;
+    return;
+  }
+
+  // Clip the left side.
+  if (mapped_range->rva_original < clip_range.rva) {
+    DWORD clip_left = clip_range.rva - mapped_range->rva_original;
+    mapped_range->rva_original += clip_left;
+    mapped_range->rva_transformed += clip_left;
+
+    if (clip_left > mapped_range->length) {
+      // The left clipping boundary entirely erases the content section of the
+      // range.
+      DWORD trim = clip_left - mapped_range->length;
+      mapped_range->length = 0;
+      mapped_range->injected -= Min(trim, mapped_range->injected);
+      // We know that trim <= mapped_range->remove.
+      mapped_range->removed -= trim;
+    } else {
+      // The left clipping boundary removes some, but not all, of the content.
+      // As such it leaves the removed/injected component intact.
+      mapped_range->length -= clip_left;
+    }
+  }
+
+  // Clip the right side.
+  DWORD end_original = mapped_range->rva_original + mapped_range->length;
+  if (clip_range.end() < end_original) {
+    // The right clipping boundary lands in the 'content' section of the range,
+    // entirely clearing the injected/removed portion.
+    DWORD clip_right = end_original - clip_range.end();
+    mapped_range->length -= clip_right;
+    mapped_range->injected = 0;
+    mapped_range->removed = 0;
+    return;
+  } else {
+    // The right clipping boundary is outside of the content, but may affect
+    // the removed/injected portion of the range.
+    DWORD end_removed = end_original + mapped_range->removed;
+    if (clip_range.end() < end_removed)
+      mapped_range->removed = clip_range.end() - end_original;
+
+    DWORD end_injected = end_original + mapped_range->injected;
+    if (clip_range.end() < end_injected)
+      mapped_range->injected = clip_range.end() - end_original;
+  }
+
+  return;
+}
+
+}  // namespace
+
+int AddressRange::Compare(const AddressRange& rhs) const {
+  if (end() <= rhs.rva)
+    return -1;
+  if (rhs.end() <= rva)
+    return 1;
+  return 0;
+}
+
+bool GetOmapDataAndDisableTranslation(IDiaSession* session,
+                                      OmapData* omap_data) {
+  assert(session != NULL);
+  assert(omap_data != NULL);
+
+  CComPtr<IDiaAddressMap> address_map;
+  if (FAILED(session->QueryInterface(&address_map))) {
+    fprintf(stderr, "IDiaSession::QueryInterface(IDiaAddressMap) failed\n");
+    return false;
+  }
+  assert(address_map.p != NULL);
+
+  BOOL omap_enabled = FALSE;
+  if (FAILED(address_map->get_addressMapEnabled(&omap_enabled))) {
+    fprintf(stderr, "IDiaAddressMap::get_addressMapEnabled failed\n");
+    return false;
+  }
+
+  if (!omap_enabled) {
+    // We indicate the non-presence of OMAP data by returning empty tables.
+    omap_data->omap_from.clear();
+    omap_data->omap_to.clear();
+    omap_data->length_original = 0;
+    return true;
+  }
+
+  // OMAP data is present. Disable translation.
+  if (FAILED(address_map->put_addressMapEnabled(FALSE))) {
+    fprintf(stderr, "IDiaAddressMap::put_addressMapEnabled failed\n");
+    return false;
+  }
+
+  // Read the OMAP streams.
+  if (!FindAndLoadOmapTable(kOmapFromDebugStreamName,
+                            session,
+                            &omap_data->omap_from)) {
+    return false;
+  }
+  if (!FindAndLoadOmapTable(kOmapToDebugStreamName,
+                            session,
+                            &omap_data->omap_to)) {
+    return false;
+  }
+
+  // Get the lengths of the address spaces.
+  if (!GetOriginalImageLength(session, &omap_data->length_original))
+    return false;
+
+  return true;
+}
+
+void BuildImageMap(const OmapData& omap_data, ImageMap* image_map) {
+  assert(image_map != NULL);
+
+  BuildMapping(omap_data, &image_map->mapping);
+  BuildEndpointIndexMap(image_map);
+  BuildSubsequentRVAMap(omap_data, &image_map->subsequent_rva_block);
+}
+
+void MapAddressRange(const ImageMap& image_map,
+                     const AddressRange& original_range,
+                     AddressRangeVector* mapped_ranges) {
+  assert(mapped_ranges != NULL);
+
+  const Mapping& map = image_map.mapping;
+
+  // Handle the trivial case of an empty image_map. This means that there is
+  // no transformation to be applied, and we can simply return the original
+  // range.
+  if (map.empty()) {
+    mapped_ranges->push_back(original_range);
+    return;
+  }
+
+  // If we get a query of length 0 we need to handle it by using a non-zero
+  // query length.
+  AddressRange query_range(original_range);
+  if (query_range.length == 0)
+    query_range.length = 1;
+
+  // Find the range of intervals that can potentially intersect our query range.
+  size_t imin = 0;
+  size_t imax = 0;
+  {
+    // The index of the earliest possible range that can affect is us done by
+    // searching through the secondary indexing structure.
+    const EndpointIndexMap& eim = image_map.endpoint_index_map;
+    EndpointIndex q1 = { query_range.rva, 0 };
+    EndpointIndexMap::const_iterator it1 = std::lower_bound(
+        eim.begin(), eim.end(), q1, EndpointIndexLess);
+    if (it1 == eim.end()) {
+      imin  = map.size();
+    } else {
+      // Backup to find the interval that contains our query point.
+      if (it1 != eim.begin() && query_range.rva < it1->endpoint)
+        --it1;
+      imin = it1->index;
+    }
+
+    // The first range that can't possibly intersect us is found by searching
+    // through the image map directly as it is already sorted by interval start
+    // point.
+    MappedRange q2 = { query_range.end(), 0 };
+    Mapping::const_iterator it2 = std::lower_bound(
+        map.begin(), map.end(), q2, MappedRangeOriginalLess);
+    imax = it2 - map.begin();
+  }
+
+  // Find all intervals that intersect the query range.
+  Mapping temp_map;
+  for (size_t i = imin; i < imax; ++i) {
+    MappedRange mr = map[i];
+    ClipMappedRangeOriginal(query_range, &mr);
+    if (mr.length + mr.injected > 0)
+      temp_map.push_back(mr);
+  }
+
+  // If there are no intersecting ranges then the query range has been removed
+  // from the image in question.
+  if (temp_map.empty())
+    return;
+
+  // Sort based on transformed addresses.
+  std::sort(temp_map.begin(), temp_map.end(), MappedRangeMappedLess);
+
+  // Zero-length queries can't actually be merged. We simply output the set of
+  // unique RVAs that correspond to the query RVA.
+  if (original_range.length == 0) {
+    mapped_ranges->push_back(AddressRange(temp_map[0].rva_transformed, 0));
+    for (size_t i = 1; i < temp_map.size(); ++i) {
+      if (temp_map[i].rva_transformed > mapped_ranges->back().rva)
+        mapped_ranges->push_back(AddressRange(temp_map[i].rva_transformed, 0));
+    }
+    return;
+  }
+
+  // Merge any ranges that are consecutive in the mapped image. We merge over
+  // injected content if it makes ranges contiguous, but we ignore any injected
+  // content at the tail end of a range. This allows us to detect symbols that
+  // have been lengthened by injecting content in the middle. However, it
+  // misses the case where content has been injected at the head or the tail.
+  // The problem is that it doesn't know whether to attribute it to the
+  // preceding or following symbol. It is up to the author of the transform to
+  // output explicit OMAP info in these cases to ensure full coverage of the
+  // transformed address space.
+  DWORD rva_begin = temp_map[0].rva_transformed;
+  DWORD rva_cur_content = rva_begin + temp_map[0].length;
+  DWORD rva_cur_injected = rva_cur_content + temp_map[0].injected;
+  for (size_t i = 1; i < temp_map.size(); ++i) {
+    if (rva_cur_injected < temp_map[i].rva_transformed) {
+      // This marks the end of a continuous range in the image. Output the
+      // current range and start a new one.
+      if (rva_begin < rva_cur_content) {
+        mapped_ranges->push_back(
+            AddressRange(rva_begin, rva_cur_content - rva_begin));
+      }
+      rva_begin = temp_map[i].rva_transformed;
+    }
+
+    rva_cur_content = temp_map[i].rva_transformed + temp_map[i].length;
+    rva_cur_injected = rva_cur_content + temp_map[i].injected;
+  }
+
+  // Output the range in progress.
+  if (rva_begin < rva_cur_content) {
+    mapped_ranges->push_back(
+        AddressRange(rva_begin, rva_cur_content - rva_begin));
+  }
+
+  return;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/omap.h b/src/common/windows/omap.h
new file mode 100644
index 0000000..bc293af
--- /dev/null
+++ b/src/common/windows/omap.h
@@ -0,0 +1,72 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Provides an API for mapping symbols through OMAP information, if a PDB file
+// is augmented with it. This allows breakpad to work with addresses in
+// transformed images by transforming the symbols themselves, rather than
+// transforming addresses prior to querying symbols (the way it is typically
+// done by Windows-native tools, including the DIA).
+
+#ifndef COMMON_WINDOWS_OMAP_H_
+#define COMMON_WINDOWS_OMAP_H_
+
+#include "common/windows/omap_internal.h"
+
+namespace google_breakpad {
+
+// If the given session contains OMAP data this extracts it, populating
+// |omap_data|, and then disabling automatic translation for the session.
+// OMAP data is present in the PDB if |omap_data| is not empty. This returns
+// true on success, false otherwise.
+bool GetOmapDataAndDisableTranslation(IDiaSession* dia_session,
+                                      OmapData* omap_data);
+
+// Given raw OMAP data builds an ImageMap. This can be used to query individual
+// image ranges using MapAddressRange.
+// |omap_data|| is the OMAP data extracted from the PDB.
+// |image_map| will be populated with a description of the image mapping. If
+//     |omap_data| is empty then this will also be empty.
+void BuildImageMap(const OmapData& omap_data, ImageMap* image_map);
+
+// Given an address range in the original image space determines how exactly it
+// has been tranformed.
+// |omap_data| is the OMAP data extracted from the PDB, which must not be
+//     empty.
+// |original_range| is the address range in the original image being queried.
+// |mapped_ranges| will be populated with a full description of the mapping.
+//     They may be disjoint in the transformed image so a vector is needed to
+//     fully represent the mapping. This will be appended to if it is not
+//     empty. If |omap_data| is empty then |mapped_ranges| will simply be
+//     populated with a copy of |original_range| (the identity transform).
+void MapAddressRange(const ImageMap& image_map,
+                     const AddressRange& original_range,
+                     AddressRangeVector* mapped_ranges);
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_OMAP_H_
diff --git a/src/common/windows/omap_internal.h b/src/common/windows/omap_internal.h
new file mode 100644
index 0000000..2a4713d
--- /dev/null
+++ b/src/common/windows/omap_internal.h
@@ -0,0 +1,140 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Declares internal implementation details for functionality in omap.h and
+// omap.cc.
+
+#ifndef COMMON_WINDOWS_OMAP_INTERNAL_H_
+#define COMMON_WINDOWS_OMAP_INTERNAL_H_
+
+#include <windows.h>
+#include <dia2.h>
+
+#include <map>
+#include <vector>
+
+namespace google_breakpad {
+
+// The OMAP struct is defined by debughlp.h, which doesn't play nicely with
+// imagehlp.h. We simply redefine it.
+struct OMAP {
+  DWORD rva;
+  DWORD rvaTo;
+};
+static_assert(sizeof(OMAP) == 8, "Wrong size for OMAP structure.");
+typedef std::vector<OMAP> OmapTable;
+
+// This contains the OMAP data extracted from an image.
+struct OmapData {
+  // The table of OMAP entries describing the transformation from the
+  // original image to the transformed image.
+  OmapTable omap_from;  
+  // The table of OMAP entries describing the transformation from the
+  // instrumented image to the original image.
+  OmapTable omap_to;
+  // The length of the original untransformed image.
+  DWORD length_original;
+
+  OmapData() : length_original(0) { }
+};
+
+// This represents a range of addresses in an image.
+struct AddressRange {
+  DWORD rva;
+  DWORD length;
+
+  AddressRange() : rva(0), length(0) { }
+  AddressRange(DWORD rva, DWORD length) : rva(rva), length(length) { }
+
+  // Returns the end address of this range.
+  DWORD end() const { return rva + length; }
+
+  // Addreses only compare as less-than or greater-than if they are not
+  // overlapping. Otherwise, they compare equal.
+  int Compare(const AddressRange& rhs) const;
+  bool operator<(const AddressRange& rhs) const { return Compare(rhs) == -1; }
+  bool operator>(const AddressRange& rhs) const { return Compare(rhs) == 1; }
+
+  // Equality operators compare exact values.
+  bool operator==(const AddressRange& rhs) const {
+    return rva == rhs.rva && length == rhs.length;
+  }
+  bool operator!=(const  AddressRange& rhs) const { return !((*this) == rhs); }
+};
+
+typedef std::vector<AddressRange> AddressRangeVector;
+
+// This represents an address range in an original image, and its corresponding
+// range in the transformed image.
+struct MappedRange {
+  // An address in the original image.
+  DWORD rva_original;
+  // The corresponding addresses in the transformed image.
+  DWORD rva_transformed;
+  // The length of the address range.
+  DWORD length;
+  // It is possible for code to be injected into a transformed image, for which
+  // there is no corresponding code in the original image. If this range of
+  // transformed image is immediately followed by such injected code we maintain
+  // a record of its length here.
+  DWORD injected;
+  // It is possible for code to be removed from the original image. This happens
+  // for things like padding between blocks. There is no actual content lost,
+  // but the spacing between items may be lost. This keeps track of any removed
+  // content immediately following the |original| range.
+  DWORD removed;
+};
+// A vector of mapped ranges is used as a more useful representation of
+// OMAP data.
+typedef std::vector<MappedRange> Mapping;
+
+// Used as a secondary search structure accompanying a Mapping.
+struct EndpointIndex {
+  DWORD endpoint;
+  size_t index;
+};
+typedef std::vector<EndpointIndex> EndpointIndexMap;
+
+// An ImageMap is vector of mapped ranges, plus a secondary index into it for
+// doing interval searches. (An interval tree would also work, but is overkill
+// because we don't need insertion and deletion.)
+struct ImageMap {
+  // This is a description of the mapping between original and transformed
+  // image, sorted by addresses in the original image.
+  Mapping mapping;
+  // For all interval endpoints in |mapping| this stores the minimum index of
+  // an interval in |mapping| that contains the endpoint. Useful for doing
+  // interval intersection queries.
+  EndpointIndexMap endpoint_index_map;
+
+  std::map<DWORD, DWORD> subsequent_rva_block;
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_OMAP_INTERNAL_H_
diff --git a/src/common/windows/omap_unittest.cc b/src/common/windows/omap_unittest.cc
new file mode 100644
index 0000000..7fe66bd
--- /dev/null
+++ b/src/common/windows/omap_unittest.cc
@@ -0,0 +1,329 @@
+// Copyright 2013 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unittests for OMAP related functions.
+
+#include "common/windows/omap.h"
+
+#include "breakpad_googletest_includes.h"
+
+namespace google_breakpad {
+
+// Equality operators for ContainerEq. These must be outside of the anonymous
+// namespace in order for them to be found.
+bool operator==(const MappedRange& mr1, const MappedRange& mr2) {
+  return mr1.rva_original == mr2.rva_original &&
+      mr1.rva_transformed == mr2.rva_transformed &&
+      mr1.length == mr2.length &&
+      mr1.injected == mr2.injected &&
+      mr1.removed == mr2.removed;
+}
+bool operator==(const EndpointIndex& ei1, const EndpointIndex& ei2) {
+  return ei1.endpoint == ei2.endpoint && ei1.index == ei2.index;
+}
+
+// Pretty printers for more meaningful error messages. Also need to be outside
+// the anonymous namespace.
+std::ostream& operator<<(std::ostream& os, const MappedRange& mr) {
+  os << "MappedRange(rva_original=" << mr.rva_original
+     << ", rva_transformed=" << mr.rva_transformed
+     << ", length=" << mr.length
+     << ", injected=" << mr.injected
+     << ", removed=" << mr.removed << ")";
+  return os;
+}
+std::ostream& operator<<(std::ostream& os, const EndpointIndex& ei) {
+  os << "EndpointIndex(endpoint=" << ei.endpoint
+     << ", index=" << ei.index << ")";
+  return os;
+}
+std::ostream& operator<<(std::ostream& os, const AddressRange& ar) {
+  os << "AddressRange(rva=" << ar.rva << ", length=" << ar.length << ")";
+  return os;
+}
+
+namespace {
+
+OMAP CreateOmap(DWORD rva, DWORD rvaTo) {
+  OMAP o = { rva, rvaTo };
+  return o;
+}
+
+MappedRange CreateMappedRange(DWORD rva_original,
+                              DWORD rva_transformed,
+                              DWORD length,
+                              DWORD injected,
+                              DWORD removed) {
+  MappedRange mr = { rva_original, rva_transformed, length, injected, removed };
+  return mr;
+}
+
+EndpointIndex CreateEndpointIndex(DWORD endpoint, size_t index) {
+  EndpointIndex ei = { endpoint, index };
+  return ei;
+}
+
+//              (C is removed)
+// Original   :  A B C D E F G H
+// Transformed:  A B D F E * H1 G1 G2 H2
+//              (* is injected, G is copied, H is split)
+// A is implied.
+
+// Layout of the original image.
+const AddressRange B(100, 15);
+const AddressRange C(B.end(), 10);
+const AddressRange D(C.end(), 25);
+const AddressRange E(D.end(), 10);
+const AddressRange F(E.end(), 40);
+const AddressRange G(F.end(), 3);
+const AddressRange H(G.end(), 7);
+
+// Layout of the transformed image.
+const AddressRange Bt(100, 15);
+const AddressRange Dt(Bt.end(), 20);  // D is shortened.
+const AddressRange Ft(Dt.end(), F.length);
+const AddressRange Et(Ft.end(), E.length);
+const AddressRange injected(Et.end(), 5);
+const AddressRange H1t(injected.end(), 4);  // H is split.
+const AddressRange G1t(H1t.end(), G.length);  // G is copied.
+const AddressRange G2t(G1t.end(), G.length);  // G is copied.
+const AddressRange H2t(G2t.end(), 3);  // H is split.
+
+class BuildImageMapTest : public testing::Test {
+ public:
+  static const DWORD kInvalidAddress = 0xFFFFFFFF;
+
+  void InitOmapData() {
+    omap_data.length_original = H.end();
+
+    // Build the OMAPTO vector (from transformed to original).
+    omap_data.omap_to.push_back(CreateOmap(Bt.rva, B.rva));
+    omap_data.omap_to.push_back(CreateOmap(Dt.rva, D.rva));
+    omap_data.omap_to.push_back(CreateOmap(Ft.rva, F.rva));
+    omap_data.omap_to.push_back(CreateOmap(Et.rva, E.rva));
+    omap_data.omap_to.push_back(CreateOmap(injected.rva, kInvalidAddress));
+    omap_data.omap_to.push_back(CreateOmap(H1t.rva, H.rva));
+    omap_data.omap_to.push_back(CreateOmap(G1t.rva, G.rva));
+    omap_data.omap_to.push_back(CreateOmap(G2t.rva, G.rva));
+    omap_data.omap_to.push_back(CreateOmap(H2t.rva, H.rva + H1t.length));
+    omap_data.omap_to.push_back(CreateOmap(H2t.end(), kInvalidAddress));
+
+    // Build the OMAPFROM vector (from original to transformed).
+    omap_data.omap_from.push_back(CreateOmap(B.rva, Bt.rva));
+    omap_data.omap_from.push_back(CreateOmap(C.rva, kInvalidAddress));
+    omap_data.omap_from.push_back(CreateOmap(D.rva, Dt.rva));
+    omap_data.omap_from.push_back(CreateOmap(E.rva, Et.rva));
+    omap_data.omap_from.push_back(CreateOmap(F.rva, Ft.rva));
+    omap_data.omap_from.push_back(CreateOmap(G.rva, G1t.rva));
+    omap_data.omap_from.push_back(CreateOmap(H.rva, H1t.rva));
+    omap_data.omap_from.push_back(CreateOmap(H.rva + H1t.length, H2t.rva));
+    omap_data.omap_from.push_back(CreateOmap(H.end(), kInvalidAddress));
+  }
+
+  OmapData omap_data;
+};
+
+}  // namespace
+
+TEST_F(BuildImageMapTest, EmptyImageMapOnEmptyOmapData) {
+  ASSERT_EQ(0u, omap_data.omap_from.size());
+  ASSERT_EQ(0u, omap_data.omap_to.size());
+  ASSERT_EQ(0u, omap_data.length_original);
+
+  ImageMap image_map;
+  BuildImageMap(omap_data, &image_map);
+  EXPECT_EQ(0u, image_map.mapping.size());
+  EXPECT_EQ(0u, image_map.endpoint_index_map.size());
+}
+
+TEST_F(BuildImageMapTest, ImageMapIsCorrect) {
+  InitOmapData();
+  ASSERT_LE(0u, omap_data.omap_from.size());
+  ASSERT_LE(0u, omap_data.omap_to.size());
+  ASSERT_LE(0u, omap_data.length_original);
+
+  ImageMap image_map;
+  BuildImageMap(omap_data, &image_map);
+  EXPECT_LE(9u, image_map.mapping.size());
+  EXPECT_LE(9u, image_map.endpoint_index_map.size());
+
+  Mapping mapping;
+  mapping.push_back(CreateMappedRange(0, 0, B.rva, 0, 0));
+  // C is removed, and it originally comes immediately after B.
+  mapping.push_back(CreateMappedRange(B.rva, Bt.rva, B.length, 0, C.length));
+  // D is shortened by a length of 5.
+  mapping.push_back(CreateMappedRange(D.rva, Dt.rva, Dt.length, 0, 5));
+  // The injected content comes immediately after E in the transformed image.
+  mapping.push_back(CreateMappedRange(E.rva, Et.rva, E.length, injected.length,
+                                      0));
+  mapping.push_back(CreateMappedRange(F.rva, Ft.rva, F.length, 0, 0));
+  // G is copied so creates two entries.
+  mapping.push_back(CreateMappedRange(G.rva, G1t.rva, G.length, 0, 0));
+  mapping.push_back(CreateMappedRange(G.rva, G2t.rva, G.length, 0, 0));
+  // H is split, so create two entries.
+  mapping.push_back(CreateMappedRange(H.rva, H1t.rva, H1t.length, 0, 0));
+  mapping.push_back(CreateMappedRange(H.rva + H1t.length, H2t.rva, H2t.length,
+                                      0, 0));
+  EXPECT_THAT(mapping,
+              testing::ContainerEq(image_map.mapping));
+
+  EndpointIndexMap endpoint_index_map;
+  endpoint_index_map.push_back(CreateEndpointIndex(0, 0));
+  endpoint_index_map.push_back(CreateEndpointIndex(B.rva, 1));
+  endpoint_index_map.push_back(CreateEndpointIndex(D.rva, 2));
+  endpoint_index_map.push_back(CreateEndpointIndex(E.rva, 3));
+  endpoint_index_map.push_back(CreateEndpointIndex(F.rva, 4));
+  // G is duplicated so 2 ranges map back to it, hence the skip from 5 to 7.
+  endpoint_index_map.push_back(CreateEndpointIndex(G.rva, 5));
+  // H is split so we expect 2 endpoints to show up attributed to it.
+  endpoint_index_map.push_back(CreateEndpointIndex(H.rva, 7));
+  endpoint_index_map.push_back(CreateEndpointIndex(H.rva + H1t.length, 8));
+  endpoint_index_map.push_back(CreateEndpointIndex(H.end(), 9));
+  EXPECT_THAT(endpoint_index_map,
+              testing::ContainerEq(image_map.endpoint_index_map));
+}
+
+namespace {
+
+class MapAddressRangeTest : public BuildImageMapTest {
+ public:
+  typedef BuildImageMapTest Super;
+  virtual void SetUp() {
+    Super::SetUp();
+    InitOmapData();
+    BuildImageMap(omap_data, &image_map);
+  }
+
+  ImageMap image_map;
+
+ private:
+  using BuildImageMapTest::InitOmapData;
+  using BuildImageMapTest::omap_data;
+};
+
+}  // namespace
+
+TEST_F(MapAddressRangeTest, EmptyImageMapReturnsIdentity) {
+  ImageMap im;
+  AddressRangeVector mapped_ranges;
+  AddressRange ar(0, 1024);
+  MapAddressRange(im, ar, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+  EXPECT_EQ(ar, mapped_ranges[0]);
+}
+
+TEST_F(MapAddressRangeTest, MapOutOfImage) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, AddressRange(H.end() + 10, 10), &mapped_ranges);
+  EXPECT_EQ(0u, mapped_ranges.size());
+}
+
+TEST_F(MapAddressRangeTest, MapIdentity) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, B, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(B));
+}
+
+TEST_F(MapAddressRangeTest, MapReorderedContiguous) {
+  AddressRangeVector mapped_ranges;
+
+  AddressRange DEF(D.rva, F.end() - D.rva);
+  MapAddressRange(image_map, DEF, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+
+  AddressRange DFEt(Dt.rva, Et.end() - Dt.rva);
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(DFEt));
+}
+
+TEST_F(MapAddressRangeTest, MapEmptySingle) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, AddressRange(D.rva, 0), &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(AddressRange(Dt.rva, 0)));
+}
+
+TEST_F(MapAddressRangeTest, MapEmptyCopied) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, AddressRange(G.rva, 0), &mapped_ranges);
+  EXPECT_EQ(2u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(AddressRange(G1t.rva, 0),
+                                                  AddressRange(G2t.rva, 0)));
+}
+
+TEST_F(MapAddressRangeTest, MapCopiedContiguous) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, G, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(
+      AddressRange(G1t.rva, G2t.end() - G1t.rva)));
+}
+
+TEST_F(MapAddressRangeTest, MapSplitDiscontiguous) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, H, &mapped_ranges);
+  EXPECT_EQ(2u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(H1t, H2t));
+}
+
+TEST_F(MapAddressRangeTest, MapInjected) {
+  AddressRangeVector mapped_ranges;
+
+  AddressRange EFGH(E.rva, H.end() - E.rva);
+  MapAddressRange(image_map, EFGH, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+
+  AddressRange FEHGGHt(Ft.rva, H2t.end() - Ft.rva);
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(FEHGGHt));
+}
+
+TEST_F(MapAddressRangeTest, MapRemovedEntirely) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, C, &mapped_ranges);
+  EXPECT_EQ(0u, mapped_ranges.size());
+}
+
+TEST_F(MapAddressRangeTest, MapRemovedPartly) {
+  AddressRangeVector mapped_ranges;
+  MapAddressRange(image_map, D, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(Dt));
+}
+
+TEST_F(MapAddressRangeTest, MapFull) {
+  AddressRangeVector mapped_ranges;
+
+  AddressRange AH(0, H.end());
+  MapAddressRange(image_map, AH, &mapped_ranges);
+  EXPECT_EQ(1u, mapped_ranges.size());
+
+  AddressRange AHt(0, H2t.end());
+  EXPECT_THAT(mapped_ranges, testing::ElementsAre(AHt));
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/pdb_source_line_writer.cc b/src/common/windows/pdb_source_line_writer.cc
new file mode 100644
index 0000000..0eeb30c
--- /dev/null
+++ b/src/common/windows/pdb_source_line_writer.cc
@@ -0,0 +1,1194 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/windows/pdb_source_line_writer.h"
+
+#include <windows.h>
+#include <winnt.h>
+#include <atlbase.h>
+#include <dia2.h>
+#include <diacreate.h>
+#include <ImageHlp.h>
+#include <stdio.h>
+
+#include <algorithm>
+#include <limits>
+#include <map>
+#include <set>
+#include <utility>
+
+#include "common/windows/dia_util.h"
+#include "common/windows/guid_string.h"
+#include "common/windows/pe_util.h"
+#include "common/windows/string_utils-inl.h"
+
+// This constant may be missing from DbgHelp.h.  See the documentation for
+// IDiaSymbol::get_undecoratedNameEx.
+#ifndef UNDNAME_NO_ECSU
+#define UNDNAME_NO_ECSU 0x8000  // Suppresses enum/class/struct/union.
+#endif  // UNDNAME_NO_ECSU
+
+namespace google_breakpad {
+
+namespace {
+
+using std::vector;
+
+// The symbol (among possibly many) selected to represent an rva.
+struct SelectedSymbol {
+  SelectedSymbol(const CComPtr<IDiaSymbol>& symbol, bool is_public)
+      : symbol(symbol), is_public(is_public), is_multiple(false) {}
+
+  // The symbol to use for an rva.
+  CComPtr<IDiaSymbol> symbol;
+  // Whether this is a public or function symbol.
+  bool is_public;
+  // Whether the rva has multiple associated symbols. An rva will correspond to
+  // multiple symbols in the case of linker identical symbol folding.
+  bool is_multiple;
+};
+
+// Maps rva to the symbol to use for that address.
+typedef std::map<DWORD, SelectedSymbol> SymbolMap;
+
+// Record this in the map as the selected symbol for the rva if it satisfies the
+// necessary conditions.
+void MaybeRecordSymbol(DWORD rva,
+                       const CComPtr<IDiaSymbol> symbol,
+                       bool is_public,
+                       SymbolMap* map) {
+  SymbolMap::iterator loc = map->find(rva);
+  if (loc == map->end()) {
+    map->insert(std::make_pair(rva, SelectedSymbol(symbol, is_public)));
+    return;
+  }
+
+  // Prefer function symbols to public symbols.
+  if (is_public && !loc->second.is_public) {
+    return;
+  }
+
+  loc->second.is_multiple = true;
+
+  // Take the 'least' symbol by lexicographical order of the decorated name. We
+  // use the decorated rather than undecorated name because computing the latter
+  // is expensive.
+  BSTR current_name, new_name;
+  loc->second.symbol->get_name(&current_name);
+  symbol->get_name(&new_name);
+  if (wcscmp(new_name, current_name) < 0) {
+    loc->second.symbol = symbol;
+    loc->second.is_public = is_public;
+  }
+}
+
+
+
+bool SymbolsMatch(IDiaSymbol* a, IDiaSymbol* b) {
+  DWORD a_section, a_offset, b_section, b_offset;
+  if (FAILED(a->get_addressSection(&a_section)) ||
+      FAILED(a->get_addressOffset(&a_offset)) ||
+      FAILED(b->get_addressSection(&b_section)) ||
+      FAILED(b->get_addressOffset(&b_offset)))
+    return false;
+  return a_section == b_section && a_offset == b_offset;
+}
+
+bool CreateDiaDataSourceInstance(CComPtr<IDiaDataSource>& data_source) {
+  if (SUCCEEDED(data_source.CoCreateInstance(CLSID_DiaSource))) {
+    return true;
+  }
+
+  class DECLSPEC_UUID("B86AE24D-BF2F-4ac9-B5A2-34B14E4CE11D") DiaSource100;
+  class DECLSPEC_UUID("761D3BCD-1304-41D5-94E8-EAC54E4AC172") DiaSource110;
+  class DECLSPEC_UUID("3BFCEA48-620F-4B6B-81F7-B9AF75454C7D") DiaSource120;
+  class DECLSPEC_UUID("E6756135-1E65-4D17-8576-610761398C3C") DiaSource140;
+
+  // If the CoCreateInstance call above failed, msdia*.dll is not registered.
+  // We can try loading the DLL corresponding to the #included DIA SDK, but
+  // the DIA headers don't provide a version. Lets try to figure out which DIA
+  // version we're compiling against by comparing CLSIDs.
+  const wchar_t* msdia_dll = nullptr;
+  if (CLSID_DiaSource == _uuidof(DiaSource100)) {
+    msdia_dll = L"msdia100.dll";
+  } else if (CLSID_DiaSource == _uuidof(DiaSource110)) {
+    msdia_dll = L"msdia110.dll";
+  } else if (CLSID_DiaSource == _uuidof(DiaSource120)) {
+    msdia_dll = L"msdia120.dll";
+  } else if (CLSID_DiaSource == _uuidof(DiaSource140)) {
+    msdia_dll = L"msdia140.dll";
+  }
+
+  if (msdia_dll &&
+      SUCCEEDED(NoRegCoCreate(msdia_dll, CLSID_DiaSource, IID_IDiaDataSource,
+                              reinterpret_cast<void**>(&data_source)))) {
+    return true;
+  }
+
+  return false;
+}
+
+}  // namespace
+
+PDBSourceLineWriter::PDBSourceLineWriter() : output_(NULL) {
+}
+
+PDBSourceLineWriter::~PDBSourceLineWriter() {
+  Close();
+}
+
+bool PDBSourceLineWriter::SetCodeFile(const wstring& exe_file) {
+  if (code_file_.empty()) {
+    code_file_ = exe_file;
+    return true;
+  }
+  // Setting a different code file path is an error.  It is success only if the
+  // file paths are the same.
+  return exe_file == code_file_;
+}
+
+bool PDBSourceLineWriter::Open(const wstring& file, FileFormat format) {
+  Close();
+  code_file_.clear();
+
+  if (FAILED(CoInitialize(NULL))) {
+    fprintf(stderr, "CoInitialize failed\n");
+    return false;
+  }
+
+  CComPtr<IDiaDataSource> data_source;
+  if (!CreateDiaDataSourceInstance(data_source)) {
+    const int kGuidSize = 64;
+    wchar_t classid[kGuidSize] = {0};
+    StringFromGUID2(CLSID_DiaSource, classid, kGuidSize);
+    fprintf(stderr, "CoCreateInstance CLSID_DiaSource %S failed "
+            "(msdia*.dll unregistered?)\n", classid);
+    return false;
+  }
+
+  switch (format) {
+    case PDB_FILE:
+      if (FAILED(data_source->loadDataFromPdb(file.c_str()))) {
+        fprintf(stderr, "loadDataFromPdb failed for %ws\n", file.c_str());
+        return false;
+      }
+      break;
+    case EXE_FILE:
+      if (FAILED(data_source->loadDataForExe(file.c_str(), NULL, NULL))) {
+        fprintf(stderr, "loadDataForExe failed for %ws\n", file.c_str());
+        return false;
+      }
+      code_file_ = file;
+      break;
+    case ANY_FILE:
+      if (FAILED(data_source->loadDataFromPdb(file.c_str()))) {
+        if (FAILED(data_source->loadDataForExe(file.c_str(), NULL, NULL))) {
+          fprintf(stderr, "loadDataForPdb and loadDataFromExe failed for %ws\n",
+                  file.c_str());
+          return false;
+        }
+        code_file_ = file;
+      }
+      break;
+    default:
+      fprintf(stderr, "Unknown file format\n");
+      return false;
+  }
+
+  if (FAILED(data_source->openSession(&session_))) {
+    fprintf(stderr, "openSession failed\n");
+  }
+
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintLines(IDiaEnumLineNumbers* lines) {
+  // The line number format is:
+  // <rva> <line number> <source file id>
+  CComPtr<IDiaLineNumber> line;
+  ULONG count;
+
+  while (SUCCEEDED(lines->Next(1, &line, &count)) && count == 1) {
+    DWORD rva;
+    if (FAILED(line->get_relativeVirtualAddress(&rva))) {
+      fprintf(stderr, "failed to get line rva\n");
+      return false;
+    }
+
+    DWORD length;
+    if (FAILED(line->get_length(&length))) {
+      fprintf(stderr, "failed to get line code length\n");
+      return false;
+    }
+
+    DWORD dia_source_id;
+    if (FAILED(line->get_sourceFileId(&dia_source_id))) {
+      fprintf(stderr, "failed to get line source file id\n");
+      return false;
+    }
+    // duplicate file names are coalesced to share one ID
+    DWORD source_id = GetRealFileID(dia_source_id);
+
+    DWORD line_num;
+    if (FAILED(line->get_lineNumber(&line_num))) {
+      fprintf(stderr, "failed to get line number\n");
+      return false;
+    }
+
+    AddressRangeVector ranges;
+    MapAddressRange(image_map_, AddressRange(rva, length), &ranges);
+    for (size_t i = 0; i < ranges.size(); ++i) {
+      fprintf(output_, "%lx %lx %lu %lu\n", ranges[i].rva, ranges[i].length,
+              line_num, source_id);
+    }
+    line.Release();
+  }
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintFunction(IDiaSymbol* function,
+                                        IDiaSymbol* block,
+                                        bool has_multiple_symbols) {
+  // The function format is:
+  // FUNC <address> <length> <param_stack_size> <function>
+  DWORD rva;
+  if (FAILED(block->get_relativeVirtualAddress(&rva))) {
+    fprintf(stderr, "couldn't get rva\n");
+    return false;
+  }
+
+  ULONGLONG length;
+  if (FAILED(block->get_length(&length))) {
+    fprintf(stderr, "failed to get function length\n");
+    return false;
+  }
+
+  if (length == 0) {
+    // Silently ignore zero-length functions, which can infrequently pop up.
+    return true;
+  }
+
+  CComBSTR name;
+  int stack_param_size;
+  if (!GetSymbolFunctionName(function, &name, &stack_param_size)) {
+    return false;
+  }
+
+  // If the decorated name didn't give the parameter size, try to
+  // calculate it.
+  if (stack_param_size < 0) {
+    stack_param_size = GetFunctionStackParamSize(function);
+  }
+
+  AddressRangeVector ranges;
+  MapAddressRange(image_map_, AddressRange(rva, static_cast<DWORD>(length)),
+                  &ranges);
+  for (size_t i = 0; i < ranges.size(); ++i) {
+    const char* optional_multiple_field = has_multiple_symbols ? "m " : "";
+    fprintf(output_, "FUNC %s%lx %lx %x %ws\n", optional_multiple_field,
+            ranges[i].rva, ranges[i].length, stack_param_size, name.m_str);
+  }
+
+  CComPtr<IDiaEnumLineNumbers> lines;
+  if (FAILED(session_->findLinesByRVA(rva, DWORD(length), &lines))) {
+    return false;
+  }
+
+  if (!PrintLines(lines)) {
+    return false;
+  }
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintSourceFiles() {
+  CComPtr<IDiaSymbol> global;
+  if (FAILED(session_->get_globalScope(&global))) {
+    fprintf(stderr, "get_globalScope failed\n");
+    return false;
+  }
+
+  CComPtr<IDiaEnumSymbols> compilands;
+  if (FAILED(global->findChildren(SymTagCompiland, NULL,
+                                  nsNone, &compilands))) {
+    fprintf(stderr, "findChildren failed\n");
+    return false;
+  }
+
+  CComPtr<IDiaSymbol> compiland;
+  ULONG count;
+  while (SUCCEEDED(compilands->Next(1, &compiland, &count)) && count == 1) {
+    CComPtr<IDiaEnumSourceFiles> source_files;
+    if (FAILED(session_->findFile(compiland, NULL, nsNone, &source_files))) {
+      return false;
+    }
+    CComPtr<IDiaSourceFile> file;
+    while (SUCCEEDED(source_files->Next(1, &file, &count)) && count == 1) {
+      DWORD file_id;
+      if (FAILED(file->get_uniqueId(&file_id))) {
+        return false;
+      }
+
+      CComBSTR file_name;
+      if (FAILED(file->get_fileName(&file_name))) {
+        return false;
+      }
+
+      wstring file_name_string(file_name);
+      if (!FileIDIsCached(file_name_string)) {
+        // this is a new file name, cache it and output a FILE line.
+        CacheFileID(file_name_string, file_id);
+        fwprintf(output_, L"FILE %d %ws\n", file_id, file_name_string.c_str());
+      } else {
+        // this file name has already been seen, just save this
+        // ID for later lookup.
+        StoreDuplicateFileID(file_name_string, file_id);
+      }
+      file.Release();
+    }
+    compiland.Release();
+  }
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintFunctions() {
+  ULONG count = 0;
+  DWORD rva = 0;
+  CComPtr<IDiaSymbol> global;
+  HRESULT hr;
+
+  if (FAILED(session_->get_globalScope(&global))) {
+    fprintf(stderr, "get_globalScope failed\n");
+    return false;
+  }
+
+  CComPtr<IDiaEnumSymbols> symbols = NULL;
+
+  // Find all function symbols first.
+  SymbolMap rva_symbol;
+  hr = global->findChildren(SymTagFunction, NULL, nsNone, &symbols);
+
+  if (SUCCEEDED(hr)) {
+    CComPtr<IDiaSymbol> symbol = NULL;
+
+    while (SUCCEEDED(symbols->Next(1, &symbol, &count)) && count == 1) {
+      if (SUCCEEDED(symbol->get_relativeVirtualAddress(&rva))) {
+        // Potentially record this as the canonical symbol for this rva.
+        MaybeRecordSymbol(rva, symbol, false, &rva_symbol);
+      } else {
+        fprintf(stderr, "get_relativeVirtualAddress failed on the symbol\n");
+        return false;
+      }
+
+      symbol.Release();
+    }
+
+    symbols.Release();
+  }
+
+  // Find all public symbols and record public symbols that are not also private
+  // symbols.
+  hr = global->findChildren(SymTagPublicSymbol, NULL, nsNone, &symbols);
+
+  if (SUCCEEDED(hr)) {
+    CComPtr<IDiaSymbol> symbol = NULL;
+
+    while (SUCCEEDED(symbols->Next(1, &symbol, &count)) && count == 1) {
+      if (SUCCEEDED(symbol->get_relativeVirtualAddress(&rva))) {
+        // Potentially record this as the canonical symbol for this rva.
+        MaybeRecordSymbol(rva, symbol, true, &rva_symbol);
+      } else {
+        fprintf(stderr, "get_relativeVirtualAddress failed on the symbol\n");
+        return false;
+      }
+
+      symbol.Release();
+    }
+
+    symbols.Release();
+  }
+
+  // For each rva, dump the selected symbol at the address.
+  SymbolMap::iterator it;
+  for (it = rva_symbol.begin(); it != rva_symbol.end(); ++it) {
+    CComPtr<IDiaSymbol> symbol = it->second.symbol;
+    // Only print public symbols if there is no function symbol for the address.
+    if (!it->second.is_public) {
+      if (!PrintFunction(symbol, symbol, it->second.is_multiple))
+        return false;
+    } else {
+      if (!PrintCodePublicSymbol(symbol, it->second.is_multiple))
+        return false;
+    }
+  }
+
+  // When building with PGO, the compiler can split functions into
+  // "hot" and "cold" blocks, and move the "cold" blocks out to separate
+  // pages, so the function can be noncontiguous. To find these blocks,
+  // we have to iterate over all the compilands, and then find blocks
+  // that are children of them. We can then find the lexical parents
+  // of those blocks and print out an extra FUNC line for blocks
+  // that are not contained in their parent functions.
+  CComPtr<IDiaEnumSymbols> compilands;
+  if (FAILED(global->findChildren(SymTagCompiland, NULL,
+                                  nsNone, &compilands))) {
+    fprintf(stderr, "findChildren failed on the global\n");
+    return false;
+  }
+
+  CComPtr<IDiaSymbol> compiland;
+  while (SUCCEEDED(compilands->Next(1, &compiland, &count)) && count == 1) {
+    CComPtr<IDiaEnumSymbols> blocks;
+    if (FAILED(compiland->findChildren(SymTagBlock, NULL,
+                                       nsNone, &blocks))) {
+      fprintf(stderr, "findChildren failed on a compiland\n");
+      return false;
+    }
+
+    CComPtr<IDiaSymbol> block;
+    while (SUCCEEDED(blocks->Next(1, &block, &count)) && count == 1) {
+      // find this block's lexical parent function
+      CComPtr<IDiaSymbol> parent;
+      DWORD tag;
+      if (SUCCEEDED(block->get_lexicalParent(&parent)) &&
+          SUCCEEDED(parent->get_symTag(&tag)) &&
+          tag == SymTagFunction) {
+        // now get the block's offset and the function's offset and size,
+        // and determine if the block is outside of the function
+        DWORD func_rva, block_rva;
+        ULONGLONG func_length;
+        if (SUCCEEDED(block->get_relativeVirtualAddress(&block_rva)) &&
+            SUCCEEDED(parent->get_relativeVirtualAddress(&func_rva)) &&
+            SUCCEEDED(parent->get_length(&func_length))) {
+          if (block_rva < func_rva || block_rva > (func_rva + func_length)) {
+            if (!PrintFunction(parent, block, false)) {
+              return false;
+            }
+          }
+        }
+      }
+      parent.Release();
+      block.Release();
+    }
+    blocks.Release();
+    compiland.Release();
+  }
+
+  global.Release();
+  return true;
+}
+
+#undef max
+
+bool PDBSourceLineWriter::PrintFrameDataUsingPDB() {
+  // It would be nice if it were possible to output frame data alongside the
+  // associated function, as is done with line numbers, but the DIA API
+  // doesn't make it possible to get the frame data in that way.
+
+  CComPtr<IDiaEnumFrameData> frame_data_enum;
+  if (!FindTable(session_, &frame_data_enum))
+    return false;
+
+  DWORD last_type = std::numeric_limits<DWORD>::max();
+  DWORD last_rva = std::numeric_limits<DWORD>::max();
+  DWORD last_code_size = 0;
+  DWORD last_prolog_size = std::numeric_limits<DWORD>::max();
+
+  CComPtr<IDiaFrameData> frame_data;
+  ULONG count = 0;
+  while (SUCCEEDED(frame_data_enum->Next(1, &frame_data, &count)) &&
+         count == 1) {
+    DWORD type;
+    if (FAILED(frame_data->get_type(&type)))
+      return false;
+
+    DWORD rva;
+    if (FAILED(frame_data->get_relativeVirtualAddress(&rva)))
+      return false;
+
+    DWORD code_size;
+    if (FAILED(frame_data->get_lengthBlock(&code_size)))
+      return false;
+
+    DWORD prolog_size;
+    if (FAILED(frame_data->get_lengthProlog(&prolog_size)))
+      return false;
+
+    // parameter_size is the size of parameters passed on the stack.  If any
+    // parameters are not passed on the stack (such as in registers), their
+    // sizes will not be included in parameter_size.
+    DWORD parameter_size;
+    if (FAILED(frame_data->get_lengthParams(&parameter_size)))
+      return false;
+
+    DWORD saved_register_size;
+    if (FAILED(frame_data->get_lengthSavedRegisters(&saved_register_size)))
+      return false;
+
+    DWORD local_size;
+    if (FAILED(frame_data->get_lengthLocals(&local_size)))
+      return false;
+
+    // get_maxStack can return S_FALSE, just use 0 in that case.
+    DWORD max_stack_size = 0;
+    if (FAILED(frame_data->get_maxStack(&max_stack_size)))
+      return false;
+
+    // get_programString can return S_FALSE, indicating that there is no
+    // program string.  In that case, check whether %ebp is used.
+    HRESULT program_string_result;
+    CComBSTR program_string;
+    if (FAILED(program_string_result = frame_data->get_program(
+        &program_string))) {
+      return false;
+    }
+
+    // get_allocatesBasePointer can return S_FALSE, treat that as though
+    // %ebp is not used.
+    BOOL allocates_base_pointer = FALSE;
+    if (program_string_result != S_OK) {
+      if (FAILED(frame_data->get_allocatesBasePointer(
+          &allocates_base_pointer))) {
+        return false;
+      }
+    }
+
+    // Only print out a line if type, rva, code_size, or prolog_size have
+    // changed from the last line.  It is surprisingly common (especially in
+    // system library PDBs) for DIA to return a series of identical
+    // IDiaFrameData objects.  For kernel32.pdb from Windows XP SP2 on x86,
+    // this check reduces the size of the dumped symbol file by a third.
+    if (type != last_type || rva != last_rva || code_size != last_code_size ||
+        prolog_size != last_prolog_size) {
+      // The prolog and the code portions of the frame have to be treated
+      // independently as they may have independently changed in size, or may
+      // even have been split.
+      // NOTE: If epilog size is ever non-zero, we have to do something
+      //     similar with it.
+
+      // Figure out where the prolog bytes have landed.
+      AddressRangeVector prolog_ranges;
+      if (prolog_size > 0) {
+        MapAddressRange(image_map_, AddressRange(rva, prolog_size),
+                        &prolog_ranges);
+      }
+
+      // And figure out where the code bytes have landed.
+      AddressRangeVector code_ranges;
+      MapAddressRange(image_map_,
+                      AddressRange(rva + prolog_size,
+                                   code_size - prolog_size),
+                      &code_ranges);
+
+      struct FrameInfo {
+        DWORD rva;
+        DWORD code_size;
+        DWORD prolog_size;
+      };
+      std::vector<FrameInfo> frame_infos;
+
+      // Special case: The prolog and the code bytes remain contiguous. This is
+      // only done for compactness of the symbol file, and we could actually
+      // be outputting independent frame info for the prolog and code portions.
+      if (prolog_ranges.size() == 1 && code_ranges.size() == 1 &&
+          prolog_ranges[0].end() == code_ranges[0].rva) {
+        FrameInfo fi = { prolog_ranges[0].rva,
+                         prolog_ranges[0].length + code_ranges[0].length,
+                         prolog_ranges[0].length };
+        frame_infos.push_back(fi);
+      } else {
+        // Otherwise we output the prolog and code frame info independently.
+        for (size_t i = 0; i < prolog_ranges.size(); ++i) {
+          FrameInfo fi = { prolog_ranges[i].rva,
+                           prolog_ranges[i].length,
+                           prolog_ranges[i].length };
+          frame_infos.push_back(fi);
+        }
+        for (size_t i = 0; i < code_ranges.size(); ++i) {
+          FrameInfo fi = { code_ranges[i].rva, code_ranges[i].length, 0 };
+          frame_infos.push_back(fi);
+        }
+      }
+
+      for (size_t i = 0; i < frame_infos.size(); ++i) {
+        const FrameInfo& fi(frame_infos[i]);
+        fprintf(output_, "STACK WIN %lx %lx %lx %lx %x %lx %lx %lx %lx %d ",
+                type, fi.rva, fi.code_size, fi.prolog_size,
+                0 /* epilog_size */, parameter_size, saved_register_size,
+                local_size, max_stack_size, program_string_result == S_OK);
+        if (program_string_result == S_OK) {
+          fprintf(output_, "%ws\n", program_string.m_str);
+        } else {
+          fprintf(output_, "%d\n", allocates_base_pointer);
+        }
+      }
+
+      last_type = type;
+      last_rva = rva;
+      last_code_size = code_size;
+      last_prolog_size = prolog_size;
+    }
+
+    frame_data.Release();
+  }
+
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintFrameDataUsingEXE() {
+  if (code_file_.empty() && !FindPEFile()) {
+    fprintf(stderr, "Couldn't locate EXE or DLL file.\n");
+    return false;
+  }
+
+  return PrintPEFrameData(code_file_, output_);
+}
+
+bool PDBSourceLineWriter::PrintFrameData() {
+  PDBModuleInfo info;
+  if (GetModuleInfo(&info) && info.cpu == L"x86_64") {
+    return PrintFrameDataUsingEXE();
+  } else {
+    return PrintFrameDataUsingPDB();
+  }
+  return false;
+}
+
+bool PDBSourceLineWriter::PrintCodePublicSymbol(IDiaSymbol* symbol,
+                                                bool has_multiple_symbols) {
+  BOOL is_code;
+  if (FAILED(symbol->get_code(&is_code))) {
+    return false;
+  }
+  if (!is_code) {
+    return true;
+  }
+
+  DWORD rva;
+  if (FAILED(symbol->get_relativeVirtualAddress(&rva))) {
+    return false;
+  }
+
+  CComBSTR name;
+  int stack_param_size;
+  if (!GetSymbolFunctionName(symbol, &name, &stack_param_size)) {
+    return false;
+  }
+
+  AddressRangeVector ranges;
+  MapAddressRange(image_map_, AddressRange(rva, 1), &ranges);
+  for (size_t i = 0; i < ranges.size(); ++i) {
+    const char* optional_multiple_field = has_multiple_symbols ? "m " : "";
+    fprintf(output_, "PUBLIC %s%lx %x %ws\n", optional_multiple_field,
+            ranges[i].rva, stack_param_size > 0 ? stack_param_size : 0,
+            name.m_str);
+  }
+
+  // Now walk the function in the original untranslated space, asking DIA
+  // what function is at that location, stepping through OMAP blocks. If
+  // we're still in the same function, emit another entry, because the
+  // symbol could have been split into multiple pieces. If we've gotten to
+  // another symbol in the original address space, then we're done for
+  // this symbol. See https://crbug.com/678874.
+  for (;;) {
+    // This steps to the next block in the original image. Simply doing
+    // rva++ would also be correct, but would emit tons of unnecessary
+    // entries.
+    rva = image_map_.subsequent_rva_block[rva];
+    if (rva == 0)
+      break;
+
+    CComPtr<IDiaSymbol> next_sym = NULL;
+    LONG displacement;
+    if (FAILED(session_->findSymbolByRVAEx(rva, SymTagPublicSymbol, &next_sym,
+                                           &displacement))) {
+      break;
+    }
+
+    if (!SymbolsMatch(symbol, next_sym))
+      break;
+
+    AddressRangeVector next_ranges;
+    MapAddressRange(image_map_, AddressRange(rva, 1), &next_ranges);
+    for (size_t i = 0; i < next_ranges.size(); ++i) {
+      fprintf(output_, "PUBLIC %lx %x %ws\n", next_ranges[i].rva,
+              stack_param_size > 0 ? stack_param_size : 0, name.m_str);
+    }
+  }
+
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintPDBInfo() {
+  PDBModuleInfo info;
+  if (!GetModuleInfo(&info)) {
+    return false;
+  }
+
+  // Hard-code "windows" for the OS because that's the only thing that makes
+  // sense for PDB files.  (This might not be strictly correct for Windows CE
+  // support, but we don't care about that at the moment.)
+  fprintf(output_, "MODULE windows %ws %ws %ws\n",
+          info.cpu.c_str(), info.debug_identifier.c_str(),
+          info.debug_file.c_str());
+
+  return true;
+}
+
+bool PDBSourceLineWriter::PrintPEInfo() {
+  PEModuleInfo info;
+  if (!GetPEInfo(&info)) {
+    return false;
+  }
+
+  fprintf(output_, "INFO CODE_ID %ws %ws\n",
+          info.code_identifier.c_str(),
+          info.code_file.c_str());
+  return true;
+}
+
+// wcstol_positive_strict is sort of like wcstol, but much stricter.  string
+// should be a buffer pointing to a null-terminated string containing only
+// decimal digits.  If the entire string can be converted to an integer
+// without overflowing, and there are no non-digit characters before the
+// result is set to the value and this function returns true.  Otherwise,
+// this function returns false.  This is an alternative to the strtol, atoi,
+// and scanf families, which are not as strict about input and in some cases
+// don't provide a good way for the caller to determine if a conversion was
+// successful.
+static bool wcstol_positive_strict(wchar_t* string, int* result) {
+  int value = 0;
+  for (wchar_t* c = string; *c != '\0'; ++c) {
+    int last_value = value;
+    value *= 10;
+    // Detect overflow.
+    if (value / 10 != last_value || value < 0) {
+      return false;
+    }
+    if (*c < '0' || *c > '9') {
+      return false;
+    }
+    unsigned int c_value = *c - '0';
+    last_value = value;
+    value += c_value;
+    // Detect overflow.
+    if (value < last_value) {
+      return false;
+    }
+    // Forbid leading zeroes unless the string is just "0".
+    if (value == 0 && *(c+1) != '\0') {
+      return false;
+    }
+  }
+  *result = value;
+  return true;
+}
+
+bool PDBSourceLineWriter::FindPEFile() {
+  CComPtr<IDiaSymbol> global;
+  if (FAILED(session_->get_globalScope(&global))) {
+    fprintf(stderr, "get_globalScope failed\n");
+    return false;
+  }
+
+  CComBSTR symbols_file;
+  if (SUCCEEDED(global->get_symbolsFileName(&symbols_file))) {
+    wstring file(symbols_file);
+
+    // Look for an EXE or DLL file.
+    const wchar_t* extensions[] = { L"exe", L"dll" };
+    for (size_t i = 0; i < sizeof(extensions) / sizeof(extensions[0]); i++) {
+      size_t dot_pos = file.find_last_of(L".");
+      if (dot_pos != wstring::npos) {
+        file.replace(dot_pos + 1, wstring::npos, extensions[i]);
+        // Check if this file exists.
+        if (GetFileAttributesW(file.c_str()) != INVALID_FILE_ATTRIBUTES) {
+          code_file_ = file;
+          return true;
+        }
+      }
+    }
+  }
+
+  return false;
+}
+
+// static
+bool PDBSourceLineWriter::GetSymbolFunctionName(IDiaSymbol* function,
+                                                BSTR* name,
+                                                int* stack_param_size) {
+  *stack_param_size = -1;
+  const DWORD undecorate_options = UNDNAME_NO_MS_KEYWORDS |
+                                   UNDNAME_NO_FUNCTION_RETURNS |
+                                   UNDNAME_NO_ALLOCATION_MODEL |
+                                   UNDNAME_NO_ALLOCATION_LANGUAGE |
+                                   UNDNAME_NO_THISTYPE |
+                                   UNDNAME_NO_ACCESS_SPECIFIERS |
+                                   UNDNAME_NO_THROW_SIGNATURES |
+                                   UNDNAME_NO_MEMBER_TYPE |
+                                   UNDNAME_NO_RETURN_UDT_MODEL |
+                                   UNDNAME_NO_ECSU;
+
+  // Use get_undecoratedNameEx to get readable C++ names with arguments.
+  if (function->get_undecoratedNameEx(undecorate_options, name) != S_OK) {
+    if (function->get_name(name) != S_OK) {
+      fprintf(stderr, "failed to get function name\n");
+      return false;
+    }
+
+    // It's possible for get_name to return an empty string, so
+    // special-case that.
+    if (wcscmp(*name, L"") == 0) {
+      SysFreeString(*name);
+      // dwarf_cu_to_module.cc uses "<name omitted>", so match that.
+      *name = SysAllocString(L"<name omitted>");
+      return true;
+    }
+
+    // If a name comes from get_name because no undecorated form existed,
+    // it's already formatted properly to be used as output.  Don't do any
+    // additional processing.
+    //
+    // MSVC7's DIA seems to not undecorate names in as many cases as MSVC8's.
+    // This will result in calling get_name for some C++ symbols, so
+    // all of the parameter and return type information may not be included in
+    // the name string.
+  } else {
+    // C++ uses a bogus "void" argument for functions and methods that don't
+    // take any parameters.  Take it out of the undecorated name because it's
+    // ugly and unnecessary.
+    const wchar_t* replace_string = L"(void)";
+    const size_t replace_length = wcslen(replace_string);
+    const wchar_t* replacement_string = L"()";
+    size_t length = wcslen(*name);
+    if (length >= replace_length) {
+      wchar_t* name_end = *name + length - replace_length;
+      if (wcscmp(name_end, replace_string) == 0) {
+        WindowsStringUtils::safe_wcscpy(name_end, replace_length,
+                                        replacement_string);
+        length = wcslen(*name);
+      }
+    }
+
+    // Undecorate names used for stdcall and fastcall.  These names prefix
+    // the identifier with '_' (stdcall) or '@' (fastcall) and suffix it
+    // with '@' followed by the number of bytes of parameters, in decimal.
+    // If such a name is found, take note of the size and undecorate it.
+    // Only do this for names that aren't C++, which is determined based on
+    // whether the undecorated name contains any ':' or '(' characters.
+    if (!wcschr(*name, ':') && !wcschr(*name, '(') &&
+        (*name[0] == '_' || *name[0] == '@')) {
+      wchar_t* last_at = wcsrchr(*name + 1, '@');
+      if (last_at && wcstol_positive_strict(last_at + 1, stack_param_size)) {
+        // If this function adheres to the fastcall convention, it accepts up
+        // to the first 8 bytes of parameters in registers (%ecx and %edx).
+        // We're only interested in the stack space used for parameters, so
+        // so subtract 8 and don't let the size go below 0.
+        if (*name[0] == '@') {
+          if (*stack_param_size > 8) {
+            *stack_param_size -= 8;
+          } else {
+            *stack_param_size = 0;
+          }
+        }
+
+        // Undecorate the name by moving it one character to the left in its
+        // buffer, and terminating it where the last '@' had been.
+        WindowsStringUtils::safe_wcsncpy(*name, length,
+                                         *name + 1, last_at - *name - 1);
+     } else if (*name[0] == '_') {
+        // This symbol's name is encoded according to the cdecl rules.  The
+        // name doesn't end in a '@' character followed by a decimal positive
+        // integer, so it's not a stdcall name.  Strip off the leading
+        // underscore.
+        WindowsStringUtils::safe_wcsncpy(*name, length, *name + 1, length);
+      }
+    }
+  }
+
+  return true;
+}
+
+// static
+int PDBSourceLineWriter::GetFunctionStackParamSize(IDiaSymbol* function) {
+  // This implementation is highly x86-specific.
+
+  // Gather the symbols corresponding to data.
+  CComPtr<IDiaEnumSymbols> data_children;
+  if (FAILED(function->findChildren(SymTagData, NULL, nsNone,
+                                    &data_children))) {
+    return 0;
+  }
+
+  // lowest_base is the lowest %ebp-relative byte offset used for a parameter.
+  // highest_end is one greater than the highest offset (i.e. base + length).
+  // Stack parameters are assumed to be contiguous, because in reality, they
+  // are.
+  int lowest_base = INT_MAX;
+  int highest_end = INT_MIN;
+
+  CComPtr<IDiaSymbol> child;
+  DWORD count;
+  while (SUCCEEDED(data_children->Next(1, &child, &count)) && count == 1) {
+    // If any operation fails at this point, just proceed to the next child.
+    // Use the next_child label instead of continue because child needs to
+    // be released before it's reused.  Declare constructable/destructable
+    // types early to avoid gotos that cross initializations.
+    CComPtr<IDiaSymbol> child_type;
+
+    // DataIsObjectPtr is only used for |this|.  Because |this| can be passed
+    // as a stack parameter, look for it in addition to traditional
+    // parameters.
+    DWORD child_kind;
+    if (FAILED(child->get_dataKind(&child_kind)) ||
+        (child_kind != DataIsParam && child_kind != DataIsObjectPtr)) {
+      goto next_child;
+    }
+
+    // Only concentrate on register-relative parameters.  Parameters may also
+    // be enregistered (passed directly in a register), but those don't
+    // consume any stack space, so they're not of interest.
+    DWORD child_location_type;
+    if (FAILED(child->get_locationType(&child_location_type)) ||
+        child_location_type != LocIsRegRel) {
+      goto next_child;
+    }
+
+    // Of register-relative parameters, the only ones that make any sense are
+    // %ebp- or %esp-relative.  Note that MSVC's debugging information always
+    // gives parameters as %ebp-relative even when a function doesn't use a
+    // traditional frame pointer and stack parameters are accessed relative to
+    // %esp, so just look for %ebp-relative parameters.  If you wanted to
+    // access parameters, you'd probably want to treat these %ebp-relative
+    // offsets as if they were relative to %esp before a function's prolog
+    // executed.
+    DWORD child_register;
+    if (FAILED(child->get_registerId(&child_register)) ||
+        child_register != CV_REG_EBP) {
+      goto next_child;
+    }
+
+    LONG child_register_offset;
+    if (FAILED(child->get_offset(&child_register_offset))) {
+      goto next_child;
+    }
+
+    // IDiaSymbol::get_type can succeed but still pass back a NULL value.
+    if (FAILED(child->get_type(&child_type)) || !child_type) {
+      goto next_child;
+    }
+
+    ULONGLONG child_length;
+    if (FAILED(child_type->get_length(&child_length))) {
+      goto next_child;
+    }
+
+    // Extra scope to avoid goto jumping over variable initialization
+    {
+      int child_end = child_register_offset + static_cast<ULONG>(child_length);
+      if (child_register_offset < lowest_base) {
+        lowest_base = child_register_offset;
+      }
+      if (child_end > highest_end) {
+        highest_end = child_end;
+      }
+    }
+
+next_child:
+    child.Release();
+  }
+
+  int param_size = 0;
+  // Make sure lowest_base isn't less than 4, because [%esp+4] is the lowest
+  // possible address to find a stack parameter before executing a function's
+  // prolog (see above).  Some optimizations cause parameter offsets to be
+  // lower than 4, but we're not concerned with those because we're only
+  // looking for parameters contained in addresses higher than where the
+  // return address is stored.
+  if (lowest_base < 4) {
+    lowest_base = 4;
+  }
+  if (highest_end > lowest_base) {
+    // All stack parameters are pushed as at least 4-byte quantities.  If the
+    // last type was narrower than 4 bytes, promote it.  This assumes that all
+    // parameters' offsets are 4-byte-aligned, which is always the case.  Only
+    // worry about the last type, because we're not summing the type sizes,
+    // just looking at the lowest and highest offsets.
+    int remainder = highest_end % 4;
+    if (remainder) {
+      highest_end += 4 - remainder;
+    }
+
+    param_size = highest_end - lowest_base;
+  }
+
+  return param_size;
+}
+
+bool PDBSourceLineWriter::WriteSymbols(FILE* symbol_file) {
+  output_ = symbol_file;
+
+  // Load the OMAP information, and disable auto-translation of addresses in
+  // preference of doing it ourselves.
+  OmapData omap_data;
+  if (!GetOmapDataAndDisableTranslation(session_, &omap_data))
+    return false;
+  BuildImageMap(omap_data, &image_map_);
+
+  bool ret = PrintPDBInfo();
+  // This is not a critical piece of the symbol file.
+  PrintPEInfo();
+  ret = ret &&
+      PrintSourceFiles() &&
+      PrintFunctions() &&
+      PrintFrameData();
+
+  output_ = NULL;
+  return ret;
+}
+
+void PDBSourceLineWriter::Close() {
+  if (session_ != nullptr) {
+    session_.Release();
+  }
+}
+
+bool PDBSourceLineWriter::GetModuleInfo(PDBModuleInfo* info) {
+  if (!info) {
+    return false;
+  }
+
+  info->debug_file.clear();
+  info->debug_identifier.clear();
+  info->cpu.clear();
+
+  CComPtr<IDiaSymbol> global;
+  if (FAILED(session_->get_globalScope(&global))) {
+    return false;
+  }
+
+  DWORD machine_type;
+  // get_machineType can return S_FALSE.
+  if (global->get_machineType(&machine_type) == S_OK) {
+    // The documentation claims that get_machineType returns a value from
+    // the CV_CPU_TYPE_e enumeration, but that's not the case.
+    // Instead, it returns one of the IMAGE_FILE_MACHINE values as
+    // defined here:
+    // http://msdn.microsoft.com/en-us/library/ms680313%28VS.85%29.aspx
+    info->cpu = FileHeaderMachineToCpuString(static_cast<WORD>(machine_type));
+  } else {
+    // Unexpected, but handle gracefully.
+    info->cpu = L"unknown";
+  }
+
+  // DWORD* and int* are not compatible.  This is clean and avoids a cast.
+  DWORD age;
+  if (FAILED(global->get_age(&age))) {
+    return false;
+  }
+
+  bool uses_guid;
+  if (!UsesGUID(&uses_guid)) {
+    return false;
+  }
+
+  if (uses_guid) {
+    GUID guid;
+    if (FAILED(global->get_guid(&guid))) {
+      return false;
+    }
+
+    info->debug_identifier = GenerateDebugIdentifier(age, guid);
+  } else {
+    DWORD signature;
+    if (FAILED(global->get_signature(&signature))) {
+      return false;
+    }
+
+    info->debug_identifier = GenerateDebugIdentifier(age, signature);
+  }
+
+  CComBSTR debug_file_string;
+  if (FAILED(global->get_symbolsFileName(&debug_file_string))) {
+    return false;
+  }
+  info->debug_file =
+      WindowsStringUtils::GetBaseName(wstring(debug_file_string));
+
+  return true;
+}
+
+bool PDBSourceLineWriter::GetPEInfo(PEModuleInfo* info) {
+  if (!info) {
+    return false;
+  }
+
+  if (code_file_.empty() && !FindPEFile()) {
+    fprintf(stderr, "Couldn't locate EXE or DLL file.\n");
+    return false;
+  }
+
+  return ReadPEInfo(code_file_, info);
+}
+
+bool PDBSourceLineWriter::UsesGUID(bool* uses_guid) {
+  if (!uses_guid)
+    return false;
+
+  CComPtr<IDiaSymbol> global;
+  if (FAILED(session_->get_globalScope(&global)))
+    return false;
+
+  GUID guid;
+  if (FAILED(global->get_guid(&guid)))
+    return false;
+
+  DWORD signature;
+  if (FAILED(global->get_signature(&signature)))
+    return false;
+
+  // There are two possibilities for guid: either it's a real 128-bit GUID
+  // as identified in a code module by a new-style CodeView record, or it's
+  // a 32-bit signature (timestamp) as identified by an old-style record.
+  // See MDCVInfoPDB70 and MDCVInfoPDB20 in minidump_format.h.
+  //
+  // Because DIA doesn't provide a way to directly determine whether a module
+  // uses a GUID or a 32-bit signature, this code checks whether the first 32
+  // bits of guid are the same as the signature, and if the rest of guid is
+  // zero.  If so, then with a pretty high degree of certainty, there's an
+  // old-style CodeView record in use.  This method will only falsely find an
+  // an old-style CodeView record if a real 128-bit GUID has its first 32
+  // bits set the same as the module's signature (timestamp) and the rest of
+  // the GUID is set to 0.  This is highly unlikely.
+
+  GUID signature_guid = {signature};  // 0-initializes other members
+  *uses_guid = !IsEqualGUID(guid, signature_guid);
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/pdb_source_line_writer.h b/src/common/windows/pdb_source_line_writer.h
new file mode 100644
index 0000000..00f6e59
--- /dev/null
+++ b/src/common/windows/pdb_source_line_writer.h
@@ -0,0 +1,226 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// PDBSourceLineWriter uses a pdb file produced by Visual C++ to output
+// a line/address map for use with BasicSourceLineResolver.
+
+#ifndef COMMON_WINDOWS_PDB_SOURCE_LINE_WRITER_H_
+#define COMMON_WINDOWS_PDB_SOURCE_LINE_WRITER_H_
+
+#include <atlcomcli.h>
+
+#include <string>
+#include <unordered_map>
+
+#include "common/windows/module_info.h"
+#include "common/windows/omap.h"
+
+struct IDiaEnumLineNumbers;
+struct IDiaSession;
+struct IDiaSymbol;
+
+namespace google_breakpad {
+
+using std::wstring;
+using std::unordered_map;
+
+class PDBSourceLineWriter {
+ public:
+  enum FileFormat {
+    PDB_FILE,  // a .pdb file containing debug symbols
+    EXE_FILE,  // a .exe or .dll file
+    ANY_FILE   // try PDB_FILE and then EXE_FILE
+  };
+
+  explicit PDBSourceLineWriter();
+  ~PDBSourceLineWriter();
+
+  // Opens the given file.  For executable files, the corresponding pdb
+  // file must be available; Open will be if it is not.
+  // If there is already a pdb file open, it is automatically closed.
+  // Returns true on success.
+  bool Open(const wstring& file, FileFormat format);
+
+  // Closes the current pdb file and its associated resources.
+  void Close();
+
+  // Sets the code file full path.  This is optional for 32-bit modules.  It is
+  // also optional for 64-bit modules when there is an executable file stored
+  // in the same directory as the PDB file.  It is only required for 64-bit
+  // modules when the executable file is not in the same location as the PDB
+  // file and it must be called after Open() and before WriteMap().
+  // If Open() was called for an executable file, then it is an error to call
+  // SetCodeFile() with a different file path and it will return false.
+  bool SetCodeFile(const wstring& exe_file);
+
+  // Writes a Breakpad symbol file from the current pdb file to |symbol_file|.
+  // Returns true on success.
+  bool WriteSymbols(FILE *symbol_file);
+
+  // Retrieves information about the module's debugging file.  Returns
+  // true on success and false on failure.
+  bool GetModuleInfo(PDBModuleInfo *info);
+
+  // Retrieves information about the module's PE file.  Returns
+  // true on success and false on failure.
+  bool GetPEInfo(PEModuleInfo *info);
+
+  // Sets uses_guid to true if the opened file uses a new-style CodeView
+  // record with a 128-bit GUID, or false if the opened file uses an old-style
+  // CodeView record.  When no GUID is available, a 32-bit signature should be
+  // used to identify the module instead.  If the information cannot be
+  // determined, this method returns false.
+  bool UsesGUID(bool *uses_guid);
+
+ private:
+  // Outputs the line/address pairs for each line in the enumerator.
+  // Returns true on success.
+  bool PrintLines(IDiaEnumLineNumbers *lines);
+
+  // Outputs a function address and name, followed by its source line list.
+  // block can be the same object as function, or it can be a reference to a
+  // code block that is lexically part of this function, but resides at a
+  // separate address. If has_multiple_symbols is true, this function's
+  // instructions correspond to multiple symbols. Returns true on success.
+  bool PrintFunction(IDiaSymbol *function, IDiaSymbol *block,
+                     bool has_multiple_symbols);
+
+  // Outputs all functions as described above.  Returns true on success.
+  bool PrintFunctions();
+
+  // Outputs all of the source files in the session's pdb file.
+  // Returns true on success.
+  bool PrintSourceFiles();
+
+  // Outputs all of the frame information necessary to construct stack
+  // backtraces in the absence of frame pointers. For x86 data stored in
+  // .pdb files. Returns true on success.
+  bool PrintFrameDataUsingPDB();
+
+  // Outputs all of the frame information necessary to construct stack
+  // backtraces in the absence of frame pointers. For x64 data stored in
+  // .exe, .dll files. Returns true on success.
+  bool PrintFrameDataUsingEXE();
+
+  // Outputs all of the frame information necessary to construct stack
+  // backtraces in the absence of frame pointers.  Returns true on success.
+  bool PrintFrameData();
+
+  // Outputs a single public symbol address and name, if the symbol corresponds
+  // to a code address.  Returns true on success.  If symbol is does not
+  // correspond to code, returns true without outputting anything. If
+  // has_multiple_symbols is true, the symbol corresponds to a code address and
+  // the instructions correspond to multiple symbols.
+  bool PrintCodePublicSymbol(IDiaSymbol *symbol, bool has_multiple_symbols);
+
+  // Outputs a line identifying the PDB file that is being dumped, along with
+  // its uuid and age.
+  bool PrintPDBInfo();
+
+  // Outputs a line identifying the PE file corresponding to the PDB
+  // file that is being dumped, along with its code identifier,
+  // which consists of its timestamp and file size.
+  bool PrintPEInfo();
+
+  // Returns true if this filename has already been seen,
+  // and an ID is stored for it, or false if it has not.
+  bool FileIDIsCached(const wstring& file) {
+    return unique_files_.find(file) != unique_files_.end();
+  }
+
+  // Cache this filename and ID for later reuse.
+  void CacheFileID(const wstring& file, DWORD id) {
+    unique_files_[file] = id;
+  }
+
+  // Store this ID in the cache as a duplicate for this filename.
+  void StoreDuplicateFileID(const wstring& file, DWORD id) {
+    unordered_map<wstring, DWORD>::iterator iter = unique_files_.find(file);
+    if (iter != unique_files_.end()) {
+      // map this id to the previously seen one
+      file_ids_[id] = iter->second;
+    }
+  }
+
+  // Given a file's unique ID, return the ID that should be used to
+  // reference it. There may be multiple files with identical filenames
+  // but different unique IDs. The cache attempts to coalesce these into
+  // one ID per unique filename.
+  DWORD GetRealFileID(DWORD id) {
+    unordered_map<DWORD, DWORD>::iterator iter = file_ids_.find(id);
+    if (iter == file_ids_.end())
+      return id;
+    return iter->second;
+  }
+
+  // Find the PE file corresponding to the loaded PDB file, and
+  // set the code_file_ member. Returns false on failure.
+  bool FindPEFile();
+
+  // Returns the function name for a symbol.  If possible, the name is
+  // undecorated.  If the symbol's decorated form indicates the size of
+  // parameters on the stack, this information is returned in stack_param_size.
+  // Returns true on success.  If the symbol doesn't encode parameter size
+  // information, stack_param_size is set to -1.
+  static bool GetSymbolFunctionName(IDiaSymbol *function, BSTR *name,
+                                    int *stack_param_size);
+
+  // Returns the number of bytes of stack space used for a function's
+  // parameters.  function must have the tag SymTagFunction.  In the event of
+  // a failure, returns 0, which is also a valid number of bytes.
+  static int GetFunctionStackParamSize(IDiaSymbol *function);
+
+  // The filename of the PE file corresponding to the currently-open
+  // pdb file.
+  wstring code_file_;
+
+  // The session for the currently-open pdb file.
+  CComPtr<IDiaSession> session_;
+
+  // The current output file for this WriteMap invocation.
+  FILE *output_;
+
+  // There may be many duplicate filenames with different IDs.
+  // This maps from the DIA "unique ID" to a single ID per unique
+  // filename.
+  unordered_map<DWORD, DWORD> file_ids_;
+  // This maps unique filenames to file IDs.
+  unordered_map<wstring, DWORD> unique_files_;
+
+  // This is used for calculating post-transform symbol addresses and lengths.
+  ImageMap image_map_;
+
+  // Disallow copy ctor and operator=
+  PDBSourceLineWriter(const PDBSourceLineWriter&);
+  void operator=(const PDBSourceLineWriter&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_PDB_SOURCE_LINE_WRITER_H_
diff --git a/src/common/windows/pe_source_line_writer.cc b/src/common/windows/pe_source_line_writer.cc
new file mode 100644
index 0000000..cb6cc71
--- /dev/null
+++ b/src/common/windows/pe_source_line_writer.cc
@@ -0,0 +1,77 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "common/windows/pe_source_line_writer.h"
+
+#include "common/windows/pe_util.h"
+
+namespace google_breakpad {
+PESourceLineWriter::PESourceLineWriter(const wstring& pe_file) :
+  pe_file_(pe_file) {
+}
+
+PESourceLineWriter::~PESourceLineWriter() {
+}
+
+bool PESourceLineWriter::WriteSymbols(FILE* symbol_file) {
+  PDBModuleInfo module_info;
+  if (!GetModuleInfo(&module_info)) {
+    return false;
+  }
+  // Hard-code "windows" for the OS because that's the only thing that makes
+  // sense for PDB files.  (This might not be strictly correct for Windows CE
+  // support, but we don't care about that at the moment.)
+  fprintf(symbol_file, "MODULE windows %ws %ws %ws\n",
+    module_info.cpu.c_str(), module_info.debug_identifier.c_str(),
+    module_info.debug_file.c_str());
+
+  PEModuleInfo pe_info;
+  if (!GetPEInfo(&pe_info)) {
+    return false;
+  }
+  fprintf(symbol_file, "INFO CODE_ID %ws %ws\n",
+    pe_info.code_identifier.c_str(),
+    pe_info.code_file.c_str());
+
+  if (!PrintPEFrameData(pe_file_, symbol_file)) {
+    return false;
+  }
+
+  return true;
+}
+
+bool PESourceLineWriter::GetModuleInfo(PDBModuleInfo* info) {
+  return ReadModuleInfo(pe_file_, info);
+}
+
+bool PESourceLineWriter::GetPEInfo(PEModuleInfo* info) {
+  return ReadPEInfo(pe_file_, info);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/pe_source_line_writer.h b/src/common/windows/pe_source_line_writer.h
new file mode 100644
index 0000000..2bf1d4f
--- /dev/null
+++ b/src/common/windows/pe_source_line_writer.h
@@ -0,0 +1,69 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_WINDOWS_PE_SOURCE_LINE_WRITER_H_
+#define COMMON_WINDOWS_PE_SOURCE_LINE_WRITER_H_
+
+#include <string>
+
+#include "common/basictypes.h"
+#include "common/windows/module_info.h"
+
+namespace google_breakpad {
+
+using std::wstring;
+
+// PESourceLineWriter uses a pe file produced by Visual C++ to output
+// a line/address map for use with BasicSourceLineResolver.
+// NOTE: Only supports PE32+ format, ie. a 64bit PE file.
+class PESourceLineWriter {
+public:
+  explicit PESourceLineWriter(const wstring& pe_file);
+  ~PESourceLineWriter();
+
+  // Writes Breakpad symbols from the pe file to |symbol_file|.
+  // Returns true on success.
+  bool WriteSymbols(FILE* symbol_file);
+
+  // Retrieves information about the module. Returns true on success.
+  bool GetModuleInfo(PDBModuleInfo* info);
+
+  // Retrieves information about the module's PE file.  Returns
+  // true on success.
+  bool GetPEInfo(PEModuleInfo* info);
+
+private:
+  const wstring pe_file_;
+
+  DISALLOW_COPY_AND_ASSIGN(PESourceLineWriter);
+};
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_PE_SOURCE_LINE_WRITER_H_
diff --git a/src/common/windows/pe_util.cc b/src/common/windows/pe_util.cc
new file mode 100644
index 0000000..9c94af0
--- /dev/null
+++ b/src/common/windows/pe_util.cc
@@ -0,0 +1,407 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "pe_util.h"
+
+#include <windows.h>
+#include <winnt.h>
+#include <atlbase.h>
+#include <ImageHlp.h>
+
+#include <functional>
+
+#include "common/windows/string_utils-inl.h"
+#include "common/windows/guid_string.h"
+
+namespace {
+
+/*
+ * Not defined in WinNT.h for some reason. Definitions taken from:
+ * http://uninformed.org/index.cgi?v=4&a=1&p=13
+ *
+ */
+typedef unsigned char UBYTE;
+
+#if !defined(_WIN64)
+#define UNW_FLAG_EHANDLER  0x01
+#define UNW_FLAG_UHANDLER  0x02
+#define UNW_FLAG_CHAININFO 0x04
+#endif
+
+union UnwindCode {
+  struct {
+    UBYTE offset_in_prolog;
+    UBYTE unwind_operation_code : 4;
+    UBYTE operation_info : 4;
+  };
+  USHORT frame_offset;
+};
+
+enum UnwindOperationCodes {
+  UWOP_PUSH_NONVOL = 0, /* info == register number */
+  UWOP_ALLOC_LARGE,     /* no info, alloc size in next 2 slots */
+  UWOP_ALLOC_SMALL,     /* info == size of allocation / 8 - 1 */
+  UWOP_SET_FPREG,       /* no info, FP = RSP + UNWIND_INFO.FPRegOffset*16 */
+  UWOP_SAVE_NONVOL,     /* info == register number, offset in next slot */
+  UWOP_SAVE_NONVOL_FAR, /* info == register number, offset in next 2 slots */
+  // XXX: these are missing from MSDN!
+  // See: http://www.osronline.com/ddkx/kmarch/64bitamd_4rs7.htm
+  UWOP_SAVE_XMM,
+  UWOP_SAVE_XMM_FAR,
+  UWOP_SAVE_XMM128,     /* info == XMM reg number, offset in next slot */
+  UWOP_SAVE_XMM128_FAR, /* info == XMM reg number, offset in next 2 slots */
+  UWOP_PUSH_MACHFRAME   /* info == 0: no error-code, 1: error-code */
+};
+
+// See: http://msdn.microsoft.com/en-us/library/ddssxxy8.aspx
+// Note: some fields removed as we don't use them.
+struct UnwindInfo {
+  UBYTE version : 3;
+  UBYTE flags : 5;
+  UBYTE size_of_prolog;
+  UBYTE count_of_codes;
+  UBYTE frame_register : 4;
+  UBYTE frame_offset : 4;
+  UnwindCode unwind_code[1];
+};
+
+struct CV_INFO_PDB70 {
+  ULONG cv_signature;
+  GUID signature;
+  ULONG age;
+  CHAR pdb_filename[ANYSIZE_ARRAY];
+};
+
+#define CV_SIGNATURE_RSDS 'SDSR'
+
+// A helper class to scope a PLOADED_IMAGE.
+class AutoImage {
+public:
+  explicit AutoImage(PLOADED_IMAGE img) : img_(img) {}
+  ~AutoImage() {
+    if (img_)
+      ImageUnload(img_);
+  }
+
+  operator PLOADED_IMAGE() { return img_; }
+  PLOADED_IMAGE operator->() { return img_; }
+
+private:
+  PLOADED_IMAGE img_;
+};
+}  // namespace
+
+namespace google_breakpad {
+
+using std::unique_ptr;
+using google_breakpad::GUIDString;
+
+bool ReadModuleInfo(const wstring & pe_file, PDBModuleInfo * info) {
+  // Convert wchar to native charset because ImageLoad only takes
+  // a PSTR as input.
+  string img_file;
+  if (!WindowsStringUtils::safe_wcstombs(pe_file, &img_file)) {
+    fprintf(stderr, "Image path '%S' contains unrecognized characters.\n",
+        pe_file.c_str());
+    return false;
+  }
+
+  AutoImage img(ImageLoad((PSTR)img_file.c_str(), NULL));
+  if (!img) {
+    fprintf(stderr, "Failed to load %s\n", img_file.c_str());
+    return false;
+  }
+
+  info->cpu = FileHeaderMachineToCpuString(
+      img->FileHeader->FileHeader.Machine);
+
+  PIMAGE_OPTIONAL_HEADER64 optional_header =
+      &(reinterpret_cast<PIMAGE_NT_HEADERS64>(img->FileHeader))->OptionalHeader;
+
+  // Search debug directories for a guid signature & age
+  DWORD debug_rva = optional_header->
+    DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress;
+  DWORD debug_size = optional_header->
+    DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size;
+  PIMAGE_DEBUG_DIRECTORY debug_directories =
+    static_cast<PIMAGE_DEBUG_DIRECTORY>(
+      ImageRvaToVa(img->FileHeader,
+        img->MappedAddress,
+        debug_rva,
+        &img->LastRvaSection));
+
+  for (DWORD i = 0; i < debug_size / sizeof(*debug_directories); i++) {
+    if (debug_directories[i].Type != IMAGE_DEBUG_TYPE_CODEVIEW ||
+        debug_directories[i].SizeOfData < sizeof(CV_INFO_PDB70)) {
+      continue;
+    }
+
+    struct CV_INFO_PDB70* cv_info = static_cast<CV_INFO_PDB70*>(ImageRvaToVa(
+        img->FileHeader,
+        img->MappedAddress,
+        debug_directories[i].AddressOfRawData,
+        &img->LastRvaSection));
+    if (cv_info->cv_signature != CV_SIGNATURE_RSDS) {
+      continue;
+    }
+
+    info->debug_identifier = GenerateDebugIdentifier(cv_info->age,
+        cv_info->signature);
+
+    // This code assumes that the pdb_filename is stored as ASCII without
+    // multibyte characters, but it's not clear if that's true.
+    size_t debug_file_length = strnlen_s(cv_info->pdb_filename, MAX_PATH);
+    if (debug_file_length < 0 || debug_file_length >= MAX_PATH) {
+      fprintf(stderr, "PE debug directory is corrupt.\n");
+      return false;
+    }
+    std::string debug_file(cv_info->pdb_filename, debug_file_length);
+    if (!WindowsStringUtils::safe_mbstowcs(debug_file, &info->debug_file)) {
+      fprintf(stderr, "PDB filename '%s' contains unrecognized characters.\n",
+          debug_file.c_str());
+      return false;
+    }
+    info->debug_file = WindowsStringUtils::GetBaseName(info->debug_file);
+
+    return true;
+  }
+
+  fprintf(stderr, "Image is missing debug information.\n");
+  return false;
+}
+
+bool ReadPEInfo(const wstring & pe_file, PEModuleInfo * info) {
+  // Convert wchar to native charset because ImageLoad only takes
+  // a PSTR as input.
+  string img_file;
+  if (!WindowsStringUtils::safe_wcstombs(pe_file, &img_file)) {
+    fprintf(stderr, "Image path '%S' contains unrecognized characters.\n",
+        pe_file.c_str());
+    return false;
+  }
+
+  AutoImage img(ImageLoad((PSTR)img_file.c_str(), NULL));
+  if (!img) {
+    fprintf(stderr, "Failed to open PE file: %S\n", pe_file.c_str());
+    return false;
+  }
+
+  info->code_file = WindowsStringUtils::GetBaseName(pe_file);
+
+  // The date and time that the file was created by the linker.
+  DWORD TimeDateStamp = img->FileHeader->FileHeader.TimeDateStamp;
+  // The size of the file in bytes, including all headers.
+  DWORD SizeOfImage = 0;
+  PIMAGE_OPTIONAL_HEADER64 opt =
+    &((PIMAGE_NT_HEADERS64)img->FileHeader)->OptionalHeader;
+  if (opt->Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
+    // 64-bit PE file.
+    SizeOfImage = opt->SizeOfImage;
+  }
+  else {
+    // 32-bit PE file.
+    SizeOfImage = img->FileHeader->OptionalHeader.SizeOfImage;
+  }
+  wchar_t code_identifier[32];
+  swprintf(code_identifier,
+    sizeof(code_identifier) / sizeof(code_identifier[0]),
+    L"%08X%X", TimeDateStamp, SizeOfImage);
+  info->code_identifier = code_identifier;
+
+  return true;
+}
+
+bool PrintPEFrameData(const wstring & pe_file, FILE * out_file)
+{
+  // Convert wchar to native charset because ImageLoad only takes
+  // a PSTR as input.
+  string img_file;
+  if (!WindowsStringUtils::safe_wcstombs(pe_file, &img_file)) {
+    fprintf(stderr, "Image path '%S' contains unrecognized characters.\n",
+        pe_file.c_str());
+    return false;
+  }
+
+  AutoImage img(ImageLoad((PSTR)img_file.c_str(), NULL));
+  if (!img) {
+    fprintf(stderr, "Failed to load %s\n", img_file.c_str());
+    return false;
+  }
+  PIMAGE_OPTIONAL_HEADER64 optional_header =
+    &(reinterpret_cast<PIMAGE_NT_HEADERS64>(img->FileHeader))->OptionalHeader;
+  if (optional_header->Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
+    fprintf(stderr, "Not a PE32+ image\n");
+    return false;
+  }
+
+  // Read Exception Directory
+  DWORD exception_rva = optional_header->
+    DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION].VirtualAddress;
+  DWORD exception_size = optional_header->
+    DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION].Size;
+  PIMAGE_RUNTIME_FUNCTION_ENTRY funcs =
+    static_cast<PIMAGE_RUNTIME_FUNCTION_ENTRY>(
+      ImageRvaToVa(img->FileHeader,
+        img->MappedAddress,
+        exception_rva,
+        &img->LastRvaSection));
+  for (DWORD i = 0; i < exception_size / sizeof(*funcs); i++) {
+    DWORD unwind_rva = funcs[i].UnwindInfoAddress;
+    // handle chaining
+    while (unwind_rva & 0x1) {
+      unwind_rva ^= 0x1;
+      PIMAGE_RUNTIME_FUNCTION_ENTRY chained_func =
+        static_cast<PIMAGE_RUNTIME_FUNCTION_ENTRY>(
+          ImageRvaToVa(img->FileHeader,
+            img->MappedAddress,
+            unwind_rva,
+            &img->LastRvaSection));
+      unwind_rva = chained_func->UnwindInfoAddress;
+    }
+
+    UnwindInfo *unwind_info = static_cast<UnwindInfo*>(
+      ImageRvaToVa(img->FileHeader,
+        img->MappedAddress,
+        unwind_rva,
+        &img->LastRvaSection));
+
+    DWORD stack_size = 8;  // minimal stack size is 8 for RIP
+    DWORD rip_offset = 8;
+    do {
+      for (UBYTE c = 0; c < unwind_info->count_of_codes; c++) {
+        UnwindCode *unwind_code = &unwind_info->unwind_code[c];
+        switch (unwind_code->unwind_operation_code) {
+        case UWOP_PUSH_NONVOL: {
+          stack_size += 8;
+          break;
+        }
+        case UWOP_ALLOC_LARGE: {
+          if (unwind_code->operation_info == 0) {
+            c++;
+            if (c < unwind_info->count_of_codes)
+              stack_size += (unwind_code + 1)->frame_offset * 8;
+          }
+          else {
+            c += 2;
+            if (c < unwind_info->count_of_codes)
+              stack_size += (unwind_code + 1)->frame_offset |
+              ((unwind_code + 2)->frame_offset << 16);
+          }
+          break;
+        }
+        case UWOP_ALLOC_SMALL: {
+          stack_size += unwind_code->operation_info * 8 + 8;
+          break;
+        }
+        case UWOP_SET_FPREG:
+        case UWOP_SAVE_XMM:
+        case UWOP_SAVE_XMM_FAR:
+          break;
+        case UWOP_SAVE_NONVOL:
+        case UWOP_SAVE_XMM128: {
+          c++;  // skip slot with offset
+          break;
+        }
+        case UWOP_SAVE_NONVOL_FAR:
+        case UWOP_SAVE_XMM128_FAR: {
+          c += 2;  // skip 2 slots with offset
+          break;
+        }
+        case UWOP_PUSH_MACHFRAME: {
+          if (unwind_code->operation_info) {
+            stack_size += 88;
+          }
+          else {
+            stack_size += 80;
+          }
+          rip_offset += 80;
+          break;
+        }
+        }
+      }
+      if (unwind_info->flags & UNW_FLAG_CHAININFO) {
+        PIMAGE_RUNTIME_FUNCTION_ENTRY chained_func =
+          reinterpret_cast<PIMAGE_RUNTIME_FUNCTION_ENTRY>(
+          (unwind_info->unwind_code +
+            ((unwind_info->count_of_codes + 1) & ~1)));
+
+        unwind_info = static_cast<UnwindInfo*>(
+          ImageRvaToVa(img->FileHeader,
+            img->MappedAddress,
+            chained_func->UnwindInfoAddress,
+            &img->LastRvaSection));
+      }
+      else {
+        unwind_info = NULL;
+      }
+    } while (unwind_info);
+    fprintf(out_file, "STACK CFI INIT %lx %lx .cfa: $rsp .ra: .cfa %lu - ^\n",
+      funcs[i].BeginAddress,
+      funcs[i].EndAddress - funcs[i].BeginAddress, rip_offset);
+    fprintf(out_file, "STACK CFI %lx .cfa: $rsp %lu +\n",
+      funcs[i].BeginAddress, stack_size);
+  }
+
+  return true;
+}
+
+wstring GenerateDebugIdentifier(DWORD age, GUID signature)
+{
+  // Use the same format that the MS symbol server uses in filesystem
+  // hierarchies.
+  wchar_t age_string[9];
+  swprintf(age_string, sizeof(age_string) / sizeof(age_string[0]),
+    L"%x", age);
+
+  // remove when VC++7.1 is no longer supported
+  age_string[sizeof(age_string) / sizeof(age_string[0]) - 1] = L'\0';
+
+  wstring debug_identifier = GUIDString::GUIDToSymbolServerWString(&signature);
+  debug_identifier.append(age_string);
+
+  return debug_identifier;
+}
+
+wstring GenerateDebugIdentifier(DWORD age, DWORD signature)
+{
+  // Use the same format that the MS symbol server uses in filesystem
+  // hierarchies.
+  wchar_t identifier_string[17];
+  swprintf(identifier_string,
+    sizeof(identifier_string) / sizeof(identifier_string[0]),
+    L"%08X%x", signature, age);
+
+  // remove when VC++7.1 is no longer supported
+  identifier_string[sizeof(identifier_string) /
+    sizeof(identifier_string[0]) - 1] = L'\0';
+
+  return wstring(identifier_string);
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/pe_util.h b/src/common/windows/pe_util.h
new file mode 100644
index 0000000..634ba29
--- /dev/null
+++ b/src/common/windows/pe_util.h
@@ -0,0 +1,78 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_WINDOWS_PE_UTIL_H_
+#define COMMON_WINDOWS_PE_UTIL_H_
+
+#include <windows.h>
+
+#include "common/windows/module_info.h"
+
+namespace google_breakpad {
+
+using std::wstring;
+
+// Reads |pe_file| and populates |info|. Returns true on success.
+// Only supports PE32+ format, ie. a 64bit PE file.
+// Will fail if |pe_file| does not contain a valid CodeView record.
+bool ReadModuleInfo(const wstring& pe_file, PDBModuleInfo* info);
+
+// Reads |pe_file| and populates |info|. Returns true on success.
+bool ReadPEInfo(const wstring& pe_file, PEModuleInfo* info);
+
+// Reads |pe_file| and prints frame data (aka. unwind info) to |out_file|.
+// Only supports PE32+ format, ie. a 64bit PE file.
+bool PrintPEFrameData(const wstring& pe_file, FILE* out_file);
+
+// Combines a GUID |signature| and DWORD |age| to create a Breakpad debug
+// identifier.
+wstring GenerateDebugIdentifier(DWORD age, GUID signature);
+
+// Combines a DWORD |signature| and DWORD |age| to create a Breakpad debug
+// identifier.
+wstring GenerateDebugIdentifier(DWORD age, DWORD signature);
+
+// Converts |machine| enum value to the corresponding string used by Breakpad.
+// The enum is IMAGE_FILE_MACHINE_*, contained in winnt.h.
+constexpr const wchar_t* FileHeaderMachineToCpuString(WORD machine) {
+  switch (machine) {
+    case IMAGE_FILE_MACHINE_I386: {
+      return L"x86";
+    }
+    case IMAGE_FILE_MACHINE_IA64:
+    case IMAGE_FILE_MACHINE_AMD64: {
+      return L"x86_64";
+    }
+    default: { return L"unknown"; }
+  }
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_PE_UTIL_H_
diff --git a/src/common/windows/string_utils-inl.h b/src/common/windows/string_utils-inl.h
new file mode 100644
index 0000000..935e19f
--- /dev/null
+++ b/src/common/windows/string_utils-inl.h
@@ -0,0 +1,142 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// string_utils-inl.h: Safer string manipulation on Windows, supporting
+// pre-MSVC8 environments.
+
+#ifndef COMMON_WINDOWS_STRING_UTILS_INL_H_
+#define COMMON_WINDOWS_STRING_UTILS_INL_H_
+
+#include <stdarg.h>
+#include <wchar.h>
+
+#include <string>
+
+// The "ll" printf format size specifier corresponding to |long long| was
+// intrudced in MSVC8.  Earlier versions did not provide this size specifier,
+// but "I64" can be used to print 64-bit types.  Don't use "I64" where "ll"
+// is available, in the event of oddball systems where |long long| is not
+// 64 bits wide.
+#if _MSC_VER >= 1400  // MSVC 2005/8
+#define WIN_STRING_FORMAT_LL "ll"
+#else  // MSC_VER >= 1400
+#define WIN_STRING_FORMAT_LL "I64"
+#endif  // MSC_VER >= 1400
+
+// A nonconforming version of swprintf, without the length argument, was
+// included with the CRT prior to MSVC8.  Although a conforming version was
+// also available via an overload, it is not reliably chosen.  _snwprintf
+// behaves as a standards-confirming swprintf should, so force the use of
+// _snwprintf when using older CRTs.
+#if _MSC_VER < 1400  // MSVC 2005/8
+#define swprintf _snwprintf
+#else
+// For MSVC8 and newer, swprintf_s is the recommended method. Conveniently,
+// it takes the same argument list as swprintf.
+#define swprintf swprintf_s
+#endif  // MSC_VER < 1400
+
+namespace google_breakpad {
+
+using std::string;
+using std::wstring;
+
+class WindowsStringUtils {
+ public:
+  // Roughly equivalent to MSVC8's wcscpy_s, except pre-MSVC8, this does
+  // not fail if source is longer than destination_size.  The destination
+  // buffer is always 0-terminated.
+  static void safe_wcscpy(wchar_t* destination, size_t destination_size,
+                          const wchar_t* source);
+
+  // Roughly equivalent to MSVC8's wcsncpy_s, except that _TRUNCATE cannot
+  // be passed directly, and pre-MSVC8, this will not fail if source or count
+  // are longer than destination_size.  The destination buffer is always
+  // 0-terminated.
+  static void safe_wcsncpy(wchar_t* destination, size_t destination_size,
+                           const wchar_t* source, size_t count);
+
+  // Performs multi-byte to wide character conversion on C++ strings, using
+  // mbstowcs_s (MSVC8) or mbstowcs (pre-MSVC8).  Returns false on failure,
+  // without setting wcs.
+  static bool safe_mbstowcs(const string& mbs, wstring* wcs);
+
+  // The inverse of safe_mbstowcs.
+  static bool safe_wcstombs(const wstring& wcs, string* mbs);
+
+  // Returns the base name of a file, e.g. strips off the path.
+  static wstring GetBaseName(const wstring& filename);
+
+ private:
+  // Disallow instantiation and other object-based operations.
+  WindowsStringUtils();
+  WindowsStringUtils(const WindowsStringUtils&);
+  ~WindowsStringUtils();
+  void operator=(const WindowsStringUtils&);
+};
+
+// static
+inline void WindowsStringUtils::safe_wcscpy(wchar_t* destination,
+                                            size_t destination_size,
+                                            const wchar_t* source) {
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  wcscpy_s(destination, destination_size, source);
+#else  // _MSC_VER >= 1400
+  // Pre-MSVC 2005/8 doesn't have wcscpy_s.  Simulate it with wcsncpy.
+  // wcsncpy doesn't 0-terminate the destination buffer if the source string
+  // is longer than size.  Ensure that the destination is 0-terminated.
+  wcsncpy(destination, source, destination_size);
+  if (destination && destination_size)
+    destination[destination_size - 1] = 0;
+#endif  // _MSC_VER >= 1400
+}
+
+// static
+inline void WindowsStringUtils::safe_wcsncpy(wchar_t* destination,
+                                             size_t destination_size,
+                                             const wchar_t* source,
+                                             size_t count) {
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  wcsncpy_s(destination, destination_size, source, count);
+#else  // _MSC_VER >= 1400
+  // Pre-MSVC 2005/8 doesn't have wcsncpy_s.  Simulate it with wcsncpy.
+  // wcsncpy doesn't 0-terminate the destination buffer if the source string
+  // is longer than size.  Ensure that the destination is 0-terminated.
+  if (destination_size < count)
+    count = destination_size;
+
+  wcsncpy(destination, source, count);
+  if (destination && count)
+    destination[count - 1] = 0;
+#endif  // _MSC_VER >= 1400
+}
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_STRING_UTILS_INL_H_
diff --git a/src/common/windows/string_utils.cc b/src/common/windows/string_utils.cc
new file mode 100644
index 0000000..90aab03
--- /dev/null
+++ b/src/common/windows/string_utils.cc
@@ -0,0 +1,133 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <cassert>
+#include <vector>
+
+#include "common/windows/string_utils-inl.h"
+
+namespace google_breakpad {
+
+// static
+wstring WindowsStringUtils::GetBaseName(const wstring& filename) {
+  wstring base_name(filename);
+  size_t slash_pos = base_name.find_last_of(L"/\\");
+  if (slash_pos != wstring::npos) {
+    base_name.erase(0, slash_pos + 1);
+  }
+  return base_name;
+}
+
+// static
+bool WindowsStringUtils::safe_mbstowcs(const string& mbs, wstring* wcs) {
+  assert(wcs);
+
+  // First, determine the length of the destination buffer.
+  size_t wcs_length;
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  errno_t err;
+  if ((err = mbstowcs_s(&wcs_length, NULL, 0, mbs.c_str(), _TRUNCATE)) != 0) {
+    return false;
+  }
+  assert(wcs_length > 0);
+#else  // _MSC_VER >= 1400
+  if ((wcs_length = mbstowcs(NULL, mbs.c_str(), mbs.length())) == (size_t)-1) {
+    return false;
+  }
+
+  // Leave space for the 0-terminator.
+  ++wcs_length;
+#endif  // _MSC_VER >= 1400
+
+  std::vector<wchar_t> wcs_v(wcs_length);
+
+  // Now, convert.
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  if ((err = mbstowcs_s(NULL, &wcs_v[0], wcs_length, mbs.c_str(),
+                        _TRUNCATE)) != 0) {
+    return false;
+  }
+#else  // _MSC_VER >= 1400
+  if (mbstowcs(&wcs_v[0], mbs.c_str(), mbs.length()) == (size_t)-1) {
+    return false;
+  }
+
+  // Ensure presence of 0-terminator.
+  wcs_v[wcs_length - 1] = '\0';
+#endif  // _MSC_VER >= 1400
+
+  *wcs = &wcs_v[0];
+  return true;
+}
+
+// static
+bool WindowsStringUtils::safe_wcstombs(const wstring& wcs, string* mbs) {
+  assert(mbs);
+
+  // First, determine the length of the destination buffer.
+  size_t mbs_length;
+
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  errno_t err;
+  if ((err = wcstombs_s(&mbs_length, NULL, 0, wcs.c_str(), _TRUNCATE)) != 0) {
+    return false;
+  }
+  assert(mbs_length > 0);
+#else  // _MSC_VER >= 1400
+  if ((mbs_length = wcstombs(NULL, wcs.c_str(), wcs.length())) == (size_t)-1) {
+    return false;
+  }
+
+  // Leave space for the 0-terminator.
+  ++mbs_length;
+#endif  // _MSC_VER >= 1400
+
+  std::vector<char> mbs_v(mbs_length);
+
+  // Now, convert.
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  if ((err = wcstombs_s(NULL, &mbs_v[0], mbs_length, wcs.c_str(),
+                        _TRUNCATE)) != 0) {
+    return false;
+  }
+#else  // _MSC_VER >= 1400
+  if (wcstombs(&mbs_v[0], wcs.c_str(), wcs.length()) == (size_t)-1) {
+    return false;
+  }
+
+  // Ensure presence of 0-terminator.
+  mbs_v[mbs_length - 1] = '\0';
+#endif  // _MSC_VER >= 1400
+
+  *mbs = &mbs_v[0];
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/common/windows/symbol_collector_client.cc b/src/common/windows/symbol_collector_client.cc
new file mode 100644
index 0000000..30c663e
--- /dev/null
+++ b/src/common/windows/symbol_collector_client.cc
@@ -0,0 +1,155 @@
+#include "common/windows/symbol_collector_client.h"
+
+#include <stdio.h>
+
+#include <regex>
+
+#include "common/windows/http_upload.h"
+
+namespace google_breakpad {
+
+  // static
+  bool SymbolCollectorClient::CreateUploadUrl(
+      wstring& api_url,
+      wstring& api_key,
+      UploadUrlResponse *uploadUrlResponse) {
+    wstring url = api_url +
+        L"/v1/uploads:create"
+        L"?key=" + api_key;
+    wstring response;
+    int response_code;
+
+    if (!HTTPUpload::SendSimplePostRequest(
+        url,
+        L"",
+        L"",
+        NULL,
+        &response,
+        &response_code)) {
+      wprintf(L"Failed to create upload url.\n");
+      wprintf(L"Response code: %ld\n", response_code);
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return false;
+    }
+
+    // Note camel-case rather than underscores.
+    std::wregex upload_url_regex(L"\"uploadUrl\": \"([^\"]+)\"");
+    std::wregex upload_key_regex(L"\"uploadKey\": \"([^\"]+)\"");
+
+    std::wsmatch upload_url_match;
+    if (!std::regex_search(response, upload_url_match, upload_url_regex) ||
+        upload_url_match.size() != 2) {
+      wprintf(L"Failed to parse create url response.");
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return false;
+    }
+    wstring upload_url = upload_url_match[1].str();
+
+    std::wsmatch upload_key_match;
+    if (!std::regex_search(response, upload_key_match, upload_key_regex) ||
+        upload_key_match.size() != 2) {
+      wprintf(L"Failed to parse create url response.");
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return false;
+    }
+    wstring upload_key = upload_key_match[1].str();
+
+    uploadUrlResponse->upload_url = upload_url;
+    uploadUrlResponse->upload_key = upload_key;
+    return true;
+  }
+
+  // static
+  CompleteUploadResult SymbolCollectorClient::CompleteUpload(
+      wstring& api_url,
+      wstring& api_key,
+      const wstring& upload_key,
+      const wstring& debug_file,
+      const wstring& debug_id) {
+    wstring url = api_url +
+        L"/v1/uploads/" + upload_key + L":complete"
+        L"?key=" + api_key;
+    wstring body =
+        L"{ symbol_id: {"
+        L"debug_file: \"" + debug_file + L"\", "
+        L"debug_id: \"" + debug_id + L"\" "
+        L"} }";
+    wstring response;
+    int response_code;
+
+    if (!HTTPUpload::SendSimplePostRequest(
+        url,
+        body,
+        L"application/json",
+        NULL,
+        &response,
+        &response_code)) {
+      wprintf(L"Failed to complete upload.\n");
+      wprintf(L"Response code: %ld\n", response_code);
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return CompleteUploadResult::Error;
+    }
+
+    std::wregex result_regex(L"\"result\": \"([^\"]+)\"");
+    std::wsmatch result_match;
+    if (!std::regex_search(response, result_match, result_regex) ||
+        result_match.size() != 2) {
+      wprintf(L"Failed to parse complete upload response.");
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return CompleteUploadResult::Error;
+    }
+    wstring result = result_match[1].str();
+
+    if (result.compare(L"DUPLICATE_DATA") == 0) {
+      return CompleteUploadResult::DuplicateData;
+    }
+
+    return CompleteUploadResult::Ok;
+  }
+
+  // static
+  SymbolStatus SymbolCollectorClient::CheckSymbolStatus(
+      wstring& api_url,
+      wstring& api_key,
+      const wstring& debug_file,
+      const wstring& debug_id) {
+    wstring response;
+    int response_code;
+    wstring url = api_url +
+        L"/v1/symbols/" + debug_file + L"/" + debug_id + L":checkStatus"
+        L"?key=" + api_key;
+
+    if (!HTTPUpload::SendGetRequest(
+        url,
+        NULL,
+        &response,
+        &response_code)) {
+      wprintf(L"Failed to check symbol status.\n");
+      wprintf(L"Response code: %ld\n", response_code);
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return SymbolStatus::Unknown;
+    }
+
+    std::wregex status_regex(L"\"status\": \"([^\"]+)\"");
+    std::wsmatch status_match;
+    if (!std::regex_search(response, status_match, status_regex) ||
+        status_match.size() != 2) {
+      wprintf(L"Failed to parse check symbol status response.");
+      wprintf(L"Response:\n");
+      wprintf(L"%s\n", response.c_str());
+      return SymbolStatus::Unknown;
+    }
+    wstring status = status_match[1].str();
+
+    return (status.compare(L"FOUND") == 0) ?
+      SymbolStatus::Found :
+      SymbolStatus::Missing;
+  }
+
+}  // namespace google_breakpad
\ No newline at end of file
diff --git a/src/common/windows/symbol_collector_client.h b/src/common/windows/symbol_collector_client.h
new file mode 100644
index 0000000..30e0cb3
--- /dev/null
+++ b/src/common/windows/symbol_collector_client.h
@@ -0,0 +1,89 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef COMMON_WINDOWS_SYMBOL_COLLECTOR_CLIENT_H_
+#define COMMON_WINDOWS_SYMBOL_COLLECTOR_CLIENT_H_
+
+#include <string>
+
+namespace google_breakpad {
+
+  using std::wstring;
+
+  struct UploadUrlResponse {
+    // URL at which to HTTP PUT symbol file.
+    wstring upload_url;
+    // Unique key used to complete upload of symbol file.
+    wstring upload_key;
+  };
+
+  enum SymbolStatus {
+    Found,
+    Missing,
+    Unknown
+  };
+
+  enum CompleteUploadResult {
+    Ok,
+    DuplicateData,
+    Error
+  };
+
+  // Client to interact with sym-upload-v2 API server via HTTP/REST.
+  class SymbolCollectorClient {
+  public:
+    // Returns a URL at which a symbol file can be HTTP PUT without
+    // authentication, along with an upload key that can be used to
+    // complete the upload process with CompleteUpload.
+    static bool CreateUploadUrl(
+        wstring& api_url,
+        wstring& api_key,
+        UploadUrlResponse *uploadUrlResponse);
+
+    // Notify the API that symbol file upload is finished and its contents
+    // are ready to be read and/or used for further processing.
+    static CompleteUploadResult CompleteUpload(
+        wstring& api_url,
+        wstring& api_key,
+        const wstring& upload_key,
+        const wstring& debug_file,
+        const wstring& debug_id);
+
+    // Returns whether or not a symbol file corresponding to the debug_file/
+    // debug_id pair is already present in symbol storage.
+    static SymbolStatus CheckSymbolStatus(
+        wstring& api_url,
+        wstring& api_key,
+        const wstring& debug_file,
+        const wstring& debug_id);
+  };
+
+}  // namespace google_breakpad
+
+#endif  // COMMON_WINDOWS_SYMBOL_COLLECTOR_CLIENT_H_
diff --git a/src/config.h.in b/src/config.h.in
new file mode 100644
index 0000000..0553a24
--- /dev/null
+++ b/src/config.h.in
@@ -0,0 +1,94 @@
+/* src/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if you have the `arc4random' function. */
+#undef HAVE_ARC4RANDOM
+
+/* Define to 1 if you have the <a.out.h> header file. */
+#undef HAVE_A_OUT_H
+
+/* define if the compiler supports basic C++11 syntax */
+#undef HAVE_CXX11
+
+/* Define to 1 if you have the `getcontext' function. */
+#undef HAVE_GETCONTEXT
+
+/* Define to 1 if you have the `getrandom' function. */
+#undef HAVE_GETRANDOM
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have POSIX threads libraries and header files. */
+#undef HAVE_PTHREAD
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/random.h> header file. */
+#undef HAVE_SYS_RANDOM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Fallback definition for old systems */
+#undef O_CLOEXEC
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+   your system. */
+#undef PTHREAD_CREATE_JOINABLE
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Enable large inode numbers on Mac OS X 10.5.  */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
diff --git a/src/google_breakpad/common/breakpad_types.h b/src/google_breakpad/common/breakpad_types.h
new file mode 100644
index 0000000..d882804
--- /dev/null
+++ b/src/google_breakpad/common/breakpad_types.h
@@ -0,0 +1,68 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* breakpad_types.h: Precise-width types
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file ensures that types uintN_t are defined for N = 8, 16, 32, and
+ * 64.  Types of precise widths are crucial to the task of writing data
+ * structures on one platform and reading them on another.
+ *
+ * Author: Mark Mentovai */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
+#define GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
+
+#if (defined(_INTTYPES_H) || defined(_INTTYPES_H_)) && \
+    !defined(__STDC_FORMAT_MACROS)
+#error "inttypes.h has already been included before this header file, but "
+#error "without __STDC_FORMAT_MACROS defined."
+#endif
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif  /* __STDC_FORMAT_MACROS */
+#include <inttypes.h>
+
+typedef struct {
+  uint64_t high;
+  uint64_t low;
+} uint128_struct;
+
+typedef uint64_t breakpad_time_t;
+
+/* Try to get PRIx64 from inttypes.h, but if it's not defined, fall back to
+ * llx, which is the format string for "long long" - this is a 64-bit
+ * integral type on many systems. */
+#ifndef PRIx64
+#define PRIx64 "llx"
+#endif  /* !PRIx64 */
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_amd64.h b/src/google_breakpad/common/minidump_cpu_amd64.h
new file mode 100644
index 0000000..4256706
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_amd64.h
@@ -0,0 +1,235 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on amd64.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries.  In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai
+ * Change to split into its own file: Neal Sidhwaney */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
+
+
+/*
+ * AMD64 support, see WINNT.H
+ */
+
+typedef struct {
+  uint16_t       control_word;
+  uint16_t       status_word;
+  uint8_t        tag_word;
+  uint8_t        reserved1;
+  uint16_t       error_opcode;
+  uint32_t       error_offset;
+  uint16_t       error_selector;
+  uint16_t       reserved2;
+  uint32_t       data_offset;
+  uint16_t       data_selector;
+  uint16_t       reserved3;
+  uint32_t       mx_csr;
+  uint32_t       mx_csr_mask;
+  uint128_struct float_registers[8];
+  uint128_struct xmm_registers[16];
+  uint8_t        reserved4[96];
+} MDXmmSaveArea32AMD64;  /* XMM_SAVE_AREA32 */
+
+#define MD_CONTEXT_AMD64_VR_COUNT 26
+
+typedef struct {
+  /*
+   * Register parameter home addresses.
+   */
+  uint64_t  p1_home;
+  uint64_t  p2_home;
+  uint64_t  p3_home;
+  uint64_t  p4_home;
+  uint64_t  p5_home;
+  uint64_t  p6_home;
+
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated */
+  uint32_t  context_flags;
+  uint32_t  mx_csr;
+
+  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+  uint16_t  cs;
+
+  /* The next 4 registers are included with MD_CONTEXT_AMD64_SEGMENTS */
+  uint16_t  ds;
+  uint16_t  es;
+  uint16_t  fs;
+  uint16_t  gs;
+
+  /* The next 2 registers are included with MD_CONTEXT_AMD64_CONTROL */
+  uint16_t  ss;
+  uint32_t  eflags;
+
+  /* The next 6 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
+  uint64_t  dr0;
+  uint64_t  dr1;
+  uint64_t  dr2;
+  uint64_t  dr3;
+  uint64_t  dr6;
+  uint64_t  dr7;
+
+  /* The next 4 registers are included with MD_CONTEXT_AMD64_INTEGER */
+  uint64_t  rax;
+  uint64_t  rcx;
+  uint64_t  rdx;
+  uint64_t  rbx;
+
+  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+  uint64_t  rsp;
+
+  /* The next 11 registers are included with MD_CONTEXT_AMD64_INTEGER */
+  uint64_t  rbp;
+  uint64_t  rsi;
+  uint64_t  rdi;
+  uint64_t  r8;
+  uint64_t  r9;
+  uint64_t  r10;
+  uint64_t  r11;
+  uint64_t  r12;
+  uint64_t  r13;
+  uint64_t  r14;
+  uint64_t  r15;
+
+  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+  uint64_t  rip;
+
+  /* The next set of registers are included with
+   * MD_CONTEXT_AMD64_FLOATING_POINT
+   */
+  union {
+    MDXmmSaveArea32AMD64 flt_save;
+    struct {
+      uint128_struct header[2];
+      uint128_struct legacy[8];
+      uint128_struct xmm0;
+      uint128_struct xmm1;
+      uint128_struct xmm2;
+      uint128_struct xmm3;
+      uint128_struct xmm4;
+      uint128_struct xmm5;
+      uint128_struct xmm6;
+      uint128_struct xmm7;
+      uint128_struct xmm8;
+      uint128_struct xmm9;
+      uint128_struct xmm10;
+      uint128_struct xmm11;
+      uint128_struct xmm12;
+      uint128_struct xmm13;
+      uint128_struct xmm14;
+      uint128_struct xmm15;
+    } sse_registers;
+  };
+
+  uint128_struct vector_register[MD_CONTEXT_AMD64_VR_COUNT];
+  uint64_t       vector_control;
+
+  /* The next 5 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
+  uint64_t debug_control;
+  uint64_t last_branch_to_rip;
+  uint64_t last_branch_from_rip;
+  uint64_t last_exception_to_rip;
+  uint64_t last_exception_from_rip;
+
+} MDRawContextAMD64;  /* CONTEXT */
+
+/* For (MDRawContextAMD64).context_flags.  These values indicate the type of
+ * context stored in the structure.  The high 24 bits identify the CPU, the
+ * low 8 bits identify the type of context saved. */
+#define MD_CONTEXT_AMD64 0x00100000  /* CONTEXT_AMD64 */
+#define MD_CONTEXT_AMD64_CONTROL         (MD_CONTEXT_AMD64 | 0x00000001)
+     /* CONTEXT_CONTROL */
+#define MD_CONTEXT_AMD64_INTEGER         (MD_CONTEXT_AMD64 | 0x00000002)
+     /* CONTEXT_INTEGER */
+#define MD_CONTEXT_AMD64_SEGMENTS        (MD_CONTEXT_AMD64 | 0x00000004)
+     /* CONTEXT_SEGMENTS */
+#define MD_CONTEXT_AMD64_FLOATING_POINT  (MD_CONTEXT_AMD64 | 0x00000008)
+     /* CONTEXT_FLOATING_POINT */
+#define MD_CONTEXT_AMD64_DEBUG_REGISTERS (MD_CONTEXT_AMD64 | 0x00000010)
+     /* CONTEXT_DEBUG_REGISTERS */
+#define MD_CONTEXT_AMD64_XSTATE          (MD_CONTEXT_AMD64 | 0x00000040)
+     /* CONTEXT_XSTATE */
+
+/* WinNT.h refers to CONTEXT_MMX_REGISTERS but doesn't appear to define it
+ * I think it really means CONTEXT_FLOATING_POINT.
+ */
+
+#define MD_CONTEXT_AMD64_FULL            (MD_CONTEXT_AMD64_CONTROL | \
+                                          MD_CONTEXT_AMD64_INTEGER | \
+                                          MD_CONTEXT_AMD64_FLOATING_POINT)
+     /* CONTEXT_FULL */
+
+#define MD_CONTEXT_AMD64_ALL             (MD_CONTEXT_AMD64_FULL | \
+                                          MD_CONTEXT_AMD64_SEGMENTS | \
+                                          MD_CONTEXT_X86_DEBUG_REGISTERS)
+     /* CONTEXT_ALL */
+
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_arm.h b/src/google_breakpad/common/minidump_cpu_arm.h
new file mode 100644
index 0000000..6a71138
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_arm.h
@@ -0,0 +1,151 @@
+/* Copyright (c) 2009, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ARM.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Julian Seward
+ */
+
+/*
+ * ARM support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
+
+#define MD_FLOATINGSAVEAREA_ARM_FPR_COUNT 32
+#define MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT 8
+
+/*
+ * Note that these structures *do not* map directly to the CONTEXT
+ * structure defined in WinNT.h in the Windows Mobile SDK. That structure
+ * does not accomodate VFPv3, and I'm unsure if it was ever used in the
+ * wild anyway, as Windows CE only seems to produce "cedumps" which
+ * are not exactly minidumps.
+ */
+typedef struct {
+  uint64_t      fpscr;      /* FPU status register */
+
+  /* 32 64-bit floating point registers, d0 .. d31. */
+  uint64_t      regs[MD_FLOATINGSAVEAREA_ARM_FPR_COUNT];
+
+  /* Miscellaneous control words */
+  uint32_t     extra[MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT];
+} MDFloatingSaveAreaARM;
+
+#define MD_CONTEXT_ARM_GPR_COUNT 16
+
+typedef struct {
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated
+   */
+  uint32_t      context_flags;
+
+  /* 16 32-bit integer registers, r0 .. r15
+   * Note the following fixed uses:
+   *   r13 is the stack pointer
+   *   r14 is the link register
+   *   r15 is the program counter
+   */
+  uint32_t     iregs[MD_CONTEXT_ARM_GPR_COUNT];
+
+  /* CPSR (flags, basically): 32 bits:
+        bit 31 - N (negative)
+        bit 30 - Z (zero)
+        bit 29 - C (carry)
+        bit 28 - V (overflow)
+        bit 27 - Q (saturation flag, sticky)
+     All other fields -- ignore */
+  uint32_t    cpsr;
+
+  /* The next field is included with MD_CONTEXT_ARM_FLOATING_POINT */
+  MDFloatingSaveAreaARM float_save;
+
+} MDRawContextARM;
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDARMRegisterNumbers {
+  MD_CONTEXT_ARM_REG_IOS_FP = 7,
+  MD_CONTEXT_ARM_REG_FP     = 11,
+  MD_CONTEXT_ARM_REG_SP     = 13,
+  MD_CONTEXT_ARM_REG_LR     = 14,
+  MD_CONTEXT_ARM_REG_PC     = 15
+};
+
+/* For (MDRawContextARM).context_flags.  These values indicate the type of
+ * context stored in the structure. */
+/* CONTEXT_ARM from the Windows CE 5.0 SDK. This value isn't correct
+ * because this bit can be used for flags. Presumably this value was
+ * never actually used in minidumps, but only in "CEDumps" which
+ * are a whole parallel minidump file format for Windows CE.
+ * Therefore, Breakpad defines its own value for ARM CPUs.
+ */
+#define MD_CONTEXT_ARM_OLD               0x00000040
+/* This value was chosen to avoid likely conflicts with MD_CONTEXT_*
+ * for other CPUs. */
+#define MD_CONTEXT_ARM                   0x40000000
+#define MD_CONTEXT_ARM_INTEGER           (MD_CONTEXT_ARM | 0x00000002)
+#define MD_CONTEXT_ARM_FLOATING_POINT    (MD_CONTEXT_ARM | 0x00000004)
+
+#define MD_CONTEXT_ARM_FULL              (MD_CONTEXT_ARM_INTEGER | \
+                                          MD_CONTEXT_ARM_FLOATING_POINT)
+
+#define MD_CONTEXT_ARM_ALL               (MD_CONTEXT_ARM_INTEGER | \
+                                          MD_CONTEXT_ARM_FLOATING_POINT)
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_arm64.h b/src/google_breakpad/common/minidump_cpu_arm64.h
new file mode 100644
index 0000000..0411beb
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_arm64.h
@@ -0,0 +1,192 @@
+/* Copyright 2013 Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ARM.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Colin Blundell
+ */
+
+/*
+ * ARM64 support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+
+#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32
+#define MD_CONTEXT_ARM64_GPR_COUNT 33
+
+typedef struct {
+  /* 32 128-bit floating point registers, d0 .. d31. */
+  uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
+
+  uint32_t fpcr;       /* FPU control register */
+  uint32_t fpsr;       /* FPU status register */
+} MDFloatingSaveAreaARM64;
+
+/* For (MDRawContextARM64).context_flags.  These values indicate the type of
+ * context stored in the structure. */
+#define MD_CONTEXT_ARM64 0x00400000
+#define MD_CONTEXT_ARM64_CONTROL (MD_CONTEXT_ARM64 | 0x00000001)
+#define MD_CONTEXT_ARM64_INTEGER (MD_CONTEXT_ARM64 | 0x00000002)
+#define MD_CONTEXT_ARM64_FLOATING_POINT (MD_CONTEXT_ARM64 | 0x00000004)
+#define MD_CONTEXT_ARM64_DEBUG (MD_CONTEXT_ARM64 | 0x00000008)
+#define MD_CONTEXT_ARM64_FULL (MD_CONTEXT_ARM64_CONTROL | \
+                               MD_CONTEXT_ARM64_INTEGER | \
+                               MD_CONTEXT_ARM64_FLOATING_POINT)
+#define MD_CONTEXT_ARM64_ALL (MD_CONTEXT_ARM64_FULL | MD_CONTEXT_ARM64_DEBUG)
+
+typedef struct {
+  /* Determines which fields of this struct are populated */
+  uint32_t context_flags;
+
+  /* CPSR (flags, basically): 32 bits:
+        bit 31 - N (negative)
+        bit 30 - Z (zero)
+        bit 29 - C (carry)
+        bit 28 - V (overflow)
+        bit 27 - Q (saturation flag, sticky)
+     All other fields -- ignore */
+  uint32_t cpsr;
+
+  /* 33 64-bit integer registers, x0 .. x31 + the PC
+   * Note the following fixed uses:
+   *   x29 is the frame pointer
+   *   x30 is the link register
+   *   x31 is the stack pointer
+   *   The PC is effectively x32.
+   */
+  uint64_t iregs[MD_CONTEXT_ARM64_GPR_COUNT];
+
+  /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
+  MDFloatingSaveAreaARM64 float_save;
+
+  uint32_t bcr[8];
+  uint64_t bvr[8];
+  uint32_t wcr[2];
+  uint64_t wvr[2];
+} MDRawContextARM64;
+
+typedef struct {
+  uint32_t       fpsr;      /* FPU status register */
+  uint32_t       fpcr;      /* FPU control register */
+
+  /* 32 128-bit floating point registers, d0 .. d31. */
+  uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
+} MDFloatingSaveAreaARM64_Old;
+
+/* Use the same 32-bit alignment when accessing this structure from 64-bit code
+ * as is used natively in 32-bit code. */
+#pragma pack(push, 4)
+
+typedef struct {
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated
+   */
+  uint64_t      context_flags;
+
+  /* 33 64-bit integer registers, x0 .. x31 + the PC
+   * Note the following fixed uses:
+   *   x29 is the frame pointer
+   *   x30 is the link register
+   *   x31 is the stack pointer
+   *   The PC is effectively x32.
+   */
+  uint64_t     iregs[MD_CONTEXT_ARM64_GPR_COUNT];
+
+  /* CPSR (flags, basically): 32 bits:
+        bit 31 - N (negative)
+        bit 30 - Z (zero)
+        bit 29 - C (carry)
+        bit 28 - V (overflow)
+        bit 27 - Q (saturation flag, sticky)
+     All other fields -- ignore */
+  uint32_t    cpsr;
+
+  /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
+  MDFloatingSaveAreaARM64_Old float_save;
+
+} MDRawContextARM64_Old;
+
+#pragma pack(pop)
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDARM64RegisterNumbers {
+  MD_CONTEXT_ARM64_REG_FP     = 29,
+  MD_CONTEXT_ARM64_REG_LR     = 30,
+  MD_CONTEXT_ARM64_REG_SP     = 31,
+  MD_CONTEXT_ARM64_REG_PC     = 32
+};
+
+/* For (MDRawContextARM64_Old).context_flags.  These values indicate the type of
+ * context stored in the structure. MD_CONTEXT_ARM64_OLD is Breakpad-defined.
+ * This value was chosen to avoid likely conflicts with MD_CONTEXT_*
+ * for other CPUs. */
+#define MD_CONTEXT_ARM64_OLD                   0x80000000
+#define MD_CONTEXT_ARM64_INTEGER_OLD           (MD_CONTEXT_ARM64_OLD | 0x00000002)
+#define MD_CONTEXT_ARM64_FLOATING_POINT_OLD    (MD_CONTEXT_ARM64_OLD | 0x00000004)
+
+#define MD_CONTEXT_ARM64_FULL_OLD              (MD_CONTEXT_ARM64_INTEGER_OLD | \
+                                          MD_CONTEXT_ARM64_FLOATING_POINT_OLD)
+
+#define MD_CONTEXT_ARM64_ALL_OLD               (MD_CONTEXT_ARM64_INTEGER_OLD | \
+                                          MD_CONTEXT_ARM64_FLOATING_POINT_OLD)
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_mips.h b/src/google_breakpad/common/minidump_cpu_mips.h
new file mode 100644
index 0000000..f4e2b58
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_mips.h
@@ -0,0 +1,176 @@
+/* Copyright (c) 2013, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on MIPS.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Chris Dearman
+ */
+
+/*
+ * MIPS support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
+
+#define MD_CONTEXT_MIPS_GPR_COUNT 32
+#define MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT 32
+#define MD_CONTEXT_MIPS_DSP_COUNT 3
+
+/*
+ * Note that these structures *do not* map directly to the CONTEXT
+ * structure defined in WinNT.h in the Windows Mobile SDK. That structure
+ * does not accomodate VFPv3, and I'm unsure if it was ever used in the
+ * wild anyway, as Windows CE only seems to produce "cedumps" which
+ * are not exactly minidumps.
+ */
+typedef struct {
+  /* 32 64-bit floating point registers, f0..f31 */
+  uint64_t regs[MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT];
+
+  uint32_t fpcsr; /* FPU status register. */
+  uint32_t fir; /* FPU implementation register. */
+} MDFloatingSaveAreaMIPS;
+
+typedef struct {
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated.
+   */
+  uint32_t context_flags;
+  uint32_t _pad0;
+
+  /* 32 64-bit integer registers, r0..r31.
+   * Note the following fixed uses:
+   *   r29 is the stack pointer.
+   *   r31 is the return address.
+   */
+  uint64_t iregs[MD_CONTEXT_MIPS_GPR_COUNT];
+
+  /* multiply/divide result. */
+  uint64_t mdhi, mdlo;
+
+  /* DSP accumulators. */
+  uint32_t hi[MD_CONTEXT_MIPS_DSP_COUNT];
+  uint32_t lo[MD_CONTEXT_MIPS_DSP_COUNT];
+  uint32_t dsp_control;
+  uint32_t _pad1;
+
+  uint64_t epc;
+  uint64_t badvaddr;
+  uint32_t status;
+  uint32_t cause;
+
+  /* The next field is included with MD_CONTEXT_MIPS_FLOATING_POINT. */
+  MDFloatingSaveAreaMIPS float_save;
+
+} MDRawContextMIPS;
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDMIPSRegisterNumbers {
+  MD_CONTEXT_MIPS_REG_S0     = 16,
+  MD_CONTEXT_MIPS_REG_S1     = 17,
+  MD_CONTEXT_MIPS_REG_S2     = 18,
+  MD_CONTEXT_MIPS_REG_S3     = 19,
+  MD_CONTEXT_MIPS_REG_S4     = 20,
+  MD_CONTEXT_MIPS_REG_S5     = 21,
+  MD_CONTEXT_MIPS_REG_S6     = 22,
+  MD_CONTEXT_MIPS_REG_S7     = 23,
+  MD_CONTEXT_MIPS_REG_GP     = 28,
+  MD_CONTEXT_MIPS_REG_SP     = 29,
+  MD_CONTEXT_MIPS_REG_FP     = 30,
+  MD_CONTEXT_MIPS_REG_RA     = 31,
+};
+
+/* For (MDRawContextMIPS).context_flags.  These values indicate the type of
+ * context stored in the structure. */
+/* CONTEXT_MIPS from the Windows CE 5.0 SDK. This value isn't correct
+ * because this bit can be used for flags. Presumably this value was
+ * never actually used in minidumps, but only in "CEDumps" which
+ * are a whole parallel minidump file format for Windows CE.
+ * Therefore, Breakpad defines its own value for MIPS CPUs.
+ */
+#define MD_CONTEXT_MIPS  0x00040000
+#define MD_CONTEXT_MIPS_INTEGER           (MD_CONTEXT_MIPS | 0x00000002)
+#define MD_CONTEXT_MIPS_FLOATING_POINT    (MD_CONTEXT_MIPS | 0x00000004)
+#define MD_CONTEXT_MIPS_DSP               (MD_CONTEXT_MIPS | 0x00000008)
+
+#define MD_CONTEXT_MIPS_FULL              (MD_CONTEXT_MIPS_INTEGER | \
+                                           MD_CONTEXT_MIPS_FLOATING_POINT | \
+                                           MD_CONTEXT_MIPS_DSP)
+
+#define MD_CONTEXT_MIPS_ALL               (MD_CONTEXT_MIPS_INTEGER | \
+                                           MD_CONTEXT_MIPS_FLOATING_POINT \
+                                           MD_CONTEXT_MIPS_DSP)
+
+/**
+ * Breakpad defines for MIPS64
+ */
+#define MD_CONTEXT_MIPS64  0x00080000
+#define MD_CONTEXT_MIPS64_INTEGER           (MD_CONTEXT_MIPS64 | 0x00000002)
+#define MD_CONTEXT_MIPS64_FLOATING_POINT    (MD_CONTEXT_MIPS64 | 0x00000004)
+#define MD_CONTEXT_MIPS64_DSP               (MD_CONTEXT_MIPS64 | 0x00000008)
+
+#define MD_CONTEXT_MIPS64_FULL              (MD_CONTEXT_MIPS64_INTEGER | \
+                                             MD_CONTEXT_MIPS64_FLOATING_POINT | \
+                                             MD_CONTEXT_MIPS64_DSP)
+
+#define MD_CONTEXT_MIPS64_ALL               (MD_CONTEXT_MIPS64_INTEGER | \
+                                             MD_CONTEXT_MIPS64_FLOATING_POINT \
+                                             MD_CONTEXT_MIPS64_DSP)
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
diff --git a/src/google_breakpad/common/minidump_cpu_ppc.h b/src/google_breakpad/common/minidump_cpu_ppc.h
new file mode 100644
index 0000000..b24cc42
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_ppc.h
@@ -0,0 +1,168 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ppc.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries.  In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai 
+ * Change to split into its own file: Neal Sidhwaney */
+
+/*
+ * Breakpad minidump extension for PowerPC support.  Based on Darwin/Mac OS X'
+ * mach/ppc/_types.h
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
+
+#define MD_FLOATINGSAVEAREA_PPC_FPR_COUNT 32
+
+typedef struct {
+  /* fpregs is a double[32] in mach/ppc/_types.h, but a uint64_t is used
+   * here for precise sizing. */
+  uint64_t fpregs[MD_FLOATINGSAVEAREA_PPC_FPR_COUNT];
+  uint32_t fpscr_pad;
+  uint32_t fpscr;      /* Status/control */
+} MDFloatingSaveAreaPPC;  /* Based on ppc_float_state */
+
+
+#define MD_VECTORSAVEAREA_PPC_VR_COUNT 32
+
+typedef struct {
+  /* Vector registers (including vscr) are 128 bits, but mach/ppc/_types.h
+   * exposes them as four 32-bit quantities. */
+  uint128_struct save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT];
+  uint128_struct save_vscr;  /* Status/control */
+  uint32_t       save_pad5[4];
+  uint32_t       save_vrvalid;  /* Indicates which vector registers are saved */
+  uint32_t       save_pad6[7];
+} MDVectorSaveAreaPPC;  /* ppc_vector_state */
+
+
+#define MD_CONTEXT_PPC_GPR_COUNT 32
+
+/* Use the same 32-bit alignment when accessing this structure from 64-bit code
+ * as is used natively in 32-bit code.  #pragma pack is a MSVC extension
+ * supported by gcc. */
+#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+#pragma pack(4)
+#else
+#pragma pack(push, 4)
+#endif
+
+typedef struct {
+  /* context_flags is not present in ppc_thread_state, but it aids
+   * identification of MDRawContextPPC among other raw context types,
+   * and it guarantees alignment when we get to float_save. */
+  uint32_t              context_flags;
+
+  uint32_t              srr0;    /* Machine status save/restore: stores pc
+                                  * (instruction) */
+  uint32_t              srr1;    /* Machine status save/restore: stores msr
+                                  * (ps, program/machine state) */
+  /* ppc_thread_state contains 32 fields, r0 .. r31.  Here, an array is
+   * used for brevity. */
+  uint32_t              gpr[MD_CONTEXT_PPC_GPR_COUNT];
+  uint32_t              cr;      /* Condition */
+  uint32_t              xer;     /* Integer (fiXed-point) exception */
+  uint32_t              lr;      /* Link */
+  uint32_t              ctr;     /* Count */
+  uint32_t              mq;      /* Multiply/Quotient (PPC 601, POWER only) */
+  uint32_t              vrsave;  /* Vector save */
+
+  /* float_save and vector_save aren't present in ppc_thread_state, but
+   * are represented in separate structures that still define a thread's
+   * context. */
+  MDFloatingSaveAreaPPC float_save;
+  MDVectorSaveAreaPPC   vector_save;
+} MDRawContextPPC;  /* Based on ppc_thread_state */
+
+/* Indices into gpr for registers with a dedicated or conventional purpose. */
+enum MDPPCRegisterNumbers {
+  MD_CONTEXT_PPC_REG_SP = 1
+};
+
+#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+#pragma pack(0)
+#else
+#pragma pack(pop)
+#endif
+
+/* For (MDRawContextPPC).context_flags.  These values indicate the type of
+ * context stored in the structure.  MD_CONTEXT_PPC is Breakpad-defined.  Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_PPC                0x20000000
+#define MD_CONTEXT_PPC_BASE           (MD_CONTEXT_PPC | 0x00000001)
+#define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008)
+#define MD_CONTEXT_PPC_VECTOR         (MD_CONTEXT_PPC | 0x00000020)
+
+#define MD_CONTEXT_PPC_FULL           MD_CONTEXT_PPC_BASE
+#define MD_CONTEXT_PPC_ALL            (MD_CONTEXT_PPC_FULL | \
+                                       MD_CONTEXT_PPC_FLOATING_POINT | \
+                                       MD_CONTEXT_PPC_VECTOR)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_ppc64.h b/src/google_breakpad/common/minidump_cpu_ppc64.h
new file mode 100644
index 0000000..61f4193
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_ppc64.h
@@ -0,0 +1,134 @@
+/* Copyright (c) 2008, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ppc64.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries.  In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Neal Sidhwaney */
+
+
+/*
+ * Breakpad minidump extension for PPC64 support.  Based on Darwin/Mac OS X'
+ * mach/ppc/_types.h
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
+
+#include "minidump_cpu_ppc.h"
+
+// these types are the same in ppc64 & ppc
+typedef MDFloatingSaveAreaPPC MDFloatingSaveAreaPPC64;
+typedef MDVectorSaveAreaPPC MDVectorSaveAreaPPC64;
+
+#define MD_CONTEXT_PPC64_GPR_COUNT MD_CONTEXT_PPC_GPR_COUNT
+
+typedef struct {
+  /* context_flags is not present in ppc_thread_state, but it aids
+   * identification of MDRawContextPPC among other raw context types,
+   * and it guarantees alignment when we get to float_save. */
+  uint64_t              context_flags;
+
+  uint64_t              srr0;    /* Machine status save/restore: stores pc
+                                  * (instruction) */
+  uint64_t              srr1;    /* Machine status save/restore: stores msr
+                                  * (ps, program/machine state) */
+  /* ppc_thread_state contains 32 fields, r0 .. r31.  Here, an array is
+   * used for brevity. */
+  uint64_t              gpr[MD_CONTEXT_PPC64_GPR_COUNT];
+  uint64_t              cr;      /* Condition */
+  uint64_t              xer;     /* Integer (fiXed-point) exception */
+  uint64_t              lr;      /* Link */
+  uint64_t              ctr;     /* Count */
+  uint64_t              vrsave;  /* Vector save */
+
+  /* float_save and vector_save aren't present in ppc_thread_state, but
+   * are represented in separate structures that still define a thread's
+   * context. */
+  MDFloatingSaveAreaPPC float_save;
+  MDVectorSaveAreaPPC   vector_save;
+} MDRawContextPPC64;  /* Based on ppc_thread_state */
+
+/* Indices into gpr for registers with a dedicated or conventional purpose. */
+enum MDPPC64RegisterNumbers {
+  MD_CONTEXT_PPC64_REG_SP = 1
+};
+
+/* For (MDRawContextPPC).context_flags.  These values indicate the type of
+ * context stored in the structure.  MD_CONTEXT_PPC is Breakpad-defined.  Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_PPC64                0x01000000
+#define MD_CONTEXT_PPC64_BASE           (MD_CONTEXT_PPC64 | 0x00000001)
+#define MD_CONTEXT_PPC64_FLOATING_POINT (MD_CONTEXT_PPC64 | 0x00000008)
+#define MD_CONTEXT_PPC64_VECTOR         (MD_CONTEXT_PPC64 | 0x00000020)
+
+#define MD_CONTEXT_PPC64_FULL           MD_CONTEXT_PPC64_BASE
+#define MD_CONTEXT_PPC64_ALL            (MD_CONTEXT_PPC64_FULL | \
+                                         MD_CONTEXT_PPC64_FLOATING_POINT | \
+                                         MD_CONTEXT_PPC64_VECTOR)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_sparc.h b/src/google_breakpad/common/minidump_cpu_sparc.h
new file mode 100644
index 0000000..95c08b1
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_sparc.h
@@ -0,0 +1,163 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on sparc.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries.  In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai
+ * Change to split into its own file: Neal Sidhwaney */
+
+/*
+ * SPARC support, see (solaris)sys/procfs_isa.h also
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
+
+#define MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT 32
+
+typedef struct {
+
+  /* FPU floating point regs */
+  uint64_t      regs[MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT];
+
+  uint64_t      filler;
+  uint64_t      fsr;        /* FPU status register */
+} MDFloatingSaveAreaSPARC;  /* FLOATING_SAVE_AREA */
+
+#define MD_CONTEXT_SPARC_GPR_COUNT 32
+
+typedef struct {
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated
+   */
+  uint32_t      context_flags;
+  uint32_t      flag_pad;
+  /*
+   * General register access (SPARC).
+   * Don't confuse definitions here with definitions in <sys/regset.h>.
+   * Registers are 32 bits for ILP32, 64 bits for LP64.
+   * SPARC V7/V8 is for 32bit, SPARC V9 is for 64bit
+   */
+
+  /* 32 Integer working registers */
+
+  /* g_r[0-7]   global registers(g0-g7)
+   * g_r[8-15]  out registers(o0-o7)
+   * g_r[16-23] local registers(l0-l7)
+   * g_r[24-31] in registers(i0-i7)
+   */
+  uint64_t     g_r[MD_CONTEXT_SPARC_GPR_COUNT];
+
+  /* several control registers */
+
+  /* Processor State register(PSR) for SPARC V7/V8
+   * Condition Code register (CCR) for SPARC V9
+   */
+  uint64_t     ccr;
+
+  uint64_t     pc;     /* Program Counter register (PC) */
+  uint64_t     npc;    /* Next Program Counter register (nPC) */
+  uint64_t     y;      /* Y register (Y) */
+
+  /* Address Space Identifier register (ASI) for SPARC V9
+   * WIM for SPARC V7/V8
+   */
+  uint64_t     asi;
+
+  /* Floating-Point Registers State register (FPRS) for SPARC V9
+   * TBR for for SPARC V7/V8
+   */
+  uint64_t     fprs;
+
+  /* The next field is included with MD_CONTEXT_SPARC_FLOATING_POINT */
+  MDFloatingSaveAreaSPARC float_save;
+
+} MDRawContextSPARC;  /* CONTEXT_SPARC */
+
+/* Indices into g_r for registers with a dedicated or conventional purpose. */
+enum MDSPARCRegisterNumbers {
+  MD_CONTEXT_SPARC_REG_SP = 14
+};
+
+/* For (MDRawContextSPARC).context_flags.  These values indicate the type of
+ * context stored in the structure.  MD_CONTEXT_SPARC is Breakpad-defined.  Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_SPARC                 0x10000000
+#define MD_CONTEXT_SPARC_CONTROL         (MD_CONTEXT_SPARC | 0x00000001)
+#define MD_CONTEXT_SPARC_INTEGER         (MD_CONTEXT_SPARC | 0x00000002)
+#define MD_CONTEXT_SAPARC_FLOATING_POINT (MD_CONTEXT_SPARC | 0x00000004)
+#define MD_CONTEXT_SAPARC_EXTRA          (MD_CONTEXT_SPARC | 0x00000008)
+
+#define MD_CONTEXT_SPARC_FULL            (MD_CONTEXT_SPARC_CONTROL | \
+                                          MD_CONTEXT_SPARC_INTEGER)
+
+#define MD_CONTEXT_SPARC_ALL             (MD_CONTEXT_SPARC_FULL | \
+                                          MD_CONTEXT_SAPARC_FLOATING_POINT | \
+                                          MD_CONTEXT_SAPARC_EXTRA)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_x86.h b/src/google_breakpad/common/minidump_cpu_x86.h
new file mode 100644
index 0000000..e09cb7c
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_x86.h
@@ -0,0 +1,174 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on x86.  These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used.  The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries.  In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors.  To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
+
+#define MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE 80
+     /* SIZE_OF_80387_REGISTERS */
+
+typedef struct {
+  uint32_t control_word;
+  uint32_t status_word;
+  uint32_t tag_word;
+  uint32_t error_offset;
+  uint32_t error_selector;
+  uint32_t data_offset;
+  uint32_t data_selector;
+
+  /* register_area contains eight 80-bit (x87 "long double") quantities for
+   * floating-point registers %st0 (%mm0) through %st7 (%mm7). */
+  uint8_t  register_area[MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE];
+  uint32_t cr0_npx_state;
+} MDFloatingSaveAreaX86;  /* FLOATING_SAVE_AREA */
+
+
+#define MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE 512
+     /* MAXIMUM_SUPPORTED_EXTENSION */
+
+typedef struct {
+  /* The next field determines the layout of the structure, and which parts
+   * of it are populated */
+  uint32_t             context_flags;
+
+  /* The next 6 registers are included with MD_CONTEXT_X86_DEBUG_REGISTERS */
+  uint32_t             dr0;
+  uint32_t             dr1;
+  uint32_t             dr2;
+  uint32_t             dr3;
+  uint32_t             dr6;
+  uint32_t             dr7;
+
+  /* The next field is included with MD_CONTEXT_X86_FLOATING_POINT */
+  MDFloatingSaveAreaX86 float_save;
+
+  /* The next 4 registers are included with MD_CONTEXT_X86_SEGMENTS */
+  uint32_t             gs; 
+  uint32_t             fs;
+  uint32_t             es;
+  uint32_t             ds;
+  /* The next 6 registers are included with MD_CONTEXT_X86_INTEGER */
+  uint32_t             edi;
+  uint32_t             esi;
+  uint32_t             ebx;
+  uint32_t             edx;
+  uint32_t             ecx;
+  uint32_t             eax;
+
+  /* The next 6 registers are included with MD_CONTEXT_X86_CONTROL */
+  uint32_t             ebp;
+  uint32_t             eip;
+  uint32_t             cs;      /* WinNT.h says "must be sanitized" */
+  uint32_t             eflags;  /* WinNT.h says "must be sanitized" */
+  uint32_t             esp;
+  uint32_t             ss;
+
+  /* The next field is included with MD_CONTEXT_X86_EXTENDED_REGISTERS.
+   * It contains vector (MMX/SSE) registers.  It it laid out in the
+   * format used by the fxsave and fsrstor instructions, so it includes
+   * a copy of the x87 floating-point registers as well.  See FXSAVE in
+   * "Intel Architecture Software Developer's Manual, Volume 2." */
+  uint8_t              extended_registers[
+                         MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE];
+} MDRawContextX86;  /* CONTEXT */
+
+/* For (MDRawContextX86).context_flags.  These values indicate the type of
+ * context stored in the structure.  The high 24 bits identify the CPU, the
+ * low 8 bits identify the type of context saved. */
+#define MD_CONTEXT_X86                    0x00010000
+     /* CONTEXT_i386, CONTEXT_i486: identifies CPU */
+#define MD_CONTEXT_X86_CONTROL            (MD_CONTEXT_X86 | 0x00000001)
+     /* CONTEXT_CONTROL */
+#define MD_CONTEXT_X86_INTEGER            (MD_CONTEXT_X86 | 0x00000002)
+     /* CONTEXT_INTEGER */
+#define MD_CONTEXT_X86_SEGMENTS           (MD_CONTEXT_X86 | 0x00000004)
+     /* CONTEXT_SEGMENTS */
+#define MD_CONTEXT_X86_FLOATING_POINT     (MD_CONTEXT_X86 | 0x00000008)
+     /* CONTEXT_FLOATING_POINT */
+#define MD_CONTEXT_X86_DEBUG_REGISTERS    (MD_CONTEXT_X86 | 0x00000010)
+     /* CONTEXT_DEBUG_REGISTERS */
+#define MD_CONTEXT_X86_EXTENDED_REGISTERS (MD_CONTEXT_X86 | 0x00000020)
+     /* CONTEXT_EXTENDED_REGISTERS */
+#define MD_CONTEXT_X86_XSTATE             (MD_CONTEXT_X86 | 0x00000040)
+     /* CONTEXT_XSTATE */
+
+#define MD_CONTEXT_X86_FULL              (MD_CONTEXT_X86_CONTROL | \
+                                          MD_CONTEXT_X86_INTEGER | \
+                                          MD_CONTEXT_X86_SEGMENTS)
+     /* CONTEXT_FULL */
+
+#define MD_CONTEXT_X86_ALL               (MD_CONTEXT_X86_FULL | \
+                                          MD_CONTEXT_X86_FLOATING_POINT | \
+                                          MD_CONTEXT_X86_DEBUG_REGISTERS | \
+                                          MD_CONTEXT_X86_EXTENDED_REGISTERS)
+     /* CONTEXT_ALL */
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ */
diff --git a/src/google_breakpad/common/minidump_exception_fuchsia.h b/src/google_breakpad/common/minidump_exception_fuchsia.h
new file mode 100644
index 0000000..f26a8a2
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_fuchsia.h
@@ -0,0 +1,58 @@
+/* Copyright (c) 2019, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_fuchsia.h: A definition of exception codes for Fuchsia.
+ *
+ * Author: Ivan Penkov */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+// Based on zircon/system/public/zircon/syscalls/exception.h
+typedef enum {
+  // Architectural exceptions
+  MD_EXCEPTION_CODE_FUCHSIA_GENERAL = 0x8,
+  MD_EXCEPTION_CODE_FUCHSIA_FATAL_PAGE_FAULT = 0x108,
+  MD_EXCEPTION_CODE_FUCHSIA_UNDEFINED_INSTRUCTION = 0x208,
+  MD_EXCEPTION_CODE_FUCHSIA_SW_BREAKPOINT = 0x308,
+  MD_EXCEPTION_CODE_FUCHSIA_HW_BREAKPOINT = 0x408,
+  MD_EXCEPTION_CODE_FUCHSIA_UNALIGNED_ACCESS = 0x508,
+  //
+  // Synthetic exceptions
+  MD_EXCEPTION_CODE_FUCHSIA_THREAD_STARTING = 0x8008,
+  MD_EXCEPTION_CODE_FUCHSIA_THREAD_EXITING = 0x8108,
+  MD_EXCEPTION_CODE_FUCHSIA_POLICY_ERROR = 0x8208,
+  MD_EXCEPTION_CODE_FUCHSIA_PROCESS_STARTING = 0x8308,
+} MDExceptionCodeFuchsia;
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
diff --git a/src/google_breakpad/common/minidump_exception_linux.h b/src/google_breakpad/common/minidump_exception_linux.h
new file mode 100644
index 0000000..6138d5d
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_linux.h
@@ -0,0 +1,125 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_linux.h: A definition of exception codes for
+ * Linux
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+ 
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+/* For (MDException).exception_code.  These values come from bits/signum.h.
+ */
+typedef enum {
+  MD_EXCEPTION_CODE_LIN_SIGHUP = 1,      /* Hangup (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGINT = 2,      /* Interrupt (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGQUIT = 3,     /* Quit (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGILL = 4,      /* Illegal instruction (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGTRAP = 5,     /* Trace trap (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGABRT = 6,     /* Abort (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGBUS = 7,      /* BUS error (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGFPE = 8,      /* Floating-point exception (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGKILL = 9,     /* Kill, unblockable (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGUSR1 = 10,    /* User-defined signal 1 (POSIX).  */
+  MD_EXCEPTION_CODE_LIN_SIGSEGV = 11,    /* Segmentation violation (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGUSR2 = 12,    /* User-defined signal 2 (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGPIPE = 13,    /* Broken pipe (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGALRM = 14,    /* Alarm clock (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGTERM = 15,    /* Termination (ANSI) */
+  MD_EXCEPTION_CODE_LIN_SIGSTKFLT = 16,  /* Stack faultd */
+  MD_EXCEPTION_CODE_LIN_SIGCHLD = 17,    /* Child status has changed (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGCONT = 18,    /* Continue (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGSTOP = 19,    /* Stop, unblockable (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGTSTP = 20,    /* Keyboard stop (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGTTIN = 21,    /* Background read from tty (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGTTOU = 22,    /* Background write to tty (POSIX) */
+  MD_EXCEPTION_CODE_LIN_SIGURG = 23,
+    /* Urgent condition on socket (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGXCPU = 24,    /* CPU limit exceeded (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGXFSZ = 25,
+    /* File size limit exceeded (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGVTALRM = 26,  /* Virtual alarm clock (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGPROF = 27,    /* Profiling alarm clock (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGWINCH = 28,   /* Window size change (4.3 BSD, Sun) */
+  MD_EXCEPTION_CODE_LIN_SIGIO = 29,      /* I/O now possible (4.2 BSD) */
+  MD_EXCEPTION_CODE_LIN_SIGPWR = 30,     /* Power failure restart (System V) */
+  MD_EXCEPTION_CODE_LIN_SIGSYS = 31,     /* Bad system call */
+  MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED = 0xFFFFFFFF /* No exception,
+                                                       dump requested. */
+} MDExceptionCodeLinux;
+
+/* For (MDException).exception_flags.  These values come from
+ * asm-generic/siginfo.h.
+ */
+typedef enum {
+  /* SIGILL */
+  MD_EXCEPTION_FLAG_LIN_ILL_ILLOPC = 1,
+  MD_EXCEPTION_FLAG_LIN_ILL_ILLOPN = 2,
+  MD_EXCEPTION_FLAG_LIN_ILL_ILLADR = 3,
+  MD_EXCEPTION_FLAG_LIN_ILL_ILLTRP = 4,
+  MD_EXCEPTION_FLAG_LIN_ILL_PRVOPC = 5,
+  MD_EXCEPTION_FLAG_LIN_ILL_PRVREG = 6,
+  MD_EXCEPTION_FLAG_LIN_ILL_COPROC = 7,
+  MD_EXCEPTION_FLAG_LIN_ILL_BADSTK = 8,
+
+  /* SIGFPE */
+  MD_EXCEPTION_FLAG_LIN_FPE_INTDIV = 1,
+  MD_EXCEPTION_FLAG_LIN_FPE_INTOVF = 2,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTDIV = 3,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTOVF = 4,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTUND = 5,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTRES = 6,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTINV = 7,
+  MD_EXCEPTION_FLAG_LIN_FPE_FLTSUB = 8,
+
+  /* SIGSEGV */
+  MD_EXCEPTION_FLAG_LIN_SEGV_MAPERR = 1,
+  MD_EXCEPTION_FLAG_LIN_SEGV_ACCERR = 2,
+  MD_EXCEPTION_FLAG_LIN_SEGV_BNDERR = 3,
+  MD_EXCEPTION_FLAG_LIN_SEGV_PKUERR = 4,
+
+  /* SIGBUS */
+  MD_EXCEPTION_FLAG_LIN_BUS_ADRALN = 1,
+  MD_EXCEPTION_FLAG_LIN_BUS_ADRERR = 2,
+  MD_EXCEPTION_FLAG_LIN_BUS_OBJERR = 3,
+  MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AR = 4,
+  MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AO = 5,
+} MDExceptionFlagLinux;
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ */
diff --git a/src/google_breakpad/common/minidump_exception_mac.h b/src/google_breakpad/common/minidump_exception_mac.h
new file mode 100644
index 0000000..fadbf4e
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_mac.h
@@ -0,0 +1,209 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_mac.h: A definition of exception codes for Mac
+ * OS X
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+/* For (MDException).exception_code.  Breakpad minidump extension for Mac OS X
+ * support.  Based on Darwin/Mac OS X' mach/exception_types.h.  This is
+ * what Mac OS X calls an "exception", not a "code". */
+typedef enum {
+  /* Exception code.  The high 16 bits of exception_code contains one of
+   * these values. */
+  MD_EXCEPTION_MAC_BAD_ACCESS      = 1,  /* code can be a kern_return_t */
+      /* EXC_BAD_ACCESS */
+  MD_EXCEPTION_MAC_BAD_INSTRUCTION = 2,  /* code is CPU-specific */
+      /* EXC_BAD_INSTRUCTION */
+  MD_EXCEPTION_MAC_ARITHMETIC      = 3,  /* code is CPU-specific */
+      /* EXC_ARITHMETIC */
+  MD_EXCEPTION_MAC_EMULATION       = 4,  /* code is CPU-specific */
+      /* EXC_EMULATION */
+  MD_EXCEPTION_MAC_SOFTWARE        = 5,
+      /* EXC_SOFTWARE */
+  MD_EXCEPTION_MAC_BREAKPOINT      = 6,  /* code is CPU-specific */
+      /* EXC_BREAKPOINT */
+  MD_EXCEPTION_MAC_SYSCALL         = 7,
+      /* EXC_SYSCALL */
+  MD_EXCEPTION_MAC_MACH_SYSCALL    = 8,
+      /* EXC_MACH_SYSCALL */
+  MD_EXCEPTION_MAC_RPC_ALERT       = 9,
+      /* EXC_RPC_ALERT */
+  MD_EXCEPTION_MAC_SIMULATED       = 0x43507378
+      /* Fake exception code used by Crashpad's SimulateCrash ('CPsx'). */
+} MDExceptionMac;
+
+/* For (MDException).exception_flags.  Breakpad minidump extension for Mac OS X
+ * support.  Based on Darwin/Mac OS X' mach/ppc/exception.h and
+ * mach/i386/exception.h.  This is what Mac OS X calls a "code". */
+typedef enum {
+  /* With MD_EXCEPTION_BAD_ACCESS.  These are relevant kern_return_t values
+   * from mach/kern_return.h. */
+  MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS    =  1,
+      /* KERN_INVALID_ADDRESS */
+  MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE =  2,
+      /* KERN_PROTECTION_FAILURE */
+  MD_EXCEPTION_CODE_MAC_NO_ACCESS          =  8,
+      /* KERN_NO_ACCESS */
+  MD_EXCEPTION_CODE_MAC_MEMORY_FAILURE     =  9,
+      /* KERN_MEMORY_FAILURE */
+  MD_EXCEPTION_CODE_MAC_MEMORY_ERROR       = 10,
+      /* KERN_MEMORY_ERROR */
+  MD_EXCEPTION_CODE_MAC_CODESIGN_ERROR     = 50,
+      /* KERN_CODESIGN_ERROR */
+
+  /* With MD_EXCEPTION_SOFTWARE */
+  MD_EXCEPTION_CODE_MAC_BAD_SYSCALL  = 0x00010000,  /* Mach SIGSYS */
+  MD_EXCEPTION_CODE_MAC_BAD_PIPE     = 0x00010001,  /* Mach SIGPIPE */
+  MD_EXCEPTION_CODE_MAC_ABORT        = 0x00010002,  /* Mach SIGABRT */
+  /* Custom values */
+  MD_EXCEPTION_CODE_MAC_NS_EXCEPTION = 0xDEADC0DE,  /* uncaught NSException */
+
+  /* With MD_EXCEPTION_MAC_BAD_ACCESS on arm */
+  MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN = 0x0101,  /* EXC_ARM_DA_ALIGN */
+  MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG = 0x0102,  /* EXC_ARM_DA_DEBUG */
+
+  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on arm */
+  MD_EXCEPTION_CODE_MAC_ARM_UNDEFINED = 1,  /* EXC_ARM_UNDEFINED */
+
+  /* With MD_EXCEPTION_MAC_BREAKPOINT on arm */
+  MD_EXCEPTION_CODE_MAC_ARM_BREAKPOINT = 1, /* EXC_ARM_BREAKPOINT */
+
+  /* With MD_EXCEPTION_MAC_BAD_ACCESS on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_VM_PROT_READ = 0x0101,
+      /* EXC_PPC_VM_PROT_READ */
+  MD_EXCEPTION_CODE_MAC_PPC_BADSPACE     = 0x0102,
+      /* EXC_PPC_BADSPACE */
+  MD_EXCEPTION_CODE_MAC_PPC_UNALIGNED    = 0x0103,
+      /* EXC_PPC_UNALIGNED */
+
+  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_INVALID_SYSCALL           = 1,
+      /* EXC_PPC_INVALID_SYSCALL */
+  MD_EXCEPTION_CODE_MAC_PPC_UNIMPLEMENTED_INSTRUCTION = 2,
+      /* EXC_PPC_UNIPL_INST */
+  MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_INSTRUCTION    = 3,
+      /* EXC_PPC_PRIVINST */
+  MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_REGISTER       = 4,
+      /* EXC_PPC_PRIVREG */
+  MD_EXCEPTION_CODE_MAC_PPC_TRACE                     = 5,
+      /* EXC_PPC_TRACE */
+  MD_EXCEPTION_CODE_MAC_PPC_PERFORMANCE_MONITOR       = 6,
+      /* EXC_PPC_PERFMON */
+
+  /* With MD_EXCEPTION_MAC_ARITHMETIC on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_OVERFLOW           = 1,
+      /* EXC_PPC_OVERFLOW */
+  MD_EXCEPTION_CODE_MAC_PPC_ZERO_DIVIDE        = 2,
+      /* EXC_PPC_ZERO_DIVIDE */
+  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_INEXACT      = 3,
+      /* EXC_FLT_INEXACT */
+  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_ZERO_DIVIDE  = 4,
+      /* EXC_PPC_FLT_ZERO_DIVIDE */
+  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_UNDERFLOW    = 5,
+      /* EXC_PPC_FLT_UNDERFLOW */
+  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_OVERFLOW     = 6,
+      /* EXC_PPC_FLT_OVERFLOW */
+  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_NOT_A_NUMBER = 7,
+      /* EXC_PPC_FLT_NOT_A_NUMBER */
+
+  /* With MD_EXCEPTION_MAC_EMULATION on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_NO_EMULATION   = 8,
+      /* EXC_PPC_NOEMULATION */
+  MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST = 9,
+      /* EXC_PPC_ALTIVECASSIST */
+
+  /* With MD_EXCEPTION_MAC_SOFTWARE on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_TRAP    = 0x00000001,  /* EXC_PPC_TRAP */
+  MD_EXCEPTION_CODE_MAC_PPC_MIGRATE = 0x00010100,  /* EXC_PPC_MIGRATE */
+
+  /* With MD_EXCEPTION_MAC_BREAKPOINT on ppc */
+  MD_EXCEPTION_CODE_MAC_PPC_BREAKPOINT = 1,  /* EXC_PPC_BREAKPOINT */
+
+  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86, see also x86 interrupt
+   * values below. */
+  MD_EXCEPTION_CODE_MAC_X86_INVALID_OPERATION = 1,  /* EXC_I386_INVOP */
+
+  /* With MD_EXCEPTION_MAC_ARITHMETIC on x86 */
+  MD_EXCEPTION_CODE_MAC_X86_DIV       = 1,  /* EXC_I386_DIV */
+  MD_EXCEPTION_CODE_MAC_X86_INTO      = 2,  /* EXC_I386_INTO */
+  MD_EXCEPTION_CODE_MAC_X86_NOEXT     = 3,  /* EXC_I386_NOEXT */
+  MD_EXCEPTION_CODE_MAC_X86_EXTOVR    = 4,  /* EXC_I386_EXTOVR */
+  MD_EXCEPTION_CODE_MAC_X86_EXTERR    = 5,  /* EXC_I386_EXTERR */
+  MD_EXCEPTION_CODE_MAC_X86_EMERR     = 6,  /* EXC_I386_EMERR */
+  MD_EXCEPTION_CODE_MAC_X86_BOUND     = 7,  /* EXC_I386_BOUND */
+  MD_EXCEPTION_CODE_MAC_X86_SSEEXTERR = 8,  /* EXC_I386_SSEEXTERR */
+
+  /* With MD_EXCEPTION_MAC_BREAKPOINT on x86 */
+  MD_EXCEPTION_CODE_MAC_X86_SGL = 1,  /* EXC_I386_SGL */
+  MD_EXCEPTION_CODE_MAC_X86_BPT = 2,  /* EXC_I386_BPT */
+
+  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86.  These are the raw
+   * x86 interrupt codes.  Most of these are mapped to other Mach
+   * exceptions and codes, are handled, or should not occur in user space.
+   * A few of these will do occur with MD_EXCEPTION_MAC_BAD_INSTRUCTION. */
+  /* EXC_I386_DIVERR    =  0: mapped to EXC_ARITHMETIC/EXC_I386_DIV */
+  /* EXC_I386_SGLSTP    =  1: mapped to EXC_BREAKPOINT/EXC_I386_SGL */
+  /* EXC_I386_NMIFLT    =  2: should not occur in user space */
+  /* EXC_I386_BPTFLT    =  3: mapped to EXC_BREAKPOINT/EXC_I386_BPT */
+  /* EXC_I386_INTOFLT   =  4: mapped to EXC_ARITHMETIC/EXC_I386_INTO */
+  /* EXC_I386_BOUNDFLT  =  5: mapped to EXC_ARITHMETIC/EXC_I386_BOUND */
+  /* EXC_I386_INVOPFLT  =  6: mapped to EXC_BAD_INSTRUCTION/EXC_I386_INVOP */
+  /* EXC_I386_NOEXTFLT  =  7: should be handled by the kernel */
+  /* EXC_I386_DBLFLT    =  8: should be handled (if possible) by the kernel */
+  /* EXC_I386_EXTOVRFLT =  9: mapped to EXC_BAD_ACCESS/(PROT_READ|PROT_EXEC) */
+  MD_EXCEPTION_CODE_MAC_X86_INVALID_TASK_STATE_SEGMENT = 10,
+      /* EXC_INVTSSFLT */
+  MD_EXCEPTION_CODE_MAC_X86_SEGMENT_NOT_PRESENT        = 11,
+      /* EXC_SEGNPFLT */
+  MD_EXCEPTION_CODE_MAC_X86_STACK_FAULT                = 12,
+      /* EXC_STKFLT */
+  MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT   = 13,
+      /* EXC_GPFLT */
+  /* EXC_I386_PGFLT     = 14: should not occur in user space */
+  /* EXC_I386_EXTERRFLT = 16: mapped to EXC_ARITHMETIC/EXC_I386_EXTERR */
+  MD_EXCEPTION_CODE_MAC_X86_ALIGNMENT_FAULT            = 17
+      /* EXC_ALIGNFLT (for vector operations) */
+  /* EXC_I386_ENOEXTFLT = 32: should be handled by the kernel */
+  /* EXC_I386_ENDPERR   = 33: should not occur */
+} MDExceptionCodeMac;
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_OSX_H__ */
diff --git a/src/google_breakpad/common/minidump_exception_ps3.h b/src/google_breakpad/common/minidump_exception_ps3.h
new file mode 100644
index 0000000..adff5a6
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_ps3.h
@@ -0,0 +1,67 @@
+/* Copyright (c) 2013, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_ps3.h: A definition of exception codes for
+ * PS3 */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+typedef enum {
+  MD_EXCEPTION_CODE_PS3_UNKNOWN = 0,
+  MD_EXCEPTION_CODE_PS3_TRAP_EXCEP = 1,
+  MD_EXCEPTION_CODE_PS3_PRIV_INSTR = 2,
+  MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR = 3,
+  MD_EXCEPTION_CODE_PS3_INSTR_STORAGE = 4,
+  MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT = 5,
+  MD_EXCEPTION_CODE_PS3_DATA_STORAGE = 6,
+  MD_EXCEPTION_CODE_PS3_DATA_SEGMENT = 7,
+  MD_EXCEPTION_CODE_PS3_FLOAT_POINT = 8,
+  MD_EXCEPTION_CODE_PS3_DABR_MATCH = 9,
+  MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP = 10,
+  MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS = 11,
+  MD_EXCEPTION_CODE_PS3_COPRO_ALIGN = 12,
+  MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM = 13,
+  MD_EXCEPTION_CODE_PS3_COPRO_ERR = 14,
+  MD_EXCEPTION_CODE_PS3_COPRO_FIR = 15,
+  MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT = 16,
+  MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE = 17,
+  MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR = 18,
+  MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR = 19,
+  MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN = 20,
+  MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS = 21,
+  MD_EXCEPTION_CODE_PS3_GRAPHIC = 22
+} MDExceptionCodePS3;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ */
diff --git a/src/google_breakpad/common/minidump_exception_solaris.h b/src/google_breakpad/common/minidump_exception_solaris.h
new file mode 100644
index 0000000..f18ddf4
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_solaris.h
@@ -0,0 +1,94 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_solaris.h: A definition of exception codes for
+ * Solaris
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+/* For (MDException).exception_code.  These values come from sys/iso/signal_iso.h
+ */
+typedef enum {
+  MD_EXCEPTION_CODE_SOL_SIGHUP = 1,      /* Hangup */
+  MD_EXCEPTION_CODE_SOL_SIGINT = 2,      /* interrupt (rubout) */
+  MD_EXCEPTION_CODE_SOL_SIGQUIT = 3,     /* quit (ASCII FS) */
+  MD_EXCEPTION_CODE_SOL_SIGILL = 4,      /* illegal instruction (not reset when caught) */
+  MD_EXCEPTION_CODE_SOL_SIGTRAP = 5,     /* trace trap (not reset when caught) */
+  MD_EXCEPTION_CODE_SOL_SIGIOT = 6,      /* IOT instruction */
+  MD_EXCEPTION_CODE_SOL_SIGABRT = 6,     /* used by abort, replace SIGIOT in the future */
+  MD_EXCEPTION_CODE_SOL_SIGEMT = 7,      /* EMT instruction */
+  MD_EXCEPTION_CODE_SOL_SIGFPE = 8,      /* floating point exception */
+  MD_EXCEPTION_CODE_SOL_SIGKILL = 9,     /* kill (cannot be caught or ignored) */
+  MD_EXCEPTION_CODE_SOL_SIGBUS = 10,     /* bus error */
+  MD_EXCEPTION_CODE_SOL_SIGSEGV = 11,    /* segmentation violation */
+  MD_EXCEPTION_CODE_SOL_SIGSYS = 12,     /* bad argument to system call */
+  MD_EXCEPTION_CODE_SOL_SIGPIPE = 13,    /* write on a pipe with no one to read it */
+  MD_EXCEPTION_CODE_SOL_SIGALRM = 14,    /* alarm clock */
+  MD_EXCEPTION_CODE_SOL_SIGTERM = 15,    /* software termination signal from kill */
+  MD_EXCEPTION_CODE_SOL_SIGUSR1 = 16,    /* user defined signal 1 */
+  MD_EXCEPTION_CODE_SOL_SIGUSR2 = 17,    /* user defined signal 2 */
+  MD_EXCEPTION_CODE_SOL_SIGCLD = 18,     /* child status change */
+  MD_EXCEPTION_CODE_SOL_SIGCHLD = 18,    /* child status change alias (POSIX) */
+  MD_EXCEPTION_CODE_SOL_SIGPWR = 19,     /* power-fail restart */
+  MD_EXCEPTION_CODE_SOL_SIGWINCH = 20,   /* window size change */
+  MD_EXCEPTION_CODE_SOL_SIGURG = 21,     /* urgent socket condition */
+  MD_EXCEPTION_CODE_SOL_SIGPOLL = 22,    /* pollable event occurred */
+  MD_EXCEPTION_CODE_SOL_SIGIO = 22,      /* socket I/O possible (SIGPOLL alias) */
+  MD_EXCEPTION_CODE_SOL_SIGSTOP = 23,    /* stop (cannot be caught or ignored) */
+  MD_EXCEPTION_CODE_SOL_SIGTSTP = 24,    /* user stop requested from tty */
+  MD_EXCEPTION_CODE_SOL_SIGCONT = 25,    /* stopped process has been continued */
+  MD_EXCEPTION_CODE_SOL_SIGTTIN = 26,    /* background tty read attempted */
+  MD_EXCEPTION_CODE_SOL_SIGTTOU = 27,    /* background tty write attempted */
+  MD_EXCEPTION_CODE_SOL_SIGVTALRM = 28,  /* virtual timer expired */
+  MD_EXCEPTION_CODE_SOL_SIGPROF = 29,    /* profiling timer expired */
+  MD_EXCEPTION_CODE_SOL_SIGXCPU = 30,    /* exceeded cpu limit */
+  MD_EXCEPTION_CODE_SOL_SIGXFSZ = 31,    /* exceeded file size limit */
+  MD_EXCEPTION_CODE_SOL_SIGWAITING = 32, /* reserved signal no longer used by threading code */
+  MD_EXCEPTION_CODE_SOL_SIGLWP = 33,     /* reserved signal no longer used by threading code */
+  MD_EXCEPTION_CODE_SOL_SIGFREEZE = 34,  /* special signal used by CPR */
+  MD_EXCEPTION_CODE_SOL_SIGTHAW = 35,    /* special signal used by CPR */
+  MD_EXCEPTION_CODE_SOL_SIGCANCEL = 36,  /* reserved signal for thread cancellation */
+  MD_EXCEPTION_CODE_SOL_SIGLOST = 37,    /* resource lost (eg, record-lock lost) */
+  MD_EXCEPTION_CODE_SOL_SIGXRES = 38,    /* resource control exceeded */
+  MD_EXCEPTION_CODE_SOL_SIGJVM1 = 39,    /* reserved signal for Java Virtual Machine */
+  MD_EXCEPTION_CODE_SOL_SIGJVM2 = 40     /* reserved signal for Java Virtual Machine */
+} MDExceptionCodeSolaris;
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ */
diff --git a/src/google_breakpad/common/minidump_exception_win32.h b/src/google_breakpad/common/minidump_exception_win32.h
new file mode 100644
index 0000000..4b5d57c
--- /dev/null
+++ b/src/google_breakpad/common/minidump_exception_win32.h
@@ -0,0 +1,2269 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_win32.h: Definitions of exception codes for
+ * Win32 platform
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+/* For (MDException).exception_code.  These values come from WinBase.h
+ * and WinNT.h (names beginning with EXCEPTION_ are in WinBase.h,
+ * they are STATUS_ in WinNT.h). */
+typedef enum {
+  MD_EXCEPTION_CODE_WIN_CONTROL_C                = 0x40010005,
+      /* DBG_CONTROL_C */
+  MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION     = 0x80000001,
+      /* EXCEPTION_GUARD_PAGE */
+  MD_EXCEPTION_CODE_WIN_DATATYPE_MISALIGNMENT    = 0x80000002,
+      /* EXCEPTION_DATATYPE_MISALIGNMENT */
+  MD_EXCEPTION_CODE_WIN_BREAKPOINT               = 0x80000003,
+      /* EXCEPTION_BREAKPOINT */
+  MD_EXCEPTION_CODE_WIN_SINGLE_STEP              = 0x80000004,
+      /* EXCEPTION_SINGLE_STEP */
+  MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION         = 0xc0000005,
+      /* EXCEPTION_ACCESS_VIOLATION */
+  MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR            = 0xc0000006,
+      /* EXCEPTION_IN_PAGE_ERROR */
+  MD_EXCEPTION_CODE_WIN_INVALID_HANDLE           = 0xc0000008,
+      /* EXCEPTION_INVALID_HANDLE */
+  MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION      = 0xc000001d,
+      /* EXCEPTION_ILLEGAL_INSTRUCTION */
+  MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION = 0xc0000025,
+      /* EXCEPTION_NONCONTINUABLE_EXCEPTION */
+  MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION      = 0xc0000026,
+      /* EXCEPTION_INVALID_DISPOSITION */
+  MD_EXCEPTION_CODE_WIN_ARRAY_BOUNDS_EXCEEDED    = 0xc000008c,
+      /* EXCEPTION_BOUNDS_EXCEEDED */
+  MD_EXCEPTION_CODE_WIN_FLOAT_DENORMAL_OPERAND   = 0xc000008d,
+      /* EXCEPTION_FLT_DENORMAL_OPERAND */
+  MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO     = 0xc000008e,
+      /* EXCEPTION_FLT_DIVIDE_BY_ZERO */
+  MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT     = 0xc000008f,
+      /* EXCEPTION_FLT_INEXACT_RESULT */
+  MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION  = 0xc0000090,
+      /* EXCEPTION_FLT_INVALID_OPERATION */
+  MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW           = 0xc0000091,
+      /* EXCEPTION_FLT_OVERFLOW */
+  MD_EXCEPTION_CODE_WIN_FLOAT_STACK_CHECK        = 0xc0000092,
+      /* EXCEPTION_FLT_STACK_CHECK */
+  MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW          = 0xc0000093,
+      /* EXCEPTION_FLT_UNDERFLOW */
+  MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO   = 0xc0000094,
+      /* EXCEPTION_INT_DIVIDE_BY_ZERO */
+  MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW         = 0xc0000095,
+      /* EXCEPTION_INT_OVERFLOW */
+  MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION   = 0xc0000096,
+      /* EXCEPTION_PRIV_INSTRUCTION */
+  MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW           = 0xc00000fd,
+      /* EXCEPTION_STACK_OVERFLOW */
+  MD_EXCEPTION_CODE_WIN_BAD_FUNCTION_TABLE       = 0xc00000ff,
+      /* EXCEPTION_BAD_FUNCTION_TABLE */
+  MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK        = 0xc0000194,
+      /* EXCEPTION_POSSIBLE_DEADLOCK */
+  MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN     = 0xc0000409,
+      /* STATUS_STACK_BUFFER_OVERRUN */
+  MD_EXCEPTION_CODE_WIN_HEAP_CORRUPTION          = 0xc0000374,
+      /* STATUS_HEAP_CORRUPTION */
+  MD_EXCEPTION_OUT_OF_MEMORY                     = 0xe0000008,
+      /* Exception thrown by Chromium allocators to indicate OOM.
+	     See base/process/memory.h in Chromium for rationale. */
+  MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION  = 0xe06d7363,
+      /* Per http://support.microsoft.com/kb/185294,
+         generated by Visual C++ compiler */
+  MD_EXCEPTION_CODE_WIN_SIMULATED                = 0x0517a7ed
+      /* Fake exception code used by Crashpad's
+         CrashpadClient::DumpWithoutCrash. */
+} MDExceptionCodeWin;
+
+
+/* For (MDException).exception_information[2], when (MDException).exception_code
+ * is MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR. This describes the underlying reason
+ * for the error. These values come from ntstatus.h.
+ *
+ * The content of this enum was created from ntstatus.h in the 8.1 SDK with
+ *
+ * egrep '#define [A-Z_0-9]+\s+\(\(NTSTATUS\)0xC[0-9A-F]+L\)' ntstatus.h
+ * | tr -d '\r'
+ * | sed -r 's@#define ([A-Z_0-9]+)\s+\(\(NTSTATUS\)(0xC[0-9A-F]+)L\).*@\2 \1@'
+ * | sort
+ * | sed -r 's@(0xC[0-9A-F]+) ([A-Z_0-9]+)@  MD_NTSTATUS_WIN_\2 = \1,@'
+ *
+ * With easy copy to clipboard with
+ * | xclip -selection c  # on linux
+ * | clip  # on windows
+ * | pbcopy  # on mac
+ *
+ * and then the last comma manually removed. */
+typedef enum {
+  MD_NTSTATUS_WIN_STATUS_UNSUCCESSFUL = 0xC0000001,
+  MD_NTSTATUS_WIN_STATUS_NOT_IMPLEMENTED = 0xC0000002,
+  MD_NTSTATUS_WIN_STATUS_INVALID_INFO_CLASS = 0xC0000003,
+  MD_NTSTATUS_WIN_STATUS_INFO_LENGTH_MISMATCH = 0xC0000004,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_VIOLATION = 0xC0000005,
+  MD_NTSTATUS_WIN_STATUS_IN_PAGE_ERROR = 0xC0000006,
+  MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA = 0xC0000007,
+  MD_NTSTATUS_WIN_STATUS_INVALID_HANDLE = 0xC0000008,
+  MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_STACK = 0xC0000009,
+  MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_PC = 0xC000000A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_CID = 0xC000000B,
+  MD_NTSTATUS_WIN_STATUS_TIMER_NOT_CANCELED = 0xC000000C,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER = 0xC000000D,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_DEVICE = 0xC000000E,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_FILE = 0xC000000F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_REQUEST = 0xC0000010,
+  MD_NTSTATUS_WIN_STATUS_END_OF_FILE = 0xC0000011,
+  MD_NTSTATUS_WIN_STATUS_WRONG_VOLUME = 0xC0000012,
+  MD_NTSTATUS_WIN_STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013,
+  MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_MEDIA = 0xC0000014,
+  MD_NTSTATUS_WIN_STATUS_NONEXISTENT_SECTOR = 0xC0000015,
+  MD_NTSTATUS_WIN_STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016,
+  MD_NTSTATUS_WIN_STATUS_NO_MEMORY = 0xC0000017,
+  MD_NTSTATUS_WIN_STATUS_CONFLICTING_ADDRESSES = 0xC0000018,
+  MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_VIEW = 0xC0000019,
+  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_FREE_VM = 0xC000001A,
+  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DELETE_SECTION = 0xC000001B,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_INSTRUCTION = 0xC000001D,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E,
+  MD_NTSTATUS_WIN_STATUS_INVALID_VIEW_SIZE = 0xC000001F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_FILE_FOR_SECTION = 0xC0000020,
+  MD_NTSTATUS_WIN_STATUS_ALREADY_COMMITTED = 0xC0000021,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DENIED = 0xC0000022,
+  MD_NTSTATUS_WIN_STATUS_BUFFER_TOO_SMALL = 0xC0000023,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024,
+  MD_NTSTATUS_WIN_STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DISPOSITION = 0xC0000026,
+  MD_NTSTATUS_WIN_STATUS_UNWIND = 0xC0000027,
+  MD_NTSTATUS_WIN_STATUS_BAD_STACK = 0xC0000028,
+  MD_NTSTATUS_WIN_STATUS_INVALID_UNWIND_TARGET = 0xC0000029,
+  MD_NTSTATUS_WIN_STATUS_NOT_LOCKED = 0xC000002A,
+  MD_NTSTATUS_WIN_STATUS_PARITY_ERROR = 0xC000002B,
+  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DECOMMIT_VM = 0xC000002C,
+  MD_NTSTATUS_WIN_STATUS_NOT_COMMITTED = 0xC000002D,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PORT_ATTRIBUTES = 0xC000002E,
+  MD_NTSTATUS_WIN_STATUS_PORT_MESSAGE_TOO_LONG = 0xC000002F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_MIX = 0xC0000030,
+  MD_NTSTATUS_WIN_STATUS_INVALID_QUOTA_LOWER = 0xC0000031,
+  MD_NTSTATUS_WIN_STATUS_DISK_CORRUPT_ERROR = 0xC0000032,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_INVALID = 0xC0000033,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_COLLISION = 0xC0000035,
+  MD_NTSTATUS_WIN_STATUS_PORT_DISCONNECTED = 0xC0000037,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_ALREADY_ATTACHED = 0xC0000038,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_INVALID = 0xC0000039,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B,
+  MD_NTSTATUS_WIN_STATUS_DATA_OVERRUN = 0xC000003C,
+  MD_NTSTATUS_WIN_STATUS_DATA_LATE_ERROR = 0xC000003D,
+  MD_NTSTATUS_WIN_STATUS_DATA_ERROR = 0xC000003E,
+  MD_NTSTATUS_WIN_STATUS_CRC_ERROR = 0xC000003F,
+  MD_NTSTATUS_WIN_STATUS_SECTION_TOO_BIG = 0xC0000040,
+  MD_NTSTATUS_WIN_STATUS_PORT_CONNECTION_REFUSED = 0xC0000041,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PORT_HANDLE = 0xC0000042,
+  MD_NTSTATUS_WIN_STATUS_SHARING_VIOLATION = 0xC0000043,
+  MD_NTSTATUS_WIN_STATUS_QUOTA_EXCEEDED = 0xC0000044,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PAGE_PROTECTION = 0xC0000045,
+  MD_NTSTATUS_WIN_STATUS_MUTANT_NOT_OWNED = 0xC0000046,
+  MD_NTSTATUS_WIN_STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC0000047,
+  MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_SET = 0xC0000048,
+  MD_NTSTATUS_WIN_STATUS_SECTION_NOT_IMAGE = 0xC0000049,
+  MD_NTSTATUS_WIN_STATUS_SUSPEND_COUNT_EXCEEDED = 0xC000004A,
+  MD_NTSTATUS_WIN_STATUS_THREAD_IS_TERMINATING = 0xC000004B,
+  MD_NTSTATUS_WIN_STATUS_BAD_WORKING_SET_LIMIT = 0xC000004C,
+  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_FILE_MAP = 0xC000004D,
+  MD_NTSTATUS_WIN_STATUS_SECTION_PROTECTION = 0xC000004E,
+  MD_NTSTATUS_WIN_STATUS_EAS_NOT_SUPPORTED = 0xC000004F,
+  MD_NTSTATUS_WIN_STATUS_EA_TOO_LARGE = 0xC0000050,
+  MD_NTSTATUS_WIN_STATUS_NONEXISTENT_EA_ENTRY = 0xC0000051,
+  MD_NTSTATUS_WIN_STATUS_NO_EAS_ON_FILE = 0xC0000052,
+  MD_NTSTATUS_WIN_STATUS_EA_CORRUPT_ERROR = 0xC0000053,
+  MD_NTSTATUS_WIN_STATUS_FILE_LOCK_CONFLICT = 0xC0000054,
+  MD_NTSTATUS_WIN_STATUS_LOCK_NOT_GRANTED = 0xC0000055,
+  MD_NTSTATUS_WIN_STATUS_DELETE_PENDING = 0xC0000056,
+  MD_NTSTATUS_WIN_STATUS_CTL_FILE_NOT_SUPPORTED = 0xC0000057,
+  MD_NTSTATUS_WIN_STATUS_UNKNOWN_REVISION = 0xC0000058,
+  MD_NTSTATUS_WIN_STATUS_REVISION_MISMATCH = 0xC0000059,
+  MD_NTSTATUS_WIN_STATUS_INVALID_OWNER = 0xC000005A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PRIMARY_GROUP = 0xC000005B,
+  MD_NTSTATUS_WIN_STATUS_NO_IMPERSONATION_TOKEN = 0xC000005C,
+  MD_NTSTATUS_WIN_STATUS_CANT_DISABLE_MANDATORY = 0xC000005D,
+  MD_NTSTATUS_WIN_STATUS_NO_LOGON_SERVERS = 0xC000005E,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_LOGON_SESSION = 0xC000005F,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_PRIVILEGE = 0xC0000060,
+  MD_NTSTATUS_WIN_STATUS_PRIVILEGE_NOT_HELD = 0xC0000061,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ACCOUNT_NAME = 0xC0000062,
+  MD_NTSTATUS_WIN_STATUS_USER_EXISTS = 0xC0000063,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_USER = 0xC0000064,
+  MD_NTSTATUS_WIN_STATUS_GROUP_EXISTS = 0xC0000065,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_GROUP = 0xC0000066,
+  MD_NTSTATUS_WIN_STATUS_MEMBER_IN_GROUP = 0xC0000067,
+  MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_GROUP = 0xC0000068,
+  MD_NTSTATUS_WIN_STATUS_LAST_ADMIN = 0xC0000069,
+  MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD = 0xC000006A,
+  MD_NTSTATUS_WIN_STATUS_ILL_FORMED_PASSWORD = 0xC000006B,
+  MD_NTSTATUS_WIN_STATUS_PASSWORD_RESTRICTION = 0xC000006C,
+  MD_NTSTATUS_WIN_STATUS_LOGON_FAILURE = 0xC000006D,
+  MD_NTSTATUS_WIN_STATUS_ACCOUNT_RESTRICTION = 0xC000006E,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_HOURS = 0xC000006F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_WORKSTATION = 0xC0000070,
+  MD_NTSTATUS_WIN_STATUS_PASSWORD_EXPIRED = 0xC0000071,
+  MD_NTSTATUS_WIN_STATUS_ACCOUNT_DISABLED = 0xC0000072,
+  MD_NTSTATUS_WIN_STATUS_NONE_MAPPED = 0xC0000073,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_LUIDS_REQUESTED = 0xC0000074,
+  MD_NTSTATUS_WIN_STATUS_LUIDS_EXHAUSTED = 0xC0000075,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SUB_AUTHORITY = 0xC0000076,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ACL = 0xC0000077,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SID = 0xC0000078,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SECURITY_DESCR = 0xC0000079,
+  MD_NTSTATUS_WIN_STATUS_PROCEDURE_NOT_FOUND = 0xC000007A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_FORMAT = 0xC000007B,
+  MD_NTSTATUS_WIN_STATUS_NO_TOKEN = 0xC000007C,
+  MD_NTSTATUS_WIN_STATUS_BAD_INHERITANCE_ACL = 0xC000007D,
+  MD_NTSTATUS_WIN_STATUS_RANGE_NOT_LOCKED = 0xC000007E,
+  MD_NTSTATUS_WIN_STATUS_DISK_FULL = 0xC000007F,
+  MD_NTSTATUS_WIN_STATUS_SERVER_DISABLED = 0xC0000080,
+  MD_NTSTATUS_WIN_STATUS_SERVER_NOT_DISABLED = 0xC0000081,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_GUIDS_REQUESTED = 0xC0000082,
+  MD_NTSTATUS_WIN_STATUS_GUIDS_EXHAUSTED = 0xC0000083,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ID_AUTHORITY = 0xC0000084,
+  MD_NTSTATUS_WIN_STATUS_AGENTS_EXHAUSTED = 0xC0000085,
+  MD_NTSTATUS_WIN_STATUS_INVALID_VOLUME_LABEL = 0xC0000086,
+  MD_NTSTATUS_WIN_STATUS_SECTION_NOT_EXTENDED = 0xC0000087,
+  MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_DATA = 0xC0000088,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_DATA_NOT_FOUND = 0xC0000089,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_TYPE_NOT_FOUND = 0xC000008A,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_NAME_NOT_FOUND = 0xC000008B,
+  MD_NTSTATUS_WIN_STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_INEXACT_RESULT = 0xC000008F,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_INVALID_OPERATION = 0xC0000090,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_OVERFLOW = 0xC0000091,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_STACK_CHECK = 0xC0000092,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_UNDERFLOW = 0xC0000093,
+  MD_NTSTATUS_WIN_STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094,
+  MD_NTSTATUS_WIN_STATUS_INTEGER_OVERFLOW = 0xC0000095,
+  MD_NTSTATUS_WIN_STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_PAGING_FILES = 0xC0000097,
+  MD_NTSTATUS_WIN_STATUS_FILE_INVALID = 0xC0000098,
+  MD_NTSTATUS_WIN_STATUS_ALLOTTED_SPACE_EXCEEDED = 0xC0000099,
+  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCES = 0xC000009A,
+  MD_NTSTATUS_WIN_STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_DATA_ERROR = 0xC000009C,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_CONNECTED = 0xC000009D,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_FAILURE = 0xC000009E,
+  MD_NTSTATUS_WIN_STATUS_FREE_VM_NOT_AT_BASE = 0xC000009F,
+  MD_NTSTATUS_WIN_STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0,
+  MD_NTSTATUS_WIN_STATUS_WORKING_SET_QUOTA = 0xC00000A1,
+  MD_NTSTATUS_WIN_STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_READY = 0xC00000A3,
+  MD_NTSTATUS_WIN_STATUS_INVALID_GROUP_ATTRIBUTES = 0xC00000A4,
+  MD_NTSTATUS_WIN_STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5,
+  MD_NTSTATUS_WIN_STATUS_CANT_OPEN_ANONYMOUS = 0xC00000A6,
+  MD_NTSTATUS_WIN_STATUS_BAD_VALIDATION_CLASS = 0xC00000A7,
+  MD_NTSTATUS_WIN_STATUS_BAD_TOKEN_TYPE = 0xC00000A8,
+  MD_NTSTATUS_WIN_STATUS_BAD_MASTER_BOOT_RECORD = 0xC00000A9,
+  MD_NTSTATUS_WIN_STATUS_INSTRUCTION_MISALIGNMENT = 0xC00000AA,
+  MD_NTSTATUS_WIN_STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB,
+  MD_NTSTATUS_WIN_STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PIPE_STATE = 0xC00000AD,
+  MD_NTSTATUS_WIN_STATUS_PIPE_BUSY = 0xC00000AE,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_FUNCTION = 0xC00000AF,
+  MD_NTSTATUS_WIN_STATUS_PIPE_DISCONNECTED = 0xC00000B0,
+  MD_NTSTATUS_WIN_STATUS_PIPE_CLOSING = 0xC00000B1,
+  MD_NTSTATUS_WIN_STATUS_PIPE_CONNECTED = 0xC00000B2,
+  MD_NTSTATUS_WIN_STATUS_PIPE_LISTENING = 0xC00000B3,
+  MD_NTSTATUS_WIN_STATUS_INVALID_READ_MODE = 0xC00000B4,
+  MD_NTSTATUS_WIN_STATUS_IO_TIMEOUT = 0xC00000B5,
+  MD_NTSTATUS_WIN_STATUS_FILE_FORCED_CLOSED = 0xC00000B6,
+  MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STARTED = 0xC00000B7,
+  MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STOPPED = 0xC00000B8,
+  MD_NTSTATUS_WIN_STATUS_COULD_NOT_INTERPRET = 0xC00000B9,
+  MD_NTSTATUS_WIN_STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA,
+  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED = 0xC00000BB,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_NOT_LISTENING = 0xC00000BC,
+  MD_NTSTATUS_WIN_STATUS_DUPLICATE_NAME = 0xC00000BD,
+  MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_PATH = 0xC00000BE,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_BUSY = 0xC00000BF,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_DOES_NOT_EXIST = 0xC00000C0,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_COMMANDS = 0xC00000C1,
+  MD_NTSTATUS_WIN_STATUS_ADAPTER_HARDWARE_ERROR = 0xC00000C2,
+  MD_NTSTATUS_WIN_STATUS_INVALID_NETWORK_RESPONSE = 0xC00000C3,
+  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4,
+  MD_NTSTATUS_WIN_STATUS_BAD_REMOTE_ADAPTER = 0xC00000C5,
+  MD_NTSTATUS_WIN_STATUS_PRINT_QUEUE_FULL = 0xC00000C6,
+  MD_NTSTATUS_WIN_STATUS_NO_SPOOL_SPACE = 0xC00000C7,
+  MD_NTSTATUS_WIN_STATUS_PRINT_CANCELLED = 0xC00000C8,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_NAME_DELETED = 0xC00000C9,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA,
+  MD_NTSTATUS_WIN_STATUS_BAD_DEVICE_TYPE = 0xC00000CB,
+  MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_NAME = 0xC00000CC,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_NAMES = 0xC00000CD,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SESSIONS = 0xC00000CE,
+  MD_NTSTATUS_WIN_STATUS_SHARING_PAUSED = 0xC00000CF,
+  MD_NTSTATUS_WIN_STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0,
+  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_PAUSED = 0xC00000D1,
+  MD_NTSTATUS_WIN_STATUS_NET_WRITE_FAULT = 0xC00000D2,
+  MD_NTSTATUS_WIN_STATUS_PROFILING_AT_LIMIT = 0xC00000D3,
+  MD_NTSTATUS_WIN_STATUS_NOT_SAME_DEVICE = 0xC00000D4,
+  MD_NTSTATUS_WIN_STATUS_FILE_RENAMED = 0xC00000D5,
+  MD_NTSTATUS_WIN_STATUS_VIRTUAL_CIRCUIT_CLOSED = 0xC00000D6,
+  MD_NTSTATUS_WIN_STATUS_NO_SECURITY_ON_OBJECT = 0xC00000D7,
+  MD_NTSTATUS_WIN_STATUS_CANT_WAIT = 0xC00000D8,
+  MD_NTSTATUS_WIN_STATUS_PIPE_EMPTY = 0xC00000D9,
+  MD_NTSTATUS_WIN_STATUS_CANT_ACCESS_DOMAIN_INFO = 0xC00000DA,
+  MD_NTSTATUS_WIN_STATUS_CANT_TERMINATE_SELF = 0xC00000DB,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SERVER_STATE = 0xC00000DC,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_STATE = 0xC00000DD,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_ROLE = 0xC00000DE,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_DOMAIN = 0xC00000DF,
+  MD_NTSTATUS_WIN_STATUS_DOMAIN_EXISTS = 0xC00000E0,
+  MD_NTSTATUS_WIN_STATUS_DOMAIN_LIMIT_EXCEEDED = 0xC00000E1,
+  MD_NTSTATUS_WIN_STATUS_OPLOCK_NOT_GRANTED = 0xC00000E2,
+  MD_NTSTATUS_WIN_STATUS_INVALID_OPLOCK_PROTOCOL = 0xC00000E3,
+  MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_CORRUPTION = 0xC00000E4,
+  MD_NTSTATUS_WIN_STATUS_INTERNAL_ERROR = 0xC00000E5,
+  MD_NTSTATUS_WIN_STATUS_GENERIC_NOT_MAPPED = 0xC00000E6,
+  MD_NTSTATUS_WIN_STATUS_BAD_DESCRIPTOR_FORMAT = 0xC00000E7,
+  MD_NTSTATUS_WIN_STATUS_INVALID_USER_BUFFER = 0xC00000E8,
+  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_IO_ERROR = 0xC00000E9,
+  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_CREATE_ERR = 0xC00000EA,
+  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_MAP_ERROR = 0xC00000EB,
+  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_EXTEND_ERR = 0xC00000EC,
+  MD_NTSTATUS_WIN_STATUS_NOT_LOGON_PROCESS = 0xC00000ED,
+  MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_EXISTS = 0xC00000EE,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_1 = 0xC00000EF,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_2 = 0xC00000F0,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_3 = 0xC00000F1,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_4 = 0xC00000F2,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_5 = 0xC00000F3,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_6 = 0xC00000F4,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_7 = 0xC00000F5,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_8 = 0xC00000F6,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_9 = 0xC00000F7,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_10 = 0xC00000F8,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_11 = 0xC00000F9,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_12 = 0xC00000FA,
+  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB,
+  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_STARTED = 0xC00000FC,
+  MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW = 0xC00000FD,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_PACKAGE = 0xC00000FE,
+  MD_NTSTATUS_WIN_STATUS_BAD_FUNCTION_TABLE = 0xC00000FF,
+  MD_NTSTATUS_WIN_STATUS_VARIABLE_NOT_FOUND = 0xC0000100,
+  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101,
+  MD_NTSTATUS_WIN_STATUS_FILE_CORRUPT_ERROR = 0xC0000102,
+  MD_NTSTATUS_WIN_STATUS_NOT_A_DIRECTORY = 0xC0000103,
+  MD_NTSTATUS_WIN_STATUS_BAD_LOGON_SESSION_STATE = 0xC0000104,
+  MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_COLLISION = 0xC0000105,
+  MD_NTSTATUS_WIN_STATUS_NAME_TOO_LONG = 0xC0000106,
+  MD_NTSTATUS_WIN_STATUS_FILES_OPEN = 0xC0000107,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_IN_USE = 0xC0000108,
+  MD_NTSTATUS_WIN_STATUS_MESSAGE_NOT_FOUND = 0xC0000109,
+  MD_NTSTATUS_WIN_STATUS_PROCESS_IS_TERMINATING = 0xC000010A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_TYPE = 0xC000010B,
+  MD_NTSTATUS_WIN_STATUS_NO_GUID_TRANSLATION = 0xC000010C,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_IMPERSONATE = 0xC000010D,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED = 0xC000010E,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_PRESENT = 0xC000010F,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_LID_NOT_EXIST = 0xC0000110,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_LID_ALREADY_OWNED = 0xC0000111,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_LID_OWNER = 0xC0000112,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_COMMAND = 0xC0000113,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_LID = 0xC0000114,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE = 0xC0000115,
+  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_SELECTOR = 0xC0000116,
+  MD_NTSTATUS_WIN_STATUS_NO_LDT = 0xC0000117,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_SIZE = 0xC0000118,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_OFFSET = 0xC0000119,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_DESCRIPTOR = 0xC000011A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NE_FORMAT = 0xC000011B,
+  MD_NTSTATUS_WIN_STATUS_RXACT_INVALID_STATE = 0xC000011C,
+  MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_FAILURE = 0xC000011D,
+  MD_NTSTATUS_WIN_STATUS_MAPPED_FILE_SIZE_ZERO = 0xC000011E,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_OPENED_FILES = 0xC000011F,
+  MD_NTSTATUS_WIN_STATUS_CANCELLED = 0xC0000120,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_DELETE = 0xC0000121,
+  MD_NTSTATUS_WIN_STATUS_INVALID_COMPUTER_NAME = 0xC0000122,
+  MD_NTSTATUS_WIN_STATUS_FILE_DELETED = 0xC0000123,
+  MD_NTSTATUS_WIN_STATUS_SPECIAL_ACCOUNT = 0xC0000124,
+  MD_NTSTATUS_WIN_STATUS_SPECIAL_GROUP = 0xC0000125,
+  MD_NTSTATUS_WIN_STATUS_SPECIAL_USER = 0xC0000126,
+  MD_NTSTATUS_WIN_STATUS_MEMBERS_PRIMARY_GROUP = 0xC0000127,
+  MD_NTSTATUS_WIN_STATUS_FILE_CLOSED = 0xC0000128,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_THREADS = 0xC0000129,
+  MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_PROCESS = 0xC000012A,
+  MD_NTSTATUS_WIN_STATUS_TOKEN_ALREADY_IN_USE = 0xC000012B,
+  MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA_EXCEEDED = 0xC000012C,
+  MD_NTSTATUS_WIN_STATUS_COMMITMENT_LIMIT = 0xC000012D,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_LE_FORMAT = 0xC000012E,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NOT_MZ = 0xC000012F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_PROTECT = 0xC0000130,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_16 = 0xC0000131,
+  MD_NTSTATUS_WIN_STATUS_LOGON_SERVER_CONFLICT = 0xC0000132,
+  MD_NTSTATUS_WIN_STATUS_TIME_DIFFERENCE_AT_DC = 0xC0000133,
+  MD_NTSTATUS_WIN_STATUS_SYNCHRONIZATION_REQUIRED = 0xC0000134,
+  MD_NTSTATUS_WIN_STATUS_DLL_NOT_FOUND = 0xC0000135,
+  MD_NTSTATUS_WIN_STATUS_OPEN_FAILED = 0xC0000136,
+  MD_NTSTATUS_WIN_STATUS_IO_PRIVILEGE_FAILED = 0xC0000137,
+  MD_NTSTATUS_WIN_STATUS_ORDINAL_NOT_FOUND = 0xC0000138,
+  MD_NTSTATUS_WIN_STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139,
+  MD_NTSTATUS_WIN_STATUS_CONTROL_C_EXIT = 0xC000013A,
+  MD_NTSTATUS_WIN_STATUS_LOCAL_DISCONNECT = 0xC000013B,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_DISCONNECT = 0xC000013C,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_RESOURCES = 0xC000013D,
+  MD_NTSTATUS_WIN_STATUS_LINK_FAILED = 0xC000013E,
+  MD_NTSTATUS_WIN_STATUS_LINK_TIMEOUT = 0xC000013F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_CONNECTION = 0xC0000140,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS = 0xC0000141,
+  MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED = 0xC0000142,
+  MD_NTSTATUS_WIN_STATUS_MISSING_SYSTEMFILE = 0xC0000143,
+  MD_NTSTATUS_WIN_STATUS_UNHANDLED_EXCEPTION = 0xC0000144,
+  MD_NTSTATUS_WIN_STATUS_APP_INIT_FAILURE = 0xC0000145,
+  MD_NTSTATUS_WIN_STATUS_PAGEFILE_CREATE_FAILED = 0xC0000146,
+  MD_NTSTATUS_WIN_STATUS_NO_PAGEFILE = 0xC0000147,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LEVEL = 0xC0000148,
+  MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD_CORE = 0xC0000149,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_FLOAT_CONTEXT = 0xC000014A,
+  MD_NTSTATUS_WIN_STATUS_PIPE_BROKEN = 0xC000014B,
+  MD_NTSTATUS_WIN_STATUS_REGISTRY_CORRUPT = 0xC000014C,
+  MD_NTSTATUS_WIN_STATUS_REGISTRY_IO_FAILED = 0xC000014D,
+  MD_NTSTATUS_WIN_STATUS_NO_EVENT_PAIR = 0xC000014E,
+  MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_VOLUME = 0xC000014F,
+  MD_NTSTATUS_WIN_STATUS_SERIAL_NO_DEVICE_INITED = 0xC0000150,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_ALIAS = 0xC0000151,
+  MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_ALIAS = 0xC0000152,
+  MD_NTSTATUS_WIN_STATUS_MEMBER_IN_ALIAS = 0xC0000153,
+  MD_NTSTATUS_WIN_STATUS_ALIAS_EXISTS = 0xC0000154,
+  MD_NTSTATUS_WIN_STATUS_LOGON_NOT_GRANTED = 0xC0000155,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SECRETS = 0xC0000156,
+  MD_NTSTATUS_WIN_STATUS_SECRET_TOO_LONG = 0xC0000157,
+  MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_ERROR = 0xC0000158,
+  MD_NTSTATUS_WIN_STATUS_FULLSCREEN_MODE = 0xC0000159,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_CONTEXT_IDS = 0xC000015A,
+  MD_NTSTATUS_WIN_STATUS_LOGON_TYPE_NOT_GRANTED = 0xC000015B,
+  MD_NTSTATUS_WIN_STATUS_NOT_REGISTRY_FILE = 0xC000015C,
+  MD_NTSTATUS_WIN_STATUS_NT_CROSS_ENCRYPTION_REQUIRED = 0xC000015D,
+  MD_NTSTATUS_WIN_STATUS_DOMAIN_CTRLR_CONFIG_ERROR = 0xC000015E,
+  MD_NTSTATUS_WIN_STATUS_FT_MISSING_MEMBER = 0xC000015F,
+  MD_NTSTATUS_WIN_STATUS_ILL_FORMED_SERVICE_ENTRY = 0xC0000160,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_CHARACTER = 0xC0000161,
+  MD_NTSTATUS_WIN_STATUS_UNMAPPABLE_CHARACTER = 0xC0000162,
+  MD_NTSTATUS_WIN_STATUS_UNDEFINED_CHARACTER = 0xC0000163,
+  MD_NTSTATUS_WIN_STATUS_FLOPPY_VOLUME = 0xC0000164,
+  MD_NTSTATUS_WIN_STATUS_FLOPPY_ID_MARK_NOT_FOUND = 0xC0000165,
+  MD_NTSTATUS_WIN_STATUS_FLOPPY_WRONG_CYLINDER = 0xC0000166,
+  MD_NTSTATUS_WIN_STATUS_FLOPPY_UNKNOWN_ERROR = 0xC0000167,
+  MD_NTSTATUS_WIN_STATUS_FLOPPY_BAD_REGISTERS = 0xC0000168,
+  MD_NTSTATUS_WIN_STATUS_DISK_RECALIBRATE_FAILED = 0xC0000169,
+  MD_NTSTATUS_WIN_STATUS_DISK_OPERATION_FAILED = 0xC000016A,
+  MD_NTSTATUS_WIN_STATUS_DISK_RESET_FAILED = 0xC000016B,
+  MD_NTSTATUS_WIN_STATUS_SHARED_IRQ_BUSY = 0xC000016C,
+  MD_NTSTATUS_WIN_STATUS_FT_ORPHANING = 0xC000016D,
+  MD_NTSTATUS_WIN_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = 0xC000016E,
+  MD_NTSTATUS_WIN_STATUS_PARTITION_FAILURE = 0xC0000172,
+  MD_NTSTATUS_WIN_STATUS_INVALID_BLOCK_LENGTH = 0xC0000173,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_PARTITIONED = 0xC0000174,
+  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_LOCK_MEDIA = 0xC0000175,
+  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_UNLOAD_MEDIA = 0xC0000176,
+  MD_NTSTATUS_WIN_STATUS_EOM_OVERFLOW = 0xC0000177,
+  MD_NTSTATUS_WIN_STATUS_NO_MEDIA = 0xC0000178,
+  MD_NTSTATUS_WIN_STATUS_NO_SUCH_MEMBER = 0xC000017A,
+  MD_NTSTATUS_WIN_STATUS_INVALID_MEMBER = 0xC000017B,
+  MD_NTSTATUS_WIN_STATUS_KEY_DELETED = 0xC000017C,
+  MD_NTSTATUS_WIN_STATUS_NO_LOG_SPACE = 0xC000017D,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SIDS = 0xC000017E,
+  MD_NTSTATUS_WIN_STATUS_LM_CROSS_ENCRYPTION_REQUIRED = 0xC000017F,
+  MD_NTSTATUS_WIN_STATUS_KEY_HAS_CHILDREN = 0xC0000180,
+  MD_NTSTATUS_WIN_STATUS_CHILD_MUST_BE_VOLATILE = 0xC0000181,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_CONFIGURATION_ERROR = 0xC0000182,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_INTERNAL_ERROR = 0xC0000183,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_STATE = 0xC0000184,
+  MD_NTSTATUS_WIN_STATUS_IO_DEVICE_ERROR = 0xC0000185,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_PROTOCOL_ERROR = 0xC0000186,
+  MD_NTSTATUS_WIN_STATUS_BACKUP_CONTROLLER = 0xC0000187,
+  MD_NTSTATUS_WIN_STATUS_LOG_FILE_FULL = 0xC0000188,
+  MD_NTSTATUS_WIN_STATUS_TOO_LATE = 0xC0000189,
+  MD_NTSTATUS_WIN_STATUS_NO_TRUST_LSA_SECRET = 0xC000018A,
+  MD_NTSTATUS_WIN_STATUS_NO_TRUST_SAM_ACCOUNT = 0xC000018B,
+  MD_NTSTATUS_WIN_STATUS_TRUSTED_DOMAIN_FAILURE = 0xC000018C,
+  MD_NTSTATUS_WIN_STATUS_TRUSTED_RELATIONSHIP_FAILURE = 0xC000018D,
+  MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CORRUPT = 0xC000018E,
+  MD_NTSTATUS_WIN_STATUS_EVENTLOG_CANT_START = 0xC000018F,
+  MD_NTSTATUS_WIN_STATUS_TRUST_FAILURE = 0xC0000190,
+  MD_NTSTATUS_WIN_STATUS_MUTANT_LIMIT_EXCEEDED = 0xC0000191,
+  MD_NTSTATUS_WIN_STATUS_NETLOGON_NOT_STARTED = 0xC0000192,
+  MD_NTSTATUS_WIN_STATUS_ACCOUNT_EXPIRED = 0xC0000193,
+  MD_NTSTATUS_WIN_STATUS_POSSIBLE_DEADLOCK = 0xC0000194,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_CREDENTIAL_CONFLICT = 0xC0000195,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_SESSION_LIMIT = 0xC0000196,
+  MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CHANGED = 0xC0000197,
+  MD_NTSTATUS_WIN_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 0xC0000198,
+  MD_NTSTATUS_WIN_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 0xC0000199,
+  MD_NTSTATUS_WIN_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = 0xC000019A,
+  MD_NTSTATUS_WIN_STATUS_DOMAIN_TRUST_INCONSISTENT = 0xC000019B,
+  MD_NTSTATUS_WIN_STATUS_FS_DRIVER_REQUIRED = 0xC000019C,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED_AS_DLL = 0xC000019D,
+  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 0xC000019E,
+  MD_NTSTATUS_WIN_STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 0xC000019F,
+  MD_NTSTATUS_WIN_STATUS_SECURITY_STREAM_IS_INCONSISTENT = 0xC00001A0,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_RANGE = 0xC00001A1,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ACE_CONDITION = 0xC00001A2,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT = 0xC00001A3,
+  MD_NTSTATUS_WIN_STATUS_NOTIFICATION_GUID_ALREADY_DEFINED = 0xC00001A4,
+  MD_NTSTATUS_WIN_STATUS_INVALID_EXCEPTION_HANDLER = 0xC00001A5,
+  MD_NTSTATUS_WIN_STATUS_DUPLICATE_PRIVILEGES = 0xC00001A6,
+  MD_NTSTATUS_WIN_STATUS_NOT_ALLOWED_ON_SYSTEM_FILE = 0xC00001A7,
+  MD_NTSTATUS_WIN_STATUS_REPAIR_NEEDED = 0xC00001A8,
+  MD_NTSTATUS_WIN_STATUS_QUOTA_NOT_ENABLED = 0xC00001A9,
+  MD_NTSTATUS_WIN_STATUS_NO_APPLICATION_PACKAGE = 0xC00001AA,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_OPEN_RESTRICTION = 0xC0000201,
+  MD_NTSTATUS_WIN_STATUS_NO_USER_SESSION_KEY = 0xC0000202,
+  MD_NTSTATUS_WIN_STATUS_USER_SESSION_DELETED = 0xC0000203,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_LANG_NOT_FOUND = 0xC0000204,
+  MD_NTSTATUS_WIN_STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205,
+  MD_NTSTATUS_WIN_STATUS_INVALID_BUFFER_SIZE = 0xC0000206,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_COMPONENT = 0xC0000207,
+  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_WILDCARD = 0xC0000208,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_ADDRESSES = 0xC0000209,
+  MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_EXISTS = 0xC000020A,
+  MD_NTSTATUS_WIN_STATUS_ADDRESS_CLOSED = 0xC000020B,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_DISCONNECTED = 0xC000020C,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_RESET = 0xC000020D,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_NODES = 0xC000020E,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ABORTED = 0xC000020F,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_TIMED_OUT = 0xC0000210,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_RELEASE = 0xC0000211,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_MATCH = 0xC0000212,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONDED = 0xC0000213,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_ID = 0xC0000214,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_TYPE = 0xC0000215,
+  MD_NTSTATUS_WIN_STATUS_NOT_SERVER_SESSION = 0xC0000216,
+  MD_NTSTATUS_WIN_STATUS_NOT_CLIENT_SESSION = 0xC0000217,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_LOAD_REGISTRY_FILE = 0xC0000218,
+  MD_NTSTATUS_WIN_STATUS_DEBUG_ATTACH_FAILED = 0xC0000219,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_PROCESS_TERMINATED = 0xC000021A,
+  MD_NTSTATUS_WIN_STATUS_DATA_NOT_ACCEPTED = 0xC000021B,
+  MD_NTSTATUS_WIN_STATUS_NO_BROWSER_SERVERS_FOUND = 0xC000021C,
+  MD_NTSTATUS_WIN_STATUS_VDM_HARD_ERROR = 0xC000021D,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_CANCEL_TIMEOUT = 0xC000021E,
+  MD_NTSTATUS_WIN_STATUS_REPLY_MESSAGE_MISMATCH = 0xC000021F,
+  MD_NTSTATUS_WIN_STATUS_MAPPED_ALIGNMENT = 0xC0000220,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_CHECKSUM_MISMATCH = 0xC0000221,
+  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA = 0xC0000222,
+  MD_NTSTATUS_WIN_STATUS_CLIENT_SERVER_PARAMETERS_INVALID = 0xC0000223,
+  MD_NTSTATUS_WIN_STATUS_PASSWORD_MUST_CHANGE = 0xC0000224,
+  MD_NTSTATUS_WIN_STATUS_NOT_FOUND = 0xC0000225,
+  MD_NTSTATUS_WIN_STATUS_NOT_TINY_STREAM = 0xC0000226,
+  MD_NTSTATUS_WIN_STATUS_RECOVERY_FAILURE = 0xC0000227,
+  MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW_READ = 0xC0000228,
+  MD_NTSTATUS_WIN_STATUS_FAIL_CHECK = 0xC0000229,
+  MD_NTSTATUS_WIN_STATUS_DUPLICATE_OBJECTID = 0xC000022A,
+  MD_NTSTATUS_WIN_STATUS_OBJECTID_EXISTS = 0xC000022B,
+  MD_NTSTATUS_WIN_STATUS_CONVERT_TO_LARGE = 0xC000022C,
+  MD_NTSTATUS_WIN_STATUS_RETRY = 0xC000022D,
+  MD_NTSTATUS_WIN_STATUS_FOUND_OUT_OF_SCOPE = 0xC000022E,
+  MD_NTSTATUS_WIN_STATUS_ALLOCATE_BUCKET = 0xC000022F,
+  MD_NTSTATUS_WIN_STATUS_PROPSET_NOT_FOUND = 0xC0000230,
+  MD_NTSTATUS_WIN_STATUS_MARSHALL_OVERFLOW = 0xC0000231,
+  MD_NTSTATUS_WIN_STATUS_INVALID_VARIANT = 0xC0000232,
+  MD_NTSTATUS_WIN_STATUS_DOMAIN_CONTROLLER_NOT_FOUND = 0xC0000233,
+  MD_NTSTATUS_WIN_STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234,
+  MD_NTSTATUS_WIN_STATUS_HANDLE_NOT_CLOSABLE = 0xC0000235,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_REFUSED = 0xC0000236,
+  MD_NTSTATUS_WIN_STATUS_GRACEFUL_DISCONNECT = 0xC0000237,
+  MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_ASSOCIATED = 0xC0000238,
+  MD_NTSTATUS_WIN_STATUS_ADDRESS_NOT_ASSOCIATED = 0xC0000239,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_INVALID = 0xC000023A,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_ACTIVE = 0xC000023B,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_UNREACHABLE = 0xC000023C,
+  MD_NTSTATUS_WIN_STATUS_HOST_UNREACHABLE = 0xC000023D,
+  MD_NTSTATUS_WIN_STATUS_PROTOCOL_UNREACHABLE = 0xC000023E,
+  MD_NTSTATUS_WIN_STATUS_PORT_UNREACHABLE = 0xC000023F,
+  MD_NTSTATUS_WIN_STATUS_REQUEST_ABORTED = 0xC0000240,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_ABORTED = 0xC0000241,
+  MD_NTSTATUS_WIN_STATUS_BAD_COMPRESSION_BUFFER = 0xC0000242,
+  MD_NTSTATUS_WIN_STATUS_USER_MAPPED_FILE = 0xC0000243,
+  MD_NTSTATUS_WIN_STATUS_AUDIT_FAILED = 0xC0000244,
+  MD_NTSTATUS_WIN_STATUS_TIMER_RESOLUTION_NOT_SET = 0xC0000245,
+  MD_NTSTATUS_WIN_STATUS_CONNECTION_COUNT_LIMIT = 0xC0000246,
+  MD_NTSTATUS_WIN_STATUS_LOGIN_TIME_RESTRICTION = 0xC0000247,
+  MD_NTSTATUS_WIN_STATUS_LOGIN_WKSTA_RESTRICTION = 0xC0000248,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_MP_UP_MISMATCH = 0xC0000249,
+  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_LOGON_INFO = 0xC0000250,
+  MD_NTSTATUS_WIN_STATUS_BAD_DLL_ENTRYPOINT = 0xC0000251,
+  MD_NTSTATUS_WIN_STATUS_BAD_SERVICE_ENTRYPOINT = 0xC0000252,
+  MD_NTSTATUS_WIN_STATUS_LPC_REPLY_LOST = 0xC0000253,
+  MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT1 = 0xC0000254,
+  MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT2 = 0xC0000255,
+  MD_NTSTATUS_WIN_STATUS_REGISTRY_QUOTA_LIMIT = 0xC0000256,
+  MD_NTSTATUS_WIN_STATUS_PATH_NOT_COVERED = 0xC0000257,
+  MD_NTSTATUS_WIN_STATUS_NO_CALLBACK_ACTIVE = 0xC0000258,
+  MD_NTSTATUS_WIN_STATUS_LICENSE_QUOTA_EXCEEDED = 0xC0000259,
+  MD_NTSTATUS_WIN_STATUS_PWD_TOO_SHORT = 0xC000025A,
+  MD_NTSTATUS_WIN_STATUS_PWD_TOO_RECENT = 0xC000025B,
+  MD_NTSTATUS_WIN_STATUS_PWD_HISTORY_CONFLICT = 0xC000025C,
+  MD_NTSTATUS_WIN_STATUS_PLUGPLAY_NO_DEVICE = 0xC000025E,
+  MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_COMPRESSION = 0xC000025F,
+  MD_NTSTATUS_WIN_STATUS_INVALID_HW_PROFILE = 0xC0000260,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PLUGPLAY_DEVICE_PATH = 0xC0000261,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_NOT_OWNED = 0xC0000264,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_LINKS = 0xC0000265,
+  MD_NTSTATUS_WIN_STATUS_QUOTA_LIST_INCONSISTENT = 0xC0000266,
+  MD_NTSTATUS_WIN_STATUS_FILE_IS_OFFLINE = 0xC0000267,
+  MD_NTSTATUS_WIN_STATUS_EVALUATION_EXPIRATION = 0xC0000268,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_DLL_RELOCATION = 0xC0000269,
+  MD_NTSTATUS_WIN_STATUS_LICENSE_VIOLATION = 0xC000026A,
+  MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_UNABLE_TO_LOAD = 0xC000026C,
+  MD_NTSTATUS_WIN_STATUS_DFS_UNAVAILABLE = 0xC000026D,
+  MD_NTSTATUS_WIN_STATUS_VOLUME_DISMOUNTED = 0xC000026E,
+  MD_NTSTATUS_WIN_STATUS_WX86_INTERNAL_ERROR = 0xC000026F,
+  MD_NTSTATUS_WIN_STATUS_WX86_FLOAT_STACK_CHECK = 0xC0000270,
+  MD_NTSTATUS_WIN_STATUS_VALIDATE_CONTINUE = 0xC0000271,
+  MD_NTSTATUS_WIN_STATUS_NO_MATCH = 0xC0000272,
+  MD_NTSTATUS_WIN_STATUS_NO_MORE_MATCHES = 0xC0000273,
+  MD_NTSTATUS_WIN_STATUS_NOT_A_REPARSE_POINT = 0xC0000275,
+  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_INVALID = 0xC0000276,
+  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_MISMATCH = 0xC0000277,
+  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_DATA_INVALID = 0xC0000278,
+  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_NOT_HANDLED = 0xC0000279,
+  MD_NTSTATUS_WIN_STATUS_PWD_TOO_LONG = 0xC000027A,
+  MD_NTSTATUS_WIN_STATUS_STOWED_EXCEPTION = 0xC000027B,
+  MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_NOT_RESOLVED = 0xC0000280,
+  MD_NTSTATUS_WIN_STATUS_DIRECTORY_IS_A_REPARSE_POINT = 0xC0000281,
+  MD_NTSTATUS_WIN_STATUS_RANGE_LIST_CONFLICT = 0xC0000282,
+  MD_NTSTATUS_WIN_STATUS_SOURCE_ELEMENT_EMPTY = 0xC0000283,
+  MD_NTSTATUS_WIN_STATUS_DESTINATION_ELEMENT_FULL = 0xC0000284,
+  MD_NTSTATUS_WIN_STATUS_ILLEGAL_ELEMENT_ADDRESS = 0xC0000285,
+  MD_NTSTATUS_WIN_STATUS_MAGAZINE_NOT_PRESENT = 0xC0000286,
+  MD_NTSTATUS_WIN_STATUS_REINITIALIZATION_NEEDED = 0xC0000287,
+  MD_NTSTATUS_WIN_STATUS_ENCRYPTION_FAILED = 0xC000028A,
+  MD_NTSTATUS_WIN_STATUS_DECRYPTION_FAILED = 0xC000028B,
+  MD_NTSTATUS_WIN_STATUS_RANGE_NOT_FOUND = 0xC000028C,
+  MD_NTSTATUS_WIN_STATUS_NO_RECOVERY_POLICY = 0xC000028D,
+  MD_NTSTATUS_WIN_STATUS_NO_EFS = 0xC000028E,
+  MD_NTSTATUS_WIN_STATUS_WRONG_EFS = 0xC000028F,
+  MD_NTSTATUS_WIN_STATUS_NO_USER_KEYS = 0xC0000290,
+  MD_NTSTATUS_WIN_STATUS_FILE_NOT_ENCRYPTED = 0xC0000291,
+  MD_NTSTATUS_WIN_STATUS_NOT_EXPORT_FORMAT = 0xC0000292,
+  MD_NTSTATUS_WIN_STATUS_FILE_ENCRYPTED = 0xC0000293,
+  MD_NTSTATUS_WIN_STATUS_WMI_GUID_NOT_FOUND = 0xC0000295,
+  MD_NTSTATUS_WIN_STATUS_WMI_INSTANCE_NOT_FOUND = 0xC0000296,
+  MD_NTSTATUS_WIN_STATUS_WMI_ITEMID_NOT_FOUND = 0xC0000297,
+  MD_NTSTATUS_WIN_STATUS_WMI_TRY_AGAIN = 0xC0000298,
+  MD_NTSTATUS_WIN_STATUS_SHARED_POLICY = 0xC0000299,
+  MD_NTSTATUS_WIN_STATUS_POLICY_OBJECT_NOT_FOUND = 0xC000029A,
+  MD_NTSTATUS_WIN_STATUS_POLICY_ONLY_IN_DS = 0xC000029B,
+  MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_UPGRADED = 0xC000029C,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_NOT_ACTIVE = 0xC000029D,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_MEDIA_ERROR = 0xC000029E,
+  MD_NTSTATUS_WIN_STATUS_NO_TRACKING_SERVICE = 0xC000029F,
+  MD_NTSTATUS_WIN_STATUS_SERVER_SID_MISMATCH = 0xC00002A0,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_ATTRIBUTE_OR_VALUE = 0xC00002A1,
+  MD_NTSTATUS_WIN_STATUS_DS_INVALID_ATTRIBUTE_SYNTAX = 0xC00002A2,
+  MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED = 0xC00002A3,
+  MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS = 0xC00002A4,
+  MD_NTSTATUS_WIN_STATUS_DS_BUSY = 0xC00002A5,
+  MD_NTSTATUS_WIN_STATUS_DS_UNAVAILABLE = 0xC00002A6,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_RIDS_ALLOCATED = 0xC00002A7,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_MORE_RIDS = 0xC00002A8,
+  MD_NTSTATUS_WIN_STATUS_DS_INCORRECT_ROLE_OWNER = 0xC00002A9,
+  MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_INIT_ERROR = 0xC00002AA,
+  MD_NTSTATUS_WIN_STATUS_DS_OBJ_CLASS_VIOLATION = 0xC00002AB,
+  MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_NON_LEAF = 0xC00002AC,
+  MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_RDN = 0xC00002AD,
+  MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_OBJ_CLASS = 0xC00002AE,
+  MD_NTSTATUS_WIN_STATUS_DS_CROSS_DOM_MOVE_FAILED = 0xC00002AF,
+  MD_NTSTATUS_WIN_STATUS_DS_GC_NOT_AVAILABLE = 0xC00002B0,
+  MD_NTSTATUS_WIN_STATUS_DIRECTORY_SERVICE_REQUIRED = 0xC00002B1,
+  MD_NTSTATUS_WIN_STATUS_REPARSE_ATTRIBUTE_CONFLICT = 0xC00002B2,
+  MD_NTSTATUS_WIN_STATUS_CANT_ENABLE_DENY_ONLY = 0xC00002B3,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4,
+  MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_REMOVED = 0xC00002B6,
+  MD_NTSTATUS_WIN_STATUS_JOURNAL_DELETE_IN_PROGRESS = 0xC00002B7,
+  MD_NTSTATUS_WIN_STATUS_JOURNAL_NOT_ACTIVE = 0xC00002B8,
+  MD_NTSTATUS_WIN_STATUS_NOINTERFACE = 0xC00002B9,
+  MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_DISABLED = 0xC00002BA,
+  MD_NTSTATUS_WIN_STATUS_DS_ADMIN_LIMIT_EXCEEDED = 0xC00002C1,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_SLEEP = 0xC00002C2,
+  MD_NTSTATUS_WIN_STATUS_MUTUAL_AUTHENTICATION_FAILED = 0xC00002C3,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_SYSTEM_FILE = 0xC00002C4,
+  MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT_ERROR = 0xC00002C5,
+  MD_NTSTATUS_WIN_STATUS_WMI_READ_ONLY = 0xC00002C6,
+  MD_NTSTATUS_WIN_STATUS_WMI_SET_FAILURE = 0xC00002C7,
+  MD_NTSTATUS_WIN_STATUS_COMMITMENT_MINIMUM = 0xC00002C8,
+  MD_NTSTATUS_WIN_STATUS_REG_NAT_CONSUMPTION = 0xC00002C9,
+  MD_NTSTATUS_WIN_STATUS_TRANSPORT_FULL = 0xC00002CA,
+  MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE = 0xC00002CB,
+  MD_NTSTATUS_WIN_STATUS_ONLY_IF_CONNECTED = 0xC00002CC,
+  MD_NTSTATUS_WIN_STATUS_DS_SENSITIVE_GROUP_VIOLATION = 0xC00002CD,
+  MD_NTSTATUS_WIN_STATUS_PNP_RESTART_ENUMERATION = 0xC00002CE,
+  MD_NTSTATUS_WIN_STATUS_JOURNAL_ENTRY_DELETED = 0xC00002CF,
+  MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_PRIMARYGROUPID = 0xC00002D0,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_IMAGE_BAD_SIGNATURE = 0xC00002D1,
+  MD_NTSTATUS_WIN_STATUS_PNP_REBOOT_REQUIRED = 0xC00002D2,
+  MD_NTSTATUS_WIN_STATUS_POWER_STATE_INVALID = 0xC00002D3,
+  MD_NTSTATUS_WIN_STATUS_DS_INVALID_GROUP_TYPE = 0xC00002D4,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 0xC00002D5,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 0xC00002D6,
+  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D7,
+  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 0xC00002D8,
+  MD_NTSTATUS_WIN_STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D9,
+  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 0xC00002DA,
+  MD_NTSTATUS_WIN_STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 0xC00002DB,
+  MD_NTSTATUS_WIN_STATUS_DS_HAVE_PRIMARY_MEMBERS = 0xC00002DC,
+  MD_NTSTATUS_WIN_STATUS_WMI_NOT_SUPPORTED = 0xC00002DD,
+  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_POWER = 0xC00002DE,
+  MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_PASSWORD = 0xC00002DF,
+  MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_FLOPPY = 0xC00002E0,
+  MD_NTSTATUS_WIN_STATUS_DS_CANT_START = 0xC00002E1,
+  MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE = 0xC00002E2,
+  MD_NTSTATUS_WIN_STATUS_SAM_INIT_FAILURE = 0xC00002E3,
+  MD_NTSTATUS_WIN_STATUS_DS_GC_REQUIRED = 0xC00002E4,
+  MD_NTSTATUS_WIN_STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 0xC00002E5,
+  MD_NTSTATUS_WIN_STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 0xC00002E6,
+  MD_NTSTATUS_WIN_STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 0xC00002E7,
+  MD_NTSTATUS_WIN_STATUS_MULTIPLE_FAULT_VIOLATION = 0xC00002E8,
+  MD_NTSTATUS_WIN_STATUS_CURRENT_DOMAIN_NOT_ALLOWED = 0xC00002E9,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_MAKE = 0xC00002EA,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_SHUTDOWN = 0xC00002EB,
+  MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE_CONSOLE = 0xC00002EC,
+  MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE_CONSOLE = 0xC00002ED,
+  MD_NTSTATUS_WIN_STATUS_UNFINISHED_CONTEXT_DELETED = 0xC00002EE,
+  MD_NTSTATUS_WIN_STATUS_NO_TGT_REPLY = 0xC00002EF,
+  MD_NTSTATUS_WIN_STATUS_OBJECTID_NOT_FOUND = 0xC00002F0,
+  MD_NTSTATUS_WIN_STATUS_NO_IP_ADDRESSES = 0xC00002F1,
+  MD_NTSTATUS_WIN_STATUS_WRONG_CREDENTIAL_HANDLE = 0xC00002F2,
+  MD_NTSTATUS_WIN_STATUS_CRYPTO_SYSTEM_INVALID = 0xC00002F3,
+  MD_NTSTATUS_WIN_STATUS_MAX_REFERRALS_EXCEEDED = 0xC00002F4,
+  MD_NTSTATUS_WIN_STATUS_MUST_BE_KDC = 0xC00002F5,
+  MD_NTSTATUS_WIN_STATUS_STRONG_CRYPTO_NOT_SUPPORTED = 0xC00002F6,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_PRINCIPALS = 0xC00002F7,
+  MD_NTSTATUS_WIN_STATUS_NO_PA_DATA = 0xC00002F8,
+  MD_NTSTATUS_WIN_STATUS_PKINIT_NAME_MISMATCH = 0xC00002F9,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_LOGON_REQUIRED = 0xC00002FA,
+  MD_NTSTATUS_WIN_STATUS_KDC_INVALID_REQUEST = 0xC00002FB,
+  MD_NTSTATUS_WIN_STATUS_KDC_UNABLE_TO_REFER = 0xC00002FC,
+  MD_NTSTATUS_WIN_STATUS_KDC_UNKNOWN_ETYPE = 0xC00002FD,
+  MD_NTSTATUS_WIN_STATUS_SHUTDOWN_IN_PROGRESS = 0xC00002FE,
+  MD_NTSTATUS_WIN_STATUS_SERVER_SHUTDOWN_IN_PROGRESS = 0xC00002FF,
+  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_SBS = 0xC0000300,
+  MD_NTSTATUS_WIN_STATUS_WMI_GUID_DISCONNECTED = 0xC0000301,
+  MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_DISABLED = 0xC0000302,
+  MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_ENABLED = 0xC0000303,
+  MD_NTSTATUS_WIN_STATUS_MFT_TOO_FRAGMENTED = 0xC0000304,
+  MD_NTSTATUS_WIN_STATUS_COPY_PROTECTION_FAILURE = 0xC0000305,
+  MD_NTSTATUS_WIN_STATUS_CSS_AUTHENTICATION_FAILURE = 0xC0000306,
+  MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_PRESENT = 0xC0000307,
+  MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_ESTABLISHED = 0xC0000308,
+  MD_NTSTATUS_WIN_STATUS_CSS_SCRAMBLED_SECTOR = 0xC0000309,
+  MD_NTSTATUS_WIN_STATUS_CSS_REGION_MISMATCH = 0xC000030A,
+  MD_NTSTATUS_WIN_STATUS_CSS_RESETS_EXHAUSTED = 0xC000030B,
+  MD_NTSTATUS_WIN_STATUS_PASSWORD_CHANGE_REQUIRED = 0xC000030C,
+  MD_NTSTATUS_WIN_STATUS_PKINIT_FAILURE = 0xC0000320,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_SUBSYSTEM_FAILURE = 0xC0000321,
+  MD_NTSTATUS_WIN_STATUS_NO_KERB_KEY = 0xC0000322,
+  MD_NTSTATUS_WIN_STATUS_HOST_DOWN = 0xC0000350,
+  MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_PREAUTH = 0xC0000351,
+  MD_NTSTATUS_WIN_STATUS_EFS_ALG_BLOB_TOO_BIG = 0xC0000352,
+  MD_NTSTATUS_WIN_STATUS_PORT_NOT_SET = 0xC0000353,
+  MD_NTSTATUS_WIN_STATUS_DEBUGGER_INACTIVE = 0xC0000354,
+  MD_NTSTATUS_WIN_STATUS_DS_VERSION_CHECK_FAILURE = 0xC0000355,
+  MD_NTSTATUS_WIN_STATUS_AUDITING_DISABLED = 0xC0000356,
+  MD_NTSTATUS_WIN_STATUS_PRENT4_MACHINE_ACCOUNT = 0xC0000357,
+  MD_NTSTATUS_WIN_STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 0xC0000358,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_32 = 0xC0000359,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_64 = 0xC000035A,
+  MD_NTSTATUS_WIN_STATUS_BAD_BINDINGS = 0xC000035B,
+  MD_NTSTATUS_WIN_STATUS_NETWORK_SESSION_EXPIRED = 0xC000035C,
+  MD_NTSTATUS_WIN_STATUS_APPHELP_BLOCK = 0xC000035D,
+  MD_NTSTATUS_WIN_STATUS_ALL_SIDS_FILTERED = 0xC000035E,
+  MD_NTSTATUS_WIN_STATUS_NOT_SAFE_MODE_DRIVER = 0xC000035F,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT = 0xC0000361,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PATH = 0xC0000362,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER = 0xC0000363,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_OTHER = 0xC0000364,
+  MD_NTSTATUS_WIN_STATUS_FAILED_DRIVER_ENTRY = 0xC0000365,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_ENUMERATION_ERROR = 0xC0000366,
+  MD_NTSTATUS_WIN_STATUS_MOUNT_POINT_NOT_RESOLVED = 0xC0000368,
+  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_OBJECT_PARAMETER = 0xC0000369,
+  MD_NTSTATUS_WIN_STATUS_MCA_OCCURED = 0xC000036A,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED_CRITICAL = 0xC000036B,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED = 0xC000036C,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_DATABASE_ERROR = 0xC000036D,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_HIVE_TOO_LARGE = 0xC000036E,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMPORT_OF_NON_DLL = 0xC000036F,
+  MD_NTSTATUS_WIN_STATUS_NO_SECRETS = 0xC0000371,
+  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 0xC0000372,
+  MD_NTSTATUS_WIN_STATUS_FAILED_STACK_SWITCH = 0xC0000373,
+  MD_NTSTATUS_WIN_STATUS_HEAP_CORRUPTION = 0xC0000374,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_WRONG_PIN = 0xC0000380,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_BLOCKED = 0xC0000381,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED = 0xC0000382,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CARD = 0xC0000383,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEY_CONTAINER = 0xC0000384,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CERTIFICATE = 0xC0000385,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEYSET = 0xC0000386,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_IO_ERROR = 0xC0000387,
+  MD_NTSTATUS_WIN_STATUS_DOWNGRADE_DETECTED = 0xC0000388,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_REVOKED = 0xC0000389,
+  MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED = 0xC000038A,
+  MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_C = 0xC000038B,
+  MD_NTSTATUS_WIN_STATUS_PKINIT_CLIENT_FAILURE = 0xC000038C,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_EXPIRED = 0xC000038D,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_PRIOR_UNLOAD = 0xC000038E,
+  MD_NTSTATUS_WIN_STATUS_SMARTCARD_SILENT_CONTEXT = 0xC000038F,
+  MD_NTSTATUS_WIN_STATUS_PER_USER_TRUST_QUOTA_EXCEEDED = 0xC0000401,
+  MD_NTSTATUS_WIN_STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED = 0xC0000402,
+  MD_NTSTATUS_WIN_STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED = 0xC0000403,
+  MD_NTSTATUS_WIN_STATUS_DS_NAME_NOT_UNIQUE = 0xC0000404,
+  MD_NTSTATUS_WIN_STATUS_DS_DUPLICATE_ID_FOUND = 0xC0000405,
+  MD_NTSTATUS_WIN_STATUS_DS_GROUP_CONVERSION_ERROR = 0xC0000406,
+  MD_NTSTATUS_WIN_STATUS_VOLSNAP_PREPARE_HIBERNATE = 0xC0000407,
+  MD_NTSTATUS_WIN_STATUS_USER2USER_REQUIRED = 0xC0000408,
+  MD_NTSTATUS_WIN_STATUS_STACK_BUFFER_OVERRUN = 0xC0000409,
+  MD_NTSTATUS_WIN_STATUS_NO_S4U_PROT_SUPPORT = 0xC000040A,
+  MD_NTSTATUS_WIN_STATUS_CROSSREALM_DELEGATION_FAILURE = 0xC000040B,
+  MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_KDC = 0xC000040C,
+  MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED_KDC = 0xC000040D,
+  MD_NTSTATUS_WIN_STATUS_KDC_CERT_EXPIRED = 0xC000040E,
+  MD_NTSTATUS_WIN_STATUS_KDC_CERT_REVOKED = 0xC000040F,
+  MD_NTSTATUS_WIN_STATUS_PARAMETER_QUOTA_EXCEEDED = 0xC0000410,
+  MD_NTSTATUS_WIN_STATUS_HIBERNATION_FAILURE = 0xC0000411,
+  MD_NTSTATUS_WIN_STATUS_DELAY_LOAD_FAILED = 0xC0000412,
+  MD_NTSTATUS_WIN_STATUS_AUTHENTICATION_FIREWALL_FAILED = 0xC0000413,
+  MD_NTSTATUS_WIN_STATUS_VDM_DISALLOWED = 0xC0000414,
+  MD_NTSTATUS_WIN_STATUS_HUNG_DISPLAY_DRIVER_THREAD = 0xC0000415,
+  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 0xC0000416,
+  MD_NTSTATUS_WIN_STATUS_INVALID_CRUNTIME_PARAMETER = 0xC0000417,
+  MD_NTSTATUS_WIN_STATUS_NTLM_BLOCKED = 0xC0000418,
+  MD_NTSTATUS_WIN_STATUS_DS_SRC_SID_EXISTS_IN_FOREST = 0xC0000419,
+  MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST = 0xC000041A,
+  MD_NTSTATUS_WIN_STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST = 0xC000041B,
+  MD_NTSTATUS_WIN_STATUS_INVALID_USER_PRINCIPAL_NAME = 0xC000041C,
+  MD_NTSTATUS_WIN_STATUS_FATAL_USER_CALLBACK_EXCEPTION = 0xC000041D,
+  MD_NTSTATUS_WIN_STATUS_ASSERTION_FAILURE = 0xC0000420,
+  MD_NTSTATUS_WIN_STATUS_VERIFIER_STOP = 0xC0000421,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_POP_STACK = 0xC0000423,
+  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_DRIVER_BLOCKED = 0xC0000424,
+  MD_NTSTATUS_WIN_STATUS_HIVE_UNLOADED = 0xC0000425,
+  MD_NTSTATUS_WIN_STATUS_COMPRESSION_DISABLED = 0xC0000426,
+  MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_LIMITATION = 0xC0000427,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_HASH = 0xC0000428,
+  MD_NTSTATUS_WIN_STATUS_NOT_CAPABLE = 0xC0000429,
+  MD_NTSTATUS_WIN_STATUS_REQUEST_OUT_OF_SEQUENCE = 0xC000042A,
+  MD_NTSTATUS_WIN_STATUS_IMPLEMENTATION_LIMIT = 0xC000042B,
+  MD_NTSTATUS_WIN_STATUS_ELEVATION_REQUIRED = 0xC000042C,
+  MD_NTSTATUS_WIN_STATUS_NO_SECURITY_CONTEXT = 0xC000042D,
+  MD_NTSTATUS_WIN_STATUS_PKU2U_CERT_FAILURE = 0xC000042F,
+  MD_NTSTATUS_WIN_STATUS_BEYOND_VDL = 0xC0000432,
+  MD_NTSTATUS_WIN_STATUS_ENCOUNTERED_WRITE_IN_PROGRESS = 0xC0000433,
+  MD_NTSTATUS_WIN_STATUS_PTE_CHANGED = 0xC0000434,
+  MD_NTSTATUS_WIN_STATUS_PURGE_FAILED = 0xC0000435,
+  MD_NTSTATUS_WIN_STATUS_CRED_REQUIRES_CONFIRMATION = 0xC0000440,
+  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = 0xC0000441,
+  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER = 0xC0000442,
+  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = 0xC0000443,
+  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = 0xC0000444,
+  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_FILE_NOT_CSE = 0xC0000445,
+  MD_NTSTATUS_WIN_STATUS_INVALID_LABEL = 0xC0000446,
+  MD_NTSTATUS_WIN_STATUS_DRIVER_PROCESS_TERMINATED = 0xC0000450,
+  MD_NTSTATUS_WIN_STATUS_AMBIGUOUS_SYSTEM_DEVICE = 0xC0000451,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_DEVICE_NOT_FOUND = 0xC0000452,
+  MD_NTSTATUS_WIN_STATUS_RESTART_BOOT_APPLICATION = 0xC0000453,
+  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_NVRAM_RESOURCES = 0xC0000454,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SESSION = 0xC0000455,
+  MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_SESSION = 0xC0000456,
+  MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_SESSION = 0xC0000457,
+  MD_NTSTATUS_WIN_STATUS_INVALID_WEIGHT = 0xC0000458,
+  MD_NTSTATUS_WIN_STATUS_REQUEST_PAUSED = 0xC0000459,
+  MD_NTSTATUS_WIN_STATUS_NO_RANGES_PROCESSED = 0xC0000460,
+  MD_NTSTATUS_WIN_STATUS_DISK_RESOURCES_EXHAUSTED = 0xC0000461,
+  MD_NTSTATUS_WIN_STATUS_NEEDS_REMEDIATION = 0xC0000462,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_FEATURE_NOT_SUPPORTED = 0xC0000463,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_UNREACHABLE = 0xC0000464,
+  MD_NTSTATUS_WIN_STATUS_INVALID_TOKEN = 0xC0000465,
+  MD_NTSTATUS_WIN_STATUS_SERVER_UNAVAILABLE = 0xC0000466,
+  MD_NTSTATUS_WIN_STATUS_FILE_NOT_AVAILABLE = 0xC0000467,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_INSUFFICIENT_RESOURCES = 0xC0000468,
+  MD_NTSTATUS_WIN_STATUS_PACKAGE_UPDATING = 0xC0000469,
+  MD_NTSTATUS_WIN_STATUS_NOT_READ_FROM_COPY = 0xC000046A,
+  MD_NTSTATUS_WIN_STATUS_FT_WRITE_FAILURE = 0xC000046B,
+  MD_NTSTATUS_WIN_STATUS_FT_DI_SCAN_REQUIRED = 0xC000046C,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_NOT_EXTERNALLY_BACKED = 0xC000046D,
+  MD_NTSTATUS_WIN_STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 0xC000046E,
+  MD_NTSTATUS_WIN_STATUS_DATA_CHECKSUM_ERROR = 0xC0000470,
+  MD_NTSTATUS_WIN_STATUS_INTERMIXED_KERNEL_EA_OPERATION = 0xC0000471,
+  MD_NTSTATUS_WIN_STATUS_TRIM_READ_ZERO_NOT_SUPPORTED = 0xC0000472,
+  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SEGMENT_DESCRIPTORS = 0xC0000473,
+  MD_NTSTATUS_WIN_STATUS_INVALID_OFFSET_ALIGNMENT = 0xC0000474,
+  MD_NTSTATUS_WIN_STATUS_INVALID_FIELD_IN_PARAMETER_LIST = 0xC0000475,
+  MD_NTSTATUS_WIN_STATUS_OPERATION_IN_PROGRESS = 0xC0000476,
+  MD_NTSTATUS_WIN_STATUS_INVALID_INITIATOR_TARGET_PATH = 0xC0000477,
+  MD_NTSTATUS_WIN_STATUS_SCRUB_DATA_DISABLED = 0xC0000478,
+  MD_NTSTATUS_WIN_STATUS_NOT_REDUNDANT_STORAGE = 0xC0000479,
+  MD_NTSTATUS_WIN_STATUS_RESIDENT_FILE_NOT_SUPPORTED = 0xC000047A,
+  MD_NTSTATUS_WIN_STATUS_COMPRESSED_FILE_NOT_SUPPORTED = 0xC000047B,
+  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_SUPPORTED = 0xC000047C,
+  MD_NTSTATUS_WIN_STATUS_IO_OPERATION_TIMEOUT = 0xC000047D,
+  MD_NTSTATUS_WIN_STATUS_SYSTEM_NEEDS_REMEDIATION = 0xC000047E,
+  MD_NTSTATUS_WIN_STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN = 0xC000047F,
+  MD_NTSTATUS_WIN_STATUS_SHARE_UNAVAILABLE = 0xC0000480,
+  MD_NTSTATUS_WIN_STATUS_APISET_NOT_HOSTED = 0xC0000481,
+  MD_NTSTATUS_WIN_STATUS_APISET_NOT_PRESENT = 0xC0000482,
+  MD_NTSTATUS_WIN_STATUS_DEVICE_HARDWARE_ERROR = 0xC0000483,
+  MD_NTSTATUS_WIN_STATUS_INVALID_TASK_NAME = 0xC0000500,
+  MD_NTSTATUS_WIN_STATUS_INVALID_TASK_INDEX = 0xC0000501,
+  MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_TASK = 0xC0000502,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_BYPASS = 0xC0000503,
+  MD_NTSTATUS_WIN_STATUS_UNDEFINED_SCOPE = 0xC0000504,
+  MD_NTSTATUS_WIN_STATUS_INVALID_CAP = 0xC0000505,
+  MD_NTSTATUS_WIN_STATUS_NOT_GUI_PROCESS = 0xC0000506,
+  MD_NTSTATUS_WIN_STATUS_FAIL_FAST_EXCEPTION = 0xC0000602,
+  MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_REVOKED = 0xC0000603,
+  MD_NTSTATUS_WIN_STATUS_DYNAMIC_CODE_BLOCKED = 0xC0000604,
+  MD_NTSTATUS_WIN_STATUS_PORT_CLOSED = 0xC0000700,
+  MD_NTSTATUS_WIN_STATUS_MESSAGE_LOST = 0xC0000701,
+  MD_NTSTATUS_WIN_STATUS_INVALID_MESSAGE = 0xC0000702,
+  MD_NTSTATUS_WIN_STATUS_REQUEST_CANCELED = 0xC0000703,
+  MD_NTSTATUS_WIN_STATUS_RECURSIVE_DISPATCH = 0xC0000704,
+  MD_NTSTATUS_WIN_STATUS_LPC_RECEIVE_BUFFER_EXPECTED = 0xC0000705,
+  MD_NTSTATUS_WIN_STATUS_LPC_INVALID_CONNECTION_USAGE = 0xC0000706,
+  MD_NTSTATUS_WIN_STATUS_LPC_REQUESTS_NOT_ALLOWED = 0xC0000707,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_IN_USE = 0xC0000708,
+  MD_NTSTATUS_WIN_STATUS_HARDWARE_MEMORY_ERROR = 0xC0000709,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_HANDLE_EXCEPTION = 0xC000070A,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED = 0xC000070B,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED = 0xC000070C,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED = 0xC000070D,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED = 0xC000070E,
+  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASED_DURING_OPERATION = 0xC000070F,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING = 0xC0000710,
+  MD_NTSTATUS_WIN_STATUS_APC_RETURNED_WHILE_IMPERSONATING = 0xC0000711,
+  MD_NTSTATUS_WIN_STATUS_PROCESS_IS_PROTECTED = 0xC0000712,
+  MD_NTSTATUS_WIN_STATUS_MCA_EXCEPTION = 0xC0000713,
+  MD_NTSTATUS_WIN_STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE = 0xC0000714,
+  MD_NTSTATUS_WIN_STATUS_SYMLINK_CLASS_DISABLED = 0xC0000715,
+  MD_NTSTATUS_WIN_STATUS_INVALID_IDN_NORMALIZATION = 0xC0000716,
+  MD_NTSTATUS_WIN_STATUS_NO_UNICODE_TRANSLATION = 0xC0000717,
+  MD_NTSTATUS_WIN_STATUS_ALREADY_REGISTERED = 0xC0000718,
+  MD_NTSTATUS_WIN_STATUS_CONTEXT_MISMATCH = 0xC0000719,
+  MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_HAS_COMPLETION_LIST = 0xC000071A,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_PRIORITY = 0xC000071B,
+  MD_NTSTATUS_WIN_STATUS_INVALID_THREAD = 0xC000071C,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_TRANSACTION = 0xC000071D,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LDR_LOCK = 0xC000071E,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LANG = 0xC000071F,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_PRI_BACK = 0xC0000720,
+  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_AFFINITY = 0xC0000721,
+  MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_DISABLED = 0xC0000800,
+  MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_RENAME_IN_PROGRESS = 0xC0000801,
+  MD_NTSTATUS_WIN_STATUS_DISK_QUOTA_EXCEEDED = 0xC0000802,
+  MD_NTSTATUS_WIN_STATUS_CONTENT_BLOCKED = 0xC0000804,
+  MD_NTSTATUS_WIN_STATUS_BAD_CLUSTERS = 0xC0000805,
+  MD_NTSTATUS_WIN_STATUS_VOLUME_DIRTY = 0xC0000806,
+  MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_UNSUCCESSFUL = 0xC0000808,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_OVERFULL = 0xC0000809,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CORRUPTED = 0xC000080A,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UNAVAILABLE = 0xC000080B,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_DELETED_FULL = 0xC000080C,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CLEARED = 0xC000080D,
+  MD_NTSTATUS_WIN_STATUS_ORPHAN_NAME_EXHAUSTED = 0xC000080E,
+  MD_NTSTATUS_WIN_STATUS_PROACTIVE_SCAN_IN_PROGRESS = 0xC000080F,
+  MD_NTSTATUS_WIN_STATUS_ENCRYPTED_IO_NOT_POSSIBLE = 0xC0000810,
+  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UPLEVEL_RECORDS = 0xC0000811,
+  MD_NTSTATUS_WIN_STATUS_FILE_CHECKED_OUT = 0xC0000901,
+  MD_NTSTATUS_WIN_STATUS_CHECKOUT_REQUIRED = 0xC0000902,
+  MD_NTSTATUS_WIN_STATUS_BAD_FILE_TYPE = 0xC0000903,
+  MD_NTSTATUS_WIN_STATUS_FILE_TOO_LARGE = 0xC0000904,
+  MD_NTSTATUS_WIN_STATUS_FORMS_AUTH_REQUIRED = 0xC0000905,
+  MD_NTSTATUS_WIN_STATUS_VIRUS_INFECTED = 0xC0000906,
+  MD_NTSTATUS_WIN_STATUS_VIRUS_DELETED = 0xC0000907,
+  MD_NTSTATUS_WIN_STATUS_BAD_MCFG_TABLE = 0xC0000908,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_BREAK_OPLOCK = 0xC0000909,
+  MD_NTSTATUS_WIN_STATUS_BAD_KEY = 0xC000090A,
+  MD_NTSTATUS_WIN_STATUS_BAD_DATA = 0xC000090B,
+  MD_NTSTATUS_WIN_STATUS_NO_KEY = 0xC000090C,
+  MD_NTSTATUS_WIN_STATUS_FILE_HANDLE_REVOKED = 0xC0000910,
+  MD_NTSTATUS_WIN_STATUS_WOW_ASSERTION = 0xC0009898,
+  MD_NTSTATUS_WIN_STATUS_INVALID_SIGNATURE = 0xC000A000,
+  MD_NTSTATUS_WIN_STATUS_HMAC_NOT_SUPPORTED = 0xC000A001,
+  MD_NTSTATUS_WIN_STATUS_AUTH_TAG_MISMATCH = 0xC000A002,
+  MD_NTSTATUS_WIN_STATUS_INVALID_STATE_TRANSITION = 0xC000A003,
+  MD_NTSTATUS_WIN_STATUS_INVALID_KERNEL_INFO_VERSION = 0xC000A004,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PEP_INFO_VERSION = 0xC000A005,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_QUEUE_OVERFLOW = 0xC000A010,
+  MD_NTSTATUS_WIN_STATUS_ND_QUEUE_OVERFLOW = 0xC000A011,
+  MD_NTSTATUS_WIN_STATUS_HOPLIMIT_EXCEEDED = 0xC000A012,
+  MD_NTSTATUS_WIN_STATUS_PROTOCOL_NOT_SUPPORTED = 0xC000A013,
+  MD_NTSTATUS_WIN_STATUS_FASTPATH_REJECTED = 0xC000A014,
+  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 0xC000A080,
+  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 0xC000A081,
+  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 0xC000A082,
+  MD_NTSTATUS_WIN_STATUS_XML_PARSE_ERROR = 0xC000A083,
+  MD_NTSTATUS_WIN_STATUS_XMLDSIG_ERROR = 0xC000A084,
+  MD_NTSTATUS_WIN_STATUS_WRONG_COMPARTMENT = 0xC000A085,
+  MD_NTSTATUS_WIN_STATUS_AUTHIP_FAILURE = 0xC000A086,
+  MD_NTSTATUS_WIN_STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = 0xC000A087,
+  MD_NTSTATUS_WIN_STATUS_DS_OID_NOT_FOUND = 0xC000A088,
+  MD_NTSTATUS_WIN_STATUS_INCORRECT_ACCOUNT_TYPE = 0xC000A089,
+  MD_NTSTATUS_WIN_STATUS_HASH_NOT_SUPPORTED = 0xC000A100,
+  MD_NTSTATUS_WIN_STATUS_HASH_NOT_PRESENT = 0xC000A101,
+  MD_NTSTATUS_WIN_STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 0xC000A121,
+  MD_NTSTATUS_WIN_STATUS_GPIO_CLIENT_INFORMATION_INVALID = 0xC000A122,
+  MD_NTSTATUS_WIN_STATUS_GPIO_VERSION_NOT_SUPPORTED = 0xC000A123,
+  MD_NTSTATUS_WIN_STATUS_GPIO_INVALID_REGISTRATION_PACKET = 0xC000A124,
+  MD_NTSTATUS_WIN_STATUS_GPIO_OPERATION_DENIED = 0xC000A125,
+  MD_NTSTATUS_WIN_STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE = 0xC000A126,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_SWITCH_RUNLEVEL = 0xC000A141,
+  MD_NTSTATUS_WIN_STATUS_INVALID_RUNLEVEL_SETTING = 0xC000A142,
+  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_TIMEOUT = 0xC000A143,
+  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 0xC000A145,
+  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_IN_PROGRESS = 0xC000A146,
+  MD_NTSTATUS_WIN_STATUS_NOT_APPCONTAINER = 0xC000A200,
+  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_IN_APPCONTAINER = 0xC000A201,
+  MD_NTSTATUS_WIN_STATUS_INVALID_PACKAGE_SID_LENGTH = 0xC000A202,
+  MD_NTSTATUS_WIN_STATUS_APP_DATA_NOT_FOUND = 0xC000A281,
+  MD_NTSTATUS_WIN_STATUS_APP_DATA_EXPIRED = 0xC000A282,
+  MD_NTSTATUS_WIN_STATUS_APP_DATA_CORRUPT = 0xC000A283,
+  MD_NTSTATUS_WIN_STATUS_APP_DATA_LIMIT_EXCEEDED = 0xC000A284,
+  MD_NTSTATUS_WIN_STATUS_APP_DATA_REBOOT_REQUIRED = 0xC000A285,
+  MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED = 0xC000A2A1,
+  MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = 0xC000A2A2,
+  MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED = 0xC000A2A3,
+  MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = 0xC000A2A4,
+  MD_NTSTATUS_WIN_DBG_NO_STATE_CHANGE = 0xC0010001,
+  MD_NTSTATUS_WIN_DBG_APP_NOT_IDLE = 0xC0010002,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_BINDING = 0xC0020001,
+  MD_NTSTATUS_WIN_RPC_NT_WRONG_KIND_OF_BINDING = 0xC0020002,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_BINDING = 0xC0020003,
+  MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_SUPPORTED = 0xC0020004,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_RPC_PROTSEQ = 0xC0020005,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_UUID = 0xC0020006,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_ENDPOINT_FORMAT = 0xC0020007,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_NET_ADDR = 0xC0020008,
+  MD_NTSTATUS_WIN_RPC_NT_NO_ENDPOINT_FOUND = 0xC0020009,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_TIMEOUT = 0xC002000A,
+  MD_NTSTATUS_WIN_RPC_NT_OBJECT_NOT_FOUND = 0xC002000B,
+  MD_NTSTATUS_WIN_RPC_NT_ALREADY_REGISTERED = 0xC002000C,
+  MD_NTSTATUS_WIN_RPC_NT_TYPE_ALREADY_REGISTERED = 0xC002000D,
+  MD_NTSTATUS_WIN_RPC_NT_ALREADY_LISTENING = 0xC002000E,
+  MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS_REGISTERED = 0xC002000F,
+  MD_NTSTATUS_WIN_RPC_NT_NOT_LISTENING = 0xC0020010,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_MGR_TYPE = 0xC0020011,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_IF = 0xC0020012,
+  MD_NTSTATUS_WIN_RPC_NT_NO_BINDINGS = 0xC0020013,
+  MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS = 0xC0020014,
+  MD_NTSTATUS_WIN_RPC_NT_CANT_CREATE_ENDPOINT = 0xC0020015,
+  MD_NTSTATUS_WIN_RPC_NT_OUT_OF_RESOURCES = 0xC0020016,
+  MD_NTSTATUS_WIN_RPC_NT_SERVER_UNAVAILABLE = 0xC0020017,
+  MD_NTSTATUS_WIN_RPC_NT_SERVER_TOO_BUSY = 0xC0020018,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_NETWORK_OPTIONS = 0xC0020019,
+  MD_NTSTATUS_WIN_RPC_NT_NO_CALL_ACTIVE = 0xC002001A,
+  MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED = 0xC002001B,
+  MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED_DNE = 0xC002001C,
+  MD_NTSTATUS_WIN_RPC_NT_PROTOCOL_ERROR = 0xC002001D,
+  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TRANS_SYN = 0xC002001F,
+  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TYPE = 0xC0020021,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_TAG = 0xC0020022,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_BOUND = 0xC0020023,
+  MD_NTSTATUS_WIN_RPC_NT_NO_ENTRY_NAME = 0xC0020024,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_NAME_SYNTAX = 0xC0020025,
+  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_NAME_SYNTAX = 0xC0020026,
+  MD_NTSTATUS_WIN_RPC_NT_UUID_NO_ADDRESS = 0xC0020028,
+  MD_NTSTATUS_WIN_RPC_NT_DUPLICATE_ENDPOINT = 0xC0020029,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_TYPE = 0xC002002A,
+  MD_NTSTATUS_WIN_RPC_NT_MAX_CALLS_TOO_SMALL = 0xC002002B,
+  MD_NTSTATUS_WIN_RPC_NT_STRING_TOO_LONG = 0xC002002C,
+  MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_FOUND = 0xC002002D,
+  MD_NTSTATUS_WIN_RPC_NT_PROCNUM_OUT_OF_RANGE = 0xC002002E,
+  MD_NTSTATUS_WIN_RPC_NT_BINDING_HAS_NO_AUTH = 0xC002002F,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_SERVICE = 0xC0020030,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_LEVEL = 0xC0020031,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_AUTH_IDENTITY = 0xC0020032,
+  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHZ_SERVICE = 0xC0020033,
+  MD_NTSTATUS_WIN_EPT_NT_INVALID_ENTRY = 0xC0020034,
+  MD_NTSTATUS_WIN_EPT_NT_CANT_PERFORM_OP = 0xC0020035,
+  MD_NTSTATUS_WIN_EPT_NT_NOT_REGISTERED = 0xC0020036,
+  MD_NTSTATUS_WIN_RPC_NT_NOTHING_TO_EXPORT = 0xC0020037,
+  MD_NTSTATUS_WIN_RPC_NT_INCOMPLETE_NAME = 0xC0020038,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_VERS_OPTION = 0xC0020039,
+  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_MEMBERS = 0xC002003A,
+  MD_NTSTATUS_WIN_RPC_NT_NOT_ALL_OBJS_UNEXPORTED = 0xC002003B,
+  MD_NTSTATUS_WIN_RPC_NT_INTERFACE_NOT_FOUND = 0xC002003C,
+  MD_NTSTATUS_WIN_RPC_NT_ENTRY_ALREADY_EXISTS = 0xC002003D,
+  MD_NTSTATUS_WIN_RPC_NT_ENTRY_NOT_FOUND = 0xC002003E,
+  MD_NTSTATUS_WIN_RPC_NT_NAME_SERVICE_UNAVAILABLE = 0xC002003F,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_NAF_ID = 0xC0020040,
+  MD_NTSTATUS_WIN_RPC_NT_CANNOT_SUPPORT = 0xC0020041,
+  MD_NTSTATUS_WIN_RPC_NT_NO_CONTEXT_AVAILABLE = 0xC0020042,
+  MD_NTSTATUS_WIN_RPC_NT_INTERNAL_ERROR = 0xC0020043,
+  MD_NTSTATUS_WIN_RPC_NT_ZERO_DIVIDE = 0xC0020044,
+  MD_NTSTATUS_WIN_RPC_NT_ADDRESS_ERROR = 0xC0020045,
+  MD_NTSTATUS_WIN_RPC_NT_FP_DIV_ZERO = 0xC0020046,
+  MD_NTSTATUS_WIN_RPC_NT_FP_UNDERFLOW = 0xC0020047,
+  MD_NTSTATUS_WIN_RPC_NT_FP_OVERFLOW = 0xC0020048,
+  MD_NTSTATUS_WIN_RPC_NT_CALL_IN_PROGRESS = 0xC0020049,
+  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_BINDINGS = 0xC002004A,
+  MD_NTSTATUS_WIN_RPC_NT_GROUP_MEMBER_NOT_FOUND = 0xC002004B,
+  MD_NTSTATUS_WIN_EPT_NT_CANT_CREATE = 0xC002004C,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_OBJECT = 0xC002004D,
+  MD_NTSTATUS_WIN_RPC_NT_NO_INTERFACES = 0xC002004F,
+  MD_NTSTATUS_WIN_RPC_NT_CALL_CANCELLED = 0xC0020050,
+  MD_NTSTATUS_WIN_RPC_NT_BINDING_INCOMPLETE = 0xC0020051,
+  MD_NTSTATUS_WIN_RPC_NT_COMM_FAILURE = 0xC0020052,
+  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_AUTHN_LEVEL = 0xC0020053,
+  MD_NTSTATUS_WIN_RPC_NT_NO_PRINC_NAME = 0xC0020054,
+  MD_NTSTATUS_WIN_RPC_NT_NOT_RPC_ERROR = 0xC0020055,
+  MD_NTSTATUS_WIN_RPC_NT_SEC_PKG_ERROR = 0xC0020057,
+  MD_NTSTATUS_WIN_RPC_NT_NOT_CANCELLED = 0xC0020058,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_HANDLE = 0xC0020062,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_CALL = 0xC0020063,
+  MD_NTSTATUS_WIN_RPC_NT_PROXY_ACCESS_DENIED = 0xC0020064,
+  MD_NTSTATUS_WIN_RPC_NT_COOKIE_AUTH_FAILED = 0xC0020065,
+  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_ENTRIES = 0xC0030001,
+  MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_OPEN_FAIL = 0xC0030002,
+  MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_SHORT_FILE = 0xC0030003,
+  MD_NTSTATUS_WIN_RPC_NT_SS_IN_NULL_CONTEXT = 0xC0030004,
+  MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_MISMATCH = 0xC0030005,
+  MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_DAMAGED = 0xC0030006,
+  MD_NTSTATUS_WIN_RPC_NT_SS_HANDLES_MISMATCH = 0xC0030007,
+  MD_NTSTATUS_WIN_RPC_NT_SS_CANNOT_GET_CALL_HANDLE = 0xC0030008,
+  MD_NTSTATUS_WIN_RPC_NT_NULL_REF_POINTER = 0xC0030009,
+  MD_NTSTATUS_WIN_RPC_NT_ENUM_VALUE_OUT_OF_RANGE = 0xC003000A,
+  MD_NTSTATUS_WIN_RPC_NT_BYTE_COUNT_TOO_SMALL = 0xC003000B,
+  MD_NTSTATUS_WIN_RPC_NT_BAD_STUB_DATA = 0xC003000C,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_ES_ACTION = 0xC0030059,
+  MD_NTSTATUS_WIN_RPC_NT_WRONG_ES_VERSION = 0xC003005A,
+  MD_NTSTATUS_WIN_RPC_NT_WRONG_STUB_VERSION = 0xC003005B,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OBJECT = 0xC003005C,
+  MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OPERATION = 0xC003005D,
+  MD_NTSTATUS_WIN_RPC_NT_WRONG_PIPE_VERSION = 0xC003005E,
+  MD_NTSTATUS_WIN_RPC_NT_PIPE_CLOSED = 0xC003005F,
+  MD_NTSTATUS_WIN_RPC_NT_PIPE_DISCIPLINE_ERROR = 0xC0030060,
+  MD_NTSTATUS_WIN_RPC_NT_PIPE_EMPTY = 0xC0030061,
+  MD_NTSTATUS_WIN_STATUS_PNP_BAD_MPS_TABLE = 0xC0040035,
+  MD_NTSTATUS_WIN_STATUS_PNP_TRANSLATION_FAILED = 0xC0040036,
+  MD_NTSTATUS_WIN_STATUS_PNP_IRQ_TRANSLATION_FAILED = 0xC0040037,
+  MD_NTSTATUS_WIN_STATUS_PNP_INVALID_ID = 0xC0040038,
+  MD_NTSTATUS_WIN_STATUS_IO_REISSUE_AS_CACHED = 0xC0040039,
+  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_INVALID = 0xC00A0001,
+  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_PD = 0xC00A0002,
+  MD_NTSTATUS_WIN_STATUS_CTX_PD_NOT_FOUND = 0xC00A0003,
+  MD_NTSTATUS_WIN_STATUS_CTX_CLOSE_PENDING = 0xC00A0006,
+  MD_NTSTATUS_WIN_STATUS_CTX_NO_OUTBUF = 0xC00A0007,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_INF_NOT_FOUND = 0xC00A0008,
+  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_MODEMNAME = 0xC00A0009,
+  MD_NTSTATUS_WIN_STATUS_CTX_RESPONSE_ERROR = 0xC00A000A,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_TIMEOUT = 0xC00A000B,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_CARRIER = 0xC00A000C,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE = 0xC00A000D,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_BUSY = 0xC00A000E,
+  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_VOICE = 0xC00A000F,
+  MD_NTSTATUS_WIN_STATUS_CTX_TD_ERROR = 0xC00A0010,
+  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_CLIENT_INVALID = 0xC00A0012,
+  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_NOT_AVAILABLE = 0xC00A0013,
+  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_EXPIRED = 0xC00A0014,
+  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NOT_FOUND = 0xC00A0015,
+  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_COLLISION = 0xC00A0016,
+  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_BUSY = 0xC00A0017,
+  MD_NTSTATUS_WIN_STATUS_CTX_BAD_VIDEO_MODE = 0xC00A0018,
+  MD_NTSTATUS_WIN_STATUS_CTX_GRAPHICS_INVALID = 0xC00A0022,
+  MD_NTSTATUS_WIN_STATUS_CTX_NOT_CONSOLE = 0xC00A0024,
+  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_QUERY_TIMEOUT = 0xC00A0026,
+  MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_DISCONNECT = 0xC00A0027,
+  MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_CONNECT = 0xC00A0028,
+  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DENIED = 0xC00A002A,
+  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_ACCESS_DENIED = 0xC00A002B,
+  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_WD = 0xC00A002E,
+  MD_NTSTATUS_WIN_STATUS_CTX_WD_NOT_FOUND = 0xC00A002F,
+  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_INVALID = 0xC00A0030,
+  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DISABLED = 0xC00A0031,
+  MD_NTSTATUS_WIN_STATUS_RDP_PROTOCOL_ERROR = 0xC00A0032,
+  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_NOT_SET = 0xC00A0033,
+  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_IN_USE = 0xC00A0034,
+  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 0xC00A0035,
+  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_NOT_RUNNING = 0xC00A0036,
+  MD_NTSTATUS_WIN_STATUS_CTX_LOGON_DISABLED = 0xC00A0037,
+  MD_NTSTATUS_WIN_STATUS_CTX_SECURITY_LAYER_ERROR = 0xC00A0038,
+  MD_NTSTATUS_WIN_STATUS_TS_INCOMPATIBLE_SESSIONS = 0xC00A0039,
+  MD_NTSTATUS_WIN_STATUS_TS_VIDEO_SUBSYSTEM_ERROR = 0xC00A003A,
+  MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_FOUND = 0xC00B0001,
+  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_FILE = 0xC00B0002,
+  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_RC_CONFIG = 0xC00B0003,
+  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_LOCALE_NAME = 0xC00B0004,
+  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME = 0xC00B0005,
+  MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_LOADED = 0xC00B0006,
+  MD_NTSTATUS_WIN_STATUS_RESOURCE_ENUM_USER_STOP = 0xC00B0007,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NODE = 0xC0130001,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_EXISTS = 0xC0130002,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_IN_PROGRESS = 0xC0130003,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_FOUND = 0xC0130004,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND = 0xC0130005,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_EXISTS = 0xC0130006,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_FOUND = 0xC0130007,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_EXISTS = 0xC0130008,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_NOT_FOUND = 0xC0130009,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_REQUEST = 0xC013000A,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK_PROVIDER = 0xC013000B,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_DOWN = 0xC013000C,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UNREACHABLE = 0xC013000D,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_MEMBER = 0xC013000E,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS = 0xC013000F,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK = 0xC0130010,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_NET_ADAPTERS = 0xC0130011,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UP = 0xC0130012,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_PAUSED = 0xC0130013,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_PAUSED = 0xC0130014,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_SECURITY_CONTEXT = 0xC0130015,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_INTERNAL = 0xC0130016,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_POISONED = 0xC0130017,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_NON_CSV_PATH = 0xC0130018,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL = 0xC0130019,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS = 0xC0130020,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR = 0xC0130021,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_REDIRECTED = 0xC0130022,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NOT_REDIRECTED = 0xC0130023,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING = 0xC0130024,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS = 0xC0130025,
+  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL = 0xC0130026,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OPCODE = 0xC0140001,
+  MD_NTSTATUS_WIN_STATUS_ACPI_STACK_OVERFLOW = 0xC0140002,
+  MD_NTSTATUS_WIN_STATUS_ACPI_ASSERT_FAILED = 0xC0140003,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_INDEX = 0xC0140004,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGUMENT = 0xC0140005,
+  MD_NTSTATUS_WIN_STATUS_ACPI_FATAL = 0xC0140006,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_SUPERNAME = 0xC0140007,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGTYPE = 0xC0140008,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OBJTYPE = 0xC0140009,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TARGETTYPE = 0xC014000A,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INCORRECT_ARGUMENT_COUNT = 0xC014000B,
+  MD_NTSTATUS_WIN_STATUS_ACPI_ADDRESS_NOT_MAPPED = 0xC014000C,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_EVENTTYPE = 0xC014000D,
+  MD_NTSTATUS_WIN_STATUS_ACPI_HANDLER_COLLISION = 0xC014000E,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_DATA = 0xC014000F,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_REGION = 0xC0140010,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ACCESS_SIZE = 0xC0140011,
+  MD_NTSTATUS_WIN_STATUS_ACPI_ACQUIRE_GLOBAL_LOCK = 0xC0140012,
+  MD_NTSTATUS_WIN_STATUS_ACPI_ALREADY_INITIALIZED = 0xC0140013,
+  MD_NTSTATUS_WIN_STATUS_ACPI_NOT_INITIALIZED = 0xC0140014,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_MUTEX_LEVEL = 0xC0140015,
+  MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNED = 0xC0140016,
+  MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNER = 0xC0140017,
+  MD_NTSTATUS_WIN_STATUS_ACPI_RS_ACCESS = 0xC0140018,
+  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TABLE = 0xC0140019,
+  MD_NTSTATUS_WIN_STATUS_ACPI_REG_HANDLER_FAILED = 0xC0140020,
+  MD_NTSTATUS_WIN_STATUS_ACPI_POWER_REQUEST_FAILED = 0xC0140021,
+  MD_NTSTATUS_WIN_STATUS_SXS_SECTION_NOT_FOUND = 0xC0150001,
+  MD_NTSTATUS_WIN_STATUS_SXS_CANT_GEN_ACTCTX = 0xC0150002,
+  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_ACTCTXDATA_FORMAT = 0xC0150003,
+  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_NOT_FOUND = 0xC0150004,
+  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_FORMAT_ERROR = 0xC0150005,
+  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_PARSE_ERROR = 0xC0150006,
+  MD_NTSTATUS_WIN_STATUS_SXS_ACTIVATION_CONTEXT_DISABLED = 0xC0150007,
+  MD_NTSTATUS_WIN_STATUS_SXS_KEY_NOT_FOUND = 0xC0150008,
+  MD_NTSTATUS_WIN_STATUS_SXS_VERSION_CONFLICT = 0xC0150009,
+  MD_NTSTATUS_WIN_STATUS_SXS_WRONG_SECTION_TYPE = 0xC015000A,
+  MD_NTSTATUS_WIN_STATUS_SXS_THREAD_QUERIES_DISABLED = 0xC015000B,
+  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_MISSING = 0xC015000C,
+  MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET = 0xC015000E,
+  MD_NTSTATUS_WIN_STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F,
+  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010,
+  MD_NTSTATUS_WIN_STATUS_SXS_MULTIPLE_DEACTIVATION = 0xC0150011,
+  MD_NTSTATUS_WIN_STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 0xC0150012,
+  MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_TERMINATION_REQUESTED = 0xC0150013,
+  MD_NTSTATUS_WIN_STATUS_SXS_CORRUPT_ACTIVATION_STACK = 0xC0150014,
+  MD_NTSTATUS_WIN_STATUS_SXS_CORRUPTION = 0xC0150015,
+  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 0xC0150016,
+  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 0xC0150017,
+  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 0xC0150018,
+  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_PARSE_ERROR = 0xC0150019,
+  MD_NTSTATUS_WIN_STATUS_SXS_COMPONENT_STORE_CORRUPT = 0xC015001A,
+  MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISMATCH = 0xC015001B,
+  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 0xC015001C,
+  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITIES_DIFFERENT = 0xC015001D,
+  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 0xC015001E,
+  MD_NTSTATUS_WIN_STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY = 0xC015001F,
+  MD_NTSTATUS_WIN_STATUS_ADVANCED_INSTALLER_FAILED = 0xC0150020,
+  MD_NTSTATUS_WIN_STATUS_XML_ENCODING_MISMATCH = 0xC0150021,
+  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_TOO_BIG = 0xC0150022,
+  MD_NTSTATUS_WIN_STATUS_SXS_SETTING_NOT_REGISTERED = 0xC0150023,
+  MD_NTSTATUS_WIN_STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 0xC0150024,
+  MD_NTSTATUS_WIN_STATUS_SMI_PRIMITIVE_INSTALLER_FAILED = 0xC0150025,
+  MD_NTSTATUS_WIN_STATUS_GENERIC_COMMAND_FAILED = 0xC0150026,
+  MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISSING = 0xC0150027,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_CONFLICT = 0xC0190001,
+  MD_NTSTATUS_WIN_STATUS_INVALID_TRANSACTION = 0xC0190002,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ACTIVE = 0xC0190003,
+  MD_NTSTATUS_WIN_STATUS_TM_INITIALIZATION_FAILED = 0xC0190004,
+  MD_NTSTATUS_WIN_STATUS_RM_NOT_ACTIVE = 0xC0190005,
+  MD_NTSTATUS_WIN_STATUS_RM_METADATA_CORRUPT = 0xC0190006,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_JOINED = 0xC0190007,
+  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_RM = 0xC0190008,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE = 0xC019000A,
+  MD_NTSTATUS_WIN_STATUS_LOG_RESIZE_INVALID_SIZE = 0xC019000B,
+  MD_NTSTATUS_WIN_STATUS_REMOTE_FILE_VERSION_MISMATCH = 0xC019000C,
+  MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_ALREADY_EXISTS = 0xC019000F,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_PROPAGATION_FAILED = 0xC0190010,
+  MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_NOT_FOUND = 0xC0190011,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_SUPERIOR_EXISTS = 0xC0190012,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUEST_NOT_VALID = 0xC0190013,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_REQUESTED = 0xC0190014,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_ABORTED = 0xC0190015,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_COMMITTED = 0xC0190016,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER = 0xC0190017,
+  MD_NTSTATUS_WIN_STATUS_CURRENT_TRANSACTION_NOT_VALID = 0xC0190018,
+  MD_NTSTATUS_WIN_STATUS_LOG_GROWTH_FAILED = 0xC0190019,
+  MD_NTSTATUS_WIN_STATUS_OBJECT_NO_LONGER_EXISTS = 0xC0190021,
+  MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_FOUND = 0xC0190022,
+  MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_VALID = 0xC0190023,
+  MD_NTSTATUS_WIN_STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = 0xC0190024,
+  MD_NTSTATUS_WIN_STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = 0xC0190025,
+  MD_NTSTATUS_WIN_STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS = 0xC0190026,
+  MD_NTSTATUS_WIN_STATUS_HANDLE_NO_LONGER_VALID = 0xC0190028,
+  MD_NTSTATUS_WIN_STATUS_LOG_CORRUPTION_DETECTED = 0xC0190030,
+  MD_NTSTATUS_WIN_STATUS_RM_DISCONNECTED = 0xC0190032,
+  MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_SUPERIOR = 0xC0190033,
+  MD_NTSTATUS_WIN_STATUS_FILE_IDENTITY_NOT_PERSISTENT = 0xC0190036,
+  MD_NTSTATUS_WIN_STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = 0xC0190037,
+  MD_NTSTATUS_WIN_STATUS_CANT_CROSS_RM_BOUNDARY = 0xC0190038,
+  MD_NTSTATUS_WIN_STATUS_TXF_DIR_NOT_EMPTY = 0xC0190039,
+  MD_NTSTATUS_WIN_STATUS_INDOUBT_TRANSACTIONS_EXIST = 0xC019003A,
+  MD_NTSTATUS_WIN_STATUS_TM_VOLATILE = 0xC019003B,
+  MD_NTSTATUS_WIN_STATUS_ROLLBACK_TIMER_EXPIRED = 0xC019003C,
+  MD_NTSTATUS_WIN_STATUS_TXF_ATTRIBUTE_CORRUPT = 0xC019003D,
+  MD_NTSTATUS_WIN_STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION = 0xC019003E,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED = 0xC019003F,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = 0xC0190040,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUIRED_PROMOTION = 0xC0190043,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION = 0xC0190044,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_NOT_FROZEN = 0xC0190045,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_FREEZE_IN_PROGRESS = 0xC0190046,
+  MD_NTSTATUS_WIN_STATUS_NOT_SNAPSHOT_VOLUME = 0xC0190047,
+  MD_NTSTATUS_WIN_STATUS_NO_SAVEPOINT_WITH_OPEN_FILES = 0xC0190048,
+  MD_NTSTATUS_WIN_STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION = 0xC0190049,
+  MD_NTSTATUS_WIN_STATUS_TM_IDENTITY_MISMATCH = 0xC019004A,
+  MD_NTSTATUS_WIN_STATUS_FLOATED_SECTION = 0xC019004B,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_ACCEPT_TRANSACTED_WORK = 0xC019004C,
+  MD_NTSTATUS_WIN_STATUS_CANNOT_ABORT_TRANSACTIONS = 0xC019004D,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_FOUND = 0xC019004E,
+  MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_NOT_FOUND = 0xC019004F,
+  MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_FOUND = 0xC0190050,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_FOUND = 0xC0190051,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_ONLINE = 0xC0190052,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = 0xC0190053,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ROOT = 0xC0190054,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_OBJECT_EXPIRED = 0xC0190055,
+  MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = 0xC0190056,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED = 0xC0190057,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RECORD_TOO_LONG = 0xC0190058,
+  MD_NTSTATUS_WIN_STATUS_NO_LINK_TRACKING_IN_TRANSACTION = 0xC0190059,
+  MD_NTSTATUS_WIN_STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = 0xC019005A,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INTEGRITY_VIOLATED = 0xC019005B,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH = 0xC019005C,
+  MD_NTSTATUS_WIN_STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = 0xC019005D,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_MUST_WRITETHROUGH = 0xC019005E,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_SUPERIOR = 0xC019005F,
+  MD_NTSTATUS_WIN_STATUS_EXPIRED_HANDLE = 0xC0190060,
+  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ENLISTED = 0xC0190061,
+  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_INVALID = 0xC01A0001,
+  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_PARITY_INVALID = 0xC01A0002,
+  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_REMAPPED = 0xC01A0003,
+  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INCOMPLETE = 0xC01A0004,
+  MD_NTSTATUS_WIN_STATUS_LOG_INVALID_RANGE = 0xC01A0005,
+  MD_NTSTATUS_WIN_STATUS_LOG_BLOCKS_EXHAUSTED = 0xC01A0006,
+  MD_NTSTATUS_WIN_STATUS_LOG_READ_CONTEXT_INVALID = 0xC01A0007,
+  MD_NTSTATUS_WIN_STATUS_LOG_RESTART_INVALID = 0xC01A0008,
+  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_VERSION = 0xC01A0009,
+  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INVALID = 0xC01A000A,
+  MD_NTSTATUS_WIN_STATUS_LOG_READ_MODE_INVALID = 0xC01A000B,
+  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_CORRUPT = 0xC01A000D,
+  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INVALID = 0xC01A000E,
+  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INCONSISTENT = 0xC01A000F,
+  MD_NTSTATUS_WIN_STATUS_LOG_RESERVATION_INVALID = 0xC01A0010,
+  MD_NTSTATUS_WIN_STATUS_LOG_CANT_DELETE = 0xC01A0011,
+  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_LIMIT_EXCEEDED = 0xC01A0012,
+  MD_NTSTATUS_WIN_STATUS_LOG_START_OF_LOG = 0xC01A0013,
+  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_ALREADY_INSTALLED = 0xC01A0014,
+  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_NOT_INSTALLED = 0xC01A0015,
+  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_INVALID = 0xC01A0016,
+  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_CONFLICT = 0xC01A0017,
+  MD_NTSTATUS_WIN_STATUS_LOG_PINNED_ARCHIVE_TAIL = 0xC01A0018,
+  MD_NTSTATUS_WIN_STATUS_LOG_RECORD_NONEXISTENT = 0xC01A0019,
+  MD_NTSTATUS_WIN_STATUS_LOG_RECORDS_RESERVED_INVALID = 0xC01A001A,
+  MD_NTSTATUS_WIN_STATUS_LOG_SPACE_RESERVED_INVALID = 0xC01A001B,
+  MD_NTSTATUS_WIN_STATUS_LOG_TAIL_INVALID = 0xC01A001C,
+  MD_NTSTATUS_WIN_STATUS_LOG_FULL = 0xC01A001D,
+  MD_NTSTATUS_WIN_STATUS_LOG_MULTIPLEXED = 0xC01A001E,
+  MD_NTSTATUS_WIN_STATUS_LOG_DEDICATED = 0xC01A001F,
+  MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS = 0xC01A0020,
+  MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_IN_PROGRESS = 0xC01A0021,
+  MD_NTSTATUS_WIN_STATUS_LOG_EPHEMERAL = 0xC01A0022,
+  MD_NTSTATUS_WIN_STATUS_LOG_NOT_ENOUGH_CONTAINERS = 0xC01A0023,
+  MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_ALREADY_REGISTERED = 0xC01A0024,
+  MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_NOT_REGISTERED = 0xC01A0025,
+  MD_NTSTATUS_WIN_STATUS_LOG_FULL_HANDLER_IN_PROGRESS = 0xC01A0026,
+  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_READ_FAILED = 0xC01A0027,
+  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_WRITE_FAILED = 0xC01A0028,
+  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_OPEN_FAILED = 0xC01A0029,
+  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_STATE_INVALID = 0xC01A002A,
+  MD_NTSTATUS_WIN_STATUS_LOG_STATE_INVALID = 0xC01A002B,
+  MD_NTSTATUS_WIN_STATUS_LOG_PINNED = 0xC01A002C,
+  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_FLUSH_FAILED = 0xC01A002D,
+  MD_NTSTATUS_WIN_STATUS_LOG_INCONSISTENT_SECURITY = 0xC01A002E,
+  MD_NTSTATUS_WIN_STATUS_LOG_APPENDED_FLUSH_FAILED = 0xC01A002F,
+  MD_NTSTATUS_WIN_STATUS_LOG_PINNED_RESERVATION = 0xC01A0030,
+  MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD = 0xC01B00EA,
+  MD_NTSTATUS_WIN_STATUS_FLT_NO_HANDLER_DEFINED = 0xC01C0001,
+  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_DEFINED = 0xC01C0002,
+  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST = 0xC01C0003,
+  MD_NTSTATUS_WIN_STATUS_FLT_DISALLOW_FAST_IO = 0xC01C0004,
+  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_NAME_REQUEST = 0xC01C0005,
+  MD_NTSTATUS_WIN_STATUS_FLT_NOT_SAFE_TO_POST_OPERATION = 0xC01C0006,
+  MD_NTSTATUS_WIN_STATUS_FLT_NOT_INITIALIZED = 0xC01C0007,
+  MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_READY = 0xC01C0008,
+  MD_NTSTATUS_WIN_STATUS_FLT_POST_OPERATION_CLEANUP = 0xC01C0009,
+  MD_NTSTATUS_WIN_STATUS_FLT_INTERNAL_ERROR = 0xC01C000A,
+  MD_NTSTATUS_WIN_STATUS_FLT_DELETING_OBJECT = 0xC01C000B,
+  MD_NTSTATUS_WIN_STATUS_FLT_MUST_BE_NONPAGED_POOL = 0xC01C000C,
+  MD_NTSTATUS_WIN_STATUS_FLT_DUPLICATE_ENTRY = 0xC01C000D,
+  MD_NTSTATUS_WIN_STATUS_FLT_CBDQ_DISABLED = 0xC01C000E,
+  MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_ATTACH = 0xC01C000F,
+  MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_DETACH = 0xC01C0010,
+  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_ALTITUDE_COLLISION = 0xC01C0011,
+  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NAME_COLLISION = 0xC01C0012,
+  MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_FOUND = 0xC01C0013,
+  MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_NOT_FOUND = 0xC01C0014,
+  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NOT_FOUND = 0xC01C0015,
+  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND = 0xC01C0016,
+  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_CONTEXT_REGISTRATION = 0xC01C0017,
+  MD_NTSTATUS_WIN_STATUS_FLT_NAME_CACHE_MISS = 0xC01C0018,
+  MD_NTSTATUS_WIN_STATUS_FLT_NO_DEVICE_OBJECT = 0xC01C0019,
+  MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_ALREADY_MOUNTED = 0xC01C001A,
+  MD_NTSTATUS_WIN_STATUS_FLT_ALREADY_ENLISTED = 0xC01C001B,
+  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_LINKED = 0xC01C001C,
+  MD_NTSTATUS_WIN_STATUS_FLT_NO_WAITER_FOR_REPLY = 0xC01C0020,
+  MD_NTSTATUS_WIN_STATUS_FLT_REGISTRATION_BUSY = 0xC01C0023,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_NO_DESCRIPTOR = 0xC01D0001,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = 0xC01D0002,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = 0xC01D0003,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK = 0xC01D0004,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = 0xC01D0005,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = 0xC01D0006,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = 0xC01D0007,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA = 0xC01D0008,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK = 0xC01D0009,
+  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_MANUFACTURE_DATE = 0xC01D000A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = 0xC01E0000,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER = 0xC01E0001,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER = 0xC01E0002,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_WAS_RESET = 0xC01E0003,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DRIVER_MODEL = 0xC01E0004,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_MODE_CHANGED = 0xC01E0005,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_OCCLUDED = 0xC01E0006,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_DENIED = 0xC01E0007,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANNOTCOLORCONVERT = 0xC01E0008,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DRIVER_MISMATCH = 0xC01E0009,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED = 0xC01E000B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_UNOCCLUDED = 0xC01E000C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE = 0xC01E000D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED = 0xC01E000E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDEO_MEMORY = 0xC01E0100,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_LOCK_MEMORY = 0xC01E0101,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_BUSY = 0xC01E0102,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOO_MANY_REFERENCES = 0xC01E0103,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_LATER = 0xC01E0104,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_NOW = 0xC01E0105,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_INVALID = 0xC01E0106,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = 0xC01E0107,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = 0xC01E0108,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = 0xC01E0109,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE = 0xC01E0110,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = 0xC01E0111,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CLOSED = 0xC01E0112,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE = 0xC01E0113,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE = 0xC01E0114,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE = 0xC01E0115,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST = 0xC01E0116,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = 0xC01E0200,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY = 0xC01E0300,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = 0xC01E0301,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = 0xC01E0302,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN = 0xC01E0303,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = 0xC01E0304,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = 0xC01E0305,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = 0xC01E0306,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = 0xC01E0308,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET = 0xC01E0309,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_FREQUENCY = 0xC01E030A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ACTIVE_REGION = 0xC01E030B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_TOTAL_REGION = 0xC01E030C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = 0xC01E0310,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = 0xC01E0311,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = 0xC01E0312,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = 0xC01E0313,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET = 0xC01E0314,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = 0xC01E0315,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = 0xC01E0316,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET = 0xC01E0317,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ALREADY_IN_SET = 0xC01E0318,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = 0xC01E0319,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = 0xC01E031A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = 0xC01E031B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = 0xC01E031C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = 0xC01E031D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = 0xC01E031F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_MODESET = 0xC01E0320,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = 0xC01E0321,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = 0xC01E0322,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = 0xC01E0323,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = 0xC01E0324,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = 0xC01E0325,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = 0xC01E0326,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY = 0xC01E0327,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = 0xC01E0328,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = 0xC01E0329,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET = 0xC01E032A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR = 0xC01E032B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = 0xC01E032C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = 0xC01E032D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = 0xC01E032E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = 0xC01E032F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_RESOURCES_NOT_RELATED = 0xC01E0330,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = 0xC01E0331,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = 0xC01E0332,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = 0xC01E0333,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = 0xC01E0334,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDPNMGR = 0xC01E0335,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_ACTIVE_VIDPN = 0xC01E0336,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY = 0xC01E0337,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NOT_CONNECTED = 0xC01E0338,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = 0xC01E0339,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = 0xC01E033A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE = 0xC01E033B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_STRIDE = 0xC01E033C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELFORMAT = 0xC01E033D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COLORBASIS = 0xC01E033E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = 0xC01E033F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = 0xC01E0340,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = 0xC01E0341,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = 0xC01E0342,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = 0xC01E0343,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = 0xC01E0344,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = 0xC01E0345,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = 0xC01E0346,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_GAMMA_RAMP = 0xC01E0347,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = 0xC01E0348,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = 0xC01E0349,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_IN_MODESET = 0xC01E034A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = 0xC01E034D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE = 0xC01E034E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE = 0xC01E034F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = 0xC01E0350,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING = 0xC01E0352,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = 0xC01E0353,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = 0xC01E0354,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = 0xC01E0355,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = 0xC01E0356,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = 0xC01E0357,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = 0xC01E0358,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED = 0xC01E0359,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = 0xC01E035A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_CLIENT_TYPE = 0xC01E035B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET = 0xC01E035C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = 0xC01E0400,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = 0xC01E0401,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER = 0xC01E0430,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED = 0xC01E0431,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = 0xC01E0432,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY = 0xC01E0433,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED = 0xC01E0434,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = 0xC01E0435,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = 0xC01E0436,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER = 0xC01E0438,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = 0xC01E043B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NOT_SUPPORTED = 0xC01E0500,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_COPP_NOT_SUPPORTED = 0xC01E0501,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UAB_NOT_SUPPORTED = 0xC01E0502,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = 0xC01E0503,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST = 0xC01E0505,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INTERNAL_ERROR = 0xC01E050B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_HANDLE = 0xC01E050C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = 0xC01E050E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED = 0xC01E050F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED = 0xC01E0510,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_HFS_FAILED = 0xC01E0511,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_SRM = 0xC01E0512,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = 0xC01E0513,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = 0xC01E0514,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = 0xC01E0515,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = 0xC01E0516,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = 0xC01E0517,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = 0xC01E0518,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS = 0xC01E051A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = 0xC01E051C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = 0xC01E051D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = 0xC01E051E,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = 0xC01E051F,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = 0xC01E0520,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = 0xC01E0521,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_NOT_SUPPORTED = 0xC01E0580,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = 0xC01E0581,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = 0xC01E0582,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA = 0xC01E0583,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = 0xC01E0584,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_DATA = 0xC01E0585,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = 0xC01E0586,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING = 0xC01E0587,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MCA_INTERNAL_ERROR = 0xC01E0588,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = 0xC01E0589,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = 0xC01E058A,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = 0xC01E058B,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = 0xC01E058C,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS = 0xC01E058D,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = 0xC01E05E0,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = 0xC01E05E1,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = 0xC01E05E2,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = 0xC01E05E3,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_POINTER = 0xC01E05E4,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = 0xC01E05E5,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = 0xC01E05E6,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INTERNAL_ERROR = 0xC01E05E7,
+  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = 0xC01E05E8,
+  MD_NTSTATUS_WIN_STATUS_FVE_LOCKED_VOLUME = 0xC0210000,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ENCRYPTED = 0xC0210001,
+  MD_NTSTATUS_WIN_STATUS_FVE_BAD_INFORMATION = 0xC0210002,
+  MD_NTSTATUS_WIN_STATUS_FVE_TOO_SMALL = 0xC0210003,
+  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_WRONG_FS = 0xC0210004,
+  MD_NTSTATUS_WIN_STATUS_FVE_BAD_PARTITION_SIZE = 0xC0210005,
+  MD_NTSTATUS_WIN_STATUS_FVE_FS_NOT_EXTENDED = 0xC0210006,
+  MD_NTSTATUS_WIN_STATUS_FVE_FS_MOUNTED = 0xC0210007,
+  MD_NTSTATUS_WIN_STATUS_FVE_NO_LICENSE = 0xC0210008,
+  MD_NTSTATUS_WIN_STATUS_FVE_ACTION_NOT_ALLOWED = 0xC0210009,
+  MD_NTSTATUS_WIN_STATUS_FVE_BAD_DATA = 0xC021000A,
+  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_NOT_BOUND = 0xC021000B,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_DATA_VOLUME = 0xC021000C,
+  MD_NTSTATUS_WIN_STATUS_FVE_CONV_READ_ERROR = 0xC021000D,
+  MD_NTSTATUS_WIN_STATUS_FVE_CONV_WRITE_ERROR = 0xC021000E,
+  MD_NTSTATUS_WIN_STATUS_FVE_OVERLAPPED_UPDATE = 0xC021000F,
+  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_SECTOR_SIZE = 0xC0210010,
+  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_AUTHENTICATION = 0xC0210011,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_OS_VOLUME = 0xC0210012,
+  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NOT_FOUND = 0xC0210013,
+  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_INVALID = 0xC0210014,
+  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NO_VMK = 0xC0210015,
+  MD_NTSTATUS_WIN_STATUS_FVE_TPM_DISABLED = 0xC0210016,
+  MD_NTSTATUS_WIN_STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO = 0xC0210017,
+  MD_NTSTATUS_WIN_STATUS_FVE_TPM_INVALID_PCR = 0xC0210018,
+  MD_NTSTATUS_WIN_STATUS_FVE_TPM_NO_VMK = 0xC0210019,
+  MD_NTSTATUS_WIN_STATUS_FVE_PIN_INVALID = 0xC021001A,
+  MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_APPLICATION = 0xC021001B,
+  MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_CONFIG = 0xC021001C,
+  MD_NTSTATUS_WIN_STATUS_FVE_DEBUGGER_ENABLED = 0xC021001D,
+  MD_NTSTATUS_WIN_STATUS_FVE_DRY_RUN_FAILED = 0xC021001E,
+  MD_NTSTATUS_WIN_STATUS_FVE_BAD_METADATA_POINTER = 0xC021001F,
+  MD_NTSTATUS_WIN_STATUS_FVE_OLD_METADATA_COPY = 0xC0210020,
+  MD_NTSTATUS_WIN_STATUS_FVE_REBOOT_REQUIRED = 0xC0210021,
+  MD_NTSTATUS_WIN_STATUS_FVE_RAW_ACCESS = 0xC0210022,
+  MD_NTSTATUS_WIN_STATUS_FVE_RAW_BLOCKED = 0xC0210023,
+  MD_NTSTATUS_WIN_STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY = 0xC0210024,
+  MD_NTSTATUS_WIN_STATUS_FVE_MOR_FAILED = 0xC0210025,
+  MD_NTSTATUS_WIN_STATUS_FVE_NO_FEATURE_LICENSE = 0xC0210026,
+  MD_NTSTATUS_WIN_STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = 0xC0210027,
+  MD_NTSTATUS_WIN_STATUS_FVE_CONV_RECOVERY_FAILED = 0xC0210028,
+  MD_NTSTATUS_WIN_STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG = 0xC0210029,
+  MD_NTSTATUS_WIN_STATUS_FVE_INVALID_DATUM_TYPE = 0xC021002A,
+  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_TOO_SMALL = 0xC0210030,
+  MD_NTSTATUS_WIN_STATUS_FVE_ENH_PIN_INVALID = 0xC0210031,
+  MD_NTSTATUS_WIN_STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210032,
+  MD_NTSTATUS_WIN_STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210033,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK = 0xC0210034,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CLUSTER = 0xC0210035,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING = 0xC0210036,
+  MD_NTSTATUS_WIN_STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE = 0xC0210037,
+  MD_NTSTATUS_WIN_STATUS_FVE_EDRIVE_DRY_RUN_FAILED = 0xC0210038,
+  MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_DISABLED = 0xC0210039,
+  MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_CONFIG_CHANGE = 0xC021003A,
+  MD_NTSTATUS_WIN_STATUS_FVE_DEVICE_LOCKEDOUT = 0xC021003B,
+  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT = 0xC021003C,
+  MD_NTSTATUS_WIN_STATUS_FVE_NOT_DE_VOLUME = 0xC021003D,
+  MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_DISABLED = 0xC021003E,
+  MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED = 0xC021003F,
+  MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOT_FOUND = 0xC0220001,
+  MD_NTSTATUS_WIN_STATUS_FWP_CONDITION_NOT_FOUND = 0xC0220002,
+  MD_NTSTATUS_WIN_STATUS_FWP_FILTER_NOT_FOUND = 0xC0220003,
+  MD_NTSTATUS_WIN_STATUS_FWP_LAYER_NOT_FOUND = 0xC0220004,
+  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_NOT_FOUND = 0xC0220005,
+  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND = 0xC0220006,
+  MD_NTSTATUS_WIN_STATUS_FWP_SUBLAYER_NOT_FOUND = 0xC0220007,
+  MD_NTSTATUS_WIN_STATUS_FWP_NOT_FOUND = 0xC0220008,
+  MD_NTSTATUS_WIN_STATUS_FWP_ALREADY_EXISTS = 0xC0220009,
+  MD_NTSTATUS_WIN_STATUS_FWP_IN_USE = 0xC022000A,
+  MD_NTSTATUS_WIN_STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS = 0xC022000B,
+  MD_NTSTATUS_WIN_STATUS_FWP_WRONG_SESSION = 0xC022000C,
+  MD_NTSTATUS_WIN_STATUS_FWP_NO_TXN_IN_PROGRESS = 0xC022000D,
+  MD_NTSTATUS_WIN_STATUS_FWP_TXN_IN_PROGRESS = 0xC022000E,
+  MD_NTSTATUS_WIN_STATUS_FWP_TXN_ABORTED = 0xC022000F,
+  MD_NTSTATUS_WIN_STATUS_FWP_SESSION_ABORTED = 0xC0220010,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_TXN = 0xC0220011,
+  MD_NTSTATUS_WIN_STATUS_FWP_TIMEOUT = 0xC0220012,
+  MD_NTSTATUS_WIN_STATUS_FWP_NET_EVENTS_DISABLED = 0xC0220013,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_LAYER = 0xC0220014,
+  MD_NTSTATUS_WIN_STATUS_FWP_KM_CLIENTS_ONLY = 0xC0220015,
+  MD_NTSTATUS_WIN_STATUS_FWP_LIFETIME_MISMATCH = 0xC0220016,
+  MD_NTSTATUS_WIN_STATUS_FWP_BUILTIN_OBJECT = 0xC0220017,
+  MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_CALLOUTS = 0xC0220018,
+  MD_NTSTATUS_WIN_STATUS_FWP_NOTIFICATION_DROPPED = 0xC0220019,
+  MD_NTSTATUS_WIN_STATUS_FWP_TRAFFIC_MISMATCH = 0xC022001A,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_SA_STATE = 0xC022001B,
+  MD_NTSTATUS_WIN_STATUS_FWP_NULL_POINTER = 0xC022001C,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ENUMERATOR = 0xC022001D,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_FLAGS = 0xC022001E,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_NET_MASK = 0xC022001F,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_RANGE = 0xC0220020,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_INTERVAL = 0xC0220021,
+  MD_NTSTATUS_WIN_STATUS_FWP_ZERO_LENGTH_ARRAY = 0xC0220022,
+  MD_NTSTATUS_WIN_STATUS_FWP_NULL_DISPLAY_NAME = 0xC0220023,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ACTION_TYPE = 0xC0220024,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_WEIGHT = 0xC0220025,
+  MD_NTSTATUS_WIN_STATUS_FWP_MATCH_TYPE_MISMATCH = 0xC0220026,
+  MD_NTSTATUS_WIN_STATUS_FWP_TYPE_MISMATCH = 0xC0220027,
+  MD_NTSTATUS_WIN_STATUS_FWP_OUT_OF_BOUNDS = 0xC0220028,
+  MD_NTSTATUS_WIN_STATUS_FWP_RESERVED = 0xC0220029,
+  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_CONDITION = 0xC022002A,
+  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_KEYMOD = 0xC022002B,
+  MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER = 0xC022002C,
+  MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER = 0xC022002D,
+  MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER = 0xC022002E,
+  MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = 0xC022002F,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_AUTH_METHOD = 0xC0220030,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_DH_GROUP = 0xC0220031,
+  MD_NTSTATUS_WIN_STATUS_FWP_EM_NOT_SUPPORTED = 0xC0220032,
+  MD_NTSTATUS_WIN_STATUS_FWP_NEVER_MATCH = 0xC0220033,
+  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_MISMATCH = 0xC0220034,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_PARAMETER = 0xC0220035,
+  MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_SUBLAYERS = 0xC0220036,
+  MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOTIFICATION_FAILED = 0xC0220037,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_AUTH_TRANSFORM = 0xC0220038,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_CIPHER_TRANSFORM = 0xC0220039,
+  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM = 0xC022003A,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TRANSFORM_COMBINATION = 0xC022003B,
+  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_AUTH_METHOD = 0xC022003C,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TUNNEL_ENDPOINT = 0xC022003D,
+  MD_NTSTATUS_WIN_STATUS_FWP_L2_DRIVER_NOT_READY = 0xC022003E,
+  MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED = 0xC022003F,
+  MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL = 0xC0220040,
+  MD_NTSTATUS_WIN_STATUS_FWP_CONNECTIONS_DISABLED = 0xC0220041,
+  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_DNS_NAME = 0xC0220042,
+  MD_NTSTATUS_WIN_STATUS_FWP_STILL_ON = 0xC0220043,
+  MD_NTSTATUS_WIN_STATUS_FWP_IKEEXT_NOT_RUNNING = 0xC0220044,
+  MD_NTSTATUS_WIN_STATUS_FWP_TCPIP_NOT_READY = 0xC0220100,
+  MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_CLOSING = 0xC0220101,
+  MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_STALE = 0xC0220102,
+  MD_NTSTATUS_WIN_STATUS_FWP_CANNOT_PEND = 0xC0220103,
+  MD_NTSTATUS_WIN_STATUS_FWP_DROP_NOICMP = 0xC0220104,
+  MD_NTSTATUS_WIN_STATUS_NDIS_CLOSING = 0xC0230002,
+  MD_NTSTATUS_WIN_STATUS_NDIS_BAD_VERSION = 0xC0230004,
+  MD_NTSTATUS_WIN_STATUS_NDIS_BAD_CHARACTERISTICS = 0xC0230005,
+  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_FOUND = 0xC0230006,
+  MD_NTSTATUS_WIN_STATUS_NDIS_OPEN_FAILED = 0xC0230007,
+  MD_NTSTATUS_WIN_STATUS_NDIS_DEVICE_FAILED = 0xC0230008,
+  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_FULL = 0xC0230009,
+  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_EXISTS = 0xC023000A,
+  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_NOT_FOUND = 0xC023000B,
+  MD_NTSTATUS_WIN_STATUS_NDIS_REQUEST_ABORTED = 0xC023000C,
+  MD_NTSTATUS_WIN_STATUS_NDIS_RESET_IN_PROGRESS = 0xC023000D,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PACKET = 0xC023000F,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DEVICE_REQUEST = 0xC0230010,
+  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_READY = 0xC0230011,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_LENGTH = 0xC0230014,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DATA = 0xC0230015,
+  MD_NTSTATUS_WIN_STATUS_NDIS_BUFFER_TOO_SHORT = 0xC0230016,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_OID = 0xC0230017,
+  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_REMOVED = 0xC0230018,
+  MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_MEDIA = 0xC0230019,
+  MD_NTSTATUS_WIN_STATUS_NDIS_GROUP_ADDRESS_IN_USE = 0xC023001A,
+  MD_NTSTATUS_WIN_STATUS_NDIS_FILE_NOT_FOUND = 0xC023001B,
+  MD_NTSTATUS_WIN_STATUS_NDIS_ERROR_READING_FILE = 0xC023001C,
+  MD_NTSTATUS_WIN_STATUS_NDIS_ALREADY_MAPPED = 0xC023001D,
+  MD_NTSTATUS_WIN_STATUS_NDIS_RESOURCE_CONFLICT = 0xC023001E,
+  MD_NTSTATUS_WIN_STATUS_NDIS_MEDIA_DISCONNECTED = 0xC023001F,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_ADDRESS = 0xC0230022,
+  MD_NTSTATUS_WIN_STATUS_NDIS_PAUSED = 0xC023002A,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INTERFACE_NOT_FOUND = 0xC023002B,
+  MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_REVISION = 0xC023002C,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT = 0xC023002D,
+  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT_STATE = 0xC023002E,
+  MD_NTSTATUS_WIN_STATUS_NDIS_LOW_POWER_STATE = 0xC023002F,
+  MD_NTSTATUS_WIN_STATUS_NDIS_REINIT_REQUIRED = 0xC0230030,
+  MD_NTSTATUS_WIN_STATUS_NDIS_NOT_SUPPORTED = 0xC02300BB,
+  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_POLICY = 0xC023100F,
+  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED = 0xC0231012,
+  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_PATH_REJECTED = 0xC0231013,
+  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED = 0xC0232000,
+  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_MEDIA_IN_USE = 0xC0232001,
+  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_POWER_STATE_INVALID = 0xC0232002,
+  MD_NTSTATUS_WIN_STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL = 0xC0232003,
+  MD_NTSTATUS_WIN_STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = 0xC0232004,
+  MD_NTSTATUS_WIN_STATUS_TPM_ERROR_MASK = 0xC0290000,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUTHFAIL = 0xC0290001,
+  MD_NTSTATUS_WIN_STATUS_TPM_BADINDEX = 0xC0290002,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAMETER = 0xC0290003,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAILURE = 0xC0290004,
+  MD_NTSTATUS_WIN_STATUS_TPM_CLEAR_DISABLED = 0xC0290005,
+  MD_NTSTATUS_WIN_STATUS_TPM_DEACTIVATED = 0xC0290006,
+  MD_NTSTATUS_WIN_STATUS_TPM_DISABLED = 0xC0290007,
+  MD_NTSTATUS_WIN_STATUS_TPM_DISABLED_CMD = 0xC0290008,
+  MD_NTSTATUS_WIN_STATUS_TPM_FAIL = 0xC0290009,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_ORDINAL = 0xC029000A,
+  MD_NTSTATUS_WIN_STATUS_TPM_INSTALL_DISABLED = 0xC029000B,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYHANDLE = 0xC029000C,
+  MD_NTSTATUS_WIN_STATUS_TPM_KEYNOTFOUND = 0xC029000D,
+  MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_ENC = 0xC029000E,
+  MD_NTSTATUS_WIN_STATUS_TPM_MIGRATEFAIL = 0xC029000F,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_PCR_INFO = 0xC0290010,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOSPACE = 0xC0290011,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOSRK = 0xC0290012,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOTSEALED_BLOB = 0xC0290013,
+  MD_NTSTATUS_WIN_STATUS_TPM_OWNER_SET = 0xC0290014,
+  MD_NTSTATUS_WIN_STATUS_TPM_RESOURCES = 0xC0290015,
+  MD_NTSTATUS_WIN_STATUS_TPM_SHORTRANDOM = 0xC0290016,
+  MD_NTSTATUS_WIN_STATUS_TPM_SIZE = 0xC0290017,
+  MD_NTSTATUS_WIN_STATUS_TPM_WRONGPCRVAL = 0xC0290018,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAM_SIZE = 0xC0290019,
+  MD_NTSTATUS_WIN_STATUS_TPM_SHA_THREAD = 0xC029001A,
+  MD_NTSTATUS_WIN_STATUS_TPM_SHA_ERROR = 0xC029001B,
+  MD_NTSTATUS_WIN_STATUS_TPM_FAILEDSELFTEST = 0xC029001C,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUTH2FAIL = 0xC029001D,
+  MD_NTSTATUS_WIN_STATUS_TPM_BADTAG = 0xC029001E,
+  MD_NTSTATUS_WIN_STATUS_TPM_IOERROR = 0xC029001F,
+  MD_NTSTATUS_WIN_STATUS_TPM_ENCRYPT_ERROR = 0xC0290020,
+  MD_NTSTATUS_WIN_STATUS_TPM_DECRYPT_ERROR = 0xC0290021,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_AUTHHANDLE = 0xC0290022,
+  MD_NTSTATUS_WIN_STATUS_TPM_NO_ENDORSEMENT = 0xC0290023,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYUSAGE = 0xC0290024,
+  MD_NTSTATUS_WIN_STATUS_TPM_WRONG_ENTITYTYPE = 0xC0290025,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_POSTINIT = 0xC0290026,
+  MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_SIG = 0xC0290027,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_KEY_PROPERTY = 0xC0290028,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_MIGRATION = 0xC0290029,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_SCHEME = 0xC029002A,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_DATASIZE = 0xC029002B,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_MODE = 0xC029002C,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PRESENCE = 0xC029002D,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_VERSION = 0xC029002E,
+  MD_NTSTATUS_WIN_STATUS_TPM_NO_WRAP_TRANSPORT = 0xC029002F,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_UNSUCCESSFUL = 0xC0290030,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_SUCCESSFUL = 0xC0290031,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOTRESETABLE = 0xC0290032,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOTLOCAL = 0xC0290033,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_TYPE = 0xC0290034,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_RESOURCE = 0xC0290035,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOTFIPS = 0xC0290036,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_FAMILY = 0xC0290037,
+  MD_NTSTATUS_WIN_STATUS_TPM_NO_NV_PERMISSION = 0xC0290038,
+  MD_NTSTATUS_WIN_STATUS_TPM_REQUIRES_SIGN = 0xC0290039,
+  MD_NTSTATUS_WIN_STATUS_TPM_KEY_NOTSUPPORTED = 0xC029003A,
+  MD_NTSTATUS_WIN_STATUS_TPM_AUTH_CONFLICT = 0xC029003B,
+  MD_NTSTATUS_WIN_STATUS_TPM_AREA_LOCKED = 0xC029003C,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_LOCALITY = 0xC029003D,
+  MD_NTSTATUS_WIN_STATUS_TPM_READ_ONLY = 0xC029003E,
+  MD_NTSTATUS_WIN_STATUS_TPM_PER_NOWRITE = 0xC029003F,
+  MD_NTSTATUS_WIN_STATUS_TPM_FAMILYCOUNT = 0xC0290040,
+  MD_NTSTATUS_WIN_STATUS_TPM_WRITE_LOCKED = 0xC0290041,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_ATTRIBUTES = 0xC0290042,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_STRUCTURE = 0xC0290043,
+  MD_NTSTATUS_WIN_STATUS_TPM_KEY_OWNER_CONTROL = 0xC0290044,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_COUNTER = 0xC0290045,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOT_FULLWRITE = 0xC0290046,
+  MD_NTSTATUS_WIN_STATUS_TPM_CONTEXT_GAP = 0xC0290047,
+  MD_NTSTATUS_WIN_STATUS_TPM_MAXNVWRITES = 0xC0290048,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOOPERATOR = 0xC0290049,
+  MD_NTSTATUS_WIN_STATUS_TPM_RESOURCEMISSING = 0xC029004A,
+  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_LOCK = 0xC029004B,
+  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_FAMILY = 0xC029004C,
+  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_ADMIN = 0xC029004D,
+  MD_NTSTATUS_WIN_STATUS_TPM_TRANSPORT_NOTEXCLUSIVE = 0xC029004E,
+  MD_NTSTATUS_WIN_STATUS_TPM_OWNER_CONTROL = 0xC029004F,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_RESOURCES = 0xC0290050,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA0 = 0xC0290051,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA1 = 0xC0290052,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_SETTINGS = 0xC0290053,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_TPM_SETTINGS = 0xC0290054,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_STAGE = 0xC0290055,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_VALIDITY = 0xC0290056,
+  MD_NTSTATUS_WIN_STATUS_TPM_DAA_WRONG_W = 0xC0290057,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_HANDLE = 0xC0290058,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_DELEGATE = 0xC0290059,
+  MD_NTSTATUS_WIN_STATUS_TPM_BADCONTEXT = 0xC029005A,
+  MD_NTSTATUS_WIN_STATUS_TPM_TOOMANYCONTEXTS = 0xC029005B,
+  MD_NTSTATUS_WIN_STATUS_TPM_MA_TICKET_SIGNATURE = 0xC029005C,
+  MD_NTSTATUS_WIN_STATUS_TPM_MA_DESTINATION = 0xC029005D,
+  MD_NTSTATUS_WIN_STATUS_TPM_MA_SOURCE = 0xC029005E,
+  MD_NTSTATUS_WIN_STATUS_TPM_MA_AUTHORITY = 0xC029005F,
+  MD_NTSTATUS_WIN_STATUS_TPM_PERMANENTEK = 0xC0290061,
+  MD_NTSTATUS_WIN_STATUS_TPM_BAD_SIGNATURE = 0xC0290062,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOCONTEXTSPACE = 0xC0290063,
+  MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_BLOCKED = 0xC0290400,
+  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_HANDLE = 0xC0290401,
+  MD_NTSTATUS_WIN_STATUS_TPM_DUPLICATE_VHANDLE = 0xC0290402,
+  MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_BLOCKED = 0xC0290403,
+  MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED = 0xC0290404,
+  MD_NTSTATUS_WIN_STATUS_TPM_RETRY = 0xC0290800,
+  MD_NTSTATUS_WIN_STATUS_TPM_NEEDS_SELFTEST = 0xC0290801,
+  MD_NTSTATUS_WIN_STATUS_TPM_DOING_SELFTEST = 0xC0290802,
+  MD_NTSTATUS_WIN_STATUS_TPM_DEFEND_LOCK_RUNNING = 0xC0290803,
+  MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_CANCELED = 0xC0291001,
+  MD_NTSTATUS_WIN_STATUS_TPM_TOO_MANY_CONTEXTS = 0xC0291002,
+  MD_NTSTATUS_WIN_STATUS_TPM_NOT_FOUND = 0xC0291003,
+  MD_NTSTATUS_WIN_STATUS_TPM_ACCESS_DENIED = 0xC0291004,
+  MD_NTSTATUS_WIN_STATUS_TPM_INSUFFICIENT_BUFFER = 0xC0291005,
+  MD_NTSTATUS_WIN_STATUS_TPM_PPI_FUNCTION_UNSUPPORTED = 0xC0291006,
+  MD_NTSTATUS_WIN_STATUS_PCP_ERROR_MASK = 0xC0292000,
+  MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_READY = 0xC0292001,
+  MD_NTSTATUS_WIN_STATUS_PCP_INVALID_HANDLE = 0xC0292002,
+  MD_NTSTATUS_WIN_STATUS_PCP_INVALID_PARAMETER = 0xC0292003,
+  MD_NTSTATUS_WIN_STATUS_PCP_FLAG_NOT_SUPPORTED = 0xC0292004,
+  MD_NTSTATUS_WIN_STATUS_PCP_NOT_SUPPORTED = 0xC0292005,
+  MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_TOO_SMALL = 0xC0292006,
+  MD_NTSTATUS_WIN_STATUS_PCP_INTERNAL_ERROR = 0xC0292007,
+  MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_FAILED = 0xC0292008,
+  MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_IGNORED = 0xC0292009,
+  MD_NTSTATUS_WIN_STATUS_PCP_POLICY_NOT_FOUND = 0xC029200A,
+  MD_NTSTATUS_WIN_STATUS_PCP_PROFILE_NOT_FOUND = 0xC029200B,
+  MD_NTSTATUS_WIN_STATUS_PCP_VALIDATION_FAILED = 0xC029200C,
+  MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_FOUND = 0xC029200D,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_CODE = 0xC0350002,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_INPUT = 0xC0350003,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_ALIGNMENT = 0xC0350004,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARAMETER = 0xC0350005,
+  MD_NTSTATUS_WIN_STATUS_HV_ACCESS_DENIED = 0xC0350006,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_STATE = 0xC0350007,
+  MD_NTSTATUS_WIN_STATUS_HV_OPERATION_DENIED = 0xC0350008,
+  MD_NTSTATUS_WIN_STATUS_HV_UNKNOWN_PROPERTY = 0xC0350009,
+  MD_NTSTATUS_WIN_STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE = 0xC035000A,
+  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_MEMORY = 0xC035000B,
+  MD_NTSTATUS_WIN_STATUS_HV_PARTITION_TOO_DEEP = 0xC035000C,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_ID = 0xC035000D,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_INDEX = 0xC035000E,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PORT_ID = 0xC0350011,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_CONNECTION_ID = 0xC0350012,
+  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFERS = 0xC0350013,
+  MD_NTSTATUS_WIN_STATUS_HV_NOT_ACKNOWLEDGED = 0xC0350014,
+  MD_NTSTATUS_WIN_STATUS_HV_ACKNOWLEDGED = 0xC0350016,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_SAVE_RESTORE_STATE = 0xC0350017,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_SYNIC_STATE = 0xC0350018,
+  MD_NTSTATUS_WIN_STATUS_HV_OBJECT_IN_USE = 0xC0350019,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO = 0xC035001A,
+  MD_NTSTATUS_WIN_STATUS_HV_NO_DATA = 0xC035001B,
+  MD_NTSTATUS_WIN_STATUS_HV_INACTIVE = 0xC035001C,
+  MD_NTSTATUS_WIN_STATUS_HV_NO_RESOURCES = 0xC035001D,
+  MD_NTSTATUS_WIN_STATUS_HV_FEATURE_UNAVAILABLE = 0xC035001E,
+  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFER = 0xC0350033,
+  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS = 0xC0350038,
+  MD_NTSTATUS_WIN_STATUS_HV_INVALID_LP_INDEX = 0xC0350041,
+  MD_NTSTATUS_WIN_STATUS_HV_NOT_PRESENT = 0xC0351000,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_BAD_SPI = 0xC0360001,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_SA_LIFETIME_EXPIRED = 0xC0360002,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_WRONG_SA = 0xC0360003,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_REPLAY_CHECK_FAILED = 0xC0360004,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_INVALID_PACKET = 0xC0360005,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_INTEGRITY_CHECK_FAILED = 0xC0360006,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_CLEAR_TEXT_DROP = 0xC0360007,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_AUTH_FIREWALL_DROP = 0xC0360008,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_THROTTLE_DROP = 0xC0360009,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_BLOCK = 0xC0368000,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_RECEIVED_MULTICAST = 0xC0368001,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_INVALID_PACKET = 0xC0368002,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED = 0xC0368003,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_ENTRIES = 0xC0368004,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 0xC0368005,
+  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 0xC0368006,
+  MD_NTSTATUS_WIN_STATUS_VID_DUPLICATE_HANDLER = 0xC0370001,
+  MD_NTSTATUS_WIN_STATUS_VID_TOO_MANY_HANDLERS = 0xC0370002,
+  MD_NTSTATUS_WIN_STATUS_VID_QUEUE_FULL = 0xC0370003,
+  MD_NTSTATUS_WIN_STATUS_VID_HANDLER_NOT_PRESENT = 0xC0370004,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_OBJECT_NAME = 0xC0370005,
+  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_TOO_LONG = 0xC0370006,
+  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG = 0xC0370007,
+  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_ALREADY_EXISTS = 0xC0370008,
+  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_DOES_NOT_EXIST = 0xC0370009,
+  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_NOT_FOUND = 0xC037000A,
+  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS = 0xC037000B,
+  MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT = 0xC037000C,
+  MD_NTSTATUS_WIN_STATUS_VID_MB_STILL_REFERENCED = 0xC037000D,
+  MD_NTSTATUS_WIN_STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED = 0xC037000E,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_SETTINGS = 0xC037000F,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_NODE_INDEX = 0xC0370010,
+  MD_NTSTATUS_WIN_STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED = 0xC0370011,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE = 0xC0370012,
+  MD_NTSTATUS_WIN_STATUS_VID_PAGE_RANGE_OVERFLOW = 0xC0370013,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE = 0xC0370014,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_GPA_RANGE_HANDLE = 0xC0370015,
+  MD_NTSTATUS_WIN_STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE = 0xC0370016,
+  MD_NTSTATUS_WIN_STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED = 0xC0370017,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_PPM_HANDLE = 0xC0370018,
+  MD_NTSTATUS_WIN_STATUS_VID_MBPS_ARE_LOCKED = 0xC0370019,
+  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_CLOSED = 0xC037001A,
+  MD_NTSTATUS_WIN_STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED = 0xC037001B,
+  MD_NTSTATUS_WIN_STATUS_VID_STOP_PENDING = 0xC037001C,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_PROCESSOR_STATE = 0xC037001D,
+  MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT = 0xC037001E,
+  MD_NTSTATUS_WIN_STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED = 0xC037001F,
+  MD_NTSTATUS_WIN_STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET = 0xC0370020,
+  MD_NTSTATUS_WIN_STATUS_VID_MMIO_RANGE_DESTROYED = 0xC0370021,
+  MD_NTSTATUS_WIN_STATUS_VID_INVALID_CHILD_GPA_PAGE_SET = 0xC0370022,
+  MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED = 0xC0370023,
+  MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL = 0xC0370024,
+  MD_NTSTATUS_WIN_STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE = 0xC0370025,
+  MD_NTSTATUS_WIN_STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT = 0xC0370026,
+  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_CORRUPT = 0xC0370027,
+  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM = 0xC0370028,
+  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_INCOMPATIBLE = 0xC0370029,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DATABASE_FULL = 0xC0380001,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED = 0xC0380002,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC = 0xC0380003,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED = 0xC0380004,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME = 0xC0380005,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DUPLICATE = 0xC0380006,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DYNAMIC = 0xC0380007,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_ID_INVALID = 0xC0380008,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_INVALID = 0xC0380009,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAST_VOTER = 0xC038000A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_INVALID = 0xC038000B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS = 0xC038000C,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED = 0xC038000D,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL = 0xC038000E,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS = 0xC038000F,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS = 0xC0380010,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_MISSING = 0xC0380011,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_EMPTY = 0xC0380012,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE = 0xC0380013,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_REVECTORING_FAILED = 0xC0380014,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID = 0xC0380015,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SET_NOT_CONTAINED = 0xC0380016,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS = 0xC0380017,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES = 0xC0380018,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED = 0xC0380019,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_ALREADY_USED = 0xC038001A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS = 0xC038001B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION = 0xC038001C,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED = 0xC038001D,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION = 0xC038001E,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH = 0xC038001F,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED = 0xC0380020,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID = 0xC0380021,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS = 0xC0380022,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_IN_SYNC = 0xC0380023,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE = 0xC0380024,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_INVALID = 0xC0380025,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_MISSING = 0xC0380026,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_NOT_DETACHED = 0xC0380027,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_REGENERATING = 0xC0380028,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_ALL_DISKS_FAILED = 0xC0380029,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_REGISTERED_USERS = 0xC038002A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_SUCH_USER = 0xC038002B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NOTIFICATION_RESET = 0xC038002C,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID = 0xC038002D,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID = 0xC038002E,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_DUPLICATE = 0xC038002F,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_ID_INVALID = 0xC0380030,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_INVALID = 0xC0380031,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_NAME_INVALID = 0xC0380032,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_OFFLINE = 0xC0380033,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_HAS_QUORUM = 0xC0380034,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_WITHOUT_QUORUM = 0xC0380035,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_STYLE_INVALID = 0xC0380036,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_UPDATE_FAILED = 0xC0380037,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_IN_SYNC = 0xC0380038,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_DUPLICATE = 0xC0380039,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_INVALID = 0xC038003A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_LAST_ACTIVE = 0xC038003B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_MISSING = 0xC038003C,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_REGENERATING = 0xC038003D,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_TYPE_INVALID = 0xC038003E,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_RAID5 = 0xC038003F,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE = 0xC0380040,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_STRUCTURE_SIZE_INVALID = 0xC0380041,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS = 0xC0380042,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_TRANSACTION_IN_PROGRESS = 0xC0380043,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE = 0xC0380044,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK = 0xC0380045,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_ID_INVALID = 0xC0380046,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_INVALID = 0xC0380047,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = 0xC0380048,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_MIRRORED = 0xC0380049,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_RETAINED = 0xC038004A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_OFFLINE = 0xC038004B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_RETAINED = 0xC038004C,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID = 0xC038004D,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE = 0xC038004E,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_BAD_BOOT_DISK = 0xC038004F,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_OFFLINE = 0xC0380050,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_ONLINE = 0xC0380051,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NOT_PRIMARY_PACK = 0xC0380052,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED = 0xC0380053,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID = 0xC0380054,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID = 0xC0380055,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_MIRRORED = 0xC0380056,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED = 0xC0380057,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_VALID_LOG_COPIES = 0xC0380058,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_PRIMARY_PACK_PRESENT = 0xC0380059,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID = 0xC038005A,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_MIRROR_NOT_SUPPORTED = 0xC038005B,
+  MD_NTSTATUS_WIN_STATUS_VOLMGR_RAID5_NOT_SUPPORTED = 0xC038005C,
+  MD_NTSTATUS_WIN_STATUS_BCD_TOO_MANY_ELEMENTS = 0xC0390002,
+  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_MISSING = 0xC03A0001,
+  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH = 0xC03A0002,
+  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CORRUPT = 0xC03A0003,
+  MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNKNOWN = 0xC03A0004,
+  MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNSUPPORTED_VERSION = 0xC03A0005,
+  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH = 0xC03A0006,
+  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION = 0xC03A0007,
+  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CORRUPT = 0xC03A0008,
+  MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_FAILURE = 0xC03A0009,
+  MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT = 0xC03A000A,
+  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_BLOCK_SIZE = 0xC03A000B,
+  MD_NTSTATUS_WIN_STATUS_VHD_BITMAP_MISMATCH = 0xC03A000C,
+  MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_NOT_FOUND = 0xC03A000D,
+  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_ID_MISMATCH = 0xC03A000E,
+  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH = 0xC03A000F,
+  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_READ_FAILURE = 0xC03A0010,
+  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_WRITE_FAILURE = 0xC03A0011,
+  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_SIZE = 0xC03A0012,
+  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_FILE_SIZE = 0xC03A0013,
+  MD_NTSTATUS_WIN_STATUS_VIRTDISK_PROVIDER_NOT_FOUND = 0xC03A0014,
+  MD_NTSTATUS_WIN_STATUS_VIRTDISK_NOT_VIRTUAL_DISK = 0xC03A0015,
+  MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_ACCESS_DENIED = 0xC03A0016,
+  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH = 0xC03A0017,
+  MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = 0xC03A0018,
+  MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = 0xC03A0019,
+  MD_NTSTATUS_WIN_STATUS_VIRTUAL_DISK_LIMITATION = 0xC03A001A,
+  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_TYPE = 0xC03A001B,
+  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_STATE = 0xC03A001C,
+  MD_NTSTATUS_WIN_STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE = 0xC03A001D,
+  MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ALREADY_OWNED = 0xC03A001E,
+  MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE = 0xC03A001F,
+  MD_NTSTATUS_WIN_STATUS_CTLOG_TRACKING_NOT_INITIALIZED = 0xC03A0020,
+  MD_NTSTATUS_WIN_STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE = 0xC03A0021,
+  MD_NTSTATUS_WIN_STATUS_CTLOG_VHD_CHANGED_OFFLINE = 0xC03A0022,
+  MD_NTSTATUS_WIN_STATUS_CTLOG_INVALID_TRACKING_STATE = 0xC03A0023,
+  MD_NTSTATUS_WIN_STATUS_CTLOG_INCONSISTENT_TRACKING_FILE = 0xC03A0024,
+  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_FULL = 0xC03A0028,
+  MD_NTSTATUS_WIN_STATUS_RKF_KEY_NOT_FOUND = 0xC0400001,
+  MD_NTSTATUS_WIN_STATUS_RKF_DUPLICATE_KEY = 0xC0400002,
+  MD_NTSTATUS_WIN_STATUS_RKF_BLOB_FULL = 0xC0400003,
+  MD_NTSTATUS_WIN_STATUS_RKF_STORE_FULL = 0xC0400004,
+  MD_NTSTATUS_WIN_STATUS_RKF_FILE_BLOCKED = 0xC0400005,
+  MD_NTSTATUS_WIN_STATUS_RKF_ACTIVE_KEY = 0xC0400006,
+  MD_NTSTATUS_WIN_STATUS_RDBSS_RESTART_OPERATION = 0xC0410001,
+  MD_NTSTATUS_WIN_STATUS_RDBSS_CONTINUE_OPERATION = 0xC0410002,
+  MD_NTSTATUS_WIN_STATUS_RDBSS_POST_OPERATION = 0xC0410003,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_HANDLE = 0xC0420001,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_READ_NOT_PERMITTED = 0xC0420002,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_WRITE_NOT_PERMITTED = 0xC0420003,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_PDU = 0xC0420004,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION = 0xC0420005,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED = 0xC0420006,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_OFFSET = 0xC0420007,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION = 0xC0420008,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_PREPARE_QUEUE_FULL = 0xC0420009,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND = 0xC042000A,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG = 0xC042000B,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0xC042000C,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0xC042000D,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNLIKELY = 0xC042000E,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION = 0xC042000F,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE = 0xC0420010,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_RESOURCES = 0xC0420011,
+  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNKNOWN_ERROR = 0xC0421000,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_ROLLBACK_DETECTED = 0xC0430001,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_VIOLATION = 0xC0430002,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_INVALID_POLICY = 0xC0430003,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = 0xC0430004,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_SIGNED = 0xC0430005,
+  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_FILE_REPLACED = 0xC0430007,
+  MD_NTSTATUS_WIN_STATUS_AUDIO_ENGINE_NODE_NOT_FOUND = 0xC0440001,
+  MD_NTSTATUS_WIN_STATUS_HDAUDIO_EMPTY_CONNECTION_LIST = 0xC0440002,
+  MD_NTSTATUS_WIN_STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED = 0xC0440003,
+  MD_NTSTATUS_WIN_STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED = 0xC0440004,
+  MD_NTSTATUS_WIN_STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY = 0xC0440005,
+  MD_NTSTATUS_WIN_STATUS_VOLSNAP_BOOTFILE_NOT_VALID = 0xC0500003,
+  MD_NTSTATUS_WIN_STATUS_IO_PREEMPTED = 0xC0510001,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_STORED = 0xC05C0000,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_NOT_AVAILABLE = 0xC05CFF00,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE = 0xC05CFF01,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED = 0xC05CFF02,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED = 0xC05CFF03,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED = 0xC05CFF04,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED = 0xC05CFF05,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED = 0xC05CFF06,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_RESERVATION_CONFLICT = 0xC05CFF07,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_WRONG_FILE_TYPE = 0xC05CFF08,
+  MD_NTSTATUS_WIN_STATUS_SVHDX_VERSION_MISMATCH = 0xC05CFF09,
+  MD_NTSTATUS_WIN_STATUS_VHD_SHARED = 0xC05CFF0A,
+  MD_NTSTATUS_WIN_STATUS_SPACES_RESILIENCY_TYPE_INVALID = 0xC0E70003,
+  MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID = 0xC0E70004,
+  MD_NTSTATUS_WIN_STATUS_SPACES_INTERLEAVE_LENGTH_INVALID = 0xC0E70009,
+  MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID = 0xC0E7000A,
+  MD_NTSTATUS_WIN_STATUS_SPACES_NOT_ENOUGH_DRIVES = 0xC0E7000B
+} MDNTStatusCodeWin;
+
+// These constants are defined in the MSDN documentation of
+// the EXCEPTION_RECORD structure.
+typedef enum {
+  MD_ACCESS_VIOLATION_WIN_READ  = 0,
+  MD_ACCESS_VIOLATION_WIN_WRITE = 1,
+  MD_ACCESS_VIOLATION_WIN_EXEC  = 8
+} MDAccessViolationTypeWin;
+
+// These constants are defined in the MSDN documentation of
+// the EXCEPTION_RECORD structure.
+typedef enum {
+  MD_IN_PAGE_ERROR_WIN_READ  = 0,
+  MD_IN_PAGE_ERROR_WIN_WRITE = 1,
+  MD_IN_PAGE_ERROR_WIN_EXEC  = 8
+} MDInPageErrorTypeWin;
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ */
diff --git a/src/google_breakpad/common/minidump_format.h b/src/google_breakpad/common/minidump_format.h
new file mode 100644
index 0000000..7b36d11
--- /dev/null
+++ b/src/google_breakpad/common/minidump_format.h
@@ -0,0 +1,1102 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++.  In these cases,
+ * *_minsize constants are provided to be used in place of sizeof.  For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.  DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation.  To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD".  Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+#if defined(_MSC_VER)
+/* Disable "zero-sized array in struct/union" warnings when compiling in
+ * MSVC.  DbgHelp.h does this too. */
+#pragma warning(push)
+#pragma warning(disable:4200)
+#endif  /* _MSC_VER */
+
+
+/*
+ * guiddef.h
+ */
+
+typedef struct {
+  uint32_t data1;
+  uint16_t data2;
+  uint16_t data3;
+  uint8_t  data4[8];
+} MDGUID;  /* GUID */
+
+
+/*
+ * WinNT.h
+ */
+
+/* Non-x86 CPU identifiers found in the high 24 bits of
+ * (MDRawContext*).context_flags.  These aren't used by Breakpad, but are
+ * defined here for reference, to avoid assigning values that conflict
+ * (although some values already conflict). */
+#define MD_CONTEXT_IA64  0x00080000  /* CONTEXT_IA64 */
+/* Additional values from winnt.h in the Windows CE 5.0 SDK: */
+#define MD_CONTEXT_SHX   0x000000c0  /* CONTEXT_SH4 (Super-H, includes SH3) */
+#define MD_CONTEXT_ALPHA 0x00020000  /* CONTEXT_ALPHA */
+
+/* As of Windows 7 SP1, the number of flag bits has increased to
+ * include 0x40 (CONTEXT_XSTATE):
+ * http://msdn.microsoft.com/en-us/library/hh134238%28v=vs.85%29.aspx */
+#define MD_CONTEXT_CPU_MASK 0xffffff00
+
+
+/* This is a base type for MDRawContextX86 and MDRawContextPPC.  This
+ * structure should never be allocated directly.  The actual structure type
+ * can be determined by examining the context_flags field. */
+typedef struct {
+  uint32_t context_flags;
+} MDRawContextBase;
+
+#include "minidump_cpu_amd64.h"
+#include "minidump_cpu_arm.h"
+#include "minidump_cpu_arm64.h"
+#include "minidump_cpu_mips.h"
+#include "minidump_cpu_ppc.h"
+#include "minidump_cpu_ppc64.h"
+#include "minidump_cpu_sparc.h"
+#include "minidump_cpu_x86.h"
+
+/*
+ * WinVer.h
+ */
+
+
+typedef struct {
+  uint32_t signature;
+  uint32_t struct_version;
+  uint32_t file_version_hi;
+  uint32_t file_version_lo;
+  uint32_t product_version_hi;
+  uint32_t product_version_lo;
+  uint32_t file_flags_mask;    /* Identifies valid bits in fileFlags */
+  uint32_t file_flags;
+  uint32_t file_os;
+  uint32_t file_type;
+  uint32_t file_subtype;
+  uint32_t file_date_hi;
+  uint32_t file_date_lo;
+} MDVSFixedFileInfo;  /* VS_FIXEDFILEINFO */
+
+/* For (MDVSFixedFileInfo).signature */
+#define MD_VSFIXEDFILEINFO_SIGNATURE 0xfeef04bd
+     /* VS_FFI_SIGNATURE */
+
+/* For (MDVSFixedFileInfo).version */
+#define MD_VSFIXEDFILEINFO_VERSION 0x00010000
+     /* VS_FFI_STRUCVERSION */
+
+/* For (MDVSFixedFileInfo).file_flags_mask and
+ * (MDVSFixedFileInfo).file_flags */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG        0x00000001
+     /* VS_FF_DEBUG */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRERELEASE   0x00000002
+     /* VS_FF_PRERELEASE */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PATCHED      0x00000004
+     /* VS_FF_PATCHED */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRIVATEBUILD 0x00000008
+     /* VS_FF_PRIVATEBUILD */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_INFOINFERRED 0x00000010
+     /* VS_FF_INFOINFERRED */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_SPECIALBUILD 0x00000020
+     /* VS_FF_SPECIALBUILD */
+
+/* For (MDVSFixedFileInfo).file_os: high 16 bits */
+#define MD_VSFIXEDFILEINFO_FILE_OS_UNKNOWN    0          /* VOS_UNKNOWN */
+#define MD_VSFIXEDFILEINFO_FILE_OS_DOS        (1 << 16)  /* VOS_DOS */
+#define MD_VSFIXEDFILEINFO_FILE_OS_OS216      (2 << 16)  /* VOS_OS216 */
+#define MD_VSFIXEDFILEINFO_FILE_OS_OS232      (3 << 16)  /* VOS_OS232 */
+#define MD_VSFIXEDFILEINFO_FILE_OS_NT         (4 << 16)  /* VOS_NT */
+#define MD_VSFIXEDFILEINFO_FILE_OS_WINCE      (5 << 16)  /* VOS_WINCE */
+/* Low 16 bits */
+#define MD_VSFIXEDFILEINFO_FILE_OS__BASE      0          /* VOS__BASE */
+#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS16 1          /* VOS__WINDOWS16 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__PM16      2          /* VOS__PM16 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__PM32      3          /* VOS__PM32 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS32 4          /* VOS__WINDOWS32 */
+
+/* For (MDVSFixedFileInfo).file_type */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_UNKNOWN    0  /* VFT_UNKNOWN */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_APP        1  /* VFT_APP */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_DLL        2  /* VFT_DLL */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_DRV        3  /* VFT_DLL */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_FONT       4  /* VFT_FONT */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_VXD        5  /* VFT_VXD */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_STATIC_LIB 7  /* VFT_STATIC_LIB */
+
+/* For (MDVSFixedFileInfo).file_subtype */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_UNKNOWN                0
+     /* VFT2_UNKNOWN */
+/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_DRV */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_PRINTER            1
+     /* VFT2_DRV_PRINTER */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_KEYBOARD           2
+     /* VFT2_DRV_KEYBOARD */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_LANGUAGE           3
+     /* VFT2_DRV_LANGUAGE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_DISPLAY            4
+     /* VFT2_DRV_DISPLAY */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_MOUSE              5
+     /* VFT2_DRV_MOUSE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_NETWORK            6
+     /* VFT2_DRV_NETWORK */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SYSTEM             7
+     /* VFT2_DRV_SYSTEM */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INSTALLABLE        8
+     /* VFT2_DRV_INSTALLABLE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SOUND              9
+     /* VFT2_DRV_SOUND */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_COMM              10
+     /* VFT2_DRV_COMM */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INPUTMETHOD       11
+     /* VFT2_DRV_INPUTMETHOD */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_VERSIONED_PRINTER 12
+     /* VFT2_DRV_VERSIONED_PRINTER */
+/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_FONT */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_RASTER            1
+     /* VFT2_FONT_RASTER */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_VECTOR            2
+     /* VFT2_FONT_VECTOR */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_TRUETYPE          3
+     /* VFT2_FONT_TRUETYPE */
+
+
+/*
+ * DbgHelp.h
+ */
+
+
+/* An MDRVA is an offset into the minidump file.  The beginning of the
+ * MDRawHeader is at offset 0. */
+typedef uint32_t MDRVA;  /* RVA */
+
+typedef struct {
+  uint32_t  data_size;
+  MDRVA     rva;
+} MDLocationDescriptor;  /* MINIDUMP_LOCATION_DESCRIPTOR */
+
+
+typedef struct {
+  /* The base address of the memory range on the host that produced the
+   * minidump. */
+  uint64_t             start_of_memory_range;
+
+  MDLocationDescriptor memory;
+} MDMemoryDescriptor;  /* MINIDUMP_MEMORY_DESCRIPTOR */
+
+
+typedef struct {
+  uint32_t  signature;
+  uint32_t  version;
+  uint32_t  stream_count;
+  MDRVA     stream_directory_rva;  /* A |stream_count|-sized array of
+                                    * MDRawDirectory structures. */
+  uint32_t  checksum;              /* Can be 0.  In fact, that's all that's
+                                    * been found in minidump files. */
+  uint32_t  time_date_stamp;       /* time_t */
+  uint64_t  flags;
+} MDRawHeader;  /* MINIDUMP_HEADER */
+
+/* For (MDRawHeader).signature and (MDRawHeader).version.  Note that only the
+ * low 16 bits of (MDRawHeader).version are MD_HEADER_VERSION.  Per the
+ * documentation, the high 16 bits are implementation-specific. */
+#define MD_HEADER_SIGNATURE 0x504d444d /* 'PMDM' */
+     /* MINIDUMP_SIGNATURE */
+#define MD_HEADER_VERSION   0x0000a793 /* 42899 */
+     /* MINIDUMP_VERSION */
+
+/* For (MDRawHeader).flags: */
+typedef enum {
+  /* MD_NORMAL is the standard type of minidump.  It includes full
+   * streams for the thread list, module list, exception, system info,
+   * and miscellaneous info.  A memory list stream is also present,
+   * pointing to the same stack memory contained in the thread list,
+   * as well as a 256-byte region around the instruction address that
+   * was executing when the exception occurred.  Stack memory is from
+   * 4 bytes below a thread's stack pointer up to the top of the
+   * memory region encompassing the stack. */
+  MD_NORMAL                            = 0x00000000,
+  MD_WITH_DATA_SEGS                    = 0x00000001,
+  MD_WITH_FULL_MEMORY                  = 0x00000002,
+  MD_WITH_HANDLE_DATA                  = 0x00000004,
+  MD_FILTER_MEMORY                     = 0x00000008,
+  MD_SCAN_MEMORY                       = 0x00000010,
+  MD_WITH_UNLOADED_MODULES             = 0x00000020,
+  MD_WITH_INDIRECTLY_REFERENCED_MEMORY = 0x00000040,
+  MD_FILTER_MODULE_PATHS               = 0x00000080,
+  MD_WITH_PROCESS_THREAD_DATA          = 0x00000100,
+  MD_WITH_PRIVATE_READ_WRITE_MEMORY    = 0x00000200,
+  MD_WITHOUT_OPTIONAL_DATA             = 0x00000400,
+  MD_WITH_FULL_MEMORY_INFO             = 0x00000800,
+  MD_WITH_THREAD_INFO                  = 0x00001000,
+  MD_WITH_CODE_SEGS                    = 0x00002000,
+  MD_WITHOUT_AUXILLIARY_SEGS           = 0x00004000,
+  MD_WITH_FULL_AUXILLIARY_STATE        = 0x00008000,
+  MD_WITH_PRIVATE_WRITE_COPY_MEMORY    = 0x00010000,
+  MD_IGNORE_INACCESSIBLE_MEMORY        = 0x00020000,
+  MD_WITH_TOKEN_INFORMATION            = 0x00040000
+} MDType;  /* MINIDUMP_TYPE */
+
+
+typedef struct {
+  uint32_t             stream_type;
+  MDLocationDescriptor location;
+} MDRawDirectory;  /* MINIDUMP_DIRECTORY */
+
+/* For (MDRawDirectory).stream_type */
+typedef enum {
+  MD_UNUSED_STREAM               =  0,
+  MD_RESERVED_STREAM_0           =  1,
+  MD_RESERVED_STREAM_1           =  2,
+  MD_THREAD_LIST_STREAM          =  3,  /* MDRawThreadList */
+  MD_MODULE_LIST_STREAM          =  4,  /* MDRawModuleList */
+  MD_MEMORY_LIST_STREAM          =  5,  /* MDRawMemoryList */
+  MD_EXCEPTION_STREAM            =  6,  /* MDRawExceptionStream */
+  MD_SYSTEM_INFO_STREAM          =  7,  /* MDRawSystemInfo */
+  MD_THREAD_EX_LIST_STREAM       =  8,
+  MD_MEMORY_64_LIST_STREAM       =  9,
+  MD_COMMENT_STREAM_A            = 10,
+  MD_COMMENT_STREAM_W            = 11,
+  MD_HANDLE_DATA_STREAM          = 12,
+  MD_FUNCTION_TABLE_STREAM       = 13,
+  MD_UNLOADED_MODULE_LIST_STREAM = 14,
+  MD_MISC_INFO_STREAM            = 15,  /* MDRawMiscInfo */
+  MD_MEMORY_INFO_LIST_STREAM     = 16,  /* MDRawMemoryInfoList */
+  MD_THREAD_INFO_LIST_STREAM     = 17,
+  MD_HANDLE_OPERATION_LIST_STREAM = 18,
+  MD_TOKEN_STREAM                = 19,
+  MD_JAVASCRIPT_DATA_STREAM      = 20,
+  MD_SYSTEM_MEMORY_INFO_STREAM   = 21,
+  MD_PROCESS_VM_COUNTERS_STREAM  = 22,
+  MD_LAST_RESERVED_STREAM        = 0x0000ffff,
+
+  /* Breakpad extension types.  0x4767 = "Gg" */
+  MD_BREAKPAD_INFO_STREAM        = 0x47670001,  /* MDRawBreakpadInfo  */
+  MD_ASSERTION_INFO_STREAM       = 0x47670002,  /* MDRawAssertionInfo */
+  /* These are additional minidump stream values which are specific to
+   * the linux breakpad implementation. */
+  MD_LINUX_CPU_INFO              = 0x47670003,  /* /proc/cpuinfo      */
+  MD_LINUX_PROC_STATUS           = 0x47670004,  /* /proc/$x/status    */
+  MD_LINUX_LSB_RELEASE           = 0x47670005,  /* /etc/lsb-release   */
+  MD_LINUX_CMD_LINE              = 0x47670006,  /* /proc/$x/cmdline   */
+  MD_LINUX_ENVIRON               = 0x47670007,  /* /proc/$x/environ   */
+  MD_LINUX_AUXV                  = 0x47670008,  /* /proc/$x/auxv      */
+  MD_LINUX_MAPS                  = 0x47670009,  /* /proc/$x/maps      */
+  MD_LINUX_DSO_DEBUG             = 0x4767000A,  /* MDRawDebug{32,64}  */
+
+  /* Crashpad extension types. 0x4350 = "CP"
+   * See Crashpad's minidump/minidump_extensions.h. */
+  MD_CRASHPAD_INFO_STREAM        = 0x43500001,  /* MDRawCrashpadInfo  */
+} MDStreamType;  /* MINIDUMP_STREAM_TYPE */
+
+
+typedef struct {
+  uint32_t length;     /* Length of buffer in bytes (not characters),
+                        * excluding 0-terminator */
+  uint16_t buffer[1];  /* UTF-16-encoded, 0-terminated */
+} MDString;  /* MINIDUMP_STRING */
+
+static const size_t MDString_minsize = offsetof(MDString, buffer[0]);
+
+
+typedef struct {
+  uint32_t             thread_id;
+  uint32_t             suspend_count;
+  uint32_t             priority_class;
+  uint32_t             priority;
+  uint64_t             teb;             /* Thread environment block */
+  MDMemoryDescriptor   stack;
+  MDLocationDescriptor thread_context;  /* MDRawContext[CPU] */
+} MDRawThread;  /* MINIDUMP_THREAD */
+
+
+typedef struct {
+  uint32_t    number_of_threads;
+  MDRawThread threads[1];
+} MDRawThreadList;  /* MINIDUMP_THREAD_LIST */
+
+static const size_t MDRawThreadList_minsize = offsetof(MDRawThreadList,
+                                                       threads[0]);
+
+
+typedef struct {
+  uint64_t             base_of_image;
+  uint32_t             size_of_image;
+  uint32_t             checksum;         /* 0 if unknown */
+  uint32_t             time_date_stamp;  /* time_t */
+  MDRVA                module_name_rva;  /* MDString, pathname or filename */
+  MDVSFixedFileInfo    version_info;
+
+  /* The next field stores a CodeView record and is populated when a module's
+   * debug information resides in a PDB file.  It identifies the PDB file. */
+  MDLocationDescriptor cv_record;
+
+  /* The next field is populated when a module's debug information resides
+   * in a DBG file.  It identifies the DBG file.  This field is effectively
+   * obsolete with modules built by recent toolchains. */
+  MDLocationDescriptor misc_record;
+
+  /* Alignment problem: reserved0 and reserved1 are defined by the platform
+   * SDK as 64-bit quantities.  However, that results in a structure whose
+   * alignment is unpredictable on different CPUs and ABIs.  If the ABI
+   * specifies full alignment of 64-bit quantities in structures (as ppc
+   * does), there will be padding between miscRecord and reserved0.  If
+   * 64-bit quantities can be aligned on 32-bit boundaries (as on x86),
+   * this padding will not exist.  (Note that the structure up to this point
+   * contains 1 64-bit member followed by 21 32-bit members.)
+   * As a workaround, reserved0 and reserved1 are instead defined here as
+   * four 32-bit quantities.  This should be harmless, as there are
+   * currently no known uses for these fields. */
+  uint32_t             reserved0[2];
+  uint32_t             reserved1[2];
+} MDRawModule;  /* MINIDUMP_MODULE */
+
+/* The inclusion of a 64-bit type in MINIDUMP_MODULE forces the struct to
+ * be tail-padded out to a multiple of 64 bits under some ABIs (such as PPC).
+ * This doesn't occur on systems that don't tail-pad in this manner.  Define
+ * this macro to be the usable size of the MDRawModule struct, and use it in
+ * place of sizeof(MDRawModule). */
+#define MD_MODULE_SIZE 108
+
+
+/* (MDRawModule).cv_record can reference MDCVInfoPDB20 or MDCVInfoPDB70.
+ * Ref.: http://www.debuginfo.com/articles/debuginfomatch.html
+ * MDCVInfoPDB70 is the expected structure type with recent toolchains. */
+
+typedef struct {
+  uint32_t signature;
+  uint32_t offset;     /* Offset to debug data (expect 0 in minidump) */
+} MDCVHeader;
+
+typedef struct {
+  MDCVHeader cv_header;
+  uint32_t   signature;         /* time_t debug information created */
+  uint32_t   age;               /* revision of PDB file */
+  uint8_t    pdb_file_name[1];  /* Pathname or filename of PDB file */
+} MDCVInfoPDB20;
+
+static const size_t MDCVInfoPDB20_minsize = offsetof(MDCVInfoPDB20,
+                                                     pdb_file_name[0]);
+
+#define MD_CVINFOPDB20_SIGNATURE 0x3031424e  /* cvHeader.signature = '01BN' */
+
+typedef struct {
+  uint32_t  cv_signature;
+  MDGUID    signature;         /* GUID, identifies PDB file */
+  uint32_t  age;               /* Identifies incremental changes to PDB file */
+  uint8_t   pdb_file_name[1];  /* Pathname or filename of PDB file,
+                                * 0-terminated 8-bit character data (UTF-8?) */
+} MDCVInfoPDB70;
+
+static const size_t MDCVInfoPDB70_minsize = offsetof(MDCVInfoPDB70,
+                                                     pdb_file_name[0]);
+
+#define MD_CVINFOPDB70_SIGNATURE 0x53445352  /* cvSignature = 'SDSR' */
+
+/*
+ * Modern ELF toolchains insert a "build id" into the ELF headers that
+ * usually contains a hash of some ELF headers + sections to uniquely
+ * identify a binary.
+ *
+ * https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compiling-build-id.html
+ * https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292
+ */
+typedef struct {
+  uint32_t cv_signature;
+  uint8_t  build_id[1];  /* Bytes of build id from GNU_BUILD_ID ELF note.
+                          * This is variable-length, but usually 20 bytes
+                          * as the binutils ld default is a SHA-1 hash. */
+} MDCVInfoELF;
+
+static const size_t MDCVInfoELF_minsize = offsetof(MDCVInfoELF,
+                                                   build_id[0]);
+
+#define MD_CVINFOELF_SIGNATURE 0x4270454c  /* cvSignature = 'BpEL' */
+
+/* In addition to the two CodeView record formats above, used for linking
+ * to external pdb files, it is possible for debugging data to be carried
+ * directly in the CodeView record itself.  These signature values will
+ * be found in the first 4 bytes of the CodeView record.  Additional values
+ * not commonly experienced in the wild are given by "Microsoft Symbol and
+ * Type Information", http://www.x86.org/ftp/manuals/tools/sym.pdf, section
+ * 7.2.  An in-depth description of the CodeView 4.1 format is given by
+ * "Undocumented Windows 2000 Secrets", Windows 2000 Debugging Support/
+ * Microsoft Symbol File Internals/CodeView Subsections,
+ * http://www.rawol.com/features/undocumented/sbs-w2k-1-windows-2000-debugging-support.pdf
+ */
+#define MD_CVINFOCV41_SIGNATURE 0x3930424e  /* '90BN', CodeView 4.10. */
+#define MD_CVINFOCV50_SIGNATURE 0x3131424e  /* '11BN', CodeView 5.0,
+                                             * MS C7-format (/Z7). */
+
+#define MD_CVINFOUNKNOWN_SIGNATURE 0xffffffff  /* An unlikely value. */
+
+/* (MDRawModule).miscRecord can reference MDImageDebugMisc.  The Windows
+ * structure is actually defined in WinNT.h.  This structure is effectively
+ * obsolete with modules built by recent toolchains. */
+
+typedef struct {
+  uint32_t  data_type;    /* IMAGE_DEBUG_TYPE_*, not defined here because
+                           * this debug record type is mostly obsolete. */
+  uint32_t  length;       /* Length of entire MDImageDebugMisc structure */
+  uint8_t   unicode;      /* True if data is multibyte */
+  uint8_t   reserved[3];
+  uint8_t   data[1];
+} MDImageDebugMisc;  /* IMAGE_DEBUG_MISC */
+
+static const size_t MDImageDebugMisc_minsize = offsetof(MDImageDebugMisc,
+                                                        data[0]);
+
+
+typedef struct {
+  uint32_t    number_of_modules;
+  MDRawModule modules[1];
+} MDRawModuleList;  /* MINIDUMP_MODULE_LIST */
+
+static const size_t MDRawModuleList_minsize = offsetof(MDRawModuleList,
+                                                       modules[0]);
+
+
+typedef struct {
+  uint32_t           number_of_memory_ranges;
+  MDMemoryDescriptor memory_ranges[1];
+} MDRawMemoryList;  /* MINIDUMP_MEMORY_LIST */
+
+static const size_t MDRawMemoryList_minsize = offsetof(MDRawMemoryList,
+                                                       memory_ranges[0]);
+
+
+#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15u
+
+typedef struct {
+  uint32_t  exception_code;     /* Windows: MDExceptionCodeWin,
+                                 * Mac OS X: MDExceptionMac,
+                                 * Linux: MDExceptionCodeLinux. */
+  uint32_t  exception_flags;    /* Windows: 1 if noncontinuable,
+                                   Mac OS X: MDExceptionCodeMac. */
+  uint64_t  exception_record;   /* Address (in the minidump-producing host's
+                                 * memory) of another MDException, for
+                                 * nested exceptions. */
+  uint64_t  exception_address;  /* The address that caused the exception.
+                                 * Mac OS X: exception subcode (which is
+                                 *           typically the address). */
+  uint32_t  number_parameters;  /* Number of valid elements in
+                                 * exception_information. */
+  uint32_t  __align;
+  uint64_t  exception_information[MD_EXCEPTION_MAXIMUM_PARAMETERS];
+} MDException;  /* MINIDUMP_EXCEPTION */
+
+#include "minidump_exception_fuchsia.h"
+#include "minidump_exception_linux.h"
+#include "minidump_exception_mac.h"
+#include "minidump_exception_ps3.h"
+#include "minidump_exception_solaris.h"
+#include "minidump_exception_win32.h"
+
+typedef struct {
+  uint32_t             thread_id;         /* Thread in which the exception
+                                           * occurred.  Corresponds to
+                                           * (MDRawThread).thread_id. */
+  uint32_t             __align;
+  MDException          exception_record;
+  MDLocationDescriptor thread_context;    /* MDRawContext[CPU] */
+} MDRawExceptionStream;  /* MINIDUMP_EXCEPTION_STREAM */
+
+
+typedef union {
+  struct {
+    uint32_t vendor_id[3];               /* cpuid 0: ebx, edx, ecx */
+    uint32_t version_information;        /* cpuid 1: eax */
+    uint32_t feature_information;        /* cpuid 1: edx */
+    uint32_t amd_extended_cpu_features;  /* cpuid 0x80000001, ebx */
+  } x86_cpu_info;
+  struct {
+    uint32_t cpuid;
+    uint32_t elf_hwcaps;    /* linux specific, 0 otherwise */
+  } arm_cpu_info;
+  struct {
+    uint64_t processor_features[2];
+  } other_cpu_info;
+} MDCPUInformation;  /* CPU_INFORMATION */
+
+/* For (MDCPUInformation).arm_cpu_info.elf_hwcaps.
+ * This matches the Linux kernel definitions from <asm/hwcaps.h> */
+typedef enum {
+  MD_CPU_ARM_ELF_HWCAP_SWP       = (1 << 0),
+  MD_CPU_ARM_ELF_HWCAP_HALF      = (1 << 1),
+  MD_CPU_ARM_ELF_HWCAP_THUMB     = (1 << 2),
+  MD_CPU_ARM_ELF_HWCAP_26BIT     = (1 << 3),
+  MD_CPU_ARM_ELF_HWCAP_FAST_MULT = (1 << 4),
+  MD_CPU_ARM_ELF_HWCAP_FPA       = (1 << 5),
+  MD_CPU_ARM_ELF_HWCAP_VFP       = (1 << 6),
+  MD_CPU_ARM_ELF_HWCAP_EDSP      = (1 << 7),
+  MD_CPU_ARM_ELF_HWCAP_JAVA      = (1 << 8),
+  MD_CPU_ARM_ELF_HWCAP_IWMMXT    = (1 << 9),
+  MD_CPU_ARM_ELF_HWCAP_CRUNCH    = (1 << 10),
+  MD_CPU_ARM_ELF_HWCAP_THUMBEE   = (1 << 11),
+  MD_CPU_ARM_ELF_HWCAP_NEON      = (1 << 12),
+  MD_CPU_ARM_ELF_HWCAP_VFPv3     = (1 << 13),
+  MD_CPU_ARM_ELF_HWCAP_VFPv3D16  = (1 << 14),
+  MD_CPU_ARM_ELF_HWCAP_TLS       = (1 << 15),
+  MD_CPU_ARM_ELF_HWCAP_VFPv4     = (1 << 16),
+  MD_CPU_ARM_ELF_HWCAP_IDIVA     = (1 << 17),
+  MD_CPU_ARM_ELF_HWCAP_IDIVT     = (1 << 18),
+} MDCPUInformationARMElfHwCaps;
+
+typedef struct {
+  /* The next 3 fields and numberOfProcessors are from the SYSTEM_INFO
+   * structure as returned by GetSystemInfo */
+  uint16_t         processor_architecture;
+  uint16_t         processor_level;         /* x86: 5 = 586, 6 = 686, ... */
+                                            /* ARM: 6 = ARMv6, 7 = ARMv7 ... */
+  uint16_t         processor_revision;      /* x86: 0xMMSS, where MM=model,
+                                             *      SS=stepping */
+                                            /* ARM: 0 */
+
+  uint8_t          number_of_processors;
+  uint8_t          product_type;            /* Windows: VER_NT_* from WinNT.h */
+
+  /* The next 5 fields are from the OSVERSIONINFO structure as returned
+   * by GetVersionEx */
+  uint32_t         major_version;
+  uint32_t         minor_version;
+  uint32_t         build_number;
+  uint32_t         platform_id;
+  MDRVA            csd_version_rva;  /* MDString further identifying the
+                                      * host OS.
+                                      * Windows: name of the installed OS
+                                      *          service pack.
+                                      * Mac OS X: the Apple OS build number
+                                      *           (sw_vers -buildVersion).
+                                      * Linux: uname -srvmo */
+
+  uint16_t         suite_mask;       /* Windows: VER_SUITE_* from WinNT.h */
+  uint16_t         reserved2;
+
+  MDCPUInformation cpu;
+} MDRawSystemInfo;  /* MINIDUMP_SYSTEM_INFO */
+
+/* For (MDRawSystemInfo).processor_architecture: */
+typedef enum {
+  MD_CPU_ARCHITECTURE_X86       =  0,  /* PROCESSOR_ARCHITECTURE_INTEL */
+  MD_CPU_ARCHITECTURE_MIPS      =  1,  /* PROCESSOR_ARCHITECTURE_MIPS */
+  MD_CPU_ARCHITECTURE_ALPHA     =  2,  /* PROCESSOR_ARCHITECTURE_ALPHA */
+  MD_CPU_ARCHITECTURE_PPC       =  3,  /* PROCESSOR_ARCHITECTURE_PPC */
+  MD_CPU_ARCHITECTURE_SHX       =  4,  /* PROCESSOR_ARCHITECTURE_SHX
+                                        * (Super-H) */
+  MD_CPU_ARCHITECTURE_ARM       =  5,  /* PROCESSOR_ARCHITECTURE_ARM */
+  MD_CPU_ARCHITECTURE_IA64      =  6,  /* PROCESSOR_ARCHITECTURE_IA64 */
+  MD_CPU_ARCHITECTURE_ALPHA64   =  7,  /* PROCESSOR_ARCHITECTURE_ALPHA64 */
+  MD_CPU_ARCHITECTURE_MSIL      =  8,  /* PROCESSOR_ARCHITECTURE_MSIL
+                                        * (Microsoft Intermediate Language) */
+  MD_CPU_ARCHITECTURE_AMD64     =  9,  /* PROCESSOR_ARCHITECTURE_AMD64 */
+  MD_CPU_ARCHITECTURE_X86_WIN64 = 10,
+      /* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */
+  MD_CPU_ARCHITECTURE_ARM64     = 12,  /* PROCESSOR_ARCHITECTURE_ARM64 */
+  MD_CPU_ARCHITECTURE_SPARC     = 0x8001, /* Breakpad-defined value for SPARC */
+  MD_CPU_ARCHITECTURE_PPC64     = 0x8002, /* Breakpad-defined value for PPC64 */
+  MD_CPU_ARCHITECTURE_ARM64_OLD = 0x8003, /* Breakpad-defined value for ARM64 */
+  MD_CPU_ARCHITECTURE_MIPS64    = 0x8004, /* Breakpad-defined value for MIPS64 */
+  MD_CPU_ARCHITECTURE_UNKNOWN   = 0xffff  /* PROCESSOR_ARCHITECTURE_UNKNOWN */
+} MDCPUArchitecture;
+
+/* For (MDRawSystemInfo).platform_id: */
+typedef enum {
+  MD_OS_WIN32S        = 0,  /* VER_PLATFORM_WIN32s (Windows 3.1) */
+  MD_OS_WIN32_WINDOWS = 1,  /* VER_PLATFORM_WIN32_WINDOWS (Windows 95-98-Me) */
+  MD_OS_WIN32_NT      = 2,  /* VER_PLATFORM_WIN32_NT (Windows NT, 2000+) */
+  MD_OS_WIN32_CE      = 3,  /* VER_PLATFORM_WIN32_CE, VER_PLATFORM_WIN32_HH
+                             * (Windows CE, Windows Mobile, "Handheld") */
+
+  /* The following values are Breakpad-defined. */
+  MD_OS_UNIX          = 0x8000,  /* Generic Unix-ish */
+  MD_OS_MAC_OS_X      = 0x8101,  /* Mac OS X/Darwin */
+  MD_OS_IOS           = 0x8102,  /* iOS */
+  MD_OS_LINUX         = 0x8201,  /* Linux */
+  MD_OS_SOLARIS       = 0x8202,  /* Solaris */
+  MD_OS_ANDROID       = 0x8203,  /* Android */
+  MD_OS_PS3           = 0x8204,  /* PS3 */
+  MD_OS_NACL          = 0x8205,  /* Native Client (NaCl) */
+  MD_OS_FUCHSIA       = 0x8206   /* Fuchsia */
+} MDOSPlatform;
+
+typedef struct {
+  uint64_t base_of_image;
+  uint32_t size_of_image;
+  uint32_t checksum;
+  uint32_t time_date_stamp;
+  MDRVA module_name_rva;
+} MDRawUnloadedModule;
+
+typedef struct {
+  uint32_t size_of_header;
+  uint32_t size_of_entry;
+  uint32_t number_of_entries;
+} MDRawUnloadedModuleList;  /* MINIDUMP_UNLOADED_MODULE_LIST */
+
+typedef struct {
+  uint16_t year;
+  uint16_t month;
+  uint16_t day_of_week;
+  uint16_t day;
+  uint16_t hour;
+  uint16_t minute;
+  uint16_t second;
+  uint16_t milliseconds;
+} MDSystemTime;  /* SYSTEMTIME */
+
+typedef struct {
+  /* Required field.  The bias is the difference, in minutes, between
+   * Coordinated Universal Time (UTC) and local time.
+   *   Formula: UTC = local time + bias */
+  int32_t bias;
+  /* A description for standard time.  For example, "EST" could indicate Eastern
+   * Standard Time.  In practice this contains the full time zone names.  This
+   * string can be empty. */
+  uint16_t standard_name[32];  /* UTF-16-encoded, 0-terminated */
+  /* A MDSystemTime structure that contains a date and local time when the
+   * transition from daylight saving time to standard time occurs on this
+   * operating system.  If the time zone does not support daylight saving time, 
+   * the month member in the MDSystemTime structure is zero. */
+  MDSystemTime standard_date;
+  /* The bias value to be used during local time translations that occur during
+   * standard time. */
+  int32_t standard_bias;
+  /* A description for daylight saving time.  For example, "PDT" could indicate
+   * Pacific Daylight Time.  In practice this contains the full time zone names.
+   * This string can be empty. */
+  uint16_t daylight_name[32];  /* UTF-16-encoded, 0-terminated */
+  /* A MDSystemTime structure that contains a date and local time when the
+   * transition from standard time to daylight saving time occurs on this
+   * operating system.  If the time zone does not support daylight saving time, 
+   * the month member in the MDSystemTime structure is zero.*/
+  MDSystemTime daylight_date;
+  /* The bias value to be used during local time translations that occur during
+   * daylight saving time. */
+  int32_t daylight_bias;
+} MDTimeZoneInformation;  /* TIME_ZONE_INFORMATION */
+
+/* MAX_PATH from windef.h */
+#define MD_MAX_PATH 260
+
+/* For MDXStateConfigFeatureMscInfo.features */
+typedef struct {
+  uint32_t offset;
+  uint32_t size;
+} MDXStateFeature;
+
+/* For MDXStateConfigFeatureMscInfo.enabled_features from winnt.h */
+typedef enum {
+  MD_XSTATE_LEGACY_FLOATING_POINT = 0, /* XSTATE_LEGACY_FLOATING_POINT */
+  MD_XSTATE_LEGACY_SSE            = 1, /* XSTATE_LEGACY_SSE */
+  MD_XSTATE_GSSE                  = 2, /* XSTATE_GSSE */
+  MD_XSTATE_AVX                   = MD_XSTATE_GSSE, /* XSTATE_AVX */
+  MD_XSTATE_MPX_BNDREGS           = 3, /* XSTATE_MPX_BNDREGS */
+  MD_XSTATE_MPX_BNDCSR            = 4, /* XSTATE_MPX_BNDCSR */
+  MD_XSTATE_AVX512_KMASK          = 5, /* XSTATE_AVX512_KMASK */
+  MD_XSTATE_AVX512_ZMM_H          = 6, /* XSTATE_AVX512_ZMM_H */
+  MD_XSTATE_AVX512_ZMM            = 7, /* XSTATE_AVX512_ZMM */
+  MD_XSTATE_IPT                   = 8, /* XSTATE_IPT */
+  MD_XSTATE_LWP                   = 62 /* XSTATE_LWP */
+} MDXStateFeatureFlag;
+
+/* MAXIMUM_XSTATE_FEATURES from winnt.h */
+#define MD_MAXIMUM_XSTATE_FEATURES 64
+
+/* For MDRawMiscInfo.xstate_data */
+typedef struct {
+  uint32_t size_of_info;
+  uint32_t context_size;
+  /* An entry in the features array is valid only if the corresponding bit in
+   * the enabled_features flag is set. */
+  uint64_t enabled_features;
+  MDXStateFeature features[MD_MAXIMUM_XSTATE_FEATURES];
+} MDXStateConfigFeatureMscInfo;
+
+
+/* The miscellaneous information stream contains a variety
+ * of small pieces of information.  A member is valid if
+ * it's within the available size and its corresponding
+ * bit is set. */
+typedef struct {
+  uint32_t size_of_info;  /* Length of entire MDRawMiscInfo structure. */
+  uint32_t flags1;
+
+  /* The next field is only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESS_ID. */
+  uint32_t process_id;
+
+  /* The next 3 fields are only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESS_TIMES. */
+  uint32_t process_create_time;  /* time_t process started */
+  uint32_t process_user_time;    /* seconds of user CPU time */
+  uint32_t process_kernel_time;  /* seconds of kernel CPU time */
+
+  /* The following fields are not present in MINIDUMP_MISC_INFO but are
+   * in MINIDUMP_MISC_INFO_2.  When this struct is populated, these values
+   * may not be set.  Use flags1 and size_of_info to determine whether these
+   * values are present.  These are only valid when flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO. */
+  uint32_t processor_max_mhz;
+  uint32_t processor_current_mhz;
+  uint32_t processor_mhz_limit;
+  uint32_t processor_max_idle_state;
+  uint32_t processor_current_idle_state;
+
+  /* The following fields are not present in MINIDUMP_MISC_INFO_2 but are
+   * in MINIDUMP_MISC_INFO_3.  When this struct is populated, these values
+   * may not be set.  Use flags1 and size_of_info to determine whether these
+   * values are present. */
+   
+  /* The following field is only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY. */
+  uint32_t process_integrity_level;
+
+  /* The following field is only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS. */
+  uint32_t process_execute_flags;
+
+  /* The following field is only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROTECTED_PROCESS. */
+  uint32_t protected_process;
+
+  /* The following 2 fields are only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_TIMEZONE. */
+  uint32_t time_zone_id;
+  MDTimeZoneInformation time_zone;
+
+  /* The following fields are not present in MINIDUMP_MISC_INFO_3 but are
+   * in MINIDUMP_MISC_INFO_4.  When this struct is populated, these values
+   * may not be set.  Use flags1 and size_of_info to determine whether these
+   * values are present. */
+
+  /* The following 2 fields are only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_BUILDSTRING. */
+  uint16_t build_string[MD_MAX_PATH];  /* UTF-16-encoded, 0-terminated */
+  uint16_t dbg_bld_str[40];            /* UTF-16-encoded, 0-terminated */
+
+  /* The following fields are not present in MINIDUMP_MISC_INFO_4 but are
+   * in MINIDUMP_MISC_INFO_5.  When this struct is populated, these values
+   * may not be set.  Use flags1 and size_of_info to determine whether these
+   * values are present. */
+
+  /* The following field has its own flags for establishing the validity of
+   * the structure's contents.*/
+  MDXStateConfigFeatureMscInfo xstate_data;
+
+  /* The following field is only valid if flags1 contains
+   * MD_MISCINFO_FLAGS1_PROCESS_COOKIE. */
+  uint32_t process_cookie;
+} MDRawMiscInfo;  /* MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2,
+                   * MINIDUMP_MISC_INFO_3, MINIDUMP_MISC_INFO_4,
+                   * MINIDUMP_MISC_INFO_5, MINIDUMP_MISC_INFO_N */
+
+static const size_t MD_MISCINFO_SIZE =
+    offsetof(MDRawMiscInfo, processor_max_mhz);
+static const size_t MD_MISCINFO2_SIZE =
+    offsetof(MDRawMiscInfo, process_integrity_level);
+static const size_t MD_MISCINFO3_SIZE =
+    offsetof(MDRawMiscInfo, build_string[0]);
+static const size_t MD_MISCINFO4_SIZE =
+    offsetof(MDRawMiscInfo, xstate_data);
+/* Version 5 of the MDRawMiscInfo structure is not a multiple of 8 in size and
+ * yet it contains some 8-bytes sized fields. This causes many compilers to
+ * round the structure size up to a multiple of 8 by adding padding at the end.
+ * The following hack is thus required for matching the proper on-disk size. */
+static const size_t MD_MISCINFO5_SIZE =
+    offsetof(MDRawMiscInfo, process_cookie) + sizeof(uint32_t);
+
+/* For (MDRawMiscInfo).flags1.  These values indicate which fields in the
+ * MDRawMiscInfoStructure are valid. */
+typedef enum {
+  MD_MISCINFO_FLAGS1_PROCESS_ID            = 0x00000001,
+      /* MINIDUMP_MISC1_PROCESS_ID */
+  MD_MISCINFO_FLAGS1_PROCESS_TIMES         = 0x00000002,
+      /* MINIDUMP_MISC1_PROCESS_TIMES */
+  MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO  = 0x00000004,
+      /* MINIDUMP_MISC1_PROCESSOR_POWER_INFO */
+  MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY     = 0x00000010,
+      /* MINIDUMP_MISC3_PROCESS_INTEGRITY */
+  MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS = 0x00000020,
+      /* MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS */
+  MD_MISCINFO_FLAGS1_TIMEZONE              = 0x00000040,
+      /* MINIDUMP_MISC3_TIMEZONE */
+  MD_MISCINFO_FLAGS1_PROTECTED_PROCESS     = 0x00000080,
+      /* MINIDUMP_MISC3_PROTECTED_PROCESS */
+  MD_MISCINFO_FLAGS1_BUILDSTRING           = 0x00000100,
+      /* MINIDUMP_MISC4_BUILDSTRING */
+  MD_MISCINFO_FLAGS1_PROCESS_COOKIE        = 0x00000200,
+      /* MINIDUMP_MISC5_PROCESS_COOKIE */
+} MDMiscInfoFlags1;
+
+/*
+ * Around DbgHelp version 6.0, the style of new LIST structures changed
+ * from including an array of length 1 at the end of the struct to
+ * represent the variable-length data to including explicit
+ * "size of header", "size of entry" and "number of entries" fields
+ * in the header, presumably to allow backwards-compatibly-extending
+ * the structures in the future. The actual list entries follow the
+ * header data directly in this case.
+ */
+
+typedef struct {
+  uint32_t size_of_header;    /* sizeof(MDRawMemoryInfoList) */
+  uint32_t size_of_entry;     /* sizeof(MDRawMemoryInfo) */
+  uint64_t number_of_entries;
+} MDRawMemoryInfoList;  /* MINIDUMP_MEMORY_INFO_LIST */
+
+typedef struct {
+  uint64_t  base_address;           /* Base address of a region of pages */
+  uint64_t  allocation_base;        /* Base address of a range of pages
+                                     * within this region. */
+  uint32_t  allocation_protection;  /* Memory protection when this region
+                                     * was originally allocated:
+                                     * MDMemoryProtection */
+  uint32_t  __alignment1;
+  uint64_t  region_size;
+  uint32_t  state;                  /* MDMemoryState */
+  uint32_t  protection;             /* MDMemoryProtection */
+  uint32_t  type;                   /* MDMemoryType */
+  uint32_t  __alignment2;
+} MDRawMemoryInfo;  /* MINIDUMP_MEMORY_INFO */
+
+/* For (MDRawMemoryInfo).state */
+typedef enum {
+  MD_MEMORY_STATE_COMMIT   = 0x1000,  /* physical storage has been allocated */
+  MD_MEMORY_STATE_RESERVE  = 0x2000,  /* reserved, but no physical storage */
+  MD_MEMORY_STATE_FREE     = 0x10000  /* available to be allocated */
+} MDMemoryState;
+
+/* For (MDRawMemoryInfo).allocation_protection and .protection */
+typedef enum {
+  MD_MEMORY_PROTECT_NOACCESS          = 0x01,  /* PAGE_NOACCESS */
+  MD_MEMORY_PROTECT_READONLY          = 0x02,  /* PAGE_READONLY */
+  MD_MEMORY_PROTECT_READWRITE         = 0x04,  /* PAGE_READWRITE */
+  MD_MEMORY_PROTECT_WRITECOPY         = 0x08,  /* PAGE_WRITECOPY */
+  MD_MEMORY_PROTECT_EXECUTE           = 0x10,  /* PAGE_EXECUTE */
+  MD_MEMORY_PROTECT_EXECUTE_READ      = 0x20,  /* PAGE_EXECUTE_READ */
+  MD_MEMORY_PROTECT_EXECUTE_READWRITE = 0x40,  /* PAGE_EXECUTE_READWRITE */
+  MD_MEMORY_PROTECT_EXECUTE_WRITECOPY = 0x80,  /* PAGE_EXECUTE_WRITECOPY */
+  /* These options can be combined with the previous flags. */
+  MD_MEMORY_PROTECT_GUARD             = 0x100,  /* PAGE_GUARD */
+  MD_MEMORY_PROTECT_NOCACHE           = 0x200,  /* PAGE_NOCACHE */
+  MD_MEMORY_PROTECT_WRITECOMBINE      = 0x400,  /* PAGE_WRITECOMBINE */
+} MDMemoryProtection;
+
+/* Used to mask the mutually exclusive options from the combinable flags. */
+const uint32_t MD_MEMORY_PROTECTION_ACCESS_MASK = 0xFF;
+
+/* For (MDRawMemoryInfo).type */
+typedef enum {
+  MD_MEMORY_TYPE_PRIVATE = 0x20000,   /* not shared by other processes */
+  MD_MEMORY_TYPE_MAPPED  = 0x40000,   /* mapped into the view of a section */
+  MD_MEMORY_TYPE_IMAGE   = 0x1000000  /* mapped into the view of an image */
+} MDMemoryType;
+
+/*
+ * Breakpad extension types
+ */
+
+
+typedef struct {
+  /* validity is a bitmask with values from MDBreakpadInfoValidity, indicating
+   * which of the other fields in the structure are valid. */
+  uint32_t validity;
+
+  /* Thread ID of the handler thread.  dump_thread_id should correspond to
+   * the thread_id of an MDRawThread in the minidump's MDRawThreadList if
+   * a dedicated thread in that list was used to produce the minidump.  If
+   * the MDRawThreadList does not contain a dedicated thread used to produce
+   * the minidump, this field should be set to 0 and the validity field
+   * must not contain MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID. */
+  uint32_t dump_thread_id;
+
+  /* Thread ID of the thread that requested the minidump be produced.  As
+   * with dump_thread_id, requesting_thread_id should correspond to the
+   * thread_id of an MDRawThread in the minidump's MDRawThreadList.  For
+   * minidumps produced as a result of an exception, requesting_thread_id
+   * will be the same as the MDRawExceptionStream's thread_id field.  For
+   * minidumps produced "manually" at the program's request,
+   * requesting_thread_id will indicate which thread caused the dump to be
+   * written.  If the minidump was produced at the request of something
+   * other than a thread in the MDRawThreadList, this field should be set
+   * to 0 and the validity field must not contain
+   * MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID. */
+  uint32_t requesting_thread_id;
+} MDRawBreakpadInfo;
+
+/* For (MDRawBreakpadInfo).validity: */
+typedef enum {
+  /* When set, the dump_thread_id field is valid. */
+  MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID       = 1 << 0,
+
+  /* When set, the requesting_thread_id field is valid. */
+  MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID = 1 << 1
+} MDBreakpadInfoValidity;
+
+typedef struct {
+  /* expression, function, and file are 0-terminated UTF-16 strings.  They
+   * may be truncated if necessary, but should always be 0-terminated when
+   * written to a file.
+   * Fixed-length strings are used because MiniDumpWriteDump doesn't offer
+   * a way for user streams to point to arbitrary RVAs for strings. */
+  uint16_t expression[128];  /* Assertion that failed... */
+  uint16_t function[128];    /* ...within this function... */
+  uint16_t file[128];        /* ...in this file... */
+  uint32_t line;             /* ...at this line. */
+  uint32_t type;
+} MDRawAssertionInfo;
+
+/* For (MDRawAssertionInfo).type: */
+typedef enum {
+  MD_ASSERTION_INFO_TYPE_UNKNOWN = 0,
+
+  /* Used for assertions that would be raised by the MSVC CRT but are
+   * directed to an invalid parameter handler instead. */
+  MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER,
+
+  /* Used for assertions that would be raised by the MSVC CRT but are
+   * directed to a pure virtual call handler instead. */
+  MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL
+} MDAssertionInfoData;
+
+/* These structs are used to store the DSO debug data in Linux minidumps,
+ * which is necessary for converting minidumps to usable coredumps.
+ * Because of a historical accident, several fields are variably encoded
+ * according to client word size, so tools potentially need to support both. */
+
+typedef struct {
+  uint32_t  addr;
+  MDRVA     name;
+  uint32_t  ld;
+} MDRawLinkMap32;
+
+typedef struct {
+  uint32_t  version;
+  MDRVA     map;  /* array of MDRawLinkMap32 */
+  uint32_t  dso_count;
+  uint32_t  brk;
+  uint32_t  ldbase;
+  uint32_t  dynamic;
+} MDRawDebug32;
+
+typedef struct {
+  uint64_t  addr;
+  MDRVA     name;
+  uint64_t  ld;
+} MDRawLinkMap64;
+
+typedef struct {
+  uint32_t  version;
+  MDRVA     map;  /* array of MDRawLinkMap64 */
+  uint32_t  dso_count;
+  uint64_t  brk;
+  uint64_t  ldbase;
+  uint64_t  dynamic;
+} MDRawDebug64;
+
+/* Crashpad extension types. See Crashpad's minidump/minidump_extensions.h. */
+
+typedef struct {
+  MDRVA key;
+  MDRVA value;
+} MDRawSimpleStringDictionaryEntry;
+
+typedef struct {
+  uint32_t count;
+  MDRawSimpleStringDictionaryEntry entries[0];
+} MDRawSimpleStringDictionary;
+
+typedef struct {
+  uint32_t version;
+  MDLocationDescriptor list_annotations;
+  MDLocationDescriptor simple_annotations;  /* MDRawSimpleStringDictionary */
+} MDRawModuleCrashpadInfo;
+
+typedef struct {
+  uint32_t minidump_module_list_index;
+  MDLocationDescriptor location;  /* MDRawModuleCrashpadInfo */
+} MDRawModuleCrashpadInfoLink;
+
+typedef struct {
+  uint32_t count;
+  MDLocationDescriptor modules[0];  /* MDRawModuleCrashpadInfoLink */
+} MDRawModuleCrashpadInfoList;
+
+typedef struct {
+  uint32_t version;
+  MDGUID report_id;
+  MDGUID client_id;
+  MDLocationDescriptor simple_annotations;  /* MDRawSimpleStringDictionary */
+  MDLocationDescriptor module_list;  /* MDRawModuleCrashpadInfoList */
+} MDRawCrashpadInfo;
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif  /* _MSC_VER */
+
+
+#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ */
diff --git a/src/google_breakpad/common/minidump_size.h b/src/google_breakpad/common/minidump_size.h
new file mode 100644
index 0000000..fae5792
--- /dev/null
+++ b/src/google_breakpad/common/minidump_size.h
@@ -0,0 +1,113 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+// minidump_size.h: Provides a C++ template for programmatic access to
+// the sizes of various types defined in minidump_format.h.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
+
+#include <sys/types.h>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+template<typename T>
+class minidump_size {
+ public:
+  static size_t size() { return sizeof(T); }
+};
+
+// Explicit specializations for variable-length types.  The size returned
+// for these should be the size for an object without its variable-length
+// section.
+
+template<>
+class minidump_size<MDString> {
+ public:
+  static size_t size() { return MDString_minsize; }
+};
+
+template<>
+class minidump_size<MDRawThreadList> {
+ public:
+  static size_t size() { return MDRawThreadList_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoPDB20> {
+ public:
+  static size_t size() { return MDCVInfoPDB20_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoPDB70> {
+ public:
+  static size_t size() { return MDCVInfoPDB70_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoELF> {
+ public:
+  static size_t size() { return MDCVInfoELF_minsize; }
+};
+
+template<>
+class minidump_size<MDImageDebugMisc> {
+ public:
+  static size_t size() { return MDImageDebugMisc_minsize; }
+};
+
+template<>
+class minidump_size<MDRawModuleList> {
+ public:
+  static size_t size() { return MDRawModuleList_minsize; }
+};
+
+template<>
+class minidump_size<MDRawMemoryList> {
+ public:
+  static size_t size() { return MDRawMemoryList_minsize; }
+};
+
+// Explicit specialization for MDRawModule, for which sizeof may include
+// tail-padding on some architectures but not others.
+
+template<>
+class minidump_size<MDRawModule> {
+ public:
+  static size_t size() { return MD_MODULE_SIZE; }
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
diff --git a/src/google_breakpad/processor/basic_source_line_resolver.h b/src/google_breakpad/processor/basic_source_line_resolver.h
new file mode 100644
index 0000000..1c7bf46
--- /dev/null
+++ b/src/google_breakpad/processor/basic_source_line_resolver.h
@@ -0,0 +1,148 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// basic_source_line_resolver.h: BasicSourceLineResolver is derived from
+// SourceLineResolverBase, and is a concrete implementation of
+// SourceLineResolverInterface, using address map files produced by a
+// compatible writer, e.g. PDBSourceLineWriter.
+//
+// see "processor/source_line_resolver_base.h"
+// and "source_line_resolver_interface.h" for more documentation.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
+
+#include <map>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/source_line_resolver_base.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class BasicSourceLineResolver : public SourceLineResolverBase {
+ public:
+  BasicSourceLineResolver();
+  virtual ~BasicSourceLineResolver() { }
+
+  using SourceLineResolverBase::LoadModule;
+  using SourceLineResolverBase::LoadModuleUsingMapBuffer;
+  using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
+  using SourceLineResolverBase::ShouldDeleteMemoryBufferAfterLoadModule;
+  using SourceLineResolverBase::UnloadModule;
+  using SourceLineResolverBase::HasModule;
+  using SourceLineResolverBase::IsModuleCorrupt;
+  using SourceLineResolverBase::FillSourceLineInfo;
+  using SourceLineResolverBase::FindWindowsFrameInfo;
+  using SourceLineResolverBase::FindCFIFrameInfo;
+
+ private:
+  // friend declarations:
+  friend class BasicModuleFactory;
+  friend class ModuleComparer;
+  friend class ModuleSerializer;
+  template<class> friend class SimpleSerializer;
+
+  // Function derives from SourceLineResolverBase::Function.
+  struct Function;
+  // Module implements SourceLineResolverBase::Module interface.
+  class Module;
+
+  // Disallow unwanted copy ctor and assignment operator
+  BasicSourceLineResolver(const BasicSourceLineResolver&);
+  void operator=(const BasicSourceLineResolver&);
+};
+
+// Helper class, containing useful methods for parsing of Breakpad symbol files.
+class SymbolParseHelper {
+ public:
+  // Parses a |file_line| declaration.  Returns true on success.
+  // Format: FILE <id> <filename>.
+  // Notice, that this method modifies the input |file_line| which is why it
+  // can't be const.  On success, <id>, and <filename> are stored in |*index|,
+  // and |*filename|.  No allocation is done, |*filename| simply points inside
+  // |file_line|.
+  static bool ParseFile(char* file_line,   // in
+                        long* index,       // out
+                        char** filename);  // out
+
+  // Parses a |function_line| declaration.  Returns true on success.
+  // Format:  FUNC [<multiple>] <address> <size> <stack_param_size> <name>.
+  // Notice, that this method modifies the input |function_line| which is why it
+  // can't be const.  On success, the presence of <multiple>, <address>, <size>,
+  // <stack_param_size>, and <name> are stored in |*is_multiple|, |*address|,
+  // |*size|, |*stack_param_size|, and |*name|.  No allocation is done, |*name|
+  // simply points inside |function_line|.
+  static bool ParseFunction(char* function_line,     // in
+                            bool* is_multiple,       // out
+                            uint64_t* address,       // out
+                            uint64_t* size,          // out
+                            long* stack_param_size,  // out
+                            char** name);            // out
+
+  // Parses a |line| declaration.  Returns true on success.
+  // Format:  <address> <size> <line number> <source file id>
+  // Notice, that this method modifies the input |function_line| which is why
+  // it can't be const.  On success, <address>, <size>, <line number>, and
+  // <source file id> are stored in |*address|, |*size|, |*line_number|, and
+  // |*source_file|.
+  static bool ParseLine(char* line_line,     // in
+                        uint64_t* address,   // out
+                        uint64_t* size,      // out
+                        long* line_number,   // out
+                        long* source_file);  // out
+
+  // Parses a |public_line| declaration.  Returns true on success.
+  // Format:  PUBLIC [<multiple>] <address> <stack_param_size> <name>
+  // Notice, that this method modifies the input |function_line| which is why
+  // it can't be const.  On success, the presence of <multiple>, <address>,
+  // <stack_param_size>, <name> are stored in |*is_multiple|, |*address|,
+  // |*stack_param_size|, and |*name|.  No allocation is done, |*name| simply
+  // points inside |public_line|.
+  static bool ParsePublicSymbol(char* public_line,       // in
+                                bool* is_multiple,       // out
+                                uint64_t* address,       // out
+                                long* stack_param_size,  // out
+                                char** name);            // out
+
+ private:
+  // Used for success checks after strtoull and strtol.
+  static bool IsValidAfterNumber(char* after_number);
+
+  // Only allow static methods.
+  SymbolParseHelper();
+  SymbolParseHelper(const SymbolParseHelper&);
+  void operator=(const SymbolParseHelper&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
diff --git a/src/google_breakpad/processor/call_stack.h b/src/google_breakpad/processor/call_stack.h
new file mode 100644
index 0000000..c591423
--- /dev/null
+++ b/src/google_breakpad/processor/call_stack.h
@@ -0,0 +1,87 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// call_stack.h: A call stack comprised of stack frames.
+//
+// This class manages a vector of stack frames.  It is used instead of
+// exposing the vector directly to allow the CallStack to own StackFrame
+// pointers without having to publicly export the linked_ptr class.  A
+// CallStack must be composed of pointers instead of objects to allow for
+// CPU-specific StackFrame subclasses.
+//
+// By convention, the stack frame at index 0 is the innermost callee frame,
+// and the frame at the highest index in a call stack is the outermost
+// caller.  CallStack only allows stacks to be built by pushing frames,
+// beginning with the innermost callee frame.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
+
+#include <cstdint>
+#include <vector>
+
+namespace google_breakpad {
+
+using std::vector;
+
+struct StackFrame;
+template<typename T> class linked_ptr;
+
+class CallStack {
+ public:
+  CallStack() { Clear(); }
+  ~CallStack();
+
+  // Resets the CallStack to its initial empty state
+  void Clear();
+
+  const vector<StackFrame*>* frames() const { return &frames_; }
+
+  // Set the TID associated with this call stack.
+  void set_tid(uint32_t tid) { tid_ = tid; }
+
+  uint32_t tid() const { return tid_; }
+
+ private:
+  // Stackwalker is responsible for building the frames_ vector.
+  friend class Stackwalker;
+
+  // Storage for pushed frames.
+  vector<StackFrame*> frames_;
+
+  // The TID associated with this call stack. Default to 0 if it's not
+  // available.
+  uint32_t tid_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCSSOR_CALL_STACK_H__
diff --git a/src/google_breakpad/processor/code_module.h b/src/google_breakpad/processor/code_module.h
new file mode 100644
index 0000000..29b8d9c
--- /dev/null
+++ b/src/google_breakpad/processor/code_module.h
@@ -0,0 +1,104 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// code_module.h: Carries information about code modules that are loaded
+// into a process.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+class CodeModule {
+ public:
+  virtual ~CodeModule() {}
+
+  // The base address of this code module as it was loaded by the process.
+  // (uint64_t)-1 on error.
+  virtual uint64_t base_address() const = 0;
+
+  // The size of the code module.  0 on error.
+  virtual uint64_t size() const = 0;
+
+  // The path or file name that the code module was loaded from.  Empty on
+  // error.
+  virtual string code_file() const = 0;
+
+  // An identifying string used to discriminate between multiple versions and
+  // builds of the same code module.  This may contain a uuid, timestamp,
+  // version number, or any combination of this or other information, in an
+  // implementation-defined format.  Empty on error.
+  virtual string code_identifier() const = 0;
+
+  // The filename containing debugging information associated with the code
+  // module.  If debugging information is stored in a file separate from the
+  // code module itself (as is the case when .pdb or .dSYM files are used),
+  // this will be different from code_file.  If debugging information is
+  // stored in the code module itself (possibly prior to stripping), this
+  // will be the same as code_file.  Empty on error.
+  virtual string debug_file() const = 0;
+
+  // An identifying string similar to code_identifier, but identifies a
+  // specific version and build of the associated debug file.  This may be
+  // the same as code_identifier when the debug_file and code_file are
+  // identical or when the same identifier is used to identify distinct
+  // debug and code files.
+  virtual string debug_identifier() const = 0;
+
+  // A human-readable representation of the code module's version.  Empty on
+  // error.
+  virtual string version() const = 0;
+
+  // Creates a new copy of this CodeModule object, which the caller takes
+  // ownership of.  The new CodeModule may be of a different concrete class
+  // than the CodeModule being copied, but will behave identically to the
+  // copied CodeModule as far as the CodeModule interface is concerned.
+  virtual CodeModule* Copy() const = 0;
+
+  // Getter and setter for shrink_down_delta.  This is used when the address
+  // range for a module is shrunk down due to address range conflicts with
+  // other modules.  The base_address and size fields are not updated and they
+  // should always reflect the original values (reported in the minidump).
+  virtual uint64_t shrink_down_delta() const = 0;
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) = 0;
+
+  // Whether the module was unloaded from memory.
+  virtual bool is_unloaded() const = 0;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
diff --git a/src/google_breakpad/processor/code_modules.h b/src/google_breakpad/processor/code_modules.h
new file mode 100644
index 0000000..74f113c
--- /dev/null
+++ b/src/google_breakpad/processor/code_modules.h
@@ -0,0 +1,108 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// code_modules.h: Contains all of the CodeModule objects that were loaded
+// into a single process.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
+
+#include <stddef.h>
+
+#include <vector>
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "processor/linked_ptr.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+
+class CodeModules {
+ public:
+  virtual ~CodeModules() {}
+
+  // The number of contained CodeModule objects.
+  virtual unsigned int module_count() const = 0;
+
+  // Random access to modules.  Returns the module whose code is present
+  // at the address indicated by |address|.  If no module is present at this
+  // address, returns NULL.  Ownership of the returned CodeModule is retained
+  // by the CodeModules object; pointers returned by this method are valid for
+  // comparison with pointers returned by the other Get methods.
+  virtual const CodeModule* GetModuleForAddress(uint64_t address) const = 0;
+
+  // Returns the module corresponding to the main executable.  If there is
+  // no main executable, returns NULL.  Ownership of the returned CodeModule
+  // is retained by the CodeModules object; pointers returned by this method
+  // are valid for comparison with pointers returned by the other Get
+  // methods.
+  virtual const CodeModule* GetMainModule() const = 0;
+
+  // Sequential access to modules.  A sequence number of 0 corresponds to the
+  // module residing lowest in memory.  If the sequence number is out of
+  // range, returns NULL.  Ownership of the returned CodeModule is retained
+  // by the CodeModules object; pointers returned by this method are valid for
+  // comparison with pointers returned by the other Get methods.
+  virtual const CodeModule* GetModuleAtSequence(
+      unsigned int sequence) const = 0;
+
+  // Sequential access to modules.  This is similar to GetModuleAtSequence,
+  // except no ordering requirement is enforced.  A CodeModules implementation
+  // may return CodeModule objects from GetModuleAtIndex in any order it
+  // wishes, provided that the order remain the same throughout the life of
+  // the CodeModules object.  Typically, GetModuleAtIndex would be used by
+  // a caller to enumerate all CodeModule objects quickly when the enumeration
+  // does not require any ordering.  If the index argument is out of range,
+  // returns NULL.  Ownership of the returned CodeModule is retained by
+  // the CodeModules object; pointers returned by this method are valid for
+  // comparison with pointers returned by the other Get methods.
+  virtual const CodeModule* GetModuleAtIndex(unsigned int index) const = 0;
+
+  // Creates a new copy of this CodeModules object, which the caller takes
+  // ownership of.  The new object will also contain copies of the existing
+  // object's child CodeModule objects.  The new CodeModules object may be of
+  // a different concrete class than the object being copied, but will behave
+  // identically to the copied object as far as the CodeModules and CodeModule
+  // interfaces are concerned, except that the order that GetModuleAtIndex
+  // returns objects in may differ between a copy and the original CodeModules
+  // object.
+  virtual const CodeModules* Copy() const = 0;
+
+  // Returns a vector of all modules which address ranges needed to be shrunk
+  // down due to address range conflicts with other modules.
+  virtual std::vector<linked_ptr<const CodeModule> >
+  GetShrunkRangeModules() const = 0;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
diff --git a/src/google_breakpad/processor/dump_context.h b/src/google_breakpad/processor/dump_context.h
new file mode 100644
index 0000000..df80bf7
--- /dev/null
+++ b/src/google_breakpad/processor/dump_context.h
@@ -0,0 +1,116 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_context.h: A (mini/micro) dump CPU-specific context.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
+
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/dump_object.h"
+
+namespace google_breakpad {
+
+// DumpContext carries a CPU-specific MDRawContext structure, which contains CPU
+// context such as register states.
+class DumpContext : public DumpObject {
+ public:
+  virtual ~DumpContext();
+
+  // Returns an MD_CONTEXT_* value such as MD_CONTEXT_X86 or MD_CONTEXT_PPC
+  // identifying the CPU type that the context was collected from.  The
+  // returned value will identify the CPU only, and will have any other
+  // MD_CONTEXT_* bits masked out.  Returns 0 on failure.
+  uint32_t GetContextCPU() const;
+
+  // Return the raw value of |context_flags_|
+  uint32_t GetContextFlags() const;
+
+  // Returns raw CPU-specific context data for the named CPU type.  If the
+  // context data does not match the CPU type or does not exist, returns NULL.
+  const MDRawContextAMD64* GetContextAMD64() const;
+  const MDRawContextARM*   GetContextARM() const;
+  const MDRawContextARM64* GetContextARM64() const;
+  const MDRawContextMIPS*  GetContextMIPS() const;
+  const MDRawContextPPC*   GetContextPPC() const;
+  const MDRawContextPPC64* GetContextPPC64() const;
+  const MDRawContextSPARC* GetContextSPARC() const;
+  const MDRawContextX86*   GetContextX86() const;
+
+  // A convenience method to get the instruction pointer out of the
+  // MDRawContext, since it varies per-CPU architecture.
+  bool GetInstructionPointer(uint64_t* ip) const;
+
+  // Similar to the GetInstructionPointer method, this method gets the stack
+  // pointer for all CPU architectures.
+  bool GetStackPointer(uint64_t* sp) const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ protected:
+  DumpContext();
+
+  // Sets row CPU-specific context data for the names CPU type.
+  void SetContextFlags(uint32_t context_flags);
+  void SetContextX86(MDRawContextX86* x86);
+  void SetContextPPC(MDRawContextPPC* ppc);
+  void SetContextPPC64(MDRawContextPPC64* ppc64);
+  void SetContextAMD64(MDRawContextAMD64* amd64);
+  void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
+  void SetContextARM(MDRawContextARM* arm);
+  void SetContextARM64(MDRawContextARM64* arm64);
+  void SetContextMIPS(MDRawContextMIPS* ctx_mips);
+
+  // Free the CPU-specific context structure.
+  void FreeContext();
+
+ private:
+  // The CPU-specific context structure.
+  union {
+    MDRawContextBase*  base;
+    MDRawContextX86*   x86;
+    MDRawContextPPC*   ppc;
+    MDRawContextPPC64* ppc64;
+    MDRawContextAMD64* amd64;
+    // on Solaris SPARC, sparc is defined as a numeric constant,
+    // so variables can NOT be named as sparc
+    MDRawContextSPARC* ctx_sparc;
+    MDRawContextARM*   arm;
+    MDRawContextARM64* arm64;
+    MDRawContextMIPS*  ctx_mips;
+  } context_;
+
+  // Store this separately because of the weirdo AMD64 context
+  uint32_t context_flags_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
diff --git a/src/google_breakpad/processor/dump_object.h b/src/google_breakpad/processor/dump_object.h
new file mode 100644
index 0000000..112f687
--- /dev/null
+++ b/src/google_breakpad/processor/dump_object.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_object.h: A base class for all mini/micro dump object.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
+
+namespace google_breakpad {
+
+// DumpObject is the base of various mini/micro dump's objects.
+class DumpObject {
+ public:
+  DumpObject();
+
+  bool valid() const { return valid_; }
+
+ protected:
+  // DumpObjects are not valid when created.  When a subclass populates its own
+  // fields, it can set valid_ to true.  Accessors and mutators may wish to
+  // consider or alter the valid_ state as they interact with objects.
+  bool valid_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
diff --git a/src/google_breakpad/processor/exception_record.h b/src/google_breakpad/processor/exception_record.h
new file mode 100644
index 0000000..eac6c90
--- /dev/null
+++ b/src/google_breakpad/processor/exception_record.h
@@ -0,0 +1,124 @@
+// Copyright (c) 2019 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// exception_record.h: A snapshot of an exception record.
+//
+// Author: Ivan Penkov
+
+#ifndef THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
+#define THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
+
+#include <vector>
+
+namespace google_breakpad {
+
+// Additional argument that describes the exception.
+class ExceptionParameter {
+ public:
+  ExceptionParameter(uint64_t value, const string& description)
+      : value_(value), description_(description) {}
+  // Accessors. See the data declarations below.
+  uint64_t value() const { return value_; }
+  void set_value(uint64_t value) { value_ = value; }
+  const string& description() const { return description_; }
+  void set_description(const string& description) {
+    description_ = description;
+  }
+
+ private:
+  // Parameter value.
+  uint64_t value_;
+  // Human readable description/interpretation of the above value.
+  string description_;
+};
+
+// A snapshot of an exception record. Contains exception record details: code,
+// flags, address, parameters.
+class ExceptionRecord {
+ public:
+  // Accessors. See the data declarations below.
+  uint32_t code() const { return code_; }
+  const string& code_description() const { return code_description_; }
+  void set_code(uint32_t code, const string& description) {
+    code_ = code;
+    code_description_ = description;
+  }
+
+  uint32_t flags() const { return flags_; }
+  const string& flags_description() const { return flags_description_; }
+  void set_flags(uint32_t flags, const string& description) {
+    flags_ = flags;
+    flags_description_ = description;
+  }
+
+  uint64_t nested_exception_record_address() const {
+    return nested_exception_record_address_;
+  }
+  void set_nested_exception_record_address(
+      uint64_t nested_exception_record_address) {
+    nested_exception_record_address_ = nested_exception_record_address;
+  }
+
+  uint64_t address() const { return address_; }
+  void set_address(uint64_t address) { address_ = address; }
+
+  const std::vector<ExceptionParameter>* parameters() const {
+    return &parameters_;
+  }
+  void add_parameter(uint64_t value, const string& description) {
+    parameters_.push_back(ExceptionParameter(value, description));
+  }
+
+ private:
+  // Exception code.
+  uint32_t code_;
+  string code_description_;
+
+  // Exception flags.
+  uint32_t flags_;
+  string flags_description_;
+
+  // The address of an associated MDException structure. Exception records can
+  // be chained together to provide additional information when nested
+  // exceptions occur.
+  uint64_t nested_exception_record_address_;
+
+  // The memory address that caused the exception.  For data access errors,
+  // this will be the data address that caused the fault.  For code errors,
+  // this will be the address of the instruction that caused the fault.
+  uint64_t address_;
+
+  // An array of additional arguments that describe the exception.
+  std::vector<ExceptionParameter> parameters_;
+};
+
+}  // namespace google_breakpad
+
+
+#endif  // THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
diff --git a/src/google_breakpad/processor/exploitability.h b/src/google_breakpad/processor/exploitability.h
new file mode 100644
index 0000000..014413c
--- /dev/null
+++ b/src/google_breakpad/processor/exploitability.h
@@ -0,0 +1,82 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_engine.h: Generic exploitability engine.
+//
+// The Exploitability class is an abstract base class providing common
+// generic methods that apply to exploitability engines for specific platforms.
+// Specific implementations will extend this class by providing run
+// methods to fill in the exploitability_ enumeration of the ProcessState
+// for a crash.
+//
+// Author: Cris Neckar
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/process_state.h"
+
+namespace google_breakpad {
+
+class Exploitability {
+ public:
+  virtual ~Exploitability() {}
+
+  static Exploitability *ExploitabilityForPlatform(Minidump *dump,
+                                                   ProcessState *process_state);
+
+  // The boolean parameter signals whether the exploitability engine is
+  // enabled to call out to objdump for disassembly. This is disabled by
+  // default. It is used to check the identity of the instruction that
+  // caused the program to crash. This should not be enabled if there are
+  // portability concerns.
+  static Exploitability *ExploitabilityForPlatform(Minidump *dump,
+                                                   ProcessState *process_state,
+                                                   bool enable_objdump);
+
+  ExploitabilityRating CheckExploitability();
+  bool AddressIsAscii(uint64_t);
+
+ protected:
+  Exploitability(Minidump *dump,
+                 ProcessState *process_state);
+
+  Minidump *dump_;
+  ProcessState *process_state_;
+  SystemInfo *system_info_;
+
+ private:
+  virtual ExploitabilityRating CheckPlatformExploitability() = 0;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
diff --git a/src/google_breakpad/processor/fast_source_line_resolver.h b/src/google_breakpad/processor/fast_source_line_resolver.h
new file mode 100644
index 0000000..fdf9107
--- /dev/null
+++ b/src/google_breakpad/processor/fast_source_line_resolver.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// fast_source_line_resolver.h: FastSourceLineResolver is derived from
+// SourceLineResolverBase, and is a concrete implementation of
+// SourceLineResolverInterface.
+//
+// FastSourceLineResolver is a sibling class of BasicSourceLineResolver.  The
+// difference is FastSourceLineResolver loads a serialized memory chunk of data
+// which can be used directly a Module without parsing or copying of underlying
+// data.  Therefore loading a symbol in FastSourceLineResolver is much faster
+// and more memory-efficient than BasicSourceLineResolver.
+//
+// See "source_line_resolver_base.h" and
+// "google_breakpad/source_line_resolver_interface.h" for more reference.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
+
+#include <map>
+#include <string>
+
+#include "google_breakpad/processor/source_line_resolver_base.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class FastSourceLineResolver : public SourceLineResolverBase {
+ public:
+  FastSourceLineResolver();
+  virtual ~FastSourceLineResolver() { }
+
+  using SourceLineResolverBase::FillSourceLineInfo;
+  using SourceLineResolverBase::FindCFIFrameInfo;
+  using SourceLineResolverBase::FindWindowsFrameInfo;
+  using SourceLineResolverBase::HasModule;
+  using SourceLineResolverBase::IsModuleCorrupt;
+  using SourceLineResolverBase::LoadModule;
+  using SourceLineResolverBase::LoadModuleUsingMapBuffer;
+  using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
+  using SourceLineResolverBase::UnloadModule;
+
+ private:
+  // Friend declarations.
+  friend class ModuleComparer;
+  friend class ModuleSerializer;
+  friend class FastModuleFactory;
+
+  // Nested types that will derive from corresponding nested types defined in
+  // SourceLineResolverBase.
+  struct Line;
+  struct Function;
+  struct PublicSymbol;
+  class Module;
+
+  // Deserialize raw memory data to construct a WindowsFrameInfo object.
+  static WindowsFrameInfo CopyWFI(const char *raw_memory);
+
+  // FastSourceLineResolver requires the memory buffer stays alive during the
+  // lifetime of a corresponding module, therefore it needs to redefine this
+  // virtual method.
+  virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
+
+  // Disallow unwanted copy ctor and assignment operator
+  FastSourceLineResolver(const FastSourceLineResolver&);
+  void operator=(const FastSourceLineResolver&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
diff --git a/src/google_breakpad/processor/memory_region.h b/src/google_breakpad/processor/memory_region.h
new file mode 100644
index 0000000..30f88df
--- /dev/null
+++ b/src/google_breakpad/processor/memory_region.h
@@ -0,0 +1,79 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_region.h: Access to memory regions.
+//
+// A MemoryRegion provides virtual access to a range of memory.  It is an
+// abstraction allowing the actual source of memory to be independent of
+// methods which need to access a virtual memory space.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
+
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+namespace google_breakpad {
+
+
+class MemoryRegion {
+ public:
+  virtual ~MemoryRegion() {}
+
+  // The base address of this memory region.
+  virtual uint64_t GetBase() const = 0;
+
+  // The size of this memory region.
+  virtual uint32_t GetSize() const = 0;
+
+  // Access to data of various sizes within the memory region.  address
+  // is a pointer to read, and it must lie within the memory region as
+  // defined by its base address and size.  The location pointed to by
+  // value is set to the value at address.  Byte-swapping is performed
+  // if necessary so that the value is appropriate for the running
+  // program.  Returns true on success.  Fails and returns false if address
+  // is out of the region's bounds (after considering the width of value),
+  // or for other types of errors.
+  virtual bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const = 0;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const = 0;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const = 0;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const = 0;
+
+  // Print a human-readable representation of the object to stdout.
+  virtual void Print() const = 0;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
diff --git a/src/google_breakpad/processor/microdump.h b/src/google_breakpad/processor/microdump.h
new file mode 100644
index 0000000..02ebdcd
--- /dev/null
+++ b/src/google_breakpad/processor/microdump.h
@@ -0,0 +1,135 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// microdump.h: A microdump reader.  Microdump is a minified variant of a
+// minidump (see minidump.h for documentation) which contains the minimum
+// amount of information required to get a stack trace for the crashing thread.
+// The information contained in a microdump is:
+// - the crashing thread stack
+// - system information (os type / version)
+// - cpu context (state of the registers)
+// - list of mmaps
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
+
+#include <string>
+#include <vector>
+
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/basic_code_modules.h"
+
+namespace google_breakpad {
+
+// MicrodumpModuleList contains all of the loaded code modules for a process
+// in the form of MicrodumpModules.  It maintains a vector of these modules
+// and provides access to a code module corresponding to a specific address.
+class MicrodumpModules : public BasicCodeModules {
+ public:
+  // Takes over ownership of |module|.
+  void Add(const CodeModule* module);
+
+  // Enables/disables module address range shrink.
+  void SetEnableModuleShrink(bool is_enabled);
+};
+
+// MicrodumpContext carries a CPU-specific context.
+// See dump_context.h for documentation.
+class MicrodumpContext : public DumpContext {
+ public:
+  virtual void SetContextARM(MDRawContextARM* arm);
+  virtual void SetContextARM64(MDRawContextARM64* arm64);
+  virtual void SetContextX86(MDRawContextX86* x86);
+  virtual void SetContextMIPS(MDRawContextMIPS* mips32);
+  virtual void SetContextMIPS64(MDRawContextMIPS* mips64);
+};
+
+// This class provides access to microdump memory regions.
+// See memory_region.h for documentation.
+class MicrodumpMemoryRegion : public MemoryRegion {
+ public:
+  MicrodumpMemoryRegion();
+  virtual ~MicrodumpMemoryRegion() {}
+
+  // Set this region's address and contents. If we have placed an
+  // instance of this class in a test fixture class, individual tests
+  // can use this to provide the region's contents.
+  void Init(uint64_t base_address, const std::vector<uint8_t>& contents);
+
+  virtual uint64_t GetBase() const;
+  virtual uint32_t GetSize() const;
+
+  virtual bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
+  virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
+
+  // Print a human-readable representation of the object to stdout.
+  virtual void Print() const;
+
+ private:
+  // Fetch a little-endian value from ADDRESS in contents_ whose size
+  // is BYTES, and store it in *VALUE.  Returns true on success.
+  template<typename ValueType>
+  bool GetMemoryLittleEndian(uint64_t address, ValueType* value) const;
+
+  uint64_t base_address_;
+  std::vector<uint8_t> contents_;
+};
+
+// Microdump is the user's interface to a microdump file.  It provides access to
+// the microdump's context, memory regions and modules.
+class Microdump {
+ public:
+  explicit Microdump(const string& contents);
+  virtual ~Microdump() {}
+
+  DumpContext* GetContext() { return context_.get(); }
+  MicrodumpMemoryRegion* GetMemory() { return stack_region_.get(); }
+  MicrodumpModules* GetModules() { return modules_.get(); }
+  SystemInfo* GetSystemInfo() { return system_info_.get(); }
+
+  string GetCrashReason() { return crash_reason_; }
+  uint64_t GetCrashAddress() { return crash_address_; }
+ private:
+  scoped_ptr<MicrodumpContext> context_;
+  scoped_ptr<MicrodumpMemoryRegion> stack_region_;
+  scoped_ptr<MicrodumpModules> modules_;
+  scoped_ptr<SystemInfo> system_info_;
+  string crash_reason_;
+  uint64_t crash_address_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
diff --git a/src/google_breakpad/processor/microdump_processor.h b/src/google_breakpad/processor/microdump_processor.h
new file mode 100644
index 0000000..60d14a5
--- /dev/null
+++ b/src/google_breakpad/processor/microdump_processor.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The processor for microdump (a reduced dump containing only the state of the
+// crashing thread). See crbug.com/410294 for more info and design docs.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/process_result.h"
+
+namespace google_breakpad {
+
+class Microdump;
+class ProcessState;
+class StackFrameSymbolizer;
+
+class MicrodumpProcessor {
+ public:
+  // Initializes the MicrodumpProcessor with a stack frame symbolizer.
+  // Does not take ownership of frame_symbolizer, which must NOT be NULL.
+  explicit MicrodumpProcessor(StackFrameSymbolizer* frame_symbolizer);
+
+  virtual ~MicrodumpProcessor();
+
+  // Processes the microdump contents and fills process_state with the result.
+  google_breakpad::ProcessResult Process(Microdump* microdump,
+                                         ProcessState* process_state);
+ private:
+  StackFrameSymbolizer* frame_symbolizer_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
diff --git a/src/google_breakpad/processor/minidump.h b/src/google_breakpad/processor/minidump.h
new file mode 100644
index 0000000..1c40a82
--- /dev/null
+++ b/src/google_breakpad/processor/minidump.h
@@ -0,0 +1,1349 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump.h: A minidump reader.
+//
+// The basic structure of this module tracks the structure of the minidump
+// file itself.  At the top level, a minidump file is represented by a
+// Minidump object.  Like most other classes in this module, Minidump
+// provides a Read method that initializes the object with information from
+// the file.  Most of the classes in this file are wrappers around the
+// "raw" structures found in the minidump file itself, and defined in
+// minidump_format.h.  For example, each thread is represented by a
+// MinidumpThread object, whose parameters are specified in an MDRawThread
+// structure.  A properly byte-swapped MDRawThread can be obtained from a
+// MinidumpThread easily by calling its thread() method.
+//
+// Most of the module lazily reads only the portion of the minidump file
+// necessary to fulfill the user's request.  Calling Minidump::Read
+// only reads the minidump's directory.  The thread list is not read until
+// it is needed, and even once it's read, the memory regions for each
+// thread's stack aren't read until they're needed.  This strategy avoids
+// unnecessary file input, and allocating memory for data in which the user
+// has no interest.  Note that although memory allocations for a typical
+// minidump file are not particularly large, it is possible for legitimate
+// minidumps to be sizable.  A full-memory minidump, for example, contains
+// a snapshot of the entire mapped memory space.  Even a normal minidump,
+// with stack memory only, can be large if, for example, the dump was
+// generated in response to a crash that occurred due to an infinite-
+// recursion bug that caused the stack's limits to be exceeded.  Finally,
+// some users of this library will unfortunately find themselves in the
+// position of having to process potentially-hostile minidumps that might
+// attempt to cause problems by forcing the minidump processor to over-
+// allocate memory.
+//
+// Memory management in this module is based on a strict
+// you-don't-own-anything policy.  The only object owned by the user is
+// the top-level Minidump object, the creation and destruction of which
+// must be the user's own responsibility.  All other objects obtained
+// through interaction with this module are ultimately owned by the
+// Minidump object, and will be freed upon the Minidump object's destruction.
+// Because memory regions can potentially involve large allocations, a
+// FreeMemory method is provided by MinidumpMemoryRegion, allowing the user
+// to release data when it is no longer needed.  Use of this method is
+// optional but recommended.  If freed data is later required, it will
+// be read back in from the minidump file again.
+//
+// There is one exception to this memory management policy:
+// Minidump::ReadString will return a string object to the user, and the user
+// is responsible for its deletion.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
+
+#include <stdint.h>
+
+#ifndef _WIN32
+#include <unistd.h>
+#endif
+
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/basictypes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "google_breakpad/processor/dump_object.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/proc_maps_linux.h"
+
+
+namespace google_breakpad {
+
+
+using std::map;
+using std::vector;
+
+
+class Minidump;
+template<typename AddressType, typename EntryType> class RangeMap;
+
+
+// MinidumpObject is the base of all Minidump* objects except for Minidump
+// itself.
+class MinidumpObject : public DumpObject {
+ public:
+  virtual ~MinidumpObject() {}
+
+ protected:
+  explicit MinidumpObject(Minidump* minidump);
+
+  // Refers to the Minidump object that is the ultimate parent of this
+  // Some MinidumpObjects are owned by other MinidumpObjects, but at the
+  // root of the ownership tree is always a Minidump.  The Minidump object
+  // is kept here for access to its seeking and reading facilities, and
+  // for access to data about the minidump file itself, such as whether
+  // it should be byte-swapped.
+  Minidump* minidump_;
+};
+
+
+// This class exists primarily to provide a virtual destructor in a base
+// class common to all objects that might be stored in
+// Minidump::mStreamObjects.  Some object types will never be stored in
+// Minidump::mStreamObjects, but are represented as streams and adhere to the
+// same interface, and may be derived from this class.
+class MinidumpStream : public MinidumpObject {
+ public:
+  virtual ~MinidumpStream() {}
+
+ protected:
+  explicit MinidumpStream(Minidump* minidump);
+
+ private:
+  // Populate (and validate) the MinidumpStream.  minidump_ is expected
+  // to be positioned at the beginning of the stream, so that the next
+  // read from the minidump will be at the beginning of the stream.
+  // expected_size should be set to the stream's length as contained in
+  // the MDRawDirectory record or other identifying record.  A class
+  // that implements MinidumpStream can compare expected_size to a
+  // known size as an integrity check.
+  virtual bool Read(uint32_t expected_size) = 0;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpStream);
+};
+
+
+// MinidumpContext carries a CPU-specific MDRawContext structure, which
+// contains CPU context such as register states.  Each thread has its
+// own context, and the exception record, if present, also has its own
+// context.  Note that if the exception record is present, the context it
+// refers to is probably what the user wants to use for the exception
+// thread, instead of that thread's own context.  The exception thread's
+// context (as opposed to the exception record's context) will contain
+// context for the exception handler (which performs minidump generation),
+// and not the context that caused the exception (which is probably what the
+// user wants).
+class MinidumpContext : public DumpContext {
+ public:
+  virtual ~MinidumpContext();
+
+ protected:
+  explicit MinidumpContext(Minidump* minidump);
+
+ private:
+  friend class MinidumpThread;
+  friend class MinidumpException;
+
+  bool Read(uint32_t expected_size);
+
+  // If the minidump contains a SYSTEM_INFO_STREAM, makes sure that the
+  // system info stream gives an appropriate CPU type matching the context
+  // CPU type in context_cpu_type.  Returns false if the CPU type does not
+  // match.  Returns true if the CPU type matches or if the minidump does
+  // not contain a system info stream.
+  bool CheckAgainstSystemInfo(uint32_t context_cpu_type);
+
+  // Refers to the Minidump object that is the ultimate parent of this
+  // Some MinidumpObjects are owned by other MinidumpObjects, but at the
+  // root of the ownership tree is always a Minidump.  The Minidump object
+  // is kept here for access to its seeking and reading facilities, and
+  // for access to data about the minidump file itself, such as whether
+  // it should be byte-swapped.
+  Minidump* minidump_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpContext);
+};
+
+
+// MinidumpMemoryRegion does not wrap any MDRaw structure, and only contains
+// a reference to an MDMemoryDescriptor.  This object is intended to wrap
+// portions of a minidump file that contain memory dumps.  In normal
+// minidumps, each MinidumpThread owns a MinidumpMemoryRegion corresponding
+// to the thread's stack memory.  MinidumpMemoryList also gives access to
+// memory regions in its list as MinidumpMemoryRegions.  This class
+// adheres to MemoryRegion so that it may be used as a data provider to
+// the Stackwalker family of classes.
+class MinidumpMemoryRegion : public MinidumpObject,
+                             public MemoryRegion {
+ public:
+  virtual ~MinidumpMemoryRegion();
+
+  static void set_max_bytes(uint32_t max_bytes) { max_bytes_ = max_bytes; }
+  static uint32_t max_bytes() { return max_bytes_; }
+
+  // Returns a pointer to the base of the memory region.  Returns the
+  // cached value if available, otherwise, reads the minidump file and
+  // caches the memory region.
+  const uint8_t* GetMemory() const;
+
+  // The address of the base of the memory region.
+  uint64_t GetBase() const;
+
+  // The size, in bytes, of the memory region.
+  uint32_t GetSize() const;
+
+  // Frees the cached memory region, if cached.
+  void FreeMemory();
+
+  // Obtains the value of memory at the pointer specified by address.
+  bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const;
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print() const;
+  void SetPrintMode(bool hexdump, unsigned int width);
+
+ protected:
+  explicit MinidumpMemoryRegion(Minidump* minidump);
+
+ private:
+  friend class MinidumpThread;
+  friend class MinidumpMemoryList;
+
+  // Identify the base address and size of the memory region, and the
+  // location it may be found in the minidump file.
+  void SetDescriptor(MDMemoryDescriptor* descriptor);
+
+  // Implementation for GetMemoryAtAddress
+  template<typename T> bool GetMemoryAtAddressInternal(uint64_t address,
+                                                       T*        value) const;
+
+  // Knobs for controlling display of memory printing.
+  bool hexdump_;
+  unsigned int hexdump_width_;
+
+  // The largest memory region that will be read from a minidump.
+  static uint32_t max_bytes_;
+
+  // Base address and size of the memory region, and its position in the
+  // minidump file.
+  MDMemoryDescriptor* descriptor_;
+
+  // Cached memory.
+  mutable vector<uint8_t>* memory_;
+};
+
+
+// MinidumpThread contains information about a thread of execution,
+// including a snapshot of the thread's stack and CPU context.  For
+// the thread that caused an exception, the context carried by
+// MinidumpException is probably desired instead of the CPU context
+// provided here.
+// Note that a MinidumpThread may be valid() even if it does not
+// contain a memory region or context.
+class MinidumpThread : public MinidumpObject {
+ public:
+  virtual ~MinidumpThread();
+
+  const MDRawThread* thread() const { return valid_ ? &thread_ : NULL; }
+  // GetMemory may return NULL even if the MinidumpThread is valid,
+  // if the thread memory cannot be read.
+  virtual MinidumpMemoryRegion* GetMemory();
+  // GetContext may return NULL even if the MinidumpThread is valid.
+  virtual MinidumpContext* GetContext();
+
+  // The thread ID is used to determine if a thread is the exception thread,
+  // so a special getter is provided to retrieve this data from the
+  // MDRawThread structure.  Returns false if the thread ID cannot be
+  // determined.
+  virtual bool GetThreadID(uint32_t* thread_id) const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+  // Returns the start address of the thread stack memory region.  Returns 0 if
+  // MinidumpThread is invalid.  Note that this method can be called even when
+  // the thread memory cannot be read and GetMemory returns NULL.
+  virtual uint64_t GetStartOfStackMemoryRange() const;
+
+ protected:
+  explicit MinidumpThread(Minidump* minidump);
+
+ private:
+  // These objects are managed by MinidumpThreadList.
+  friend class MinidumpThreadList;
+
+  // This works like MinidumpStream::Read, but is driven by
+  // MinidumpThreadList.  No size checking is done, because
+  // MinidumpThreadList handles that directly.
+  bool Read();
+
+  MDRawThread           thread_;
+  MinidumpMemoryRegion* memory_;
+  MinidumpContext*      context_;
+};
+
+
+// MinidumpThreadList contains all of the threads (as MinidumpThreads) in
+// a process.
+class MinidumpThreadList : public MinidumpStream {
+ public:
+  virtual ~MinidumpThreadList();
+
+  static void set_max_threads(uint32_t max_threads) {
+    max_threads_ = max_threads;
+  }
+  static uint32_t max_threads() { return max_threads_; }
+
+  virtual unsigned int thread_count() const {
+    return valid_ ? thread_count_ : 0;
+  }
+
+  // Sequential access to threads.
+  virtual MinidumpThread* GetThreadAtIndex(unsigned int index) const;
+
+  // Random access to threads.
+  MinidumpThread* GetThreadByID(uint32_t thread_id);
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ protected:
+  explicit MinidumpThreadList(Minidump* aMinidump);
+
+ private:
+  friend class Minidump;
+
+  typedef map<uint32_t, MinidumpThread*> IDToThreadMap;
+  typedef vector<MinidumpThread> MinidumpThreads;
+
+  static const uint32_t kStreamType = MD_THREAD_LIST_STREAM;
+
+  bool Read(uint32_t aExpectedSize) override;
+
+  // The largest number of threads that will be read from a minidump.  The
+  // default is 256.
+  static uint32_t max_threads_;
+
+  // Access to threads using the thread ID as the key.
+  IDToThreadMap    id_to_thread_map_;
+
+  // The list of threads.
+  MinidumpThreads* threads_;
+  uint32_t        thread_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpThreadList);
+};
+
+
+// MinidumpModule wraps MDRawModule, which contains information about loaded
+// code modules.  Access is provided to various data referenced indirectly
+// by MDRawModule, such as the module's name and a specification for where
+// to locate debugging information for the module.
+class MinidumpModule : public MinidumpObject,
+                       public CodeModule {
+ public:
+  virtual ~MinidumpModule();
+
+  static void set_max_cv_bytes(uint32_t max_cv_bytes) {
+    max_cv_bytes_ = max_cv_bytes;
+  }
+  static uint32_t max_cv_bytes() { return max_cv_bytes_; }
+
+  static void set_max_misc_bytes(uint32_t max_misc_bytes) {
+    max_misc_bytes_ = max_misc_bytes;
+  }
+  static uint32_t max_misc_bytes() { return max_misc_bytes_; }
+
+  const MDRawModule* module() const { return valid_ ? &module_ : NULL; }
+
+  // CodeModule implementation
+  virtual uint64_t base_address() const {
+    return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1);
+  }
+  virtual uint64_t size() const { return valid_ ? module_.size_of_image : 0; }
+  virtual string code_file() const;
+  virtual string code_identifier() const;
+  virtual string debug_file() const;
+  virtual string debug_identifier() const;
+  virtual string version() const;
+  virtual CodeModule* Copy() const;
+  virtual bool is_unloaded() const { return false; }
+
+  // Getter and setter for shrink_down_delta.  This is used when the address
+  // range for a module is shrunk down due to address range conflicts with
+  // other modules.  The base_address and size fields are not updated and they
+  // should always reflect the original values (reported in the minidump).
+  virtual uint64_t shrink_down_delta() const;
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta);
+
+  // The CodeView record, which contains information to locate the module's
+  // debugging information (pdb).  This is returned as uint8_t* because
+  // the data can be of types MDCVInfoPDB20* or MDCVInfoPDB70*, or it may be
+  // of a type unknown to Breakpad, in which case the raw data will still be
+  // returned but no byte-swapping will have been performed.  Check the
+  // record's signature in the first four bytes to differentiate between
+  // the various types.  Current toolchains generate modules which carry
+  // MDCVInfoPDB70 by default.  Returns a pointer to the CodeView record on
+  // success, and NULL on failure.  On success, the optional |size| argument
+  // is set to the size of the CodeView record.
+  const uint8_t* GetCVRecord(uint32_t* size);
+
+  // The miscellaneous debug record, which is obsolete.  Current toolchains
+  // do not generate this type of debugging information (dbg), and this
+  // field is not expected to be present.  Returns a pointer to the debugging
+  // record on success, and NULL on failure.  On success, the optional |size|
+  // argument is set to the size of the debugging record.
+  const MDImageDebugMisc* GetMiscRecord(uint32_t* size);
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  // These objects are managed by MinidumpModuleList.
+  friend class MinidumpModuleList;
+
+  explicit MinidumpModule(Minidump* minidump);
+
+  // This works like MinidumpStream::Read, but is driven by
+  // MinidumpModuleList.  No size checking is done, because
+  // MinidumpModuleList handles that directly.
+  bool Read();
+
+  // Reads indirectly-referenced data, including the module name, CodeView
+  // record, and miscellaneous debugging record.  This is necessary to allow
+  // MinidumpModuleList to fully construct MinidumpModule objects without
+  // requiring seeks to read a contiguous set of MinidumpModule objects.
+  // All auxiliary data should be available when Read is called, in order to
+  // allow the CodeModule getters to be const methods.
+  bool ReadAuxiliaryData();
+
+  // The largest number of bytes that will be read from a minidump for a
+  // CodeView record or miscellaneous debugging record, respectively.  The
+  // default for each is 1024.
+  static uint32_t max_cv_bytes_;
+  static uint32_t max_misc_bytes_;
+
+  // True after a successful Read.  This is different from valid_, which is
+  // not set true until ReadAuxiliaryData also completes successfully.
+  // module_valid_ is only used by ReadAuxiliaryData and the functions it
+  // calls to determine whether the object is ready for auxiliary data to
+  // be read.
+  bool              module_valid_;
+
+  // True if debug info was read from the module.  Certain modules
+  // may contain debug records in formats we don't support,
+  // so we can just set this to false to ignore them.
+  bool              has_debug_info_;
+
+  MDRawModule       module_;
+
+  // Cached module name.
+  const string*     name_;
+
+  // Cached CodeView record - this is MDCVInfoPDB20 or (likely)
+  // MDCVInfoPDB70, or possibly something else entirely.  Stored as a uint8_t
+  // because the structure contains a variable-sized string and its exact
+  // size cannot be known until it is processed.
+  vector<uint8_t>* cv_record_;
+
+  // If cv_record_ is present, cv_record_signature_ contains a copy of the
+  // CodeView record's first four bytes, for ease of determinining the
+  // type of structure that cv_record_ contains.
+  uint32_t cv_record_signature_;
+
+  // Cached MDImageDebugMisc (usually not present), stored as uint8_t
+  // because the structure contains a variable-sized string and its exact
+  // size cannot be known until it is processed.
+  vector<uint8_t>* misc_record_;
+};
+
+
+// MinidumpModuleList contains all of the loaded code modules for a process
+// in the form of MinidumpModules.  It maintains a map of these modules
+// so that it may easily provide a code module corresponding to a specific
+// address.
+class MinidumpModuleList : public MinidumpStream,
+                           public CodeModules {
+ public:
+  virtual ~MinidumpModuleList();
+
+  static void set_max_modules(uint32_t max_modules) {
+    max_modules_ = max_modules;
+  }
+  static uint32_t max_modules() { return max_modules_; }
+
+  // CodeModules implementation.
+  virtual unsigned int module_count() const {
+    return valid_ ? module_count_ : 0;
+  }
+  virtual const MinidumpModule* GetModuleForAddress(uint64_t address) const;
+  virtual const MinidumpModule* GetMainModule() const;
+  virtual const MinidumpModule* GetModuleAtSequence(
+      unsigned int sequence) const;
+  virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const;
+  virtual const CodeModules* Copy() const;
+
+  // Returns a vector of all modules which address ranges needed to be shrunk
+  // down due to address range conflicts with other modules.
+  virtual vector<linked_ptr<const CodeModule> > GetShrunkRangeModules() const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ protected:
+  explicit MinidumpModuleList(Minidump* minidump);
+
+ private:
+  friend class Minidump;
+
+  typedef vector<MinidumpModule> MinidumpModules;
+
+  static const uint32_t kStreamType = MD_MODULE_LIST_STREAM;
+
+  bool Read(uint32_t expected_size);
+
+  bool StoreRange(const MinidumpModule& module,
+                  uint64_t base_address,
+                  uint32_t module_index,
+                  uint32_t module_count,
+                  bool is_android);
+
+  // The largest number of modules that will be read from a minidump.  The
+  // default is 1024.
+  static uint32_t max_modules_;
+
+  // Access to modules using addresses as the key.
+  RangeMap<uint64_t, unsigned int>* range_map_;
+
+  MinidumpModules* modules_;
+  uint32_t module_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleList);
+};
+
+
+// MinidumpMemoryList corresponds to a minidump's MEMORY_LIST_STREAM stream,
+// which references the snapshots of all of the memory regions contained
+// within the minidump.  For a normal minidump, this includes stack memory
+// (also referenced by each MinidumpThread, in fact, the MDMemoryDescriptors
+// here and in MDRawThread both point to exactly the same data in a
+// minidump file, conserving space), as well as a 256-byte snapshot of memory
+// surrounding the instruction pointer in the case of an exception.  Other
+// types of minidumps may contain significantly more memory regions.  Full-
+// memory minidumps contain all of a process' mapped memory.
+class MinidumpMemoryList : public MinidumpStream {
+ public:
+  virtual ~MinidumpMemoryList();
+
+  static void set_max_regions(uint32_t max_regions) {
+    max_regions_ = max_regions;
+  }
+  static uint32_t max_regions() { return max_regions_; }
+
+  unsigned int region_count() const { return valid_ ? region_count_ : 0; }
+
+  // Sequential access to memory regions.
+  MinidumpMemoryRegion* GetMemoryRegionAtIndex(unsigned int index);
+
+  // Random access to memory regions.  Returns the region encompassing
+  // the address identified by address.
+  virtual MinidumpMemoryRegion* GetMemoryRegionForAddress(uint64_t address);
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+  friend class MockMinidumpMemoryList;
+
+  typedef vector<MDMemoryDescriptor>   MemoryDescriptors;
+  typedef vector<MinidumpMemoryRegion> MemoryRegions;
+
+  static const uint32_t kStreamType = MD_MEMORY_LIST_STREAM;
+
+  explicit MinidumpMemoryList(Minidump* minidump);
+
+  bool Read(uint32_t expected_size) override;
+
+  // The largest number of memory regions that will be read from a minidump.
+  // The default is 256.
+  static uint32_t max_regions_;
+
+  // Access to memory regions using addresses as the key.
+  RangeMap<uint64_t, unsigned int>* range_map_;
+
+  // The list of descriptors.  This is maintained separately from the list
+  // of regions, because MemoryRegion doesn't own its MemoryDescriptor, it
+  // maintains a pointer to it.  descriptors_ provides the storage for this
+  // purpose.
+  MemoryDescriptors* descriptors_;
+
+  // The list of regions.
+  MemoryRegions* regions_;
+  uint32_t region_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryList);
+};
+
+
+// MinidumpException wraps MDRawExceptionStream, which contains information
+// about the exception that caused the minidump to be generated, if the
+// minidump was generated in an exception handler called as a result of an
+// exception.  It also provides access to a MinidumpContext object, which
+// contains the CPU context for the exception thread at the time the exception
+// occurred.
+class MinidumpException : public MinidumpStream {
+ public:
+  virtual ~MinidumpException();
+
+  const MDRawExceptionStream* exception() const {
+    return valid_ ? &exception_ : NULL;
+  }
+
+  // The thread ID is used to determine if a thread is the exception thread,
+  // so a special getter is provided to retrieve this data from the
+  // MDRawExceptionStream structure.  Returns false if the thread ID cannot
+  // be determined.
+  bool GetThreadID(uint32_t* thread_id) const;
+
+  MinidumpContext* GetContext();
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+
+  static const uint32_t kStreamType = MD_EXCEPTION_STREAM;
+
+  explicit MinidumpException(Minidump* minidump);
+
+  bool Read(uint32_t expected_size) override;
+
+  MDRawExceptionStream exception_;
+  MinidumpContext*     context_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpException);
+};
+
+// MinidumpAssertion wraps MDRawAssertionInfo, which contains information
+// about an assertion that caused the minidump to be generated.
+class MinidumpAssertion : public MinidumpStream {
+ public:
+  virtual ~MinidumpAssertion();
+
+  const MDRawAssertionInfo* assertion() const {
+    return valid_ ? &assertion_ : NULL;
+  }
+
+  string expression() const {
+    return valid_ ? expression_ : "";
+  }
+
+  string function() const {
+    return valid_ ? function_ : "";
+  }
+
+  string file() const {
+    return valid_ ? file_ : "";
+  }
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+
+  static const uint32_t kStreamType = MD_ASSERTION_INFO_STREAM;
+
+  explicit MinidumpAssertion(Minidump* minidump);
+
+  bool Read(uint32_t expected_size) override;
+
+  MDRawAssertionInfo assertion_;
+  string expression_;
+  string function_;
+  string file_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpAssertion);
+};
+
+
+// MinidumpSystemInfo wraps MDRawSystemInfo and provides information about
+// the system on which the minidump was generated.  See also MinidumpMiscInfo.
+class MinidumpSystemInfo : public MinidumpStream {
+ public:
+  virtual ~MinidumpSystemInfo();
+
+  const MDRawSystemInfo* system_info() const {
+    return valid_ ? &system_info_ : NULL;
+  }
+
+  // GetOS and GetCPU return textual representations of the operating system
+  // and CPU that produced the minidump.  Unlike most other Minidump* methods,
+  // they return string objects, not weak pointers.  Defined values for
+  // GetOS() are "mac", "windows", and "linux".  Defined values for GetCPU
+  // are "x86" and "ppc".  These methods return an empty string when their
+  // values are unknown.
+  string GetOS();
+  string GetCPU();
+
+  // I don't know what CSD stands for, but this field is documented as
+  // returning a textual representation of the OS service pack.  On other
+  // platforms, this provides additional information about an OS version
+  // level beyond major.minor.micro.  Returns NULL if unknown.
+  const string* GetCSDVersion();
+
+  // If a CPU vendor string can be determined, returns a pointer to it,
+  // otherwise, returns NULL.  CPU vendor strings can be determined from
+  // x86 CPUs with CPUID 0.
+  const string* GetCPUVendor();
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ protected:
+  explicit MinidumpSystemInfo(Minidump* minidump);
+  MDRawSystemInfo system_info_;
+
+  // Textual representation of the OS service pack, for minidumps produced
+  // by MiniDumpWriteDump on Windows.
+  const string* csd_version_;
+
+ private:
+  friend class Minidump;
+
+  static const uint32_t kStreamType = MD_SYSTEM_INFO_STREAM;
+
+  bool Read(uint32_t expected_size) override;
+
+  // A string identifying the CPU vendor, if known.
+  const string* cpu_vendor_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpSystemInfo);
+};
+
+
+// MinidumpUnloadedModule wraps MDRawUnloadedModule
+class MinidumpUnloadedModule : public MinidumpObject,
+                               public CodeModule {
+ public:
+  ~MinidumpUnloadedModule() override;
+
+  const MDRawUnloadedModule* module() const {
+    return valid_ ? &unloaded_module_ : NULL;
+  }
+
+  // CodeModule implementation
+  uint64_t base_address() const override {
+    return valid_ ? unloaded_module_.base_of_image : 0;
+  }
+  uint64_t size() const override {
+    return valid_ ? unloaded_module_.size_of_image : 0;
+  }
+  string code_file() const override;
+  string code_identifier() const override;
+  string debug_file() const override;
+  string debug_identifier() const override;
+  string version() const override;
+  CodeModule* Copy() const override;
+  bool is_unloaded() const override { return true; }
+  uint64_t shrink_down_delta() const override;
+  void SetShrinkDownDelta(uint64_t shrink_down_delta) override;
+
+ protected:
+  explicit MinidumpUnloadedModule(Minidump* minidump);
+
+ private:
+  // These objects are managed by MinidumpUnloadedModuleList
+  friend class MinidumpUnloadedModuleList;
+
+  // This works like MinidumpStream::Read, but is driven by
+  // MinidumpUnloadedModuleList.
+  bool Read(uint32_t expected_size);
+
+  // Reads the module name. This is done separately from Read to
+  // allow contiguous reading of code modules by MinidumpUnloadedModuleList.
+  bool ReadAuxiliaryData();
+
+  // True after a successful Read. This is different from valid_, which
+  // is not set true until ReadAuxiliaryData also completes successfully.
+  // module_valid_ is only used by ReadAuxiliaryData and the functions it
+  // calls to determine whether the object is ready for auxiliary data to
+  // be read.
+  bool module_valid_;
+
+  MDRawUnloadedModule unloaded_module_;
+
+  // Cached module name
+  const string* name_;
+};
+
+
+// MinidumpUnloadedModuleList contains all the unloaded code modules for a
+// process in the form of MinidumpUnloadedModules. It maintains a map of
+// these modules so that it may easily provide a code module corresponding
+// to a specific address. If multiple modules in the list have identical
+// ranges, only the first module encountered is recorded in the range map.
+class MinidumpUnloadedModuleList : public MinidumpStream,
+                                   public CodeModules {
+ public:
+  ~MinidumpUnloadedModuleList() override;
+
+  static void set_max_modules(uint32_t max_modules) {
+    max_modules_ = max_modules;
+  }
+  static uint32_t max_modules() { return max_modules_; }
+
+  // CodeModules implementation.
+  unsigned int module_count() const override {
+    return valid_ ? module_count_ : 0;
+  }
+  const MinidumpUnloadedModule*
+      GetModuleForAddress(uint64_t address) const override;
+  const MinidumpUnloadedModule* GetMainModule() const override;
+  const MinidumpUnloadedModule*
+      GetModuleAtSequence(unsigned int sequence) const override;
+  const MinidumpUnloadedModule*
+      GetModuleAtIndex(unsigned int index) const override;
+  const CodeModules* Copy() const override;
+  vector<linked_ptr<const CodeModule>> GetShrunkRangeModules() const override;
+
+ protected:
+  explicit MinidumpUnloadedModuleList(Minidump* minidump_);
+
+ private:
+  friend class Minidump;
+
+  typedef vector<MinidumpUnloadedModule> MinidumpUnloadedModules;
+
+  static const uint32_t kStreamType = MD_UNLOADED_MODULE_LIST_STREAM;
+
+  bool Read(uint32_t expected_size_) override;
+
+  // The largest number of modules that will be read from a minidump.  The
+  // default is 1024.
+  static uint32_t max_modules_;
+
+  // Access to module indices using addresses as the key.
+  RangeMap<uint64_t, unsigned int>* range_map_;
+
+  MinidumpUnloadedModules* unloaded_modules_;
+  uint32_t module_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpUnloadedModuleList);
+};
+
+
+// MinidumpMiscInfo wraps MDRawMiscInfo and provides information about
+// the process that generated the minidump, and optionally additional system
+// information.  See also MinidumpSystemInfo.
+class MinidumpMiscInfo : public MinidumpStream {
+ public:
+  const MDRawMiscInfo* misc_info() const {
+    return valid_ ? &misc_info_ : NULL;
+  }
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+  friend class TestMinidumpMiscInfo;
+
+  static const uint32_t kStreamType = MD_MISC_INFO_STREAM;
+
+  explicit MinidumpMiscInfo(Minidump* minidump_);
+
+  bool Read(uint32_t expected_size_) override;
+
+  MDRawMiscInfo misc_info_;
+
+  // Populated by Read.  Contains the converted strings from the corresponding
+  // UTF-16 fields in misc_info_
+  string standard_name_;
+  string daylight_name_;
+  string build_string_;
+  string dbg_bld_str_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpMiscInfo);
+};
+
+
+// MinidumpBreakpadInfo wraps MDRawBreakpadInfo, which is an optional stream in
+// a minidump that provides additional information about the process state
+// at the time the minidump was generated.
+class MinidumpBreakpadInfo : public MinidumpStream {
+ public:
+  const MDRawBreakpadInfo* breakpad_info() const {
+    return valid_ ? &breakpad_info_ : NULL;
+  }
+
+  // These thread IDs are used to determine if threads deserve special
+  // treatment, so special getters are provided to retrieve this data from
+  // the MDRawBreakpadInfo structure.  The getters return false if the thread
+  // IDs cannot be determined.
+  bool GetDumpThreadID(uint32_t* thread_id) const;
+  bool GetRequestingThreadID(uint32_t* thread_id) const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+
+  static const uint32_t kStreamType = MD_BREAKPAD_INFO_STREAM;
+
+  explicit MinidumpBreakpadInfo(Minidump* minidump_);
+
+  bool Read(uint32_t expected_size_) override;
+
+  MDRawBreakpadInfo breakpad_info_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpBreakpadInfo);
+};
+
+// MinidumpMemoryInfo wraps MDRawMemoryInfo, which provides information
+// about mapped memory regions in a process, including their ranges
+// and protection.
+class MinidumpMemoryInfo : public MinidumpObject {
+ public:
+  const MDRawMemoryInfo* info() const { return valid_ ? &memory_info_ : NULL; }
+
+  // The address of the base of the memory region.
+  uint64_t GetBase() const { return valid_ ? memory_info_.base_address : 0; }
+
+  // The size, in bytes, of the memory region.
+  uint64_t GetSize() const { return valid_ ? memory_info_.region_size : 0; }
+
+  // Return true if the memory protection allows execution.
+  bool IsExecutable() const;
+
+  // Return true if the memory protection allows writing.
+  bool IsWritable() const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  // These objects are managed by MinidumpMemoryInfoList.
+  friend class MinidumpMemoryInfoList;
+
+  explicit MinidumpMemoryInfo(Minidump* minidump_);
+
+  // This works like MinidumpStream::Read, but is driven by
+  // MinidumpMemoryInfoList.  No size checking is done, because
+  // MinidumpMemoryInfoList handles that directly.
+  bool Read();
+
+  MDRawMemoryInfo memory_info_;
+};
+
+// MinidumpMemoryInfoList contains a list of information about
+// mapped memory regions for a process in the form of MDRawMemoryInfo.
+// It maintains a map of these structures so that it may easily provide
+// info corresponding to a specific address.
+class MinidumpMemoryInfoList : public MinidumpStream {
+ public:
+  virtual ~MinidumpMemoryInfoList();
+
+  unsigned int info_count() const { return valid_ ? info_count_ : 0; }
+
+  const MinidumpMemoryInfo* GetMemoryInfoForAddress(uint64_t address) const;
+  const MinidumpMemoryInfo* GetMemoryInfoAtIndex(unsigned int index) const;
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+
+  typedef vector<MinidumpMemoryInfo> MinidumpMemoryInfos;
+
+  static const uint32_t kStreamType = MD_MEMORY_INFO_LIST_STREAM;
+
+  explicit MinidumpMemoryInfoList(Minidump* minidump_);
+
+  bool Read(uint32_t expected_size) override;
+
+  // Access to memory info using addresses as the key.
+  RangeMap<uint64_t, unsigned int>* range_map_;
+
+  MinidumpMemoryInfos* infos_;
+  uint32_t info_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryInfoList);
+};
+
+// MinidumpLinuxMaps wraps information about a single mapped memory region
+// from /proc/self/maps.
+class MinidumpLinuxMaps : public MinidumpObject {
+ public:
+  // The memory address of the base of the mapped region.
+  uint64_t GetBase() const { return valid_ ? region_.start : 0; }
+  // The size of the mapped region.
+  uint64_t GetSize() const { return valid_ ? region_.end - region_.start : 0; }
+
+  // The permissions of the mapped region.
+  bool IsReadable() const {
+    return valid_ ? region_.permissions & MappedMemoryRegion::READ : false;
+  }
+  bool IsWriteable() const {
+    return valid_ ? region_.permissions & MappedMemoryRegion::WRITE : false;
+  }
+  bool IsExecutable() const {
+    return valid_ ? region_.permissions & MappedMemoryRegion::EXECUTE : false;
+  }
+  bool IsPrivate() const {
+    return valid_ ? region_.permissions & MappedMemoryRegion::PRIVATE : false;
+  }
+
+  // The offset of the mapped region.
+  uint64_t GetOffset() const { return valid_ ? region_.offset : 0; }
+
+  // The major device number.
+  uint8_t GetMajorDevice() const { return valid_ ? region_.major_device : 0; }
+  // The minor device number.
+  uint8_t GetMinorDevice() const { return valid_ ? region_.minor_device : 0; }
+
+  // The inode of the mapped region.
+  uint64_t GetInode() const { return valid_ ? region_.inode : 0; }
+
+  // The pathname of the mapped region.
+  const string GetPathname() const { return valid_ ? region_.path : ""; }
+
+  // Print the contents of this mapping.
+  void Print() const;
+
+ private:
+  // These objects are managed by MinidumpLinuxMapsList.
+  friend class MinidumpLinuxMapsList;
+
+  // This caller owns the pointer.
+  explicit MinidumpLinuxMaps(Minidump* minidump);
+
+  // The memory region struct that this class wraps.
+  MappedMemoryRegion region_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMaps);
+};
+
+// MinidumpLinuxMapsList corresponds to the Linux-exclusive MD_LINUX_MAPS
+// stream, which contains the contents of /prod/self/maps, which contains
+// the mapped memory regions and their access permissions.
+class MinidumpLinuxMapsList : public MinidumpStream {
+ public:
+  virtual ~MinidumpLinuxMapsList();
+
+  // Get number of mappings.
+  unsigned int get_maps_count() const { return valid_ ? maps_count_ : 0; }
+
+  // Get mapping at the given memory address. The caller owns the pointer.
+  const MinidumpLinuxMaps* GetLinuxMapsForAddress(uint64_t address) const;
+  // Get mapping at the given index. The caller owns the pointer.
+  const MinidumpLinuxMaps* GetLinuxMapsAtIndex(unsigned int index) const;
+
+  // Print the contents of /proc/self/maps to stdout.
+  void Print() const;
+
+ private:
+  friend class Minidump;
+
+  typedef vector<MinidumpLinuxMaps*> MinidumpLinuxMappings;
+
+  static const uint32_t kStreamType = MD_LINUX_MAPS;
+
+  // The caller owns the pointer.
+  explicit MinidumpLinuxMapsList(Minidump* minidump);
+
+  // Read and load the contents of the process mapping data.
+  // The stream should have data in the form of /proc/self/maps.
+  // This method returns whether the stream was read successfully.
+  bool Read(uint32_t expected_size) override;
+
+  // The list of individual mappings.
+  MinidumpLinuxMappings* maps_;
+  // The number of mappings.
+  uint32_t maps_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMapsList);
+};
+
+// MinidumpCrashpadInfo wraps MDRawCrashpadInfo, which is an optional stream in
+// a minidump that provides additional information about the process state
+// at the time the minidump was generated.
+class MinidumpCrashpadInfo : public MinidumpStream {
+ public:
+  const MDRawCrashpadInfo* crashpad_info() const {
+    return valid_ ? &crashpad_info_ : NULL;
+  }
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+ private:
+  friend class Minidump;
+
+  static const uint32_t kStreamType = MD_CRASHPAD_INFO_STREAM;
+
+  explicit MinidumpCrashpadInfo(Minidump* minidump_);
+
+  bool Read(uint32_t expected_size);
+
+  MDRawCrashpadInfo crashpad_info_;
+  std::vector<uint32_t> module_crashpad_info_links_;
+  std::vector<MDRawModuleCrashpadInfo> module_crashpad_info_;
+  std::vector<std::vector<std::string>> module_crashpad_info_list_annotations_;
+  std::vector<std::map<std::string, std::string>>
+      module_crashpad_info_simple_annotations_;
+  std::map<std::string, std::string> simple_annotations_;
+};
+
+
+// Minidump is the user's interface to a minidump file.  It wraps MDRawHeader
+// and provides access to the minidump's top-level stream directory.
+class Minidump {
+ public:
+  // path is the pathname of a file containing the minidump.
+  explicit Minidump(const string& path,
+                    bool hexdump=false,
+                    unsigned int hexdump_width=16);
+  // input is an istream wrapping minidump data. Minidump holds a
+  // weak pointer to input, and the caller must ensure that the stream
+  // is valid as long as the Minidump object is.
+  explicit Minidump(std::istream& input);
+
+  virtual ~Minidump();
+
+  // path may be empty if the minidump was not opened from a file
+  virtual string path() const {
+    return path_;
+  }
+  static void set_max_streams(uint32_t max_streams) {
+    max_streams_ = max_streams;
+  }
+  static uint32_t max_streams() { return max_streams_; }
+
+  static void set_max_string_length(uint32_t max_string_length) {
+    max_string_length_ = max_string_length;
+  }
+  static uint32_t max_string_length() { return max_string_length_; }
+
+  virtual const MDRawHeader* header() const { return valid_ ? &header_ : NULL; }
+
+  // Reads the CPU information from the system info stream and generates the
+  // appropriate CPU flags.  The returned context_cpu_flags are the same as
+  // if the CPU type bits were set in the context_flags of a context record.
+  // On success, context_cpu_flags will have the flags that identify the CPU.
+  // If a system info stream is missing, context_cpu_flags will be 0.
+  // Returns true if the current position in the stream was not changed.
+  // Returns false when the current location in the stream was changed and the
+  // attempt to restore the original position failed.
+  bool GetContextCPUFlagsFromSystemInfo(uint32_t* context_cpu_flags);
+
+  // Reads the minidump file's header and top-level stream directory.
+  // The minidump is expected to be positioned at the beginning of the
+  // header.  Read() sets up the stream list and map, and validates the
+  // Minidump object.
+  virtual bool Read();
+
+  // The next set of methods are stubs that call GetStream.  They exist to
+  // force code generation of the templatized API within the module, and
+  // to avoid exposing an ugly API (GetStream needs to accept a garbage
+  // parameter).
+  virtual MinidumpThreadList* GetThreadList();
+  virtual MinidumpModuleList* GetModuleList();
+  virtual MinidumpMemoryList* GetMemoryList();
+  virtual MinidumpException* GetException();
+  virtual MinidumpAssertion* GetAssertion();
+  virtual MinidumpSystemInfo* GetSystemInfo();
+  virtual MinidumpUnloadedModuleList* GetUnloadedModuleList();
+  virtual MinidumpMiscInfo* GetMiscInfo();
+  virtual MinidumpBreakpadInfo* GetBreakpadInfo();
+  virtual MinidumpMemoryInfoList* GetMemoryInfoList();
+  MinidumpCrashpadInfo* GetCrashpadInfo();
+
+  // The next method also calls GetStream, but is exclusive for Linux dumps.
+  virtual MinidumpLinuxMapsList* GetLinuxMapsList();
+
+  // The next set of methods are provided for users who wish to access
+  // data in minidump files directly, while leveraging the rest of
+  // this class and related classes to handle the basic minidump
+  // structure and known stream types.
+
+  unsigned int GetDirectoryEntryCount() const {
+    return valid_ ? header_.stream_count : 0;
+  }
+  const MDRawDirectory* GetDirectoryEntryAtIndex(unsigned int index) const;
+
+  // The next 2 methods are lower-level I/O routines.  They use fd_.
+
+  // Reads count bytes from the minidump at the current position into
+  // the storage area pointed to by bytes.  bytes must be of sufficient
+  // size.  After the read, the file position is advanced by count.
+  bool ReadBytes(void* bytes, size_t count);
+
+  // Sets the position of the minidump file to offset.
+  bool SeekSet(off_t offset);
+
+  // Returns the current position of the minidump file.
+  off_t Tell();
+
+  // Medium-level I/O routines.
+
+  // ReadString returns a string which is owned by the caller!  offset
+  // specifies the offset that a length-encoded string is stored at in the
+  // minidump file.
+  string* ReadString(off_t offset);
+
+  bool ReadUTF8String(off_t offset, string* string_utf8);
+
+  bool ReadStringList(off_t offset, std::vector<std::string>* string_list);
+
+  bool ReadSimpleStringDictionary(
+      off_t offset,
+      std::map<std::string, std::string>* simple_string_dictionary);
+
+  // SeekToStreamType positions the file at the beginning of a stream
+  // identified by stream_type, and informs the caller of the stream's
+  // length by setting *stream_length.  Because stream_map maps each stream
+  // type to only one stream in the file, this might mislead the user into
+  // thinking that the stream that this seeks to is the only stream with
+  // type stream_type.  That can't happen for streams that these classes
+  // deal with directly, because they're only supposed to be present in the
+  // file singly, and that's verified when stream_map_ is built.  Users who
+  // are looking for other stream types should be aware of this
+  // possibility, and consider using GetDirectoryEntryAtIndex (possibly
+  // with GetDirectoryEntryCount) if expecting multiple streams of the same
+  // type in a single minidump file.
+  bool SeekToStreamType(uint32_t stream_type, uint32_t* stream_length);
+
+  bool swap() const { return valid_ ? swap_ : false; }
+
+  bool is_big_endian() const { return valid_ ? is_big_endian_ : false; }
+
+  // Print a human-readable representation of the object to stdout.
+  void Print();
+
+  // Is the OS Android.
+  bool IsAndroid();
+
+  // Determines the platform where the minidump was produced. |platform| is
+  // valid iff this method returns true.
+  bool GetPlatform(MDOSPlatform* platform);
+
+  // Get current hexdump display settings.
+  unsigned int HexdumpMode() const { return hexdump_ ? hexdump_width_ : 0; }
+
+ private:
+  // MinidumpStreamInfo is used in the MinidumpStreamMap.  It lets
+  // the Minidump object locate interesting streams quickly, and
+  // provides a convenient place to stash MinidumpStream objects.
+  struct MinidumpStreamInfo {
+    MinidumpStreamInfo() : stream_index(0), stream(NULL) {}
+    ~MinidumpStreamInfo() { delete stream; }
+
+    // Index into the MinidumpDirectoryEntries vector
+    unsigned int    stream_index;
+
+    // Pointer to the stream if cached, or NULL if not yet populated
+    MinidumpStream* stream;
+  };
+
+  typedef vector<MDRawDirectory> MinidumpDirectoryEntries;
+  typedef map<uint32_t, MinidumpStreamInfo> MinidumpStreamMap;
+
+  template<typename T> T* GetStream(T** stream);
+
+  // Opens the minidump file, or if already open, seeks to the beginning.
+  bool Open();
+
+  // The largest number of top-level streams that will be read from a minidump.
+  // Note that streams are only read (and only consume memory) as needed,
+  // when directed by the caller.  The default is 128.
+  static uint32_t max_streams_;
+
+  // The maximum length of a UTF-16 string that will be read from a minidump
+  // in 16-bit words.  The default is 1024.  UTF-16 strings are converted
+  // to UTF-8 when stored in memory, and each UTF-16 word will be represented
+  // by as many as 3 bytes in UTF-8.
+  static unsigned int max_string_length_;
+
+  MDRawHeader               header_;
+
+  // The list of streams.
+  MinidumpDirectoryEntries* directory_;
+
+  // Access to streams using the stream type as the key.
+  MinidumpStreamMap*        stream_map_;
+
+  // The pathname of the minidump file to process, set in the constructor.
+  // This may be empty if the minidump was opened directly from a stream.
+  const string              path_;
+
+  // The stream for all file I/O.  Used by ReadBytes and SeekSet.
+  // Set based on the path in Open, or directly in the constructor.
+  std::istream*             stream_;
+
+  // swap_ is true if the minidump file should be byte-swapped.  If the
+  // minidump was produced by a CPU that is other-endian than the CPU
+  // processing the minidump, this will be true.  If the two CPUs are
+  // same-endian, this will be false.
+  bool                      swap_;
+
+  // true if the minidump was produced by a big-endian cpu.
+  bool                      is_big_endian_;
+
+  // Validity of the Minidump structure, false immediately after
+  // construction or after a failed Read(); true following a successful
+  // Read().
+  bool                      valid_;
+
+  // Knobs for controlling display of memory printing.
+  bool                      hexdump_;
+  unsigned int              hexdump_width_;
+
+  DISALLOW_COPY_AND_ASSIGN(Minidump);
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
diff --git a/src/google_breakpad/processor/minidump_processor.h b/src/google_breakpad/processor/minidump_processor.h
new file mode 100644
index 0000000..414050e
--- /dev/null
+++ b/src/google_breakpad/processor/minidump_processor.h
@@ -0,0 +1,147 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
+
+#include <assert.h>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/process_result.h"
+
+namespace google_breakpad {
+
+class Minidump;
+class ProcessState;
+class StackFrameSymbolizer;
+class SourceLineResolverInterface;
+class SymbolSupplier;
+struct SystemInfo;
+
+class MinidumpProcessor {
+ public:
+  // Initializes this MinidumpProcessor.  supplier should be an
+  // implementation of the SymbolSupplier abstract base class.
+  MinidumpProcessor(SymbolSupplier* supplier,
+                    SourceLineResolverInterface* resolver);
+
+  // Initializes the MinidumpProcessor with the option of
+  // enabling the exploitability framework to analyze dumps
+  // for probable security relevance.
+  MinidumpProcessor(SymbolSupplier* supplier,
+                    SourceLineResolverInterface* resolver,
+                    bool enable_exploitability);
+
+  // Initializes the MinidumpProcessor with source line resolver helper, and
+  // the option of enabling the exploitability framework to analyze dumps
+  // for probable security relevance.
+  // Does not take ownership of resolver_helper, which must NOT be NULL.
+  MinidumpProcessor(StackFrameSymbolizer* stack_frame_symbolizer,
+                    bool enable_exploitability);
+
+  ~MinidumpProcessor();
+
+  // Processes the minidump file and fills process_state with the result.
+  ProcessResult Process(const string& minidump_file,
+                        ProcessState* process_state);
+
+  // Processes the minidump structure and fills process_state with the
+  // result.
+  ProcessResult Process(Minidump* minidump,
+                        ProcessState* process_state);
+  // Populates the cpu_* fields of the |info| parameter with textual
+  // representations of the CPU type that the minidump in |dump| was
+  // produced on.  Returns false if this information is not available in
+  // the minidump.
+  static bool GetCPUInfo(Minidump* dump, SystemInfo* info);
+
+  // Populates the os_* fields of the |info| parameter with textual
+  // representations of the operating system that the minidump in |dump|
+  // was produced on.  Returns false if this information is not available in
+  // the minidump.
+  static bool GetOSInfo(Minidump* dump, SystemInfo* info);
+
+  // Populates the |process_create_time| parameter with the create time of the
+  // crashed process.  Returns false if this information is not available in
+  // the minidump |dump|.
+  static bool GetProcessCreateTime(Minidump* dump,
+                                   uint32_t* process_create_time);
+
+  // Returns a textual representation of the reason that a crash occurred,
+  // if the minidump in dump was produced as a result of a crash.  Returns
+  // an empty string if this information cannot be determined.  If address
+  // is non-NULL, it will be set to contain the address that caused the
+  // exception, if this information is available.  This will be a code
+  // address when the crash was caused by problems such as illegal
+  // instructions or divisions by zero, or a data address when the crash
+  // was caused by a memory access violation.
+  static string GetCrashReason(Minidump* dump, uint64_t* address);
+
+  // This function returns true if the passed-in error code is
+  // something unrecoverable(i.e. retry should not happen).  For
+  // instance, if the minidump is corrupt, then it makes no sense to
+  // retry as we won't be able to glean additional information.
+  // However, as an example of the other case, the symbol supplier can
+  // return an error code indicating it was 'interrupted', which can
+  // happen of the symbols are fetched from a remote store, and a
+  // retry might be successful later on.
+  // You should not call this method with PROCESS_OK! Test for
+  // that separately before calling this.
+  static bool IsErrorUnrecoverable(ProcessResult p) {
+    assert(p !=  PROCESS_OK);
+    return (p != PROCESS_SYMBOL_SUPPLIER_INTERRUPTED);
+  }
+
+  // Returns a textual representation of an assertion included
+  // in the minidump.  Returns an empty string if this information
+  // does not exist or cannot be determined.
+  static string GetAssertion(Minidump* dump);
+
+  void set_enable_objdump(bool enabled) { enable_objdump_ = enabled; }
+
+ private:
+  StackFrameSymbolizer* frame_symbolizer_;
+  // Indicate whether resolver_helper_ is owned by this instance.
+  bool own_frame_symbolizer_;
+
+  // This flag enables the exploitability scanner which attempts to
+  // guess how likely it is that the crash represents an exploitable
+  // memory corruption issue.
+  bool enable_exploitability_;
+
+  // This flag permits the exploitability scanner to shell out to objdump
+  // for purposes of disassembly.
+  bool enable_objdump_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
diff --git a/src/google_breakpad/processor/proc_maps_linux.h b/src/google_breakpad/processor/proc_maps_linux.h
new file mode 100644
index 0000000..3045daa
--- /dev/null
+++ b/src/google_breakpad/processor/proc_maps_linux.h
@@ -0,0 +1,60 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_DEBUG_PROC_MAPS_LINUX_H_
+#define BASE_DEBUG_PROC_MAPS_LINUX_H_
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+// Describes a region of mapped memory and the path of the file mapped.
+struct MappedMemoryRegion {
+  enum Permission {
+    READ = 1 << 0,
+    WRITE = 1 << 1,
+    EXECUTE = 1 << 2,
+    PRIVATE = 1 << 3,  // If set, region is private, otherwise it is shared.
+  };
+
+  // The address range [start,end) of mapped memory.
+  uint64_t start;
+  uint64_t end;
+
+  // Byte offset into |path| of the range mapped into memory.
+  uint64_t offset;
+
+  // Bitmask of read/write/execute/private/shared permissions.
+  uint8_t permissions;
+
+  // Major and minor devices.
+  uint8_t major_device;
+  uint8_t minor_device;
+
+  // Value of the inode.
+  uint64_t inode;
+
+  // Name of the file mapped into memory.
+  //
+  // NOTE: path names aren't guaranteed to point at valid files. For example,
+  // "[heap]" and "[stack]" are used to represent the location of the process'
+  // heap and stack, respectively.
+  string path;
+
+  // The line from /proc/<pid>/maps that this struct represents.
+  string line;
+};
+
+// Parses /proc/<pid>/maps input data and stores in |regions|. Returns true
+// and updates |regions| if and only if all of |input| was successfully parsed.
+bool ParseProcMaps(const string& input,
+                   std::vector<MappedMemoryRegion>* regions);
+
+}  // namespace google_breakpad
+
+#endif  // BASE_DEBUG_PROC_MAPS_LINUX_H_
diff --git a/src/google_breakpad/processor/process_result.h b/src/google_breakpad/processor/process_result.h
new file mode 100644
index 0000000..15c7213
--- /dev/null
+++ b/src/google_breakpad/processor/process_result.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
+
+namespace google_breakpad {
+
+// Return type for MinidumpProcessor or MicrodumpProcessor's Process()
+enum ProcessResult {
+  PROCESS_OK,                                  // The dump was processed
+                                               // successfully.
+
+  PROCESS_ERROR_MINIDUMP_NOT_FOUND,            // The minidump file was not
+                                               // found.
+
+  PROCESS_ERROR_NO_MINIDUMP_HEADER,            // The minidump file had no
+                                               // header.
+
+  PROCESS_ERROR_NO_THREAD_LIST,                // The minidump file has no
+                                               // thread list.
+
+  PROCESS_ERROR_GETTING_THREAD,                // There was an error getting one
+                                               // thread's data from th dump.
+
+  PROCESS_ERROR_GETTING_THREAD_ID,             // There was an error getting a
+                                               // thread id from the thread's
+                                               // data.
+
+  PROCESS_ERROR_DUPLICATE_REQUESTING_THREADS,  // There was more than one
+                                               // requesting thread.
+
+  PROCESS_SYMBOL_SUPPLIER_INTERRUPTED          // The dump processing was
+                                               // interrupted by the
+                                               // SymbolSupplier(not fatal).
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
diff --git a/src/google_breakpad/processor/process_state.h b/src/google_breakpad/processor/process_state.h
new file mode 100644
index 0000000..9bc44c4
--- /dev/null
+++ b/src/google_breakpad/processor/process_state.h
@@ -0,0 +1,208 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// process_state.h: A snapshot of a process, in a fully-digested state.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/exception_record.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/linked_ptr.h"
+
+namespace google_breakpad {
+
+using std::vector;
+
+class CallStack;
+class CodeModules;
+
+enum ExploitabilityRating {
+  EXPLOITABILITY_HIGH,                 // The crash likely represents
+                                       // a exploitable memory corruption
+                                       // vulnerability.
+
+  EXPLOITABILITY_MEDIUM,               // The crash appears to corrupt
+                                       // memory in a way which may be
+                                       // exploitable in some situations.
+
+  EXPLOITABLITY_MEDIUM = EXPLOITABILITY_MEDIUM,  // an old misspelling
+
+  EXPLOITABILITY_LOW,                  // The crash either does not corrupt
+                                       // memory directly or control over
+                                       // the affected data is limited. The
+                                       // issue may still be exploitable
+                                       // on certain platforms or situations.
+
+  EXPLOITABILITY_INTERESTING,          // The crash does not appear to be
+                                       // directly exploitable. However it
+                                       // represents a condition which should
+                                       // be further analyzed.
+
+  EXPLOITABILITY_NONE,                 // The crash does not appear to represent
+                                       // an exploitable condition.
+
+  EXPLOITABILITY_NOT_ANALYZED,         // The crash was not analyzed for
+                                       // exploitability because the engine
+                                       // was disabled.
+
+  EXPLOITABILITY_ERR_NOENGINE,         // The supplied minidump's platform does
+                                       // not have a exploitability engine
+                                       // associated with it.
+
+  EXPLOITABILITY_ERR_PROCESSING        // An error occured within the
+                                       // exploitability engine and no rating
+                                       // was calculated.
+};
+
+class ProcessState {
+ public:
+  ProcessState() : modules_(NULL), unloaded_modules_(NULL) { Clear(); }
+  ~ProcessState();
+
+  // Resets the ProcessState to its default values
+  void Clear();
+
+  // Accessors.  See the data declarations below.
+  uint32_t time_date_stamp() const { return time_date_stamp_; }
+  uint32_t process_create_time() const { return process_create_time_; }
+  bool crashed() const { return crashed_; }
+  string crash_reason() const { return crash_reason_; }
+  uint64_t crash_address() const { return crash_address_; }
+  string assertion() const { return assertion_; }
+  int requesting_thread() const { return requesting_thread_; }
+  const ExceptionRecord* exception_record() const { return &exception_record_; }
+  const vector<CallStack*>* threads() const { return &threads_; }
+  const vector<MemoryRegion*>* thread_memory_regions() const {
+    return &thread_memory_regions_;
+  }
+  const SystemInfo* system_info() const { return &system_info_; }
+  const CodeModules* modules() const { return modules_; }
+  const CodeModules* unloaded_modules() const { return unloaded_modules_; }
+  const vector<linked_ptr<const CodeModule> >* shrunk_range_modules() const {
+    return &shrunk_range_modules_;
+  }
+  const vector<const CodeModule*>* modules_without_symbols() const {
+    return &modules_without_symbols_;
+  }
+  const vector<const CodeModule*>* modules_with_corrupt_symbols() const {
+    return &modules_with_corrupt_symbols_;
+  }
+  ExploitabilityRating exploitability() const { return exploitability_; }
+
+ private:
+  // MinidumpProcessor and MicrodumpProcessor are responsible for building
+  // ProcessState objects.
+  friend class MinidumpProcessor;
+  friend class MicrodumpProcessor;
+
+  // The time-date stamp of the minidump (time_t format)
+  uint32_t time_date_stamp_;
+
+  // The time-date stamp when the process was created (time_t format)
+  uint32_t process_create_time_;
+
+  // True if the process crashed, false if the dump was produced outside
+  // of an exception handler.
+  bool crashed_;
+
+  // If the process crashed, the type of crash.  OS- and possibly CPU-
+  // specific.  For example, "EXCEPTION_ACCESS_VIOLATION" (Windows),
+  // "EXC_BAD_ACCESS / KERN_INVALID_ADDRESS" (Mac OS X), "SIGSEGV"
+  // (other Unix).
+  string crash_reason_;
+
+  // If the process crashed, and if crash_reason implicates memory,
+  // the memory address that caused the crash.  For data access errors,
+  // this will be the data address that caused the fault.  For code errors,
+  // this will be the address of the instruction that caused the fault.
+  uint64_t crash_address_;
+
+  // If there was an assertion that was hit, a textual representation
+  // of that assertion, possibly including the file and line at which
+  // it occurred.
+  string assertion_;
+
+  // The index of the thread that requested a dump be written in the
+  // threads vector.  If a dump was produced as a result of a crash, this
+  // will point to the thread that crashed.  If the dump was produced as
+  // by user code without crashing, and the dump contains extended Breakpad
+  // information, this will point to the thread that requested the dump.
+  // If the dump was not produced as a result of an exception and no
+  // extended Breakpad information is present, this field will be set to -1,
+  // indicating that the dump thread is not available.
+  int requesting_thread_;
+
+  // Exception record details: code, flags, address, parameters.
+  ExceptionRecord exception_record_;
+
+  // Stacks for each thread (except possibly the exception handler
+  // thread) at the time of the crash.
+  vector<CallStack*> threads_;
+  vector<MemoryRegion*> thread_memory_regions_;
+
+  // OS and CPU information.
+  SystemInfo system_info_;
+
+  // The modules that were loaded into the process represented by the
+  // ProcessState.
+  const CodeModules *modules_;
+
+  // The modules that have been unloaded from the process represented by the
+  // ProcessState.
+  const CodeModules *unloaded_modules_;
+
+  // The modules which virtual address ranges were shrunk down due to
+  // virtual address conflicts.
+  vector<linked_ptr<const CodeModule> > shrunk_range_modules_;
+
+  // The modules that didn't have symbols when the report was processed.
+  vector<const CodeModule*> modules_without_symbols_;
+
+  // The modules that had corrupt symbols when the report was processed.
+  vector<const CodeModule*> modules_with_corrupt_symbols_;
+
+  // The exploitability rating as determined by the exploitability
+  // engine. When the exploitability engine is not enabled this
+  // defaults to EXPLOITABILITY_NOT_ANALYZED.
+  ExploitabilityRating exploitability_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
diff --git a/src/google_breakpad/processor/source_line_resolver_base.h b/src/google_breakpad/processor/source_line_resolver_base.h
new file mode 100644
index 0000000..fea1657
--- /dev/null
+++ b/src/google_breakpad/processor/source_line_resolver_base.h
@@ -0,0 +1,128 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// source_line_resolver_base.h: SourceLineResolverBase, an (incomplete)
+// implementation of SourceLineResolverInterface.  It serves as a common base
+// class for concrete implementations: FastSourceLineResolver and
+// BasicSourceLineResolver.  It is designed for refactoring that removes
+// code redundancy in the two concrete source line resolver classes.
+//
+// See "google_breakpad/processor/source_line_resolver_interface.h" for more
+// documentation.
+
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
+
+#include <map>
+#include <set>
+#include <string>
+
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+
+namespace google_breakpad {
+
+using std::map;
+using std::set;
+
+// Forward declaration.
+// ModuleFactory is a simple factory interface for creating a Module instance
+// at run-time.
+class ModuleFactory;
+
+class SourceLineResolverBase : public SourceLineResolverInterface {
+ public:
+  // Read the symbol_data from a file with given file_name.
+  // The part of code was originally in BasicSourceLineResolver::Module's
+  // LoadMap() method.
+  // Place dynamically allocated heap buffer in symbol_data. Caller has the
+  // ownership of the buffer, and should call delete [] to free the buffer.
+  static bool ReadSymbolFile(const string& file_name,
+                             char** symbol_data,
+                             size_t* symbol_data_size);
+
+ protected:
+  // Users are not allowed create SourceLineResolverBase instance directly.
+  SourceLineResolverBase(ModuleFactory* module_factory);
+  virtual ~SourceLineResolverBase();
+
+  // Virtual methods inherited from SourceLineResolverInterface.
+  virtual bool LoadModule(const CodeModule* module, const string& map_file);
+  virtual bool LoadModuleUsingMapBuffer(const CodeModule* module,
+                                        const string& map_buffer);
+  virtual bool LoadModuleUsingMemoryBuffer(const CodeModule* module,
+                                           char* memory_buffer,
+                                           size_t memory_buffer_size);
+  virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
+  virtual void UnloadModule(const CodeModule* module);
+  virtual bool HasModule(const CodeModule* module);
+  virtual bool IsModuleCorrupt(const CodeModule* module);
+  virtual void FillSourceLineInfo(StackFrame* frame);
+  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame);
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame);
+
+  // Nested structs and classes.
+  struct Line;
+  struct Function;
+  struct PublicSymbol;
+  struct CompareString {
+    bool operator()(const string& s1, const string& s2) const;
+  };
+  // Module is an interface for an in-memory symbol file.
+  class Module;
+  class AutoFileCloser;
+
+  // All of the modules that are loaded.
+  typedef map<string, Module*, CompareString> ModuleMap;
+  ModuleMap* modules_;
+
+  // The loaded modules that were detecting to be corrupt during load.
+  typedef set<string, CompareString> ModuleSet;
+  ModuleSet* corrupt_modules_;
+
+  // All of heap-allocated buffers that are owned locally by resolver.
+  typedef std::map<string, char*, CompareString> MemoryMap;
+  MemoryMap* memory_buffers_;
+
+  // Creates a concrete module at run-time.
+  ModuleFactory* module_factory_;
+
+ private:
+  // ModuleFactory needs to have access to protected type Module.
+  friend class ModuleFactory;
+
+  // Disallow unwanted copy ctor and assignment operator
+  SourceLineResolverBase(const SourceLineResolverBase&);
+  void operator=(const SourceLineResolverBase&);
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
diff --git a/src/google_breakpad/processor/source_line_resolver_interface.h b/src/google_breakpad/processor/source_line_resolver_interface.h
new file mode 100644
index 0000000..9901140
--- /dev/null
+++ b/src/google_breakpad/processor/source_line_resolver_interface.h
@@ -0,0 +1,117 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Abstract interface to return function/file/line info for a memory address.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
+
+namespace google_breakpad {
+
+struct StackFrame;
+struct WindowsFrameInfo;
+class CFIFrameInfo;
+
+class SourceLineResolverInterface {
+ public:
+  typedef uint64_t MemAddr;
+
+  virtual ~SourceLineResolverInterface() {}
+
+  // Adds a module to this resolver, returning true on success.
+  //
+  // module should have at least the code_file, debug_file,
+  // and debug_identifier members populated.
+  //
+  // map_file should contain line/address mappings for this module.
+  virtual bool LoadModule(const CodeModule* module,
+                          const string& map_file) = 0;
+  // Same as above, but takes the contents of a pre-read map buffer
+  virtual bool LoadModuleUsingMapBuffer(const CodeModule* module,
+                                        const string& map_buffer) = 0;
+
+  // Add an interface to load symbol using C-String data instead of string.
+  // This is useful in the optimization design for avoiding unnecessary copying
+  // of symbol data, in order to improve memory efficiency.
+  // LoadModuleUsingMemoryBuffer() does NOT take ownership of memory_buffer.
+  // LoadModuleUsingMemoryBuffer() null terminates the passed in buffer, if
+  // the last character is not a null terminator.
+  virtual bool LoadModuleUsingMemoryBuffer(const CodeModule* module,
+                                           char* memory_buffer,
+                                           size_t memory_buffer_size) = 0;
+
+  // Return true if the memory buffer should be deleted immediately after
+  // LoadModuleUsingMemoryBuffer(). Return false if the memory buffer has to be
+  // alive during the lifetime of the corresponding Module.
+  virtual bool ShouldDeleteMemoryBufferAfterLoadModule() = 0;
+
+  // Request that the specified module be unloaded from this resolver.
+  // A resolver may choose to ignore such a request.
+  virtual void UnloadModule(const CodeModule* module) = 0;
+
+  // Returns true if the module has been loaded.
+  virtual bool HasModule(const CodeModule* module) = 0;
+
+  // Returns true if the module has been loaded and it is corrupt.
+  virtual bool IsModuleCorrupt(const CodeModule* module) = 0;
+
+  // Fills in the function_base, function_name, source_file_name,
+  // and source_line fields of the StackFrame.  The instruction and
+  // module_name fields must already be filled in.
+  virtual void FillSourceLineInfo(StackFrame* frame) = 0;
+
+  // If Windows stack walking information is available covering
+  // FRAME's instruction address, return a WindowsFrameInfo structure
+  // describing it. If the information is not available, returns NULL.
+  // A NULL return value does not indicate an error. The caller takes
+  // ownership of any returned WindowsFrameInfo object.
+  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame) = 0;
+
+  // If CFI stack walking information is available covering ADDRESS,
+  // return a CFIFrameInfo structure describing it. If the information
+  // is not available, return NULL. The caller takes ownership of any
+  // returned CFIFrameInfo object.
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame) = 0;
+
+ protected:
+  // SourceLineResolverInterface cannot be instantiated except by subclasses
+  SourceLineResolverInterface() {}
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
diff --git a/src/google_breakpad/processor/stack_frame.h b/src/google_breakpad/processor/stack_frame.h
new file mode 100644
index 0000000..1491d78
--- /dev/null
+++ b/src/google_breakpad/processor/stack_frame.h
@@ -0,0 +1,144 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+
+struct StackFrame {
+  // Indicates how well the instruction pointer derived during
+  // stack walking is trusted. Since the stack walker can resort to
+  // stack scanning, it can wind up with dubious frames.
+  // In rough order of "trust metric".
+  enum FrameTrust {
+    FRAME_TRUST_NONE,      // Unknown
+    FRAME_TRUST_SCAN,      // Scanned the stack, found this
+    FRAME_TRUST_CFI_SCAN,  // Found while scanning stack using call frame info
+    FRAME_TRUST_FP,        // Derived from frame pointer
+    FRAME_TRUST_CFI,       // Derived from call frame info
+    FRAME_TRUST_PREWALKED, // Explicitly provided by some external stack walker.
+    FRAME_TRUST_CONTEXT    // Given as instruction pointer in a context
+  };
+
+  StackFrame()
+      : instruction(),
+        module(NULL),
+        function_name(),
+        function_base(),
+        source_file_name(),
+        source_line(),
+        source_line_base(),
+        trust(FRAME_TRUST_NONE) {}
+  virtual ~StackFrame() {}
+
+  // Return a string describing how this stack frame was found
+  // by the stackwalker.
+  string trust_description() const {
+    switch (trust) {
+      case StackFrame::FRAME_TRUST_CONTEXT:
+        return "given as instruction pointer in context";
+      case StackFrame::FRAME_TRUST_PREWALKED:
+        return "recovered by external stack walker";
+      case StackFrame::FRAME_TRUST_CFI:
+        return "call frame info";
+      case StackFrame::FRAME_TRUST_CFI_SCAN:
+        return "call frame info with scanning";
+      case StackFrame::FRAME_TRUST_FP:
+        return "previous frame's frame pointer";
+      case StackFrame::FRAME_TRUST_SCAN:
+        return "stack scanning";
+      default:
+        return "unknown";
+    }
+  }
+
+  // Return the actual return address, as saved on the stack or in a
+  // register. See the comments for 'instruction', below, for details.
+  virtual uint64_t ReturnAddress() const { return instruction; }
+
+  // The program counter location as an absolute virtual address.
+  //
+  // - For the innermost called frame in a stack, this will be an exact
+  //   program counter or instruction pointer value.
+  //
+  // - For all other frames, this address is within the instruction that
+  //   caused execution to branch to this frame's callee (although it may
+  //   not point to the exact beginning of that instruction). This ensures
+  //   that, when we look up the source code location for this frame, we
+  //   get the source location of the call, not of the point at which
+  //   control will resume when the call returns, which may be on the next
+  //   line. (If the compiler knows the callee never returns, it may even
+  //   place the call instruction at the very end of the caller's machine
+  //   code, such that the "return address" (which will never be used)
+  //   immediately after the call instruction is in an entirely different
+  //   function, perhaps even from a different source file.)
+  //
+  // On some architectures, the return address as saved on the stack or in
+  // a register is fine for looking up the point of the call. On others, it
+  // requires adjustment. ReturnAddress returns the address as saved by the
+  // machine.
+  uint64_t instruction;
+
+  // The module in which the instruction resides.
+  const CodeModule *module;
+
+  // The function name, may be omitted if debug symbols are not available.
+  string function_name;
+
+  // The start address of the function, may be omitted if debug symbols
+  // are not available.
+  uint64_t function_base;
+
+  // The source file name, may be omitted if debug symbols are not available.
+  string source_file_name;
+
+  // The (1-based) source line number, may be omitted if debug symbols are
+  // not available.
+  int source_line;
+
+  // The start address of the source line, may be omitted if debug symbols
+  // are not available.
+  uint64_t source_line_base;
+
+  // Amount of trust the stack walker has in the instruction pointer
+  // of this frame.
+  FrameTrust trust;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
diff --git a/src/google_breakpad/processor/stack_frame_cpu.h b/src/google_breakpad/processor/stack_frame_cpu.h
new file mode 100644
index 0000000..dc5d8ae
--- /dev/null
+++ b/src/google_breakpad/processor/stack_frame_cpu.h
@@ -0,0 +1,405 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stack_frame_cpu.h: CPU-specific StackFrame extensions.
+//
+// These types extend the StackFrame structure to carry CPU-specific register
+// state.  They are defined in this header instead of stack_frame.h to
+// avoid the need to include minidump_format.h when only the generic
+// StackFrame type is needed.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
+
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stack_frame.h"
+
+namespace google_breakpad {
+
+struct WindowsFrameInfo;
+class CFIFrameInfo;
+
+struct StackFrameX86 : public StackFrame {
+  // ContextValidity has one entry for each relevant hardware pointer
+  // register (%eip and %esp) and one entry for each general-purpose
+  // register. It's worthwhile having validity flags for caller-saves
+  // registers: they are valid in the youngest frame, and such a frame
+  // might save a callee-saves register in a caller-saves register, but
+  // SimpleCFIWalker won't touch registers unless they're marked as valid.
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_EIP  = 1 << 0,
+    CONTEXT_VALID_ESP  = 1 << 1,
+    CONTEXT_VALID_EBP  = 1 << 2,
+    CONTEXT_VALID_EAX  = 1 << 3,
+    CONTEXT_VALID_EBX  = 1 << 4,
+    CONTEXT_VALID_ECX  = 1 << 5,
+    CONTEXT_VALID_EDX  = 1 << 6,
+    CONTEXT_VALID_ESI  = 1 << 7,
+    CONTEXT_VALID_EDI  = 1 << 8,
+    CONTEXT_VALID_ALL  = -1
+  };
+
+  StackFrameX86()
+     : context(),
+       context_validity(CONTEXT_VALID_NONE),
+       windows_frame_info(NULL),
+       cfi_frame_info(NULL) {}
+  ~StackFrameX86();
+
+  // Overriden to return the return address as saved on the stack.
+  virtual uint64_t ReturnAddress() const;
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextX86 context;
+
+  // context_validity is actually ContextValidity, but int is used because
+  // the OR operator doesn't work well with enumerated types.  This indicates
+  // which fields in context are valid.
+  int context_validity;
+
+  // Any stack walking information we found describing this.instruction.
+  // These may be NULL if there is no such information for that address.
+  WindowsFrameInfo *windows_frame_info;
+  CFIFrameInfo *cfi_frame_info;
+};
+
+struct StackFramePPC : public StackFrame {
+  // ContextValidity should eventually contain entries for the validity of
+  // other nonvolatile (callee-save) registers as in
+  // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
+  // locate registers other than the ones listed here.
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_SRR0 = 1 << 0,
+    CONTEXT_VALID_GPR1 = 1 << 1,
+    CONTEXT_VALID_ALL  = -1
+  };
+
+  StackFramePPC() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextPPC context;
+
+  // context_validity is actually ContextValidity, but int is used because
+  // the OR operator doesn't work well with enumerated types.  This indicates
+  // which fields in context are valid.
+  int context_validity;
+};
+
+struct StackFramePPC64 : public StackFrame {
+  // ContextValidity should eventually contain entries for the validity of
+  // other nonvolatile (callee-save) registers as in
+  // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
+  // locate registers other than the ones listed here.
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_SRR0 = 1 << 0,
+    CONTEXT_VALID_GPR1 = 1 << 1,
+    CONTEXT_VALID_ALL  = -1
+  };
+
+  StackFramePPC64() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextPPC64 context;
+
+  // context_validity is actually ContextValidity, but int is used because
+  // the OR operator doesn't work well with enumerated types.  This indicates
+  // which fields in context are valid.
+  int context_validity;
+};
+
+struct StackFrameAMD64 : public StackFrame {
+  // ContextValidity has one entry for each register that we might be able
+  // to recover.
+  enum ContextValidity {
+    CONTEXT_VALID_NONE  = 0,
+    CONTEXT_VALID_RAX   = 1 << 0,
+    CONTEXT_VALID_RDX   = 1 << 1,
+    CONTEXT_VALID_RCX   = 1 << 2,
+    CONTEXT_VALID_RBX   = 1 << 3,
+    CONTEXT_VALID_RSI   = 1 << 4,
+    CONTEXT_VALID_RDI   = 1 << 5,
+    CONTEXT_VALID_RBP   = 1 << 6,
+    CONTEXT_VALID_RSP   = 1 << 7,
+    CONTEXT_VALID_R8    = 1 << 8,
+    CONTEXT_VALID_R9    = 1 << 9,
+    CONTEXT_VALID_R10   = 1 << 10,
+    CONTEXT_VALID_R11   = 1 << 11,
+    CONTEXT_VALID_R12   = 1 << 12,
+    CONTEXT_VALID_R13   = 1 << 13,
+    CONTEXT_VALID_R14   = 1 << 14,
+    CONTEXT_VALID_R15   = 1 << 15,
+    CONTEXT_VALID_RIP   = 1 << 16,
+    CONTEXT_VALID_ALL  = -1
+  };
+
+  StackFrameAMD64() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Overriden to return the return address as saved on the stack.
+  virtual uint64_t ReturnAddress() const;
+
+  // Register state. This is only fully valid for the topmost frame in a
+  // stack. In other frames, which registers are present depends on what
+  // debugging information we had available. Refer to context_validity.
+  MDRawContextAMD64 context;
+
+  // For each register in context whose value has been recovered, we set
+  // the corresponding CONTEXT_VALID_ bit in context_validity.
+  //
+  // context_validity's type should actually be ContextValidity, but
+  // we use int instead because the bitwise inclusive or operator
+  // yields an int when applied to enum values, and C++ doesn't
+  // silently convert from ints to enums.
+  int context_validity;
+};
+
+struct StackFrameSPARC : public StackFrame {
+  // to be confirmed
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_PC   = 1 << 0,
+    CONTEXT_VALID_SP   = 1 << 1,
+    CONTEXT_VALID_FP   = 1 << 2,
+    CONTEXT_VALID_ALL  = -1
+  };
+
+  StackFrameSPARC() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextSPARC context;
+
+  // context_validity is actually ContextValidity, but int is used because
+  // the OR operator doesn't work well with enumerated types.  This indicates
+  // which fields in context are valid.
+  int context_validity;
+};
+
+struct StackFrameARM : public StackFrame {
+  // A flag for each register we might know.
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_R0   = 1 << 0,
+    CONTEXT_VALID_R1   = 1 << 1,
+    CONTEXT_VALID_R2   = 1 << 2,
+    CONTEXT_VALID_R3   = 1 << 3,
+    CONTEXT_VALID_R4   = 1 << 4,
+    CONTEXT_VALID_R5   = 1 << 5,
+    CONTEXT_VALID_R6   = 1 << 6,
+    CONTEXT_VALID_R7   = 1 << 7,
+    CONTEXT_VALID_R8   = 1 << 8,
+    CONTEXT_VALID_R9   = 1 << 9,
+    CONTEXT_VALID_R10  = 1 << 10,
+    CONTEXT_VALID_R11  = 1 << 11,
+    CONTEXT_VALID_R12  = 1 << 12,
+    CONTEXT_VALID_R13  = 1 << 13,
+    CONTEXT_VALID_R14  = 1 << 14,
+    CONTEXT_VALID_R15  = 1 << 15,
+    CONTEXT_VALID_ALL  = ~CONTEXT_VALID_NONE,
+
+    // Aliases for registers with dedicated or conventional roles.
+    CONTEXT_VALID_FP   = CONTEXT_VALID_R11,
+    CONTEXT_VALID_SP   = CONTEXT_VALID_R13,
+    CONTEXT_VALID_LR   = CONTEXT_VALID_R14,
+    CONTEXT_VALID_PC   = CONTEXT_VALID_R15
+  };
+
+  StackFrameARM() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Return the ContextValidity flag for register rN.
+  static ContextValidity RegisterValidFlag(int n) {
+    return ContextValidity(1 << n);
+  }
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextARM context;
+
+  // For each register in context whose value has been recovered, we set
+  // the corresponding CONTEXT_VALID_ bit in context_validity.
+  //
+  // context_validity's type should actually be ContextValidity, but
+  // we use int instead because the bitwise inclusive or operator
+  // yields an int when applied to enum values, and C++ doesn't
+  // silently convert from ints to enums.
+  int context_validity;
+};
+
+struct StackFrameARM64 : public StackFrame {
+  // A flag for each register we might know. Note that we can't use an enum
+  // here as there are 33 values to represent.
+  static const uint64_t CONTEXT_VALID_NONE = 0;
+  static const uint64_t CONTEXT_VALID_X0   = 1ULL << 0;
+  static const uint64_t CONTEXT_VALID_X1   = 1ULL << 1;
+  static const uint64_t CONTEXT_VALID_X2   = 1ULL << 2;
+  static const uint64_t CONTEXT_VALID_X3   = 1ULL << 3;
+  static const uint64_t CONTEXT_VALID_X4   = 1ULL << 4;
+  static const uint64_t CONTEXT_VALID_X5   = 1ULL << 5;
+  static const uint64_t CONTEXT_VALID_X6   = 1ULL << 6;
+  static const uint64_t CONTEXT_VALID_X7   = 1ULL << 7;
+  static const uint64_t CONTEXT_VALID_X8   = 1ULL << 8;
+  static const uint64_t CONTEXT_VALID_X9   = 1ULL << 9;
+  static const uint64_t CONTEXT_VALID_X10  = 1ULL << 10;
+  static const uint64_t CONTEXT_VALID_X11  = 1ULL << 11;
+  static const uint64_t CONTEXT_VALID_X12  = 1ULL << 12;
+  static const uint64_t CONTEXT_VALID_X13  = 1ULL << 13;
+  static const uint64_t CONTEXT_VALID_X14  = 1ULL << 14;
+  static const uint64_t CONTEXT_VALID_X15  = 1ULL << 15;
+  static const uint64_t CONTEXT_VALID_X16  = 1ULL << 16;
+  static const uint64_t CONTEXT_VALID_X17  = 1ULL << 17;
+  static const uint64_t CONTEXT_VALID_X18  = 1ULL << 18;
+  static const uint64_t CONTEXT_VALID_X19  = 1ULL << 19;
+  static const uint64_t CONTEXT_VALID_X20  = 1ULL << 20;
+  static const uint64_t CONTEXT_VALID_X21  = 1ULL << 21;
+  static const uint64_t CONTEXT_VALID_X22  = 1ULL << 22;
+  static const uint64_t CONTEXT_VALID_X23  = 1ULL << 23;
+  static const uint64_t CONTEXT_VALID_X24  = 1ULL << 24;
+  static const uint64_t CONTEXT_VALID_X25  = 1ULL << 25;
+  static const uint64_t CONTEXT_VALID_X26  = 1ULL << 26;
+  static const uint64_t CONTEXT_VALID_X27  = 1ULL << 27;
+  static const uint64_t CONTEXT_VALID_X28  = 1ULL << 28;
+  static const uint64_t CONTEXT_VALID_X29  = 1ULL << 29;
+  static const uint64_t CONTEXT_VALID_X30  = 1ULL << 30;
+  static const uint64_t CONTEXT_VALID_X31  = 1ULL << 31;
+  static const uint64_t CONTEXT_VALID_X32  = 1ULL << 32;
+  static const uint64_t CONTEXT_VALID_ALL  = ~CONTEXT_VALID_NONE;
+
+  // Aliases for registers with dedicated or conventional roles.
+  static const uint64_t CONTEXT_VALID_FP   = CONTEXT_VALID_X29;
+  static const uint64_t CONTEXT_VALID_LR   = CONTEXT_VALID_X30;
+  static const uint64_t CONTEXT_VALID_SP   = CONTEXT_VALID_X31;
+  static const uint64_t CONTEXT_VALID_PC   = CONTEXT_VALID_X32;
+
+  StackFrameARM64() : context(),
+                      context_validity(CONTEXT_VALID_NONE) {}
+
+  // Return the validity flag for register xN.
+  static uint64_t RegisterValidFlag(int n) {
+    return 1ULL << n;
+  }
+
+  // Register state.  This is only fully valid for the topmost frame in a
+  // stack.  In other frames, the values of nonvolatile registers may be
+  // present, given sufficient debugging information.  Refer to
+  // context_validity.
+  MDRawContextARM64 context;
+
+  // For each register in context whose value has been recovered, we set
+  // the corresponding CONTEXT_VALID_ bit in context_validity.
+  uint64_t context_validity;
+};
+
+struct StackFrameMIPS : public StackFrame {  
+  // MIPS callee save registers for o32 ABI (32bit registers) are: 
+  // 1. $s0-$s7, 
+  // 2. $sp, $fp
+  // 3. $f20-$f31 
+  // 
+  // The register structure is available at
+  // http://en.wikipedia.org/wiki/MIPS_architecture#Compiler_register_usage
+
+#define INDEX_MIPS_REG_S0 MD_CONTEXT_MIPS_REG_S0  // 16
+#define INDEX_MIPS_REG_S7 MD_CONTEXT_MIPS_REG_S7  // 23
+#define INDEX_MIPS_REG_GP MD_CONTEXT_MIPS_REG_GP  // 28
+#define INDEX_MIPS_REG_RA MD_CONTEXT_MIPS_REG_RA  // 31
+#define INDEX_MIPS_REG_PC 34 
+#define SHIFT_MIPS_REG_S0 0
+#define SHIFT_MIPS_REG_GP 8
+#define SHIFT_MIPS_REG_PC 12 
+
+  enum ContextValidity {
+    CONTEXT_VALID_NONE = 0,
+    CONTEXT_VALID_S0 = 1 << 0,  // $16
+    CONTEXT_VALID_S1 = 1 << 1,  // $17
+    CONTEXT_VALID_S2 = 1 << 2,  // $18
+    CONTEXT_VALID_S3 = 1 << 3,  // $19
+    CONTEXT_VALID_S4 = 1 << 4,  // $20
+    CONTEXT_VALID_S5 = 1 << 5,  // $21
+    CONTEXT_VALID_S6 = 1 << 6,  // $22
+    CONTEXT_VALID_S7 = 1 << 7,  // $23
+    // GP is not calee-save for o32 abi.
+    CONTEXT_VALID_GP = 1 << 8,  // $28
+    CONTEXT_VALID_SP = 1 << 9,  // $29
+    CONTEXT_VALID_FP = 1 << 10,  // $30
+    CONTEXT_VALID_RA = 1 << 11,  // $31  
+    CONTEXT_VALID_PC = 1 << 12,  // $34
+    CONTEXT_VALID_ALL = ~CONTEXT_VALID_NONE
+  };
+  
+  // Return the ContextValidity flag for register rN.
+  static ContextValidity RegisterValidFlag(int n) {
+    if (n >= INDEX_MIPS_REG_S0 && n <= INDEX_MIPS_REG_S7)
+      return ContextValidity(1 << (n - INDEX_MIPS_REG_S0 + SHIFT_MIPS_REG_S0));
+    else if (n >= INDEX_MIPS_REG_GP && n <= INDEX_MIPS_REG_RA)
+      return ContextValidity(1 << (n - INDEX_MIPS_REG_GP + SHIFT_MIPS_REG_GP));
+    else if (n == INDEX_MIPS_REG_PC)
+      return ContextValidity(1 << SHIFT_MIPS_REG_PC);
+
+    return CONTEXT_VALID_NONE;
+  }
+
+  StackFrameMIPS() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+  // Register state. This is only fully valid for the topmost frame in a
+  // stack. In other frames, which registers are present depends on what
+  // debugging information were available. Refer to 'context_validity' below.
+  MDRawContextMIPS context;   
+
+  // For each register in context whose value has been recovered,
+  // the corresponding CONTEXT_VALID_ bit in 'context_validity' is set.
+  //
+  // context_validity's type should actually be ContextValidity, but
+  // type int is used instead because the bitwise inclusive or operator
+  // yields an int when applied to enum values, and C++ doesn't
+  // silently convert from ints to enums.
+  int context_validity;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
diff --git a/src/google_breakpad/processor/stack_frame_symbolizer.h b/src/google_breakpad/processor/stack_frame_symbolizer.h
new file mode 100644
index 0000000..0bbaae0
--- /dev/null
+++ b/src/google_breakpad/processor/stack_frame_symbolizer.h
@@ -0,0 +1,110 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Helper class that encapsulates the logic of how symbol supplier interacts
+// with source line resolver to fill stack frame information.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
+
+#include <set>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
+
+namespace google_breakpad {
+class CFIFrameInfo;
+class CodeModules;
+class SymbolSupplier;
+class SourceLineResolverInterface;
+struct StackFrame;
+struct SystemInfo;
+struct WindowsFrameInfo;
+
+class StackFrameSymbolizer {
+ public:
+  enum SymbolizerResult {
+    // Symbol data was found and successfully loaded in resolver.
+    // This does NOT guarantee source line info is found within symbol file.
+    kNoError,
+    // This indicates non-critical error, such as, no code module found for
+    // frame's instruction, no symbol file, or resolver failed to load symbol.
+    kError,
+    // This indicates error for which stack walk should be interrupted
+    // and retried in future.
+    kInterrupt,
+    // Symbol data was found and loaded in resolver however some corruptions
+    // were detected.
+    kWarningCorruptSymbols,
+  };
+
+  StackFrameSymbolizer(SymbolSupplier* supplier,
+                       SourceLineResolverInterface* resolver);
+
+  virtual ~StackFrameSymbolizer() { }
+
+  // Encapsulate the step of resolving source line info for a stack frame.
+  // "frame" must not be NULL.
+  virtual SymbolizerResult FillSourceLineInfo(
+      const CodeModules* modules,
+      const CodeModules* unloaded_modules,
+      const SystemInfo* system_info,
+      StackFrame* stack_frame);
+
+  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame);
+
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame);
+
+  // Reset internal (locally owned) data as if the helper is re-instantiated.
+  // A typical case is to call Reset() after processing an individual report
+  // before start to process next one, in order to reset internal information
+  // about missing symbols found so far.
+  virtual void Reset() { no_symbol_modules_.clear(); }
+
+  // Returns true if there is valid implementation for stack symbolization.
+  virtual bool HasImplementation() { return resolver_ && supplier_; }
+
+  SourceLineResolverInterface* resolver() { return resolver_; }
+  SymbolSupplier* supplier() { return supplier_; }
+
+ protected:
+  SymbolSupplier* supplier_;
+  SourceLineResolverInterface* resolver_;
+  // A list of modules known to have symbols missing. This helps avoid
+  // repeated lookups for the missing symbols within one minidump.
+  std::set<string> no_symbol_modules_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
diff --git a/src/google_breakpad/processor/stackwalker.h b/src/google_breakpad/processor/stackwalker.h
new file mode 100644
index 0000000..daa5039
--- /dev/null
+++ b/src/google_breakpad/processor/stackwalker.h
@@ -0,0 +1,261 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker.h: Generic stackwalker.
+//
+// The Stackwalker class is an abstract base class providing common generic
+// methods that apply to stacks from all systems.  Specific implementations
+// will extend this class by providing GetContextFrame and GetCallerFrame
+// methods to fill in system-specific data in a StackFrame structure.
+// Stackwalker assembles these StackFrame strucutres into a CallStack.
+//
+// Author: Mark Mentovai
+
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+
+namespace google_breakpad {
+
+class CallStack;
+class DumpContext;
+class StackFrameSymbolizer;
+
+using std::set;
+using std::vector;
+
+class Stackwalker {
+ public:
+  virtual ~Stackwalker() {}
+
+  // Populates the given CallStack by calling GetContextFrame and
+  // GetCallerFrame.  The frames are further processed to fill all available
+  // data.  Returns true if the stackwalk completed, or false if it was
+  // interrupted by SymbolSupplier::GetSymbolFile().
+  // Upon return, |modules_without_symbols| will be populated with pointers to
+  // the code modules (CodeModule*) that DON'T have symbols.
+  // |modules_with_corrupt_symbols| will be populated with pointers to the
+  // modules which have corrupt symbols.  |modules_without_symbols| and
+  // |modules_with_corrupt_symbols| DO NOT take ownership of the code modules.
+  // The lifetime of these code modules is the same as the lifetime of the
+  // CodeModules passed to the StackWalker constructor (which currently
+  // happens to be the lifetime of the Breakpad's ProcessingState object).
+  // There is a check for duplicate modules so no duplicates are expected.
+  bool Walk(CallStack* stack,
+            vector<const CodeModule*>* modules_without_symbols,
+            vector<const CodeModule*>* modules_with_corrupt_symbols);
+
+  // Returns a new concrete subclass suitable for the CPU that a stack was
+  // generated on, according to the CPU type indicated by the context
+  // argument.  If no suitable concrete subclass exists, returns NULL.
+  static Stackwalker* StackwalkerForCPU(
+     const SystemInfo* system_info,
+     DumpContext* context,
+     MemoryRegion* memory,
+     const CodeModules* modules,
+     const CodeModules* unloaded_modules,
+     StackFrameSymbolizer* resolver_helper);
+
+
+  static void set_max_frames(uint32_t max_frames) {
+    max_frames_ = max_frames;
+    max_frames_set_ = true;
+  }
+  static uint32_t max_frames() { return max_frames_; }
+
+  static void set_max_frames_scanned(uint32_t max_frames_scanned) {
+    max_frames_scanned_ = max_frames_scanned;
+  }
+
+ protected:
+  // system_info identifies the operating system, NULL or empty if unknown.
+  // memory identifies a MemoryRegion that provides the stack memory
+  // for the stack to walk.  modules, if non-NULL, is a CodeModules
+  // object that is used to look up which code module each stack frame is
+  // associated with.  frame_symbolizer is a StackFrameSymbolizer object that
+  // encapsulates the logic of how source line resolver interacts with symbol
+  // supplier to symbolize stack frame and look up caller frame information
+  // (see stack_frame_symbolizer.h).
+  // frame_symbolizer MUST NOT be NULL (asserted).
+  Stackwalker(const SystemInfo* system_info,
+              MemoryRegion* memory,
+              const CodeModules* modules,
+              StackFrameSymbolizer* frame_symbolizer);
+
+  // This can be used to filter out potential return addresses when
+  // the stack walker resorts to stack scanning.
+  // Returns true if any of:
+  // * This address is within a loaded module, but we don't have symbols
+  //   for that module.
+  // * This address is within a loaded module for which we have symbols,
+  //   and falls inside a function in that module.
+  // Returns false otherwise.
+  bool InstructionAddressSeemsValid(uint64_t address) const;
+
+  // Checks whether we should stop the stack trace.
+  // (either we reached the end-of-stack or we detected a
+  //  broken callstack invariant)
+  bool TerminateWalk(uint64_t caller_ip,
+                     uint64_t caller_sp,
+                     uint64_t callee_sp,
+                     bool first_unwind) const;
+
+  // The default number of words to search through on the stack
+  // for a return address.
+  static const int kRASearchWords;
+
+  template<typename InstructionType>
+  bool ScanForReturnAddress(InstructionType location_start,
+                            InstructionType* location_found,
+                            InstructionType* ip_found,
+                            bool is_context_frame) {
+    // When searching for the caller of the context frame,
+    // allow the scanner to look farther down the stack.
+    const int search_words = is_context_frame ?
+      kRASearchWords * 4 :
+      kRASearchWords;
+
+    return ScanForReturnAddress(location_start, location_found, ip_found,
+                                search_words);
+  }
+
+  // Scan the stack starting at location_start, looking for an address
+  // that looks like a valid instruction pointer. Addresses must
+  // 1) be contained in the current stack memory
+  // 2) pass the checks in InstructionAddressSeemsValid
+  //
+  // Returns true if a valid-looking instruction pointer was found.
+  // When returning true, sets location_found to the address at which
+  // the value was found, and ip_found to the value contained at that
+  // location in memory.
+  template<typename InstructionType>
+  bool ScanForReturnAddress(InstructionType location_start,
+                            InstructionType* location_found,
+                            InstructionType* ip_found,
+                            int searchwords) {
+    for (InstructionType location = location_start;
+         location <= location_start + searchwords * sizeof(InstructionType);
+         location += sizeof(InstructionType)) {
+      InstructionType ip;
+      if (!memory_->GetMemoryAtAddress(location, &ip))
+        break;
+
+      // The return address points to the instruction after a call. If the
+      // caller was a no return function, this might point past the end of the
+      // function. Subtract one from the instruction pointer so it points into
+      // the call instruction instead.
+      if (modules_ && modules_->GetModuleForAddress(ip  - 1) &&
+          InstructionAddressSeemsValid(ip - 1)) {
+        *ip_found = ip;
+        *location_found = location;
+        return true;
+      }
+    }
+    // nothing found
+    return false;
+  }
+
+  // Information about the system that produced the minidump.  Subclasses
+  // and the SymbolSupplier may find this information useful.
+  const SystemInfo* system_info_;
+
+  // The stack memory to walk.  Subclasses will require this region to
+  // get information from the stack.
+  MemoryRegion* memory_;
+
+  // A list of modules, for populating each StackFrame's module information.
+  // This field is optional and may be NULL.
+  const CodeModules* modules_;
+
+  // A list of unloaded modules, for populating frames which aren't matched
+  // to any loaded modules.
+  // This field is optional and may be NULL.
+  const CodeModules* unloaded_modules_;
+
+ protected:
+  // The StackFrameSymbolizer implementation.
+  StackFrameSymbolizer* frame_symbolizer_;
+
+ private:
+  // Obtains the context frame, the innermost called procedure in a stack
+  // trace.  Returns NULL on failure.  GetContextFrame allocates a new
+  // StackFrame (or StackFrame subclass), ownership of which is taken by
+  // the caller.
+  virtual StackFrame* GetContextFrame() = 0;
+
+  // Obtains a caller frame.  Each call to GetCallerFrame should return the
+  // frame that called the last frame returned by GetContextFrame or
+  // GetCallerFrame.  To aid this purpose, stack contains the CallStack
+  // made of frames that have already been walked.  GetCallerFrame should
+  // return NULL on failure or when there are no more caller frames (when
+  // the end of the stack has been reached).  GetCallerFrame allocates a new
+  // StackFrame (or StackFrame subclass), ownership of which is taken by
+  // the caller.  |stack_scan_allowed| controls whether stack scanning is
+  // an allowable frame-recovery method, since it is desirable to be able to
+  // disable stack scanning in performance-critical use cases.
+  //
+  // CONSIDER: a way to differentiate between:
+  //  - full stack traces
+  //  - explicitly truncated traces (max_frames_)
+  //  - stopping after max scanned frames
+  //  - failed stack walk (breaking one of the stack walk invariants)
+  //
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed) = 0;
+
+  // The maximum number of frames Stackwalker will walk through.
+  // This defaults to 1024 to prevent infinite loops.
+  static uint32_t max_frames_;
+
+  // Keep track of whether max_frames_ has been set by the user, since
+  // it affects whether or not an error message is printed in the case
+  // where an unwind got stopped by the limit.
+  static bool max_frames_set_;
+
+  // The maximum number of stack-scanned and otherwise untrustworthy
+  // frames allowed.  Stack-scanning can be expensive, so the option to
+  // disable or limit it is helpful in cases where unwind performance is
+  // important.  This defaults to 1024, the same as max_frames_.
+  static uint32_t max_frames_scanned_;
+};
+
+}  // namespace google_breakpad
+
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
diff --git a/src/google_breakpad/processor/symbol_supplier.h b/src/google_breakpad/processor/symbol_supplier.h
new file mode 100644
index 0000000..6ec0176
--- /dev/null
+++ b/src/google_breakpad/processor/symbol_supplier.h
@@ -0,0 +1,99 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The caller may implement the SymbolSupplier abstract base class
+// to provide symbols for a given module.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
+
+#include <string>
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+struct SystemInfo;
+
+class SymbolSupplier {
+ public:
+  // Result type for GetSymbolFile
+  enum SymbolResult {
+    // no symbols were found, but continue processing
+    NOT_FOUND,
+
+    // symbols were found, and the path has been placed in symbol_file
+    FOUND,
+
+    // stops processing the minidump immediately
+    INTERRUPT
+  };
+
+  virtual ~SymbolSupplier() {}
+
+  // Retrieves the symbol file for the given CodeModule, placing the
+  // path in symbol_file if successful.  system_info contains strings
+  // identifying the operating system and CPU; SymbolSupplier may use
+  // to help locate the symbol file.  system_info may be NULL or its
+  // fields may be empty if these values are unknown.  symbol_file
+  // must be a pointer to a valid string
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file) = 0;
+  // Same as above, except also places symbol data into symbol_data.
+  // If symbol_data is NULL, the data is not returned.
+  // TODO(nealsid) Once we have symbol data caching behavior implemented
+  // investigate making all symbol suppliers implement all methods,
+  // and make this pure virtual
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file,
+                                     string* symbol_data) = 0;
+
+  // Same as above, except allocates data buffer on heap and then places the
+  // symbol data into the buffer as C-string.
+  // SymbolSupplier is responsible for deleting the data buffer. After the call
+  // to GetCStringSymbolData(), the caller should call FreeSymbolData(const
+  // Module* module) once the data buffer is no longer needed.
+  // If symbol_data is not NULL, symbol supplier won't return FOUND unless it
+  // returns a valid buffer in symbol_data, e.g., returns INTERRUPT on memory
+  // allocation failure.
+  virtual SymbolResult GetCStringSymbolData(const CodeModule* module,
+                                            const SystemInfo* system_info,
+                                            string* symbol_file,
+                                            char** symbol_data,
+                                            size_t* symbol_data_size) = 0;
+
+  // Frees the data buffer allocated for the module in GetCStringSymbolData.
+  virtual void FreeSymbolData(const CodeModule* module) = 0;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
diff --git a/src/google_breakpad/processor/system_info.h b/src/google_breakpad/processor/system_info.h
new file mode 100644
index 0000000..8d2f60b
--- /dev/null
+++ b/src/google_breakpad/processor/system_info.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// system_info.h: Information about the system that was running a program
+// when a crash report was produced.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+struct SystemInfo {
+ public:
+  SystemInfo() : os(), os_short(), os_version(), cpu(), cpu_info(),
+    cpu_count(0), gl_version(), gl_vendor(), gl_renderer() {}
+
+  // Resets the SystemInfo object to its default values.
+  void Clear() {
+    os.clear();
+    os_short.clear();
+    os_version.clear();
+    cpu.clear();
+    cpu_info.clear();
+    cpu_count = 0;
+    gl_version.clear();
+    gl_vendor.clear();
+    gl_renderer.clear();
+  }
+
+  // A string identifying the operating system, such as "Windows NT",
+  // "Mac OS X", or "Linux".  If the information is present in the dump but
+  // its value is unknown, this field will contain a numeric value.  If
+  // the information is not present in the dump, this field will be empty.
+  string os;
+
+  // A short form of the os string, using lowercase letters and no spaces,
+  // suitable for use in a filesystem.  Possible values include "windows",
+  // "mac", "linux" and "nacl".  Empty if the information is not present
+  // in the dump or if the OS given by the dump is unknown.  The values
+  // stored in this field should match those used by
+  // MinidumpSystemInfo::GetOS.
+  string os_short;
+
+  // A string identifying the version of the operating system, such as
+  // "5.1.2600 Service Pack 2" or "10.4.8 8L2127".  If the dump does not
+  // contain this information, this field will be empty.
+  string os_version;
+
+  // A string identifying the basic CPU family, such as "x86" or "ppc".
+  // If this information is present in the dump but its value is unknown,
+  // this field will contain a numeric value.  If the information is not
+  // present in the dump, this field will be empty.  The values stored in
+  // this field should match those used by MinidumpSystemInfo::GetCPU.
+  string cpu;
+
+  // A string further identifying the specific CPU, such as
+  // "GenuineIntel level 6 model 13 stepping 8".  If the information is not
+  // present in the dump, or additional identifying information is not
+  // defined for the CPU family, this field will be empty.
+  string cpu_info;
+
+  // The number of processors in the system.  Will be greater than one for
+  // multi-core systems.
+  int cpu_count;
+
+  // The GPU information. Currently only populated in microdumps.
+  string gl_version;
+  string gl_vendor;
+  string gl_renderer;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
diff --git a/src/processor/address_map-inl.h b/src/processor/address_map-inl.h
new file mode 100644
index 0000000..96d955a
--- /dev/null
+++ b/src/processor/address_map-inl.h
@@ -0,0 +1,93 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// address_map-inl.h: Address map implementation.
+//
+// See address_map.h for documentation.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_ADDRESS_MAP_INL_H__
+#define PROCESSOR_ADDRESS_MAP_INL_H__
+
+#include "processor/address_map.h"
+
+#include <assert.h>
+
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+bool AddressMap<AddressType, EntryType>::Store(const AddressType& address,
+                                               const EntryType& entry) {
+  // Ensure that the specified address doesn't conflict with something already
+  // in the map.
+  if (map_.find(address) != map_.end()) {
+    BPLOG(INFO) << "Store failed, address " << HexString(address) <<
+                   " is already present";
+    return false;
+  }
+
+  map_.insert(MapValue(address, entry));
+  return true;
+}
+
+template<typename AddressType, typename EntryType>
+bool AddressMap<AddressType, EntryType>::Retrieve(
+    const AddressType& address,
+    EntryType* entry, AddressType* entry_address) const {
+  BPLOG_IF(ERROR, !entry) << "AddressMap::Retrieve requires |entry|";
+  assert(entry);
+
+  // upper_bound gives the first element whose key is greater than address,
+  // but we want the first element whose key is less than or equal to address.
+  // Decrement the iterator to get there, but not if the upper_bound already
+  // points to the beginning of the map - in that case, address is lower than
+  // the lowest stored key, so return false.
+  MapConstIterator iterator = map_.upper_bound(address);
+  if (iterator == map_.begin())
+    return false;
+  --iterator;
+
+  *entry = iterator->second;
+  if (entry_address)
+    *entry_address = iterator->first;
+
+  return true;
+}
+
+template<typename AddressType, typename EntryType>
+void AddressMap<AddressType, EntryType>::Clear() {
+  map_.clear();
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_ADDRESS_MAP_INL_H__
diff --git a/src/processor/address_map.h b/src/processor/address_map.h
new file mode 100644
index 0000000..87321a7
--- /dev/null
+++ b/src/processor/address_map.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// address_map.h: Address maps.
+//
+// An address map contains a set of objects keyed by address.  Objects are
+// retrieved from the map by returning the object with the highest key less
+// than or equal to the lookup key.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_ADDRESS_MAP_H__
+#define PROCESSOR_ADDRESS_MAP_H__
+
+#include <map>
+
+namespace google_breakpad {
+
+// Forward declarations (for later friend declarations).
+template<class, class> class AddressMapSerializer;
+
+template<typename AddressType, typename EntryType>
+class AddressMap {
+ public:
+  AddressMap() : map_() {}
+
+  // Inserts an entry into the map.  Returns false without storing the entry
+  // if an entry is already stored in the map at the same address as specified
+  // by the address argument.
+  bool Store(const AddressType& address, const EntryType& entry);
+
+  // Locates the entry stored at the highest address less than or equal to
+  // the address argument.  If there is no such range, returns false.  The
+  // entry is returned in entry, which is a required argument.  If
+  // entry_address is not NULL, it will be set to the address that the entry
+  // was stored at.
+  bool Retrieve(const AddressType& address,
+                EntryType* entry, AddressType* entry_address) const;
+
+  // Empties the address map, restoring it to the same state as when it was
+  // initially created.
+  void Clear();
+
+ private:
+  friend class AddressMapSerializer<AddressType, EntryType>;
+  friend class ModuleComparer;
+
+  // Convenience types.
+  typedef std::map<AddressType, EntryType> AddressToEntryMap;
+  typedef typename AddressToEntryMap::const_iterator MapConstIterator;
+  typedef typename AddressToEntryMap::value_type MapValue;
+
+  // Maps the address of each entry to an EntryType.
+  AddressToEntryMap map_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_ADDRESS_MAP_H__
diff --git a/src/processor/address_map_unittest.cc b/src/processor/address_map_unittest.cc
new file mode 100644
index 0000000..7c85f5e
--- /dev/null
+++ b/src/processor/address_map_unittest.cc
@@ -0,0 +1,196 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// address_map_unittest.cc: Unit tests for AddressMap.
+//
+// Author: Mark Mentovai
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "processor/address_map-inl.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+#define ASSERT_TRUE(condition) \
+  if (!(condition)) { \
+    fprintf(stderr, "FAIL: %s @ %s:%d\n", #condition, __FILE__, __LINE__); \
+    return false; \
+  }
+
+#define ASSERT_FALSE(condition) ASSERT_TRUE(!(condition))
+
+#define ASSERT_EQ(e1, e2) ASSERT_TRUE((e1) == (e2))
+
+namespace {
+
+using google_breakpad::AddressMap;
+using google_breakpad::linked_ptr;
+
+// A CountedObject holds an int.  A global (not thread safe!) count of
+// allocated CountedObjects is maintained to help test memory management.
+class CountedObject {
+ public:
+  explicit CountedObject(int id) : id_(id) { ++count_; }
+  ~CountedObject() { --count_; }
+
+  static int count() { return count_; }
+  int id() const { return id_; }
+
+ private:
+  static int count_;
+  int id_;
+};
+
+int CountedObject::count_;
+
+typedef int AddressType;
+typedef AddressMap< AddressType, linked_ptr<CountedObject> > TestMap;
+
+static bool DoAddressMapTest() {
+  ASSERT_EQ(CountedObject::count(), 0);
+
+  TestMap test_map;
+  linked_ptr<CountedObject> entry;
+  AddressType address;
+
+  // Check that a new map is truly empty.
+  ASSERT_FALSE(test_map.Retrieve(0, &entry, &address));
+  ASSERT_FALSE(test_map.Retrieve(INT_MIN, &entry, &address));
+  ASSERT_FALSE(test_map.Retrieve(INT_MAX, &entry, &address));
+
+  // Check that Clear clears the map without leaking.
+  ASSERT_EQ(CountedObject::count(), 0);
+  ASSERT_TRUE(test_map.Store(1,
+      linked_ptr<CountedObject>(new CountedObject(0))));
+  ASSERT_TRUE(test_map.Retrieve(1, &entry, &address));
+  ASSERT_EQ(CountedObject::count(), 1);
+  test_map.Clear();
+  ASSERT_EQ(CountedObject::count(), 1);  // still holding entry in this scope
+
+  // Check that a cleared map is truly empty.
+  ASSERT_FALSE(test_map.Retrieve(0, &entry, &address));
+  ASSERT_FALSE(test_map.Retrieve(INT_MIN, &entry, &address));
+  ASSERT_FALSE(test_map.Retrieve(INT_MAX, &entry, &address));
+
+  // Check a single-element map.
+  ASSERT_TRUE(test_map.Store(10,
+      linked_ptr<CountedObject>(new CountedObject(1))));
+  ASSERT_FALSE(test_map.Retrieve(9, &entry, &address));
+  ASSERT_TRUE(test_map.Retrieve(10, &entry, &address));
+  ASSERT_EQ(CountedObject::count(), 1);
+  ASSERT_EQ(entry->id(), 1);
+  ASSERT_EQ(address, 10);
+  ASSERT_TRUE(test_map.Retrieve(11, &entry, &address));
+  ASSERT_TRUE(test_map.Retrieve(11, &entry, NULL));     // NULL ok here
+
+  // Add some more elements.
+  ASSERT_TRUE(test_map.Store(5,
+      linked_ptr<CountedObject>(new CountedObject(2))));
+  ASSERT_EQ(CountedObject::count(), 2);
+  ASSERT_TRUE(test_map.Store(20,
+      linked_ptr<CountedObject>(new CountedObject(3))));
+  ASSERT_TRUE(test_map.Store(15,
+      linked_ptr<CountedObject>(new CountedObject(4))));
+  ASSERT_FALSE(test_map.Store(10,
+      linked_ptr<CountedObject>(new CountedObject(5))));  // already in map
+  ASSERT_TRUE(test_map.Store(16,
+      linked_ptr<CountedObject>(new CountedObject(6))));
+  ASSERT_TRUE(test_map.Store(14,
+      linked_ptr<CountedObject>(new CountedObject(7))));
+
+  // Nothing was stored with a key under 5.  Don't use ASSERT inside loops
+  // because it won't show exactly which key/entry/address failed.
+  for (AddressType key = 0; key < 5; ++key) {
+    if (test_map.Retrieve(key, &entry, &address)) {
+      fprintf(stderr,
+              "FAIL: retrieve %d expected false observed true @ %s:%d\n",
+              key, __FILE__, __LINE__);
+      return false;
+    }
+  }
+
+  // Check everything that was stored.
+  const int id_verify[] = { 0, 0, 0, 0, 0,    // unused
+                            2, 2, 2, 2, 2,    // 5 - 9
+                            1, 1, 1, 1, 7,    // 10 - 14
+                            4, 6, 6, 6, 6,    // 15 - 19
+                            3, 3, 3, 3, 3,    // 20 - 24
+                            3, 3, 3, 3, 3 };  // 25 - 29
+  const AddressType address_verify[] = {  0,  0,  0,  0,  0,    // unused
+                                          5,  5,  5,  5,  5,    // 5 - 9
+                                         10, 10, 10, 10, 14,    // 10 - 14
+                                         15, 16, 16, 16, 16,    // 15 - 19
+                                         20, 20, 20, 20, 20,    // 20 - 24
+                                         20, 20, 20, 20, 20 };  // 25 - 29
+
+  for (AddressType key = 5; key < 30; ++key) {
+    if (!test_map.Retrieve(key, &entry, &address)) {
+      fprintf(stderr,
+              "FAIL: retrieve %d expected true observed false @ %s:%d\n",
+              key, __FILE__, __LINE__);
+      return false;
+    }
+    if (entry->id() != id_verify[key]) {
+      fprintf(stderr,
+              "FAIL: retrieve %d expected entry %d observed %d @ %s:%d\n",
+              key, id_verify[key], entry->id(), __FILE__, __LINE__);
+      return false;
+    }
+    if (address != address_verify[key]) {
+      fprintf(stderr,
+              "FAIL: retrieve %d expected address %d observed %d @ %s:%d\n",
+              key, address_verify[key], address, __FILE__, __LINE__);
+      return false;
+    }
+  }
+
+  // The stored objects should still be in the map.
+  ASSERT_EQ(CountedObject::count(), 6);
+
+  return true;
+}
+
+static bool RunTests() {
+  if (!DoAddressMapTest())
+    return false;
+
+  // Leak check.
+  ASSERT_EQ(CountedObject::count(), 0);
+
+  return true;
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/processor/basic_code_module.h b/src/processor/basic_code_module.h
new file mode 100644
index 0000000..7527289
--- /dev/null
+++ b/src/processor/basic_code_module.h
@@ -0,0 +1,121 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// basic_code_module.h: Carries information about code modules that are loaded
+// into a process.
+//
+// This is a basic concrete implementation of CodeModule.  It cannot be
+// instantiated directly, only based on other objects that implement
+// the CodeModule interface.  It exists to provide a CodeModule implementation
+// a place to store information when the life of the original object (such as
+// a MinidumpModule) cannot be guaranteed.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_BASIC_CODE_MODULE_H__
+#define PROCESSOR_BASIC_CODE_MODULE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/code_module.h"
+
+namespace google_breakpad {
+
+class BasicCodeModule : public CodeModule {
+ public:
+  // Creates a new BasicCodeModule given any existing CodeModule
+  // implementation.  This is useful to make a copy of the data relevant to
+  // the CodeModule interface without requiring all of the resources that
+  // other CodeModule implementations may require.
+  explicit BasicCodeModule(const CodeModule *that)
+      : base_address_(that->base_address()),
+        size_(that->size()),
+        shrink_down_delta_(that->shrink_down_delta()),
+        code_file_(that->code_file()),
+        code_identifier_(that->code_identifier()),
+        debug_file_(that->debug_file()),
+        debug_identifier_(that->debug_identifier()),
+        version_(that->version()),
+        is_unloaded_(that->is_unloaded()) {}
+
+  BasicCodeModule(uint64_t base_address, uint64_t size,
+                  const string& code_file,
+                  const string& code_identifier,
+                  const string& debug_file,
+                  const string& debug_identifier,
+                  const string& version,
+                  const bool is_unloaded = false)
+      : base_address_(base_address),
+        size_(size),
+        shrink_down_delta_(0),
+        code_file_(code_file),
+        code_identifier_(code_identifier),
+        debug_file_(debug_file),
+        debug_identifier_(debug_identifier),
+        version_(version),
+        is_unloaded_(is_unloaded)
+    {}
+  virtual ~BasicCodeModule() {}
+
+  // See code_module.h for descriptions of these methods and the associated
+  // members.
+  virtual uint64_t base_address() const { return base_address_; }
+  virtual uint64_t size() const { return size_; }
+  virtual uint64_t shrink_down_delta() const { return shrink_down_delta_; }
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) {
+    shrink_down_delta_ = shrink_down_delta;
+  }
+  virtual string code_file() const { return code_file_; }
+  virtual string code_identifier() const { return code_identifier_; }
+  virtual string debug_file() const { return debug_file_; }
+  virtual string debug_identifier() const { return debug_identifier_; }
+  virtual string version() const { return version_; }
+  virtual CodeModule* Copy() const { return new BasicCodeModule(this); }
+  virtual bool is_unloaded() const { return is_unloaded_; }
+
+ private:
+  uint64_t base_address_;
+  uint64_t size_;
+  uint64_t shrink_down_delta_;
+  string code_file_;
+  string code_identifier_;
+  string debug_file_;
+  string debug_identifier_;
+  string version_;
+  bool is_unloaded_;
+
+  // Disallow copy constructor and assignment operator.
+  BasicCodeModule(const BasicCodeModule& that);
+  void operator=(const BasicCodeModule& that);
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_BASIC_CODE_MODULE_H__
diff --git a/src/processor/basic_code_modules.cc b/src/processor/basic_code_modules.cc
new file mode 100644
index 0000000..f71aeb7
--- /dev/null
+++ b/src/processor/basic_code_modules.cc
@@ -0,0 +1,152 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// basic_code_modules.cc: Contains all of the CodeModule objects that
+// were loaded into a single process.
+//
+// See basic_code_modules.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "processor/basic_code_modules.h"
+
+#include <assert.h>
+
+#include <vector>
+
+#include "google_breakpad/processor/code_module.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+#include "processor/range_map-inl.h"
+
+namespace google_breakpad {
+
+using std::vector;
+
+BasicCodeModules::BasicCodeModules(const CodeModules* that,
+                                   MergeRangeStrategy strategy)
+    : main_address_(0), map_() {
+  BPLOG_IF(ERROR, !that) << "BasicCodeModules::BasicCodeModules requires "
+                            "|that|";
+  assert(that);
+
+  map_.SetMergeStrategy(strategy);
+
+  const CodeModule *main_module = that->GetMainModule();
+  if (main_module)
+    main_address_ = main_module->base_address();
+
+  unsigned int count = that->module_count();
+  for (unsigned int i = 0; i < count; ++i) {
+    // Make a copy of the module and insert it into the map.  Use
+    // GetModuleAtIndex because ordering is unimportant when slurping the
+    // entire list, and GetModuleAtIndex may be faster than
+    // GetModuleAtSequence.
+    linked_ptr<const CodeModule> module(that->GetModuleAtIndex(i)->Copy());
+    if (!map_.StoreRange(module->base_address(), module->size(), module)) {
+      BPLOG(ERROR) << "Module " << module->code_file()
+                   << " could not be stored";
+    }
+  }
+
+  // Report modules with shrunk ranges.
+  for (unsigned int i = 0; i < count; ++i) {
+    linked_ptr<const CodeModule> module(that->GetModuleAtIndex(i)->Copy());
+    uint64_t delta = 0;
+    if (map_.RetrieveRange(module->base_address() + module->size() - 1,
+                           &module, NULL /* base */, &delta, NULL /* size */) &&
+        delta > 0) {
+      BPLOG(INFO) << "The range for module " << module->code_file()
+                  << " was shrunk down by " << HexString(delta) << " bytes.";
+      linked_ptr<CodeModule> shrunk_range_module(module->Copy());
+      shrunk_range_module->SetShrinkDownDelta(delta);
+      shrunk_range_modules_.push_back(shrunk_range_module);
+    }
+  }
+
+  // TODO(ivanpe): Report modules with conflicting ranges.  The list of such
+  // modules should be copied from |that|.
+}
+
+BasicCodeModules::BasicCodeModules() : main_address_(0), map_() { }
+
+BasicCodeModules::~BasicCodeModules() {
+}
+
+unsigned int BasicCodeModules::module_count() const {
+  return map_.GetCount();
+}
+
+const CodeModule* BasicCodeModules::GetModuleForAddress(
+    uint64_t address) const {
+  linked_ptr<const CodeModule> module;
+  if (!map_.RetrieveRange(address, &module, NULL /* base */, NULL /* delta */,
+                          NULL /* size */)) {
+    BPLOG(INFO) << "No module at " << HexString(address);
+    return NULL;
+  }
+
+  return module.get();
+}
+
+const CodeModule* BasicCodeModules::GetMainModule() const {
+  return GetModuleForAddress(main_address_);
+}
+
+const CodeModule* BasicCodeModules::GetModuleAtSequence(
+    unsigned int sequence) const {
+  linked_ptr<const CodeModule> module;
+  if (!map_.RetrieveRangeAtIndex(sequence, &module, NULL /* base */,
+                                 NULL /* delta */, NULL /* size */)) {
+    BPLOG(ERROR) << "RetrieveRangeAtIndex failed for sequence " << sequence;
+    return NULL;
+  }
+
+  return module.get();
+}
+
+const CodeModule* BasicCodeModules::GetModuleAtIndex(
+    unsigned int index) const {
+  // This class stores everything in a RangeMap, without any more-efficient
+  // way to walk the list of CodeModule objects.  Implement GetModuleAtIndex
+  // using GetModuleAtSequence, which meets all of the requirements, and
+  // in addition, guarantees ordering.
+  return GetModuleAtSequence(index);
+}
+
+const CodeModules* BasicCodeModules::Copy() const {
+  return new BasicCodeModules(this, map_.GetMergeStrategy());
+}
+
+vector<linked_ptr<const CodeModule> >
+BasicCodeModules::GetShrunkRangeModules() const {
+  return shrunk_range_modules_;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/basic_code_modules.h b/src/processor/basic_code_modules.h
new file mode 100644
index 0000000..8c26abb
--- /dev/null
+++ b/src/processor/basic_code_modules.h
@@ -0,0 +1,97 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// basic_code_modules.h: Contains all of the CodeModule objects that
+// were loaded into a single process.
+//
+// This is a basic concrete implementation of CodeModules.  It cannot be
+// instantiated directly, only based on other objects that implement
+// the CodeModules interface.  It exists to provide a CodeModules
+// implementation a place to store information when the life of the original
+// object (such as a MinidumpModuleList) cannot be guaranteed.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_BASIC_CODE_MODULES_H__
+#define PROCESSOR_BASIC_CODE_MODULES_H__
+
+#include <stddef.h>
+
+#include <vector>
+
+#include "google_breakpad/processor/code_modules.h"
+#include "processor/linked_ptr.h"
+#include "processor/range_map.h"
+
+namespace google_breakpad {
+
+class BasicCodeModules : public CodeModules {
+ public:
+  // Creates a new BasicCodeModules object given any existing CodeModules
+  // implementation.  This is useful to make a copy of the data relevant to
+  // the CodeModules and CodeModule interfaces without requiring all of the
+  // resources that other implementations may require.  A copy will be
+  // made of each contained CodeModule using CodeModule::Copy.
+  BasicCodeModules(const CodeModules *that, MergeRangeStrategy strategy);
+
+  virtual ~BasicCodeModules();
+
+  // See code_modules.h for descriptions of these methods.
+  virtual unsigned int module_count() const;
+  virtual const CodeModule* GetModuleForAddress(uint64_t address) const;
+  virtual const CodeModule* GetMainModule() const;
+  virtual const CodeModule* GetModuleAtSequence(unsigned int sequence) const;
+  virtual const CodeModule* GetModuleAtIndex(unsigned int index) const;
+  virtual const CodeModules* Copy() const;
+  virtual std::vector<linked_ptr<const CodeModule> >
+  GetShrunkRangeModules() const;
+
+ protected:
+  BasicCodeModules();
+
+  // The base address of the main module.
+  uint64_t main_address_;
+
+  // The map used to contain each CodeModule, keyed by each CodeModule's
+  // address range.
+  RangeMap<uint64_t, linked_ptr<const CodeModule> > map_;
+
+  // A vector of all CodeModules that were shrunk downs due to
+  // address range conflicts.
+  std::vector<linked_ptr<const CodeModule> > shrunk_range_modules_;
+
+ private:
+  // Disallow copy constructor and assignment operator.
+  BasicCodeModules(const BasicCodeModules& that);
+  void operator=(const BasicCodeModules& that);
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_BASIC_CODE_MODULES_H__
diff --git a/src/processor/basic_source_line_resolver.cc b/src/processor/basic_source_line_resolver.cc
new file mode 100644
index 0000000..64d4001
--- /dev/null
+++ b/src/processor/basic_source_line_resolver.cc
@@ -0,0 +1,657 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// basic_source_line_resolver.cc: BasicSourceLineResolver implementation.
+//
+// See basic_source_line_resolver.h and basic_source_line_resolver_types.h
+// for documentation.
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <limits>
+#include <map>
+#include <utility>
+#include <vector>
+
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "processor/basic_source_line_resolver_types.h"
+#include "processor/module_factory.h"
+
+#include "processor/tokenize.h"
+
+using std::map;
+using std::vector;
+using std::make_pair;
+
+namespace google_breakpad {
+
+#ifdef _WIN32
+#ifdef _MSC_VER
+#define strtok_r strtok_s
+#endif
+#define strtoull _strtoui64
+#endif
+
+namespace {
+
+// Utility function to tokenize given the presence of an optional initial
+// field. In this case, optional_field is the expected string for the optional
+// field, and max_tokens is the maximum number of tokens including the optional
+// field. Refer to the documentation for Tokenize for descriptions of the other
+// arguments.
+bool TokenizeWithOptionalField(char* line,
+                               const char* optional_field,
+                               const char* separators,
+                               int max_tokens,
+                               vector<char*>* tokens) {
+  // First tokenize assuming the optional field is not present.  If we then see
+  // the optional field, additionally tokenize the last token into two tokens.
+  if (!Tokenize(line, separators, max_tokens - 1, tokens)) {
+    return false;
+  }
+
+  if (strcmp(tokens->front(), optional_field) == 0) {
+    // The optional field is present. Split the last token in two to recover the
+    // field prior to the last.
+    vector<char*> last_tokens;
+    if (!Tokenize(tokens->back(), separators, 2, &last_tokens)) {
+      return false;
+    }
+    // Replace the previous last token with the two new tokens.
+    tokens->pop_back();
+    tokens->push_back(last_tokens[0]);
+    tokens->push_back(last_tokens[1]);
+  }
+
+  return true;
+}
+
+}  // namespace
+
+static const char* kWhitespace = " \r\n";
+static const int kMaxErrorsPrinted = 5;
+static const int kMaxErrorsBeforeBailing = 100;
+
+BasicSourceLineResolver::BasicSourceLineResolver() :
+    SourceLineResolverBase(new BasicModuleFactory) { }
+
+// static
+void BasicSourceLineResolver::Module::LogParseError(
+   const string& message,
+   int line_number,
+   int* num_errors) {
+  if (++(*num_errors) <= kMaxErrorsPrinted) {
+    if (line_number > 0) {
+      BPLOG(ERROR) << "Line " << line_number << ": " << message;
+    } else {
+      BPLOG(ERROR) << message;
+    }
+  }
+}
+
+bool BasicSourceLineResolver::Module::LoadMapFromMemory(
+    char* memory_buffer,
+    size_t memory_buffer_size) {
+  linked_ptr<Function> cur_func;
+  int line_number = 0;
+  int num_errors = 0;
+  char* save_ptr;
+
+  // If the length is 0, we can still pretend we have a symbol file. This is
+  // for scenarios that want to test symbol lookup, but don't necessarily care
+  // if certain modules do not have any information, like system libraries.
+  if (memory_buffer_size == 0) {
+    return true;
+  }
+
+  // Make sure the last character is null terminator.
+  size_t last_null_terminator = memory_buffer_size - 1;
+  if (memory_buffer[last_null_terminator] != '\0') {
+    memory_buffer[last_null_terminator] = '\0';
+  }
+
+  // Skip any null terminators at the end of the memory buffer, and make sure
+  // there are no other null terminators in the middle of the memory buffer.
+  bool has_null_terminator_in_the_middle = false;
+  while (last_null_terminator > 0 &&
+         memory_buffer[last_null_terminator - 1] == '\0') {
+    last_null_terminator--;
+  }
+  for (size_t i = 0; i < last_null_terminator; i++) {
+    if (memory_buffer[i] == '\0') {
+      memory_buffer[i] = '_';
+      has_null_terminator_in_the_middle = true;
+    }
+  }
+  if (has_null_terminator_in_the_middle) {
+    LogParseError(
+       "Null terminator is not expected in the middle of the symbol data",
+       line_number,
+       &num_errors);
+  }
+
+  char* buffer;
+  buffer = strtok_r(memory_buffer, "\r\n", &save_ptr);
+
+  while (buffer != NULL) {
+    ++line_number;
+
+    if (strncmp(buffer, "FILE ", 5) == 0) {
+      if (!ParseFile(buffer)) {
+        LogParseError("ParseFile on buffer failed", line_number, &num_errors);
+      }
+    } else if (strncmp(buffer, "STACK ", 6) == 0) {
+      if (!ParseStackInfo(buffer)) {
+        LogParseError("ParseStackInfo failed", line_number, &num_errors);
+      }
+    } else if (strncmp(buffer, "FUNC ", 5) == 0) {
+      cur_func.reset(ParseFunction(buffer));
+      if (!cur_func.get()) {
+        LogParseError("ParseFunction failed", line_number, &num_errors);
+      } else {
+        // StoreRange will fail if the function has an invalid address or size.
+        // We'll silently ignore this, the function and any corresponding lines
+        // will be destroyed when cur_func is released.
+        functions_.StoreRange(cur_func->address, cur_func->size, cur_func);
+      }
+    } else if (strncmp(buffer, "PUBLIC ", 7) == 0) {
+      // Clear cur_func: public symbols don't contain line number information.
+      cur_func.reset();
+
+      if (!ParsePublicSymbol(buffer)) {
+        LogParseError("ParsePublicSymbol failed", line_number, &num_errors);
+      }
+    } else if (strncmp(buffer, "MODULE ", 7) == 0) {
+      // Ignore these.  They're not of any use to BasicSourceLineResolver,
+      // which is fed modules by a SymbolSupplier.  These lines are present to
+      // aid other tools in properly placing symbol files so that they can
+      // be accessed by a SymbolSupplier.
+      //
+      // MODULE <guid> <age> <filename>
+    } else if (strncmp(buffer, "INFO ", 5) == 0) {
+      // Ignore these as well, they're similarly just for housekeeping.
+      //
+      // INFO CODE_ID <code id> <filename>
+    } else {
+      if (!cur_func.get()) {
+        LogParseError("Found source line data without a function",
+                       line_number, &num_errors);
+      } else {
+        Line* line = ParseLine(buffer);
+        if (!line) {
+          LogParseError("ParseLine failed", line_number, &num_errors);
+        } else {
+          cur_func->lines.StoreRange(line->address, line->size,
+                                     linked_ptr<Line>(line));
+        }
+      }
+    }
+    if (num_errors > kMaxErrorsBeforeBailing) {
+      break;
+    }
+    buffer = strtok_r(NULL, "\r\n", &save_ptr);
+  }
+  is_corrupt_ = num_errors > 0;
+  return true;
+}
+
+void BasicSourceLineResolver::Module::LookupAddress(StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+
+  // First, look for a FUNC record that covers address. Use
+  // RetrieveNearestRange instead of RetrieveRange so that, if there
+  // is no such function, we can use the next function to bound the
+  // extent of the PUBLIC symbol we find, below. This does mean we
+  // need to check that address indeed falls within the function we
+  // find; do the range comparison in an overflow-friendly way.
+  linked_ptr<Function> func;
+  linked_ptr<PublicSymbol> public_symbol;
+  MemAddr function_base;
+  MemAddr function_size;
+  MemAddr public_address;
+  if (functions_.RetrieveNearestRange(address, &func, &function_base,
+                                      NULL /* delta */, &function_size) &&
+      address >= function_base && address - function_base < function_size) {
+    frame->function_name = func->name;
+    frame->function_base = frame->module->base_address() + function_base;
+
+    linked_ptr<Line> line;
+    MemAddr line_base;
+    if (func->lines.RetrieveRange(address, &line, &line_base, NULL /* delta */,
+                                  NULL /* size */)) {
+      FileMap::const_iterator it = files_.find(line->source_file_id);
+      if (it != files_.end()) {
+        frame->source_file_name = files_.find(line->source_file_id)->second;
+      }
+      frame->source_line = line->line;
+      frame->source_line_base = frame->module->base_address() + line_base;
+    }
+  } else if (public_symbols_.Retrieve(address,
+                                      &public_symbol, &public_address) &&
+             (!func.get() || public_address > function_base)) {
+    frame->function_name = public_symbol->name;
+    frame->function_base = frame->module->base_address() + public_address;
+  }
+}
+
+WindowsFrameInfo* BasicSourceLineResolver::Module::FindWindowsFrameInfo(
+    const StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+  scoped_ptr<WindowsFrameInfo> result(new WindowsFrameInfo());
+
+  // We only know about WindowsFrameInfo::STACK_INFO_FRAME_DATA and
+  // WindowsFrameInfo::STACK_INFO_FPO. Prefer them in this order.
+  // WindowsFrameInfo::STACK_INFO_FRAME_DATA is the newer type that
+  // includes its own program string.
+  // WindowsFrameInfo::STACK_INFO_FPO is the older type
+  // corresponding to the FPO_DATA struct. See stackwalker_x86.cc.
+  linked_ptr<WindowsFrameInfo> frame_info;
+  if ((windows_frame_info_[WindowsFrameInfo::STACK_INFO_FRAME_DATA]
+       .RetrieveRange(address, &frame_info))
+      || (windows_frame_info_[WindowsFrameInfo::STACK_INFO_FPO]
+          .RetrieveRange(address, &frame_info))) {
+    result->CopyFrom(*frame_info.get());
+    return result.release();
+  }
+
+  // Even without a relevant STACK line, many functions contain
+  // information about how much space their parameters consume on the
+  // stack. Use RetrieveNearestRange instead of RetrieveRange, so that
+  // we can use the function to bound the extent of the PUBLIC symbol,
+  // below. However, this does mean we need to check that ADDRESS
+  // falls within the retrieved function's range; do the range
+  // comparison in an overflow-friendly way.
+  linked_ptr<Function> function;
+  MemAddr function_base, function_size;
+  if (functions_.RetrieveNearestRange(address, &function, &function_base,
+                                      NULL /* delta */, &function_size) &&
+      address >= function_base && address - function_base < function_size) {
+    result->parameter_size = function->parameter_size;
+    result->valid |= WindowsFrameInfo::VALID_PARAMETER_SIZE;
+    return result.release();
+  }
+
+  // PUBLIC symbols might have a parameter size. Use the function we
+  // found above to limit the range the public symbol covers.
+  linked_ptr<PublicSymbol> public_symbol;
+  MemAddr public_address;
+  if (public_symbols_.Retrieve(address, &public_symbol, &public_address) &&
+      (!function.get() || public_address > function_base)) {
+    result->parameter_size = public_symbol->parameter_size;
+  }
+
+  return NULL;
+}
+
+CFIFrameInfo* BasicSourceLineResolver::Module::FindCFIFrameInfo(
+    const StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+  MemAddr initial_base, initial_size;
+  string initial_rules;
+
+  // Find the initial rule whose range covers this address. That
+  // provides an initial set of register recovery rules. Then, walk
+  // forward from the initial rule's starting address to frame's
+  // instruction address, applying delta rules.
+  if (!cfi_initial_rules_.RetrieveRange(address, &initial_rules, &initial_base,
+                                        NULL /* delta */, &initial_size)) {
+    return NULL;
+  }
+
+  // Create a frame info structure, and populate it with the rules from
+  // the STACK CFI INIT record.
+  scoped_ptr<CFIFrameInfo> rules(new CFIFrameInfo());
+  if (!ParseCFIRuleSet(initial_rules, rules.get()))
+    return NULL;
+
+  // Find the first delta rule that falls within the initial rule's range.
+  map<MemAddr, string>::const_iterator delta =
+    cfi_delta_rules_.lower_bound(initial_base);
+
+  // Apply delta rules up to and including the frame's address.
+  while (delta != cfi_delta_rules_.end() && delta->first <= address) {
+    ParseCFIRuleSet(delta->second, rules.get());
+    delta++;
+  }
+
+  return rules.release();
+}
+
+bool BasicSourceLineResolver::Module::ParseFile(char* file_line) {
+  long index;
+  char* filename;
+  if (SymbolParseHelper::ParseFile(file_line, &index, &filename)) {
+    files_.insert(make_pair(index, string(filename)));
+    return true;
+  }
+  return false;
+}
+
+BasicSourceLineResolver::Function*
+BasicSourceLineResolver::Module::ParseFunction(char* function_line) {
+  bool is_multiple;
+  uint64_t address;
+  uint64_t size;
+  long stack_param_size;
+  char* name;
+  if (SymbolParseHelper::ParseFunction(function_line, &is_multiple, &address,
+                                       &size, &stack_param_size, &name)) {
+    return new Function(name, address, size, stack_param_size, is_multiple);
+  }
+  return NULL;
+}
+
+BasicSourceLineResolver::Line* BasicSourceLineResolver::Module::ParseLine(
+    char* line_line) {
+  uint64_t address;
+  uint64_t size;
+  long line_number;
+  long source_file;
+
+  if (SymbolParseHelper::ParseLine(line_line, &address, &size, &line_number,
+                                   &source_file)) {
+    return new Line(address, size, source_file, line_number);
+  }
+  return NULL;
+}
+
+bool BasicSourceLineResolver::Module::ParsePublicSymbol(char* public_line) {
+  bool is_multiple;
+  uint64_t address;
+  long stack_param_size;
+  char* name;
+
+  if (SymbolParseHelper::ParsePublicSymbol(public_line, &is_multiple, &address,
+                                           &stack_param_size, &name)) {
+    // A few public symbols show up with an address of 0.  This has been seen
+    // in the dumped output of ntdll.pdb for symbols such as _CIlog, _CIpow,
+    // RtlDescribeChunkLZNT1, and RtlReserveChunkLZNT1.  They would conflict
+    // with one another if they were allowed into the public_symbols_ map,
+    // but since the address is obviously invalid, gracefully accept them
+    // as input without putting them into the map.
+    if (address == 0) {
+      return true;
+    }
+
+    linked_ptr<PublicSymbol> symbol(new PublicSymbol(name, address,
+                                                     stack_param_size,
+                                                     is_multiple));
+    return public_symbols_.Store(address, symbol);
+  }
+  return false;
+}
+
+bool BasicSourceLineResolver::Module::ParseStackInfo(char* stack_info_line) {
+  // Skip "STACK " prefix.
+  stack_info_line += 6;
+
+  // Find the token indicating what sort of stack frame walking
+  // information this is.
+  while (*stack_info_line == ' ')
+    stack_info_line++;
+  const char* platform = stack_info_line;
+  while (!strchr(kWhitespace, *stack_info_line))
+    stack_info_line++;
+  *stack_info_line++ = '\0';
+
+  // MSVC stack frame info.
+  if (strcmp(platform, "WIN") == 0) {
+    int type = 0;
+    uint64_t rva, code_size;
+    linked_ptr<WindowsFrameInfo>
+      stack_frame_info(WindowsFrameInfo::ParseFromString(stack_info_line,
+                                                         type,
+                                                         rva,
+                                                         code_size));
+    if (stack_frame_info == NULL)
+      return false;
+
+    // TODO(mmentovai): I wanted to use StoreRange's return value as this
+    // method's return value, but MSVC infrequently outputs stack info that
+    // violates the containment rules.  This happens with a section of code
+    // in strncpy_s in test_app.cc (testdata/minidump2).  There, problem looks
+    // like this:
+    //   STACK WIN 4 4242 1a a 0 ...  (STACK WIN 4 base size prolog 0 ...)
+    //   STACK WIN 4 4243 2e 9 0 ...
+    // ContainedRangeMap treats these two blocks as conflicting.  In reality,
+    // when the prolog lengths are taken into account, the actual code of
+    // these blocks doesn't conflict.  However, we can't take the prolog lengths
+    // into account directly here because we'd wind up with a different set
+    // of range conflicts when MSVC outputs stack info like this:
+    //   STACK WIN 4 1040 73 33 0 ...
+    //   STACK WIN 4 105a 59 19 0 ...
+    // because in both of these entries, the beginning of the code after the
+    // prolog is at 0x1073, and the last byte of contained code is at 0x10b2.
+    // Perhaps we could get away with storing ranges by rva + prolog_size
+    // if ContainedRangeMap were modified to allow replacement of
+    // already-stored values.
+
+    windows_frame_info_[type].StoreRange(rva, code_size, stack_frame_info);
+    return true;
+  } else if (strcmp(platform, "CFI") == 0) {
+    // DWARF CFI stack frame info
+    return ParseCFIFrameInfo(stack_info_line);
+  } else {
+    // Something unrecognized.
+    return false;
+  }
+}
+
+bool BasicSourceLineResolver::Module::ParseCFIFrameInfo(
+    char* stack_info_line) {
+  char* cursor;
+
+  // Is this an INIT record or a delta record?
+  char* init_or_address = strtok_r(stack_info_line, " \r\n", &cursor);
+  if (!init_or_address)
+    return false;
+
+  if (strcmp(init_or_address, "INIT") == 0) {
+    // This record has the form "STACK INIT <address> <size> <rules...>".
+    char* address_field = strtok_r(NULL, " \r\n", &cursor);
+    if (!address_field) return false;
+
+    char* size_field = strtok_r(NULL, " \r\n", &cursor);
+    if (!size_field) return false;
+
+    char* initial_rules = strtok_r(NULL, "\r\n", &cursor);
+    if (!initial_rules) return false;
+
+    MemAddr address = strtoul(address_field, NULL, 16);
+    MemAddr size    = strtoul(size_field,    NULL, 16);
+    cfi_initial_rules_.StoreRange(address, size, initial_rules);
+    return true;
+  }
+
+  // This record has the form "STACK <address> <rules...>".
+  char* address_field = init_or_address;
+  char* delta_rules = strtok_r(NULL, "\r\n", &cursor);
+  if (!delta_rules) return false;
+  MemAddr address = strtoul(address_field, NULL, 16);
+  cfi_delta_rules_[address] = delta_rules;
+  return true;
+}
+
+// static
+bool SymbolParseHelper::ParseFile(char* file_line, long* index,
+                                  char** filename) {
+  // FILE <id> <filename>
+  assert(strncmp(file_line, "FILE ", 5) == 0);
+  file_line += 5;  // skip prefix
+
+  vector<char*> tokens;
+  if (!Tokenize(file_line, kWhitespace, 2, &tokens)) {
+    return false;
+  }
+
+  char* after_number;
+  *index = strtol(tokens[0], &after_number, 10);
+  if (!IsValidAfterNumber(after_number) || *index < 0 ||
+      *index == std::numeric_limits<long>::max()) {
+    return false;
+  }
+
+  *filename = tokens[1];
+  if (!*filename) {
+    return false;
+  }
+
+  return true;
+}
+
+// static
+bool SymbolParseHelper::ParseFunction(char* function_line, bool* is_multiple,
+                                      uint64_t* address, uint64_t* size,
+                                      long* stack_param_size, char** name) {
+  // FUNC [<multiple>] <address> <size> <stack_param_size> <name>
+  assert(strncmp(function_line, "FUNC ", 5) == 0);
+  function_line += 5;  // skip prefix
+
+  vector<char*> tokens;
+  if (!TokenizeWithOptionalField(function_line, "m", kWhitespace, 5, &tokens)) {
+    return false;
+  }
+
+  *is_multiple = strcmp(tokens[0], "m") == 0;
+  int next_token = *is_multiple ? 1 : 0;
+
+  char* after_number;
+  *address = strtoull(tokens[next_token++], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *address == std::numeric_limits<unsigned long long>::max()) {
+    return false;
+  }
+  *size = strtoull(tokens[next_token++], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *size == std::numeric_limits<unsigned long long>::max()) {
+    return false;
+  }
+  *stack_param_size = strtol(tokens[next_token++], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *stack_param_size == std::numeric_limits<long>::max() ||
+      *stack_param_size < 0) {
+    return false;
+  }
+  *name = tokens[next_token++];
+
+  return true;
+}
+
+// static
+bool SymbolParseHelper::ParseLine(char* line_line, uint64_t* address,
+                                  uint64_t* size, long* line_number,
+                                  long* source_file) {
+  // <address> <size> <line number> <source file id>
+  vector<char*> tokens;
+  if (!Tokenize(line_line, kWhitespace, 4, &tokens)) {
+    return false;
+  }
+
+  char* after_number;
+  *address  = strtoull(tokens[0], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *address == std::numeric_limits<unsigned long long>::max()) {
+    return false;
+  }
+  *size = strtoull(tokens[1], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *size == std::numeric_limits<unsigned long long>::max()) {
+    return false;
+  }
+  *line_number = strtol(tokens[2], &after_number, 10);
+  if (!IsValidAfterNumber(after_number) ||
+      *line_number == std::numeric_limits<long>::max()) {
+    return false;
+  }
+  *source_file = strtol(tokens[3], &after_number, 10);
+  if (!IsValidAfterNumber(after_number) || *source_file < 0 ||
+      *source_file == std::numeric_limits<long>::max()) {
+    return false;
+  }
+
+  // Valid line numbers normally start from 1, however there are functions that
+  // are associated with a source file but not associated with any line number
+  // (block helper function) and for such functions the symbol file contains 0
+  // for the line numbers.  Hence, 0 should be treated as a valid line number.
+  // For more information on block helper functions, please, take a look at:
+  // http://clang.llvm.org/docs/Block-ABI-Apple.html
+  if (*line_number < 0) {
+    return false;
+  }
+
+  return true;
+}
+
+// static
+bool SymbolParseHelper::ParsePublicSymbol(char* public_line, bool* is_multiple,
+                                          uint64_t* address,
+                                          long* stack_param_size,
+                                          char** name) {
+  // PUBLIC [<multiple>] <address> <stack_param_size> <name>
+  assert(strncmp(public_line, "PUBLIC ", 7) == 0);
+  public_line += 7;  // skip prefix
+
+  vector<char*> tokens;
+  if (!TokenizeWithOptionalField(public_line, "m", kWhitespace, 4, &tokens)) {
+    return false;
+  }
+
+  *is_multiple = strcmp(tokens[0], "m") == 0;
+  int next_token = *is_multiple ? 1 : 0;
+
+  char* after_number;
+  *address = strtoull(tokens[next_token++], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *address == std::numeric_limits<unsigned long long>::max()) {
+    return false;
+  }
+  *stack_param_size = strtol(tokens[next_token++], &after_number, 16);
+  if (!IsValidAfterNumber(after_number) ||
+      *stack_param_size == std::numeric_limits<long>::max() ||
+      *stack_param_size < 0) {
+    return false;
+  }
+  *name = tokens[next_token++];
+
+  return true;
+}
+
+// static
+bool SymbolParseHelper::IsValidAfterNumber(char* after_number) {
+  if (after_number != NULL && strchr(kWhitespace, *after_number) != NULL) {
+    return true;
+  }
+  return false;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/basic_source_line_resolver_types.h b/src/processor/basic_source_line_resolver_types.h
new file mode 100644
index 0000000..c103040
--- /dev/null
+++ b/src/processor/basic_source_line_resolver_types.h
@@ -0,0 +1,179 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// basic_source_line_types.h: definition of nested classes/structs in
+// BasicSourceLineResolver.  It moves the definitions out of
+// basic_source_line_resolver.cc, so that other classes could have access
+// to these private nested types without including basic_source_line_resolver.cc
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
+#define PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
+
+#include <map>
+#include <string>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "processor/source_line_resolver_base_types.h"
+
+#include "processor/address_map-inl.h"
+#include "processor/range_map-inl.h"
+#include "processor/contained_range_map-inl.h"
+
+#include "processor/linked_ptr.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/windows_frame_info.h"
+
+namespace google_breakpad {
+
+struct
+BasicSourceLineResolver::Function : public SourceLineResolverBase::Function {
+  Function(const string& function_name,
+           MemAddr function_address,
+           MemAddr code_size,
+           int set_parameter_size,
+           bool is_mutiple) : Base(function_name,
+                                   function_address,
+                                   code_size,
+                                   set_parameter_size,
+                                   is_mutiple),
+                              lines() { }
+  RangeMap< MemAddr, linked_ptr<Line> > lines;
+ private:
+  typedef SourceLineResolverBase::Function Base;
+};
+
+
+class BasicSourceLineResolver::Module : public SourceLineResolverBase::Module {
+ public:
+  explicit Module(const string& name) : name_(name), is_corrupt_(false) { }
+  virtual ~Module() { }
+
+  // Loads a map from the given buffer in char* type.
+  // Does NOT have ownership of memory_buffer.
+  // The passed in |memory buffer| is of size |memory_buffer_size|.  If it is
+  // not null terminated, LoadMapFromMemory() will null terminate it by
+  // modifying the passed in buffer.
+  virtual bool LoadMapFromMemory(char* memory_buffer,
+                                 size_t memory_buffer_size);
+
+  // Tells whether the loaded symbol data is corrupt.  Return value is
+  // undefined, if the symbol data hasn't been loaded yet.
+  virtual bool IsCorrupt() const { return is_corrupt_; }
+
+  // Looks up the given relative address, and fills the StackFrame struct
+  // with the result.
+  virtual void LookupAddress(StackFrame* frame) const;
+
+  // If Windows stack walking information is available covering ADDRESS,
+  // return a WindowsFrameInfo structure describing it. If the information
+  // is not available, returns NULL. A NULL return value does not indicate
+  // an error. The caller takes ownership of any returned WindowsFrameInfo
+  // object.
+  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame) const;
+
+  // If CFI stack walking information is available covering ADDRESS,
+  // return a CFIFrameInfo structure describing it. If the information
+  // is not available, return NULL. The caller takes ownership of any
+  // returned CFIFrameInfo object.
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame) const;
+
+ private:
+  // Friend declarations.
+  friend class BasicSourceLineResolver;
+  friend class ModuleComparer;
+  friend class ModuleSerializer;
+
+  typedef std::map<int, string> FileMap;
+
+  // Logs parse errors.  |*num_errors| is increased every time LogParseError is
+  // called.
+  static void LogParseError(
+      const string& message,
+      int line_number,
+      int* num_errors);
+
+  // Parses a file declaration
+  bool ParseFile(char* file_line);
+
+  // Parses a function declaration, returning a new Function object.
+  Function* ParseFunction(char* function_line);
+
+  // Parses a line declaration, returning a new Line object.
+  Line* ParseLine(char* line_line);
+
+  // Parses a PUBLIC symbol declaration, storing it in public_symbols_.
+  // Returns false if an error occurs.
+  bool ParsePublicSymbol(char* public_line);
+
+  // Parses a STACK WIN or STACK CFI frame info declaration, storing
+  // it in the appropriate table.
+  bool ParseStackInfo(char* stack_info_line);
+
+  // Parses a STACK CFI record, storing it in cfi_frame_info_.
+  bool ParseCFIFrameInfo(char* stack_info_line);
+
+  string name_;
+  FileMap files_;
+  RangeMap< MemAddr, linked_ptr<Function> > functions_;
+  AddressMap< MemAddr, linked_ptr<PublicSymbol> > public_symbols_;
+  bool is_corrupt_;
+
+  // Each element in the array is a ContainedRangeMap for a type
+  // listed in WindowsFrameInfoTypes. These are split by type because
+  // there may be overlaps between maps of different types, but some
+  // information is only available as certain types.
+  ContainedRangeMap< MemAddr, linked_ptr<WindowsFrameInfo> >
+    windows_frame_info_[WindowsFrameInfo::STACK_INFO_LAST];
+
+  // DWARF CFI stack walking data. The Module stores the initial rule sets
+  // and rule deltas as strings, just as they appear in the symbol file:
+  // although the file may contain hundreds of thousands of STACK CFI
+  // records, walking a stack will only ever use a few of them, so it's
+  // best to delay parsing a record until it's actually needed.
+
+  // STACK CFI INIT records: for each range, an initial set of register
+  // recovery rules. The RangeMap's itself gives the starting and ending
+  // addresses.
+  RangeMap<MemAddr, string> cfi_initial_rules_;
+
+  // STACK CFI records: at a given address, the changes to the register
+  // recovery rules that take effect at that address. The map key is the
+  // starting address; the ending address is the key of the next entry in
+  // this map, or the end of the range as given by the cfi_initial_rules_
+  // entry (which FindCFIFrameInfo looks up first).
+  std::map<MemAddr, string> cfi_delta_rules_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
diff --git a/src/processor/basic_source_line_resolver_unittest.cc b/src/processor/basic_source_line_resolver_unittest.cc
new file mode 100644
index 0000000..2cb2967
--- /dev/null
+++ b/src/processor/basic_source_line_resolver_unittest.cc
@@ -0,0 +1,744 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+#include "processor/windows_frame_info.h"
+#include "processor/cfi_frame_info.h"
+
+namespace {
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CFIFrameInfo;
+using google_breakpad::CodeModule;
+using google_breakpad::MemoryRegion;
+using google_breakpad::StackFrame;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::linked_ptr;
+using google_breakpad::scoped_ptr;
+using google_breakpad::SymbolParseHelper;
+
+class TestCodeModule : public CodeModule {
+ public:
+  TestCodeModule(string code_file) : code_file_(code_file) {}
+  virtual ~TestCodeModule() {}
+
+  virtual uint64_t base_address() const { return 0; }
+  virtual uint64_t size() const { return 0xb000; }
+  virtual string code_file() const { return code_file_; }
+  virtual string code_identifier() const { return ""; }
+  virtual string debug_file() const { return ""; }
+  virtual string debug_identifier() const { return ""; }
+  virtual string version() const { return ""; }
+  virtual CodeModule* Copy() const {
+    return new TestCodeModule(code_file_);
+  }
+  virtual bool is_unloaded() const { return false; }
+  virtual uint64_t shrink_down_delta() const { return 0; }
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) {}
+
+ private:
+  string code_file_;
+};
+
+// A mock memory region object, for use by the STACK CFI tests.
+class MockMemoryRegion: public MemoryRegion {
+  uint64_t GetBase() const { return 0x10000; }
+  uint32_t GetSize() const { return 0x01000; }
+  bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const {
+    *value = address & 0xff;
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+    *value = address & 0xffff;
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+    switch (address) {
+      case 0x10008: *value = 0x98ecadc3; break; // saved %ebx
+      case 0x1000c: *value = 0x878f7524; break; // saved %esi
+      case 0x10010: *value = 0x6312f9a5; break; // saved %edi
+      case 0x10014: *value = 0x10038;    break; // caller's %ebp
+      case 0x10018: *value = 0xf6438648; break; // return address
+      default: *value = 0xdeadbeef;      break; // junk
+    }
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+    *value = address;
+    return true;
+  }
+  void Print() const {
+    assert(false);
+  }
+};
+
+// Verify that, for every association in ACTUAL, EXPECTED has the same
+// association. (That is, ACTUAL's associations should be a subset of
+// EXPECTED's.) Also verify that ACTUAL has associations for ".ra" and
+// ".cfa".
+static bool VerifyRegisters(
+    const char* file, int line,
+    const CFIFrameInfo::RegisterValueMap<uint32_t>& expected,
+    const CFIFrameInfo::RegisterValueMap<uint32_t>& actual) {
+  CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator a;
+  a = actual.find(".cfa");
+  if (a == actual.end())
+    return false;
+  a = actual.find(".ra");
+  if (a == actual.end())
+    return false;
+  for (a = actual.begin(); a != actual.end(); a++) {
+    CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator e =
+      expected.find(a->first);
+    if (e == expected.end()) {
+      fprintf(stderr, "%s:%d: unexpected register '%s' recovered, value 0x%x\n",
+              file, line, a->first.c_str(), a->second);
+      return false;
+    }
+    if (e->second != a->second) {
+      fprintf(stderr,
+              "%s:%d: register '%s' recovered value was 0x%x, expected 0x%x\n",
+              file, line, a->first.c_str(), a->second, e->second);
+      return false;
+    }
+    // Don't complain if this doesn't recover all registers. Although
+    // the DWARF spec says that unmentioned registers are undefined,
+    // GCC uses omission to mean that they are unchanged.
+  }
+  return true;
+}
+
+
+static bool VerifyEmpty(const StackFrame& frame) {
+  if (frame.function_name.empty() &&
+      frame.source_file_name.empty() &&
+      frame.source_line == 0)
+    return true;
+  return false;
+}
+
+static void ClearSourceLineInfo(StackFrame* frame) {
+  frame->function_name.clear();
+  frame->module = NULL;
+  frame->source_file_name.clear();
+  frame->source_line = 0;
+}
+
+class TestBasicSourceLineResolver : public ::testing::Test {
+public:
+  void SetUp() {
+    testdata_dir = string(getenv("srcdir") ? getenv("srcdir") : ".") +
+                         "/src/processor/testdata";
+  }
+
+  BasicSourceLineResolver resolver;
+  string testdata_dir;
+};
+
+TEST_F(TestBasicSourceLineResolver, TestLoadAndResolve)
+{
+  TestCodeModule module1("module1");
+  ASSERT_TRUE(resolver.LoadModule(&module1, testdata_dir + "/module1.out"));
+  ASSERT_TRUE(resolver.HasModule(&module1));
+  TestCodeModule module2("module2");
+  ASSERT_TRUE(resolver.LoadModule(&module2, testdata_dir + "/module2.out"));
+  ASSERT_TRUE(resolver.HasModule(&module2));
+
+
+  StackFrame frame;
+  scoped_ptr<WindowsFrameInfo> windows_frame_info;
+  scoped_ptr<CFIFrameInfo> cfi_frame_info;
+  frame.instruction = 0x1000;
+  frame.module = NULL;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_FALSE(frame.module);
+  ASSERT_TRUE(frame.function_name.empty());
+  ASSERT_EQ(frame.function_base, 0U);
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  ASSERT_EQ(frame.source_line_base, 0U);
+
+  frame.module = &module1;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_1");
+  ASSERT_TRUE(frame.module);
+  ASSERT_EQ(frame.module->code_file(), "module1");
+  ASSERT_EQ(frame.function_base, 0x1000U);
+  ASSERT_EQ(frame.source_file_name, "file1_1.cc");
+  ASSERT_EQ(frame.source_line, 44);
+  ASSERT_EQ(frame.source_line_base, 0x1000U);
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_EQ(windows_frame_info->program_string,
+            "$eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =");
+
+  ClearSourceLineInfo(&frame);
+  frame.instruction = 0x800;
+  frame.module = &module1;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_TRUE(VerifyEmpty(frame));
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_FALSE(windows_frame_info.get());
+
+  frame.instruction = 0x1280;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_3");
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_UNKNOWN);
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_TRUE(windows_frame_info->program_string.empty());
+
+  frame.instruction = 0x1380;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_4");
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_FALSE(windows_frame_info->program_string.empty());
+
+  frame.instruction = 0x2000;
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_FALSE(windows_frame_info.get());
+
+  // module1 has STACK CFI records covering 3d40..3def;
+  // module2 has STACK CFI records covering 3df0..3e9f;
+  // check that FindCFIFrameInfo doesn't claim to find any outside those ranges.
+  frame.instruction = 0x3d3f;
+  frame.module = &module1;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_FALSE(cfi_frame_info.get());
+
+  frame.instruction = 0x3e9f;
+  frame.module = &module1;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_FALSE(cfi_frame_info.get());
+
+  CFIFrameInfo::RegisterValueMap<uint32_t> current_registers;
+  CFIFrameInfo::RegisterValueMap<uint32_t> caller_registers;
+  CFIFrameInfo::RegisterValueMap<uint32_t> expected_caller_registers;
+  MockMemoryRegion memory;
+
+  // Regardless of which instruction evaluation takes place at, it
+  // should produce the same values for the caller's registers.
+  expected_caller_registers[".cfa"] = 0x1001c;
+  expected_caller_registers[".ra"]  = 0xf6438648;
+  expected_caller_registers["$ebp"] = 0x10038;
+  expected_caller_registers["$ebx"] = 0x98ecadc3;
+  expected_caller_registers["$esi"] = 0x878f7524;
+  expected_caller_registers["$edi"] = 0x6312f9a5;
+
+  frame.instruction = 0x3d40;
+  frame.module = &module1;
+  current_registers.clear();
+  current_registers["$esp"] = 0x10018;
+  current_registers["$ebp"] = 0x10038;
+  current_registers["$ebx"] = 0x98ecadc3;
+  current_registers["$esi"] = 0x878f7524;
+  current_registers["$edi"] = 0x6312f9a5;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  ASSERT_TRUE(VerifyRegisters(__FILE__, __LINE__,
+                              expected_caller_registers, caller_registers));
+
+  frame.instruction = 0x3d41;
+  current_registers["$esp"] = 0x10014;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  ASSERT_TRUE(VerifyRegisters(__FILE__, __LINE__,
+                              expected_caller_registers, caller_registers));
+
+  frame.instruction = 0x3d43;
+  current_registers["$ebp"] = 0x10014;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d54;
+  current_registers["$ebx"] = 0x6864f054U;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d5a;
+  current_registers["$esi"] = 0x6285f79aU;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d84;
+  current_registers["$edi"] = 0x64061449U;
+  cfi_frame_info.reset(resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x2900;
+  frame.module = &module1;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, string("PublicSymbol"));
+
+  frame.instruction = 0x4000;
+  frame.module = &module1;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, string("LargeFunction"));
+
+  frame.instruction = 0x2181;
+  frame.module = &module2;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function2_2");
+  ASSERT_EQ(frame.function_base, 0x2170U);
+  ASSERT_TRUE(frame.module);
+  ASSERT_EQ(frame.module->code_file(), "module2");
+  ASSERT_EQ(frame.source_file_name, "file2_2.cc");
+  ASSERT_EQ(frame.source_line, 21);
+  ASSERT_EQ(frame.source_line_base, 0x2180U);
+  windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
+  ASSERT_EQ(windows_frame_info->prolog_size, 1U);
+
+  frame.instruction = 0x216f;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Public2_1");
+
+  ClearSourceLineInfo(&frame);
+  frame.instruction = 0x219f;
+  frame.module = &module2;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_TRUE(frame.function_name.empty());
+
+  frame.instruction = 0x21a0;
+  frame.module = &module2;
+  resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Public2_2");
+}
+
+TEST_F(TestBasicSourceLineResolver, TestInvalidLoads)
+{
+  TestCodeModule module3("module3");
+  ASSERT_TRUE(resolver.LoadModule(&module3,
+                                   testdata_dir + "/module3_bad.out"));
+  ASSERT_TRUE(resolver.HasModule(&module3));
+  ASSERT_TRUE(resolver.IsModuleCorrupt(&module3));
+  TestCodeModule module4("module4");
+  ASSERT_TRUE(resolver.LoadModule(&module4,
+                                   testdata_dir + "/module4_bad.out"));
+  ASSERT_TRUE(resolver.HasModule(&module4));
+  ASSERT_TRUE(resolver.IsModuleCorrupt(&module4));
+  TestCodeModule module5("module5");
+  ASSERT_FALSE(resolver.LoadModule(&module5,
+                                   testdata_dir + "/invalid-filename"));
+  ASSERT_FALSE(resolver.HasModule(&module5));
+  TestCodeModule invalidmodule("invalid-module");
+  ASSERT_FALSE(resolver.HasModule(&invalidmodule));
+}
+
+TEST_F(TestBasicSourceLineResolver, TestUnload)
+{
+  TestCodeModule module1("module1");
+  ASSERT_FALSE(resolver.HasModule(&module1));
+  ASSERT_TRUE(resolver.LoadModule(&module1, testdata_dir + "/module1.out"));
+  ASSERT_TRUE(resolver.HasModule(&module1));
+  resolver.UnloadModule(&module1);
+  ASSERT_FALSE(resolver.HasModule(&module1));
+  ASSERT_TRUE(resolver.LoadModule(&module1, testdata_dir + "/module1.out"));
+  ASSERT_TRUE(resolver.HasModule(&module1));
+}
+
+// Test parsing of valid FILE lines.  The format is:
+// FILE <id> <filename>
+TEST(SymbolParseHelper, ParseFileValid) {
+  long index;
+  char* filename;
+
+  char kTestLine[] = "FILE 1 file name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFile(kTestLine, &index, &filename));
+  EXPECT_EQ(1, index);
+  EXPECT_EQ("file name", string(filename));
+
+  // 0 is a valid index.
+  char kTestLine1[] = "FILE 0 file name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFile(kTestLine1, &index, &filename));
+  EXPECT_EQ(0, index);
+  EXPECT_EQ("file name", string(filename));
+}
+
+// Test parsing of invalid FILE lines.  The format is:
+// FILE <id> <filename>
+TEST(SymbolParseHelper, ParseFileInvalid) {
+  long index;
+  char* filename;
+
+  // Test missing file name.
+  char kTestLine[] = "FILE 1 ";
+  ASSERT_FALSE(SymbolParseHelper::ParseFile(kTestLine, &index, &filename));
+
+  // Test bad index.
+  char kTestLine1[] = "FILE x1 file name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFile(kTestLine1, &index, &filename));
+
+  // Test large index.
+  char kTestLine2[] = "FILE 123123123123123123123123 file name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFile(kTestLine2, &index, &filename));
+
+  // Test negative index.
+  char kTestLine3[] = "FILE -2 file name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFile(kTestLine3, &index, &filename));
+}
+
+// Test parsing of valid FUNC lines.  The format is:
+// FUNC [<multiple>] <address> <size> <stack_param_size> <name>
+TEST(SymbolParseHelper, ParseFunctionValid) {
+  bool multiple;
+  uint64_t address;
+  uint64_t size;
+  long stack_param_size;
+  char* name;
+
+  char kTestLine[] = "FUNC 1 2 3 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFunction(kTestLine, &multiple, &address,
+                                               &size, &stack_param_size,
+                                               &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(1ULL, address);
+  EXPECT_EQ(2ULL, size);
+  EXPECT_EQ(3, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+
+  // Test hex address, size, and param size.
+  char kTestLine1[] = "FUNC a1 a2 a3 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFunction(kTestLine1, &multiple, &address,
+                                               &size, &stack_param_size,
+                                               &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2ULL, size);
+  EXPECT_EQ(0xa3, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+
+  char kTestLine2[] = "FUNC 0 0 0 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFunction(kTestLine2, &multiple, &address,
+                                               &size, &stack_param_size,
+                                               &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(0ULL, address);
+  EXPECT_EQ(0ULL, size);
+  EXPECT_EQ(0, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+
+  // Test optional multiple field.
+  char kTestLine3[] = "FUNC m a1 a2 a3 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParseFunction(kTestLine3, &multiple, &address,
+                                               &size, &stack_param_size,
+                                               &name));
+  EXPECT_TRUE(multiple);
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2ULL, size);
+  EXPECT_EQ(0xa3, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+}
+
+// Test parsing of invalid FUNC lines.  The format is:
+// FUNC [<multiple>] <address> <size> <stack_param_size> <name>
+TEST(SymbolParseHelper, ParseFunctionInvalid) {
+  bool multiple;
+  uint64_t address;
+  uint64_t size;
+  long stack_param_size;
+  char* name;
+
+  // Test missing function name.
+  char kTestLine[] = "FUNC 1 2 3 ";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test bad address.
+  char kTestLine1[] = "FUNC 1z 2 3 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine1, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test large address.
+  char kTestLine2[] = "FUNC 123123123123123123123123123 2 3 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine2, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test bad size.
+  char kTestLine3[] = "FUNC 1 z2 3 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine3, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test large size.
+  char kTestLine4[] = "FUNC 1 231231231231231231231231232 3 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine4, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test bad param size.
+  char kTestLine5[] = "FUNC 1 2 3z function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine5, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test large param size.
+  char kTestLine6[] = "FUNC 1 2 312312312312312312312312323 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine6, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Negative param size.
+  char kTestLine7[] = "FUNC 1 2 -5 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine7, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+  // Test invalid optional field.
+  char kTestLine8[] = "FUNC x 1 2 5 function name";
+  ASSERT_FALSE(SymbolParseHelper::ParseFunction(kTestLine8, &multiple, &address,
+                                                &size, &stack_param_size,
+                                                &name));
+}
+
+// Test parsing of valid lines.  The format is:
+// <address> <size> <line number> <source file id>
+TEST(SymbolParseHelper, ParseLineValid) {
+  uint64_t address;
+  uint64_t size;
+  long line_number;
+  long source_file;
+
+  char kTestLine[] = "1 2 3 4";
+  ASSERT_TRUE(SymbolParseHelper::ParseLine(kTestLine, &address, &size,
+                                           &line_number, &source_file));
+  EXPECT_EQ(1ULL, address);
+  EXPECT_EQ(2ULL, size);
+  EXPECT_EQ(3, line_number);
+  EXPECT_EQ(4, source_file);
+
+  // Test hex size and address.
+  char kTestLine1[] = "a1 a2 3 4  // some comment";
+  ASSERT_TRUE(SymbolParseHelper::ParseLine(kTestLine1, &address, &size,
+                                           &line_number, &source_file));
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2ULL, size);
+  EXPECT_EQ(3, line_number);
+  EXPECT_EQ(4, source_file);
+
+  // 0 is a valid line number.
+  char kTestLine2[] = "a1 a2 0 4  // some comment";
+  ASSERT_TRUE(SymbolParseHelper::ParseLine(kTestLine2, &address, &size,
+                                           &line_number, &source_file));
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2ULL, size);
+  EXPECT_EQ(0, line_number);
+  EXPECT_EQ(4, source_file);
+}
+
+// Test parsing of invalid lines.  The format is:
+// <address> <size> <line number> <source file id>
+TEST(SymbolParseHelper, ParseLineInvalid) {
+  uint64_t address;
+  uint64_t size;
+  long line_number;
+  long source_file;
+
+  // Test missing source file id.
+  char kTestLine[] = "1 2 3";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine, &address, &size,
+                                            &line_number, &source_file));
+  // Test bad address.
+  char kTestLine1[] = "1z 2 3 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine1, &address, &size,
+                                            &line_number, &source_file));
+  // Test large address.
+  char kTestLine2[] = "123123123123123123123123 2 3 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine2, &address, &size,
+                                            &line_number, &source_file));
+  // Test bad size.
+  char kTestLine3[] = "1 z2 3 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine3, &address, &size,
+                                            &line_number, &source_file));
+  // Test large size.
+  char kTestLine4[] = "1 123123123123123123123123 3 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine4, &address, &size,
+                                            &line_number, &source_file));
+  // Test bad line number.
+  char kTestLine5[] = "1 2 z3 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine5, &address, &size,
+                                            &line_number, &source_file));
+  // Test negative line number.
+  char kTestLine6[] = "1 2 -1 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine6, &address, &size,
+                                            &line_number, &source_file));
+  // Test large line number.
+  char kTestLine7[] = "1 2 123123123123123123123 4";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine7, &address, &size,
+                                            &line_number, &source_file));
+  // Test bad source file id.
+  char kTestLine8[] = "1 2 3 f";
+  ASSERT_FALSE(SymbolParseHelper::ParseLine(kTestLine8, &address, &size,
+                                            &line_number, &source_file));
+}
+
+// Test parsing of valid PUBLIC lines.  The format is:
+// PUBLIC [<multiple>] <address> <stack_param_size> <name>
+TEST(SymbolParseHelper, ParsePublicSymbolValid) {
+  bool multiple;
+  uint64_t address;
+  long stack_param_size;
+  char* name;
+
+  char kTestLine[] = "PUBLIC 1 2 3";
+  ASSERT_TRUE(SymbolParseHelper::ParsePublicSymbol(kTestLine, &multiple,
+                                                   &address, &stack_param_size,
+                                                   &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(1ULL, address);
+  EXPECT_EQ(2, stack_param_size);
+  EXPECT_EQ("3", string(name));
+
+  // Test hex size and address.
+  char kTestLine1[] = "PUBLIC a1 a2 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParsePublicSymbol(kTestLine1, &multiple,
+                                                   &address, &stack_param_size,
+                                                   &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+
+  // Test 0 is a valid address.
+  char kTestLine2[] = "PUBLIC 0 a2 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParsePublicSymbol(kTestLine2, &multiple,
+                                                   &address, &stack_param_size,
+                                                   &name));
+  EXPECT_FALSE(multiple);
+  EXPECT_EQ(0ULL, address);
+  EXPECT_EQ(0xa2, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+
+  // Test optional multiple field.
+  char kTestLine3[] = "PUBLIC m a1 a2 function name";
+  ASSERT_TRUE(SymbolParseHelper::ParsePublicSymbol(kTestLine3, &multiple,
+                                                   &address, &stack_param_size,
+                                                   &name));
+  EXPECT_TRUE(multiple);
+  EXPECT_EQ(0xa1ULL, address);
+  EXPECT_EQ(0xa2, stack_param_size);
+  EXPECT_EQ("function name", string(name));
+}
+
+// Test parsing of invalid PUBLIC lines.  The format is:
+// PUBLIC [<multiple>] <address> <stack_param_size> <name>
+TEST(SymbolParseHelper, ParsePublicSymbolInvalid) {
+  bool multiple;
+  uint64_t address;
+  long stack_param_size;
+  char* name;
+
+  // Test missing source function name.
+  char kTestLine[] = "PUBLIC 1 2 ";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test bad address.
+  char kTestLine1[] = "PUBLIC 1z 2 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine1, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test large address.
+  char kTestLine2[] = "PUBLIC 123123123123123123123123 2 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine2, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test bad param stack size.
+  char kTestLine3[] = "PUBLIC 1 z2 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine3, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test large param stack size.
+  char kTestLine4[] = "PUBLIC 1 123123123123123123123123123 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine4, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test negative param stack size.
+  char kTestLine5[] = "PUBLIC 1 -5 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine5, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+  // Test invalid optional field.
+  char kTestLine6[] = "PUBLIC x 1 5 3";
+  ASSERT_FALSE(SymbolParseHelper::ParsePublicSymbol(kTestLine6, &multiple,
+                                                    &address, &stack_param_size,
+                                                    &name));
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/call_stack.cc b/src/processor/call_stack.cc
new file mode 100644
index 0000000..f219e84
--- /dev/null
+++ b/src/processor/call_stack.cc
@@ -0,0 +1,54 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// call_stack.cc: A call stack comprised of stack frames.
+//
+// See call_stack.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/stack_frame.h"
+
+namespace google_breakpad {
+
+CallStack::~CallStack() {
+  Clear();
+}
+
+void CallStack::Clear() {
+  for (vector<StackFrame*>::const_iterator iterator = frames_.begin();
+       iterator != frames_.end();
+       ++iterator) {
+    delete *iterator;
+  }
+  tid_ = 0;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/cfi_frame_info-inl.h b/src/processor/cfi_frame_info-inl.h
new file mode 100644
index 0000000..52d2f5f
--- /dev/null
+++ b/src/processor/cfi_frame_info-inl.h
@@ -0,0 +1,119 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_frame_info-inl.h: Definitions for cfi_frame_info.h inlined functions.
+
+#ifndef PROCESSOR_CFI_FRAME_INFO_INL_H_
+#define PROCESSOR_CFI_FRAME_INFO_INL_H_
+
+#include <string.h>
+
+namespace google_breakpad {
+
+template <typename RegisterType, class RawContextType>
+bool SimpleCFIWalker<RegisterType, RawContextType>::FindCallerRegisters(
+    const MemoryRegion& memory,
+    const CFIFrameInfo& cfi_frame_info,
+    const RawContextType& callee_context,
+    int callee_validity,
+    RawContextType* caller_context,
+    int* caller_validity) const {
+  typedef CFIFrameInfo::RegisterValueMap<RegisterType> ValueMap;
+  ValueMap callee_registers;
+  ValueMap caller_registers;
+  // Just for brevity.
+  typename ValueMap::const_iterator caller_none = caller_registers.end();
+
+  // Populate callee_registers with register values from callee_context.
+  for (size_t i = 0; i < map_size_; i++) {
+    const RegisterSet& r = register_map_[i];
+    if (callee_validity & r.validity_flag)
+      callee_registers[r.name] = callee_context.*r.context_member;
+  }
+
+  // Apply the rules, and see what register values they yield.
+  if (!cfi_frame_info.FindCallerRegs<RegisterType>(callee_registers, memory,
+                                                   &caller_registers))
+    return false;
+
+  // Populate *caller_context with the values the rules placed in
+  // caller_registers.
+  memset(caller_context, 0xda, sizeof(*caller_context));
+  *caller_validity = 0;
+  for (size_t i = 0; i < map_size_; i++) {
+    const RegisterSet& r = register_map_[i];
+    typename ValueMap::const_iterator caller_entry;
+
+    // Did the rules provide a value for this register by its name?
+    caller_entry = caller_registers.find(r.name);
+    if (caller_entry != caller_none) {
+      caller_context->*r.context_member = caller_entry->second;
+      *caller_validity |= r.validity_flag;
+      continue;
+    }
+
+    // Did the rules provide a value for this register under its
+    // alternate name?
+    if (r.alternate_name) {
+      caller_entry = caller_registers.find(r.alternate_name);
+      if (caller_entry != caller_none) {
+        caller_context->*r.context_member = caller_entry->second;
+        *caller_validity |= r.validity_flag;
+        continue;
+      }
+    }
+
+    // Is this a callee-saves register? The walker assumes that these
+    // still hold the caller's value if the CFI doesn't mention them.
+    //
+    // Note that other frame walkers may fail to recover callee-saves
+    // registers; for example, the x86 "traditional" strategy only
+    // recovers %eip, %esp, and %ebp, even though %ebx, %esi, and %edi
+    // are callee-saves, too. It is not correct to blindly set the
+    // valid bit for all callee-saves registers, without first
+    // checking its validity bit in the callee.
+    if (r.callee_saves && (callee_validity & r.validity_flag) != 0) {
+      caller_context->*r.context_member = callee_context.*r.context_member;
+      *caller_validity |= r.validity_flag;
+      continue;
+    }
+
+    // Otherwise, the register's value is unknown.
+  }
+
+  return true;
+}
+
+} // namespace google_breakpad
+
+#endif // PROCESSOR_CFI_FRAME_INFO_INL_H_
diff --git a/src/processor/cfi_frame_info.cc b/src/processor/cfi_frame_info.cc
new file mode 100644
index 0000000..280620f
--- /dev/null
+++ b/src/processor/cfi_frame_info.cc
@@ -0,0 +1,186 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_frame_info.cc: Implementation of CFIFrameInfo class.
+// See cfi_frame_info.h for details.
+
+#include "processor/cfi_frame_info.h"
+
+#include <string.h>
+
+#include <sstream>
+
+#include "common/scoped_ptr.h"
+#include "processor/postfix_evaluator-inl.h"
+
+namespace google_breakpad {
+
+#ifdef _MSC_VER
+#define strtok_r strtok_s
+#endif
+
+template<typename V>
+bool CFIFrameInfo::FindCallerRegs(const RegisterValueMap<V>& registers,
+                                  const MemoryRegion& memory,
+                                  RegisterValueMap<V>* caller_registers) const {
+  // If there are not rules for both .ra and .cfa in effect at this address,
+  // don't use this CFI data for stack walking.
+  if (cfa_rule_.empty() || ra_rule_.empty())
+    return false;
+
+  RegisterValueMap<V> working;
+  PostfixEvaluator<V> evaluator(&working, &memory);
+
+  caller_registers->clear();
+
+  // First, compute the CFA.
+  V cfa;
+  working = registers;
+  if (!evaluator.EvaluateForValue(cfa_rule_, &cfa))
+    return false;
+
+  // Then, compute the return address.
+  V ra;
+  working = registers;
+  working[".cfa"] = cfa;
+  if (!evaluator.EvaluateForValue(ra_rule_, &ra))
+    return false;
+
+  // Now, compute values for all the registers register_rules_ mentions.
+  for (RuleMap::const_iterator it = register_rules_.begin();
+       it != register_rules_.end(); it++) {
+    V value;
+    working = registers;
+    working[".cfa"] = cfa;
+    if (!evaluator.EvaluateForValue(it->second, &value))
+      return false;
+    (*caller_registers)[it->first] = value;
+  }
+
+  (*caller_registers)[".ra"] = ra;
+  (*caller_registers)[".cfa"] = cfa;
+
+  return true;
+}
+
+// Explicit instantiations for 32-bit and 64-bit architectures.
+template bool CFIFrameInfo::FindCallerRegs<uint32_t>(
+    const RegisterValueMap<uint32_t>& registers,
+    const MemoryRegion& memory,
+    RegisterValueMap<uint32_t>* caller_registers) const;
+template bool CFIFrameInfo::FindCallerRegs<uint64_t>(
+    const RegisterValueMap<uint64_t>& registers,
+    const MemoryRegion& memory,
+    RegisterValueMap<uint64_t>* caller_registers) const;
+
+string CFIFrameInfo::Serialize() const {
+  std::ostringstream stream;
+
+  if (!cfa_rule_.empty()) {
+    stream << ".cfa: " << cfa_rule_;
+  }
+  if (!ra_rule_.empty()) {
+    if (static_cast<std::streamoff>(stream.tellp()) != 0)
+      stream << " ";
+    stream << ".ra: " << ra_rule_;
+  }
+  for (RuleMap::const_iterator iter = register_rules_.begin();
+       iter != register_rules_.end();
+       ++iter) {
+    if (static_cast<std::streamoff>(stream.tellp()) != 0)
+      stream << " ";
+    stream << iter->first << ": " << iter->second;
+  }
+
+  return stream.str();
+}
+
+bool CFIRuleParser::Parse(const string& rule_set) {
+  size_t rule_set_len = rule_set.size();
+  scoped_array<char> working_copy(new char[rule_set_len + 1]);
+  memcpy(working_copy.get(), rule_set.data(), rule_set_len);
+  working_copy[rule_set_len] = '\0';
+
+  name_.clear();
+  expression_.clear();
+
+  char* cursor;
+  static const char token_breaks[] = " \t\r\n";
+  char* token = strtok_r(working_copy.get(), token_breaks, &cursor);
+
+  for (;;) {
+    // End of rule set?
+    if (!token) return Report();
+
+    // Register/pseudoregister name?
+    size_t token_len = strlen(token);
+    if (token_len >= 1 && token[token_len - 1] == ':') {
+      // Names can't be empty.
+      if (token_len < 2) return false;
+      // If there is any pending content, report it.
+      if (!name_.empty() || !expression_.empty()) {
+        if (!Report()) return false;
+      }
+      name_.assign(token, token_len - 1);
+      expression_.clear();
+    } else {
+      // Another expression component.
+      assert(token_len > 0); // strtok_r guarantees this, I think.
+      if (!expression_.empty())
+        expression_ += ' ';
+      expression_ += token;
+    }
+    token = strtok_r(NULL, token_breaks, &cursor);
+  }
+}
+
+bool CFIRuleParser::Report() {
+  if (name_.empty() || expression_.empty()) return false;
+  if (name_ == ".cfa") handler_->CFARule(expression_);
+  else if (name_ == ".ra") handler_->RARule(expression_);
+  else handler_->RegisterRule(name_, expression_);
+  return true;
+}
+
+void CFIFrameInfoParseHandler::CFARule(const string& expression) {
+  frame_info_->SetCFARule(expression);
+}
+
+void CFIFrameInfoParseHandler::RARule(const string& expression) {
+  frame_info_->SetRARule(expression);
+}
+
+void CFIFrameInfoParseHandler::RegisterRule(const string& name,
+                                            const string& expression) {
+  frame_info_->SetRegisterRule(name, expression);
+}
+
+} // namespace google_breakpad
diff --git a/src/processor/cfi_frame_info.h b/src/processor/cfi_frame_info.h
new file mode 100644
index 0000000..2bc9333
--- /dev/null
+++ b/src/processor/cfi_frame_info.h
@@ -0,0 +1,275 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_frame_info.h: Define the CFIFrameInfo class, which holds the
+// set of 'STACK CFI'-derived register recovery rules that apply at a
+// given instruction.
+
+#ifndef PROCESSOR_CFI_FRAME_INFO_H_
+#define PROCESSOR_CFI_FRAME_INFO_H_
+
+#include <map>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class MemoryRegion;
+
+// A set of rules for recovering the calling frame's registers'
+// values, when the PC is at a given address in the current frame's
+// function. See the description of 'STACK CFI' records at:
+//
+// https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md
+//
+// To prepare an instance of CFIFrameInfo for use at a given
+// instruction, first populate it with the rules from the 'STACK CFI
+// INIT' record that covers that instruction, and then apply the
+// changes given by the 'STACK CFI' records up to our instruction's
+// address. Then, use the FindCallerRegs member function to apply the
+// rules to the callee frame's register values, yielding the caller
+// frame's register values.
+class CFIFrameInfo {
+ public:
+  // A map from register names onto values.
+  template<typename ValueType> class RegisterValueMap: 
+    public map<string, ValueType> { };
+
+  // Set the expression for computing a call frame address, return
+  // address, or register's value. At least the CFA rule and the RA
+  // rule must be set before calling FindCallerRegs.
+  void SetCFARule(const string& expression) { cfa_rule_ = expression; }
+  void SetRARule(const string& expression)  { ra_rule_ = expression; }
+  void SetRegisterRule(const string& register_name, const string& expression) {
+    register_rules_[register_name] = expression;
+  }
+
+  // Compute the values of the calling frame's registers, according to
+  // this rule set. Use ValueType in expression evaluation; this
+  // should be uint32_t on machines with 32-bit addresses, or
+  // uint64_t on machines with 64-bit addresses.
+  //
+  // Return true on success, false otherwise.
+  //
+  // MEMORY provides access to the contents of the stack. REGISTERS is
+  // a dictionary mapping the names of registers whose values are
+  // known in the current frame to their values. CALLER_REGISTERS is
+  // populated with the values of the recoverable registers in the
+  // frame that called the current frame.
+  //
+  // In addition, CALLER_REGISTERS[".ra"] will be the return address,
+  // and CALLER_REGISTERS[".cfa"] will be the call frame address.
+  // These may be helpful in computing the caller's PC and stack
+  // pointer, if their values are not explicitly specified.
+  template<typename ValueType>
+  bool FindCallerRegs(const RegisterValueMap<ValueType>& registers,
+                      const MemoryRegion& memory,
+                      RegisterValueMap<ValueType>* caller_registers) const;
+
+  // Serialize the rules in this object into a string in the format
+  // of STACK CFI records.
+  string Serialize() const;
+
+ private:
+
+  // A map from register names onto evaluation rules. 
+  typedef map<string, string> RuleMap;
+
+  // In this type, a "postfix expression" is an expression of the sort
+  // interpreted by google_breakpad::PostfixEvaluator.
+
+  // A postfix expression for computing the current frame's CFA (call
+  // frame address). The CFA is a reference address for the frame that
+  // remains unchanged throughout the frame's lifetime. You should
+  // evaluate this expression with a dictionary initially populated
+  // with the values of the current frame's known registers.
+  string cfa_rule_;
+
+  // The following expressions should be evaluated with a dictionary
+  // initially populated with the values of the current frame's known
+  // registers, and with ".cfa" set to the result of evaluating the
+  // cfa_rule expression, above.
+
+  // A postfix expression for computing the current frame's return
+  // address. 
+  string ra_rule_;
+
+  // For a register named REG, rules[REG] is a postfix expression
+  // which leaves the value of REG in the calling frame on the top of
+  // the stack. You should evaluate this expression
+  RuleMap register_rules_;
+};
+
+// A parser for STACK CFI-style rule sets.
+// This may seem bureaucratic: there's no legitimate run-time reason
+// to use a parser/handler pattern for this, as it's not a likely
+// reuse boundary. But doing so makes finer-grained unit testing
+// possible.
+class CFIRuleParser {
+ public:
+
+  class Handler {
+   public:
+    Handler() { }
+    virtual ~Handler() { }
+
+    // The input specifies EXPRESSION as the CFA/RA computation rule.
+    virtual void CFARule(const string& expression) = 0;
+    virtual void RARule(const string& expression) = 0;
+
+    // The input specifies EXPRESSION as the recovery rule for register NAME.
+    virtual void RegisterRule(const string& name, const string& expression) = 0;
+  };
+    
+  // Construct a parser which feeds its results to HANDLER.
+  CFIRuleParser(Handler* handler) : handler_(handler) { }
+
+  // Parse RULE_SET as a set of CFA computation and RA/register
+  // recovery rules, as appearing in STACK CFI records. Report the
+  // results of parsing by making the appropriate calls to handler_.
+  // Return true if parsing was successful, false otherwise.
+  bool Parse(const string& rule_set);
+
+ private:
+  // Report any accumulated rule to handler_
+  bool Report();
+
+  // The handler to which the parser reports its findings.
+  Handler* handler_;
+
+  // Working data.
+  string name_, expression_;
+};
+
+// A handler for rule set parsing that populates a CFIFrameInfo with
+// the results.
+class CFIFrameInfoParseHandler: public CFIRuleParser::Handler {
+ public:
+  // Populate FRAME_INFO with the results of parsing.
+  CFIFrameInfoParseHandler(CFIFrameInfo* frame_info)
+      : frame_info_(frame_info) { }
+
+  void CFARule(const string& expression);
+  void RARule(const string& expression);
+  void RegisterRule(const string& name, const string& expression);
+
+ private:
+  CFIFrameInfo* frame_info_;
+};
+
+// A utility class template for simple 'STACK CFI'-driven stack walkers.
+// Given a CFIFrameInfo instance, a table describing the architecture's
+// register set, and a context holding the last frame's registers, an
+// instance of this class can populate a new context with the caller's
+// registers.
+//
+// This class template doesn't use any internal knowledge of CFIFrameInfo
+// or the other stack walking structures; it just uses the public interface
+// of CFIFrameInfo to do the usual things. But the logic it handles should
+// be common to many different architectures' stack walkers, so wrapping it
+// up in a class should allow the walkers to share code.
+//
+// RegisterType should be the type of this architecture's registers, either
+// uint32_t or uint64_t. RawContextType should be the raw context
+// structure type for this architecture.
+template <typename RegisterType, class RawContextType>
+class SimpleCFIWalker {
+ public:
+  // A structure describing one architecture register.
+  struct RegisterSet {
+    // The register name, as it appears in STACK CFI rules.
+    const char* name;
+
+    // An alternate name that the register's value might be found
+    // under in a register value dictionary, or NULL. When generating
+    // names, prefer NAME to this value. It's common to list ".cfa" as
+    // an alternative name for the stack pointer, and ".ra" as an
+    // alternative name for the instruction pointer.
+    const char* alternate_name;
+
+    // True if the callee is expected to preserve the value of this
+    // register. If this flag is true for some register R, and the STACK
+    // CFI records provide no rule to recover R, then SimpleCFIWalker
+    // assumes that the callee has not changed R's value, and the caller's
+    // value for R is that currently in the callee's context.
+    bool callee_saves;
+
+    // The ContextValidity flag representing the register's presence.
+    int validity_flag;
+
+    // A pointer to the RawContextType member that holds the
+    // register's value.
+    RegisterType RawContextType::*context_member;
+  };
+
+  // Create a simple CFI-based frame walker, given a description of the
+  // architecture's register set. REGISTER_MAP is an array of
+  // RegisterSet structures; MAP_SIZE is the number of elements in the
+  // array.
+  SimpleCFIWalker(const RegisterSet* register_map, size_t map_size)
+      : register_map_(register_map), map_size_(map_size) { }
+
+  // Compute the calling frame's raw context given the callee's raw
+  // context.
+  //
+  // Given:
+  //
+  // - MEMORY, holding the stack's contents,
+  // - CFI_FRAME_INFO, describing the called function,
+  // - CALLEE_CONTEXT, holding the called frame's registers, and
+  // - CALLEE_VALIDITY, indicating which registers in CALLEE_CONTEXT are valid,
+  //
+  // fill in CALLER_CONTEXT with the caller's register values, and set
+  // CALLER_VALIDITY to indicate which registers are valid in
+  // CALLER_CONTEXT. Return true on success, or false on failure.
+  bool FindCallerRegisters(const MemoryRegion& memory,
+                           const CFIFrameInfo& cfi_frame_info,
+                           const RawContextType& callee_context,
+                           int callee_validity,
+                           RawContextType* caller_context,
+                           int* caller_validity) const;
+
+ private:
+  const RegisterSet* register_map_;
+  size_t map_size_;
+};
+
+}  // namespace google_breakpad
+
+#include "cfi_frame_info-inl.h"
+
+#endif  // PROCESSOR_CFI_FRAME_INFO_H_
diff --git a/src/processor/cfi_frame_info_unittest.cc b/src/processor/cfi_frame_info_unittest.cc
new file mode 100644
index 0000000..8111437
--- /dev/null
+++ b/src/processor/cfi_frame_info_unittest.cc
@@ -0,0 +1,546 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// cfi_frame_info_unittest.cc: Unit tests for CFIFrameInfo,
+// CFIRuleParser, CFIFrameInfoParseHandler, and SimpleCFIWalker.
+
+#include <string.h>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "processor/cfi_frame_info.h"
+#include "google_breakpad/processor/memory_region.h"
+
+using google_breakpad::CFIFrameInfo;
+using google_breakpad::CFIFrameInfoParseHandler;
+using google_breakpad::CFIRuleParser;
+using google_breakpad::MemoryRegion;
+using google_breakpad::SimpleCFIWalker;
+using testing::_;
+using testing::A;
+using testing::AtMost;
+using testing::DoAll;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class MockMemoryRegion: public MemoryRegion {
+ public:
+  MOCK_CONST_METHOD0(GetBase, uint64_t());
+  MOCK_CONST_METHOD0(GetSize, uint32_t());
+  MOCK_CONST_METHOD2(GetMemoryAtAddress, bool(uint64_t, uint8_t*));
+  MOCK_CONST_METHOD2(GetMemoryAtAddress, bool(uint64_t, uint16_t*));
+  MOCK_CONST_METHOD2(GetMemoryAtAddress, bool(uint64_t, uint32_t*));
+  MOCK_CONST_METHOD2(GetMemoryAtAddress, bool(uint64_t, uint64_t*));
+  MOCK_CONST_METHOD0(Print, void());
+};
+
+// Handy definitions for all tests.
+struct CFIFixture {
+
+  // Set up the mock memory object to expect no references.
+  void ExpectNoMemoryReferences() {
+    EXPECT_CALL(memory, GetBase()).Times(0);
+    EXPECT_CALL(memory, GetSize()).Times(0);
+    EXPECT_CALL(memory, GetMemoryAtAddress(_, A<uint8_t*>())).Times(0);
+    EXPECT_CALL(memory, GetMemoryAtAddress(_, A<uint16_t*>())).Times(0);
+    EXPECT_CALL(memory, GetMemoryAtAddress(_, A<uint32_t*>())).Times(0);
+    EXPECT_CALL(memory, GetMemoryAtAddress(_, A<uint64_t*>())).Times(0);
+  }
+
+  CFIFrameInfo cfi;
+  MockMemoryRegion memory;
+  CFIFrameInfo::RegisterValueMap<uint64_t> registers, caller_registers;
+};
+
+class Simple: public CFIFixture, public Test { };
+
+// FindCallerRegs should fail if no .cfa rule is provided.
+TEST_F(Simple, NoCFA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetRARule("0");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+  ASSERT_EQ(".ra: 0", cfi.Serialize());
+}
+
+// FindCallerRegs should fail if no .ra rule is provided.
+TEST_F(Simple, NoRA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("0");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+  ASSERT_EQ(".cfa: 0", cfi.Serialize());
+}
+
+TEST_F(Simple, SetCFAAndRARule) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("330903416631436410");
+  cfi.SetRARule("5870666104170902211");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(2U, caller_registers.size());
+  ASSERT_EQ(330903416631436410ULL, caller_registers[".cfa"]);
+  ASSERT_EQ(5870666104170902211ULL, caller_registers[".ra"]);
+
+  ASSERT_EQ(".cfa: 330903416631436410 .ra: 5870666104170902211",
+            cfi.Serialize());
+}
+
+TEST_F(Simple, SetManyRules) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("$temp1 68737028 = $temp2 61072337 = $temp1 $temp2 -");
+  cfi.SetRARule(".cfa 99804755 +");
+  cfi.SetRegisterRule("register1", ".cfa 54370437 *");
+  cfi.SetRegisterRule("vodkathumbscrewingly", "24076308 .cfa +");
+  cfi.SetRegisterRule("pubvexingfjordschmaltzy", ".cfa 29801007 -");
+  cfi.SetRegisterRule("uncopyrightables", "92642917 .cfa /");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(6U, caller_registers.size());
+  ASSERT_EQ(7664691U,           caller_registers[".cfa"]);
+  ASSERT_EQ(107469446U,         caller_registers[".ra"]);
+  ASSERT_EQ(416732599139967ULL, caller_registers["register1"]);
+  ASSERT_EQ(31740999U,          caller_registers["vodkathumbscrewingly"]);
+  ASSERT_EQ(-22136316ULL,       caller_registers["pubvexingfjordschmaltzy"]);
+  ASSERT_EQ(12U,                caller_registers["uncopyrightables"]);
+  ASSERT_EQ(".cfa: $temp1 68737028 = $temp2 61072337 = $temp1 $temp2 - "
+            ".ra: .cfa 99804755 + "
+            "pubvexingfjordschmaltzy: .cfa 29801007 - "
+            "register1: .cfa 54370437 * "
+            "uncopyrightables: 92642917 .cfa / "
+            "vodkathumbscrewingly: 24076308 .cfa +",
+            cfi.Serialize());
+}
+
+TEST_F(Simple, RulesOverride) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("330903416631436410");
+  cfi.SetRARule("5870666104170902211");
+  cfi.SetCFARule("2828089117179001");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(2U, caller_registers.size());
+  ASSERT_EQ(2828089117179001ULL, caller_registers[".cfa"]);
+  ASSERT_EQ(5870666104170902211ULL, caller_registers[".ra"]);
+  ASSERT_EQ(".cfa: 2828089117179001 .ra: 5870666104170902211",
+            cfi.Serialize());
+}
+
+class Scope: public CFIFixture, public Test { };
+
+// There should be no value for .cfa in scope when evaluating the CFA rule.
+TEST_F(Scope, CFALacksCFA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule(".cfa");
+  cfi.SetRARule("0");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+}
+
+// There should be no value for .ra in scope when evaluating the CFA rule.
+TEST_F(Scope, CFALacksRA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule(".ra");
+  cfi.SetRARule("0");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+}
+
+// The current frame's registers should be in scope when evaluating
+// the CFA rule.
+TEST_F(Scope, CFASeesCurrentRegs) {
+  ExpectNoMemoryReferences();
+
+  registers[".baraminology"] = 0x06a7bc63e4f13893ULL;
+  registers[".ornithorhynchus"] = 0x5e0bf850bafce9d2ULL;
+  cfi.SetCFARule(".baraminology .ornithorhynchus +");
+  cfi.SetRARule("0");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(2U, caller_registers.size());
+  ASSERT_EQ(0x06a7bc63e4f13893ULL + 0x5e0bf850bafce9d2ULL,
+            caller_registers[".cfa"]);
+}
+
+// .cfa should be in scope in the return address expression.
+TEST_F(Scope, RASeesCFA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("48364076");
+  cfi.SetRARule(".cfa");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(2U, caller_registers.size());
+  ASSERT_EQ(48364076U, caller_registers[".ra"]);
+}
+
+// There should be no value for .ra in scope when evaluating the CFA rule.
+TEST_F(Scope, RALacksRA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("0");
+  cfi.SetRARule(".ra");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+}
+
+// The current frame's registers should be in scope in the return
+// address expression.
+TEST_F(Scope, RASeesCurrentRegs) {
+  ExpectNoMemoryReferences();
+
+  registers["noachian"] = 0x54dc4a5d8e5eb503ULL;
+  cfi.SetCFARule("10359370");
+  cfi.SetRARule("noachian");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(2U, caller_registers.size());
+  ASSERT_EQ(0x54dc4a5d8e5eb503ULL, caller_registers[".ra"]);
+}
+
+// .cfa should be in scope for register rules.
+TEST_F(Scope, RegistersSeeCFA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("6515179");
+  cfi.SetRARule(".cfa");
+  cfi.SetRegisterRule("rogerian", ".cfa");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(3U, caller_registers.size());
+  ASSERT_EQ(6515179U, caller_registers["rogerian"]);
+}
+
+// The return address should not be in scope for register rules.
+TEST_F(Scope, RegsLackRA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("42740329");
+  cfi.SetRARule("27045204");
+  cfi.SetRegisterRule("$r1", ".ra");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+}
+
+// Register rules can see the current frame's register values.
+TEST_F(Scope, RegsSeeRegs) {
+  ExpectNoMemoryReferences();
+
+  registers["$r1"] = 0x6ed3582c4bedb9adULL;
+  registers["$r2"] = 0xd27d9e742b8df6d0ULL;
+  cfi.SetCFARule("88239303");
+  cfi.SetRARule("30503835");
+  cfi.SetRegisterRule("$r1", "$r1 42175211 = $r2");
+  cfi.SetRegisterRule("$r2", "$r2 21357221 = $r1");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(4U, caller_registers.size());
+  ASSERT_EQ(0xd27d9e742b8df6d0ULL, caller_registers["$r1"]);
+  ASSERT_EQ(0x6ed3582c4bedb9adULL, caller_registers["$r2"]);
+}
+
+// Each rule's temporaries are separate.
+TEST_F(Scope, SeparateTempsRA) {
+  ExpectNoMemoryReferences();
+
+  cfi.SetCFARule("$temp1 76569129 = $temp1");
+  cfi.SetRARule("0");
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+
+  cfi.SetCFARule("$temp1 76569129 = $temp1");
+  cfi.SetRARule("$temp1");
+  ASSERT_FALSE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                             &caller_registers));
+}
+
+class MockCFIRuleParserHandler: public CFIRuleParser::Handler {
+ public:
+  MOCK_METHOD1(CFARule, void(const string&));
+  MOCK_METHOD1(RARule,  void(const string&));
+  MOCK_METHOD2(RegisterRule, void(const string&, const string&));
+};
+
+// A fixture class for testing CFIRuleParser.
+class CFIParserFixture {
+ public:
+  CFIParserFixture() : parser(&mock_handler) {
+    // Expect no parsing results to be reported to mock_handler. Individual
+    // tests can override this.
+    EXPECT_CALL(mock_handler, CFARule(_)).Times(0);
+    EXPECT_CALL(mock_handler, RARule(_)).Times(0);
+    EXPECT_CALL(mock_handler, RegisterRule(_, _)).Times(0);
+  }
+
+  MockCFIRuleParserHandler mock_handler;
+  CFIRuleParser parser;
+};
+
+class Parser: public CFIParserFixture, public Test { };
+
+TEST_F(Parser, Empty) {
+  EXPECT_FALSE(parser.Parse(""));
+}
+
+TEST_F(Parser, LoneColon) {
+  EXPECT_FALSE(parser.Parse(":"));
+}
+
+TEST_F(Parser, CFANoExpr) {
+  EXPECT_FALSE(parser.Parse(".cfa:"));
+}
+
+TEST_F(Parser, CFANoColonNoExpr) {
+  EXPECT_FALSE(parser.Parse(".cfa"));
+}
+
+TEST_F(Parser, RANoExpr) {
+  EXPECT_FALSE(parser.Parse(".ra:"));
+}
+
+TEST_F(Parser, RANoColonNoExpr) {
+  EXPECT_FALSE(parser.Parse(".ra"));
+}
+
+TEST_F(Parser, RegNoExpr) {
+  EXPECT_FALSE(parser.Parse("reg:"));
+}
+
+TEST_F(Parser, NoName) {
+  EXPECT_FALSE(parser.Parse("expr"));
+}
+
+TEST_F(Parser, NoNameTwo) {
+  EXPECT_FALSE(parser.Parse("expr1 expr2"));
+}
+
+TEST_F(Parser, StartsWithExpr) {
+  EXPECT_FALSE(parser.Parse("expr1 reg: expr2"));
+}
+
+TEST_F(Parser, CFA) {
+  EXPECT_CALL(mock_handler, CFARule("spleen")).WillOnce(Return());
+  EXPECT_TRUE(parser.Parse(".cfa: spleen"));
+}
+
+TEST_F(Parser, RA) {
+  EXPECT_CALL(mock_handler, RARule("notoriety")).WillOnce(Return());
+  EXPECT_TRUE(parser.Parse(".ra: notoriety"));
+}
+
+TEST_F(Parser, Reg) {
+  EXPECT_CALL(mock_handler, RegisterRule("nemo", "mellifluous"))
+      .WillOnce(Return());
+  EXPECT_TRUE(parser.Parse("nemo: mellifluous"));
+}
+
+TEST_F(Parser, CFARARegs) {
+  EXPECT_CALL(mock_handler, CFARule("cfa expression")).WillOnce(Return());
+  EXPECT_CALL(mock_handler, RARule("ra expression")).WillOnce(Return());
+  EXPECT_CALL(mock_handler, RegisterRule("galba", "praetorian"))
+      .WillOnce(Return());
+  EXPECT_CALL(mock_handler, RegisterRule("otho", "vitellius"))
+      .WillOnce(Return());
+  EXPECT_TRUE(parser.Parse(".cfa: cfa expression .ra: ra expression "
+                    "galba: praetorian otho: vitellius"));
+}
+
+TEST_F(Parser, Whitespace) {
+  EXPECT_CALL(mock_handler, RegisterRule("r1", "r1 expression"))
+      .WillOnce(Return());
+  EXPECT_CALL(mock_handler, RegisterRule("r2", "r2 expression"))
+      .WillOnce(Return());
+  EXPECT_TRUE(parser.Parse(" r1:\tr1\nexpression \tr2:\t\rr2\r\n "
+                           "expression  \n"));
+}
+
+TEST_F(Parser, WhitespaceLoneColon) {
+  EXPECT_FALSE(parser.Parse("  \n:\t  "));
+}
+
+TEST_F(Parser, EmptyName) {
+  EXPECT_CALL(mock_handler, RegisterRule("reg", _))
+      .Times(AtMost(1))
+      .WillRepeatedly(Return());
+  EXPECT_FALSE(parser.Parse("reg: expr1 : expr2"));
+}
+
+TEST_F(Parser, RuleLoneColon) {
+  EXPECT_CALL(mock_handler, RegisterRule("r1", "expr"))
+      .Times(AtMost(1))
+      .WillRepeatedly(Return());
+  EXPECT_FALSE(parser.Parse(" r1:   expr   :"));
+}
+
+TEST_F(Parser, RegNoExprRule) {
+  EXPECT_CALL(mock_handler, RegisterRule("r1", "expr"))
+      .Times(AtMost(1))
+      .WillRepeatedly(Return());
+  EXPECT_FALSE(parser.Parse("r0: r1:   expr"));
+}
+
+class ParseHandlerFixture: public CFIFixture {
+ public:
+  ParseHandlerFixture() : CFIFixture(), handler(&cfi) { }
+  CFIFrameInfoParseHandler handler;
+};
+
+class ParseHandler: public ParseHandlerFixture, public Test { };
+
+TEST_F(ParseHandler, CFARARule) {
+  handler.CFARule("reg-for-cfa");
+  handler.RARule("reg-for-ra");
+  registers["reg-for-cfa"] = 0x268a9a4a3821a797ULL;
+  registers["reg-for-ra"] = 0x6301b475b8b91c02ULL;
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(0x268a9a4a3821a797ULL, caller_registers[".cfa"]);
+  ASSERT_EQ(0x6301b475b8b91c02ULL, caller_registers[".ra"]);
+}
+
+TEST_F(ParseHandler, RegisterRules) {
+  handler.CFARule("reg-for-cfa");
+  handler.RARule("reg-for-ra");
+  handler.RegisterRule("reg1", "reg-for-reg1");
+  handler.RegisterRule("reg2", "reg-for-reg2");
+  registers["reg-for-cfa"] = 0x268a9a4a3821a797ULL;
+  registers["reg-for-ra"] = 0x6301b475b8b91c02ULL;
+  registers["reg-for-reg1"] = 0x06cde8e2ff062481ULL;
+  registers["reg-for-reg2"] = 0xff0c4f76403173e2ULL;
+  ASSERT_TRUE(cfi.FindCallerRegs<uint64_t>(registers, memory,
+                                            &caller_registers));
+  ASSERT_EQ(0x268a9a4a3821a797ULL, caller_registers[".cfa"]);
+  ASSERT_EQ(0x6301b475b8b91c02ULL, caller_registers[".ra"]);
+  ASSERT_EQ(0x06cde8e2ff062481ULL, caller_registers["reg1"]);
+  ASSERT_EQ(0xff0c4f76403173e2ULL, caller_registers["reg2"]);
+}
+
+struct SimpleCFIWalkerFixture {
+  struct RawContext {
+    uint64_t r0, r1, r2, r3, r4, sp, pc;
+  };
+  enum Validity {
+    R0_VALID = 0x01,
+    R1_VALID = 0x02,
+    R2_VALID = 0x04,
+    R3_VALID = 0x08,
+    R4_VALID = 0x10,
+    SP_VALID = 0x20,
+    PC_VALID = 0x40
+  };
+  typedef SimpleCFIWalker<uint64_t, RawContext> CFIWalker;
+
+  SimpleCFIWalkerFixture()
+      : walker(register_map,
+               sizeof(register_map) / sizeof(register_map[0])) { }
+
+  static CFIWalker::RegisterSet register_map[7];
+  CFIFrameInfo call_frame_info;
+  CFIWalker walker;
+  MockMemoryRegion memory;
+  RawContext callee_context, caller_context;
+};
+
+SimpleCFIWalkerFixture::CFIWalker::RegisterSet
+SimpleCFIWalkerFixture::register_map[7] = {
+  { "r0", NULL,   true,  R0_VALID, &RawContext::r0 },
+  { "r1", NULL,   true,  R1_VALID, &RawContext::r1 },
+  { "r2", NULL,   false, R2_VALID, &RawContext::r2 },
+  { "r3", NULL,   false, R3_VALID, &RawContext::r3 },
+  { "r4", NULL,   true,  R4_VALID, &RawContext::r4 },
+  { "sp", ".cfa", true,  SP_VALID, &RawContext::sp },
+  { "pc", ".ra",  true,  PC_VALID, &RawContext::pc },
+};
+
+class SimpleWalker: public SimpleCFIWalkerFixture, public Test { };
+
+TEST_F(SimpleWalker, Walk) {
+  // Stack_top is the current stack pointer, pointing to the lowest
+  // address of a frame that looks like this (all 64-bit words):
+  //
+  // sp ->  saved r0
+  //        garbage
+  //        return address
+  // cfa -> 
+  //
+  // r0 has been saved on the stack.
+  // r1 has been saved in r2.
+  // r2 and r3 are not recoverable.
+  // r4 is not recoverable, even though it is a callee-saves register.
+  //    Some earlier frame's unwinder must have failed to recover it.
+
+  uint64_t stack_top = 0x83254944b20d5512ULL;
+
+  // Saved r0.
+  EXPECT_CALL(memory,
+              GetMemoryAtAddress(stack_top, A<uint64_t*>()))
+      .WillRepeatedly(DoAll(SetArgumentPointee<1>(0xdc1975eba8602302ULL),
+                            Return(true)));
+  // Saved return address.
+  EXPECT_CALL(memory,
+              GetMemoryAtAddress(stack_top + 16, A<uint64_t*>()))
+      .WillRepeatedly(DoAll(SetArgumentPointee<1>(0xba5ad6d9acce28deULL),
+                            Return(true)));
+
+  call_frame_info.SetCFARule("sp 24 +");
+  call_frame_info.SetRARule(".cfa 8 - ^");
+  call_frame_info.SetRegisterRule("r0", ".cfa 24 - ^");
+  call_frame_info.SetRegisterRule("r1", "r2");
+
+  callee_context.r0 = 0x94e030ca79edd119ULL;
+  callee_context.r1 = 0x937b4d7e95ce52d9ULL;
+  callee_context.r2 = 0x5fe0027416b8b62aULL; // caller's r1
+  // callee_context.r3 is not valid in callee.
+  // callee_context.r4 is not valid in callee.
+  callee_context.sp = stack_top;
+  callee_context.pc = 0x25b21b224311d280ULL;
+  int callee_validity = R0_VALID | R1_VALID | R2_VALID | SP_VALID | PC_VALID;
+
+  memset(&caller_context, 0, sizeof(caller_context));
+
+  int caller_validity;
+  EXPECT_TRUE(walker.FindCallerRegisters(memory, call_frame_info,
+                                         callee_context, callee_validity,
+                                         &caller_context, &caller_validity));
+  EXPECT_EQ(R0_VALID | R1_VALID | SP_VALID | PC_VALID, caller_validity);
+  EXPECT_EQ(0xdc1975eba8602302ULL, caller_context.r0);
+  EXPECT_EQ(0x5fe0027416b8b62aULL, caller_context.r1);
+  EXPECT_EQ(stack_top + 24,        caller_context.sp);
+  EXPECT_EQ(0xba5ad6d9acce28deULL, caller_context.pc);
+}
diff --git a/src/processor/contained_range_map-inl.h b/src/processor/contained_range_map-inl.h
new file mode 100644
index 0000000..edd11d7
--- /dev/null
+++ b/src/processor/contained_range_map-inl.h
@@ -0,0 +1,197 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// contained_range_map-inl.h: Hierarchically-organized range map implementation.
+//
+// See contained_range_map.h for documentation.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
+#define PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
+
+#include "processor/contained_range_map.h"
+
+#include <assert.h>
+
+#include "processor/logging.h"
+
+
+namespace google_breakpad {
+
+
+template<typename AddressType, typename EntryType>
+ContainedRangeMap<AddressType, EntryType>::~ContainedRangeMap() {
+  // Clear frees the children pointed to by the map, and frees the map itself.
+  Clear();
+}
+
+
+template<typename AddressType, typename EntryType>
+bool ContainedRangeMap<AddressType, EntryType>::StoreRange(
+    const AddressType& base, const AddressType& size, const EntryType& entry) {
+  AddressType high = base + size - 1;
+
+  // Check for undersize or overflow.
+  if (size <= 0 || high < base) {
+    //TODO(nealsid) We are commenting this out in order to prevent
+    // excessive logging.  We plan to move to better logging as this
+    // failure happens quite often and is expected(see comment in
+    // basic_source_line_resolver.cc:671).
+    // BPLOG(INFO) << "StoreRange failed, " << HexString(base) << "+"
+    // << HexString(size) << ", " << HexString(high);
+    return false;
+  }
+
+  if (!map_)
+    map_ = new AddressToRangeMap();
+
+  MapIterator iterator_base = map_->lower_bound(base);
+  MapIterator iterator_high = map_->lower_bound(high);
+  MapIterator iterator_end = map_->end();
+
+  if (iterator_base == iterator_high && iterator_base != iterator_end &&
+      base >= iterator_base->second->base_) {
+    // The new range is entirely within an existing child range.
+
+    // If the new range's geometry is exactly equal to an existing child
+    // range's, it violates the containment rules, and an attempt to store
+    // it must fail.  iterator_base->first contains the key, which was the
+    // containing child's high address.
+    if (iterator_base->second->base_ == base && iterator_base->first == high) {
+      // TODO(nealsid): See the TODO above on why this is commented out.
+//       BPLOG(INFO) << "StoreRange failed, identical range is already "
+//                      "present: " << HexString(base) << "+" << HexString(size);
+      return false;
+    }
+
+    // Pass the new range on to the child to attempt to store.
+    return iterator_base->second->StoreRange(base, size, entry);
+  }
+
+  // iterator_high might refer to an irrelevant range: one whose base address
+  // is higher than the new range's high address.  Set contains_high to true
+  // only if iterator_high refers to a range that is at least partially
+  // within the new range.
+  bool contains_high = iterator_high != iterator_end &&
+                       high >= iterator_high->second->base_;
+
+  // If the new range encompasses any existing child ranges, it must do so
+  // fully.  Partial containment isn't allowed.
+  if ((iterator_base != iterator_end && base > iterator_base->second->base_) ||
+      (contains_high && high < iterator_high->first)) {
+    // TODO(mmentovai): Some symbol files will trip this check frequently
+    // on STACK lines.  Too many messages will be produced.  These are more
+    // suitable for a DEBUG channel than an INFO channel.
+    // BPLOG(INFO) << "StoreRange failed, new range partially contains "
+    //               "existing range: " << HexString(base) << "+" <<
+    //               HexString(size);
+    return false;
+  }
+
+  // When copying and erasing contained ranges, the "end" iterator needs to
+  // point one past the last item of the range to copy.  If contains_high is
+  // false, the iterator's already in the right place; the increment is safe
+  // because contains_high can't be true if iterator_high == iterator_end.
+  if (contains_high)
+    ++iterator_high;
+
+  // Optimization: if the iterators are equal, no child ranges would be
+  // moved.  Create the new child range with a NULL map to conserve space
+  // in leaf nodes, of which there will be many.
+  AddressToRangeMap* child_map = NULL;
+
+  if (iterator_base != iterator_high) {
+    // The children of this range that are contained by the new range must
+    // be transferred over to the new range.  Create the new child range map
+    // and copy the pointers to range maps it should contain into it.
+    child_map = new AddressToRangeMap(iterator_base, iterator_high);
+
+    // Remove the copied child pointers from this range's map of children.
+    map_->erase(iterator_base, iterator_high);
+  }
+
+  // Store the new range in the map by its high address.  Any children that
+  // the new child range contains were formerly children of this range but
+  // are now this range's grandchildren.  Ownership of these is transferred
+  // to the new child range.
+  map_->insert(MapValue(high,
+                        new ContainedRangeMap(base, entry, child_map)));
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool ContainedRangeMap<AddressType, EntryType>::RetrieveRange(
+    const AddressType& address, EntryType* entry) const {
+  BPLOG_IF(ERROR, !entry) << "ContainedRangeMap::RetrieveRange requires "
+                             "|entry|";
+  assert(entry);
+
+  // If nothing was ever stored, then there's nothing to retrieve.
+  if (!map_)
+    return false;
+
+  // Get an iterator to the child range whose high address is equal to or
+  // greater than the supplied address.  If the supplied address is higher
+  // than all of the high addresses in the range, then this range does not
+  // contain a child at address, so return false.  If the supplied address
+  // is lower than the base address of the child range, then it is not within
+  // the child range, so return false.
+  MapConstIterator iterator = map_->lower_bound(address);
+  if (iterator == map_->end() || address < iterator->second->base_)
+    return false;
+
+  // The child in iterator->second contains the specified address.  Find out
+  // if it has a more-specific descendant that also contains it.  If it does,
+  // it will set |entry| appropriately.  If not, set |entry| to the child.
+  if (!iterator->second->RetrieveRange(address, entry))
+    *entry = iterator->second->entry_;
+
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+void ContainedRangeMap<AddressType, EntryType>::Clear() {
+  if (map_) {
+    MapConstIterator end = map_->end();
+    for (MapConstIterator child = map_->begin(); child != end; ++child)
+      delete child->second;
+
+    delete map_;
+    map_ = NULL;
+  }
+}
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
diff --git a/src/processor/contained_range_map.h b/src/processor/contained_range_map.h
new file mode 100644
index 0000000..18d03af
--- /dev/null
+++ b/src/processor/contained_range_map.h
@@ -0,0 +1,150 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// contained_range_map.h: Hierarchically-organized range maps.
+//
+// A contained range map is similar to a standard range map, except it allows
+// objects to be organized hierarchically.  A contained range map allows
+// objects to contain other objects.  It is not sensitive to the order that
+// objects are added to the map: larger, more general, containing objects
+// may be added either before or after smaller, more specific, contained
+// ones.
+//
+// Contained range maps guarantee that each object may only contain smaller
+// objects than itself, and that a parent object may only contain child
+// objects located entirely within the parent's address space.  Attempts
+// to introduce objects (via StoreRange) that violate these rules will fail.
+// Retrieval (via RetrieveRange) always returns the most specific (smallest)
+// object that contains the address being queried.  Note that while it is
+// not possible to insert two objects into a map that have exactly the same
+// geometry (base address and size), it is possible to completely mask a
+// larger object by inserting smaller objects that entirely fill the larger
+// object's address space.
+//
+// Internally, contained range maps are implemented as a tree.  Each tree
+// node except for the root node describes an object in the map.  Each node
+// maintains its list of children in a map similar to a standard range map,
+// keyed by the highest address that each child occupies.  Each node's
+// children occupy address ranges entirely within the node.  The root node
+// is the only node directly accessible to the user, and represents the
+// entire address space.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_CONTAINED_RANGE_MAP_H__
+#define PROCESSOR_CONTAINED_RANGE_MAP_H__
+
+
+#include <map>
+
+
+namespace google_breakpad {
+
+// Forward declarations (for later friend declarations of specialized template).
+template<class, class> class ContainedRangeMapSerializer;
+
+template<typename AddressType, typename EntryType>
+class ContainedRangeMap {
+ public:
+  // The default constructor creates a ContainedRangeMap with no geometry
+  // and no entry, and as such is only suitable for the root node of a
+  // ContainedRangeMap tree.
+  ContainedRangeMap() : base_(), entry_(), map_(NULL) {}
+
+  ~ContainedRangeMap();
+
+  // Inserts a range into the map.  If the new range is encompassed by
+  // an existing child range, the new range is passed into the child range's
+  // StoreRange method.  If the new range encompasses any existing child
+  // ranges, those child ranges are moved to the new range, becoming
+  // grandchildren of this ContainedRangeMap.  Returns false for a
+  // parameter error, or if the ContainedRangeMap hierarchy guarantees
+  // would be violated.
+  bool StoreRange(const AddressType& base,
+                  const AddressType& size,
+                  const EntryType& entry);
+
+  // Retrieves the most specific (smallest) descendant range encompassing
+  // the specified address.  This method will only return entries held by
+  // child ranges, and not the entry contained by |this|.  This is necessary
+  // to support a sparsely-populated root range.  If no descendant range
+  // encompasses the address, returns false.
+  bool RetrieveRange(const AddressType& address, EntryType* entry) const;
+
+  // Removes all children.  Note that Clear only removes descendants,
+  // leaving the node on which it is called intact.  Because the only
+  // meaningful things contained by a root node are descendants, this
+  // is sufficient to restore an entire ContainedRangeMap to its initial
+  // empty state when called on the root node.
+  void Clear();
+
+ private:
+  friend class ContainedRangeMapSerializer<AddressType, EntryType>;
+  friend class ModuleComparer;
+
+  // AddressToRangeMap stores pointers.  This makes reparenting simpler in
+  // StoreRange, because it doesn't need to copy entire objects.
+  typedef std::map<AddressType, ContainedRangeMap*> AddressToRangeMap;
+  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
+  typedef typename AddressToRangeMap::iterator MapIterator;
+  typedef typename AddressToRangeMap::value_type MapValue;
+
+  // Creates a new ContainedRangeMap with the specified base address, entry,
+  // and initial child map, which may be NULL.  This is only used internally
+  // by ContainedRangeMap when it creates a new child.
+  ContainedRangeMap(const AddressType& base, const EntryType& entry,
+                    AddressToRangeMap* map)
+      : base_(base), entry_(entry), map_(map) {}
+
+  // The base address of this range.  The high address does not need to
+  // be stored, because it is used as the key to an object in its parent's
+  // map, and all ContainedRangeMaps except for the root range are contained
+  // within maps.  The root range does not actually contain an entry, so its
+  // base_ field is meaningless, and the fact that it has no parent and thus
+  // no key is unimportant.  For this reason, the base_ field should only be
+  // is accessed on child ContainedRangeMap objects, and never on |this|.
+  const AddressType base_;
+
+  // The entry corresponding to this range.  The root range does not
+  // actually contain an entry, so its entry_ field is meaningless.  For
+  // this reason, the entry_ field should only be accessed on child
+  // ContainedRangeMap objects, and never on |this|.
+  const EntryType entry_;
+
+  // The map containing child ranges, keyed by each child range's high
+  // address.  This is a pointer to avoid allocating map structures for
+  // leaf nodes, where they are not needed.
+  AddressToRangeMap* map_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_CONTAINED_RANGE_MAP_H__
diff --git a/src/processor/contained_range_map_unittest.cc b/src/processor/contained_range_map_unittest.cc
new file mode 100644
index 0000000..a97c5d0
--- /dev/null
+++ b/src/processor/contained_range_map_unittest.cc
@@ -0,0 +1,263 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// contained_range_map_unittest.cc: Unit tests for ContainedRangeMap
+//
+// Author: Mark Mentovai
+
+#include <stdio.h>
+
+#include "processor/contained_range_map-inl.h"
+
+#include "processor/logging.h"
+
+
+#define ASSERT_TRUE(condition) \
+  if (!(condition)) { \
+    fprintf(stderr, "FAIL: %s @ %s:%d\n", #condition, __FILE__, __LINE__); \
+    return false; \
+  }
+
+#define ASSERT_FALSE(condition) ASSERT_TRUE(!(condition))
+
+
+namespace {
+
+
+using google_breakpad::ContainedRangeMap;
+
+
+static bool RunTests() {
+  ContainedRangeMap<unsigned int, int> crm;
+
+  // First, do the StoreRange tests.  This validates the containment
+  // rules.
+  ASSERT_TRUE (crm.StoreRange(10, 10,  1));
+  ASSERT_FALSE(crm.StoreRange(10, 10,  2));  // exactly equal to 1
+  ASSERT_FALSE(crm.StoreRange(11, 10,  3));  // begins inside 1 and extends up
+  ASSERT_FALSE(crm.StoreRange( 9, 10,  4));  // begins below 1 and ends inside
+  ASSERT_TRUE (crm.StoreRange(11,  9,  5));  // contained by existing
+  ASSERT_TRUE (crm.StoreRange(12,  7,  6));
+  ASSERT_TRUE (crm.StoreRange( 9, 12,  7));  // contains existing
+  ASSERT_TRUE (crm.StoreRange( 9, 13,  8));
+  ASSERT_TRUE (crm.StoreRange( 8, 14,  9));
+  ASSERT_TRUE (crm.StoreRange(30,  3, 10));
+  ASSERT_TRUE (crm.StoreRange(33,  3, 11));
+  ASSERT_TRUE (crm.StoreRange(30,  6, 12));  // storable but totally masked
+  ASSERT_TRUE (crm.StoreRange(40,  8, 13));  // will be totally masked
+  ASSERT_TRUE (crm.StoreRange(40,  4, 14));
+  ASSERT_TRUE (crm.StoreRange(44,  4, 15));
+  ASSERT_FALSE(crm.StoreRange(32, 10, 16));  // begins in #10, ends in #14
+  ASSERT_FALSE(crm.StoreRange(50,  0, 17));  // zero length
+  ASSERT_TRUE (crm.StoreRange(50, 10, 18));
+  ASSERT_TRUE (crm.StoreRange(50,  1, 19));
+  ASSERT_TRUE (crm.StoreRange(59,  1, 20));
+  ASSERT_TRUE (crm.StoreRange(60,  1, 21));
+  ASSERT_TRUE (crm.StoreRange(69,  1, 22));
+  ASSERT_TRUE (crm.StoreRange(60, 10, 23));
+  ASSERT_TRUE (crm.StoreRange(68,  1, 24));
+  ASSERT_TRUE (crm.StoreRange(61,  1, 25));
+  ASSERT_TRUE (crm.StoreRange(61,  8, 26));
+  ASSERT_FALSE(crm.StoreRange(59,  9, 27));
+  ASSERT_FALSE(crm.StoreRange(59, 10, 28));
+  ASSERT_FALSE(crm.StoreRange(59, 11, 29));
+  ASSERT_TRUE (crm.StoreRange(70, 10, 30));
+  ASSERT_TRUE (crm.StoreRange(74,  2, 31));
+  ASSERT_TRUE (crm.StoreRange(77,  2, 32));
+  ASSERT_FALSE(crm.StoreRange(72,  6, 33));
+  ASSERT_TRUE (crm.StoreRange(80,  3, 34));
+  ASSERT_TRUE (crm.StoreRange(81,  1, 35));
+  ASSERT_TRUE (crm.StoreRange(82,  1, 36));
+  ASSERT_TRUE (crm.StoreRange(83,  3, 37));
+  ASSERT_TRUE (crm.StoreRange(84,  1, 38));
+  ASSERT_TRUE (crm.StoreRange(83,  1, 39));
+  ASSERT_TRUE (crm.StoreRange(86,  5, 40));
+  ASSERT_TRUE (crm.StoreRange(88,  1, 41));
+  ASSERT_TRUE (crm.StoreRange(90,  1, 42));
+  ASSERT_TRUE (crm.StoreRange(86,  1, 43));
+  ASSERT_TRUE (crm.StoreRange(87,  1, 44));
+  ASSERT_TRUE (crm.StoreRange(89,  1, 45));
+  ASSERT_TRUE (crm.StoreRange(87,  4, 46));
+  ASSERT_TRUE (crm.StoreRange(87,  3, 47));
+  ASSERT_FALSE(crm.StoreRange(86,  2, 48));
+
+  // Each element in test_data contains the expected result when calling
+  // RetrieveRange on an address.
+  const int test_data[] = {
+    0,   // 0
+    0,   // 1
+    0,   // 2
+    0,   // 3
+    0,   // 4
+    0,   // 5
+    0,   // 6
+    0,   // 7
+    9,   // 8
+    7,   // 9
+    1,   // 10
+    5,   // 11
+    6,   // 12
+    6,   // 13
+    6,   // 14
+    6,   // 15
+    6,   // 16
+    6,   // 17
+    6,   // 18
+    5,   // 19
+    7,   // 20
+    8,   // 21
+    0,   // 22
+    0,   // 23
+    0,   // 24
+    0,   // 25
+    0,   // 26
+    0,   // 27
+    0,   // 28
+    0,   // 29
+    10,  // 30
+    10,  // 31
+    10,  // 32
+    11,  // 33
+    11,  // 34
+    11,  // 35
+    0,   // 36
+    0,   // 37
+    0,   // 38
+    0,   // 39
+    14,  // 40
+    14,  // 41
+    14,  // 42
+    14,  // 43
+    15,  // 44
+    15,  // 45
+    15,  // 46
+    15,  // 47
+    0,   // 48
+    0,   // 49
+    19,  // 50
+    18,  // 51
+    18,  // 52
+    18,  // 53
+    18,  // 54
+    18,  // 55
+    18,  // 56
+    18,  // 57
+    18,  // 58
+    20,  // 59
+    21,  // 60
+    25,  // 61
+    26,  // 62
+    26,  // 63
+    26,  // 64
+    26,  // 65
+    26,  // 66
+    26,  // 67
+    24,  // 68
+    22,  // 69
+    30,  // 70
+    30,  // 71
+    30,  // 72
+    30,  // 73
+    31,  // 74
+    31,  // 75
+    30,  // 76
+    32,  // 77
+    32,  // 78
+    30,  // 79
+    34,  // 80
+    35,  // 81
+    36,  // 82
+    39,  // 83
+    38,  // 84
+    37,  // 85
+    43,  // 86
+    44,  // 87
+    41,  // 88
+    45,  // 89
+    42,  // 90
+    0,   // 91
+    0,   // 92
+    0,   // 93
+    0,   // 94
+    0,   // 95
+    0,   // 96
+    0,   // 97
+    0,   // 98
+    0    // 99
+  };
+  unsigned int test_high = sizeof(test_data) / sizeof(int);
+
+  // Now, do the RetrieveRange tests.  This further validates that the
+  // objects were stored properly and that retrieval returns the correct
+  // object.
+  // If GENERATE_TEST_DATA is defined, instead of the retrieval tests, a
+  // new test_data array will be printed.  Exercise caution when doing this.
+  // Be sure to verify the results manually!
+#ifdef GENERATE_TEST_DATA
+  printf("  const int test_data[] = {\n");
+#endif  // GENERATE_TEST_DATA
+
+  for (unsigned int address = 0; address < test_high; ++address) {
+    int value;
+    if (!crm.RetrieveRange(address, &value))
+      value = 0;
+
+#ifndef GENERATE_TEST_DATA
+    // Don't use ASSERT inside the loop because it won't show the failed
+    // |address|, and the line number will always be the same.  That makes
+    // it difficult to figure out which test failed.
+    if (value != test_data[address]) {
+      fprintf(stderr, "FAIL: retrieve %d expected %d observed %d @ %s:%d\n",
+              address, test_data[address], value, __FILE__, __LINE__);
+      return false;
+    }
+#else  // !GENERATE_TEST_DATA
+    printf("    %d%c%s  // %d\n", value,
+                                  address == test_high - 1 ? ' ' : ',',
+                                  value < 10 ? " " : "",
+                                  address);
+#endif  // !GENERATE_TEST_DATA
+  }
+
+#ifdef GENERATE_TEST_DATA
+  printf("  };\n");
+#endif  // GENERATE_TEST_DATA
+
+  return true;
+}
+
+
+}  // namespace
+
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/processor/convert_old_arm64_context.cc b/src/processor/convert_old_arm64_context.cc
new file mode 100644
index 0000000..d4b749e
--- /dev/null
+++ b/src/processor/convert_old_arm64_context.cc
@@ -0,0 +1,67 @@
+// Copyright (c) 2018, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "processor/convert_old_arm64_context.h"
+
+#include <string.h>
+
+namespace google_breakpad {
+
+void ConvertOldARM64Context(const MDRawContextARM64_Old& old,
+                            MDRawContextARM64* context) {
+  context->context_flags = MD_CONTEXT_ARM64;
+  if (old.context_flags & MD_CONTEXT_ARM64_INTEGER_OLD) {
+    context->context_flags |=
+        MD_CONTEXT_ARM64_INTEGER | MD_CONTEXT_ARM64_CONTROL;
+  }
+  if (old.context_flags & MD_CONTEXT_ARM64_FLOATING_POINT_OLD) {
+    context->context_flags |= MD_CONTEXT_ARM64_FLOATING_POINT;
+  }
+
+  context->cpsr = old.cpsr;
+
+  static_assert(sizeof(old.iregs) == sizeof(context->iregs),
+                "iregs size mismatch");
+  memcpy(context->iregs, old.iregs, sizeof(context->iregs));
+
+  static_assert(sizeof(old.float_save.regs) == sizeof(context->float_save.regs),
+                "float_save.regs size mismatch");
+  memcpy(context->float_save.regs,
+         old.float_save.regs,
+         sizeof(context->float_save.regs));
+  context->float_save.fpcr = old.float_save.fpcr;
+  context->float_save.fpsr = old.float_save.fpsr;
+
+  memset(context->bcr, 0, sizeof(context->bcr));
+  memset(context->bvr, 0, sizeof(context->bvr));
+  memset(context->wcr, 0, sizeof(context->wcr));
+  memset(context->wvr, 0, sizeof(context->wvr));
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/convert_old_arm64_context.h b/src/processor/convert_old_arm64_context.h
new file mode 100644
index 0000000..8c0dfe9
--- /dev/null
+++ b/src/processor/convert_old_arm64_context.h
@@ -0,0 +1,42 @@
+// Copyright (c) 2018, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
+#define PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
+
+#include "google_breakpad/common/minidump_cpu_arm64.h"
+
+namespace google_breakpad {
+
+void ConvertOldARM64Context(const MDRawContextARM64_Old& old,
+                            MDRawContextARM64* context);
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
diff --git a/src/processor/disassembler_x86.cc b/src/processor/disassembler_x86.cc
new file mode 100644
index 0000000..0126767
--- /dev/null
+++ b/src/processor/disassembler_x86.cc
@@ -0,0 +1,240 @@
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// disassembler_x86.cc: simple x86 disassembler.
+//
+// Provides single step disassembly of x86 bytecode and flags instructions
+// that utilize known bad register values.
+//
+// Author: Cris Neckar
+
+#include "processor/disassembler_x86.h"
+
+#include <string.h>
+
+namespace google_breakpad {
+
+DisassemblerX86::DisassemblerX86(const uint8_t* bytecode,
+                                 uint32_t size,
+                                 uint32_t virtual_address) :
+                                     bytecode_(bytecode),
+                                     size_(size),
+                                     virtual_address_(virtual_address),
+                                     current_byte_offset_(0),
+                                     current_inst_offset_(0),
+                                     instr_valid_(false),
+                                     register_valid_(false),
+                                     pushed_bad_value_(false),
+                                     end_of_block_(false),
+                                     flags_(0) {
+  libdis::x86_init(libdis::opt_none, NULL, NULL);
+}
+
+DisassemblerX86::~DisassemblerX86() {
+  if (instr_valid_)
+    libdis::x86_oplist_free(&current_instr_);
+
+  libdis::x86_cleanup();
+}
+
+uint32_t DisassemblerX86::NextInstruction() {
+  if (instr_valid_)
+    libdis::x86_oplist_free(&current_instr_);
+
+  if (current_byte_offset_ >= size_) {
+    instr_valid_ = false;
+    return 0;
+  }
+  uint32_t instr_size = 0;
+  instr_size = libdis::x86_disasm((unsigned char*)bytecode_, size_,
+                          virtual_address_, current_byte_offset_,
+                          &current_instr_);
+  if (instr_size == 0) {
+    instr_valid_ = false;
+    return 0;
+  }
+
+  current_byte_offset_ += instr_size;
+  current_inst_offset_++;
+  instr_valid_ = libdis::x86_insn_is_valid(&current_instr_);
+  if (!instr_valid_)
+    return 0;
+
+  if (current_instr_.type == libdis::insn_return)
+    end_of_block_ = true;
+  libdis::x86_op_t* src = libdis::x86_get_src_operand(&current_instr_);
+  libdis::x86_op_t* dest = libdis::x86_get_dest_operand(&current_instr_);
+
+  if (register_valid_) {
+    switch (current_instr_.group) {
+      // Flag branches based off of bad registers and calls that occur
+      // after pushing bad values.
+      case libdis::insn_controlflow:
+        switch (current_instr_.type) {
+          case libdis::insn_jmp:
+          case libdis::insn_jcc:
+          case libdis::insn_call:
+          case libdis::insn_callcc:
+            if (dest) {
+              switch (dest->type) {
+                case libdis::op_expression:
+                  if (dest->data.expression.base.id == bad_register_.id)
+                    flags_ |= DISX86_BAD_BRANCH_TARGET;
+                  break;
+                case libdis::op_register:
+                  if (dest->data.reg.id == bad_register_.id)
+                    flags_ |= DISX86_BAD_BRANCH_TARGET;
+                  break;
+                default:
+                  if (pushed_bad_value_ &&
+                      (current_instr_.type == libdis::insn_call ||
+                      current_instr_.type == libdis::insn_callcc))
+                    flags_ |= DISX86_BAD_ARGUMENT_PASSED;
+                  break;
+              }
+            }
+            break;
+          default:
+            break;
+        }
+        break;
+
+      // Flag block data operations that use bad registers for src or dest.
+      case libdis::insn_string:
+        if (dest && dest->type == libdis::op_expression &&
+            dest->data.expression.base.id == bad_register_.id)
+          flags_ |= DISX86_BAD_BLOCK_WRITE;
+        if (src && src->type == libdis::op_expression &&
+            src->data.expression.base.id == bad_register_.id)
+          flags_ |= DISX86_BAD_BLOCK_READ;
+        break;
+
+      // Flag comparisons based on bad data.
+      case libdis::insn_comparison:
+        if ((dest && dest->type == libdis::op_expression &&
+            dest->data.expression.base.id == bad_register_.id) ||
+            (src && src->type == libdis::op_expression &&
+            src->data.expression.base.id == bad_register_.id) ||
+            (dest && dest->type == libdis::op_register &&
+            dest->data.reg.id == bad_register_.id) ||
+            (src && src->type == libdis::op_register &&
+            src->data.reg.id == bad_register_.id))
+          flags_ |= DISX86_BAD_COMPARISON;
+        break;
+
+      // Flag any other instruction which derefs a bad register for
+      // src or dest.
+      default:
+        if (dest && dest->type == libdis::op_expression &&
+            dest->data.expression.base.id == bad_register_.id)
+          flags_ |= DISX86_BAD_WRITE;
+        if (src && src->type == libdis::op_expression &&
+            src->data.expression.base.id == bad_register_.id)
+          flags_ |= DISX86_BAD_READ;
+        break;
+    }
+  }
+
+  // When a register is marked as tainted check if it is pushed.
+  // TODO(cdn): may also want to check for MOVs into EBP offsets.
+  if (register_valid_ && dest && current_instr_.type == libdis::insn_push) {
+    switch (dest->type) {
+      case libdis::op_expression:
+        if (dest->data.expression.base.id == bad_register_.id ||
+            dest->data.expression.index.id == bad_register_.id)
+          pushed_bad_value_ = true;
+        break;
+      case libdis::op_register:
+        if (dest->data.reg.id == bad_register_.id)
+          pushed_bad_value_ = true;
+        break;
+      default:
+        break;
+    }
+  }
+
+  // Check if a tainted register value is clobbered.
+  // For conditional MOVs and XCHGs assume that
+  // there is a hit.
+  if (register_valid_) {
+    switch (current_instr_.type) {
+      case libdis::insn_xor:
+        if (src && src->type == libdis::op_register &&
+            dest && dest->type == libdis::op_register &&
+            src->data.reg.id == bad_register_.id &&
+            src->data.reg.id == dest->data.reg.id)
+          register_valid_ = false;
+        break;
+      case libdis::insn_pop:
+      case libdis::insn_mov:
+      case libdis::insn_movcc:
+        if (dest && dest->type == libdis::op_register &&
+            dest->data.reg.id == bad_register_.id)
+          register_valid_ = false;
+        break;
+      case libdis::insn_popregs:
+        register_valid_ = false;
+        break;
+      case libdis::insn_xchg:
+      case libdis::insn_xchgcc:
+        if (dest && dest->type == libdis::op_register &&
+            src && src->type == libdis::op_register) {
+          if (dest->data.reg.id == bad_register_.id)
+            memcpy(&bad_register_, &src->data.reg, sizeof(libdis::x86_reg_t));
+          else if (src->data.reg.id == bad_register_.id)
+            memcpy(&bad_register_, &dest->data.reg, sizeof(libdis::x86_reg_t));
+        }
+        break;
+      default:
+        break;
+    }
+  }
+
+  return instr_size;
+}
+
+bool DisassemblerX86::setBadRead() {
+  if (!instr_valid_)
+    return false;
+
+  libdis::x86_op_t* operand = libdis::x86_get_src_operand(&current_instr_);
+  if (!operand || operand->type != libdis::op_expression)
+    return false;
+
+  memcpy(&bad_register_, &operand->data.expression.base,
+         sizeof(libdis::x86_reg_t));
+  register_valid_ = true;
+  return true;
+}
+
+bool DisassemblerX86::setBadWrite() {
+  if (!instr_valid_)
+    return false;
+
+  libdis::x86_op_t* operand = libdis::x86_get_dest_operand(&current_instr_);
+  if (!operand || operand->type != libdis::op_expression)
+    return false;
+
+  memcpy(&bad_register_, &operand->data.expression.base,
+         sizeof(libdis::x86_reg_t));
+  register_valid_ = true;
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/disassembler_x86.h b/src/processor/disassembler_x86.h
new file mode 100644
index 0000000..ca65b6e
--- /dev/null
+++ b/src/processor/disassembler_x86.h
@@ -0,0 +1,127 @@
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// disassembler_x86.h: Basic x86 bytecode disassembler
+//
+// Provides a simple disassembler which wraps libdisasm. This allows simple
+// tests to be run against bytecode to test for various properties.
+//
+// Author: Cris Neckar
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
+
+#include <stddef.h>
+#include <sys/types.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace libdis {
+#include "third_party/libdisasm/libdis.h"
+}
+
+namespace google_breakpad {
+
+enum {
+  DISX86_NONE =                 0x0,
+  DISX86_BAD_BRANCH_TARGET =    0x1,
+  DISX86_BAD_ARGUMENT_PASSED =  0x2,
+  DISX86_BAD_WRITE =            0x4,
+  DISX86_BAD_BLOCK_WRITE =      0x8,
+  DISX86_BAD_READ =             0x10,
+  DISX86_BAD_BLOCK_READ =       0x20,
+  DISX86_BAD_COMPARISON =       0x40
+};
+
+class DisassemblerX86 {
+  public:
+    // TODO(cdn): Modify this class to take a MemoryRegion instead of just
+    // a raw buffer. This will make it easier to use this on arbitrary
+    // minidumps without first copying out the code segment.
+    DisassemblerX86(const uint8_t* bytecode, uint32_t, uint32_t);
+    ~DisassemblerX86();
+
+    // This walks to the next instruction in the memory region and
+    // sets flags based on the type of instruction and previous state
+    // including any registers marked as bad through setBadRead()
+    // or setBadWrite(). This method can be called in a loop to
+    // disassemble until the end of a region.
+    uint32_t NextInstruction();
+
+    // Indicates whether the current disassembled instruction was valid.
+    bool currentInstructionValid() { return instr_valid_; }
+
+    // Returns the current instruction as defined in libdis.h,
+    // or NULL if the current instruction is not valid.
+    const libdis::x86_insn_t* currentInstruction() {
+      return instr_valid_ ? &current_instr_ : NULL;
+    }
+
+    // Returns the type of the current instruction as defined in libdis.h.
+    libdis::x86_insn_group currentInstructionGroup() {
+      return current_instr_.group;
+    }
+
+    // Indicates whether a return instruction has been encountered.
+    bool endOfBlock() { return end_of_block_; }
+
+    // The flags set so far for the disassembly.
+    uint16_t flags() { return flags_; }
+
+    // This sets an indicator that the register used to determine
+    // src or dest for the current instruction is tainted. These can
+    // be used after examining the current instruction to indicate,
+    // for example that a bad read or write occurred and the pointer
+    // stored in the register is currently invalid.
+    bool setBadRead();
+    bool setBadWrite();
+
+  protected:
+    const uint8_t* bytecode_;
+    uint32_t size_;
+    uint32_t virtual_address_;
+    uint32_t current_byte_offset_;
+    uint32_t current_inst_offset_;
+
+    bool instr_valid_;
+    libdis::x86_insn_t current_instr_;
+
+    // TODO(cdn): Maybe also track an expression's index register.
+    // ex: mov eax, [ebx + ecx]; ebx is base, ecx is index.
+    bool register_valid_;
+    libdis::x86_reg_t bad_register_;
+
+    bool pushed_bad_value_;
+    bool end_of_block_;
+
+    uint16_t flags_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
diff --git a/src/processor/disassembler_x86_unittest.cc b/src/processor/disassembler_x86_unittest.cc
new file mode 100644
index 0000000..352905f
--- /dev/null
+++ b/src/processor/disassembler_x86_unittest.cc
@@ -0,0 +1,233 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+
+#include <unistd.h>
+
+#include "breakpad_googletest_includes.h"
+#include "processor/disassembler_x86.h"
+#include "third_party/libdisasm/libdis.h"
+
+namespace {
+
+using google_breakpad::DisassemblerX86;
+
+unsigned char just_return[] = "\xc3";  // retn
+
+unsigned char invalid_instruction[] = "\x00";  // invalid
+
+unsigned char read_eax_jmp_eax[] =
+    "\x8b\x18"                  // mov ebx, [eax];
+    "\x33\xc9"                  // xor ebx, ebx;
+    "\xff\x20"                  // jmp eax;
+    "\xc3";                     // retn;
+
+unsigned char write_eax_arg_to_call[] =
+    "\x89\xa8\x00\x02\x00\x00"  // mov [eax+200], ebp;
+    "\xc1\xeb\x02"              // shr ebx, 2;
+    "\x50"                      // push eax;
+    "\xe8\xd1\x24\x77\x88"      // call something;
+    "\xc3";                     // retn;
+
+unsigned char read_edi_stosb[] =
+    "\x8b\x07"                  // mov eax, [edi];
+    "\x8b\xc8"                  // mov ecx, eax;
+    "\xf3\xaa"                  // rep stosb;
+    "\xc3";                     // retn;
+
+unsigned char read_clobber_write[] =
+    "\x03\x18"                  // add ebx, [eax];
+    "\x8b\xc1"                  // mov eax, ecx;
+    "\x89\x10"                  // mov [eax], edx;
+    "\xc3";                     // retn;
+
+unsigned char read_xchg_write[] =
+    "\x03\x18"                  // add ebx, [eax];
+    "\x91"                      // xchg eax, ecx;
+    "\x89\x18"                  // mov [eax], ebx;
+    "\x89\x11"                  // mov [ecx], edx;
+    "\xc3";                     // retn;
+
+unsigned char read_cmp[] =
+    "\x03\x18"                  // add ebx, [eax];
+    "\x83\xf8\x00"              // cmp eax, 0;
+    "\x74\x04"                  // je +4;
+    "\xc3";                     // retn;
+
+TEST(DisassemblerX86Test, SimpleReturnInstruction) {
+  DisassemblerX86 dis(just_return, sizeof(just_return)-1, 0);
+  EXPECT_EQ(1U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_TRUE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
+  const libdis::x86_insn_t* instruction = dis.currentInstruction();
+  EXPECT_EQ(libdis::insn_controlflow, instruction->group);
+  EXPECT_EQ(libdis::insn_return, instruction->type);
+  EXPECT_EQ(0U, dis.NextInstruction());
+  EXPECT_FALSE(dis.currentInstructionValid());
+  EXPECT_EQ(NULL, dis.currentInstruction());
+}
+
+TEST(DisassemblerX86Test, SimpleInvalidInstruction) {
+  DisassemblerX86 dis(invalid_instruction, sizeof(invalid_instruction)-1, 0);
+  EXPECT_EQ(0U, dis.NextInstruction());
+  EXPECT_FALSE(dis.currentInstructionValid());
+}
+
+TEST(DisassemblerX86Test, BadReadLeadsToBranch) {
+  DisassemblerX86 dis(read_eax_jmp_eax, sizeof(read_eax_jmp_eax)-1, 0);
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadRead());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_logic, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_BRANCH_TARGET, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
+}
+
+TEST(DisassemblerX86Test, BadWriteLeadsToPushedArg) {
+  DisassemblerX86 dis(write_eax_arg_to_call,
+                      sizeof(write_eax_arg_to_call)-1, 0);
+  EXPECT_EQ(6U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadWrite());
+  EXPECT_EQ(3U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
+  EXPECT_EQ(1U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(5U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_ARGUMENT_PASSED, dis.flags());
+  EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
+  EXPECT_FALSE(dis.endOfBlock());
+}
+
+
+TEST(DisassemblerX86Test, BadReadLeadsToBlockWrite) {
+  DisassemblerX86 dis(read_edi_stosb, sizeof(read_edi_stosb)-1, 0);
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadRead());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_BLOCK_WRITE, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_string, dis.currentInstructionGroup());
+}
+
+TEST(DisassemblerX86Test, BadReadClobberThenWrite) {
+  DisassemblerX86 dis(read_clobber_write, sizeof(read_clobber_write)-1, 0);
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadRead());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+}
+
+TEST(DisassemblerX86Test, BadReadXCHGThenWrite) {
+  DisassemblerX86 dis(read_xchg_write, sizeof(read_xchg_write)-1, 0);
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadRead());
+  EXPECT_EQ(1U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_WRITE, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
+}
+
+TEST(DisassemblerX86Test, BadReadThenCMP) {
+  DisassemblerX86 dis(read_cmp, sizeof(read_cmp)-1, 0);
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(0U, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
+  EXPECT_TRUE(dis.setBadRead());
+  EXPECT_EQ(3U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_COMPARISON, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_comparison, dis.currentInstructionGroup());
+  EXPECT_EQ(2U, dis.NextInstruction());
+  EXPECT_TRUE(dis.currentInstructionValid());
+  EXPECT_EQ(google_breakpad::DISX86_BAD_COMPARISON, dis.flags());
+  EXPECT_FALSE(dis.endOfBlock());
+  EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
+}
+}
diff --git a/src/processor/dump_context.cc b/src/processor/dump_context.cc
new file mode 100644
index 0000000..da531b7
--- /dev/null
+++ b/src/processor/dump_context.cc
@@ -0,0 +1,664 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_context.cc: A (mini/micro)dump context.
+//
+// See dump_context.h for documentation.
+
+#include "google_breakpad/processor/dump_context.h"
+
+#include <assert.h>
+
+#ifdef _WIN32
+#include <io.h>
+#else  // _WIN32
+#include <unistd.h>
+#endif  // _WIN32
+
+#include "common/stdio_wrapper.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+DumpContext::DumpContext() : context_(),
+                             context_flags_(0) { }
+
+DumpContext::~DumpContext() {
+  FreeContext();
+}
+
+uint32_t DumpContext::GetContextCPU() const {
+  if (!valid_) {
+    // Don't log a message, GetContextCPU can be legitimately called with
+    // valid_ false by FreeContext, which is called by Read.
+    return 0;
+  }
+
+  return context_flags_ & MD_CONTEXT_CPU_MASK;
+}
+
+uint32_t DumpContext::GetContextFlags() const {
+  return context_flags_;
+}
+
+const MDRawContextX86* DumpContext::GetContextX86() const {
+  if (GetContextCPU() != MD_CONTEXT_X86) {
+    BPLOG(ERROR) << "DumpContext cannot get x86 context";
+    return NULL;
+  }
+
+  return context_.x86;
+}
+
+const MDRawContextPPC* DumpContext::GetContextPPC() const {
+  if (GetContextCPU() != MD_CONTEXT_PPC) {
+    BPLOG(ERROR) << "DumpContext cannot get ppc context";
+    return NULL;
+  }
+
+  return context_.ppc;
+}
+
+const MDRawContextPPC64* DumpContext::GetContextPPC64() const {
+  if (GetContextCPU() != MD_CONTEXT_PPC64) {
+    BPLOG(ERROR) << "DumpContext cannot get ppc64 context";
+    return NULL;
+  }
+
+  return context_.ppc64;
+}
+
+const MDRawContextAMD64* DumpContext::GetContextAMD64() const {
+  if (GetContextCPU() != MD_CONTEXT_AMD64) {
+    BPLOG(ERROR) << "DumpContext cannot get amd64 context";
+    return NULL;
+  }
+
+  return context_.amd64;
+}
+
+const MDRawContextSPARC* DumpContext::GetContextSPARC() const {
+  if (GetContextCPU() != MD_CONTEXT_SPARC) {
+    BPLOG(ERROR) << "DumpContext cannot get sparc context";
+    return NULL;
+  }
+
+  return context_.ctx_sparc;
+}
+
+const MDRawContextARM* DumpContext::GetContextARM() const {
+  if (GetContextCPU() != MD_CONTEXT_ARM) {
+    BPLOG(ERROR) << "DumpContext cannot get arm context";
+    return NULL;
+  }
+
+  return context_.arm;
+}
+
+const MDRawContextARM64* DumpContext::GetContextARM64() const {
+  if (GetContextCPU() != MD_CONTEXT_ARM64) {
+    BPLOG(ERROR) << "DumpContext cannot get arm64 context";
+    return NULL;
+  }
+
+  return context_.arm64;
+}
+
+const MDRawContextMIPS* DumpContext::GetContextMIPS() const {
+  if ((GetContextCPU() != MD_CONTEXT_MIPS) &&
+      (GetContextCPU() != MD_CONTEXT_MIPS64)) {
+    BPLOG(ERROR) << "DumpContext cannot get MIPS context";
+    return NULL;
+  }
+
+  return context_.ctx_mips;
+}
+
+bool DumpContext::GetInstructionPointer(uint64_t* ip) const {
+  BPLOG_IF(ERROR, !ip) << "DumpContext::GetInstructionPointer requires |ip|";
+  assert(ip);
+  *ip = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid DumpContext for GetInstructionPointer";
+    return false;
+  }
+
+  switch (GetContextCPU()) {
+  case MD_CONTEXT_AMD64:
+    *ip = GetContextAMD64()->rip;
+    break;
+  case MD_CONTEXT_ARM:
+    *ip = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_PC];
+    break;
+  case MD_CONTEXT_ARM64:
+    *ip = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_PC];
+    break;
+  case MD_CONTEXT_PPC:
+    *ip = GetContextPPC()->srr0;
+    break;
+  case MD_CONTEXT_PPC64:
+    *ip = GetContextPPC64()->srr0;
+    break;
+  case MD_CONTEXT_SPARC:
+    *ip = GetContextSPARC()->pc;
+    break;
+  case MD_CONTEXT_X86:
+    *ip = GetContextX86()->eip;
+    break;
+  case MD_CONTEXT_MIPS:
+  case MD_CONTEXT_MIPS64:
+    *ip = GetContextMIPS()->epc;
+    break;
+  default:
+    // This should never happen.
+    BPLOG(ERROR) << "Unknown CPU architecture in GetInstructionPointer";
+    return false;
+  }
+  return true;
+}
+
+bool DumpContext::GetStackPointer(uint64_t* sp) const {
+  BPLOG_IF(ERROR, !sp) << "DumpContext::GetStackPointer requires |sp|";
+  assert(sp);
+  *sp = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid DumpContext for GetStackPointer";
+    return false;
+  }
+
+  switch (GetContextCPU()) {
+  case MD_CONTEXT_AMD64:
+    *sp = GetContextAMD64()->rsp;
+    break;
+  case MD_CONTEXT_ARM:
+    *sp = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_SP];
+    break;
+  case MD_CONTEXT_ARM64:
+    *sp = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_SP];
+    break;
+  case MD_CONTEXT_PPC:
+    *sp = GetContextPPC()->gpr[MD_CONTEXT_PPC_REG_SP];
+    break;
+  case MD_CONTEXT_PPC64:
+    *sp = GetContextPPC64()->gpr[MD_CONTEXT_PPC64_REG_SP];
+    break;
+  case MD_CONTEXT_SPARC:
+    *sp = GetContextSPARC()->g_r[MD_CONTEXT_SPARC_REG_SP];
+    break;
+  case MD_CONTEXT_X86:
+    *sp = GetContextX86()->esp;
+    break;
+  case MD_CONTEXT_MIPS:
+  case MD_CONTEXT_MIPS64:
+    *sp = GetContextMIPS()->iregs[MD_CONTEXT_MIPS_REG_SP];
+    break;
+  default:
+    // This should never happen.
+    BPLOG(ERROR) << "Unknown CPU architecture in GetStackPointer";
+    return false;
+  }
+  return true;
+}
+
+void DumpContext::SetContextFlags(uint32_t context_flags) {
+  context_flags_ = context_flags;
+}
+
+void DumpContext::SetContextX86(MDRawContextX86* x86) {
+  context_.x86 = x86;
+}
+
+void DumpContext::SetContextPPC(MDRawContextPPC* ppc) {
+  context_.ppc = ppc;
+}
+
+void DumpContext::SetContextPPC64(MDRawContextPPC64* ppc64) {
+  context_.ppc64 = ppc64;
+}
+
+void DumpContext::SetContextAMD64(MDRawContextAMD64* amd64) {
+  context_.amd64 = amd64;
+}
+
+void DumpContext::SetContextSPARC(MDRawContextSPARC* ctx_sparc) {
+  context_.ctx_sparc = ctx_sparc;
+}
+
+void DumpContext::SetContextARM(MDRawContextARM* arm) {
+  context_.arm = arm;
+}
+
+void DumpContext::SetContextARM64(MDRawContextARM64* arm64) {
+  context_.arm64 = arm64;
+}
+
+void DumpContext::SetContextMIPS(MDRawContextMIPS* ctx_mips) {
+  context_.ctx_mips = ctx_mips;
+}
+
+void DumpContext::FreeContext() {
+  switch (GetContextCPU()) {
+    case MD_CONTEXT_X86:
+      delete context_.x86;
+      break;
+
+    case MD_CONTEXT_PPC:
+      delete context_.ppc;
+      break;
+
+    case MD_CONTEXT_PPC64:
+      delete context_.ppc64;
+      break;
+
+    case MD_CONTEXT_AMD64:
+      delete context_.amd64;
+      break;
+
+    case MD_CONTEXT_SPARC:
+      delete context_.ctx_sparc;
+      break;
+
+    case MD_CONTEXT_ARM:
+      delete context_.arm;
+      break;
+
+    case MD_CONTEXT_ARM64:
+      delete context_.arm64;
+      break;
+
+    case MD_CONTEXT_MIPS:
+    case MD_CONTEXT_MIPS64:
+      delete context_.ctx_mips;
+      break;
+
+    default:
+      // There is no context record (valid_ is false) or there's a
+      // context record for an unknown CPU (shouldn't happen, only known
+      // records are stored by Read).
+      break;
+  }
+
+  context_flags_ = 0;
+  context_.base = NULL;
+}
+
+void DumpContext::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "DumpContext cannot print invalid data";
+    return;
+  }
+
+  switch (GetContextCPU()) {
+    case MD_CONTEXT_X86: {
+      const MDRawContextX86* context_x86 = GetContextX86();
+      printf("MDRawContextX86\n");
+      printf("  context_flags                = 0x%x\n",
+             context_x86->context_flags);
+      printf("  dr0                          = 0x%x\n", context_x86->dr0);
+      printf("  dr1                          = 0x%x\n", context_x86->dr1);
+      printf("  dr2                          = 0x%x\n", context_x86->dr2);
+      printf("  dr3                          = 0x%x\n", context_x86->dr3);
+      printf("  dr6                          = 0x%x\n", context_x86->dr6);
+      printf("  dr7                          = 0x%x\n", context_x86->dr7);
+      printf("  float_save.control_word      = 0x%x\n",
+             context_x86->float_save.control_word);
+      printf("  float_save.status_word       = 0x%x\n",
+             context_x86->float_save.status_word);
+      printf("  float_save.tag_word          = 0x%x\n",
+             context_x86->float_save.tag_word);
+      printf("  float_save.error_offset      = 0x%x\n",
+             context_x86->float_save.error_offset);
+      printf("  float_save.error_selector    = 0x%x\n",
+             context_x86->float_save.error_selector);
+      printf("  float_save.data_offset       = 0x%x\n",
+             context_x86->float_save.data_offset);
+      printf("  float_save.data_selector     = 0x%x\n",
+             context_x86->float_save.data_selector);
+      printf("  float_save.register_area[%2d] = 0x",
+             MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE);
+      for (unsigned int register_index = 0;
+           register_index < MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE;
+           ++register_index) {
+        printf("%02x", context_x86->float_save.register_area[register_index]);
+      }
+      printf("\n");
+      printf("  float_save.cr0_npx_state     = 0x%x\n",
+             context_x86->float_save.cr0_npx_state);
+      printf("  gs                           = 0x%x\n", context_x86->gs);
+      printf("  fs                           = 0x%x\n", context_x86->fs);
+      printf("  es                           = 0x%x\n", context_x86->es);
+      printf("  ds                           = 0x%x\n", context_x86->ds);
+      printf("  edi                          = 0x%x\n", context_x86->edi);
+      printf("  esi                          = 0x%x\n", context_x86->esi);
+      printf("  ebx                          = 0x%x\n", context_x86->ebx);
+      printf("  edx                          = 0x%x\n", context_x86->edx);
+      printf("  ecx                          = 0x%x\n", context_x86->ecx);
+      printf("  eax                          = 0x%x\n", context_x86->eax);
+      printf("  ebp                          = 0x%x\n", context_x86->ebp);
+      printf("  eip                          = 0x%x\n", context_x86->eip);
+      printf("  cs                           = 0x%x\n", context_x86->cs);
+      printf("  eflags                       = 0x%x\n", context_x86->eflags);
+      printf("  esp                          = 0x%x\n", context_x86->esp);
+      printf("  ss                           = 0x%x\n", context_x86->ss);
+      printf("  extended_registers[%3d]      = 0x",
+             MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE);
+      for (unsigned int register_index = 0;
+           register_index < MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE;
+           ++register_index) {
+        printf("%02x", context_x86->extended_registers[register_index]);
+      }
+      printf("\n\n");
+
+      break;
+    }
+
+    case MD_CONTEXT_PPC: {
+      const MDRawContextPPC* context_ppc = GetContextPPC();
+      printf("MDRawContextPPC\n");
+      printf("  context_flags            = 0x%x\n",
+             context_ppc->context_flags);
+      printf("  srr0                     = 0x%x\n", context_ppc->srr0);
+      printf("  srr1                     = 0x%x\n", context_ppc->srr1);
+      for (unsigned int gpr_index = 0;
+           gpr_index < MD_CONTEXT_PPC_GPR_COUNT;
+           ++gpr_index) {
+        printf("  gpr[%2d]                  = 0x%x\n",
+               gpr_index, context_ppc->gpr[gpr_index]);
+      }
+      printf("  cr                       = 0x%x\n", context_ppc->cr);
+      printf("  xer                      = 0x%x\n", context_ppc->xer);
+      printf("  lr                       = 0x%x\n", context_ppc->lr);
+      printf("  ctr                      = 0x%x\n", context_ppc->ctr);
+      printf("  mq                       = 0x%x\n", context_ppc->mq);
+      printf("  vrsave                   = 0x%x\n", context_ppc->vrsave);
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT;
+           ++fpr_index) {
+        printf("  float_save.fpregs[%2d]    = 0x%" PRIx64 "\n",
+               fpr_index, context_ppc->float_save.fpregs[fpr_index]);
+      }
+      printf("  float_save.fpscr         = 0x%x\n",
+             context_ppc->float_save.fpscr);
+      // TODO(mmentovai): print the 128-bit quantities in
+      // context_ppc->vector_save.  This isn't done yet because printf
+      // doesn't support 128-bit quantities, and printing them using
+      // PRIx64 as two 64-bit quantities requires knowledge of the CPU's
+      // byte ordering.
+      printf("  vector_save.save_vrvalid = 0x%x\n",
+             context_ppc->vector_save.save_vrvalid);
+      printf("\n");
+
+      break;
+    }
+
+    case MD_CONTEXT_PPC64: {
+      const MDRawContextPPC64* context_ppc64 = GetContextPPC64();
+      printf("MDRawContextPPC64\n");
+      printf("  context_flags            = 0x%" PRIx64 "\n",
+             context_ppc64->context_flags);
+      printf("  srr0                     = 0x%" PRIx64 "\n",
+             context_ppc64->srr0);
+      printf("  srr1                     = 0x%" PRIx64 "\n",
+             context_ppc64->srr1);
+      for (unsigned int gpr_index = 0;
+           gpr_index < MD_CONTEXT_PPC64_GPR_COUNT;
+           ++gpr_index) {
+        printf("  gpr[%2d]                  = 0x%" PRIx64 "\n",
+               gpr_index, context_ppc64->gpr[gpr_index]);
+      }
+      printf("  cr                       = 0x%" PRIx64 "\n", context_ppc64->cr);
+      printf("  xer                      = 0x%" PRIx64 "\n",
+             context_ppc64->xer);
+      printf("  lr                       = 0x%" PRIx64 "\n", context_ppc64->lr);
+      printf("  ctr                      = 0x%" PRIx64 "\n",
+             context_ppc64->ctr);
+      printf("  vrsave                   = 0x%" PRIx64 "\n",
+             context_ppc64->vrsave);
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT;
+           ++fpr_index) {
+        printf("  float_save.fpregs[%2d]    = 0x%" PRIx64 "\n",
+               fpr_index, context_ppc64->float_save.fpregs[fpr_index]);
+      }
+      printf("  float_save.fpscr         = 0x%x\n",
+             context_ppc64->float_save.fpscr);
+      // TODO(mmentovai): print the 128-bit quantities in
+      // context_ppc64->vector_save.  This isn't done yet because printf
+      // doesn't support 128-bit quantities, and printing them using
+      // PRIx64 as two 64-bit quantities requires knowledge of the CPU's
+      // byte ordering.
+      printf("  vector_save.save_vrvalid = 0x%x\n",
+             context_ppc64->vector_save.save_vrvalid);
+      printf("\n");
+
+      break;
+    }
+
+    case MD_CONTEXT_AMD64: {
+      const MDRawContextAMD64* context_amd64 = GetContextAMD64();
+      printf("MDRawContextAMD64\n");
+      printf("  p1_home       = 0x%" PRIx64 "\n",
+             context_amd64->p1_home);
+      printf("  p2_home       = 0x%" PRIx64 "\n",
+             context_amd64->p2_home);
+      printf("  p3_home       = 0x%" PRIx64 "\n",
+             context_amd64->p3_home);
+      printf("  p4_home       = 0x%" PRIx64 "\n",
+             context_amd64->p4_home);
+      printf("  p5_home       = 0x%" PRIx64 "\n",
+             context_amd64->p5_home);
+      printf("  p6_home       = 0x%" PRIx64 "\n",
+             context_amd64->p6_home);
+      printf("  context_flags = 0x%x\n",
+             context_amd64->context_flags);
+      printf("  mx_csr        = 0x%x\n",
+             context_amd64->mx_csr);
+      printf("  cs            = 0x%x\n", context_amd64->cs);
+      printf("  ds            = 0x%x\n", context_amd64->ds);
+      printf("  es            = 0x%x\n", context_amd64->es);
+      printf("  fs            = 0x%x\n", context_amd64->fs);
+      printf("  gs            = 0x%x\n", context_amd64->gs);
+      printf("  ss            = 0x%x\n", context_amd64->ss);
+      printf("  eflags        = 0x%x\n", context_amd64->eflags);
+      printf("  dr0           = 0x%" PRIx64 "\n", context_amd64->dr0);
+      printf("  dr1           = 0x%" PRIx64 "\n", context_amd64->dr1);
+      printf("  dr2           = 0x%" PRIx64 "\n", context_amd64->dr2);
+      printf("  dr3           = 0x%" PRIx64 "\n", context_amd64->dr3);
+      printf("  dr6           = 0x%" PRIx64 "\n", context_amd64->dr6);
+      printf("  dr7           = 0x%" PRIx64 "\n", context_amd64->dr7);
+      printf("  rax           = 0x%" PRIx64 "\n", context_amd64->rax);
+      printf("  rcx           = 0x%" PRIx64 "\n", context_amd64->rcx);
+      printf("  rdx           = 0x%" PRIx64 "\n", context_amd64->rdx);
+      printf("  rbx           = 0x%" PRIx64 "\n", context_amd64->rbx);
+      printf("  rsp           = 0x%" PRIx64 "\n", context_amd64->rsp);
+      printf("  rbp           = 0x%" PRIx64 "\n", context_amd64->rbp);
+      printf("  rsi           = 0x%" PRIx64 "\n", context_amd64->rsi);
+      printf("  rdi           = 0x%" PRIx64 "\n", context_amd64->rdi);
+      printf("  r8            = 0x%" PRIx64 "\n", context_amd64->r8);
+      printf("  r9            = 0x%" PRIx64 "\n", context_amd64->r9);
+      printf("  r10           = 0x%" PRIx64 "\n", context_amd64->r10);
+      printf("  r11           = 0x%" PRIx64 "\n", context_amd64->r11);
+      printf("  r12           = 0x%" PRIx64 "\n", context_amd64->r12);
+      printf("  r13           = 0x%" PRIx64 "\n", context_amd64->r13);
+      printf("  r14           = 0x%" PRIx64 "\n", context_amd64->r14);
+      printf("  r15           = 0x%" PRIx64 "\n", context_amd64->r15);
+      printf("  rip           = 0x%" PRIx64 "\n", context_amd64->rip);
+      // TODO: print xmm, vector, debug registers
+      printf("\n");
+      break;
+    }
+
+    case MD_CONTEXT_SPARC: {
+      const MDRawContextSPARC* context_sparc = GetContextSPARC();
+      printf("MDRawContextSPARC\n");
+      printf("  context_flags       = 0x%x\n",
+             context_sparc->context_flags);
+      for (unsigned int g_r_index = 0;
+           g_r_index < MD_CONTEXT_SPARC_GPR_COUNT;
+           ++g_r_index) {
+        printf("  g_r[%2d]             = 0x%" PRIx64 "\n",
+               g_r_index, context_sparc->g_r[g_r_index]);
+      }
+      printf("  ccr                 = 0x%" PRIx64 "\n", context_sparc->ccr);
+      printf("  pc                  = 0x%" PRIx64 "\n", context_sparc->pc);
+      printf("  npc                 = 0x%" PRIx64 "\n", context_sparc->npc);
+      printf("  y                   = 0x%" PRIx64 "\n", context_sparc->y);
+      printf("  asi                 = 0x%" PRIx64 "\n", context_sparc->asi);
+      printf("  fprs                = 0x%" PRIx64 "\n", context_sparc->fprs);
+
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT;
+           ++fpr_index) {
+        printf("  float_save.regs[%2d] = 0x%" PRIx64 "\n",
+               fpr_index, context_sparc->float_save.regs[fpr_index]);
+      }
+      printf("  float_save.filler   = 0x%" PRIx64 "\n",
+             context_sparc->float_save.filler);
+      printf("  float_save.fsr      = 0x%" PRIx64 "\n",
+             context_sparc->float_save.fsr);
+      break;
+    }
+
+    case MD_CONTEXT_ARM: {
+      const MDRawContextARM* context_arm = GetContextARM();
+      const char * const names[] = {
+        "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
+        "r8",  "r9",  "r10", "r11", "r12", "sp",  "lr",  "pc",
+      };
+      printf("MDRawContextARM\n");
+      printf("  context_flags        = 0x%x\n",
+             context_arm->context_flags);
+      for (unsigned int ireg_index = 0;
+           ireg_index < MD_CONTEXT_ARM_GPR_COUNT;
+           ++ireg_index) {
+        printf("  %-3s                  = 0x%x\n",
+               names[ireg_index], context_arm->iregs[ireg_index]);
+      }
+      printf("  cpsr                 = 0x%x\n", context_arm->cpsr);
+      printf("  float_save.fpscr     = 0x%" PRIx64 "\n",
+             context_arm->float_save.fpscr);
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_ARM_FPR_COUNT;
+           ++fpr_index) {
+        printf("  float_save.regs[%2d]  = 0x%" PRIx64 "\n",
+               fpr_index, context_arm->float_save.regs[fpr_index]);
+      }
+      for (unsigned int fpe_index = 0;
+           fpe_index < MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT;
+           ++fpe_index) {
+        printf("  float_save.extra[%2d] = 0x%" PRIx32 "\n",
+               fpe_index, context_arm->float_save.extra[fpe_index]);
+      }
+
+      break;
+    }
+
+    case MD_CONTEXT_ARM64: {
+      const MDRawContextARM64* context_arm64 = GetContextARM64();
+      printf("MDRawContextARM64\n");
+      printf("  context_flags       = 0x%x\n",
+             context_arm64->context_flags);
+      for (unsigned int ireg_index = 0;
+           ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
+           ++ireg_index) {
+        printf("  iregs[%2d]            = 0x%" PRIx64 "\n",
+               ireg_index, context_arm64->iregs[ireg_index]);
+      }
+      printf("  cpsr                = 0x%x\n", context_arm64->cpsr);
+      printf("  float_save.fpsr     = 0x%x\n", context_arm64->float_save.fpsr);
+      printf("  float_save.fpcr     = 0x%x\n", context_arm64->float_save.fpcr);
+
+      for (unsigned int freg_index = 0;
+           freg_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
+           ++freg_index) {
+        uint128_struct fp_value = context_arm64->float_save.regs[freg_index];
+        printf("  float_save.regs[%2d]            = 0x%" PRIx64 "%" PRIx64 "\n",
+               freg_index, fp_value.high, fp_value.low);
+      }
+
+      break;
+    }
+
+    case MD_CONTEXT_MIPS:
+    case MD_CONTEXT_MIPS64: {
+      const MDRawContextMIPS* context_mips = GetContextMIPS();
+      printf("MDRawContextMIPS\n");
+      printf("  context_flags        = 0x%x\n",
+             context_mips->context_flags);
+      for (int ireg_index = 0;
+           ireg_index < MD_CONTEXT_MIPS_GPR_COUNT;
+           ++ireg_index) {
+        printf("  iregs[%2d]           = 0x%" PRIx64 "\n",
+               ireg_index, context_mips->iregs[ireg_index]);
+      }
+      printf("  mdhi                 = 0x%" PRIx64 "\n",
+             context_mips->mdhi);
+      printf("  mdlo                 = 0x%" PRIx64 "\n",
+             context_mips->mdhi);
+      for (int dsp_index = 0;
+           dsp_index < MD_CONTEXT_MIPS_DSP_COUNT;
+           ++dsp_index) {
+        printf("  hi[%1d]              = 0x%" PRIx32 "\n",
+               dsp_index, context_mips->hi[dsp_index]);
+        printf("  lo[%1d]              = 0x%" PRIx32 "\n",
+               dsp_index, context_mips->lo[dsp_index]);
+      }
+      printf("  dsp_control          = 0x%" PRIx32 "\n",
+             context_mips->dsp_control);
+      printf("  epc                  = 0x%" PRIx64 "\n",
+             context_mips->epc);
+      printf("  badvaddr             = 0x%" PRIx64 "\n",
+             context_mips->badvaddr);
+      printf("  status               = 0x%" PRIx32 "\n",
+             context_mips->status);
+      printf("  cause                = 0x%" PRIx32 "\n",
+             context_mips->cause);
+
+      for (int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT;
+           ++fpr_index) {
+        printf("  float_save.regs[%2d] = 0x%" PRIx64 "\n",
+               fpr_index, context_mips->float_save.regs[fpr_index]);
+      }
+      printf("  float_save.fpcsr     = 0x%" PRIx32 "\n",
+             context_mips->float_save.fpcsr);
+      printf("  float_save.fir       = 0x%" PRIx32 "\n",
+             context_mips->float_save.fir);
+      break;
+    }
+
+    default: {
+      break;
+    }
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/dump_object.cc b/src/processor/dump_object.cc
new file mode 100644
index 0000000..2c82b20
--- /dev/null
+++ b/src/processor/dump_object.cc
@@ -0,0 +1,39 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_object.cc: A base class for all mini/micro dump object.
+
+#include "google_breakpad/processor/dump_object.h"
+
+namespace google_breakpad {
+
+DumpObject::DumpObject() : valid_(false) {
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/exploitability.cc b/src/processor/exploitability.cc
new file mode 100644
index 0000000..5f05b51
--- /dev/null
+++ b/src/processor/exploitability.cc
@@ -0,0 +1,120 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_engine.cc: Generic exploitability engine.
+//
+// See exploitable_engine.h for documentation.
+//
+// Author: Cris Neckar
+
+
+#include <cassert>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/exploitability.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/process_state.h"
+#include "processor/exploitability_linux.h"
+#include "processor/exploitability_win.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+Exploitability::Exploitability(Minidump *dump,
+                               ProcessState *process_state)
+    : dump_(dump),
+      process_state_(process_state) {}
+
+ExploitabilityRating Exploitability::CheckExploitability() {
+  return CheckPlatformExploitability();
+}
+
+Exploitability *Exploitability::ExploitabilityForPlatform(
+    Minidump *dump,
+    ProcessState *process_state) {
+  return ExploitabilityForPlatform(dump, process_state, false);
+}
+
+Exploitability *Exploitability::ExploitabilityForPlatform(
+    Minidump *dump,
+    ProcessState *process_state,
+    bool enable_objdump) {
+  Exploitability *platform_exploitability = NULL;
+  MinidumpSystemInfo *minidump_system_info = dump->GetSystemInfo();
+  if (!minidump_system_info)
+    return NULL;
+
+  const MDRawSystemInfo *raw_system_info =
+    minidump_system_info->system_info();
+  if (!raw_system_info)
+    return NULL;
+
+  switch (raw_system_info->platform_id) {
+    case MD_OS_WIN32_NT:
+    case MD_OS_WIN32_WINDOWS: {
+      platform_exploitability = new ExploitabilityWin(dump, process_state);
+      break;
+    }
+    case MD_OS_LINUX: {
+      platform_exploitability = new ExploitabilityLinux(dump,
+                                                        process_state,
+                                                        enable_objdump);
+      break;
+    }
+    case MD_OS_MAC_OS_X:
+    case MD_OS_IOS:
+    case MD_OS_UNIX:
+    case MD_OS_SOLARIS:
+    case MD_OS_ANDROID:
+    case MD_OS_PS3:
+    case MD_OS_FUCHSIA:
+    default: {
+      platform_exploitability = NULL;
+      break;
+    }
+  }
+
+  BPLOG_IF(ERROR, !platform_exploitability) <<
+    "No Exploitability module for platform: " <<
+    process_state->system_info()->os;
+  return platform_exploitability;
+}
+
+bool Exploitability::AddressIsAscii(uint64_t address) {
+  for (int i = 0; i < 8; i++) {
+    uint8_t byte = (address >> (8*i)) & 0xff;
+    if ((byte >= ' ' && byte <= '~') || byte == 0)
+      continue;
+    return false;
+  }
+  return true;
+}
+
+}  // namespace google_breakpad
+
diff --git a/src/processor/exploitability_linux.cc b/src/processor/exploitability_linux.cc
new file mode 100644
index 0000000..798056d
--- /dev/null
+++ b/src/processor/exploitability_linux.cc
@@ -0,0 +1,626 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_linux.cc: Linux specific exploitability engine.
+//
+// Provides a guess at the exploitability of the crash for the Linux
+// platform given a minidump and process_state.
+//
+// Author: Matthew Riley
+
+#include "processor/exploitability_linux.h"
+
+#ifndef _WIN32
+#include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <sstream>
+#include <iterator>
+#endif  // _WIN32
+
+#include <string.h>
+
+#include "google_breakpad/common/minidump_exception_linux.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/logging.h"
+
+namespace {
+
+// Prefixes for memory mapping names.
+constexpr char kHeapPrefix[] = "[heap";
+constexpr char kStackPrefix[] =  "[stack";
+
+// This function in libc is called if the program was compiled with
+// -fstack-protector and a function's stack canary changes.
+constexpr char kStackCheckFailureFunction[] = "__stack_chk_fail";
+
+// This function in libc is called if the program was compiled with
+// -D_FORTIFY_SOURCE=2, a function like strcpy() is called, and the runtime
+// can determine that the call would overflow the target buffer.
+constexpr char kBoundsCheckFailureFunction[] = "__chk_fail";
+
+#ifndef _WIN32
+const unsigned int MAX_INSTRUCTION_LEN = 15;
+const unsigned int MAX_OBJDUMP_BUFFER_LEN = 4096;
+#endif  // _WIN32
+
+}  // namespace
+
+namespace google_breakpad {
+
+ExploitabilityLinux::ExploitabilityLinux(Minidump* dump,
+                                         ProcessState* process_state)
+    : Exploitability(dump, process_state),
+      enable_objdump_(false) { }
+
+ExploitabilityLinux::ExploitabilityLinux(Minidump* dump,
+                                         ProcessState* process_state,
+                                         bool enable_objdump)
+    : Exploitability(dump, process_state),
+      enable_objdump_(enable_objdump) { }
+
+
+ExploitabilityRating ExploitabilityLinux::CheckPlatformExploitability() {
+  // Check the crashing thread for functions suggesting a buffer overflow or
+  // stack smash.
+  if (process_state_->requesting_thread() != -1) {
+    CallStack* crashing_thread =
+        process_state_->threads()->at(process_state_->requesting_thread());
+    const vector<StackFrame*>& crashing_thread_frames =
+        *crashing_thread->frames();
+    for (size_t i = 0; i < crashing_thread_frames.size(); ++i) {
+      if (crashing_thread_frames[i]->function_name ==
+          kStackCheckFailureFunction) {
+        return EXPLOITABILITY_HIGH;
+      }
+
+      if (crashing_thread_frames[i]->function_name ==
+          kBoundsCheckFailureFunction) {
+        return EXPLOITABILITY_HIGH;
+      }
+    }
+  }
+
+  // Getting exception data. (It should exist for all minidumps.)
+  MinidumpException* exception = dump_->GetException();
+  if (exception == NULL) {
+    BPLOG(INFO) << "No exception record.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+  const MDRawExceptionStream* raw_exception_stream = exception->exception();
+  if (raw_exception_stream == NULL) {
+    BPLOG(INFO) << "No raw exception stream.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Checking for benign exceptions that caused the crash.
+  if (this->BenignCrashTrigger(raw_exception_stream)) {
+    return EXPLOITABILITY_NONE;
+  }
+
+  // Check if the instruction pointer is in a valid instruction region
+  // by finding if it maps to an executable part of memory.
+  uint64_t instruction_ptr = 0;
+  uint64_t stack_ptr = 0;
+
+  const MinidumpContext* context = exception->GetContext();
+  if (context == NULL) {
+    BPLOG(INFO) << "No exception context.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Getting the instruction pointer.
+  if (!context->GetInstructionPointer(&instruction_ptr)) {
+    BPLOG(INFO) << "Failed to retrieve instruction pointer.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Getting the stack pointer.
+  if (!context->GetStackPointer(&stack_ptr)) {
+    BPLOG(INFO) << "Failed to retrieve stack pointer.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Checking for the instruction pointer in a valid instruction region,
+  // a misplaced stack pointer, and an executable stack or heap.
+  if (!this->InstructionPointerInCode(instruction_ptr) ||
+       this->StackPointerOffStack(stack_ptr) ||
+       this->ExecutableStackOrHeap()) {
+    return EXPLOITABILITY_HIGH;
+  }
+
+  // Check for write to read only memory or invalid memory, shelling out
+  // to objdump is enabled.
+  if (enable_objdump_ && this->EndedOnIllegalWrite(instruction_ptr)) {
+    return EXPLOITABILITY_HIGH;
+  }
+
+  // There was no strong evidence suggesting exploitability, but the minidump
+  // does not appear totally benign either.
+  return EXPLOITABILITY_INTERESTING;
+}
+
+bool ExploitabilityLinux::EndedOnIllegalWrite(uint64_t instruction_ptr) {
+#ifdef _WIN32
+  BPLOG(INFO) << "MinGW does not support fork and exec. Terminating method.";
+#else
+  // Get memory region containing instruction pointer.
+  MinidumpMemoryList* memory_list = dump_->GetMemoryList();
+  MinidumpMemoryRegion* memory_region =
+      memory_list ?
+      memory_list->GetMemoryRegionForAddress(instruction_ptr) : NULL;
+  if (!memory_region) {
+    BPLOG(INFO) << "No memory region around instruction pointer.";
+    return false;
+  }
+
+  // Get exception data to find architecture.
+  string architecture = "";
+  MinidumpException* exception = dump_->GetException();
+  // This should never evaluate to true, since this should not be reachable
+  // without checking for exception data earlier.
+  if (!exception) {
+    BPLOG(INFO) << "No exception data.";
+    return false;
+  }
+  const MDRawExceptionStream* raw_exception_stream = exception->exception();
+  const MinidumpContext* context = exception->GetContext();
+  // This should not evaluate to true, for the same reason mentioned above.
+  if (!raw_exception_stream || !context) {
+    BPLOG(INFO) << "No exception or architecture data.";
+    return false;
+  }
+  // Check architecture and set architecture variable to corresponding flag
+  // in objdump.
+  switch (context->GetContextCPU()) {
+    case MD_CONTEXT_X86:
+      architecture = "i386";
+      break;
+    case MD_CONTEXT_AMD64:
+      architecture = "i386:x86-64";
+      break;
+    default:
+      // Unsupported architecture. Note that ARM architectures are not
+      // supported because objdump does not support ARM.
+      return false;
+      break;
+  }
+
+  // Get memory region around instruction pointer and the number of bytes
+  // before and after the instruction pointer in the memory region.
+  const uint8_t* raw_memory = memory_region->GetMemory();
+  const uint64_t base = memory_region->GetBase();
+  if (base > instruction_ptr) {
+    BPLOG(ERROR) << "Memory region base value exceeds instruction pointer.";
+    return false;
+  }
+  const uint64_t offset = instruction_ptr - base;
+  if (memory_region->GetSize() < MAX_INSTRUCTION_LEN + offset) {
+    BPLOG(INFO) << "Not enough bytes left to guarantee complete instruction.";
+    return false;
+  }
+
+  // Convert bytes into objdump output.
+  char objdump_output_buffer[MAX_OBJDUMP_BUFFER_LEN] = {0};
+  DisassembleBytes(architecture,
+                   raw_memory + offset,
+                   MAX_OBJDUMP_BUFFER_LEN,
+                   objdump_output_buffer);
+
+  string line;
+  if (!GetObjdumpInstructionLine(objdump_output_buffer, &line)) {
+    return false;
+  }
+
+  // Convert objdump instruction line into the operation and operands.
+  string instruction = "";
+  string dest = "";
+  string src = "";
+  TokenizeObjdumpInstruction(line, &instruction, &dest, &src);
+
+  // Check if the operation is a write to memory. First, the instruction
+  // must one that can write to memory. Second, the write destination
+  // must be a spot in memory rather than a register. Since there are no
+  // symbols from objdump, the destination will be enclosed by brackets.
+  if (dest.size() > 2 && dest.at(0) == '[' && dest.at(dest.size() - 1) == ']' &&
+      (!instruction.compare("mov") || !instruction.compare("inc") ||
+       !instruction.compare("dec") || !instruction.compare("and") ||
+       !instruction.compare("or") || !instruction.compare("xor") ||
+       !instruction.compare("not") || !instruction.compare("neg") ||
+       !instruction.compare("add") || !instruction.compare("sub") ||
+       !instruction.compare("shl") || !instruction.compare("shr"))) {
+    // Strip away enclosing brackets from the destination address.
+    dest = dest.substr(1, dest.size() - 2);
+    uint64_t write_address = 0;
+    CalculateAddress(dest, *context, &write_address);
+
+    // If the program crashed as a result of a write, the destination of
+    // the write must have been an address that did not permit writing.
+    // However, if the address is under 4k, due to program protections,
+    // the crash does not suggest exploitability for writes with such a
+    // low target address.
+    return write_address > 4096;
+  }
+#endif  // _WIN32
+  return false;
+}
+
+#ifndef _WIN32
+bool ExploitabilityLinux::CalculateAddress(const string& address_expression,
+                                           const DumpContext& context,
+                                           uint64_t* write_address) {
+  // The destination should be the format reg+a or reg-a, where reg
+  // is a register and a is a hexadecimal constant. Although more complex
+  // expressions can make valid instructions, objdump's disassembly outputs
+  // it in this simpler format.
+  // TODO(liuandrew): Handle more complex formats, should they arise.
+
+  if (!write_address) {
+    BPLOG(ERROR) << "Null parameter.";
+    return false;
+  }
+
+  // Clone parameter into a non-const string.
+  string expression = address_expression;
+
+  // Parse out the constant that is added to the address (if it exists).
+  size_t delim = expression.find('+');
+  bool positive_add_constant = true;
+  // Check if constant is subtracted instead of added.
+  if (delim == string::npos) {
+    positive_add_constant = false;
+    delim = expression.find('-');
+  }
+  uint32_t add_constant = 0;
+  // Save constant and remove it from the expression.
+  if (delim != string::npos) {
+    if (!sscanf(expression.substr(delim + 1).c_str(), "%x", &add_constant)) {
+      BPLOG(ERROR) << "Failed to scan constant.";
+      return false;
+    }
+    expression = expression.substr(0, delim);
+  }
+
+  // Set the the write address to the corresponding register.
+  // TODO(liuandrew): Add support for partial registers, such as
+  // the rax/eax/ax/ah/al chain.
+  switch (context.GetContextCPU()) {
+    case MD_CONTEXT_X86:
+      if (!expression.compare("eax")) {
+        *write_address = context.GetContextX86()->eax;
+      } else if (!expression.compare("ebx")) {
+        *write_address = context.GetContextX86()->ebx;
+      } else if (!expression.compare("ecx")) {
+        *write_address = context.GetContextX86()->ecx;
+      } else if (!expression.compare("edx")) {
+        *write_address = context.GetContextX86()->edx;
+      } else if (!expression.compare("edi")) {
+        *write_address = context.GetContextX86()->edi;
+      } else if (!expression.compare("esi")) {
+        *write_address = context.GetContextX86()->esi;
+      } else if (!expression.compare("ebp")) {
+        *write_address = context.GetContextX86()->ebp;
+      } else if (!expression.compare("esp")) {
+        *write_address = context.GetContextX86()->esp;
+      } else if (!expression.compare("eip")) {
+        *write_address = context.GetContextX86()->eip;
+      } else {
+        BPLOG(ERROR) << "Unsupported register";
+        return false;
+      }
+      break;
+    case MD_CONTEXT_AMD64:
+      if (!expression.compare("rax")) {
+        *write_address = context.GetContextAMD64()->rax;
+      } else if (!expression.compare("rbx")) {
+        *write_address = context.GetContextAMD64()->rbx;
+      } else if (!expression.compare("rcx")) {
+        *write_address = context.GetContextAMD64()->rcx;
+      } else if (!expression.compare("rdx")) {
+        *write_address = context.GetContextAMD64()->rdx;
+      } else if (!expression.compare("rdi")) {
+        *write_address = context.GetContextAMD64()->rdi;
+      } else if (!expression.compare("rsi")) {
+        *write_address = context.GetContextAMD64()->rsi;
+      } else if (!expression.compare("rbp")) {
+        *write_address = context.GetContextAMD64()->rbp;
+      } else if (!expression.compare("rsp")) {
+        *write_address = context.GetContextAMD64()->rsp;
+      } else if (!expression.compare("rip")) {
+        *write_address = context.GetContextAMD64()->rip;
+      } else if (!expression.compare("r8")) {
+        *write_address = context.GetContextAMD64()->r8;
+      } else if (!expression.compare("r9")) {
+        *write_address = context.GetContextAMD64()->r9;
+      } else if (!expression.compare("r10")) {
+        *write_address = context.GetContextAMD64()->r10;
+      } else if (!expression.compare("r11")) {
+        *write_address = context.GetContextAMD64()->r11;
+      } else if (!expression.compare("r12")) {
+        *write_address = context.GetContextAMD64()->r12;
+      } else if (!expression.compare("r13")) {
+        *write_address = context.GetContextAMD64()->r13;
+      } else if (!expression.compare("r14")) {
+        *write_address = context.GetContextAMD64()->r14;
+      } else if (!expression.compare("r15")) {
+        *write_address = context.GetContextAMD64()->r15;
+      } else {
+        BPLOG(ERROR) << "Unsupported register";
+        return false;
+      }
+      break;
+    default:
+      // This should not occur since the same switch condition
+      // should have terminated this method.
+      return false;
+      break;
+  }
+
+  // Add or subtract constant from write address (if applicable).
+  *write_address =
+      positive_add_constant ?
+      *write_address + add_constant : *write_address - add_constant;
+
+  return true;
+}
+
+// static
+bool ExploitabilityLinux::GetObjdumpInstructionLine(
+    const char* objdump_output_buffer,
+    string* instruction_line) {
+  // Put buffer data into stream to output line-by-line.
+  std::stringstream objdump_stream;
+  objdump_stream.str(string(objdump_output_buffer));
+
+  // Pipe each output line into the string until the string contains the first
+  // instruction from objdump.  All lines before the "<.data>:" section are
+  // skipped.  Loop until the line shows the first instruction or there are no
+  // lines left.
+  bool data_section_seen = false;
+  do {
+    if (!getline(objdump_stream, *instruction_line)) {
+      BPLOG(INFO) << "Objdump instructions not found";
+      return false;
+    }
+    if (instruction_line->find("<.data>:") != string::npos) {
+      data_section_seen = true;
+    }
+  } while (!data_section_seen || instruction_line->find("0:") == string::npos);
+  // This first instruction contains the above substring.
+
+  return true;
+}
+
+bool ExploitabilityLinux::TokenizeObjdumpInstruction(const string& line,
+                                                     string* operation,
+                                                     string* dest,
+                                                     string* src) {
+  if (!operation || !dest || !src) {
+    BPLOG(ERROR) << "Null parameters passed.";
+    return false;
+  }
+
+  // Set all pointer values to empty strings.
+  *operation = "";
+  *dest = "";
+  *src = "";
+
+  // Tokenize the objdump line.
+  vector<string> tokens;
+  std::istringstream line_stream(line);
+  copy(std::istream_iterator<string>(line_stream),
+       std::istream_iterator<string>(),
+       std::back_inserter(tokens));
+
+  // Regex for the data in hex form. Each byte is two hex digits.
+  regex_t regex;
+  regcomp(&regex, "^[[:xdigit:]]{2}$", REG_EXTENDED | REG_NOSUB);
+
+  // Find and set the location of the operator. The operator appears
+  // directly after the chain of bytes that define the instruction. The
+  // operands will be the last token, given that the instruction has operands.
+  // If not, the operator is the last token. The loop skips the first token
+  // because the first token is the instruction number (namely "0:").
+  string operands = "";
+  for (size_t i = 1; i < tokens.size(); i++) {
+    // Check if current token no longer is in byte format.
+    if (regexec(&regex, tokens[i].c_str(), 0, NULL, 0)) {
+      // instruction = tokens[i];
+      *operation = tokens[i];
+      // If the operator is the last token, there are no operands.
+      if (i != tokens.size() - 1) {
+        operands = tokens[tokens.size() - 1];
+      }
+      break;
+    }
+  }
+  regfree(&regex);
+
+  if (operation->empty()) {
+    BPLOG(ERROR) << "Failed to parse out operation from objdump instruction.";
+    return false;
+  }
+
+  // Split operands into source and destination (if applicable).
+  if (!operands.empty()) {
+    size_t delim = operands.find(',');
+    if (delim == string::npos) {
+      *dest = operands;
+    } else {
+      *dest = operands.substr(0, delim);
+      *src = operands.substr(delim + 1);
+    }
+  }
+  return true;
+}
+
+bool ExploitabilityLinux::DisassembleBytes(const string& architecture,
+                                           const uint8_t* raw_bytes,
+                                           const unsigned int buffer_len,
+                                           char* objdump_output_buffer) {
+  if (!raw_bytes || !objdump_output_buffer) {
+    BPLOG(ERROR) << "Bad input parameters.";
+    return false;
+  }
+
+  // Write raw bytes around instruction pointer to a temporary file to
+  // pass as an argument to objdump.
+  char raw_bytes_tmpfile[] = "/tmp/breakpad_mem_region-raw_bytes-XXXXXX";
+  int raw_bytes_fd = mkstemp(raw_bytes_tmpfile);
+  if (raw_bytes_fd < 0) {
+    BPLOG(ERROR) << "Failed to create tempfile.";
+    unlink(raw_bytes_tmpfile);
+    return false;
+  }
+  if (write(raw_bytes_fd, raw_bytes, MAX_INSTRUCTION_LEN)
+      != MAX_INSTRUCTION_LEN) {
+    BPLOG(ERROR) << "Writing of raw bytes failed.";
+    unlink(raw_bytes_tmpfile);
+    return false;
+  }
+
+  char cmd[1024] = {0};
+  snprintf(cmd,
+           1024,
+           "objdump -D -b binary -M intel -m %s %s",
+           architecture.c_str(),
+           raw_bytes_tmpfile);
+  FILE* objdump_fp = popen(cmd, "r");
+  if (!objdump_fp) {
+    fclose(objdump_fp);
+    unlink(raw_bytes_tmpfile);
+    BPLOG(ERROR) << "Failed to call objdump.";
+    return false;
+  }
+  if (fread(objdump_output_buffer, 1, buffer_len, objdump_fp) <= 0) {
+    fclose(objdump_fp);
+    unlink(raw_bytes_tmpfile);
+    BPLOG(ERROR) << "Failed to read objdump output.";
+    return false;
+  }
+  fclose(objdump_fp);
+  unlink(raw_bytes_tmpfile);
+  return true;
+}
+#endif  // _WIN32
+
+bool ExploitabilityLinux::StackPointerOffStack(uint64_t stack_ptr) {
+  MinidumpLinuxMapsList* linux_maps_list = dump_->GetLinuxMapsList();
+  // Inconclusive if there are no mappings available.
+  if (!linux_maps_list) {
+    return false;
+  }
+  const MinidumpLinuxMaps* linux_maps =
+      linux_maps_list->GetLinuxMapsForAddress(stack_ptr);
+  // Checks if the stack pointer maps to a valid mapping and if the mapping
+  // is not the stack. If the mapping has no name, it is inconclusive whether
+  // it is off the stack.
+  return !linux_maps || (linux_maps->GetPathname().compare("") &&
+                         linux_maps->GetPathname().compare(
+                             0, strlen(kStackPrefix), kStackPrefix));
+}
+
+bool ExploitabilityLinux::ExecutableStackOrHeap() {
+  MinidumpLinuxMapsList* linux_maps_list = dump_->GetLinuxMapsList();
+  if (linux_maps_list) {
+    for (size_t i = 0; i < linux_maps_list->get_maps_count(); i++) {
+      const MinidumpLinuxMaps* linux_maps =
+          linux_maps_list->GetLinuxMapsAtIndex(i);
+      // Check for executable stack or heap for each mapping.
+      if (linux_maps && (!linux_maps->GetPathname().compare(
+                             0, strlen(kStackPrefix), kStackPrefix) ||
+                         !linux_maps->GetPathname().compare(
+                             0, strlen(kHeapPrefix), kHeapPrefix)) &&
+          linux_maps->IsExecutable()) {
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+bool ExploitabilityLinux::InstructionPointerInCode(uint64_t instruction_ptr) {
+  // Get Linux memory mapping from /proc/self/maps. Checking whether the
+  // region the instruction pointer is in has executable permission can tell
+  // whether it is in a valid code region. If there is no mapping for the
+  // instruction pointer, it is indicative that the instruction pointer is
+  // not within a module, which implies that it is outside a valid area.
+  MinidumpLinuxMapsList* linux_maps_list = dump_->GetLinuxMapsList();
+  const MinidumpLinuxMaps* linux_maps =
+      linux_maps_list ?
+      linux_maps_list->GetLinuxMapsForAddress(instruction_ptr) : NULL;
+  return linux_maps ? linux_maps->IsExecutable() : false;
+}
+
+bool ExploitabilityLinux::BenignCrashTrigger(
+    const MDRawExceptionStream* raw_exception_stream) {
+  // Check the cause of crash.
+  // If the exception of the crash is a benign exception,
+  // it is probably not exploitable.
+  switch (raw_exception_stream->exception_record.exception_code) {
+    case MD_EXCEPTION_CODE_LIN_SIGHUP:
+    case MD_EXCEPTION_CODE_LIN_SIGINT:
+    case MD_EXCEPTION_CODE_LIN_SIGQUIT:
+    case MD_EXCEPTION_CODE_LIN_SIGTRAP:
+    case MD_EXCEPTION_CODE_LIN_SIGABRT:
+    case MD_EXCEPTION_CODE_LIN_SIGFPE:
+    case MD_EXCEPTION_CODE_LIN_SIGKILL:
+    case MD_EXCEPTION_CODE_LIN_SIGUSR1:
+    case MD_EXCEPTION_CODE_LIN_SIGUSR2:
+    case MD_EXCEPTION_CODE_LIN_SIGPIPE:
+    case MD_EXCEPTION_CODE_LIN_SIGALRM:
+    case MD_EXCEPTION_CODE_LIN_SIGTERM:
+    case MD_EXCEPTION_CODE_LIN_SIGCHLD:
+    case MD_EXCEPTION_CODE_LIN_SIGCONT:
+    case MD_EXCEPTION_CODE_LIN_SIGSTOP:
+    case MD_EXCEPTION_CODE_LIN_SIGTSTP:
+    case MD_EXCEPTION_CODE_LIN_SIGTTIN:
+    case MD_EXCEPTION_CODE_LIN_SIGTTOU:
+    case MD_EXCEPTION_CODE_LIN_SIGURG:
+    case MD_EXCEPTION_CODE_LIN_SIGXCPU:
+    case MD_EXCEPTION_CODE_LIN_SIGXFSZ:
+    case MD_EXCEPTION_CODE_LIN_SIGVTALRM:
+    case MD_EXCEPTION_CODE_LIN_SIGPROF:
+    case MD_EXCEPTION_CODE_LIN_SIGWINCH:
+    case MD_EXCEPTION_CODE_LIN_SIGIO:
+    case MD_EXCEPTION_CODE_LIN_SIGPWR:
+    case MD_EXCEPTION_CODE_LIN_SIGSYS:
+    case MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED:
+      return true;
+      break;
+    default:
+      return false;
+      break;
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/exploitability_linux.h b/src/processor/exploitability_linux.h
new file mode 100644
index 0000000..3664795
--- /dev/null
+++ b/src/processor/exploitability_linux.h
@@ -0,0 +1,129 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_linux.h: Linux specific exploitability engine.
+//
+// Provides a guess at the exploitability of the crash for the Linux
+// platform given a minidump and process_state.
+//
+// Author: Matthew Riley
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/exploitability.h"
+
+namespace google_breakpad {
+
+class ExploitabilityLinux : public Exploitability {
+ public:
+  ExploitabilityLinux(Minidump* dump,
+                      ProcessState* process_state);
+
+  // Parameters are the minidump to analyze, the object representing process
+  // state, and whether to enable objdump disassembly.
+  // Enabling objdump will allow exploitability analysis to call out to
+  // objdump for diassembly. It is used to check the identity of the
+  // instruction that caused the program to crash. If there are any
+  // portability concerns, this should not be enabled.
+  ExploitabilityLinux(Minidump* dump,
+                      ProcessState* process_state,
+                      bool enable_objdump);
+
+  virtual ExploitabilityRating CheckPlatformExploitability();
+
+ private:
+  friend class ExploitabilityLinuxTest;
+
+  // Takes the address of the instruction pointer and returns
+  // whether the instruction pointer lies in a valid instruction region.
+  bool InstructionPointerInCode(uint64_t instruction_ptr);
+
+  // Checks the exception that triggered the creation of the
+  // minidump and reports whether the exception suggests no exploitability.
+  bool BenignCrashTrigger(const MDRawExceptionStream* raw_exception_stream);
+
+  // This method checks if the crash occurred during a write to read-only or
+  // invalid memory. It does so by checking if the instruction at the
+  // instruction pointer is a write instruction, and if the target of the
+  // instruction is at a spot in memory that prohibits writes.
+  bool EndedOnIllegalWrite(uint64_t instruction_ptr);
+
+#ifndef _WIN32
+  // Disassembles raw bytes via objdump and pipes the output into the provided
+  // buffer, given the desired architecture, the file from which objdump will
+  // read, and the buffer length. The method returns whether the disassembly
+  // was a success, and the caller owns all pointers.
+  static bool DisassembleBytes(const string& architecture,
+                               const uint8_t* raw_bytes,
+                               const unsigned int MAX_OBJDUMP_BUFFER_LEN,
+                               char* objdump_output_buffer);
+
+  // Parses the objdump output given in |objdump_output_buffer| and extracts
+  // the line of the first instruction into |instruction_line|.  Returns true
+  // when the instruction line is successfully extracted.
+  static bool GetObjdumpInstructionLine(
+      const char* objdump_output_buffer,
+      string* instruction_line);
+
+  // Tokenizes out the operation and operands from a line of instruction
+  // disassembled by objdump. This method modifies the pointers to match the
+  // tokens of the instruction, and returns if the tokenizing was a success.
+  // The caller owns all pointers.
+  static bool TokenizeObjdumpInstruction(const string& line,
+                                         string* operation,
+                                         string* dest,
+                                         string* src);
+
+  // Calculates the effective address of an expression in the form reg+a or
+  // reg-a, where 'reg' is a register and 'a' is a constant, and writes the
+  // result in the pointer. The method returns whether the calculation was
+  // a success. The caller owns the pointer.
+  static bool CalculateAddress(const string& address_expression,
+                               const DumpContext& context,
+                               uint64_t* write_address);
+#endif  // _WIN32
+
+  // Checks if the stack pointer points to a memory mapping that is not
+  // labelled as the stack.
+  bool StackPointerOffStack(uint64_t stack_ptr);
+
+  // Checks if the stack or heap are marked executable according
+  // to the memory mappings.
+  bool ExecutableStackOrHeap();
+
+  // Whether this exploitability engine is permitted to shell out to objdump
+  // to disassemble raw bytes.
+  bool enable_objdump_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
diff --git a/src/processor/exploitability_unittest.cc b/src/processor/exploitability_unittest.cc
new file mode 100644
index 0000000..528ee5f
--- /dev/null
+++ b/src/processor/exploitability_unittest.cc
@@ -0,0 +1,306 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/minidump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#ifndef _WIN32
+#include "processor/exploitability_linux.h"
+#endif  // _WIN32
+#include "processor/simple_symbol_supplier.h"
+
+#ifndef _WIN32
+namespace google_breakpad {
+
+class ExploitabilityLinuxTest : public ExploitabilityLinux {
+ public:
+  using ExploitabilityLinux::CalculateAddress;
+  using ExploitabilityLinux::DisassembleBytes;
+  using ExploitabilityLinux::GetObjdumpInstructionLine;
+  using ExploitabilityLinux::TokenizeObjdumpInstruction;
+};
+
+class ExploitabilityLinuxTestMinidumpContext : public MinidumpContext {
+ public:
+  explicit ExploitabilityLinuxTestMinidumpContext(
+      const MDRawContextAMD64& context) : MinidumpContext(NULL) {
+    valid_ = true;
+    SetContextAMD64(new MDRawContextAMD64(context));
+    SetContextFlags(MD_CONTEXT_AMD64);
+  }
+};
+
+}  // namespace google_breakpad
+#endif  // _WIN32
+
+namespace {
+
+using google_breakpad::BasicSourceLineResolver;
+#ifndef _WIN32
+using google_breakpad::ExploitabilityLinuxTest;
+using google_breakpad::ExploitabilityLinuxTestMinidumpContext;
+#endif  // _WIN32
+using google_breakpad::MinidumpProcessor;
+using google_breakpad::ProcessState;
+using google_breakpad::SimpleSymbolSupplier;
+
+string TestDataDir() {
+  return string(getenv("srcdir") ? getenv("srcdir") : ".") +
+      "/src/processor/testdata";
+}
+
+// Find the given dump file in <srcdir>/src/processor/testdata, process it,
+// and get the exploitability rating. Returns EXPLOITABILITY_ERR_PROCESSING
+// if the crash dump can't be processed.
+google_breakpad::ExploitabilityRating
+ExploitabilityFor(const string& filename) {
+  SimpleSymbolSupplier supplier(TestDataDir() + "/symbols");
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor processor(&supplier, &resolver, true);
+  processor.set_enable_objdump(true);
+  ProcessState state;
+
+  string minidump_file = TestDataDir() + "/" + filename;
+
+  if (processor.Process(minidump_file, &state) !=
+      google_breakpad::PROCESS_OK) {
+    return google_breakpad::EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  return state.exploitability();
+}
+
+TEST(ExploitabilityTest, TestWindowsEngine) {
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av_block_write.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av_clobber_write.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av_conditional.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av_then_jmp.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_read_av_xchg_write.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_write_av.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("ascii_write_av_arg_to_call.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
+            ExploitabilityFor("null_read_av.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
+            ExploitabilityFor("null_write_av.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
+            ExploitabilityFor("stack_exhaustion.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("exec_av_on_stack.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_MEDIUM,
+            ExploitabilityFor("write_av_non_null.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
+            ExploitabilityFor("read_av_non_null.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
+            ExploitabilityFor("read_av_clobber_write.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
+            ExploitabilityFor("read_av_conditional.dmp"));
+}
+
+TEST(ExploitabilityTest, TestLinuxEngine) {
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_null_read_av.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_overflow.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_stacksmash.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
+            ExploitabilityFor("linux_divide_by_zero.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_null_dereference.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_jmp_to_0.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_outside_module.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
+            ExploitabilityFor("linux_raise_sigabrt.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_inside_module_exe_region1.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_inside_module_exe_region2.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_stack_pointer_in_stack.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_stack_pointer_in_stack_alt_name.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_stack_pointer_in_module.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_executable_stack.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_executable_heap.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_jmp_to_module_not_exe_region.dmp"));
+#ifndef _WIN32
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_write_to_nonwritable_module.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_write_to_nonwritable_region_math.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_write_to_outside_module.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+            ExploitabilityFor("linux_write_to_outside_module_via_math.dmp"));
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+            ExploitabilityFor("linux_write_to_under_4k.dmp"));
+#endif  // _WIN32
+}
+
+#ifndef _WIN32
+TEST(ExploitabilityLinuxUtilsTest, DisassembleBytesTest) {
+  ASSERT_FALSE(ExploitabilityLinuxTest::DisassembleBytes("", NULL, 5, NULL));
+  uint8_t bytes[6] = {0xc7, 0x0, 0x5, 0x0, 0x0, 0x0};
+  char buffer[1024] = {0};
+  ASSERT_TRUE(ExploitabilityLinuxTest::DisassembleBytes("i386:x86-64",
+                                                        bytes,
+                                                        1024,
+                                                        buffer));
+  std::stringstream objdump_stream;
+  objdump_stream.str(string(buffer));
+  string line = "";
+  while (line.find("<.data>") == string::npos)
+    getline(objdump_stream, line);
+  getline(objdump_stream, line);
+  ASSERT_EQ(line, "   0:\tc7 00 05 00 00 00    \tmov    DWORD PTR [rax],0x5");
+}
+
+TEST(ExploitabilityLinuxUtilsTest, GetObjdumpInstructionLine) {
+  string disassebly =
+      "\n"
+      "/tmp/breakpad_mem_region-raw_bytes-tMmMo0:     file format binary\n"
+      "// Trying to confuse the parser 0:\n"
+      "\n"
+      "Disassembly of section .data:\n"
+      "\n"
+      "0000000000000000 <.data>:\n"
+      "   0:\tc7 00 01 00 00 00    \tmov    DWORD PTR [rax],0x1\n"
+      "   6:\t5d                   \tpop    rbp\n"
+      "   7:\tc3                   \tret    \n"
+      "   8:\t55                   \tpush   rbp\n"
+      "   9:\t48 89 e5             \tmov    rbp,rsp\n"
+      "   c:\t53                   \tpush   rbx\n"
+      "   d:\t48                   \trex.W\n"
+      "   e:\t81                   \t.byte 0x81\n";
+  string line;
+  EXPECT_TRUE(ExploitabilityLinuxTest::GetObjdumpInstructionLine(
+      disassebly.c_str(), &line));
+  EXPECT_EQ("   0:\tc7 00 01 00 00 00    \tmov    DWORD PTR [rax],0x1", line);
+
+  // There is no "0:" after "<.data>:".  Expected to return false.
+  disassebly =
+      "\n"
+      "/tmp/breakpad_mem_region-raw_bytes-tMmMo0:     file format binary\n"
+      "// Trying to confuse the parser 0:\n"
+      "\n"
+      "Disassembly of section .data:\n"
+      "\n"
+      "   0:\tc7 00 01 00 00 00    \tmov    DWORD PTR [rax],0x1\n"
+      "   6:\t5d                   \tpop    rbp\n"
+      "   7:\tc3                   \tret    \n"
+      "   8:\t55                   \tpush   rbp\n"
+      "   9:\t48 89 e5             \tmov    rbp,rsp\n"
+      "   d:\t48                   \trex.W\n"
+      "0000000000000000 <.data>:\n"
+      "   c:\t53                   \tpush   rbx\n";
+  EXPECT_FALSE(ExploitabilityLinuxTest::GetObjdumpInstructionLine(
+      disassebly.c_str(), &line));
+}
+
+TEST(ExploitabilityLinuxUtilsTest, TokenizeObjdumpInstructionTest) {
+  ASSERT_FALSE(ExploitabilityLinuxTest::TokenizeObjdumpInstruction("",
+                                                                   NULL,
+                                                                   NULL,
+                                                                   NULL));
+  string line = "0: c7 00 05 00 00 00     mov    DWORD PTR [rax],0x5";
+  string operation = "";
+  string dest = "";
+  string src = "";
+  ASSERT_TRUE(ExploitabilityLinuxTest::TokenizeObjdumpInstruction(line,
+                                                                  &operation,
+                                                                  &dest,
+                                                                  &src));
+  ASSERT_EQ(operation, "mov");
+  ASSERT_EQ(dest, "[rax]");
+  ASSERT_EQ(src, "0x5");
+  line = "0: c3 ret";
+  ASSERT_TRUE(ExploitabilityLinuxTest::TokenizeObjdumpInstruction(line,
+                                                                  &operation,
+                                                                  &dest,
+                                                                  &src));
+  ASSERT_EQ(operation, "ret");
+  ASSERT_EQ(dest, "");
+  ASSERT_EQ(src, "");
+  line = "0: 5f pop rdi";
+  ASSERT_TRUE(ExploitabilityLinuxTest::TokenizeObjdumpInstruction(line,
+                                                                  &operation,
+                                                                  &dest,
+                                                                  &src));
+  ASSERT_EQ(operation, "pop");
+  ASSERT_EQ(dest, "rdi");
+  ASSERT_EQ(src, "");
+}
+
+TEST(ExploitabilityLinuxUtilsTest, CalculateAddressTest) {
+  MDRawContextAMD64 raw_context;
+  raw_context.rdx = 12345;
+  ExploitabilityLinuxTestMinidumpContext context(raw_context);
+  ASSERT_EQ(context.GetContextAMD64()->rdx, 12345U);
+  ASSERT_FALSE(ExploitabilityLinuxTest::CalculateAddress("", context, NULL));
+  uint64_t write_address = 0;
+  ASSERT_TRUE(ExploitabilityLinuxTest::CalculateAddress("rdx-0x4D2",
+                                                        context,
+                                                        &write_address));
+  ASSERT_EQ(write_address, 11111U);
+  ASSERT_TRUE(ExploitabilityLinuxTest::CalculateAddress("rdx+0x4D2",
+                                                        context,
+                                                        &write_address));
+  ASSERT_EQ(write_address, 13579U);
+  ASSERT_FALSE(ExploitabilityLinuxTest::CalculateAddress("rdx+rax",
+                                                         context,
+                                                         &write_address));
+  ASSERT_FALSE(ExploitabilityLinuxTest::CalculateAddress("0x3482+0x4D2",
+                                                         context,
+                                                         &write_address));
+}
+#endif  // _WIN32
+
+}  // namespace
diff --git a/src/processor/exploitability_win.cc b/src/processor/exploitability_win.cc
new file mode 100644
index 0000000..b74a749
--- /dev/null
+++ b/src/processor/exploitability_win.cc
@@ -0,0 +1,283 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_win.cc: Windows specific exploitability engine.
+//
+// Provides a guess at the exploitability of the crash for the Windows
+// platform given a minidump and process_state.
+//
+// Author: Cris Neckar
+
+#include <vector>
+
+#include "processor/exploitability_win.h"
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/common/minidump_exception_win32.h"
+#include "google_breakpad/processor/minidump.h"
+#include "processor/disassembler_x86.h"
+#include "processor/logging.h"
+
+#include "third_party/libdisasm/libdis.h"
+
+namespace google_breakpad {
+
+// The cutoff that we use to judge if and address is likely an offset
+// from various interesting addresses.
+static const uint64_t kProbableNullOffset = 4096;
+static const uint64_t kProbableStackOffset = 8192;
+
+// The various cutoffs for the different ratings.
+static const size_t kHighCutoff        = 100;
+static const size_t kMediumCutoff      = 80;
+static const size_t kLowCutoff         = 50;
+static const size_t kInterestingCutoff = 25;
+
+// Predefined incremental values for conditional weighting.
+static const size_t kTinyBump          = 5;
+static const size_t kSmallBump         = 20;
+static const size_t kMediumBump        = 50;
+static const size_t kLargeBump         = 70;
+static const size_t kHugeBump          = 90;
+
+// The maximum number of bytes to disassemble past the program counter.
+static const size_t kDisassembleBytesBeyondPC = 2048;
+
+ExploitabilityWin::ExploitabilityWin(Minidump* dump,
+                                     ProcessState* process_state)
+    : Exploitability(dump, process_state) { }
+
+ExploitabilityRating ExploitabilityWin::CheckPlatformExploitability() {
+  MinidumpException* exception = dump_->GetException();
+  if (!exception) {
+    BPLOG(INFO) << "Minidump does not have exception record.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  const MDRawExceptionStream* raw_exception = exception->exception();
+  if (!raw_exception) {
+    BPLOG(INFO) << "Could not obtain raw exception info.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  const MinidumpContext* context = exception->GetContext();
+  if (!context) {
+    BPLOG(INFO) << "Could not obtain exception context.";
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  MinidumpMemoryList* memory_list = dump_->GetMemoryList();
+  bool memory_available = true;
+  if (!memory_list) {
+    BPLOG(INFO) << "Minidump memory segments not available.";
+    memory_available = false;
+  }
+  uint64_t address = process_state_->crash_address();
+  uint32_t exception_code = raw_exception->exception_record.exception_code;
+
+  uint32_t exploitability_weight = 0;
+
+  uint64_t stack_ptr = 0;
+  uint64_t instruction_ptr = 0;
+
+  // Getting the instruction pointer.
+  if (!context->GetInstructionPointer(&instruction_ptr)) {
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Getting the stack pointer.
+  if (!context->GetStackPointer(&stack_ptr)) {
+    return EXPLOITABILITY_ERR_PROCESSING;
+  }
+
+  // Check if we are executing on the stack.
+  if (instruction_ptr <= (stack_ptr + kProbableStackOffset) &&
+      instruction_ptr >= (stack_ptr - kProbableStackOffset))
+    exploitability_weight += kHugeBump;
+
+  switch (exception_code) {
+    // This is almost certainly recursion.
+    case MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW:
+      exploitability_weight += kTinyBump;
+      break;
+
+    // These exceptions tend to be benign and we can generally ignore them.
+    case MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO:
+    case MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW:
+    case MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO:
+    case MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT:
+    case MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW:
+    case MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW:
+    case MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR:
+      exploitability_weight += kTinyBump;
+      break;
+
+    // These exceptions will typically mean that we have jumped where we
+    // shouldn't.
+    case MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION:
+    case MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION:
+    case MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION:
+      exploitability_weight += kLargeBump;
+      break;
+
+    // These represent bugs in exception handlers.
+    case MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION:
+    case MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION:
+      exploitability_weight += kSmallBump;
+      break;
+
+    case MD_EXCEPTION_CODE_WIN_HEAP_CORRUPTION:
+    case MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN:
+      exploitability_weight += kHugeBump;
+      break;
+
+    case MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION:
+      exploitability_weight += kLargeBump;
+      break;
+
+    case MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION:
+      bool near_null = (address <= kProbableNullOffset);
+      bool bad_read = false;
+      bool bad_write = false;
+      if (raw_exception->exception_record.number_parameters >= 1) {
+        MDAccessViolationTypeWin av_type =
+            static_cast<MDAccessViolationTypeWin>
+            (raw_exception->exception_record.exception_information[0]);
+        switch (av_type) {
+          case MD_ACCESS_VIOLATION_WIN_READ:
+            bad_read = true;
+            if (near_null)
+              exploitability_weight += kSmallBump;
+            else
+              exploitability_weight += kMediumBump;
+            break;
+          case MD_ACCESS_VIOLATION_WIN_WRITE:
+            bad_write = true;
+            if (near_null)
+              exploitability_weight += kSmallBump;
+            else
+              exploitability_weight += kHugeBump;
+            break;
+          case MD_ACCESS_VIOLATION_WIN_EXEC:
+            if (near_null)
+              exploitability_weight += kSmallBump;
+            else
+              exploitability_weight += kHugeBump;
+            break;
+          default:
+            BPLOG(INFO) << "Unrecognized access violation type.";
+            return EXPLOITABILITY_ERR_PROCESSING;
+            break;
+        }
+        MinidumpMemoryRegion* instruction_region = 0;
+        if (memory_available) {
+          instruction_region =
+              memory_list->GetMemoryRegionForAddress(instruction_ptr);
+        }
+        if (!near_null && instruction_region &&
+            context->GetContextCPU() == MD_CONTEXT_X86 &&
+            (bad_read || bad_write)) {
+          // Perform checks related to memory around instruction pointer.
+          uint32_t memory_offset =
+              instruction_ptr - instruction_region->GetBase();
+          uint32_t available_memory =
+              instruction_region->GetSize() - memory_offset;
+          available_memory = available_memory > kDisassembleBytesBeyondPC ?
+              kDisassembleBytesBeyondPC : available_memory;
+          if (available_memory) {
+            const uint8_t* raw_memory =
+                instruction_region->GetMemory() + memory_offset;
+            DisassemblerX86 disassembler(raw_memory,
+                                         available_memory,
+                                         instruction_ptr);
+            disassembler.NextInstruction();
+            if (bad_read)
+              disassembler.setBadRead();
+            else
+              disassembler.setBadWrite();
+            if (disassembler.currentInstructionValid()) {
+              // Check if the faulting instruction falls into one of
+              // several interesting groups.
+              switch (disassembler.currentInstructionGroup()) {
+                case libdis::insn_controlflow:
+                  exploitability_weight += kLargeBump;
+                  break;
+                case libdis::insn_string:
+                  exploitability_weight += kHugeBump;
+                  break;
+                default:
+                  break;
+              }
+              // Loop the disassembler through the code and check if it
+              // IDed any interesting conditions in the near future.
+              // Multiple flags may be set so treat each equally.
+              while (disassembler.NextInstruction() &&
+                     disassembler.currentInstructionValid() &&
+                     !disassembler.endOfBlock())
+                continue;
+              if (disassembler.flags() & DISX86_BAD_BRANCH_TARGET)
+                exploitability_weight += kLargeBump;
+              if (disassembler.flags() & DISX86_BAD_ARGUMENT_PASSED)
+                exploitability_weight += kTinyBump;
+              if (disassembler.flags() & DISX86_BAD_WRITE)
+                exploitability_weight += kMediumBump;
+              if (disassembler.flags() & DISX86_BAD_BLOCK_WRITE)
+                exploitability_weight += kMediumBump;
+              if (disassembler.flags() & DISX86_BAD_READ)
+                exploitability_weight += kTinyBump;
+              if (disassembler.flags() & DISX86_BAD_BLOCK_READ)
+                exploitability_weight += kTinyBump;
+              if (disassembler.flags() & DISX86_BAD_COMPARISON)
+                exploitability_weight += kTinyBump;
+            }
+          }
+        }
+        if (!near_null && AddressIsAscii(address))
+          exploitability_weight += kMediumBump;
+      } else {
+        BPLOG(INFO) << "Access violation type parameter missing.";
+        return EXPLOITABILITY_ERR_PROCESSING;
+      }
+  }
+
+  // Based on the calculated weight we return a simplified classification.
+  BPLOG(INFO) << "Calculated exploitability weight: " << exploitability_weight;
+  if (exploitability_weight >= kHighCutoff)
+    return EXPLOITABILITY_HIGH;
+  if (exploitability_weight >= kMediumCutoff)
+    return EXPLOITABLITY_MEDIUM;
+  if (exploitability_weight >= kLowCutoff)
+    return EXPLOITABILITY_LOW;
+  if (exploitability_weight >= kInterestingCutoff)
+    return EXPLOITABILITY_INTERESTING;
+
+  return EXPLOITABILITY_NONE;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/exploitability_win.h b/src/processor/exploitability_win.h
new file mode 100644
index 0000000..4e08aef
--- /dev/null
+++ b/src/processor/exploitability_win.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_win.h: Windows specific exploitability engine.
+//
+// Provides a guess at the exploitability of the crash for the Windows
+// platform given a minidump and process_state.
+//
+// Author: Cris Neckar
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/exploitability.h"
+
+namespace google_breakpad {
+
+class ExploitabilityWin : public Exploitability {
+  public:
+    ExploitabilityWin(Minidump *dump,
+                      ProcessState *process_state);
+
+    virtual ExploitabilityRating CheckPlatformExploitability();
+};
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
diff --git a/src/processor/fast_source_line_resolver.cc b/src/processor/fast_source_line_resolver.cc
new file mode 100644
index 0000000..3f8ec50
--- /dev/null
+++ b/src/processor/fast_source_line_resolver.cc
@@ -0,0 +1,275 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// fast_source_line_resolver.cc: FastSourceLineResolver is a concrete class that
+// implements SourceLineResolverInterface.  Both FastSourceLineResolver and
+// BasicSourceLineResolver inherit from SourceLineResolverBase class to reduce
+// code redundancy.
+//
+// See fast_source_line_resolver.h and fast_source_line_resolver_types.h
+// for more documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include "google_breakpad/processor/fast_source_line_resolver.h"
+#include "processor/fast_source_line_resolver_types.h"
+
+#include <map>
+#include <string>
+#include <utility>
+
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "processor/module_factory.h"
+#include "processor/simple_serializer-inl.h"
+
+using std::map;
+using std::make_pair;
+
+namespace google_breakpad {
+
+FastSourceLineResolver::FastSourceLineResolver()
+  : SourceLineResolverBase(new FastModuleFactory) { }
+
+bool FastSourceLineResolver::ShouldDeleteMemoryBufferAfterLoadModule() {
+  return false;
+}
+
+void FastSourceLineResolver::Module::LookupAddress(StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+
+  // First, look for a FUNC record that covers address. Use
+  // RetrieveNearestRange instead of RetrieveRange so that, if there
+  // is no such function, we can use the next function to bound the
+  // extent of the PUBLIC symbol we find, below. This does mean we
+  // need to check that address indeed falls within the function we
+  // find; do the range comparison in an overflow-friendly way.
+  scoped_ptr<Function> func(new Function);
+  const Function* func_ptr = 0;
+  scoped_ptr<PublicSymbol> public_symbol(new PublicSymbol);
+  const PublicSymbol* public_symbol_ptr = 0;
+  MemAddr function_base;
+  MemAddr function_size;
+  MemAddr public_address;
+
+  if (functions_.RetrieveNearestRange(address, func_ptr,
+                                      &function_base, &function_size) &&
+      address >= function_base && address - function_base < function_size) {
+    func.get()->CopyFrom(func_ptr);
+    frame->function_name = func->name;
+    frame->function_base = frame->module->base_address() + function_base;
+
+    scoped_ptr<Line> line(new Line);
+    const Line* line_ptr = 0;
+    MemAddr line_base;
+    if (func->lines.RetrieveRange(address, line_ptr, &line_base, NULL)) {
+      line.get()->CopyFrom(line_ptr);
+      FileMap::iterator it = files_.find(line->source_file_id);
+      if (it != files_.end()) {
+        frame->source_file_name =
+            files_.find(line->source_file_id).GetValuePtr();
+      }
+      frame->source_line = line->line;
+      frame->source_line_base = frame->module->base_address() + line_base;
+    }
+  } else if (public_symbols_.Retrieve(address,
+                                      public_symbol_ptr, &public_address) &&
+             (!func_ptr || public_address > function_base)) {
+    public_symbol.get()->CopyFrom(public_symbol_ptr);
+    frame->function_name = public_symbol->name;
+    frame->function_base = frame->module->base_address() + public_address;
+  }
+}
+
+// WFI: WindowsFrameInfo.
+// Returns a WFI object reading from a raw memory chunk of data
+WindowsFrameInfo FastSourceLineResolver::CopyWFI(const char* raw) {
+  const WindowsFrameInfo::StackInfoTypes type =
+     static_cast<const WindowsFrameInfo::StackInfoTypes>(
+         *reinterpret_cast<const int32_t*>(raw));
+
+  // The first 8 bytes of int data are unused.
+  // They correspond to "StackInfoTypes type_;" and "int valid;"
+  // data member of WFI.
+  const uint32_t* para_uint32 = reinterpret_cast<const uint32_t*>(
+      raw + 2 * sizeof(int32_t));
+
+  uint32_t prolog_size = para_uint32[0];;
+  uint32_t epilog_size = para_uint32[1];
+  uint32_t parameter_size = para_uint32[2];
+  uint32_t saved_register_size = para_uint32[3];
+  uint32_t local_size = para_uint32[4];
+  uint32_t max_stack_size = para_uint32[5];
+  const char* boolean = reinterpret_cast<const char*>(para_uint32 + 6);
+  bool allocates_base_pointer = (*boolean != 0);
+  string program_string = boolean + 1;
+
+  return WindowsFrameInfo(type,
+                          prolog_size,
+                          epilog_size,
+                          parameter_size,
+                          saved_register_size,
+                          local_size,
+                          max_stack_size,
+                          allocates_base_pointer,
+                          program_string);
+}
+
+// Loads a map from the given buffer in char* type.
+// Does NOT take ownership of mem_buffer.
+// In addition, treat mem_buffer as const char*.
+bool FastSourceLineResolver::Module::LoadMapFromMemory(
+    char* memory_buffer,
+    size_t memory_buffer_size) {
+  if (!memory_buffer) return false;
+
+  // Read the "is_corrupt" flag.
+  const char* mem_buffer = memory_buffer;
+  mem_buffer = SimpleSerializer<bool>::Read(mem_buffer, &is_corrupt_);
+
+  const uint32_t* map_sizes = reinterpret_cast<const uint32_t*>(mem_buffer);
+
+  unsigned int header_size = kNumberMaps_ * sizeof(unsigned int);
+
+  // offsets[]: an array of offset addresses (with respect to mem_buffer),
+  // for each "Static***Map" component of Module.
+  // "Static***Map": static version of std::map or map wrapper, i.e., StaticMap,
+  // StaticAddressMap, StaticContainedRangeMap, and StaticRangeMap.
+  unsigned int offsets[kNumberMaps_];
+  offsets[0] = header_size;
+  for (int i = 1; i < kNumberMaps_; ++i) {
+    offsets[i] = offsets[i - 1] + map_sizes[i - 1];
+  }
+
+  // Use pointers to construct Static*Map data members in Module:
+  int map_id = 0;
+  files_ = StaticMap<int, char>(mem_buffer + offsets[map_id++]);
+  functions_ =
+      StaticRangeMap<MemAddr, Function>(mem_buffer + offsets[map_id++]);
+  public_symbols_ =
+      StaticAddressMap<MemAddr, PublicSymbol>(mem_buffer + offsets[map_id++]);
+  for (int i = 0; i < WindowsFrameInfo::STACK_INFO_LAST; ++i)
+    windows_frame_info_[i] =
+        StaticContainedRangeMap<MemAddr, char>(mem_buffer + offsets[map_id++]);
+
+  cfi_initial_rules_ =
+      StaticRangeMap<MemAddr, char>(mem_buffer + offsets[map_id++]);
+  cfi_delta_rules_ = StaticMap<MemAddr, char>(mem_buffer + offsets[map_id++]);
+
+  return true;
+}
+
+WindowsFrameInfo* FastSourceLineResolver::Module::FindWindowsFrameInfo(
+    const StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+  scoped_ptr<WindowsFrameInfo> result(new WindowsFrameInfo());
+
+  // We only know about WindowsFrameInfo::STACK_INFO_FRAME_DATA and
+  // WindowsFrameInfo::STACK_INFO_FPO. Prefer them in this order.
+  // WindowsFrameInfo::STACK_INFO_FRAME_DATA is the newer type that
+  // includes its own program string.
+  // WindowsFrameInfo::STACK_INFO_FPO is the older type
+  // corresponding to the FPO_DATA struct. See stackwalker_x86.cc.
+  const char* frame_info_ptr;
+  if ((windows_frame_info_[WindowsFrameInfo::STACK_INFO_FRAME_DATA]
+       .RetrieveRange(address, frame_info_ptr))
+      || (windows_frame_info_[WindowsFrameInfo::STACK_INFO_FPO]
+          .RetrieveRange(address, frame_info_ptr))) {
+    result->CopyFrom(CopyWFI(frame_info_ptr));
+    return result.release();
+  }
+
+  // Even without a relevant STACK line, many functions contain
+  // information about how much space their parameters consume on the
+  // stack. Use RetrieveNearestRange instead of RetrieveRange, so that
+  // we can use the function to bound the extent of the PUBLIC symbol,
+  // below. However, this does mean we need to check that ADDRESS
+  // falls within the retrieved function's range; do the range
+  // comparison in an overflow-friendly way.
+  scoped_ptr<Function> function(new Function);
+  const Function* function_ptr = 0;
+  MemAddr function_base, function_size;
+  if (functions_.RetrieveNearestRange(address, function_ptr,
+                                      &function_base, &function_size) &&
+      address >= function_base && address - function_base < function_size) {
+    function.get()->CopyFrom(function_ptr);
+    result->parameter_size = function->parameter_size;
+    result->valid |= WindowsFrameInfo::VALID_PARAMETER_SIZE;
+    return result.release();
+  }
+
+  // PUBLIC symbols might have a parameter size. Use the function we
+  // found above to limit the range the public symbol covers.
+  scoped_ptr<PublicSymbol> public_symbol(new PublicSymbol);
+  const PublicSymbol* public_symbol_ptr = 0;
+  MemAddr public_address;
+  if (public_symbols_.Retrieve(address, public_symbol_ptr, &public_address) &&
+      (!function_ptr || public_address > function_base)) {
+    public_symbol.get()->CopyFrom(public_symbol_ptr);
+    result->parameter_size = public_symbol->parameter_size;
+  }
+
+  return NULL;
+}
+
+CFIFrameInfo* FastSourceLineResolver::Module::FindCFIFrameInfo(
+    const StackFrame* frame) const {
+  MemAddr address = frame->instruction - frame->module->base_address();
+  MemAddr initial_base, initial_size;
+  const char* initial_rules = NULL;
+
+  // Find the initial rule whose range covers this address. That
+  // provides an initial set of register recovery rules. Then, walk
+  // forward from the initial rule's starting address to frame's
+  // instruction address, applying delta rules.
+  if (!cfi_initial_rules_.RetrieveRange(address, initial_rules,
+                                        &initial_base, &initial_size)) {
+    return NULL;
+  }
+
+  // Create a frame info structure, and populate it with the rules from
+  // the STACK CFI INIT record.
+  scoped_ptr<CFIFrameInfo> rules(new CFIFrameInfo());
+  if (!ParseCFIRuleSet(initial_rules, rules.get()))
+    return NULL;
+
+  // Find the first delta rule that falls within the initial rule's range.
+  StaticMap<MemAddr, char>::iterator delta =
+    cfi_delta_rules_.lower_bound(initial_base);
+
+  // Apply delta rules up to and including the frame's address.
+  while (delta != cfi_delta_rules_.end() && delta.GetKey() <= address) {
+    ParseCFIRuleSet(delta.GetValuePtr(), rules.get());
+    delta++;
+  }
+
+  return rules.release();
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/fast_source_line_resolver_types.h b/src/processor/fast_source_line_resolver_types.h
new file mode 100644
index 0000000..2b2b582
--- /dev/null
+++ b/src/processor/fast_source_line_resolver_types.h
@@ -0,0 +1,185 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// fast_source_line_resolver_types.h: definition of nested classes/structs in
+// FastSourceLineResolver.  It moves the definitions out of
+// fast_source_line_resolver.cc, so that other classes could have access
+// to these private nested types without including fast_source_line_resolver.cc
+//
+// Author: lambxsy@google.com (Siyang Xie)
+
+#ifndef PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
+#define PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
+
+#include "google_breakpad/processor/fast_source_line_resolver.h"
+#include "processor/source_line_resolver_base_types.h"
+
+#include <map>
+#include <string>
+
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/static_address_map-inl.h"
+#include "processor/static_contained_range_map-inl.h"
+#include "processor/static_map.h"
+#include "processor/static_range_map-inl.h"
+#include "processor/windows_frame_info.h"
+
+namespace google_breakpad {
+
+struct FastSourceLineResolver::Line : public SourceLineResolverBase::Line {
+  void CopyFrom(const Line* line_ptr) {
+    const char* raw = reinterpret_cast<const char*>(line_ptr);
+    CopyFrom(raw);
+  }
+
+  // De-serialize the memory data of a Line.
+  void CopyFrom(const char* raw) {
+    address = *(reinterpret_cast<const MemAddr*>(raw));
+    size = *(reinterpret_cast<const MemAddr*>(raw + sizeof(address)));
+    source_file_id = *(reinterpret_cast<const int32_t*>(
+        raw + 2 * sizeof(address)));
+    line = *(reinterpret_cast<const int32_t*>(
+        raw + 2 * sizeof(address) + sizeof(source_file_id)));
+  }
+};
+
+struct FastSourceLineResolver::Function :
+public SourceLineResolverBase::Function {
+  void CopyFrom(const Function* func_ptr) {
+    const char* raw = reinterpret_cast<const char*>(func_ptr);
+    CopyFrom(raw);
+  }
+
+  // De-serialize the memory data of a Function.
+  void CopyFrom(const char* raw) {
+    size_t name_size = strlen(raw) + 1;
+    name = raw;
+    address = *(reinterpret_cast<const MemAddr*>(raw + name_size));
+    size = *(reinterpret_cast<const MemAddr*>(
+        raw + name_size + sizeof(MemAddr)));
+    parameter_size = *(reinterpret_cast<const int32_t*>(
+        raw + name_size + 2 * sizeof(MemAddr)));
+    lines = StaticRangeMap<MemAddr, Line>(
+        raw + name_size + 2 * sizeof(MemAddr) + sizeof(int32_t));
+  }
+
+  StaticRangeMap<MemAddr, Line> lines;
+};
+
+struct FastSourceLineResolver::PublicSymbol :
+public SourceLineResolverBase::PublicSymbol {
+  void CopyFrom(const PublicSymbol* public_symbol_ptr) {
+    const char* raw = reinterpret_cast<const char*>(public_symbol_ptr);
+    CopyFrom(raw);
+  }
+
+  // De-serialize the memory data of a PublicSymbol.
+  void CopyFrom(const char* raw) {
+    size_t name_size = strlen(raw) + 1;
+    name = raw;
+    address = *(reinterpret_cast<const MemAddr*>(raw + name_size));
+    parameter_size = *(reinterpret_cast<const int32_t*>(
+        raw + name_size + sizeof(MemAddr)));
+  }
+};
+
+class FastSourceLineResolver::Module: public SourceLineResolverBase::Module {
+ public:
+  explicit Module(const string& name) : name_(name), is_corrupt_(false) { }
+  virtual ~Module() { }
+
+  // Looks up the given relative address, and fills the StackFrame struct
+  // with the result.
+  virtual void LookupAddress(StackFrame* frame) const;
+
+  // Loads a map from the given buffer in char* type.
+  virtual bool LoadMapFromMemory(char* memory_buffer,
+                                 size_t memory_buffer_size);
+
+  // Tells whether the loaded symbol data is corrupt.  Return value is
+  // undefined, if the symbol data hasn't been loaded yet.
+  virtual bool IsCorrupt() const { return is_corrupt_; }
+
+  // If Windows stack walking information is available covering ADDRESS,
+  // return a WindowsFrameInfo structure describing it. If the information
+  // is not available, returns NULL. A NULL return value does not indicate
+  // an error. The caller takes ownership of any returned WindowsFrameInfo
+  // object.
+  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame) const;
+
+  // If CFI stack walking information is available covering ADDRESS,
+  // return a CFIFrameInfo structure describing it. If the information
+  // is not available, return NULL. The caller takes ownership of any
+  // returned CFIFrameInfo object.
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame) const;
+
+  // Number of serialized map components of Module.
+  static const int kNumberMaps_ = 5 + WindowsFrameInfo::STACK_INFO_LAST;
+
+ private:
+  friend class FastSourceLineResolver;
+  friend class ModuleComparer;
+  typedef StaticMap<int, char> FileMap;
+
+  string name_;
+  StaticMap<int, char> files_;
+  StaticRangeMap<MemAddr, Function> functions_;
+  StaticAddressMap<MemAddr, PublicSymbol> public_symbols_;
+  bool is_corrupt_;
+
+  // Each element in the array is a ContainedRangeMap for a type
+  // listed in WindowsFrameInfoTypes. These are split by type because
+  // there may be overlaps between maps of different types, but some
+  // information is only available as certain types.
+  StaticContainedRangeMap<MemAddr, char>
+    windows_frame_info_[WindowsFrameInfo::STACK_INFO_LAST];
+
+  // DWARF CFI stack walking data. The Module stores the initial rule sets
+  // and rule deltas as strings, just as they appear in the symbol file:
+  // although the file may contain hundreds of thousands of STACK CFI
+  // records, walking a stack will only ever use a few of them, so it's
+  // best to delay parsing a record until it's actually needed.
+  //
+  // STACK CFI INIT records: for each range, an initial set of register
+  // recovery rules. The RangeMap's itself gives the starting and ending
+  // addresses.
+  StaticRangeMap<MemAddr, char> cfi_initial_rules_;
+
+  // STACK CFI records: at a given address, the changes to the register
+  // recovery rules that take effect at that address. The map key is the
+  // starting address; the ending address is the key of the next entry in
+  // this map, or the end of the range as given by the cfi_initial_rules_
+  // entry (which FindCFIFrameInfo looks up first).
+  StaticMap<MemAddr, char> cfi_delta_rules_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
diff --git a/src/processor/fast_source_line_resolver_unittest.cc b/src/processor/fast_source_line_resolver_unittest.cc
new file mode 100644
index 0000000..0ec5f91
--- /dev/null
+++ b/src/processor/fast_source_line_resolver_unittest.cc
@@ -0,0 +1,492 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// fast_source_line_resolver_unittest.cc: Unit tests for FastSourceLineResolver.
+// Two different approaches for testing fast source line resolver:
+// First, use the same unit test data for basic source line resolver.
+// Second, read data from symbol files, load them as basic modules, and then
+// serialize them and load the serialized data as fast modules.  Then compare
+// modules to assure the fast module contains exactly the same data as
+// basic module.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <sstream>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "processor/logging.h"
+#include "processor/module_serializer.h"
+#include "processor/module_comparer.h"
+
+namespace {
+
+using google_breakpad::SourceLineResolverBase;
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::FastSourceLineResolver;
+using google_breakpad::ModuleSerializer;
+using google_breakpad::ModuleComparer;
+using google_breakpad::CFIFrameInfo;
+using google_breakpad::CodeModule;
+using google_breakpad::MemoryRegion;
+using google_breakpad::StackFrame;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::linked_ptr;
+using google_breakpad::scoped_ptr;
+
+class TestCodeModule : public CodeModule {
+ public:
+  explicit TestCodeModule(string code_file) : code_file_(code_file) {}
+  virtual ~TestCodeModule() {}
+
+  virtual uint64_t base_address() const { return 0; }
+  virtual uint64_t size() const { return 0xb000; }
+  virtual string code_file() const { return code_file_; }
+  virtual string code_identifier() const { return ""; }
+  virtual string debug_file() const { return ""; }
+  virtual string debug_identifier() const { return ""; }
+  virtual string version() const { return ""; }
+  virtual CodeModule* Copy() const {
+    return new TestCodeModule(code_file_);
+  }
+  virtual bool is_unloaded() const { return false; }
+  virtual uint64_t shrink_down_delta() const { return 0; }
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) {}
+
+ private:
+  string code_file_;
+};
+
+// A mock memory region object, for use by the STACK CFI tests.
+class MockMemoryRegion: public MemoryRegion {
+  uint64_t GetBase() const { return 0x10000; }
+  uint32_t GetSize() const { return 0x01000; }
+  bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const {
+    *value = address & 0xff;
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+    *value = address & 0xffff;
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+    switch (address) {
+      case 0x10008: *value = 0x98ecadc3; break;  // saved %ebx
+      case 0x1000c: *value = 0x878f7524; break;  // saved %esi
+      case 0x10010: *value = 0x6312f9a5; break;  // saved %edi
+      case 0x10014: *value = 0x10038;    break;  // caller's %ebp
+      case 0x10018: *value = 0xf6438648; break;  // return address
+      default: *value = 0xdeadbeef;      break;  // junk
+    }
+    return true;
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+    *value = address;
+    return true;
+  }
+  void Print() const {
+    assert(false);
+  }
+};
+
+// Verify that, for every association in ACTUAL, EXPECTED has the same
+// association. (That is, ACTUAL's associations should be a subset of
+// EXPECTED's.) Also verify that ACTUAL has associations for ".ra" and
+// ".cfa".
+static bool VerifyRegisters(
+    const char* file, int line,
+    const CFIFrameInfo::RegisterValueMap<uint32_t>& expected,
+    const CFIFrameInfo::RegisterValueMap<uint32_t>& actual) {
+  CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator a;
+  a = actual.find(".cfa");
+  if (a == actual.end())
+    return false;
+  a = actual.find(".ra");
+  if (a == actual.end())
+    return false;
+  for (a = actual.begin(); a != actual.end(); a++) {
+    CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator e =
+      expected.find(a->first);
+    if (e == expected.end()) {
+      fprintf(stderr, "%s:%d: unexpected register '%s' recovered, value 0x%x\n",
+              file, line, a->first.c_str(), a->second);
+      return false;
+    }
+    if (e->second != a->second) {
+      fprintf(stderr,
+              "%s:%d: register '%s' recovered value was 0x%x, expected 0x%x\n",
+              file, line, a->first.c_str(), a->second, e->second);
+      return false;
+    }
+    // Don't complain if this doesn't recover all registers. Although
+    // the DWARF spec says that unmentioned registers are undefined,
+    // GCC uses omission to mean that they are unchanged.
+  }
+  return true;
+}
+
+static bool VerifyEmpty(const StackFrame& frame) {
+  if (frame.function_name.empty() &&
+      frame.source_file_name.empty() &&
+      frame.source_line == 0)
+    return true;
+  return false;
+}
+
+static void ClearSourceLineInfo(StackFrame* frame) {
+  frame->function_name.clear();
+  frame->module = NULL;
+  frame->source_file_name.clear();
+  frame->source_line = 0;
+}
+
+class TestFastSourceLineResolver : public ::testing::Test {
+ public:
+  void SetUp() {
+    testdata_dir = string(getenv("srcdir") ? getenv("srcdir") : ".") +
+                         "/src/processor/testdata";
+  }
+
+  string symbol_file(int file_index) {
+    std::stringstream ss;
+    ss << testdata_dir << "/module" << file_index << ".out";
+    return ss.str();
+  }
+
+  ModuleSerializer serializer;
+  BasicSourceLineResolver basic_resolver;
+  FastSourceLineResolver fast_resolver;
+  ModuleComparer module_comparer;
+
+  string testdata_dir;
+};
+
+// Test adapted from basic_source_line_resolver_unittest.
+TEST_F(TestFastSourceLineResolver, TestLoadAndResolve) {
+  TestCodeModule module1("module1");
+  ASSERT_TRUE(basic_resolver.LoadModule(&module1, symbol_file(1)));
+  ASSERT_TRUE(basic_resolver.HasModule(&module1));
+  // Convert module1 to fast_module:
+  ASSERT_TRUE(serializer.ConvertOneModule(
+      module1.code_file(), &basic_resolver, &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module1));
+
+  TestCodeModule module2("module2");
+  ASSERT_TRUE(basic_resolver.LoadModule(&module2, symbol_file(2)));
+  ASSERT_TRUE(basic_resolver.HasModule(&module2));
+  // Convert module2 to fast_module:
+  ASSERT_TRUE(serializer.ConvertOneModule(
+      module2.code_file(), &basic_resolver, &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module2));
+
+  StackFrame frame;
+  scoped_ptr<WindowsFrameInfo> windows_frame_info;
+  scoped_ptr<CFIFrameInfo> cfi_frame_info;
+  frame.instruction = 0x1000;
+  frame.module = NULL;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_FALSE(frame.module);
+  ASSERT_TRUE(frame.function_name.empty());
+  ASSERT_EQ(frame.function_base, 0U);
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  ASSERT_EQ(frame.source_line_base, 0U);
+
+  frame.module = &module1;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_1");
+  ASSERT_TRUE(frame.module);
+  ASSERT_EQ(frame.module->code_file(), "module1");
+  ASSERT_EQ(frame.function_base, 0x1000U);
+  ASSERT_EQ(frame.source_file_name, "file1_1.cc");
+  ASSERT_EQ(frame.source_line, 44);
+  ASSERT_EQ(frame.source_line_base, 0x1000U);
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_EQ(windows_frame_info->program_string,
+            "$eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =");
+
+  ClearSourceLineInfo(&frame);
+  frame.instruction = 0x800;
+  frame.module = &module1;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_TRUE(VerifyEmpty(frame));
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_FALSE(windows_frame_info.get());
+
+  frame.instruction = 0x1280;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_3");
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_UNKNOWN);
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_TRUE(windows_frame_info->program_string.empty());
+
+  frame.instruction = 0x1380;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function1_4");
+  ASSERT_TRUE(frame.source_file_name.empty());
+  ASSERT_EQ(frame.source_line, 0);
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
+  ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
+  ASSERT_FALSE(windows_frame_info->program_string.empty());
+
+  frame.instruction = 0x2000;
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_FALSE(windows_frame_info.get());
+
+  // module1 has STACK CFI records covering 3d40..3def;
+  // module2 has STACK CFI records covering 3df0..3e9f;
+  // check that FindCFIFrameInfo doesn't claim to find any outside those ranges.
+  frame.instruction = 0x3d3f;
+  frame.module = &module1;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_FALSE(cfi_frame_info.get());
+
+  frame.instruction = 0x3e9f;
+  frame.module = &module1;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_FALSE(cfi_frame_info.get());
+
+  CFIFrameInfo::RegisterValueMap<uint32_t> current_registers;
+  CFIFrameInfo::RegisterValueMap<uint32_t> caller_registers;
+  CFIFrameInfo::RegisterValueMap<uint32_t> expected_caller_registers;
+  MockMemoryRegion memory;
+
+  // Regardless of which instruction evaluation takes place at, it
+  // should produce the same values for the caller's registers.
+  expected_caller_registers[".cfa"] = 0x1001c;
+  expected_caller_registers[".ra"]  = 0xf6438648;
+  expected_caller_registers["$ebp"] = 0x10038;
+  expected_caller_registers["$ebx"] = 0x98ecadc3;
+  expected_caller_registers["$esi"] = 0x878f7524;
+  expected_caller_registers["$edi"] = 0x6312f9a5;
+
+  frame.instruction = 0x3d40;
+  frame.module = &module1;
+  current_registers.clear();
+  current_registers["$esp"] = 0x10018;
+  current_registers["$ebp"] = 0x10038;
+  current_registers["$ebx"] = 0x98ecadc3;
+  current_registers["$esi"] = 0x878f7524;
+  current_registers["$edi"] = 0x6312f9a5;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  ASSERT_TRUE(VerifyRegisters(__FILE__, __LINE__,
+                              expected_caller_registers, caller_registers));
+
+  frame.instruction = 0x3d41;
+  current_registers["$esp"] = 0x10014;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  ASSERT_TRUE(VerifyRegisters(__FILE__, __LINE__,
+                              expected_caller_registers, caller_registers));
+
+  frame.instruction = 0x3d43;
+  current_registers["$ebp"] = 0x10014;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d54;
+  current_registers["$ebx"] = 0x6864f054U;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d5a;
+  current_registers["$esi"] = 0x6285f79aU;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x3d84;
+  current_registers["$edi"] = 0x64061449U;
+  cfi_frame_info.reset(fast_resolver.FindCFIFrameInfo(&frame));
+  ASSERT_TRUE(cfi_frame_info.get());
+  ASSERT_TRUE(cfi_frame_info.get()
+              ->FindCallerRegs<uint32_t>(current_registers, memory,
+                                          &caller_registers));
+  VerifyRegisters(__FILE__, __LINE__,
+                  expected_caller_registers, caller_registers);
+
+  frame.instruction = 0x2900;
+  frame.module = &module1;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, string("PublicSymbol"));
+
+  frame.instruction = 0x4000;
+  frame.module = &module1;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, string("LargeFunction"));
+
+  frame.instruction = 0x2181;
+  frame.module = &module2;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Function2_2");
+  ASSERT_EQ(frame.function_base, 0x2170U);
+  ASSERT_TRUE(frame.module);
+  ASSERT_EQ(frame.module->code_file(), "module2");
+  ASSERT_EQ(frame.source_file_name, "file2_2.cc");
+  ASSERT_EQ(frame.source_line, 21);
+  ASSERT_EQ(frame.source_line_base, 0x2180U);
+  windows_frame_info.reset(fast_resolver.FindWindowsFrameInfo(&frame));
+  ASSERT_TRUE(windows_frame_info.get());
+  ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
+  ASSERT_EQ(windows_frame_info->prolog_size, 1U);
+
+  frame.instruction = 0x216f;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Public2_1");
+
+  ClearSourceLineInfo(&frame);
+  frame.instruction = 0x219f;
+  frame.module = &module2;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_TRUE(frame.function_name.empty());
+
+  frame.instruction = 0x21a0;
+  frame.module = &module2;
+  fast_resolver.FillSourceLineInfo(&frame);
+  ASSERT_EQ(frame.function_name, "Public2_2");
+}
+
+TEST_F(TestFastSourceLineResolver, TestInvalidLoads) {
+  TestCodeModule module3("module3");
+  ASSERT_TRUE(basic_resolver.LoadModule(&module3,
+                                        testdata_dir + "/module3_bad.out"));
+  ASSERT_TRUE(basic_resolver.HasModule(&module3));
+  ASSERT_TRUE(basic_resolver.IsModuleCorrupt(&module3));
+  // Convert module3 to fast_module:
+  ASSERT_TRUE(serializer.ConvertOneModule(module3.code_file(),
+                                          &basic_resolver,
+                                          &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module3));
+  ASSERT_TRUE(fast_resolver.IsModuleCorrupt(&module3));
+
+  TestCodeModule module4("module4");
+  ASSERT_TRUE(basic_resolver.LoadModule(&module4,
+                                        testdata_dir + "/module4_bad.out"));
+  ASSERT_TRUE(basic_resolver.HasModule(&module4));
+  ASSERT_TRUE(basic_resolver.IsModuleCorrupt(&module4));
+  // Convert module4 to fast_module:
+  ASSERT_TRUE(serializer.ConvertOneModule(module4.code_file(),
+                                          &basic_resolver,
+                                          &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module4));
+  ASSERT_TRUE(fast_resolver.IsModuleCorrupt(&module4));
+
+  TestCodeModule module5("module5");
+  ASSERT_FALSE(fast_resolver.LoadModule(&module5,
+                                        testdata_dir + "/invalid-filename"));
+  ASSERT_FALSE(fast_resolver.HasModule(&module5));
+
+  TestCodeModule invalidmodule("invalid-module");
+  ASSERT_FALSE(fast_resolver.HasModule(&invalidmodule));
+}
+
+TEST_F(TestFastSourceLineResolver, TestUnload) {
+  TestCodeModule module1("module1");
+  ASSERT_FALSE(basic_resolver.HasModule(&module1));
+
+  ASSERT_TRUE(basic_resolver.LoadModule(&module1, symbol_file(1)));
+  ASSERT_TRUE(basic_resolver.HasModule(&module1));
+  // Convert module1 to fast_module.
+  ASSERT_TRUE(serializer.ConvertOneModule(module1.code_file(),
+                                          &basic_resolver,
+                                          &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module1));
+  basic_resolver.UnloadModule(&module1);
+  fast_resolver.UnloadModule(&module1);
+  ASSERT_FALSE(fast_resolver.HasModule(&module1));
+
+  ASSERT_TRUE(basic_resolver.LoadModule(&module1, symbol_file(1)));
+  ASSERT_TRUE(basic_resolver.HasModule(&module1));
+  // Convert module1 to fast_module.
+  ASSERT_TRUE(serializer.ConvertOneModule(module1.code_file(),
+                                          &basic_resolver,
+                                          &fast_resolver));
+  ASSERT_TRUE(fast_resolver.HasModule(&module1));
+}
+
+TEST_F(TestFastSourceLineResolver, CompareModule) {
+  char* symbol_data;
+  size_t symbol_data_size;
+  string symbol_data_string;
+  string filename;
+
+  for (int module_index = 0; module_index < 3; ++module_index) {
+    std::stringstream ss;
+    ss << testdata_dir << "/module" << module_index << ".out";
+    filename = ss.str();
+    ASSERT_TRUE(SourceLineResolverBase::ReadSymbolFile(
+        symbol_file(module_index), &symbol_data, &symbol_data_size));
+    symbol_data_string.assign(symbol_data, symbol_data_size);
+    delete [] symbol_data;
+    ASSERT_TRUE(module_comparer.Compare(symbol_data_string));
+  }
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/linked_ptr.h b/src/processor/linked_ptr.h
new file mode 100644
index 0000000..72fbba8
--- /dev/null
+++ b/src/processor/linked_ptr.h
@@ -0,0 +1,193 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// A "smart" pointer type with reference tracking.  Every pointer to a
+// particular object is kept on a circular linked list.  When the last pointer
+// to an object is destroyed or reassigned, the object is deleted.
+//
+// Used properly, this deletes the object when the last reference goes away.
+// There are several caveats:
+// - Like all reference counting schemes, cycles lead to leaks.
+// - Each smart pointer is actually two pointers (8 bytes instead of 4).
+// - Every time a pointer is assigned, the entire list of pointers to that
+//   object is traversed.  This class is therefore NOT SUITABLE when there
+//   will often be more than two or three pointers to a particular object.
+// - References are only tracked as long as linked_ptr<> objects are copied.
+//   If a linked_ptr<> is converted to a raw pointer and back, BAD THINGS
+//   will happen (double deletion).
+//
+// A good use of this class is storing object references in STL containers.
+// You can safely put linked_ptr<> in a vector<>.
+// Other uses may not be as good.
+//
+// Note: If you use an incomplete type with linked_ptr<>, the class
+// *containing* linked_ptr<> must have a constructor and destructor (even
+// if they do nothing!).
+
+#ifndef PROCESSOR_LINKED_PTR_H__
+#define PROCESSOR_LINKED_PTR_H__
+
+namespace google_breakpad {
+
+// This is used internally by all instances of linked_ptr<>.  It needs to be
+// a non-template class because different types of linked_ptr<> can refer to
+// the same object (linked_ptr<Superclass>(obj) vs linked_ptr<Subclass>(obj)).
+// So, it needs to be possible for different types of linked_ptr to participate
+// in the same circular linked list, so we need a single class type here.
+//
+// DO NOT USE THIS CLASS DIRECTLY YOURSELF.  Use linked_ptr<T>.
+class linked_ptr_internal {
+ public:
+  // Create a new circle that includes only this instance.
+  void join_new() {
+    next_ = this;
+  }
+
+  // Join an existing circle.
+  void join(linked_ptr_internal const* ptr) {
+    linked_ptr_internal const* p = ptr;
+    while (p->next_ != ptr) p = p->next_;
+    p->next_ = this;
+    next_ = ptr;
+  }
+
+  // Leave whatever circle we're part of.  Returns true iff we were the
+  // last member of the circle.  Once this is done, you can join() another.
+  bool depart() {
+    if (next_ == this) return true;
+    linked_ptr_internal const* p = next_;
+    while (p->next_ != this) p = p->next_;
+    p->next_ = next_;
+    return false;
+  }
+
+ private:
+  mutable linked_ptr_internal const* next_;
+};
+
+template <typename T>
+class linked_ptr {
+ public:
+  typedef T element_type;
+
+  // Take over ownership of a raw pointer.  This should happen as soon as
+  // possible after the object is created.
+  explicit linked_ptr(T* ptr = NULL) { capture(ptr); }
+  ~linked_ptr() { depart(); }
+
+  // Copy an existing linked_ptr<>, adding ourselves to the list of references.
+  template <typename U> linked_ptr(linked_ptr<U> const& ptr) { copy(&ptr); }
+  linked_ptr(linked_ptr const& ptr) { copy(&ptr); }
+
+  // Assignment releases the old value and acquires the new.
+  template <typename U> linked_ptr& operator=(linked_ptr<U> const& ptr) {
+    depart();
+    copy(&ptr);
+    return *this;
+  }
+
+  linked_ptr& operator=(linked_ptr const& ptr) {
+    if (&ptr != this) {
+      depart();
+      copy(&ptr);
+    }
+    return *this;
+  }
+
+  // Smart pointer members.
+  void reset(T* ptr = NULL) { depart(); capture(ptr); }
+  T* get() const { return value_; }
+  T* operator->() const { return value_; }
+  T& operator*() const { return *value_; }
+  // Release ownership of the pointed object and returns it.
+  // Sole ownership by this linked_ptr object is required.
+  T* release() {
+    link_.depart();
+    T* v = value_;
+    value_ = NULL;
+    return v;
+  }
+
+  bool operator==(T* p) const { return value_ == p; }
+  bool operator!=(T* p) const { return value_ != p; }
+  template <typename U>
+  bool operator==(linked_ptr<U> const& ptr) const {
+    return value_ == ptr.get();
+  }
+  template <typename U>
+  bool operator!=(linked_ptr<U> const& ptr) const {
+    return value_ != ptr.get();
+  }
+
+ private:
+  template <typename U>
+  friend class linked_ptr;
+
+  T* value_;
+  linked_ptr_internal link_;
+
+  void depart() {
+    if (link_.depart()) delete value_;
+  }
+
+  void capture(T* ptr) {
+    value_ = ptr;
+    link_.join_new();
+  }
+
+  template <typename U> void copy(linked_ptr<U> const* ptr) {
+    value_ = ptr->get();
+    if (value_)
+      link_.join(&ptr->link_);
+    else
+      link_.join_new();
+  }
+};
+
+template<typename T> inline
+bool operator==(T* ptr, const linked_ptr<T>& x) {
+  return ptr == x.get();
+}
+
+template<typename T> inline
+bool operator!=(T* ptr, const linked_ptr<T>& x) {
+  return ptr != x.get();
+}
+
+// A function to convert T* into linked_ptr<T>
+// Doing e.g. make_linked_ptr(new FooBarBaz<type>(arg)) is a shorter notation
+// for linked_ptr<FooBarBaz<type> >(new FooBarBaz<type>(arg))
+template <typename T>
+linked_ptr<T> make_linked_ptr(T* ptr) {
+  return linked_ptr<T>(ptr);
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_LINKED_PTR_H__
diff --git a/src/processor/logging.cc b/src/processor/logging.cc
new file mode 100644
index 0000000..3c5b161
--- /dev/null
+++ b/src/processor/logging.cc
@@ -0,0 +1,114 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// logging.cc: Breakpad logging
+//
+// See logging.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+#include <time.h>
+
+#include <string>
+
+#include "common/stdio_wrapper.h"
+#include "common/using_std_string.h"
+#include "processor/logging.h"
+#include "processor/pathname_stripper.h"
+
+namespace google_breakpad {
+
+LogStream::LogStream(std::ostream& stream, Severity severity,
+                     const char* file, int line)
+    : stream_(stream) {
+  time_t clock;
+  time(&clock);
+  struct tm tm_struct;
+#ifdef _WIN32
+  localtime_s(&tm_struct, &clock);
+#else
+  localtime_r(&clock, &tm_struct);
+#endif
+  char time_string[20];
+  strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", &tm_struct);
+
+  const char* severity_string = "UNKNOWN_SEVERITY";
+  switch (severity) {
+    case SEVERITY_INFO:
+      severity_string = "INFO";
+      break;
+    case SEVERITY_ERROR:
+      severity_string = "ERROR";
+      break;
+    case SEVERITY_CRITICAL:
+      severity_string = "CRITICAL";
+      break;
+  }
+
+  stream_ << time_string << ": " << PathnameStripper::File(file) << ":" <<
+             line << ": " << severity_string << ": ";
+}
+
+LogStream::~LogStream() {
+  stream_ << std::endl;
+}
+
+string HexString(uint32_t number) {
+  char buffer[11];
+  snprintf(buffer, sizeof(buffer), "0x%x", number);
+  return string(buffer);
+}
+
+string HexString(uint64_t number) {
+  char buffer[19];
+  snprintf(buffer, sizeof(buffer), "0x%" PRIx64, number);
+  return string(buffer);
+}
+
+string HexString(int number) {
+  char buffer[19];
+  snprintf(buffer, sizeof(buffer), "0x%x", number);
+  return string(buffer);
+}
+
+int ErrnoString(string* error_string) {
+  assert(error_string);
+
+  // strerror isn't necessarily thread-safe.  strerror_r would be preferrable,
+  // but GNU libc uses a nonstandard strerror_r by default, which returns a
+  // char* (rather than an int success indicator) and doesn't necessarily
+  // use the supplied buffer.
+  error_string->assign(strerror(errno));
+  return errno;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/logging.h b/src/processor/logging.h
new file mode 100644
index 0000000..e6c6eee
--- /dev/null
+++ b/src/processor/logging.h
@@ -0,0 +1,188 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// logging.h: Breakpad logging
+//
+// Breakpad itself uses Breakpad logging with statements of the form:
+//   BPLOG(severity) << "message";
+// severity may be INFO, ERROR, or other values defined in this file.
+//
+// BPLOG is an overridable macro so that users can customize Breakpad's
+// logging.  Left at the default, logging messages are sent to stderr along
+// with a timestamp and the source code location that produced a message.
+// The streams may be changed by redefining BPLOG_*_STREAM, the logging
+// behavior may be changed by redefining BPLOG_*, and the entire logging
+// system may be overridden by redefining BPLOG(severity).  These
+// redefinitions may be passed to the preprocessor as a command-line flag
+// (-D).
+//
+// If an additional header is required to override Breakpad logging, it can
+// be specified by the BP_LOGGING_INCLUDE macro.  If defined, this header
+// will #include the header specified by that macro.
+//
+// If any initialization is needed before logging, it can be performed by
+// a function called through the BPLOG_INIT macro.  Each main function of
+// an executable program in the Breakpad processor library calls
+// BPLOG_INIT(&argc, &argv); before any logging can be performed; define
+// BPLOG_INIT appropriately if initialization is required.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_LOGGING_H__
+#define PROCESSOR_LOGGING_H__
+
+#include <iostream>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+#ifdef BP_LOGGING_INCLUDE
+#include BP_LOGGING_INCLUDE
+#endif  // BP_LOGGING_INCLUDE
+
+namespace google_breakpad {
+
+// These are defined in Microsoft headers.
+#ifdef SEVERITY_ERROR
+#undef SEVERITY_ERROR
+#endif
+
+#ifdef ERROR
+#undef ERROR
+#endif
+
+class LogStream {
+ public:
+  enum Severity {
+    SEVERITY_INFO,
+    SEVERITY_ERROR,
+    SEVERITY_CRITICAL
+  };
+
+  // Begin logging a message to the stream identified by |stream|, at the
+  // indicated severity.  The file and line parameters should be set so as to
+  // identify the line of source code that is producing a message.
+  LogStream(std::ostream& stream, Severity severity,
+            const char* file, int line);
+
+  // Finish logging by printing a newline and flushing the output stream.
+  ~LogStream();
+
+  template<typename T> std::ostream& operator<<(const T& t) {
+    return stream_ << t;
+  }
+
+ private:
+  std::ostream& stream_;
+
+  // Disallow copy constructor and assignment operator
+  explicit LogStream(const LogStream& that);
+  void operator=(const LogStream& that);
+};
+
+// This class is used to explicitly ignore values in the conditional logging
+// macros.  This avoids compiler warnings like "value computed is not used"
+// and "statement has no effect".
+class LogMessageVoidify {
+ public:
+  LogMessageVoidify() {}
+
+  // This has to be an operator with a precedence lower than << but higher
+  // than ?:
+  void operator&(std::ostream&) {}
+};
+
+// Returns number formatted as a hexadecimal string, such as "0x7b".
+string HexString(uint32_t number);
+string HexString(uint64_t number);
+string HexString(int number);
+
+// Returns the error code as set in the global errno variable, and sets
+// error_string, a required argument, to a string describing that error
+// code.
+int ErrnoString(string* error_string);
+
+}  // namespace google_breakpad
+
+#ifndef BPLOG_INIT
+#define BPLOG_INIT(pargc, pargv)
+#endif  // BPLOG_INIT
+
+#ifndef BPLOG_LAZY_STREAM
+#define BPLOG_LAZY_STREAM(stream, condition) \
+    !(condition) ? (void) 0 : \
+                   google_breakpad::LogMessageVoidify() & (BPLOG_ ## stream)
+#endif
+
+#ifndef BPLOG_MINIMUM_SEVERITY
+#define BPLOG_MINIMUM_SEVERITY SEVERITY_INFO
+#endif
+
+#define BPLOG_LOG_IS_ON(severity) \
+    ((google_breakpad::LogStream::SEVERITY_ ## severity) >= \
+     (google_breakpad::LogStream::BPLOG_MINIMUM_SEVERITY))
+
+#ifndef BPLOG
+#define BPLOG(severity) BPLOG_LAZY_STREAM(severity, BPLOG_LOG_IS_ON(severity))
+#endif  // BPLOG
+
+#ifndef BPLOG_INFO
+#ifndef BPLOG_INFO_STREAM
+#define BPLOG_INFO_STREAM std::clog
+#endif  // BPLOG_INFO_STREAM
+#define BPLOG_INFO google_breakpad::LogStream(BPLOG_INFO_STREAM, \
+                       google_breakpad::LogStream::SEVERITY_INFO, \
+                       __FILE__, __LINE__)
+#endif  // BPLOG_INFO
+
+#ifndef BPLOG_ERROR
+#ifndef BPLOG_ERROR_STREAM
+#define BPLOG_ERROR_STREAM std::cerr
+#endif  // BPLOG_ERROR_STREAM
+#define BPLOG_ERROR google_breakpad::LogStream(BPLOG_ERROR_STREAM, \
+                        google_breakpad::LogStream::SEVERITY_ERROR, \
+                        __FILE__, __LINE__)
+#endif  // BPLOG_ERROR
+
+#ifndef BPLOG_CRITICAL
+#ifndef BPLOG_CRITICAL_STREAM
+#define BPLOG_CRITICAL_STREAM std::cerr
+#endif  // BPLOG_CRITICAL_STREAM
+#define BPLOG_CRITICAL google_breakpad::LogStream(BPLOG_CRITICAL_STREAM, \
+                        google_breakpad::LogStream::SEVERITY_CRITICAL, \
+                        __FILE__, __LINE__)
+#endif  // BPLOG_CRITICAL
+
+#ifndef BPLOG_IF
+#define BPLOG_IF(severity, condition) \
+    BPLOG_LAZY_STREAM(severity, ((condition) && BPLOG_LOG_IS_ON(severity)))
+#endif  // BPLOG_IF
+
+#endif  // PROCESSOR_LOGGING_H__
diff --git a/src/processor/map_serializers-inl.h b/src/processor/map_serializers-inl.h
new file mode 100644
index 0000000..4933f90
--- /dev/null
+++ b/src/processor/map_serializers-inl.h
@@ -0,0 +1,266 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// map_serializers_inl.h: implementation for serializing std::map and its
+// wrapper classes.
+//
+// See map_serializers.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_MAP_SERIALIZERS_INL_H__
+#define PROCESSOR_MAP_SERIALIZERS_INL_H__
+
+#include <map>
+#include <string>
+
+#include "processor/map_serializers.h"
+#include "processor/simple_serializer.h"
+
+#include "processor/address_map-inl.h"
+#include "processor/range_map-inl.h"
+#include "processor/contained_range_map-inl.h"
+
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename Key, typename Value>
+size_t StdMapSerializer<Key, Value>::SizeOf(
+    const std::map<Key, Value>& m) const {
+  size_t size = 0;
+  size_t header_size = (1 + m.size()) * sizeof(uint32_t);
+  size += header_size;
+
+  typename std::map<Key, Value>::const_iterator iter;
+  for (iter = m.begin(); iter != m.end(); ++iter) {
+    size += key_serializer_.SizeOf(iter->first);
+    size += value_serializer_.SizeOf(iter->second);
+  }
+  return size;
+}
+
+template<typename Key, typename Value>
+char* StdMapSerializer<Key, Value>::Write(const std::map<Key, Value>& m,
+                                          char* dest) const {
+  if (!dest) {
+    BPLOG(ERROR) << "StdMapSerializer failed: write to NULL address.";
+    return NULL;
+  }
+  char* start_address = dest;
+
+  // Write header:
+  // Number of nodes.
+  dest = SimpleSerializer<uint32_t>::Write(m.size(), dest);
+  // Nodes offsets.
+  uint32_t* offsets = reinterpret_cast<uint32_t*>(dest);
+  dest += sizeof(uint32_t) * m.size();
+
+  char* key_address = dest;
+  dest += sizeof(Key) * m.size();
+
+  // Traverse map.
+  typename std::map<Key, Value>::const_iterator iter;
+  int index = 0;
+  for (iter = m.begin(); iter != m.end(); ++iter, ++index) {
+    offsets[index] = static_cast<uint32_t>(dest - start_address);
+    key_address = key_serializer_.Write(iter->first, key_address);
+    dest = value_serializer_.Write(iter->second, dest);
+  }
+  return dest;
+}
+
+template<typename Key, typename Value>
+char* StdMapSerializer<Key, Value>::Serialize(
+    const std::map<Key, Value>& m, unsigned int* size) const {
+  // Compute size of memory to be allocated.
+  unsigned int size_to_alloc = SizeOf(m);
+  // Allocate memory.
+  char* serialized_data = new char[size_to_alloc];
+  if (!serialized_data) {
+    BPLOG(INFO) << "StdMapSerializer memory allocation failed.";
+    if (size) *size = 0;
+    return NULL;
+  }
+  // Write serialized data into memory.
+  Write(m, serialized_data);
+
+  if (size) *size = size_to_alloc;
+  return serialized_data;
+}
+
+template<typename Address, typename Entry>
+size_t RangeMapSerializer<Address, Entry>::SizeOf(
+    const RangeMap<Address, Entry>& m) const {
+  size_t size = 0;
+  size_t header_size = (1 + m.map_.size()) * sizeof(uint32_t);
+  size += header_size;
+
+  typename std::map<Address, Range>::const_iterator iter;
+  for (iter = m.map_.begin(); iter != m.map_.end(); ++iter) {
+    // Size of key (high address).
+    size += address_serializer_.SizeOf(iter->first);
+    // Size of base (low address).
+    size += address_serializer_.SizeOf(iter->second.base());
+    // Size of entry.
+    size += entry_serializer_.SizeOf(iter->second.entry());
+  }
+  return size;
+}
+
+template<typename Address, typename Entry>
+char* RangeMapSerializer<Address, Entry>::Write(
+    const RangeMap<Address, Entry>& m, char* dest) const {
+  if (!dest) {
+    BPLOG(ERROR) << "RangeMapSerializer failed: write to NULL address.";
+    return NULL;
+  }
+  char* start_address = dest;
+
+  // Write header:
+  // Number of nodes.
+  dest = SimpleSerializer<uint32_t>::Write(m.map_.size(), dest);
+  // Nodes offsets.
+  uint32_t* offsets = reinterpret_cast<uint32_t*>(dest);
+  dest += sizeof(uint32_t) * m.map_.size();
+
+  char* key_address = dest;
+  dest += sizeof(Address) * m.map_.size();
+
+  // Traverse map.
+  typename std::map<Address, Range>::const_iterator iter;
+  int index = 0;
+  for (iter = m.map_.begin(); iter != m.map_.end(); ++iter, ++index) {
+    offsets[index] = static_cast<uint32_t>(dest - start_address);
+    key_address = address_serializer_.Write(iter->first, key_address);
+    dest = address_serializer_.Write(iter->second.base(), dest);
+    dest = entry_serializer_.Write(iter->second.entry(), dest);
+  }
+  return dest;
+}
+
+template<typename Address, typename Entry>
+char* RangeMapSerializer<Address, Entry>::Serialize(
+    const RangeMap<Address, Entry>& m, unsigned int* size) const {
+  // Compute size of memory to be allocated.
+  unsigned int size_to_alloc = SizeOf(m);
+  // Allocate memory.
+  char* serialized_data = new char[size_to_alloc];
+  if (!serialized_data) {
+    BPLOG(INFO) << "RangeMapSerializer memory allocation failed.";
+    if (size) *size = 0;
+    return NULL;
+  }
+
+  // Write serialized data into memory.
+  Write(m, serialized_data);
+
+  if (size) *size = size_to_alloc;
+  return serialized_data;
+}
+
+
+template<class AddrType, class EntryType>
+size_t ContainedRangeMapSerializer<AddrType, EntryType>::SizeOf(
+    const ContainedRangeMap<AddrType, EntryType>* m) const {
+  size_t size = 0;
+  size_t header_size = addr_serializer_.SizeOf(m->base_)
+                       + entry_serializer_.SizeOf(m->entry_)
+                       + sizeof(uint32_t);
+  size += header_size;
+  // In case m.map_ == NULL, we treat it as an empty map:
+  size += sizeof(uint32_t);
+  if (m->map_) {
+    size += m->map_->size() * sizeof(uint32_t);
+    typename Map::const_iterator iter;
+    for (iter = m->map_->begin(); iter != m->map_->end(); ++iter) {
+      size += addr_serializer_.SizeOf(iter->first);
+      // Recursive calculation of size:
+      size += SizeOf(iter->second);
+    }
+  }
+  return size;
+}
+
+template<class AddrType, class EntryType>
+char* ContainedRangeMapSerializer<AddrType, EntryType>::Write(
+    const ContainedRangeMap<AddrType, EntryType>* m, char* dest) const {
+  if (!dest) {
+    BPLOG(ERROR) << "StdMapSerializer failed: write to NULL address.";
+    return NULL;
+  }
+  dest = addr_serializer_.Write(m->base_, dest);
+  dest = SimpleSerializer<uint32_t>::Write(entry_serializer_.SizeOf(m->entry_),
+                                            dest);
+  dest = entry_serializer_.Write(m->entry_, dest);
+
+  // Write map<<AddrType, ContainedRangeMap*>:
+  char* map_address = dest;
+  if (m->map_ == NULL) {
+    dest = SimpleSerializer<uint32_t>::Write(0, dest);
+  } else {
+    dest = SimpleSerializer<uint32_t>::Write(m->map_->size(), dest);
+    uint32_t* offsets = reinterpret_cast<uint32_t*>(dest);
+    dest += sizeof(uint32_t) * m->map_->size();
+
+    char* key_address = dest;
+    dest += sizeof(AddrType) * m->map_->size();
+
+    // Traverse map.
+    typename Map::const_iterator iter;
+    int index = 0;
+    for (iter = m->map_->begin(); iter != m->map_->end(); ++iter, ++index) {
+      offsets[index] = static_cast<uint32_t>(dest - map_address);
+      key_address = addr_serializer_.Write(iter->first, key_address);
+      // Recursively write.
+      dest = Write(iter->second, dest);
+    }
+  }
+  return dest;
+}
+
+template<class AddrType, class EntryType>
+char* ContainedRangeMapSerializer<AddrType, EntryType>::Serialize(
+    const ContainedRangeMap<AddrType, EntryType>* m, unsigned int* size) const {
+  unsigned int size_to_alloc = SizeOf(m);
+  // Allocating memory.
+  char* serialized_data = new char[size_to_alloc];
+  if (!serialized_data) {
+    BPLOG(INFO) << "ContainedRangeMapSerializer memory allocation failed.";
+    if (size) *size = 0;
+    return NULL;
+  }
+  Write(m, serialized_data);
+  if (size) *size = size_to_alloc;
+  return serialized_data;
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_MAP_SERIALIZERS_INL_H__
diff --git a/src/processor/map_serializers.h b/src/processor/map_serializers.h
new file mode 100644
index 0000000..3d50415
--- /dev/null
+++ b/src/processor/map_serializers.h
@@ -0,0 +1,168 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// map_serializers.h: defines templates for serializing std::map and its
+// wrappers: AddressMap, RangeMap, and ContainedRangeMap.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+
+#ifndef PROCESSOR_MAP_SERIALIZERS_H__
+#define PROCESSOR_MAP_SERIALIZERS_H__
+
+#include <map>
+#include <string>
+
+#include "processor/simple_serializer.h"
+
+#include "processor/address_map-inl.h"
+#include "processor/range_map-inl.h"
+#include "processor/contained_range_map-inl.h"
+
+namespace google_breakpad {
+
+// StdMapSerializer allocates memory and serializes an std::map instance into a
+// chunk of memory data.
+template<typename Key, typename Value>
+class StdMapSerializer {
+ public:
+  // Calculate the memory size of serialized data.
+  size_t SizeOf(const std::map<Key, Value>& m) const;
+
+  // Writes the serialized data to memory with start address = dest,
+  // and returns the "end" of data, i.e., return the address follow the final
+  // byte of data.
+  // NOTE: caller has to allocate enough memory before invoke Write() method.
+  char* Write(const std::map<Key, Value>& m, char* dest) const;
+
+  // Serializes a std::map object into a chunk of memory data with format
+  // described in "StaticMap.h" comment.
+  // Returns a pointer to the serialized data.  If size != NULL, *size is set
+  // to the size of serialized data, i.e., SizeOf(m).
+  // Caller has the ownership of memory allocated as "new char[]".
+  char* Serialize(const std::map<Key, Value>& m, unsigned int* size) const;
+
+ private:
+  SimpleSerializer<Key> key_serializer_;
+  SimpleSerializer<Value> value_serializer_;
+};
+
+// AddressMapSerializer allocates memory and serializes an AddressMap into a
+// chunk of memory data.
+template<typename Addr, typename Entry>
+class AddressMapSerializer {
+ public:
+  // Calculate the memory size of serialized data.
+  size_t SizeOf(const AddressMap<Addr, Entry>& m) const {
+    return std_map_serializer_.SizeOf(m.map_);
+  }
+
+  // Write the serialized data to specified memory location.  Return the "end"
+  // of data, i.e., return the address after the final byte of data.
+  // NOTE: caller has to allocate enough memory before invoke Write() method.
+  char* Write(const AddressMap<Addr, Entry>& m, char* dest) const {
+    return std_map_serializer_.Write(m.map_, dest);
+  }
+
+  // Serializes an AddressMap object into a chunk of memory data.
+  // Returns a pointer to the serialized data.  If size != NULL, *size is set
+  // to the size of serialized data, i.e., SizeOf(m).
+  // Caller has the ownership of memory allocated as "new char[]".
+  char* Serialize(const AddressMap<Addr, Entry>& m, unsigned int* size) const {
+    return std_map_serializer_.Serialize(m.map_, size);
+  }
+
+ private:
+  // AddressMapSerializer is a simple wrapper of StdMapSerializer, just as
+  // AddressMap is a simple wrapper of std::map.
+  StdMapSerializer<Addr, Entry> std_map_serializer_;
+};
+
+// RangeMapSerializer allocates memory and serializes a RangeMap instance into a
+// chunk of memory data.
+template<typename Address, typename Entry>
+class RangeMapSerializer {
+ public:
+  // Calculate the memory size of serialized data.
+  size_t SizeOf(const RangeMap<Address, Entry>& m) const;
+
+  // Write the serialized data to specified memory location.  Return the "end"
+  // of data, i.e., return the address after the final byte of data.
+  // NOTE: caller has to allocate enough memory before invoke Write() method.
+  char* Write(const RangeMap<Address, Entry>& m, char* dest) const;
+
+  // Serializes a RangeMap object into a chunk of memory data.
+  // Returns a pointer to the serialized data.  If size != NULL, *size is set
+  // to the size of serialized data, i.e., SizeOf(m).
+  // Caller has the ownership of memory allocated as "new char[]".
+  char* Serialize(const RangeMap<Address, Entry>& m, unsigned int* size) const;
+
+ private:
+  // Convenient type name for Range.
+  typedef typename RangeMap<Address, Entry>::Range Range;
+
+  // Serializer for RangeMap's key and Range::base_.
+  SimpleSerializer<Address> address_serializer_;
+  // Serializer for RangeMap::Range::entry_.
+  SimpleSerializer<Entry> entry_serializer_;
+};
+
+// ContainedRangeMapSerializer allocates memory and serializes a
+// ContainedRangeMap instance into a chunk of memory data.
+template<class AddrType, class EntryType>
+class ContainedRangeMapSerializer {
+ public:
+  // Calculate the memory size of serialized data.
+  size_t SizeOf(const ContainedRangeMap<AddrType, EntryType>* m) const;
+
+  // Write the serialized data to specified memory location.  Return the "end"
+  // of data, i.e., return the address after the final byte of data.
+  // NOTE: caller has to allocate enough memory before invoke Write() method.
+  char* Write(const ContainedRangeMap<AddrType, EntryType>* m,
+              char* dest) const;
+
+  // Serializes a ContainedRangeMap object into a chunk of memory data.
+  // Returns a pointer to the serialized data.  If size != NULL, *size is set
+  // to the size of serialized data, i.e., SizeOf(m).
+  // Caller has the ownership of memory allocated as "new char[]".
+  char* Serialize(const ContainedRangeMap<AddrType, EntryType>* m,
+                  unsigned int* size) const;
+
+ private:
+  // Convenient type name for the underlying map type.
+  typedef std::map<AddrType, ContainedRangeMap<AddrType, EntryType>*> Map;
+
+  // Serializer for addresses and entries stored in ContainedRangeMap.
+  SimpleSerializer<AddrType> addr_serializer_;
+  SimpleSerializer<EntryType> entry_serializer_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_MAP_SERIALIZERS_H__
diff --git a/src/processor/map_serializers_unittest.cc b/src/processor/map_serializers_unittest.cc
new file mode 100644
index 0000000..48b9c4b
--- /dev/null
+++ b/src/processor/map_serializers_unittest.cc
@@ -0,0 +1,386 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// map_serializers_unittest.cc: Unit tests for std::map serializer and
+// std::map wrapper serializers.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <climits>
+#include <map>
+#include <string>
+#include <utility>
+#include <iostream>
+#include <sstream>
+
+#include "breakpad_googletest_includes.h"
+#include "map_serializers-inl.h"
+
+#include "processor/address_map-inl.h"
+#include "processor/range_map-inl.h"
+#include "processor/contained_range_map-inl.h"
+
+typedef int32_t AddrType;
+typedef int32_t EntryType;
+
+class TestStdMapSerializer : public ::testing::Test {
+ protected:
+  void SetUp() {
+    serialized_size_ = 0;
+    serialized_data_ = NULL;
+  }
+
+  void TearDown() {
+    delete [] serialized_data_;
+  }
+
+  std::map<AddrType, EntryType> std_map_;
+  google_breakpad::StdMapSerializer<AddrType, EntryType> serializer_;
+  uint32_t serialized_size_;
+  char* serialized_data_;
+};
+
+TEST_F(TestStdMapSerializer, EmptyMapTestCase) {
+  const int32_t correct_data[] = { 0 };
+  uint32_t correct_size = sizeof(correct_data);
+
+  // std_map_ is empty.
+  serialized_data_ = serializer_.Serialize(std_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestStdMapSerializer, MapWithTwoElementsTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      2,
+      // Offsets
+      20, 24,
+      // Keys
+      1, 3,
+      // Values
+      2, 6
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  std_map_.insert(std::make_pair(1, 2));
+  std_map_.insert(std::make_pair(3, 6));
+
+  serialized_data_ = serializer_.Serialize(std_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestStdMapSerializer, MapWithFiveElementsTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      5,
+      // Offsets
+      44, 48, 52, 56, 60,
+      // Keys
+      1, 2, 3, 4, 5,
+      // Values
+      11, 12, 13, 14, 15
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  for (int i = 1; i < 6; ++i)
+    std_map_.insert(std::make_pair(i, 10 + i));
+
+  serialized_data_ = serializer_.Serialize(std_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+class TestAddressMapSerializer : public ::testing::Test {
+ protected:
+  void SetUp() {
+    serialized_size_ = 0;
+    serialized_data_ = 0;
+  }
+
+  void TearDown() {
+    delete [] serialized_data_;
+  }
+
+  google_breakpad::AddressMap<AddrType, EntryType> address_map_;
+  google_breakpad::AddressMapSerializer<AddrType, EntryType> serializer_;
+  uint32_t serialized_size_;
+  char* serialized_data_;
+};
+
+TEST_F(TestAddressMapSerializer, EmptyMapTestCase) {
+  const int32_t correct_data[] = { 0 };
+  uint32_t correct_size = sizeof(correct_data);
+
+  // std_map_ is empty.
+  serialized_data_ = serializer_.Serialize(address_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestAddressMapSerializer, MapWithTwoElementsTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      2,
+      // Offsets
+      20, 24,
+      // Keys
+      1, 3,
+      // Values
+      2, 6
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  address_map_.Store(1, 2);
+  address_map_.Store(3, 6);
+
+  serialized_data_ = serializer_.Serialize(address_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestAddressMapSerializer, MapWithFourElementsTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      4,
+      // Offsets
+      36, 40, 44, 48,
+      // Keys
+      -6, -4, 8, 123,
+      // Values
+      2, 3, 5, 8
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  address_map_.Store(-6, 2);
+  address_map_.Store(-4, 3);
+  address_map_.Store(8, 5);
+  address_map_.Store(123, 8);
+
+  serialized_data_ = serializer_.Serialize(address_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+
+class TestRangeMapSerializer : public ::testing::Test {
+ protected:
+  void SetUp() {
+    serialized_size_ = 0;
+    serialized_data_ = 0;
+  }
+
+  void TearDown() {
+    delete [] serialized_data_;
+  }
+
+  google_breakpad::RangeMap<AddrType, EntryType> range_map_;
+  google_breakpad::RangeMapSerializer<AddrType, EntryType> serializer_;
+  uint32_t serialized_size_;
+  char* serialized_data_;
+};
+
+TEST_F(TestRangeMapSerializer, EmptyMapTestCase) {
+  const int32_t correct_data[] = { 0 };
+  uint32_t correct_size = sizeof(correct_data);
+
+  // range_map_ is empty.
+  serialized_data_ = serializer_.Serialize(range_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestRangeMapSerializer, MapWithOneRangeTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      1,
+      // Offsets
+      12,
+      // Keys: high address
+      10,
+      // Values: (low address, entry) pairs
+      1, 6
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  range_map_.StoreRange(1, 10, 6);
+
+  serialized_data_ = serializer_.Serialize(range_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestRangeMapSerializer, MapWithThreeRangesTestCase) {
+  const int32_t correct_data[] = {
+      // # of nodes
+      3,
+      // Offsets
+      28,    36,    44,
+      // Keys: high address
+      5,     9,     20,
+      // Values: (low address, entry) pairs
+      2, 1,  6, 2,  10, 3
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  ASSERT_TRUE(range_map_.StoreRange(2, 4, 1));
+  ASSERT_TRUE(range_map_.StoreRange(6, 4, 2));
+  ASSERT_TRUE(range_map_.StoreRange(10, 11, 3));
+
+  serialized_data_ = serializer_.Serialize(range_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+
+class TestContainedRangeMapSerializer : public ::testing::Test {
+ protected:
+  void SetUp() {
+    serialized_size_ = 0;
+    serialized_data_ = 0;
+  }
+
+  void TearDown() {
+    delete [] serialized_data_;
+  }
+
+  google_breakpad::ContainedRangeMap<AddrType, EntryType> crm_map_;
+  google_breakpad::ContainedRangeMapSerializer<AddrType, EntryType> serializer_;
+  uint32_t serialized_size_;
+  char* serialized_data_;
+};
+
+TEST_F(TestContainedRangeMapSerializer, EmptyMapTestCase) {
+  const int32_t correct_data[] = {
+      0,  // base address of root
+      4,  // size of entry
+      0,  // entry stored at root
+      0   // empty map stored at root
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  // crm_map_ is empty.
+  serialized_data_ = serializer_.Serialize(&crm_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestContainedRangeMapSerializer, MapWithOneRangeTestCase) {
+  const int32_t correct_data[] = {
+      0,  // base address of root
+      4,  // size of entry
+      0,  // entry stored at root
+      // Map stored at root node:
+      1,  // # of nodes
+      12, // offset
+      9,  // key
+      // value: a child ContainedRangeMap
+      3,  // base address of child CRM
+      4,  // size of entry
+      -1, // entry stored in child CRM
+      0   // empty sub-map stored in child CRM
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  crm_map_.StoreRange(3, 7, -1);
+
+  serialized_data_ = serializer_.Serialize(&crm_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+TEST_F(TestContainedRangeMapSerializer, MapWithTwoLevelsTestCase) {
+  // Tree structure of ranges:
+  //           root              level 0
+  //            |
+  //           map
+  //         /     \             level 1: child1, child2
+  //      2~8      10~20
+  //       |         |
+  //      map       map
+  //     /   \       |
+  //    3~4 6~7    16-20         level 2: grandchild1, grandchild2, grandchild3
+
+  const int32_t correct_data[] = {
+      // root: base, entry_size, entry
+      0, 4, 0,
+      // root's map: # of nodes, offset1, offset2, key1, key2
+      2, 20, 84, 8, 20,
+      // child1: base, entry_size, entry:
+      2, 4, -1,
+      // child1's map: # of nodes, offset1, offset2, key1, key2
+      2, 20, 36, 4, 7,
+        // grandchild1: base, entry_size, entry, empty_map
+        3, 4, -1, 0,
+        // grandchild2: base, entry_size, entry, empty_map
+        6, 4, -1, 0,
+      // child2: base, entry_size, entry:
+      10, 4, -1,
+      // child2's map: # of nodes, offset1, key1
+      1, 12, 20,
+        // grandchild3: base, entry_size, entry, empty_map
+        16, 4, -1, 0
+  };
+  uint32_t correct_size = sizeof(correct_data);
+
+  // Store child1.
+  ASSERT_TRUE(crm_map_.StoreRange(2, 7, -1));
+  // Store child2.
+  ASSERT_TRUE(crm_map_.StoreRange(10, 11, -1));
+  // Store grandchild1.
+  ASSERT_TRUE(crm_map_.StoreRange(3, 2, -1));
+  // Store grandchild2.
+  ASSERT_TRUE(crm_map_.StoreRange(6, 2, -1));
+  // Store grandchild3.
+  ASSERT_TRUE(crm_map_.StoreRange(16, 5, -1));
+
+  serialized_data_ = serializer_.Serialize(&crm_map_, &serialized_size_);
+
+  EXPECT_EQ(correct_size, serialized_size_);
+  EXPECT_EQ(memcmp(correct_data, serialized_data_, correct_size), 0);
+}
+
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/microdump.cc b/src/processor/microdump.cc
new file mode 100644
index 0000000..d8141a2
--- /dev/null
+++ b/src/processor/microdump.cc
@@ -0,0 +1,405 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// microdump.cc: A microdump reader.
+//
+// See microdump.h for documentation.
+
+#include "google_breakpad/processor/microdump.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include <memory>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "google_breakpad/common/minidump_cpu_arm.h"
+#include "google_breakpad/processor/code_module.h"
+#include "processor/basic_code_module.h"
+#include "processor/convert_old_arm64_context.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+#include "processor/range_map-inl.h"
+
+namespace {
+static const char kGoogleBreakpadKey[] = "google-breakpad";
+static const char kMicrodumpBegin[] = "-----BEGIN BREAKPAD MICRODUMP-----";
+static const char kMicrodumpEnd[] = "-----END BREAKPAD MICRODUMP-----";
+static const char kOsKey[] = ": O ";
+static const char kCpuKey[] = ": C ";
+static const char kCrashReasonKey[] = ": R ";
+static const char kGpuKey[] = ": G ";
+static const char kMmapKey[] = ": M ";
+static const char kStackKey[] = ": S ";
+static const char kStackFirstLineKey[] = ": S 0 ";
+static const char kArmArchitecture[] = "arm";
+static const char kArm64Architecture[] = "arm64";
+static const char kX86Architecture[] = "x86";
+static const char kMipsArchitecture[] = "mips";
+static const char kMips64Architecture[] = "mips64";
+static const char kGpuUnknown[] = "UNKNOWN";
+
+template<typename T>
+T HexStrToL(const string& str) {
+  uint64_t res = 0;
+  std::istringstream ss(str);
+  ss >> std::hex >> res;
+  return static_cast<T>(res);
+}
+
+std::vector<uint8_t> ParseHexBuf(const string& str) {
+  std::vector<uint8_t> buf;
+  for (size_t i = 0; i < str.length(); i += 2) {
+    buf.push_back(HexStrToL<uint8_t>(str.substr(i, 2)));
+  }
+  return buf;
+}
+
+bool GetLine(std::istringstream* istream, string* str) {
+  if (std::getline(*istream, *str)) {
+    // Trim any trailing newline from the end of the line. Allows us
+    // to seamlessly handle both Windows/DOS and Unix formatted input. The
+    // adb tool generally writes logcat dumps in Windows/DOS format.
+    if (!str->empty() && str->at(str->size() - 1) == '\r') {
+      str->erase(str->size() - 1);
+    }
+    return true;
+  }
+  return false;
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+//
+// MicrodumpModules
+//
+
+void MicrodumpModules::Add(const CodeModule* module) {
+  linked_ptr<const CodeModule> module_ptr(module);
+  if (!map_.StoreRange(module->base_address(), module->size(), module_ptr)) {
+    BPLOG(ERROR) << "Module " << module->code_file() <<
+                    " could not be stored";
+  }
+}
+
+void MicrodumpModules::SetEnableModuleShrink(bool is_enabled) {
+  map_.SetMergeStrategy(is_enabled ? MergeRangeStrategy::kTruncateUpper
+                                   : MergeRangeStrategy::kExclusiveRanges);
+}
+
+//
+// MicrodumpContext
+//
+
+void MicrodumpContext::SetContextARM(MDRawContextARM* arm) {
+  DumpContext::SetContextFlags(MD_CONTEXT_ARM);
+  DumpContext::SetContextARM(arm);
+  valid_ = true;
+}
+
+void MicrodumpContext::SetContextARM64(MDRawContextARM64* arm64) {
+  DumpContext::SetContextFlags(MD_CONTEXT_ARM64);
+  DumpContext::SetContextARM64(arm64);
+  valid_ = true;
+}
+
+void MicrodumpContext::SetContextX86(MDRawContextX86* x86) {
+  DumpContext::SetContextFlags(MD_CONTEXT_X86);
+  DumpContext::SetContextX86(x86);
+  valid_ = true;
+}
+
+void MicrodumpContext::SetContextMIPS(MDRawContextMIPS* mips32) {
+  DumpContext::SetContextFlags(MD_CONTEXT_MIPS);
+  DumpContext::SetContextMIPS(mips32);
+  valid_ = true;
+}
+
+void MicrodumpContext::SetContextMIPS64(MDRawContextMIPS* mips64) {
+  DumpContext::SetContextFlags(MD_CONTEXT_MIPS64);
+  DumpContext::SetContextMIPS(mips64);
+  valid_ = true;
+}
+
+
+//
+// MicrodumpMemoryRegion
+//
+
+MicrodumpMemoryRegion::MicrodumpMemoryRegion() : base_address_(0) { }
+
+void MicrodumpMemoryRegion::Init(uint64_t base_address,
+                                 const std::vector<uint8_t>& contents) {
+  base_address_ = base_address;
+  contents_ = contents;
+}
+
+uint64_t MicrodumpMemoryRegion::GetBase() const { return base_address_; }
+
+uint32_t MicrodumpMemoryRegion::GetSize() const { return contents_.size(); }
+
+bool MicrodumpMemoryRegion::GetMemoryAtAddress(uint64_t address,
+                                               uint8_t* value) const {
+  return GetMemoryLittleEndian(address, value);
+}
+
+bool MicrodumpMemoryRegion::GetMemoryAtAddress(uint64_t address,
+                                               uint16_t* value) const {
+  return GetMemoryLittleEndian(address, value);
+}
+
+bool MicrodumpMemoryRegion::GetMemoryAtAddress(uint64_t address,
+                                               uint32_t* value) const {
+  return GetMemoryLittleEndian(address, value);
+}
+
+bool MicrodumpMemoryRegion::GetMemoryAtAddress(uint64_t address,
+                                               uint64_t* value) const {
+  return GetMemoryLittleEndian(address, value);
+}
+
+template<typename ValueType>
+bool MicrodumpMemoryRegion::GetMemoryLittleEndian(uint64_t address,
+                                                  ValueType* value) const {
+  if (address < base_address_ ||
+      address - base_address_ + sizeof(ValueType) > contents_.size())
+    return false;
+  ValueType v = 0;
+  uint64_t start = address - base_address_;
+  // The loop condition is odd, but it's correct for size_t.
+  for (size_t i = sizeof(ValueType) - 1; i < sizeof(ValueType); i--)
+    v = (v << 8) | static_cast<uint8_t>(contents_[start + i]);
+  *value = v;
+  return true;
+}
+
+void MicrodumpMemoryRegion::Print() const {
+  // Not reached, just needed to honor the base class contract.
+  assert(false);
+}
+
+//
+// Microdump
+//
+Microdump::Microdump(const string& contents)
+  : context_(new MicrodumpContext()),
+    stack_region_(new MicrodumpMemoryRegion()),
+    modules_(new MicrodumpModules()),
+    system_info_(new SystemInfo()),
+    crash_reason_(),
+    crash_address_(0u) {
+  assert(!contents.empty());
+
+  bool in_microdump = false;
+  string line;
+  uint64_t stack_start = 0;
+  std::vector<uint8_t> stack_content;
+  string arch;
+
+  std::istringstream stream(contents);
+  while (GetLine(&stream, &line)) {
+    if (line.find(kGoogleBreakpadKey) == string::npos) {
+      continue;
+    }
+    if (line.find(kMicrodumpBegin) != string::npos) {
+      in_microdump = true;
+      continue;
+    }
+    if (!in_microdump) {
+      continue;
+    }
+    if (line.find(kMicrodumpEnd) != string::npos) {
+      break;
+    }
+
+    size_t pos;
+    if ((pos = line.find(kOsKey)) != string::npos) {
+      string os_str(line, pos + strlen(kOsKey));
+      std::istringstream os_tokens(os_str);
+      string os_id;
+      string num_cpus;
+      string os_version;
+      // This reflect the actual HW arch and might not match the arch emulated
+      // for the execution (e.g., running a 32-bit binary on a 64-bit cpu).
+      string hw_arch;
+
+      os_tokens >> os_id;
+      os_tokens >> arch;
+      os_tokens >> num_cpus;
+      os_tokens >> hw_arch;
+      GetLine(&os_tokens, &os_version);
+      os_version.erase(0, 1);  // remove leading space.
+
+      system_info_->cpu = arch;
+      system_info_->cpu_count = HexStrToL<uint8_t>(num_cpus);
+      system_info_->os_version = os_version;
+
+      if (os_id == "L") {
+        system_info_->os = "Linux";
+        system_info_->os_short = "linux";
+      } else if (os_id == "A") {
+        system_info_->os = "Android";
+        system_info_->os_short = "android";
+        modules_->SetEnableModuleShrink(true);
+      }
+
+      // OS line also contains release and version for future use.
+    } else if ((pos = line.find(kStackKey)) != string::npos) {
+      if (line.find(kStackFirstLineKey) != string::npos) {
+        // The first line of the stack (S 0 stack header) provides the value of
+        // the stack pointer, the start address of the stack being dumped and
+        // the length of the stack. We could use it in future to double check
+        // that we received all the stack as expected.
+        continue;
+      }
+      string stack_str(line, pos + strlen(kStackKey));
+      std::istringstream stack_tokens(stack_str);
+      string start_addr_str;
+      string raw_content;
+      stack_tokens >> start_addr_str;
+      stack_tokens >> raw_content;
+      uint64_t start_addr = HexStrToL<uint64_t>(start_addr_str);
+
+      if (stack_start != 0) {
+        // Verify that the stack chunks in the microdump are contiguous.
+        assert(start_addr == stack_start + stack_content.size());
+      } else {
+        stack_start = start_addr;
+      }
+      std::vector<uint8_t> chunk = ParseHexBuf(raw_content);
+      stack_content.insert(stack_content.end(), chunk.begin(), chunk.end());
+
+    } else if ((pos = line.find(kCpuKey)) != string::npos) {
+      string cpu_state_str(line, pos + strlen(kCpuKey));
+      std::vector<uint8_t> cpu_state_raw = ParseHexBuf(cpu_state_str);
+      if (strcmp(arch.c_str(), kArmArchitecture) == 0) {
+        if (cpu_state_raw.size() != sizeof(MDRawContextARM)) {
+          std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
+                    << " bytes instead of " << sizeof(MDRawContextARM)
+                    << std::endl;
+          continue;
+        }
+        MDRawContextARM* arm = new MDRawContextARM();
+        memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
+        context_->SetContextARM(arm);
+      } else if (strcmp(arch.c_str(), kArm64Architecture) == 0) {
+        if (cpu_state_raw.size() == sizeof(MDRawContextARM64)) {
+          MDRawContextARM64* arm = new MDRawContextARM64();
+          memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
+          context_->SetContextARM64(arm);
+        } else if (cpu_state_raw.size() == sizeof(MDRawContextARM64_Old)) {
+          MDRawContextARM64_Old old_arm;
+          memcpy(&old_arm, &cpu_state_raw[0], cpu_state_raw.size());
+          MDRawContextARM64* new_arm = new MDRawContextARM64();
+          ConvertOldARM64Context(old_arm, new_arm);
+          context_->SetContextARM64(new_arm);
+        } else {
+          std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
+                    << " bytes instead of " << sizeof(MDRawContextARM64)
+                    << std::endl;
+          continue;
+        }
+      } else if (strcmp(arch.c_str(), kX86Architecture) == 0) {
+        if (cpu_state_raw.size() != sizeof(MDRawContextX86)) {
+          std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
+                    << " bytes instead of " << sizeof(MDRawContextX86)
+                    << std::endl;
+          continue;
+        }
+        MDRawContextX86* x86 = new MDRawContextX86();
+        memcpy(x86, &cpu_state_raw[0], cpu_state_raw.size());
+        context_->SetContextX86(x86);
+      } else if (strcmp(arch.c_str(), kMipsArchitecture) == 0) {
+        if (cpu_state_raw.size() != sizeof(MDRawContextMIPS)) {
+          std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
+                    << " bytes instead of " << sizeof(MDRawContextMIPS)
+                    << std::endl;
+          continue;
+        }
+        MDRawContextMIPS* mips32 = new MDRawContextMIPS();
+        memcpy(mips32, &cpu_state_raw[0], cpu_state_raw.size());
+        context_->SetContextMIPS(mips32);
+      } else if (strcmp(arch.c_str(), kMips64Architecture) == 0) {
+        if (cpu_state_raw.size() != sizeof(MDRawContextMIPS)) {
+          std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
+                    << " bytes instead of " << sizeof(MDRawContextMIPS)
+                    << std::endl;
+          continue;
+        }
+        MDRawContextMIPS* mips64 = new MDRawContextMIPS();
+        memcpy(mips64, &cpu_state_raw[0], cpu_state_raw.size());
+        context_->SetContextMIPS64(mips64);
+      } else {
+        std::cerr << "Unsupported architecture: " << arch << std::endl;
+      }
+    } else if ((pos = line.find(kCrashReasonKey)) != string::npos) {
+      string crash_reason_str(line, pos + strlen(kCrashReasonKey));
+      std::istringstream crash_reason_tokens(crash_reason_str);
+      string signal;
+      string address;
+      crash_reason_tokens >> signal;
+      crash_reason_tokens >> crash_reason_;
+      crash_reason_tokens >> address;
+      crash_address_ = HexStrToL<uint64_t>(address);
+    } else if ((pos = line.find(kGpuKey)) != string::npos) {
+      string gpu_str(line, pos + strlen(kGpuKey));
+      if (strcmp(gpu_str.c_str(), kGpuUnknown) != 0) {
+        std::istringstream gpu_tokens(gpu_str);
+        std::getline(gpu_tokens, system_info_->gl_version, '|');
+        std::getline(gpu_tokens, system_info_->gl_vendor, '|');
+        std::getline(gpu_tokens, system_info_->gl_renderer, '|');
+      }
+    } else if ((pos = line.find(kMmapKey)) != string::npos) {
+      string mmap_line(line, pos + strlen(kMmapKey));
+      std::istringstream mmap_tokens(mmap_line);
+      string addr, offset, size, identifier, filename;
+      mmap_tokens >> addr;
+      mmap_tokens >> offset;
+      mmap_tokens >> size;
+      mmap_tokens >> identifier;
+      mmap_tokens >> filename;
+
+      modules_->Add(new BasicCodeModule(
+          HexStrToL<uint64_t>(addr),  // base_address
+          HexStrToL<uint64_t>(size),  // size
+          filename,                   // code_file
+          identifier,                 // code_identifier
+          filename,                   // debug_file
+          identifier,                 // debug_identifier
+          ""));                       // version
+    }
+  }
+  stack_region_->Init(stack_start, stack_content);
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/microdump_processor.cc b/src/processor/microdump_processor.cc
new file mode 100644
index 0000000..2d3a955
--- /dev/null
+++ b/src/processor/microdump_processor.cc
@@ -0,0 +1,97 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// microdump_processor.cc: A microdump processor.
+//
+// See microdump_processor.h for documentation.
+
+#include "google_breakpad/processor/microdump_processor.h"
+
+#include <assert.h>
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/microdump.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stackwalker.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+MicrodumpProcessor::MicrodumpProcessor(StackFrameSymbolizer* frame_symbolizer)
+    : frame_symbolizer_(frame_symbolizer) {
+  assert(frame_symbolizer);
+}
+
+MicrodumpProcessor::~MicrodumpProcessor() {}
+
+ProcessResult MicrodumpProcessor::Process(Microdump *microdump,
+                                          ProcessState* process_state) {
+  assert(process_state);
+
+  process_state->Clear();
+
+  process_state->modules_ = microdump->GetModules()->Copy();
+  scoped_ptr<Stackwalker> stackwalker(
+      Stackwalker::StackwalkerForCPU(
+                            &process_state->system_info_,
+                            microdump->GetContext(),
+                            microdump->GetMemory(),
+                            process_state->modules_,
+                            /* unloaded_modules= */ NULL,
+                            frame_symbolizer_));
+
+  scoped_ptr<CallStack> stack(new CallStack());
+  if (stackwalker.get()) {
+    if (!stackwalker->Walk(stack.get(),
+                           &process_state->modules_without_symbols_,
+                           &process_state->modules_with_corrupt_symbols_)) {
+      BPLOG(INFO) << "Processing was interrupted.";
+      return PROCESS_SYMBOL_SUPPLIER_INTERRUPTED;
+    }
+  } else {
+    BPLOG(ERROR) << "No stackwalker found for microdump.";
+    return PROCESS_ERROR_NO_THREAD_LIST;
+  }
+
+  process_state->threads_.push_back(stack.release());
+  process_state->thread_memory_regions_.push_back(microdump->GetMemory());
+  process_state->crashed_ = true;
+  process_state->requesting_thread_ = 0;
+  process_state->system_info_ = *microdump->GetSystemInfo();
+  process_state->crash_reason_ = microdump->GetCrashReason();
+  process_state->crash_address_ = microdump->GetCrashAddress();
+
+  return PROCESS_OK;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/microdump_processor_unittest.cc b/src/processor/microdump_processor_unittest.cc
new file mode 100644
index 0000000..83bdef9
--- /dev/null
+++ b/src/processor/microdump_processor_unittest.cc
@@ -0,0 +1,285 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unit test for MicrodumpProcessor.
+
+#include <fstream>
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/microdump.h"
+#include "google_breakpad/processor/microdump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+#include "processor/simple_symbol_supplier.h"
+#include "processor/stackwalker_unittest_utils.h"
+
+namespace {
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::Microdump;
+using google_breakpad::MicrodumpProcessor;
+using google_breakpad::ProcessState;
+using google_breakpad::SimpleSymbolSupplier;
+using google_breakpad::StackFrameSymbolizer;
+
+class MicrodumpProcessorTest : public ::testing::Test {
+ public:
+  MicrodumpProcessorTest()
+    : files_path_(string(getenv("srcdir") ? getenv("srcdir") : ".") +
+                  "/src/processor/testdata/") {
+  }
+
+  void ReadFile(const string& file_name, string* file_contents) {
+    assert(file_contents);
+    std::ifstream file_stream(file_name.c_str(), std::ios::in);
+    ASSERT_TRUE(file_stream.good());
+    std::vector<char> bytes;
+    file_stream.seekg(0, std::ios_base::end);
+    ASSERT_TRUE(file_stream.good());
+    bytes.resize(file_stream.tellg());
+    file_stream.seekg(0, std::ios_base::beg);
+    ASSERT_TRUE(file_stream.good());
+    file_stream.read(&bytes[0], bytes.size());
+    ASSERT_TRUE(file_stream.good());
+    *file_contents = string(&bytes[0], bytes.size());
+  }
+
+  google_breakpad::ProcessResult ProcessMicrodump(
+      const string& symbols_file,
+      const string& microdump_contents,
+      ProcessState* state) {
+    SimpleSymbolSupplier supplier(symbols_file);
+    BasicSourceLineResolver resolver;
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    MicrodumpProcessor processor(&frame_symbolizer);
+
+    Microdump microdump(microdump_contents);
+    return processor.Process(&microdump, state);
+  }
+
+  void AnalyzeDump(const string& microdump_file_name, bool omit_symbols,
+                   int expected_cpu_count, ProcessState* state) {
+    string symbols_file = omit_symbols ? "" : files_path_ + "symbols/microdump";
+    string microdump_file_path = files_path_ + microdump_file_name;
+    string microdump_contents;
+    ReadFile(microdump_file_path, &microdump_contents);
+
+    google_breakpad::ProcessResult result =
+        ProcessMicrodump(symbols_file, microdump_contents, state);
+
+    ASSERT_EQ(google_breakpad::PROCESS_OK, result);
+    ASSERT_TRUE(state->crashed());
+    ASSERT_EQ(0, state->requesting_thread());
+    ASSERT_EQ(1U, state->threads()->size());
+
+    ASSERT_EQ(expected_cpu_count, state->system_info()->cpu_count);
+    ASSERT_EQ("android", state->system_info()->os_short);
+    ASSERT_EQ("Android", state->system_info()->os);
+  }
+
+  string files_path_;
+};
+
+TEST_F(MicrodumpProcessorTest, TestProcess_Invalid) {
+  ProcessState state;
+  google_breakpad::ProcessResult result =
+      ProcessMicrodump("", "This is not a valid microdump", &state);
+  ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result);
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcess_WithoutCrashReason) {
+  ProcessState state;
+  AnalyzeDump("microdump-arm64.dmp", true /* omit_symbols */,
+              2 /* expected_cpu_count */, &state);
+  ASSERT_EQ(state.crash_reason(), "");
+  ASSERT_EQ(state.crash_address(), 0x0u);
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcess_WithCrashReason) {
+  ProcessState state;
+  AnalyzeDump("microdump-withcrashreason.dmp", true /* omit_symbols */,
+              8 /* expected_cpu_count */, &state);
+  ASSERT_EQ(state.crash_reason(), "SIGTRAP");
+  ASSERT_EQ(state.crash_address(), 0x4A7CB000u);
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcess_MissingSymbols) {
+  ProcessState state;
+  AnalyzeDump("microdump-arm64.dmp", true /* omit_symbols */,
+              2 /* expected_cpu_count */, &state);
+
+  ASSERT_EQ(8U, state.modules()->module_count());
+  ASSERT_EQ("arm64", state.system_info()->cpu);
+  ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version);
+  ASSERT_EQ(1U, state.threads()->size());
+  ASSERT_EQ(11U, state.threads()->at(0)->frames()->size());
+
+  ASSERT_EQ("",
+            state.threads()->at(0)->frames()->at(0)->function_name);
+  ASSERT_EQ("",
+            state.threads()->at(0)->frames()->at(3)->function_name);
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcess_UnsupportedArch) {
+  string microdump_contents =
+      "W/google-breakpad(26491): -----BEGIN BREAKPAD MICRODUMP-----\n"
+      "W/google-breakpad(26491): O A \"unsupported-arch\"\n"
+      "W/google-breakpad(26491): S 0 A48BD840 A48BD000 00002000\n";
+
+  ProcessState state;
+
+  google_breakpad::ProcessResult result =
+      ProcessMicrodump("", microdump_contents, &state);
+
+  ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result);
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessArm) {
+  ProcessState state;
+  AnalyzeDump("microdump-arm.dmp", false /* omit_symbols */,
+              2 /* expected_cpu_count*/, &state);
+
+  ASSERT_EQ(6U, state.modules()->module_count());
+  ASSERT_EQ("arm", state.system_info()->cpu);
+  ASSERT_EQ("OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)",
+            state.system_info()->gl_version);
+  ASSERT_EQ("Qualcomm", state.system_info()->gl_vendor);
+  ASSERT_EQ("Adreno (TM) 330", state.system_info()->gl_renderer);
+  ASSERT_EQ("OS VERSION INFO", state.system_info()->os_version);
+  ASSERT_EQ(8U, state.threads()->at(0)->frames()->size());
+  ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody",
+            state.threads()->at(0)->frames()->at(0)->function_name);
+  ASSERT_EQ("testing::Test::Run",
+            state.threads()->at(0)->frames()->at(1)->function_name);
+  ASSERT_EQ("main",
+            state.threads()->at(0)->frames()->at(6)->function_name);
+  ASSERT_EQ("breakpad_unittests",
+            state.threads()->at(0)->frames()->at(6)->module->code_file());
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessArm64) {
+  ProcessState state;
+  AnalyzeDump("microdump-arm64.dmp", false /* omit_symbols */,
+              2 /* expected_cpu_count*/, &state);
+
+  ASSERT_EQ(8U, state.modules()->module_count());
+  ASSERT_EQ("arm64", state.system_info()->cpu);
+  ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version);
+  ASSERT_EQ(9U, state.threads()->at(0)->frames()->size());
+  ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody",
+            state.threads()->at(0)->frames()->at(0)->function_name);
+  ASSERT_EQ("testing::Test::Run",
+            state.threads()->at(0)->frames()->at(2)->function_name);
+  ASSERT_EQ("main",
+            state.threads()->at(0)->frames()->at(7)->function_name);
+  ASSERT_EQ("breakpad_unittests",
+            state.threads()->at(0)->frames()->at(7)->module->code_file());
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessX86) {
+  ProcessState state;
+  AnalyzeDump("microdump-x86.dmp", false /* omit_symbols */,
+              4 /* expected_cpu_count */, &state);
+
+  ASSERT_EQ(124U, state.modules()->module_count());
+  ASSERT_EQ("x86", state.system_info()->cpu);
+  ASSERT_EQ("asus/WW_Z00A/Z00A:5.0/LRX21V/2.19.40.22_20150627_5104_user:user/"
+      "release-keys", state.system_info()->os_version);
+  ASSERT_EQ(17U, state.threads()->at(0)->frames()->size());
+  ASSERT_EQ("libc.so",
+            state.threads()->at(0)->frames()->at(0)->module->debug_file());
+  // TODO(mmandlis): Get symbols for the test X86 microdump and test function
+  // names.
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessMultiple) {
+  ProcessState state;
+  AnalyzeDump("microdump-multiple.dmp", false /* omit_symbols */,
+              6 /* expected_cpu_count */, &state);
+  ASSERT_EQ(156U, state.modules()->module_count());
+  ASSERT_EQ("arm", state.system_info()->cpu);
+  ASSERT_EQ("lge/p1_tmo_us/p1:6.0/MRA58K/1603210524c8d:user/release-keys",
+            state.system_info()->os_version);
+  ASSERT_EQ(5U, state.threads()->at(0)->frames()->size());
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessMips) {
+  ProcessState state;
+  AnalyzeDump("microdump-mips32.dmp", false /* omit_symbols */,
+              2 /* expected_cpu_count */, &state);
+
+  ASSERT_EQ(7U, state.modules()->module_count());
+  ASSERT_EQ("mips", state.system_info()->cpu);
+  ASSERT_EQ("3.0.8-g893bf16 #7 SMP PREEMPT Fri Jul 10 15:20:59 PDT 2015",
+      state.system_info()->os_version);
+  ASSERT_EQ(4U, state.threads()->at(0)->frames()->size());
+
+  ASSERT_EQ("blaTest",
+            state.threads()->at(0)->frames()->at(0)->function_name);
+  ASSERT_EQ("Crash",
+            state.threads()->at(0)->frames()->at(1)->function_name);
+  ASSERT_EQ("main",
+            state.threads()->at(0)->frames()->at(2)->function_name);
+  ASSERT_EQ("crash_example",
+            state.threads()->at(0)->frames()->at(0)->module->debug_file());
+}
+
+TEST_F(MicrodumpProcessorTest, TestProcessMips64) {
+  ProcessState state;
+  AnalyzeDump("microdump-mips64.dmp", false /* omit_symbols */,
+              1 /* expected_cpu_count */, &state);
+
+  ASSERT_EQ(8U, state.modules()->module_count());
+  ASSERT_EQ("mips64", state.system_info()->cpu);
+  ASSERT_EQ("3.10.0-gf185e20 #112 PREEMPT Mon Oct 5 11:12:49 PDT 2015",
+        state.system_info()->os_version);
+  ASSERT_EQ(4U, state.threads()->at(0)->frames()->size());
+
+  ASSERT_EQ("blaTest",
+            state.threads()->at(0)->frames()->at(0)->function_name);
+  ASSERT_EQ("Crash",
+            state.threads()->at(0)->frames()->at(1)->function_name);
+  ASSERT_EQ("main",
+            state.threads()->at(0)->frames()->at(2)->function_name);
+  ASSERT_EQ("crash_example",
+            state.threads()->at(0)->frames()->at(0)->module->debug_file());
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/microdump_stackwalk.cc b/src/processor/microdump_stackwalk.cc
new file mode 100644
index 0000000..03fa77e
--- /dev/null
+++ b/src/processor/microdump_stackwalk.cc
@@ -0,0 +1,181 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// microdump_stackwalk.cc: Process a microdump with MicrodumpProcessor, printing
+// the results, including stack traces.
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <fstream>
+#include <string>
+#include <vector>
+
+#include "common/path_helper.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/microdump.h"
+#include "google_breakpad/processor/microdump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+#include "processor/logging.h"
+#include "processor/simple_symbol_supplier.h"
+#include "processor/stackwalk_common.h"
+
+
+namespace {
+
+struct Options {
+  bool machine_readable;
+  bool output_stack_contents;
+
+  string microdump_file;
+  std::vector<string> symbol_paths;
+};
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::Microdump;
+using google_breakpad::MicrodumpProcessor;
+using google_breakpad::ProcessResult;
+using google_breakpad::ProcessState;
+using google_breakpad::scoped_ptr;
+using google_breakpad::SimpleSymbolSupplier;
+using google_breakpad::StackFrameSymbolizer;
+
+// Processes |options.microdump_file| using
+// MicrodumpProcessor. |options.symbol_path|, if non-empty, is the
+// base directory of a symbol storage area, laid out in the format
+// required by SimpleSymbolSupplier.  If such a storage area is
+// specified, it is made available for use by the MicrodumpProcessor.
+//
+// Returns the value of MicrodumpProcessor::Process. If processing succeeds,
+// prints identifying OS and CPU information from the microdump, crash
+// information and call stacks for the crashing thread.
+// All information is printed to stdout.
+int PrintMicrodumpProcess(const Options& options) {
+  std::ifstream file_stream(options.microdump_file);
+  std::vector<char> bytes;
+  file_stream.seekg(0, std::ios_base::end);
+  bytes.resize(file_stream.tellg());
+  if (bytes.empty()) {
+    BPLOG(ERROR) << "Microdump is empty.";
+    return 1;
+  }
+  file_stream.seekg(0, std::ios_base::beg);
+  file_stream.read(&bytes[0], bytes.size());
+  string microdump_content(&bytes[0], bytes.size());
+
+  scoped_ptr<SimpleSymbolSupplier> symbol_supplier;
+  if (!options.symbol_paths.empty()) {
+    symbol_supplier.reset(new SimpleSymbolSupplier(options.symbol_paths));
+  }
+
+  BasicSourceLineResolver resolver;
+  StackFrameSymbolizer frame_symbolizer(symbol_supplier.get(), &resolver);
+  ProcessState process_state;
+  MicrodumpProcessor microdump_processor(&frame_symbolizer);
+  Microdump microdump(microdump_content);
+  ProcessResult res = microdump_processor.Process(&microdump,
+                                                  &process_state);
+
+  if (res == google_breakpad::PROCESS_OK) {
+    if (options.machine_readable) {
+      PrintProcessStateMachineReadable(process_state);
+    } else {
+      PrintProcessState(process_state, options.output_stack_contents, &resolver);
+    }
+    return 0;
+  }
+
+  BPLOG(ERROR) << "MicrodumpProcessor::Process failed (code = " << res << ")";
+  return 1;
+}
+
+}  // namespace
+
+static void Usage(int argc, const char *argv[], bool error) {
+  fprintf(error ? stderr : stdout,
+          "Usage: %s [options] <microdump-file> [symbol-path ...]\n"
+          "\n"
+          "Output a stack trace for the provided microdump\n"
+          "\n"
+          "Options:\n"
+          "\n"
+          "  -m         Output in machine-readable format\n"
+          "  -s         Output stack contents\n",
+          google_breakpad::BaseName(argv[0]).c_str());
+}
+
+static void SetupOptions(int argc, const char *argv[], Options* options) {
+  int ch;
+
+  options->machine_readable = false;
+  options->output_stack_contents = false;
+
+  while ((ch = getopt(argc, (char * const*)argv, "hms")) != -1) {
+    switch (ch) {
+      case 'h':
+        Usage(argc, argv, false);
+        exit(0);
+        break;
+
+      case 'm':
+        options->machine_readable = true;
+        break;
+      case 's':
+        options->output_stack_contents = true;
+        break;
+
+      case '?':
+        Usage(argc, argv, true);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) == 0) {
+    fprintf(stderr, "%s: Missing microdump file\n", argv[0]);
+    Usage(argc, argv, true);
+    exit(1);
+  }
+
+  options->microdump_file = argv[optind];
+
+  for (int argi = optind + 1; argi < argc; ++argi)
+    options->symbol_paths.push_back(argv[argi]);
+}
+
+int main(int argc, const char* argv[]) {
+  Options options;
+  SetupOptions(argc, argv, &options);
+
+  return PrintMicrodumpProcess(options);
+}
diff --git a/src/processor/microdump_stackwalk_machine_readable_test b/src/processor/microdump_stackwalk_machine_readable_test
new file mode 100755
index 0000000..f5614e2
--- /dev/null
+++ b/src/processor/microdump_stackwalk_machine_readable_test
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# Copyright (c) 2014, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${0%/*}/microdump_stackwalk_test_vars" || exit 1  # for MICRODUMP_SUPPORTED_ARCHS.
+testdata_dir=$srcdir/src/processor/testdata
+
+set -e  # Bail out with an error if any of the commands below fails.
+for ARCH in $MICRODUMP_SUPPORTED_ARCHS; do
+  echo "Testing microdump_stackwalk -m for arch $ARCH"
+  ./src/processor/microdump_stackwalk -m $testdata_dir/microdump-${ARCH}.dmp \
+                                         $testdata_dir/symbols/microdump | \
+   tr -d '\015' | \
+   diff -u $testdata_dir/microdump.stackwalk.machine_readable-${ARCH}.out -
+done
+exit 0
diff --git a/src/processor/microdump_stackwalk_test b/src/processor/microdump_stackwalk_test
new file mode 100755
index 0000000..e189765
--- /dev/null
+++ b/src/processor/microdump_stackwalk_test
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# Copyright (c) 2014, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${0%/*}/microdump_stackwalk_test_vars" || exit 1  # for MICRODUMP_SUPPORTED_ARCHS.
+testdata_dir=$srcdir/src/processor/testdata
+
+set -e  # Bail out with an error if any of the commands below fails.
+for ARCH in $MICRODUMP_SUPPORTED_ARCHS; do
+  echo "Testing microdump_stackwalk for arch $ARCH"
+  ./src/processor/microdump_stackwalk $testdata_dir/microdump-${ARCH}.dmp \
+                                      $testdata_dir/symbols/microdump | \
+   tr -d '\015' | \
+   diff -u $testdata_dir/microdump.stackwalk-${ARCH}.out -
+done
+exit 0
diff --git a/src/processor/microdump_stackwalk_test_vars b/src/processor/microdump_stackwalk_test_vars
new file mode 100644
index 0000000..a8b0e0d
--- /dev/null
+++ b/src/processor/microdump_stackwalk_test_vars
@@ -0,0 +1 @@
+MICRODUMP_SUPPORTED_ARCHS="arm arm64"
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
new file mode 100644
index 0000000..1f47955
--- /dev/null
+++ b/src/processor/minidump.cc
@@ -0,0 +1,5903 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump.cc: A minidump reader.
+//
+// See minidump.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "google_breakpad/processor/minidump.h"
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <string.h>
+#include <time.h>
+
+#ifdef _WIN32
+#include <io.h>
+#else  // _WIN32
+#include <unistd.h>
+#endif  // _WIN32
+
+#include <algorithm>
+#include <fstream>
+#include <limits>
+#include <utility>
+
+#include "processor/range_map-inl.h"
+
+#include "common/macros.h"
+#include "common/scoped_ptr.h"
+#include "common/stdio_wrapper.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "processor/basic_code_module.h"
+#include "processor/basic_code_modules.h"
+#include "processor/convert_old_arm64_context.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+using std::istream;
+using std::ifstream;
+using std::numeric_limits;
+using std::vector;
+
+namespace {
+
+// Returns true iff |context_size| matches exactly one of the sizes of the
+// various MDRawContext* types.
+// TODO(blundell): This function can be removed once
+// https://bugs.chromium.org/p/google-breakpad/issues/detail?id=550 is fixed.
+bool IsContextSizeUnique(uint32_t context_size) {
+  int num_matching_contexts = 0;
+  if (context_size == sizeof(MDRawContextX86))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextPPC))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextPPC64))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextAMD64))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextSPARC))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextARM))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextARM64))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextARM64_Old))
+    num_matching_contexts++;
+  if (context_size == sizeof(MDRawContextMIPS))
+    num_matching_contexts++;
+  return num_matching_contexts == 1;
+}
+
+//
+// Swapping routines
+//
+// Inlining these doesn't increase code size significantly, and it saves
+// a whole lot of unnecessary jumping back and forth.
+//
+
+
+// Swapping an 8-bit quantity is a no-op.  This function is only provided
+// to account for certain templatized operations that require swapping for
+// wider types but handle uint8_t too
+// (MinidumpMemoryRegion::GetMemoryAtAddressInternal).
+inline void Swap(uint8_t* value) {}
+
+// Optimization: don't need to AND the furthest right shift, because we're
+// shifting an unsigned quantity.  The standard requires zero-filling in this
+// case.  If the quantities were signed, a bitmask whould be needed for this
+// right shift to avoid an arithmetic shift (which retains the sign bit).
+// The furthest left shift never needs to be ANDed bitmask.
+
+inline void Swap(uint16_t* value) {
+  *value = (*value >> 8) | (*value << 8);
+}
+
+inline void Swap(uint32_t* value) {
+  *value =  (*value >> 24) |
+           ((*value >> 8)  & 0x0000ff00) |
+           ((*value << 8)  & 0x00ff0000) |
+            (*value << 24);
+}
+
+inline void Swap(uint64_t* value) {
+  uint32_t* value32 = reinterpret_cast<uint32_t*>(value);
+  Swap(&value32[0]);
+  Swap(&value32[1]);
+  uint32_t temp = value32[0];
+  value32[0] = value32[1];
+  value32[1] = temp;
+}
+
+
+// Given a pointer to a 128-bit int in the minidump data, set the "low"
+// and "high" fields appropriately.
+void Normalize128(uint128_struct* value, bool is_big_endian) {
+  // The struct format is [high, low], so if the format is big-endian,
+  // the most significant bytes will already be in the high field.
+  if (!is_big_endian) {
+    uint64_t temp = value->low;
+    value->low = value->high;
+    value->high = temp;
+  }
+}
+
+// This just swaps each int64 half of the 128-bit value.
+// The value should also be normalized by calling Normalize128().
+void Swap(uint128_struct* value) {
+  Swap(&value->low);
+  Swap(&value->high);
+}
+
+// Swapping signed integers
+inline void Swap(int32_t* value) {
+  Swap(reinterpret_cast<uint32_t*>(value));
+}
+
+inline void Swap(MDLocationDescriptor* location_descriptor) {
+  Swap(&location_descriptor->data_size);
+  Swap(&location_descriptor->rva);
+}
+
+inline void Swap(MDMemoryDescriptor* memory_descriptor) {
+  Swap(&memory_descriptor->start_of_memory_range);
+  Swap(&memory_descriptor->memory);
+}
+
+inline void Swap(MDGUID* guid) {
+  Swap(&guid->data1);
+  Swap(&guid->data2);
+  Swap(&guid->data3);
+  // Don't swap guid->data4[] because it contains 8-bit quantities.
+}
+
+inline void Swap(MDSystemTime* system_time) {
+  Swap(&system_time->year);
+  Swap(&system_time->month);
+  Swap(&system_time->day_of_week);
+  Swap(&system_time->day);
+  Swap(&system_time->hour);
+  Swap(&system_time->minute);
+  Swap(&system_time->second);
+  Swap(&system_time->milliseconds);
+}
+
+inline void Swap(MDXStateFeature* xstate_feature) {
+  Swap(&xstate_feature->offset);
+  Swap(&xstate_feature->size);
+}
+
+inline void Swap(MDXStateConfigFeatureMscInfo* xstate_feature_info) {
+  Swap(&xstate_feature_info->size_of_info);
+  Swap(&xstate_feature_info->context_size);
+  Swap(&xstate_feature_info->enabled_features);
+
+  for (size_t i = 0; i < MD_MAXIMUM_XSTATE_FEATURES; i++) {
+    Swap(&xstate_feature_info->features[i]);
+  }
+}
+
+inline void Swap(MDRawSimpleStringDictionaryEntry* entry) {
+  Swap(&entry->key);
+  Swap(&entry->value);
+}
+
+inline void Swap(uint16_t* data, size_t size_in_bytes) {
+  size_t data_length = size_in_bytes / sizeof(data[0]);
+  for (size_t i = 0; i < data_length; i++) {
+    Swap(&data[i]);
+  }
+}
+
+//
+// Character conversion routines
+//
+
+
+// Standard wide-character conversion routines depend on the system's own
+// idea of what width a wide character should be: some use 16 bits, and
+// some use 32 bits.  For the purposes of a minidump, wide strings are
+// always represented with 16-bit UTF-16 chracters.  iconv isn't available
+// everywhere, and its interface varies where it is available.  iconv also
+// deals purely with char* pointers, so in addition to considering the swap
+// parameter, a converter that uses iconv would also need to take the host
+// CPU's endianness into consideration.  It doesn't seems worth the trouble
+// of making it a dependency when we don't care about anything but UTF-16.
+string* UTF16ToUTF8(const vector<uint16_t>& in, bool swap) {
+  scoped_ptr<string> out(new string());
+
+  // Set the string's initial capacity to the number of UTF-16 characters,
+  // because the UTF-8 representation will always be at least this long.
+  // If the UTF-8 representation is longer, the string will grow dynamically.
+  out->reserve(in.size());
+
+  for (vector<uint16_t>::const_iterator iterator = in.begin();
+       iterator != in.end();
+       ++iterator) {
+    // Get a 16-bit value from the input
+    uint16_t in_word = *iterator;
+    if (swap)
+      Swap(&in_word);
+
+    // Convert the input value (in_word) into a Unicode code point (unichar).
+    uint32_t unichar;
+    if (in_word >= 0xdc00 && in_word <= 0xdcff) {
+      BPLOG(ERROR) << "UTF16ToUTF8 found low surrogate " <<
+                      HexString(in_word) << " without high";
+      return NULL;
+    } else if (in_word >= 0xd800 && in_word <= 0xdbff) {
+      // High surrogate.
+      unichar = (in_word - 0xd7c0) << 10;
+      if (++iterator == in.end()) {
+        BPLOG(ERROR) << "UTF16ToUTF8 found high surrogate " <<
+                        HexString(in_word) << " at end of string";
+        return NULL;
+      }
+      uint32_t high_word = in_word;
+      in_word = *iterator;
+      if (in_word < 0xdc00 || in_word > 0xdcff) {
+        BPLOG(ERROR) << "UTF16ToUTF8 found high surrogate " <<
+                        HexString(high_word) << " without low " <<
+                        HexString(in_word);
+        return NULL;
+      }
+      unichar |= in_word & 0x03ff;
+    } else {
+      // The ordinary case, a single non-surrogate Unicode character encoded
+      // as a single 16-bit value.
+      unichar = in_word;
+    }
+
+    // Convert the Unicode code point (unichar) into its UTF-8 representation,
+    // appending it to the out string.
+    if (unichar < 0x80) {
+      (*out) += static_cast<char>(unichar);
+    } else if (unichar < 0x800) {
+      (*out) += 0xc0 | static_cast<char>(unichar >> 6);
+      (*out) += 0x80 | static_cast<char>(unichar & 0x3f);
+    } else if (unichar < 0x10000) {
+      (*out) += 0xe0 | static_cast<char>(unichar >> 12);
+      (*out) += 0x80 | static_cast<char>((unichar >> 6) & 0x3f);
+      (*out) += 0x80 | static_cast<char>(unichar & 0x3f);
+    } else if (unichar < 0x200000) {
+      (*out) += 0xf0 | static_cast<char>(unichar >> 18);
+      (*out) += 0x80 | static_cast<char>((unichar >> 12) & 0x3f);
+      (*out) += 0x80 | static_cast<char>((unichar >> 6) & 0x3f);
+      (*out) += 0x80 | static_cast<char>(unichar & 0x3f);
+    } else {
+      BPLOG(ERROR) << "UTF16ToUTF8 cannot represent high value " <<
+                      HexString(unichar) << " in UTF-8";
+      return NULL;
+    }
+  }
+
+  return out.release();
+}
+
+// Return the smaller of the number of code units in the UTF-16 string,
+// not including the terminating null word, or maxlen.
+size_t UTF16codeunits(const uint16_t* string, size_t maxlen) {
+  size_t count = 0;
+  while (count < maxlen && string[count] != 0)
+    count++;
+  return count;
+}
+
+inline void Swap(MDTimeZoneInformation* time_zone) {
+  Swap(&time_zone->bias);
+  // Skip time_zone->standard_name.  No need to swap UTF-16 fields.
+  // The swap will be done as part of the conversion to UTF-8.
+  Swap(&time_zone->standard_date);
+  Swap(&time_zone->standard_bias);
+  // Skip time_zone->daylight_name.  No need to swap UTF-16 fields.
+  // The swap will be done as part of the conversion to UTF-8.
+  Swap(&time_zone->daylight_date);
+  Swap(&time_zone->daylight_bias);
+}
+
+void ConvertUTF16BufferToUTF8String(const uint16_t* utf16_data,
+                                    size_t max_length_in_bytes,
+                                    string* utf8_result,
+                                    bool swap) {
+  // Since there is no explicit byte length for each string, use
+  // UTF16codeunits to calculate word length, then derive byte
+  // length from that.
+  size_t max_word_length = max_length_in_bytes / sizeof(utf16_data[0]);
+  size_t word_length = UTF16codeunits(utf16_data, max_word_length);
+  if (word_length > 0) {
+    size_t byte_length = word_length * sizeof(utf16_data[0]);
+    vector<uint16_t> utf16_vector(word_length);
+    memcpy(&utf16_vector[0], &utf16_data[0], byte_length);
+    scoped_ptr<string> temp(UTF16ToUTF8(utf16_vector, swap));
+    if (temp.get()) {
+      utf8_result->assign(*temp);
+    }
+  } else {
+    utf8_result->clear();
+  }
+}
+
+
+// For fields that may or may not be valid, PrintValueOrInvalid will print the
+// string "(invalid)" if the field is not valid, and will print the value if
+// the field is valid. The value is printed as hexadecimal or decimal.
+
+enum NumberFormat {
+  kNumberFormatDecimal,
+  kNumberFormatHexadecimal,
+};
+
+void PrintValueOrInvalid(bool valid,
+                         NumberFormat number_format,
+                         uint32_t value) {
+  if (!valid) {
+    printf("(invalid)\n");
+  } else if (number_format == kNumberFormatDecimal) {
+    printf("%d\n", value);
+  } else {
+    printf("0x%x\n", value);
+  }
+}
+
+// Converts a time_t to a string showing the time in UTC.
+string TimeTToUTCString(time_t tt) {
+  struct tm timestruct;
+#ifdef _WIN32
+  gmtime_s(&timestruct, &tt);
+#else
+  gmtime_r(&tt, &timestruct);
+#endif
+
+  char timestr[20];
+  size_t rv = strftime(timestr, 20, "%Y-%m-%d %H:%M:%S", &timestruct);
+  if (rv == 0) {
+    return string();
+  }
+
+  return string(timestr);
+}
+
+string MDGUIDToString(const MDGUID& uuid) {
+  char buf[37];
+  snprintf(buf, sizeof(buf), "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+           uuid.data1,
+           uuid.data2,
+           uuid.data3,
+           uuid.data4[0],
+           uuid.data4[1],
+           uuid.data4[2],
+           uuid.data4[3],
+           uuid.data4[4],
+           uuid.data4[5],
+           uuid.data4[6],
+           uuid.data4[7]);
+  return std::string(buf);
+}
+
+bool IsDevAshmem(const string& filename) {
+  const string kDevAshmem("/dev/ashmem/");
+  return filename.compare(0, kDevAshmem.length(), kDevAshmem) == 0;
+}
+
+}  // namespace
+
+//
+// MinidumpObject
+//
+
+
+MinidumpObject::MinidumpObject(Minidump* minidump)
+    : DumpObject(),
+      minidump_(minidump) {
+}
+
+
+//
+// MinidumpStream
+//
+
+
+MinidumpStream::MinidumpStream(Minidump* minidump)
+    : MinidumpObject(minidump) {
+}
+
+
+//
+// MinidumpContext
+//
+
+
+MinidumpContext::MinidumpContext(Minidump* minidump)
+    : DumpContext(),
+      minidump_(minidump) {
+}
+
+MinidumpContext::~MinidumpContext() {
+}
+
+bool MinidumpContext::Read(uint32_t expected_size) {
+  valid_ = false;
+
+  // Certain raw context types are currently assumed to have unique sizes.
+  if (!IsContextSizeUnique(sizeof(MDRawContextAMD64))) {
+    BPLOG(ERROR) << "sizeof(MDRawContextAMD64) cannot match the size of any "
+                 << "other raw context";
+    return false;
+  }
+  if (!IsContextSizeUnique(sizeof(MDRawContextPPC64))) {
+    BPLOG(ERROR) << "sizeof(MDRawContextPPC64) cannot match the size of any "
+                 << "other raw context";
+    return false;
+  }
+  if (!IsContextSizeUnique(sizeof(MDRawContextARM64_Old))) {
+    BPLOG(ERROR) << "sizeof(MDRawContextARM64_Old) cannot match the size of any "
+                 << "other raw context";
+    return false;
+  }
+
+  FreeContext();
+
+  // First, figure out what type of CPU this context structure is for.
+  // For some reason, the AMD64 Context doesn't have context_flags
+  // at the beginning of the structure, so special case it here.
+  if (expected_size == sizeof(MDRawContextAMD64)) {
+    BPLOG(INFO) << "MinidumpContext: looks like AMD64 context";
+
+    scoped_ptr<MDRawContextAMD64> context_amd64(new MDRawContextAMD64());
+    if (!minidump_->ReadBytes(context_amd64.get(),
+                              sizeof(MDRawContextAMD64))) {
+      BPLOG(ERROR) << "MinidumpContext could not read amd64 context";
+      return false;
+    }
+
+    if (minidump_->swap())
+      Swap(&context_amd64->context_flags);
+
+    uint32_t cpu_type = context_amd64->context_flags & MD_CONTEXT_CPU_MASK;
+    if (cpu_type == 0) {
+      if (minidump_->GetContextCPUFlagsFromSystemInfo(&cpu_type)) {
+        context_amd64->context_flags |= cpu_type;
+      } else {
+        BPLOG(ERROR) << "Failed to preserve the current stream position";
+        return false;
+      }
+    }
+
+    if (cpu_type != MD_CONTEXT_AMD64) {
+      // TODO: Fall through to switch below.
+      // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=550
+      BPLOG(ERROR) << "MinidumpContext not actually amd64 context";
+      return false;
+    }
+
+    // Do this after reading the entire MDRawContext structure because
+    // GetSystemInfo may seek minidump to a new position.
+    if (!CheckAgainstSystemInfo(cpu_type)) {
+      BPLOG(ERROR) << "MinidumpContext amd64 does not match system info";
+      return false;
+    }
+
+    // Normalize the 128-bit types in the dump.
+    // Since this is AMD64, by definition, the values are little-endian.
+    for (unsigned int vr_index = 0;
+         vr_index < MD_CONTEXT_AMD64_VR_COUNT;
+         ++vr_index)
+      Normalize128(&context_amd64->vector_register[vr_index], false);
+
+    if (minidump_->swap()) {
+      Swap(&context_amd64->p1_home);
+      Swap(&context_amd64->p2_home);
+      Swap(&context_amd64->p3_home);
+      Swap(&context_amd64->p4_home);
+      Swap(&context_amd64->p5_home);
+      Swap(&context_amd64->p6_home);
+      // context_flags is already swapped
+      Swap(&context_amd64->mx_csr);
+      Swap(&context_amd64->cs);
+      Swap(&context_amd64->ds);
+      Swap(&context_amd64->es);
+      Swap(&context_amd64->fs);
+      Swap(&context_amd64->ss);
+      Swap(&context_amd64->eflags);
+      Swap(&context_amd64->dr0);
+      Swap(&context_amd64->dr1);
+      Swap(&context_amd64->dr2);
+      Swap(&context_amd64->dr3);
+      Swap(&context_amd64->dr6);
+      Swap(&context_amd64->dr7);
+      Swap(&context_amd64->rax);
+      Swap(&context_amd64->rcx);
+      Swap(&context_amd64->rdx);
+      Swap(&context_amd64->rbx);
+      Swap(&context_amd64->rsp);
+      Swap(&context_amd64->rbp);
+      Swap(&context_amd64->rsi);
+      Swap(&context_amd64->rdi);
+      Swap(&context_amd64->r8);
+      Swap(&context_amd64->r9);
+      Swap(&context_amd64->r10);
+      Swap(&context_amd64->r11);
+      Swap(&context_amd64->r12);
+      Swap(&context_amd64->r13);
+      Swap(&context_amd64->r14);
+      Swap(&context_amd64->r15);
+      Swap(&context_amd64->rip);
+      // FIXME: I'm not sure what actually determines
+      // which member of the union {flt_save, sse_registers}
+      // is valid.  We're not currently using either,
+      // but it would be good to have them swapped properly.
+
+      for (unsigned int vr_index = 0;
+           vr_index < MD_CONTEXT_AMD64_VR_COUNT;
+           ++vr_index)
+        Swap(&context_amd64->vector_register[vr_index]);
+      Swap(&context_amd64->vector_control);
+      Swap(&context_amd64->debug_control);
+      Swap(&context_amd64->last_branch_to_rip);
+      Swap(&context_amd64->last_branch_from_rip);
+      Swap(&context_amd64->last_exception_to_rip);
+      Swap(&context_amd64->last_exception_from_rip);
+    }
+
+    SetContextFlags(context_amd64->context_flags);
+
+    SetContextAMD64(context_amd64.release());
+  } else if (expected_size == sizeof(MDRawContextPPC64)) {
+    // |context_flags| of MDRawContextPPC64 is 64 bits, but other MDRawContext
+    // in the else case have 32 bits |context_flags|, so special case it here.
+    uint64_t context_flags;
+    if (!minidump_->ReadBytes(&context_flags, sizeof(context_flags))) {
+      BPLOG(ERROR) << "MinidumpContext could not read context flags";
+      return false;
+    }
+    if (minidump_->swap())
+      Swap(&context_flags);
+
+    uint32_t cpu_type = context_flags & MD_CONTEXT_CPU_MASK;
+    scoped_ptr<MDRawContextPPC64> context_ppc64(new MDRawContextPPC64());
+
+    if (cpu_type == 0) {
+      if (minidump_->GetContextCPUFlagsFromSystemInfo(&cpu_type)) {
+        context_ppc64->context_flags |= cpu_type;
+      } else {
+        BPLOG(ERROR) << "Failed to preserve the current stream position";
+        return false;
+      }
+    }
+
+    if (cpu_type != MD_CONTEXT_PPC64) {
+      // TODO: Fall through to switch below.
+      // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=550
+      BPLOG(ERROR) << "MinidumpContext not actually ppc64 context";
+      return false;
+    }
+
+    // Set the context_flags member, which has already been read, and
+    // read the rest of the structure beginning with the first member
+    // after context_flags.
+    context_ppc64->context_flags = context_flags;
+
+    size_t flags_size = sizeof(context_ppc64->context_flags);
+    uint8_t* context_after_flags =
+          reinterpret_cast<uint8_t*>(context_ppc64.get()) + flags_size;
+    if (!minidump_->ReadBytes(context_after_flags,
+                              sizeof(MDRawContextPPC64) - flags_size)) {
+      BPLOG(ERROR) << "MinidumpContext could not read ppc64 context";
+      return false;
+    }
+
+    // Do this after reading the entire MDRawContext structure because
+    // GetSystemInfo may seek minidump to a new position.
+    if (!CheckAgainstSystemInfo(cpu_type)) {
+      BPLOG(ERROR) << "MinidumpContext ppc64 does not match system info";
+      return false;
+    }
+    if (minidump_->swap()) {
+      // context_ppc64->context_flags was already swapped.
+      Swap(&context_ppc64->srr0);
+      Swap(&context_ppc64->srr1);
+      for (unsigned int gpr_index = 0;
+           gpr_index < MD_CONTEXT_PPC64_GPR_COUNT;
+           ++gpr_index) {
+        Swap(&context_ppc64->gpr[gpr_index]);
+      }
+      Swap(&context_ppc64->cr);
+      Swap(&context_ppc64->xer);
+      Swap(&context_ppc64->lr);
+      Swap(&context_ppc64->ctr);
+      Swap(&context_ppc64->vrsave);
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT;
+           ++fpr_index) {
+        Swap(&context_ppc64->float_save.fpregs[fpr_index]);
+      }
+      // Don't swap context_ppc64->float_save.fpscr_pad because it is only
+      // used for padding.
+      Swap(&context_ppc64->float_save.fpscr);
+      for (unsigned int vr_index = 0;
+           vr_index < MD_VECTORSAVEAREA_PPC_VR_COUNT;
+           ++vr_index) {
+        Normalize128(&context_ppc64->vector_save.save_vr[vr_index], true);
+        Swap(&context_ppc64->vector_save.save_vr[vr_index]);
+      }
+      Swap(&context_ppc64->vector_save.save_vscr);
+      // Don't swap the padding fields in vector_save.
+      Swap(&context_ppc64->vector_save.save_vrvalid);
+    }
+
+    SetContextFlags(static_cast<uint32_t>(context_ppc64->context_flags));
+
+    // Check for data loss when converting context flags from uint64_t into
+    // uint32_t
+    if (static_cast<uint64_t>(GetContextFlags()) !=
+        context_ppc64->context_flags) {
+      BPLOG(ERROR) << "Data loss detected when converting PPC64 context_flags";
+      return false;
+    }
+
+    SetContextPPC64(context_ppc64.release());
+  } else if (expected_size == sizeof(MDRawContextARM64_Old)) {
+    // |context_flags| of MDRawContextARM64_Old is 64 bits, but other MDRawContext
+    // in the else case have 32 bits |context_flags|, so special case it here.
+    uint64_t context_flags;
+
+    BPLOG(INFO) << "MinidumpContext: looks like ARM64 context";
+
+    if (!minidump_->ReadBytes(&context_flags, sizeof(context_flags))) {
+      BPLOG(ERROR) << "MinidumpContext could not read context flags";
+      return false;
+    }
+    if (minidump_->swap())
+      Swap(&context_flags);
+
+    scoped_ptr<MDRawContextARM64_Old> context_arm64(new MDRawContextARM64_Old());
+
+    uint32_t cpu_type = context_flags & MD_CONTEXT_CPU_MASK;
+    if (cpu_type == 0) {
+      if (minidump_->GetContextCPUFlagsFromSystemInfo(&cpu_type)) {
+        context_arm64->context_flags |= cpu_type;
+      } else {
+        BPLOG(ERROR) << "Failed to preserve the current stream position";
+        return false;
+      }
+    }
+
+    if (cpu_type != MD_CONTEXT_ARM64_OLD) {
+      // TODO: Fall through to switch below.
+      // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=550
+      BPLOG(ERROR) << "MinidumpContext not actually arm64 context";
+      return false;
+    }
+
+    // Set the context_flags member, which has already been read, and
+    // read the rest of the structure beginning with the first member
+    // after context_flags.
+    context_arm64->context_flags = context_flags;
+
+    size_t flags_size = sizeof(context_arm64->context_flags);
+    uint8_t* context_after_flags =
+        reinterpret_cast<uint8_t*>(context_arm64.get()) + flags_size;
+    if (!minidump_->ReadBytes(context_after_flags,
+                              sizeof(MDRawContextARM64_Old) - flags_size)) {
+      BPLOG(ERROR) << "MinidumpContext could not read arm64 context";
+      return false;
+    }
+
+    // Do this after reading the entire MDRawContext structure because
+    // GetSystemInfo may seek minidump to a new position.
+    if (!CheckAgainstSystemInfo(cpu_type)) {
+      BPLOG(ERROR) << "MinidumpContext arm64 does not match system info";
+      return false;
+    }
+
+    if (minidump_->swap()) {
+      // context_arm64->context_flags was already swapped.
+      for (unsigned int ireg_index = 0;
+           ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
+           ++ireg_index) {
+        Swap(&context_arm64->iregs[ireg_index]);
+      }
+      Swap(&context_arm64->cpsr);
+      Swap(&context_arm64->float_save.fpsr);
+      Swap(&context_arm64->float_save.fpcr);
+      for (unsigned int fpr_index = 0;
+           fpr_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
+           ++fpr_index) {
+        Normalize128(&context_arm64->float_save.regs[fpr_index],
+                     minidump_->is_big_endian());
+        Swap(&context_arm64->float_save.regs[fpr_index]);
+      }
+    }
+
+    scoped_ptr<MDRawContextARM64> new_context(new MDRawContextARM64());
+    ConvertOldARM64Context(*context_arm64.get(), new_context.get());
+    SetContextFlags(new_context->context_flags);
+    SetContextARM64(new_context.release());
+  } else {
+    uint32_t context_flags;
+    if (!minidump_->ReadBytes(&context_flags, sizeof(context_flags))) {
+      BPLOG(ERROR) << "MinidumpContext could not read context flags";
+      return false;
+    }
+    if (minidump_->swap())
+      Swap(&context_flags);
+
+    uint32_t cpu_type = context_flags & MD_CONTEXT_CPU_MASK;
+    if (cpu_type == 0) {
+      // Unfortunately the flag for MD_CONTEXT_ARM that was taken
+      // from a Windows CE SDK header conflicts in practice with
+      // the CONTEXT_XSTATE flag. MD_CONTEXT_ARM has been renumbered,
+      // but handle dumps with the legacy value gracefully here.
+      if (context_flags & MD_CONTEXT_ARM_OLD) {
+        context_flags |= MD_CONTEXT_ARM;
+        context_flags &= ~MD_CONTEXT_ARM_OLD;
+        cpu_type = MD_CONTEXT_ARM;
+      }
+    }
+
+    if (cpu_type == 0) {
+      if (minidump_->GetContextCPUFlagsFromSystemInfo(&cpu_type)) {
+        context_flags |= cpu_type;
+      } else {
+        BPLOG(ERROR) << "Failed to preserve the current stream position";
+        return false;
+      }
+    }
+
+    // Allocate the context structure for the correct CPU and fill it.  The
+    // casts are slightly unorthodox, but it seems better to do that than to
+    // maintain a separate pointer for each type of CPU context structure
+    // when only one of them will be used.
+    switch (cpu_type) {
+      case MD_CONTEXT_X86: {
+        if (expected_size != sizeof(MDRawContextX86)) {
+          BPLOG(ERROR) << "MinidumpContext x86 size mismatch, " <<
+            expected_size << " != " << sizeof(MDRawContextX86);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextX86> context_x86(new MDRawContextX86());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_x86->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_x86->context_flags);
+        uint8_t* context_after_flags =
+          reinterpret_cast<uint8_t*>(context_x86.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(MDRawContextX86) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read x86 context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext x86 does not match system info";
+          return false;
+        }
+
+        if (minidump_->swap()) {
+          // context_x86->context_flags was already swapped.
+          Swap(&context_x86->dr0);
+          Swap(&context_x86->dr1);
+          Swap(&context_x86->dr2);
+          Swap(&context_x86->dr3);
+          Swap(&context_x86->dr6);
+          Swap(&context_x86->dr7);
+          Swap(&context_x86->float_save.control_word);
+          Swap(&context_x86->float_save.status_word);
+          Swap(&context_x86->float_save.tag_word);
+          Swap(&context_x86->float_save.error_offset);
+          Swap(&context_x86->float_save.error_selector);
+          Swap(&context_x86->float_save.data_offset);
+          Swap(&context_x86->float_save.data_selector);
+          // context_x86->float_save.register_area[] contains 8-bit quantities
+          // and does not need to be swapped.
+          Swap(&context_x86->float_save.cr0_npx_state);
+          Swap(&context_x86->gs);
+          Swap(&context_x86->fs);
+          Swap(&context_x86->es);
+          Swap(&context_x86->ds);
+          Swap(&context_x86->edi);
+          Swap(&context_x86->esi);
+          Swap(&context_x86->ebx);
+          Swap(&context_x86->edx);
+          Swap(&context_x86->ecx);
+          Swap(&context_x86->eax);
+          Swap(&context_x86->ebp);
+          Swap(&context_x86->eip);
+          Swap(&context_x86->cs);
+          Swap(&context_x86->eflags);
+          Swap(&context_x86->esp);
+          Swap(&context_x86->ss);
+          // context_x86->extended_registers[] contains 8-bit quantities and
+          // does not need to be swapped.
+        }
+
+        SetContextX86(context_x86.release());
+
+        break;
+      }
+
+      case MD_CONTEXT_PPC: {
+        if (expected_size != sizeof(MDRawContextPPC)) {
+          BPLOG(ERROR) << "MinidumpContext ppc size mismatch, " <<
+            expected_size << " != " << sizeof(MDRawContextPPC);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextPPC> context_ppc(new MDRawContextPPC());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_ppc->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_ppc->context_flags);
+        uint8_t* context_after_flags =
+          reinterpret_cast<uint8_t*>(context_ppc.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(MDRawContextPPC) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read ppc context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext ppc does not match system info";
+          return false;
+        }
+
+        // Normalize the 128-bit types in the dump.
+        // Since this is PowerPC, by definition, the values are big-endian.
+        for (unsigned int vr_index = 0;
+             vr_index < MD_VECTORSAVEAREA_PPC_VR_COUNT;
+             ++vr_index) {
+          Normalize128(&context_ppc->vector_save.save_vr[vr_index], true);
+        }
+
+        if (minidump_->swap()) {
+          // context_ppc->context_flags was already swapped.
+          Swap(&context_ppc->srr0);
+          Swap(&context_ppc->srr1);
+          for (unsigned int gpr_index = 0;
+               gpr_index < MD_CONTEXT_PPC_GPR_COUNT;
+               ++gpr_index) {
+            Swap(&context_ppc->gpr[gpr_index]);
+          }
+          Swap(&context_ppc->cr);
+          Swap(&context_ppc->xer);
+          Swap(&context_ppc->lr);
+          Swap(&context_ppc->ctr);
+          Swap(&context_ppc->mq);
+          Swap(&context_ppc->vrsave);
+          for (unsigned int fpr_index = 0;
+               fpr_index < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT;
+               ++fpr_index) {
+            Swap(&context_ppc->float_save.fpregs[fpr_index]);
+          }
+          // Don't swap context_ppc->float_save.fpscr_pad because it is only
+          // used for padding.
+          Swap(&context_ppc->float_save.fpscr);
+          for (unsigned int vr_index = 0;
+               vr_index < MD_VECTORSAVEAREA_PPC_VR_COUNT;
+               ++vr_index) {
+            Swap(&context_ppc->vector_save.save_vr[vr_index]);
+          }
+          Swap(&context_ppc->vector_save.save_vscr);
+          // Don't swap the padding fields in vector_save.
+          Swap(&context_ppc->vector_save.save_vrvalid);
+        }
+
+        SetContextPPC(context_ppc.release());
+
+        break;
+      }
+
+      case MD_CONTEXT_SPARC: {
+        if (expected_size != sizeof(MDRawContextSPARC)) {
+          BPLOG(ERROR) << "MinidumpContext sparc size mismatch, " <<
+            expected_size << " != " << sizeof(MDRawContextSPARC);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextSPARC> context_sparc(new MDRawContextSPARC());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_sparc->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_sparc->context_flags);
+        uint8_t* context_after_flags =
+            reinterpret_cast<uint8_t*>(context_sparc.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(MDRawContextSPARC) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read sparc context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext sparc does not match system info";
+          return false;
+        }
+
+        if (minidump_->swap()) {
+          // context_sparc->context_flags was already swapped.
+          for (unsigned int gpr_index = 0;
+               gpr_index < MD_CONTEXT_SPARC_GPR_COUNT;
+               ++gpr_index) {
+            Swap(&context_sparc->g_r[gpr_index]);
+          }
+          Swap(&context_sparc->ccr);
+          Swap(&context_sparc->pc);
+          Swap(&context_sparc->npc);
+          Swap(&context_sparc->y);
+          Swap(&context_sparc->asi);
+          Swap(&context_sparc->fprs);
+          for (unsigned int fpr_index = 0;
+               fpr_index < MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT;
+               ++fpr_index) {
+            Swap(&context_sparc->float_save.regs[fpr_index]);
+          }
+          Swap(&context_sparc->float_save.filler);
+          Swap(&context_sparc->float_save.fsr);
+        }
+        SetContextSPARC(context_sparc.release());
+
+        break;
+      }
+
+      case MD_CONTEXT_ARM: {
+        if (expected_size != sizeof(MDRawContextARM)) {
+          BPLOG(ERROR) << "MinidumpContext arm size mismatch, " <<
+            expected_size << " != " << sizeof(MDRawContextARM);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextARM> context_arm(new MDRawContextARM());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_arm->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_arm->context_flags);
+        uint8_t* context_after_flags =
+            reinterpret_cast<uint8_t*>(context_arm.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(MDRawContextARM) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read arm context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext arm does not match system info";
+          return false;
+        }
+
+        if (minidump_->swap()) {
+          // context_arm->context_flags was already swapped.
+          for (unsigned int ireg_index = 0;
+               ireg_index < MD_CONTEXT_ARM_GPR_COUNT;
+               ++ireg_index) {
+            Swap(&context_arm->iregs[ireg_index]);
+          }
+          Swap(&context_arm->cpsr);
+          Swap(&context_arm->float_save.fpscr);
+          for (unsigned int fpr_index = 0;
+               fpr_index < MD_FLOATINGSAVEAREA_ARM_FPR_COUNT;
+               ++fpr_index) {
+            Swap(&context_arm->float_save.regs[fpr_index]);
+          }
+          for (unsigned int fpe_index = 0;
+               fpe_index < MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT;
+               ++fpe_index) {
+            Swap(&context_arm->float_save.extra[fpe_index]);
+          }
+        }
+        SetContextARM(context_arm.release());
+
+        break;
+      }
+
+      case MD_CONTEXT_ARM64: {
+        if (expected_size != sizeof(MDRawContextARM64)) {
+          BPLOG(ERROR) << "MinidumpContext arm64 size mismatch, " <<
+                       expected_size << " != " << sizeof(MDRawContextARM64);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextARM64> context_arm64(new MDRawContextARM64());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_arm64->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_arm64->context_flags);
+        uint8_t* context_after_flags =
+            reinterpret_cast<uint8_t*>(context_arm64.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(*context_arm64) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read arm64 context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext arm does not match system info";
+          return false;
+        }
+
+        if (minidump_->swap()) {
+          // context_arm64->context_flags was already swapped.
+          for (unsigned int ireg_index = 0;
+               ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
+               ++ireg_index) {
+            Swap(&context_arm64->iregs[ireg_index]);
+          }
+          Swap(&context_arm64->cpsr);
+          Swap(&context_arm64->float_save.fpsr);
+          Swap(&context_arm64->float_save.fpcr);
+          for (unsigned int fpr_index = 0;
+               fpr_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
+               ++fpr_index) {
+            Normalize128(&context_arm64->float_save.regs[fpr_index],
+                         minidump_->is_big_endian());
+            Swap(&context_arm64->float_save.regs[fpr_index]);
+          }
+        }
+        SetContextARM64(context_arm64.release());
+        break;
+      }
+
+      case MD_CONTEXT_MIPS:
+      case MD_CONTEXT_MIPS64: {
+        if (expected_size != sizeof(MDRawContextMIPS)) {
+          BPLOG(ERROR) << "MinidumpContext MIPS size mismatch, "
+                       << expected_size
+                       << " != "
+                       << sizeof(MDRawContextMIPS);
+          return false;
+        }
+
+        scoped_ptr<MDRawContextMIPS> context_mips(new MDRawContextMIPS());
+
+        // Set the context_flags member, which has already been read, and
+        // read the rest of the structure beginning with the first member
+        // after context_flags.
+        context_mips->context_flags = context_flags;
+
+        size_t flags_size = sizeof(context_mips->context_flags);
+        uint8_t* context_after_flags =
+            reinterpret_cast<uint8_t*>(context_mips.get()) + flags_size;
+        if (!minidump_->ReadBytes(context_after_flags,
+                                  sizeof(MDRawContextMIPS) - flags_size)) {
+          BPLOG(ERROR) << "MinidumpContext could not read MIPS context";
+          return false;
+        }
+
+        // Do this after reading the entire MDRawContext structure because
+        // GetSystemInfo may seek minidump to a new position.
+        if (!CheckAgainstSystemInfo(cpu_type)) {
+          BPLOG(ERROR) << "MinidumpContext MIPS does not match system info";
+          return false;
+        }
+
+        if (minidump_->swap()) {
+          // context_mips->context_flags was already swapped.
+          for (int ireg_index = 0;
+               ireg_index < MD_CONTEXT_MIPS_GPR_COUNT;
+               ++ireg_index) {
+            Swap(&context_mips->iregs[ireg_index]);
+          }
+	  Swap(&context_mips->mdhi);
+	  Swap(&context_mips->mdlo);
+          for (int dsp_index = 0;
+               dsp_index < MD_CONTEXT_MIPS_DSP_COUNT;
+               ++dsp_index) {
+            Swap(&context_mips->hi[dsp_index]);
+            Swap(&context_mips->lo[dsp_index]);
+          }
+	  Swap(&context_mips->dsp_control);
+          Swap(&context_mips->epc);
+          Swap(&context_mips->badvaddr);
+          Swap(&context_mips->status);
+          Swap(&context_mips->cause);
+          for (int fpr_index = 0;
+               fpr_index < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT;
+               ++fpr_index) {
+            Swap(&context_mips->float_save.regs[fpr_index]);
+          }
+          Swap(&context_mips->float_save.fpcsr);
+          Swap(&context_mips->float_save.fir);
+        }
+        SetContextMIPS(context_mips.release());
+
+        break;
+      }
+
+      default: {
+        // Unknown context type - Don't log as an error yet. Let the
+        // caller work that out.
+        BPLOG(INFO) << "MinidumpContext unknown context type " <<
+          HexString(cpu_type);
+        return false;
+        break;
+      }
+    }
+    SetContextFlags(context_flags);
+  }
+
+  valid_ = true;
+  return true;
+}
+
+bool MinidumpContext::CheckAgainstSystemInfo(uint32_t context_cpu_type) {
+  // It's OK if the minidump doesn't contain an MD_SYSTEM_INFO_STREAM,
+  // as this function just implements a sanity check.
+  MinidumpSystemInfo* system_info = minidump_->GetSystemInfo();
+  if (!system_info) {
+    BPLOG(INFO) << "MinidumpContext could not be compared against "
+                   "MinidumpSystemInfo";
+    return true;
+  }
+
+  // If there is an MD_SYSTEM_INFO_STREAM, it should contain valid system info.
+  const MDRawSystemInfo* raw_system_info = system_info->system_info();
+  if (!raw_system_info) {
+    BPLOG(INFO) << "MinidumpContext could not be compared against "
+                   "MDRawSystemInfo";
+    return false;
+  }
+
+  MDCPUArchitecture system_info_cpu_type = static_cast<MDCPUArchitecture>(
+      raw_system_info->processor_architecture);
+
+  // Compare the CPU type of the context record to the CPU type in the
+  // minidump's system info stream.
+  bool return_value = false;
+  switch (context_cpu_type) {
+    case MD_CONTEXT_X86:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_X86 ||
+          system_info_cpu_type == MD_CPU_ARCHITECTURE_X86_WIN64 ||
+          system_info_cpu_type == MD_CPU_ARCHITECTURE_AMD64) {
+        return_value = true;
+      }
+      break;
+
+    case MD_CONTEXT_PPC:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_PPC)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_PPC64:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_PPC64)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_AMD64:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_AMD64)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_SPARC:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_SPARC)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_ARM:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_ARM64:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM64)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_ARM64_OLD:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM64_OLD)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_MIPS:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_MIPS)
+        return_value = true;
+      break;
+
+    case MD_CONTEXT_MIPS64:
+      if (system_info_cpu_type == MD_CPU_ARCHITECTURE_MIPS64)
+        return_value = true;
+      break;
+  }
+
+  BPLOG_IF(ERROR, !return_value) << "MinidumpContext CPU " <<
+                                    HexString(context_cpu_type) <<
+                                    " wrong for MinidumpSystemInfo CPU " <<
+                                    HexString(system_info_cpu_type);
+
+  return return_value;
+}
+
+
+//
+// MinidumpMemoryRegion
+//
+
+
+uint32_t MinidumpMemoryRegion::max_bytes_ = 64 * 1024 * 1024;  // 64MB
+
+
+MinidumpMemoryRegion::MinidumpMemoryRegion(Minidump* minidump)
+    : MinidumpObject(minidump),
+      descriptor_(NULL),
+      memory_(NULL) {
+  hexdump_width_ = minidump_ ? minidump_->HexdumpMode() : 0;
+  hexdump_ = hexdump_width_ != 0;
+}
+
+
+MinidumpMemoryRegion::~MinidumpMemoryRegion() {
+  delete memory_;
+}
+
+
+void MinidumpMemoryRegion::SetDescriptor(MDMemoryDescriptor* descriptor) {
+  descriptor_ = descriptor;
+  valid_ = descriptor &&
+           descriptor_->memory.data_size <=
+               numeric_limits<uint64_t>::max() -
+               descriptor_->start_of_memory_range;
+}
+
+
+const uint8_t* MinidumpMemoryRegion::GetMemory() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryRegion for GetMemory";
+    return NULL;
+  }
+
+  if (!memory_) {
+    if (descriptor_->memory.data_size == 0) {
+      BPLOG(ERROR) << "MinidumpMemoryRegion is empty";
+      return NULL;
+    }
+
+    if (!minidump_->SeekSet(descriptor_->memory.rva)) {
+      BPLOG(ERROR) << "MinidumpMemoryRegion could not seek to memory region";
+      return NULL;
+    }
+
+    if (descriptor_->memory.data_size > max_bytes_) {
+      BPLOG(ERROR) << "MinidumpMemoryRegion size " <<
+                      descriptor_->memory.data_size << " exceeds maximum " <<
+                      max_bytes_;
+      return NULL;
+    }
+
+    scoped_ptr< vector<uint8_t> > memory(
+        new vector<uint8_t>(descriptor_->memory.data_size));
+
+    if (!minidump_->ReadBytes(&(*memory)[0], descriptor_->memory.data_size)) {
+      BPLOG(ERROR) << "MinidumpMemoryRegion could not read memory region";
+      return NULL;
+    }
+
+    memory_ = memory.release();
+  }
+
+  return &(*memory_)[0];
+}
+
+
+uint64_t MinidumpMemoryRegion::GetBase() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryRegion for GetBase";
+    return static_cast<uint64_t>(-1);
+  }
+
+  return descriptor_->start_of_memory_range;
+}
+
+
+uint32_t MinidumpMemoryRegion::GetSize() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryRegion for GetSize";
+    return 0;
+  }
+
+  return descriptor_->memory.data_size;
+}
+
+
+void MinidumpMemoryRegion::FreeMemory() {
+  delete memory_;
+  memory_ = NULL;
+}
+
+
+template<typename T>
+bool MinidumpMemoryRegion::GetMemoryAtAddressInternal(uint64_t address,
+                                                      T*        value) const {
+  BPLOG_IF(ERROR, !value) << "MinidumpMemoryRegion::GetMemoryAtAddressInternal "
+                             "requires |value|";
+  assert(value);
+  *value = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryRegion for "
+                    "GetMemoryAtAddressInternal";
+    return false;
+  }
+
+  // Common failure case
+  if (address < descriptor_->start_of_memory_range ||
+      sizeof(T) > numeric_limits<uint64_t>::max() - address ||
+      address + sizeof(T) > descriptor_->start_of_memory_range +
+                            descriptor_->memory.data_size) {
+    BPLOG(INFO) << "MinidumpMemoryRegion request out of range: " <<
+                    HexString(address) << "+" << sizeof(T) << "/" <<
+                    HexString(descriptor_->start_of_memory_range) << "+" <<
+                    HexString(descriptor_->memory.data_size);
+    return false;
+  }
+
+  const uint8_t* memory = GetMemory();
+  if (!memory) {
+    // GetMemory already logged a perfectly good message.
+    return false;
+  }
+
+  // If the CPU requires memory accesses to be aligned, this can crash.
+  // x86 and ppc are able to cope, though.
+  *value = *reinterpret_cast<const T*>(
+      &memory[address - descriptor_->start_of_memory_range]);
+
+  if (minidump_->swap())
+    Swap(value);
+
+  return true;
+}
+
+
+bool MinidumpMemoryRegion::GetMemoryAtAddress(uint64_t  address,
+                                              uint8_t*  value) const {
+  return GetMemoryAtAddressInternal(address, value);
+}
+
+
+bool MinidumpMemoryRegion::GetMemoryAtAddress(uint64_t  address,
+                                              uint16_t* value) const {
+  return GetMemoryAtAddressInternal(address, value);
+}
+
+
+bool MinidumpMemoryRegion::GetMemoryAtAddress(uint64_t  address,
+                                              uint32_t* value) const {
+  return GetMemoryAtAddressInternal(address, value);
+}
+
+
+bool MinidumpMemoryRegion::GetMemoryAtAddress(uint64_t  address,
+                                              uint64_t* value) const {
+  return GetMemoryAtAddressInternal(address, value);
+}
+
+
+void MinidumpMemoryRegion::Print() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpMemoryRegion cannot print invalid data";
+    return;
+  }
+
+  const uint8_t* memory = GetMemory();
+  if (memory) {
+    if (hexdump_) {
+      // Pretty hexdump view.
+      for (unsigned int byte_index = 0;
+           byte_index < descriptor_->memory.data_size;
+           byte_index += hexdump_width_) {
+        // In case the memory won't fill a whole line.
+        unsigned int num_bytes = std::min(
+            descriptor_->memory.data_size - byte_index, hexdump_width_);
+
+        // Display the leading address.
+        printf("%08x  ", byte_index);
+
+        // Show the bytes in hex.
+        for (unsigned int i = 0; i < hexdump_width_; ++i) {
+          if (i < num_bytes) {
+            // Show the single byte of memory in hex.
+            printf("%02x ", memory[byte_index + i]);
+          } else {
+            // If this line doesn't fill up, pad it out.
+            printf("   ");
+          }
+
+          // Insert a space every 8 bytes to make it more readable.
+          if (((i + 1) % 8) == 0) {
+            printf(" ");
+          }
+        }
+
+        // Decode the line as ASCII.
+        printf("|");
+        for (unsigned int i = 0; i < hexdump_width_; ++i) {
+          if (i < num_bytes) {
+            uint8_t byte = memory[byte_index + i];
+            printf("%c", isprint(byte) ? byte : '.');
+          } else {
+            // If this line doesn't fill up, pad it out.
+            printf(" ");
+          }
+        }
+        printf("|\n");
+      }
+    } else {
+      // Ugly raw string view.
+      printf("0x");
+      for (unsigned int i = 0;
+           i < descriptor_->memory.data_size;
+           i++) {
+        printf("%02x", memory[i]);
+      }
+      printf("\n");
+    }
+  } else {
+    printf("No memory\n");
+  }
+}
+
+
+void MinidumpMemoryRegion::SetPrintMode(bool hexdump,
+                                        unsigned int hexdump_width) {
+  // Require the width to be a multiple of 8 bytes.
+  if (hexdump_width == 0 || (hexdump_width % 8) != 0) {
+    BPLOG(ERROR) << "MinidumpMemoryRegion print hexdump_width must be "
+                    "multiple of 8, not " << hexdump_width;
+    return;
+  }
+
+  hexdump_ = hexdump;
+  hexdump_width_ = hexdump_width;
+}
+
+
+//
+// MinidumpThread
+//
+
+
+MinidumpThread::MinidumpThread(Minidump* minidump)
+    : MinidumpObject(minidump),
+      thread_(),
+      memory_(NULL),
+      context_(NULL) {
+}
+
+
+MinidumpThread::~MinidumpThread() {
+  delete memory_;
+  delete context_;
+}
+
+
+bool MinidumpThread::Read() {
+  // Invalidate cached data.
+  delete memory_;
+  memory_ = NULL;
+  delete context_;
+  context_ = NULL;
+
+  valid_ = false;
+
+  if (!minidump_->ReadBytes(&thread_, sizeof(thread_))) {
+    BPLOG(ERROR) << "MinidumpThread cannot read thread";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&thread_.thread_id);
+    Swap(&thread_.suspend_count);
+    Swap(&thread_.priority_class);
+    Swap(&thread_.priority);
+    Swap(&thread_.teb);
+    Swap(&thread_.stack);
+    Swap(&thread_.thread_context);
+  }
+
+  // Check for base + size overflow or undersize.
+  if (thread_.stack.memory.rva == 0 ||
+      thread_.stack.memory.data_size == 0 ||
+      thread_.stack.memory.data_size > numeric_limits<uint64_t>::max() -
+                                       thread_.stack.start_of_memory_range) {
+    // This is ok, but log an error anyway.
+    BPLOG(ERROR) << "MinidumpThread has a memory region problem, " <<
+                    HexString(thread_.stack.start_of_memory_range) << "+" <<
+                    HexString(thread_.stack.memory.data_size) <<
+                    ", RVA 0x" << HexString(thread_.stack.memory.rva);
+  } else {
+    memory_ = new MinidumpMemoryRegion(minidump_);
+    memory_->SetDescriptor(&thread_.stack);
+  }
+
+  valid_ = true;
+  return true;
+}
+
+uint64_t MinidumpThread::GetStartOfStackMemoryRange() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "GetStartOfStackMemoryRange: Invalid MinidumpThread";
+    return 0;
+  }
+
+  return thread_.stack.start_of_memory_range;
+}
+
+MinidumpMemoryRegion* MinidumpThread::GetMemory() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpThread for GetMemory";
+    return NULL;
+  }
+
+  return memory_;
+}
+
+
+MinidumpContext* MinidumpThread::GetContext() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpThread for GetContext";
+    return NULL;
+  }
+
+  if (!context_) {
+    if (!minidump_->SeekSet(thread_.thread_context.rva)) {
+      BPLOG(ERROR) << "MinidumpThread cannot seek to context";
+      return NULL;
+    }
+
+    scoped_ptr<MinidumpContext> context(new MinidumpContext(minidump_));
+
+    if (!context->Read(thread_.thread_context.data_size)) {
+      BPLOG(ERROR) << "MinidumpThread cannot read context";
+      return NULL;
+    }
+
+    context_ = context.release();
+  }
+
+  return context_;
+}
+
+
+bool MinidumpThread::GetThreadID(uint32_t* thread_id) const {
+  BPLOG_IF(ERROR, !thread_id) << "MinidumpThread::GetThreadID requires "
+                                 "|thread_id|";
+  assert(thread_id);
+  *thread_id = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpThread for GetThreadID";
+    return false;
+  }
+
+  *thread_id = thread_.thread_id;
+  return true;
+}
+
+
+void MinidumpThread::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpThread cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawThread\n");
+  printf("  thread_id                   = 0x%x\n",   thread_.thread_id);
+  printf("  suspend_count               = %d\n",     thread_.suspend_count);
+  printf("  priority_class              = 0x%x\n",   thread_.priority_class);
+  printf("  priority                    = 0x%x\n",   thread_.priority);
+  printf("  teb                         = 0x%" PRIx64 "\n", thread_.teb);
+  printf("  stack.start_of_memory_range = 0x%" PRIx64 "\n",
+         thread_.stack.start_of_memory_range);
+  printf("  stack.memory.data_size      = 0x%x\n",
+         thread_.stack.memory.data_size);
+  printf("  stack.memory.rva            = 0x%x\n",   thread_.stack.memory.rva);
+  printf("  thread_context.data_size    = 0x%x\n",
+         thread_.thread_context.data_size);
+  printf("  thread_context.rva          = 0x%x\n",
+         thread_.thread_context.rva);
+
+  MinidumpContext* context = GetContext();
+  if (context) {
+    printf("\n");
+    context->Print();
+  } else {
+    printf("  (no context)\n");
+    printf("\n");
+  }
+
+  MinidumpMemoryRegion* memory = GetMemory();
+  if (memory) {
+    printf("Stack\n");
+    memory->Print();
+  } else {
+    printf("No stack\n");
+  }
+  printf("\n");
+}
+
+
+//
+// MinidumpThreadList
+//
+
+
+uint32_t MinidumpThreadList::max_threads_ = 4096;
+
+
+MinidumpThreadList::MinidumpThreadList(Minidump* minidump)
+    : MinidumpStream(minidump),
+      id_to_thread_map_(),
+      threads_(NULL),
+      thread_count_(0) {
+}
+
+
+MinidumpThreadList::~MinidumpThreadList() {
+  delete threads_;
+}
+
+
+bool MinidumpThreadList::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  id_to_thread_map_.clear();
+  delete threads_;
+  threads_ = NULL;
+  thread_count_ = 0;
+
+  valid_ = false;
+
+  uint32_t thread_count;
+  if (expected_size < sizeof(thread_count)) {
+    BPLOG(ERROR) << "MinidumpThreadList count size mismatch, " <<
+                    expected_size << " < " << sizeof(thread_count);
+    return false;
+  }
+  if (!minidump_->ReadBytes(&thread_count, sizeof(thread_count))) {
+    BPLOG(ERROR) << "MinidumpThreadList cannot read thread count";
+    return false;
+  }
+
+  if (minidump_->swap())
+    Swap(&thread_count);
+
+  if (thread_count > numeric_limits<uint32_t>::max() / sizeof(MDRawThread)) {
+    BPLOG(ERROR) << "MinidumpThreadList thread count " << thread_count <<
+                    " would cause multiplication overflow";
+    return false;
+  }
+
+  if (expected_size != sizeof(thread_count) +
+                       thread_count * sizeof(MDRawThread)) {
+    // may be padded with 4 bytes on 64bit ABIs for alignment
+    if (expected_size == sizeof(thread_count) + 4 +
+                         thread_count * sizeof(MDRawThread)) {
+      uint32_t useless;
+      if (!minidump_->ReadBytes(&useless, 4)) {
+        BPLOG(ERROR) << "MinidumpThreadList cannot read threadlist padded "
+                        "bytes";
+        return false;
+      }
+    } else {
+      BPLOG(ERROR) << "MinidumpThreadList size mismatch, " << expected_size <<
+                    " != " << sizeof(thread_count) +
+                    thread_count * sizeof(MDRawThread);
+      return false;
+    }
+  }
+
+
+  if (thread_count > max_threads_) {
+    BPLOG(ERROR) << "MinidumpThreadList count " << thread_count <<
+                    " exceeds maximum " << max_threads_;
+    return false;
+  }
+
+  if (thread_count != 0) {
+    scoped_ptr<MinidumpThreads> threads(
+        new MinidumpThreads(thread_count, MinidumpThread(minidump_)));
+
+    for (unsigned int thread_index = 0;
+         thread_index < thread_count;
+         ++thread_index) {
+      MinidumpThread* thread = &(*threads)[thread_index];
+
+      // Assume that the file offset is correct after the last read.
+      if (!thread->Read()) {
+        BPLOG(ERROR) << "MinidumpThreadList cannot read thread " <<
+                        thread_index << "/" << thread_count;
+        return false;
+      }
+
+      uint32_t thread_id;
+      if (!thread->GetThreadID(&thread_id)) {
+        BPLOG(ERROR) << "MinidumpThreadList cannot get thread ID for thread " <<
+                        thread_index << "/" << thread_count;
+        return false;
+      }
+
+      if (GetThreadByID(thread_id)) {
+        // Another thread with this ID is already in the list.  Data error.
+        BPLOG(ERROR) << "MinidumpThreadList found multiple threads with ID " <<
+                        HexString(thread_id) << " at thread " <<
+                        thread_index << "/" << thread_count;
+        return false;
+      }
+      id_to_thread_map_[thread_id] = thread;
+    }
+
+    threads_ = threads.release();
+  }
+
+  thread_count_ = thread_count;
+
+  valid_ = true;
+  return true;
+}
+
+
+MinidumpThread* MinidumpThreadList::GetThreadAtIndex(unsigned int index)
+    const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpThreadList for GetThreadAtIndex";
+    return NULL;
+  }
+
+  if (index >= thread_count_) {
+    BPLOG(ERROR) << "MinidumpThreadList index out of range: " <<
+                    index << "/" << thread_count_;
+    return NULL;
+  }
+
+  return &(*threads_)[index];
+}
+
+
+MinidumpThread* MinidumpThreadList::GetThreadByID(uint32_t thread_id) {
+  // Don't check valid_.  Read calls this method before everything is
+  // validated.  It is safe to not check valid_ here.
+  return id_to_thread_map_[thread_id];
+}
+
+
+void MinidumpThreadList::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpThreadList cannot print invalid data";
+    return;
+  }
+
+  printf("MinidumpThreadList\n");
+  printf("  thread_count = %d\n", thread_count_);
+  printf("\n");
+
+  for (unsigned int thread_index = 0;
+       thread_index < thread_count_;
+       ++thread_index) {
+    printf("thread[%d]\n", thread_index);
+
+    (*threads_)[thread_index].Print();
+  }
+}
+
+
+//
+// MinidumpModule
+//
+
+
+uint32_t MinidumpModule::max_cv_bytes_ = 32768;
+uint32_t MinidumpModule::max_misc_bytes_ = 32768;
+
+
+MinidumpModule::MinidumpModule(Minidump* minidump)
+    : MinidumpObject(minidump),
+      module_valid_(false),
+      has_debug_info_(false),
+      module_(),
+      name_(NULL),
+      cv_record_(NULL),
+      cv_record_signature_(MD_CVINFOUNKNOWN_SIGNATURE),
+      misc_record_(NULL) {
+}
+
+
+MinidumpModule::~MinidumpModule() {
+  delete name_;
+  delete cv_record_;
+  delete misc_record_;
+}
+
+
+bool MinidumpModule::Read() {
+  // Invalidate cached data.
+  delete name_;
+  name_ = NULL;
+  delete cv_record_;
+  cv_record_ = NULL;
+  cv_record_signature_ = MD_CVINFOUNKNOWN_SIGNATURE;
+  delete misc_record_;
+  misc_record_ = NULL;
+
+  module_valid_ = false;
+  has_debug_info_ = false;
+  valid_ = false;
+
+  if (!minidump_->ReadBytes(&module_, MD_MODULE_SIZE)) {
+    BPLOG(ERROR) << "MinidumpModule cannot read module";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&module_.base_of_image);
+    Swap(&module_.size_of_image);
+    Swap(&module_.checksum);
+    Swap(&module_.time_date_stamp);
+    Swap(&module_.module_name_rva);
+    Swap(&module_.version_info.signature);
+    Swap(&module_.version_info.struct_version);
+    Swap(&module_.version_info.file_version_hi);
+    Swap(&module_.version_info.file_version_lo);
+    Swap(&module_.version_info.product_version_hi);
+    Swap(&module_.version_info.product_version_lo);
+    Swap(&module_.version_info.file_flags_mask);
+    Swap(&module_.version_info.file_flags);
+    Swap(&module_.version_info.file_os);
+    Swap(&module_.version_info.file_type);
+    Swap(&module_.version_info.file_subtype);
+    Swap(&module_.version_info.file_date_hi);
+    Swap(&module_.version_info.file_date_lo);
+    Swap(&module_.cv_record);
+    Swap(&module_.misc_record);
+    // Don't swap reserved fields because their contents are unknown (as
+    // are their proper widths).
+  }
+
+  // Check for base + size overflow or undersize.
+  if (module_.size_of_image == 0 ||
+      module_.size_of_image >
+          numeric_limits<uint64_t>::max() - module_.base_of_image) {
+    BPLOG(ERROR) << "MinidumpModule has a module problem, " <<
+                    HexString(module_.base_of_image) << "+" <<
+                    HexString(module_.size_of_image);
+    return false;
+  }
+
+  module_valid_ = true;
+  return true;
+}
+
+
+bool MinidumpModule::ReadAuxiliaryData() {
+  if (!module_valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for ReadAuxiliaryData";
+    return false;
+  }
+
+  // Each module must have a name.
+  name_ = minidump_->ReadString(module_.module_name_rva);
+  if (!name_) {
+    BPLOG(ERROR) << "MinidumpModule could not read name";
+    return false;
+  }
+
+  // At this point, we have enough info for the module to be valid.
+  valid_ = true;
+
+  // CodeView and miscellaneous debug records are only required if the
+  // module indicates that they exist.
+  if (module_.cv_record.data_size && !GetCVRecord(NULL)) {
+    BPLOG(ERROR) << "MinidumpModule has no CodeView record, "
+                    "but one was expected";
+    return false;
+  }
+
+  if (module_.misc_record.data_size && !GetMiscRecord(NULL)) {
+    BPLOG(ERROR) << "MinidumpModule has no miscellaneous debug record, "
+                    "but one was expected";
+    return false;
+  }
+
+  has_debug_info_ = true;
+  return true;
+}
+
+
+string MinidumpModule::code_file() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for code_file";
+    return "";
+  }
+
+  return *name_;
+}
+
+
+string MinidumpModule::code_identifier() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for code_identifier";
+    return "";
+  }
+
+  if (!has_debug_info_)
+    return "";
+
+  MinidumpSystemInfo* minidump_system_info = minidump_->GetSystemInfo();
+  if (!minidump_system_info) {
+    BPLOG(ERROR) << "MinidumpModule code_identifier requires "
+                    "MinidumpSystemInfo";
+    return "";
+  }
+
+  const MDRawSystemInfo* raw_system_info = minidump_system_info->system_info();
+  if (!raw_system_info) {
+    BPLOG(ERROR) << "MinidumpModule code_identifier requires MDRawSystemInfo";
+    return "";
+  }
+
+  string identifier;
+
+  switch (raw_system_info->platform_id) {
+    case MD_OS_WIN32_NT:
+    case MD_OS_WIN32_WINDOWS: {
+      // Use the same format that the MS symbol server uses in filesystem
+      // hierarchies.
+      char identifier_string[17];
+      snprintf(identifier_string, sizeof(identifier_string), "%08X%x",
+               module_.time_date_stamp, module_.size_of_image);
+      identifier = identifier_string;
+      break;
+    }
+
+    case MD_OS_ANDROID:
+    case MD_OS_FUCHSIA:
+    case MD_OS_LINUX: {
+      // If ELF CodeView data is present, return the debug id.
+      if (cv_record_ && cv_record_signature_ == MD_CVINFOELF_SIGNATURE) {
+        const MDCVInfoELF* cv_record_elf =
+            reinterpret_cast<const MDCVInfoELF*>(&(*cv_record_)[0]);
+        assert(cv_record_elf->cv_signature == MD_CVINFOELF_SIGNATURE);
+
+        for (unsigned int build_id_index = 0;
+             build_id_index < (cv_record_->size() - MDCVInfoELF_minsize);
+             ++build_id_index) {
+          char hexbyte[3];
+          snprintf(hexbyte, sizeof(hexbyte), "%02x",
+                   cv_record_elf->build_id[build_id_index]);
+          identifier += hexbyte;
+        }
+        break;
+      }
+      // Otherwise fall through to the case below.
+      BP_FALLTHROUGH;
+    }
+
+    case MD_OS_MAC_OS_X:
+    case MD_OS_IOS:
+    case MD_OS_SOLARIS:
+    case MD_OS_NACL:
+    case MD_OS_PS3: {
+      // TODO(mmentovai): support uuid extension if present, otherwise fall
+      // back to version (from LC_ID_DYLIB?), otherwise fall back to something
+      // else.
+      identifier = "id";
+      break;
+    }
+
+    default: {
+      // Without knowing what OS generated the dump, we can't generate a good
+      // identifier.  Return an empty string, signalling failure.
+      BPLOG(ERROR) << "MinidumpModule code_identifier requires known platform, "
+                      "found " << HexString(raw_system_info->platform_id);
+      break;
+    }
+  }
+
+  return identifier;
+}
+
+
+string MinidumpModule::debug_file() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for debug_file";
+    return "";
+  }
+
+  if (!has_debug_info_)
+    return "";
+
+  string file;
+  // Prefer the CodeView record if present.
+  if (cv_record_) {
+    if (cv_record_signature_ == MD_CVINFOPDB70_SIGNATURE) {
+      // It's actually an MDCVInfoPDB70 structure.
+      const MDCVInfoPDB70* cv_record_70 =
+          reinterpret_cast<const MDCVInfoPDB70*>(&(*cv_record_)[0]);
+      assert(cv_record_70->cv_signature == MD_CVINFOPDB70_SIGNATURE);
+
+      // GetCVRecord guarantees pdb_file_name is null-terminated.
+      file = reinterpret_cast<const char*>(cv_record_70->pdb_file_name);
+    } else if (cv_record_signature_ == MD_CVINFOPDB20_SIGNATURE) {
+      // It's actually an MDCVInfoPDB20 structure.
+      const MDCVInfoPDB20* cv_record_20 =
+          reinterpret_cast<const MDCVInfoPDB20*>(&(*cv_record_)[0]);
+      assert(cv_record_20->cv_header.signature == MD_CVINFOPDB20_SIGNATURE);
+
+      // GetCVRecord guarantees pdb_file_name is null-terminated.
+      file = reinterpret_cast<const char*>(cv_record_20->pdb_file_name);
+    } else if (cv_record_signature_ == MD_CVINFOELF_SIGNATURE) {
+      // It's actually an MDCVInfoELF structure.
+      assert(reinterpret_cast<const MDCVInfoELF*>(&(*cv_record_)[0])->
+          cv_signature == MD_CVINFOELF_SIGNATURE);
+
+      // For MDCVInfoELF, the debug file is the code file.
+      file = *name_;
+    }
+
+    // If there's a CodeView record but it doesn't match a known signature,
+    // try the miscellaneous record.
+  }
+
+  if (file.empty()) {
+    // No usable CodeView record.  Try the miscellaneous debug record.
+    if (misc_record_) {
+      const MDImageDebugMisc* misc_record =
+          reinterpret_cast<const MDImageDebugMisc*>(&(*misc_record_)[0]);
+      if (!misc_record->unicode) {
+        // If it's not Unicode, just stuff it into the string.  It's unclear
+        // if misc_record->data is 0-terminated, so use an explicit size.
+        file = string(
+            reinterpret_cast<const char*>(misc_record->data),
+            module_.misc_record.data_size - MDImageDebugMisc_minsize);
+      } else {
+        // There's a misc_record but it encodes the debug filename in UTF-16.
+        // (Actually, because miscellaneous records are so old, it's probably
+        // UCS-2.)  Convert it to UTF-8 for congruity with the other strings
+        // that this method (and all other methods in the Minidump family)
+        // return.
+
+        size_t bytes =
+            module_.misc_record.data_size - MDImageDebugMisc_minsize;
+        if (bytes % 2 == 0) {
+          size_t utf16_words = bytes / 2;
+
+          // UTF16ToUTF8 expects a vector<uint16_t>, so create a temporary one
+          // and copy the UTF-16 data into it.
+          vector<uint16_t> string_utf16(utf16_words);
+          if (utf16_words)
+            memcpy(&string_utf16[0], &misc_record->data, bytes);
+
+          // GetMiscRecord already byte-swapped the data[] field if it contains
+          // UTF-16, so pass false as the swap argument.
+          scoped_ptr<string> new_file(UTF16ToUTF8(string_utf16, false));
+          if (new_file.get() != nullptr) {
+            file = *new_file;
+          }
+        }
+      }
+    }
+  }
+
+  // Relatively common case
+  BPLOG_IF(INFO, file.empty()) << "MinidumpModule could not determine "
+                                  "debug_file for " << *name_;
+
+  return file;
+}
+
+static string guid_and_age_to_debug_id(const MDGUID& guid,
+                                       uint32_t age) {
+  char identifier_string[41];
+  snprintf(identifier_string, sizeof(identifier_string),
+           "%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X%x",
+           guid.data1,
+           guid.data2,
+           guid.data3,
+           guid.data4[0],
+           guid.data4[1],
+           guid.data4[2],
+           guid.data4[3],
+           guid.data4[4],
+           guid.data4[5],
+           guid.data4[6],
+           guid.data4[7],
+           age);
+  return identifier_string;
+}
+
+string MinidumpModule::debug_identifier() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for debug_identifier";
+    return "";
+  }
+
+  if (!has_debug_info_)
+    return "";
+
+  string identifier;
+
+  // Use the CodeView record if present.
+  if (cv_record_) {
+    if (cv_record_signature_ == MD_CVINFOPDB70_SIGNATURE) {
+      // It's actually an MDCVInfoPDB70 structure.
+      const MDCVInfoPDB70* cv_record_70 =
+          reinterpret_cast<const MDCVInfoPDB70*>(&(*cv_record_)[0]);
+      assert(cv_record_70->cv_signature == MD_CVINFOPDB70_SIGNATURE);
+
+      // Use the same format that the MS symbol server uses in filesystem
+      // hierarchies.
+      identifier = guid_and_age_to_debug_id(cv_record_70->signature,
+                                            cv_record_70->age);
+    } else if (cv_record_signature_ == MD_CVINFOPDB20_SIGNATURE) {
+      // It's actually an MDCVInfoPDB20 structure.
+      const MDCVInfoPDB20* cv_record_20 =
+          reinterpret_cast<const MDCVInfoPDB20*>(&(*cv_record_)[0]);
+      assert(cv_record_20->cv_header.signature == MD_CVINFOPDB20_SIGNATURE);
+
+      // Use the same format that the MS symbol server uses in filesystem
+      // hierarchies.
+      char identifier_string[17];
+      snprintf(identifier_string, sizeof(identifier_string),
+               "%08X%x", cv_record_20->signature, cv_record_20->age);
+      identifier = identifier_string;
+    } else if (cv_record_signature_ == MD_CVINFOELF_SIGNATURE) {
+      // It's actually an MDCVInfoELF structure.
+      const MDCVInfoELF* cv_record_elf =
+          reinterpret_cast<const MDCVInfoELF*>(&(*cv_record_)[0]);
+      assert(cv_record_elf->cv_signature == MD_CVINFOELF_SIGNATURE);
+
+      // For backwards-compatibility, stuff as many bytes as will fit into
+      // a MDGUID and use the MS symbol server format as MDCVInfoPDB70 does
+      // with age = 0. Historically Breakpad would do this during dump
+      // writing to fit the build id data into a MDCVInfoPDB70 struct.
+      // The full build id is available by calling code_identifier.
+      MDGUID guid = {0};
+      memcpy(&guid, &cv_record_elf->build_id,
+             std::min(cv_record_->size() - MDCVInfoELF_minsize,
+                      sizeof(MDGUID)));
+      identifier = guid_and_age_to_debug_id(guid, 0);
+    }
+  }
+
+  // TODO(mmentovai): if there's no usable CodeView record, there might be a
+  // miscellaneous debug record.  It only carries a filename, though, and no
+  // identifier.  I'm not sure what the right thing to do for the identifier
+  // is in that case, but I don't expect to find many modules without a
+  // CodeView record (or some other Breakpad extension structure in place of
+  // a CodeView record).  Treat it as an error (empty identifier) for now.
+
+  // TODO(mmentovai): on the Mac, provide fallbacks as in code_identifier().
+
+  // Relatively common case
+  BPLOG_IF(INFO, identifier.empty()) << "MinidumpModule could not determine "
+                                        "debug_identifier for " << *name_;
+
+  return identifier;
+}
+
+
+string MinidumpModule::version() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for version";
+    return "";
+  }
+
+  string version;
+
+  if (module_.version_info.signature == MD_VSFIXEDFILEINFO_SIGNATURE &&
+      module_.version_info.struct_version & MD_VSFIXEDFILEINFO_VERSION) {
+    char version_string[24];
+    snprintf(version_string, sizeof(version_string), "%u.%u.%u.%u",
+             module_.version_info.file_version_hi >> 16,
+             module_.version_info.file_version_hi & 0xffff,
+             module_.version_info.file_version_lo >> 16,
+             module_.version_info.file_version_lo & 0xffff);
+    version = version_string;
+  }
+
+  // TODO(mmentovai): possibly support other struct types in place of
+  // the one used with MD_VSFIXEDFILEINFO_SIGNATURE.  We can possibly use
+  // a different structure that better represents versioning facilities on
+  // Mac OS X and Linux, instead of forcing them to adhere to the dotted
+  // quad of 16-bit ints that Windows uses.
+
+  BPLOG_IF(INFO, version.empty()) << "MinidumpModule could not determine "
+                                     "version for " << *name_;
+
+  return version;
+}
+
+
+CodeModule* MinidumpModule::Copy() const {
+  return new BasicCodeModule(this);
+}
+
+
+uint64_t MinidumpModule::shrink_down_delta() const {
+  return 0;
+}
+
+void MinidumpModule::SetShrinkDownDelta(uint64_t shrink_down_delta) {
+  // Not implemented
+  assert(false);
+}
+
+
+const uint8_t* MinidumpModule::GetCVRecord(uint32_t* size) {
+  if (!module_valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for GetCVRecord";
+    return NULL;
+  }
+
+  if (!cv_record_) {
+    // This just guards against 0-sized CodeView records; more specific checks
+    // are used when the signature is checked against various structure types.
+    if (module_.cv_record.data_size == 0) {
+      return NULL;
+    }
+
+    if (!minidump_->SeekSet(module_.cv_record.rva)) {
+      BPLOG(ERROR) << "MinidumpModule could not seek to CodeView record";
+      return NULL;
+    }
+
+    if (module_.cv_record.data_size > max_cv_bytes_) {
+      BPLOG(ERROR) << "MinidumpModule CodeView record size " <<
+                      module_.cv_record.data_size << " exceeds maximum " <<
+                      max_cv_bytes_;
+      return NULL;
+    }
+
+    // Allocating something that will be accessed as MDCVInfoPDB70 or
+    // MDCVInfoPDB20 but is allocated as uint8_t[] can cause alignment
+    // problems.  x86 and ppc are able to cope, though.  This allocation
+    // style is needed because the MDCVInfoPDB70 or MDCVInfoPDB20 are
+    // variable-sized due to their pdb_file_name fields; these structures
+    // are not MDCVInfoPDB70_minsize or MDCVInfoPDB20_minsize and treating
+    // them as such would result in incomplete structures or overruns.
+    scoped_ptr< vector<uint8_t> > cv_record(
+        new vector<uint8_t>(module_.cv_record.data_size));
+
+    if (!minidump_->ReadBytes(&(*cv_record)[0], module_.cv_record.data_size)) {
+      BPLOG(ERROR) << "MinidumpModule could not read CodeView record";
+      return NULL;
+    }
+
+    uint32_t signature = MD_CVINFOUNKNOWN_SIGNATURE;
+    if (module_.cv_record.data_size > sizeof(signature)) {
+      MDCVInfoPDB70* cv_record_signature =
+          reinterpret_cast<MDCVInfoPDB70*>(&(*cv_record)[0]);
+      signature = cv_record_signature->cv_signature;
+      if (minidump_->swap())
+        Swap(&signature);
+    }
+
+    if (signature == MD_CVINFOPDB70_SIGNATURE) {
+      // Now that the structure type is known, recheck the size,
+      // ensuring at least one byte for the null terminator.
+      if (MDCVInfoPDB70_minsize + 1 > module_.cv_record.data_size) {
+        BPLOG(ERROR) << "MinidumpModule CodeView7 record size mismatch, " <<
+                        MDCVInfoPDB70_minsize << " > " <<
+                        module_.cv_record.data_size;
+        return NULL;
+      }
+
+      if (minidump_->swap()) {
+        MDCVInfoPDB70* cv_record_70 =
+            reinterpret_cast<MDCVInfoPDB70*>(&(*cv_record)[0]);
+        Swap(&cv_record_70->cv_signature);
+        Swap(&cv_record_70->signature);
+        Swap(&cv_record_70->age);
+        // Don't swap cv_record_70.pdb_file_name because it's an array of 8-bit
+        // quantities.  (It's a path, is it UTF-8?)
+      }
+
+      // The last field of either structure is null-terminated 8-bit character
+      // data.  Ensure that it's null-terminated.
+      if ((*cv_record)[module_.cv_record.data_size - 1] != '\0') {
+        BPLOG(ERROR) << "MinidumpModule CodeView7 record string is not "
+                        "0-terminated";
+        return NULL;
+      }
+    } else if (signature == MD_CVINFOPDB20_SIGNATURE) {
+      // Now that the structure type is known, recheck the size,
+      // ensuring at least one byte for the null terminator.
+      if (MDCVInfoPDB20_minsize + 1 > module_.cv_record.data_size) {
+        BPLOG(ERROR) << "MinidumpModule CodeView2 record size mismatch, " <<
+                        MDCVInfoPDB20_minsize << " > " <<
+                        module_.cv_record.data_size;
+        return NULL;
+      }
+      if (minidump_->swap()) {
+        MDCVInfoPDB20* cv_record_20 =
+            reinterpret_cast<MDCVInfoPDB20*>(&(*cv_record)[0]);
+        Swap(&cv_record_20->cv_header.signature);
+        Swap(&cv_record_20->cv_header.offset);
+        Swap(&cv_record_20->signature);
+        Swap(&cv_record_20->age);
+        // Don't swap cv_record_20.pdb_file_name because it's an array of 8-bit
+        // quantities.  (It's a path, is it UTF-8?)
+      }
+
+      // The last field of either structure is null-terminated 8-bit character
+      // data.  Ensure that it's null-terminated.
+      if ((*cv_record)[module_.cv_record.data_size - 1] != '\0') {
+        BPLOG(ERROR) << "MindumpModule CodeView2 record string is not "
+                        "0-terminated";
+        return NULL;
+      }
+    } else if (signature == MD_CVINFOELF_SIGNATURE) {
+      // Now that the structure type is known, recheck the size.
+      if (MDCVInfoELF_minsize > module_.cv_record.data_size) {
+        BPLOG(ERROR) << "MinidumpModule CodeViewELF record size mismatch, " <<
+                        MDCVInfoELF_minsize << " > " <<
+                        module_.cv_record.data_size;
+        return NULL;
+      }
+      if (minidump_->swap()) {
+        MDCVInfoELF* cv_record_elf =
+            reinterpret_cast<MDCVInfoELF*>(&(*cv_record)[0]);
+        Swap(&cv_record_elf->cv_signature);
+      }
+    }
+
+    // If the signature doesn't match something above, it's not something
+    // that Breakpad can presently handle directly.  Because some modules in
+    // the wild contain such CodeView records as MD_CVINFOCV50_SIGNATURE,
+    // don't bail out here - allow the data to be returned to the user,
+    // although byte-swapping can't be done.
+
+    // Store the vector type because that's how storage was allocated, but
+    // return it casted to uint8_t*.
+    cv_record_ = cv_record.release();
+    cv_record_signature_ = signature;
+  }
+
+  if (size)
+    *size = module_.cv_record.data_size;
+
+  return &(*cv_record_)[0];
+}
+
+
+const MDImageDebugMisc* MinidumpModule::GetMiscRecord(uint32_t* size) {
+  if (!module_valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModule for GetMiscRecord";
+    return NULL;
+  }
+
+  if (!misc_record_) {
+    if (module_.misc_record.data_size == 0) {
+      return NULL;
+    }
+
+    if (MDImageDebugMisc_minsize > module_.misc_record.data_size) {
+      BPLOG(ERROR) << "MinidumpModule miscellaneous debugging record "
+                      "size mismatch, " << MDImageDebugMisc_minsize << " > " <<
+                      module_.misc_record.data_size;
+      return NULL;
+    }
+
+    if (!minidump_->SeekSet(module_.misc_record.rva)) {
+      BPLOG(ERROR) << "MinidumpModule could not seek to miscellaneous "
+                      "debugging record";
+      return NULL;
+    }
+
+    if (module_.misc_record.data_size > max_misc_bytes_) {
+      BPLOG(ERROR) << "MinidumpModule miscellaneous debugging record size " <<
+                      module_.misc_record.data_size << " exceeds maximum " <<
+                      max_misc_bytes_;
+      return NULL;
+    }
+
+    // Allocating something that will be accessed as MDImageDebugMisc but
+    // is allocated as uint8_t[] can cause alignment problems.  x86 and
+    // ppc are able to cope, though.  This allocation style is needed
+    // because the MDImageDebugMisc is variable-sized due to its data field;
+    // this structure is not MDImageDebugMisc_minsize and treating it as such
+    // would result in an incomplete structure or an overrun.
+    scoped_ptr< vector<uint8_t> > misc_record_mem(
+        new vector<uint8_t>(module_.misc_record.data_size));
+    MDImageDebugMisc* misc_record =
+        reinterpret_cast<MDImageDebugMisc*>(&(*misc_record_mem)[0]);
+
+    if (!minidump_->ReadBytes(misc_record, module_.misc_record.data_size)) {
+      BPLOG(ERROR) << "MinidumpModule could not read miscellaneous debugging "
+                      "record";
+      return NULL;
+    }
+
+    if (minidump_->swap()) {
+      Swap(&misc_record->data_type);
+      Swap(&misc_record->length);
+      // Don't swap misc_record.unicode because it's an 8-bit quantity.
+      // Don't swap the reserved fields for the same reason, and because
+      // they don't contain any valid data.
+      if (misc_record->unicode) {
+        // There is a potential alignment problem, but shouldn't be a problem
+        // in practice due to the layout of MDImageDebugMisc.
+        uint16_t* data16 = reinterpret_cast<uint16_t*>(&(misc_record->data));
+        size_t dataBytes = module_.misc_record.data_size -
+                           MDImageDebugMisc_minsize;
+        Swap(data16, dataBytes);
+      }
+    }
+
+    if (module_.misc_record.data_size != misc_record->length) {
+      BPLOG(ERROR) << "MinidumpModule miscellaneous debugging record data "
+                      "size mismatch, " << module_.misc_record.data_size <<
+                      " != " << misc_record->length;
+      return NULL;
+    }
+
+    // Store the vector type because that's how storage was allocated, but
+    // return it casted to MDImageDebugMisc*.
+    misc_record_ = misc_record_mem.release();
+  }
+
+  if (size)
+    *size = module_.misc_record.data_size;
+
+  return reinterpret_cast<MDImageDebugMisc*>(&(*misc_record_)[0]);
+}
+
+
+void MinidumpModule::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpModule cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawModule\n");
+  printf("  base_of_image                   = 0x%" PRIx64 "\n",
+         module_.base_of_image);
+  printf("  size_of_image                   = 0x%x\n",
+         module_.size_of_image);
+  printf("  checksum                        = 0x%x\n",
+         module_.checksum);
+  printf("  time_date_stamp                 = 0x%x %s\n",
+         module_.time_date_stamp,
+         TimeTToUTCString(module_.time_date_stamp).c_str());
+  printf("  module_name_rva                 = 0x%x\n",
+         module_.module_name_rva);
+  printf("  version_info.signature          = 0x%x\n",
+         module_.version_info.signature);
+  printf("  version_info.struct_version     = 0x%x\n",
+         module_.version_info.struct_version);
+  printf("  version_info.file_version       = 0x%x:0x%x\n",
+         module_.version_info.file_version_hi,
+         module_.version_info.file_version_lo);
+  printf("  version_info.product_version    = 0x%x:0x%x\n",
+         module_.version_info.product_version_hi,
+         module_.version_info.product_version_lo);
+  printf("  version_info.file_flags_mask    = 0x%x\n",
+         module_.version_info.file_flags_mask);
+  printf("  version_info.file_flags         = 0x%x\n",
+         module_.version_info.file_flags);
+  printf("  version_info.file_os            = 0x%x\n",
+         module_.version_info.file_os);
+  printf("  version_info.file_type          = 0x%x\n",
+         module_.version_info.file_type);
+  printf("  version_info.file_subtype       = 0x%x\n",
+         module_.version_info.file_subtype);
+  printf("  version_info.file_date          = 0x%x:0x%x\n",
+         module_.version_info.file_date_hi,
+         module_.version_info.file_date_lo);
+  printf("  cv_record.data_size             = %d\n",
+         module_.cv_record.data_size);
+  printf("  cv_record.rva                   = 0x%x\n",
+         module_.cv_record.rva);
+  printf("  misc_record.data_size           = %d\n",
+         module_.misc_record.data_size);
+  printf("  misc_record.rva                 = 0x%x\n",
+         module_.misc_record.rva);
+
+  printf("  (code_file)                     = \"%s\"\n", code_file().c_str());
+  printf("  (code_identifier)               = \"%s\"\n",
+         code_identifier().c_str());
+
+  uint32_t cv_record_size;
+  const uint8_t* cv_record = GetCVRecord(&cv_record_size);
+  if (cv_record) {
+    if (cv_record_signature_ == MD_CVINFOPDB70_SIGNATURE) {
+      const MDCVInfoPDB70* cv_record_70 =
+          reinterpret_cast<const MDCVInfoPDB70*>(cv_record);
+      assert(cv_record_70->cv_signature == MD_CVINFOPDB70_SIGNATURE);
+
+      printf("  (cv_record).cv_signature        = 0x%x\n",
+             cv_record_70->cv_signature);
+      printf("  (cv_record).signature           = %s\n",
+             MDGUIDToString(cv_record_70->signature).c_str());
+      printf("  (cv_record).age                 = %d\n",
+             cv_record_70->age);
+      printf("  (cv_record).pdb_file_name       = \"%s\"\n",
+             cv_record_70->pdb_file_name);
+    } else if (cv_record_signature_ == MD_CVINFOPDB20_SIGNATURE) {
+      const MDCVInfoPDB20* cv_record_20 =
+          reinterpret_cast<const MDCVInfoPDB20*>(cv_record);
+      assert(cv_record_20->cv_header.signature == MD_CVINFOPDB20_SIGNATURE);
+
+      printf("  (cv_record).cv_header.signature = 0x%x\n",
+             cv_record_20->cv_header.signature);
+      printf("  (cv_record).cv_header.offset    = 0x%x\n",
+             cv_record_20->cv_header.offset);
+      printf("  (cv_record).signature           = 0x%x %s\n",
+             cv_record_20->signature,
+             TimeTToUTCString(cv_record_20->signature).c_str());
+      printf("  (cv_record).age                 = %d\n",
+             cv_record_20->age);
+      printf("  (cv_record).pdb_file_name       = \"%s\"\n",
+             cv_record_20->pdb_file_name);
+    } else if (cv_record_signature_ == MD_CVINFOELF_SIGNATURE) {
+      const MDCVInfoELF* cv_record_elf =
+          reinterpret_cast<const MDCVInfoELF*>(cv_record);
+      assert(cv_record_elf->cv_signature == MD_CVINFOELF_SIGNATURE);
+
+      printf("  (cv_record).cv_signature        = 0x%x\n",
+             cv_record_elf->cv_signature);
+      printf("  (cv_record).build_id            = ");
+      for (unsigned int build_id_index = 0;
+           build_id_index < (cv_record_size - MDCVInfoELF_minsize);
+           ++build_id_index) {
+        printf("%02x", cv_record_elf->build_id[build_id_index]);
+      }
+      printf("\n");
+    } else {
+      printf("  (cv_record)                     = ");
+      for (unsigned int cv_byte_index = 0;
+           cv_byte_index < cv_record_size;
+           ++cv_byte_index) {
+        printf("%02x", cv_record[cv_byte_index]);
+      }
+      printf("\n");
+    }
+  } else {
+    printf("  (cv_record)                     = (null)\n");
+  }
+
+  const MDImageDebugMisc* misc_record = GetMiscRecord(NULL);
+  if (misc_record) {
+    printf("  (misc_record).data_type         = 0x%x\n",
+           misc_record->data_type);
+    printf("  (misc_record).length            = 0x%x\n",
+           misc_record->length);
+    printf("  (misc_record).unicode           = %d\n",
+           misc_record->unicode);
+    if (misc_record->unicode) {
+      string misc_record_data_utf8;
+      ConvertUTF16BufferToUTF8String(
+          reinterpret_cast<const uint16_t*>(misc_record->data),
+          misc_record->length - offsetof(MDImageDebugMisc, data),
+          &misc_record_data_utf8,
+          false);  // already swapped
+      printf("  (misc_record).data              = \"%s\"\n",
+             misc_record_data_utf8.c_str());
+    } else {
+      printf("  (misc_record).data              = \"%s\"\n",
+             misc_record->data);
+    }
+  } else {
+    printf("  (misc_record)                   = (null)\n");
+  }
+
+  printf("  (debug_file)                    = \"%s\"\n", debug_file().c_str());
+  printf("  (debug_identifier)              = \"%s\"\n",
+         debug_identifier().c_str());
+  printf("  (version)                       = \"%s\"\n", version().c_str());
+  printf("\n");
+}
+
+
+//
+// MinidumpModuleList
+//
+
+
+uint32_t MinidumpModuleList::max_modules_ = 2048;
+
+
+MinidumpModuleList::MinidumpModuleList(Minidump* minidump)
+    : MinidumpStream(minidump),
+      range_map_(new RangeMap<uint64_t, unsigned int>()),
+      modules_(NULL),
+      module_count_(0) {
+  MDOSPlatform platform;
+  if (minidump_->GetPlatform(&platform) &&
+      (platform == MD_OS_ANDROID || platform == MD_OS_LINUX)) {
+    range_map_->SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  }
+}
+
+
+MinidumpModuleList::~MinidumpModuleList() {
+  delete range_map_;
+  delete modules_;
+}
+
+
+bool MinidumpModuleList::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  range_map_->Clear();
+  delete modules_;
+  modules_ = NULL;
+  module_count_ = 0;
+
+  valid_ = false;
+
+  uint32_t module_count;
+  if (expected_size < sizeof(module_count)) {
+    BPLOG(ERROR) << "MinidumpModuleList count size mismatch, " <<
+                    expected_size << " < " << sizeof(module_count);
+    return false;
+  }
+  if (!minidump_->ReadBytes(&module_count, sizeof(module_count))) {
+    BPLOG(ERROR) << "MinidumpModuleList could not read module count";
+    return false;
+  }
+
+  if (minidump_->swap())
+    Swap(&module_count);
+
+  if (module_count > numeric_limits<uint32_t>::max() / MD_MODULE_SIZE) {
+    BPLOG(ERROR) << "MinidumpModuleList module count " << module_count <<
+                    " would cause multiplication overflow";
+    return false;
+  }
+
+  if (expected_size != sizeof(module_count) +
+                       module_count * MD_MODULE_SIZE) {
+    // may be padded with 4 bytes on 64bit ABIs for alignment
+    if (expected_size == sizeof(module_count) + 4 +
+                         module_count * MD_MODULE_SIZE) {
+      uint32_t useless;
+      if (!minidump_->ReadBytes(&useless, 4)) {
+        BPLOG(ERROR) << "MinidumpModuleList cannot read modulelist padded "
+                        "bytes";
+        return false;
+      }
+    } else {
+      BPLOG(ERROR) << "MinidumpModuleList size mismatch, " << expected_size <<
+                      " != " << sizeof(module_count) +
+                      module_count * MD_MODULE_SIZE;
+      return false;
+    }
+  }
+
+  if (module_count > max_modules_) {
+    BPLOG(ERROR) << "MinidumpModuleList count " << module_count <<
+                    " exceeds maximum " << max_modules_;
+    return false;
+  }
+
+  if (module_count != 0) {
+    scoped_ptr<MinidumpModules> modules(
+        new MinidumpModules(module_count, MinidumpModule(minidump_)));
+
+    for (uint32_t module_index = 0; module_index < module_count;
+         ++module_index) {
+      MinidumpModule* module = &(*modules)[module_index];
+
+      // Assume that the file offset is correct after the last read.
+      if (!module->Read()) {
+        BPLOG(ERROR) << "MinidumpModuleList could not read module " <<
+                        module_index << "/" << module_count;
+        return false;
+      }
+    }
+
+    // Loop through the module list once more to read additional data and
+    // build the range map.  This is done in a second pass because
+    // MinidumpModule::ReadAuxiliaryData seeks around, and if it were
+    // included in the loop above, additional seeks would be needed where
+    // none are now to read contiguous data.
+    uint64_t last_end_address = 0;
+    for (uint32_t module_index = 0; module_index < module_count;
+         ++module_index) {
+      MinidumpModule& module = (*modules)[module_index];
+
+      // ReadAuxiliaryData fails if any data that the module indicates should
+      // exist is missing, but we treat some such cases as valid anyway.  See
+      // issue #222: if a debugging record is of a format that's too large to
+      // handle, it shouldn't render the entire dump invalid.  Check module
+      // validity before giving up.
+      if (!module.ReadAuxiliaryData() && !module.valid()) {
+        BPLOG(ERROR) << "MinidumpModuleList could not read required module "
+                        "auxiliary data for module " <<
+                        module_index << "/" << module_count;
+        return false;
+      }
+
+      // It is safe to use module->code_file() after successfully calling
+      // module->ReadAuxiliaryData or noting that the module is valid.
+
+      uint64_t base_address = module.base_address();
+      uint64_t module_size = module.size();
+      if (base_address == static_cast<uint64_t>(-1)) {
+        BPLOG(ERROR) << "MinidumpModuleList found bad base address for module "
+                     << module_index << "/" << module_count << ", "
+                     << module.code_file();
+        return false;
+      }
+
+      // Some minidumps have additional modules in the list that are duplicates.
+      // Ignore them. See https://crbug.com/838322
+      uint32_t existing_module_index;
+      if (range_map_->RetrieveRange(base_address, &existing_module_index,
+                                    nullptr, nullptr, nullptr) &&
+          existing_module_index < module_count) {
+        const MinidumpModule& existing_module =
+            (*modules)[existing_module_index];
+        if (existing_module.base_address() == module.base_address() &&
+            existing_module.size() == module.size() &&
+            existing_module.code_file() == module.code_file() &&
+            existing_module.code_identifier() == module.code_identifier()) {
+          continue;
+        }
+      }
+
+      const bool is_android = minidump_->IsAndroid();
+      if (!StoreRange(module, base_address, module_index, module_count,
+                      is_android)) {
+        if (!is_android || base_address >= last_end_address) {
+          BPLOG(ERROR) << "MinidumpModuleList could not store module "
+                       << module_index << "/" << module_count << ", "
+                       << module.code_file() << ", " << HexString(base_address)
+                       << "+" << HexString(module_size);
+          return false;
+        }
+
+        // If failed due to apparent range overlap the cause may be the client
+        // correction applied for Android packed relocations.  If this is the
+        // case, back out the client correction and retry.
+        assert(is_android);
+        module_size -= last_end_address - base_address;
+        base_address = last_end_address;
+        if (!range_map_->StoreRange(base_address, module_size, module_index)) {
+          BPLOG(ERROR) << "MinidumpModuleList could not store module "
+                       << module_index << "/" << module_count << ", "
+                       << module.code_file() << ", " << HexString(base_address)
+                       << "+" << HexString(module_size) << ", after adjusting";
+          return false;
+        }
+      }
+      last_end_address = base_address + module_size;
+    }
+
+    modules_ = modules.release();
+  }
+
+  module_count_ = module_count;
+
+  valid_ = true;
+  return true;
+}
+
+bool MinidumpModuleList::StoreRange(const MinidumpModule& module,
+                                    uint64_t base_address,
+                                    uint32_t module_index,
+                                    uint32_t module_count,
+                                    bool is_android) {
+  if (range_map_->StoreRange(base_address, module.size(), module_index))
+    return true;
+
+  // Android's shared memory implementation /dev/ashmem can contain duplicate
+  // entries for JITted code, so ignore these.
+  // TODO(wfh): Remove this code when Android is fixed.
+  // See https://crbug.com/439531
+  if (is_android && IsDevAshmem(module.code_file())) {
+    BPLOG(INFO) << "MinidumpModuleList ignoring overlapping module "
+                << module_index << "/" << module_count << ", "
+                << module.code_file() << ", " << HexString(base_address) << "+"
+                << HexString(module.size());
+    return true;
+  }
+
+  return false;
+}
+
+const MinidumpModule* MinidumpModuleList::GetModuleForAddress(
+    uint64_t address) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModuleList for GetModuleForAddress";
+    return NULL;
+  }
+
+  unsigned int module_index;
+  if (!range_map_->RetrieveRange(address, &module_index, NULL /* base */,
+                                 NULL /* delta */, NULL /* size */)) {
+    BPLOG(INFO) << "MinidumpModuleList has no module at " <<
+                   HexString(address);
+    return NULL;
+  }
+
+  return GetModuleAtIndex(module_index);
+}
+
+
+const MinidumpModule* MinidumpModuleList::GetMainModule() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModuleList for GetMainModule";
+    return NULL;
+  }
+
+  // The main code module is the first one present in a minidump file's
+  // MDRawModuleList.
+  return GetModuleAtIndex(0);
+}
+
+
+const MinidumpModule* MinidumpModuleList::GetModuleAtSequence(
+    unsigned int sequence) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModuleList for GetModuleAtSequence";
+    return NULL;
+  }
+
+  if (sequence >= module_count_) {
+    BPLOG(ERROR) << "MinidumpModuleList sequence out of range: " <<
+                    sequence << "/" << module_count_;
+    return NULL;
+  }
+
+  unsigned int module_index;
+  if (!range_map_->RetrieveRangeAtIndex(sequence, &module_index,
+                                        NULL /* base */, NULL /* delta */,
+                                        NULL /* size */)) {
+    BPLOG(ERROR) << "MinidumpModuleList has no module at sequence " << sequence;
+    return NULL;
+  }
+
+  return GetModuleAtIndex(module_index);
+}
+
+
+const MinidumpModule* MinidumpModuleList::GetModuleAtIndex(
+    unsigned int index) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpModuleList for GetModuleAtIndex";
+    return NULL;
+  }
+
+  if (index >= module_count_) {
+    BPLOG(ERROR) << "MinidumpModuleList index out of range: " <<
+                    index << "/" << module_count_;
+    return NULL;
+  }
+
+  return &(*modules_)[index];
+}
+
+
+const CodeModules* MinidumpModuleList::Copy() const {
+  return new BasicCodeModules(this, range_map_->GetMergeStrategy());
+}
+
+vector<linked_ptr<const CodeModule> >
+MinidumpModuleList::GetShrunkRangeModules() const {
+  return vector<linked_ptr<const CodeModule> >();
+}
+
+void MinidumpModuleList::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpModuleList cannot print invalid data";
+    return;
+  }
+
+  printf("MinidumpModuleList\n");
+  printf("  module_count = %d\n", module_count_);
+  printf("\n");
+
+  for (unsigned int module_index = 0;
+       module_index < module_count_;
+       ++module_index) {
+    printf("module[%d]\n", module_index);
+
+    (*modules_)[module_index].Print();
+  }
+}
+
+
+//
+// MinidumpMemoryList
+//
+
+
+uint32_t MinidumpMemoryList::max_regions_ = 4096;
+
+
+MinidumpMemoryList::MinidumpMemoryList(Minidump* minidump)
+    : MinidumpStream(minidump),
+      range_map_(new RangeMap<uint64_t, unsigned int>()),
+      descriptors_(NULL),
+      regions_(NULL),
+      region_count_(0) {
+}
+
+
+MinidumpMemoryList::~MinidumpMemoryList() {
+  delete range_map_;
+  delete descriptors_;
+  delete regions_;
+}
+
+
+bool MinidumpMemoryList::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  delete descriptors_;
+  descriptors_ = NULL;
+  delete regions_;
+  regions_ = NULL;
+  range_map_->Clear();
+  region_count_ = 0;
+
+  valid_ = false;
+
+  uint32_t region_count;
+  if (expected_size < sizeof(region_count)) {
+    BPLOG(ERROR) << "MinidumpMemoryList count size mismatch, " <<
+                    expected_size << " < " << sizeof(region_count);
+    return false;
+  }
+  if (!minidump_->ReadBytes(&region_count, sizeof(region_count))) {
+    BPLOG(ERROR) << "MinidumpMemoryList could not read memory region count";
+    return false;
+  }
+
+  if (minidump_->swap())
+    Swap(&region_count);
+
+  if (region_count >
+          numeric_limits<uint32_t>::max() / sizeof(MDMemoryDescriptor)) {
+    BPLOG(ERROR) << "MinidumpMemoryList region count " << region_count <<
+                    " would cause multiplication overflow";
+    return false;
+  }
+
+  if (expected_size != sizeof(region_count) +
+                       region_count * sizeof(MDMemoryDescriptor)) {
+    // may be padded with 4 bytes on 64bit ABIs for alignment
+    if (expected_size == sizeof(region_count) + 4 +
+                         region_count * sizeof(MDMemoryDescriptor)) {
+      uint32_t useless;
+      if (!minidump_->ReadBytes(&useless, 4)) {
+        BPLOG(ERROR) << "MinidumpMemoryList cannot read memorylist padded "
+                        "bytes";
+        return false;
+      }
+    } else {
+      BPLOG(ERROR) << "MinidumpMemoryList size mismatch, " << expected_size <<
+                      " != " << sizeof(region_count) +
+                      region_count * sizeof(MDMemoryDescriptor);
+      return false;
+    }
+  }
+
+  if (region_count > max_regions_) {
+    BPLOG(ERROR) << "MinidumpMemoryList count " << region_count <<
+                    " exceeds maximum " << max_regions_;
+    return false;
+  }
+
+  if (region_count != 0) {
+    scoped_ptr<MemoryDescriptors> descriptors(
+        new MemoryDescriptors(region_count));
+
+    // Read the entire array in one fell swoop, instead of reading one entry
+    // at a time in the loop.
+    if (!minidump_->ReadBytes(&(*descriptors)[0],
+                              sizeof(MDMemoryDescriptor) * region_count)) {
+      BPLOG(ERROR) << "MinidumpMemoryList could not read memory region list";
+      return false;
+    }
+
+    scoped_ptr<MemoryRegions> regions(
+        new MemoryRegions(region_count, MinidumpMemoryRegion(minidump_)));
+
+    for (unsigned int region_index = 0;
+         region_index < region_count;
+         ++region_index) {
+      MDMemoryDescriptor* descriptor = &(*descriptors)[region_index];
+
+      if (minidump_->swap())
+        Swap(descriptor);
+
+      uint64_t base_address = descriptor->start_of_memory_range;
+      uint32_t region_size = descriptor->memory.data_size;
+
+      // Check for base + size overflow or undersize.
+      if (region_size == 0 ||
+          region_size > numeric_limits<uint64_t>::max() - base_address) {
+        BPLOG(ERROR) << "MinidumpMemoryList has a memory region problem, " <<
+                        " region " << region_index << "/" << region_count <<
+                        ", " << HexString(base_address) << "+" <<
+                        HexString(region_size);
+        return false;
+      }
+
+      if (!range_map_->StoreRange(base_address, region_size, region_index)) {
+        BPLOG(ERROR) << "MinidumpMemoryList could not store memory region " <<
+                        region_index << "/" << region_count << ", " <<
+                        HexString(base_address) << "+" <<
+                        HexString(region_size);
+        return false;
+      }
+
+      (*regions)[region_index].SetDescriptor(descriptor);
+    }
+
+    descriptors_ = descriptors.release();
+    regions_ = regions.release();
+  }
+
+  region_count_ = region_count;
+
+  valid_ = true;
+  return true;
+}
+
+
+MinidumpMemoryRegion* MinidumpMemoryList::GetMemoryRegionAtIndex(
+      unsigned int index) {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryList for GetMemoryRegionAtIndex";
+    return NULL;
+  }
+
+  if (index >= region_count_) {
+    BPLOG(ERROR) << "MinidumpMemoryList index out of range: " <<
+                    index << "/" << region_count_;
+    return NULL;
+  }
+
+  return &(*regions_)[index];
+}
+
+
+MinidumpMemoryRegion* MinidumpMemoryList::GetMemoryRegionForAddress(
+    uint64_t address) {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryList for GetMemoryRegionForAddress";
+    return NULL;
+  }
+
+  unsigned int region_index;
+  if (!range_map_->RetrieveRange(address, &region_index, NULL /* base */,
+                                 NULL /* delta */, NULL /* size */)) {
+    BPLOG(INFO) << "MinidumpMemoryList has no memory region at " <<
+                   HexString(address);
+    return NULL;
+  }
+
+  return GetMemoryRegionAtIndex(region_index);
+}
+
+
+void MinidumpMemoryList::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpMemoryList cannot print invalid data";
+    return;
+  }
+
+  printf("MinidumpMemoryList\n");
+  printf("  region_count = %d\n", region_count_);
+  printf("\n");
+
+  for (unsigned int region_index = 0;
+       region_index < region_count_;
+       ++region_index) {
+    MDMemoryDescriptor* descriptor = &(*descriptors_)[region_index];
+    printf("region[%d]\n", region_index);
+    printf("MDMemoryDescriptor\n");
+    printf("  start_of_memory_range = 0x%" PRIx64 "\n",
+           descriptor->start_of_memory_range);
+    printf("  memory.data_size      = 0x%x\n", descriptor->memory.data_size);
+    printf("  memory.rva            = 0x%x\n", descriptor->memory.rva);
+    MinidumpMemoryRegion* region = GetMemoryRegionAtIndex(region_index);
+    if (region) {
+      printf("Memory\n");
+      region->Print();
+    } else {
+      printf("No memory\n");
+    }
+    printf("\n");
+  }
+}
+
+
+//
+// MinidumpException
+//
+
+
+MinidumpException::MinidumpException(Minidump* minidump)
+    : MinidumpStream(minidump),
+      exception_(),
+      context_(NULL) {
+}
+
+
+MinidumpException::~MinidumpException() {
+  delete context_;
+}
+
+
+bool MinidumpException::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  delete context_;
+  context_ = NULL;
+
+  valid_ = false;
+
+  if (expected_size != sizeof(exception_)) {
+    BPLOG(ERROR) << "MinidumpException size mismatch, " << expected_size <<
+                    " != " << sizeof(exception_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&exception_, sizeof(exception_))) {
+    BPLOG(ERROR) << "MinidumpException cannot read exception";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&exception_.thread_id);
+    // exception_.__align is for alignment only and does not need to be
+    // swapped.
+    Swap(&exception_.exception_record.exception_code);
+    Swap(&exception_.exception_record.exception_flags);
+    Swap(&exception_.exception_record.exception_record);
+    Swap(&exception_.exception_record.exception_address);
+    Swap(&exception_.exception_record.number_parameters);
+    // exception_.exception_record.__align is for alignment only and does not
+    // need to be swapped.
+    for (unsigned int parameter_index = 0;
+         parameter_index < MD_EXCEPTION_MAXIMUM_PARAMETERS;
+         ++parameter_index) {
+      Swap(&exception_.exception_record.exception_information[parameter_index]);
+    }
+    Swap(&exception_.thread_context);
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+bool MinidumpException::GetThreadID(uint32_t* thread_id) const {
+  BPLOG_IF(ERROR, !thread_id) << "MinidumpException::GetThreadID requires "
+                                 "|thread_id|";
+  assert(thread_id);
+  *thread_id = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpException for GetThreadID";
+    return false;
+  }
+
+  *thread_id = exception_.thread_id;
+  return true;
+}
+
+
+MinidumpContext* MinidumpException::GetContext() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpException for GetContext";
+    return NULL;
+  }
+
+  if (!context_) {
+    if (!minidump_->SeekSet(exception_.thread_context.rva)) {
+      BPLOG(ERROR) << "MinidumpException cannot seek to context";
+      return NULL;
+    }
+
+    scoped_ptr<MinidumpContext> context(new MinidumpContext(minidump_));
+
+    // Don't log as an error if we can still fall back on the thread's context
+    // (which must be possible if we got this far.)
+    if (!context->Read(exception_.thread_context.data_size)) {
+      BPLOG(INFO) << "MinidumpException cannot read context";
+      return NULL;
+    }
+
+    context_ = context.release();
+  }
+
+  return context_;
+}
+
+
+void MinidumpException::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpException cannot print invalid data";
+    return;
+  }
+
+  printf("MDException\n");
+  printf("  thread_id                                  = 0x%x\n",
+         exception_.thread_id);
+  printf("  exception_record.exception_code            = 0x%x\n",
+         exception_.exception_record.exception_code);
+  printf("  exception_record.exception_flags           = 0x%x\n",
+         exception_.exception_record.exception_flags);
+  printf("  exception_record.exception_record          = 0x%" PRIx64 "\n",
+         exception_.exception_record.exception_record);
+  printf("  exception_record.exception_address         = 0x%" PRIx64 "\n",
+         exception_.exception_record.exception_address);
+  printf("  exception_record.number_parameters         = %d\n",
+         exception_.exception_record.number_parameters);
+  for (unsigned int parameterIndex = 0;
+       parameterIndex < exception_.exception_record.number_parameters;
+       ++parameterIndex) {
+    printf("  exception_record.exception_information[%2d] = 0x%" PRIx64 "\n",
+           parameterIndex,
+           exception_.exception_record.exception_information[parameterIndex]);
+  }
+  printf("  thread_context.data_size                   = %d\n",
+         exception_.thread_context.data_size);
+  printf("  thread_context.rva                         = 0x%x\n",
+         exception_.thread_context.rva);
+  MinidumpContext* context = GetContext();
+  if (context) {
+    printf("\n");
+    context->Print();
+  } else {
+    printf("  (no context)\n");
+    printf("\n");
+  }
+}
+
+//
+// MinidumpAssertion
+//
+
+
+MinidumpAssertion::MinidumpAssertion(Minidump* minidump)
+    : MinidumpStream(minidump),
+      assertion_(),
+      expression_(),
+      function_(),
+      file_() {
+}
+
+
+MinidumpAssertion::~MinidumpAssertion() {
+}
+
+
+bool MinidumpAssertion::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  valid_ = false;
+
+  if (expected_size != sizeof(assertion_)) {
+    BPLOG(ERROR) << "MinidumpAssertion size mismatch, " << expected_size <<
+                    " != " << sizeof(assertion_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&assertion_, sizeof(assertion_))) {
+    BPLOG(ERROR) << "MinidumpAssertion cannot read assertion";
+    return false;
+  }
+
+  // Each of {expression, function, file} is a UTF-16 string,
+  // we'll convert them to UTF-8 for ease of use.
+  ConvertUTF16BufferToUTF8String(assertion_.expression,
+                                 sizeof(assertion_.expression), &expression_,
+                                 minidump_->swap());
+  ConvertUTF16BufferToUTF8String(assertion_.function,
+                                 sizeof(assertion_.function), &function_,
+                                 minidump_->swap());
+  ConvertUTF16BufferToUTF8String(assertion_.file, sizeof(assertion_.file),
+                                 &file_, minidump_->swap());
+
+  if (minidump_->swap()) {
+    Swap(&assertion_.line);
+    Swap(&assertion_.type);
+  }
+
+  valid_ = true;
+  return true;
+}
+
+void MinidumpAssertion::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpAssertion cannot print invalid data";
+    return;
+  }
+
+  printf("MDAssertion\n");
+  printf("  expression                                 = %s\n",
+         expression_.c_str());
+  printf("  function                                   = %s\n",
+         function_.c_str());
+  printf("  file                                       = %s\n",
+         file_.c_str());
+  printf("  line                                       = %u\n",
+         assertion_.line);
+  printf("  type                                       = %u\n",
+         assertion_.type);
+  printf("\n");
+}
+
+//
+// MinidumpSystemInfo
+//
+
+
+MinidumpSystemInfo::MinidumpSystemInfo(Minidump* minidump)
+    : MinidumpStream(minidump),
+      system_info_(),
+      csd_version_(NULL),
+      cpu_vendor_(NULL) {
+}
+
+
+MinidumpSystemInfo::~MinidumpSystemInfo() {
+  delete csd_version_;
+  delete cpu_vendor_;
+}
+
+
+bool MinidumpSystemInfo::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  delete csd_version_;
+  csd_version_ = NULL;
+  delete cpu_vendor_;
+  cpu_vendor_ = NULL;
+
+  valid_ = false;
+
+  if (expected_size != sizeof(system_info_)) {
+    BPLOG(ERROR) << "MinidumpSystemInfo size mismatch, " << expected_size <<
+                    " != " << sizeof(system_info_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&system_info_, sizeof(system_info_))) {
+    BPLOG(ERROR) << "MinidumpSystemInfo cannot read system info";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&system_info_.processor_architecture);
+    Swap(&system_info_.processor_level);
+    Swap(&system_info_.processor_revision);
+    // number_of_processors and product_type are 8-bit quantities and need no
+    // swapping.
+    Swap(&system_info_.major_version);
+    Swap(&system_info_.minor_version);
+    Swap(&system_info_.build_number);
+    Swap(&system_info_.platform_id);
+    Swap(&system_info_.csd_version_rva);
+    Swap(&system_info_.suite_mask);
+    // Don't swap the reserved2 field because its contents are unknown.
+
+    if (system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86 ||
+        system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86_WIN64) {
+      for (unsigned int i = 0; i < 3; ++i)
+        Swap(&system_info_.cpu.x86_cpu_info.vendor_id[i]);
+      Swap(&system_info_.cpu.x86_cpu_info.version_information);
+      Swap(&system_info_.cpu.x86_cpu_info.feature_information);
+      Swap(&system_info_.cpu.x86_cpu_info.amd_extended_cpu_features);
+    } else {
+      for (unsigned int i = 0; i < 2; ++i)
+        Swap(&system_info_.cpu.other_cpu_info.processor_features[i]);
+    }
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+string MinidumpSystemInfo::GetOS() {
+  string os;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpSystemInfo for GetOS";
+    return os;
+  }
+
+  switch (system_info_.platform_id) {
+    case MD_OS_WIN32_NT:
+    case MD_OS_WIN32_WINDOWS:
+      os = "windows";
+      break;
+
+    case MD_OS_MAC_OS_X:
+      os = "mac";
+      break;
+
+    case MD_OS_IOS:
+      os = "ios";
+      break;
+
+    case MD_OS_LINUX:
+      os = "linux";
+      break;
+
+    case MD_OS_SOLARIS:
+      os = "solaris";
+      break;
+
+    case MD_OS_ANDROID:
+      os = "android";
+      break;
+
+    case MD_OS_PS3:
+      os = "ps3";
+      break;
+
+    case MD_OS_NACL:
+      os = "nacl";
+      break;
+
+    case MD_OS_FUCHSIA:
+      os = "fuchsia";
+      break;
+
+    default:
+      BPLOG(ERROR) << "MinidumpSystemInfo unknown OS for platform " <<
+                      HexString(system_info_.platform_id);
+      break;
+  }
+
+  return os;
+}
+
+
+string MinidumpSystemInfo::GetCPU() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpSystemInfo for GetCPU";
+    return "";
+  }
+
+  string cpu;
+
+  switch (system_info_.processor_architecture) {
+    case MD_CPU_ARCHITECTURE_X86:
+    case MD_CPU_ARCHITECTURE_X86_WIN64:
+      cpu = "x86";
+      break;
+
+    case MD_CPU_ARCHITECTURE_AMD64:
+      cpu = "x86-64";
+      break;
+
+    case MD_CPU_ARCHITECTURE_PPC:
+      cpu = "ppc";
+      break;
+
+    case MD_CPU_ARCHITECTURE_PPC64:
+      cpu = "ppc64";
+      break;
+
+    case MD_CPU_ARCHITECTURE_SPARC:
+      cpu = "sparc";
+      break;
+
+    case MD_CPU_ARCHITECTURE_ARM:
+      cpu = "arm";
+      break;
+
+    case MD_CPU_ARCHITECTURE_ARM64:
+    case MD_CPU_ARCHITECTURE_ARM64_OLD:
+      cpu = "arm64";
+      break;
+
+    default:
+      BPLOG(ERROR) << "MinidumpSystemInfo unknown CPU for architecture " <<
+                      HexString(system_info_.processor_architecture);
+      break;
+  }
+
+  return cpu;
+}
+
+
+const string* MinidumpSystemInfo::GetCSDVersion() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpSystemInfo for GetCSDVersion";
+    return NULL;
+  }
+
+  if (!csd_version_)
+    csd_version_ = minidump_->ReadString(system_info_.csd_version_rva);
+
+  BPLOG_IF(ERROR, !csd_version_) << "MinidumpSystemInfo could not read "
+                                    "CSD version";
+
+  return csd_version_;
+}
+
+
+const string* MinidumpSystemInfo::GetCPUVendor() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpSystemInfo for GetCPUVendor";
+    return NULL;
+  }
+
+  // CPU vendor information can only be determined from x86 minidumps.
+  if (!cpu_vendor_ &&
+      (system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86 ||
+       system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86_WIN64)) {
+    char cpu_vendor_string[13];
+    snprintf(cpu_vendor_string, sizeof(cpu_vendor_string),
+             "%c%c%c%c%c%c%c%c%c%c%c%c",
+              system_info_.cpu.x86_cpu_info.vendor_id[0] & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[0] >> 8) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[0] >> 16) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[0] >> 24) & 0xff,
+              system_info_.cpu.x86_cpu_info.vendor_id[1] & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[1] >> 8) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[1] >> 16) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[1] >> 24) & 0xff,
+              system_info_.cpu.x86_cpu_info.vendor_id[2] & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[2] >> 8) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[2] >> 16) & 0xff,
+             (system_info_.cpu.x86_cpu_info.vendor_id[2] >> 24) & 0xff);
+    cpu_vendor_ = new string(cpu_vendor_string);
+  }
+
+  return cpu_vendor_;
+}
+
+
+void MinidumpSystemInfo::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpSystemInfo cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawSystemInfo\n");
+  printf("  processor_architecture                     = 0x%x\n",
+         system_info_.processor_architecture);
+  printf("  processor_level                            = %d\n",
+         system_info_.processor_level);
+  printf("  processor_revision                         = 0x%x\n",
+         system_info_.processor_revision);
+  printf("  number_of_processors                       = %d\n",
+         system_info_.number_of_processors);
+  printf("  product_type                               = %d\n",
+         system_info_.product_type);
+  printf("  major_version                              = %d\n",
+         system_info_.major_version);
+  printf("  minor_version                              = %d\n",
+         system_info_.minor_version);
+  printf("  build_number                               = %d\n",
+         system_info_.build_number);
+  printf("  platform_id                                = 0x%x\n",
+         system_info_.platform_id);
+  printf("  csd_version_rva                            = 0x%x\n",
+         system_info_.csd_version_rva);
+  printf("  suite_mask                                 = 0x%x\n",
+         system_info_.suite_mask);
+  if (system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86 ||
+      system_info_.processor_architecture == MD_CPU_ARCHITECTURE_X86_WIN64) {
+    printf("  cpu.x86_cpu_info (valid):\n");
+  } else {
+    printf("  cpu.x86_cpu_info (invalid):\n");
+  }
+  for (unsigned int i = 0; i < 3; ++i) {
+    printf("  cpu.x86_cpu_info.vendor_id[%d]              = 0x%x\n",
+           i, system_info_.cpu.x86_cpu_info.vendor_id[i]);
+  }
+  printf("  cpu.x86_cpu_info.version_information       = 0x%x\n",
+         system_info_.cpu.x86_cpu_info.version_information);
+  printf("  cpu.x86_cpu_info.feature_information       = 0x%x\n",
+         system_info_.cpu.x86_cpu_info.feature_information);
+  printf("  cpu.x86_cpu_info.amd_extended_cpu_features = 0x%x\n",
+         system_info_.cpu.x86_cpu_info.amd_extended_cpu_features);
+  if (system_info_.processor_architecture != MD_CPU_ARCHITECTURE_X86 &&
+      system_info_.processor_architecture != MD_CPU_ARCHITECTURE_X86_WIN64) {
+    printf("  cpu.other_cpu_info (valid):\n");
+    for (unsigned int i = 0; i < 2; ++i) {
+      printf("  cpu.other_cpu_info.processor_features[%d]   = 0x%" PRIx64 "\n",
+             i, system_info_.cpu.other_cpu_info.processor_features[i]);
+    }
+  }
+  const string* csd_version = GetCSDVersion();
+  if (csd_version) {
+    printf("  (csd_version)                              = \"%s\"\n",
+           csd_version->c_str());
+  } else {
+    printf("  (csd_version)                              = (null)\n");
+  }
+  const string* cpu_vendor = GetCPUVendor();
+  if (cpu_vendor) {
+    printf("  (cpu_vendor)                               = \"%s\"\n",
+           cpu_vendor->c_str());
+  } else {
+    printf("  (cpu_vendor)                               = (null)\n");
+  }
+  printf("\n");
+}
+
+
+//
+// MinidumpUnloadedModule
+//
+
+
+MinidumpUnloadedModule::MinidumpUnloadedModule(Minidump* minidump)
+    : MinidumpObject(minidump),
+      module_valid_(false),
+      unloaded_module_(),
+      name_(NULL) {
+
+}
+
+MinidumpUnloadedModule::~MinidumpUnloadedModule() {
+  delete name_;
+}
+
+string MinidumpUnloadedModule::code_file() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpUnloadedModule for code_file";
+    return "";
+  }
+
+  return *name_;
+}
+
+string MinidumpUnloadedModule::code_identifier() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpUnloadedModule for code_identifier";
+    return "";
+  }
+
+  MinidumpSystemInfo* minidump_system_info = minidump_->GetSystemInfo();
+  if (!minidump_system_info) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule code_identifier requires "
+                    "MinidumpSystemInfo";
+    return "";
+  }
+
+  const MDRawSystemInfo* raw_system_info = minidump_system_info->system_info();
+  if (!raw_system_info) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule code_identifier requires "
+                 << "MDRawSystemInfo";
+    return "";
+  }
+
+  string identifier;
+
+  switch (raw_system_info->platform_id) {
+    case MD_OS_WIN32_NT:
+    case MD_OS_WIN32_WINDOWS: {
+      // Use the same format that the MS symbol server uses in filesystem
+      // hierarchies.
+      char identifier_string[17];
+      snprintf(identifier_string, sizeof(identifier_string), "%08X%x",
+               unloaded_module_.time_date_stamp,
+               unloaded_module_.size_of_image);
+      identifier = identifier_string;
+      break;
+    }
+
+    case MD_OS_ANDROID:
+    case MD_OS_LINUX:
+    case MD_OS_MAC_OS_X:
+    case MD_OS_IOS:
+    case MD_OS_SOLARIS:
+    case MD_OS_NACL:
+    case MD_OS_PS3: {
+      // TODO(mmentovai): support uuid extension if present, otherwise fall
+      // back to version (from LC_ID_DYLIB?), otherwise fall back to something
+      // else.
+      identifier = "id";
+      break;
+    }
+
+    default: {
+      // Without knowing what OS generated the dump, we can't generate a good
+      // identifier.  Return an empty string, signalling failure.
+      BPLOG(ERROR) << "MinidumpUnloadedModule code_identifier requires known "
+                   << "platform, found "
+                   << HexString(raw_system_info->platform_id);
+      break;
+    }
+  }
+
+  return identifier;
+}
+
+string MinidumpUnloadedModule::debug_file() const {
+  return "";  // No debug info provided with unloaded modules
+}
+
+string MinidumpUnloadedModule::debug_identifier() const {
+  return "";  // No debug info provided with unloaded modules
+}
+
+string MinidumpUnloadedModule::version() const {
+  return "";  // No version info provided with unloaded modules
+}
+
+CodeModule* MinidumpUnloadedModule::Copy() const {
+  return new BasicCodeModule(this);
+}
+
+uint64_t MinidumpUnloadedModule::shrink_down_delta() const {
+  return 0;
+}
+
+void MinidumpUnloadedModule::SetShrinkDownDelta(uint64_t shrink_down_delta) {
+  // Not implemented
+  assert(false);
+}
+
+bool MinidumpUnloadedModule::Read(uint32_t expected_size) {
+
+  delete name_;
+  valid_ = false;
+
+  if (expected_size < sizeof(unloaded_module_)) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule expected size is less than size "
+                 << "of struct " << expected_size << " < "
+                 << sizeof(unloaded_module_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&unloaded_module_, sizeof(unloaded_module_))) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule cannot read module";
+    return false;
+  }
+
+  if (expected_size > sizeof(unloaded_module_)) {
+    uint32_t module_bytes_remaining = expected_size - sizeof(unloaded_module_);
+    off_t pos = minidump_->Tell();
+    if (!minidump_->SeekSet(pos + module_bytes_remaining)) {
+      BPLOG(ERROR) << "MinidumpUnloadedModule unable to seek to end of module";
+      return false;
+    }
+  }
+
+  if (minidump_->swap()) {
+    Swap(&unloaded_module_.base_of_image);
+    Swap(&unloaded_module_.size_of_image);
+    Swap(&unloaded_module_.checksum);
+    Swap(&unloaded_module_.time_date_stamp);
+    Swap(&unloaded_module_.module_name_rva);
+  }
+
+  // Check for base + size overflow or undersize.
+  if (unloaded_module_.size_of_image == 0 ||
+      unloaded_module_.size_of_image >
+          numeric_limits<uint64_t>::max() - unloaded_module_.base_of_image) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule has a module problem, " <<
+                    HexString(unloaded_module_.base_of_image) << "+" <<
+                    HexString(unloaded_module_.size_of_image);
+    return false;
+  }
+
+
+  module_valid_ = true;
+  return true;
+}
+
+bool MinidumpUnloadedModule::ReadAuxiliaryData() {
+  if (!module_valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpUnloadedModule for ReadAuxiliaryData";
+    return false;
+  }
+
+  // Each module must have a name.
+  name_ = minidump_->ReadString(unloaded_module_.module_name_rva);
+  if (!name_) {
+    BPLOG(ERROR) << "MinidumpUnloadedModule could not read name";
+    return false;
+  }
+
+  // At this point, we have enough info for the module to be valid.
+  valid_ = true;
+  return true;
+}
+
+//
+// MinidumpUnloadedModuleList
+//
+
+
+uint32_t MinidumpUnloadedModuleList::max_modules_ = 2048;
+
+
+MinidumpUnloadedModuleList::MinidumpUnloadedModuleList(Minidump* minidump)
+  : MinidumpStream(minidump),
+    range_map_(new RangeMap<uint64_t, unsigned int>()),
+    unloaded_modules_(NULL),
+    module_count_(0) {
+  range_map_->SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+}
+
+MinidumpUnloadedModuleList::~MinidumpUnloadedModuleList() {
+  delete range_map_;
+  delete unloaded_modules_;
+}
+
+
+bool MinidumpUnloadedModuleList::Read(uint32_t expected_size) {
+  range_map_->Clear();
+  delete unloaded_modules_;
+  unloaded_modules_ = NULL;
+  module_count_ = 0;
+
+  valid_ = false;
+
+  uint32_t size_of_header;
+  if (!minidump_->ReadBytes(&size_of_header, sizeof(size_of_header))) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList could not read header size";
+    return false;
+  }
+
+  uint32_t size_of_entry;
+  if (!minidump_->ReadBytes(&size_of_entry, sizeof(size_of_entry))) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList could not read entry size";
+    return false;
+  }
+
+  uint32_t number_of_entries;
+  if (!minidump_->ReadBytes(&number_of_entries, sizeof(number_of_entries))) {
+    BPLOG(ERROR) <<
+                 "MinidumpUnloadedModuleList could not read number of entries";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&size_of_header);
+    Swap(&size_of_entry);
+    Swap(&number_of_entries);
+  }
+
+  uint32_t header_bytes_remaining = size_of_header - sizeof(size_of_header) -
+      sizeof(size_of_entry) - sizeof(number_of_entries);
+  if (header_bytes_remaining) {
+    off_t pos = minidump_->Tell();
+    if (!minidump_->SeekSet(pos + header_bytes_remaining)) {
+      BPLOG(ERROR) << "MinidumpUnloadedModuleList could not read header sized "
+                   << size_of_header;
+      return false;
+    }
+  }
+
+  if (expected_size != size_of_header + (size_of_entry * number_of_entries)) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList expected_size mismatch " <<
+                 expected_size << " != " << size_of_header << " + (" <<
+                 size_of_entry << " * " << number_of_entries << ")";
+    return false;
+  }
+
+  if (number_of_entries > max_modules_) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList count " <<
+                 number_of_entries << " exceeds maximum " << max_modules_;
+    return false;
+  }
+
+  if (number_of_entries != 0) {
+    scoped_ptr<MinidumpUnloadedModules> modules(
+        new MinidumpUnloadedModules(number_of_entries,
+                                    MinidumpUnloadedModule(minidump_)));
+
+    for (unsigned int module_index = 0;
+         module_index < number_of_entries;
+         ++module_index) {
+      MinidumpUnloadedModule* module = &(*modules)[module_index];
+
+      if (!module->Read(size_of_entry)) {
+        BPLOG(ERROR) << "MinidumpUnloadedModuleList could not read module " <<
+                     module_index << "/" << number_of_entries;
+        return false;
+      }
+    }
+
+    for (unsigned int module_index = 0;
+         module_index < number_of_entries;
+         ++module_index) {
+      MinidumpUnloadedModule* module = &(*modules)[module_index];
+
+      if (!module->ReadAuxiliaryData()) {
+        BPLOG(ERROR) << "MinidumpUnloadedModuleList could not read required "
+                     "module auxiliary data for module " <<
+                     module_index << "/" << number_of_entries;
+        return false;
+      }
+
+      uint64_t base_address = module->base_address();
+      uint64_t module_size = module->size();
+
+      // Ignore any failures for conflicting address ranges
+      range_map_->StoreRange(base_address, module_size, module_index);
+
+    }
+    unloaded_modules_ = modules.release();
+  }
+
+  module_count_ = number_of_entries;
+  valid_ = true;
+  return true;
+}
+
+const MinidumpUnloadedModule* MinidumpUnloadedModuleList::GetModuleForAddress(
+    uint64_t address) const {
+  if (!valid_) {
+    BPLOG(ERROR)
+        << "Invalid MinidumpUnloadedModuleList for GetModuleForAddress";
+    return NULL;
+  }
+
+  unsigned int module_index;
+  if (!range_map_->RetrieveRange(address, &module_index, NULL /* base */,
+                                 NULL /* delta */, NULL /* size */)) {
+    BPLOG(INFO) << "MinidumpUnloadedModuleList has no module at "
+                << HexString(address);
+    return NULL;
+  }
+
+  return GetModuleAtIndex(module_index);
+}
+
+const MinidumpUnloadedModule*
+MinidumpUnloadedModuleList::GetMainModule() const {
+  return NULL;
+}
+
+const MinidumpUnloadedModule*
+MinidumpUnloadedModuleList::GetModuleAtSequence(unsigned int sequence) const {
+  if (!valid_) {
+    BPLOG(ERROR)
+        << "Invalid MinidumpUnloadedModuleList for GetModuleAtSequence";
+    return NULL;
+  }
+
+  if (sequence >= module_count_) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList sequence out of range: "
+                 << sequence << "/" << module_count_;
+    return NULL;
+  }
+
+  unsigned int module_index;
+  if (!range_map_->RetrieveRangeAtIndex(sequence, &module_index,
+                                        NULL /* base */, NULL /* delta */,
+                                        NULL /* size */)) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList has no module at sequence "
+                 << sequence;
+    return NULL;
+  }
+
+  return GetModuleAtIndex(module_index);
+}
+
+const MinidumpUnloadedModule*
+MinidumpUnloadedModuleList::GetModuleAtIndex(
+    unsigned int index) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpUnloadedModuleList for GetModuleAtIndex";
+    return NULL;
+  }
+
+  if (index >= module_count_) {
+    BPLOG(ERROR) << "MinidumpUnloadedModuleList index out of range: "
+                 << index << "/" << module_count_;
+    return NULL;
+  }
+
+  return &(*unloaded_modules_)[index];
+}
+
+const CodeModules* MinidumpUnloadedModuleList::Copy() const {
+  return new BasicCodeModules(this, range_map_->GetMergeStrategy());
+}
+
+vector<linked_ptr<const CodeModule>>
+MinidumpUnloadedModuleList::GetShrunkRangeModules() const {
+  return vector<linked_ptr<const CodeModule> >();
+}
+
+
+//
+// MinidumpMiscInfo
+//
+
+
+MinidumpMiscInfo::MinidumpMiscInfo(Minidump* minidump)
+    : MinidumpStream(minidump),
+      misc_info_() {
+}
+
+
+bool MinidumpMiscInfo::Read(uint32_t expected_size) {
+  valid_ = false;
+
+  size_t padding = 0;
+  if (expected_size != MD_MISCINFO_SIZE &&
+      expected_size != MD_MISCINFO2_SIZE &&
+      expected_size != MD_MISCINFO3_SIZE &&
+      expected_size != MD_MISCINFO4_SIZE &&
+      expected_size != MD_MISCINFO5_SIZE) {
+    if (expected_size > MD_MISCINFO5_SIZE) {
+      // Only read the part of the misc info structure we know how to handle
+      BPLOG(INFO) << "MinidumpMiscInfo size larger than expected "
+                  << expected_size << ", skipping over the unknown part";
+      padding = expected_size - MD_MISCINFO5_SIZE;
+      expected_size = MD_MISCINFO5_SIZE;
+    } else {
+      BPLOG(ERROR) << "MinidumpMiscInfo size mismatch, " << expected_size
+                  << " != " << MD_MISCINFO_SIZE << ", " << MD_MISCINFO2_SIZE
+                  << ", " << MD_MISCINFO3_SIZE << ", " << MD_MISCINFO4_SIZE
+                  << ", " << MD_MISCINFO5_SIZE << ")";
+      return false;
+    }
+  }
+
+  if (!minidump_->ReadBytes(&misc_info_, expected_size)) {
+    BPLOG(ERROR) << "MinidumpMiscInfo cannot read miscellaneous info";
+    return false;
+  }
+
+  if (padding != 0) {
+    off_t saved_position = minidump_->Tell();
+    if (saved_position == -1) {
+      BPLOG(ERROR) << "MinidumpMiscInfo could not tell the current position";
+      return false;
+    }
+
+    if (!minidump_->SeekSet(saved_position + static_cast<off_t>(padding))) {
+      BPLOG(ERROR) << "MinidumpMiscInfo could not seek past the miscellaneous "
+                   << "info structure";
+      return false;
+    }
+  }
+
+  if (minidump_->swap()) {
+    // Swap version 1 fields
+    Swap(&misc_info_.size_of_info);
+    Swap(&misc_info_.flags1);
+    Swap(&misc_info_.process_id);
+    Swap(&misc_info_.process_create_time);
+    Swap(&misc_info_.process_user_time);
+    Swap(&misc_info_.process_kernel_time);
+    if (misc_info_.size_of_info > MD_MISCINFO_SIZE) {
+      // Swap version 2 fields
+      Swap(&misc_info_.processor_max_mhz);
+      Swap(&misc_info_.processor_current_mhz);
+      Swap(&misc_info_.processor_mhz_limit);
+      Swap(&misc_info_.processor_max_idle_state);
+      Swap(&misc_info_.processor_current_idle_state);
+    }
+    if (misc_info_.size_of_info > MD_MISCINFO2_SIZE) {
+      // Swap version 3 fields
+      Swap(&misc_info_.process_integrity_level);
+      Swap(&misc_info_.process_execute_flags);
+      Swap(&misc_info_.protected_process);
+      Swap(&misc_info_.time_zone_id);
+      Swap(&misc_info_.time_zone);
+    }
+    if (misc_info_.size_of_info > MD_MISCINFO3_SIZE) {
+      // Swap version 4 fields.
+      // Do not swap UTF-16 strings.  The swap is done as part of the
+      // conversion to UTF-8 (code follows below).
+    }
+    if (misc_info_.size_of_info > MD_MISCINFO4_SIZE) {
+      // Swap version 5 fields
+      Swap(&misc_info_.xstate_data);
+      Swap(&misc_info_.process_cookie);
+    }
+  }
+
+  if (expected_size + padding != misc_info_.size_of_info) {
+    BPLOG(ERROR) << "MinidumpMiscInfo size mismatch, " <<
+                    expected_size << " != " << misc_info_.size_of_info;
+    return false;
+  }
+
+  // Convert UTF-16 strings
+  if (misc_info_.size_of_info > MD_MISCINFO2_SIZE) {
+    // Convert UTF-16 strings in version 3 fields
+    ConvertUTF16BufferToUTF8String(misc_info_.time_zone.standard_name,
+                                   sizeof(misc_info_.time_zone.standard_name),
+                                   &standard_name_, minidump_->swap());
+    ConvertUTF16BufferToUTF8String(misc_info_.time_zone.daylight_name,
+                                   sizeof(misc_info_.time_zone.daylight_name),
+                                   &daylight_name_, minidump_->swap());
+  }
+  if (misc_info_.size_of_info > MD_MISCINFO3_SIZE) {
+    // Convert UTF-16 strings in version 4 fields
+    ConvertUTF16BufferToUTF8String(misc_info_.build_string,
+                                   sizeof(misc_info_.build_string),
+                                   &build_string_, minidump_->swap());
+    ConvertUTF16BufferToUTF8String(misc_info_.dbg_bld_str,
+                                   sizeof(misc_info_.dbg_bld_str),
+                                   &dbg_bld_str_, minidump_->swap());
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+void MinidumpMiscInfo::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpMiscInfo cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawMiscInfo\n");
+  // Print version 1 fields
+  printf("  size_of_info                 = %d\n",   misc_info_.size_of_info);
+  printf("  flags1                       = 0x%x\n", misc_info_.flags1);
+  printf("  process_id                   = ");
+  PrintValueOrInvalid(misc_info_.flags1 & MD_MISCINFO_FLAGS1_PROCESS_ID,
+                      kNumberFormatDecimal, misc_info_.process_id);
+  if (misc_info_.flags1 & MD_MISCINFO_FLAGS1_PROCESS_TIMES) {
+    printf("  process_create_time          = 0x%x %s\n",
+           misc_info_.process_create_time,
+           TimeTToUTCString(misc_info_.process_create_time).c_str());
+  } else {
+    printf("  process_create_time          = (invalid)\n");
+  }
+  printf("  process_user_time            = ");
+  PrintValueOrInvalid(misc_info_.flags1 & MD_MISCINFO_FLAGS1_PROCESS_TIMES,
+                      kNumberFormatDecimal, misc_info_.process_user_time);
+  printf("  process_kernel_time          = ");
+  PrintValueOrInvalid(misc_info_.flags1 & MD_MISCINFO_FLAGS1_PROCESS_TIMES,
+                      kNumberFormatDecimal, misc_info_.process_kernel_time);
+  if (misc_info_.size_of_info > MD_MISCINFO_SIZE) {
+    // Print version 2 fields
+    printf("  processor_max_mhz            = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO,
+                        kNumberFormatDecimal, misc_info_.processor_max_mhz);
+    printf("  processor_current_mhz        = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO,
+                        kNumberFormatDecimal, misc_info_.processor_current_mhz);
+    printf("  processor_mhz_limit          = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO,
+                        kNumberFormatDecimal, misc_info_.processor_mhz_limit);
+    printf("  processor_max_idle_state     = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO,
+                        kNumberFormatDecimal,
+                        misc_info_.processor_max_idle_state);
+    printf("  processor_current_idle_state = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO,
+                        kNumberFormatDecimal,
+                        misc_info_.processor_current_idle_state);
+  }
+  if (misc_info_.size_of_info > MD_MISCINFO2_SIZE) {
+    // Print version 3 fields
+    printf("  process_integrity_level      = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY,
+                        kNumberFormatHexadecimal,
+                        misc_info_.process_integrity_level);
+    printf("  process_execute_flags        = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS,
+                        kNumberFormatHexadecimal,
+                        misc_info_.process_execute_flags);
+    printf("  protected_process            = ");
+    PrintValueOrInvalid(misc_info_.flags1 &
+                            MD_MISCINFO_FLAGS1_PROTECTED_PROCESS,
+                        kNumberFormatDecimal, misc_info_.protected_process);
+    printf("  time_zone_id                 = ");
+    PrintValueOrInvalid(misc_info_.flags1 & MD_MISCINFO_FLAGS1_TIMEZONE,
+                        kNumberFormatDecimal, misc_info_.time_zone_id);
+    if (misc_info_.flags1 & MD_MISCINFO_FLAGS1_TIMEZONE) {
+      printf("  time_zone.bias               = %d\n",
+             misc_info_.time_zone.bias);
+      printf("  time_zone.standard_name      = %s\n", standard_name_.c_str());
+      printf("  time_zone.standard_date      = "
+                 "%04d-%02d-%02d (%d) %02d:%02d:%02d.%03d\n",
+             misc_info_.time_zone.standard_date.year,
+             misc_info_.time_zone.standard_date.month,
+             misc_info_.time_zone.standard_date.day,
+             misc_info_.time_zone.standard_date.day_of_week,
+             misc_info_.time_zone.standard_date.hour,
+             misc_info_.time_zone.standard_date.minute,
+             misc_info_.time_zone.standard_date.second,
+             misc_info_.time_zone.standard_date.milliseconds);
+      printf("  time_zone.standard_bias      = %d\n",
+             misc_info_.time_zone.standard_bias);
+      printf("  time_zone.daylight_name      = %s\n", daylight_name_.c_str());
+      printf("  time_zone.daylight_date      = "
+                 "%04d-%02d-%02d (%d) %02d:%02d:%02d.%03d\n",
+             misc_info_.time_zone.daylight_date.year,
+             misc_info_.time_zone.daylight_date.month,
+             misc_info_.time_zone.daylight_date.day,
+             misc_info_.time_zone.daylight_date.day_of_week,
+             misc_info_.time_zone.daylight_date.hour,
+             misc_info_.time_zone.daylight_date.minute,
+             misc_info_.time_zone.daylight_date.second,
+             misc_info_.time_zone.daylight_date.milliseconds);
+      printf("  time_zone.daylight_bias      = %d\n",
+             misc_info_.time_zone.daylight_bias);
+    } else {
+      printf("  time_zone.bias               = (invalid)\n");
+      printf("  time_zone.standard_name      = (invalid)\n");
+      printf("  time_zone.standard_date      = (invalid)\n");
+      printf("  time_zone.standard_bias      = (invalid)\n");
+      printf("  time_zone.daylight_name      = (invalid)\n");
+      printf("  time_zone.daylight_date      = (invalid)\n");
+      printf("  time_zone.daylight_bias      = (invalid)\n");
+    }
+  }
+  if (misc_info_.size_of_info > MD_MISCINFO3_SIZE) {
+    // Print version 4 fields
+    if (misc_info_.flags1 & MD_MISCINFO_FLAGS1_BUILDSTRING) {
+      printf("  build_string                 = %s\n", build_string_.c_str());
+      printf("  dbg_bld_str                  = %s\n", dbg_bld_str_.c_str());
+    } else {
+      printf("  build_string                 = (invalid)\n");
+      printf("  dbg_bld_str                  = (invalid)\n");
+    }
+  }
+  if (misc_info_.size_of_info > MD_MISCINFO4_SIZE) {
+    // Print version 5 fields
+    if (misc_info_.flags1 & MD_MISCINFO_FLAGS1_PROCESS_COOKIE) {
+      printf("  xstate_data.size_of_info     = %d\n",
+             misc_info_.xstate_data.size_of_info);
+      printf("  xstate_data.context_size     = %d\n",
+             misc_info_.xstate_data.context_size);
+      printf("  xstate_data.enabled_features = 0x%" PRIx64 "\n",
+             misc_info_.xstate_data.enabled_features);
+      for (size_t i = 0; i < MD_MAXIMUM_XSTATE_FEATURES; i++) {
+        if ((misc_info_.xstate_data.enabled_features >> i) & 1) {
+          printf("  xstate_data.features[%02zu]     = { %d, %d }\n", i,
+                 misc_info_.xstate_data.features[i].offset,
+                 misc_info_.xstate_data.features[i].size);
+        }
+      }
+      if (misc_info_.xstate_data.enabled_features == 0) {
+        printf("  xstate_data.features[]       = (empty)\n");
+      }
+      printf("  process_cookie               = %d\n",
+             misc_info_.process_cookie);
+    } else {
+      printf("  xstate_data.size_of_info     = (invalid)\n");
+      printf("  xstate_data.context_size     = (invalid)\n");
+      printf("  xstate_data.enabled_features = (invalid)\n");
+      printf("  xstate_data.features[]       = (invalid)\n");
+      printf("  process_cookie               = (invalid)\n");
+    }
+  }
+  printf("\n");
+}
+
+
+//
+// MinidumpBreakpadInfo
+//
+
+
+MinidumpBreakpadInfo::MinidumpBreakpadInfo(Minidump* minidump)
+    : MinidumpStream(minidump),
+      breakpad_info_() {
+}
+
+
+bool MinidumpBreakpadInfo::Read(uint32_t expected_size) {
+  valid_ = false;
+
+  if (expected_size != sizeof(breakpad_info_)) {
+    BPLOG(ERROR) << "MinidumpBreakpadInfo size mismatch, " << expected_size <<
+                    " != " << sizeof(breakpad_info_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&breakpad_info_, sizeof(breakpad_info_))) {
+    BPLOG(ERROR) << "MinidumpBreakpadInfo cannot read Breakpad info";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&breakpad_info_.validity);
+    Swap(&breakpad_info_.dump_thread_id);
+    Swap(&breakpad_info_.requesting_thread_id);
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+bool MinidumpBreakpadInfo::GetDumpThreadID(uint32_t* thread_id) const {
+  BPLOG_IF(ERROR, !thread_id) << "MinidumpBreakpadInfo::GetDumpThreadID "
+                                 "requires |thread_id|";
+  assert(thread_id);
+  *thread_id = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpBreakpadInfo for GetDumpThreadID";
+    return false;
+  }
+
+  if (!(breakpad_info_.validity & MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID)) {
+    BPLOG(INFO) << "MinidumpBreakpadInfo has no dump thread";
+    return false;
+  }
+
+  *thread_id = breakpad_info_.dump_thread_id;
+  return true;
+}
+
+
+bool MinidumpBreakpadInfo::GetRequestingThreadID(uint32_t* thread_id)
+    const {
+  BPLOG_IF(ERROR, !thread_id) << "MinidumpBreakpadInfo::GetRequestingThreadID "
+                                 "requires |thread_id|";
+  assert(thread_id);
+  *thread_id = 0;
+
+  if (!thread_id || !valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpBreakpadInfo for GetRequestingThreadID";
+    return false;
+  }
+
+  if (!(breakpad_info_.validity &
+            MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID)) {
+    BPLOG(INFO) << "MinidumpBreakpadInfo has no requesting thread";
+    return false;
+  }
+
+  *thread_id = breakpad_info_.requesting_thread_id;
+  return true;
+}
+
+
+void MinidumpBreakpadInfo::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpBreakpadInfo cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawBreakpadInfo\n");
+  printf("  validity             = 0x%x\n", breakpad_info_.validity);
+  printf("  dump_thread_id       = ");
+  PrintValueOrInvalid(breakpad_info_.validity &
+                          MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID,
+                      kNumberFormatHexadecimal, breakpad_info_.dump_thread_id);
+  printf("  requesting_thread_id = ");
+  PrintValueOrInvalid(breakpad_info_.validity &
+                          MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID,
+                      kNumberFormatHexadecimal,
+                      breakpad_info_.requesting_thread_id);
+
+  printf("\n");
+}
+
+
+//
+// MinidumpMemoryInfo
+//
+
+
+MinidumpMemoryInfo::MinidumpMemoryInfo(Minidump* minidump)
+    : MinidumpObject(minidump),
+      memory_info_() {
+}
+
+
+bool MinidumpMemoryInfo::IsExecutable() const {
+  uint32_t protection =
+      memory_info_.protection & MD_MEMORY_PROTECTION_ACCESS_MASK;
+  return protection == MD_MEMORY_PROTECT_EXECUTE ||
+      protection == MD_MEMORY_PROTECT_EXECUTE_READ ||
+      protection == MD_MEMORY_PROTECT_EXECUTE_READWRITE;
+}
+
+
+bool MinidumpMemoryInfo::IsWritable() const {
+  uint32_t protection =
+      memory_info_.protection & MD_MEMORY_PROTECTION_ACCESS_MASK;
+  return protection == MD_MEMORY_PROTECT_READWRITE ||
+    protection == MD_MEMORY_PROTECT_WRITECOPY ||
+    protection == MD_MEMORY_PROTECT_EXECUTE_READWRITE ||
+    protection == MD_MEMORY_PROTECT_EXECUTE_WRITECOPY;
+}
+
+
+bool MinidumpMemoryInfo::Read() {
+  valid_ = false;
+
+  if (!minidump_->ReadBytes(&memory_info_, sizeof(memory_info_))) {
+    BPLOG(ERROR) << "MinidumpMemoryInfo cannot read memory info";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&memory_info_.base_address);
+    Swap(&memory_info_.allocation_base);
+    Swap(&memory_info_.allocation_protection);
+    Swap(&memory_info_.region_size);
+    Swap(&memory_info_.state);
+    Swap(&memory_info_.protection);
+    Swap(&memory_info_.type);
+  }
+
+  // Check for base + size overflow or undersize.
+  if (memory_info_.region_size == 0 ||
+      memory_info_.region_size > numeric_limits<uint64_t>::max() -
+                                     memory_info_.base_address) {
+    BPLOG(ERROR) << "MinidumpMemoryInfo has a memory region problem, " <<
+                    HexString(memory_info_.base_address) << "+" <<
+                    HexString(memory_info_.region_size);
+    return false;
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+void MinidumpMemoryInfo::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpMemoryInfo cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawMemoryInfo\n");
+  printf("  base_address          = 0x%" PRIx64 "\n",
+         memory_info_.base_address);
+  printf("  allocation_base       = 0x%" PRIx64 "\n",
+         memory_info_.allocation_base);
+  printf("  allocation_protection = 0x%x\n",
+         memory_info_.allocation_protection);
+  printf("  region_size           = 0x%" PRIx64 "\n", memory_info_.region_size);
+  printf("  state                 = 0x%x\n", memory_info_.state);
+  printf("  protection            = 0x%x\n", memory_info_.protection);
+  printf("  type                  = 0x%x\n", memory_info_.type);
+}
+
+
+//
+// MinidumpMemoryInfoList
+//
+
+
+MinidumpMemoryInfoList::MinidumpMemoryInfoList(Minidump* minidump)
+    : MinidumpStream(minidump),
+      range_map_(new RangeMap<uint64_t, unsigned int>()),
+      infos_(NULL),
+      info_count_(0) {
+}
+
+
+MinidumpMemoryInfoList::~MinidumpMemoryInfoList() {
+  delete range_map_;
+  delete infos_;
+}
+
+
+bool MinidumpMemoryInfoList::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  delete infos_;
+  infos_ = NULL;
+  range_map_->Clear();
+  info_count_ = 0;
+
+  valid_ = false;
+
+  MDRawMemoryInfoList header;
+  if (expected_size < sizeof(MDRawMemoryInfoList)) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList header size mismatch, " <<
+                    expected_size << " < " << sizeof(MDRawMemoryInfoList);
+    return false;
+  }
+  if (!minidump_->ReadBytes(&header, sizeof(header))) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList could not read header";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&header.size_of_header);
+    Swap(&header.size_of_entry);
+    Swap(&header.number_of_entries);
+  }
+
+  // Sanity check that the header is the expected size.
+  // TODO(ted): could possibly handle this more gracefully, assuming
+  // that future versions of the structs would be backwards-compatible.
+  if (header.size_of_header != sizeof(MDRawMemoryInfoList)) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList header size mismatch, " <<
+                    header.size_of_header << " != " <<
+                    sizeof(MDRawMemoryInfoList);
+    return false;
+  }
+
+  // Sanity check that the entries are the expected size.
+  if (header.size_of_entry != sizeof(MDRawMemoryInfo)) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList entry size mismatch, " <<
+                    header.size_of_entry << " != " <<
+                    sizeof(MDRawMemoryInfo);
+    return false;
+  }
+
+  if (header.number_of_entries >
+          numeric_limits<uint32_t>::max() / sizeof(MDRawMemoryInfo)) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList info count " <<
+                    header.number_of_entries <<
+                    " would cause multiplication overflow";
+    return false;
+  }
+
+  if (expected_size != sizeof(MDRawMemoryInfoList) +
+                        header.number_of_entries * sizeof(MDRawMemoryInfo)) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList size mismatch, " << expected_size <<
+                    " != " << sizeof(MDRawMemoryInfoList) +
+                        header.number_of_entries * sizeof(MDRawMemoryInfo);
+    return false;
+  }
+
+  // Check for data loss when converting header.number_of_entries from
+  // uint64_t into MinidumpMemoryInfos::size_type (uint32_t)
+  MinidumpMemoryInfos::size_type header_number_of_entries =
+      static_cast<unsigned int>(header.number_of_entries);
+  if (static_cast<uint64_t>(header_number_of_entries) !=
+      header.number_of_entries) {
+    BPLOG(ERROR) << "Data loss detected when converting "
+                    "the header's number_of_entries";
+    return false;
+  }
+
+  if (header.number_of_entries != 0) {
+    scoped_ptr<MinidumpMemoryInfos> infos(
+        new MinidumpMemoryInfos(header_number_of_entries,
+                                MinidumpMemoryInfo(minidump_)));
+
+    for (unsigned int index = 0;
+         index < header.number_of_entries;
+         ++index) {
+      MinidumpMemoryInfo* info = &(*infos)[index];
+
+      // Assume that the file offset is correct after the last read.
+      if (!info->Read()) {
+        BPLOG(ERROR) << "MinidumpMemoryInfoList cannot read info " <<
+                        index << "/" << header.number_of_entries;
+        return false;
+      }
+
+      uint64_t base_address = info->GetBase();
+      uint64_t region_size = info->GetSize();
+
+      if (!range_map_->StoreRange(base_address, region_size, index)) {
+        BPLOG(ERROR) << "MinidumpMemoryInfoList could not store"
+                        " memory region " <<
+                        index << "/" << header.number_of_entries << ", " <<
+                        HexString(base_address) << "+" <<
+                        HexString(region_size);
+        return false;
+      }
+    }
+
+    infos_ = infos.release();
+  }
+
+  info_count_ = static_cast<uint32_t>(header_number_of_entries);
+
+  valid_ = true;
+  return true;
+}
+
+
+const MinidumpMemoryInfo* MinidumpMemoryInfoList::GetMemoryInfoAtIndex(
+      unsigned int index) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryInfoList for GetMemoryInfoAtIndex";
+    return NULL;
+  }
+
+  if (index >= info_count_) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList index out of range: " <<
+                    index << "/" << info_count_;
+    return NULL;
+  }
+
+  return &(*infos_)[index];
+}
+
+
+const MinidumpMemoryInfo* MinidumpMemoryInfoList::GetMemoryInfoForAddress(
+    uint64_t address) const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid MinidumpMemoryInfoList for"
+                    " GetMemoryInfoForAddress";
+    return NULL;
+  }
+
+  unsigned int info_index;
+  if (!range_map_->RetrieveRange(address, &info_index, NULL /* base */,
+                                 NULL /* delta */, NULL /* size */)) {
+    BPLOG(INFO) << "MinidumpMemoryInfoList has no memory info at " <<
+                   HexString(address);
+    return NULL;
+  }
+
+  return GetMemoryInfoAtIndex(info_index);
+}
+
+
+void MinidumpMemoryInfoList::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpMemoryInfoList cannot print invalid data";
+    return;
+  }
+
+  printf("MinidumpMemoryInfoList\n");
+  printf("  info_count = %d\n", info_count_);
+  printf("\n");
+
+  for (unsigned int info_index = 0;
+       info_index < info_count_;
+       ++info_index) {
+    printf("info[%d]\n", info_index);
+    (*infos_)[info_index].Print();
+    printf("\n");
+  }
+}
+
+//
+// MinidumpLinuxMaps
+//
+
+MinidumpLinuxMaps::MinidumpLinuxMaps(Minidump* minidump)
+    : MinidumpObject(minidump) {
+}
+
+void MinidumpLinuxMaps::Print() const {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpLinuxMaps cannot print invalid data";
+    return;
+  }
+  std::cout << region_.line << std::endl;
+}
+
+//
+// MinidumpLinuxMapsList
+//
+
+MinidumpLinuxMapsList::MinidumpLinuxMapsList(Minidump* minidump)
+    : MinidumpStream(minidump),
+      maps_(NULL),
+      maps_count_(0) {
+}
+
+MinidumpLinuxMapsList::~MinidumpLinuxMapsList() {
+  if (maps_) {
+    for (unsigned int i = 0; i < maps_->size(); i++) {
+      delete (*maps_)[i];
+    }
+    delete maps_;
+  }
+}
+
+const MinidumpLinuxMaps* MinidumpLinuxMapsList::GetLinuxMapsForAddress(
+    uint64_t address) const {
+  if (!valid_ || (maps_ == NULL)) {
+    BPLOG(ERROR) << "Invalid MinidumpLinuxMapsList for GetLinuxMapsForAddress";
+    return NULL;
+  }
+
+  // Search every memory mapping.
+  for (unsigned int index = 0; index < maps_count_; index++) {
+    // Check if address is within bounds of the current memory region.
+    if ((*maps_)[index]->GetBase() <= address &&
+        (*maps_)[index]->GetBase() + (*maps_)[index]->GetSize() > address) {
+      return (*maps_)[index];
+    }
+  }
+
+  // No mapping encloses the memory address.
+  BPLOG(ERROR) << "MinidumpLinuxMapsList has no mapping at "
+               << HexString(address);
+  return NULL;
+}
+
+const MinidumpLinuxMaps* MinidumpLinuxMapsList::GetLinuxMapsAtIndex(
+    unsigned int index) const {
+  if (!valid_ || (maps_ == NULL)) {
+    BPLOG(ERROR) << "Invalid MinidumpLinuxMapsList for GetLinuxMapsAtIndex";
+    return NULL;
+  }
+
+  // Index out of bounds.
+  if (index >= maps_count_ || (maps_ == NULL)) {
+    BPLOG(ERROR) << "MinidumpLinuxMapsList index of out range: "
+                 << index
+                 << "/"
+                 << maps_count_;
+    return NULL;
+  }
+  return (*maps_)[index];
+}
+
+bool MinidumpLinuxMapsList::Read(uint32_t expected_size) {
+  // Invalidate cached data.
+  if (maps_) {
+    for (unsigned int i = 0; i < maps_->size(); i++) {
+      delete (*maps_)[i];
+    }
+    delete maps_;
+  }
+  maps_ = NULL;
+  maps_count_ = 0;
+
+  valid_ = false;
+
+  // Load and check expected stream length.
+  uint32_t length = 0;
+  if (!minidump_->SeekToStreamType(MD_LINUX_MAPS, &length)) {
+    BPLOG(ERROR) << "MinidumpLinuxMapsList stream type not found";
+    return false;
+  }
+  if (expected_size != length) {
+    BPLOG(ERROR) << "MinidumpLinuxMapsList size mismatch: "
+                 << expected_size
+                 << " != "
+                 << length;
+    return false;
+  }
+
+  // Create a vector to read stream data. The vector needs to have
+  // at least enough capacity to read all the data.
+  vector<char> mapping_bytes(length);
+  if (!minidump_->ReadBytes(&mapping_bytes[0], length)) {
+    BPLOG(ERROR) << "MinidumpLinuxMapsList failed to read bytes";
+    return false;
+  }
+  string map_string(mapping_bytes.begin(), mapping_bytes.end());
+  vector<MappedMemoryRegion> all_regions;
+
+  // Parse string into mapping data.
+  if (!ParseProcMaps(map_string, &all_regions)) {
+    return false;
+  }
+
+  scoped_ptr<MinidumpLinuxMappings> maps(new MinidumpLinuxMappings());
+
+  // Push mapping data into wrapper classes.
+  for (size_t i = 0; i < all_regions.size(); i++) {
+    scoped_ptr<MinidumpLinuxMaps> ele(new MinidumpLinuxMaps(minidump_));
+    ele->region_ = all_regions[i];
+    ele->valid_ = true;
+    maps->push_back(ele.release());
+  }
+
+  // Set instance variables.
+  maps_ = maps.release();
+  maps_count_ = static_cast<uint32_t>(maps_->size());
+  valid_ = true;
+  return true;
+}
+
+void MinidumpLinuxMapsList::Print() const {
+  if (!valid_ || (maps_ == NULL)) {
+    BPLOG(ERROR) << "MinidumpLinuxMapsList cannot print valid data";
+    return;
+  }
+  for (size_t i = 0; i < maps_->size(); i++) {
+    (*maps_)[i]->Print();
+  }
+}
+
+//
+// MinidumpCrashpadInfo
+//
+
+
+MinidumpCrashpadInfo::MinidumpCrashpadInfo(Minidump* minidump)
+    : MinidumpStream(minidump),
+      crashpad_info_(),
+      module_crashpad_info_links_(),
+      module_crashpad_info_(),
+      module_crashpad_info_list_annotations_(),
+      module_crashpad_info_simple_annotations_(),
+      simple_annotations_() {
+}
+
+
+bool MinidumpCrashpadInfo::Read(uint32_t expected_size) {
+  valid_ = false;
+
+  if (expected_size != sizeof(crashpad_info_)) {
+    BPLOG(ERROR) << "MinidumpCrashpadInfo size mismatch, " << expected_size <<
+                    " != " << sizeof(crashpad_info_);
+    return false;
+  }
+
+  if (!minidump_->ReadBytes(&crashpad_info_, sizeof(crashpad_info_))) {
+    BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read Crashpad info";
+    return false;
+  }
+
+  if (minidump_->swap()) {
+    Swap(&crashpad_info_.version);
+    Swap(&crashpad_info_.report_id);
+    Swap(&crashpad_info_.client_id);
+    Swap(&crashpad_info_.simple_annotations);
+    Swap(&crashpad_info_.module_list);
+  }
+
+  if (crashpad_info_.simple_annotations.data_size) {
+    if (!minidump_->ReadSimpleStringDictionary(
+        crashpad_info_.simple_annotations.rva,
+        &simple_annotations_)) {
+      BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read simple_annotations";
+      return false;
+    }
+  }
+
+  if (crashpad_info_.module_list.data_size) {
+    if (!minidump_->SeekSet(crashpad_info_.module_list.rva)) {
+      BPLOG(ERROR) << "MinidumpCrashpadInfo cannot seek to module_list";
+      return false;
+    }
+
+    uint32_t count;
+    if (!minidump_->ReadBytes(&count, sizeof(count))) {
+      BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read module_list count";
+      return false;
+    }
+
+    if (minidump_->swap()) {
+      Swap(&count);
+    }
+
+    scoped_array<MDRawModuleCrashpadInfoLink> module_crashpad_info_links(
+        new MDRawModuleCrashpadInfoLink[count]);
+
+    // Read the entire array in one fell swoop, instead of reading one entry
+    // at a time in the loop.
+    if (!minidump_->ReadBytes(
+            &module_crashpad_info_links[0],
+            sizeof(MDRawModuleCrashpadInfoLink) * count)) {
+      BPLOG(ERROR)
+          << "MinidumpCrashpadInfo could not read Crashpad module links";
+      return false;
+    }
+
+    for (uint32_t index = 0; index < count; ++index) {
+      if (minidump_->swap()) {
+        Swap(&module_crashpad_info_links[index].minidump_module_list_index);
+        Swap(&module_crashpad_info_links[index].location);
+      }
+
+      if (!minidump_->SeekSet(module_crashpad_info_links[index].location.rva)) {
+        BPLOG(ERROR)
+            << "MinidumpCrashpadInfo cannot seek to Crashpad module info";
+        return false;
+      }
+
+      MDRawModuleCrashpadInfo module_crashpad_info;
+      if (!minidump_->ReadBytes(&module_crashpad_info,
+                                sizeof(module_crashpad_info))) {
+        BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read Crashpad module info";
+        return false;
+      }
+
+      if (minidump_->swap()) {
+        Swap(&module_crashpad_info.version);
+        Swap(&module_crashpad_info.list_annotations);
+        Swap(&module_crashpad_info.simple_annotations);
+      }
+
+      std::vector<std::string> list_annotations;
+      if (module_crashpad_info.list_annotations.data_size) {
+        if (!minidump_->ReadStringList(
+                module_crashpad_info.list_annotations.rva,
+                &list_annotations)) {
+          BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read Crashpad module "
+              "info list annotations";
+          return false;
+        }
+      }
+
+      std::map<std::string, std::string> simple_annotations;
+      if (module_crashpad_info.simple_annotations.data_size) {
+        if (!minidump_->ReadSimpleStringDictionary(
+                module_crashpad_info.simple_annotations.rva,
+                &simple_annotations)) {
+          BPLOG(ERROR) << "MinidumpCrashpadInfo cannot read Crashpad module "
+              "info simple annotations";
+          return false;
+        }
+      }
+
+      module_crashpad_info_links_.push_back(
+          module_crashpad_info_links[index].minidump_module_list_index);
+      module_crashpad_info_.push_back(module_crashpad_info);
+      module_crashpad_info_list_annotations_.push_back(list_annotations);
+      module_crashpad_info_simple_annotations_.push_back(simple_annotations);
+    }
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+void MinidumpCrashpadInfo::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "MinidumpCrashpadInfo cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawCrashpadInfo\n");
+  printf("  version = %d\n", crashpad_info_.version);
+  printf("  report_id = %s\n",
+         MDGUIDToString(crashpad_info_.report_id).c_str());
+  printf("  client_id = %s\n",
+         MDGUIDToString(crashpad_info_.client_id).c_str());
+  for (std::map<std::string, std::string>::const_iterator iterator =
+           simple_annotations_.begin();
+       iterator != simple_annotations_.end();
+       ++iterator) {
+    printf("  simple_annotations[\"%s\"] = %s\n",
+           iterator->first.c_str(), iterator->second.c_str());
+  }
+  for (uint32_t module_index = 0;
+       module_index < module_crashpad_info_links_.size();
+       ++module_index) {
+    printf("  module_list[%d].minidump_module_list_index = %d\n",
+           module_index, module_crashpad_info_links_[module_index]);
+    printf("  module_list[%d].version = %d\n",
+           module_index, module_crashpad_info_[module_index].version);
+    for (uint32_t annotation_index = 0;
+         annotation_index <
+             module_crashpad_info_list_annotations_[module_index].size();
+         ++annotation_index) {
+      printf("  module_list[%d].list_annotations[%d] = %s\n",
+             module_index,
+             annotation_index,
+             module_crashpad_info_list_annotations_
+                 [module_index][annotation_index].c_str());
+    }
+    for (std::map<std::string, std::string>::const_iterator iterator =
+             module_crashpad_info_simple_annotations_[module_index].begin();
+         iterator !=
+             module_crashpad_info_simple_annotations_[module_index].end();
+         ++iterator) {
+      printf("  module_list[%d].simple_annotations[\"%s\"] = %s\n",
+             module_index, iterator->first.c_str(), iterator->second.c_str());
+    }
+  }
+
+  printf("\n");
+}
+
+
+//
+// Minidump
+//
+
+
+uint32_t Minidump::max_streams_ = 128;
+unsigned int Minidump::max_string_length_ = 1024;
+
+
+Minidump::Minidump(const string& path, bool hexdump, unsigned int hexdump_width)
+    : header_(),
+      directory_(NULL),
+      stream_map_(new MinidumpStreamMap()),
+      path_(path),
+      stream_(NULL),
+      swap_(false),
+      is_big_endian_(false),
+      valid_(false),
+      hexdump_(hexdump),
+      hexdump_width_(hexdump_width) {
+}
+
+Minidump::Minidump(istream& stream)
+    : header_(),
+      directory_(NULL),
+      stream_map_(new MinidumpStreamMap()),
+      path_(),
+      stream_(&stream),
+      swap_(false),
+      is_big_endian_(false),
+      valid_(false),
+      hexdump_(false),
+      hexdump_width_(0) {
+}
+
+Minidump::~Minidump() {
+  if (stream_) {
+    BPLOG(INFO) << "Minidump closing minidump";
+  }
+  if (!path_.empty()) {
+    delete stream_;
+  }
+  delete directory_;
+  delete stream_map_;
+}
+
+
+bool Minidump::Open() {
+  if (stream_ != NULL) {
+    BPLOG(INFO) << "Minidump reopening minidump " << path_;
+
+    // The file is already open.  Seek to the beginning, which is the position
+    // the file would be at if it were opened anew.
+    return SeekSet(0);
+  }
+
+  stream_ = new ifstream(path_.c_str(), std::ios::in | std::ios::binary);
+  if (!stream_ || !stream_->good()) {
+    string error_string;
+    int error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "Minidump could not open minidump " << path_ <<
+                    ", error " << error_code << ": " << error_string;
+    return false;
+  }
+
+  BPLOG(INFO) << "Minidump opened minidump " << path_;
+  return true;
+}
+
+bool Minidump::GetContextCPUFlagsFromSystemInfo(uint32_t* context_cpu_flags) {
+  // Initialize output parameters
+  *context_cpu_flags = 0;
+
+  // Save the current stream position
+  off_t saved_position = Tell();
+  if (saved_position == -1) {
+    // Failed to save the current stream position.
+    // Returns true because the current position of the stream is preserved.
+    return true;
+  }
+
+  const MDRawSystemInfo* system_info =
+    GetSystemInfo() ? GetSystemInfo()->system_info() : NULL;
+
+  if (system_info != NULL) {
+    switch (system_info->processor_architecture) {
+      case MD_CPU_ARCHITECTURE_X86:
+        *context_cpu_flags = MD_CONTEXT_X86;
+        break;
+      case MD_CPU_ARCHITECTURE_MIPS:
+        *context_cpu_flags = MD_CONTEXT_MIPS;
+        break;
+      case MD_CPU_ARCHITECTURE_MIPS64:
+        *context_cpu_flags = MD_CONTEXT_MIPS64;
+        break;
+      case MD_CPU_ARCHITECTURE_ALPHA:
+        *context_cpu_flags = MD_CONTEXT_ALPHA;
+        break;
+      case MD_CPU_ARCHITECTURE_PPC:
+        *context_cpu_flags = MD_CONTEXT_PPC;
+        break;
+      case MD_CPU_ARCHITECTURE_PPC64:
+        *context_cpu_flags = MD_CONTEXT_PPC64;
+        break;
+      case MD_CPU_ARCHITECTURE_SHX:
+        *context_cpu_flags = MD_CONTEXT_SHX;
+        break;
+      case MD_CPU_ARCHITECTURE_ARM:
+        *context_cpu_flags = MD_CONTEXT_ARM;
+        break;
+      case MD_CPU_ARCHITECTURE_ARM64:
+        *context_cpu_flags = MD_CONTEXT_ARM64;
+        break;
+      case MD_CPU_ARCHITECTURE_ARM64_OLD:
+        *context_cpu_flags = MD_CONTEXT_ARM64_OLD;
+        break;
+      case MD_CPU_ARCHITECTURE_IA64:
+        *context_cpu_flags = MD_CONTEXT_IA64;
+        break;
+      case MD_CPU_ARCHITECTURE_ALPHA64:
+        *context_cpu_flags = 0;
+        break;
+      case MD_CPU_ARCHITECTURE_MSIL:
+        *context_cpu_flags = 0;
+        break;
+      case MD_CPU_ARCHITECTURE_AMD64:
+        *context_cpu_flags = MD_CONTEXT_AMD64;
+        break;
+      case MD_CPU_ARCHITECTURE_X86_WIN64:
+        *context_cpu_flags = 0;
+        break;
+      case MD_CPU_ARCHITECTURE_SPARC:
+        *context_cpu_flags = MD_CONTEXT_SPARC;
+        break;
+      case MD_CPU_ARCHITECTURE_UNKNOWN:
+        *context_cpu_flags = 0;
+        break;
+      default:
+        *context_cpu_flags = 0;
+        break;
+    }
+  }
+
+  // Restore position and return
+  return SeekSet(saved_position);
+}
+
+
+bool Minidump::Read() {
+  // Invalidate cached data.
+  delete directory_;
+  directory_ = NULL;
+  stream_map_->clear();
+
+  valid_ = false;
+
+  if (!Open()) {
+    BPLOG(ERROR) << "Minidump cannot open minidump";
+    return false;
+  }
+
+  if (!ReadBytes(&header_, sizeof(MDRawHeader))) {
+    BPLOG(ERROR) << "Minidump cannot read header";
+    return false;
+  }
+
+  if (header_.signature != MD_HEADER_SIGNATURE) {
+    // The file may be byte-swapped.  Under the present architecture, these
+    // classes don't know or need to know what CPU (or endianness) the
+    // minidump was produced on in order to parse it.  Use the signature as
+    // a byte order marker.
+    uint32_t signature_swapped = header_.signature;
+    Swap(&signature_swapped);
+    if (signature_swapped != MD_HEADER_SIGNATURE) {
+      // This isn't a minidump or a byte-swapped minidump.
+      BPLOG(ERROR) << "Minidump header signature mismatch: (" <<
+                      HexString(header_.signature) << ", " <<
+                      HexString(signature_swapped) << ") != " <<
+                      HexString(MD_HEADER_SIGNATURE);
+      return false;
+    }
+    swap_ = true;
+  } else {
+    // The file is not byte-swapped.  Set swap_ false (it may have been true
+    // if the object is being reused?)
+    swap_ = false;
+  }
+
+#if defined(__BIG_ENDIAN__) || \
+  (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+  is_big_endian_ = !swap_;
+#else
+  is_big_endian_ = swap_;
+#endif
+
+  BPLOG(INFO) << "Minidump " << (swap_ ? "" : "not ") <<
+                 "byte-swapping minidump";
+
+  if (swap_) {
+    Swap(&header_.signature);
+    Swap(&header_.version);
+    Swap(&header_.stream_count);
+    Swap(&header_.stream_directory_rva);
+    Swap(&header_.checksum);
+    Swap(&header_.time_date_stamp);
+    Swap(&header_.flags);
+  }
+
+  // Version check.  The high 16 bits of header_.version contain something
+  // else "implementation specific."
+  if ((header_.version & 0x0000ffff) != MD_HEADER_VERSION) {
+    BPLOG(ERROR) << "Minidump version mismatch: " <<
+                    HexString(header_.version & 0x0000ffff) << " != " <<
+                    HexString(MD_HEADER_VERSION);
+    return false;
+  }
+
+  if (!SeekSet(header_.stream_directory_rva)) {
+    BPLOG(ERROR) << "Minidump cannot seek to stream directory";
+    return false;
+  }
+
+  if (header_.stream_count > max_streams_) {
+    BPLOG(ERROR) << "Minidump stream count " << header_.stream_count <<
+                    " exceeds maximum " << max_streams_;
+    return false;
+  }
+
+  if (header_.stream_count != 0) {
+    scoped_ptr<MinidumpDirectoryEntries> directory(
+        new MinidumpDirectoryEntries(header_.stream_count));
+
+    // Read the entire array in one fell swoop, instead of reading one entry
+    // at a time in the loop.
+    if (!ReadBytes(&(*directory)[0],
+                   sizeof(MDRawDirectory) * header_.stream_count)) {
+      BPLOG(ERROR) << "Minidump cannot read stream directory";
+      return false;
+    }
+
+    for (unsigned int stream_index = 0;
+         stream_index < header_.stream_count;
+         ++stream_index) {
+      MDRawDirectory* directory_entry = &(*directory)[stream_index];
+
+      if (swap_) {
+        Swap(&directory_entry->stream_type);
+        Swap(&directory_entry->location);
+      }
+
+      // Initialize the stream_map_ map, which speeds locating a stream by
+      // type.
+      unsigned int stream_type = directory_entry->stream_type;
+      switch (stream_type) {
+        case MD_THREAD_LIST_STREAM:
+        case MD_MODULE_LIST_STREAM:
+        case MD_MEMORY_LIST_STREAM:
+        case MD_EXCEPTION_STREAM:
+        case MD_SYSTEM_INFO_STREAM:
+        case MD_MISC_INFO_STREAM:
+        case MD_BREAKPAD_INFO_STREAM:
+        case MD_CRASHPAD_INFO_STREAM: {
+          if (stream_map_->find(stream_type) != stream_map_->end()) {
+            // Another stream with this type was already found.  A minidump
+            // file should contain at most one of each of these stream types.
+            BPLOG(ERROR) << "Minidump found multiple streams of type " <<
+                            stream_type << ", but can only deal with one";
+            return false;
+          }
+          BP_FALLTHROUGH;
+        }
+
+        default: {
+          // Overwrites for stream types other than those above, but it's
+          // expected to be the user's burden in that case.
+          (*stream_map_)[stream_type].stream_index = stream_index;
+        }
+      }
+    }
+
+    directory_ = directory.release();
+  }
+
+  valid_ = true;
+  return true;
+}
+
+
+MinidumpThreadList* Minidump::GetThreadList() {
+  MinidumpThreadList* thread_list;
+  return GetStream(&thread_list);
+}
+
+
+MinidumpModuleList* Minidump::GetModuleList() {
+  MinidumpModuleList* module_list;
+  return GetStream(&module_list);
+}
+
+
+MinidumpMemoryList* Minidump::GetMemoryList() {
+  MinidumpMemoryList* memory_list;
+  return GetStream(&memory_list);
+}
+
+
+MinidumpException* Minidump::GetException() {
+  MinidumpException* exception;
+  return GetStream(&exception);
+}
+
+MinidumpAssertion* Minidump::GetAssertion() {
+  MinidumpAssertion* assertion;
+  return GetStream(&assertion);
+}
+
+
+MinidumpSystemInfo* Minidump::GetSystemInfo() {
+  MinidumpSystemInfo* system_info;
+  return GetStream(&system_info);
+}
+
+
+MinidumpUnloadedModuleList* Minidump::GetUnloadedModuleList() {
+  MinidumpUnloadedModuleList* unloaded_module_list;
+  return GetStream(&unloaded_module_list);
+}
+
+
+MinidumpMiscInfo* Minidump::GetMiscInfo() {
+  MinidumpMiscInfo* misc_info;
+  return GetStream(&misc_info);
+}
+
+
+MinidumpBreakpadInfo* Minidump::GetBreakpadInfo() {
+  MinidumpBreakpadInfo* breakpad_info;
+  return GetStream(&breakpad_info);
+}
+
+MinidumpMemoryInfoList* Minidump::GetMemoryInfoList() {
+  MinidumpMemoryInfoList* memory_info_list;
+  return GetStream(&memory_info_list);
+}
+
+MinidumpLinuxMapsList* Minidump::GetLinuxMapsList() {
+  MinidumpLinuxMapsList* linux_maps_list;
+  return GetStream(&linux_maps_list);
+}
+
+bool Minidump::IsAndroid() {
+  MDOSPlatform platform;
+  return GetPlatform(&platform) && platform == MD_OS_ANDROID;
+}
+
+bool Minidump::GetPlatform(MDOSPlatform* platform) {
+  // Save the current stream position
+  off_t saved_position = Tell();
+  if (saved_position == -1) {
+    return false;
+  }
+  const MDRawSystemInfo* system_info =
+    GetSystemInfo() ? GetSystemInfo()->system_info() : NULL;
+
+  // Restore position and return
+  if (!SeekSet(saved_position)) {
+    BPLOG(ERROR) << "Couldn't seek back to saved position";
+    return false;
+  }
+
+  if (!system_info) {
+    return false;
+  }
+  *platform = static_cast<MDOSPlatform>(system_info->platform_id);
+  return true;
+}
+
+MinidumpCrashpadInfo* Minidump::GetCrashpadInfo() {
+  MinidumpCrashpadInfo* crashpad_info;
+  return GetStream(&crashpad_info);
+}
+
+static const char* get_stream_name(uint32_t stream_type) {
+  switch (stream_type) {
+  case MD_UNUSED_STREAM:
+    return "MD_UNUSED_STREAM";
+  case MD_RESERVED_STREAM_0:
+    return "MD_RESERVED_STREAM_0";
+  case MD_RESERVED_STREAM_1:
+    return "MD_RESERVED_STREAM_1";
+  case MD_THREAD_LIST_STREAM:
+    return "MD_THREAD_LIST_STREAM";
+  case MD_MODULE_LIST_STREAM:
+    return "MD_MODULE_LIST_STREAM";
+  case MD_MEMORY_LIST_STREAM:
+    return "MD_MEMORY_LIST_STREAM";
+  case MD_EXCEPTION_STREAM:
+    return "MD_EXCEPTION_STREAM";
+  case MD_SYSTEM_INFO_STREAM:
+    return "MD_SYSTEM_INFO_STREAM";
+  case MD_THREAD_EX_LIST_STREAM:
+    return "MD_THREAD_EX_LIST_STREAM";
+  case MD_MEMORY_64_LIST_STREAM:
+    return "MD_MEMORY_64_LIST_STREAM";
+  case MD_COMMENT_STREAM_A:
+    return "MD_COMMENT_STREAM_A";
+  case MD_COMMENT_STREAM_W:
+    return "MD_COMMENT_STREAM_W";
+  case MD_HANDLE_DATA_STREAM:
+    return "MD_HANDLE_DATA_STREAM";
+  case MD_FUNCTION_TABLE_STREAM:
+    return "MD_FUNCTION_TABLE_STREAM";
+  case MD_UNLOADED_MODULE_LIST_STREAM:
+    return "MD_UNLOADED_MODULE_LIST_STREAM";
+  case MD_MISC_INFO_STREAM:
+    return "MD_MISC_INFO_STREAM";
+  case MD_MEMORY_INFO_LIST_STREAM:
+    return "MD_MEMORY_INFO_LIST_STREAM";
+  case MD_THREAD_INFO_LIST_STREAM:
+    return "MD_THREAD_INFO_LIST_STREAM";
+  case MD_HANDLE_OPERATION_LIST_STREAM:
+    return "MD_HANDLE_OPERATION_LIST_STREAM";
+  case MD_TOKEN_STREAM:
+    return "MD_TOKEN_STREAM";
+  case MD_JAVASCRIPT_DATA_STREAM:
+    return "MD_JAVASCRIPT_DATA_STREAM";
+  case MD_SYSTEM_MEMORY_INFO_STREAM:
+    return "MD_SYSTEM_MEMORY_INFO_STREAM";
+  case MD_PROCESS_VM_COUNTERS_STREAM:
+    return "MD_PROCESS_VM_COUNTERS_STREAM";
+  case MD_LAST_RESERVED_STREAM:
+    return "MD_LAST_RESERVED_STREAM";
+  case MD_BREAKPAD_INFO_STREAM:
+    return "MD_BREAKPAD_INFO_STREAM";
+  case MD_ASSERTION_INFO_STREAM:
+    return "MD_ASSERTION_INFO_STREAM";
+  case MD_LINUX_CPU_INFO:
+    return "MD_LINUX_CPU_INFO";
+  case MD_LINUX_PROC_STATUS:
+    return "MD_LINUX_PROC_STATUS";
+  case MD_LINUX_LSB_RELEASE:
+    return "MD_LINUX_LSB_RELEASE";
+  case MD_LINUX_CMD_LINE:
+    return "MD_LINUX_CMD_LINE";
+  case MD_LINUX_ENVIRON:
+    return "MD_LINUX_ENVIRON";
+  case MD_LINUX_AUXV:
+    return "MD_LINUX_AUXV";
+  case MD_LINUX_MAPS:
+    return "MD_LINUX_MAPS";
+  case MD_LINUX_DSO_DEBUG:
+    return "MD_LINUX_DSO_DEBUG";
+  case MD_CRASHPAD_INFO_STREAM:
+    return "MD_CRASHPAD_INFO_STREAM";
+  default:
+    return "unknown";
+  }
+}
+
+void Minidump::Print() {
+  if (!valid_) {
+    BPLOG(ERROR) << "Minidump cannot print invalid data";
+    return;
+  }
+
+  printf("MDRawHeader\n");
+  printf("  signature            = 0x%x\n",    header_.signature);
+  printf("  version              = 0x%x\n",    header_.version);
+  printf("  stream_count         = %d\n",      header_.stream_count);
+  printf("  stream_directory_rva = 0x%x\n",    header_.stream_directory_rva);
+  printf("  checksum             = 0x%x\n",    header_.checksum);
+  printf("  time_date_stamp      = 0x%x %s\n",
+         header_.time_date_stamp,
+         TimeTToUTCString(header_.time_date_stamp).c_str());
+  printf("  flags                = 0x%" PRIx64 "\n",  header_.flags);
+  printf("\n");
+
+  for (unsigned int stream_index = 0;
+       stream_index < header_.stream_count;
+       ++stream_index) {
+    MDRawDirectory* directory_entry = &(*directory_)[stream_index];
+
+    printf("mDirectory[%d]\n", stream_index);
+    printf("MDRawDirectory\n");
+    printf("  stream_type        = 0x%x (%s)\n", directory_entry->stream_type,
+           get_stream_name(directory_entry->stream_type));
+    printf("  location.data_size = %d\n",
+           directory_entry->location.data_size);
+    printf("  location.rva       = 0x%x\n", directory_entry->location.rva);
+    printf("\n");
+  }
+
+  printf("Streams:\n");
+  for (MinidumpStreamMap::const_iterator iterator = stream_map_->begin();
+       iterator != stream_map_->end();
+       ++iterator) {
+    uint32_t stream_type = iterator->first;
+    const MinidumpStreamInfo& info = iterator->second;
+    printf("  stream type 0x%x (%s) at index %d\n", stream_type,
+           get_stream_name(stream_type),
+           info.stream_index);
+  }
+  printf("\n");
+}
+
+
+const MDRawDirectory* Minidump::GetDirectoryEntryAtIndex(unsigned int index)
+      const {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid Minidump for GetDirectoryEntryAtIndex";
+    return NULL;
+  }
+
+  if (index >= header_.stream_count) {
+    BPLOG(ERROR) << "Minidump stream directory index out of range: " <<
+                    index << "/" << header_.stream_count;
+    return NULL;
+  }
+
+  return &(*directory_)[index];
+}
+
+
+bool Minidump::ReadBytes(void* bytes, size_t count) {
+  // Can't check valid_ because Read needs to call this method before
+  // validity can be determined.
+  if (!stream_) {
+    return false;
+  }
+  stream_->read(static_cast<char*>(bytes), count);
+  std::streamsize bytes_read = stream_->gcount();
+  if (bytes_read == -1) {
+    string error_string;
+    int error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "ReadBytes: error " << error_code << ": " << error_string;
+    return false;
+  }
+
+  // Convert to size_t and check for data loss
+  size_t bytes_read_converted = static_cast<size_t>(bytes_read);
+  if (static_cast<std::streamsize>(bytes_read_converted) != bytes_read) {
+    BPLOG(ERROR) << "ReadBytes: conversion data loss detected when converting "
+                 << bytes_read << " to " << bytes_read_converted;
+    return false;
+  }
+
+  if (bytes_read_converted != count) {
+    BPLOG(ERROR) << "ReadBytes: read " << bytes_read_converted << "/" << count;
+    return false;
+  }
+
+  return true;
+}
+
+
+bool Minidump::SeekSet(off_t offset) {
+  // Can't check valid_ because Read needs to call this method before
+  // validity can be determined.
+  if (!stream_) {
+    return false;
+  }
+  stream_->seekg(offset, std::ios_base::beg);
+  if (!stream_->good()) {
+    string error_string;
+    int error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "SeekSet: error " << error_code << ": " << error_string;
+    return false;
+  }
+  return true;
+}
+
+off_t Minidump::Tell() {
+  if (!valid_ || !stream_) {
+    return (off_t)-1;
+  }
+
+  // Check for conversion data loss
+  std::streamoff std_streamoff = stream_->tellg();
+  off_t rv = static_cast<off_t>(std_streamoff);
+  if (static_cast<std::streamoff>(rv) == std_streamoff) {
+    return rv;
+  } else {
+    BPLOG(ERROR) << "Data loss detected";
+    return (off_t)-1;
+  }
+}
+
+
+string* Minidump::ReadString(off_t offset) {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid Minidump for ReadString";
+    return NULL;
+  }
+  if (!SeekSet(offset)) {
+    BPLOG(ERROR) << "ReadString could not seek to string at offset " << offset;
+    return NULL;
+  }
+
+  uint32_t bytes;
+  if (!ReadBytes(&bytes, sizeof(bytes))) {
+    BPLOG(ERROR) << "ReadString could not read string size at offset " <<
+                    offset;
+    return NULL;
+  }
+  if (swap_)
+    Swap(&bytes);
+
+  if (bytes % 2 != 0) {
+    BPLOG(ERROR) << "ReadString found odd-sized " << bytes <<
+                    "-byte string at offset " << offset;
+    return NULL;
+  }
+  unsigned int utf16_words = bytes / 2;
+
+  if (utf16_words > max_string_length_) {
+    BPLOG(ERROR) << "ReadString string length " << utf16_words <<
+                    " exceeds maximum " << max_string_length_ <<
+                    " at offset " << offset;
+    return NULL;
+  }
+
+  vector<uint16_t> string_utf16(utf16_words);
+
+  if (utf16_words) {
+    if (!ReadBytes(&string_utf16[0], bytes)) {
+      BPLOG(ERROR) << "ReadString could not read " << bytes <<
+                      "-byte string at offset " << offset;
+      return NULL;
+    }
+  }
+
+  return UTF16ToUTF8(string_utf16, swap_);
+}
+
+
+bool Minidump::ReadUTF8String(off_t offset, string* string_utf8) {
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid Minidump for ReadString";
+    return false;
+  }
+  if (!SeekSet(offset)) {
+    BPLOG(ERROR) << "ReadUTF8String could not seek to string at offset "
+                 << offset;
+    return false;
+  }
+
+  uint32_t bytes;
+  if (!ReadBytes(&bytes, sizeof(bytes))) {
+    BPLOG(ERROR) << "ReadUTF8String could not read string size at offset " <<
+                    offset;
+    return false;
+  }
+
+  if (swap_) {
+    Swap(&bytes);
+  }
+
+  if (bytes > max_string_length_) {
+    BPLOG(ERROR) << "ReadUTF8String string length " << bytes <<
+                    " exceeds maximum " << max_string_length_ <<
+                    " at offset " << offset;
+    return false;
+  }
+
+  string_utf8->resize(bytes);
+
+  if (!ReadBytes(&(*string_utf8)[0], bytes)) {
+    BPLOG(ERROR) << "ReadUTF8String could not read " << bytes <<
+                    "-byte string at offset " << offset;
+    return false;
+  }
+
+  return true;
+}
+
+
+bool Minidump::ReadStringList(
+    off_t offset,
+    std::vector<std::string>* string_list) {
+  string_list->clear();
+
+  if (!SeekSet(offset)) {
+    BPLOG(ERROR) << "Minidump cannot seek to string_list";
+    return false;
+  }
+
+  uint32_t count;
+  if (!ReadBytes(&count, sizeof(count))) {
+    BPLOG(ERROR) << "Minidump cannot read string_list count";
+    return false;
+  }
+
+  if (swap_) {
+    Swap(&count);
+  }
+
+  scoped_array<MDRVA> rvas(new MDRVA[count]);
+
+  // Read the entire array in one fell swoop, instead of reading one entry
+  // at a time in the loop.
+  if (!ReadBytes(&rvas[0], sizeof(MDRVA) * count)) {
+    BPLOG(ERROR) << "Minidump could not read string_list";
+    return false;
+  }
+
+  for (uint32_t index = 0; index < count; ++index) {
+    if (swap()) {
+      Swap(&rvas[index]);
+    }
+
+    string entry;
+    if (!ReadUTF8String(rvas[index], &entry)) {
+      BPLOG(ERROR) << "Minidump could not read string_list entry";
+      return false;
+    }
+
+    string_list->push_back(entry);
+  }
+
+  return true;
+}
+
+
+bool Minidump::ReadSimpleStringDictionary(
+    off_t offset,
+    std::map<std::string, std::string>* simple_string_dictionary) {
+  simple_string_dictionary->clear();
+
+  if (!SeekSet(offset)) {
+    BPLOG(ERROR) << "Minidump cannot seek to simple_string_dictionary";
+    return false;
+  }
+
+  uint32_t count;
+  if (!ReadBytes(&count, sizeof(count))) {
+    BPLOG(ERROR)
+        << "Minidump cannot read simple_string_dictionary count";
+    return false;
+  }
+
+  if (swap()) {
+    Swap(&count);
+  }
+
+  scoped_array<MDRawSimpleStringDictionaryEntry> entries(
+      new MDRawSimpleStringDictionaryEntry[count]);
+
+  // Read the entire array in one fell swoop, instead of reading one entry
+  // at a time in the loop.
+  if (!ReadBytes(
+          &entries[0],
+          sizeof(MDRawSimpleStringDictionaryEntry) * count)) {
+    BPLOG(ERROR) << "Minidump could not read simple_string_dictionary";
+    return false;
+  }
+
+  for (uint32_t index = 0; index < count; ++index) {
+    if (swap()) {
+      Swap(&entries[index]);
+    }
+
+    string key;
+    if (!ReadUTF8String(entries[index].key, &key)) {
+      BPLOG(ERROR) << "Minidump could not read simple_string_dictionary key";
+      return false;
+    }
+
+    string value;
+    if (!ReadUTF8String(entries[index].value, &value)) {
+      BPLOG(ERROR) << "Minidump could not read simple_string_dictionary value";
+      return false;
+    }
+
+    if (simple_string_dictionary->find(key) !=
+        simple_string_dictionary->end()) {
+      BPLOG(ERROR)
+          << "Minidump: discarding duplicate simple_string_dictionary value "
+          << value << " for key " << key;
+    } else {
+      simple_string_dictionary->insert(std::make_pair(key, value));
+    }
+  }
+
+  return true;
+}
+
+
+bool Minidump::SeekToStreamType(uint32_t  stream_type,
+                                uint32_t* stream_length) {
+  BPLOG_IF(ERROR, !stream_length) << "Minidump::SeekToStreamType requires "
+                                     "|stream_length|";
+  assert(stream_length);
+  *stream_length = 0;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid Mindump for SeekToStreamType";
+    return false;
+  }
+
+  MinidumpStreamMap::const_iterator iterator = stream_map_->find(stream_type);
+  if (iterator == stream_map_->end()) {
+    // This stream type didn't exist in the directory.
+    BPLOG(INFO) << "SeekToStreamType: type " << stream_type << " not present";
+    return false;
+  }
+
+  const MinidumpStreamInfo& info = iterator->second;
+  if (info.stream_index >= header_.stream_count) {
+    BPLOG(ERROR) << "SeekToStreamType: type " << stream_type <<
+                    " out of range: " <<
+                    info.stream_index << "/" << header_.stream_count;
+    return false;
+  }
+
+  MDRawDirectory* directory_entry = &(*directory_)[info.stream_index];
+  if (!SeekSet(directory_entry->location.rva)) {
+    BPLOG(ERROR) << "SeekToStreamType could not seek to stream type " <<
+                    stream_type;
+    return false;
+  }
+
+  *stream_length = directory_entry->location.data_size;
+
+  return true;
+}
+
+
+template<typename T>
+T* Minidump::GetStream(T** stream) {
+  // stream is a garbage parameter that's present only to account for C++'s
+  // inability to overload a method based solely on its return type.
+
+  const uint32_t stream_type = T::kStreamType;
+
+  BPLOG_IF(ERROR, !stream) << "Minidump::GetStream type " << stream_type <<
+                              " requires |stream|";
+  assert(stream);
+  *stream = NULL;
+
+  if (!valid_) {
+    BPLOG(ERROR) << "Invalid Minidump for GetStream type " << stream_type;
+    return NULL;
+  }
+
+  MinidumpStreamMap::iterator iterator = stream_map_->find(stream_type);
+  if (iterator == stream_map_->end()) {
+    // This stream type didn't exist in the directory.
+    BPLOG(INFO) << "GetStream: type " << stream_type << " not present";
+    return NULL;
+  }
+
+  // Get a pointer so that the stored stream field can be altered.
+  MinidumpStreamInfo* info = &iterator->second;
+
+  if (info->stream) {
+    // This cast is safe because info.stream is only populated by this
+    // method, and there is a direct correlation between T and stream_type.
+    *stream = static_cast<T*>(info->stream);
+    return *stream;
+  }
+
+  uint32_t stream_length;
+  if (!SeekToStreamType(stream_type, &stream_length)) {
+    BPLOG(ERROR) << "GetStream could not seek to stream type " << stream_type;
+    return NULL;
+  }
+
+  scoped_ptr<T> new_stream(new T(this));
+
+  if (!new_stream->Read(stream_length)) {
+    BPLOG(ERROR) << "GetStream could not read stream type " << stream_type;
+    return NULL;
+  }
+
+  *stream = new_stream.release();
+  info->stream = *stream;
+  return *stream;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/minidump_dump.cc b/src/processor/minidump_dump.cc
new file mode 100644
index 0000000..06802f2
--- /dev/null
+++ b/src/processor/minidump_dump.cc
@@ -0,0 +1,275 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_dump.cc: Print the contents of a minidump file in somewhat
+// readable text.
+//
+// Author: Mark Mentovai
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/minidump.h"
+#include "processor/logging.h"
+
+namespace {
+
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpThreadList;
+using google_breakpad::MinidumpModuleList;
+using google_breakpad::MinidumpMemoryInfoList;
+using google_breakpad::MinidumpMemoryList;
+using google_breakpad::MinidumpException;
+using google_breakpad::MinidumpAssertion;
+using google_breakpad::MinidumpSystemInfo;
+using google_breakpad::MinidumpMiscInfo;
+using google_breakpad::MinidumpBreakpadInfo;
+using google_breakpad::MinidumpCrashpadInfo;
+
+struct Options {
+  Options()
+      : minidumpPath(), hexdump(false), hexdump_width(16) {}
+
+  string minidumpPath;
+  bool hexdump;
+  unsigned int hexdump_width;
+};
+
+static void DumpRawStream(Minidump *minidump,
+                          uint32_t stream_type,
+                          const char *stream_name,
+                          int *errors) {
+  uint32_t length = 0;
+  if (!minidump->SeekToStreamType(stream_type, &length)) {
+    return;
+  }
+
+  printf("Stream %s:\n", stream_name);
+
+  if (length == 0) {
+    printf("\n");
+    return;
+  }
+  std::vector<char> contents(length);
+  if (!minidump->ReadBytes(&contents[0], length)) {
+    ++*errors;
+    BPLOG(ERROR) << "minidump.ReadBytes failed";
+    return;
+  }
+  size_t current_offset = 0;
+  while (current_offset < length) {
+    size_t remaining = length - current_offset;
+    // Printf requires an int and direct casting from size_t results
+    // in compatibility warnings.
+    uint32_t int_remaining = remaining;
+    printf("%.*s", int_remaining, &contents[current_offset]);
+    char *next_null = reinterpret_cast<char*>(
+        memchr(&contents[current_offset], 0, remaining));
+    if (next_null == NULL)
+      break;
+    printf("\\0\n");
+    size_t null_offset = next_null - &contents[0];
+    current_offset = null_offset + 1;
+  }
+  printf("\n\n");
+}
+
+static bool PrintMinidumpDump(const Options& options) {
+  Minidump minidump(options.minidumpPath,
+                    options.hexdump);
+  if (!minidump.Read()) {
+    BPLOG(ERROR) << "minidump.Read() failed";
+    return false;
+  }
+  minidump.Print();
+
+  int errors = 0;
+
+  MinidumpThreadList *thread_list = minidump.GetThreadList();
+  if (!thread_list) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetThreadList() failed";
+  } else {
+    thread_list->Print();
+  }
+
+  // It's useful to be able to see the full list of modules here even if it
+  // would cause minidump_stackwalk to fail.
+  MinidumpModuleList::set_max_modules(UINT32_MAX);
+  MinidumpModuleList *module_list = minidump.GetModuleList();
+  if (!module_list) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetModuleList() failed";
+  } else {
+    module_list->Print();
+  }
+
+  MinidumpMemoryList *memory_list = minidump.GetMemoryList();
+  if (!memory_list) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetMemoryList() failed";
+  } else {
+    memory_list->Print();
+  }
+
+  MinidumpException *exception = minidump.GetException();
+  if (!exception) {
+    BPLOG(INFO) << "minidump.GetException() failed";
+  } else {
+    exception->Print();
+  }
+
+  MinidumpAssertion *assertion = minidump.GetAssertion();
+  if (!assertion) {
+    BPLOG(INFO) << "minidump.GetAssertion() failed";
+  } else {
+    assertion->Print();
+  }
+
+  MinidumpSystemInfo *system_info = minidump.GetSystemInfo();
+  if (!system_info) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetSystemInfo() failed";
+  } else {
+    system_info->Print();
+  }
+
+  MinidumpMiscInfo *misc_info = minidump.GetMiscInfo();
+  if (!misc_info) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetMiscInfo() failed";
+  } else {
+    misc_info->Print();
+  }
+
+  MinidumpBreakpadInfo *breakpad_info = minidump.GetBreakpadInfo();
+  if (!breakpad_info) {
+    // Breakpad info is optional, so don't treat this as an error.
+    BPLOG(INFO) << "minidump.GetBreakpadInfo() failed";
+  } else {
+    breakpad_info->Print();
+  }
+
+  MinidumpMemoryInfoList *memory_info_list = minidump.GetMemoryInfoList();
+  if (!memory_info_list) {
+    ++errors;
+    BPLOG(ERROR) << "minidump.GetMemoryInfoList() failed";
+  } else {
+    memory_info_list->Print();
+  }
+
+  MinidumpCrashpadInfo *crashpad_info = minidump.GetCrashpadInfo();
+  if (crashpad_info) {
+    // Crashpad info is optional, so don't treat absence as an error.
+    crashpad_info->Print();
+  }
+
+  DumpRawStream(&minidump,
+                MD_LINUX_CMD_LINE,
+                "MD_LINUX_CMD_LINE",
+                &errors);
+  DumpRawStream(&minidump,
+                MD_LINUX_ENVIRON,
+                "MD_LINUX_ENVIRON",
+                &errors);
+  DumpRawStream(&minidump,
+                MD_LINUX_LSB_RELEASE,
+                "MD_LINUX_LSB_RELEASE",
+                &errors);
+  DumpRawStream(&minidump,
+                MD_LINUX_PROC_STATUS,
+                "MD_LINUX_PROC_STATUS",
+                &errors);
+  DumpRawStream(&minidump,
+                MD_LINUX_CPU_INFO,
+                "MD_LINUX_CPU_INFO",
+                &errors);
+  DumpRawStream(&minidump,
+                MD_LINUX_MAPS,
+                "MD_LINUX_MAPS",
+                &errors);
+
+  return errors == 0;
+}
+
+//=============================================================================
+static void
+Usage(int argc, char *argv[], bool error) {
+  FILE *fp = error ? stderr : stdout;
+
+  fprintf(fp,
+          "Usage: %s [options...] <minidump>\n"
+          "Dump data in a minidump.\n"
+          "\n"
+          "Options:\n"
+          "  <minidump> should be a minidump.\n"
+          "  -x:\t Display memory in a hexdump like format\n"
+          "  -h:\t Usage\n",
+          argv[0]);
+}
+
+//=============================================================================
+static void
+SetupOptions(int argc, char *argv[], Options *options) {
+  int ch;
+
+  while ((ch = getopt(argc, (char * const*)argv, "xh")) != -1) {
+    switch (ch) {
+      case 'x':
+        options->hexdump = true;
+        break;
+      case 'h':
+        Usage(argc, argv, false);
+        exit(0);
+
+      default:
+        Usage(argc, argv, true);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 1) {
+    fprintf(stderr, "%s: Missing minidump file\n", argv[0]);
+    exit(1);
+  }
+
+  options->minidumpPath = argv[optind];
+}
+
+}  // namespace
+
+int main(int argc, char *argv[]) {
+  Options options;
+  BPLOG_INIT(&argc, &argv);
+  SetupOptions(argc, argv, &options);
+  return PrintMinidumpDump(options) ? 0 : 1;
+}
diff --git a/src/processor/minidump_dump_test b/src/processor/minidump_dump_test
new file mode 100755
index 0000000..fb62ace
--- /dev/null
+++ b/src/processor/minidump_dump_test
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# Copyright (c) 2006, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+testdata_dir=$srcdir/src/processor/testdata
+./src/processor/minidump_dump $testdata_dir/minidump2.dmp | \
+ tr -d '\015' | \
+ diff -u $testdata_dir/minidump2.dump.out -
+exit $?
diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc
new file mode 100644
index 0000000..04b7e12
--- /dev/null
+++ b/src/processor/minidump_processor.cc
@@ -0,0 +1,1798 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "google_breakpad/processor/minidump_processor.h"
+
+#include <assert.h>
+
+#include <algorithm>
+#include <string>
+
+#include "common/scoped_ptr.h"
+#include "common/stdio_wrapper.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/exploitability.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_x86.h"
+#include "processor/symbolic_constants_win.h"
+
+namespace google_breakpad {
+
+MinidumpProcessor::MinidumpProcessor(SymbolSupplier* supplier,
+                                     SourceLineResolverInterface* resolver)
+    : frame_symbolizer_(new StackFrameSymbolizer(supplier, resolver)),
+      own_frame_symbolizer_(true),
+      enable_exploitability_(false),
+      enable_objdump_(false) {
+}
+
+MinidumpProcessor::MinidumpProcessor(SymbolSupplier* supplier,
+                                     SourceLineResolverInterface* resolver,
+                                     bool enable_exploitability)
+    : frame_symbolizer_(new StackFrameSymbolizer(supplier, resolver)),
+      own_frame_symbolizer_(true),
+      enable_exploitability_(enable_exploitability),
+      enable_objdump_(false) {
+}
+
+MinidumpProcessor::MinidumpProcessor(StackFrameSymbolizer* frame_symbolizer,
+                                     bool enable_exploitability)
+    : frame_symbolizer_(frame_symbolizer),
+      own_frame_symbolizer_(false),
+      enable_exploitability_(enable_exploitability),
+      enable_objdump_(false) {
+  assert(frame_symbolizer_);
+}
+
+MinidumpProcessor::~MinidumpProcessor() {
+  if (own_frame_symbolizer_) delete frame_symbolizer_;
+}
+
+ProcessResult MinidumpProcessor::Process(
+    Minidump* dump, ProcessState* process_state) {
+  assert(dump);
+  assert(process_state);
+
+  process_state->Clear();
+
+  const MDRawHeader* header = dump->header();
+  if (!header) {
+    BPLOG(ERROR) << "Minidump " << dump->path() << " has no header";
+    return PROCESS_ERROR_NO_MINIDUMP_HEADER;
+  }
+  process_state->time_date_stamp_ = header->time_date_stamp;
+
+  bool has_process_create_time =
+      GetProcessCreateTime(dump, &process_state->process_create_time_);
+
+  bool has_cpu_info = GetCPUInfo(dump, &process_state->system_info_);
+  bool has_os_info = GetOSInfo(dump, &process_state->system_info_);
+
+  uint32_t dump_thread_id = 0;
+  bool has_dump_thread = false;
+  uint32_t requesting_thread_id = 0;
+  bool has_requesting_thread = false;
+
+  MinidumpBreakpadInfo* breakpad_info = dump->GetBreakpadInfo();
+  if (breakpad_info) {
+    has_dump_thread = breakpad_info->GetDumpThreadID(&dump_thread_id);
+    has_requesting_thread =
+        breakpad_info->GetRequestingThreadID(&requesting_thread_id);
+  }
+
+  MinidumpException* exception = dump->GetException();
+  if (exception) {
+    process_state->crashed_ = true;
+    has_requesting_thread = exception->GetThreadID(&requesting_thread_id);
+
+    process_state->crash_reason_ = GetCrashReason(
+        dump, &process_state->crash_address_);
+
+    process_state->exception_record_.set_code(
+        exception->exception()->exception_record.exception_code,
+        // TODO(ivanpe): Populate description.
+        /* description = */ "");
+    process_state->exception_record_.set_flags(
+        exception->exception()->exception_record.exception_flags,
+        // TODO(ivanpe): Populate description.
+        /* description = */ "");
+    process_state->exception_record_.set_nested_exception_record_address(
+        exception->exception()->exception_record.exception_record);
+    process_state->exception_record_.set_address(process_state->crash_address_);
+    const uint32_t num_parameters =
+        std::min(exception->exception()->exception_record.number_parameters,
+                 MD_EXCEPTION_MAXIMUM_PARAMETERS);
+    for (uint32_t i = 0; i < num_parameters; ++i) {
+      process_state->exception_record_.add_parameter(
+          exception->exception()->exception_record.exception_information[i],
+          // TODO(ivanpe): Populate description.
+          /* description = */ "");
+    }
+  }
+
+  // This will just return an empty string if it doesn't exist.
+  process_state->assertion_ = GetAssertion(dump);
+
+  MinidumpModuleList* module_list = dump->GetModuleList();
+
+  // Put a copy of the module list into ProcessState object.  This is not
+  // necessarily a MinidumpModuleList, but it adheres to the CodeModules
+  // interface, which is all that ProcessState needs to expose.
+  if (module_list) {
+    process_state->modules_ = module_list->Copy();
+    process_state->shrunk_range_modules_ =
+        process_state->modules_->GetShrunkRangeModules();
+    for (unsigned int i = 0;
+         i < process_state->shrunk_range_modules_.size();
+         i++) {
+      linked_ptr<const CodeModule> module =
+          process_state->shrunk_range_modules_[i];
+      BPLOG(INFO) << "The range for module " << module->code_file()
+                  << " was shrunk down by " << HexString(
+                      module->shrink_down_delta()) << " bytes. ";
+    }
+  }
+
+  MinidumpUnloadedModuleList* unloaded_module_list =
+      dump->GetUnloadedModuleList();
+  if (unloaded_module_list) {
+    process_state->unloaded_modules_ = unloaded_module_list->Copy();
+  }
+
+  MinidumpMemoryList* memory_list = dump->GetMemoryList();
+  if (memory_list) {
+    BPLOG(INFO) << "Found " << memory_list->region_count()
+                << " memory regions.";
+  }
+
+  MinidumpThreadList* threads = dump->GetThreadList();
+  if (!threads) {
+    BPLOG(ERROR) << "Minidump " << dump->path() << " has no thread list";
+    return PROCESS_ERROR_NO_THREAD_LIST;
+  }
+
+  BPLOG(INFO) << "Minidump " << dump->path() << " has " <<
+      (has_cpu_info            ? "" : "no ") << "CPU info, " <<
+      (has_os_info             ? "" : "no ") << "OS info, " <<
+      (breakpad_info != NULL   ? "" : "no ") << "Breakpad info, " <<
+      (exception != NULL       ? "" : "no ") << "exception, " <<
+      (module_list != NULL     ? "" : "no ") << "module list, " <<
+      (threads != NULL         ? "" : "no ") << "thread list, " <<
+      (has_dump_thread         ? "" : "no ") << "dump thread, " <<
+      (has_requesting_thread   ? "" : "no ") << "requesting thread, and " <<
+      (has_process_create_time ? "" : "no ") << "process create time";
+
+  bool interrupted = false;
+  bool found_requesting_thread = false;
+  unsigned int thread_count = threads->thread_count();
+
+  // Reset frame_symbolizer_ at the beginning of stackwalk for each minidump.
+  frame_symbolizer_->Reset();
+
+  for (unsigned int thread_index = 0;
+       thread_index < thread_count;
+       ++thread_index) {
+    char thread_string_buffer[64];
+    snprintf(thread_string_buffer, sizeof(thread_string_buffer), "%d/%d",
+             thread_index, thread_count);
+    string thread_string = dump->path() + ":" + thread_string_buffer;
+
+    MinidumpThread* thread = threads->GetThreadAtIndex(thread_index);
+    if (!thread) {
+      BPLOG(ERROR) << "Could not get thread for " << thread_string;
+      return PROCESS_ERROR_GETTING_THREAD;
+    }
+
+    uint32_t thread_id;
+    if (!thread->GetThreadID(&thread_id)) {
+      BPLOG(ERROR) << "Could not get thread ID for " << thread_string;
+      return PROCESS_ERROR_GETTING_THREAD_ID;
+    }
+
+    thread_string += " id " + HexString(thread_id);
+    BPLOG(INFO) << "Looking at thread " << thread_string;
+
+    // If this thread is the thread that produced the minidump, don't process
+    // it.  Because of the problems associated with a thread producing a
+    // dump of itself (when both its context and its stack are in flux),
+    // processing that stack wouldn't provide much useful data.
+    if (has_dump_thread && thread_id == dump_thread_id) {
+      continue;
+    }
+
+    MinidumpContext* context = thread->GetContext();
+
+    if (has_requesting_thread && thread_id == requesting_thread_id) {
+      if (found_requesting_thread) {
+        // There can't be more than one requesting thread.
+        BPLOG(ERROR) << "Duplicate requesting thread: " << thread_string;
+        return PROCESS_ERROR_DUPLICATE_REQUESTING_THREADS;
+      }
+
+      // Use processed_state->threads_.size() instead of thread_index.
+      // thread_index points to the thread index in the minidump, which
+      // might be greater than the thread index in the threads vector if
+      // any of the minidump's threads are skipped and not placed into the
+      // processed threads vector.  The thread vector's current size will
+      // be the index of the current thread when it's pushed into the
+      // vector.
+      process_state->requesting_thread_ = process_state->threads_.size();
+
+      found_requesting_thread = true;
+
+      if (process_state->crashed_) {
+        // Use the exception record's context for the crashed thread, instead
+        // of the thread's own context.  For the crashed thread, the thread's
+        // own context is the state inside the exception handler.  Using it
+        // would not result in the expected stack trace from the time of the
+        // crash. If the exception context is invalid, however, we fall back
+        // on the thread context.
+        MinidumpContext* ctx = exception->GetContext();
+        context = ctx ? ctx : thread->GetContext();
+      }
+    }
+
+    // If the memory region for the stack cannot be read using the RVA stored
+    // in the memory descriptor inside MINIDUMP_THREAD, try to locate and use
+    // a memory region (containing the stack) from the minidump memory list.
+    MinidumpMemoryRegion* thread_memory = thread->GetMemory();
+    if (!thread_memory && memory_list) {
+      uint64_t start_stack_memory_range = thread->GetStartOfStackMemoryRange();
+      if (start_stack_memory_range) {
+        thread_memory = memory_list->GetMemoryRegionForAddress(
+           start_stack_memory_range);
+      }
+    }
+    if (!thread_memory) {
+      BPLOG(ERROR) << "No memory region for " << thread_string;
+    }
+
+    // Use process_state->modules_ instead of module_list, because the
+    // |modules| argument will be used to populate the |module| fields in
+    // the returned StackFrame objects, which will be placed into the
+    // returned ProcessState object.  module_list's lifetime is only as
+    // long as the Minidump object: it will be deleted when this function
+    // returns.  process_state->modules_ is owned by the ProcessState object
+    // (just like the StackFrame objects), and is much more suitable for this
+    // task.
+    scoped_ptr<Stackwalker> stackwalker(
+        Stackwalker::StackwalkerForCPU(process_state->system_info(),
+                                       context,
+                                       thread_memory,
+                                       process_state->modules_,
+                                       process_state->unloaded_modules_,
+                                       frame_symbolizer_));
+
+    scoped_ptr<CallStack> stack(new CallStack());
+    if (stackwalker.get()) {
+      if (!stackwalker->Walk(stack.get(),
+                             &process_state->modules_without_symbols_,
+                             &process_state->modules_with_corrupt_symbols_)) {
+        BPLOG(INFO) << "Stackwalker interrupt (missing symbols?) at "
+                    << thread_string;
+        interrupted = true;
+      }
+    } else {
+      // Threads with missing CPU contexts will hit this, but
+      // don't abort processing the rest of the dump just for
+      // one bad thread.
+      BPLOG(ERROR) << "No stackwalker for " << thread_string;
+    }
+    stack->set_tid(thread_id);
+    process_state->threads_.push_back(stack.release());
+    process_state->thread_memory_regions_.push_back(thread_memory);
+  }
+
+  if (interrupted) {
+    BPLOG(INFO) << "Processing interrupted for " << dump->path();
+    return PROCESS_SYMBOL_SUPPLIER_INTERRUPTED;
+  }
+
+  // If a requesting thread was indicated, it must be present.
+  if (has_requesting_thread && !found_requesting_thread) {
+    // Don't mark as an error, but invalidate the requesting thread
+    BPLOG(ERROR) << "Minidump indicated requesting thread " <<
+        HexString(requesting_thread_id) << ", not found in " <<
+        dump->path();
+    process_state->requesting_thread_ = -1;
+  }
+
+  // Exploitability defaults to EXPLOITABILITY_NOT_ANALYZED
+  process_state->exploitability_ = EXPLOITABILITY_NOT_ANALYZED;
+
+  // If an exploitability run was requested we perform the platform specific
+  // rating.
+  if (enable_exploitability_) {
+    scoped_ptr<Exploitability> exploitability(
+        Exploitability::ExploitabilityForPlatform(dump,
+                                                  process_state,
+                                                  enable_objdump_));
+    // The engine will be null if the platform is not supported
+    if (exploitability != NULL) {
+      process_state->exploitability_ = exploitability->CheckExploitability();
+    } else {
+      process_state->exploitability_ = EXPLOITABILITY_ERR_NOENGINE;
+    }
+  }
+
+  BPLOG(INFO) << "Processed " << dump->path();
+  return PROCESS_OK;
+}
+
+ProcessResult MinidumpProcessor::Process(
+    const string& minidump_file, ProcessState* process_state) {
+  BPLOG(INFO) << "Processing minidump in file " << minidump_file;
+
+  Minidump dump(minidump_file);
+  if (!dump.Read()) {
+     BPLOG(ERROR) << "Minidump " << dump.path() << " could not be read";
+     return PROCESS_ERROR_MINIDUMP_NOT_FOUND;
+  }
+
+  return Process(&dump, process_state);
+}
+
+// Returns the MDRawSystemInfo from a minidump, or NULL if system info is
+// not available from the minidump.  If system_info is non-NULL, it is used
+// to pass back the MinidumpSystemInfo object.
+static const MDRawSystemInfo* GetSystemInfo(Minidump* dump,
+                                            MinidumpSystemInfo** system_info) {
+  MinidumpSystemInfo* minidump_system_info = dump->GetSystemInfo();
+  if (!minidump_system_info)
+    return NULL;
+
+  if (system_info)
+    *system_info = minidump_system_info;
+
+  return minidump_system_info->system_info();
+}
+
+static uint64_t GetAddressForArchitecture(const MDCPUArchitecture architecture,
+                                          size_t raw_address)
+{
+  switch (architecture) {
+    case MD_CPU_ARCHITECTURE_X86:
+    case MD_CPU_ARCHITECTURE_MIPS:
+    case MD_CPU_ARCHITECTURE_PPC:
+    case MD_CPU_ARCHITECTURE_SHX:
+    case MD_CPU_ARCHITECTURE_ARM:
+    case MD_CPU_ARCHITECTURE_X86_WIN64:
+      // 32-bit architectures, mask the upper bits.
+      return raw_address & 0xffffffffULL;
+
+    default:
+      // All other architectures either have 64-bit pointers or it's impossible
+      // to tell from the minidump (e.g. MSIL or SPARC) so use 64-bits anyway.
+      return raw_address;
+  }
+}
+
+// Extract CPU info string from ARM-specific MDRawSystemInfo structure.
+// raw_info: pointer to source MDRawSystemInfo.
+// cpu_info: address of target string, cpu info text will be appended to it.
+static void GetARMCpuInfo(const MDRawSystemInfo* raw_info,
+                          string* cpu_info) {
+  assert(raw_info != NULL && cpu_info != NULL);
+
+  // Write ARM architecture version.
+  char cpu_string[32];
+  snprintf(cpu_string, sizeof(cpu_string), "ARMv%d",
+           raw_info->processor_level);
+  cpu_info->append(cpu_string);
+
+  // There is no good list of implementer id values, but the following
+  // pages provide some help:
+  //   http://comments.gmane.org/gmane.linux.linaro.devel/6903
+  //   http://forum.xda-developers.com/archive/index.php/t-480226.html
+  const struct {
+    uint32_t id;
+    const char* name;
+  } vendors[] = {
+    { 0x41, "ARM" },
+    { 0x51, "Qualcomm" },
+    { 0x56, "Marvell" },
+    { 0x69, "Intel/Marvell" },
+  };
+  const struct {
+    uint32_t id;
+    const char* name;
+  } parts[] = {
+    { 0x4100c050, "Cortex-A5" },
+    { 0x4100c080, "Cortex-A8" },
+    { 0x4100c090, "Cortex-A9" },
+    { 0x4100c0f0, "Cortex-A15" },
+    { 0x4100c140, "Cortex-R4" },
+    { 0x4100c150, "Cortex-R5" },
+    { 0x4100b360, "ARM1136" },
+    { 0x4100b560, "ARM1156" },
+    { 0x4100b760, "ARM1176" },
+    { 0x4100b020, "ARM11-MPCore" },
+    { 0x41009260, "ARM926" },
+    { 0x41009460, "ARM946" },
+    { 0x41009660, "ARM966" },
+    { 0x510006f0, "Krait" },
+    { 0x510000f0, "Scorpion" },
+  };
+
+  const struct {
+    uint32_t hwcap;
+    const char* name;
+  } features[] = {
+    { MD_CPU_ARM_ELF_HWCAP_SWP, "swp" },
+    { MD_CPU_ARM_ELF_HWCAP_HALF, "half" },
+    { MD_CPU_ARM_ELF_HWCAP_THUMB, "thumb" },
+    { MD_CPU_ARM_ELF_HWCAP_26BIT, "26bit" },
+    { MD_CPU_ARM_ELF_HWCAP_FAST_MULT, "fastmult" },
+    { MD_CPU_ARM_ELF_HWCAP_FPA, "fpa" },
+    { MD_CPU_ARM_ELF_HWCAP_VFP, "vfpv2" },
+    { MD_CPU_ARM_ELF_HWCAP_EDSP, "edsp" },
+    { MD_CPU_ARM_ELF_HWCAP_JAVA, "java" },
+    { MD_CPU_ARM_ELF_HWCAP_IWMMXT, "iwmmxt" },
+    { MD_CPU_ARM_ELF_HWCAP_CRUNCH, "crunch" },
+    { MD_CPU_ARM_ELF_HWCAP_THUMBEE, "thumbee" },
+    { MD_CPU_ARM_ELF_HWCAP_NEON, "neon" },
+    { MD_CPU_ARM_ELF_HWCAP_VFPv3, "vfpv3" },
+    { MD_CPU_ARM_ELF_HWCAP_VFPv3D16, "vfpv3d16" },
+    { MD_CPU_ARM_ELF_HWCAP_TLS, "tls" },
+    { MD_CPU_ARM_ELF_HWCAP_VFPv4, "vfpv4" },
+    { MD_CPU_ARM_ELF_HWCAP_IDIVA, "idiva" },
+    { MD_CPU_ARM_ELF_HWCAP_IDIVT, "idivt" },
+  };
+
+  uint32_t cpuid = raw_info->cpu.arm_cpu_info.cpuid;
+  if (cpuid != 0) {
+    // Extract vendor name from CPUID
+    const char* vendor = NULL;
+    uint32_t vendor_id = (cpuid >> 24) & 0xff;
+    for (size_t i = 0; i < sizeof(vendors)/sizeof(vendors[0]); ++i) {
+      if (vendors[i].id == vendor_id) {
+        vendor = vendors[i].name;
+        break;
+      }
+    }
+    cpu_info->append(" ");
+    if (vendor) {
+      cpu_info->append(vendor);
+    } else {
+      snprintf(cpu_string, sizeof(cpu_string), "vendor(0x%x)", vendor_id);
+      cpu_info->append(cpu_string);
+    }
+
+    // Extract part name from CPUID
+    uint32_t part_id = (cpuid & 0xff00fff0);
+    const char* part = NULL;
+    for (size_t i = 0; i < sizeof(parts)/sizeof(parts[0]); ++i) {
+      if (parts[i].id == part_id) {
+        part = parts[i].name;
+        break;
+      }
+    }
+    cpu_info->append(" ");
+    if (part != NULL) {
+      cpu_info->append(part);
+    } else {
+      snprintf(cpu_string, sizeof(cpu_string), "part(0x%x)", part_id);
+      cpu_info->append(cpu_string);
+    }
+  }
+  uint32_t elf_hwcaps = raw_info->cpu.arm_cpu_info.elf_hwcaps;
+  if (elf_hwcaps != 0) {
+    cpu_info->append(" features: ");
+    const char* comma = "";
+    for (size_t i = 0; i < sizeof(features)/sizeof(features[0]); ++i) {
+      if (elf_hwcaps & features[i].hwcap) {
+        cpu_info->append(comma);
+        cpu_info->append(features[i].name);
+        comma = ",";
+      }
+    }
+  }
+}
+
+// static
+bool MinidumpProcessor::GetCPUInfo(Minidump* dump, SystemInfo* info) {
+  assert(dump);
+  assert(info);
+
+  info->cpu.clear();
+  info->cpu_info.clear();
+
+  MinidumpSystemInfo* system_info;
+  const MDRawSystemInfo* raw_system_info = GetSystemInfo(dump, &system_info);
+  if (!raw_system_info)
+    return false;
+
+  switch (raw_system_info->processor_architecture) {
+    case MD_CPU_ARCHITECTURE_X86:
+    case MD_CPU_ARCHITECTURE_AMD64: {
+      if (raw_system_info->processor_architecture ==
+          MD_CPU_ARCHITECTURE_X86)
+        info->cpu = "x86";
+      else
+        info->cpu = "amd64";
+
+      const string* cpu_vendor = system_info->GetCPUVendor();
+      if (cpu_vendor) {
+        info->cpu_info = *cpu_vendor;
+        info->cpu_info.append(" ");
+      }
+
+      char x86_info[36];
+      snprintf(x86_info, sizeof(x86_info), "family %u model %u stepping %u",
+               raw_system_info->processor_level,
+               raw_system_info->processor_revision >> 8,
+               raw_system_info->processor_revision & 0xff);
+      info->cpu_info.append(x86_info);
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_PPC: {
+      info->cpu = "ppc";
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_PPC64: {
+      info->cpu = "ppc64";
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_SPARC: {
+      info->cpu = "sparc";
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_ARM: {
+      info->cpu = "arm";
+      GetARMCpuInfo(raw_system_info, &info->cpu_info);
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_ARM64:
+    case MD_CPU_ARCHITECTURE_ARM64_OLD: {
+      info->cpu = "arm64";
+      break;
+    }
+
+    case MD_CPU_ARCHITECTURE_MIPS: {
+      info->cpu = "mips";
+      break;
+    }
+    case MD_CPU_ARCHITECTURE_MIPS64: {
+      info->cpu = "mips64";
+      break;
+    }
+
+    default: {
+      // Assign the numeric architecture ID into the CPU string.
+      char cpu_string[7];
+      snprintf(cpu_string, sizeof(cpu_string), "0x%04x",
+               raw_system_info->processor_architecture);
+      info->cpu = cpu_string;
+      break;
+    }
+  }
+
+  info->cpu_count = raw_system_info->number_of_processors;
+
+  return true;
+}
+
+// static
+bool MinidumpProcessor::GetOSInfo(Minidump* dump, SystemInfo* info) {
+  assert(dump);
+  assert(info);
+
+  info->os.clear();
+  info->os_short.clear();
+  info->os_version.clear();
+
+  MinidumpSystemInfo* system_info;
+  const MDRawSystemInfo* raw_system_info = GetSystemInfo(dump, &system_info);
+  if (!raw_system_info)
+    return false;
+
+  info->os_short = system_info->GetOS();
+
+  switch (raw_system_info->platform_id) {
+    case MD_OS_WIN32_NT: {
+      info->os = "Windows NT";
+      break;
+    }
+
+    case MD_OS_WIN32_WINDOWS: {
+      info->os = "Windows";
+      break;
+    }
+
+    case MD_OS_MAC_OS_X: {
+      info->os = "Mac OS X";
+      break;
+    }
+
+    case MD_OS_IOS: {
+      info->os = "iOS";
+      break;
+    }
+
+    case MD_OS_LINUX: {
+      info->os = "Linux";
+      break;
+    }
+
+    case MD_OS_SOLARIS: {
+      info->os = "Solaris";
+      break;
+    }
+
+    case MD_OS_ANDROID: {
+      info->os = "Android";
+      break;
+    }
+
+    case MD_OS_PS3: {
+      info->os = "PS3";
+      break;
+    }
+
+    case MD_OS_NACL: {
+      info->os = "NaCl";
+      break;
+    }
+
+    case MD_OS_FUCHSIA: {
+      info->os = "Fuchsia";
+      break;
+    }
+
+    default: {
+      // Assign the numeric platform ID into the OS string.
+      char os_string[11];
+      snprintf(os_string, sizeof(os_string), "0x%08x",
+               raw_system_info->platform_id);
+      info->os = os_string;
+      break;
+    }
+  }
+
+  char os_version_string[33];
+  snprintf(os_version_string, sizeof(os_version_string), "%u.%u.%u",
+           raw_system_info->major_version,
+           raw_system_info->minor_version,
+           raw_system_info->build_number);
+  info->os_version = os_version_string;
+
+  const string* csd_version = system_info->GetCSDVersion();
+  if (csd_version) {
+    info->os_version.append(" ");
+    info->os_version.append(*csd_version);
+  }
+
+  return true;
+}
+
+// static
+bool MinidumpProcessor::GetProcessCreateTime(Minidump* dump,
+                                             uint32_t* process_create_time) {
+  assert(dump);
+  assert(process_create_time);
+
+  *process_create_time = 0;
+
+  MinidumpMiscInfo* minidump_misc_info = dump->GetMiscInfo();
+  if (!minidump_misc_info) {
+    return false;
+  }
+
+  const MDRawMiscInfo* md_raw_misc_info = minidump_misc_info->misc_info();
+  if (!md_raw_misc_info) {
+    return false;
+  }
+
+  if (!(md_raw_misc_info->flags1 & MD_MISCINFO_FLAGS1_PROCESS_TIMES)) {
+    return false;
+  }
+
+  *process_create_time = md_raw_misc_info->process_create_time;
+  return true;
+}
+
+// static
+string MinidumpProcessor::GetCrashReason(Minidump* dump, uint64_t* address) {
+  MinidumpException* exception = dump->GetException();
+  if (!exception)
+    return "";
+
+  const MDRawExceptionStream* raw_exception = exception->exception();
+  if (!raw_exception)
+    return "";
+
+  if (address)
+    *address = raw_exception->exception_record.exception_address;
+
+  // The reason value is OS-specific and possibly CPU-specific.  Set up
+  // sensible numeric defaults for the reason string in case we can't
+  // map the codes to a string (because there's no system info, or because
+  // it's an unrecognized platform, or because it's an unrecognized code.)
+  char reason_string[24];
+  char flags_string[11];
+  uint32_t exception_code = raw_exception->exception_record.exception_code;
+  uint32_t exception_flags = raw_exception->exception_record.exception_flags;
+  snprintf(flags_string, sizeof(flags_string), "0x%08x", exception_flags);
+  snprintf(reason_string, sizeof(reason_string), "0x%08x / %s", exception_code,
+           flags_string);
+  string reason = reason_string;
+
+  const MDRawSystemInfo* raw_system_info = GetSystemInfo(dump, NULL);
+  if (!raw_system_info)
+    return reason;
+
+  switch (raw_system_info->platform_id) {
+    case MD_OS_FUCHSIA: {
+      switch (exception_code) {
+        case MD_EXCEPTION_CODE_FUCHSIA_GENERAL:
+          reason = "GENERAL / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_FATAL_PAGE_FAULT:
+          reason = "FATAL_PAGE_FAULT / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_UNDEFINED_INSTRUCTION:
+          reason = "UNDEFINED_INSTRUCTION / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_SW_BREAKPOINT:
+          reason = "SW_BREAKPOINT / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_HW_BREAKPOINT:
+          reason = "HW_BREAKPOINT / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_UNALIGNED_ACCESS:
+          reason = "UNALIGNED_ACCESS / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_THREAD_STARTING:
+          reason = "THREAD_STARTING / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_THREAD_EXITING:
+          reason = "THREAD_EXITING / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_POLICY_ERROR:
+          reason = "POLICY_ERROR / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_CODE_FUCHSIA_PROCESS_STARTING:
+          reason = "PROCESS_STARTING / ";
+          reason.append(flags_string);
+          break;
+        default:
+          BPLOG(INFO) << "Unknown exception reason " << reason;
+      }
+      break;
+    }
+
+    case MD_OS_MAC_OS_X:
+    case MD_OS_IOS: {
+      switch (exception_code) {
+        case MD_EXCEPTION_MAC_BAD_ACCESS:
+          reason = "EXC_BAD_ACCESS / ";
+          switch (exception_flags) {
+            case MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS:
+              reason.append("KERN_INVALID_ADDRESS");
+              break;
+            case MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE:
+              reason.append("KERN_PROTECTION_FAILURE");
+              break;
+            case MD_EXCEPTION_CODE_MAC_NO_ACCESS:
+              reason.append("KERN_NO_ACCESS");
+              break;
+            case MD_EXCEPTION_CODE_MAC_MEMORY_FAILURE:
+              reason.append("KERN_MEMORY_FAILURE");
+              break;
+            case MD_EXCEPTION_CODE_MAC_MEMORY_ERROR:
+              reason.append("KERN_MEMORY_ERROR");
+              break;
+            case MD_EXCEPTION_CODE_MAC_CODESIGN_ERROR:
+              reason.append("KERN_CODESIGN_ERROR");
+              break;
+            default:
+              // arm and ppc overlap
+              if (raw_system_info->processor_architecture ==
+                  MD_CPU_ARCHITECTURE_ARM ||
+                  raw_system_info->processor_architecture ==
+                  MD_CPU_ARCHITECTURE_ARM64_OLD) {
+                switch (exception_flags) {
+                  case MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN:
+                    reason.append("EXC_ARM_DA_ALIGN");
+                    break;
+                  case MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG:
+                    reason.append("EXC_ARM_DA_DEBUG");
+                    break;
+                  default:
+                    reason.append(flags_string);
+                    BPLOG(INFO) << "Unknown exception reason " << reason;
+                    break;
+                }
+              } else if (raw_system_info->processor_architecture ==
+                         MD_CPU_ARCHITECTURE_PPC) {
+                switch (exception_flags) {
+                  case MD_EXCEPTION_CODE_MAC_PPC_VM_PROT_READ:
+                    reason.append("EXC_PPC_VM_PROT_READ");
+                    break;
+                  case MD_EXCEPTION_CODE_MAC_PPC_BADSPACE:
+                    reason.append("EXC_PPC_BADSPACE");
+                    break;
+                  case MD_EXCEPTION_CODE_MAC_PPC_UNALIGNED:
+                    reason.append("EXC_PPC_UNALIGNED");
+                    break;
+                  default:
+                    reason.append(flags_string);
+                    BPLOG(INFO) << "Unknown exception reason " << reason;
+                    break;
+                }
+              } else if (raw_system_info->processor_architecture ==
+                         MD_CPU_ARCHITECTURE_X86 ||
+                         raw_system_info->processor_architecture ==
+                         MD_CPU_ARCHITECTURE_AMD64) {
+                switch (exception_flags) {
+                  case MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT:
+                    reason.append("EXC_I386_GPFLT");
+                    break;
+                  default:
+                    reason.append(flags_string);
+                    BPLOG(INFO) << "Unknown exception reason " << reason;
+                    break;
+                }
+              } else {
+                reason.append(flags_string);
+                BPLOG(INFO) << "Unknown exception reason " << reason;
+              }
+              break;
+          }
+          break;
+        case MD_EXCEPTION_MAC_BAD_INSTRUCTION:
+          reason = "EXC_BAD_INSTRUCTION / ";
+          switch (raw_system_info->processor_architecture) {
+            case MD_CPU_ARCHITECTURE_ARM:
+            case MD_CPU_ARCHITECTURE_ARM64_OLD: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_ARM_UNDEFINED:
+                  reason.append("EXC_ARM_UNDEFINED");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            case MD_CPU_ARCHITECTURE_PPC: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_PPC_INVALID_SYSCALL:
+                  reason.append("EXC_PPC_INVALID_SYSCALL");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_UNIMPLEMENTED_INSTRUCTION:
+                  reason.append("EXC_PPC_UNIPL_INST");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_INSTRUCTION:
+                  reason.append("EXC_PPC_PRIVINST");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_REGISTER:
+                  reason.append("EXC_PPC_PRIVREG");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_TRACE:
+                  reason.append("EXC_PPC_TRACE");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_PERFORMANCE_MONITOR:
+                  reason.append("EXC_PPC_PERFMON");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            case MD_CPU_ARCHITECTURE_AMD64:
+            case MD_CPU_ARCHITECTURE_X86: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_X86_INVALID_OPERATION:
+                  reason.append("EXC_I386_INVOP");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_INVALID_TASK_STATE_SEGMENT:
+                  reason.append("EXC_I386_INVTSSFLT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_SEGMENT_NOT_PRESENT:
+                  reason.append("EXC_I386_SEGNPFLT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_STACK_FAULT:
+                  reason.append("EXC_I386_STKFLT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT:
+                  reason.append("EXC_I386_GPFLT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_ALIGNMENT_FAULT:
+                  reason.append("EXC_I386_ALIGNFLT");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_MAC_ARITHMETIC:
+          reason = "EXC_ARITHMETIC / ";
+          switch (raw_system_info->processor_architecture) {
+            case MD_CPU_ARCHITECTURE_PPC: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_PPC_OVERFLOW:
+                  reason.append("EXC_PPC_OVERFLOW");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_ZERO_DIVIDE:
+                  reason.append("EXC_PPC_ZERO_DIVIDE");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_FLOAT_INEXACT:
+                  reason.append("EXC_FLT_INEXACT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_FLOAT_ZERO_DIVIDE:
+                  reason.append("EXC_PPC_FLT_ZERO_DIVIDE");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_FLOAT_UNDERFLOW:
+                  reason.append("EXC_PPC_FLT_UNDERFLOW");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_FLOAT_OVERFLOW:
+                  reason.append("EXC_PPC_FLT_OVERFLOW");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_FLOAT_NOT_A_NUMBER:
+                  reason.append("EXC_PPC_FLT_NOT_A_NUMBER");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_NO_EMULATION:
+                  reason.append("EXC_PPC_NOEMULATION");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST:
+                  reason.append("EXC_PPC_ALTIVECASSIST");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            case MD_CPU_ARCHITECTURE_AMD64:
+            case MD_CPU_ARCHITECTURE_X86: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_X86_DIV:
+                  reason.append("EXC_I386_DIV");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_INTO:
+                  reason.append("EXC_I386_INTO");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_NOEXT:
+                  reason.append("EXC_I386_NOEXT");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_EXTOVR:
+                  reason.append("EXC_I386_EXTOVR");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_EXTERR:
+                  reason.append("EXC_I386_EXTERR");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_EMERR:
+                  reason.append("EXC_I386_EMERR");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_BOUND:
+                  reason.append("EXC_I386_BOUND");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_SSEEXTERR:
+                  reason.append("EXC_I386_SSEEXTERR");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_MAC_EMULATION:
+          reason = "EXC_EMULATION / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_MAC_SOFTWARE:
+          reason = "EXC_SOFTWARE / ";
+          switch (exception_flags) {
+            case MD_EXCEPTION_CODE_MAC_ABORT:
+              reason.append("SIGABRT");
+              break;
+            case MD_EXCEPTION_CODE_MAC_NS_EXCEPTION:
+              reason.append("UNCAUGHT_NS_EXCEPTION");
+              break;
+            // These are ppc only but shouldn't be a problem as they're
+            // unused on x86
+            case MD_EXCEPTION_CODE_MAC_PPC_TRAP:
+              reason.append("EXC_PPC_TRAP");
+              break;
+            case MD_EXCEPTION_CODE_MAC_PPC_MIGRATE:
+              reason.append("EXC_PPC_MIGRATE");
+              break;
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_MAC_BREAKPOINT:
+          reason = "EXC_BREAKPOINT / ";
+          switch (raw_system_info->processor_architecture) {
+            case MD_CPU_ARCHITECTURE_ARM:
+            case MD_CPU_ARCHITECTURE_ARM64_OLD: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN:
+                  reason.append("EXC_ARM_DA_ALIGN");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG:
+                  reason.append("EXC_ARM_DA_DEBUG");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_ARM_BREAKPOINT:
+                  reason.append("EXC_ARM_BREAKPOINT");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            case MD_CPU_ARCHITECTURE_PPC: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_PPC_BREAKPOINT:
+                  reason.append("EXC_PPC_BREAKPOINT");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            case MD_CPU_ARCHITECTURE_AMD64:
+            case MD_CPU_ARCHITECTURE_X86: {
+              switch (exception_flags) {
+                case MD_EXCEPTION_CODE_MAC_X86_SGL:
+                  reason.append("EXC_I386_SGL");
+                  break;
+                case MD_EXCEPTION_CODE_MAC_X86_BPT:
+                  reason.append("EXC_I386_BPT");
+                  break;
+                default:
+                  reason.append(flags_string);
+                  BPLOG(INFO) << "Unknown exception reason " << reason;
+                  break;
+              }
+              break;
+            }
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_MAC_SYSCALL:
+          reason = "EXC_SYSCALL / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_MAC_MACH_SYSCALL:
+          reason = "EXC_MACH_SYSCALL / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_MAC_RPC_ALERT:
+          reason = "EXC_RPC_ALERT / ";
+          reason.append(flags_string);
+          break;
+        case MD_EXCEPTION_MAC_SIMULATED:
+          reason = "Simulated Exception";
+          break;
+      }
+      break;
+    }
+
+    case MD_OS_WIN32_NT:
+    case MD_OS_WIN32_WINDOWS: {
+      switch (exception_code) {
+        case MD_EXCEPTION_CODE_WIN_CONTROL_C:
+          reason = "DBG_CONTROL_C";
+          break;
+        case MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION:
+          reason = "EXCEPTION_GUARD_PAGE";
+          break;
+        case MD_EXCEPTION_CODE_WIN_DATATYPE_MISALIGNMENT:
+          reason = "EXCEPTION_DATATYPE_MISALIGNMENT";
+          break;
+        case MD_EXCEPTION_CODE_WIN_BREAKPOINT:
+          reason = "EXCEPTION_BREAKPOINT";
+          break;
+        case MD_EXCEPTION_CODE_WIN_SINGLE_STEP:
+          reason = "EXCEPTION_SINGLE_STEP";
+          break;
+        case MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION:
+          // For EXCEPTION_ACCESS_VIOLATION, Windows puts the address that
+          // caused the fault in exception_information[1].
+          // exception_information[0] is 0 if the violation was caused by
+          // an attempt to read data, 1 if it was an attempt to write data,
+          // and 8 if this was a data execution violation.
+          // This information is useful in addition to the code address, which
+          // will be present in the crash thread's instruction field anyway.
+          if (raw_exception->exception_record.number_parameters >= 1) {
+            MDAccessViolationTypeWin av_type =
+                static_cast<MDAccessViolationTypeWin>
+                (raw_exception->exception_record.exception_information[0]);
+            switch (av_type) {
+              case MD_ACCESS_VIOLATION_WIN_READ:
+                reason = "EXCEPTION_ACCESS_VIOLATION_READ";
+                break;
+              case MD_ACCESS_VIOLATION_WIN_WRITE:
+                reason = "EXCEPTION_ACCESS_VIOLATION_WRITE";
+                break;
+              case MD_ACCESS_VIOLATION_WIN_EXEC:
+                reason = "EXCEPTION_ACCESS_VIOLATION_EXEC";
+                break;
+              default:
+                reason = "EXCEPTION_ACCESS_VIOLATION";
+                break;
+            }
+          } else {
+            reason = "EXCEPTION_ACCESS_VIOLATION";
+          }
+          if (address &&
+              raw_exception->exception_record.number_parameters >= 2) {
+            *address =
+                raw_exception->exception_record.exception_information[1];
+          }
+          break;
+        case MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR:
+          // For EXCEPTION_IN_PAGE_ERROR, Windows puts the address that
+          // caused the fault in exception_information[1].
+          // exception_information[0] is 0 if the violation was caused by
+          // an attempt to read data, 1 if it was an attempt to write data,
+          // and 8 if this was a data execution violation.
+          // exception_information[2] contains the underlying NTSTATUS code,
+          // which is the explanation for why this error occured.
+          // This information is useful in addition to the code address, which
+          // will be present in the crash thread's instruction field anyway.
+          if (raw_exception->exception_record.number_parameters >= 1) {
+            MDInPageErrorTypeWin av_type =
+                static_cast<MDInPageErrorTypeWin>
+                (raw_exception->exception_record.exception_information[0]);
+            switch (av_type) {
+              case MD_IN_PAGE_ERROR_WIN_READ:
+                reason = "EXCEPTION_IN_PAGE_ERROR_READ";
+                break;
+              case MD_IN_PAGE_ERROR_WIN_WRITE:
+                reason = "EXCEPTION_IN_PAGE_ERROR_WRITE";
+                break;
+              case MD_IN_PAGE_ERROR_WIN_EXEC:
+                reason = "EXCEPTION_IN_PAGE_ERROR_EXEC";
+                break;
+              default:
+                reason = "EXCEPTION_IN_PAGE_ERROR";
+                break;
+            }
+          } else {
+            reason = "EXCEPTION_IN_PAGE_ERROR";
+          }
+          if (address &&
+              raw_exception->exception_record.number_parameters >= 2) {
+            *address =
+                raw_exception->exception_record.exception_information[1];
+          }
+          if (raw_exception->exception_record.number_parameters >= 3) {
+            uint32_t ntstatus =
+                static_cast<uint32_t>
+                (raw_exception->exception_record.exception_information[2]);
+            reason.append(" / ");
+            reason.append(NTStatusToString(ntstatus));
+          }
+          break;
+        case MD_EXCEPTION_CODE_WIN_INVALID_HANDLE:
+          reason = "EXCEPTION_INVALID_HANDLE";
+          break;
+        case MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION:
+          reason = "EXCEPTION_ILLEGAL_INSTRUCTION";
+          break;
+        case MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION:
+          reason = "EXCEPTION_NONCONTINUABLE_EXCEPTION";
+          break;
+        case MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION:
+          reason = "EXCEPTION_INVALID_DISPOSITION";
+          break;
+        case MD_EXCEPTION_CODE_WIN_ARRAY_BOUNDS_EXCEEDED:
+          reason = "EXCEPTION_BOUNDS_EXCEEDED";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_DENORMAL_OPERAND:
+          reason = "EXCEPTION_FLT_DENORMAL_OPERAND";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO:
+          reason = "EXCEPTION_FLT_DIVIDE_BY_ZERO";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT:
+          reason = "EXCEPTION_FLT_INEXACT_RESULT";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION:
+          reason = "EXCEPTION_FLT_INVALID_OPERATION";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW:
+          reason = "EXCEPTION_FLT_OVERFLOW";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_STACK_CHECK:
+          reason = "EXCEPTION_FLT_STACK_CHECK";
+          break;
+        case MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW:
+          reason = "EXCEPTION_FLT_UNDERFLOW";
+          break;
+        case MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO:
+          reason = "EXCEPTION_INT_DIVIDE_BY_ZERO";
+          break;
+        case MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW:
+          reason = "EXCEPTION_INT_OVERFLOW";
+          break;
+        case MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION:
+          reason = "EXCEPTION_PRIV_INSTRUCTION";
+          break;
+        case MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW:
+          reason = "EXCEPTION_STACK_OVERFLOW";
+          break;
+        case MD_EXCEPTION_CODE_WIN_BAD_FUNCTION_TABLE:
+          reason = "EXCEPTION_BAD_FUNCTION_TABLE";
+          break;
+        case MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK:
+          reason = "EXCEPTION_POSSIBLE_DEADLOCK";
+          break;
+        case MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN:
+          reason = "EXCEPTION_STACK_BUFFER_OVERRUN";
+          break;
+        case MD_EXCEPTION_CODE_WIN_HEAP_CORRUPTION:
+          reason = "EXCEPTION_HEAP_CORRUPTION";
+          break;
+        case MD_EXCEPTION_OUT_OF_MEMORY:
+          reason = "Out of Memory";
+          break;
+        case MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION:
+          reason = "Unhandled C++ Exception";
+          break;
+        case MD_EXCEPTION_CODE_WIN_SIMULATED:
+          reason = "Simulated Exception";
+          break;
+        default:
+          BPLOG(INFO) << "Unknown exception reason " << reason;
+          break;
+      }
+      break;
+    }
+
+    case MD_OS_ANDROID:
+    case MD_OS_LINUX: {
+      switch (exception_code) {
+        case MD_EXCEPTION_CODE_LIN_SIGHUP:
+          reason = "SIGHUP";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGINT:
+          reason = "SIGINT";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGQUIT:
+          reason = "SIGQUIT";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGILL:
+          reason = "SIGILL / ";
+          switch (exception_flags) {
+            case MD_EXCEPTION_FLAG_LIN_ILL_ILLOPC:
+              reason.append("ILL_ILLOPC");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_ILLOPN:
+              reason.append("ILL_ILLOPN");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_ILLADR:
+              reason.append("ILL_ILLADR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_ILLTRP:
+              reason.append("ILL_ILLTRP");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_PRVOPC:
+              reason.append("ILL_PRVOPC");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_PRVREG:
+              reason.append("ILL_PRVREG");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_COPROC:
+              reason.append("ILL_COPROC");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_ILL_BADSTK:
+              reason.append("ILL_BADSTK");
+              break;
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGTRAP:
+          reason = "SIGTRAP";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGABRT:
+          reason = "SIGABRT";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGBUS:
+          reason = "SIGBUS / ";
+          switch (exception_flags) {
+            case MD_EXCEPTION_FLAG_LIN_BUS_ADRALN:
+              reason.append("BUS_ADRALN");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_BUS_ADRERR:
+              reason.append("BUS_ADRERR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_BUS_OBJERR:
+              reason.append("BUS_OBJERR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AR:
+              reason.append("BUS_MCEERR_AR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AO:
+              reason.append("BUS_MCEERR_AO");
+              break;
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGFPE:
+          reason = "SIGFPE / ";
+          switch (exception_flags) {
+            case MD_EXCEPTION_FLAG_LIN_FPE_INTDIV:
+              reason.append("FPE_INTDIV");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_INTOVF:
+              reason.append("FPE_INTOVF");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTDIV:
+              reason.append("FPE_FLTDIV");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTOVF:
+              reason.append("FPE_FLTOVF");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTUND:
+              reason.append("FPE_FLTUND");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTRES:
+              reason.append("FPE_FLTRES");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTINV:
+              reason.append("FPE_FLTINV");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_FPE_FLTSUB:
+              reason.append("FPE_FLTSUB");
+              break;
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGKILL:
+          reason = "SIGKILL";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGUSR1:
+          reason = "SIGUSR1";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGSEGV:
+          reason = "SIGSEGV /";
+          switch (exception_flags) {
+            case MD_EXCEPTION_FLAG_LIN_SEGV_MAPERR:
+              reason.append("SEGV_MAPERR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_SEGV_ACCERR:
+              reason.append("SEGV_ACCERR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_SEGV_BNDERR:
+              reason.append("SEGV_BNDERR");
+              break;
+            case MD_EXCEPTION_FLAG_LIN_SEGV_PKUERR:
+              reason.append("SEGV_PKUERR");
+              break;
+            default:
+              reason.append(flags_string);
+              BPLOG(INFO) << "Unknown exception reason " << reason;
+              break;
+          }
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGUSR2:
+          reason = "SIGUSR2";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGPIPE:
+          reason = "SIGPIPE";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGALRM:
+          reason = "SIGALRM";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGTERM:
+          reason = "SIGTERM";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGSTKFLT:
+          reason = "SIGSTKFLT";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGCHLD:
+          reason = "SIGCHLD";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGCONT:
+          reason = "SIGCONT";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGSTOP:
+          reason = "SIGSTOP";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGTSTP:
+          reason = "SIGTSTP";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGTTIN:
+          reason = "SIGTTIN";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGTTOU:
+          reason = "SIGTTOU";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGURG:
+          reason = "SIGURG";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGXCPU:
+          reason = "SIGXCPU";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGXFSZ:
+          reason = "SIGXFSZ";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGVTALRM:
+          reason = "SIGVTALRM";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGPROF:
+          reason = "SIGPROF";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGWINCH:
+          reason = "SIGWINCH";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGIO:
+          reason = "SIGIO";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGPWR:
+          reason = "SIGPWR";
+          break;
+        case MD_EXCEPTION_CODE_LIN_SIGSYS:
+          reason = "SIGSYS";
+          break;
+      case MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED:
+          reason = "DUMP_REQUESTED";
+          break;
+        default:
+          BPLOG(INFO) << "Unknown exception reason " << reason;
+          break;
+      }
+      break;
+    }
+
+    case MD_OS_SOLARIS: {
+      switch (exception_code) {
+        case MD_EXCEPTION_CODE_SOL_SIGHUP:
+          reason = "SIGHUP";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGINT:
+          reason = "SIGINT";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGQUIT:
+          reason = "SIGQUIT";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGILL:
+          reason = "SIGILL";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTRAP:
+          reason = "SIGTRAP";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGIOT:
+          reason = "SIGIOT | SIGABRT";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGEMT:
+          reason = "SIGEMT";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGFPE:
+          reason = "SIGFPE";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGKILL:
+          reason = "SIGKILL";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGBUS:
+          reason = "SIGBUS";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGSEGV:
+          reason = "SIGSEGV";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGSYS:
+          reason = "SIGSYS";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGPIPE:
+          reason = "SIGPIPE";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGALRM:
+          reason = "SIGALRM";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTERM:
+          reason = "SIGTERM";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGUSR1:
+          reason = "SIGUSR1";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGUSR2:
+          reason = "SIGUSR2";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGCLD:
+          reason = "SIGCLD | SIGCHLD";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGPWR:
+          reason = "SIGPWR";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGWINCH:
+          reason = "SIGWINCH";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGURG:
+          reason = "SIGURG";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGPOLL:
+          reason = "SIGPOLL | SIGIO";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGSTOP:
+          reason = "SIGSTOP";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTSTP:
+          reason = "SIGTSTP";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGCONT:
+          reason = "SIGCONT";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTTIN:
+          reason = "SIGTTIN";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTTOU:
+          reason = "SIGTTOU";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGVTALRM:
+          reason = "SIGVTALRM";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGPROF:
+          reason = "SIGPROF";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGXCPU:
+          reason = "SIGXCPU";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGXFSZ:
+          reason = "SIGXFSZ";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGWAITING:
+          reason = "SIGWAITING";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGLWP:
+          reason = "SIGLWP";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGFREEZE:
+          reason = "SIGFREEZE";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGTHAW:
+          reason = "SIGTHAW";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGCANCEL:
+          reason = "SIGCANCEL";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGLOST:
+          reason = "SIGLOST";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGXRES:
+          reason = "SIGXRES";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGJVM1:
+          reason = "SIGJVM1";
+          break;
+        case MD_EXCEPTION_CODE_SOL_SIGJVM2:
+          reason = "SIGJVM2";
+          break;
+        default:
+          BPLOG(INFO) << "Unknown exception reason " << reason;
+          break;
+      }
+      break;
+    }
+
+    case MD_OS_PS3: {
+      switch (exception_code) {
+        case MD_EXCEPTION_CODE_PS3_UNKNOWN:
+          reason = "UNKNOWN";
+          break;
+        case MD_EXCEPTION_CODE_PS3_TRAP_EXCEP:
+          reason = "TRAP_EXCEP";
+          break;
+        case MD_EXCEPTION_CODE_PS3_PRIV_INSTR:
+          reason = "PRIV_INSTR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR:
+          reason = "ILLEGAL_INSTR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_INSTR_STORAGE:
+          reason = "INSTR_STORAGE";
+          break;
+        case MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT:
+          reason = "INSTR_SEGMENT";
+          break;
+        case MD_EXCEPTION_CODE_PS3_DATA_STORAGE:
+          reason = "DATA_STORAGE";
+          break;
+        case MD_EXCEPTION_CODE_PS3_DATA_SEGMENT:
+          reason = "DATA_SEGMENT";
+          break;
+        case MD_EXCEPTION_CODE_PS3_FLOAT_POINT:
+          reason = "FLOAT_POINT";
+          break;
+        case MD_EXCEPTION_CODE_PS3_DABR_MATCH:
+          reason = "DABR_MATCH";
+          break;
+        case MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP:
+          reason = "ALIGN_EXCEP";
+          break;
+        case MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS:
+          reason = "MEMORY_ACCESS";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_ALIGN:
+          reason = "COPRO_ALIGN";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM:
+          reason = "COPRO_INVALID_COM";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_ERR:
+          reason = "COPRO_ERR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_FIR:
+          reason = "COPRO_FIR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT:
+          reason = "COPRO_DATA_SEGMENT";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE:
+          reason = "COPRO_DATA_STORAGE";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR:
+          reason = "COPRO_STOP_INSTR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR:
+          reason = "COPRO_HALT_INSTR";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN:
+          reason = "COPRO_HALTINSTR_UNKNOWN";
+          break;
+        case MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS:
+          reason = "COPRO_MEMORY_ACCESS";
+          break;
+        case MD_EXCEPTION_CODE_PS3_GRAPHIC:
+          reason = "GRAPHIC";
+          break;
+        default:
+          BPLOG(INFO) << "Unknown exception reason "<< reason;
+          break;
+      }
+      break;
+    }
+
+    default: {
+      BPLOG(INFO) << "Unknown exception reason " << reason;
+      break;
+    }
+  }
+
+  if (address) {
+    *address = GetAddressForArchitecture(
+      static_cast<MDCPUArchitecture>(raw_system_info->processor_architecture),
+      *address);
+  }
+
+  return reason;
+}
+
+// static
+string MinidumpProcessor::GetAssertion(Minidump* dump) {
+  MinidumpAssertion* assertion = dump->GetAssertion();
+  if (!assertion)
+    return "";
+
+  const MDRawAssertionInfo* raw_assertion = assertion->assertion();
+  if (!raw_assertion)
+    return "";
+
+  string assertion_string;
+  switch (raw_assertion->type) {
+  case MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER:
+    assertion_string = "Invalid parameter passed to library function";
+    break;
+  case MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL:
+    assertion_string = "Pure virtual function called";
+    break;
+  default: {
+    char assertion_type[32];
+    snprintf(assertion_type, sizeof(assertion_type),
+             "0x%08x", raw_assertion->type);
+    assertion_string = "Unknown assertion type ";
+    assertion_string += assertion_type;
+    break;
+  }
+  }
+
+  string expression = assertion->expression();
+  if (!expression.empty()) {
+    assertion_string.append(" " + expression);
+  }
+
+  string function = assertion->function();
+  if (!function.empty()) {
+    assertion_string.append(" in function " + function);
+  }
+
+  string file = assertion->file();
+  if (!file.empty()) {
+    assertion_string.append(", in file " + file);
+  }
+
+  if (raw_assertion->line != 0) {
+    char assertion_line[32];
+    snprintf(assertion_line, sizeof(assertion_line), "%u", raw_assertion->line);
+    assertion_string.append(" at line ");
+    assertion_string.append(assertion_line);
+  }
+
+  return assertion_string;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/minidump_processor_unittest.cc b/src/processor/minidump_processor_unittest.cc
new file mode 100644
index 0000000..306c2f0
--- /dev/null
+++ b/src/processor/minidump_processor_unittest.cc
@@ -0,0 +1,769 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unit test for MinidumpProcessor.  Uses a pre-generated minidump and
+// corresponding symbol file, and checks the stack frames for correctness.
+
+#include <stdlib.h>
+
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include <utility>
+
+#include "breakpad_googletest_includes.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/minidump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/symbol_supplier.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_unittest_utils.h"
+
+using std::map;
+
+namespace google_breakpad {
+class MockMinidump : public Minidump {
+ public:
+  MockMinidump() : Minidump("") {
+  }
+
+  MOCK_METHOD0(Read, bool());
+  MOCK_CONST_METHOD0(path, string());
+  MOCK_CONST_METHOD0(header, const MDRawHeader*());
+  MOCK_METHOD0(GetThreadList, MinidumpThreadList*());
+  MOCK_METHOD0(GetSystemInfo, MinidumpSystemInfo*());
+  MOCK_METHOD0(GetMiscInfo, MinidumpMiscInfo*());
+  MOCK_METHOD0(GetBreakpadInfo, MinidumpBreakpadInfo*());
+  MOCK_METHOD0(GetException, MinidumpException*());
+  MOCK_METHOD0(GetAssertion, MinidumpAssertion*());
+  MOCK_METHOD0(GetModuleList, MinidumpModuleList*());
+  MOCK_METHOD0(GetUnloadedModuleList, MinidumpUnloadedModuleList*());
+  MOCK_METHOD0(GetMemoryList, MinidumpMemoryList*());
+};
+
+class MockMinidumpUnloadedModule : public MinidumpUnloadedModule {
+ public:
+  MockMinidumpUnloadedModule() : MinidumpUnloadedModule(NULL) {}
+};
+
+class MockMinidumpUnloadedModuleList : public MinidumpUnloadedModuleList {
+ public:
+  MockMinidumpUnloadedModuleList() : MinidumpUnloadedModuleList(NULL) {}
+
+  ~MockMinidumpUnloadedModuleList() {}
+  MOCK_CONST_METHOD0(Copy, CodeModules*());
+  MOCK_CONST_METHOD1(GetModuleForAddress,
+                     const MinidumpUnloadedModule*(uint64_t));
+};
+
+class MockMinidumpThreadList : public MinidumpThreadList {
+ public:
+  MockMinidumpThreadList() : MinidumpThreadList(NULL) {}
+
+  MOCK_CONST_METHOD0(thread_count, unsigned int());
+  MOCK_CONST_METHOD1(GetThreadAtIndex, MinidumpThread*(unsigned int));
+};
+
+class MockMinidumpMemoryList : public MinidumpMemoryList {
+ public:
+  MockMinidumpMemoryList() : MinidumpMemoryList(NULL) {}
+
+  MOCK_METHOD1(GetMemoryRegionForAddress, MinidumpMemoryRegion*(uint64_t));
+};
+
+class MockMinidumpThread : public MinidumpThread {
+ public:
+  MockMinidumpThread() : MinidumpThread(NULL) {}
+
+  MOCK_CONST_METHOD1(GetThreadID, bool(uint32_t*));
+  MOCK_METHOD0(GetContext, MinidumpContext*());
+  MOCK_METHOD0(GetMemory, MinidumpMemoryRegion*());
+  MOCK_CONST_METHOD0(GetStartOfStackMemoryRange, uint64_t());
+};
+
+// This is crappy, but MinidumpProcessor really does want a
+// MinidumpMemoryRegion.
+class MockMinidumpMemoryRegion : public MinidumpMemoryRegion {
+ public:
+  MockMinidumpMemoryRegion(uint64_t base, const string& contents) :
+      MinidumpMemoryRegion(NULL) {
+    region_.Init(base, contents);
+  }
+
+  uint64_t GetBase() const { return region_.GetBase(); }
+  uint32_t GetSize() const { return region_.GetSize(); }
+
+  bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const {
+    return region_.GetMemoryAtAddress(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+    return region_.GetMemoryAtAddress(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+    return region_.GetMemoryAtAddress(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+    return region_.GetMemoryAtAddress(address, value);
+  }
+
+  MockMemoryRegion region_;
+};
+
+// A test miscelaneous info stream, just returns values from the
+// MDRawMiscInfo fed to it.
+class TestMinidumpMiscInfo : public MinidumpMiscInfo {
+ public:
+  explicit TestMinidumpMiscInfo(const MDRawMiscInfo& misc_info) :
+      MinidumpMiscInfo(NULL) {
+    valid_ = true;
+    misc_info_ = misc_info;
+  }
+};
+
+}  // namespace google_breakpad
+
+namespace {
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::MinidumpContext;
+using google_breakpad::MinidumpMemoryRegion;
+using google_breakpad::MinidumpMiscInfo;
+using google_breakpad::MinidumpProcessor;
+using google_breakpad::MinidumpSystemInfo;
+using google_breakpad::MinidumpThreadList;
+using google_breakpad::MinidumpThread;
+using google_breakpad::MockMinidump;
+using google_breakpad::MockMinidumpMemoryList;
+using google_breakpad::MockMinidumpMemoryRegion;
+using google_breakpad::MockMinidumpThread;
+using google_breakpad::MockMinidumpThreadList;
+using google_breakpad::MockMinidumpUnloadedModule;
+using google_breakpad::MockMinidumpUnloadedModuleList;
+using google_breakpad::ProcessState;
+using google_breakpad::scoped_ptr;
+using google_breakpad::SymbolSupplier;
+using google_breakpad::SystemInfo;
+using ::testing::_;
+using ::testing::AnyNumber;
+using ::testing::DoAll;
+using ::testing::Mock;
+using ::testing::Ne;
+using ::testing::Property;
+using ::testing::Return;
+using ::testing::SetArgumentPointee;
+
+static const char* kSystemInfoOS = "Windows NT";
+static const char* kSystemInfoOSShort = "windows";
+static const char* kSystemInfoOSVersion = "5.1.2600 Service Pack 2";
+static const char* kSystemInfoCPU = "x86";
+static const char* kSystemInfoCPUInfo =
+    "GenuineIntel family 6 model 13 stepping 8";
+
+#define ASSERT_TRUE_ABORT(cond) \
+  if (!(cond)) {                                                        \
+    fprintf(stderr, "FAILED: %s at %s:%d\n", #cond, __FILE__, __LINE__); \
+    abort(); \
+  }
+
+#define ASSERT_EQ_ABORT(e1, e2) ASSERT_TRUE_ABORT((e1) == (e2))
+
+static string GetTestDataPath() {
+  char* srcdir = getenv("srcdir");
+
+  return string(srcdir ? srcdir : ".") + "/src/processor/testdata/";
+}
+
+class TestSymbolSupplier : public SymbolSupplier {
+ public:
+  TestSymbolSupplier() : interrupt_(false) {}
+
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file);
+
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file,
+                                     string* symbol_data);
+
+  virtual SymbolResult GetCStringSymbolData(const CodeModule* module,
+                                            const SystemInfo* system_info,
+                                            string* symbol_file,
+                                            char** symbol_data,
+                                            size_t* symbol_data_size);
+
+  virtual void FreeSymbolData(const CodeModule* module);
+
+  // When set to true, causes the SymbolSupplier to return INTERRUPT
+  void set_interrupt(bool interrupt) { interrupt_ = interrupt; }
+
+ private:
+  bool interrupt_;
+  map<string, char*> memory_buffers_;
+};
+
+SymbolSupplier::SymbolResult TestSymbolSupplier::GetSymbolFile(
+    const CodeModule* module,
+    const SystemInfo* system_info,
+    string* symbol_file) {
+  ASSERT_TRUE_ABORT(module);
+  ASSERT_TRUE_ABORT(system_info);
+  ASSERT_EQ_ABORT(system_info->cpu, kSystemInfoCPU);
+  ASSERT_EQ_ABORT(system_info->cpu_info, kSystemInfoCPUInfo);
+  ASSERT_EQ_ABORT(system_info->os, kSystemInfoOS);
+  ASSERT_EQ_ABORT(system_info->os_short, kSystemInfoOSShort);
+  ASSERT_EQ_ABORT(system_info->os_version, kSystemInfoOSVersion);
+
+  if (interrupt_) {
+    return INTERRUPT;
+  }
+
+  if (module && module->code_file() == "c:\\test_app.exe") {
+      *symbol_file = GetTestDataPath() + "symbols/test_app.pdb/" +
+                     module->debug_identifier() + "/test_app.sym";
+    return FOUND;
+  }
+
+  return NOT_FOUND;
+}
+
+SymbolSupplier::SymbolResult TestSymbolSupplier::GetSymbolFile(
+    const CodeModule* module,
+    const SystemInfo* system_info,
+    string* symbol_file,
+    string* symbol_data) {
+  SymbolSupplier::SymbolResult s = GetSymbolFile(module, system_info,
+                                                 symbol_file);
+  if (s == FOUND) {
+    std::ifstream in(symbol_file->c_str());
+    std::getline(in, *symbol_data, string::traits_type::to_char_type(
+                     string::traits_type::eof()));
+    in.close();
+  }
+
+  return s;
+}
+
+SymbolSupplier::SymbolResult TestSymbolSupplier::GetCStringSymbolData(
+    const CodeModule* module,
+    const SystemInfo* system_info,
+    string* symbol_file,
+    char** symbol_data,
+    size_t* symbol_data_size) {
+  string symbol_data_string;
+  SymbolSupplier::SymbolResult s = GetSymbolFile(module,
+                                                 system_info,
+                                                 symbol_file,
+                                                 &symbol_data_string);
+  if (s == FOUND) {
+    *symbol_data_size = symbol_data_string.size() + 1;
+    *symbol_data = new char[*symbol_data_size];
+    if (*symbol_data == NULL) {
+      BPLOG(ERROR) << "Memory allocation failed for module: "
+                   << module->code_file() << " size: " << *symbol_data_size;
+      return INTERRUPT;
+    }
+    memcpy(*symbol_data, symbol_data_string.c_str(), symbol_data_string.size());
+    (*symbol_data)[symbol_data_string.size()] = '\0';
+    memory_buffers_.insert(make_pair(module->code_file(), *symbol_data));
+  }
+
+  return s;
+}
+
+void TestSymbolSupplier::FreeSymbolData(const CodeModule* module) {
+  map<string, char*>::iterator it = memory_buffers_.find(module->code_file());
+  if (it != memory_buffers_.end()) {
+    delete [] it->second;
+    memory_buffers_.erase(it);
+  }
+}
+
+// A test system info stream, just returns values from the
+// MDRawSystemInfo fed to it.
+class TestMinidumpSystemInfo : public MinidumpSystemInfo {
+ public:
+  explicit TestMinidumpSystemInfo(MDRawSystemInfo info) :
+      MinidumpSystemInfo(NULL) {
+    valid_ = true;
+    system_info_ = info;
+    csd_version_ = new string("");
+  }
+};
+
+// A test minidump context, just returns the MDRawContextX86
+// fed to it.
+class TestMinidumpContext : public MinidumpContext {
+ public:
+  explicit TestMinidumpContext(const MDRawContextX86& context) :
+      MinidumpContext(NULL) {
+    valid_ = true;
+    SetContextX86(new MDRawContextX86(context));
+    SetContextFlags(MD_CONTEXT_X86);
+  }
+};
+
+class MinidumpProcessorTest : public ::testing::Test {
+};
+
+TEST_F(MinidumpProcessorTest, TestUnloadedModules) {
+  MockMinidump dump;
+
+  EXPECT_CALL(dump, path()).WillRepeatedly(Return("mock minidump"));
+  EXPECT_CALL(dump, Read()).WillRepeatedly(Return(true));
+
+  MDRawHeader fake_header;
+  fake_header.time_date_stamp = 0;
+  EXPECT_CALL(dump, header()).WillRepeatedly(Return(&fake_header));
+
+  MDRawSystemInfo raw_system_info;
+  memset(&raw_system_info, 0, sizeof(raw_system_info));
+  raw_system_info.processor_architecture = MD_CPU_ARCHITECTURE_X86;
+  raw_system_info.platform_id = MD_OS_WIN32_NT;
+  TestMinidumpSystemInfo dump_system_info(raw_system_info);
+
+  EXPECT_CALL(dump, GetSystemInfo()).
+      WillRepeatedly(Return(&dump_system_info));
+
+  // No loaded modules
+
+  MockMinidumpUnloadedModuleList unloaded_module_list;
+  EXPECT_CALL(dump, GetUnloadedModuleList()).
+      WillOnce(Return(&unloaded_module_list));
+
+  MockMinidumpMemoryList memory_list;
+  EXPECT_CALL(dump, GetMemoryList()).
+      WillOnce(Return(&memory_list));
+
+  MockMinidumpThreadList thread_list;
+  EXPECT_CALL(dump, GetThreadList()).
+      WillOnce(Return(&thread_list));
+
+  EXPECT_CALL(thread_list, thread_count()).
+    WillRepeatedly(Return(1));
+
+  MockMinidumpThread thread;
+  EXPECT_CALL(thread_list, GetThreadAtIndex(0)).
+    WillOnce(Return(&thread));
+
+  EXPECT_CALL(thread, GetThreadID(_)).
+    WillRepeatedly(DoAll(SetArgumentPointee<0>(1),
+                         Return(true)));
+
+  MDRawContextX86 thread_raw_context;
+  memset(&thread_raw_context, 0,
+         sizeof(thread_raw_context));
+  thread_raw_context.context_flags = MD_CONTEXT_X86_FULL;
+  const uint32_t kExpectedEIP = 0xabcd1234;
+  thread_raw_context.eip = kExpectedEIP;
+  TestMinidumpContext thread_context(thread_raw_context);
+  EXPECT_CALL(thread, GetContext()).
+    WillRepeatedly(Return(&thread_context));
+
+  // The memory contents don't really matter here, since it won't be used.
+  MockMinidumpMemoryRegion thread_memory(0x1234, "xxx");
+  EXPECT_CALL(thread, GetMemory()).
+    WillRepeatedly(Return(&thread_memory));
+  EXPECT_CALL(thread, GetStartOfStackMemoryRange()).
+    Times(0);
+  EXPECT_CALL(memory_list, GetMemoryRegionForAddress(_)).
+    Times(0);
+
+  MockMinidumpUnloadedModuleList* unloaded_module_list_copy =
+      new MockMinidumpUnloadedModuleList();
+  EXPECT_CALL(unloaded_module_list, Copy()).
+      WillOnce(Return(unloaded_module_list_copy));
+
+  MockMinidumpUnloadedModule unloaded_module;
+  EXPECT_CALL(*unloaded_module_list_copy, GetModuleForAddress(kExpectedEIP)).
+      WillOnce(Return(&unloaded_module));
+
+  MinidumpProcessor processor(reinterpret_cast<SymbolSupplier*>(NULL), NULL);
+  ProcessState state;
+  EXPECT_EQ(processor.Process(&dump, &state),
+            google_breakpad::PROCESS_OK);
+
+  // The single frame should be populated with the unloaded module.
+  ASSERT_EQ(1U, state.threads()->size());
+  ASSERT_EQ(1U, state.threads()->at(0)->frames()->size());
+  ASSERT_EQ(kExpectedEIP, state.threads()->at(0)->frames()->at(0)->instruction);
+  ASSERT_EQ(&unloaded_module, state.threads()->at(0)->frames()->at(0)->module);
+}
+
+TEST_F(MinidumpProcessorTest, TestCorruptMinidumps) {
+  MockMinidump dump;
+  TestSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor processor(&supplier, &resolver);
+  ProcessState state;
+
+  EXPECT_EQ(processor.Process("nonexistent minidump", &state),
+            google_breakpad::PROCESS_ERROR_MINIDUMP_NOT_FOUND);
+
+  EXPECT_CALL(dump, path()).WillRepeatedly(Return("mock minidump"));
+  EXPECT_CALL(dump, Read()).WillRepeatedly(Return(true));
+
+  MDRawHeader fakeHeader;
+  fakeHeader.time_date_stamp = 0;
+  EXPECT_CALL(dump, header()).
+      WillOnce(Return(reinterpret_cast<MDRawHeader*>(NULL))).
+      WillRepeatedly(Return(&fakeHeader));
+
+  EXPECT_EQ(processor.Process(&dump, &state),
+            google_breakpad::PROCESS_ERROR_NO_MINIDUMP_HEADER);
+
+  EXPECT_CALL(dump, GetThreadList()).
+      WillOnce(Return(reinterpret_cast<MinidumpThreadList*>(NULL)));
+  EXPECT_CALL(dump, GetSystemInfo()).
+      WillRepeatedly(Return(reinterpret_cast<MinidumpSystemInfo*>(NULL)));
+
+  EXPECT_EQ(processor.Process(&dump, &state),
+            google_breakpad::PROCESS_ERROR_NO_THREAD_LIST);
+}
+
+// This test case verifies that the symbol supplier is only consulted
+// once per minidump per module.
+TEST_F(MinidumpProcessorTest, TestSymbolSupplierLookupCounts) {
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor processor(&supplier, &resolver);
+
+  string minidump_file = GetTestDataPath() + "minidump2.dmp";
+  ProcessState state;
+  EXPECT_CALL(supplier, GetCStringSymbolData(
+      Property(&google_breakpad::CodeModule::code_file,
+               "c:\\test_app.exe"),
+      _, _, _, _)).WillOnce(Return(SymbolSupplier::NOT_FOUND));
+  EXPECT_CALL(supplier, GetCStringSymbolData(
+      Property(&google_breakpad::CodeModule::code_file,
+               Ne("c:\\test_app.exe")),
+      _, _, _, _)).WillRepeatedly(Return(SymbolSupplier::NOT_FOUND));
+  // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+  // directly" for FreeSymbolData().
+  EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+  ASSERT_EQ(processor.Process(minidump_file, &state),
+            google_breakpad::PROCESS_OK);
+
+  ASSERT_TRUE(Mock::VerifyAndClearExpectations(&supplier));
+
+  // We need to verify that across minidumps, the processor will refetch
+  // symbol files, even with the same symbol supplier.
+  EXPECT_CALL(supplier, GetCStringSymbolData(
+      Property(&google_breakpad::CodeModule::code_file,
+               "c:\\test_app.exe"),
+      _, _, _, _)).WillOnce(Return(SymbolSupplier::NOT_FOUND));
+  EXPECT_CALL(supplier, GetCStringSymbolData(
+      Property(&google_breakpad::CodeModule::code_file,
+               Ne("c:\\test_app.exe")),
+      _, _, _, _)).WillRepeatedly(Return(SymbolSupplier::NOT_FOUND));
+  // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+  // directly" for FreeSymbolData().
+  EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+  ASSERT_EQ(processor.Process(minidump_file, &state),
+            google_breakpad::PROCESS_OK);
+}
+
+TEST_F(MinidumpProcessorTest, TestBasicProcessing) {
+  TestSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor processor(&supplier, &resolver);
+
+  string minidump_file = GetTestDataPath() + "minidump2.dmp";
+
+  ProcessState state;
+  ASSERT_EQ(processor.Process(minidump_file, &state),
+            google_breakpad::PROCESS_OK);
+  ASSERT_EQ(state.system_info()->os, kSystemInfoOS);
+  ASSERT_EQ(state.system_info()->os_short, kSystemInfoOSShort);
+  ASSERT_EQ(state.system_info()->os_version, kSystemInfoOSVersion);
+  ASSERT_EQ(state.system_info()->cpu, kSystemInfoCPU);
+  ASSERT_EQ(state.system_info()->cpu_info, kSystemInfoCPUInfo);
+  ASSERT_TRUE(state.crashed());
+  ASSERT_EQ(state.crash_reason(), "EXCEPTION_ACCESS_VIOLATION_WRITE");
+  ASSERT_EQ(state.crash_address(), 0x45U);
+  ASSERT_EQ(state.threads()->size(), size_t(1));
+  EXPECT_EQ((*state.threads())[0]->tid(), 3060U);
+  ASSERT_EQ(state.requesting_thread(), 0);
+  EXPECT_EQ(1171480435U, state.time_date_stamp());
+  EXPECT_EQ(1171480435U, state.process_create_time());
+
+  CallStack* stack = state.threads()->at(0);
+  ASSERT_TRUE(stack);
+  ASSERT_EQ(stack->frames()->size(), 4U);
+
+  ASSERT_TRUE(stack->frames()->at(0)->module);
+  ASSERT_EQ(stack->frames()->at(0)->module->base_address(), 0x400000U);
+  ASSERT_EQ(stack->frames()->at(0)->module->code_file(), "c:\\test_app.exe");
+  ASSERT_EQ(stack->frames()->at(0)->function_name,
+            "`anonymous namespace'::CrashFunction");
+  ASSERT_EQ(stack->frames()->at(0)->source_file_name, "c:\\test_app.cc");
+  ASSERT_EQ(stack->frames()->at(0)->source_line, 58);
+
+  ASSERT_TRUE(stack->frames()->at(1)->module);
+  ASSERT_EQ(stack->frames()->at(1)->module->base_address(), 0x400000U);
+  ASSERT_EQ(stack->frames()->at(1)->module->code_file(), "c:\\test_app.exe");
+  ASSERT_EQ(stack->frames()->at(1)->function_name, "main");
+  ASSERT_EQ(stack->frames()->at(1)->source_file_name, "c:\\test_app.cc");
+  ASSERT_EQ(stack->frames()->at(1)->source_line, 65);
+
+  // This comes from the CRT
+  ASSERT_TRUE(stack->frames()->at(2)->module);
+  ASSERT_EQ(stack->frames()->at(2)->module->base_address(), 0x400000U);
+  ASSERT_EQ(stack->frames()->at(2)->module->code_file(), "c:\\test_app.exe");
+  ASSERT_EQ(stack->frames()->at(2)->function_name, "__tmainCRTStartup");
+  ASSERT_EQ(stack->frames()->at(2)->source_file_name,
+            "f:\\sp\\vctools\\crt_bld\\self_x86\\crt\\src\\crt0.c");
+  ASSERT_EQ(stack->frames()->at(2)->source_line, 327);
+
+  // No debug info available for kernel32.dll
+  ASSERT_TRUE(stack->frames()->at(3)->module);
+  ASSERT_EQ(stack->frames()->at(3)->module->base_address(), 0x7c800000U);
+  ASSERT_EQ(stack->frames()->at(3)->module->code_file(),
+            "C:\\WINDOWS\\system32\\kernel32.dll");
+  ASSERT_TRUE(stack->frames()->at(3)->function_name.empty());
+  ASSERT_TRUE(stack->frames()->at(3)->source_file_name.empty());
+  ASSERT_EQ(stack->frames()->at(3)->source_line, 0);
+
+  ASSERT_EQ(state.modules()->module_count(), 13U);
+  ASSERT_TRUE(state.modules()->GetMainModule());
+  ASSERT_EQ(state.modules()->GetMainModule()->code_file(), "c:\\test_app.exe");
+  ASSERT_FALSE(state.modules()->GetModuleForAddress(0));
+  ASSERT_EQ(state.modules()->GetMainModule(),
+            state.modules()->GetModuleForAddress(0x400000));
+  ASSERT_EQ(state.modules()->GetModuleForAddress(0x7c801234)->debug_file(),
+            "kernel32.pdb");
+  ASSERT_EQ(state.modules()->GetModuleForAddress(0x77d43210)->version(),
+            "5.1.2600.2622");
+
+  // Test that disabled exploitability engine defaults to
+  // EXPLOITABILITY_NOT_ANALYZED.
+  ASSERT_EQ(google_breakpad::EXPLOITABILITY_NOT_ANALYZED,
+            state.exploitability());
+
+  // Test that the symbol supplier can interrupt processing
+  state.Clear();
+  supplier.set_interrupt(true);
+  ASSERT_EQ(processor.Process(minidump_file, &state),
+            google_breakpad::PROCESS_SYMBOL_SUPPLIER_INTERRUPTED);
+}
+
+TEST_F(MinidumpProcessorTest, TestThreadMissingMemory) {
+  MockMinidump dump;
+  EXPECT_CALL(dump, path()).WillRepeatedly(Return("mock minidump"));
+  EXPECT_CALL(dump, Read()).WillRepeatedly(Return(true));
+
+  MDRawHeader fake_header;
+  fake_header.time_date_stamp = 0;
+  EXPECT_CALL(dump, header()).WillRepeatedly(Return(&fake_header));
+
+  MDRawSystemInfo raw_system_info;
+  memset(&raw_system_info, 0, sizeof(raw_system_info));
+  raw_system_info.processor_architecture = MD_CPU_ARCHITECTURE_X86;
+  raw_system_info.platform_id = MD_OS_WIN32_NT;
+  TestMinidumpSystemInfo dump_system_info(raw_system_info);
+
+  EXPECT_CALL(dump, GetSystemInfo()).
+      WillRepeatedly(Return(&dump_system_info));
+
+  MockMinidumpThreadList thread_list;
+  EXPECT_CALL(dump, GetThreadList()).
+      WillOnce(Return(&thread_list));
+
+  MockMinidumpMemoryList memory_list;
+  EXPECT_CALL(dump, GetMemoryList()).
+      WillOnce(Return(&memory_list));
+
+  // Return a thread missing stack memory.
+  MockMinidumpThread no_memory_thread;
+  EXPECT_CALL(no_memory_thread, GetThreadID(_)).
+    WillRepeatedly(DoAll(SetArgumentPointee<0>(1),
+                         Return(true)));
+  EXPECT_CALL(no_memory_thread, GetMemory()).
+    WillRepeatedly(Return(reinterpret_cast<MinidumpMemoryRegion*>(NULL)));
+
+  const uint64_t kTestStartOfMemoryRange = 0x1234;
+  EXPECT_CALL(no_memory_thread, GetStartOfStackMemoryRange()).
+    WillRepeatedly(Return(kTestStartOfMemoryRange));
+  EXPECT_CALL(memory_list, GetMemoryRegionForAddress(kTestStartOfMemoryRange)).
+    WillRepeatedly(Return(reinterpret_cast<MinidumpMemoryRegion*>(NULL)));
+
+  MDRawContextX86 no_memory_thread_raw_context;
+  memset(&no_memory_thread_raw_context, 0,
+         sizeof(no_memory_thread_raw_context));
+  no_memory_thread_raw_context.context_flags = MD_CONTEXT_X86_FULL;
+  const uint32_t kExpectedEIP = 0xabcd1234;
+  no_memory_thread_raw_context.eip = kExpectedEIP;
+  TestMinidumpContext no_memory_thread_context(no_memory_thread_raw_context);
+  EXPECT_CALL(no_memory_thread, GetContext()).
+    WillRepeatedly(Return(&no_memory_thread_context));
+
+  EXPECT_CALL(thread_list, thread_count()).
+    WillRepeatedly(Return(1));
+  EXPECT_CALL(thread_list, GetThreadAtIndex(0)).
+    WillOnce(Return(&no_memory_thread));
+
+  MinidumpProcessor processor(reinterpret_cast<SymbolSupplier*>(NULL), NULL);
+  ProcessState state;
+  EXPECT_EQ(processor.Process(&dump, &state),
+            google_breakpad::PROCESS_OK);
+
+  // Should have a single thread with a single frame in it.
+  ASSERT_EQ(1U, state.threads()->size());
+  ASSERT_EQ(1U, state.threads()->at(0)->frames()->size());
+  ASSERT_EQ(kExpectedEIP, state.threads()->at(0)->frames()->at(0)->instruction);
+}
+
+TEST_F(MinidumpProcessorTest, GetProcessCreateTime) {
+  const uint32_t kProcessCreateTime = 2000;
+  const uint32_t kTimeDateStamp = 5000;
+  MockMinidump dump;
+  EXPECT_CALL(dump, path()).WillRepeatedly(Return("mock minidump"));
+  EXPECT_CALL(dump, Read()).WillRepeatedly(Return(true));
+
+  // Set time of crash.
+  MDRawHeader fake_header;
+  fake_header.time_date_stamp = kTimeDateStamp;
+  EXPECT_CALL(dump, header()).WillRepeatedly(Return(&fake_header));
+
+  // Set process create time.
+  MDRawMiscInfo raw_misc_info;
+  memset(&raw_misc_info, 0, sizeof(raw_misc_info));
+  raw_misc_info.process_create_time = kProcessCreateTime;
+  raw_misc_info.flags1 |= MD_MISCINFO_FLAGS1_PROCESS_TIMES;
+  google_breakpad::TestMinidumpMiscInfo dump_misc_info(raw_misc_info);
+  EXPECT_CALL(dump, GetMiscInfo()).WillRepeatedly(Return(&dump_misc_info));
+
+  // No threads
+  MockMinidumpThreadList thread_list;
+  EXPECT_CALL(dump, GetThreadList()).WillOnce(Return(&thread_list));
+  EXPECT_CALL(thread_list, thread_count()).WillRepeatedly(Return(0));
+
+  MinidumpProcessor processor(reinterpret_cast<SymbolSupplier*>(NULL), NULL);
+  ProcessState state;
+  EXPECT_EQ(google_breakpad::PROCESS_OK, processor.Process(&dump, &state));
+
+  // Verify the time stamps.
+  ASSERT_EQ(kTimeDateStamp, state.time_date_stamp());
+  ASSERT_EQ(kProcessCreateTime, state.process_create_time());
+}
+
+TEST_F(MinidumpProcessorTest, TestThreadMissingContext) {
+  MockMinidump dump;
+  EXPECT_CALL(dump, path()).WillRepeatedly(Return("mock minidump"));
+  EXPECT_CALL(dump, Read()).WillRepeatedly(Return(true));
+
+  MDRawHeader fake_header;
+  fake_header.time_date_stamp = 0;
+  EXPECT_CALL(dump, header()).WillRepeatedly(Return(&fake_header));
+
+  MDRawSystemInfo raw_system_info;
+  memset(&raw_system_info, 0, sizeof(raw_system_info));
+  raw_system_info.processor_architecture = MD_CPU_ARCHITECTURE_X86;
+  raw_system_info.platform_id = MD_OS_WIN32_NT;
+  TestMinidumpSystemInfo dump_system_info(raw_system_info);
+
+  EXPECT_CALL(dump, GetSystemInfo()).
+      WillRepeatedly(Return(&dump_system_info));
+
+  MockMinidumpThreadList thread_list;
+  EXPECT_CALL(dump, GetThreadList()).
+      WillOnce(Return(&thread_list));
+
+  MockMinidumpMemoryList memory_list;
+  EXPECT_CALL(dump, GetMemoryList()).
+      WillOnce(Return(&memory_list));
+
+  // Return a thread missing a thread context.
+  MockMinidumpThread no_context_thread;
+  EXPECT_CALL(no_context_thread, GetThreadID(_)).
+    WillRepeatedly(DoAll(SetArgumentPointee<0>(1),
+                         Return(true)));
+  EXPECT_CALL(no_context_thread, GetContext()).
+    WillRepeatedly(Return(reinterpret_cast<MinidumpContext*>(NULL)));
+
+  // The memory contents don't really matter here, since it won't be used.
+  MockMinidumpMemoryRegion no_context_thread_memory(0x1234, "xxx");
+  EXPECT_CALL(no_context_thread, GetMemory()).
+    WillRepeatedly(Return(&no_context_thread_memory));
+  EXPECT_CALL(no_context_thread, GetStartOfStackMemoryRange()).
+    Times(0);
+  EXPECT_CALL(memory_list, GetMemoryRegionForAddress(_)).
+    Times(0);
+
+  EXPECT_CALL(thread_list, thread_count()).
+    WillRepeatedly(Return(1));
+  EXPECT_CALL(thread_list, GetThreadAtIndex(0)).
+    WillOnce(Return(&no_context_thread));
+
+  MinidumpProcessor processor(reinterpret_cast<SymbolSupplier*>(NULL), NULL);
+  ProcessState state;
+  EXPECT_EQ(processor.Process(&dump, &state),
+            google_breakpad::PROCESS_OK);
+
+  // Should have a single thread with zero frames.
+  ASSERT_EQ(1U, state.threads()->size());
+  ASSERT_EQ(0U, state.threads()->at(0)->frames()->size());
+}
+
+TEST_F(MinidumpProcessorTest, Test32BitCrashingAddress) {
+  TestSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor processor(&supplier, &resolver);
+
+  string minidump_file = GetTestDataPath() + "minidump_32bit_crash_addr.dmp";
+
+  ProcessState state;
+  ASSERT_EQ(processor.Process(minidump_file, &state),
+            google_breakpad::PROCESS_OK);
+  ASSERT_EQ(state.system_info()->os, kSystemInfoOS);
+  ASSERT_EQ(state.system_info()->os_short, kSystemInfoOSShort);
+  ASSERT_EQ(state.system_info()->os_version, kSystemInfoOSVersion);
+  ASSERT_EQ(state.system_info()->cpu, kSystemInfoCPU);
+  ASSERT_EQ(state.system_info()->cpu_info, kSystemInfoCPUInfo);
+  ASSERT_TRUE(state.crashed());
+  ASSERT_EQ(state.crash_reason(), "EXCEPTION_ACCESS_VIOLATION_WRITE");
+  ASSERT_EQ(state.crash_address(), 0x45U);
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/minidump_stackwalk.cc b/src/processor/minidump_stackwalk.cc
new file mode 100644
index 0000000..aedd027
--- /dev/null
+++ b/src/processor/minidump_stackwalk.cc
@@ -0,0 +1,179 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_stackwalk.cc: Process a minidump with MinidumpProcessor, printing
+// the results, including stack traces.
+//
+// Author: Mark Mentovai
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <limits>
+#include <string>
+#include <vector>
+
+#include "common/path_helper.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/minidump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#include "processor/logging.h"
+#include "processor/simple_symbol_supplier.h"
+#include "processor/stackwalk_common.h"
+
+
+namespace {
+
+struct Options {
+  bool machine_readable;
+  bool output_stack_contents;
+
+  string minidump_file;
+  std::vector<string> symbol_paths;
+};
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpMemoryList;
+using google_breakpad::MinidumpThreadList;
+using google_breakpad::MinidumpProcessor;
+using google_breakpad::ProcessState;
+using google_breakpad::SimpleSymbolSupplier;
+using google_breakpad::scoped_ptr;
+
+// Processes |options.minidump_file| using MinidumpProcessor.
+// |options.symbol_path|, if non-empty, is the base directory of a
+// symbol storage area, laid out in the format required by
+// SimpleSymbolSupplier.  If such a storage area is specified, it is
+// made available for use by the MinidumpProcessor.
+//
+// Returns the value of MinidumpProcessor::Process.  If processing succeeds,
+// prints identifying OS and CPU information from the minidump, crash
+// information if the minidump was produced as a result of a crash, and
+// call stacks for each thread contained in the minidump.  All information
+// is printed to stdout.
+bool PrintMinidumpProcess(const Options& options) {
+  scoped_ptr<SimpleSymbolSupplier> symbol_supplier;
+  if (!options.symbol_paths.empty()) {
+    // TODO(mmentovai): check existence of symbol_path if specified?
+    symbol_supplier.reset(new SimpleSymbolSupplier(options.symbol_paths));
+  }
+
+  BasicSourceLineResolver resolver;
+  MinidumpProcessor minidump_processor(symbol_supplier.get(), &resolver);
+
+  // Increase the maximum number of threads and regions.
+  MinidumpThreadList::set_max_threads(std::numeric_limits<uint32_t>::max());
+  MinidumpMemoryList::set_max_regions(std::numeric_limits<uint32_t>::max());
+  // Process the minidump.
+  Minidump dump(options.minidump_file);
+  if (!dump.Read()) {
+     BPLOG(ERROR) << "Minidump " << dump.path() << " could not be read";
+     return false;
+  }
+  ProcessState process_state;
+  if (minidump_processor.Process(&dump, &process_state) !=
+      google_breakpad::PROCESS_OK) {
+    BPLOG(ERROR) << "MinidumpProcessor::Process failed";
+    return false;
+  }
+
+  if (options.machine_readable) {
+    PrintProcessStateMachineReadable(process_state);
+  } else {
+    PrintProcessState(process_state, options.output_stack_contents, &resolver);
+  }
+
+  return true;
+}
+
+}  // namespace
+
+static void Usage(int argc, const char *argv[], bool error) {
+  fprintf(error ? stderr : stdout,
+          "Usage: %s [options] <minidump-file> [symbol-path ...]\n"
+          "\n"
+          "Output a stack trace for the provided minidump\n"
+          "\n"
+          "Options:\n"
+          "\n"
+          "  -m         Output in machine-readable format\n"
+          "  -s         Output stack contents\n",
+          google_breakpad::BaseName(argv[0]).c_str());
+}
+
+static void SetupOptions(int argc, const char *argv[], Options* options) {
+  int ch;
+
+  options->machine_readable = false;
+  options->output_stack_contents = false;
+
+  while ((ch = getopt(argc, (char * const*)argv, "hms")) != -1) {
+    switch (ch) {
+      case 'h':
+        Usage(argc, argv, false);
+        exit(0);
+        break;
+
+      case 'm':
+        options->machine_readable = true;
+        break;
+      case 's':
+        options->output_stack_contents = true;
+        break;
+
+      case '?':
+        Usage(argc, argv, true);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) == 0) {
+    fprintf(stderr, "%s: Missing minidump file\n", argv[0]);
+    Usage(argc, argv, true);
+    exit(1);
+  }
+
+  options->minidump_file = argv[optind];
+
+  for (int argi = optind + 1; argi < argc; ++argi)
+    options->symbol_paths.push_back(argv[argi]);
+}
+
+int main(int argc, const char* argv[]) {
+  Options options;
+  SetupOptions(argc, argv, &options);
+
+  return PrintMinidumpProcess(options) ? 0 : 1;
+}
diff --git a/src/processor/minidump_stackwalk_machine_readable_test b/src/processor/minidump_stackwalk_machine_readable_test
new file mode 100755
index 0000000..2aadb24
--- /dev/null
+++ b/src/processor/minidump_stackwalk_machine_readable_test
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Copyright (c) 2007, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+testdata_dir=$srcdir/src/processor/testdata
+./src/processor/minidump_stackwalk -m $testdata_dir/minidump2.dmp \
+                                      $testdata_dir/symbols | \
+ tr -d '\015' | \
+ diff -u $testdata_dir/minidump2.stackwalk.machine_readable.out -
+exit $?
diff --git a/src/processor/minidump_stackwalk_test b/src/processor/minidump_stackwalk_test
new file mode 100755
index 0000000..f979027
--- /dev/null
+++ b/src/processor/minidump_stackwalk_test
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Copyright (c) 2006, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+testdata_dir=$srcdir/src/processor/testdata
+./src/processor/minidump_stackwalk $testdata_dir/minidump2.dmp \
+                                   $testdata_dir/symbols | \
+ tr -d '\015' | \
+ diff -u $testdata_dir/minidump2.stackwalk.out -
+exit $?
diff --git a/src/processor/minidump_unittest.cc b/src/processor/minidump_unittest.cc
new file mode 100644
index 0000000..49b007f
--- /dev/null
+++ b/src/processor/minidump_unittest.cc
@@ -0,0 +1,1628 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Unit test for Minidump.  Uses a pre-generated minidump and
+// verifies that certain streams are correct.
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <stdlib.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/minidump.h"
+#include "processor/logging.h"
+#include "processor/synth_minidump.h"
+
+namespace {
+
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpContext;
+using google_breakpad::MinidumpException;
+using google_breakpad::MinidumpMemoryInfo;
+using google_breakpad::MinidumpMemoryInfoList;
+using google_breakpad::MinidumpMemoryList;
+using google_breakpad::MinidumpMemoryRegion;
+using google_breakpad::MinidumpModule;
+using google_breakpad::MinidumpModuleList;
+using google_breakpad::MinidumpSystemInfo;
+using google_breakpad::MinidumpUnloadedModule;
+using google_breakpad::MinidumpUnloadedModuleList;
+using google_breakpad::MinidumpThread;
+using google_breakpad::MinidumpThreadList;
+using google_breakpad::SynthMinidump::Context;
+using google_breakpad::SynthMinidump::Dump;
+using google_breakpad::SynthMinidump::Exception;
+using google_breakpad::SynthMinidump::Memory;
+using google_breakpad::SynthMinidump::Module;
+using google_breakpad::SynthMinidump::UnloadedModule;
+using google_breakpad::SynthMinidump::Section;
+using google_breakpad::SynthMinidump::Stream;
+using google_breakpad::SynthMinidump::String;
+using google_breakpad::SynthMinidump::SystemInfo;
+using google_breakpad::SynthMinidump::Thread;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using std::ifstream;
+using std::istringstream;
+using std::vector;
+using ::testing::Return;
+
+class MinidumpTest : public ::testing::Test {
+public:
+  void SetUp() {
+    minidump_file_ = string(getenv("srcdir") ? getenv("srcdir") : ".") +
+      "/src/processor/testdata/minidump2.dmp";
+  }
+  string minidump_file_;
+};
+
+TEST_F(MinidumpTest, TestMinidumpFromFile) {
+  Minidump minidump(minidump_file_);
+  ASSERT_EQ(minidump.path(), minidump_file_);
+  ASSERT_TRUE(minidump.Read());
+  const MDRawHeader* header = minidump.header();
+  ASSERT_NE(header, (MDRawHeader*)NULL);
+  ASSERT_EQ(header->signature, uint32_t(MD_HEADER_SIGNATURE));
+
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  const MinidumpModule* md_module = md_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_module != NULL);
+  ASSERT_EQ("c:\\test_app.exe", md_module->code_file());
+  ASSERT_EQ("c:\\test_app.pdb", md_module->debug_file());
+  ASSERT_EQ("45D35F6C2d000", md_module->code_identifier());
+  ASSERT_EQ("5A9832E5287241C1838ED98914E9B7FF1", md_module->debug_identifier());
+}
+
+TEST_F(MinidumpTest, TestMinidumpFromStream) {
+  // read minidump contents into memory, construct a stringstream around them
+  ifstream file_stream(minidump_file_.c_str(), std::ios::in);
+  ASSERT_TRUE(file_stream.good());
+  vector<char> bytes;
+  file_stream.seekg(0, std::ios_base::end);
+  ASSERT_TRUE(file_stream.good());
+  bytes.resize(file_stream.tellg());
+  file_stream.seekg(0, std::ios_base::beg);
+  ASSERT_TRUE(file_stream.good());
+  file_stream.read(&bytes[0], bytes.size());
+  ASSERT_TRUE(file_stream.good());
+  string str(&bytes[0], bytes.size());
+  istringstream stream(str);
+  ASSERT_TRUE(stream.good());
+
+  // now read minidump from stringstream
+  Minidump minidump(stream);
+  ASSERT_EQ(minidump.path(), "");
+  ASSERT_TRUE(minidump.Read());
+  const MDRawHeader* header = minidump.header();
+  ASSERT_NE(header, (MDRawHeader*)NULL);
+  ASSERT_EQ(header->signature, uint32_t(MD_HEADER_SIGNATURE));
+  //TODO: add more checks here
+}
+
+TEST(Dump, ReadBackEmpty) {
+  Dump dump(0);
+  dump.Finish();
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream stream(contents);
+  Minidump minidump(stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(0U, minidump.GetDirectoryEntryCount());
+}
+
+TEST(Dump, ReadBackEmptyBigEndian) {
+  Dump big_minidump(0, kBigEndian);
+  big_minidump.Finish();
+  string contents;
+  ASSERT_TRUE(big_minidump.GetContents(&contents));
+  istringstream stream(contents);
+  Minidump minidump(stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(0U, minidump.GetDirectoryEntryCount());
+}
+
+TEST(Dump, OneStream) {
+  Dump dump(0, kBigEndian);
+  Stream stream(dump, 0xfbb7fa2bU);
+  stream.Append("stream contents");
+  dump.Add(&stream);
+  dump.Finish();
+  
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(0);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ(0xfbb7fa2bU, dir->stream_type);
+
+  uint32_t stream_length;
+  ASSERT_TRUE(minidump.SeekToStreamType(0xfbb7fa2bU, &stream_length));
+  ASSERT_EQ(15U, stream_length);
+  char stream_contents[15];
+  ASSERT_TRUE(minidump.ReadBytes(stream_contents, sizeof(stream_contents)));
+  EXPECT_EQ(string("stream contents"),
+            string(stream_contents, sizeof(stream_contents)));
+
+  EXPECT_FALSE(minidump.GetThreadList());
+  EXPECT_FALSE(minidump.GetModuleList());
+  EXPECT_FALSE(minidump.GetMemoryList());
+  EXPECT_FALSE(minidump.GetException());
+  EXPECT_FALSE(minidump.GetAssertion());
+  EXPECT_FALSE(minidump.GetSystemInfo());
+  EXPECT_FALSE(minidump.GetMiscInfo());
+  EXPECT_FALSE(minidump.GetBreakpadInfo());
+}
+
+TEST(Dump, OneMemory) {
+  Dump dump(0, kBigEndian);
+  Memory memory(dump, 0x309d68010bd21b2cULL);
+  memory.Append("memory contents");
+  dump.Add(&memory);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(0);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ((uint32_t) MD_MEMORY_LIST_STREAM, dir->stream_type);
+
+  MinidumpMemoryList* memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(memory_list != NULL);
+  ASSERT_EQ(1U, memory_list->region_count());
+
+  MinidumpMemoryRegion* region1 = memory_list->GetMemoryRegionAtIndex(0);
+  ASSERT_EQ(0x309d68010bd21b2cULL, region1->GetBase());
+  ASSERT_EQ(15U, region1->GetSize());
+  const uint8_t* region1_bytes = region1->GetMemory();
+  ASSERT_TRUE(memcmp("memory contents", region1_bytes, 15) == 0);
+}
+
+// One thread --- and its requisite entourage.
+TEST(Dump, OneThread) {
+  Dump dump(0, kLittleEndian);
+  Memory stack(dump, 0x2326a0fa);
+  stack.Append("stack for thread");
+
+  MDRawContextX86 raw_context;
+  const uint32_t kExpectedEIP = 0x6913f540;
+  raw_context.context_flags = MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL;
+  raw_context.edi = 0x3ecba80d;
+  raw_context.esi = 0x382583b9;
+  raw_context.ebx = 0x7fccc03f;
+  raw_context.edx = 0xf62f8ec2;
+  raw_context.ecx = 0x46a6a6a8;
+  raw_context.eax = 0x6a5025e2;
+  raw_context.ebp = 0xd9fabb4a;
+  raw_context.eip = kExpectedEIP;
+  raw_context.cs = 0xbffe6eda;
+  raw_context.eflags = 0xb2ce1e2d;
+  raw_context.esp = 0x659caaa4;
+  raw_context.ss = 0x2e951ef7;
+  Context context(dump, raw_context);
+  
+  Thread thread(dump, 0xa898f11b, stack, context,
+                0x9e39439f, 0x4abfc15f, 0xe499898a, 0x0d43e939dcfd0372ULL);
+  
+  dump.Add(&stack);
+  dump.Add(&context);
+  dump.Add(&thread);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  MinidumpMemoryList* md_memory_list = minidump.GetMemoryList();
+  ASSERT_TRUE(md_memory_list != NULL);
+  ASSERT_EQ(1U, md_memory_list->region_count());
+
+  MinidumpMemoryRegion* md_region = md_memory_list->GetMemoryRegionAtIndex(0);
+  ASSERT_EQ(0x2326a0faU, md_region->GetBase());
+  ASSERT_EQ(16U, md_region->GetSize());
+  const uint8_t* region_bytes = md_region->GetMemory();
+  ASSERT_TRUE(memcmp("stack for thread", region_bytes, 16) == 0);
+
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list != NULL);
+  ASSERT_EQ(1U, thread_list->thread_count());
+
+  MinidumpThread* md_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(md_thread != NULL);
+  uint32_t thread_id;
+  ASSERT_TRUE(md_thread->GetThreadID(&thread_id));
+  ASSERT_EQ(0xa898f11bU, thread_id);
+  MinidumpMemoryRegion* md_stack = md_thread->GetMemory();
+  ASSERT_TRUE(md_stack != NULL);
+  ASSERT_EQ(0x2326a0faU, md_stack->GetBase());
+  ASSERT_EQ(16U, md_stack->GetSize());
+  const uint8_t* md_stack_bytes = md_stack->GetMemory();
+  ASSERT_TRUE(memcmp("stack for thread", md_stack_bytes, 16) == 0);
+
+  MinidumpContext* md_context = md_thread->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_X86, md_context->GetContextCPU());
+
+  uint64_t eip;
+  ASSERT_TRUE(md_context->GetInstructionPointer(&eip));
+  EXPECT_EQ(kExpectedEIP, eip);
+
+  const MDRawContextX86* md_raw_context = md_context->GetContextX86();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL),
+            (md_raw_context->context_flags
+             & (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL)));
+  EXPECT_EQ(0x3ecba80dU, raw_context.edi);
+  EXPECT_EQ(0x382583b9U, raw_context.esi);
+  EXPECT_EQ(0x7fccc03fU, raw_context.ebx);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.edx);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.ecx);
+  EXPECT_EQ(0x6a5025e2U, raw_context.eax);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.ebp);
+  EXPECT_EQ(kExpectedEIP, raw_context.eip);
+  EXPECT_EQ(0xbffe6edaU, raw_context.cs);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.eflags);
+  EXPECT_EQ(0x659caaa4U, raw_context.esp);
+  EXPECT_EQ(0x2e951ef7U, raw_context.ss);
+}
+
+TEST(Dump, ThreadMissingMemory) {
+  Dump dump(0, kLittleEndian);
+  Memory stack(dump, 0x2326a0fa);
+  // Stack has no contents.
+
+  MDRawContextX86 raw_context;
+  memset(&raw_context, 0, sizeof(raw_context));
+  raw_context.context_flags = MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL;
+  Context context(dump, raw_context);
+
+  Thread thread(dump, 0xa898f11b, stack, context,
+                0x9e39439f, 0x4abfc15f, 0xe499898a, 0x0d43e939dcfd0372ULL);
+
+  dump.Add(&stack);
+  dump.Add(&context);
+  dump.Add(&thread);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  // This should succeed even though the thread has no stack memory.
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list != NULL);
+  ASSERT_EQ(1U, thread_list->thread_count());
+
+  MinidumpThread* md_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(md_thread != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_thread->GetThreadID(&thread_id));
+  ASSERT_EQ(0xa898f11bU, thread_id);
+
+  MinidumpContext* md_context = md_thread->GetContext();
+  ASSERT_NE(reinterpret_cast<MinidumpContext*>(NULL), md_context);
+
+  MinidumpMemoryRegion* md_stack = md_thread->GetMemory();
+  ASSERT_EQ(reinterpret_cast<MinidumpMemoryRegion*>(NULL), md_stack);
+}
+
+TEST(Dump, ThreadMissingContext) {
+  Dump dump(0, kLittleEndian);
+  Memory stack(dump, 0x2326a0fa);
+  stack.Append("stack for thread");
+
+  // Context is empty.
+  Context context(dump);
+
+  Thread thread(dump, 0xa898f11b, stack, context,
+                0x9e39439f, 0x4abfc15f, 0xe499898a, 0x0d43e939dcfd0372ULL);
+
+  dump.Add(&stack);
+  dump.Add(&context);
+  dump.Add(&thread);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  // This should succeed even though the thread has no stack memory.
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list != NULL);
+  ASSERT_EQ(1U, thread_list->thread_count());
+
+  MinidumpThread* md_thread = thread_list->GetThreadAtIndex(0);
+  ASSERT_TRUE(md_thread != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_thread->GetThreadID(&thread_id));
+  ASSERT_EQ(0xa898f11bU, thread_id);
+  MinidumpMemoryRegion* md_stack = md_thread->GetMemory();
+  ASSERT_NE(reinterpret_cast<MinidumpMemoryRegion*>(NULL), md_stack);
+
+  MinidumpContext* md_context = md_thread->GetContext();
+  ASSERT_EQ(reinterpret_cast<MinidumpContext*>(NULL), md_context);
+}
+
+TEST(Dump, OneUnloadedModule) {
+  Dump dump(0, kBigEndian);
+  String module_name(dump, "unloaded module");
+
+  String csd_version(dump, "Windows 9000");
+  SystemInfo system_info(dump, SystemInfo::windows_x86, csd_version);
+
+  UnloadedModule unloaded_module(
+      dump,
+      0xa90206ca83eb2852ULL,
+      0xada542bd,
+      module_name,
+      0x34571371,
+      0xb1054d2a);
+
+  dump.Add(&unloaded_module);
+  dump.Add(&module_name);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(1);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ((uint32_t) MD_UNLOADED_MODULE_LIST_STREAM, dir->stream_type);
+
+  MinidumpUnloadedModuleList* md_unloaded_module_list =
+      minidump.GetUnloadedModuleList();
+  ASSERT_TRUE(md_unloaded_module_list != NULL);
+  ASSERT_EQ(1U, md_unloaded_module_list->module_count());
+
+  const MinidumpUnloadedModule* md_unloaded_module =
+      md_unloaded_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_unloaded_module != NULL);
+  ASSERT_EQ(0xa90206ca83eb2852ULL, md_unloaded_module->base_address());
+  ASSERT_EQ(0xada542bd, md_unloaded_module->size());
+  ASSERT_EQ("unloaded module", md_unloaded_module->code_file());
+  ASSERT_EQ("", md_unloaded_module->debug_file());
+  // time_date_stamp and size_of_image concatenated
+  ASSERT_EQ("B1054D2Aada542bd", md_unloaded_module->code_identifier());
+  ASSERT_EQ("", md_unloaded_module->debug_identifier());
+
+  const MDRawUnloadedModule* md_raw_unloaded_module =
+      md_unloaded_module->module();
+  ASSERT_TRUE(md_raw_unloaded_module != NULL);
+  ASSERT_EQ(0xb1054d2aU, md_raw_unloaded_module->time_date_stamp);
+  ASSERT_EQ(0x34571371U, md_raw_unloaded_module->checksum);
+}
+
+static const MDVSFixedFileInfo fixed_file_info = {
+  0xb2fba33a,                           // signature
+  0x33d7a728,                           // struct_version
+  0x31afcb20,                           // file_version_hi
+  0xe51cdab1,                           // file_version_lo
+  0xd1ea6907,                           // product_version_hi
+  0x03032857,                           // product_version_lo
+  0x11bf71d7,                           // file_flags_mask
+  0x5fb8cdbf,                           // file_flags
+  0xe45d0d5d,                           // file_os
+  0x107d9562,                           // file_type
+  0x5a8844d4,                           // file_subtype
+  0xa8d30b20,                           // file_date_hi
+  0x651c3e4e                            // file_date_lo
+};
+
+TEST(Dump, OneModule) {
+  Dump dump(0, kBigEndian);
+  String module_name(dump, "single module");
+  Section cv_info(dump);
+  cv_info
+    .D32(MD_CVINFOPDB70_SIGNATURE)  // signature
+    // signature, a MDGUID
+    .D32(0xabcd1234)
+    .D16(0xf00d)
+    .D16(0xbeef)
+    .Append("\x01\x02\x03\x04\x05\x06\x07\x08")
+    .D32(1) // age
+    .AppendCString("c:\\foo\\file.pdb");  // pdb_file_name
+
+  String csd_version(dump, "Windows 9000");
+  SystemInfo system_info(dump, SystemInfo::windows_x86, csd_version);
+
+  Module module(dump, 0xa90206ca83eb2852ULL, 0xada542bd,
+                module_name,
+                0xb1054d2a,
+                0x34571371,
+                fixed_file_info, // from synth_minidump_unittest_data.h
+                &cv_info, nullptr);
+
+  dump.Add(&module);
+  dump.Add(&module_name);
+  dump.Add(&cv_info);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(1);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ((uint32_t) MD_MODULE_LIST_STREAM, dir->stream_type);
+
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  ASSERT_EQ(1U, md_module_list->module_count());
+
+  const MinidumpModule* md_module = md_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_module != NULL);
+  ASSERT_EQ(0xa90206ca83eb2852ULL, md_module->base_address());
+  ASSERT_EQ(0xada542bd, md_module->size());
+  ASSERT_EQ("single module", md_module->code_file());
+  ASSERT_EQ("c:\\foo\\file.pdb", md_module->debug_file());
+  // time_date_stamp and size_of_image concatenated
+  ASSERT_EQ("B1054D2Aada542bd", md_module->code_identifier());
+  ASSERT_EQ("ABCD1234F00DBEEF01020304050607081", md_module->debug_identifier());
+
+  const MDRawModule* md_raw_module = md_module->module();
+  ASSERT_TRUE(md_raw_module != NULL);
+  ASSERT_EQ(0xb1054d2aU, md_raw_module->time_date_stamp);
+  ASSERT_EQ(0x34571371U, md_raw_module->checksum);
+  ASSERT_TRUE(memcmp(&md_raw_module->version_info, &fixed_file_info,
+                     sizeof(fixed_file_info)) == 0);
+}
+
+// Test that a module with a MDCVInfoELF CV record is handled properly.
+TEST(Dump, OneModuleCVELF) {
+  Dump dump(0, kLittleEndian);
+  String module_name(dump, "elf module");
+  Section cv_info(dump);
+  cv_info
+    .D32(MD_CVINFOELF_SIGNATURE)  // signature
+    // build_id
+    .Append("\x5f\xa9\xcd\xb4\x10\x53\xdf\x1b\x86\xfa\xb7\x33\xb4\xdf"
+            "\x37\x38\xce\xa3\x4a\x87");
+
+  const MDRawSystemInfo linux_x86 = {
+    MD_CPU_ARCHITECTURE_X86,              // processor_architecture
+    6,                                    // processor_level
+    0xd08,                                // processor_revision
+    1,                                    // number_of_processors
+    0,                                    // product_type
+    0,                                    // major_version
+    0,                                    // minor_version
+    0,                                    // build_number
+    MD_OS_LINUX,                          // platform_id
+    0xdeadbeef,                           // csd_version_rva
+    0x100,                                // suite_mask
+    0,                                    // reserved2
+    {                                     // cpu
+      { // x86_cpu_info
+        { 0x756e6547, 0x49656e69, 0x6c65746e }, // vendor_id
+        0x6d8,                                  // version_information
+        0xafe9fbff,                             // feature_information
+        0xffffffff                              // amd_extended_cpu_features
+      }
+    }
+  };
+  String csd_version(dump, "Literally Linux");
+  SystemInfo system_info(dump, linux_x86, csd_version);
+
+  Module module(dump, 0xa90206ca83eb2852ULL, 0xada542bd,
+                module_name,
+                0xb1054d2a,
+                0x34571371,
+                fixed_file_info, // from synth_minidump_unittest_data.h
+                &cv_info, nullptr);
+
+  dump.Add(&module);
+  dump.Add(&module_name);
+  dump.Add(&cv_info);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  ASSERT_EQ(1U, md_module_list->module_count());
+
+  const MinidumpModule* md_module = md_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_module != NULL);
+  ASSERT_EQ(0xa90206ca83eb2852ULL, md_module->base_address());
+  ASSERT_EQ(0xada542bd, md_module->size());
+  ASSERT_EQ("elf module", md_module->code_file());
+  // debug_file == code_file
+  ASSERT_EQ("elf module", md_module->debug_file());
+  // just the build_id, directly
+  ASSERT_EQ("5fa9cdb41053df1b86fab733b4df3738cea34a87",
+            md_module->code_identifier());
+  // build_id truncted to GUID length and treated as such, with zero
+  // age appended
+  ASSERT_EQ("B4CDA95F53101BDF86FAB733B4DF37380", md_module->debug_identifier());
+
+  const MDRawModule* md_raw_module = md_module->module();
+  ASSERT_TRUE(md_raw_module != NULL);
+  ASSERT_EQ(0xb1054d2aU, md_raw_module->time_date_stamp);
+  ASSERT_EQ(0x34571371U, md_raw_module->checksum);
+  ASSERT_TRUE(memcmp(&md_raw_module->version_info, &fixed_file_info,
+                     sizeof(fixed_file_info)) == 0);
+}
+
+// Test that a build_id that's shorter than a GUID is handled properly.
+TEST(Dump, CVELFShort) {
+  Dump dump(0, kLittleEndian);
+  String module_name(dump, "elf module");
+  Section cv_info(dump);
+  cv_info
+    .D32(MD_CVINFOELF_SIGNATURE)  // signature
+    // build_id, shorter than a GUID
+    .Append("\x5f\xa9\xcd\xb4");
+
+  const MDRawSystemInfo linux_x86 = {
+    MD_CPU_ARCHITECTURE_X86,              // processor_architecture
+    6,                                    // processor_level
+    0xd08,                                // processor_revision
+    1,                                    // number_of_processors
+    0,                                    // product_type
+    0,                                    // major_version
+    0,                                    // minor_version
+    0,                                    // build_number
+    MD_OS_LINUX,                          // platform_id
+    0xdeadbeef,                           // csd_version_rva
+    0x100,                                // suite_mask
+    0,                                    // reserved2
+    {                                     // cpu
+      { // x86_cpu_info
+        { 0x756e6547, 0x49656e69, 0x6c65746e }, // vendor_id
+        0x6d8,                                  // version_information
+        0xafe9fbff,                             // feature_information
+        0xffffffff                              // amd_extended_cpu_features
+      }
+    }
+  };
+  String csd_version(dump, "Literally Linux");
+  SystemInfo system_info(dump, linux_x86, csd_version);
+
+  Module module(dump, 0xa90206ca83eb2852ULL, 0xada542bd,
+                module_name,
+                0xb1054d2a,
+                0x34571371,
+                fixed_file_info, // from synth_minidump_unittest_data.h
+                &cv_info, nullptr);
+
+  dump.Add(&module);
+  dump.Add(&module_name);
+  dump.Add(&cv_info);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  ASSERT_EQ(1U, md_module_list->module_count());
+
+  const MinidumpModule* md_module = md_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_module != NULL);
+  // just the build_id, directly
+  ASSERT_EQ("5fa9cdb4", md_module->code_identifier());
+  // build_id expanded to GUID length and treated as such, with zero
+  // age appended
+  ASSERT_EQ("B4CDA95F0000000000000000000000000", md_module->debug_identifier());
+}
+
+// Test that a build_id that's very long is handled properly.
+TEST(Dump, CVELFLong) {
+  Dump dump(0, kLittleEndian);
+  String module_name(dump, "elf module");
+  Section cv_info(dump);
+  cv_info
+    .D32(MD_CVINFOELF_SIGNATURE)  // signature
+    // build_id, lots of bytes
+    .Append("\x5f\xa9\xcd\xb4\x10\x53\xdf\x1b\x86\xfa\xb7\x33\xb4\xdf"
+            "\x37\x38\xce\xa3\x4a\x87\x01\x02\x03\x04\x05\x06\x07\x08"
+            "\x09\x0a\x0b\x0c\x0d\x0e\x0f");
+
+
+  const MDRawSystemInfo linux_x86 = {
+    MD_CPU_ARCHITECTURE_X86,              // processor_architecture
+    6,                                    // processor_level
+    0xd08,                                // processor_revision
+    1,                                    // number_of_processors
+    0,                                    // product_type
+    0,                                    // major_version
+    0,                                    // minor_version
+    0,                                    // build_number
+    MD_OS_LINUX,                          // platform_id
+    0xdeadbeef,                           // csd_version_rva
+    0x100,                                // suite_mask
+    0,                                    // reserved2
+    {                                     // cpu
+      { // x86_cpu_info
+        { 0x756e6547, 0x49656e69, 0x6c65746e }, // vendor_id
+        0x6d8,                                  // version_information
+        0xafe9fbff,                             // feature_information
+        0xffffffff                              // amd_extended_cpu_features
+      }
+    }
+  };
+  String csd_version(dump, "Literally Linux");
+  SystemInfo system_info(dump, linux_x86, csd_version);
+
+  Module module(dump, 0xa90206ca83eb2852ULL, 0xada542bd,
+                module_name,
+                0xb1054d2a,
+                0x34571371,
+                fixed_file_info, // from synth_minidump_unittest_data.h
+                &cv_info, nullptr);
+
+  dump.Add(&module);
+  dump.Add(&module_name);
+  dump.Add(&cv_info);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  ASSERT_EQ(1U, md_module_list->module_count());
+
+  const MinidumpModule* md_module = md_module_list->GetModuleAtIndex(0);
+  ASSERT_TRUE(md_module != NULL);
+  // just the build_id, directly
+  ASSERT_EQ(
+      "5fa9cdb41053df1b86fab733b4df3738cea34a870102030405060708090a0b0c0d0e0f",
+      md_module->code_identifier());
+  // build_id truncated to GUID length and treated as such, with zero
+  // age appended.
+  ASSERT_EQ("B4CDA95F53101BDF86FAB733B4DF37380", md_module->debug_identifier());
+}
+
+TEST(Dump, OneSystemInfo) {
+  Dump dump(0, kLittleEndian);
+  String csd_version(dump, "Petulant Pierogi");
+  SystemInfo system_info(dump, SystemInfo::windows_x86, csd_version);
+
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+  dump.Finish();
+                         
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(0);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ((uint32_t) MD_SYSTEM_INFO_STREAM, dir->stream_type);
+
+  MinidumpSystemInfo* md_system_info = minidump.GetSystemInfo();
+  ASSERT_TRUE(md_system_info != NULL);
+  ASSERT_EQ("windows", md_system_info->GetOS());
+  ASSERT_EQ("x86", md_system_info->GetCPU());
+  ASSERT_EQ("Petulant Pierogi", *md_system_info->GetCSDVersion());
+  ASSERT_EQ("GenuineIntel", *md_system_info->GetCPUVendor());
+}
+
+TEST(Dump, BigDump) {
+  Dump dump(0, kLittleEndian);
+
+  // A SystemInfo stream.
+  String csd_version(dump, "Munificent Macaque");
+  SystemInfo system_info(dump, SystemInfo::windows_x86, csd_version);
+  dump.Add(&csd_version);
+  dump.Add(&system_info);
+
+  // Five threads!
+  Memory stack0(dump, 0x70b9ebfc);
+  stack0.Append("stack for thread zero");
+  MDRawContextX86 raw_context0;
+  raw_context0.context_flags = MD_CONTEXT_X86_INTEGER;
+  raw_context0.eip = 0xaf0709e4;
+  Context context0(dump, raw_context0);
+  Thread thread0(dump, 0xbbef4432, stack0, context0,
+                 0xd0377e7b, 0xdb8eb0cf, 0xd73bc314, 0x09d357bac7f9a163ULL);
+  dump.Add(&stack0);
+  dump.Add(&context0);
+  dump.Add(&thread0);
+
+  Memory stack1(dump, 0xf988cc45);
+  stack1.Append("stack for thread one");
+  MDRawContextX86 raw_context1;
+  raw_context1.context_flags = MD_CONTEXT_X86_INTEGER;
+  raw_context1.eip = 0xe4f56f81;
+  Context context1(dump, raw_context1);
+  Thread thread1(dump, 0x657c3f58, stack1, context1,
+                 0xa68fa182, 0x6f3cf8dd, 0xe3a78ccf, 0x78cc84775e4534bbULL);
+  dump.Add(&stack1);
+  dump.Add(&context1);
+  dump.Add(&thread1);
+
+  Memory stack2(dump, 0xc8a92e7c);
+  stack2.Append("stack for thread two");
+  MDRawContextX86 raw_context2;
+  raw_context2.context_flags = MD_CONTEXT_X86_INTEGER;
+  raw_context2.eip = 0xb336a438;
+  Context context2(dump, raw_context2);
+  Thread thread2(dump, 0xdf4b8a71, stack2, context2,
+                 0x674c26b6, 0x445d7120, 0x7e700c56, 0xd89bf778e7793e17ULL);
+  dump.Add(&stack2);
+  dump.Add(&context2);
+  dump.Add(&thread2);
+
+  Memory stack3(dump, 0x36d08e08);
+  stack3.Append("stack for thread three");
+  MDRawContextX86 raw_context3;
+  raw_context3.context_flags = MD_CONTEXT_X86_INTEGER;
+  raw_context3.eip = 0xdf99a60c;
+  Context context3(dump, raw_context3);
+  Thread thread3(dump, 0x86e6c341, stack3, context3,
+                 0x32dc5c55, 0x17a2aba8, 0xe0cc75e7, 0xa46393994dae83aeULL);
+  dump.Add(&stack3);
+  dump.Add(&context3);
+  dump.Add(&thread3);
+
+  Memory stack4(dump, 0x1e0ab4fa);
+  stack4.Append("stack for thread four");
+  MDRawContextX86 raw_context4;
+  raw_context4.context_flags = MD_CONTEXT_X86_INTEGER;
+  raw_context4.eip = 0xaa646267;
+  Context context4(dump, raw_context4);
+  Thread thread4(dump, 0x261a28d4, stack4, context4,
+                 0x6ebd389e, 0xa0cd4759, 0x30168846, 0x164f650a0cf39d35ULL);
+  dump.Add(&stack4);
+  dump.Add(&context4);
+  dump.Add(&thread4);
+
+  // Three modules!
+  String module1_name(dump, "module one");
+  Module module1(dump, 0xeb77da57b5d4cbdaULL, 0x83cd5a37, module1_name);
+  dump.Add(&module1_name);
+  dump.Add(&module1);
+
+  String module2_name(dump, "module two");
+  Module module2(dump, 0x8675884adfe5ac90ULL, 0xb11e4ea3, module2_name);
+  dump.Add(&module2_name);
+  dump.Add(&module2);
+
+  String module3_name(dump, "module three");
+  Module module3(dump, 0x95fc1544da321b6cULL, 0x7c2bf081, module3_name);
+  dump.Add(&module3_name);
+  dump.Add(&module3);
+
+  // Unloaded modules!
+  uint64_t umodule1_base = 0xeb77da57b5d4cbdaULL;
+  uint32_t umodule1_size = 0x83cd5a37;
+  String umodule1_name(dump, "unloaded module one");
+  UnloadedModule unloaded_module1(dump, umodule1_base, umodule1_size,
+                                  umodule1_name);
+  dump.Add(&umodule1_name);
+  dump.Add(&unloaded_module1);
+
+  uint64_t umodule2_base = 0xeb77da57b5d4cbdaULL;
+  uint32_t umodule2_size = 0x83cd5a37;
+  String umodule2_name(dump, "unloaded module two");
+  UnloadedModule unloaded_module2(dump, umodule2_base, umodule2_size,
+                                  umodule2_name);
+  dump.Add(&umodule2_name);
+  dump.Add(&unloaded_module2);
+
+  uint64_t umodule3_base = 0xeb77da5839a20000ULL;
+  uint32_t umodule3_size = 0x83cd5a37;
+  String umodule3_name(dump, "unloaded module three");
+  UnloadedModule unloaded_module3(dump, umodule3_base, umodule3_size,
+                                  umodule3_name);
+  dump.Add(&umodule3_name);
+  dump.Add(&unloaded_module3);
+
+
+  // Add one more memory region, on top of the five stacks.
+  Memory memory5(dump, 0x61979e828040e564ULL);
+  memory5.Append("contents of memory 5");
+  dump.Add(&memory5);
+
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(5U, minidump.GetDirectoryEntryCount());
+
+  // Check the threads.
+  MinidumpThreadList* thread_list = minidump.GetThreadList();
+  ASSERT_TRUE(thread_list != NULL);
+  ASSERT_EQ(5U, thread_list->thread_count());
+  uint32_t thread_id;
+  ASSERT_TRUE(thread_list->GetThreadAtIndex(0)->GetThreadID(&thread_id));
+  ASSERT_EQ(0xbbef4432U, thread_id);
+  ASSERT_EQ(0x70b9ebfcU,
+            thread_list->GetThreadAtIndex(0)->GetMemory()->GetBase());
+  ASSERT_EQ(0xaf0709e4U,
+            thread_list->GetThreadAtIndex(0)->GetContext()->GetContextX86()
+            ->eip);
+
+  ASSERT_TRUE(thread_list->GetThreadAtIndex(1)->GetThreadID(&thread_id));
+  ASSERT_EQ(0x657c3f58U, thread_id);
+  ASSERT_EQ(0xf988cc45U,
+            thread_list->GetThreadAtIndex(1)->GetMemory()->GetBase());
+  ASSERT_EQ(0xe4f56f81U,
+            thread_list->GetThreadAtIndex(1)->GetContext()->GetContextX86()
+            ->eip);
+
+  ASSERT_TRUE(thread_list->GetThreadAtIndex(2)->GetThreadID(&thread_id));
+  ASSERT_EQ(0xdf4b8a71U, thread_id);
+  ASSERT_EQ(0xc8a92e7cU,
+            thread_list->GetThreadAtIndex(2)->GetMemory()->GetBase());
+  ASSERT_EQ(0xb336a438U,
+            thread_list->GetThreadAtIndex(2)->GetContext()->GetContextX86()
+            ->eip);
+
+  ASSERT_TRUE(thread_list->GetThreadAtIndex(3)->GetThreadID(&thread_id));
+  ASSERT_EQ(0x86e6c341U, thread_id);
+  ASSERT_EQ(0x36d08e08U,
+            thread_list->GetThreadAtIndex(3)->GetMemory()->GetBase());
+  ASSERT_EQ(0xdf99a60cU,
+            thread_list->GetThreadAtIndex(3)->GetContext()->GetContextX86()
+            ->eip);
+
+  ASSERT_TRUE(thread_list->GetThreadAtIndex(4)->GetThreadID(&thread_id));
+  ASSERT_EQ(0x261a28d4U, thread_id);
+  ASSERT_EQ(0x1e0ab4faU,
+            thread_list->GetThreadAtIndex(4)->GetMemory()->GetBase());
+  ASSERT_EQ(0xaa646267U,
+            thread_list->GetThreadAtIndex(4)->GetContext()->GetContextX86()
+            ->eip);
+
+  // Check the modules.
+  MinidumpModuleList* md_module_list = minidump.GetModuleList();
+  ASSERT_TRUE(md_module_list != NULL);
+  ASSERT_EQ(3U, md_module_list->module_count());
+  EXPECT_EQ(0xeb77da57b5d4cbdaULL,
+            md_module_list->GetModuleAtIndex(0)->base_address());
+  EXPECT_EQ(0x8675884adfe5ac90ULL,
+            md_module_list->GetModuleAtIndex(1)->base_address());
+  EXPECT_EQ(0x95fc1544da321b6cULL,
+            md_module_list->GetModuleAtIndex(2)->base_address());
+
+  // Check unloaded modules
+  MinidumpUnloadedModuleList* md_unloaded_module_list =
+      minidump.GetUnloadedModuleList();
+  ASSERT_TRUE(md_unloaded_module_list != NULL);
+  ASSERT_EQ(3U, md_unloaded_module_list->module_count());
+  EXPECT_EQ(umodule1_base,
+            md_unloaded_module_list->GetModuleAtIndex(0)->base_address());
+  EXPECT_EQ(umodule2_base,
+            md_unloaded_module_list->GetModuleAtIndex(1)->base_address());
+  EXPECT_EQ(umodule3_base,
+            md_unloaded_module_list->GetModuleAtIndex(2)->base_address());
+
+  const MinidumpUnloadedModule* umodule =
+      md_unloaded_module_list->GetModuleForAddress(
+          umodule1_base + umodule1_size / 2);
+  EXPECT_EQ(umodule1_base, umodule->base_address());
+
+  umodule = md_unloaded_module_list->GetModuleAtSequence(0);
+  EXPECT_EQ(umodule1_base, umodule->base_address());
+
+  EXPECT_EQ(NULL, md_unloaded_module_list->GetMainModule());
+
+}
+
+TEST(Dump, OneMemoryInfo) {
+  Dump dump(0, kBigEndian);
+  Stream stream(dump, MD_MEMORY_INFO_LIST_STREAM);
+
+  // Add the MDRawMemoryInfoList header.
+  const uint64_t kNumberOfEntries = 1;
+  stream.D32(sizeof(MDRawMemoryInfoList))  // size_of_header
+        .D32(sizeof(MDRawMemoryInfo))      // size_of_entry
+        .D64(kNumberOfEntries);            // number_of_entries
+
+  
+  // Now add a MDRawMemoryInfo entry.
+  const uint64_t kBaseAddress = 0x1000;
+  const uint64_t kRegionSize = 0x2000;
+  stream.D64(kBaseAddress)                         // base_address
+        .D64(kBaseAddress)                         // allocation_base
+        .D32(MD_MEMORY_PROTECT_EXECUTE_READWRITE)  // allocation_protection
+        .D32(0)                                    // __alignment1
+        .D64(kRegionSize)                          // region_size
+        .D32(MD_MEMORY_STATE_COMMIT)               // state
+        .D32(MD_MEMORY_PROTECT_EXECUTE_READWRITE)  // protection
+        .D32(MD_MEMORY_TYPE_PRIVATE)               // type
+        .D32(0);                                   // __alignment2
+
+  dump.Add(&stream);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  const MDRawDirectory* dir = minidump.GetDirectoryEntryAtIndex(0);
+  ASSERT_TRUE(dir != NULL);
+  EXPECT_EQ((uint32_t) MD_MEMORY_INFO_LIST_STREAM, dir->stream_type);
+
+  MinidumpMemoryInfoList* info_list = minidump.GetMemoryInfoList();
+  ASSERT_TRUE(info_list != NULL);
+  ASSERT_EQ(1U, info_list->info_count());
+
+  const MinidumpMemoryInfo* info1 = info_list->GetMemoryInfoAtIndex(0);
+  ASSERT_EQ(kBaseAddress, info1->GetBase());
+  ASSERT_EQ(kRegionSize, info1->GetSize());
+  ASSERT_TRUE(info1->IsExecutable());
+  ASSERT_TRUE(info1->IsWritable());
+
+  // Should get back the same memory region here.
+  const MinidumpMemoryInfo* info2 =
+      info_list->GetMemoryInfoForAddress(kBaseAddress + kRegionSize / 2);
+  ASSERT_EQ(kBaseAddress, info2->GetBase());
+  ASSERT_EQ(kRegionSize, info2->GetSize());
+}
+
+TEST(Dump, OneExceptionX86) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextX86 raw_context;
+  raw_context.context_flags = MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL;
+  raw_context.edi = 0x3ecba80d;
+  raw_context.esi = 0x382583b9;
+  raw_context.ebx = 0x7fccc03f;
+  raw_context.edx = 0xf62f8ec2;
+  raw_context.ecx = 0x46a6a6a8;
+  raw_context.eax = 0x6a5025e2;
+  raw_context.ebp = 0xd9fabb4a;
+  raw_context.eip = 0x6913f540;
+  raw_context.cs = 0xbffe6eda;
+  raw_context.eflags = 0xb2ce1e2d;
+  raw_context.esp = 0x659caaa4;
+  raw_context.ss = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_X86, md_context->GetContextCPU());
+  const MDRawContextX86* md_raw_context = md_context->GetContextX86();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL),
+            (md_raw_context->context_flags
+             & (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL)));
+  EXPECT_EQ(0x3ecba80dU, raw_context.edi);
+  EXPECT_EQ(0x382583b9U, raw_context.esi);
+  EXPECT_EQ(0x7fccc03fU, raw_context.ebx);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.edx);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.ecx);
+  EXPECT_EQ(0x6a5025e2U, raw_context.eax);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.ebp);
+  EXPECT_EQ(0x6913f540U, raw_context.eip);
+  EXPECT_EQ(0xbffe6edaU, raw_context.cs);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.eflags);
+  EXPECT_EQ(0x659caaa4U, raw_context.esp);
+  EXPECT_EQ(0x2e951ef7U, raw_context.ss);
+}
+
+TEST(Dump, OneExceptionX86XState) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextX86 raw_context;
+  raw_context.context_flags = MD_CONTEXT_X86_INTEGER |
+    MD_CONTEXT_X86_CONTROL | MD_CONTEXT_X86_XSTATE;
+  raw_context.edi = 0x3ecba80d;
+  raw_context.esi = 0x382583b9;
+  raw_context.ebx = 0x7fccc03f;
+  raw_context.edx = 0xf62f8ec2;
+  raw_context.ecx = 0x46a6a6a8;
+  raw_context.eax = 0x6a5025e2;
+  raw_context.ebp = 0xd9fabb4a;
+  raw_context.eip = 0x6913f540;
+  raw_context.cs = 0xbffe6eda;
+  raw_context.eflags = 0xb2ce1e2d;
+  raw_context.esp = 0x659caaa4;
+  raw_context.ss = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_X86, md_context->GetContextCPU());
+  const MDRawContextX86* md_raw_context = md_context->GetContextX86();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL),
+            (md_raw_context->context_flags
+             & (MD_CONTEXT_X86_INTEGER | MD_CONTEXT_X86_CONTROL)));
+  EXPECT_EQ(0x3ecba80dU, raw_context.edi);
+  EXPECT_EQ(0x382583b9U, raw_context.esi);
+  EXPECT_EQ(0x7fccc03fU, raw_context.ebx);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.edx);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.ecx);
+  EXPECT_EQ(0x6a5025e2U, raw_context.eax);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.ebp);
+  EXPECT_EQ(0x6913f540U, raw_context.eip);
+  EXPECT_EQ(0xbffe6edaU, raw_context.cs);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.eflags);
+  EXPECT_EQ(0x659caaa4U, raw_context.esp);
+  EXPECT_EQ(0x2e951ef7U, raw_context.ss);
+}
+
+// Testing that the CPU type can be loaded from a system info stream when
+// the CPU flags are missing from the context_flags of an exception record
+TEST(Dump, OneExceptionX86NoCPUFlags) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextX86 raw_context;
+  // Intentionally not setting CPU type in the context_flags
+  raw_context.context_flags = 0;
+  raw_context.edi = 0x3ecba80d;
+  raw_context.esi = 0x382583b9;
+  raw_context.ebx = 0x7fccc03f;
+  raw_context.edx = 0xf62f8ec2;
+  raw_context.ecx = 0x46a6a6a8;
+  raw_context.eax = 0x6a5025e2;
+  raw_context.ebp = 0xd9fabb4a;
+  raw_context.eip = 0x6913f540;
+  raw_context.cs = 0xbffe6eda;
+  raw_context.eflags = 0xb2ce1e2d;
+  raw_context.esp = 0x659caaa4;
+  raw_context.ss = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+
+  // Add system info.  This is needed as an alternative source for CPU type
+  // information.  Note, that the CPU flags were intentionally skipped from
+  // the context_flags and this alternative source is required.
+  String csd_version(dump, "Service Pack 2");
+  SystemInfo system_info(dump, SystemInfo::windows_x86, csd_version);
+  dump.Add(&system_info);
+  dump.Add(&csd_version);
+
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+
+  ASSERT_EQ((uint32_t) MD_CONTEXT_X86, md_context->GetContextCPU());
+  const MDRawContextX86* md_raw_context = md_context->GetContextX86();
+  ASSERT_TRUE(md_raw_context != NULL);
+
+  // Even though the CPU flags were missing from the context_flags, the
+  // GetContext call above is expected to load the missing CPU flags from the
+  // system info stream and set the CPU type bits in context_flags.
+  ASSERT_EQ((uint32_t) (MD_CONTEXT_X86), md_raw_context->context_flags);
+
+  EXPECT_EQ(0x3ecba80dU, raw_context.edi);
+  EXPECT_EQ(0x382583b9U, raw_context.esi);
+  EXPECT_EQ(0x7fccc03fU, raw_context.ebx);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.edx);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.ecx);
+  EXPECT_EQ(0x6a5025e2U, raw_context.eax);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.ebp);
+  EXPECT_EQ(0x6913f540U, raw_context.eip);
+  EXPECT_EQ(0xbffe6edaU, raw_context.cs);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.eflags);
+  EXPECT_EQ(0x659caaa4U, raw_context.esp);
+  EXPECT_EQ(0x2e951ef7U, raw_context.ss);
+}
+
+// This test covers a scenario where a dump contains an exception but the
+// context record of the exception is missing the CPU type information in its
+// context_flags.  The dump has no system info stream so it is imposible to
+// deduce the CPU type, hence the context record is unusable.
+TEST(Dump, OneExceptionX86NoCPUFlagsNoSystemInfo) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextX86 raw_context;
+  // Intentionally not setting CPU type in the context_flags
+  raw_context.context_flags = 0;
+  raw_context.edi = 0x3ecba80d;
+  raw_context.esi = 0x382583b9;
+  raw_context.ebx = 0x7fccc03f;
+  raw_context.edx = 0xf62f8ec2;
+  raw_context.ecx = 0x46a6a6a8;
+  raw_context.eax = 0x6a5025e2;
+  raw_context.ebp = 0xd9fabb4a;
+  raw_context.eip = 0x6913f540;
+  raw_context.cs = 0xbffe6eda;
+  raw_context.eflags = 0xb2ce1e2d;
+  raw_context.esp = 0x659caaa4;
+  raw_context.ss = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  // The context record of the exception is unusable because the context_flags
+  // don't have CPU type information and at the same time the minidump lacks
+  // system info stream so it is impossible to deduce the CPU type.
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_EQ(NULL, md_context);
+}
+
+TEST(Dump, OneExceptionARM) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextARM raw_context;
+  raw_context.context_flags = MD_CONTEXT_ARM_INTEGER;
+  raw_context.iregs[0] = 0x3ecba80d;
+  raw_context.iregs[1] = 0x382583b9;
+  raw_context.iregs[2] = 0x7fccc03f;
+  raw_context.iregs[3] = 0xf62f8ec2;
+  raw_context.iregs[4] = 0x46a6a6a8;
+  raw_context.iregs[5] = 0x6a5025e2;
+  raw_context.iregs[6] = 0xd9fabb4a;
+  raw_context.iregs[7] = 0x6913f540;
+  raw_context.iregs[8] = 0xbffe6eda;
+  raw_context.iregs[9] = 0xb2ce1e2d;
+  raw_context.iregs[10] = 0x659caaa4;
+  raw_context.iregs[11] = 0xf0e0d0c0;
+  raw_context.iregs[12] = 0xa9b8c7d6;
+  raw_context.iregs[13] = 0x12345678;
+  raw_context.iregs[14] = 0xabcd1234;
+  raw_context.iregs[15] = 0x10203040;
+  raw_context.cpsr = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_ARM, md_context->GetContextCPU());
+  const MDRawContextARM* md_raw_context = md_context->GetContextARM();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_ARM_INTEGER,
+            (md_raw_context->context_flags
+             & MD_CONTEXT_ARM_INTEGER));
+  EXPECT_EQ(0x3ecba80dU, raw_context.iregs[0]);
+  EXPECT_EQ(0x382583b9U, raw_context.iregs[1]);
+  EXPECT_EQ(0x7fccc03fU, raw_context.iregs[2]);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.iregs[3]);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.iregs[4]);
+  EXPECT_EQ(0x6a5025e2U, raw_context.iregs[5]);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.iregs[6]);
+  EXPECT_EQ(0x6913f540U, raw_context.iregs[7]);
+  EXPECT_EQ(0xbffe6edaU, raw_context.iregs[8]);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.iregs[9]);
+  EXPECT_EQ(0x659caaa4U, raw_context.iregs[10]);
+  EXPECT_EQ(0xf0e0d0c0U, raw_context.iregs[11]);
+  EXPECT_EQ(0xa9b8c7d6U, raw_context.iregs[12]);
+  EXPECT_EQ(0x12345678U, raw_context.iregs[13]);
+  EXPECT_EQ(0xabcd1234U, raw_context.iregs[14]);
+  EXPECT_EQ(0x10203040U, raw_context.iregs[15]);
+  EXPECT_EQ(0x2e951ef7U, raw_context.cpsr);
+}
+
+TEST(Dump, OneExceptionARMOldFlags) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextARM raw_context;
+  // MD_CONTEXT_ARM_INTEGER, but with _OLD
+  raw_context.context_flags = MD_CONTEXT_ARM_OLD | 0x00000002;
+  raw_context.iregs[0] = 0x3ecba80d;
+  raw_context.iregs[1] = 0x382583b9;
+  raw_context.iregs[2] = 0x7fccc03f;
+  raw_context.iregs[3] = 0xf62f8ec2;
+  raw_context.iregs[4] = 0x46a6a6a8;
+  raw_context.iregs[5] = 0x6a5025e2;
+  raw_context.iregs[6] = 0xd9fabb4a;
+  raw_context.iregs[7] = 0x6913f540;
+  raw_context.iregs[8] = 0xbffe6eda;
+  raw_context.iregs[9] = 0xb2ce1e2d;
+  raw_context.iregs[10] = 0x659caaa4;
+  raw_context.iregs[11] = 0xf0e0d0c0;
+  raw_context.iregs[12] = 0xa9b8c7d6;
+  raw_context.iregs[13] = 0x12345678;
+  raw_context.iregs[14] = 0xabcd1234;
+  raw_context.iregs[15] = 0x10203040;
+  raw_context.cpsr = 0x2e951ef7;
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9c9d9e9f9ULL,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_ARM, md_context->GetContextCPU());
+  const MDRawContextARM* md_raw_context = md_context->GetContextARM();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_ARM_INTEGER,
+            (md_raw_context->context_flags
+             & MD_CONTEXT_ARM_INTEGER));
+  EXPECT_EQ(0x3ecba80dU, raw_context.iregs[0]);
+  EXPECT_EQ(0x382583b9U, raw_context.iregs[1]);
+  EXPECT_EQ(0x7fccc03fU, raw_context.iregs[2]);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.iregs[3]);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.iregs[4]);
+  EXPECT_EQ(0x6a5025e2U, raw_context.iregs[5]);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.iregs[6]);
+  EXPECT_EQ(0x6913f540U, raw_context.iregs[7]);
+  EXPECT_EQ(0xbffe6edaU, raw_context.iregs[8]);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.iregs[9]);
+  EXPECT_EQ(0x659caaa4U, raw_context.iregs[10]);
+  EXPECT_EQ(0xf0e0d0c0U, raw_context.iregs[11]);
+  EXPECT_EQ(0xa9b8c7d6U, raw_context.iregs[12]);
+  EXPECT_EQ(0x12345678U, raw_context.iregs[13]);
+  EXPECT_EQ(0xabcd1234U, raw_context.iregs[14]);
+  EXPECT_EQ(0x10203040U, raw_context.iregs[15]);
+  EXPECT_EQ(0x2e951ef7U, raw_context.cpsr);
+}
+
+TEST(Dump, OneExceptionMIPS) {
+  Dump dump(0, kLittleEndian);
+
+  MDRawContextMIPS raw_context;
+  raw_context.context_flags = MD_CONTEXT_MIPS_INTEGER;
+  raw_context.iregs[0] = 0x3ecba80d;
+  raw_context.iregs[1] = 0x382583b9;
+  raw_context.iregs[2] = 0x7fccc03f;
+  raw_context.iregs[3] = 0xf62f8ec2;
+  raw_context.iregs[4] = 0x46a6a6a8;
+  raw_context.iregs[5] = 0x6a5025e2;
+  raw_context.iregs[6] = 0xd9fabb4a;
+  raw_context.iregs[7] = 0x6913f540;
+  raw_context.iregs[8] = 0xbffe6eda;
+  raw_context.iregs[9] = 0xb2ce1e2d;
+  raw_context.iregs[10] = 0x659caaa4;
+  raw_context.iregs[11] = 0xf0e0d0c0;
+  raw_context.iregs[12] = 0xa9b8c7d6;
+  raw_context.iregs[13] = 0x12345678;
+  raw_context.iregs[14] = 0xabcd1234;
+  raw_context.iregs[15] = 0x10203040;
+  raw_context.iregs[16] = 0xa80d3ecb;
+  raw_context.iregs[17] = 0x83b93825;
+  raw_context.iregs[18] = 0xc03f7fcc;
+  raw_context.iregs[19] = 0x8ec2f62f;
+  raw_context.iregs[20] = 0xa6a846a6;
+  raw_context.iregs[21] = 0x25e26a50;
+  raw_context.iregs[22] = 0xbb4ad9fa;
+  raw_context.iregs[23] = 0xf5406913;
+  raw_context.iregs[24] = 0x6edabffe;
+  raw_context.iregs[25] = 0x1e2db2ce;
+  raw_context.iregs[26] = 0xaaa4659c;
+  raw_context.iregs[27] = 0xd0c0f0e0;
+  raw_context.iregs[28] = 0xc7d6a9b8;
+  raw_context.iregs[29] = 0x56781234;
+  raw_context.iregs[30] = 0x1234abcd;
+  raw_context.iregs[31] = 0x30401020;
+
+  Context context(dump, raw_context);
+
+  Exception exception(dump, context,
+                      0x1234abcd,  // Thread id.
+                      0xdcba4321,  // Exception code.
+                      0xf0e0d0c0,  // Exception flags.
+                      0x0919a9b9); // Exception address.
+  
+  dump.Add(&context);
+  dump.Add(&exception);
+  dump.Finish();
+
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+
+  istringstream minidump_stream(contents);
+  Minidump minidump(minidump_stream);
+  ASSERT_TRUE(minidump.Read());
+  ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+  MinidumpException* md_exception = minidump.GetException();
+  ASSERT_TRUE(md_exception != NULL);
+
+  uint32_t thread_id;
+  ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+  ASSERT_EQ(0x1234abcdU, thread_id);
+
+  const MDRawExceptionStream* raw_exception = md_exception->exception();
+  ASSERT_TRUE(raw_exception != NULL);
+  EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+  EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+  EXPECT_EQ(0x0919a9b9U,
+            raw_exception->exception_record.exception_address);
+
+  MinidumpContext* md_context = md_exception->GetContext();
+  ASSERT_TRUE(md_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_MIPS, md_context->GetContextCPU());
+  const MDRawContextMIPS* md_raw_context = md_context->GetContextMIPS();
+  ASSERT_TRUE(md_raw_context != NULL);
+  ASSERT_EQ((uint32_t) MD_CONTEXT_MIPS_INTEGER,
+            (md_raw_context->context_flags & MD_CONTEXT_MIPS_INTEGER));
+  EXPECT_EQ(0x3ecba80dU, raw_context.iregs[0]);
+  EXPECT_EQ(0x382583b9U, raw_context.iregs[1]);
+  EXPECT_EQ(0x7fccc03fU, raw_context.iregs[2]);
+  EXPECT_EQ(0xf62f8ec2U, raw_context.iregs[3]);
+  EXPECT_EQ(0x46a6a6a8U, raw_context.iregs[4]);
+  EXPECT_EQ(0x6a5025e2U, raw_context.iregs[5]);
+  EXPECT_EQ(0xd9fabb4aU, raw_context.iregs[6]);
+  EXPECT_EQ(0x6913f540U, raw_context.iregs[7]);
+  EXPECT_EQ(0xbffe6edaU, raw_context.iregs[8]);
+  EXPECT_EQ(0xb2ce1e2dU, raw_context.iregs[9]);
+  EXPECT_EQ(0x659caaa4U, raw_context.iregs[10]);
+  EXPECT_EQ(0xf0e0d0c0U, raw_context.iregs[11]);
+  EXPECT_EQ(0xa9b8c7d6U, raw_context.iregs[12]);
+  EXPECT_EQ(0x12345678U, raw_context.iregs[13]);
+  EXPECT_EQ(0xabcd1234U, raw_context.iregs[14]);
+  EXPECT_EQ(0x10203040U, raw_context.iregs[15]);
+  EXPECT_EQ(0xa80d3ecbU, raw_context.iregs[16]);
+  EXPECT_EQ(0x83b93825U, raw_context.iregs[17]);
+  EXPECT_EQ(0xc03f7fccU, raw_context.iregs[18]);
+  EXPECT_EQ(0x8ec2f62fU, raw_context.iregs[19]);
+  EXPECT_EQ(0xa6a846a6U, raw_context.iregs[20]);
+  EXPECT_EQ(0x25e26a50U, raw_context.iregs[21]);
+  EXPECT_EQ(0xbb4ad9faU, raw_context.iregs[22]);
+  EXPECT_EQ(0xf5406913U, raw_context.iregs[23]);
+  EXPECT_EQ(0x6edabffeU, raw_context.iregs[24]);
+  EXPECT_EQ(0x1e2db2ceU, raw_context.iregs[25]);
+  EXPECT_EQ(0xaaa4659cU, raw_context.iregs[26]);
+  EXPECT_EQ(0xd0c0f0e0U, raw_context.iregs[27]);
+  EXPECT_EQ(0xc7d6a9b8U, raw_context.iregs[28]);
+  EXPECT_EQ(0x56781234U, raw_context.iregs[29]);
+  EXPECT_EQ(0x1234abcdU, raw_context.iregs[30]);
+  EXPECT_EQ(0x30401020U, raw_context.iregs[31]);
+}
+
+}  // namespace
diff --git a/src/processor/module_comparer.cc b/src/processor/module_comparer.cc
new file mode 100644
index 0000000..669f113
--- /dev/null
+++ b/src/processor/module_comparer.cc
@@ -0,0 +1,302 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// module_comparer.cc: ModuleComparer implementation.
+// See module_comparer.h for documentation.
+//
+// Author: lambxsy@google.com (Siyang Xie)
+
+#include "processor/module_comparer.h"
+
+#include <map>
+#include <string>
+
+#include "common/scoped_ptr.h"
+#include "processor/basic_code_module.h"
+#include "processor/logging.h"
+
+#define ASSERT_TRUE(condition) \
+  if (!(condition)) { \
+    BPLOG(ERROR) << "FAIL: " << #condition << " @ " \
+                 << __FILE__ << ":" << __LINE__; \
+    return false; \
+  }
+
+#define ASSERT_FALSE(condition) ASSERT_TRUE(!(condition))
+
+namespace google_breakpad {
+
+bool ModuleComparer::Compare(const string& symbol_data) {
+  scoped_ptr<BasicModule> basic_module(new BasicModule("test_module"));
+  scoped_ptr<FastModule> fast_module(new FastModule("test_module"));
+
+  // Load symbol data into basic_module
+  scoped_array<char> buffer(new char[symbol_data.size() + 1]);
+  memcpy(buffer.get(), symbol_data.c_str(), symbol_data.size());
+  buffer.get()[symbol_data.size()] = '\0';
+  ASSERT_TRUE(basic_module->LoadMapFromMemory(buffer.get(),
+                                              symbol_data.size() + 1));
+  buffer.reset();
+
+  // Serialize BasicSourceLineResolver::Module.
+  unsigned int serialized_size = 0;
+  scoped_array<char> serialized_data(
+      serializer_.Serialize(*(basic_module.get()), &serialized_size));
+  ASSERT_TRUE(serialized_data.get());
+  BPLOG(INFO) << "Serialized size = " << serialized_size << " Bytes";
+
+  // Load FastSourceLineResolver::Module using serialized data.
+  ASSERT_TRUE(fast_module->LoadMapFromMemory(serialized_data.get(),
+                                             serialized_size));
+  ASSERT_TRUE(fast_module->IsCorrupt() == basic_module->IsCorrupt());
+
+  // Compare FastSourceLineResolver::Module with
+  // BasicSourceLineResolver::Module.
+  ASSERT_TRUE(CompareModule(basic_module.get(), fast_module.get()));
+
+  return true;
+}
+
+// Traversal the content of module and do comparison
+bool ModuleComparer::CompareModule(const BasicModule *basic_module,
+                                  const FastModule *fast_module) const {
+  // Compare name_.
+  ASSERT_TRUE(basic_module->name_ == fast_module->name_);
+
+  // Compare files_:
+  {
+    BasicModule::FileMap::const_iterator iter1 = basic_module->files_.begin();
+    FastModule::FileMap::iterator iter2 = fast_module->files_.begin();
+    while (iter1 != basic_module->files_.end()
+        && iter2 != fast_module->files_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      string tmp(iter2.GetValuePtr());
+      ASSERT_TRUE(iter1->second == tmp);
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_module->files_.end());
+    ASSERT_TRUE(iter2 == fast_module->files_.end());
+  }
+
+  // Compare functions_:
+  {
+    RangeMap<MemAddr, linked_ptr<BasicFunc> >::MapConstIterator iter1;
+    StaticRangeMap<MemAddr, FastFunc>::MapConstIterator iter2;
+    iter1 = basic_module->functions_.map_.begin();
+    iter2 = fast_module->functions_.map_.begin();
+    while (iter1 != basic_module->functions_.map_.end()
+        && iter2 != fast_module->functions_.map_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      ASSERT_TRUE(iter1->second.base() == iter2.GetValuePtr()->base());
+      ASSERT_TRUE(CompareFunction(
+          iter1->second.entry().get(), iter2.GetValuePtr()->entryptr()));
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_module->functions_.map_.end());
+    ASSERT_TRUE(iter2 == fast_module->functions_.map_.end());
+  }
+
+  // Compare public_symbols_:
+  {
+    AddressMap<MemAddr, linked_ptr<BasicPubSymbol> >::MapConstIterator iter1;
+    StaticAddressMap<MemAddr, FastPubSymbol>::MapConstIterator iter2;
+    iter1 = basic_module->public_symbols_.map_.begin();
+    iter2 = fast_module->public_symbols_.map_.begin();
+    while (iter1 != basic_module->public_symbols_.map_.end()
+          && iter2 != fast_module->public_symbols_.map_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      ASSERT_TRUE(ComparePubSymbol(
+          iter1->second.get(), iter2.GetValuePtr()));
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_module->public_symbols_.map_.end());
+    ASSERT_TRUE(iter2 == fast_module->public_symbols_.map_.end());
+  }
+
+  // Compare windows_frame_info_[]:
+  for (int i = 0; i < WindowsFrameInfo::STACK_INFO_LAST; ++i) {
+    ASSERT_TRUE(CompareCRM(&(basic_module->windows_frame_info_[i]),
+                           &(fast_module->windows_frame_info_[i])));
+  }
+
+  // Compare cfi_initial_rules_:
+  {
+    RangeMap<MemAddr, string>::MapConstIterator iter1;
+    StaticRangeMap<MemAddr, char>::MapConstIterator iter2;
+    iter1 = basic_module->cfi_initial_rules_.map_.begin();
+    iter2 = fast_module->cfi_initial_rules_.map_.begin();
+    while (iter1 != basic_module->cfi_initial_rules_.map_.end()
+        && iter2 != fast_module->cfi_initial_rules_.map_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      ASSERT_TRUE(iter1->second.base() == iter2.GetValuePtr()->base());
+      string tmp(iter2.GetValuePtr()->entryptr());
+      ASSERT_TRUE(iter1->second.entry() == tmp);
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_module->cfi_initial_rules_.map_.end());
+    ASSERT_TRUE(iter2 == fast_module->cfi_initial_rules_.map_.end());
+  }
+
+  // Compare cfi_delta_rules_:
+  {
+    map<MemAddr, string>::const_iterator iter1;
+    StaticMap<MemAddr, char>::iterator iter2;
+    iter1 = basic_module->cfi_delta_rules_.begin();
+    iter2 = fast_module->cfi_delta_rules_.begin();
+    while (iter1 != basic_module->cfi_delta_rules_.end()
+        && iter2 != fast_module->cfi_delta_rules_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      string tmp(iter2.GetValuePtr());
+      ASSERT_TRUE(iter1->second == tmp);
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_module->cfi_delta_rules_.end());
+    ASSERT_TRUE(iter2 == fast_module->cfi_delta_rules_.end());
+  }
+
+  return true;
+}
+
+bool ModuleComparer::CompareFunction(const BasicFunc *basic_func,
+                                    const FastFunc *fast_func_raw) const {
+  FastFunc* fast_func = new FastFunc();
+  fast_func->CopyFrom(fast_func_raw);
+  ASSERT_TRUE(basic_func->name == fast_func->name);
+  ASSERT_TRUE(basic_func->address == fast_func->address);
+  ASSERT_TRUE(basic_func->size == fast_func->size);
+
+  // compare range map of lines:
+  RangeMap<MemAddr, linked_ptr<BasicLine> >::MapConstIterator iter1;
+  StaticRangeMap<MemAddr, FastLine>::MapConstIterator iter2;
+  iter1 = basic_func->lines.map_.begin();
+  iter2 = fast_func->lines.map_.begin();
+  while (iter1 != basic_func->lines.map_.end()
+      && iter2 != fast_func->lines.map_.end()) {
+    ASSERT_TRUE(iter1->first == iter2.GetKey());
+    ASSERT_TRUE(iter1->second.base() == iter2.GetValuePtr()->base());
+    ASSERT_TRUE(CompareLine(iter1->second.entry().get(),
+                            iter2.GetValuePtr()->entryptr()));
+    ++iter1;
+    ++iter2;
+  }
+  ASSERT_TRUE(iter1 == basic_func->lines.map_.end());
+  ASSERT_TRUE(iter2 == fast_func->lines.map_.end());
+
+  delete fast_func;
+  return true;
+}
+
+bool ModuleComparer::CompareLine(const BasicLine *basic_line,
+                                const FastLine *fast_line_raw) const {
+  FastLine *fast_line = new FastLine;
+  fast_line->CopyFrom(fast_line_raw);
+
+  ASSERT_TRUE(basic_line->address == fast_line->address);
+  ASSERT_TRUE(basic_line->size == fast_line->size);
+  ASSERT_TRUE(basic_line->source_file_id == fast_line->source_file_id);
+  ASSERT_TRUE(basic_line->line == fast_line->line);
+
+  delete fast_line;
+  return true;
+}
+
+bool ModuleComparer::ComparePubSymbol(const BasicPubSymbol* basic_ps,
+                                     const FastPubSymbol* fastps_raw) const {
+  FastPubSymbol *fast_ps = new FastPubSymbol;
+  fast_ps->CopyFrom(fastps_raw);
+  ASSERT_TRUE(basic_ps->name == fast_ps->name);
+  ASSERT_TRUE(basic_ps->address == fast_ps->address);
+  ASSERT_TRUE(basic_ps->parameter_size == fast_ps->parameter_size);
+  delete fast_ps;
+  return true;
+}
+
+bool ModuleComparer::CompareWFI(const WindowsFrameInfo& wfi1,
+                               const WindowsFrameInfo& wfi2) const {
+  ASSERT_TRUE(wfi1.type_ == wfi2.type_);
+  ASSERT_TRUE(wfi1.valid == wfi2.valid);
+  ASSERT_TRUE(wfi1.prolog_size == wfi2.prolog_size);
+  ASSERT_TRUE(wfi1.epilog_size == wfi2.epilog_size);
+  ASSERT_TRUE(wfi1.parameter_size == wfi2.parameter_size);
+  ASSERT_TRUE(wfi1.saved_register_size == wfi2.saved_register_size);
+  ASSERT_TRUE(wfi1.local_size == wfi2.local_size);
+  ASSERT_TRUE(wfi1.max_stack_size == wfi2.max_stack_size);
+  ASSERT_TRUE(wfi1.allocates_base_pointer == wfi2.allocates_base_pointer);
+  ASSERT_TRUE(wfi1.program_string == wfi2.program_string);
+  return true;
+}
+
+// Compare ContainedRangeMap
+bool ModuleComparer::CompareCRM(
+    const ContainedRangeMap<MemAddr, linked_ptr<WFI> >* basic_crm,
+    const StaticContainedRangeMap<MemAddr, char>* fast_crm) const {
+  ASSERT_TRUE(basic_crm->base_ == fast_crm->base_);
+
+  if (!basic_crm->entry_.get() || !fast_crm->entry_ptr_) {
+    // empty entry:
+    ASSERT_TRUE(!basic_crm->entry_.get() && !fast_crm->entry_ptr_);
+  } else {
+    WFI newwfi;
+    newwfi.CopyFrom(fast_resolver_->CopyWFI(fast_crm->entry_ptr_));
+    ASSERT_TRUE(CompareWFI(*(basic_crm->entry_.get()), newwfi));
+  }
+
+  if ((!basic_crm->map_ || basic_crm->map_->empty())
+      || fast_crm->map_.empty()) {
+    ASSERT_TRUE((!basic_crm->map_ || basic_crm->map_->empty())
+               && fast_crm->map_.empty());
+  } else {
+    ContainedRangeMap<MemAddr, linked_ptr<WFI> >::MapConstIterator iter1;
+    StaticContainedRangeMap<MemAddr, char>::MapConstIterator iter2;
+    iter1 = basic_crm->map_->begin();
+    iter2 = fast_crm->map_.begin();
+    while (iter1 != basic_crm->map_->end()
+        && iter2 != fast_crm->map_.end()) {
+      ASSERT_TRUE(iter1->first == iter2.GetKey());
+      StaticContainedRangeMap<MemAddr, char>* child =
+          new StaticContainedRangeMap<MemAddr, char>(
+              reinterpret_cast<const char*>(iter2.GetValuePtr()));
+      ASSERT_TRUE(CompareCRM(iter1->second, child));
+      delete child;
+      ++iter1;
+      ++iter2;
+    }
+    ASSERT_TRUE(iter1 == basic_crm->map_->end());
+    ASSERT_TRUE(iter2 == fast_crm->map_.end());
+  }
+
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/module_comparer.h b/src/processor/module_comparer.h
new file mode 100644
index 0000000..3691081
--- /dev/null
+++ b/src/processor/module_comparer.h
@@ -0,0 +1,98 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// module_comparer.h: ModuleComparer reads a string format of symbol file, and
+// loads the symbol into both BasicSourceLineResolver::Module and
+// FastSourceLineResolve::Module.  It then traverses both Modules and compare
+// the content of data to verify the correctness of new fast module.
+// ModuleCompare class is a tool to verify correctness of a loaded
+// FastSourceLineResolver::Module instance, i.e., in-memory representation of
+// parsed symbol.  ModuleComparer class should be used for testing purpose only,
+// e.g., in fast_source_line_resolver_unittest.
+//
+// Author: lambxsy@google.com (Siyang Xie)
+
+#ifndef PROCESSOR_MODULE_COMPARER_H__
+#define PROCESSOR_MODULE_COMPARER_H__
+
+#include <string>
+
+#include "processor/basic_source_line_resolver_types.h"
+#include "processor/fast_source_line_resolver_types.h"
+#include "processor/module_serializer.h"
+#include "processor/windows_frame_info.h"
+
+namespace google_breakpad {
+
+class ModuleComparer {
+ public:
+  ModuleComparer(): fast_resolver_(new FastSourceLineResolver),
+                   basic_resolver_(new BasicSourceLineResolver) { }
+  ~ModuleComparer() {
+    delete fast_resolver_;
+    delete basic_resolver_;
+  }
+
+  // BasicSourceLineResolver loads its module using the symbol data,
+  // ModuleSerializer serialize the loaded module into a memory chunk,
+  // FastSourceLineResolver loads its module using the serialized memory chunk,
+  // Then, traverse both modules together and compare underlying data
+  // return true if both modules contain exactly same data.
+  bool Compare(const string& symbol_data);
+
+ private:
+  typedef BasicSourceLineResolver::Module BasicModule;
+  typedef FastSourceLineResolver::Module FastModule;
+  typedef BasicSourceLineResolver::Function BasicFunc;
+  typedef FastSourceLineResolver::Function FastFunc;
+  typedef BasicSourceLineResolver::Line BasicLine;
+  typedef FastSourceLineResolver::Line FastLine;
+  typedef BasicSourceLineResolver::PublicSymbol BasicPubSymbol;
+  typedef FastSourceLineResolver::PublicSymbol FastPubSymbol;
+  typedef WindowsFrameInfo WFI;
+
+  bool CompareModule(const BasicModule *oldmodule,
+                     const FastModule *newmodule) const;
+  bool CompareFunction(const BasicFunc *oldfunc, const FastFunc *newfunc) const;
+  bool CompareLine(const BasicLine *oldline, const FastLine *newline) const;
+  bool ComparePubSymbol(const BasicPubSymbol*, const FastPubSymbol*) const;
+  bool CompareWFI(const WindowsFrameInfo&, const WindowsFrameInfo&) const;
+
+  // Compare ContainedRangeMap
+  bool CompareCRM(const ContainedRangeMap<MemAddr, linked_ptr<WFI> >*,
+                  const StaticContainedRangeMap<MemAddr, char>*) const;
+
+  FastSourceLineResolver *fast_resolver_;
+  BasicSourceLineResolver *basic_resolver_;
+  ModuleSerializer serializer_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_MODULE_COMPARER_H__
diff --git a/src/processor/module_factory.h b/src/processor/module_factory.h
new file mode 100644
index 0000000..c6465f4
--- /dev/null
+++ b/src/processor/module_factory.h
@@ -0,0 +1,72 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// module_factory.h: ModuleFactory a factory that provides
+// an interface for creating a Module and deferring instantiation to subclasses
+// BasicModuleFactory and FastModuleFactory.
+
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_MODULE_FACTORY_H__
+#define PROCESSOR_MODULE_FACTORY_H__
+
+#include "processor/basic_source_line_resolver_types.h"
+#include "processor/fast_source_line_resolver_types.h"
+#include "processor/source_line_resolver_base_types.h"
+
+namespace google_breakpad {
+
+class ModuleFactory {
+ public:
+  virtual ~ModuleFactory() { };
+  virtual SourceLineResolverBase::Module* CreateModule(
+      const string& name) const = 0;
+};
+
+class BasicModuleFactory : public ModuleFactory {
+ public:
+  virtual ~BasicModuleFactory() { }
+  virtual BasicSourceLineResolver::Module* CreateModule(
+      const string& name) const {
+    return new BasicSourceLineResolver::Module(name);
+  }
+};
+
+class FastModuleFactory : public ModuleFactory {
+ public:
+  virtual ~FastModuleFactory() { }
+  virtual FastSourceLineResolver::Module* CreateModule(
+      const string& name) const {
+    return new FastSourceLineResolver::Module(name);
+  }
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_MODULE_FACTORY_H__
diff --git a/src/processor/module_serializer.cc b/src/processor/module_serializer.cc
new file mode 100644
index 0000000..04cadc8
--- /dev/null
+++ b/src/processor/module_serializer.cc
@@ -0,0 +1,207 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// module_serializer.cc: ModuleSerializer implementation.
+//
+// See module_serializer.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include "processor/module_serializer.h"
+
+#include <map>
+#include <string>
+
+#include "processor/basic_code_module.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+// Definition of static member variable in SimplerSerializer<Funcion>, which
+// is declared in file "simple_serializer-inl.h"
+RangeMapSerializer< MemAddr, linked_ptr<BasicSourceLineResolver::Line> >
+SimpleSerializer<BasicSourceLineResolver::Function>::range_map_serializer_;
+
+size_t ModuleSerializer::SizeOf(const BasicSourceLineResolver::Module& module) {
+  size_t total_size_alloc_ = 0;
+
+  // Size of the "is_corrupt" flag.
+  total_size_alloc_ += SimpleSerializer<bool>::SizeOf(module.is_corrupt_);
+
+  // Compute memory size for each map component in Module class.
+  int map_index = 0;
+  map_sizes_[map_index++] = files_serializer_.SizeOf(module.files_);
+  map_sizes_[map_index++] = functions_serializer_.SizeOf(module.functions_);
+  map_sizes_[map_index++] = pubsym_serializer_.SizeOf(module.public_symbols_);
+  for (int i = 0; i < WindowsFrameInfo::STACK_INFO_LAST; ++i)
+   map_sizes_[map_index++] =
+       wfi_serializer_.SizeOf(&(module.windows_frame_info_[i]));
+  map_sizes_[map_index++] = cfi_init_rules_serializer_.SizeOf(
+     module.cfi_initial_rules_);
+  map_sizes_[map_index++] = cfi_delta_rules_serializer_.SizeOf(
+     module.cfi_delta_rules_);
+
+  // Header size.
+  total_size_alloc_ += kNumberMaps_ * sizeof(uint32_t);
+
+  for (int i = 0; i < kNumberMaps_; ++i) {
+    total_size_alloc_ += map_sizes_[i];
+  }
+
+  // Extra one byte for null terminator for C-string copy safety.
+  total_size_alloc_ += SimpleSerializer<char>::SizeOf(0);
+
+  return total_size_alloc_;
+}
+
+char* ModuleSerializer::Write(const BasicSourceLineResolver::Module& module,
+                              char* dest) {
+  // Write the is_corrupt flag.
+  dest = SimpleSerializer<bool>::Write(module.is_corrupt_, dest);
+  // Write header.
+  memcpy(dest, map_sizes_, kNumberMaps_ * sizeof(uint32_t));
+  dest += kNumberMaps_ * sizeof(uint32_t);
+  // Write each map.
+  dest = files_serializer_.Write(module.files_, dest);
+  dest = functions_serializer_.Write(module.functions_, dest);
+  dest = pubsym_serializer_.Write(module.public_symbols_, dest);
+  for (int i = 0; i < WindowsFrameInfo::STACK_INFO_LAST; ++i)
+    dest = wfi_serializer_.Write(&(module.windows_frame_info_[i]), dest);
+  dest = cfi_init_rules_serializer_.Write(module.cfi_initial_rules_, dest);
+  dest = cfi_delta_rules_serializer_.Write(module.cfi_delta_rules_, dest);
+  // Write a null terminator.
+  dest = SimpleSerializer<char>::Write(0, dest);
+  return dest;
+}
+
+char* ModuleSerializer::Serialize(
+    const BasicSourceLineResolver::Module& module, unsigned int* size) {
+  // Compute size of memory to allocate.
+  unsigned int size_to_alloc = SizeOf(module);
+
+  // Allocate memory for serialized data.
+  char* serialized_data = new char[size_to_alloc];
+  if (!serialized_data) {
+    BPLOG(ERROR) << "ModuleSerializer: memory allocation failed, "
+                 << "size to alloc: " << size_to_alloc;
+    if (size) *size = 0;
+    return NULL;
+  }
+
+  // Write serialized data to allocated memory chunk.
+  char* end_address = Write(module, serialized_data);
+  // Verify the allocated memory size is equal to the size of data been written.
+  unsigned int size_written =
+      static_cast<unsigned int>(end_address - serialized_data);
+  if (size_to_alloc != size_written) {
+    BPLOG(ERROR) << "size_to_alloc differs from size_written: "
+                   << size_to_alloc << " vs " << size_written;
+  }
+
+  // Set size and return the start address of memory chunk.
+  if (size)
+    *size = size_to_alloc;
+  return serialized_data;
+}
+
+bool ModuleSerializer::SerializeModuleAndLoadIntoFastResolver(
+    const BasicSourceLineResolver::ModuleMap::const_iterator& iter,
+    FastSourceLineResolver* fast_resolver) {
+  BPLOG(INFO) << "Converting symbol " << iter->first.c_str();
+
+  // Cast SourceLineResolverBase::Module* to BasicSourceLineResolver::Module*.
+  BasicSourceLineResolver::Module* basic_module =
+      dynamic_cast<BasicSourceLineResolver::Module*>(iter->second);
+
+  unsigned int size = 0;
+  scoped_array<char> symbol_data(Serialize(*basic_module, &size));
+  if (!symbol_data.get()) {
+    BPLOG(ERROR) << "Serialization failed for module: " << basic_module->name_;
+    return false;
+  }
+  BPLOG(INFO) << "Serialized Symbol Size " << size;
+
+  // Copy the data into string.
+  // Must pass string to LoadModuleUsingMapBuffer(), instead of passing char* to
+  // LoadModuleUsingMemoryBuffer(), becaused of data ownership/lifetime issue.
+  string symbol_data_string(symbol_data.get(), size);
+  symbol_data.reset();
+
+  scoped_ptr<CodeModule> code_module(
+      new BasicCodeModule(0, 0, iter->first, "", "", "", ""));
+
+  return fast_resolver->LoadModuleUsingMapBuffer(code_module.get(),
+                                                 symbol_data_string);
+}
+
+void ModuleSerializer::ConvertAllModules(
+    const BasicSourceLineResolver* basic_resolver,
+    FastSourceLineResolver* fast_resolver) {
+  // Check for NULL pointer.
+  if (!basic_resolver || !fast_resolver)
+    return;
+
+  // Traverse module list in basic resolver.
+  BasicSourceLineResolver::ModuleMap::const_iterator iter;
+  iter = basic_resolver->modules_->begin();
+  for (; iter != basic_resolver->modules_->end(); ++iter)
+    SerializeModuleAndLoadIntoFastResolver(iter, fast_resolver);
+}
+
+bool ModuleSerializer::ConvertOneModule(
+    const string& moduleid,
+    const BasicSourceLineResolver* basic_resolver,
+    FastSourceLineResolver* fast_resolver) {
+  // Check for NULL pointer.
+  if (!basic_resolver || !fast_resolver)
+    return false;
+
+  BasicSourceLineResolver::ModuleMap::const_iterator iter;
+  iter = basic_resolver->modules_->find(moduleid);
+  if (iter == basic_resolver->modules_->end())
+    return false;
+
+  return SerializeModuleAndLoadIntoFastResolver(iter, fast_resolver);
+}
+
+char* ModuleSerializer::SerializeSymbolFileData(
+    const string& symbol_data, unsigned int* size) {
+  scoped_ptr<BasicSourceLineResolver::Module> module(
+      new BasicSourceLineResolver::Module("no name"));
+  scoped_array<char> buffer(new char[symbol_data.size() + 1]);
+  memcpy(buffer.get(), symbol_data.c_str(), symbol_data.size());
+  buffer.get()[symbol_data.size()] = '\0';
+  if (!module->LoadMapFromMemory(buffer.get(), symbol_data.size() + 1)) {
+    return NULL;
+  }
+  buffer.reset(NULL);
+  return Serialize(*(module.get()), size);
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/module_serializer.h b/src/processor/module_serializer.h
new file mode 100644
index 0000000..932ac3d
--- /dev/null
+++ b/src/processor/module_serializer.h
@@ -0,0 +1,127 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// module_serializer.h: ModuleSerializer serializes a loaded symbol,
+// i.e., a loaded BasicSouceLineResolver::Module instance, into a memory
+// chunk of data. The serialized data can be read and loaded by
+// FastSourceLineResolver without CPU & memory-intensive parsing.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_MODULE_SERIALIZER_H__
+#define PROCESSOR_MODULE_SERIALIZER_H__
+
+#include <map>
+#include <string>
+
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/fast_source_line_resolver.h"
+#include "processor/basic_source_line_resolver_types.h"
+#include "processor/fast_source_line_resolver_types.h"
+#include "processor/linked_ptr.h"
+#include "processor/map_serializers-inl.h"
+#include "processor/simple_serializer-inl.h"
+#include "processor/windows_frame_info.h"
+
+namespace google_breakpad {
+
+// ModuleSerializer serializes a loaded BasicSourceLineResolver::Module into a
+// chunk of memory data. ModuleSerializer also provides interface to compute
+// memory size of the serialized data, write serialized data directly into
+// memory, convert ASCII format symbol data into serialized binary data, and
+// convert loaded BasicSourceLineResolver::Module into
+// FastSourceLineResolver::Module.
+class ModuleSerializer {
+ public:
+  // Compute the size of memory required to serialize a module.  Return the
+  // total size needed for serialization.
+  size_t SizeOf(const BasicSourceLineResolver::Module& module);
+
+  // Write a module into an allocated memory chunk with required size.
+  // Return the "end" of data, i.e., the address after the final byte of data.
+  char* Write(const BasicSourceLineResolver::Module& module, char* dest);
+
+  // Serializes a loaded Module object into a chunk of memory data and returns
+  // the address of memory chunk.  If size != NULL, *size is set to the memory
+  // size allocated for the serialized data.
+  // Caller takes the ownership of the memory chunk (allocated on heap), and
+  // owner should call delete [] to free the memory after use.
+  char* Serialize(const BasicSourceLineResolver::Module& module,
+                  unsigned int* size = NULL);
+
+  // Given the string format symbol_data, produces a chunk of serialized data.
+  // Caller takes ownership of the serialized data (on heap), and owner should
+  // call delete [] to free the memory after use.
+  char* SerializeSymbolFileData(const string& symbol_data,
+                                unsigned int* size = NULL);
+
+  // Serializes one loaded module with given moduleid in the basic source line
+  // resolver, and loads the serialized data into the fast source line resolver.
+  // Return false if the basic source line doesn't have a module with the given
+  // moduleid.
+  bool ConvertOneModule(const string& moduleid,
+                        const BasicSourceLineResolver* basic_resolver,
+                        FastSourceLineResolver* fast_resolver);
+
+  // Serializes all the loaded modules in a basic source line resolver, and
+  // loads the serialized data into a fast source line resolver.
+  void ConvertAllModules(const BasicSourceLineResolver* basic_resolver,
+                         FastSourceLineResolver* fast_resolver);
+
+ private:
+  // Convenient type names.
+  typedef BasicSourceLineResolver::Line Line;
+  typedef BasicSourceLineResolver::Function Function;
+  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
+
+  // Internal implementation for ConvertOneModule and ConvertAllModules methods.
+  bool SerializeModuleAndLoadIntoFastResolver(
+      const BasicSourceLineResolver::ModuleMap::const_iterator& iter,
+      FastSourceLineResolver* fast_resolver);
+
+  // Number of Maps that Module class contains.
+  static const int32_t kNumberMaps_ =
+      FastSourceLineResolver::Module::kNumberMaps_;
+
+  // Memory sizes required to serialize map components in Module.
+  uint32_t map_sizes_[kNumberMaps_];
+
+  // Serializers for each individual map component in Module class.
+  StdMapSerializer<int, string> files_serializer_;
+  RangeMapSerializer<MemAddr, linked_ptr<Function> > functions_serializer_;
+  AddressMapSerializer<MemAddr, linked_ptr<PublicSymbol> > pubsym_serializer_;
+  ContainedRangeMapSerializer<MemAddr,
+                              linked_ptr<WindowsFrameInfo> > wfi_serializer_;
+  RangeMapSerializer<MemAddr, string> cfi_init_rules_serializer_;
+  StdMapSerializer<MemAddr, string> cfi_delta_rules_serializer_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_MODULE_SERIALIZER_H__
diff --git a/src/processor/pathname_stripper.cc b/src/processor/pathname_stripper.cc
new file mode 100644
index 0000000..c425b46
--- /dev/null
+++ b/src/processor/pathname_stripper.cc
@@ -0,0 +1,56 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// pathname_stripper.cc: Manipulates pathnames into their component parts.
+//
+// See pathname_stripper.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "processor/pathname_stripper.h"
+
+namespace google_breakpad {
+
+// static
+string PathnameStripper::File(const string& path) {
+  string::size_type slash = path.rfind('/');
+  string::size_type backslash = path.rfind('\\');
+
+  string::size_type file_start = 0;
+  if (slash != string::npos &&
+      (backslash == string::npos || slash > backslash)) {
+    file_start = slash + 1;
+  } else if (backslash != string::npos) {
+    file_start = backslash + 1;
+  }
+
+  return path.substr(file_start);
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/pathname_stripper.h b/src/processor/pathname_stripper.h
new file mode 100644
index 0000000..fdf15e0
--- /dev/null
+++ b/src/processor/pathname_stripper.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// pathname_stripper.h: Manipulates pathnames into their component parts.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_PATHNAME_STRIPPER_H__
+#define PROCESSOR_PATHNAME_STRIPPER_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class PathnameStripper {
+ public:
+  // Given path, a pathname with components separated by slashes (/) or
+  // backslashes (\), returns the trailing component, without any separator.
+  // If path ends in a separator character, returns an empty string.
+  static string File(const string& path);
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_PATHNAME_STRIPPER_H__
diff --git a/src/processor/pathname_stripper_unittest.cc b/src/processor/pathname_stripper_unittest.cc
new file mode 100644
index 0000000..61f74fa
--- /dev/null
+++ b/src/processor/pathname_stripper_unittest.cc
@@ -0,0 +1,87 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdio.h>
+
+#include "processor/pathname_stripper.h"
+#include "processor/logging.h"
+
+#define ASSERT_TRUE(condition) \
+  if (!(condition)) { \
+    fprintf(stderr, "FAIL: %s @ %s:%d\n", #condition, __FILE__, __LINE__); \
+    return false; \
+  }
+
+#define ASSERT_EQ(e1, e2) ASSERT_TRUE((e1) == (e2))
+
+namespace {
+
+using google_breakpad::PathnameStripper;
+
+static bool RunTests() {
+  ASSERT_EQ(PathnameStripper::File("/dir/file"), "file");
+  ASSERT_EQ(PathnameStripper::File("\\dir\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("/dir\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("\\dir/file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir/file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir/\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir\\/file"), "file");
+  ASSERT_EQ(PathnameStripper::File("file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir/"), "");
+  ASSERT_EQ(PathnameStripper::File("dir\\"), "");
+  ASSERT_EQ(PathnameStripper::File("dir/dir/"), "");
+  ASSERT_EQ(PathnameStripper::File("dir\\dir\\"), "");
+  ASSERT_EQ(PathnameStripper::File("dir1/dir2/file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir1\\dir2\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir1/dir2\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir1\\dir2/file"), "file");
+  ASSERT_EQ(PathnameStripper::File(""), "");
+  ASSERT_EQ(PathnameStripper::File("1"), "1");
+  ASSERT_EQ(PathnameStripper::File("1/2"), "2");
+  ASSERT_EQ(PathnameStripper::File("1\\2"), "2");
+  ASSERT_EQ(PathnameStripper::File("/1/2"), "2");
+  ASSERT_EQ(PathnameStripper::File("\\1\\2"), "2");
+  ASSERT_EQ(PathnameStripper::File("dir//file"), "file");
+  ASSERT_EQ(PathnameStripper::File("dir\\\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("/dir//file"), "file");
+  ASSERT_EQ(PathnameStripper::File("\\dir\\\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("c:\\dir\\file"), "file");
+  ASSERT_EQ(PathnameStripper::File("c:\\dir\\file.ext"), "file.ext");
+
+  return true;
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/processor/postfix_evaluator-inl.h b/src/processor/postfix_evaluator-inl.h
new file mode 100644
index 0000000..f567b1c
--- /dev/null
+++ b/src/processor/postfix_evaluator-inl.h
@@ -0,0 +1,363 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// postfix_evaluator-inl.h: Postfix (reverse Polish) notation expression
+// evaluator.
+//
+// Documentation in postfix_evaluator.h.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_POSTFIX_EVALUATOR_INL_H__
+#define PROCESSOR_POSTFIX_EVALUATOR_INL_H__
+
+#include "processor/postfix_evaluator.h"
+
+#include <stdio.h>
+
+#include <sstream>
+
+#include "google_breakpad/processor/memory_region.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+using std::istringstream;
+using std::ostringstream;
+
+
+// A small class used in Evaluate to make sure to clean up the stack
+// before returning failure.
+class AutoStackClearer {
+ public:
+  explicit AutoStackClearer(vector<string>* stack) : stack_(stack) {}
+  ~AutoStackClearer() { stack_->clear(); }
+
+ private:
+  vector<string>* stack_;
+};
+
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::EvaluateToken(
+    const string& token,
+    const string& expression,
+    DictionaryValidityType* assigned) {
+  // There are enough binary operations that do exactly the same thing
+  // (other than the specific operation, of course) that it makes sense
+  // to share as much code as possible.
+  enum BinaryOperation {
+    BINARY_OP_NONE = 0,
+    BINARY_OP_ADD,
+    BINARY_OP_SUBTRACT,
+    BINARY_OP_MULTIPLY,
+    BINARY_OP_DIVIDE_QUOTIENT,
+    BINARY_OP_DIVIDE_MODULUS,
+    BINARY_OP_ALIGN
+  };
+
+  BinaryOperation operation = BINARY_OP_NONE;
+  if (token == "+")
+    operation = BINARY_OP_ADD;
+  else if (token == "-")
+    operation = BINARY_OP_SUBTRACT;
+  else if (token == "*")
+    operation = BINARY_OP_MULTIPLY;
+  else if (token == "/")
+    operation = BINARY_OP_DIVIDE_QUOTIENT;
+  else if (token == "%")
+    operation = BINARY_OP_DIVIDE_MODULUS;
+  else if (token == "@")
+    operation = BINARY_OP_ALIGN;
+
+  if (operation != BINARY_OP_NONE) {
+    // Get the operands.
+    ValueType operand1 = ValueType();
+    ValueType operand2 = ValueType();
+    if (!PopValues(&operand1, &operand2)) {
+      BPLOG(ERROR) << "Could not PopValues to get two values for binary "
+                      "operation " << token << ": " << expression;
+      return false;
+    }
+
+    // Perform the operation.
+    ValueType result;
+    switch (operation) {
+      case BINARY_OP_ADD:
+        result = operand1 + operand2;
+        break;
+      case BINARY_OP_SUBTRACT:
+        result = operand1 - operand2;
+        break;
+      case BINARY_OP_MULTIPLY:
+        result = operand1 * operand2;
+        break;
+      case BINARY_OP_DIVIDE_QUOTIENT:
+        result = operand1 / operand2;
+        break;
+      case BINARY_OP_DIVIDE_MODULUS:
+        result = operand1 % operand2;
+        break;
+      case BINARY_OP_ALIGN:
+	result =
+	  operand1 & (static_cast<ValueType>(-1) ^ (operand2 - 1));
+        break;
+      case BINARY_OP_NONE:
+        // This will not happen, but compilers will want a default or
+        // BINARY_OP_NONE case.
+        BPLOG(ERROR) << "Not reached!";
+        return false;
+        break;
+    }
+
+    // Save the result.
+    PushValue(result);
+  } else if (token == "^") {
+    // ^ for unary dereference.  Can't dereference without memory.
+    if (!memory_) {
+      BPLOG(ERROR) << "Attempt to dereference without memory: " <<
+                      expression;
+      return false;
+    }
+
+    ValueType address;
+    if (!PopValue(&address)) {
+      BPLOG(ERROR) << "Could not PopValue to get value to derefence: " <<
+                      expression;
+      return false;
+    }
+
+    ValueType value;
+    if (!memory_->GetMemoryAtAddress(address, &value)) {
+      BPLOG(ERROR) << "Could not dereference memory at address " <<
+                      HexString(address) << ": " << expression;
+      return false;
+    }
+
+    PushValue(value);
+  } else if (token == "=") {
+    // = for assignment.
+    ValueType value;
+    if (!PopValue(&value)) {
+      BPLOG(INFO) << "Could not PopValue to get value to assign: " <<
+                     expression;
+      return false;
+    }
+
+    // Assignment is only meaningful when assigning into an identifier.
+    // The identifier must name a variable, not a constant.  Variables
+    // begin with '$'.
+    string identifier;
+    if (PopValueOrIdentifier(NULL, &identifier) != POP_RESULT_IDENTIFIER) {
+      BPLOG(ERROR) << "PopValueOrIdentifier returned a value, but an "
+                      "identifier is needed to assign " <<
+                      HexString(value) << ": " << expression;
+      return false;
+    }
+    if (identifier.empty() || identifier[0] != '$') {
+      BPLOG(ERROR) << "Can't assign " << HexString(value) << " to " <<
+                      identifier << ": " << expression;
+      return false;
+    }
+
+    (*dictionary_)[identifier] = value;
+    if (assigned)
+      (*assigned)[identifier] = true;
+  } else {
+    // The token is not an operator, it's a literal value or an identifier.
+    // Push it onto the stack as-is.  Use push_back instead of PushValue
+    // because PushValue pushes ValueType as a string, but token is already
+    // a string.
+    stack_.push_back(token);
+  }
+  return true;
+}
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::EvaluateInternal(
+    const string& expression,
+    DictionaryValidityType* assigned) {
+  // Tokenize, splitting on whitespace.
+  istringstream stream(expression);
+  string token;
+  while (stream >> token) {
+    // Normally, tokens are whitespace-separated, but occasionally, the
+    // assignment operator is smashed up against the next token, i.e.
+    // $T0 $ebp 128 + =$eip $T0 4 + ^ =$ebp $T0 ^ =
+    // This has been observed in program strings produced by MSVS 2010 in LTO
+    // mode.
+    if (token.size() > 1 && token[0] == '=') {
+      if (!EvaluateToken("=", expression, assigned)) {
+        return false;
+      }
+
+      if (!EvaluateToken(token.substr(1), expression, assigned)) {
+        return false;
+      }
+    } else if (!EvaluateToken(token, expression, assigned)) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::Evaluate(const string& expression,
+                                           DictionaryValidityType* assigned) {
+  // Ensure that the stack is cleared before returning.
+  AutoStackClearer clearer(&stack_);
+
+  if (!EvaluateInternal(expression, assigned))
+    return false;
+
+  // If there's anything left on the stack, it indicates incomplete execution.
+  // This is a failure case.  If the stack is empty, evalution was complete
+  // and successful.
+  if (stack_.empty())
+    return true;
+
+  BPLOG(ERROR) << "Incomplete execution: " << expression;
+  return false;
+}
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::EvaluateForValue(const string& expression,
+                                                   ValueType* result) {
+  // Ensure that the stack is cleared before returning.
+  AutoStackClearer clearer(&stack_);
+
+  if (!EvaluateInternal(expression, NULL))
+    return false;
+
+  // A successful execution should leave exactly one value on the stack.
+  if (stack_.size() != 1) {
+    BPLOG(ERROR) << "Expression yielded bad number of results: "
+                 << "'" << expression << "'";
+    return false;
+  }
+
+  return PopValue(result);
+}
+
+template<typename ValueType>
+typename PostfixEvaluator<ValueType>::PopResult
+PostfixEvaluator<ValueType>::PopValueOrIdentifier(
+    ValueType* value, string* identifier) {
+  // There needs to be at least one element on the stack to pop.
+  if (!stack_.size())
+    return POP_RESULT_FAIL;
+
+  string token = stack_.back();
+  stack_.pop_back();
+
+  // First, try to treat the value as a literal. Literals may have leading
+  // '-' sign, and the entire remaining string must be parseable as
+  // ValueType. If this isn't possible, it can't be a literal, so treat it
+  // as an identifier instead.
+  //
+  // Some versions of the libstdc++, the GNU standard C++ library, have
+  // stream extractors for unsigned integer values that permit a leading
+  // '-' sign (6.0.13); others do not (6.0.9). Since we require it, we
+  // handle it explicitly here.
+  istringstream token_stream(token);
+  ValueType literal = ValueType();
+  bool negative;
+  if (token_stream.peek() == '-') {
+    negative = true;
+    token_stream.get();
+  } else {
+    negative = false;
+  }
+  if (token_stream >> literal && token_stream.peek() == EOF) {
+    if (value) {
+      *value = literal;
+    }
+    if (negative)
+      *value = -*value;
+    return POP_RESULT_VALUE;
+  } else {
+    if (identifier) {
+      *identifier = token;
+    }
+    return POP_RESULT_IDENTIFIER;
+  }
+}
+
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::PopValue(ValueType* value) {
+  ValueType literal = ValueType();
+  string token;
+  PopResult result;
+  if ((result = PopValueOrIdentifier(&literal, &token)) == POP_RESULT_FAIL) {
+    return false;
+  } else if (result == POP_RESULT_VALUE) {
+    // This is the easy case.
+    *value = literal;
+  } else {  // result == POP_RESULT_IDENTIFIER
+    // There was an identifier at the top of the stack.  Resolve it to a
+    // value by looking it up in the dictionary.
+    typename DictionaryType::const_iterator iterator =
+        dictionary_->find(token);
+    if (iterator == dictionary_->end()) {
+      // The identifier wasn't found in the dictionary.  Don't imply any
+      // default value, just fail.
+      BPLOG(INFO) << "Identifier " << token << " not in dictionary";
+      return false;
+    }
+
+    *value = iterator->second;
+  }
+
+  return true;
+}
+
+
+template<typename ValueType>
+bool PostfixEvaluator<ValueType>::PopValues(ValueType* value1,
+                                            ValueType* value2) {
+  return PopValue(value2) && PopValue(value1);
+}
+
+
+template<typename ValueType>
+void PostfixEvaluator<ValueType>::PushValue(const ValueType& value) {
+  ostringstream token_stream;
+  token_stream << value;
+  stack_.push_back(token_stream.str());
+}
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_POSTFIX_EVALUATOR_INL_H__
diff --git a/src/processor/postfix_evaluator.h b/src/processor/postfix_evaluator.h
new file mode 100644
index 0000000..d847a9b
--- /dev/null
+++ b/src/processor/postfix_evaluator.h
@@ -0,0 +1,179 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// postfix_evaluator.h: Postfix (reverse Polish) notation expression evaluator.
+//
+// PostfixEvaluator evaluates an expression, using the expression itself
+// in postfix (reverse Polish) notation and a dictionary mapping constants
+// and variables to their values.  The evaluator supports standard
+// arithmetic operations, assignment into variables, and when an optional
+// MemoryRange is provided, dereferencing.  (Any unary key-to-value operation
+// may be used with a MemoryRange implementation that returns the appropriate
+// values, but PostfixEvaluator was written with dereferencing in mind.)
+//
+// The expression language is simple.  Expressions are supplied as strings,
+// with operands and operators delimited by whitespace.  Operands may be
+// either literal values suitable for ValueType, or constants or variables,
+// which reference the dictionary.  The supported binary operators are +
+// (addition), - (subtraction), * (multiplication), / (quotient of division),
+// % (modulus of division), and @ (data alignment). The alignment operator (@)
+// accepts a value and an alignment size, and produces a result that is a
+// multiple of the alignment size by truncating the input value.
+// The unary ^ (dereference) operator is also provided.  These operators
+// allow any operand to be either a literal value, constant, or variable.
+// Assignment (=) of any type of operand into a variable is also supported.
+//
+// The dictionary is provided as a map with string keys.  Keys beginning
+// with the '$' character are treated as variables.  All other keys are
+// treated as constants.  Any results must be assigned into variables in the
+// dictionary.  These variables do not need to exist prior to calling
+// Evaluate, unless used in an expression prior to being assigned to.  The
+// internal stack state is not made available after evaluation, and any
+// values remaining on the stack are treated as evidence of incomplete
+// execution and cause the evaluator to indicate failure.
+//
+// PostfixEvaluator is intended to support evaluation of "program strings"
+// obtained from MSVC frame data debugging information in pdb files as
+// returned by the DIA APIs.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_POSTFIX_EVALUATOR_H__
+#define PROCESSOR_POSTFIX_EVALUATOR_H__
+
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+using std::map;
+using std::vector;
+
+class MemoryRegion;
+
+template<typename ValueType>
+class PostfixEvaluator {
+ public:
+  typedef map<string, ValueType> DictionaryType;
+  typedef map<string, bool> DictionaryValidityType;
+
+  // Create a PostfixEvaluator object that may be used (with Evaluate) on
+  // one or more expressions.  PostfixEvaluator does not take ownership of
+  // either argument.  |memory| may be NULL, in which case dereferencing
+  // (^) will not be supported.  |dictionary| may be NULL, but evaluation
+  // will fail in that case unless set_dictionary is used before calling
+  // Evaluate.
+  PostfixEvaluator(DictionaryType* dictionary, const MemoryRegion* memory)
+      : dictionary_(dictionary), memory_(memory), stack_() {}
+
+  // Evaluate the expression, starting with an empty stack. The results of
+  // execution will be stored in one (or more) variables in the dictionary.
+  // Returns false if any failures occur during execution, leaving
+  // variables in the dictionary in an indeterminate state. If assigned is
+  // non-NULL, any keys set in the dictionary as a result of evaluation
+  // will also be set to true in assigned, providing a way to determine if
+  // an expression modifies any of its input variables.
+  bool Evaluate(const string& expression, DictionaryValidityType* assigned);
+
+  // Like Evaluate, but provides the value left on the stack to the
+  // caller. If evaluation succeeds and leaves exactly one value on
+  // the stack, pop that value, store it in *result, and return true.
+  // Otherwise, return false.
+  bool EvaluateForValue(const string& expression, ValueType* result);
+
+  DictionaryType* dictionary() const { return dictionary_; }
+
+  // Reset the dictionary.  PostfixEvaluator does not take ownership.
+  void set_dictionary(DictionaryType* dictionary) {dictionary_ = dictionary; }
+
+ private:
+  // Return values for PopValueOrIdentifier
+  enum PopResult {
+    POP_RESULT_FAIL = 0,
+    POP_RESULT_VALUE,
+    POP_RESULT_IDENTIFIER
+  };
+
+  // Retrieves the topmost literal value, constant, or variable from the
+  // stack.  Returns POP_RESULT_VALUE if the topmost entry is a literal
+  // value, and sets |value| accordingly.  Returns POP_RESULT_IDENTIFIER
+  // if the topmost entry is a constant or variable identifier, and sets
+  // |identifier| accordingly.  Returns POP_RESULT_FAIL on failure, such
+  // as when the stack is empty.
+  PopResult PopValueOrIdentifier(ValueType* value, string* identifier);
+
+  // Retrieves the topmost value on the stack.  If the topmost entry is
+  // an identifier, the dictionary is queried for the identifier's value.
+  // Returns false on failure, such as when the stack is empty or when
+  // a nonexistent identifier is named.
+  bool PopValue(ValueType* value);
+
+  // Retrieves the top two values on the stack, in the style of PopValue.
+  // value2 is popped before value1, so that value1 corresponds to the
+  // entry that was pushed prior to value2.  Returns false on failure.
+  bool PopValues(ValueType* value1, ValueType* value2);
+
+  // Pushes a new value onto the stack.
+  void PushValue(const ValueType& value);
+
+  // Evaluate expression, updating *assigned if it is non-zero. Return
+  // true if evaluation completes successfully. Do not clear the stack
+  // upon successful evaluation.
+  bool EvaluateInternal(const string& expression,
+                        DictionaryValidityType* assigned);
+
+  bool EvaluateToken(const string& token,
+                     const string& expression,
+                     DictionaryValidityType* assigned);
+
+  // The dictionary mapping constant and variable identifiers (strings) to
+  // values.  Keys beginning with '$' are treated as variable names, and
+  // PostfixEvaluator is free to create and modify these keys.  Weak pointer.
+  DictionaryType* dictionary_;
+
+  // If non-NULL, the MemoryRegion used for dereference (^) operations.
+  // If NULL, dereferencing is unsupported and will fail.  Weak pointer.
+  const MemoryRegion* memory_;
+
+  // The stack contains state information as execution progresses.  Values
+  // are pushed on to it as the expression string is read and as operations
+  // yield values; values are popped when used as operands to operators.
+  vector<string> stack_;
+};
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_POSTFIX_EVALUATOR_H__
diff --git a/src/processor/postfix_evaluator_unittest.cc b/src/processor/postfix_evaluator_unittest.cc
new file mode 100644
index 0000000..5a01584
--- /dev/null
+++ b/src/processor/postfix_evaluator_unittest.cc
@@ -0,0 +1,403 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// postfix_evaluator_unittest.cc: Unit tests for PostfixEvaluator.
+//
+// Author: Mark Mentovai
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <map>
+#include <string>
+
+#include "processor/postfix_evaluator-inl.h"
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "processor/logging.h"
+
+
+namespace {
+
+
+using std::map;
+using google_breakpad::MemoryRegion;
+using google_breakpad::PostfixEvaluator;
+
+
+// FakeMemoryRegion is used to test PostfixEvaluator's dereference (^)
+// operator.  The result of dereferencing a value is one greater than
+// the value.
+class FakeMemoryRegion : public MemoryRegion {
+ public:
+  virtual uint64_t GetBase() const { return 0; }
+  virtual uint32_t GetSize() const { return 0; }
+  virtual bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const {
+    *value = address + 1;
+    return true;
+  }
+  virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+    *value = address + 1;
+    return true;
+  }
+  virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+    *value = address + 1;
+    return true;
+  }
+  virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+    *value = address + 1;
+    return true;
+  }
+  virtual void Print() const {
+    assert(false);
+  }
+};
+
+
+struct EvaluateTest {
+  // Expression passed to PostfixEvaluator::Evaluate.
+  const string expression;
+
+  // True if the expression is expected to be evaluable, false if evaluation
+  // is expected to fail.
+  bool evaluable;
+};
+
+
+struct EvaluateTestSet {
+  // The dictionary used for all tests in the set.
+  PostfixEvaluator<unsigned int>::DictionaryType* dictionary;
+
+  // The list of tests.
+  const EvaluateTest* evaluate_tests;
+
+  // The number of tests.
+  unsigned int evaluate_test_count;
+
+  // Identifiers and their expected values upon completion of the Evaluate
+  // tests in the set.
+  map<string, unsigned int>* validate_data;
+};
+
+
+struct EvaluateForValueTest {
+  // Expression passed to PostfixEvaluator::Evaluate.
+  const string expression;
+  
+  // True if the expression is expected to be evaluable, false if evaluation
+  // is expected to fail.
+  bool evaluable;
+
+  // If evaluable, the value we expect it to yield.
+  unsigned int value;
+};
+
+static bool RunTests() {
+  // The first test set checks the basic operations and failure modes.
+  PostfixEvaluator<unsigned int>::DictionaryType dictionary_0;
+  const EvaluateTest evaluate_tests_0[] = {
+    { "$rAdd 2 2 + =",     true },   // $rAdd = 2 + 2 = 4
+    { "$rAdd $rAdd 2 + =", true },   // $rAdd = $rAdd + 2 = 6
+    { "$rAdd 2 $rAdd + =", true },   // $rAdd = 2 + $rAdd = 8
+    { "99",                false },  // put some junk on the stack...
+    { "$rAdd2 2 2 + =",    true },   // ...and make sure things still work
+    { "$rAdd2\t2\n2 + =",  true },   // same but with different whitespace
+    { "$rAdd2 2 2 + = ",   true },   // trailing whitespace
+    { " $rAdd2 2 2 + =",   true },   // leading whitespace
+    { "$rAdd2  2 2 +   =", true },   // extra whitespace
+    { "$T0 2 = +",         false },  // too few operands for add
+    { "2 + =",             false },  // too few operands for add
+    { "2 +",               false },  // too few operands for add
+    { "+",                 false },  // too few operands for add
+    { "^",                 false },  // too few operands for dereference
+    { "=",                 false },  // too few operands for assignment
+    { "2 =",               false },  // too few operands for assignment
+    { "2 2 + =",           false },  // too few operands for assignment
+    { "2 2 =",             false },  // can't assign into a literal
+    { "k 2 =",             false },  // can't assign into a constant
+    { "2",                 false },  // leftover data on stack
+    { "2 2 +",             false },  // leftover data on stack
+    { "$rAdd",             false },  // leftover data on stack
+    { "0 $T1 0 0 + =",     false },  // leftover data on stack
+    { "$T2 $T2 2 + =",     false },  // can't operate on an undefined value
+    { "$rMul 9 6 * =",     true },   // $rMul = 9 * 6 = 54
+    { "$rSub 9 6 - =",     true },   // $rSub = 9 - 6 = 3
+    { "$rDivQ 9 6 / =",    true },   // $rDivQ = 9 / 6 = 1
+    { "$rDivM 9 6 % =",    true },   // $rDivM = 9 % 6 = 3
+    { "$rDeref 9 ^ =",     true },   // $rDeref = ^9 = 10 (FakeMemoryRegion)
+    { "$rAlign 36 8 @ =",  true },   // $rAlign = 36 @ 8
+    { "$rAdd3 2 2 + =$rMul2 9 6 * =", true } // smashed-equals tokenization
+  };
+  map<string, unsigned int> validate_data_0;
+  validate_data_0["$rAdd"]   = 8;
+  validate_data_0["$rAdd2"]  = 4;
+  validate_data_0["$rSub"]   = 3;
+  validate_data_0["$rMul"]   = 54;
+  validate_data_0["$rDivQ"]  = 1;
+  validate_data_0["$rDivM"]  = 3;
+  validate_data_0["$rDeref"] = 10;
+  validate_data_0["$rAlign"] = 32;
+  validate_data_0["$rAdd3"]  = 4;
+  validate_data_0["$rMul2"]  = 54;
+
+  // The second test set simulates a couple of MSVC program strings.
+  // The data is fudged a little bit because the tests use FakeMemoryRegion
+  // instead of a real stack snapshot, but the program strings are real and
+  // the implementation doesn't know or care that the data is not real.
+  PostfixEvaluator<unsigned int>::DictionaryType dictionary_1;
+  dictionary_1["$ebp"] = 0xbfff0010;
+  dictionary_1["$eip"] = 0x10000000;
+  dictionary_1["$esp"] = 0xbfff0000;
+  dictionary_1[".cbSavedRegs"] = 4;
+  dictionary_1[".cbParams"] = 4;
+  dictionary_1[".raSearchStart"] = 0xbfff0020;
+  const EvaluateTest evaluate_tests_1[] = {
+    { "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = "
+      "$L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =", true },
+    // Intermediate state: $T0  = 0xbfff0010, $eip = 0xbfff0015,
+    //                     $ebp = 0xbfff0011, $esp = 0xbfff0018,
+    //                     $L   = 0xbfff000c, $P   = 0xbfff001c
+    { "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = "
+      "$L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =",
+      true },
+    // Intermediate state: $T0  = 0xbfff0011, $eip = 0xbfff0016,
+    //                     $ebp = 0xbfff0012, $esp = 0xbfff0019,
+    //                     $L   = 0xbfff000d, $P   = 0xbfff001d,
+    //                     $ebx = 0xbffefff6
+    { "$T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = "
+      "$esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + = "
+      "$ebx $T0 28 - ^ =",
+      true }
+  };
+  map<string, unsigned int> validate_data_1;
+  validate_data_1["$T0"]  = 0xbfff0012;
+  validate_data_1["$T1"]  = 0xbfff0020;
+  validate_data_1["$T2"]  = 0xbfff0019;
+  validate_data_1["$eip"] = 0xbfff0021;
+  validate_data_1["$ebp"] = 0xbfff0012;
+  validate_data_1["$esp"] = 0xbfff0024;
+  validate_data_1["$L"]   = 0xbfff000e;
+  validate_data_1["$P"]   = 0xbfff0028;
+  validate_data_1["$ebx"] = 0xbffefff7;
+  validate_data_1[".cbSavedRegs"] = 4;
+  validate_data_1[".cbParams"] = 4;
+
+  EvaluateTestSet evaluate_test_sets[] = {
+    { &dictionary_0, evaluate_tests_0,
+          sizeof(evaluate_tests_0) / sizeof(EvaluateTest), &validate_data_0 },
+    { &dictionary_1, evaluate_tests_1,
+          sizeof(evaluate_tests_1) / sizeof(EvaluateTest), &validate_data_1 },
+  };
+
+  unsigned int evaluate_test_set_count = sizeof(evaluate_test_sets) /
+                                         sizeof(EvaluateTestSet);
+
+  FakeMemoryRegion fake_memory;
+  PostfixEvaluator<unsigned int> postfix_evaluator =
+      PostfixEvaluator<unsigned int>(NULL, &fake_memory);
+
+  for (unsigned int evaluate_test_set_index = 0;
+       evaluate_test_set_index < evaluate_test_set_count;
+       ++evaluate_test_set_index) {
+    EvaluateTestSet* evaluate_test_set =
+        &evaluate_test_sets[evaluate_test_set_index];
+    const EvaluateTest* evaluate_tests = evaluate_test_set->evaluate_tests;
+    unsigned int evaluate_test_count = evaluate_test_set->evaluate_test_count;
+
+    // The same dictionary will be used for each test in the set.  Earlier
+    // tests can affect the state of the dictionary for later tests.
+    postfix_evaluator.set_dictionary(evaluate_test_set->dictionary);
+
+    // Use a new validity dictionary for each test set.
+    PostfixEvaluator<unsigned int>::DictionaryValidityType assigned;
+
+    for (unsigned int evaluate_test_index = 0;
+         evaluate_test_index < evaluate_test_count;
+         ++evaluate_test_index) {
+      const EvaluateTest* evaluate_test = &evaluate_tests[evaluate_test_index];
+
+      // Do the test.
+      bool result = postfix_evaluator.Evaluate(evaluate_test->expression,
+                                               &assigned);
+      if (result != evaluate_test->evaluable) {
+        fprintf(stderr, "FAIL: evaluate set %d/%d, test %d/%d, "
+                        "expression \"%s\", expected %s, observed %s\n",
+                evaluate_test_set_index, evaluate_test_set_count,
+                evaluate_test_index, evaluate_test_count,
+                evaluate_test->expression.c_str(),
+                evaluate_test->evaluable ? "evaluable" : "not evaluable",
+                result ? "evaluted" : "not evaluated");
+        return false;
+      }
+    }
+
+    // Validate the results.
+    for (map<string, unsigned int>::const_iterator validate_iterator =
+            evaluate_test_set->validate_data->begin();
+        validate_iterator != evaluate_test_set->validate_data->end();
+        ++validate_iterator) {
+      const string identifier = validate_iterator->first;
+      unsigned int expected_value = validate_iterator->second;
+
+      map<string, unsigned int>::const_iterator dictionary_iterator =
+          evaluate_test_set->dictionary->find(identifier);
+
+      // The identifier must exist in the dictionary.
+      if (dictionary_iterator == evaluate_test_set->dictionary->end()) {
+        fprintf(stderr, "FAIL: evaluate test set %d/%d, "
+                        "validate identifier \"%s\", "
+                        "expected %d, observed not found\n",
+                evaluate_test_set_index, evaluate_test_set_count,
+                identifier.c_str(), expected_value);
+        return false;
+      }
+
+      // The value in the dictionary must be the same as the expected value.
+      unsigned int observed_value = dictionary_iterator->second;
+      if (expected_value != observed_value) {
+        fprintf(stderr, "FAIL: evaluate test set %d/%d, "
+                        "validate identifier \"%s\", "
+                        "expected %d, observed %d\n",
+                evaluate_test_set_index, evaluate_test_set_count,
+                identifier.c_str(), expected_value, observed_value);
+        return false;
+      }
+
+      // The value must be set in the "assigned" dictionary if it was a
+      // variable.  It must not have been assigned if it was a constant.
+      bool expected_assigned = identifier[0] == '$';
+      bool observed_assigned = false;
+      PostfixEvaluator<unsigned int>::DictionaryValidityType::const_iterator
+          iterator_assigned = assigned.find(identifier);
+      if (iterator_assigned != assigned.end()) {
+        observed_assigned = iterator_assigned->second;
+      }
+      if (expected_assigned != observed_assigned) {
+        fprintf(stderr, "FAIL: evaluate test set %d/%d, "
+                        "validate assignment of \"%s\", "
+                        "expected %d, observed %d\n",
+                evaluate_test_set_index, evaluate_test_set_count,
+                identifier.c_str(), expected_assigned, observed_assigned);
+        return false;
+      }
+    }
+  }
+
+  // EvaluateForValue tests.
+  PostfixEvaluator<unsigned int>::DictionaryType dictionary_2;
+  dictionary_2["$ebp"] = 0xbfff0010;
+  dictionary_2["$eip"] = 0x10000000;
+  dictionary_2["$esp"] = 0xbfff0000;
+  dictionary_2[".cbSavedRegs"] = 4;
+  dictionary_2[".cbParams"] = 4;
+  dictionary_2[".raSearchStart"] = 0xbfff0020;
+  const EvaluateForValueTest evaluate_for_value_tests_2[] = {
+    { "28907223",               true,  28907223 },      // simple constant
+    { "89854293 40010015 +",    true,  89854293 + 40010015 }, // arithmetic
+    { "-870245 8769343 +",      true,  7899098 },       // negative constants
+    { "$ebp $esp - $eip +",     true,  0x10000010 },    // variable references
+    { "18929794 34015074",      false, 0 },             // too many values
+    { "$ebp $ebp 4 - =",        false, 0 },             // too few values
+    { "$new $eip = $new",       true,  0x10000000 },    // make new variable
+    { "$new 4 +",               true,  0x10000004 },    // see prior assignments
+    { ".cfa 42 = 10",           false, 0 }              // can't set constants
+  };
+  const int evaluate_for_value_tests_2_size
+      = (sizeof (evaluate_for_value_tests_2)
+         / sizeof (evaluate_for_value_tests_2[0]));
+  map<string, unsigned int> validate_data_2;
+  validate_data_2["$eip"] = 0x10000000;
+  validate_data_2["$ebp"] = 0xbfff000c;
+  validate_data_2["$esp"] = 0xbfff0000;
+  validate_data_2["$new"] = 0x10000000;
+  validate_data_2[".cbSavedRegs"] = 4;
+  validate_data_2[".cbParams"] = 4;
+  validate_data_2[".raSearchStart"] = 0xbfff0020;
+
+  postfix_evaluator.set_dictionary(&dictionary_2);
+  for (int i = 0; i < evaluate_for_value_tests_2_size; i++) {
+    const EvaluateForValueTest* test = &evaluate_for_value_tests_2[i];
+    unsigned int result;
+    if (postfix_evaluator.EvaluateForValue(test->expression, &result)
+        != test->evaluable) {
+      fprintf(stderr, "FAIL: evaluate for value test %d, "
+              "expected evaluation to %s, but it %s\n",
+              i, test->evaluable ? "succeed" : "fail",
+              test->evaluable ? "failed" : "succeeded");
+      return false;
+    }
+    if (test->evaluable && result != test->value) {
+      fprintf(stderr, "FAIL: evaluate for value test %d, "
+              "expected value to be 0x%x, but it was 0x%x\n",
+              i, test->value, result);
+      return false;
+    }
+  }
+
+  for (map<string, unsigned int>::iterator v = validate_data_2.begin();
+       v != validate_data_2.end(); v++) {
+    map<string, unsigned int>::iterator a = dictionary_2.find(v->first);
+    if (a == dictionary_2.end()) {
+      fprintf(stderr, "FAIL: evaluate for value dictionary check: "
+              "expected dict[\"%s\"] to be 0x%x, but it was unset\n",
+              v->first.c_str(), v->second);
+      return false;
+    } else if (a->second != v->second) {
+      fprintf(stderr, "FAIL: evaluate for value dictionary check: "
+              "expected dict[\"%s\"] to be 0x%x, but it was 0x%x\n",
+              v->first.c_str(), v->second, a->second);
+      return false;
+    } 
+    dictionary_2.erase(a);
+  }
+  
+  map<string, unsigned int>::iterator remaining = dictionary_2.begin();
+  if (remaining != dictionary_2.end()) {
+    fprintf(stderr, "FAIL: evaluation of test expressions put unexpected "
+            "values in dictionary:\n");
+    for (; remaining != dictionary_2.end(); remaining++)
+      fprintf(stderr, "    dict[\"%s\"] == 0x%x\n",
+              remaining->first.c_str(), remaining->second);
+    return false;
+  }
+
+  return true;
+}
+
+
+}  // namespace
+
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/processor/proc_maps_linux.cc b/src/processor/proc_maps_linux.cc
new file mode 100644
index 0000000..3c0dea2
--- /dev/null
+++ b/src/processor/proc_maps_linux.cc
@@ -0,0 +1,106 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif
+
+#include "google_breakpad/processor/proc_maps_linux.h"
+
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+
+#include "common/using_std_string.h"
+#include "processor/logging.h"
+
+#if defined(OS_ANDROID) && !defined(__LP64__)
+// In 32-bit mode, Bionic's inttypes.h defines PRI/SCNxPTR as an
+// unsigned long int, which is incompatible with Bionic's stdint.h
+// defining uintptr_t as an unsigned int:
+// https://code.google.com/p/android/issues/detail?id=57218
+#undef SCNxPTR
+#define SCNxPTR "x"
+#endif
+
+namespace google_breakpad {
+
+bool ParseProcMaps(const string& input,
+                   std::vector<MappedMemoryRegion>* regions_out) {
+  std::vector<MappedMemoryRegion> regions;
+
+  // This isn't async safe nor terribly efficient, but it doesn't need to be at
+  // this point in time.
+
+  // Split the string by newlines.
+  std::vector<string> lines;
+  string l = "";
+  for (size_t i = 0; i < input.size(); i++) {
+    if (input[i] != '\n' && input[i] != '\r') {
+      l.push_back(input[i]);
+    } else if (l.size() > 0) {
+      lines.push_back(l);
+      l.clear();
+    }
+  }
+  if (l.size() > 0) {
+    BPLOG(ERROR) << "Input doesn't end in newline";
+    return false;
+  }
+
+  for (size_t i = 0; i < lines.size(); ++i) {
+    MappedMemoryRegion region;
+    const char* line = lines[i].c_str();
+    char permissions[5] = {'\0'};  // Ensure NUL-terminated string.
+    int path_index = 0;
+
+    // Sample format from man 5 proc:
+    //
+    // address           perms offset  dev   inode   pathname
+    // 08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
+    //
+    // The final %n term captures the offset in the input string, which is used
+    // to determine the path name. It *does not* increment the return value.
+    // Refer to man 3 sscanf for details.
+    if (sscanf(line, "%" SCNx64 "-%" SCNx64 " %4c %" SCNx64" %hhx:%hhx %"
+               SCNd64 " %n", &region.start, &region.end, permissions,
+               &region.offset, &region.major_device, &region.minor_device,
+               &region.inode, &path_index) < 7) {
+      BPLOG(ERROR) << "sscanf failed for line: " << line;
+      return false;
+    }
+
+    region.permissions = 0;
+
+    if (permissions[0] == 'r')
+      region.permissions |= MappedMemoryRegion::READ;
+    else if (permissions[0] != '-')
+      return false;
+
+    if (permissions[1] == 'w')
+      region.permissions |= MappedMemoryRegion::WRITE;
+    else if (permissions[1] != '-')
+      return false;
+
+    if (permissions[2] == 'x')
+      region.permissions |= MappedMemoryRegion::EXECUTE;
+    else if (permissions[2] != '-')
+      return false;
+
+    if (permissions[3] == 'p')
+      region.permissions |= MappedMemoryRegion::PRIVATE;
+    else if (permissions[3] != 's' && permissions[3] != 'S')  // Shared memory.
+      return false;
+
+    // Pushing then assigning saves us a string copy.
+    regions.push_back(region);
+    regions.back().path.assign(line + path_index);
+    regions.back().line.assign(line);
+  }
+
+  regions_out->swap(regions);
+  return true;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/proc_maps_linux_unittest.cc b/src/processor/proc_maps_linux_unittest.cc
new file mode 100644
index 0000000..466f234
--- /dev/null
+++ b/src/processor/proc_maps_linux_unittest.cc
@@ -0,0 +1,251 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/proc_maps_linux.h"
+
+namespace {
+
+TEST(ProcMapsTest, Empty) {
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  EXPECT_TRUE(ParseProcMaps("", &regions));
+  EXPECT_EQ(0u, regions.size());
+}
+
+TEST(ProcMapsTest, NoSpaces) {
+  static const char kNoSpaces[] =
+      "00400000-0040b000 r-xp 00002200 fc:00 794418 /bin/cat\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kNoSpaces, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0x00400000u, regions[0].start);
+  EXPECT_EQ(0x0040b000u, regions[0].end);
+  EXPECT_EQ(0x00002200u, regions[0].offset);
+  EXPECT_EQ("/bin/cat", regions[0].path);
+}
+
+TEST(ProcMapsTest, Spaces) {
+  static const char kSpaces[] =
+      "00400000-0040b000 r-xp 00002200 fc:00 794418 /bin/space cat\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kSpaces, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0x00400000u, regions[0].start);
+  EXPECT_EQ(0x0040b000u, regions[0].end);
+  EXPECT_EQ(0x00002200u, regions[0].offset);
+  EXPECT_EQ("/bin/space cat", regions[0].path);
+}
+
+TEST(ProcMapsTest, NoNewline) {
+  static const char kNoSpaces[] =
+      "00400000-0040b000 r-xp 00002200 fc:00 794418 /bin/cat";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_FALSE(ParseProcMaps(kNoSpaces, &regions));
+}
+
+TEST(ProcMapsTest, NoPath) {
+  static const char kNoPath[] =
+      "00400000-0040b000 rw-p 00000000 00:00 0 \n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kNoPath, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0x00400000u, regions[0].start);
+  EXPECT_EQ(0x0040b000u, regions[0].end);
+  EXPECT_EQ(0x00000000u, regions[0].offset);
+  EXPECT_EQ("", regions[0].path);
+}
+
+TEST(ProcMapsTest, Heap) {
+  static const char kHeap[] =
+      "022ac000-022cd000 rw-p 00000000 00:00 0 [heap]\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kHeap, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0x022ac000u, regions[0].start);
+  EXPECT_EQ(0x022cd000u, regions[0].end);
+  EXPECT_EQ(0x00000000u, regions[0].offset);
+  EXPECT_EQ("[heap]", regions[0].path);
+}
+
+#if defined(ARCH_CPU_32_BITS)
+TEST(ProcMapsTest, Stack32) {
+  static const char kStack[] =
+      "beb04000-beb25000 rw-p 00000000 00:00 0 [stack]\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kStack, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0xbeb04000u, regions[0].start);
+  EXPECT_EQ(0xbeb25000u, regions[0].end);
+  EXPECT_EQ(0x00000000u, regions[0].offset);
+  EXPECT_EQ("[stack]", regions[0].path);
+}
+#elif defined(ARCH_CPU_64_BITS)
+TEST(ProcMapsTest, Stack64) {
+  static const char kStack[] =
+      "7fff69c5b000-7fff69c7d000 rw-p 00000000 00:00 0 [stack]\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kStack, &regions));
+  ASSERT_EQ(1u, regions.size());
+
+  EXPECT_EQ(0x7fff69c5b000u, regions[0].start);
+  EXPECT_EQ(0x7fff69c7d000u, regions[0].end);
+  EXPECT_EQ(0x00000000u, regions[0].offset);
+  EXPECT_EQ("[stack]", regions[0].path);
+}
+#endif
+
+TEST(ProcMapsTest, Multiple) {
+  static const char kMultiple[] =
+      "00400000-0040b000 r-xp 00000000 fc:00 794418 /bin/cat\n"
+      "0060a000-0060b000 r--p 0000a000 fc:00 794418 /bin/cat\n"
+      "0060b000-0060c000 rw-p 0000b000 fc:00 794418 /bin/cat\n";
+
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  ASSERT_TRUE(ParseProcMaps(kMultiple, &regions));
+  ASSERT_EQ(3u, regions.size());
+
+  EXPECT_EQ(0x00400000u, regions[0].start);
+  EXPECT_EQ(0x0040b000u, regions[0].end);
+  EXPECT_EQ(0x00000000u, regions[0].offset);
+  EXPECT_EQ("/bin/cat", regions[0].path);
+
+  EXPECT_EQ(0x0060a000u, regions[1].start);
+  EXPECT_EQ(0x0060b000u, regions[1].end);
+  EXPECT_EQ(0x0000a000u, regions[1].offset);
+  EXPECT_EQ("/bin/cat", regions[1].path);
+
+  EXPECT_EQ(0x0060b000u, regions[2].start);
+  EXPECT_EQ(0x0060c000u, regions[2].end);
+  EXPECT_EQ(0x0000b000u, regions[2].offset);
+  EXPECT_EQ("/bin/cat", regions[2].path);
+}
+
+TEST(ProcMapsTest, Permissions) {
+  static struct {
+    const char* input;
+    uint8_t permissions;
+  } kTestCases[] = {
+    {"00400000-0040b000 ---s 00000000 fc:00 794418 /bin/cat\n", 0},
+    {"00400000-0040b000 ---S 00000000 fc:00 794418 /bin/cat\n", 0},
+    {"00400000-0040b000 r--s 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::READ},
+    {"00400000-0040b000 -w-s 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::WRITE},
+    {"00400000-0040b000 --xs 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::EXECUTE},
+    {"00400000-0040b000 rwxs 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::READ
+        | google_breakpad::MappedMemoryRegion::WRITE
+        | google_breakpad::MappedMemoryRegion::EXECUTE},
+    {"00400000-0040b000 ---p 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::PRIVATE},
+    {"00400000-0040b000 r--p 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::READ
+        | google_breakpad::MappedMemoryRegion::PRIVATE},
+    {"00400000-0040b000 -w-p 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::WRITE
+        | google_breakpad::MappedMemoryRegion::PRIVATE},
+    {"00400000-0040b000 --xp 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::EXECUTE
+        | google_breakpad::MappedMemoryRegion::PRIVATE},
+    {"00400000-0040b000 rwxp 00000000 fc:00 794418 /bin/cat\n",
+      google_breakpad::MappedMemoryRegion::READ
+        | google_breakpad::MappedMemoryRegion::WRITE
+        | google_breakpad::MappedMemoryRegion::EXECUTE
+        | google_breakpad::MappedMemoryRegion::PRIVATE},
+  };
+
+  for (size_t i = 0; i < sizeof(kTestCases) / sizeof(kTestCases[0]); ++i) {
+    std::vector<google_breakpad::MappedMemoryRegion> regions;
+    EXPECT_TRUE(ParseProcMaps(kTestCases[i].input, &regions));
+    EXPECT_EQ(1u, regions.size());
+    if (regions.empty())
+      continue;
+    EXPECT_EQ(kTestCases[i].permissions, regions[0].permissions);
+  }
+}
+
+TEST(ProcMapsTest, MissingFields) {
+  static const char* kTestCases[] = {
+    "00400000\n",                               // Missing end + beyond.
+    "00400000-0040b000\n",                      // Missing perms + beyond.
+    "00400000-0040b000 r-xp\n",                 // Missing offset + beyond.
+    "00400000-0040b000 r-xp 00000000\n",        // Missing device + beyond.
+    "00400000-0040b000 r-xp 00000000 fc:00\n",  // Missing inode + beyond.
+    "00400000-0040b000 00000000 fc:00 794418 /bin/cat\n",  // Missing perms.
+    "00400000-0040b000 r-xp fc:00 794418 /bin/cat\n",      // Missing offset.
+    "00400000-0040b000 r-xp 00000000 fc:00 /bin/cat\n",    // Missing inode.
+    "00400000 r-xp 00000000 fc:00 794418 /bin/cat\n",      // Missing end.
+    "-0040b000 r-xp 00000000 fc:00 794418 /bin/cat\n",     // Missing start.
+    "00400000-0040b000 r-xp 00000000 794418 /bin/cat\n",   // Missing device.
+  };
+
+  for (size_t i = 0; i < sizeof(kTestCases) / sizeof(kTestCases[0]); ++i) {
+    std::vector<google_breakpad::MappedMemoryRegion> regions;
+    EXPECT_FALSE(ParseProcMaps(kTestCases[i], &regions));
+  }
+}
+
+TEST(ProcMapsTest, InvalidInput) {
+  static const char* kTestCases[] = {
+    "thisisal-0040b000 rwxp 00000000 fc:00 794418 /bin/cat\n",
+    "0040000d-linvalid rwxp 00000000 fc:00 794418 /bin/cat\n",
+    "00400000-0040b000 inpu 00000000 fc:00 794418 /bin/cat\n",
+    "00400000-0040b000 rwxp tforproc fc:00 794418 /bin/cat\n",
+    "00400000-0040b000 rwxp 00000000 ma:ps 794418 /bin/cat\n",
+    "00400000-0040b000 rwxp 00000000 fc:00 parse! /bin/cat\n",
+  };
+
+  for (size_t i = 0; i < sizeof(kTestCases) / sizeof(kTestCases[0]); ++i) {
+    std::vector<google_breakpad::MappedMemoryRegion> regions;
+    EXPECT_FALSE(ParseProcMaps(kTestCases[i], &regions));
+  }
+}
+
+TEST(ProcMapsTest, ParseProcMapsEmptyString) {
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  EXPECT_TRUE(ParseProcMaps("", &regions));
+  EXPECT_EQ(0ULL, regions.size());
+}
+
+// Testing a couple of remotely possible weird things in the input:
+// - Line ending with \r\n or \n\r.
+// - File name contains quotes.
+// - File name has whitespaces.
+TEST(ProcMapsTest, ParseProcMapsWeirdCorrectInput) {
+  std::vector<google_breakpad::MappedMemoryRegion> regions;
+  const string kContents =
+    "00400000-0040b000 r-xp 00000000 fc:00 2106562 "
+      "               /bin/cat\r\n"
+    "7f53b7dad000-7f53b7f62000 r-xp 00000000 fc:00 263011 "
+      "       /lib/x86_64-linux-gnu/libc-2.15.so\n\r"
+    "7f53b816d000-7f53b818f000 r-xp 00000000 fc:00 264284 "
+      "        /lib/x86_64-linux-gnu/ld-2.15.so\n"
+    "7fff9c7ff000-7fff9c800000 r-xp 00000000 00:00 0 "
+      "               \"vd so\"\n"
+    "ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 "
+      "               [vsys call]\n";
+  EXPECT_TRUE(ParseProcMaps(kContents, &regions));
+  EXPECT_EQ(5ULL, regions.size());
+  EXPECT_EQ("/bin/cat", regions[0].path);
+  EXPECT_EQ("/lib/x86_64-linux-gnu/libc-2.15.so", regions[1].path);
+  EXPECT_EQ("/lib/x86_64-linux-gnu/ld-2.15.so", regions[2].path);
+  EXPECT_EQ("\"vd so\"", regions[3].path);
+  EXPECT_EQ("[vsys call]", regions[4].path);
+}
+
+}  // namespace
diff --git a/src/processor/process_state.cc b/src/processor/process_state.cc
new file mode 100644
index 0000000..c9269e4
--- /dev/null
+++ b/src/processor/process_state.cc
@@ -0,0 +1,71 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// process_state.cc: A snapshot of a process, in a fully-digested state.
+//
+// See process_state.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_modules.h"
+
+namespace google_breakpad {
+
+ProcessState::~ProcessState() {
+  Clear();
+}
+
+void ProcessState::Clear() {
+  time_date_stamp_ = 0;
+  process_create_time_ = 0;
+  crashed_ = false;
+  crash_reason_.clear();
+  crash_address_ = 0;
+  assertion_.clear();
+  requesting_thread_ = -1;
+  for (vector<CallStack*>::const_iterator iterator = threads_.begin();
+       iterator != threads_.end();
+       ++iterator) {
+    delete *iterator;
+  }
+  threads_.clear();
+  system_info_.Clear();
+  // modules_without_symbols_ and modules_with_corrupt_symbols_ DO NOT own
+  // the underlying CodeModule pointers.  Just clear the vectors.
+  modules_without_symbols_.clear();
+  modules_with_corrupt_symbols_.clear();
+  delete modules_;
+  modules_ = NULL;
+  delete unloaded_modules_;
+  unloaded_modules_ = NULL;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/processor.gyp b/src/processor/processor.gyp
new file mode 100644
index 0000000..93896c0
--- /dev/null
+++ b/src/processor/processor.gyp
@@ -0,0 +1,187 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../build/common.gypi',
+    'processor_tools.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'processor',
+      'type': 'static_library',
+      'sources': [
+        'address_map-inl.h',
+        'address_map.h',
+        'basic_code_module.h',
+        'basic_code_modules.cc',
+        'basic_code_modules.h',
+        'basic_source_line_resolver.cc',
+        'basic_source_line_resolver_types.h',
+        'call_stack.cc',
+        'cfi_frame_info-inl.h',
+        'cfi_frame_info.cc',
+        'cfi_frame_info.h',
+        'contained_range_map-inl.h',
+        'contained_range_map.h',
+        'convert_old_arm64_context.cc',
+        'convert_old_arm64_context.h',
+        'disassembler_x86.cc',
+        'disassembler_x86.h',
+        'dump_context.cc',
+        'dump_object.cc',
+        'exploitability.cc',
+        'exploitability_linux.cc',
+        'exploitability_linux.h',
+        'exploitability_win.cc',
+        'exploitability_win.h',
+        'fast_source_line_resolver.cc',
+        'fast_source_line_resolver_types.h',
+        'linked_ptr.h',
+        'logging.cc',
+        'logging.h',
+        'map_serializers-inl.h',
+        'map_serializers.h',
+        'microdump_processor.cc',
+        'minidump.cc',
+        'minidump_processor.cc',
+        'module_comparer.cc',
+        'module_comparer.h',
+        'module_factory.h',
+        'module_serializer.cc',
+        'module_serializer.h',
+        'pathname_stripper.cc',
+        'pathname_stripper.h',
+        'postfix_evaluator-inl.h',
+        'postfix_evaluator.h',
+        'proc_maps_linux.cc',
+        'process_state.cc',
+        'range_map-inl.h',
+        'range_map.h',
+        'simple_serializer-inl.h',
+        'simple_serializer.h',
+        'simple_symbol_supplier.cc',
+        'simple_symbol_supplier.h',
+        'source_line_resolver_base.cc',
+        'source_line_resolver_base_types.h',
+        'stack_frame_cpu.cc',
+        'stack_frame_symbolizer.cc',
+        'stackwalk_common.cc',
+        'stackwalk_common.h',
+        'stackwalker.cc',
+        'stackwalker_address_list.cc',
+        'stackwalker_address_list.h',
+        'stackwalker_amd64.cc',
+        'stackwalker_amd64.h',
+        'stackwalker_arm.cc',
+        'stackwalker_arm.h',
+        'stackwalker_arm64.cc',
+        'stackwalker_arm64.h',
+        'stackwalker_mips.cc',
+        'stackwalker_mips.h',
+        'stackwalker_ppc.cc',
+        'stackwalker_ppc.h',
+        'stackwalker_ppc64.cc',
+        'stackwalker_ppc64.h',
+        'stackwalker_selftest.cc',
+        'stackwalker_sparc.cc',
+        'stackwalker_sparc.h',
+        'stackwalker_x86.cc',
+        'stackwalker_x86.h',
+        'static_address_map-inl.h',
+        'static_address_map.h',
+        'static_contained_range_map-inl.h',
+        'static_contained_range_map.h',
+        'static_map-inl.h',
+        'static_map.h',
+        'static_map_iterator-inl.h',
+        'static_map_iterator.h',
+        'static_range_map-inl.h',
+        'static_range_map.h',
+        'symbolic_constants_win.cc',
+        'symbolic_constants_win.h',
+        'synth_minidump.cc',
+        'synth_minidump.h',
+        'tokenize.cc',
+        'tokenize.h',
+        'windows_frame_info.h',
+      ],
+      'include_dirs': [
+        '..',
+      ],
+      'dependencies': [
+        '../common/common.gyp:common',
+        '../third_party/libdisasm/libdisasm.gyp:libdisasm',
+      ],
+    },
+    {
+      'target_name': 'processor_unittests',
+      'type': 'executable',
+      'sources': [
+        'address_map_unittest.cc',
+        'basic_source_line_resolver_unittest.cc',
+        'cfi_frame_info_unittest.cc',
+        'contained_range_map_unittest.cc',
+        'disassembler_x86_unittest.cc',
+        'exploitability_unittest.cc',
+        'fast_source_line_resolver_unittest.cc',
+        'map_serializers_unittest.cc',
+        'microdump_processor_unittest.cc',
+        'minidump_processor_unittest.cc',
+        'minidump_unittest.cc',
+        'pathname_stripper_unittest.cc',
+        'postfix_evaluator_unittest.cc',
+        'range_map_truncate_lower_unittest.cc',
+        'range_map_truncate_upper_unittest.cc',
+        'range_map_unittest.cc',
+        'stackwalker_address_list_unittest.cc',
+        'stackwalker_amd64_unittest.cc',
+        'stackwalker_arm64_unittest.cc',
+        'stackwalker_arm_unittest.cc',
+        'stackwalker_mips_unittest.cc',
+        'stackwalker_mips64_unittest.cc',
+        'stackwalker_unittest_utils.h',
+        'stackwalker_x86_unittest.cc',
+        'static_address_map_unittest.cc',
+        'static_contained_range_map_unittest.cc',
+        'static_map_unittest.cc',
+        'static_range_map_unittest.cc',
+        'synth_minidump_unittest.cc',
+        'synth_minidump_unittest_data.h',
+      ],
+      'include_dirs': [
+        '..',
+      ],
+      'dependencies': [
+        'processor',
+        '../build/testing.gyp:gmock',
+        '../build/testing.gyp:gtest',
+      ],
+    },
+  ],
+}
diff --git a/src/processor/processor_tools.gypi b/src/processor/processor_tools.gypi
new file mode 100644
index 0000000..ecb450d
--- /dev/null
+++ b/src/processor/processor_tools.gypi
@@ -0,0 +1,57 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'target_defaults': {
+    'include_dirs': [
+      '..',
+    ],
+  },
+  'targets': [
+    {
+      'target_name': 'minidump_dump',
+      'type': 'executable',
+      'sources': [
+        'minidump_dump.cc',
+      ],
+      'dependencies': [
+        'processor',
+      ],
+    },
+    {
+      'target_name': 'minidump_stackwalk',
+      'type': 'executable',
+      'sources': [
+        'minidump_stackwalk.cc',
+      ],
+      'dependencies': [
+        'processor',
+      ],
+    },
+  ],
+}
diff --git a/src/processor/proto/README b/src/processor/proto/README
new file mode 100644
index 0000000..f9e5a4d
--- /dev/null
+++ b/src/processor/proto/README
@@ -0,0 +1,20 @@
+If you wish to use these protobufs, you must generate their source files
+using  protoc from the protobuf project (https://github.com/google/protobuf).
+
+-----
+Troubleshooting for Protobuf:
+
+Install:
+If you are getting permission errors install, make sure you are not trying to
+install from an NFS.
+
+
+Running protoc:
+protoc: error while loading shared libraries: libprotobuf.so.0: cannot open
+shared object file: No such file or directory
+
+The issue is that Ubuntu 8.04 doesn't include /usr/local/lib in
+library paths. 
+
+To fix it for your current terminal session, just type in
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 
diff --git a/src/processor/proto/process_state.proto b/src/processor/proto/process_state.proto
new file mode 100644
index 0000000..d3e02dc
--- /dev/null
+++ b/src/processor/proto/process_state.proto
@@ -0,0 +1,210 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// process_state_proto.proto: A client proto representation of a process,
+// in a fully-digested state.
+//
+// Derived from earlier struct and class based models of a client-side
+// processed minidump found under src/google_breakpad/processor.  The
+// file process_state.h  holds the top level representation of this model,
+// supported by additional classes.  We've added a proto representation
+// to ease serialization and parsing for server-side storage of crash
+// reports processed on the client.
+//
+// Author: Jess Gray
+
+syntax = "proto2";
+
+package google_breakpad;
+
+// A proto representation of a process, in a fully-digested state.
+// See src/google_breakpad/processor/process_state.h
+message ProcessStateProto {
+  // Next value: 14
+
+  // The time-date stamp of the original minidump (time_t format)
+  optional int64 time_date_stamp = 1;
+
+  // The time-date stamp when the process was created (time_t format)
+  optional int64 process_create_time = 13;
+
+  message Crash {
+    // The type of crash.  OS- and possibly CPU- specific.  For example,
+    // "EXCEPTION_ACCESS_VIOLATION" (Windows), "EXC_BAD_ACCESS /
+    // KERN_INVALID_ADDRESS" (Mac OS X), "SIGSEGV" (other Unix).
+    required string reason = 1;
+
+    // If crash_reason implicates memory, the memory address that caused the
+    // crash.  For data access errors, this will be the data address that
+    // caused the fault.  For code errors, this will be the address of the
+    // instruction that caused the fault.
+    required int64 address = 2;
+  }
+  optional Crash crash = 2;
+
+
+  // If there was an assertion that was hit, a textual representation
+  // of that assertion, possibly including the file and line at which
+  // it occurred.
+  optional string assertion = 3;
+
+  // The index of the thread that requested a dump be written in the
+  // threads vector.  If a dump was produced as a result of a crash, this
+  // will point to the thread that crashed.  If the dump was produced as
+  // by user code without crashing, and the dump contains extended Breakpad
+  // information, this will point to the thread that requested the dump.
+  optional int32 requesting_thread = 4;
+
+  message Thread {
+    // Stack for the given thread
+    repeated StackFrame frames = 1;
+  }
+
+  // Stacks for each thread (except possibly the exception handler
+  // thread) at the time of the crash.
+  repeated Thread threads = 5;
+
+  // The modules that were loaded into the process represented by the
+  // ProcessState.
+  repeated CodeModule modules = 6;
+
+  // System Info: OS and CPU
+
+  // A string identifying the operating system, such as "Windows NT",
+  // "Mac OS X", or "Linux".  If the information is present in the dump but
+  // its value is unknown, this field will contain a numeric value.  If
+  // the information is not present in the dump, this field will be empty.
+  optional string os = 7;
+
+   // A short form of the os string, using lowercase letters and no spaces,
+  // suitable for use in a filesystem.  Possible values are "windows",
+  // "mac", and "linux".  Empty if the information is not present in the dump
+  // or if the OS given by the dump is unknown.  The values stored in this
+  // field should match those used by MinidumpSystemInfo::GetOS.
+  optional string os_short = 8;
+
+  // A string identifying the version of the operating system, such as
+  // "5.1.2600 Service Pack 2" or "10.4.8 8L2127".  If the dump does not
+  // contain this information, this field will be empty.
+  optional string os_version = 9;
+
+  // A string identifying the basic CPU family, such as "x86" or "ppc".
+  // If this information is present in the dump but its value is unknown,
+  // this field will contain a numeric value.  If the information is not
+  // present in the dump, this field will be empty.  The values stored in
+  // this field should match those used by MinidumpSystemInfo::GetCPU.
+  optional string cpu = 10;
+
+  // A string further identifying the specific CPU, such as
+  // "GenuineIntel level 6 model 13 stepping 8".  If the information is not
+  // present in the dump, or additional identifying information is not
+  // defined for the CPU family, this field will be empty.
+  optional string cpu_info = 11;
+
+  // The number of processors in the system.  Will be greater than one for
+  // multi-core systems.
+  optional int32 cpu_count = 12;
+
+  // Leave the ability to add the raw minidump to this representation
+}
+
+
+// Represents a single frame in a stack  
+// See src/google_breakpad/processor/code_module.h
+message StackFrame {
+  // Next value: 8
+
+  // The program counter location as an absolute virtual address.  For the
+  // innermost called frame in a stack, this will be an exact program counter
+  // or instruction pointer value.  For all other frames, this will be within
+  // the instruction that caused execution to branch to a called function,
+  // but may not necessarily point to the exact beginning of that instruction.
+  required int64 instruction = 1;
+
+  // The module in which the instruction resides.
+  optional CodeModule module = 2;
+
+  // The function name, may be omitted if debug symbols are not available.
+  optional string function_name = 3;
+
+  // The start address of the function, may be omitted if debug symbols
+  // are not available.
+  optional int64 function_base = 4;
+
+  // The source file name, may be omitted if debug symbols are not available.
+  optional string source_file_name = 5;
+
+  // The (1-based) source line number, may be omitted if debug symbols are
+  // not available.
+  optional int32 source_line = 6;
+
+  // The start address of the source line, may be omitted if debug symbols
+  // are not available.
+  optional int64 source_line_base = 7;
+}
+
+
+// Carries information about code modules that are loaded into a process.
+// See src/google_breakpad/processor/code_module.h
+message CodeModule {
+  // Next value: 8
+
+  // The base address of this code module as it was loaded by the process.
+  optional int64 base_address = 1;
+
+  // The size of the code module.
+  optional int64 size = 2;
+
+  // The path or file name that the code module was loaded from.
+  optional string code_file = 3;
+
+  // An identifying string used to discriminate between multiple versions and
+  // builds of the same code module.  This may contain a uuid, timestamp,
+  // version number, or any combination of this or other information, in an
+  // implementation-defined format.
+  optional string code_identifier = 4;
+
+  // The filename containing debugging information associated with the code
+  // module.  If debugging information is stored in a file separate from the
+  // code module itself (as is the case when .pdb or .dSYM files are used),
+  // this will be different from code_file.  If debugging information is
+  // stored in the code module itself (possibly prior to stripping), this
+  // will be the same as code_file.
+  optional string debug_file = 5;
+
+  // An identifying string similar to code_identifier, but identifies a
+  // specific version and build of the associated debug file.  This may be
+  // the same as code_identifier when the debug_file and code_file are
+  // identical or when the same identifier is used to identify distinct
+  // debug and code files.
+  optional string debug_identifier = 6;
+
+  // A human-readable representation of the code module's version.
+  optional string version = 7;
+}
diff --git a/src/processor/range_map-inl.h b/src/processor/range_map-inl.h
new file mode 100644
index 0000000..6bfc725
--- /dev/null
+++ b/src/processor/range_map-inl.h
@@ -0,0 +1,291 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// range_map-inl.h: Range map implementation.
+//
+// See range_map.h for documentation.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_RANGE_MAP_INL_H__
+#define PROCESSOR_RANGE_MAP_INL_H__
+
+
+#include <assert.h>
+
+#include "processor/range_map.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+bool RangeMap<AddressType, EntryType>::StoreRange(const AddressType& base,
+                                                  const AddressType& size,
+                                                  const EntryType& entry) {
+  return StoreRangeInternal(base, 0 /* delta */, size, entry);
+}
+
+template<typename AddressType, typename EntryType>
+bool RangeMap<AddressType, EntryType>::StoreRangeInternal(
+    const AddressType& base, const AddressType& delta,
+    const AddressType& size, const EntryType& entry) {
+  AddressType high = base + (size - 1);
+
+  // Check for undersize or overflow.
+  if (size <= 0 || high < base) {
+    // The processor will hit this case too frequently with common symbol
+    // files in the size == 0 case, which is more suited to a DEBUG channel.
+    // Filter those out since there's no DEBUG channel at the moment.
+    BPLOG_IF(INFO, size != 0) << "StoreRangeInternal failed, "
+                              << HexString(base) << "+" << HexString(size)
+                              << ", " << HexString(high)
+                              << ", delta: " << HexString(delta);
+    return false;
+  }
+
+  // Ensure that this range does not overlap with another one already in the
+  // map.
+  MapConstIterator iterator_base = map_.lower_bound(base);
+  MapConstIterator iterator_high = map_.lower_bound(high);
+
+  if (iterator_base != iterator_high) {
+    // Some other range ends in the space used by this range.  It may be
+    // contained within the space used by this range, or it may extend lower.
+    if (merge_strategy_ == MergeRangeStrategy::kTruncateLower) {
+      // kTruncate the range with the lower base address.
+      AddressType other_base = iterator_base->second.base();
+      if (base < other_base) {
+        return StoreRangeInternal(base, delta, other_base - base, entry);
+      } else if (other_base < base) {
+        EntryType other_entry;
+        AddressType other_high, other_size, other_delta;
+        other_high = iterator_base->first;
+        RetrieveRange(other_high, &other_entry, &other_base, &other_delta,
+                      &other_size);
+        map_.erase(iterator_base);
+        map_.insert(
+            MapValue(base - 1, Range(other_base, other_delta, other_entry)));
+        return StoreRangeInternal(base, delta, size, entry);
+      } else {
+        return false;
+      }
+    } else if (merge_strategy_ == MergeRangeStrategy::kTruncateUpper) {
+      // Truncate the lower portion of this range.
+      AddressType additional_delta = iterator_base->first - base + 1;
+      return StoreRangeInternal(base + additional_delta,
+                                delta + additional_delta,
+                                size - additional_delta, entry);
+    } else {
+      // The processor hits this case too frequently with common symbol files. 
+      // This is most appropriate for a DEBUG channel, but since none exists
+      // now simply comment out this logging.
+      // AddressType other_base = iterator_base->second.base();
+      // AddressType other_size = iterator_base->first - other_base + 1;
+      // BPLOG(INFO) << "StoreRangeInternal failed, an existing range is "
+      //             << "overlapping with the new range: new "
+      //             << HexString(base) << "+" << HexString(size)
+      //             << ", existing " << HexString(other_base) << "+"
+      //             << HexString(other_size);
+      return false;
+    }
+  }
+
+  if (iterator_high != map_.end() && iterator_high->second.base() <= high) {
+    // The range above this one overlaps with this one.  It may fully
+    // contain this range, or it may begin within this range and extend
+    // higher.
+    if (merge_strategy_ == MergeRangeStrategy::kTruncateLower) {
+      AddressType other_base = iterator_high->second.base();
+      if (base < other_base) {
+        return StoreRangeInternal(base, delta, other_base - base, entry);
+      } else if (other_base < base) {
+        EntryType other_entry;
+        AddressType other_high, other_size, other_delta;
+        other_high = iterator_high->first;
+        RetrieveRange(other_high, &other_entry, &other_base, &other_delta,
+                      &other_size);
+        map_.erase(iterator_high);
+        map_.insert(
+            MapValue(base - 1, Range(other_base, other_delta, other_entry)));
+        return StoreRangeInternal(base, delta, size, entry);
+      } else {
+        return false;
+      }
+    } else if (merge_strategy_ == MergeRangeStrategy::kTruncateUpper &&
+               iterator_high->first > high) {
+      // Shrink the other range down.
+      AddressType other_high = iterator_high->first;
+      AddressType additional_delta = high - iterator_high->second.base() + 1;
+      EntryType other_entry;
+      AddressType other_base = AddressType();
+      AddressType other_size = AddressType();
+      AddressType other_delta = AddressType();
+      RetrieveRange(other_high, &other_entry, &other_base, &other_delta,
+                    &other_size);
+      map_.erase(iterator_high);
+      map_.insert(MapValue(other_high,
+                           Range(other_base + additional_delta,
+                                 other_delta + additional_delta, other_entry)));
+      // Retry to store this range.
+      return StoreRangeInternal(base, delta, size, entry);
+    } else {
+      // The processor hits this case too frequently with common symbol files.
+      // This is most appropriate for a DEBUG channel, but since none exists
+      // now simply comment out this logging.
+      //
+      // AddressType other_base = iterator_high->second.base();
+      // AddressType other_size = iterator_high->first - other_base + 1;
+      // BPLOG(INFO) << "StoreRangeInternal failed, an existing range "
+      //             << "contains or extends higher than the new range: new "
+      //             << HexString(base) << "+" << HexString(size)
+      //             << ", existing " << HexString(other_base) << "+"
+      //             << HexString(other_size);
+      return false;
+    }
+  }
+
+  // Store the range in the map by its high address, so that lower_bound can
+  // be used to quickly locate a range by address.
+  map_.insert(MapValue(high, Range(base, delta, entry)));
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool RangeMap<AddressType, EntryType>::RetrieveRange(
+    const AddressType& address, EntryType* entry, AddressType* entry_base,
+    AddressType* entry_delta, AddressType* entry_size) const {
+  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveRange requires |entry|";
+  assert(entry);
+
+  MapConstIterator iterator = map_.lower_bound(address);
+  if (iterator == map_.end())
+    return false;
+
+  // The map is keyed by the high address of each range, so |address| is
+  // guaranteed to be lower than the range's high address.  If |range| is
+  // not directly preceded by another range, it's possible for address to
+  // be below the range's low address, though.  When that happens, address
+  // references something not within any range, so return false.
+  if (address < iterator->second.base())
+    return false;
+
+  *entry = iterator->second.entry();
+  if (entry_base)
+    *entry_base = iterator->second.base();
+  if (entry_delta)
+    *entry_delta = iterator->second.delta();
+  if (entry_size)
+    *entry_size = iterator->first - iterator->second.base() + 1;
+
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool RangeMap<AddressType, EntryType>::RetrieveNearestRange(
+    const AddressType& address, EntryType* entry, AddressType* entry_base,
+    AddressType* entry_delta, AddressType* entry_size) const {
+  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveNearestRange requires |entry|";
+  assert(entry);
+
+  // If address is within a range, RetrieveRange can handle it.
+  if (RetrieveRange(address, entry, entry_base, entry_delta, entry_size))
+    return true;
+
+  // upper_bound gives the first element whose key is greater than address,
+  // but we want the first element whose key is less than or equal to address.
+  // Decrement the iterator to get there, but not if the upper_bound already
+  // points to the beginning of the map - in that case, address is lower than
+  // the lowest stored key, so return false.
+  MapConstIterator iterator = map_.upper_bound(address);
+  if (iterator == map_.begin())
+    return false;
+  --iterator;
+
+  *entry = iterator->second.entry();
+  if (entry_base)
+    *entry_base = iterator->second.base();
+  if (entry_delta)
+    *entry_delta = iterator->second.delta();
+  if (entry_size)
+    *entry_size = iterator->first - iterator->second.base() + 1;
+
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool RangeMap<AddressType, EntryType>::RetrieveRangeAtIndex(
+    int index, EntryType* entry, AddressType* entry_base,
+    AddressType* entry_delta, AddressType* entry_size) const {
+  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveRangeAtIndex requires |entry|";
+  assert(entry);
+
+  if (index >= GetCount()) {
+    BPLOG(ERROR) << "Index out of range: " << index << "/" << GetCount();
+    return false;
+  }
+
+  // Walk through the map.  Although it's ordered, it's not a vector, so it
+  // can't be addressed directly by index.
+  MapConstIterator iterator = map_.begin();
+  for (int this_index = 0; this_index < index; ++this_index)
+    ++iterator;
+
+  *entry = iterator->second.entry();
+  if (entry_base)
+    *entry_base = iterator->second.base();
+  if (entry_delta)
+    *entry_delta = iterator->second.delta();
+  if (entry_size)
+    *entry_size = iterator->first - iterator->second.base() + 1;
+
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+int RangeMap<AddressType, EntryType>::GetCount() const {
+  return static_cast<int>(map_.size());
+}
+
+
+template<typename AddressType, typename EntryType>
+void RangeMap<AddressType, EntryType>::Clear() {
+  map_.clear();
+}
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_RANGE_MAP_INL_H__
diff --git a/src/processor/range_map.h b/src/processor/range_map.h
new file mode 100644
index 0000000..baea91c
--- /dev/null
+++ b/src/processor/range_map.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// range_map.h: Range maps.
+//
+// A range map associates a range of addresses with a specific object.  This
+// is useful when certain objects of variable size are located within an
+// address space.  The range map makes it simple to determine which object is
+// associated with a specific address, which may be any address within the
+// range associated with an object.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_RANGE_MAP_H__
+#define PROCESSOR_RANGE_MAP_H__
+
+
+#include <map>
+
+
+namespace google_breakpad {
+
+// Forward declarations (for later friend declarations of specialized template).
+template<class, class> class RangeMapSerializer;
+
+// Determines what happens when two ranges overlap.
+enum class MergeRangeStrategy {
+  // When two ranges overlap, the new range fails to be inserted. The default
+  // strategy.
+  kExclusiveRanges,
+
+  // The range with the lower base address will be truncated such that it's
+  // high address is one less than the range above it.
+  kTruncateLower,
+
+  // The range with the greater high address has its range truncated such that
+  // its base address is one higher than the range below it.
+  kTruncateUpper
+};
+
+template<typename AddressType, typename EntryType>
+class RangeMap {
+ public:
+  RangeMap() : merge_strategy_(MergeRangeStrategy::kExclusiveRanges), map_() {}
+
+  void SetMergeStrategy(MergeRangeStrategy strat) { merge_strategy_ = strat; }
+
+  MergeRangeStrategy GetMergeStrategy() const { return merge_strategy_; }
+
+  // Inserts a range into the map.  Returns false for a parameter error,
+  // or if the location of the range would conflict with a range already
+  // stored in the map.  If enable_shrink_down is true and there is an overlap
+  // between the current range and some other range (already in the map),
+  // shrink down the range which ends at a higher address.
+  bool StoreRange(const AddressType& base, const AddressType& size,
+                  const EntryType& entry);
+
+  // Locates the range encompassing the supplied address.  If there is no such
+  // range, returns false.  entry_base, entry_delta, and entry_size, if
+  // non-NULL, are set to the base, delta, and size of the entry's range.
+  // A positive entry delta (> 0) indicates that there was an overlap and the
+  // entry was shrunk down (original start address was increased by delta).
+  bool RetrieveRange(const AddressType& address, EntryType* entry,
+                     AddressType* entry_base, AddressType* entry_delta,
+                     AddressType* entry_size) const;
+
+  // Locates the range encompassing the supplied address, if one exists.
+  // If no range encompasses the supplied address, locates the nearest range
+  // to the supplied address that is lower than the address.  Returns false
+  // if no range meets these criteria.  entry_base, entry_delta, and entry_size,
+  // if non-NULL, are set to the base, delta, and size of the entry's range.
+  // A positive entry delta (> 0) indicates that there was an overlap and the
+  // entry was shrunk down (original start address was increased by delta).
+  bool RetrieveNearestRange(const AddressType& address, EntryType* entry,
+                            AddressType* entry_base, AddressType* entry_delta,
+                            AddressType* entry_size) const;
+
+  // Treating all ranges as a list ordered by the address spaces that they
+  // occupy, locates the range at the index specified by index.  Returns
+  // false if index is larger than the number of ranges stored.  entry_base,
+  // entry_delta, and entry_size, if non-NULL, are set to the base, delta, and
+  // size of the entry's range.
+  // A positive entry delta (> 0) indicates that there was an overlap and the
+  // entry was shrunk down (original start address was increased by delta).
+  //
+  // RetrieveRangeAtIndex is not optimized for speedy operation.
+  bool RetrieveRangeAtIndex(int index, EntryType* entry,
+                            AddressType* entry_base, AddressType* entry_delta,
+                            AddressType* entry_size) const;
+
+  // Returns the number of ranges stored in the RangeMap.
+  int GetCount() const;
+
+  // Empties the range map, restoring it to the state it was when it was
+  // initially created.
+  void Clear();
+
+ private:
+  // Friend declarations.
+  friend class ModuleComparer;
+  friend class RangeMapSerializer<AddressType, EntryType>;
+
+  // Same a StoreRange() with the only exception that the |delta| can be
+  // passed in.
+  bool StoreRangeInternal(const AddressType& base, const AddressType& delta,
+                          const AddressType& size, const EntryType& entry);
+
+  class Range {
+   public:
+    Range(const AddressType& base, const AddressType& delta,
+          const EntryType& entry)
+        : base_(base), delta_(delta), entry_(entry) {}
+
+    AddressType base() const { return base_; }
+    AddressType delta() const { return delta_; }
+    EntryType entry() const { return entry_; }
+
+   private:
+    // The base address of the range.  The high address does not need to
+    // be stored, because RangeMap uses it as the key to the map.
+    const AddressType base_;
+
+    // The delta when the range is shrunk down.
+    const AddressType delta_;
+
+    // The entry corresponding to a range.
+    const EntryType entry_;
+  };
+
+  // Convenience types.
+  typedef std::map<AddressType, Range> AddressToRangeMap;
+  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
+  typedef typename AddressToRangeMap::value_type MapValue;
+
+  MergeRangeStrategy merge_strategy_;
+
+  // Maps the high address of each range to a EntryType.
+  AddressToRangeMap map_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_RANGE_MAP_H__
diff --git a/src/processor/range_map_truncate_lower_unittest.cc b/src/processor/range_map_truncate_lower_unittest.cc
new file mode 100644
index 0000000..a933c95
--- /dev/null
+++ b/src/processor/range_map_truncate_lower_unittest.cc
@@ -0,0 +1,346 @@
+// Copyright (c) 2019, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "processor/range_map-inl.h"
+
+#include "breakpad_googletest_includes.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+namespace {
+
+using google_breakpad::linked_ptr;
+using google_breakpad::MergeRangeStrategy;
+using google_breakpad::RangeMap;
+
+// A CountedObject holds an int.  A global (not thread safe!) count of
+// allocated CountedObjects is maintained to help test memory management.
+class CountedObject {
+ public:
+  explicit CountedObject(int id) : id_(id) { ++count_; }
+  ~CountedObject() { --count_; }
+
+  static int count() { return count_; }
+  int id() const { return id_; }
+
+ private:
+  static int count_;
+  int id_;
+};
+
+int CountedObject::count_;
+
+typedef int AddressType;
+typedef RangeMap<AddressType, linked_ptr<CountedObject>> TestMap;
+
+// Same range cannot be stored wice.
+TEST(RangeMapTruncateLower, SameRange) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_1));
+
+  // Same range cannot be stored wice.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_FALSE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_2));
+}
+
+// If a range is completely contained by another range, then the larger range
+// should be truncated.
+TEST(RangeMapTruncateLower, CompletelyContained) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  // Larger range is added first.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_1));
+  // Smaller (contained) range is added second.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(10 /* base address */, 80 /* size */, object_2));
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range contains the second, so the first range should have been
+  // shrunk to [0, 10].  Range [90, 99] should be free.
+  EXPECT_FALSE(range_map.RetrieveRange(90, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_FALSE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_TRUE(range_map.RetrieveRange(9, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(10, retrieved_size);
+  // Validate the properties of the smaller range (should be untouched).
+  EXPECT_TRUE(range_map.RetrieveRange(10, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(80, retrieved_size);
+}
+
+// Same as the previous test, however the larger range is added second.
+TEST(RangeMapTruncateLower, CompletelyContained_LargerAddedSecond) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  // Smaller (contained) range is added first.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(10 /* base address */, 80 /* size */, object_1));
+  // Larger range is added second.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_2));
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The second range contains the first, so the second range should have been
+  // truncated to [0, 9].  Range [90, 99] should be free.
+  EXPECT_FALSE(range_map.RetrieveRange(90, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_FALSE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_TRUE(range_map.RetrieveRange(9, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(10, retrieved_size);
+  // Validate the properties of the smaller range (should be untouched).
+  EXPECT_TRUE(range_map.RetrieveRange(10, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(80, retrieved_size);
+}
+
+TEST(RangeMapTruncateLower, PartialOverlap_AtBeginning) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_1));
+
+  // Partial overlap at the beginning of the new range.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(90 /* base address */, 110 /* size */, object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be truncated, so 99 should address the second range.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(90, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(110, retrieved_size);
+  // Validate the properties of the truncated range.
+  EXPECT_TRUE(range_map.RetrieveRange(89, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+}
+
+TEST(RangeMapTruncateLower, PartialOverlap_AtEnd) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(50 /* base address */, 50 /* size */, object_1));
+
+  // Partial overlap at the end of the new range.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 70 /* size */, object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The second range should be truncated so 69 addresses the first range.
+  EXPECT_TRUE(range_map.RetrieveRange(69, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(50, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+  // Validate the properties of the truncated range.
+  EXPECT_TRUE(range_map.RetrieveRange(49, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+}
+
+// A new range is overlapped at both ends.  The new range and the range
+// that overlaps at the beginning should be truncated.  The range that overlaps
+// at the end should be left untouched.
+TEST(RangeMapTruncateLower, OverlapAtBothEnds) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  // This should overlap object_3 at the beginning.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 100 /* size */, object_1));
+
+  // This should overlap object_3 at the end.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(100 /* base address */, 100 /* size */, object_2));
+
+  // This should be overlapped on both ends by object_1 and object_2.
+  linked_ptr<CountedObject> object_3(new CountedObject(3));
+  EXPECT_TRUE(
+      range_map.StoreRange(50 /* base address */, 100 /* size */, object_3));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be truncated.
+  EXPECT_TRUE(range_map.RetrieveRange(0, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+  // The second range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(150, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(100, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+  // The third range (in the middle) should be truncated.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(3, object->id());
+  EXPECT_EQ(50, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+}
+
+TEST(RangeMapTruncateLower, MultipleConflicts) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  // This should overlap with object_3.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(10 /* base address */, 90 /* size */, object_1));
+
+  // This should also overlap with object_3 but after object_1.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(100 /* base address */, 100 /* size */, object_2));
+
+  // This should be overlapped on both object_1 and object_2.
+  linked_ptr<CountedObject> object_3(new CountedObject(3));
+  EXPECT_TRUE(
+      range_map.StoreRange(0 /* base address */, 300 /* size */, object_3));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+  // The second range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(199, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(100, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+  // The third range should be truncated.
+  EXPECT_TRUE(range_map.RetrieveRange(9, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(3, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(10, retrieved_size);
+}
+
+// Adding two ranges without overlap should succeed and the ranges should
+// be left intact.
+TEST(RangeMapTruncateLower, NoConflicts) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateLower);
+  // Adding range 1.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(
+      range_map.StoreRange(10 /* base address */, 90 /* size */, object_1));
+
+  // Adding range 2 - no overlap with range 1.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(
+      range_map.StoreRange(110 /* base address */, 90 /* size */, object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+  // The second range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(199, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(110, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+}
+
+}  // namespace
diff --git a/src/processor/range_map_truncate_upper_unittest.cc b/src/processor/range_map_truncate_upper_unittest.cc
new file mode 100644
index 0000000..7e3034f
--- /dev/null
+++ b/src/processor/range_map_truncate_upper_unittest.cc
@@ -0,0 +1,354 @@
+// Copyright (c) 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+
+// range_map_shrink_down_unittest.cc: Unit tests for RangeMap that specifically
+// test shrink down when ranges overlap.
+//
+// Author: Ivan Penkov
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "processor/range_map-inl.h"
+
+#include "breakpad_googletest_includes.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+namespace {
+
+using google_breakpad::linked_ptr;
+using google_breakpad::MergeRangeStrategy;
+using google_breakpad::RangeMap;
+
+// A CountedObject holds an int.  A global (not thread safe!) count of
+// allocated CountedObjects is maintained to help test memory management.
+class CountedObject {
+ public:
+  explicit CountedObject(int id) : id_(id) { ++count_; }
+  ~CountedObject() { --count_; }
+
+  static int count() { return count_; }
+  int id() const { return id_; }
+
+ private:
+  static int count_;
+  int id_;
+};
+
+int CountedObject::count_;
+
+typedef int AddressType;
+typedef RangeMap<AddressType, linked_ptr<CountedObject>> TestMap;
+
+// Same range cannot be stored wice.
+TEST(RangeMapTruncateUpper, SameRange) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                   object_1));
+
+  // Same range cannot be stored wice.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_FALSE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                    object_2));
+}
+
+// If a range is completely contained by another range, then the larger range
+// should be shrinked down.
+TEST(RangeMapTruncateUpper, CompletelyContained) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  // Larger range is added first.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                   object_1));
+  // Smaller (contained) range is added second.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(10 /* base address */, 80 /* size */,
+                                   object_2));
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range contains the second, so the first range should have been
+  // shrunk to [90, 99].  Range [0, 9] should be free.
+  EXPECT_FALSE(range_map.RetrieveRange(0, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_FALSE(range_map.RetrieveRange(9, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_TRUE(range_map.RetrieveRange(90, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(90, retrieved_base);
+  EXPECT_EQ(90, retrieved_delta);
+  EXPECT_EQ(10, retrieved_size);
+  // Validate the properties of the smaller range (should be untouched).
+  EXPECT_TRUE(range_map.RetrieveRange(10, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(80, retrieved_size);
+}
+
+// Same as the previous test, however the larger range is added second.
+TEST(RangeMapTruncateUpper, CompletelyContained_LargerAddedSecond) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  // Smaller (contained) range is added first.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(10 /* base address */, 80 /* size */,
+                                   object_1));
+  // Larger range is added second.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                   object_2));
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The second range contains the first, so the second range should have been
+  // shrunk to [90, 99].  Range [0, 9] should be free.
+  EXPECT_FALSE(range_map.RetrieveRange(0, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_FALSE(range_map.RetrieveRange(9, &object, &retrieved_base,
+                                       &retrieved_delta, &retrieved_size));
+  EXPECT_TRUE(range_map.RetrieveRange(90, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(90, retrieved_base);
+  EXPECT_EQ(90, retrieved_delta);
+  EXPECT_EQ(10, retrieved_size);
+  // Validate the properties of the smaller range (should be untouched).
+  EXPECT_TRUE(range_map.RetrieveRange(10, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(80, retrieved_size);
+}
+
+TEST(RangeMapTruncateUpper, PartialOverlap_AtBeginning) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                   object_1));
+
+  // Partial overlap at the beginning of the new range.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(90 /* base address */, 110 /* size */,
+                                   object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The second range is supposed to be shrunk down so the following address
+  // should resize in the first range.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+  // Validate the properties of the shrunk down range.
+  EXPECT_TRUE(range_map.RetrieveRange(100, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(100, retrieved_base);
+  EXPECT_EQ(10, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+}
+
+TEST(RangeMapTruncateUpper, PartialOverlap_AtEnd) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(50 /* base address */, 50 /* size */,
+                                   object_1));
+
+  // Partial overlap at the end of the new range.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 70 /* size */,
+                                   object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range is supposed to be shrunk down so the following address
+  // should resize in the first range.
+  EXPECT_TRUE(range_map.RetrieveRange(69, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(70, retrieved_size);
+  // Validate the properties of the shrunk down range.
+  EXPECT_TRUE(range_map.RetrieveRange(70, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(70, retrieved_base);
+  EXPECT_EQ(20, retrieved_delta);
+  EXPECT_EQ(30, retrieved_size);
+}
+
+// A new range is overlapped at both ends.  The new range and the range
+// that overlaps at the end should be shrink.  The range that overlaps at the
+// beginning should be left untouched.
+TEST(RangeMapTruncateUpper, OverlapAtBothEnds) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  // This should overlap object_3 at the beginning.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 100 /* size */,
+                                   object_1));
+
+  // This should overlap object_3 at the end.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(100 /* base address */, 100 /* size */,
+                                   object_2));
+
+  // This should be overlapped on both ends by object_1 and object_2.
+  linked_ptr<CountedObject> object_3(new CountedObject(3));
+  EXPECT_TRUE(range_map.StoreRange(50 /* base address */, 100 /* size */,
+                                   object_3));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(0, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(0, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+  // The second range should be shrunk down by 50.
+  EXPECT_TRUE(range_map.RetrieveRange(150, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(150, retrieved_base);
+  EXPECT_EQ(50, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+  // The third range (in the middle) should be shrunk down by 50.
+  EXPECT_TRUE(range_map.RetrieveRange(100, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(3, object->id());
+  EXPECT_EQ(100, retrieved_base);
+  EXPECT_EQ(50, retrieved_delta);
+  EXPECT_EQ(50, retrieved_size);
+}
+
+TEST(RangeMapTruncateUpper, MultipleConflicts) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  // This should overlap with object_3.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(10 /* base address */, 90 /* size */,
+                                   object_1));
+
+  // This should also overlap with object_3 but after object_1.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(100 /* base address */, 100 /* size */,
+                                   object_2));
+
+  // This should be overlapped on both object_1 and object_2.  Since
+  // object_3 ends with the higher address it must be shrunk.
+  linked_ptr<CountedObject> object_3(new CountedObject(3));
+  EXPECT_TRUE(range_map.StoreRange(0 /* base address */, 300 /* size */,
+                                   object_3));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+  // The second range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(199, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(100, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+  // The third range should be shrunk down by 200.
+  EXPECT_TRUE(range_map.RetrieveRange(299, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(3, object->id());
+  EXPECT_EQ(200, retrieved_base);
+  EXPECT_EQ(200, retrieved_delta);
+  EXPECT_EQ(100, retrieved_size);
+}
+
+// Adding two ranges without overlap should succeed and the ranges should
+// be left intact.
+TEST(RangeMapTruncateUpper, NoConflicts) {
+  TestMap range_map;
+  range_map.SetMergeStrategy(MergeRangeStrategy::kTruncateUpper);
+  // Adding range 1.
+  linked_ptr<CountedObject> object_1(new CountedObject(1));
+  EXPECT_TRUE(range_map.StoreRange(10 /* base address */, 90 /* size */,
+                                   object_1));
+
+  // Adding range 2 - no overlap with range 1.
+  linked_ptr<CountedObject> object_2(new CountedObject(2));
+  EXPECT_TRUE(range_map.StoreRange(110 /* base address */, 90 /* size */,
+                                   object_2));
+
+  linked_ptr<CountedObject> object;
+  AddressType retrieved_base = AddressType();
+  AddressType retrieved_delta = AddressType();
+  AddressType retrieved_size = AddressType();
+  // The first range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(99, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(1, object->id());
+  EXPECT_EQ(10, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+  // The second range should be intact.
+  EXPECT_TRUE(range_map.RetrieveRange(199, &object, &retrieved_base,
+                                      &retrieved_delta, &retrieved_size));
+  EXPECT_EQ(2, object->id());
+  EXPECT_EQ(110, retrieved_base);
+  EXPECT_EQ(0, retrieved_delta);
+  EXPECT_EQ(90, retrieved_size);
+}
+
+}  // namespace
diff --git a/src/processor/range_map_unittest.cc b/src/processor/range_map_unittest.cc
new file mode 100644
index 0000000..0f1c713
--- /dev/null
+++ b/src/processor/range_map_unittest.cc
@@ -0,0 +1,559 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// range_map_unittest.cc: Unit tests for RangeMap
+//
+// Author: Mark Mentovai
+
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "processor/range_map-inl.h"
+
+#include "common/scoped_ptr.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+namespace {
+
+
+using google_breakpad::linked_ptr;
+using google_breakpad::scoped_ptr;
+using google_breakpad::RangeMap;
+
+
+// A CountedObject holds an int.  A global (not thread safe!) count of
+// allocated CountedObjects is maintained to help test memory management.
+class CountedObject {
+ public:
+  explicit CountedObject(int id) : id_(id) { ++count_; }
+  ~CountedObject() { --count_; }
+
+  static int count() { return count_; }
+  int id() const { return id_; }
+
+ private:
+  static int count_;
+  int id_;
+};
+
+int CountedObject::count_;
+
+
+typedef int AddressType;
+typedef RangeMap< AddressType, linked_ptr<CountedObject> > TestMap;
+
+
+// RangeTest contains data to use for store and retrieve tests.  See
+// RunTests for descriptions of the tests.
+struct RangeTest {
+  // Base address to use for test
+  AddressType address;
+
+  // Size of range to use for test
+  AddressType size;
+
+  // Unique ID of range - unstorable ranges must have unique IDs too
+  int id;
+
+  // Whether this range is expected to be stored successfully or not
+  bool expect_storable;
+};
+
+
+// A RangeTestSet encompasses multiple RangeTests, which are run in
+// sequence on the same RangeMap.
+struct RangeTestSet {
+  // An array of RangeTests
+  const RangeTest* range_tests;
+
+  // The number of tests in the set
+  unsigned int range_test_count;
+};
+
+
+// StoreTest uses the data in a RangeTest and calls StoreRange on the
+// test RangeMap.  It returns true if the expected result occurred, and
+// false if something else happened.
+static bool StoreTest(TestMap* range_map, const RangeTest* range_test) {
+  linked_ptr<CountedObject> object(new CountedObject(range_test->id));
+  bool stored = range_map->StoreRange(range_test->address,
+                                      range_test->size,
+                                      object);
+
+  if (stored != range_test->expect_storable) {
+    fprintf(stderr, "FAILED: "
+            "StoreRange id %d, expected %s, observed %s\n",
+            range_test->id,
+            range_test->expect_storable ? "storable" : "not storable",
+            stored ? "stored" : "not stored");
+    return false;
+  }
+
+  return true;
+}
+
+
+// RetrieveTest uses the data in RangeTest and calls RetrieveRange on the
+// test RangeMap.  If it retrieves the expected value (which can be no
+// map entry at the specified range,) it returns true, otherwise, it returns
+// false.  RetrieveTest will check the values around the base address and
+// the high address of a range to guard against off-by-one errors.
+static bool RetrieveTest(TestMap* range_map, const RangeTest* range_test) {
+  for (unsigned int side = 0; side <= 1; ++side) {
+    // When side == 0, check the low side (base address) of each range.
+    // When side == 1, check the high side (base + size) of each range.
+
+    // Check one-less and one-greater than the target address in addition
+    // to the target address itself.
+
+    // If the size of the range is only 1, don't check one greater than
+    // the base or one less than the high - for a successfully stored
+    // range, these tests would erroneously fail because the range is too
+    // small.
+    AddressType low_offset = -1;
+    AddressType high_offset = 1;
+    if (range_test->size == 1) {
+      if (!side)          // When checking the low side,
+        high_offset = 0;  // don't check one over the target.
+      else                // When checking the high side,
+        low_offset = 0;   // don't check one under the target.
+    }
+
+    for (AddressType offset = low_offset; offset <= high_offset; ++offset) {
+      AddressType address =
+          offset +
+          (!side ? range_test->address :
+                   range_test->address + range_test->size - 1);
+
+      bool expected_result = false;  // This is correct for tests not stored.
+      if (range_test->expect_storable) {
+        if (offset == 0)             // When checking the target address,
+          expected_result = true;    // test should always succeed.
+        else if (offset == -1)       // When checking one below the target,
+          expected_result = side;    // should fail low and succeed high.
+        else                         // When checking one above the target,
+          expected_result = !side;   // should succeed low and fail high.
+      }
+
+      linked_ptr<CountedObject> object;
+      AddressType retrieved_base = AddressType();
+      AddressType retrieved_size = AddressType();
+      AddressType retrieved_delta = AddressType();
+      bool retrieved = range_map->RetrieveRange(address, &object,
+                                                &retrieved_base,
+                                                &retrieved_delta,
+                                                &retrieved_size);
+
+      bool observed_result = retrieved && object->id() == range_test->id;
+
+      if (observed_result != expected_result) {
+        fprintf(stderr, "FAILED: "
+                        "RetrieveRange id %d, side %d, offset %d, "
+                        "expected %s, observed %s\n",
+                        range_test->id,
+                        side,
+                        offset,
+                        expected_result ? "true" : "false",
+                        observed_result ? "true" : "false");
+        return false;
+      }
+
+      // If a range was successfully retrieved, check that the returned
+      // bounds match the range as stored.
+      if (observed_result == true &&
+          (retrieved_base != range_test->address ||
+           retrieved_size != range_test->size)) {
+        fprintf(stderr, "FAILED: "
+                        "RetrieveRange id %d, side %d, offset %d, "
+                        "expected base/size %d/%d, observed %d/%d\n",
+                        range_test->id,
+                        side,
+                        offset,
+                        range_test->address, range_test->size,
+                        retrieved_base, retrieved_size);
+        return false;
+      }
+
+      // Now, check RetrieveNearestRange.  The nearest range is always
+      // expected to be different from the test range when checking one
+      // less than the low side.
+      bool expected_nearest = range_test->expect_storable;
+      if (!side && offset < 0)
+        expected_nearest = false;
+
+      linked_ptr<CountedObject> nearest_object;
+      AddressType nearest_base = AddressType();
+      AddressType nearest_delta = AddressType();
+      AddressType nearest_size = AddressType();
+      bool retrieved_nearest = range_map->RetrieveNearestRange(address,
+                                                               &nearest_object,
+                                                               &nearest_base,
+                                                               &nearest_delta,
+                                                               &nearest_size);
+
+      // When checking one greater than the high side, RetrieveNearestRange
+      // should usually return the test range.  When a different range begins
+      // at that address, though, then RetrieveNearestRange should return the
+      // range at the address instead of the test range.
+      if (side && offset > 0 && nearest_base == address) {
+        expected_nearest = false;
+      }
+
+      bool observed_nearest = retrieved_nearest &&
+                              nearest_object->id() == range_test->id;
+
+      if (observed_nearest != expected_nearest) {
+        fprintf(stderr, "FAILED: "
+                        "RetrieveNearestRange id %d, side %d, offset %d, "
+                        "expected %s, observed %s\n",
+                        range_test->id,
+                        side,
+                        offset,
+                        expected_nearest ? "true" : "false",
+                        observed_nearest ? "true" : "false");
+        return false;
+      }
+
+      // If a range was successfully retrieved, check that the returned
+      // bounds match the range as stored.
+      if (expected_nearest &&
+          (nearest_base != range_test->address ||
+           nearest_size != range_test->size)) {
+        fprintf(stderr, "FAILED: "
+                        "RetrieveNearestRange id %d, side %d, offset %d, "
+                        "expected base/size %d/%d, observed %d/%d\n",
+                        range_test->id,
+                        side,
+                        offset,
+                        range_test->address, range_test->size,
+                        nearest_base, nearest_size);
+        return false;
+      }
+    }
+  }
+
+  return true;
+}
+
+
+// Test RetrieveRangeAtIndex, which is supposed to return objects in order
+// according to their addresses.  This test is performed by looping through
+// the map, calling RetrieveRangeAtIndex for all possible indices in sequence,
+// and verifying that each call returns a different object than the previous
+// call, and that ranges are returned with increasing base addresses.  Returns
+// false if the test fails.
+static bool RetrieveIndexTest(TestMap* range_map, int set) {
+  linked_ptr<CountedObject> object;
+  CountedObject* last_object = NULL;
+  AddressType last_base = 0;
+
+  int object_count = range_map->GetCount();
+  for (int object_index = 0; object_index < object_count; ++object_index) {
+    AddressType base;
+    if (!range_map->RetrieveRangeAtIndex(object_index, &object, &base,
+                                         NULL /* delta */, NULL /* size */)) {
+      fprintf(stderr, "FAILED: RetrieveRangeAtIndex set %d index %d, "
+              "expected success, observed failure\n",
+              set, object_index);
+      return false;
+    }
+
+    if (!object.get()) {
+      fprintf(stderr, "FAILED: RetrieveRangeAtIndex set %d index %d, "
+              "expected object, observed NULL\n",
+              set, object_index);
+      return false;
+    }
+
+    // It's impossible to do these comparisons unless there's a previous
+    // object to compare against.
+    if (last_object) {
+      // The object must be different from the last one.
+      if (object->id() == last_object->id()) {
+        fprintf(stderr, "FAILED: RetrieveRangeAtIndex set %d index %d, "
+                "expected different objects, observed same objects (%d)\n",
+                set, object_index, object->id());
+        return false;
+      }
+
+      // Each object must have a base greater than the previous object's base.
+      if (base <= last_base) {
+        fprintf(stderr, "FAILED: RetrieveRangeAtIndex set %d index %d, "
+                "expected different bases, observed same bases (%d)\n",
+                set, object_index, base);
+        return false;
+      }
+    }
+
+    last_object = object.get();
+    last_base = base;
+  }
+
+  // Make sure that RetrieveRangeAtIndex doesn't allow lookups at indices that
+  // are too high.
+  if (range_map->RetrieveRangeAtIndex(object_count, &object, NULL /* base */,
+                                      NULL /* delta */, NULL /* size */)) {
+    fprintf(stderr, "FAILED: RetrieveRangeAtIndex set %d index %d (too large), "
+            "expected failure, observed success\n",
+            set, object_count);
+    return false;
+  }
+
+  return true;
+}
+
+// Additional RetriveAtIndex test to expose the bug in RetrieveRangeAtIndex().
+// Bug info: RetrieveRangeAtIndex() previously retrieves the high address of
+// entry, however, it is supposed to retrieve the base address of entry as
+// stated in the comment in range_map.h.
+static bool RetriveAtIndexTest2() {
+  scoped_ptr<TestMap> range_map(new TestMap());
+
+  // Store ranges with base address = 2 * object_id:
+  const int range_size = 2;
+  for (int object_id = 0; object_id < 100; ++object_id) {
+    linked_ptr<CountedObject> object(new CountedObject(object_id));
+    int base_address = 2 * object_id;
+    range_map->StoreRange(base_address, range_size, object);
+  }
+
+  linked_ptr<CountedObject> object;
+  int object_count = range_map->GetCount();
+  for (int object_index = 0; object_index < object_count; ++object_index) {
+    AddressType base;
+    if (!range_map->RetrieveRangeAtIndex(object_index, &object, &base,
+                                         NULL /* delta */, NULL /* size */)) {
+      fprintf(stderr, "FAILED: RetrieveAtIndexTest2 index %d, "
+              "expected success, observed failure\n", object_index);
+      return false;
+    }
+
+    int expected_base = 2 * object->id();
+    if (base != expected_base) {
+      fprintf(stderr, "FAILED: RetriveAtIndexTest2 index %d, "
+              "expected base %d, observed base %d",
+              object_index, expected_base, base);
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+// RunTests runs a series of test sets.
+static bool RunTests() {
+  // These tests will be run sequentially.  The first set of tests exercises
+  // most functions of RangeTest, and verifies all of the bounds-checking.
+  const RangeTest range_tests_0[] = {
+    { INT_MIN,     16,      1,  true },   // lowest possible range
+    { -2,          5,       2,  true },   // a range through zero
+    { INT_MAX - 9, 11,      3,  false },  // tests anti-overflow
+    { INT_MAX - 9, 10,      4,  true },   // highest possible range
+    { 5,           0,       5,  false },  // tests anti-zero-size
+    { 5,           1,       6,  true },   // smallest possible range
+    { -20,         15,      7,  true },   // entirely negative
+
+    { 10,          10,      10, true },   // causes the following tests to fail
+    { 9,           10,      11, false },  // one-less base, one-less high
+    { 9,           11,      12, false },  // one-less base, identical high
+    { 9,           12,      13, false },  // completely contains existing
+    { 10,          9,       14, false },  // identical base, one-less high
+    { 10,          10,      15, false },  // exactly identical to existing range
+    { 10,          11,      16, false },  // identical base, one-greater high
+    { 11,          8,       17, false },  // contained completely within
+    { 11,          9,       18, false },  // one-greater base, identical high
+    { 11,          10,      19, false },  // one-greater base, one-greater high
+    { 9,           2,       20, false },  // overlaps bottom by one
+    { 10,          1,       21, false },  // overlaps bottom by one, contained
+    { 19,          1,       22, false },  // overlaps top by one, contained
+    { 19,          2,       23, false },  // overlaps top by one
+
+    { 9,           1,       24, true },   // directly below without overlap
+    { 20,          1,       25, true },   // directly above without overlap
+
+    { 6,           3,       26, true },   // exactly between two ranges, gapless
+    { 7,           3,       27, false },  // tries to span two ranges
+    { 7,           5,       28, false },  // tries to span three ranges
+    { 4,           20,      29, false },  // tries to contain several ranges
+
+    { 30,          50,      30, true },
+    { 90,          25,      31, true },
+    { 35,          65,      32, false },  // tries to span two noncontiguous
+    { 120,         10000,   33, true },   // > 8-bit
+    { 20000,       20000,   34, true },   // > 8-bit
+    { 0x10001,     0x10001, 35, true },   // > 16-bit
+
+    { 27,          -1,      36, false }   // tests high < base
+  };
+
+  // Attempt to fill the entire space.  The entire space must be filled with
+  // three stores because AddressType is signed for these tests, so RangeMap
+  // treats the size as signed and rejects sizes that appear to be negative.
+  // Even if these tests were run as unsigned, two stores would be needed
+  // to fill the space because the entire size of the space could only be
+  // described by using one more bit than would be present in AddressType.
+  const RangeTest range_tests_1[] = {
+    { INT_MIN, INT_MAX, 50, true },   // From INT_MIN to -2, inclusive
+    { -1,      2,       51, true },   // From -1 to 0, inclusive
+    { 1,       INT_MAX, 52, true },   // From 1 to INT_MAX, inclusive
+    { INT_MIN, INT_MAX, 53, false },  // Can't fill the space twice
+    { -1,      2,       54, false },
+    { 1,       INT_MAX, 55, false },
+    { -3,      6,       56, false },  // -3 to 2, inclusive - spans 3 ranges
+  };
+
+  // A light round of testing to verify that RetrieveRange does the right
+  // the right thing at the extremities of the range when nothing is stored
+  // there.  Checks are forced without storing anything at the extremities
+  // by setting size = 0.
+  const RangeTest range_tests_2[] = {
+    { INT_MIN, 0, 100, false },  // makes RetrieveRange check low end
+    { -1,      3, 101, true },
+    { INT_MAX, 0, 102, false },  // makes RetrieveRange check high end
+  };
+
+  // Similar to the previous test set, but with a couple of ranges closer
+  // to the extremities.
+  const RangeTest range_tests_3[] = {
+    { INT_MIN + 1, 1, 110, true },
+    { INT_MAX - 1, 1, 111, true },
+    { INT_MIN,     0, 112, false },  // makes RetrieveRange check low end
+    { INT_MAX,     0, 113, false }   // makes RetrieveRange check high end
+  };
+
+  // The range map is cleared between sets of tests listed here.
+  const RangeTestSet range_test_sets[] = {
+    { range_tests_0, sizeof(range_tests_0) / sizeof(RangeTest) },
+    { range_tests_1, sizeof(range_tests_1) / sizeof(RangeTest) },
+    { range_tests_2, sizeof(range_tests_2) / sizeof(RangeTest) },
+    { range_tests_3, sizeof(range_tests_3) / sizeof(RangeTest) },
+    { range_tests_0, sizeof(range_tests_0) / sizeof(RangeTest) }   // Run again
+  };
+
+  // Maintain the range map in a pointer so that deletion can be meaningfully
+  // tested.
+  scoped_ptr<TestMap> range_map(new TestMap());
+
+  // Run all of the test sets in sequence.
+  unsigned int range_test_set_count = sizeof(range_test_sets) /
+                                      sizeof(RangeTestSet);
+  for (unsigned int range_test_set_index = 0;
+       range_test_set_index < range_test_set_count;
+       ++range_test_set_index) {
+    const RangeTest* range_tests =
+        range_test_sets[range_test_set_index].range_tests;
+    unsigned int range_test_count =
+        range_test_sets[range_test_set_index].range_test_count;
+
+    // Run the StoreRange test, which validates StoreRange and initializes
+    // the RangeMap with data for the RetrieveRange test.
+    int stored_count = 0;  // The number of ranges successfully stored
+    for (unsigned int range_test_index = 0;
+         range_test_index < range_test_count;
+         ++range_test_index) {
+      const RangeTest* range_test = &range_tests[range_test_index];
+      if (!StoreTest(range_map.get(), range_test))
+        return false;
+
+      if (range_test->expect_storable)
+        ++stored_count;
+    }
+
+    // There should be exactly one CountedObject for everything successfully
+    // stored in the RangeMap.
+    if (CountedObject::count() != stored_count) {
+      fprintf(stderr, "FAILED: "
+              "stored object counts don't match, expected %d, observed %d\n",
+              stored_count,
+              CountedObject::count());
+
+      return false;
+    }
+
+    // The RangeMap's own count of objects should also match.
+    if (range_map->GetCount() != stored_count) {
+      fprintf(stderr, "FAILED: stored object count doesn't match GetCount, "
+              "expected %d, observed %d\n",
+              stored_count, range_map->GetCount());
+
+      return false;
+    }
+
+    // Run the RetrieveRange test
+    for (unsigned int range_test_index = 0;
+         range_test_index < range_test_count;
+         ++range_test_index) {
+      const RangeTest* range_test = &range_tests[range_test_index];
+      if (!RetrieveTest(range_map.get(), range_test))
+        return false;
+    }
+
+    if (!RetrieveIndexTest(range_map.get(), range_test_set_index))
+      return false;
+
+    // Clear the map between test sets.  If this is the final test set,
+    // delete the map instead to test destruction.
+    if (range_test_set_index < range_test_set_count - 1)
+      range_map->Clear();
+    else
+      range_map.reset();
+
+    // Test that all stored objects are freed when the RangeMap is cleared
+    // or deleted.
+    if (CountedObject::count() != 0) {
+      fprintf(stderr, "FAILED: "
+              "did not free all objects after %s, %d still allocated\n",
+              range_test_set_index < range_test_set_count - 1 ? "clear"
+                                                              : "delete",
+              CountedObject::count());
+
+      return false;
+    }
+  }
+
+  if (!RetriveAtIndexTest2()) {
+    fprintf(stderr, "FAILED: did not pass RetrieveAtIndexTest2()\n");
+    return false;
+  }
+
+  return true;
+}
+
+
+}  // namespace
+
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return RunTests() ? 0 : 1;
+}
diff --git a/src/processor/simple_serializer-inl.h b/src/processor/simple_serializer-inl.h
new file mode 100644
index 0000000..cb1a040
--- /dev/null
+++ b/src/processor/simple_serializer-inl.h
@@ -0,0 +1,260 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// simple_serializer-inl.h: template specializations for following types:
+// bool, const char *(C-string), string,
+// Line, Function, PublicSymbol, WindowsFrameInfo and their linked pointers.
+//
+// See simple_serializer.h for moredocumentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_SIMPLE_SERIALIZER_INL_H__
+#define PROCESSOR_SIMPLE_SERIALIZER_INL_H__
+
+#include <string>
+
+#include "processor/simple_serializer.h"
+#include "map_serializers-inl.h"
+
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "processor/basic_source_line_resolver_types.h"
+#include "processor/linked_ptr.h"
+#include "processor/windows_frame_info.h"
+
+namespace google_breakpad {
+
+// Specializations of SimpleSerializer: bool
+template<>
+class SimpleSerializer<bool> {
+ public:
+  static size_t SizeOf(bool boolean) { return 1; }
+
+  static char* Write(bool boolean, char* dest) {
+    *dest = static_cast<char>(boolean? 255 : 0);
+    return ++dest;
+  }
+
+  static const char* Read(const char* source, bool* value) {
+    *value = ((*source) == 0 ? false : true);
+    return ++source;
+  }
+};
+
+// Specializations of SimpleSerializer: string
+template<>
+class SimpleSerializer<string> {
+ public:
+  static size_t SizeOf(const string& str) { return str.size() + 1; }
+
+  static char* Write(const string& str, char* dest) {
+    strcpy(dest, str.c_str());
+    return dest + SizeOf(str);
+  }
+};
+
+// Specializations of SimpleSerializer: C-string
+template<>
+class SimpleSerializer<const char*> {
+ public:
+  static size_t SizeOf(const char* cstring) {
+    return strlen(cstring) + 1;
+  }
+
+  static char* Write(const char* cstring, char* dest) {
+    strcpy(dest, cstring);
+    return dest + SizeOf(cstring);
+  }
+};
+
+// Specializations of SimpleSerializer: Line
+template<>
+class SimpleSerializer<BasicSourceLineResolver::Line> {
+  typedef BasicSourceLineResolver::Line Line;
+ public:
+  static size_t SizeOf(const Line& line) {
+    return SimpleSerializer<MemAddr>::SizeOf(line.address)
+         + SimpleSerializer<MemAddr>::SizeOf(line.size)
+         + SimpleSerializer<int32_t>::SizeOf(line.source_file_id)
+         + SimpleSerializer<int32_t>::SizeOf(line.line);
+  }
+  static char* Write(const Line& line, char* dest) {
+    dest = SimpleSerializer<MemAddr>::Write(line.address, dest);
+    dest = SimpleSerializer<MemAddr>::Write(line.size, dest);
+    dest = SimpleSerializer<int32_t>::Write(line.source_file_id, dest);
+    dest = SimpleSerializer<int32_t>::Write(line.line, dest);
+    return dest;
+  }
+};
+
+// Specializations of SimpleSerializer: PublicSymbol
+template<>
+class SimpleSerializer<BasicSourceLineResolver::PublicSymbol> {
+  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
+ public:
+  static size_t SizeOf(const PublicSymbol& pubsymbol) {
+    return SimpleSerializer<string>::SizeOf(pubsymbol.name)
+         + SimpleSerializer<MemAddr>::SizeOf(pubsymbol.address)
+         + SimpleSerializer<int32_t>::SizeOf(pubsymbol.parameter_size);
+  }
+  static char* Write(const PublicSymbol& pubsymbol, char* dest) {
+    dest = SimpleSerializer<string>::Write(pubsymbol.name, dest);
+    dest = SimpleSerializer<MemAddr>::Write(pubsymbol.address, dest);
+    dest = SimpleSerializer<int32_t>::Write(pubsymbol.parameter_size, dest);
+    return dest;
+  }
+};
+
+// Specializations of SimpleSerializer: WindowsFrameInfo
+template<>
+class SimpleSerializer<WindowsFrameInfo> {
+ public:
+  static size_t SizeOf(const WindowsFrameInfo& wfi) {
+    unsigned int size = 0;
+    size += sizeof(int32_t);  // wfi.type_
+    size += SimpleSerializer<int32_t>::SizeOf(wfi.valid);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.prolog_size);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.epilog_size);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.parameter_size);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.saved_register_size);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.local_size);
+    size += SimpleSerializer<uint32_t>::SizeOf(wfi.max_stack_size);
+    size += SimpleSerializer<bool>::SizeOf(wfi.allocates_base_pointer);
+    size += SimpleSerializer<string>::SizeOf(wfi.program_string);
+    return size;
+  }
+  static char* Write(const WindowsFrameInfo& wfi, char* dest) {
+    dest = SimpleSerializer<int32_t>::Write(
+        static_cast<const int32_t>(wfi.type_), dest);
+    dest = SimpleSerializer<int32_t>::Write(wfi.valid, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.prolog_size, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.epilog_size, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.parameter_size, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.saved_register_size, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.local_size, dest);
+    dest = SimpleSerializer<uint32_t>::Write(wfi.max_stack_size, dest);
+    dest = SimpleSerializer<bool>::Write(wfi.allocates_base_pointer, dest);
+    return SimpleSerializer<string>::Write(wfi.program_string, dest);
+  }
+};
+
+// Specializations of SimpleSerializer: Linked_ptr version of
+// Line, Function, PublicSymbol, WindowsFrameInfo.
+template<>
+class SimpleSerializer< linked_ptr<BasicSourceLineResolver::Line> > {
+  typedef BasicSourceLineResolver::Line Line;
+ public:
+  static size_t SizeOf(const linked_ptr<Line>& lineptr) {
+    if (lineptr.get() == NULL) return 0;
+    return SimpleSerializer<Line>::SizeOf(*(lineptr.get()));
+  }
+  static char* Write(const linked_ptr<Line>& lineptr, char* dest) {
+    if (lineptr.get())
+      dest = SimpleSerializer<Line>::Write(*(lineptr.get()), dest);
+    return dest;
+  }
+};
+
+template<>
+class SimpleSerializer<BasicSourceLineResolver::Function> {
+  // Convenient type names.
+  typedef BasicSourceLineResolver::Function Function;
+  typedef BasicSourceLineResolver::Line Line;
+ public:
+  static size_t SizeOf(const Function& func) {
+    unsigned int size = 0;
+    size += SimpleSerializer<string>::SizeOf(func.name);
+    size += SimpleSerializer<MemAddr>::SizeOf(func.address);
+    size += SimpleSerializer<MemAddr>::SizeOf(func.size);
+    size += SimpleSerializer<int32_t>::SizeOf(func.parameter_size);
+    size += range_map_serializer_.SizeOf(func.lines);
+    return size;
+  }
+
+  static char* Write(const Function& func, char* dest) {
+    dest = SimpleSerializer<string>::Write(func.name, dest);
+    dest = SimpleSerializer<MemAddr>::Write(func.address, dest);
+    dest = SimpleSerializer<MemAddr>::Write(func.size, dest);
+    dest = SimpleSerializer<int32_t>::Write(func.parameter_size, dest);
+    dest = range_map_serializer_.Write(func.lines, dest);
+    return dest;
+  }
+ private:
+  // This static member is defined in module_serializer.cc.
+  static RangeMapSerializer< MemAddr, linked_ptr<Line> > range_map_serializer_;
+};
+
+template<>
+class SimpleSerializer< linked_ptr<BasicSourceLineResolver::Function> > {
+  typedef BasicSourceLineResolver::Function Function;
+ public:
+  static size_t SizeOf(const linked_ptr<Function>& func) {
+    if (!func.get()) return 0;
+    return SimpleSerializer<Function>::SizeOf(*(func.get()));
+  }
+
+  static char* Write(const linked_ptr<Function>& func, char* dest) {
+    if (func.get())
+      dest = SimpleSerializer<Function>::Write(*(func.get()), dest);
+    return dest;
+  }
+};
+
+template<>
+class SimpleSerializer< linked_ptr<BasicSourceLineResolver::PublicSymbol> > {
+  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
+ public:
+  static size_t SizeOf(const linked_ptr<PublicSymbol>& pubsymbol) {
+    if (pubsymbol.get() == NULL) return 0;
+    return SimpleSerializer<PublicSymbol>::SizeOf(*(pubsymbol.get()));
+  }
+  static char* Write(const linked_ptr<PublicSymbol>& pubsymbol, char* dest) {
+    if (pubsymbol.get())
+      dest = SimpleSerializer<PublicSymbol>::Write(*(pubsymbol.get()), dest);
+    return dest;
+  }
+};
+
+template<>
+class SimpleSerializer< linked_ptr<WindowsFrameInfo> > {
+ public:
+  static size_t SizeOf(const linked_ptr<WindowsFrameInfo>& wfi) {
+    if (wfi.get() == NULL) return 0;
+    return SimpleSerializer<WindowsFrameInfo>::SizeOf(*(wfi.get()));
+  }
+  static char* Write(const linked_ptr<WindowsFrameInfo>& wfi, char* dest) {
+    if (wfi.get())
+      dest = SimpleSerializer<WindowsFrameInfo>::Write(*(wfi.get()), dest);
+    return dest;
+  }
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_SIMPLE_SERIALIZER_INL_H__
diff --git a/src/processor/simple_serializer.h b/src/processor/simple_serializer.h
new file mode 100644
index 0000000..9e51d80
--- /dev/null
+++ b/src/processor/simple_serializer.h
@@ -0,0 +1,63 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// simple_serializer.h: SimpleSerializer is a template for calculating size and
+// writing to specific memory location for objects of primitive types, C-style
+// string, string, breakpad types/structs etc.
+// All specializations of SimpleSerializer template are defined in the
+// "simple_serializer-inl.h" file.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_SIMPLE_SERIALIZER_H__
+#define PROCESSOR_SIMPLE_SERIALIZER_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+typedef uint64_t MemAddr;
+
+// Default implementation of SimpleSerializer template.
+// Specializations are defined in "simple_serializer-inl.h".
+template<class Type> class SimpleSerializer {
+ public:
+  // Calculate and return the size of the 'item'.
+  static size_t SizeOf(const Type& item) { return sizeof(item); }
+  // Write 'item' to memory location 'dest', and return to the "end" address of
+  // data written, i.e., the address after the final byte written.
+  static char* Write(const Type& item, char* dest) {
+    new (dest) Type(item);
+    return dest + SizeOf(item);
+  }
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_SIMPLE_SERIALIZER_H__
diff --git a/src/processor/simple_symbol_supplier.cc b/src/processor/simple_symbol_supplier.cc
new file mode 100644
index 0000000..cdc3efb
--- /dev/null
+++ b/src/processor/simple_symbol_supplier.cc
@@ -0,0 +1,204 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// simple_symbol_supplier.cc: A simple SymbolSupplier implementation
+//
+// See simple_symbol_supplier.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "processor/simple_symbol_supplier.h"
+
+#include <assert.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <algorithm>
+#include <iostream>
+#include <fstream>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/logging.h"
+#include "processor/pathname_stripper.h"
+
+namespace google_breakpad {
+
+static bool file_exists(const string& file_name) {
+  struct stat sb;
+  return stat(file_name.c_str(), &sb) == 0;
+}
+
+SymbolSupplier::SymbolResult SimpleSymbolSupplier::GetSymbolFile(
+    const CodeModule* module, const SystemInfo* system_info,
+    string* symbol_file) {
+  BPLOG_IF(ERROR, !symbol_file) << "SimpleSymbolSupplier::GetSymbolFile "
+                                   "requires |symbol_file|";
+  assert(symbol_file);
+  symbol_file->clear();
+
+  for (unsigned int path_index = 0; path_index < paths_.size(); ++path_index) {
+    SymbolResult result;
+    if ((result = GetSymbolFileAtPathFromRoot(module, system_info,
+                                              paths_[path_index],
+                                              symbol_file)) != NOT_FOUND) {
+      return result;
+    }
+  }
+  return NOT_FOUND;
+}
+
+SymbolSupplier::SymbolResult SimpleSymbolSupplier::GetSymbolFile(
+    const CodeModule* module,
+    const SystemInfo* system_info,
+    string* symbol_file,
+    string* symbol_data) {
+  assert(symbol_data);
+  symbol_data->clear();
+
+  SymbolSupplier::SymbolResult s = GetSymbolFile(module, system_info,
+                                                 symbol_file);
+  if (s == FOUND) {
+    std::ifstream in(symbol_file->c_str());
+    std::getline(in, *symbol_data, string::traits_type::to_char_type(
+                     string::traits_type::eof()));
+    in.close();
+  }
+  return s;
+}
+
+SymbolSupplier::SymbolResult SimpleSymbolSupplier::GetCStringSymbolData(
+    const CodeModule* module,
+    const SystemInfo* system_info,
+    string* symbol_file,
+    char** symbol_data,
+    size_t* symbol_data_size) {
+  assert(symbol_data);
+  assert(symbol_data_size);
+
+  string symbol_data_string;
+  SymbolSupplier::SymbolResult s =
+      GetSymbolFile(module, system_info, symbol_file, &symbol_data_string);
+
+  if (s == FOUND) {
+    *symbol_data_size = symbol_data_string.size() + 1;
+    *symbol_data = new char[*symbol_data_size];
+    if (*symbol_data == NULL) {
+      BPLOG(ERROR) << "Memory allocation for size " << *symbol_data_size
+                   << " failed";
+      return INTERRUPT;
+    }
+    memcpy(*symbol_data, symbol_data_string.c_str(), symbol_data_string.size());
+    (*symbol_data)[symbol_data_string.size()] = '\0';
+    memory_buffers_.insert(make_pair(module->code_file(), *symbol_data));
+  }
+  return s;
+}
+
+void SimpleSymbolSupplier::FreeSymbolData(const CodeModule* module) {
+  if (!module) {
+    BPLOG(INFO) << "Cannot free symbol data buffer for NULL module";
+    return;
+  }
+
+  map<string, char*>::iterator it = memory_buffers_.find(module->code_file());
+  if (it == memory_buffers_.end()) {
+    BPLOG(INFO) << "Cannot find symbol data buffer for module "
+                << module->code_file();
+    return;
+  }
+  delete [] it->second;
+  memory_buffers_.erase(it);
+}
+
+SymbolSupplier::SymbolResult SimpleSymbolSupplier::GetSymbolFileAtPathFromRoot(
+    const CodeModule* module, const SystemInfo* system_info,
+    const string& root_path, string* symbol_file) {
+  BPLOG_IF(ERROR, !symbol_file) << "SimpleSymbolSupplier::GetSymbolFileAtPath "
+                                   "requires |symbol_file|";
+  assert(symbol_file);
+  symbol_file->clear();
+
+  if (!module)
+    return NOT_FOUND;
+
+  // Start with the base path.
+  string path = root_path;
+
+  // Append the debug (pdb) file name as a directory name.
+  path.append("/");
+  string debug_file_name = PathnameStripper::File(module->debug_file());
+  if (debug_file_name.empty()) {
+    BPLOG(ERROR) << "Can't construct symbol file path without debug_file "
+                    "(code_file = " <<
+                    PathnameStripper::File(module->code_file()) << ")";
+    return NOT_FOUND;
+  }
+  path.append(debug_file_name);
+
+  // Append the identifier as a directory name.
+  path.append("/");
+  string identifier = module->debug_identifier();
+  if (identifier.empty()) {
+    BPLOG(ERROR) << "Can't construct symbol file path without debug_identifier "
+                    "(code_file = " <<
+                    PathnameStripper::File(module->code_file()) <<
+                    ", debug_file = " << debug_file_name << ")";
+    return NOT_FOUND;
+  }
+  path.append(identifier);
+
+  // Transform the debug file name into one ending in .sym.  If the existing
+  // name ends in .pdb, strip the .pdb.  Otherwise, add .sym to the non-.pdb
+  // name.
+  path.append("/");
+  string debug_file_extension;
+  if (debug_file_name.size() > 4)
+    debug_file_extension = debug_file_name.substr(debug_file_name.size() - 4);
+  std::transform(debug_file_extension.begin(), debug_file_extension.end(),
+                 debug_file_extension.begin(), tolower);
+  if (debug_file_extension == ".pdb") {
+    path.append(debug_file_name.substr(0, debug_file_name.size() - 4));
+  } else {
+    path.append(debug_file_name);
+  }
+  path.append(".sym");
+
+  if (!file_exists(path)) {
+    BPLOG(INFO) << "No symbol file at " << path;
+    return NOT_FOUND;
+  }
+
+  *symbol_file = path;
+  return FOUND;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/simple_symbol_supplier.h b/src/processor/simple_symbol_supplier.h
new file mode 100644
index 0000000..3a65c7e
--- /dev/null
+++ b/src/processor/simple_symbol_supplier.h
@@ -0,0 +1,140 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// simple_symbol_supplier.h: A simple SymbolSupplier implementation
+//
+// SimpleSymbolSupplier is a straightforward implementation of SymbolSupplier
+// that stores symbol files in a filesystem tree.  A SimpleSymbolSupplier is
+// created with one or more base directories, which are the root paths for all
+// symbol files.  Each symbol file contained therein has a directory entry in
+// the base directory with a name identical to the corresponding debugging 
+// file (pdb).  Within each of these directories, there are subdirectories
+// named for the debugging file's identifier.  For recent pdb files, this is
+// a concatenation of the pdb's uuid and age, presented in hexadecimal form,
+// without any dashes or separators.  The uuid is in uppercase hexadecimal
+// and the age is in lowercase hexadecimal.  Within that subdirectory,
+// SimpleSymbolSupplier expects to find the symbol file, which is named
+// identically to the debug file, but with a .sym extension.  If the original
+// debug file had a name ending in .pdb, the .pdb extension will be replaced
+// with .sym.  This sample hierarchy is rooted at the "symbols" base
+// directory:
+//
+// symbols
+// symbols/test_app.pdb
+// symbols/test_app.pdb/63FE4780728D49379B9D7BB6460CB42A1
+// symbols/test_app.pdb/63FE4780728D49379B9D7BB6460CB42A1/test_app.sym
+// symbols/kernel32.pdb
+// symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542
+// symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym
+//
+// In this case, the uuid of test_app.pdb is
+// 63fe4780-728d-4937-9b9d-7bb6460cb42a and its age is 1.
+//
+// This scheme was chosen to be roughly analogous to the way that
+// symbol files may be accessed from Microsoft Symbol Server.  A hierarchy
+// used for Microsoft Symbol Server storage is usable as a hierarchy for
+// SimpleSymbolServer, provided that the pdb files are transformed to dumped
+// format using a tool such as dump_syms, and given a .sym extension.
+//
+// SimpleSymbolSupplier will iterate over all root paths searching for
+// a symbol file existing in that path.
+//
+// SimpleSymbolSupplier supports any debugging file which can be identified
+// by a CodeModule object's debug_file and debug_identifier accessors.  The
+// expected ultimate source of these CodeModule objects are MinidumpModule
+// objects; it is this class that is responsible for assigning appropriate
+// values for debug_file and debug_identifier.
+//
+// Author: Mark Mentovai
+
+#ifndef PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
+#define PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/symbol_supplier.h"
+
+namespace google_breakpad {
+
+using std::map;
+using std::vector;
+
+class CodeModule;
+
+class SimpleSymbolSupplier : public SymbolSupplier {
+ public:
+  // Creates a new SimpleSymbolSupplier, using path as the root path where
+  // symbols are stored.
+  explicit SimpleSymbolSupplier(const string& path) : paths_(1, path) {}
+
+  // Creates a new SimpleSymbolSupplier, using paths as a list of root
+  // paths where symbols may be stored.
+  explicit SimpleSymbolSupplier(const vector<string>& paths) : paths_(paths) {}
+
+  virtual ~SimpleSymbolSupplier() {}
+
+  // Returns the path to the symbol file for the given module.  See the
+  // description above.
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file);
+
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file,
+                                     string* symbol_data);
+
+  // Allocates data buffer on heap and writes symbol data into buffer.
+  // Symbol supplier ALWAYS takes ownership of the data buffer.
+  virtual SymbolResult GetCStringSymbolData(const CodeModule* module,
+                                            const SystemInfo* system_info,
+                                            string* symbol_file,
+                                            char** symbol_data,
+                                            size_t* symbol_data_size);
+
+  // Free the data buffer allocated in the above GetCStringSymbolData();
+  virtual void FreeSymbolData(const CodeModule* module);
+
+ protected:
+  SymbolResult GetSymbolFileAtPathFromRoot(const CodeModule* module,
+                                           const SystemInfo* system_info,
+                                           const string& root_path,
+                                           string* symbol_file);
+
+ private:
+  map<string, char*> memory_buffers_;
+  vector<string> paths_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
diff --git a/src/processor/source_line_resolver_base.cc b/src/processor/source_line_resolver_base.cc
new file mode 100644
index 0000000..45a06cf
--- /dev/null
+++ b/src/processor/source_line_resolver_base.cc
@@ -0,0 +1,341 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// source_line_resolver_base.cc: Implementation of SourceLineResolverBase.
+//
+// See source_line_resolver_base.h and source_line_resolver_base_types.h for
+// more documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include <map>
+#include <utility>
+
+#include "google_breakpad/processor/source_line_resolver_base.h"
+#include "processor/source_line_resolver_base_types.h"
+#include "processor/module_factory.h"
+
+using std::map;
+using std::make_pair;
+
+namespace google_breakpad {
+
+SourceLineResolverBase::SourceLineResolverBase(
+    ModuleFactory* module_factory)
+  : modules_(new ModuleMap),
+    corrupt_modules_(new ModuleSet),
+    memory_buffers_(new MemoryMap),
+    module_factory_(module_factory) {
+}
+
+SourceLineResolverBase::~SourceLineResolverBase() {
+  ModuleMap::iterator it;
+  // Iterate through ModuleMap and delete all loaded modules.
+  for (it = modules_->begin(); it != modules_->end(); ++it) {
+    // Delete individual module.
+    delete it->second;
+  }
+  // Delete the map of modules.
+  delete modules_;
+  modules_ = NULL;
+
+  // Delete the set of corrupt modules.
+  delete corrupt_modules_;
+  corrupt_modules_ = NULL;
+
+  MemoryMap::iterator iter = memory_buffers_->begin();
+  for (; iter != memory_buffers_->end(); ++iter) {
+    delete [] iter->second;
+  }
+  // Delete the map of memory buffers.
+  delete memory_buffers_;
+  memory_buffers_ = NULL;
+
+  delete module_factory_;
+  module_factory_ = NULL;
+}
+
+bool SourceLineResolverBase::ReadSymbolFile(const string& map_file,
+                                            char** symbol_data,
+                                            size_t* symbol_data_size) {
+  if (symbol_data == NULL || symbol_data_size == NULL) {
+    BPLOG(ERROR) << "Could not Read file into Null memory pointer";
+    return false;
+  }
+
+  struct stat buf;
+  int error_code = stat(map_file.c_str(), &buf);
+  if (error_code == -1) {
+    string error_string;
+    error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "Could not open " << map_file <<
+        ", error " << error_code << ": " << error_string;
+    return false;
+  }
+
+  off_t file_size = buf.st_size;
+
+  // Allocate memory for file contents, plus a null terminator
+  // since we may use strtok() on the contents.
+  *symbol_data_size = file_size + 1;
+  *symbol_data = new char[file_size + 1];
+
+  if (*symbol_data == NULL) {
+    BPLOG(ERROR) << "Could not allocate memory for " << map_file;
+    return false;
+  }
+
+  BPLOG(INFO) << "Opening " << map_file;
+
+  FILE* f = fopen(map_file.c_str(), "rt");
+  if (!f) {
+    string error_string;
+    error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "Could not open " << map_file <<
+        ", error " << error_code << ": " << error_string;
+    delete [] (*symbol_data);
+    *symbol_data = NULL;
+    return false;
+  }
+
+  AutoFileCloser closer(f);
+
+  int items_read = 0;
+
+  items_read = fread(*symbol_data, 1, file_size, f);
+
+  if (items_read != file_size) {
+    string error_string;
+    error_code = ErrnoString(&error_string);
+    BPLOG(ERROR) << "Could not slurp " << map_file <<
+        ", error " << error_code << ": " << error_string;
+    delete [] (*symbol_data);
+    *symbol_data = NULL;
+    return false;
+  }
+
+  (*symbol_data)[file_size] = '\0';
+  return true;
+}
+
+bool SourceLineResolverBase::LoadModule(const CodeModule* module,
+                                        const string& map_file) {
+  if (module == NULL)
+    return false;
+
+  // Make sure we don't already have a module with the given name.
+  if (modules_->find(module->code_file()) != modules_->end()) {
+    BPLOG(INFO) << "Symbols for module " << module->code_file()
+                << " already loaded";
+    return false;
+  }
+
+  BPLOG(INFO) << "Loading symbols for module " << module->code_file()
+              << " from " << map_file;
+
+  char* memory_buffer;
+  size_t memory_buffer_size;
+  if (!ReadSymbolFile(map_file, &memory_buffer, &memory_buffer_size))
+    return false;
+
+  BPLOG(INFO) << "Read symbol file " << map_file << " succeeded";
+
+  bool load_result = LoadModuleUsingMemoryBuffer(module, memory_buffer,
+                                                 memory_buffer_size);
+
+  if (load_result && !ShouldDeleteMemoryBufferAfterLoadModule()) {
+    // memory_buffer has to stay alive as long as the module.
+    memory_buffers_->insert(make_pair(module->code_file(), memory_buffer));
+  } else {
+    delete [] memory_buffer;
+  }
+
+  return load_result;
+}
+
+bool SourceLineResolverBase::LoadModuleUsingMapBuffer(
+    const CodeModule* module, const string& map_buffer) {
+  if (module == NULL)
+    return false;
+
+  // Make sure we don't already have a module with the given name.
+  if (modules_->find(module->code_file()) != modules_->end()) {
+    BPLOG(INFO) << "Symbols for module " << module->code_file()
+                << " already loaded";
+    return false;
+  }
+
+  size_t memory_buffer_size = map_buffer.size() + 1;
+  char* memory_buffer = new char[memory_buffer_size];
+  if (memory_buffer == NULL) {
+    BPLOG(ERROR) << "Could not allocate memory for " << module->code_file();
+    return false;
+  }
+
+  // Can't use strcpy, as the data may contain '\0's before the end.
+  memcpy(memory_buffer, map_buffer.c_str(), map_buffer.size());
+  memory_buffer[map_buffer.size()] = '\0';
+
+  bool load_result = LoadModuleUsingMemoryBuffer(module, memory_buffer,
+                                                 memory_buffer_size);
+
+  if (load_result && !ShouldDeleteMemoryBufferAfterLoadModule()) {
+    // memory_buffer has to stay alive as long as the module.
+    memory_buffers_->insert(make_pair(module->code_file(), memory_buffer));
+  } else {
+    delete [] memory_buffer;
+  }
+
+  return load_result;
+}
+
+bool SourceLineResolverBase::LoadModuleUsingMemoryBuffer(
+    const CodeModule* module,
+    char* memory_buffer,
+    size_t memory_buffer_size) {
+  if (!module)
+    return false;
+
+  // Make sure we don't already have a module with the given name.
+  if (modules_->find(module->code_file()) != modules_->end()) {
+    BPLOG(INFO) << "Symbols for module " << module->code_file()
+                << " already loaded";
+    return false;
+  }
+
+  BPLOG(INFO) << "Loading symbols for module " << module->code_file()
+             << " from memory buffer";
+
+  Module* basic_module = module_factory_->CreateModule(module->code_file());
+
+  // Ownership of memory is NOT transfered to Module::LoadMapFromMemory().
+  if (!basic_module->LoadMapFromMemory(memory_buffer, memory_buffer_size)) {
+    BPLOG(ERROR) << "Too many error while parsing symbol data for module "
+                 << module->code_file();
+    // Returning false from here would be an indication that the symbols for
+    // this module are missing which would be wrong.  Intentionally fall through
+    // and add the module to both the modules_ and the corrupt_modules_ lists.
+    assert(basic_module->IsCorrupt());
+  }
+
+  modules_->insert(make_pair(module->code_file(), basic_module));
+  if (basic_module->IsCorrupt()) {
+    corrupt_modules_->insert(module->code_file());
+  }
+  return true;
+}
+
+bool SourceLineResolverBase::ShouldDeleteMemoryBufferAfterLoadModule() {
+  return true;
+}
+
+void SourceLineResolverBase::UnloadModule(const CodeModule* code_module) {
+  if (!code_module)
+    return;
+
+  ModuleMap::iterator mod_iter = modules_->find(code_module->code_file());
+  if (mod_iter != modules_->end()) {
+    Module* symbol_module = mod_iter->second;
+    delete symbol_module;
+    corrupt_modules_->erase(mod_iter->first);
+    modules_->erase(mod_iter);
+  }
+
+  if (ShouldDeleteMemoryBufferAfterLoadModule()) {
+    // No-op.  Because we never store any memory buffers.
+  } else {
+    // There may be a buffer stored locally, we need to find and delete it.
+    MemoryMap::iterator iter = memory_buffers_->find(code_module->code_file());
+    if (iter != memory_buffers_->end()) {
+      delete [] iter->second;
+      memory_buffers_->erase(iter);
+    }
+  }
+}
+
+bool SourceLineResolverBase::HasModule(const CodeModule* module) {
+  if (!module)
+    return false;
+  return modules_->find(module->code_file()) != modules_->end();
+}
+
+bool SourceLineResolverBase::IsModuleCorrupt(const CodeModule* module) {
+  if (!module)
+    return false;
+  return corrupt_modules_->find(module->code_file()) != corrupt_modules_->end();
+}
+
+void SourceLineResolverBase::FillSourceLineInfo(StackFrame* frame) {
+  if (frame->module) {
+    ModuleMap::const_iterator it = modules_->find(frame->module->code_file());
+    if (it != modules_->end()) {
+      it->second->LookupAddress(frame);
+    }
+  }
+}
+
+WindowsFrameInfo* SourceLineResolverBase::FindWindowsFrameInfo(
+    const StackFrame* frame) {
+  if (frame->module) {
+    ModuleMap::const_iterator it = modules_->find(frame->module->code_file());
+    if (it != modules_->end()) {
+      return it->second->FindWindowsFrameInfo(frame);
+    }
+  }
+  return NULL;
+}
+
+CFIFrameInfo* SourceLineResolverBase::FindCFIFrameInfo(
+    const StackFrame* frame) {
+  if (frame->module) {
+    ModuleMap::const_iterator it = modules_->find(frame->module->code_file());
+    if (it != modules_->end()) {
+      return it->second->FindCFIFrameInfo(frame);
+    }
+  }
+  return NULL;
+}
+
+bool SourceLineResolverBase::CompareString::operator()(
+    const string& s1, const string& s2) const {
+  return strcmp(s1.c_str(), s2.c_str()) < 0;
+}
+
+bool SourceLineResolverBase::Module::ParseCFIRuleSet(
+    const string& rule_set, CFIFrameInfo* frame_info) const {
+  CFIFrameInfoParseHandler handler(frame_info);
+  CFIRuleParser parser(&handler);
+  return parser.Parse(rule_set);
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/source_line_resolver_base_types.h b/src/processor/source_line_resolver_base_types.h
new file mode 100644
index 0000000..db9f7b8
--- /dev/null
+++ b/src/processor/source_line_resolver_base_types.h
@@ -0,0 +1,167 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// source_line_resolver_base_types.h: definition of nested classes/structs in
+// SourceLineResolverBase.  It moves the definitions out of
+// source_line_resolver_base.cc, so that other classes may have access
+// to these private nested types without including source_line_resolver_base.cc
+// In addition, Module is defined as a pure abstract class to be implemented by
+// each concrete source line resolver class.
+//
+// See source_line_resolver_base.h for more documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <stdio.h>
+
+#include <map>
+#include <string>
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/source_line_resolver_base.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/windows_frame_info.h"
+
+#ifndef PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
+#define PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
+
+namespace google_breakpad {
+
+class SourceLineResolverBase::AutoFileCloser {
+ public:
+  explicit AutoFileCloser(FILE* file) : file_(file) {}
+  ~AutoFileCloser() {
+    if (file_)
+      fclose(file_);
+  }
+
+ private:
+  FILE* file_;
+};
+
+struct SourceLineResolverBase::Line {
+  Line() { }
+  Line(MemAddr addr, MemAddr code_size, int file_id, int source_line)
+      : address(addr)
+      , size(code_size)
+      , source_file_id(file_id)
+      , line(source_line) { }
+
+  MemAddr address;
+  MemAddr size;
+  int32_t source_file_id;
+  int32_t line;
+};
+
+struct SourceLineResolverBase::Function {
+  Function() { }
+  Function(const string& function_name,
+           MemAddr function_address,
+           MemAddr code_size,
+           int set_parameter_size,
+           bool is_multiple)
+      : name(function_name), address(function_address), size(code_size),
+        parameter_size(set_parameter_size), is_multiple(is_multiple) { }
+
+  string name;
+  MemAddr address;
+  MemAddr size;
+
+  // The size of parameters passed to this function on the stack.
+  int32_t parameter_size;
+
+  // If the function's instructions correspond to multiple symbols.
+  bool is_multiple;
+};
+
+struct SourceLineResolverBase::PublicSymbol {
+  PublicSymbol() { }
+  PublicSymbol(const string& set_name,
+               MemAddr set_address,
+               int set_parameter_size,
+               bool is_multiple)
+      : name(set_name),
+        address(set_address),
+        parameter_size(set_parameter_size),
+        is_multiple(is_multiple) {}
+
+  string name;
+  MemAddr address;
+
+  // If the public symbol is used as a function entry point, parameter_size
+  // is set to the size of the parameters passed to the funciton on the
+  // stack, if known.
+  int32_t parameter_size;
+
+  // If the function's instructions correspond to multiple symbols.
+  bool is_multiple;
+};
+
+class SourceLineResolverBase::Module {
+ public:
+  virtual ~Module() { };
+  // Loads a map from the given buffer in char* type.
+  // Does NOT take ownership of memory_buffer (the caller, source line resolver,
+  // is the owner of memory_buffer).
+  // The passed in |memory buffer| is of size |memory_buffer_size|.  If it is
+  // not null terminated, LoadMapFromMemory will null terminate it by modifying
+  // the passed in buffer.
+  virtual bool LoadMapFromMemory(char* memory_buffer,
+                                 size_t memory_buffer_size) = 0;
+
+  // Tells whether the loaded symbol data is corrupt.  Return value is
+  // undefined, if the symbol data hasn't been loaded yet.
+  virtual bool IsCorrupt() const = 0;
+
+  // Looks up the given relative address, and fills the StackFrame struct
+  // with the result.
+  virtual void LookupAddress(StackFrame* frame) const = 0;
+
+  // If Windows stack walking information is available covering ADDRESS,
+  // return a WindowsFrameInfo structure describing it. If the information
+  // is not available, returns NULL. A NULL return value does not indicate
+  // an error. The caller takes ownership of any returned WindowsFrameInfo
+  // object.
+  virtual WindowsFrameInfo*
+      FindWindowsFrameInfo(const StackFrame* frame) const = 0;
+
+  // If CFI stack walking information is available covering ADDRESS,
+  // return a CFIFrameInfo structure describing it. If the information
+  // is not available, return NULL. The caller takes ownership of any
+  // returned CFIFrameInfo object.
+  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame) const = 0;
+ protected:
+  virtual bool ParseCFIRuleSet(const string& rule_set,
+                               CFIFrameInfo* frame_info) const;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
diff --git a/src/processor/stack_frame_cpu.cc b/src/processor/stack_frame_cpu.cc
new file mode 100644
index 0000000..6175dc7
--- /dev/null
+++ b/src/processor/stack_frame_cpu.cc
@@ -0,0 +1,79 @@
+// Copyright 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stack_frame_cpu.h: CPU-specific StackFrame extensions.
+//
+// See google_breakpad/processor/stack_frame_cpu.h for documentation.
+//
+// Author: Colin Blundell
+
+#include "google_breakpad/processor/stack_frame_cpu.h"
+
+namespace google_breakpad {
+
+const uint64_t StackFrameARM64::CONTEXT_VALID_X0;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X1;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X2;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X3;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X4;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X5;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X6;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X7;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X8;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X9;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X10;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X11;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X12;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X13;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X14;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X15;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X16;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X17;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X18;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X19;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X20;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X21;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X22;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X23;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X24;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X25;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X26;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X27;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X28;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X29;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X30;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X31;
+const uint64_t StackFrameARM64::CONTEXT_VALID_X32;
+const uint64_t StackFrameARM64::CONTEXT_VALID_FP;
+const uint64_t StackFrameARM64::CONTEXT_VALID_LR;
+const uint64_t StackFrameARM64::CONTEXT_VALID_SP;
+const uint64_t StackFrameARM64::CONTEXT_VALID_PC;
+const uint64_t StackFrameARM64::CONTEXT_VALID_ALL;
+
+}  // namespace google_breakpad
diff --git a/src/processor/stack_frame_symbolizer.cc b/src/processor/stack_frame_symbolizer.cc
new file mode 100644
index 0000000..7a44f24
--- /dev/null
+++ b/src/processor/stack_frame_symbolizer.cc
@@ -0,0 +1,145 @@
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Implementation of StackFrameSymbolizer, which encapsulates the logic of how
+// SourceLineResolverInterface interacts with SymbolSupplier to fill source
+// line information in a stack frame, and also looks up WindowsFrameInfo or
+// CFIFrameInfo for a stack frame.
+
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+
+#include <assert.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/symbol_supplier.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+StackFrameSymbolizer::StackFrameSymbolizer(
+    SymbolSupplier* supplier,
+    SourceLineResolverInterface* resolver) : supplier_(supplier),
+                                             resolver_(resolver) { }
+
+StackFrameSymbolizer::SymbolizerResult StackFrameSymbolizer::FillSourceLineInfo(
+    const CodeModules* modules,
+    const CodeModules* unloaded_modules,
+    const SystemInfo* system_info,
+    StackFrame* frame) {
+  assert(frame);
+
+  const CodeModule* module = NULL;
+  if (modules) {
+    module = modules->GetModuleForAddress(frame->instruction);
+  }
+  if (!module && unloaded_modules) {
+    module = unloaded_modules->GetModuleForAddress(frame->instruction);
+  }
+
+  if (!module) return kError;
+  frame->module = module;
+
+  if (!resolver_) return kError;  // no resolver.
+  // If module is known to have missing symbol file, return.
+  if (no_symbol_modules_.find(module->code_file()) !=
+      no_symbol_modules_.end()) {
+    return kError;
+  }
+
+  // If module is already loaded, go ahead to fill source line info and return.
+  if (resolver_->HasModule(frame->module)) {
+    resolver_->FillSourceLineInfo(frame);
+    return resolver_->IsModuleCorrupt(frame->module) ?
+        kWarningCorruptSymbols : kNoError;
+  }
+
+  // Module needs to fetch symbol file. First check to see if supplier exists.
+  if (!supplier_) {
+    return kError;
+  }
+
+  // Start fetching symbol from supplier.
+  string symbol_file;
+  char* symbol_data = NULL;
+  size_t symbol_data_size;
+  SymbolSupplier::SymbolResult symbol_result = supplier_->GetCStringSymbolData(
+      module, system_info, &symbol_file, &symbol_data, &symbol_data_size);
+
+  switch (symbol_result) {
+    case SymbolSupplier::FOUND: {
+      bool load_success = resolver_->LoadModuleUsingMemoryBuffer(
+          frame->module,
+          symbol_data,
+          symbol_data_size);
+      if (resolver_->ShouldDeleteMemoryBufferAfterLoadModule()) {
+        supplier_->FreeSymbolData(module);
+      }
+
+      if (load_success) {
+        resolver_->FillSourceLineInfo(frame);
+        return resolver_->IsModuleCorrupt(frame->module) ?
+            kWarningCorruptSymbols : kNoError;
+      } else {
+        BPLOG(ERROR) << "Failed to load symbol file in resolver.";
+        no_symbol_modules_.insert(module->code_file());
+        return kError;
+      }
+    }
+
+    case SymbolSupplier::NOT_FOUND:
+      no_symbol_modules_.insert(module->code_file());
+      return kError;
+
+    case SymbolSupplier::INTERRUPT:
+      return kInterrupt;
+
+    default:
+      BPLOG(ERROR) << "Unknown SymbolResult enum: " << symbol_result;
+      return kError;
+  }
+  return kError;
+}
+
+WindowsFrameInfo* StackFrameSymbolizer::FindWindowsFrameInfo(
+    const StackFrame* frame) {
+  return resolver_ ? resolver_->FindWindowsFrameInfo(frame) : NULL;
+}
+
+CFIFrameInfo* StackFrameSymbolizer::FindCFIFrameInfo(
+    const StackFrame* frame) {
+  return resolver_ ? resolver_->FindCFIFrameInfo(frame) : NULL;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalk_common.cc b/src/processor/stackwalk_common.cc
new file mode 100644
index 0000000..9047572
--- /dev/null
+++ b/src/processor/stackwalk_common.cc
@@ -0,0 +1,950 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalk_common.cc: Module shared by the {micro,mini}dump_stackwalck
+// executables to print the content of dumps (w/ stack traces) on the console.
+//
+// Author: Mark Mentovai
+
+#include "processor/stackwalk_common.h"
+
+#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <string>
+#include <vector>
+
+#include "common/stdio_wrapper.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/logging.h"
+#include "processor/pathname_stripper.h"
+
+namespace google_breakpad {
+
+namespace {
+
+using std::vector;
+
+// Separator character for machine readable output.
+static const char kOutputSeparator = '|';
+
+// PrintRegister prints a register's name and value to stdout.  It will
+// print four registers on a line.  For the first register in a set,
+// pass 0 for |start_col|.  For registers in a set, pass the most recent
+// return value of PrintRegister.
+// The caller is responsible for printing the final newline after a set
+// of registers is completely printed, regardless of the number of calls
+// to PrintRegister.
+static const int kMaxWidth = 80;  // optimize for an 80-column terminal
+static int PrintRegister(const char* name, uint32_t value, int start_col) {
+  char buffer[64];
+  snprintf(buffer, sizeof(buffer), " %5s = 0x%08x", name, value);
+
+  if (start_col + static_cast<ssize_t>(strlen(buffer)) > kMaxWidth) {
+    start_col = 0;
+    printf("\n ");
+  }
+  fputs(buffer, stdout);
+
+  return start_col + strlen(buffer);
+}
+
+// PrintRegister64 does the same thing, but for 64-bit registers.
+static int PrintRegister64(const char* name, uint64_t value, int start_col) {
+  char buffer[64];
+  snprintf(buffer, sizeof(buffer), " %5s = 0x%016" PRIx64 , name, value);
+
+  if (start_col + static_cast<ssize_t>(strlen(buffer)) > kMaxWidth) {
+    start_col = 0;
+    printf("\n ");
+  }
+  fputs(buffer, stdout);
+
+  return start_col + strlen(buffer);
+}
+
+// StripSeparator takes a string |original| and returns a copy
+// of the string with all occurences of |kOutputSeparator| removed.
+static string StripSeparator(const string& original) {
+  string result = original;
+  string::size_type position = 0;
+  while ((position = result.find(kOutputSeparator, position)) != string::npos) {
+    result.erase(position, 1);
+  }
+  position = 0;
+  while ((position = result.find('\n', position)) != string::npos) {
+    result.erase(position, 1);
+  }
+  return result;
+}
+
+// PrintStackContents prints the stack contents of the current frame to stdout.
+static void PrintStackContents(const string& indent,
+                               const StackFrame* frame,
+                               const StackFrame* prev_frame,
+                               const string& cpu,
+                               const MemoryRegion* memory,
+                               const CodeModules* modules,
+                               SourceLineResolverInterface* resolver) {
+  // Find stack range.
+  int word_length = 0;
+  uint64_t stack_begin = 0, stack_end = 0;
+  if (cpu == "x86") {
+    word_length = 4;
+    const StackFrameX86* frame_x86 = static_cast<const StackFrameX86*>(frame);
+    const StackFrameX86* prev_frame_x86 =
+        static_cast<const StackFrameX86*>(prev_frame);
+    if ((frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESP) &&
+        (prev_frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESP)) {
+      stack_begin = frame_x86->context.esp;
+      stack_end = prev_frame_x86->context.esp;
+    }
+  } else if (cpu == "amd64") {
+    word_length = 8;
+    const StackFrameAMD64* frame_amd64 =
+        static_cast<const StackFrameAMD64*>(frame);
+    const StackFrameAMD64* prev_frame_amd64 =
+        static_cast<const StackFrameAMD64*>(prev_frame);
+    if ((frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RSP) &&
+        (prev_frame_amd64->context_validity &
+         StackFrameAMD64::CONTEXT_VALID_RSP)) {
+      stack_begin = frame_amd64->context.rsp;
+      stack_end = prev_frame_amd64->context.rsp;
+    }
+  } else if (cpu == "arm") {
+    word_length = 4;
+    const StackFrameARM* frame_arm = static_cast<const StackFrameARM*>(frame);
+    const StackFrameARM* prev_frame_arm =
+        static_cast<const StackFrameARM*>(prev_frame);
+    if ((frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_SP) &&
+        (prev_frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_SP)) {
+      stack_begin = frame_arm->context.iregs[13];
+      stack_end = prev_frame_arm->context.iregs[13];
+    }
+  } else if (cpu == "arm64") {
+    word_length = 8;
+    const StackFrameARM64* frame_arm64 =
+        static_cast<const StackFrameARM64*>(frame);
+    const StackFrameARM64* prev_frame_arm64 =
+        static_cast<const StackFrameARM64*>(prev_frame);
+    if ((frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_SP) &&
+        (prev_frame_arm64->context_validity &
+         StackFrameARM64::CONTEXT_VALID_SP)) {
+      stack_begin = frame_arm64->context.iregs[31];
+      stack_end = prev_frame_arm64->context.iregs[31];
+    }
+  }
+  if (!word_length || !stack_begin || !stack_end)
+    return;
+
+  // Print stack contents.
+  printf("\n%sStack contents:", indent.c_str());
+  for(uint64_t address = stack_begin; address < stack_end; ) {
+    // Print the start address of this row.
+    if (word_length == 4)
+      printf("\n%s %08x", indent.c_str(), static_cast<uint32_t>(address));
+    else
+      printf("\n%s %016" PRIx64, indent.c_str(), address);
+
+    // Print data in hex.
+    const int kBytesPerRow = 16;
+    string data_as_string;
+    for (int i = 0; i < kBytesPerRow; ++i, ++address) {
+      uint8_t value = 0;
+      if (address < stack_end &&
+          memory->GetMemoryAtAddress(address, &value)) {
+        printf(" %02x", value);
+        data_as_string.push_back(isprint(value) ? value : '.');
+      } else {
+        printf("   ");
+        data_as_string.push_back(' ');
+      }
+    }
+    // Print data as string.
+    printf("  %s", data_as_string.c_str());
+  }
+
+  // Try to find instruction pointers from stack.
+  printf("\n%sPossible instruction pointers:\n", indent.c_str());
+  for (uint64_t address = stack_begin; address < stack_end;
+       address += word_length) {
+    StackFrame pointee_frame;
+
+    // Read a word (possible instruction pointer) from stack.
+    if (word_length == 4) {
+      uint32_t data32 = 0;
+      memory->GetMemoryAtAddress(address, &data32);
+      pointee_frame.instruction = data32;
+    } else {
+      uint64_t data64 = 0;
+      memory->GetMemoryAtAddress(address, &data64);
+      pointee_frame.instruction = data64;
+    }
+    pointee_frame.module =
+        modules->GetModuleForAddress(pointee_frame.instruction);
+
+    // Try to look up the function name.
+    if (pointee_frame.module)
+      resolver->FillSourceLineInfo(&pointee_frame);
+
+    // Print function name.
+    if (!pointee_frame.function_name.empty()) {
+      if (word_length == 4) {
+        printf("%s *(0x%08x) = 0x%08x", indent.c_str(),
+               static_cast<uint32_t>(address),
+               static_cast<uint32_t>(pointee_frame.instruction));
+      } else {
+        printf("%s *(0x%016" PRIx64 ") = 0x%016" PRIx64,
+               indent.c_str(), address, pointee_frame.instruction);
+      }
+      printf(" <%s> [%s : %d + 0x%" PRIx64 "]\n",
+             pointee_frame.function_name.c_str(),
+             PathnameStripper::File(pointee_frame.source_file_name).c_str(),
+             pointee_frame.source_line,
+             pointee_frame.instruction - pointee_frame.source_line_base);
+    }
+  }
+  printf("\n");
+}
+
+// PrintStack prints the call stack in |stack| to stdout, in a reasonably
+// useful form.  Module, function, and source file names are displayed if
+// they are available.  The code offset to the base code address of the
+// source line, function, or module is printed, preferring them in that
+// order.  If no source line, function, or module information is available,
+// an absolute code offset is printed.
+//
+// If |cpu| is a recognized CPU name, relevant register state for each stack
+// frame printed is also output, if available.
+static void PrintStack(const CallStack* stack,
+                       const string& cpu,
+                       bool output_stack_contents,
+                       const MemoryRegion* memory,
+                       const CodeModules* modules,
+                       SourceLineResolverInterface* resolver) {
+  int frame_count = stack->frames()->size();
+  if (frame_count == 0) {
+    printf(" <no frames>\n");
+  }
+  for (int frame_index = 0; frame_index < frame_count; ++frame_index) {
+    const StackFrame* frame = stack->frames()->at(frame_index);
+    printf("%2d  ", frame_index);
+
+    uint64_t instruction_address = frame->ReturnAddress();
+
+    if (frame->module) {
+      printf("%s", PathnameStripper::File(frame->module->code_file()).c_str());
+      if (!frame->function_name.empty()) {
+        printf("!%s", frame->function_name.c_str());
+        if (!frame->source_file_name.empty()) {
+          string source_file = PathnameStripper::File(frame->source_file_name);
+          printf(" [%s : %d + 0x%" PRIx64 "]",
+                 source_file.c_str(),
+                 frame->source_line,
+                 instruction_address - frame->source_line_base);
+        } else {
+          printf(" + 0x%" PRIx64, instruction_address - frame->function_base);
+        }
+      } else {
+        printf(" + 0x%" PRIx64,
+               instruction_address - frame->module->base_address());
+      }
+    } else {
+      printf("0x%" PRIx64, instruction_address);
+    }
+    printf("\n ");
+
+    int sequence = 0;
+    if (cpu == "x86") {
+      const StackFrameX86* frame_x86 =
+        reinterpret_cast<const StackFrameX86*>(frame);
+
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EIP)
+        sequence = PrintRegister("eip", frame_x86->context.eip, sequence);
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESP)
+        sequence = PrintRegister("esp", frame_x86->context.esp, sequence);
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBP)
+        sequence = PrintRegister("ebp", frame_x86->context.ebp, sequence);
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBX)
+        sequence = PrintRegister("ebx", frame_x86->context.ebx, sequence);
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESI)
+        sequence = PrintRegister("esi", frame_x86->context.esi, sequence);
+      if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EDI)
+        sequence = PrintRegister("edi", frame_x86->context.edi, sequence);
+      if (frame_x86->context_validity == StackFrameX86::CONTEXT_VALID_ALL) {
+        sequence = PrintRegister("eax", frame_x86->context.eax, sequence);
+        sequence = PrintRegister("ecx", frame_x86->context.ecx, sequence);
+        sequence = PrintRegister("edx", frame_x86->context.edx, sequence);
+        sequence = PrintRegister("efl", frame_x86->context.eflags, sequence);
+      }
+    } else if (cpu == "ppc") {
+      const StackFramePPC* frame_ppc =
+        reinterpret_cast<const StackFramePPC*>(frame);
+
+      if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_SRR0)
+        sequence = PrintRegister("srr0", frame_ppc->context.srr0, sequence);
+      if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_GPR1)
+        sequence = PrintRegister("r1", frame_ppc->context.gpr[1], sequence);
+    } else if (cpu == "amd64") {
+      const StackFrameAMD64* frame_amd64 =
+        reinterpret_cast<const StackFrameAMD64*>(frame);
+
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RAX)
+        sequence = PrintRegister64("rax", frame_amd64->context.rax, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RDX)
+        sequence = PrintRegister64("rdx", frame_amd64->context.rdx, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RCX)
+        sequence = PrintRegister64("rcx", frame_amd64->context.rcx, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RBX)
+        sequence = PrintRegister64("rbx", frame_amd64->context.rbx, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RSI)
+        sequence = PrintRegister64("rsi", frame_amd64->context.rsi, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RDI)
+        sequence = PrintRegister64("rdi", frame_amd64->context.rdi, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RBP)
+        sequence = PrintRegister64("rbp", frame_amd64->context.rbp, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RSP)
+        sequence = PrintRegister64("rsp", frame_amd64->context.rsp, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R8)
+        sequence = PrintRegister64("r8", frame_amd64->context.r8, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R9)
+        sequence = PrintRegister64("r9", frame_amd64->context.r9, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R10)
+        sequence = PrintRegister64("r10", frame_amd64->context.r10, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R11)
+        sequence = PrintRegister64("r11", frame_amd64->context.r11, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R12)
+        sequence = PrintRegister64("r12", frame_amd64->context.r12, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R13)
+        sequence = PrintRegister64("r13", frame_amd64->context.r13, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R14)
+        sequence = PrintRegister64("r14", frame_amd64->context.r14, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_R15)
+        sequence = PrintRegister64("r15", frame_amd64->context.r15, sequence);
+      if (frame_amd64->context_validity & StackFrameAMD64::CONTEXT_VALID_RIP)
+        sequence = PrintRegister64("rip", frame_amd64->context.rip, sequence);
+    } else if (cpu == "sparc") {
+      const StackFrameSPARC* frame_sparc =
+        reinterpret_cast<const StackFrameSPARC*>(frame);
+
+      if (frame_sparc->context_validity & StackFrameSPARC::CONTEXT_VALID_SP)
+        sequence = PrintRegister("sp", frame_sparc->context.g_r[14], sequence);
+      if (frame_sparc->context_validity & StackFrameSPARC::CONTEXT_VALID_FP)
+        sequence = PrintRegister("fp", frame_sparc->context.g_r[30], sequence);
+      if (frame_sparc->context_validity & StackFrameSPARC::CONTEXT_VALID_PC)
+        sequence = PrintRegister("pc", frame_sparc->context.pc, sequence);
+    } else if (cpu == "arm") {
+      const StackFrameARM* frame_arm =
+        reinterpret_cast<const StackFrameARM*>(frame);
+
+      // Argument registers (caller-saves), which will likely only be valid
+      // for the youngest frame.
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R0)
+        sequence = PrintRegister("r0", frame_arm->context.iregs[0], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R1)
+        sequence = PrintRegister("r1", frame_arm->context.iregs[1], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R2)
+        sequence = PrintRegister("r2", frame_arm->context.iregs[2], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R3)
+        sequence = PrintRegister("r3", frame_arm->context.iregs[3], sequence);
+
+      // General-purpose callee-saves registers.
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R4)
+        sequence = PrintRegister("r4", frame_arm->context.iregs[4], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R5)
+        sequence = PrintRegister("r5", frame_arm->context.iregs[5], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R6)
+        sequence = PrintRegister("r6", frame_arm->context.iregs[6], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R7)
+        sequence = PrintRegister("r7", frame_arm->context.iregs[7], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R8)
+        sequence = PrintRegister("r8", frame_arm->context.iregs[8], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R9)
+        sequence = PrintRegister("r9", frame_arm->context.iregs[9], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R10)
+        sequence = PrintRegister("r10", frame_arm->context.iregs[10], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R12)
+        sequence = PrintRegister("r12", frame_arm->context.iregs[12], sequence);
+
+      // Registers with a dedicated or conventional purpose.
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_FP)
+        sequence = PrintRegister("fp", frame_arm->context.iregs[11], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_SP)
+        sequence = PrintRegister("sp", frame_arm->context.iregs[13], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_LR)
+        sequence = PrintRegister("lr", frame_arm->context.iregs[14], sequence);
+      if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_PC)
+        sequence = PrintRegister("pc", frame_arm->context.iregs[15], sequence);
+    } else if (cpu == "arm64") {
+      const StackFrameARM64* frame_arm64 =
+        reinterpret_cast<const StackFrameARM64*>(frame);
+
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X0) {
+        sequence =
+            PrintRegister64("x0", frame_arm64->context.iregs[0], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X1) {
+        sequence =
+            PrintRegister64("x1", frame_arm64->context.iregs[1], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X2) {
+        sequence =
+            PrintRegister64("x2", frame_arm64->context.iregs[2], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X3) {
+        sequence =
+            PrintRegister64("x3", frame_arm64->context.iregs[3], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X4) {
+        sequence =
+            PrintRegister64("x4", frame_arm64->context.iregs[4], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X5) {
+        sequence =
+            PrintRegister64("x5", frame_arm64->context.iregs[5], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X6) {
+        sequence =
+            PrintRegister64("x6", frame_arm64->context.iregs[6], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X7) {
+        sequence =
+            PrintRegister64("x7", frame_arm64->context.iregs[7], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X8) {
+        sequence =
+            PrintRegister64("x8", frame_arm64->context.iregs[8], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X9) {
+        sequence =
+            PrintRegister64("x9", frame_arm64->context.iregs[9], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X10) {
+        sequence =
+            PrintRegister64("x10", frame_arm64->context.iregs[10], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X11) {
+        sequence =
+            PrintRegister64("x11", frame_arm64->context.iregs[11], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X12) {
+        sequence =
+            PrintRegister64("x12", frame_arm64->context.iregs[12], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X13) {
+        sequence =
+            PrintRegister64("x13", frame_arm64->context.iregs[13], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X14) {
+        sequence =
+            PrintRegister64("x14", frame_arm64->context.iregs[14], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X15) {
+        sequence =
+            PrintRegister64("x15", frame_arm64->context.iregs[15], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X16) {
+        sequence =
+            PrintRegister64("x16", frame_arm64->context.iregs[16], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X17) {
+        sequence =
+            PrintRegister64("x17", frame_arm64->context.iregs[17], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X18) {
+        sequence =
+            PrintRegister64("x18", frame_arm64->context.iregs[18], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X19) {
+        sequence =
+            PrintRegister64("x19", frame_arm64->context.iregs[19], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X20) {
+        sequence =
+            PrintRegister64("x20", frame_arm64->context.iregs[20], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X21) {
+        sequence =
+            PrintRegister64("x21", frame_arm64->context.iregs[21], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X22) {
+        sequence =
+            PrintRegister64("x22", frame_arm64->context.iregs[22], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X23) {
+        sequence =
+            PrintRegister64("x23", frame_arm64->context.iregs[23], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X24) {
+        sequence =
+            PrintRegister64("x24", frame_arm64->context.iregs[24], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X25) {
+        sequence =
+            PrintRegister64("x25", frame_arm64->context.iregs[25], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X26) {
+        sequence =
+            PrintRegister64("x26", frame_arm64->context.iregs[26], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X27) {
+        sequence =
+            PrintRegister64("x27", frame_arm64->context.iregs[27], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_X28) {
+        sequence =
+            PrintRegister64("x28", frame_arm64->context.iregs[28], sequence);
+      }
+
+      // Registers with a dedicated or conventional purpose.
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_FP) {
+        sequence =
+            PrintRegister64("fp", frame_arm64->context.iregs[29], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_LR) {
+        sequence =
+            PrintRegister64("lr", frame_arm64->context.iregs[30], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_SP) {
+        sequence =
+            PrintRegister64("sp", frame_arm64->context.iregs[31], sequence);
+      }
+      if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_PC) {
+        sequence =
+            PrintRegister64("pc", frame_arm64->context.iregs[32], sequence);
+      }
+    } else if ((cpu == "mips") || (cpu == "mips64")) {
+      const StackFrameMIPS* frame_mips =
+        reinterpret_cast<const StackFrameMIPS*>(frame);
+
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_GP)
+        sequence = PrintRegister64("gp",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_GP],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_SP)
+        sequence = PrintRegister64("sp",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_SP],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_FP)
+        sequence = PrintRegister64("fp",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_FP],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_RA)
+        sequence = PrintRegister64("ra",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_RA],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_PC)
+        sequence = PrintRegister64("pc", frame_mips->context.epc, sequence);
+
+      // Save registers s0-s7
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S0)
+        sequence = PrintRegister64("s0",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S0],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S1)
+        sequence = PrintRegister64("s1",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S1],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S2)
+        sequence = PrintRegister64("s2",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S2],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S3)
+        sequence = PrintRegister64("s3",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S3],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S4)
+        sequence = PrintRegister64("s4",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S4],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S5)
+        sequence = PrintRegister64("s5",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S5],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S6)
+        sequence = PrintRegister64("s6",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S6],
+                     sequence);
+      if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_S7)
+        sequence = PrintRegister64("s7",
+                     frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_S7],
+                     sequence);
+    }
+    printf("\n    Found by: %s\n", frame->trust_description().c_str());
+
+    // Print stack contents.
+    if (output_stack_contents && frame_index + 1 < frame_count) {
+      const string indent("    ");
+      PrintStackContents(indent, frame, stack->frames()->at(frame_index + 1),
+                         cpu, memory, modules, resolver);
+    }
+  }
+}
+
+// PrintStackMachineReadable prints the call stack in |stack| to stdout,
+// in the following machine readable pipe-delimited text format:
+// thread number|frame number|module|function|source file|line|offset
+//
+// Module, function, source file, and source line may all be empty
+// depending on availability.  The code offset follows the same rules as
+// PrintStack above.
+static void PrintStackMachineReadable(int thread_num, const CallStack* stack) {
+  int frame_count = stack->frames()->size();
+  for (int frame_index = 0; frame_index < frame_count; ++frame_index) {
+    const StackFrame* frame = stack->frames()->at(frame_index);
+    printf("%d%c%d%c", thread_num, kOutputSeparator, frame_index,
+           kOutputSeparator);
+
+    uint64_t instruction_address = frame->ReturnAddress();
+
+    if (frame->module) {
+      assert(!frame->module->code_file().empty());
+      printf("%s", StripSeparator(PathnameStripper::File(
+                     frame->module->code_file())).c_str());
+      if (!frame->function_name.empty()) {
+        printf("%c%s", kOutputSeparator,
+               StripSeparator(frame->function_name).c_str());
+        if (!frame->source_file_name.empty()) {
+          printf("%c%s%c%d%c0x%" PRIx64,
+                 kOutputSeparator,
+                 StripSeparator(frame->source_file_name).c_str(),
+                 kOutputSeparator,
+                 frame->source_line,
+                 kOutputSeparator,
+                 instruction_address - frame->source_line_base);
+        } else {
+          printf("%c%c%c0x%" PRIx64,
+                 kOutputSeparator,  // empty source file
+                 kOutputSeparator,  // empty source line
+                 kOutputSeparator,
+                 instruction_address - frame->function_base);
+        }
+      } else {
+        printf("%c%c%c%c0x%" PRIx64,
+               kOutputSeparator,  // empty function name
+               kOutputSeparator,  // empty source file
+               kOutputSeparator,  // empty source line
+               kOutputSeparator,
+               instruction_address - frame->module->base_address());
+      }
+    } else {
+      // the printf before this prints a trailing separator for module name
+      printf("%c%c%c%c0x%" PRIx64,
+             kOutputSeparator,  // empty function name
+             kOutputSeparator,  // empty source file
+             kOutputSeparator,  // empty source line
+             kOutputSeparator,
+             instruction_address);
+    }
+    printf("\n");
+  }
+}
+
+// ContainsModule checks whether a given |module| is in the vector
+// |modules_without_symbols|.
+static bool ContainsModule(
+    const vector<const CodeModule*>* modules,
+    const CodeModule* module) {
+  assert(modules);
+  assert(module);
+  vector<const CodeModule*>::const_iterator iter;
+  for (iter = modules->begin(); iter != modules->end(); ++iter) {
+    if (module->debug_file().compare((*iter)->debug_file()) == 0 &&
+        module->debug_identifier().compare((*iter)->debug_identifier()) == 0) {
+      return true;
+    }
+  }
+  return false;
+}
+
+// PrintModule prints a single |module| to stdout.
+// |modules_without_symbols| should contain the list of modules that were
+// confirmed to be missing their symbols during the stack walk.
+static void PrintModule(
+    const CodeModule* module,
+    const vector<const CodeModule*>* modules_without_symbols,
+    const vector<const CodeModule*>* modules_with_corrupt_symbols,
+    uint64_t main_address) {
+  string symbol_issues;
+  if (ContainsModule(modules_without_symbols, module)) {
+    symbol_issues = "  (WARNING: No symbols, " +
+        PathnameStripper::File(module->debug_file()) + ", " +
+        module->debug_identifier() + ")";
+  } else if (ContainsModule(modules_with_corrupt_symbols, module)) {
+    symbol_issues = "  (WARNING: Corrupt symbols, " +
+        PathnameStripper::File(module->debug_file()) + ", " +
+        module->debug_identifier() + ")";
+  }
+  uint64_t base_address = module->base_address();
+  printf("0x%08" PRIx64 " - 0x%08" PRIx64 "  %s  %s%s%s\n",
+         base_address, base_address + module->size() - 1,
+         PathnameStripper::File(module->code_file()).c_str(),
+         module->version().empty() ? "???" : module->version().c_str(),
+         main_address != 0 && base_address == main_address ? "  (main)" : "",
+         symbol_issues.c_str());
+}
+
+// PrintModules prints the list of all loaded |modules| to stdout.
+// |modules_without_symbols| should contain the list of modules that were
+// confirmed to be missing their symbols during the stack walk.
+static void PrintModules(
+    const CodeModules* modules,
+    const vector<const CodeModule*>* modules_without_symbols,
+    const vector<const CodeModule*>* modules_with_corrupt_symbols) {
+  if (!modules)
+    return;
+
+  printf("\n");
+  printf("Loaded modules:\n");
+
+  uint64_t main_address = 0;
+  const CodeModule* main_module = modules->GetMainModule();
+  if (main_module) {
+    main_address = main_module->base_address();
+  }
+
+  unsigned int module_count = modules->module_count();
+  for (unsigned int module_sequence = 0;
+       module_sequence < module_count;
+       ++module_sequence) {
+    const CodeModule* module = modules->GetModuleAtSequence(module_sequence);
+    PrintModule(module, modules_without_symbols, modules_with_corrupt_symbols,
+                main_address);
+  }
+}
+
+// PrintModulesMachineReadable outputs a list of loaded modules,
+// one per line, in the following machine-readable pipe-delimited
+// text format:
+// Module|{Module Filename}|{Version}|{Debug Filename}|{Debug Identifier}|
+// {Base Address}|{Max Address}|{Main}
+static void PrintModulesMachineReadable(const CodeModules* modules) {
+  if (!modules)
+    return;
+
+  uint64_t main_address = 0;
+  const CodeModule* main_module = modules->GetMainModule();
+  if (main_module) {
+    main_address = main_module->base_address();
+  }
+
+  unsigned int module_count = modules->module_count();
+  for (unsigned int module_sequence = 0;
+       module_sequence < module_count;
+       ++module_sequence) {
+    const CodeModule* module = modules->GetModuleAtSequence(module_sequence);
+    uint64_t base_address = module->base_address();
+    printf("Module%c%s%c%s%c%s%c%s%c0x%08" PRIx64 "%c0x%08" PRIx64 "%c%d\n",
+           kOutputSeparator,
+           StripSeparator(PathnameStripper::File(module->code_file())).c_str(),
+           kOutputSeparator, StripSeparator(module->version()).c_str(),
+           kOutputSeparator,
+           StripSeparator(PathnameStripper::File(module->debug_file())).c_str(),
+           kOutputSeparator,
+           StripSeparator(module->debug_identifier()).c_str(),
+           kOutputSeparator, base_address,
+           kOutputSeparator, base_address + module->size() - 1,
+           kOutputSeparator,
+           main_module != NULL && base_address == main_address ? 1 : 0);
+  }
+}
+
+}  // namespace
+
+void PrintProcessState(const ProcessState& process_state,
+                       bool output_stack_contents,
+                       SourceLineResolverInterface* resolver) {
+  // Print OS and CPU information.
+  string cpu = process_state.system_info()->cpu;
+  string cpu_info = process_state.system_info()->cpu_info;
+  printf("Operating system: %s\n", process_state.system_info()->os.c_str());
+  printf("                  %s\n",
+         process_state.system_info()->os_version.c_str());
+  printf("CPU: %s\n", cpu.c_str());
+  if (!cpu_info.empty()) {
+    // This field is optional.
+    printf("     %s\n", cpu_info.c_str());
+  }
+  printf("     %d CPU%s\n",
+         process_state.system_info()->cpu_count,
+         process_state.system_info()->cpu_count != 1 ? "s" : "");
+  printf("\n");
+
+  // Print GPU information
+  string gl_version = process_state.system_info()->gl_version;
+  string gl_vendor = process_state.system_info()->gl_vendor;
+  string gl_renderer = process_state.system_info()->gl_renderer;
+  printf("GPU:");
+  if (!gl_version.empty() || !gl_vendor.empty() || !gl_renderer.empty()) {
+    printf(" %s\n", gl_version.c_str());
+    printf("     %s\n", gl_vendor.c_str());
+    printf("     %s\n", gl_renderer.c_str());
+  } else {
+    printf(" UNKNOWN\n");
+  }
+  printf("\n");
+
+  // Print crash information.
+  if (process_state.crashed()) {
+    printf("Crash reason:  %s\n", process_state.crash_reason().c_str());
+    printf("Crash address: 0x%" PRIx64 "\n", process_state.crash_address());
+  } else {
+    printf("No crash\n");
+  }
+
+  string assertion = process_state.assertion();
+  if (!assertion.empty()) {
+    printf("Assertion: %s\n", assertion.c_str());
+  }
+
+  // Compute process uptime if the process creation and crash times are
+  // available in the dump.
+  if (process_state.time_date_stamp() != 0 &&
+      process_state.process_create_time() != 0 &&
+      process_state.time_date_stamp() >= process_state.process_create_time()) {
+    printf("Process uptime: %d seconds\n",
+           process_state.time_date_stamp() -
+               process_state.process_create_time());
+  } else {
+    printf("Process uptime: not available\n");
+  }
+
+  // If the thread that requested the dump is known, print it first.
+  int requesting_thread = process_state.requesting_thread();
+  if (requesting_thread != -1) {
+    printf("\n");
+    printf("Thread %d (%s)\n",
+          requesting_thread,
+          process_state.crashed() ? "crashed" :
+                                    "requested dump, did not crash");
+    PrintStack(process_state.threads()->at(requesting_thread), cpu,
+               output_stack_contents,
+               process_state.thread_memory_regions()->at(requesting_thread),
+               process_state.modules(), resolver);
+  }
+
+  // Print all of the threads in the dump.
+  int thread_count = process_state.threads()->size();
+  for (int thread_index = 0; thread_index < thread_count; ++thread_index) {
+    if (thread_index != requesting_thread) {
+      // Don't print the crash thread again, it was already printed.
+      printf("\n");
+      printf("Thread %d\n", thread_index);
+      PrintStack(process_state.threads()->at(thread_index), cpu,
+                 output_stack_contents,
+                 process_state.thread_memory_regions()->at(thread_index),
+                 process_state.modules(), resolver);
+    }
+  }
+
+  PrintModules(process_state.modules(),
+               process_state.modules_without_symbols(),
+               process_state.modules_with_corrupt_symbols());
+}
+
+void PrintProcessStateMachineReadable(const ProcessState& process_state) {
+  // Print OS and CPU information.
+  // OS|{OS Name}|{OS Version}
+  // CPU|{CPU Name}|{CPU Info}|{Number of CPUs}
+  // GPU|{GPU version}|{GPU vendor}|{GPU renderer}
+  printf("OS%c%s%c%s\n", kOutputSeparator,
+         StripSeparator(process_state.system_info()->os).c_str(),
+         kOutputSeparator,
+         StripSeparator(process_state.system_info()->os_version).c_str());
+  printf("CPU%c%s%c%s%c%d\n", kOutputSeparator,
+         StripSeparator(process_state.system_info()->cpu).c_str(),
+         kOutputSeparator,
+         // this may be empty
+         StripSeparator(process_state.system_info()->cpu_info).c_str(),
+         kOutputSeparator,
+         process_state.system_info()->cpu_count);
+  printf("GPU%c%s%c%s%c%s\n", kOutputSeparator,
+         StripSeparator(process_state.system_info()->gl_version).c_str(),
+         kOutputSeparator,
+         StripSeparator(process_state.system_info()->gl_vendor).c_str(),
+         kOutputSeparator,
+         StripSeparator(process_state.system_info()->gl_renderer).c_str());
+
+  int requesting_thread = process_state.requesting_thread();
+
+  // Print crash information.
+  // Crash|{Crash Reason}|{Crash Address}|{Crashed Thread}
+  printf("Crash%c", kOutputSeparator);
+  if (process_state.crashed()) {
+    printf("%s%c0x%" PRIx64 "%c",
+           StripSeparator(process_state.crash_reason()).c_str(),
+           kOutputSeparator, process_state.crash_address(), kOutputSeparator);
+  } else {
+    // print assertion info, if available, in place of crash reason,
+    // instead of the unhelpful "No crash"
+    string assertion = process_state.assertion();
+    if (!assertion.empty()) {
+      printf("%s%c%c", StripSeparator(assertion).c_str(),
+             kOutputSeparator, kOutputSeparator);
+    } else {
+      printf("No crash%c%c", kOutputSeparator, kOutputSeparator);
+    }
+  }
+
+  if (requesting_thread != -1) {
+    printf("%d\n", requesting_thread);
+  } else {
+    printf("\n");
+  }
+
+  PrintModulesMachineReadable(process_state.modules());
+
+  // blank line to indicate start of threads
+  printf("\n");
+
+  // If the thread that requested the dump is known, print it first.
+  if (requesting_thread != -1) {
+    PrintStackMachineReadable(requesting_thread,
+                              process_state.threads()->at(requesting_thread));
+  }
+
+  // Print all of the threads in the dump.
+  int thread_count = process_state.threads()->size();
+  for (int thread_index = 0; thread_index < thread_count; ++thread_index) {
+    if (thread_index != requesting_thread) {
+      // Don't print the crash thread again, it was already printed.
+      PrintStackMachineReadable(thread_index,
+                                process_state.threads()->at(thread_index));
+    }
+  }
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalk_common.h b/src/processor/stackwalk_common.h
new file mode 100644
index 0000000..a74f7b6
--- /dev/null
+++ b/src/processor/stackwalk_common.h
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalk_common.cc: Module shared by the {micro,mini}dump_stackwalck
+// executables to print the content of dumps (w/ stack traces) on the console.
+
+
+#ifndef PROCESSOR_STACKWALK_COMMON_H__
+#define PROCESSOR_STACKWALK_COMMON_H__
+
+namespace google_breakpad {
+
+class ProcessState;
+class SourceLineResolverInterface;
+
+void PrintProcessStateMachineReadable(const ProcessState& process_state);
+void PrintProcessState(const ProcessState& process_state,
+                       bool output_stack_contents,
+                       SourceLineResolverInterface* resolver);
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STACKWALK_COMMON_H__
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc
new file mode 100644
index 0000000..4988ef1
--- /dev/null
+++ b/src/processor/stackwalker.cc
@@ -0,0 +1,333 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker.cc: Generic stackwalker.
+//
+// See stackwalker.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include "google_breakpad/processor/stackwalker.h"
+
+#include <assert.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/linked_ptr.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_ppc.h"
+#include "processor/stackwalker_ppc64.h"
+#include "processor/stackwalker_sparc.h"
+#include "processor/stackwalker_x86.h"
+#include "processor/stackwalker_amd64.h"
+#include "processor/stackwalker_arm.h"
+#include "processor/stackwalker_arm64.h"
+#include "processor/stackwalker_mips.h"
+
+namespace google_breakpad {
+
+const int Stackwalker::kRASearchWords = 40;
+
+// This default is just a sanity check: a large enough value
+// that allow capturing unbounded recursion traces, yet provide a
+// guardrail against stack walking bugs. The stack walking invariants
+// guarantee that the unwinding process is strictly monotonic and
+// practically bounded by the size of the stack memory range.
+uint32_t Stackwalker::max_frames_ = 1 << 20;  // 1M
+bool Stackwalker::max_frames_set_ = false;
+
+uint32_t Stackwalker::max_frames_scanned_ = 1 << 14;  // 16k
+
+Stackwalker::Stackwalker(const SystemInfo* system_info,
+                         MemoryRegion* memory,
+                         const CodeModules* modules,
+                         StackFrameSymbolizer* frame_symbolizer)
+    : system_info_(system_info),
+      memory_(memory),
+      modules_(modules),
+      unloaded_modules_(NULL),
+      frame_symbolizer_(frame_symbolizer) {
+  assert(frame_symbolizer_);
+}
+
+void InsertSpecialAttentionModule(
+    StackFrameSymbolizer::SymbolizerResult symbolizer_result,
+    const CodeModule* module,
+    vector<const CodeModule*>* modules) {
+  if (!module) {
+    return;
+  }
+  assert(symbolizer_result == StackFrameSymbolizer::kError ||
+         symbolizer_result == StackFrameSymbolizer::kWarningCorruptSymbols);
+  bool found = false;
+  vector<const CodeModule*>::iterator iter;
+  for (iter = modules->begin(); iter != modules->end(); ++iter) {
+    if (*iter == module) {
+      found = true;
+      break;
+    }
+  }
+  if (!found) {
+    BPLOG(INFO) << ((symbolizer_result == StackFrameSymbolizer::kError) ?
+                       "Couldn't load symbols for: " :
+                       "Detected corrupt symbols for: ")
+                << module->debug_file() << "|" << module->debug_identifier();
+    modules->push_back(module);
+  }
+}
+
+bool Stackwalker::Walk(
+    CallStack* stack,
+    vector<const CodeModule*>* modules_without_symbols,
+    vector<const CodeModule*>* modules_with_corrupt_symbols) {
+  BPLOG_IF(ERROR, !stack) << "Stackwalker::Walk requires |stack|";
+  assert(stack);
+  stack->Clear();
+
+  BPLOG_IF(ERROR, !modules_without_symbols) << "Stackwalker::Walk requires "
+                                            << "|modules_without_symbols|";
+  BPLOG_IF(ERROR, !modules_without_symbols) << "Stackwalker::Walk requires "
+                                            << "|modules_with_corrupt_symbols|";
+  assert(modules_without_symbols);
+  assert(modules_with_corrupt_symbols);
+
+  // Begin with the context frame, and keep getting callers until there are
+  // no more.
+
+  // Keep track of the number of scanned or otherwise dubious frames seen
+  // so far, as the caller may have set a limit.
+  uint32_t scanned_frames = 0;
+
+  // Take ownership of the pointer returned by GetContextFrame.
+  scoped_ptr<StackFrame> frame(GetContextFrame());
+
+  while (frame.get()) {
+    // frame already contains a good frame with properly set instruction and
+    // frame_pointer fields.  The frame structure comes from either the
+    // context frame (above) or a caller frame (below).
+
+    // Resolve the module information, if a module map was provided.
+    StackFrameSymbolizer::SymbolizerResult symbolizer_result =
+        frame_symbolizer_->FillSourceLineInfo(modules_, unloaded_modules_,
+                                              system_info_,
+                                              frame.get());
+    switch (symbolizer_result) {
+      case StackFrameSymbolizer::kInterrupt:
+        BPLOG(INFO) << "Stack walk is interrupted.";
+        return false;
+        break;
+      case StackFrameSymbolizer::kError:
+        InsertSpecialAttentionModule(symbolizer_result, frame->module,
+                                     modules_without_symbols);
+        break;
+      case StackFrameSymbolizer::kWarningCorruptSymbols:
+        InsertSpecialAttentionModule(symbolizer_result, frame->module,
+                                     modules_with_corrupt_symbols);
+        break;
+      case StackFrameSymbolizer::kNoError:
+        break;
+      default:
+        assert(false);
+        break;
+    }
+
+    // Keep track of the number of dubious frames so far.
+    switch (frame.get()->trust) {
+       case StackFrame::FRAME_TRUST_NONE:
+       case StackFrame::FRAME_TRUST_SCAN:
+       case StackFrame::FRAME_TRUST_CFI_SCAN:
+         scanned_frames++;
+         break;
+      default:
+        break;
+    }
+
+    // Add the frame to the call stack.  Relinquish the ownership claim
+    // over the frame, because the stack now owns it.
+    stack->frames_.push_back(frame.release());
+    if (stack->frames_.size() > max_frames_) {
+      // Only emit an error message in the case where the limit
+      // reached is the default limit, not set by the user.
+      if (!max_frames_set_)
+        BPLOG(ERROR) << "The stack is over " << max_frames_ << " frames.";
+      break;
+    }
+
+    // Get the next frame and take ownership.
+    bool stack_scan_allowed = scanned_frames < max_frames_scanned_;
+    frame.reset(GetCallerFrame(stack, stack_scan_allowed));
+  }
+
+  return true;
+}
+
+// static
+Stackwalker* Stackwalker::StackwalkerForCPU(
+    const SystemInfo* system_info,
+    DumpContext* context,
+    MemoryRegion* memory,
+    const CodeModules* modules,
+    const CodeModules* unloaded_modules,
+    StackFrameSymbolizer* frame_symbolizer) {
+  if (!context) {
+    BPLOG(ERROR) << "Can't choose a stackwalker implementation without context";
+    return NULL;
+  }
+
+  Stackwalker* cpu_stackwalker = NULL;
+
+  uint32_t cpu = context->GetContextCPU();
+  switch (cpu) {
+    case MD_CONTEXT_X86:
+      cpu_stackwalker = new StackwalkerX86(system_info,
+                                           context->GetContextX86(),
+                                           memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_PPC:
+      cpu_stackwalker = new StackwalkerPPC(system_info,
+                                           context->GetContextPPC(),
+                                           memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_PPC64:
+      cpu_stackwalker = new StackwalkerPPC64(system_info,
+                                             context->GetContextPPC64(),
+                                             memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_AMD64:
+      cpu_stackwalker = new StackwalkerAMD64(system_info,
+                                             context->GetContextAMD64(),
+                                             memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_SPARC:
+      cpu_stackwalker = new StackwalkerSPARC(system_info,
+                                             context->GetContextSPARC(),
+                                             memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_MIPS:
+    case MD_CONTEXT_MIPS64:
+      cpu_stackwalker = new StackwalkerMIPS(system_info,
+                                            context->GetContextMIPS(),
+                                            memory, modules, frame_symbolizer);
+      break;
+
+    case MD_CONTEXT_ARM:
+    {
+      int fp_register = -1;
+      if (system_info->os_short == "ios")
+        fp_register = MD_CONTEXT_ARM_REG_IOS_FP;
+      cpu_stackwalker = new StackwalkerARM(system_info,
+                                           context->GetContextARM(),
+                                           fp_register, memory, modules,
+                                           frame_symbolizer);
+      break;
+    }
+
+    case MD_CONTEXT_ARM64:
+      cpu_stackwalker = new StackwalkerARM64(system_info,
+                                             context->GetContextARM64(),
+                                             memory, modules,
+                                             frame_symbolizer);
+      break;
+  }
+
+  BPLOG_IF(ERROR, !cpu_stackwalker) << "Unknown CPU type " << HexString(cpu) <<
+                                       ", can't choose a stackwalker "
+                                       "implementation";
+  if (cpu_stackwalker) {
+    cpu_stackwalker->unloaded_modules_ = unloaded_modules;
+  }
+  return cpu_stackwalker;
+}
+
+// CONSIDER: check stack alignment?
+bool Stackwalker::TerminateWalk(uint64_t caller_ip,
+                                uint64_t caller_sp,
+                                uint64_t callee_sp,
+                                bool first_unwind) const {
+  // Treat an instruction address less than 4k as end-of-stack.
+  // (using InstructionAddressSeemsValid() here is very tempting,
+  // but we need to handle JITted code)
+  if (caller_ip < (1 << 12)) {
+    return true;
+  }
+
+  // NOTE: The stack address range is implicitly checked
+  //   when the stack memory is accessed.
+
+  // The stack pointer should monotonically increase. For first unwind
+  // we allow caller_sp == callee_sp to account for architectures where
+  // the return address is stored in a register (so it's possible to have
+  // leaf functions which don't move the stack pointer)
+  if (first_unwind ? (caller_sp < callee_sp) : (caller_sp <= callee_sp)) {
+    return true;
+  }
+
+  return false;
+}
+
+bool Stackwalker::InstructionAddressSeemsValid(uint64_t address) const {
+  StackFrame frame;
+  frame.instruction = address;
+  StackFrameSymbolizer::SymbolizerResult symbolizer_result =
+      frame_symbolizer_->FillSourceLineInfo(modules_, unloaded_modules_,
+                                            system_info_, &frame);
+
+  if (!frame.module) {
+    // not inside any loaded module
+    return false;
+  }
+
+  if (!frame_symbolizer_->HasImplementation()) {
+    // No valid implementation to symbolize stack frame, but the address is
+    // within a known module.
+    return true;
+  }
+
+  if (symbolizer_result != StackFrameSymbolizer::kNoError &&
+      symbolizer_result != StackFrameSymbolizer::kWarningCorruptSymbols) {
+    // Some error occurred during symbolization, but the address is within a
+    // known module
+    return true;
+  }
+
+  return !frame.function_name.empty();
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_address_list.cc b/src/processor/stackwalker_address_list.cc
new file mode 100644
index 0000000..e81fec2
--- /dev/null
+++ b/src/processor/stackwalker_address_list.cc
@@ -0,0 +1,92 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_address_list.cc: a pseudo stack walker.
+//
+// See stackwalker_address_list.h for documentation.
+//
+// Author: Chris Hamilton <chrisha@chromium.org>
+
+#include <assert.h>
+
+#include <vector>
+
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_address_list.h"
+
+namespace google_breakpad {
+
+StackwalkerAddressList::StackwalkerAddressList(
+    const uint64_t* frames,
+    size_t frame_count,
+    const CodeModules* modules,
+    StackFrameSymbolizer* frame_symbolizer)
+    : Stackwalker(NULL, NULL, modules, frame_symbolizer),
+      frames_(frames),
+      frame_count_(frame_count) {
+  assert(frames);
+  assert(frame_symbolizer);
+}
+
+StackFrame* StackwalkerAddressList::GetContextFrame() {
+  if (frame_count_ == 0)
+    return NULL;
+
+  StackFrame* frame = new StackFrame();
+  frame->instruction = frames_[0];
+  frame->trust = StackFrame::FRAME_TRUST_PREWALKED;
+  return frame;
+}
+
+StackFrame* StackwalkerAddressList::GetCallerFrame(const CallStack* stack,
+                                                   bool stack_scan_allowed) {
+  if (!stack) {
+    BPLOG(ERROR) << "Can't get caller frame without stack";
+    return NULL;
+  }
+
+  size_t frame_index = stack->frames()->size();
+
+  // There are no more frames to fetch.
+  if (frame_index >= frame_count_)
+    return NULL;
+
+  // All frames have the highest level of trust because they were
+  // explicitly provided.
+  StackFrame* frame = new StackFrame();
+  frame->instruction = frames_[frame_index];
+  frame->trust = StackFrame::FRAME_TRUST_PREWALKED;
+  return frame;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_address_list.h b/src/processor/stackwalker_address_list.h
new file mode 100644
index 0000000..0f8c989
--- /dev/null
+++ b/src/processor/stackwalker_address_list.h
@@ -0,0 +1,72 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_address_list.h: a pseudo stackwalker.
+//
+// Doesn't actually walk a stack, rather initializes a CallStack given an
+// explicit list of already walked return addresses.
+//
+// Author: Chris Hamilton <chrisha@chromium.org>
+
+#ifndef PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
+#define PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
+
+#include "common/basictypes.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerAddressList : public Stackwalker {
+ public:
+  // Initializes this stack walker with an explicit set of frame addresses.
+  // |modules| and |frame_symbolizer| are passed directly through to the base
+  // Stackwalker constructor.
+  StackwalkerAddressList(const uint64_t* frames,
+                         size_t frame_count,
+                         const CodeModules* modules,
+                         StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // Implementation of Stackwalker.
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  const uint64_t* frames_;
+  size_t frame_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(StackwalkerAddressList);
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
diff --git a/src/processor/stackwalker_address_list_unittest.cc b/src/processor/stackwalker_address_list_unittest.cc
new file mode 100644
index 0000000..b09137d
--- /dev/null
+++ b/src/processor/stackwalker_address_list_unittest.cc
@@ -0,0 +1,197 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_address_list_unittest.cc: Unit tests for the
+// StackwalkerAddressList class.
+//
+// Author: Chris Hamilton <chrisha@chromium.org>
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_address_list.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerAddressList;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::Return;
+using testing::SetArgumentPointee;
+
+#define arraysize(f) (sizeof(f) / sizeof(*f))
+
+// Addresses and sizes of a couple dummy modules.
+uint64_t kModule1Base = 0x40000000;
+uint64_t kModule1Size = 0x10000;
+uint64_t kModule2Base = 0x50000000;
+uint64_t kModule2Size = 0x10000;
+
+// A handful of addresses that lie within the modules above.
+const uint64_t kDummyFrames[] = {
+    0x50003000, 0x50002000, 0x50001000, 0x40002000, 0x40001000 };
+
+class StackwalkerAddressListTest : public testing::Test {
+ public:
+  StackwalkerAddressListTest()
+    : // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(kModule1Base, kModule1Size, "module1", "version1"),
+      module2(kModule2Base, kModule2Size, "module2", "version2") {
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char* buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, NULL, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  void CheckCallStack(const CallStack& call_stack) {
+    const std::vector<StackFrame*>* frames = call_stack.frames();
+    ASSERT_EQ(arraysize(kDummyFrames), frames->size());
+    for (size_t i = 0; i < arraysize(kDummyFrames); ++i) {
+      ASSERT_EQ(kDummyFrames[i], frames->at(i)->instruction);
+      ASSERT_EQ(StackFrame::FRAME_TRUST_PREWALKED, frames->at(i)->trust);
+    }
+    ASSERT_EQ(static_cast<const CodeModule*>(&module2), frames->at(0)->module);
+    ASSERT_EQ(static_cast<const CodeModule*>(&module2), frames->at(1)->module);
+    ASSERT_EQ(static_cast<const CodeModule*>(&module2), frames->at(2)->module);
+    ASSERT_EQ(static_cast<const CodeModule*>(&module1), frames->at(3)->module);
+    ASSERT_EQ(static_cast<const CodeModule*>(&module1), frames->at(4)->module);
+  }
+
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+};
+
+TEST_F(StackwalkerAddressListTest, ScanWithoutSymbols) {
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAddressList walker(kDummyFrames, arraysize(kDummyFrames),
+                         &modules, &frame_symbolizer);
+
+  CallStack call_stack;
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+
+  // The stack starts in module2, so we expect that to be the first module
+  // found without symbols.
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module2", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module1", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0u, modules_with_corrupt_symbols.size());
+
+  ASSERT_NO_FATAL_FAILURE(CheckCallStack(call_stack));
+}
+
+TEST_F(StackwalkerAddressListTest, ScanWithSymbols) {
+  // File    : FILE number(dex) name
+  // Function: FUNC address(hex) size(hex) parameter_size(hex) name
+  // Line    : address(hex) size(hex) line(dec) filenum(dec)
+  SetModuleSymbols(&module2,
+                   "FILE 1 module2.cc\n"
+                   "FUNC 3000 100 10 mod2func3\n"
+                   "3000 10 1  1\n"
+                   "FUNC 2000 200 10 mod2func2\n"
+                   "FUNC 1000 300 10 mod2func1\n");
+  SetModuleSymbols(&module1,
+                   "FUNC 2000 200 10 mod1func2\n"
+                   "FUNC 1000 300 10 mod1func1\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAddressList walker(kDummyFrames, arraysize(kDummyFrames),
+                         &modules, &frame_symbolizer);
+
+  CallStack call_stack;
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+
+  ASSERT_EQ(0u, modules_without_symbols.size());
+  ASSERT_EQ(0u, modules_with_corrupt_symbols.size());
+
+  ASSERT_NO_FATAL_FAILURE(CheckCallStack(call_stack));
+
+  const std::vector<StackFrame*>* frames = call_stack.frames();
+
+  // We have full file/line information for the first function call.
+  ASSERT_EQ("mod2func3", frames->at(0)->function_name);
+  ASSERT_EQ(0x50003000u, frames->at(0)->function_base);
+  ASSERT_EQ("module2.cc", frames->at(0)->source_file_name);
+  ASSERT_EQ(1, frames->at(0)->source_line);
+  ASSERT_EQ(0x50003000u, frames->at(0)->source_line_base);
+
+  ASSERT_EQ("mod2func2", frames->at(1)->function_name);
+  ASSERT_EQ(0x50002000u, frames->at(1)->function_base);
+
+  ASSERT_EQ("mod2func1", frames->at(2)->function_name);
+  ASSERT_EQ(0x50001000u, frames->at(2)->function_base);
+
+  ASSERT_EQ("mod1func2", frames->at(3)->function_name);
+  ASSERT_EQ(0x40002000u, frames->at(3)->function_base);
+
+  ASSERT_EQ("mod1func1", frames->at(4)->function_name);
+  ASSERT_EQ(0x40001000u, frames->at(4)->function_base);
+}
diff --git a/src/processor/stackwalker_amd64.cc b/src/processor/stackwalker_amd64.cc
new file mode 100644
index 0000000..f346a4e
--- /dev/null
+++ b/src/processor/stackwalker_amd64.cc
@@ -0,0 +1,331 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_amd64.cc: amd64-specific stackwalker.
+//
+// See stackwalker_amd64.h for documentation.
+//
+// Author: Mark Mentovai, Ted Mielczarek
+
+#include <assert.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_amd64.h"
+
+namespace google_breakpad {
+
+
+const StackwalkerAMD64::CFIWalker::RegisterSet
+StackwalkerAMD64::cfi_register_map_[] = {
+  // It may seem like $rip and $rsp are callee-saves, because the callee is
+  // responsible for having them restored upon return. But the callee_saves
+  // flags here really means that the walker should assume they're
+  // unchanged if the CFI doesn't mention them --- clearly wrong for $rip
+  // and $rsp.
+  { "$rax", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_RAX, &MDRawContextAMD64::rax },
+  { "$rdx", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_RDX, &MDRawContextAMD64::rdx },
+  { "$rcx", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_RCX, &MDRawContextAMD64::rcx },
+  { "$rbx", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_RBX, &MDRawContextAMD64::rbx },
+  { "$rsi", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_RSI, &MDRawContextAMD64::rsi },
+  { "$rdi", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_RDI, &MDRawContextAMD64::rdi },
+  { "$rbp", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_RBP, &MDRawContextAMD64::rbp },
+  { "$rsp", ".cfa", false,
+    StackFrameAMD64::CONTEXT_VALID_RSP, &MDRawContextAMD64::rsp },
+  { "$r8", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_R8,  &MDRawContextAMD64::r8 },
+  { "$r9", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_R9,  &MDRawContextAMD64::r9 },
+  { "$r10", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_R10, &MDRawContextAMD64::r10 },
+  { "$r11", NULL, false,
+    StackFrameAMD64::CONTEXT_VALID_R11, &MDRawContextAMD64::r11 },
+  { "$r12", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_R12, &MDRawContextAMD64::r12 },
+  { "$r13", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_R13, &MDRawContextAMD64::r13 },
+  { "$r14", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_R14, &MDRawContextAMD64::r14 },
+  { "$r15", NULL, true,
+    StackFrameAMD64::CONTEXT_VALID_R15, &MDRawContextAMD64::r15 },
+  { "$rip", ".ra", false,
+    StackFrameAMD64::CONTEXT_VALID_RIP, &MDRawContextAMD64::rip },
+};
+
+StackwalkerAMD64::StackwalkerAMD64(const SystemInfo* system_info,
+                                   const MDRawContextAMD64* context,
+                                   MemoryRegion* memory,
+                                   const CodeModules* modules,
+                                   StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context),
+      cfi_walker_(cfi_register_map_,
+                  (sizeof(cfi_register_map_) / sizeof(cfi_register_map_[0]))) {
+}
+
+uint64_t StackFrameAMD64::ReturnAddress() const {
+  assert(context_validity & StackFrameAMD64::CONTEXT_VALID_RIP);
+  return context.rip;
+}
+
+StackFrame* StackwalkerAMD64::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFrameAMD64* frame = new StackFrameAMD64();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFrameAMD64::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.rip;
+
+  return frame;
+}
+
+StackFrameAMD64* StackwalkerAMD64::GetCallerByCFIFrameInfo(
+    const vector<StackFrame*>& frames,
+    CFIFrameInfo* cfi_frame_info) {
+  StackFrameAMD64* last_frame = static_cast<StackFrameAMD64*>(frames.back());
+
+  scoped_ptr<StackFrameAMD64> frame(new StackFrameAMD64());
+  if (!cfi_walker_
+      .FindCallerRegisters(*memory_, *cfi_frame_info,
+                           last_frame->context, last_frame->context_validity,
+                           &frame->context, &frame->context_validity))
+    return NULL;
+
+  // Make sure we recovered all the essentials.
+  static const int essentials = (StackFrameAMD64::CONTEXT_VALID_RIP
+                                 | StackFrameAMD64::CONTEXT_VALID_RSP);
+  if ((frame->context_validity & essentials) != essentials)
+    return NULL;
+
+  if (!frame->context.rip || !frame->context.rsp) {
+    BPLOG(ERROR) << "invalid rip/rsp";
+    return NULL;
+  }
+
+  frame->trust = StackFrame::FRAME_TRUST_CFI;
+  return frame.release();
+}
+
+// Returns true if `ptr` is not in x86-64 canonical form.
+// https://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details
+static bool is_non_canonical(uint64_t ptr) {
+  return ptr > 0x7FFFFFFFFFFF && ptr < 0xFFFF800000000000;
+}
+
+StackFrameAMD64* StackwalkerAMD64::GetCallerByFramePointerRecovery(
+    const vector<StackFrame*>& frames) {
+  StackFrameAMD64* last_frame = static_cast<StackFrameAMD64*>(frames.back());
+  uint64_t last_rbp = last_frame->context.rbp;
+
+  // Assume the presence of a frame pointer. This is not mandated by the
+  // AMD64 ABI, c.f. section 3.2.2 footnote 7, though it is typical for
+  // compilers to still preserve the frame pointer and not treat %rbp as a
+  // general purpose register.
+  //
+  // With this assumption, the CALL instruction pushes the return address
+  // onto the stack and sets %rip to the procedure to enter. The procedure
+  // then establishes the stack frame with a prologue that PUSHes the current
+  // %rbp onto the stack, MOVes the current %rsp to %rbp, and then allocates
+  // space for any local variables. Using this procedure linking information,
+  // it is possible to locate frame information for the callee:
+  //
+  // %caller_rsp = *(%callee_rbp + 16)
+  // %caller_rip = *(%callee_rbp + 8)
+  // %caller_rbp = *(%callee_rbp)
+
+  // If rbp is not 8-byte aligned it can't be a frame pointer.
+  if (last_rbp % 8 != 0) {
+    return NULL;
+  }
+
+  uint64_t caller_rip, caller_rbp;
+  if (memory_->GetMemoryAtAddress(last_rbp + 8, &caller_rip) &&
+      memory_->GetMemoryAtAddress(last_rbp, &caller_rbp)) {
+    uint64_t caller_rsp = last_rbp + 16;
+
+    // If the recovered rip is not a canonical address it can't be
+    // the return address, so rbp must not have been a frame pointer.
+    if (is_non_canonical(caller_rip)) {
+      return NULL;
+    }
+
+    // Check that rbp is within the right frame
+    if (caller_rsp <= last_rbp || caller_rbp < caller_rsp) {
+      return NULL;
+    }
+
+    // Sanity check that resulting rbp is still inside stack memory.
+    uint64_t unused;
+    if (!memory_->GetMemoryAtAddress(caller_rbp, &unused)) {
+      return NULL;
+    }
+
+    StackFrameAMD64* frame = new StackFrameAMD64();
+    frame->trust = StackFrame::FRAME_TRUST_FP;
+    frame->context = last_frame->context;
+    frame->context.rip = caller_rip;
+    frame->context.rsp = caller_rsp;
+    frame->context.rbp = caller_rbp;
+    frame->context_validity = StackFrameAMD64::CONTEXT_VALID_RIP |
+                              StackFrameAMD64::CONTEXT_VALID_RSP |
+                              StackFrameAMD64::CONTEXT_VALID_RBP;
+    return frame;
+  }
+
+  return NULL;
+}
+
+StackFrameAMD64* StackwalkerAMD64::GetCallerByStackScan(
+    const vector<StackFrame*>& frames) {
+  StackFrameAMD64* last_frame = static_cast<StackFrameAMD64*>(frames.back());
+  uint64_t last_rsp = last_frame->context.rsp;
+  uint64_t caller_rip_address, caller_rip;
+
+  if (!ScanForReturnAddress(last_rsp, &caller_rip_address, &caller_rip,
+                            frames.size() == 1 /* is_context_frame */)) {
+    // No plausible return address was found.
+    return NULL;
+  }
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameAMD64* frame = new StackFrameAMD64();
+
+  frame->trust = StackFrame::FRAME_TRUST_SCAN;
+  frame->context = last_frame->context;
+  frame->context.rip = caller_rip;
+  // The caller's %rsp is directly underneath the return address pushed by
+  // the call.
+  frame->context.rsp = caller_rip_address + 8;
+  frame->context_validity = StackFrameAMD64::CONTEXT_VALID_RIP |
+                            StackFrameAMD64::CONTEXT_VALID_RSP;
+
+  // Other unwinders give up if they don't have an %rbp value, so see if we
+  // can pass some plausible value on.
+  if (last_frame->context_validity & StackFrameAMD64::CONTEXT_VALID_RBP) {
+    // Functions typically push their caller's %rbp immediately upon entry,
+    // and then set %rbp to point to that. So if the callee's %rbp is
+    // pointing to the first word below the alleged return address, presume
+    // that the caller's %rbp is saved there.
+    if (caller_rip_address - 8 == last_frame->context.rbp) {
+      uint64_t caller_rbp = 0;
+      if (memory_->GetMemoryAtAddress(last_frame->context.rbp, &caller_rbp) &&
+          caller_rbp > caller_rip_address) {
+        frame->context.rbp = caller_rbp;
+        frame->context_validity |= StackFrameAMD64::CONTEXT_VALID_RBP;
+      }
+    } else if (last_frame->context.rbp >= caller_rip_address + 8) {
+      // If the callee's %rbp is plausible as a value for the caller's
+      // %rbp, presume that the callee left it unchanged.
+      frame->context.rbp = last_frame->context.rbp;
+      frame->context_validity |= StackFrameAMD64::CONTEXT_VALID_RBP;
+    }
+  }
+
+  return frame;
+}
+
+StackFrame* StackwalkerAMD64::GetCallerFrame(const CallStack* stack,
+                                             bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  const vector<StackFrame*>& frames = *stack->frames();
+  StackFrameAMD64* last_frame = static_cast<StackFrameAMD64*>(frames.back());
+  scoped_ptr<StackFrameAMD64> new_frame;
+
+  // If we have DWARF CFI information, use it.
+  scoped_ptr<CFIFrameInfo> cfi_frame_info(
+      frame_symbolizer_->FindCFIFrameInfo(last_frame));
+  if (cfi_frame_info.get())
+    new_frame.reset(GetCallerByCFIFrameInfo(frames, cfi_frame_info.get()));
+
+  // If CFI was not available or failed, try using frame pointer recovery.
+  if (!new_frame.get()) {
+    new_frame.reset(GetCallerByFramePointerRecovery(frames));
+  }
+
+  // If all else fails, fall back to stack scanning.
+  if (stack_scan_allowed && !new_frame.get()) {
+    new_frame.reset(GetCallerByStackScan(frames));
+  }
+
+  // If nothing worked, tell the caller.
+  if (!new_frame.get())
+    return NULL;
+
+  if (system_info_->os_short == "nacl") {
+    // Apply constraints from Native Client's x86-64 sandbox.  These
+    // registers have the 4GB-aligned sandbox base address (from r15)
+    // added to them, and only the bottom 32 bits are relevant for
+    // stack walking.
+    new_frame->context.rip = static_cast<uint32_t>(new_frame->context.rip);
+    new_frame->context.rsp = static_cast<uint32_t>(new_frame->context.rsp);
+    new_frame->context.rbp = static_cast<uint32_t>(new_frame->context.rbp);
+  }
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(new_frame->context.rip, new_frame->context.rsp,
+                    last_frame->context.rsp, frames.size() == 1)) {
+    return NULL;
+  }
+
+  // new_frame->context.rip is the return address, which is the instruction
+  // after the CALL that caused us to arrive at the callee. Set
+  // new_frame->instruction to one less than that, so it points within the
+  // CALL instruction. See StackFrame::instruction for details, and
+  // StackFrameAMD64::ReturnAddress.
+  new_frame->instruction = new_frame->context.rip - 1;
+
+  return new_frame.release();
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_amd64.h b/src/processor/stackwalker_amd64.h
new file mode 100644
index 0000000..5e1af6f
--- /dev/null
+++ b/src/processor/stackwalker_amd64.h
@@ -0,0 +1,108 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_amd64.h: amd64-specific stackwalker.
+//
+// Provides stack frames given amd64 register context and a memory region
+// corresponding to a amd64 stack.
+//
+// Author: Mark Mentovai, Ted Mielczarek
+
+
+#ifndef PROCESSOR_STACKWALKER_AMD64_H__
+#define PROCESSOR_STACKWALKER_AMD64_H__
+
+#include <vector>
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/cfi_frame_info.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerAMD64 : public Stackwalker {
+ public:
+  // context is a amd64 context object that gives access to amd64-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerAMD64(const SystemInfo* system_info,
+                   const MDRawContextAMD64* context,
+                   MemoryRegion* memory,
+                   const CodeModules* modules,
+                   StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // A STACK CFI-driven frame walker for the AMD64
+  typedef SimpleCFIWalker<uint64_t, MDRawContextAMD64> CFIWalker;
+
+  // Implementation of Stackwalker, using amd64 context (stack pointer in %rsp,
+  // stack base in %rbp) and stack conventions (saved stack pointer at 0(%rbp))
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Use cfi_frame_info (derived from STACK CFI records) to construct
+  // the frame that called frames.back(). The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameAMD64* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
+                                           CFIFrameInfo* cfi_frame_info);
+
+  // Assumes a traditional frame layout where the frame pointer has not been
+  // omitted. The expectation is that caller's %rbp is pushed to the stack
+  // after the return address of the callee, and that the callee's %rsp can
+  // be used to find the pushed %rbp.
+  // Caller owns the returned frame object. Returns NULL on failure.
+  StackFrameAMD64* GetCallerByFramePointerRecovery(
+      const vector<StackFrame*>& frames);
+
+  // Scan the stack for plausible return addresses. The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameAMD64* GetCallerByStackScan(const vector<StackFrame*>& frames);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextAMD64* context_;
+
+  // Our register map, for cfi_walker_.
+  static const CFIWalker::RegisterSet cfi_register_map_[];
+
+  // Our CFI frame walker.
+  const CFIWalker cfi_walker_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_AMD64_H__
diff --git a/src/processor/stackwalker_amd64_unittest.cc b/src/processor/stackwalker_amd64_unittest.cc
new file mode 100644
index 0000000..a77015a
--- /dev/null
+++ b/src/processor/stackwalker_amd64_unittest.cc
@@ -0,0 +1,934 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stackwalker_amd64_unittest.cc: Unit tests for StackwalkerAMD64 class.
+
+#include <string.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_amd64.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameAMD64;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerAMD64;
+using google_breakpad::SystemInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::DoAll;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerAMD64Fixture {
+ public:
+  StackwalkerAMD64Fixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x00007400c0000000ULL, 0x10000, "module1", "version1"),
+      module2(0x00007500b0000000ULL, 0x10000, "module2", "version2") {
+    // Identify the system as a Linux system.
+    system_info.os = "Linux";
+    system_info.os_short = "linux";
+    system_info.os_version = "Horrendous Hippo";
+    system_info.cpu = "x86";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char *buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextAMD64 *raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); i++)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextAMD64 raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class GetContextFrame: public StackwalkerAMD64Fixture, public Test { };
+
+class SanityCheck: public StackwalkerAMD64Fixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  // There should be no references to the stack in this walk: we don't
+  // provide any call frame information, so trying to reconstruct the
+  // context frame's caller should fail. So there's no need for us to
+  // provide stack contents.
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = 0x8000000080000000ULL;
+
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  // This should succeed even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_GE(1U, frames->size());
+  StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+TEST_F(GetContextFrame, Simple) {
+  // There should be no references to the stack in this walk: we don't
+  // provide any call frame information, so trying to reconstruct the
+  // context frame's caller should fail. So there's no need for us to
+  // provide stack contents.
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = 0x8000000080000000ULL;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_GE(1U, frames->size());
+  StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = 0x8000000080000000ULL;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, NULL, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_GE(1U, frames->size());
+  StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerAMD64Fixture, public Test { };
+
+TEST_F(GetCallerFrame, ScanWithoutSymbols) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  // Force scanning through three frames to ensure that the
+  // stack pointer is set properly in scan-recovered frames.
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address1 = 0x00007500b0000100ULL;
+  uint64_t return_address2 = 0x00007500b0000900ULL;
+  Label frame1_sp, frame2_sp, frame1_rbp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // junk that's not
+    .D64(0x00007500d0000000ULL)         // a return address
+
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // more junk
+    .D64(0x00007500d0000000ULL)
+
+    .Mark(&frame1_rbp)
+    .D64(stack_section.start())         // This is in the right place to be
+                                        // a saved rbp, but it's bogus, so
+                                        // we shouldn't report it.
+
+    .D64(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame1_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP |
+             StackFrameAMD64::CONTEXT_VALID_RBP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.rip);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.rsp);
+  EXPECT_EQ(frame1_rbp.Value(), frame1->context.rbp);
+
+  StackFrameAMD64 *frame2 = static_cast<StackFrameAMD64*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame2->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.rip);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.rsp);
+}
+
+TEST_F(GetCallerFrame, ScanWithFunctionSymbols) {
+  // During stack scanning, if a potential return address
+  // is located within a loaded module that has symbols,
+  // it is only considered a valid return address if it
+  // lies within a function's bounds.
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address = 0x00007500b0000110ULL;
+  Label frame1_sp, frame1_rbp;
+
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // junk that's not
+    .D64(0x00007500b0000000ULL)         // a return address
+
+    .D64(0x00007400c0001000ULL)         // a couple of plausible addresses
+    .D64(0x00007500b000aaaaULL)         // that are not within functions
+
+    .D64(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0)                      // end of stack
+    .Mark(&frame1_rbp);
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame1_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 platypus\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 echidna\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ("platypus", frame0->function_name);
+  EXPECT_EQ(0x00007400c0000100ULL, frame0->function_base);
+
+  StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP |
+             StackFrameAMD64::CONTEXT_VALID_RBP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address, frame1->context.rip);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.rsp);
+  EXPECT_EQ(frame1_rbp.Value(), frame1->context.rbp);
+  EXPECT_EQ("echidna", frame1->function_name);
+  EXPECT_EQ(0x00007500b0000100ULL, frame1->function_base);
+}
+
+// StackwalkerAMD64::GetCallerByFramePointerRecovery should never return an
+// instruction pointer of 0 because IP of 0 is an end of stack marker and the
+// stack walk may be terminated prematurely.  Instead it should return NULL
+// so that the stack walking code can proceed to stack scanning.
+TEST_F(GetCallerFrame, GetCallerByFramePointerRecovery) {
+  MockCodeModule user32_dll(0x00007ff9cb8a0000ULL, 0x14E000, "user32.dll",
+                            "version1");
+  SetModuleSymbols(&user32_dll,  // user32.dll
+                   "PUBLIC fa60 0 DispatchMessageWorker\n"
+                   "PUBLIC fee0 0 UserCallWinProcCheckWow\n"
+                   "PUBLIC 1cdb0 0 _fnHkINLPMSG\n"
+                   "STACK CFI INIT fa60 340 .cfa: $rsp .ra: .cfa 8 - ^\n"
+                   "STACK CFI fa60 .cfa: $rsp 128 +\n"
+                   "STACK CFI INIT fee0 49f .cfa: $rsp .ra: .cfa 8 - ^\n"
+                   "STACK CFI fee0 .cfa: $rsp 240 +\n"
+                   "STACK CFI INIT 1cdb0 9f .cfa: $rsp .ra: .cfa 8 - ^\n"
+                   "STACK CFI 1cdb0 .cfa: $rsp 80 +\n");
+
+  // Create some modules with some stock debugging information.
+  MockCodeModules local_modules;
+  local_modules.Add(&user32_dll);
+
+  Label frame0_rsp;
+  Label frame0_rbp;
+  Label frame1_rsp;
+  Label frame2_rsp;
+
+  stack_section.start() = 0x00000099abf0f238ULL;
+  stack_section
+    .Mark(&frame0_rsp)
+    .D64(0x00007ff9cb8b00dcULL)
+    .Mark(&frame1_rsp)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000001ULL)
+    .D64(0x00000099abf0f308ULL)
+    .D64(0x00007ff9cb8bce3aULL)  // Stack residue from execution of
+                                 // user32!_fnHkINLPMSG+0x8a
+    .D64(0x000000000000c2e0ULL)
+    .D64(0x00000099abf0f328ULL)
+    .D64(0x0000000100000001ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x00007ff9ccad53e4ULL)
+    .D64(0x0000000000000048ULL)
+    .D64(0x0000000000000001ULL)
+    .D64(0x00000099abf0f5e0ULL)
+    .D64(0x00000099b61f7388ULL)
+    .D64(0x0000000000000030ULL)
+    .D64(0xffffff66540f0a1fULL)
+    .D64(0xffffff6649e08c77ULL)
+    .D64(0x00007ff9cb8affb4ULL)  // Return address in
+                                 // user32!UserCallWinProcCheckWow+0xd4
+    .D64(0x0000000000000000ULL)
+    .D64(0x00000099abf0f368ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x0000000000000000ULL)
+    .D64(0x00000099a8150fd8ULL)
+    .D64(0x00000099abf0f3e8ULL)
+    .D64(0x00007ff9cb8afc07ULL)  // Return address in
+                                 // user32!DispatchMessageWorker+0x1a7
+    .Mark(&frame2_rsp)
+    .Append(256, 0)
+    .Mark(&frame0_rbp)           // The following are expected by
+                                 // GetCallerByFramePointerRecovery.
+    .D64(0xfffffffffffffffeULL)  // %caller_rbp = *(%callee_rbp)
+    .D64(0x0000000000000000ULL)  // %caller_rip = *(%callee_rbp + 8)
+    .D64(0x00000099a3e31040ULL)  // %caller_rsp = *(%callee_rbp + 16)
+    .Append(256, 0);
+
+  RegionFromSection();
+  raw_context.rip = 0x00000099a8150fd8ULL;  // IP in context frame is guarbage
+  raw_context.rsp = frame0_rsp.Value();
+  raw_context.rbp = frame0_rbp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region,
+                          &local_modules, &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+
+  ASSERT_EQ(3U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame->trust);
+    ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame->context_validity);
+    EXPECT_EQ("", frame->function_name);
+    EXPECT_EQ(0x00000099a8150fd8ULL, frame->instruction);
+    EXPECT_EQ(0x00000099a8150fd8ULL, frame->context.rip);
+    EXPECT_EQ(frame0_rsp.Value(), frame->context.rsp);
+    EXPECT_EQ(frame0_rbp.Value(), frame->context.rbp);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame->trust);
+    ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+               StackFrameAMD64::CONTEXT_VALID_RSP |
+               StackFrameAMD64::CONTEXT_VALID_RBP),
+              frame->context_validity);
+    EXPECT_EQ("UserCallWinProcCheckWow", frame->function_name);
+    EXPECT_EQ(140710838468828ULL, frame->instruction + 1);
+    EXPECT_EQ(140710838468828ULL, frame->context.rip);
+    EXPECT_EQ(frame1_rsp.Value(), frame->context.rsp);
+    EXPECT_EQ(&user32_dll, frame->module);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameAMD64 *frame = static_cast<StackFrameAMD64*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame->trust);
+    ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+               StackFrameAMD64::CONTEXT_VALID_RSP |
+               StackFrameAMD64::CONTEXT_VALID_RBP),
+              frame->context_validity);
+    EXPECT_EQ("DispatchMessageWorker", frame->function_name);
+    EXPECT_EQ(140710838467591ULL, frame->instruction + 1);
+    EXPECT_EQ(140710838467591ULL, frame->context.rip);
+    EXPECT_EQ(frame2_rsp.Value(), frame->context.rsp);
+    EXPECT_EQ(&user32_dll, frame->module);
+  }
+}
+
+// Don't use frame pointer recovery if %rbp is not 8-byte aligned, which
+// indicates that it's not being used as a frame pointer.
+TEST_F(GetCallerFrame, FramePointerNotAligned) {
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address1 = 0x00007500b0000100ULL;
+  Label frame0_rbp, not_frame1_rbp, frame1_sp;
+  stack_section
+    // frame 0
+    .Align(8, 0)
+    .Append(2, 0)                       // mis-align the frame pointer
+    .Mark(&frame0_rbp)
+    .D64(not_frame1_rbp)                // not the previous frame pointer
+    .D64(0x00007500b0000a00ULL)         // plausible but wrong return address
+    .Align(8, 0)
+    .D64(return_address1)               // return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Mark(&not_frame1_rbp)
+    .Append(32, 0);                     // end of stack
+
+
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame0_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.rip);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.rsp);
+}
+
+// Don't use frame pointer recovery if the recovered %rip is not
+// a canonical x86-64 address.
+TEST_F(GetCallerFrame, NonCanonicalInstructionPointerFromFramePointer) {
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address1 = 0x00007500b0000100ULL;
+  Label frame0_rbp, frame1_sp, not_frame1_bp;
+  stack_section
+    // frame 0
+    .Align(8, 0)
+    .Mark(&frame0_rbp)
+    .D64(not_frame1_bp)                 // some junk on the stack
+    .D64(0xDADADADADADADADA)            // not the return address
+    .D64(return_address1)               // return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)
+    .Mark(&not_frame1_bp)
+    .Append(32, 0);                     // end of stack
+
+
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame0_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.rip);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.rsp);
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address1 = 0x00007500b0000100ULL;
+  uint64_t return_address2 = 0x00007500b0000900ULL;
+  Label frame1_sp, frame2_sp, frame1_rbp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // junk that's not
+    .D64(0x00007500d0000000ULL)         // a return address
+
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // more junk
+    .D64(0x00007500d0000000ULL)
+
+    .Mark(&frame1_rbp)
+    .D64(stack_section.start())         // This is in the right place to be
+                                        // a saved rbp, but it's bogus, so
+                                        // we shouldn't report it.
+
+    .D64(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame1_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+}
+
+TEST_F(GetCallerFrame, CallerPushedRBP) {
+  // Functions typically push their %rbp upon entry and set %rbp pointing
+  // there.  If stackwalking finds a plausible address for the next frame's
+  // %rbp directly below the return address, assume that it is indeed the
+  // next frame's %rbp.
+  stack_section.start() = 0x8000000080000000ULL;
+  uint64_t return_address = 0x00007500b0000110ULL;
+  Label frame0_rbp, frame1_sp, frame1_rbp;
+
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x00007400b0000000ULL)         // junk that's not
+    .D64(0x00007500b0000000ULL)         // a return address
+
+    .D64(0x00007400c0001000ULL)         // a couple of plausible addresses
+    .D64(0x00007500b000aaaaULL)         // that are not within functions
+
+    .Mark(&frame0_rbp)
+    .D64(frame1_rbp)                    // caller-pushed %rbp
+    .D64(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0)                      // body of frame1
+    .Mark(&frame1_rbp)                  // end of stack
+    .D64(0);
+  RegionFromSection();
+
+  raw_context.rip = 0x00007400c0000200ULL;
+  raw_context.rbp = frame0_rbp.Value();
+  raw_context.rsp = stack_section.start().Value();
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 sasquatch\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 yeti\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(frame0_rbp.Value(), frame0->context.rbp);
+  EXPECT_EQ("sasquatch", frame0->function_name);
+  EXPECT_EQ(0x00007400c0000100ULL, frame0->function_base);
+
+  StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+  ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+             StackFrameAMD64::CONTEXT_VALID_RSP |
+             StackFrameAMD64::CONTEXT_VALID_RBP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address, frame1->context.rip);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.rsp);
+  EXPECT_EQ(frame1_rbp.Value(), frame1->context.rbp);
+  EXPECT_EQ("yeti", frame1->function_name);
+  EXPECT_EQ(0x00007500b0000100ULL, frame1->function_base);
+}
+
+struct CFIFixture: public StackwalkerAMD64Fixture {
+  CFIFixture() {
+    // Provide a bunch of STACK CFI records; we'll walk to the caller
+    // from every point in this series, expecting to find the same set
+    // of register values.
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 10 enchiridion\n"
+                     // Initially, just a return address.
+                     "STACK CFI INIT 4000 100 .cfa: $rsp 8 + .ra: .cfa 8 - ^\n"
+                     // Push %rbx.
+                     "STACK CFI 4001 .cfa: $rsp 16 + $rbx: .cfa 16 - ^\n"
+                     // Save %r12 in %rbx.  Weird, but permitted.
+                     "STACK CFI 4002 $r12: $rbx\n"
+                     // Allocate frame space, and save %r13.
+                     "STACK CFI 4003 .cfa: $rsp 40 + $r13: .cfa 32 - ^\n"
+                     // Put the return address in %r13.
+                     "STACK CFI 4005 .ra: $r13\n"
+                     // Save %rbp, and use it as a frame pointer.
+                     "STACK CFI 4006 .cfa: $rbp 16 + $rbp: .cfa 24 - ^\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 10 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 1000 .cfa: $rsp .ra 0\n");
+
+    // Provide some distinctive values for the caller's registers.
+    expected.rsp = 0x8000000080000000ULL;
+    expected.rip = 0x00007400c0005510ULL;
+    expected.rbp = 0x68995b1de4700266ULL;
+    expected.rbx = 0x5a5beeb38de23be8ULL;
+    expected.r12 = 0xed1b02e8cc0fc79cULL;
+    expected.r13 = 0x1d20ad8acacbe930ULL;
+    expected.r14 = 0xe94cffc2f7adaa28ULL;
+    expected.r15 = 0xb638d17d8da413b5ULL;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set
+  // raw_context.rsp to the stack's starting address.) Expect two
+  // stack frames; in the older frame, expect the callee-saves
+  // registers to have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.rsp = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerAMD64 walker(&system_info, &raw_context, &stack_region, &modules,
+                            &frame_symbolizer);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    StackFrameAMD64 *frame0 = static_cast<StackFrameAMD64*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameAMD64::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ("enchiridion", frame0->function_name);
+    EXPECT_EQ(0x00007400c0004000ULL, frame0->function_base);
+
+    StackFrameAMD64 *frame1 = static_cast<StackFrameAMD64*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameAMD64::CONTEXT_VALID_RIP |
+               StackFrameAMD64::CONTEXT_VALID_RSP |
+               StackFrameAMD64::CONTEXT_VALID_RBP |
+               StackFrameAMD64::CONTEXT_VALID_RBX |
+               StackFrameAMD64::CONTEXT_VALID_R12 |
+               StackFrameAMD64::CONTEXT_VALID_R13 |
+               StackFrameAMD64::CONTEXT_VALID_R14 |
+               StackFrameAMD64::CONTEXT_VALID_R15),
+              frame1->context_validity);
+    EXPECT_EQ(expected.rip, frame1->context.rip);
+    EXPECT_EQ(expected.rsp, frame1->context.rsp);
+    EXPECT_EQ(expected.rbp, frame1->context.rbp);
+    EXPECT_EQ(expected.rbx, frame1->context.rbx);
+    EXPECT_EQ(expected.r12, frame1->context.r12);
+    EXPECT_EQ(expected.r13, frame1->context.r13);
+    EXPECT_EQ(expected.r14, frame1->context.r14);
+    EXPECT_EQ(expected.r15, frame1->context.r15);
+    EXPECT_EQ("epictetus", frame1->function_name);
+  }
+
+  // The values we expect to find for the caller's registers.
+  MDRawContextAMD64 expected;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+TEST_F(CFI, At4000) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x00007400c0005510ULL) // return address
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004000ULL;
+  CheckWalk();
+}
+
+TEST_F(CFI, At4001) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0x00007400c0005510ULL) // return address
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004001ULL;
+  raw_context.rbx = 0xbe0487d2f9eafe29ULL; // callee's (distinct) %rbx value
+  CheckWalk();
+}
+
+TEST_F(CFI, At4002) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0x00007400c0005510ULL) // return address
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004002ULL;
+  raw_context.rbx = 0xed1b02e8cc0fc79cULL; // saved %r12
+  raw_context.r12 = 0xb0118de918a4bceaULL; // callee's (distinct) %r12 value
+  CheckWalk();
+}
+
+TEST_F(CFI, At4003) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x0e023828dffd4d81ULL) // garbage
+    .D64(0x1d20ad8acacbe930ULL) // saved %r13
+    .D64(0x319e68b49e3ace0fULL) // garbage
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0x00007400c0005510ULL) // return address
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004003ULL;
+  raw_context.rbx = 0xed1b02e8cc0fc79cULL; // saved %r12
+  raw_context.r12 = 0x89d04fa804c87a43ULL; // callee's (distinct) %r12
+  raw_context.r13 = 0x5118e02cbdb24b03ULL; // callee's (distinct) %r13
+  CheckWalk();
+}
+
+// The results here should be the same as those at module offset 0x4003.
+TEST_F(CFI, At4004) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x0e023828dffd4d81ULL) // garbage
+    .D64(0x1d20ad8acacbe930ULL) // saved %r13
+    .D64(0x319e68b49e3ace0fULL) // garbage
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0x00007400c0005510ULL) // return address
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004004ULL;
+  raw_context.rbx = 0xed1b02e8cc0fc79cULL; // saved %r12
+  raw_context.r12 = 0x89d04fa804c87a43ULL; // callee's (distinct) %r12
+  raw_context.r13 = 0x5118e02cbdb24b03ULL; // callee's (distinct) %r13
+  CheckWalk();
+}
+
+TEST_F(CFI, At4005) {
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x4b516dd035745953ULL) // garbage
+    .D64(0x1d20ad8acacbe930ULL) // saved %r13
+    .D64(0xa6d445e16ae3d872ULL) // garbage
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0xaa95fa054aedfbaeULL) // garbage
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004005ULL;
+  raw_context.rbx = 0xed1b02e8cc0fc79cULL; // saved %r12
+  raw_context.r12 = 0x46b1b8868891b34aULL; // callee's %r12
+  raw_context.r13 = 0x00007400c0005510ULL; // return address
+  CheckWalk();
+}
+
+TEST_F(CFI, At4006) {
+  Label frame0_rbp;
+  Label frame1_rsp = expected.rsp;
+  stack_section
+    .D64(0x043c6dfceb91aa34ULL) // garbage
+    .D64(0x1d20ad8acacbe930ULL) // saved %r13
+    .D64(0x68995b1de4700266ULL) // saved %rbp
+    .Mark(&frame0_rbp)          // frame pointer points here
+    .D64(0x5a5beeb38de23be8ULL) // saved %rbx
+    .D64(0xf015ee516ad89eabULL) // garbage
+    .Mark(&frame1_rsp);         // This effectively sets stack_section.start().
+  raw_context.rip = 0x00007400c0004006ULL;
+  raw_context.rbp = frame0_rbp.Value();
+  raw_context.rbx = 0xed1b02e8cc0fc79cULL; // saved %r12
+  raw_context.r12 = 0x26e007b341acfebdULL; // callee's %r12
+  raw_context.r13 = 0x00007400c0005510ULL; // return address
+  CheckWalk();
+}
diff --git a/src/processor/stackwalker_arm.cc b/src/processor/stackwalker_arm.cc
new file mode 100644
index 0000000..f6f2c9b
--- /dev/null
+++ b/src/processor/stackwalker_arm.cc
@@ -0,0 +1,297 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_arm.cc: arm-specific stackwalker.
+//
+// See stackwalker_arm.h for documentation.
+//
+// Author: Mark Mentovai, Ted Mielczarek, Jim Blandy
+
+#include <vector>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_arm.h"
+
+namespace google_breakpad {
+
+
+StackwalkerARM::StackwalkerARM(const SystemInfo* system_info,
+                               const MDRawContextARM* context,
+                               int fp_register,
+                               MemoryRegion* memory,
+                               const CodeModules* modules,
+                               StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context), fp_register_(fp_register),
+      context_frame_validity_(StackFrameARM::CONTEXT_VALID_ALL) { }
+
+
+StackFrame* StackwalkerARM::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFrameARM* frame = new StackFrameARM();
+
+  // The instruction pointer is stored directly in a register (r15), so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = context_frame_validity_;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.iregs[MD_CONTEXT_ARM_REG_PC];
+
+  return frame;
+}
+
+StackFrameARM* StackwalkerARM::GetCallerByCFIFrameInfo(
+    const vector<StackFrame*>& frames,
+    CFIFrameInfo* cfi_frame_info) {
+  StackFrameARM* last_frame = static_cast<StackFrameARM*>(frames.back());
+
+  static const char* register_names[] = {
+    "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
+    "r8",  "r9",  "r10", "r11", "r12", "sp",  "lr",  "pc",
+    "f0",  "f1",  "f2",  "f3",  "f4",  "f5",  "f6",  "f7",
+    "fps", "cpsr",
+    NULL
+  };
+
+  // Populate a dictionary with the valid register values in last_frame.
+  CFIFrameInfo::RegisterValueMap<uint32_t> callee_registers;
+  for (int i = 0; register_names[i]; i++)
+    if (last_frame->context_validity & StackFrameARM::RegisterValidFlag(i))
+      callee_registers[register_names[i]] = last_frame->context.iregs[i];
+
+  // Use the STACK CFI data to recover the caller's register values.
+  CFIFrameInfo::RegisterValueMap<uint32_t> caller_registers;
+  if (!cfi_frame_info->FindCallerRegs(callee_registers, *memory_,
+                                      &caller_registers))
+    return NULL;
+
+  // Construct a new stack frame given the values the CFI recovered.
+  scoped_ptr<StackFrameARM> frame(new StackFrameARM());
+  for (int i = 0; register_names[i]; i++) {
+    CFIFrameInfo::RegisterValueMap<uint32_t>::iterator entry =
+      caller_registers.find(register_names[i]);
+    if (entry != caller_registers.end()) {
+      // We recovered the value of this register; fill the context with the
+      // value from caller_registers.
+      frame->context_validity |= StackFrameARM::RegisterValidFlag(i);
+      frame->context.iregs[i] = entry->second;
+    } else if (4 <= i && i <= 11 && (last_frame->context_validity &
+                                     StackFrameARM::RegisterValidFlag(i))) {
+      // If the STACK CFI data doesn't mention some callee-saves register, and
+      // it is valid in the callee, assume the callee has not yet changed it.
+      // Registers r4 through r11 are callee-saves, according to the Procedure
+      // Call Standard for the ARM Architecture, which the Linux ABI follows.
+      frame->context_validity |= StackFrameARM::RegisterValidFlag(i);
+      frame->context.iregs[i] = last_frame->context.iregs[i];
+    }
+  }
+  // If the CFI doesn't recover the PC explicitly, then use .ra.
+  if (!(frame->context_validity & StackFrameARM::CONTEXT_VALID_PC)) {
+    CFIFrameInfo::RegisterValueMap<uint32_t>::iterator entry =
+      caller_registers.find(".ra");
+    if (entry != caller_registers.end()) {
+      if (fp_register_ == -1) {
+        frame->context_validity |= StackFrameARM::CONTEXT_VALID_PC;
+        frame->context.iregs[MD_CONTEXT_ARM_REG_PC] = entry->second;
+      } else {
+        // The CFI updated the link register and not the program counter.
+        // Handle getting the program counter from the link register.
+        frame->context_validity |= StackFrameARM::CONTEXT_VALID_PC;
+        frame->context_validity |= StackFrameARM::CONTEXT_VALID_LR;
+        frame->context.iregs[MD_CONTEXT_ARM_REG_LR] = entry->second;
+        frame->context.iregs[MD_CONTEXT_ARM_REG_PC] =
+            last_frame->context.iregs[MD_CONTEXT_ARM_REG_LR];
+      }
+    }
+  }
+  // If the CFI doesn't recover the SP explicitly, then use .cfa.
+  if (!(frame->context_validity & StackFrameARM::CONTEXT_VALID_SP)) {
+    CFIFrameInfo::RegisterValueMap<uint32_t>::iterator entry =
+      caller_registers.find(".cfa");
+    if (entry != caller_registers.end()) {
+      frame->context_validity |= StackFrameARM::CONTEXT_VALID_SP;
+      frame->context.iregs[MD_CONTEXT_ARM_REG_SP] = entry->second;
+    }
+  }
+
+  // If we didn't recover the PC and the SP, then the frame isn't very useful.
+  static const int essentials = (StackFrameARM::CONTEXT_VALID_SP
+                                 | StackFrameARM::CONTEXT_VALID_PC);
+  if ((frame->context_validity & essentials) != essentials)
+    return NULL;
+
+  frame->trust = StackFrame::FRAME_TRUST_CFI;
+  return frame.release();
+}
+
+StackFrameARM* StackwalkerARM::GetCallerByStackScan(
+    const vector<StackFrame*>& frames) {
+  StackFrameARM* last_frame = static_cast<StackFrameARM*>(frames.back());
+  uint32_t last_sp = last_frame->context.iregs[MD_CONTEXT_ARM_REG_SP];
+  uint32_t caller_sp, caller_pc;
+
+  if (!ScanForReturnAddress(last_sp, &caller_sp, &caller_pc,
+                            frames.size() == 1 /* is_context_frame */)) {
+    // No plausible return address was found.
+    return NULL;
+  }
+
+  // ScanForReturnAddress found a reasonable return address. Advance
+  // %sp to the location above the one where the return address was
+  // found.
+  caller_sp += 4;
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameARM* frame = new StackFrameARM();
+
+  frame->trust = StackFrame::FRAME_TRUST_SCAN;
+  frame->context = last_frame->context;
+  frame->context.iregs[MD_CONTEXT_ARM_REG_PC] = caller_pc;
+  frame->context.iregs[MD_CONTEXT_ARM_REG_SP] = caller_sp;
+  frame->context_validity = StackFrameARM::CONTEXT_VALID_PC |
+                            StackFrameARM::CONTEXT_VALID_SP;
+
+  return frame;
+}
+
+StackFrameARM* StackwalkerARM::GetCallerByFramePointer(
+    const vector<StackFrame*>& frames) {
+  StackFrameARM* last_frame = static_cast<StackFrameARM*>(frames.back());
+
+  if (!(last_frame->context_validity &
+        StackFrameARM::RegisterValidFlag(fp_register_))) {
+    return NULL;
+  }
+
+  uint32_t last_fp = last_frame->context.iregs[fp_register_];
+
+  uint32_t caller_fp = 0;
+  if (last_fp && !memory_->GetMemoryAtAddress(last_fp, &caller_fp)) {
+    BPLOG(ERROR) << "Unable to read caller_fp from last_fp: 0x"
+                 << std::hex << last_fp;
+    return NULL;
+  }
+
+  uint32_t caller_lr = 0;
+  if (last_fp && !memory_->GetMemoryAtAddress(last_fp + 4, &caller_lr)) {
+    BPLOG(ERROR) << "Unable to read caller_lr from last_fp + 4: 0x"
+                 << std::hex << (last_fp + 4);
+    return NULL;
+  }
+
+  uint32_t caller_sp = last_fp ? last_fp + 8 :
+      last_frame->context.iregs[MD_CONTEXT_ARM_REG_SP];
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameARM* frame = new StackFrameARM();
+
+  frame->trust = StackFrame::FRAME_TRUST_FP;
+  frame->context = last_frame->context;
+  frame->context.iregs[fp_register_] = caller_fp;
+  frame->context.iregs[MD_CONTEXT_ARM_REG_SP] = caller_sp;
+  frame->context.iregs[MD_CONTEXT_ARM_REG_PC] =
+      last_frame->context.iregs[MD_CONTEXT_ARM_REG_LR];
+  frame->context.iregs[MD_CONTEXT_ARM_REG_LR] = caller_lr;
+  frame->context_validity = StackFrameARM::CONTEXT_VALID_PC |
+                            StackFrameARM::CONTEXT_VALID_LR |
+                            StackFrameARM::RegisterValidFlag(fp_register_) |
+                            StackFrameARM::CONTEXT_VALID_SP;
+  return frame;
+}
+
+StackFrame* StackwalkerARM::GetCallerFrame(const CallStack* stack,
+                                           bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  const vector<StackFrame*>& frames = *stack->frames();
+  StackFrameARM* last_frame = static_cast<StackFrameARM*>(frames.back());
+  scoped_ptr<StackFrameARM> frame;
+
+  // See if there is DWARF call frame information covering this address.
+  // TODO(jperaza): Ignore iOS CFI info until it is properly collected.
+  // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=764
+  if (!system_info_ || system_info_->os != "iOS") {
+    scoped_ptr<CFIFrameInfo> cfi_frame_info(
+        frame_symbolizer_->FindCFIFrameInfo(last_frame));
+    if (cfi_frame_info.get())
+      frame.reset(GetCallerByCFIFrameInfo(frames, cfi_frame_info.get()));
+  }
+
+  // If CFI failed, or there wasn't CFI available, fall back
+  // to frame pointer, if this is configured.
+  if (fp_register_ >= 0 && !frame.get())
+    frame.reset(GetCallerByFramePointer(frames));
+
+  // If everuthing failed, fall back to stack scanning.
+  if (stack_scan_allowed && !frame.get())
+    frame.reset(GetCallerByStackScan(frames));
+
+  // If nothing worked, tell the caller.
+  if (!frame.get())
+    return NULL;
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(frame->context.iregs[MD_CONTEXT_ARM_REG_PC],
+                    frame->context.iregs[MD_CONTEXT_ARM_REG_SP],
+                    last_frame->context.iregs[MD_CONTEXT_ARM_REG_SP],
+                    frames.size() == 1)) {
+    return NULL;
+  }
+
+  // The new frame's context's PC is the return address, which is one
+  // instruction past the instruction that caused us to arrive at the
+  // callee. Set new_frame->instruction to one less than the PC. This won't
+  // reference the beginning of the call instruction, but it's at least
+  // within it, which is sufficient to get the source line information to
+  // match up with the line that contains the function call. Callers that
+  // require the exact return address value may access
+  // frame->context.iregs[MD_CONTEXT_ARM_REG_PC].
+  frame->instruction = frame->context.iregs[MD_CONTEXT_ARM_REG_PC] - 2;
+
+  return frame.release();
+}
+
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_arm.h b/src/processor/stackwalker_arm.h
new file mode 100644
index 0000000..72ddddc
--- /dev/null
+++ b/src/processor/stackwalker_arm.h
@@ -0,0 +1,107 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_arm.h: arm-specific stackwalker.
+//
+// Provides stack frames given arm register context and a memory region
+// corresponding to an arm stack.
+//
+// Author: Mark Mentovai, Ted Mielczarek
+
+
+#ifndef PROCESSOR_STACKWALKER_ARM_H__
+#define PROCESSOR_STACKWALKER_ARM_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerARM : public Stackwalker {
+ public:
+  // context is an arm context object that gives access to arm-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerARM(const SystemInfo* system_info,
+                 const MDRawContextARM* context,
+                 int fp_register,
+                 MemoryRegion* memory,
+                 const CodeModules* modules,
+                 StackFrameSymbolizer* frame_symbolizer);
+
+  // Change the context validity mask of the frame returned by
+  // GetContextFrame to VALID. This is only for use by unit tests; the
+  // default behavior is correct for all application code.
+  void SetContextFrameValidity(int valid) { context_frame_validity_ = valid; }
+
+ private:
+  // Implementation of Stackwalker, using arm context and stack conventions.
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Use cfi_frame_info (derived from STACK CFI records) to construct
+  // the frame that called frames.back(). The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameARM* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
+                                         CFIFrameInfo* cfi_frame_info);
+
+  // Use the frame pointer. The caller takes ownership of the returned frame.
+  // Return NULL on failure.
+  StackFrameARM* GetCallerByFramePointer(const vector<StackFrame*>& frames);
+
+  // Scan the stack for plausible return addresses. The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameARM* GetCallerByStackScan(const vector<StackFrame*>& frames);
+
+  // Stores the CPU context corresponding to the youngest stack frame, to
+  // be returned by GetContextFrame.
+  const MDRawContextARM* context_;
+
+  // The register to use a as frame pointer. The value is -1 if frame pointer
+  // cannot be used.
+  int fp_register_;
+
+  // Validity mask for youngest stack frame. This is always
+  // CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
+  // unit tests.
+  int context_frame_validity_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_ARM_H__
diff --git a/src/processor/stackwalker_arm64.cc b/src/processor/stackwalker_arm64.cc
new file mode 100644
index 0000000..9acf818
--- /dev/null
+++ b/src/processor/stackwalker_arm64.cc
@@ -0,0 +1,339 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_arm64.cc: arm64-specific stackwalker.
+//
+// See stackwalker_arm64.h for documentation.
+//
+// Author: Mark Mentovai, Ted Mielczarek, Jim Blandy, Colin Blundell
+
+#include <vector>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_arm64.h"
+
+namespace google_breakpad {
+
+
+StackwalkerARM64::StackwalkerARM64(const SystemInfo* system_info,
+                                   const MDRawContextARM64* context,
+                                   MemoryRegion* memory,
+                                   const CodeModules* modules,
+                                   StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context),
+      context_frame_validity_(StackFrameARM64::CONTEXT_VALID_ALL),
+      address_range_mask_(0xffffffffffffffff) {
+  if (modules && modules->module_count() > 0) {
+    // ARM64 supports storing pointer authentication codes in the upper bits of
+    // a pointer. Make a best guess at the range of valid addresses based on the
+    // range of loaded modules.
+    const CodeModule *high_module =
+        modules->GetModuleAtSequence(modules->module_count() - 1);
+    uint64_t mask = high_module->base_address() + high_module->size();
+    mask |= mask >> 1;
+    mask |= mask >> 2;
+    mask |= mask >> 4;
+    mask |= mask >> 8;
+    mask |= mask >> 16;
+    mask |= mask >> 32;
+    address_range_mask_ = mask;
+  }
+}
+
+uint64_t StackwalkerARM64::PtrauthStrip(uint64_t ptr) {
+  uint64_t stripped = ptr & address_range_mask_;
+  return modules_ && modules_->GetModuleForAddress(stripped) ? stripped : ptr;
+}
+
+StackFrame* StackwalkerARM64::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFrameARM64* frame = new StackFrameARM64();
+
+  // The instruction pointer is stored directly in a register (x32), so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = context_frame_validity_;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.iregs[MD_CONTEXT_ARM64_REG_PC];
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_LR] =
+      PtrauthStrip(frame->context.iregs[MD_CONTEXT_ARM64_REG_LR]);
+
+  return frame;
+}
+
+StackFrameARM64* StackwalkerARM64::GetCallerByCFIFrameInfo(
+    const vector<StackFrame*>& frames,
+    CFIFrameInfo* cfi_frame_info) {
+  StackFrameARM64* last_frame = static_cast<StackFrameARM64*>(frames.back());
+
+  static const char* register_names[] = {
+    "x0",  "x1",  "x2",  "x3",  "x4",  "x5",  "x6",  "x7",
+    "x8",  "x9",  "x10", "x11", "x12", "x13", "x14", "x15",
+    "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23",
+    "x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp",
+    "pc",  NULL
+  };
+
+  // Populate a dictionary with the valid register values in last_frame.
+  CFIFrameInfo::RegisterValueMap<uint64_t> callee_registers;
+  for (int i = 0; register_names[i]; i++) {
+    if (last_frame->context_validity & StackFrameARM64::RegisterValidFlag(i))
+      callee_registers[register_names[i]] = last_frame->context.iregs[i];
+  }
+
+  // Use the STACK CFI data to recover the caller's register values.
+  CFIFrameInfo::RegisterValueMap<uint64_t> caller_registers;
+  if (!cfi_frame_info->FindCallerRegs(callee_registers, *memory_,
+                                      &caller_registers)) {
+    return NULL;
+  }
+  // Construct a new stack frame given the values the CFI recovered.
+  scoped_ptr<StackFrameARM64> frame(new StackFrameARM64());
+  for (int i = 0; register_names[i]; i++) {
+    CFIFrameInfo::RegisterValueMap<uint64_t>::iterator entry =
+      caller_registers.find(register_names[i]);
+    if (entry != caller_registers.end()) {
+      // We recovered the value of this register; fill the context with the
+      // value from caller_registers.
+      frame->context_validity |= StackFrameARM64::RegisterValidFlag(i);
+      frame->context.iregs[i] = entry->second;
+    } else if (19 <= i && i <= 29 && (last_frame->context_validity &
+                                      StackFrameARM64::RegisterValidFlag(i))) {
+      // If the STACK CFI data doesn't mention some callee-saves register, and
+      // it is valid in the callee, assume the callee has not yet changed it.
+      // Registers r19 through r29 are callee-saves, according to the Procedure
+      // Call Standard for the ARM AARCH64 Architecture, which the Linux ABI
+      // follows.
+      frame->context_validity |= StackFrameARM64::RegisterValidFlag(i);
+      frame->context.iregs[i] = last_frame->context.iregs[i];
+    }
+  }
+  // If the CFI doesn't recover the PC explicitly, then use .ra.
+  if (!(frame->context_validity & StackFrameARM64::CONTEXT_VALID_PC)) {
+    CFIFrameInfo::RegisterValueMap<uint64_t>::iterator entry =
+      caller_registers.find(".ra");
+    if (entry != caller_registers.end()) {
+      frame->context_validity |= StackFrameARM64::CONTEXT_VALID_PC;
+      frame->context.iregs[MD_CONTEXT_ARM64_REG_PC] = entry->second;
+    }
+  }
+  // If the CFI doesn't recover the SP explicitly, then use .cfa.
+  if (!(frame->context_validity & StackFrameARM64::CONTEXT_VALID_SP)) {
+    CFIFrameInfo::RegisterValueMap<uint64_t>::iterator entry =
+      caller_registers.find(".cfa");
+    if (entry != caller_registers.end()) {
+      frame->context_validity |= StackFrameARM64::CONTEXT_VALID_SP;
+      frame->context.iregs[MD_CONTEXT_ARM64_REG_SP] = entry->second;
+    }
+  }
+
+  // If we didn't recover the PC and the SP, then the frame isn't very useful.
+  static const uint64_t essentials = (StackFrameARM64::CONTEXT_VALID_SP
+                                     | StackFrameARM64::CONTEXT_VALID_PC);
+  if ((frame->context_validity & essentials) != essentials)
+    return NULL;
+
+  frame->trust = StackFrame::FRAME_TRUST_CFI;
+  return frame.release();
+}
+
+StackFrameARM64* StackwalkerARM64::GetCallerByStackScan(
+    const vector<StackFrame*>& frames) {
+  StackFrameARM64* last_frame = static_cast<StackFrameARM64*>(frames.back());
+  uint64_t last_sp = last_frame->context.iregs[MD_CONTEXT_ARM64_REG_SP];
+  uint64_t caller_sp, caller_pc;
+
+  if (!ScanForReturnAddress(last_sp, &caller_sp, &caller_pc,
+                            frames.size() == 1 /* is_context_frame */)) {
+    // No plausible return address was found.
+    return NULL;
+  }
+
+  // ScanForReturnAddress found a reasonable return address. Advance
+  // %sp to the location above the one where the return address was
+  // found.
+  caller_sp += 8;
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameARM64* frame = new StackFrameARM64();
+
+  frame->trust = StackFrame::FRAME_TRUST_SCAN;
+  frame->context = last_frame->context;
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_PC] = caller_pc;
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_SP] = caller_sp;
+  frame->context_validity = StackFrameARM64::CONTEXT_VALID_PC |
+                            StackFrameARM64::CONTEXT_VALID_SP;
+
+  return frame;
+}
+
+StackFrameARM64* StackwalkerARM64::GetCallerByFramePointer(
+    const vector<StackFrame*>& frames) {
+  StackFrameARM64* last_frame = static_cast<StackFrameARM64*>(frames.back());
+  if (!(last_frame->context_validity & StackFrameARM64::CONTEXT_VALID_LR)) {
+    CorrectRegLRByFramePointer(frames, last_frame);
+  }
+
+  uint64_t last_fp = last_frame->context.iregs[MD_CONTEXT_ARM64_REG_FP];
+
+  uint64_t caller_fp = 0;
+  if (last_fp && !memory_->GetMemoryAtAddress(last_fp, &caller_fp)) {
+    BPLOG(ERROR) << "Unable to read caller_fp from last_fp: 0x"
+                 << std::hex << last_fp;
+    return NULL;
+  }
+
+  uint64_t caller_lr = 0;
+  if (last_fp && !memory_->GetMemoryAtAddress(last_fp + 8, &caller_lr)) {
+    BPLOG(ERROR) << "Unable to read caller_lr from last_fp + 8: 0x"
+                 << std::hex << (last_fp + 8);
+    return NULL;
+  }
+
+  caller_lr = PtrauthStrip(caller_lr);
+
+  uint64_t caller_sp = last_fp ? last_fp + 16 :
+      last_frame->context.iregs[MD_CONTEXT_ARM64_REG_SP];
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameARM64* frame = new StackFrameARM64();
+
+  frame->trust = StackFrame::FRAME_TRUST_FP;
+  frame->context = last_frame->context;
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_FP] = caller_fp;
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_SP] = caller_sp;
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_PC] =
+      last_frame->context.iregs[MD_CONTEXT_ARM64_REG_LR];
+  frame->context.iregs[MD_CONTEXT_ARM64_REG_LR] = caller_lr;
+  frame->context_validity = StackFrameARM64::CONTEXT_VALID_PC |
+                            StackFrameARM64::CONTEXT_VALID_LR |
+                            StackFrameARM64::CONTEXT_VALID_FP |
+                            StackFrameARM64::CONTEXT_VALID_SP;
+  return frame;
+}
+
+void StackwalkerARM64::CorrectRegLRByFramePointer(
+    const vector<StackFrame*>& frames,
+    StackFrameARM64* last_frame) {
+  // Need at least two frames to correct and
+  // register $FP should always be greater than register $SP.
+  if (frames.size() < 2 || !last_frame ||
+      last_frame->context.iregs[MD_CONTEXT_ARM64_REG_FP] <=
+          last_frame->context.iregs[MD_CONTEXT_ARM64_REG_SP])
+    return;
+
+  StackFrameARM64* last_last_frame =
+      static_cast<StackFrameARM64*>(*(frames.end() - 2));
+  uint64_t last_last_fp =
+      last_last_frame->context.iregs[MD_CONTEXT_ARM64_REG_FP];
+
+  uint64_t last_fp = 0;
+  if (last_last_fp && !memory_->GetMemoryAtAddress(last_last_fp, &last_fp)) {
+    BPLOG(ERROR) << "Unable to read last_fp from last_last_fp: 0x"
+                 << std::hex << last_last_fp;
+    return;
+  }
+  // Give up if STACK CFI doesn't agree with frame pointer.
+  if (last_frame->context.iregs[MD_CONTEXT_ARM64_REG_FP] != last_fp)
+    return;
+
+  uint64_t last_lr = 0;
+  if (last_last_fp && !memory_->GetMemoryAtAddress(last_last_fp + 8, &last_lr)) {
+    BPLOG(ERROR) << "Unable to read last_lr from (last_last_fp + 8): 0x"
+                 << std::hex << (last_last_fp + 8);
+    return;
+  }
+  last_lr = PtrauthStrip(last_lr);
+
+  last_frame->context.iregs[MD_CONTEXT_ARM64_REG_LR] = last_lr;
+}
+
+StackFrame* StackwalkerARM64::GetCallerFrame(const CallStack* stack,
+                                             bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  const vector<StackFrame*>& frames = *stack->frames();
+  StackFrameARM64* last_frame = static_cast<StackFrameARM64*>(frames.back());
+  scoped_ptr<StackFrameARM64> frame;
+
+  // See if there is DWARF call frame information covering this address.
+  scoped_ptr<CFIFrameInfo> cfi_frame_info(
+      frame_symbolizer_->FindCFIFrameInfo(last_frame));
+  if (cfi_frame_info.get())
+    frame.reset(GetCallerByCFIFrameInfo(frames, cfi_frame_info.get()));
+
+  // If CFI failed, or there wasn't CFI available, fall back to frame pointer.
+  if (!frame.get())
+    frame.reset(GetCallerByFramePointer(frames));
+
+  // If everything failed, fall back to stack scanning.
+  if (stack_scan_allowed && !frame.get())
+    frame.reset(GetCallerByStackScan(frames));
+
+  // If nothing worked, tell the caller.
+  if (!frame.get())
+    return NULL;
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(frame->context.iregs[MD_CONTEXT_ARM64_REG_PC],
+                    frame->context.iregs[MD_CONTEXT_ARM64_REG_SP],
+                    last_frame->context.iregs[MD_CONTEXT_ARM64_REG_SP],
+                    frames.size() == 1)) {
+    return NULL;
+  }
+
+  // The new frame's context's PC is the return address, which is one
+  // instruction past the instruction that caused us to arrive at the callee.
+  // ARM64 instructions have a uniform 4-byte encoding, so subtracting 4 off
+  // the return address gets back to the beginning of the call instruction.
+  // Callers that require the exact return address value may access
+  // frame->context.iregs[MD_CONTEXT_ARM64_REG_PC].
+  frame->instruction = frame->context.iregs[MD_CONTEXT_ARM64_REG_PC] - 4;
+
+  return frame.release();
+}
+
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_arm64.h b/src/processor/stackwalker_arm64.h
new file mode 100644
index 0000000..4c7da3f
--- /dev/null
+++ b/src/processor/stackwalker_arm64.h
@@ -0,0 +1,118 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_arm64.h: arm64-specific stackwalker.
+//
+// Provides stack frames given arm64 register context and a memory region
+// corresponding to an arm64 stack.
+//
+// Author: Mark Mentovai, Ted Mielczarek, Colin Blundell
+
+
+#ifndef PROCESSOR_STACKWALKER_ARM64_H__
+#define PROCESSOR_STACKWALKER_ARM64_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerARM64 : public Stackwalker {
+ public:
+  // context is an arm64 context object that gives access to arm64-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerARM64(const SystemInfo* system_info,
+                   const MDRawContextARM64* context,
+                   MemoryRegion* memory,
+                   const CodeModules* modules,
+                   StackFrameSymbolizer* frame_symbolizer);
+
+  // Change the context validity mask of the frame returned by
+  // GetContextFrame to VALID. This is only for use by unit tests; the
+  // default behavior is correct for all application code.
+  void SetContextFrameValidity(uint64_t valid) {
+    context_frame_validity_ = valid;
+  }
+
+ private:
+  // Strip pointer authentication codes from an address.
+  uint64_t PtrauthStrip(uint64_t ptr);
+
+  // Implementation of Stackwalker, using arm64 context and stack conventions.
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Use cfi_frame_info (derived from STACK CFI records) to construct
+  // the frame that called frames.back(). The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameARM64* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
+                                           CFIFrameInfo* cfi_frame_info);
+
+  // Use the frame pointer. The caller takes ownership of the returned frame.
+  // Return NULL on failure.
+  StackFrameARM64* GetCallerByFramePointer(const vector<StackFrame*>& frames);
+
+  // Scan the stack for plausible return addresses. The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameARM64* GetCallerByStackScan(const vector<StackFrame*>& frames);
+
+  // GetCallerByFramePointer() depends on the previous frame having recovered
+  // x30($LR) which may not have been done when using CFI.
+  // This function recovers $LR in the previous frame by using the frame-pointer
+  // two frames back to read it from the stack.
+  void CorrectRegLRByFramePointer(const vector<StackFrame*>& frames,
+                                  StackFrameARM64* last_frame);
+
+  // Stores the CPU context corresponding to the youngest stack frame, to
+  // be returned by GetContextFrame.
+  const MDRawContextARM64* context_;
+
+  // Validity mask for youngest stack frame. This is always
+  // CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
+  // unit tests.
+  uint64_t context_frame_validity_;
+
+  // A mask of the valid address bits, determined from the address range of
+  // modules_.
+  uint64_t address_range_mask_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_ARM64_H__
diff --git a/src/processor/stackwalker_arm64_unittest.cc b/src/processor/stackwalker_arm64_unittest.cc
new file mode 100644
index 0000000..6553e0c
--- /dev/null
+++ b/src/processor/stackwalker_arm64_unittest.cc
@@ -0,0 +1,881 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stackwalker_arm64_unittest.cc: Unit tests for StackwalkerARM64 class.
+
+#include <string.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_arm64.h"
+#include "processor/windows_frame_info.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameARM64;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerARM64;
+using google_breakpad::SystemInfo;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::DoAll;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerARM64Fixture {
+ public:
+  StackwalkerARM64Fixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x40000000, 0x10000, "module1", "version1"),
+      module2(0x50000000, 0x10000, "module2", "version2") {
+    // Identify the system as an iOS system.
+    system_info.os = "iOS";
+    system_info.os_short = "ios";
+    system_info.cpu = "arm64";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char *buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextARM64 *raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); i++)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextARM64 raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class SanityCheck: public StackwalkerARM64Fixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  // Since the context's frame pointer is garbage, the stack walk will end after
+  // the first frame.
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  // This should succeed even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameARM64 *frame = static_cast<StackFrameARM64*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetContextFrame: public StackwalkerARM64Fixture, public Test { };
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, NULL, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameARM64 *frame = static_cast<StackFrameARM64*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerARM64Fixture, public Test { };
+
+TEST_F(GetCallerFrame, ScanWithoutSymbols) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  // Force scanning through three frames to ensure that the
+  // stack pointer is set properly in scan-recovered frames.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x50000100;
+  uint64_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x40090000)                    // junk that's not
+    .D64(0x60000000)                    // a return address
+
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D64(0xF0000000)                    // more junk
+    .D64(0x0000000D)
+
+    .D64(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM64::CONTEXT_VALID_ALL,
+            frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM64 *frame1 = static_cast<StackFrameARM64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+
+  StackFrameARM64 *frame2 = static_cast<StackFrameARM64*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame2->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+}
+
+TEST_F(GetCallerFrame, ScanWithFunctionSymbols) {
+  // During stack scanning, if a potential return address
+  // is located within a loaded module that has symbols,
+  // it is only considered a valid return address if it
+  // lies within a function's bounds.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address = 0x50000200;
+  Label frame1_sp;
+
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x40090000)                    // junk that's not
+    .D64(0x60000000)                    // a return address
+
+    .D64(0x40001000)                    // a couple of plausible addresses
+    .D64(0x5000F000)                    // that are not within functions
+
+    .D64(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x40000200;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 monotreme\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 marsupial\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM64::CONTEXT_VALID_ALL,
+            frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+  EXPECT_EQ("monotreme", frame0->function_name);
+  EXPECT_EQ(0x40000100ULL, frame0->function_base);
+
+  StackFrameARM64 *frame1 = static_cast<StackFrameARM64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address, frame1->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+  EXPECT_EQ("marsupial", frame1->function_name);
+  EXPECT_EQ(0x50000100ULL, frame1->function_base);
+}
+
+TEST_F(GetCallerFrame, ScanFirstFrame) {
+  // If the stackwalker resorts to stack scanning, it will scan much
+  // farther to find the caller of the context frame.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x50000100;
+  uint64_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D64(0x40090000)                    // junk that's not
+    .D64(0x60000000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0)                      // space
+
+    .D64(0xF0000000)                    // more junk
+    .D64(0x0000000D)
+
+    .Append(336, 0)                     // more space
+
+    .D64(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM64::CONTEXT_VALID_ALL,
+            frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM64 *frame1 = static_cast<StackFrameARM64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x50000100;
+  uint64_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x40090000)                    // junk that's not
+    .D64(0x60000000)                    // a return address
+
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D64(0xF0000000)                    // more junk
+    .D64(0x0000000D)
+
+    .D64(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM64::CONTEXT_VALID_ALL,
+            frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+}
+
+class GetFramesByFramePointer: public StackwalkerARM64Fixture, public Test { };
+
+TEST_F(GetFramesByFramePointer, OnlyFramePointer) {
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x50000100;
+  uint64_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  Label frame1_fp, frame2_fp;
+  stack_section
+    // frame 0
+    .Append(64, 0)           // Whatever values on the stack.
+    .D64(0x0000000D)         // junk that's not
+    .D64(0xF0000000)         // a return address.
+
+    .Mark(&frame1_fp)        // Next fp will point to the next value.
+    .D64(frame2_fp)          // Save current frame pointer.
+    .D64(return_address2)    // Save current link register.
+    .Mark(&frame1_sp)
+
+    // frame 1
+    .Append(64, 0)           // Whatever values on the stack.
+    .D64(0x0000000D)         // junk that's not
+    .D64(0xF0000000)         // a return address.
+
+    .Mark(&frame2_fp)
+    .D64(0)
+    .D64(0)
+    .Mark(&frame2_sp)
+
+    // frame 2
+    .Append(64, 0)           // Whatever values on the stack.
+    .D64(0x0000000D)         // junk that's not
+    .D64(0xF0000000);        // a return address.
+  RegionFromSection();
+
+
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_LR] = return_address1;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = frame1_fp.Value();
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context,
+                          &stack_region, &modules, &frame_symbolizer);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM64::CONTEXT_VALID_ALL,
+            frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM64 *frame1 = static_cast<StackFrameARM64*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_LR |
+             StackFrameARM64::CONTEXT_VALID_FP |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(return_address2, frame1->context.iregs[MD_CONTEXT_ARM64_REG_LR]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+  EXPECT_EQ(frame2_fp.Value(),
+            frame1->context.iregs[MD_CONTEXT_ARM64_REG_FP]);
+
+  StackFrameARM64 *frame2 = static_cast<StackFrameARM64*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame2->trust);
+  ASSERT_EQ((StackFrameARM64::CONTEXT_VALID_PC |
+             StackFrameARM64::CONTEXT_VALID_LR |
+             StackFrameARM64::CONTEXT_VALID_FP |
+             StackFrameARM64::CONTEXT_VALID_SP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM64_REG_LR]);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM64_REG_FP]);
+}
+
+struct CFIFixture: public StackwalkerARM64Fixture {
+  CFIFixture() {
+    // Provide a bunch of STACK CFI records; we'll walk to the caller
+    // from every point in this series, expecting to find the same set
+    // of register values.
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 10 enchiridion\n"
+                     // Initially, nothing has been pushed on the stack,
+                     // and the return address is still in the link
+                     // register (x30).
+                     "STACK CFI INIT 4000 100 .cfa: sp 0 + .ra: x30\n"
+                     // Push x19, x20, the frame pointer and the link register.
+                     "STACK CFI 4001 .cfa: sp 32 + .ra: .cfa -8 + ^"
+                     " x19: .cfa -32 + ^ x20: .cfa -24 + ^ "
+                     " x29: .cfa -16 + ^\n"
+                     // Save x19..x22 in x0..x3: verify that we populate
+                     // the youngest frame with all the values we have.
+                     "STACK CFI 4002 x19: x0 x20: x1 x21: x2 x22: x3\n"
+                     // Restore x19..x22. Save the non-callee-saves register x1.
+                     "STACK CFI 4003 .cfa: sp 40 + x1: .cfa 40 - ^"
+                     " x19: x19 x20: x20 x21: x21 x22: x22\n"
+                     // Move the .cfa back eight bytes, to point at the return
+                     // address, and restore the sp explicitly.
+                     "STACK CFI 4005 .cfa: sp 32 + x1: .cfa 32 - ^"
+                     " x29: .cfa 8 - ^ .ra: .cfa ^ sp: .cfa 8 +\n"
+                     // Recover the PC explicitly from a new stack slot;
+                     // provide garbage for the .ra.
+                     "STACK CFI 4006 .cfa: sp 40 + pc: .cfa 40 - ^\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 10 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 1000 .cfa: 0 .ra: 0\n"
+
+                     // A function whose CFI makes the stack pointer
+                     // go backwards.
+                     "FUNC 6000 1000 20 palinal\n"
+                     "STACK CFI INIT 6000 1000 .cfa: sp 8 - .ra: x30\n"
+
+                     // A function with CFI expressions that can't be
+                     // evaluated.
+                     "FUNC 7000 1000 20 rhetorical\n"
+                     "STACK CFI INIT 7000 1000 .cfa: moot .ra: ambiguous\n");
+
+    // Provide some distinctive values for the caller's registers.
+    expected.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040005510L;
+    expected.iregs[MD_CONTEXT_ARM64_REG_SP] = 0x0000000080000000L;
+    expected.iregs[19] = 0x5e68b5d5b5d55e68L;
+    expected.iregs[20] = 0x34f3ebd1ebd134f3L;
+    expected.iregs[21] = 0x74bca31ea31e74bcL;
+    expected.iregs[22] = 0x16b32dcb2dcb16b3L;
+    expected.iregs[23] = 0x21372ada2ada2137L;
+    expected.iregs[24] = 0x557dbbbbbbbb557dL;
+    expected.iregs[25] = 0x8ca748bf48bf8ca7L;
+    expected.iregs[26] = 0x21f0ab46ab4621f0L;
+    expected.iregs[27] = 0x146732b732b71467L;
+    expected.iregs[28] = 0xa673645fa673645fL;
+    expected.iregs[MD_CONTEXT_ARM64_REG_FP] = 0xe11081128112e110L;
+
+    // Expect CFI to recover all callee-saves registers. Since CFI is the
+    // only stack frame construction technique we have, aside from the
+    // context frame itself, there's no way for us to have a set of valid
+    // registers smaller than this.
+    expected_validity = (StackFrameARM64::CONTEXT_VALID_PC  |
+                         StackFrameARM64::CONTEXT_VALID_SP  |
+                         StackFrameARM64::CONTEXT_VALID_X19 |
+                         StackFrameARM64::CONTEXT_VALID_X20 |
+                         StackFrameARM64::CONTEXT_VALID_X21 |
+                         StackFrameARM64::CONTEXT_VALID_X22 |
+                         StackFrameARM64::CONTEXT_VALID_X23 |
+                         StackFrameARM64::CONTEXT_VALID_X24 |
+                         StackFrameARM64::CONTEXT_VALID_X25 |
+                         StackFrameARM64::CONTEXT_VALID_X26 |
+                         StackFrameARM64::CONTEXT_VALID_X27 |
+                         StackFrameARM64::CONTEXT_VALID_X28 |
+                         StackFrameARM64::CONTEXT_VALID_FP);
+
+    // By default, context frames provide all registers, as normal.
+    context_frame_validity = StackFrameARM64::CONTEXT_VALID_ALL;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set the stack
+  // pointer to the stack's starting address.) Expect two stack
+  // frames; in the older frame, expect the callee-saves registers to
+  // have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerARM64 walker(&system_info, &raw_context, &stack_region,
+                            &modules, &frame_symbolizer);
+    walker.SetContextFrameValidity(context_frame_validity);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    StackFrameARM64 *frame0 = static_cast<StackFrameARM64*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(context_frame_validity, frame0->context_validity);
+    EXPECT_EQ("enchiridion", frame0->function_name);
+    EXPECT_EQ(0x0000000040004000UL, frame0->function_base);
+
+    StackFrameARM64 *frame1 = static_cast<StackFrameARM64*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ(expected_validity, frame1->context_validity);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X1)
+      EXPECT_EQ(expected.iregs[1], frame1->context.iregs[1]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X19)
+      EXPECT_EQ(expected.iregs[19], frame1->context.iregs[19]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X20)
+      EXPECT_EQ(expected.iregs[20], frame1->context.iregs[20]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X21)
+      EXPECT_EQ(expected.iregs[21], frame1->context.iregs[21]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X22)
+      EXPECT_EQ(expected.iregs[22], frame1->context.iregs[22]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X23)
+      EXPECT_EQ(expected.iregs[23], frame1->context.iregs[23]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X24)
+      EXPECT_EQ(expected.iregs[24], frame1->context.iregs[24]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X25)
+      EXPECT_EQ(expected.iregs[25], frame1->context.iregs[25]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X26)
+      EXPECT_EQ(expected.iregs[26], frame1->context.iregs[26]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X27)
+      EXPECT_EQ(expected.iregs[27], frame1->context.iregs[27]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_X28)
+      EXPECT_EQ(expected.iregs[28], frame1->context.iregs[28]);
+    if (expected_validity & StackFrameARM64::CONTEXT_VALID_FP)
+      EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM64_REG_FP],
+                frame1->context.iregs[MD_CONTEXT_ARM64_REG_FP]);
+
+    // We would never have gotten a frame in the first place if the SP
+    // and PC weren't valid or ->instruction weren't set.
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM64_REG_SP],
+              frame1->context.iregs[MD_CONTEXT_ARM64_REG_SP]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM64_REG_PC],
+              frame1->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM64_REG_PC],
+              frame1->instruction + 4);
+    EXPECT_EQ("epictetus", frame1->function_name);
+  }
+
+  // The values we expect to find for the caller's registers.
+  MDRawContextARM64 expected;
+
+  // The validity mask for expected.
+  uint64_t expected_validity;
+
+  // The validity mask to impose on the context frame.
+  uint64_t context_frame_validity;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+TEST_F(CFI, At4000) {
+  stack_section.start() = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004000L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_LR] = 0x0000000040005510L;
+  CheckWalk();
+}
+
+TEST_F(CFI, At4001) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0x5e68b5d5b5d55e68L)   // saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004001L;
+  // distinct callee x19, x20 and fp
+  raw_context.iregs[19] = 0xadc9f635a635adc9L;
+  raw_context.iregs[20] = 0x623135ac35ac6231L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = 0x5fc4be14be145fc4L;
+  CheckWalk();
+}
+
+// As above, but unwind from a context that has only the PC and SP.
+TEST_F(CFI, At4001LimitedValidity) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0x5e68b5d5b5d55e68L)   // saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  context_frame_validity =
+    StackFrameARM64::CONTEXT_VALID_PC | StackFrameARM64::CONTEXT_VALID_SP;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004001L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = 0x5fc4be14be145fc4L;
+
+  expected_validity = (StackFrameARM64::CONTEXT_VALID_PC
+                       | StackFrameARM64::CONTEXT_VALID_SP
+                       | StackFrameARM64::CONTEXT_VALID_FP
+                       | StackFrameARM64::CONTEXT_VALID_X19
+                       | StackFrameARM64::CONTEXT_VALID_X20);
+  CheckWalk();
+}
+
+TEST_F(CFI, At4002) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0xff3dfb81fb81ff3dL)   // no longer saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // no longer saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004002L;
+  raw_context.iregs[0]  = 0x5e68b5d5b5d55e68L;  // saved x19
+  raw_context.iregs[1]  = 0x34f3ebd1ebd134f3L;  // saved x20
+  raw_context.iregs[2]  = 0x74bca31ea31e74bcL;  // saved x21
+  raw_context.iregs[3]  = 0x16b32dcb2dcb16b3L;  // saved x22
+  raw_context.iregs[19] = 0xadc9f635a635adc9L;  // distinct callee x19
+  raw_context.iregs[20] = 0x623135ac35ac6231L;  // distinct callee x20
+  raw_context.iregs[21] = 0xac4543564356ac45L;  // distinct callee x21
+  raw_context.iregs[22] = 0x2561562f562f2561L;  // distinct callee x22
+  // distinct callee fp
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = 0x5fc4be14be145fc4L;
+  CheckWalk();
+}
+
+TEST_F(CFI, At4003) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0xdd5a48c848c8dd5aL)   // saved x1 (even though it's not callee-saves)
+    .D64(0xff3dfb81fb81ff3dL)   // no longer saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // no longer saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004003L;
+  // distinct callee x1 and fp
+  raw_context.iregs[1] = 0xfb756319fb756319L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = 0x5fc4be14be145fc4L;
+  // caller's x1
+  expected.iregs[1] = 0xdd5a48c848c8dd5aL;
+  expected_validity |= StackFrameARM64::CONTEXT_VALID_X1;
+  CheckWalk();
+}
+
+// We have no new rule at module offset 0x4004, so the results here should
+// be the same as those at module offset 0x4003.
+TEST_F(CFI, At4004) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0xdd5a48c848c8dd5aL)   // saved x1 (even though it's not callee-saves)
+    .D64(0xff3dfb81fb81ff3dL)   // no longer saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // no longer saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004004L;
+  // distinct callee x1 and fp
+  raw_context.iregs[1] = 0xfb756319fb756319L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_FP] = 0x5fc4be14be145fc4L;
+  // caller's x1
+  expected.iregs[1] = 0xdd5a48c848c8dd5aL;
+  expected_validity |= StackFrameARM64::CONTEXT_VALID_X1;
+  CheckWalk();
+}
+
+// Here we move the .cfa, but provide an explicit rule to recover the SP,
+// so again there should be no change in the registers recovered.
+TEST_F(CFI, At4005) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0xdd5a48c848c8dd5aL)   // saved x1 (even though it's not callee-saves)
+    .D64(0xff3dfb81fb81ff3dL)   // no longer saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // no longer saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0x0000000040005510L)   // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004005L;
+  raw_context.iregs[1] = 0xfb756319fb756319L;  // distinct callee x1
+  expected.iregs[1] = 0xdd5a48c848c8dd5aL;     // caller's x1
+  expected_validity |= StackFrameARM64::CONTEXT_VALID_X1;
+  CheckWalk();
+}
+
+// Here we provide an explicit rule for the PC, and have the saved .ra be
+// bogus.
+TEST_F(CFI, At4006) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM64_REG_SP];
+  stack_section
+    .D64(0x0000000040005510L)   // saved pc
+    .D64(0xdd5a48c848c8dd5aL)   // saved x1 (even though it's not callee-saves)
+    .D64(0xff3dfb81fb81ff3dL)   // no longer saved x19
+    .D64(0x34f3ebd1ebd134f3L)   // no longer saved x20
+    .D64(0xe11081128112e110L)   // saved fp
+    .D64(0xf8d157835783f8d1L)   // .ra rule recovers this, which is garbage
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040004006L;
+  raw_context.iregs[1] = 0xfb756319fb756319L;  // distinct callee x1
+  expected.iregs[1] = 0xdd5a48c848c8dd5aL;     // caller's x1
+  expected_validity |= StackFrameARM64::CONTEXT_VALID_X1;
+  CheckWalk();
+}
+
+// Check that we reject rules that would cause the stack pointer to
+// move in the wrong direction.
+TEST_F(CFI, RejectBackwards) {
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040006000L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = 0x0000000080000000L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_LR] = 0x0000000040005510L;
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
+
+// Check that we reject rules whose expressions' evaluation fails.
+TEST_F(CFI, RejectBadExpressions) {
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_PC] = 0x0000000040007000L;
+  raw_context.iregs[MD_CONTEXT_ARM64_REG_SP] = 0x0000000080000000L;
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM64 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
diff --git a/src/processor/stackwalker_arm_unittest.cc b/src/processor/stackwalker_arm_unittest.cc
new file mode 100644
index 0000000..046081f
--- /dev/null
+++ b/src/processor/stackwalker_arm_unittest.cc
@@ -0,0 +1,979 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stackwalker_arm_unittest.cc: Unit tests for StackwalkerARM class.
+
+#include <string.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_arm.h"
+#include "processor/windows_frame_info.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameARM;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerARM;
+using google_breakpad::SystemInfo;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::DoAll;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerARMFixture {
+ public:
+  StackwalkerARMFixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x40000000, 0x10000, "module1", "version1"),
+      module2(0x50000000, 0x10000, "module2", "version2") {
+    // Identify the system as a Linux system.
+    system_info.os = "Linux";
+    system_info.os_short = "linux";
+    system_info.os_version = "Lugubrious Labrador";
+    system_info.cpu = "arm";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char *buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextARM *raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); i++)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextARM raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class SanityCheck: public StackwalkerARMFixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  // Since we have no call frame information, and all unwinding
+  // requires call frame information, the stack walk will end after
+  // the first frame.
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  // This should succeed even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameARM *frame = static_cast<StackFrameARM*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetContextFrame: public StackwalkerARMFixture, public Test { };
+
+TEST_F(GetContextFrame, Simple) {
+  // Since we have no call frame information, and all unwinding
+  // requires call frame information, the stack walk will end after
+  // the first frame.
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameARM *frame = static_cast<StackFrameARM*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, NULL, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameARM *frame = static_cast<StackFrameARM*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerARMFixture, public Test { };
+
+TEST_F(GetCallerFrame, ScanWithoutSymbols) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  // Force scanning through three frames to ensure that the
+  // stack pointer is set properly in scan-recovered frames.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x50000100;
+  uint32_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D32(0x40090000)                    // junk that's not
+    .D32(0x60000000)                    // a return address
+
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D32(0xF0000000)                    // more junk
+    .D32(0x0000000D)
+
+    .D32(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+
+  StackFrameARM *frame2 = static_cast<StackFrameARM*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame2->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+}
+
+TEST_F(GetCallerFrame, ScanWithFunctionSymbols) {
+  // During stack scanning, if a potential return address
+  // is located within a loaded module that has symbols,
+  // it is only considered a valid return address if it
+  // lies within a function's bounds.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address = 0x50000200;
+  Label frame1_sp;
+
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D32(0x40090000)                    // junk that's not
+    .D32(0x60000000)                    // a return address
+
+    .D32(0x40001000)                    // a couple of plausible addresses
+    .D32(0x5000F000)                    // that are not within functions
+
+    .D32(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40000200;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 monotreme\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 marsupial\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+  EXPECT_EQ("monotreme", frame0->function_name);
+  EXPECT_EQ(0x40000100U, frame0->function_base);
+
+  StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address, frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+  EXPECT_EQ("marsupial", frame1->function_name);
+  EXPECT_EQ(0x50000100U, frame1->function_base);
+}
+
+TEST_F(GetCallerFrame, ScanFirstFrame) {
+  // If the stackwalker resorts to stack scanning, it will scan much
+  // farther to find the caller of the context frame.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x50000100;
+  uint32_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D32(0x40090000)                    // junk that's not
+    .D32(0x60000000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0)                      // space
+
+    .D32(0xF0000000)                    // more junk
+    .D32(0x0000000D)
+
+    .Append(136, 0)                     // more space
+
+    .D32(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x50000100;
+  uint32_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D32(0x40090000)                    // junk that's not
+    .D32(0x60000000)                    // a return address
+
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D32(0xF0000000)                    // more junk
+    .D32(0x0000000D)
+
+    .D32(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+}
+
+struct CFIFixture: public StackwalkerARMFixture {
+  CFIFixture() {
+    // Provide a bunch of STACK CFI records; we'll walk to the caller
+    // from every point in this series, expecting to find the same set
+    // of register values.
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 10 enchiridion\n"
+                     // Initially, nothing has been pushed on the stack,
+                     // and the return address is still in the link register.
+                     "STACK CFI INIT 4000 100 .cfa: sp .ra: lr\n"
+                     // Push r4, the frame pointer, and the link register.
+                     "STACK CFI 4001 .cfa: sp 12 + r4: .cfa 12 - ^"
+                     " r11: .cfa 8 - ^ .ra: .cfa 4 - ^\n"
+                     // Save r4..r7 in r0..r3: verify that we populate
+                     // the youngest frame with all the values we have.
+                     "STACK CFI 4002 r4: r0 r5: r1 r6: r2 r7: r3\n"
+                     // Restore r4..r7. Save the non-callee-saves register r1.
+                     "STACK CFI 4003 .cfa: sp 16 + r1: .cfa 16 - ^"
+                     " r4: r4 r5: r5 r6: r6 r7: r7\n"
+                     // Move the .cfa back four bytes, to point at the return
+                     // address, and restore the sp explicitly.
+                     "STACK CFI 4005 .cfa: sp 12 + r1: .cfa 12 - ^"
+                     " r11: .cfa 4 - ^ .ra: .cfa ^ sp: .cfa 4 +\n"
+                     // Recover the PC explicitly from a new stack slot;
+                     // provide garbage for the .ra.
+                     "STACK CFI 4006 .cfa: sp 16 + pc: .cfa 16 - ^\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 10 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 1000 .cfa: 0 .ra: 0\n"
+
+                     // A function whose CFI makes the stack pointer
+                     // go backwards.
+                     "FUNC 6000 1000 20 palinal\n"
+                     "STACK CFI INIT 6000 1000 .cfa: sp 4 - .ra: lr\n"
+
+                     // A function with CFI expressions that can't be
+                     // evaluated.
+                     "FUNC 7000 1000 20 rhetorical\n"
+                     "STACK CFI INIT 7000 1000 .cfa: moot .ra: ambiguous\n");
+
+    // Provide some distinctive values for the caller's registers.
+    expected.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40005510;
+    expected.iregs[MD_CONTEXT_ARM_REG_SP] = 0x80000000;
+    expected.iregs[4] = 0xb5d55e68;
+    expected.iregs[5] = 0xebd134f3;
+    expected.iregs[6] = 0xa31e74bc;
+    expected.iregs[7] = 0x2dcb16b3;
+    expected.iregs[8] = 0x2ada2137;
+    expected.iregs[9] = 0xbbbb557d;
+    expected.iregs[10] = 0x48bf8ca7;
+    expected.iregs[MD_CONTEXT_ARM_REG_FP] = 0x8112e110;
+
+    // Expect CFI to recover all callee-saves registers. Since CFI is the
+    // only stack frame construction technique we have, aside from the
+    // context frame itself, there's no way for us to have a set of valid
+    // registers smaller than this.
+    expected_validity = (StackFrameARM::CONTEXT_VALID_PC |
+                         StackFrameARM::CONTEXT_VALID_SP |
+                         StackFrameARM::CONTEXT_VALID_R4 |
+                         StackFrameARM::CONTEXT_VALID_R5 |
+                         StackFrameARM::CONTEXT_VALID_R6 |
+                         StackFrameARM::CONTEXT_VALID_R7 |
+                         StackFrameARM::CONTEXT_VALID_R8 |
+                         StackFrameARM::CONTEXT_VALID_R9 |
+                         StackFrameARM::CONTEXT_VALID_R10 |
+                         StackFrameARM::CONTEXT_VALID_FP);
+
+    // By default, context frames provide all registers, as normal.
+    context_frame_validity = StackFrameARM::CONTEXT_VALID_ALL;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set the stack
+  // pointer to the stack's starting address.) Expect two stack
+  // frames; in the older frame, expect the callee-saves registers to
+  // have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region,
+                          &modules, &frame_symbolizer);
+    walker.SetContextFrameValidity(context_frame_validity);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(context_frame_validity, frame0->context_validity);
+    EXPECT_EQ("enchiridion", frame0->function_name);
+    EXPECT_EQ(0x40004000U, frame0->function_base);
+
+    StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ(expected_validity, frame1->context_validity);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R1)
+      EXPECT_EQ(expected.iregs[1], frame1->context.iregs[1]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R4)
+      EXPECT_EQ(expected.iregs[4], frame1->context.iregs[4]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R5)
+      EXPECT_EQ(expected.iregs[5], frame1->context.iregs[5]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R6)
+      EXPECT_EQ(expected.iregs[6], frame1->context.iregs[6]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R7)
+      EXPECT_EQ(expected.iregs[7], frame1->context.iregs[7]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R8)
+      EXPECT_EQ(expected.iregs[8], frame1->context.iregs[8]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R9)
+      EXPECT_EQ(expected.iregs[9], frame1->context.iregs[9]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_R10)
+      EXPECT_EQ(expected.iregs[10], frame1->context.iregs[10]);
+    if (expected_validity & StackFrameARM::CONTEXT_VALID_FP)
+      EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM_REG_FP],
+                frame1->context.iregs[MD_CONTEXT_ARM_REG_FP]);
+
+    // We would never have gotten a frame in the first place if the SP
+    // and PC weren't valid or ->instruction weren't set.
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM_REG_SP],
+              frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM_REG_PC],
+              frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_ARM_REG_PC],
+              frame1->instruction + 2);
+    EXPECT_EQ("epictetus", frame1->function_name);
+  }
+
+  // The values we expect to find for the caller's registers.
+  MDRawContextARM expected;
+
+  // The validity mask for expected.
+  int expected_validity;
+
+  // The validity mask to impose on the context frame.
+  int context_frame_validity;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+TEST_F(CFI, At4000) {
+  stack_section.start() = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004000;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_LR] = 0x40005510;
+  CheckWalk();
+}
+
+TEST_F(CFI, At4001) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0xb5d55e68)            // saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004001;
+  raw_context.iregs[4] = 0x635adc9f;                     // distinct callee r4
+  raw_context.iregs[MD_CONTEXT_ARM_REG_FP] = 0xbe145fc4; // distinct callee fp
+  CheckWalk();
+}
+
+// As above, but unwind from a context that has only the PC and SP.
+TEST_F(CFI, At4001LimitedValidity) {
+  context_frame_validity =
+    StackFrameARM::CONTEXT_VALID_PC | StackFrameARM::CONTEXT_VALID_SP;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004001;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_FP] = 0xbe145fc4; // distinct callee fp
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0xb5d55e68)            // saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  expected_validity = (StackFrameARM::CONTEXT_VALID_PC
+                       | StackFrameARM::CONTEXT_VALID_SP
+                       | StackFrameARM::CONTEXT_VALID_FP
+                       | StackFrameARM::CONTEXT_VALID_R4);
+  CheckWalk();
+}
+
+TEST_F(CFI, At4002) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0xfb81ff3d)            // no longer saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004002;
+  raw_context.iregs[0] = 0xb5d55e68;  // saved r4
+  raw_context.iregs[1] = 0xebd134f3;  // saved r5
+  raw_context.iregs[2] = 0xa31e74bc;  // saved r6
+  raw_context.iregs[3] = 0x2dcb16b3;  // saved r7
+  raw_context.iregs[4] = 0xfdd35466;  // distinct callee r4
+  raw_context.iregs[5] = 0xf18c946c;  // distinct callee r5
+  raw_context.iregs[6] = 0xac2079e8;  // distinct callee r6
+  raw_context.iregs[7] = 0xa449829f;  // distinct callee r7
+  raw_context.iregs[MD_CONTEXT_ARM_REG_FP] = 0xbe145fc4; // distinct callee fp
+  CheckWalk();
+}
+
+TEST_F(CFI, At4003) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0x48c8dd5a)            // saved r1 (even though it's not callee-saves)
+    .D32(0xcb78040e)            // no longer saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004003;
+  raw_context.iregs[1] = 0xfb756319;                     // distinct callee r1
+  raw_context.iregs[MD_CONTEXT_ARM_REG_FP] = 0x0a2857ea; // distinct callee fp
+  expected.iregs[1] = 0x48c8dd5a;    // caller's r1
+  expected_validity |= StackFrameARM::CONTEXT_VALID_R1;
+  CheckWalk();
+}
+
+// We have no new rule at module offset 0x4004, so the results here should
+// be the same as those at module offset 0x4003.
+TEST_F(CFI, At4004) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0x48c8dd5a)            // saved r1 (even though it's not callee-saves)
+    .D32(0xcb78040e)            // no longer saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004004;
+  raw_context.iregs[1] = 0xfb756319; // distinct callee r1
+  expected.iregs[1] = 0x48c8dd5a; // caller's r1
+  expected_validity |= StackFrameARM::CONTEXT_VALID_R1;
+  CheckWalk();
+}
+
+// Here we move the .cfa, but provide an explicit rule to recover the SP,
+// so again there should be no change in the registers recovered.
+TEST_F(CFI, At4005) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0x48c8dd5a)            // saved r1 (even though it's not callee-saves)
+    .D32(0xf013f841)            // no longer saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0x40005510)            // return address
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004005;
+  raw_context.iregs[1] = 0xfb756319; // distinct callee r1
+  expected.iregs[1] = 0x48c8dd5a; // caller's r1
+  expected_validity |= StackFrameARM::CONTEXT_VALID_R1;
+  CheckWalk();
+}
+
+// Here we provide an explicit rule for the PC, and have the saved .ra be
+// bogus.
+TEST_F(CFI, At4006) {
+  Label frame1_sp = expected.iregs[MD_CONTEXT_ARM_REG_SP];
+  stack_section
+    .D32(0x40005510)            // saved pc
+    .D32(0x48c8dd5a)            // saved r1 (even though it's not callee-saves)
+    .D32(0xf013f841)            // no longer saved r4
+    .D32(0x8112e110)            // saved fp
+    .D32(0xf8d15783)            // .ra rule recovers this, which is garbage
+    .Mark(&frame1_sp);          // This effectively sets stack_section.start().
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40004006;
+  raw_context.iregs[1] = 0xfb756319; // callee's r1, different from caller's
+  expected.iregs[1] = 0x48c8dd5a; // caller's r1
+  expected_validity |= StackFrameARM::CONTEXT_VALID_R1;
+  CheckWalk();
+}
+
+// Check that we reject rules that would cause the stack pointer to
+// move in the wrong direction.
+TEST_F(CFI, RejectBackwards) {
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40006000;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = 0x80000000;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_LR] = 0x40005510;
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
+
+// Check that we reject rules whose expressions' evaluation fails.
+TEST_F(CFI, RejectBadExpressions) {
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40007000;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = 0x80000000;
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, -1, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
+
+class StackwalkerARMFixtureIOS : public StackwalkerARMFixture {
+ public:
+  StackwalkerARMFixtureIOS() {
+    // iOS_test is used instead of iOS because the stackwalker has a check to
+    // avoid using CFI for iOS dumps. This is a workaround for bad CFI being
+    // produced by dump_syms for iOS.
+    // https://bugs.chromium.org/p/google-breakpad/issues/detail?id=764
+    system_info.os = "iOS_test";
+    system_info.os_short = "ios_test";
+  }
+};
+
+class GetFramesByFramePointer: public StackwalkerARMFixtureIOS, public Test { };
+
+TEST_F(GetFramesByFramePointer, OnlyFramePointer) {
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x50000100;
+  uint32_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  Label frame1_fp, frame2_fp;
+  stack_section
+    // frame 0
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000)         // a return address.
+
+    .Mark(&frame1_fp)        // Next fp will point to the next value.
+    .D32(frame2_fp)          // Save current frame pointer.
+    .D32(return_address2)    // Save current link register.
+    .Mark(&frame1_sp)
+
+    // frame 1
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000)         // a return address.
+
+    .Mark(&frame2_fp)
+    .D32(0)
+    .D32(0)
+    .Mark(&frame2_sp)
+
+    // frame 2
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000);        // a return address.
+  RegionFromSection();
+
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x40005510;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_LR] = return_address1;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_IOS_FP] = frame1_fp.Value();
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, MD_CONTEXT_ARM_REG_IOS_FP,
+                        &stack_region, &modules, &frame_symbolizer);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_LR |
+             StackFrameARM::RegisterValidFlag(MD_CONTEXT_ARM_REG_IOS_FP) |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(return_address2, frame1->context.iregs[MD_CONTEXT_ARM_REG_LR]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+  EXPECT_EQ(frame2_fp.Value(),
+            frame1->context.iregs[MD_CONTEXT_ARM_REG_IOS_FP]);
+
+  StackFrameARM *frame2 = static_cast<StackFrameARM*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame2->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_LR |
+             StackFrameARM::RegisterValidFlag(MD_CONTEXT_ARM_REG_IOS_FP) |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM_REG_LR]);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM_REG_IOS_FP]);
+}
+
+TEST_F(GetFramesByFramePointer, FramePointerAndCFI) {
+  // Provide the standatd STACK CFI records that is obtained when exmining an
+  // executable produced by XCode.
+  SetModuleSymbols(&module1,
+                     // Adding a function in CFI.
+                     "FUNC 4000 1000 10 enchiridion\n"
+
+                     "STACK CFI INIT 4000 100 .cfa: sp 0 + .ra: lr\n"
+                     "STACK CFI 4001 .cfa: sp 8 + .ra: .cfa -4 + ^"
+                     " r7: .cfa -8 + ^\n"
+                     "STACK CFI 4002 .cfa: r7 8 +\n"
+                  );
+
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x40004010;
+  uint32_t return_address2 = 0x50000900;
+  Label frame1_sp, frame2_sp;
+  Label frame1_fp, frame2_fp;
+  stack_section
+    // frame 0
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000)         // a return address.
+
+    .Mark(&frame1_fp)        // Next fp will point to the next value.
+    .D32(frame2_fp)          // Save current frame pointer.
+    .D32(return_address2)    // Save current link register.
+    .Mark(&frame1_sp)
+
+    // frame 1
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000)         // a return address.
+
+    .Mark(&frame2_fp)
+    .D32(0)
+    .D32(0)
+    .Mark(&frame2_sp)
+
+    // frame 2
+    .Append(32, 0)           // Whatever values on the stack.
+    .D32(0x0000000D)         // junk that's not
+    .D32(0xF0000000);        // a return address.
+  RegionFromSection();
+
+
+  raw_context.iregs[MD_CONTEXT_ARM_REG_PC] = 0x50000400;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_LR] = return_address1;
+  raw_context.iregs[MD_CONTEXT_ARM_REG_IOS_FP] = frame1_fp.Value();
+  raw_context.iregs[MD_CONTEXT_ARM_REG_SP] = stack_section.start().Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerARM walker(&system_info, &raw_context, MD_CONTEXT_ARM_REG_IOS_FP,
+                        &stack_region, &modules, &frame_symbolizer);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module2", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameARM *frame0 = static_cast<StackFrameARM*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameARM::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameARM *frame1 = static_cast<StackFrameARM*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_LR |
+             StackFrameARM::RegisterValidFlag(MD_CONTEXT_ARM_REG_IOS_FP) |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1, frame1->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(return_address2, frame1->context.iregs[MD_CONTEXT_ARM_REG_LR]);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+  EXPECT_EQ(frame2_fp.Value(),
+            frame1->context.iregs[MD_CONTEXT_ARM_REG_IOS_FP]);
+  EXPECT_EQ("enchiridion", frame1->function_name);
+  EXPECT_EQ(0x40004000U, frame1->function_base);
+
+
+  StackFrameARM *frame2 = static_cast<StackFrameARM*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame2->trust);
+  ASSERT_EQ((StackFrameARM::CONTEXT_VALID_PC |
+             StackFrameARM::CONTEXT_VALID_LR |
+             StackFrameARM::RegisterValidFlag(MD_CONTEXT_ARM_REG_IOS_FP) |
+             StackFrameARM::CONTEXT_VALID_SP),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2, frame2->context.iregs[MD_CONTEXT_ARM_REG_PC]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM_REG_LR]);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_ARM_REG_SP]);
+  EXPECT_EQ(0U, frame2->context.iregs[MD_CONTEXT_ARM_REG_IOS_FP]);
+}
diff --git a/src/processor/stackwalker_mips.cc b/src/processor/stackwalker_mips.cc
new file mode 100644
index 0000000..c33ecdb
--- /dev/null
+++ b/src/processor/stackwalker_mips.cc
@@ -0,0 +1,442 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_mips.cc: MIPS-specific stackwalker.
+//
+// See stackwalker_mips.h for documentation.
+//
+// Author: Tata Elxsi
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/cfi_frame_info.h"
+#include "processor/logging.h"
+#include "processor/postfix_evaluator-inl.h"
+#include "processor/stackwalker_mips.h"
+#include "processor/windows_frame_info.h"
+#include "google_breakpad/common/minidump_cpu_mips.h"
+
+namespace google_breakpad {
+
+StackwalkerMIPS::StackwalkerMIPS(const SystemInfo* system_info,
+                                 const MDRawContextMIPS* context,
+                                 MemoryRegion* memory,
+                                 const CodeModules* modules,
+                                 StackFrameSymbolizer* resolver_helper)
+: Stackwalker(system_info, memory, modules, resolver_helper),
+  context_(context) {
+  if (memory_) {
+    if (context_->context_flags & MD_CONTEXT_MIPS64 ) {
+      if (0xffffffffffffffff - memory_->GetBase() < memory_->GetSize() - 1) {
+        BPLOG(ERROR) << "Memory out of range for stackwalking mips64: "
+            << HexString(memory_->GetBase())
+            << "+"
+            << HexString(memory_->GetSize());
+        memory_ = NULL;
+      }
+    } else {
+      if (0xffffffff - memory_->GetBase() < memory_->GetSize() - 1) {
+        BPLOG(ERROR) << "Memory out of range for stackwalking mips32: "
+            << HexString(memory_->GetBase())
+            << "+"
+            << HexString(memory_->GetSize());
+        memory_ = NULL;
+      }
+    }
+  }
+}
+
+StackFrame* StackwalkerMIPS::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context.";
+    return NULL;
+  }
+
+  StackFrameMIPS* frame = new StackFrameMIPS();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFrameMIPS::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.epc;
+
+  return frame;
+}
+
+// Register names for mips.
+static const char* const kRegisterNames[] = {
+   "$zero", "$at", "$v0", "$v1", "$a0", "$a1", "$a2", "$a3", "$to", "$t1",
+   "$t2",   "$t3", "$t4", "$t5", "$t6", "$t7", "$s0", "$s1", "$s2", "$s3",
+   "$s4",   "$s5", "$s6", "$s7", "$t8", "$t9", "$k0", "$k1", "$gp", "$sp",
+   "$fp",   "$ra", NULL
+  // TODO(gordanac): add float point save registers
+};
+
+StackFrameMIPS* StackwalkerMIPS::GetCallerByCFIFrameInfo(
+    const vector<StackFrame*>& frames,
+    CFIFrameInfo* cfi_frame_info) {
+  StackFrameMIPS* last_frame = static_cast<StackFrameMIPS*>(frames.back());
+
+  if (context_->context_flags & MD_CONTEXT_MIPS) {
+    uint32_t pc = 0;
+
+    // Populate a dictionary with the valid register values in last_frame.
+    CFIFrameInfo::RegisterValueMap<uint32_t> callee_registers;
+    // Use the STACK CFI data to recover the caller's register values.
+    CFIFrameInfo::RegisterValueMap<uint32_t> caller_registers;
+
+    for (int i = 0; kRegisterNames[i]; ++i) {
+      caller_registers[kRegisterNames[i]] = last_frame->context.iregs[i];
+      callee_registers[kRegisterNames[i]] = last_frame->context.iregs[i];
+    }
+
+    if (!cfi_frame_info->FindCallerRegs(callee_registers, *memory_,
+        &caller_registers))  {
+      return NULL;
+    }
+
+    CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator entry =
+        caller_registers.find(".cfa");
+
+    if (entry != caller_registers.end()) {
+      caller_registers["$sp"] = entry->second;
+    }
+
+    entry = caller_registers.find(".ra");
+    if (entry != caller_registers.end()) {
+      caller_registers["$ra"] = entry->second;
+      pc = entry->second - 2 * sizeof(pc);
+    }
+    caller_registers["$pc"] = pc;
+    // Construct a new stack frame given the values the CFI recovered.
+    scoped_ptr<StackFrameMIPS> frame(new StackFrameMIPS());
+
+    for (int i = 0; kRegisterNames[i]; ++i) {
+      CFIFrameInfo::RegisterValueMap<uint32_t>::const_iterator caller_entry =
+          caller_registers.find(kRegisterNames[i]);
+
+      if (caller_entry != caller_registers.end()) {
+        // The value of this register is recovered; fill the context with the
+        // value from caller_registers.
+        frame->context.iregs[i] = caller_entry->second;
+        frame->context_validity |= StackFrameMIPS::RegisterValidFlag(i);
+      } else if (((i >= INDEX_MIPS_REG_S0 && i <= INDEX_MIPS_REG_S7) ||
+          (i > INDEX_MIPS_REG_GP && i < INDEX_MIPS_REG_RA)) &&
+          (last_frame->context_validity &
+              StackFrameMIPS::RegisterValidFlag(i))) {
+        // If the STACK CFI data doesn't mention some callee-save register, and
+        // it is valid in the callee, assume the callee has not yet changed it.
+        // Calee-save registers according to the MIPS o32 ABI specification are:
+        // $s0 to $s7
+        // $sp, $s8
+        frame->context.iregs[i] = last_frame->context.iregs[i];
+        frame->context_validity |= StackFrameMIPS::RegisterValidFlag(i);
+      }
+    }
+
+    frame->context.epc = caller_registers["$pc"];
+    frame->instruction = caller_registers["$pc"];
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_PC;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_RA] = caller_registers["$ra"];
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_RA;
+
+    frame->trust = StackFrame::FRAME_TRUST_CFI;
+
+    return frame.release();
+  } else {
+    uint64_t pc = 0;
+
+    // Populate a dictionary with the valid register values in last_frame.
+    CFIFrameInfo::RegisterValueMap<uint64_t> callee_registers;
+    // Use the STACK CFI data to recover the caller's register values.
+    CFIFrameInfo::RegisterValueMap<uint64_t> caller_registers;
+
+    for (int i = 0; kRegisterNames[i]; ++i) {
+      caller_registers[kRegisterNames[i]] = last_frame->context.iregs[i];
+      callee_registers[kRegisterNames[i]] = last_frame->context.iregs[i];
+    }
+
+    if (!cfi_frame_info->FindCallerRegs(callee_registers, *memory_,
+        &caller_registers))  {
+      return NULL;
+    }
+
+    CFIFrameInfo::RegisterValueMap<uint64_t>::const_iterator entry =
+        caller_registers.find(".cfa");
+
+    if (entry != caller_registers.end()) {
+      caller_registers["$sp"] = entry->second;
+    }
+
+    entry = caller_registers.find(".ra");
+    if (entry != caller_registers.end()) {
+      caller_registers["$ra"] = entry->second;
+      pc = entry->second - 2 * sizeof(pc);
+    }
+    caller_registers["$pc"] = pc;
+    // Construct a new stack frame given the values the CFI recovered.
+    scoped_ptr<StackFrameMIPS> frame(new StackFrameMIPS());
+
+    for (int i = 0; kRegisterNames[i]; ++i) {
+      CFIFrameInfo::RegisterValueMap<uint64_t>::const_iterator caller_entry =
+          caller_registers.find(kRegisterNames[i]);
+
+      if (caller_entry != caller_registers.end()) {
+        // The value of this register is recovered; fill the context with the
+        // value from caller_registers.
+        frame->context.iregs[i] = caller_entry->second;
+        frame->context_validity |= StackFrameMIPS::RegisterValidFlag(i);
+      } else if (((i >= INDEX_MIPS_REG_S0 && i <= INDEX_MIPS_REG_S7) ||
+          (i >= INDEX_MIPS_REG_GP && i < INDEX_MIPS_REG_RA)) &&
+          (last_frame->context_validity &
+              StackFrameMIPS::RegisterValidFlag(i))) {
+        // If the STACK CFI data doesn't mention some callee-save register, and
+        // it is valid in the callee, assume the callee has not yet changed it.
+        // Calee-save registers according to the MIPS o32 ABI specification are:
+        // $s0 to $s7
+        // $sp, $s8
+        frame->context.iregs[i] = last_frame->context.iregs[i];
+        frame->context_validity |= StackFrameMIPS::RegisterValidFlag(i);
+      }
+    }
+
+    frame->context.epc = caller_registers["$pc"];
+    frame->instruction = caller_registers["$pc"];
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_PC;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_RA] = caller_registers["$ra"];
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_RA;
+
+    frame->trust = StackFrame::FRAME_TRUST_CFI;
+
+    return frame.release();
+  }
+}
+
+StackFrame* StackwalkerMIPS::GetCallerFrame(const CallStack* stack,
+                                            bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  const vector<StackFrame*>& frames = *stack->frames();
+  StackFrameMIPS* last_frame = static_cast<StackFrameMIPS*>(frames.back());
+  scoped_ptr<StackFrameMIPS> new_frame;
+
+  // See if there is DWARF call frame information covering this address.
+  scoped_ptr<CFIFrameInfo> cfi_frame_info(
+    frame_symbolizer_->FindCFIFrameInfo(last_frame));
+  if (cfi_frame_info.get())
+    new_frame.reset(GetCallerByCFIFrameInfo(frames, cfi_frame_info.get()));
+
+  // If caller frame is not found in CFI try analyzing the stack.
+  if (stack_scan_allowed && !new_frame.get()) {
+    new_frame.reset(GetCallerByStackScan(frames));
+  }
+
+  // If nothing worked, tell the caller.
+  if (!new_frame.get()) {
+    return NULL;
+  }
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(new_frame->context.epc,
+                    new_frame->context.iregs[MD_CONTEXT_MIPS_REG_SP],
+                    last_frame->context.iregs[MD_CONTEXT_MIPS_REG_SP],
+                    frames.size() == 1)) {
+    return NULL;
+  }
+
+  return new_frame.release();
+}
+
+StackFrameMIPS* StackwalkerMIPS::GetCallerByStackScan(
+    const vector<StackFrame*>& frames) {
+  const uint32_t kMaxFrameStackSize = 1024;
+  const uint32_t kMinArgsOnStack = 4;
+
+  StackFrameMIPS* last_frame = static_cast<StackFrameMIPS*>(frames.back());
+
+  if (context_->context_flags & MD_CONTEXT_MIPS) {
+    uint32_t last_sp = last_frame->context.iregs[MD_CONTEXT_MIPS_REG_SP];
+    uint32_t caller_pc, caller_sp, caller_fp;
+
+    // Return address cannot be obtained directly.
+    // Force stackwalking.
+
+    // We cannot use frame pointer to get the return address.
+    // We'll scan the stack for a
+    // return address. This can happen if last_frame is executing code
+    // for a module for which we don't have symbols.
+    int count = kMaxFrameStackSize / sizeof(caller_pc);
+
+    if (frames.size() > 1) {
+      // In case of mips32 ABI stack frame of a nonleaf function
+      // must have minimum stack frame assigned for 4 arguments (4 words).
+      // Move stack pointer for 4 words to avoid reporting non-existing frames
+      // for all frames except the topmost one.
+      // There is no way of knowing if topmost frame belongs to a leaf or
+      // a nonleaf function.
+      last_sp +=  kMinArgsOnStack * sizeof(caller_pc);
+      // Adjust 'count' so that return address is scanned only in limits
+      // of one stack frame.
+      count -= kMinArgsOnStack;
+    }
+
+    do {
+      // Scanning for return address from stack pointer of the last frame.
+      if (!ScanForReturnAddress(last_sp, &caller_sp, &caller_pc, count)) {
+        // If we can't find an instruction pointer even with stack scanning,
+        // give up.
+        BPLOG(ERROR) << " ScanForReturnAddress failed ";
+        return NULL;
+      }
+      // Get $fp stored in the stack frame.
+      if (!memory_->GetMemoryAtAddress(caller_sp - sizeof(caller_pc),
+          &caller_fp)) {
+        BPLOG(INFO) << " GetMemoryAtAddress for fp failed " ;
+        return NULL;
+      }
+
+      count = count - (caller_sp - last_sp) / sizeof(caller_pc);
+      // Now scan the next address in the stack.
+      last_sp = caller_sp + sizeof(caller_pc);
+    } while ((caller_fp - caller_sp >= kMaxFrameStackSize) && count > 0);
+
+    if (!count) {
+      BPLOG(INFO) << " No frame found " ;
+      return NULL;
+    }
+
+    // ScanForReturnAddress found a reasonable return address. Advance
+    // $sp to the location above the one where the return address was
+    // found.
+    caller_sp += sizeof(caller_pc);
+    // caller_pc is actually containing $ra value;
+    // $pc is two instructions before $ra,
+    // so the caller_pc needs to be decremented accordingly.
+    caller_pc -= 2 * sizeof(caller_pc);
+
+    // Create a new stack frame (ownership will be transferred to the caller)
+    // and fill it in.
+    StackFrameMIPS* frame = new StackFrameMIPS();
+    frame->trust = StackFrame::FRAME_TRUST_SCAN;
+    frame->context = last_frame->context;
+    frame->context.epc = caller_pc;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_PC;
+    frame->instruction = caller_pc;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_SP] = caller_sp;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_SP;
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_FP] = caller_fp;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_FP;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_RA] =
+        caller_pc + 2 * sizeof(caller_pc);
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_RA;
+
+    return frame;
+  } else {
+    uint64_t last_sp = last_frame->context.iregs[MD_CONTEXT_MIPS_REG_SP];
+    uint64_t caller_pc, caller_sp, caller_fp;
+
+    // Return address cannot be obtained directly.
+    // Force stackwalking.
+
+    // We cannot use frame pointer to get the return address.
+    // We'll scan the stack for a
+    // return address. This can happen if last_frame is executing code
+    // for a module for which we don't have symbols.
+    int count = kMaxFrameStackSize / sizeof(caller_pc);
+
+    do {
+      // Scanning for return address from stack pointer of the last frame.
+      if (!ScanForReturnAddress(last_sp, &caller_sp, &caller_pc, count)) {
+        // If we can't find an instruction pointer even with stack scanning,
+        // give up.
+        BPLOG(ERROR) << " ScanForReturnAddress failed ";
+        return NULL;
+      }
+      // Get $fp stored in the stack frame.
+      if (!memory_->GetMemoryAtAddress(caller_sp - sizeof(caller_pc),
+          &caller_fp)) {
+        BPLOG(INFO) << " GetMemoryAtAddress for fp failed " ;
+        return NULL;
+      }
+
+      count = count - (caller_sp - last_sp) / sizeof(caller_pc);
+      // Now scan the next address in the stack.
+      last_sp = caller_sp + sizeof(caller_pc);
+    } while ((caller_fp - caller_sp >= kMaxFrameStackSize) && count > 0);
+
+    if (!count) {
+      BPLOG(INFO) << " No frame found " ;
+      return NULL;
+    }
+
+    // ScanForReturnAddress found a reasonable return address. Advance
+    // $sp to the location above the one where the return address was
+    // found.
+    caller_sp += sizeof(caller_pc);
+    // caller_pc is actually containing $ra value;
+    // $pc is two instructions before $ra,
+    // so the caller_pc needs to be decremented accordingly.
+    caller_pc -= 2 * sizeof(caller_pc);
+
+    // Create a new stack frame (ownership will be transferred to the caller)
+    // and fill it in.
+    StackFrameMIPS* frame = new StackFrameMIPS();
+    frame->trust = StackFrame::FRAME_TRUST_SCAN;
+    frame->context = last_frame->context;
+    frame->context.epc = caller_pc;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_PC;
+    frame->instruction = caller_pc;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_SP] = caller_sp;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_SP;
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_FP] = caller_fp;
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_FP;
+
+    frame->context.iregs[MD_CONTEXT_MIPS_REG_RA] =
+        caller_pc + 2 * sizeof(caller_pc);
+    frame->context_validity |= StackFrameMIPS::CONTEXT_VALID_RA;
+
+    return frame;
+  }
+}
+
+}  // namespace google_breakpad
+
diff --git a/src/processor/stackwalker_mips.h b/src/processor/stackwalker_mips.h
new file mode 100644
index 0000000..5f97791
--- /dev/null
+++ b/src/processor/stackwalker_mips.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_mips.h: MIPS-specific stackwalker.
+//
+// Provides stack frames given MIPS register context and a memory region
+// corresponding to a MIPSstack.
+//
+// Author: Tata Elxsi
+
+#ifndef PROCESSOR_STACKWALKER_MIPS_H__
+#define PROCESSOR_STACKWALKER_MIPS_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/cfi_frame_info.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerMIPS : public Stackwalker {
+ public:
+  // Context is a MIPS context object that gives access to mips-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly
+  // through to the base Stackwalker constructor.
+  StackwalkerMIPS(const SystemInfo* system_info,
+                  const MDRawContextMIPS* context,
+                  MemoryRegion* memory,
+                  const CodeModules* modules,
+                  StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // Implementation of Stackwalker, using mips context and stack conventions.
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Use cfi_frame_info (derived from STACK CFI records) to construct
+  // the frame that called frames.back(). The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameMIPS* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
+                                          CFIFrameInfo* cfi_frame_info);
+
+  // Scan the stack for plausible return address and frame pointer pair. 
+  // The caller takes ownership of the returned frame. Return NULL on failure.
+  StackFrameMIPS* GetCallerByStackScan(const vector<StackFrame*>& frames);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextMIPS* context_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STACKWALKER_MIPS_H__
diff --git a/src/processor/stackwalker_mips64_unittest.cc b/src/processor/stackwalker_mips64_unittest.cc
new file mode 100644
index 0000000..2a9784b
--- /dev/null
+++ b/src/processor/stackwalker_mips64_unittest.cc
@@ -0,0 +1,716 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Veljko Mihailovic <veljko.mihailovic@imgtec.com>
+
+// stackwalker_mips64_unittest.cc: Unit tests for StackwalkerMIPS class for
+// mips64 platforms.
+
+#include <string.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_mips.h"
+#include "processor/windows_frame_info.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameMIPS;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerMIPS;
+using google_breakpad::SystemInfo;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerMIPSFixture {
+ public:
+  StackwalkerMIPSFixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x00400000, 0x10000, "module1", "version1"),
+      module2(0x00500000, 0x10000, "module2", "version2") {
+    // Identify the system as a Linux system.
+    system_info.os = "Linux";
+    system_info.os_short = "linux";
+    system_info.os_version = "Observant Opossum";  // Jealous Jellyfish
+    system_info.cpu = "mips64";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char* buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextMIPS* raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); ++i)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextMIPS raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class SanityCheck: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  stack_section.start() = 0x80000000;
+  stack_section.D64(0).D64(0x0);
+  RegionFromSection();
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  // This should succeed, even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetContextFrame: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(GetContextFrame, Simple) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  stack_section.start() = 0x80000000;
+  stack_section.D64(0).D64(0x0);
+  RegionFromSection();
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, NULL, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(GetCallerFrame, ScanWithoutSymbols) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  // Force scanning through three frames to ensure that the
+  // stack pointer is set properly in scan-recovered frames.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x00400100;
+  uint64_t return_address2 = 0x00400900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D64(0x00490000)                    // junk that's not
+    .D64(0x00600000)                    // a return address
+
+    .D64(frame1_sp)                     // stack pointer
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0)                      // space
+
+    .D64(0xF0000000)                    // more junk
+    .D64(0x0000000D)
+
+    .D64(frame2_sp)                     // stack pointer
+    .D64(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1 - 2 * sizeof(return_address1), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+
+  StackFrameMIPS* frame2 = static_cast<StackFrameMIPS*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame2->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2 - 2 * sizeof(return_address2), frame2->context.epc);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+}
+
+TEST_F(GetCallerFrame, ScanWithFunctionSymbols) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  // During stack scanning, if a potential return address
+  // is located within a loaded module that has symbols,
+  // it is only considered a valid return address if it
+  // lies within a function's bounds.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address = 0x00500200;
+  Label frame1_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D64(0x00490000)                    // junk that's not
+    .D64(0x00600000)                    // a return address
+
+    .D64(0x00401000)                    // a couple of plausible addresses
+    .D64(0x0050F000)                    // that are not within functions
+
+    .D64(frame1_sp)                     // stack pointer
+    .D64(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00400200;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address;
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 monotreme\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 marsupial\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+  EXPECT_EQ("monotreme", frame0->function_name);
+  EXPECT_EQ(0x00400100U, frame0->function_base);
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address - 2 * sizeof(return_address), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+  EXPECT_EQ("marsupial", frame1->function_name);
+  EXPECT_EQ(0x00500100U, frame1->function_base);
+}
+
+TEST_F(GetCallerFrame, CheckStackFrameSizeLimit) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  // If the stackwalker resorts to stack scanning, it will scan only
+  // 1024 bytes of stack which correspondes to maximum size of stack frame.
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x00500100;
+  uint64_t return_address2 = 0x00500900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D64(0x00490000)                    // junk that's not
+    .D64(0x00600000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D64(frame1_sp)                     // stack pointer
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(128 * 4, 0)                 // space
+
+    .D64(0x00F00000)                    // more junk
+    .D64(0x0000000D)
+
+    .Append(128 * 4, 0)                 // more space
+
+    .D64(frame2_sp)                     // stack pointer
+    .D64(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1 - 2 * sizeof(return_address1), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  // When the stack walker resorts to scanning the stack,
+  // only fixed number of frames are allowed to be scanned out from stack
+  stack_section.start() = 0x80000000;
+  uint64_t return_address1 = 0x00500100;
+  uint64_t return_address2 = 0x00500900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D64(0x00490000)                    // junk that's not
+    .D64(0x00600000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D64(frame1_sp)                     // stack pointer
+    .D64(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(128 * 4, 0)                 // space
+
+    .D64(0x00F00000)                    // more junk
+    .D64(0x0000000D)
+
+    .Append(128 * 4, 0)                 // more space
+
+    .D64(frame2_sp)                     // stack pointer
+    .D64(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(64, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+}
+
+struct CFIFixture: public StackwalkerMIPSFixture {
+  CFIFixture() {
+    // Provide some STACK CFI records;
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 0 enchiridion\n"
+                     // Initially, nothing has been pushed on the stack,
+                     // and the return address is still in the $ra register.
+                     "STACK CFI INIT 4000 1000 .cfa: $sp 0 + .ra: $ra\n"
+                     // Move stack pointer.
+                     "STACK CFI 4004 .cfa: $sp 32 +\n"
+                     // store $fp and ra
+                     "STACK CFI 4008 $fp: .cfa -8 + ^ .ra: .cfa -4 + ^\n"
+                     // restore $fp
+                     "STACK CFI 400c .cfa: $fp 32 +\n"
+                     // restore $sp
+                     "STACK CFI 4018 .cfa: $sp 32 +\n"
+
+                     "STACK CFI 4020 $fp: $fp .cfa: $sp 0 + .ra: .ra\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 0 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 8 .cfa: $sp 0 + .ra: $ra\n"
+
+                     // A function whose CFI makes the stack pointer
+                     // go backwards.
+                     "FUNC 6000 1000 20 palinal\n"
+                     "STACK CFI INIT 6000 1000 .cfa: $sp 4 - .ra: $ra\n"
+
+                     // A function with CFI expressions that can't be
+                     // evaluated.
+                     "FUNC 7000 1000 20 rhetorical\n"
+                     "STACK CFI INIT 7000 1000 .cfa: moot .ra: ambiguous\n"
+                   );
+
+    // Provide some distinctive values for the caller's registers.
+    expected.epc = 0x00405500;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S0] = 0x0;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S1] = 0x1;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S2] = 0x2;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S3] = 0x3;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S4] = 0x4;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S5] = 0x5;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S6] = 0x6;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S7] = 0x7;
+    expected.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+    expected.iregs[MD_CONTEXT_MIPS_REG_FP] = 0x80000000;
+    expected.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+
+    // Expect CFI to recover all callee-save registers. Since CFI is the
+    // only stack frame construction technique we have, aside from the
+    // context frame itself, there's no way for us to have a set of valid
+    // registers smaller than this.
+    expected_validity = (StackFrameMIPS::CONTEXT_VALID_PC |
+                         StackFrameMIPS::CONTEXT_VALID_S0 |
+                         StackFrameMIPS::CONTEXT_VALID_S1 |
+                         StackFrameMIPS::CONTEXT_VALID_S2 |
+                         StackFrameMIPS::CONTEXT_VALID_S3 |
+                         StackFrameMIPS::CONTEXT_VALID_S4 |
+                         StackFrameMIPS::CONTEXT_VALID_S5 |
+                         StackFrameMIPS::CONTEXT_VALID_S6 |
+                         StackFrameMIPS::CONTEXT_VALID_S7 |
+                         StackFrameMIPS::CONTEXT_VALID_SP |
+                         StackFrameMIPS::CONTEXT_VALID_FP |
+                         StackFrameMIPS::CONTEXT_VALID_GP |
+                         StackFrameMIPS::CONTEXT_VALID_RA);
+
+    // By default, context frames provide all registers, as normal.
+    context_frame_validity = StackFrameMIPS::CONTEXT_VALID_ALL;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set the stack
+  // pointer to the stack's starting address.) Expect two stack
+  // frames; in the older frame, expect the callee-saves registers to
+  // have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerMIPS walker(&system_info, &raw_context, &stack_region,
+                           &modules, &frame_symbolizer);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ("enchiridion", frame0->function_name);
+    EXPECT_EQ(0x00404000U, frame0->function_base);
+
+    StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ(expected_validity, frame1->context_validity);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S0],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S0]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S1],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S1]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S2],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S2]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S3],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S3]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S4],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S4]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S5],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S5]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S6],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S6]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S7],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S7]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_FP],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_FP]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_RA],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_RA]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_SP],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+    EXPECT_EQ(expected.epc, frame1->context.epc);
+    EXPECT_EQ(expected.epc, frame1->instruction);
+    EXPECT_EQ("epictetus", frame1->function_name);
+    EXPECT_EQ(0x00405000U, frame1->function_base);
+  }
+
+  // The values we expect to find for the caller's registers.
+  MDRawContextMIPS expected;
+
+  // The validity mask for expected.
+  int expected_validity;
+
+  // The validity mask to impose on the context frame.
+  int context_frame_validity;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+// TODO(gordanac): add CFI tests
+
+TEST_F(CFI, At4004) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  Label frame1_sp = expected.iregs[MD_CONTEXT_MIPS_REG_SP];
+  stack_section
+    // frame0
+    .Append(16, 0)               // space
+    .D64(frame1_sp)              // stack pointer
+    .D64(0x00405510)             // return address
+    .Mark(&frame1_sp);           // This effectively sets stack_section.start().
+  raw_context.epc = 0x00404004;
+  CheckWalk();
+}
+
+// Check that we reject rules that would cause the stack pointer to
+// move in the wrong direction.
+TEST_F(CFI, RejectBackwards) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  raw_context.epc = 0x40005000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
+
+// Check that we reject rules whose expressions' evaluation fails.
+TEST_F(CFI, RejectBadExpressions) {
+  raw_context.context_flags =
+      raw_context.context_flags | MD_CONTEXT_MIPS64_FULL;
+  raw_context.epc = 0x00407000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
diff --git a/src/processor/stackwalker_mips_unittest.cc b/src/processor/stackwalker_mips_unittest.cc
new file mode 100644
index 0000000..a172f17
--- /dev/null
+++ b/src/processor/stackwalker_mips_unittest.cc
@@ -0,0 +1,704 @@
+// Copyright (c) 2013, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Gordana Cmiljanovic <gordana.cmiljanovic@imgtec.com>
+
+// stackwalker_mips_unittest.cc: Unit tests for StackwalkerMIPS class.
+
+#include <string.h>
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_mips.h"
+#include "processor/windows_frame_info.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameMIPS;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerMIPS;
+using google_breakpad::SystemInfo;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerMIPSFixture {
+ public:
+  StackwalkerMIPSFixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x00400000, 0x10000, "module1", "version1"),
+      module2(0x00500000, 0x10000, "module2", "version2") {
+    // Identify the system as a Linux system.
+    system_info.os = "Linux";
+    system_info.os_short = "linux";
+    system_info.os_version = "Observant Opossum";  // Jealous Jellyfish
+    system_info.cpu = "mips";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);    
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char* buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextMIPS* raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); ++i)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextMIPS raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class SanityCheck: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  stack_section.start() = 0x80000000;
+  stack_section.D32(0).D32(0x0);
+  RegionFromSection();
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  // This should succeed, even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetContextFrame: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(GetContextFrame, Simple) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  stack_section.start() = 0x80000000;
+  stack_section.D32(0).D32(0x0);
+  RegionFromSection();
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  raw_context.epc = 0x00400020;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, NULL, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameMIPS* frame = static_cast<StackFrameMIPS*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerMIPSFixture, public Test { };
+
+TEST_F(GetCallerFrame, ScanWithoutSymbols) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  // When the stack walker resorts to scanning the stack,
+  // only addresses located within loaded modules are
+  // considered valid return addresses.
+  // Force scanning through three frames to ensure that the
+  // stack pointer is set properly in scan-recovered frames.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x00400100;
+  uint32_t return_address2 = 0x00400900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D32(0x00490000)                    // junk that's not
+    .D32(0x00600000)                    // a return address
+
+    .D32(frame1_sp)                     // stack pointer
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(16, 0)                      // space
+
+    .D32(0xF0000000)                    // more junk
+    .D32(0x0000000D)
+
+    .D32(frame2_sp)                     // stack pointer
+    .D32(return_address2)               // actual return address
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1 - 2 * sizeof(return_address1), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+
+  StackFrameMIPS* frame2 = static_cast<StackFrameMIPS*>(frames->at(2));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame2->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame2->context_validity);
+  EXPECT_EQ(return_address2 - 2 * sizeof(return_address2), frame2->context.epc);
+  EXPECT_EQ(frame2_sp.Value(), frame2->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+}
+
+TEST_F(GetCallerFrame, ScanWithFunctionSymbols) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  // During stack scanning, if a potential return address
+  // is located within a loaded module that has symbols,
+  // it is only considered a valid return address if it
+  // lies within a function's bounds.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address = 0x00500200;
+  Label frame1_sp;
+  stack_section
+    // frame 0
+    .Append(16, 0)                      // space
+
+    .D32(0x00490000)                    // junk that's not
+    .D32(0x00600000)                    // a return address
+    
+    .D32(0x00401000)                    // a couple of plausible addresses
+    .D32(0x0050F000)                    // that are not within functions
+
+    .D32(frame1_sp)                     // stack pointer
+    .D32(return_address)                // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00400200;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address;
+
+  SetModuleSymbols(&module1,
+                   // The youngest frame's function.
+                   "FUNC 100 400 10 monotreme\n");
+  SetModuleSymbols(&module2,
+                   // The calling frame's function.
+                   "FUNC 100 400 10 marsupial\n");
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+  EXPECT_EQ("monotreme", frame0->function_name);
+  EXPECT_EQ(0x00400100U, frame0->function_base);
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address - 2 * sizeof(return_address), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+  EXPECT_EQ("marsupial", frame1->function_name);
+  EXPECT_EQ(0x00500100U, frame1->function_base);
+}
+
+TEST_F(GetCallerFrame, CheckStackFrameSizeLimit) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  // If the stackwalker resorts to stack scanning, it will scan only
+  // 1024 bytes of stack which correspondes to maximum size of stack frame.
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x00500100;
+  uint32_t return_address2 = 0x00500900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D32(0x00490000)                    // junk that's not
+    .D32(0x00600000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D32(frame1_sp)                     // stack pointer
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(128 * 4, 0)                 // space
+
+    .D32(0x00F00000)                    // more junk
+    .D32(0x0000000D)
+
+    .Append(128 * 4, 0)                 // more space
+
+    .D32(frame2_sp)                     // stack pointer
+    .D32(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(2U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ("module2", modules_without_symbols[1]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+
+  StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+  ASSERT_EQ((StackFrameMIPS::CONTEXT_VALID_PC |
+             StackFrameMIPS::CONTEXT_VALID_SP |
+             StackFrameMIPS::CONTEXT_VALID_FP |
+             StackFrameMIPS::CONTEXT_VALID_RA),
+            frame1->context_validity);
+  EXPECT_EQ(return_address1 - 2 * sizeof(return_address1), frame1->context.epc);
+  EXPECT_EQ(frame1_sp.Value(), frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  // When the stack walker resorts to scanning the stack,
+  // only fixed number of frames are allowed to be scanned out from stack
+  stack_section.start() = 0x80000000;
+  uint32_t return_address1 = 0x00500100;
+  uint32_t return_address2 = 0x00500900;
+  Label frame1_sp, frame2_sp;
+  stack_section
+    // frame 0
+    .Append(32, 0)                      // space
+
+    .D32(0x00490000)                    // junk that's not
+    .D32(0x00600000)                    // a return address
+
+    .Append(96, 0)                      // more space
+
+    .D32(frame1_sp)                     // stack pointer
+    .D32(return_address1)               // actual return address
+    // frame 1
+    .Mark(&frame1_sp)
+    .Append(128 * 4, 0)                 // space
+
+    .D32(0x00F00000)                    // more junk
+    .D32(0x0000000D)
+
+    .Append(128 * 4, 0)                 // more space
+
+    .D32(frame2_sp)                     // stack pointer
+    .D32(return_address2)               // actual return address
+                                        // (won't be found)
+    // frame 2
+    .Mark(&frame2_sp)
+    .Append(32, 0);                     // end of stack
+  RegionFromSection();
+
+  raw_context.epc = 0x00405510;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = return_address1;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+                         
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+  EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+  ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+  EXPECT_EQ(0, memcmp(&raw_context, &frame0->context, sizeof(raw_context)));
+}
+
+struct CFIFixture: public StackwalkerMIPSFixture {
+  CFIFixture() {
+    // Provide some STACK CFI records;
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 0 enchiridion\n"
+                     // Initially, nothing has been pushed on the stack,
+                     // and the return address is still in the $ra register.
+                     "STACK CFI INIT 4000 1000 .cfa: $sp 0 + .ra: $ra\n"
+                     // Move stack pointer.
+                     "STACK CFI 4004 .cfa: $sp 32 +\n"
+                     // store $fp and ra
+                     "STACK CFI 4008 $fp: .cfa -8 + ^ .ra: .cfa -4 + ^\n"
+                     // restore $fp
+                     "STACK CFI 400c .cfa: $fp 32 +\n"
+                     // restore $sp
+                     "STACK CFI 4018 .cfa: $sp 32 +\n"
+
+                     "STACK CFI 4020 $fp: $fp .cfa: $sp 0 + .ra: .ra\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 0 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 8 .cfa: $sp 0 + .ra: $ra\n"
+
+                     // A function whose CFI makes the stack pointer
+                     // go backwards.
+                     "FUNC 6000 1000 20 palinal\n"
+                     "STACK CFI INIT 6000 1000 .cfa: $sp 4 - .ra: $ra\n"
+
+                     // A function with CFI expressions that can't be
+                     // evaluated.
+                     "FUNC 7000 1000 20 rhetorical\n"
+                     "STACK CFI INIT 7000 1000 .cfa: moot .ra: ambiguous\n"
+                   );
+
+    // Provide some distinctive values for the caller's registers.
+    expected.epc = 0x00405508;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S0] = 0x0;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S1] = 0x1;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S2] = 0x2;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S3] = 0x3;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S4] = 0x4;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S5] = 0x5;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S6] = 0x6;
+    expected.iregs[MD_CONTEXT_MIPS_REG_S7] = 0x7;
+    expected.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+    expected.iregs[MD_CONTEXT_MIPS_REG_FP] = 0x80000000;
+    expected.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+
+    // Expect CFI to recover all callee-save registers. Since CFI is the
+    // only stack frame construction technique we have, aside from the
+    // context frame itself, there's no way for us to have a set of valid
+    // registers smaller than this.
+    expected_validity = (StackFrameMIPS::CONTEXT_VALID_PC |
+                         StackFrameMIPS::CONTEXT_VALID_S0 |
+                         StackFrameMIPS::CONTEXT_VALID_S1 |
+                         StackFrameMIPS::CONTEXT_VALID_S2 |
+                         StackFrameMIPS::CONTEXT_VALID_S3 |
+                         StackFrameMIPS::CONTEXT_VALID_S4 |
+                         StackFrameMIPS::CONTEXT_VALID_S5 |
+                         StackFrameMIPS::CONTEXT_VALID_S6 |
+                         StackFrameMIPS::CONTEXT_VALID_S7 |
+                         StackFrameMIPS::CONTEXT_VALID_SP |
+                         StackFrameMIPS::CONTEXT_VALID_FP |
+                         StackFrameMIPS::CONTEXT_VALID_RA);
+
+    // By default, context frames provide all registers, as normal.
+    context_frame_validity = StackFrameMIPS::CONTEXT_VALID_ALL;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set the stack
+  // pointer to the stack's starting address.) Expect two stack
+  // frames; in the older frame, expect the callee-saves registers to
+  // have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerMIPS walker(&system_info, &raw_context, &stack_region,
+                           &modules, &frame_symbolizer);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    StackFrameMIPS* frame0 = static_cast<StackFrameMIPS*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameMIPS::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ("enchiridion", frame0->function_name);
+    EXPECT_EQ(0x00404000U, frame0->function_base);
+
+    StackFrameMIPS* frame1 = static_cast<StackFrameMIPS*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ(expected_validity, frame1->context_validity);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S0],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S0]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S1],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S1]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S2],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S2]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S3],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S3]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S4],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S4]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S5],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S5]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S6],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S6]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_S7],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_S7]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_FP],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_FP]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_RA],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_RA]);
+    EXPECT_EQ(expected.iregs[MD_CONTEXT_MIPS_REG_SP],
+              frame1->context.iregs[MD_CONTEXT_MIPS_REG_SP]);
+    EXPECT_EQ(expected.epc, frame1->context.epc);
+    EXPECT_EQ(expected.epc, frame1->instruction);
+    EXPECT_EQ("epictetus", frame1->function_name);
+    EXPECT_EQ(0x00405000U, frame1->function_base);    
+  }
+
+  // The values we expect to find for the caller's registers.
+  MDRawContextMIPS expected;
+
+  // The validity mask for expected.
+  int expected_validity;
+
+  // The validity mask to impose on the context frame.
+  int context_frame_validity;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+// TODO(gordanac): add CFI tests
+
+TEST_F(CFI, At4004) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  Label frame1_sp = expected.iregs[MD_CONTEXT_MIPS_REG_SP];
+  stack_section
+    // frame0
+    .Append(24, 0)               // space
+    .D32(frame1_sp)              // stack pointer
+    .D32(0x00405510)             // return address
+    .Mark(&frame1_sp);           // This effectively sets stack_section.start().
+  raw_context.epc = 0x00404004;
+  CheckWalk();
+}
+
+// Check that we reject rules that would cause the stack pointer to
+// move in the wrong direction.
+TEST_F(CFI, RejectBackwards) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  raw_context.epc = 0x40005000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+  
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
+
+// Check that we reject rules whose expressions' evaluation fails.
+TEST_F(CFI, RejectBadExpressions) {
+  raw_context.context_flags = raw_context.context_flags | MD_CONTEXT_MIPS_FULL;
+  raw_context.epc = 0x00407000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_SP] = 0x80000000;
+  raw_context.iregs[MD_CONTEXT_MIPS_REG_RA] = 0x00405510;
+  
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerMIPS walker(&system_info, &raw_context, &stack_region, &modules,
+                         &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+}
diff --git a/src/processor/stackwalker_ppc.cc b/src/processor/stackwalker_ppc.cc
new file mode 100644
index 0000000..1e34c38
--- /dev/null
+++ b/src/processor/stackwalker_ppc.cc
@@ -0,0 +1,155 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_ppc.cc: ppc-specific stackwalker.
+//
+// See stackwalker_ppc.h for documentation.
+//
+// Author: Mark Mentovai
+
+
+#include "common/scoped_ptr.h"
+#include "processor/stackwalker_ppc.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+
+StackwalkerPPC::StackwalkerPPC(const SystemInfo* system_info,
+                               const MDRawContextPPC* context,
+                               MemoryRegion* memory,
+                               const CodeModules* modules,
+                               StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context) {
+  if (memory_ && memory_->GetBase() + memory_->GetSize() - 1 > 0xffffffff) {
+    // This implementation only covers 32-bit ppc CPUs.  The limits of the
+    // supplied stack are invalid.  Mark memory_ = NULL, which will cause
+    // stackwalking to fail.
+    BPLOG(ERROR) << "Memory out of range for stackwalking: " <<
+                    HexString(memory_->GetBase()) << "+" <<
+                    HexString(memory_->GetSize());
+    memory_ = NULL;
+  }
+}
+
+
+StackFrame* StackwalkerPPC::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFramePPC* frame = new StackFramePPC();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFramePPC::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.srr0;
+
+  return frame;
+}
+
+
+StackFrame* StackwalkerPPC::GetCallerFrame(const CallStack* stack,
+                                           bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  // The instruction pointers for previous frames are saved on the stack.
+  // The typical ppc calling convention is for the called procedure to store
+  // its return address in the calling procedure's stack frame at 8(%r1),
+  // and to allocate its own stack frame by decrementing %r1 (the stack
+  // pointer) and saving the old value of %r1 at 0(%r1).  Because the ppc has
+  // no hardware stack, there is no distinction between the stack pointer and
+  // frame pointer, and what is typically thought of as the frame pointer on
+  // an x86 is usually referred to as the stack pointer on a ppc.
+
+  StackFramePPC* last_frame = static_cast<StackFramePPC*>(
+      stack->frames()->back());
+
+  // A caller frame must reside higher in memory than its callee frames.
+  // Anything else is an error, or an indication that we've reached the
+  // end of the stack.
+  uint32_t stack_pointer;
+  if (!memory_->GetMemoryAtAddress(last_frame->context.gpr[1],
+                                   &stack_pointer) ||
+      stack_pointer <= last_frame->context.gpr[1]) {
+    return NULL;
+  }
+
+  // Mac OS X/Darwin gives 1 as the return address from the bottom-most
+  // frame in a stack (a thread's entry point).  I haven't found any
+  // documentation on this, but 0 or 1 would be bogus return addresses,
+  // so check for them here and return false (end of stack) when they're
+  // hit to avoid having a phantom frame.
+  uint32_t instruction;
+  if (!memory_->GetMemoryAtAddress(stack_pointer + 8, &instruction) ||
+      instruction <= 1) {
+    return NULL;
+  }
+
+  scoped_ptr<StackFramePPC> frame(new StackFramePPC());
+
+  frame->context = last_frame->context;
+  frame->context.srr0 = instruction;
+  frame->context.gpr[1] = stack_pointer;
+  frame->context_validity = StackFramePPC::CONTEXT_VALID_SRR0 |
+                            StackFramePPC::CONTEXT_VALID_GPR1;
+  frame->trust = StackFrame::FRAME_TRUST_FP;
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(instruction,
+                    stack_pointer,
+                    last_frame->context.gpr[1],
+                    stack->frames()->size() == 1)) {
+    return NULL;
+  }
+
+  // frame->context.srr0 is the return address, which is one instruction
+  // past the branch that caused us to arrive at the callee.  Set
+  // frame_ppc->instruction to four less than that.  Since all ppc
+  // instructions are 4 bytes wide, this is the address of the branch
+  // instruction.  This allows source line information to match up with the
+  // line that contains a function call.  Callers that require the exact
+  // return address value may access the context.srr0 field of StackFramePPC.
+  frame->instruction = frame->context.srr0 - 4;
+
+  return frame.release();
+}
+
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_ppc.h b/src/processor/stackwalker_ppc.h
new file mode 100644
index 0000000..012e5c3
--- /dev/null
+++ b/src/processor/stackwalker_ppc.h
@@ -0,0 +1,79 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_ppc.h: ppc-specific stackwalker.
+//
+// Provides stack frames given ppc register context and a memory region
+// corresponding to a ppc stack.
+//
+// Author: Mark Mentovai
+
+
+#ifndef PROCESSOR_STACKWALKER_PPC_H__
+#define PROCESSOR_STACKWALKER_PPC_H__
+
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerPPC : public Stackwalker {
+ public:
+  // context is a ppc context object that gives access to ppc-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerPPC(const SystemInfo* system_info,
+                 const MDRawContextPPC* context,
+                 MemoryRegion* memory,
+                 const CodeModules* modules,
+                 StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // Implementation of Stackwalker, using ppc context (stack pointer in %r1,
+  // saved program counter in %srr0) and stack conventions (saved stack
+  // pointer at 0(%r1), return address at 8(0(%r1)).
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextPPC* context_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_PPC_H__
diff --git a/src/processor/stackwalker_ppc64.cc b/src/processor/stackwalker_ppc64.cc
new file mode 100644
index 0000000..fb2bac3
--- /dev/null
+++ b/src/processor/stackwalker_ppc64.cc
@@ -0,0 +1,146 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_ppc64.cc: ppc64-specific stackwalker.
+//
+// See stackwalker_ppc64.h for documentation.
+
+
+#include "common/scoped_ptr.h"
+#include "processor/stackwalker_ppc64.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/logging.h"
+
+#include <stdio.h>
+
+namespace google_breakpad {
+
+
+StackwalkerPPC64::StackwalkerPPC64(const SystemInfo* system_info,
+                                   const MDRawContextPPC64* context,
+                                   MemoryRegion* memory,
+                                   const CodeModules* modules,
+                                   StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context) {
+}
+
+
+StackFrame* StackwalkerPPC64::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFramePPC64* frame = new StackFramePPC64();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFramePPC64::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.srr0;
+
+  return frame;
+}
+
+
+StackFrame* StackwalkerPPC64::GetCallerFrame(const CallStack* stack,
+                                             bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  // The instruction pointers for previous frames are saved on the stack.
+  // The typical ppc64 calling convention is for the called procedure to store
+  // its return address in the calling procedure's stack frame at 8(%r1),
+  // and to allocate its own stack frame by decrementing %r1 (the stack
+  // pointer) and saving the old value of %r1 at 0(%r1).  Because the ppc64 has
+  // no hardware stack, there is no distinction between the stack pointer and
+  // frame pointer, and what is typically thought of as the frame pointer on
+  // an x86 is usually referred to as the stack pointer on a ppc64.
+
+  StackFramePPC64* last_frame = static_cast<StackFramePPC64*>(
+      stack->frames()->back());
+
+  // A caller frame must reside higher in memory than its callee frames.
+  // Anything else is an error, or an indication that we've reached the
+  // end of the stack.
+  uint64_t stack_pointer;
+  if (!memory_->GetMemoryAtAddress(last_frame->context.gpr[1],
+                                   &stack_pointer) ||
+      stack_pointer <= last_frame->context.gpr[1]) {
+    return NULL;
+  }
+
+  // Mac OS X/Darwin gives 1 as the return address from the bottom-most
+  // frame in a stack (a thread's entry point).  I haven't found any
+  // documentation on this, but 0 or 1 would be bogus return addresses,
+  // so check for them here and return false (end of stack) when they're
+  // hit to avoid having a phantom frame.
+  uint64_t instruction;
+  if (!memory_->GetMemoryAtAddress(stack_pointer + 16, &instruction) ||
+      instruction <= 1) {
+    return NULL;
+  }
+
+  scoped_ptr<StackFramePPC64> frame(new StackFramePPC64());
+
+  frame->context = last_frame->context;
+  frame->context.srr0 = instruction;
+  frame->context.gpr[1] = stack_pointer;
+  frame->context_validity = StackFramePPC64::CONTEXT_VALID_SRR0 |
+                            StackFramePPC64::CONTEXT_VALID_GPR1;
+  frame->trust = StackFrame::FRAME_TRUST_FP;
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(instruction,
+                    stack_pointer,
+                    last_frame->context.gpr[1],
+                    stack->frames()->size() == 1)) {
+    return NULL;
+  }
+
+  // frame->context.srr0 is the return address, which is one instruction
+  // past the branch that caused us to arrive at the callee.  Set
+  // frame_ppc64->instruction to eight less than that.  Since all ppc64
+  // instructions are 8 bytes wide, this is the address of the branch
+  // instruction.  This allows source line information to match up with the
+  // line that contains a function call.  Callers that require the exact
+  // return address value may access the context.srr0 field of StackFramePPC64.
+  frame->instruction = frame->context.srr0 - 8;
+
+  return frame.release();
+}
+
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_ppc64.h b/src/processor/stackwalker_ppc64.h
new file mode 100644
index 0000000..a406343
--- /dev/null
+++ b/src/processor/stackwalker_ppc64.h
@@ -0,0 +1,77 @@
+// Copyright (c) 2013 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_ppc64.h: ppc-specific stackwalker.
+//
+// Provides stack frames given ppc64 register context and a memory region
+// corresponding to a ppc64 stack.
+
+
+#ifndef PROCESSOR_STACKWALKER_PPC64_H__
+#define PROCESSOR_STACKWALKER_PPC64_H__
+
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerPPC64 : public Stackwalker {
+ public:
+  // context is a ppc64 context object that gives access to ppc64-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerPPC64(const SystemInfo* system_info,
+                   const MDRawContextPPC64* context,
+                   MemoryRegion* memory,
+                   const CodeModules* modules,
+                   StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // Implementation of Stackwalker, using ppc64 context (stack pointer in %r1,
+  // saved program counter in %srr0) and stack conventions (saved stack
+  // pointer at 0(%r1), return address at 8(0(%r1)).
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextPPC64* context_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_PPC64_H__
diff --git a/src/processor/stackwalker_selftest.cc b/src/processor/stackwalker_selftest.cc
new file mode 100644
index 0000000..dcb2df0
--- /dev/null
+++ b/src/processor/stackwalker_selftest.cc
@@ -0,0 +1,433 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_selftest.cc: Tests StackwalkerX86 or StackwalkerPPC using the
+// running process' stack as test data, if running on an x86 or ppc and
+// compiled with gcc.  This test is not enabled in the "make check" suite
+// by default, because certain optimizations interfere with its proper
+// operation.  To turn it on, configure with --enable-selftest.
+//
+// Optimizations that cause problems:
+//  - stack frame reuse.  The Recursor function here calls itself with
+//    |return Recursor|.  When the caller's frame is reused, it will cause
+//    CountCallerFrames to correctly return the same number of frames
+//    in both the caller and callee.  This is considered an unexpected
+//    condition in the test, which expects a callee to have one more
+//    caller frame in the stack than its caller.
+//  - frame pointer omission.  Even with a stackwalker that understands
+//    this optimization, the code to harness debug information currently
+//    only exists to retrieve it from minidumps, not the current process.
+//
+// This test can also serve as a developmental and debugging aid if
+// PRINT_STACKS is defined.
+//
+// Author: Mark Mentovai
+
+#include <assert.h>
+
+#include "processor/logging.h"
+
+#if defined(__i386) && !defined(__i386__)
+#define __i386__
+#endif
+#if defined(__sparc) && !defined(__sparc__)
+#define __sparc__
+#endif
+ 
+#if (defined(__SUNPRO_CC) || defined(__GNUC__)) && \
+    (defined(__i386__) || defined(__ppc__) || defined(__sparc__))
+
+
+#include <stdio.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::MemoryRegion;
+using google_breakpad::scoped_ptr;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFramePPC;
+using google_breakpad::StackFrameX86;
+using google_breakpad::StackFrameSPARC;
+
+#if defined(__i386__)
+#include "processor/stackwalker_x86.h"
+using google_breakpad::StackwalkerX86;
+#elif defined(__ppc__)
+#include "processor/stackwalker_ppc.h"
+using google_breakpad::StackwalkerPPC;
+#elif defined(__sparc__)
+#include "processor/stackwalker_sparc.h"
+using google_breakpad::StackwalkerSPARC;
+#endif  // __i386__ || __ppc__ || __sparc__
+
+#define RECURSION_DEPTH 100
+
+
+// A simple MemoryRegion subclass that provides direct access to this
+// process' memory space by pointer.
+class SelfMemoryRegion : public MemoryRegion {
+ public:
+  virtual uint64_t GetBase() const { return 0; }
+  virtual uint32_t GetSize() const { return 0xffffffff; }
+
+  bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const {
+      return GetMemoryAtAddressInternal(address, value); }
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+      return GetMemoryAtAddressInternal(address, value); }
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+      return GetMemoryAtAddressInternal(address, value); }
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+      return GetMemoryAtAddressInternal(address, value); }
+  void Print() const {
+    assert(false);
+  }
+
+ private:
+  template<typename T> bool GetMemoryAtAddressInternal(uint64_t address,
+                                                       T*        value) {
+    // Without knowing what addresses are actually mapped, just assume that
+    // everything low is not mapped.  This helps the stackwalker catch the
+    // end of a stack when it tries to dereference a null or low pointer
+    // in an attempt to find the caller frame.  Other unmapped accesses will
+    // cause the program to crash, but that would properly be a test failure.
+    if (address < 0x100)
+      return false;
+
+    uint8_t* memory = 0;
+    *value = *reinterpret_cast<const T*>(&memory[address]);
+    return true;
+  }
+};
+
+
+#if defined(__GNUC__)
+
+
+#if defined(__i386__)
+
+// GetEBP returns the current value of the %ebp register.  Because it's
+// implemented as a function, %ebp itself contains GetEBP's frame pointer
+// and not the caller's frame pointer.  Dereference %ebp to obtain the
+// caller's frame pointer, which the compiler-generated preamble stored
+// on the stack (provided frame pointers are not being omitted.)  Because
+// this function depends on the compiler-generated preamble, inlining is
+// disabled.
+static uint32_t GetEBP() __attribute__((noinline));
+static uint32_t GetEBP() {
+  uint32_t ebp;
+  __asm__ __volatile__(
+    "movl (%%ebp), %0"
+    : "=a" (ebp)
+  );
+  return ebp;
+}
+
+
+// The caller's %esp is 8 higher than the value of %ebp in this function,
+// assuming that it's not inlined and that the standard prolog is used.
+// The CALL instruction places a 4-byte return address on the stack above
+// the caller's %esp, and this function's prolog will save the caller's %ebp
+// on the stack as well, for another 4 bytes, before storing %esp in %ebp.
+static uint32_t GetESP() __attribute__((noinline));
+static uint32_t GetESP() {
+  uint32_t ebp;
+  __asm__ __volatile__(
+    "movl %%ebp, %0"
+    : "=a" (ebp)
+  );
+  return ebp + 8;
+}
+
+
+// GetEIP returns the instruction pointer identifying the next instruction
+// to execute after GetEIP returns.  It obtains this information from the
+// stack, where it was placed by the call instruction that called GetEIP.
+// This function depends on frame pointers not being omitted.  It is possible
+// to write a pure asm version of this routine that has no compiler-generated
+// preamble and uses %esp instead of %ebp; that would function in the
+// absence of frame pointers.  However, the simpler approach is used here
+// because GetEBP and stackwalking necessarily depends on access to frame
+// pointers.  Because this function depends on a call instruction and the
+// compiler-generated preamble, inlining is disabled.
+static uint32_t GetEIP() __attribute__((noinline));
+static uint32_t GetEIP() {
+  uint32_t eip;
+  __asm__ __volatile__(
+    "movl 4(%%ebp), %0"
+    : "=a" (eip)
+  );
+  return eip;
+}
+
+
+#elif defined(__ppc__)
+
+
+// GetSP returns the current value of the %r1 register, which by convention,
+// is the stack pointer on ppc.  Because it's implemented as a function,
+// %r1 itself contains GetSP's own stack pointer and not the caller's stack
+// pointer.  Dereference %r1 to obtain the caller's stack pointer, which the
+// compiler-generated prolog stored on the stack.  Because this function
+// depends on the compiler-generated prolog, inlining is disabled.
+static uint32_t GetSP() __attribute__((noinline));
+static uint32_t GetSP() {
+  uint32_t sp;
+  __asm__ __volatile__(
+    "lwz %0, 0(r1)"
+    : "=r" (sp)
+  );
+  return sp;
+}
+
+
+// GetPC returns the program counter identifying the next instruction to
+// execute after GetPC returns.  It obtains this information from the
+// link register, where it was placed by the branch instruction that called
+// GetPC.  Because this function depends on the caller's use of a branch
+// instruction, inlining is disabled.
+static uint32_t GetPC() __attribute__((noinline));
+static uint32_t GetPC() {
+  uint32_t lr;
+  __asm__ __volatile__(
+    "mflr %0"
+    : "=r" (lr)
+  );
+  return lr;
+}
+
+
+#elif defined(__sparc__)
+
+
+// GetSP returns the current value of the %sp/%o6/%g_r[14] register, which 
+// by convention, is the stack pointer on sparc.  Because it's implemented
+// as a function, %sp itself contains GetSP's own stack pointer and not 
+// the caller's stack pointer.  Dereference  to obtain the caller's stack 
+// pointer, which the compiler-generated prolog stored on the stack.
+// Because this function depends on the compiler-generated prolog, inlining
+// is disabled.
+static uint32_t GetSP() __attribute__((noinline));
+static uint32_t GetSP() {
+  uint32_t sp;
+  __asm__ __volatile__(
+    "mov %%fp, %0"
+    : "=r" (sp)
+  );
+  return sp;
+}
+
+// GetFP returns the current value of the %fp register.  Because it's
+// implemented as a function, %fp itself contains GetFP's frame pointer
+// and not the caller's frame pointer.  Dereference %fp to obtain the
+// caller's frame pointer, which the compiler-generated preamble stored
+// on the stack (provided frame pointers are not being omitted.)  Because
+// this function depends on the compiler-generated preamble, inlining is
+// disabled.
+static uint32_t GetFP() __attribute__((noinline));
+static uint32_t GetFP() {
+  uint32_t fp;
+  __asm__ __volatile__(
+    "ld [%%fp+56], %0"
+    : "=r" (fp)
+  );
+  return fp;
+}
+
+// GetPC returns the program counter identifying the next instruction to
+// execute after GetPC returns.  It obtains this information from the
+// link register, where it was placed by the branch instruction that called
+// GetPC.  Because this function depends on the caller's use of a branch
+// instruction, inlining is disabled.
+static uint32_t GetPC() __attribute__((noinline));
+static uint32_t GetPC() {
+  uint32_t pc;
+  __asm__ __volatile__(
+    "mov %%i7, %0"
+    : "=r" (pc)
+  );
+  return pc + 8;
+}
+
+#endif  // __i386__ || __ppc__ || __sparc__
+
+#elif defined(__SUNPRO_CC)
+
+#if defined(__i386__)
+extern "C" {
+extern uint32_t GetEIP();
+extern uint32_t GetEBP();
+extern uint32_t GetESP();
+}
+#elif defined(__sparc__)
+extern "C" {
+extern uint32_t GetPC();
+extern uint32_t GetFP();
+extern uint32_t GetSP();
+}
+#endif // __i386__ || __sparc__
+
+#endif // __GNUC__ || __SUNPRO_CC
+
+// CountCallerFrames returns the number of stack frames beneath the function
+// that called CountCallerFrames.  Because this function's return value
+// is dependent on the size of the stack beneath it, inlining is disabled,
+// and any function that calls this should not be inlined either.
+#if defined(__GNUC__)
+static unsigned int CountCallerFrames() __attribute__((noinline));
+#elif defined(__SUNPRO_CC)
+static unsigned int CountCallerFrames();
+#endif
+static unsigned int CountCallerFrames() {
+  SelfMemoryRegion memory;
+  BasicSourceLineResolver resolver;
+
+#if defined(__i386__)
+  MDRawContextX86 context = MDRawContextX86();
+  context.eip = GetEIP();
+  context.ebp = GetEBP();
+  context.esp = GetESP();
+
+  StackwalkerX86 stackwalker = StackwalkerX86(NULL, &context, &memory, NULL,
+                                              NULL, &resolver);
+#elif defined(__ppc__)
+  MDRawContextPPC context = MDRawContextPPC();
+  context.srr0 = GetPC();
+  context.gpr[1] = GetSP();
+
+  StackwalkerPPC stackwalker = StackwalkerPPC(NULL, &context, &memory, NULL,
+                                              NULL, &resolver);
+#elif defined(__sparc__)
+  MDRawContextSPARC context = MDRawContextSPARC();
+  context.pc = GetPC();
+  context.g_r[14] = GetSP();
+  context.g_r[30] = GetFP();
+
+  StackwalkerSPARC stackwalker = StackwalkerSPARC(NULL, &context, &memory,
+                                                  NULL, NULL, &resolver);
+#endif  // __i386__ || __ppc__ || __sparc__
+
+  CallStack stack;
+  vector<const CodeModule*> modules_without_symbols;
+  stackwalker.Walk(&stack, &modules_without_symbols);
+
+#ifdef PRINT_STACKS
+  printf("\n");
+  for (unsigned int frame_index = 0;
+      frame_index < stack.frames()->size();
+      ++frame_index) {
+    StackFrame *frame = stack.frames()->at(frame_index);
+    printf("frame %-3d  instruction = 0x%08" PRIx64,
+           frame_index, frame->instruction);
+#if defined(__i386__)
+    StackFrameX86 *frame_x86 = reinterpret_cast<StackFrameX86*>(frame);
+    printf("  esp = 0x%08x  ebp = 0x%08x\n",
+           frame_x86->context.esp, frame_x86->context.ebp);
+#elif defined(__ppc__)
+    StackFramePPC *frame_ppc = reinterpret_cast<StackFramePPC*>(frame);
+    printf("  gpr[1] = 0x%08x\n", frame_ppc->context.gpr[1]);
+#elif defined(__sparc__)
+    StackFrameSPARC *frame_sparc = reinterpret_cast<StackFrameSPARC*>(frame);
+    printf("  sp = 0x%08x  fp = 0x%08x\n",
+           frame_sparc->context.g_r[14], frame_sparc->context.g_r[30]);
+#endif  // __i386__ || __ppc__ || __sparc__
+  }
+#endif  // PRINT_STACKS
+
+  // Subtract 1 because the caller wants the number of frames beneath
+  // itself.  Because the caller called us, subract two for our frame and its
+  // frame, which are included in stack.size().
+  return stack.frames()->size() - 2;
+}
+
+
+// Recursor verifies that the number stack frames beneath itself is one more
+// than the number of stack frames beneath its parent.  When depth frames
+// have been reached, Recursor stops checking and returns success.  If the
+// frame count check fails at any depth, Recursor will stop and return false.
+// Because this calls CountCallerFrames, inlining is disabled.
+#if defined(__GNUC__)
+static bool Recursor(unsigned int depth, unsigned int parent_callers)
+    __attribute__((noinline));
+#elif defined(__SUNPRO_CC)
+static bool Recursor(unsigned int depth, unsigned int parent_callers);
+#endif
+static bool Recursor(unsigned int depth, unsigned int parent_callers) {
+  unsigned int callers = CountCallerFrames();
+  if (callers != parent_callers + 1)
+    return false;
+
+  if (depth)
+    return Recursor(depth - 1, callers);
+
+  // depth == 0
+  return true;
+}
+
+
+// Because this calls CountCallerFrames, inlining is disabled - but because
+// it's main (and nobody calls it other than the entry point), it wouldn't
+// be inlined anyway.
+#if defined(__GNUC__)
+int main(int argc, char** argv) __attribute__((noinline));
+#elif defined(__SUNPRO_CC)
+int main(int argc, char** argv);
+#endif
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  return Recursor(RECURSION_DEPTH, CountCallerFrames()) ? 0 : 1;
+}
+
+
+#else
+// Not i386 or ppc or sparc?  We can only test stacks we know how to walk.
+
+
+int main(int argc, char** argv) {
+  BPLOG_INIT(&argc, &argv);
+
+  // "make check" interprets an exit status of 77 to mean that the test is
+  // not supported.
+  BPLOG(ERROR) << "Selftest not supported here";
+  return 77;
+}
+
+
+#endif  // (__GNUC__ || __SUNPRO_CC) && (__i386__ || __ppc__ || __sparc__)
diff --git a/src/processor/stackwalker_selftest_sol.s b/src/processor/stackwalker_selftest_sol.s
new file mode 100644
index 0000000..648b049
--- /dev/null
+++ b/src/processor/stackwalker_selftest_sol.s
@@ -0,0 +1,111 @@
+/* Copyright (c) 2007, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* stackwalker_selftest_sol.s
+ * On Solaris, the recommeded compiler is CC, so we can not use gcc inline
+ * asm, use this method instead.
+ *
+ * How to compile: as -P -L -D_ASM -D_STDC -K PIC -o \
+ *                 src/processor/stackwalker_selftest_sol.o \
+ *                 src/processor/stackwalker_selftest_sol.s
+ *
+ * Author: Michael Shang
+ */
+
+#include <sys/asm_linkage.h>
+
+#if defined(__i386)
+
+
+ENTRY(GetEBP) 
+      pushl    %ebp
+      movl     %esp,%ebp
+      subl     $0x00000004,%esp
+      movl     0x00000000(%ebp),%eax
+      movl     %eax,0xfffffffc(%ebp)
+      movl     0xfffffffc(%ebp),%eax
+      leave    
+      ret      
+SET_SIZE(GetEBP)
+
+ENTRY(GetEIP) 
+      pushl    %ebp
+      movl     %esp,%ebp
+      subl     $0x00000004,%esp
+      movl     0x00000004(%ebp),%eax
+      movl     %eax,0xfffffffc(%ebp)
+      movl     0xfffffffc(%ebp),%eax
+      leave    
+      ret      
+SET_SIZE(GetEIP)
+
+ENTRY(GetESP) 
+      pushl    %ebp
+      movl     %esp,%ebp
+      subl     $0x00000004,%esp
+      movl     %ebp,%eax
+      movl     %eax,0xfffffffc(%ebp)
+      movl     0xfffffffc(%ebp),%eax
+      addl     $0x00000008,%eax
+      leave    
+      ret      
+SET_SIZE(GetESP)
+
+
+#elif defined(__sparc)
+
+
+ENTRY(GetPC)
+      save     %sp, -120, %sp
+      mov      %i7, %i4
+      inccc    8, %i4
+      mov      %i4, %i0
+      ret      
+      restore  
+SET_SIZE(GetPC)
+
+ENTRY(GetSP)
+      save     %sp, -120, %sp
+      mov      %fp, %i4
+      mov      %i4, %i0
+      ret      
+      restore  
+SET_SIZE(GetSP)
+
+ENTRY(GetFP)
+      save     %sp, -120, %sp
+      ld       [%fp + 56], %g1
+      mov      %g1, %i0
+      ret      
+      restore  
+SET_SIZE(GetFP)
+
+
+#endif  // __i386 || __sparc
diff --git a/src/processor/stackwalker_sparc.cc b/src/processor/stackwalker_sparc.cc
new file mode 100644
index 0000000..4de838a
--- /dev/null
+++ b/src/processor/stackwalker_sparc.cc
@@ -0,0 +1,147 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_sparc.cc: sparc-specific stackwalker.
+//
+// See stackwalker_sparc.h for documentation.
+//
+// Author: Michael Shang
+
+
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/logging.h"
+#include "processor/stackwalker_sparc.h"
+
+namespace google_breakpad {
+
+
+StackwalkerSPARC::StackwalkerSPARC(const SystemInfo* system_info,
+                                   const MDRawContextSPARC* context,
+                                   MemoryRegion* memory,
+                                   const CodeModules* modules,
+                                   StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context) {
+}
+
+
+StackFrame* StackwalkerSPARC::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFrameSPARC* frame = new StackFrameSPARC();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFrameSPARC::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.pc;
+
+  return frame;
+}
+
+
+StackFrame* StackwalkerSPARC::GetCallerFrame(const CallStack* stack,
+                                             bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  StackFrameSPARC* last_frame = static_cast<StackFrameSPARC*>(
+      stack->frames()->back());
+
+  // new: caller
+  // old: callee
+  // %fp, %i6 and g_r[30] is the same, see minidump_format.h
+  // %sp, %o6 and g_r[14] is the same, see minidump_format.h
+  // %sp_new = %fp_old
+  // %fp_new = *(%fp_old + 32 + 32 - 8), where the callee's %i6
+  // %pc_new = *(%fp_old + 32 + 32 - 4) + 8
+  // which is callee's %i7 plus 8
+
+  // A caller frame must reside higher in memory than its callee frames.
+  // Anything else is an error, or an indication that we've reached the
+  // end of the stack.
+  uint64_t stack_pointer = last_frame->context.g_r[30];
+  if (stack_pointer <= last_frame->context.g_r[14]) {
+    return NULL;
+  }
+
+  uint32_t instruction;
+  if (!memory_->GetMemoryAtAddress(stack_pointer + 60,
+                     &instruction) || instruction <= 1) {
+    return NULL;
+  }
+
+  uint32_t stack_base;
+  if (!memory_->GetMemoryAtAddress(stack_pointer + 56,
+                     &stack_base) || stack_base <= 1) {
+    return NULL;
+  }
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(instruction,
+                    stack_pointer,
+                    last_frame->context.g_r[14],
+                    stack->frames()->size() == 1)) {
+    return NULL;
+  }
+
+  StackFrameSPARC* frame = new StackFrameSPARC();
+
+  frame->context = last_frame->context;
+  frame->context.g_r[14] = stack_pointer;
+  frame->context.g_r[30] = stack_base;
+
+  // frame->context.pc is the return address, which is 2 instruction
+  // past the branch that caused us to arrive at the callee, which are
+  // a CALL instruction then a NOP instruction.
+  // frame_ppc->instruction to 8 less than that.  Since all sparc
+  // instructions are 4 bytes wide, this is the address of the branch
+  // instruction.  This allows source line information to match up with the
+  // line that contains a function call.  Callers that require the exact
+  // return address value may access the %i7/g_r[31] field of StackFrameSPARC.
+  frame->context.pc = instruction + 8;
+  frame->instruction = instruction;
+  frame->context_validity = StackFrameSPARC::CONTEXT_VALID_PC |
+                            StackFrameSPARC::CONTEXT_VALID_SP |
+                            StackFrameSPARC::CONTEXT_VALID_FP;
+  frame->trust = StackFrame::FRAME_TRUST_FP;
+
+  return frame;
+}
+
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_sparc.h b/src/processor/stackwalker_sparc.h
new file mode 100644
index 0000000..e8f2a38
--- /dev/null
+++ b/src/processor/stackwalker_sparc.h
@@ -0,0 +1,78 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_sparc.h: sparc-specific stackwalker.
+//
+// Provides stack frames given sparc register context and a memory region
+// corresponding to an sparc stack.
+//
+// Author: Michael Shang
+
+
+#ifndef PROCESSOR_STACKWALKER_SPARC_H__
+#define PROCESSOR_STACKWALKER_SPARC_H__
+
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+class StackwalkerSPARC : public Stackwalker {
+ public:
+  // context is a sparc context object that gives access to sparc-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerSPARC(const SystemInfo* system_info,
+                   const MDRawContextSPARC* context,
+                   MemoryRegion* memory,
+                   const CodeModules* modules,
+                   StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // Implementation of Stackwalker, using sparc context (%fp, %sp, %pc) and
+  // stack conventions
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextSPARC* context_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_SPARC_H__
diff --git a/src/processor/stackwalker_unittest_utils.h b/src/processor/stackwalker_unittest_utils.h
new file mode 100644
index 0000000..2905ea0
--- /dev/null
+++ b/src/processor/stackwalker_unittest_utils.h
@@ -0,0 +1,220 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// Mock classes for writing stackwalker tests, shared amongst architectures.
+
+#ifndef PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
+#define PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
+
+#include <assert.h>
+#include <stdlib.h>
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/symbol_supplier.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/linked_ptr.h"
+
+class MockMemoryRegion: public google_breakpad::MemoryRegion {
+ public:
+  MockMemoryRegion(): base_address_(0) { }
+
+  // Set this region's address and contents. If we have placed an
+  // instance of this class in a test fixture class, individual tests
+  // can use this to provide the region's contents.
+  void Init(uint64_t base_address, const string& contents) {
+    base_address_ = base_address;
+    contents_ = contents;
+  }
+
+  uint64_t GetBase() const { return base_address_; }
+  uint32_t GetSize() const { return contents_.size(); }
+
+  bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const {
+    return GetMemoryLittleEndian(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const {
+    return GetMemoryLittleEndian(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const {
+    return GetMemoryLittleEndian(address, value);
+  }
+  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const {
+    return GetMemoryLittleEndian(address, value);
+  }
+  void Print() const {
+    assert(false);
+  }
+
+ private:
+  // Fetch a little-endian value from ADDRESS in contents_ whose size
+  // is BYTES, and store it in *VALUE. Return true on success.
+  template<typename ValueType>
+  bool GetMemoryLittleEndian(uint64_t address, ValueType* value) const {
+    if (address < base_address_ ||
+        address - base_address_ + sizeof(ValueType) > contents_.size())
+      return false;
+    ValueType v = 0;
+    int start = address - base_address_;
+    // The loop condition is odd, but it's correct for size_t.
+    for (size_t i = sizeof(ValueType) - 1; i < sizeof(ValueType); i--)
+      v = (v << 8) | static_cast<unsigned char>(contents_[start + i]);
+    *value = v;
+    return true;
+  }
+
+  uint64_t base_address_;
+  string contents_;
+};
+
+class MockCodeModule: public google_breakpad::CodeModule {
+ public:
+  MockCodeModule(uint64_t base_address, uint64_t size,
+                 const string& code_file, const string& version)
+      : base_address_(base_address), size_(size), code_file_(code_file) { }
+
+  uint64_t base_address()       const { return base_address_; }
+  uint64_t size()               const { return size_; }
+  string code_file()        const { return code_file_; }
+  string code_identifier()  const { return code_file_; }
+  string debug_file()       const { return code_file_; }
+  string debug_identifier() const { return code_file_; }
+  string version()          const { return version_; }
+  google_breakpad::CodeModule* Copy() const {
+    abort(); // Tests won't use this.
+  }
+  virtual bool is_unloaded() const { return false; }
+  virtual uint64_t shrink_down_delta() const { return 0; }
+  virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) {}
+
+ private:
+  uint64_t base_address_;
+  uint64_t size_;
+  string code_file_;
+  string version_;
+};
+
+class MockCodeModules: public google_breakpad::CodeModules {
+ public:
+  typedef google_breakpad::CodeModule CodeModule;
+  typedef google_breakpad::CodeModules CodeModules;
+
+  void Add(const MockCodeModule* module) {
+    modules_.push_back(module);
+  }
+
+  unsigned int module_count() const { return modules_.size(); }
+
+  const CodeModule* GetModuleForAddress(uint64_t address) const {
+    for (ModuleVector::const_iterator i = modules_.begin();
+         i != modules_.end(); i++) {
+      const MockCodeModule* module = *i;
+      if (module->base_address() <= address &&
+          address - module->base_address() < module->size())
+        return module;
+    }
+    return NULL;
+  };
+
+  const CodeModule* GetMainModule() const { return modules_[0]; }
+
+  const CodeModule* GetModuleAtSequence(unsigned int sequence) const {
+    return modules_.at(sequence);
+  }
+
+  const CodeModule* GetModuleAtIndex(unsigned int index) const {
+    return modules_.at(index);
+  }
+
+  CodeModules* Copy() const { abort(); }  // Tests won't use this
+
+  virtual std::vector<google_breakpad::linked_ptr<const CodeModule> >
+  GetShrunkRangeModules() const {
+    return std::vector<google_breakpad::linked_ptr<const CodeModule> >();
+  }
+
+ private:
+  typedef std::vector<const MockCodeModule*> ModuleVector;
+  ModuleVector modules_;
+};
+
+class MockSymbolSupplier: public google_breakpad::SymbolSupplier {
+ public:
+  typedef google_breakpad::CodeModule CodeModule;
+  typedef google_breakpad::SystemInfo SystemInfo;
+  MOCK_METHOD3(GetSymbolFile, SymbolResult(const CodeModule* module,
+                                           const SystemInfo* system_info,
+                                           string* symbol_file));
+  MOCK_METHOD4(GetSymbolFile, SymbolResult(const CodeModule* module,
+                                           const SystemInfo* system_info,
+                                           string* symbol_file,
+                                           string* symbol_data));
+  MOCK_METHOD5(GetCStringSymbolData, SymbolResult(const CodeModule* module,
+                                                  const SystemInfo* system_info,
+                                                  string* symbol_file,
+                                                  char** symbol_data,
+                                                  size_t* symbol_data_size));
+  MOCK_METHOD1(FreeSymbolData, void(const CodeModule* module));
+
+  // Copies the passed string contents into a newly allocated buffer.
+  // The newly allocated buffer will be freed during destruction.
+  char* CopySymbolDataAndOwnTheCopy(const string& info,
+                                    size_t* symbol_data_size) {
+    *symbol_data_size = info.size() + 1;
+    char* symbol_data = new char[*symbol_data_size];
+    memcpy(symbol_data, info.c_str(), info.size());
+    symbol_data[info.size()] = '\0';
+    symbol_data_to_free_.push_back(symbol_data);
+    return symbol_data;
+  }
+
+  virtual ~MockSymbolSupplier() {
+    for (SymbolDataVector::const_iterator i = symbol_data_to_free_.begin();
+         i != symbol_data_to_free_.end(); i++) {
+      char* symbol_data = *i;
+      delete [] symbol_data;
+    }
+  }
+
+ private:
+  // List of symbol data to be freed upon destruction
+  typedef std::vector<char*> SymbolDataVector;
+  SymbolDataVector symbol_data_to_free_;
+};
+
+#endif // PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
diff --git a/src/processor/stackwalker_x86.cc b/src/processor/stackwalker_x86.cc
new file mode 100644
index 0000000..b11e061
--- /dev/null
+++ b/src/processor/stackwalker_x86.cc
@@ -0,0 +1,680 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_x86.cc: x86-specific stackwalker.
+//
+// See stackwalker_x86.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include <assert.h>
+#include <string>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/logging.h"
+#include "processor/postfix_evaluator-inl.h"
+#include "processor/stackwalker_x86.h"
+#include "processor/windows_frame_info.h"
+#include "processor/cfi_frame_info.h"
+
+namespace google_breakpad {
+
+// Max reasonable size for a single x86 frame is 128 KB.  This value is used in
+// a heuristic for recovering of the EBP chain after a scan for return address.
+// This value is based on a stack frame size histogram built for a set of
+// popular third party libraries which suggests that 99.5% of all frames are
+// smaller than 128 KB.
+static const uint32_t kMaxReasonableGapBetweenFrames = 128 * 1024;
+
+const StackwalkerX86::CFIWalker::RegisterSet
+StackwalkerX86::cfi_register_map_[] = {
+  // It may seem like $eip and $esp are callee-saves, because (with Unix or
+  // cdecl calling conventions) the callee is responsible for having them
+  // restored upon return. But the callee_saves flags here really means
+  // that the walker should assume they're unchanged if the CFI doesn't
+  // mention them, which is clearly wrong for $eip and $esp.
+  { "$eip", ".ra",  false,
+    StackFrameX86::CONTEXT_VALID_EIP, &MDRawContextX86::eip },
+  { "$esp", ".cfa", false,
+    StackFrameX86::CONTEXT_VALID_ESP, &MDRawContextX86::esp },
+  { "$ebp", NULL,   true,
+    StackFrameX86::CONTEXT_VALID_EBP, &MDRawContextX86::ebp },
+  { "$eax", NULL,   false,
+    StackFrameX86::CONTEXT_VALID_EAX, &MDRawContextX86::eax },
+  { "$ebx", NULL,   true,
+    StackFrameX86::CONTEXT_VALID_EBX, &MDRawContextX86::ebx },
+  { "$ecx", NULL,   false,
+    StackFrameX86::CONTEXT_VALID_ECX, &MDRawContextX86::ecx },
+  { "$edx", NULL,   false,
+    StackFrameX86::CONTEXT_VALID_EDX, &MDRawContextX86::edx },
+  { "$esi", NULL,   true,
+    StackFrameX86::CONTEXT_VALID_ESI, &MDRawContextX86::esi },
+  { "$edi", NULL,   true,
+    StackFrameX86::CONTEXT_VALID_EDI, &MDRawContextX86::edi },
+};
+
+StackwalkerX86::StackwalkerX86(const SystemInfo* system_info,
+                               const MDRawContextX86* context,
+                               MemoryRegion* memory,
+                               const CodeModules* modules,
+                               StackFrameSymbolizer* resolver_helper)
+    : Stackwalker(system_info, memory, modules, resolver_helper),
+      context_(context),
+      cfi_walker_(cfi_register_map_,
+                  (sizeof(cfi_register_map_) / sizeof(cfi_register_map_[0]))) {
+  if (memory_ && memory_->GetBase() + memory_->GetSize() - 1 > 0xffffffff) {
+    // The x86 is a 32-bit CPU, the limits of the supplied stack are invalid.
+    // Mark memory_ = NULL, which will cause stackwalking to fail.
+    BPLOG(ERROR) << "Memory out of range for stackwalking: " <<
+                    HexString(memory_->GetBase()) << "+" <<
+                    HexString(memory_->GetSize());
+    memory_ = NULL;
+  }
+}
+
+StackFrameX86::~StackFrameX86() {
+  if (windows_frame_info)
+    delete windows_frame_info;
+  windows_frame_info = NULL;
+  if (cfi_frame_info)
+    delete cfi_frame_info;
+  cfi_frame_info = NULL;
+}
+
+uint64_t StackFrameX86::ReturnAddress() const {
+  assert(context_validity & StackFrameX86::CONTEXT_VALID_EIP);
+  return context.eip;
+}
+
+StackFrame* StackwalkerX86::GetContextFrame() {
+  if (!context_) {
+    BPLOG(ERROR) << "Can't get context frame without context";
+    return NULL;
+  }
+
+  StackFrameX86* frame = new StackFrameX86();
+
+  // The instruction pointer is stored directly in a register, so pull it
+  // straight out of the CPU context structure.
+  frame->context = *context_;
+  frame->context_validity = StackFrameX86::CONTEXT_VALID_ALL;
+  frame->trust = StackFrame::FRAME_TRUST_CONTEXT;
+  frame->instruction = frame->context.eip;
+
+  return frame;
+}
+
+StackFrameX86* StackwalkerX86::GetCallerByWindowsFrameInfo(
+    const vector<StackFrame*>& frames,
+    WindowsFrameInfo* last_frame_info,
+    bool stack_scan_allowed) {
+  StackFrame::FrameTrust trust = StackFrame::FRAME_TRUST_NONE;
+
+  StackFrameX86* last_frame = static_cast<StackFrameX86*>(frames.back());
+
+  // Save the stack walking info we found, in case we need it later to
+  // find the callee of the frame we're constructing now.
+  last_frame->windows_frame_info = last_frame_info;
+
+  // This function only covers the full STACK WIN case. If
+  // last_frame_info is VALID_PARAMETER_SIZE-only, then we should
+  // assume the traditional frame format or use some other strategy.
+  if (last_frame_info->valid != WindowsFrameInfo::VALID_ALL)
+    return NULL;
+
+  // This stackwalker sets each frame's %esp to its value immediately prior
+  // to the CALL into the callee.  This means that %esp points to the last
+  // callee argument pushed onto the stack, which may not be where %esp points
+  // after the callee returns.  Specifically, the value is correct for the
+  // cdecl calling convention, but not other conventions.  The cdecl
+  // convention requires a caller to pop its callee's arguments from the
+  // stack after the callee returns.  This is usually accomplished by adding
+  // the known size of the arguments to %esp.  Other calling conventions,
+  // including stdcall, thiscall, and fastcall, require the callee to pop any
+  // parameters stored on the stack before returning.  This is usually
+  // accomplished by using the RET n instruction, which pops n bytes off
+  // the stack after popping the return address.
+  //
+  // Because each frame's %esp will point to a location on the stack after
+  // callee arguments have been PUSHed, when locating things in a stack frame
+  // relative to %esp, the size of the arguments to the callee need to be
+  // taken into account.  This seems a little bit unclean, but it's better
+  // than the alternative, which would need to take these same things into
+  // account, but only for cdecl functions.  With this implementation, we get
+  // to be agnostic about each function's calling convention.  Furthermore,
+  // this is how Windows debugging tools work, so it means that the %esp
+  // values produced by this stackwalker directly correspond to the %esp
+  // values you'll see there.
+  //
+  // If the last frame has no callee (because it's the context frame), just
+  // set the callee parameter size to 0: the stack pointer can't point to
+  // callee arguments because there's no callee.  This is correct as long
+  // as the context wasn't captured while arguments were being pushed for
+  // a function call.  Note that there may be functions whose parameter sizes
+  // are unknown, 0 is also used in that case.  When that happens, it should
+  // be possible to walk to the next frame without reference to %esp.
+
+  uint32_t last_frame_callee_parameter_size = 0;
+  int frames_already_walked = frames.size();
+  if (frames_already_walked >= 2) {
+    const StackFrameX86* last_frame_callee
+        = static_cast<StackFrameX86*>(frames[frames_already_walked - 2]);
+    WindowsFrameInfo* last_frame_callee_info
+        = last_frame_callee->windows_frame_info;
+    if (last_frame_callee_info &&
+        (last_frame_callee_info->valid
+         & WindowsFrameInfo::VALID_PARAMETER_SIZE)) {
+      last_frame_callee_parameter_size =
+          last_frame_callee_info->parameter_size;
+    }
+  }
+
+  // Set up the dictionary for the PostfixEvaluator.  %ebp, %esp, and sometimes
+  // %ebx are used in program strings, and their previous values are known, so
+  // set them here.
+  PostfixEvaluator<uint32_t>::DictionaryType dictionary;
+  // Provide the current register values.
+  dictionary["$ebp"] = last_frame->context.ebp;
+  dictionary["$esp"] = last_frame->context.esp;
+  if (last_frame->context_validity & StackFrameX86::CONTEXT_VALID_EBX)
+    dictionary["$ebx"] = last_frame->context.ebx;
+  // Provide constants from the debug info for last_frame and its callee.
+  // .cbCalleeParams is a Breakpad extension that allows us to use the
+  // PostfixEvaluator engine when certain types of debugging information
+  // are present without having to write the constants into the program
+  // string as literals.
+  dictionary[".cbCalleeParams"] = last_frame_callee_parameter_size;
+  dictionary[".cbSavedRegs"] = last_frame_info->saved_register_size;
+  dictionary[".cbLocals"] = last_frame_info->local_size;
+
+  uint32_t raSearchStart = last_frame->context.esp +
+                           last_frame_callee_parameter_size +
+                           last_frame_info->local_size +
+                           last_frame_info->saved_register_size;
+
+  uint32_t raSearchStartOld = raSearchStart;
+  uint32_t found = 0;  // dummy value
+  // Scan up to three words above the calculated search value, in case
+  // the stack was aligned to a quadword boundary.
+  //
+  // TODO(ivan.penkov): Consider cleaning up the scan for return address that
+  // follows.  The purpose of this scan is to adjust the .raSearchStart
+  // calculation (which is based on register %esp) in the cases where register
+  // %esp may have been aligned (up to a quadword).  There are two problems
+  // with this approach:
+  //  1) In practice, 64 byte boundary alignment is seen which clearly can not
+  //     be handled by a three word scan.
+  //  2) A search for a return address is "guesswork" by definition because
+  //     the results will be different depending on what is left on the stack
+  //     from previous executions.
+  // So, basically, the results from this scan should be ignored if other means
+  // for calculation of the value of .raSearchStart are available.
+  if (ScanForReturnAddress(raSearchStart, &raSearchStart, &found, 3) &&
+      last_frame->trust == StackFrame::FRAME_TRUST_CONTEXT &&
+      last_frame->windows_frame_info != NULL &&
+      last_frame_info->type_ == WindowsFrameInfo::STACK_INFO_FPO &&
+      raSearchStartOld == raSearchStart &&
+      found == last_frame->context.eip) {
+    // The context frame represents an FPO-optimized Windows system call.
+    // On the top of the stack we have a pointer to the current instruction.
+    // This means that the callee has returned but the return address is still
+    // on the top of the stack which is very atypical situaltion.
+    // Skip one slot from the stack and do another scan in order to get the
+    // actual return address.
+    raSearchStart += 4;
+    ScanForReturnAddress(raSearchStart, &raSearchStart, &found, 3);
+  }
+
+  dictionary[".cbParams"] = last_frame_info->parameter_size;
+
+  // Decide what type of program string to use. The program string is in
+  // postfix notation and will be passed to PostfixEvaluator::Evaluate.
+  // Given the dictionary and the program string, it is possible to compute
+  // the return address and the values of other registers in the calling
+  // function. Because of bugs described below, the stack may need to be
+  // scanned for these values. The results of program string evaluation
+  // will be used to determine whether to scan for better values.
+  string program_string;
+  bool recover_ebp = true;
+
+  trust = StackFrame::FRAME_TRUST_CFI;
+  if (!last_frame_info->program_string.empty()) {
+    // The FPO data has its own program string, which will tell us how to
+    // get to the caller frame, and may even fill in the values of
+    // nonvolatile registers and provide pointers to local variables and
+    // parameters.  In some cases, particularly with program strings that use
+    // .raSearchStart, the stack may need to be scanned afterward.
+    program_string = last_frame_info->program_string;
+  } else if (last_frame_info->allocates_base_pointer) {
+    // The function corresponding to the last frame doesn't use the frame
+    // pointer for conventional purposes, but it does allocate a new
+    // frame pointer and use it for its own purposes.  Its callee's
+    // information is still accessed relative to %esp, and the previous
+    // value of %ebp can be recovered from a location in its stack frame,
+    // within the saved-register area.
+    //
+    // Functions that fall into this category use the %ebp register for
+    // a purpose other than the frame pointer.  They restore the caller's
+    // %ebp before returning.  These functions create their stack frame
+    // after a CALL by decrementing the stack pointer in an amount
+    // sufficient to store local variables, and then PUSHing saved
+    // registers onto the stack.  Arguments to a callee function, if any,
+    // are PUSHed after that.  Walking up to the caller, therefore,
+    // can be done solely with calculations relative to the stack pointer
+    // (%esp).  The return address is recovered from the memory location
+    // above the known sizes of the callee's parameters, saved registers,
+    // and locals.  The caller's stack pointer (the value of %esp when
+    // the caller executed CALL) is the location immediately above the
+    // saved return address.  The saved value of %ebp to be restored for
+    // the caller is at a known location in the saved-register area of
+    // the stack frame.
+    //
+    // For this type of frame, MSVC 14 (from Visual Studio 8/2005) in
+    // link-time code generation mode (/LTCG and /GL) can generate erroneous
+    // debugging data.  The reported size of saved registers can be 0,
+    // which is clearly an error because these frames must, at the very
+    // least, save %ebp.  For this reason, in addition to those given above
+    // about the use of .raSearchStart, the stack may need to be scanned
+    // for a better return address and a better frame pointer after the
+    // program string is evaluated.
+    //
+    // %eip_new = *(%esp_old + callee_params + saved_regs + locals)
+    // %ebp_new = *(%esp_old + callee_params + saved_regs - 8)
+    // %esp_new = %esp_old + callee_params + saved_regs + locals + 4
+    program_string = "$eip .raSearchStart ^ = "
+        "$ebp $esp .cbCalleeParams + .cbSavedRegs + 8 - ^ = "
+        "$esp .raSearchStart 4 + =";
+  } else {
+    // The function corresponding to the last frame doesn't use %ebp at
+    // all.  The callee frame is located relative to %esp.
+    //
+    // The called procedure's instruction pointer and stack pointer are
+    // recovered in the same way as the case above, except that no
+    // frame pointer (%ebp) is used at all, so it is not saved anywhere
+    // in the callee's stack frame and does not need to be recovered.
+    // Because %ebp wasn't used in the callee, whatever value it has
+    // is the value that it had in the caller, so it can be carried
+    // straight through without bringing its validity into question.
+    //
+    // Because of the use of .raSearchStart, the stack will possibly be
+    // examined to locate a better return address after program string
+    // evaluation.  The stack will not be examined to locate a saved
+    // %ebp value, because these frames do not save (or use) %ebp.
+    //
+    // We also propagate %ebx through, as it is commonly unmodifed after
+    // calling simple forwarding functions in ntdll (that are this non-EBP
+    // using type). It's not clear that this is always correct, but it is
+    // important for some functions to get a correct walk.
+    //
+    // %eip_new = *(%esp_old + callee_params + saved_regs + locals)
+    // %esp_new = %esp_old + callee_params + saved_regs + locals + 4
+    // %ebp_new = %ebp_old
+    // %ebx_new = %ebx_old  // If available.
+    program_string = "$eip .raSearchStart ^ = "
+                     "$esp .raSearchStart 4 + =";
+    if (last_frame->context_validity & StackFrameX86::CONTEXT_VALID_EBX)
+      program_string += " $ebx $ebx =";
+    recover_ebp = false;
+  }
+
+  // Check for alignment operators in the program string.  If alignment
+  // operators are found, then current %ebp must be valid and it is the only
+  // reliable data point that can be used for getting to the previous frame.
+  // E.g. the .raSearchStart calculation (above) is based on %esp and since
+  // %esp was aligned in the current frame (which is a lossy operation) the
+  // calculated value of .raSearchStart cannot be correct and should not be
+  // used.  Instead .raSearchStart must be calculated based on %ebp.
+  // The code that follows assumes that .raSearchStart is supposed to point
+  // at the saved return address (ebp + 4).
+  // For some more details on this topic, take a look at the following thread:
+  // https://groups.google.com/forum/#!topic/google-breakpad-dev/ZP1FA9B1JjM
+  if ((StackFrameX86::CONTEXT_VALID_EBP & last_frame->context_validity) != 0 &&
+      program_string.find('@') != string::npos) {
+    raSearchStart = last_frame->context.ebp + 4;
+  }
+
+  // The difference between raSearch and raSearchStart is unknown,
+  // but making them the same seems to work well in practice.
+  dictionary[".raSearchStart"] = raSearchStart;
+  dictionary[".raSearch"] = raSearchStart;
+
+  // Now crank it out, making sure that the program string set at least the
+  // two required variables.
+  PostfixEvaluator<uint32_t> evaluator =
+      PostfixEvaluator<uint32_t>(&dictionary, memory_);
+  PostfixEvaluator<uint32_t>::DictionaryValidityType dictionary_validity;
+  if (!evaluator.Evaluate(program_string, &dictionary_validity) ||
+      dictionary_validity.find("$eip") == dictionary_validity.end() ||
+      dictionary_validity.find("$esp") == dictionary_validity.end()) {
+    // Program string evaluation failed. It may be that %eip is not somewhere
+    // with stack frame info, and %ebp is pointing to non-stack memory, so
+    // our evaluation couldn't succeed. We'll scan the stack for a return
+    // address. This can happen if the stack is in a module for which
+    // we don't have symbols, and that module is compiled without a
+    // frame pointer.
+    uint32_t location_start = last_frame->context.esp;
+    uint32_t location, eip;
+    if (!stack_scan_allowed
+        || !ScanForReturnAddress(location_start, &location, &eip,
+                                 frames.size() == 1 /* is_context_frame */)) {
+      // if we can't find an instruction pointer even with stack scanning,
+      // give up.
+      return NULL;
+    }
+
+    // This seems like a reasonable return address. Since program string
+    // evaluation failed, use it and set %esp to the location above the
+    // one where the return address was found.
+    dictionary["$eip"] = eip;
+    dictionary["$esp"] = location + 4;
+    trust = StackFrame::FRAME_TRUST_SCAN;
+  }
+
+  // Since this stack frame did not use %ebp in a traditional way,
+  // locating the return address isn't entirely deterministic. In that
+  // case, the stack can be scanned to locate the return address.
+  //
+  // However, if program string evaluation resulted in both %eip and
+  // %ebp values of 0, trust that the end of the stack has been
+  // reached and don't scan for anything else.
+  if (dictionary["$eip"] != 0 || dictionary["$ebp"] != 0) {
+    int offset = 0;
+
+    // This scan can only be done if a CodeModules object is available, to
+    // check that candidate return addresses are in fact inside a module.
+    //
+    // TODO(mmentovai): This ignores dynamically-generated code.  One possible
+    // solution is to check the minidump's memory map to see if the candidate
+    // %eip value comes from a mapped executable page, although this would
+    // require dumps that contain MINIDUMP_MEMORY_INFO, which the Breakpad
+    // client doesn't currently write (it would need to call MiniDumpWriteDump
+    // with the MiniDumpWithFullMemoryInfo type bit set).  Even given this
+    // ability, older OSes (pre-XP SP2) and CPUs (pre-P4) don't enforce
+    // an independent execute privilege on memory pages.
+
+    uint32_t eip = dictionary["$eip"];
+    if (modules_ && !modules_->GetModuleForAddress(eip)) {
+      // The instruction pointer at .raSearchStart was invalid, so start
+      // looking one 32-bit word above that location.
+      uint32_t location_start = dictionary[".raSearchStart"] + 4;
+      uint32_t location;
+      if (stack_scan_allowed
+          && ScanForReturnAddress(location_start, &location, &eip,
+                                  frames.size() == 1 /* is_context_frame */)) {
+        // This is a better return address that what program string
+        // evaluation found.  Use it, and set %esp to the location above the
+        // one where the return address was found.
+        dictionary["$eip"] = eip;
+        dictionary["$esp"] = location + 4;
+        offset = location - location_start;
+        trust = StackFrame::FRAME_TRUST_CFI_SCAN;
+      }
+    }
+
+    if (recover_ebp) {
+      // When trying to recover the previous value of the frame pointer (%ebp),
+      // start looking at the lowest possible address in the saved-register
+      // area, and look at the entire saved register area, increased by the
+      // size of |offset| to account for additional data that may be on the
+      // stack.  The scan is performed from the highest possible address to
+      // the lowest, because the expectation is that the function's prolog
+      // would have saved %ebp early.
+      uint32_t ebp = dictionary["$ebp"];
+
+      // When a scan for return address is used, it is possible to skip one or
+      // more frames (when return address is not in a known module).  One
+      // indication for skipped frames is when the value of %ebp is lower than
+      // the location of the return address on the stack
+      bool has_skipped_frames =
+        (trust != StackFrame::FRAME_TRUST_CFI && ebp <= raSearchStart + offset);
+
+      uint32_t value;  // throwaway variable to check pointer validity
+      if (has_skipped_frames || !memory_->GetMemoryAtAddress(ebp, &value)) {
+        int fp_search_bytes = last_frame_info->saved_register_size + offset;
+        uint32_t location_end = last_frame->context.esp +
+                                 last_frame_callee_parameter_size;
+
+        for (uint32_t location = location_end + fp_search_bytes;
+             location >= location_end;
+             location -= 4) {
+          if (!memory_->GetMemoryAtAddress(location, &ebp))
+            break;
+
+          if (memory_->GetMemoryAtAddress(ebp, &value)) {
+            // The candidate value is a pointer to the same memory region
+            // (the stack).  Prefer it as a recovered %ebp result.
+            dictionary["$ebp"] = ebp;
+            break;
+          }
+        }
+      }
+    }
+  }
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameX86* frame = new StackFrameX86();
+
+  frame->trust = trust;
+  frame->context = last_frame->context;
+  frame->context.eip = dictionary["$eip"];
+  frame->context.esp = dictionary["$esp"];
+  frame->context.ebp = dictionary["$ebp"];
+  frame->context_validity = StackFrameX86::CONTEXT_VALID_EIP |
+                                StackFrameX86::CONTEXT_VALID_ESP |
+                                StackFrameX86::CONTEXT_VALID_EBP;
+
+  // These are nonvolatile (callee-save) registers, and the program string
+  // may have filled them in.
+  if (dictionary_validity.find("$ebx") != dictionary_validity.end()) {
+    frame->context.ebx = dictionary["$ebx"];
+    frame->context_validity |= StackFrameX86::CONTEXT_VALID_EBX;
+  }
+  if (dictionary_validity.find("$esi") != dictionary_validity.end()) {
+    frame->context.esi = dictionary["$esi"];
+    frame->context_validity |= StackFrameX86::CONTEXT_VALID_ESI;
+  }
+  if (dictionary_validity.find("$edi") != dictionary_validity.end()) {
+    frame->context.edi = dictionary["$edi"];
+    frame->context_validity |= StackFrameX86::CONTEXT_VALID_EDI;
+  }
+
+  return frame;
+}
+
+StackFrameX86* StackwalkerX86::GetCallerByCFIFrameInfo(
+    const vector<StackFrame*>& frames,
+    CFIFrameInfo* cfi_frame_info) {
+  StackFrameX86* last_frame = static_cast<StackFrameX86*>(frames.back());
+  last_frame->cfi_frame_info = cfi_frame_info;
+
+  scoped_ptr<StackFrameX86> frame(new StackFrameX86());
+  if (!cfi_walker_
+      .FindCallerRegisters(*memory_, *cfi_frame_info,
+                           last_frame->context, last_frame->context_validity,
+                           &frame->context, &frame->context_validity))
+    return NULL;
+
+  // Make sure we recovered all the essentials.
+  static const int essentials = (StackFrameX86::CONTEXT_VALID_EIP
+                                 | StackFrameX86::CONTEXT_VALID_ESP
+                                 | StackFrameX86::CONTEXT_VALID_EBP);
+  if ((frame->context_validity & essentials) != essentials)
+    return NULL;
+
+  frame->trust = StackFrame::FRAME_TRUST_CFI;
+
+  return frame.release();
+}
+
+StackFrameX86* StackwalkerX86::GetCallerByEBPAtBase(
+    const vector<StackFrame*>& frames,
+    bool stack_scan_allowed) {
+  StackFrame::FrameTrust trust;
+  StackFrameX86* last_frame = static_cast<StackFrameX86*>(frames.back());
+  uint32_t last_esp = last_frame->context.esp;
+  uint32_t last_ebp = last_frame->context.ebp;
+
+  // Assume that the standard %ebp-using x86 calling convention is in
+  // use.
+  //
+  // The typical x86 calling convention, when frame pointers are present,
+  // is for the calling procedure to use CALL, which pushes the return
+  // address onto the stack and sets the instruction pointer (%eip) to
+  // the entry point of the called routine.  The called routine then
+  // PUSHes the calling routine's frame pointer (%ebp) onto the stack
+  // before copying the stack pointer (%esp) to the frame pointer (%ebp).
+  // Therefore, the calling procedure's frame pointer is always available
+  // by dereferencing the called procedure's frame pointer, and the return
+  // address is always available at the memory location immediately above
+  // the address pointed to by the called procedure's frame pointer.  The
+  // calling procedure's stack pointer (%esp) is 8 higher than the value
+  // of the called procedure's frame pointer at the time the calling
+  // procedure made the CALL: 4 bytes for the return address pushed by the
+  // CALL itself, and 4 bytes for the callee's PUSH of the caller's frame
+  // pointer.
+  //
+  // %eip_new = *(%ebp_old + 4)
+  // %esp_new = %ebp_old + 8
+  // %ebp_new = *(%ebp_old)
+
+  uint32_t caller_eip, caller_esp, caller_ebp;
+
+  if (memory_->GetMemoryAtAddress(last_ebp + 4, &caller_eip) &&
+      memory_->GetMemoryAtAddress(last_ebp, &caller_ebp)) {
+    caller_esp = last_ebp + 8;
+    trust = StackFrame::FRAME_TRUST_FP;
+  } else {
+    // We couldn't read the memory %ebp refers to. It may be that %ebp
+    // is pointing to non-stack memory. We'll scan the stack for a
+    // return address. This can happen if last_frame is executing code
+    // for a module for which we don't have symbols, and that module
+    // is compiled without a frame pointer.
+    if (!stack_scan_allowed
+        || !ScanForReturnAddress(last_esp, &caller_esp, &caller_eip,
+                                 frames.size() == 1 /* is_context_frame */)) {
+      // if we can't find an instruction pointer even with stack scanning,
+      // give up.
+      return NULL;
+    }
+
+    // ScanForReturnAddress found a reasonable return address. Advance %esp to
+    // the location immediately above the one where the return address was
+    // found.
+    caller_esp += 4;
+    // Try to restore the %ebp chain.  The caller %ebp should be stored at a
+    // location immediately below the one where the return address was found.
+    // A valid caller %ebp must be greater than the address where it is stored
+    // and the gap between the two adjacent frames should be reasonable.
+    uint32_t restored_ebp_chain = caller_esp - 8;
+    if (!memory_->GetMemoryAtAddress(restored_ebp_chain, &caller_ebp) ||
+        caller_ebp <= restored_ebp_chain ||
+        caller_ebp - restored_ebp_chain > kMaxReasonableGapBetweenFrames) {
+      // The restored %ebp chain doesn't appear to be valid.
+      // Assume that %ebp is unchanged.
+      caller_ebp = last_ebp;
+    }
+
+    trust = StackFrame::FRAME_TRUST_SCAN;
+  }
+
+  // Create a new stack frame (ownership will be transferred to the caller)
+  // and fill it in.
+  StackFrameX86* frame = new StackFrameX86();
+
+  frame->trust = trust;
+  frame->context = last_frame->context;
+  frame->context.eip = caller_eip;
+  frame->context.esp = caller_esp;
+  frame->context.ebp = caller_ebp;
+  frame->context_validity = StackFrameX86::CONTEXT_VALID_EIP |
+                            StackFrameX86::CONTEXT_VALID_ESP |
+                            StackFrameX86::CONTEXT_VALID_EBP;
+
+  return frame;
+}
+
+StackFrame* StackwalkerX86::GetCallerFrame(const CallStack* stack,
+                                           bool stack_scan_allowed) {
+  if (!memory_ || !stack) {
+    BPLOG(ERROR) << "Can't get caller frame without memory or stack";
+    return NULL;
+  }
+
+  const vector<StackFrame*>& frames = *stack->frames();
+  StackFrameX86* last_frame = static_cast<StackFrameX86*>(frames.back());
+  scoped_ptr<StackFrameX86> new_frame;
+
+  // If the resolver has Windows stack walking information, use that.
+  WindowsFrameInfo* windows_frame_info
+      = frame_symbolizer_->FindWindowsFrameInfo(last_frame);
+  if (windows_frame_info)
+    new_frame.reset(GetCallerByWindowsFrameInfo(frames, windows_frame_info,
+                                                stack_scan_allowed));
+
+  // If the resolver has DWARF CFI information, use that.
+  if (!new_frame.get()) {
+    CFIFrameInfo* cfi_frame_info =
+        frame_symbolizer_->FindCFIFrameInfo(last_frame);
+    if (cfi_frame_info)
+      new_frame.reset(GetCallerByCFIFrameInfo(frames, cfi_frame_info));
+  }
+
+  // Otherwise, hope that the program was using a traditional frame structure.
+  if (!new_frame.get())
+    new_frame.reset(GetCallerByEBPAtBase(frames, stack_scan_allowed));
+
+  // If nothing worked, tell the caller.
+  if (!new_frame.get())
+    return NULL;
+
+  // Should we terminate the stack walk? (end-of-stack or broken invariant)
+  if (TerminateWalk(new_frame->context.eip,
+                    new_frame->context.esp,
+                    last_frame->context.esp,
+                    frames.size() == 1)) {
+    return NULL;
+  }
+
+  // new_frame->context.eip is the return address, which is the instruction
+  // after the CALL that caused us to arrive at the callee. Set
+  // new_frame->instruction to one less than that, so it points within the
+  // CALL instruction. See StackFrame::instruction for details, and
+  // StackFrameAMD64::ReturnAddress.
+  new_frame->instruction = new_frame->context.eip - 1;
+
+  return new_frame.release();
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/stackwalker_x86.h b/src/processor/stackwalker_x86.h
new file mode 100644
index 0000000..1783fda
--- /dev/null
+++ b/src/processor/stackwalker_x86.h
@@ -0,0 +1,117 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker_x86.h: x86-specific stackwalker.
+//
+// Provides stack frames given x86 register context and a memory region
+// corresponding to an x86 stack.
+//
+// Author: Mark Mentovai
+
+
+#ifndef PROCESSOR_STACKWALKER_X86_H__
+#define PROCESSOR_STACKWALKER_X86_H__
+
+#include <vector>
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stackwalker.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/cfi_frame_info.h"
+
+namespace google_breakpad {
+
+class CodeModules;
+
+
+class StackwalkerX86 : public Stackwalker {
+ public:
+  // context is an x86 context object that gives access to x86-specific
+  // register state corresponding to the innermost called frame to be
+  // included in the stack.  The other arguments are passed directly through
+  // to the base Stackwalker constructor.
+  StackwalkerX86(const SystemInfo* system_info,
+                 const MDRawContextX86* context,
+                 MemoryRegion* memory,
+                 const CodeModules* modules,
+                 StackFrameSymbolizer* frame_symbolizer);
+
+ private:
+  // A STACK CFI-driven frame walker for the X86.
+  typedef SimpleCFIWalker<uint32_t, MDRawContextX86> CFIWalker;
+
+  // Implementation of Stackwalker, using x86 context (%ebp, %esp, %eip) and
+  // stack conventions (saved %ebp at [%ebp], saved %eip at 4[%ebp], or
+  // alternate conventions as guided by any WindowsFrameInfo available for the
+  // code in question.).
+  virtual StackFrame* GetContextFrame();
+  virtual StackFrame* GetCallerFrame(const CallStack* stack,
+                                     bool stack_scan_allowed);
+
+  // Use windows_frame_info (derived from STACK WIN and FUNC records)
+  // to construct the frame that called frames.back(). The caller
+  // takes ownership of the returned frame. Return NULL on failure.
+  StackFrameX86* GetCallerByWindowsFrameInfo(
+      const vector<StackFrame*>& frames,
+      WindowsFrameInfo* windows_frame_info,
+      bool stack_scan_allowed);
+
+  // Use cfi_frame_info (derived from STACK CFI records) to construct
+  // the frame that called frames.back(). The caller takes ownership
+  // of the returned frame. Return NULL on failure.
+  StackFrameX86* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
+                                         CFIFrameInfo* cfi_frame_info);
+
+  // Assuming a traditional frame layout --- where the caller's %ebp
+  // has been pushed just after the return address and the callee's
+  // %ebp points to the saved %ebp --- construct the frame that called
+  // frames.back(). The caller takes ownership of the returned frame.
+  // Return NULL on failure.
+  StackFrameX86* GetCallerByEBPAtBase(const vector<StackFrame*>& frames,
+                                      bool stack_scan_allowed);
+
+  // Stores the CPU context corresponding to the innermost stack frame to
+  // be returned by GetContextFrame.
+  const MDRawContextX86* context_;
+
+  // Our register map, for cfi_walker_.
+  static const CFIWalker::RegisterSet cfi_register_map_[];
+
+  // Our CFI frame walker.
+  const CFIWalker cfi_walker_;
+};
+
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STACKWALKER_X86_H__
diff --git a/src/processor/stackwalker_x86_unittest.cc b/src/processor/stackwalker_x86_unittest.cc
new file mode 100644
index 0000000..b6f14a1
--- /dev/null
+++ b/src/processor/stackwalker_x86_unittest.cc
@@ -0,0 +1,2266 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// stackwalker_x86_unittest.cc: Unit tests for StackwalkerX86 class.
+
+#include <string>
+#include <vector>
+
+#include "breakpad_googletest_includes.h"
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "processor/stackwalker_unittest_utils.h"
+#include "processor/stackwalker_x86.h"
+#include "processor/windows_frame_info.h"
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::StackFrameSymbolizer;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFrameX86;
+using google_breakpad::Stackwalker;
+using google_breakpad::StackwalkerX86;
+using google_breakpad::SystemInfo;
+using google_breakpad::WindowsFrameInfo;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+using google_breakpad::test_assembler::Section;
+using std::vector;
+using testing::_;
+using testing::AnyNumber;
+using testing::DoAll;
+using testing::Return;
+using testing::SetArgumentPointee;
+using testing::Test;
+
+class StackwalkerX86Fixture {
+ public:
+  StackwalkerX86Fixture()
+    : stack_section(kLittleEndian),
+      // Give the two modules reasonable standard locations and names
+      // for tests to play with.
+      module1(0x40000000, 0x10000, "module1", "version1"),
+      module2(0x50000000, 0x10000, "module2", "version2"),
+      module3(0x771d0000, 0x180000, "module3", "version3"),
+      module4(0x75f90000, 0x46000, "module4", "version4"),
+      module5(0x75730000, 0x110000, "module5", "version5"),
+      module6(0x647f0000, 0x1ba8000, "module6", "version6") {
+    // Identify the system as a Linux system.
+    system_info.os = "Linux";
+    system_info.os_short = "linux";
+    system_info.os_version = "Salacious Skink";
+    system_info.cpu = "x86";
+    system_info.cpu_info = "";
+
+    // Put distinctive values in the raw CPU context.
+    BrandContext(&raw_context);
+
+    // Create some modules with some stock debugging information.
+    modules.Add(&module1);
+    modules.Add(&module2);
+    modules.Add(&module3);
+    modules.Add(&module4);
+    modules.Add(&module5);
+    modules.Add(&module6);
+
+    // By default, none of the modules have symbol info; call
+    // SetModuleSymbols to override this.
+    EXPECT_CALL(supplier, GetCStringSymbolData(_, _, _, _, _))
+      .WillRepeatedly(Return(MockSymbolSupplier::NOT_FOUND));
+
+    // Avoid GMOCK WARNING "Uninteresting mock function call - returning
+    // directly" for FreeSymbolData().
+    EXPECT_CALL(supplier, FreeSymbolData(_)).Times(AnyNumber());
+
+    // Reset max_frames_scanned since it's static.
+    Stackwalker::set_max_frames_scanned(1024);
+  }
+
+  // Set the Breakpad symbol information that supplier should return for
+  // MODULE to INFO.
+  void SetModuleSymbols(MockCodeModule* module, const string& info) {
+    size_t buffer_size;
+    char *buffer = supplier.CopySymbolDataAndOwnTheCopy(info, &buffer_size);
+    EXPECT_CALL(supplier, GetCStringSymbolData(module, &system_info, _, _, _))
+      .WillRepeatedly(DoAll(SetArgumentPointee<3>(buffer),
+                            SetArgumentPointee<4>(buffer_size),
+                            Return(MockSymbolSupplier::FOUND)));
+  }
+
+  // Populate stack_region with the contents of stack_section. Use
+  // stack_section.start() as the region's starting address.
+  void RegionFromSection() {
+    string contents;
+    ASSERT_TRUE(stack_section.GetContents(&contents));
+    stack_region.Init(stack_section.start().Value(), contents);
+  }
+
+  // Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
+  void BrandContext(MDRawContextX86 *raw_context) {
+    uint8_t x = 173;
+    for (size_t i = 0; i < sizeof(*raw_context); i++)
+      reinterpret_cast<uint8_t*>(raw_context)[i] = (x += 17);
+  }
+
+  SystemInfo system_info;
+  MDRawContextX86 raw_context;
+  Section stack_section;
+  MockMemoryRegion stack_region;
+  MockCodeModule module1;
+  MockCodeModule module2;
+  MockCodeModule module3;
+  MockCodeModule module4;
+  MockCodeModule module5;
+  MockCodeModule module6;
+  MockCodeModules modules;
+  MockSymbolSupplier supplier;
+  BasicSourceLineResolver resolver;
+  CallStack call_stack;
+  const vector<StackFrame*>* frames;
+};
+
+class SanityCheck: public StackwalkerX86Fixture, public Test { };
+
+TEST_F(SanityCheck, NoResolver) {
+  stack_section.start() = 0x80000000;
+  stack_section.D32(0).D32(0);  // end-of-stack marker
+  RegionFromSection();
+  raw_context.eip = 0x40000200;
+  raw_context.ebp = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(NULL, NULL);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  // This should succeed, even without a resolver or supplier.
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetContextFrame: public StackwalkerX86Fixture, public Test { };
+
+TEST_F(GetContextFrame, Simple) {
+  stack_section.start() = 0x80000000;
+  stack_section.D32(0).D32(0);  // end-of-stack marker
+  RegionFromSection();
+  raw_context.eip = 0x40000200;
+  raw_context.ebp = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+// The stackwalker should be able to produce the context frame even
+// without stack memory present.
+TEST_F(GetContextFrame, NoStackMemory) {
+  raw_context.eip = 0x40000200;
+  raw_context.ebp = 0x80000000;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, NULL, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(0));
+  // Check that the values from the original raw context made it
+  // through to the context in the stack frame.
+  EXPECT_EQ(0, memcmp(&raw_context, &frame->context, sizeof(raw_context)));
+}
+
+class GetCallerFrame: public StackwalkerX86Fixture, public Test {
+ protected:
+  void IPAddressIsNotInKnownModuleTestImpl(bool has_corrupt_symbols);
+};
+
+// Walk a traditional frame. A traditional frame saves the caller's
+// %ebp just below the return address, and has its own %ebp pointing
+// at the saved %ebp.
+TEST_F(GetCallerFrame, Traditional) {
+  stack_section.start() = 0x80000000;
+  Label frame0_ebp, frame1_ebp;
+  stack_section
+    .Append(12, 0)                      // frame 0: space
+    .Mark(&frame0_ebp)                  // frame 0 %ebp points here
+    .D32(frame1_ebp)                    // frame 0: saved %ebp
+    .D32(0x40008679)                    // frame 0: return address
+    .Append(8, 0)                       // frame 1: space
+    .Mark(&frame1_ebp)                  // frame 1 %ebp points here
+    .D32(0)                             // frame 1: saved %ebp (stack end)
+    .D32(0);                            // frame 1: return address (stack end)
+  RegionFromSection();
+  raw_context.eip = 0x4000c7a5;
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = frame0_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    EXPECT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000c7a5U, frame0->instruction);
+    EXPECT_EQ(0x4000c7a5U, frame0->context.eip);
+    EXPECT_EQ(frame0_ebp.Value(), frame0->context.ebp);
+    EXPECT_EQ(NULL, frame0->windows_frame_info);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x40008679U, frame1->instruction + 1);
+    EXPECT_EQ(0x40008679U, frame1->context.eip);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Walk a traditional frame, but use a bogus %ebp value, forcing a scan
+// of the stack for something that looks like a return address.
+TEST_F(GetCallerFrame, TraditionalScan) {
+  stack_section.start() = 0x80000000;
+  Label frame1_ebp;
+  Label frame1_esp;
+  stack_section
+    // frame 0
+    .D32(0xf065dc76)    // locals area:
+    .D32(0x46ee2167)    // garbage that doesn't look like
+    .D32(0xbab023ec)    // a return address
+    .D32(frame1_ebp)    // saved %ebp (%ebp fails to point here, forcing scan)
+    .D32(0x4000129d)    // return address
+    // frame 1
+    .Mark(&frame1_esp)
+    .Append(8, 0)       // space
+    .Mark(&frame1_ebp)  // %ebp points here
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // return address (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000f49d;
+  raw_context.esp = stack_section.start().Value();
+  // Make the frame pointer bogus, to make the stackwalker scan the stack
+  // for something that looks like a return address.
+  raw_context.ebp = 0xd43eed6e;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000f49dU, frame0->instruction);
+    EXPECT_EQ(0x4000f49dU, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(0xd43eed6eU, frame0->context.ebp);
+    EXPECT_EQ(NULL, frame0->windows_frame_info);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x4000129dU, frame1->instruction + 1);
+    EXPECT_EQ(0x4000129dU, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Force scanning for a return address a long way down the stack
+TEST_F(GetCallerFrame, TraditionalScanLongWay) {
+  stack_section.start() = 0x80000000;
+  Label frame1_ebp;
+  Label frame1_esp;
+  stack_section
+    // frame 0
+    .D32(0xf065dc76)    // locals area:
+    .D32(0x46ee2167)    // garbage that doesn't look like
+    .D32(0xbab023ec)    // a return address
+    .Append(20 * 4, 0)  // a bunch of space
+    .D32(frame1_ebp)    // saved %ebp (%ebp fails to point here, forcing scan)
+    .D32(0x4000129d)    // return address
+    // frame 1
+    .Mark(&frame1_esp)
+    .Append(8, 0)       // space
+    .Mark(&frame1_ebp)  // %ebp points here
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // return address (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000f49d;
+  raw_context.esp = stack_section.start().Value();
+  // Make the frame pointer bogus, to make the stackwalker scan the stack
+  // for something that looks like a return address.
+  raw_context.ebp = 0xd43eed6e;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000f49dU, frame0->instruction);
+    EXPECT_EQ(0x4000f49dU, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(0xd43eed6eU, frame0->context.ebp);
+    EXPECT_EQ(NULL, frame0->windows_frame_info);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x4000129dU, frame1->instruction + 1);
+    EXPECT_EQ(0x4000129dU, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Test that set_max_frames_scanned prevents using stack scanning
+// to find caller frames.
+TEST_F(GetCallerFrame, ScanningNotAllowed) {
+  stack_section.start() = 0x80000000;
+  Label frame1_ebp;
+  stack_section
+    // frame 0
+    .D32(0xf065dc76)    // locals area:
+    .D32(0x46ee2167)    // garbage that doesn't look like
+    .D32(0xbab023ec)    // a return address
+    .D32(frame1_ebp)    // saved %ebp (%ebp fails to point here, forcing scan)
+    .D32(0x4000129d)    // return address
+    // frame 1
+    .Append(8, 0)       // space
+    .Mark(&frame1_ebp)  // %ebp points here
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // return address (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000f49d;
+  raw_context.esp = stack_section.start().Value();
+  // Make the frame pointer bogus, to make the stackwalker scan the stack
+  // for something that looks like a return address.
+  raw_context.ebp = 0xd43eed6e;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  Stackwalker::set_max_frames_scanned(0);
+
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module1", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(1U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000f49dU, frame0->instruction);
+    EXPECT_EQ(0x4000f49dU, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(0xd43eed6eU, frame0->context.ebp);
+    EXPECT_EQ(NULL, frame0->windows_frame_info);
+  }
+}
+
+// Use Windows frame data (a "STACK WIN 4" record, from a
+// FrameTypeFrameData DIA record) to walk a stack frame.
+TEST_F(GetCallerFrame, WindowsFrameData) {
+  SetModuleSymbols(&module1,
+                   "STACK WIN 4 aa85 176 0 0 4 10 4 0 1"
+                   " $T2 $esp .cbSavedRegs + ="
+                   " $T0 .raSearchStart ="
+                   " $eip $T0 ^ ="
+                   " $esp $T0 4 + ="
+                   " $ebx $T2 4  - ^ ="
+                   " $edi $T2 8  - ^ ="
+                   " $esi $T2 12 - ^ ="
+                   " $ebp $T2 16 - ^ =\n");
+  Label frame1_esp, frame1_ebp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0
+    .D32(frame1_ebp)                    // saved regs: %ebp
+    .D32(0xa7120d1a)                    //             %esi
+    .D32(0x630891be)                    //             %edi
+    .D32(0x9068a878)                    //             %ebx
+    .D32(0xa08ea45f)                    // locals: unused
+    .D32(0x40001350)                    // return address
+    // frame 1
+    .Mark(&frame1_esp)
+    .Append(12, 0)                      // empty space
+    .Mark(&frame1_ebp)
+    .D32(0)                             // saved %ebp (stack end)
+    .D32(0);                            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000aa85;
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = 0xf052c1de;         // should not be needed to walk frame
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000aa85U, frame0->instruction);
+    EXPECT_EQ(0x4000aa85U, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(0xf052c1deU, frame0->context.ebp);
+    EXPECT_TRUE(frame0->windows_frame_info != NULL);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP
+               | StackFrameX86::CONTEXT_VALID_EBX
+               | StackFrameX86::CONTEXT_VALID_ESI
+               | StackFrameX86::CONTEXT_VALID_EDI),
+              frame1->context_validity);
+    EXPECT_EQ(0x40001350U, frame1->instruction + 1);
+    EXPECT_EQ(0x40001350U, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(0x9068a878U, frame1->context.ebx);
+    EXPECT_EQ(0xa7120d1aU, frame1->context.esi);
+    EXPECT_EQ(0x630891beU, frame1->context.edi);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Use Windows frame data (a "STACK WIN 4" record, from a
+// FrameTypeFrameData DIA record) to walk a stack frame where the stack
+// is aligned and we must search
+TEST_F(GetCallerFrame, WindowsFrameDataAligned) {
+  SetModuleSymbols(&module1,
+                   "STACK WIN 4 aa85 176 0 0 4 4 8 0 1"
+                   " $T1 .raSearch ="
+                   " $T0 $T1 4 - 8 @ ="
+                   " $ebp $T1 4 - ^ ="
+                   " $eip $T1 ^ ="
+                   " $esp $T1 4 + =");
+  Label frame0_esp, frame0_ebp;
+  Label frame1_esp, frame1_ebp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0
+    .Mark(&frame0_esp)
+    .D32(0x0ffa0ffa)                    // unused saved register
+    .D32(0xdeaddead)                    // locals
+    .D32(0xbeefbeef)
+    .D32(0)                             // 8-byte alignment
+    .Mark(&frame0_ebp)
+    .D32(frame1_ebp)                    // saved %ebp
+    .D32(0x5000129d)                    // return address
+    // frame 1
+    .Mark(&frame1_esp)
+    .D32(0x1)                           // parameter
+    .Mark(&frame1_ebp)
+    .D32(0)                             // saved %ebp (stack end)
+    .D32(0);                            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000aa85;
+  raw_context.esp = frame0_esp.Value();
+  raw_context.ebp = frame0_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(1U, modules_without_symbols.size());
+  ASSERT_EQ("module2", modules_without_symbols[0]->debug_file());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000aa85U, frame0->instruction);
+    EXPECT_EQ(0x4000aa85U, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    EXPECT_EQ(frame0_ebp.Value(), frame0->context.ebp);
+    EXPECT_TRUE(frame0->windows_frame_info != NULL);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x5000129dU, frame1->instruction + 1);
+    EXPECT_EQ(0x5000129dU, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Use Windows frame data (a "STACK WIN 4" record, from a
+// FrameTypeFrameData DIA record) to walk a frame, and depend on the
+// parameter size from the callee as well.
+TEST_F(GetCallerFrame, WindowsFrameDataParameterSize) {
+  SetModuleSymbols(&module1, "FUNC 1000 100 c module1::wheedle\n");
+  SetModuleSymbols(&module2,
+                   // Note bogus parameter size in FUNC record; the stack walker
+                   // should prefer the STACK WIN record, and see '4' below.
+                   "FUNC aa85 176 beef module2::whine\n"
+                   "STACK WIN 4 aa85 176 0 0 4 10 4 0 1"
+                   " $T2 $esp .cbLocals + .cbSavedRegs + ="
+                   " $T0 .raSearchStart ="
+                   " $eip $T0 ^ ="
+                   " $esp $T0 4 + ="
+                   " $ebp $T0 20 - ^ ="
+                   " $ebx $T0 8 - ^ =\n");
+  Label frame0_esp, frame0_ebp;
+  Label frame1_esp;
+  Label frame2_esp, frame2_ebp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0, in module1::wheedle.  Traditional frame.
+    .Mark(&frame0_esp)
+    .Append(16, 0)      // frame space
+    .Mark(&frame0_ebp)
+    .D32(0x6fa902e0)    // saved %ebp.  Not a frame pointer.
+    .D32(0x5000aa95)    // return address, in module2::whine
+    // frame 1, in module2::whine.  FrameData frame.
+    .Mark(&frame1_esp)
+    .D32(0xbaa0cb7a)    // argument 3 passed to module1::wheedle
+    .D32(0xbdc92f9f)    // argument 2
+    .D32(0x0b1d8442)    // argument 1
+    .D32(frame2_ebp)    // saved %ebp
+    .D32(0xb1b90a15)    // unused
+    .D32(0xf18e072d)    // unused
+    .D32(0x2558c7f3)    // saved %ebx
+    .D32(0x0365e25e)    // unused
+    .D32(0x2a179e38)    // return address; $T0 points here
+    // frame 2, in no module
+    .Mark(&frame2_esp)
+    .Append(12, 0)      // empty space
+    .Mark(&frame2_ebp)
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x40001004;  // in module1::wheedle
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = frame0_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(3U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x40001004U, frame0->instruction);
+    EXPECT_EQ(0x40001004U, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    EXPECT_EQ(frame0_ebp.Value(), frame0->context.ebp);
+    EXPECT_EQ(&module1, frame0->module);
+    EXPECT_EQ("module1::wheedle", frame0->function_name);
+    EXPECT_EQ(0x40001000U, frame0->function_base);
+    // The FUNC record for module1::wheedle should have produced a
+    // WindowsFrameInfo structure with only the parameter size valid.
+    ASSERT_TRUE(frame0->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_PARAMETER_SIZE,
+              frame0->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_UNKNOWN,
+              frame0->windows_frame_info->type_);
+    EXPECT_EQ(12U, frame0->windows_frame_info->parameter_size);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_FP, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x5000aa95U, frame1->instruction + 1);
+    EXPECT_EQ(0x5000aa95U, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(0x6fa902e0U, frame1->context.ebp);
+    EXPECT_EQ(&module2, frame1->module);
+    EXPECT_EQ("module2::whine", frame1->function_name);
+    EXPECT_EQ(0x5000aa85U, frame1->function_base);
+    ASSERT_TRUE(frame1->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame1->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame1->windows_frame_info->type_);
+    // This should not see the 0xbeef parameter size from the FUNC
+    // record, but should instead see the STACK WIN record.
+    EXPECT_EQ(4U, frame1->windows_frame_info->parameter_size);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame2 = static_cast<StackFrameX86*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame2->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP
+               | StackFrameX86::CONTEXT_VALID_EBX),
+              frame2->context_validity);
+    EXPECT_EQ(0x2a179e38U, frame2->instruction + 1);
+    EXPECT_EQ(0x2a179e38U, frame2->context.eip);
+    EXPECT_EQ(frame2_esp.Value(), frame2->context.esp);
+    EXPECT_EQ(frame2_ebp.Value(), frame2->context.ebp);
+    EXPECT_EQ(0x2558c7f3U, frame2->context.ebx);
+    EXPECT_EQ(NULL, frame2->module);
+    EXPECT_EQ(NULL, frame2->windows_frame_info);
+  }
+}
+
+// Use Windows frame data (a "STACK WIN 4" record, from a
+// FrameTypeFrameData DIA record) to walk a stack frame, where the
+// expression fails to yield both an $eip and an $ebp value, and the stack
+// walker must scan.
+TEST_F(GetCallerFrame, WindowsFrameDataScan) {
+  SetModuleSymbols(&module1,
+                   "STACK WIN 4 c8c 111 0 0 4 10 4 0 1 bad program string\n");
+  // Mark frame 1's PC as the end of the stack.
+  SetModuleSymbols(&module2,
+                   "FUNC 7c38 accf 0 module2::function\n"
+                   "STACK WIN 4 7c38 accf 0 0 4 10 4 0 1 $eip 0 = $ebp 0 =\n");
+  Label frame1_esp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0
+    .Append(16, 0x2a)                   // unused, garbage
+    .D32(0x50007ce9)                    // return address
+    // frame 1
+    .Mark(&frame1_esp)
+    .Append(8, 0);                      // empty space
+
+  RegionFromSection();
+  raw_context.eip = 0x40000c9c;
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = 0x2ae314cd;         // should not be needed to walk frame
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x40000c9cU, frame0->instruction);
+    EXPECT_EQ(0x40000c9cU, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(0x2ae314cdU, frame0->context.ebp);
+    EXPECT_TRUE(frame0->windows_frame_info != NULL);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+    // I'd argue that CONTEXT_VALID_EBP shouldn't be here, since the walker
+    // does not actually fetch the EBP after a scan (forcing the next frame
+    // to be scanned as well). But let's grandfather the existing behavior in
+    // for now.
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x50007ce9U, frame1->instruction + 1);
+    EXPECT_EQ(0x50007ce9U, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_TRUE(frame1->windows_frame_info != NULL);
+  }
+}
+
+// Use Windows frame data (a "STACK WIN 4" record, from a
+// FrameTypeFrameData DIA record) to walk a stack frame, where the
+// expression yields an $eip that falls outside of any module, and the
+// stack walker must scan.
+TEST_F(GetCallerFrame, WindowsFrameDataBadEIPScan) {
+  SetModuleSymbols(&module1,
+                   "STACK WIN 4 6e6 e7 0 0 0 8 4 0 1"
+                   // A traditional frame, actually.
+                   " $eip $ebp 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =\n");
+  // Mark frame 1's PC as the end of the stack.
+  SetModuleSymbols(&module2,
+                   "FUNC cfdb 8406 0 module2::function\n"
+                   "STACK WIN 4 cfdb 8406 0 0 0 0 0 0 1 $eip 0 = $ebp 0 =\n");
+  stack_section.start() = 0x80000000;
+
+  // In this stack, the context's %ebp is pointing at the wrong place, so
+  // the stack walker needs to scan to find the return address, and then
+  // scan again to find the caller's saved %ebp.
+  Label frame0_ebp, frame1_ebp, frame1_esp;
+  stack_section
+    // frame 0
+    .Append(8, 0x2a)            // garbage
+    .Mark(&frame0_ebp)          // frame 0 %ebp points here, but should point
+                                // at *** below
+    // The STACK WIN record says that the following two values are
+    // frame 1's saved %ebp and return address, but the %ebp is wrong;
+    // they're garbage. The stack walker will scan for the right values.
+    .D32(0x3d937b2b)            // alleged to be frame 1's saved %ebp
+    .D32(0x17847f5b)            // alleged to be frame 1's return address
+    .D32(frame1_ebp)            // frame 1's real saved %ebp; scan will find
+    .D32(0x2b2b2b2b)            // first word of realigned register save area
+    // *** frame 0 %ebp ought to be pointing here
+    .D32(0x2c2c2c2c)            // realigned locals area
+    .D32(0x5000d000)            // frame 1's real saved %eip; scan will find
+    // Frame 1, in module2::function. The STACK WIN record describes
+    // this as the oldest frame, without referring to its contents, so
+    // we needn't to provide any actual data here.
+    .Mark(&frame1_esp)
+    .Mark(&frame1_ebp)          // frame 1 %ebp points here
+    // A dummy value for frame 1's %ebp to point at. The scan recognizes the
+    // saved %ebp because it points to a valid word in the stack memory region.
+    .D32(0x2d2d2d2d);
+
+  RegionFromSection();
+  raw_context.eip = 0x40000700;
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = frame0_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x40000700U, frame0->instruction);
+    EXPECT_EQ(0x40000700U, frame0->context.eip);
+    EXPECT_EQ(stack_section.start().Value(), frame0->context.esp);
+    EXPECT_EQ(frame0_ebp.Value(), frame0->context.ebp);
+    EXPECT_TRUE(frame0->windows_frame_info != NULL);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI_SCAN, frame1->trust);
+    // I'd argue that CONTEXT_VALID_EBP shouldn't be here, since the
+    // walker does not actually fetch the EBP after a scan (forcing the
+    // next frame to be scanned as well). But let's grandfather the existing
+    // behavior in for now.
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x5000d000U, frame1->instruction + 1);
+    EXPECT_EQ(0x5000d000U, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_TRUE(frame1->windows_frame_info != NULL);
+  }
+}
+
+// Use Windows FrameTypeFPO data to walk a stack frame for a function that
+// does not modify %ebp from the value it had in the caller.
+TEST_F(GetCallerFrame, WindowsFPOUnchangedEBP) {
+  SetModuleSymbols(&module1,
+                   // Note bogus parameter size in FUNC record; the walker
+                   // should prefer the STACK WIN record, and see the '8' below.
+                   "FUNC e8a8 100 feeb module1::discombobulated\n"
+                   "STACK WIN 0 e8a8 100 0 0 8 4 10 0 0 0\n");
+  Label frame0_esp;
+  Label frame1_esp, frame1_ebp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0, in module1::wheedle.  FrameTypeFPO (STACK WIN 0) frame.
+    .Mark(&frame0_esp)
+    // no outgoing parameters; this is the youngest frame.
+    .D32(0x7c521352)     // four bytes of saved registers
+    .Append(0x10, 0x42)  // local area
+    .D32(0x40009b5b)     // return address, in module1, no function
+    // frame 1, in module1, no function.
+    .Mark(&frame1_esp)
+    .D32(0xf60ea7fc)     // junk
+    .Mark(&frame1_ebp)
+    .D32(0)              // saved %ebp (stack end)
+    .D32(0);             // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4000e8b8;  // in module1::whine
+  raw_context.esp = stack_section.start().Value();
+  // Frame pointer unchanged from caller.
+  raw_context.ebp = frame1_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x4000e8b8U, frame0->instruction);
+    EXPECT_EQ(0x4000e8b8U, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    // unchanged from caller
+    EXPECT_EQ(frame1_ebp.Value(), frame0->context.ebp);
+    EXPECT_EQ(&module1, frame0->module);
+    EXPECT_EQ("module1::discombobulated", frame0->function_name);
+    EXPECT_EQ(0x4000e8a8U, frame0->function_base);
+    // The STACK WIN record for module1::discombobulated should have
+    // produced a fully populated WindowsFrameInfo structure.
+    ASSERT_TRUE(frame0->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame0->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FPO,
+              frame0->windows_frame_info->type_);
+    EXPECT_EQ(0x10U, frame0->windows_frame_info->local_size);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP
+               | StackFrameX86::CONTEXT_VALID_EBX),
+              frame1->context_validity);
+    EXPECT_EQ(0x40009b5bU, frame1->instruction + 1);
+    EXPECT_EQ(0x40009b5bU, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(&module1, frame1->module);
+    EXPECT_EQ("", frame1->function_name);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// Use Windows FrameTypeFPO data to walk a stack frame for a function
+// that uses %ebp for its own purposes, saving the value it had in the
+// caller in the standard place in the saved register area.
+TEST_F(GetCallerFrame, WindowsFPOUsedEBP) {
+  SetModuleSymbols(&module1,
+                   // Note bogus parameter size in FUNC record; the walker
+                   // should prefer the STACK WIN record, and see the '8' below.
+                   "FUNC 9aa8 e6 abbe module1::RaisedByTheAliens\n"
+                   "STACK WIN 0 9aa8 e6 a 0 10 8 4 0 0 1\n");
+  Label frame0_esp;
+  Label frame1_esp, frame1_ebp;
+  stack_section.start() = 0x80000000;
+  stack_section
+    // frame 0, in module1::wheedle.  FrameTypeFPO (STACK WIN 0) frame.
+    .Mark(&frame0_esp)
+    // no outgoing parameters; this is the youngest frame.
+    .D32(frame1_ebp)    // saved register area: saved %ebp
+    .D32(0xb68bd5f9)    // saved register area: something else
+    .D32(0xd25d05fc)    // local area
+    .D32(0x4000debe)    // return address, in module1, no function
+    // frame 1, in module1, no function.
+    .Mark(&frame1_esp)
+    .D32(0xf0c9a974)    // junk
+    .Mark(&frame1_ebp)
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x40009ab8;  // in module1::RaisedByTheAliens
+  raw_context.esp = stack_section.start().Value();
+  // RaisedByTheAliens uses %ebp for its own mysterious purposes.
+  raw_context.ebp = 0xecbdd1a5;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+  ASSERT_EQ(2U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x40009ab8U, frame0->instruction);
+    EXPECT_EQ(0x40009ab8U, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    EXPECT_EQ(0xecbdd1a5, frame0->context.ebp);
+    EXPECT_EQ(&module1, frame0->module);
+    EXPECT_EQ("module1::RaisedByTheAliens", frame0->function_name);
+    EXPECT_EQ(0x40009aa8U, frame0->function_base);
+    // The STACK WIN record for module1::RaisedByTheAliens should have
+    // produced a fully populated WindowsFrameInfo structure.
+    ASSERT_TRUE(frame0->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame0->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FPO,
+              frame0->windows_frame_info->type_);
+    EXPECT_EQ("", frame0->windows_frame_info->program_string);
+    EXPECT_TRUE(frame0->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x4000debeU, frame1->instruction + 1);
+    EXPECT_EQ(0x4000debeU, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(&module1, frame1->module);
+    EXPECT_EQ("", frame1->function_name);
+    EXPECT_EQ(NULL, frame1->windows_frame_info);
+  }
+}
+
+// This is a regression test for FPO code that references the initial value of
+// EBX.
+TEST_F(GetCallerFrame, WindowsFPOReferencesEBX) {
+  MockCodeModule ntdll(0x776e0000, 0x142000, "ntdll", "ntdllver");
+  MockCodeModule kernel32(0x77250000, 0xd5000, "kernel32", "kernel32ver");
+  MockCodeModule chrome_child(0x5a710000, 0x2b7c000, "chrome_child",
+                              "chrome_childver");
+  MockCodeModules modules;
+  modules.Add(&ntdll);
+  modules.Add(&kernel32);
+  modules.Add(&chrome_child);
+  SetModuleSymbols(&ntdll,
+                   "PUBLIC 46bf4 0 KiFastSystemCallRet\n"
+                   "STACK WIN 0 46bf4 1 0 0 0 0 0 0 0 0\n"
+
+                   "PUBLIC 46550 10 NtWaitForKeyedEvent\n"
+                   "STACK WIN 0 46550 f 0 0 10 0 0 0 0 0\n"
+
+                   "PUBLIC 4965 10 RtlSleepConditionVariableSRW\n"
+
+                   "STACK WIN 4 4965 23 23 0 10 8 38 0 1 $T0 $ebx = "
+                   "$eip $T0 4 + ^ = $ebx $T0 ^ = $esp $T0 8 + = "
+                   "$ebp $ebp ^ = $L $ebp = $P $T0 8 + .cbParams + =\n"
+
+                   "STACK WIN 4 4988 e3 0 0 10 8 38 0 1 $T0 $ebx = "
+                   "$eip $T0 4 + ^ = $ebx $T0 ^ = $esp $T0 8 + = "
+                   "$ebp $ebp ^ = $L $ebp = $P $T0 8 + .cbParams + =\n"
+
+                   "STACK WIN 4 4b2e b 0 0 10 8 38 0 1 $T0 $ebx = "
+                   "$eip $T0 4 + ^ = $ebx $T0 ^ = $esp $T0 8 + = "
+                   "$ebp $ebp ^ = $L $ebp = $P $T0 8 + .cbParams + =\n");
+
+  SetModuleSymbols(&kernel32,
+                   "PUBLIC 3217a 10 SleepConditionVariableSRW\n"
+                   "STACK WIN 4 3217a 40 8 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 "
+                   "+ ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = "
+                   "$P $T0 8 + .cbParams + =\n");
+
+  SetModuleSymbols(&chrome_child,
+                   "FUNC 4f4851 20 0 base::ConditionVariable::TimedWait\n");
+
+  stack_section.start() = 0x0026c048;
+  stack_section
+      .D32(0x7772655c)
+      .D32(0x776e4a3f)
+      .D32(0x00000000)
+      .D32(0x0026c070)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x00000001)
+      .D32(0x0026c168)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x0026c070)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x0026c164)
+      .D32(0x00be0000)
+      .D32(0x0026fc60)
+      .D32(0x0026c164)
+      .D32(0x00000000)
+      .D32(0xfffffffe)
+      .D32(0x00000000)
+      .D32(0x0026c0d0)
+      .D32(0x7728219e)
+      .D32(0x000003e8)
+      .D32(0x00000000)
+      .D32(0x7728219e)
+      .D32(0x0026c168)
+      .D32(0x0026c164)
+      .D32(0x00000000)
+      .D32(0x00000000)
+      .D32(0x0026c168)
+      .D32(0x000003e8)
+      .D32(0x000003e8)
+      .D32(0x0026c0ec)
+      .D32(0x5ac0486c)
+      .D32(0x0026c168)
+      .D32(0x0026c108)
+      .D32(0x5ac0484c)
+      .D32(0x0026c100)
+      .D32(0x0026c160);
+
+  RegionFromSection();
+  raw_context.eip = 0x77726bf4; // in ntdll!KiFastSystemCallRet
+  raw_context.esp = stack_section.start().Value();
+  raw_context.ebp = 0x26c0a0;
+  raw_context.ebx = 0x26c0ac;
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+
+  ASSERT_EQ(5U, frames->size());
+  {
+    const StackFrameX86& frame = *static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame.trust);
+    EXPECT_EQ(0x77726bf4U, frame.context.eip);
+    EXPECT_EQ("KiFastSystemCallRet", frame.function_name);
+  }
+  {
+    const StackFrameX86& frame = *static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame.trust);
+    EXPECT_EQ(0x7772655cU, frame.context.eip);
+    EXPECT_EQ("NtWaitForKeyedEvent", frame.function_name);
+  }
+  {
+    const StackFrameX86& frame = *static_cast<StackFrameX86*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame.trust);
+    EXPECT_EQ(0x776e4a3fU, frame.context.eip);
+    EXPECT_EQ("RtlSleepConditionVariableSRW", frame.function_name);
+  }
+  {
+    const StackFrameX86& frame = *static_cast<StackFrameX86*>(frames->at(3));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame.trust);
+    EXPECT_EQ(0x7728219eU, frame.context.eip);
+    EXPECT_EQ("SleepConditionVariableSRW", frame.function_name);
+  }
+  {
+    const StackFrameX86& frame = *static_cast<StackFrameX86*>(frames->at(4));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame.trust);
+    EXPECT_EQ(0x5ac0486cU, frame.context.eip);
+    EXPECT_EQ("base::ConditionVariable::TimedWait", frame.function_name);
+  }
+}
+
+// This is a regression unit test which covers a bug which has to do with
+// FPO-optimized Windows system call stubs in the context frame.  There is
+// a more recent Windows system call dispatch mechanism which differs from
+// the one which is being tested here.  The newer system call dispatch
+// mechanism creates an extra context frame (KiFastSystemCallRet).
+TEST_F(GetCallerFrame, WindowsFPOSystemCall) {
+  SetModuleSymbols(&module3,  // ntdll.dll
+                   "PUBLIC 1f8ac c ZwWaitForSingleObject\n"
+                   "STACK WIN 0 1f8ac 1b 0 0 c 0 0 0 0 0\n");
+  SetModuleSymbols(&module4,  // kernelbase.dll
+                   "PUBLIC 109f9 c WaitForSingleObjectEx\n"
+                   "PUBLIC 36590 0 _except_handler4\n"
+                   "STACK WIN 4 109f9 df c 0 c c 48 0 1 $T0 $ebp = $eip "
+                   "$T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L "
+                   "$T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =\n"
+                   "STACK WIN 4 36590 154 17 0 10 0 14 0 1 $T0 $ebp = $eip "
+                   "$T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 "
+                   ".cbSavedRegs - = $P $T0 8 + .cbParams + =\n");
+  SetModuleSymbols(&module5,  // kernel32.dll
+                   "PUBLIC 11136 8 WaitForSingleObject\n"
+                   "PUBLIC 11151 c WaitForSingleObjectExImplementation\n"
+                   "STACK WIN 4 11136 16 5 0 8 0 0 0 1 $T0 $ebp = $eip "
+                   "$T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L "
+                   "$T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =\n"
+                   "STACK WIN 4 11151 7a 5 0 c 0 0 0 1 $T0 $ebp = $eip "
+                   "$T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L "
+                   "$T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =\n");
+  SetModuleSymbols(&module6,  // chrome.dll
+                   "FILE 7038 some_file_name.h\n"
+                   "FILE 839776 some_file_name.cc\n"
+                   "FUNC 217fda 17 4 function_217fda\n"
+                   "217fda 4 102 839776\n"
+                   "FUNC 217ff1 a 4 function_217ff1\n"
+                   "217ff1 0 594 7038\n"
+                   "217ff1 a 596 7038\n"
+                   "STACK WIN 0 217ff1 a 0 0 4 0 0 0 0 0\n");
+
+  Label frame0_esp, frame1_esp;
+  Label frame1_ebp, frame2_ebp, frame3_ebp;
+  stack_section.start() = 0x002ff290;
+  stack_section
+    .Mark(&frame0_esp)
+    .D32(0x771ef8c1)    // EIP in frame 0 (system call)
+    .D32(0x75fa0a91)    // return address of frame 0
+    .Mark(&frame1_esp)
+    .D32(0x000017b0)    // args to child
+    .D32(0x00000000)
+    .D32(0x002ff2d8)
+    .D32(0x88014a2e)
+    .D32(0x002ff364)
+    .D32(0x000017b0)
+    .D32(0x00000000)
+    .D32(0x00000024)
+    .D32(0x00000001)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x9e3b9800)
+    .D32(0xfffffff7)
+    .D32(0x00000000)
+    .D32(0x002ff2a4)
+    .D32(0x64a07ff1)    // random value to be confused with a return address
+    .D32(0x002ff8dc)
+    .D32(0x75fc6590)    // random value to be confused with a return address
+    .D32(0xfdd2c6ea)
+    .D32(0x00000000)
+    .Mark(&frame1_ebp)
+    .D32(frame2_ebp)    // Child EBP
+    .D32(0x75741194)    // return address of frame 1
+    .D32(0x000017b0)    // args to child
+    .D32(0x0036ee80)
+    .D32(0x00000000)
+    .D32(0x65bc7d14)
+    .Mark(&frame2_ebp)
+    .D32(frame3_ebp)    // Child EBP
+    .D32(0x75741148)    // return address of frame 2
+    .D32(0x000017b0)    // args to child
+    .D32(0x0036ee80)
+    .D32(0x00000000)
+    .Mark(&frame3_ebp)
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x771ef8c1;  // in ntdll::ZwWaitForSingleObject
+  raw_context.esp = stack_section.start().Value();
+  ASSERT_TRUE(raw_context.esp == frame0_esp.Value());
+  raw_context.ebp = frame1_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                        &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+
+  ASSERT_EQ(4U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x771ef8c1U, frame0->instruction);
+    EXPECT_EQ(0x771ef8c1U, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame0->context.ebp);
+    EXPECT_EQ(&module3, frame0->module);
+    EXPECT_EQ("ZwWaitForSingleObject", frame0->function_name);
+    // The STACK WIN record for module3!ZwWaitForSingleObject should have
+    // produced a fully populated WindowsFrameInfo structure.
+    ASSERT_TRUE(frame0->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame0->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FPO,
+              frame0->windows_frame_info->type_);
+    EXPECT_EQ("", frame0->windows_frame_info->program_string);
+    EXPECT_FALSE(frame0->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP
+               | StackFrameX86::CONTEXT_VALID_ESP
+               | StackFrameX86::CONTEXT_VALID_EBP
+               | StackFrameX86::CONTEXT_VALID_EBX),
+              frame1->context_validity);
+    EXPECT_EQ(0x75fa0a91U, frame1->instruction + 1);
+    EXPECT_EQ(0x75fa0a91U, frame1->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(&module4, frame1->module);
+    EXPECT_EQ("WaitForSingleObjectEx", frame1->function_name);
+    // The STACK WIN record for module4!WaitForSingleObjectEx should have
+    // produced a fully populated WindowsFrameInfo structure.
+    ASSERT_TRUE(frame1->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame1->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame1->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L "
+              "$T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =",
+              frame1->windows_frame_info->program_string);
+    EXPECT_FALSE(frame1->windows_frame_info->allocates_base_pointer);
+  }
+}
+
+// Scan the stack for a better return address and potentially skip frames
+// when the calculated return address is not in a known module.  Note, that
+// the span of this scan is somewhat arbitrarily limited to 160 search words
+// for the context frame and 40 search words (pointers) for the other frames:
+//     const int kRASearchWords = 40;
+// This means that frames can be skipped only when their size is relatively
+// small: smaller than 4 * kRASearchWords * sizeof(InstructionType)
+TEST_F(GetCallerFrame, ReturnAddressIsNotInKnownModule) {
+  MockCodeModule msvcrt_dll(0x77be0000, 0x58000, "msvcrt.dll", "version1");
+  SetModuleSymbols(&msvcrt_dll,  // msvcrt.dll
+                   "PUBLIC 38180 0 wcsstr\n"
+                   "STACK WIN 4 38180 61 10 0 8 0 0 0 1 $T0 $ebp = $eip $T0 "
+                   "4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs "
+                   "- = $P $T0 4 + .cbParams + =\n");
+
+  MockCodeModule kernel32_dll(0x7c800000, 0x103000, "kernel32.dll", "version1");
+  SetModuleSymbols(&kernel32_dll,  // kernel32.dll
+                   "PUBLIC efda 8 FindNextFileW\n"
+                   "STACK WIN 4 efda 1bb c 0 8 8 3c 0 1 $T0 $ebp = $eip $T0 "
+                   "4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs "
+                   "- = $P $T0 4 + .cbParams + =\n");
+
+  MockCodeModule chrome_dll(0x1c30000, 0x28C8000, "chrome.dll", "version1");
+  SetModuleSymbols(&chrome_dll,  // chrome.dll
+                   "FUNC e3cff 4af 0 file_util::FileEnumerator::Next()\n"
+                   "e3cff 1a 711 2505\n"
+                   "STACK WIN 4 e3cff 4af 20 0 4 c 94 0 1 $T1 .raSearch = "
+                   "$T0  $T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp "
+                   "$T1 4 + = $20 $T0 152 - ^ =  $23 $T0 156 - ^ =  $24 "
+                   "$T0 160 - ^ =\n");
+
+  // Create some modules with some stock debugging information.
+  MockCodeModules local_modules;
+  local_modules.Add(&msvcrt_dll);
+  local_modules.Add(&kernel32_dll);
+  local_modules.Add(&chrome_dll);
+
+  Label frame0_esp;
+  Label frame0_ebp;
+  Label frame1_ebp;
+  Label frame2_ebp;
+  Label frame3_ebp;
+
+  stack_section.start() = 0x0932f2d0;
+  stack_section
+    .Mark(&frame0_esp)
+    .D32(0x0764e000)
+    .D32(0x0764e068)
+    .Mark(&frame0_ebp)
+    .D32(frame1_ebp)    // Child EBP
+    .D32(0x001767a0)    // return address of frame 0
+                        // Not in known module
+    .D32(0x0764e0c6)
+    .D32(0x001bb1b8)
+    .D32(0x0764e068)
+    .D32(0x00000003)
+    .D32(0x0764e068)
+    .D32(0x00000003)
+    .D32(0x07578828)
+    .D32(0x0764e000)
+    .D32(0x00000000)
+    .D32(0x001c0010)
+    .D32(0x0764e0c6)
+    .Mark(&frame1_ebp)
+    .D32(frame2_ebp)    // Child EBP
+    .D32(0x7c80f10f)    // return address of frame 1
+                        // inside kernel32!FindNextFileW
+    .D32(0x000008f8)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x0932f34c)
+    .D32(0x0764e000)
+    .D32(0x00001000)
+    .D32(0x00000000)
+    .D32(0x00000001)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x0932f6a8)
+    .D32(0x00000000)
+    .D32(0x0932f6d8)
+    .D32(0x00000000)
+    .D32(0x000000d6)
+    .D32(0x0764e000)
+    .D32(0x7ff9a000)
+    .D32(0x0932f3fc)
+    .D32(0x00000001)
+    .D32(0x00000001)
+    .D32(0x07578828)
+    .D32(0x0000002e)
+    .D32(0x0932f340)
+    .D32(0x0932eef4)
+    .D32(0x0932ffdc)
+    .D32(0x7c839ad8)
+    .D32(0x7c80f0d8)
+    .D32(0x00000000)
+    .Mark(&frame2_ebp)
+    .D32(frame3_ebp)    // Child EBP
+    .D32(0x01d13f91)    // return address of frame 2
+                        // inside chrome_dll!file_util::FileEnumerator::Next
+    .D32(0x07578828)
+    .D32(0x0932f6ac)
+    .D32(0x0932f9c4)
+    .D32(0x0932f9b4)
+    .D32(0x00000000)
+    .D32(0x00000003)
+    .D32(0x0932f978)
+    .D32(0x01094330)
+    .D32(0x00000000)
+    .D32(0x00000001)
+    .D32(0x01094330)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x07f30000)
+    .D32(0x01c3ba17)
+    .D32(0x08bab840)
+    .D32(0x07f31580)
+    .D32(0x00000000)
+    .D32(0x00000007)
+    .D32(0x0932f940)
+    .D32(0x0000002e)
+    .D32(0x0932f40c)
+    .D32(0x01d13b53)
+    .D32(0x0932f958)
+    .D32(0x00000001)
+    .D32(0x00000007)
+    .D32(0x0932f940)
+    .D32(0x0000002e)
+    .D32(0x00000000)
+    .D32(0x0932f6ac)
+    .D32(0x01e13ef0)
+    .D32(0x00000001)
+    .D32(0x00000007)
+    .D32(0x0932f958)
+    .D32(0x08bab840)
+    .D32(0x0932f9b4)
+    .D32(0x00000000)
+    .D32(0x0932f9b4)
+    .D32(0x000000a7)
+    .D32(0x000000a7)
+    .D32(0x0932f998)
+    .D32(0x579627a2)
+    .Mark(&frame3_ebp)
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x77c181cd;  // inside msvcrt!wcsstr
+  raw_context.esp = frame0_esp.Value();
+  raw_context.ebp = frame0_ebp.Value();
+  // sanity
+  ASSERT_TRUE(raw_context.esp == stack_section.start().Value());
+  ASSERT_TRUE(raw_context.ebp == stack_section.start().Value() + 8);
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region,
+                        &local_modules, &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+
+  ASSERT_EQ(3U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(0x77c181cdU, frame0->instruction);
+    EXPECT_EQ(0x77c181cdU, frame0->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame0->context.esp);
+    EXPECT_EQ(frame0_ebp.Value(), frame0->context.ebp);
+    EXPECT_EQ(&msvcrt_dll, frame0->module);
+    EXPECT_EQ("wcsstr", frame0->function_name);
+    ASSERT_TRUE(frame0->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame0->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame0->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 "
+              "4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs "
+              "- = $P $T0 4 + .cbParams + =",
+              frame0->windows_frame_info->program_string);
+    // It has program string, so allocates_base_pointer is not expected
+    EXPECT_FALSE(frame0->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI_SCAN, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(0x7c80f10fU, frame1->instruction + 1);
+    EXPECT_EQ(0x7c80f10fU, frame1->context.eip);
+    // frame 1 was skipped, so intead of frame1_ebp compare with frame2_ebp.
+    EXPECT_EQ(frame2_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(&kernel32_dll, frame1->module);
+    EXPECT_EQ("FindNextFileW", frame1->function_name);
+    ASSERT_TRUE(frame1->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame1->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame1->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 "
+              "4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs "
+              "- = $P $T0 4 + .cbParams + =",
+              frame1->windows_frame_info->program_string);
+    EXPECT_FALSE(frame1->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame2 = static_cast<StackFrameX86*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame2->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame2->context_validity);
+    EXPECT_EQ(0x01d13f91U, frame2->instruction + 1);
+    EXPECT_EQ(0x01d13f91U, frame2->context.eip);
+    // frame 1 was skipped, so intead of frame2_ebp compare with frame3_ebp.
+    EXPECT_EQ(frame3_ebp.Value(), frame2->context.ebp);
+    EXPECT_EQ(&chrome_dll, frame2->module);
+    EXPECT_EQ("file_util::FileEnumerator::Next()", frame2->function_name);
+    ASSERT_TRUE(frame2->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame2->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame2->windows_frame_info->type_);
+    EXPECT_EQ("$T1 .raSearch = "
+              "$T0  $T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp "
+              "$T1 4 + = $20 $T0 152 - ^ =  $23 $T0 156 - ^ =  $24 "
+              "$T0 160 - ^ =",
+              frame2->windows_frame_info->program_string);
+    EXPECT_FALSE(frame2->windows_frame_info->allocates_base_pointer);
+  }
+}
+
+// Test the .raSearchStart/.raSearch calculation when alignment operators are
+// used in the program string.  The current %ebp must be valid and it is the
+// only reliable data point that can be used for that calculation.
+TEST_F(GetCallerFrame, HandleAlignmentInProgramString) {
+  MockCodeModule chrome_dll(0x59630000, 0x19e3000, "chrome.dll", "version1");
+  SetModuleSymbols(&chrome_dll,  // chrome.dll
+                   "FUNC 56422 50c 8 base::MessageLoop::RunTask"
+                   "(base::PendingTask const&)\n"
+                   "56422 e 458 4589\n"
+                   "STACK WIN 4 56422 50c 11 0 8 c ac 0 1 $T1 .raSearch = $T0 "
+                   "$T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + = "
+                   "$20 $T0 176 - ^ =  $23 $T0 180 - ^ =  $24 $T0 184 - ^ =\n"
+                   "FUNC 55d34 34a 0 base::MessageLoop::DoWork()\n"
+                   "55d34 11 596 4589\n"
+                   "STACK WIN 4 55d34 34a 19 0 0 c 134 0 1 $T1 .raSearch = "
+                   "$T0  $T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp "
+                   "$T1 4 + = $20 $T0 312 - ^ =  $23 $T0 316 - ^ =  $24 $T0 "
+                   "320 - ^ =\n"
+                   "FUNC 55c39 fb 0 base::MessagePumpForIO::DoRunLoop()\n"
+                   "55c39 d 518 19962\n"
+                   "STACK WIN 4 55c39 fb d 0 0 c 34 0 1 $T1 .raSearch = $T0 "
+                   "$T1 4 - 64 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + "
+                   "= $20 $T0 56 - ^ =  $23 $T0 60 - ^ =  $24 $T0 64 - ^ =\n"
+                   "FUNC 55bf0 49 4 base::MessagePumpWin::Run(base::"
+                   "MessagePump::Delegate*)\n"
+                   "55bf0 49 48 4724\n"
+                   "STACK WIN 4 55bf0 49 c 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 "
+                   "+ ^ = $ebp $T0 ^ = $esp $T0 8 + =\n"
+                   "FUNC 165d de 4 malloc\n"
+                   "165d 6 119 54\n"
+                   "STACK WIN 4 165d de d 0 4 8 0 0 1 $T1 .raSearch = $T0 "
+                   "$T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 "
+                   "+ = $23 $T0 4 - ^ =  $24 $T0 8 - ^ =\n"
+                   "FUNC 55ac9 79 0 base::MessageLoop::RunInternal()\n"
+                   "55ac9 d 427 4589\n"
+                   "STACK WIN 4 55ac9 79 d 0 0 8 10 0 1 $T1 .raSearch = $T0 "
+                   "$T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + = "
+                   "$23 $T0 20 - ^ =  $24 $T0 24 - ^ =\n");
+
+  // Create some modules with some stock debugging information.
+  MockCodeModules local_modules;
+  local_modules.Add(&chrome_dll);
+
+  Label frame0_esp;
+  Label frame0_ebp;
+  Label frame1_esp;
+  Label frame1_ebp;
+  Label frame2_esp;
+  Label frame2_ebp;
+  Label frame3_esp;
+  Label frame3_ebp;
+
+  stack_section.start() = 0x046bfc80;
+  stack_section
+    .D32(0)
+    .Mark(&frame0_esp)
+    .D32(0x01e235a0)
+    .D32(0x00000000)
+    .D32(0x01e9f580)
+    .D32(0x01e9f580)
+    .D32(0x00000020)
+    .D32(0x00000000)
+    .D32(0x00463674)
+    .D32(0x00000020)
+    .D32(0x00000000)
+    .D32(0x046bfcd8)
+    .D32(0x046bfcd8)
+    .D32(0x0001204b)
+    .D32(0x00000000)
+    .D32(0xfdddb523)
+    .D32(0x00000000)
+    .D32(0x00000007)
+    .D32(0x00000040)
+    .D32(0x00000000)
+    .D32(0x59631693)  // chrome_59630000!malloc+0x36
+    .D32(0x01e9f580)
+    .D32(0x01e9f580)
+    .D32(0x046bfcf8)
+    .D32(0x77da6704)  // ntdll!NtSetIoCompletion+0xc
+    .D32(0x046bfd4c)
+    .D32(0x59685bec)  // chrome_59630000!base::MessageLoop::StartHistogrammer..
+    .D32(0x01e235a0)
+
+    .Mark(&frame0_ebp)
+    .D32(frame1_ebp)  // Child EBP    .D32(0x046bfd0c)
+    .D32(0x59685c2e)  // Return address in
+                      // chrome_59630000!base::MessagePumpWin::Run+0x3e
+    .Mark(&frame1_esp)
+    .D32(0x01e75a90)
+    .D32(0x046bfd4c)
+    .D32(0x01e75a90)
+    .D32(0x00000000)
+    .D32(0x00000300)
+    .D32(0x00000001)
+
+    .Mark(&frame1_ebp)
+    .D32(frame2_ebp)  // Child EBP    .D32(0x046bfd30)
+    .D32(0x59685b3c)  // Return address in
+                      // chrome_59630000!base::MessageLoop::RunInternal+0x73
+    .Mark(&frame2_esp)
+    .D32(0x01e75a90)
+    .D32(0x00000000)
+    .D32(0x046bfd4c)
+    .D32(0x59658123)  // chrome_59630000!std::deque..
+    .D32(0x046bfda0)
+    .D32(0x01e79d70)
+    .D32(0x046bfda0)
+
+    .Mark(&frame2_ebp)  // .D32(0x046bfd40)
+    .D32(0)             // saved %ebp (stack end)
+    .D32(0);            // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x59685c46;  // Context frame in
+                                 // base::MessagePumpForIO::DoRunLoop
+  raw_context.esp = frame0_esp.Value();
+  raw_context.ebp = frame0_ebp.Value();
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region,
+                        &local_modules, &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  frames = call_stack.frames();
+
+  ASSERT_EQ(3U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame->context_validity);
+    EXPECT_EQ("base::MessagePumpForIO::DoRunLoop()", frame->function_name);
+    EXPECT_EQ(0x59685c46U, frame->instruction);
+    EXPECT_EQ(0x59685c46U, frame->context.eip);
+    EXPECT_EQ(frame0_esp.Value(), frame->context.esp);
+    EXPECT_EQ(frame0_ebp.Value(), frame->context.ebp);
+    EXPECT_EQ(&chrome_dll, frame->module);
+    ASSERT_TRUE(frame->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame->windows_frame_info->type_);
+    EXPECT_EQ("$T1 .raSearch = $T0 "
+              "$T1 4 - 64 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + "
+              "= $20 $T0 56 - ^ =  $23 $T0 60 - ^ =  $24 $T0 64 - ^ =",
+              frame->windows_frame_info->program_string);
+    EXPECT_FALSE(frame->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame->context_validity);
+    EXPECT_EQ("base::MessagePumpWin::Run(base::MessagePump::Delegate*)",
+              frame->function_name);
+    EXPECT_EQ(1500011566U, frame->instruction + 1);
+    EXPECT_EQ(1500011566U, frame->context.eip);
+    EXPECT_EQ(frame1_esp.Value(), frame->context.esp);
+    EXPECT_EQ(frame1_ebp.Value(), frame->context.ebp);
+    EXPECT_EQ(&chrome_dll, frame->module);
+    ASSERT_TRUE(frame->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =",
+              frame->windows_frame_info->program_string);
+    EXPECT_FALSE(frame->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame = static_cast<StackFrameX86*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame->context_validity);
+    EXPECT_EQ("base::MessageLoop::RunInternal()", frame->function_name);
+    EXPECT_EQ(1500011324U, frame->instruction + 1);
+    EXPECT_EQ(1500011324U, frame->context.eip);
+    EXPECT_EQ(frame2_esp.Value(), frame->context.esp);
+    EXPECT_EQ(frame2_ebp.Value(), frame->context.ebp);
+    EXPECT_EQ(&chrome_dll, frame->module);
+    ASSERT_TRUE(frame->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame->windows_frame_info->type_);
+    EXPECT_EQ("$T1 .raSearch = $T0 "
+              "$T1 4 - 8 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + = "
+              "$23 $T0 20 - ^ =  $24 $T0 24 - ^ =",
+              frame->windows_frame_info->program_string);
+    EXPECT_FALSE(frame->windows_frame_info->allocates_base_pointer);
+  }
+}
+
+// Scan the stack for a return address and potentially skip frames when the
+// current IP address is not in a known module.  Note, that that the span of
+// this scan is limited to 120 search words for the context frame and 30
+// search words (pointers) for the other frames:
+//     const int kRASearchWords = 30;
+void GetCallerFrame::IPAddressIsNotInKnownModuleTestImpl(
+    bool has_corrupt_symbols) {
+  MockCodeModule remoting_core_dll(0x54080000, 0x501000, "remoting_core.dll",
+                                   "version1");
+  string symbols_func_section =
+      "FUNC 137214 17d 10 PK11_Verify\n"
+      "FUNC 15c834 37 14 nsc_ECDSAVerifyStub\n"
+      "FUNC 1611d3 91 14 NSC_Verify\n"
+      "FUNC 162ff7 60 4 sftk_SessionFromHandle\n";
+  string symbols_stack_section =
+                   "STACK WIN 4 137214 17d 9 0 10 0 10 0 1 $T0 $ebp = "
+                   "$eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =\n"
+                   "STACK WIN 4 15c834 37 6 0 14 0 18 0 1 $T0 $ebp = "
+                   "$eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =\n"
+                   "STACK WIN 4 1611d3 91 7 0 14 0 8 0 1 $T0 $ebp = "
+                   "$eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =\n"
+                   "STACK WIN 4 162ff7 60 5 0 4 0 0 0 1 $T0 $ebp = "
+                   "$eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =\n";
+
+  string symbols = symbols_func_section;
+  if (has_corrupt_symbols) {
+    symbols.append(string(1, '\0'));           // null terminator in the middle
+    symbols.append("\n");
+    symbols.append("FUNC 1234\n"               // invalid FUNC records
+                   "FUNNC 1234\n"
+                   "STACK WIN 4 1234 234 23 "  // invalid STACK record
+                   "23423423 234 23 234 234 "
+                   "234 23 234 23 234 234 "
+                   "234 234 234\n");
+  }
+  symbols.append(symbols_stack_section);
+  SetModuleSymbols(&remoting_core_dll, symbols);
+
+  // Create some modules with some stock debugging information.
+  MockCodeModules local_modules;
+  local_modules.Add(&remoting_core_dll);
+
+  Label frame0_esp;
+  Label frame0_ebp;
+  Label frame1_ebp;
+  Label frame1_esp;
+  Label frame2_ebp;
+  Label frame2_esp;
+  Label frame3_ebp;
+  Label frame3_esp;
+  Label bogus_stack_location_1;
+  Label bogus_stack_location_2;
+  Label bogus_stack_location_3;
+
+  stack_section.start() = 0x01a3ea28;
+  stack_section
+    .Mark(&frame0_esp)
+    .D32(bogus_stack_location_2)
+    .D32(bogus_stack_location_1)
+    .D32(0x042478e4)
+    .D32(bogus_stack_location_2)
+    .D32(0x00000000)
+    .D32(0x041f0420)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000001)
+    .D32(0x00b7e0d0)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000001)
+    .D32(0x00b7f570)
+    .Mark(&bogus_stack_location_1)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x04289530)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x00b7e910)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x00b7d998)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x00b7dec0)
+    .Mark(&bogus_stack_location_2)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x04289428)
+    .D32(0x00000000)
+    .D32(0x00000040)
+    .D32(0x00000008)
+    .D32(0x00b7f258)
+    .Mark(&bogus_stack_location_3)
+    .D32(0x00000000)
+    .D32(0x041f3560)
+    .D32(0x00000041)
+    .D32(0x00000020)
+    .D32(0xffffffff)
+    .Mark(&frame0_ebp)
+    .D32(frame1_ebp)  // Child %ebp
+    .D32(0x541dc866)  // return address of frame 0
+                      // inside remoting_core!nsc_ECDSAVerifyStub+0x32
+    .Mark(&frame1_esp)
+    .D32(0x04247860)
+    .D32(0x01a3eaec)
+    .D32(0x01a3eaf8)
+    .D32(0x541e304f)  // remoting_core!sftk_SessionFromHandle+0x58
+    .D32(0x0404c620)
+    .D32(0x00000040)
+    .D32(0x01a3eb2c)
+    .D32(0x01a3ec08)
+    .D32(0x00000014)
+    .Mark(&frame1_ebp)
+    .D32(frame2_ebp)  // Child %ebp
+    .D32(0x541e1234)  // return address of frame 1
+                      // inside remoting_core!NSC_Verify+0x61
+    .Mark(&frame2_esp)
+    .D32(0x04247858)
+    .D32(0x0404c620)
+    .D32(0x00000040)
+    .D32(0x01a3ec08)
+    .D32(0x00000014)
+    .D32(0x01000005)
+    .D32(0x00b2f7a0)
+    .D32(0x041f0420)
+    .D32(0x041f3650)
+    .Mark(&frame2_ebp)
+    .D32(frame3_ebp)  // Child %ebp
+    .D32(0x541b734d)  // return address of frame 1
+                      // inside remoting_core!PK11_Verify+0x139
+    .Mark(&frame3_esp)
+    .D32(0x01000005)
+    .D32(0x01a3ec08)
+    .D32(0x00000014)
+    .D32(0x0404c620)
+    .D32(0x00000040)
+    .D32(0x04073e00)
+    .D32(0x04073e00)
+    .D32(0x04247050)
+    .D32(0x00001041)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .D32(0x00000000)
+    .Mark(&frame3_ebp)
+    .D32(0)           // saved %ebp (stack end)
+    .D32(0);          // saved %eip (stack end)
+
+  RegionFromSection();
+  raw_context.eip = 0x4247860;   // IP address not in known module
+  raw_context.ebp = 0x5420362d;  // bogus
+  raw_context.esp = frame0_esp.Value();
+
+  // sanity
+  ASSERT_TRUE(raw_context.esp == stack_section.start().Value());
+
+  StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+  StackwalkerX86 walker(&system_info, &raw_context, &stack_region,
+                        &local_modules, &frame_symbolizer);
+  vector<const CodeModule*> modules_without_symbols;
+  vector<const CodeModule*> modules_with_corrupt_symbols;
+  ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                          &modules_with_corrupt_symbols));
+  ASSERT_EQ(0U, modules_without_symbols.size());
+  if (has_corrupt_symbols) {
+    ASSERT_EQ(1U, modules_with_corrupt_symbols.size());
+    ASSERT_EQ("remoting_core.dll",
+              modules_with_corrupt_symbols[0]->debug_file());
+  } else {
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+  }
+  frames = call_stack.frames();
+
+  ASSERT_EQ(4U, frames->size());
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+    ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+    EXPECT_EQ(raw_context.eip, frame0->context.eip);
+    EXPECT_EQ(raw_context.ebp, frame0->context.ebp);
+    EXPECT_EQ(raw_context.esp, frame0->context.esp);
+    EXPECT_EQ(NULL, frame0->module);  // IP not in known module
+    EXPECT_EQ("", frame0->function_name);
+    ASSERT_EQ(NULL, frame0->windows_frame_info);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_SCAN, frame1->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame1->context_validity);
+    EXPECT_EQ(frame1_ebp.Value(), frame1->context.ebp);
+    EXPECT_EQ(frame1_esp.Value(), frame1->context.esp);
+    EXPECT_EQ(&remoting_core_dll, frame1->module);
+    EXPECT_EQ("nsc_ECDSAVerifyStub", frame1->function_name);
+    ASSERT_TRUE(frame1->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame1->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame1->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =",
+              frame1->windows_frame_info->program_string);
+    EXPECT_FALSE(frame1->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame2 = static_cast<StackFrameX86*>(frames->at(2));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame2->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame2->context_validity);
+    EXPECT_EQ(frame2_ebp.Value(), frame2->context.ebp);
+    EXPECT_EQ(frame2_esp.Value(), frame2->context.esp);
+    EXPECT_EQ(&remoting_core_dll, frame2->module);
+    EXPECT_EQ("NSC_Verify", frame2->function_name);
+    ASSERT_TRUE(frame2->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame2->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame2->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =",
+              frame2->windows_frame_info->program_string);
+    EXPECT_FALSE(frame2->windows_frame_info->allocates_base_pointer);
+  }
+
+  {  // To avoid reusing locals by mistake
+    StackFrameX86 *frame3 = static_cast<StackFrameX86*>(frames->at(3));
+    EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame3->trust);
+    ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+               StackFrameX86::CONTEXT_VALID_ESP |
+               StackFrameX86::CONTEXT_VALID_EBP),
+              frame3->context_validity);
+    EXPECT_EQ(frame3_ebp.Value(), frame3->context.ebp);
+    EXPECT_EQ(frame3_esp.Value(), frame3->context.esp);
+    EXPECT_EQ(&remoting_core_dll, frame3->module);
+    EXPECT_EQ("PK11_Verify", frame3->function_name);
+    ASSERT_TRUE(frame3->windows_frame_info != NULL);
+    EXPECT_EQ(WindowsFrameInfo::VALID_ALL, frame3->windows_frame_info->valid);
+    EXPECT_EQ(WindowsFrameInfo::STACK_INFO_FRAME_DATA,
+              frame3->windows_frame_info->type_);
+    EXPECT_EQ("$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =",
+              frame3->windows_frame_info->program_string);
+    EXPECT_FALSE(frame3->windows_frame_info->allocates_base_pointer);
+  }
+}
+
+// Runs IPAddressIsNotInKnownModule test with good symbols
+TEST_F(GetCallerFrame, IPAddressIsNotInKnownModule) {
+  IPAddressIsNotInKnownModuleTestImpl(false /* has_corrupt_modules */);
+}
+
+// Runs IPAddressIsNotInKnownModule test with corrupt symbols
+TEST_F(GetCallerFrame, IPAddressIsNotInKnownModule_CorruptSymbols) {
+  IPAddressIsNotInKnownModuleTestImpl(true /* has_corrupt_modules */);
+}
+
+struct CFIFixture: public StackwalkerX86Fixture {
+  CFIFixture() {
+    // Provide a bunch of STACK CFI records; individual tests walk to the
+    // caller from every point in this series, expecting to find the same
+    // set of register values.
+    SetModuleSymbols(&module1,
+                     // The youngest frame's function.
+                     "FUNC 4000 1000 10 enchiridion\n"
+                     // Initially, just a return address.
+                     "STACK CFI INIT 4000 100 .cfa: $esp 4 + .ra: .cfa 4 - ^\n"
+                     // Push %ebx.
+                     "STACK CFI 4001 .cfa: $esp 8 + $ebx: .cfa 8 - ^\n"
+                     // Move %esi into %ebx.  Weird, but permitted.
+                     "STACK CFI 4002 $esi: $ebx\n"
+                     // Allocate frame space, and save %edi.
+                     "STACK CFI 4003 .cfa: $esp 20 + $edi: .cfa 16 - ^\n"
+                     // Put the return address in %edi.
+                     "STACK CFI 4005 .ra: $edi\n"
+                     // Save %ebp, and use it as a frame pointer.
+                     "STACK CFI 4006 .cfa: $ebp 8 + $ebp: .cfa 12 - ^\n"
+
+                     // The calling function.
+                     "FUNC 5000 1000 10 epictetus\n"
+                     // Mark it as end of stack.
+                     "STACK CFI INIT 5000 1000 .cfa: $esp .ra 0\n");
+
+    // Provide some distinctive values for the caller's registers.
+    expected.esp = 0x80000000;
+    expected.eip = 0x40005510;
+    expected.ebp = 0xc0d4aab9;
+    expected.ebx = 0x60f20ce6;
+    expected.esi = 0x53d1379d;
+    expected.edi = 0xafbae234;
+
+    // By default, registers are unchanged.
+    raw_context = expected;
+  }
+
+  // Walk the stack, using stack_section as the contents of the stack
+  // and raw_context as the current register values. (Set
+  // raw_context.esp to the stack's starting address.) Expect two
+  // stack frames; in the older frame, expect the callee-saves
+  // registers to have values matching those in 'expected'.
+  void CheckWalk() {
+    RegionFromSection();
+    raw_context.esp = stack_section.start().Value();
+
+    StackFrameSymbolizer frame_symbolizer(&supplier, &resolver);
+    StackwalkerX86 walker(&system_info, &raw_context, &stack_region, &modules,
+                          &frame_symbolizer);
+    vector<const CodeModule*> modules_without_symbols;
+    vector<const CodeModule*> modules_with_corrupt_symbols;
+    ASSERT_TRUE(walker.Walk(&call_stack, &modules_without_symbols,
+                            &modules_with_corrupt_symbols));
+    ASSERT_EQ(0U, modules_without_symbols.size());
+    ASSERT_EQ(0U, modules_with_corrupt_symbols.size());
+    frames = call_stack.frames();
+    ASSERT_EQ(2U, frames->size());
+
+    {  // To avoid reusing locals by mistake
+      StackFrameX86 *frame0 = static_cast<StackFrameX86*>(frames->at(0));
+      EXPECT_EQ(StackFrame::FRAME_TRUST_CONTEXT, frame0->trust);
+      ASSERT_EQ(StackFrameX86::CONTEXT_VALID_ALL, frame0->context_validity);
+      EXPECT_EQ("enchiridion", frame0->function_name);
+      EXPECT_EQ(0x40004000U, frame0->function_base);
+      ASSERT_TRUE(frame0->windows_frame_info != NULL);
+      ASSERT_EQ(WindowsFrameInfo::VALID_PARAMETER_SIZE,
+                frame0->windows_frame_info->valid);
+      ASSERT_TRUE(frame0->cfi_frame_info != NULL);
+    }
+
+    {  // To avoid reusing locals by mistake
+      StackFrameX86 *frame1 = static_cast<StackFrameX86*>(frames->at(1));
+      EXPECT_EQ(StackFrame::FRAME_TRUST_CFI, frame1->trust);
+      ASSERT_EQ((StackFrameX86::CONTEXT_VALID_EIP |
+                 StackFrameX86::CONTEXT_VALID_ESP |
+                 StackFrameX86::CONTEXT_VALID_EBP |
+                 StackFrameX86::CONTEXT_VALID_EBX |
+                 StackFrameX86::CONTEXT_VALID_ESI |
+                 StackFrameX86::CONTEXT_VALID_EDI),
+                 frame1->context_validity);
+      EXPECT_EQ(expected.eip, frame1->context.eip);
+      EXPECT_EQ(expected.esp, frame1->context.esp);
+      EXPECT_EQ(expected.ebp, frame1->context.ebp);
+      EXPECT_EQ(expected.ebx, frame1->context.ebx);
+      EXPECT_EQ(expected.esi, frame1->context.esi);
+      EXPECT_EQ(expected.edi, frame1->context.edi);
+      EXPECT_EQ("epictetus", frame1->function_name);
+    }
+  }
+
+  // The values the stack walker should find for the caller's registers.
+  MDRawContextX86 expected;
+};
+
+class CFI: public CFIFixture, public Test { };
+
+TEST_F(CFI, At4000) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0x40005510)             // return address
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004000;
+  CheckWalk();
+}
+
+TEST_F(CFI, At4001) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x40005510)             // return address
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004001;
+  raw_context.ebx = 0x91aa9a8b;  // callee's %ebx value
+  CheckWalk();
+}
+
+TEST_F(CFI, At4002) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x40005510)             // return address
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004002;
+  raw_context.ebx = 0x53d1379d;  // saved %esi
+  raw_context.esi = 0xa5c790ed;  // callee's %esi value
+  CheckWalk();
+}
+
+TEST_F(CFI, At4003) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0x56ec3db7)             // garbage
+    .D32(0xafbae234)             // saved %edi
+    .D32(0x53d67131)             // garbage
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x40005510)             // return address
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004003;
+  raw_context.ebx = 0x53d1379d;  // saved %esi
+  raw_context.esi = 0xa97f229d;  // callee's %esi
+  raw_context.edi = 0xb05cc997;  // callee's %edi
+  CheckWalk();
+}
+
+// The results here should be the same as those at module offset
+// 0x4003.
+TEST_F(CFI, At4004) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0xe29782c2)             // garbage
+    .D32(0xafbae234)             // saved %edi
+    .D32(0x5ba29ce9)             // garbage
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x40005510)             // return address
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004004;
+  raw_context.ebx = 0x53d1379d;  // saved %esi
+  raw_context.esi = 0x0fb7dc4e;  // callee's %esi
+  raw_context.edi = 0x993b4280;  // callee's %edi
+  CheckWalk();
+}
+
+TEST_F(CFI, At4005) {
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0xe29782c2)             // garbage
+    .D32(0xafbae234)             // saved %edi
+    .D32(0x5ba29ce9)             // garbage
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x8036cc02)             // garbage
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004005;
+  raw_context.ebx = 0x53d1379d;  // saved %esi
+  raw_context.esi = 0x0fb7dc4e;  // callee's %esi
+  raw_context.edi = 0x40005510;  // return address
+  CheckWalk();
+}
+
+TEST_F(CFI, At4006) {
+  Label frame0_ebp;
+  Label frame1_esp = expected.esp;
+  stack_section
+    .D32(0xdcdd25cd)             // garbage
+    .D32(0xafbae234)             // saved %edi
+    .D32(0xc0d4aab9)             // saved %ebp
+    .Mark(&frame0_ebp)           // frame pointer points here
+    .D32(0x60f20ce6)             // saved %ebx
+    .D32(0x8036cc02)             // garbage
+    .Mark(&frame1_esp);          // This effectively sets stack_section.start().
+  raw_context.eip = 0x40004006;
+  raw_context.ebp = frame0_ebp.Value();
+  raw_context.ebx = 0x53d1379d;  // saved %esi
+  raw_context.esi = 0x743833c9;  // callee's %esi
+  raw_context.edi = 0x40005510;  // return address
+  CheckWalk();
+}
+
diff --git a/src/processor/static_address_map-inl.h b/src/processor/static_address_map-inl.h
new file mode 100644
index 0000000..9d2c1de
--- /dev/null
+++ b/src/processor/static_address_map-inl.h
@@ -0,0 +1,71 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_address_map-inl.h: StaticAddressMap implementation.
+//
+// See static_address_map.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
+#define PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
+
+#include "processor/static_address_map.h"
+
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+bool StaticAddressMap<AddressType, EntryType>::Retrieve(
+    const AddressType& address,
+    const EntryType*& entry, AddressType* entry_address) const {
+
+  // upper_bound gives the first element whose key is greater than address,
+  // but we want the first element whose key is less than or equal to address.
+  // Decrement the iterator to get there, but not if the upper_bound already
+  // points to the beginning of the map - in that case, address is lower than
+  // the lowest stored key, so return false.
+
+  MapConstIterator iterator = map_.upper_bound(address);
+  if (iterator == map_.begin())
+    return false;
+  --iterator;
+
+  entry = iterator.GetValuePtr();
+  // Make sure AddressType is a copyable basic type
+  if (entry_address)
+    *entry_address = iterator.GetKey();
+
+  return true;
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
diff --git a/src/processor/static_address_map.h b/src/processor/static_address_map.h
new file mode 100644
index 0000000..9d1a467
--- /dev/null
+++ b/src/processor/static_address_map.h
@@ -0,0 +1,78 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_address_map.h: StaticAddressMap.
+//
+// StaticAddressMap is a wrapper class of StaticMap, just as AddressMap wraps
+// std::map.  StaticAddressMap provides read-only Retrieve() operation, similar
+// as AddressMap.  However, the difference between StaticAddressMap and
+// AddressMap is that StaticAddressMap does not support dynamic operation
+// Store() due to the static nature of the underlying StaticMap.
+//
+// See address_map.h for reference.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_ADDRESS_MAP_H__
+#define PROCESSOR_STATIC_ADDRESS_MAP_H__
+
+#include "processor/static_map-inl.h"
+
+namespace google_breakpad {
+
+// AddressType MUST be a basic type, e.g.: integer types etc
+// EntryType could be a complex type, so we retrieve its pointer instead.
+template<typename AddressType, typename EntryType>
+class StaticAddressMap {
+ public:
+  StaticAddressMap(): map_() { }
+  explicit StaticAddressMap(const char* map_data): map_(map_data) { }
+
+  // Locates the entry stored at the highest address less than or equal to
+  // the address argument.  If there is no such range, returns false.  The
+  // entry is returned in entry, which is a required argument.  If
+  // entry_address is not NULL, it will be set to the address that the entry
+  // was stored at.
+  bool Retrieve(const AddressType& address,
+                const EntryType*& entry, AddressType* entry_address) const;
+
+ private:
+  friend class ModuleComparer;
+  // Convenience types.
+  typedef StaticAddressMap* SelfPtr;
+  typedef StaticMap<AddressType, EntryType> AddressToEntryMap;
+  typedef typename AddressToEntryMap::const_iterator MapConstIterator;
+
+  AddressToEntryMap map_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_ADDRESS_MAP_H__
+
diff --git a/src/processor/static_address_map_unittest.cc b/src/processor/static_address_map_unittest.cc
new file mode 100644
index 0000000..9f1215d
--- /dev/null
+++ b/src/processor/static_address_map_unittest.cc
@@ -0,0 +1,236 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_address_map_unittest.cc: Unit tests for StaticAddressMap.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <climits>
+#include <cstdlib>
+#include <ctime>
+#include <string>
+#include <iostream>
+#include <sstream>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "processor/address_map-inl.h"
+#include "processor/static_address_map-inl.h"
+#include "processor/simple_serializer-inl.h"
+#include "map_serializers-inl.h"
+
+typedef google_breakpad::StaticAddressMap<int, char> TestMap;
+typedef google_breakpad::AddressMap<int, string> AddrMap;
+
+class TestStaticAddressMap : public ::testing::Test {
+ protected:
+  void SetUp() {
+    for (int testcase = 0; testcase < kNumberTestCases; ++testcase) {
+      testdata[testcase] = new int[testsize[testcase]];
+    }
+
+    // Test data set0: NULL (empty map)
+
+    // Test data set1: single element.
+    testdata[1][0] = 10;
+
+    // Test data set2: six elements.
+    const int tempdata[] = {5, 10, 14, 15, 16, 20};
+    for (int i = 0; i < testsize[2]; ++i)
+      testdata[2][i] = tempdata[i];
+
+    // Test data set3:
+    srand(time(NULL));
+    for (int i = 0; i < testsize[3]; ++i)
+      testdata[3][i] = rand();
+
+    // Setup maps.
+    std::stringstream sstream;
+    for (int testcase = 0; testcase < kNumberTestCases; ++testcase) {
+      for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+        sstream.clear();
+        sstream << "test " << testdata[testcase][data_item];
+        addr_map[testcase].Store(testdata[testcase][data_item], sstream.str());
+      }
+      map_data[testcase] = serializer.Serialize(addr_map[testcase], NULL);
+      test_map[testcase] = TestMap(map_data[testcase]);
+    }
+  }
+
+  void TearDown() {
+    for (int i = 0; i < kNumberTestCases; ++i) {
+      delete [] map_data[i];
+      delete [] testdata[i];
+    }
+  }
+
+  void CompareRetrieveResult(int testcase, int target) {
+    int address;
+    int address_test;
+    string entry;
+    string entry_test;
+    const char* entry_cstring = NULL;
+    bool found;
+    bool found_test;
+
+    found = addr_map[testcase].Retrieve(target, &entry, &address);
+    found_test =
+        test_map[testcase].Retrieve(target, entry_cstring, &address_test);
+
+    ASSERT_EQ(found, found_test);
+
+    if (found && found_test) {
+      ASSERT_EQ(address, address_test);
+      entry_test = entry_cstring;
+      ASSERT_EQ(entry, entry_test);
+    }
+  }
+
+  void RetrieveTester(int testcase) {
+    int target;
+    target = INT_MIN;
+    CompareRetrieveResult(testcase, target);
+    target = INT_MAX;
+    CompareRetrieveResult(testcase, target);
+
+    srand(time(0));
+    for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+      // Retrive (aka, search) for target address and compare results from
+      // AddressMap and StaticAddressMap.
+
+      // First, assign the search target to be one of original testdata that is
+      // known to exist in the map.
+      target = testdata[testcase][data_item];
+      CompareRetrieveResult(testcase, target);
+      // Then, add +2 / -1 bias to target value, in order to test searching for
+      // a target address not stored in the map.
+      target -= 1;
+      CompareRetrieveResult(testcase, target);
+      target += 3;
+      CompareRetrieveResult(testcase, target);
+      // Repeatedly test searching for random target addresses.
+      target = rand();
+      CompareRetrieveResult(testcase, target);
+    }
+  }
+
+  // Test data sets:
+  static const int kNumberTestCases = 4;
+  static const int testsize[];
+  int* testdata[kNumberTestCases];
+
+  AddrMap addr_map[kNumberTestCases];
+  TestMap test_map[kNumberTestCases];
+  char* map_data[kNumberTestCases];
+  google_breakpad::AddressMapSerializer<int, string> serializer;
+};
+
+const int TestStaticAddressMap::testsize[] = {0, 1, 6, 1000};
+
+TEST_F(TestStaticAddressMap, TestEmptyMap) {
+  int testcase = 0;
+  int target;
+  target = INT_MIN;
+  CompareRetrieveResult(testcase, target);
+  target = INT_MAX;
+  CompareRetrieveResult(testcase, target);
+  for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+    target = testdata[testcase][data_item];
+    CompareRetrieveResult(testcase, target);
+    target -= 1;
+    CompareRetrieveResult(testcase, target);
+    target += 3;
+    CompareRetrieveResult(testcase, target);
+    target = rand();
+    CompareRetrieveResult(testcase, target);
+  }
+}
+
+TEST_F(TestStaticAddressMap, TestOneElementMap) {
+  int testcase = 1;
+  int target;
+  target = INT_MIN;
+  CompareRetrieveResult(testcase, target);
+  target = INT_MAX;
+  CompareRetrieveResult(testcase, target);
+  for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+    target = testdata[testcase][data_item];
+    CompareRetrieveResult(testcase, target);
+    target -= 1;
+    CompareRetrieveResult(testcase, target);
+    target += 3;
+    CompareRetrieveResult(testcase, target);
+    target = rand();
+    CompareRetrieveResult(testcase, target);
+  }
+}
+
+TEST_F(TestStaticAddressMap, TestSixElementsMap) {
+  int testcase = 2;
+  int target;
+  target = INT_MIN;
+  CompareRetrieveResult(testcase, target);
+  target = INT_MAX;
+  CompareRetrieveResult(testcase, target);
+  for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+    target = testdata[testcase][data_item];
+    CompareRetrieveResult(testcase, target);
+    target -= 1;
+    CompareRetrieveResult(testcase, target);
+    target += 3;
+    CompareRetrieveResult(testcase, target);
+    target = rand();
+    CompareRetrieveResult(testcase, target);
+  }
+}
+
+TEST_F(TestStaticAddressMap, Test1000RandomElementsMap) {
+  int testcase = 3;
+  int target;
+  target = INT_MIN;
+  CompareRetrieveResult(testcase, target);
+  target = INT_MAX;
+  CompareRetrieveResult(testcase, target);
+  for (int data_item = 0; data_item < testsize[testcase]; ++data_item) {
+    target = testdata[testcase][data_item];
+    CompareRetrieveResult(testcase, target);
+    target -= 1;
+    CompareRetrieveResult(testcase, target);
+    target += 3;
+    CompareRetrieveResult(testcase, target);
+    target = rand();
+    CompareRetrieveResult(testcase, target);
+  }
+}
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/static_contained_range_map-inl.h b/src/processor/static_contained_range_map-inl.h
new file mode 100644
index 0000000..87ea6c7
--- /dev/null
+++ b/src/processor/static_contained_range_map-inl.h
@@ -0,0 +1,92 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_contained_range_map-inl.h: Hierarchically-organized range map,
+// i.e., StaticContainedRangeMap implementation.
+//
+// See static_contained_range_map.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
+#define PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
+
+#include "processor/static_contained_range_map.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+StaticContainedRangeMap<AddressType, EntryType>::StaticContainedRangeMap(
+    const char *base)
+    : base_(*(reinterpret_cast<const AddressType*>(base))),
+      entry_size_(*(reinterpret_cast<const uint32_t*>(base + sizeof(base_)))),
+      entry_ptr_(reinterpret_cast<const EntryType*>(
+          base + sizeof(base_) + sizeof(entry_size_))),
+      map_(base + sizeof(base_) + sizeof(entry_size_) + entry_size_) {
+  if (entry_size_ == 0)
+    entry_ptr_ = NULL;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool StaticContainedRangeMap<AddressType, EntryType>::RetrieveRange(
+    const AddressType& address, const EntryType*& entry) const {
+
+  // Get an iterator to the child range whose high address is equal to or
+  // greater than the supplied address.  If the supplied address is higher
+  // than all of the high addresses in the range, then this range does not
+  // contain a child at address, so return false.  If the supplied address
+  // is lower than the base address of the child range, then it is not within
+  // the child range, so return false.
+  MapConstIterator iterator = map_.lower_bound(address);
+
+  if (iterator == map_.end())
+    return false;
+
+  const char *memory_child =
+      reinterpret_cast<const char*>(iterator.GetValuePtr());
+
+  StaticContainedRangeMap child_map(memory_child);
+
+  if (address < child_map.base_)
+    return false;
+
+  // The child in iterator->second contains the specified address.  Find out
+  // if it has a more-specific descendant that also contains it.  If it does,
+  // it will set |entry| appropriately.  If not, set |entry| to the child.
+  if (!child_map.RetrieveRange(address, entry))
+    entry = child_map.entry_ptr_;
+
+  return true;
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
diff --git a/src/processor/static_contained_range_map.h b/src/processor/static_contained_range_map.h
new file mode 100644
index 0000000..14fa5e9
--- /dev/null
+++ b/src/processor/static_contained_range_map.h
@@ -0,0 +1,96 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_contained_range_map.h: StaticContainedRangeMap.
+//
+// StaticContainedRangeMap is similar to ContainedRangeMap.  However,
+// StaticContainedRangeMap wraps a StaticMap instead of std::map, and does not
+// support dynamic operations like StoreRange(...).
+// StaticContainedRangeMap provides same RetrieveRange(...) interfaces as
+// ContainedRangeMap.
+//
+// Please see contained_range_map.h for more documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
+#define PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
+
+#include "processor/static_map-inl.h"
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+class StaticContainedRangeMap {
+ public:
+  StaticContainedRangeMap(): base_(), entry_size_(), entry_ptr_(), map_() { }
+  explicit StaticContainedRangeMap(const char *base);
+
+  // Retrieves the most specific (smallest) descendant range encompassing
+  // the specified address.  This method will only return entries held by
+  // child ranges, and not the entry contained by |this|.  This is necessary
+  // to support a sparsely-populated root range.  If no descendant range
+  // encompasses the address, returns false.
+  bool RetrieveRange(const AddressType& address, const EntryType*& entry) const;
+
+ private:
+  friend class ModuleComparer;
+  // AddressToRangeMap stores pointers.  This makes reparenting simpler in
+  // StoreRange, because it doesn't need to copy entire objects.
+  typedef StaticContainedRangeMap* SelfPtr;
+  typedef
+  StaticMap<AddressType, StaticContainedRangeMap> AddressToRangeMap;
+  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
+
+  // The base address of this range.  The high address does not need to
+  // be stored, because it is used as the key to an object in its parent's
+  // map, and all ContainedRangeMaps except for the root range are contained
+  // within maps.  The root range does not actually contain an entry, so its
+  // base_ field is meaningless, and the fact that it has no parent and thus
+  // no key is unimportant.  For this reason, the base_ field should only be
+  // is accessed on child ContainedRangeMap objects, and never on |this|.
+  AddressType base_;
+
+  // The entry corresponding to this range.  The root range does not
+  // actually contain an entry, so its entry_ field is meaningless.  For
+  // this reason, the entry_ field should only be accessed on child
+  // ContainedRangeMap objects, and never on |this|.
+  uint32_t entry_size_;
+  const EntryType *entry_ptr_;
+
+  // The map containing child ranges, keyed by each child range's high
+  // address.  This is a pointer to avoid allocating map structures for
+  // leaf nodes, where they are not needed.
+  AddressToRangeMap map_;
+};
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
diff --git a/src/processor/static_contained_range_map_unittest.cc b/src/processor/static_contained_range_map_unittest.cc
new file mode 100644
index 0000000..4ee4757
--- /dev/null
+++ b/src/processor/static_contained_range_map_unittest.cc
@@ -0,0 +1,320 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_contained_range_map_unittest.cc: Unit tests for
+// StaticContainedRangeMap.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include "breakpad_googletest_includes.h"
+#include "common/scoped_ptr.h"
+#include "processor/contained_range_map-inl.h"
+#include "processor/static_contained_range_map-inl.h"
+#include "processor/simple_serializer-inl.h"
+#include "processor/map_serializers-inl.h"
+#include "processor/logging.h"
+
+namespace {
+
+typedef google_breakpad::ContainedRangeMap<unsigned int, int> CRMMap;
+typedef google_breakpad::StaticContainedRangeMap<unsigned int, int> TestMap;
+
+// Each element in test_data contains the expected result when calling
+// RetrieveRange on an address.
+const int test_data[] = {
+  0,   // 0
+  0,   // 1
+  0,   // 2
+  0,   // 3
+  0,   // 4
+  0,   // 5
+  0,   // 6
+  0,   // 7
+  9,   // 8
+  7,   // 9
+  1,   // 10
+  5,   // 11
+  6,   // 12
+  6,   // 13
+  6,   // 14
+  6,   // 15
+  6,   // 16
+  6,   // 17
+  6,   // 18
+  5,   // 19
+  7,   // 20
+  8,   // 21
+  0,   // 22
+  0,   // 23
+  0,   // 24
+  0,   // 25
+  0,   // 26
+  0,   // 27
+  0,   // 28
+  0,   // 29
+  10,  // 30
+  10,  // 31
+  10,  // 32
+  11,  // 33
+  11,  // 34
+  11,  // 35
+  0,   // 36
+  0,   // 37
+  0,   // 38
+  0,   // 39
+  14,  // 40
+  14,  // 41
+  14,  // 42
+  14,  // 43
+  15,  // 44
+  15,  // 45
+  15,  // 46
+  15,  // 47
+  0,   // 48
+  0,   // 49
+  19,  // 50
+  18,  // 51
+  18,  // 52
+  18,  // 53
+  18,  // 54
+  18,  // 55
+  18,  // 56
+  18,  // 57
+  18,  // 58
+  20,  // 59
+  21,  // 60
+  25,  // 61
+  26,  // 62
+  26,  // 63
+  26,  // 64
+  26,  // 65
+  26,  // 66
+  26,  // 67
+  24,  // 68
+  22,  // 69
+  30,  // 70
+  30,  // 71
+  30,  // 72
+  30,  // 73
+  31,  // 74
+  31,  // 75
+  30,  // 76
+  32,  // 77
+  32,  // 78
+  30,  // 79
+  34,  // 80
+  35,  // 81
+  36,  // 82
+  39,  // 83
+  38,  // 84
+  37,  // 85
+  43,  // 86
+  44,  // 87
+  41,  // 88
+  45,  // 89
+  42,  // 90
+  0,   // 91
+  0,   // 92
+  0,   // 93
+  0,   // 94
+  0,   // 95
+  0,   // 96
+  0,   // 97
+  0,   // 98
+  0    // 99
+};
+
+}  // namespace
+
+namespace google_breakpad {
+
+class TestStaticCRMMap : public ::testing::Test {
+ protected:
+  void SetUp();
+
+  // A referrence map for testing StaticCRMMap.
+  google_breakpad::ContainedRangeMap<unsigned int, int> crm_map_;
+
+  // Static version of crm_map using serialized data of crm_map.
+  // The goal of testing is to make sure TestMap provides same results for
+  // lookup operation(s) as CRMMap does.
+  google_breakpad::StaticContainedRangeMap<unsigned int, int> test_map_;
+
+  google_breakpad::ContainedRangeMapSerializer<unsigned int, int> serializer_;
+
+  scoped_array<char> serialized_data_;
+};
+
+void TestStaticCRMMap::SetUp() {
+  // First, do the StoreRange tests.  This validates the containment
+  // rules.
+  // We confirm the referrence map correctly stores data during setup.
+  ASSERT_TRUE (crm_map_.StoreRange(10, 10,  1));
+  ASSERT_FALSE(crm_map_.StoreRange(10, 10,  2));  // exactly equal to 1
+  ASSERT_FALSE(crm_map_.StoreRange(11, 10,  3));  // begins inside 1 and extends up
+  ASSERT_FALSE(crm_map_.StoreRange( 9, 10,  4));  // begins below 1 and ends inside
+  ASSERT_TRUE (crm_map_.StoreRange(11,  9,  5));  // contained by existing
+  ASSERT_TRUE (crm_map_.StoreRange(12,  7,  6));
+  ASSERT_TRUE (crm_map_.StoreRange( 9, 12,  7));  // contains existing
+  ASSERT_TRUE (crm_map_.StoreRange( 9, 13,  8));
+  ASSERT_TRUE (crm_map_.StoreRange( 8, 14,  9));
+  ASSERT_TRUE (crm_map_.StoreRange(30,  3, 10));
+  ASSERT_TRUE (crm_map_.StoreRange(33,  3, 11));
+  ASSERT_TRUE (crm_map_.StoreRange(30,  6, 12));  // storable but totally masked
+  ASSERT_TRUE (crm_map_.StoreRange(40,  8, 13));  // will be totally masked
+  ASSERT_TRUE (crm_map_.StoreRange(40,  4, 14));
+  ASSERT_TRUE (crm_map_.StoreRange(44,  4, 15));
+  ASSERT_FALSE(crm_map_.StoreRange(32, 10, 16));  // begins in #10, ends in #14
+  ASSERT_FALSE(crm_map_.StoreRange(50,  0, 17));  // zero length
+  ASSERT_TRUE (crm_map_.StoreRange(50, 10, 18));
+  ASSERT_TRUE (crm_map_.StoreRange(50,  1, 19));
+  ASSERT_TRUE (crm_map_.StoreRange(59,  1, 20));
+  ASSERT_TRUE (crm_map_.StoreRange(60,  1, 21));
+  ASSERT_TRUE (crm_map_.StoreRange(69,  1, 22));
+  ASSERT_TRUE (crm_map_.StoreRange(60, 10, 23));
+  ASSERT_TRUE (crm_map_.StoreRange(68,  1, 24));
+  ASSERT_TRUE (crm_map_.StoreRange(61,  1, 25));
+  ASSERT_TRUE (crm_map_.StoreRange(61,  8, 26));
+  ASSERT_FALSE(crm_map_.StoreRange(59,  9, 27));
+  ASSERT_FALSE(crm_map_.StoreRange(59, 10, 28));
+  ASSERT_FALSE(crm_map_.StoreRange(59, 11, 29));
+  ASSERT_TRUE (crm_map_.StoreRange(70, 10, 30));
+  ASSERT_TRUE (crm_map_.StoreRange(74,  2, 31));
+  ASSERT_TRUE (crm_map_.StoreRange(77,  2, 32));
+  ASSERT_FALSE(crm_map_.StoreRange(72,  6, 33));
+  ASSERT_TRUE (crm_map_.StoreRange(80,  3, 34));
+  ASSERT_TRUE (crm_map_.StoreRange(81,  1, 35));
+  ASSERT_TRUE (crm_map_.StoreRange(82,  1, 36));
+  ASSERT_TRUE (crm_map_.StoreRange(83,  3, 37));
+  ASSERT_TRUE (crm_map_.StoreRange(84,  1, 38));
+  ASSERT_TRUE (crm_map_.StoreRange(83,  1, 39));
+  ASSERT_TRUE (crm_map_.StoreRange(86,  5, 40));
+  ASSERT_TRUE (crm_map_.StoreRange(88,  1, 41));
+  ASSERT_TRUE (crm_map_.StoreRange(90,  1, 42));
+  ASSERT_TRUE (crm_map_.StoreRange(86,  1, 43));
+  ASSERT_TRUE (crm_map_.StoreRange(87,  1, 44));
+  ASSERT_TRUE (crm_map_.StoreRange(89,  1, 45));
+  ASSERT_TRUE (crm_map_.StoreRange(87,  4, 46));
+  ASSERT_TRUE (crm_map_.StoreRange(87,  3, 47));
+  ASSERT_FALSE(crm_map_.StoreRange(86,  2, 48));
+
+  // Serialize crm_map to generate serialized data.
+  unsigned int size;
+  serialized_data_.reset(serializer_.Serialize(&crm_map_, &size));
+  BPLOG(INFO) << "Serialized data size: " << size << " Bytes.";
+
+  // Construct test_map_ from serialized data.
+  test_map_ = TestMap(serialized_data_.get());
+}
+
+TEST_F(TestStaticCRMMap, TestEmptyMap) {
+  CRMMap empty_crm_map;
+
+  unsigned int size;
+  scoped_array<char> serialized_data;
+  serialized_data.reset(serializer_.Serialize(&empty_crm_map, &size));
+  scoped_ptr<TestMap> test_map(new TestMap(serialized_data.get()));
+
+  const unsigned int kCorrectSizeForEmptyMap = 16;
+  ASSERT_EQ(kCorrectSizeForEmptyMap, size);
+
+  const int *entry_test;
+  ASSERT_FALSE(test_map->RetrieveRange(-1, entry_test));
+  ASSERT_FALSE(test_map->RetrieveRange(0, entry_test));
+  ASSERT_FALSE(test_map->RetrieveRange(10, entry_test));
+}
+
+TEST_F(TestStaticCRMMap, TestSingleElementMap) {
+  CRMMap crm_map;
+  // Test on one element:
+  int entry = 1;
+  crm_map.StoreRange(10, 10,  entry);
+
+  unsigned int size;
+  scoped_array<char> serialized_data;
+  serialized_data.reset(serializer_.Serialize(&crm_map, &size));
+  scoped_ptr<TestMap> test_map(new TestMap(serialized_data.get()));
+
+  const unsigned int kCorrectSizeForSingleElementMap = 40;
+  ASSERT_EQ(kCorrectSizeForSingleElementMap, size);
+
+  const int *entry_test;
+  ASSERT_FALSE(test_map->RetrieveRange(-1, entry_test));
+  ASSERT_FALSE(test_map->RetrieveRange(0, entry_test));
+  ASSERT_TRUE(test_map->RetrieveRange(10, entry_test));
+  ASSERT_EQ(*entry_test, entry);
+  ASSERT_TRUE(test_map->RetrieveRange(13, entry_test));
+  ASSERT_EQ(*entry_test, entry);
+}
+
+TEST_F(TestStaticCRMMap, RunTestData) {
+  unsigned int test_high = sizeof(test_data) / sizeof(test_data[0]);
+
+  // Now, do the RetrieveRange tests.  This further validates that the
+  // objects were stored properly and that retrieval returns the correct
+  // object.
+  // If GENERATE_TEST_DATA is defined, instead of the retrieval tests, a
+  // new test_data array will be printed.  Exercise caution when doing this.
+  // Be sure to verify the results manually!
+#ifdef GENERATE_TEST_DATA
+  printf("  const int test_data[] = {\n");
+#endif  // GENERATE_TEST_DATA
+
+  for (unsigned int address = 0; address < test_high; ++address) {
+    const int *entryptr;
+    int value = 0;
+    if (test_map_.RetrieveRange(address, entryptr))
+      value = *entryptr;
+
+#ifndef GENERATE_TEST_DATA
+    // Don't use ASSERT inside the loop because it won't show the failed
+    // |address|, and the line number will always be the same.  That makes
+    // it difficult to figure out which test failed.
+    EXPECT_EQ(value, test_data[address]) << "FAIL: retrieve address "
+                                         << address;
+#else  // !GENERATE_TEST_DATA
+    printf("    %d%c%s  // %d\n", value,
+                                  address == test_high - 1 ? ' ' : ',',
+                                  value < 10 ? " " : "",
+                                  address);
+#endif  // !GENERATE_TEST_DATA
+  }
+
+#ifdef GENERATE_TEST_DATA
+  printf("  };\n");
+#endif  // GENERATE_TEST_DATA
+}
+
+}  // namespace google_breakpad
+
+int main(int argc, char *argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/static_map-inl.h b/src/processor/static_map-inl.h
new file mode 100644
index 0000000..75a8a33
--- /dev/null
+++ b/src/processor/static_map-inl.h
@@ -0,0 +1,176 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_map-inl.h: StaticMap implementation.
+//
+// See static_map.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+
+#ifndef PROCESSOR_STATIC_MAP_INL_H__
+#define PROCESSOR_STATIC_MAP_INL_H__
+
+#include "processor/static_map.h"
+#include "processor/static_map_iterator-inl.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename Key, typename Value, typename Compare>
+StaticMap<Key, Value, Compare>::StaticMap(const char* raw_data)
+    : raw_data_(raw_data),
+      compare_() {
+  // First 4 Bytes store the number of nodes.
+  num_nodes_ = *(reinterpret_cast<const uint32_t*>(raw_data_));
+
+  offsets_ = reinterpret_cast<const uint32_t*>(
+      raw_data_ + sizeof(num_nodes_));
+
+  keys_ = reinterpret_cast<const Key*>(
+      raw_data_ + (1 + num_nodes_) * sizeof(uint32_t));
+}
+
+// find(), lower_bound() and upper_bound() implement binary search algorithm.
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>
+StaticMap<Key, Value, Compare>::find(const Key& key) const {
+  int begin = 0;
+  int end = num_nodes_;
+  int middle;
+  int compare_result;
+  while (begin < end) {
+    middle = begin + (end - begin) / 2;
+    compare_result = compare_(key, GetKeyAtIndex(middle));
+    if (compare_result == 0)
+      return IteratorAtIndex(middle);
+    if (compare_result < 0) {
+      end = middle;
+    } else {
+      begin = middle + 1;
+    }
+  }
+  return this->end();
+}
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>
+StaticMap<Key, Value, Compare>::lower_bound(const Key& key) const {
+  int begin = 0;
+  int end = num_nodes_;
+  int middle;
+  int comp_result;
+  while (begin < end) {
+    middle = begin + (end - begin) / 2;
+    comp_result = compare_(key, GetKeyAtIndex(middle));
+    if (comp_result == 0)
+      return IteratorAtIndex(middle);
+    if (comp_result < 0) {
+      end = middle;
+    } else {
+      begin = middle + 1;
+    }
+  }
+  return IteratorAtIndex(begin);
+}
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>
+StaticMap<Key, Value, Compare>::upper_bound(const Key& key) const {
+  int begin = 0;
+  int end = num_nodes_;
+  int middle;
+  int compare_result;
+  while (begin < end) {
+    middle = begin + (end - begin) / 2;
+    compare_result = compare_(key, GetKeyAtIndex(middle));
+    if (compare_result == 0)
+      return IteratorAtIndex(middle + 1);
+    if (compare_result < 0) {
+      end = middle;
+    } else {
+      begin = middle + 1;
+    }
+  }
+  return IteratorAtIndex(begin);
+}
+
+template<typename Key, typename Value, typename Compare>
+bool StaticMap<Key, Value, Compare>::ValidateInMemoryStructure() const {
+  // check the number of nodes is non-negative:
+  if (!raw_data_) return false;
+  int32_t num_nodes = *(reinterpret_cast<const int32_t*>(raw_data_));
+  if (num_nodes < 0) {
+    BPLOG(INFO) << "StaticMap check failed: negative number of nodes";
+    return false;
+  }
+
+  int node_index = 0;
+  if (num_nodes_) {
+    uint64_t first_offset = sizeof(int32_t) * (num_nodes_ + 1)
+                           + sizeof(Key) * num_nodes_;
+    // Num_nodes_ is too large.
+    if (first_offset > 0xffffffffUL) {
+      BPLOG(INFO) << "StaticMap check failed: size exceeds limit";
+      return false;
+    }
+    if (offsets_[node_index] != static_cast<uint32_t>(first_offset)) {
+      BPLOG(INFO) << "StaticMap check failed: first node offset is incorrect";
+      return false;
+    }
+  }
+
+  for (node_index = 1; node_index < num_nodes_; ++node_index) {
+    // Check offsets[i] is strictly increasing:
+    if (offsets_[node_index] <= offsets_[node_index - 1]) {
+      BPLOG(INFO) << "StaticMap check failed: node offsets non-increasing";
+      return false;
+    }
+    // Check Key[i] is strictly increasing as no duplicate keys are allowed.
+    if (compare_(GetKeyAtIndex(node_index),
+                 GetKeyAtIndex(node_index - 1)) <= 0) {
+      BPLOG(INFO) << "StaticMap check failed: node keys non-increasing";
+      return false;
+    }
+  }
+  return true;
+}
+
+template<typename Key, typename Value, typename Compare>
+const Key StaticMap<Key, Value, Compare>::GetKeyAtIndex(int index) const {
+  if (index < 0 || index >= num_nodes_) {
+    BPLOG(ERROR) << "Key index out of range error";
+    // Key type is required to be primitive type.  Return 0 if index is invalid.
+    return 0;
+  }
+  return keys_[index];
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_MAP_INL_H__
diff --git a/src/processor/static_map.h b/src/processor/static_map.h
new file mode 100644
index 0000000..e7d8c96
--- /dev/null
+++ b/src/processor/static_map.h
@@ -0,0 +1,144 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_map.h: StaticMap.
+//
+// StaticMap provides lookup interfaces and iterators similar as stl::map's.
+// These lookup operations are purely Read-Only, thus memory
+// allocation & deallocation is mostly avoided (intentionally).
+//
+// The chunk of memory should contain data with pre-defined pattern:
+// **************** header ***************
+// uint32 (4 bytes): number of nodes
+// uint32 (4 bytes): address offset of node1's mapped_value
+// uint32 (4 bytes): address offset of node2's mapped_value
+// ...
+// uint32 (4 bytes): address offset of nodeN's mapped_value
+//
+// ************* Key array ************
+// (X bytes): node1's key
+// (X bytes): node2's key
+// ...
+// (X bytes): nodeN's key
+//
+// ************* Value array **********
+// (? bytes): node1's mapped_value
+// (? bytes): node2's mapped_value
+// ...
+// (? bytes): nodeN's mapped_value
+//
+// REQUIREMENT: Key type MUST be primitive type or pointers so that:
+// X = sizeof(typename Key);
+//
+// Note: since address offset is stored as uint32, user should keep in mind that
+// StaticMap only supports up to 4GB size of memory data.
+
+// Author: Siyang Xie (lambxsy@google.com)
+
+
+#ifndef PROCESSOR_STATIC_MAP_H__
+#define PROCESSOR_STATIC_MAP_H__
+
+#include "processor/static_map_iterator-inl.h"
+
+namespace google_breakpad {
+
+// Default functor to compare keys.
+template<typename Key>
+class DefaultCompare {
+ public:
+  int operator()(const Key& k1, const Key& k2) const {
+    if (k1 < k2) return -1;
+    if (k1 == k2) return 0;
+    return 1;
+  }
+};
+
+template<typename Key, typename Value, typename Compare = DefaultCompare<Key> >
+class StaticMap {
+ public:
+  typedef StaticMapIterator<Key, Value, Compare> iterator;
+  typedef StaticMapIterator<Key, Value, Compare> const_iterator;
+
+  StaticMap() : raw_data_(0),
+                num_nodes_(0),
+                offsets_(0),
+                compare_() { }
+
+  explicit StaticMap(const char* raw_data);
+
+  inline bool empty() const { return num_nodes_ == 0; }
+  inline unsigned int size() const { return num_nodes_; }
+
+  // Return iterators.
+  inline iterator begin() const { return IteratorAtIndex(0); }
+  inline iterator last() const { return IteratorAtIndex(num_nodes_ - 1); }
+  inline iterator end() const { return IteratorAtIndex(num_nodes_); }
+  inline iterator IteratorAtIndex(int index) const {
+    return iterator(raw_data_, index);
+  }
+
+  // Lookup operations.
+  iterator find(const Key& k) const;
+
+  // lower_bound(k) searches in a sorted range for the first element that has a
+  // key not less than the argument k.
+  iterator lower_bound(const Key& k) const;
+
+  // upper_bound(k) searches in a sorted range for the first element that has a
+  // key greater than the argument k.
+  iterator upper_bound(const Key& k) const;
+
+  // Checks if the underlying memory data conforms to the predefined pattern:
+  // first check the number of nodes is non-negative,
+  // then check both offsets and keys are strictly increasing (sorted).
+  bool ValidateInMemoryStructure() const;
+
+ private:
+  const Key GetKeyAtIndex(int i) const;
+
+  // Start address of a raw memory chunk with serialized data.
+  const char* raw_data_;
+
+  // Number of nodes in the static map.
+  int32_t num_nodes_;
+
+  // Array of offset addresses for stored values.
+  // For example:
+  // address_of_i-th_node_value = raw_data_ + offsets_[i]
+  const uint32_t* offsets_;
+
+  // keys_[i] = key of i_th node
+  const Key* keys_;
+
+  Compare compare_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_MAP_H__
diff --git a/src/processor/static_map_iterator-inl.h b/src/processor/static_map_iterator-inl.h
new file mode 100644
index 0000000..8474584
--- /dev/null
+++ b/src/processor/static_map_iterator-inl.h
@@ -0,0 +1,147 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_map_iterator-inl.h: StaticMapIterator implementation.
+//
+// See static_map_iterator.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
+#define PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
+
+#include "processor/static_map_iterator.h"
+
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>::StaticMapIterator(const char* base,
+                                                            const int& index):
+      index_(index), base_(base) {
+  // See static_map.h for documentation on
+  // bytes format of serialized StaticMap data.
+  num_nodes_ = *(reinterpret_cast<const int32_t*>(base_));
+  offsets_ = reinterpret_cast<const uint32_t*>(base_ + sizeof(num_nodes_));
+  keys_ = reinterpret_cast<const Key*>(
+      base_ + (1 + num_nodes_) * sizeof(num_nodes_));
+}
+
+// Increment & Decrement operators:
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>&
+StaticMapIterator<Key, Value, Compare>::operator++() {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "operator++ on invalid iterator";
+    return *this;
+  }
+  if (++index_ > num_nodes_) index_ = num_nodes_;
+  return *this;
+}
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>
+StaticMapIterator<Key, Value, Compare>::operator++(int postfix_operator) {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "operator++ on invalid iterator";
+    return *this;
+  }
+  StaticMapIterator<Key, Value, Compare> tmp = *this;
+  if (++index_ > num_nodes_) index_ = num_nodes_;
+  return tmp;
+}
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>&
+StaticMapIterator<Key, Value, Compare>::operator--() {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "operator++ on invalid iterator";
+    return *this;
+  }
+
+  if (--index_ < 0) index_ = 0;
+  return *this;
+}
+
+template<typename Key, typename Value, typename Compare>
+StaticMapIterator<Key, Value, Compare>
+StaticMapIterator<Key, Value, Compare>::operator--(int postfix_operator) {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "operator++ on invalid iterator";
+    return *this;
+  }
+  StaticMapIterator<Key, Value, Compare> tmp = *this;
+
+  if (--index_ < 0) index_ = 0;
+  return tmp;
+}
+
+template<typename Key, typename Value, typename Compare>
+const Key* StaticMapIterator<Key, Value, Compare>::GetKeyPtr() const {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "call GetKeyPtr() on invalid iterator";
+    return NULL;
+  }
+  return &(keys_[index_]);
+}
+
+template<typename Key, typename Value, typename Compare>
+const char* StaticMapIterator<Key, Value, Compare>::GetValueRawPtr() const {
+  if (!IsValid()) {
+    BPLOG(ERROR) << "call GetValuePtr() on invalid iterator";
+    return NULL;
+  }
+  return base_ + offsets_[index_];
+}
+
+template<typename Key, typename Value, typename Compare>
+bool StaticMapIterator<Key, Value, Compare>::operator==(
+    const StaticMapIterator<Key, Value, Compare>& x) const {
+  return base_ == x.base_ && index_ == x.index_;
+}
+
+template<typename Key, typename Value, typename Compare>
+bool StaticMapIterator<Key, Value, Compare>::operator!=(
+    const StaticMapIterator<Key, Value, Compare>& x) const {
+  // Only need to compare base_ and index_.
+  // Other data members are auxiliary.
+  return base_ != x.base_ || index_ != x.index_;
+}
+
+template<typename Key, typename Value, typename Compare>
+bool StaticMapIterator<Key, Value, Compare>::IsValid() const {
+  if (!base_ || index_ < 0 || index_ > num_nodes_)
+    return false;
+
+  return true;
+}
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
diff --git a/src/processor/static_map_iterator.h b/src/processor/static_map_iterator.h
new file mode 100644
index 0000000..c49a8b7
--- /dev/null
+++ b/src/processor/static_map_iterator.h
@@ -0,0 +1,112 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_map_iterator.h: StaticMapIterator template class declaration.
+//
+// StaticMapIterator provides increment and decrement operators to iterate
+// through a StaticMap map.  It does not provide *, -> operators, user should
+// use GetKeyPtr(), GetKey(), GetValuePtr() interfaces to retrieve data or
+// pointer to data.  StaticMapIterator is essentially a const_iterator.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+
+#ifndef PROCESSOR_STATIC_MAP_ITERATOR_H__
+#define PROCESSOR_STATIC_MAP_ITERATOR_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+// Forward declaration.
+template<typename Key, typename Value, typename Compare> class StaticMap;
+
+// StaticMapIterator does not support operator*() or operator->(),
+// User should use GetKey(), GetKeyPtr(), GetValuePtr() instead;
+template<typename Key, typename Value, typename Compare>
+class StaticMapIterator {
+ public:
+  // Constructors.
+  StaticMapIterator(): index_(-1), base_(NULL) { }
+
+  // Increment & Decrement operators:
+  StaticMapIterator& operator++();
+  StaticMapIterator operator++(int post_fix_operator);
+
+  StaticMapIterator& operator--();
+  StaticMapIterator operator--(int post_fix_operator);
+
+  // Interface for retrieving data / pointer to data.
+  const Key* GetKeyPtr() const;
+
+  // Run time error will occur if GetKey() is called on an invalid iterator.
+  inline const Key GetKey() const { return *GetKeyPtr(); }
+
+  // return a raw memory pointer that points to the start address of value.
+  const char* GetValueRawPtr() const;
+
+  // return a reinterpret-casted pointer to the value.
+  inline const Value* GetValuePtr() const {
+    return reinterpret_cast<const Value*>(GetValueRawPtr());
+  }
+
+  bool operator==(const StaticMapIterator& x) const;
+  bool operator!=(const StaticMapIterator& x) const;
+
+  // Check if this iterator is valid.
+  // If iterator is invalid, user is forbidden to use ++/-- operator
+  // or interfaces for retrieving data / pointer to data.
+  bool IsValid() const;
+
+ private:
+  friend class StaticMap<Key, Value, Compare>;
+
+  // Only StaticMap can call this constructor.
+  explicit StaticMapIterator(const char* base, const int32_t& index);
+
+  // Index of node that the iterator is pointing to.
+  int32_t index_;
+
+  // Beginning address of the serialized map data.
+  const char* base_;
+
+  // Number of nodes in the map.  Use it to identify end() iterator.
+  int32_t num_nodes_;
+
+  // offsets_ is an array of offset addresses of mapped values.
+  // For example:
+  // address_of_i-th_node_value = base_ + offsets_[i]
+  const uint32_t* offsets_;
+
+  // keys_[i] = key of i_th node.
+  const Key* keys_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_MAP_ITERATOR_H__
diff --git a/src/processor/static_map_unittest.cc b/src/processor/static_map_unittest.cc
new file mode 100644
index 0000000..d17153d
--- /dev/null
+++ b/src/processor/static_map_unittest.cc
@@ -0,0 +1,386 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_map_unittest.cc: Unit tests for StaticMap.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include <climits>
+#include <map>
+
+#include "breakpad_googletest_includes.h"
+#include "processor/static_map-inl.h"
+
+
+typedef int ValueType;
+typedef int KeyType;
+typedef google_breakpad::StaticMap< KeyType, ValueType > TestMap;
+typedef std::map< KeyType, ValueType > StdMap;
+
+template<typename Key, typename Value>
+class SimpleMapSerializer {
+ public:
+  static char* Serialize(const std::map<Key, Value>& stdmap,
+                   unsigned int* size = NULL) {
+    unsigned int size_per_node =
+        sizeof(uint32_t) + sizeof(Key) + sizeof(Value);
+    unsigned int memsize = sizeof(int32_t) + size_per_node * stdmap.size();
+    if (size) *size = memsize;
+
+    // Allocate memory for serialized data:
+    char* mem = reinterpret_cast<char*>(operator new(memsize));
+    char* address = mem;
+
+    // Writer the number of nodes:
+    new (address) uint32_t(static_cast<uint32_t>(stdmap.size()));
+    address += sizeof(uint32_t);
+
+    // Nodes' offset:
+    uint32_t* offsets = reinterpret_cast<uint32_t*>(address);
+    address += sizeof(uint32_t) * stdmap.size();
+
+    // Keys:
+    Key* keys = reinterpret_cast<Key*>(address);
+    address += sizeof(Key) * stdmap.size();
+
+    // Traversing map:
+    typename std::map<Key, Value>::const_iterator iter = stdmap.begin();
+    for (int index = 0; iter != stdmap.end(); ++iter, ++index) {
+      offsets[index] = static_cast<unsigned int>(address - mem);
+      keys[index] = iter->first;
+      new (address) Value(iter->second);
+      address += sizeof(Value);
+    }
+    return mem;
+  }
+};
+
+
+class TestInvalidMap : public ::testing::Test {
+ protected:
+  void SetUp() {
+    memset(data, 0, kMemorySize);
+  }
+
+  // 40 Bytes memory can hold a StaticMap with up to 3 nodes.
+  static const int kMemorySize = 40;
+  char data[kMemorySize];
+  TestMap test_map;
+};
+
+TEST_F(TestInvalidMap, TestNegativeNumberNodes) {
+  memset(data, 0xff, sizeof(uint32_t));  // Set the number of nodes = -1
+  test_map = TestMap(data);
+  ASSERT_FALSE(test_map.ValidateInMemoryStructure());
+}
+
+TEST_F(TestInvalidMap, TestWrongOffsets) {
+  uint32_t* header = reinterpret_cast<uint32_t*>(data);
+  const uint32_t kNumNodes = 2;
+  const uint32_t kHeaderOffset =
+        sizeof(uint32_t) + kNumNodes * (sizeof(uint32_t) + sizeof(KeyType));
+
+  header[0] = kNumNodes;
+  header[1] = kHeaderOffset + 3;   // Wrong offset for first node
+  test_map = TestMap(data);
+  ASSERT_FALSE(test_map.ValidateInMemoryStructure());
+
+  header[1] = kHeaderOffset;       // Correct offset for first node
+  header[2] = kHeaderOffset - 1;   // Wrong offset for second node
+  test_map = TestMap(data);
+  ASSERT_FALSE(test_map.ValidateInMemoryStructure());
+}
+
+TEST_F(TestInvalidMap, TestUnSortedKeys) {
+  uint32_t* header = reinterpret_cast<uint32_t*>(data);
+  const uint32_t kNumNodes = 2;
+  const uint32_t kHeaderOffset =
+      sizeof(uint32_t) + kNumNodes * (sizeof(uint32_t) + sizeof(KeyType));
+  header[0] = kNumNodes;
+  header[1] = kHeaderOffset;
+  header[2] = kHeaderOffset + sizeof(ValueType);
+
+  KeyType* keys = reinterpret_cast<KeyType*>(
+      data + (kNumNodes + 1) * sizeof(uint32_t));
+  // Set keys in non-increasing order.
+  keys[0] = 10;
+  keys[1] = 7;
+  test_map = TestMap(data);
+  ASSERT_FALSE(test_map.ValidateInMemoryStructure());
+}
+
+
+class TestValidMap : public ::testing::Test {
+ protected:
+  void SetUp() {
+    int testcase = 0;
+
+    // Empty map.
+    map_data[testcase] =
+        serializer.Serialize(std_map[testcase], &size[testcase]);
+    test_map[testcase] = TestMap(map_data[testcase]);
+    ++testcase;
+
+    // Single element.
+    std_map[testcase].insert(std::make_pair(2, 8));
+    map_data[testcase] =
+        serializer.Serialize(std_map[testcase], &size[testcase]);
+    test_map[testcase] = TestMap(map_data[testcase]);
+    ++testcase;
+
+    // 100 elements.
+    for (int i = 0; i < 100; ++i)
+          std_map[testcase].insert(std::make_pair(i, 2 * i));
+    map_data[testcase] =
+        serializer.Serialize(std_map[testcase], &size[testcase]);
+    test_map[testcase] = TestMap(map_data[testcase]);
+    ++testcase;
+
+    // 1000 random elements.
+    for (int i = 0; i < 1000; ++i)
+      std_map[testcase].insert(std::make_pair(rand(), rand()));
+    map_data[testcase] =
+        serializer.Serialize(std_map[testcase], &size[testcase]);
+    test_map[testcase] = TestMap(map_data[testcase]);
+
+    // Set correct size of memory allocation for each test case.
+    unsigned int size_per_node =
+        sizeof(uint32_t) + sizeof(KeyType) + sizeof(ValueType);
+    for (testcase = 0; testcase < kNumberTestCases; ++testcase) {
+      correct_size[testcase] =
+          sizeof(uint32_t) + std_map[testcase].size() * size_per_node;
+    }
+  }
+
+  void TearDown() {
+    for (int i = 0;i < kNumberTestCases; ++i)
+      ::operator delete(map_data[i]);
+  }
+
+
+  void IteratorTester(int test_case) {
+    // scan through:
+    iter_test = test_map[test_case].begin();
+    iter_std = std_map[test_case].begin();
+
+    for (; iter_test != test_map[test_case].end() &&
+           iter_std != std_map[test_case].end();
+         ++iter_test, ++iter_std) {
+      ASSERT_EQ(iter_test.GetKey(), iter_std->first);
+      ASSERT_EQ(*(iter_test.GetValuePtr()), iter_std->second);
+    }
+    ASSERT_TRUE(iter_test == test_map[test_case].end()
+             && iter_std == std_map[test_case].end());
+
+    // Boundary testcase.
+    if (!std_map[test_case].empty()) {
+      // rear boundary case:
+      iter_test = test_map[test_case].end();
+      iter_std = std_map[test_case].end();
+      --iter_std;
+      --iter_test;
+      ASSERT_EQ(iter_test.GetKey(), iter_std->first);
+      ASSERT_EQ(*(iter_test.GetValuePtr()), iter_std->second);
+
+      ++iter_test;
+      ++iter_std;
+      ASSERT_TRUE(iter_test == test_map[test_case].end());
+
+      --iter_test;
+      --iter_std;
+      ASSERT_TRUE(iter_test != test_map[test_case].end());
+      ASSERT_TRUE(iter_test == test_map[test_case].last());
+      ASSERT_EQ(iter_test.GetKey(), iter_std->first);
+      ASSERT_EQ(*(iter_test.GetValuePtr()), iter_std->second);
+
+      // front boundary case:
+      iter_test = test_map[test_case].begin();
+      --iter_test;
+      ASSERT_TRUE(iter_test == test_map[test_case].begin());
+    }
+  }
+
+  void CompareLookupResult(int test_case) {
+    bool found1 = (iter_test != test_map[test_case].end());
+    bool found2 = (iter_std != std_map[test_case].end());
+    ASSERT_EQ(found1, found2);
+
+    if (found1 && found2) {
+      ASSERT_EQ(iter_test.GetKey(), iter_std->first);
+      ASSERT_EQ(*(iter_test.GetValuePtr()), iter_std->second);
+    }
+  }
+
+  void FindTester(int test_case, const KeyType& key) {
+    iter_test = test_map[test_case].find(key);
+    iter_std = std_map[test_case].find(key);
+    CompareLookupResult(test_case);
+  }
+
+  void LowerBoundTester(int test_case, const KeyType& key) {
+    iter_test = test_map[test_case].lower_bound(key);
+    iter_std = std_map[test_case].lower_bound(key);
+    CompareLookupResult(test_case);
+  }
+
+  void UpperBoundTester(int test_case, const KeyType& key) {
+    iter_test = test_map[test_case].upper_bound(key);
+    iter_std = std_map[test_case].upper_bound(key);
+    CompareLookupResult(test_case);
+  }
+
+  void LookupTester(int test_case) {
+    StdMap::const_iterator iter;
+    // Test find():
+    for (iter = std_map[test_case].begin();
+        iter != std_map[test_case].end();
+        ++iter) {
+      FindTester(test_case, iter->first);
+      FindTester(test_case, iter->first + 1);
+      FindTester(test_case, iter->first - 1);
+    }
+    FindTester(test_case, INT_MIN);
+    FindTester(test_case, INT_MAX);
+    // random test:
+    for (int i = 0; i < rand()%5000 + 5000; ++i)
+      FindTester(test_case, rand());
+
+    // Test lower_bound():
+    for (iter = std_map[test_case].begin();
+        iter != std_map[test_case].end();
+        ++iter) {
+      LowerBoundTester(test_case, iter->first);
+      LowerBoundTester(test_case, iter->first + 1);
+      LowerBoundTester(test_case, iter->first - 1);
+    }
+    LowerBoundTester(test_case, INT_MIN);
+    LowerBoundTester(test_case, INT_MAX);
+    // random test:
+    for (int i = 0; i < rand()%5000 + 5000; ++i)
+      LowerBoundTester(test_case, rand());
+
+    // Test upper_bound():
+    for (iter = std_map[test_case].begin();
+        iter != std_map[test_case].end();
+        ++iter) {
+      UpperBoundTester(test_case, iter->first);
+      UpperBoundTester(test_case, iter->first + 1);
+      UpperBoundTester(test_case, iter->first - 1);
+    }
+    UpperBoundTester(test_case, INT_MIN);
+    UpperBoundTester(test_case, INT_MAX);
+    // random test:
+    for (int i = 0; i < rand()%5000 + 5000; ++i)
+      UpperBoundTester(test_case, rand());
+  }
+
+  static const int kNumberTestCases = 4;
+  StdMap std_map[kNumberTestCases];
+  TestMap test_map[kNumberTestCases];
+  TestMap::const_iterator iter_test;
+  StdMap::const_iterator iter_std;
+  char* map_data[kNumberTestCases];
+  unsigned int size[kNumberTestCases];
+  unsigned int correct_size[kNumberTestCases];
+  SimpleMapSerializer<KeyType, ValueType> serializer;
+};
+
+TEST_F(TestValidMap, TestEmptyMap) {
+  int test_case = 0;
+  // Assert memory size allocated during serialization is correct.
+  ASSERT_EQ(correct_size[test_case], size[test_case]);
+
+  // Sanity check of serialized data:
+  ASSERT_TRUE(test_map[test_case].ValidateInMemoryStructure());
+  ASSERT_EQ(std_map[test_case].empty(), test_map[test_case].empty());
+  ASSERT_EQ(std_map[test_case].size(), test_map[test_case].size());
+
+  // Test Iterator.
+  IteratorTester(test_case);
+
+  // Test lookup operations.
+  LookupTester(test_case);
+}
+
+TEST_F(TestValidMap, TestSingleElement) {
+  int test_case = 1;
+  // Assert memory size allocated during serialization is correct.
+  ASSERT_EQ(correct_size[test_case], size[test_case]);
+
+  // Sanity check of serialized data:
+  ASSERT_TRUE(test_map[test_case].ValidateInMemoryStructure());
+  ASSERT_EQ(std_map[test_case].empty(), test_map[test_case].empty());
+  ASSERT_EQ(std_map[test_case].size(), test_map[test_case].size());
+
+  // Test Iterator.
+  IteratorTester(test_case);
+
+  // Test lookup operations.
+  LookupTester(test_case);
+}
+
+TEST_F(TestValidMap, Test100Elements) {
+  int test_case = 2;
+  // Assert memory size allocated during serialization is correct.
+  ASSERT_EQ(correct_size[test_case], size[test_case]);
+
+  // Sanity check of serialized data:
+  ASSERT_TRUE(test_map[test_case].ValidateInMemoryStructure());
+  ASSERT_EQ(std_map[test_case].empty(), test_map[test_case].empty());
+  ASSERT_EQ(std_map[test_case].size(), test_map[test_case].size());
+
+  // Test Iterator.
+  IteratorTester(test_case);
+
+  // Test lookup operations.
+  LookupTester(test_case);
+}
+
+TEST_F(TestValidMap, Test1000RandomElements) {
+  int test_case = 3;
+  // Assert memory size allocated during serialization is correct.
+  ASSERT_EQ(correct_size[test_case], size[test_case]);
+
+  // Sanity check of serialized data:
+  ASSERT_TRUE(test_map[test_case].ValidateInMemoryStructure());
+  ASSERT_EQ(std_map[test_case].empty(), test_map[test_case].empty());
+  ASSERT_EQ(std_map[test_case].size(), test_map[test_case].size());
+
+  // Test Iterator.
+  IteratorTester(test_case);
+
+  // Test lookup operations.
+  LookupTester(test_case);
+}
+
+int main(int argc, char *argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/static_range_map-inl.h b/src/processor/static_range_map-inl.h
new file mode 100644
index 0000000..37fb6fa
--- /dev/null
+++ b/src/processor/static_range_map-inl.h
@@ -0,0 +1,130 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_range_map-inl.h: StaticRangeMap implementation.
+//
+// See static_range_map.h for documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_RANGE_MAP_INL_H__
+#define PROCESSOR_STATIC_RANGE_MAP_INL_H__
+
+#include "processor/static_range_map.h"
+#include "processor/logging.h"
+
+namespace google_breakpad {
+
+template<typename AddressType, typename EntryType>
+bool StaticRangeMap<AddressType, EntryType>::RetrieveRange(
+    const AddressType& address, const EntryType*& entry,
+    AddressType* entry_base, AddressType* entry_size) const {
+  MapConstIterator iterator = map_.lower_bound(address);
+  if (iterator == map_.end())
+    return false;
+
+  // The map is keyed by the high address of each range, so |address| is
+  // guaranteed to be lower than the range's high address.  If |range| is
+  // not directly preceded by another range, it's possible for address to
+  // be below the range's low address, though.  When that happens, address
+  // references something not within any range, so return false.
+
+  const Range* range = iterator.GetValuePtr();
+
+  // Make sure AddressType and EntryType are copyable basic types
+  // e.g.: integer types, pointers etc
+  if (address < range->base())
+    return false;
+
+  entry = range->entryptr();
+  if (entry_base)
+    *entry_base = range->base();
+  if (entry_size)
+    *entry_size = iterator.GetKey() - range->base() + 1;
+
+  return true;
+}
+
+
+template<typename AddressType, typename EntryType>
+bool StaticRangeMap<AddressType, EntryType>::RetrieveNearestRange(
+    const AddressType& address, const EntryType*& entry,
+    AddressType* entry_base, AddressType* entry_size) const {
+  // If address is within a range, RetrieveRange can handle it.
+  if (RetrieveRange(address, entry, entry_base, entry_size))
+    return true;
+
+  // upper_bound gives the first element whose key is greater than address,
+  // but we want the first element whose key is less than or equal to address.
+  // Decrement the iterator to get there, but not if the upper_bound already
+  // points to the beginning of the map - in that case, address is lower than
+  // the lowest stored key, so return false.
+
+  MapConstIterator iterator = map_.upper_bound(address);
+  if (iterator == map_.begin())
+    return false;
+  --iterator;
+
+  const Range* range = iterator.GetValuePtr();
+  entry = range->entryptr();
+  if (entry_base)
+    *entry_base = range->base();
+  if (entry_size)
+    *entry_size = iterator.GetKey() - range->base() + 1;
+
+  return true;
+}
+
+template<typename AddressType, typename EntryType>
+bool StaticRangeMap<AddressType, EntryType>::RetrieveRangeAtIndex(
+    int index, const EntryType*& entry,
+    AddressType* entry_base, AddressType* entry_size) const {
+
+  if (index >= GetCount()) {
+    BPLOG(ERROR) << "Index out of range: " << index << "/" << GetCount();
+    return false;
+  }
+
+  MapConstIterator iterator = map_.IteratorAtIndex(index);
+
+  const Range* range = iterator.GetValuePtr();
+
+  entry = range->entryptr();
+  if (entry_base)
+    *entry_base = range->base();
+  if (entry_size)
+    *entry_size = iterator.GetKey() - range->base() + 1;
+
+  return true;
+}
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_STATIC_RANGE_MAP_INL_H__
diff --git a/src/processor/static_range_map.h b/src/processor/static_range_map.h
new file mode 100644
index 0000000..ea89fae
--- /dev/null
+++ b/src/processor/static_range_map.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// static_range_map.h: StaticRangeMap.
+//
+// StaticRangeMap is similar as RangeMap.  However, StaticRangeMap wraps a
+// StaticMap instead of std::map, and does not support dynamic operations like
+// StoreRange(...).  StaticRangeMap provides same Retrieve*() interfaces as
+// RangeMap.  Please see range_map.h for more documentation.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef PROCESSOR_STATIC_RANGE_MAP_H__
+#define PROCESSOR_STATIC_RANGE_MAP_H__
+
+
+#include "processor/static_map-inl.h"
+
+namespace google_breakpad {
+
+// AddressType is basic type, e.g.: integer types, pointers etc
+// EntryType could be a complex type, so we retrieve its pointer instead.
+template<typename AddressType, typename EntryType>
+class StaticRangeMap {
+ public:
+  StaticRangeMap(): map_() { }
+  explicit StaticRangeMap(const char* memory): map_(memory) { }
+
+  // Locates the range encompassing the supplied address.  If there is
+  // no such range, returns false.  entry_base and entry_size, if non-NULL,
+  // are set to the base and size of the entry's range.
+  bool RetrieveRange(const AddressType& address, const EntryType*& entry,
+                     AddressType* entry_base, AddressType* entry_size) const;
+
+  // Locates the range encompassing the supplied address, if one exists.
+  // If no range encompasses the supplied address, locates the nearest range
+  // to the supplied address that is lower than the address.  Returns false
+  // if no range meets these criteria.  entry_base and entry_size, if
+  // non-NULL, are set to the base and size of the entry's range.
+  bool RetrieveNearestRange(const AddressType& address, const EntryType*& entry,
+                            AddressType* entry_base, AddressType* entry_size)
+                            const;
+
+  // Treating all ranges as a list ordered by the address spaces that they
+  // occupy, locates the range at the index specified by index.  Returns
+  // false if index is larger than the number of ranges stored.  entry_base
+  // and entry_size, if non-NULL, are set to the base and size of the entry's
+  // range.
+  //
+  // RetrieveRangeAtIndex is not optimized for speedy operation.
+  bool RetrieveRangeAtIndex(int index, const EntryType*& entry,
+                            AddressType* entry_base, AddressType* entry_size)
+                            const;
+
+  // Returns the number of ranges stored in the RangeMap.
+  inline int GetCount() const { return map_.size(); }
+
+ private:
+  friend class ModuleComparer;
+  class Range {
+   public:
+    AddressType base() const {
+      return *(reinterpret_cast<const AddressType*>(this));
+    }
+    const EntryType* entryptr() const {
+      return reinterpret_cast<const EntryType*>(this + sizeof(AddressType));
+    }
+  };
+
+  // Convenience types.
+  typedef StaticRangeMap* SelfPtr;
+  typedef StaticMap<AddressType, Range> AddressToRangeMap;
+  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
+
+  AddressToRangeMap map_;
+};
+
+}  // namespace google_breakpad
+
+#endif  // PROCESSOR_STATIC_RANGE_MAP_H__
diff --git a/src/processor/static_range_map_unittest.cc b/src/processor/static_range_map_unittest.cc
new file mode 100644
index 0000000..1593ed0
--- /dev/null
+++ b/src/processor/static_range_map_unittest.cc
@@ -0,0 +1,421 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// static_range_map_unittest.cc: Unit tests for StaticRangeMap.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#include "breakpad_googletest_includes.h"
+#include "common/scoped_ptr.h"
+#include "processor/range_map-inl.h"
+#include "processor/static_range_map-inl.h"
+#include "processor/simple_serializer-inl.h"
+#include "processor/map_serializers-inl.h"
+#include "processor/logging.h"
+
+
+namespace {
+// Types used for testing.
+typedef int AddressType;
+typedef int EntryType;
+typedef google_breakpad::StaticRangeMap< AddressType, EntryType > TestMap;
+typedef google_breakpad::RangeMap< AddressType, EntryType > RMap;
+
+// RangeTest contains data to use for store and retrieve tests.  See
+// RunTests for descriptions of the tests.
+struct RangeTest {
+  // Base address to use for test
+  AddressType address;
+
+  // Size of range to use for test
+  AddressType size;
+
+  // Unique ID of range - unstorable ranges must have unique IDs too
+  EntryType id;
+
+  // Whether this range is expected to be stored successfully or not
+  bool expect_storable;
+};
+
+// A RangeTestSet encompasses multiple RangeTests, which are run in
+// sequence on the same RangeMap.
+struct RangeTestSet {
+  // An array of RangeTests
+  const RangeTest* range_tests;
+
+  // The number of tests in the set
+  unsigned int range_test_count;
+};
+
+// These tests will be run sequentially.  The first set of tests exercises
+// most functions of RangeTest, and verifies all of the bounds-checking.
+const RangeTest range_tests_0[] = {
+  { INT_MIN,     16,      1,  true },   // lowest possible range
+  { -2,          5,       2,  true },   // a range through zero
+  { INT_MAX - 9, 11,      3,  false },  // tests anti-overflow
+  { INT_MAX - 9, 10,      4,  true },   // highest possible range
+  { 5,           0,       5,  false },  // tests anti-zero-size
+  { 5,           1,       6,  true },   // smallest possible range
+  { -20,         15,      7,  true },   // entirely negative
+
+  { 10,          10,      10, true },   // causes the following tests to fail
+  { 9,           10,      11, false },  // one-less base, one-less high
+  { 9,           11,      12, false },  // one-less base, identical high
+  { 9,           12,      13, false },  // completely contains existing
+  { 10,          9,       14, false },  // identical base, one-less high
+  { 10,          10,      15, false },  // exactly identical to existing range
+  { 10,          11,      16, false },  // identical base, one-greater high
+  { 11,          8,       17, false },  // contained completely within
+  { 11,          9,       18, false },  // one-greater base, identical high
+  { 11,          10,      19, false },  // one-greater base, one-greater high
+  { 9,           2,       20, false },  // overlaps bottom by one
+  { 10,          1,       21, false },  // overlaps bottom by one, contained
+  { 19,          1,       22, false },  // overlaps top by one, contained
+  { 19,          2,       23, false },  // overlaps top by one
+
+  { 9,           1,       24, true },   // directly below without overlap
+  { 20,          1,       25, true },   // directly above without overlap
+
+  { 6,           3,       26, true },   // exactly between two ranges, gapless
+  { 7,           3,       27, false },  // tries to span two ranges
+  { 7,           5,       28, false },  // tries to span three ranges
+  { 4,           20,      29, false },  // tries to contain several ranges
+
+  { 30,          50,      30, true },
+  { 90,          25,      31, true },
+  { 35,          65,      32, false },  // tries to span two noncontiguous
+  { 120,         10000,   33, true },   // > 8-bit
+  { 20000,       20000,   34, true },   // > 8-bit
+  { 0x10001,     0x10001, 35, true },   // > 16-bit
+
+  { 27,          -1,      36, false }   // tests high < base
+};
+
+// Attempt to fill the entire space.  The entire space must be filled with
+// three stores because AddressType is signed for these tests, so RangeMap
+// treats the size as signed and rejects sizes that appear to be negative.
+// Even if these tests were run as unsigned, two stores would be needed
+// to fill the space because the entire size of the space could only be
+// described by using one more bit than would be present in AddressType.
+const RangeTest range_tests_1[] = {
+  { INT_MIN, INT_MAX, 50, true },   // From INT_MIN to -2, inclusive
+  { -1,      2,       51, true },   // From -1 to 0, inclusive
+  { 1,       INT_MAX, 52, true },   // From 1 to INT_MAX, inclusive
+  { INT_MIN, INT_MAX, 53, false },  // Can't fill the space twice
+  { -1,      2,       54, false },
+  { 1,       INT_MAX, 55, false },
+  { -3,      6,       56, false },  // -3 to 2, inclusive - spans 3 ranges
+};
+
+// A light round of testing to verify that RetrieveRange does the right
+// the right thing at the extremities of the range when nothing is stored
+// there.  Checks are forced without storing anything at the extremities
+// by setting size = 0.
+const RangeTest range_tests_2[] = {
+  { INT_MIN, 0, 100, false },  // makes RetrieveRange check low end
+  { -1,      3, 101, true },
+  { INT_MAX, 0, 102, false },  // makes RetrieveRange check high end
+};
+
+// Similar to the previous test set, but with a couple of ranges closer
+// to the extremities.
+const RangeTest range_tests_3[] = {
+  { INT_MIN + 1, 1, 110, true },
+  { INT_MAX - 1, 1, 111, true },
+  { INT_MIN,     0, 112, false },  // makes RetrieveRange check low end
+  { INT_MAX,     0, 113, false }   // makes RetrieveRange check high end
+};
+
+// The range map is cleared between sets of tests listed here.
+const RangeTestSet range_test_sets[] = {
+  { range_tests_0, sizeof(range_tests_0) / sizeof(RangeTest) },
+  { range_tests_1, sizeof(range_tests_1) / sizeof(RangeTest) },
+  { range_tests_2, sizeof(range_tests_2) / sizeof(RangeTest) },
+  { range_tests_3, sizeof(range_tests_3) / sizeof(RangeTest) },
+  { range_tests_0, sizeof(range_tests_0) / sizeof(RangeTest) }   // Run again
+};
+
+}  // namespace
+
+namespace google_breakpad {
+class TestStaticRangeMap : public ::testing::Test {
+ protected:
+  void SetUp() {
+    kTestCasesCount_ = sizeof(range_test_sets) / sizeof(RangeTestSet);
+  }
+
+  // StoreTest uses the data in a RangeTest and calls StoreRange on the
+  // test RangeMap.  It returns true if the expected result occurred, and
+  // false if something else happened.
+  void StoreTest(RMap* range_map, const RangeTest* range_test);
+
+  // RetrieveTest uses the data in RangeTest and calls RetrieveRange on the
+  // test RangeMap.  If it retrieves the expected value (which can be no
+  // map entry at the specified range,) it returns true, otherwise, it returns
+  // false.  RetrieveTest will check the values around the base address and
+  // the high address of a range to guard against off-by-one errors.
+  void RetrieveTest(TestMap* range_map, const RangeTest* range_test);
+
+  // Test RetrieveRangeAtIndex, which is supposed to return objects in order
+  // according to their addresses.  This test is performed by looping through
+  // the map, calling RetrieveRangeAtIndex for all possible indices in sequence,
+  // and verifying that each call returns a different object than the previous
+  // call, and that ranges are returned with increasing base addresses.  Returns
+  // false if the test fails.
+  void RetrieveIndexTest(const TestMap* range_map, int set);
+
+  void RunTestCase(int test_case);
+
+  unsigned int kTestCasesCount_;
+  RangeMapSerializer<AddressType, EntryType> serializer_;
+};
+
+void TestStaticRangeMap::StoreTest(RMap* range_map,
+                                   const RangeTest* range_test) {
+  bool stored = range_map->StoreRange(range_test->address,
+                                      range_test->size,
+                                      range_test->id);
+  EXPECT_EQ(stored, range_test->expect_storable)
+      << "StoreRange id " << range_test->id << "FAILED";
+}
+
+void TestStaticRangeMap::RetrieveTest(TestMap* range_map,
+                                      const RangeTest* range_test) {
+  for (unsigned int side = 0; side <= 1; ++side) {
+    // When side == 0, check the low side (base address) of each range.
+    // When side == 1, check the high side (base + size) of each range.
+
+    // Check one-less and one-greater than the target address in addition
+    // to the target address itself.
+
+    // If the size of the range is only 1, don't check one greater than
+    // the base or one less than the high - for a successfully stored
+    // range, these tests would erroneously fail because the range is too
+    // small.
+    AddressType low_offset = -1;
+    AddressType high_offset = 1;
+    if (range_test->size == 1) {
+      if (!side)          // When checking the low side,
+        high_offset = 0;  // don't check one over the target.
+      else                // When checking the high side,
+        low_offset = 0;   // don't check one under the target.
+    }
+
+    for (AddressType offset = low_offset; offset <= high_offset; ++offset) {
+      AddressType address =
+          offset +
+          (!side ? range_test->address :
+                   range_test->address + range_test->size - 1);
+
+      bool expected_result = false;  // This is correct for tests not stored.
+      if (range_test->expect_storable) {
+        if (offset == 0)             // When checking the target address,
+          expected_result = true;    // test should always succeed.
+        else if (offset == -1)       // When checking one below the target,
+          expected_result = side;    // should fail low and succeed high.
+        else                         // When checking one above the target,
+          expected_result = !side;   // should succeed low and fail high.
+      }
+
+      const EntryType* id;
+      AddressType retrieved_base;
+      AddressType retrieved_size;
+      bool retrieved = range_map->RetrieveRange(address, id,
+                                                &retrieved_base,
+                                                &retrieved_size);
+
+      bool observed_result = retrieved && *id == range_test->id;
+      EXPECT_EQ(observed_result, expected_result)
+          << "RetrieveRange id " << range_test->id
+          << ", side " << side << ", offset " << offset << " FAILED.";
+
+      // If a range was successfully retrieved, check that the returned
+      // bounds match the range as stored.
+      if (observed_result == true) {
+        EXPECT_EQ(retrieved_base, range_test->address)
+            << "RetrieveRange id " << range_test->id
+            << ", side " << side << ", offset " << offset << " FAILED.";
+        EXPECT_EQ(retrieved_size, range_test->size)
+            << "RetrieveRange id " << range_test->id
+            << ", side " << side << ", offset " << offset << " FAILED.";
+      }
+
+      // Now, check RetrieveNearestRange.  The nearest range is always
+      // expected to be different from the test range when checking one
+      // less than the low side.
+      bool expected_nearest = range_test->expect_storable;
+      if (!side && offset < 0)
+        expected_nearest = false;
+
+      AddressType nearest_base;
+      AddressType nearest_size;
+      bool retrieved_nearest = range_map->RetrieveNearestRange(address,
+                                                               id,
+                                                               &nearest_base,
+                                                               &nearest_size);
+
+      // When checking one greater than the high side, RetrieveNearestRange
+      // should usually return the test range.  When a different range begins
+      // at that address, though, then RetrieveNearestRange should return the
+      // range at the address instead of the test range.
+      if (side && offset > 0 && nearest_base == address) {
+        expected_nearest = false;
+      }
+
+      bool observed_nearest = retrieved_nearest &&
+                              *id == range_test->id;
+
+      EXPECT_EQ(observed_nearest, expected_nearest)
+          << "RetrieveRange id " << range_test->id
+          << ", side " << side << ", offset " << offset << " FAILED.";
+
+      // If a range was successfully retrieved, check that the returned
+      // bounds match the range as stored.
+      if (expected_nearest ==true) {
+        EXPECT_EQ(nearest_base, range_test->address)
+            << "RetrieveRange id " << range_test->id
+            << ", side " << side << ", offset " << offset << " FAILED.";
+        EXPECT_EQ(nearest_size, range_test->size)
+            << "RetrieveRange id " << range_test->id
+            << ", side " << side << ", offset " << offset << " FAILED.";
+      }
+    }
+  }
+}
+
+void TestStaticRangeMap::RetrieveIndexTest(const TestMap* range_map, int set) {
+  AddressType last_base = 0;
+  const EntryType* last_entry = 0;
+  const EntryType* entry;
+  int object_count = range_map->GetCount();
+  for (int object_index = 0; object_index < object_count; ++object_index) {
+    AddressType base;
+    ASSERT_TRUE(range_map->RetrieveRangeAtIndex(object_index,
+                                                entry,
+                                                &base,
+                                                NULL))
+        << "FAILED: RetrieveRangeAtIndex set " << set
+        << " index " << object_index;
+
+    ASSERT_TRUE(entry) << "FAILED: RetrieveRangeAtIndex set " << set
+                           << " index " << object_index;
+
+    // It's impossible to do these comparisons unless there's a previous
+    // object to compare against.
+    if (last_entry) {
+      // The object must be different from the last_entry one.
+      EXPECT_NE(*entry, *last_entry) << "FAILED: RetrieveRangeAtIndex set "
+                                     << set << " index " << object_index;
+      // Each object must have a base greater than the previous object's base.
+      EXPECT_GT(base, last_base) << "FAILED: RetrieveRangeAtIndex set " << set
+                                 << " index " << object_index;
+    }
+    last_entry = entry;
+    last_base = base;
+  }
+
+  // Make sure that RetrieveRangeAtIndex doesn't allow lookups at indices that
+  // are too high.
+  ASSERT_FALSE(range_map->RetrieveRangeAtIndex(
+      object_count, entry, NULL, NULL)) << "FAILED: RetrieveRangeAtIndex set "
+                                        << set << " index " << object_count
+                                        << " (too large)";
+}
+
+// RunTests runs a series of test sets.
+void TestStaticRangeMap::RunTestCase(int test_case) {
+  // Maintain the range map in a pointer so that deletion can be meaningfully
+  // tested.
+  scoped_ptr<RMap> rmap(new RMap());
+
+  const RangeTest* range_tests = range_test_sets[test_case].range_tests;
+  unsigned int range_test_count = range_test_sets[test_case].range_test_count;
+
+  // Run the StoreRange test, which validates StoreRange and initializes
+  // the RangeMap with data for the RetrieveRange test.
+  int stored_count = 0;  // The number of ranges successfully stored
+  for (unsigned int range_test_index = 0;
+       range_test_index < range_test_count;
+       ++range_test_index) {
+    const RangeTest* range_test = &range_tests[range_test_index];
+    StoreTest(rmap.get(), range_test);
+
+    if (range_test->expect_storable)
+      ++stored_count;
+  }
+
+  scoped_array<char> memaddr(serializer_.Serialize(*rmap, NULL));
+  scoped_ptr<TestMap> static_range_map(new TestMap(memaddr.get()));
+
+  // The RangeMap's own count of objects should also match.
+  EXPECT_EQ(static_range_map->GetCount(), stored_count);
+
+  // Run the RetrieveRange test
+  for (unsigned int range_test_index = 0;
+       range_test_index < range_test_count;
+       ++range_test_index) {
+    const RangeTest* range_test = &range_tests[range_test_index];
+    RetrieveTest(static_range_map.get(), range_test);
+  }
+
+  RetrieveIndexTest(static_range_map.get(), test_case);
+}
+
+TEST_F(TestStaticRangeMap, TestCase0) {
+  int test_case = 0;
+  RunTestCase(test_case);
+}
+
+TEST_F(TestStaticRangeMap, TestCase1) {
+  int test_case = 1;
+  RunTestCase(test_case);
+}
+
+TEST_F(TestStaticRangeMap, TestCase2) {
+  int test_case = 2;
+  RunTestCase(test_case);
+}
+
+TEST_F(TestStaticRangeMap, TestCase3) {
+  int test_case = 3;
+  RunTestCase(test_case);
+}
+
+TEST_F(TestStaticRangeMap, RunTestCase0Again) {
+  int test_case = 0;
+  RunTestCase(test_case);
+}
+
+}  // namespace google_breakpad
+
+int main(int argc, char* argv[]) {
+  ::testing::InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
diff --git a/src/processor/symbolic_constants_win.cc b/src/processor/symbolic_constants_win.cc
new file mode 100644
index 0000000..8cf283f
--- /dev/null
+++ b/src/processor/symbolic_constants_win.cc
@@ -0,0 +1,6417 @@
+// Copyright (c) 2015 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ntstatus_reason_win.h: Windows NTSTATUS code to string.
+//
+// Provides a means to convert NTSTATUS codes to strings.
+//
+// Author: Ben Wagner
+
+#include <string>
+
+#include "common/stdio_wrapper.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_exception_win32.h"
+#include "processor/symbolic_constants_win.h"
+
+namespace google_breakpad {
+
+string NTStatusToString(uint32_t ntstatus) {
+  string reason;
+  // The content of this switch was created from ntstatus.h in the 8.1 SDK with
+  //
+  // egrep '#define [A-Z_0-9]+\s+\(\(NTSTATUS\)0xC[0-9A-F]+L\)' ntstatus.h
+  // | tr -d '\r'
+  // | sed -r 's@#define ([A-Z_0-9]+)\s+\(\(NTSTATUS\)(0xC[0-9A-F]+)L\).*@\2 \1@'
+  // | sort
+  // | sed -r 's@(0xC[0-9A-F]+) ([A-Z_0-9]+)@    case MD_NTSTATUS_WIN_\2:\n      reason = "\2";\n      break;@'
+  //
+  // With easy copy to clipboard with
+  // | xclip -selection c  # on linux
+  // | clip  # on windows
+  // | pbcopy  # on mac
+  //
+  // and then the default case added.
+  switch (ntstatus) {
+    case MD_NTSTATUS_WIN_STATUS_UNSUCCESSFUL:
+      reason = "STATUS_UNSUCCESSFUL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_IMPLEMENTED:
+      reason = "STATUS_NOT_IMPLEMENTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_INFO_CLASS:
+      reason = "STATUS_INVALID_INFO_CLASS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INFO_LENGTH_MISMATCH:
+      reason = "STATUS_INFO_LENGTH_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_VIOLATION:
+      reason = "STATUS_ACCESS_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IN_PAGE_ERROR:
+      reason = "STATUS_IN_PAGE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA:
+      reason = "STATUS_PAGEFILE_QUOTA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_HANDLE:
+      reason = "STATUS_INVALID_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_STACK:
+      reason = "STATUS_BAD_INITIAL_STACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_PC:
+      reason = "STATUS_BAD_INITIAL_PC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_CID:
+      reason = "STATUS_INVALID_CID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TIMER_NOT_CANCELED:
+      reason = "STATUS_TIMER_NOT_CANCELED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER:
+      reason = "STATUS_INVALID_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_DEVICE:
+      reason = "STATUS_NO_SUCH_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_FILE:
+      reason = "STATUS_NO_SUCH_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_REQUEST:
+      reason = "STATUS_INVALID_DEVICE_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_END_OF_FILE:
+      reason = "STATUS_END_OF_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_VOLUME:
+      reason = "STATUS_WRONG_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_MEDIA_IN_DEVICE:
+      reason = "STATUS_NO_MEDIA_IN_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_MEDIA:
+      reason = "STATUS_UNRECOGNIZED_MEDIA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NONEXISTENT_SECTOR:
+      reason = "STATUS_NONEXISTENT_SECTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MORE_PROCESSING_REQUIRED:
+      reason = "STATUS_MORE_PROCESSING_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_MEMORY:
+      reason = "STATUS_NO_MEMORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONFLICTING_ADDRESSES:
+      reason = "STATUS_CONFLICTING_ADDRESSES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_VIEW:
+      reason = "STATUS_NOT_MAPPED_VIEW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNABLE_TO_FREE_VM:
+      reason = "STATUS_UNABLE_TO_FREE_VM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DELETE_SECTION:
+      reason = "STATUS_UNABLE_TO_DELETE_SECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SYSTEM_SERVICE:
+      reason = "STATUS_INVALID_SYSTEM_SERVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_INSTRUCTION:
+      reason = "STATUS_ILLEGAL_INSTRUCTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_SEQUENCE:
+      reason = "STATUS_INVALID_LOCK_SEQUENCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_VIEW_SIZE:
+      reason = "STATUS_INVALID_VIEW_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_FILE_FOR_SECTION:
+      reason = "STATUS_INVALID_FILE_FOR_SECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALREADY_COMMITTED:
+      reason = "STATUS_ALREADY_COMMITTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DENIED:
+      reason = "STATUS_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BUFFER_TOO_SMALL:
+      reason = "STATUS_BUFFER_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_TYPE_MISMATCH:
+      reason = "STATUS_OBJECT_TYPE_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NONCONTINUABLE_EXCEPTION:
+      reason = "STATUS_NONCONTINUABLE_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DISPOSITION:
+      reason = "STATUS_INVALID_DISPOSITION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNWIND:
+      reason = "STATUS_UNWIND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_STACK:
+      reason = "STATUS_BAD_STACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_UNWIND_TARGET:
+      reason = "STATUS_INVALID_UNWIND_TARGET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_LOCKED:
+      reason = "STATUS_NOT_LOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PARITY_ERROR:
+      reason = "STATUS_PARITY_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DECOMMIT_VM:
+      reason = "STATUS_UNABLE_TO_DECOMMIT_VM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_COMMITTED:
+      reason = "STATUS_NOT_COMMITTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PORT_ATTRIBUTES:
+      reason = "STATUS_INVALID_PORT_ATTRIBUTES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_MESSAGE_TOO_LONG:
+      reason = "STATUS_PORT_MESSAGE_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_MIX:
+      reason = "STATUS_INVALID_PARAMETER_MIX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_QUOTA_LOWER:
+      reason = "STATUS_INVALID_QUOTA_LOWER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_CORRUPT_ERROR:
+      reason = "STATUS_DISK_CORRUPT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_INVALID:
+      reason = "STATUS_OBJECT_NAME_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_NOT_FOUND:
+      reason = "STATUS_OBJECT_NAME_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_COLLISION:
+      reason = "STATUS_OBJECT_NAME_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_DISCONNECTED:
+      reason = "STATUS_PORT_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_ALREADY_ATTACHED:
+      reason = "STATUS_DEVICE_ALREADY_ATTACHED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_INVALID:
+      reason = "STATUS_OBJECT_PATH_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_NOT_FOUND:
+      reason = "STATUS_OBJECT_PATH_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_SYNTAX_BAD:
+      reason = "STATUS_OBJECT_PATH_SYNTAX_BAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATA_OVERRUN:
+      reason = "STATUS_DATA_OVERRUN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATA_LATE_ERROR:
+      reason = "STATUS_DATA_LATE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATA_ERROR:
+      reason = "STATUS_DATA_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CRC_ERROR:
+      reason = "STATUS_CRC_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECTION_TOO_BIG:
+      reason = "STATUS_SECTION_TOO_BIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_CONNECTION_REFUSED:
+      reason = "STATUS_PORT_CONNECTION_REFUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PORT_HANDLE:
+      reason = "STATUS_INVALID_PORT_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHARING_VIOLATION:
+      reason = "STATUS_SHARING_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_QUOTA_EXCEEDED:
+      reason = "STATUS_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PAGE_PROTECTION:
+      reason = "STATUS_INVALID_PAGE_PROTECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUTANT_NOT_OWNED:
+      reason = "STATUS_MUTANT_NOT_OWNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SEMAPHORE_LIMIT_EXCEEDED:
+      reason = "STATUS_SEMAPHORE_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_SET:
+      reason = "STATUS_PORT_ALREADY_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECTION_NOT_IMAGE:
+      reason = "STATUS_SECTION_NOT_IMAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SUSPEND_COUNT_EXCEEDED:
+      reason = "STATUS_SUSPEND_COUNT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREAD_IS_TERMINATING:
+      reason = "STATUS_THREAD_IS_TERMINATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_WORKING_SET_LIMIT:
+      reason = "STATUS_BAD_WORKING_SET_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_FILE_MAP:
+      reason = "STATUS_INCOMPATIBLE_FILE_MAP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECTION_PROTECTION:
+      reason = "STATUS_SECTION_PROTECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EAS_NOT_SUPPORTED:
+      reason = "STATUS_EAS_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EA_TOO_LARGE:
+      reason = "STATUS_EA_TOO_LARGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NONEXISTENT_EA_ENTRY:
+      reason = "STATUS_NONEXISTENT_EA_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_EAS_ON_FILE:
+      reason = "STATUS_NO_EAS_ON_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EA_CORRUPT_ERROR:
+      reason = "STATUS_EA_CORRUPT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_LOCK_CONFLICT:
+      reason = "STATUS_FILE_LOCK_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOCK_NOT_GRANTED:
+      reason = "STATUS_LOCK_NOT_GRANTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DELETE_PENDING:
+      reason = "STATUS_DELETE_PENDING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTL_FILE_NOT_SUPPORTED:
+      reason = "STATUS_CTL_FILE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNKNOWN_REVISION:
+      reason = "STATUS_UNKNOWN_REVISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REVISION_MISMATCH:
+      reason = "STATUS_REVISION_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_OWNER:
+      reason = "STATUS_INVALID_OWNER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PRIMARY_GROUP:
+      reason = "STATUS_INVALID_PRIMARY_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_IMPERSONATION_TOKEN:
+      reason = "STATUS_NO_IMPERSONATION_TOKEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_DISABLE_MANDATORY:
+      reason = "STATUS_CANT_DISABLE_MANDATORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_LOGON_SERVERS:
+      reason = "STATUS_NO_LOGON_SERVERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_LOGON_SESSION:
+      reason = "STATUS_NO_SUCH_LOGON_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_PRIVILEGE:
+      reason = "STATUS_NO_SUCH_PRIVILEGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PRIVILEGE_NOT_HELD:
+      reason = "STATUS_PRIVILEGE_NOT_HELD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ACCOUNT_NAME:
+      reason = "STATUS_INVALID_ACCOUNT_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_USER_EXISTS:
+      reason = "STATUS_USER_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_USER:
+      reason = "STATUS_NO_SUCH_USER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GROUP_EXISTS:
+      reason = "STATUS_GROUP_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_GROUP:
+      reason = "STATUS_NO_SUCH_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMBER_IN_GROUP:
+      reason = "STATUS_MEMBER_IN_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_GROUP:
+      reason = "STATUS_MEMBER_NOT_IN_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LAST_ADMIN:
+      reason = "STATUS_LAST_ADMIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD:
+      reason = "STATUS_WRONG_PASSWORD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILL_FORMED_PASSWORD:
+      reason = "STATUS_ILL_FORMED_PASSWORD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PASSWORD_RESTRICTION:
+      reason = "STATUS_PASSWORD_RESTRICTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_FAILURE:
+      reason = "STATUS_LOGON_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCOUNT_RESTRICTION:
+      reason = "STATUS_ACCOUNT_RESTRICTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_HOURS:
+      reason = "STATUS_INVALID_LOGON_HOURS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_WORKSTATION:
+      reason = "STATUS_INVALID_WORKSTATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PASSWORD_EXPIRED:
+      reason = "STATUS_PASSWORD_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCOUNT_DISABLED:
+      reason = "STATUS_ACCOUNT_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NONE_MAPPED:
+      reason = "STATUS_NONE_MAPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_LUIDS_REQUESTED:
+      reason = "STATUS_TOO_MANY_LUIDS_REQUESTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LUIDS_EXHAUSTED:
+      reason = "STATUS_LUIDS_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SUB_AUTHORITY:
+      reason = "STATUS_INVALID_SUB_AUTHORITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ACL:
+      reason = "STATUS_INVALID_ACL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SID:
+      reason = "STATUS_INVALID_SID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SECURITY_DESCR:
+      reason = "STATUS_INVALID_SECURITY_DESCR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROCEDURE_NOT_FOUND:
+      reason = "STATUS_PROCEDURE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_FORMAT:
+      reason = "STATUS_INVALID_IMAGE_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_TOKEN:
+      reason = "STATUS_NO_TOKEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_INHERITANCE_ACL:
+      reason = "STATUS_BAD_INHERITANCE_ACL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RANGE_NOT_LOCKED:
+      reason = "STATUS_RANGE_NOT_LOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_FULL:
+      reason = "STATUS_DISK_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERVER_DISABLED:
+      reason = "STATUS_SERVER_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERVER_NOT_DISABLED:
+      reason = "STATUS_SERVER_NOT_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_GUIDS_REQUESTED:
+      reason = "STATUS_TOO_MANY_GUIDS_REQUESTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GUIDS_EXHAUSTED:
+      reason = "STATUS_GUIDS_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ID_AUTHORITY:
+      reason = "STATUS_INVALID_ID_AUTHORITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AGENTS_EXHAUSTED:
+      reason = "STATUS_AGENTS_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_VOLUME_LABEL:
+      reason = "STATUS_INVALID_VOLUME_LABEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECTION_NOT_EXTENDED:
+      reason = "STATUS_SECTION_NOT_EXTENDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_DATA:
+      reason = "STATUS_NOT_MAPPED_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_DATA_NOT_FOUND:
+      reason = "STATUS_RESOURCE_DATA_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_TYPE_NOT_FOUND:
+      reason = "STATUS_RESOURCE_TYPE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_NAME_NOT_FOUND:
+      reason = "STATUS_RESOURCE_NAME_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ARRAY_BOUNDS_EXCEEDED:
+      reason = "STATUS_ARRAY_BOUNDS_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_DENORMAL_OPERAND:
+      reason = "STATUS_FLOAT_DENORMAL_OPERAND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_DIVIDE_BY_ZERO:
+      reason = "STATUS_FLOAT_DIVIDE_BY_ZERO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_INEXACT_RESULT:
+      reason = "STATUS_FLOAT_INEXACT_RESULT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_INVALID_OPERATION:
+      reason = "STATUS_FLOAT_INVALID_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_OVERFLOW:
+      reason = "STATUS_FLOAT_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_STACK_CHECK:
+      reason = "STATUS_FLOAT_STACK_CHECK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_UNDERFLOW:
+      reason = "STATUS_FLOAT_UNDERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTEGER_DIVIDE_BY_ZERO:
+      reason = "STATUS_INTEGER_DIVIDE_BY_ZERO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTEGER_OVERFLOW:
+      reason = "STATUS_INTEGER_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PRIVILEGED_INSTRUCTION:
+      reason = "STATUS_PRIVILEGED_INSTRUCTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_PAGING_FILES:
+      reason = "STATUS_TOO_MANY_PAGING_FILES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_INVALID:
+      reason = "STATUS_FILE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALLOTTED_SPACE_EXCEEDED:
+      reason = "STATUS_ALLOTTED_SPACE_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCES:
+      reason = "STATUS_INSUFFICIENT_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DFS_EXIT_PATH_FOUND:
+      reason = "STATUS_DFS_EXIT_PATH_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_DATA_ERROR:
+      reason = "STATUS_DEVICE_DATA_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_CONNECTED:
+      reason = "STATUS_DEVICE_NOT_CONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_FAILURE:
+      reason = "STATUS_DEVICE_POWER_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FREE_VM_NOT_AT_BASE:
+      reason = "STATUS_FREE_VM_NOT_AT_BASE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMORY_NOT_ALLOCATED:
+      reason = "STATUS_MEMORY_NOT_ALLOCATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WORKING_SET_QUOTA:
+      reason = "STATUS_WORKING_SET_QUOTA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEDIA_WRITE_PROTECTED:
+      reason = "STATUS_MEDIA_WRITE_PROTECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_READY:
+      reason = "STATUS_DEVICE_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_GROUP_ATTRIBUTES:
+      reason = "STATUS_INVALID_GROUP_ATTRIBUTES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_IMPERSONATION_LEVEL:
+      reason = "STATUS_BAD_IMPERSONATION_LEVEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_OPEN_ANONYMOUS:
+      reason = "STATUS_CANT_OPEN_ANONYMOUS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_VALIDATION_CLASS:
+      reason = "STATUS_BAD_VALIDATION_CLASS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_TOKEN_TYPE:
+      reason = "STATUS_BAD_TOKEN_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_MASTER_BOOT_RECORD:
+      reason = "STATUS_BAD_MASTER_BOOT_RECORD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSTRUCTION_MISALIGNMENT:
+      reason = "STATUS_INSTRUCTION_MISALIGNMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSTANCE_NOT_AVAILABLE:
+      reason = "STATUS_INSTANCE_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_NOT_AVAILABLE:
+      reason = "STATUS_PIPE_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PIPE_STATE:
+      reason = "STATUS_INVALID_PIPE_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_BUSY:
+      reason = "STATUS_PIPE_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_FUNCTION:
+      reason = "STATUS_ILLEGAL_FUNCTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_DISCONNECTED:
+      reason = "STATUS_PIPE_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_CLOSING:
+      reason = "STATUS_PIPE_CLOSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_CONNECTED:
+      reason = "STATUS_PIPE_CONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_LISTENING:
+      reason = "STATUS_PIPE_LISTENING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_READ_MODE:
+      reason = "STATUS_INVALID_READ_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_TIMEOUT:
+      reason = "STATUS_IO_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_FORCED_CLOSED:
+      reason = "STATUS_FILE_FORCED_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STARTED:
+      reason = "STATUS_PROFILING_NOT_STARTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STOPPED:
+      reason = "STATUS_PROFILING_NOT_STOPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COULD_NOT_INTERPRET:
+      reason = "STATUS_COULD_NOT_INTERPRET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_IS_A_DIRECTORY:
+      reason = "STATUS_FILE_IS_A_DIRECTORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED:
+      reason = "STATUS_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_NOT_LISTENING:
+      reason = "STATUS_REMOTE_NOT_LISTENING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DUPLICATE_NAME:
+      reason = "STATUS_DUPLICATE_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_PATH:
+      reason = "STATUS_BAD_NETWORK_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_BUSY:
+      reason = "STATUS_NETWORK_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_DOES_NOT_EXIST:
+      reason = "STATUS_DEVICE_DOES_NOT_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_COMMANDS:
+      reason = "STATUS_TOO_MANY_COMMANDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADAPTER_HARDWARE_ERROR:
+      reason = "STATUS_ADAPTER_HARDWARE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_NETWORK_RESPONSE:
+      reason = "STATUS_INVALID_NETWORK_RESPONSE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNEXPECTED_NETWORK_ERROR:
+      reason = "STATUS_UNEXPECTED_NETWORK_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_REMOTE_ADAPTER:
+      reason = "STATUS_BAD_REMOTE_ADAPTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PRINT_QUEUE_FULL:
+      reason = "STATUS_PRINT_QUEUE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SPOOL_SPACE:
+      reason = "STATUS_NO_SPOOL_SPACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PRINT_CANCELLED:
+      reason = "STATUS_PRINT_CANCELLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_NAME_DELETED:
+      reason = "STATUS_NETWORK_NAME_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED:
+      reason = "STATUS_NETWORK_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_DEVICE_TYPE:
+      reason = "STATUS_BAD_DEVICE_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_NAME:
+      reason = "STATUS_BAD_NETWORK_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_NAMES:
+      reason = "STATUS_TOO_MANY_NAMES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_SESSIONS:
+      reason = "STATUS_TOO_MANY_SESSIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHARING_PAUSED:
+      reason = "STATUS_SHARING_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REQUEST_NOT_ACCEPTED:
+      reason = "STATUS_REQUEST_NOT_ACCEPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REDIRECTOR_PAUSED:
+      reason = "STATUS_REDIRECTOR_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NET_WRITE_FAULT:
+      reason = "STATUS_NET_WRITE_FAULT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROFILING_AT_LIMIT:
+      reason = "STATUS_PROFILING_AT_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SAME_DEVICE:
+      reason = "STATUS_NOT_SAME_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_RENAMED:
+      reason = "STATUS_FILE_RENAMED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTUAL_CIRCUIT_CLOSED:
+      reason = "STATUS_VIRTUAL_CIRCUIT_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SECURITY_ON_OBJECT:
+      reason = "STATUS_NO_SECURITY_ON_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_WAIT:
+      reason = "STATUS_CANT_WAIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_EMPTY:
+      reason = "STATUS_PIPE_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_ACCESS_DOMAIN_INFO:
+      reason = "STATUS_CANT_ACCESS_DOMAIN_INFO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_TERMINATE_SELF:
+      reason = "STATUS_CANT_TERMINATE_SELF";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SERVER_STATE:
+      reason = "STATUS_INVALID_SERVER_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_STATE:
+      reason = "STATUS_INVALID_DOMAIN_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_ROLE:
+      reason = "STATUS_INVALID_DOMAIN_ROLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_DOMAIN:
+      reason = "STATUS_NO_SUCH_DOMAIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOMAIN_EXISTS:
+      reason = "STATUS_DOMAIN_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOMAIN_LIMIT_EXCEEDED:
+      reason = "STATUS_DOMAIN_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OPLOCK_NOT_GRANTED:
+      reason = "STATUS_OPLOCK_NOT_GRANTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_OPLOCK_PROTOCOL:
+      reason = "STATUS_INVALID_OPLOCK_PROTOCOL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_CORRUPTION:
+      reason = "STATUS_INTERNAL_DB_CORRUPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTERNAL_ERROR:
+      reason = "STATUS_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GENERIC_NOT_MAPPED:
+      reason = "STATUS_GENERIC_NOT_MAPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_DESCRIPTOR_FORMAT:
+      reason = "STATUS_BAD_DESCRIPTOR_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_USER_BUFFER:
+      reason = "STATUS_INVALID_USER_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNEXPECTED_IO_ERROR:
+      reason = "STATUS_UNEXPECTED_IO_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_CREATE_ERR:
+      reason = "STATUS_UNEXPECTED_MM_CREATE_ERR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_MAP_ERROR:
+      reason = "STATUS_UNEXPECTED_MM_MAP_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_EXTEND_ERR:
+      reason = "STATUS_UNEXPECTED_MM_EXTEND_ERR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_LOGON_PROCESS:
+      reason = "STATUS_NOT_LOGON_PROCESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_EXISTS:
+      reason = "STATUS_LOGON_SESSION_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_1:
+      reason = "STATUS_INVALID_PARAMETER_1";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_2:
+      reason = "STATUS_INVALID_PARAMETER_2";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_3:
+      reason = "STATUS_INVALID_PARAMETER_3";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_4:
+      reason = "STATUS_INVALID_PARAMETER_4";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_5:
+      reason = "STATUS_INVALID_PARAMETER_5";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_6:
+      reason = "STATUS_INVALID_PARAMETER_6";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_7:
+      reason = "STATUS_INVALID_PARAMETER_7";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_8:
+      reason = "STATUS_INVALID_PARAMETER_8";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_9:
+      reason = "STATUS_INVALID_PARAMETER_9";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_10:
+      reason = "STATUS_INVALID_PARAMETER_10";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_11:
+      reason = "STATUS_INVALID_PARAMETER_11";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_12:
+      reason = "STATUS_INVALID_PARAMETER_12";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REDIRECTOR_NOT_STARTED:
+      reason = "STATUS_REDIRECTOR_NOT_STARTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REDIRECTOR_STARTED:
+      reason = "STATUS_REDIRECTOR_STARTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW:
+      reason = "STATUS_STACK_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_PACKAGE:
+      reason = "STATUS_NO_SUCH_PACKAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_FUNCTION_TABLE:
+      reason = "STATUS_BAD_FUNCTION_TABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VARIABLE_NOT_FOUND:
+      reason = "STATUS_VARIABLE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_EMPTY:
+      reason = "STATUS_DIRECTORY_NOT_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_CORRUPT_ERROR:
+      reason = "STATUS_FILE_CORRUPT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_A_DIRECTORY:
+      reason = "STATUS_NOT_A_DIRECTORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_LOGON_SESSION_STATE:
+      reason = "STATUS_BAD_LOGON_SESSION_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_COLLISION:
+      reason = "STATUS_LOGON_SESSION_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NAME_TOO_LONG:
+      reason = "STATUS_NAME_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILES_OPEN:
+      reason = "STATUS_FILES_OPEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_IN_USE:
+      reason = "STATUS_CONNECTION_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MESSAGE_NOT_FOUND:
+      reason = "STATUS_MESSAGE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROCESS_IS_TERMINATING:
+      reason = "STATUS_PROCESS_IS_TERMINATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_TYPE:
+      reason = "STATUS_INVALID_LOGON_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_GUID_TRANSLATION:
+      reason = "STATUS_NO_GUID_TRANSLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_IMPERSONATE:
+      reason = "STATUS_CANNOT_IMPERSONATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED:
+      reason = "STATUS_IMAGE_ALREADY_LOADED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_PRESENT:
+      reason = "STATUS_ABIOS_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_LID_NOT_EXIST:
+      reason = "STATUS_ABIOS_LID_NOT_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_LID_ALREADY_OWNED:
+      reason = "STATUS_ABIOS_LID_ALREADY_OWNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_LID_OWNER:
+      reason = "STATUS_ABIOS_NOT_LID_OWNER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_COMMAND:
+      reason = "STATUS_ABIOS_INVALID_COMMAND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_LID:
+      reason = "STATUS_ABIOS_INVALID_LID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE:
+      reason = "STATUS_ABIOS_SELECTOR_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_SELECTOR:
+      reason = "STATUS_ABIOS_INVALID_SELECTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_LDT:
+      reason = "STATUS_NO_LDT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LDT_SIZE:
+      reason = "STATUS_INVALID_LDT_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LDT_OFFSET:
+      reason = "STATUS_INVALID_LDT_OFFSET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LDT_DESCRIPTOR:
+      reason = "STATUS_INVALID_LDT_DESCRIPTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NE_FORMAT:
+      reason = "STATUS_INVALID_IMAGE_NE_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RXACT_INVALID_STATE:
+      reason = "STATUS_RXACT_INVALID_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_FAILURE:
+      reason = "STATUS_RXACT_COMMIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MAPPED_FILE_SIZE_ZERO:
+      reason = "STATUS_MAPPED_FILE_SIZE_ZERO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_OPENED_FILES:
+      reason = "STATUS_TOO_MANY_OPENED_FILES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANCELLED:
+      reason = "STATUS_CANCELLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_DELETE:
+      reason = "STATUS_CANNOT_DELETE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_COMPUTER_NAME:
+      reason = "STATUS_INVALID_COMPUTER_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_DELETED:
+      reason = "STATUS_FILE_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPECIAL_ACCOUNT:
+      reason = "STATUS_SPECIAL_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPECIAL_GROUP:
+      reason = "STATUS_SPECIAL_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPECIAL_USER:
+      reason = "STATUS_SPECIAL_USER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMBERS_PRIMARY_GROUP:
+      reason = "STATUS_MEMBERS_PRIMARY_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_CLOSED:
+      reason = "STATUS_FILE_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_THREADS:
+      reason = "STATUS_TOO_MANY_THREADS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_PROCESS:
+      reason = "STATUS_THREAD_NOT_IN_PROCESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOKEN_ALREADY_IN_USE:
+      reason = "STATUS_TOKEN_ALREADY_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA_EXCEEDED:
+      reason = "STATUS_PAGEFILE_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COMMITMENT_LIMIT:
+      reason = "STATUS_COMMITMENT_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_LE_FORMAT:
+      reason = "STATUS_INVALID_IMAGE_LE_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NOT_MZ:
+      reason = "STATUS_INVALID_IMAGE_NOT_MZ";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_PROTECT:
+      reason = "STATUS_INVALID_IMAGE_PROTECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_16:
+      reason = "STATUS_INVALID_IMAGE_WIN_16";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_SERVER_CONFLICT:
+      reason = "STATUS_LOGON_SERVER_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TIME_DIFFERENCE_AT_DC:
+      reason = "STATUS_TIME_DIFFERENCE_AT_DC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYNCHRONIZATION_REQUIRED:
+      reason = "STATUS_SYNCHRONIZATION_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DLL_NOT_FOUND:
+      reason = "STATUS_DLL_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OPEN_FAILED:
+      reason = "STATUS_OPEN_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_PRIVILEGE_FAILED:
+      reason = "STATUS_IO_PRIVILEGE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ORDINAL_NOT_FOUND:
+      reason = "STATUS_ORDINAL_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENTRYPOINT_NOT_FOUND:
+      reason = "STATUS_ENTRYPOINT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONTROL_C_EXIT:
+      reason = "STATUS_CONTROL_C_EXIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOCAL_DISCONNECT:
+      reason = "STATUS_LOCAL_DISCONNECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_DISCONNECT:
+      reason = "STATUS_REMOTE_DISCONNECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_RESOURCES:
+      reason = "STATUS_REMOTE_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LINK_FAILED:
+      reason = "STATUS_LINK_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LINK_TIMEOUT:
+      reason = "STATUS_LINK_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_CONNECTION:
+      reason = "STATUS_INVALID_CONNECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS:
+      reason = "STATUS_INVALID_ADDRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED:
+      reason = "STATUS_DLL_INIT_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MISSING_SYSTEMFILE:
+      reason = "STATUS_MISSING_SYSTEMFILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNHANDLED_EXCEPTION:
+      reason = "STATUS_UNHANDLED_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_INIT_FAILURE:
+      reason = "STATUS_APP_INIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PAGEFILE_CREATE_FAILED:
+      reason = "STATUS_PAGEFILE_CREATE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_PAGEFILE:
+      reason = "STATUS_NO_PAGEFILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LEVEL:
+      reason = "STATUS_INVALID_LEVEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD_CORE:
+      reason = "STATUS_WRONG_PASSWORD_CORE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_FLOAT_CONTEXT:
+      reason = "STATUS_ILLEGAL_FLOAT_CONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PIPE_BROKEN:
+      reason = "STATUS_PIPE_BROKEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REGISTRY_CORRUPT:
+      reason = "STATUS_REGISTRY_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REGISTRY_IO_FAILED:
+      reason = "STATUS_REGISTRY_IO_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_EVENT_PAIR:
+      reason = "STATUS_NO_EVENT_PAIR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_VOLUME:
+      reason = "STATUS_UNRECOGNIZED_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERIAL_NO_DEVICE_INITED:
+      reason = "STATUS_SERIAL_NO_DEVICE_INITED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_ALIAS:
+      reason = "STATUS_NO_SUCH_ALIAS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_ALIAS:
+      reason = "STATUS_MEMBER_NOT_IN_ALIAS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MEMBER_IN_ALIAS:
+      reason = "STATUS_MEMBER_IN_ALIAS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALIAS_EXISTS:
+      reason = "STATUS_ALIAS_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_NOT_GRANTED:
+      reason = "STATUS_LOGON_NOT_GRANTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_SECRETS:
+      reason = "STATUS_TOO_MANY_SECRETS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECRET_TOO_LONG:
+      reason = "STATUS_SECRET_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_ERROR:
+      reason = "STATUS_INTERNAL_DB_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FULLSCREEN_MODE:
+      reason = "STATUS_FULLSCREEN_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_CONTEXT_IDS:
+      reason = "STATUS_TOO_MANY_CONTEXT_IDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGON_TYPE_NOT_GRANTED:
+      reason = "STATUS_LOGON_TYPE_NOT_GRANTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_REGISTRY_FILE:
+      reason = "STATUS_NOT_REGISTRY_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NT_CROSS_ENCRYPTION_REQUIRED:
+      reason = "STATUS_NT_CROSS_ENCRYPTION_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOMAIN_CTRLR_CONFIG_ERROR:
+      reason = "STATUS_DOMAIN_CTRLR_CONFIG_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FT_MISSING_MEMBER:
+      reason = "STATUS_FT_MISSING_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILL_FORMED_SERVICE_ENTRY:
+      reason = "STATUS_ILL_FORMED_SERVICE_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_CHARACTER:
+      reason = "STATUS_ILLEGAL_CHARACTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNMAPPABLE_CHARACTER:
+      reason = "STATUS_UNMAPPABLE_CHARACTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNDEFINED_CHARACTER:
+      reason = "STATUS_UNDEFINED_CHARACTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOPPY_VOLUME:
+      reason = "STATUS_FLOPPY_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOPPY_ID_MARK_NOT_FOUND:
+      reason = "STATUS_FLOPPY_ID_MARK_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOPPY_WRONG_CYLINDER:
+      reason = "STATUS_FLOPPY_WRONG_CYLINDER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOPPY_UNKNOWN_ERROR:
+      reason = "STATUS_FLOPPY_UNKNOWN_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOPPY_BAD_REGISTERS:
+      reason = "STATUS_FLOPPY_BAD_REGISTERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_RECALIBRATE_FAILED:
+      reason = "STATUS_DISK_RECALIBRATE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_OPERATION_FAILED:
+      reason = "STATUS_DISK_OPERATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_RESET_FAILED:
+      reason = "STATUS_DISK_RESET_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHARED_IRQ_BUSY:
+      reason = "STATUS_SHARED_IRQ_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FT_ORPHANING:
+      reason = "STATUS_FT_ORPHANING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT:
+      reason = "STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PARTITION_FAILURE:
+      reason = "STATUS_PARTITION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_BLOCK_LENGTH:
+      reason = "STATUS_INVALID_BLOCK_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_PARTITIONED:
+      reason = "STATUS_DEVICE_NOT_PARTITIONED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNABLE_TO_LOCK_MEDIA:
+      reason = "STATUS_UNABLE_TO_LOCK_MEDIA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNABLE_TO_UNLOAD_MEDIA:
+      reason = "STATUS_UNABLE_TO_UNLOAD_MEDIA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EOM_OVERFLOW:
+      reason = "STATUS_EOM_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_MEDIA:
+      reason = "STATUS_NO_MEDIA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SUCH_MEMBER:
+      reason = "STATUS_NO_SUCH_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_MEMBER:
+      reason = "STATUS_INVALID_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KEY_DELETED:
+      reason = "STATUS_KEY_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_LOG_SPACE:
+      reason = "STATUS_NO_LOG_SPACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_SIDS:
+      reason = "STATUS_TOO_MANY_SIDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LM_CROSS_ENCRYPTION_REQUIRED:
+      reason = "STATUS_LM_CROSS_ENCRYPTION_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KEY_HAS_CHILDREN:
+      reason = "STATUS_KEY_HAS_CHILDREN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CHILD_MUST_BE_VOLATILE:
+      reason = "STATUS_CHILD_MUST_BE_VOLATILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_CONFIGURATION_ERROR:
+      reason = "STATUS_DEVICE_CONFIGURATION_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_INTERNAL_ERROR:
+      reason = "STATUS_DRIVER_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_STATE:
+      reason = "STATUS_INVALID_DEVICE_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_DEVICE_ERROR:
+      reason = "STATUS_IO_DEVICE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_PROTOCOL_ERROR:
+      reason = "STATUS_DEVICE_PROTOCOL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BACKUP_CONTROLLER:
+      reason = "STATUS_BACKUP_CONTROLLER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_FILE_FULL:
+      reason = "STATUS_LOG_FILE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_LATE:
+      reason = "STATUS_TOO_LATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_TRUST_LSA_SECRET:
+      reason = "STATUS_NO_TRUST_LSA_SECRET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_TRUST_SAM_ACCOUNT:
+      reason = "STATUS_NO_TRUST_SAM_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRUSTED_DOMAIN_FAILURE:
+      reason = "STATUS_TRUSTED_DOMAIN_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRUSTED_RELATIONSHIP_FAILURE:
+      reason = "STATUS_TRUSTED_RELATIONSHIP_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CORRUPT:
+      reason = "STATUS_EVENTLOG_FILE_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EVENTLOG_CANT_START:
+      reason = "STATUS_EVENTLOG_CANT_START";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRUST_FAILURE:
+      reason = "STATUS_TRUST_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUTANT_LIMIT_EXCEEDED:
+      reason = "STATUS_MUTANT_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETLOGON_NOT_STARTED:
+      reason = "STATUS_NETLOGON_NOT_STARTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCOUNT_EXPIRED:
+      reason = "STATUS_ACCOUNT_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_POSSIBLE_DEADLOCK:
+      reason = "STATUS_POSSIBLE_DEADLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_CREDENTIAL_CONFLICT:
+      reason = "STATUS_NETWORK_CREDENTIAL_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_SESSION_LIMIT:
+      reason = "STATUS_REMOTE_SESSION_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CHANGED:
+      reason = "STATUS_EVENTLOG_FILE_CHANGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT:
+      reason = "STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT:
+      reason = "STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT:
+      reason = "STATUS_NOLOGON_SERVER_TRUST_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOMAIN_TRUST_INCONSISTENT:
+      reason = "STATUS_DOMAIN_TRUST_INCONSISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FS_DRIVER_REQUIRED:
+      reason = "STATUS_FS_DRIVER_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED_AS_DLL:
+      reason = "STATUS_IMAGE_ALREADY_LOADED_AS_DLL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING:
+      reason = "STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME:
+      reason = "STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECURITY_STREAM_IS_INCONSISTENT:
+      reason = "STATUS_SECURITY_STREAM_IS_INCONSISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_RANGE:
+      reason = "STATUS_INVALID_LOCK_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ACE_CONDITION:
+      reason = "STATUS_INVALID_ACE_CONDITION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT:
+      reason = "STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOTIFICATION_GUID_ALREADY_DEFINED:
+      reason = "STATUS_NOTIFICATION_GUID_ALREADY_DEFINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_EXCEPTION_HANDLER:
+      reason = "STATUS_INVALID_EXCEPTION_HANDLER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DUPLICATE_PRIVILEGES:
+      reason = "STATUS_DUPLICATE_PRIVILEGES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_ALLOWED_ON_SYSTEM_FILE:
+      reason = "STATUS_NOT_ALLOWED_ON_SYSTEM_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REPAIR_NEEDED:
+      reason = "STATUS_REPAIR_NEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_QUOTA_NOT_ENABLED:
+      reason = "STATUS_QUOTA_NOT_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_APPLICATION_PACKAGE:
+      reason = "STATUS_NO_APPLICATION_PACKAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_OPEN_RESTRICTION:
+      reason = "STATUS_NETWORK_OPEN_RESTRICTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_USER_SESSION_KEY:
+      reason = "STATUS_NO_USER_SESSION_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_USER_SESSION_DELETED:
+      reason = "STATUS_USER_SESSION_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_LANG_NOT_FOUND:
+      reason = "STATUS_RESOURCE_LANG_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFF_SERVER_RESOURCES:
+      reason = "STATUS_INSUFF_SERVER_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_BUFFER_SIZE:
+      reason = "STATUS_INVALID_BUFFER_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_COMPONENT:
+      reason = "STATUS_INVALID_ADDRESS_COMPONENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_WILDCARD:
+      reason = "STATUS_INVALID_ADDRESS_WILDCARD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_ADDRESSES:
+      reason = "STATUS_TOO_MANY_ADDRESSES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_EXISTS:
+      reason = "STATUS_ADDRESS_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADDRESS_CLOSED:
+      reason = "STATUS_ADDRESS_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_DISCONNECTED:
+      reason = "STATUS_CONNECTION_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_RESET:
+      reason = "STATUS_CONNECTION_RESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_NODES:
+      reason = "STATUS_TOO_MANY_NODES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_ABORTED:
+      reason = "STATUS_TRANSACTION_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_TIMED_OUT:
+      reason = "STATUS_TRANSACTION_TIMED_OUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_RELEASE:
+      reason = "STATUS_TRANSACTION_NO_RELEASE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_MATCH:
+      reason = "STATUS_TRANSACTION_NO_MATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONDED:
+      reason = "STATUS_TRANSACTION_RESPONDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_ID:
+      reason = "STATUS_TRANSACTION_INVALID_ID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_TYPE:
+      reason = "STATUS_TRANSACTION_INVALID_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SERVER_SESSION:
+      reason = "STATUS_NOT_SERVER_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_CLIENT_SESSION:
+      reason = "STATUS_NOT_CLIENT_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_LOAD_REGISTRY_FILE:
+      reason = "STATUS_CANNOT_LOAD_REGISTRY_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEBUG_ATTACH_FAILED:
+      reason = "STATUS_DEBUG_ATTACH_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_PROCESS_TERMINATED:
+      reason = "STATUS_SYSTEM_PROCESS_TERMINATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATA_NOT_ACCEPTED:
+      reason = "STATUS_DATA_NOT_ACCEPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_BROWSER_SERVERS_FOUND:
+      reason = "STATUS_NO_BROWSER_SERVERS_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VDM_HARD_ERROR:
+      reason = "STATUS_VDM_HARD_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_CANCEL_TIMEOUT:
+      reason = "STATUS_DRIVER_CANCEL_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REPLY_MESSAGE_MISMATCH:
+      reason = "STATUS_REPLY_MESSAGE_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MAPPED_ALIGNMENT:
+      reason = "STATUS_MAPPED_ALIGNMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_CHECKSUM_MISMATCH:
+      reason = "STATUS_IMAGE_CHECKSUM_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA:
+      reason = "STATUS_LOST_WRITEBEHIND_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLIENT_SERVER_PARAMETERS_INVALID:
+      reason = "STATUS_CLIENT_SERVER_PARAMETERS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PASSWORD_MUST_CHANGE:
+      reason = "STATUS_PASSWORD_MUST_CHANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_FOUND:
+      reason = "STATUS_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_TINY_STREAM:
+      reason = "STATUS_NOT_TINY_STREAM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RECOVERY_FAILURE:
+      reason = "STATUS_RECOVERY_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW_READ:
+      reason = "STATUS_STACK_OVERFLOW_READ";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FAIL_CHECK:
+      reason = "STATUS_FAIL_CHECK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DUPLICATE_OBJECTID:
+      reason = "STATUS_DUPLICATE_OBJECTID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECTID_EXISTS:
+      reason = "STATUS_OBJECTID_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONVERT_TO_LARGE:
+      reason = "STATUS_CONVERT_TO_LARGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RETRY:
+      reason = "STATUS_RETRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FOUND_OUT_OF_SCOPE:
+      reason = "STATUS_FOUND_OUT_OF_SCOPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALLOCATE_BUCKET:
+      reason = "STATUS_ALLOCATE_BUCKET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROPSET_NOT_FOUND:
+      reason = "STATUS_PROPSET_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MARSHALL_OVERFLOW:
+      reason = "STATUS_MARSHALL_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_VARIANT:
+      reason = "STATUS_INVALID_VARIANT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOMAIN_CONTROLLER_NOT_FOUND:
+      reason = "STATUS_DOMAIN_CONTROLLER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCOUNT_LOCKED_OUT:
+      reason = "STATUS_ACCOUNT_LOCKED_OUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HANDLE_NOT_CLOSABLE:
+      reason = "STATUS_HANDLE_NOT_CLOSABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_REFUSED:
+      reason = "STATUS_CONNECTION_REFUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRACEFUL_DISCONNECT:
+      reason = "STATUS_GRACEFUL_DISCONNECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_ASSOCIATED:
+      reason = "STATUS_ADDRESS_ALREADY_ASSOCIATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADDRESS_NOT_ASSOCIATED:
+      reason = "STATUS_ADDRESS_NOT_ASSOCIATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_INVALID:
+      reason = "STATUS_CONNECTION_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_ACTIVE:
+      reason = "STATUS_CONNECTION_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_UNREACHABLE:
+      reason = "STATUS_NETWORK_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HOST_UNREACHABLE:
+      reason = "STATUS_HOST_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROTOCOL_UNREACHABLE:
+      reason = "STATUS_PROTOCOL_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_UNREACHABLE:
+      reason = "STATUS_PORT_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REQUEST_ABORTED:
+      reason = "STATUS_REQUEST_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_ABORTED:
+      reason = "STATUS_CONNECTION_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_COMPRESSION_BUFFER:
+      reason = "STATUS_BAD_COMPRESSION_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_USER_MAPPED_FILE:
+      reason = "STATUS_USER_MAPPED_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUDIT_FAILED:
+      reason = "STATUS_AUDIT_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TIMER_RESOLUTION_NOT_SET:
+      reason = "STATUS_TIMER_RESOLUTION_NOT_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONNECTION_COUNT_LIMIT:
+      reason = "STATUS_CONNECTION_COUNT_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGIN_TIME_RESTRICTION:
+      reason = "STATUS_LOGIN_TIME_RESTRICTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOGIN_WKSTA_RESTRICTION:
+      reason = "STATUS_LOGIN_WKSTA_RESTRICTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_MP_UP_MISMATCH:
+      reason = "STATUS_IMAGE_MP_UP_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_LOGON_INFO:
+      reason = "STATUS_INSUFFICIENT_LOGON_INFO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_DLL_ENTRYPOINT:
+      reason = "STATUS_BAD_DLL_ENTRYPOINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_SERVICE_ENTRYPOINT:
+      reason = "STATUS_BAD_SERVICE_ENTRYPOINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LPC_REPLY_LOST:
+      reason = "STATUS_LPC_REPLY_LOST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT1:
+      reason = "STATUS_IP_ADDRESS_CONFLICT1";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT2:
+      reason = "STATUS_IP_ADDRESS_CONFLICT2";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REGISTRY_QUOTA_LIMIT:
+      reason = "STATUS_REGISTRY_QUOTA_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PATH_NOT_COVERED:
+      reason = "STATUS_PATH_NOT_COVERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_CALLBACK_ACTIVE:
+      reason = "STATUS_NO_CALLBACK_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LICENSE_QUOTA_EXCEEDED:
+      reason = "STATUS_LICENSE_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PWD_TOO_SHORT:
+      reason = "STATUS_PWD_TOO_SHORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PWD_TOO_RECENT:
+      reason = "STATUS_PWD_TOO_RECENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PWD_HISTORY_CONFLICT:
+      reason = "STATUS_PWD_HISTORY_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PLUGPLAY_NO_DEVICE:
+      reason = "STATUS_PLUGPLAY_NO_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_COMPRESSION:
+      reason = "STATUS_UNSUPPORTED_COMPRESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_HW_PROFILE:
+      reason = "STATUS_INVALID_HW_PROFILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PLUGPLAY_DEVICE_PATH:
+      reason = "STATUS_INVALID_PLUGPLAY_DEVICE_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_ORDINAL_NOT_FOUND:
+      reason = "STATUS_DRIVER_ORDINAL_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND:
+      reason = "STATUS_DRIVER_ENTRYPOINT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_NOT_OWNED:
+      reason = "STATUS_RESOURCE_NOT_OWNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_LINKS:
+      reason = "STATUS_TOO_MANY_LINKS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_QUOTA_LIST_INCONSISTENT:
+      reason = "STATUS_QUOTA_LIST_INCONSISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_IS_OFFLINE:
+      reason = "STATUS_FILE_IS_OFFLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EVALUATION_EXPIRATION:
+      reason = "STATUS_EVALUATION_EXPIRATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_DLL_RELOCATION:
+      reason = "STATUS_ILLEGAL_DLL_RELOCATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LICENSE_VIOLATION:
+      reason = "STATUS_LICENSE_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED_LOGOFF:
+      reason = "STATUS_DLL_INIT_FAILED_LOGOFF";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_UNABLE_TO_LOAD:
+      reason = "STATUS_DRIVER_UNABLE_TO_LOAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DFS_UNAVAILABLE:
+      reason = "STATUS_DFS_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLUME_DISMOUNTED:
+      reason = "STATUS_VOLUME_DISMOUNTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WX86_INTERNAL_ERROR:
+      reason = "STATUS_WX86_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WX86_FLOAT_STACK_CHECK:
+      reason = "STATUS_WX86_FLOAT_STACK_CHECK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VALIDATE_CONTINUE:
+      reason = "STATUS_VALIDATE_CONTINUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_MATCH:
+      reason = "STATUS_NO_MATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_MORE_MATCHES:
+      reason = "STATUS_NO_MORE_MATCHES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_A_REPARSE_POINT:
+      reason = "STATUS_NOT_A_REPARSE_POINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_INVALID:
+      reason = "STATUS_IO_REPARSE_TAG_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_MISMATCH:
+      reason = "STATUS_IO_REPARSE_TAG_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_REPARSE_DATA_INVALID:
+      reason = "STATUS_IO_REPARSE_DATA_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_NOT_HANDLED:
+      reason = "STATUS_IO_REPARSE_TAG_NOT_HANDLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PWD_TOO_LONG:
+      reason = "STATUS_PWD_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STOWED_EXCEPTION:
+      reason = "STATUS_STOWED_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_NOT_RESOLVED:
+      reason = "STATUS_REPARSE_POINT_NOT_RESOLVED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DIRECTORY_IS_A_REPARSE_POINT:
+      reason = "STATUS_DIRECTORY_IS_A_REPARSE_POINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RANGE_LIST_CONFLICT:
+      reason = "STATUS_RANGE_LIST_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SOURCE_ELEMENT_EMPTY:
+      reason = "STATUS_SOURCE_ELEMENT_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DESTINATION_ELEMENT_FULL:
+      reason = "STATUS_DESTINATION_ELEMENT_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ILLEGAL_ELEMENT_ADDRESS:
+      reason = "STATUS_ILLEGAL_ELEMENT_ADDRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MAGAZINE_NOT_PRESENT:
+      reason = "STATUS_MAGAZINE_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REINITIALIZATION_NEEDED:
+      reason = "STATUS_REINITIALIZATION_NEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENCRYPTION_FAILED:
+      reason = "STATUS_ENCRYPTION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DECRYPTION_FAILED:
+      reason = "STATUS_DECRYPTION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RANGE_NOT_FOUND:
+      reason = "STATUS_RANGE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_RECOVERY_POLICY:
+      reason = "STATUS_NO_RECOVERY_POLICY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_EFS:
+      reason = "STATUS_NO_EFS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_EFS:
+      reason = "STATUS_WRONG_EFS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_USER_KEYS:
+      reason = "STATUS_NO_USER_KEYS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_NOT_ENCRYPTED:
+      reason = "STATUS_FILE_NOT_ENCRYPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_EXPORT_FORMAT:
+      reason = "STATUS_NOT_EXPORT_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_ENCRYPTED:
+      reason = "STATUS_FILE_ENCRYPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_GUID_NOT_FOUND:
+      reason = "STATUS_WMI_GUID_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_INSTANCE_NOT_FOUND:
+      reason = "STATUS_WMI_INSTANCE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_ITEMID_NOT_FOUND:
+      reason = "STATUS_WMI_ITEMID_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_TRY_AGAIN:
+      reason = "STATUS_WMI_TRY_AGAIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHARED_POLICY:
+      reason = "STATUS_SHARED_POLICY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_POLICY_OBJECT_NOT_FOUND:
+      reason = "STATUS_POLICY_OBJECT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_POLICY_ONLY_IN_DS:
+      reason = "STATUS_POLICY_ONLY_IN_DS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_UPGRADED:
+      reason = "STATUS_VOLUME_NOT_UPGRADED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_NOT_ACTIVE:
+      reason = "STATUS_REMOTE_STORAGE_NOT_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_MEDIA_ERROR:
+      reason = "STATUS_REMOTE_STORAGE_MEDIA_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_TRACKING_SERVICE:
+      reason = "STATUS_NO_TRACKING_SERVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERVER_SID_MISMATCH:
+      reason = "STATUS_SERVER_SID_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_ATTRIBUTE_OR_VALUE:
+      reason = "STATUS_DS_NO_ATTRIBUTE_OR_VALUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_INVALID_ATTRIBUTE_SYNTAX:
+      reason = "STATUS_DS_INVALID_ATTRIBUTE_SYNTAX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED:
+      reason = "STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS:
+      reason = "STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_BUSY:
+      reason = "STATUS_DS_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_UNAVAILABLE:
+      reason = "STATUS_DS_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_RIDS_ALLOCATED:
+      reason = "STATUS_DS_NO_RIDS_ALLOCATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_MORE_RIDS:
+      reason = "STATUS_DS_NO_MORE_RIDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_INCORRECT_ROLE_OWNER:
+      reason = "STATUS_DS_INCORRECT_ROLE_OWNER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_INIT_ERROR:
+      reason = "STATUS_DS_RIDMGR_INIT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_OBJ_CLASS_VIOLATION:
+      reason = "STATUS_DS_OBJ_CLASS_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_NON_LEAF:
+      reason = "STATUS_DS_CANT_ON_NON_LEAF";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_RDN:
+      reason = "STATUS_DS_CANT_ON_RDN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_OBJ_CLASS:
+      reason = "STATUS_DS_CANT_MOD_OBJ_CLASS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CROSS_DOM_MOVE_FAILED:
+      reason = "STATUS_DS_CROSS_DOM_MOVE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GC_NOT_AVAILABLE:
+      reason = "STATUS_DS_GC_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DIRECTORY_SERVICE_REQUIRED:
+      reason = "STATUS_DIRECTORY_SERVICE_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REPARSE_ATTRIBUTE_CONFLICT:
+      reason = "STATUS_REPARSE_ATTRIBUTE_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_ENABLE_DENY_ONLY:
+      reason = "STATUS_CANT_ENABLE_DENY_ONLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_FAULTS:
+      reason = "STATUS_FLOAT_MULTIPLE_FAULTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_TRAPS:
+      reason = "STATUS_FLOAT_MULTIPLE_TRAPS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_REMOVED:
+      reason = "STATUS_DEVICE_REMOVED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_JOURNAL_DELETE_IN_PROGRESS:
+      reason = "STATUS_JOURNAL_DELETE_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_JOURNAL_NOT_ACTIVE:
+      reason = "STATUS_JOURNAL_NOT_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOINTERFACE:
+      reason = "STATUS_NOINTERFACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_DISABLED:
+      reason = "STATUS_DS_RIDMGR_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_ADMIN_LIMIT_EXCEEDED:
+      reason = "STATUS_DS_ADMIN_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_SLEEP:
+      reason = "STATUS_DRIVER_FAILED_SLEEP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUTUAL_AUTHENTICATION_FAILED:
+      reason = "STATUS_MUTUAL_AUTHENTICATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_SYSTEM_FILE:
+      reason = "STATUS_CORRUPT_SYSTEM_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT_ERROR:
+      reason = "STATUS_DATATYPE_MISALIGNMENT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_READ_ONLY:
+      reason = "STATUS_WMI_READ_ONLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_SET_FAILURE:
+      reason = "STATUS_WMI_SET_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COMMITMENT_MINIMUM:
+      reason = "STATUS_COMMITMENT_MINIMUM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REG_NAT_CONSUMPTION:
+      reason = "STATUS_REG_NAT_CONSUMPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSPORT_FULL:
+      reason = "STATUS_TRANSPORT_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE:
+      reason = "STATUS_DS_SAM_INIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ONLY_IF_CONNECTED:
+      reason = "STATUS_ONLY_IF_CONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_SENSITIVE_GROUP_VIOLATION:
+      reason = "STATUS_DS_SENSITIVE_GROUP_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_RESTART_ENUMERATION:
+      reason = "STATUS_PNP_RESTART_ENUMERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_JOURNAL_ENTRY_DELETED:
+      reason = "STATUS_JOURNAL_ENTRY_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_PRIMARYGROUPID:
+      reason = "STATUS_DS_CANT_MOD_PRIMARYGROUPID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_IMAGE_BAD_SIGNATURE:
+      reason = "STATUS_SYSTEM_IMAGE_BAD_SIGNATURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_REBOOT_REQUIRED:
+      reason = "STATUS_PNP_REBOOT_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_POWER_STATE_INVALID:
+      reason = "STATUS_POWER_STATE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_INVALID_GROUP_TYPE:
+      reason = "STATUS_DS_INVALID_GROUP_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN:
+      reason = "STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN:
+      reason = "STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER:
+      reason = "STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER:
+      reason = "STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER:
+      reason = "STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER:
+      reason = "STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER:
+      reason = "STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_HAVE_PRIMARY_MEMBERS:
+      reason = "STATUS_DS_HAVE_PRIMARY_MEMBERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_NOT_SUPPORTED:
+      reason = "STATUS_WMI_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_POWER:
+      reason = "STATUS_INSUFFICIENT_POWER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_PASSWORD:
+      reason = "STATUS_SAM_NEED_BOOTKEY_PASSWORD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_FLOPPY:
+      reason = "STATUS_SAM_NEED_BOOTKEY_FLOPPY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_CANT_START:
+      reason = "STATUS_DS_CANT_START";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE:
+      reason = "STATUS_DS_INIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SAM_INIT_FAILURE:
+      reason = "STATUS_SAM_INIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GC_REQUIRED:
+      reason = "STATUS_DS_GC_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY:
+      reason = "STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS:
+      reason = "STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED:
+      reason = "STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MULTIPLE_FAULT_VIOLATION:
+      reason = "STATUS_MULTIPLE_FAULT_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CURRENT_DOMAIN_NOT_ALLOWED:
+      reason = "STATUS_CURRENT_DOMAIN_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_MAKE:
+      reason = "STATUS_CANNOT_MAKE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_SHUTDOWN:
+      reason = "STATUS_SYSTEM_SHUTDOWN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE_CONSOLE:
+      reason = "STATUS_DS_INIT_FAILURE_CONSOLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE_CONSOLE:
+      reason = "STATUS_DS_SAM_INIT_FAILURE_CONSOLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNFINISHED_CONTEXT_DELETED:
+      reason = "STATUS_UNFINISHED_CONTEXT_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_TGT_REPLY:
+      reason = "STATUS_NO_TGT_REPLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECTID_NOT_FOUND:
+      reason = "STATUS_OBJECTID_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_IP_ADDRESSES:
+      reason = "STATUS_NO_IP_ADDRESSES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_CREDENTIAL_HANDLE:
+      reason = "STATUS_WRONG_CREDENTIAL_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CRYPTO_SYSTEM_INVALID:
+      reason = "STATUS_CRYPTO_SYSTEM_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MAX_REFERRALS_EXCEEDED:
+      reason = "STATUS_MAX_REFERRALS_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUST_BE_KDC:
+      reason = "STATUS_MUST_BE_KDC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STRONG_CRYPTO_NOT_SUPPORTED:
+      reason = "STATUS_STRONG_CRYPTO_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_PRINCIPALS:
+      reason = "STATUS_TOO_MANY_PRINCIPALS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_PA_DATA:
+      reason = "STATUS_NO_PA_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PKINIT_NAME_MISMATCH:
+      reason = "STATUS_PKINIT_NAME_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_LOGON_REQUIRED:
+      reason = "STATUS_SMARTCARD_LOGON_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KDC_INVALID_REQUEST:
+      reason = "STATUS_KDC_INVALID_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KDC_UNABLE_TO_REFER:
+      reason = "STATUS_KDC_UNABLE_TO_REFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KDC_UNKNOWN_ETYPE:
+      reason = "STATUS_KDC_UNKNOWN_ETYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHUTDOWN_IN_PROGRESS:
+      reason = "STATUS_SHUTDOWN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERVER_SHUTDOWN_IN_PROGRESS:
+      reason = "STATUS_SERVER_SHUTDOWN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_SBS:
+      reason = "STATUS_NOT_SUPPORTED_ON_SBS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_GUID_DISCONNECTED:
+      reason = "STATUS_WMI_GUID_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_DISABLED:
+      reason = "STATUS_WMI_ALREADY_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_ENABLED:
+      reason = "STATUS_WMI_ALREADY_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MFT_TOO_FRAGMENTED:
+      reason = "STATUS_MFT_TOO_FRAGMENTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COPY_PROTECTION_FAILURE:
+      reason = "STATUS_COPY_PROTECTION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_AUTHENTICATION_FAILURE:
+      reason = "STATUS_CSS_AUTHENTICATION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_PRESENT:
+      reason = "STATUS_CSS_KEY_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_ESTABLISHED:
+      reason = "STATUS_CSS_KEY_NOT_ESTABLISHED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_SCRAMBLED_SECTOR:
+      reason = "STATUS_CSS_SCRAMBLED_SECTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_REGION_MISMATCH:
+      reason = "STATUS_CSS_REGION_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CSS_RESETS_EXHAUSTED:
+      reason = "STATUS_CSS_RESETS_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PASSWORD_CHANGE_REQUIRED:
+      reason = "STATUS_PASSWORD_CHANGE_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PKINIT_FAILURE:
+      reason = "STATUS_PKINIT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_SUBSYSTEM_FAILURE:
+      reason = "STATUS_SMARTCARD_SUBSYSTEM_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_KERB_KEY:
+      reason = "STATUS_NO_KERB_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HOST_DOWN:
+      reason = "STATUS_HOST_DOWN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_PREAUTH:
+      reason = "STATUS_UNSUPPORTED_PREAUTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EFS_ALG_BLOB_TOO_BIG:
+      reason = "STATUS_EFS_ALG_BLOB_TOO_BIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_NOT_SET:
+      reason = "STATUS_PORT_NOT_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEBUGGER_INACTIVE:
+      reason = "STATUS_DEBUGGER_INACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_VERSION_CHECK_FAILURE:
+      reason = "STATUS_DS_VERSION_CHECK_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUDITING_DISABLED:
+      reason = "STATUS_AUDITING_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PRENT4_MACHINE_ACCOUNT:
+      reason = "STATUS_PRENT4_MACHINE_ACCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER:
+      reason = "STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_32:
+      reason = "STATUS_INVALID_IMAGE_WIN_32";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_64:
+      reason = "STATUS_INVALID_IMAGE_WIN_64";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_BINDINGS:
+      reason = "STATUS_BAD_BINDINGS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NETWORK_SESSION_EXPIRED:
+      reason = "STATUS_NETWORK_SESSION_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APPHELP_BLOCK:
+      reason = "STATUS_APPHELP_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALL_SIDS_FILTERED:
+      reason = "STATUS_ALL_SIDS_FILTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SAFE_MODE_DRIVER:
+      reason = "STATUS_NOT_SAFE_MODE_DRIVER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT:
+      reason = "STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PATH:
+      reason = "STATUS_ACCESS_DISABLED_BY_POLICY_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER:
+      reason = "STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_OTHER:
+      reason = "STATUS_ACCESS_DISABLED_BY_POLICY_OTHER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FAILED_DRIVER_ENTRY:
+      reason = "STATUS_FAILED_DRIVER_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_ENUMERATION_ERROR:
+      reason = "STATUS_DEVICE_ENUMERATION_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MOUNT_POINT_NOT_RESOLVED:
+      reason = "STATUS_MOUNT_POINT_NOT_RESOLVED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_OBJECT_PARAMETER:
+      reason = "STATUS_INVALID_DEVICE_OBJECT_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MCA_OCCURED:
+      reason = "STATUS_MCA_OCCURED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED_CRITICAL:
+      reason = "STATUS_DRIVER_BLOCKED_CRITICAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED:
+      reason = "STATUS_DRIVER_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_DATABASE_ERROR:
+      reason = "STATUS_DRIVER_DATABASE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_HIVE_TOO_LARGE:
+      reason = "STATUS_SYSTEM_HIVE_TOO_LARGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMPORT_OF_NON_DLL:
+      reason = "STATUS_INVALID_IMPORT_OF_NON_DLL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SECRETS:
+      reason = "STATUS_NO_SECRETS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY:
+      reason = "STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FAILED_STACK_SWITCH:
+      reason = "STATUS_FAILED_STACK_SWITCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HEAP_CORRUPTION:
+      reason = "STATUS_HEAP_CORRUPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_WRONG_PIN:
+      reason = "STATUS_SMARTCARD_WRONG_PIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_BLOCKED:
+      reason = "STATUS_SMARTCARD_CARD_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED:
+      reason = "STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CARD:
+      reason = "STATUS_SMARTCARD_NO_CARD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEY_CONTAINER:
+      reason = "STATUS_SMARTCARD_NO_KEY_CONTAINER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CERTIFICATE:
+      reason = "STATUS_SMARTCARD_NO_CERTIFICATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEYSET:
+      reason = "STATUS_SMARTCARD_NO_KEYSET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_IO_ERROR:
+      reason = "STATUS_SMARTCARD_IO_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DOWNGRADE_DETECTED:
+      reason = "STATUS_DOWNGRADE_DETECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_REVOKED:
+      reason = "STATUS_SMARTCARD_CERT_REVOKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED:
+      reason = "STATUS_ISSUING_CA_UNTRUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_C:
+      reason = "STATUS_REVOCATION_OFFLINE_C";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PKINIT_CLIENT_FAILURE:
+      reason = "STATUS_PKINIT_CLIENT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_EXPIRED:
+      reason = "STATUS_SMARTCARD_CERT_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_PRIOR_UNLOAD:
+      reason = "STATUS_DRIVER_FAILED_PRIOR_UNLOAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMARTCARD_SILENT_CONTEXT:
+      reason = "STATUS_SMARTCARD_SILENT_CONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PER_USER_TRUST_QUOTA_EXCEEDED:
+      reason = "STATUS_PER_USER_TRUST_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED:
+      reason = "STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED:
+      reason = "STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_NAME_NOT_UNIQUE:
+      reason = "STATUS_DS_NAME_NOT_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_DUPLICATE_ID_FOUND:
+      reason = "STATUS_DS_DUPLICATE_ID_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_GROUP_CONVERSION_ERROR:
+      reason = "STATUS_DS_GROUP_CONVERSION_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLSNAP_PREPARE_HIBERNATE:
+      reason = "STATUS_VOLSNAP_PREPARE_HIBERNATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_USER2USER_REQUIRED:
+      reason = "STATUS_USER2USER_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STACK_BUFFER_OVERRUN:
+      reason = "STATUS_STACK_BUFFER_OVERRUN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_S4U_PROT_SUPPORT:
+      reason = "STATUS_NO_S4U_PROT_SUPPORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CROSSREALM_DELEGATION_FAILURE:
+      reason = "STATUS_CROSSREALM_DELEGATION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_KDC:
+      reason = "STATUS_REVOCATION_OFFLINE_KDC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED_KDC:
+      reason = "STATUS_ISSUING_CA_UNTRUSTED_KDC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KDC_CERT_EXPIRED:
+      reason = "STATUS_KDC_CERT_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_KDC_CERT_REVOKED:
+      reason = "STATUS_KDC_CERT_REVOKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PARAMETER_QUOTA_EXCEEDED:
+      reason = "STATUS_PARAMETER_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HIBERNATION_FAILURE:
+      reason = "STATUS_HIBERNATION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DELAY_LOAD_FAILED:
+      reason = "STATUS_DELAY_LOAD_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUTHENTICATION_FIREWALL_FAILED:
+      reason = "STATUS_AUTHENTICATION_FIREWALL_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VDM_DISALLOWED:
+      reason = "STATUS_VDM_DISALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HUNG_DISPLAY_DRIVER_THREAD:
+      reason = "STATUS_HUNG_DISPLAY_DRIVER_THREAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE:
+      reason = "STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_CRUNTIME_PARAMETER:
+      reason = "STATUS_INVALID_CRUNTIME_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NTLM_BLOCKED:
+      reason = "STATUS_NTLM_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_SRC_SID_EXISTS_IN_FOREST:
+      reason = "STATUS_DS_SRC_SID_EXISTS_IN_FOREST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST:
+      reason = "STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST:
+      reason = "STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_USER_PRINCIPAL_NAME:
+      reason = "STATUS_INVALID_USER_PRINCIPAL_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FATAL_USER_CALLBACK_EXCEPTION:
+      reason = "STATUS_FATAL_USER_CALLBACK_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ASSERTION_FAILURE:
+      reason = "STATUS_ASSERTION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VERIFIER_STOP:
+      reason = "STATUS_VERIFIER_STOP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_POP_STACK:
+      reason = "STATUS_CALLBACK_POP_STACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_DRIVER_BLOCKED:
+      reason = "STATUS_INCOMPATIBLE_DRIVER_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HIVE_UNLOADED:
+      reason = "STATUS_HIVE_UNLOADED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COMPRESSION_DISABLED:
+      reason = "STATUS_COMPRESSION_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_LIMITATION:
+      reason = "STATUS_FILE_SYSTEM_LIMITATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_HASH:
+      reason = "STATUS_INVALID_IMAGE_HASH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_CAPABLE:
+      reason = "STATUS_NOT_CAPABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REQUEST_OUT_OF_SEQUENCE:
+      reason = "STATUS_REQUEST_OUT_OF_SEQUENCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMPLEMENTATION_LIMIT:
+      reason = "STATUS_IMPLEMENTATION_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ELEVATION_REQUIRED:
+      reason = "STATUS_ELEVATION_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SECURITY_CONTEXT:
+      reason = "STATUS_NO_SECURITY_CONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PKU2U_CERT_FAILURE:
+      reason = "STATUS_PKU2U_CERT_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BEYOND_VDL:
+      reason = "STATUS_BEYOND_VDL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENCOUNTERED_WRITE_IN_PROGRESS:
+      reason = "STATUS_ENCOUNTERED_WRITE_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PTE_CHANGED:
+      reason = "STATUS_PTE_CHANGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PURGE_FAILED:
+      reason = "STATUS_PURGE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CRED_REQUIRES_CONFIRMATION:
+      reason = "STATUS_CRED_REQUIRES_CONFIRMATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE:
+      reason = "STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER:
+      reason = "STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE:
+      reason = "STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE:
+      reason = "STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_FILE_NOT_CSE:
+      reason = "STATUS_CS_ENCRYPTION_FILE_NOT_CSE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_LABEL:
+      reason = "STATUS_INVALID_LABEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DRIVER_PROCESS_TERMINATED:
+      reason = "STATUS_DRIVER_PROCESS_TERMINATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AMBIGUOUS_SYSTEM_DEVICE:
+      reason = "STATUS_AMBIGUOUS_SYSTEM_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_DEVICE_NOT_FOUND:
+      reason = "STATUS_SYSTEM_DEVICE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESTART_BOOT_APPLICATION:
+      reason = "STATUS_RESTART_BOOT_APPLICATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_NVRAM_RESOURCES:
+      reason = "STATUS_INSUFFICIENT_NVRAM_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SESSION:
+      reason = "STATUS_INVALID_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_SESSION:
+      reason = "STATUS_THREAD_ALREADY_IN_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_SESSION:
+      reason = "STATUS_THREAD_NOT_IN_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_WEIGHT:
+      reason = "STATUS_INVALID_WEIGHT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REQUEST_PAUSED:
+      reason = "STATUS_REQUEST_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_RANGES_PROCESSED:
+      reason = "STATUS_NO_RANGES_PROCESSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_RESOURCES_EXHAUSTED:
+      reason = "STATUS_DISK_RESOURCES_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NEEDS_REMEDIATION:
+      reason = "STATUS_NEEDS_REMEDIATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_FEATURE_NOT_SUPPORTED:
+      reason = "STATUS_DEVICE_FEATURE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_UNREACHABLE:
+      reason = "STATUS_DEVICE_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_TOKEN:
+      reason = "STATUS_INVALID_TOKEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SERVER_UNAVAILABLE:
+      reason = "STATUS_SERVER_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_NOT_AVAILABLE:
+      reason = "STATUS_FILE_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_INSUFFICIENT_RESOURCES:
+      reason = "STATUS_DEVICE_INSUFFICIENT_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PACKAGE_UPDATING:
+      reason = "STATUS_PACKAGE_UPDATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_READ_FROM_COPY:
+      reason = "STATUS_NOT_READ_FROM_COPY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FT_WRITE_FAILURE:
+      reason = "STATUS_FT_WRITE_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FT_DI_SCAN_REQUIRED:
+      reason = "STATUS_FT_DI_SCAN_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_NOT_EXTERNALLY_BACKED:
+      reason = "STATUS_OBJECT_NOT_EXTERNALLY_BACKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN:
+      reason = "STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DATA_CHECKSUM_ERROR:
+      reason = "STATUS_DATA_CHECKSUM_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INTERMIXED_KERNEL_EA_OPERATION:
+      reason = "STATUS_INTERMIXED_KERNEL_EA_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRIM_READ_ZERO_NOT_SUPPORTED:
+      reason = "STATUS_TRIM_READ_ZERO_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TOO_MANY_SEGMENT_DESCRIPTORS:
+      reason = "STATUS_TOO_MANY_SEGMENT_DESCRIPTORS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_OFFSET_ALIGNMENT:
+      reason = "STATUS_INVALID_OFFSET_ALIGNMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_FIELD_IN_PARAMETER_LIST:
+      reason = "STATUS_INVALID_FIELD_IN_PARAMETER_LIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OPERATION_IN_PROGRESS:
+      reason = "STATUS_OPERATION_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_INITIATOR_TARGET_PATH:
+      reason = "STATUS_INVALID_INITIATOR_TARGET_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SCRUB_DATA_DISABLED:
+      reason = "STATUS_SCRUB_DATA_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_REDUNDANT_STORAGE:
+      reason = "STATUS_NOT_REDUNDANT_STORAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESIDENT_FILE_NOT_SUPPORTED:
+      reason = "STATUS_RESIDENT_FILE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COMPRESSED_FILE_NOT_SUPPORTED:
+      reason = "STATUS_COMPRESSED_FILE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_SUPPORTED:
+      reason = "STATUS_DIRECTORY_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_OPERATION_TIMEOUT:
+      reason = "STATUS_IO_OPERATION_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYSTEM_NEEDS_REMEDIATION:
+      reason = "STATUS_SYSTEM_NEEDS_REMEDIATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN:
+      reason = "STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SHARE_UNAVAILABLE:
+      reason = "STATUS_SHARE_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APISET_NOT_HOSTED:
+      reason = "STATUS_APISET_NOT_HOSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APISET_NOT_PRESENT:
+      reason = "STATUS_APISET_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DEVICE_HARDWARE_ERROR:
+      reason = "STATUS_DEVICE_HARDWARE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_TASK_NAME:
+      reason = "STATUS_INVALID_TASK_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_TASK_INDEX:
+      reason = "STATUS_INVALID_TASK_INDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_TASK:
+      reason = "STATUS_THREAD_ALREADY_IN_TASK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_BYPASS:
+      reason = "STATUS_CALLBACK_BYPASS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_UNDEFINED_SCOPE:
+      reason = "STATUS_UNDEFINED_SCOPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_CAP:
+      reason = "STATUS_INVALID_CAP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_GUI_PROCESS:
+      reason = "STATUS_NOT_GUI_PROCESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FAIL_FAST_EXCEPTION:
+      reason = "STATUS_FAIL_FAST_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_REVOKED:
+      reason = "STATUS_IMAGE_CERT_REVOKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DYNAMIC_CODE_BLOCKED:
+      reason = "STATUS_DYNAMIC_CODE_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_CLOSED:
+      reason = "STATUS_PORT_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MESSAGE_LOST:
+      reason = "STATUS_MESSAGE_LOST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_MESSAGE:
+      reason = "STATUS_INVALID_MESSAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REQUEST_CANCELED:
+      reason = "STATUS_REQUEST_CANCELED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RECURSIVE_DISPATCH:
+      reason = "STATUS_RECURSIVE_DISPATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LPC_RECEIVE_BUFFER_EXPECTED:
+      reason = "STATUS_LPC_RECEIVE_BUFFER_EXPECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LPC_INVALID_CONNECTION_USAGE:
+      reason = "STATUS_LPC_INVALID_CONNECTION_USAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LPC_REQUESTS_NOT_ALLOWED:
+      reason = "STATUS_LPC_REQUESTS_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_IN_USE:
+      reason = "STATUS_RESOURCE_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HARDWARE_MEMORY_ERROR:
+      reason = "STATUS_HARDWARE_MEMORY_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_HANDLE_EXCEPTION:
+      reason = "STATUS_THREADPOOL_HANDLE_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED:
+      reason = "STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED:
+      reason = "STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED:
+      reason = "STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED:
+      reason = "STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASED_DURING_OPERATION:
+      reason = "STATUS_THREADPOOL_RELEASED_DURING_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING:
+      reason = "STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APC_RETURNED_WHILE_IMPERSONATING:
+      reason = "STATUS_APC_RETURNED_WHILE_IMPERSONATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROCESS_IS_PROTECTED:
+      reason = "STATUS_PROCESS_IS_PROTECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MCA_EXCEPTION:
+      reason = "STATUS_MCA_EXCEPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE:
+      reason = "STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SYMLINK_CLASS_DISABLED:
+      reason = "STATUS_SYMLINK_CLASS_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_IDN_NORMALIZATION:
+      reason = "STATUS_INVALID_IDN_NORMALIZATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_UNICODE_TRANSLATION:
+      reason = "STATUS_NO_UNICODE_TRANSLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ALREADY_REGISTERED:
+      reason = "STATUS_ALREADY_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONTEXT_MISMATCH:
+      reason = "STATUS_CONTEXT_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_HAS_COMPLETION_LIST:
+      reason = "STATUS_PORT_ALREADY_HAS_COMPLETION_LIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_PRIORITY:
+      reason = "STATUS_CALLBACK_RETURNED_THREAD_PRIORITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_THREAD:
+      reason = "STATUS_INVALID_THREAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_TRANSACTION:
+      reason = "STATUS_CALLBACK_RETURNED_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LDR_LOCK:
+      reason = "STATUS_CALLBACK_RETURNED_LDR_LOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LANG:
+      reason = "STATUS_CALLBACK_RETURNED_LANG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_PRI_BACK:
+      reason = "STATUS_CALLBACK_RETURNED_PRI_BACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_AFFINITY:
+      reason = "STATUS_CALLBACK_RETURNED_THREAD_AFFINITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_DISABLED:
+      reason = "STATUS_DISK_REPAIR_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_RENAME_IN_PROGRESS:
+      reason = "STATUS_DS_DOMAIN_RENAME_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_QUOTA_EXCEEDED:
+      reason = "STATUS_DISK_QUOTA_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CONTENT_BLOCKED:
+      reason = "STATUS_CONTENT_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_CLUSTERS:
+      reason = "STATUS_BAD_CLUSTERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLUME_DIRTY:
+      reason = "STATUS_VOLUME_DIRTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_UNSUCCESSFUL:
+      reason = "STATUS_DISK_REPAIR_UNSUCCESSFUL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_OVERFULL:
+      reason = "STATUS_CORRUPT_LOG_OVERFULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CORRUPTED:
+      reason = "STATUS_CORRUPT_LOG_CORRUPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UNAVAILABLE:
+      reason = "STATUS_CORRUPT_LOG_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_DELETED_FULL:
+      reason = "STATUS_CORRUPT_LOG_DELETED_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CLEARED:
+      reason = "STATUS_CORRUPT_LOG_CLEARED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ORPHAN_NAME_EXHAUSTED:
+      reason = "STATUS_ORPHAN_NAME_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROACTIVE_SCAN_IN_PROGRESS:
+      reason = "STATUS_PROACTIVE_SCAN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENCRYPTED_IO_NOT_POSSIBLE:
+      reason = "STATUS_ENCRYPTED_IO_NOT_POSSIBLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UPLEVEL_RECORDS:
+      reason = "STATUS_CORRUPT_LOG_UPLEVEL_RECORDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_CHECKED_OUT:
+      reason = "STATUS_FILE_CHECKED_OUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CHECKOUT_REQUIRED:
+      reason = "STATUS_CHECKOUT_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_FILE_TYPE:
+      reason = "STATUS_BAD_FILE_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_TOO_LARGE:
+      reason = "STATUS_FILE_TOO_LARGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FORMS_AUTH_REQUIRED:
+      reason = "STATUS_FORMS_AUTH_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRUS_INFECTED:
+      reason = "STATUS_VIRUS_INFECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRUS_DELETED:
+      reason = "STATUS_VIRUS_DELETED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_MCFG_TABLE:
+      reason = "STATUS_BAD_MCFG_TABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_BREAK_OPLOCK:
+      reason = "STATUS_CANNOT_BREAK_OPLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_KEY:
+      reason = "STATUS_BAD_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BAD_DATA:
+      reason = "STATUS_BAD_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_KEY:
+      reason = "STATUS_NO_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_HANDLE_REVOKED:
+      reason = "STATUS_FILE_HANDLE_REVOKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WOW_ASSERTION:
+      reason = "STATUS_WOW_ASSERTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_SIGNATURE:
+      reason = "STATUS_INVALID_SIGNATURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HMAC_NOT_SUPPORTED:
+      reason = "STATUS_HMAC_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUTH_TAG_MISMATCH:
+      reason = "STATUS_AUTH_TAG_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_STATE_TRANSITION:
+      reason = "STATUS_INVALID_STATE_TRANSITION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_KERNEL_INFO_VERSION:
+      reason = "STATUS_INVALID_KERNEL_INFO_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PEP_INFO_VERSION:
+      reason = "STATUS_INVALID_PEP_INFO_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_QUEUE_OVERFLOW:
+      reason = "STATUS_IPSEC_QUEUE_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ND_QUEUE_OVERFLOW:
+      reason = "STATUS_ND_QUEUE_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HOPLIMIT_EXCEEDED:
+      reason = "STATUS_HOPLIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PROTOCOL_NOT_SUPPORTED:
+      reason = "STATUS_PROTOCOL_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FASTPATH_REJECTED:
+      reason = "STATUS_FASTPATH_REJECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED:
+      reason = "STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR:
+      reason = "STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR:
+      reason = "STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_XML_PARSE_ERROR:
+      reason = "STATUS_XML_PARSE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_XMLDSIG_ERROR:
+      reason = "STATUS_XMLDSIG_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_WRONG_COMPARTMENT:
+      reason = "STATUS_WRONG_COMPARTMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUTHIP_FAILURE:
+      reason = "STATUS_AUTHIP_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS:
+      reason = "STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DS_OID_NOT_FOUND:
+      reason = "STATUS_DS_OID_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INCORRECT_ACCOUNT_TYPE:
+      reason = "STATUS_INCORRECT_ACCOUNT_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HASH_NOT_SUPPORTED:
+      reason = "STATUS_HASH_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HASH_NOT_PRESENT:
+      reason = "STATUS_HASH_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED:
+      reason = "STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GPIO_CLIENT_INFORMATION_INVALID:
+      reason = "STATUS_GPIO_CLIENT_INFORMATION_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GPIO_VERSION_NOT_SUPPORTED:
+      reason = "STATUS_GPIO_VERSION_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GPIO_INVALID_REGISTRATION_PACKET:
+      reason = "STATUS_GPIO_INVALID_REGISTRATION_PACKET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GPIO_OPERATION_DENIED:
+      reason = "STATUS_GPIO_OPERATION_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE:
+      reason = "STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_SWITCH_RUNLEVEL:
+      reason = "STATUS_CANNOT_SWITCH_RUNLEVEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_RUNLEVEL_SETTING:
+      reason = "STATUS_INVALID_RUNLEVEL_SETTING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_TIMEOUT:
+      reason = "STATUS_RUNLEVEL_SWITCH_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT:
+      reason = "STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_IN_PROGRESS:
+      reason = "STATUS_RUNLEVEL_SWITCH_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_APPCONTAINER:
+      reason = "STATUS_NOT_APPCONTAINER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_IN_APPCONTAINER:
+      reason = "STATUS_NOT_SUPPORTED_IN_APPCONTAINER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_PACKAGE_SID_LENGTH:
+      reason = "STATUS_INVALID_PACKAGE_SID_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_DATA_NOT_FOUND:
+      reason = "STATUS_APP_DATA_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_DATA_EXPIRED:
+      reason = "STATUS_APP_DATA_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_DATA_CORRUPT:
+      reason = "STATUS_APP_DATA_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_DATA_LIMIT_EXCEEDED:
+      reason = "STATUS_APP_DATA_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_APP_DATA_REBOOT_REQUIRED:
+      reason = "STATUS_APP_DATA_REBOOT_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED:
+      reason = "STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED:
+      reason = "STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED:
+      reason = "STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED:
+      reason = "STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_DBG_NO_STATE_CHANGE:
+      reason = "DBG_NO_STATE_CHANGE";
+      break;
+    case MD_NTSTATUS_WIN_DBG_APP_NOT_IDLE:
+      reason = "DBG_APP_NOT_IDLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_BINDING:
+      reason = "RPC_NT_INVALID_STRING_BINDING";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_WRONG_KIND_OF_BINDING:
+      reason = "RPC_NT_WRONG_KIND_OF_BINDING";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_BINDING:
+      reason = "RPC_NT_INVALID_BINDING";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_SUPPORTED:
+      reason = "RPC_NT_PROTSEQ_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_RPC_PROTSEQ:
+      reason = "RPC_NT_INVALID_RPC_PROTSEQ";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_UUID:
+      reason = "RPC_NT_INVALID_STRING_UUID";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_ENDPOINT_FORMAT:
+      reason = "RPC_NT_INVALID_ENDPOINT_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_NET_ADDR:
+      reason = "RPC_NT_INVALID_NET_ADDR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_ENDPOINT_FOUND:
+      reason = "RPC_NT_NO_ENDPOINT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_TIMEOUT:
+      reason = "RPC_NT_INVALID_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_OBJECT_NOT_FOUND:
+      reason = "RPC_NT_OBJECT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ALREADY_REGISTERED:
+      reason = "RPC_NT_ALREADY_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_TYPE_ALREADY_REGISTERED:
+      reason = "RPC_NT_TYPE_ALREADY_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ALREADY_LISTENING:
+      reason = "RPC_NT_ALREADY_LISTENING";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS_REGISTERED:
+      reason = "RPC_NT_NO_PROTSEQS_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NOT_LISTENING:
+      reason = "RPC_NT_NOT_LISTENING";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_MGR_TYPE:
+      reason = "RPC_NT_UNKNOWN_MGR_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_IF:
+      reason = "RPC_NT_UNKNOWN_IF";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_BINDINGS:
+      reason = "RPC_NT_NO_BINDINGS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS:
+      reason = "RPC_NT_NO_PROTSEQS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CANT_CREATE_ENDPOINT:
+      reason = "RPC_NT_CANT_CREATE_ENDPOINT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_OUT_OF_RESOURCES:
+      reason = "RPC_NT_OUT_OF_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SERVER_UNAVAILABLE:
+      reason = "RPC_NT_SERVER_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SERVER_TOO_BUSY:
+      reason = "RPC_NT_SERVER_TOO_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_NETWORK_OPTIONS:
+      reason = "RPC_NT_INVALID_NETWORK_OPTIONS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_CALL_ACTIVE:
+      reason = "RPC_NT_NO_CALL_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED:
+      reason = "RPC_NT_CALL_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED_DNE:
+      reason = "RPC_NT_CALL_FAILED_DNE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PROTOCOL_ERROR:
+      reason = "RPC_NT_PROTOCOL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TRANS_SYN:
+      reason = "RPC_NT_UNSUPPORTED_TRANS_SYN";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TYPE:
+      reason = "RPC_NT_UNSUPPORTED_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_TAG:
+      reason = "RPC_NT_INVALID_TAG";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_BOUND:
+      reason = "RPC_NT_INVALID_BOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_ENTRY_NAME:
+      reason = "RPC_NT_NO_ENTRY_NAME";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_NAME_SYNTAX:
+      reason = "RPC_NT_INVALID_NAME_SYNTAX";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_NAME_SYNTAX:
+      reason = "RPC_NT_UNSUPPORTED_NAME_SYNTAX";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UUID_NO_ADDRESS:
+      reason = "RPC_NT_UUID_NO_ADDRESS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_DUPLICATE_ENDPOINT:
+      reason = "RPC_NT_DUPLICATE_ENDPOINT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_TYPE:
+      reason = "RPC_NT_UNKNOWN_AUTHN_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_MAX_CALLS_TOO_SMALL:
+      reason = "RPC_NT_MAX_CALLS_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_STRING_TOO_LONG:
+      reason = "RPC_NT_STRING_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_FOUND:
+      reason = "RPC_NT_PROTSEQ_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PROCNUM_OUT_OF_RANGE:
+      reason = "RPC_NT_PROCNUM_OUT_OF_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_BINDING_HAS_NO_AUTH:
+      reason = "RPC_NT_BINDING_HAS_NO_AUTH";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_SERVICE:
+      reason = "RPC_NT_UNKNOWN_AUTHN_SERVICE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_LEVEL:
+      reason = "RPC_NT_UNKNOWN_AUTHN_LEVEL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_AUTH_IDENTITY:
+      reason = "RPC_NT_INVALID_AUTH_IDENTITY";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHZ_SERVICE:
+      reason = "RPC_NT_UNKNOWN_AUTHZ_SERVICE";
+      break;
+    case MD_NTSTATUS_WIN_EPT_NT_INVALID_ENTRY:
+      reason = "EPT_NT_INVALID_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_EPT_NT_CANT_PERFORM_OP:
+      reason = "EPT_NT_CANT_PERFORM_OP";
+      break;
+    case MD_NTSTATUS_WIN_EPT_NT_NOT_REGISTERED:
+      reason = "EPT_NT_NOT_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NOTHING_TO_EXPORT:
+      reason = "RPC_NT_NOTHING_TO_EXPORT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INCOMPLETE_NAME:
+      reason = "RPC_NT_INCOMPLETE_NAME";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_VERS_OPTION:
+      reason = "RPC_NT_INVALID_VERS_OPTION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_MORE_MEMBERS:
+      reason = "RPC_NT_NO_MORE_MEMBERS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NOT_ALL_OBJS_UNEXPORTED:
+      reason = "RPC_NT_NOT_ALL_OBJS_UNEXPORTED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INTERFACE_NOT_FOUND:
+      reason = "RPC_NT_INTERFACE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ENTRY_ALREADY_EXISTS:
+      reason = "RPC_NT_ENTRY_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ENTRY_NOT_FOUND:
+      reason = "RPC_NT_ENTRY_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NAME_SERVICE_UNAVAILABLE:
+      reason = "RPC_NT_NAME_SERVICE_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_NAF_ID:
+      reason = "RPC_NT_INVALID_NAF_ID";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CANNOT_SUPPORT:
+      reason = "RPC_NT_CANNOT_SUPPORT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_CONTEXT_AVAILABLE:
+      reason = "RPC_NT_NO_CONTEXT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INTERNAL_ERROR:
+      reason = "RPC_NT_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ZERO_DIVIDE:
+      reason = "RPC_NT_ZERO_DIVIDE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ADDRESS_ERROR:
+      reason = "RPC_NT_ADDRESS_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_FP_DIV_ZERO:
+      reason = "RPC_NT_FP_DIV_ZERO";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_FP_UNDERFLOW:
+      reason = "RPC_NT_FP_UNDERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_FP_OVERFLOW:
+      reason = "RPC_NT_FP_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CALL_IN_PROGRESS:
+      reason = "RPC_NT_CALL_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_MORE_BINDINGS:
+      reason = "RPC_NT_NO_MORE_BINDINGS";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_GROUP_MEMBER_NOT_FOUND:
+      reason = "RPC_NT_GROUP_MEMBER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_EPT_NT_CANT_CREATE:
+      reason = "EPT_NT_CANT_CREATE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_OBJECT:
+      reason = "RPC_NT_INVALID_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_INTERFACES:
+      reason = "RPC_NT_NO_INTERFACES";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_CALL_CANCELLED:
+      reason = "RPC_NT_CALL_CANCELLED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_BINDING_INCOMPLETE:
+      reason = "RPC_NT_BINDING_INCOMPLETE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_COMM_FAILURE:
+      reason = "RPC_NT_COMM_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_AUTHN_LEVEL:
+      reason = "RPC_NT_UNSUPPORTED_AUTHN_LEVEL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_PRINC_NAME:
+      reason = "RPC_NT_NO_PRINC_NAME";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NOT_RPC_ERROR:
+      reason = "RPC_NT_NOT_RPC_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SEC_PKG_ERROR:
+      reason = "RPC_NT_SEC_PKG_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NOT_CANCELLED:
+      reason = "RPC_NT_NOT_CANCELLED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_HANDLE:
+      reason = "RPC_NT_INVALID_ASYNC_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_CALL:
+      reason = "RPC_NT_INVALID_ASYNC_CALL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PROXY_ACCESS_DENIED:
+      reason = "RPC_NT_PROXY_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_COOKIE_AUTH_FAILED:
+      reason = "RPC_NT_COOKIE_AUTH_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NO_MORE_ENTRIES:
+      reason = "RPC_NT_NO_MORE_ENTRIES";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_OPEN_FAIL:
+      reason = "RPC_NT_SS_CHAR_TRANS_OPEN_FAIL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_SHORT_FILE:
+      reason = "RPC_NT_SS_CHAR_TRANS_SHORT_FILE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_IN_NULL_CONTEXT:
+      reason = "RPC_NT_SS_IN_NULL_CONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_MISMATCH:
+      reason = "RPC_NT_SS_CONTEXT_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_DAMAGED:
+      reason = "RPC_NT_SS_CONTEXT_DAMAGED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_HANDLES_MISMATCH:
+      reason = "RPC_NT_SS_HANDLES_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_SS_CANNOT_GET_CALL_HANDLE:
+      reason = "RPC_NT_SS_CANNOT_GET_CALL_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_NULL_REF_POINTER:
+      reason = "RPC_NT_NULL_REF_POINTER";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_ENUM_VALUE_OUT_OF_RANGE:
+      reason = "RPC_NT_ENUM_VALUE_OUT_OF_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_BYTE_COUNT_TOO_SMALL:
+      reason = "RPC_NT_BYTE_COUNT_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_BAD_STUB_DATA:
+      reason = "RPC_NT_BAD_STUB_DATA";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_ES_ACTION:
+      reason = "RPC_NT_INVALID_ES_ACTION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_WRONG_ES_VERSION:
+      reason = "RPC_NT_WRONG_ES_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_WRONG_STUB_VERSION:
+      reason = "RPC_NT_WRONG_STUB_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OBJECT:
+      reason = "RPC_NT_INVALID_PIPE_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OPERATION:
+      reason = "RPC_NT_INVALID_PIPE_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_WRONG_PIPE_VERSION:
+      reason = "RPC_NT_WRONG_PIPE_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PIPE_CLOSED:
+      reason = "RPC_NT_PIPE_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PIPE_DISCIPLINE_ERROR:
+      reason = "RPC_NT_PIPE_DISCIPLINE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_RPC_NT_PIPE_EMPTY:
+      reason = "RPC_NT_PIPE_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_BAD_MPS_TABLE:
+      reason = "STATUS_PNP_BAD_MPS_TABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_TRANSLATION_FAILED:
+      reason = "STATUS_PNP_TRANSLATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_IRQ_TRANSLATION_FAILED:
+      reason = "STATUS_PNP_IRQ_TRANSLATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PNP_INVALID_ID:
+      reason = "STATUS_PNP_INVALID_ID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_REISSUE_AS_CACHED:
+      reason = "STATUS_IO_REISSUE_AS_CACHED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_INVALID:
+      reason = "STATUS_CTX_WINSTATION_NAME_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_INVALID_PD:
+      reason = "STATUS_CTX_INVALID_PD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_PD_NOT_FOUND:
+      reason = "STATUS_CTX_PD_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CLOSE_PENDING:
+      reason = "STATUS_CTX_CLOSE_PENDING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_NO_OUTBUF:
+      reason = "STATUS_CTX_NO_OUTBUF";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_INF_NOT_FOUND:
+      reason = "STATUS_CTX_MODEM_INF_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_INVALID_MODEMNAME:
+      reason = "STATUS_CTX_INVALID_MODEMNAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_RESPONSE_ERROR:
+      reason = "STATUS_CTX_RESPONSE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_TIMEOUT:
+      reason = "STATUS_CTX_MODEM_RESPONSE_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_CARRIER:
+      reason = "STATUS_CTX_MODEM_RESPONSE_NO_CARRIER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE:
+      reason = "STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_BUSY:
+      reason = "STATUS_CTX_MODEM_RESPONSE_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_VOICE:
+      reason = "STATUS_CTX_MODEM_RESPONSE_VOICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_TD_ERROR:
+      reason = "STATUS_CTX_TD_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_CLIENT_INVALID:
+      reason = "STATUS_CTX_LICENSE_CLIENT_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_NOT_AVAILABLE:
+      reason = "STATUS_CTX_LICENSE_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_EXPIRED:
+      reason = "STATUS_CTX_LICENSE_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NOT_FOUND:
+      reason = "STATUS_CTX_WINSTATION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_COLLISION:
+      reason = "STATUS_CTX_WINSTATION_NAME_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_BUSY:
+      reason = "STATUS_CTX_WINSTATION_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_BAD_VIDEO_MODE:
+      reason = "STATUS_CTX_BAD_VIDEO_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_GRAPHICS_INVALID:
+      reason = "STATUS_CTX_GRAPHICS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_NOT_CONSOLE:
+      reason = "STATUS_CTX_NOT_CONSOLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_QUERY_TIMEOUT:
+      reason = "STATUS_CTX_CLIENT_QUERY_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_DISCONNECT:
+      reason = "STATUS_CTX_CONSOLE_DISCONNECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_CONNECT:
+      reason = "STATUS_CTX_CONSOLE_CONNECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DENIED:
+      reason = "STATUS_CTX_SHADOW_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_ACCESS_DENIED:
+      reason = "STATUS_CTX_WINSTATION_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_INVALID_WD:
+      reason = "STATUS_CTX_INVALID_WD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_WD_NOT_FOUND:
+      reason = "STATUS_CTX_WD_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_INVALID:
+      reason = "STATUS_CTX_SHADOW_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DISABLED:
+      reason = "STATUS_CTX_SHADOW_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RDP_PROTOCOL_ERROR:
+      reason = "STATUS_RDP_PROTOCOL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_NOT_SET:
+      reason = "STATUS_CTX_CLIENT_LICENSE_NOT_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_IN_USE:
+      reason = "STATUS_CTX_CLIENT_LICENSE_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE:
+      reason = "STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_NOT_RUNNING:
+      reason = "STATUS_CTX_SHADOW_NOT_RUNNING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_LOGON_DISABLED:
+      reason = "STATUS_CTX_LOGON_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTX_SECURITY_LAYER_ERROR:
+      reason = "STATUS_CTX_SECURITY_LAYER_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TS_INCOMPATIBLE_SESSIONS:
+      reason = "STATUS_TS_INCOMPATIBLE_SESSIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TS_VIDEO_SUBSYSTEM_ERROR:
+      reason = "STATUS_TS_VIDEO_SUBSYSTEM_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_FOUND:
+      reason = "STATUS_MUI_FILE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_INVALID_FILE:
+      reason = "STATUS_MUI_INVALID_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_INVALID_RC_CONFIG:
+      reason = "STATUS_MUI_INVALID_RC_CONFIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_INVALID_LOCALE_NAME:
+      reason = "STATUS_MUI_INVALID_LOCALE_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME:
+      reason = "STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_LOADED:
+      reason = "STATUS_MUI_FILE_NOT_LOADED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCE_ENUM_USER_STOP:
+      reason = "STATUS_RESOURCE_ENUM_USER_STOP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NODE:
+      reason = "STATUS_CLUSTER_INVALID_NODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_EXISTS:
+      reason = "STATUS_CLUSTER_NODE_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_IN_PROGRESS:
+      reason = "STATUS_CLUSTER_JOIN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_FOUND:
+      reason = "STATUS_CLUSTER_NODE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND:
+      reason = "STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_EXISTS:
+      reason = "STATUS_CLUSTER_NETWORK_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_FOUND:
+      reason = "STATUS_CLUSTER_NETWORK_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_EXISTS:
+      reason = "STATUS_CLUSTER_NETINTERFACE_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_NOT_FOUND:
+      reason = "STATUS_CLUSTER_NETINTERFACE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_REQUEST:
+      reason = "STATUS_CLUSTER_INVALID_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK_PROVIDER:
+      reason = "STATUS_CLUSTER_INVALID_NETWORK_PROVIDER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_DOWN:
+      reason = "STATUS_CLUSTER_NODE_DOWN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UNREACHABLE:
+      reason = "STATUS_CLUSTER_NODE_UNREACHABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_MEMBER:
+      reason = "STATUS_CLUSTER_NODE_NOT_MEMBER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS:
+      reason = "STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK:
+      reason = "STATUS_CLUSTER_INVALID_NETWORK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_NET_ADAPTERS:
+      reason = "STATUS_CLUSTER_NO_NET_ADAPTERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UP:
+      reason = "STATUS_CLUSTER_NODE_UP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_PAUSED:
+      reason = "STATUS_CLUSTER_NODE_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_PAUSED:
+      reason = "STATUS_CLUSTER_NODE_NOT_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_SECURITY_CONTEXT:
+      reason = "STATUS_CLUSTER_NO_SECURITY_CONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_INTERNAL:
+      reason = "STATUS_CLUSTER_NETWORK_NOT_INTERNAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_POISONED:
+      reason = "STATUS_CLUSTER_POISONED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_NON_CSV_PATH:
+      reason = "STATUS_CLUSTER_NON_CSV_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL:
+      reason = "STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS:
+      reason = "STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR:
+      reason = "STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_REDIRECTED:
+      reason = "STATUS_CLUSTER_CSV_REDIRECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NOT_REDIRECTED:
+      reason = "STATUS_CLUSTER_CSV_NOT_REDIRECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING:
+      reason = "STATUS_CLUSTER_CSV_VOLUME_DRAINING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS:
+      reason = "STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL:
+      reason = "STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OPCODE:
+      reason = "STATUS_ACPI_INVALID_OPCODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_STACK_OVERFLOW:
+      reason = "STATUS_ACPI_STACK_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_ASSERT_FAILED:
+      reason = "STATUS_ACPI_ASSERT_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_INDEX:
+      reason = "STATUS_ACPI_INVALID_INDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGUMENT:
+      reason = "STATUS_ACPI_INVALID_ARGUMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_FATAL:
+      reason = "STATUS_ACPI_FATAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_SUPERNAME:
+      reason = "STATUS_ACPI_INVALID_SUPERNAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGTYPE:
+      reason = "STATUS_ACPI_INVALID_ARGTYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OBJTYPE:
+      reason = "STATUS_ACPI_INVALID_OBJTYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TARGETTYPE:
+      reason = "STATUS_ACPI_INVALID_TARGETTYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INCORRECT_ARGUMENT_COUNT:
+      reason = "STATUS_ACPI_INCORRECT_ARGUMENT_COUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_ADDRESS_NOT_MAPPED:
+      reason = "STATUS_ACPI_ADDRESS_NOT_MAPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_EVENTTYPE:
+      reason = "STATUS_ACPI_INVALID_EVENTTYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_HANDLER_COLLISION:
+      reason = "STATUS_ACPI_HANDLER_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_DATA:
+      reason = "STATUS_ACPI_INVALID_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_REGION:
+      reason = "STATUS_ACPI_INVALID_REGION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ACCESS_SIZE:
+      reason = "STATUS_ACPI_INVALID_ACCESS_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_ACQUIRE_GLOBAL_LOCK:
+      reason = "STATUS_ACPI_ACQUIRE_GLOBAL_LOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_ALREADY_INITIALIZED:
+      reason = "STATUS_ACPI_ALREADY_INITIALIZED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_NOT_INITIALIZED:
+      reason = "STATUS_ACPI_NOT_INITIALIZED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_MUTEX_LEVEL:
+      reason = "STATUS_ACPI_INVALID_MUTEX_LEVEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNED:
+      reason = "STATUS_ACPI_MUTEX_NOT_OWNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNER:
+      reason = "STATUS_ACPI_MUTEX_NOT_OWNER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_RS_ACCESS:
+      reason = "STATUS_ACPI_RS_ACCESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TABLE:
+      reason = "STATUS_ACPI_INVALID_TABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_REG_HANDLER_FAILED:
+      reason = "STATUS_ACPI_REG_HANDLER_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ACPI_POWER_REQUEST_FAILED:
+      reason = "STATUS_ACPI_POWER_REQUEST_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_SECTION_NOT_FOUND:
+      reason = "STATUS_SXS_SECTION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_CANT_GEN_ACTCTX:
+      reason = "STATUS_SXS_CANT_GEN_ACTCTX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_INVALID_ACTCTXDATA_FORMAT:
+      reason = "STATUS_SXS_INVALID_ACTCTXDATA_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_NOT_FOUND:
+      reason = "STATUS_SXS_ASSEMBLY_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_FORMAT_ERROR:
+      reason = "STATUS_SXS_MANIFEST_FORMAT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_PARSE_ERROR:
+      reason = "STATUS_SXS_MANIFEST_PARSE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_ACTIVATION_CONTEXT_DISABLED:
+      reason = "STATUS_SXS_ACTIVATION_CONTEXT_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_KEY_NOT_FOUND:
+      reason = "STATUS_SXS_KEY_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_VERSION_CONFLICT:
+      reason = "STATUS_SXS_VERSION_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_WRONG_SECTION_TYPE:
+      reason = "STATUS_SXS_WRONG_SECTION_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_THREAD_QUERIES_DISABLED:
+      reason = "STATUS_SXS_THREAD_QUERIES_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_MISSING:
+      reason = "STATUS_SXS_ASSEMBLY_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET:
+      reason = "STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_EARLY_DEACTIVATION:
+      reason = "STATUS_SXS_EARLY_DEACTIVATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_INVALID_DEACTIVATION:
+      reason = "STATUS_SXS_INVALID_DEACTIVATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_MULTIPLE_DEACTIVATION:
+      reason = "STATUS_SXS_MULTIPLE_DEACTIVATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY:
+      reason = "STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_TERMINATION_REQUESTED:
+      reason = "STATUS_SXS_PROCESS_TERMINATION_REQUESTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_CORRUPT_ACTIVATION_STACK:
+      reason = "STATUS_SXS_CORRUPT_ACTIVATION_STACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_CORRUPTION:
+      reason = "STATUS_SXS_CORRUPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE:
+      reason = "STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME:
+      reason = "STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE:
+      reason = "STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_PARSE_ERROR:
+      reason = "STATUS_SXS_IDENTITY_PARSE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_COMPONENT_STORE_CORRUPT:
+      reason = "STATUS_SXS_COMPONENT_STORE_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISMATCH:
+      reason = "STATUS_SXS_FILE_HASH_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT:
+      reason = "STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_IDENTITIES_DIFFERENT:
+      reason = "STATUS_SXS_IDENTITIES_DIFFERENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT:
+      reason = "STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY:
+      reason = "STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ADVANCED_INSTALLER_FAILED:
+      reason = "STATUS_ADVANCED_INSTALLER_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_XML_ENCODING_MISMATCH:
+      reason = "STATUS_XML_ENCODING_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_TOO_BIG:
+      reason = "STATUS_SXS_MANIFEST_TOO_BIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_SETTING_NOT_REGISTERED:
+      reason = "STATUS_SXS_SETTING_NOT_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE:
+      reason = "STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SMI_PRIMITIVE_INSTALLER_FAILED:
+      reason = "STATUS_SMI_PRIMITIVE_INSTALLER_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GENERIC_COMMAND_FAILED:
+      reason = "STATUS_GENERIC_COMMAND_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISSING:
+      reason = "STATUS_SXS_FILE_HASH_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_CONFLICT:
+      reason = "STATUS_TRANSACTIONAL_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INVALID_TRANSACTION:
+      reason = "STATUS_INVALID_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ACTIVE:
+      reason = "STATUS_TRANSACTION_NOT_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TM_INITIALIZATION_FAILED:
+      reason = "STATUS_TM_INITIALIZATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RM_NOT_ACTIVE:
+      reason = "STATUS_RM_NOT_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RM_METADATA_CORRUPT:
+      reason = "STATUS_RM_METADATA_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_JOINED:
+      reason = "STATUS_TRANSACTION_NOT_JOINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_RM:
+      reason = "STATUS_DIRECTORY_NOT_RM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE:
+      reason = "STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_RESIZE_INVALID_SIZE:
+      reason = "STATUS_LOG_RESIZE_INVALID_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_REMOTE_FILE_VERSION_MISMATCH:
+      reason = "STATUS_REMOTE_FILE_VERSION_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_ALREADY_EXISTS:
+      reason = "STATUS_CRM_PROTOCOL_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_PROPAGATION_FAILED:
+      reason = "STATUS_TRANSACTION_PROPAGATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_NOT_FOUND:
+      reason = "STATUS_CRM_PROTOCOL_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_SUPERIOR_EXISTS:
+      reason = "STATUS_TRANSACTION_SUPERIOR_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUEST_NOT_VALID:
+      reason = "STATUS_TRANSACTION_REQUEST_NOT_VALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_REQUESTED:
+      reason = "STATUS_TRANSACTION_NOT_REQUESTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_ABORTED:
+      reason = "STATUS_TRANSACTION_ALREADY_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_COMMITTED:
+      reason = "STATUS_TRANSACTION_ALREADY_COMMITTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER:
+      reason = "STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CURRENT_TRANSACTION_NOT_VALID:
+      reason = "STATUS_CURRENT_TRANSACTION_NOT_VALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_GROWTH_FAILED:
+      reason = "STATUS_LOG_GROWTH_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OBJECT_NO_LONGER_EXISTS:
+      reason = "STATUS_OBJECT_NO_LONGER_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_FOUND:
+      reason = "STATUS_STREAM_MINIVERSION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_VALID:
+      reason = "STATUS_STREAM_MINIVERSION_NOT_VALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION:
+      reason = "STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT:
+      reason = "STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS:
+      reason = "STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HANDLE_NO_LONGER_VALID:
+      reason = "STATUS_HANDLE_NO_LONGER_VALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CORRUPTION_DETECTED:
+      reason = "STATUS_LOG_CORRUPTION_DETECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RM_DISCONNECTED:
+      reason = "STATUS_RM_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_SUPERIOR:
+      reason = "STATUS_ENLISTMENT_NOT_SUPERIOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FILE_IDENTITY_NOT_PERSISTENT:
+      reason = "STATUS_FILE_IDENTITY_NOT_PERSISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY:
+      reason = "STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANT_CROSS_RM_BOUNDARY:
+      reason = "STATUS_CANT_CROSS_RM_BOUNDARY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TXF_DIR_NOT_EMPTY:
+      reason = "STATUS_TXF_DIR_NOT_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_INDOUBT_TRANSACTIONS_EXIST:
+      reason = "STATUS_INDOUBT_TRANSACTIONS_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TM_VOLATILE:
+      reason = "STATUS_TM_VOLATILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ROLLBACK_TIMER_EXPIRED:
+      reason = "STATUS_ROLLBACK_TIMER_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TXF_ATTRIBUTE_CORRUPT:
+      reason = "STATUS_TXF_ATTRIBUTE_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION:
+      reason = "STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED:
+      reason = "STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE:
+      reason = "STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUIRED_PROMOTION:
+      reason = "STATUS_TRANSACTION_REQUIRED_PROMOTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION:
+      reason = "STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_NOT_FROZEN:
+      reason = "STATUS_TRANSACTIONS_NOT_FROZEN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_FREEZE_IN_PROGRESS:
+      reason = "STATUS_TRANSACTION_FREEZE_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NOT_SNAPSHOT_VOLUME:
+      reason = "STATUS_NOT_SNAPSHOT_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_SAVEPOINT_WITH_OPEN_FILES:
+      reason = "STATUS_NO_SAVEPOINT_WITH_OPEN_FILES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION:
+      reason = "STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TM_IDENTITY_MISMATCH:
+      reason = "STATUS_TM_IDENTITY_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLOATED_SECTION:
+      reason = "STATUS_FLOATED_SECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_ACCEPT_TRANSACTED_WORK:
+      reason = "STATUS_CANNOT_ACCEPT_TRANSACTED_WORK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CANNOT_ABORT_TRANSACTIONS:
+      reason = "STATUS_CANNOT_ABORT_TRANSACTIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_FOUND:
+      reason = "STATUS_TRANSACTION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_NOT_FOUND:
+      reason = "STATUS_RESOURCEMANAGER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_FOUND:
+      reason = "STATUS_ENLISTMENT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_FOUND:
+      reason = "STATUS_TRANSACTIONMANAGER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_ONLINE:
+      reason = "STATUS_TRANSACTIONMANAGER_NOT_ONLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION:
+      reason = "STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ROOT:
+      reason = "STATUS_TRANSACTION_NOT_ROOT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_OBJECT_EXPIRED:
+      reason = "STATUS_TRANSACTION_OBJECT_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION:
+      reason = "STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED:
+      reason = "STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_RECORD_TOO_LONG:
+      reason = "STATUS_TRANSACTION_RECORD_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NO_LINK_TRACKING_IN_TRANSACTION:
+      reason = "STATUS_NO_LINK_TRACKING_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION:
+      reason = "STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_INTEGRITY_VIOLATED:
+      reason = "STATUS_TRANSACTION_INTEGRITY_VIOLATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH:
+      reason = "STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT:
+      reason = "STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_MUST_WRITETHROUGH:
+      reason = "STATUS_TRANSACTION_MUST_WRITETHROUGH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_SUPERIOR:
+      reason = "STATUS_TRANSACTION_NO_SUPERIOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_EXPIRED_HANDLE:
+      reason = "STATUS_EXPIRED_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ENLISTED:
+      reason = "STATUS_TRANSACTION_NOT_ENLISTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_INVALID:
+      reason = "STATUS_LOG_SECTOR_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_PARITY_INVALID:
+      reason = "STATUS_LOG_SECTOR_PARITY_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_REMAPPED:
+      reason = "STATUS_LOG_SECTOR_REMAPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INCOMPLETE:
+      reason = "STATUS_LOG_BLOCK_INCOMPLETE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_INVALID_RANGE:
+      reason = "STATUS_LOG_INVALID_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_BLOCKS_EXHAUSTED:
+      reason = "STATUS_LOG_BLOCKS_EXHAUSTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_READ_CONTEXT_INVALID:
+      reason = "STATUS_LOG_READ_CONTEXT_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_RESTART_INVALID:
+      reason = "STATUS_LOG_RESTART_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_VERSION:
+      reason = "STATUS_LOG_BLOCK_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INVALID:
+      reason = "STATUS_LOG_BLOCK_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_READ_MODE_INVALID:
+      reason = "STATUS_LOG_READ_MODE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_METADATA_CORRUPT:
+      reason = "STATUS_LOG_METADATA_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INVALID:
+      reason = "STATUS_LOG_METADATA_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INCONSISTENT:
+      reason = "STATUS_LOG_METADATA_INCONSISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_RESERVATION_INVALID:
+      reason = "STATUS_LOG_RESERVATION_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CANT_DELETE:
+      reason = "STATUS_LOG_CANT_DELETE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_LIMIT_EXCEEDED:
+      reason = "STATUS_LOG_CONTAINER_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_START_OF_LOG:
+      reason = "STATUS_LOG_START_OF_LOG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_POLICY_ALREADY_INSTALLED:
+      reason = "STATUS_LOG_POLICY_ALREADY_INSTALLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_POLICY_NOT_INSTALLED:
+      reason = "STATUS_LOG_POLICY_NOT_INSTALLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_POLICY_INVALID:
+      reason = "STATUS_LOG_POLICY_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_POLICY_CONFLICT:
+      reason = "STATUS_LOG_POLICY_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_PINNED_ARCHIVE_TAIL:
+      reason = "STATUS_LOG_PINNED_ARCHIVE_TAIL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_RECORD_NONEXISTENT:
+      reason = "STATUS_LOG_RECORD_NONEXISTENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_RECORDS_RESERVED_INVALID:
+      reason = "STATUS_LOG_RECORDS_RESERVED_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_SPACE_RESERVED_INVALID:
+      reason = "STATUS_LOG_SPACE_RESERVED_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_TAIL_INVALID:
+      reason = "STATUS_LOG_TAIL_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_FULL:
+      reason = "STATUS_LOG_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_MULTIPLEXED:
+      reason = "STATUS_LOG_MULTIPLEXED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_DEDICATED:
+      reason = "STATUS_LOG_DEDICATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS:
+      reason = "STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_IN_PROGRESS:
+      reason = "STATUS_LOG_ARCHIVE_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_EPHEMERAL:
+      reason = "STATUS_LOG_EPHEMERAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_NOT_ENOUGH_CONTAINERS:
+      reason = "STATUS_LOG_NOT_ENOUGH_CONTAINERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_ALREADY_REGISTERED:
+      reason = "STATUS_LOG_CLIENT_ALREADY_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_NOT_REGISTERED:
+      reason = "STATUS_LOG_CLIENT_NOT_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_FULL_HANDLER_IN_PROGRESS:
+      reason = "STATUS_LOG_FULL_HANDLER_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_READ_FAILED:
+      reason = "STATUS_LOG_CONTAINER_READ_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_WRITE_FAILED:
+      reason = "STATUS_LOG_CONTAINER_WRITE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_OPEN_FAILED:
+      reason = "STATUS_LOG_CONTAINER_OPEN_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_STATE_INVALID:
+      reason = "STATUS_LOG_CONTAINER_STATE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_STATE_INVALID:
+      reason = "STATUS_LOG_STATE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_PINNED:
+      reason = "STATUS_LOG_PINNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_METADATA_FLUSH_FAILED:
+      reason = "STATUS_LOG_METADATA_FLUSH_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_INCONSISTENT_SECURITY:
+      reason = "STATUS_LOG_INCONSISTENT_SECURITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_APPENDED_FLUSH_FAILED:
+      reason = "STATUS_LOG_APPENDED_FLUSH_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_LOG_PINNED_RESERVATION:
+      reason = "STATUS_LOG_PINNED_RESERVATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD:
+      reason = "STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NO_HANDLER_DEFINED:
+      reason = "STATUS_FLT_NO_HANDLER_DEFINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_DEFINED:
+      reason = "STATUS_FLT_CONTEXT_ALREADY_DEFINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST:
+      reason = "STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_DISALLOW_FAST_IO:
+      reason = "STATUS_FLT_DISALLOW_FAST_IO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INVALID_NAME_REQUEST:
+      reason = "STATUS_FLT_INVALID_NAME_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NOT_SAFE_TO_POST_OPERATION:
+      reason = "STATUS_FLT_NOT_SAFE_TO_POST_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NOT_INITIALIZED:
+      reason = "STATUS_FLT_NOT_INITIALIZED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_READY:
+      reason = "STATUS_FLT_FILTER_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_POST_OPERATION_CLEANUP:
+      reason = "STATUS_FLT_POST_OPERATION_CLEANUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INTERNAL_ERROR:
+      reason = "STATUS_FLT_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_DELETING_OBJECT:
+      reason = "STATUS_FLT_DELETING_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_MUST_BE_NONPAGED_POOL:
+      reason = "STATUS_FLT_MUST_BE_NONPAGED_POOL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_DUPLICATE_ENTRY:
+      reason = "STATUS_FLT_DUPLICATE_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_CBDQ_DISABLED:
+      reason = "STATUS_FLT_CBDQ_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_ATTACH:
+      reason = "STATUS_FLT_DO_NOT_ATTACH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_DETACH:
+      reason = "STATUS_FLT_DO_NOT_DETACH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_ALTITUDE_COLLISION:
+      reason = "STATUS_FLT_INSTANCE_ALTITUDE_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NAME_COLLISION:
+      reason = "STATUS_FLT_INSTANCE_NAME_COLLISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_FOUND:
+      reason = "STATUS_FLT_FILTER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_NOT_FOUND:
+      reason = "STATUS_FLT_VOLUME_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NOT_FOUND:
+      reason = "STATUS_FLT_INSTANCE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND:
+      reason = "STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_INVALID_CONTEXT_REGISTRATION:
+      reason = "STATUS_FLT_INVALID_CONTEXT_REGISTRATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NAME_CACHE_MISS:
+      reason = "STATUS_FLT_NAME_CACHE_MISS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NO_DEVICE_OBJECT:
+      reason = "STATUS_FLT_NO_DEVICE_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_ALREADY_MOUNTED:
+      reason = "STATUS_FLT_VOLUME_ALREADY_MOUNTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_ALREADY_ENLISTED:
+      reason = "STATUS_FLT_ALREADY_ENLISTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_LINKED:
+      reason = "STATUS_FLT_CONTEXT_ALREADY_LINKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_NO_WAITER_FOR_REPLY:
+      reason = "STATUS_FLT_NO_WAITER_FOR_REPLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FLT_REGISTRATION_BUSY:
+      reason = "STATUS_FLT_REGISTRATION_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_NO_DESCRIPTOR:
+      reason = "STATUS_MONITOR_NO_DESCRIPTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT:
+      reason = "STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM:
+      reason = "STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK:
+      reason = "STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED:
+      reason = "STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK:
+      reason = "STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK:
+      reason = "STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA:
+      reason = "STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK:
+      reason = "STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_MANUFACTURE_DATE:
+      reason = "STATUS_MONITOR_INVALID_MANUFACTURE_DATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER:
+      reason = "STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER:
+      reason = "STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER:
+      reason = "STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_WAS_RESET:
+      reason = "STATUS_GRAPHICS_ADAPTER_WAS_RESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DRIVER_MODEL:
+      reason = "STATUS_GRAPHICS_INVALID_DRIVER_MODEL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_MODE_CHANGED:
+      reason = "STATUS_GRAPHICS_PRESENT_MODE_CHANGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_OCCLUDED:
+      reason = "STATUS_GRAPHICS_PRESENT_OCCLUDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_DENIED:
+      reason = "STATUS_GRAPHICS_PRESENT_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANNOTCOLORCONVERT:
+      reason = "STATUS_GRAPHICS_CANNOTCOLORCONVERT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DRIVER_MISMATCH:
+      reason = "STATUS_GRAPHICS_DRIVER_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED:
+      reason = "STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_UNOCCLUDED:
+      reason = "STATUS_GRAPHICS_PRESENT_UNOCCLUDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE:
+      reason = "STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED:
+      reason = "STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDEO_MEMORY:
+      reason = "STATUS_GRAPHICS_NO_VIDEO_MEMORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_LOCK_MEMORY:
+      reason = "STATUS_GRAPHICS_CANT_LOCK_MEMORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_BUSY:
+      reason = "STATUS_GRAPHICS_ALLOCATION_BUSY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOO_MANY_REFERENCES:
+      reason = "STATUS_GRAPHICS_TOO_MANY_REFERENCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_LATER:
+      reason = "STATUS_GRAPHICS_TRY_AGAIN_LATER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_NOW:
+      reason = "STATUS_GRAPHICS_TRY_AGAIN_NOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_INVALID:
+      reason = "STATUS_GRAPHICS_ALLOCATION_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE:
+      reason = "STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED:
+      reason = "STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION:
+      reason = "STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE:
+      reason = "STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION:
+      reason = "STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CLOSED:
+      reason = "STATUS_GRAPHICS_ALLOCATION_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE:
+      reason = "STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE:
+      reason = "STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE:
+      reason = "STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST:
+      reason = "STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE:
+      reason = "STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_FREQUENCY:
+      reason = "STATUS_GRAPHICS_INVALID_FREQUENCY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ACTIVE_REGION:
+      reason = "STATUS_GRAPHICS_INVALID_ACTIVE_REGION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_TOTAL_REGION:
+      reason = "STATUS_GRAPHICS_INVALID_TOTAL_REGION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET:
+      reason = "STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET:
+      reason = "STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET:
+      reason = "STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET:
+      reason = "STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ALREADY_IN_SET:
+      reason = "STATUS_GRAPHICS_TARGET_ALREADY_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET:
+      reason = "STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET:
+      reason = "STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_MODESET:
+      reason = "STATUS_GRAPHICS_STALE_MODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN:
+      reason = "STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE:
+      reason = "STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION:
+      reason = "STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES:
+      reason = "STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE:
+      reason = "STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET:
+      reason = "STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET:
+      reason = "STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR:
+      reason = "STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET:
+      reason = "STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET:
+      reason = "STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE:
+      reason = "STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_RESOURCES_NOT_RELATED:
+      reason = "STATUS_GRAPHICS_RESOURCES_NOT_RELATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE:
+      reason = "STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE:
+      reason = "STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET:
+      reason = "STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER:
+      reason = "STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDPNMGR:
+      reason = "STATUS_GRAPHICS_NO_VIDPNMGR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_ACTIVE_VIDPN:
+      reason = "STATUS_GRAPHICS_NO_ACTIVE_VIDPN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NOT_CONNECTED:
+      reason = "STATUS_GRAPHICS_MONITOR_NOT_CONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE:
+      reason = "STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE:
+      reason = "STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_STRIDE:
+      reason = "STATUS_GRAPHICS_INVALID_STRIDE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELFORMAT:
+      reason = "STATUS_GRAPHICS_INVALID_PIXELFORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COLORBASIS:
+      reason = "STATUS_GRAPHICS_INVALID_COLORBASIS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE:
+      reason = "STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY:
+      reason = "STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT:
+      reason = "STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE:
+      reason = "STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN:
+      reason = "STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL:
+      reason = "STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION:
+      reason = "STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_GAMMA_RAMP:
+      reason = "STATUS_GRAPHICS_INVALID_GAMMA_RAMP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_IN_MODESET:
+      reason = "STATUS_GRAPHICS_MODE_NOT_IN_MODESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON:
+      reason = "STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE:
+      reason = "STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE:
+      reason = "STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS:
+      reason = "STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING:
+      reason = "STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED:
+      reason = "STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS:
+      reason = "STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT:
+      reason = "STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM:
+      reason = "STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT:
+      reason = "STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED:
+      reason = "STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION:
+      reason = "STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_CLIENT_TYPE:
+      reason = "STATUS_GRAPHICS_INVALID_CLIENT_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET:
+      reason = "STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED:
+      reason = "STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER:
+      reason = "STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED:
+      reason = "STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED:
+      reason = "STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY:
+      reason = "STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED:
+      reason = "STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON:
+      reason = "STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE:
+      reason = "STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER:
+      reason = "STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED:
+      reason = "STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_OPM_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_COPP_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_COPP_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_UAB_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_UAB_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS:
+      reason = "STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST:
+      reason = "STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INTERNAL_ERROR:
+      reason = "STATUS_GRAPHICS_OPM_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_HANDLE:
+      reason = "STATUS_GRAPHICS_OPM_INVALID_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH:
+      reason = "STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED:
+      reason = "STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED:
+      reason = "STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_HFS_FAILED:
+      reason = "STATUS_GRAPHICS_PVP_HFS_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_SRM:
+      reason = "STATUS_GRAPHICS_OPM_INVALID_SRM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP:
+      reason = "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP:
+      reason = "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA:
+      reason = "STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET:
+      reason = "STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH:
+      reason = "STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE:
+      reason = "STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS:
+      reason = "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS:
+      reason = "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST:
+      reason = "STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR:
+      reason = "STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS:
+      reason = "STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST:
+      reason = "STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_I2C_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST:
+      reason = "STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA:
+      reason = "STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA:
+      reason = "STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_DATA:
+      reason = "STATUS_GRAPHICS_DDCCI_INVALID_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE:
+      reason = "STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING:
+      reason = "STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MCA_INTERNAL_ERROR:
+      reason = "STATUS_GRAPHICS_MCA_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND:
+      reason = "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH:
+      reason = "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM:
+      reason = "STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE:
+      reason = "STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS:
+      reason = "STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED:
+      reason = "STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME:
+      reason = "STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP:
+      reason = "STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED:
+      reason = "STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_POINTER:
+      reason = "STATUS_GRAPHICS_INVALID_POINTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE:
+      reason = "STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL:
+      reason = "STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_INTERNAL_ERROR:
+      reason = "STATUS_GRAPHICS_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS:
+      reason = "STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_LOCKED_VOLUME:
+      reason = "STATUS_FVE_LOCKED_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_ENCRYPTED:
+      reason = "STATUS_FVE_NOT_ENCRYPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_BAD_INFORMATION:
+      reason = "STATUS_FVE_BAD_INFORMATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_TOO_SMALL:
+      reason = "STATUS_FVE_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FAILED_WRONG_FS:
+      reason = "STATUS_FVE_FAILED_WRONG_FS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_BAD_PARTITION_SIZE:
+      reason = "STATUS_FVE_BAD_PARTITION_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FS_NOT_EXTENDED:
+      reason = "STATUS_FVE_FS_NOT_EXTENDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FS_MOUNTED:
+      reason = "STATUS_FVE_FS_MOUNTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NO_LICENSE:
+      reason = "STATUS_FVE_NO_LICENSE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_ACTION_NOT_ALLOWED:
+      reason = "STATUS_FVE_ACTION_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_BAD_DATA:
+      reason = "STATUS_FVE_BAD_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_NOT_BOUND:
+      reason = "STATUS_FVE_VOLUME_NOT_BOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_DATA_VOLUME:
+      reason = "STATUS_FVE_NOT_DATA_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_CONV_READ_ERROR:
+      reason = "STATUS_FVE_CONV_READ_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_CONV_WRITE_ERROR:
+      reason = "STATUS_FVE_CONV_WRITE_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_OVERLAPPED_UPDATE:
+      reason = "STATUS_FVE_OVERLAPPED_UPDATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FAILED_SECTOR_SIZE:
+      reason = "STATUS_FVE_FAILED_SECTOR_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FAILED_AUTHENTICATION:
+      reason = "STATUS_FVE_FAILED_AUTHENTICATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_OS_VOLUME:
+      reason = "STATUS_FVE_NOT_OS_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NOT_FOUND:
+      reason = "STATUS_FVE_KEYFILE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_INVALID:
+      reason = "STATUS_FVE_KEYFILE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NO_VMK:
+      reason = "STATUS_FVE_KEYFILE_NO_VMK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_TPM_DISABLED:
+      reason = "STATUS_FVE_TPM_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO:
+      reason = "STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_TPM_INVALID_PCR:
+      reason = "STATUS_FVE_TPM_INVALID_PCR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_TPM_NO_VMK:
+      reason = "STATUS_FVE_TPM_NO_VMK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_PIN_INVALID:
+      reason = "STATUS_FVE_PIN_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_APPLICATION:
+      reason = "STATUS_FVE_AUTH_INVALID_APPLICATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_CONFIG:
+      reason = "STATUS_FVE_AUTH_INVALID_CONFIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_DEBUGGER_ENABLED:
+      reason = "STATUS_FVE_DEBUGGER_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_DRY_RUN_FAILED:
+      reason = "STATUS_FVE_DRY_RUN_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_BAD_METADATA_POINTER:
+      reason = "STATUS_FVE_BAD_METADATA_POINTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_OLD_METADATA_COPY:
+      reason = "STATUS_FVE_OLD_METADATA_COPY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_REBOOT_REQUIRED:
+      reason = "STATUS_FVE_REBOOT_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_RAW_ACCESS:
+      reason = "STATUS_FVE_RAW_ACCESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_RAW_BLOCKED:
+      reason = "STATUS_FVE_RAW_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY:
+      reason = "STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_MOR_FAILED:
+      reason = "STATUS_FVE_MOR_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NO_FEATURE_LICENSE:
+      reason = "STATUS_FVE_NO_FEATURE_LICENSE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED:
+      reason = "STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_CONV_RECOVERY_FAILED:
+      reason = "STATUS_FVE_CONV_RECOVERY_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG:
+      reason = "STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_INVALID_DATUM_TYPE:
+      reason = "STATUS_FVE_INVALID_DATUM_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_TOO_SMALL:
+      reason = "STATUS_FVE_VOLUME_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_ENH_PIN_INVALID:
+      reason = "STATUS_FVE_ENH_PIN_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE:
+      reason = "STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE:
+      reason = "STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK:
+      reason = "STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CLUSTER:
+      reason = "STATUS_FVE_NOT_ALLOWED_ON_CLUSTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING:
+      reason = "STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE:
+      reason = "STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_EDRIVE_DRY_RUN_FAILED:
+      reason = "STATUS_FVE_EDRIVE_DRY_RUN_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_DISABLED:
+      reason = "STATUS_FVE_SECUREBOOT_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_CONFIG_CHANGE:
+      reason = "STATUS_FVE_SECUREBOOT_CONFIG_CHANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_DEVICE_LOCKEDOUT:
+      reason = "STATUS_FVE_DEVICE_LOCKEDOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT:
+      reason = "STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_NOT_DE_VOLUME:
+      reason = "STATUS_FVE_NOT_DE_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_DISABLED:
+      reason = "STATUS_FVE_PROTECTION_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED:
+      reason = "STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOT_FOUND:
+      reason = "STATUS_FWP_CALLOUT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CONDITION_NOT_FOUND:
+      reason = "STATUS_FWP_CONDITION_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_FILTER_NOT_FOUND:
+      reason = "STATUS_FWP_FILTER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_LAYER_NOT_FOUND:
+      reason = "STATUS_FWP_LAYER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_NOT_FOUND:
+      reason = "STATUS_FWP_PROVIDER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND:
+      reason = "STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_SUBLAYER_NOT_FOUND:
+      reason = "STATUS_FWP_SUBLAYER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NOT_FOUND:
+      reason = "STATUS_FWP_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_ALREADY_EXISTS:
+      reason = "STATUS_FWP_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_IN_USE:
+      reason = "STATUS_FWP_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS:
+      reason = "STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_WRONG_SESSION:
+      reason = "STATUS_FWP_WRONG_SESSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NO_TXN_IN_PROGRESS:
+      reason = "STATUS_FWP_NO_TXN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TXN_IN_PROGRESS:
+      reason = "STATUS_FWP_TXN_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TXN_ABORTED:
+      reason = "STATUS_FWP_TXN_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_SESSION_ABORTED:
+      reason = "STATUS_FWP_SESSION_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_TXN:
+      reason = "STATUS_FWP_INCOMPATIBLE_TXN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TIMEOUT:
+      reason = "STATUS_FWP_TIMEOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NET_EVENTS_DISABLED:
+      reason = "STATUS_FWP_NET_EVENTS_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_LAYER:
+      reason = "STATUS_FWP_INCOMPATIBLE_LAYER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_KM_CLIENTS_ONLY:
+      reason = "STATUS_FWP_KM_CLIENTS_ONLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_LIFETIME_MISMATCH:
+      reason = "STATUS_FWP_LIFETIME_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_BUILTIN_OBJECT:
+      reason = "STATUS_FWP_BUILTIN_OBJECT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_CALLOUTS:
+      reason = "STATUS_FWP_TOO_MANY_CALLOUTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NOTIFICATION_DROPPED:
+      reason = "STATUS_FWP_NOTIFICATION_DROPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TRAFFIC_MISMATCH:
+      reason = "STATUS_FWP_TRAFFIC_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_SA_STATE:
+      reason = "STATUS_FWP_INCOMPATIBLE_SA_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NULL_POINTER:
+      reason = "STATUS_FWP_NULL_POINTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ENUMERATOR:
+      reason = "STATUS_FWP_INVALID_ENUMERATOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_FLAGS:
+      reason = "STATUS_FWP_INVALID_FLAGS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_NET_MASK:
+      reason = "STATUS_FWP_INVALID_NET_MASK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_RANGE:
+      reason = "STATUS_FWP_INVALID_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_INTERVAL:
+      reason = "STATUS_FWP_INVALID_INTERVAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_ZERO_LENGTH_ARRAY:
+      reason = "STATUS_FWP_ZERO_LENGTH_ARRAY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NULL_DISPLAY_NAME:
+      reason = "STATUS_FWP_NULL_DISPLAY_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ACTION_TYPE:
+      reason = "STATUS_FWP_INVALID_ACTION_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_WEIGHT:
+      reason = "STATUS_FWP_INVALID_WEIGHT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_MATCH_TYPE_MISMATCH:
+      reason = "STATUS_FWP_MATCH_TYPE_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TYPE_MISMATCH:
+      reason = "STATUS_FWP_TYPE_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_OUT_OF_BOUNDS:
+      reason = "STATUS_FWP_OUT_OF_BOUNDS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_RESERVED:
+      reason = "STATUS_FWP_RESERVED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_CONDITION:
+      reason = "STATUS_FWP_DUPLICATE_CONDITION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_KEYMOD:
+      reason = "STATUS_FWP_DUPLICATE_KEYMOD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER:
+      reason = "STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER:
+      reason = "STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER:
+      reason = "STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT:
+      reason = "STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_AUTH_METHOD:
+      reason = "STATUS_FWP_INCOMPATIBLE_AUTH_METHOD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_DH_GROUP:
+      reason = "STATUS_FWP_INCOMPATIBLE_DH_GROUP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_EM_NOT_SUPPORTED:
+      reason = "STATUS_FWP_EM_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_NEVER_MATCH:
+      reason = "STATUS_FWP_NEVER_MATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_MISMATCH:
+      reason = "STATUS_FWP_PROVIDER_CONTEXT_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_PARAMETER:
+      reason = "STATUS_FWP_INVALID_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_SUBLAYERS:
+      reason = "STATUS_FWP_TOO_MANY_SUBLAYERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOTIFICATION_FAILED:
+      reason = "STATUS_FWP_CALLOUT_NOTIFICATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_AUTH_TRANSFORM:
+      reason = "STATUS_FWP_INVALID_AUTH_TRANSFORM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_CIPHER_TRANSFORM:
+      reason = "STATUS_FWP_INVALID_CIPHER_TRANSFORM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM:
+      reason = "STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TRANSFORM_COMBINATION:
+      reason = "STATUS_FWP_INVALID_TRANSFORM_COMBINATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_AUTH_METHOD:
+      reason = "STATUS_FWP_DUPLICATE_AUTH_METHOD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TUNNEL_ENDPOINT:
+      reason = "STATUS_FWP_INVALID_TUNNEL_ENDPOINT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_L2_DRIVER_NOT_READY:
+      reason = "STATUS_FWP_L2_DRIVER_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED:
+      reason = "STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL:
+      reason = "STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CONNECTIONS_DISABLED:
+      reason = "STATUS_FWP_CONNECTIONS_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INVALID_DNS_NAME:
+      reason = "STATUS_FWP_INVALID_DNS_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_STILL_ON:
+      reason = "STATUS_FWP_STILL_ON";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_IKEEXT_NOT_RUNNING:
+      reason = "STATUS_FWP_IKEEXT_NOT_RUNNING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_TCPIP_NOT_READY:
+      reason = "STATUS_FWP_TCPIP_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_CLOSING:
+      reason = "STATUS_FWP_INJECT_HANDLE_CLOSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_STALE:
+      reason = "STATUS_FWP_INJECT_HANDLE_STALE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_CANNOT_PEND:
+      reason = "STATUS_FWP_CANNOT_PEND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_FWP_DROP_NOICMP:
+      reason = "STATUS_FWP_DROP_NOICMP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_CLOSING:
+      reason = "STATUS_NDIS_CLOSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_BAD_VERSION:
+      reason = "STATUS_NDIS_BAD_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_BAD_CHARACTERISTICS:
+      reason = "STATUS_NDIS_BAD_CHARACTERISTICS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_FOUND:
+      reason = "STATUS_NDIS_ADAPTER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_OPEN_FAILED:
+      reason = "STATUS_NDIS_OPEN_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_DEVICE_FAILED:
+      reason = "STATUS_NDIS_DEVICE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_FULL:
+      reason = "STATUS_NDIS_MULTICAST_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_EXISTS:
+      reason = "STATUS_NDIS_MULTICAST_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_NOT_FOUND:
+      reason = "STATUS_NDIS_MULTICAST_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_REQUEST_ABORTED:
+      reason = "STATUS_NDIS_REQUEST_ABORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_RESET_IN_PROGRESS:
+      reason = "STATUS_NDIS_RESET_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PACKET:
+      reason = "STATUS_NDIS_INVALID_PACKET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DEVICE_REQUEST:
+      reason = "STATUS_NDIS_INVALID_DEVICE_REQUEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_READY:
+      reason = "STATUS_NDIS_ADAPTER_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_LENGTH:
+      reason = "STATUS_NDIS_INVALID_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DATA:
+      reason = "STATUS_NDIS_INVALID_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_BUFFER_TOO_SHORT:
+      reason = "STATUS_NDIS_BUFFER_TOO_SHORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_OID:
+      reason = "STATUS_NDIS_INVALID_OID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_REMOVED:
+      reason = "STATUS_NDIS_ADAPTER_REMOVED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_MEDIA:
+      reason = "STATUS_NDIS_UNSUPPORTED_MEDIA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_GROUP_ADDRESS_IN_USE:
+      reason = "STATUS_NDIS_GROUP_ADDRESS_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_FILE_NOT_FOUND:
+      reason = "STATUS_NDIS_FILE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_ERROR_READING_FILE:
+      reason = "STATUS_NDIS_ERROR_READING_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_ALREADY_MAPPED:
+      reason = "STATUS_NDIS_ALREADY_MAPPED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_RESOURCE_CONFLICT:
+      reason = "STATUS_NDIS_RESOURCE_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_MEDIA_DISCONNECTED:
+      reason = "STATUS_NDIS_MEDIA_DISCONNECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_ADDRESS:
+      reason = "STATUS_NDIS_INVALID_ADDRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_PAUSED:
+      reason = "STATUS_NDIS_PAUSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INTERFACE_NOT_FOUND:
+      reason = "STATUS_NDIS_INTERFACE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_REVISION:
+      reason = "STATUS_NDIS_UNSUPPORTED_REVISION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT:
+      reason = "STATUS_NDIS_INVALID_PORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT_STATE:
+      reason = "STATUS_NDIS_INVALID_PORT_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_LOW_POWER_STATE:
+      reason = "STATUS_NDIS_LOW_POWER_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_REINIT_REQUIRED:
+      reason = "STATUS_NDIS_REINIT_REQUIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_NOT_SUPPORTED:
+      reason = "STATUS_NDIS_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_POLICY:
+      reason = "STATUS_NDIS_OFFLOAD_POLICY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED:
+      reason = "STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_PATH_REJECTED:
+      reason = "STATUS_NDIS_OFFLOAD_PATH_REJECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED:
+      reason = "STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_MEDIA_IN_USE:
+      reason = "STATUS_NDIS_DOT11_MEDIA_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_POWER_STATE_INVALID:
+      reason = "STATUS_NDIS_DOT11_POWER_STATE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL:
+      reason = "STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL:
+      reason = "STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_ERROR_MASK:
+      reason = "STATUS_TPM_ERROR_MASK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUTHFAIL:
+      reason = "STATUS_TPM_AUTHFAIL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BADINDEX:
+      reason = "STATUS_TPM_BADINDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAMETER:
+      reason = "STATUS_TPM_BAD_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAILURE:
+      reason = "STATUS_TPM_AUDITFAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_CLEAR_DISABLED:
+      reason = "STATUS_TPM_CLEAR_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DEACTIVATED:
+      reason = "STATUS_TPM_DEACTIVATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DISABLED:
+      reason = "STATUS_TPM_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DISABLED_CMD:
+      reason = "STATUS_TPM_DISABLED_CMD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_FAIL:
+      reason = "STATUS_TPM_FAIL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_ORDINAL:
+      reason = "STATUS_TPM_BAD_ORDINAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INSTALL_DISABLED:
+      reason = "STATUS_TPM_INSTALL_DISABLED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYHANDLE:
+      reason = "STATUS_TPM_INVALID_KEYHANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_KEYNOTFOUND:
+      reason = "STATUS_TPM_KEYNOTFOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_ENC:
+      reason = "STATUS_TPM_INAPPROPRIATE_ENC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MIGRATEFAIL:
+      reason = "STATUS_TPM_MIGRATEFAIL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_PCR_INFO:
+      reason = "STATUS_TPM_INVALID_PCR_INFO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOSPACE:
+      reason = "STATUS_TPM_NOSPACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOSRK:
+      reason = "STATUS_TPM_NOSRK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOTSEALED_BLOB:
+      reason = "STATUS_TPM_NOTSEALED_BLOB";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_OWNER_SET:
+      reason = "STATUS_TPM_OWNER_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_RESOURCES:
+      reason = "STATUS_TPM_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_SHORTRANDOM:
+      reason = "STATUS_TPM_SHORTRANDOM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_SIZE:
+      reason = "STATUS_TPM_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_WRONGPCRVAL:
+      reason = "STATUS_TPM_WRONGPCRVAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAM_SIZE:
+      reason = "STATUS_TPM_BAD_PARAM_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_SHA_THREAD:
+      reason = "STATUS_TPM_SHA_THREAD";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_SHA_ERROR:
+      reason = "STATUS_TPM_SHA_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_FAILEDSELFTEST:
+      reason = "STATUS_TPM_FAILEDSELFTEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUTH2FAIL:
+      reason = "STATUS_TPM_AUTH2FAIL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BADTAG:
+      reason = "STATUS_TPM_BADTAG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_IOERROR:
+      reason = "STATUS_TPM_IOERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_ENCRYPT_ERROR:
+      reason = "STATUS_TPM_ENCRYPT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DECRYPT_ERROR:
+      reason = "STATUS_TPM_DECRYPT_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_AUTHHANDLE:
+      reason = "STATUS_TPM_INVALID_AUTHHANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NO_ENDORSEMENT:
+      reason = "STATUS_TPM_NO_ENDORSEMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYUSAGE:
+      reason = "STATUS_TPM_INVALID_KEYUSAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_WRONG_ENTITYTYPE:
+      reason = "STATUS_TPM_WRONG_ENTITYTYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_POSTINIT:
+      reason = "STATUS_TPM_INVALID_POSTINIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_SIG:
+      reason = "STATUS_TPM_INAPPROPRIATE_SIG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_KEY_PROPERTY:
+      reason = "STATUS_TPM_BAD_KEY_PROPERTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_MIGRATION:
+      reason = "STATUS_TPM_BAD_MIGRATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_SCHEME:
+      reason = "STATUS_TPM_BAD_SCHEME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_DATASIZE:
+      reason = "STATUS_TPM_BAD_DATASIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_MODE:
+      reason = "STATUS_TPM_BAD_MODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_PRESENCE:
+      reason = "STATUS_TPM_BAD_PRESENCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_VERSION:
+      reason = "STATUS_TPM_BAD_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NO_WRAP_TRANSPORT:
+      reason = "STATUS_TPM_NO_WRAP_TRANSPORT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_UNSUCCESSFUL:
+      reason = "STATUS_TPM_AUDITFAIL_UNSUCCESSFUL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_SUCCESSFUL:
+      reason = "STATUS_TPM_AUDITFAIL_SUCCESSFUL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOTRESETABLE:
+      reason = "STATUS_TPM_NOTRESETABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOTLOCAL:
+      reason = "STATUS_TPM_NOTLOCAL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_TYPE:
+      reason = "STATUS_TPM_BAD_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_RESOURCE:
+      reason = "STATUS_TPM_INVALID_RESOURCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOTFIPS:
+      reason = "STATUS_TPM_NOTFIPS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_FAMILY:
+      reason = "STATUS_TPM_INVALID_FAMILY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NO_NV_PERMISSION:
+      reason = "STATUS_TPM_NO_NV_PERMISSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_REQUIRES_SIGN:
+      reason = "STATUS_TPM_REQUIRES_SIGN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_KEY_NOTSUPPORTED:
+      reason = "STATUS_TPM_KEY_NOTSUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AUTH_CONFLICT:
+      reason = "STATUS_TPM_AUTH_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_AREA_LOCKED:
+      reason = "STATUS_TPM_AREA_LOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_LOCALITY:
+      reason = "STATUS_TPM_BAD_LOCALITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_READ_ONLY:
+      reason = "STATUS_TPM_READ_ONLY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_PER_NOWRITE:
+      reason = "STATUS_TPM_PER_NOWRITE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_FAMILYCOUNT:
+      reason = "STATUS_TPM_FAMILYCOUNT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_WRITE_LOCKED:
+      reason = "STATUS_TPM_WRITE_LOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_ATTRIBUTES:
+      reason = "STATUS_TPM_BAD_ATTRIBUTES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_STRUCTURE:
+      reason = "STATUS_TPM_INVALID_STRUCTURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_KEY_OWNER_CONTROL:
+      reason = "STATUS_TPM_KEY_OWNER_CONTROL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_COUNTER:
+      reason = "STATUS_TPM_BAD_COUNTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOT_FULLWRITE:
+      reason = "STATUS_TPM_NOT_FULLWRITE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_CONTEXT_GAP:
+      reason = "STATUS_TPM_CONTEXT_GAP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MAXNVWRITES:
+      reason = "STATUS_TPM_MAXNVWRITES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOOPERATOR:
+      reason = "STATUS_TPM_NOOPERATOR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_RESOURCEMISSING:
+      reason = "STATUS_TPM_RESOURCEMISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_LOCK:
+      reason = "STATUS_TPM_DELEGATE_LOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_FAMILY:
+      reason = "STATUS_TPM_DELEGATE_FAMILY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_ADMIN:
+      reason = "STATUS_TPM_DELEGATE_ADMIN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_TRANSPORT_NOTEXCLUSIVE:
+      reason = "STATUS_TPM_TRANSPORT_NOTEXCLUSIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_OWNER_CONTROL:
+      reason = "STATUS_TPM_OWNER_CONTROL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_RESOURCES:
+      reason = "STATUS_TPM_DAA_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA0:
+      reason = "STATUS_TPM_DAA_INPUT_DATA0";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA1:
+      reason = "STATUS_TPM_DAA_INPUT_DATA1";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_SETTINGS:
+      reason = "STATUS_TPM_DAA_ISSUER_SETTINGS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_TPM_SETTINGS:
+      reason = "STATUS_TPM_DAA_TPM_SETTINGS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_STAGE:
+      reason = "STATUS_TPM_DAA_STAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_VALIDITY:
+      reason = "STATUS_TPM_DAA_ISSUER_VALIDITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DAA_WRONG_W:
+      reason = "STATUS_TPM_DAA_WRONG_W";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_HANDLE:
+      reason = "STATUS_TPM_BAD_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_DELEGATE:
+      reason = "STATUS_TPM_BAD_DELEGATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BADCONTEXT:
+      reason = "STATUS_TPM_BADCONTEXT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_TOOMANYCONTEXTS:
+      reason = "STATUS_TPM_TOOMANYCONTEXTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MA_TICKET_SIGNATURE:
+      reason = "STATUS_TPM_MA_TICKET_SIGNATURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MA_DESTINATION:
+      reason = "STATUS_TPM_MA_DESTINATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MA_SOURCE:
+      reason = "STATUS_TPM_MA_SOURCE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_MA_AUTHORITY:
+      reason = "STATUS_TPM_MA_AUTHORITY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_PERMANENTEK:
+      reason = "STATUS_TPM_PERMANENTEK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_BAD_SIGNATURE:
+      reason = "STATUS_TPM_BAD_SIGNATURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOCONTEXTSPACE:
+      reason = "STATUS_TPM_NOCONTEXTSPACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_BLOCKED:
+      reason = "STATUS_TPM_COMMAND_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INVALID_HANDLE:
+      reason = "STATUS_TPM_INVALID_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DUPLICATE_VHANDLE:
+      reason = "STATUS_TPM_DUPLICATE_VHANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_BLOCKED:
+      reason = "STATUS_TPM_EMBEDDED_COMMAND_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED:
+      reason = "STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_RETRY:
+      reason = "STATUS_TPM_RETRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NEEDS_SELFTEST:
+      reason = "STATUS_TPM_NEEDS_SELFTEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DOING_SELFTEST:
+      reason = "STATUS_TPM_DOING_SELFTEST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_DEFEND_LOCK_RUNNING:
+      reason = "STATUS_TPM_DEFEND_LOCK_RUNNING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_CANCELED:
+      reason = "STATUS_TPM_COMMAND_CANCELED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_TOO_MANY_CONTEXTS:
+      reason = "STATUS_TPM_TOO_MANY_CONTEXTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_NOT_FOUND:
+      reason = "STATUS_TPM_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_ACCESS_DENIED:
+      reason = "STATUS_TPM_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_INSUFFICIENT_BUFFER:
+      reason = "STATUS_TPM_INSUFFICIENT_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_TPM_PPI_FUNCTION_UNSUPPORTED:
+      reason = "STATUS_TPM_PPI_FUNCTION_UNSUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_ERROR_MASK:
+      reason = "STATUS_PCP_ERROR_MASK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_READY:
+      reason = "STATUS_PCP_DEVICE_NOT_READY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_INVALID_HANDLE:
+      reason = "STATUS_PCP_INVALID_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_INVALID_PARAMETER:
+      reason = "STATUS_PCP_INVALID_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_FLAG_NOT_SUPPORTED:
+      reason = "STATUS_PCP_FLAG_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_NOT_SUPPORTED:
+      reason = "STATUS_PCP_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_TOO_SMALL:
+      reason = "STATUS_PCP_BUFFER_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_INTERNAL_ERROR:
+      reason = "STATUS_PCP_INTERNAL_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_FAILED:
+      reason = "STATUS_PCP_AUTHENTICATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_IGNORED:
+      reason = "STATUS_PCP_AUTHENTICATION_IGNORED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_POLICY_NOT_FOUND:
+      reason = "STATUS_PCP_POLICY_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_PROFILE_NOT_FOUND:
+      reason = "STATUS_PCP_PROFILE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_VALIDATION_FAILED:
+      reason = "STATUS_PCP_VALIDATION_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_FOUND:
+      reason = "STATUS_PCP_DEVICE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_CODE:
+      reason = "STATUS_HV_INVALID_HYPERCALL_CODE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_INPUT:
+      reason = "STATUS_HV_INVALID_HYPERCALL_INPUT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_ALIGNMENT:
+      reason = "STATUS_HV_INVALID_ALIGNMENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARAMETER:
+      reason = "STATUS_HV_INVALID_PARAMETER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_ACCESS_DENIED:
+      reason = "STATUS_HV_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_STATE:
+      reason = "STATUS_HV_INVALID_PARTITION_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_OPERATION_DENIED:
+      reason = "STATUS_HV_OPERATION_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_UNKNOWN_PROPERTY:
+      reason = "STATUS_HV_UNKNOWN_PROPERTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE:
+      reason = "STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_MEMORY:
+      reason = "STATUS_HV_INSUFFICIENT_MEMORY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_PARTITION_TOO_DEEP:
+      reason = "STATUS_HV_PARTITION_TOO_DEEP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_ID:
+      reason = "STATUS_HV_INVALID_PARTITION_ID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_INDEX:
+      reason = "STATUS_HV_INVALID_VP_INDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_PORT_ID:
+      reason = "STATUS_HV_INVALID_PORT_ID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_CONNECTION_ID:
+      reason = "STATUS_HV_INVALID_CONNECTION_ID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFERS:
+      reason = "STATUS_HV_INSUFFICIENT_BUFFERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_NOT_ACKNOWLEDGED:
+      reason = "STATUS_HV_NOT_ACKNOWLEDGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_ACKNOWLEDGED:
+      reason = "STATUS_HV_ACKNOWLEDGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_SAVE_RESTORE_STATE:
+      reason = "STATUS_HV_INVALID_SAVE_RESTORE_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_SYNIC_STATE:
+      reason = "STATUS_HV_INVALID_SYNIC_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_OBJECT_IN_USE:
+      reason = "STATUS_HV_OBJECT_IN_USE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO:
+      reason = "STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_NO_DATA:
+      reason = "STATUS_HV_NO_DATA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INACTIVE:
+      reason = "STATUS_HV_INACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_NO_RESOURCES:
+      reason = "STATUS_HV_NO_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_FEATURE_UNAVAILABLE:
+      reason = "STATUS_HV_FEATURE_UNAVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFER:
+      reason = "STATUS_HV_INSUFFICIENT_BUFFER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS:
+      reason = "STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_INVALID_LP_INDEX:
+      reason = "STATUS_HV_INVALID_LP_INDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HV_NOT_PRESENT:
+      reason = "STATUS_HV_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_BAD_SPI:
+      reason = "STATUS_IPSEC_BAD_SPI";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_SA_LIFETIME_EXPIRED:
+      reason = "STATUS_IPSEC_SA_LIFETIME_EXPIRED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_WRONG_SA:
+      reason = "STATUS_IPSEC_WRONG_SA";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_REPLAY_CHECK_FAILED:
+      reason = "STATUS_IPSEC_REPLAY_CHECK_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_INVALID_PACKET:
+      reason = "STATUS_IPSEC_INVALID_PACKET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_INTEGRITY_CHECK_FAILED:
+      reason = "STATUS_IPSEC_INTEGRITY_CHECK_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_CLEAR_TEXT_DROP:
+      reason = "STATUS_IPSEC_CLEAR_TEXT_DROP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_AUTH_FIREWALL_DROP:
+      reason = "STATUS_IPSEC_AUTH_FIREWALL_DROP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_THROTTLE_DROP:
+      reason = "STATUS_IPSEC_THROTTLE_DROP";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_BLOCK:
+      reason = "STATUS_IPSEC_DOSP_BLOCK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_RECEIVED_MULTICAST:
+      reason = "STATUS_IPSEC_DOSP_RECEIVED_MULTICAST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_INVALID_PACKET:
+      reason = "STATUS_IPSEC_DOSP_INVALID_PACKET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED:
+      reason = "STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_ENTRIES:
+      reason = "STATUS_IPSEC_DOSP_MAX_ENTRIES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED:
+      reason = "STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES:
+      reason = "STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_DUPLICATE_HANDLER:
+      reason = "STATUS_VID_DUPLICATE_HANDLER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_TOO_MANY_HANDLERS:
+      reason = "STATUS_VID_TOO_MANY_HANDLERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_QUEUE_FULL:
+      reason = "STATUS_VID_QUEUE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_HANDLER_NOT_PRESENT:
+      reason = "STATUS_VID_HANDLER_NOT_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_OBJECT_NAME:
+      reason = "STATUS_VID_INVALID_OBJECT_NAME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_TOO_LONG:
+      reason = "STATUS_VID_PARTITION_NAME_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG:
+      reason = "STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_PARTITION_ALREADY_EXISTS:
+      reason = "STATUS_VID_PARTITION_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_PARTITION_DOES_NOT_EXIST:
+      reason = "STATUS_VID_PARTITION_DOES_NOT_EXIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_NOT_FOUND:
+      reason = "STATUS_VID_PARTITION_NAME_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS:
+      reason = "STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT:
+      reason = "STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MB_STILL_REFERENCED:
+      reason = "STATUS_VID_MB_STILL_REFERENCED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED:
+      reason = "STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_SETTINGS:
+      reason = "STATUS_VID_INVALID_NUMA_SETTINGS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_NODE_INDEX:
+      reason = "STATUS_VID_INVALID_NUMA_NODE_INDEX";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED:
+      reason = "STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE:
+      reason = "STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_PAGE_RANGE_OVERFLOW:
+      reason = "STATUS_VID_PAGE_RANGE_OVERFLOW";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE:
+      reason = "STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_GPA_RANGE_HANDLE:
+      reason = "STATUS_VID_INVALID_GPA_RANGE_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE:
+      reason = "STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED:
+      reason = "STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_PPM_HANDLE:
+      reason = "STATUS_VID_INVALID_PPM_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MBPS_ARE_LOCKED:
+      reason = "STATUS_VID_MBPS_ARE_LOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_CLOSED:
+      reason = "STATUS_VID_MESSAGE_QUEUE_CLOSED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED:
+      reason = "STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_STOP_PENDING:
+      reason = "STATUS_VID_STOP_PENDING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_PROCESSOR_STATE:
+      reason = "STATUS_VID_INVALID_PROCESSOR_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT:
+      reason = "STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED:
+      reason = "STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET:
+      reason = "STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MMIO_RANGE_DESTROYED:
+      reason = "STATUS_VID_MMIO_RANGE_DESTROYED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_INVALID_CHILD_GPA_PAGE_SET:
+      reason = "STATUS_VID_INVALID_CHILD_GPA_PAGE_SET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED:
+      reason = "STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL:
+      reason = "STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE:
+      reason = "STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT:
+      reason = "STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_CORRUPT:
+      reason = "STATUS_VID_SAVED_STATE_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM:
+      reason = "STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_INCOMPATIBLE:
+      reason = "STATUS_VID_SAVED_STATE_INCOMPATIBLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DATABASE_FULL:
+      reason = "STATUS_VOLMGR_DATABASE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED:
+      reason = "STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC:
+      reason = "STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED:
+      reason = "STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME:
+      reason = "STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DUPLICATE:
+      reason = "STATUS_VOLMGR_DISK_DUPLICATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DYNAMIC:
+      reason = "STATUS_VOLMGR_DISK_DYNAMIC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_ID_INVALID:
+      reason = "STATUS_VOLMGR_DISK_ID_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_INVALID:
+      reason = "STATUS_VOLMGR_DISK_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAST_VOTER:
+      reason = "STATUS_VOLMGR_DISK_LAST_VOTER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_INVALID:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS:
+      reason = "STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_MISSING:
+      reason = "STATUS_VOLMGR_DISK_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_EMPTY:
+      reason = "STATUS_VOLMGR_DISK_NOT_EMPTY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE:
+      reason = "STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_REVECTORING_FAILED:
+      reason = "STATUS_VOLMGR_DISK_REVECTORING_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID:
+      reason = "STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SET_NOT_CONTAINED:
+      reason = "STATUS_VOLMGR_DISK_SET_NOT_CONTAINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS:
+      reason = "STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES:
+      reason = "STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED:
+      reason = "STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_ALREADY_USED:
+      reason = "STATUS_VOLMGR_EXTENT_ALREADY_USED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS:
+      reason = "STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION:
+      reason = "STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED:
+      reason = "STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION:
+      reason = "STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH:
+      reason = "STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED:
+      reason = "STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID:
+      reason = "STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS:
+      reason = "STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_IN_SYNC:
+      reason = "STATUS_VOLMGR_MEMBER_IN_SYNC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE:
+      reason = "STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_INVALID:
+      reason = "STATUS_VOLMGR_MEMBER_INDEX_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_MISSING:
+      reason = "STATUS_VOLMGR_MEMBER_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_NOT_DETACHED:
+      reason = "STATUS_VOLMGR_MEMBER_NOT_DETACHED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_REGENERATING:
+      reason = "STATUS_VOLMGR_MEMBER_REGENERATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_ALL_DISKS_FAILED:
+      reason = "STATUS_VOLMGR_ALL_DISKS_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_REGISTERED_USERS:
+      reason = "STATUS_VOLMGR_NO_REGISTERED_USERS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_SUCH_USER:
+      reason = "STATUS_VOLMGR_NO_SUCH_USER";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NOTIFICATION_RESET:
+      reason = "STATUS_VOLMGR_NOTIFICATION_RESET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_DUPLICATE:
+      reason = "STATUS_VOLMGR_PACK_DUPLICATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_ID_INVALID:
+      reason = "STATUS_VOLMGR_PACK_ID_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_INVALID:
+      reason = "STATUS_VOLMGR_PACK_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_NAME_INVALID:
+      reason = "STATUS_VOLMGR_PACK_NAME_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_OFFLINE:
+      reason = "STATUS_VOLMGR_PACK_OFFLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_HAS_QUORUM:
+      reason = "STATUS_VOLMGR_PACK_HAS_QUORUM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_WITHOUT_QUORUM:
+      reason = "STATUS_VOLMGR_PACK_WITHOUT_QUORUM";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_STYLE_INVALID:
+      reason = "STATUS_VOLMGR_PARTITION_STYLE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_UPDATE_FAILED:
+      reason = "STATUS_VOLMGR_PARTITION_UPDATE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_IN_SYNC:
+      reason = "STATUS_VOLMGR_PLEX_IN_SYNC";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_DUPLICATE:
+      reason = "STATUS_VOLMGR_PLEX_INDEX_DUPLICATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_INVALID:
+      reason = "STATUS_VOLMGR_PLEX_INDEX_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_LAST_ACTIVE:
+      reason = "STATUS_VOLMGR_PLEX_LAST_ACTIVE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_MISSING:
+      reason = "STATUS_VOLMGR_PLEX_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_REGENERATING:
+      reason = "STATUS_VOLMGR_PLEX_REGENERATING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_TYPE_INVALID:
+      reason = "STATUS_VOLMGR_PLEX_TYPE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_RAID5:
+      reason = "STATUS_VOLMGR_PLEX_NOT_RAID5";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE:
+      reason = "STATUS_VOLMGR_PLEX_NOT_SIMPLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_STRUCTURE_SIZE_INVALID:
+      reason = "STATUS_VOLMGR_STRUCTURE_SIZE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS:
+      reason = "STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_TRANSACTION_IN_PROGRESS:
+      reason = "STATUS_VOLMGR_TRANSACTION_IN_PROGRESS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE:
+      reason = "STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK:
+      reason = "STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_ID_INVALID:
+      reason = "STATUS_VOLMGR_VOLUME_ID_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_INVALID:
+      reason = "STATUS_VOLMGR_VOLUME_LENGTH_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE:
+      reason = "STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_MIRRORED:
+      reason = "STATUS_VOLMGR_VOLUME_NOT_MIRRORED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_RETAINED:
+      reason = "STATUS_VOLMGR_VOLUME_NOT_RETAINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_OFFLINE:
+      reason = "STATUS_VOLMGR_VOLUME_OFFLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_RETAINED:
+      reason = "STATUS_VOLMGR_VOLUME_RETAINED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE:
+      reason = "STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_BAD_BOOT_DISK:
+      reason = "STATUS_VOLMGR_BAD_BOOT_DISK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_OFFLINE:
+      reason = "STATUS_VOLMGR_PACK_CONFIG_OFFLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_ONLINE:
+      reason = "STATUS_VOLMGR_PACK_CONFIG_ONLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NOT_PRIMARY_PACK:
+      reason = "STATUS_VOLMGR_NOT_PRIMARY_PACK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED:
+      reason = "STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_MIRRORED:
+      reason = "STATUS_VOLMGR_VOLUME_MIRRORED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED:
+      reason = "STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_VALID_LOG_COPIES:
+      reason = "STATUS_VOLMGR_NO_VALID_LOG_COPIES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_PRIMARY_PACK_PRESENT:
+      reason = "STATUS_VOLMGR_PRIMARY_PACK_PRESENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID:
+      reason = "STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_MIRROR_NOT_SUPPORTED:
+      reason = "STATUS_VOLMGR_MIRROR_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLMGR_RAID5_NOT_SUPPORTED:
+      reason = "STATUS_VOLMGR_RAID5_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BCD_TOO_MANY_ELEMENTS:
+      reason = "STATUS_BCD_TOO_MANY_ELEMENTS";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_MISSING:
+      reason = "STATUS_VHD_DRIVE_FOOTER_MISSING";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH:
+      reason = "STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CORRUPT:
+      reason = "STATUS_VHD_DRIVE_FOOTER_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNKNOWN:
+      reason = "STATUS_VHD_FORMAT_UNKNOWN";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNSUPPORTED_VERSION:
+      reason = "STATUS_VHD_FORMAT_UNSUPPORTED_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH:
+      reason = "STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION:
+      reason = "STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CORRUPT:
+      reason = "STATUS_VHD_SPARSE_HEADER_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_FAILURE:
+      reason = "STATUS_VHD_BLOCK_ALLOCATION_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT:
+      reason = "STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_INVALID_BLOCK_SIZE:
+      reason = "STATUS_VHD_INVALID_BLOCK_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_BITMAP_MISMATCH:
+      reason = "STATUS_VHD_BITMAP_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_NOT_FOUND:
+      reason = "STATUS_VHD_PARENT_VHD_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_ID_MISMATCH:
+      reason = "STATUS_VHD_CHILD_PARENT_ID_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH:
+      reason = "STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_METADATA_READ_FAILURE:
+      reason = "STATUS_VHD_METADATA_READ_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_METADATA_WRITE_FAILURE:
+      reason = "STATUS_VHD_METADATA_WRITE_FAILURE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_INVALID_SIZE:
+      reason = "STATUS_VHD_INVALID_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_INVALID_FILE_SIZE:
+      reason = "STATUS_VHD_INVALID_FILE_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTDISK_PROVIDER_NOT_FOUND:
+      reason = "STATUS_VIRTDISK_PROVIDER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTDISK_NOT_VIRTUAL_DISK:
+      reason = "STATUS_VIRTDISK_NOT_VIRTUAL_DISK";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_ACCESS_DENIED:
+      reason = "STATUS_VHD_PARENT_VHD_ACCESS_DENIED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH:
+      reason = "STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED:
+      reason = "STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT:
+      reason = "STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTUAL_DISK_LIMITATION:
+      reason = "STATUS_VIRTUAL_DISK_LIMITATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_INVALID_TYPE:
+      reason = "STATUS_VHD_INVALID_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_INVALID_STATE:
+      reason = "STATUS_VHD_INVALID_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE:
+      reason = "STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ALREADY_OWNED:
+      reason = "STATUS_VIRTDISK_DISK_ALREADY_OWNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE:
+      reason = "STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTLOG_TRACKING_NOT_INITIALIZED:
+      reason = "STATUS_CTLOG_TRACKING_NOT_INITIALIZED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE:
+      reason = "STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTLOG_VHD_CHANGED_OFFLINE:
+      reason = "STATUS_CTLOG_VHD_CHANGED_OFFLINE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTLOG_INVALID_TRACKING_STATE:
+      reason = "STATUS_CTLOG_INVALID_TRACKING_STATE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_CTLOG_INCONSISTENT_TRACKING_FILE:
+      reason = "STATUS_CTLOG_INCONSISTENT_TRACKING_FILE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_METADATA_FULL:
+      reason = "STATUS_VHD_METADATA_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_KEY_NOT_FOUND:
+      reason = "STATUS_RKF_KEY_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_DUPLICATE_KEY:
+      reason = "STATUS_RKF_DUPLICATE_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_BLOB_FULL:
+      reason = "STATUS_RKF_BLOB_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_STORE_FULL:
+      reason = "STATUS_RKF_STORE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_FILE_BLOCKED:
+      reason = "STATUS_RKF_FILE_BLOCKED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RKF_ACTIVE_KEY:
+      reason = "STATUS_RKF_ACTIVE_KEY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RDBSS_RESTART_OPERATION:
+      reason = "STATUS_RDBSS_RESTART_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RDBSS_CONTINUE_OPERATION:
+      reason = "STATUS_RDBSS_CONTINUE_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_RDBSS_POST_OPERATION:
+      reason = "STATUS_RDBSS_POST_OPERATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_HANDLE:
+      reason = "STATUS_BTH_ATT_INVALID_HANDLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_READ_NOT_PERMITTED:
+      reason = "STATUS_BTH_ATT_READ_NOT_PERMITTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_WRITE_NOT_PERMITTED:
+      reason = "STATUS_BTH_ATT_WRITE_NOT_PERMITTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_PDU:
+      reason = "STATUS_BTH_ATT_INVALID_PDU";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION:
+      reason = "STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED:
+      reason = "STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_OFFSET:
+      reason = "STATUS_BTH_ATT_INVALID_OFFSET";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION:
+      reason = "STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_PREPARE_QUEUE_FULL:
+      reason = "STATUS_BTH_ATT_PREPARE_QUEUE_FULL";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND:
+      reason = "STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG:
+      reason = "STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE:
+      reason = "STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH:
+      reason = "STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNLIKELY:
+      reason = "STATUS_BTH_ATT_UNLIKELY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION:
+      reason = "STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE:
+      reason = "STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_RESOURCES:
+      reason = "STATUS_BTH_ATT_INSUFFICIENT_RESOURCES";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNKNOWN_ERROR:
+      reason = "STATUS_BTH_ATT_UNKNOWN_ERROR";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_ROLLBACK_DETECTED:
+      reason = "STATUS_SECUREBOOT_ROLLBACK_DETECTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_VIOLATION:
+      reason = "STATUS_SECUREBOOT_POLICY_VIOLATION";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_INVALID_POLICY:
+      reason = "STATUS_SECUREBOOT_INVALID_POLICY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND:
+      reason = "STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_SIGNED:
+      reason = "STATUS_SECUREBOOT_POLICY_NOT_SIGNED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SECUREBOOT_FILE_REPLACED:
+      reason = "STATUS_SECUREBOOT_FILE_REPLACED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_AUDIO_ENGINE_NODE_NOT_FOUND:
+      reason = "STATUS_AUDIO_ENGINE_NODE_NOT_FOUND";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HDAUDIO_EMPTY_CONNECTION_LIST:
+      reason = "STATUS_HDAUDIO_EMPTY_CONNECTION_LIST";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED:
+      reason = "STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED:
+      reason = "STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY:
+      reason = "STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VOLSNAP_BOOTFILE_NOT_VALID:
+      reason = "STATUS_VOLSNAP_BOOTFILE_NOT_VALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_IO_PREEMPTED:
+      reason = "STATUS_IO_PREEMPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_STORED:
+      reason = "STATUS_SVHDX_ERROR_STORED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_NOT_AVAILABLE:
+      reason = "STATUS_SVHDX_ERROR_NOT_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED:
+      reason = "STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_RESERVATION_CONFLICT:
+      reason = "STATUS_SVHDX_RESERVATION_CONFLICT";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_WRONG_FILE_TYPE:
+      reason = "STATUS_SVHDX_WRONG_FILE_TYPE";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SVHDX_VERSION_MISMATCH:
+      reason = "STATUS_SVHDX_VERSION_MISMATCH";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_VHD_SHARED:
+      reason = "STATUS_VHD_SHARED";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPACES_RESILIENCY_TYPE_INVALID:
+      reason = "STATUS_SPACES_RESILIENCY_TYPE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID:
+      reason = "STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPACES_INTERLEAVE_LENGTH_INVALID:
+      reason = "STATUS_SPACES_INTERLEAVE_LENGTH_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID:
+      reason = "STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID";
+      break;
+    case MD_NTSTATUS_WIN_STATUS_SPACES_NOT_ENOUGH_DRIVES:
+      reason = "STATUS_SPACES_NOT_ENOUGH_DRIVES";
+      break;
+    default: {
+      char reason_string[11];
+      snprintf(reason_string, sizeof(reason_string), "0x%08x", ntstatus);
+      reason = reason_string;
+      break;
+    }
+  }
+  return reason;
+}
+
+}  // namespace google_breakpad
diff --git a/src/processor/symbolic_constants_win.h b/src/processor/symbolic_constants_win.h
new file mode 100644
index 0000000..3f4d38e
--- /dev/null
+++ b/src/processor/symbolic_constants_win.h
@@ -0,0 +1,51 @@
+// Copyright (c) 2015 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ntstatus_reason_win.h: Windows NTSTATUS code to string.
+//
+// Provides a means to convert NTSTATUS codes to strings.
+//
+// Author: Ben Wagner
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+/* Converts a NTSTATUS code to a reason string. */
+string NTStatusToString(uint32_t ntstatus);
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
diff --git a/src/processor/synth_minidump.cc b/src/processor/synth_minidump.cc
new file mode 100644
index 0000000..da61afc
--- /dev/null
+++ b/src/processor/synth_minidump.cc
@@ -0,0 +1,421 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// synth_minidump.cc: Implementation of SynthMinidump.  See synth_minidump.h
+
+#include "processor/synth_minidump.h"
+
+namespace google_breakpad {
+
+namespace SynthMinidump {
+
+Section::Section(const Dump& dump)
+  : test_assembler::Section(dump.endianness()) { }
+
+void Section::CiteLocationIn(test_assembler::Section *section) const {
+  (*section).D32(size_).D32(file_offset_);
+}
+
+void Stream::CiteStreamIn(test_assembler::Section *section) const {
+  section->D32(type_);
+  CiteLocationIn(section);
+}
+
+SystemInfo::SystemInfo(const Dump& dump,
+                       const MDRawSystemInfo& system_info,
+                       const String& csd_version)
+    : Stream(dump, MD_SYSTEM_INFO_STREAM) {
+  D16(system_info.processor_architecture);
+  D16(system_info.processor_level);
+  D16(system_info.processor_revision);
+  D8(system_info.number_of_processors);
+  D8(system_info.product_type);
+  D32(system_info.major_version);
+  D32(system_info.minor_version);
+  D32(system_info.build_number);
+  D32(system_info.platform_id);
+  csd_version.CiteStringIn(this);
+  D16(system_info.suite_mask);
+  D16(system_info.reserved2);           // Well, why not?
+
+  // MDCPUInformation cpu;
+  if (system_info.processor_architecture == MD_CPU_ARCHITECTURE_X86) {
+    D32(system_info.cpu.x86_cpu_info.vendor_id[0]);
+    D32(system_info.cpu.x86_cpu_info.vendor_id[1]);
+    D32(system_info.cpu.x86_cpu_info.vendor_id[2]);
+    D32(system_info.cpu.x86_cpu_info.version_information);
+    D32(system_info.cpu.x86_cpu_info.feature_information);
+    D32(system_info.cpu.x86_cpu_info.amd_extended_cpu_features);
+  } else if (system_info.processor_architecture == MD_CPU_ARCHITECTURE_ARM) {
+    D32(system_info.cpu.arm_cpu_info.cpuid);
+    D32(system_info.cpu.arm_cpu_info.elf_hwcaps);
+  } else {
+    D64(system_info.cpu.other_cpu_info.processor_features[0]);
+    D64(system_info.cpu.other_cpu_info.processor_features[1]);
+  }
+}
+
+const MDRawSystemInfo SystemInfo::windows_x86 = {
+  MD_CPU_ARCHITECTURE_X86,              // processor_architecture
+  6,                                    // processor_level
+  0xd08,                                // processor_revision
+  1,                                    // number_of_processors
+  1,                                    // product_type
+  5,                                    // major_version
+  1,                                    // minor_version
+  2600,                                 // build_number
+  2,                                    // platform_id
+  0xdeadbeef,                           // csd_version_rva
+  0x100,                                // suite_mask
+  0,                                    // reserved2
+  {                                     // cpu
+    { // x86_cpu_info
+      { 0x756e6547, 0x49656e69, 0x6c65746e }, // vendor_id
+      0x6d8,                                  // version_information
+      0xafe9fbff,                             // feature_information
+      0xffffffff                              // amd_extended_cpu_features
+    }
+  }
+};
+
+const string SystemInfo::windows_x86_csd_version = "Service Pack 2";
+
+String::String(const Dump& dump, const string& contents) : Section(dump) {
+  D32(contents.size() * 2);
+  for (string::const_iterator i = contents.begin(); i != contents.end(); i++)
+    D16(*i);
+}
+
+void String::CiteStringIn(test_assembler::Section *section) const {
+  section->D32(file_offset_);
+}
+
+void Memory::CiteMemoryIn(test_assembler::Section *section) const {
+  section->D64(address_);
+  CiteLocationIn(section);
+}
+
+Context::Context(const Dump& dump, const MDRawContextX86& context)
+  : Section(dump) {
+  // The caller should have properly set the CPU type flag.
+  // The high 24 bits identify the CPU.  Note that context records with no CPU
+  // type information can be valid (e.g. produced by ::RtlCaptureContext).
+  assert(((context.context_flags & MD_CONTEXT_CPU_MASK) == 0) ||
+         (context.context_flags & MD_CONTEXT_X86));
+  // It doesn't make sense to store x86 registers in big-endian form.
+  assert(dump.endianness() == kLittleEndian);
+  D32(context.context_flags);
+  D32(context.dr0);
+  D32(context.dr1);
+  D32(context.dr2);
+  D32(context.dr3);
+  D32(context.dr6);
+  D32(context.dr7);
+  D32(context.float_save.control_word);
+  D32(context.float_save.status_word);
+  D32(context.float_save.tag_word);
+  D32(context.float_save.error_offset);
+  D32(context.float_save.error_selector);
+  D32(context.float_save.data_offset);
+  D32(context.float_save.data_selector);
+  // context.float_save.register_area[] contains 8-bit quantities and
+  // does not need to be swapped.
+  Append(context.float_save.register_area,
+         sizeof(context.float_save.register_area));
+  D32(context.float_save.cr0_npx_state);
+  D32(context.gs);
+  D32(context.fs);
+  D32(context.es);
+  D32(context.ds);
+  D32(context.edi);
+  D32(context.esi);
+  D32(context.ebx);
+  D32(context.edx);
+  D32(context.ecx);
+  D32(context.eax);
+  D32(context.ebp);
+  D32(context.eip);
+  D32(context.cs);
+  D32(context.eflags);
+  D32(context.esp);
+  D32(context.ss);
+  // context.extended_registers[] contains 8-bit quantities and does
+  // not need to be swapped.
+  Append(context.extended_registers, sizeof(context.extended_registers));
+  assert(Size() == sizeof(MDRawContextX86));
+}
+
+Context::Context(const Dump& dump, const MDRawContextARM& context)
+  : Section(dump) {
+  // The caller should have properly set the CPU type flag.
+  assert((context.context_flags & MD_CONTEXT_ARM) ||
+         (context.context_flags & MD_CONTEXT_ARM_OLD));
+  // It doesn't make sense to store ARM registers in big-endian form.
+  assert(dump.endianness() == kLittleEndian);
+  D32(context.context_flags);
+  for (int i = 0; i < MD_CONTEXT_ARM_GPR_COUNT; ++i)
+    D32(context.iregs[i]);
+  D32(context.cpsr);
+  D64(context.float_save.fpscr);
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_ARM_FPR_COUNT; ++i)
+    D64(context.float_save.regs[i]);
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT; ++i)
+    D32(context.float_save.extra[i]);
+  assert(Size() == sizeof(MDRawContextARM));
+}
+
+Context::Context(const Dump& dump, const MDRawContextMIPS& context)
+    : Section(dump) {
+  // The caller should have properly set the CPU type flag.
+  assert(context.context_flags & MD_CONTEXT_MIPS);
+  D32(context.context_flags);
+  D32(context._pad0);
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i)
+    D64(context.iregs[i]);
+
+  D64(context.mdhi);
+  D64(context.mdlo);
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_DSP_COUNT; ++i)
+    D32(context.hi[i]);
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_DSP_COUNT; ++i)
+    D32(context.lo[i]);
+
+  D32(context.dsp_control);
+  D32(context._pad1);
+
+  D64(context.epc);
+  D64(context.badvaddr);
+  D32(context.status);
+  D32(context.cause);
+
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
+    D64(context.float_save.regs[i]);
+
+  D32(context.float_save.fpcsr);
+  D32(context.float_save.fir);
+
+  assert(Size() == sizeof(MDRawContextMIPS));
+}
+
+Thread::Thread(const Dump& dump,
+               uint32_t thread_id, const Memory& stack, const Context& context,
+               uint32_t suspend_count, uint32_t priority_class,
+               uint32_t priority, uint64_t teb) : Section(dump) {
+  D32(thread_id);
+  D32(suspend_count);
+  D32(priority_class);
+  D32(priority);
+  D64(teb);
+  stack.CiteMemoryIn(this);
+  context.CiteLocationIn(this);
+  assert(Size() == sizeof(MDRawThread));
+}
+
+Module::Module(const Dump& dump,
+               uint64_t base_of_image,
+               uint32_t size_of_image,
+               const String& name,
+               uint32_t time_date_stamp,
+               uint32_t checksum,
+               const MDVSFixedFileInfo& version_info,
+               const Section *cv_record,
+               const Section *misc_record) : Section(dump) {
+  D64(base_of_image);
+  D32(size_of_image);
+  D32(checksum);
+  D32(time_date_stamp);
+  name.CiteStringIn(this);
+  D32(version_info.signature);
+  D32(version_info.struct_version);
+  D32(version_info.file_version_hi);
+  D32(version_info.file_version_lo);
+  D32(version_info.product_version_hi);
+  D32(version_info.product_version_lo);
+  D32(version_info.file_flags_mask);
+  D32(version_info.file_flags);
+  D32(version_info.file_os);
+  D32(version_info.file_type);
+  D32(version_info.file_subtype);
+  D32(version_info.file_date_hi);
+  D32(version_info.file_date_lo);
+  if (cv_record)
+    cv_record->CiteLocationIn(this);
+  else
+    D32(0).D32(0);
+  if (misc_record)
+    misc_record->CiteLocationIn(this);
+  else
+    D32(0).D32(0);
+  D64(0).D64(0);
+}
+
+const MDVSFixedFileInfo Module::stock_version_info = {
+  MD_VSFIXEDFILEINFO_SIGNATURE,         // signature
+  MD_VSFIXEDFILEINFO_VERSION,           // struct_version
+  0x11111111,                           // file_version_hi
+  0x22222222,                           // file_version_lo
+  0x33333333,                           // product_version_hi
+  0x44444444,                           // product_version_lo
+  MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG,  // file_flags_mask
+  MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG,  // file_flags
+  MD_VSFIXEDFILEINFO_FILE_OS_NT | MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS32,
+                                        // file_os
+  MD_VSFIXEDFILEINFO_FILE_TYPE_APP,     // file_type
+  MD_VSFIXEDFILEINFO_FILE_SUBTYPE_UNKNOWN, // file_subtype
+  0,                                    // file_date_hi
+  0                                     // file_date_lo
+};
+
+UnloadedModule::UnloadedModule(const Dump& dump,
+                               uint64_t base_of_image,
+                               uint32_t size_of_image,
+                               const String& name,
+                               uint32_t checksum,
+                               uint32_t time_date_stamp) : Section(dump) {
+  D64(base_of_image);
+  D32(size_of_image);
+  D32(checksum);
+  D32(time_date_stamp);
+  name.CiteStringIn(this);
+}
+
+UnloadedModuleList::UnloadedModuleList(const Dump& dump, uint32_t type)
+  : List<UnloadedModule>(dump, type, false) {
+  D32(sizeof(MDRawUnloadedModuleList));
+  D32(sizeof(MDRawUnloadedModule));
+  D32(count_label_);
+}
+
+Exception::Exception(const Dump& dump,
+                     const Context& context,
+                     uint32_t thread_id,
+                     uint32_t exception_code,
+                     uint32_t exception_flags,
+                     uint64_t exception_address)
+  : Stream(dump, MD_EXCEPTION_STREAM) {
+  D32(thread_id);
+  D32(0);  // __align
+  D32(exception_code);
+  D32(exception_flags);
+  D64(0);  // exception_record
+  D64(exception_address);
+  D32(0);  // number_parameters
+  D32(0);  // __align
+  for (size_t i = 0; i < MD_EXCEPTION_MAXIMUM_PARAMETERS; ++i)
+    D64(0);  // exception_information
+  context.CiteLocationIn(this);
+  assert(Size() == sizeof(MDRawExceptionStream));
+}
+
+Dump::Dump(uint64_t flags,
+           Endianness endianness,
+           uint32_t version,
+           uint32_t date_time_stamp)
+    : test_assembler::Section(endianness),
+      file_start_(0),
+      stream_directory_(*this),
+      stream_count_(0),
+      thread_list_(*this, MD_THREAD_LIST_STREAM),
+      module_list_(*this, MD_MODULE_LIST_STREAM),
+      unloaded_module_list_(*this, MD_UNLOADED_MODULE_LIST_STREAM),
+      memory_list_(*this, MD_MEMORY_LIST_STREAM)
+ {
+  D32(MD_HEADER_SIGNATURE);
+  D32(version);
+  D32(stream_count_label_);
+  D32(stream_directory_rva_);
+  D32(0);
+  D32(date_time_stamp);
+  D64(flags);
+  assert(Size() == sizeof(MDRawHeader));
+}
+
+Dump& Dump::Add(SynthMinidump::Section *section) {
+  section->Finish(file_start_ + Size());
+  Append(*section);
+  return *this;
+}
+
+Dump& Dump::Add(Stream *stream) {
+  Add(static_cast<SynthMinidump::Section*>(stream));
+  stream->CiteStreamIn(&stream_directory_);
+  stream_count_++;
+  return *this;
+}
+
+Dump& Dump::Add(Memory *memory) {
+  // Add the memory contents themselves to the file.
+  Add(static_cast<SynthMinidump::Section*>(memory));
+
+  // The memory list is a list of MDMemoryDescriptors, not of actual
+  // memory elements. Produce a descriptor, and add that to the list.
+  SynthMinidump::Section descriptor(*this);
+  memory->CiteMemoryIn(&descriptor);
+  memory_list_.Add(&descriptor);
+  return *this;
+}
+
+Dump& Dump::Add(Thread *thread) {
+  thread_list_.Add(thread);
+  return *this;
+}
+
+Dump& Dump::Add(Module *module) {
+  module_list_.Add(module);
+  return *this;
+}
+
+Dump& Dump::Add(UnloadedModule *unloaded_module) {
+  unloaded_module_list_.Add(unloaded_module);
+  return *this;
+}
+
+void Dump::Finish() {
+  if (!thread_list_.Empty()) Add(&thread_list_);
+  if (!module_list_.Empty()) Add(&module_list_);
+  if (!unloaded_module_list_.Empty()) Add(&unloaded_module_list_);
+  if (!memory_list_.Empty()) Add(&memory_list_);
+
+  // Create the stream directory. We don't use
+  // stream_directory_.Finish here, because the stream directory isn't
+  // cited using a location descriptor; rather, the Minidump header
+  // has the stream count and MDRVA.
+  stream_count_label_ = stream_count_;
+  stream_directory_rva_ = file_start_ + Size();
+  Append(static_cast<test_assembler::Section& >(stream_directory_));
+}
+
+} // namespace SynthMinidump
+          
+} // namespace google_breakpad
diff --git a/src/processor/synth_minidump.h b/src/processor/synth_minidump.h
new file mode 100644
index 0000000..2da4d5f
--- /dev/null
+++ b/src/processor/synth_minidump.h
@@ -0,0 +1,398 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// synth_minidump.h: Interface to SynthMinidump: fake minidump generator.
+//
+// We treat a minidump file as the concatenation of a bunch of
+// test_assembler::Sections. The file header, stream directory,
+// streams, memory regions, strings, and so on --- each is a Section
+// that eventually gets appended to the minidump. Dump, Memory,
+// Context, Thread, and so on all inherit from test_assembler::Section.
+// For example:
+//
+//    using google_breakpad::test_assembler::kLittleEndian;
+//    using google_breakpad::SynthMinidump::Context;
+//    using google_breakpad::SynthMinidump::Dump;
+//    using google_breakpad::SynthMinidump::Memory;
+//    using google_breakpad::SynthMinidump::Thread;
+//    
+//    Dump minidump(MD_NORMAL, kLittleEndian);
+//    
+//    Memory stack1(minidump, 0x569eb0a9);
+//    ... build contents of stack1 with test_assembler::Section functions ...
+//    
+//    MDRawContextX86 x86_context1;
+//    x86_context1.context_flags = MD_CONTEXT_X86;
+//    x86_context1.eip = 0x7c90eb94;
+//    x86_context1.esp = 0x569eb0a9;
+//    x86_context1.ebp = x86_context1.esp + something appropriate;
+//    Context context1(minidump, x86_context1);
+//    
+//    Thread thread1(minidump, 0xe4a4821d, stack1, context1);
+//    
+//    minidump.Add(&stack1);
+//    minidump.Add(&context1);
+//    minidump.Add(&thread1);
+//    minidump.Finish();
+//    
+//    string contents;
+//    EXPECT_TRUE(minidump.GetContents(&contents));
+//    // contents now holds the bytes of a minidump file
+//
+// Because the test_assembler classes let us write Label references to
+// sections before the Labels' values are known, this gives us
+// flexibility in how we put the dump together: minidump pieces can
+// hold the file offsets of other minidump pieces before the
+// referents' positions have been decided. As long as everything has
+// been placed by the time we call dump.GetContents to obtain the
+// bytes, all the Labels' values will be known, and everything will
+// get patched up appropriately.
+//   
+// The dump.Add(thing) functions append THINGS's contents to the
+// minidump, but they also do two other things:
+//
+// - dump.Add(thing) invokes thing->Finish, which tells *thing the
+//   offset within the file at which it was placed, and allows *thing
+//   to do any final content generation.
+//
+// - If THING is something which should receive an entry in some sort
+//   of list or directory, then dump.Add(THING) automatically creates
+//   the appropriate directory or list entry. Streams must appear in
+//   the stream directory; memory ranges should be listed in the
+//   memory list; threads should be placed in the thread list; and so
+//   on.
+//
+// By convention, Section subclass constructors that take references
+// to other Sections do not take care of 'Add'ing their arguments to
+// the dump. For example, although the Thread constructor takes
+// references to a Memory and a Context, it does not add them to the
+// dump on the caller's behalf. Rather, the caller is responsible for
+// 'Add'ing every section they create. This allows Sections to be
+// cited from more than one place; for example, Memory ranges are
+// cited both from Thread objects (as their stack contents) and by the
+// memory list stream.
+//
+// If you forget to Add some Section, the Dump::GetContents call will
+// fail, as the test_assembler::Labels used to cite the Section's
+// contents from elsewhere will still be undefined.
+#ifndef PROCESSOR_SYNTH_MINIDUMP_H_
+#define PROCESSOR_SYNTH_MINIDUMP_H_
+
+#include <assert.h>
+
+#include <iostream>
+#include <string>
+
+#include "common/test_assembler.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+namespace SynthMinidump {
+
+using test_assembler::Endianness;
+using test_assembler::kBigEndian;
+using test_assembler::kLittleEndian;
+using test_assembler::kUnsetEndian;
+using test_assembler::Label;
+
+class Dump;
+class Memory;
+class String;
+
+// A test_assembler::Section which will be appended to a minidump.
+class Section: public test_assembler::Section {
+ public:
+  explicit Section(const Dump& dump);
+
+  // Append an MDLocationDescriptor referring to this section to SECTION.
+  // If 'this' is NULL, append a descriptor with a zero length and MDRVA.
+  //
+  // (I couldn't find the language in the C++ standard that says that
+  // invoking member functions of a NULL pointer to a class type is
+  // bad, if such language exists. Having this function handle NULL
+  // 'this' is convenient, but if it causes trouble, it's not hard to
+  // do differently.)
+  void CiteLocationIn(test_assembler::Section* section) const;
+
+  // Note that this section's contents are complete, and that it has
+  // been placed in the minidump file at OFFSET. The 'Add' member
+  // functions call the Finish member function of the object being
+  // added for you; if you are 'Add'ing this section, you needn't Finish it.
+  virtual void Finish(const Label& offset) { 
+    file_offset_ = offset; size_ = Size();
+  }
+
+ protected:
+  // This section's size and offset within the minidump file.
+  Label file_offset_, size_;
+};
+
+// A stream within a minidump file. 'Add'ing a stream to a minidump
+// creates an entry for it in the minidump's stream directory.
+class Stream: public Section {
+ public:
+  // Create a stream of type TYPE.  You can append whatever contents
+  // you like to this stream using the test_assembler::Section methods.
+  Stream(const Dump& dump, uint32_t type) : Section(dump), type_(type) { }
+
+  // Append an MDRawDirectory referring to this stream to SECTION.
+  void CiteStreamIn(test_assembler::Section* section) const;
+
+ private:
+  // The type of this stream.
+  uint32_t type_;
+};
+
+class SystemInfo: public Stream {
+ public:
+  // Create an MD_SYSTEM_INFO_STREAM stream belonging to DUMP holding
+  // an MDRawSystem info structure initialized with the values from
+  // SYSTEM_INFO, except that the csd_version field is replaced with
+  // the file offset of the string CSD_VERSION, which can be 'Add'ed
+  // to the dump at the desired location.
+  // 
+  // Remember that you are still responsible for 'Add'ing CSD_VERSION
+  // to the dump yourself.
+  SystemInfo(const Dump& dump,
+             const MDRawSystemInfo& system_info,
+             const String& csd_version);
+
+  // Stock MDRawSystemInfo information and associated strings, for
+  // writing tests.
+  static const MDRawSystemInfo windows_x86;
+  static const string windows_x86_csd_version;
+};
+
+// An MDString: a string preceded by a 32-bit length.
+class String: public Section {
+ public:
+  String(const Dump& dump, const string& value);
+
+  // Append an MDRVA referring to this string to SECTION.
+  void CiteStringIn(test_assembler::Section* section) const;
+};
+
+// A range of memory contents. 'Add'ing a memory range to a minidump
+// creates n entry for it in the minidump's memory list. By
+// convention, the 'start', 'Here', and 'Mark' member functions refer
+// to memory addresses.
+class Memory: public Section {
+ public:
+  Memory(const Dump& dump, uint64_t address)
+      : Section(dump), address_(address) { start() = address; }
+
+  // Append an MDMemoryDescriptor referring to this memory range to SECTION.
+  void CiteMemoryIn(test_assembler::Section* section) const;
+
+ private:
+  // The process address from which these memory contents were taken.
+  // Shouldn't this be a Label?
+  uint64_t address_;
+};
+
+class Context: public Section {
+ public:
+  // Create a context belonging to DUMP whose contents are a copy of CONTEXT.
+  Context(const Dump& dump, const MDRawContextX86& context);
+  Context(const Dump& dump, const MDRawContextARM& context);
+  Context(const Dump& dump, const MDRawContextMIPS& context);
+  // Add an empty context to the dump.
+  Context(const Dump& dump) : Section(dump) {}
+  // Add constructors for other architectures here. Remember to byteswap.
+};
+
+class Thread: public Section {
+ public:
+  // Create a thread belonging to DUMP with the given values, citing
+  // STACK and CONTEXT (which you must Add to the dump separately).
+  Thread(const Dump& dump,
+         uint32_t thread_id,
+         const Memory& stack,
+         const Context& context,
+         uint32_t suspend_count = 0,
+         uint32_t priority_class = 0,
+         uint32_t priority = 0,
+         uint64_t teb = 0);
+};
+
+class Module: public Section {
+ public:
+  // Create a module with the given values. Note that CV_RECORD and
+  // MISC_RECORD can be NULL, in which case the corresponding location
+  // descriptior in the minidump will have a length of zero.
+  Module(const Dump& dump,
+         uint64_t base_of_image,
+         uint32_t size_of_image,
+         const String& name,
+         uint32_t time_date_stamp = 1262805309,
+         uint32_t checksum = 0,
+         const MDVSFixedFileInfo& version_info = Module::stock_version_info,
+         const Section* cv_record = NULL,
+         const Section* misc_record = NULL);
+
+ private:
+  // A standard MDVSFixedFileInfo structure to use as a default for
+  // minidumps.  There's no reason to make users write out all this crap
+  // over and over.
+  static const MDVSFixedFileInfo stock_version_info;
+};
+
+class UnloadedModule: public Section {
+ public:
+  UnloadedModule(const Dump& dump,
+                 uint64_t base_of_image,
+                 uint32_t size_of_image,
+                 const String& name,
+                 uint32_t checksum = 0,
+                 uint32_t time_date_stamp = 1262805309);
+};
+
+class Exception : public Stream {
+public:
+  Exception(const Dump& dump,
+            const Context& context,
+            uint32_t thread_id = 0,
+            uint32_t exception_code = 0,
+            uint32_t exception_flags = 0,
+            uint64_t exception_address = 0);
+};
+
+// A list of entries starting with a 32-bit count, like a memory list
+// or a thread list.
+template<typename Element>
+class List: public Stream {
+ public:
+  List(const Dump& dump, uint32_t type) : Stream(dump, type), count_(0) {
+    D32(count_label_);
+  }
+
+  // Add ELEMENT to this list.
+  void Add(Element* element) {
+    element->Finish(file_offset_ + Size());
+    Append(*element);
+    count_++;
+  }
+
+  // Return true if this List is empty, false otherwise.
+  bool Empty() { return count_ == 0; }
+
+  // Finish up the contents of this section, mark it as having been
+  // placed at OFFSET.
+  virtual void Finish(const Label& offset) {
+    Stream::Finish(offset);
+    count_label_ = count_;
+  }
+
+ private:
+  size_t count_;
+
+ protected:
+  // This constructor allows derived lists to specify their own layout
+  // rather than starting with count as specified in the public constructor.
+  List(const Dump& dump, uint32_t type, bool) : Stream(dump, type), count_(0) {}
+
+  Label count_label_;
+};
+
+class UnloadedModuleList : public List<UnloadedModule> {
+ public:
+  UnloadedModuleList(const Dump& dump, uint32_t type);
+};
+
+class Dump: public test_assembler::Section {
+ public:
+
+  // Create a test_assembler::Section containing a minidump file whose
+  // header uses the given values. ENDIANNESS determines the
+  // endianness of the signature; we set this section's default
+  // endianness by this.
+  Dump(uint64_t flags,
+       Endianness endianness = kLittleEndian,
+       uint32_t version = MD_HEADER_VERSION,
+       uint32_t date_time_stamp = 1262805309);
+
+  // The following functions call OBJECT->Finish(), and append the
+  // contents of OBJECT to this minidump. They also record OBJECT in
+  // whatever directory or list is appropriate for its type. The
+  // stream directory, memory list, thread list, and module list are
+  // accumulated this way.
+  Dump& Add(SynthMinidump::Section* object); // simply append data
+  Dump& Add(Stream* object); // append, record in stream directory
+  Dump& Add(Memory* object); // append, record in memory list
+  Dump& Add(Thread* object); // append, record in thread list
+  Dump& Add(Module* object); // append, record in module list
+  Dump& Add(UnloadedModule* object); // append, record in unloaded module list
+
+  // Complete the construction of the minidump, given the Add calls
+  // we've seen up to this point. After this call, this Dump's
+  // contents are complete, all labels should be defined if everything
+  // Cited has been Added, and you may call GetContents on it.
+  void Finish();
+
+ private:
+  // A label representing the start of the minidump file.
+  Label file_start_;
+
+  // The stream directory.  We construct this incrementally from
+  // Add(Stream*) calls.
+  SynthMinidump::Section stream_directory_; // The directory's contents.
+  size_t stream_count_;                 // The number of streams so far.
+  Label stream_count_label_;            // Cited in file header.
+  Label stream_directory_rva_;          // The directory's file offset.
+
+  // This minidump's thread list. We construct this incrementally from
+  // Add(Thread*) calls.
+  List<Thread> thread_list_;
+
+  // This minidump's module list. We construct this incrementally from
+  // Add(Module*) calls.
+  List<Module> module_list_;
+
+  // This minidump's unloaded module list. We construct this incrementally from
+  // Add(UnloadedModule*) calls.
+  UnloadedModuleList unloaded_module_list_;
+
+  // This minidump's memory list. We construct this incrementally from
+  // Add(Memory*) calls. This is actually a list of MDMemoryDescriptors,
+  // not memory ranges --- thus the odd type.
+  List<SynthMinidump::Section> memory_list_;
+};
+
+} // namespace SynthMinidump
+
+} // namespace google_breakpad
+
+#endif  // PROCESSOR_SYNTH_MINIDUMP_H_
diff --git a/src/processor/synth_minidump_unittest.cc b/src/processor/synth_minidump_unittest.cc
new file mode 100644
index 0000000..8835b44
--- /dev/null
+++ b/src/processor/synth_minidump_unittest.cc
@@ -0,0 +1,336 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// synth_minidump_unittest.cc: Unit tests for google_breakpad::SynthMinidump
+// classes.
+
+#include <sstream>
+#include <string>
+
+#include "breakpad_googletest_includes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "processor/synth_minidump.h"
+#include "processor/synth_minidump_unittest_data.h"
+
+using google_breakpad::SynthMinidump::Context;
+using google_breakpad::SynthMinidump::Dump;
+using google_breakpad::SynthMinidump::Exception;
+using google_breakpad::SynthMinidump::List;
+using google_breakpad::SynthMinidump::Memory;
+using google_breakpad::SynthMinidump::Module;
+using google_breakpad::SynthMinidump::Section;
+using google_breakpad::SynthMinidump::Stream;
+using google_breakpad::SynthMinidump::String;
+using google_breakpad::SynthMinidump::SystemInfo;
+using google_breakpad::test_assembler::kBigEndian;
+using google_breakpad::test_assembler::kLittleEndian;
+using google_breakpad::test_assembler::Label;
+
+TEST(Section, Simple) {
+  Dump dump(0);
+  Section section(dump);
+  section.L32(0x12345678);
+  section.Finish(0);
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("\x78\x56\x34\x12", 4), contents);
+}
+
+TEST(Section, CiteLocationIn) {
+  Dump dump(0, kBigEndian);
+  Section section1(dump), section2(dump);
+  section1.Append("order");
+  section2.Append("mayhem");
+  section2.Finish(0x32287ec2);
+  section2.CiteLocationIn(&section1);
+  string contents;
+  ASSERT_TRUE(section1.GetContents(&contents));
+  string expected("order\0\0\0\x06\x32\x28\x7e\xc2", 13);
+  EXPECT_EQ(expected, contents);
+}
+
+TEST(Stream, CiteStreamIn) {
+  Dump dump(0, kLittleEndian);
+  Stream stream(dump, 0x40cae2b3);
+  Section section(dump);
+  stream.Append("stream contents");
+  section.Append("section contents");
+  stream.Finish(0x41424344);
+  stream.CiteStreamIn(&section);
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+  string expected("section contents"
+                  "\xb3\xe2\xca\x40"
+                  "\x0f\0\0\0"
+                  "\x44\x43\x42\x41",
+                  16 + 4 + 4 + 4);
+  EXPECT_EQ(expected, contents);
+}
+
+TEST(Memory, CiteMemoryIn) {
+  Dump dump(0, kBigEndian);
+  Memory memory(dump, 0x76d010874ab019f9ULL);
+  Section section(dump);
+  memory.Append("memory contents");
+  section.Append("section contents");
+  memory.Finish(0x51525354);
+  memory.CiteMemoryIn(&section);
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+  string expected("section contents"
+                  "\x76\xd0\x10\x87\x4a\xb0\x19\xf9"
+                  "\0\0\0\x0f"
+                  "\x51\x52\x53\x54",
+                  16 + 8 + 4 + 4);
+  EXPECT_EQ(contents, expected);
+}
+
+TEST(Memory, Here) {
+  Dump dump(0, kBigEndian);
+  Memory memory(dump, 0x89979731eb060ed4ULL);
+  memory.Append(1729, 42);
+  Label l = memory.Here();
+  ASSERT_EQ(0x89979731eb060ed4ULL + 1729, l.Value());
+}
+
+TEST(Context, X86) {
+  Dump dump(0, kLittleEndian);
+  assert(x86_raw_context.context_flags & MD_CONTEXT_X86);
+  Context context(dump, x86_raw_context);
+  string contents;
+  ASSERT_TRUE(context.GetContents(&contents));
+  EXPECT_EQ(sizeof(x86_expected_contents), contents.size());
+  EXPECT_TRUE(memcmp(contents.data(), x86_expected_contents, contents.size())
+              == 0);
+}
+
+TEST(Context, ARM) {
+  Dump dump(0, kLittleEndian);
+  assert(arm_raw_context.context_flags & MD_CONTEXT_ARM);
+  Context context(dump, arm_raw_context);
+  string contents;
+  ASSERT_TRUE(context.GetContents(&contents));
+  EXPECT_EQ(sizeof(arm_expected_contents), contents.size());
+  EXPECT_TRUE(memcmp(contents.data(), arm_expected_contents, contents.size())
+              == 0);
+}
+
+TEST(ContextDeathTest, X86BadFlags) {
+  Dump dump(0, kLittleEndian);
+  MDRawContextX86 raw;
+  raw.context_flags = MD_CONTEXT_AMD64;
+  ASSERT_DEATH(Context context(dump, raw);,
+               "context\\.context_flags & (0x[0-9a-f]+|MD_CONTEXT_X86)");
+}
+
+TEST(ContextDeathTest, X86BadEndianness) {
+  Dump dump(0, kBigEndian);
+  MDRawContextX86 raw;
+  raw.context_flags = MD_CONTEXT_X86;
+  ASSERT_DEATH(Context context(dump, raw);,
+               "dump\\.endianness\\(\\) == kLittleEndian");
+}
+
+TEST(Thread, Simple) {
+  Dump dump(0, kLittleEndian);
+  Context context(dump, x86_raw_context);
+  context.Finish(0x8665da0c);
+  Memory stack(dump, 0xaad55a93cc3c0efcULL);
+  stack.Append("stack contents");
+  stack.Finish(0xe08cdbd1);
+  google_breakpad::SynthMinidump::Thread thread(
+      dump, 0x3d7ec360, stack, context,
+      0x3593f44d, // suspend count
+      0xab352b82, // priority class
+      0x2753d838, // priority
+      0xeb2de4be3f29e3e9ULL); // thread environment block
+  string contents;
+  ASSERT_TRUE(thread.GetContents(&contents));
+  static const uint8_t expected_bytes[] = {
+    0x60, 0xc3, 0x7e, 0x3d, // thread id
+    0x4d, 0xf4, 0x93, 0x35, // suspend count
+    0x82, 0x2b, 0x35, 0xab, // priority class
+    0x38, 0xd8, 0x53, 0x27, // priority
+    0xe9, 0xe3, 0x29, 0x3f, 0xbe, 0xe4, 0x2d, 0xeb, // thread environment block
+    0xfc, 0x0e, 0x3c, 0xcc, 0x93, 0x5a, 0xd5, 0xaa, // stack address
+    0x0e, 0x00, 0x00, 0x00, // stack size
+    0xd1, 0xdb, 0x8c, 0xe0, // stack MDRVA
+    0xcc, 0x02, 0x00, 0x00, // context size
+    0x0c, 0xda, 0x65, 0x86  // context MDRVA
+  };
+  EXPECT_EQ(sizeof(expected_bytes), contents.size());
+  EXPECT_TRUE(memcmp(contents.data(), expected_bytes, contents.size()) == 0);
+}
+
+TEST(Exception, Simple) {
+  Dump dump(0, kLittleEndian);
+  Context context(dump, x86_raw_context);
+  context.Finish(0x8665da0c);
+  
+  Exception exception(dump, context,
+                      0x1234abcd, // thread id
+                      0xdcba4321, // exception code
+                      0xf0e0d0c0, // exception flags
+                      0x0919a9b9c9d9e9f9ULL); // exception address
+  string contents;
+  ASSERT_TRUE(exception.GetContents(&contents));
+  static const uint8_t expected_bytes[] = {
+    0xcd, 0xab, 0x34, 0x12, // thread id
+    0x00, 0x00, 0x00, 0x00, // __align
+    0x21, 0x43, 0xba, 0xdc, // exception code
+    0xc0, 0xd0, 0xe0, 0xf0, // exception flags
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception record
+    0xf9, 0xe9, 0xd9, 0xc9, 0xb9, 0xa9, 0x19, 0x09, // exception address
+    0x00, 0x00, 0x00, 0x00, // number parameters
+    0x00, 0x00, 0x00, 0x00, // __align
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // exception_information
+    0xcc, 0x02, 0x00, 0x00, // context size
+    0x0c, 0xda, 0x65, 0x86  // context MDRVA
+  };
+  EXPECT_EQ(sizeof(expected_bytes), contents.size());
+  EXPECT_TRUE(memcmp(contents.data(), expected_bytes, contents.size()) == 0);
+}
+
+TEST(String, Simple) {
+  Dump dump(0, kBigEndian);
+  String s(dump, "All mimsy were the borogoves");
+  string contents;
+  ASSERT_TRUE(s.GetContents(&contents));
+  static const char expected[] = 
+    "\x00\x00\x00\x38\0A\0l\0l\0 \0m\0i\0m\0s\0y\0 \0w\0e\0r\0e"
+    "\0 \0t\0h\0e\0 \0b\0o\0r\0o\0g\0o\0v\0e\0s";
+  string expected_string(expected, sizeof(expected) - 1);
+  EXPECT_EQ(expected_string, contents);
+}
+
+TEST(String, CiteStringIn) {
+  Dump dump(0, kLittleEndian);
+  String s(dump, "and the mome wraths outgrabe");
+  Section section(dump);
+  section.Append("initial");
+  s.CiteStringIn(&section);
+  s.Finish(0xdc2bb469);
+  string contents;
+  ASSERT_TRUE(section.GetContents(&contents));
+  EXPECT_EQ(string("initial\x69\xb4\x2b\xdc", 7 + 4), contents);
+}
+
+TEST(List, Empty) {
+  Dump dump(0, kBigEndian);
+  List<Section> list(dump, 0x2442779c);
+  EXPECT_TRUE(list.Empty());
+  list.Finish(0x84e09808);
+  string contents;
+  ASSERT_TRUE(list.GetContents(&contents));
+  EXPECT_EQ(string("\0\0\0\0", 4), contents);
+}
+
+TEST(List, Two) {
+  Dump dump(0, kBigEndian);
+  List<Section> list(dump, 0x26c9f498);
+  Section section1(dump);
+  section1.Append("section one contents");
+  EXPECT_TRUE(list.Empty());
+  list.Add(&section1);
+  EXPECT_FALSE(list.Empty());
+  Section section2(dump);
+  section2.Append("section two contents");
+  list.Add(&section2);
+  list.Finish(0x1e5bb60e);
+  string contents;
+  ASSERT_TRUE(list.GetContents(&contents));
+  EXPECT_EQ(string("\0\0\0\x02section one contentssection two contents", 44),
+            contents);
+}
+
+TEST(Dump, Header) {
+  Dump dump(0x9f738b33685cc84cULL, kLittleEndian, 0xb3817faf, 0x2c741c0a);
+  dump.Finish();
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  ASSERT_EQ(string("\x4d\x44\x4d\x50"   // signature
+                   "\xaf\x7f\x81\xb3"   // version
+                   "\0\0\0\0"           // stream count
+                   "\x20\0\0\0"         // directory RVA (could be anything)
+                   "\0\0\0\0"           // checksum
+                   "\x0a\x1c\x74\x2c"   // time_date_stamp
+                   "\x4c\xc8\x5c\x68\x33\x8b\x73\x9f", // flags
+                   32),
+            contents);
+}
+
+TEST(Dump, HeaderBigEndian) {
+  Dump dump(0x206ce3cc6fb8e0f0ULL, kBigEndian, 0x161693e2, 0x35667744);
+  dump.Finish();
+  string contents;
+  ASSERT_TRUE(dump.GetContents(&contents));
+  ASSERT_EQ(string("\x50\x4d\x44\x4d"   // signature
+                   "\x16\x16\x93\xe2"   // version
+                   "\0\0\0\0"           // stream count
+                   "\0\0\0\x20"         // directory RVA (could be anything)
+                   "\0\0\0\0"           // checksum
+                   "\x35\x66\x77\x44"   // time_date_stamp
+                   "\x20\x6c\xe3\xcc\x6f\xb8\xe0\xf0", // flags
+                   32),
+            contents);
+}
+
+TEST(Dump, OneSection) {
+  Dump dump(0, kLittleEndian);
+  Section section(dump);
+  section.Append("section contents");
+  dump.Add(&section);
+  dump.Finish();
+  string dump_contents;
+  // Just check for undefined labels; don't worry about the contents.
+  ASSERT_TRUE(dump.GetContents(&dump_contents));
+
+  Section referencing_section(dump);
+  section.CiteLocationIn(&referencing_section);
+  string contents;
+  ASSERT_TRUE(referencing_section.GetContents(&contents));
+  ASSERT_EQ(string("\x10\0\0\0\x20\0\0\0", 8), contents);
+}
diff --git a/src/processor/synth_minidump_unittest_data.h b/src/processor/synth_minidump_unittest_data.h
new file mode 100644
index 0000000..3403372
--- /dev/null
+++ b/src/processor/synth_minidump_unittest_data.h
@@ -0,0 +1,418 @@
+// -*- mode: C++ -*-
+
+// Not copyrightable: random test data.
+// synth_minidump_unittest_data.h: verbose test data for SynthMinidump tests.
+
+#ifndef PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
+#define PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
+
+#include "google_breakpad/common/minidump_format.h"
+
+static const MDRawContextX86 x86_raw_context = {
+  0xded5d71b,                           // context_flags
+  0x9fdb432e,                           // dr0
+  0x26b7a81a,                           // dr1
+  0xcac7e348,                           // dr2
+  0xcf99ec09,                           // dr3
+  0x7dc8c2cd,                           // dr6
+  0x21deb880,                           // dr7
+
+  // float_save
+  {
+    0x8a5d2bb0,                         // control_word
+    0x0286c4c9,                         // status_word
+    0xf1feea21,                         // tag_word
+    0xb2d40576,                         // error_offset
+    0x48146cde,                         // error_selector
+    0x983f9b21,                         // data_offset
+    0x475be12c,                         // data_selector
+
+    // register_area
+    {
+      0xd9, 0x04, 0x20, 0x6b, 0x88, 0x3a, 0x3f, 0xd5,
+      0x59, 0x7a, 0xa9, 0xeb, 0xd0, 0x5c, 0xdf, 0xfe,
+      0xad, 0xdd, 0x4a, 0x8b, 0x10, 0xcc, 0x9a, 0x33,
+      0xcb, 0xb6, 0xf7, 0x86, 0xcd, 0x69, 0x25, 0xae,
+      0x25, 0xe5, 0x7a, 0xa1, 0x8f, 0xb2, 0x84, 0xd9,
+      0xf7, 0x2d, 0x8a, 0xa1, 0x80, 0x81, 0x7f, 0x67,
+      0x07, 0xa8, 0x23, 0xf1, 0x8c, 0xdc, 0xd8, 0x04,
+      0x8b, 0x9d, 0xb1, 0xcd, 0x61, 0x0c, 0x9c, 0x69,
+      0xc7, 0x8d, 0x17, 0xb6, 0xe5, 0x0b, 0x94, 0xf7,
+      0x78, 0x9b, 0x63, 0x49, 0xba, 0xfc, 0x08, 0x4d
+    },
+
+    0x84c53a90,                         // cr0_npx_state
+  },
+
+  0x79f71e76,                           // gs
+  0x8107bd25,                           // fs
+  0x452d2921,                           // es
+  0x87ec2875,                           // ds
+  0xf8bb73f5,                           // edi
+  0xa63ebb88,                           // esi
+  0x95d35ebe,                           // ebx
+  0x17aa2456,                           // edx
+  0x135fa208,                           // ecx
+  0x500615e6,                           // eax
+  0x66d14205,                           // ebp
+  0x000719a5,                           // eip
+  0x477b481b,                           // cs
+  0x8684dfba,                           // eflags
+  0xe33ccddf,                           // esp
+  0xc0e65d33,                           // ss
+
+  // extended_registers
+  {
+    0x68, 0x63, 0xdf, 0x50, 0xf7, 0x3b, 0xe8, 0xe5,
+    0xcb, 0xd6, 0x66, 0x60, 0xe5, 0xa3, 0x58, 0xb3,
+    0x6f, 0x34, 0xca, 0x02, 0x9b, 0x5f, 0xd0, 0x41,
+    0xbd, 0xc5, 0x2d, 0xf8, 0xff, 0x15, 0xa2, 0xd0,
+    0xe3, 0x2b, 0x3b, 0x8a, 0x9f, 0xc3, 0x9e, 0x28,
+    0x0a, 0xc2, 0xac, 0x3b, 0x67, 0x37, 0x01, 0xfd,
+    0xc3, 0xaf, 0x60, 0xf6, 0x2c, 0x4f, 0xa9, 0x52,
+    0x92, 0xe5, 0x28, 0xde, 0x34, 0xb6, 0x2e, 0x44,
+    0x15, 0xa4, 0xb6, 0xe4, 0xc9, 0x1a, 0x14, 0xb9,
+    0x51, 0x33, 0x3c, 0xe0, 0xc7, 0x94, 0xf0, 0xf7,
+    0x78, 0xdd, 0xe5, 0xca, 0xb7, 0xa6, 0xe0, 0x14,
+    0xa6, 0x03, 0xab, 0x77, 0xad, 0xbd, 0xd2, 0x53,
+    0x3d, 0x07, 0xe7, 0xaf, 0x90, 0x44, 0x71, 0xbe,
+    0x0c, 0xdf, 0x2b, 0x97, 0x40, 0x48, 0xd5, 0xf9,
+    0x62, 0x03, 0x91, 0x84, 0xd6, 0xdd, 0x29, 0x97,
+    0x35, 0x02, 0xfb, 0x59, 0x97, 0xb0, 0xec, 0xa9,
+    0x39, 0x6f, 0x81, 0x71, 0x2a, 0xf0, 0xe7, 0x2c,
+    0x4e, 0x93, 0x90, 0xcb, 0x67, 0x69, 0xde, 0xd7,
+    0x68, 0x3b, 0x0f, 0x69, 0xa8, 0xf4, 0xa8, 0x83,
+    0x42, 0x80, 0x47, 0x65, 0x7a, 0xc9, 0x19, 0x5d,
+    0xcb, 0x43, 0xa5, 0xff, 0xf8, 0x9e, 0x62, 0xf4,
+    0xe2, 0x6c, 0xcc, 0x17, 0x55, 0x7c, 0x0d, 0x5c,
+    0x8d, 0x16, 0x01, 0xd7, 0x3a, 0x0c, 0xf4, 0x7f,
+    0x71, 0xdc, 0x48, 0xe9, 0x4b, 0xfe, 0x1a, 0xd0,
+    0x04, 0x15, 0x33, 0xec, 0x78, 0xc6, 0x7e, 0xde,
+    0x7c, 0x23, 0x18, 0x8d, 0x8f, 0xc2, 0x74, 0xc1,
+    0x48, 0xcd, 0x5d, 0xee, 0xee, 0x81, 0x9e, 0x49,
+    0x47, 0x8a, 0xf8, 0x61, 0xa3, 0x9c, 0x81, 0x96,
+    0xbe, 0x2b, 0x5e, 0xbc, 0xcd, 0x34, 0x0a, 0x2a,
+    0x3b, 0x8b, 0x7d, 0xa1, 0xf2, 0x8d, 0xb4, 0x51,
+    0x9e, 0x14, 0x78, 0xa3, 0x58, 0x65, 0x2d, 0xd6,
+    0x50, 0x40, 0x36, 0x32, 0x31, 0xd4, 0x3e, 0xc2,
+    0xe0, 0x87, 0x1c, 0x05, 0x95, 0x80, 0x84, 0x24,
+    0x08, 0x6f, 0x5b, 0xc7, 0xe1, 0x1d, 0xd5, 0xa3,
+    0x94, 0x44, 0xa1, 0x7c, 0xd8, 0x4b, 0x86, 0xd2,
+    0xc6, 0xa9, 0xf3, 0xe2, 0x4d, 0x6e, 0x1f, 0x0e,
+    0xf2, 0xf5, 0x71, 0xf9, 0x71, 0x05, 0x24, 0xc9,
+    0xc1, 0xe8, 0x91, 0x42, 0x61, 0x86, 0x57, 0x68,
+    0xd9, 0xc9, 0x1d, 0xd5, 0x5a, 0xe9, 0xba, 0xe6,
+    0x15, 0x8f, 0x87, 0xbd, 0x62, 0x56, 0xed, 0xda,
+    0xc2, 0xa5, 0xd5, 0x39, 0xac, 0x05, 0x10, 0x14,
+    0x4a, 0xe7, 0xe7, 0x3c, 0x3f, 0xb7, 0xbb, 0xed,
+    0x01, 0x6e, 0xcd, 0xee, 0x81, 0xb4, 0x62, 0xf4,
+    0x62, 0x16, 0xff, 0x20, 0xb4, 0xf0, 0xbc, 0xff,
+    0x7d, 0xd9, 0xcf, 0x95, 0x30, 0x27, 0xe0, 0x2f,
+    0x98, 0x53, 0x80, 0x15, 0x13, 0xef, 0x44, 0x58,
+    0x12, 0x16, 0xdb, 0x11, 0xef, 0x73, 0x51, 0xcd,
+    0x42, 0x3f, 0x98, 0x6c, 0xc9, 0x68, 0xc3, 0xf4,
+    0x5b, 0x0f, 0x5d, 0x77, 0xed, 0xdf, 0x0f, 0xff,
+    0xb8, 0x69, 0x98, 0x50, 0x77, 0x7a, 0xe8, 0x90,
+    0x27, 0x46, 0x10, 0xd2, 0xb5, 0x00, 0x3b, 0x36,
+    0x43, 0x6d, 0x67, 0x41, 0x20, 0x3a, 0x32, 0xe0,
+    0x2e, 0x5a, 0xfb, 0x4e, 0x4f, 0xa4, 0xf7, 0xc2,
+    0xe6, 0x81, 0x1a, 0x51, 0xa8, 0x7c, 0xd4, 0x60,
+    0x7c, 0x45, 0xe2, 0xba, 0x5b, 0x42, 0xf3, 0xbf,
+    0x28, 0xaa, 0xf2, 0x90, 0xe4, 0x94, 0xdd, 0xaa,
+    0x22, 0xd3, 0x71, 0x33, 0xa1, 0x01, 0x43, 0x0e,
+    0xfa, 0x46, 0xd2, 0x6e, 0x55, 0x5e, 0x49, 0xeb,
+    0x94, 0xf0, 0xb0, 0xb1, 0x2e, 0xf2, 0x3d, 0x6c,
+    0x00, 0x5e, 0x01, 0x56, 0x3b, 0xfd, 0x5b, 0xa1,
+    0x2f, 0x63, 0x1d, 0xbf, 0xf9, 0xd8, 0x13, 0xf7,
+    0x4d, 0xb7, 0x1e, 0x3d, 0x98, 0xd2, 0xee, 0xb8,
+    0x48, 0xc8, 0x5b, 0x91, 0x0f, 0x54, 0x9e, 0x26,
+    0xb2, 0xc7, 0x3a, 0x6c, 0x8a, 0x35, 0xe1, 0xba
+  }
+};
+
+static const uint8_t x86_expected_contents[] = {
+  0x1b, 0xd7, 0xd5, 0xde,
+  0x2e, 0x43, 0xdb, 0x9f,
+  0x1a, 0xa8, 0xb7, 0x26,
+  0x48, 0xe3, 0xc7, 0xca,
+  0x09, 0xec, 0x99, 0xcf,
+  0xcd, 0xc2, 0xc8, 0x7d,
+  0x80, 0xb8, 0xde, 0x21,
+  0xb0, 0x2b, 0x5d, 0x8a,
+  0xc9, 0xc4, 0x86, 0x02,
+  0x21, 0xea, 0xfe, 0xf1,
+  0x76, 0x05, 0xd4, 0xb2,
+  0xde, 0x6c, 0x14, 0x48,
+  0x21, 0x9b, 0x3f, 0x98,
+  0x2c, 0xe1, 0x5b, 0x47,
+
+  // float_save.register_area --- unswapped
+  0xd9, 0x04, 0x20, 0x6b, 0x88, 0x3a, 0x3f, 0xd5,
+  0x59, 0x7a, 0xa9, 0xeb, 0xd0, 0x5c, 0xdf, 0xfe,
+  0xad, 0xdd, 0x4a, 0x8b, 0x10, 0xcc, 0x9a, 0x33,
+  0xcb, 0xb6, 0xf7, 0x86, 0xcd, 0x69, 0x25, 0xae,
+  0x25, 0xe5, 0x7a, 0xa1, 0x8f, 0xb2, 0x84, 0xd9,
+  0xf7, 0x2d, 0x8a, 0xa1, 0x80, 0x81, 0x7f, 0x67,
+  0x07, 0xa8, 0x23, 0xf1, 0x8c, 0xdc, 0xd8, 0x04,
+  0x8b, 0x9d, 0xb1, 0xcd, 0x61, 0x0c, 0x9c, 0x69,
+  0xc7, 0x8d, 0x17, 0xb6, 0xe5, 0x0b, 0x94, 0xf7,
+  0x78, 0x9b, 0x63, 0x49, 0xba, 0xfc, 0x08, 0x4d,
+
+  0x90, 0x3a, 0xc5, 0x84,
+  0x76, 0x1e, 0xf7, 0x79,
+  0x25, 0xbd, 0x07, 0x81,
+  0x21, 0x29, 0x2d, 0x45,
+  0x75, 0x28, 0xec, 0x87,
+  0xf5, 0x73, 0xbb, 0xf8,
+  0x88, 0xbb, 0x3e, 0xa6,
+  0xbe, 0x5e, 0xd3, 0x95,
+  0x56, 0x24, 0xaa, 0x17,
+  0x08, 0xa2, 0x5f, 0x13,
+  0xe6, 0x15, 0x06, 0x50,
+  0x05, 0x42, 0xd1, 0x66,
+  0xa5, 0x19, 0x07, 0x00,
+  0x1b, 0x48, 0x7b, 0x47,
+  0xba, 0xdf, 0x84, 0x86,
+  0xdf, 0xcd, 0x3c, 0xe3,
+  0x33, 0x5d, 0xe6, 0xc0,
+
+  // extended_registers --- unswapped
+  0x68, 0x63, 0xdf, 0x50, 0xf7, 0x3b, 0xe8, 0xe5,
+  0xcb, 0xd6, 0x66, 0x60, 0xe5, 0xa3, 0x58, 0xb3,
+  0x6f, 0x34, 0xca, 0x02, 0x9b, 0x5f, 0xd0, 0x41,
+  0xbd, 0xc5, 0x2d, 0xf8, 0xff, 0x15, 0xa2, 0xd0,
+  0xe3, 0x2b, 0x3b, 0x8a, 0x9f, 0xc3, 0x9e, 0x28,
+  0x0a, 0xc2, 0xac, 0x3b, 0x67, 0x37, 0x01, 0xfd,
+  0xc3, 0xaf, 0x60, 0xf6, 0x2c, 0x4f, 0xa9, 0x52,
+  0x92, 0xe5, 0x28, 0xde, 0x34, 0xb6, 0x2e, 0x44,
+  0x15, 0xa4, 0xb6, 0xe4, 0xc9, 0x1a, 0x14, 0xb9,
+  0x51, 0x33, 0x3c, 0xe0, 0xc7, 0x94, 0xf0, 0xf7,
+  0x78, 0xdd, 0xe5, 0xca, 0xb7, 0xa6, 0xe0, 0x14,
+  0xa6, 0x03, 0xab, 0x77, 0xad, 0xbd, 0xd2, 0x53,
+  0x3d, 0x07, 0xe7, 0xaf, 0x90, 0x44, 0x71, 0xbe,
+  0x0c, 0xdf, 0x2b, 0x97, 0x40, 0x48, 0xd5, 0xf9,
+  0x62, 0x03, 0x91, 0x84, 0xd6, 0xdd, 0x29, 0x97,
+  0x35, 0x02, 0xfb, 0x59, 0x97, 0xb0, 0xec, 0xa9,
+  0x39, 0x6f, 0x81, 0x71, 0x2a, 0xf0, 0xe7, 0x2c,
+  0x4e, 0x93, 0x90, 0xcb, 0x67, 0x69, 0xde, 0xd7,
+  0x68, 0x3b, 0x0f, 0x69, 0xa8, 0xf4, 0xa8, 0x83,
+  0x42, 0x80, 0x47, 0x65, 0x7a, 0xc9, 0x19, 0x5d,
+  0xcb, 0x43, 0xa5, 0xff, 0xf8, 0x9e, 0x62, 0xf4,
+  0xe2, 0x6c, 0xcc, 0x17, 0x55, 0x7c, 0x0d, 0x5c,
+  0x8d, 0x16, 0x01, 0xd7, 0x3a, 0x0c, 0xf4, 0x7f,
+  0x71, 0xdc, 0x48, 0xe9, 0x4b, 0xfe, 0x1a, 0xd0,
+  0x04, 0x15, 0x33, 0xec, 0x78, 0xc6, 0x7e, 0xde,
+  0x7c, 0x23, 0x18, 0x8d, 0x8f, 0xc2, 0x74, 0xc1,
+  0x48, 0xcd, 0x5d, 0xee, 0xee, 0x81, 0x9e, 0x49,
+  0x47, 0x8a, 0xf8, 0x61, 0xa3, 0x9c, 0x81, 0x96,
+  0xbe, 0x2b, 0x5e, 0xbc, 0xcd, 0x34, 0x0a, 0x2a,
+  0x3b, 0x8b, 0x7d, 0xa1, 0xf2, 0x8d, 0xb4, 0x51,
+  0x9e, 0x14, 0x78, 0xa3, 0x58, 0x65, 0x2d, 0xd6,
+  0x50, 0x40, 0x36, 0x32, 0x31, 0xd4, 0x3e, 0xc2,
+  0xe0, 0x87, 0x1c, 0x05, 0x95, 0x80, 0x84, 0x24,
+  0x08, 0x6f, 0x5b, 0xc7, 0xe1, 0x1d, 0xd5, 0xa3,
+  0x94, 0x44, 0xa1, 0x7c, 0xd8, 0x4b, 0x86, 0xd2,
+  0xc6, 0xa9, 0xf3, 0xe2, 0x4d, 0x6e, 0x1f, 0x0e,
+  0xf2, 0xf5, 0x71, 0xf9, 0x71, 0x05, 0x24, 0xc9,
+  0xc1, 0xe8, 0x91, 0x42, 0x61, 0x86, 0x57, 0x68,
+  0xd9, 0xc9, 0x1d, 0xd5, 0x5a, 0xe9, 0xba, 0xe6,
+  0x15, 0x8f, 0x87, 0xbd, 0x62, 0x56, 0xed, 0xda,
+  0xc2, 0xa5, 0xd5, 0x39, 0xac, 0x05, 0x10, 0x14,
+  0x4a, 0xe7, 0xe7, 0x3c, 0x3f, 0xb7, 0xbb, 0xed,
+  0x01, 0x6e, 0xcd, 0xee, 0x81, 0xb4, 0x62, 0xf4,
+  0x62, 0x16, 0xff, 0x20, 0xb4, 0xf0, 0xbc, 0xff,
+  0x7d, 0xd9, 0xcf, 0x95, 0x30, 0x27, 0xe0, 0x2f,
+  0x98, 0x53, 0x80, 0x15, 0x13, 0xef, 0x44, 0x58,
+  0x12, 0x16, 0xdb, 0x11, 0xef, 0x73, 0x51, 0xcd,
+  0x42, 0x3f, 0x98, 0x6c, 0xc9, 0x68, 0xc3, 0xf4,
+  0x5b, 0x0f, 0x5d, 0x77, 0xed, 0xdf, 0x0f, 0xff,
+  0xb8, 0x69, 0x98, 0x50, 0x77, 0x7a, 0xe8, 0x90,
+  0x27, 0x46, 0x10, 0xd2, 0xb5, 0x00, 0x3b, 0x36,
+  0x43, 0x6d, 0x67, 0x41, 0x20, 0x3a, 0x32, 0xe0,
+  0x2e, 0x5a, 0xfb, 0x4e, 0x4f, 0xa4, 0xf7, 0xc2,
+  0xe6, 0x81, 0x1a, 0x51, 0xa8, 0x7c, 0xd4, 0x60,
+  0x7c, 0x45, 0xe2, 0xba, 0x5b, 0x42, 0xf3, 0xbf,
+  0x28, 0xaa, 0xf2, 0x90, 0xe4, 0x94, 0xdd, 0xaa,
+  0x22, 0xd3, 0x71, 0x33, 0xa1, 0x01, 0x43, 0x0e,
+  0xfa, 0x46, 0xd2, 0x6e, 0x55, 0x5e, 0x49, 0xeb,
+  0x94, 0xf0, 0xb0, 0xb1, 0x2e, 0xf2, 0x3d, 0x6c,
+  0x00, 0x5e, 0x01, 0x56, 0x3b, 0xfd, 0x5b, 0xa1,
+  0x2f, 0x63, 0x1d, 0xbf, 0xf9, 0xd8, 0x13, 0xf7,
+  0x4d, 0xb7, 0x1e, 0x3d, 0x98, 0xd2, 0xee, 0xb8,
+  0x48, 0xc8, 0x5b, 0x91, 0x0f, 0x54, 0x9e, 0x26,
+  0xb2, 0xc7, 0x3a, 0x6c, 0x8a, 0x35, 0xe1, 0xba
+};
+
+static const MDRawContextARM arm_raw_context = {
+  // context_flags
+  0x591b9e6a,
+  // iregs
+  {
+    0xa21594de,
+    0x820d8a25,
+    0xc4e133b2,
+    0x173a1c02,
+    0x105fb175,
+    0xe871793f,
+    0x5def70b3,
+    0xcee3a623,
+    0x7b3aa9b8,
+    0x52518537,
+    0x627012c5,
+    0x22723dcc,
+    0x16fcc971,
+    0x20988bcb,
+    0xf1ab806b,
+    0x99d5fc03,
+  },
+  // cpsr
+  0xb70df511,
+  // float_save
+  {
+    // fpscr
+    0xa1e1f7ce1077e6b5ULL,
+    // regs
+    {
+      0xbcb8d002eed7fbdeULL,
+      0x4dd26a43b96ae97fULL,
+      0x8eec22db8b31741cULL,
+      0xfd634bd7c5ad66a0ULL,
+      0x1681da0daeb3debeULL,
+      0x474a32bdf72d0b71ULL,
+      0xcaf464f8b1044834ULL,
+      0xcaa6592ae5c7582aULL,
+      0x4ee46889d877c3dbULL,
+      0xf8930cf301645cf5ULL,
+      0x4da7e9ebba27f7c7ULL,
+      0x69a7b02761944da3ULL,
+      0x2cda2b2e78195c06ULL,
+      0x66b227ab9b460a42ULL,
+      0x7e77e49e52ee0849ULL,
+      0xd62cd9663e76f255ULL,
+      0xe9370f082451514bULL,
+      0x50a1c674dd1b6029ULL,
+      0x405db4575829eac4ULL,
+      0x67b948764649eee7ULL,
+      0x93731885419229d4ULL,
+      0xdb0338bad72a4ce7ULL,
+      0xa0a451f996fca4c8ULL,
+      0xb4508ea668400a45ULL,
+      0xbff28c5c7a142423ULL,
+      0x4f31b42b96f3a431ULL,
+      0x2ce6789d4ea1ff37ULL,
+      0xfa150b52e4f82a3cULL,
+      0xe9ec40449e6ed4f3ULL,
+      0x5ceca87836fe2251ULL,
+      0x66f50de463ee238cULL,
+      0x42823efcd59ab511ULL,
+    },
+    // extra
+    {
+      0xe9e14cd2,
+      0x865bb640,
+      0x9f3f0b3e,
+      0x94a71c52,
+      0x3c012f19,
+      0x6436637c,
+      0x46ccedcb,
+      0x7b341be7,
+    }
+  }
+};
+
+static const uint8_t arm_expected_contents[] = {
+  0x6a, 0x9e, 0x1b, 0x59,
+  0xde, 0x94, 0x15, 0xa2,
+  0x25, 0x8a, 0x0d, 0x82,
+  0xb2, 0x33, 0xe1, 0xc4,
+  0x02, 0x1c, 0x3a, 0x17,
+  0x75, 0xb1, 0x5f, 0x10,
+  0x3f, 0x79, 0x71, 0xe8,
+  0xb3, 0x70, 0xef, 0x5d,
+  0x23, 0xa6, 0xe3, 0xce,
+  0xb8, 0xa9, 0x3a, 0x7b,
+  0x37, 0x85, 0x51, 0x52,
+  0xc5, 0x12, 0x70, 0x62,
+  0xcc, 0x3d, 0x72, 0x22,
+  0x71, 0xc9, 0xfc, 0x16,
+  0xcb, 0x8b, 0x98, 0x20,
+  0x6b, 0x80, 0xab, 0xf1,
+  0x03, 0xfc, 0xd5, 0x99,
+  0x11, 0xf5, 0x0d, 0xb7,
+  0xb5, 0xe6, 0x77, 0x10,
+  0xce, 0xf7, 0xe1, 0xa1,
+  0xde, 0xfb, 0xd7, 0xee,
+  0x02, 0xd0, 0xb8, 0xbc,
+  0x7f, 0xe9, 0x6a, 0xb9,
+  0x43, 0x6a, 0xd2, 0x4d,
+  0x1c, 0x74, 0x31, 0x8b,
+  0xdb, 0x22, 0xec, 0x8e,
+  0xa0, 0x66, 0xad, 0xc5,
+  0xd7, 0x4b, 0x63, 0xfd,
+  0xbe, 0xde, 0xb3, 0xae,
+  0x0d, 0xda, 0x81, 0x16,
+  0x71, 0x0b, 0x2d, 0xf7,
+  0xbd, 0x32, 0x4a, 0x47,
+  0x34, 0x48, 0x04, 0xb1,
+  0xf8, 0x64, 0xf4, 0xca,
+  0x2a, 0x58, 0xc7, 0xe5,
+  0x2a, 0x59, 0xa6, 0xca,
+  0xdb, 0xc3, 0x77, 0xd8,
+  0x89, 0x68, 0xe4, 0x4e,
+  0xf5, 0x5c, 0x64, 0x01,
+  0xf3, 0x0c, 0x93, 0xf8,
+  0xc7, 0xf7, 0x27, 0xba,
+  0xeb, 0xe9, 0xa7, 0x4d,
+  0xa3, 0x4d, 0x94, 0x61,
+  0x27, 0xb0, 0xa7, 0x69,
+  0x06, 0x5c, 0x19, 0x78,
+  0x2e, 0x2b, 0xda, 0x2c,
+  0x42, 0x0a, 0x46, 0x9b,
+  0xab, 0x27, 0xb2, 0x66,
+  0x49, 0x08, 0xee, 0x52,
+  0x9e, 0xe4, 0x77, 0x7e,
+  0x55, 0xf2, 0x76, 0x3e,
+  0x66, 0xd9, 0x2c, 0xd6,
+  0x4b, 0x51, 0x51, 0x24,
+  0x08, 0x0f, 0x37, 0xe9,
+  0x29, 0x60, 0x1b, 0xdd,
+  0x74, 0xc6, 0xa1, 0x50,
+  0xc4, 0xea, 0x29, 0x58,
+  0x57, 0xb4, 0x5d, 0x40,
+  0xe7, 0xee, 0x49, 0x46,
+  0x76, 0x48, 0xb9, 0x67,
+  0xd4, 0x29, 0x92, 0x41,
+  0x85, 0x18, 0x73, 0x93,
+  0xe7, 0x4c, 0x2a, 0xd7,
+  0xba, 0x38, 0x03, 0xdb,
+  0xc8, 0xa4, 0xfc, 0x96,
+  0xf9, 0x51, 0xa4, 0xa0,
+  0x45, 0x0a, 0x40, 0x68,
+  0xa6, 0x8e, 0x50, 0xb4,
+  0x23, 0x24, 0x14, 0x7a,
+  0x5c, 0x8c, 0xf2, 0xbf,
+  0x31, 0xa4, 0xf3, 0x96,
+  0x2b, 0xb4, 0x31, 0x4f,
+  0x37, 0xff, 0xa1, 0x4e,
+  0x9d, 0x78, 0xe6, 0x2c,
+  0x3c, 0x2a, 0xf8, 0xe4,
+  0x52, 0x0b, 0x15, 0xfa,
+  0xf3, 0xd4, 0x6e, 0x9e,
+  0x44, 0x40, 0xec, 0xe9,
+  0x51, 0x22, 0xfe, 0x36,
+  0x78, 0xa8, 0xec, 0x5c,
+  0x8c, 0x23, 0xee, 0x63,
+  0xe4, 0x0d, 0xf5, 0x66,
+  0x11, 0xb5, 0x9a, 0xd5,
+  0xfc, 0x3e, 0x82, 0x42,
+  0xd2, 0x4c, 0xe1, 0xe9,
+  0x40, 0xb6, 0x5b, 0x86,
+  0x3e, 0x0b, 0x3f, 0x9f,
+  0x52, 0x1c, 0xa7, 0x94,
+  0x19, 0x2f, 0x01, 0x3c,
+  0x7c, 0x63, 0x36, 0x64,
+  0xcb, 0xed, 0xcc, 0x46,
+  0xe7, 0x1b, 0x34, 0x7b
+};
+
+#endif // PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
diff --git a/src/processor/testdata/ascii_read_av.dmp b/src/processor/testdata/ascii_read_av.dmp
new file mode 100755
index 0000000..3d2429a
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_read_av_block_write.dmp b/src/processor/testdata/ascii_read_av_block_write.dmp
new file mode 100755
index 0000000..265e2b7
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av_block_write.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_read_av_clobber_write.dmp b/src/processor/testdata/ascii_read_av_clobber_write.dmp
new file mode 100755
index 0000000..f536c72
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av_clobber_write.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_read_av_conditional.dmp b/src/processor/testdata/ascii_read_av_conditional.dmp
new file mode 100755
index 0000000..eba8f9e
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av_conditional.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_read_av_then_jmp.dmp b/src/processor/testdata/ascii_read_av_then_jmp.dmp
new file mode 100755
index 0000000..1124f40
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av_then_jmp.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_read_av_xchg_write.dmp b/src/processor/testdata/ascii_read_av_xchg_write.dmp
new file mode 100755
index 0000000..066ebf1
--- /dev/null
+++ b/src/processor/testdata/ascii_read_av_xchg_write.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_write_av.dmp b/src/processor/testdata/ascii_write_av.dmp
new file mode 100755
index 0000000..6f3e3bc
--- /dev/null
+++ b/src/processor/testdata/ascii_write_av.dmp
Binary files differ
diff --git a/src/processor/testdata/ascii_write_av_arg_to_call.dmp b/src/processor/testdata/ascii_write_av_arg_to_call.dmp
new file mode 100755
index 0000000..9c0a21c
--- /dev/null
+++ b/src/processor/testdata/ascii_write_av_arg_to_call.dmp
Binary files differ
diff --git a/src/processor/testdata/exec_av_on_stack.dmp b/src/processor/testdata/exec_av_on_stack.dmp
new file mode 100755
index 0000000..b783c43
--- /dev/null
+++ b/src/processor/testdata/exec_av_on_stack.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_divide_by_zero.dmp b/src/processor/testdata/linux_divide_by_zero.dmp
new file mode 100644
index 0000000..e7b37cf
--- /dev/null
+++ b/src/processor/testdata/linux_divide_by_zero.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_executable_heap.dmp b/src/processor/testdata/linux_executable_heap.dmp
new file mode 100644
index 0000000..f8c807f
--- /dev/null
+++ b/src/processor/testdata/linux_executable_heap.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_executable_stack.dmp b/src/processor/testdata/linux_executable_stack.dmp
new file mode 100644
index 0000000..c424cb2
--- /dev/null
+++ b/src/processor/testdata/linux_executable_stack.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_inside_module_exe_region1.dmp b/src/processor/testdata/linux_inside_module_exe_region1.dmp
new file mode 100644
index 0000000..62a7413
--- /dev/null
+++ b/src/processor/testdata/linux_inside_module_exe_region1.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_inside_module_exe_region2.dmp b/src/processor/testdata/linux_inside_module_exe_region2.dmp
new file mode 100644
index 0000000..b8473e7
--- /dev/null
+++ b/src/processor/testdata/linux_inside_module_exe_region2.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_jmp_to_0.dmp b/src/processor/testdata/linux_jmp_to_0.dmp
new file mode 100644
index 0000000..40e4b15
--- /dev/null
+++ b/src/processor/testdata/linux_jmp_to_0.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp b/src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp
new file mode 100644
index 0000000..82e266b
--- /dev/null
+++ b/src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_null_dereference.dmp b/src/processor/testdata/linux_null_dereference.dmp
new file mode 100644
index 0000000..d216a80
--- /dev/null
+++ b/src/processor/testdata/linux_null_dereference.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_null_read_av.dmp b/src/processor/testdata/linux_null_read_av.dmp
new file mode 100644
index 0000000..3bcb735
--- /dev/null
+++ b/src/processor/testdata/linux_null_read_av.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_outside_module.dmp b/src/processor/testdata/linux_outside_module.dmp
new file mode 100644
index 0000000..97f78bd
--- /dev/null
+++ b/src/processor/testdata/linux_outside_module.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_overflow.dmp b/src/processor/testdata/linux_overflow.dmp
new file mode 100755
index 0000000..c604f8f
--- /dev/null
+++ b/src/processor/testdata/linux_overflow.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_raise_sigabrt.dmp b/src/processor/testdata/linux_raise_sigabrt.dmp
new file mode 100644
index 0000000..7b6dde5
--- /dev/null
+++ b/src/processor/testdata/linux_raise_sigabrt.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_stack_pointer_in_module.dmp b/src/processor/testdata/linux_stack_pointer_in_module.dmp
new file mode 100644
index 0000000..92b6c21
--- /dev/null
+++ b/src/processor/testdata/linux_stack_pointer_in_module.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_stack_pointer_in_stack.dmp b/src/processor/testdata/linux_stack_pointer_in_stack.dmp
new file mode 100644
index 0000000..f70b881
--- /dev/null
+++ b/src/processor/testdata/linux_stack_pointer_in_stack.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp b/src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp
new file mode 100644
index 0000000..55b34e8
--- /dev/null
+++ b/src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_stacksmash.dmp b/src/processor/testdata/linux_stacksmash.dmp
new file mode 100755
index 0000000..b19a28d
--- /dev/null
+++ b/src/processor/testdata/linux_stacksmash.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_test_app.cc b/src/processor/testdata/linux_test_app.cc
new file mode 100644
index 0000000..9df6dcc
--- /dev/null
+++ b/src/processor/testdata/linux_test_app.cc
@@ -0,0 +1,82 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Breakpad test application for Linux. When run, it generates one on-demand
+// minidump and then crashes, which should generate an on-crash minidump.
+// dump_syms can be used to extract symbol information for use in processing.
+
+// To build:
+// g++ -g -o linux_test_app -I ../../ -L../../client/linux linux_test_app.cc \
+//   -lbreakpad
+// Add -m32 to build a 32-bit executable, or -m64 for a 64-bit one
+// (assuming your environment supports it). Replace -g with -gstabs+ to
+// generate an executable with STABS symbols (needs -m32), or -gdwarf-2 for one
+// with DWARF symbols (32- or 64-bit)
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "client/linux/handler/exception_handler.h"
+#include "third_party/lss/linux_syscall_support.h"
+
+namespace {
+
+// google_breakpad::MinidumpCallback to invoke after minidump generation.
+static bool callback(const char* dump_path, const char* id,
+                     void* context,
+                     bool succeeded) {
+  if (succeeded) {
+    printf("dump guid is %s\n", id);
+  } else {
+    printf("dump failed\n");
+  }
+  fflush(stdout);
+
+  return succeeded;
+}
+
+static void CrashFunction() {
+  int* i = reinterpret_cast<int*>(0x45);
+  *i = 5;  // crash!
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  google_breakpad::ExceptionHandler eh(".", NULL, callback, NULL, true);
+  if (!eh.WriteMinidump()) {
+    printf("Failed to generate on-demand minidump\n");
+  }
+  CrashFunction();
+  printf("did not crash?\n");
+  return 0;
+}
diff --git a/src/processor/testdata/linux_write_to_nonwritable_module.dmp b/src/processor/testdata/linux_write_to_nonwritable_module.dmp
new file mode 100644
index 0000000..46456ac
--- /dev/null
+++ b/src/processor/testdata/linux_write_to_nonwritable_module.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_write_to_nonwritable_region_math.dmp b/src/processor/testdata/linux_write_to_nonwritable_region_math.dmp
new file mode 100644
index 0000000..6cf9861
--- /dev/null
+++ b/src/processor/testdata/linux_write_to_nonwritable_region_math.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_write_to_outside_module.dmp b/src/processor/testdata/linux_write_to_outside_module.dmp
new file mode 100644
index 0000000..2ceeefb
--- /dev/null
+++ b/src/processor/testdata/linux_write_to_outside_module.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_write_to_outside_module_via_math.dmp b/src/processor/testdata/linux_write_to_outside_module_via_math.dmp
new file mode 100644
index 0000000..4663d3c
--- /dev/null
+++ b/src/processor/testdata/linux_write_to_outside_module_via_math.dmp
Binary files differ
diff --git a/src/processor/testdata/linux_write_to_under_4k.dmp b/src/processor/testdata/linux_write_to_under_4k.dmp
new file mode 100644
index 0000000..a3ddd62
--- /dev/null
+++ b/src/processor/testdata/linux_write_to_under_4k.dmp
Binary files differ
diff --git a/src/processor/testdata/microdump-arm.dmp b/src/processor/testdata/microdump-arm.dmp
new file mode 100644
index 0000000..cd409d3
--- /dev/null
+++ b/src/processor/testdata/microdump-arm.dmp
@@ -0,0 +1,34 @@
+W/google-breakpad( 3745): -----BEGIN BREAKPAD MICRODUMP-----
+W/google-breakpad( 3745): O A arm 02 armv7l OS VERSION INFO
+W/google-breakpad( 3745): G OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)|Qualcomm|Adreno (TM) 330
+W/google-breakpad( 3745): S 0 FFEA68C0 FFEA6000 00002000
+W/google-breakpad( 3745): S FFEA6000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080020000A000002CA705F728000000000000000A000000000000000000000028000000
+W/google-breakpad( 3745): S FFEA6180 2168EAFFC59104F77C67EAFF7C62EAFF4062EAFF1E71B3AA040000001E71B3AA4062EAFF020000007C62EAFFD062EAFFE867EAFFFAFFFFFF8263EAFFC9A404F700000000000000000000000000000000000000008363EAFF000000005462EAFFFFFFFFFF7C67EAFF1E71B3AA00000000000000003B62EAFF800000000600000000000000000000003C62EAFF06000000000000001B71B3AA000000005C62EAFF0000000000000000000000004462EAFF80000000D4ED06F7000000000000000000000000000000000000000000000000000000000000000000000000E467EAFF00000000000000000000000000000000000000000000000000000000C862EAFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008263EAFF06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA6300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003430313631380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA6480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA6600 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BAE0417D0000000000000000060000002168EAFFD4ED06F71869EAFFF867EAFF070000001B71B3AAA76805F70000000000000000E467EAFF000000000000000000000000000000000000000000000000FFFFFFFF004000002768EAFF
+W/google-breakpad( 3745): S FFEA6780 0000000000000000285F20ABB467EAFF030000002768EAFF200000007702B3AA1869EAFF1F0000000868EAFF6347AEAA1869EAFF200000001869EAFF1F0000002768EAFF0868EAFF1869EAFF4548AEAA00000000800000000868EAFF2168EAFFD4ED06F7B549AEAA00000000000000000000000000000000010000000000000058585858585800002F646174612F6C6F63616C2F746D702F627265616B7061642E3430313631380000FD0000000000000000000031000000F941000002000000D0070000D0070000000000000000000000000000000000000010000000000000001000000000000080B220AB9468EAFFA0B220ABD53AAEAA3069EAFF914BAEAA3069EAFF4882B3AA083020ABF068EAFFA20E0000FFFFFFFF083020ABE99902F7C8DE08F7FF8102F700000000D0DE08F70069EAFFF068EAFFF868EAFFB3B2AEAAD068EAFF0000000000000000D4ED06F70500000000000000000000000000000003000000040000000000000000000000FFFFFFFF00000000FFFFFFFF00000000
+W/google-breakpad( 3745): S FFEA6900 010000000000000000000000000000000000000000000000485F20AB000000000000000000000000475F20AB285F20ABB0B220AB05000000D1D320AB379304F7AAB220AB80B220ABF869EAFF3BBAB3AA040000003BBAB3AAF869EAFF03000000346AEAFF906AEAFF346FEAFFFBFFFFFF605420ABC9A404F74C6AEAFFA86AEAFF4C6FEAFFEDFFFFFF303D20AB046AEAFF6FCAB3AA0C6AEAFFFFFFFFFFF4D306F73BBAB3AA0000000000000000F369EAFF0000000019000000EC69EAFF00000000F469EAFF050000000000000036BAB3AA00000000146AEAFF0C6AEAFFF469EAFF00000000FC69EAFF00000000D4ED06F70000000000000000000000000000000000000000000000000000000000000000000000002C6FEAFF0000000000000000DC3CB4AA000000005C6AEAFF786AEAFF00000000806AEAFF0000000000000000DC3CB4AA906AEAFF00000000986AEAFF0000000000000000000000000000000000000000000000005D6BEAFF30A820ABA06BEAFF0000000028BAB3AA0D000000
+W/google-breakpad( 3745): S FFEA6A80 38BAB3AA01000000605420AB05000000FAB9B3AA0D00000083C9B3AA06000000303D20AB13000000746FEAFF0B00000000A820ABF8A720AB904020AB78A820ABC52DAEAAC72DAEAA0A0000000A0000000000000046696C654944546573742F3100A820ABE06AEAFFFAB9B3AA0D0000004944546573742F3100000000F86AEAFFEC6AEAFF46696C6572000000874220ABCD6EEAFF6163B0AA6F000000864220ABCD6EEAFF6163B0AA65000000BDC620ABCD6EEAFF6163B0AA70000000BCC620ABCD6EEAFF6163B0AA79000000BBC620ABCD6EEAFF6163B0AA54000000BAC620ABCD6EEAFF6163B0AA65000000B9C620ABCD6EEAFF6163B0AA74000000B8C620ABCD6EEAFF6163B0AA61000000B7C620ABCD6EEAFF6163B0AA6C000000B6C620ABCD6EEAFF6163B0AA70000000B5C620ABCD6EEAFF6163B0AA6D000000B4C620ABCD6EEAFF6163B0AA65000000B3C620ABCD6EEAFF6163B0AA54000000B2C620ABCD6EEAFF6163B0AA68000000B1C620ABCD6EEAFF6163B0AA74000000B0C620AB
+W/google-breakpad( 3745): S FFEA6C00 CD6EEAFF6163B0AA67000000A7B220ABCD6EEAFF6163B0AA6E000000A6B220ABCD6EEAFF6163B0AA69000000A5B220ABCD6EEAFF6163B0AA72000000A4B220ABCD6EEAFF6163B0AA74000000A3B220ABCD6EEAFF6163B0AA53000000A2B220ABCD6EEAFF6163B0AA44000000A1B220ABCD6EEAFF6163B0AA4D000000A0B220ABCD6EEAFF6163B0AA690000009FB220ABCD6EEAFF6163B0AA690000009EB220ABCD6EEAFF6163B0AA630000009DB220ABCD6EEAFF6163B0AA730000009CB220ABCD6EEAFF6163B0AA74000000435F20ABCD6EEAFF6163B0AA65000000425F20AB00000000C4D720AB310000007762AEAAC4D720AB7E6EEAFFC06EEAFF693BB2AAC4D720AB01CAB3AAC4D720AB01CAB3AAC4D720AB00000000C06EEAFF20000000C06EEAFF08100000088120ABFBACB2AA088120ABC4D720AB01CAB3AAC4D720AB016FEAFF6163B0AA6D0000003B5F20ABCD6EEAFF6163B0AA670000003A5F20ABCD6EEAFF6163B0AA69000000395F20ABCD6EEAFF6163B0AAB8E8B4AACC6DEAFF
+W/google-breakpad( 3745): S FFEA6D80 15000000010000007D6EEAFF00D820ABC06EEAFF08100000088120AB01000000D83420ABC7AFB2AA01000000C4D720AB01CAB3AA0810000000000000200000002B0000002D000000B8E8B4AAB8E8B4AA00D820AB1C6EEAFF0000000000000000D06DEAFFD06DEAFF0A0000000A000000000000000000000000000000A35DB3AA01000000000000000A00000031000000000000007D6EEAFF7D6EEAFF005DB3AA286EEAFF5F24B2AAB8E8B4AA20D820AB12000000BCE8B4AAFC6EEAFFBB2CB2AAB8E8B4AA20D820ABB8D720AB02000000B0D720AB000000C0B8D720ABB8D720ABFC6EEAFF29F003F7B8D720ABC0D720ABB8D720ABA86EEAFFFC6EEAFF595D02F7B542AEAAC342AEAAA86EEAFF073BAEAAAC6EEAFFD19DAFAA00D820AB20000000576FEAFFD53AAEAA546FEAFF914BAEAA546FEAFF76C9B3AA546FEAFF146FEAFFBB00000048070000E0D720AB0300000018D820ABF4E3B4AA18D820AB0700000000000000485420ABD0D720AB8399B0AA23C8B3AAD0D720ABD0D720ABBAE0417D
+W/google-breakpad( 3745): S FFEA6F00 23C8B3AADC31B4AAD0D720AB783420AB49010000883520ABD0D720AB606FEAFFD83420AB41A7B0AA08000000010000001000000001000000783420AB8399B0AA485420AB783420ABDD1CD2F675A8B0AA08000000010000005AC8B3AAC85420AB08000000010000000800000001000000C85420AB00000000DD1CD2F649010000783420AB883520AB01000000FDA8B0AA715FB0AA0000000000000000C78404F7D160B0AA783420AB883520AB000000000100000000000000F04720ABFDAAB0AAF4E8B4AA01000000DD1CD2F64901000040E4B4AA40E4B4AA2EBCB3AAE7C8B3AA1EC9B3AA33C9B3AA02000000B0B220AB2C70EAFF00000000783420AB02000000192CAEAA0000000000000000000000006C70EAFF619AB0AA2C70EAFF7470EAFF020000003B2CAEAA02000000010000008070EAFF7470EAFF8070EAFF9F5E02F75870EAFF00000000000000000000000000000000842DAEAA00B9B4AA98B8B4AA90B8B4AAF8B8B4AA00000000FF2608F7020000007F7BEAFF0000000000000000
+W/google-breakpad( 3745): S FFEA7080 B97BEAFFDE7BEAFF0A7CEAFF1D7CEAFFD97DEAFF167EEAFF2F7EEAFF447EEAFF6E7EEAFF877EEAFF9E7EEAFFC87EEAFFE37EEAFFFD7EEAFF0A7FEAFF247FEAFF437FEAFFC27FEAFF0000000010000000D6B00700060000000010000011000000640000000300000034D0ACAA040000002000000005000000080000000700000000F007F7080000000000000009000000282DAEAA0B000000000000000C000000000000000D000000000000000E000000000000001700000000000000190000006C71EAFF1A0000001F0000001F000000D57FEAFF0F0000007C71EAFF00000000000000000000000000000000BAE0417DA395F6D9D5EFEE82959378DA76386C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7200 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7380 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7500 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7680 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7800 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7980 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): S FFEA7B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F646174612F6C6F63616C2F746D702F627265616B7061645F756E69747465737473002D2D67746573745F66696C7465723D2A4D6963726F2A005F3D2F646174612F6C6F63616C2F746D702F627265616B7061645F756E6974746573747300454D554C415445445F53544F524147455F534F555243453D2F6D6E742F7368656C6C2F656D756C6174656400414E44524F49445F444154413D2F6461746100424F4F54434C415353504154483D2F73797374656D2F6672616D65776F726B2F636F72652D6C69626172742E6A61723A2F73797374656D2F6672616D65776F726B2F636F6E7363727970742E6A61723A2F73797374656D2F6672616D65776F726B2F6F
+W/google-breakpad( 3745): S FFEA7C80 6B687474702E6A61723A2F73797374656D2F6672616D65776F726B2F636F72652D6A756E69742E6A61723A2F73797374656D2F6672616D65776F726B2F626F756E6379636173746C652E6A61723A2F73797374656D2F6672616D65776F726B2F6578742E6A61723A2F73797374656D2F6672616D65776F726B2F6672616D65776F726B2E6A61723A2F73797374656D2F6672616D65776F726B2F74656C6570686F6E792D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F766F69702D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F696D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F6D6D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F616E64726F69642E706F6C6963792E6A61723A2F73797374656D2F6672616D65776F726B2F6170616368652D786D6C2E6A617200504154483D2F7362696E3A2F76656E646F722F62696E3A2F73797374656D2F7362696E3A2F7379
+W/google-breakpad( 3745): S FFEA7E00 7374656D2F62696E3A2F73797374656D2F7862696E004C4F4F505F4D4F554E54504F494E543D2F6D6E742F6F626200414E44524F49445F524F4F543D2F73797374656D00454D554C415445445F53544F524147455F5441524745543D2F73746F726167652F656D756C6174656400414E44524F49445F53544F524147453D2F73746F7261676500414E44524F49445F534F434B45545F616462643D31310045585445524E414C5F53544F524147453D2F73746F726167652F656D756C617465642F6C656761637900414E44524F49445F4153534554533D2F73797374656D2F617070004C445F5052454C4F41443D6C6962736967636861696E2E736F0052414E444F4D3D313131373200415345435F4D4F554E54504F494E543D2F6D6E742F6173656300414E44524F49445F50524F50455254595F574F524B53504143453D392C300053595354454D534552564552434C415353504154483D2F73797374656D2F6672616D65776F726B2F73657276696365732E6A61723A2F73797374656D2F
+W/google-breakpad( 3745): S FFEA7F80 6672616D65776F726B2F65746865726E65742D736572766963652E6A61723A2F73797374656D2F6672616D65776F726B2F776966692D736572766963652E6A617200414E44524F49445F424F4F544C4F474F3D31002F646174612F6C6F63616C2F746D702F627265616B7061645F756E69747465737473000000000000000000
+W/google-breakpad( 3745): C 06000040000000000000000000000000000000000069EAFFF068EAFFF868EAFF0469EAFFE068EAFF0069EAFF3069EAFFA20E000000000000C068EAFF07B3AEAA07B3AEAA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3745): M AAACD000 00000000 0007C000 DA7778FB66018A4E9B4110ED06E730D00 breakpad_unittests
+W/google-breakpad( 3745): M F6FCA000 00000000 00004000 56B149396A4DAF176E26B4A85DA87BF30 libnetd_client.so
+W/google-breakpad( 3745): M F6FEE000 00000000 00004000 DFCD7772F3A5BD1E84A50C4DBFDE6F570 libstdc++.so
+W/google-breakpad( 3745): M F6FF2000 00000000 00019000 AE3467401278371A956801500FC8187D0 libm.so
+W/google-breakpad( 3745): M F700C000 00000000 00007000 0A492DEF82842051996A468D87F23F010 liblog.so
+W/google-breakpad( 3745): M F7014000 00000000 0005A000 167F187B09A27F7444EF989603AAFD3D0 libc.so
+W/google-breakpad( 3745): -----END BREAKPAD MICRODUMP-----
diff --git a/src/processor/testdata/microdump-arm64.dmp b/src/processor/testdata/microdump-arm64.dmp
new file mode 100644
index 0000000..f5cc4a4
--- /dev/null
+++ b/src/processor/testdata/microdump-arm64.dmp
@@ -0,0 +1,45 @@
+W/google-breakpad( 3728): -----BEGIN BREAKPAD MICRODUMP-----
+W/google-breakpad( 3728): O A arm64 02 aarch64 OS 64 VERSION INFO
+W/google-breakpad( 3728): S 0 0000007FE2BA6120 0000007FE2BA6000 0000000000003000
+W/google-breakpad( 3728): S 0000007FE2BA6000 0700000000000000A060BAE27F0000007060BAE27F000000E4006A5F550000007060BAE27F000000FC006A5F550000001000000000000000D0006E5F550000002061BAE27F0000004C6E635F550000002061BAE27F0000002061BAE27F000000F060BAE27F000000D0FFFFFF80FFFFFFD060BAE27F00000020142B807F00000010E04E9555000000E065BAE27F000000A061BAE27F00000000406B5F55000000D060BAE27F00000058142B807F00000010E04E955500000000000000000000000104104001041040FFFFFFFFFFFFFFFFF060BAE27F00000048E62A807F000000E8C036807F00000040E62A807F0000002061BAE27F000000E86E635F55000000506ABAE27F000000E065BAE27F000000A061BAE27F000000FEFE2E7273636471507ABAE27F0000003C32665F55000000D02250955500000070E14E955500000070E14E955500000090E34E95550000004A62D1F64901000000F06D5F5500000001000000000000004962D1F6490100000100000000000000C9356B5F55000000
+W/google-breakpad( 3728): S 0000007FE2BA6180 00000000000000009863BAE27F0000000000000005000000000000000000000003000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F646174612F6C6F63616C2F746D702F627265616B7061642E323839333833000F62BAE27F000000F061BAE27F000000D0F34E9555000000000000000000000000000000000000000000000000000000CAF34E9555000000A0F34E95550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6300 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6480 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6600 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004067BAE27F000000A04E2D807F0000004067BAE27F000000104E2D807F000000186E33807F0000002000000000000000006033807F000000007033807F00000090E64E9555000000000000000000000000000000000000000000000000000000A067BAE27F00000010C22A807F000000020000000000000000F06D5F550000002079BAE27F00000058F66D5F55000000D067BAE27F000000986A2D807F000000
+W/google-breakpad( 3728): S 0000007FE2BA6780 80E64E9555000000006033807F00000090E64E955500000058F66D5F5500000020B5625F550000001CB5625F550000000068BAE27F000000C8C12A807F0000004868BAE27F0000008068BAE27F0000002079BAE27F00000058F66D5F5500000020B5625F550000008068BAE27F0000002079BAE27F00000058F66D5F550000001068BAE27F000000D0B9665F550000008078BAE27F000000987C665F550000002079BAE27F00000070E14E955500000060E04E9555000000000000000000000000000000000000002F000000000000000000000000000000000000000000000000000000000000004968BAE27F0000004868BAE27F0000002F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6C00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6D80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA6F00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008070BAE27F000000DC4C2E807F0000002300000000000000000C509555000000702333807F0000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7080 B070BAE27F000000B8672E807F000000C070BAE27F000000DC4C2E807F0000002E00000000000000000C5095550000001071BAE27F000000A4882E807F0000000073BAE27F000000B073BAE27F0000000D000000000000000D00000000000000DB336B5F55000000702333807F0000005071BAE27F000000A4882E807F0000004073BAE27F000000F073BAE27F0000007071BAE27F0000001C8A2E807F000000F472BAE27F000000F073BAE27F0000000073BAE27F000000E1336B5F55000000E1336B5F55000000702333807F0000000000000000000000050000000000000005000000000000004073BAE27F000000F078BAE27F000000F0BB2E807F000000702333807F00000090E34E955500000090384F955500000090E34E95550000004A62D1F64901000000F06D5F5500000001000000000000004962D1F6490100000100000000000000C9356B5F55000000000000000000000050E24E9555000000D3416B5F550000000A426B5F5500000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7200 00000000000000000000000000000000000000000000000000000000000000002F73BAE27F0000005073BAE27F0000003F73BAE280FFFFFF2873BAE27F0000000000000000000000107ABAE27F0000000000000000000000207ABAE27F0000000000000000000000A772BAE27F0000007F73BAE280FFFFFFCDCCCCCCCCCCCCCC0000000000000000507ABAE27F000000E46E30807F000000607ABAE27F000000E872BAE27F000000E772BAE27F000000000000007F000000030000007F000000000000000000000003000000CCCCCCCC0000000000000000E07ABAE27F00000000000000000000006000655F550000008DEE4E95000000008100BAE27F000000000000000000000000000000000000000000000000000000507ABAE27F000000207ABAE27F000000D0FFFFFF80FFFFFF307ABAE27F000000D0FFFFFF80FFFFFFF073BAE27F0000000000000000000000507ABAE27F000000507ABAE27F000000107ABAE27F000000C8FFFFFF80FFFFFF207ABAE27F000000C8FFFFFF80FFFFFF
+W/google-breakpad( 3728): S 0000007FE2BA7380 A073BAE27F00000060DC655F550000004074BAE27F0000000000000000000000E07ABAE27F000000E07ABAE27F000000CE336B5F550000000D00000000000000A0336B5F550000000D00000000000000C6F34E95550000008179BAE27F0000000074BAE27F00000060DC655F55000000DE336B5F550000000100000000000000C0384F95550000000500000000000000A8394F955500000013000000000000004074BAE27F00000060DC655F55000000C3F34E95550000008179BAE27F000000A0336B5F550000000D00000000000000C2F34E95550000008179BAE27F0000008074BAE27F00000060DC655F55000000C1F34E95550000008179BAE27F000000A074BAE27F00000060DC655F55000000C0F34E95550000008179BAE27F000000C074BAE27F00000060DC655F55000000BFF34E95550000008179BAE27F000000E074BAE27F00000060DC655F55000000BEF34E95550000008179BAE27F0000000075BAE27F00000060DC655F55000000BDF34E95550000008179BAE27F000000
+W/google-breakpad( 3728): S 0000007FE2BA7500 2075BAE27F00000060DC655F55000000BCF34E95550000008179BAE27F0000004075BAE27F00000060DC655F550000006B79BAE27F0000008179BAE27F0000006075BAE27F00000060DC655F550000006A79BAE27F0000008179BAE27F0000008075BAE27F00000060DC655F550000006979BAE27F0000008179BAE27F000000A075BAE27F00000060DC655F550000006879BAE27F0000008179BAE27F000000C075BAE27F00000060DC655F550000006779BAE27F0000008179BAE27F000000E075BAE27F00000060DC655F550000006679BAE27F0000008179BAE27F0000000076BAE27F00000060DC655F550000006579BAE27F0000008179BAE27F0000002076BAE27F00000060DC655F550000006479BAE27F0000008179BAE27F0000004076BAE27F00000060DC655F550000006379BAE27F0000008179BAE27F0000006076BAE27F00000060DC655F550000006279BAE27F0000008179BAE27F0000008076BAE27F00000060DC655F550000006179BAE27F0000008179BAE27F000000
+W/google-breakpad( 3728): S 0000007FE2BA7680 A076BAE27F00000060DC655F550000006079BAE27F0000008179BAE27F000000C076BAE27F00000060DC655F550000005F79BAE27F0000008179BAE27F000000E076BAE27F00000060DC655F550000005E79BAE27F0000008179BAE27F0000000077BAE27F00000060DC655F550000005D79BAE27F0000008179BAE27F0000002077BAE27F00000060DC655F55000000E077BAE27F000000AC74685F55000000F077BAE27F000000AC74685F550000004023509555000000A078BAE27F00000010235095550000009878BAE27F0000002078BAE27F000000AC74685F550000008077BAE27F000000C006635F5500000098225095550000003100000000000000B077BAE27F00000088BB695F5500000098225095550000005979BAE27F0000005A79BAE27F0000004488685F550000001078BAE27F00000054BF695F55000000B078BAE27F000000010000000000000050834F95550000008078BAE27F0000005979BAE27F000000982250955500000098225095550000000100000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7800 2D00000000000000C8FF6D5F55000000F078BAE27F00000068C4695F550000005A79BAE27F0000001023509555000000200000000000000098225095550000000100000000000000007ABAE27F000000B078BAE27F000000CCBB2E807F000000B078BAE27F000000FCBB2E807F000000702333807F0000000D00000000000000020000000000000090E34E9555000000F078BAE27F000000CCBB2E807F000000F078BAE27F000000FCBB2E807F000000702333807F000000190000000000000090384F955500000090E34E95550000004A62D1F649010000CE336B5F55000000507ABAE27F000000443272DD1F92C7154079BAE27F000000C0752E807F00000090384F955500000090E34E95550000005079BAE27F000000DC336B5F550000008079BAE27F000000A04E2D807F0000008079BAE27F000000104E2D807F000000186E33807F0000006001000000000000006033807F000000007033807F000000F022509555000000C8FFFFFF80FFFFFFC079BAE27F00000090DD625F55000000
+W/google-breakpad( 3728): S 0000007FE2BA7980 60235095550000000700000000000000D7F66D5F55000000D0F66D5F55000000C079BAE27F00000068DD625F5500000010245095550000000000000000000000F079BAE27F000000C4F2655F55000000007ABAE27F000000F031665F55000000D022509555000000D022509555000000107ABAE27F00000060FE655F55000000107ABAE27F0000001441665F55000000407ABAE27F000000F031665F55000000D02250955500000070E14E9555000000607ABAE27F000000F031665F55000000507ABAE27F0000001832665F55000000807ABAE27F0000008C44665F55000000D02250955500000070E14E955500000020000000000000000100000000000000A07ABAE27F000000B845665F5500000090384F9555000000D022509555000000E07ABAE27F0000007446665F55000000A0394F955500000070E14E955500000090E34E955500000001000000000000004A62D1F6490100005EC60A0000000000207BBAE27F0000004C49665F5500000070E14E95550000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7B00 90E34E955500000002000000000000000000000000000000D048665F55000000C07BBAE27F000000684B665F55000000000000000000000070E14E9555000000020000000000000060B3625F550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C07BBAE27F000000E0054F9555000000C07BBAE27F000000604B665F55000000F07BBAE27F00000098B3625F550000001C7CBAE27F000000887CBAE27F0000000200000000000000A0F34E9555000000207CBAE27F0000008CC32A807F000000A07CBAE27F0000000000000000000000887CBAE27F0000000010000001000000507CBAE27F00000004B5625F550000000000000000000000000000000000000000000000000000000000000000000000000000000000000050B635807F0000000000000000000000D07D6D5F55000000E07D6D5F55000000A07E6D5F55000000
+W/google-breakpad( 3728): S 0000007FE2BA7C80 02000000000000007F8BBAE27F00000000000000000000000000000000000000B98BBAE27F000000DE8BBAE27F0000000A8CBAE27F0000001D8CBAE27F000000D98DBAE27F000000168EBAE27F0000002F8EBAE27F000000448EBAE27F0000006E8EBAE27F000000878EBAE27F0000009E8EBAE27F000000C88EBAE27F000000E38EBAE27F000000FD8EBAE27F0000000A8FBAE27F000000248FBAE27F000000438FBAE27F000000C28FBAE27F00000000000000000000002100000000000000008035807F0000001000000000000000FB00000000000000060000000000000000100000000000001100000000000000640000000000000003000000000000004080605F550000000400000000000000380000000000000005000000000000000800000000000000070000000000000000A035807F000000080000000000000000000000000000000900000000000000A4B4625F550000000B0000000000000000000000000000000C0000000000000000000000000000000D00000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7E00 00000000000000000E000000000000000000000000000000170000000000000000000000000000001900000000000000687EBAE27F0000001F00000000000000D58FBAE27F0000000F00000000000000787EBAE27F00000000000000000000000000000000000000443272DD1F92C715BDF280FA6D8DE039616172636836340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA7F80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8100 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8280 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8400 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8580 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8700 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8880 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): S 0000007FE2BA8A00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F
+W/google-breakpad( 3728): S 0000007FE2BA8B80 646174612F6C6F63616C2F746D702F627265616B7061645F756E69747465737473002D2D67746573745F66696C7465723D2A4D6963726F2A005F3D2F646174612F6C6F63616C2F746D702F627265616B7061645F756E6974746573747300454D554C415445445F53544F524147455F534F555243453D2F6D6E742F7368656C6C2F656D756C6174656400414E44524F49445F444154413D2F6461746100424F4F54434C415353504154483D2F73797374656D2F6672616D65776F726B2F636F72652D6C69626172742E6A61723A2F73797374656D2F6672616D65776F726B2F636F6E7363727970742E6A61723A2F73797374656D2F6672616D65776F726B2F6F6B687474702E6A61723A2F73797374656D2F6672616D65776F726B2F636F72652D6A756E69742E6A61723A2F73797374656D2F6672616D65776F726B2F626F756E6379636173746C652E6A61723A2F73797374656D2F6672616D65776F726B2F6578742E6A61723A2F73797374656D2F6672616D65776F726B2F6672616D6577
+W/google-breakpad( 3728): S 0000007FE2BA8D00 6F726B2E6A61723A2F73797374656D2F6672616D65776F726B2F74656C6570686F6E792D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F766F69702D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F696D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F6D6D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F616E64726F69642E706F6C6963792E6A61723A2F73797374656D2F6672616D65776F726B2F6170616368652D786D6C2E6A617200504154483D2F7362696E3A2F76656E646F722F62696E3A2F73797374656D2F7362696E3A2F73797374656D2F62696E3A2F73797374656D2F7862696E004C4F4F505F4D4F554E54504F494E543D2F6D6E742F6F626200414E44524F49445F524F4F543D2F73797374656D00454D554C415445445F53544F524147455F5441524745543D2F73746F726167652F656D756C6174656400414E44524F49445F53544F524147453D2F73
+W/google-breakpad( 3728): S 0000007FE2BA8E80 746F7261676500414E44524F49445F534F434B45545F616462643D31310045585445524E414C5F53544F524147453D2F73746F726167652F656D756C617465642F6C656761637900414E44524F49445F4153534554533D2F73797374656D2F617070004C445F5052454C4F41443D6C6962736967636861696E2E736F0052414E444F4D3D313638323700415345435F4D4F554E54504F494E543D2F6D6E742F6173656300414E44524F49445F50524F50455254595F574F524B53504143453D392C300053595354454D534552564552434C415353504154483D2F73797374656D2F6672616D65776F726B2F73657276696365732E6A61723A2F73797374656D2F6672616D65776F726B2F65746865726E65742D736572766963652E6A61723A2F73797374656D2F6672616D65776F726B2F776966692D736572766963652E6A617200414E44524F49445F424F4F544C4F474F3D31002F646174612F6C6F63616C2F746D702F627265616B7061645F756E69747465737473000000000000000000
+W/google-breakpad( 3728): C 06000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000506ABAE27F000000E065BAE27F000000E061BAE27F00000000406B5F550000008062BAE27F0000005062BAE27F000000514C6B5F55000000910E0000000000002062BAE27F000000F061BAE27F0000002061BAE27F0000006C6F635F550000002061BAE27F0000006C6F635F550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+W/google-breakpad( 3728): M 000000555F608000 0000000000000000 00000000000C0000 D6D1FEC9A15DE7F38A236898871A2E770 breakpad_unittests
+W/google-breakpad( 3728): M 0000007F801F6000 0000000000000000 0000000000013000 7735F44BA6D7C27FD5C3636A43369B7C0 libnetd_client.so
+W/google-breakpad( 3728): M 0000007F80229000 0000000000000000 0000000000014000 380C0B7CD8FA3F094BC3BA58A81CBAD00 libstdc++.so
+W/google-breakpad( 3728): M 0000007F8023D000 0000000000000000 000000000003D000 F832D47D1E237E46D835991594DA6E890 libm.so
+W/google-breakpad( 3728): M 0000007F8027B000 0000000000000000 0000000000019000 C407B93F87A835BE05451FC7B0B3E65E0 liblog.so
+W/google-breakpad( 3728): M 0000007F80295000 0000000000000000 000000000009E000 479D5438753E27F019F2C9980DDBF4F30 libc.so
+W/google-breakpad( 3728): M 0000007F80341000 0000000000000000 0000000000013000 9DA3FF8EF9CA0FDC481292EE530DF6EC0 libsigchain.so
+W/google-breakpad( 3728): M 0000007F80358000 0000000000000000 0000000000002000 672B2CD6CF8AF6C43BD70F2AB02B3D0C0 linux-gate.so
+W/google-breakpad( 3728): -----END BREAKPAD MICRODUMP-----
diff --git a/src/processor/testdata/microdump-mips32.dmp b/src/processor/testdata/microdump-mips32.dmp
new file mode 100644
index 0000000..1b02fa9
--- /dev/null
+++ b/src/processor/testdata/microdump-mips32.dmp
@@ -0,0 +1,37 @@
+F/google-breakpad(11976): -----BEGIN BREAKPAD MICRODUMP-----
+F/google-breakpad(11976): V UNKNOWN:0.0.0.0
+F/google-breakpad(11976): O A mips 02 mips 3.0.8-g893bf16 #7 SMP PREEMPT Fri Jul 10 15:20:59 PDT 2015
+F/google-breakpad(11976): G UNKNOWN
+F/google-breakpad(11976): S 0 7F92FC38 7F92F000 00002000
+F/google-breakpad(11976): S 7F92F000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F92F180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F92F300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C801007701000000880140770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094020077010000008801407700000000880200770100000088014077000000005043BD770000000099999999000000000500000000000000030000000945BA7791F4927F0000000090F8927F90F4927F5043BD7700F8927F000000005432B67790F4927F00000000
+F/google-breakpad(11976): S 7F92F480 18000077000000005043BD77000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF000000005043BD77000000009402B877FFFFFFFF0000400000004000000040000456B2774041C177000000005043BD7700000000FFFFFFFF9402B87700000000000000005043BD77C000407700000077700FB877000040006805B877E02FBA7700000000C8C6BA77000000005043BD77000000009402B877EC0EB877D02F007723000000C0004077FC0300000030B7770487B7775043BD77044BBF779402B8770000000000000000010000005043BD7700000000020000000000000000000077040000005043BD7754D2BC771E000000E00C4077
+F/google-breakpad(11976): S 7F92F600 D02F007701000000C0004077FC0300000030B7770487B777C0004077FC0300000030B7770487B77700000000010000005043BD770030B777000000000000000000000077370000000100000054D2BC770200000060024077C8004077888BB77717000000400A4077C8004077888BB7770100000054D2BC775043BD77A00140771000000000700377007003000030B777C00040772865BD775043BD77FC8CB777C0004077020000000070037780000000C00040772865BD77286AB77760024077C80040774CA4B777286AB777400A4077C80040774CA4B7775043BD7794D2BC770010000060300077C0004077020000005043BD77000000008001407702000000180000000000000028700377DCB0B77700000000000000000000000024AAB7775043BD7780D2BC7750300077180000000004000080D2BC77B8F7927F8C37BD7778D2BC77A0F8927F5043BD773C7EB9775043BD77B8F7927F9837BD779C37BD77B8F7927F8C37BD7778D2BC77A0F8927FE87BBC77307DB9770300000000000000
+F/google-breakpad(11976): S 7F92F780 5043BD77FF00000028700377000400005043BD77B8F7927F8C37BD77E03ABD7798A4BA770000000070A7BA7784A6BA7700000000A8A8BA77E87BBC776090B67702000000A0F8927FE03ABD770445BA77A4F9927FA0F9927F7CD2BC77E87BBC7728A6BF7778F5B5778004000000040000A4F9927FF4E0B5775043BD77F844BA77A0F8927F070000005043BD770400BC77A0F8927F070000005043BD77E03ABD775043BD77D0F4B577E03ABD7788EEB5775043BD77E03ABD7700000000E03ABD775043BD7700000000A002007701000000880140770445BA77A4F9927F64DCB3775043BD770000000002000000A0F8927F5043BD770445BA77A4F9927F02000000A0F8927F5426B2779402B877FFFFFFFFA0F9927FA4F9927F5043BD770456B277736F667469727100313736373431313720302032363138303938203020313436D002007701000000880140773431383020313136383631335043BD772031333136373332504E00775043BD77C000000000000000040000000000000000000000
+F/google-breakpad(11976): S 7F92F900 0000000024AAB777302030203020302030203020302032335043BD7720302030203020382865BD774000000000010000800000000030BD77504E00771800000050000000004E007702000000100000007CD2BC77E87BBC7728A6BF772C60B9772030203020302030020000000030BD7700000000000000005043BD776CD2BC7740000000DCDEB877203020302030203020302030203020305043BD7720302000010000008CD2BC775043BD77010000005043BD77000000005043BD770030BD77008D4077400000000030BD770030BD770030BD77E4F9B777A8C8B877F0C2B1775043BD770030BD775043BD77010000005043BD770000000000000000C000407768D2BC7770D2BC7702000000C4CFB877FCD185095043BD775043BD77FCD185095043BD7758F1B177C0004077144FB177D02F007701000000C0004077FC0300000030B7770487B77707000000AC50B17700000000B452C07700000000010000005043BD77B866B177040000000000000000000077380000000100000054D2BC77
+F/google-breakpad(11976): S 7F92FA80 0100000000024077C8004077888BB7770300000060CDC0775043BD7788C2BE770100000003000000D02F007704000000C0004077FC0300000030B7770487B777C00040772865BD775043BD77FC8CB77700000000010000005043BD77400000005043BD770400000000400000204E00775043BD7700000000000000000400000000000000000000000000000024AAB7770010000030D9BE7704000000040000005043BD7700024077009003772865BD7700000000000000000000000000000000204E00770800000020000000004E00770000000000000000EC17C87700E0C77700E0C7772C60B9774489B7770100000000000000588AB77700000000000000005043BD770800000000000000DCDEB8775043BD7701000000400D4077004000005043BD77009003770000000048B7B7775043BD770450C0775043BD77DCDEB877080000080020C177A80600002090C877040000000100000054FC927F0400000000E0C77784CBC177B00DC177C011BF772090C877000000000800000830800377
+F/google-breakpad(11976): S 7F92FC00 000000003828C17700000000000000002472C376E4FC927F5043BD775014C177E4FC927F004000005014C17700E0C77700E0C7778C2BC177C4FC927FC4FC927FC4FC927FC4FC927F2090C877C4FC927FC4FC927FEC10C17700000000E4FD927F010000006C11C1772090C8772472C3760100000000000000E86A98771012C177B0FC927FA821C77700000000000000000000000001000000FFFFFFFF080000002090C8770090BE7700500200E4FD927F03000000FFFFFFFF00000000000000000000000000000000000000000000000014000000FFFFFFFF000000000000000000000000000000006C0FC177000000000000000003000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000030000000400000034FD927F34FD927F0000000040FD927F40FD927F0000000013AD8CAFECFD927F6465B177010000000000000000000000000000005043BD778B0000000100000060C7C077FFFFFFFFE86A9877
+F/google-breakpad(11976): S 7F92FD80 00E09677500EC1771C40C07700000000F0FB927F0090C0772090C877CCEDBE77480DC877500DC877580DC877600DC877680DC87700E0967701000000DC0DC1770100000000000000E86A987764B1BE7700000000000000000000000000000000010000007E0B937F000000008E0B937FA00B937FB30B937FD60B937FE10B937FFC0B937F070C937F1E0C937F370C937F4B0C937F640C937FE30C937FFD0C937FB90E937FCE0E937FE10E937F0D0F937F370F937F470F937F510F937F8E0F937FAD0F937FC20F937F000000001000000000000000060000000010000011000000640000000300000034E0C0770400000020000000050000000B000000070000000090BE77080000000000000009000000B00DC1770B000000000000000C000000000000000D000000000000000E00000000000000170000000000000019000000D8FE927F1F000000EC0F937F00000000000000000000000013AD8CAF8ABDF68B3A80A7E02317024E000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F92FF00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930080 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930200 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930380 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930500 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930680 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930800 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930980 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): S 7F930B00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E2F63726173685F6578616D706C65005F3D2E2F63726173685F6578616D706C6500414E44524F49445F444154413D2F64617461005345434F4E444152595F53544F524147453D2F73746F726167652F7364636172643100484F4D453D2F6461746100414E44524F49445F4153534554533D2F73797374656D2F617070005445524D3D767431303000414E44524F49445F534F434B45545F616462643D313000414E44524F49445F53544F524147453D2F73746F72616765004D4B53483D2F73797374656D2F62696E2F7368004C4F4F505F4D4F554E54504F494E543D2F6D6E742F6F62620053595354454D534552564552434C415353504154483D2F7379737465
+F/google-breakpad(11976): S 7F930C80 6D2F6672616D65776F726B2F73657276696365732E6A61723A2F73797374656D2F6672616D65776F726B2F65746865726E65742D736572766963652E6A61723A2F73797374656D2F6672616D65776F726B2F776966692D736572766963652E6A617200415345435F4D4F554E54504F494E543D2F6D6E742F6173656300424F4F54434C415353504154483D2F73797374656D2F6672616D65776F726B2F636F72652D6C69626172742E6A61723A2F73797374656D2F6672616D65776F726B2F636F6E7363727970742E6A61723A2F73797374656D2F6672616D65776F726B2F6F6B687474702E6A61723A2F73797374656D2F6672616D65776F726B2F636F72652D6A756E69742E6A61723A2F73797374656D2F6672616D65776F726B2F626F756E6379636173746C652E6A61723A2F73797374656D2F6672616D65776F726B2F6578742E6A61723A2F73797374656D2F6672616D65776F726B2F6672616D65776F726B2E6A61723A2F73797374656D2F6672616D65776F726B2F74656C657068
+F/google-breakpad(11976): S 7F930E00 6F6E792D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F766F69702D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F696D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F6D6D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F616E64726F69642E706F6C6963792E6A61723A2F73797374656D2F6672616D65776F726B2F6170616368652D786D6C2E6A6172005348454C4C3D2F73797374656D2F62696E2F736800414E44524F49445F424F4F544C4F474F3D3100454D554C415445445F53544F524147455F534F555243453D2F6D6E742F7368656C6C2F656D756C6174656400454D554C415445445F53544F524147455F5441524745543D2F73746F726167652F656D756C6174656400484F53544E414D453D6E706D38303100555345523D726F6F7400504154483D2F7362696E3A2F76656E646F722F62696E3A2F73797374656D2F7362696E3A2F73797374656D2F62696E
+F/google-breakpad(11976): S 7F930F80 3A2F73797374656D2F7862696E00414E44524F49445F50524F50455254595F574F524B53504143453D382C3000414E44524F49445F524F4F543D2F73797374656D0045585445524E414C5F53544F524147453D2F73746F726167652F656D756C617465642F6C6567616379002E2F63726173685F6578616D706C650000000000
+F/google-breakpad(11976): C 0E0004000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006830007700000000683000770000000068300077000000002865BD770000000000000000000000002870037700000000284400000000000000000000000000003044000000000000ECFD927F00000000E4FD927F0000000001000000000000006C11C1770000000001000000000000002472C376000000000100000000000000000000000000000001000000000000005810C17700000000000000000000000000000000000000002090C8770000000038FC927F00000000E86A987700000000EC10C177000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000007C10C1770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+F/google-breakpad(11976): M 77C0E000 00000000 0006D000 8F36148CC4647A8116CAF2A25F591F570 crash_example
+F/google-breakpad(11976): M 77A9B000 00000000 00012000 3A1A14AAD5B1EB3BC54F2E1C36CE3ACB0 libnetd_client.so
+F/google-breakpad(11976): M 77ACD000 00000000 00012000 E8FC3CD6F45E059AD5849A4BEE176D0F0 libstdc++.so
+F/google-breakpad(11976): M 77ADF000 00000000 00024000 07C6570597295683DE36D8FE97E6AEC30 libm.so
+F/google-breakpad(11976): M 77B03000 00000000 000CB000 D1E0DFA8390BAADD25564F8B0E139FF90 libc.so
+F/google-breakpad(11976): M 77BD7000 00000000 00012000 EC0B4DDBEFC52282C34AF60EEEB8EAAA0 liblog.so
+F/google-breakpad(11976): M 77BE9000 00000000 00014000 8C70B1BF8FBAC1170EB21E350AB2E7580 linker
+F/google-breakpad(11976): -----END BREAKPAD MICRODUMP-----
+
diff --git a/src/processor/testdata/microdump-mips64.dmp b/src/processor/testdata/microdump-mips64.dmp
new file mode 100644
index 0000000..e8ead87
--- /dev/null
+++ b/src/processor/testdata/microdump-mips64.dmp
@@ -0,0 +1,26 @@
+02-23 15:49:14.700  1740  1739 F google-breakpad: -----BEGIN BREAKPAD MICRODUMP-----
+02-23 15:49:14.700  1740  1739 F google-breakpad: V UNKNOWN:0.0.0.0
+02-23 15:49:14.702  1740  1739 F google-breakpad: O A mips64 01 mips64 3.10.0-gf185e20 #112 PREEMPT Mon Oct 5 11:12:49 PDT 2015
+02-23 15:49:14.702  1740  1739 F google-breakpad: G UNKNOWN
+02-23 15:49:14.702  1740  1739 F google-breakpad: S 0 000000FFFFCCF650 000000FFFFCCF000 0000000000001000
+02-23 15:49:14.707  1740  1739 F google-breakpad: S 000000FFFFCCF000 FF0000000000000000301DF1FF00000040701DF1FF0000008C7216F1FF000000704F1DF1FF00000000301DF1FF000000604F1DF1FF000000E0511DF1FF00000040701DF1FF0000001C2E16F1FF00000080501DF1FF000000A04F1DF1FF00000090501DF1FF000000E0511DF1FF000000C08416F1FF0000000000000000000000B0501DF1FF000000C08416F1FF0000000000000000000000C0501DF1FF000000C08416F1FF000000000000000000000008521DF1FF000000C08416F1FF0000000000000000000000F8511DF1FF000000C08416F1FF000000000000000000000000000000000000001000F5F0FF0000001000F5F0FF0000001000F5F0FF0000000800F5F0FF0000000010F5F0FF00000001000000000000000010F5F0FF0000000010F5F0FF0000000800F5F0FF0000000010F5F0FF0000000800F5F0FF0000000010F5F0FF0000000010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF0000000010F5F0FF0000000800F5F0FF0000000010F5F0FF000000
+02-23 15:49:14.708  1740  1739 F google-breakpad: S 000000FFFFCCF180 0010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF0000000010F5F0FF0000000800F5F0FF000000306042F1FF00000018F4CCFFFF00000018F4CCFFFF0000001010F5F0FF000000306042F1FF000000000000000000000018F4CCFFFF00000018F4CCFFFF000000000000000000000018F4CCFFFF0000000000000000000000000000000000000020F4CCFFFF00000000000000000000000010F5F0FF00000020F4CCFFFF0000000010F5F0FF00000020F4CCFFFF0000000810F5F0FF00000028F4CCFFFF0000000810F5F0FF00000028F4CCFFFF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF00000018F4CCFFFF00000030F4CCFFFF00000030F4CCFFFF0000001010F5F0FF00000030F4CCFFFF0000001010F5F0FF00000030F4CCFFFF0000000010F5F0FF0000000010F5F0FF000000306042F1FF00000060DF38F1FF000000A8F4CCFFFF0000000010F5F0FF0000000040000000000000880000000000000078462EF1FF000000D06B28F1FF000000
+02-23 15:49:14.710  1740  1739 F google-breakpad: S 000000FFFFCCF300 01000000000000001010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF0000000010F5F0FF0000000010F5F0FF000000FFFFFFFFFFFFFF1F0010F5F0FF0000000010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF000000000000000000000018F4CCFFFF00000000F3CCFFFF00000018F4CCFFFF00000000F3CCFFFF0000000010F5F0FF0000000800F5F0FF000000A8F4CCFFFF0000001010F5F0FF0000000800F5F0FF000000A8F4CCFFFF000000A8F4CCFFFF0000001010F5F0FF0000000800F5F0FF000000A8F4CCFFFF000000A8F4CCFFFF0000001010F5F0FF0000000800F5F0FF000000A8F4CCFFFF000000A8F4CCFFFF00000008000000000000000800F5F0FF00000000000000000000000000000000000000000000000000000000000000000000001010F5F0FF00000078F8CCFFFF00000088F8CCFFFF000000306042F1FF00000024BB38F1FF000000FFFFFFFF0100000000000000000000005CA138F1FF0000000000000000000000
+02-23 15:49:14.711  1740  1739 F google-breakpad: S 000000FFFFCCF480 A8F6CCFFFF00000008F7CCFFFF000000404538F1FF000000344E33F1FF0000004B3838F1FF00000008F7CCFFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098F7CCFFFF00000098F7CCFFFF00000098F7CCFFFF00000098F7CCFFFF00000098F7CCFFFF00000098F7CCFFFF00000098F7CCFFFF000000A8F7CCFFFF000000A8F7CCFFFF000000A8F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000B0F7CCFFFF000000C0F7CCFFFF000000C0F7CCFFFF000000C0F7CCFFFF0000000010F5F0FF0000000010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF0000001010F5F0FF0000000010F5F0FF0000000010F5F0FF0000001010F5F0FF0000001010F5F0FF000000389732F1FF000000E09432F1FF00000011000000000000001900000000000000389432F1FF0000007C9432F1FF000000
+02-23 15:49:14.713  1740  1739 F google-breakpad: S 000000FFFFCCF600 50C537F1FF000000C8F6CCFFFF0000000000000000000000C8F6CCFFFF000000D100000003000000C8F6CCFFFF000000C8F6CCFFFF000000C8F6CCFFFF000000C8F6CCFFFF000000C8F6CCFFFF000000C8F6CCFFFF0000000000000000000000306042F1FF000000B0A238F1FF00000078F8CCFFFF0000000000000000000000306042F1FF000000B0A338F1FF00000078F8CCFFFF0000000000000001000000000000000000000003000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000000000005CA138F1FF0000000000000000000000000000000000000003000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000
+02-23 15:49:14.715  1740  1739 F google-breakpad: S 000000FFFFCCF780 00000000000000000000000000000000030000000400000098F7CCFFFF00000098F7CCFFFF0000000000000000000000B0F7CCFFFF000000B0F7CCFFFF0000000000000000000000EF89807E722BAE6F0820BAECFF00000078F8CCFFFF00000080462EF1FF000000ACBB1FF1FF00000008D537F1FF000000FFFFFFFFFFFFFFFF06261800000000000020B8ECFF000000306042F1FF0000003CA038F1FF000000D8DC41F1FF000000E8DC41F1FF000000F8DC41F1FF00000048C472ECFF000000306042F1FF000000D09F38F1FF0000000626180000000000443333F1FF000000404538F1FF000000000000000000000001000000000000000AFCCCFFFF00000000000000000000001AFCCCFFFF0000002CFCCCFFFF0000003FFCCCFFFF00000053FCCCFFFF0000005EFCCCFFFF00000068FCCCFFFF0000007DFCCCFFFF00000088FCCCFFFF0000009DFCCCFFFF000000B0FCCCFFFF000000C7FCCCFFFF000000E2FCCCFFFF0000008AFECCFFFF000000A4FECCFFFF000000BBFECCFFFF000000
+02-23 15:49:14.716  1740  1739 F google-breakpad: S 000000FFFFCCF900 D3FECCFFFF000000F4FECCFFFF0000000DFFCCFFFF0000004AFFCCFFFF000000C9FFCCFFFF00000000000000000000001000000000000000030000000000000006000000000000000010000000000000110000000000000064000000000000000300000000000000402038F1FF0000000400000000000000380000000000000005000000000000000B000000000000000700000000000000009032F1FF000000080000000000000000000000000000000900000000000000A09F38F1FF0000000B0000000000000000000000000000000C0000000000000000000000000000000D0000000000000000000000000000000E00000000000000000000000000000017000000000000000000000000000000190000000000000040FACCFFFF0000001F00000000000000E8FFCCFFFF00000000000000000000000000000000000000EF89807E722BAE6F9B236B56712BD221000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-23 15:49:14.717  1740  1739 F google-breakpad: S 000000FFFFCCFA80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-23 15:49:14.719  1740  1739 F google-breakpad: S 000000FFFFCCFC00 000000000000000000002E2F63726173685F6578616D706C65005F3D2E2F63726173685F6578616D706C6500414E44524F49445F444154413D2F64617461004D4B53483D2F73797374656D2F62696E2F736800484F4D453D2F6461746100555345523D726F6F7400414E44524F49445F524F4F543D2F73797374656D005445524D3D787465726D005348454C4C3D2F73797374656D2F62696E2F736800414E44524F49445F424F4F544C4F474F3D3100544D504449523D2F646174612F6C6F63616C2F746D7000414E44524F49445F4153534554533D2F73797374656D2F61707000424F4F54434C415353504154483D2F73797374656D2F6672616D65776F726B2F636F72652D6C69626172742E6A61723A2F73797374656D2F6672616D65776F726B2F636F6E7363727970742E6A61723A2F73797374656D2F6672616D65776F726B2F6F6B687474702E6A61723A2F73797374656D2F6672616D65776F726B2F636F72652D6A756E69742E6A61723A2F73797374656D2F6672616D65776F72
+02-23 15:49:14.720  1740  1739 F google-breakpad: S 000000FFFFCCFD80 6B2F626F756E6379636173746C652E6A61723A2F73797374656D2F6672616D65776F726B2F6578742E6A61723A2F73797374656D2F6672616D65776F726B2F6672616D65776F726B2E6A61723A2F73797374656D2F6672616D65776F726B2F74656C6570686F6E792D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F766F69702D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F696D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F6170616368652D786D6C2E6A61723A2F73797374656D2F6672616D65776F726B2F6F72672E6170616368652E687474702E6C65676163792E626F6F742E6A617200415345435F4D4F554E54504F494E543D2F6D6E742F6173656300414E44524F49445F534F434B45545F616462643D313000484F53544E414D453D67656E657269635F6D69707336340045585445524E414C5F53544F524147453D2F73746F726167652F73646361726400414E44524F49445F53544F52
+02-23 15:49:14.720  1740  1739 F google-breakpad: S 000000FFFFCCFF00 4147453D2F73746F7261676500504154483D2F7362696E3A2F76656E646F722F62696E3A2F73797374656D2F7362696E3A2F73797374656D2F62696E3A2F73797374656D2F7862696E0053595354454D534552564552434C415353504154483D2F73797374656D2F6672616D65776F726B2F73657276696365732E6A61723A2F73797374656D2F6672616D65776F726B2F65746865726E65742D736572766963652E6A61723A2F73797374656D2F6672616D65776F726B2F776966692D736572766963652E6A617200414E44524F49445F50524F50455254595F574F524B53504143453D392C30002E2F63726173685F6578616D706C65000000000000000000
+02-23 15:49:14.723  1740  1739 F google-breakpad: C 0E000800000000000000000000000000010000000000000000000000000000000100000000000000000000000000000038F241F1FF0000000000FFFFFFFFFFFF0000000000000000FFFF000000000000FCFFFFFFFFFFFFFF00000000000000000100000000000000010000000000000000000000000000000100000000000000010000000000000078F8CCFFFF00000088F8CCFFFF00000001000000000000001CA338F1FF00000000001000000000000820BAECFF00000048C472ECFF0000000000000000000000000000000000000028A238F1FF00000010000000000000000000000000000000306042F1FF00000050F6CCFFFF0000000626180000000000B0A238F1FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004CA238F1FF00000000000000000000000000000000000000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F0000000000000000
+02-23 15:49:14.725  1740  1739 F google-breakpad: M 000000FFF1382000 0000000000000000 0000000000081000 6E72E2F1A5F59AB3D51356FDFE394D490 crash_example
+02-23 15:49:14.725  1740  1739 F google-breakpad: M 000000FFF0FE2000 0000000000000000 0000000000014000 3C1F908C8C62D8A2EBFC12D8AF285F670 libnetd_client.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF1016000 0000000000000000 000000000005D000 F53A8A43C039FF5DB65F78E97ADAAE000 libm.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF1073000 0000000000000000 0000000000014000 906759235C65BD24385BA1376F1C4A0D0 libstdc++.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF1083000 0000000000000000 0000000000150000 FF1D9D1DA2F0B636817320E78C3E2AF20 libc++.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF11D6000 0000000000000000 0000000000109000 3A55BF92DE1E4C51F6F6140479CFA5080 libc.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF12ED000 0000000000000000 000000000001C000 44F1FB3127301036FA2EFE040F09CF6C0 liblog.so
+02-23 15:49:14.726  1740  1739 F google-breakpad: M 000000FFF1329000 0000000000000000 000000000003A000 519DF595D6558C61E962693B460A31C80 linker64
+02-23 15:49:14.726  1740  1739 F google-breakpad: -----END BREAKPAD MICRODUMP-----
diff --git a/src/processor/testdata/microdump-multiple.dmp b/src/processor/testdata/microdump-multiple.dmp
new file mode 100644
index 0000000..5bdc057
--- /dev/null
+++ b/src/processor/testdata/microdump-multiple.dmp
@@ -0,0 +1,197 @@
+02-25 07:54:01.688 F/google-breakpad(13589): M F6F86000 00000000 00032000 9475E844ABDBBE3B512F5232E393E5590 libbinder.so
+02-25 07:54:01.688 F/google-breakpad(13589): M F6FB8000 00000000 0000A000 51CB626B9BC61903D8FB79C054262BA70 liblog.so
+02-25 07:54:01.688 F/google-breakpad(13589): M F6FC2000 00000000 0001B000 9E35C45774B38BC266DAB3081CB02E890 libutils.so
+02-25 07:54:01.688 F/google-breakpad(13589): M F6FDD000 00000000 00011000 B4E57058D30C724FB546974E8F0D99690 libcutils.so
+02-25 07:54:01.688 F/google-breakpad(13589): M F7019000 00000000 00020000 143F053EC6AACF47A289E950D893D9EE0 linker
+02-25 07:54:01.688 F/google-breakpad(13589): -----END BREAKPAD MICRODUMP-----
+02-25 07:59:17.030 F/google-breakpad(16162): -----BEGIN BREAKPAD MICRODUMP-----
+02-25 07:59:17.030 F/google-breakpad(16162): V WebView:48.0.2564.106
+02-25 07:59:17.030 F/google-breakpad(16162): O A arm 06 armv8l lge/p1_tmo_us/p1:6.0/MRA58K/1603210524c8d:user/release-keys
+02-25 07:59:17.030 F/google-breakpad(16162): G OpenGL ES 3.1 V@136.0 (GIT@I86756fd4a8)|Qualcomm|Adreno (TM) 418
+02-25 07:59:17.030 F/google-breakpad(16162): S 0 C3A397E8 C3A39000 00002000
+02-25 07:59:17.034 F/google-breakpad(16162): S C3A39000 60000000C1AF24E50000000000000000CC5E93CD0C000000CC90A3C30000000000000000000000006094A3C3000000000100000000000000208644C501000000AC90A3C3000000005C9CA3C300000000C0CEDDF6B490A3C30000000001000000CC90A3C3000000000086E5C00200000002000000DC90A3C3A490A3C34097A3C34497A3C3A490A3C388BD54E55097A3C30091A3C3010000000000000001000000C0CEDDF6010000000091A3C3000000000091A3C30091A3C300000000010000000100000000000000F490A3C300000000000000000100000001000000000000000000000001000000010000000400000000000000010000005091A3C30000000008C5BBBB00000000000000000000000000000000000000000000000000000000000000002000000020000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.034 F/google-breakpad(16162): S C3A39180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.035 F/google-breakpad(16162): S C3A39300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091A3C3700C93CD000000002000000000000000000000000000000000000000000000000F00000000000000
+02-25 07:59:17.035 F/google-breakpad(16162): S C3A39480 000000000000000000809ABB000000000000000080000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000100000020000000010000001C0000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AA92CDA48644C500000000A48644C500000000C3FB25E5340000005CE6DAC0A44310CE55FB25E5FC67A8CD00000000EC014BCEE7F51BE50C531FC2E04310CE00000000D0064BCE01000000004310CE000000000100000001000000DC23000001000000000000000C531FC297FD1BE5000000800000000002000000004310CE208644C588BD54E5030000000C531FC2
+02-25 07:59:17.036 F/google-breakpad(16162): S C3A39600 18531FC20C00000000301FC218531FC20C531FC21C96A3C30000008000301FC20000000000301FC28053D9C000000000400000004897A3C3010000006C9CA3C301000000D30418E5D689F39BD6C00300000000BE0320BE1F180000006F300000000000006C9CA3C3010000000000000001000000000000004097A3C34897A3C301000000971518E54097A3C34497A3C35097A3C3D30418E5D688F39B4097A3C34497A3C30100000000000000010000000100000000301FC28053D9C001000000DC9DA3C301000000000000000000000069B717E56C97A3C3010000000000000000000000BC9CA3C369B717E5000000005097A3C30000000001000000ABAAAAAA00000000000000005C97A3C39A4F1FC20000000020989BD5010000000100000000000000000000004C97A3C30000000088BD54E50100000008280000F18FDBF600000000000000000030000003000000010000000100000000000000000000000000000001000000010000000000000000000000000000000000000000000000
+02-25 07:59:17.036 F/google-breakpad(16162): S C3A39780 00000000000000009897A3C3010000000000000000000000010000000100000001000000010000000100000000000000000000000828000000001AC200000000007F82E408280000008004C22168F2E408280000008004C200001AC2CECD01E50100000001000000000000000000FFFF000000000000000000000000000000000000000000000000007F82E44046F4C3D08004C294160000000000005008000090150000CECD01E501CE01E5048CFDE46ACD01E502000000000000000000000000000000D08104C2408D04C200000000000000000000000000000000B407000050080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.037 F/google-breakpad(16162): S C3A39900 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000100000000000000BC9CA3C30000000000301FC26C9CA3C3E51D18E50000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000100000001000000010000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000001000000010000000100000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000D08904C22C8A04C2888A04C200000000E48A04C20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.037 F/google-breakpad(16162): S C3A39A80 408B04C20000000000000000010000000100000001000000FC9BA3C30200000000301FC200000000000000000000000001000000010000000100000001000000304F66D5D0B018F40000000000000000040000003C0000000100000001000000010000003C0000000300000067C1DAF625000000009BA3C3A1C257E534091CC0649BA3C31C000000F052DEF6000000000000000000000000000000000000000000000000DC9504C2389604C2949604C2000000000400000024A3A3C31F7518E50200000024A3A3C3000000000000000000000000004310CEBC9CA3C30000000000301FC2040000000004000000000000000100000080030000E0ABCD000000001401000000000000482C87C500000000400773F30080030000E0ABCD9485DDF61402000000000000482C87C50000000000E7DAC04DEEDAF60000000014010000400100000000000000000000800200000025DDF6130200004001000014020000482C87C580020000402C87C5400773F30025DDF6CD9FDBF61402000000000000
+02-25 07:59:17.037 F/google-breakpad(16162): S C3A39C00 000000000000000000E0ABCD41BB25E5308B0000408B000020000000000100001F000000100000006000000010000000000100000100000001000000010000000000000000000000000000000000000000000000010000000100000000000000000000000100000001000000050000005C9CA3C3000000000086E5C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007C02E4F3FFFFFFFF3813C8F3FFFFFFFF3C12C8F3FFFFFFFF941170F3010000004405D8F400000000000000000000000000000000000000000000000000010000C0B0EBC0C0CEDDF68CA1A3C3000000000037F2E790A1A3C388A1A3C300020000C0B0EBC0C0CEDDF68CA1A3C3000000000037F2E790A1A3C388A1A3C355B24ADD000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.038 F/google-breakpad(16162): S C3A39D80 000000000000000000000000000000000000000028D7D056C1000000BD214CDD3E0AACDEFFFFFFFFB421B22D4A00000054010000000000003E0AACDE0000000084000000409EA3C360FE4ACE78FE4ACE0000000000000000000000000000000088A1A3C3DCD7A1B2409EA3C30100000010ED5CCF409EA3C3C017B5D4089FA3000000000010ED5CCFF0E1D2C389ABCDEFFEDCBA9876543210409EA3C3689EA3C36E3066B42DC2BDAB9656B500CF56A0C900000000689EA3C3B0A0A3C3C0CEDDF6F0E1D2C3000000000000000038000000000000007FE94ADDD89FA3C37C9EA3C3B0A0A3C319EA4ADD7D330C8F234046F4EAD5458272B2B035AC7BDDE189C4831AA004025082FB2C80FF5109419643AC1A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00100000000000000000000800300000000000000000000000700000000000080030000000000004046F4C300000000001C0000
+02-25 07:59:17.038 F/google-breakpad(16162): S C3A39F00 00000000C0CEDDF6349FA3C34046F4C3007F82E4000000000828000000001AC20000000075FCEEE40000000000000000000000000000000000000000000000000400000000000000000000000000000004000000DCD7A1B2000000004046F4C30828000000001AC200001AC20828000000000000BFEDF2E400000000007F82E4082800004046F4C35082CBF34055E6F3006610CED16B1CE500001AC2006610CE4C6610CE00301FC200001AC240870000082800002F6F1BE5082800004C6610CE00301FC200301FC2006610CE0000000000001AC2F39317E50828000008280000B0A0A3C37D381AE500001AC24087000001000000C8A0A3C3406693CD006793CD88A0A3C3797A16E5082800009CA0A3C320A0A3C308280000C06193CDC06193CDB0A0A3C301000000F823F6DEA9E651DD0828000000000000B0A0A3C30000000058A0A3C39CA0A3C3C0CEDDF601000000F42E66D570A0A3C30C53DEF6402C87C59485DDF6482C87C5806691C09FA7DBF62100000014000000806691C0739E4ADD
+02-25 07:59:17.039 F/google-breakpad(16162): S C3A3A080 02000000E86373F364A04321DAAA00899A15B6BF55337DFB8AAB0941F101072981F46CF1416F8EB9B27C5A0C04375D8689C4831AA004025082FB2C80FF5109419643AC1ADCD7A1B2198D4ADD209319C2C0DAF3DED9E551DD20114BCE18A1A3C3F42E66D500000000E813F6DE195952DD889319C2A09319C200000000F42E66D5C91653DDC0CEDDF6A4E5C55294000000A09319C2889319C2A4E5C55294000000482C87C5006D93CD00E0ABCD010000000C53DEF6402C87C59485DDF6C000000054DABDDEC10500002D040000009EE5C0C10500009803000000A4E5C0DCD7A1B20000000000000000002C66D5209319C2D0A1A3C300000000010000000500000012000000175650DD3F000000002C66D5410000003FF14FDD0C53DEF6402C87C59485DDF6482C87C500DC64D19FA7DBF6C1000000BD000000006D93CDDCD7A1B2006793CD00000000304F66D503000000A1E5C5529400000000AC58C508E246D2006610CE00000000002C66D51BF34BDD0100000000AC58C500301FC202000000
+02-25 07:59:17.039 F/google-breakpad(16162): S C3A3A200 1001000088010000A003B8C003000000002C66D50500000012000000815750DD795750DD11F650DD0CA3A3C31080E7DE1080E7DEC0CEDDF60000000002090CC086E4C5529400000000000000C0CEDDF6D0104BCEC1F255DD606691C0E97C87DD377C87DDC0CEDDF60000000004000000FCA2A3C30900000001000000A0A2A3C3010000007BC557E5317787DD00000000317787DD00000000317787DD0000000009000000FCA2A3C304000000377C87DD9485DDF6406691C00312F6DEC897F6DE00000000A0FF4ACEA40000000D7D87DD00000040DCD7A1B214A3A3C3106373F3F10051DD000000000000B8C0C0CEDDF668A3A3C3F70000000A0000002FFB4DDD0CA3A3C386E4C55294000000000000000000000080C190D30000000086E4C55294000000755D51DD010000000C70F6D2C0CEDDF653B84EDD10A4A3C3D386B0DDE0004BCE0000000054A3A3C300000000DCA3A3C3406691C0D8A3A3C3DF4C87DDDCA3A3C380A6F7CE86E4C5529400000056000000B8A5A3C3A4000000A4000000
+02-25 07:59:17.040 F/google-breakpad(16162): S C3A3A380 406691C07182B0DD00000000A4000000090000000000000002000000A400000009000000000000000200000059000000090000003F194CDD1712F6DEDCD7A1B2002C66D580A6F7CE2C23F7DE1712F6DE7CA4A3C30000000058A5A3C3F70000000A00000071913DDDA573B0DD000000005D913DDD0578B0DD20A4A3C3B8E4ABCDC0CEDDF6239DB0DDF653E3A50000000000000000B3351B70090000003F194CDD00000000090000000000000064DFA7DE200000009ECF2560C1000000BD214CDD6C63AFDEFFFFFFFFB0AB05534200000030010000000000006C63AFDE00000000D007000074A4A3C3A4000000090000000000000002000000580000009CA4A3C350A5A3C3084617F468A5A3C350A5A3C301000000084617F480A6F7CE0100000068A5A3C301000000010000000C70F6D2C0CEDDF64B95B0DD0795B0DD020000009C7214F4DCD7A1B200000000F081CBF3F081CBF3943217F4000000000000000060FE4ACE492C4CDD00000000B8A5A3C3D0A5A3C3D4A5A3C300000000B8A5A3C3
+02-25 07:59:17.040 F/google-breakpad(16162): S C3A3A500 9CA5A3C3D0A5A3C30C70F6D201000000A4A5A3C30800000001000000D199B0DD419CB0DD0000000060332BC500E0ABCD08000000482C87C59485DDF600000000809BBDDE1379DBF60400000060332BC5F70000000A00000000000000000000000000000009000000486CCBF3000000000000000060FE4ACE00000000F0A6A3C3C04517F4419CB0DD00000000C7C852DD804FA8CD603217F440DA64D1A05C45D20000000019C752DDAC5C45D2D04517F4D0A5A3C3C4A5A3C3A4000000A4000000AC5C45D2000000000000000000000000F081CBF3000000000000000001000000C1000000DCD7A1B260332BC540DA64D1F84517F480A6F7CE084617F460332BC5010000000C70F6D2809BBDDE975FB0DDE86254D9D4F95CCF000000000100000060FE4ACE492C4CDD40A6A3C3E86254D910A8A3C350A6A3C3F0A6A3C3E86254D900000000000000000C70F6D2E12C4CDD00000000DCD7A1B24411F6DE10A8A3C3F0A6A3C3E8A6A3C3EB11F6DEA870F6D200000000E33F49DD00E0ABCDC0CEDDF6
+02-25 07:59:17.041 F/google-breakpad(16162): S C3A3A680 C0CEDDF684CEDDF610A7A3C300000000C0CEDDF6C0CEDDF6C0CEDDF684CEDDF60000000054A7A3C3C0CEDDF6DDBBD7F676D7C552940000000000000000000000C0C2B852940000000000000000000000000000009400000000000000000000006541B0DDC0CEDDF60000000084CEDDF6000000000000000060FE4ACE000000009CA8A3C300000000000000002322DAF6C0C2B85294000000000000000070F6D2E411F6DE10A8A3C30000000000000000C1C0C0C00C70F6D218A8A3C3EB434ADD00000000F18FDBF640070000E852DEF61000000007000100010087C5C0302BC576D7C5520100000080A9A3C334A8A3C3020000000000000080000000C0A7A3C366A64519B923DAF634A8A3C38000010000000000D917DAF6C0A7A3C334A8A3C382B8090034A8A3C338A8A3C30000000038A8A3C3000000008C6E58F0A718DAF60E00000021580C2B80A9A3C310A8A3C30070F6D20070F6D20100000028A8A3C3C1C0C0C00C70F6D218A8A3C3A5484ADD00000000607346CE10A8A3C30070F6D2
+02-25 07:59:17.041 F/google-breakpad(16162): S C3A3A800 20A8A3C328A8A3C3C1C0C0C0354C4ADDA8AA5CE3000000000000000000000000606691C055048ADD80B2CDDEB760AFDECA0000006541B0DD2D0000000100A3C3A8A28AE9000000000070F6D276D7C55294000000A8A28AE9B8A28AE900C093C3A9C54BDDBB564ADD76D7C55294000000B8A4E000000000004411F6DEC0A8A3C39CA8A3C3C844F4C30070F6D2804928D3944128D331E64ADDA8A8A3C3000000000000000060FE4ACE0000000000000000C844F4C3C044F4C3C0CEDDF6F53D4ADD0070F6D200000000010000000100010000000000C0A8A3C3C044F4C351EE4BDD2100000016000000E0F5A7CDDCD7A1B27800000030A9A3C3C044F4C3609152D978000000E5C54BDD30A9A3C370A9A3C330A9A3C3A519DAF68519DAF638A9A3C38519DAF6C7C0D7F678A9A3C30000000030F96FC530C984C2113F0000E03C00000000000000C093C330E90F000010000000000000000000000000000000000000A9C54BDD60FEF6C3000000000090AAD40100000000F00F0078A9A3C330A9A3C3
+02-25 07:59:17.042 F/google-breakpad(16162): S C3A3A980 1600000058B38AF600000000DCD7A1B2F4ADA3C30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000402C87C500000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000008E246D2000000000000000001000000A0F1ABCD0000000000000000000000000000000001000000882715F401000000005822C40100000050FF4ACE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000004E419C20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.042 F/google-breakpad(16162): S C3A3AB00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.043 F/google-breakpad(16162): S C3A3AC80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000756E646566696E6564207379
+02-25 07:59:17.043 F/google-breakpad(16162): S C3A3AE00 6D626F6C3A20676C5761697453796E630072696249506F696E74657200696E6773006D706C6545585400760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.043 F/google-breakpad(16162): S C3A3AF80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.044 F/google-breakpad(16162): C 06000040008004C2949604C2008003C20000FFFF008004C200001AC203000000949604C2949AA3C301000000010000000100000024FB09E5E897A3C31774F2E4F870F2E4300007A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+02-25 07:59:17.044 F/google-breakpad(16162): M AAB37000 00000000 00005000 CDDB210E1401729DD9368E97D91BFA6F0 app_process32
+02-25 07:59:17.044 F/google-breakpad(16162): M D403B000 00000000 0000C000 04BEB4408EDD689C7C9D16B3935B434C0 eglSubDriverAndroid.so
+02-25 07:59:17.044 F/google-breakpad(16162): M D6666000 00000000 0130E000 632AB61E504FB945701535B3D9CC8D6F0 libllvm-qcom.so
+02-25 07:59:17.044 F/google-breakpad(16162): M D7E76000 00000000 00102000 6A49ABB973AC76966D0BF9EB151B1DAA0 libCB.so
+02-25 07:59:17.044 F/google-breakpad(16162): M D7F79000 00000000 000C7000 E965EAB3ED52E0D9033467CF35BA54FA0 libblas.so
+02-25 07:59:17.044 F/google-breakpad(16162): M D94D4000 00000000 0002C000 F15305FE3A594A9A8EDD43DC502FABFA0 librs_adreno.so
+02-25 07:59:17.044 F/google-breakpad(16162): M DD1C0000 00000000 01C47000 8506F83DD6FA1E55AAEDF5288D23914C0 libwebviewchromium.so
+02-25 07:59:17.044 F/google-breakpad(16162): M E388F000 00000000 0003B000 6FA4AB536BB4518557BC07CA8FC573C90 libRSCpuRef.so
+02-25 07:59:17.044 F/google-breakpad(16162): M E38CA000 00000000 00033000 F7FA517643A376EFD12A7B3D2EFEE6F90 libRSDriver_adreno.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E3C80000 00000000 0000C000 7630048E025652922B3F1588F02A8F2B0 librsjni.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E3C96000 00000000 0000D000 561706F94B94192BF9ED468A3E068D7D0 librs_jni.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E3CA3000 00000000 00006000 C359CF7872D4C441EF00D6FC60798F460 libwebviewchromium_loader.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E3CAB000 00000000 00006000 8F426AC7147B1BCAFB00A84FA30818A60 libwebviewchromium_plat_support.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48C1000 00000000 00005000 45F29673A241F20E48A7F4A69C94558F0 libjnigraphics.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48C5000 00000000 00013000 9C1B0414377D9B563658C37B62D890D00 libandroid.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48D7000 00000000 0000B000 2A0263F47116D42F23AEA8976017142A0 libqservice.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48E2000 00000000 0000D000 9A42EE0ADA890E52077B660CBA9E6F9F0 libqdutils.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48EF000 00000000 00005000 7B806100E8814ADC4926CAED36A155C90 libqdMetaData.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48F4000 00000000 00008000 2265B4F6E87C3AB2B24ADF3AD7916DAC0 libmemalloc.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E48FC000 00000000 00009000 66E98553EFB870D30328E6E7236C33D30 gralloc.msm8992.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E4907000 00000000 0000A000 AD580971FA6754A290D06A3B18E8E81D0 libcompiler_rt.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E4911000 00000000 00026000 7A54ADD97509B2BA34F02CD72D7CE1EB0 libGLESv1_CM_adreno.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E4919000 00000000 0078F000 9F67EE99805EFC8AA9D25EC32DE705C80 libllvm-glnext.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E50A2000 00000000 004B9000 D7CC9C6F6A2C2F9B53C5DB501AC4E51B0 libGLESv2_adreno.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E555D000 00000000 0003D000 C9EA007BBDDEC224D1E0C7AFEE4E45330 libgsl.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E559A000 00000000 00008000 CD7367DF671CBD3EDBED183581789FA70 libadreno_utils.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E55A4000 00000000 00012000 B4E6C005EC6CC69155CC735B3EFFECDE0 libEGL_adreno.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E7ECE000 00000000 0001B000 2B30B67A31DE9BF64555151EA17005B90 libkeymaster1.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E7EE9000 00000000 00017000 54102E8ACB90A9125408636632CD808D0 libsoftkeymasterdevice.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E7F40000 00000000 0000B000 26B523F5A4D29ADFFC9E5424083E7A430 libkeymaster_messages.so
+02-25 07:59:17.045 F/google-breakpad(16162): M E7F4B000 00000000 0000E000 ACC6C5A530F89DFAF9D49763349280FD0 libkeystore_binder.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F59000 00000000 00006000 3427C2F006C3794AE74735BE6DB0C11D0 libkeystore-engine.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F5E000 00000000 00019000 315244E498B82AC7DC9417BC69BEE0D10 libjavacrypto.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F77000 00000000 00006000 C22F0B9417EE729F3F103A2099BABE2A0 libemoji.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F7D000 00000000 00006000 A1DC8D6A0E0FFBE3CDD733E2C1A656E90 libextmedia_jni.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F83000 00000000 00010000 9DB457B0E067D0E3319B0AA6F5658BD70 libstagefright_amrnb_common.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7F90000 00000000 0002F000 40852323FEC1ADB356FEB0F3EF22BBC90 libexif.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7FBF000 00000000 0000E000 E63910A6D6C98BCEF90CCDFF910A7BAA0 libjhead.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7FCE000 00000000 00018000 BC53BCECC219F8AA3641A10B8AA0784C0 libmtp.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E7FE4000 00000000 0004B000 D9429A5D3289DA7E416BAAC35181F8240 libmedia_jni.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E818A000 00000000 00036000 5D7E900D07265C7CAEEAF336A4E5C63C0 liblgDivxDrm.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E98C0000 00000000 00007000 DCEA7FBB2F6009454EF32A08356F56BA0 libqmi_encdec.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E98C6000 00000000 00011000 D60B8FE7332A5FEC91B053060DE9F6FC0 libsensor1.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E98D8000 00000000 0000D000 3659AA2CD6F8DC14B4DD7B781BE06C0C0 libmtpexif.so
+02-25 07:59:17.046 F/google-breakpad(16162): M E98F1000 00000000 00007000 093F37D73F3782B9CA6AD929FC59020D0 libsensor_reg.so
+02-25 07:59:17.046 F/google-breakpad(16162): M EA169000 00000000 00007000 332FEA72D63439385A9B130899F943D50 libsensor_lge_cal.so
+02-25 07:59:17.046 F/google-breakpad(16162): M EA94B000 00000000 00009000 5DFEC0CEBA9B6E5D08B85A18DF6F18210 libmtp_ex.so
+02-25 07:59:17.046 F/google-breakpad(16162): M EA954000 00000000 00014000 F2D84209872178839F4780618E1198970 liblgruntime.so
+02-25 07:59:17.046 F/google-breakpad(16162): M F0488000 00000000 00038000 A7A101BB08294CC8BD8C611C1E99A2B50 libjavacore.so
+02-25 07:59:17.046 F/google-breakpad(16162): M F0508000 00000000 00005000 ADCC285BDC45AE9A03B43D1EB9B982370 libqti-at.so
+02-25 07:59:17.046 F/google-breakpad(16162): M F050D000 00000000 00005000 31397DC744C7B604D2E04451B0C017450 memtrack.msm8992.so
+02-25 07:59:17.046 F/google-breakpad(16162): M F4632000 00000000 0044C000 B596BED69EF0A030CE000B15595135270 libart.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4ADE000 00000000 0001A000 78B64557986220CC0618C7BBF513B6450 liblgalmond.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4AF8000 00000000 00005000 086CED5EB0F44F0EB0A5D6612670B9F30 libsigchain.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4AFD000 00000000 00020000 F2636CCC92E2C9D3154DE7D1BBEAB9720 libdashplayer.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4B1D000 00000000 00005000 78E450DE95D1700FFAEB4754C75C67680 libExtendedExtractor.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4B22000 00000000 00012000 F64E6A6F48C5BBDB0F2116A4623286870 libLGCodecParserUtils.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4B34000 00000000 00009000 F6AFB30995F2AF1A03CF5A93FB2EA4860 liblgresampler.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4B3C000 00000000 0005D000 0C1A50765556AB67675FE067B8A3515B0 libLGParserOSAL.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4B99000 00000000 00009000 DE2A64F9A04C710DC19C33C1928FE8410 libLGTimedText_ccparser.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4BA2000 00000000 00007000 83545AED3509EAAEBAE78D667F0FA48C0 libLGTimedText_xsub.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4BA9000 00000000 00032000 0D0E443B4EDCA0A81486DB513E65D0320 libstagefright_wfd.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4BDB000 00000000 00027000 E508C5A720E83FD049B04F67C09305880 libstagefright_httplive.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4BFC000 00000000 000CB000 211023EB29ED67D7BAEFB2CDD27B81910 libmediaplayerservice.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4CC6000 00000000 0003A000 E4D19B5FF8BFE7BBA363D18FC83E38160 libavenhancements.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4DC4000 00000000 00013000 DB3836D74FA669D5B70136175A3618FA0 liblge_audioeffect.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4DD7000 00000000 00009000 D59647F68E3CF58770736388D46690C70 liblgaudioutils.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F4DDF000 00000000 00A80000 4868B28C6E03144A7AF8FA02AE2DBA570 libLLVM.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F5867000 00000000 00038000 3C50F87D21BDDE58DCBD0FC7B0D476A40 libbcinfo.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F589F000 00000000 0005B000 99E203411790EE639624229BDF048A060 libbcc.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F58F9000 00000000 0000F000 0B1C07F5A59090EA875EEB64AA39FC980 libcommon_time_client.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F5908000 00000000 0001A000 AE6052FF75313268848C7D13396423490 libprotobuf-cpp-lite.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F5923000 00000000 0000D000 CFE41500FDCC495A26EE1C462156F57B0 libstreamingpolicy.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F592F000 00000000 0001F000 2F8F7D5FB7E04203F8FDA98680EC8A790 liblgdrm_client.so
+02-25 07:59:17.047 F/google-breakpad(16162): M F594F000 00000000 00009000 BB24CC31D79784F55C4E785A5C0756DC0 libstagefright_avc_common.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5958000 00000000 00005000 314F92E6AC1822FB41D4F5DCB956F4BF0 libstagefright_enc_common.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F595D000 00000000 00007000 2996388C9A56DCC091AFE5897ECB87420 libpowermanager.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5964000 00000000 0001F000 09E3F520D8A5ED01B912678FA7755BB70 libvorbisidec.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5983000 00000000 00007000 F1EBDCC5D77A0008E973267AD4EB70780 libstagefright_yuv.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5989000 00000000 00033000 5A264F74CAA4BD27A2059ECA2F4F91710 libstagefright_omx.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F59BC000 00000000 0003B000 1F0F2D5FA3E2C08EC77EE7D2BD2255D10 libopus.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F59F7000 00000000 00007000 A9BEBB44C2987437574B9D2F4739898D0 libmediautils.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F59FC000 00000000 0001C000 7829435CE6CA0A5C60F5AACB7DED21390 libdrmframework.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5A19000 00000000 00021000 E915848185A62DFD6DED2112824D701F0 libRScpp.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5A3A000 00000000 00042000 55720349AF6FDF693DC39A570F2AECB30 libRS.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5A7C000 00000000 00009000 1DF91851FB36A8C8D29A31D5A8505CFC0 libspeexresampler.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5A85000 00000000 00017000 DD81FC74A25EFCCA887C61F71ABD287E0 libbrunch.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5A9C000 00000000 0000A000 2737A38251A7112EA0568006C3FFA9F10 libmedia_ex.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5AA6000 00000000 0000B000 EE720194B028BFBE8A292B179616DE210 libnbaio.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5AB1000 00000000 00014000 9002695E41EE3D59AF4A757AF3C0978B0 libpcre.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5AC5000 00000000 00007000 24E93BD4CCE0713FA05014B9EDEF2F590 libwpa_client.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5ACC000 00000000 00008000 A34EF29278866D2CB7506556B789086F0 libvolumevibratorcallback.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5AD6000 00000000 00071000 8E1F436C87B785BF87EB1CEDA326F7E40 libGLES_trace.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5B47000 00000000 00007000 E40891DAD8E7B2F6B30188C30D74D7C20 libsnappy.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5B4E000 00000000 00060000 749CAC9D9C512FE78C3EC16EDB296D680 libft2.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5BAE000 00000000 00029000 B9CE36FCAA829DC2258A470AD303352E0 libpng.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5BD7000 00000000 00005000 C018D84B775D61FAF368DF2AA665697F0 libsync.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5BDC000 00000000 00007000 9A5B1E364901420D8AA63CEC08475AEE0 libstdc++.so
+02-25 07:59:17.048 F/google-breakpad(16162): M F5BE3000 00000000 00012000 26D8F1619C0D09102263C2334BC89C380 libunwind.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5C3B000 00000000 0000B000 D5090E204623B87A90F7F15DA838EA380 libbase.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5C46000 00000000 00007000 CF0651C637D52CCB9C593CABBB81E7BF0 libeffects.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5C4E000 00000000 00006000 C62F88A12F526FE996E1CDFB580D04670 libstagefright_http_support.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5C54000 00000000 0001B000 E2958E4C4DCD3A1C268168C2B755D9C20 libstagefright_foundation.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5C67000 00000000 0017D000 C5F6C6E6FFF7561E36B15B79D5F7960A0 libstagefright.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5DE2000 00000000 0006F000 01E0D36215F9ADFA6376148F110B151E0 libhwui.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E51000 00000000 00005000 5E0DC92209DE1A811703898BA40879580 libradio_metadata.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E56000 00000000 00006000 1EAD24C94329023E7C914CB60213710C0 libnativebridge.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E5C000 00000000 00006000 2B273894878184E5533F6316C78142A90 libprocessgroup.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E62000 00000000 00012000 847F69C739C64569AC93DC2BD612B0990 libminikin.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E73000 00000000 0000F000 23F0E58C16D9321168B5AD72727C91D80 libsoundtrigger.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E82000 00000000 0000F000 9485DC0440DA431817DEB656A1D89C970 libradio.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E91000 00000000 00006000 9839EE33771040E0817D04EA1607A2E90 libnetd_client.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5E97000 00000000 00010000 253056B18E13B3ABBE25335D850E4FCF0 libimg_utils.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F5EA1000 00000000 0040F000 B14E0BC488816A24E8875B05F91D5A020 libpdfium.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F62B1000 00000000 00009000 E700CB5D5EFAD4A0982C6C92AAB24EF20 libaudioutils.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F62BA000 00000000 0001C000 E561DE316E10404961913562EC88C7D00 libz.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F62D6000 00000000 0004C000 E6A19592808FD8CCBACFB4E4585A9A0F0 libharfbuzz_ng.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F6322000 00000000 00007000 FB66B1BB06FB93A55E83675AC33F36980 libusbhost.so
+02-25 07:59:17.049 F/google-breakpad(16162): M F632A000 00000000 0003A000 1D436B4AF7629FD99D73A7246A6BF8420 libjpeg.so
+02-25 07:59:17.050 F/google-breakpad(16162): M F634B000 00000000 000DA000 E3F897ABB8F544220CA13A40126C17DC0 libmedia.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F641E000 00000000 00177000 E7C23CFADC8EFF8C4F22AA261B4964020 libicui18n.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F658E000 00000000 00121000 BD724C85205F8035CA32DB1D56D516A40 libicuuc.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F66B3000 00000000 00026000 CF0E97E48357CAE56758A8A052CED17F0 libssl.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F66D9000 00000000 0009D000 1F63A7690455B59E3DC1BAC22FD35D710 libcrypto.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F6776000 00000000 00088000 92D82F190EDA3EFAE4ABE1D0E9F92A440 libsonivox.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F6803000 00000000 00011000 EA55EB7A4E330F3A321D71A6633A350E0 libselinux.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F6814000 00000000 0000A000 FE9A06EDA059ABD73AA5BE0C50FDF15F0 libhardware_legacy.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F681F000 00000000 00005000 C1528E5AC47440C91D08992754C97A020 libhardware.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F6824000 00000000 00006000 D560734E4C12B1D32A8A01D9872059240 libETC1.so
+02-25 07:59:17.051 F/google-breakpad(16162): M F682A000 00000000 0000F000 FF299F9F7DD8D50AFF9D4AF2FD92FE950 libGLESv2.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6839000 00000000 0000A000 4ECC7F0C7C9B36FBDAC0181538C1436B0 libGLESv1_CM.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F683B000 00000000 00070000 1F6FBD4345A4742270A85AE7E8E129AA0 libEGL.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F68AD000 00000000 000B2000 5C8AABBE271B00B986091CDE0474DD700 libsqlite.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F694E000 00000000 00289000 5E933FF5391447BF290ADDF4FA2842B60 libskia.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6BDC000 00000000 0000A000 201B23B91FB159C9C52866ADFAAA8FED0 libcamera_metadata.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6BE2000 00000000 00031000 3A9285D251F3217BFF5E41689FD922AC0 libcamera_client.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6C12000 00000000 00041000 80FD1F6AF746B0E1AB7B598DF55AE8D80 libinputflinger.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6C51000 00000000 00021000 0D56C40D7CC3D423A16A53B3D7DED5DC0 libinput.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6C69000 00000000 00062000 08E6880DE9F1CB02651AE953A7F6923F0 libgui.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6CCB000 00000000 00010000 DD09E336297956492AD7C177519A1D6A0 libui.so
+02-25 07:59:17.052 F/google-breakpad(16162): M F6CDB000 00000000 0000B000 F2F0AB06F84A0D783F4E17BBEB01C0690 libnetutils.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6CE6000 00000000 00009000 9ABC995145EAE750139A08FF17395D920 libnativehelper.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6CEF000 00000000 00017000 67C16CEE4A7E7012A6440053D4FEC19C0 libexpat.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6D06000 00000000 0002A000 CF824E9B76F884C161C11A28C0AA231D0 libandroidfw.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6D30000 00000000 00005000 F800D7423F3487DE8090E30BFAFED02F0 libmemtrack.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6D35000 00000000 0000B000 F15D32A9F149B74D256C52097B3A55BB0 libbacktrace.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6D40000 00000000 00022000 554E8A8627D8B1EB593D3AA5B2B3D6020 libm.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6D62000 00000000 0007A000 E726B74CE5D6F65B006BC7045662C9340 libc.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6DE4000 00000000 00090000 93219962EC5CCFD98B897B0DC910493D0 libc++.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6E74000 00000000 0002E000 FD3369BE00741CA1B70811BB61796B4C0 libwilhelm.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6E93000 00000000 000F1000 3799D3B349DB137A08F3DB434E6A88D70 libandroid_runtime.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6F86000 00000000 00032000 9475E844ABDBBE3B512F5232E393E5590 libbinder.so
+02-25 07:59:17.053 F/google-breakpad(16162): M F6FB8000 00000000 0000A000 51CB626B9BC61903D8FB79C054262BA70 liblog.so
+02-25 07:59:17.054 F/google-breakpad(16162): M F6FC2000 00000000 0001B000 9E35C45774B38BC266DAB3081CB02E890 libutils.so
+02-25 07:59:17.054 F/google-breakpad(16162): M F6FDD000 00000000 00011000 B4E57058D30C724FB546974E8F0D99690 libcutils.so
+02-25 07:59:17.054 F/google-breakpad(16162): M F7019000 00000000 00020000 143F053EC6AACF47A289E950D893D9EE0 linker
+02-25 07:59:17.054 F/google-breakpad(16162): -----END BREAKPAD MICRODUMP-----
+02-25 08:45:32.669 F/google-breakpad(18894): -----BEGIN BREAKPAD MICRODUMP-----
+02-25 08:45:32.669 F/google-breakpad(18894): V WebView:48.0.2564.106
+02-25 08:45:32.669 F/google-breakpad(18894): O A arm 06 armv8l lge/p1_tmo_us/p1:6.0/MRA58K/1603210524c8d:user/release-keys
+02-25 08:45:32.669 F/google-breakpad(18894): G OpenGL ES 3.1 V@136.0 (GIT@I86756fd4a8)|Qualcomm|Adreno (TM) 418
+02-25 08:45:32.669 F/google-breakpad(18894): S 0 C44FFF18 C44FF000 00002000
+
diff --git a/src/processor/testdata/microdump-withcrashreason.dmp b/src/processor/testdata/microdump-withcrashreason.dmp
new file mode 100644
index 0000000..b27c6a4
--- /dev/null
+++ b/src/processor/testdata/microdump-withcrashreason.dmp
@@ -0,0 +1,1422 @@
+08-17 19:45:06.579 F/google-breakpad(25655): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 19:45:06.579 F/google-breakpad(25655): V AndroidWebView:62.0.3188.0
+08-17 19:45:06.580 F/google-breakpad(25655): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 19:45:06.580 F/google-breakpad(25655): P webview
+08-17 19:45:06.580 F/google-breakpad(25655): R 00000005 SIGTRAP 4A7CB000
+08-17 19:45:06.580 F/google-breakpad(25655): G
+08-17 19:45:06.605 F/google-breakpad(25655): H 12C00000 FFF73000 00D9 31E89000 975F4000 0C:18 0D:0B 0E:0F 0F:2F 10:09 11:08 12:06 13:1A 14:08 15:06 16:12 17:10 18:0D 19:06 1B:01 1C:02 1D:01
+08-17 19:45:06.608 F/google-breakpad(25655): S 0 C9379C60 C9379000 00002000
+08-17 19:45:06.609 F/google-breakpad(25655): S C9379000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.609 F/google-breakpad(25655): S C9379180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.610 F/google-breakpad(25655): S C9379300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.610 F/google-breakpad(25655): S C9379480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.611 F/google-breakpad(25655): S C9379600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.612 F/google-breakpad(25655): S C9379780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.612 F/google-breakpad(25655): S C9379900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.613 F/google-breakpad(25655): S C9379A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.614 F/google-breakpad(25655): S C9379C00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005C9D37C94C9D37C9509D37C98C9C37C9EDACEF0DEDACEF0D01000000249E37C9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000BC9C37C901000000000000008F02000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D09C37C9EDACEF0D509D37C94C9D37C9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000000000000EDACEF0DEDACEF0DEDACEF0DB7D72BD4C09D37C9B7EF57D2
+08-17 19:45:06.614 F/google-breakpad(25655): S C9379D80 00000000EDACEF0DEDACEF0D0000000000000000EDACEF0D000000000000000001000000EDACEF0D0000000000000000EDACEF0D000000000000000001000000EDACEF0D0000000000000000EDACEF0D000000000000000001000000010000000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7C9E37C9849E37C9889E37C9249E37C9D89E37C9789E37C98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD89E37C94C9E37C9489E37C9D89E37C9389F37C9749F37C9D89E37C900000000EDACEF0DEDACEF0DEDACEF0D3CA137C947733DD4D89E37C9809E37C9789E37C900000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D200000000EDACEF0D000000000000000000000000076291D2A0A037C9EDACEF0D389F37C9EDACEF0D4543A7D400000000
+08-17 19:45:06.615 F/google-breakpad(25655): S C9379F00 08A037C9EB8E3DD4A4A037C902000000309F37C9EDACEF0D389F37C9EDACEF0DEDACEF0D31000000EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0D14617274EDACEF0DEDACEF0D3100000024000000EDACEF0D31000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA4A037C9A0A037C934A137C9EDACEF0D4543A7D40000000008A037C93CA137C911A03DD400000000000000000CA037C9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D20A037C970A337C90000000000000000EDACEF0D0000000078A437C923D89CD200000000080000000100000000000000EDACEF0D3D8658D288C83CD3EDACEF0DEDACEF0D78A037C9D8A037C9558758D2000000000000000088A037C9EDACEF0DD8A037C9191592D2178076D2270A000001000000FFFFFFFF0000000000000000
+08-17 19:45:06.616 F/google-breakpad(25655): S C937A080 000000000000000000000000000000000400000000000000FFFFFFFF00000000EDACEF0D00000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000A137C900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000007000000440000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000038A237C94543A7D4EDACEF0D38A237C970A337C928A237C9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D78A437C92DB773D2EDACEF0DEDACEF0DD9C68DD2F1C68DD2EDACEF0D01000000EDACEF0DD9C68DD20100000065C38DD2EDACEF0D0900000009000000EDACEF0D7DF856D2EDACEF0D7D933DD453E29CD2CF228BD2CF228BD2178076D2EDACEF0D38A237C90000000078A437C98D8064D2
+08-17 19:45:06.616 F/google-breakpad(25655): S C937A200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A4A237C90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D78A437C9B97855D2EDACEF0DA4A237C9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D0A537C9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D38A337C900000000EDACEF0DEDACEF0D78A437C93FD49CD203000000F9C973D208A337C9EDACEF0D08A337C9F0A337C904A337C9AFA673D20100000021C973D200000000000000000100000000000000EDACEF0D00000000000000000000000000000000EDACEF0D1B000000FFFFFFFF70A337C94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD2270A000000000000EDACEF0D0200000094A437C905000000EDACEF0DEDACEF0D0000000000000000
+08-17 19:45:06.617 F/google-breakpad(25655): S C937A380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD453E29CD2CF228BD2CF228BD2178076D2270A0000EDACEF0DE8A337C9270A000000000000EDACEF0DEDACEF0DEDACEF0D2BC83CD3EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D98A437C90000000000000000D8A437C90000000078A437C9FBC69CD2EDACEF0D2BC83CD3EDACEF0D0900000088A437C9000000000000000000000000E8030000000000000000000000000000E8030000B0A437C9EDACEF0D80A437C900000000EDACEF0D00000000000000000000000000000000000000000CA3BDD2000000000000000000000000EDACEF0DEDACEF0D2BC83CD3EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD0A537C965CC73D2000000000000000000000000000000000000000000000000EDACEF0D00000000D0A537C9EDACEF0D0000000000000000
+08-17 19:45:06.617 F/google-breakpad(25655): S C937A500 0000000000000000EDACEF0D28A737C9C0A537C9EDACEF0DEDACEF0D747D92D40000000028A737C9EDACEF0D2DB773D2EDACEF0D30A737C9F0A537C9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DCA537C9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EA53E29CD253E29CD2CF228BD2CF228BD2178076D2DCA537C9EDACEF0D0000000007E29CD207E29CD207E29CD207E29CD200000000000000000000000000000000FCA537C9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D00000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DC4A637C9000000000000000040A837C9EDACEF0DEDACEF0D0000000028A737C9A4A637C948A737C92842A7D4EDACEF0D28A737C9EDACEF0D5FB473D2FFFFFFFF7B2B84EAEDACEF0DEDACEF0DFFFFFFFFC0A637C9
+08-17 19:45:06.618 F/google-breakpad(25655): S C937A680 EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC0A637C9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000F4FFFFFFEDACEF0DE4A637C9EDACEF0DB8A737C9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D28A737C9EDACEF0DB8A737C9EDACEF0DC8A737C928A737C970A737C92BAA73D2EDACEF0DEDACEF0D01000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000002843A7D42842A7D49601000053E29CD253E29CD2CF228BD2CF228BD2178076D2DD020000010037C900000000FFFFFFFFD0A4BDD202000000F0A737C900000000EDACEF0DEDACEF0DEDACEF0DACA737C9FFFFFFFFE0A737C9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000002843A7D42842A7D49601000053E29CD253E29CD2CF228BD2CF228BD2178076D2DD02000001000000D34657D2
+08-17 19:45:06.619 F/google-breakpad(25655): S C937A800 EDACEF0DEDACEF0DEDACEF0D01000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CCA837C940A837C9EDACEF0D00000000CCA837C91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D0000000000000000000000000000000098A837C9EDACEF0DEDACEF0DEDACEF0D94A837C9EDACEF0D00000000CCA837C9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CCA837C9EDACEF0DEDACEF0D20A937C978000000EDACEF0DEDACEF0DA38173D220A937C9CD2F82EA20A937C9E52F82EA28A937C9EF5C7FEA7800000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D0000000070A937C920A937C91600000000000000
+08-17 19:45:06.619 F/google-breakpad(25655): S C937A980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D000000000000000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.620 F/google-breakpad(25655): S C937AB00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.620 F/google-breakpad(25655): S C937AC80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.621 F/google-breakpad(25655): S C937AE00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.621 F/google-breakpad(25655): S C937AF80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.622 F/google-breakpad(25655): C 06000040000000000000000005B88FD2000000008C9C37C9CC9C37C99025E63EAC9C37C94C9D37C95C9D37C9509D37C9809E37C9D9C5F7D3609C37C91B89B3D28684B3D2300001680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:06.622 F/google-breakpad(25655): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 19:45:06.622 F/google-breakpad(25655): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 19:45:06.622 F/google-breakpad(25655): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 19:45:06.623 F/google-breakpad(25655): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 19:45:06.624 F/google-breakpad(25655): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 19:45:06.625 F/google-breakpad(25655): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 19:45:06.625 F/google-breakpad(25655): M C8F1F000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 19:45:06.625 F/google-breakpad(25655): M CB799000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 19:45:06.625 F/google-breakpad(25655): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 19:45:06.625 F/google-breakpad(25655): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 19:45:06.625 F/google-breakpad(25655): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 19:45:06.625 F/google-breakpad(25655): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 19:45:06.625 F/google-breakpad(25655): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 19:45:06.625 F/google-breakpad(25655): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 19:45:06.626 F/google-breakpad(25655): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 19:45:06.626 F/google-breakpad(25655): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 19:45:06.627 F/google-breakpad(25655): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 19:45:06.627 F/google-breakpad(25655): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 19:45:06.627 F/google-breakpad(25655): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 19:45:06.628 F/google-breakpad(25655): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 19:45:06.629 F/google-breakpad(25655): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 19:45:06.630 F/google-breakpad(25655): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 19:45:06.631 F/google-breakpad(25655): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 19:45:06.632 F/google-breakpad(25655): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 19:45:06.633 F/google-breakpad(25655): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 19:45:06.634 F/google-breakpad(25655): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 19:45:06.634 F/google-breakpad(25655): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 19:45:06.634 F/google-breakpad(25655): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 19:45:06.634 F/google-breakpad(25655): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 19:45:06.634 F/google-breakpad(25655): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 19:45:06.634 F/google-breakpad(25655): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 19:45:06.635 F/google-breakpad(25655): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 19:45:06.636 F/google-breakpad(25655): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 19:45:06.637 F/google-breakpad(25655): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 19:45:06.638 F/google-breakpad(25655): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 19:45:06.638 F/google-breakpad(25655): -----END BREAKPAD MICRODUMP-----
+08-17 19:45:26.056 F/google-breakpad(25833): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 19:45:26.057 F/google-breakpad(25833): V AndroidWebView:62.0.3188.0
+08-17 19:45:26.057 F/google-breakpad(25833): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 19:45:26.057 F/google-breakpad(25833): P webview
+08-17 19:45:26.057 F/google-breakpad(25833): R 00000005 SIGTRAP 22F73000
+08-17 19:45:26.057 F/google-breakpad(25833): G
+08-17 19:45:26.074 F/google-breakpad(25833): H 12C00000 FFF73000 00EE 31E89000 95FAB000 0C:1B 0D:0F 0E:0B 0F:35 10:06 11:05 12:05 13:1C 14:0D 15:0D 16:15 17:18 18:0A 19:03 1B:01 1C:02 1D:01
+08-17 19:45:26.076 F/google-breakpad(25833): S 0 C9472C60 C9472000 00002000
+08-17 19:45:26.077 F/google-breakpad(25833): S C9472000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.078 F/google-breakpad(25833): S C9472180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.078 F/google-breakpad(25833): S C9472300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.079 F/google-breakpad(25833): S C9472480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.079 F/google-breakpad(25833): S C9472600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.080 F/google-breakpad(25833): S C9472780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.081 F/google-breakpad(25833): S C9472900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.081 F/google-breakpad(25833): S C9472A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.082 F/google-breakpad(25833): S C9472C00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005C2D47C94C2D47C9502D47C98C2C47C9EDACEF0DEDACEF0D01000000242E47C9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000BC2C47C901000000000000009002000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D02C47C9EDACEF0D502D47C94C2D47C9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000000000000EDACEF0DEDACEF0DEDACEF0DB7D72BD4C02D47C9B7EF57D2
+08-17 19:45:26.083 F/google-breakpad(25833): S C9472D80 00000000EDACEF0DEDACEF0D0000000000000000EDACEF0D000000000000000001000000EDACEF0D0000000000000000EDACEF0D000000000000000001000000EDACEF0D0000000000000000EDACEF0D000000000000000001000000010000000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7C2E47C9842E47C9882E47C9242E47C9D82E47C9782E47C98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD82E47C94C2E47C9482E47C9D82E47C9382F47C9742F47C9D82E47C900000000EDACEF0DEDACEF0DEDACEF0D3C3147C947733DD4D82E47C9802E47C9782E47C900000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D200000000EDACEF0D000000000000000000000000076291D2A03047C9EDACEF0D382F47C9EDACEF0D4543A7D400000000
+08-17 19:45:26.083 F/google-breakpad(25833): S C9472F00 083047C9EB8E3DD4A43047C902000000302F47C9EDACEF0D382F47C9EDACEF0DEDACEF0D3C000000EDACEF0DEDACEF0DEDACEF0D3C000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0D14617274EDACEF0DEDACEF0D3100000024000000EDACEF0D3C000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA43047C9A03047C9343147C9EDACEF0D4543A7D400000000083047C93C3147C911A03DD400000000000000000C3047C9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D203047C9703347C90000000001000000EDACEF0D00000000783447C923D89CD2000000000800000001000000006291D200000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF00000000
+08-17 19:45:26.084 F/google-breakpad(25833): S C9473080 0000000000000000000000000000000007000000470000006D8741D4EDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000003147C900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000007000000470000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000383247C94543A7D4EDACEF0D383247C9703347C9283247C9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D783447C92DB773D200000000D5B0B6D425B0B6D42C0100007D933DD453E29CD253E29CD2CF228BD2CF228BD29C0A0000EDACEF0D090000009C0A0000000000007DF856D2EDACEF0D7D933DD453E29CD253E29CD2CF228BD2CF228BD2EDACEF0D383247C900000000783447C98D8064D2
+08-17 19:45:26.084 F/google-breakpad(25833): S C9473200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A43247C90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D783447C9B97855D2EDACEF0DA43247C9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D03547C9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D383347C901000000EDACEF0DEDACEF0D783447C93FD49CD2EDACEF0D09000000083347C9EDACEF0D083347C9F03347C9043347C9AFA673D20100000021C973D2000000000000000001000000000000000000000000000000000000000000000000000000EDACEF0D1B000000FFFFFFFF703347C94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD29C0A000000000000EDACEF0D02000000943447C905000000EDACEF0D000000000000000000000000
+08-17 19:45:26.085 F/google-breakpad(25833): S C9473380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD453E29CD253E29CD2CF228BD2CF228BD29C0A0000EDACEF0DE83347C99C0A000000000000EDACEF0DEDACEF0D0000000000000000EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D983447C90000000001000000D83447C900000000783447C9FBC69CD20000000000000000EDACEF0D09000000883447C9010000000000000000000000E8030000000000000000000000000000E8030000B03447C9EDACEF0D803447C900000000EDACEF0D00000000000000000000000000000000EDACEF0D09000000000000000000000000000000EDACEF0D0000000000000000EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD03547C965CC73D20000000000000000EDACEF0D02000000EDACEF0D01000000EDACEF0D00000000D03547C9EDACEF0D0000000000000000
+08-17 19:45:26.086 F/google-breakpad(25833): S C9473500 0000000000000000EDACEF0D283747C9C03547C9EDACEF0DEDACEF0D747D92D400000000283747C9EDACEF0D2DB773D2EDACEF0D303747C9F03547C9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DC3547C9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EA53E29CD253E29CD2CF228BD2CF228BD2178076D2DC3547C9EDACEF0D0000000007E29CD207E29CD207E29CD207E29CD200000000000000000000000000000000FC3547C9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D00000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DC43647C90000000000000000403847C9EDACEF0DEDACEF0D00000000283747C9A43647C9483747C92842A7D4EDACEF0D283747C9EDACEF0D5FB473D2303747C9C43647C9503747C92842A7D400000000303747C9
+08-17 19:45:26.086 F/google-breakpad(25833): S C9473680 503747C935B573D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC03647C9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000F8FFFFFFEDACEF0DE43647C9EDACEF0DB83747C9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D283747C9EDACEF0DB83747C9EDACEF0DC83747C9283747C9703747C92BAA73D2EDACEF0DEDACEF0D01000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000002843A7D42842A7D49601000053E29CD253E29CD2CF228BD2CF228BD2178076D2C9020000010047C900000000FFFFFFFFD0A4BDD20B000000F03747C900000000EDACEF0DEDACEF0DEDACEF0DAC3747C9FFFFFFFFE03747C9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000002843A7D42842A7D49601000053E29CD253E29CD2CF228BD2CF228BD2178076D2C902000001000000D34657D2
+08-17 19:45:26.087 F/google-breakpad(25833): S C9473800 EDACEF0DEDACEF0DEDACEF0D01000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CC3847C9403847C9EDACEF0D00000000CC3847C91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D00000000000000000000000000000000983847C9EDACEF0DEDACEF0DEDACEF0D943847C9EDACEF0D00000000CC3847C9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CC3847C9EDACEF0DEDACEF0D203947C978000000EDACEF0DEDACEF0DA38173D2203947C9CD2F82EA203947C9E52F82EA283947C9EF5C7FEA7800000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D00000000703947C9203947C91600000000000000
+08-17 19:45:26.087 F/google-breakpad(25833): S C9473980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D000000000000000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.088 F/google-breakpad(25833): S C9473B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.089 F/google-breakpad(25833): S C9473C80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.089 F/google-breakpad(25833): S C9473E00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.089 F/google-breakpad(25833): S C9473F80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.090 F/google-breakpad(25833): C 06000040000000000000000005B88FD2000000008C2C47C9CC2C47C960410046AC2C47C94C2D47C95C2D47C9502D47C9802E47C9D9C5F7D3602C47C91B89B3D28684B3D2300001680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:45:26.090 F/google-breakpad(25833): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 19:45:26.090 F/google-breakpad(25833): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 19:45:26.090 F/google-breakpad(25833): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 19:45:26.091 F/google-breakpad(25833): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 19:45:26.092 F/google-breakpad(25833): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 19:45:26.093 F/google-breakpad(25833): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 19:45:26.093 F/google-breakpad(25833): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 19:45:26.093 F/google-breakpad(25833): M C6B80000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 19:45:26.093 F/google-breakpad(25833): M CB999000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 19:45:26.093 F/google-breakpad(25833): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 19:45:26.093 F/google-breakpad(25833): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 19:45:26.093 F/google-breakpad(25833): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 19:45:26.093 F/google-breakpad(25833): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 19:45:26.093 F/google-breakpad(25833): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 19:45:26.093 F/google-breakpad(25833): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 19:45:26.094 F/google-breakpad(25833): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 19:45:26.094 F/google-breakpad(25833): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 19:45:26.095 F/google-breakpad(25833): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 19:45:26.095 F/google-breakpad(25833): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 19:45:26.095 F/google-breakpad(25833): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 19:45:26.095 F/google-breakpad(25833): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 19:45:26.095 F/google-breakpad(25833): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 19:45:26.096 F/google-breakpad(25833): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 19:45:26.097 F/google-breakpad(25833): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 19:45:26.098 F/google-breakpad(25833): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 19:45:26.099 F/google-breakpad(25833): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 19:45:26.100 F/google-breakpad(25833): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 19:45:26.101 F/google-breakpad(25833): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 19:45:26.102 F/google-breakpad(25833): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 19:45:26.102 F/google-breakpad(25833): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 19:45:26.102 F/google-breakpad(25833): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 19:45:26.102 F/google-breakpad(25833): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 19:45:26.103 F/google-breakpad(25833): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 19:45:26.104 F/google-breakpad(25833): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 19:45:26.105 F/google-breakpad(25833): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 19:45:26.106 F/google-breakpad(25833): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 19:45:26.106 F/google-breakpad(25833): -----END BREAKPAD MICRODUMP-----
+08-17 19:47:07.900 F/google-breakpad(26081): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 19:47:07.900 F/google-breakpad(26081): V AndroidWebView:62.0.3188.0
+08-17 19:47:07.901 F/google-breakpad(26081): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 19:47:07.901 F/google-breakpad(26081): P webview
+08-17 19:47:07.901 F/google-breakpad(26081): R 00000005 SIGTRAP 29627000
+08-17 19:47:07.901 F/google-breakpad(26081): G
+08-17 19:47:07.913 F/google-breakpad(26081): H 12C00000 FFF73000 0108 31E89000 9516B000 0C:12 0D:13 0E:13 0F:3A 10:07 11:05 12:12 13:20 14:0F 15:0E 16:19 17:12 18:07 19:05 1B:01 1C:02 1D:01
+08-17 19:47:07.914 F/google-breakpad(26081): S 0 C94F5C60 C94F5000 00002000
+08-17 19:47:07.914 F/google-breakpad(26081): S C94F5000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.915 F/google-breakpad(26081): S C94F5180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.915 F/google-breakpad(26081): S C94F5300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.916 F/google-breakpad(26081): S C94F5480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.916 F/google-breakpad(26081): S C94F5600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.917 F/google-breakpad(26081): S C94F5780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.917 F/google-breakpad(26081): S C94F5900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.918 F/google-breakpad(26081): S C94F5A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.918 F/google-breakpad(26081): S C94F5C00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005C5D4FC94C5D4FC9505D4FC98C5C4FC9EDACEF0DEDACEF0D01000000245E4FC9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D02000000EDACEF0DEDACEF0DEDACEF0D0000000000000000BC5C4FC901000000000000005206000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D05C4FC9EDACEF0D505D4FC94C5D4FC9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000002000000EDACEF0DEDACEF0DEDACEF0DB7D72BD424000000EDACEF0D
+08-17 19:47:07.919 F/google-breakpad(26081): S C94F5D80 F85D4FC9EDACEF0DEDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0000000002000000EDACEF0D000000000200000001000000EDACEF0D0000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7C5E4FC9845E4FC9885E4FC9245E4FC9D85E4FC9785E4FC98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD85E4FC94C5E4FC9485E4FC9D85E4FC9385F4FC9745F4FC9D85E4FC900000000EDACEF0DEDACEF0DEDACEF0D3C614FC947733DD4D85E4FC9805E4FC9785E4FC901000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D20000000001B056D2000000000000000000000000F05E4FC9A0604FC9EDACEF0D385F4FC9EDACEF0D4543A7D400000000
+08-17 19:47:07.919 F/google-breakpad(26081): S C94F5F00 08604FC9EB8E3DD4A4604FC9DF8697D2EDACEF0DE38598D2EDACEF0DEDACEF0DEDACEF0D62000000EDACEF0DEDACEF0DEDACEF0D62000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0DEDACEF0DEDACEF0D000000003100000024000000EDACEF0D62000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA4604FC9A0604FC934614FC9EDACEF0D4543A7D40000000008604FC93C614FC911A03DD400000000000000000C604FC9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D20604FC970634FC90000000003000000EDACEF0D0000000078644FC923D89CD200000000080000000100000095CD90D2EDACEF0D4543A7D400000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D000000000100000000000000EDACEF0DEDACEF0D00000000000000004543A7D400000000EDACEF0D97C090D2EDACEF0DEDACEF0D
+08-17 19:47:07.920 F/google-breakpad(26081): S C94F6080 9C604FC900000000EDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00604FC9EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000614FC900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000002D000000620000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000038624FC94543A7D4EDACEF0D38624FC970634FC928624FC9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D78644FC92DB773D2EDACEF0DEDACEF0DD9C68DD2F1C68DD2EDACEF0D07000000EDACEF0DD9C68DD20700000065C38DD2EDACEF0D0900000009000000EDACEF0D7DF856D2EDACEF0D7D933DD4CF228BD2CF228BD2178076D2013B65D2EDACEF0D38624FC90000000078644FC98D8064D2
+08-17 19:47:07.920 F/google-breakpad(26081): S C94F6200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A4624FC90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D78644FC9B97855D2EDACEF0DA4624FC9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D0654FC9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D38634FC903000000EDACEF0DEDACEF0D78644FC93FD49CD2EDACEF0D09000000010000006B9855D2FC624FC90000000048634FC900000000EDACEF0DEDACEF0D0900000005E09CD209000000EDACEF0D0000000000000000000000000000000000000000EDACEF0D1B000000FFFFFFFF70634FC94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD2EDACEF0D00000000EDACEF0D0200000094644FC905000000EDACEF0D000000000000000000000000
+08-17 19:47:07.921 F/google-breakpad(26081): S C94F6380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD4CF228BD2CF228BD2178076D2013B65D2EDACEF0DEDACEF0DE8634FC9EDACEF0D00000000EDACEF0DEDACEF0D0000000000000000EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D98644FC90000000003000000D8644FC90000000078644FC9FBC69CD20000000000000000EDACEF0D0900000088644FC9000000000000000000000000E8030000000000000000000000000000E8030000B0644FC9EDACEF0D80644FC900000000EDACEF0D00000000000000000000000000000000EDACEF0D09000000000000000000000000000000EDACEF0D0000000000000000EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD0654FC965CC73D2000000000000000000000000000000000000000000000000EDACEF0D00000000D0654FC9EDACEF0D0000000000000000
+08-17 19:47:07.921 F/google-breakpad(26081): S C94F6500 0000000000000000EDACEF0D28674FC9C0654FC9EDACEF0DEDACEF0D747D92D40000000028674FC9EDACEF0D2DB773D2EDACEF0D30674FC9F0654FC9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DC654FC9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EACF228BD2CF228BD2178076D2013B65D2479B9CD2DC654FC9EDACEF0D0000000007E29CD253E29CD2CF228BD2CF228BD200000000000000000000000000000000FC654FC9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D000000000000000000000000000000002000000000000000000000000000000000000000EDACEF0D000000000000000000000000F76985EA0000000000000000EDACEF0D00000000000000000000000040684FC9EDACEF0DEDACEF0D0000000028674FC9A4664FC948674FC92842A7D4EDACEF0D28674FC9EDACEF0D5FB473D230674FC9C4664FC950674FC92842A7D40000000030674FC9
+08-17 19:47:07.922 F/google-breakpad(26081): S C94F6680 50674FC935B573D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC0664FC9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000FCFFFFFFEDACEF0DE4664FC9EDACEF0DB8674FC9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D28674FC9EDACEF0DB8674FC9EDACEF0DC8674FC928674FC970674FC92BAA73D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD2F708000001004FC900000000FFFFFFFFD0A4BDD202000000F0674FC900000000EDACEF0DEDACEF0DEDACEF0DAC674FC9FFFFFFFFE0674FC9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD2F708000001000000D34657D2
+08-17 19:47:07.922 F/google-breakpad(26081): S C94F6800 EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CC684FC940684FC9EDACEF0D00000000CC684FC91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D0000000000000000000000000000000098684FC9EDACEF0DEDACEF0DEDACEF0D94684FC9EDACEF0D00000000CC684FC9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CC684FC9EDACEF0DEDACEF0D20694FC978000000EDACEF0DEDACEF0DA38173D220694FC9CD2F82EA20694FC9E52F82EA28694FC9EF5C7FEA7800000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D0000000070694FC920694FC91600000000000000
+08-17 19:47:07.923 F/google-breakpad(26081): S C94F6980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D000000000000000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.923 F/google-breakpad(26081): S C94F6B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.924 F/google-breakpad(26081): S C94F6C80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.924 F/google-breakpad(26081): S C94F6E00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.924 F/google-breakpad(26081): S C94F6F80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.925 F/google-breakpad(26081): C 06000040000000000000000005B88FD2020000008C5C4FC9CC5C4FC918F76A2CAC5C4FC94C5D4FC95C5D4FC9505D4FC9805E4FC9D9C5F7D3605C4FC91B89B3D28684B3D2300001680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:07.925 F/google-breakpad(26081): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 19:47:07.925 F/google-breakpad(26081): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 19:47:07.925 F/google-breakpad(26081): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 19:47:07.926 F/google-breakpad(26081): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 19:47:07.927 F/google-breakpad(26081): M C7D92000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 19:47:07.928 F/google-breakpad(26081): M CBA19000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 19:47:07.928 F/google-breakpad(26081): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 19:47:07.928 F/google-breakpad(26081): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 19:47:07.928 F/google-breakpad(26081): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 19:47:07.928 F/google-breakpad(26081): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 19:47:07.928 F/google-breakpad(26081): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 19:47:07.928 F/google-breakpad(26081): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 19:47:07.928 F/google-breakpad(26081): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 19:47:07.928 F/google-breakpad(26081): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 19:47:07.929 F/google-breakpad(26081): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 19:47:07.929 F/google-breakpad(26081): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 19:47:07.929 F/google-breakpad(26081): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 19:47:07.929 F/google-breakpad(26081): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 19:47:07.929 F/google-breakpad(26081): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 19:47:07.929 F/google-breakpad(26081): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 19:47:07.930 F/google-breakpad(26081): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 19:47:07.930 F/google-breakpad(26081): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 19:47:07.930 F/google-breakpad(26081): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 19:47:07.931 F/google-breakpad(26081): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 19:47:07.932 F/google-breakpad(26081): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 19:47:07.933 F/google-breakpad(26081): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 19:47:07.934 F/google-breakpad(26081): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 19:47:07.935 F/google-breakpad(26081): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 19:47:07.936 F/google-breakpad(26081): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 19:47:07.936 F/google-breakpad(26081): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 19:47:07.937 F/google-breakpad(26081): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 19:47:07.938 F/google-breakpad(26081): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 19:47:07.939 F/google-breakpad(26081): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 19:47:07.939 F/google-breakpad(26081): -----END BREAKPAD MICRODUMP-----
+08-17 19:47:35.311 F/google-breakpad(26227): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 19:47:35.311 F/google-breakpad(26227): V AndroidWebView:62.0.3188.0
+08-17 19:47:35.311 F/google-breakpad(26227): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 19:47:35.311 F/google-breakpad(26227): P webview
+08-17 19:47:35.311 F/google-breakpad(26227): R 00000005 SIGTRAP 00000000
+08-17 19:47:35.311 F/google-breakpad(26227): G
+08-17 19:47:35.323 F/google-breakpad(26227): H 12C00000 FFF73000 00F5 31E89000 9598E000 0C:16 0D:08 0E:11 0F:47 10:06 11:0A 12:08 13:13 14:09 15:0A 16:1B 17:13 18:0D 19:02 1B:01 1C:02 1D:01
+08-17 19:47:35.324 F/google-breakpad(26227): S 0 C92FFC60 C92FF000 00002000
+08-17 19:47:35.324 F/google-breakpad(26227): S C92FF000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.325 F/google-breakpad(26227): S C92FF180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.325 F/google-breakpad(26227): S C92FF300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.326 F/google-breakpad(26227): S C92FF480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.326 F/google-breakpad(26227): S C92FF600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.327 F/google-breakpad(26227): S C92FF780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.327 F/google-breakpad(26227): S C92FF900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.328 F/google-breakpad(26227): S C92FFA80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.328 F/google-breakpad(26227): S C92FFC00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005CFD2FC94CFD2FC950FD2FC98CFC2FC9EDACEF0DEDACEF0D0100000024FE2FC9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D02000000EDACEF0DEDACEF0DEDACEF0D0000000000000000BCFC2FC901000000000000007F02000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D0FC2FC9EDACEF0D50FD2FC94CFD2FC9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000002000000EDACEF0DEDACEF0DEDACEF0DB7D72BD424000000EDACEF0D
+08-17 19:47:35.329 F/google-breakpad(26227): S C92FFD80 F8FD2FC9EDACEF0DEDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0000000002000000EDACEF0D0000000002000000010000000F0B00000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7CFE2FC984FE2FC988FE2FC924FE2FC9D8FE2FC978FE2FC98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD8FE2FC94CFE2FC948FE2FC9D8FE2FC938FF2FC974FF2FC9D8FE2FC900000000EDACEF0DEDACEF0DEDACEF0D3C0130C947733DD4D8FE2FC980FE2FC978FE2FC901000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D20000000001B056D2000000000000000000000000F0FE2FC9A00030C9EDACEF0D38FF2FC9EDACEF0D4543A7D400000000
+08-17 19:47:35.329 F/google-breakpad(26227): S C92FFF00 080030C9EB8E3DD4A40030C9DF8697D2EDACEF0DE38598D2EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0D14617274EDACEF0DEDACEF0D3100000024000000EDACEF0D31000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA40030C9A00030C9340130C9EDACEF0D4543A7D400000000080030C93C0130C911A03DD400000000000000000C0030C9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D200030C9700330C90000000003000000EDACEF0D00000000780430C923D89CD200000000080000000100000095CD90D2EDACEF0D4543A7D400000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D000000000100000000000000EDACEF0DEDACEF0D00000000000000004543A7D400000000EDACEF0D97C090D2EDACEF0DEDACEF0D
+08-17 19:47:35.330 F/google-breakpad(26227): S C9300080 9C0030C900000000EDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D000030C9EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000130C900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000002D000000310000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000380230C94543A7D4EDACEF0D380230C9700330C9280230C9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D780430C92DB773D2EDACEF0DEDACEF0DD9C68DD2F1C68DD2EDACEF0D07000000EDACEF0DD9C68DD20700000065C38DD2EDACEF0D0900000009000000DCC61D727DF856D2EDACEF0D7D933DD4CF228BD2CF228BD2178076D2013B65D2EDACEF0D380230C900000000780430C98D8064D2
+08-17 19:47:35.330 F/google-breakpad(26227): S C9300200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A40230C90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D780430C9B97855D2EDACEF0DA40230C9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D00530C9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D380330C903000000EDACEF0DEDACEF0D780430C93FD49CD2EDACEF0D09000000010000006B9855D2FC0230C900000000480330C900000000EDACEF0DEDACEF0D0900000005E09CD209000000EDACEF0D0000000000000000000000000000000000000000EDACEF0D1B000000FFFFFFFF700330C94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD20E0B000000000000EDACEF0D02000000940430C905000000EDACEF0D000000000000000000000000
+08-17 19:47:35.331 F/google-breakpad(26227): S C9300380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD4CF228BD2CF228BD2178076D2013B65D20E0B0000EDACEF0DE80330C90E0B000000000000EDACEF0DEDACEF0D0000000000000000EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D980430C90000000003000000D80430C900000000780430C9FBC69CD20000000000000000EDACEF0D09000000880430C9000000000000000000000000E8030000000000000000000000000000E8030000B00430C9EDACEF0D800430C900000000EDACEF0D00000000000000000000000000000000EDACEF0D09000000000000000000000000000000EDACEF0D0000000000000000EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD00530C965CC73D2000000000000000000000000000000000000000000000000EDACEF0D00000000D00530C9EDACEF0D0000000000000000
+08-17 19:47:35.331 F/google-breakpad(26227): S C9300500 0000000000000000EDACEF0D280730C9C00530C9EDACEF0DEDACEF0D747D92D400000000280730C9EDACEF0D2DB773D2EDACEF0D300730C9F00530C9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DC0530C9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EACF228BD2CF228BD2178076D2013B65D2479B9CD2DC0530C9EDACEF0D0000000007E29CD253E29CD2CF228BD2CF228BD200000000000000000000000000000000FC0530C9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D000000000000000000000000000000002000000000000000000000000000000000000000EDACEF0D000000000000000000000000F76985EA0000000000000000EDACEF0D000000000000000000000000400830C9EDACEF0DEDACEF0D00000000280730C9A40630C9480730C92842A7D4EDACEF0D280730C9EDACEF0D5FB473D2300730C9C40630C9500730C92842A7D400000000300730C9
+08-17 19:47:35.332 F/google-breakpad(26227): S C9300680 500730C935B573D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC00630C9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000F4FFFFFFEDACEF0DE40630C9EDACEF0DB80730C9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D280730C9EDACEF0DB80730C9EDACEF0DC80730C9280730C9700730C92BAA73D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD246030000010030C900000000FFFFFFFFD0A4BDD202000000F00730C900000000EDACEF0DEDACEF0DEDACEF0DAC0730C9FFFFFFFFE00730C9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD24603000001000000D34657D2
+08-17 19:47:35.332 F/google-breakpad(26227): S C9300800 EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CC0830C9400830C9EDACEF0D00000000CC0830C91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D00000000000000000000000000000000980830C9EDACEF0DEDACEF0DEDACEF0D940830C9EDACEF0D00000000CC0830C9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CC0830C9EDACEF0DEDACEF0D200930C978000000EDACEF0DEDACEF0DA38173D2200930C9CD2F82EA200930C9E52F82EA280930C9EF5C7FEA7800000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D00000000700930C9200930C91600000000000000
+08-17 19:47:35.333 F/google-breakpad(26227): S C9300980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D000000000000000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.333 F/google-breakpad(26227): S C9300B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.334 F/google-breakpad(26227): S C9300C80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.334 F/google-breakpad(26227): S C9300E00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.334 F/google-breakpad(26227): S C9300F80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.335 F/google-breakpad(26227): C 06000040000000000000000005B88FD2020000008CFC2FC9CCFC2FC9003480C8ACFC2FC94CFD2FC95CFD2FC950FD2FC980FE2FC9D9C5F7D360FC2FC91B89B3D28684B3D2300003680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:47:35.335 F/google-breakpad(26227): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 19:47:35.335 F/google-breakpad(26227): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 19:47:35.335 F/google-breakpad(26227): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 19:47:35.335 F/google-breakpad(26227): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 19:47:35.336 F/google-breakpad(26227): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 19:47:35.337 F/google-breakpad(26227): M C691B000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 19:47:35.337 F/google-breakpad(26227): M CB91A000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 19:47:35.338 F/google-breakpad(26227): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 19:47:35.338 F/google-breakpad(26227): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 19:47:35.338 F/google-breakpad(26227): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 19:47:35.338 F/google-breakpad(26227): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 19:47:35.339 F/google-breakpad(26227): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 19:47:35.339 F/google-breakpad(26227): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 19:47:35.339 F/google-breakpad(26227): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 19:47:35.339 F/google-breakpad(26227): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 19:47:35.339 F/google-breakpad(26227): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 19:47:35.340 F/google-breakpad(26227): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 19:47:35.341 F/google-breakpad(26227): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 19:47:35.342 F/google-breakpad(26227): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 19:47:35.343 F/google-breakpad(26227): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 19:47:35.344 F/google-breakpad(26227): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 19:47:35.345 F/google-breakpad(26227): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 19:47:35.345 F/google-breakpad(26227): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 19:47:35.346 F/google-breakpad(26227): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 19:47:35.347 F/google-breakpad(26227): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 19:47:35.348 F/google-breakpad(26227): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 19:47:35.348 F/google-breakpad(26227): -----END BREAKPAD MICRODUMP-----
+08-17 19:48:17.238 F/google-breakpad(26353): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 19:48:17.238 F/google-breakpad(26353): V AndroidWebView:62.0.3188.0
+08-17 19:48:17.238 F/google-breakpad(26353): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 19:48:17.238 F/google-breakpad(26353): P webview
+08-17 19:48:17.238 F/google-breakpad(26353): R 00000005 SIGTRAP 4ED50008
+08-17 19:48:17.238 F/google-breakpad(26353): G
+08-17 19:48:17.249 F/google-breakpad(26353): H 12C00000 FFF73000 00E0 31E89000 955B2000 0C:18 0D:11 0E:0B 0F:3E 10:01 11:02 12:05 13:14 14:0C 15:07 16:0F 17:1E 18:0C 19:02 1B:01 1C:02 1D:01
+08-17 19:48:17.251 F/google-breakpad(26353): S 0 C94F5C60 C94F5000 00002000
+08-17 19:48:17.251 F/google-breakpad(26353): S C94F5000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.252 F/google-breakpad(26353): S C94F5180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.252 F/google-breakpad(26353): S C94F5300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.253 F/google-breakpad(26353): S C94F5480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.253 F/google-breakpad(26353): S C94F5600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.254 F/google-breakpad(26353): S C94F5780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.254 F/google-breakpad(26353): S C94F5900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.255 F/google-breakpad(26353): S C94F5A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.255 F/google-breakpad(26353): S C94F5C00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005C5D4FC94C5D4FC9505D4FC98C5C4FC9EDACEF0DEDACEF0D01000000245E4FC9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D02000000EDACEF0DEDACEF0DEDACEF0D0000000000000000BC5C4FC901000000000000008602000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D05C4FC9EDACEF0D505D4FC94C5D4FC9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000002000000EDACEF0DEDACEF0DEDACEF0DB7D72BD424000000EDACEF0D
+08-17 19:48:17.256 F/google-breakpad(26353): S C94F5D80 F85D4FC9EDACEF0DEDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0000000002000000EDACEF0D0000000002000000010000000F0B00000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7C5E4FC9845E4FC9885E4FC9245E4FC9D85E4FC9785E4FC98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD85E4FC94C5E4FC9485E4FC9D85E4FC9385F4FC9745F4FC9D85E4FC900000000EDACEF0DEDACEF0DEDACEF0D3C614FC947733DD4D85E4FC9805E4FC9785E4FC901000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D20000000001B056D2000000000000000000000000F05E4FC9A0604FC9EDACEF0D385F4FC9EDACEF0D4543A7D400000000
+08-17 19:48:17.256 F/google-breakpad(26353): S C94F5F00 08604FC9EB8E3DD4A4604FC9DF8697D2EDACEF0DE38598D2EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0D14617274EDACEF0DEDACEF0D3100000024000000EDACEF0D31000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA4604FC9A0604FC934614FC9EDACEF0D4543A7D40000000008604FC93C614FC911A03DD400000000000000000C604FC9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D20604FC970634FC90000000003000000EDACEF0D0000000078644FC923D89CD200000000080000000100000095CD90D2EDACEF0D4543A7D400000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D000000000100000000000000EDACEF0DEDACEF0D00000000000000004543A7D400000000EDACEF0D97C090D2EDACEF0DEDACEF0D
+08-17 19:48:17.257 F/google-breakpad(26353): S C94F6080 9C604FC900000000EDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00604FC9EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000614FC900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000002D000000310000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000038624FC94543A7D4EDACEF0D38624FC970634FC928624FC9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D78644FC92DB773D207000000EDACEF0DEDACEF0DD9C68DD207000000B1AF56D2EDACEF0D07000000EDACEF0D65C38DD2EDACEF0D0900000009000000EDACEF0D7DF856D2EDACEF0D7D933DD4CF228BD2CF228BD2178076D2013B65D2EDACEF0D38624FC90000000078644FC98D8064D2
+08-17 19:48:17.257 F/google-breakpad(26353): S C94F6200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A4624FC90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D78644FC9B97855D2EDACEF0DA4624FC9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D0654FC9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D38634FC903000000EDACEF0DEDACEF0D78644FC93FD49CD2EDACEF0D09000000010000006B9855D2FC624FC90000000048634FC900000000EDACEF0DEDACEF0D0900000005E09CD209000000EDACEF0D0000000000000000000000000000000000000000EDACEF0D1B000000FFFFFFFF70634FC94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD20F0B000000000000EDACEF0D0200000094644FC905000000EDACEF0D000000000000000000000000
+08-17 19:48:17.257 F/google-breakpad(26353): S C94F6380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD4CF228BD2CF228BD2178076D2013B65D20F0B0000EDACEF0DE8634FC90F0B000000000000EDACEF0DEDACEF0D0000000000000000EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D98644FC90000000003000000D8644FC90000000078644FC9FBC69CD20000000000000000EDACEF0D0900000088644FC9000000000000000000000000E8030000000000000000000000000000E8030000B0644FC9EDACEF0D80644FC900000000EDACEF0D00000000000000000000000000000000EDACEF0D09000000000000000000000000000000EDACEF0D0000000000000000EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD0654FC965CC73D2000000000000000000000000000000000000000000000000EDACEF0D00000000D0654FC9EDACEF0D0000000000000000
+08-17 19:48:17.258 F/google-breakpad(26353): S C94F6500 0000000000000000EDACEF0D28674FC9C0654FC9EDACEF0DEDACEF0D747D92D40000000028674FC9EDACEF0D2DB773D2EDACEF0D30674FC9F0654FC9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DC654FC9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EACF228BD2CF228BD2178076D2013B65D2479B9CD2DC654FC9EDACEF0D0000000007E29CD253E29CD2CF228BD2CF228BD200000000000000000000000000000000FC654FC9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D00000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DC4664FC9000000000000000040684FC9EDACEF0DEDACEF0D0000000028674FC9A4664FC948674FC92842A7D4EDACEF0D28674FC9EDACEF0D5FB473D230674FC9C4664FC950674FC92842A7D40000000030674FC9
+08-17 19:48:17.258 F/google-breakpad(26353): S C94F6680 50674FC935B573D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC0664FC9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000EDACEF0DEDACEF0DE4664FC9EDACEF0DB8674FC9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D28674FC9EDACEF0DB8674FC9EDACEF0DC8674FC928674FC970674FC92BAA73D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD23703000001004FC900000000FFFFFFFFD0A4BDD202000000F0674FC900000000EDACEF0DEDACEF0DEDACEF0DAC674FC9FFFFFFFFE0674FC9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD23703000001000000D34657D2
+08-17 19:48:17.259 F/google-breakpad(26353): S C94F6800 EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CC684FC940684FC9EDACEF0D00000000CC684FC91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D0000000000000000000000000000000098684FC9EDACEF0DEDACEF0DEDACEF0D94684FC9EDACEF0D00000000CC684FC9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CC684FC9EDACEF0DEDACEF0D20694FC978000000EDACEF0DEDACEF0DA38173D220694FC9CD2F82EA20694FC9E52F82EA28694FC9EF5C7FEA7800000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D0000000070694FC920694FC91600000000000000
+08-17 19:48:17.259 F/google-breakpad(26353): S C94F6980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D000000000000000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.260 F/google-breakpad(26353): S C94F6B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.260 F/google-breakpad(26353): S C94F6C80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.261 F/google-breakpad(26353): S C94F6E00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.261 F/google-breakpad(26353): S C94F6F80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.261 F/google-breakpad(26353): C 06000040000000000000000005B88FD2020000008C5C4FC9CC5C4FC9D0C16F30AC5C4FC94C5D4FC95C5D4FC9505D4FC9805E4FC9D9C5F7D3605C4FC91B89B3D28684B3D2300001680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 19:48:17.262 F/google-breakpad(26353): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 19:48:17.262 F/google-breakpad(26353): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 19:48:17.262 F/google-breakpad(26353): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 19:48:17.262 F/google-breakpad(26353): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 19:48:17.262 F/google-breakpad(26353): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 19:48:17.262 F/google-breakpad(26353): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 19:48:17.262 F/google-breakpad(26353): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 19:48:17.263 F/google-breakpad(26353): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 19:48:17.264 F/google-breakpad(26353): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 19:48:17.264 F/google-breakpad(26353): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 19:48:17.264 F/google-breakpad(26353): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 19:48:17.264 F/google-breakpad(26353): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 19:48:17.264 F/google-breakpad(26353): M C79F1000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 19:48:17.264 F/google-breakpad(26353): M CBA19000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 19:48:17.264 F/google-breakpad(26353): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 19:48:17.264 F/google-breakpad(26353): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 19:48:17.264 F/google-breakpad(26353): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 19:48:17.264 F/google-breakpad(26353): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 19:48:17.264 F/google-breakpad(26353): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 19:48:17.264 F/google-breakpad(26353): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 19:48:17.265 F/google-breakpad(26353): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 19:48:17.266 F/google-breakpad(26353): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 19:48:17.266 F/google-breakpad(26353): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 19:48:17.266 F/google-breakpad(26353): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 19:48:17.266 F/google-breakpad(26353): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 19:48:17.267 F/google-breakpad(26353): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 19:48:17.268 F/google-breakpad(26353): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 19:48:17.269 F/google-breakpad(26353): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 19:48:17.270 F/google-breakpad(26353): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 19:48:17.271 F/google-breakpad(26353): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 19:48:17.272 F/google-breakpad(26353): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 19:48:17.272 F/google-breakpad(26353): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 19:48:17.272 F/google-breakpad(26353): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 19:48:17.272 F/google-breakpad(26353): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 19:48:17.272 F/google-breakpad(26353): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 19:48:17.273 F/google-breakpad(26353): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 19:48:17.274 F/google-breakpad(26353): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 19:48:17.275 F/google-breakpad(26353): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 19:48:17.276 F/google-breakpad(26353): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 19:48:17.276 F/google-breakpad(26353): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 19:48:17.276 F/google-breakpad(26353): -----END BREAKPAD MICRODUMP-----
+08-17 20:31:35.553 W/google-breakpad( 2783): Output crash dump file:
+08-17 20:31:35.553 W/google-breakpad( 2783): /data/user/0/com.devhd.feedly/cache/WebView/Crash Reports/43961460-fc25-4f3e-8f3e429a-43a548d8.dmp
+08-17 20:31:35.554 W/google-breakpad( 2783): ### ### ### ### ### ### ### ### ### ### ### ### ###
+08-17 20:31:35.554 W/google-breakpad( 2783): Chrome build fingerprint:
+08-17 20:31:35.554 W/google-breakpad( 2783): 37.3.0
+08-17 20:31:35.554 W/google-breakpad( 2783): 668
+08-17 20:31:35.554 W/google-breakpad( 2783): ### ### ### ### ### ### ### ### ### ### ### ### ###
+08-17 20:31:35.709 F/google-breakpad( 2913): -----BEGIN BREAKPAD MICRODUMP-----
+08-17 20:31:35.709 F/google-breakpad( 2913): V AndroidWebView:62.0.3188.0
+08-17 20:31:35.709 F/google-breakpad( 2913): O A arm 08 armv8l Nokia/TA-1025_00WW/PLE:7.1.1/NMF26F/00WW_3_32C:user/release-keys
+08-17 20:31:35.709 F/google-breakpad( 2913): P webview
+08-17 20:31:35.709 F/google-breakpad( 2913): R 00000005 SIGTRAP 00000000
+08-17 20:31:35.709 F/google-breakpad( 2913): G
+08-17 20:31:35.718 F/google-breakpad( 2913): H 12C00000 FFF73000 00B3 31E89000 9A70D000 0C:10 0D:0D 0E:06 0F:27 10:04 11:04 12:05 13:0B 14:06 15:11 16:0D 17:17 18:10 19:02 1B:01 1C:02 1D:01
+08-17 20:31:35.718 F/google-breakpad( 2913): S 0 C96F4C60 C96F4000 00002000
+08-17 20:31:35.719 F/google-breakpad( 2913): S C96F4000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.719 F/google-breakpad( 2913): S C96F4180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.720 F/google-breakpad( 2913): S C96F4300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.720 F/google-breakpad( 2913): S C96F4480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.721 F/google-breakpad( 2913): S C96F4600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.721 F/google-breakpad( 2913): S C96F4780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.722 F/google-breakpad( 2913): S C96F4900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.722 F/google-breakpad( 2913): S C96F4A80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.723 F/google-breakpad( 2913): S C96F4C00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005C4D6FC94C4D6FC9504D6FC98C4C6FC9EDACEF0DEDACEF0D01000000244E6FC9010000009D20FCD3EDACEF0DEDACEF0D00000000EDACEF0D02000000EDACEF0DEDACEF0DEDACEF0D0000000000000000BC4C6FC90100000000000000DA01000000000000EDACEF0D00000000200000000000000000002CD4000000000000000000000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D00000000EDACEF0D0000000000000000EDACEF0D0000000000000000000000000000000020000000D04C6FC9EDACEF0D504D6FC94C4D6FC9EDACEF0DEDACEF0DD5D92BD4EDACEF0DEDACEF0DEDACEF0D0000000003000000EDACEF0D0000000002000000EDACEF0DEDACEF0DEDACEF0DB7D72BD424000000EDACEF0D
+08-17 20:31:35.723 F/google-breakpad( 2913): S C96F4D80 F84D6FC9EDACEF0DEDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0200000000000000EDACEF0D000000000200000001000000EDACEF0D0000000002000000EDACEF0D000000000200000001000000230900000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF01000000EDACEF0D7C4E6FC9844E6FC9884E6FC9244E6FC9D84E6FC9784E6FC98F0830D4EDACEF0DEDACEF0DEDACEF0DDD7755D2EDACEF0DD84E6FC94C4E6FC9484E6FC9D84E6FC9384F6FC9744F6FC9D84E6FC900000000EDACEF0DEDACEF0DEDACEF0D3C516FC947733DD4D84E6FC9804E6FC9784E6FC901000000EDACEF0DEDACEF0DEDACEF0D018D98D200000000000000000400000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF070000001D00000000000000FFFFFFFF00000000FFFFFFFF00CB97D20000000001B056D2000000000000000000000000F04E6FC9A0506FC9EDACEF0D384F6FC9EDACEF0D4543A7D400000000
+08-17 20:31:35.724 F/google-breakpad( 2913): S C96F4F00 08506FC9EB8E3DD4A4506FC9DF8697D2EDACEF0DE38598D2EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DEDACEF0DEDACEF0D31000000EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFFEDACEF0D6C0000000000000001000000EDACEF0DEDACEF0D742F6874EDACEF0D14617274EDACEF0DEDACEF0D3100000024000000EDACEF0D31000000FFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFFA4506FC9A0506FC934516FC9EDACEF0D4543A7D40000000008506FC93C516FC911A03DD400000000000000000C506FC9EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0D00000000EDACEF0D02000000B9D89CD2EDACEF0DEDACEF0D20506FC970536FC90000000003000000EDACEF0D0000000078546FC923D89CD200000000080000000100000095CD90D2EDACEF0D4543A7D400000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D000000000100000000000000EDACEF0DEDACEF0D00000000000000004543A7D400000000EDACEF0D97C090D2EDACEF0DEDACEF0D
+08-17 20:31:35.724 F/google-breakpad( 2913): S C96F5080 9C506FC900000000EDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D00506FC9EDACEF0DFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000516FC900000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF02000000FFFFFFFFFFFFFFFF01000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000002D000000310000000200000000000000EDACEF0DEDACEF0D000000000000000000000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000038526FC94543A7D4EDACEF0D38526FC970536FC928526FC9EDACEF0DEDACEF0D4543A7D400000000EDACEF0D78546FC92DB773D2EDACEF0DEDACEF0DD9C68DD2F1C68DD2EDACEF0D07000000EDACEF0DD9C68DD20700000065C38DD2EDACEF0D0900000009000000EDACEF0D7DF856D2EDACEF0D7D933DD4CF228BD2CF228BD2178076D2013B65D2EDACEF0D38526FC90000000078546FC98D8064D2
+08-17 20:31:35.725 F/google-breakpad( 2913): S C96F5200 6E70E4D48970E4D400000000000000000000000000000000EDACEF0D000000000000000000000000EDACEF0D0000000000000000A4526FC90000000000000000EDACEF0DEDACEF0DEDACEF0D7B2B84EAEDACEF0DEDACEF0D78546FC9B97855D2EDACEF0DA4526FC9EDACEF0DEDACEF0DEDACEF0D090000000000000009000000EDACEF0DEDACEF0D0000000000000000EDACEF0DEDACEF0D0000000000000000D0556FC9EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D38536FC903000000EDACEF0DEDACEF0D78546FC93FD49CD2EDACEF0D09000000EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0100000000000000F9C973D20900000005E09CD209000000EDACEF0D0000000000000000000000000000000000000000EDACEF0D1C000000FFFFFFFF70536FC94F1B59D2EDACEF0D090000000000000000000000000000000000000025B0B6D4EDACEF0D00000000A1CE9CD22209000000000000EDACEF0D0200000094546FC905000000EDACEF0D000000000000000000000000
+08-17 20:31:35.725 F/google-breakpad( 2913): S C96F5380 000000000000000000000000D5B0B6D425B0B6D42C0100007D933DD4CF228BD2CF228BD2178076D2013B65D222090000EDACEF0DE8536FC92209000000000000EDACEF0DEDACEF0D0000000000000000EDACEF0D090000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DEDACEF0D98546FC90000000003000000D8546FC90000000078546FC9FBC69CD20000000000000000EDACEF0D0900000088546FC9000000000000000000000000E8030000000000000000000000000000E8030000B0546FC9EDACEF0D80546FC900000000EDACEF0D00000000000000000000000000000000EDACEF0D09000000000000000000000000000000EDACEF0D0000000000000000EDACEF0D0900000000000000000000000000000000000000EDACEF0DEDACEF0D00000000EDACEF0DD0556FC965CC73D2000000000000000000000000000000000000000000000000EDACEF0D00000000D0556FC9EDACEF0D0000000000000000
+08-17 20:31:35.726 F/google-breakpad( 2913): S C96F5500 0000000000000000EDACEF0D28576FC9C0556FC9EDACEF0DEDACEF0D747D92D40000000028576FC9EDACEF0D2DB773D2EDACEF0D30576FC9F0556FC9EDACEF0DEDACEF0D747D92D4000000006BB773D201010000DC556FC9EDACEF0DEDACEF0DB000000080000000EDACEF0D7B2B84EACF228BD2CF228BD2178076D2013B65D2479B9CD2DC556FC9EDACEF0D0000000007E29CD207E29CD207E29CD207E29CD200000000000000000000000000000000FC556FC9000000000000000000000000EDACEF0D00000000EDACEF0DF6FFFFFF00000000000000004000000000000000EDACEF0DEDACEF0D00000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EDACEF0DC4566FC9000000000000000040586FC9EDACEF0DEDACEF0D0000000028576FC9A4566FC948576FC92842A7D4EDACEF0D28576FC9EDACEF0D5FB473D2FFFFFFFF7B2B84EAEDACEF0DEDACEF0DFFFFFFFFC0566FC9
+08-17 20:31:35.726 F/google-breakpad( 2913): S C96F5680 EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0DFFFFFFFFC0566FC9020000000000000000000000000000000000000077D5BED2EDACEF0D00000000FCFFFFFFEDACEF0DE4566FC9EDACEF0DB8576FC9EDACEF0D00000000000000000000000000000000EDACEF0DEDACEF0D28576FC9EDACEF0DB8576FC9EDACEF0DC8576FC928576FC970576FC92BAA73D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD24102000001006FC900000000FFFFFFFFD0A4BDD202000000F0576FC900000000EDACEF0DEDACEF0DEDACEF0DAC576FC9FFFFFFFFE0576FC9EDACEF0D010000006B9855D2EDACEF0DEDACEF0DEDACEF0DEDACEF0DEDACEF0D0000000000000000000000000000000000000000000000007642A7D42842A7D4C9000000CF228BD2CF228BD2178076D2013B65D2479B9CD24102000001000000D34657D2
+08-17 20:31:35.727 F/google-breakpad( 2913): S C96F5800 EDACEF0DEDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D000000005B8173D2020000009BD47ED2CC586FC940586FC9EDACEF0D00000000CC586FC91FA773D20000000000000000EDACEF0D3100000020000000EDACEF0D0000000000000000000000000000000098586FC9EDACEF0DEDACEF0DEDACEF0D94586FC9EDACEF0D00000000CC586FC9000000006B9855D20000000000000000EDACEF0D214657D2000000000000000000000000B34557D2EDACEF0DEDACEF0DEDACEF0DEDACEF0D00000000498473D2EDACEF0DEDACEF0D00000000EDACEF0DEDACEF0D00000000CC586FC9EDACEF0DEDACEF0D20596FC978000000EDACEF0DEDACEF0DA38173D220596FC9CD2F82EA20596FC9E52F82EA28596FC9EF5C7FEA7800000000000000EDACEF0DEDACEF0D2F0B0000DF0A000000000000EDACEF0DEDACEF0D00100000000000000000000000000000000000005B8173D2EDACEF0D00000000EDACEF0D0100000000000000EDACEF0D0000000070596FC920596FC91600000000000000
+08-17 20:31:35.727 F/google-breakpad( 2913): S C96F5980 00000000EDACEF0D00000000EDACEF0D0000000001000000EDACEF0D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D0000000000000000010000002F0B000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D010000000100000001000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000001000000EDACEF0D01000000EDACEF0D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.728 F/google-breakpad( 2913): S C96F5B00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.728 F/google-breakpad( 2913): S C96F5C80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.729 F/google-breakpad( 2913): S C96F5E00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.729 F/google-breakpad( 2913): S C96F5F80 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.729 F/google-breakpad( 2913): C 06000040000000000000000005B88FD2020000008C4C6FC9CC4C6FC9C885634FAC4C6FC94C4D6FC95C4D6FC9504D6FC9804E6FC9D9C5F7D3604C6FC91B89B3D28684B3D2300001680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+08-17 20:31:35.729 F/google-breakpad( 2913): M AAAAA000 00000000 00005000 8D2477F3B51997BDCC3733B8D1F920BE0 app_process32
+08-17 20:31:35.729 F/google-breakpad( 2913): M 70D29000 00000000 00806000 E9166D3ED622EE65A3A4086EBEA4A7950 boot.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71531000 00000000 006C0000 668D96384E4368B01BC9B9F365028CA20 boot-core-libart.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71BF3000 00000000 000AA000 0D160B642FB1639805B72AC6F4DF3F380 boot-conscrypt.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71C9F000 00000000 000D1000 9D69BDC94BD07F2468D5B7DB0AEEF0140 boot-okhttp.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71D72000 00000000 0000C000 566CD32860A984FD445A4852058609CB0 boot-core-junit.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71D80000 00000000 0019F000 09C1E8B1D7FC826CB75691EC5BDBA1DB0 boot-bouncycastle.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 71F21000 00000000 0014B000 069BAE4D2D7831B857A3C236021D868A0 boot-ext.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 7206E000 00000000 0223E000 D0BEBD37E215DDC845099212203F792F0 boot-framework.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 742AE000 00000000 00502000 B41E052DBA2949CE100713743053E1E40 boot-telephony-common.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 747B2000 00000000 0003D000 65E4B1E28F33F9C51062E2D0630394830 boot-voip-common.oat
+08-17 20:31:35.730 F/google-breakpad( 2913): M 747F1000 00000000 00045000 EB491A6AF6568A675D81746238ACC78B0 boot-ims-common.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74838000 00000000 0016C000 C369D6D4F8DCF10CC0AD1800000000000 boot-apache-xml.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 749A6000 00000000 000FF000 1FAC5317B0FEBD01C31E8039D76CCAF50 boot-org.apache.http.legacy.boot.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AA7000 00000000 00004000 C368F8D0F8DCF10C00BE1800000000000 boot-tcmiface.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AAD000 00000000 00016000 C368FA40F8DCF10C3FB11800000000000 boot-WfdCommon.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AC5000 00000000 00004000 A2EDD62E4499B2C98D8C251F0977951B0 boot-oem-services.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74ACB000 00000000 0001C000 3794BA12A18F802DF4E8F10D4B2662FB0 boot-qcom.fmradio.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AE9000 00000000 00009000 C368F9A8F8DCF10C95B41800000000000 boot-qcmediaplayer.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AF4000 00000000 00008000 C368E898F8DCF10CDEAD1800000000000 boot-telephony-ext.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74AFE000 00000000 00013000 C368E46FF8DCF10CA3A11800000000000 boot-dolby_ds2.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M 74B13000 00000000 0000A000 C368F9E4F8DCF10C41B01800000000000 boot-dolby_ds1.oat
+08-17 20:31:35.731 F/google-breakpad( 2913): M CBCC8000 00000000 00856000 000003F10000000031270A00000000000 base.odex
+08-17 20:31:35.732 F/google-breakpad( 2913): M CCAF6000 00000000 00936000 00000F700000000098480B00000000000 base.odex
+08-17 20:31:35.732 F/google-breakpad( 2913): M CF4C6000 00000000 02000000 000000000000000000000000000000000 dalvik-jit-code-cache (deleted)
+08-17 20:31:35.732 F/google-breakpad( 2913): M D2273000 04247000 02C94000 8A2EFA0DECC3EF7057A1C62BF1AECCA80 libmonochrome.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9155000 00000000 00004000 C1741AE46077EF13F70D0DC7D8A9DDE80 libwebviewchromium_loader.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9276000 00000000 00006000 C700FED4854EA9F553FC4EB1AC49DAD50 libqdutils.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D927F000 00000000 00007000 5AF3845B7F31952390092BB2318667B00 gralloc.msm8937.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D926B000 00000000 00823000 A91A29ADD65BB0AF28A4C9A6208E33C40 libllvm-glnext.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9AB7000 00000000 00316000 9F7E6C49A0A8C88C317716B031320CA30 libESXGLESv2_adreno.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F1F000 00000000 0000C000 CEC6F7F71723450F4D1E527FA1BDDA310 libqservice.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F30000 00000000 00007000 BB9F7CD0BF1178F273EB8B4D2D5C67C30 libmemalloc.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F39000 00000000 00003000 B4B80A1B5D6C50F5C0DD7F1C29A9F6C10 libqdMetaData.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F43000 00000000 00009000 0BA85EA850C07E5B86AF8281EF7641E70 libcompiler_rt.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F4E000 00000000 0000B000 362BA72B9CF73AB8BD02283F491283E40 eglSubDriverAndroid.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F5B000 00000000 0000B000 9BAA0F603A10810D4A6BEE7A903A762F0 libGLESv2_adreno.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F68000 00000000 00007000 C08FDBDAB5792096DB0BEDBE3D23B48D0 libGLESv1_CM_adreno.so
+08-17 20:31:35.732 F/google-breakpad( 2913): M D9F71000 00000000 00024000 C346DBBCF27F603F9321CCF737B3C0550 libESXGLESv1_CM_adreno.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M D9F97000 00000000 00010000 A7800610AD28E2DF469D023E70516C190 libESXEGL_adreno.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M D9FAB000 00000000 00006000 6CC274368542A8270BC225BE519068D80 libadreno_utils.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M D9FBC000 00000000 00009000 649C0C218A9C0A611E5E0DB24CDD058C0 libEGL_adreno.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA4BC000 00000000 00020000 1195E0A668F3644AC0EC8D1122457A140 libkeymaster1.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA4DF000 00000000 00018000 39E3D5620A966F5DB960EEE55CCD8BB30 libsoftkeymasterdevice.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA4F9000 00000000 0001A000 C1B07DA2D52E6EC3C54992A3A953D63B0 libjavacrypto.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA516000 00000000 00004000 B051A444B9312E4DAF242DA3A951538A0 libkeystore-engine.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA51B000 00000000 00016000 1988D915061DDC4921FF608AD3E810AD0 libkeystore_binder.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DA534000 00000000 0000C000 DDF063ABB28459B09548F8329934DDEB0 libkeymaster_messages.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC57D000 00000000 00016000 A686CFCA0E870C10B425EB769017BE930 libmtp.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC593000 00000000 00052000 E9F8299757E5E543C03723101E5B1BEC0 libmedia_jni.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC5E8000 00000000 00020000 ADF61BE35FF269EC7E7B32B1DDCD31E00 libexif.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC616000 00000000 0000E000 ABA3C77DD3386AE87B586632CE1979D50 libstagefright_amrnb_common.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC634000 00000000 00007000 CD70BA801CA3E12D258565013535D7440 tcmclient.odex
+08-17 20:31:35.733 F/google-breakpad( 2913): M DC645000 00000000 00004000 042B2B738C75036986EB80BC08A71F060 libextmedia_jni.so
+08-17 20:31:35.733 F/google-breakpad( 2913): M E1E9B000 00000000 002B2000 FCA7431984CE2AEF979FFEEF99432D320 libart-compiler.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E215E000 00000000 000B1000 1EBE7A1A3E1A3134DE689251E1ABC0380 libvixl.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2264000 00000000 0002B000 6E46C8EDE63F81CC2A4375E4F85517CD0 libopenjdk.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2291000 00000000 00029000 4F845000DEA8066D684FEAB08A91A3480 libjavacore.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E22BC000 00000000 00138000 523FDEBEF6ECE577AF3716E9703AD4FF0 lib-imsqimf.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E23FA000 00000000 00004000 48E9F68098728AFF9A198AE7A14A7F700 libmdmdetect.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2400000 00000000 00005000 12F24D77003A5660A06BA8690696A5C30 libconfigdb.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2405000 00000000 00085000 DB9D3DADFB06F6B1AB9CEC5443F295370 lib-imsxml.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2496000 00000000 00005000 F812502D41A460BDD2D9AA83A9564CC70 libqmi_encdec.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E249C000 00000000 0001C000 A53A45C88FFCD4CB3AFF323AF8FFFBAB0 libqdi.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E24B7000 00000000 0006A000 D110B55DE7DB9FD5086D2D1CE57152480 libdsi_netctrl.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2534000 00000000 00023000 E7FB6A8B99C97103F258028CF27324660 lib-imsrcscm.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E255A000 00000000 0001C000 5BE35B9E5D50332052532AE119C50B930 libnetmgr.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E257A000 00000000 00004000 AB354652140A356C9787104C87CB30E00 libidl.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2581000 00000000 00004000 63ED38853810ED69BA1AA57CE82E74B10 libtime_genoff.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E2587000 00000000 00004000 51134658113749962ABB7BA3A3C5E9740 libqmi_client_helper.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E258E000 00000000 00009000 1D288EC9F32773EBC0D380D4E238D8D60 libqmi_client_qmux.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E25C9000 00000000 0006A000 60BAE0DAB14BFBC4BE1805CC4CAF8B4D0 lib-imsdpl.so
+08-17 20:31:35.734 F/google-breakpad( 2913): M E263D000 00000000 00019000 0333752023452FF1E40F6BA9169471500 libdiag.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E274E000 00000000 0002C000 0FC3AF7C85EA4B0DA653AEA111020A2D0 libqmi.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E27B7000 00000000 000B8000 023971CEF8E022AAD4090C7D1432C3690 libCB.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E6BB5000 00000000 00005000 F841612CF1D458AB70296575A996EE5F0 QPerformance.odex
+08-17 20:31:35.735 F/google-breakpad( 2913): M E7D93000 00000000 00461000 39CBB6C545073B5DB56B60665F81D4B00 libart.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8384000 00000000 00001000 7691C4BE084B030B3AA118A6F412EE260 libqmi_common_so.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8387000 00000000 0000A000 37A576E22F2B9973E1734E556E1E99990 libqmi_cci.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8395000 00000000 00003000 DCDF68ACFBFC2DEFC89FA0F5783199070 libpackagelistparser.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E839A000 00000000 00056000 0C1D30C5E6EA7E82800A2B00935E4B060 libharfbuzz_ng.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E83F3000 00000000 00037000 8AF00237A05209C2E429D0F70ED3EB900 libopus.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E842C000 00000000 00017000 215A7F63855CB46EC59B425BEDFD847D0 libminikin.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8447000 00000000 00018000 EAB4CCC4544F5D8E2ECF256D527F4A430 libutils.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8461000 00000000 0001E000 CCAA49412B791630FD4EAD7755A3E4CD0 libvorbisidec.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E8481000 00000000 00008000 F3F7CCE4ADD14C5DB852DF06407AE2FA0 libcamera_metadata.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E848C000 00000000 0000E000 1F6ED3D6536346B3B20CF40C5F9799D80 liblog.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E849D000 00000000 00010000 D6821B30C7A106C623EEE331974C9BF50 libGLESv2.so
+08-17 20:31:35.735 F/google-breakpad( 2913): M E84AF000 00000000 00014000 22B107B0382117ED603FF6000B248B8D0 libpcre.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E84C4000 00000000 00040000 9CC9AFC89D88D4C4AE6AEF2E290594B70 libinputflinger.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E8508000 00000000 00005000 459EC08F2C9F91A7E6AB6F293540B4510 libstdc++.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E850F000 00000000 00005000 DE5A396AAF801AF9A298A50BADE143E60 libspeexresampler.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E84F0000 00000000 00B36000 F1644AA2ACE475925E0DA02A814C13DF0 libLLVM.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E9081000 00000000 00008000 225E121AA129BB96606A1B3B91A2737A0 libnbaio.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E908C000 00000000 00017000 9A6B379EB3F10874FC241C570801C6070 libmemunreachable.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E909C000 00000000 0005F000 0FAC08487B9CD62449A19C8D161E7D820 libgui.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E9109000 00000000 00004000 E9B0F0A724940363FCBE11FB96B6ADF30 libnativebridge.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E910D000 00000000 0007B000 B44B5897A497DCB27C105B61AC30F1180 libhwui.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E918B000 00000000 0008B000 DCAB7F6AA60C5E74587E56973C6653120 libc++.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E921C000 00000000 00003000 3C7CC5BEA31C9C85C9BC25EC0891B7B10 libsync.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E9221000 00000000 00009000 4334A7FB3D1CB8582D4D676DE6E5E2930 libpiex.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E922A000 00000000 0000E000 EBD0DA428C58F5CBD72761DD6F1C03A10 libsoundtrigger.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E923D000 00000000 00020000 27C83DAE0AB0E161280BB40C384BD4BC0 libm.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E925F000 00000000 00003000 C9108BAA1E466D60D4591919420BBB6A0 libradio_metadata.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E9264000 00000000 0000E000 63E3F027146D592F9FBE03A33EDC8C6D0 libimg_utils.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E9275000 00000000 00015000 53AF0C4E2096697687AC0081AC7AD97C0 libunwind.so
+08-17 20:31:35.736 F/google-breakpad( 2913): M E92D0000 00000000 0001F000 9F74D840029038F65C040D5492CAE7360 libinput.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E92F5000 00000000 00005000 17620CAE201DC01DFD868F3276E8AA810 libpowermanager.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E92FD000 00000000 00055000 5E4B1D0F4D553AA92665AE0925229AF40 libsonivox.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9359000 00000000 00006000 E727B84B0F5B3D982CAE8FB6E64B88030 libtiff_directory.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9362000 00000000 00021000 52D2F4BBC71C3EE2E161E009B0331EF80 libstagefright_foundation.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9386000 00000000 0003B000 2D4A4F8139C7842165EA73A6ACD835340 libjpeg.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E93C3000 00000000 00003000 9945E8F5AE0ADE1ED46FA08B41A6C9BE0 libmemtrack.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E93C6000 00000000 00019000 D2D0067E628DCC03418B99399D251A990 libEGL.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E93E4000 00000000 00019000 6534179E8DC7D8EDBF1236C375D51ECD0 libdrmframework.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E93FB000 00000000 00110000 994744AF5261DAC7CD0003EC5456DBDF0 libicuuc.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9519000 00000000 00015000 BDA36CE4717D8C1A324C7CA4E1CA9B860 libvulkan.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9521000 00000000 000F8000 91002184018FFAC8E26ECCB238E392440 libandroid_runtime.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E962A000 00000000 00004000 644559B020FD089F8180BB62CF9420590 libprocessgroup.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E9629000 00000000 00183000 035813361AA690A2E08F1E059823C9D50 libicui18n.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E97B8000 00000000 00008000 9D6466250A83301B3BE4CAA85227525D0 libnativeloader.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E97C0000 00000000 0000E000 031F092D2D476376D52F41FD2ADD2A3E0 libradio.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E97D2000 00000000 00003000 159F2CAC750E3DB60EF444F05BACCC850 libregionalization.so
+08-17 20:31:35.737 F/google-breakpad( 2913): M E97D8000 00000000 00008000 16C813B71CC34E81BCF6F5DD8648DC3B0 libGLESv1_CM.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E97E2000 00000000 00003000 AA06FF77B6E4CC83470C006104304D0F0 libhardware.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E97E0000 00000000 00039000 B613B07CCC9703A9AAE92861C92202BD0 libcamera_client.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E980D000 00000000 003A9000 42F6682A5C7E8B66743C6087B578D6C40 libskia.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9BDC000 00000000 00007000 AD9132F0D394659639CBE5858DD1BB750 libhardware_legacy.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9BE7000 00000000 00005000 EE5BF022DE057918231B46C6EDDC38690 libstagefright_yuv.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9BEE000 00000000 00007000 9BC1C9D1E638BF1B7B32AC308B08D9DA0 libimage_type_recognition.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9BF7000 00000000 0000D000 3C492E547FA88D7E2E85BD9451F613090 libbacktrace.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9C07000 00000000 00007000 B165EC37228240E1EBEDC14160C16A3A0 libnativehelper.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9C10000 00000000 0001A000 4D1780AFB25B59BBD625608B400D70C20 libprotobuf-cpp-lite.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9C2D000 00000000 00004000 989F274AF037FE14219BE6DC42503B950 libnetd_client.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9C33000 00000000 000A0000 8E23BB4E73E86B4A2AD4C17D7BAFD8A90 libcrypto.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9CE0000 00000000 00003000 675D9BCC56AB210C8017D6625F994D250 libstagefright_enc_common.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9CE5000 00000000 00024000 CC51150390EA9EFB0315C02573CCFD000 libpng.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9D0B000 00000000 0003B000 4FBF4968372FEB1C8D593076E1B171610 libRScpp.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9D49000 00000000 0000A000 415DAD77CED2441456E20CAD35C536250 libRS.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9D55000 00000000 00004000 F168A985060F7993C937719998C96FD20 libusbhost.so
+08-17 20:31:35.738 F/google-breakpad( 2913): M E9D5B000 00000000 00086000 58C592B73EA51A0AFC3287247961D0940 libdng_sdk.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M E9DE1000 00000000 00057000 44C1EA73F38E47E95712BF5848E8937E0 libbinder.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M E9E3F000 00000000 0002E000 2824A9CACA3A870AD713A3405D6249530 libwilhelm.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M E9E72000 00000000 00030000 E9CE28F8F628E4501925FF4D0FD6168F0 libstagefright_omx.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M E9EA0000 00000000 00487000 3CD6A967C46ED23F4AB4B39092B43AB70 libpdfium.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA337000 00000000 00004000 76B7583F8773D45C53E165CABC841DE70 libETC1.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA33D000 00000000 00015000 F0658EC8F5FCD09AB82C2EFC3A6834210 libui.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA355000 00000000 00038000 E4F681ED6DAD0F793516317FBE3DD55A0 libRS_internal.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA390000 00000000 00016000 0DB58A0AF796EA03A43AAD505A8723310 liblzma.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA3AE000 00000000 00011000 2618247A47A298A5C4574CC818C7F3280 libselinux.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA3C1000 00000000 00005000 961542B344C4A0F54F87B49C0F1429E80 libwpa_client.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA3C8000 00000000 00007000 5FF53AA38050A1DE3BF7A4D755DC75B70 libaudioutils.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA3D1000 00000000 00017000 31235ADAF427BE11933CD87290CCAF050 libcutils.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA3EB000 00000000 00036000 CBC6DC0C255BAB785FCD0511A7CBF0690 libbcinfo.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA423000 00000000 00003000 FDA204F888F3C0D8070BFDEC834066D20 libstagefright_http_support.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA428000 00000000 00005000 14FB257C9C6F43C8FA0B475D81C47FFC0 libbinary_parse.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA42F000 00000000 00009000 93F30055C78E1D80E40A8E717405CF500 libmediautils.so
+08-17 20:31:35.739 F/google-breakpad( 2913): M EA43B000 00000000 0000A000 0F98C20EB2725367604DCE7EDA8EED9D0 libbase.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA447000 00000000 00016000 DC1FEB19B377562139F4F8AAFFA610710 libz.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA460000 00000000 00015000 68F77CDFB35DA081E510A50D11F299D70 libexpat.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA45D000 00000000 000C3000 3B22B766CDBB99263CF24B4CC2986E510 libmedia.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA541000 00000000 00031000 335A60B9AA0F00A47BD5A781CCA820740 libandroidfw.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA574000 00000000 0007A000 21086BE83826AA7DC32AB49C79D5CCE30 libsqlite.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA5F2000 00000000 0006C000 6EA54A19597F20D46626700FE9F206F50 libft2.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA64F000 00000000 0016B000 4E69F13734FEABE1CA5BA98594235DCD0 libstagefright.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA7D3000 00000000 00007000 475E29D0A243BEE93EC1A630C99503FC0 libnetutils.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA7DC000 00000000 00084000 49B02E01AEC77331A1D6D19B540265610 libc.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA86E000 00000000 00025000 8B6ECC65C09CAFF5ACAAB6C9249CD2C20 libssl.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA896000 00000000 00008000 22114C778A7ED1CC3953CCB22323EA1B0 libstagefright_avc_common.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA8A1000 00000000 00003000 7FA19C935E6148BD8002A3CA630C4E6F0 libsmemlog.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA8A1000 00000000 00017000 EEAF8ABB6827B80A458A5D483E5562400 libqmiservices.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA8C1000 00000000 00008000 090640ECFC69E16A25A3E27006AF282E0 libxml.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA8CC000 00000000 00012000 67F4D476A96F053ACB61531379FCC4810 libdsutils.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA8EF000 00000000 00014000 EFD5F0A0F81252A037F1C06B8E6809700 libsdsprpc.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA905000 00000000 0003E000 C4311189AF8DA8405EDC0701CD38FC770 libgsl.so
+08-17 20:31:35.740 F/google-breakpad( 2913): M EA99F000 00000000 00014000 75BC34362D3F387A08AE8241CED8E2550 libadsprpc.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EA9B2000 00000000 0001A000 840BD6EAC45DEFC59D2F1E8C681CFF1A0 lib-imsrcscmclient.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EA9DA000 00000000 00011000 6034A9FBADF19CE6C259DA006E8158FC0 lib-imsrcscmservice.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA09000 00000000 00003000 7BB31E1D28279A11B8087C3F4DF7D0BA0 libqti-at.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA0E000 00000000 0000C000 7D5A1CA22F6A85FCC57B3D36A92461560 lib-ims-rcscmjni.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA1C000 00000000 00012000 FAD2DBDF65F36590FFE591C62DBEFA1E0 libOpenCL.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA38000 00000000 00003000 025B4D5BBA39265D6260B27597E321730 memtrack.msm8937.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA3D000 00000000 00011000 F5FF7C8214A82029405A068BCDF69A580 libmediandk.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA53000 00000000 00008000 5373A05304D5AFD8BC2BB49D6C22977D0 libopenjdkjvm.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA5C000 00000000 0000F000 96A60B84ED1352C202B6695FD32373790 libmediadrm.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA6E000 00000000 00010000 3D880E60A39C482BA4210DA0AD4E20490 libGLESv3.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA97000 00000000 00003000 F4CB54FA6F9A644292CE2DCC9FA89DA80 libqti_performance.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAA9D000 00000000 00004000 B2EAC3688B9EFF0E79EA2C170AA859C50 libwebviewchromium_plat_support.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAAA5000 00000000 00004000 837BE31E60CD67A2C45BF27A1E8C10140 libOpenSLES.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAAAB000 00000000 00004000 3C4D0169CD09A3AEEC0868A7FC87CCFA0 libOpenMAXAL.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAAB0000 00000000 00016000 BAF17608D25635EFA63708C89561474D0 libcamera2ndk.so
+08-17 20:31:35.741 F/google-breakpad( 2913): M EAB53000 00000000 00003000 78C8F6360CF612E4333D4EB1796927460 libqti-perfd-client.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAB57000 00000000 00014000 01EE9AC4109E06B182E77B55242AEBE20 libandroid.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EABAF000 00000000 00003000 4C4B6F03AF5049885FD4A43F149D13630 libjnigraphics.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EABB0000 00000000 00090000 FBA40D2822A0C6DCF7CE29FB42DC37230 libmediaplayerservice.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAC7B000 00000000 0000A000 52C41240B217BFE92F7381218169FD760 liblz4.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EACF9000 00000000 00038000 FEF1DA3EC5AA99E4FF38C1DF2A9A91570 libavenhancements.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAD35000 00000000 0002F000 85E4C8F7646AA02A46215564266690BA0 libstagefright_wfd.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAD6A000 00000000 00026000 7B91D8B6A15FF171BF114D8D638785D80 libstagefright_httplive.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAD94000 00000000 00003000 6DE080E13BB1741A34C157CE97277ABD0 libsigchain.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EADE7000 00000000 00003000 1390052238CBD9474F1747EA0BA53C740 libExtendedExtractor.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAE32000 00000000 00006000 3B45281FC4EB699207799FD6018FBD910 libvendorconn.so
+08-17 20:31:35.742 F/google-breakpad( 2913): M EAEB2000 00000000 0005F000 7AC50A488023F3DA8182906BDFFA72C10 linker
+08-17 20:31:35.742 F/google-breakpad( 2913): -----END BREAKPAD MICRODUMP-----
+08-17 20:31:35.770 W/google-breakpad( 2783): ### ### ### ### ### ### ### ### ### ### ### ### ###
+08-17 20:31:35.770 W/google-breakpad( 2783): Chrome build fingerprint:
+08-17 20:31:35.770 W/google-breakpad( 2783): 37.3.0
+08-17 20:31:35.770 W/google-breakpad( 2783): 668
+08-17 20:31:35.770 W/google-breakpad( 2783): ### ### ### ### ### ### ### ### ### ### ### ### ###
diff --git a/src/processor/testdata/microdump-x86.dmp b/src/processor/testdata/microdump-x86.dmp
new file mode 100644
index 0000000..ece9ef4
--- /dev/null
+++ b/src/processor/testdata/microdump-x86.dmp
@@ -0,0 +1,174 @@
+01-25 09:57:54.139 F/google-breakpad(23467): -----BEGIN BREAKPAD MICRODUMP-----
+01-25 09:57:54.139 F/google-breakpad(23467): V Chrome_Android:49.0.2623.15
+01-25 09:57:54.139 F/google-breakpad(23467): O A x86 04 i686 asus/WW_Z00A/Z00A:5.0/LRX21V/2.19.40.22_20150627_5104_user:user/release-keys
+01-25 09:57:54.139 F/google-breakpad(23467): G UNKNOWN
+01-25 09:57:54.140 F/google-breakpad(23467): S 0 FFB44BD0 FFB44000 00004000
+01-25 09:57:54.152 F/google-breakpad(23467): S FFB44000 A4C46FF7E429FAF30000000046BD6DF7E429FAF30000000000000000A4C40101303B3BCF88D06FF7A841B4FF160000000000000000000000000000000300000011000000000000000000000050000000A70A39F71CC740F7A841B4FF12093DF70B000080D440B4FF1E1239F7A4C46FF7A7B471F7C00973F7C0253DE780B571F704D000F4E02000F48029FAF3B8C96DF78029FAF30000000059B571F7A4C46FF7D440B4FF0001FEC1000000004D316EF70000B1E6D440B4FFA841B4FF46000000A841B4FF04000000E9083DF71CC740F7A841B4FF88D06FF7F841B4FF003031F70001FEC1460000001E1239F7A4C46FF7A841B4FFE62F31F7A4C46FF790336EF70001FEC17041B4FFD9C86DF7A4C46FF7404B01E716000000F841B4FF08336EF7A4C46FF7A841B4FF7041B4FFCC336EF7A841B4FF01000000A841B4FFB8196DF718FD20F7B6336EF718FD20F72D761DF7A841B4FF03000000A841B4FF7041B4FF01000000CC6D08F4000000000000000000000000000000000000000000000000
+01-25 09:57:54.153 F/google-breakpad(23467): S FFB44180 000000000000000000000000000000000000000001000100000000004051000000000000FFFFFFFF000000000001FEC150000000780000005000000000000000000000000000000000000000010001D4000000008082173300000000301F97F30C42B4FFB46238CF01000000A0B203E70000000018FD20F71842B4FFCE0C1DF720B803E78087C0CA590D5CF7BCAB6AF7A0B203E7BCAB6AF7D050F8F3ED2FE8F3306D08F4C00973F7D08F2DED80B571F7D08F2DED8842B4FF00000000F8B371F7D08F2DED6442B4FF6842B4FFBCAB6AF7A0B203E7FFFFFFFFEEF36674B10F5CF7B8B203E70000000000005700BA86ECF3A70A39F71CC740F70000000095D63CF70B000080FFFFFFFFD050F8F3ED2FE8F3306D08F4FFFFFFFFA0B203E73C4695F30800000008E61C71C00973F74000000040000000400104F404D000F40000000000000000000000000000000000000000040167748028CB328028CB32DAF96674904E1D717A0700006E7E7D0000000000D074E7320000000004016774902C7CF7
+01-25 09:57:54.153 F/google-breakpad(23467): S FFB44300 81000000A832FAF31CC740F7E01239F7F0000000A832FAF3810000000100000000000000A832FAF3C00973F7315972F7190000004843B4FF080000000B000000380000009057E532D050F8F3ED2FE8F3306D08F4A832FAF380F9C2CAD971AFF5A832FAF3463031F7082150F77AD447F7380000009443B4FF9843B4FF9813B9F5C06FBECF9057E532C06FBECF9354AFF58032FAF30100000000005700BA86ECF33754AFF5BCAB6AF7FFFFFFFF00000000306D08F49057E532C06FBECF804395F3FFFFFFFF56345DF7FFFFFFFF30AC537308000000306D08F4C06FBECFFFFFFFFF78521D718028CB3202000000D074E732589F1D712456B4FF010000009865E77008000000306D08F4CC7D83D43C4695F3C06FBECFFFFFFFFF9057E532502F717410F20D71C06FBECFFFFFFFFF2E717474888D0E718028CB3200000000D074E732588B0E714000DB3200000000BA5E747400890E710000000000000000FFFFFFFF3C7274744000DB3200000000F3727474D88D0E718028CB32020000005075E732
+01-25 09:57:54.154 F/google-breakpad(23467): S FFB44480 00000000306D08F4005FB0D45C2FE8F35075E73202000000000000003C4695F370D77374000000004000DB32DFD87374C0780E71FFFFFFFFFFFFFFFF0000000038040000800700000000803F0100000008000000001087448007000038040000F00000000000003F0000000000000000306D08F48054E63200824DCC804395F3FFFFFFFF8054E632FFFFFFFFC40F747308000000306D08F400824DCCFFFFFFFF0000000000000000FFFFFFFF88AE95F3007F1D712456B4FF010000009841E7700800000000000000809CE532609DE53200824DCCFFFFFFFF8054E632C0F86F74585F0D7100824DCCFFFFFFFFE45A95F3901C0E710000000078B20D71209AE4328054E63200D8DF3274236C7406066C7498AB0D710000000000000000000000000000000000D8DF3200D8DF32EF106C7468AE0D7100E0DF3200D8DF320000000000000000000000000100000074256C7478B20D7100E0DF3200D8DF32609DE532380400000600000003BBCDC5C0D7C932609DE53200E0DF32D446B4FF00000000
+01-25 09:57:54.154 F/google-breakpad(23467): S FFB44600 000000000000008000800000AC4A90C900D8DF3200D8DF320000000009226C7400B20D7140E79BC0000000000000000038040000060000000100000001000000019A01F40000000034000000380400000600000001000000010000000000000000D8DF328061E632D050F8F3ED2FE8F3306D08F4AC4A90C9010000003C4695F30100000008E61C71C00973F78DFB71F7F84F1D71B446B4FFB846B4FF0000000000000000000000000000000000000000040167748028CB328028CB32DAF96674904E1D717A0700006E7E7D0000000000A017C03200000000040167745404677498501D718028CB328028CB32F1E9667448281871306D08F46E7E7D0000000000A017C03200000000C075E032C869E670080000006E7E7D00010000009F93B0D4040167747017C0328028CB32A501677420501D717017C0326E7E7D0000000000A017C03200000000608517336E7E7D000000000000D8DF32F3B79AF3E9A2B0F340A102F43C2696DE52B8DE3D0000000074186774030000000100000074C9F7F3
+01-25 09:57:54.155 F/google-breakpad(23467): S FFB44780 000000001849B4FF1FB89AF3A43296F340A102F43C2696DE0400000000D8DF3252B8DE3DCDCC4C3DC02DDC32804395F38028CB3201000000A017C032F8D702EF3C2696DE8028CB32C02DDC32A017C03200000000000000000000000001000000080000006E7E7D00000000009CE0D4F300000000000000000000000000000000000000009848B4FF9748B4FFBCD032547E4BB4FF0B0000005048B4FF3803000000000000380300005048B4FF032E5FC74048B4FF4848B4FF000000009F93B0D45048B4FF38030000E75EC4C70B0000004E616D653A09636F6D2E6368726F6D652E6465760A53746174653A0952202872756E6E696E67290A546769643A09383233330A5069643A09383233330A505069643A093736320A5472616365725069643A09300A5569643A0931303136330931303136330931303136330931303136330A4769643A0931303136330931303136330931303136330931303136330A464453697A653A093235360A47726F7570733A093330303120333030322033303033
+01-25 09:57:54.155 F/google-breakpad(23467): S FFB44900 2039393937203530313633200A566D5065616B3A092031363034313634206B420A566D53697A653A092031343137343136206B420A566D4C636B3A092020202020202030206B420A566D50696E3A092020202020202030206B420A566D48574D3A092020323538343230206B420A566D5253533A092020323134333936206B420A566D446174613A092020333835373038206B420A566D53746B3A092020202038313932206B420A566D4578653A092020202020203532206B420A566D4C69623A092020323035373732206B420A566D5054453A092020202031313536206B420A566D537761703A092020202020202030206B420A546872656164733A0935390A536967513A09302F33313230320A536967506E643A09303030303030303030303030303030300A536864506E643A09303030303030303030303030303030300A536967426C6B3A09303030303030303030303030313230340A53696749676E3A09303030303030303030303030303030300A5369674367743A093030303030
+01-25 09:57:54.156 F/google-breakpad(23467): S FFB44A80 30303230303030393466380A436170496E683A09303030303030303030303030303030300A43617050726D3A09303030303030303030303030303030300A4361704566663A09303030303030303030303030303030300A436170426E643A09303030303030303030303030303030300A536563636F6D703A09300A437075735F616C6C6F7765643A09660A437075735F616C6C6F7765645F6C6973743A09302D330A4D656D735F616C6C6F7765643A09310A4D656D735F616C6C6F7765645F6C6973743A09300A766F6C756E746172795F637478745F73776974636865733A0934303930390A6E6F6E766F6C756E746172795F637478745F73776974636865733A0931383937370A0300000000000000E66441F70000000029200000000040F7650000000A0000001E1239F71CC740F7402C7CF7902C41F71851B4FFD20739F7902C41F7D04BB4FFD84BB4FF980739F706000000000000001CC740F79D0B39F7292000002920000006000000C6E97CF7020000000C4CB4FF590B39F71CC740F7
+01-25 09:57:54.156 F/google-breakpad(23467): S FFB44C00 4C4CB4FF504CB4FF1851B4FF463333F7402C7CF706000000E9CB37F71CC740F7273333F71CC740F74C4CB4FF56BF32F7060000004C4CB4FF0000000073E132F7E46441F701000000449500F4DFFFFFFF47E132F71CC740F7592D5FC708BF32F7AC4A90C900000000444DB4FFC92E5FC7C4F99BC90700000089D437F70000000097AB37F7962E5FC7AC4A90C9ED5560C7E04CB4FF650000000100000068F440F7306D08F45A0600005A0600000A4495F3306D08F45D001000E04CB4FF2051B4FF306D08F4010000007100000065000000D0DFEDD10020183300000000E42F50735B464154414C3A6A6E695F616E64726F69642E636328323333295D20436865636B206661696C65643A2066616C73652E20506C6561736520696E636C756465204A61766120657863657074696F6E20737461636B20696E206372617368207265706F72740A000000010000006F0E4C7300201833000000005A0600004329507378641A7100201833F88BA670001303F400B8D570C08C1733F40D1F731E8BD2F3
+01-25 09:57:54.157 F/google-breakpad(23467): S FFB44D80 60D9FE7000B8D570587B19711E8BD2F30A00000038C006752900000000101833B8C30271690064005A0600005A0600005A0600005A06000000B8D5705A060000A70A39F71CC740F70000000074C9F7F3E09A01F45D0020005D002000CE73D6F3F09A01F45D00200049000000CE73D6F334205073E8CB037500101833884FB4FF0C000000AC4A90C9E84EB4FF4765AAC7C44EB4FF404EB4FF904EB4FF95D63CF70B0000800000000000000000884FB4FF0C00000003000000010000005A06000004D000F4A82200F4010000002000000020000000400104F404D000F474C9F7F37C4EB4FF4E6C5971704FB4FF636095F3A70A39F71CC740F70000000095D63CF70B00008074C9F7F3E9083DF7CCE7CCC4AC4A90C9F86B9CC9884FB4FFFB73A9C7004FB4FF046C9CC9CE1439F74000000040000000400104F404D000F495D63CF7A70A39F71CC740F70000000095D63CF70B0000802051B4FFB84FB4FFA0ECEDC42051B4FF734FB4FF030000002000000004D000F4502000F404D000F480000000
+01-25 09:57:54.157 F/google-breakpad(23467): S FFB44F00 80000000400104F404D000F41F95A9C7A70A39F71CC740F73FA304C212093DF70B000080C84FB4FFB84FB4FFA244A8C7EC4FB4FF2051B4FFE9083DF71CC740F704D000F4802000F4884FB4FF003031F7C073F4CB1CC740F71C51B4FF12093DF70B000080E62F31F7AC4A90C915ABA9C7C073F4CB333300003ED63CF71CC740F72051B4FFAC4A90C9E9083DF71CC740F73FA304C2BF0EFEC1D84FB4FF003031F700A304C2463031F74000000000A304C220000000E62F31F7AC4A90C915ABA9C700A304C21F000000EB5BCEC4AC4A90C92051B4FFAC4A90C94051B4FFC45BCEC400A304C23F00000000000000902400F4000000000000000080000000800EFEC1802AC2CEC073F4CB3F000000000000002051B4FF3F000000EB5BCEC4AC4A90C92051B4FF3F0000004051B4FFA686CEC44051B4FF7F00000000000000D02400F400000000000000003F00000020000000B450B45B49000000DD85CEC4AC4A90C90E0000002051B4FFDC36CEC70F1CCEC42051B4FF2000000065A304C265A304C2
+01-25 09:57:54.158 F/google-breakpad(23467): S FFB45080 200EFEC1AC4A90C9330000000CA0CCC4CC50B4FFDC36CEC733000000000000001C51B4FF2051B4FF1C51B4FF5451B4FFDC36CEC70F37CEC720000000003031F70000BAC9E09A01F4F9EC38F70150B4FF1C51B4FF0000000000000000000000000000BAC900100000995160C7AC4A90C9E09A01F41851B4FF450020008F885EC71851B4FFDC36CEC733000000A158ABC73C51B4FF6F06100003000000DC4682C9884682C9886A9CC9000000000000000000000000800EFEC1E50EFEC1FF0EFEC1810000007F000000800EFEC1E50EFEC110000000F04682C902100000060000000000000000000000000000002051B4FF886A9CC90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000001C0000006436CEC7E90000002500200029001000C9875EC7AC4A90C97C52B4FFE09A01F47052B4FFC10EA4C5E09A01F42FF9D3C46F0610002E0CA4C53052B4FF3852B4FF4052B4FF4852B4FF5052B4FF5852B4FF610000002FF9D3C4
+01-25 09:57:54.158 F/google-breakpad(23467): S FFB45200 6052B4FF18A304013D0020003900000035000000310000002D001000290010002500200021000000410010006852B4FF21000000E09A01F425002000E09A01F429001000E09A01F42D001000E09A01F431000000E09A01F435000000E09A01F439000000E09A01F43D002000E09A01F441001000E09A01F4260000000000000000000000000000000000000000000000A70A39F7AC4A90C9B30BA4C5AC4A90C9A03A45CF205CB8C001000000C0F8A3C5A03A45CF0900000004000000205CB8C001000000F85AD6C469AB66C7AC4A90C9B1847BCA1853B4FF470B9CC96161D0C4005CB8C0B1847BCA69AF66C7AC4A90C9C853B4FFF6C666C7AC4A90C99661D0C41853B4FFB1847BCA00000000ADB266C7C853B4FFE02000F4005CB8C089F8A3C5AC4A90C9C853B4FF4055B4FFEF395FC7A0847BCAC053B4FFDC53B4FF3B47D4F3A87A0B71CC68387401000000BB243BF7A7B471F7C00973F774C9F7F3F0A7D5F34C54B4FF010000000000000074C9F7F374C9F7F3A87A0B71E853B4FF447FD4F3
+01-25 09:57:54.159 F/google-breakpad(23467): S FFB45380 4C54B4FF682D2071C053B4FFB053B4FF800EFEC1B453B4FF1E1239F7B84872F700B971F7CC6D08F4009A01F40000000000000000502500F41CC740F7B2D932F76C02A4C59054B4FF0000000000000000F025FAD40000000000000000000000000B0000801001FEC120000000E00100000000000056D932F729395FC7AC4A90C9C0D00BEF400B9CC94055B4FFEDC460C764D10BEF3763C4C74055B4FF301F97F34C54B4FFB46238CF01000000F6BBD5F34C54B4FF00000000000000000000000020927BCA007A45CF6C54B4FFB87FF7F3306D08F400000000000000004056B4FFCC68387400000000000000000000000000000000A87A0B71180000009F93B0D400A304C200000000EB9564C774C9F7F3306D08F4F4010000606238CF058DC6F3606238CF306D08F4010000000000000007000000AC4A90C9202000001868DB15AC4A90C90100000059C460C7AC4A90C94055B4FFC0D00BEFC0D00BEFC4CD60C7C0D00BEF4055B4FFAC4A90C9DFA760C707DB61C7AC4A90C9CCD00BEF9DC760C7
+01-25 09:57:54.159 F/google-breakpad(23467): S FFB45500 7092B0CF706238CFB9CC60C7AC4A90C94055B4FF7092B0CFC0D00BEFBED360C7C0D00BEF4055B4FFB029FAF38A3C6EF75055B4FF5855B4FFCCD00BEF4855B4FF808D51D3000000000000000000000000A0847BCA6661D0C4D033DDC78286B4C7CA0000006C02A4C5A18400000100B0D4606238CF306D08F499D260C7AC4A90C9C071F13201000000C0D00BEF72E660C7C0D00BEF306D08F4C00973F78DFB71F700000000C455B4FFC855B4FF000000000000000000000000CE9C75EAC050F8F3080000000100000000005700BA86ECF3010000004000C032000043000200000074C9F7F32E68387449E660C7FFFFFFFFC071F132FFFFFFFFF004C032CD2696DEE09A01F42C56B4FFC0D00BEFFFFFFFFFCE9C75EA0100000001000000C869E670F8D702EF5459B4FF01000000F004C032080000002E683874C071F132DD6C3874F004C032C071F132FFFFFFFF24C296DEC0D802EFF004C032C0D00BEFFFFFFFFFCE9C75EA010000000053D2120000000000000000C071F132F004C032AD84BE73
+01-25 09:57:54.160 F/google-breakpad(23467): S FFB45680 A05F0B718029B0E6FFFFFFFF6A7E7D0000000000385ADA70320000000C07B573DA1938740053D212F004C0326F1B387458700B714000C032000000009EE2BE7329200000B3270000000000004020C032C071F1324000C03229200000B32700000000000000000000FFFFFFFF1800DC0060B6BF730053D212A8C91B71A1B7BF73A8C91B7120BCB37000000000D0E6B3703E21A574C059B4FF7360ADEB8010C0320031C0320000000000000000000000007180ADEB40000000000000007480ADEB5C57B4FF2E760F725058B4FF336295F3000000009010C0327B80ADEBCC6D08F4306D08F474C9F7F3E857B4FFD21B96F3A8C91B714C58B4FF04000000306D08F43458B4FF2B760F72306D08F401000000B07BF7F3306D08F4000000002B760F72B457B4FF3458B4FF00000000B491DEF3102301F45059B4FFA45AB4FF00000000306D08F49855DB70000000009F93B0D41C58B4FF306D08F44010CF1274C9F7F34C58B4FF1459B4FFE858B4FFCFC4D2F3A8C91B71306D08F44C58B4FF04000000
+01-25 09:57:54.160 F/google-breakpad(23467): S FFB45800 3458B4FF2B760F72E03DCD120000000034A0A4742B760F723C58B4FF2B760F7200000000003ECD123458B4FFA8C91B71F00E117100000000000000002B760F7202000000040000004C58B4FFE03DCD12306D08F4000000008D0DA5744835E8F3306D08F4B0BBCD12503CCD1200000000B0BBCD12001303F400000000045A95F34010CF12306D08F40000000000000000402D20714000000000000000FFFFFFFF8D0DA57400000000000000008810A574600D1171A011C012801ECE123C4695F30000000000000000030000009F93B0D4B0BBCD12804BCE12204BCE1274C9F7F3D0BFCD1203000000EE18A5742499CAF31459B4FF5C59B4FF000000006459B4FF01000000010000000000000003000000004BCE12306D08F4E09A01F4C010FAF3D0BFCD1203000000003ECD12755B4D73E09A01F45C59B4FF000000006459B4FFD0BFCD1203000000EE18A574127195F3E08D1A7100000000030000007000C032000000007010C032000000000543A574EE18A5747000C032030000006919A574
+01-25 09:57:54.161 F/google-breakpad(23467): S FFB45980 B00D1171D0BFCD1200000000003ECD124011C01200000000A011C0126011C0127010C032000000000000000058EBF2703E21A574E09BBA70030000004D22A574F00E1171A000C0326025C27000000000F00E1171E8BFFEEE8093FD74A000C032FFFFFFFF10C0FEEE6025C27001000000E6DE0000C801C370D60B000010F2C51238DBFDEE01000000B892FD74061087ED38DBFDEEB892FD7401000000306D08F44C5BB4FF90AAF9F3005BB4FF010000004C5AB4FFBC6C83ED305BB4FF336295F300000000A082C61240A102F4CC6D08F4306D08F474C9F7F3D85AB4FFD21B96F338DBFDEE2C5BB4FF04000000306D08F4145BB4FFB96C83EDF85BB4FF505AB4FFD0E101F4010000001B0F65F7B96C83EDA45AB4FF145BB4FF01000000C4A49DF31A0F65F7000000000000000000000000D0E101F413000000803480ED9F93B0D400000000D0E101F40700000074C9F7F3605CB4FF2C5BB4FF885BB4FFD591D2F338DBFDEE306D08F42C5BB4FF04000000145BB4FFB96C83ED04000000395B98F3
+01-25 09:57:54.161 F/google-breakpad(23467): S FFB45B00 00000000E85BB400B96C83EDB96C83ED306D08F40000000000000000B96C83ED02000000040000002C5BB4FFA082C612BA86ECF3C050F8F3D0E101F47C7F80ED1D000000EC5BB4FF885BB4FF74C9F7F310F2C512E85BB4FF000043000100000010F2C512F05BB4FFE85BB4FF0000000038DBFDEE040000001D0F65F774C9F7F3F45BB4FF38DBFDEE306D08F41147BFF3D85BB4FFF45BB4FF0000000038DBFDEE5C5CB4FF306D08F4060F65F71D0000001D0F65F7DC5BB4FF60AAF9F3045CB4FFEC5BB4FF40A102F4E45BB4FFE09A01F498F27CF7020000000000000000005700000000000000570000000000000057001D0F65F7306D08F4E09A01F4C010FAF3306D08F443000000570000000010FAF3306D08F44300000057000000BCAB6AF760AAF9F31D0000000D0020008BF357F7E09A01F41D00000038DBFDEE5C5CB4FF60AAF9F31D0000000D0020003E3258F7E09A01F41D00000038DBFDEE0D0020000000000004D00AF4010000000100000000000000905CB4FF01000000A60E65F7
+01-25 09:57:54.162 F/google-breakpad(23467): S FFB45C80 E4F57CF70100000021000000E09A01F434930DF403DFBBF3C05BBCF3BBDEBBF39CFFFFFF20F67CF70400000027CC7CF700D00AF426DD32F71CC740F79F93B0D49CFFFFFF20F67CF709F573F7503D7DF70100000020F67CF774FE7CF74EA47CF70400000074FE7CF744F67CF720F67CF7297AB4FF3090F8F3692F58F7503D7DF7010000008C5DB4FF585EB4FF88927CF7A05DB4FF98F27CF78C5DB4FF01000000C85EB4FF000000000000000000000000000000000000000000000000C85EB4FFC45DB4FF805DB4FFA05DB4FF8C037DF7000001017C5DB4FFC85DB4FF040000008C5DB4FF04000000845DB4FFC45EB4FF080000000000000000A077F73090F8F330C000F410D400F4C00901F448337DF75090F8F302000000000000000400000088337DF7E87E6AF71040FAF32C000000000000000800000001000000297AB4FF4C00000030C000F448337DF700000000000000000000000004000000000000007838362C61726D656162692D7637612C61726D65616269000000000001000000
+01-25 09:57:54.162 F/google-breakpad(23467): S FFB45E00 00000000067B33F71CC740F74A623AF700700BF40010000001000000000000000000000000000000000000000000000001000000FD000000030000009F93B0D424A377F70100000079613AF71CC740F7C45EB4FFDC5EB4FF05000000FE3231F705000000C45EB4FFDC5EB4FF000000000000000000000000993231F7503D7DF7C05EB4FF00000000BC5EB4FF08977CF7C05EB4FF00000000308E7CF7A05EB4FF00337DF708337DF71C337DF7C05EB4FFADB978F700000000E00F7CF7BC5EB4FF05000000297AB4FF417AB4FF4A7AB4FF567AB4FF5F7AB4FF00000000757AB4FFB27AB4FFC57AB4FFDA7AB4FFF57AB4FF087BB4FF217BB4FF3A7BB4FF547BB4FFFC7CB4FFD97DB4FF747FB4FF897FB4FFA77FB4FFC77FB4FF000000002000000020E4FFFF2100000000E0FFFF10000000FFFBEBBF060000000010000011000000640000000300000034507CF7040000002000000005000000090000000700000000A077F7080000000000000009000000A5967CF70B000000000000000C000000
+01-25 09:57:54.163 F/google-breakpad(23467): S FFB45F80 000000000D000000000000000E00000000000000170000000000000019000000CB5FB4FF1F000000E07FB4FF0F000000DB5FB4FF00000000000000000000000000000000000000000000009F93B0D475A5398BA918E032A02885506936383600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.163 F/google-breakpad(23467): S FFB46100 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.164 F/google-breakpad(23467): S FFB46280 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.164 F/google-breakpad(23467): S FFB46400 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.165 F/google-breakpad(23467): S FFB46580 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.165 F/google-breakpad(23467): S FFB46700 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.166 F/google-breakpad(23467): S FFB46880 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.166 F/google-breakpad(23467): S FFB46A00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.167 F/google-breakpad(23467): S FFB46B80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.167 F/google-breakpad(23467): S FFB46D00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.168 F/google-breakpad(23467): S FFB46E80 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.168 F/google-breakpad(23467): S FFB47000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.169 F/google-breakpad(23467): S FFB47180 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.169 F/google-breakpad(23467): S FFB47300 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.170 F/google-breakpad(23467): S FFB47480 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.170 F/google-breakpad(23467): S FFB47600 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.171 F/google-breakpad(23467): S FFB47780 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.171 F/google-breakpad(23467): S FFB47900 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000636F6D2E6368726F6D652E6465760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000504154483D2F7362696E3A
+01-25 09:57:54.172 F/google-breakpad(23467): S FFB47A80 2F76656E646F722F62696E3A2F73797374656D2F7362696E3A2F73797374656D2F62696E3A2F73797374656D2F7862696E00414E44524F49445F424F4F544C4F474F3D3100414E44524F49445F524F4F543D2F73797374656D00414E44524F49445F4153534554533D2F73797374656D2F61707000414E44524F49445F444154413D2F6461746100414E44524F49445F53544F524147453D2F73746F726167650045585445524E414C5F53544F524147453D2F73646361726400415345435F4D4F554E54504F494E543D2F6D6E742F6173656300424F4F54434C415353504154483D2F73797374656D2F6672616D65776F726B2F636F72652D6C69626172742E6A61723A2F73797374656D2F6672616D65776F726B2F636F6E7363727970742E6A61723A2F73797374656D2F6672616D65776F726B2F6F6B687474702E6A61723A2F73797374656D2F6672616D65776F726B2F636F72652D6A756E69742E6A61723A2F73797374656D2F6672616D65776F726B2F626F756E6379636173746C65
+01-25 09:57:54.172 F/google-breakpad(23467): S FFB47C00 2E6A61723A2F73797374656D2F6672616D65776F726B2F6578742E6A61723A2F73797374656D2F6672616D65776F726B2F6672616D65776F726B2E6A61723A2F73797374656D2F6672616D65776F726B2F74656C6570686F6E792D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F766F69702D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F696D732D636F6D6D6F6E2E6A61723A2F73797374656D2F6672616D65776F726B2F6170616368652D786D6C2E6A61723A2F73797374656D2F6672616D65776F726B2F6F72672E6170616368652E687474702E6C65676163792E626F6F742E6A61720053595354454D534552564552434C415353504154483D2F73797374656D2F6672616D65776F726B2F6F72672E6379616E6F67656E6D6F642E706C6174666F726D2E6A61723A2F73797374656D2F6672616D65776F726B2F6F72672E6379616E6F67656E6D6F642E68617264776172652E6A61723A2F73797374656D2F6672616D65776F72
+01-25 09:57:54.173 F/google-breakpad(23467): S FFB47D80 6B2F73657276696365732E6A61723A2F73797374656D2F6672616D65776F726B2F65746865726E65742D736572766963652E6A61723A2F73797374656D2F6672616D65776F726B2F776966692D736572766963652E6A6172004C445F5348494D5F4C4942533D2F73797374656D2F62696E2F6D6D67727C6C69627368696D5F6D6D67722E736F3A2F73797374656D2F62696E2F677073647C6C69627368696D5F6770732E736F3A2F73797374656D2F6C69622F68772F6770732E6D6F66645F76312E736F7C6C69627368696D5F6770732E736F3A2F73797374656D2F6C69622F68772F73656E736F72732E6D6F66645F76312E736F7C6C69627368696D5F73656E736F72732E736F3A2F73797374656D2F6C69622F6C69627463732E736F7C6C69627368696D5F7463732E736F3A2F73797374656D2F6C69622F6C6962706172616D657465722E736F7C6C69627368696D5F617564696F2E736F3A2F73797374656D2F6C69622F706172616D657465722D6672616D65776F726B2D706C756769
+01-25 09:57:54.173 F/google-breakpad(23467): S FFB47F00 6E732F417564696F2F6C696274696E79616C73615F637573746F6D2D73756273797374656D2E736F7C6C69627368696D5F617564696F2E736F3A2F73797374656D2F6C69622F68772F63616D6572612E76656E646F722E6D6F66645F76312E736F7C6C69627368696D5F63616D6572612E736F00414E44524F49445F43414348453D2F6361636865005445524D494E464F3D2F73797374656D2F6574632F7465726D696E666F00414E44524F49445F50524F50455254595F574F524B53504143453D31302C3000414E44524F49445F534F434B45545F7A79676F74653D3132002F73797374656D2F62696E2F6170705F70726F63657373000000000000000000
+01-25 09:57:54.175 F/google-breakpad(23467): C 0F0001000000000000000000000000000000000000000000000000007F03FFFF2000FFFFFFFFFFFFA70F7473230000004445B4FF2B00FFFF0A00000000000000FFFF0000000000000000FFFF7800000000000000FFFFFADCFFFFFFFF0100FFFF2E01FFFF90B60100FFFF00309276A38FF980F23F00309276A38FF980F23F000000000000000000000000000063000000070000002B0000002B00000002000000902C7CF72920000006000000292000000000000029200000864B39F72300000002020000D04BB4FF2B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+01-25 09:57:54.175 F/google-breakpad(23467): M F77C5000 00000000 0000D000 50D89C8096239F07B843A4C5C35923170 app_process32_xposed
+01-25 09:57:54.175 F/google-breakpad(23467): M C4A68000 00E89000 04EB7000 7AEFEEE07C050930D779F813A65B7FE60 libchrome.so
+01-25 09:57:54.175 F/google-breakpad(23467): M CF638000 00000000 00148000 1A8A2BF0604D9446617771B6897B96BA0 libblas.so
+01-25 09:57:54.175 F/google-breakpad(23467): M D06BF000 00000000 00041000 253BBF60002FDEC2B9A3005415117F280 libRSCpuRef.so
+01-25 09:57:54.176 F/google-breakpad(23467): M D1FB3000 00000000 00039000 507958F205384891BCB21E1FFB2E30620 libRSDriver.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E6217000 00000000 0001D000 36ABF97FDAFFF60863FA23FC1B540D6A0 libcompiler_rt.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E6243000 00000000 00018000 0DBD5467C6AB422397203A66A0E121750 libandroid.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E625B000 00000000 0000D000 AE6E13458FB630763E5ED161161B739D0 libpvrANDROID_WSEGL.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E6268000 00000000 000D0000 C28CF55E5E98E2B1EB84198BE1FC14190 libglslcompiler.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E633B000 00000000 0012B000 E147F17CF855F17795C1DC0A9CBB843C0 libGLESv2_POWERVR_ROGUE.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E6469000 00000000 0016F000 1891D5688EE312EFFF2A194AB6FF1C7A0 libusc.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E65DB000 00000000 000AC000 D20CCBE31F52F5AE0144452692BC9D610 libGLESv1_CM_POWERVR_ROGUE.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E668A000 00000000 0000F000 182671F227066A6551586589082D1D320 libdrm.so
+01-25 09:57:54.176 F/google-breakpad(23467): M E6699000 00000000 000EA000 F6C6DA624665611B3A75C8617A45ED000 libsrv_um.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E6784000 00000000 0002D000 3D95B38C591077B213DA98AC767F766D0 libIMGegl.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E6B41000 00000000 00004000 0DF18ED649E4593BA356C7F4C48CEF510 libwebviewchromium_loader.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E7406000 00000000 00005000 CFD4567F004DC85AA15EFCA44B6DA69D0 libemoji.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E740B000 00000000 00027000 13EA00418F2B15CED6BAB031DF0FC9E60 libswresample.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E7432000 00000000 0000B000 BA492148E0772FEDECD63D3EC92D2B780 libffmpeg_utils.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E743C000 00000000 00065000 F57A52849D51BE8BC164CE7D9FC008340 libavutil.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E74AB000 00000000 00243000 5CE62901E1D3DDB2AE8F71866CB3837C0 libavformat.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E76C5000 00000000 00DAC000 419A89DE37C5668FE3839DE6775723F90 libavcodec.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B25000 00000000 00012000 2D3BB7901C6990F220F3ABDEFE773BFE0 libffmpeg_extractor.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B37000 00000000 0000D000 DF11B21AABFD31A4CCA2CF3CCB7640E90 libstagefright_avc_common.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B44000 00000000 00003000 7DEA05EC7AD8537FF4C2DD5F065D6FDB0 libstagefright_enc_common.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B47000 00000000 00025000 8E547CC694E28C3221068AC4B2507B4F0 libvorbisidec.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B6C000 00000000 00006000 90B62412D5756080C8DFE217016115050 libstagefright_yuv.so
+01-25 09:57:54.177 F/google-breakpad(23467): M E8B71000 00000000 00040000 6656D67F836F6F06F00CD5748A8C5CCE0 libstagefright_omx.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8BB1000 00000000 00053000 5EF9E30F4E73B3E9EF2DC1A9575E73780 libopus.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C04000 00000000 0000A000 CA739485462BA0B2658CEA503AA286600 libmediautils.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C0D000 00000000 0002A000 943AF1BD8889740374C861F61F851E7C0 libdrmframework.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C37000 00000000 00016000 4361A537B8F4746F41962F90DDF2105A0 libstagefright_amrnb_common.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C4A000 00000000 00036000 29E1806354A34338B5E3EDAD561C41E70 libexif.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C80000 00000000 00010000 FBD7045E4FD674AF48F2638450AB98370 libjhead.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8C91000 00000000 00023000 A5F93B3BF69410560186A8A0DD92D2740 libmtp.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8CAE000 00000000 0021A000 41A51F8C4C3FC353F38448CAA10917AF0 libstagefright.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8EC6000 00000000 00084000 568DDECBE861936F6D47FF78B73C723D0 libmedia_jni.so
+01-25 09:57:54.178 F/google-breakpad(23467): M E8FB7000 00000000 00005000 CC6218E5D33D8438DCB93DD96DEA72110 libEGL_POWERVR_ROGUE.so
+01-25 09:57:54.178 F/google-breakpad(23467): M EC748000 00000000 00003000 FE3B8B5AB45DA562F7F82698A7FD70D60 libjnigraphics.so
+01-25 09:57:54.178 F/google-breakpad(23467): M EC760000 00000000 0002C000 37F37614ED1AD2703EC7C4BF663D6FBC0 libkeymaster1.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EC78C000 00000000 0000F000 BA8DB5284A4BD164616442FA11CFF5920 libkeymaster_messages.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EC79B000 00000000 00027000 AA80FB24AA303CC663A777C51E3818ED0 libsoftkeymasterdevice.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EC7C1000 00000000 0002A000 68CC3C7DE2A9A509E0F2D37ED98245E80 libjavacrypto.so
+01-25 09:57:54.179 F/google-breakpad(23467): M ED516000 00000000 0006A000 A20830D97DB0FDF7250C5FB692BC26BC0 libPVROCL.so
+01-25 09:57:54.179 F/google-breakpad(23467): M ED5C0000 00000000 00013000 18A3369A4C4CA77CE18A05D3747670E80 libkeystore_binder.so
+01-25 09:57:54.179 F/google-breakpad(23467): M ED5D3000 00000000 00005000 A4579FE84F51DE9109C9A4DD4594BF180 libkeystore-engine.so
+01-25 09:57:54.179 F/google-breakpad(23467): M ED90D000 00000000 0000F000 8C4B5781D6EF79154ABE62B8D606324A0 libxposed_art.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EEF1B000 00000000 00065000 B97DB0D98582BFAB3EA871F0D1C222C70 libjavacore.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EF00B000 00000000 0001A000 18AFFB18B60EAFBF0AA29C4D2F4C070E0 gralloc.moorefield.so
+01-25 09:57:54.179 F/google-breakpad(23467): M EF04C000 00000000 0001D000 1A8ADB6F40B957D02CC0DC7682A8F9E90 libchromium_android_linker.so
+01-25 09:57:54.179 F/google-breakpad(23467): M F381B000 00000000 00763000 6F79159F51864D6FC2A36A966C3560800 libart.so
+01-25 09:57:54.179 F/google-breakpad(23467): M F40A9000 00000000 00003000 91BAE6D69B00A7052346F44956D08A800 libsigchain.so
+01-25 09:57:54.179 F/google-breakpad(23467): M F40A2000 00000000 01630000 9B531434F5F02E022A2FAC5A643057470 libLLVM.so
+01-25 09:57:54.179 F/google-breakpad(23467): M F56DA000 00000000 0005B000 26441D9EACA6885AF23F38BC6F82C8BB0 libbcinfo.so
+01-25 09:57:54.179 F/google-breakpad(23467): M F5735000 00000000 0006B000 C55576D7E6926857E160CC48CB8225CB0 libbcc.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F579F000 00000000 00012000 B0FCE9881D277F89F61D053C092AE2260 libcommon_time_client.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F57B1000 00000000 00005000 65A183A86D11AE7430AF32DA7C57E8710 libpowermanager.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F57B6000 00000000 0002C000 4B085FDBF44B8FFC0782E729A90C3D750 libprotobuf-cpp-lite.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F57E2000 00000000 00028000 EBF5D67B2D84118021978F6A898B8C980 libRScpp.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F580A000 00000000 00062000 EDCFDD6BC6599F31992F99F529194AC20 libRS.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F586C000 00000000 00007000 4EEBBE38940F43AFCE2D433E624449190 libspeexresampler.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5873000 00000000 0000E000 79E25E1031DD6618903A712ADDA6744C0 libnbaio.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5882000 00000000 00024000 21755D2D62F48C0EBF4C73D09C5CD53E0 libstagefright_foundation.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F58A7000 00000000 00006000 ECAD531238F0812D85679F21BE758C3C0 libwpa_client.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F58AD000 00000000 000F5000 7C9614194568F34D00760957437E80EC0 libGLES_trace.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F59A2000 00000000 0008F000 5FCA392FDA7D0D7AC84DC750C5E113300 libft2.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5A31000 00000000 0003B000 68FA4909919B676A0FC62C8398316D960 libpng.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5A6C000 00000000 00003000 72547142E4BC3E69AA1C3BB812ED5F380 libsync.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5A6F000 00000000 00005000 B2AFDC2AE3419BBEFDB0F61CD2BF7E5D0 libstdc++.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5A74000 00000000 00020000 1BA1AF0070EA904E97616F543CA0A4250 libunwind.so
+01-25 09:57:54.180 F/google-breakpad(23467): M F5AA3000 00000000 0000B000 CE0285F7C123410DF6756F6C4C73B44E0 libbase.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5AAE000 00000000 00023000 C136291942C5971173AB64521D8DED2B0 libpcre.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5AD0000 00000000 000C3000 49D590DD4DB4918B246A4FAD58594D170 libhwui.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5B93000 00000000 00004000 85FDF7C6756D80699F02513B48446DB20 libradio_metadata.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5B97000 00000000 00005000 15ED52221AC2EC85BBC0EC8924446FDD0 libnativebridge.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5B9C000 00000000 00004000 1A369C385D95936BF1CB35CEFFC46C520 libprocessgroup.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BA0000 00000000 00019000 F88BC9F41A7D2C66D6ABED1DAE189BC40 libminikin.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BB8000 00000000 00010000 1A47CE702A7C2780188905377C9638680 libsoundtrigger.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BC7000 00000000 00010000 92302D61D2269AB1F7C5FF5C908EDCAE0 libradio.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BD7000 00000000 00004000 BEB3710C92B6DFAEFABE9626CDFC9C790 libnetd_client.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BDB000 00000000 00017000 A9948C1B8A77CED99AAC0EF29C4CF2C20 libimg_utils.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F5BEC000 00000000 004DD000 013677E0F0932D4B4D9A26CD06311BE90 libpdfium.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F60CA000 00000000 0000F000 B7D024DD71ADA4E55665023B404807070 libaudioutils.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F60DA000 00000000 00022000 CB4FE7BB63F1E58C8F93A21FAED1353D0 libz.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F60FC000 00000000 0005C000 DBF3BE9737586981641FAF665822AFDC0 libharfbuzz_ng.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F6158000 00000000 00006000 D6241B08071BE367421E5461266CDD880 libusbhost.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F615E000 00000000 00047000 2CC00B9AC5953D3E3435BFFB1036240B0 libjpeg.so
+01-25 09:57:54.181 F/google-breakpad(23467): M F618F000 00000000 0012B000 15D0E646E5B33C21414E682A042C93AB0 libmedia.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F62B3000 00000000 0028E000 07184F89E98C8DFC92370FCB8BD43A060 libicui18n.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F653A000 00000000 001DA000 1DDE4876E097DDAA58EFDE24F6B0AF230 libicuuc.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6718000 00000000 00049000 28AA4EE3518707C5C2CB494D27D7E42E0 libssl.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6761000 00000000 00131000 BDC34E23A0ACF7FB9DA4B37B834EB9330 libcrypto.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6893000 00000000 0005E000 231B6740DAFF45EFA880C2ACCA1711120 libsonivox.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F68F6000 00000000 00009000 07D3E350957BE9781AA79CFE4D1615930 libhardware_legacy.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6900000 00000000 00004000 8F7402EB008A16522221FC3BDC3805430 libhardware.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6904000 00000000 00007000 836E381CA556529A0567A7404F6168440 libETC1.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F690B000 00000000 00011000 9BABF059941D73F530F6D1845A7B05830 libGLESv2.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F691C000 00000000 0000B000 F95AE8B6C538A7F0C5C8D1555FF8103C0 libGLESv1_CM.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F691F000 00000000 000CF000 956D0B30A7C83D397182A912892E9C2C0 libEGL.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F69F0000 00000000 00106000 1E685E8DD6A14FAC43BD47187FC352D10 libsqlite.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F6AE8000 00000000 005BB000 EF07C6881EBD2EB937DAE1B6E28ACD500 libskia.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F70A8000 00000000 0000A000 63F744099900E2D51FFD078EACB1B86C0 libcamera_metadata.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F70B0000 00000000 00046000 C827130CE4D86CAD14313C93C29C73120 libcamera_client.so
+01-25 09:57:54.182 F/google-breakpad(23467): M F70F6000 00000000 00067000 80003CA0F4A276917CF1D46DF8511B910 libinputflinger.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F715C000 00000000 0002E000 588B28D23521BFE45DA0922F9B2BC0780 libinput.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7182000 00000000 00090000 3A979946F483682F902E867B4461A7B50 libgui.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7212000 00000000 00013000 F63C997D5B56627993AB03838CFAA09C0 libui.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7225000 00000000 0000A000 DAC710CBBFF628A68578077BEDEAB7750 libnetutils.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F722F000 00000000 00008000 B28981AE75F117447377C79B01B4F0FF0 libnativehelper.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7237000 00000000 00031000 3234F24F029666DF5464E0E6991800540 libexpat.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7268000 00000000 00047000 F02DEB41178B1A4DE3C2EE24549A2D860 libandroidfw.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F72AF000 00000000 00003000 CC7E87B840DDAA0CA6D5E9640CD163880 libmemtrack.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F72B3000 00000000 0000E000 969377A0F848DAECF436F7FE45DCBD620 libbacktrace.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F72C1000 00000000 0003B000 9ADB6F900638406445920C1C4895A3100 libm.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F72FC000 00000000 00114000 12FA662923A8693EE010FC5D185739100 libc.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7418000 00000000 000EC000 7F716BC28C5E66FE5A89C28109356D560 libc++.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7505000 00000000 0001A000 1EDB8B98CB4D94472F14CEEE7C68F6840 libselinux.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F7511000 00000000 001A5000 4726889CE3166AE9E4D7B57F4ED5D8690 libandroid_runtime.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F76B4000 00000000 0004A000 E55E2313EEDBEB4399F81A47356541DE0 libbinder.so
+01-25 09:57:54.183 F/google-breakpad(23467): M F76FE000 00000000 0000C000 3D4F877618F66DDE1EC5DB3C43F1F6060 liblog.so
+01-25 09:57:54.184 F/google-breakpad(23467): M F770A000 00000000 00028000 3843F9877B109321C4AFE68E66DD1E1E0 libutils.so
+01-25 09:57:54.184 F/google-breakpad(23467): M F7732000 00000000 0001A000 F1D443198CFEFCB1FDD91940941D39CE0 libcutils.so
+01-25 09:57:54.184 F/google-breakpad(23467): M F777A000 00000000 00045000 02B4F87528C887F70529FFDBCCFBE5260 linker
+01-25 09:57:54.186 F/google-breakpad(23467): M FFFFE000 00000000 00001000 4A7B1DECECE5E80AE3E4E2E4F1F2CDAE0 linux-gate.so
+01-25 09:57:54.186 F/google-breakpad(23467): -----END BREAKPAD MICRODUMP-----
diff --git a/src/processor/testdata/microdump.stackwalk-arm.out b/src/processor/testdata/microdump.stackwalk-arm.out
new file mode 100644
index 0000000..ae018d3
--- /dev/null
+++ b/src/processor/testdata/microdump.stackwalk-arm.out
@@ -0,0 +1,63 @@
+Operating system: Android
+                  OS VERSION INFO
+CPU: arm
+     2 CPUs
+
+GPU: OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)
+     Qualcomm
+     Adreno (TM) 330
+
+Crash reason:  
+Crash address: 0x0
+Process uptime: not available
+
+Thread 0 (crashed)
+ 0  breakpad_unittests!MicrodumpWriterTest_Setup_Test::TestBody [gtest.h : 1481 + 0x1]
+     r0 = 0x00000000    r1 = 0x00000000    r2 = 0x00000000    r3 = 0x00000000
+     r4 = 0xffea6900    r5 = 0xffea68f0    r6 = 0xffea68f8    r7 = 0xffea6904
+     r8 = 0xffea68e0    r9 = 0xffea6900   r10 = 0xffea6930   r12 = 0x00000000
+     fp = 0x00000ea2    sp = 0xffea68c0    lr = 0xaaaeb307    pc = 0xaaaeb307
+    Found by: given as instruction pointer in context
+ 1  breakpad_unittests!testing::Test::Run [gtest.cc : 2435 + 0x17]
+     r4 = 0xaab431dc    r5 = 0xab20d7d0    r6 = 0xab203478    r7 = 0x00000149
+     r8 = 0xab203588    r9 = 0xab20d7d0   r10 = 0xffea6f60    fp = 0xab2034d8
+     sp = 0xffea6f28    pc = 0xaab0a741
+    Found by: call frame info
+ 2  breakpad_unittests!testing::TestInfo::Run [gtest.cc : 2610 + 0x5]
+     r4 = 0xab205448    r5 = 0xab203478    r6 = 0xf6d21cdd    r7 = 0x00000149
+     r8 = 0xab203588    r9 = 0xab20d7d0   r10 = 0xffea6f60    fp = 0xab2034d8
+     sp = 0xffea6f50    pc = 0xaab0a875
+    Found by: call frame info
+ 3  breakpad_unittests!testing::TestCase::Run [gtest.cc : 2728 + 0x3]
+     r4 = 0xab2054c8    r5 = 0x00000000    r6 = 0xf6d21cdd    r7 = 0x00000149
+     r8 = 0xab203478    r9 = 0xab203588   r10 = 0x00000001    fp = 0xab2034d8
+     sp = 0xffea6f90    pc = 0xaab0a8fd
+    Found by: call frame info
+ 4  breakpad_unittests!testing::internal::UnitTestImpl::RunAllTests [gtest.cc : 4591 + 0x3]
+     r4 = 0xab203478    r5 = 0xab203588    r6 = 0x00000000    r7 = 0x00000001
+     r8 = 0x00000000    r9 = 0xab2047f0   r10 = 0x00000001    fp = 0xab2034d8
+     sp = 0xffea6fc0    pc = 0xaab0aafd
+    Found by: call frame info
+ 5  breakpad_unittests!testing::UnitTest::Run [gtest.cc : 2418 + 0x5]
+     r4 = 0x00000000    r5 = 0xab203478    r6 = 0x00000002    r7 = 0xaaae2c19
+     r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0xffea706c
+     sp = 0xffea7018    pc = 0xaab09a61
+    Found by: call frame info
+ 6  breakpad_unittests!main [gtest.h : 2326 + 0x3]
+     r4 = 0xffea702c    r5 = 0xffea7074    r6 = 0x00000002    r7 = 0xaaae2c19
+     r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0xffea706c
+     sp = 0xffea7028    pc = 0xaaae2c3b
+    Found by: call frame info
+ 7  libc.so + 0x11e9d
+     r4 = 0xffea7074    r5 = 0xffea7080    r6 = 0x00000002    r7 = 0xaaae2c19
+     r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0xffea706c
+     sp = 0xffea7040    pc = 0xf7025e9f
+    Found by: call frame info
+
+Loaded modules:
+0xaaacd000 - 0xaab48fff  breakpad_unittests  ???
+0xf6fca000 - 0xf6fcdfff  libnetd_client.so  ???
+0xf6fee000 - 0xf6ff1fff  libstdc++.so  ???
+0xf6ff2000 - 0xf700afff  libm.so  ???
+0xf700c000 - 0xf7012fff  liblog.so  ???
+0xf7014000 - 0xf706dfff  libc.so  ???  (WARNING: No symbols, libc.so, 167F187B09A27F7444EF989603AAFD3D0)
diff --git a/src/processor/testdata/microdump.stackwalk-arm64.out b/src/processor/testdata/microdump.stackwalk-arm64.out
new file mode 100644
index 0000000..e6ed424
--- /dev/null
+++ b/src/processor/testdata/microdump.stackwalk-arm64.out
@@ -0,0 +1,113 @@
+Operating system: Android
+                  OS 64 VERSION INFO
+CPU: arm64
+     2 CPUs
+
+GPU: UNKNOWN
+
+Crash reason:  
+Crash address: 0x0
+Process uptime: not available
+
+Thread 0 (crashed)
+ 0  breakpad_unittests!MicrodumpWriterTest_Setup_Test::TestBody [microdump_writer_unittest.cc : 77 + 0xc]
+     x0 = 0x0000000000000000    x1 = 0x0000000000000000
+     x2 = 0x0000000000000000    x3 = 0x0000000000000000
+     x4 = 0x0000000000000000    x5 = 0x0000000000000000
+     x6 = 0x0000000000000000    x7 = 0x0000000000000000
+     x8 = 0x0000000000000000    x9 = 0x0000000000000000
+    x10 = 0x0000000000000000   x11 = 0x0000000000000000
+    x12 = 0x0000000000000000   x13 = 0x0000000000000000
+    x14 = 0x0000000000000000   x15 = 0x0000000000000000
+    x16 = 0x0000000000000000   x17 = 0x0000000000000000
+    x18 = 0x0000000000000000   x19 = 0x0000007fe2ba6a50
+    x20 = 0x0000007fe2ba65e0   x21 = 0x0000007fe2ba61e0
+    x22 = 0x000000555f6b4000   x23 = 0x0000007fe2ba6280
+    x24 = 0x0000007fe2ba6250   x25 = 0x000000555f6b4c51
+    x26 = 0x0000000000000e91   x27 = 0x0000007fe2ba6220
+    x28 = 0x0000007fe2ba61f0    fp = 0x0000007fe2ba6120
+     lr = 0x000000555f636f6c    sp = 0x0000007fe2ba6120
+     pc = 0x000000555f636f6c
+    Found by: given as instruction pointer in context
+ 1  breakpad_unittests!testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> [gtest.cc : 2418 + 0x4]
+    x19 = 0x00000055955022d0   x20 = 0x00000055954ee170
+    x21 = 0x00000055954ee170   x22 = 0x00000055954ee390
+    x23 = 0x00000149f6d1624a   x24 = 0x000000555f6df000
+    x25 = 0x0000000000000001   x26 = 0x00000149f6d16249
+    x27 = 0x0000000000000001   x28 = 0x000000555f6b35c9
+     fp = 0x0000007fe2ba7a50    sp = 0x0000007fe2ba7a50
+     pc = 0x000000555f66323c
+    Found by: call frame info
+ 2  breakpad_unittests!testing::Test::Run [gtest.cc : 2435 + 0x14]
+    x19 = 0x00000055955022d0   x20 = 0x00000055954ee170
+    x21 = 0x00000055954ee170   x22 = 0x00000055954ee390
+    x23 = 0x00000149f6d1624a   x24 = 0x000000555f6df000
+    x25 = 0x0000000000000001   x26 = 0x00000149f6d16249
+    x27 = 0x0000000000000001   x28 = 0x000000555f6b35c9
+     fp = 0x0000007fe2ba7a80    sp = 0x0000007fe2ba7a80
+     pc = 0x000000555f66448c
+    Found by: call frame info
+ 3  breakpad_unittests!testing::TestInfo::Run [gtest.cc : 2610 + 0x4]
+    x19 = 0x00000055954f3890   x20 = 0x00000055955022d0
+    x21 = 0x00000055954ee170   x22 = 0x00000055954ee390
+    x23 = 0x00000149f6d1624a   x24 = 0x000000555f6df000
+    x25 = 0x0000000000000001   x26 = 0x00000149f6d16249
+    x27 = 0x0000000000000001   x28 = 0x000000555f6b35c9
+     fp = 0x0000007fe2ba7aa0    sp = 0x0000007fe2ba7aa0
+     pc = 0x000000555f6645b8
+    Found by: call frame info
+ 4  breakpad_unittests!testing::TestCase::Run [gtest.cc : 2728 + 0x0]
+    x19 = 0x00000055954f39a0   x20 = 0x00000055954ee170
+    x21 = 0x00000055954ee390   x22 = 0x0000000000000001
+    x23 = 0x00000149f6d1624a   x24 = 0x000000555f6df000
+    x25 = 0x0000000000000001   x26 = 0x00000149f6d16249
+    x27 = 0x0000000000000001   x28 = 0x000000555f6b35c9
+     fp = 0x0000007fe2ba7ae0    sp = 0x0000007fe2ba7ae0
+     pc = 0x000000555f664674
+    Found by: call frame info
+ 5  breakpad_unittests!testing::internal::UnitTestImpl::RunAllTests [gtest.cc : 4591 + 0x0]
+    x19 = 0x00000055954ee170   x20 = 0x0000000000000000
+    x21 = 0x00000055954ee390   x22 = 0x0000000000000002
+    x23 = 0x0000000000000000   x24 = 0x000000555f6df000
+    x25 = 0x0000000000000001   x26 = 0x00000149f6d16249
+    x27 = 0x0000000000000001   x28 = 0x000000555f6b35c9
+     fp = 0x0000007fe2ba7b20    sp = 0x0000007fe2ba7b20
+     pc = 0x000000555f66494c
+    Found by: call frame info
+ 6  breakpad_unittests!testing::UnitTest::Run [gtest.cc : 2418 + 0x4]
+    x19 = 0x0000000000000000   x20 = 0x00000055954ee170
+    x21 = 0x0000000000000002   x22 = 0x000000555f62b360
+    x23 = 0x0000000000000000   x24 = 0x0000000000000000
+    x25 = 0x0000000000000000   x26 = 0x0000000000000000
+    x27 = 0x0000000000000000   x28 = 0x0000000000000000
+     fp = 0x0000007fe2ba7bc0    sp = 0x0000007fe2ba7bc0
+     pc = 0x000000555f664b68
+    Found by: call frame info
+ 7  breakpad_unittests!main [gtest.h : 2326 + 0x0]
+    x19 = 0x0000007fe2ba7c1c   x20 = 0x0000007fe2ba7c88
+    x21 = 0x0000000000000002   x22 = 0x000000555f62b360
+    x23 = 0x0000000000000000   x24 = 0x0000000000000000
+    x25 = 0x0000000000000000   x26 = 0x0000000000000000
+    x27 = 0x0000000000000000   x28 = 0x0000000000000000
+     fp = 0x0000007fe2ba7bf0    sp = 0x0000007fe2ba7bf0
+     pc = 0x000000555f62b398
+    Found by: call frame info
+ 8  libc.so + 0x17388
+    x19 = 0x0000007fe2ba7ca0   x20 = 0x0000007fe2ba7c88
+    x21 = 0x0000000000000002   x22 = 0x000000555f62b360
+    x23 = 0x0000000000000000   x24 = 0x0000000000000000
+    x25 = 0x0000000000000000   x26 = 0x0000000000000000
+    x27 = 0x0000000000000000   x28 = 0x0000000000000000
+     fp = 0x0000007fe2ba7c20    sp = 0x0000007fe2ba7c20
+     pc = 0x0000007f802ac38c
+    Found by: call frame info
+
+Loaded modules:
+0x555f608000 - 0x555f6c7fff  breakpad_unittests  ???
+0x7f801f6000 - 0x7f80208fff  libnetd_client.so  ???
+0x7f80229000 - 0x7f8023cfff  libstdc++.so  ???
+0x7f8023d000 - 0x7f80279fff  libm.so  ???
+0x7f8027b000 - 0x7f80293fff  liblog.so  ???
+0x7f80295000 - 0x7f80332fff  libc.so  ???  (WARNING: No symbols, libc.so, 479D5438753E27F019F2C9980DDBF4F30)
+0x7f80341000 - 0x7f80353fff  libsigchain.so  ???
+0x7f80358000 - 0x7f80359fff  linux-gate.so  ???
diff --git a/src/processor/testdata/microdump.stackwalk.machine_readable-arm.out b/src/processor/testdata/microdump.stackwalk.machine_readable-arm.out
new file mode 100644
index 0000000..869fc4d
--- /dev/null
+++ b/src/processor/testdata/microdump.stackwalk.machine_readable-arm.out
@@ -0,0 +1,19 @@
+OS|Android|OS VERSION INFO
+CPU|arm||2
+GPU|OpenGL ES 3.0 V@104.0 AU@  (GIT@Id3510ff6dc)|Qualcomm|Adreno (TM) 330
+Crash||0x0|0
+Module|breakpad_unittests||breakpad_unittests|DA7778FB66018A4E9B4110ED06E730D00|0xaaacd000|0xaab48fff|0
+Module|libnetd_client.so||libnetd_client.so|56B149396A4DAF176E26B4A85DA87BF30|0xf6fca000|0xf6fcdfff|0
+Module|libstdc++.so||libstdc++.so|DFCD7772F3A5BD1E84A50C4DBFDE6F570|0xf6fee000|0xf6ff1fff|0
+Module|libm.so||libm.so|AE3467401278371A956801500FC8187D0|0xf6ff2000|0xf700afff|0
+Module|liblog.so||liblog.so|0A492DEF82842051996A468D87F23F010|0xf700c000|0xf7012fff|0
+Module|libc.so||libc.so|167F187B09A27F7444EF989603AAFD3D0|0xf7014000|0xf706dfff|0
+
+0|0|breakpad_unittests|MicrodumpWriterTest_Setup_Test::TestBody|/s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest.h|1481|0x1
+0|1|breakpad_unittests|testing::Test::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2435|0x17
+0|2|breakpad_unittests|testing::TestInfo::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2610|0x5
+0|3|breakpad_unittests|testing::TestCase::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2728|0x3
+0|4|breakpad_unittests|testing::internal::UnitTestImpl::RunAllTests|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|4591|0x3
+0|5|breakpad_unittests|testing::UnitTest::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2418|0x5
+0|6|breakpad_unittests|main|/s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest.h|2326|0x3
+0|7|libc.so||||0x11e9d
diff --git a/src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out b/src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out
new file mode 100644
index 0000000..7734dda
--- /dev/null
+++ b/src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out
@@ -0,0 +1,22 @@
+OS|Android|OS 64 VERSION INFO
+CPU|arm64||2
+GPU|||
+Crash||0x0|0
+Module|breakpad_unittests||breakpad_unittests|D6D1FEC9A15DE7F38A236898871A2E770|0x555f608000|0x555f6c7fff|0
+Module|libnetd_client.so||libnetd_client.so|7735F44BA6D7C27FD5C3636A43369B7C0|0x7f801f6000|0x7f80208fff|0
+Module|libstdc++.so||libstdc++.so|380C0B7CD8FA3F094BC3BA58A81CBAD00|0x7f80229000|0x7f8023cfff|0
+Module|libm.so||libm.so|F832D47D1E237E46D835991594DA6E890|0x7f8023d000|0x7f80279fff|0
+Module|liblog.so||liblog.so|C407B93F87A835BE05451FC7B0B3E65E0|0x7f8027b000|0x7f80293fff|0
+Module|libc.so||libc.so|479D5438753E27F019F2C9980DDBF4F30|0x7f80295000|0x7f80332fff|0
+Module|libsigchain.so||libsigchain.so|9DA3FF8EF9CA0FDC481292EE530DF6EC0|0x7f80341000|0x7f80353fff|0
+Module|linux-gate.so||linux-gate.so|672B2CD6CF8AF6C43BD70F2AB02B3D0C0|0x7f80358000|0x7f80359fff|0
+
+0|0|breakpad_unittests|MicrodumpWriterTest_Setup_Test::TestBody|/s/clank/src/out/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc|77|0xc
+0|1|breakpad_unittests|testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2418|0x4
+0|2|breakpad_unittests|testing::Test::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2435|0x14
+0|3|breakpad_unittests|testing::TestInfo::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2610|0x4
+0|4|breakpad_unittests|testing::TestCase::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2728|0x0
+0|5|breakpad_unittests|testing::internal::UnitTestImpl::RunAllTests|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|4591|0x0
+0|6|breakpad_unittests|testing::UnitTest::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2418|0x4
+0|7|breakpad_unittests|main|/s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest.h|2326|0x0
+0|8|libc.so||||0x17388
diff --git a/src/processor/testdata/minidump2.dmp b/src/processor/testdata/minidump2.dmp
new file mode 100644
index 0000000..1a6feee
--- /dev/null
+++ b/src/processor/testdata/minidump2.dmp
Binary files differ
diff --git a/src/processor/testdata/minidump2.dump.out b/src/processor/testdata/minidump2.dump.out
new file mode 100644
index 0000000..8585c89
--- /dev/null
+++ b/src/processor/testdata/minidump2.dump.out
@@ -0,0 +1,706 @@
+MDRawHeader
+  signature            = 0x504d444d
+  version              = 0x5128a793
+  stream_count         = 9
+  stream_directory_rva = 0x20
+  checksum             = 0x0
+  time_date_stamp      = 0x45d35f73 2007-02-14 19:13:55
+  flags                = 0x0
+
+mDirectory[0]
+MDRawDirectory
+  stream_type        = 0x3 (MD_THREAD_LIST_STREAM)
+  location.data_size = 100
+  location.rva       = 0x184
+
+mDirectory[1]
+MDRawDirectory
+  stream_type        = 0x4 (MD_MODULE_LIST_STREAM)
+  location.data_size = 1408
+  location.rva       = 0x1e8
+
+mDirectory[2]
+MDRawDirectory
+  stream_type        = 0x5 (MD_MEMORY_LIST_STREAM)
+  location.data_size = 52
+  location.rva       = 0x1505
+
+mDirectory[3]
+MDRawDirectory
+  stream_type        = 0x6 (MD_EXCEPTION_STREAM)
+  location.data_size = 168
+  location.rva       = 0xdc
+
+mDirectory[4]
+MDRawDirectory
+  stream_type        = 0x7 (MD_SYSTEM_INFO_STREAM)
+  location.data_size = 56
+  location.rva       = 0x8c
+
+mDirectory[5]
+MDRawDirectory
+  stream_type        = 0xf (MD_MISC_INFO_STREAM)
+  location.data_size = 24
+  location.rva       = 0xc4
+
+mDirectory[6]
+MDRawDirectory
+  stream_type        = 0x47670001 (MD_BREAKPAD_INFO_STREAM)
+  location.data_size = 12
+  location.rva       = 0x14f9
+
+mDirectory[7]
+MDRawDirectory
+  stream_type        = 0x0 (MD_UNUSED_STREAM)
+  location.data_size = 0
+  location.rva       = 0x0
+
+mDirectory[8]
+MDRawDirectory
+  stream_type        = 0x0 (MD_UNUSED_STREAM)
+  location.data_size = 0
+  location.rva       = 0x0
+
+Streams:
+  stream type 0x0 (MD_UNUSED_STREAM) at index 8
+  stream type 0x3 (MD_THREAD_LIST_STREAM) at index 0
+  stream type 0x4 (MD_MODULE_LIST_STREAM) at index 1
+  stream type 0x5 (MD_MEMORY_LIST_STREAM) at index 2
+  stream type 0x6 (MD_EXCEPTION_STREAM) at index 3
+  stream type 0x7 (MD_SYSTEM_INFO_STREAM) at index 4
+  stream type 0xf (MD_MISC_INFO_STREAM) at index 5
+  stream type 0x47670001 (MD_BREAKPAD_INFO_STREAM) at index 6
+
+MinidumpThreadList
+  thread_count = 2
+
+thread[0]
+MDRawThread
+  thread_id                   = 0xbf4
+  suspend_count               = 0
+  priority_class              = 0x0
+  priority                    = 0x0
+  teb                         = 0x7ffdf000
+  stack.start_of_memory_range = 0x12f31c
+  stack.memory.data_size      = 0xce4
+  stack.memory.rva            = 0x1639
+  thread_context.data_size    = 0x2cc
+  thread_context.rva          = 0xd94
+
+MDRawContextX86
+  context_flags                = 0x1003f
+  dr0                          = 0x0
+  dr1                          = 0x0
+  dr2                          = 0x0
+  dr3                          = 0x0
+  dr6                          = 0x0
+  dr7                          = 0x0
+  float_save.control_word      = 0xffff027f
+  float_save.status_word       = 0xffff0000
+  float_save.tag_word          = 0xffffffff
+  float_save.error_offset      = 0x0
+  float_save.error_selector    = 0x220000
+  float_save.data_offset       = 0x0
+  float_save.data_selector     = 0xffff0000
+  float_save.register_area[80] = 0x0000000018b72200000118b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+  float_save.cr0_npx_state     = 0x0
+  gs                           = 0x0
+  fs                           = 0x3b
+  es                           = 0x23
+  ds                           = 0x23
+  edi                          = 0x0
+  esi                          = 0x7b8
+  ebx                          = 0x7c883780
+  edx                          = 0x7c97c0d8
+  ecx                          = 0x7c80b46e
+  eax                          = 0x400000
+  ebp                          = 0x12f384
+  eip                          = 0x7c90eb94
+  cs                           = 0x1b
+  eflags                       = 0x246
+  esp                          = 0x12f320
+  ss                           = 0x23
+  extended_registers[512]      = 0x7f0200000000220000000000000000000000000000000000801f0000ffff00000000000018b72200000100000000000018b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004509917c4e09917c38b622002400020024b42200020000009041917c0070fd7f0510907cccb22200000000009cb3220018ee907c7009917cc0e4977c6f3e917c623e917c08020000dcb62200b4b622001e000000000000000000000000000000000000002eb42200000000000f000000020000001e00200000fcfd7f2f63796764726976652f632f444f43554d457e312f4d4d454e544f7e312f4c4f43414c537e312f54656d7000000000000000000130b422000000004300000000000000001efcfd7f4509917c4e09917c5ad9000008b32200b4b62200
+
+Stack
+0x00000000c0e9907ccb25807cb8070000000000000000000034ff1200b0fe12008037887c140000000100000000000000000000001000000027e0907c2e39917c0050fd7f00f0fd7f000000000400000034f312006947c788d4f31200a89a837cf825807c0000000098f312003225807cb8070000ffffffff00000000e4f31200ff1d4000b8070000ffffffffa8fa12008037887c0e1c4000a8fa120000000000ff792a0f64f91200b01b400000004000b0fe12000040020070fa1200084042000000000080fa120080fa12004e30867ca8fa12000000000000000000000000000018000002100000e3ef907c0000000079d900000000000048f41200000014003207917c0500000078071400000014000000000020f412003207917ca05f140018ee907cfa00000074f61200000000009615917ceb06917cf00298000100000000000000384f14009615917ceb06917c7801140008000000404f14000000a659985f1400080000000000000018ee907c90fea700400698003815917c184f1400eb06917c00000000800000000000a65988f69f0090f51200a569917cf8f41200d95c878880f5120043ef907c480485000500000090f5120088fea700a8212400000000000000000080f512002469917cf8fbfd7fa821240008000000f500000000000000384d850078019800a8fa120004000000a05f140096d4917c00000000b0d4917c0000000008069800184f140000000000104f140000000000184f140000004000000000010040020063003a005c0074006500730074005f006100700070002e006500780065000000000000002f00000028000000184f1400780185007801140028000000000000000000140084f3120010000000d8f5120018ee907cf006917cffffffffeb06917ce619917c88e6a7003003000001030000ff1b917c0000980080e6a70080069800400698000000980080e6a70000000000000000000000000080e6a7000818000088e6a700d759927c78019800081800000210000000009800f8f31200280a0000dcf6120018ee907cf006917cffffffffeb06917c0859927c00009800080000005859927c00000000000001000000a659000000005a6202000010000068fe030001000000dffe03000000010000000100fffffe7f0100000001c0c27700008500000000002dc0c27700000000684aaf590000a659241a917c80c0977c0000000000000000cd5c927c0050fd7f0000a65900000100080000004550fd7f0000000000000000000000000050fd7fcd5c927c05000000d4f61200f45c927c80e4977c05000000010000000050fd7f18f712007009917cc0e4977c172e817cff2d817c000000000000a6590000a6590210000000f0fd7f05000000e8f612000806980064f81200a89a837c002e817cffffffffff2d817cc8242400dd8ea75901000000000000004cf712003608a9590000a65901000000000000000100000060f71200e407a9596cf7120000004000000000010040020063003a005c0074006500730074005f006100700070002e0065007800650000006d05917c905f140000000000440d020000000000604f14000c0000007801140000000000a04e1400d84d8700400687004509917c0800000000000000000000004000000078011400a8038700404f14000510907c000000000000000078011400980387000800000008000000c0e4977cd04d8700f835887c7801140010000000a0e7ae591600000030fd1200d39b917c44000000620000000000a65950e9ae59d8eaae59a80387000100000014040000000000000100000002000000f800a659c003870001000000780114009508917c0000a659091b917c020000000900000040000000a2fd12009cfd1200404f1400a2fd1200d04d8700640187000000000000000000d04d870010000000d84d8700384f1400a803870010000000c00300000000870074fb1200404f14006cfe120018ee907cf006917cffffffffeb06917ca09d400000008700000000000400000000000000ffffff3fc04d8700ccfd12009c4d400004000000fa19917cb84d870064018700c04d8700063440000400000018000000c04d870079d90000c0038700fa31400000000000c04d8700c04d87000000000001000000b0fe120082294000c04d87000000000000000000c04d870048fe12008cfe120000000000e224400040fe12008cfe1200c04d8700d84d8700b0fe12008600817c54fa1200d8f9120000000000160018005479420079d90000000000000757917c00000200a4f91200a4f91200a4f91200020000000200000000000000c4f912000000000079d9000014fb12004cfa120014fb1200005a917c00fa1200a0fb120001000000655a917ca405817c74c1977ce705817c00000000f4fd120098fb120000000000a0fb12000000000090fb12000000800070fa120000000000000000000000000016001800547942000000000001000000000000000000000000000000000000003308917ca89a837c0000807c0000807ce800807c2cfa12001fe2907c11fa877cffffffffe06f817c000000006cfa12001c0000000f000000e06f817c8fc60000f0f312000060817cc8fa1200a89a837c7039867cfffffffff0ff1200da36847ca8fa1200099b837cb0fa120000000000b0fa12000000000000000000000000009cfb1200b8fb1200d4fa1200bf37907c9cfb1200e0ff1200b8fb120070fb1200b0ff1200d837907ce0ff120084fb12008b37907c9cfb1200e0ff1200b8fb120070fb1200a89a837c010000009cfb1200e0ff12006078937c9cfb1200e0ff1200b8fb120070fb1200a89a837c280a00009cfb12000200000018ee907c9032917cffffffff8832917c3364917c68fb1200000087003207917c02000000dc31917c1232917c8132917c8832917c1e000000c01e2400080200003807917c54fb12003207917cc4fb120018ee907c9032917c0000130000d01200beb4800088fe1200faea907c00000000b8fb12009cfb1200b8fb1200050000c000000000000000009e4240000200000001000000450000003f0001000000000000000000000000000000000000000000000000007f02ffff0000ffffffffffff0000000000002200000000000000ffff0000000018b72200000118b7220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b0000002300000023000000280a000002000000c1ab807c58bc420094fe12004500000088fe12009e4240001b0000004602010084fe1200230000007f0200000000220000000000000000000000000000000000801f0000ffff00000000000018b72200000100000000000018b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004509917c4e09917c38b622002400020024b42200020000009041917c0070fd7f0510907cccb22200000000009cb3220018ee907c7009917cc0e4977c6f3e917c623e917c08020000dcb62200b4b622001e000000000000000000000000000000000000002eb42200000000000f000000020000001e00200000fcfd7f2f63796764726976652f632f444f43554d457e312f4d4d454e544f7e312f4c4f43414c537e312f54656d7000000000000000000130b422000000004300000000000000001efcfd7f4509917c4e09917c5ad9000008b32200b4b622004500000070ff120000424000b8278700dc31917c00000000004c870000000020040000000000000007000000000000004042400000000000000000002e000000000000000cff12007b434100010000000700000084434100004d87002e39917cffffffff24000000240000002700000000000000584d870004000000b1944000244c87002a0000002f000000c0fe1200004d8700584d87000000a659b0b9a859015d400015aa400000000000b4070000784e14000000000001000000f40b00000000000000000000bc070000b8070000f40b0000a8fa120000000000009c4000599c400094b240004f752a0fc0ff1200ec534000010000003039870050398700ff752a0f00002400a02024000050fd7f050000c00100000005000000000000000000240084ff1200acfa1200e0ff1200d06f4000a70b7a0f00000000f0ff1200d76f817c00002400a02024000050fd7f050000c0c8ff1200a8fa1200ffffffffa89a837ce06f817c0000000000000000000000004354400000000000
+
+thread[1]
+MDRawThread
+  thread_id                   = 0x11c0
+  suspend_count               = 0
+  priority_class              = 0x0
+  priority                    = 0x0
+  teb                         = 0x7ffde000
+  stack.start_of_memory_range = 0x97f6e8
+  stack.memory.data_size      = 0x918
+  stack.memory.rva            = 0x231d
+  thread_context.data_size    = 0x2cc
+  thread_context.rva          = 0x1060
+
+MDRawContextX86
+  context_flags                = 0x1003f
+  dr0                          = 0x0
+  dr1                          = 0x0
+  dr2                          = 0x0
+  dr3                          = 0x0
+  dr6                          = 0x0
+  dr7                          = 0x0
+  float_save.control_word      = 0xffff027f
+  float_save.status_word       = 0xffff0000
+  float_save.tag_word          = 0xffffffff
+  float_save.error_offset      = 0x0
+  float_save.error_selector    = 0x870000
+  float_save.data_offset       = 0x0
+  float_save.data_selector     = 0xffff0000
+  float_save.register_area[80] = 0x84fb120000001400320778071400000014000000f4fe1200a0fd120018eeb0fd12003815917c961534ff120034ff12000000e7712a0f2a0000005400ccfb120068514000584d540000002a000000f4fe
+  float_save.cr0_npx_state     = 0x0
+  gs                           = 0x0
+  fs                           = 0x3b
+  es                           = 0x23
+  ds                           = 0x23
+  edi                          = 0x145b00
+  esi                          = 0x145aa8
+  ebx                          = 0x145ad0
+  edx                          = 0x7c90eb94
+  ecx                          = 0x7
+  eax                          = 0xa80000
+  ebp                          = 0x97f6fc
+  eip                          = 0x7c90eb94
+  cs                           = 0x1b
+  eflags                       = 0x246
+  esp                          = 0x97f6ec
+  ss                           = 0x23
+  extended_registers[512]      = 0x7f0200000000870000000000000000000000000000000000801f0000ccfb120084fb1200000014003207917c050000007807140000001400000000005cfb1200f4fe1200a0fd120018ee907c2d020000b0fd12003815917c9615917ceb06917c34ff120034ff12000000000060000000e7712a0f2a0000005400000000000000ccfb120068514000584d870034fc1200540000002a000000f4fe1200f8fe12002c2f4000584d87005e00000034fc12005400000000000000b0fe1200f4fe1200c0fe12005f21400034fc12002a0000003b762a0f91214000303132330000870038393a3b3c3d3e3f4041424300000000070000003bd11e2340061400b858101e5e03e0652e005c00320033003100650064003100780114002d0066003300380034002d0000000000390034002d0062003800350038002d0031003000984e1400350065003000330065003000360035002e0064006d0070000000907c08000000ffffffff8832917cbeb4807c780114001d00f40b784e14000401000044fd120050fd1200c01e240078011400bdb9807ca04e14007c80c2770000000008fd120078011400ecfc1200f0fc1200e6b9807cffffffff7c80c27708fd12001c00000024fd1200e92a867c7c80c277b45a887c8037887c2d0200000080c2770000c17780000000005003000010000020000000780114005cff12001648847c091b917c
+
+Stack
+0x8000108020fa97009fd7907c0000000048f7970005000f0040061400000000004cf7970037b9807c00000000000000003103917c780114000000000061dc907cf1b8807c00000000ffffffff70f79700000000000000000054f797003082140001000000000000000200000000000000000000007cf7970020b9807c0e00000004000000006000000000a80078011400000000000882140092d5907c8b9b807c9c070000d0f89700780114009c07000038821400807f140020dea85910fa9700780114009807000088fb9700e07f14009c0700000000000078011400000000000882140000000000000000000000000078011400ba0300000000000000000000000000000000000000000000000000007801140000000000000000000000000000000000c0030000000000000000000000000000088214005c0057000600000078011400000000005c00730079007300740065006d0033000082140068011400000000000000000000821400d47f1400807f140070f8970061eea859e000a8000000a8001c4e000084f89700bdeea859e000a8000000a8001c4e0000a4f897005fefa8590000a8000000000006000000c4f89700e000a80060fe9700c8f897005abfa8590000a80000000000060000001c000000d47f1400807f1400380000006ce9907c88b9807cffffffff0000a80000000000807f140030fa97007fc3a859a0c4a859b0fb970060fe9700684f1400504500004c010400ca9610410000000000000000e0000e210b01070a00400000003a000000000000f1100000001000000000bf760000000000100000000200000500010005000100040000000000000000b00000000400009ba2000000001400285214000000000034fa97007801140034fa9700910e917c080614006d05917cc84d85005c4e8500684f140000000000b04800002852140078011400e00300003052140000000000000000000000000078011400c403000030821400380000000000000000000000000000000000000000000000000000003882140048050000780200003800000000100000ec000000b8470000400000000000000000000000000000000000140000000000807f140000000000000000000000000000000101a900000060fe9700dcff9700dcff97000050fd7f78fa970054fa9700ad9d917c8cfa9700c2066f7f0e000000000000001c01000078fa9700c84d850068fa970085ae807c78fc970024fc970083dba85978fc97008cfa9700800000008edba85914010000050000000100000096020000b8fc97003815917c9615917ceb06917c60fe970060fe9700c4fd9700d8fa9700000014003207917c21000000b80c14000000140030521400b0fa9700fffffffff4fc970018ee907c3807917cffffffff3207917cab06917ceb06917ccc4f140060fe9700684f1400e0004000e4fa9700a863917c74fb970018ee907c3808917cffffffff3308917c5b2c817c872c817c00000000f4fb9700000000000000000054fd970018ee907c4006140064fd97003815917c00e0fd7feb06917c684f140038821400780114000050fd7facfb970000000000000004000000000090fe97000000000018fb970050531400508b1400a89a837cffe9907cf60d817ca807000000000000ffe9907cf60d817c08000000000000000000000000000000585314003cfc97003882140000000000160e817cc4fd970060fe970058531400208f1400588b1400460f917c50531400208f1400780114003082140000000000b8fc970078011400b8fc9700910e917c080614006d05917c3882140060fe97000000000000000000960200003082140078011400ffe9907c38821400a807000000000000780114005853140058fc9700505314001000000000000000160e817c784e8500c4fd9700388214000000000024010000f00c00001000000044fc970000000000c7e2907ce721807cffffffffe8f69700388214001809000098fc9700acfc9700d2e2a859ffffffffe8f697003882140018090000c4fc97003882140060fe9700c4fd9700ccfc97004ee3a859ffffffffe8f69700000000003882140018090000e0fc9700f4fc970093b2a859ffffffffe8f69700000000003882140018090000c4fd970060fe9700a85a140078fd9700a5b3a85960fe9700c4fd9700684f1400e8f697000000000018090000000000000200000080fd9700c4fd970060fe970000000000f40b000000000000000000000000000000f0fd7f000000001cf3120000000000e40c000039160000cc020000940d00000000000000000000000000000000000002000000ac4f14006010000098fd97005eb7a8593916000000000000684f1400784e85000000000084ff9700d4fe97007bb9a85960fe9700c4fd9700684f14003849140084ff9700010000000000000008ff9700f40b0000090000000000000020000000200000006c0000008c000000380000001e000000c4000000dc000000a80000008401000064000000b801000030000000e801000080050000e8010000680700000000000068070000680700000000000005150000340000002915000039150000fc1600001d23000068070000600300008a070000c80a0000310a00002c130000f91400000c000000352c000000000000ffffffff5c0f0000c84d8500784e8500884e85000000000000000000000000004c010000fc39a6590000000002000000050000000100000000008500280a000001000001cc0200009c0000000b00000050000000040000000010000000000000000000000001000000000000000000000000000034ff970078baa859384914005c0f0000c84d850001000000884e8500684f140008ff970064ff970000000000a8070000b0fe1200f40b00009cfb120000000000b8fb12000000000000000000ae20140000000000884e8500784e8500c84d8500a8fa120011204000ffffffff5c0f0000a80700000000000078ff970064ff970000000000adbf807c2025807cecff97000100000084ff970003000000c0110000f40b0000f40b0000a8fa120000000000010067470c0000006cff9700bc070000ffffffff000000006c1a4000f40b000000fa12000000000000004000a09d4000b0fe120083b6807cb0fe120000004000a09d4000b0fe120000e0fd7f00069c86c0ff9700d8863f86ffffffffa89a837c90b6807c000000000000000000000000301a4000b0fe120000000000
+
+MinidumpModuleList
+  module_count = 13
+
+module[0]
+MDRawModule
+  base_of_image                   = 0x400000
+  size_of_image                   = 0x2d000
+  checksum                        = 0x0
+  time_date_stamp                 = 0x45d35f6c 2007-02-14 19:13:48
+  module_name_rva                 = 0x78a
+  version_info.signature          = 0x0
+  version_info.struct_version     = 0x0
+  version_info.file_version       = 0x0:0x0
+  version_info.product_version    = 0x0:0x0
+  version_info.file_flags_mask    = 0x0
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x0
+  version_info.file_type          = 0x0
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 40
+  cv_record.rva                   = 0x132c
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "c:\test_app.exe"
+  (code_identifier)               = "45D35F6C2d000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 5a9832e5-2872-41c1-838e-d98914e9b7ff
+  (cv_record).age                 = 1
+  (cv_record).pdb_file_name       = "c:\test_app.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "c:\test_app.pdb"
+  (debug_identifier)              = "5A9832E5287241C1838ED98914E9B7FF1"
+  (version)                       = ""
+
+module[1]
+MDRawModule
+  base_of_image                   = 0x7c900000
+  size_of_image                   = 0xb0000
+  checksum                        = 0xaf2f7
+  time_date_stamp                 = 0x411096b4 2004-08-04 07:56:36
+  module_name_rva                 = 0x7ae
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 34
+  cv_record.rva                   = 0x1354
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\ntdll.dll"
+  (code_identifier)               = "411096B4b0000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 36515fb5-d043-45e4-91f6-72fa2e2878c0
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "ntdll.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "ntdll.pdb"
+  (debug_identifier)              = "36515FB5D04345E491F672FA2E2878C02"
+  (version)                       = "5.1.2600.2180"
+
+module[2]
+MDRawModule
+  base_of_image                   = 0x7c800000
+  size_of_image                   = 0xf4000
+  checksum                        = 0xf724d
+  time_date_stamp                 = 0x44ab9a84 2006-07-05 10:55:00
+  module_name_rva                 = 0x7ee
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280b81
+  version_info.product_version    = 0x50001:0xa280b81
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 37
+  cv_record.rva                   = 0x1376
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\kernel32.dll"
+  (code_identifier)               = "44AB9A84f4000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = bce8785c-57b4-4245-a669-896b6a19b954
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "kernel32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "kernel32.pdb"
+  (debug_identifier)              = "BCE8785C57B44245A669896B6A19B9542"
+  (version)                       = "5.1.2600.2945"
+
+module[3]
+MDRawModule
+  base_of_image                   = 0x774e0000
+  size_of_image                   = 0x13d000
+  checksum                        = 0x13dc6b
+  time_date_stamp                 = 0x42e5be93 2005-07-26 04:39:47
+  module_name_rva                 = 0x834
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280aa6
+  version_info.product_version    = 0x50001:0xa280aa6
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 34
+  cv_record.rva                   = 0x139b
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\ole32.dll"
+  (code_identifier)               = "42E5BE9313d000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 683b65b2-46f4-4187-96d2-ee6d4c55eb11
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "ole32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "ole32.pdb"
+  (debug_identifier)              = "683B65B246F4418796D2EE6D4C55EB112"
+  (version)                       = "5.1.2600.2726"
+
+module[4]
+MDRawModule
+  base_of_image                   = 0x77dd0000
+  size_of_image                   = 0x9b000
+  checksum                        = 0xa0de4
+  time_date_stamp                 = 0x411096a7 2004-08-04 07:56:23
+  module_name_rva                 = 0x874
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 37
+  cv_record.rva                   = 0x13bd
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\advapi32.dll"
+  (code_identifier)               = "411096A79b000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 455d6c5f-184d-45bb-b5c5-f30f82975114
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "advapi32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "advapi32.pdb"
+  (debug_identifier)              = "455D6C5F184D45BBB5C5F30F829751142"
+  (version)                       = "5.1.2600.2180"
+
+module[5]
+MDRawModule
+  base_of_image                   = 0x77e70000
+  size_of_image                   = 0x91000
+  checksum                        = 0x9c482
+  time_date_stamp                 = 0x411096ae 2004-08-04 07:56:30
+  module_name_rva                 = 0x8ba
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 35
+  cv_record.rva                   = 0x13e2
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\rpcrt4.dll"
+  (code_identifier)               = "411096AE91000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = bea45a72-1da1-41da-a3ba-86b3a2031153
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "rpcrt4.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "rpcrt4.pdb"
+  (debug_identifier)              = "BEA45A721DA141DAA3BA86B3A20311532"
+  (version)                       = "5.1.2600.2180"
+
+module[6]
+MDRawModule
+  base_of_image                   = 0x77f10000
+  size_of_image                   = 0x47000
+  checksum                        = 0x4d0d0
+  time_date_stamp                 = 0x43b34feb 2005-12-29 02:54:35
+  module_name_rva                 = 0x8fc
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280b02
+  version_info.product_version    = 0x50001:0xa280b02
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 34
+  cv_record.rva                   = 0x1405
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\gdi32.dll"
+  (code_identifier)               = "43B34FEB47000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = c0ea66be-00a6-4bd7-aef7-9e443a91869c
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "gdi32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "gdi32.pdb"
+  (debug_identifier)              = "C0EA66BE00A64BD7AEF79E443A91869C2"
+  (version)                       = "5.1.2600.2818"
+
+module[7]
+MDRawModule
+  base_of_image                   = 0x77d40000
+  size_of_image                   = 0x90000
+  checksum                        = 0x9505c
+  time_date_stamp                 = 0x42260159 2005-03-02 18:09:29
+  module_name_rva                 = 0x93c
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280a3e
+  version_info.product_version    = 0x50001:0xa280a3e
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 35
+  cv_record.rva                   = 0x1427
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\user32.dll"
+  (code_identifier)               = "4226015990000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = ee2b714d-83a3-4c9d-8802-7621272f8326
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "user32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "user32.pdb"
+  (debug_identifier)              = "EE2B714D83A34C9D88027621272F83262"
+  (version)                       = "5.1.2600.2622"
+
+module[8]
+MDRawModule
+  base_of_image                   = 0x77c10000
+  size_of_image                   = 0x58000
+  checksum                        = 0x57cd3
+  time_date_stamp                 = 0x41109752 2004-08-04 07:59:14
+  module_name_rva                 = 0x97e
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x70000:0xa280884
+  version_info.product_version    = 0x60001:0x21be0884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x1
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 35
+  cv_record.rva                   = 0x144a
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\msvcrt.dll"
+  (code_identifier)               = "4110975258000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = a678f3c3-0ded-426b-8390-32b996987e38
+  (cv_record).age                 = 1
+  (cv_record).pdb_file_name       = "msvcrt.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "msvcrt.pdb"
+  (debug_identifier)              = "A678F3C30DED426B839032B996987E381"
+  (version)                       = "7.0.2600.2180"
+
+module[9]
+MDRawModule
+  base_of_image                   = 0x76390000
+  size_of_image                   = 0x1d000
+  checksum                        = 0x2a024
+  time_date_stamp                 = 0x411096ae 2004-08-04 07:56:30
+  module_name_rva                 = 0x9c0
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 34
+  cv_record.rva                   = 0x146d
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\imm32.dll"
+  (code_identifier)               = "411096AE1d000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 2c17a49c-251b-4c8e-b9e2-ad13d7d9ea16
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "imm32.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "imm32.pdb"
+  (debug_identifier)              = "2C17A49C251B4C8EB9E2AD13D7D9EA162"
+  (version)                       = "5.1.2600.2180"
+
+module[10]
+MDRawModule
+  base_of_image                   = 0x59a60000
+  size_of_image                   = 0xa1000
+  checksum                        = 0xa8824
+  time_date_stamp                 = 0x4110969a 2004-08-04 07:56:10
+  module_name_rva                 = 0xa00
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 36
+  cv_record.rva                   = 0x148f
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\dbghelp.dll"
+  (code_identifier)               = "4110969Aa1000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 39559573-e21b-46f2-8e28-6923be9e6a76
+  (cv_record).age                 = 1
+  (cv_record).pdb_file_name       = "dbghelp.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "dbghelp.pdb"
+  (debug_identifier)              = "39559573E21B46F28E286923BE9E6A761"
+  (version)                       = "5.1.2600.2180"
+
+module[11]
+MDRawModule
+  base_of_image                   = 0x77c00000
+  size_of_image                   = 0x8000
+  checksum                        = 0x11d78
+  time_date_stamp                 = 0x411096b7 2004-08-04 07:56:39
+  module_name_rva                 = 0xa44
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 36
+  cv_record.rva                   = 0x14b3
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\version.dll"
+  (code_identifier)               = "411096B78000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = 180a90c4-0384-463e-82dd-c45b2c8ab76e
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "version.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "version.pdb"
+  (debug_identifier)              = "180A90C40384463E82DDC45B2C8AB76E2"
+  (version)                       = "5.1.2600.2180"
+
+module[12]
+MDRawModule
+  base_of_image                   = 0x76bf0000
+  size_of_image                   = 0xb000
+  checksum                        = 0xa29b
+  time_date_stamp                 = 0x411096ca 2004-08-04 07:56:58
+  module_name_rva                 = 0xa88
+  version_info.signature          = 0xfeef04bd
+  version_info.struct_version     = 0x10000
+  version_info.file_version       = 0x50001:0xa280884
+  version_info.product_version    = 0x50001:0xa280884
+  version_info.file_flags_mask    = 0x3f
+  version_info.file_flags         = 0x0
+  version_info.file_os            = 0x40004
+  version_info.file_type          = 0x2
+  version_info.file_subtype       = 0x0
+  version_info.file_date          = 0x0:0x0
+  cv_record.data_size             = 34
+  cv_record.rva                   = 0x14d7
+  misc_record.data_size           = 0
+  misc_record.rva                 = 0x0
+  (code_file)                     = "C:\WINDOWS\system32\psapi.dll"
+  (code_identifier)               = "411096CAb000"
+  (cv_record).cv_signature        = 0x53445352
+  (cv_record).signature           = a5c3a1f9-689f-43d8-ad22-8a0929388970
+  (cv_record).age                 = 2
+  (cv_record).pdb_file_name       = "psapi.pdb"
+  (misc_record)                   = (null)
+  (debug_file)                    = "psapi.pdb"
+  (debug_identifier)              = "A5C3A1F9689F43D8AD228A09293889702"
+  (version)                       = "5.1.2600.2180"
+
+MinidumpMemoryList
+  region_count = 3
+
+region[0]
+MDMemoryDescriptor
+  start_of_memory_range = 0x7c90eb14
+  memory.data_size      = 0x100
+  memory.rva            = 0x1539
+Memory
+0xff83c4ec890424c744240401000000895c2408c74424100000000054e877000000c208009090909090558bec83ec508944240c64a1180000008b80a4010000890424c744240400000000c744240800000000c74424100000000054e8380000008b04248be55dc3908da424000000008d490090909090908bd40f349090909090c38da424000000008d64240090909090908d542408cd2ec3558bec9c81ecd00200008985dcfdffff898dd8fdffff8b45088b4d0489480c8d852cfdffff8988b80000008998a40000008990a800000089b0a000000089b89c0000008d4d0c8988c40000008b4d008988b40000008b4dfc8988c00000008c88bc0000008c989800
+
+region[1]
+MDMemoryDescriptor
+  start_of_memory_range = 0x12f31c
+  memory.data_size      = 0xce4
+  memory.rva            = 0x1639
+Memory
+0x00000000c0e9907ccb25807cb8070000000000000000000034ff1200b0fe12008037887c140000000100000000000000000000001000000027e0907c2e39917c0050fd7f00f0fd7f000000000400000034f312006947c788d4f31200a89a837cf825807c0000000098f312003225807cb8070000ffffffff00000000e4f31200ff1d4000b8070000ffffffffa8fa12008037887c0e1c4000a8fa120000000000ff792a0f64f91200b01b400000004000b0fe12000040020070fa1200084042000000000080fa120080fa12004e30867ca8fa12000000000000000000000000000018000002100000e3ef907c0000000079d900000000000048f41200000014003207917c0500000078071400000014000000000020f412003207917ca05f140018ee907cfa00000074f61200000000009615917ceb06917cf00298000100000000000000384f14009615917ceb06917c7801140008000000404f14000000a659985f1400080000000000000018ee907c90fea700400698003815917c184f1400eb06917c00000000800000000000a65988f69f0090f51200a569917cf8f41200d95c878880f5120043ef907c480485000500000090f5120088fea700a8212400000000000000000080f512002469917cf8fbfd7fa821240008000000f500000000000000384d850078019800a8fa120004000000a05f140096d4917c00000000b0d4917c0000000008069800184f140000000000104f140000000000184f140000004000000000010040020063003a005c0074006500730074005f006100700070002e006500780065000000000000002f00000028000000184f1400780185007801140028000000000000000000140084f3120010000000d8f5120018ee907cf006917cffffffffeb06917ce619917c88e6a7003003000001030000ff1b917c0000980080e6a70080069800400698000000980080e6a70000000000000000000000000080e6a7000818000088e6a700d759927c78019800081800000210000000009800f8f31200280a0000dcf6120018ee907cf006917cffffffffeb06917c0859927c00009800080000005859927c00000000000001000000a659000000005a6202000010000068fe030001000000dffe03000000010000000100fffffe7f0100000001c0c27700008500000000002dc0c27700000000684aaf590000a659241a917c80c0977c0000000000000000cd5c927c0050fd7f0000a65900000100080000004550fd7f0000000000000000000000000050fd7fcd5c927c05000000d4f61200f45c927c80e4977c05000000010000000050fd7f18f712007009917cc0e4977c172e817cff2d817c000000000000a6590000a6590210000000f0fd7f05000000e8f612000806980064f81200a89a837c002e817cffffffffff2d817cc8242400dd8ea75901000000000000004cf712003608a9590000a65901000000000000000100000060f71200e407a9596cf7120000004000000000010040020063003a005c0074006500730074005f006100700070002e0065007800650000006d05917c905f140000000000440d020000000000604f14000c0000007801140000000000a04e1400d84d8700400687004509917c0800000000000000000000004000000078011400a8038700404f14000510907c000000000000000078011400980387000800000008000000c0e4977cd04d8700f835887c7801140010000000a0e7ae591600000030fd1200d39b917c44000000620000000000a65950e9ae59d8eaae59a80387000100000014040000000000000100000002000000f800a659c003870001000000780114009508917c0000a659091b917c020000000900000040000000a2fd12009cfd1200404f1400a2fd1200d04d8700640187000000000000000000d04d870010000000d84d8700384f1400a803870010000000c00300000000870074fb1200404f14006cfe120018ee907cf006917cffffffffeb06917ca09d400000008700000000000400000000000000ffffff3fc04d8700ccfd12009c4d400004000000fa19917cb84d870064018700c04d8700063440000400000018000000c04d870079d90000c0038700fa31400000000000c04d8700c04d87000000000001000000b0fe120082294000c04d87000000000000000000c04d870048fe12008cfe120000000000e224400040fe12008cfe1200c04d8700d84d8700b0fe12008600817c54fa1200d8f9120000000000160018005479420079d90000000000000757917c00000200a4f91200a4f91200a4f91200020000000200000000000000c4f912000000000079d9000014fb12004cfa120014fb1200005a917c00fa1200a0fb120001000000655a917ca405817c74c1977ce705817c00000000f4fd120098fb120000000000a0fb12000000000090fb12000000800070fa120000000000000000000000000016001800547942000000000001000000000000000000000000000000000000003308917ca89a837c0000807c0000807ce800807c2cfa12001fe2907c11fa877cffffffffe06f817c000000006cfa12001c0000000f000000e06f817c8fc60000f0f312000060817cc8fa1200a89a837c7039867cfffffffff0ff1200da36847ca8fa1200099b837cb0fa120000000000b0fa12000000000000000000000000009cfb1200b8fb1200d4fa1200bf37907c9cfb1200e0ff1200b8fb120070fb1200b0ff1200d837907ce0ff120084fb12008b37907c9cfb1200e0ff1200b8fb120070fb1200a89a837c010000009cfb1200e0ff12006078937c9cfb1200e0ff1200b8fb120070fb1200a89a837c280a00009cfb12000200000018ee907c9032917cffffffff8832917c3364917c68fb1200000087003207917c02000000dc31917c1232917c8132917c8832917c1e000000c01e2400080200003807917c54fb12003207917cc4fb120018ee907c9032917c0000130000d01200beb4800088fe1200faea907c00000000b8fb12009cfb1200b8fb1200050000c000000000000000009e4240000200000001000000450000003f0001000000000000000000000000000000000000000000000000007f02ffff0000ffffffffffff0000000000002200000000000000ffff0000000018b72200000118b7220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b0000002300000023000000280a000002000000c1ab807c58bc420094fe12004500000088fe12009e4240001b0000004602010084fe1200230000007f0200000000220000000000000000000000000000000000801f0000ffff00000000000018b72200000100000000000018b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004509917c4e09917c38b622002400020024b42200020000009041917c0070fd7f0510907cccb22200000000009cb3220018ee907c7009917cc0e4977c6f3e917c623e917c08020000dcb62200b4b622001e000000000000000000000000000000000000002eb42200000000000f000000020000001e00200000fcfd7f2f63796764726976652f632f444f43554d457e312f4d4d454e544f7e312f4c4f43414c537e312f54656d7000000000000000000130b422000000004300000000000000001efcfd7f4509917c4e09917c5ad9000008b32200b4b622004500000070ff120000424000b8278700dc31917c00000000004c870000000020040000000000000007000000000000004042400000000000000000002e000000000000000cff12007b434100010000000700000084434100004d87002e39917cffffffff24000000240000002700000000000000584d870004000000b1944000244c87002a0000002f000000c0fe1200004d8700584d87000000a659b0b9a859015d400015aa400000000000b4070000784e14000000000001000000f40b00000000000000000000bc070000b8070000f40b0000a8fa120000000000009c4000599c400094b240004f752a0fc0ff1200ec534000010000003039870050398700ff752a0f00002400a02024000050fd7f050000c00100000005000000000000000000240084ff1200acfa1200e0ff1200d06f4000a70b7a0f00000000f0ff1200d76f817c00002400a02024000050fd7f050000c0c8ff1200a8fa1200ffffffffa89a837ce06f817c0000000000000000000000004354400000000000
+
+region[2]
+MDMemoryDescriptor
+  start_of_memory_range = 0x97f6e8
+  memory.data_size      = 0x918
+  memory.rva            = 0x231d
+Memory
+0x8000108020fa97009fd7907c0000000048f7970005000f0040061400000000004cf7970037b9807c00000000000000003103917c780114000000000061dc907cf1b8807c00000000ffffffff70f79700000000000000000054f797003082140001000000000000000200000000000000000000007cf7970020b9807c0e00000004000000006000000000a80078011400000000000882140092d5907c8b9b807c9c070000d0f89700780114009c07000038821400807f140020dea85910fa9700780114009807000088fb9700e07f14009c0700000000000078011400000000000882140000000000000000000000000078011400ba0300000000000000000000000000000000000000000000000000007801140000000000000000000000000000000000c0030000000000000000000000000000088214005c0057000600000078011400000000005c00730079007300740065006d0033000082140068011400000000000000000000821400d47f1400807f140070f8970061eea859e000a8000000a8001c4e000084f89700bdeea859e000a8000000a8001c4e0000a4f897005fefa8590000a8000000000006000000c4f89700e000a80060fe9700c8f897005abfa8590000a80000000000060000001c000000d47f1400807f1400380000006ce9907c88b9807cffffffff0000a80000000000807f140030fa97007fc3a859a0c4a859b0fb970060fe9700684f1400504500004c010400ca9610410000000000000000e0000e210b01070a00400000003a000000000000f1100000001000000000bf760000000000100000000200000500010005000100040000000000000000b00000000400009ba2000000001400285214000000000034fa97007801140034fa9700910e917c080614006d05917cc84d85005c4e8500684f140000000000b04800002852140078011400e00300003052140000000000000000000000000078011400c403000030821400380000000000000000000000000000000000000000000000000000003882140048050000780200003800000000100000ec000000b8470000400000000000000000000000000000000000140000000000807f140000000000000000000000000000000101a900000060fe9700dcff9700dcff97000050fd7f78fa970054fa9700ad9d917c8cfa9700c2066f7f0e000000000000001c01000078fa9700c84d850068fa970085ae807c78fc970024fc970083dba85978fc97008cfa9700800000008edba85914010000050000000100000096020000b8fc97003815917c9615917ceb06917c60fe970060fe9700c4fd9700d8fa9700000014003207917c21000000b80c14000000140030521400b0fa9700fffffffff4fc970018ee907c3807917cffffffff3207917cab06917ceb06917ccc4f140060fe9700684f1400e0004000e4fa9700a863917c74fb970018ee907c3808917cffffffff3308917c5b2c817c872c817c00000000f4fb9700000000000000000054fd970018ee907c4006140064fd97003815917c00e0fd7feb06917c684f140038821400780114000050fd7facfb970000000000000004000000000090fe97000000000018fb970050531400508b1400a89a837cffe9907cf60d817ca807000000000000ffe9907cf60d817c08000000000000000000000000000000585314003cfc97003882140000000000160e817cc4fd970060fe970058531400208f1400588b1400460f917c50531400208f1400780114003082140000000000b8fc970078011400b8fc9700910e917c080614006d05917c3882140060fe97000000000000000000960200003082140078011400ffe9907c38821400a807000000000000780114005853140058fc9700505314001000000000000000160e817c784e8500c4fd9700388214000000000024010000f00c00001000000044fc970000000000c7e2907ce721807cffffffffe8f69700388214001809000098fc9700acfc9700d2e2a859ffffffffe8f697003882140018090000c4fc97003882140060fe9700c4fd9700ccfc97004ee3a859ffffffffe8f69700000000003882140018090000e0fc9700f4fc970093b2a859ffffffffe8f69700000000003882140018090000c4fd970060fe9700a85a140078fd9700a5b3a85960fe9700c4fd9700684f1400e8f697000000000018090000000000000200000080fd9700c4fd970060fe970000000000f40b000000000000000000000000000000f0fd7f000000001cf3120000000000e40c000039160000cc020000940d00000000000000000000000000000000000002000000ac4f14006010000098fd97005eb7a8593916000000000000684f1400784e85000000000084ff9700d4fe97007bb9a85960fe9700c4fd9700684f14003849140084ff9700010000000000000008ff9700f40b0000090000000000000020000000200000006c0000008c000000380000001e000000c4000000dc000000a80000008401000064000000b801000030000000e801000080050000e8010000680700000000000068070000680700000000000005150000340000002915000039150000fc1600001d23000068070000600300008a070000c80a0000310a00002c130000f91400000c000000352c000000000000ffffffff5c0f0000c84d8500784e8500884e85000000000000000000000000004c010000fc39a6590000000002000000050000000100000000008500280a000001000001cc0200009c0000000b00000050000000040000000010000000000000000000000001000000000000000000000000000034ff970078baa859384914005c0f0000c84d850001000000884e8500684f140008ff970064ff970000000000a8070000b0fe1200f40b00009cfb120000000000b8fb12000000000000000000ae20140000000000884e8500784e8500c84d8500a8fa120011204000ffffffff5c0f0000a80700000000000078ff970064ff970000000000adbf807c2025807cecff97000100000084ff970003000000c0110000f40b0000f40b0000a8fa120000000000010067470c0000006cff9700bc070000ffffffff000000006c1a4000f40b000000fa12000000000000004000a09d4000b0fe120083b6807cb0fe120000004000a09d4000b0fe120000e0fd7f00069c86c0ff9700d8863f86ffffffffa89a837c90b6807c000000000000000000000000301a4000b0fe120000000000
+
+MDException
+  thread_id                                  = 0xbf4
+  exception_record.exception_code            = 0xc0000005
+  exception_record.exception_flags           = 0x0
+  exception_record.exception_record          = 0x0
+  exception_record.exception_address         = 0x40429e
+  exception_record.number_parameters         = 2
+  exception_record.exception_information[ 0] = 0x1
+  exception_record.exception_information[ 1] = 0x45
+  thread_context.data_size                   = 716
+  thread_context.rva                         = 0xac8
+
+MDRawContextX86
+  context_flags                = 0x1003f
+  dr0                          = 0x0
+  dr1                          = 0x0
+  dr2                          = 0x0
+  dr3                          = 0x0
+  dr6                          = 0x0
+  dr7                          = 0x0
+  float_save.control_word      = 0xffff027f
+  float_save.status_word       = 0xffff0000
+  float_save.tag_word          = 0xffffffff
+  float_save.error_offset      = 0x0
+  float_save.error_selector    = 0x220000
+  float_save.data_offset       = 0x0
+  float_save.data_selector     = 0xffff0000
+  float_save.register_area[80] = 0x0000000018b72200000118b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+  float_save.cr0_npx_state     = 0x0
+  gs                           = 0x0
+  fs                           = 0x3b
+  es                           = 0x23
+  ds                           = 0x23
+  edi                          = 0xa28
+  esi                          = 0x2
+  ebx                          = 0x7c80abc1
+  edx                          = 0x42bc58
+  ecx                          = 0x12fe94
+  eax                          = 0x45
+  ebp                          = 0x12fe88
+  eip                          = 0x40429e
+  cs                           = 0x1b
+  eflags                       = 0x10246
+  esp                          = 0x12fe84
+  ss                           = 0x23
+  extended_registers[512]      = 0x7f0200000000220000000000000000000000000000000000801f0000ffff00000000000018b72200000100000000000018b72200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004509917c4e09917c38b622002400020024b42200020000009041917c0070fd7f0510907cccb22200000000009cb3220018ee907c7009917cc0e4977c6f3e917c623e917c08020000dcb62200b4b622001e000000000000000000000000000000000000002eb42200000000000f000000020000001e00200000fcfd7f2f63796764726976652f632f444f43554d457e312f4d4d454e544f7e312f4c4f43414c537e312f54656d7000000000000000000130b422000000004300000000000000001efcfd7f4509917c4e09917c5ad9000008b32200b4b62200
+
+MDRawSystemInfo
+  processor_architecture                     = 0x0
+  processor_level                            = 6
+  processor_revision                         = 0xd08
+  number_of_processors                       = 1
+  product_type                               = 1
+  major_version                              = 5
+  minor_version                              = 1
+  build_number                               = 2600
+  platform_id                                = 0x2
+  csd_version_rva                            = 0x768
+  suite_mask                                 = 0x100
+  cpu.x86_cpu_info (valid):
+  cpu.x86_cpu_info.vendor_id[0]              = 0x756e6547
+  cpu.x86_cpu_info.vendor_id[1]              = 0x49656e69
+  cpu.x86_cpu_info.vendor_id[2]              = 0x6c65746e
+  cpu.x86_cpu_info.version_information       = 0x6d8
+  cpu.x86_cpu_info.feature_information       = 0xafe9fbff
+  cpu.x86_cpu_info.amd_extended_cpu_features = 0xffffffff
+  (csd_version)                              = "Service Pack 2"
+  (cpu_vendor)                               = "GenuineIntel"
+
+MDRawMiscInfo
+  size_of_info                 = 24
+  flags1                       = 0x3
+  process_id                   = 3932
+  process_create_time          = 0x45d35f73 2007-02-14 19:13:55
+  process_user_time            = 0
+  process_kernel_time          = 0
+
+MDRawBreakpadInfo
+  validity             = 0x3
+  dump_thread_id       = 0x11c0
+  requesting_thread_id = 0xbf4
+
diff --git a/src/processor/testdata/minidump2.stackwalk.machine_readable.out b/src/processor/testdata/minidump2.stackwalk.machine_readable.out
new file mode 100644
index 0000000..c976555
--- /dev/null
+++ b/src/processor/testdata/minidump2.stackwalk.machine_readable.out
@@ -0,0 +1,22 @@
+OS|Windows NT|5.1.2600 Service Pack 2
+CPU|x86|GenuineIntel family 6 model 13 stepping 8|1
+GPU|||
+Crash|EXCEPTION_ACCESS_VIOLATION_WRITE|0x45|0
+Module|test_app.exe||test_app.pdb|5A9832E5287241C1838ED98914E9B7FF1|0x00400000|0x0042cfff|1
+Module|dbghelp.dll|5.1.2600.2180|dbghelp.pdb|39559573E21B46F28E286923BE9E6A761|0x59a60000|0x59b00fff|0
+Module|imm32.dll|5.1.2600.2180|imm32.pdb|2C17A49C251B4C8EB9E2AD13D7D9EA162|0x76390000|0x763acfff|0
+Module|psapi.dll|5.1.2600.2180|psapi.pdb|A5C3A1F9689F43D8AD228A09293889702|0x76bf0000|0x76bfafff|0
+Module|ole32.dll|5.1.2600.2726|ole32.pdb|683B65B246F4418796D2EE6D4C55EB112|0x774e0000|0x7761cfff|0
+Module|version.dll|5.1.2600.2180|version.pdb|180A90C40384463E82DDC45B2C8AB76E2|0x77c00000|0x77c07fff|0
+Module|msvcrt.dll|7.0.2600.2180|msvcrt.pdb|A678F3C30DED426B839032B996987E381|0x77c10000|0x77c67fff|0
+Module|user32.dll|5.1.2600.2622|user32.pdb|EE2B714D83A34C9D88027621272F83262|0x77d40000|0x77dcffff|0
+Module|advapi32.dll|5.1.2600.2180|advapi32.pdb|455D6C5F184D45BBB5C5F30F829751142|0x77dd0000|0x77e6afff|0
+Module|rpcrt4.dll|5.1.2600.2180|rpcrt4.pdb|BEA45A721DA141DAA3BA86B3A20311532|0x77e70000|0x77f00fff|0
+Module|gdi32.dll|5.1.2600.2818|gdi32.pdb|C0EA66BE00A64BD7AEF79E443A91869C2|0x77f10000|0x77f56fff|0
+Module|kernel32.dll|5.1.2600.2945|kernel32.pdb|BCE8785C57B44245A669896B6A19B9542|0x7c800000|0x7c8f3fff|0
+Module|ntdll.dll|5.1.2600.2180|ntdll.pdb|36515FB5D04345E491F672FA2E2878C02|0x7c900000|0x7c9affff|0
+
+0|0|test_app.exe|`anonymous namespace'::CrashFunction|c:\test_app.cc|58|0x3
+0|1|test_app.exe|main|c:\test_app.cc|65|0x5
+0|2|test_app.exe|__tmainCRTStartup|f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c|327|0x12
+0|3|kernel32.dll|BaseProcessStart|||0x23
diff --git a/src/processor/testdata/minidump2.stackwalk.out b/src/processor/testdata/minidump2.stackwalk.out
new file mode 100644
index 0000000..d04234a
--- /dev/null
+++ b/src/processor/testdata/minidump2.stackwalk.out
@@ -0,0 +1,42 @@
+Operating system: Windows NT
+                  5.1.2600 Service Pack 2
+CPU: x86
+     GenuineIntel family 6 model 13 stepping 8
+     1 CPU
+
+GPU: UNKNOWN
+
+Crash reason:  EXCEPTION_ACCESS_VIOLATION_WRITE
+Crash address: 0x45
+Process uptime: 0 seconds
+
+Thread 0 (crashed)
+ 0  test_app.exe!`anonymous namespace'::CrashFunction [test_app.cc : 58 + 0x3]
+    eip = 0x0040429e   esp = 0x0012fe84   ebp = 0x0012fe88   ebx = 0x7c80abc1
+    esi = 0x00000002   edi = 0x00000a28   eax = 0x00000045   ecx = 0x0012fe94
+    edx = 0x0042bc58   efl = 0x00010246
+    Found by: given as instruction pointer in context
+ 1  test_app.exe!main [test_app.cc : 65 + 0x5]
+    eip = 0x00404200   esp = 0x0012fe90   ebp = 0x0012ff70
+    Found by: call frame info
+ 2  test_app.exe!__tmainCRTStartup [crt0.c : 327 + 0x12]
+    eip = 0x004053ec   esp = 0x0012ff78   ebp = 0x0012ffc0
+    Found by: call frame info
+ 3  kernel32.dll!BaseProcessStart + 0x23
+    eip = 0x7c816fd7   esp = 0x0012ffc8   ebp = 0x0012fff0
+    Found by: call frame info
+
+Loaded modules:
+0x00400000 - 0x0042cfff  test_app.exe  ???  (main)
+0x59a60000 - 0x59b00fff  dbghelp.dll  5.1.2600.2180
+0x76390000 - 0x763acfff  imm32.dll  5.1.2600.2180
+0x76bf0000 - 0x76bfafff  psapi.dll  5.1.2600.2180
+0x774e0000 - 0x7761cfff  ole32.dll  5.1.2600.2726
+0x77c00000 - 0x77c07fff  version.dll  5.1.2600.2180
+0x77c10000 - 0x77c67fff  msvcrt.dll  7.0.2600.2180
+0x77d40000 - 0x77dcffff  user32.dll  5.1.2600.2622
+0x77dd0000 - 0x77e6afff  advapi32.dll  5.1.2600.2180
+0x77e70000 - 0x77f00fff  rpcrt4.dll  5.1.2600.2180
+0x77f10000 - 0x77f56fff  gdi32.dll  5.1.2600.2818
+0x7c800000 - 0x7c8f3fff  kernel32.dll  5.1.2600.2945
+0x7c900000 - 0x7c9affff  ntdll.dll  5.1.2600.2180
diff --git a/src/processor/testdata/minidump_32bit_crash_addr.dmp b/src/processor/testdata/minidump_32bit_crash_addr.dmp
new file mode 100644
index 0000000..78becc6
--- /dev/null
+++ b/src/processor/testdata/minidump_32bit_crash_addr.dmp
Binary files differ
diff --git a/src/processor/testdata/module0.out b/src/processor/testdata/module0.out
new file mode 100644
index 0000000..72fb4da
--- /dev/null
+++ b/src/processor/testdata/module0.out
@@ -0,0 +1,22151 @@
+MODULE windows x86 5A9832E5287241C1838ED98914E9B7FF1 test_app.pdb
+FILE 1 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winbase.h
+FILE 2 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 3 c:\breakpad\trunk\src\common\windows\guid_string.h
+FILE 4 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdce.h
+FILE 5 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winreg.h
+FILE 6 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objidl.h
+FILE 7 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wtypes.h
+FILE 8 c:\program files\microsoft visual studio 8\vc\platformsdk\include\tvout.h
+FILE 9 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 10 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack2.h
+FILE 11 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h
+FILE 12 c:\breakpad\trunk\src\client\windows\handler\exception_handler.cc
+FILE 13 c:\program files\microsoft visual studio 8\vc\platformsdk\include\urlmon.h
+FILE 14 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincon.h
+FILE 15 c:\program files\microsoft visual studio 8\vc\platformsdk\include\imm.h
+FILE 16 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdcep.h
+FILE 17 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 18 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winver.h
+FILE 19 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 20 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 21 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack4.h
+FILE 22 c:\program files\microsoft visual studio 8\vc\platformsdk\include\reason.h
+FILE 23 c:\program files\microsoft visual studio 8\vc\include\vector
+FILE 24 c:\program files\microsoft visual studio 8\vc\include\memory
+FILE 25 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 26 c:\program files\microsoft visual studio 8\vc\include\iterator
+FILE 27 c:\program files\microsoft visual studio 8\vc\platformsdk\include\propidl.h
+FILE 28 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack1.h
+FILE 29 c:\program files\microsoft visual studio 8\vc\platformsdk\include\specstrings.h
+FILE 30 c:\program files\microsoft visual studio 8\vc\platformsdk\include\basetsd.h
+FILE 31 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winerror.h
+FILE 32 c:\program files\microsoft visual studio 8\vc\include\assert.h
+FILE 33 c:\program files\microsoft visual studio 8\vc\platformsdk\include\poppack.h
+FILE 34 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 35 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 36 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnterr.h
+FILE 37 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcasync.h
+FILE 38 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsi.h
+FILE 39 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 40 c:\program files\microsoft visual studio 8\vc\platformsdk\include\servprov.h
+FILE 41 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 42 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h
+FILE 43 c:\breakpad\trunk\src\client\windows\handler\exception_handler.h
+FILE 44 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h
+FILE 45 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dbghelp.h
+FILE 46 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnetwk.h
+FILE 47 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 48 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack8.h
+FILE 49 c:\program files\microsoft visual studio 8\vc\platformsdk\include\stralign.h
+FILE 50 c:\breakpad\trunk\src\google_breakpad\common\minidump_format.h
+FILE 51 c:\breakpad\trunk\src\google_breakpad\common\breakpad_types.h
+FILE 52 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 53 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 54 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windef.h
+FILE 55 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsvc.h
+FILE 56 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h
+FILE 57 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 58 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 59 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleidl.h
+FILE 60 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 61 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 62 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 63 c:\breakpad\trunk\src\common\windows\string_utils-inl.h
+FILE 64 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 65 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 66 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 67 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 68 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 69 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 70 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 71 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 72 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 73 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 74 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 75 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 76 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 77 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 78 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 79 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 80 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 81 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mcx.h
+FILE 82 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 83 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 84 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 85 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objbase.h
+FILE 86 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 87 c:\program files\microsoft visual studio 8\vc\platformsdk\include\unknwn.h
+FILE 88 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpc.h
+FILE 89 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 90 c:\program files\microsoft visual studio 8\vc\include\cassert
+FILE 91 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ole2.h
+FILE 92 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windows.h
+FILE 93 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 94 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleauto.h
+FILE 95 c:\program files\microsoft visual studio 8\vc\include\excpt.h
+FILE 96 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 97 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cguid.h
+FILE 98 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 99 c:\program files\microsoft visual studio 8\vc\platformsdk\include\msxml.h
+FILE 100 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oaidl.h
+FILE 101 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 102 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 103 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h
+FILE 104 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 105 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 106 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnls.h
+FILE 107 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 108 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 109 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 110 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 111 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 112 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 113 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 114 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 115 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 116 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 117 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 118 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 119 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 120 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 121 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 122 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 123 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 124 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 125 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 126 c:\breakpad\trunk\src\common\windows\guid_string.cc
+FILE 127 c:\breakpad\trunk\src\common\windows\string_utils-inl.h
+FILE 128 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 129 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 130 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 131 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 132 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 133 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 134 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 135 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 136 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 137 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 138 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 139 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 140 c:\breakpad\trunk\src\common\windows\guid_string.h
+FILE 141 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 142 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 143 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 144 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 145 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 146 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 147 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 148 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 149 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 150 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 151 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 152 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 153 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 154 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 155 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 156 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 157 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 158 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 159 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnetwk.h
+FILE 160 c:\program files\microsoft visual studio 8\vc\platformsdk\include\urlmon.h
+FILE 161 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack8.h
+FILE 162 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cderr.h
+FILE 163 c:\program files\microsoft visual studio 8\vc\platformsdk\include\shellapi.h
+FILE 164 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dde.h
+FILE 165 c:\program files\microsoft visual studio 8\vc\include\vector
+FILE 166 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 167 c:\program files\microsoft visual studio 8\vc\include\memory
+FILE 168 c:\program files\microsoft visual studio 8\vc\include\iterator
+FILE 169 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 170 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 171 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windef.h
+FILE 172 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h
+FILE 173 c:\program files\microsoft visual studio 8\vc\platformsdk\include\imm.h
+FILE 174 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mmsystem.h
+FILE 175 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winioctl.h
+FILE 176 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 177 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsmcrd.h
+FILE 178 c:\test_app.cc
+FILE 179 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oaidl.h
+FILE 180 c:\program files\microsoft visual studio 8\vc\platformsdk\include\nb30.h
+FILE 181 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 182 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 183 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 184 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleidl.h
+FILE 185 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnls.h
+FILE 186 c:\breakpad\trunk\src\google_breakpad\common\minidump_format.h
+FILE 187 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 188 c:\breakpad\trunk\src\google_breakpad\common\breakpad_types.h
+FILE 189 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h
+FILE 190 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 191 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 192 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winbase.h
+FILE 193 c:\program files\microsoft visual studio 8\vc\platformsdk\include\propidl.h
+FILE 194 c:\breakpad\trunk\src\client\windows\handler\exception_handler.h
+FILE 195 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 196 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 197 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 198 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winreg.h
+FILE 199 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpc.h
+FILE 200 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ole2.h
+FILE 201 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winscard.h
+FILE 202 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objbase.h
+FILE 203 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wtypes.h
+FILE 204 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h
+FILE 205 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdce.h
+FILE 206 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h
+FILE 207 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 208 c:\program files\microsoft visual studio 8\vc\platformsdk\include\tvout.h
+FILE 209 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 210 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winefs.h
+FILE 211 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack2.h
+FILE 212 c:\program files\microsoft visual studio 8\vc\platformsdk\include\commdlg.h
+FILE 213 c:\program files\microsoft visual studio 8\vc\platformsdk\include\unknwn.h
+FILE 214 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h
+FILE 215 c:\program files\microsoft visual studio 8\vc\platformsdk\include\stralign.h
+FILE 216 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h
+FILE 217 c:\program files\microsoft visual studio 8\vc\platformsdk\include\servprov.h
+FILE 218 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 219 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsvc.h
+FILE 220 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincon.h
+FILE 221 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 222 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 223 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 224 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cguid.h
+FILE 225 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 226 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winver.h
+FILE 227 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 228 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 229 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 230 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winperf.h
+FILE 231 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack4.h
+FILE 232 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 233 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 234 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 235 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 236 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 237 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdcep.h
+FILE 238 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 239 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 240 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 241 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 242 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mcx.h
+FILE 243 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 244 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 245 c:\program files\microsoft visual studio 8\vc\platformsdk\include\reason.h
+FILE 246 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 247 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dlgs.h
+FILE 248 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 249 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 250 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack1.h
+FILE 251 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 252 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 253 c:\program files\microsoft visual studio 8\vc\platformsdk\include\specstrings.h
+FILE 254 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 255 c:\program files\microsoft visual studio 8\vc\platformsdk\include\basetsd.h
+FILE 256 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 257 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winerror.h
+FILE 258 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincrypt.h
+FILE 259 c:\program files\microsoft visual studio 8\vc\platformsdk\include\poppack.h
+FILE 260 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winspool.h
+FILE 261 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleauto.h
+FILE 262 c:\program files\microsoft visual studio 8\vc\platformsdk\include\prsht.h
+FILE 263 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objidl.h
+FILE 264 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 265 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 266 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 267 c:\program files\microsoft visual studio 8\vc\platformsdk\include\lzexpand.h
+FILE 268 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ddeml.h
+FILE 269 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 270 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 271 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 272 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dbghelp.h
+FILE 273 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnterr.h
+FILE 274 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcasync.h
+FILE 275 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsi.h
+FILE 276 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 277 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windows.h
+FILE 278 c:\program files\microsoft visual studio 8\vc\include\excpt.h
+FILE 279 c:\program files\microsoft visual studio 8\vc\platformsdk\include\msxml.h
+FILE 280 f:\sp\vctools\crt_bld\self_x86\crt\src\xdebug
+FILE 281 f:\sp\vctools\crt_bld\self_x86\crt\src\streambuf
+FILE 282 f:\sp\vctools\crt_bld\self_x86\crt\src\xiosbase
+FILE 283 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocale
+FILE 284 f:\sp\vctools\crt_bld\self_x86\crt\src\cstring
+FILE 285 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 286 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocinfo
+FILE 287 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocinfo.h
+FILE 288 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 289 f:\sp\vctools\crt_bld\self_x86\crt\src\share.h
+FILE 290 f:\sp\vctools\crt_bld\self_x86\crt\src\use_ansi.h
+FILE 291 f:\sp\vctools\crt_bld\self_x86\crt\src\string.cpp
+FILE 292 f:\sp\vctools\crt_bld\self_x86\crt\src\typeinfo
+FILE 293 f:\sp\vctools\crt_bld\self_x86\crt\src\xutility
+FILE 294 f:\sp\vctools\crt_bld\self_x86\crt\src\utility
+FILE 295 f:\sp\vctools\crt_bld\self_x86\crt\src\iosfwd
+FILE 296 f:\sp\vctools\crt_bld\self_x86\crt\src\cwchar
+FILE 297 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 298 f:\sp\vctools\crt_bld\self_x86\crt\src\stdexcept
+FILE 299 f:\sp\vctools\crt_bld\self_x86\crt\src\exception
+FILE 300 f:\sp\vctools\crt_bld\self_x86\crt\src\xstddef
+FILE 301 f:\sp\vctools\crt_bld\self_x86\crt\src\cstddef
+FILE 302 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 303 f:\sp\vctools\crt_bld\self_x86\crt\src\istream
+FILE 304 f:\sp\vctools\crt_bld\self_x86\crt\src\ostream
+FILE 305 f:\sp\vctools\crt_bld\self_x86\crt\src\ios
+FILE 306 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocnum
+FILE 307 f:\sp\vctools\crt_bld\self_x86\crt\src\eh.h
+FILE 308 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdlib
+FILE 309 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 310 f:\sp\vctools\crt_bld\self_x86\crt\src\climits
+FILE 311 f:\sp\vctools\crt_bld\self_x86\crt\src\yvals.h
+FILE 312 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 313 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 314 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 315 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 316 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 317 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdio
+FILE 318 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 319 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 320 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 321 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 322 f:\sp\public\sdk\inc\ddbanned.h
+FILE 323 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 324 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 325 f:\sp\vctools\crt_bld\self_x86\crt\src\xstring
+FILE 326 f:\sp\vctools\crt_bld\self_x86\crt\src\xmemory
+FILE 327 f:\sp\vctools\crt_bld\self_x86\crt\src\new
+FILE 328 f:\sp\public\sdk\inc\reason.h
+FILE 329 f:\sp\public\sdk\inc\wincon.h
+FILE 330 f:\sp\public\sdk\inc\pshpack2.h
+FILE 331 f:\sp\public\sdk\inc\mcx.h
+FILE 332 f:\sp\public\sdk\inc\winuser.h
+FILE 333 f:\sp\public\sdk\inc\winnls.h
+FILE 334 f:\sp\public\sdk\inc\guiddef.h
+FILE 335 f:\sp\public\sdk\inc\specstrings.h
+FILE 336 f:\sp\public\sdk\inc\basetsd.h
+FILE 337 f:\sp\public\sdk\inc\stralign.h
+FILE 338 f:\sp\public\sdk\inc\tvout.h
+FILE 339 f:\sp\public\sdk\inc\winsvc.h
+FILE 340 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 341 f:\sp\public\sdk\inc\wingdi.h
+FILE 342 f:\sp\public\sdk\inc\pshpack4.h
+FILE 343 f:\sp\public\sdk\inc\poppack.h
+FILE 344 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 346 f:\sp\public\sdk\inc\imm.h
+FILE 347 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 348 f:\sp\public\sdk\inc\windef.h
+FILE 349 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 350 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 351 f:\sp\public\sdk\inc\pshpack1.h
+FILE 352 f:\sp\public\sdk\inc\winver.h
+FILE 353 f:\sp\public\sdk\inc\windows.h
+FILE 354 f:\sp\public\sdk\inc\winnt.h
+FILE 355 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 356 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 357 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 358 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 359 f:\sp\public\sdk\inc\ddbanned.h
+FILE 360 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 361 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 362 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 363 f:\sp\public\sdk\inc\winreg.h
+FILE 364 f:\sp\public\sdk\inc\winbase.h
+FILE 365 f:\sp\public\sdk\inc\winerror.h
+FILE 366 f:\sp\public\sdk\inc\pshpack8.h
+FILE 367 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 368 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 369 f:\sp\public\sdk\inc\reason.h
+FILE 370 f:\sp\public\sdk\inc\wincon.h
+FILE 371 f:\sp\public\sdk\inc\pshpack2.h
+FILE 372 f:\sp\public\sdk\inc\mcx.h
+FILE 373 f:\sp\public\sdk\inc\winuser.h
+FILE 374 f:\sp\public\sdk\inc\winnls.h
+FILE 375 f:\sp\public\sdk\inc\guiddef.h
+FILE 376 f:\sp\public\sdk\inc\specstrings.h
+FILE 377 f:\sp\public\sdk\inc\basetsd.h
+FILE 378 f:\sp\public\sdk\inc\stralign.h
+FILE 379 f:\sp\public\sdk\inc\tvout.h
+FILE 380 f:\sp\public\sdk\inc\winsvc.h
+FILE 381 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 382 f:\sp\public\sdk\inc\wingdi.h
+FILE 383 f:\sp\public\sdk\inc\pshpack4.h
+FILE 384 f:\sp\public\sdk\inc\poppack.h
+FILE 385 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 386 f:\sp\public\sdk\inc\winnetwk.h
+FILE 387 f:\sp\public\sdk\inc\imm.h
+FILE 388 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 389 f:\sp\public\sdk\inc\windef.h
+FILE 390 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 391 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\mathfcns.c
+FILE 392 f:\sp\public\sdk\inc\pshpack1.h
+FILE 393 f:\sp\public\sdk\inc\winver.h
+FILE 394 f:\sp\public\sdk\inc\windows.h
+FILE 395 f:\sp\public\sdk\inc\winnt.h
+FILE 396 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 397 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 398 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 399 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 400 f:\sp\public\sdk\inc\ddbanned.h
+FILE 401 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 402 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 403 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 404 f:\sp\public\sdk\inc\winreg.h
+FILE 405 f:\sp\public\sdk\inc\winbase.h
+FILE 406 f:\sp\public\sdk\inc\winerror.h
+FILE 407 f:\sp\public\sdk\inc\pshpack8.h
+FILE 408 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 409 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 410 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 411 f:\sp\public\sdk\inc\winreg.h
+FILE 412 f:\sp\public\sdk\inc\winbase.h
+FILE 413 f:\sp\public\sdk\inc\winerror.h
+FILE 414 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 415 f:\sp\public\sdk\inc\windef.h
+FILE 416 f:\sp\vctools\crt_bld\self_x86\crt\src\ctime.h
+FILE 417 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 418 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 419 f:\sp\public\sdk\inc\pshpack8.h
+FILE 420 f:\sp\public\sdk\inc\reason.h
+FILE 421 f:\sp\public\sdk\inc\wincon.h
+FILE 422 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 423 f:\sp\public\sdk\inc\pshpack2.h
+FILE 424 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 425 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 426 f:\sp\public\sdk\inc\mcx.h
+FILE 427 f:\sp\public\sdk\inc\winuser.h
+FILE 428 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 429 f:\sp\public\sdk\inc\winnls.h
+FILE 430 f:\sp\public\sdk\inc\guiddef.h
+FILE 431 f:\sp\public\sdk\inc\stralign.h
+FILE 432 f:\sp\public\sdk\inc\winnt.h
+FILE 433 f:\sp\public\sdk\inc\specstrings.h
+FILE 434 f:\sp\public\sdk\inc\basetsd.h
+FILE 435 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 436 f:\sp\public\sdk\inc\tvout.h
+FILE 437 f:\sp\public\sdk\inc\winsvc.h
+FILE 438 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 439 f:\sp\public\sdk\inc\wingdi.h
+FILE 440 f:\sp\vctools\crt_bld\self_x86\crt\src\tzset.c
+FILE 441 f:\sp\public\sdk\inc\pshpack4.h
+FILE 442 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 443 f:\sp\public\sdk\inc\poppack.h
+FILE 444 f:\sp\public\sdk\inc\winnetwk.h
+FILE 445 f:\sp\public\sdk\inc\imm.h
+FILE 446 f:\sp\public\sdk\inc\ddbanned.h
+FILE 447 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 448 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 449 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 450 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 451 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 452 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 453 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 454 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 455 f:\sp\public\sdk\inc\windows.h
+FILE 456 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 457 f:\sp\public\sdk\inc\pshpack1.h
+FILE 458 f:\sp\public\sdk\inc\winver.h
+FILE 459 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 460 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 461 f:\sp\public\sdk\inc\winnt.h
+FILE 462 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 463 f:\sp\public\sdk\inc\winreg.h
+FILE 464 f:\sp\public\sdk\inc\winbase.h
+FILE 465 f:\sp\public\sdk\inc\winerror.h
+FILE 466 f:\sp\public\sdk\inc\pshpack8.h
+FILE 467 f:\sp\public\sdk\inc\reason.h
+FILE 468 f:\sp\public\sdk\inc\wincon.h
+FILE 469 f:\sp\public\sdk\inc\pshpack2.h
+FILE 470 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 471 f:\sp\public\sdk\inc\mcx.h
+FILE 472 f:\sp\public\sdk\inc\winuser.h
+FILE 473 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 474 f:\sp\public\sdk\inc\winnls.h
+FILE 475 f:\sp\public\sdk\inc\guiddef.h
+FILE 476 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 477 f:\sp\public\sdk\inc\stralign.h
+FILE 478 f:\sp\public\sdk\inc\specstrings.h
+FILE 479 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 480 f:\sp\public\sdk\inc\basetsd.h
+FILE 481 f:\sp\public\sdk\inc\windows.h
+FILE 482 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 483 f:\sp\public\sdk\inc\tvout.h
+FILE 484 f:\sp\public\sdk\inc\winsvc.h
+FILE 485 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 486 f:\sp\public\sdk\inc\wingdi.h
+FILE 487 f:\sp\vctools\crt_bld\self_x86\crt\src\timeset.c
+FILE 488 f:\sp\public\sdk\inc\pshpack4.h
+FILE 489 f:\sp\public\sdk\inc\poppack.h
+FILE 490 f:\sp\public\sdk\inc\winnetwk.h
+FILE 491 f:\sp\public\sdk\inc\imm.h
+FILE 492 f:\sp\public\sdk\inc\ddbanned.h
+FILE 493 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 494 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 495 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 496 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 498 f:\sp\public\sdk\inc\windef.h
+FILE 499 f:\sp\public\sdk\inc\pshpack1.h
+FILE 500 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 501 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 502 f:\sp\public\sdk\inc\winver.h
+FILE 503 f:\sp\public\sdk\inc\wincon.h
+FILE 504 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 505 f:\sp\public\sdk\inc\imm.h
+FILE 506 f:\sp\public\sdk\inc\winbase.h
+FILE 507 f:\sp\public\sdk\inc\wingdi.h
+FILE 508 f:\sp\public\sdk\inc\winver.h
+FILE 509 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 510 f:\sp\public\sdk\inc\windows.h
+FILE 511 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 513 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 514 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 515 f:\sp\public\sdk\inc\reason.h
+FILE 516 f:\sp\vctools\crt_bld\self_x86\crt\src\strftime.c
+FILE 517 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 518 f:\sp\public\sdk\inc\specstrings.h
+FILE 519 f:\sp\public\sdk\inc\basetsd.h
+FILE 520 f:\sp\public\sdk\inc\pshpack4.h
+FILE 521 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 522 f:\sp\public\sdk\inc\winnetwk.h
+FILE 523 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 524 f:\sp\public\sdk\inc\stralign.h
+FILE 525 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 526 f:\sp\public\sdk\inc\poppack.h
+FILE 527 f:\sp\public\sdk\inc\winsvc.h
+FILE 528 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 529 f:\sp\public\sdk\inc\windef.h
+FILE 530 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 531 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 532 f:\sp\public\sdk\inc\winuser.h
+FILE 533 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 534 f:\sp\public\sdk\inc\mcx.h
+FILE 535 f:\sp\public\sdk\inc\pshpack8.h
+FILE 536 f:\sp\public\sdk\inc\guiddef.h
+FILE 537 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 538 f:\sp\public\sdk\inc\winnt.h
+FILE 539 f:\sp\public\sdk\inc\winnls.h
+FILE 540 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 541 f:\sp\public\sdk\inc\pshpack1.h
+FILE 542 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 543 f:\sp\public\sdk\inc\winerror.h
+FILE 544 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 545 f:\sp\public\sdk\inc\winreg.h
+FILE 546 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 547 f:\sp\public\sdk\inc\ddbanned.h
+FILE 548 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 549 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 550 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 551 f:\sp\public\sdk\inc\tvout.h
+FILE 552 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 553 f:\sp\public\sdk\inc\poppack.h
+FILE 554 f:\sp\public\sdk\inc\winnetwk.h
+FILE 555 f:\sp\public\sdk\inc\imm.h
+FILE 556 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 557 f:\sp\public\sdk\inc\windef.h
+FILE 558 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 559 f:\sp\public\sdk\inc\pshpack1.h
+FILE 560 f:\sp\public\sdk\inc\winver.h
+FILE 561 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 562 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 563 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 564 f:\sp\public\sdk\inc\winnt.h
+FILE 565 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 566 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 567 f:\sp\public\sdk\inc\winreg.h
+FILE 568 f:\sp\vctools\crt_bld\self_x86\crt\src\days.c
+FILE 569 f:\sp\public\sdk\inc\winbase.h
+FILE 570 f:\sp\public\sdk\inc\winerror.h
+FILE 571 f:\sp\public\sdk\inc\pshpack8.h
+FILE 572 f:\sp\public\sdk\inc\reason.h
+FILE 573 f:\sp\public\sdk\inc\wincon.h
+FILE 574 f:\sp\public\sdk\inc\ddbanned.h
+FILE 575 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 576 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 577 f:\sp\public\sdk\inc\pshpack2.h
+FILE 578 f:\sp\public\sdk\inc\mcx.h
+FILE 579 f:\sp\public\sdk\inc\winuser.h
+FILE 580 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 581 f:\sp\public\sdk\inc\winnls.h
+FILE 582 f:\sp\public\sdk\inc\guiddef.h
+FILE 583 f:\sp\public\sdk\inc\windows.h
+FILE 584 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 585 f:\sp\public\sdk\inc\specstrings.h
+FILE 586 f:\sp\public\sdk\inc\basetsd.h
+FILE 587 f:\sp\public\sdk\inc\stralign.h
+FILE 588 f:\sp\public\sdk\inc\tvout.h
+FILE 589 f:\sp\public\sdk\inc\winsvc.h
+FILE 590 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 591 f:\sp\public\sdk\inc\wingdi.h
+FILE 592 f:\sp\public\sdk\inc\pshpack4.h
+FILE 593 f:\sp\public\sdk\inc\wincon.h
+FILE 594 f:\sp\public\sdk\inc\imm.h
+FILE 595 f:\sp\public\sdk\inc\winbase.h
+FILE 596 f:\sp\public\sdk\inc\wingdi.h
+FILE 597 f:\sp\public\sdk\inc\winver.h
+FILE 598 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 599 f:\sp\public\sdk\inc\windows.h
+FILE 600 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 601 f:\sp\public\sdk\inc\pshpack2.h
+FILE 602 f:\sp\public\sdk\inc\reason.h
+FILE 603 f:\sp\vctools\crt_bld\self_x86\crt\src\strnicol.c
+FILE 604 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 605 f:\sp\public\sdk\inc\specstrings.h
+FILE 606 f:\sp\public\sdk\inc\basetsd.h
+FILE 607 f:\sp\public\sdk\inc\pshpack4.h
+FILE 608 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 609 f:\sp\public\sdk\inc\winnetwk.h
+FILE 610 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 611 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 612 f:\sp\public\sdk\inc\stralign.h
+FILE 613 f:\sp\public\sdk\inc\poppack.h
+FILE 614 f:\sp\public\sdk\inc\winsvc.h
+FILE 615 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 616 f:\sp\public\sdk\inc\windef.h
+FILE 617 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 618 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 619 f:\sp\public\sdk\inc\winuser.h
+FILE 620 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 621 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 622 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 623 f:\sp\public\sdk\inc\mcx.h
+FILE 624 f:\sp\public\sdk\inc\pshpack8.h
+FILE 625 f:\sp\public\sdk\inc\guiddef.h
+FILE 626 f:\sp\public\sdk\inc\winnt.h
+FILE 627 f:\sp\public\sdk\inc\winnls.h
+FILE 628 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 629 f:\sp\public\sdk\inc\pshpack1.h
+FILE 630 f:\sp\public\sdk\inc\winerror.h
+FILE 631 f:\sp\public\sdk\inc\winreg.h
+FILE 632 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 633 f:\sp\public\sdk\inc\ddbanned.h
+FILE 634 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 635 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 636 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 637 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 638 f:\sp\public\sdk\inc\tvout.h
+FILE 639 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 640 f:\sp\public\sdk\inc\mcx.h
+FILE 641 f:\sp\public\sdk\inc\pshpack8.h
+FILE 642 f:\sp\public\sdk\inc\winnt.h
+FILE 643 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 644 f:\sp\public\sdk\inc\specstrings.h
+FILE 645 f:\sp\public\sdk\inc\basetsd.h
+FILE 646 f:\sp\public\sdk\inc\winnls.h
+FILE 647 f:\sp\public\sdk\inc\pshpack1.h
+FILE 648 f:\sp\public\sdk\inc\winerror.h
+FILE 649 f:\sp\public\sdk\inc\winreg.h
+FILE 650 f:\sp\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 651 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 652 f:\sp\public\sdk\inc\tvout.h
+FILE 653 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 654 f:\sp\public\sdk\inc\wincon.h
+FILE 655 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 656 f:\sp\public\sdk\inc\imm.h
+FILE 657 f:\sp\public\sdk\inc\guiddef.h
+FILE 658 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 659 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 660 f:\sp\public\sdk\inc\winbase.h
+FILE 661 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 662 f:\sp\public\sdk\inc\wingdi.h
+FILE 663 f:\sp\public\sdk\inc\windows.h
+FILE 664 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 665 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 666 f:\sp\public\sdk\inc\winver.h
+FILE 667 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 668 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 669 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 670 f:\sp\public\sdk\inc\pshpack2.h
+FILE 671 f:\sp\public\sdk\inc\reason.h
+FILE 672 f:\sp\public\sdk\inc\pshpack4.h
+FILE 673 f:\sp\public\sdk\inc\winnetwk.h
+FILE 674 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 675 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 676 f:\sp\public\sdk\inc\stralign.h
+FILE 677 f:\sp\public\sdk\inc\windef.h
+FILE 678 f:\sp\public\sdk\inc\poppack.h
+FILE 679 f:\sp\public\sdk\inc\winsvc.h
+FILE 680 f:\sp\public\sdk\inc\ddbanned.h
+FILE 681 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 682 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 683 f:\sp\public\sdk\inc\winuser.h
+FILE 684 f:\sp\public\sdk\inc\mcx.h
+FILE 685 f:\sp\public\sdk\inc\pshpack8.h
+FILE 686 f:\sp\public\sdk\inc\winnt.h
+FILE 687 f:\sp\public\sdk\inc\specstrings.h
+FILE 688 f:\sp\public\sdk\inc\basetsd.h
+FILE 689 f:\sp\public\sdk\inc\winnls.h
+FILE 690 f:\sp\public\sdk\inc\pshpack1.h
+FILE 691 f:\sp\public\sdk\inc\winerror.h
+FILE 692 f:\sp\public\sdk\inc\winreg.h
+FILE 693 f:\sp\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 694 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 695 f:\sp\public\sdk\inc\tvout.h
+FILE 696 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 697 f:\sp\public\sdk\inc\wincon.h
+FILE 698 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 699 f:\sp\public\sdk\inc\imm.h
+FILE 700 f:\sp\public\sdk\inc\guiddef.h
+FILE 701 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 702 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 703 f:\sp\public\sdk\inc\winbase.h
+FILE 704 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 705 f:\sp\public\sdk\inc\wingdi.h
+FILE 706 f:\sp\public\sdk\inc\windows.h
+FILE 707 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 708 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 709 f:\sp\public\sdk\inc\winver.h
+FILE 710 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 711 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 712 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 713 f:\sp\public\sdk\inc\pshpack2.h
+FILE 714 f:\sp\public\sdk\inc\reason.h
+FILE 715 f:\sp\public\sdk\inc\pshpack4.h
+FILE 716 f:\sp\public\sdk\inc\winnetwk.h
+FILE 717 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 718 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 719 f:\sp\public\sdk\inc\stralign.h
+FILE 720 f:\sp\public\sdk\inc\windef.h
+FILE 721 f:\sp\public\sdk\inc\poppack.h
+FILE 722 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 723 f:\sp\public\sdk\inc\winsvc.h
+FILE 724 f:\sp\public\sdk\inc\ddbanned.h
+FILE 725 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 726 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 727 f:\sp\public\sdk\inc\winuser.h
+FILE 728 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 729 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 730 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 731 f:\sp\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 732 f:\sp\public\sdk\inc\ddbanned.h
+FILE 733 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 734 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 735 f:\sp\public\sdk\inc\winnt.h
+FILE 736 f:\sp\public\sdk\inc\pshpack4.h
+FILE 737 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 738 f:\sp\public\sdk\inc\poppack.h
+FILE 739 f:\sp\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 740 f:\sp\public\sdk\inc\winnetwk.h
+FILE 741 f:\sp\public\sdk\inc\imm.h
+FILE 742 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 743 f:\sp\public\sdk\inc\pshpack1.h
+FILE 744 f:\sp\public\sdk\inc\winver.h
+FILE 745 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 746 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 747 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 748 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 749 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 750 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 751 f:\sp\public\sdk\inc\guiddef.h
+FILE 752 f:\sp\public\sdk\inc\windows.h
+FILE 753 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 754 f:\sp\public\sdk\inc\specstrings.h
+FILE 755 f:\sp\public\sdk\inc\basetsd.h
+FILE 756 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 757 f:\sp\public\sdk\inc\winreg.h
+FILE 758 f:\sp\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 759 f:\sp\public\sdk\inc\winbase.h
+FILE 760 f:\sp\public\sdk\inc\winerror.h
+FILE 761 f:\sp\public\sdk\inc\pshpack8.h
+FILE 762 f:\sp\public\sdk\inc\reason.h
+FILE 763 f:\sp\public\sdk\inc\wincon.h
+FILE 764 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 765 f:\sp\public\sdk\inc\ddbanned.h
+FILE 766 f:\sp\public\sdk\inc\windef.h
+FILE 767 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 768 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 769 f:\sp\public\sdk\inc\pshpack2.h
+FILE 770 f:\sp\public\sdk\inc\mcx.h
+FILE 771 f:\sp\public\sdk\inc\winuser.h
+FILE 772 f:\sp\public\sdk\inc\winnls.h
+FILE 773 f:\sp\public\sdk\inc\stralign.h
+FILE 774 f:\sp\public\sdk\inc\tvout.h
+FILE 775 f:\sp\public\sdk\inc\winsvc.h
+FILE 776 f:\sp\public\sdk\inc\wingdi.h
+FILE 777 f:\sp\public\sdk\inc\winnt.h
+FILE 778 f:\sp\public\sdk\inc\pshpack4.h
+FILE 779 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 780 f:\sp\public\sdk\inc\poppack.h
+FILE 781 f:\sp\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 782 f:\sp\public\sdk\inc\winnetwk.h
+FILE 783 f:\sp\public\sdk\inc\imm.h
+FILE 784 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 785 f:\sp\public\sdk\inc\pshpack1.h
+FILE 786 f:\sp\public\sdk\inc\winver.h
+FILE 787 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 788 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 789 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 790 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 791 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 792 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 793 f:\sp\public\sdk\inc\guiddef.h
+FILE 794 f:\sp\public\sdk\inc\windows.h
+FILE 795 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 796 f:\sp\public\sdk\inc\specstrings.h
+FILE 797 f:\sp\public\sdk\inc\basetsd.h
+FILE 798 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 799 f:\sp\public\sdk\inc\winreg.h
+FILE 800 f:\sp\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 801 f:\sp\public\sdk\inc\winbase.h
+FILE 802 f:\sp\public\sdk\inc\winerror.h
+FILE 803 f:\sp\public\sdk\inc\pshpack8.h
+FILE 804 f:\sp\public\sdk\inc\reason.h
+FILE 805 f:\sp\public\sdk\inc\wincon.h
+FILE 806 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 807 f:\sp\public\sdk\inc\ddbanned.h
+FILE 808 f:\sp\public\sdk\inc\windef.h
+FILE 809 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 810 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 811 f:\sp\public\sdk\inc\pshpack2.h
+FILE 812 f:\sp\public\sdk\inc\mcx.h
+FILE 813 f:\sp\public\sdk\inc\winuser.h
+FILE 814 f:\sp\public\sdk\inc\winnls.h
+FILE 815 f:\sp\public\sdk\inc\stralign.h
+FILE 816 f:\sp\public\sdk\inc\tvout.h
+FILE 817 f:\sp\public\sdk\inc\winsvc.h
+FILE 818 f:\sp\public\sdk\inc\wingdi.h
+FILE 819 f:\sp\public\sdk\inc\winnt.h
+FILE 820 f:\sp\public\sdk\inc\pshpack4.h
+FILE 821 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 822 f:\sp\public\sdk\inc\poppack.h
+FILE 823 f:\sp\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 824 f:\sp\public\sdk\inc\winnetwk.h
+FILE 825 f:\sp\public\sdk\inc\imm.h
+FILE 826 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 827 f:\sp\public\sdk\inc\pshpack1.h
+FILE 828 f:\sp\public\sdk\inc\winver.h
+FILE 829 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 830 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 831 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 832 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 833 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 834 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 835 f:\sp\public\sdk\inc\guiddef.h
+FILE 836 f:\sp\public\sdk\inc\windows.h
+FILE 837 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 838 f:\sp\public\sdk\inc\specstrings.h
+FILE 839 f:\sp\public\sdk\inc\basetsd.h
+FILE 840 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 841 f:\sp\public\sdk\inc\winreg.h
+FILE 842 f:\sp\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 843 f:\sp\public\sdk\inc\winbase.h
+FILE 844 f:\sp\public\sdk\inc\winerror.h
+FILE 845 f:\sp\public\sdk\inc\pshpack8.h
+FILE 846 f:\sp\public\sdk\inc\reason.h
+FILE 847 f:\sp\public\sdk\inc\wincon.h
+FILE 848 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 849 f:\sp\public\sdk\inc\ddbanned.h
+FILE 850 f:\sp\public\sdk\inc\windef.h
+FILE 851 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 852 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 853 f:\sp\public\sdk\inc\pshpack2.h
+FILE 854 f:\sp\public\sdk\inc\mcx.h
+FILE 855 f:\sp\public\sdk\inc\winuser.h
+FILE 856 f:\sp\public\sdk\inc\winnls.h
+FILE 857 f:\sp\public\sdk\inc\stralign.h
+FILE 858 f:\sp\public\sdk\inc\tvout.h
+FILE 859 f:\sp\public\sdk\inc\winsvc.h
+FILE 860 f:\sp\public\sdk\inc\wingdi.h
+FILE 861 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 862 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 863 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 864 f:\sp\vctools\crt_bld\self_x86\crt\src\strlen_s.c
+FILE 865 f:\sp\public\sdk\inc\ddbanned.h
+FILE 866 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 867 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 868 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strpbrk.asm
+FILE 869 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 870 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 871 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\_strnicm.asm
+FILE 872 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 873 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 874 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 875 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 876 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 877 f:\sp\public\sdk\inc\ddbanned.h
+FILE 878 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 879 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 880 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strlen.asm
+FILE 881 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 882 f:\sp\public\sdk\inc\pshpack2.h
+FILE 883 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 884 f:\sp\public\sdk\inc\mcx.h
+FILE 885 f:\sp\public\sdk\inc\winuser.h
+FILE 886 f:\sp\public\sdk\inc\winnls.h
+FILE 887 f:\sp\public\sdk\inc\stralign.h
+FILE 888 f:\sp\public\sdk\inc\tvout.h
+FILE 889 f:\sp\public\sdk\inc\winsvc.h
+FILE 890 f:\sp\public\sdk\inc\wingdi.h
+FILE 891 f:\sp\public\sdk\inc\winnt.h
+FILE 892 f:\sp\public\sdk\inc\pshpack4.h
+FILE 893 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 894 f:\sp\public\sdk\inc\poppack.h
+FILE 895 f:\sp\public\sdk\inc\winnetwk.h
+FILE 896 f:\sp\public\sdk\inc\imm.h
+FILE 897 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 898 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 899 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 900 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 901 f:\sp\vctools\crt_bld\self_x86\crt\src\strdup.c
+FILE 902 f:\sp\public\sdk\inc\pshpack1.h
+FILE 903 f:\sp\public\sdk\inc\winver.h
+FILE 904 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 905 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 906 f:\sp\public\sdk\inc\guiddef.h
+FILE 907 f:\sp\public\sdk\inc\windows.h
+FILE 908 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 909 f:\sp\public\sdk\inc\specstrings.h
+FILE 910 f:\sp\public\sdk\inc\basetsd.h
+FILE 911 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 912 f:\sp\public\sdk\inc\winreg.h
+FILE 913 f:\sp\public\sdk\inc\ddbanned.h
+FILE 914 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 915 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 916 f:\sp\public\sdk\inc\winbase.h
+FILE 917 f:\sp\public\sdk\inc\winerror.h
+FILE 918 f:\sp\public\sdk\inc\pshpack8.h
+FILE 919 f:\sp\public\sdk\inc\reason.h
+FILE 920 f:\sp\public\sdk\inc\wincon.h
+FILE 921 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 922 f:\sp\public\sdk\inc\windef.h
+FILE 923 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strcspn.asm
+FILE 924 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 925 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 926 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strcmp.asm
+FILE 927 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 928 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strchr.asm
+FILE 929 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 930 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 931 f:\sp\public\sdk\inc\ddbanned.h
+FILE 932 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 933 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 934 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memset.asm
+FILE 935 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 936 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 937 f:\sp\public\sdk\inc\poppack.h
+FILE 938 f:\sp\public\sdk\inc\winnetwk.h
+FILE 939 f:\sp\public\sdk\inc\imm.h
+FILE 940 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 941 f:\sp\public\sdk\inc\pshpack1.h
+FILE 942 f:\sp\public\sdk\inc\winver.h
+FILE 943 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 944 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 945 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 946 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 947 f:\sp\public\sdk\inc\guiddef.h
+FILE 948 f:\sp\public\sdk\inc\windows.h
+FILE 949 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 950 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 951 f:\sp\public\sdk\inc\specstrings.h
+FILE 952 f:\sp\public\sdk\inc\basetsd.h
+FILE 953 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 954 f:\sp\public\sdk\inc\winreg.h
+FILE 955 f:\sp\vctools\crt_bld\self_x86\crt\src\memmove_s.c
+FILE 956 f:\sp\public\sdk\inc\winbase.h
+FILE 957 f:\sp\public\sdk\inc\winerror.h
+FILE 958 f:\sp\public\sdk\inc\pshpack8.h
+FILE 959 f:\sp\public\sdk\inc\reason.h
+FILE 960 f:\sp\public\sdk\inc\wincon.h
+FILE 961 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 962 f:\sp\public\sdk\inc\windef.h
+FILE 963 f:\sp\public\sdk\inc\ddbanned.h
+FILE 964 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 965 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 966 f:\sp\public\sdk\inc\pshpack2.h
+FILE 967 f:\sp\public\sdk\inc\mcx.h
+FILE 968 f:\sp\public\sdk\inc\winuser.h
+FILE 969 f:\sp\public\sdk\inc\winnls.h
+FILE 970 f:\sp\public\sdk\inc\stralign.h
+FILE 971 f:\sp\public\sdk\inc\tvout.h
+FILE 972 f:\sp\public\sdk\inc\winsvc.h
+FILE 973 f:\sp\public\sdk\inc\wingdi.h
+FILE 974 f:\sp\public\sdk\inc\winnt.h
+FILE 975 f:\sp\public\sdk\inc\pshpack4.h
+FILE 976 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memmove.asm
+FILE 977 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\MEMCPY.ASM
+FILE 978 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 979 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 980 f:\sp\public\sdk\inc\ddbanned.h
+FILE 981 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 982 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 983 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 984 f:\sp\public\sdk\inc\poppack.h
+FILE 985 f:\sp\public\sdk\inc\winnetwk.h
+FILE 986 f:\sp\public\sdk\inc\imm.h
+FILE 987 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 988 f:\sp\public\sdk\inc\pshpack1.h
+FILE 989 f:\sp\public\sdk\inc\winver.h
+FILE 990 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 991 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 992 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 993 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 994 f:\sp\public\sdk\inc\guiddef.h
+FILE 995 f:\sp\public\sdk\inc\windows.h
+FILE 996 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 997 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 998 f:\sp\public\sdk\inc\specstrings.h
+FILE 999 f:\sp\public\sdk\inc\basetsd.h
+FILE 1000 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1001 f:\sp\public\sdk\inc\winreg.h
+FILE 1002 f:\sp\vctools\crt_bld\self_x86\crt\src\memcpy_s.c
+FILE 1003 f:\sp\public\sdk\inc\winbase.h
+FILE 1004 f:\sp\public\sdk\inc\winerror.h
+FILE 1005 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1006 f:\sp\public\sdk\inc\reason.h
+FILE 1007 f:\sp\public\sdk\inc\wincon.h
+FILE 1008 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1009 f:\sp\public\sdk\inc\windef.h
+FILE 1010 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1011 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1012 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1013 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1014 f:\sp\public\sdk\inc\mcx.h
+FILE 1015 f:\sp\public\sdk\inc\winuser.h
+FILE 1016 f:\sp\public\sdk\inc\winnls.h
+FILE 1017 f:\sp\public\sdk\inc\stralign.h
+FILE 1018 f:\sp\public\sdk\inc\tvout.h
+FILE 1019 f:\sp\public\sdk\inc\winsvc.h
+FILE 1020 f:\sp\public\sdk\inc\wingdi.h
+FILE 1021 f:\sp\public\sdk\inc\winnt.h
+FILE 1022 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1023 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 1024 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1025 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 1026 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 1027 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memcpy.asm
+FILE 1028 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 1029 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1030 f:\sp\public\sdk\inc\wincon.h
+FILE 1031 f:\sp\public\sdk\inc\imm.h
+FILE 1032 f:\sp\public\sdk\inc\winbase.h
+FILE 1033 f:\sp\public\sdk\inc\wingdi.h
+FILE 1034 f:\sp\public\sdk\inc\winver.h
+FILE 1035 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1036 f:\sp\public\sdk\inc\windows.h
+FILE 1037 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1038 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1039 f:\sp\public\sdk\inc\reason.h
+FILE 1040 f:\sp\vctools\crt_bld\self_x86\crt\src\woutputs.c
+FILE 1041 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1042 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1043 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1044 f:\sp\public\sdk\inc\specstrings.h
+FILE 1045 f:\sp\public\sdk\inc\basetsd.h
+FILE 1046 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1047 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1048 f:\sp\public\sdk\inc\stralign.h
+FILE 1049 f:\sp\public\sdk\inc\poppack.h
+FILE 1050 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1051 f:\sp\public\sdk\inc\winsvc.h
+FILE 1052 f:\sp\public\sdk\inc\windef.h
+FILE 1053 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1054 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1055 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1056 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1057 f:\sp\public\sdk\inc\winuser.h
+FILE 1058 f:\sp\public\sdk\inc\mcx.h
+FILE 1059 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1060 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1061 f:\sp\public\sdk\inc\guiddef.h
+FILE 1062 f:\sp\public\sdk\inc\winnt.h
+FILE 1063 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1064 f:\sp\public\sdk\inc\winnls.h
+FILE 1065 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1066 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1067 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1068 f:\sp\public\sdk\inc\winerror.h
+FILE 1069 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1070 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1071 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1072 f:\sp\public\sdk\inc\winreg.h
+FILE 1073 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1074 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1075 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1076 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1077 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1078 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1079 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1080 f:\sp\public\sdk\inc\tvout.h
+FILE 1081 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1082 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1083 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1084 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1085 f:\sp\public\sdk\inc\wincon.h
+FILE 1086 f:\sp\public\sdk\inc\imm.h
+FILE 1087 f:\sp\public\sdk\inc\winbase.h
+FILE 1088 f:\sp\public\sdk\inc\wingdi.h
+FILE 1089 f:\sp\public\sdk\inc\winver.h
+FILE 1090 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1091 f:\sp\public\sdk\inc\windows.h
+FILE 1092 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1093 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1094 f:\sp\public\sdk\inc\reason.h
+FILE 1095 f:\sp\vctools\crt_bld\self_x86\crt\src\woutputp.c
+FILE 1096 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1097 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1098 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1099 f:\sp\public\sdk\inc\specstrings.h
+FILE 1100 f:\sp\public\sdk\inc\basetsd.h
+FILE 1101 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1102 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1103 f:\sp\public\sdk\inc\stralign.h
+FILE 1104 f:\sp\public\sdk\inc\poppack.h
+FILE 1105 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1106 f:\sp\public\sdk\inc\winsvc.h
+FILE 1107 f:\sp\public\sdk\inc\windef.h
+FILE 1108 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1109 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1110 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1111 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1112 f:\sp\public\sdk\inc\winuser.h
+FILE 1113 f:\sp\public\sdk\inc\mcx.h
+FILE 1114 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1115 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1116 f:\sp\public\sdk\inc\guiddef.h
+FILE 1117 f:\sp\public\sdk\inc\winnt.h
+FILE 1118 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1119 f:\sp\public\sdk\inc\winnls.h
+FILE 1120 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1121 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1122 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1123 f:\sp\public\sdk\inc\winerror.h
+FILE 1124 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1125 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1126 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1127 f:\sp\public\sdk\inc\winreg.h
+FILE 1128 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1129 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1130 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1131 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1132 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1133 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1134 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1135 f:\sp\public\sdk\inc\tvout.h
+FILE 1136 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1137 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1138 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1139 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1140 f:\sp\public\sdk\inc\wincon.h
+FILE 1141 f:\sp\public\sdk\inc\imm.h
+FILE 1142 f:\sp\public\sdk\inc\winbase.h
+FILE 1143 f:\sp\public\sdk\inc\wingdi.h
+FILE 1144 f:\sp\public\sdk\inc\winver.h
+FILE 1145 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1146 f:\sp\public\sdk\inc\windows.h
+FILE 1147 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1148 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1149 f:\sp\public\sdk\inc\reason.h
+FILE 1150 f:\sp\vctools\crt_bld\self_x86\crt\src\woutput.c
+FILE 1151 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1152 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1153 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1154 f:\sp\public\sdk\inc\specstrings.h
+FILE 1155 f:\sp\public\sdk\inc\basetsd.h
+FILE 1156 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1157 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1158 f:\sp\public\sdk\inc\stralign.h
+FILE 1159 f:\sp\public\sdk\inc\poppack.h
+FILE 1160 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1161 f:\sp\public\sdk\inc\winsvc.h
+FILE 1162 f:\sp\public\sdk\inc\windef.h
+FILE 1163 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1164 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1165 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1166 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1167 f:\sp\public\sdk\inc\winuser.h
+FILE 1168 f:\sp\public\sdk\inc\mcx.h
+FILE 1169 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1170 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1171 f:\sp\public\sdk\inc\guiddef.h
+FILE 1172 f:\sp\public\sdk\inc\winnt.h
+FILE 1173 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1174 f:\sp\public\sdk\inc\winnls.h
+FILE 1175 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1176 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1177 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1178 f:\sp\public\sdk\inc\winerror.h
+FILE 1179 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1180 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1181 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1182 f:\sp\public\sdk\inc\winreg.h
+FILE 1183 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1184 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1185 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1186 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1187 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1188 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1189 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1190 f:\sp\public\sdk\inc\tvout.h
+FILE 1191 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1192 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1193 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1194 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1195 f:\sp\public\sdk\inc\wincon.h
+FILE 1196 f:\sp\public\sdk\inc\imm.h
+FILE 1197 f:\sp\public\sdk\inc\winbase.h
+FILE 1198 f:\sp\public\sdk\inc\wingdi.h
+FILE 1199 f:\sp\public\sdk\inc\winver.h
+FILE 1200 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1201 f:\sp\public\sdk\inc\windows.h
+FILE 1202 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1203 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1204 f:\sp\public\sdk\inc\reason.h
+FILE 1205 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1206 f:\sp\vctools\crt_bld\self_x86\crt\src\outputs.c
+FILE 1207 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1208 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1209 f:\sp\public\sdk\inc\specstrings.h
+FILE 1210 f:\sp\public\sdk\inc\basetsd.h
+FILE 1211 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1212 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1213 f:\sp\public\sdk\inc\stralign.h
+FILE 1214 f:\sp\public\sdk\inc\poppack.h
+FILE 1215 f:\sp\public\sdk\inc\winsvc.h
+FILE 1216 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1217 f:\sp\public\sdk\inc\windef.h
+FILE 1218 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1219 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1220 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1221 f:\sp\public\sdk\inc\winuser.h
+FILE 1222 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1223 f:\sp\public\sdk\inc\mcx.h
+FILE 1224 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1225 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1226 f:\sp\public\sdk\inc\guiddef.h
+FILE 1227 f:\sp\public\sdk\inc\winnt.h
+FILE 1228 f:\sp\public\sdk\inc\winnls.h
+FILE 1229 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1230 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1231 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1232 f:\sp\public\sdk\inc\winerror.h
+FILE 1233 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1234 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1235 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1236 f:\sp\public\sdk\inc\winreg.h
+FILE 1237 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1238 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1239 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1240 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1241 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1242 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1243 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1244 f:\sp\public\sdk\inc\tvout.h
+FILE 1245 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1246 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1247 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1248 f:\sp\public\sdk\inc\wincon.h
+FILE 1249 f:\sp\public\sdk\inc\imm.h
+FILE 1250 f:\sp\public\sdk\inc\winbase.h
+FILE 1251 f:\sp\public\sdk\inc\wingdi.h
+FILE 1252 f:\sp\public\sdk\inc\winver.h
+FILE 1253 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1254 f:\sp\public\sdk\inc\windows.h
+FILE 1255 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1256 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1257 f:\sp\public\sdk\inc\reason.h
+FILE 1258 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1259 f:\sp\vctools\crt_bld\self_x86\crt\src\outputp.c
+FILE 1260 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1261 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1262 f:\sp\public\sdk\inc\specstrings.h
+FILE 1263 f:\sp\public\sdk\inc\basetsd.h
+FILE 1264 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1265 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1266 f:\sp\public\sdk\inc\stralign.h
+FILE 1267 f:\sp\public\sdk\inc\poppack.h
+FILE 1268 f:\sp\public\sdk\inc\winsvc.h
+FILE 1269 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1270 f:\sp\public\sdk\inc\windef.h
+FILE 1271 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1272 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1274 f:\sp\public\sdk\inc\winuser.h
+FILE 1275 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1276 f:\sp\public\sdk\inc\mcx.h
+FILE 1277 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1278 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1279 f:\sp\public\sdk\inc\guiddef.h
+FILE 1280 f:\sp\public\sdk\inc\winnt.h
+FILE 1281 f:\sp\public\sdk\inc\winnls.h
+FILE 1282 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1283 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1284 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1285 f:\sp\public\sdk\inc\winerror.h
+FILE 1286 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1287 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1288 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1289 f:\sp\public\sdk\inc\winreg.h
+FILE 1290 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1291 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1292 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1293 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1294 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1295 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1296 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1297 f:\sp\public\sdk\inc\tvout.h
+FILE 1298 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1299 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1300 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1301 f:\sp\public\sdk\inc\wincon.h
+FILE 1302 f:\sp\public\sdk\inc\imm.h
+FILE 1303 f:\sp\public\sdk\inc\winbase.h
+FILE 1304 f:\sp\public\sdk\inc\wingdi.h
+FILE 1305 f:\sp\public\sdk\inc\winver.h
+FILE 1306 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1307 f:\sp\public\sdk\inc\windows.h
+FILE 1308 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1309 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1310 f:\sp\public\sdk\inc\reason.h
+FILE 1311 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1312 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1313 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1314 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1315 f:\sp\public\sdk\inc\specstrings.h
+FILE 1316 f:\sp\public\sdk\inc\basetsd.h
+FILE 1317 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1318 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1319 f:\sp\public\sdk\inc\stralign.h
+FILE 1320 f:\sp\public\sdk\inc\poppack.h
+FILE 1321 f:\sp\public\sdk\inc\winsvc.h
+FILE 1322 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1323 f:\sp\public\sdk\inc\windef.h
+FILE 1324 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1325 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1326 f:\sp\public\sdk\inc\winuser.h
+FILE 1327 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1328 f:\sp\public\sdk\inc\mcx.h
+FILE 1329 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1330 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1331 f:\sp\public\sdk\inc\guiddef.h
+FILE 1332 f:\sp\public\sdk\inc\winnt.h
+FILE 1333 f:\sp\public\sdk\inc\winnls.h
+FILE 1334 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1335 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1336 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1337 f:\sp\public\sdk\inc\winerror.h
+FILE 1338 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1339 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1340 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1341 f:\sp\public\sdk\inc\winreg.h
+FILE 1342 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1343 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1344 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1345 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1346 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1347 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1348 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1349 f:\sp\public\sdk\inc\tvout.h
+FILE 1350 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1351 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1352 f:\sp\public\sdk\inc\stralign.h
+FILE 1353 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1354 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1355 f:\sp\public\sdk\inc\tvout.h
+FILE 1356 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1357 f:\sp\public\sdk\inc\windows.h
+FILE 1358 f:\sp\public\sdk\inc\winsvc.h
+FILE 1359 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1360 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1361 f:\sp\public\sdk\inc\wingdi.h
+FILE 1362 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1363 f:\sp\public\sdk\inc\poppack.h
+FILE 1364 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1365 f:\sp\public\sdk\inc\imm.h
+FILE 1366 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1367 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1368 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1369 f:\sp\public\sdk\inc\windef.h
+FILE 1370 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1371 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1372 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1373 f:\sp\public\sdk\inc\winver.h
+FILE 1374 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprnc.c
+FILE 1375 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1376 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1377 f:\sp\public\sdk\inc\winnt.h
+FILE 1378 f:\sp\public\sdk\inc\winreg.h
+FILE 1379 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1380 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprint.c
+FILE 1381 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1382 f:\sp\public\sdk\inc\winbase.h
+FILE 1383 f:\sp\public\sdk\inc\winerror.h
+FILE 1384 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1385 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1386 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1387 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1388 f:\sp\public\sdk\inc\guiddef.h
+FILE 1389 f:\sp\public\sdk\inc\specstrings.h
+FILE 1390 f:\sp\public\sdk\inc\basetsd.h
+FILE 1391 f:\sp\public\sdk\inc\reason.h
+FILE 1392 f:\sp\public\sdk\inc\wincon.h
+FILE 1393 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1394 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1395 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1396 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1397 f:\sp\public\sdk\inc\mcx.h
+FILE 1398 f:\sp\public\sdk\inc\winuser.h
+FILE 1399 f:\sp\public\sdk\inc\winnls.h
+FILE 1400 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1401 f:\sp\public\sdk\inc\winver.h
+FILE 1402 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1403 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1404 f:\sp\public\sdk\inc\winnt.h
+FILE 1405 f:\sp\public\sdk\inc\winreg.h
+FILE 1406 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1407 f:\sp\public\sdk\inc\winbase.h
+FILE 1408 f:\sp\public\sdk\inc\winerror.h
+FILE 1409 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1410 f:\sp\public\sdk\inc\guiddef.h
+FILE 1411 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1412 f:\sp\public\sdk\inc\specstrings.h
+FILE 1413 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1414 f:\sp\public\sdk\inc\basetsd.h
+FILE 1415 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1416 f:\sp\public\sdk\inc\reason.h
+FILE 1417 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1418 f:\sp\public\sdk\inc\wincon.h
+FILE 1419 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1420 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1421 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1422 f:\sp\public\sdk\inc\mcx.h
+FILE 1423 f:\sp\public\sdk\inc\winuser.h
+FILE 1424 f:\sp\public\sdk\inc\winnls.h
+FILE 1425 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprint.c
+FILE 1426 f:\sp\public\sdk\inc\stralign.h
+FILE 1427 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1428 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1429 f:\sp\public\sdk\inc\tvout.h
+FILE 1430 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1431 f:\sp\public\sdk\inc\windows.h
+FILE 1432 f:\sp\public\sdk\inc\winsvc.h
+FILE 1433 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1434 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1435 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1436 f:\sp\public\sdk\inc\wingdi.h
+FILE 1437 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1438 f:\sp\public\sdk\inc\poppack.h
+FILE 1439 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1440 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1441 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1442 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1443 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1444 f:\sp\public\sdk\inc\imm.h
+FILE 1445 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1446 f:\sp\public\sdk\inc\windef.h
+FILE 1447 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1448 f:\sp\public\sdk\inc\windef.h
+FILE 1449 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1450 f:\sp\public\sdk\inc\winver.h
+FILE 1451 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1452 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1453 f:\sp\public\sdk\inc\winnt.h
+FILE 1454 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1455 f:\sp\public\sdk\inc\winreg.h
+FILE 1456 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1457 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1458 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1459 f:\sp\public\sdk\inc\winbase.h
+FILE 1460 f:\sp\public\sdk\inc\winerror.h
+FILE 1461 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1462 f:\sp\vctools\crt_bld\self_x86\crt\src\vfprintf.c
+FILE 1463 f:\sp\public\sdk\inc\reason.h
+FILE 1464 f:\sp\public\sdk\inc\wincon.h
+FILE 1465 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1466 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1467 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1468 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1469 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1470 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1471 f:\sp\public\sdk\inc\mcx.h
+FILE 1472 f:\sp\public\sdk\inc\winuser.h
+FILE 1473 f:\sp\public\sdk\inc\winnls.h
+FILE 1474 f:\sp\public\sdk\inc\guiddef.h
+FILE 1475 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1476 f:\sp\public\sdk\inc\windows.h
+FILE 1477 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1478 f:\sp\public\sdk\inc\specstrings.h
+FILE 1479 f:\sp\public\sdk\inc\basetsd.h
+FILE 1480 f:\sp\public\sdk\inc\stralign.h
+FILE 1481 f:\sp\public\sdk\inc\tvout.h
+FILE 1482 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1483 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1484 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1485 f:\sp\public\sdk\inc\winsvc.h
+FILE 1486 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1487 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1488 f:\sp\public\sdk\inc\wingdi.h
+FILE 1489 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1490 f:\sp\public\sdk\inc\poppack.h
+FILE 1491 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1492 f:\sp\public\sdk\inc\imm.h
+FILE 1493 f:\sp\public\sdk\inc\windef.h
+FILE 1494 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1495 f:\sp\public\sdk\inc\winver.h
+FILE 1496 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1498 f:\sp\public\sdk\inc\winnt.h
+FILE 1499 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1500 f:\sp\public\sdk\inc\winreg.h
+FILE 1501 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1502 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1503 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1504 f:\sp\public\sdk\inc\winbase.h
+FILE 1505 f:\sp\public\sdk\inc\winerror.h
+FILE 1506 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1507 f:\sp\vctools\crt_bld\self_x86\crt\src\vprintf.c
+FILE 1508 f:\sp\public\sdk\inc\reason.h
+FILE 1509 f:\sp\public\sdk\inc\wincon.h
+FILE 1510 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1511 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1513 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1514 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1515 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1516 f:\sp\public\sdk\inc\mcx.h
+FILE 1517 f:\sp\public\sdk\inc\winuser.h
+FILE 1518 f:\sp\public\sdk\inc\winnls.h
+FILE 1519 f:\sp\public\sdk\inc\guiddef.h
+FILE 1520 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1521 f:\sp\public\sdk\inc\windows.h
+FILE 1522 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1523 f:\sp\public\sdk\inc\specstrings.h
+FILE 1524 f:\sp\public\sdk\inc\basetsd.h
+FILE 1525 f:\sp\public\sdk\inc\stralign.h
+FILE 1526 f:\sp\public\sdk\inc\tvout.h
+FILE 1527 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1528 f:\sp\public\sdk\inc\winsvc.h
+FILE 1529 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1530 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1531 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1532 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1533 f:\sp\public\sdk\inc\wingdi.h
+FILE 1534 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1535 f:\sp\public\sdk\inc\poppack.h
+FILE 1536 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1537 f:\sp\public\sdk\inc\imm.h
+FILE 1538 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1539 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1540 f:\sp\public\sdk\inc\winver.h
+FILE 1541 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1542 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1543 f:\sp\public\sdk\inc\winnt.h
+FILE 1544 f:\sp\public\sdk\inc\winreg.h
+FILE 1545 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1546 f:\sp\public\sdk\inc\winbase.h
+FILE 1547 f:\sp\public\sdk\inc\winerror.h
+FILE 1548 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1549 f:\sp\public\sdk\inc\guiddef.h
+FILE 1550 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1551 f:\sp\public\sdk\inc\specstrings.h
+FILE 1552 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1553 f:\sp\public\sdk\inc\basetsd.h
+FILE 1554 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1555 f:\sp\public\sdk\inc\reason.h
+FILE 1556 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1557 f:\sp\public\sdk\inc\wincon.h
+FILE 1558 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1559 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1560 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1561 f:\sp\public\sdk\inc\mcx.h
+FILE 1562 f:\sp\public\sdk\inc\winuser.h
+FILE 1563 f:\sp\public\sdk\inc\winnls.h
+FILE 1564 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.c
+FILE 1565 f:\sp\public\sdk\inc\stralign.h
+FILE 1566 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1567 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1568 f:\sp\public\sdk\inc\tvout.h
+FILE 1569 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1570 f:\sp\public\sdk\inc\windows.h
+FILE 1571 f:\sp\public\sdk\inc\winsvc.h
+FILE 1572 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1573 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1574 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1575 f:\sp\public\sdk\inc\wingdi.h
+FILE 1576 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1577 f:\sp\public\sdk\inc\poppack.h
+FILE 1578 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1579 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1580 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1581 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1582 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1583 f:\sp\public\sdk\inc\imm.h
+FILE 1584 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1585 f:\sp\public\sdk\inc\windef.h
+FILE 1586 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1587 f:\sp\public\sdk\inc\windef.h
+FILE 1588 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1589 f:\sp\public\sdk\inc\winver.h
+FILE 1590 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1591 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1592 f:\sp\public\sdk\inc\winnt.h
+FILE 1593 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1594 f:\sp\public\sdk\inc\winreg.h
+FILE 1595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1596 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1597 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1598 f:\sp\public\sdk\inc\winbase.h
+FILE 1599 f:\sp\public\sdk\inc\winerror.h
+FILE 1600 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1601 f:\sp\vctools\crt_bld\self_x86\crt\src\printf.c
+FILE 1602 f:\sp\public\sdk\inc\reason.h
+FILE 1603 f:\sp\public\sdk\inc\wincon.h
+FILE 1604 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1605 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1606 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1607 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1608 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1609 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1610 f:\sp\public\sdk\inc\mcx.h
+FILE 1611 f:\sp\public\sdk\inc\winuser.h
+FILE 1612 f:\sp\public\sdk\inc\winnls.h
+FILE 1613 f:\sp\public\sdk\inc\guiddef.h
+FILE 1614 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1615 f:\sp\public\sdk\inc\windows.h
+FILE 1616 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1617 f:\sp\public\sdk\inc\specstrings.h
+FILE 1618 f:\sp\public\sdk\inc\basetsd.h
+FILE 1619 f:\sp\public\sdk\inc\stralign.h
+FILE 1620 f:\sp\public\sdk\inc\tvout.h
+FILE 1621 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1622 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1623 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1624 f:\sp\public\sdk\inc\winsvc.h
+FILE 1625 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1626 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1627 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 1628 f:\sp\public\sdk\inc\wingdi.h
+FILE 1629 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1630 f:\sp\public\sdk\inc\poppack.h
+FILE 1631 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1632 f:\sp\public\sdk\inc\imm.h
+FILE 1633 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1634 f:\sp\public\sdk\inc\windef.h
+FILE 1635 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1636 f:\sp\public\sdk\inc\winver.h
+FILE 1637 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1638 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1639 f:\sp\public\sdk\inc\winnt.h
+FILE 1640 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1641 f:\sp\public\sdk\inc\winreg.h
+FILE 1642 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1643 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1644 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1645 f:\sp\public\sdk\inc\winbase.h
+FILE 1646 f:\sp\public\sdk\inc\winerror.h
+FILE 1647 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1648 f:\sp\vctools\crt_bld\self_x86\crt\src\fprintf.c
+FILE 1649 f:\sp\public\sdk\inc\reason.h
+FILE 1650 f:\sp\public\sdk\inc\wincon.h
+FILE 1651 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1652 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1653 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1654 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1655 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1656 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1657 f:\sp\public\sdk\inc\mcx.h
+FILE 1658 f:\sp\public\sdk\inc\winuser.h
+FILE 1659 f:\sp\public\sdk\inc\winnls.h
+FILE 1660 f:\sp\public\sdk\inc\guiddef.h
+FILE 1661 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1662 f:\sp\public\sdk\inc\windows.h
+FILE 1663 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1664 f:\sp\public\sdk\inc\specstrings.h
+FILE 1665 f:\sp\public\sdk\inc\basetsd.h
+FILE 1666 f:\sp\public\sdk\inc\stralign.h
+FILE 1667 f:\sp\public\sdk\inc\tvout.h
+FILE 1668 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1669 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1670 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1671 f:\sp\public\sdk\inc\winsvc.h
+FILE 1672 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1673 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1674 f:\sp\public\sdk\inc\wingdi.h
+FILE 1675 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1676 f:\sp\public\sdk\inc\poppack.h
+FILE 1677 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1678 f:\sp\public\sdk\inc\imm.h
+FILE 1679 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1680 f:\sp\public\sdk\inc\winver.h
+FILE 1681 f:\sp\public\sdk\inc\winnt.h
+FILE 1682 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1683 f:\sp\public\sdk\inc\winreg.h
+FILE 1684 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1685 f:\sp\public\sdk\inc\winbase.h
+FILE 1686 f:\sp\public\sdk\inc\winerror.h
+FILE 1687 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1688 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1689 f:\sp\public\sdk\inc\reason.h
+FILE 1690 f:\sp\public\sdk\inc\wincon.h
+FILE 1691 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1692 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1693 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1694 f:\sp\public\sdk\inc\mcx.h
+FILE 1695 f:\sp\public\sdk\inc\winuser.h
+FILE 1696 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1697 f:\sp\public\sdk\inc\winnls.h
+FILE 1698 f:\sp\public\sdk\inc\guiddef.h
+FILE 1699 f:\sp\public\sdk\inc\windows.h
+FILE 1700 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1701 f:\sp\public\sdk\inc\specstrings.h
+FILE 1702 f:\sp\public\sdk\inc\basetsd.h
+FILE 1703 f:\sp\public\sdk\inc\stralign.h
+FILE 1704 f:\sp\vctools\crt_bld\self_x86\crt\src\fflush.c
+FILE 1705 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1706 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1707 f:\sp\public\sdk\inc\tvout.h
+FILE 1708 f:\sp\public\sdk\inc\winsvc.h
+FILE 1709 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1710 f:\sp\public\sdk\inc\wingdi.h
+FILE 1711 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1712 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1713 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1714 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1715 f:\sp\public\sdk\inc\poppack.h
+FILE 1716 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1717 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1718 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1719 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1720 f:\sp\public\sdk\inc\imm.h
+FILE 1721 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1722 f:\sp\public\sdk\inc\windef.h
+FILE 1723 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1724 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1725 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1726 f:\sp\public\sdk\inc\reason.h
+FILE 1727 f:\sp\public\sdk\inc\wincon.h
+FILE 1728 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1729 f:\sp\public\sdk\inc\mcx.h
+FILE 1730 f:\sp\public\sdk\inc\winuser.h
+FILE 1731 f:\sp\public\sdk\inc\winnls.h
+FILE 1732 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1733 f:\sp\public\sdk\inc\windef.h
+FILE 1734 f:\sp\public\sdk\inc\stralign.h
+FILE 1735 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1736 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1737 f:\sp\public\sdk\inc\tvout.h
+FILE 1738 f:\sp\public\sdk\inc\winsvc.h
+FILE 1739 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1740 f:\sp\public\sdk\inc\wingdi.h
+FILE 1741 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1742 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1743 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1744 f:\sp\public\sdk\inc\poppack.h
+FILE 1745 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1746 f:\sp\public\sdk\inc\winnt.h
+FILE 1747 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1748 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1749 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1750 f:\sp\public\sdk\inc\imm.h
+FILE 1751 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1752 f:\sp\vctools\crt_bld\self_x86\crt\src\fclose.c
+FILE 1753 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1754 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1755 f:\sp\public\sdk\inc\winver.h
+FILE 1756 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1757 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1758 f:\sp\public\sdk\inc\guiddef.h
+FILE 1759 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1760 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1761 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1762 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1763 f:\sp\public\sdk\inc\specstrings.h
+FILE 1764 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1765 f:\sp\public\sdk\inc\basetsd.h
+FILE 1766 f:\sp\public\sdk\inc\windows.h
+FILE 1767 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1768 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1769 f:\sp\public\sdk\inc\winreg.h
+FILE 1770 f:\sp\public\sdk\inc\winbase.h
+FILE 1771 f:\sp\public\sdk\inc\winerror.h
+FILE 1772 f:\sp\public\sdk\inc\poppack.h
+FILE 1773 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1774 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1775 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1776 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1777 f:\sp\public\sdk\inc\imm.h
+FILE 1778 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1779 f:\sp\public\sdk\inc\windef.h
+FILE 1780 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1781 f:\sp\public\sdk\inc\winver.h
+FILE 1782 f:\sp\public\sdk\inc\windows.h
+FILE 1783 f:\sp\public\sdk\inc\winnt.h
+FILE 1784 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1785 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1786 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1787 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1788 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1789 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1790 f:\sp\public\sdk\inc\winreg.h
+FILE 1791 f:\sp\public\sdk\inc\winbase.h
+FILE 1792 f:\sp\vctools\crt_bld\self_x86\crt\src\closeall.c
+FILE 1793 f:\sp\public\sdk\inc\winerror.h
+FILE 1794 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1795 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1796 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1797 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1798 f:\sp\public\sdk\inc\reason.h
+FILE 1799 f:\sp\public\sdk\inc\wincon.h
+FILE 1800 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1801 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1802 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1803 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1804 f:\sp\public\sdk\inc\mcx.h
+FILE 1805 f:\sp\public\sdk\inc\winuser.h
+FILE 1806 f:\sp\public\sdk\inc\winnls.h
+FILE 1807 f:\sp\public\sdk\inc\guiddef.h
+FILE 1808 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1809 f:\sp\public\sdk\inc\specstrings.h
+FILE 1810 f:\sp\public\sdk\inc\basetsd.h
+FILE 1811 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1812 f:\sp\public\sdk\inc\stralign.h
+FILE 1813 f:\sp\public\sdk\inc\tvout.h
+FILE 1814 f:\sp\public\sdk\inc\winsvc.h
+FILE 1815 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1816 f:\sp\public\sdk\inc\wingdi.h
+FILE 1817 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1818 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1819 f:\sp\public\sdk\inc\reason.h
+FILE 1820 f:\sp\public\sdk\inc\wincon.h
+FILE 1821 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1822 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1823 f:\sp\public\sdk\inc\mcx.h
+FILE 1824 f:\sp\public\sdk\inc\winuser.h
+FILE 1825 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1826 f:\sp\public\sdk\inc\winnls.h
+FILE 1827 f:\sp\public\sdk\inc\guiddef.h
+FILE 1828 f:\sp\public\sdk\inc\windows.h
+FILE 1829 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1830 f:\sp\public\sdk\inc\specstrings.h
+FILE 1831 f:\sp\public\sdk\inc\basetsd.h
+FILE 1832 f:\sp\public\sdk\inc\stralign.h
+FILE 1833 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1834 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1835 f:\sp\public\sdk\inc\tvout.h
+FILE 1836 f:\sp\public\sdk\inc\winsvc.h
+FILE 1837 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1838 f:\sp\public\sdk\inc\wingdi.h
+FILE 1839 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1840 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1841 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1842 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1843 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1844 f:\sp\public\sdk\inc\poppack.h
+FILE 1845 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1846 f:\sp\public\sdk\inc\imm.h
+FILE 1847 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1848 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1849 f:\sp\public\sdk\inc\windef.h
+FILE 1850 f:\sp\vctools\crt_bld\self_x86\crt\src\_sftbuf.c
+FILE 1851 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1852 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1853 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1854 f:\sp\public\sdk\inc\winver.h
+FILE 1855 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1856 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1857 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1858 f:\sp\public\sdk\inc\winnt.h
+FILE 1859 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1860 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1861 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1862 f:\sp\public\sdk\inc\winreg.h
+FILE 1863 f:\sp\public\sdk\inc\winbase.h
+FILE 1864 f:\sp\public\sdk\inc\winerror.h
+FILE 1865 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1866 f:\sp\public\sdk\inc\winver.h
+FILE 1867 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1868 f:\sp\public\sdk\inc\winnt.h
+FILE 1869 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1870 f:\sp\public\sdk\inc\winreg.h
+FILE 1871 f:\sp\public\sdk\inc\winbase.h
+FILE 1872 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1873 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1874 f:\sp\public\sdk\inc\winerror.h
+FILE 1875 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1876 f:\sp\public\sdk\inc\reason.h
+FILE 1877 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1878 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1879 f:\sp\public\sdk\inc\wincon.h
+FILE 1880 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1881 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1882 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1883 f:\sp\public\sdk\inc\mcx.h
+FILE 1884 f:\sp\public\sdk\inc\winuser.h
+FILE 1885 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1886 f:\sp\public\sdk\inc\winnls.h
+FILE 1887 f:\sp\public\sdk\inc\guiddef.h
+FILE 1888 f:\sp\public\sdk\inc\windows.h
+FILE 1889 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1890 f:\sp\public\sdk\inc\specstrings.h
+FILE 1891 f:\sp\public\sdk\inc\basetsd.h
+FILE 1892 f:\sp\public\sdk\inc\stralign.h
+FILE 1893 f:\sp\vctools\crt_bld\self_x86\crt\src\_getbuf.c
+FILE 1894 f:\sp\public\sdk\inc\tvout.h
+FILE 1895 f:\sp\public\sdk\inc\winsvc.h
+FILE 1896 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1897 f:\sp\public\sdk\inc\wingdi.h
+FILE 1898 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1899 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1900 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1901 f:\sp\public\sdk\inc\poppack.h
+FILE 1902 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1903 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1904 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1905 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1906 f:\sp\public\sdk\inc\imm.h
+FILE 1907 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1908 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1909 f:\sp\public\sdk\inc\windef.h
+FILE 1910 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1911 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1912 f:\sp\public\sdk\inc\windef.h
+FILE 1913 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1914 f:\sp\public\sdk\inc\winver.h
+FILE 1915 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1916 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1917 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1918 f:\sp\public\sdk\inc\winnt.h
+FILE 1919 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1920 f:\sp\public\sdk\inc\winreg.h
+FILE 1921 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1922 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1923 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1924 f:\sp\public\sdk\inc\winbase.h
+FILE 1925 f:\sp\public\sdk\inc\winerror.h
+FILE 1926 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1927 f:\sp\vctools\crt_bld\self_x86\crt\src\_freebuf.c
+FILE 1928 f:\sp\public\sdk\inc\reason.h
+FILE 1929 f:\sp\public\sdk\inc\wincon.h
+FILE 1930 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1931 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1932 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1933 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1934 f:\sp\public\sdk\inc\mcx.h
+FILE 1935 f:\sp\public\sdk\inc\winuser.h
+FILE 1936 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1937 f:\sp\public\sdk\inc\winnls.h
+FILE 1938 f:\sp\public\sdk\inc\guiddef.h
+FILE 1939 f:\sp\public\sdk\inc\windows.h
+FILE 1940 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1941 f:\sp\public\sdk\inc\specstrings.h
+FILE 1942 f:\sp\public\sdk\inc\basetsd.h
+FILE 1943 f:\sp\public\sdk\inc\stralign.h
+FILE 1944 f:\sp\public\sdk\inc\tvout.h
+FILE 1945 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1946 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1947 f:\sp\public\sdk\inc\winsvc.h
+FILE 1948 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1949 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1950 f:\sp\public\sdk\inc\wingdi.h
+FILE 1951 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1952 f:\sp\public\sdk\inc\poppack.h
+FILE 1953 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1954 f:\sp\public\sdk\inc\imm.h
+FILE 1955 f:\sp\public\sdk\inc\specstrings.h
+FILE 1956 f:\sp\public\sdk\inc\basetsd.h
+FILE 1957 f:\sp\public\sdk\inc\reason.h
+FILE 1958 f:\sp\public\sdk\inc\wincon.h
+FILE 1959 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1960 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1961 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1962 f:\sp\public\sdk\inc\mcx.h
+FILE 1963 f:\sp\public\sdk\inc\winuser.h
+FILE 1964 f:\sp\public\sdk\inc\winnls.h
+FILE 1965 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1966 f:\sp\public\sdk\inc\stralign.h
+FILE 1967 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1968 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1969 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1970 f:\sp\public\sdk\inc\windows.h
+FILE 1971 f:\sp\public\sdk\inc\tvout.h
+FILE 1972 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1973 f:\sp\public\sdk\inc\winsvc.h
+FILE 1974 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1975 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1976 f:\sp\public\sdk\inc\wingdi.h
+FILE 1977 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1978 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1979 f:\sp\public\sdk\inc\poppack.h
+FILE 1980 f:\sp\vctools\crt_bld\self_x86\crt\src\_flsbuf.c
+FILE 1981 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1982 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1983 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1984 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1985 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1986 f:\sp\public\sdk\inc\imm.h
+FILE 1987 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1988 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1989 f:\sp\vctools\crt_bld\self_x86\crt\src\_flswbuf.c
+FILE 1990 f:\sp\public\sdk\inc\windef.h
+FILE 1991 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1992 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1993 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1994 f:\sp\public\sdk\inc\winver.h
+FILE 1995 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1996 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1997 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1998 f:\sp\public\sdk\inc\winnt.h
+FILE 1999 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2000 f:\sp\public\sdk\inc\winreg.h
+FILE 2001 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2002 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2003 f:\sp\public\sdk\inc\winbase.h
+FILE 2004 f:\sp\public\sdk\inc\winerror.h
+FILE 2005 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2006 f:\sp\public\sdk\inc\guiddef.h
+FILE 2007 f:\sp\public\sdk\inc\basetsd.h
+FILE 2008 f:\sp\public\sdk\inc\reason.h
+FILE 2009 f:\sp\public\sdk\inc\wincon.h
+FILE 2010 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2011 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2012 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2013 f:\sp\public\sdk\inc\mcx.h
+FILE 2014 f:\sp\public\sdk\inc\winuser.h
+FILE 2015 f:\sp\public\sdk\inc\winnls.h
+FILE 2016 f:\sp\public\sdk\inc\stralign.h
+FILE 2017 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2018 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2019 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2020 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2021 f:\sp\public\sdk\inc\tvout.h
+FILE 2022 f:\sp\public\sdk\inc\windows.h
+FILE 2023 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2024 f:\sp\public\sdk\inc\winsvc.h
+FILE 2025 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2026 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2027 f:\sp\public\sdk\inc\wingdi.h
+FILE 2028 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2029 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 2030 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2031 f:\sp\public\sdk\inc\poppack.h
+FILE 2032 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2034 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2035 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2036 f:\sp\public\sdk\inc\imm.h
+FILE 2037 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2038 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2039 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2040 f:\sp\public\sdk\inc\windef.h
+FILE 2041 f:\sp\vctools\crt_bld\self_x86\crt\src\_flsbuf.c
+FILE 2042 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2043 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2044 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2045 f:\sp\public\sdk\inc\winver.h
+FILE 2046 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2047 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2048 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2049 f:\sp\public\sdk\inc\winnt.h
+FILE 2050 f:\sp\public\sdk\inc\winreg.h
+FILE 2051 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2052 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2053 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2054 f:\sp\public\sdk\inc\winbase.h
+FILE 2055 f:\sp\public\sdk\inc\winerror.h
+FILE 2056 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2057 f:\sp\public\sdk\inc\guiddef.h
+FILE 2058 f:\sp\public\sdk\inc\specstrings.h
+FILE 2059 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2060 f:\sp\public\sdk\inc\reason.h
+FILE 2061 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2062 f:\sp\public\sdk\inc\wincon.h
+FILE 2063 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2064 f:\sp\public\sdk\inc\mcx.h
+FILE 2065 f:\sp\public\sdk\inc\winuser.h
+FILE 2066 f:\sp\public\sdk\inc\winnls.h
+FILE 2067 f:\sp\public\sdk\inc\guiddef.h
+FILE 2068 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2069 f:\sp\public\sdk\inc\specstrings.h
+FILE 2070 f:\sp\public\sdk\inc\basetsd.h
+FILE 2071 f:\sp\public\sdk\inc\stralign.h
+FILE 2072 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2073 f:\sp\public\sdk\inc\tvout.h
+FILE 2074 f:\sp\public\sdk\inc\winsvc.h
+FILE 2075 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2076 f:\sp\public\sdk\inc\wingdi.h
+FILE 2077 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2078 f:\sp\public\sdk\inc\poppack.h
+FILE 2079 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2080 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2081 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2082 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2083 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2084 f:\sp\public\sdk\inc\imm.h
+FILE 2085 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2086 f:\sp\public\sdk\inc\windef.h
+FILE 2087 f:\sp\vctools\crt_bld\self_x86\crt\src\_file.c
+FILE 2088 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2089 f:\sp\public\sdk\inc\winver.h
+FILE 2090 f:\sp\public\sdk\inc\windows.h
+FILE 2091 f:\sp\public\sdk\inc\winnt.h
+FILE 2092 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2093 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2094 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2095 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2096 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2097 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2098 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2099 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2100 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2101 f:\sp\public\sdk\inc\winreg.h
+FILE 2102 f:\sp\public\sdk\inc\winbase.h
+FILE 2103 f:\sp\public\sdk\inc\winerror.h
+FILE 2104 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2105 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2106 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2108 f:\sp\public\sdk\inc\windef.h
+FILE 2109 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2110 f:\sp\public\sdk\inc\winver.h
+FILE 2111 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2112 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2113 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2114 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2115 f:\sp\public\sdk\inc\winnt.h
+FILE 2116 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2117 f:\sp\public\sdk\inc\winreg.h
+FILE 2118 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2119 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2120 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2121 f:\sp\public\sdk\inc\winbase.h
+FILE 2122 f:\sp\public\sdk\inc\winerror.h
+FILE 2123 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2124 f:\sp\vctools\crt_bld\self_x86\crt\src\fputwc.c
+FILE 2125 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2126 f:\sp\public\sdk\inc\reason.h
+FILE 2127 f:\sp\public\sdk\inc\wincon.h
+FILE 2128 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2129 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2130 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2131 f:\sp\public\sdk\inc\mcx.h
+FILE 2132 f:\sp\public\sdk\inc\winuser.h
+FILE 2133 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2134 f:\sp\public\sdk\inc\winnls.h
+FILE 2135 f:\sp\public\sdk\inc\guiddef.h
+FILE 2136 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2137 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2138 f:\sp\public\sdk\inc\stralign.h
+FILE 2139 f:\sp\public\sdk\inc\specstrings.h
+FILE 2140 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2141 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2142 f:\sp\public\sdk\inc\basetsd.h
+FILE 2143 f:\sp\public\sdk\inc\windows.h
+FILE 2144 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2145 f:\sp\public\sdk\inc\tvout.h
+FILE 2146 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2147 f:\sp\public\sdk\inc\winsvc.h
+FILE 2148 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2149 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2150 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2151 f:\sp\public\sdk\inc\wingdi.h
+FILE 2152 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2153 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2154 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2155 f:\sp\public\sdk\inc\poppack.h
+FILE 2156 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2157 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2158 f:\sp\public\sdk\inc\imm.h
+FILE 2159 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2160 f:\sp\public\sdk\inc\poppack.h
+FILE 2161 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2162 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2163 f:\sp\public\sdk\inc\imm.h
+FILE 2164 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2165 f:\sp\public\sdk\inc\windef.h
+FILE 2166 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2167 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2168 f:\sp\public\sdk\inc\winver.h
+FILE 2169 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2170 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2171 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2172 f:\sp\public\sdk\inc\winnt.h
+FILE 2173 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2174 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2175 f:\sp\public\sdk\inc\winreg.h
+FILE 2176 f:\sp\vctools\crt_bld\self_x86\crt\src\fileno.c
+FILE 2177 f:\sp\public\sdk\inc\winbase.h
+FILE 2178 f:\sp\public\sdk\inc\winerror.h
+FILE 2179 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2180 f:\sp\public\sdk\inc\reason.h
+FILE 2181 f:\sp\public\sdk\inc\wincon.h
+FILE 2182 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2183 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2184 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2185 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2186 f:\sp\public\sdk\inc\mcx.h
+FILE 2187 f:\sp\public\sdk\inc\winuser.h
+FILE 2188 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2189 f:\sp\public\sdk\inc\winnls.h
+FILE 2190 f:\sp\public\sdk\inc\guiddef.h
+FILE 2191 f:\sp\public\sdk\inc\windows.h
+FILE 2192 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2193 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2194 f:\sp\public\sdk\inc\specstrings.h
+FILE 2195 f:\sp\public\sdk\inc\basetsd.h
+FILE 2196 f:\sp\public\sdk\inc\stralign.h
+FILE 2197 f:\sp\public\sdk\inc\tvout.h
+FILE 2198 f:\sp\public\sdk\inc\winsvc.h
+FILE 2199 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2200 f:\sp\public\sdk\inc\wingdi.h
+FILE 2201 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2202 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2203 f:\sp\public\sdk\inc\winreg.h
+FILE 2204 f:\sp\public\sdk\inc\guiddef.h
+FILE 2205 f:\sp\public\sdk\inc\windows.h
+FILE 2206 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2207 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2208 f:\sp\public\sdk\inc\specstrings.h
+FILE 2209 f:\sp\public\sdk\inc\basetsd.h
+FILE 2210 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2211 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2212 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2213 f:\sp\public\sdk\inc\reason.h
+FILE 2214 f:\sp\public\sdk\inc\wincon.h
+FILE 2215 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2216 f:\sp\public\sdk\inc\poppack.h
+FILE 2217 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2218 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2219 f:\sp\public\sdk\inc\mcx.h
+FILE 2220 f:\sp\public\sdk\inc\winuser.h
+FILE 2221 f:\sp\public\sdk\inc\winnls.h
+FILE 2222 f:\sp\public\sdk\inc\stralign.h
+FILE 2223 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2224 f:\sp\public\sdk\inc\windef.h
+FILE 2225 f:\sp\public\sdk\inc\tvout.h
+FILE 2226 f:\sp\public\sdk\inc\winsvc.h
+FILE 2227 f:\sp\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 2228 f:\sp\public\sdk\inc\wingdi.h
+FILE 2229 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2230 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2231 f:\sp\public\sdk\inc\winnt.h
+FILE 2232 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2233 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2234 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2235 f:\sp\public\sdk\inc\imm.h
+FILE 2236 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2237 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2238 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2239 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2240 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2241 f:\sp\public\sdk\inc\winbase.h
+FILE 2242 f:\sp\public\sdk\inc\winerror.h
+FILE 2243 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2244 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2245 f:\sp\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 2246 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2247 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2248 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2249 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2250 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2251 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2252 f:\sp\public\sdk\inc\winver.h
+FILE 2253 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2254 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2255 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2256 f:\sp\public\sdk\inc\poppack.h
+FILE 2257 f:\sp\public\sdk\inc\winnt.h
+FILE 2258 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2259 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2260 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2261 f:\sp\public\sdk\inc\imm.h
+FILE 2262 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2263 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2264 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2265 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2266 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2267 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2268 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2269 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2270 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2271 f:\sp\public\sdk\inc\winver.h
+FILE 2272 f:\sp\public\sdk\inc\guiddef.h
+FILE 2273 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2274 f:\sp\public\sdk\inc\specstrings.h
+FILE 2275 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2276 f:\sp\public\sdk\inc\basetsd.h
+FILE 2277 f:\sp\public\sdk\inc\windows.h
+FILE 2278 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2279 f:\sp\public\sdk\inc\winreg.h
+FILE 2280 f:\sp\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 2281 f:\sp\public\sdk\inc\winbase.h
+FILE 2282 f:\sp\public\sdk\inc\winerror.h
+FILE 2283 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2284 f:\sp\public\sdk\inc\reason.h
+FILE 2285 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2286 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2287 f:\sp\public\sdk\inc\wincon.h
+FILE 2288 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2289 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2290 f:\sp\public\sdk\inc\mcx.h
+FILE 2291 f:\sp\public\sdk\inc\winuser.h
+FILE 2292 f:\sp\public\sdk\inc\winnls.h
+FILE 2293 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2294 f:\sp\public\sdk\inc\windef.h
+FILE 2295 f:\sp\public\sdk\inc\stralign.h
+FILE 2296 f:\sp\public\sdk\inc\tvout.h
+FILE 2297 f:\sp\public\sdk\inc\winsvc.h
+FILE 2298 f:\sp\public\sdk\inc\wingdi.h
+FILE 2299 f:\sp\public\sdk\inc\poppack.h
+FILE 2300 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2301 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2302 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2303 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2304 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2305 f:\sp\public\sdk\inc\imm.h
+FILE 2306 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2307 f:\sp\public\sdk\inc\windef.h
+FILE 2308 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2309 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2310 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2311 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2312 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2313 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2314 f:\sp\public\sdk\inc\winver.h
+FILE 2315 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2316 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2317 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2318 f:\sp\public\sdk\inc\winnt.h
+FILE 2319 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2320 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2321 f:\sp\public\sdk\inc\winreg.h
+FILE 2322 f:\sp\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 2323 f:\sp\public\sdk\inc\winbase.h
+FILE 2324 f:\sp\public\sdk\inc\winerror.h
+FILE 2325 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2326 f:\sp\public\sdk\inc\reason.h
+FILE 2327 f:\sp\public\sdk\inc\wincon.h
+FILE 2328 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2329 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2330 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2331 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2332 f:\sp\public\sdk\inc\mcx.h
+FILE 2333 f:\sp\public\sdk\inc\winuser.h
+FILE 2334 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2335 f:\sp\public\sdk\inc\winnls.h
+FILE 2336 f:\sp\public\sdk\inc\guiddef.h
+FILE 2337 f:\sp\public\sdk\inc\windows.h
+FILE 2338 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2339 f:\sp\public\sdk\inc\specstrings.h
+FILE 2340 f:\sp\public\sdk\inc\basetsd.h
+FILE 2341 f:\sp\public\sdk\inc\stralign.h
+FILE 2342 f:\sp\public\sdk\inc\tvout.h
+FILE 2343 f:\sp\public\sdk\inc\winsvc.h
+FILE 2344 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2345 f:\sp\public\sdk\inc\wingdi.h
+FILE 2346 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2347 f:\sp\public\sdk\inc\reason.h
+FILE 2348 f:\sp\public\sdk\inc\wincon.h
+FILE 2349 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2350 f:\sp\public\sdk\inc\poppack.h
+FILE 2351 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2352 f:\sp\public\sdk\inc\mcx.h
+FILE 2353 f:\sp\public\sdk\inc\winuser.h
+FILE 2354 f:\sp\public\sdk\inc\winnls.h
+FILE 2355 f:\sp\public\sdk\inc\stralign.h
+FILE 2356 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2357 f:\sp\public\sdk\inc\windef.h
+FILE 2358 f:\sp\public\sdk\inc\tvout.h
+FILE 2359 f:\sp\public\sdk\inc\winsvc.h
+FILE 2360 f:\sp\public\sdk\inc\wingdi.h
+FILE 2361 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2362 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2363 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2364 f:\sp\public\sdk\inc\winnt.h
+FILE 2365 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2366 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2368 f:\sp\public\sdk\inc\imm.h
+FILE 2369 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 2370 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2371 f:\sp\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 2372 f:\sp\public\sdk\inc\winbase.h
+FILE 2373 f:\sp\public\sdk\inc\winerror.h
+FILE 2374 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2375 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2376 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2377 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2378 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2379 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2380 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2381 f:\sp\public\sdk\inc\winver.h
+FILE 2382 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2383 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2384 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2385 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2386 f:\sp\public\sdk\inc\winreg.h
+FILE 2387 f:\sp\public\sdk\inc\guiddef.h
+FILE 2388 f:\sp\public\sdk\inc\windows.h
+FILE 2389 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2390 f:\sp\public\sdk\inc\specstrings.h
+FILE 2391 f:\sp\public\sdk\inc\basetsd.h
+FILE 2392 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2393 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2394 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2395 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2396 f:\sp\public\sdk\inc\poppack.h
+FILE 2397 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2398 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2399 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2400 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2401 f:\sp\public\sdk\inc\imm.h
+FILE 2402 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2403 f:\sp\public\sdk\inc\windef.h
+FILE 2404 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2405 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2406 f:\sp\public\sdk\inc\winver.h
+FILE 2407 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2408 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2409 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2410 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2411 f:\sp\public\sdk\inc\winnt.h
+FILE 2412 f:\sp\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 2413 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2414 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2415 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2416 f:\sp\public\sdk\inc\winreg.h
+FILE 2417 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2418 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 2419 f:\sp\public\sdk\inc\winbase.h
+FILE 2420 f:\sp\public\sdk\inc\winerror.h
+FILE 2421 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2422 f:\sp\public\sdk\inc\reason.h
+FILE 2423 f:\sp\public\sdk\inc\wincon.h
+FILE 2424 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2425 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2426 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2427 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2428 f:\sp\public\sdk\inc\mcx.h
+FILE 2429 f:\sp\public\sdk\inc\winuser.h
+FILE 2430 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2431 f:\sp\public\sdk\inc\winnls.h
+FILE 2432 f:\sp\public\sdk\inc\guiddef.h
+FILE 2433 f:\sp\public\sdk\inc\windows.h
+FILE 2434 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2435 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2436 f:\sp\public\sdk\inc\specstrings.h
+FILE 2437 f:\sp\public\sdk\inc\basetsd.h
+FILE 2438 f:\sp\public\sdk\inc\stralign.h
+FILE 2439 f:\sp\public\sdk\inc\tvout.h
+FILE 2440 f:\sp\public\sdk\inc\winsvc.h
+FILE 2441 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2442 f:\sp\public\sdk\inc\wingdi.h
+FILE 2443 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2444 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2445 f:\sp\public\sdk\inc\winver.h
+FILE 2446 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2447 f:\sp\public\sdk\inc\winnt.h
+FILE 2448 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2449 f:\sp\public\sdk\inc\winreg.h
+FILE 2450 f:\sp\public\sdk\inc\winbase.h
+FILE 2451 f:\sp\public\sdk\inc\winerror.h
+FILE 2452 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2453 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2454 f:\sp\public\sdk\inc\reason.h
+FILE 2455 f:\sp\public\sdk\inc\wincon.h
+FILE 2456 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2457 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 2458 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2459 f:\sp\public\sdk\inc\mcx.h
+FILE 2460 f:\sp\public\sdk\inc\winuser.h
+FILE 2461 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2462 f:\sp\public\sdk\inc\winnls.h
+FILE 2463 f:\sp\public\sdk\inc\guiddef.h
+FILE 2464 f:\sp\public\sdk\inc\windows.h
+FILE 2465 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2466 f:\sp\public\sdk\inc\specstrings.h
+FILE 2467 f:\sp\public\sdk\inc\basetsd.h
+FILE 2468 f:\sp\public\sdk\inc\stralign.h
+FILE 2469 f:\sp\public\sdk\inc\tvout.h
+FILE 2470 f:\sp\public\sdk\inc\winsvc.h
+FILE 2471 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2472 f:\sp\public\sdk\inc\wingdi.h
+FILE 2473 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2474 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2475 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2476 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2477 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2478 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2479 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2480 f:\sp\public\sdk\inc\poppack.h
+FILE 2481 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2482 f:\sp\public\sdk\inc\imm.h
+FILE 2483 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2484 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2485 f:\sp\public\sdk\inc\windef.h
+FILE 2486 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2487 f:\sp\public\sdk\inc\poppack.h
+FILE 2488 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2489 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2490 f:\sp\public\sdk\inc\imm.h
+FILE 2491 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2492 f:\sp\public\sdk\inc\windef.h
+FILE 2493 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2494 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2495 f:\sp\public\sdk\inc\winver.h
+FILE 2496 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2498 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2499 f:\sp\public\sdk\inc\winnt.h
+FILE 2500 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2501 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2502 f:\sp\public\sdk\inc\winreg.h
+FILE 2503 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 2504 f:\sp\public\sdk\inc\winbase.h
+FILE 2505 f:\sp\public\sdk\inc\winerror.h
+FILE 2506 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2507 f:\sp\public\sdk\inc\reason.h
+FILE 2508 f:\sp\public\sdk\inc\wincon.h
+FILE 2509 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2510 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2511 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2513 f:\sp\public\sdk\inc\mcx.h
+FILE 2514 f:\sp\public\sdk\inc\winuser.h
+FILE 2515 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2516 f:\sp\public\sdk\inc\winnls.h
+FILE 2517 f:\sp\public\sdk\inc\guiddef.h
+FILE 2518 f:\sp\public\sdk\inc\windows.h
+FILE 2519 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2520 f:\sp\public\sdk\inc\specstrings.h
+FILE 2521 f:\sp\public\sdk\inc\basetsd.h
+FILE 2522 f:\sp\public\sdk\inc\stralign.h
+FILE 2523 f:\sp\public\sdk\inc\tvout.h
+FILE 2524 f:\sp\public\sdk\inc\winsvc.h
+FILE 2525 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2526 f:\sp\public\sdk\inc\wingdi.h
+FILE 2527 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2528 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 2529 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2530 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2531 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2532 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2533 f:\sp\public\sdk\inc\reason.h
+FILE 2534 f:\sp\public\sdk\inc\wincon.h
+FILE 2535 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2536 f:\sp\public\sdk\inc\poppack.h
+FILE 2537 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2538 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2539 f:\sp\public\sdk\inc\mcx.h
+FILE 2540 f:\sp\public\sdk\inc\winuser.h
+FILE 2541 f:\sp\public\sdk\inc\winnls.h
+FILE 2542 f:\sp\public\sdk\inc\stralign.h
+FILE 2543 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2544 f:\sp\public\sdk\inc\windef.h
+FILE 2545 f:\sp\public\sdk\inc\tvout.h
+FILE 2546 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2547 f:\sp\public\sdk\inc\winsvc.h
+FILE 2548 f:\sp\public\sdk\inc\wingdi.h
+FILE 2549 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2550 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 2551 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2552 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2553 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 2554 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2555 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2556 f:\sp\public\sdk\inc\winnt.h
+FILE 2557 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2558 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2559 f:\sp\public\sdk\inc\imm.h
+FILE 2560 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 2561 f:\sp\public\sdk\inc\winbase.h
+FILE 2562 f:\sp\public\sdk\inc\winerror.h
+FILE 2563 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2564 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2565 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2566 f:\sp\public\sdk\inc\winver.h
+FILE 2567 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2568 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2569 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2570 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2571 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2572 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2573 f:\sp\public\sdk\inc\winreg.h
+FILE 2574 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2575 f:\sp\public\sdk\inc\guiddef.h
+FILE 2576 f:\sp\public\sdk\inc\windows.h
+FILE 2577 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2578 f:\sp\public\sdk\inc\specstrings.h
+FILE 2579 f:\sp\public\sdk\inc\basetsd.h
+FILE 2580 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2581 f:\sp\public\sdk\inc\tvout.h
+FILE 2582 f:\sp\public\sdk\inc\winsvc.h
+FILE 2583 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2584 f:\sp\public\sdk\inc\wingdi.h
+FILE 2585 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2586 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2587 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2588 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 2589 f:\sp\public\sdk\inc\poppack.h
+FILE 2590 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 2591 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2592 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2593 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2594 f:\sp\public\sdk\inc\imm.h
+FILE 2595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2596 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2597 f:\sp\public\sdk\inc\windef.h
+FILE 2598 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2599 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2600 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2601 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2602 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2603 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2604 f:\sp\public\sdk\inc\winver.h
+FILE 2605 f:\sp\public\sdk\inc\winnt.h
+FILE 2606 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2607 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2608 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 2609 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2610 f:\sp\public\sdk\inc\winreg.h
+FILE 2611 f:\sp\public\sdk\inc\winbase.h
+FILE 2612 f:\sp\public\sdk\inc\winerror.h
+FILE 2613 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2614 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2615 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2616 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2617 f:\sp\public\sdk\inc\reason.h
+FILE 2618 f:\sp\public\sdk\inc\wincon.h
+FILE 2619 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2620 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2621 f:\sp\public\sdk\inc\mcx.h
+FILE 2622 f:\sp\public\sdk\inc\winuser.h
+FILE 2623 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2624 f:\sp\public\sdk\inc\winnls.h
+FILE 2625 f:\sp\public\sdk\inc\guiddef.h
+FILE 2626 f:\sp\public\sdk\inc\windows.h
+FILE 2627 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2628 f:\sp\public\sdk\inc\specstrings.h
+FILE 2629 f:\sp\public\sdk\inc\basetsd.h
+FILE 2630 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2631 f:\sp\public\sdk\inc\stralign.h
+FILE 2632 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\alloca16.asm
+FILE 2633 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2634 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\chkstk.asm
+FILE 2635 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2636 f:\sp\public\sdk\inc\wincon.h
+FILE 2637 f:\sp\public\sdk\inc\imm.h
+FILE 2638 f:\sp\public\sdk\inc\winbase.h
+FILE 2639 f:\sp\public\sdk\inc\wingdi.h
+FILE 2640 f:\sp\public\sdk\inc\winver.h
+FILE 2641 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 2642 f:\sp\public\sdk\inc\windows.h
+FILE 2643 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 2644 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2645 f:\sp\public\sdk\inc\reason.h
+FILE 2646 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 2647 f:\sp\public\sdk\inc\specstrings.h
+FILE 2648 f:\sp\public\sdk\inc\basetsd.h
+FILE 2649 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2650 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2651 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 2652 f:\sp\public\sdk\inc\stralign.h
+FILE 2653 f:\sp\public\sdk\inc\poppack.h
+FILE 2654 f:\sp\public\sdk\inc\winsvc.h
+FILE 2655 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 2656 f:\sp\public\sdk\inc\windef.h
+FILE 2657 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 2658 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 2659 f:\sp\public\sdk\inc\winuser.h
+FILE 2660 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 2661 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 2662 f:\sp\public\sdk\inc\mcx.h
+FILE 2663 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2664 f:\sp\public\sdk\inc\guiddef.h
+FILE 2665 f:\sp\public\sdk\inc\winnt.h
+FILE 2666 f:\sp\public\sdk\inc\winnls.h
+FILE 2667 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 2668 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2669 f:\sp\public\sdk\inc\winerror.h
+FILE 2670 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 2671 f:\sp\public\sdk\inc\winreg.h
+FILE 2672 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 2673 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2674 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 2675 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 2676 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FILE 2677 f:\sp\public\sdk\inc\tvout.h
+FILE 2678 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 2679 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 2680 f:\sp\public\sdk\inc\poppack.h
+FILE 2681 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2682 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2683 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2684 f:\sp\public\sdk\inc\imm.h
+FILE 2685 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2686 f:\sp\public\sdk\inc\windef.h
+FILE 2687 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2688 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2689 f:\sp\public\sdk\inc\winver.h
+FILE 2690 f:\sp\public\sdk\inc\windows.h
+FILE 2691 f:\sp\public\sdk\inc\winnt.h
+FILE 2692 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2693 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2694 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2695 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2696 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2697 f:\sp\public\sdk\inc\winreg.h
+FILE 2698 f:\sp\public\sdk\inc\winbase.h
+FILE 2699 f:\sp\vctools\crt_bld\self_x86\crt\src\wtombenv.c
+FILE 2700 f:\sp\public\sdk\inc\winerror.h
+FILE 2701 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2702 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2703 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2704 f:\sp\public\sdk\inc\reason.h
+FILE 2705 f:\sp\public\sdk\inc\wincon.h
+FILE 2706 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2707 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2708 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2709 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2710 f:\sp\public\sdk\inc\mcx.h
+FILE 2711 f:\sp\public\sdk\inc\winuser.h
+FILE 2712 f:\sp\public\sdk\inc\winnls.h
+FILE 2713 f:\sp\public\sdk\inc\guiddef.h
+FILE 2714 f:\sp\public\sdk\inc\specstrings.h
+FILE 2715 f:\sp\public\sdk\inc\basetsd.h
+FILE 2716 f:\sp\public\sdk\inc\stralign.h
+FILE 2717 f:\sp\public\sdk\inc\tvout.h
+FILE 2718 f:\sp\public\sdk\inc\winsvc.h
+FILE 2719 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2720 f:\sp\public\sdk\inc\wingdi.h
+FILE 2721 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2722 f:\sp\public\sdk\inc\winnt.h
+FILE 2723 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2724 f:\sp\public\sdk\inc\winreg.h
+FILE 2725 f:\sp\public\sdk\inc\winbase.h
+FILE 2726 f:\sp\public\sdk\inc\winerror.h
+FILE 2727 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2728 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2729 f:\sp\public\sdk\inc\reason.h
+FILE 2730 f:\sp\public\sdk\inc\wincon.h
+FILE 2731 f:\sp\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2732 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2733 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2734 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2735 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2736 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2737 f:\sp\public\sdk\inc\mcx.h
+FILE 2738 f:\sp\public\sdk\inc\winuser.h
+FILE 2739 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2740 f:\sp\public\sdk\inc\winnls.h
+FILE 2741 f:\sp\public\sdk\inc\guiddef.h
+FILE 2742 f:\sp\public\sdk\inc\windows.h
+FILE 2743 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2744 f:\sp\public\sdk\inc\specstrings.h
+FILE 2745 f:\sp\public\sdk\inc\basetsd.h
+FILE 2746 f:\sp\public\sdk\inc\stralign.h
+FILE 2747 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2748 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 2749 f:\sp\public\sdk\inc\tvout.h
+FILE 2750 f:\sp\public\sdk\inc\winsvc.h
+FILE 2751 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2752 f:\sp\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2753 f:\sp\public\sdk\inc\wingdi.h
+FILE 2754 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2755 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2756 f:\sp\public\sdk\inc\poppack.h
+FILE 2757 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2758 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2759 f:\sp\public\sdk\inc\imm.h
+FILE 2760 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2761 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2762 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2763 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2764 f:\sp\public\sdk\inc\windef.h
+FILE 2765 f:\sp\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2766 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2767 f:\sp\public\sdk\inc\winver.h
+FILE 2768 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2769 f:\sp\public\sdk\inc\imm.h
+FILE 2770 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2771 f:\sp\public\sdk\inc\windef.h
+FILE 2772 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2773 f:\sp\public\sdk\inc\winver.h
+FILE 2774 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2775 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2776 f:\sp\public\sdk\inc\winnt.h
+FILE 2777 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2778 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2779 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2780 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2781 f:\sp\public\sdk\inc\winreg.h
+FILE 2782 f:\sp\public\sdk\inc\winbase.h
+FILE 2783 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2784 f:\sp\public\sdk\inc\winerror.h
+FILE 2785 f:\sp\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2786 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2787 f:\sp\public\sdk\inc\reason.h
+FILE 2788 f:\sp\public\sdk\inc\wincon.h
+FILE 2789 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2790 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2791 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2792 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2793 f:\sp\public\sdk\inc\mcx.h
+FILE 2794 f:\sp\public\sdk\inc\winuser.h
+FILE 2795 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2796 f:\sp\public\sdk\inc\winnls.h
+FILE 2797 f:\sp\public\sdk\inc\guiddef.h
+FILE 2798 f:\sp\public\sdk\inc\windows.h
+FILE 2799 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2800 f:\sp\public\sdk\inc\specstrings.h
+FILE 2801 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2802 f:\sp\public\sdk\inc\basetsd.h
+FILE 2803 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2804 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2805 f:\sp\public\sdk\inc\stralign.h
+FILE 2806 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 2807 f:\sp\public\sdk\inc\tvout.h
+FILE 2808 f:\sp\public\sdk\inc\winsvc.h
+FILE 2809 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2810 f:\sp\public\sdk\inc\wingdi.h
+FILE 2811 f:\sp\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2812 f:\sp\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2813 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2814 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2815 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2816 f:\sp\public\sdk\inc\poppack.h
+FILE 2817 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2818 f:\sp\public\sdk\inc\wincon.h
+FILE 2819 f:\sp\public\sdk\inc\imm.h
+FILE 2820 f:\sp\public\sdk\inc\winbase.h
+FILE 2821 f:\sp\public\sdk\inc\wingdi.h
+FILE 2822 f:\sp\public\sdk\inc\winver.h
+FILE 2823 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2824 f:\sp\public\sdk\inc\windows.h
+FILE 2825 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2826 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2827 f:\sp\public\sdk\inc\reason.h
+FILE 2828 f:\sp\vctools\crt_bld\self_x86\crt\src\w_str.c
+FILE 2829 f:\sp\public\sdk\inc\specstrings.h
+FILE 2830 f:\sp\public\sdk\inc\basetsd.h
+FILE 2831 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2832 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2833 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2834 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2835 f:\sp\public\sdk\inc\stralign.h
+FILE 2836 f:\sp\public\sdk\inc\poppack.h
+FILE 2837 f:\sp\public\sdk\inc\winsvc.h
+FILE 2838 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2839 f:\sp\public\sdk\inc\windef.h
+FILE 2840 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2841 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2842 f:\sp\public\sdk\inc\winuser.h
+FILE 2843 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2844 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2845 f:\sp\public\sdk\inc\mcx.h
+FILE 2846 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2847 f:\sp\public\sdk\inc\guiddef.h
+FILE 2848 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2849 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2850 f:\sp\public\sdk\inc\winnt.h
+FILE 2851 f:\sp\public\sdk\inc\winnls.h
+FILE 2852 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2853 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2854 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2855 f:\sp\public\sdk\inc\winerror.h
+FILE 2856 f:\sp\public\sdk\inc\winreg.h
+FILE 2857 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2858 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2859 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2860 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2861 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2862 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2863 f:\sp\public\sdk\inc\tvout.h
+FILE 2864 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2865 f:\sp\public\sdk\inc\wincon.h
+FILE 2866 f:\sp\public\sdk\inc\imm.h
+FILE 2867 f:\sp\public\sdk\inc\winbase.h
+FILE 2868 f:\sp\public\sdk\inc\wingdi.h
+FILE 2869 f:\sp\public\sdk\inc\winver.h
+FILE 2870 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2871 f:\sp\public\sdk\inc\windows.h
+FILE 2872 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2873 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2874 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2875 f:\sp\public\sdk\inc\reason.h
+FILE 2876 f:\sp\vctools\crt_bld\self_x86\crt\src\w_loc.c
+FILE 2877 f:\sp\public\sdk\inc\specstrings.h
+FILE 2878 f:\sp\public\sdk\inc\basetsd.h
+FILE 2879 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2880 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2881 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2882 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2883 f:\sp\public\sdk\inc\stralign.h
+FILE 2884 f:\sp\public\sdk\inc\poppack.h
+FILE 2885 f:\sp\public\sdk\inc\winsvc.h
+FILE 2886 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2887 f:\sp\public\sdk\inc\windef.h
+FILE 2888 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2889 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2890 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2891 f:\sp\public\sdk\inc\winuser.h
+FILE 2892 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2893 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2894 f:\sp\public\sdk\inc\mcx.h
+FILE 2895 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2896 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2897 f:\sp\public\sdk\inc\guiddef.h
+FILE 2898 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2899 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2900 f:\sp\public\sdk\inc\winnt.h
+FILE 2901 f:\sp\public\sdk\inc\winnls.h
+FILE 2902 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2903 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2904 f:\sp\public\sdk\inc\winerror.h
+FILE 2905 f:\sp\public\sdk\inc\winreg.h
+FILE 2906 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2907 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2908 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2909 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2910 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2911 f:\sp\public\sdk\inc\tvout.h
+FILE 2912 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2913 f:\sp\public\sdk\inc\poppack.h
+FILE 2914 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2915 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2916 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2917 f:\sp\public\sdk\inc\imm.h
+FILE 2918 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2919 f:\sp\public\sdk\inc\windef.h
+FILE 2920 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2921 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2922 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2923 f:\sp\public\sdk\inc\winver.h
+FILE 2924 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2925 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2926 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2927 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2928 f:\sp\public\sdk\inc\winnt.h
+FILE 2929 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2930 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2931 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2932 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2933 f:\sp\public\sdk\inc\winreg.h
+FILE 2934 f:\sp\vctools\crt_bld\self_x86\crt\src\convrtcp.c
+FILE 2935 f:\sp\public\sdk\inc\winbase.h
+FILE 2936 f:\sp\public\sdk\inc\winerror.h
+FILE 2937 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2938 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2939 f:\sp\public\sdk\inc\reason.h
+FILE 2940 f:\sp\public\sdk\inc\wincon.h
+FILE 2941 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2942 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2943 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2944 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2945 f:\sp\public\sdk\inc\mcx.h
+FILE 2946 f:\sp\public\sdk\inc\winuser.h
+FILE 2947 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2948 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2949 f:\sp\public\sdk\inc\winnls.h
+FILE 2950 f:\sp\public\sdk\inc\guiddef.h
+FILE 2951 f:\sp\public\sdk\inc\windows.h
+FILE 2952 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2953 f:\sp\public\sdk\inc\specstrings.h
+FILE 2954 f:\sp\public\sdk\inc\basetsd.h
+FILE 2955 f:\sp\public\sdk\inc\stralign.h
+FILE 2956 f:\sp\public\sdk\inc\tvout.h
+FILE 2957 f:\sp\public\sdk\inc\winsvc.h
+FILE 2958 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2959 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2960 f:\sp\public\sdk\inc\wingdi.h
+FILE 2961 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2962 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2963 f:\sp\public\sdk\inc\winerror.h
+FILE 2964 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2965 f:\sp\public\sdk\inc\reason.h
+FILE 2966 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2967 f:\sp\public\sdk\inc\wincon.h
+FILE 2968 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2969 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2970 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2971 f:\sp\public\sdk\inc\mcx.h
+FILE 2972 f:\sp\public\sdk\inc\winuser.h
+FILE 2973 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2974 f:\sp\public\sdk\inc\winnls.h
+FILE 2975 f:\sp\public\sdk\inc\guiddef.h
+FILE 2976 f:\sp\public\sdk\inc\windows.h
+FILE 2977 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2978 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2979 f:\sp\public\sdk\inc\specstrings.h
+FILE 2980 f:\sp\public\sdk\inc\basetsd.h
+FILE 2981 f:\sp\public\sdk\inc\stralign.h
+FILE 2982 f:\sp\public\sdk\inc\tvout.h
+FILE 2983 f:\sp\public\sdk\inc\winsvc.h
+FILE 2984 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2985 f:\sp\public\sdk\inc\wingdi.h
+FILE 2986 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2987 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2988 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2989 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2990 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2991 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2992 f:\sp\public\sdk\inc\poppack.h
+FILE 2993 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2994 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2995 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2996 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2997 f:\sp\public\sdk\inc\imm.h
+FILE 2998 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2999 f:\sp\public\sdk\inc\windef.h
+FILE 3000 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3001 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3002 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3003 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3004 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3005 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3006 f:\sp\public\sdk\inc\winver.h
+FILE 3007 f:\sp\public\sdk\inc\winnt.h
+FILE 3008 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3009 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3010 f:\sp\public\sdk\inc\winreg.h
+FILE 3011 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3012 f:\sp\public\sdk\inc\winbase.h
+FILE 3013 f:\sp\public\sdk\inc\poppack.h
+FILE 3014 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 3015 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 3016 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3017 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3018 f:\sp\public\sdk\inc\imm.h
+FILE 3019 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3020 f:\sp\public\sdk\inc\windef.h
+FILE 3021 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3022 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3023 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3024 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3025 f:\sp\public\sdk\inc\winver.h
+FILE 3026 f:\sp\public\sdk\inc\windows.h
+FILE 3027 f:\sp\public\sdk\inc\winnt.h
+FILE 3028 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3029 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3030 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3031 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3032 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3033 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3034 f:\sp\public\sdk\inc\winreg.h
+FILE 3035 f:\sp\public\sdk\inc\winbase.h
+FILE 3036 f:\sp\vctools\crt_bld\self_x86\crt\src\setenv.c
+FILE 3037 f:\sp\public\sdk\inc\winerror.h
+FILE 3038 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3039 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3040 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3041 f:\sp\public\sdk\inc\reason.h
+FILE 3042 f:\sp\public\sdk\inc\wincon.h
+FILE 3043 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3044 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3045 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3046 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3047 f:\sp\public\sdk\inc\mcx.h
+FILE 3048 f:\sp\public\sdk\inc\winuser.h
+FILE 3049 f:\sp\public\sdk\inc\winnls.h
+FILE 3050 f:\sp\public\sdk\inc\guiddef.h
+FILE 3051 f:\sp\public\sdk\inc\specstrings.h
+FILE 3052 f:\sp\public\sdk\inc\basetsd.h
+FILE 3053 f:\sp\public\sdk\inc\stralign.h
+FILE 3054 f:\sp\public\sdk\inc\tvout.h
+FILE 3055 f:\sp\public\sdk\inc\winsvc.h
+FILE 3056 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3057 f:\sp\public\sdk\inc\wingdi.h
+FILE 3058 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3059 f:\sp\public\sdk\inc\poppack.h
+FILE 3060 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3061 f:\sp\public\sdk\inc\imm.h
+FILE 3062 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3063 f:\sp\public\sdk\inc\windef.h
+FILE 3064 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3065 f:\sp\public\sdk\inc\winver.h
+FILE 3066 f:\sp\public\sdk\inc\windows.h
+FILE 3067 f:\sp\public\sdk\inc\winnt.h
+FILE 3068 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3069 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3070 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3071 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3072 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3073 f:\sp\public\sdk\inc\winreg.h
+FILE 3074 f:\sp\public\sdk\inc\winbase.h
+FILE 3075 f:\sp\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 3076 f:\sp\public\sdk\inc\winerror.h
+FILE 3077 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3078 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3079 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3080 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3081 f:\sp\public\sdk\inc\reason.h
+FILE 3082 f:\sp\public\sdk\inc\wincon.h
+FILE 3083 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3084 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3085 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3086 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3087 f:\sp\public\sdk\inc\mcx.h
+FILE 3088 f:\sp\public\sdk\inc\winuser.h
+FILE 3089 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 3090 f:\sp\public\sdk\inc\winnls.h
+FILE 3091 f:\sp\public\sdk\inc\guiddef.h
+FILE 3092 f:\sp\public\sdk\inc\specstrings.h
+FILE 3093 f:\sp\public\sdk\inc\basetsd.h
+FILE 3094 f:\sp\public\sdk\inc\stralign.h
+FILE 3095 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3096 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3097 f:\sp\public\sdk\inc\tvout.h
+FILE 3098 f:\sp\public\sdk\inc\winsvc.h
+FILE 3099 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3100 f:\sp\public\sdk\inc\wingdi.h
+FILE 3101 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3102 f:\sp\public\sdk\inc\poppack.h
+FILE 3103 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3104 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3105 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3106 f:\sp\public\sdk\inc\imm.h
+FILE 3107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3108 f:\sp\public\sdk\inc\windef.h
+FILE 3109 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3110 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3111 f:\sp\public\sdk\inc\winver.h
+FILE 3112 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3113 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3114 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3115 f:\sp\public\sdk\inc\winnt.h
+FILE 3116 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3117 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3118 f:\sp\public\sdk\inc\winreg.h
+FILE 3119 f:\sp\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 3120 f:\sp\public\sdk\inc\winbase.h
+FILE 3121 f:\sp\public\sdk\inc\winerror.h
+FILE 3122 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3123 f:\sp\public\sdk\inc\reason.h
+FILE 3124 f:\sp\public\sdk\inc\wincon.h
+FILE 3125 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3126 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3127 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3128 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3129 f:\sp\public\sdk\inc\mcx.h
+FILE 3130 f:\sp\public\sdk\inc\winuser.h
+FILE 3131 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3132 f:\sp\public\sdk\inc\winnls.h
+FILE 3133 f:\sp\public\sdk\inc\guiddef.h
+FILE 3134 f:\sp\public\sdk\inc\windows.h
+FILE 3135 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3136 f:\sp\public\sdk\inc\specstrings.h
+FILE 3137 f:\sp\public\sdk\inc\basetsd.h
+FILE 3138 f:\sp\public\sdk\inc\stralign.h
+FILE 3139 f:\sp\public\sdk\inc\tvout.h
+FILE 3140 f:\sp\public\sdk\inc\winsvc.h
+FILE 3141 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3142 f:\sp\public\sdk\inc\wingdi.h
+FILE 3143 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3144 f:\sp\public\sdk\inc\poppack.h
+FILE 3145 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3146 f:\sp\public\sdk\inc\imm.h
+FILE 3147 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3148 f:\sp\public\sdk\inc\windef.h
+FILE 3149 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3150 f:\sp\public\sdk\inc\winver.h
+FILE 3151 f:\sp\public\sdk\inc\windows.h
+FILE 3152 f:\sp\public\sdk\inc\winnt.h
+FILE 3153 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3154 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3155 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3156 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3157 f:\sp\public\sdk\inc\winreg.h
+FILE 3158 f:\sp\public\sdk\inc\winbase.h
+FILE 3159 f:\sp\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 3160 f:\sp\public\sdk\inc\winerror.h
+FILE 3161 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3162 f:\sp\public\sdk\inc\reason.h
+FILE 3163 f:\sp\public\sdk\inc\wincon.h
+FILE 3164 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3165 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3166 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3167 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3168 f:\sp\public\sdk\inc\mcx.h
+FILE 3169 f:\sp\public\sdk\inc\winuser.h
+FILE 3170 f:\sp\public\sdk\inc\winnls.h
+FILE 3171 f:\sp\public\sdk\inc\guiddef.h
+FILE 3172 f:\sp\public\sdk\inc\specstrings.h
+FILE 3173 f:\sp\public\sdk\inc\basetsd.h
+FILE 3174 f:\sp\public\sdk\inc\stralign.h
+FILE 3175 f:\sp\public\sdk\inc\tvout.h
+FILE 3176 f:\sp\public\sdk\inc\winsvc.h
+FILE 3177 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3178 f:\sp\public\sdk\inc\wingdi.h
+FILE 3179 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3180 f:\sp\public\sdk\inc\winerror.h
+FILE 3181 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3182 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3183 f:\sp\public\sdk\inc\winver.h
+FILE 3184 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3185 f:\sp\public\sdk\inc\winreg.h
+FILE 3186 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3187 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3188 f:\sp\public\sdk\inc\guiddef.h
+FILE 3189 f:\sp\public\sdk\inc\windows.h
+FILE 3190 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3191 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 3192 f:\sp\public\sdk\inc\specstrings.h
+FILE 3193 f:\sp\public\sdk\inc\basetsd.h
+FILE 3194 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3195 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3196 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3197 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3198 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3199 f:\sp\public\sdk\inc\reason.h
+FILE 3200 f:\sp\public\sdk\inc\wincon.h
+FILE 3201 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3202 f:\sp\public\sdk\inc\poppack.h
+FILE 3203 f:\sp\public\sdk\inc\mcx.h
+FILE 3204 f:\sp\public\sdk\inc\winuser.h
+FILE 3205 f:\sp\public\sdk\inc\winnls.h
+FILE 3206 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 3207 f:\sp\public\sdk\inc\stralign.h
+FILE 3208 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3209 f:\sp\public\sdk\inc\windef.h
+FILE 3210 f:\sp\public\sdk\inc\tvout.h
+FILE 3211 f:\sp\public\sdk\inc\winsvc.h
+FILE 3212 f:\sp\public\sdk\inc\wingdi.h
+FILE 3213 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3214 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3215 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3216 f:\sp\public\sdk\inc\winnt.h
+FILE 3217 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3218 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3219 f:\sp\public\sdk\inc\imm.h
+FILE 3220 f:\sp\public\sdk\inc\winbase.h
+FILE 3221 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3222 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3223 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3224 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 3225 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3226 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3227 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3228 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3229 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 3230 f:\sp\public\sdk\inc\reason.h
+FILE 3231 f:\sp\public\sdk\inc\wincon.h
+FILE 3232 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3233 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3234 f:\sp\public\sdk\inc\mcx.h
+FILE 3235 f:\sp\public\sdk\inc\winuser.h
+FILE 3236 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3237 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3238 f:\sp\public\sdk\inc\winnls.h
+FILE 3239 f:\sp\public\sdk\inc\guiddef.h
+FILE 3240 f:\sp\public\sdk\inc\windows.h
+FILE 3241 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3242 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3243 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3244 f:\sp\public\sdk\inc\specstrings.h
+FILE 3245 f:\sp\public\sdk\inc\basetsd.h
+FILE 3246 f:\sp\public\sdk\inc\stralign.h
+FILE 3247 f:\sp\public\sdk\inc\tvout.h
+FILE 3248 f:\sp\public\sdk\inc\winsvc.h
+FILE 3249 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3250 f:\sp\public\sdk\inc\wingdi.h
+FILE 3251 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3252 f:\sp\public\sdk\inc\poppack.h
+FILE 3253 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3254 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3255 f:\sp\public\sdk\inc\imm.h
+FILE 3256 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3257 f:\sp\public\sdk\inc\windef.h
+FILE 3258 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3259 f:\sp\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 3260 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3261 f:\sp\public\sdk\inc\winver.h
+FILE 3262 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3263 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3264 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3265 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3266 f:\sp\public\sdk\inc\winnt.h
+FILE 3267 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3268 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3269 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3270 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3271 f:\sp\public\sdk\inc\winreg.h
+FILE 3272 f:\sp\public\sdk\inc\winbase.h
+FILE 3273 f:\sp\public\sdk\inc\winerror.h
+FILE 3274 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3275 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3276 f:\sp\public\sdk\inc\winbase.h
+FILE 3277 f:\sp\public\sdk\inc\winerror.h
+FILE 3278 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3279 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3280 f:\sp\public\sdk\inc\winver.h
+FILE 3281 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3282 f:\sp\public\sdk\inc\winreg.h
+FILE 3283 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3284 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3285 f:\sp\public\sdk\inc\guiddef.h
+FILE 3286 f:\sp\public\sdk\inc\windows.h
+FILE 3287 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3288 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3289 f:\sp\public\sdk\inc\specstrings.h
+FILE 3290 f:\sp\public\sdk\inc\basetsd.h
+FILE 3291 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3292 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3293 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3294 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3295 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3296 f:\sp\public\sdk\inc\reason.h
+FILE 3297 f:\sp\public\sdk\inc\wincon.h
+FILE 3298 f:\sp\public\sdk\inc\poppack.h
+FILE 3299 f:\sp\public\sdk\inc\mcx.h
+FILE 3300 f:\sp\public\sdk\inc\winuser.h
+FILE 3301 f:\sp\public\sdk\inc\winnls.h
+FILE 3302 f:\sp\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 3303 f:\sp\public\sdk\inc\stralign.h
+FILE 3304 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3305 f:\sp\public\sdk\inc\windef.h
+FILE 3306 f:\sp\public\sdk\inc\tvout.h
+FILE 3307 f:\sp\public\sdk\inc\winsvc.h
+FILE 3308 f:\sp\public\sdk\inc\wingdi.h
+FILE 3309 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3310 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3311 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3312 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3313 f:\sp\public\sdk\inc\winnt.h
+FILE 3314 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3315 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3316 f:\sp\public\sdk\inc\imm.h
+FILE 3317 f:\sp\public\sdk\inc\guiddef.h
+FILE 3318 f:\sp\public\sdk\inc\winnt.h
+FILE 3319 f:\sp\public\sdk\inc\winnls.h
+FILE 3320 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3321 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3322 f:\sp\public\sdk\inc\winerror.h
+FILE 3323 f:\sp\public\sdk\inc\winreg.h
+FILE 3324 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3325 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3326 f:\sp\public\sdk\inc\tvout.h
+FILE 3327 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3328 f:\sp\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3329 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3330 f:\sp\public\sdk\inc\wincon.h
+FILE 3331 f:\sp\public\sdk\inc\imm.h
+FILE 3332 f:\sp\public\sdk\inc\winbase.h
+FILE 3333 f:\sp\public\sdk\inc\wingdi.h
+FILE 3334 f:\sp\public\sdk\inc\winver.h
+FILE 3335 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3336 f:\sp\public\sdk\inc\windows.h
+FILE 3337 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3338 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3339 f:\sp\public\sdk\inc\reason.h
+FILE 3340 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3341 f:\sp\public\sdk\inc\specstrings.h
+FILE 3342 f:\sp\public\sdk\inc\basetsd.h
+FILE 3343 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3344 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3346 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3347 f:\sp\public\sdk\inc\stralign.h
+FILE 3348 f:\sp\public\sdk\inc\poppack.h
+FILE 3349 f:\sp\public\sdk\inc\winsvc.h
+FILE 3350 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3351 f:\sp\public\sdk\inc\windef.h
+FILE 3352 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3353 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3354 f:\sp\public\sdk\inc\winuser.h
+FILE 3355 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3356 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3357 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3358 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3359 f:\sp\public\sdk\inc\mcx.h
+FILE 3360 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3361 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3362 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3363 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3364 f:\sp\public\sdk\inc\poppack.h
+FILE 3365 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3366 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3368 f:\sp\public\sdk\inc\imm.h
+FILE 3369 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3370 f:\sp\public\sdk\inc\windef.h
+FILE 3371 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3372 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3373 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3374 f:\sp\public\sdk\inc\winver.h
+FILE 3375 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3376 f:\sp\public\sdk\inc\winnt.h
+FILE 3377 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3378 f:\sp\public\sdk\inc\winreg.h
+FILE 3379 f:\sp\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 3380 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3381 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3382 f:\sp\public\sdk\inc\winbase.h
+FILE 3383 f:\sp\public\sdk\inc\winerror.h
+FILE 3384 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3385 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3386 f:\sp\public\sdk\inc\reason.h
+FILE 3387 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3388 f:\sp\public\sdk\inc\wincon.h
+FILE 3389 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3390 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3391 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3392 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3393 f:\sp\public\sdk\inc\mcx.h
+FILE 3394 f:\sp\public\sdk\inc\winuser.h
+FILE 3395 f:\sp\public\sdk\inc\winnls.h
+FILE 3396 f:\sp\public\sdk\inc\guiddef.h
+FILE 3397 f:\sp\public\sdk\inc\stralign.h
+FILE 3398 f:\sp\public\sdk\inc\specstrings.h
+FILE 3399 f:\sp\public\sdk\inc\basetsd.h
+FILE 3400 f:\sp\public\sdk\inc\windows.h
+FILE 3401 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3402 f:\sp\public\sdk\inc\tvout.h
+FILE 3403 f:\sp\public\sdk\inc\winsvc.h
+FILE 3404 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3405 f:\sp\public\sdk\inc\wingdi.h
+FILE 3406 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3407 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3408 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3409 f:\sp\public\sdk\inc\poppack.h
+FILE 3410 f:\sp\public\sdk\inc\winnt.h
+FILE 3411 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3412 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3413 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3414 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3415 f:\sp\public\sdk\inc\imm.h
+FILE 3416 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3417 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3418 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3419 f:\sp\public\sdk\inc\winver.h
+FILE 3420 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3421 f:\sp\public\sdk\inc\guiddef.h
+FILE 3422 f:\sp\public\sdk\inc\specstrings.h
+FILE 3423 f:\sp\public\sdk\inc\basetsd.h
+FILE 3424 f:\sp\public\sdk\inc\windows.h
+FILE 3425 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3426 f:\sp\public\sdk\inc\winreg.h
+FILE 3427 f:\sp\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 3428 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 3429 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3430 f:\sp\public\sdk\inc\winbase.h
+FILE 3431 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3432 f:\sp\public\sdk\inc\winerror.h
+FILE 3433 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3434 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3435 f:\sp\public\sdk\inc\reason.h
+FILE 3436 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3437 f:\sp\public\sdk\inc\wincon.h
+FILE 3438 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3439 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3440 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3441 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3442 f:\sp\public\sdk\inc\mcx.h
+FILE 3443 f:\sp\public\sdk\inc\winuser.h
+FILE 3444 f:\sp\public\sdk\inc\winnls.h
+FILE 3445 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3446 f:\sp\public\sdk\inc\windef.h
+FILE 3447 f:\sp\public\sdk\inc\stralign.h
+FILE 3448 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3449 f:\sp\public\sdk\inc\tvout.h
+FILE 3450 f:\sp\public\sdk\inc\winsvc.h
+FILE 3451 f:\sp\public\sdk\inc\wingdi.h
+FILE 3452 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3453 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3454 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3455 f:\sp\public\sdk\inc\poppack.h
+FILE 3456 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3457 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3458 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3459 f:\sp\public\sdk\inc\imm.h
+FILE 3460 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3461 f:\sp\public\sdk\inc\windef.h
+FILE 3462 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3463 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3464 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3465 f:\sp\public\sdk\inc\winver.h
+FILE 3466 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3467 f:\sp\public\sdk\inc\winnt.h
+FILE 3468 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3469 f:\sp\public\sdk\inc\winreg.h
+FILE 3470 f:\sp\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 3471 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3472 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3473 f:\sp\public\sdk\inc\winbase.h
+FILE 3474 f:\sp\public\sdk\inc\winerror.h
+FILE 3475 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3476 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3477 f:\sp\public\sdk\inc\reason.h
+FILE 3478 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3479 f:\sp\public\sdk\inc\wincon.h
+FILE 3480 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3481 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3482 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3483 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3484 f:\sp\public\sdk\inc\mcx.h
+FILE 3485 f:\sp\public\sdk\inc\winuser.h
+FILE 3486 f:\sp\public\sdk\inc\winnls.h
+FILE 3487 f:\sp\public\sdk\inc\guiddef.h
+FILE 3488 f:\sp\public\sdk\inc\stralign.h
+FILE 3489 f:\sp\public\sdk\inc\specstrings.h
+FILE 3490 f:\sp\public\sdk\inc\basetsd.h
+FILE 3491 f:\sp\public\sdk\inc\windows.h
+FILE 3492 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3493 f:\sp\public\sdk\inc\tvout.h
+FILE 3494 f:\sp\public\sdk\inc\winsvc.h
+FILE 3495 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3496 f:\sp\public\sdk\inc\wingdi.h
+FILE 3497 f:\sp\public\sdk\inc\winbase.h
+FILE 3498 f:\sp\public\sdk\inc\winerror.h
+FILE 3499 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3500 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3501 f:\sp\public\sdk\inc\winver.h
+FILE 3502 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3503 f:\sp\public\sdk\inc\winreg.h
+FILE 3504 f:\sp\public\sdk\inc\guiddef.h
+FILE 3505 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3506 f:\sp\public\sdk\inc\specstrings.h
+FILE 3507 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3508 f:\sp\public\sdk\inc\basetsd.h
+FILE 3509 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3510 f:\sp\public\sdk\inc\windows.h
+FILE 3511 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3512 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3513 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3514 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3515 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3516 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3517 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3518 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3519 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3520 f:\sp\public\sdk\inc\reason.h
+FILE 3521 f:\sp\public\sdk\inc\wincon.h
+FILE 3522 f:\sp\public\sdk\inc\poppack.h
+FILE 3523 f:\sp\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 3524 f:\sp\public\sdk\inc\mcx.h
+FILE 3525 f:\sp\public\sdk\inc\winuser.h
+FILE 3526 f:\sp\public\sdk\inc\winnls.h
+FILE 3527 f:\sp\public\sdk\inc\stralign.h
+FILE 3528 f:\sp\public\sdk\inc\tvout.h
+FILE 3529 f:\sp\public\sdk\inc\winsvc.h
+FILE 3530 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3531 f:\sp\public\sdk\inc\wingdi.h
+FILE 3532 f:\sp\public\sdk\inc\windef.h
+FILE 3533 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3534 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3535 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3536 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3537 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3538 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3539 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3540 f:\sp\public\sdk\inc\imm.h
+FILE 3541 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3542 f:\sp\public\sdk\inc\winnt.h
+FILE 3543 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3544 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3545 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3546 f:\sp\public\sdk\inc\poppack.h
+FILE 3547 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3548 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3549 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3550 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3551 f:\sp\public\sdk\inc\imm.h
+FILE 3552 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3553 f:\sp\public\sdk\inc\windef.h
+FILE 3554 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3555 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3556 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3557 f:\sp\public\sdk\inc\winver.h
+FILE 3558 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3559 f:\sp\public\sdk\inc\winnt.h
+FILE 3560 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3561 f:\sp\public\sdk\inc\winreg.h
+FILE 3562 f:\sp\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 3563 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3564 f:\sp\public\sdk\inc\winbase.h
+FILE 3565 f:\sp\public\sdk\inc\winerror.h
+FILE 3566 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3567 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3568 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3569 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3570 f:\sp\public\sdk\inc\reason.h
+FILE 3571 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3572 f:\sp\public\sdk\inc\wincon.h
+FILE 3573 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3574 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3575 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3576 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3577 f:\sp\public\sdk\inc\mcx.h
+FILE 3578 f:\sp\public\sdk\inc\winuser.h
+FILE 3579 f:\sp\public\sdk\inc\winnls.h
+FILE 3580 f:\sp\public\sdk\inc\guiddef.h
+FILE 3581 f:\sp\public\sdk\inc\stralign.h
+FILE 3582 f:\sp\public\sdk\inc\specstrings.h
+FILE 3583 f:\sp\public\sdk\inc\basetsd.h
+FILE 3584 f:\sp\public\sdk\inc\windows.h
+FILE 3585 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3586 f:\sp\public\sdk\inc\tvout.h
+FILE 3587 f:\sp\public\sdk\inc\winsvc.h
+FILE 3588 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3589 f:\sp\public\sdk\inc\wingdi.h
+FILE 3590 f:\sp\public\sdk\inc\poppack.h
+FILE 3591 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3592 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3593 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3594 f:\sp\public\sdk\inc\imm.h
+FILE 3595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3596 f:\sp\public\sdk\inc\windef.h
+FILE 3597 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3598 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3599 f:\sp\public\sdk\inc\winver.h
+FILE 3600 f:\sp\public\sdk\inc\windows.h
+FILE 3601 f:\sp\public\sdk\inc\winnt.h
+FILE 3602 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3603 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3604 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3605 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3606 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3607 f:\sp\public\sdk\inc\winreg.h
+FILE 3608 f:\sp\public\sdk\inc\winbase.h
+FILE 3609 f:\sp\vctools\crt_bld\self_x86\crt\src\initcrit.c
+FILE 3610 f:\sp\public\sdk\inc\winerror.h
+FILE 3611 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3612 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3613 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3614 f:\sp\public\sdk\inc\reason.h
+FILE 3615 f:\sp\public\sdk\inc\wincon.h
+FILE 3616 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3617 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3618 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3619 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3620 f:\sp\public\sdk\inc\mcx.h
+FILE 3621 f:\sp\public\sdk\inc\winuser.h
+FILE 3622 f:\sp\public\sdk\inc\winnls.h
+FILE 3623 f:\sp\public\sdk\inc\guiddef.h
+FILE 3624 f:\sp\public\sdk\inc\specstrings.h
+FILE 3625 f:\sp\public\sdk\inc\basetsd.h
+FILE 3626 f:\sp\public\sdk\inc\stralign.h
+FILE 3627 f:\sp\public\sdk\inc\tvout.h
+FILE 3628 f:\sp\public\sdk\inc\winsvc.h
+FILE 3629 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3630 f:\sp\public\sdk\inc\wingdi.h
+FILE 3631 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3632 f:\sp\public\sdk\inc\poppack.h
+FILE 3633 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3634 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3635 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3636 f:\sp\public\sdk\inc\imm.h
+FILE 3637 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3638 f:\sp\public\sdk\inc\windef.h
+FILE 3639 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3640 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3641 f:\sp\public\sdk\inc\winver.h
+FILE 3642 f:\sp\public\sdk\inc\windows.h
+FILE 3643 f:\sp\public\sdk\inc\winnt.h
+FILE 3644 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3645 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3646 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3647 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3648 f:\sp\public\sdk\inc\winreg.h
+FILE 3649 f:\sp\public\sdk\inc\winbase.h
+FILE 3650 f:\sp\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 3651 f:\sp\public\sdk\inc\winerror.h
+FILE 3652 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3653 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3654 f:\sp\public\sdk\inc\reason.h
+FILE 3655 f:\sp\public\sdk\inc\wincon.h
+FILE 3656 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3657 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3658 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3659 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3660 f:\sp\public\sdk\inc\mcx.h
+FILE 3661 f:\sp\public\sdk\inc\winuser.h
+FILE 3662 f:\sp\public\sdk\inc\winnls.h
+FILE 3663 f:\sp\public\sdk\inc\guiddef.h
+FILE 3664 f:\sp\public\sdk\inc\specstrings.h
+FILE 3665 f:\sp\public\sdk\inc\basetsd.h
+FILE 3666 f:\sp\public\sdk\inc\stralign.h
+FILE 3667 f:\sp\public\sdk\inc\tvout.h
+FILE 3668 f:\sp\public\sdk\inc\winsvc.h
+FILE 3669 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3670 f:\sp\public\sdk\inc\wingdi.h
+FILE 3671 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3672 f:\sp\public\sdk\inc\poppack.h
+FILE 3673 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3674 f:\sp\public\sdk\inc\imm.h
+FILE 3675 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3676 f:\sp\public\sdk\inc\windef.h
+FILE 3677 f:\binaries.x86ret\vcboot\inc\mm3dnow.h
+FILE 3678 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3679 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3680 f:\sp\public\sdk\inc\winver.h
+FILE 3681 f:\sp\public\sdk\inc\windows.h
+FILE 3682 f:\sp\public\sdk\inc\winnt.h
+FILE 3683 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3684 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3685 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3686 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3687 f:\sp\public\sdk\inc\winreg.h
+FILE 3688 f:\sp\public\sdk\inc\winbase.h
+FILE 3689 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 3690 f:\sp\public\sdk\inc\winerror.h
+FILE 3691 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3692 f:\sp\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 3693 f:\sp\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 3694 f:\sp\public\sdk\inc\reason.h
+FILE 3695 f:\sp\public\sdk\inc\wincon.h
+FILE 3696 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3697 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3698 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3699 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3700 f:\sp\public\sdk\inc\mcx.h
+FILE 3701 f:\sp\public\sdk\inc\winuser.h
+FILE 3702 f:\sp\public\sdk\inc\winnls.h
+FILE 3703 f:\sp\public\sdk\inc\guiddef.h
+FILE 3704 f:\sp\public\sdk\inc\specstrings.h
+FILE 3705 f:\sp\public\sdk\inc\basetsd.h
+FILE 3706 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 3707 f:\sp\public\sdk\inc\stralign.h
+FILE 3708 f:\sp\public\sdk\inc\tvout.h
+FILE 3709 f:\sp\public\sdk\inc\winsvc.h
+FILE 3710 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3711 f:\sp\public\sdk\inc\wingdi.h
+FILE 3712 f:\binaries.x86ret\vcboot\inc\emmintrin.h
+FILE 3713 f:\binaries.x86ret\vcboot\inc\xmmintrin.h
+FILE 3714 f:\binaries.x86ret\vcboot\inc\mmintrin.h
+FILE 3715 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3716 f:\sp\public\sdk\inc\poppack.h
+FILE 3717 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3718 f:\sp\public\sdk\inc\imm.h
+FILE 3719 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3720 f:\sp\public\sdk\inc\windef.h
+FILE 3721 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3722 f:\sp\public\sdk\inc\winver.h
+FILE 3723 f:\sp\public\sdk\inc\windows.h
+FILE 3724 f:\sp\public\sdk\inc\winnt.h
+FILE 3725 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3726 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3727 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3728 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3729 f:\sp\public\sdk\inc\winreg.h
+FILE 3730 f:\sp\public\sdk\inc\winbase.h
+FILE 3731 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 3732 f:\sp\public\sdk\inc\winerror.h
+FILE 3733 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3734 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3735 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3736 f:\sp\public\sdk\inc\reason.h
+FILE 3737 f:\sp\public\sdk\inc\wincon.h
+FILE 3738 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3739 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3740 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3741 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3742 f:\sp\public\sdk\inc\mcx.h
+FILE 3743 f:\sp\public\sdk\inc\winuser.h
+FILE 3744 f:\sp\public\sdk\inc\winnls.h
+FILE 3745 f:\sp\public\sdk\inc\guiddef.h
+FILE 3746 f:\sp\public\sdk\inc\specstrings.h
+FILE 3747 f:\sp\public\sdk\inc\basetsd.h
+FILE 3748 f:\sp\public\sdk\inc\stralign.h
+FILE 3749 f:\sp\public\sdk\inc\tvout.h
+FILE 3750 f:\sp\public\sdk\inc\winsvc.h
+FILE 3751 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3752 f:\sp\public\sdk\inc\wingdi.h
+FILE 3753 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3754 f:\sp\public\sdk\inc\poppack.h
+FILE 3755 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3756 f:\sp\public\sdk\inc\imm.h
+FILE 3757 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3758 f:\sp\public\sdk\inc\windef.h
+FILE 3759 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3760 f:\sp\public\sdk\inc\winver.h
+FILE 3761 f:\sp\public\sdk\inc\windows.h
+FILE 3762 f:\sp\public\sdk\inc\winnt.h
+FILE 3763 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3764 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3765 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3766 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3767 f:\sp\public\sdk\inc\winreg.h
+FILE 3768 f:\sp\public\sdk\inc\winbase.h
+FILE 3769 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 3770 f:\sp\public\sdk\inc\winerror.h
+FILE 3771 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3772 f:\sp\public\sdk\inc\reason.h
+FILE 3773 f:\sp\public\sdk\inc\wincon.h
+FILE 3774 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3775 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3776 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3777 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3778 f:\sp\public\sdk\inc\mcx.h
+FILE 3779 f:\sp\public\sdk\inc\winuser.h
+FILE 3780 f:\sp\public\sdk\inc\winnls.h
+FILE 3781 f:\sp\public\sdk\inc\guiddef.h
+FILE 3782 f:\sp\public\sdk\inc\specstrings.h
+FILE 3783 f:\sp\public\sdk\inc\basetsd.h
+FILE 3784 f:\sp\public\sdk\inc\stralign.h
+FILE 3785 f:\sp\public\sdk\inc\tvout.h
+FILE 3786 f:\sp\public\sdk\inc\winsvc.h
+FILE 3787 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3788 f:\sp\public\sdk\inc\wingdi.h
+FILE 3789 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3790 f:\sp\public\sdk\inc\winerror.h
+FILE 3791 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3792 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3793 f:\sp\public\sdk\inc\winver.h
+FILE 3794 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3795 f:\sp\public\sdk\inc\winreg.h
+FILE 3796 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3797 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3798 f:\sp\public\sdk\inc\guiddef.h
+FILE 3799 f:\sp\public\sdk\inc\windows.h
+FILE 3800 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3801 f:\sp\public\sdk\inc\specstrings.h
+FILE 3802 f:\sp\public\sdk\inc\basetsd.h
+FILE 3803 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3804 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3805 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3806 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3807 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3808 f:\sp\public\sdk\inc\reason.h
+FILE 3809 f:\sp\public\sdk\inc\wincon.h
+FILE 3810 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3811 f:\sp\public\sdk\inc\poppack.h
+FILE 3812 f:\sp\public\sdk\inc\mcx.h
+FILE 3813 f:\sp\public\sdk\inc\winuser.h
+FILE 3814 f:\sp\public\sdk\inc\winnls.h
+FILE 3815 f:\sp\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 3816 f:\sp\public\sdk\inc\stralign.h
+FILE 3817 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3818 f:\sp\public\sdk\inc\windef.h
+FILE 3819 f:\sp\public\sdk\inc\tvout.h
+FILE 3820 f:\sp\public\sdk\inc\winsvc.h
+FILE 3821 f:\sp\public\sdk\inc\wingdi.h
+FILE 3822 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3823 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3824 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3825 f:\sp\public\sdk\inc\winnt.h
+FILE 3826 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3827 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3828 f:\sp\public\sdk\inc\imm.h
+FILE 3829 f:\sp\public\sdk\inc\winbase.h
+FILE 3830 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3831 f:\sp\public\sdk\inc\poppack.h
+FILE 3832 f:\sp\public\sdk\inc\winnt.h
+FILE 3833 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3834 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3835 f:\sp\public\sdk\inc\imm.h
+FILE 3836 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3837 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3838 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3839 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3840 f:\sp\public\sdk\inc\winver.h
+FILE 3841 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3842 f:\sp\public\sdk\inc\guiddef.h
+FILE 3843 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3844 f:\sp\public\sdk\inc\specstrings.h
+FILE 3845 f:\sp\public\sdk\inc\basetsd.h
+FILE 3846 f:\sp\public\sdk\inc\windows.h
+FILE 3847 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3848 f:\sp\public\sdk\inc\winreg.h
+FILE 3849 f:\sp\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 3850 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3851 f:\sp\public\sdk\inc\winbase.h
+FILE 3852 f:\sp\public\sdk\inc\winerror.h
+FILE 3853 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3854 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3855 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3856 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3857 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3858 f:\sp\public\sdk\inc\reason.h
+FILE 3859 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3860 f:\sp\public\sdk\inc\wincon.h
+FILE 3861 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3862 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3863 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3864 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3865 f:\sp\public\sdk\inc\mcx.h
+FILE 3866 f:\sp\public\sdk\inc\winuser.h
+FILE 3867 f:\sp\public\sdk\inc\winnls.h
+FILE 3868 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3869 f:\sp\public\sdk\inc\windef.h
+FILE 3870 f:\sp\public\sdk\inc\stralign.h
+FILE 3871 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3872 f:\sp\public\sdk\inc\tvout.h
+FILE 3873 f:\sp\public\sdk\inc\winsvc.h
+FILE 3874 f:\sp\public\sdk\inc\wingdi.h
+FILE 3875 f:\sp\public\sdk\inc\reason.h
+FILE 3876 f:\sp\public\sdk\inc\wincon.h
+FILE 3877 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3878 f:\sp\public\sdk\inc\mcx.h
+FILE 3879 f:\sp\public\sdk\inc\winuser.h
+FILE 3880 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3881 f:\sp\public\sdk\inc\winnls.h
+FILE 3882 f:\sp\public\sdk\inc\guiddef.h
+FILE 3883 f:\sp\public\sdk\inc\windows.h
+FILE 3884 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3885 f:\sp\public\sdk\inc\specstrings.h
+FILE 3886 f:\sp\public\sdk\inc\basetsd.h
+FILE 3887 f:\sp\public\sdk\inc\stralign.h
+FILE 3888 f:\sp\public\sdk\inc\tvout.h
+FILE 3889 f:\sp\public\sdk\inc\winsvc.h
+FILE 3890 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3891 f:\sp\public\sdk\inc\wingdi.h
+FILE 3892 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3893 f:\sp\public\sdk\inc\poppack.h
+FILE 3894 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3895 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3896 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3897 f:\sp\public\sdk\inc\imm.h
+FILE 3898 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3899 f:\sp\public\sdk\inc\windef.h
+FILE 3900 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 3901 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 3902 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3903 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3904 f:\sp\vctools\crt_bld\self_x86\crt\src\getenv.c
+FILE 3905 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3906 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3907 f:\sp\public\sdk\inc\winver.h
+FILE 3908 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3909 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3910 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3911 f:\sp\public\sdk\inc\winnt.h
+FILE 3912 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3913 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3914 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3915 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3916 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3917 f:\sp\public\sdk\inc\winreg.h
+FILE 3918 f:\sp\public\sdk\inc\winbase.h
+FILE 3919 f:\sp\public\sdk\inc\winerror.h
+FILE 3920 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3921 f:\sp\public\sdk\inc\poppack.h
+FILE 3922 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3923 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3924 f:\sp\public\sdk\inc\imm.h
+FILE 3925 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3926 f:\sp\public\sdk\inc\windef.h
+FILE 3927 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3928 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3929 f:\sp\public\sdk\inc\winver.h
+FILE 3930 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3931 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3932 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3933 f:\sp\public\sdk\inc\winnt.h
+FILE 3934 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3935 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3936 f:\sp\public\sdk\inc\winreg.h
+FILE 3937 f:\sp\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 3938 f:\sp\public\sdk\inc\winbase.h
+FILE 3939 f:\sp\public\sdk\inc\winerror.h
+FILE 3940 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3941 f:\sp\public\sdk\inc\reason.h
+FILE 3942 f:\sp\public\sdk\inc\wincon.h
+FILE 3943 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3944 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3945 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3946 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3947 f:\sp\public\sdk\inc\mcx.h
+FILE 3948 f:\sp\public\sdk\inc\winuser.h
+FILE 3949 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3950 f:\sp\public\sdk\inc\winnls.h
+FILE 3951 f:\sp\public\sdk\inc\guiddef.h
+FILE 3952 f:\sp\public\sdk\inc\windows.h
+FILE 3953 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3954 f:\sp\public\sdk\inc\specstrings.h
+FILE 3955 f:\sp\public\sdk\inc\basetsd.h
+FILE 3956 f:\sp\public\sdk\inc\stralign.h
+FILE 3957 f:\sp\public\sdk\inc\tvout.h
+FILE 3958 f:\sp\public\sdk\inc\winsvc.h
+FILE 3959 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3960 f:\sp\public\sdk\inc\wingdi.h
+FILE 3961 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3962 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3963 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3964 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3965 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3966 f:\sp\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 3967 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3968 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3969 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3970 f:\sp\public\sdk\inc\poppack.h
+FILE 3971 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3972 f:\sp\public\sdk\inc\imm.h
+FILE 3973 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3974 f:\sp\public\sdk\inc\windef.h
+FILE 3975 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3976 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3977 f:\sp\public\sdk\inc\winver.h
+FILE 3978 f:\sp\public\sdk\inc\windows.h
+FILE 3979 f:\sp\public\sdk\inc\winnt.h
+FILE 3980 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3981 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3982 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3983 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3984 f:\sp\public\sdk\inc\winreg.h
+FILE 3985 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 3986 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 3987 f:\sp\public\sdk\inc\winbase.h
+FILE 3988 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 3989 f:\sp\public\sdk\inc\winerror.h
+FILE 3990 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3991 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3992 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3993 f:\sp\public\sdk\inc\reason.h
+FILE 3994 f:\sp\public\sdk\inc\wincon.h
+FILE 3995 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3996 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3997 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3998 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3999 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4000 f:\sp\public\sdk\inc\mcx.h
+FILE 4001 f:\sp\public\sdk\inc\winuser.h
+FILE 4002 f:\sp\public\sdk\inc\winnls.h
+FILE 4003 f:\sp\public\sdk\inc\guiddef.h
+FILE 4004 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4005 f:\sp\public\sdk\inc\specstrings.h
+FILE 4006 f:\sp\public\sdk\inc\basetsd.h
+FILE 4007 f:\sp\public\sdk\inc\stralign.h
+FILE 4008 f:\sp\public\sdk\inc\tvout.h
+FILE 4009 f:\sp\public\sdk\inc\winsvc.h
+FILE 4010 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4011 f:\sp\public\sdk\inc\wingdi.h
+FILE 4012 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4013 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4014 f:\sp\public\sdk\inc\mcx.h
+FILE 4015 f:\sp\public\sdk\inc\winuser.h
+FILE 4016 f:\sp\public\sdk\inc\winnls.h
+FILE 4017 f:\sp\public\sdk\inc\stralign.h
+FILE 4018 f:\sp\public\sdk\inc\tvout.h
+FILE 4019 f:\sp\public\sdk\inc\winsvc.h
+FILE 4020 f:\sp\public\sdk\inc\wingdi.h
+FILE 4021 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4022 f:\sp\public\sdk\inc\winnt.h
+FILE 4023 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4024 f:\sp\public\sdk\inc\poppack.h
+FILE 4025 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4026 f:\sp\public\sdk\inc\imm.h
+FILE 4027 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 4028 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4029 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4030 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4031 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4032 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 4034 f:\sp\public\sdk\inc\winver.h
+FILE 4035 f:\sp\public\sdk\inc\guiddef.h
+FILE 4036 f:\sp\public\sdk\inc\windows.h
+FILE 4037 f:\sp\public\sdk\inc\specstrings.h
+FILE 4038 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4039 f:\sp\public\sdk\inc\basetsd.h
+FILE 4040 f:\sp\public\sdk\inc\winreg.h
+FILE 4041 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4042 f:\sp\public\sdk\inc\winbase.h
+FILE 4043 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4044 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4045 f:\sp\public\sdk\inc\winerror.h
+FILE 4046 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4047 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4048 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4049 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4050 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4051 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4052 f:\sp\public\sdk\inc\reason.h
+FILE 4053 f:\sp\public\sdk\inc\wincon.h
+FILE 4054 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4055 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4056 f:\sp\public\sdk\inc\windef.h
+FILE 4057 f:\sp\public\sdk\inc\poppack.h
+FILE 4058 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 4059 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4060 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4061 f:\sp\public\sdk\inc\imm.h
+FILE 4062 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4063 f:\sp\public\sdk\inc\windef.h
+FILE 4064 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4065 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4066 f:\sp\public\sdk\inc\winver.h
+FILE 4067 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4068 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4069 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4070 f:\sp\public\sdk\inc\winnt.h
+FILE 4071 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4072 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4073 f:\sp\public\sdk\inc\winreg.h
+FILE 4074 f:\sp\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 4075 f:\sp\public\sdk\inc\winbase.h
+FILE 4076 f:\sp\public\sdk\inc\winerror.h
+FILE 4077 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4078 f:\sp\public\sdk\inc\reason.h
+FILE 4079 f:\sp\public\sdk\inc\wincon.h
+FILE 4080 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4081 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4082 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4083 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4084 f:\sp\public\sdk\inc\mcx.h
+FILE 4085 f:\sp\public\sdk\inc\winuser.h
+FILE 4086 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4087 f:\sp\public\sdk\inc\winnls.h
+FILE 4088 f:\sp\public\sdk\inc\guiddef.h
+FILE 4089 f:\sp\public\sdk\inc\windows.h
+FILE 4090 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4091 f:\sp\public\sdk\inc\specstrings.h
+FILE 4092 f:\sp\public\sdk\inc\basetsd.h
+FILE 4093 f:\sp\public\sdk\inc\stralign.h
+FILE 4094 f:\sp\public\sdk\inc\tvout.h
+FILE 4095 f:\sp\public\sdk\inc\winsvc.h
+FILE 4096 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4097 f:\sp\public\sdk\inc\wingdi.h
+FILE 4098 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4099 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4100 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4101 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 4102 f:\sp\public\sdk\inc\poppack.h
+FILE 4103 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4104 f:\sp\public\sdk\inc\imm.h
+FILE 4105 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4106 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4108 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4109 f:\sp\public\sdk\inc\windef.h
+FILE 4110 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4111 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4112 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4113 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4114 f:\sp\public\sdk\inc\winver.h
+FILE 4115 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4116 f:\sp\public\sdk\inc\winnt.h
+FILE 4117 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4118 f:\sp\public\sdk\inc\winreg.h
+FILE 4119 f:\sp\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 4120 f:\sp\public\sdk\inc\winbase.h
+FILE 4121 f:\sp\public\sdk\inc\winerror.h
+FILE 4122 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4123 f:\sp\public\sdk\inc\reason.h
+FILE 4124 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4125 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4126 f:\sp\public\sdk\inc\wincon.h
+FILE 4127 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4128 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4129 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4130 f:\sp\public\sdk\inc\mcx.h
+FILE 4131 f:\sp\public\sdk\inc\winuser.h
+FILE 4132 f:\sp\public\sdk\inc\winnls.h
+FILE 4133 f:\sp\public\sdk\inc\guiddef.h
+FILE 4134 f:\sp\public\sdk\inc\stralign.h
+FILE 4135 f:\sp\public\sdk\inc\specstrings.h
+FILE 4136 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4137 f:\sp\public\sdk\inc\basetsd.h
+FILE 4138 f:\sp\public\sdk\inc\windows.h
+FILE 4139 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4140 f:\sp\public\sdk\inc\tvout.h
+FILE 4141 f:\sp\public\sdk\inc\winsvc.h
+FILE 4142 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4143 f:\sp\public\sdk\inc\wingdi.h
+FILE 4144 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4145 f:\sp\public\sdk\inc\wincon.h
+FILE 4146 f:\sp\public\sdk\inc\imm.h
+FILE 4147 f:\sp\public\sdk\inc\winbase.h
+FILE 4148 f:\sp\public\sdk\inc\wingdi.h
+FILE 4149 f:\sp\public\sdk\inc\winver.h
+FILE 4150 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4151 f:\sp\public\sdk\inc\windows.h
+FILE 4152 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4153 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4154 f:\sp\public\sdk\inc\reason.h
+FILE 4155 f:\sp\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 4156 f:\sp\public\sdk\inc\specstrings.h
+FILE 4157 f:\sp\public\sdk\inc\basetsd.h
+FILE 4158 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4159 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4160 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4161 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4162 f:\sp\public\sdk\inc\stralign.h
+FILE 4163 f:\sp\public\sdk\inc\poppack.h
+FILE 4164 f:\sp\public\sdk\inc\winsvc.h
+FILE 4165 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4166 f:\sp\public\sdk\inc\windef.h
+FILE 4167 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4168 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4169 f:\sp\public\sdk\inc\winuser.h
+FILE 4170 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4171 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4172 f:\sp\public\sdk\inc\mcx.h
+FILE 4173 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4174 f:\sp\public\sdk\inc\guiddef.h
+FILE 4175 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4176 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4177 f:\sp\public\sdk\inc\winnt.h
+FILE 4178 f:\sp\public\sdk\inc\winnls.h
+FILE 4179 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4180 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4181 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4182 f:\sp\public\sdk\inc\winerror.h
+FILE 4183 f:\sp\public\sdk\inc\winreg.h
+FILE 4184 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4185 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4186 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4187 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4188 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4189 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4190 f:\sp\public\sdk\inc\tvout.h
+FILE 4191 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4192 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4193 f:\sp\public\sdk\inc\wincon.h
+FILE 4194 f:\sp\public\sdk\inc\imm.h
+FILE 4195 f:\sp\public\sdk\inc\winbase.h
+FILE 4196 f:\sp\public\sdk\inc\wingdi.h
+FILE 4197 f:\sp\public\sdk\inc\winver.h
+FILE 4198 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4199 f:\sp\public\sdk\inc\windows.h
+FILE 4200 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4201 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4202 f:\sp\public\sdk\inc\reason.h
+FILE 4203 f:\sp\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 4204 f:\sp\public\sdk\inc\specstrings.h
+FILE 4205 f:\sp\public\sdk\inc\basetsd.h
+FILE 4206 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4207 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4208 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4209 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4210 f:\sp\public\sdk\inc\stralign.h
+FILE 4211 f:\sp\public\sdk\inc\poppack.h
+FILE 4212 f:\sp\public\sdk\inc\winsvc.h
+FILE 4213 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4214 f:\sp\public\sdk\inc\windef.h
+FILE 4215 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4216 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4217 f:\sp\public\sdk\inc\winuser.h
+FILE 4218 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4219 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4220 f:\sp\public\sdk\inc\mcx.h
+FILE 4221 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4222 f:\sp\public\sdk\inc\guiddef.h
+FILE 4223 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4224 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4225 f:\sp\public\sdk\inc\winnt.h
+FILE 4226 f:\sp\public\sdk\inc\winnls.h
+FILE 4227 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4228 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4229 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4230 f:\sp\public\sdk\inc\winerror.h
+FILE 4231 f:\sp\public\sdk\inc\winreg.h
+FILE 4232 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4233 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4234 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4235 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4236 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4237 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4238 f:\sp\public\sdk\inc\tvout.h
+FILE 4239 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4240 f:\sp\public\sdk\inc\wincon.h
+FILE 4241 f:\sp\public\sdk\inc\imm.h
+FILE 4242 f:\sp\public\sdk\inc\winbase.h
+FILE 4243 f:\sp\public\sdk\inc\wingdi.h
+FILE 4244 f:\sp\public\sdk\inc\winver.h
+FILE 4245 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4246 f:\sp\public\sdk\inc\windows.h
+FILE 4247 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4248 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4249 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4250 f:\sp\public\sdk\inc\reason.h
+FILE 4251 f:\sp\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 4252 f:\sp\public\sdk\inc\specstrings.h
+FILE 4253 f:\sp\public\sdk\inc\basetsd.h
+FILE 4254 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4255 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4256 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4257 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4258 f:\sp\public\sdk\inc\stralign.h
+FILE 4259 f:\sp\public\sdk\inc\poppack.h
+FILE 4260 f:\sp\public\sdk\inc\winsvc.h
+FILE 4261 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4262 f:\sp\public\sdk\inc\windef.h
+FILE 4263 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4264 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4265 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4266 f:\sp\public\sdk\inc\winuser.h
+FILE 4267 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4268 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4269 f:\sp\public\sdk\inc\mcx.h
+FILE 4270 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4271 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4272 f:\sp\public\sdk\inc\guiddef.h
+FILE 4273 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4274 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4275 f:\sp\public\sdk\inc\winnt.h
+FILE 4276 f:\sp\public\sdk\inc\winnls.h
+FILE 4277 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4278 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4279 f:\sp\public\sdk\inc\winerror.h
+FILE 4280 f:\sp\public\sdk\inc\winreg.h
+FILE 4281 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4282 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4283 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4284 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4285 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4286 f:\sp\public\sdk\inc\tvout.h
+FILE 4287 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4288 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4289 f:\sp\public\sdk\inc\poppack.h
+FILE 4290 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4291 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4292 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4293 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4294 f:\sp\public\sdk\inc\imm.h
+FILE 4295 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4296 f:\sp\public\sdk\inc\windef.h
+FILE 4297 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4298 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4299 f:\sp\public\sdk\inc\winver.h
+FILE 4300 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4301 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4302 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4303 f:\sp\public\sdk\inc\winnt.h
+FILE 4304 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4305 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4306 f:\sp\public\sdk\inc\winreg.h
+FILE 4307 f:\sp\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 4308 f:\sp\public\sdk\inc\winbase.h
+FILE 4309 f:\sp\public\sdk\inc\winerror.h
+FILE 4310 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4311 f:\sp\public\sdk\inc\reason.h
+FILE 4312 f:\sp\public\sdk\inc\wincon.h
+FILE 4313 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4314 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4315 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4316 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4317 f:\sp\public\sdk\inc\mcx.h
+FILE 4318 f:\sp\public\sdk\inc\winuser.h
+FILE 4319 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4320 f:\sp\public\sdk\inc\winnls.h
+FILE 4321 f:\sp\public\sdk\inc\guiddef.h
+FILE 4322 f:\sp\public\sdk\inc\windows.h
+FILE 4323 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4324 f:\sp\public\sdk\inc\specstrings.h
+FILE 4325 f:\sp\public\sdk\inc\basetsd.h
+FILE 4326 f:\sp\public\sdk\inc\stralign.h
+FILE 4327 f:\sp\public\sdk\inc\tvout.h
+FILE 4328 f:\sp\public\sdk\inc\winsvc.h
+FILE 4329 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4330 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4331 f:\sp\public\sdk\inc\wingdi.h
+FILE 4332 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4333 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4334 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4335 f:\sp\public\sdk\inc\wincon.h
+FILE 4336 f:\sp\public\sdk\inc\imm.h
+FILE 4337 f:\sp\public\sdk\inc\winbase.h
+FILE 4338 f:\sp\public\sdk\inc\wingdi.h
+FILE 4339 f:\sp\public\sdk\inc\winver.h
+FILE 4340 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4341 f:\sp\public\sdk\inc\windows.h
+FILE 4342 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4343 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4344 f:\sp\public\sdk\inc\reason.h
+FILE 4345 f:\sp\vctools\crt_bld\self_x86\crt\src\a_cmp.c
+FILE 4346 f:\sp\public\sdk\inc\specstrings.h
+FILE 4347 f:\sp\public\sdk\inc\basetsd.h
+FILE 4348 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4349 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4350 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4351 f:\sp\public\sdk\inc\stralign.h
+FILE 4352 f:\sp\public\sdk\inc\poppack.h
+FILE 4353 f:\sp\public\sdk\inc\winsvc.h
+FILE 4354 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4355 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4356 f:\sp\public\sdk\inc\windef.h
+FILE 4357 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4358 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4359 f:\sp\public\sdk\inc\winuser.h
+FILE 4360 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4361 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4362 f:\sp\public\sdk\inc\mcx.h
+FILE 4363 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4364 f:\sp\public\sdk\inc\guiddef.h
+FILE 4365 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4366 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4367 f:\sp\public\sdk\inc\winnt.h
+FILE 4368 f:\sp\public\sdk\inc\winnls.h
+FILE 4369 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4370 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4371 f:\sp\public\sdk\inc\winerror.h
+FILE 4372 f:\sp\public\sdk\inc\winreg.h
+FILE 4373 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4374 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4375 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4376 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4377 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4378 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4379 f:\sp\public\sdk\inc\tvout.h
+FILE 4380 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4381 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 4382 f:\sp\public\sdk\inc\poppack.h
+FILE 4383 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4384 f:\sp\public\sdk\inc\imm.h
+FILE 4385 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4386 f:\sp\public\sdk\inc\windef.h
+FILE 4387 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4388 f:\sp\public\sdk\inc\winver.h
+FILE 4389 f:\sp\public\sdk\inc\windows.h
+FILE 4390 f:\sp\public\sdk\inc\winnt.h
+FILE 4391 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4392 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4393 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4394 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4395 f:\sp\public\sdk\inc\winreg.h
+FILE 4396 f:\sp\public\sdk\inc\winbase.h
+FILE 4397 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 4398 f:\sp\public\sdk\inc\winerror.h
+FILE 4399 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4400 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 4401 f:\sp\public\sdk\inc\reason.h
+FILE 4402 f:\sp\public\sdk\inc\wincon.h
+FILE 4403 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4404 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4405 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4406 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4407 f:\sp\public\sdk\inc\mcx.h
+FILE 4408 f:\sp\public\sdk\inc\winuser.h
+FILE 4409 f:\sp\public\sdk\inc\winnls.h
+FILE 4410 f:\sp\public\sdk\inc\guiddef.h
+FILE 4411 f:\sp\public\sdk\inc\specstrings.h
+FILE 4412 f:\sp\public\sdk\inc\basetsd.h
+FILE 4413 f:\sp\public\sdk\inc\stralign.h
+FILE 4414 f:\sp\public\sdk\inc\tvout.h
+FILE 4415 f:\sp\public\sdk\inc\winsvc.h
+FILE 4416 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4417 f:\sp\public\sdk\inc\wingdi.h
+FILE 4418 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4419 f:\sp\public\sdk\inc\poppack.h
+FILE 4420 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4421 f:\sp\public\sdk\inc\imm.h
+FILE 4422 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4423 f:\sp\public\sdk\inc\windef.h
+FILE 4424 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4425 f:\sp\public\sdk\inc\winver.h
+FILE 4426 f:\sp\public\sdk\inc\windows.h
+FILE 4427 f:\sp\public\sdk\inc\winnt.h
+FILE 4428 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4429 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4430 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4431 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4432 f:\sp\public\sdk\inc\winreg.h
+FILE 4433 f:\sp\public\sdk\inc\winbase.h
+FILE 4434 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 4435 f:\sp\public\sdk\inc\winerror.h
+FILE 4436 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4437 f:\sp\public\sdk\inc\reason.h
+FILE 4438 f:\sp\public\sdk\inc\wincon.h
+FILE 4439 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4440 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4441 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4442 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4443 f:\sp\public\sdk\inc\mcx.h
+FILE 4444 f:\sp\public\sdk\inc\winuser.h
+FILE 4445 f:\sp\public\sdk\inc\winnls.h
+FILE 4446 f:\sp\public\sdk\inc\guiddef.h
+FILE 4447 f:\sp\public\sdk\inc\specstrings.h
+FILE 4448 f:\sp\public\sdk\inc\basetsd.h
+FILE 4449 f:\sp\public\sdk\inc\stralign.h
+FILE 4450 f:\sp\public\sdk\inc\tvout.h
+FILE 4451 f:\sp\public\sdk\inc\winsvc.h
+FILE 4452 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4453 f:\sp\public\sdk\inc\wingdi.h
+FILE 4454 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4455 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 4456 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 4457 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 4458 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 4459 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 4460 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 4461 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 4462 f:\sp\public\sdk\inc\ntldr.h
+FILE 4463 f:\sp\public\sdk\inc\ntpoapi.h
+FILE 4464 f:\sp\public\sdk\inc\ntexapi.h
+FILE 4465 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4466 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4467 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 4468 f:\sp\public\sdk\inc\ntdef.h
+FILE 4469 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 4470 f:\sp\public\sdk\inc\mce.h
+FILE 4471 f:\sp\public\sdk\inc\poppack.h
+FILE 4472 f:\sp\public\sdk\inc\ntimage.h
+FILE 4473 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4474 f:\sp\public\sdk\inc\ntpsapi.h
+FILE 4475 f:\sp\public\sdk\inc\nti386.h
+FILE 4476 f:\sp\public\sdk\inc\nt.h
+FILE 4477 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 4478 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 4479 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 4480 f:\sp\public\sdk\inc\specstrings.h
+FILE 4481 f:\sp\public\sdk\inc\basetsd.h
+FILE 4482 f:\sp\public\sdk\inc\ntxcapi.h
+FILE 4483 f:\sp\public\sdk\inc\guiddef.h
+FILE 4484 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 4485 f:\sp\public\sdk\inc\ntstatus.h
+FILE 4486 f:\sp\public\sdk\inc\ntkeapi.h
+FILE 4487 f:\sp\public\sdk\inc\ntconfig.h
+FILE 4488 f:\sp\public\sdk\inc\ntregapi.h
+FILE 4489 f:\sp\public\sdk\inc\ntmmapi.h
+FILE 4490 f:\sp\public\sdk\inc\ntobapi.h
+FILE 4491 f:\sp\public\sdk\inc\nxi386.h
+FILE 4492 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 4493 f:\sp\public\sdk\inc\ntioapi.h
+FILE 4494 f:\sp\public\sdk\inc\devioctl.h
+FILE 4495 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 4496 f:\sp\public\sdk\inc\ntseapi.h
+FILE 4497 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4498 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 4499 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 4500 f:\sp\public\sdk\inc\ntnls.h
+FILE 4501 f:\sp\public\sdk\inc\ntelfapi.h
+FILE 4502 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4503 f:\sp\public\sdk\inc\ntiolog.h
+FILE 4504 f:\sp\public\sdk\inc\ntlpcapi.h
+FILE 4505 f:\sp\public\sdk\inc\ntpnpapi.h
+FILE 4506 f:\sp\public\sdk\inc\cfg.h
+FILE 4507 f:\sp\public\sdk\inc\pebteb.h
+FILE 4508 f:\sp\public\sdk\inc\wincon.h
+FILE 4509 f:\sp\public\sdk\inc\imm.h
+FILE 4510 f:\sp\public\sdk\inc\winbase.h
+FILE 4511 f:\sp\public\sdk\inc\wingdi.h
+FILE 4512 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4513 f:\sp\public\sdk\inc\winver.h
+FILE 4514 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4515 f:\sp\public\sdk\inc\reason.h
+FILE 4516 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4517 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4518 f:\sp\vctools\crt_bld\self_x86\crt\src\mbsnbico.c
+FILE 4519 f:\sp\public\sdk\inc\specstrings.h
+FILE 4520 f:\sp\public\sdk\inc\basetsd.h
+FILE 4521 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4522 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4523 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4524 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4525 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4526 f:\sp\public\sdk\inc\stralign.h
+FILE 4527 f:\sp\public\sdk\inc\poppack.h
+FILE 4528 f:\sp\public\sdk\inc\winsvc.h
+FILE 4529 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4530 f:\sp\public\sdk\inc\windef.h
+FILE 4531 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4532 f:\sp\public\sdk\inc\winuser.h
+FILE 4533 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4534 f:\sp\public\sdk\inc\windows.h
+FILE 4535 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4536 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4537 f:\sp\public\sdk\inc\mcx.h
+FILE 4538 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4539 f:\sp\public\sdk\inc\guiddef.h
+FILE 4540 f:\sp\public\sdk\inc\winnt.h
+FILE 4541 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4542 f:\sp\public\sdk\inc\winnls.h
+FILE 4543 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4544 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4545 f:\sp\public\sdk\inc\winerror.h
+FILE 4546 f:\sp\public\sdk\inc\winreg.h
+FILE 4547 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4548 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4549 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4550 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4551 f:\sp\public\sdk\inc\tvout.h
+FILE 4552 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4553 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4554 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4555 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4556 f:\sp\public\sdk\inc\wincon.h
+FILE 4557 f:\sp\public\sdk\inc\imm.h
+FILE 4558 f:\sp\public\sdk\inc\winbase.h
+FILE 4559 f:\sp\public\sdk\inc\wingdi.h
+FILE 4560 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4561 f:\sp\public\sdk\inc\winver.h
+FILE 4562 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4563 f:\sp\public\sdk\inc\windows.h
+FILE 4564 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4565 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4566 f:\sp\public\sdk\inc\reason.h
+FILE 4567 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4568 f:\sp\vctools\crt_bld\self_x86\crt\src\mbschr.c
+FILE 4569 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4570 f:\sp\public\sdk\inc\specstrings.h
+FILE 4571 f:\sp\public\sdk\inc\basetsd.h
+FILE 4572 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4573 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4574 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4575 f:\sp\public\sdk\inc\stralign.h
+FILE 4576 f:\sp\public\sdk\inc\poppack.h
+FILE 4577 f:\sp\public\sdk\inc\winsvc.h
+FILE 4578 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4579 f:\sp\public\sdk\inc\windef.h
+FILE 4580 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4581 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4582 f:\sp\public\sdk\inc\winuser.h
+FILE 4583 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4584 f:\sp\public\sdk\inc\mcx.h
+FILE 4585 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4586 f:\sp\public\sdk\inc\guiddef.h
+FILE 4587 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4588 f:\sp\public\sdk\inc\winnt.h
+FILE 4589 f:\sp\public\sdk\inc\winnls.h
+FILE 4590 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4591 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4592 f:\sp\public\sdk\inc\winerror.h
+FILE 4593 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 4594 f:\sp\public\sdk\inc\winreg.h
+FILE 4595 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4596 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4597 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4598 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4599 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4600 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4601 f:\sp\public\sdk\inc\tvout.h
+FILE 4602 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4603 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4604 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4605 f:\sp\public\sdk\inc\wincon.h
+FILE 4606 f:\sp\public\sdk\inc\imm.h
+FILE 4607 f:\sp\public\sdk\inc\winbase.h
+FILE 4608 f:\sp\public\sdk\inc\wingdi.h
+FILE 4609 f:\sp\public\sdk\inc\winver.h
+FILE 4610 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4611 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4612 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4613 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4614 f:\sp\public\sdk\inc\reason.h
+FILE 4615 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 4616 f:\sp\public\sdk\inc\specstrings.h
+FILE 4617 f:\sp\public\sdk\inc\basetsd.h
+FILE 4618 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4619 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4620 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4621 f:\sp\public\sdk\inc\stralign.h
+FILE 4622 f:\sp\public\sdk\inc\poppack.h
+FILE 4623 f:\sp\public\sdk\inc\winsvc.h
+FILE 4624 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4625 f:\sp\public\sdk\inc\windef.h
+FILE 4626 f:\sp\public\sdk\inc\winuser.h
+FILE 4627 f:\sp\public\sdk\inc\windows.h
+FILE 4628 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4629 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4630 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4631 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4632 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4633 f:\sp\public\sdk\inc\mcx.h
+FILE 4634 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4635 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4636 f:\sp\public\sdk\inc\guiddef.h
+FILE 4637 f:\sp\public\sdk\inc\winnt.h
+FILE 4638 f:\sp\public\sdk\inc\winnls.h
+FILE 4639 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4640 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4641 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4642 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4643 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4644 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4645 f:\sp\public\sdk\inc\winerror.h
+FILE 4646 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 4647 f:\sp\public\sdk\inc\winreg.h
+FILE 4648 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4649 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4650 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4651 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4652 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4653 f:\sp\public\sdk\inc\tvout.h
+FILE 4654 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4655 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4656 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4657 f:\sp\public\sdk\inc\wincon.h
+FILE 4658 f:\sp\public\sdk\inc\imm.h
+FILE 4659 f:\sp\public\sdk\inc\winbase.h
+FILE 4660 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4661 f:\sp\public\sdk\inc\wingdi.h
+FILE 4662 f:\sp\public\sdk\inc\windef.h
+FILE 4663 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4664 f:\sp\public\sdk\inc\winver.h
+FILE 4665 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4666 f:\sp\public\sdk\inc\reason.h
+FILE 4667 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4668 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4669 f:\sp\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 4670 f:\sp\public\sdk\inc\winnt.h
+FILE 4671 f:\sp\public\sdk\inc\specstrings.h
+FILE 4672 f:\sp\public\sdk\inc\basetsd.h
+FILE 4673 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4674 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4675 f:\sp\public\sdk\inc\stralign.h
+FILE 4676 f:\sp\public\sdk\inc\poppack.h
+FILE 4677 f:\sp\public\sdk\inc\winsvc.h
+FILE 4678 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4679 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4680 f:\sp\public\sdk\inc\winuser.h
+FILE 4681 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4682 f:\sp\public\sdk\inc\mcx.h
+FILE 4683 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4684 f:\sp\public\sdk\inc\guiddef.h
+FILE 4685 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4686 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4687 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4688 f:\sp\public\sdk\inc\windows.h
+FILE 4689 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4690 f:\sp\public\sdk\inc\winnls.h
+FILE 4691 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4692 f:\sp\public\sdk\inc\winerror.h
+FILE 4693 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4694 f:\sp\public\sdk\inc\winreg.h
+FILE 4695 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4696 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4697 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4698 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4699 f:\sp\public\sdk\inc\tvout.h
+FILE 4700 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4701 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4702 f:\sp\public\sdk\inc\imm.h
+FILE 4703 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4704 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4705 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4706 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4707 f:\sp\public\sdk\inc\windef.h
+FILE 4708 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4709 f:\sp\public\sdk\inc\winver.h
+FILE 4710 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4711 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4712 f:\sp\public\sdk\inc\winnt.h
+FILE 4713 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4714 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4715 f:\sp\public\sdk\inc\winreg.h
+FILE 4716 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4717 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4718 f:\sp\public\sdk\inc\winbase.h
+FILE 4719 f:\sp\public\sdk\inc\winerror.h
+FILE 4720 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4721 f:\sp\vctools\crt_bld\self_x86\crt\src\putwch.c
+FILE 4722 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4723 f:\sp\public\sdk\inc\reason.h
+FILE 4724 f:\sp\public\sdk\inc\wincon.h
+FILE 4725 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4726 f:\sp\public\sdk\inc\mcx.h
+FILE 4727 f:\sp\public\sdk\inc\winuser.h
+FILE 4728 f:\sp\public\sdk\inc\winnls.h
+FILE 4729 f:\sp\public\sdk\inc\guiddef.h
+FILE 4730 f:\sp\public\sdk\inc\stralign.h
+FILE 4731 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4732 f:\sp\public\sdk\inc\specstrings.h
+FILE 4733 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 4734 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4735 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4736 f:\sp\public\sdk\inc\basetsd.h
+FILE 4737 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4738 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4739 f:\sp\public\sdk\inc\windows.h
+FILE 4740 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4741 f:\sp\public\sdk\inc\tvout.h
+FILE 4742 f:\sp\public\sdk\inc\winsvc.h
+FILE 4743 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4744 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4745 f:\sp\public\sdk\inc\wingdi.h
+FILE 4746 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4747 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 4748 f:\sp\public\sdk\inc\poppack.h
+FILE 4749 f:\sp\public\sdk\inc\reason.h
+FILE 4750 f:\sp\public\sdk\inc\wincon.h
+FILE 4751 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4752 f:\sp\public\sdk\inc\poppack.h
+FILE 4753 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4754 f:\sp\public\sdk\inc\mcx.h
+FILE 4755 f:\sp\public\sdk\inc\winuser.h
+FILE 4756 f:\sp\public\sdk\inc\winnls.h
+FILE 4757 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4758 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4759 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4760 f:\sp\public\sdk\inc\stralign.h
+FILE 4761 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4762 f:\sp\public\sdk\inc\windef.h
+FILE 4763 f:\sp\public\sdk\inc\tvout.h
+FILE 4764 f:\sp\public\sdk\inc\winsvc.h
+FILE 4765 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 4766 f:\sp\public\sdk\inc\wingdi.h
+FILE 4767 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4768 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4769 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4770 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4771 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4772 f:\sp\public\sdk\inc\winnt.h
+FILE 4773 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4774 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4775 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4776 f:\sp\public\sdk\inc\imm.h
+FILE 4777 f:\sp\vctools\crt_bld\self_x86\crt\src\write.c
+FILE 4778 f:\sp\public\sdk\inc\winbase.h
+FILE 4779 f:\sp\public\sdk\inc\winerror.h
+FILE 4780 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4781 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4782 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4783 f:\sp\public\sdk\inc\winver.h
+FILE 4784 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 4785 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4786 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4787 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4788 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4789 f:\sp\public\sdk\inc\winreg.h
+FILE 4790 f:\sp\public\sdk\inc\guiddef.h
+FILE 4791 f:\sp\public\sdk\inc\windows.h
+FILE 4792 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4793 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4794 f:\sp\public\sdk\inc\specstrings.h
+FILE 4795 f:\sp\public\sdk\inc\basetsd.h
+FILE 4796 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4797 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4798 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4799 f:\sp\public\sdk\inc\reason.h
+FILE 4800 f:\sp\public\sdk\inc\wincon.h
+FILE 4801 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4802 f:\sp\public\sdk\inc\poppack.h
+FILE 4803 f:\sp\public\sdk\inc\mcx.h
+FILE 4804 f:\sp\public\sdk\inc\winuser.h
+FILE 4805 f:\sp\public\sdk\inc\winnls.h
+FILE 4806 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4807 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4808 f:\sp\public\sdk\inc\stralign.h
+FILE 4809 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4810 f:\sp\public\sdk\inc\windef.h
+FILE 4811 f:\sp\public\sdk\inc\tvout.h
+FILE 4812 f:\sp\public\sdk\inc\winsvc.h
+FILE 4813 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4814 f:\sp\public\sdk\inc\wingdi.h
+FILE 4815 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4816 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4817 f:\sp\public\sdk\inc\winnt.h
+FILE 4818 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4819 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4820 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4821 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4822 f:\sp\public\sdk\inc\imm.h
+FILE 4823 f:\sp\vctools\crt_bld\self_x86\crt\src\fcntl.h
+FILE 4824 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4825 f:\sp\vctools\crt_bld\self_x86\crt\src\osfinfo.c
+FILE 4826 f:\sp\public\sdk\inc\winbase.h
+FILE 4827 f:\sp\public\sdk\inc\winerror.h
+FILE 4828 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4829 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4830 f:\sp\public\sdk\inc\winver.h
+FILE 4831 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4832 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4833 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4834 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4835 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4836 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4837 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4838 f:\sp\public\sdk\inc\winreg.h
+FILE 4839 f:\sp\public\sdk\inc\guiddef.h
+FILE 4840 f:\sp\public\sdk\inc\windows.h
+FILE 4841 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4842 f:\sp\public\sdk\inc\specstrings.h
+FILE 4843 f:\sp\public\sdk\inc\basetsd.h
+FILE 4844 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4845 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4846 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4847 f:\sp\public\sdk\inc\reason.h
+FILE 4848 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4849 f:\sp\public\sdk\inc\wincon.h
+FILE 4850 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4851 f:\sp\public\sdk\inc\poppack.h
+FILE 4852 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4853 f:\sp\public\sdk\inc\mcx.h
+FILE 4854 f:\sp\public\sdk\inc\winuser.h
+FILE 4855 f:\sp\public\sdk\inc\winnls.h
+FILE 4856 f:\sp\public\sdk\inc\stralign.h
+FILE 4857 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4858 f:\sp\public\sdk\inc\windef.h
+FILE 4859 f:\sp\public\sdk\inc\tvout.h
+FILE 4860 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4861 f:\sp\public\sdk\inc\winsvc.h
+FILE 4862 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4863 f:\sp\public\sdk\inc\wingdi.h
+FILE 4864 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4865 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4866 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4867 f:\sp\public\sdk\inc\winnt.h
+FILE 4868 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4869 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4870 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4871 f:\sp\public\sdk\inc\imm.h
+FILE 4872 f:\sp\vctools\crt_bld\self_x86\crt\src\lseeki64.c
+FILE 4873 f:\sp\public\sdk\inc\winbase.h
+FILE 4874 f:\sp\public\sdk\inc\winerror.h
+FILE 4875 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4876 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4877 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4878 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4879 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4880 f:\sp\public\sdk\inc\winver.h
+FILE 4881 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4882 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4883 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4884 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4885 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4886 f:\sp\public\sdk\inc\winreg.h
+FILE 4887 f:\sp\public\sdk\inc\guiddef.h
+FILE 4888 f:\sp\public\sdk\inc\windows.h
+FILE 4889 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4890 f:\sp\public\sdk\inc\specstrings.h
+FILE 4891 f:\sp\public\sdk\inc\basetsd.h
+FILE 4892 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4893 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4894 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4895 f:\sp\public\sdk\inc\poppack.h
+FILE 4896 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4897 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4898 f:\sp\public\sdk\inc\imm.h
+FILE 4899 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4900 f:\sp\public\sdk\inc\windef.h
+FILE 4901 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4902 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4903 f:\sp\public\sdk\inc\winver.h
+FILE 4904 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4905 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4906 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4907 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4908 f:\sp\public\sdk\inc\winnt.h
+FILE 4909 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4910 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4911 f:\sp\public\sdk\inc\winreg.h
+FILE 4912 f:\sp\vctools\crt_bld\self_x86\crt\src\isatty.c
+FILE 4913 f:\sp\public\sdk\inc\winbase.h
+FILE 4914 f:\sp\public\sdk\inc\winerror.h
+FILE 4915 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4916 f:\sp\public\sdk\inc\reason.h
+FILE 4917 f:\sp\public\sdk\inc\wincon.h
+FILE 4918 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4919 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4920 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4921 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4922 f:\sp\public\sdk\inc\mcx.h
+FILE 4923 f:\sp\public\sdk\inc\winuser.h
+FILE 4924 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4925 f:\sp\public\sdk\inc\winnls.h
+FILE 4926 f:\sp\public\sdk\inc\guiddef.h
+FILE 4927 f:\sp\public\sdk\inc\windows.h
+FILE 4928 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4929 f:\sp\public\sdk\inc\specstrings.h
+FILE 4930 f:\sp\public\sdk\inc\basetsd.h
+FILE 4931 f:\sp\public\sdk\inc\stralign.h
+FILE 4932 f:\sp\public\sdk\inc\tvout.h
+FILE 4933 f:\sp\public\sdk\inc\winsvc.h
+FILE 4934 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4935 f:\sp\public\sdk\inc\wingdi.h
+FILE 4936 f:\sp\public\sdk\inc\poppack.h
+FILE 4937 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4938 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4939 f:\sp\public\sdk\inc\imm.h
+FILE 4940 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4941 f:\sp\public\sdk\inc\windef.h
+FILE 4942 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4943 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4944 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4945 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4946 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 4947 f:\sp\public\sdk\inc\winver.h
+FILE 4948 f:\sp\public\sdk\inc\windows.h
+FILE 4949 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4950 f:\sp\public\sdk\inc\winnt.h
+FILE 4951 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4952 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4953 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4954 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4955 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4956 f:\sp\public\sdk\inc\winreg.h
+FILE 4957 f:\sp\public\sdk\inc\winbase.h
+FILE 4958 f:\sp\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 4959 f:\sp\public\sdk\inc\winerror.h
+FILE 4960 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4961 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4962 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4963 f:\sp\public\sdk\inc\reason.h
+FILE 4964 f:\sp\public\sdk\inc\wincon.h
+FILE 4965 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4966 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4967 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4968 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4969 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4970 f:\sp\public\sdk\inc\mcx.h
+FILE 4971 f:\sp\public\sdk\inc\winuser.h
+FILE 4972 f:\sp\public\sdk\inc\winnls.h
+FILE 4973 f:\sp\public\sdk\inc\guiddef.h
+FILE 4974 f:\sp\public\sdk\inc\specstrings.h
+FILE 4975 f:\sp\public\sdk\inc\basetsd.h
+FILE 4976 f:\sp\public\sdk\inc\stralign.h
+FILE 4977 f:\sp\public\sdk\inc\tvout.h
+FILE 4978 f:\sp\public\sdk\inc\winsvc.h
+FILE 4979 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4980 f:\sp\public\sdk\inc\wingdi.h
+FILE 4981 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4982 f:\sp\public\sdk\inc\reason.h
+FILE 4983 f:\sp\public\sdk\inc\wincon.h
+FILE 4984 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4985 f:\sp\public\sdk\inc\mcx.h
+FILE 4986 f:\sp\public\sdk\inc\winuser.h
+FILE 4987 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4988 f:\sp\public\sdk\inc\winnls.h
+FILE 4989 f:\sp\public\sdk\inc\guiddef.h
+FILE 4990 f:\sp\public\sdk\inc\windows.h
+FILE 4991 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4992 f:\sp\public\sdk\inc\specstrings.h
+FILE 4993 f:\sp\public\sdk\inc\basetsd.h
+FILE 4994 f:\sp\public\sdk\inc\stralign.h
+FILE 4995 f:\sp\public\sdk\inc\tvout.h
+FILE 4996 f:\sp\public\sdk\inc\winsvc.h
+FILE 4997 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4998 f:\sp\public\sdk\inc\wingdi.h
+FILE 4999 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5000 f:\sp\public\sdk\inc\poppack.h
+FILE 5001 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 5002 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 5003 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5004 f:\sp\public\sdk\inc\imm.h
+FILE 5005 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5006 f:\sp\public\sdk\inc\windef.h
+FILE 5007 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5008 f:\sp\vctools\crt_bld\self_x86\crt\src\initcon.c
+FILE 5009 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5010 f:\sp\public\sdk\inc\winver.h
+FILE 5011 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5012 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5013 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5014 f:\sp\public\sdk\inc\winnt.h
+FILE 5015 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5016 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5017 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5018 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5019 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5020 f:\sp\public\sdk\inc\winreg.h
+FILE 5021 f:\sp\public\sdk\inc\winbase.h
+FILE 5022 f:\sp\public\sdk\inc\winerror.h
+FILE 5023 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5024 f:\sp\public\sdk\inc\poppack.h
+FILE 5025 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 5026 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5027 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5028 f:\sp\public\sdk\inc\imm.h
+FILE 5029 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5030 f:\sp\public\sdk\inc\windef.h
+FILE 5031 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5032 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5034 f:\sp\public\sdk\inc\winver.h
+FILE 5035 f:\sp\public\sdk\inc\windows.h
+FILE 5036 f:\sp\public\sdk\inc\winnt.h
+FILE 5037 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5038 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5039 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5040 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5041 f:\sp\public\sdk\inc\winreg.h
+FILE 5042 f:\sp\public\sdk\inc\winbase.h
+FILE 5043 f:\sp\vctools\crt_bld\self_x86\crt\src\commit.c
+FILE 5044 f:\sp\public\sdk\inc\winerror.h
+FILE 5045 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5046 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5047 f:\sp\public\sdk\inc\reason.h
+FILE 5048 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 5049 f:\sp\public\sdk\inc\wincon.h
+FILE 5050 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5051 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5052 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5053 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5054 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5055 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5056 f:\sp\public\sdk\inc\mcx.h
+FILE 5057 f:\sp\public\sdk\inc\winuser.h
+FILE 5058 f:\sp\public\sdk\inc\winnls.h
+FILE 5059 f:\sp\public\sdk\inc\guiddef.h
+FILE 5060 f:\sp\public\sdk\inc\specstrings.h
+FILE 5061 f:\sp\public\sdk\inc\basetsd.h
+FILE 5062 f:\sp\public\sdk\inc\stralign.h
+FILE 5063 f:\sp\public\sdk\inc\tvout.h
+FILE 5064 f:\sp\public\sdk\inc\winsvc.h
+FILE 5065 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5066 f:\sp\public\sdk\inc\wingdi.h
+FILE 5067 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5068 f:\sp\public\sdk\inc\reason.h
+FILE 5069 f:\sp\public\sdk\inc\wincon.h
+FILE 5070 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 5071 f:\sp\public\sdk\inc\poppack.h
+FILE 5072 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5073 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5074 f:\sp\public\sdk\inc\mcx.h
+FILE 5075 f:\sp\public\sdk\inc\winuser.h
+FILE 5076 f:\sp\public\sdk\inc\winnls.h
+FILE 5077 f:\sp\public\sdk\inc\stralign.h
+FILE 5078 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5079 f:\sp\public\sdk\inc\windef.h
+FILE 5080 f:\sp\public\sdk\inc\tvout.h
+FILE 5081 f:\sp\public\sdk\inc\winsvc.h
+FILE 5082 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5083 f:\sp\public\sdk\inc\wingdi.h
+FILE 5084 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 5085 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5086 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5087 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 5088 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5089 f:\sp\public\sdk\inc\winnt.h
+FILE 5090 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5091 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5092 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5093 f:\sp\public\sdk\inc\imm.h
+FILE 5094 f:\sp\vctools\crt_bld\self_x86\crt\src\close.c
+FILE 5095 f:\sp\public\sdk\inc\winbase.h
+FILE 5096 f:\sp\public\sdk\inc\winerror.h
+FILE 5097 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5098 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5099 f:\sp\public\sdk\inc\winver.h
+FILE 5100 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5101 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5102 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5103 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5104 f:\sp\public\sdk\inc\winreg.h
+FILE 5105 f:\sp\public\sdk\inc\guiddef.h
+FILE 5106 f:\sp\public\sdk\inc\windows.h
+FILE 5107 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5108 f:\sp\public\sdk\inc\specstrings.h
+FILE 5109 f:\sp\public\sdk\inc\basetsd.h
+FILE 5110 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5111 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5112 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5113 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\ulldvrm.asm
+FILE 5114 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 5115 F:\SP\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 5116 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\llmul.asm
+FILE 5117 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 5118 F:\SP\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 5119 f:\sp\vctools\crt_bld\self_x86\crt\src\use_ansi.h
+FILE 5120 f:\sp\vctools\crt_bld\self_x86\crt\src\new
+FILE 5121 f:\sp\vctools\crt_bld\self_x86\crt\src\exception
+FILE 5122 f:\sp\vctools\crt_bld\self_x86\crt\src\xstddef
+FILE 5123 f:\sp\vctools\crt_bld\self_x86\crt\src\new.cpp
+FILE 5124 f:\sp\vctools\crt_bld\self_x86\crt\src\cstddef
+FILE 5125 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5126 f:\sp\vctools\crt_bld\self_x86\crt\src\eh.h
+FILE 5127 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdlib
+FILE 5128 f:\sp\vctools\crt_bld\self_x86\crt\src\yvals.h
+FILE 5129 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5130 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5131 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5132 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5133 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5134 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5135 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5136 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5137 f:\sp\public\sdk\inc\poppack.h
+FILE 5138 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5139 f:\sp\public\sdk\inc\imm.h
+FILE 5140 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5141 f:\sp\public\sdk\inc\windef.h
+FILE 5142 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5143 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5144 f:\sp\public\sdk\inc\winver.h
+FILE 5145 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5146 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5147 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5148 f:\sp\public\sdk\inc\winnt.h
+FILE 5149 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5150 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5151 f:\sp\public\sdk\inc\winreg.h
+FILE 5152 f:\sp\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 5153 f:\sp\public\sdk\inc\winbase.h
+FILE 5154 f:\sp\public\sdk\inc\winerror.h
+FILE 5155 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5156 f:\sp\public\sdk\inc\reason.h
+FILE 5157 f:\sp\public\sdk\inc\wincon.h
+FILE 5158 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5159 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5160 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5161 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5162 f:\sp\public\sdk\inc\mcx.h
+FILE 5163 f:\sp\public\sdk\inc\winuser.h
+FILE 5164 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5165 f:\sp\public\sdk\inc\winnls.h
+FILE 5166 f:\sp\public\sdk\inc\guiddef.h
+FILE 5167 f:\sp\public\sdk\inc\windows.h
+FILE 5168 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5169 f:\sp\public\sdk\inc\specstrings.h
+FILE 5170 f:\sp\public\sdk\inc\basetsd.h
+FILE 5171 f:\sp\public\sdk\inc\stralign.h
+FILE 5172 f:\sp\public\sdk\inc\tvout.h
+FILE 5173 f:\sp\public\sdk\inc\winsvc.h
+FILE 5174 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5175 f:\sp\public\sdk\inc\wingdi.h
+FILE 5176 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5177 f:\sp\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 5178 f:\sp\public\sdk\inc\winerror.h
+FILE 5179 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5180 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5181 f:\sp\public\sdk\inc\winreg.h
+FILE 5182 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5183 f:\sp\public\sdk\inc\tvout.h
+FILE 5184 f:\sp\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 5185 f:\sp\public\sdk\inc\wincon.h
+FILE 5186 f:\sp\public\sdk\inc\imm.h
+FILE 5187 f:\sp\public\sdk\inc\winbase.h
+FILE 5188 f:\sp\public\sdk\inc\wingdi.h
+FILE 5189 f:\sp\public\sdk\inc\winver.h
+FILE 5190 f:\sp\public\sdk\inc\windows.h
+FILE 5191 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5192 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5193 f:\sp\public\sdk\inc\reason.h
+FILE 5194 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5195 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5196 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5197 f:\sp\public\sdk\inc\specstrings.h
+FILE 5198 f:\sp\public\sdk\inc\basetsd.h
+FILE 5199 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5200 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5201 f:\sp\public\sdk\inc\stralign.h
+FILE 5202 f:\sp\public\sdk\inc\poppack.h
+FILE 5203 f:\sp\public\sdk\inc\winsvc.h
+FILE 5204 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5205 f:\sp\public\sdk\inc\windef.h
+FILE 5206 f:\sp\public\sdk\inc\winuser.h
+FILE 5207 f:\sp\public\sdk\inc\mcx.h
+FILE 5208 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5209 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5210 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5211 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5212 f:\sp\public\sdk\inc\guiddef.h
+FILE 5213 f:\sp\public\sdk\inc\winnt.h
+FILE 5214 f:\sp\public\sdk\inc\winnls.h
+FILE 5215 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5216 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5217 f:\sp\public\sdk\inc\tvout.h
+FILE 5218 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5219 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 5220 f:\sp\public\sdk\inc\wincon.h
+FILE 5221 f:\sp\public\sdk\inc\imm.h
+FILE 5222 f:\sp\public\sdk\inc\winbase.h
+FILE 5223 f:\sp\public\sdk\inc\wingdi.h
+FILE 5224 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5225 f:\sp\public\sdk\inc\winver.h
+FILE 5226 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5227 f:\sp\public\sdk\inc\windows.h
+FILE 5228 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5229 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5230 f:\sp\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 5231 f:\sp\public\sdk\inc\reason.h
+FILE 5232 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5233 f:\sp\public\sdk\inc\specstrings.h
+FILE 5234 f:\sp\public\sdk\inc\basetsd.h
+FILE 5235 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5236 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5237 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5238 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5239 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5240 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5241 f:\sp\public\sdk\inc\stralign.h
+FILE 5242 f:\sp\public\sdk\inc\poppack.h
+FILE 5243 f:\sp\public\sdk\inc\winsvc.h
+FILE 5244 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5245 f:\sp\public\sdk\inc\windef.h
+FILE 5246 f:\sp\public\sdk\inc\winuser.h
+FILE 5247 f:\sp\public\sdk\inc\mcx.h
+FILE 5248 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5249 f:\sp\public\sdk\inc\guiddef.h
+FILE 5250 f:\sp\public\sdk\inc\winnt.h
+FILE 5251 f:\sp\public\sdk\inc\winnls.h
+FILE 5252 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5253 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5254 f:\sp\public\sdk\inc\winerror.h
+FILE 5255 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5256 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5257 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5258 f:\sp\public\sdk\inc\winreg.h
+FILE 5259 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5260 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5261 f:\sp\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 5262 f:\sp\public\sdk\inc\winsvc.h
+FILE 5263 f:\sp\public\sdk\inc\wingdi.h
+FILE 5264 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5265 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5266 f:\sp\public\sdk\inc\poppack.h
+FILE 5267 f:\sp\public\sdk\inc\winnt.h
+FILE 5268 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5269 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5270 f:\sp\public\sdk\inc\imm.h
+FILE 5271 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5272 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5274 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5275 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5276 f:\sp\public\sdk\inc\winver.h
+FILE 5277 f:\sp\public\sdk\inc\guiddef.h
+FILE 5278 f:\sp\public\sdk\inc\specstrings.h
+FILE 5279 f:\sp\public\sdk\inc\basetsd.h
+FILE 5280 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5281 f:\sp\vctools\crt_bld\self_x86\crt\src\sbheap.c
+FILE 5282 f:\sp\public\sdk\inc\windows.h
+FILE 5283 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5284 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5285 f:\sp\public\sdk\inc\winreg.h
+FILE 5286 f:\sp\public\sdk\inc\winbase.h
+FILE 5287 f:\sp\public\sdk\inc\winerror.h
+FILE 5288 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5289 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5290 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5291 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5292 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5293 f:\sp\public\sdk\inc\reason.h
+FILE 5294 f:\sp\public\sdk\inc\wincon.h
+FILE 5295 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5296 f:\sp\public\sdk\inc\mcx.h
+FILE 5297 f:\sp\public\sdk\inc\winuser.h
+FILE 5298 f:\sp\public\sdk\inc\winnls.h
+FILE 5299 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5300 f:\sp\public\sdk\inc\windef.h
+FILE 5301 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5302 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5303 f:\sp\public\sdk\inc\stralign.h
+FILE 5304 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5305 f:\sp\public\sdk\inc\tvout.h
+FILE 5306 f:\sp\public\sdk\inc\winver.h
+FILE 5307 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5308 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5309 f:\sp\public\sdk\inc\guiddef.h
+FILE 5310 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5311 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5312 f:\sp\public\sdk\inc\specstrings.h
+FILE 5313 f:\sp\public\sdk\inc\basetsd.h
+FILE 5314 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5315 f:\sp\public\sdk\inc\windows.h
+FILE 5316 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5317 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5318 f:\sp\public\sdk\inc\winreg.h
+FILE 5319 f:\sp\public\sdk\inc\winbase.h
+FILE 5320 f:\sp\public\sdk\inc\winerror.h
+FILE 5321 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5322 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5323 f:\sp\public\sdk\inc\reason.h
+FILE 5324 f:\sp\public\sdk\inc\wincon.h
+FILE 5325 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5326 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5327 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5328 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5329 f:\sp\public\sdk\inc\mcx.h
+FILE 5330 f:\sp\public\sdk\inc\winuser.h
+FILE 5331 f:\sp\public\sdk\inc\winnls.h
+FILE 5332 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5333 f:\sp\public\sdk\inc\windef.h
+FILE 5334 f:\sp\public\sdk\inc\stralign.h
+FILE 5335 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5336 f:\sp\public\sdk\inc\tvout.h
+FILE 5337 f:\sp\public\sdk\inc\winsvc.h
+FILE 5338 f:\sp\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 5339 f:\sp\public\sdk\inc\wingdi.h
+FILE 5340 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5341 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5342 f:\sp\public\sdk\inc\poppack.h
+FILE 5343 f:\sp\public\sdk\inc\winnt.h
+FILE 5344 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5346 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5347 f:\sp\public\sdk\inc\imm.h
+FILE 5348 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5349 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5350 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5351 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5352 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5353 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5354 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5355 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5356 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5357 f:\sp\public\sdk\inc\mcx.h
+FILE 5358 f:\sp\public\sdk\inc\winuser.h
+FILE 5359 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5360 f:\sp\public\sdk\inc\winnls.h
+FILE 5361 f:\sp\public\sdk\inc\guiddef.h
+FILE 5362 f:\sp\public\sdk\inc\windows.h
+FILE 5363 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5364 f:\sp\public\sdk\inc\specstrings.h
+FILE 5365 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5366 f:\sp\public\sdk\inc\basetsd.h
+FILE 5367 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5368 f:\sp\public\sdk\inc\stralign.h
+FILE 5369 f:\sp\public\sdk\inc\tvout.h
+FILE 5370 f:\sp\public\sdk\inc\winsvc.h
+FILE 5371 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5372 f:\sp\public\sdk\inc\wingdi.h
+FILE 5373 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5374 f:\sp\public\sdk\inc\poppack.h
+FILE 5375 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5376 f:\sp\public\sdk\inc\imm.h
+FILE 5377 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5378 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5379 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5380 f:\sp\public\sdk\inc\windef.h
+FILE 5381 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5382 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5383 f:\sp\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 5384 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5385 f:\sp\public\sdk\inc\winver.h
+FILE 5386 f:\sp\public\sdk\inc\winnt.h
+FILE 5387 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5388 f:\sp\public\sdk\inc\winreg.h
+FILE 5389 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5390 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5391 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5392 f:\sp\public\sdk\inc\winbase.h
+FILE 5393 f:\sp\public\sdk\inc\winerror.h
+FILE 5394 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5395 f:\sp\public\sdk\inc\reason.h
+FILE 5396 f:\sp\public\sdk\inc\wincon.h
+FILE 5397 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5398 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5399 f:\sp\public\sdk\inc\mcx.h
+FILE 5400 f:\sp\public\sdk\inc\winuser.h
+FILE 5401 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5402 f:\sp\public\sdk\inc\winnls.h
+FILE 5403 f:\sp\public\sdk\inc\guiddef.h
+FILE 5404 f:\sp\public\sdk\inc\windows.h
+FILE 5405 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5406 f:\sp\public\sdk\inc\specstrings.h
+FILE 5407 f:\sp\public\sdk\inc\basetsd.h
+FILE 5408 f:\sp\public\sdk\inc\stralign.h
+FILE 5409 f:\sp\public\sdk\inc\tvout.h
+FILE 5410 f:\sp\public\sdk\inc\winsvc.h
+FILE 5411 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5412 f:\sp\public\sdk\inc\wingdi.h
+FILE 5413 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5414 f:\sp\public\sdk\inc\poppack.h
+FILE 5415 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5416 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5417 f:\sp\public\sdk\inc\imm.h
+FILE 5418 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5419 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5420 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5421 f:\sp\public\sdk\inc\windef.h
+FILE 5422 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5423 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5424 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5425 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 5426 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5427 f:\sp\public\sdk\inc\winver.h
+FILE 5428 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5429 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5430 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 5431 f:\sp\public\sdk\inc\winnt.h
+FILE 5432 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5433 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5434 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5435 f:\sp\public\sdk\inc\winreg.h
+FILE 5436 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5437 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5438 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5439 f:\sp\public\sdk\inc\winbase.h
+FILE 5440 f:\sp\public\sdk\inc\winerror.h
+FILE 5441 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5442 f:\sp\public\sdk\inc\reason.h
+FILE 5443 f:\sp\public\sdk\inc\wincon.h
+FILE 5444 f:\sp\public\sdk\inc\winver.h
+FILE 5445 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5446 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5447 f:\sp\public\sdk\inc\winnt.h
+FILE 5448 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5449 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5450 f:\sp\public\sdk\inc\winreg.h
+FILE 5451 f:\sp\public\sdk\inc\winbase.h
+FILE 5452 f:\sp\public\sdk\inc\winerror.h
+FILE 5453 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5454 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5455 f:\sp\public\sdk\inc\reason.h
+FILE 5456 f:\sp\public\sdk\inc\wincon.h
+FILE 5457 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5458 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5459 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5460 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5461 f:\sp\public\sdk\inc\mcx.h
+FILE 5462 f:\sp\public\sdk\inc\winuser.h
+FILE 5463 f:\sp\public\sdk\inc\winnls.h
+FILE 5464 f:\sp\public\sdk\inc\guiddef.h
+FILE 5465 f:\sp\public\sdk\inc\stralign.h
+FILE 5466 f:\sp\public\sdk\inc\specstrings.h
+FILE 5467 f:\sp\public\sdk\inc\basetsd.h
+FILE 5468 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5469 f:\sp\public\sdk\inc\windows.h
+FILE 5470 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5471 f:\sp\public\sdk\inc\tvout.h
+FILE 5472 f:\sp\public\sdk\inc\winsvc.h
+FILE 5473 f:\sp\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 5474 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5475 f:\sp\public\sdk\inc\wingdi.h
+FILE 5476 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5477 f:\sp\public\sdk\inc\poppack.h
+FILE 5478 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5479 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5480 f:\sp\public\sdk\inc\imm.h
+FILE 5481 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5482 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5483 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5484 f:\sp\public\sdk\inc\windef.h
+FILE 5485 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5486 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5487 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5488 f:\sp\public\sdk\inc\mcx.h
+FILE 5489 f:\sp\public\sdk\inc\winuser.h
+FILE 5490 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5491 f:\sp\public\sdk\inc\winnls.h
+FILE 5492 f:\sp\public\sdk\inc\guiddef.h
+FILE 5493 f:\sp\public\sdk\inc\windows.h
+FILE 5494 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5495 f:\sp\public\sdk\inc\specstrings.h
+FILE 5496 f:\sp\public\sdk\inc\basetsd.h
+FILE 5497 f:\sp\public\sdk\inc\stralign.h
+FILE 5498 f:\sp\public\sdk\inc\tvout.h
+FILE 5499 f:\sp\public\sdk\inc\winsvc.h
+FILE 5500 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5501 f:\sp\public\sdk\inc\wingdi.h
+FILE 5502 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5503 f:\sp\public\sdk\inc\poppack.h
+FILE 5504 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5505 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5506 f:\sp\public\sdk\inc\imm.h
+FILE 5507 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5508 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5509 f:\sp\public\sdk\inc\windef.h
+FILE 5510 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5511 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5512 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5513 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5514 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5515 f:\sp\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 5516 f:\sp\public\sdk\inc\winver.h
+FILE 5517 f:\sp\public\sdk\inc\winnt.h
+FILE 5518 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5519 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5520 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5521 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5522 f:\sp\public\sdk\inc\winreg.h
+FILE 5523 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5524 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5525 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5526 f:\sp\public\sdk\inc\winbase.h
+FILE 5527 f:\sp\public\sdk\inc\winerror.h
+FILE 5528 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5529 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5530 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5531 f:\sp\public\sdk\inc\reason.h
+FILE 5532 f:\sp\public\sdk\inc\wincon.h
+FILE 5533 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5534 f:\sp\public\sdk\inc\mcx.h
+FILE 5535 f:\sp\public\sdk\inc\winuser.h
+FILE 5536 f:\sp\public\sdk\inc\winnls.h
+FILE 5537 f:\sp\public\sdk\inc\guiddef.h
+FILE 5538 f:\sp\public\sdk\inc\windows.h
+FILE 5539 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5540 f:\sp\public\sdk\inc\specstrings.h
+FILE 5541 f:\sp\public\sdk\inc\basetsd.h
+FILE 5542 f:\sp\public\sdk\inc\stralign.h
+FILE 5543 f:\sp\public\sdk\inc\tvout.h
+FILE 5544 f:\sp\public\sdk\inc\winsvc.h
+FILE 5545 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5546 f:\sp\public\sdk\inc\wingdi.h
+FILE 5547 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5548 f:\sp\public\sdk\inc\poppack.h
+FILE 5549 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5550 f:\sp\public\sdk\inc\imm.h
+FILE 5551 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5552 f:\sp\public\sdk\inc\windef.h
+FILE 5553 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5554 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5555 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5556 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5557 f:\sp\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 5558 f:\sp\public\sdk\inc\winver.h
+FILE 5559 f:\sp\public\sdk\inc\winnt.h
+FILE 5560 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5561 f:\sp\public\sdk\inc\winreg.h
+FILE 5562 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5563 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5564 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5565 f:\sp\public\sdk\inc\winbase.h
+FILE 5566 f:\sp\public\sdk\inc\winerror.h
+FILE 5567 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5568 f:\sp\public\sdk\inc\reason.h
+FILE 5569 f:\sp\public\sdk\inc\wincon.h
+FILE 5570 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5571 f:\sp\public\sdk\inc\mcx.h
+FILE 5572 f:\sp\public\sdk\inc\winuser.h
+FILE 5573 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5574 f:\sp\public\sdk\inc\winnls.h
+FILE 5575 f:\sp\public\sdk\inc\stralign.h
+FILE 5576 f:\sp\public\sdk\inc\tvout.h
+FILE 5577 f:\sp\public\sdk\inc\winsvc.h
+FILE 5578 f:\sp\public\sdk\inc\wingdi.h
+FILE 5579 f:\sp\public\sdk\inc\winnt.h
+FILE 5580 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5581 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5582 f:\sp\public\sdk\inc\poppack.h
+FILE 5583 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5584 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5585 f:\sp\public\sdk\inc\imm.h
+FILE 5586 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5587 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5588 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5589 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5590 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5591 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5592 f:\sp\vctools\crt_bld\self_x86\crt\src\calloc.c
+FILE 5593 f:\sp\public\sdk\inc\winver.h
+FILE 5594 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5595 f:\sp\public\sdk\inc\guiddef.h
+FILE 5596 f:\sp\public\sdk\inc\windows.h
+FILE 5597 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5598 f:\sp\public\sdk\inc\specstrings.h
+FILE 5599 f:\sp\public\sdk\inc\basetsd.h
+FILE 5600 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5601 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5602 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5603 f:\sp\public\sdk\inc\winreg.h
+FILE 5604 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5605 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5606 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5607 f:\sp\public\sdk\inc\winbase.h
+FILE 5608 f:\sp\public\sdk\inc\winerror.h
+FILE 5609 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5610 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5611 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5612 f:\sp\public\sdk\inc\reason.h
+FILE 5613 f:\sp\public\sdk\inc\wincon.h
+FILE 5614 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5615 f:\sp\public\sdk\inc\windef.h
+FILE 5616 f:\sp\public\sdk\inc\wincon.h
+FILE 5617 f:\sp\public\sdk\inc\imm.h
+FILE 5618 f:\sp\public\sdk\inc\winbase.h
+FILE 5619 f:\sp\public\sdk\inc\wingdi.h
+FILE 5620 f:\sp\public\sdk\inc\winver.h
+FILE 5621 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5622 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5623 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5624 f:\sp\public\sdk\inc\reason.h
+FILE 5625 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5626 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\setjmp.h
+FILE 5627 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\i386\trnsctrl.cpp
+FILE 5628 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 5629 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5630 f:\sp\public\sdk\inc\specstrings.h
+FILE 5631 f:\sp\public\sdk\inc\basetsd.h
+FILE 5632 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5633 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5634 f:\sp\public\sdk\inc\stralign.h
+FILE 5635 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\trnsctrl.h
+FILE 5636 f:\sp\public\sdk\inc\poppack.h
+FILE 5637 f:\sp\public\sdk\inc\winsvc.h
+FILE 5638 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5639 f:\sp\public\sdk\inc\windef.h
+FILE 5640 f:\sp\public\sdk\inc\winuser.h
+FILE 5641 f:\sp\public\sdk\inc\windows.h
+FILE 5642 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5643 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5644 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5645 f:\sp\public\sdk\inc\mcx.h
+FILE 5646 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5647 f:\sp\public\sdk\inc\guiddef.h
+FILE 5648 f:\sp\public\sdk\inc\winnt.h
+FILE 5649 f:\sp\public\sdk\inc\winnls.h
+FILE 5650 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5651 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5652 f:\sp\public\sdk\inc\winerror.h
+FILE 5653 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5654 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5655 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5656 f:\sp\public\sdk\inc\winreg.h
+FILE 5657 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5658 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5659 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5660 f:\sp\public\sdk\inc\tvout.h
+FILE 5661 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5662 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5663 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5664 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5665 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\eh\i386\lowhelpr.asm
+FILE 5666 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\cruntime.inc
+FILE 5667 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 5668 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 5669 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5670 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5671 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\i386\ehprolg3.c
+FILE 5672 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5673 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5674 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5675 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5676 f:\sp\public\sdk\inc\wincon.h
+FILE 5677 f:\sp\public\sdk\inc\imm.h
+FILE 5678 f:\sp\public\sdk\inc\winbase.h
+FILE 5679 f:\sp\public\sdk\inc\wingdi.h
+FILE 5680 f:\sp\public\sdk\inc\winver.h
+FILE 5681 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5682 f:\sp\public\sdk\inc\reason.h
+FILE 5683 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\validate.cpp
+FILE 5684 f:\sp\public\sdk\inc\specstrings.h
+FILE 5685 f:\sp\public\sdk\inc\basetsd.h
+FILE 5686 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5687 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5688 f:\sp\public\sdk\inc\stralign.h
+FILE 5689 f:\sp\public\sdk\inc\poppack.h
+FILE 5690 f:\sp\public\sdk\inc\winsvc.h
+FILE 5691 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5692 f:\sp\public\sdk\inc\windef.h
+FILE 5693 f:\sp\public\sdk\inc\winuser.h
+FILE 5694 f:\sp\public\sdk\inc\windows.h
+FILE 5695 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5696 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5697 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5698 f:\sp\public\sdk\inc\mcx.h
+FILE 5699 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5700 f:\sp\public\sdk\inc\guiddef.h
+FILE 5701 f:\sp\public\sdk\inc\winnt.h
+FILE 5702 f:\sp\public\sdk\inc\winnls.h
+FILE 5703 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5704 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5705 f:\sp\public\sdk\inc\winerror.h
+FILE 5706 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5707 f:\sp\public\sdk\inc\winreg.h
+FILE 5708 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5709 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5710 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5711 f:\sp\public\sdk\inc\tvout.h
+FILE 5712 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5713 f:\sp\public\sdk\inc\wincon.h
+FILE 5714 f:\sp\public\sdk\inc\imm.h
+FILE 5715 f:\sp\public\sdk\inc\winbase.h
+FILE 5716 f:\sp\public\sdk\inc\wingdi.h
+FILE 5717 f:\sp\public\sdk\inc\winver.h
+FILE 5718 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5719 f:\sp\public\sdk\inc\reason.h
+FILE 5720 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 5721 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 5722 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5723 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5724 f:\sp\public\sdk\inc\specstrings.h
+FILE 5725 f:\sp\public\sdk\inc\basetsd.h
+FILE 5726 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5727 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5728 f:\sp\public\sdk\inc\stralign.h
+FILE 5729 f:\sp\public\sdk\inc\poppack.h
+FILE 5730 f:\sp\public\sdk\inc\winsvc.h
+FILE 5731 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5732 f:\sp\public\sdk\inc\windef.h
+FILE 5733 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5734 f:\sp\public\sdk\inc\winuser.h
+FILE 5735 f:\sp\public\sdk\inc\windows.h
+FILE 5736 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5737 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5738 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5739 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5740 f:\sp\public\sdk\inc\mcx.h
+FILE 5741 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5742 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5743 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5744 f:\sp\public\sdk\inc\guiddef.h
+FILE 5745 f:\sp\public\sdk\inc\winnt.h
+FILE 5746 f:\sp\public\sdk\inc\winnls.h
+FILE 5747 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5748 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5749 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5750 f:\sp\public\sdk\inc\winerror.h
+FILE 5751 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5752 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5753 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5754 f:\sp\public\sdk\inc\winreg.h
+FILE 5755 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5756 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5757 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5758 f:\sp\public\sdk\inc\tvout.h
+FILE 5759 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5760 f:\sp\public\sdk\inc\specstrings.h
+FILE 5761 f:\sp\public\sdk\inc\basetsd.h
+FILE 5762 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5763 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5764 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5765 f:\sp\public\sdk\inc\stralign.h
+FILE 5766 f:\sp\public\sdk\inc\poppack.h
+FILE 5767 f:\sp\public\sdk\inc\winsvc.h
+FILE 5768 f:\sp\public\sdk\inc\winuser.h
+FILE 5769 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5770 f:\sp\public\sdk\inc\windef.h
+FILE 5771 f:\sp\vctools\langapi\undname\undname.cxx
+FILE 5772 f:\sp\public\sdk\inc\mcx.h
+FILE 5773 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5774 f:\sp\public\sdk\inc\guiddef.h
+FILE 5775 f:\sp\vctools\langapi\undname\utf8.h
+FILE 5776 f:\sp\public\sdk\inc\winnls.h
+FILE 5777 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5778 f:\sp\public\sdk\inc\winnt.h
+FILE 5779 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5780 f:\sp\public\sdk\inc\winerror.h
+FILE 5781 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 5782 f:\sp\vctools\langapi\undname\undname.hxx
+FILE 5783 f:\sp\vctools\langapi\undname\undname.h
+FILE 5784 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5785 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5786 f:\sp\public\sdk\inc\winreg.h
+FILE 5787 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5788 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5789 f:\sp\public\sdk\inc\tvout.h
+FILE 5790 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 5791 f:\sp\public\sdk\inc\wincon.h
+FILE 5792 f:\sp\public\sdk\inc\imm.h
+FILE 5793 f:\sp\public\sdk\inc\winbase.h
+FILE 5794 f:\sp\public\sdk\inc\wingdi.h
+FILE 5795 f:\sp\public\sdk\inc\winver.h
+FILE 5796 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5797 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5798 f:\sp\public\sdk\inc\windows.h
+FILE 5799 f:\sp\public\sdk\inc\reason.h
+FILE 5800 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5801 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5802 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5803 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5804 f:\sp\vctools\langapi\undname\undname.inl
+FILE 5805 f:\sp\public\sdk\inc\guiddef.h
+FILE 5806 f:\sp\public\sdk\inc\winnt.h
+FILE 5807 f:\sp\public\sdk\inc\winnls.h
+FILE 5808 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5809 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5810 f:\sp\public\sdk\inc\winerror.h
+FILE 5811 f:\sp\public\sdk\inc\winreg.h
+FILE 5812 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5813 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5814 f:\sp\public\sdk\inc\tvout.h
+FILE 5815 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 5816 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5817 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5818 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5819 f:\sp\public\sdk\inc\wincon.h
+FILE 5820 f:\sp\public\sdk\inc\imm.h
+FILE 5821 f:\sp\public\sdk\inc\winbase.h
+FILE 5822 f:\sp\public\sdk\inc\wingdi.h
+FILE 5823 f:\sp\public\sdk\inc\winver.h
+FILE 5824 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5825 f:\sp\public\sdk\inc\windows.h
+FILE 5826 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5827 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5828 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5829 f:\sp\public\sdk\inc\reason.h
+FILE 5830 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 5831 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 5832 f:\sp\public\sdk\inc\specstrings.h
+FILE 5833 f:\sp\public\sdk\inc\basetsd.h
+FILE 5834 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5835 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 5836 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5837 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5838 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5839 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5840 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5841 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5842 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5843 f:\sp\vctools\langapi\undname\undname.h
+FILE 5844 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5845 f:\sp\public\sdk\inc\stralign.h
+FILE 5846 f:\sp\public\sdk\inc\poppack.h
+FILE 5847 f:\sp\public\sdk\inc\winsvc.h
+FILE 5848 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5849 f:\sp\public\sdk\inc\windef.h
+FILE 5850 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5851 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5852 f:\sp\public\sdk\inc\winuser.h
+FILE 5853 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5854 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5855 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5856 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5857 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5858 f:\sp\public\sdk\inc\mcx.h
+FILE 5859 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5860 f:\sp\public\sdk\inc\winnls.h
+FILE 5861 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5862 f:\sp\public\sdk\inc\winnt.h
+FILE 5863 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5864 f:\sp\public\sdk\inc\winerror.h
+FILE 5865 f:\sp\public\sdk\inc\winreg.h
+FILE 5866 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5867 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5868 f:\sp\public\sdk\inc\tvout.h
+FILE 5869 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 5870 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5871 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5872 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5873 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 5874 f:\sp\public\sdk\inc\wincon.h
+FILE 5875 f:\sp\public\sdk\inc\imm.h
+FILE 5876 f:\sp\public\sdk\inc\winbase.h
+FILE 5877 f:\sp\public\sdk\inc\wingdi.h
+FILE 5878 f:\sp\public\sdk\inc\winver.h
+FILE 5879 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5880 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5881 f:\sp\public\sdk\inc\reason.h
+FILE 5882 f:\sp\public\sdk\inc\windows.h
+FILE 5883 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5884 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5885 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5886 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5887 f:\sp\public\sdk\inc\specstrings.h
+FILE 5888 f:\sp\public\sdk\inc\basetsd.h
+FILE 5889 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5890 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5891 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5892 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5893 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5894 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5895 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5896 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5897 f:\sp\public\sdk\inc\stralign.h
+FILE 5898 f:\sp\public\sdk\inc\poppack.h
+FILE 5899 f:\sp\public\sdk\inc\winsvc.h
+FILE 5900 f:\sp\public\sdk\inc\winuser.h
+FILE 5901 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5902 f:\sp\public\sdk\inc\windef.h
+FILE 5903 f:\sp\vctools\langapi\undname\undname.h
+FILE 5904 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5905 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5906 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5907 f:\sp\public\sdk\inc\mcx.h
+FILE 5908 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5909 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5910 f:\sp\public\sdk\inc\guiddef.h
+FILE 5911 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5912 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5913 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5914 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5915 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5916 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\stdexcpt.cpp
+FILE 5917 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5918 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5919 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5920 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5921 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5922 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5923 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5924 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5925 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5926 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5927 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5928 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5929 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5930 f:\sp\public\sdk\inc\wincon.h
+FILE 5931 f:\sp\public\sdk\inc\imm.h
+FILE 5932 f:\sp\public\sdk\inc\winbase.h
+FILE 5933 f:\sp\public\sdk\inc\wingdi.h
+FILE 5934 f:\sp\public\sdk\inc\winver.h
+FILE 5935 f:\sp\public\sdk\inc\windows.h
+FILE 5936 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5937 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5938 f:\sp\public\sdk\inc\reason.h
+FILE 5939 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\throw.cpp
+FILE 5940 f:\sp\public\sdk\inc\specstrings.h
+FILE 5941 f:\sp\public\sdk\inc\basetsd.h
+FILE 5942 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5943 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5944 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5945 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5946 f:\sp\public\sdk\inc\stralign.h
+FILE 5947 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5948 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5949 f:\sp\public\sdk\inc\poppack.h
+FILE 5950 f:\sp\public\sdk\inc\winsvc.h
+FILE 5951 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5952 f:\sp\public\sdk\inc\windef.h
+FILE 5953 f:\sp\public\sdk\inc\winuser.h
+FILE 5954 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5955 f:\sp\public\sdk\inc\mcx.h
+FILE 5956 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5957 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5958 f:\sp\public\sdk\inc\guiddef.h
+FILE 5959 f:\sp\public\sdk\inc\winnt.h
+FILE 5960 f:\sp\public\sdk\inc\winnls.h
+FILE 5961 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5962 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5963 f:\sp\public\sdk\inc\winerror.h
+FILE 5964 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5965 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5966 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5967 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5968 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5969 f:\sp\public\sdk\inc\winreg.h
+FILE 5970 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5971 f:\sp\public\sdk\inc\tvout.h
+FILE 5972 f:\sp\public\sdk\inc\poppack.h
+FILE 5973 f:\sp\public\sdk\inc\winsvc.h
+FILE 5974 f:\sp\public\sdk\inc\windows.h
+FILE 5975 f:\sp\public\sdk\inc\winuser.h
+FILE 5976 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5977 f:\sp\public\sdk\inc\windef.h
+FILE 5978 f:\sp\public\sdk\inc\mcx.h
+FILE 5979 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5980 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5981 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5982 f:\sp\public\sdk\inc\guiddef.h
+FILE 5983 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 5984 f:\sp\public\sdk\inc\winnls.h
+FILE 5985 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5986 f:\sp\public\sdk\inc\winnt.h
+FILE 5987 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5988 f:\sp\public\sdk\inc\winerror.h
+FILE 5989 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5990 f:\sp\public\sdk\inc\winreg.h
+FILE 5991 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5992 f:\sp\public\sdk\inc\tvout.h
+FILE 5993 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5994 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5995 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5996 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5997 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5998 f:\sp\public\sdk\inc\wincon.h
+FILE 5999 f:\sp\public\sdk\inc\imm.h
+FILE 6000 f:\sp\public\sdk\inc\winbase.h
+FILE 6001 f:\sp\public\sdk\inc\wingdi.h
+FILE 6002 f:\sp\public\sdk\inc\winver.h
+FILE 6003 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 6004 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6005 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 6006 f:\sp\public\sdk\inc\reason.h
+FILE 6007 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 6008 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 6009 f:\sp\public\sdk\inc\specstrings.h
+FILE 6010 f:\sp\public\sdk\inc\basetsd.h
+FILE 6011 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6012 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6013 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 6014 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 6015 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6016 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 6017 f:\sp\public\sdk\inc\stralign.h
+FILE 6018 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 6019 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 6020 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 6021 f:\sp\public\sdk\inc\wincon.h
+FILE 6022 f:\sp\public\sdk\inc\imm.h
+FILE 6023 f:\sp\public\sdk\inc\guiddef.h
+FILE 6024 f:\sp\public\sdk\inc\winbase.h
+FILE 6025 f:\sp\public\sdk\inc\wingdi.h
+FILE 6026 f:\sp\vctools\langapi\include\ehdata.h
+FILE 6027 f:\sp\public\sdk\inc\winver.h
+FILE 6028 f:\sp\public\sdk\inc\winnt.h
+FILE 6029 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 6030 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 6031 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6032 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 6033 f:\sp\public\sdk\inc\reason.h
+FILE 6034 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\frame.cpp
+FILE 6035 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 6036 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 6037 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 6038 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 6039 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 6040 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 6041 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6042 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6043 f:\sp\public\sdk\inc\stralign.h
+FILE 6044 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 6045 f:\sp\public\sdk\inc\poppack.h
+FILE 6046 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 6047 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 6048 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 6049 f:\sp\public\sdk\inc\winsvc.h
+FILE 6050 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehstate.h
+FILE 6051 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 6052 f:\sp\public\sdk\inc\winuser.h
+FILE 6053 f:\sp\public\sdk\inc\windows.h
+FILE 6054 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 6055 f:\sp\public\sdk\inc\mcx.h
+FILE 6056 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6057 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 6058 f:\sp\public\sdk\inc\specstrings.h
+FILE 6059 f:\sp\public\sdk\inc\basetsd.h
+FILE 6060 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 6061 f:\sp\public\sdk\inc\winnls.h
+FILE 6062 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6063 f:\sp\public\sdk\inc\winerror.h
+FILE 6064 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\trnsctrl.h
+FILE 6065 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 6066 f:\sp\public\sdk\inc\winreg.h
+FILE 6067 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6068 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 6069 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 6070 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 6071 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 6072 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 6073 f:\sp\public\sdk\inc\windef.h
+FILE 6074 f:\sp\public\sdk\inc\tvout.h
+FILE 6075 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6076 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6077 f:\sp\public\sdk\inc\reason.h
+FILE 6078 f:\sp\public\sdk\inc\wincon.h
+FILE 6079 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6080 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6081 f:\sp\public\sdk\inc\poppack.h
+FILE 6082 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6083 f:\sp\public\sdk\inc\mcx.h
+FILE 6084 f:\sp\public\sdk\inc\winuser.h
+FILE 6085 f:\sp\public\sdk\inc\winnls.h
+FILE 6086 f:\sp\public\sdk\inc\stralign.h
+FILE 6087 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6088 f:\sp\public\sdk\inc\windef.h
+FILE 6089 f:\sp\public\sdk\inc\tvout.h
+FILE 6090 f:\sp\public\sdk\inc\winsvc.h
+FILE 6091 f:\sp\public\sdk\inc\wingdi.h
+FILE 6092 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6093 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6094 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6095 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6096 f:\sp\public\sdk\inc\winnt.h
+FILE 6097 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6098 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6099 f:\sp\public\sdk\inc\imm.h
+FILE 6100 f:\sp\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 6101 f:\sp\public\sdk\inc\winbase.h
+FILE 6102 f:\sp\public\sdk\inc\winerror.h
+FILE 6103 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6104 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6105 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6106 f:\sp\public\sdk\inc\winver.h
+FILE 6107 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6108 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6109 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6110 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6111 f:\sp\public\sdk\inc\winreg.h
+FILE 6112 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6113 f:\sp\public\sdk\inc\guiddef.h
+FILE 6114 f:\sp\public\sdk\inc\windows.h
+FILE 6115 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6116 f:\sp\public\sdk\inc\specstrings.h
+FILE 6117 f:\sp\public\sdk\inc\basetsd.h
+FILE 6118 f:\sp\public\sdk\inc\winver.h
+FILE 6119 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6120 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6121 f:\sp\public\sdk\inc\windows.h
+FILE 6122 f:\sp\public\sdk\inc\reason.h
+FILE 6123 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6124 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6125 f:\sp\public\sdk\inc\specstrings.h
+FILE 6126 f:\sp\public\sdk\inc\basetsd.h
+FILE 6127 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6128 f:\sp\vctools\crt_bld\self_x86\crt\src\wctomb.c
+FILE 6129 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6130 f:\sp\public\sdk\inc\stralign.h
+FILE 6131 f:\sp\public\sdk\inc\poppack.h
+FILE 6132 f:\sp\public\sdk\inc\winsvc.h
+FILE 6133 f:\sp\public\sdk\inc\winuser.h
+FILE 6134 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6135 f:\sp\public\sdk\inc\windef.h
+FILE 6136 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6137 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6138 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6139 f:\sp\public\sdk\inc\mcx.h
+FILE 6140 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6141 f:\sp\public\sdk\inc\guiddef.h
+FILE 6142 f:\sp\public\sdk\inc\winnls.h
+FILE 6143 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6144 f:\sp\public\sdk\inc\winnt.h
+FILE 6145 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6146 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6147 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6148 f:\sp\public\sdk\inc\winerror.h
+FILE 6149 f:\sp\public\sdk\inc\winreg.h
+FILE 6150 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6151 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6152 f:\sp\public\sdk\inc\tvout.h
+FILE 6153 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6154 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6155 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6156 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6157 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6158 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6159 f:\sp\public\sdk\inc\wincon.h
+FILE 6160 f:\sp\public\sdk\inc\imm.h
+FILE 6161 f:\sp\public\sdk\inc\winbase.h
+FILE 6162 f:\sp\public\sdk\inc\wingdi.h
+FILE 6163 f:\sp\public\sdk\inc\winsvc.h
+FILE 6164 f:\sp\public\sdk\inc\winuser.h
+FILE 6165 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6166 f:\sp\public\sdk\inc\mcx.h
+FILE 6167 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6168 f:\sp\public\sdk\inc\guiddef.h
+FILE 6169 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6170 f:\sp\public\sdk\inc\windows.h
+FILE 6171 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6172 f:\sp\public\sdk\inc\winnls.h
+FILE 6173 f:\sp\vctools\crt_bld\self_x86\crt\src\wcstol.c
+FILE 6174 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6175 f:\sp\public\sdk\inc\winerror.h
+FILE 6176 f:\sp\public\sdk\inc\winreg.h
+FILE 6177 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6178 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6179 f:\sp\public\sdk\inc\tvout.h
+FILE 6180 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6181 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6182 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6183 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6184 f:\sp\public\sdk\inc\wincon.h
+FILE 6185 f:\sp\public\sdk\inc\imm.h
+FILE 6186 f:\sp\public\sdk\inc\winbase.h
+FILE 6187 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6188 f:\sp\public\sdk\inc\wingdi.h
+FILE 6189 f:\sp\public\sdk\inc\windef.h
+FILE 6190 f:\sp\public\sdk\inc\winver.h
+FILE 6191 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6192 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6193 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6194 f:\sp\public\sdk\inc\reason.h
+FILE 6195 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6196 f:\sp\public\sdk\inc\winnt.h
+FILE 6197 f:\sp\public\sdk\inc\specstrings.h
+FILE 6198 f:\sp\public\sdk\inc\basetsd.h
+FILE 6199 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6200 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6201 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6202 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6203 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6204 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6205 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6206 f:\sp\public\sdk\inc\stralign.h
+FILE 6207 f:\sp\public\sdk\inc\poppack.h
+FILE 6208 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6209 f:\sp\public\sdk\inc\mcx.h
+FILE 6210 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6211 f:\sp\public\sdk\inc\guiddef.h
+FILE 6212 f:\sp\public\sdk\inc\winnt.h
+FILE 6213 f:\sp\public\sdk\inc\winnls.h
+FILE 6214 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6215 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6216 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6217 f:\sp\public\sdk\inc\winerror.h
+FILE 6218 f:\sp\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 6219 f:\sp\public\sdk\inc\winreg.h
+FILE 6220 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6221 f:\sp\public\sdk\inc\tvout.h
+FILE 6222 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6223 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6224 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6225 f:\sp\public\sdk\inc\wincon.h
+FILE 6226 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 6227 f:\sp\public\sdk\inc\imm.h
+FILE 6228 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6229 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6230 f:\sp\public\sdk\inc\winbase.h
+FILE 6231 f:\sp\public\sdk\inc\wingdi.h
+FILE 6232 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6233 f:\sp\public\sdk\inc\winver.h
+FILE 6234 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6235 f:\sp\public\sdk\inc\windows.h
+FILE 6236 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6237 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6238 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6239 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6240 f:\sp\public\sdk\inc\reason.h
+FILE 6241 f:\sp\public\sdk\inc\specstrings.h
+FILE 6242 f:\sp\public\sdk\inc\basetsd.h
+FILE 6243 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6244 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6245 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6246 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6247 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6248 f:\sp\public\sdk\inc\stralign.h
+FILE 6249 f:\sp\public\sdk\inc\poppack.h
+FILE 6250 f:\sp\public\sdk\inc\winsvc.h
+FILE 6251 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6252 f:\sp\public\sdk\inc\windef.h
+FILE 6253 f:\sp\public\sdk\inc\winuser.h
+FILE 6254 f:\sp\public\sdk\inc\winsvc.h
+FILE 6255 f:\sp\public\sdk\inc\winuser.h
+FILE 6256 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6257 f:\sp\public\sdk\inc\mcx.h
+FILE 6258 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6259 f:\sp\public\sdk\inc\guiddef.h
+FILE 6260 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6261 f:\sp\public\sdk\inc\windows.h
+FILE 6262 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6263 f:\sp\public\sdk\inc\winnls.h
+FILE 6264 f:\sp\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 6265 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6266 f:\sp\public\sdk\inc\winerror.h
+FILE 6267 f:\sp\public\sdk\inc\winreg.h
+FILE 6268 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6269 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6270 f:\sp\public\sdk\inc\tvout.h
+FILE 6271 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6272 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6274 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6275 f:\sp\public\sdk\inc\wincon.h
+FILE 6276 f:\sp\public\sdk\inc\imm.h
+FILE 6277 f:\sp\public\sdk\inc\winbase.h
+FILE 6278 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6279 f:\sp\public\sdk\inc\wingdi.h
+FILE 6280 f:\sp\public\sdk\inc\windef.h
+FILE 6281 f:\sp\public\sdk\inc\winver.h
+FILE 6282 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6283 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6284 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6285 f:\sp\public\sdk\inc\reason.h
+FILE 6286 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6287 f:\sp\public\sdk\inc\winnt.h
+FILE 6288 f:\sp\public\sdk\inc\specstrings.h
+FILE 6289 f:\sp\public\sdk\inc\basetsd.h
+FILE 6290 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6291 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6292 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6293 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6294 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6295 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6296 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6297 f:\sp\public\sdk\inc\stralign.h
+FILE 6298 f:\sp\public\sdk\inc\poppack.h
+FILE 6299 f:\sp\public\sdk\inc\winsvc.h
+FILE 6300 f:\sp\public\sdk\inc\winuser.h
+FILE 6301 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6302 f:\sp\public\sdk\inc\mcx.h
+FILE 6303 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6304 f:\sp\public\sdk\inc\guiddef.h
+FILE 6305 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6306 f:\sp\public\sdk\inc\windows.h
+FILE 6307 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6308 f:\sp\public\sdk\inc\winnls.h
+FILE 6309 f:\sp\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 6310 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6311 f:\sp\public\sdk\inc\winerror.h
+FILE 6312 f:\sp\public\sdk\inc\winreg.h
+FILE 6313 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6314 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6315 f:\sp\public\sdk\inc\tvout.h
+FILE 6316 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6317 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6318 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6319 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6320 f:\sp\public\sdk\inc\wincon.h
+FILE 6321 f:\sp\public\sdk\inc\imm.h
+FILE 6322 f:\sp\public\sdk\inc\winbase.h
+FILE 6323 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6324 f:\sp\public\sdk\inc\wingdi.h
+FILE 6325 f:\sp\public\sdk\inc\windef.h
+FILE 6326 f:\sp\public\sdk\inc\winver.h
+FILE 6327 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6328 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6329 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6330 f:\sp\public\sdk\inc\reason.h
+FILE 6331 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6332 f:\sp\public\sdk\inc\winnt.h
+FILE 6333 f:\sp\public\sdk\inc\specstrings.h
+FILE 6334 f:\sp\public\sdk\inc\basetsd.h
+FILE 6335 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6336 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6337 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6338 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6339 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6340 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6341 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6342 f:\sp\public\sdk\inc\stralign.h
+FILE 6343 f:\sp\public\sdk\inc\poppack.h
+FILE 6344 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6345 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6346 f:\sp\public\sdk\inc\tvout.h
+FILE 6347 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6348 f:\sp\public\sdk\inc\wincon.h
+FILE 6349 f:\sp\public\sdk\inc\imm.h
+FILE 6350 f:\sp\public\sdk\inc\winbase.h
+FILE 6351 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6352 f:\sp\public\sdk\inc\wingdi.h
+FILE 6353 f:\sp\public\sdk\inc\windef.h
+FILE 6354 f:\sp\public\sdk\inc\winver.h
+FILE 6355 f:\sp\vctools\crt_bld\self_x86\crt\src\mbtowc.c
+FILE 6356 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6357 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6358 f:\sp\public\sdk\inc\reason.h
+FILE 6359 f:\sp\public\sdk\inc\winnt.h
+FILE 6360 f:\sp\public\sdk\inc\specstrings.h
+FILE 6361 f:\sp\public\sdk\inc\basetsd.h
+FILE 6362 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6363 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6364 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6365 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6366 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6368 f:\sp\public\sdk\inc\stralign.h
+FILE 6369 f:\sp\public\sdk\inc\poppack.h
+FILE 6370 f:\sp\public\sdk\inc\winsvc.h
+FILE 6371 f:\sp\public\sdk\inc\winuser.h
+FILE 6372 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6373 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 6374 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6375 f:\sp\public\sdk\inc\mcx.h
+FILE 6376 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6377 f:\sp\public\sdk\inc\guiddef.h
+FILE 6378 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6379 f:\sp\public\sdk\inc\windows.h
+FILE 6380 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6381 f:\sp\public\sdk\inc\winnls.h
+FILE 6382 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6383 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6384 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6385 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6386 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6387 f:\sp\public\sdk\inc\winerror.h
+FILE 6388 f:\sp\public\sdk\inc\winreg.h
+FILE 6389 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6390 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6391 f:\sp\public\sdk\inc\winreg.h
+FILE 6392 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6393 f:\sp\public\sdk\inc\tvout.h
+FILE 6394 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 6395 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6396 f:\sp\public\sdk\inc\wincon.h
+FILE 6397 f:\sp\public\sdk\inc\imm.h
+FILE 6398 f:\sp\public\sdk\inc\winbase.h
+FILE 6399 f:\sp\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 6400 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6401 f:\sp\public\sdk\inc\wingdi.h
+FILE 6402 f:\sp\public\sdk\inc\windef.h
+FILE 6403 f:\sp\public\sdk\inc\winver.h
+FILE 6404 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6405 f:\sp\public\sdk\inc\reason.h
+FILE 6406 f:\sp\public\sdk\inc\winnt.h
+FILE 6407 f:\sp\public\sdk\inc\specstrings.h
+FILE 6408 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6409 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 6410 f:\sp\public\sdk\inc\basetsd.h
+FILE 6411 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6412 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6413 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6414 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6415 f:\sp\public\sdk\inc\stralign.h
+FILE 6416 f:\sp\public\sdk\inc\poppack.h
+FILE 6417 f:\sp\public\sdk\inc\winsvc.h
+FILE 6418 f:\sp\public\sdk\inc\winuser.h
+FILE 6419 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6420 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6421 f:\sp\public\sdk\inc\mcx.h
+FILE 6422 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6423 f:\sp\public\sdk\inc\guiddef.h
+FILE 6424 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6425 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6426 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6427 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6428 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6429 f:\sp\public\sdk\inc\windows.h
+FILE 6430 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6431 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6432 f:\sp\public\sdk\inc\winnls.h
+FILE 6433 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6434 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6435 f:\sp\public\sdk\inc\winerror.h
+FILE 6436 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6437 f:\sp\public\sdk\inc\winreg.h
+FILE 6438 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6439 f:\sp\public\sdk\inc\tvout.h
+FILE 6440 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6441 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6442 f:\sp\public\sdk\inc\wincon.h
+FILE 6443 f:\sp\public\sdk\inc\imm.h
+FILE 6444 f:\sp\public\sdk\inc\winbase.h
+FILE 6445 f:\sp\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 6446 f:\sp\public\sdk\inc\wingdi.h
+FILE 6447 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6448 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6449 f:\sp\public\sdk\inc\winver.h
+FILE 6450 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6451 f:\sp\public\sdk\inc\windows.h
+FILE 6452 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6453 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6454 f:\sp\public\sdk\inc\reason.h
+FILE 6455 f:\sp\public\sdk\inc\specstrings.h
+FILE 6456 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 6457 f:\sp\public\sdk\inc\basetsd.h
+FILE 6458 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6459 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6460 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6461 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6462 f:\sp\public\sdk\inc\stralign.h
+FILE 6463 f:\sp\public\sdk\inc\poppack.h
+FILE 6464 f:\sp\public\sdk\inc\winsvc.h
+FILE 6465 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6466 f:\sp\public\sdk\inc\windef.h
+FILE 6467 f:\sp\public\sdk\inc\winuser.h
+FILE 6468 f:\sp\public\sdk\inc\mcx.h
+FILE 6469 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6470 f:\sp\public\sdk\inc\guiddef.h
+FILE 6471 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6472 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6473 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6474 f:\sp\public\sdk\inc\winnt.h
+FILE 6475 f:\sp\public\sdk\inc\winnls.h
+FILE 6476 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6477 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6478 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6479 f:\sp\public\sdk\inc\winerror.h
+FILE 6480 f:\sp\public\sdk\inc\winsvc.h
+FILE 6481 f:\sp\public\sdk\inc\winuser.h
+FILE 6482 f:\sp\public\sdk\inc\mcx.h
+FILE 6483 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6484 f:\sp\public\sdk\inc\guiddef.h
+FILE 6485 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6486 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6487 f:\sp\public\sdk\inc\windows.h
+FILE 6488 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6489 f:\sp\public\sdk\inc\winnls.h
+FILE 6490 f:\sp\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 6491 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6492 f:\sp\public\sdk\inc\winerror.h
+FILE 6493 f:\sp\public\sdk\inc\winreg.h
+FILE 6494 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6495 f:\sp\public\sdk\inc\tvout.h
+FILE 6496 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6497 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6498 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6499 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6500 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6501 f:\sp\public\sdk\inc\wincon.h
+FILE 6502 f:\sp\public\sdk\inc\imm.h
+FILE 6503 f:\sp\public\sdk\inc\winbase.h
+FILE 6504 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6505 f:\sp\public\sdk\inc\wingdi.h
+FILE 6506 f:\sp\public\sdk\inc\windef.h
+FILE 6507 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 6508 f:\sp\public\sdk\inc\winver.h
+FILE 6509 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6510 f:\sp\public\sdk\inc\reason.h
+FILE 6511 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6512 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6513 f:\sp\public\sdk\inc\winnt.h
+FILE 6514 f:\sp\public\sdk\inc\specstrings.h
+FILE 6515 f:\sp\public\sdk\inc\basetsd.h
+FILE 6516 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6517 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6518 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6519 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6520 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6521 f:\sp\public\sdk\inc\stralign.h
+FILE 6522 f:\sp\public\sdk\inc\poppack.h
+FILE 6523 f:\sp\public\sdk\inc\mcx.h
+FILE 6524 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6525 f:\sp\public\sdk\inc\guiddef.h
+FILE 6526 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6527 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6528 f:\sp\public\sdk\inc\windows.h
+FILE 6529 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6530 f:\sp\public\sdk\inc\winnls.h
+FILE 6531 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6532 f:\sp\public\sdk\inc\winerror.h
+FILE 6533 f:\sp\public\sdk\inc\winreg.h
+FILE 6534 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6535 f:\sp\vctools\crt_bld\self_x86\crt\src\_ctype.c
+FILE 6536 f:\sp\public\sdk\inc\tvout.h
+FILE 6537 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6538 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6539 f:\sp\public\sdk\inc\wincon.h
+FILE 6540 f:\sp\public\sdk\inc\imm.h
+FILE 6541 f:\sp\public\sdk\inc\winbase.h
+FILE 6542 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6543 f:\sp\public\sdk\inc\wingdi.h
+FILE 6544 f:\sp\public\sdk\inc\windef.h
+FILE 6545 f:\sp\public\sdk\inc\winver.h
+FILE 6546 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6547 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6548 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6549 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6550 f:\sp\public\sdk\inc\reason.h
+FILE 6551 f:\sp\public\sdk\inc\winnt.h
+FILE 6552 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6553 f:\sp\public\sdk\inc\specstrings.h
+FILE 6554 f:\sp\public\sdk\inc\basetsd.h
+FILE 6555 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6556 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6557 f:\sp\public\sdk\inc\stralign.h
+FILE 6558 f:\sp\public\sdk\inc\poppack.h
+FILE 6559 f:\sp\public\sdk\inc\winsvc.h
+FILE 6560 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6561 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6562 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6563 f:\sp\public\sdk\inc\winuser.h
+FILE 6564 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6565 f:\sp\public\sdk\inc\mcx.h
+FILE 6566 f:\sp\public\sdk\inc\winuser.h
+FILE 6567 f:\sp\public\sdk\inc\winnls.h
+FILE 6568 f:\sp\public\sdk\inc\stralign.h
+FILE 6569 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6570 f:\sp\public\sdk\inc\windef.h
+FILE 6571 f:\sp\public\sdk\inc\tvout.h
+FILE 6572 f:\sp\public\sdk\inc\winsvc.h
+FILE 6573 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 6574 f:\sp\public\sdk\inc\wingdi.h
+FILE 6575 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6576 f:\sp\public\sdk\inc\poppack.h
+FILE 6577 f:\sp\public\sdk\inc\winnt.h
+FILE 6578 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6579 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6580 f:\sp\public\sdk\inc\imm.h
+FILE 6581 f:\sp\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 6582 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6583 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6584 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6585 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6586 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 6587 f:\sp\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 6588 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6589 f:\sp\public\sdk\inc\winver.h
+FILE 6590 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6591 f:\sp\public\sdk\inc\guiddef.h
+FILE 6592 f:\sp\public\sdk\inc\specstrings.h
+FILE 6593 f:\sp\public\sdk\inc\basetsd.h
+FILE 6594 f:\sp\public\sdk\inc\winreg.h
+FILE 6595 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6596 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6597 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6598 f:\sp\public\sdk\inc\windows.h
+FILE 6599 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6600 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6601 f:\sp\public\sdk\inc\winbase.h
+FILE 6602 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6603 f:\sp\public\sdk\inc\winerror.h
+FILE 6604 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6605 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 6606 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6607 f:\sp\public\sdk\inc\reason.h
+FILE 6608 f:\sp\public\sdk\inc\wincon.h
+FILE 6609 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6610 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 6611 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6612 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6613 f:\sp\vctools\crt_bld\self_x86\crt\src\wchtodig.c
+FILE 6614 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6615 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6616 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6617 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 6618 f:\sp\public\sdk\inc\poppack.h
+FILE 6619 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6620 f:\sp\public\sdk\inc\imm.h
+FILE 6621 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6622 f:\sp\public\sdk\inc\windef.h
+FILE 6623 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6624 f:\sp\public\sdk\inc\winver.h
+FILE 6625 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6626 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6627 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6628 f:\sp\public\sdk\inc\winnt.h
+FILE 6629 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6630 f:\sp\public\sdk\inc\winreg.h
+FILE 6631 f:\sp\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 6632 f:\sp\public\sdk\inc\winbase.h
+FILE 6633 f:\sp\public\sdk\inc\winerror.h
+FILE 6634 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6635 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6636 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6637 f:\sp\public\sdk\inc\reason.h
+FILE 6638 f:\sp\public\sdk\inc\wincon.h
+FILE 6639 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6640 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6641 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6642 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6643 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 6644 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6645 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 6646 f:\sp\public\sdk\inc\mcx.h
+FILE 6647 f:\sp\public\sdk\inc\winuser.h
+FILE 6648 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6649 f:\sp\public\sdk\inc\winnls.h
+FILE 6650 f:\sp\public\sdk\inc\guiddef.h
+FILE 6651 f:\sp\public\sdk\inc\windows.h
+FILE 6652 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6653 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 6654 f:\sp\public\sdk\inc\specstrings.h
+FILE 6655 f:\sp\public\sdk\inc\basetsd.h
+FILE 6656 f:\sp\public\sdk\inc\stralign.h
+FILE 6657 f:\sp\public\sdk\inc\tvout.h
+FILE 6658 f:\sp\public\sdk\inc\winsvc.h
+FILE 6659 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6660 f:\sp\public\sdk\inc\wingdi.h
+FILE 6661 f:\sp\public\sdk\inc\pshpack4.h
+FUNC 1000 13 4 vswprintf
+1000 0 50 71
+1000 12 51 71
+1012 1 52 71
+FUNC 1020 1b 10 wmemcpy_s
+1020 0 1230 66
+1020 1b 1233 66
+FUNC 1040 1b 10 wmemmove_s
+1040 0 1250 66
+1040 1b 1253 66
+FUNC 1060 19 4 std::bad_alloc::bad_alloc(char const *)
+1060 13 371 83
+1073 6 372 83
+FUNC 1080 b 0 std::bad_alloc::~bad_alloc()
+1080 6 380 83
+1086 5 381 83
+FUNC 1090 24 0 std::bad_alloc::`vector deleting destructor'(unsigned int)
+FUNC 10c0 f 8 std::char_traits<wchar_t>::assign(wchar_t &,wchar_t const &)
+10c0 0 302 70
+10c0 e 303 70
+10ce 1 304 70
+FUNC 10d0 17 4 std::char_traits<wchar_t>::length(wchar_t const *)
+10d0 0 325 70
+10d0 16 327 70
+10e6 1 328 70
+FUNC 10f0 27 10 std::char_traits<wchar_t>::_Copy_s(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+10f0 0 340 70
+10f0 23 343 70
+1113 3 344 70
+1116 1 345 70
+FUNC 1120 27 10 std::char_traits<wchar_t>::_Move_s(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+1120 0 364 70
+1120 23 367 70
+1143 3 368 70
+1146 1 369 70
+FUNC 1150 d 8 std::char_traits<char>::assign(char &,char const &)
+1150 0 417 70
+1150 c 418 70
+115c 1 419 70
+FUNC 1160 13 4 std::char_traits<char>::length(char const *)
+1160 0 440 70
+1160 12 442 70
+1172 1 443 70
+FUNC 1180 21 10 std::char_traits<char>::_Copy_s(char *,unsigned int,char const *,unsigned int)
+1180 0 455 70
+1180 1d 458 70
+119d 3 459 70
+11a0 1 460 70
+FUNC 11b0 21 10 std::char_traits<char>::_Move_s(char *,unsigned int,char const *,unsigned int)
+11b0 0 479 70
+11b0 1d 482 70
+11cd 3 483 70
+11d0 1 484 70
+FUNC 11e0 7 0 std::_Iterator_base::_Iterator_base()
+11e0 6 441 65
+11e6 1 442 65
+FUNC 11f0 6b 4 std::logic_error::logic_error(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+11f0 56 27 82
+1246 15 28 82
+FUNC 1260 32 0 std::logic_error::~logic_error()
+1260 9 31 82
+1269 29 32 82
+FUNC 12a0 e 0 std::logic_error::what()
+12a0 0 35 82
+12a0 9 36 82
+12a9 1 37 82
+12aa 3 36 82
+12ad 1 37 82
+FUNC 12b0 47 0 std::logic_error::`scalar deleting destructor'(unsigned int)
+FUNC 1300 19 4 std::length_error::length_error(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+1300 13 106 82
+1313 6 107 82
+FUNC 1320 32 0 std::length_error::~length_error()
+1320 3 110 82
+1323 2f 111 82
+FUNC 1360 47 0 std::length_error::`vector deleting destructor'(unsigned int)
+FUNC 13b0 19 4 std::out_of_range::out_of_range(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+13b0 13 130 82
+13c3 6 131 82
+FUNC 13d0 32 0 std::out_of_range::~out_of_range()
+13d0 3 134 82
+13d3 2f 135 82
+FUNC 1410 47 0 std::out_of_range::`vector deleting destructor'(unsigned int)
+FUNC 1460 19 4 std::out_of_range::out_of_range(std::out_of_range const &)
+FUNC 1480 71 4 std::logic_error::logic_error(std::logic_error const &)
+FUNC 1500 1b 8 google_breakpad::WindowsStringUtils::safe_swprintf(wchar_t *,unsigned int,wchar_t const *,...)
+1500 0 94 63
+1500 1a 97 63
+151a 1 105 63
+FUNC 1520 35 0 google_breakpad::ExceptionHandler::set_dump_path(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+1520 4 137 43
+1524 f 138 43
+1533 c 139 43
+153f 7 140 43
+1546 1 141 43
+1547 6 139 43
+154d 7 140 43
+1554 1 141 43
+FUNC 1560 20b 14 google_breakpad::ExceptionHandler::ExceptionHandler(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,bool (*)(void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *),bool (*)(wchar_t const *,wchar_t const *,void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *,bool),void *,bool)
+1560 6d 75 12
+15cd 90 78 12
+165d 9 86 12
+1666 d 87 12
+1673 d 88 12
+1680 1e 96 12
+169e 11 98 12
+16af 7 99 12
+16b6 f 101 12
+16c5 a 104 12
+16cf 8 105 12
+16d7 7 106 12
+16de 7 107 12
+16e5 b 110 12
+16f0 8 114 12
+16f8 25 115 12
+171d d 117 12
+172a b 118 12
+1735 10 121 12
+1745 e 124 12
+1753 18 126 12
+FUNC 1770 274 0 google_breakpad::ExceptionHandler::~ExceptionHandler()
+1770 e 128 12
+177e a 129 12
+1788 7 130 12
+178f a 133 12
+1799 b 134 12
+17a4 a 136 12
+17ae 9 139 12
+17b7 63 142 12
+181a 23 143 12
+183d 5 144 12
+1842 13 147 12
+1855 2b 149 12
+1880 2a 151 12
+18aa 17 152 12
+18c1 2c 153 12
+18ed 19 151 12
+1906 11 158 12
+1917 23 161 12
+193a 6 162 12
+1940 d 165 12
+194d f 169 12
+195c d 170 12
+1969 f 171 12
+1978 9 172 12
+1981 63 173 12
+FUNC 19f0 31 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::`scalar deleting destructor'(unsigned int)
+FUNC 1a30 51 4 google_breakpad::ExceptionHandler::ExceptionHandlerThreadMain(void *)
+1a30 13 176 12
+1a43 f 182 12
+1a52 1a 185 12
+1a6c 13 188 12
+1a7f 2 190 12
+FUNC 1a90 c7 4 google_breakpad::AutoExceptionHandler::AutoExceptionHandler()
+1a90 7 204 12
+1a97 b 221 12
+1aa2 82 224 12
+1b24 d 225 12
+1b31 c 229 12
+1b3d e 231 12
+1b4b c 233 12
+FUNC 1b60 36 0 google_breakpad::AutoExceptionHandler::~AutoExceptionHandler()
+1b60 0 235 12
+1b60 b 237 12
+1b6b d 239 12
+1b78 b 242 12
+1b83 7 243 12
+1b8a b 244 12
+1b95 1 245 12
+FUNC 1ba0 3 0 google_breakpad::AutoExceptionHandler::get_handler()
+1ba0 3 247 12
+FUNC 1bb0 c4 4 google_breakpad::ExceptionHandler::HandleException(_EXCEPTION_POINTERS *)
+1bb0 2b 254 12
+1bdb a 255 12
+1be5 f 262 12
+1bf4 1e 265 12
+1c12 5 273 12
+1c17 2 274 12
+1c19 7 283 12
+1c20 5 284 12
+1c25 2 285 12
+1c27 2 286 12
+1c29 37 290 12
+1c60 14 291 12
+FUNC 1c80 121 14 google_breakpad::ExceptionHandler::HandleInvalidParameter(wchar_t const *,wchar_t const *,wchar_t const *,unsigned int,unsigned int)
+1c80 40 299 12
+1cc0 b7 319 12
+1d77 7 320 12
+1d7e 14 323 12
+1d92 2 324 12
+1d94 5 337 12
+1d99 8 345 12
+FUNC 1db0 81 8 google_breakpad::ExceptionHandler::WriteMinidumpOnHandlerThread(_EXCEPTION_POINTERS *,MDRawAssertionInfo *)
+1db0 2 350 12
+1db2 d 351 12
+1dbf 6 354 12
+1dc5 2b 359 12
+1df0 f 362 12
+1dff 6 363 12
+1e05 26 370 12
+1e2b 3 372 12
+1e2e 3 373 12
+FUNC 1e40 1d 0 google_breakpad::ExceptionHandler::WriteMinidump()
+1e40 3 375 12
+1e43 b 376 12
+1e4e b 377 12
+1e59 3 378 12
+1e5c 1 379 12
+FUNC 1e60 a2 4 google_breakpad::ExceptionHandler::WriteMinidump(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,bool (*)(wchar_t const *,wchar_t const *,void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *,bool),void *)
+1e60 41 384 12
+1ea1 10 385 12
+1eb1 2a 386 12
+1edb 27 387 12
+FUNC 1f10 142 c google_breakpad::ExceptionHandler::WriteMinidumpWithException(unsigned long,_EXCEPTION_POINTERS *,MDRawAssertionInfo *)
+1f10 0 392 12
+1f10 22 399 12
+1f32 7 466 12
+1f39 2 403 12
+1f3b e 404 12
+1f49 1f 411 12
+1f68 9 412 12
+1f71 8 414 12
+1f79 4 415 12
+1f7d 8 416 12
+1f85 8 426 12
+1f8d a 427 12
+1f97 34 440 12
+1fcb 8 441 12
+1fd3 8 442 12
+1fdb 4 443 12
+1fdf 8 444 12
+1fe7 30 454 12
+2017 c 456 12
+2023 7 460 12
+202a 1e 462 12
+2048 4 465 12
+204c 6 466 12
+FUNC 2060 138 0 google_breakpad::ExceptionHandler::UpdateNextID()
+2060 38 468 12
+2098 b 470 12
+20a3 4a 471 12
+20ed 25 472 12
+2112 1c 477 12
+212e 31 478 12
+215f 14 479 12
+2173 25 480 12
+FUNC 21a0 3b 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >(char const *)
+21a0 0 650 17
+21a0 35 652 17
+21d5 6 653 17
+FUNC 21e0 25 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+21e0 1 720 17
+21e1 4 721 17
+21e5 1a 722 17
+21ff 6 723 17
+FUNC 2210 26 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >()
+2210 3 904 17
+2213 22 905 17
+2235 1 906 17
+FUNC 2240 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str()
+2240 0 1621 17
+2240 9 1622 17
+2249 1 1623 17
+224a 3 1622 17
+224d 1 1623 17
+FUNC 2250 4 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size()
+2250 0 1636 17
+2250 3 1637 17
+2253 1 1638 17
+FUNC 2260 11 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >()
+2260 0 564 17
+2260 10 565 17
+2270 1 566 17
+FUNC 2280 27 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >()
+2280 3 904 17
+2283 23 905 17
+22a6 1 906 17
+FUNC 22b0 b 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+22b0 0 914 17
+22b0 a 915 17
+22ba 1 916 17
+FUNC 22c0 24 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(wchar_t const *)
+22c0 0 919 17
+22c0 21 920 17
+22e1 3 921 17
+FUNC 22f0 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str()
+22f0 0 1621 17
+22f0 9 1622 17
+22f9 1 1623 17
+22fa 3 1622 17
+22fd 1 1623 17
+FUNC 2300 c 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >()
+2300 0 457 23
+2300 b 458 23
+230b 1 459 23
+FUNC 2310 26 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::~vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >()
+2310 0 545 23
+2310 25 546 23
+2335 1 547 23
+FUNC 2340 1d 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::begin()
+2340 1 627 23
+2341 1b 628 23
+235c 1 629 23
+FUNC 2360 1d 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::end()
+2360 1 637 23
+2361 1b 638 23
+237c 1 639 23
+FUNC 2380 13 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::size()
+2380 0 702 23
+2380 9 703 23
+2389 1 704 23
+238a 8 703 23
+2392 1 704 23
+FUNC 23a0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::empty()
+23a0 0 712 23
+23a0 10 713 23
+23b0 1 714 23
+23b1 11 713 23
+23c2 1 714 23
+FUNC 23d0 56 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::at(unsigned int)
+23d0 b 729 23
+23db 15 730 23
+23f0 5 731 23
+23f5 29 732 23
+241e 8 733 23
+FUNC 2430 47 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::back()
+2430 c 776 23
+243c 32 777 23
+246e 9 778 23
+FUNC 2480 68 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::push_back(google_breakpad::ExceptionHandler * const &)
+2480 10 786 23
+2490 24 787 23
+24b4 d 796 23
+24c1 6 801 23
+24c7 1b 800 23
+24e2 6 801 23
+FUNC 24f0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::pop_back()
+24f0 6 818 23
+24f6 15 819 23
+250b 6 822 23
+2511 2 824 23
+FUNC 2520 3f 8 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::erase(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >)
+2520 7 996 23
+2527 24 998 23
+254b 11 1001 23
+255c 3 1002 23
+FUNC 2560 20 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator*()
+2560 0 325 23
+2560 1c 326 23
+257c 1 327 23
+257d 2 326 23
+257f 1 327 23
+FUNC 2580 20 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator++()
+2580 0 335 23
+2580 1d 336 23
+259d 2 337 23
+259f 1 338 23
+FUNC 25a0 1d 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator!=(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+25a0 0 202 23
+25a0 1c 203 23
+25bc 1 204 23
+FUNC 25c0 da c std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,unsigned int,unsigned int)
+25c0 1 1038 17
+25c1 12 1039 17
+25d3 5 1040 17
+25d8 3 1041 17
+25db a 1042 17
+25e5 2 1043 17
+25e7 4 1045 17
+25eb 17 1046 17
+2602 5 1052 17
+2607 3 1053 17
+260a 21 1047 17
+262b b 1049 17
+2636 13 1047 17
+2649 5 1052 17
+264e 3 1053 17
+2651 7 1047 17
+2658 5 1052 17
+265d 3 1053 17
+2660 22 1049 17
+2682 10 1050 17
+2692 5 1052 17
+2697 3 1053 17
+FUNC 26a0 27 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(char const *)
+26a0 1 1069 17
+26a1 23 1070 17
+26c4 3 1071 17
+FUNC 26d0 4a 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy(bool,unsigned int)
+26d0 0 2066 17
+26d0 f 2067 17
+26df 6 2069 17
+26e5 a 2072 17
+26ef d 2073 17
+26fc a 2074 17
+2706 11 2077 17
+2717 3 2078 17
+FUNC 2720 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr()
+2720 0 2092 17
+2720 9 2093 17
+2729 1 2094 17
+272a 3 2093 17
+272d 1 2094 17
+FUNC 2730 5 4 std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >(std::allocator<char>)
+2730 2 471 17
+2732 3 472 17
+FUNC 2740 5 4 std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >(std::_String_val<char,std::allocator<char> > const &)
+2740 2 477 17
+2742 3 484 17
+FUNC 2750 3 0 std::allocator<char>::allocator<char>()
+2750 2 120 19
+2752 1 122 19
+FUNC 2760 b 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+2760 0 1032 17
+2760 a 1033 17
+276a 1 1034 17
+FUNC 2770 ef c std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,unsigned int,unsigned int)
+2770 1 1038 17
+2771 12 1039 17
+2783 5 1040 17
+2788 3 1041 17
+278b a 1042 17
+2795 2 1043 17
+2797 4 1045 17
+279b 17 1046 17
+27b2 5 1052 17
+27b7 3 1053 17
+27ba 24 1047 17
+27de b 1049 17
+27e9 13 1047 17
+27fc 5 1052 17
+2801 3 1053 17
+2804 9 1047 17
+280d 5 1052 17
+2812 3 1053 17
+2815 2f 1049 17
+2844 13 1050 17
+2857 5 1052 17
+285c 3 1053 17
+FUNC 2860 2b 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(wchar_t const *)
+2860 1 1069 17
+2861 27 1070 17
+2888 3 1071 17
+FUNC 2890 4f 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Tidy(bool,unsigned int)
+2890 0 2066 17
+2890 f 2067 17
+289f 6 2069 17
+28a5 a 2072 17
+28af 10 2073 17
+28bf a 2074 17
+28c9 13 2077 17
+28dc 3 2078 17
+FUNC 28e0 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr()
+28e0 0 2092 17
+28e0 9 2093 17
+28e9 1 2094 17
+28ea 3 2093 17
+28ed 1 2094 17
+FUNC 28f0 5 4 std::_String_val<wchar_t,std::allocator<wchar_t> >::_String_val<wchar_t,std::allocator<wchar_t> >(std::allocator<wchar_t>)
+28f0 2 471 17
+28f2 3 472 17
+FUNC 2900 3 0 std::allocator<wchar_t>::allocator<wchar_t>()
+2900 2 120 19
+2902 1 122 19
+FUNC 2910 13 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::capacity()
+2910 0 621 23
+2910 9 622 23
+2919 1 623 23
+291a 8 622 23
+2922 1 623 23
+FUNC 2930 86 c std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::insert(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >,google_breakpad::ExceptionHandler * const &)
+2930 3 852 23
+2933 3e 853 23
+2971 11 854 23
+2982 2a 855 23
+29ac a 856 23
+FUNC 29c0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Buy(unsigned int)
+29c0 0 1066 23
+29c0 8 1070 23
+29c8 5 1071 23
+29cd a 1074 23
+29d7 3 1075 23
+29da 6 1076 23
+29e0 2 1078 23
+29e2 1 1079 23
+FUNC 29f0 1 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Destroy(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+29f0 0 1082 23
+29f0 1 1084 23
+FUNC 2a00 26 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Tidy()
+2a00 0 1087 23
+2a00 7 1088 23
+2a07 9 1096 23
+2a10 15 1098 23
+2a25 1 1099 23
+FUNC 2a30 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Ufill(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &)
+2a30 0 1207 23
+2a30 1f 1208 23
+2a4f 3 1209 23
+2a52 1 1210 23
+FUNC 2a60 76 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Xran()
+2a60 23 1218 23
+2a83 53 1219 23
+FUNC 2ae0 3 4 std::_Vector_val<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_val<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(std::allocator<google_breakpad::ExceptionHandler *>)
+2ae0 0 412 23
+2ae0 3 413 23
+FUNC 2af0 1 0 std::allocator<google_breakpad::ExceptionHandler *>::allocator<google_breakpad::ExceptionHandler *>()
+2af0 0 120 19
+2af0 1 122 19
+FUNC 2b00 21 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,std::_Container_base const *)
+2b00 1e 314 23
+2b1e 3 315 23
+FUNC 2b30 32 4 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+(int)
+2b30 1 367 23
+2b31 2 368 23
+2b33 26 369 23
+2b59 9 370 23
+FUNC 2b70 2f 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(int)
+2b70 1 378 23
+2b71 2 379 23
+2b73 25 380 23
+2b98 7 381 23
+FUNC 2ba0 20 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator*()
+2ba0 0 92 23
+2ba0 a 103 23
+2baa f 104 23
+2bb9 3 107 23
+2bbc 1 108 23
+2bbd 2 107 23
+2bbf 1 108 23
+FUNC 2bc0 20 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator++()
+2bc0 0 116 23
+2bc0 a 117 23
+2bca f 118 23
+2bd9 4 119 23
+2bdd 2 120 23
+2bdf 1 121 23
+FUNC 2be0 1d 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator==(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+2be0 0 190 23
+2be0 f 195 23
+2bef d 198 23
+2bfc 1 199 23
+FUNC 2c00 c1 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(char const *,unsigned int)
+2c00 5 1056 17
+2c05 2d 1057 17
+2c32 1a 1058 17
+2c4c 4 1066 17
+2c50 25 1060 17
+2c75 c 1062 17
+2c81 f 1060 17
+2c90 8 1065 17
+2c98 3 1066 17
+2c9b e 1062 17
+2ca9 10 1063 17
+2cb9 5 1065 17
+2cbe 3 1066 17
+FUNC 2cd0 83 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase(unsigned int,unsigned int)
+2cd0 1 1240 17
+2cd1 d 1241 17
+2cde 5 1242 17
+2ce3 d 1243 17
+2cf0 2 1244 17
+2cf2 4 1245 17
+2cf6 3c 1248 17
+2d32 8 1249 17
+2d3a 12 1250 17
+2d4c 4 1252 17
+2d50 3 1253 17
+FUNC 2d60 1f 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos(unsigned int)
+2d60 0 2030 17
+2d60 14 2031 17
+2d74 3 2032 17
+2d77 5 2031 17
+2d7c 3 2032 17
+FUNC 2d80 bc 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow(unsigned int,bool)
+2d80 1 2036 17
+2d81 c 2037 17
+2d8d 5 2038 17
+2d92 7 2039 17
+2d99 c 2040 17
+2da5 a 2046 17
+2daf 3 2047 17
+2db2 d 2041 17
+2dbf 39 2043 17
+2df8 10 2046 17
+2e08 3 2047 17
+2e0b 4 2044 17
+2e0f b 2045 17
+2e1a c 2046 17
+2e26 3 2047 17
+2e29 6 2045 17
+2e2f a 2046 17
+2e39 3 2047 17
+FUNC 2e40 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr()
+2e40 0 2087 17
+2e40 9 2088 17
+2e49 1 2089 17
+2e4a 3 2088 17
+2e4d 1 2089 17
+FUNC 2e50 5 4 std::allocator<char>::allocator<char>(std::allocator<char> const &)
+2e50 2 124 19
+2e52 3 126 19
+FUNC 2e60 e 8 std::allocator<char>::deallocate(char *,unsigned int)
+2e60 0 140 19
+2e60 b 141 19
+2e6b 3 142 19
+FUNC 2e70 da 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(wchar_t const *,unsigned int)
+2e70 4 1056 17
+2e74 31 1057 17
+2ea5 1d 1058 17
+2ec2 3 1066 17
+2ec5 28 1060 17
+2eed d 1062 17
+2efa 10 1060 17
+2f0a a 1065 17
+2f14 3 1066 17
+2f17 18 1062 17
+2f2f 14 1063 17
+2f43 4 1065 17
+2f47 3 1066 17
+FUNC 2f50 97 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::erase(unsigned int,unsigned int)
+2f50 1 1240 17
+2f51 d 1241 17
+2f5e 5 1242 17
+2f63 d 1243 17
+2f70 2 1244 17
+2f72 4 1245 17
+2f76 4d 1248 17
+2fc3 8 1249 17
+2fcb 15 1250 17
+2fe0 4 1252 17
+2fe4 3 1253 17
+FUNC 2ff0 4 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::size()
+2ff0 0 1636 17
+2ff0 3 1637 17
+2ff3 1 1638 17
+FUNC 3000 23 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Eos(unsigned int)
+3000 0 2030 17
+3000 16 2031 17
+3016 3 2032 17
+3019 7 2031 17
+3020 3 2032 17
+FUNC 3030 c7 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Grow(unsigned int,bool)
+3030 1 2036 17
+3031 f 2037 17
+3040 5 2038 17
+3045 7 2039 17
+304c c 2040 17
+3058 a 2046 17
+3062 3 2047 17
+3065 d 2041 17
+3072 3c 2043 17
+30ae 12 2046 17
+30c0 3 2047 17
+30c3 4 2044 17
+30c7 b 2045 17
+30d2 d 2046 17
+30df 3 2047 17
+30e2 8 2045 17
+30ea a 2046 17
+30f4 3 2047 17
+FUNC 3100 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr()
+3100 0 2087 17
+3100 9 2088 17
+3109 1 2089 17
+310a 3 2088 17
+310d 1 2089 17
+FUNC 3110 5 4 std::allocator<wchar_t>::allocator<wchar_t>(std::allocator<wchar_t> const &)
+3110 2 124 19
+3112 3 126 19
+FUNC 3120 e 8 std::allocator<wchar_t>::deallocate(wchar_t *,unsigned int)
+3120 0 140 19
+3120 b 141 19
+312b 3 142 19
+FUNC 3130 6 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::max_size()
+3130 0 707 23
+3130 5 708 23
+3135 1 709 23
+FUNC 3140 208 8 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Insert_n(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >,unsigned int,google_breakpad::ExceptionHandler * const &)
+3140 6 1117 23
+3146 2 1125 23
+3148 1c 1126 23
+3164 1c 1130 23
+3180 5 1131 23
+3185 1b 1132 23
+31a0 23 1135 23
+31c3 17 1136 23
+31da 19 1137 23
+31f3 7 1138 23
+31fa 25 1143 23
+321f 7 1144 23
+3226 1e 1145 23
+3244 13 1152 23
+3257 4 1153 23
+325b 9 1156 23
+3264 7 1163 23
+326b a 1164 23
+3275 3 1165 23
+3278 a 1204 23
+3282 13 1167 23
+3295 17 1170 23
+32ac 1a 1174 23
+32c6 7 1180 23
+32cd 16 1187 23
+32e3 a 1204 23
+32ed 2a 1193 23
+3317 e 1200 23
+3325 19 1202 23
+333e a 1204 23
+FUNC 3350 7c 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Xlen()
+3350 29 1213 23
+3379 53 1214 23
+FUNC 33d0 1 0 std::allocator<google_breakpad::ExceptionHandler *>::allocator<google_breakpad::ExceptionHandler *>(std::allocator<google_breakpad::ExceptionHandler *> const &)
+33d0 0 124 19
+33d0 1 126 19
+FUNC 33e0 8 0 std::allocator<google_breakpad::ExceptionHandler *>::deallocate(google_breakpad::ExceptionHandler * *,unsigned int)
+33e0 0 140 19
+33e0 7 141 19
+33e7 1 142 19
+FUNC 33f0 56 0 std::allocator<google_breakpad::ExceptionHandler *>::allocate(unsigned int)
+33f0 3 145 19
+33f3 16 146 19
+3409 4 147 19
+340d 39 146 19
+FUNC 3450 32 4 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+=(int)
+3450 0 361 23
+3450 2c 362 23
+347c 3 363 23
+347f 3 364 23
+FUNC 3490 28 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-=(int)
+3490 0 373 23
+3490 27 374 23
+34b7 1 375 23
+FUNC 34c0 19 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+34c0 0 384 23
+34c0 18 385 23
+34d8 1 386 23
+FUNC 34e0 21 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,std::_Container_base const *)
+34e0 0 77 23
+34e0 19 79 23
+34f9 2 80 23
+34fb 3 81 23
+34fe 3 82 23
+FUNC 3510 19 4 std::length_error::length_error(std::length_error const &)
+FUNC 3530 7 0 std::_Ranit<google_breakpad::ExceptionHandler *,int,google_breakpad::ExceptionHandler * const *,google_breakpad::ExceptionHandler * const &>::_Ranit<google_breakpad::ExceptionHandler *,int,google_breakpad::ExceptionHandler * const *,google_breakpad::ExceptionHandler * const &>()
+FUNC 3540 6 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size()
+3540 0 1641 17
+3540 5 1643 17
+3545 1 1644 17
+FUNC 3550 171 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy(unsigned int,unsigned int)
+3550 30 2000 17
+3580 8 2001 17
+3588 5 2002 17
+358d 2 2003 17
+358f 2 2004 17
+3591 1f 2005 17
+35b0 3 2006 17
+35b3 2 2009 17
+35b5 18 2010 17
+35cd 2 2019 17
+35cf 30 2010 17
+35ff 3 2012 17
+3602 19 2014 17
+361b c 2019 17
+3627 7 2021 17
+362e 20 2022 17
+364e 12 2023 17
+3660 1c 2026 17
+367c 14 2027 17
+3690 15 2016 17
+36a5 1c 2017 17
+FUNC 36d0 39 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside(char const *)
+36d0 1 2050 17
+36d1 2b 2052 17
+36fc 3 2055 17
+36ff 4 2056 17
+3703 3 2053 17
+3706 3 2056 17
+FUNC 3710 6 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::max_size()
+3710 0 1641 17
+3710 5 1643 17
+3715 1 1644 17
+FUNC 3720 17b 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Copy(unsigned int,unsigned int)
+3720 30 2000 17
+3750 8 2001 17
+3758 8 2002 17
+3760 2 2003 17
+3762 2 2004 17
+3764 1f 2005 17
+3783 3 2006 17
+3786 2 2009 17
+3788 1b 2010 17
+37a3 2 2019 17
+37a5 30 2010 17
+37d5 3 2012 17
+37d8 19 2014 17
+37f1 c 2019 17
+37fd 7 2021 17
+3804 24 2022 17
+3828 12 2023 17
+383a 20 2026 17
+385a 14 2027 17
+386e 17 2016 17
+3885 16 2017 17
+FUNC 38a0 3a 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Inside(wchar_t const *)
+38a0 1 2050 17
+38a1 2c 2052 17
+38cd 3 2055 17
+38d0 4 2056 17
+38d4 3 2053 17
+38d7 3 2056 17
+FUNC 38e0 6 0 std::allocator<google_breakpad::ExceptionHandler *>::max_size()
+38e0 0 165 19
+38e0 5 167 19
+38e5 1 168 19
+FUNC 38f0 32 4 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+=(int)
+38f0 0 146 23
+38f0 a 147 23
+38fa 1a 148 23
+3914 5 150 23
+3919 3 151 23
+391c 3 152 23
+391f 3 153 23
+FUNC 3930 19 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+3930 0 173 23
+3930 f 178 23
+393f 9 181 23
+3948 1 182 23
+FUNC 3950 56 4 std::allocator<char>::allocate(unsigned int)
+3950 0 145 19
+3950 16 146 19
+3966 6 147 19
+396c 3a 146 19
+FUNC 39b0 4 0 std::allocator<char>::max_size()
+39b0 0 165 19
+39b0 3 167 19
+39b3 1 168 19
+FUNC 39c0 59 4 std::allocator<wchar_t>::allocate(unsigned int)
+39c0 0 145 19
+39c0 19 146 19
+39d9 6 147 19
+39df 3a 146 19
+FUNC 3a20 6 0 std::allocator<wchar_t>::max_size()
+3a20 0 165 19
+3a20 5 167 19
+3a25 1 168 19
+FUNC 3a30 21 10 std::_Traits_helper::copy_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int)
+3a30 0 581 70
+3a30 20 582 70
+3a50 1 583 70
+FUNC 3a60 27 10 std::_Traits_helper::copy_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+3a60 0 581 70
+3a60 26 582 70
+3a86 1 583 70
+FUNC 3a90 24 0 stdext::unchecked_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3a90 0 3407 65
+3a90 23 3409 65
+3ab3 1 3410 65
+FUNC 3ac0 1 0 std::_Destroy_range<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3ac0 0 225 19
+3ac0 1 227 19
+FUNC 3ad0 15 0 stdext::unchecked_uninitialized_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::allocator<google_breakpad::ExceptionHandler *> &)
+3ad0 0 914 24
+3ad0 14 916 24
+3ae4 1 917 24
+FUNC 3af0 21 10 std::_Traits_helper::move_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int)
+3af0 0 608 70
+3af0 20 609 70
+3b10 1 610 70
+FUNC 3b20 27 10 std::_Traits_helper::move_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+3b20 0 608 70
+3b20 26 609 70
+3b46 1 610 70
+FUNC 3b50 22 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Umove<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3b50 0 1109 23
+3b50 21 1112 23
+3b71 1 1113 23
+FUNC 3b80 10 0 std::fill<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * const &)
+3b80 0 2976 65
+3b80 f 2977 65
+3b8f 1 2978 65
+FUNC 3b90 25 0 stdext::_Unchecked_move_backward<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3b90 0 3497 65
+3b90 24 3499 65
+3bb4 1 3500 65
+FUNC 3bc0 4f 0 std::_Allocate<google_breakpad::ExceptionHandler *>(unsigned int,google_breakpad::ExceptionHandler * *)
+3bc0 0 37 19
+3bc0 f 40 19
+3bcf 2c 41 19
+3bfb 10 44 19
+3c0b 4 45 19
+FUNC 3c10 54 8 std::_Allocate<char>(unsigned int,char *)
+3c10 0 37 19
+3c10 b 38 19
+3c1b 2 39 19
+3c1d 9 44 19
+3c26 4 45 19
+3c2a c 40 19
+3c36 2e 41 19
+FUNC 3c70 57 8 std::_Allocate<wchar_t>(unsigned int,wchar_t *)
+3c70 0 37 19
+3c70 b 38 19
+3c7b 2 39 19
+3c7d c 44 19
+3c89 4 45 19
+3c8d c 40 19
+3c99 2e 41 19
+FUNC 3cd0 19 4 std::bad_alloc::bad_alloc(std::bad_alloc const &)
+FUNC 3cf0 7 0 std::_Char_traits_cat<std::char_traits<char> >()
+3cf0 1 568 70
+3cf1 4 570 70
+3cf5 2 571 70
+FUNC 3d00 21 14 std::_Traits_helper::copy_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int,std::_Secure_char_traits_tag)
+3d00 0 589 70
+3d00 20 590 70
+3d20 1 591 70
+FUNC 3d30 7 0 std::_Char_traits_cat<std::char_traits<wchar_t> >()
+3d30 1 568 70
+3d31 4 570 70
+3d35 2 571 70
+FUNC 3d40 27 14 std::_Traits_helper::copy_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int,std::_Secure_char_traits_tag)
+3d40 0 589 70
+3d40 26 590 70
+3d66 1 591 70
+FUNC 3d70 3 0 std::_Checked_base<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &)
+3d70 0 1009 65
+3d70 2 1011 65
+3d72 1 1012 65
+FUNC 3d80 1 0 std::_Iter_random<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &,google_breakpad::ExceptionHandler * * const &)
+3d80 0 839 65
+3d80 1 844 65
+FUNC 3d90 7 0 std::_Ptr_cat<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &,google_breakpad::ExceptionHandler * * &)
+3d90 1 1329 65
+3d91 4 1331 65
+3d95 2 1332 65
+FUNC 3da0 15 4 std::_Copy_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3da0 0 2288 65
+3da0 d 2300 65
+3dad 7 2301 65
+3db4 1 2302 65
+FUNC 3dc0 1 4 std::_Destroy_range<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag)
+3dc0 0 242 19
+3dc0 1 243 19
+FUNC 3dd0 15 8 std::_Uninit_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3dd0 0 415 24
+3dd0 14 416 24
+3de4 1 417 24
+FUNC 3df0 21 14 std::_Traits_helper::move_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int,std::_Secure_char_traits_tag)
+3df0 0 616 70
+3df0 20 617 70
+3e10 1 618 70
+FUNC 3e20 27 14 std::_Traits_helper::move_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int,std::_Secure_char_traits_tag)
+3e20 0 616 70
+3e20 26 617 70
+3e46 1 618 70
+FUNC 3e50 22 0 stdext::_Unchecked_uninitialized_move<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3e50 0 843 24
+3e50 21 845 24
+3e71 1 846 24
+FUNC 3e80 10 0 std::_Fill<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * const &)
+3e80 0 2946 65
+3e80 6 2948 65
+3e86 9 2949 65
+3e8f 1 2950 65
+FUNC 3e90 7 0 std::_Move_cat<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &)
+3e90 1 1046 65
+3e91 4 1048 65
+3e95 2 1049 65
+FUNC 3ea0 25 c std::_Move_backward_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Undefined_move_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Undefined_move_tag,std::_Range_checked_iterator_tag)
+3ea0 0 2546 65
+3ea0 24 2548 65
+3ec4 1 2549 65
+FUNC 3ed0 3 4 std::_Checked_base<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &,std::_Unchanged_checked_iterator_base_type_tag)
+3ed0 0 992 65
+3ed0 2 993 65
+3ed2 1 994 65
+FUNC 3ee0 15 0 stdext::unchecked_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &)
+3ee0 0 3523 65
+3ee0 14 3524 65
+3ef4 1 3525 65
+FUNC 3f00 22 8 std::_Uninit_move<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *>,std::_Undefined_move_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Undefined_move_tag,std::_Range_checked_iterator_tag)
+3f00 0 205 24
+3f00 21 206 24
+3f21 1 207 24
+FUNC 3f30 13 0 std::_Copy_backward_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3f30 0 2492 65
+3f30 10 2506 65
+3f40 2 2507 65
+3f42 1 2508 65
+FUNC 3f50 1 0 std::_Iter_cat<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &)
+3f50 0 798 65
+3f50 1 801 65
+FUNC 3f60 15 8 std::_Fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::random_access_iterator_tag,std::_Range_checked_iterator_tag)
+3f60 0 3040 65
+3f60 14 3044 65
+3f74 1 3045 65
+FUNC 3f80 22 0 stdext::unchecked_uninitialized_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3f80 0 803 24
+3f80 21 805 24
+3fa1 1 806 24
+FUNC 3fb0 15 4 std::_Fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::_Range_checked_iterator_tag)
+3fb0 0 2986 65
+3fb0 5 2987 65
+3fb5 f 2988 65
+3fc4 1 2989 65
+FUNC 3fd0 15 4 std::_Uninit_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3fd0 0 144 24
+3fd0 d 150 24
+3fdd 7 151 24
+3fe4 1 152 24
+FUNC 3ff0 13 4 vswprintf
+3ff0 0 50 147
+3ff0 12 51 147
+4002 1 52 147
+FUNC 4010 ae 4 google_breakpad::GUIDString::GUIDToWString(_GUID *)
+4010 12 43 126
+4022 51 51 126
+4073 3a 52 126
+40ad 11 53 126
+FUNC 40c0 ae 4 google_breakpad::GUIDString::GUIDToSymbolServerWString(_GUID *)
+40c0 12 56 126
+40d2 51 64 126
+4123 3a 65 126
+415d 11 66 126
+FUNC 4170 40 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >(wchar_t const *)
+4170 0 650 143
+4170 3a 652 143
+41aa 6 653 143
+FUNC 41b0 86 8 main
+41b0 13 63 178
+41c3 38 64 178
+41fb 5 65 178
+4200 d 66 178
+420d 1b 67 178
+4228 e 68 178
+FUNC 4240 41 18 `anonymous namespace'::callback
+4240 3 45 178
+4243 8 46 178
+424b 11 47 178
+425c 2 48 178
+425e d 49 178
+426b 11 51 178
+427c 3 53 178
+427f 2 54 178
+FUNC 4290 18 0 `anonymous namespace'::CrashFunction
+4290 4 56 178
+4294 7 57 178
+429b 9 58 178
+42a4 4 59 178
+FUNC 42ae 18 4 std::invalid_argument::invalid_argument(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+42ae 12 82 298
+42c0 6 83 298
+FUNC 42c6 b 0 std::invalid_argument::~invalid_argument()
+42c6 6 86 298
+42cc 5 87 298
+FUNC 42d1 22 0 std::invalid_argument::`vector deleting destructor'(unsigned int)
+FUNC 42f3 3f 0 std::_String_base::_Xlen()
+42f3 c 12 291
+42ff 33 13 291
+FUNC 4332 3f 0 std::_String_base::_Xran()
+4332 c 17 291
+433e 33 18 291
+FUNC 4371 3f 0 std::_String_base::_Xinvarg()
+4371 c 22 291
+437d 33 23 291
+FUNC 43b0 18 4 std::invalid_argument::invalid_argument(std::invalid_argument const &)
+FUNC 43c8 af 4 printf
+43c8 c 49 1601
+43d4 2b 54 1601
+43ff 14 58 1601
+4413 3 59 1601
+4416 10 61 1601
+4426 18 63 1601
+443e 11 65 1601
+444f c 68 1601
+445b 3 72 1601
+445e 6 73 1601
+4464 13 69 1601
+FUNC 4477 16 8 _printf_l
+4477 0 80 1601
+4477 15 85 1601
+448c 1 86 1601
+FUNC 448d 16 8 _printf_s_l
+448d 0 94 1601
+448d 15 99 1601
+44a2 1 100 1601
+FUNC 44a3 14 4 printf_s
+44a3 0 106 1601
+44a3 13 111 1601
+44b6 1 112 1601
+FUNC 44b7 16 8 _printf_p_l
+44b7 0 119 1601
+44b7 15 124 1601
+44cc 1 125 1601
+FUNC 44cd 14 4 _printf_p
+44cd 0 131 1601
+44cd 13 136 1601
+44e0 1 137 1601
+FUNC 44e1 25 4 _set_printf_count_output
+44e1 0 154 1601
+44e1 6 155 1601
+44e7 1e 156 1601
+4505 1 158 1601
+FUNC 4506 16 0 _get_printf_count_output
+4506 0 167 1601
+4506 15 168 1601
+451b 1 169 1601
+FUNC 451c f 0 __security_check_cookie
+451c 0 52 4397
+451c 6 55 4397
+4522 2 56 4397
+4524 2 57 4397
+4526 5 59 4397
+FUNC 452b 62 4 _flush
+452b 2 142 1704
+452d 25 152 1704
+4552 16 154 1704
+4568 7 158 1704
+456f 6 159 1704
+4575 2 161 1704
+4577 4 162 1704
+457b 4 163 1704
+457f 3 167 1704
+4582 7 168 1704
+4589 3 170 1704
+458c 1 171 1704
+FUNC 458d 42 4 _fflush_nolock
+458d 1 98 1704
+458e 8 102 1704
+4596 8 103 1704
+459e 1 116 1704
+459f b 106 1704
+45aa 4 108 1704
+45ae 1 116 1704
+45af 8 112 1704
+45b7 13 113 1704
+45ca 1 116 1704
+45cb 3 115 1704
+45ce 1 116 1704
+FUNC 45cf da 4 flsall
+45cf c 228 1704
+45db 5 230 1704
+45e0 3 231 1704
+45e3 8 233 1704
+45eb 3 234 1704
+45ee 11 236 1704
+45ff 14 238 1704
+4613 9 246 1704
+461c 6 248 1704
+4622 10 254 1704
+4632 5 256 1704
+4637 c 262 1704
+4643 3 266 1704
+4646 2 268 1704
+4648 a 269 1704
+4652 c 275 1704
+465e 3 276 1704
+4661 8 281 1704
+4669 3 236 1704
+466c 5 281 1704
+4671 11 282 1704
+4682 c 288 1704
+468e 4 292 1704
+4692 3 293 1704
+4695 2 292 1704
+4697 3 295 1704
+469a 6 296 1704
+46a0 9 289 1704
+FUNC 46a9 53 4 fflush
+46a9 c 57 1704
+46b5 7 62 1704
+46bc 9 63 1704
+46c5 9 65 1704
+46ce 3 67 1704
+46d1 c 68 1704
+46dd c 70 1704
+46e9 3 74 1704
+46ec 6 75 1704
+46f2 a 71 1704
+FUNC 46fc 9 0 _flushall
+46fc 0 193 1704
+46fc 8 194 1704
+4704 1 195 1704
+FUNC 4705 6 0 __iob_func
+4705 0 53 2087
+4705 5 54 2087
+470a 1 55 2087
+FUNC 470b b1 0 __initstdio
+470b 0 113 2087
+470b d 122 2087
+4718 7 123 2087
+471f 4 124 2087
+4723 7 125 2087
+472a 13 134 2087
+473d 19 137 2087
+4756 4 138 2087
+475a 1 163 2087
+475b e 145 2087
+4769 11 146 2087
+477a b 148 2087
+4785 24 151 2087
+47a9 2 158 2087
+47ab d 148 2087
+47b8 3 162 2087
+47bb 1 163 2087
+FUNC 47bc 20 0 __endstdio
+47bc 0 191 2087
+47bc 5 193 2087
+47c1 9 196 2087
+47ca 5 197 2087
+47cf c 198 2087
+47db 1 199 2087
+FUNC 47dc 3c 4 _lock_file
+47dc 1 221 2087
+47dd 15 226 2087
+47f2 10 231 2087
+4802 9 233 2087
+480b 1 242 2087
+480c b 241 2087
+4817 1 242 2087
+FUNC 4818 2e 8 _lock_file2
+4818 0 264 2087
+4818 9 269 2087
+4821 9 274 2087
+482a c 276 2087
+4836 1 285 2087
+4837 e 284 2087
+4845 1 285 2087
+FUNC 4846 36 4 _unlock_file
+4846 0 306 2087
+4846 14 311 2087
+485a 7 317 2087
+4861 f 318 2087
+4870 1 327 2087
+4871 a 326 2087
+487b 1 327 2087
+FUNC 487c 2a 8 _unlock_file2
+487c 0 349 2087
+487c 7 354 2087
+4883 d 360 2087
+4890 a 361 2087
+489a 1 370 2087
+489b a 369 2087
+48a5 1 370 2087
+FUNC 48a6 16 4 wcslen
+48a6 0 41 731
+48a6 4 42 731
+48aa a 44 731
+48b4 7 46 731
+48bb 1 47 731
+FUNC 48bc 5 4 operator delete(void *)
+48bc 0 20 5184
+48bc 5 23 5184
+FUNC 48c1 30 8 _JumpToContinuation(void *,EHRegistrationNode *)
+48c1 5 77 5627
+48c6 9 84 5627
+48cf 7 93 5627
+48d6 2 94 5627
+48d8 6 95 5627
+48de 3 100 5627
+48e1 3 101 5627
+48e4 3 102 5627
+48e7 3 103 5627
+48ea 2 104 5627
+48ec 5 106 5627
+FUNC 48f1 7 8 _CallMemberFunction0(void *,void *)
+48f1 0 118 5627
+48f1 1 120 5627
+48f2 1 121 5627
+48f3 3 122 5627
+48f6 2 123 5627
+FUNC 48f8 7 c _CallMemberFunction1(void *,void *,void *)
+48f8 0 139 5627
+48f8 1 141 5627
+48f9 1 142 5627
+48fa 3 143 5627
+48fd 2 144 5627
+FUNC 48ff 7 10 _CallMemberFunction2(void *,void *,void *,int)
+48ff 0 161 5627
+48ff 1 163 5627
+4900 1 164 5627
+4901 3 165 5627
+4904 2 166 5627
+FUNC 4906 52 8 _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord *)
+4906 8 218 5627
+490e 7 232 5627
+4915 3 233 5627
+4918 7 236 5627
+491f 10 237 5627
+492f f 241 5627
+493e 7 247 5627
+4945 3 248 5627
+4948 2 249 5627
+494a 7 250 5627
+4951 7 256 5627
+FUNC 4958 36 10 __CxxFrameHandler
+4958 0 287 5627
+4958 1 295 5627
+4959 2 296 5627
+495b 3 297 5627
+495e 1 298 5627
+495f 1 299 5627
+4960 1 300 5627
+4961 1 301 5627
+4962 3 306 5627
+4965 1f 311 5627
+4984 1 316 5627
+4985 1 317 5627
+4986 1 318 5627
+4987 3 319 5627
+498a 2 320 5627
+498c 1 321 5627
+498d 1 322 5627
+FUNC 498e 36 10 __CxxFrameHandler3
+498e 0 341 5627
+498e 1 349 5627
+498f 2 350 5627
+4991 3 351 5627
+4994 1 352 5627
+4995 1 353 5627
+4996 1 354 5627
+4997 1 355 5627
+4998 3 360 5627
+499b 1f 365 5627
+49ba 1 370 5627
+49bb 1 371 5627
+49bc 1 372 5627
+49bd 3 373 5627
+49c0 2 374 5627
+49c2 1 375 5627
+49c3 1 376 5627
+FUNC 49c4 36 10 __CxxFrameHandler2
+49c4 0 391 5627
+49c4 1 399 5627
+49c5 2 400 5627
+49c7 3 401 5627
+49ca 1 402 5627
+49cb 1 403 5627
+49cc 1 404 5627
+49cd 1 405 5627
+49ce 3 410 5627
+49d1 1f 415 5627
+49f0 1 420 5627
+49f1 1 421 5627
+49f2 1 422 5627
+49f3 3 423 5627
+49f6 2 424 5627
+49f8 1 425 5627
+49f9 1 426 5627
+FUNC 49fa 1a 4 __CxxLongjmpUnwind
+49fa 0 443 5627
+49fa 17 449 5627
+4a11 3 452 5627
+FUNC 4a14 30 10 CatchGuardHandler
+4a14 1 545 5627
+4a15 1 551 5627
+4a16 e 557 5627
+4a24 1f 567 5627
+4a43 1 572 5627
+FUNC 4a44 d5 1c _CallSETranslator(EHExceptionRecord *,EHRegistrationNode *,void *,void *,_s_FuncInfo const *,int,EHRegistrationNode *)
+4a44 7 637 5627
+4a4b 9 642 5627
+4a54 5 644 5627
+4a59 3 645 5627
+4a5c 2 646 5627
+4a5e 8 648 5627
+4a66 4 656 5627
+4a6a 7 657 5627
+4a71 d 658 5627
+4a7e 6 659 5627
+4a84 6 660 5627
+4a8a 6 661 5627
+4a90 6 662 5627
+4a96 4 663 5627
+4a9a 4 664 5627
+4a9e 4 669 5627
+4aa2 3 675 5627
+4aa5 3 676 5627
+4aa8 6 681 5627
+4aae 3 682 5627
+4ab1 3 683 5627
+4ab4 6 684 5627
+4aba 7 690 5627
+4ac1 6 692 5627
+4ac7 6 693 5627
+4acd e 697 5627
+4adb e 701 5627
+4ae9 4 707 5627
+4aed 6 715 5627
+4af3 7 724 5627
+4afa 2 725 5627
+4afc 3 726 5627
+4aff 2 727 5627
+4b01 7 728 5627
+4b08 2 731 5627
+4b0a 3 737 5627
+4b0d 6 738 5627
+4b13 3 744 5627
+4b16 3 745 5627
+FUNC 4b19 9d 10 TranslatorGuardHandler
+4b19 5 770 5627
+4b1e 1 776 5627
+4b1f e 782 5627
+4b2d b 784 5627
+4b38 a 786 5627
+4b42 5 790 5627
+4b47 2 792 5627
+4b49 2a 796 5627
+4b73 9 798 5627
+4b7c b 802 5627
+4b87 1b 811 5627
+4ba2 3 818 5627
+4ba5 3 819 5627
+4ba8 3 820 5627
+4bab 3 821 5627
+4bae 2 822 5627
+4bb0 3 826 5627
+4bb3 3 828 5627
+FUNC 4bb6 73 14 _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,unsigned int *,unsigned int *)
+4bb6 7 848 5627
+4bbd 6 849 5627
+4bc3 6 850 5627
+4bc9 2 851 5627
+4bcb 2 852 5627
+4bcd a 855 5627
+4bd7 1d 859 5627
+4bf4 3 860 5627
+4bf7 3 861 5627
+4bfa 3 862 5627
+4bfd 6 854 5627
+4c03 6 866 5627
+4c09 5 867 5627
+4c0e e 869 5627
+4c1c b 871 5627
+4c27 2 872 5627
+FUNC 4c29 28 8 _CreateFrameInfo
+4c29 0 889 5627
+4c29 b 890 5627
+4c34 e 891 5627
+4c42 b 892 5627
+4c4d 3 893 5627
+4c50 1 894 5627
+FUNC 4c51 21 4 _IsExceptionObjectToBeDestroyed
+4c51 0 907 5627
+4c51 d 910 5627
+4c5e 8 911 5627
+4c66 7 910 5627
+4c6d 1 915 5627
+4c6e 1 916 5627
+4c6f 2 912 5627
+4c71 1 916 5627
+FUNC 4c72 4c 4 _FindAndUnlinkFrame
+4c72 1 926 5627
+4c73 11 927 5627
+4c84 f 928 5627
+4c93 1 944 5627
+4c94 d 931 5627
+4ca1 7 935 5627
+4ca8 9 933 5627
+4cb1 5 943 5627
+4cb6 7 936 5627
+4cbd 1 944 5627
+FUNC 4cbe 5e 14 _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo const *,void *,int,unsigned long)
+4cbe 6 485 5627
+4cc4 e 493 5627
+4cd2 c 495 5627
+4cde 11 500 5627
+4cef 6 503 5627
+4cf5 3 504 5627
+4cf8 3 505 5627
+4cfb 6 506 5627
+4d01 e 512 5627
+4d0f 3 518 5627
+4d12 6 519 5627
+4d18 2 524 5627
+4d1a 2 525 5627
+FUNC 4d1c 4a 8 _CxxThrowException
+4d1c 6 95 5939
+4d22 15 117 5939
+4d37 3 118 5939
+4d3a 9 134 5939
+4d43 5 136 5939
+4d48 7 138 5939
+4d4f 13 159 5939
+4d62 4 161 5939
+FUNC 4d66 19 0 std::bad_alloc::bad_alloc()
+4d66 15 382 5121
+4d7b 4 383 5121
+FUNC 4d7f 6a 4 operator new(unsigned int)
+4d7f 6 57 5123
+4d85 2 59 5123
+4d87 d 60 5123
+4d94 d 59 5123
+4da1 2 67 5123
+4da3 27 62 5123
+4dca 1f 63 5123
+FUNC 4de9 f 4 type_info::name(__type_info_node *)
+4de9 0 44 5873
+4de9 c 45 5873
+4df5 3 46 5873
+FUNC 4df8 e 0 type_info::~type_info()
+4df8 0 49 5873
+4df8 d 50 5873
+4e05 1 51 5873
+FUNC 4e06 1c 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 4e22 f 4 type_info::_name_internal_method(__type_info_node *)
+4e22 0 54 5873
+4e22 c 55 5873
+4e2e 3 56 5873
+FUNC 4e31 8 0 type_info::_type_info_dtor_internal_method()
+4e31 0 59 5873
+4e31 7 60 5873
+4e38 1 61 5873
+FUNC 4e39 1b 4 type_info::operator==(type_info const &)
+4e39 0 89 5873
+4e39 18 90 5873
+4e51 3 91 5873
+FUNC 4e54 1c 4 type_info::operator!=(type_info const &)
+4e54 0 98 5873
+4e54 19 99 5873
+4e6d 3 100 5873
+FUNC 4e70 1f 4 type_info::before(type_info const &)
+4e70 0 103 5873
+4e70 1c 104 5873
+4e8c 3 105 5873
+FUNC 4e8f 4 0 type_info::raw_name()
+4e8f 0 108 5873
+4e8f 3 109 5873
+4e92 1 110 5873
+FUNC 4e93 b 4 type_info::type_info(type_info const &)
+4e93 8 113 5873
+4e9b 3 123 5873
+FUNC 4e9e 5 4 type_info::operator=(type_info const &)
+4e9e 2 127 5873
+4ea0 3 135 5873
+FUNC 4ea3 11 0 std::exception::exception()
+4ea3 2 68 5916
+4ea5 4 69 5916
+4ea9 a 70 5916
+4eb3 1 71 5916
+FUNC 4eb4 4e 4 std::exception::exception(char const * const &)
+4eb4 1 77 5916
+4eb5 14 78 5916
+4ec9 9 80 5916
+4ed2 6 81 5916
+4ed8 9 82 5916
+4ee1 c 84 5916
+4eed 2 87 5916
+4eef 4 89 5916
+4ef3 7 91 5916
+4efa 8 92 5916
+FUNC 4f02 18 8 std::exception::exception(char const * const &,int)
+4f02 2 98 5916
+4f04 c 99 5916
+4f10 7 100 5916
+4f17 3 101 5916
+FUNC 4f1a 58 4 std::exception::exception(std::exception const &)
+4f1a 1 107 5916
+4f1b 13 108 5916
+4f2e 2 109 5916
+4f30 a 111 5916
+4f3a 9 113 5916
+4f43 6 114 5916
+4f49 9 115 5916
+4f52 d 117 5916
+4f5f 2 120 5916
+4f61 4 122 5916
+4f65 2 125 5916
+4f67 4 126 5916
+4f6b 7 127 5916
+FUNC 4f72 56 4 std::exception::operator=(std::exception const &)
+4f72 1 133 5916
+4f73 c 134 5916
+4f7f 6 136 5916
+4f85 2 137 5916
+4f87 9 139 5916
+4f90 9 141 5916
+4f99 6 144 5916
+4f9f 9 146 5916
+4fa8 d 148 5916
+4fb5 2 151 5916
+4fb7 4 153 5916
+4fbb 2 156 5916
+4fbd 3 157 5916
+4fc0 5 159 5916
+4fc5 3 160 5916
+FUNC 4fc8 16 0 std::exception::~exception()
+4fc8 0 167 5916
+4fc8 c 168 5916
+4fd4 9 169 5916
+4fdd 1 170 5916
+FUNC 4fde d 0 std::exception::what()
+4fde 0 180 5916
+4fde 5 181 5916
+4fe3 2 182 5916
+4fe5 5 184 5916
+4fea 1 185 5916
+FUNC 4feb 19 4 std::bad_cast::bad_cast(char const *)
+4feb 13 194 5916
+4ffe 6 195 5916
+FUNC 5004 18 4 std::bad_cast::bad_cast(std::bad_cast const &)
+5004 12 199 5916
+5016 6 200 5916
+FUNC 501c b 0 std::bad_cast::~bad_cast()
+501c 6 203 5916
+5022 5 204 5916
+FUNC 5027 19 4 std::bad_typeid::bad_typeid(char const *)
+5027 13 229 5916
+503a 6 230 5916
+FUNC 5040 18 4 std::bad_typeid::bad_typeid(std::bad_typeid const &)
+5040 12 234 5916
+5052 6 235 5916
+FUNC 5058 b 0 std::bad_typeid::~bad_typeid()
+5058 6 238 5916
+505e 5 239 5916
+FUNC 5063 18 4 std::__non_rtti_object::__non_rtti_object(char const *)
+5063 12 248 5916
+5075 6 249 5916
+FUNC 507b 18 4 std::__non_rtti_object::__non_rtti_object(std::__non_rtti_object const &)
+507b 12 253 5916
+508d 6 254 5916
+FUNC 5093 b 0 std::__non_rtti_object::~__non_rtti_object()
+5093 0 257 5916
+5093 b 258 5916
+FUNC 509e 1c 0 std::exception::`vector deleting destructor'(unsigned int)
+FUNC 50ba 22 0 std::bad_cast::`vector deleting destructor'(unsigned int)
+FUNC 50dc 22 0 std::bad_typeid::`scalar deleting destructor'(unsigned int)
+FUNC 50fe 22 0 std::__non_rtti_object::`scalar deleting destructor'(unsigned int)
+FUNC 5120 7b 10 memcpy_s
+5120 4 47 1002
+5124 a 48 1002
+512e 4 51 1002
+5132 20 55 1002
+5152 a 56 1002
+515c f 67 1002
+516b 2 68 1002
+516d f 59 1002
+517c 5 61 1002
+5181 13 62 1002
+5194 5 64 1002
+5199 2 69 1002
+FUNC 519b 5b 10 memmove_s
+519b 3 46 955
+519e 9 47 955
+51a7 2 50 955
+51a9 20 54 955
+51c9 5 55 955
+51ce 13 56 955
+51e1 f 58 955
+51f0 4 59 955
+51f4 2 60 955
+FUNC 51f6 a 4 _set_osplatform
+51f6 a 385 2595
+FUNC 5200 a 4 _set_osver
+5200 a 386 2595
+FUNC 520a a 4 _set_winver
+520a a 387 2595
+FUNC 5214 a 4 _set_winmajor
+5214 a 388 2595
+FUNC 521e a 4 _set_winminor
+521e a 389 2595
+FUNC 5228 24 4 fast_error_exit
+5228 0 375 2608
+5228 9 384 2608
+5231 5 386 2608
+5236 9 388 2608
+523f c 389 2608
+524b 1 390 2608
+FUNC 524c 41 0 check_managed_app
+524c 0 413 2608
+524c b 418 2608
+5257 5 422 2608
+525c a 424 2608
+5266 2 425 2608
+5268 9 427 2608
+5271 2 428 2608
+5273 7 433 2608
+527a 2 434 2608
+527c d 437 2608
+5289 1 438 2608
+528a 2 419 2608
+528c 1 438 2608
+FUNC 528d 1b6 0 __tmainCRTStartup
+528d c 203 2608
+5299 19 233 2608
+52b2 4 234 2608
+52b6 8 235 2608
+52be a 236 2608
+52c8 2 242 2608
+52ca 7 243 2608
+52d1 3 244 2608
+52d4 4 243 2608
+52d8 9 244 2608
+52e1 2 245 2608
+52e3 6 248 2608
+52e9 6 249 2608
+52ef 6 250 2608
+52f5 9 256 2608
+52fe 9 257 2608
+5307 8 258 2608
+530f 6 259 2608
+5315 d 260 2608
+5322 6 262 2608
+5328 5 263 2608
+532d 6 264 2608
+5333 6 265 2608
+5339 6 266 2608
+533f 8 271 2608
+5347 c 273 2608
+5353 8 274 2608
+535b 9 276 2608
+5364 8 277 2608
+536c 5 286 2608
+5371 4 294 2608
+5375 9 296 2608
+537e 8 297 2608
+5386 b 300 2608
+5391 a 303 2608
+539b 9 305 2608
+53a4 8 306 2608
+53ac 9 307 2608
+53b5 8 308 2608
+53bd 8 310 2608
+53c5 4 311 2608
+53c9 7 312 2608
+53d0 a 326 2608
+53da 18 327 2608
+53f2 6 330 2608
+53f8 6 331 2608
+53fe 5 333 2608
+5403 2 335 2608
+5405 17 336 2608
+541c 6 342 2608
+5422 6 344 2608
+5428 6 345 2608
+542e 5 347 2608
+5433 7 349 2608
+543a 3 351 2608
+543d 6 352 2608
+FUNC 5443 a 0 mainCRTStartup
+5443 0 186 2608
+5443 5 193 2608
+5448 5 195 2608
+FUNC 544d a 4 _initp_misc_invarg
+544d 0 38 3328
+544d 9 39 3328
+5456 1 40 3328
+FUNC 5457 fc 14 _invoke_watson
+5457 1c 111 3328
+5473 6 128 3328
+5479 6 129 3328
+547f 6 130 3328
+5485 3 131 3328
+5488 3 132 3328
+548b 3 133 3328
+548e 7 134 3328
+5495 7 135 3328
+549c 4 136 3328
+54a0 4 137 3328
+54a4 4 138 3328
+54a8 4 139 3328
+54ac 1 140 3328
+54ad 6 141 3328
+54b3 6 147 3328
+54b9 19 148 3328
+54d2 3 150 3328
+54d5 13 163 3328
+54e8 6 168 3328
+54ee 13 169 3328
+5501 6 171 3328
+5507 a 174 3328
+5511 a 176 3328
+551b 8 180 3328
+5523 8 181 3328
+552b 12 184 3328
+553d 16 185 3328
+FUNC 5553 22 4 _set_invalid_parameter_handler
+5553 1 207 3328
+5554 b 211 3328
+555f d 212 3328
+556c 5 214 3328
+5571 3 216 3328
+5574 1 217 3328
+FUNC 5575 d 0 _get_invalid_parameter_handler
+5575 0 221 3328
+5575 c 225 3328
+5581 1 228 3328
+FUNC 5582 9 14 _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)
+5582 3 266 3328
+5585 1 274 3328
+5586 5 273 3328
+FUNC 558b 24 14 _invalid_parameter
+558b 3 70 3328
+558e b 77 3328
+5599 5 78 3328
+559e 1 89 3328
+559f 2 80 3328
+55a1 8 86 3328
+55a9 1 89 3328
+55aa 5 88 3328
+FUNC 55af 10 0 _invalid_parameter_noinfo
+55af 0 98 3328
+55af f 99 3328
+55be 1 100 3328
+FUNC 55bf 9 14 _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)
+55bf 3 249 3328
+55c2 1 257 3328
+55c3 5 256 3328
+FUNC 55c8 96 8 _swprintf
+55c8 7 122 1564
+55cf 24 128 1564
+55f3 8 133 1564
+55fb 6 138 1564
+5601 22 153 1564
+5623 1d 160 1564
+5640 18 161 1564
+5658 4 163 1564
+565c 2 171 1564
+FUNC 565e 1a c __swprintf_l
+565e 0 181 1564
+565e 19 186 1564
+5677 1 188 1564
+FUNC 5678 1c c swprintf_s
+5678 0 238 1564
+5678 1b 243 1564
+5693 1 244 1564
+FUNC 5694 1f 10 _snwprintf_s
+5694 3 253 1564
+5697 1a 258 1564
+56b1 2 259 1564
+FUNC 56b3 1c c _swprintf_p
+56b3 0 267 1564
+56b3 1b 272 1564
+56ce 1 273 1564
+FUNC 56cf 1d 10 _swprintf_s_l
+56cf 3 282 1564
+56d2 18 287 1564
+56ea 2 288 1564
+FUNC 56ec 20 14 _snwprintf_s_l
+56ec 3 298 1564
+56ef 1b 303 1564
+570a 2 304 1564
+FUNC 570c 1d 10 _swprintf_p_l
+570c 3 313 1564
+570f 18 318 1564
+5727 2 319 1564
+FUNC 5729 11 4 _scwprintf
+5729 0 347 1564
+5729 10 352 1564
+5739 1 353 1564
+FUNC 573a 11 4 _scwprintf_p
+573a 0 359 1564
+573a 10 364 1564
+574a 1 365 1564
+FUNC 574b 16 8 _scwprintf_l
+574b 0 372 1564
+574b 15 376 1564
+5760 1 377 1564
+FUNC 5761 16 8 _scwprintf_p_l
+5761 0 384 1564
+5761 15 389 1564
+5776 1 390 1564
+FUNC 5777 14f 8 fprintf
+5777 c 49 1648
+5783 5 53 1648
+5788 2e 55 1648
+57b6 c 56 1648
+57c2 3 61 1648
+57c5 7 63 1648
+57cc 3 64 1648
+57cf b0 66 1648
+587f 5 67 1648
+5884 8 69 1648
+588c 11 70 1648
+589d a 71 1648
+58a7 c 75 1648
+58b3 3 79 1648
+58b6 6 80 1648
+58bc a 76 1648
+FUNC 58c6 1a c _fprintf_l
+58c6 0 88 1648
+58c6 19 93 1648
+58df 1 94 1648
+FUNC 58e0 1a c _fprintf_s_l
+58e0 0 102 1648
+58e0 19 107 1648
+58f9 1 108 1648
+FUNC 58fa 18 8 fprintf_s
+58fa 0 115 1648
+58fa 17 120 1648
+5911 1 121 1648
+FUNC 5912 1a c _fprintf_p_l
+5912 0 129 1648
+5912 19 134 1648
+592b 1 135 1648
+FUNC 592c 18 8 _fprintf_p
+592c 0 142 1648
+592c 17 147 1648
+5943 1 148 1648
+FUNC 5944 f6 18 _vswprintf_helper
+5944 7 125 1380
+594b 28 130 1380
+5973 2f 133 1380
+59a2 15 143 1380
+59b7 7 146 1380
+59be 2 148 1380
+59c0 6 150 1380
+59c6 13 157 1380
+59d9 5 160 1380
+59de 2 162 1380
+59e0 41 171 1380
+5a21 5 172 1380
+5a26 12 175 1380
+5a38 2 183 1380
+FUNC 5a3a 27 10 _vswprintf_c
+5a3a 0 241 1380
+5a3a 1f 242 1380
+5a59 7 243 1380
+5a60 1 244 1380
+FUNC 5a61 28 14 _vswprintf_c_l
+5a61 3 253 1380
+5a64 1c 254 1380
+5a80 7 255 1380
+5a87 2 256 1380
+FUNC 5a89 87 14 _vswprintf_s_l
+5a89 4 265 1380
+5a8d 25 269 1380
+5ab2 19 270 1380
+5acb 1a 272 1380
+5ae5 4 273 1380
+5ae9 3 275 1380
+5aec 5 278 1380
+5af1 1d 280 1380
+5b0e 2 288 1380
+FUNC 5b10 1b 10 vswprintf_s
+5b10 0 296 1380
+5b10 1a 297 1380
+5b2a 1 298 1380
+FUNC 5b2b 107 18 _vsnwprintf_s_l
+5b2b 5 308 1380
+5b30 27 313 1380
+5b57 13 314 1380
+5b6a 7 317 1380
+5b71 1b 319 1380
+5b8c 8 323 1380
+5b94 20 324 1380
+5bb4 5 325 1380
+5bb9 a 329 1380
+5bc3 7 331 1380
+5bca 2 333 1380
+5bcc 2 338 1380
+5bce 12 339 1380
+5be0 10 342 1380
+5bf0 a 344 1380
+5bfa a 346 1380
+5c04 2 348 1380
+5c06 4 352 1380
+5c0a 8 356 1380
+5c12 18 358 1380
+5c2a 6 360 1380
+5c30 2 366 1380
+FUNC 5c32 1e 14 _vsnwprintf_s
+5c32 3 375 1380
+5c35 19 376 1380
+5c4e 2 377 1380
+FUNC 5c50 27 10 _vswprintf_p
+5c50 0 385 1380
+5c50 1f 386 1380
+5c6f 7 387 1380
+5c76 1 388 1380
+FUNC 5c77 28 14 _vswprintf_p_l
+5c77 3 397 1380
+5c7a 1c 398 1380
+5c96 7 399 1380
+5c9d 2 400 1380
+FUNC 5c9f 24 4 _amsg_exit
+5c9f 0 446 2560
+5c9f 5 449 2560
+5ca4 9 450 2560
+5cad b 451 2560
+5cb8 a 452 2560
+5cc2 1 453 2560
+FUNC 5cc3 26 4 __crtCorExitProcess
+5cc3 0 650 2560
+5cc3 b 654 2560
+5cce 4 655 2560
+5cd2 c 656 2560
+5cde 4 657 2560
+5ce2 6 658 2560
+5ce8 1 668 2560
+FUNC 5ce9 15 4 __crtExitProcess
+5ce9 0 673 2560
+5ce9 a 674 2560
+5cf3 b 683 2560
+FUNC 5cfe 9 0 _lockexit
+5cfe 0 733 2560
+5cfe 8 734 2560
+5d06 1 735 2560
+FUNC 5d07 9 0 _unlockexit
+5d07 0 759 2560
+5d07 8 760 2560
+5d0f 1 761 2560
+FUNC 5d10 18 4 _initterm
+5d10 3 841 2560
+5d13 2 855 2560
+5d15 6 853 2560
+5d1b 2 854 2560
+5d1d 3 855 2560
+5d20 7 848 2560
+5d27 1 857 2560
+FUNC 5d28 20 8 _initterm_e
+5d28 1 890 2560
+5d29 c 899 2560
+5d35 6 904 2560
+5d3b 2 905 2560
+5d3d 3 906 2560
+5d40 7 899 2560
+5d47 1 910 2560
+FUNC 5d48 37 4 _get_osplatform
+5d48 0 929 2560
+5d48 27 931 2560
+5d6f 1 939 2560
+5d70 9 934 2560
+5d79 2 936 2560
+5d7b 3 938 2560
+5d7e 1 939 2560
+FUNC 5d7f 3c 4 _get_osver
+5d7f 0 958 2560
+5d7f 27 960 2560
+5da6 1 968 2560
+5da7 8 963 2560
+5daf 8 965 2560
+5db7 3 967 2560
+5dba 1 968 2560
+FUNC 5dbb 3c 4 _get_winver
+5dbb 0 987 2560
+5dbb 27 989 2560
+5de2 1 997 2560
+5de3 8 992 2560
+5deb 8 994 2560
+5df3 3 996 2560
+5df6 1 997 2560
+FUNC 5df7 3c 4 _get_winmajor
+5df7 0 1016 2560
+5df7 27 1018 2560
+5e1e 1 1026 2560
+5e1f 8 1021 2560
+5e27 8 1023 2560
+5e2f 3 1025 2560
+5e32 1 1026 2560
+FUNC 5e33 3c 4 _get_winminor
+5e33 0 1045 2560
+5e33 27 1047 2560
+5e5a 1 1055 2560
+5e5b 8 1050 2560
+5e63 8 1052 2560
+5e6b 3 1054 2560
+5e6e 1 1055 2560
+FUNC 5e6f 37 4 _get_wpgmptr
+5e6f 0 1074 2560
+5e6f 27 1076 2560
+5e96 1 1085 2560
+5e97 9 1080 2560
+5ea0 2 1082 2560
+5ea2 3 1084 2560
+5ea5 1 1085 2560
+FUNC 5ea6 37 4 _get_pgmptr
+5ea6 0 1104 2560
+5ea6 27 1106 2560
+5ecd 1 1115 2560
+5ece 9 1110 2560
+5ed7 2 1112 2560
+5ed9 3 1114 2560
+5edc 1 1115 2560
+FUNC 5edd 92 4 _cinit
+5edd 0 263 2560
+5edd 18 273 2560
+5ef5 b 275 2560
+5f00 5 277 2560
+5f05 f 283 2560
+5f14 4 284 2560
+5f18 4 285 2560
+5f1c a 288 2560
+5f26 20 293 2560
+5f46 1a 306 2560
+5f60 c 308 2560
+5f6c 2 312 2560
+5f6e 1 313 2560
+FUNC 5f6f e2 c doexit
+5f6f c 499 2560
+5f7b 8 517 2560
+5f83 5 518 2560
+5f88 b 520 2560
+5f93 6 521 2560
+5f99 8 524 2560
+5fa1 5 526 2560
+5fa6 e 542 2560
+5fb4 12 543 2560
+5fc6 5 545 2560
+5fcb b 546 2560
+5fd6 10 551 2560
+5fe6 9 552 2560
+5fef 2 553 2560
+5ff1 10 558 2560
+6001 10 566 2560
+6011 c 584 2560
+601d 6 588 2560
+6023 6 592 2560
+6029 8 594 2560
+6031 8 596 2560
+6039 3 584 2560
+603c 6 585 2560
+6042 9 586 2560
+604b 6 597 2560
+FUNC 6051 11 4 exit
+6051 0 397 2560
+6051 10 398 2560
+6061 1 399 2560
+FUNC 6062 11 4 _exit
+6062 0 405 2560
+6062 10 406 2560
+6072 1 407 2560
+FUNC 6073 f 0 _cexit
+6073 0 412 2560
+6073 e 413 2560
+6081 1 414 2560
+FUNC 6082 f 0 _c_exit
+6082 0 419 2560
+6082 e 420 2560
+6090 1 421 2560
+FUNC 6091 4c 0 _init_pointers
+6091 1 786 2560
+6092 7 787 2560
+6099 6 789 2560
+609f 6 790 2560
+60a5 6 791 2560
+60ab 6 792 2560
+60b1 6 793 2560
+60b7 6 794 2560
+60bd 6 795 2560
+60c3 6 796 2560
+60c9 13 799 2560
+60dc 1 800 2560
+FUNC 60e0 8b 4 strlen
+60e0 0 54 880
+60e0 4 63 880
+60e4 6 64 880
+60ea 2 65 880
+60ec 2 69 880
+60ee 3 70 880
+60f1 2 71 880
+60f3 2 72 880
+60f5 6 73 880
+60fb 2 74 880
+60fd 13 76 880
+6110 2 81 880
+6112 5 82 880
+6117 2 83 880
+6119 3 84 880
+611c 2 85 880
+611e 3 86 880
+6121 5 87 880
+6126 2 88 880
+6128 3 90 880
+612b 2 91 880
+612d 2 92 880
+612f 2 93 880
+6131 2 94 880
+6133 5 95 880
+6138 2 96 880
+613a 5 97 880
+613f 2 98 880
+6141 2 99 880
+6143 3 103 880
+6146 4 104 880
+614a 2 105 880
+614c 1 106 880
+614d 3 108 880
+6150 4 109 880
+6154 2 110 880
+6156 1 111 880
+6157 3 113 880
+615a 4 114 880
+615e 2 115 880
+6160 1 116 880
+6161 3 118 880
+6164 4 119 880
+6168 2 120 880
+616a 1 121 880
+FUNC 616b 33 4 _EH_prolog3
+616b 0 93 5671
+616b 1 101 5671
+616c 7 103 5671
+6173 4 112 5671
+6177 4 113 5671
+617b 1 114 5671
+617c 1 115 5671
+617d 1 116 5671
+617e 2 117 5671
+6180 2 118 5671
+6182 5 131 5671
+6187 2 132 5671
+6189 1 133 5671
+618a 3 134 5671
+618d 7 135 5671
+6194 3 150 5671
+6197 6 151 5671
+619d 1 153 5671
+FUNC 619e 36 4 _EH_prolog3_catch
+619e 0 206 5671
+619e 1 214 5671
+619f 7 216 5671
+61a6 4 225 5671
+61aa 4 226 5671
+61ae 1 228 5671
+61af 1 229 5671
+61b0 1 230 5671
+61b1 2 231 5671
+61b3 2 232 5671
+61b5 5 246 5671
+61ba 2 247 5671
+61bc 1 248 5671
+61bd 3 249 5671
+61c0 3 250 5671
+61c3 7 251 5671
+61ca 3 267 5671
+61cd 6 268 5671
+61d3 1 270 5671
+FUNC 61d4 36 4 _EH_prolog3_GS
+61d4 0 322 5671
+61d4 1 330 5671
+61d5 7 332 5671
+61dc 4 341 5671
+61e0 4 342 5671
+61e4 1 344 5671
+61e5 1 345 5671
+61e6 1 346 5671
+61e7 2 347 5671
+61e9 2 348 5671
+61eb 5 362 5671
+61f0 2 363 5671
+61f2 1 364 5671
+61f3 3 365 5671
+61f6 3 366 5671
+61f9 7 367 5671
+6200 3 384 5671
+6203 6 385 5671
+6209 1 387 5671
+FUNC 620a 39 4 _EH_prolog3_catch_GS
+620a 0 441 5671
+620a 1 449 5671
+620b 7 451 5671
+6212 4 460 5671
+6216 4 461 5671
+621a 1 463 5671
+621b 1 464 5671
+621c 1 465 5671
+621d 2 466 5671
+621f 2 467 5671
+6221 5 482 5671
+6226 2 483 5671
+6228 1 484 5671
+6229 3 485 5671
+622c 3 486 5671
+622f 3 487 5671
+6232 7 488 5671
+6239 3 505 5671
+623c 6 506 5671
+6242 1 508 5671
+FUNC 6243 14 0 _EH_epilog3
+6243 0 534 5671
+6243 3 537 5671
+6246 7 538 5671
+624d 1 539 5671
+624e 1 540 5671
+624f 1 541 5671
+6250 1 542 5671
+6251 1 543 5671
+6252 2 544 5671
+6254 1 545 5671
+6255 1 546 5671
+6256 1 547 5671
+FUNC 6257 f 0 _EH_epilog3_GS
+6257 0 575 5671
+6257 3 578 5671
+625a 2 579 5671
+625c 5 580 5671
+6261 5 581 5671
+FUNC 6266 f 0 _EH_epilog3_catch_GS
+6266 0 609 5671
+6266 3 612 5671
+6269 2 613 5671
+626b 5 614 5671
+6270 5 615 5671
+FUNC 6275 96 4 _stbuf
+6275 1 59 1850
+6276 14 69 1850
+628a 2 70 1850
+628c c 73 1850
+6298 4 74 1850
+629c c 75 1850
+62a8 3 76 1850
+62ab 6 82 1850
+62b1 6 86 1850
+62b7 4 87 1850
+62bb 1e 91 1850
+62d9 3 93 1850
+62dc e 94 1850
+62ea 2 96 1850
+62ec 7 98 1850
+62f3 6 99 1850
+62f9 8 102 1850
+6301 5 104 1850
+6306 1 105 1850
+6307 3 78 1850
+630a 1 105 1850
+FUNC 630b 2f 8 _ftbuf
+630b 0 138 1850
+630b 8 146 1850
+6313 c 148 1850
+631f 6 151 1850
+6325 7 152 1850
+632c 4 153 1850
+6330 9 154 1850
+6339 1 166 1850
+FUNC 633a 82 4 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+633a 0 261 1343
+633a f 262 1343
+6349 8 264 1343
+6351 5 265 1343
+6356 6 266 1343
+635c 1c 268 1343
+6378 21 269 1343
+6399 9 270 1343
+63a2 4 272 1343
+63a6 4 273 1343
+63aa 2 276 1343
+63ac a 278 1343
+63b6 6 280 1343
+FUNC 63bc e 0 _LocaleUpdate::~_LocaleUpdate()
+63bc 0 282 1343
+63bc 6 283 1343
+63c2 7 284 1343
+63c9 1 285 1343
+FUNC 63ca 3 0 _LocaleUpdate::GetLocaleT()
+63ca 2 287 1343
+63cc 1 289 1343
+FUNC 63cd 33 0 write_char
+63cd 0 2433 1312
+63cd a 2434 1312
+63d7 2 2437 1312
+63d9 21 2442 1312
+63fa 2 2444 1312
+63fc 1 2447 1312
+63fd 2 2446 1312
+63ff 1 2447 1312
+FUNC 6400 24 c write_multi_char
+6400 6 2498 1312
+6406 2 2501 1312
+6408 e 2500 1312
+6416 5 2501 1312
+641b 7 2499 1312
+6422 2 2504 1312
+FUNC 6424 4a 4 write_string
+6424 0 2563 1312
+6424 12 2564 1312
+6436 6 2566 1312
+643c 2 2567 1312
+643e e 2570 1312
+644c 5 2571 1312
+6451 a 2573 1312
+645b 9 2574 1312
+6464 9 2569 1312
+646d 1 2579 1312
+FUNC 646e d 4 get_int_arg
+646e 0 2602 1312
+646e c 2603 1312
+647a 1 2604 1312
+FUNC 647b 10 4 get_int64_arg
+647b 0 2644 1312
+647b f 2645 1312
+648a 1 2646 1312
+FUNC 648b e 4 get_short_arg
+648b 0 2671 1312
+648b d 2672 1312
+6498 1 2673 1312
+FUNC 6499 994 10 _output_l
+6499 1b 975 1312
+64b4 45 1036 1312
+64f9 2d 1031 1312
+6526 b1 1033 1312
+65d7 8 1036 1312
+65df 26 1073 1312
+6605 1d 1075 1312
+6622 8 1076 1312
+662a 18 1131 1312
+6642 13 1173 1312
+6655 3 1174 1312
+6658 5 1175 1312
+665d 1f 1179 1312
+667c 4 1193 1312
+6680 5 1194 1312
+6685 4 1181 1312
+6689 5 1182 1312
+668e 4 1184 1312
+6692 5 1185 1312
+6697 7 1190 1312
+669e 5 1191 1312
+66a3 4 1187 1312
+66a7 5 1196 1312
+66ac 5 1200 1312
+66b1 9 1206 1312
+66ba b 1233 1312
+66c5 4 1235 1312
+66c9 3 1236 1312
+66cc 5 1239 1312
+66d1 10 1241 1312
+66e1 5 1243 1312
+66e6 3 1248 1312
+66e9 5 1249 1312
+66ee 5 1253 1312
+66f3 9 1259 1312
+66fc b 1284 1312
+6707 4 1285 1312
+670b 5 1287 1312
+6710 10 1289 1312
+6720 5 1291 1312
+6725 18 1295 1312
+673d 7 1362 1312
+6744 5 1363 1312
+6749 5 1301 1312
+674e 1 1303 1312
+674f a 1304 1312
+6759 5 1306 1312
+675e 4 1308 1312
+6762 5 1310 1312
+6767 4 1358 1312
+676b 5 1359 1312
+6770 c 1322 1312
+677c 2 1324 1312
+677e f 1325 1312
+678d a 1327 1312
+6797 2 1329 1312
+6799 a 1330 1312
+67a3 5 1332 1312
+67a8 30 1337 1312
+67d8 3 1352 1312
+67db 13 1158 1312
+67ee 11 1160 1312
+67ff 3 1161 1312
+6802 b 1163 1312
+680d b 1166 1312
+6818 5 1167 1312
+681d 32 1378 1312
+684f d 1716 1312
+685c 4 1724 1312
+6860 17 1749 1312
+6877 c 1750 1312
+6883 8 1381 1312
+688b 9 1385 1312
+6894 8 1561 1312
+689c 7 1562 1312
+68a3 d 1584 1312
+68b0 3 1589 1312
+68b3 15 1635 1312
+68c8 4 1636 1312
+68cc 8 1637 1312
+68d4 f 1639 1312
+68e3 1d 1378 1312
+6900 12 1448 1312
+6912 16 1467 1312
+6928 4 1470 1312
+692c 7 1471 1312
+6933 2 1472 1312
+6935 6 1499 1312
+693b 7 1500 1312
+6942 6 1503 1312
+6948 5 1506 1312
+694d 5 1523 1312
+6952 e 1541 1312
+6960 6 1546 1312
+6966 d 1548 1312
+6973 7 1549 1312
+697a 5 1550 1312
+697f 3 1551 1312
+6982 5 1553 1312
+6987 8 1543 1312
+698f 7 1544 1312
+6996 5 1557 1312
+699b 34 1378 1312
+69cf d 1908 1312
+69dc 9 1910 1312
+69e5 8 1668 1312
+69ed d 1688 1312
+69fa 6 1702 1312
+6a00 7 1703 1312
+6a07 2 1704 1312
+6a09 5 1706 1312
+6a0e 7 1708 1312
+6a15 5 1710 1312
+6a1a 4 1864 1312
+6a1e 7 1869 1312
+6a25 c 1933 1312
+6a31 8 1939 1312
+6a39 5 1958 1312
+6a3e 7 1751 1312
+6a45 9 1752 1312
+6a4e 5 1753 1312
+6a53 3 1754 1312
+6a56 9 1756 1312
+6a5f f 1759 1312
+6a6e 2 1760 1312
+6a70 13 1765 1312
+6a83 9 1767 1312
+6a8c e 1809 1312
+6a9a 27 1828 1312
+6ac1 13 1838 1312
+6ad4 15 1840 1312
+6ae9 a 1844 1312
+6af3 15 1846 1312
+6b08 5 1852 1312
+6b0d 7 1853 1312
+6b14 4 1854 1312
+6b18 1 1857 1312
+6b19 5 1859 1312
+6b1e 7 1877 1312
+6b25 3 1887 1312
+6b28 2 1888 1312
+6b2a 1a 1378 1312
+6b44 7 1892 1312
+6b4b 11 1897 1312
+6b5c c 1900 1312
+6b68 7 1901 1312
+6b6f 5 1903 1312
+6b74 5 1961 1312
+6b79 6 1987 1312
+6b7f 14 2026 1312
+6b93 2 2045 1312
+6b95 5 2051 1312
+6b9a 2 2071 1312
+6b9c 3 2074 1312
+6b9f 6 2080 1312
+6ba5 2 2099 1312
+6ba7 5 2105 1312
+6bac f 2128 1312
+6bbb 7 2129 1312
+6bc2 7 2130 1312
+6bc9 c 2136 1312
+6bd5 2 2142 1312
+6bd7 6 2148 1312
+6bdd 7 2149 1312
+6be4 2 2150 1312
+6be6 4 2151 1312
+6bea a 2152 1312
+6bf4 3 2153 1312
+6bf7 6 2157 1312
+6bfd 3 2158 1312
+6c00 6 2163 1312
+6c06 10 2165 1312
+6c16 10 2166 1312
+6c26 c 2168 1312
+6c32 3 2170 1312
+6c35 3 2172 1312
+6c38 2 2173 1312
+6c3a 8 2175 1312
+6c42 1 2176 1312
+6c43 19 2180 1312
+6c5c 9 2181 1312
+6c65 1 2182 1312
+6c66 2 2185 1312
+6c68 6 1640 1312
+6c6e 2 1641 1312
+6c70 4 1640 1312
+6c74 5 1642 1312
+6c79 2 1644 1312
+6c7b 4 1645 1312
+6c7f 8 1646 1312
+6c87 5 1647 1312
+6c8c 6 1648 1312
+6c92 1 1649 1312
+6c93 4 1648 1312
+6c97 6 1650 1312
+6c9d a 2201 1312
+6ca7 7 2204 1312
+6cae 6 2205 1312
+6cb4 4 2207 1312
+6cb8 2 2208 1312
+6cba 4 2210 1312
+6cbe 4 2212 1312
+6cc2 2 2213 1312
+6cc4 4 2215 1312
+6cc8 4 2217 1312
+6ccc 7 2218 1312
+6cd3 9 2224 1312
+6cdc 6 2228 1312
+6ce2 11 2230 1312
+6cf3 11 2234 1312
+6d04 d 2236 1312
+6d11 f 2238 1312
+6d20 d 2243 1312
+6d2d 3 2249 1312
+6d30 3 2250 1312
+6d33 1e 2252 1312
+6d51 9 2253 1312
+6d5a 18 2257 1312
+6d72 2 1690 1312
+6d74 4 2254 1312
+6d78 2 2259 1312
+6d7a d 2260 1312
+6d87 c 2290 1312
+6d93 f 2292 1312
+6da2 6 2297 1312
+6da8 8 2298 1312
+6db0 1e 2299 1312
+6dce 17 1163 1312
+6de5 10 2376 1312
+6df5 38 2377 1312
+FUNC 6e2d 3b 4 _get_errno_from_oserr
+6e2d 0 119 6100
+6e2d 6 123 6100
+6e33 f 124 6100
+6e42 8 133 6100
+6e4a 3 134 6100
+6e4d 1 139 6100
+6e4e 7 125 6100
+6e55 1 139 6100
+6e56 11 135 6100
+6e67 1 139 6100
+FUNC 6e68 13 0 _errno
+6e68 0 280 6100
+6e68 5 281 6100
+6e6d 4 282 6100
+6e71 5 283 6100
+6e76 1 288 6100
+6e77 3 285 6100
+6e7a 1 288 6100
+FUNC 6e7b 13 0 __doserrno
+6e7b 0 293 6100
+6e7b 5 294 6100
+6e80 4 295 6100
+6e84 5 296 6100
+6e89 1 300 6100
+6e8a 3 298 6100
+6e8d 1 300 6100
+FUNC 6e8e 1e 4 _dosmaperr
+6e8e 1 110 6100
+6e8f 9 111 6100
+6e98 13 113 6100
+6eab 1 114 6100
+FUNC 6eac 1b 4 _set_errno
+6eac 0 157 6100
+6eac 5 158 6100
+6eb1 4 159 6100
+6eb5 3 161 6100
+6eb8 1 168 6100
+6eb9 b 165 6100
+6ec4 2 166 6100
+6ec6 1 168 6100
+FUNC 6ec7 2a 4 _get_errno
+6ec7 1 187 6100
+6ec8 1b 189 6100
+6ee3 1 195 6100
+6ee4 9 193 6100
+6eed 3 194 6100
+6ef0 1 195 6100
+FUNC 6ef1 1b 4 _set_doserrno
+6ef1 0 213 6100
+6ef1 5 214 6100
+6ef6 4 215 6100
+6efa 3 217 6100
+6efd 1 224 6100
+6efe b 221 6100
+6f09 2 222 6100
+6f0b 1 224 6100
+FUNC 6f0c 2a 4 _get_doserrno
+6f0c 1 243 6100
+6f0d 1b 245 6100
+6f28 1 251 6100
+6f29 9 249 6100
+6f32 3 250 6100
+6f35 1 251 6100
+FUNC 6f38 45 0 _SEH_prolog4
+FUNC 6f7d 14 0 _SEH_epilog4
+FUNC 6fa0 24 0 ValidateLocalCookies
+FUNC 6fd0 196 10 _except_handler4
+FUNC 7166 90 10 vprintf_helper
+7166 c 47 1507
+7172 d 48 1507
+717f 2b 52 1507
+71aa 7 55 1507
+71b1 3 56 1507
+71b4 8 58 1507
+71bc 10 59 1507
+71cc a 60 1507
+71d6 c 63 1507
+71e2 3 67 1507
+71e5 6 68 1507
+71eb 3 63 1507
+71ee 8 64 1507
+FUNC 71f6 1a c _vprintf_l
+71f6 0 75 1507
+71f6 19 76 1507
+720f 1 77 1507
+FUNC 7210 1a c _vprintf_s_l
+7210 0 84 1507
+7210 19 85 1507
+7229 1 86 1507
+FUNC 722a 1a c _vprintf_p_l
+722a 0 93 1507
+722a 19 94 1507
+7243 1 95 1507
+FUNC 7244 18 8 vprintf
+7244 0 101 1507
+7244 17 102 1507
+725b 1 103 1507
+FUNC 725c 18 8 vprintf_s
+725c 0 109 1507
+725c 17 110 1507
+7273 1 111 1507
+FUNC 7274 18 8 _vprintf_p
+7274 0 117 1507
+7274 17 118 1507
+728b 1 119 1507
+FUNC 728c 104 0 __report_gsfailure
+728c 9 140 3731
+7295 5 170 3731
+729a 6 171 3731
+72a0 6 172 3731
+72a6 6 173 3731
+72ac 6 174 3731
+72b2 6 175 3731
+72b8 7 176 3731
+72bf 7 177 3731
+72c6 7 178 3731
+72cd 7 179 3731
+72d4 7 180 3731
+72db 7 181 3731
+72e2 1 182 3731
+72e3 6 183 3731
+72e9 3 190 3731
+72ec 5 191 3731
+72f1 3 192 3731
+72f4 5 193 3731
+72f9 3 194 3731
+72fc 5 195 3731
+7301 6 201 3731
+7307 a 204 3731
+7311 a 206 3731
+731b a 285 3731
+7325 a 286 3731
+732f b 293 3731
+733a b 294 3731
+7345 b 297 3731
+7350 8 298 3731
+7358 8 302 3731
+7360 b 304 3731
+736b 9 313 3731
+7374 8 315 3731
+737c 12 319 3731
+738e 2 320 3731
+FUNC 7390 5c6 c _write_nolock
+7390 22 95 4777
+73b2 2 106 4777
+73b4 11 108 4777
+73c5 7 109 4777
+73cc 2b 111 4777
+73f7 27 113 4777
+741e 10 116 4777
+742e 33 119 4777
+7461 6 122 4777
+7467 f 126 4777
+7476 1c 143 4777
+7492 5 146 4777
+7497 8 147 4777
+749f 14 148 4777
+74b3 16 152 4777
+74c9 6 153 4777
+74cf 4 157 4777
+74d3 16 160 4777
+74e9 9 153 4777
+74f2 b 163 4777
+74fd 9 164 4777
+7506 11 170 4777
+7517 18 171 4777
+752f 2 173 4777
+7531 14 174 4777
+7545 18 175 4777
+755d 4 181 4777
+7561 2e 205 4777
+758f 21 212 4777
+75b0 6 213 4777
+75b6 8 214 4777
+75be a 222 4777
+75c8 29 229 4777
+75f1 a 230 4777
+75fb 3 232 4777
+75fe 3 233 4777
+7601 2 238 4777
+7603 8 186 4777
+760b 3 191 4777
+760e 9 192 4777
+7617 f 193 4777
+7626 8 240 4777
+762e 13 242 4777
+7641 3 244 4777
+7644 6 251 4777
+764a 3 254 4777
+764d 14 255 4777
+7661 3 257 4777
+7664 12 258 4777
+7676 5 236 4777
+767b e 268 4777
+7689 12 277 4777
+769b f 278 4777
+76aa d 279 4777
+76b7 8 283 4777
+76bf 9 284 4777
+76c8 5 285 4777
+76cd 3 286 4777
+76d0 7 287 4777
+76d7 f 289 4777
+76e6 25 297 4777
+770b 6 299 4777
+7711 16 300 4777
+7727 f 308 4777
+7736 f 314 4777
+7745 b 315 4777
+7750 8 319 4777
+7758 c 320 4777
+7764 6 321 4777
+776a 4 322 4777
+776e c 323 4777
+777a f 325 4777
+7789 25 333 4777
+77ae 6 335 4777
+77b4 1a 336 4777
+77ce 5 344 4777
+77d3 f 359 4777
+77e2 13 361 4777
+77f5 8 365 4777
+77fd b 366 4777
+7808 6 367 4777
+780e a 369 4777
+7818 11 371 4777
+7829 2f 382 4777
+7858 4 384 4777
+785c 25 406 4777
+7881 3 407 4777
+7884 6 412 4777
+788a 9 409 4777
+7893 4 419 4777
+7897 15 423 4777
+78ac 2 428 4777
+78ae 1b 434 4777
+78c9 a 437 4777
+78d3 2 439 4777
+78d5 9 440 4777
+78de a 443 4777
+78e8 7 447 4777
+78ef 8 449 4777
+78f7 b 452 4777
+7902 2 455 4777
+7904 9 456 4777
+790d 2 457 4777
+790f 11 459 4777
+7920 4 460 4777
+7924 b 462 4777
+792f 7 463 4777
+7936 5 464 4777
+793b 5 469 4777
+7940 16 470 4777
+FUNC 7956 dc c _write
+7956 c 61 4777
+7962 23 66 4777
+7985 2f 67 4777
+79b4 20 68 4777
+79d4 7 70 4777
+79db 3 72 4777
+79de 9 73 4777
+79e7 14 74 4777
+79fb 2 75 4777
+79fd b 76 4777
+7a08 7 77 4777
+7a0f 4 78 4777
+7a13 c 82 4777
+7a1f 3 86 4777
+7a22 6 87 4777
+7a28 a 83 4777
+FUNC 7a32 2d 4 _fileno
+7a32 0 40 2176
+7a32 27 41 2176
+7a59 1 43 2176
+7a5a 4 42 2176
+7a5e 1 43 2176
+FUNC 7a5f e1 4 _commit
+7a5f c 39 5043
+7a6b 1b 43 5043
+7a86 28 44 5043
+7aae 20 45 5043
+7ace 7 47 5043
+7ad5 3 48 5043
+7ad8 9 49 5043
+7ae1 14 51 5043
+7af5 9 52 5043
+7afe 2 54 5043
+7b00 3 55 5043
+7b03 5 59 5043
+7b08 a 62 5043
+7b12 b 66 5043
+7b1d 4 67 5043
+7b21 c 72 5043
+7b2d 3 75 5043
+7b30 6 76 5043
+7b36 a 73 5043
+FUNC 7b40 49 0 _mtinitlocks
+7b40 2 137 2371
+7b42 7 144 2371
+7b49 11 145 2371
+7b5a 2 146 2371
+7b5c 15 148 2371
+7b71 6 144 2371
+7b77 5 157 2371
+7b7c d 158 2371
+FUNC 7b89 55 0 _mtdeletelocks
+7b89 1 188 2371
+7b8a d 194 2371
+7b97 c 196 2371
+7ba3 3 200 2371
+7ba6 6 206 2371
+7bac f 207 2371
+7bbb 6 215 2371
+7bc1 c 217 2371
+7bcd 10 221 2371
+7bdd 1 224 2371
+FUNC 7bde 15 4 _unlock
+7bde 3 371 2371
+7be1 10 375 2371
+7bf1 2 376 2371
+FUNC 7bf3 18 4 _lockerr_exit
+7bf3 0 403 2371
+7bf3 c 404 2371
+7bff b 405 2371
+7c0a 1 406 2371
+FUNC 7c0b c3 4 _mtinitlocknum
+7c0b c 259 2371
+7c17 6 261 2371
+7c1d a 269 2371
+7c27 5 270 2371
+7c2c 7 271 2371
+7c33 c 272 2371
+7c3f e 276 2371
+7c4d 4 277 2371
+7c51 e 279 2371
+7c5f b 280 2371
+7c6a 4 281 2371
+7c6e 8 284 2371
+7c76 3 285 2371
+7c79 4 287 2371
+7c7d 11 288 2371
+7c8e 7 289 2371
+7c95 b 290 2371
+7ca0 3 291 2371
+7ca3 2 292 2371
+7ca5 2 293 2371
+7ca7 2 296 2371
+7ca9 7 297 2371
+7cb0 c 300 2371
+7cbc 3 304 2371
+7cbf 6 305 2371
+7cc5 9 301 2371
+FUNC 7cce 31 4 _lock
+7cce 3 333 2371
+7cd1 10 338 2371
+7ce1 b 340 2371
+7cec 8 341 2371
+7cf4 9 348 2371
+7cfd 2 349 2371
+FUNC 7cff 240 0 _ioinit
+7cff c 111 4958
+7d0b 5 122 4958
+7d10 a 127 4958
+7d1a 7 128 4958
+7d21 f 137 4958
+7d30 6 139 4958
+7d36 5 142 4958
+7d3b 6 143 4958
+7d41 8 145 4958
+7d49 4 146 4958
+7d4d 3 147 4958
+7d50 4 148 4958
+7d54 3 149 4958
+7d57 4 151 4958
+7d5b 4 152 4958
+7d5f 4 153 4958
+7d63 13 145 4958
+7d76 15 161 4958
+7d8b 2 166 4958
+7d8d 3 172 4958
+7d90 6 173 4958
+7d96 b 179 4958
+7da1 5 185 4958
+7da6 f 191 4958
+7db5 9 204 4958
+7dbe 7 205 4958
+7dc5 8 207 4958
+7dcd 4 208 4958
+7dd1 3 209 4958
+7dd4 4 210 4958
+7dd8 4 211 4958
+7ddc 4 212 4958
+7de0 4 213 4958
+7de4 4 214 4958
+7de8 f 207 4958
+7df7 9 185 4958
+7e00 2 284 4958
+7e02 6 197 4958
+7e08 8 221 4958
+7e10 24 234 4958
+7e34 15 236 4958
+7e49 7 237 4958
+7e50 5 238 4958
+7e55 18 241 4958
+7e6d 3 243 4958
+7e70 d 221 4958
+7e7d 2 253 4958
+7e7f b 255 4958
+7e8a c 258 4958
+7e96 6 306 4958
+7e9c 4 262 4958
+7ea0 30 266 4958
+7ed0 2 271 4958
+7ed2 a 277 4958
+7edc 6 278 4958
+7ee2 5 279 4958
+7ee7 4 280 4958
+7eeb 14 284 4958
+7eff 3 286 4958
+7f02 2 288 4958
+7f04 4 297 4958
+7f08 6 298 4958
+7f0e a 253 4958
+7f18 c 313 4958
+7f24 4 315 4958
+7f28 7 128 4958
+7f2f a 129 4958
+7f39 6 316 4958
+FUNC 7f3f 4c 0 _ioterm
+7f3f 2 341 4958
+7f41 5 345 4958
+7f46 6 347 4958
+7f4c 8 353 4958
+7f54 9 355 4958
+7f5d 11 356 4958
+7f6e 4 353 4958
+7f72 7 361 4958
+7f79 11 362 4958
+7f8a 1 365 4958
+FUNC 7f8b 21 4 wait_a_bit
+7f8b 1 18 5557
+7f8c b 19 5557
+7f97 6 20 5557
+7f9d 8 21 5557
+7fa5 3 22 5557
+7fa8 3 23 5557
+7fab 1 24 5557
+FUNC 7fac 10 4 _set_malloc_crt_max_wait
+7fac 0 32 5557
+7fac f 34 5557
+7fbb 1 36 5557
+FUNC 7fbc 40 4 _malloc_crt
+7fbc 2 39 5557
+7fbe 2 40 5557
+7fc0 b 44 5557
+7fcb d 45 5557
+7fd8 18 46 5557
+7ff0 7 47 5557
+7ff7 4 50 5557
+7ffb 1 51 5557
+FUNC 7ffc 48 8 _calloc_crt
+7ffc 2 54 5557
+7ffe 2 55 5557
+8000 14 61 5557
+8014 c 62 5557
+8020 18 63 5557
+8038 7 64 5557
+803f 4 67 5557
+8043 1 68 5557
+FUNC 8044 4b 8 _realloc_crt
+8044 2 71 5557
+8046 2 72 5557
+8048 f 76 5557
+8057 14 77 5557
+806b 18 78 5557
+8083 7 79 5557
+808a 4 82 5557
+808e 1 83 5557
+FUNC 808f 50 c _recalloc_crt
+808f 2 86 5557
+8091 2 87 5557
+8093 16 91 5557
+80a9 12 92 5557
+80bb 18 94 5557
+80d3 7 95 5557
+80da 4 100 5557
+80de 1 101 5557
+FUNC 80df 8 0 _malloc_crt_fastcall
+80df 0 105 5557
+80df 7 106 5557
+80e6 1 107 5557
+FUNC 80e7 a 0 _calloc_crt_fastcall
+80e7 0 110 5557
+80e7 9 111 5557
+80f0 1 112 5557
+FUNC 80f1 a 0 _realloc_crt_fastcall
+80f1 0 115 5557
+80f1 9 116 5557
+80fa 1 117 5557
+FUNC 80fb 8e 4 free
+80fb c 42 5515
+8107 7 47 5515
+810e 9 53 5515
+8117 8 57 5515
+811f 4 58 5515
+8123 e 60 5515
+8131 9 61 5515
+813a c 64 5515
+8146 6 68 5515
+814c 3 70 5515
+814f 2 106 5515
+8151 9 65 5515
+815a f 109 5515
+8169 4 110 5515
+816d 16 112 5515
+8183 6 115 5515
+FUNC 8189 9f 0 _fcloseall
+8189 c 43 1792
+8195 5 44 1792
+819a 8 47 1792
+81a2 3 48 1792
+81a5 e 50 1792
+81b3 10 52 1792
+81c3 14 57 1792
+81d7 3 58 1792
+81da 5 63 1792
+81df 12 65 1792
+81f1 e 66 1792
+81ff 8 67 1792
+8207 3 50 1792
+820a c 73 1792
+8216 3 77 1792
+8219 6 78 1792
+821f 9 74 1792
+FUNC 8228 19 4 std::bad_exception::bad_exception(char const *)
+8228 13 351 6035
+823b 6 352 6035
+FUNC 8241 b 0 std::bad_exception::~bad_exception()
+8241 6 355 6035
+8247 5 356 6035
+FUNC 824c 22 0 std::bad_exception::`vector deleting destructor'(unsigned int)
+FUNC 826e 5c c __TypeMatch
+826e 2 999 6034
+8270 13 1001 6034
+8283 1b 1008 6034
+829e 4 1009 6034
+82a2 22 1023 6034
+82c4 5 1002 6034
+82c9 1 1024 6034
+FUNC 82ca 44 4 __FrameUnwindFilter
+82ca 0 1035 6034
+82ca 6 1038 6034
+82d0 e 1040 6034
+82de 13 1076 6034
+82f1 e 1068 6034
+82ff c 1070 6034
+830b 2 1072 6034
+830d 1 1078 6034
+FUNC 830e e1 10 __FrameUnwindToState
+830e c 1105 6034
+831a 1b 1112 6034
+8335 c 1114 6034
+8341 4 1115 6034
+8345 5 1119 6034
+834a f 1123 6034
+8359 f 1126 6034
+8368 7 1128 6034
+836f 6 1131 6034
+8375 3 1138 6034
+8378 12 1145 6034
+838a 6 1149 6034
+8390 d 1151 6034
+839d d 1153 6034
+83aa 3 1155 6034
+83ad 2 1156 6034
+83af c 1157 6034
+83bb a 1169 6034
+83c5 3 1176 6034
+83c8 6 1180 6034
+83ce 6 1157 6034
+83d4 e 1158 6034
+83e2 d 1159 6034
+FUNC 83ef 45 0 ExFilterRethrow
+83ef 0 1533 6034
+83ef 2 1535 6034
+83f1 2f 1538 6034
+8420 e 1542 6034
+842e 2 1543 6034
+8430 1 1547 6034
+8431 2 1545 6034
+8433 1 1547 6034
+FUNC 8434 54 8 __DestructExceptionObject
+8434 c 1791 6034
+8440 f 1794 6034
+844f e 1801 6034
+845d 4 1803 6034
+8461 9 1810 6034
+846a 7 1814 6034
+8471 6 1824 6034
+8477 c 1815 6034
+8483 5 1819 6034
+FUNC 8488 25 8 __AdjustPointer
+8488 0 1842 6034
+8488 d 1843 6034
+8495 6 1845 6034
+849b 3 1850 6034
+849e e 1852 6034
+84ac 1 1856 6034
+FUNC 84ad 13 0 __uncaught_exception()
+84ad 0 1867 6034
+84ad 12 1868 6034
+84bf 1 1869 6034
+FUNC 84c0 b3 8 __CxxRegisterExceptionObject
+84c0 0 2077 6034
+84c0 14 2085 6034
+84d4 26 2087 6034
+84fa 6 2088 6034
+8500 b 2090 6034
+850b b 2093 6034
+8516 e 2094 6034
+8524 e 2095 6034
+8532 b 2096 6034
+853d 2 2097 6034
+853f 4 2098 6034
+8543 4 2099 6034
+8547 c 2101 6034
+8553 10 2102 6034
+8563 c 2103 6034
+856f 3 2104 6034
+8572 1 2105 6034
+FUNC 8573 4c 4 __CxxDetectRethrow
+8573 0 2117 6034
+8573 6 2119 6034
+8579 2 2120 6034
+857b 2 2121 6034
+857d 2f 2122 6034
+85ac c 2123 6034
+85b8 3 2124 6034
+85bb 1 2127 6034
+85bc 2 2126 6034
+85be 1 2127 6034
+FUNC 85bf 139 8 __CxxUnregisterExceptionObject
+85bf 1 2139 6034
+85c0 4 2143 6034
+85c4 d 2145 6034
+85d1 6 2146 6034
+85d7 85 2149 6034
+865c 14 2150 6034
+8670 5b 2152 6034
+86cb c 2153 6034
+86d7 e 2154 6034
+86e5 12 2155 6034
+86f7 1 2157 6034
+FUNC 86f8 4 0 __CxxQueryExceptionSize
+86f8 0 2167 6034
+86f8 3 2168 6034
+86fb 1 2169 6034
+FUNC 86fc 32 8 __CxxCallUnwindDtor
+86fc c 2189 6034
+8708 4 2190 6034
+870c 6 2192 6034
+8712 2 2193 6034
+8714 d 2194 6034
+8721 7 2197 6034
+8728 6 2198 6034
+FUNC 872e 33 8 __CxxCallUnwindDelDtor
+872e c 2218 6034
+873a 4 2219 6034
+873e 7 2221 6034
+8745 2 2222 6034
+8747 d 2223 6034
+8754 7 2226 6034
+875b 6 2227 6034
+FUNC 8761 32 8 __CxxCallUnwindStdDelDtor
+8761 c 2247 6034
+876d 4 2248 6034
+8771 6 2250 6034
+8777 2 2251 6034
+8779 d 2252 6034
+8786 7 2255 6034
+878d 6 2256 6034
+FUNC 8793 3b 14 __CxxCallUnwindVecDtor
+8793 c 2282 6034
+879f 4 2283 6034
+87a3 f 2285 6034
+87b2 2 2286 6034
+87b4 d 2287 6034
+87c1 7 2290 6034
+87c8 6 2291 6034
+FUNC 87ce 79 4 IsInExceptionSpec
+87ce 6 2302 6034
+87d4 9 2303 6034
+87dd 5 2307 6034
+87e2 f 2323 6034
+87f1 9 2326 6034
+87fa 2 2327 6034
+87fc 10 2328 6034
+880c 26 2335 6034
+8832 4 2337 6034
+8836 c 2323 6034
+8842 3 2343 6034
+8845 2 2344 6034
+FUNC 8847 49 4 CallUnexpected
+8847 c 2379 6034
+8853 13 2380 6034
+8866 4 2383 6034
+886a 5 2384 6034
+886f 4 2391 6034
+8873 5 2392 6034
+8878 8 2388 6034
+8880 10 2390 6034
+FUNC 8890 30 0 Is_bad_exception_allowed
+8890 2 2399 6034
+8892 8 2400 6034
+889a 1d 2402 6034
+88b7 4 2408 6034
+88bb 1 2409 6034
+88bc 4 2404 6034
+FUNC 88c0 82 8 _is_exception_typeof(type_info const &,_EXCEPTION_POINTERS *)
+88c0 1 2416 6034
+88c1 e 2417 6034
+88cf 2 2419 6034
+88d1 9 2422 6034
+88da 2b 2423 6034
+8905 6 2432 6034
+890b 7 2433 6034
+8912 2 2445 6034
+8914 20 2446 6034
+8934 4 2439 6034
+8938 4 2454 6034
+893c 6 2455 6034
+FUNC 8942 19c 18 CallCatchBlock
+8942 14 1431 6034
+8956 3 1437 6034
+8959 4 1439 6034
+895d 6 1443 6034
+8963 11 1447 6034
+8974 e 1451 6034
+8982 e 1452 6034
+8990 b 1454 6034
+899b e 1455 6034
+89a9 a 1457 6034
+89b3 3 1458 6034
+89b6 16 1463 6034
+89cc 12 1464 6034
+89de c 1465 6034
+89ea 3 1470 6034
+89ed 15 1471 6034
+8a02 3 1472 6034
+8a05 c 1474 6034
+8a11 11 1476 6034
+8a22 7 1478 6034
+8a29 d 1482 6034
+8a36 b 1486 6034
+8a41 13 1488 6034
+8a54 3 1517 6034
+8a57 6 1518 6034
+8a5d 5 1474 6034
+8a62 6 1488 6034
+8a68 6 1494 6034
+8a6e 9 1497 6034
+8a77 e 1500 6034
+8a85 e 1501 6034
+8a93 3f 1510 6034
+8ad2 c 1511 6034
+FUNC 8ade 17f 10 __BuildCatchObjectHelper
+8ade c 1575 6034
+8aea 5 1576 6034
+8aef 2a 1582 6034
+8b19 2 1588 6034
+8b1b 3 1590 6034
+8b1e 2 1588 6034
+8b20 2 1592 6034
+8b22 4 1611 6034
+8b26 3 1614 6034
+8b29 4 1622 6034
+8b2d 4 1615 6034
+8b31 26 1622 6034
+8b57 5 1623 6034
+8b5c 11 1625 6034
+8b6d 5 1628 6034
+8b72 3 1629 6034
+8b75 6 1636 6034
+8b7b 4 1629 6034
+8b7f 20 1636 6034
+8b9f 12 1637 6034
+8bb1 10 1639 6034
+8bc1 4 1641 6034
+8bc5 2 1646 6034
+8bc7 5 1649 6034
+8bcc 18 1654 6034
+8be4 1e 1656 6034
+8c02 2 1660 6034
+8c04 25 1668 6034
+8c29 d 1672 6034
+8c36 2 1677 6034
+8c38 5 1678 6034
+8c3d 7 1681 6034
+8c44 5 1688 6034
+8c49 7 1682 6034
+8c50 5 1684 6034
+8c55 2 1584 6034
+8c57 6 1689 6034
+FUNC 8c5d 91 10 __BuildCatchObject
+8c5d c 1712 6034
+8c69 b 1716 6034
+8c74 3 1718 6034
+8c77 2 1720 6034
+8c79 a 1739 6034
+8c83 4 1743 6034
+8c87 1a 1744 6034
+8ca1 1a 1756 6034
+8cbb 2 1757 6034
+8cbd 18 1750 6034
+8cd5 7 1762 6034
+8cdc 6 1769 6034
+8ce2 7 1763 6034
+8ce9 5 1765 6034
+FUNC 8cee 143 10 __CxxExceptionFilter
+8cee 3 1973 6034
+8cf1 a 1985 6034
+8cfb 3 2065 6034
+8cfe 2a 1993 6034
+8d28 32 2008 6034
+8d5a 6 2010 6034
+8d60 c 2011 6034
+8d6c 6 2012 6034
+8d72 b 2013 6034
+8d7d f 2040 6034
+8d8c a 2041 6034
+8d96 2 2047 6034
+8d98 1b 2050 6034
+8db3 4 2042 6034
+8db7 2 2050 6034
+8db9 c 2052 6034
+8dc5 6 2053 6034
+8dcb 13 2054 6034
+8dde 2 2055 6034
+8de0 25 1995 6034
+8e05 6 1997 6034
+8e0b e 1999 6034
+8e19 4 2000 6034
+8e1d c 2004 6034
+8e29 6 2005 6034
+8e2f 2 2065 6034
+FUNC 8e31 6c 20 CatchIt
+8e31 3 1217 6034
+8e34 6 1233 6034
+8e3a 10 1234 6034
+8e4a 4 1253 6034
+8e4e 6 1254 6034
+8e54 2 1255 6034
+8e56 8 1256 6034
+8e5e e 1259 6034
+8e6c 3 1265 6034
+8e6f 21 1273 6034
+8e90 4 1278 6034
+8e94 7 1280 6034
+8e9b 2 1286 6034
+FUNC 8e9d f2 20 FindHandlerForForeignException
+8e9d 6 913 6034
+8ea3 10 920 6034
+8eb3 2a 926 6034
+8edd 23 934 6034
+8f00 e 940 6034
+8f0e 17 945 6034
+8f25 c 948 6034
+8f31 29 954 6034
+8f5a 33 974 6034
+8f8d 2 984 6034
+FUNC 8f8f 356 20 FindHandler
+8f8f 6 569 6034
+8f95 20 632 6034
+8fb5 11 634 6034
+8fc6 42 637 6034
+9008 12 639 6034
+901a e 645 6034
+9028 b 646 6034
+9033 16 652 6034
+9049 2a 653 6034
+9073 12 659 6034
+9085 b 661 6034
+9090 5 662 6034
+9095 15 666 6034
+90aa 23 676 6034
+90cd 5 692 6034
+90d2 c 686 6034
+90de 30 688 6034
+910e 2b 698 6034
+9139 d 707 6034
+9146 19 715 6034
+915f c 718 6034
+916b 10 729 6034
+917b 6 735 6034
+9181 3 736 6034
+9184 7 737 6034
+918b 9 740 6034
+9194 2 741 6034
+9196 7 742 6034
+919d 23 750 6034
+91c0 d 737 6034
+91cd 2 676 6034
+91cf 33 774 6034
+9202 3 718 6034
+9205 6 795 6034
+920b a 804 6034
+9215 27 812 6034
+923c f 814 6034
+924b 5 840 6034
+9250 5 841 6034
+9255 b 843 6034
+9260 5 844 6034
+9265 d 846 6034
+9272 6 847 6034
+9278 2 848 6034
+927a 8 849 6034
+9282 14 851 6034
+9296 b 853 6034
+92a1 6 863 6034
+92a7 a 864 6034
+92b1 1c 866 6034
+92cd 16 877 6034
+92e3 2 880 6034
+FUNC 92e5 18 4 std::bad_exception::bad_exception(std::bad_exception const &)
+FUNC 92fd e4 20 __InternalCxxFrameHandler
+92fd 6 412 6034
+9303 3d 426 6034
+9340 6 432 6034
+9346 6 435 6034
+934c 10 440 6034
+935c 11 479 6034
+936d 2 482 6034
+936f 18 489 6034
+9387 19 499 6034
+93a0 1d 513 6034
+93bd 1c 524 6034
+93d9 6 533 6034
+93df 2 535 6034
+FUNC 93e1 6c 0 _use_encode_pointer
+93e1 7 66 2227
+93e8 2 72 2227
+93ea 12 75 2227
+93fc 7 76 2227
+9403 5 78 2227
+9408 7 82 2227
+940f 5 85 2227
+9414 e 91 2227
+9422 1f 93 2227
+9441 4 95 2227
+9445 6 100 2227
+944b 2 101 2227
+FUNC 944d 6e 4 _encode_pointer
+944d 1 120 2227
+944e 2b 129 2227
+9479 8 145 2227
+9481 d 133 2227
+948e d 135 2227
+949b c 138 2227
+94a7 4 148 2227
+94ab a 150 2227
+94b5 5 153 2227
+94ba 1 154 2227
+FUNC 94bb 9 0 _encoded_null
+94bb 0 173 2227
+94bb 8 174 2227
+94c3 1 175 2227
+FUNC 94c4 6e 4 _decode_pointer
+94c4 1 194 2227
+94c5 2b 203 2227
+94f0 8 219 2227
+94f8 d 207 2227
+9505 d 209 2227
+9512 c 212 2227
+951e 4 222 2227
+9522 a 224 2227
+952c 5 227 2227
+9531 1 228 2227
+FUNC 9532 9 4 __crtTlsAlloc
+9532 0 240 2227
+9532 6 241 2227
+9538 3 242 2227
+FUNC 953b 15 4 __fls_getvalue
+953b 0 258 2227
+953b 12 259 2227
+954d 3 260 2227
+FUNC 9550 6 0 __get_flsindex
+9550 0 272 2227
+9550 5 273 2227
+9555 1 274 2227
+FUNC 9556 32 0 __set_flsgetvalue
+9556 1 286 2227
+9557 e 288 2227
+9565 4 289 2227
+9569 e 291 2227
+9577 d 292 2227
+9584 3 294 2227
+9587 1 298 2227
+FUNC 9588 19 8 __fls_setvalue
+9588 0 315 2227
+9588 16 316 2227
+959e 3 317 2227
+FUNC 95a1 3d 0 _mtterm
+95a1 0 473 2227
+95a1 a 480 2227
+95ab f 481 2227
+95ba 7 482 2227
+95c1 a 485 2227
+95cb 7 486 2227
+95d2 7 487 2227
+95d9 5 494 2227
+FUNC 95de bf 8 _initptd
+95de c 521 2227
+95ea e 522 2227
+95f8 a 524 2227
+9602 6 525 2227
+9608 4 527 2227
+960c 9 529 2227
+9615 16 532 2227
+962b 10 533 2227
+963b 3 540 2227
+963e 7 544 2227
+9645 7 545 2227
+964c 8 546 2227
+9654 7 547 2227
+965b 8 551 2227
+9663 4 552 2227
+9667 6 553 2227
+966d 4 561 2227
+9671 8 562 2227
+9679 9 563 2227
+9682 c 565 2227
+968e 6 568 2227
+9694 9 566 2227
+FUNC 969d 77 0 _getptd_noexit
+969d 2 588 2227
+969f 6 592 2227
+96a5 15 600 2227
+96ba 14 608 2227
+96ce 19 610 2227
+96e7 a 616 2227
+96f1 6 618 2227
+96f7 6 619 2227
+96fd 2 621 2227
+96ff 7 627 2227
+9706 2 628 2227
+9708 8 633 2227
+9710 3 635 2227
+9713 1 636 2227
+FUNC 9714 18 0 _getptd
+9714 1 657 2227
+9715 7 658 2227
+971c 4 659 2227
+9720 8 660 2227
+9728 3 662 2227
+972b 1 663 2227
+FUNC 972c 121 4 _freefls
+972c c 691 2227
+9738 b 702 2227
+9743 7 703 2227
+974a 7 704 2227
+9751 7 706 2227
+9758 7 707 2227
+975f 7 709 2227
+9766 7 710 2227
+976d 7 712 2227
+9774 7 713 2227
+977b 7 715 2227
+9782 7 716 2227
+9789 7 718 2227
+9790 7 719 2227
+9797 a 721 2227
+97a1 7 722 2227
+97a8 8 724 2227
+97b0 4 725 2227
+97b4 1a 728 2227
+97ce 7 729 2227
+97d5 c 731 2227
+97e1 8 735 2227
+97e9 7 737 2227
+97f0 7 738 2227
+97f7 7 740 2227
+97fe 15 743 2227
+9813 7 744 2227
+981a c 747 2227
+9826 7 751 2227
+982d 8 754 2227
+9835 3 731 2227
+9838 9 732 2227
+9841 3 747 2227
+9844 9 748 2227
+FUNC 984d 69 4 _freeptd
+984d 0 778 2227
+984d a 783 2227
+9857 1b 795 2227
+9872 13 796 2227
+9885 16 802 2227
+989b 7 804 2227
+98a2 a 807 2227
+98ac 9 811 2227
+98b5 1 813 2227
+FUNC 98b6 6 0 __threadid
+98b6 0 837 2227
+98b6 6 838 2227
+FUNC 98bc 6 0 __threadhandle
+98bc 0 844 2227
+98bc 6 845 2227
+FUNC 98c2 184 0 _mtinit
+98c2 1 346 2227
+98c3 d 355 2227
+98d0 4 356 2227
+98d4 5 357 2227
+98d9 3 358 2227
+98dc 2 444 2227
+98de e 362 2227
+98ec d 365 2227
+98f9 d 368 2227
+9906 d 371 2227
+9913 2a 372 2227
+993d a 375 2227
+9947 1a 379 2227
+9961 25 388 2227
+9986 5 393 2227
+998b b 400 2227
+9996 10 401 2227
+99a6 10 402 2227
+99b6 18 403 2227
+99ce 7 410 2227
+99d5 2 412 2227
+99d7 1b 418 2227
+99f2 2 420 2227
+99f4 2d 428 2227
+9a21 a 438 2227
+9a2b 6 440 2227
+9a31 6 441 2227
+9a37 5 443 2227
+9a3c 5 430 2227
+9a41 4 389 2227
+9a45 1 444 2227
+FUNC 9a46 39 0 terminate()
+9a46 c 94 5983
+9a52 8 107 5983
+9a5a 4 111 5983
+9a5e 4 116 5983
+9a62 2 120 5983
+9a64 2 121 5983
+9a66 7 122 5983
+9a6d 7 127 5983
+9a74 5 135 5983
+9a79 6 136 5983
+FUNC 9a7f 13 0 unexpected()
+9a7f 0 149 5983
+9a7f 8 159 5983
+9a87 4 163 5983
+9a8b 2 167 5983
+9a8d 5 173 5983
+FUNC 9a92 37 0 _inconsistency()
+9a92 c 187 5983
+9a9e c 196 5983
+9aaa 4 197 5983
+9aae 4 202 5983
+9ab2 2 203 5983
+9ab4 2 204 5983
+9ab6 7 205 5983
+9abd 7 211 5983
+9ac4 5 217 5983
+FUNC 9ac9 11 4 _initp_eh_hooks
+9ac9 0 74 5983
+9ac9 10 80 5983
+9ad9 1 81 5983
+FUNC 9ae0 4c c _CallSettingFrame
+9ae0 3 48 5665
+9ae3 3 57 5665
+9ae6 1 58 5665
+9ae7 1 59 5665
+9ae8 3 60 5665
+9aeb 3 61 5665
+9aee 3 62 5665
+9af1 3 63 5665
+9af4 1 64 5665
+9af5 3 65 5665
+9af8 3 66 5665
+9afb 3 67 5665
+9afe 5 68 5665
+9b03 1 69 5665
+9b04 1 70 5665
+9b05 2 71 5665
+9b07 1 73 5665
+9b08 1 74 5665
+9b09 2 75 5665
+9b0b 1 76 5665
+9b0c 3 77 5665
+9b0f 1 78 5665
+9b10 2 79 5665
+9b12 6 80 5665
+9b18 2 81 5665
+9b1a 5 82 5665
+9b1f 1 84 5665
+9b20 5 85 5665
+9b25 1 86 5665
+9b26 1 87 5665
+9b27 1 88 5665
+9b28 4 89 5665
+PUBLIC 9b07 0 _NLG_Return
+FUNC 9b2c b9 4 _onexit_nolock
+9b2c 5 104 3259
+9b31 b 107 3259
+9b3c 13 108 3259
+9b4f 16 112 3259
+9b65 d 122 3259
+9b72 d 127 3259
+9b7f 14 129 3259
+9b93 3 134 3259
+9b96 14 136 3259
+9baa 3 147 3259
+9bad f 149 3259
+9bbc e 156 3259
+9bca c 157 3259
+9bd6 7 159 3259
+9bdd 6 114 3259
+9be3 2 160 3259
+FUNC 9be5 2f 0 __onexitinit
+9be5 1 205 3259
+9be6 b 208 3259
+9bf1 9 209 3259
+9bfa e 211 3259
+9c08 4 216 3259
+9c0c 1 221 3259
+9c0d 3 218 3259
+9c10 3 220 3259
+9c13 1 221 3259
+FUNC 9c14 3c 4 _onexit
+9c14 c 85 3259
+9c20 5 88 3259
+9c25 4 90 3259
+9c29 c 91 3259
+9c35 c 93 3259
+9c41 3 97 3259
+9c44 6 98 3259
+9c4a 6 94 3259
+FUNC 9c50 12 4 atexit
+9c50 0 165 3259
+9c50 11 166 3259
+9c61 1 167 3259
+FUNC 9c62 4f 4 V6_HeapAlloc
+9c62 c 27 5425
+9c6e 4 28 5425
+9c72 b 29 5425
+9c7d 8 31 5425
+9c85 4 32 5425
+9c89 a 33 5425
+9c93 c 35 5425
+9c9f 3 39 5425
+9ca2 6 40 5425
+9ca8 9 36 5425
+FUNC 9cb1 75 4 _heap_alloc
+9cb1 0 90 5425
+9cb1 9 95 5425
+9cba 5 96 5425
+9cbf 7 97 5425
+9cc6 c 98 5425
+9cd2 a 104 5425
+9cdc 18 105 5425
+9cf4 1 129 5425
+9cf5 a 107 5425
+9cff 9 108 5425
+9d08 2 109 5425
+9d0a 4 121 5425
+9d0e 1 122 5425
+9d0f 6 124 5425
+9d15 10 126 5425
+9d25 1 129 5425
+FUNC 9d26 c3 4 malloc
+9d26 1 155 5425
+9d27 16 159 5425
+9d3d 65 163 5425
+9da2 4 168 5425
+9da6 b 172 5425
+9db1 b 179 5425
+9dbc 2 183 5425
+9dbe 7 174 5425
+9dc5 8 193 5425
+9dcd 5 195 5425
+9dd2 1 196 5425
+9dd3 7 185 5425
+9dda b 186 5425
+9de5 3 187 5425
+9de8 1 196 5425
+FUNC 9de9 a 4 _initp_heap_handler
+9de9 0 31 5230
+9de9 9 32 5230
+9df2 1 33 5230
+FUNC 9df3 31 4 _set_new_handler(int (*)(unsigned int))
+9df3 1 53 5230
+9df4 7 57 5230
+9dfb b 59 5230
+9e06 b 60 5230
+9e11 f 63 5230
+9e20 3 65 5230
+9e23 1 66 5230
+FUNC 9e24 9 4 _set_new_handler(int)
+9e24 0 86 5230
+9e24 8 89 5230
+9e2c 1 90 5230
+FUNC 9e2d d 0 _query_new_handler()
+9e2d 0 110 5230
+9e2d c 111 5230
+9e39 1 112 5230
+FUNC 9e3a 22 4 _callnewh
+9e3a 0 131 5230
+9e3a b 133 5230
+9e45 10 135 5230
+9e55 3 138 5230
+9e58 1 139 5230
+9e59 2 136 5230
+9e5b 1 139 5230
+FUNC 9e5c 22 18 _invoke_watson_if_error
+9e5c 3 754 5850
+9e5f 6 755 5850
+9e65 17 759 5850
+9e7c 2 760 5850
+FUNC 9e7e 70 4 type_info::_Type_info_dtor(type_info *)
+9e7e c 62 5815
+9e8a 8 63 5815
+9e92 4 64 5815
+9e96 a 65 5815
+9ea0 d 70 5815
+9ead 4 72 5815
+9eb1 4 74 5815
+9eb5 6 79 5815
+9ebb 7 80 5815
+9ec2 9 94 5815
+9ecb 4 101 5815
+9ecf c 103 5815
+9edb 6 107 5815
+9ee1 2 83 5815
+9ee3 2 72 5815
+9ee5 9 104 5815
+FUNC 9eee f5 8 type_info::_Name_base(type_info const *,__type_info_node *)
+9eee c 109 5815
+9efa e 113 5815
+9f08 24 124 5815
+9f2c 7 125 5815
+9f33 16 132 5815
+9f49 2 133 5815
+9f4b 5 132 5815
+9f50 b 136 5815
+9f5b 5 142 5815
+9f60 a 149 5815
+9f6a 4 150 5815
+9f6e 11 157 5815
+9f7f 20 158 5815
+9f9f 5 159 5815
+9fa4 9 165 5815
+9fad 3 166 5815
+9fb0 2 167 5815
+9fb2 7 173 5815
+9fb9 9 180 5815
+9fc2 c 181 5815
+9fce 3 188 5815
+9fd1 6 189 5815
+9fd7 3 181 5815
+9fda 9 182 5815
+FUNC 9fe3 70 4 type_info::_Type_info_dtor_internal(type_info *)
+9fe3 c 197 5815
+9fef 8 198 5815
+9ff7 4 199 5815
+9ffb a 200 5815
+a005 d 205 5815
+a012 4 207 5815
+a016 4 209 5815
+a01a 6 214 5815
+a020 7 215 5815
+a027 9 229 5815
+a030 4 236 5815
+a034 c 238 5815
+a040 6 242 5815
+a046 2 218 5815
+a048 2 207 5815
+a04a 9 239 5815
+FUNC a053 31 10 __unDNameHelper
+a053 3 249 5815
+a056 7 250 5815
+a05d 7 252 5815
+a064 1e 260 5815
+a082 2 261 5815
+FUNC a084 eb 8 type_info::_Name_base_internal(type_info const *,__type_info_node *)
+a084 c 265 5815
+a090 e 269 5815
+a09e 1a 273 5815
+a0b8 7 274 5815
+a0bf 16 281 5815
+a0d5 2 282 5815
+a0d7 5 281 5815
+a0dc b 285 5815
+a0e7 5 291 5815
+a0ec a 298 5815
+a0f6 4 299 5815
+a0fa 11 306 5815
+a10b 20 307 5815
+a12b 5 308 5815
+a130 9 314 5815
+a139 3 315 5815
+a13c 2 316 5815
+a13e 7 322 5815
+a145 9 329 5815
+a14e c 330 5815
+a15a 3 337 5815
+a15d 6 338 5815
+a163 3 330 5815
+a166 9 331 5815
+FUNC a16f 53 4 __clean_type_info_names_internal
+a16f c 346 5815
+a17b 8 347 5815
+a183 4 348 5815
+a187 6 352 5815
+a18d 4 354 5815
+a191 3 356 5815
+a194 7 357 5815
+a19b 8 358 5815
+a1a3 4 354 5815
+a1a7 c 359 5815
+a1b3 6 363 5815
+a1b9 9 361 5815
+FUNC a1d0 88 8 strcmp
+a1d0 0 65 926
+a1d0 4 73 926
+a1d4 4 74 926
+a1d8 6 76 926
+a1de 2 77 926
+a1e0 2 81 926
+a1e2 2 83 926
+a1e4 2 84 926
+a1e6 2 85 926
+a1e8 2 86 926
+a1ea 3 87 926
+a1ed 2 88 926
+a1ef 2 89 926
+a1f1 2 90 926
+a1f3 3 92 926
+a1f6 3 94 926
+a1f9 2 95 926
+a1fb 2 96 926
+a1fd 2 97 926
+a1ff 3 98 926
+a202 2 99 926
+a204 3 100 926
+a207 3 101 926
+a20a 2 102 926
+a20c 4 103 926
+a210 2 107 926
+a212 2 108 926
+a214 2 115 926
+a216 2 116 926
+a218 3 117 926
+a21b 1 118 926
+a21c 6 122 926
+a222 2 123 926
+a224 2 125 926
+a226 3 126 926
+a229 2 127 926
+a22b 2 128 926
+a22d 3 129 926
+a230 2 130 926
+a232 2 131 926
+a234 6 133 926
+a23a 2 134 926
+a23c 3 139 926
+a23f 3 140 926
+a242 2 141 926
+a244 2 142 926
+a246 2 143 926
+a248 2 144 926
+a24a 3 145 926
+a24d 2 146 926
+a24f 2 147 926
+a251 2 148 926
+a253 3 149 926
+a256 2 150 926
+FUNC a258 65 c strcpy_s
+a258 0 13 781
+a258 30 18 781
+a288 c 19 781
+a294 2 21 781
+a296 d 23 781
+a2a3 4 27 781
+a2a7 2 29 781
+a2a9 e 30 781
+a2b7 5 33 781
+a2bc 1 34 781
+FUNC a2c0 7a c memset
+a2c0 0 59 934
+a2c0 4 68 934
+a2c4 4 69 934
+a2c8 2 71 934
+a2ca 2 72 934
+a2cc 2 74 934
+a2ce 4 75 934
+a2d2 2 78 934
+a2d4 2 79 934
+a2d6 6 80 934
+a2dc 2 81 934
+a2de 7 82 934
+a2e5 2 83 934
+a2e7 5 85 934
+a2ec 1 91 934
+a2ed 2 92 934
+a2ef 3 94 934
+a2f2 2 95 934
+a2f4 2 97 934
+a2f6 3 98 934
+a2f9 2 99 934
+a2fb 2 101 934
+a2fd 2 103 934
+a2ff 3 104 934
+a302 3 105 934
+a305 2 106 934
+a307 2 110 934
+a309 3 111 934
+a30c 2 113 934
+a30e 2 115 934
+a310 3 117 934
+a313 2 119 934
+a315 2 122 934
+a317 3 123 934
+a31a 3 124 934
+a31d 2 125 934
+a31f 2 127 934
+a321 2 129 934
+a323 2 130 934
+a325 2 134 934
+a327 3 135 934
+a32a 3 137 934
+a32d 2 138 934
+a32f 4 142 934
+a333 1 143 934
+a334 1 145 934
+a335 4 148 934
+a339 1 150 934
+FUNC a340 365 c memcpy
+a340 3 101 1027
+a343 1 113 1027
+a344 1 114 1027
+a345 3 116 1027
+a348 3 117 1027
+a34b 3 119 1027
+a34e 2 129 1027
+a350 2 131 1027
+a352 2 132 1027
+a354 2 134 1027
+a356 2 135 1027
+a358 2 137 1027
+a35a 6 138 1027
+a360 6 147 1027
+a366 2 148 1027
+a368 7 150 1027
+a36f 2 151 1027
+a371 1 153 1027
+a372 1 154 1027
+a373 3 155 1027
+a376 3 156 1027
+a379 2 157 1027
+a37b 1 158 1027
+a37c 1 159 1027
+a37d 2 160 1027
+a37f 1 163 1027
+a380 1 164 1027
+a381 1 165 1027
+a382 5 166 1027
+a387 6 179 1027
+a38d 2 180 1027
+a38f 3 182 1027
+a392 3 183 1027
+a395 3 185 1027
+a398 2 186 1027
+a39a 2 188 1027
+a39c 8 190 1027
+a3a4 2 208 1027
+a3a6 5 209 1027
+a3ab 3 211 1027
+a3ae 2 212 1027
+a3b0 3 214 1027
+a3b3 2 215 1027
+a3b5 7 217 1027
+a3bc 8 221 1027
+a3c4 14 225 1027
+a3d8 2 232 1027
+a3da 2 233 1027
+a3dc 2 235 1027
+a3de 3 236 1027
+a3e1 3 238 1027
+a3e4 3 239 1027
+a3e7 3 241 1027
+a3ea 3 242 1027
+a3ed 3 244 1027
+a3f0 3 245 1027
+a3f3 3 247 1027
+a3f6 2 248 1027
+a3f8 2 250 1027
+a3fa a 252 1027
+a404 2 256 1027
+a406 2 257 1027
+a408 2 259 1027
+a40a 3 260 1027
+a40d 3 262 1027
+a410 3 263 1027
+a413 3 265 1027
+a416 3 266 1027
+a419 3 268 1027
+a41c 2 269 1027
+a41e 2 271 1027
+a420 8 273 1027
+a428 2 277 1027
+a42a 2 278 1027
+a42c 2 280 1027
+a42e 3 281 1027
+a431 3 283 1027
+a434 3 284 1027
+a437 3 286 1027
+a43a 2 287 1027
+a43c 2 289 1027
+a43e 2a 291 1027
+a468 4 298 1027
+a46c 4 300 1027
+a470 4 302 1027
+a474 4 304 1027
+a478 4 306 1027
+a47c 4 308 1027
+a480 4 310 1027
+a484 4 312 1027
+a488 4 314 1027
+a48c 4 316 1027
+a490 4 318 1027
+a494 4 320 1027
+a498 4 322 1027
+a49c 4 324 1027
+a4a0 7 326 1027
+a4a7 2 328 1027
+a4a9 2 329 1027
+a4ab 19 331 1027
+a4c4 3 340 1027
+a4c7 1 341 1027
+a4c8 1 342 1027
+a4c9 3 344 1027
+a4cc 2 348 1027
+a4ce 2 350 1027
+a4d0 3 351 1027
+a4d3 1 352 1027
+a4d4 1 353 1027
+a4d5 3 354 1027
+a4d8 2 358 1027
+a4da 2 360 1027
+a4dc 3 361 1027
+a4df 3 362 1027
+a4e2 3 363 1027
+a4e5 1 364 1027
+a4e6 1 365 1027
+a4e7 5 366 1027
+a4ec 2 370 1027
+a4ee 2 372 1027
+a4f0 3 373 1027
+a4f3 3 374 1027
+a4f6 3 375 1027
+a4f9 3 376 1027
+a4fc 3 377 1027
+a4ff 1 378 1027
+a500 1 379 1027
+a501 3 380 1027
+a504 4 391 1027
+a508 4 392 1027
+a50c 6 397 1027
+a512 2 398 1027
+a514 3 400 1027
+a517 3 401 1027
+a51a 3 403 1027
+a51d 2 404 1027
+a51f 1 406 1027
+a520 2 407 1027
+a522 1 408 1027
+a523 9 410 1027
+a52c 2 414 1027
+a52e a 417 1027
+a538 2 422 1027
+a53a 5 423 1027
+a53f 3 425 1027
+a542 2 426 1027
+a544 3 428 1027
+a547 2 429 1027
+a549 7 431 1027
+a550 14 435 1027
+a564 3 442 1027
+a567 2 443 1027
+a569 3 445 1027
+a56c 3 446 1027
+a56f 3 448 1027
+a572 3 449 1027
+a575 3 451 1027
+a578 2 452 1027
+a57a 1 454 1027
+a57b 2 455 1027
+a57d 1 456 1027
+a57e a 458 1027
+a588 3 462 1027
+a58b 2 463 1027
+a58d 3 465 1027
+a590 3 466 1027
+a593 3 468 1027
+a596 3 469 1027
+a599 3 471 1027
+a59c 3 472 1027
+a59f 3 474 1027
+a5a2 2 475 1027
+a5a4 1 477 1027
+a5a5 2 478 1027
+a5a7 1 479 1027
+a5a8 8 481 1027
+a5b0 3 485 1027
+a5b3 2 486 1027
+a5b5 3 488 1027
+a5b8 3 489 1027
+a5bb 3 491 1027
+a5be 3 492 1027
+a5c1 3 494 1027
+a5c4 3 495 1027
+a5c7 3 497 1027
+a5ca 3 498 1027
+a5cd 3 500 1027
+a5d0 6 501 1027
+a5d6 1 503 1027
+a5d7 2 504 1027
+a5d9 1 505 1027
+a5da 2a 507 1027
+a604 4 516 1027
+a608 4 518 1027
+a60c 4 520 1027
+a610 4 522 1027
+a614 4 524 1027
+a618 4 526 1027
+a61c 4 528 1027
+a620 4 530 1027
+a624 4 532 1027
+a628 4 534 1027
+a62c 4 536 1027
+a630 4 538 1027
+a634 4 540 1027
+a638 4 542 1027
+a63c 7 544 1027
+a643 2 546 1027
+a645 2 547 1027
+a647 19 549 1027
+a660 3 558 1027
+a663 1 560 1027
+a664 1 561 1027
+a665 3 562 1027
+a668 3 566 1027
+a66b 3 568 1027
+a66e 3 569 1027
+a671 1 570 1027
+a672 1 571 1027
+a673 5 572 1027
+a678 3 576 1027
+a67b 3 578 1027
+a67e 3 579 1027
+a681 3 580 1027
+a684 3 581 1027
+a687 1 582 1027
+a688 1 583 1027
+a689 3 584 1027
+a68c 3 588 1027
+a68f 3 590 1027
+a692 3 591 1027
+a695 3 592 1027
+a698 3 593 1027
+a69b 3 594 1027
+a69e 3 595 1027
+a6a1 1 596 1027
+a6a2 1 597 1027
+a6a3 2 598 1027
+FUNC a6b0 365 c memmove
+a6b0 3 101 977
+a6b3 1 113 977
+a6b4 1 114 977
+a6b5 3 116 977
+a6b8 3 117 977
+a6bb 3 119 977
+a6be 2 129 977
+a6c0 2 131 977
+a6c2 2 132 977
+a6c4 2 134 977
+a6c6 2 135 977
+a6c8 2 137 977
+a6ca 6 138 977
+a6d0 6 147 977
+a6d6 2 148 977
+a6d8 7 150 977
+a6df 2 151 977
+a6e1 1 153 977
+a6e2 1 154 977
+a6e3 3 155 977
+a6e6 3 156 977
+a6e9 2 157 977
+a6eb 1 158 977
+a6ec 1 159 977
+a6ed 2 160 977
+a6ef 1 163 977
+a6f0 1 164 977
+a6f1 1 165 977
+a6f2 5 166 977
+a6f7 6 179 977
+a6fd 2 180 977
+a6ff 3 182 977
+a702 3 183 977
+a705 3 185 977
+a708 2 186 977
+a70a 2 188 977
+a70c 8 190 977
+a714 2 208 977
+a716 5 209 977
+a71b 3 211 977
+a71e 2 212 977
+a720 3 214 977
+a723 2 215 977
+a725 7 217 977
+a72c 8 221 977
+a734 14 225 977
+a748 2 232 977
+a74a 2 233 977
+a74c 2 235 977
+a74e 3 236 977
+a751 3 238 977
+a754 3 239 977
+a757 3 241 977
+a75a 3 242 977
+a75d 3 244 977
+a760 3 245 977
+a763 3 247 977
+a766 2 248 977
+a768 2 250 977
+a76a a 252 977
+a774 2 256 977
+a776 2 257 977
+a778 2 259 977
+a77a 3 260 977
+a77d 3 262 977
+a780 3 263 977
+a783 3 265 977
+a786 3 266 977
+a789 3 268 977
+a78c 2 269 977
+a78e 2 271 977
+a790 8 273 977
+a798 2 277 977
+a79a 2 278 977
+a79c 2 280 977
+a79e 3 281 977
+a7a1 3 283 977
+a7a4 3 284 977
+a7a7 3 286 977
+a7aa 2 287 977
+a7ac 2 289 977
+a7ae 2a 291 977
+a7d8 4 298 977
+a7dc 4 300 977
+a7e0 4 302 977
+a7e4 4 304 977
+a7e8 4 306 977
+a7ec 4 308 977
+a7f0 4 310 977
+a7f4 4 312 977
+a7f8 4 314 977
+a7fc 4 316 977
+a800 4 318 977
+a804 4 320 977
+a808 4 322 977
+a80c 4 324 977
+a810 7 326 977
+a817 2 328 977
+a819 2 329 977
+a81b 19 331 977
+a834 3 340 977
+a837 1 341 977
+a838 1 342 977
+a839 3 344 977
+a83c 2 348 977
+a83e 2 350 977
+a840 3 351 977
+a843 1 352 977
+a844 1 353 977
+a845 3 354 977
+a848 2 358 977
+a84a 2 360 977
+a84c 3 361 977
+a84f 3 362 977
+a852 3 363 977
+a855 1 364 977
+a856 1 365 977
+a857 5 366 977
+a85c 2 370 977
+a85e 2 372 977
+a860 3 373 977
+a863 3 374 977
+a866 3 375 977
+a869 3 376 977
+a86c 3 377 977
+a86f 1 378 977
+a870 1 379 977
+a871 3 380 977
+a874 4 391 977
+a878 4 392 977
+a87c 6 397 977
+a882 2 398 977
+a884 3 400 977
+a887 3 401 977
+a88a 3 403 977
+a88d 2 404 977
+a88f 1 406 977
+a890 2 407 977
+a892 1 408 977
+a893 9 410 977
+a89c 2 414 977
+a89e a 417 977
+a8a8 2 422 977
+a8aa 5 423 977
+a8af 3 425 977
+a8b2 2 426 977
+a8b4 3 428 977
+a8b7 2 429 977
+a8b9 7 431 977
+a8c0 14 435 977
+a8d4 3 442 977
+a8d7 2 443 977
+a8d9 3 445 977
+a8dc 3 446 977
+a8df 3 448 977
+a8e2 3 449 977
+a8e5 3 451 977
+a8e8 2 452 977
+a8ea 1 454 977
+a8eb 2 455 977
+a8ed 1 456 977
+a8ee a 458 977
+a8f8 3 462 977
+a8fb 2 463 977
+a8fd 3 465 977
+a900 3 466 977
+a903 3 468 977
+a906 3 469 977
+a909 3 471 977
+a90c 3 472 977
+a90f 3 474 977
+a912 2 475 977
+a914 1 477 977
+a915 2 478 977
+a917 1 479 977
+a918 8 481 977
+a920 3 485 977
+a923 2 486 977
+a925 3 488 977
+a928 3 489 977
+a92b 3 491 977
+a92e 3 492 977
+a931 3 494 977
+a934 3 495 977
+a937 3 497 977
+a93a 3 498 977
+a93d 3 500 977
+a940 6 501 977
+a946 1 503 977
+a947 2 504 977
+a949 1 505 977
+a94a 2a 507 977
+a974 4 516 977
+a978 4 518 977
+a97c 4 520 977
+a980 4 522 977
+a984 4 524 977
+a988 4 526 977
+a98c 4 528 977
+a990 4 530 977
+a994 4 532 977
+a998 4 534 977
+a99c 4 536 977
+a9a0 4 538 977
+a9a4 4 540 977
+a9a8 4 542 977
+a9ac 7 544 977
+a9b3 2 546 977
+a9b5 2 547 977
+a9b7 19 549 977
+a9d0 3 558 977
+a9d3 1 560 977
+a9d4 1 561 977
+a9d5 3 562 977
+a9d8 3 566 977
+a9db 3 568 977
+a9de 3 569 977
+a9e1 1 570 977
+a9e2 1 571 977
+a9e3 5 572 977
+a9e8 3 576 977
+a9eb 3 578 977
+a9ee 3 579 977
+a9f1 3 580 977
+a9f4 3 581 977
+a9f7 1 582 977
+a9f8 1 583 977
+a9f9 3 584 977
+a9fc 3 588 977
+a9ff 3 590 977
+aa02 3 591 977
+aa05 3 592 977
+aa08 3 593 977
+aa0b 3 594 977
+aa0e 3 595 977
+aa11 1 596 977
+aa12 1 597 977
+aa13 2 598 977
+FUNC aa15 3d 4 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+aa15 0 67 5721
+aa15 33 68 5721
+aa48 5 69 5721
+aa4d 2 72 5721
+aa4f 3 73 5721
+FUNC aa52 e 0 __CxxSetUnhandledExceptionFilter
+aa52 0 86 5721
+aa52 b 89 5721
+aa5d 2 90 5721
+aa5f 1 91 5721
+FUNC aa60 1a0 4 _NMSG_WRITE
+aa60 2 174 2418
+aa62 a 178 2418
+aa6c f 179 2418
+aa7b a 182 2418
+aa85 2a 203 2418
+aaaf c 215 2418
+aabb 2a 224 2418
+aae5 1e 227 2418
+ab03 26 228 2418
+ab29 d 231 2418
+ab36 b 233 2418
+ab41 2f 234 2418
+ab70 20 237 2418
+ab90 22 238 2418
+abb2 15 242 2418
+abc7 a 205 2418
+abd1 9 206 2418
+abda 24 212 2418
+abfe 2 245 2418
+FUNC ac00 20 4 _GET_RTERRMSG
+ac00 0 268 2418
+ac00 2 271 2418
+ac02 13 272 2418
+ac15 2 275 2418
+ac17 1 276 2418
+ac18 7 273 2418
+ac1f 1 276 2418
+FUNC ac20 39 0 _FF_MSGBANNER
+ac20 0 141 2418
+ac20 22 145 2418
+ac42 a 147 2418
+ac4c c 148 2418
+ac58 1 150 2418
+FUNC ac59 1 4 _initp_misc_winxfltr
+ac59 0 105 2752
+ac59 1 106 2752
+FUNC ac5a 32 4 xcptlookup
+ac5a 0 410 2752
+ac5a b 411 2752
+ac65 14 418 2752
+ac79 e 425 2752
+ac87 2 428 2752
+ac89 2 426 2752
+ac8b 1 429 2752
+FUNC ac8c 15e 8 _XcptFilter
+ac8c 6 206 2752
+ac92 7 213 2752
+ac99 8 214 2752
+aca1 34 219 2752
+acd5 2 221 2752
+acd7 2 225 2752
+acd9 3 227 2752
+acdc 7 234 2752
+ace3 7 235 2752
+acea 5 243 2752
+acef 4 248 2752
+acf3 8 249 2752
+acfb 3 255 2752
+acfe 6 259 2752
+ad04 6 273 2752
+ad0a 6 274 2752
+ad10 c 283 2752
+ad1c 17 291 2752
+ad33 1e 294 2752
+ad51 3 291 2752
+ad54 c 321 2752
+ad60 9 323 2752
+ad69 7 325 2752
+ad70 9 327 2752
+ad79 7 329 2752
+ad80 9 331 2752
+ad89 7 333 2752
+ad90 9 335 2752
+ad99 7 337 2752
+ada0 9 339 2752
+ada9 7 341 2752
+adb0 9 343 2752
+adb9 7 345 2752
+adc0 7 347 2752
+adc7 8 356 2752
+adcf 3 361 2752
+add2 2 363 2752
+add4 4 368 2752
+add8 3 369 2752
+addb 7 375 2752
+ade2 6 377 2752
+ade8 2 379 2752
+FUNC adea 1b 8 __CppXcptFilter
+adea 0 145 2752
+adea b 146 2752
+adf5 c 147 2752
+ae01 1 151 2752
+ae02 2 149 2752
+ae04 1 151 2752
+FUNC ae05 db 0 _setenvp
+ae05 1 77 2280
+ae06 c 85 2280
+ae12 5 86 2280
+ae17 8 91 2280
+ae1f 4 98 2280
+ae23 8 99 2280
+ae2b 4 110 2280
+ae2f 1 111 2280
+ae30 11 112 2280
+ae41 15 117 2280
+ae56 2 118 2280
+ae58 9 121 2280
+ae61 9 123 2280
+ae6a 6 125 2280
+ae70 10 127 2280
+ae80 1c 133 2280
+ae9c 3 134 2280
+ae9f 6 121 2280
+aea5 b 138 2280
+aeb0 6 139 2280
+aeb6 2 142 2280
+aeb8 a 149 2280
+aec2 7 152 2280
+aec9 17 153 2280
+FUNC aee0 a 4 _set_pgmptr
+aee0 a 334 2303
+FUNC aeea 198 c parse_cmdline
+aeea 4 218 2322
+aeee 6 226 2322
+aef4 8 230 2322
+aefc 14 231 2322
+af10 3 250 2322
+af13 5 252 2322
+af18 5 254 2322
+af1d 9 255 2322
+af26 2 256 2322
+af28 2 258 2322
+af2a 4 259 2322
+af2e 8 260 2322
+af36 2 262 2322
+af38 f 264 2322
+af47 2 265 2322
+af49 6 266 2322
+af4f a 267 2322
+af59 1 268 2322
+af5a 1a 272 2322
+af74 4 277 2322
+af78 4 278 2322
+af7c 4 281 2322
+af80 9 286 2322
+af89 a 287 2322
+af93 3 288 2322
+af96 1 275 2322
+af97 2 276 2322
+af99 9 291 2322
+afa2 6 295 2322
+afa8 9 296 2322
+afb1 2 297 2322
+afb3 3 311 2322
+afb6 4 315 2322
+afba 1 318 2322
+afbb 1 319 2322
+afbc 5 316 2322
+afc1 5 321 2322
+afc6 5 324 2322
+afcb e 325 2322
+afd9 2 326 2322
+afdb 2 327 2322
+afdd d 329 2322
+afea 2 332 2322
+afec 5 336 2322
+aff1 4 337 2322
+aff5 4 338 2322
+aff9 6 339 2322
+afff 3 338 2322
+b002 14 343 2322
+b016 4 348 2322
+b01a 2 349 2322
+b01c 10 350 2322
+b02c b 351 2322
+b037 2 352 2322
+b039 a 354 2322
+b043 2 355 2322
+b045 a 356 2322
+b04f 1 357 2322
+b050 2 358 2322
+b052 5 361 2322
+b057 1 363 2322
+b058 5 372 2322
+b05d 4 376 2322
+b061 7 377 2322
+b068 2 378 2322
+b06a 8 379 2322
+b072 9 382 2322
+b07b 3 383 2322
+b07e 2 384 2322
+b080 2 385 2322
+FUNC b082 b9 0 _setargv
+b082 7 88 2322
+b089 c 97 2322
+b095 5 98 2322
+b09a 18 104 2322
+b0b2 19 120 2322
+b0cb 11 127 2322
+b0dc 15 132 2322
+b0f1 a 136 2322
+b0fb 2 138 2322
+b0fd 8 140 2322
+b105 3 141 2322
+b108 2 142 2322
+b10a 13 149 2322
+b11d c 153 2322
+b129 6 157 2322
+b12f 4 172 2322
+b133 6 134 2322
+b139 2 173 2322
+FUNC b13b 135 0 __crtGetEnvironmentStringsA
+b13b 2 43 4307
+b13d 1a 57 4307
+b157 8 59 4307
+b15f c 60 4307
+b16b b 62 4307
+b176 e 63 4307
+b184 9 68 4307
+b18d 4 71 4307
+b191 8 72 4307
+b199 7 73 4307
+b1a0 7 77 4307
+b1a7 7 78 4307
+b1ae 7 79 4307
+b1b5 1b 93 4307
+b1d0 13 97 4307
+b1e3 11 111 4307
+b1f4 a 113 4307
+b1fe 8 114 4307
+b206 7 99 4307
+b20d 4 100 4307
+b211 6 123 4307
+b217 2 152 4307
+b219 a 126 4307
+b223 6 127 4307
+b229 4 133 4307
+b22d 5 134 4307
+b232 5 135 4307
+b237 5 138 4307
+b23c d 140 4307
+b249 7 141 4307
+b250 5 142 4307
+b255 b 145 4307
+b260 7 147 4307
+b267 6 149 4307
+b26d 3 153 4307
+FUNC b270 24 0 _RTC_Initialize
+FUNC b294 24 0 _RTC_Terminate
+FUNC b2b8 5b 0 __heap_select
+b2b8 6 70 5473
+b2be 23 143 5473
+b2e1 1b 144 5473
+b2fc d 145 5473
+b309 3 146 5473
+b30c 2 164 5473
+b30e 3 161 5473
+b311 2 164 5473
+FUNC b313 5a 4 _heap_init
+b313 0 192 5473
+b313 20 199 5473
+b333 2 200 5473
+b335 1 240 5473
+b336 5 204 5473
+b33b a 206 5473
+b345 f 209 5473
+b354 c 211 5473
+b360 7 212 5473
+b367 2 213 5473
+b369 3 239 5473
+b36c 1 240 5473
+FUNC b36d 74 0 _heap_term
+b36d 1 261 5473
+b36e c 264 5473
+b37a 1b 270 5473
+b395 f 273 5473
+b3a4 b 276 5473
+b3af d 278 5473
+b3bc 11 281 5473
+b3cd c 300 5473
+b3d9 7 301 5473
+b3e0 1 302 5473
+FUNC b3e1 6 0 _get_heap_handle
+b3e1 0 320 5473
+b3e1 5 322 5473
+b3e6 1 323 5473
+FUNC b3e7 94 0 __security_init_cookie
+b3e7 6 97 3689
+b3ed 21 114 3689
+b40e 7 116 3689
+b415 3 117 3689
+b418 a 127 3689
+b422 6 132 3689
+b428 8 135 3689
+b430 8 136 3689
+b438 8 137 3689
+b440 10 139 3689
+b450 2 144 3689
+b452 4 161 3689
+b456 7 163 3689
+b45d 4 166 3689
+b461 7 168 3689
+b468 6 172 3689
+b46e b 173 3689
+b479 2 175 3689
+FUNC b47b 8 4 _crt_debugger_hook
+b47b 0 62 3966
+b47b 7 65 3966
+b482 1 66 3966
+FUNC b483 160 8 _flsbuf
+b483 5 93 2041
+b488 c 104 2041
+b494 8 106 2041
+b49c b 107 2041
+b4a7 4 108 2041
+b4ab 8 109 2041
+b4b3 4 110 2041
+b4b7 b 111 2041
+b4c2 3 113 2041
+b4c5 6 124 2041
+b4cb b 126 2041
+b4d6 3 127 2041
+b4d9 8 128 2041
+b4e1 9 137 2041
+b4ea f 141 2041
+b4f9 25 151 2041
+b51e 7 153 2041
+b525 d 158 2041
+b532 5 162 2041
+b537 5 163 2041
+b53c 6 164 2041
+b542 7 166 2041
+b549 10 167 2041
+b559 2 168 2041
+b55b 6 131 2041
+b561 5 132 2041
+b566 2e 169 2041
+b594 12 171 2041
+b5a6 2 174 2041
+b5a8 8 179 2041
+b5b0 2 186 2041
+b5b2 3 187 2041
+b5b5 13 189 2041
+b5c8 5 201 2041
+b5cd 4 202 2041
+b5d1 5 203 2041
+b5d6 b 207 2041
+b5e1 2 212 2041
+FUNC b5e3 25 4 write_char
+b5e3 0 2433 1163
+b5e3 a 2434 1163
+b5ed 2 2437 1163
+b5ef 12 2440 1163
+b601 3 2444 1163
+b604 1 2447 1163
+b605 2 2446 1163
+b607 1 2447 1163
+FUNC b608 25 c write_multi_char
+b608 6 2498 1163
+b60e 2 2501 1163
+b610 e 2500 1163
+b61e 6 2501 1163
+b624 7 2499 1163
+b62b 2 2504 1163
+FUNC b62d 4f 4 write_string
+b62d 0 2563 1163
+b62d 12 2564 1163
+b63f 6 2566 1163
+b645 2 2567 1163
+b647 11 2570 1163
+b658 6 2571 1163
+b65e a 2573 1163
+b668 a 2574 1163
+b672 9 2569 1163
+b67b 1 2579 1163
+FUNC b67c 910 10 _woutput_l
+b67c 1b 975 1163
+b697 72 1031 1163
+b709 4 1036 1163
+b70d 2c 1073 1163
+b739 1a 1075 1163
+b753 8 1076 1163
+b75b 18 1131 1163
+b773 2 1171 1163
+b775 13 1173 1163
+b788 3 1174 1163
+b78b 5 1175 1163
+b790 1f 1179 1163
+b7af 4 1193 1163
+b7b3 5 1194 1163
+b7b8 4 1181 1163
+b7bc 5 1182 1163
+b7c1 4 1184 1163
+b7c5 5 1185 1163
+b7ca 7 1190 1163
+b7d1 5 1191 1163
+b7d6 3 1187 1163
+b7d9 5 1196 1163
+b7de 6 1200 1163
+b7e4 9 1206 1163
+b7ed b 1233 1163
+b7f8 4 1235 1163
+b7fc 3 1236 1163
+b7ff 5 1239 1163
+b804 10 1241 1163
+b814 5 1243 1163
+b819 4 1248 1163
+b81d 5 1249 1163
+b822 6 1253 1163
+b828 9 1259 1163
+b831 b 1284 1163
+b83c 4 1285 1163
+b840 5 1287 1163
+b845 10 1289 1163
+b855 5 1291 1163
+b85a 1b 1295 1163
+b875 7 1362 1163
+b87c 5 1363 1163
+b881 6 1301 1163
+b887 2 1303 1163
+b889 a 1304 1163
+b893 5 1306 1163
+b898 4 1308 1163
+b89c 5 1310 1163
+b8a1 4 1358 1163
+b8a5 5 1359 1163
+b8aa 10 1322 1163
+b8ba 3 1324 1163
+b8bd f 1325 1163
+b8cc d 1327 1163
+b8d9 3 1329 1163
+b8dc a 1330 1163
+b8e6 5 1332 1163
+b8eb 3c 1337 1163
+b927 4 1352 1163
+b92b 13 1166 1163
+b93e 5 1167 1163
+b943 32 1378 1163
+b975 d 1716 1163
+b982 4 1724 1163
+b986 18 1749 1163
+b99e c 1750 1163
+b9aa c 1381 1163
+b9b6 9 1383 1163
+b9bf 8 1564 1163
+b9c7 4 1565 1163
+b9cb d 1584 1163
+b9d8 3 1589 1163
+b9db 13 1610 1163
+b9ee 4 1611 1163
+b9f2 8 1612 1163
+b9fa 19 1614 1163
+ba13 13 1618 1163
+ba26 1 1620 1163
+ba27 9 1621 1163
+ba30 5 1622 1163
+ba35 1d 1378 1163
+ba52 9 1397 1163
+ba5b f 1415 1163
+ba6a 3 1420 1163
+ba6d 25 1430 1163
+ba92 3 1434 1163
+ba95 2 1436 1163
+ba97 4 1437 1163
+ba9b 6 1439 1163
+baa1 3 1440 1163
+baa4 5 1506 1163
+baa9 5 1523 1163
+baae e 1541 1163
+babc 6 1546 1163
+bac2 b 1548 1163
+bacd 7 1549 1163
+bad4 5 1550 1163
+bad9 4 1551 1163
+badd 5 1553 1163
+bae2 8 1543 1163
+baea 7 1544 1163
+baf1 5 1557 1163
+baf6 34 1378 1163
+bb2a d 1908 1163
+bb37 9 1910 1163
+bb40 8 1668 1163
+bb48 d 1688 1163
+bb55 6 1702 1163
+bb5b 7 1703 1163
+bb62 2 1704 1163
+bb64 5 1706 1163
+bb69 7 1708 1163
+bb70 5 1710 1163
+bb75 4 1864 1163
+bb79 7 1869 1163
+bb80 c 1933 1163
+bb8c 8 1939 1163
+bb94 5 1958 1163
+bb99 8 1751 1163
+bba1 9 1752 1163
+bbaa 5 1753 1163
+bbaf 3 1754 1163
+bbb2 9 1756 1163
+bbbb f 1759 1163
+bbca 2 1760 1163
+bbcc 13 1765 1163
+bbdf 7 1767 1163
+bbe6 e 1809 1163
+bbf4 27 1828 1163
+bc1b 14 1838 1163
+bc2f 15 1840 1163
+bc44 b 1844 1163
+bc4f 15 1846 1163
+bc64 5 1852 1163
+bc69 7 1853 1163
+bc70 4 1854 1163
+bc74 1 1857 1163
+bc75 5 1859 1163
+bc7a 7 1877 1163
+bc81 3 1887 1163
+bc84 2 1888 1163
+bc86 1a 1378 1163
+bca0 7 1892 1163
+bca7 11 1897 1163
+bcb8 10 1900 1163
+bcc8 3 1901 1163
+bccb 5 1903 1163
+bcd0 6 1961 1163
+bcd6 6 1987 1163
+bcdc 16 2026 1163
+bcf2 2 2045 1163
+bcf4 5 2051 1163
+bcf9 2 2071 1163
+bcfb 4 2074 1163
+bcff 6 2080 1163
+bd05 2 2099 1163
+bd07 5 2105 1163
+bd0c 10 2128 1163
+bd1c 7 2129 1163
+bd23 7 2130 1163
+bd2a c 2136 1163
+bd36 2 2142 1163
+bd38 6 2148 1163
+bd3e 7 2149 1163
+bd45 2 2150 1163
+bd47 4 2151 1163
+bd4b a 2152 1163
+bd55 3 2153 1163
+bd58 6 2157 1163
+bd5e 3 2158 1163
+bd61 6 2163 1163
+bd67 10 2165 1163
+bd77 10 2166 1163
+bd87 c 2168 1163
+bd93 3 2170 1163
+bd96 3 2172 1163
+bd99 2 2173 1163
+bd9b 8 2175 1163
+bda3 1 2176 1163
+bda4 19 2180 1163
+bdbd 9 2181 1163
+bdc6 1 2182 1163
+bdc7 2 2185 1163
+bdc9 4 1625 1163
+bdcd 8 1626 1163
+bdd5 c 1628 1163
+bde1 7 1629 1163
+bde8 2 1630 1163
+bdea 4 1629 1163
+bdee 8 1631 1163
+bdf6 a 2201 1163
+be00 7 2204 1163
+be07 6 2205 1163
+be0d 6 2207 1163
+be13 2 2208 1163
+be15 4 2210 1163
+be19 6 2212 1163
+be1f 2 2213 1163
+be21 4 2215 1163
+be25 6 2217 1163
+be2b 7 2218 1163
+be32 b 2224 1163
+be3d 6 2228 1163
+be43 11 2230 1163
+be54 11 2234 1163
+be65 d 2236 1163
+be72 f 2238 1163
+be81 a 2263 1163
+be8b 3 2267 1163
+be8e 3 2268 1163
+be91 3 2269 1163
+be94 1a 2276 1163
+beae 7 2278 1163
+beb5 e 2282 1163
+bec3 a 2283 1163
+becd 2 1690 1163
+becf 4 2279 1163
+bed3 2 2285 1163
+bed5 d 2286 1163
+bee2 c 2290 1163
+beee 11 2292 1163
+beff 6 2297 1163
+bf05 8 2298 1163
+bf0d 4 2299 1163
+bf11 1 2298 1163
+bf12 1b 1073 1163
+bf2d 17 1690 1163
+bf44 10 2376 1163
+bf54 38 2377 1163
+FUNC bf8c 97 10 _vswprintf_l
+bf8c 7 125 1425
+bf93 24 130 1425
+bfb7 8 135 1425
+bfbf 29 155 1425
+bfe8 1d 166 1425
+c005 18 167 1425
+c01d 4 169 1425
+c021 2 183 1425
+FUNC c023 17 c _vswprintf
+c023 0 192 1425
+c023 16 195 1425
+c039 1 197 1425
+FUNC c03a 5 10 __vswprintf_l
+c03a 0 205 1425
+c03a 5 208 1425
+FUNC c03f 55 10 _vscwprintf_helper
+c03f 7 430 1425
+c046 24 435 1425
+c06a 28 441 1425
+c092 2 443 1425
+FUNC c094 18 8 _vscwprintf
+c094 0 449 1425
+c094 17 450 1425
+c0ab 1 451 1425
+FUNC c0ac 1a c _vscwprintf_l
+c0ac 0 458 1425
+c0ac 19 459 1425
+c0c5 1 460 1425
+FUNC c0c6 18 8 _vscwprintf_p
+c0c6 0 466 1425
+c0c6 17 467 1425
+c0dd 1 468 1425
+FUNC c0de 1a c _vscwprintf_p_l
+c0de 0 475 1425
+c0de 19 476 1425
+c0f7 1 477 1425
+FUNC c0f8 14e 14 vfprintf_helper
+c0f8 c 51 1462
+c104 5 54 1462
+c109 2e 56 1462
+c137 c 57 1462
+c143 3 60 1462
+c146 7 62 1462
+c14d 3 63 1462
+c150 b0 65 1462
+c200 5 66 1462
+c205 8 68 1462
+c20d 10 69 1462
+c21d a 70 1462
+c227 c 74 1462
+c233 3 78 1462
+c236 6 79 1462
+c23c a 75 1462
+FUNC c246 1e 10 _vfprintf_l
+c246 0 87 1462
+c246 1d 88 1462
+c263 1 89 1462
+FUNC c264 1e 10 _vfprintf_s_l
+c264 0 97 1462
+c264 1d 98 1462
+c281 1 99 1462
+FUNC c282 1e 10 _vfprintf_p_l
+c282 0 107 1462
+c282 1d 108 1462
+c29f 1 109 1462
+FUNC c2a0 1c c vfprintf
+c2a0 0 116 1462
+c2a0 1b 117 1462
+c2bb 1 118 1462
+FUNC c2bc 1c c vfprintf_s
+c2bc 0 125 1462
+c2bc 1b 126 1462
+c2d7 1 127 1462
+FUNC c2d8 1c c _vfprintf_p
+c2d8 0 134 1462
+c2d8 1b 135 1462
+c2f3 1 136 1462
+FUNC c2f4 25 4 write_char
+c2f4 0 2433 1053
+c2f4 a 2434 1053
+c2fe 2 2437 1053
+c300 12 2440 1053
+c312 3 2444 1053
+c315 1 2447 1053
+c316 2 2446 1053
+c318 1 2447 1053
+FUNC c319 25 c write_multi_char
+c319 6 2498 1053
+c31f 2 2501 1053
+c321 e 2500 1053
+c32f 6 2501 1053
+c335 7 2499 1053
+c33c 2 2504 1053
+FUNC c33e 4f 4 write_string
+c33e 0 2563 1053
+c33e 12 2564 1053
+c350 6 2566 1053
+c356 2 2567 1053
+c358 11 2570 1053
+c369 6 2571 1053
+c36f a 2573 1053
+c379 a 2574 1053
+c383 9 2569 1053
+c38c 1 2579 1053
+FUNC c38d 91c 10 _woutput_s_l
+c38d 29 975 1053
+c3b6 3 976 1053
+c3b9 f 1007 1053
+c3c8 24 2172 1053
+c3ec 2f 1031 1053
+c41b 18 1036 1053
+c433 2e 1073 1053
+c461 16 1078 1053
+c477 e 1079 1053
+c485 11 1124 1053
+c496 10 1131 1053
+c4a6 2 1171 1053
+c4a8 13 1173 1053
+c4bb 3 1174 1053
+c4be 5 1175 1053
+c4c3 1e 1179 1053
+c4e1 3 1193 1053
+c4e4 5 1194 1053
+c4e9 4 1181 1053
+c4ed 5 1182 1053
+c4f2 4 1184 1053
+c4f6 5 1185 1053
+c4fb 7 1190 1053
+c502 5 1191 1053
+c507 3 1187 1053
+c50a 5 1196 1053
+c50f 6 1200 1053
+c515 5 1206 1053
+c51a e 1233 1053
+c528 4 1235 1053
+c52c 3 1236 1053
+c52f 5 1239 1053
+c534 10 1241 1053
+c544 5 1243 1053
+c549 4 1248 1053
+c54d 5 1249 1053
+c552 6 1253 1053
+c558 5 1259 1053
+c55d e 1284 1053
+c56b 4 1285 1053
+c56f 5 1287 1053
+c574 10 1289 1053
+c584 5 1291 1053
+c589 1b 1295 1053
+c5a4 7 1362 1053
+c5ab 5 1363 1053
+c5b0 6 1301 1053
+c5b6 2 1303 1053
+c5b8 7 1304 1053
+c5bf 5 1306 1053
+c5c4 4 1308 1053
+c5c8 5 1310 1053
+c5cd 4 1358 1053
+c5d1 5 1359 1053
+c5d6 10 1322 1053
+c5e6 3 1324 1053
+c5e9 c 1325 1053
+c5f5 d 1327 1053
+c602 3 1329 1053
+c605 7 1330 1053
+c60c 5 1332 1053
+c611 3c 1337 1053
+c64d 4 1352 1053
+c651 14 1166 1053
+c665 5 1167 1053
+c66a 32 1378 1053
+c69c d 1716 1053
+c6a9 4 1724 1053
+c6ad 18 1749 1053
+c6c5 c 1750 1053
+c6d1 c 1381 1053
+c6dd 9 1383 1053
+c6e6 8 1564 1053
+c6ee 4 1565 1053
+c6f2 d 1584 1053
+c6ff 3 1589 1053
+c702 13 1610 1053
+c715 4 1611 1053
+c719 8 1612 1053
+c721 19 1614 1053
+c73a 13 1618 1053
+c74d 1 1620 1053
+c74e 9 1621 1053
+c757 5 1622 1053
+c75c 1e 1378 1053
+c77a 9 1397 1053
+c783 f 1415 1053
+c792 3 1420 1053
+c795 25 1430 1053
+c7ba 3 1434 1053
+c7bd 2 1436 1053
+c7bf 4 1437 1053
+c7c3 6 1439 1053
+c7c9 3 1440 1053
+c7cc 5 1506 1053
+c7d1 5 1523 1053
+c7d6 e 1541 1053
+c7e4 6 1546 1053
+c7ea b 1548 1053
+c7f5 7 1549 1053
+c7fc 5 1550 1053
+c801 4 1551 1053
+c805 5 1553 1053
+c80a 8 1543 1053
+c812 7 1544 1053
+c819 5 1557 1053
+c81e 34 1378 1053
+c852 9 1908 1053
+c85b 9 1910 1053
+c864 8 1668 1053
+c86c d 1688 1053
+c879 6 1702 1053
+c87f 7 1703 1053
+c886 2 1704 1053
+c888 5 1706 1053
+c88d 7 1708 1053
+c894 5 1710 1053
+c899 4 1864 1053
+c89d 7 1869 1053
+c8a4 c 1933 1053
+c8b0 8 1939 1053
+c8b8 5 1958 1053
+c8bd 8 1751 1053
+c8c5 9 1752 1053
+c8ce 5 1753 1053
+c8d3 3 1754 1053
+c8d6 9 1756 1053
+c8df f 1759 1053
+c8ee 3 1760 1053
+c8f1 15 1765 1053
+c906 7 1767 1053
+c90d e 1809 1053
+c91b 27 1828 1053
+c942 14 1838 1053
+c956 15 1840 1053
+c96b b 1844 1053
+c976 15 1846 1053
+c98b 5 1852 1053
+c990 7 1853 1053
+c997 4 1854 1053
+c99b 1 1857 1053
+c99c 5 1859 1053
+c9a1 3 1877 1053
+c9a4 7 1887 1053
+c9ab 2 1888 1053
+c9ad 1a 1378 1053
+c9c7 7 1892 1053
+c9ce 11 1897 1053
+c9df 10 1900 1053
+c9ef 3 1901 1053
+c9f2 5 1903 1053
+c9f7 6 1961 1053
+c9fd 6 1987 1053
+ca03 16 2026 1053
+ca19 2 2045 1053
+ca1b 5 2051 1053
+ca20 2 2071 1053
+ca22 4 2074 1053
+ca26 6 2080 1053
+ca2c 2 2099 1053
+ca2e 5 2105 1053
+ca33 10 2128 1053
+ca43 7 2129 1053
+ca4a 7 2130 1053
+ca51 c 2136 1053
+ca5d 2 2142 1053
+ca5f 6 2148 1053
+ca65 7 2149 1053
+ca6c 2 2150 1053
+ca6e 4 2151 1053
+ca72 a 2152 1053
+ca7c 3 2153 1053
+ca7f 6 2157 1053
+ca85 3 2158 1053
+ca88 6 2163 1053
+ca8e 10 2165 1053
+ca9e 10 2166 1053
+caae c 2168 1053
+caba 3 2170 1053
+cabd 3 2172 1053
+cac0 2 2173 1053
+cac2 8 2175 1053
+caca 1 2176 1053
+cacb 19 2180 1053
+cae4 9 2181 1053
+caed 1 2182 1053
+caee 2 2185 1053
+caf0 4 1625 1053
+caf4 8 1626 1053
+cafc c 1628 1053
+cb08 7 1629 1053
+cb0f 2 1630 1053
+cb11 4 1629 1053
+cb15 8 1631 1053
+cb1d a 2201 1053
+cb27 7 2204 1053
+cb2e 6 2205 1053
+cb34 6 2207 1053
+cb3a 2 2208 1053
+cb3c 4 2210 1053
+cb40 6 2212 1053
+cb46 2 2213 1053
+cb48 4 2215 1053
+cb4c 6 2217 1053
+cb52 7 2218 1053
+cb59 b 2224 1053
+cb64 6 2228 1053
+cb6a 11 2230 1053
+cb7b 11 2234 1053
+cb8c d 2236 1053
+cb99 f 2238 1053
+cba8 a 2263 1053
+cbb2 3 2267 1053
+cbb5 3 2268 1053
+cbb8 3 2269 1053
+cbbb 1a 2276 1053
+cbd5 7 2278 1053
+cbdc e 2282 1053
+cbea a 2283 1053
+cbf4 2 1690 1053
+cbf6 4 2279 1053
+cbfa 2 2285 1053
+cbfc d 2286 1053
+cc09 c 2290 1053
+cc15 11 2292 1053
+cc26 6 2297 1053
+cc2c 8 2298 1053
+cc34 16 2299 1053
+cc4a 7 1073 1053
+cc51 10 2310 1053
+cc61 10 2376 1053
+cc71 38 2377 1053
+FUNC cca9 154 10 _validate_param_reuseW
+cca9 3 606 1108
+ccac 21 610 1108
+cccd 13 617 1108
+cce0 13 618 1108
+ccf3 10 620 1108
+cd03 4a 629 1108
+cd4d 54 632 1108
+cda1 2 633 1108
+cda3 1a 639 1108
+cdbd f 645 1108
+cdcc 23 626 1108
+cdef c 614 1108
+cdfb 2 646 1108
+FUNC cdfd 25 4 write_char
+cdfd 0 2433 1108
+cdfd a 2434 1108
+ce07 2 2437 1108
+ce09 12 2440 1108
+ce1b 3 2444 1108
+ce1e 1 2447 1108
+ce1f 2 2446 1108
+ce21 1 2447 1108
+FUNC ce22 25 c write_multi_char
+ce22 6 2498 1108
+ce28 2 2501 1108
+ce2a e 2500 1108
+ce38 6 2501 1108
+ce3e 7 2499 1108
+ce45 2 2504 1108
+FUNC ce47 4f 4 write_string
+ce47 0 2563 1108
+ce47 12 2564 1108
+ce59 6 2566 1108
+ce5f 2 2567 1108
+ce61 11 2570 1108
+ce72 6 2571 1108
+ce78 a 2573 1108
+ce82 a 2574 1108
+ce8c 9 2569 1108
+ce95 1 2579 1108
+FUNC ce96 f60 10 _woutput_p_l
+ce96 1b 975 1108
+ceb1 20 1013 1108
+ced1 28 2172 1108
+cef9 2c 1031 1108
+cf25 4 1036 1108
+cf29 3 1038 1108
+cf2c 3 1041 1108
+cf2f 3 1043 1108
+cf32 f 1046 1108
+cf41 44 1073 1108
+cf85 1a 1078 1108
+cf9f 11 1079 1108
+cfb0 16 1082 1108
+cfc6 6 1084 1108
+cfcc 1c 1087 1108
+cfe8 6 1089 1108
+cfee 16 1091 1108
+d004 7 1093 1108
+d00b 2 1095 1108
+d00d 7 1097 1108
+d014 6 1101 1108
+d01a c 1103 1108
+d026 7 1104 1108
+d02d f 1106 1108
+d03c 1d 1109 1108
+d059 8 1112 1108
+d061 5 1131 1108
+d066 3 1117 1108
+d069 7 1131 1108
+d070 9 1120 1108
+d079 b 1131 1108
+d084 24 1137 1108
+d0a8 5 1145 1108
+d0ad 2 1171 1108
+d0af 16 1173 1108
+d0c5 3 1174 1108
+d0c8 5 1175 1108
+d0cd 1f 1179 1108
+d0ec 7 1193 1108
+d0f3 5 1194 1108
+d0f8 7 1181 1108
+d0ff 5 1182 1108
+d104 7 1184 1108
+d10b 5 1185 1108
+d110 a 1190 1108
+d11a 5 1191 1108
+d11f 6 1187 1108
+d125 5 1196 1108
+d12a a 1200 1108
+d134 6 1203 1108
+d13a a 1206 1108
+d144 2 1209 1108
+d146 c 1211 1108
+d152 6 1212 1108
+d158 e 1214 1108
+d166 1c 1216 1108
+d182 8 1219 1108
+d18a 12 1221 1108
+d19c a 1274 1108
+d1a6 5 1275 1108
+d1ab c 1228 1108
+d1b7 b 1233 1108
+d1c2 7 1235 1108
+d1c9 3 1236 1108
+d1cc 5 1239 1108
+d1d1 10 1241 1108
+d1e1 5 1243 1108
+d1e6 4 1248 1108
+d1ea 5 1249 1108
+d1ef 6 1253 1108
+d1f5 6 1256 1108
+d1fb a 1259 1108
+d205 2 1262 1108
+d207 c 1264 1108
+d213 6 1265 1108
+d219 12 1267 1108
+d22b c 1280 1108
+d237 b 1284 1108
+d242 4 1285 1108
+d246 5 1287 1108
+d24b 22 1274 1108
+d26d 10 1289 1108
+d27d 5 1291 1108
+d282 1b 1295 1108
+d29d a 1362 1108
+d2a7 5 1363 1108
+d2ac 6 1301 1108
+d2b2 2 1303 1108
+d2b4 d 1304 1108
+d2c1 5 1306 1108
+d2c6 7 1308 1108
+d2cd 5 1310 1108
+d2d2 7 1358 1108
+d2d9 5 1359 1108
+d2de 10 1322 1108
+d2ee 3 1324 1108
+d2f1 12 1325 1108
+d303 d 1327 1108
+d310 3 1329 1108
+d313 d 1330 1108
+d320 5 1332 1108
+d325 24 1337 1108
+d349 4 1352 1108
+d34d 13 1166 1108
+d360 5 1167 1108
+d365 a 1342 1108
+d36f 5 1366 1108
+d374 36 1378 1108
+d3aa d 1716 1108
+d3b7 7 1724 1108
+d3be 14 1726 1108
+d3d2 9 1728 1108
+d3db 2a 1739 1108
+d405 b 1381 1108
+d410 9 1383 1108
+d419 b 1564 1108
+d424 7 1565 1108
+d42b d 1584 1108
+d438 b 1586 1108
+d443 a 1589 1108
+d44d 5 1592 1108
+d452 22 1378 1108
+d474 d 1394 1108
+d481 b 1397 1108
+d48c 2 1400 1108
+d48e 9 1402 1108
+d497 6 1404 1108
+d49d 24 1406 1108
+d4c1 5 1407 1108
+d4c6 d 1411 1108
+d4d3 c 1415 1108
+d4df 3 1420 1108
+d4e2 28 1430 1108
+d50a 7 1434 1108
+d511 2 1436 1108
+d513 7 1437 1108
+d51a 9 1439 1108
+d523 7 1440 1108
+d52a 5 1506 1108
+d52f 6 1520 1108
+d535 a 1523 1108
+d53f 2 1526 1108
+d541 9 1528 1108
+d54a 4 1530 1108
+d54e 6 1533 1108
+d554 c 1537 1108
+d560 b 1541 1108
+d56b 9 1546 1108
+d574 b 1548 1108
+d57f 7 1549 1108
+d586 5 1550 1108
+d58b 4 1551 1108
+d58f 5 1553 1108
+d594 8 1543 1108
+d59c 7 1544 1108
+d5a3 5 1557 1108
+d5a8 38 1378 1108
+d5e0 15 1908 1108
+d5f5 11 1910 1108
+d606 6 1665 1108
+d60c a 1668 1108
+d616 2 1671 1108
+d618 9 1673 1108
+d621 6 1675 1108
+d627 1f 1677 1108
+d646 5 1678 1108
+d64b c 1682 1108
+d657 d 1688 1108
+d664 9 1702 1108
+d66d 7 1703 1108
+d674 2 1704 1108
+d676 5 1706 1108
+d67b 7 1708 1108
+d682 5 1710 1108
+d687 7 1864 1108
+d68e 7 1869 1108
+d695 6 1910 1108
+d69b 9 1933 1108
+d6a4 a 1936 1108
+d6ae f 1939 1108
+d6bd 5 1942 1108
+d6c2 1a 1739 1108
+d6dc 21 1109 1108
+d6fd 17 1749 1108
+d714 9 1750 1108
+d71d 8 1751 1108
+d725 9 1752 1108
+d72e 5 1753 1108
+d733 3 1754 1108
+d736 a 1756 1108
+d740 f 1759 1108
+d74f 2 1760 1108
+d751 13 1765 1108
+d764 3 1767 1108
+d767 7 1806 1108
+d76e 9 1809 1108
+d777 2 1812 1108
+d779 a 1818 1108
+d783 6 1821 1108
+d789 16 1822 1108
+d79f 24 1828 1108
+d7c3 16 1838 1108
+d7d9 15 1840 1108
+d7ee b 1844 1108
+d7f9 15 1846 1108
+d80e 5 1852 1108
+d813 a 1853 1108
+d81d 4 1854 1108
+d821 1 1857 1108
+d822 5 1859 1108
+d827 7 1877 1108
+d82e 7 1887 1108
+d835 2 1888 1108
+d837 1a 1378 1108
+d851 7 1892 1108
+d858 14 1897 1108
+d86c 10 1900 1108
+d87c 3 1901 1108
+d87f 5 1903 1108
+d884 9 1944 1108
+d88d 28 1948 1108
+d8b5 5 1949 1108
+d8ba 7 1961 1108
+d8c1 4 1964 1108
+d8c5 6 1970 1108
+d8cb 9 1972 1108
+d8d4 28 1976 1108
+d8fc 5 1977 1108
+d901 c 1981 1108
+d90d 5 1987 1108
+d912 5 2019 1108
+d917 5 2020 1108
+d91c 6 2023 1108
+d922 b 2026 1108
+d92d 5 2029 1108
+d932 9 2031 1108
+d93b 4 2033 1108
+d93f 2 2036 1108
+d941 d 2040 1108
+d94e 5 2045 1108
+d953 6 2048 1108
+d959 b 2051 1108
+d964 5 2054 1108
+d969 9 2056 1108
+d972 4 2058 1108
+d976 2 2061 1108
+d978 d 2065 1108
+d985 2 2071 1108
+d987 5 2074 1108
+d98c 6 2077 1108
+d992 a 2080 1108
+d99c 2 2083 1108
+d99e 9 2085 1108
+d9a7 6 2087 1108
+d9ad 17 2089 1108
+d9c4 15 2114 1108
+d9d9 5 2115 1108
+d9de d 2094 1108
+d9eb 2 2099 1108
+d9ed 6 2102 1108
+d9f3 a 2105 1108
+d9fd 2 2108 1108
+d9ff 9 2110 1108
+da08 6 2112 1108
+da0e e 2119 1108
+da1c f 2128 1108
+da2b 7 2129 1108
+da32 c 2130 1108
+da3e c 2136 1108
+da4a 4 2142 1108
+da4e 6 2148 1108
+da54 7 2149 1108
+da5b 2 2150 1108
+da5d 1a 2114 1108
+da77 3 2151 1108
+da7a 10 2152 1108
+da8a 3 2153 1108
+da8d 7 2157 1108
+da94 3 2158 1108
+da97 6 2163 1108
+da9d 11 2165 1108
+daae 12 2166 1108
+dac0 d 2168 1108
+dacd 3 2170 1108
+dad0 b 2173 1108
+dadb 8 2175 1108
+dae3 1 2176 1108
+dae4 20 2180 1108
+db04 9 2181 1108
+db0d 1 2182 1108
+db0e 5 2185 1108
+db13 9 1594 1108
+db1c 9 1596 1108
+db25 c 1603 1108
+db31 c 1610 1108
+db3d 4 1611 1108
+db41 8 1612 1108
+db49 11 1614 1108
+db5a 13 1618 1108
+db6d 1 1620 1108
+db6e 9 1621 1108
+db77 2 1622 1108
+db79 19 1598 1108
+db92 5 1625 1108
+db97 8 1626 1108
+db9f c 1628 1108
+dbab 6 1629 1108
+dbb1 2 1630 1108
+dbb3 4 1629 1108
+dbb7 8 1631 1108
+dbbf 10 2189 1108
+dbcf a 2201 1108
+dbd9 a 2204 1108
+dbe3 6 2205 1108
+dbe9 6 2207 1108
+dbef 2 2208 1108
+dbf1 4 2210 1108
+dbf5 6 2212 1108
+dbfb 2 2213 1108
+dbfd 4 2215 1108
+dc01 6 2217 1108
+dc07 7 2218 1108
+dc0e b 2224 1108
+dc19 9 2228 1108
+dc22 11 2230 1108
+dc33 11 2234 1108
+dc44 13 2236 1108
+dc57 f 2238 1108
+dc66 a 2263 1108
+dc70 3 2267 1108
+dc73 3 2268 1108
+dc76 3 2269 1108
+dc79 1a 2276 1108
+dc93 7 2278 1108
+dc9a e 2282 1108
+dca8 a 2283 1108
+dcb2 2 2310 1108
+dcb4 4 2279 1108
+dcb8 2 2285 1108
+dcba d 2286 1108
+dcc7 f 2290 1108
+dcd6 11 2292 1108
+dce7 6 2297 1108
+dced 8 2298 1108
+dcf5 4 2299 1108
+dcf9 1 2298 1108
+dcfa 12 1073 1108
+dd0c c 2310 1108
+dd18 c 2314 1108
+dd24 10 2319 1108
+dd34 16 2321 1108
+dd4a 2 2360 1108
+dd4c 9 2361 1108
+dd55 6 2362 1108
+dd5b 2 2344 1108
+dd5d 3 2345 1108
+dd60 2 2346 1108
+dd62 2 2324 1108
+dd64 6 2325 1108
+dd6a 9 2319 1108
+dd73 13 1043 1108
+dd86 17 1121 1108
+dd9d f 1818 1108
+ddac 10 2376 1108
+ddbc 3a 2377 1108
+FUNC ddf6 1f 0 _initp_misc_cfltcvt_tab
+ddf6 2 54 4074
+ddf8 8 56 4074
+de00 14 58 4074
+de14 1 60 4074
+FUNC de20 29 4 _ValidateImageBase
+de20 0 44 3159
+de20 b 50 3159
+de2b 2 52 3159
+de2d 1 68 3159
+de2e 5 55 3159
+de33 6 56 3159
+de39 2 58 3159
+de3b d 62 3159
+de48 1 68 3159
+FUNC de50 42 8 _FindPESection
+de50 0 92 3159
+de50 9 99 3159
+de59 19 108 3159
+de72 10 111 3159
+de82 a 108 3159
+de8c 5 123 3159
+de91 1 124 3159
+FUNC dea0 bb 4 _IsNonwritableInCurrentImage
+dea0 33 149 3159
+ded3 7 156 3159
+deda f 164 3159
+dee9 2 166 3159
+deeb 8 174 3159
+def3 e 175 3159
+df01 2 176 3159
+df03 2 178 3159
+df05 12 185 3159
+df17 12 195 3159
+df29 17 187 3159
+df40 9 193 3159
+df49 12 195 3159
+FUNC df5b 19 4 _initp_misc_winsig
+df5b 0 57 2785
+df5b 9 58 2785
+df64 5 59 2785
+df69 5 60 2785
+df6e 5 61 2785
+df73 1 62 2785
+FUNC df74 9b 4 ctrlevent_capture
+df74 c 89 2785
+df80 9 94 2785
+df89 3 95 2785
+df8c 5 102 2785
+df91 5 103 2785
+df96 e 104 2785
+dfa4 7 105 2785
+dfab 2 107 2785
+dfad 5 108 2785
+dfb2 e 109 2785
+dfc0 7 110 2785
+dfc7 1 109 2785
+dfc8 9 113 2785
+dfd1 7 117 2785
+dfd8 c 120 2785
+dfe4 5 124 2785
+dfe9 4 128 2785
+dfed 2 120 2785
+dfef 8 121 2785
+dff7 6 130 2785
+dffd 7 131 2785
+e004 3 138 2785
+e007 8 139 2785
+FUNC e00f 34 4 siglookup
+e00f 0 634 2785
+e00f b 635 2785
+e01a 15 645 2785
+e02f f 649 2785
+e03e 2 653 2785
+e040 2 658 2785
+e042 1 659 2785
+FUNC e043 d 0 __get_sigabrt
+e043 0 676 2785
+e043 c 677 2785
+e04f 1 678 2785
+FUNC e050 9 0 __fpecode
+e050 0 699 2785
+e050 8 700 2785
+e058 1 701 2785
+FUNC e059 9 0 __pxcptinfoptrs
+e059 0 721 2785
+e059 8 722 2785
+e061 1 723 2785
+FUNC e062 23d 8 signal
+e062 c 219 2785
+e06e 4 224 2785
+e072 3 230 2785
+e075 3 244 2785
+e078 12 230 2785
+e08a 2f 244 2785
+e0b9 13 327 2785
+e0cc 7 334 2785
+e0d3 8 335 2785
+e0db a 342 2785
+e0e5 17 346 2785
+e0fc 10 352 2785
+e10c 13 367 2785
+e11f 3 380 2785
+e122 e 382 2785
+e130 3 395 2785
+e133 17 401 2785
+e14a 5 390 2785
+e14f 5 401 2785
+e154 8 246 2785
+e15c 4 247 2785
+e160 12 254 2785
+e172 14 257 2785
+e186 6 259 2785
+e18c 2 261 2785
+e18e f 263 2785
+e19d a 264 2785
+e1a7 18 268 2785
+e1bf f 288 2785
+e1ce 4 289 2785
+e1d2 b 291 2785
+e1dd 2 293 2785
+e1df f 279 2785
+e1ee 4 280 2785
+e1f2 b 282 2785
+e1fd 2 284 2785
+e1ff f 296 2785
+e20e 4 297 2785
+e212 b 299 2785
+e21d 2 301 2785
+e21f f 271 2785
+e22e 4 272 2785
+e232 c 274 2785
+e23e c 305 2785
+e24a 9 309 2785
+e253 4 407 2785
+e257 3 305 2785
+e25a 9 306 2785
+e263 19 410 2785
+e27c 1a 419 2785
+e296 3 417 2785
+e299 6 423 2785
+FUNC e29f 1b0 4 raise
+e29f c 452 2785
+e2ab 5 459 2785
+e2b0 3 460 2785
+e2b3 1f 462 2785
+e2d2 a 488 2785
+e2dc 4 489 2785
+e2e0 8 490 2785
+e2e8 a 465 2785
+e2f2 2 467 2785
+e2f4 11 492 2785
+e305 2 493 2785
+e307 f 462 2785
+e316 1c 500 2785
+e332 a 476 2785
+e33c 2 478 2785
+e33e a 470 2785
+e348 2 472 2785
+e34a a 481 2785
+e354 7 482 2785
+e35b a 502 2785
+e365 2 510 2785
+e367 4 509 2785
+e36b 6 510 2785
+e371 5 515 2785
+e376 7 520 2785
+e37d 5 527 2785
+e382 7 528 2785
+e389 5 530 2785
+e38e f 543 2785
+e39d 6 544 2785
+e3a3 3 545 2785
+e3a6 5 551 2785
+e3ab 6 552 2785
+e3b1 7 553 2785
+e3b8 5 561 2785
+e3bd 1c 568 2785
+e3d9 d 571 2785
+e3e6 5 568 2785
+e3eb 7 574 2785
+e3f2 c 577 2785
+e3fe 5 582 2785
+e403 8 588 2785
+e40b 2 589 2785
+e40d 6 577 2785
+e413 6 578 2785
+e419 9 579 2785
+e422 5 590 2785
+e427 f 597 2785
+e436 6 598 2785
+e43c 5 603 2785
+e441 6 604 2785
+e447 2 607 2785
+e449 6 608 2785
+FUNC e44f a 4 _initp_misc_rand_s
+e44f 0 58 3075
+e44f 9 59 3075
+e458 1 60 3075
+FUNC e459 104 4 rand_s
+e459 3 66 3075
+e45c b 67 3075
+e467 2b 68 3075
+e492 c 71 3075
+e49e d 77 3075
+e4ab 4 78 3075
+e4af 1e 80 3075
+e4cd e 83 3075
+e4db 4 84 3075
+e4df 2f 86 3075
+e50e 9 88 3075
+e517 5 89 3075
+e51c 16 94 3075
+e532 7 103 3075
+e539 9 107 3075
+e542 b 109 3075
+e54d 9 110 3075
+e556 6 112 3075
+e55c 1 113 3075
+FUNC e55d 15a 14 __getlocaleinfo
+e55d 1d 70 3523
+e57a 7 76 3523
+e581 87 109 3523
+e608 13 103 3523
+e61b 5 114 3523
+e620 7 115 3523
+e627 3 141 3523
+e62a 12 142 3523
+e63c 20 106 3523
+e65c 5 108 3523
+e661 7 109 3523
+e668 4 111 3523
+e66c 5 118 3523
+e671 1a 126 3523
+e68b 2 127 3523
+e68d 2 129 3523
+e68f 10 134 3523
+e69f 16 135 3523
+e6b5 2 139 3523
+FUNC e6b7 a 4 _initp_misc_purevirt
+e6b7 0 166 3523
+e6b7 9 167 3523
+e6c0 1 168 3523
+FUNC e6c1 a 4 _initp_misc_initcrit
+e6c1 0 47 3609
+e6c1 9 48 3609
+e6ca 1 49 3609
+FUNC e6cb 10 8 __crtInitCritSecNoSpinCount
+e6cb 0 76 3609
+e6cb a 77 3609
+e6d5 3 78 3609
+e6d8 3 79 3609
+FUNC e6db c5 8 __crtInitCritSecAndSpinCount
+e6db c 109 3609
+e6e7 5 111 3609
+e6ec e 112 3609
+e6fa 4 114 3609
+e6fe 1b 120 3609
+e719 4 121 3609
+e71d 2 129 3609
+e71f b 130 3609
+e72a 4 131 3609
+e72e e 134 3609
+e73c 4 136 3609
+e740 5 149 3609
+e745 c 152 3609
+e751 3 155 3609
+e754 b 161 3609
+e75f 2 162 3609
+e761 1a 163 3609
+e77b 9 170 3609
+e784 8 171 3609
+e78c 4 173 3609
+e790 7 174 3609
+e797 3 176 3609
+e79a 6 177 3609
+FUNC e7a0 5e 4 _isatty
+e7a0 0 37 4912
+e7a0 16 44 4912
+e7b6 2 59 4912
+e7b8 29 45 4912
+e7e1 1 59 4912
+e7e2 1b 58 4912
+e7fd 1 59 4912
+FUNC e7fe 2f 0 CPtoLCID
+e7fe 0 329 4615
+e7fe 14 330 4615
+e812 2 345 4615
+e814 1 346 4615
+e815 5 342 4615
+e81a 1 346 4615
+e81b 5 339 4615
+e820 1 346 4615
+e821 5 336 4615
+e826 1 346 4615
+e827 5 333 4615
+e82c 1 346 4615
+FUNC e82d 55 0 setSBCS
+e82d 4 363 4615
+e831 14 368 4615
+e845 3 371 4615
+e848 3 374 4615
+e84b 3 376 4615
+e84e 8 379 4615
+e856 a 381 4615
+e860 9 382 4615
+e869 b 384 4615
+e874 d 385 4615
+e881 1 386 4615
+FUNC e882 18a 0 setSBUpLow
+e882 1d 402 4615
+e89f f 412 4615
+e8ae d 415 4615
+e8bb c 416 4615
+e8c7 e 420 4615
+e8d5 3 419 4615
+e8d8 28 421 4615
+e900 1d 427 4615
+e91d 23 432 4615
+e940 25 437 4615
+e965 2 442 4615
+e967 a 443 4615
+e971 5 445 4615
+e976 9 446 4615
+e97f 5 448 4615
+e984 5 450 4615
+e989 e 451 4615
+e997 2 453 4615
+e999 8 454 4615
+e9a1 5 442 4615
+e9a6 8 456 4615
+e9ae 2c 472 4615
+e9da 5 466 4615
+e9df 5 468 4615
+e9e4 7 469 4615
+e9eb 2 471 4615
+e9ed 3 472 4615
+e9f0 5 460 4615
+e9f5 17 474 4615
+FUNC ea0c a4 0 __updatetmbcinfo
+ea0c c 496 4615
+ea18 7 499 4615
+ea1f 10 500 4615
+ea2f 3 533 4615
+ea32 4 536 4615
+ea36 8 538 4615
+ea3e 2 541 4615
+ea40 6 542 4615
+ea46 8 501 4615
+ea4e 4 503 4615
+ea52 e 506 4615
+ea60 17 512 4615
+ea77 7 517 4615
+ea7e 11 524 4615
+ea8f 7 525 4615
+ea96 11 528 4615
+eaa7 9 530 4615
+FUNC eab0 7a 0 getSystemCP
+eab0 7 282 4615
+eab7 b 284 4615
+eac2 b 289 4615
+eacd a 291 4615
+ead7 14 292 4615
+eaeb 5 295 4615
+eaf0 a 297 4615
+eafa 8 298 4615
+eb02 5 302 4615
+eb07 12 305 4615
+eb19 f 308 4615
+eb28 2 309 4615
+FUNC eb2a 1d9 8 _setmbcp_nolock
+eb2a 15 686 4615
+eb3f b 693 4615
+eb4a 9 696 4615
+eb53 7 698 4615
+eb5a 7 699 4615
+eb61 3 703 4615
+eb64 2 705 4615
+eb66 19 708 4615
+eb7f 2a 743 4615
+eba9 13 751 4615
+ebbc f 756 4615
+ebcb 15 761 4615
+ebe0 17 764 4615
+ebf7 c 766 4615
+ec03 f 712 4615
+ec12 15 715 4615
+ec27 9 720 4615
+ec30 8 723 4615
+ec38 12 724 4615
+ec4a 9 723 4615
+ec53 5 720 4615
+ec58 12 715 4615
+ec6a 20 731 4615
+ec8a d 733 4615
+ec97 7 736 4615
+ec9e 5 737 4615
+eca3 6 767 4615
+eca9 10 766 4615
+ecb9 8 771 4615
+ecc1 7 772 4615
+ecc8 b 775 4615
+ecd3 3 778 4615
+ecd6 2 780 4615
+ecd8 3 782 4615
+ecdb 8 785 4615
+ece3 2 789 4615
+ece5 6 794 4615
+eceb 6 797 4615
+ecf1 3 746 4615
+ecf4 f 802 4615
+FUNC ed03 3c 0 _getmbcp
+ed03 6 819 4615
+ed09 a 821 4615
+ed13 9 822 4615
+ed1c 10 823 4615
+ed2c 2 826 4615
+ed2e f 825 4615
+ed3d 2 826 4615
+FUNC ed3f 19a 4 _setmbcp
+ed3f c 574 4615
+ed4b 4 575 4615
+ed4f a 579 4615
+ed59 5 581 4615
+ed5e 3 582 4615
+ed61 b 585 4615
+ed6c 9 587 4615
+ed75 d 593 4615
+ed82 8 595 4615
+ed8a c 597 4615
+ed96 3 607 4615
+ed99 16 612 4615
+edaf 1a 614 4615
+edc9 7 615 4615
+edd0 3 619 4615
+edd3 9 620 4615
+eddc 17 622 4615
+edf3 8 624 4615
+edfb 4 625 4615
+edff 8 630 4615
+ee07 8 631 4615
+ee0f 8 632 4615
+ee17 a 633 4615
+ee21 d 634 4615
+ee2e 3 633 4615
+ee31 c 635 4615
+ee3d a 636 4615
+ee47 3 635 4615
+ee4a c 637 4615
+ee56 d 638 4615
+ee63 3 637 4615
+ee66 1c 640 4615
+ee82 7 641 4615
+ee89 6 645 4615
+ee8f 3 646 4615
+ee92 e 648 4615
+eea0 9 650 4615
+eea9 2 653 4615
+eeab 5 654 4615
+eeb0 8 660 4615
+eeb8 7 661 4615
+eebf b 662 4615
+eeca 2 668 4615
+eecc 4 673 4615
+eed0 3 682 4615
+eed3 6 683 4615
+FUNC eed9 1e 0 __initmbctable
+eed9 0 843 4615
+eed9 9 853 4615
+eee2 8 854 4615
+eeea a 855 4615
+eef4 2 860 4615
+eef6 1 861 4615
+FUNC eef7 6 0 ___setlc_active_func
+eef7 0 90 2995
+eef7 5 91 2995
+eefc 1 92 2995
+FUNC eefd 6 0 ___unguarded_readlc_active_add_func
+eefd 0 104 2995
+eefd 5 105 2995
+ef02 1 106 2995
+FUNC ef03 140 4 __freetlocinfo
+ef03 3 144 2995
+ef06 26 152 2995
+ef2c e 155 2995
+ef3a 6 157 2995
+ef40 d 158 2995
+ef4d e 162 2995
+ef5b 6 164 2995
+ef61 d 165 2995
+ef6e b 168 2995
+ef79 d 169 2995
+ef86 e 176 2995
+ef94 11 178 2995
+efa5 13 179 2995
+efb8 e 180 2995
+efc6 e 181 2995
+efd4 17 188 2995
+efeb 6 190 2995
+eff1 9 191 2995
+effa 6 194 2995
+f000 13 197 2995
+f013 7 199 2995
+f01a 10 205 2995
+f02a d 207 2995
+f037 b 214 2995
+f042 1 215 2995
+FUNC f043 86 4 __addlocaleref
+f043 3 225 2995
+f046 e 227 2995
+f054 a 228 2995
+f05e 3 229 2995
+f061 a 231 2995
+f06b 3 232 2995
+f06e a 234 2995
+f078 3 235 2995
+f07b a 237 2995
+f085 3 238 2995
+f088 6 240 2995
+f08e f 242 2995
+f09d 3 243 2995
+f0a0 d 245 2995
+f0ad 9 246 2995
+f0b6 12 248 2995
+f0c8 1 249 2995
+FUNC f0c9 8c 4 __removelocaleref
+f0c9 1 259 2995
+f0ca b 261 2995
+f0d5 9 263 2995
+f0de a 265 2995
+f0e8 3 266 2995
+f0eb a 268 2995
+f0f5 3 269 2995
+f0f8 a 271 2995
+f102 3 272 2995
+f105 a 274 2995
+f10f 3 275 2995
+f112 6 277 2995
+f118 f 279 2995
+f127 3 280 2995
+f12a d 282 2995
+f137 9 283 2995
+f140 11 285 2995
+f151 3 287 2995
+f154 1 288 2995
+FUNC f155 24 0 _copytlocinfo_nolock
+f155 3 302 2995
+f158 d 303 2995
+f165 7 304 2995
+f16c 3 305 2995
+f16f 9 306 2995
+f178 1 308 2995
+FUNC f179 3e 0 _updatetlocinfoEx_nolock
+f179 0 321 2995
+f179 9 324 2995
+f182 2 326 2995
+f184 4 327 2995
+f188 8 334 2995
+f190 5 339 2995
+f195 6 341 2995
+f19b e 350 2995
+f1a9 7 351 2995
+f1b0 3 355 2995
+f1b3 1 356 2995
+f1b4 2 325 2995
+f1b6 1 356 2995
+FUNC f1b7 76 0 __updatetlocinfo
+f1b7 c 382 2995
+f1c3 7 384 2995
+f1ca 10 386 2995
+f1da 8 397 2995
+f1e2 4 399 2995
+f1e6 8 401 2995
+f1ee 2 404 2995
+f1f0 6 405 2995
+f1f6 8 387 2995
+f1fe 4 388 2995
+f202 11 390 2995
+f213 e 392 2995
+f221 8 394 2995
+f229 4 395 2995
+FUNC f22d 66 4 _configthreadlocale
+f22d 2 420 2995
+f22f 5 434 2995
+f234 10 435 2995
+f244 19 437 2995
+f25d 1d 456 2995
+f27a 3 444 2995
+f27d 2 445 2995
+f27f 6 440 2995
+f285 2 441 2995
+f287 7 452 2995
+f28e 4 460 2995
+f292 1 462 2995
+FUNC f293 53 0 sync_legacy_variables_lk
+f293 0 489 2995
+f293 e 490 2995
+f2a1 9 491 2995
+f2aa c 492 2995
+f2b6 c 493 2995
+f2c2 c 494 2995
+f2ce c 495 2995
+f2da b 496 2995
+f2e5 1 497 2995
+FUNC f2e6 96 4 _free_locale
+f2e6 c 517 2995
+f2f2 9 518 2995
+f2fb 1c 522 2995
+f317 7 524 2995
+f31e 4 526 2995
+f322 8 534 2995
+f32a 3 535 2995
+f32d 8 537 2995
+f335 11 540 2995
+f346 7 541 2995
+f34d c 543 2995
+f359 7 552 2995
+f360 3 553 2995
+f363 7 554 2995
+f36a 6 556 2995
+f370 3 543 2995
+f373 9 545 2995
+FUNC f37c 5 4 __free_locale
+f37c 0 562 2995
+f37c 5 563 2995
+FUNC f381 88 0 _get_current_locale
+f381 c 687 2995
+f38d 7 689 2995
+f394 14 691 2995
+f3a8 b 693 2995
+f3b3 4 694 2995
+f3b7 5 697 2995
+f3bc 5 698 2995
+f3c1 5 706 2995
+f3c6 6 707 2995
+f3cc 8 708 2995
+f3d4 4 709 2995
+f3d8 8 710 2995
+f3e0 c 712 2995
+f3ec 9 715 2995
+f3f5 2 717 2995
+f3f7 6 718 2995
+f3fd 3 712 2995
+f400 9 713 2995
+FUNC f409 5 0 __get_current_locale
+f409 0 722 2995
+f409 5 723 2995
+FUNC f40e 3 4 __init_dummy
+f40e 0 1283 2995
+f40e 2 1284 2995
+f410 1 1285 2995
+FUNC f411 3e c _strcats
+f411 2 1288 2995
+f413 f 1294 2995
+f422 26 1296 2995
+f448 6 1294 2995
+f44e 1 1299 2995
+FUNC f44f 129 8 __lc_strtolc
+f44f 6 1302 2995
+f455 11 1307 2995
+f466 c 1309 2995
+f472 7 1310 2995
+f479 b 1313 2995
+f484 25 1315 2995
+f4a9 6 1317 2995
+f4af 2 1318 2995
+f4b1 15 1323 2995
+f4c6 1d 1328 2995
+f4e3 9 1329 2995
+f4ec 10 1331 2995
+f4fc c 1332 2995
+f508 14 1334 2995
+f51c 28 1335 2995
+f544 9 1340 2995
+f54d b 1348 2995
+f558 18 1350 2995
+f570 6 1338 2995
+f576 2 1353 2995
+FUNC f578 6b c __lc_lctostr
+f578 5 1356 2995
+f57d 25 1357 2995
+f5a2 7 1358 2995
+f5a9 16 1359 2995
+f5bf c 1360 2995
+f5cb 16 1361 2995
+f5e1 2 1362 2995
+FUNC f5e3 171 0 _setlocale_get_all
+f5e3 4 1124 2995
+f5e7 3 1126 2995
+f5ea 1d 1134 2995
+f607 3 1137 2995
+f60a 3 1139 2995
+f60d 2 1140 2995
+f60f 2f 1143 2995
+f63e 26 1146 2995
+f664 10 1147 2995
+f674 5 1148 2995
+f679 4 1141 2995
+f67d 2f 1143 2995
+f6ac a 1144 2995
+f6b6 8 1152 2995
+f6be 14 1154 2995
+f6d2 9 1156 2995
+f6db e 1159 2995
+f6e9 9 1161 2995
+f6f2 7 1165 2995
+f6f9 7 1166 2995
+f700 9 1168 2995
+f709 15 1170 2995
+f71e 9 1172 2995
+f727 e 1175 2995
+f735 9 1177 2995
+f73e 12 1183 2995
+f750 4 1187 2995
+FUNC f754 1d4 18 _expandlocale
+f754 15 1198 2995
+f769 41 1230 2995
+f7aa 14 1211 2995
+f7be b 1216 2995
+f7c9 26 1219 2995
+f7ef 4 1220 2995
+f7f3 3 1222 2995
+f7f6 4 1223 2995
+f7fa 4 1224 2995
+f7fe 7 1226 2995
+f805 2 1228 2995
+f807 8 1230 2995
+f80f 6 1234 2995
+f815 2f 1236 2995
+f844 4 1241 2995
+f848 e 1243 2995
+f856 6 1244 2995
+f85c 10 1246 2995
+f86c 6 1247 2995
+f872 9 1251 2995
+f87b 10 1253 2995
+f88b a 1255 2995
+f895 2 1260 2995
+f897 8 1263 2995
+f89f 26 1267 2995
+f8c5 5 1271 2995
+f8ca e 1272 2995
+f8d8 5 1273 2995
+f8dd 10 1274 2995
+f8ed 22 1276 2995
+f90f 5 1277 2995
+f914 2 1212 2995
+f916 12 1278 2995
+FUNC f928 2f6 4 _setlocale_set_cat
+f928 19 980 2995
+f941 5 993 2995
+f946 2f 998 2995
+f975 7 1000 2995
+f97c 19 1002 2995
+f995 6 1004 2995
+f99b c 1007 2995
+f9a7 16 1008 2995
+f9bd 2 1010 2995
+f9bf 3 1013 2995
+f9c2 d 1014 2995
+f9cf 2c 1015 2995
+f9fb 3 1016 2995
+f9fe 39 1019 2995
+fa37 6 1020 2995
+fa3d 15 1021 2995
+fa52 17 1022 2995
+fa69 a 1029 2995
+fa73 6 1031 2995
+fa79 18 1037 2995
+fa91 7 1039 2995
+fa98 8 1053 2995
+faa0 14 1054 2995
+fab4 18 1055 2995
+facc 2 1039 2995
+face a 1044 2995
+fad8 d 1046 2995
+fae5 b 1047 2995
+faf0 9 1058 2995
+faf9 26 1066 2995
+fb1f 2 1069 2995
+fb21 10 1071 2995
+fb31 22 1072 2995
+fb53 2 1081 2995
+fb55 4 1082 2995
+fb59 5 1083 2995
+fb5e 9 1085 2995
+fb67 6 1088 2995
+fb6d 9 1089 2995
+fb76 12 1091 2995
+fb88 6 1094 2995
+fb8e e 1095 2995
+fb9c f 1096 2995
+fbab 9 1097 2995
+fbb4 5 1099 2995
+fbb9 24 1106 2995
+fbdd 7 1109 2995
+fbe4 8 1110 2995
+fbec 6 1111 2995
+fbf2 18 1116 2995
+fc0a 3 1118 2995
+fc0d 11 1119 2995
+FUNC fc1e 1ce 4 _setlocale_nolock
+fc1e 1a 873 2995
+fc38 7 877 2995
+fc3f 5 904 2995
+fc44 17 880 2995
+fc5b 5 882 2995
+fc60 12 888 2995
+fc72 1d 890 2995
+fc8f 2 894 2995
+fc91 d 898 2995
+fc9e 1e 900 2995
+fcbc 11 904 2995
+fccd 1d 907 2995
+fcea e 904 2995
+fcf8 1b 913 2995
+fd13 6 916 2995
+fd19 24 918 2995
+fd3d 18 922 2995
+fd55 3 923 2995
+fd58 7 925 2995
+fd5f 1 926 2995
+fd60 9 928 2995
+fd69 c 930 2995
+fd75 4 901 2995
+fd79 19 935 2995
+fd92 3 937 2995
+fd95 4 939 2995
+fd99 11 941 2995
+fdaa c 943 2995
+fdb6 2 947 2995
+fdb8 3 949 2995
+fdbb 2 952 2995
+fdbd 3 953 2995
+fdc0 9 937 2995
+fdc9 5 956 2995
+fdce 2 961 2995
+fdd0 3 962 2995
+fdd3 2 965 2995
+fdd5 5 966 2995
+fdda 12 972 2995
+FUNC fdec f3 8 _create_locale
+fdec 0 605 2995
+fdec 10 609 2995
+fdfc 13 612 2995
+fe0f b 614 2995
+fe1a 4 610 2995
+fe1e c 658 2995
+fe2a 8 617 2995
+fe32 7 619 2995
+fe39 2 621 2995
+fe3b 14 623 2995
+fe4f 7 625 2995
+fe56 7 626 2995
+fe5d 2 628 2995
+fe5f c 630 2995
+fe6b 14 632 2995
+fe7f 7 634 2995
+fe86 7 635 2995
+fe8d 9 637 2995
+fe96 2 640 2995
+fe98 13 642 2995
+feab 8 644 2995
+feb3 7 645 2995
+feba 7 646 2995
+fec1 9 647 2995
+feca 2 648 2995
+fecc 2 650 2995
+fece 5 652 2995
+fed3 5 653 2995
+fed8 7 657 2995
+FUNC fedf 5 8 __create_locale
+fedf 0 665 2995
+fedf 5 666 2995
+FUNC fee4 170 8 setlocale
+fee4 c 791 2995
+fef0 5 792 2995
+fef5 25 797 2995
+ff1a a 799 2995
+ff24 5 801 2995
+ff29 4 806 2995
+ff2d 3 807 2995
+ff30 1b 808 2995
+ff4b 8 818 2995
+ff53 7 819 2995
+ff5a a 820 2995
+ff64 8 822 2995
+ff6c 19 826 2995
+ff85 18 834 2995
+ff9d a 836 2995
+ffa7 8 839 2995
+ffaf 7 840 2995
+ffb6 a 841 2995
+ffc0 7 842 2995
+ffc7 f 846 2995
+ffd6 c 847 2995
+ffe2 18 849 2995
+fffa 5 850 2995
+ffff b 852 2995
+1000a 8 822 2995
+10012 9 823 2995
+1001b 3 852 2995
+1001e 9 853 2995
+10027 2 855 2995
+10029 6 856 2995
+1002f 8 857 2995
+10037 c 860 2995
+10043 3 865 2995
+10046 6 866 2995
+1004c 3 860 2995
+1004f 5 862 2995
+FUNC 10054 15f 14 _wctomb_s_l
+10054 8 56 6128
+1005c 11 57 6128
+1006d 7 60 6128
+10074 2 62 6128
+10076 4 64 6128
+1007a 7 67 6128
+10081 3 69 6128
+10084 23 74 6128
+100a7 b 77 6128
+100b2 c 79 6128
+100be a 81 6128
+100c8 8 83 6128
+100d0 b 85 6128
+100db b 125 6128
+100e6 13 126 6128
+100f9 5 136 6128
+100fe 4 91 6128
+10102 2c 93 6128
+1012e 2 94 6128
+10130 7 96 6128
+10137 6 98 6128
+1013d 15 100 6128
+10152 27 115 6128
+10179 7 129 6128
+10180 2 131 6128
+10182 2 133 6128
+10184 f 117 6128
+10193 10 119 6128
+101a3 b 121 6128
+101ae 5 123 6128
+FUNC 101b3 1b 10 wctomb_s
+101b3 0 144 6128
+101b3 1a 145 6128
+101cd 1 146 6128
+FUNC 101ce 4f c _wctomb_l
+101ce 6 178 6128
+101d4 f 181 6128
+101e3 1f 183 6128
+10202 19 184 6128
+1021b 2 185 6128
+FUNC 1021d 30 8 wctomb
+1021d 4 191 6128
+10221 4 192 6128
+10225 1a 195 6128
+1023f 7 196 6128
+10246 2 197 6128
+10248 3 196 6128
+1024b 2 197 6128
+FUNC 1024d 36 8 _isleadbyte_l
+1024d 6 55 6490
+10253 b 56 6490
+1025e 23 57 6490
+10281 2 58 6490
+FUNC 10283 e 4 isleadbyte
+10283 0 63 6490
+10283 d 64 6490
+10290 1 65 6490
+FUNC 10291 16 8 _iswalpha_l
+10291 0 71 6490
+10291 15 72 6490
+102a6 1 73 6490
+FUNC 102a7 11 4 iswalpha
+102a7 0 78 6490
+102a7 10 79 6490
+102b7 1 80 6490
+FUNC 102b8 13 8 _iswupper_l
+102b8 0 86 6490
+102b8 12 87 6490
+102ca 1 88 6490
+FUNC 102cb e 4 iswupper
+102cb 0 93 6490
+102cb d 94 6490
+102d8 1 95 6490
+FUNC 102d9 13 8 _iswlower_l
+102d9 0 101 6490
+102d9 12 102 6490
+102eb 1 103 6490
+FUNC 102ec e 4 iswlower
+102ec 0 108 6490
+102ec d 109 6490
+102f9 1 110 6490
+FUNC 102fa 13 8 _iswdigit_l
+102fa 0 116 6490
+102fa 12 117 6490
+1030c 1 118 6490
+FUNC 1030d e 4 iswdigit
+1030d 0 123 6490
+1030d d 124 6490
+1031a 1 125 6490
+FUNC 1031b 16 8 _iswxdigit_l
+1031b 0 131 6490
+1031b 15 132 6490
+10330 1 133 6490
+FUNC 10331 11 4 iswxdigit
+10331 0 138 6490
+10331 10 139 6490
+10341 1 140 6490
+FUNC 10342 13 8 _iswspace_l
+10342 0 146 6490
+10342 12 147 6490
+10354 1 148 6490
+FUNC 10355 e 4 iswspace
+10355 0 153 6490
+10355 d 154 6490
+10362 1 155 6490
+FUNC 10363 13 8 _iswpunct_l
+10363 0 161 6490
+10363 12 162 6490
+10375 1 163 6490
+FUNC 10376 e 4 iswpunct
+10376 0 168 6490
+10376 d 169 6490
+10383 1 170 6490
+FUNC 10384 16 8 _iswalnum_l
+10384 0 176 6490
+10384 15 177 6490
+10399 1 178 6490
+FUNC 1039a 11 4 iswalnum
+1039a 0 183 6490
+1039a 10 184 6490
+103aa 1 185 6490
+FUNC 103ab 16 8 _iswprint_l
+103ab 0 191 6490
+103ab 15 192 6490
+103c0 1 193 6490
+FUNC 103c1 11 4 iswprint
+103c1 0 198 6490
+103c1 10 199 6490
+103d1 1 200 6490
+FUNC 103d2 16 8 _iswgraph_l
+103d2 0 206 6490
+103d2 15 207 6490
+103e7 1 208 6490
+FUNC 103e8 11 4 iswgraph
+103e8 0 213 6490
+103e8 10 214 6490
+103f8 1 215 6490
+FUNC 103f9 13 8 _iswcntrl_l
+103f9 0 221 6490
+103f9 12 222 6490
+1040b 1 223 6490
+FUNC 1040c e 4 iswcntrl
+1040c 0 228 6490
+1040c d 229 6490
+10419 1 230 6490
+FUNC 1041a c 4 iswascii
+1041a 0 235 6490
+1041a b 236 6490
+10425 1 237 6490
+FUNC 10426 26 8 _iswcsym_l
+10426 0 243 6490
+10426 21 244 6490
+10447 1 245 6490
+10448 3 244 6490
+1044b 1 245 6490
+FUNC 1044c 21 4 __iswcsym
+1044c 0 250 6490
+1044c 1c 251 6490
+10468 1 252 6490
+10469 3 251 6490
+1046c 1 252 6490
+FUNC 1046d 26 8 _iswcsymf_l
+1046d 0 258 6490
+1046d 21 259 6490
+1048e 1 260 6490
+1048f 3 259 6490
+10492 1 260 6490
+FUNC 10493 21 4 __iswcsymf
+10493 0 265 6490
+10493 1c 266 6490
+104af 1 267 6490
+104b0 3 266 6490
+104b3 1 267 6490
+FUNC 104c0 95 0 _aulldvrm
+104c0 0 45 5113
+104c0 1 47 5113
+104c1 4 79 5113
+104c5 2 80 5113
+104c7 2 81 5113
+104c9 4 82 5113
+104cd 4 83 5113
+104d1 2 84 5113
+104d3 2 85 5113
+104d5 2 86 5113
+104d7 4 87 5113
+104db 2 88 5113
+104dd 2 89 5113
+104df 2 94 5113
+104e1 4 95 5113
+104e5 2 96 5113
+104e7 2 97 5113
+104e9 4 98 5113
+104ed 2 99 5113
+104ef 2 100 5113
+104f1 2 107 5113
+104f3 4 108 5113
+104f7 4 109 5113
+104fb 4 110 5113
+104ff 2 112 5113
+10501 2 113 5113
+10503 2 114 5113
+10505 2 115 5113
+10507 2 116 5113
+10509 2 117 5113
+1050b 2 118 5113
+1050d 2 119 5113
+1050f 4 128 5113
+10513 2 129 5113
+10515 4 130 5113
+10519 2 131 5113
+1051b 2 132 5113
+1051d 2 133 5113
+1051f 4 141 5113
+10523 2 142 5113
+10525 2 143 5113
+10527 4 144 5113
+1052b 2 145 5113
+1052d 1 147 5113
+1052e 4 148 5113
+10532 4 149 5113
+10536 2 151 5113
+10538 4 160 5113
+1053c 4 161 5113
+10540 2 162 5113
+10542 2 163 5113
+10544 3 164 5113
+10547 2 169 5113
+10549 2 170 5113
+1054b 2 171 5113
+1054d 2 172 5113
+1054f 2 173 5113
+10551 1 179 5113
+10552 3 181 5113
+FUNC 10558 90 0 _local_unwind4
+FUNC 105e8 46 0 _unwind_handler4
+FUNC 1062e 1c 4 _seh_longjmp_unwind4
+FUNC 1064a 17 0 _EH4_CallFilterFunc
+FUNC 10661 19 0 _EH4_TransferToHandler
+FUNC 1067a 1a 0 _EH4_GlobalUnwind
+FUNC 10694 17 8 _EH4_LocalUnwind
+FUNC 106ab 33 0 write_char
+106ab 0 2433 1218
+106ab a 2434 1218
+106b5 2 2437 1218
+106b7 21 2442 1218
+106d8 2 2444 1218
+106da 1 2447 1218
+106db 2 2446 1218
+106dd 1 2447 1218
+FUNC 106de 24 c write_multi_char
+106de 6 2498 1218
+106e4 2 2501 1218
+106e6 e 2500 1218
+106f4 5 2501 1218
+106f9 7 2499 1218
+10700 2 2504 1218
+FUNC 10702 4a 4 write_string
+10702 0 2563 1218
+10702 12 2564 1218
+10714 6 2566 1218
+1071a 2 2567 1218
+1071c e 2570 1218
+1072a 5 2571 1218
+1072f a 2573 1218
+10739 9 2574 1218
+10742 9 2569 1218
+1074b 1 2579 1218
+FUNC 1074c 9b0 10 _output_s_l
+1074c 1b 975 1218
+10767 45 1036 1218
+107ac 2d 1031 1218
+107d9 b1 1033 1218
+1088a 8 1036 1218
+10892 28 1073 1218
+108ba 17 1078 1218
+108d1 e 1079 1218
+108df 11 1124 1218
+108f0 12 1131 1218
+10902 2 1171 1218
+10904 13 1173 1218
+10917 3 1174 1218
+1091a 5 1175 1218
+1091f 1e 1179 1218
+1093d 3 1193 1218
+10940 5 1194 1218
+10945 4 1181 1218
+10949 5 1182 1218
+1094e 4 1184 1218
+10952 5 1185 1218
+10957 7 1190 1218
+1095e 5 1191 1218
+10963 4 1187 1218
+10967 5 1196 1218
+1096c 5 1200 1218
+10971 9 1206 1218
+1097a b 1233 1218
+10985 4 1235 1218
+10989 3 1236 1218
+1098c 5 1239 1218
+10991 10 1241 1218
+109a1 5 1243 1218
+109a6 4 1248 1218
+109aa 5 1249 1218
+109af 5 1253 1218
+109b4 9 1259 1218
+109bd b 1284 1218
+109c8 4 1285 1218
+109cc 5 1287 1218
+109d1 10 1289 1218
+109e1 5 1291 1218
+109e6 18 1295 1218
+109fe 7 1362 1218
+10a05 5 1363 1218
+10a0a 5 1301 1218
+10a0f 1 1303 1218
+10a10 a 1304 1218
+10a1a 5 1306 1218
+10a1f 4 1308 1218
+10a23 5 1310 1218
+10a28 4 1358 1218
+10a2c 5 1359 1218
+10a31 c 1322 1218
+10a3d 2 1324 1218
+10a3f f 1325 1218
+10a4e a 1327 1218
+10a58 2 1329 1218
+10a5a a 1330 1218
+10a64 5 1332 1218
+10a69 30 1337 1218
+10a99 4 1352 1218
+10a9d 4 1154 1218
+10aa1 10 1158 1218
+10ab1 11 1160 1218
+10ac2 3 1161 1218
+10ac5 b 1163 1218
+10ad0 b 1166 1218
+10adb 5 1167 1218
+10ae0 32 1378 1218
+10b12 d 1716 1218
+10b1f 4 1724 1218
+10b23 18 1749 1218
+10b3b c 1750 1218
+10b47 8 1381 1218
+10b4f 9 1385 1218
+10b58 8 1561 1218
+10b60 7 1562 1218
+10b67 d 1584 1218
+10b74 3 1589 1218
+10b77 15 1635 1218
+10b8c 4 1636 1218
+10b90 8 1637 1218
+10b98 f 1639 1218
+10ba7 1d 1378 1218
+10bc4 12 1448 1218
+10bd6 16 1467 1218
+10bec 4 1470 1218
+10bf0 7 1471 1218
+10bf7 2 1472 1218
+10bf9 6 1499 1218
+10bff 7 1500 1218
+10c06 6 1503 1218
+10c0c 5 1506 1218
+10c11 5 1523 1218
+10c16 e 1541 1218
+10c24 6 1546 1218
+10c2a d 1548 1218
+10c37 7 1549 1218
+10c3e 5 1550 1218
+10c43 4 1551 1218
+10c47 5 1553 1218
+10c4c 8 1543 1218
+10c54 7 1544 1218
+10c5b 5 1557 1218
+10c60 34 1378 1218
+10c94 9 1908 1218
+10c9d 9 1910 1218
+10ca6 8 1668 1218
+10cae d 1688 1218
+10cbb 6 1702 1218
+10cc1 7 1703 1218
+10cc8 2 1704 1218
+10cca 5 1706 1218
+10ccf 7 1708 1218
+10cd6 5 1710 1218
+10cdb 4 1864 1218
+10cdf 7 1869 1218
+10ce6 c 1933 1218
+10cf2 8 1939 1218
+10cfa 5 1958 1218
+10cff 7 1751 1218
+10d06 9 1752 1218
+10d0f 5 1753 1218
+10d14 3 1754 1218
+10d17 9 1756 1218
+10d20 f 1759 1218
+10d2f 2 1760 1218
+10d31 15 1765 1218
+10d46 8 1767 1218
+10d4e e 1809 1218
+10d5c 27 1828 1218
+10d83 14 1838 1218
+10d97 15 1840 1218
+10dac a 1844 1218
+10db6 15 1846 1218
+10dcb 5 1852 1218
+10dd0 7 1853 1218
+10dd7 4 1854 1218
+10ddb 1 1857 1218
+10ddc 5 1859 1218
+10de1 3 1877 1218
+10de4 3 1887 1218
+10de7 2 1888 1218
+10de9 1a 1378 1218
+10e03 7 1892 1218
+10e0a 11 1897 1218
+10e1b c 1900 1218
+10e27 7 1901 1218
+10e2e 5 1903 1218
+10e33 5 1961 1218
+10e38 6 1987 1218
+10e3e 14 2026 1218
+10e52 2 2045 1218
+10e54 5 2051 1218
+10e59 2 2071 1218
+10e5b 3 2074 1218
+10e5e 6 2080 1218
+10e64 2 2099 1218
+10e66 5 2105 1218
+10e6b f 2128 1218
+10e7a 7 2129 1218
+10e81 7 2130 1218
+10e88 c 2136 1218
+10e94 2 2142 1218
+10e96 6 2148 1218
+10e9c 7 2149 1218
+10ea3 2 2150 1218
+10ea5 4 2151 1218
+10ea9 a 2152 1218
+10eb3 3 2153 1218
+10eb6 6 2157 1218
+10ebc 3 2158 1218
+10ebf 6 2163 1218
+10ec5 10 2165 1218
+10ed5 10 2166 1218
+10ee5 c 2168 1218
+10ef1 3 2170 1218
+10ef4 3 2172 1218
+10ef7 2 2173 1218
+10ef9 8 2175 1218
+10f01 1 2176 1218
+10f02 19 2180 1218
+10f1b 9 2181 1218
+10f24 1 2182 1218
+10f25 2 2185 1218
+10f27 7 1640 1218
+10f2e 2 1641 1218
+10f30 4 1640 1218
+10f34 5 1642 1218
+10f39 2 1644 1218
+10f3b 4 1645 1218
+10f3f 8 1646 1218
+10f47 5 1647 1218
+10f4c 6 1648 1218
+10f52 1 1649 1218
+10f53 4 1648 1218
+10f57 6 1650 1218
+10f5d a 2201 1218
+10f67 7 2204 1218
+10f6e 6 2205 1218
+10f74 4 2207 1218
+10f78 2 2208 1218
+10f7a 4 2210 1218
+10f7e 4 2212 1218
+10f82 2 2213 1218
+10f84 4 2215 1218
+10f88 4 2217 1218
+10f8c 7 2218 1218
+10f93 9 2224 1218
+10f9c 6 2228 1218
+10fa2 11 2230 1218
+10fb3 11 2234 1218
+10fc4 d 2236 1218
+10fd1 f 2238 1218
+10fe0 d 2243 1218
+10fed 3 2249 1218
+10ff0 3 2250 1218
+10ff3 1e 2252 1218
+11011 9 2253 1218
+1101a 18 2257 1218
+11032 2 1690 1218
+11034 4 2254 1218
+11038 2 2259 1218
+1103a d 2260 1218
+11047 c 2290 1218
+11053 f 2292 1218
+11062 6 2297 1218
+11068 8 2298 1218
+11070 1b 2299 1218
+1108b 17 1125 1218
+110a2 2 1690 1218
+110a4 f 2310 1218
+110b3 10 2376 1218
+110c3 39 2377 1218
+FUNC 110fc 129 10 _validate_param_reuseA
+110fc 3 606 1271
+110ff 1c 610 1271
+1111b f 617 1271
+1112a 11 618 1271
+1113b 10 620 1271
+1114b 36 629 1271
+11181 46 632 1271
+111c7 2 633 1271
+111c9 17 639 1271
+111e0 c 645 1271
+111ec 2c 626 1271
+11218 b 614 1271
+11223 2 646 1271
+FUNC 11225 33 0 write_char
+11225 0 2433 1271
+11225 a 2434 1271
+1122f 2 2437 1271
+11231 21 2442 1271
+11252 2 2444 1271
+11254 1 2447 1271
+11255 2 2446 1271
+11257 1 2447 1271
+FUNC 11258 24 c write_multi_char
+11258 6 2498 1271
+1125e 2 2501 1271
+11260 e 2500 1271
+1126e 5 2501 1271
+11273 7 2499 1271
+1127a 2 2504 1271
+FUNC 1127c 4a 4 write_string
+1127c 0 2563 1271
+1127c 12 2564 1271
+1128e 6 2566 1271
+11294 2 2567 1271
+11296 e 2570 1271
+112a4 5 2571 1271
+112a9 a 2573 1271
+112b3 9 2574 1271
+112bc 9 2569 1271
+112c5 1 2579 1271
+FUNC 112c6 10 4 get_crtdouble_arg
+112c6 0 2684 1271
+112c6 f 2685 1271
+112d5 1 2686 1271
+FUNC 112d6 f88 10 _output_p_l
+112d6 1b 975 1271
+112f1 15 986 1271
+11306 b 1007 1271
+11311 2b 2172 1271
+1133c 2c 1031 1271
+11368 9b 1033 1271
+11403 8 1036 1271
+1140b 3 1038 1271
+1140e 3 1041 1271
+11411 3 1043 1271
+11414 11 1046 1271
+11425 7 1061 1271
+1142c 4 1062 1271
+11430 7 1069 1271
+11437 32 1073 1271
+11469 19 1078 1271
+11482 e 1079 1271
+11490 1a 1082 1271
+114aa 6 1084 1271
+114b0 1b 1087 1271
+114cb 5 1089 1271
+114d0 15 1091 1271
+114e5 3 1093 1271
+114e8 2 1095 1271
+114ea 6 1097 1271
+114f0 5 1101 1271
+114f5 c 1103 1271
+11501 7 1104 1271
+11508 e 1106 1271
+11516 1a 1109 1271
+11530 8 1112 1271
+11538 f 1131 1271
+11547 9 1120 1271
+11550 b 1131 1271
+1155b 21 1137 1271
+1157c 5 1145 1271
+11581 16 1173 1271
+11597 3 1174 1271
+1159a 5 1175 1271
+1159f 1f 1179 1271
+115be 7 1193 1271
+115c5 5 1194 1271
+115ca 7 1181 1271
+115d1 5 1182 1271
+115d6 6 1184 1271
+115dc 5 1185 1271
+115e1 a 1190 1271
+115eb 5 1191 1271
+115f0 7 1187 1271
+115f7 5 1196 1271
+115fc 9 1200 1271
+11605 5 1203 1271
+1160a a 1206 1271
+11614 2 1209 1271
+11616 c 1211 1271
+11622 7 1212 1271
+11629 b 1214 1271
+11634 1b 1216 1271
+1164f 8 1219 1271
+11657 12 1221 1271
+11669 9 1274 1271
+11672 5 1275 1271
+11677 c 1228 1271
+11683 b 1233 1271
+1168e 7 1235 1271
+11695 3 1236 1271
+11698 5 1239 1271
+1169d 10 1241 1271
+116ad 5 1243 1271
+116b2 3 1248 1271
+116b5 5 1249 1271
+116ba 5 1253 1271
+116bf 5 1256 1271
+116c4 a 1259 1271
+116ce 2 1262 1271
+116d0 c 1264 1271
+116dc 7 1265 1271
+116e3 f 1267 1271
+116f2 c 1280 1271
+116fe b 1284 1271
+11709 4 1285 1271
+1170d 5 1287 1271
+11712 1c 1274 1271
+1172e 10 1289 1271
+1173e 5 1291 1271
+11743 18 1295 1271
+1175b a 1362 1271
+11765 5 1363 1271
+1176a 5 1301 1271
+1176f 1 1303 1271
+11770 d 1304 1271
+1177d 5 1306 1271
+11782 7 1308 1271
+11789 5 1310 1271
+1178e 7 1358 1271
+11795 5 1359 1271
+1179a c 1322 1271
+117a6 2 1324 1271
+117a8 12 1325 1271
+117ba a 1327 1271
+117c4 2 1329 1271
+117c6 d 1330 1271
+117d3 5 1332 1271
+117d8 18 1337 1271
+117f0 3 1352 1271
+117f3 13 1158 1271
+11806 11 1160 1271
+11817 8 1161 1271
+1181f 8 1163 1271
+11827 b 1166 1271
+11832 5 1167 1271
+11837 a 1342 1271
+11841 5 1366 1271
+11846 39 1378 1271
+1187f 9 1716 1271
+11888 7 1724 1271
+1188f 12 1726 1271
+118a1 a 1728 1271
+118ab 27 1739 1271
+118d2 b 1381 1271
+118dd c 1385 1271
+118e9 b 1561 1271
+118f4 a 1562 1271
+118fe d 1584 1271
+1190b 9 1586 1271
+11914 a 1589 1271
+1191e 5 1592 1271
+11923 25 1378 1271
+11948 b 1442 1271
+11953 5 1445 1271
+11958 b 1448 1271
+11963 2 1451 1271
+11965 a 1453 1271
+1196f 27 1457 1271
+11996 5 1458 1271
+1199b a 1462 1271
+119a5 19 1467 1271
+119be 4 1470 1271
+119c2 3 1471 1271
+119c5 2 1472 1271
+119c7 5 1477 1271
+119cc b 1480 1271
+119d7 2 1483 1271
+119d9 a 1485 1271
+119e3 f 1489 1271
+119f2 a 1494 1271
+119fc 6 1499 1271
+11a02 3 1500 1271
+11a05 9 1503 1271
+11a0e 5 1506 1271
+11a13 5 1520 1271
+11a18 a 1523 1271
+11a22 2 1526 1271
+11a24 a 1528 1271
+11a2e 9 1532 1271
+11a37 6 1533 1271
+11a3d 9 1537 1271
+11a46 b 1541 1271
+11a51 9 1546 1271
+11a5a d 1548 1271
+11a67 3 1549 1271
+11a6a 5 1550 1271
+11a6f 3 1551 1271
+11a72 5 1553 1271
+11a77 8 1543 1271
+11a7f 7 1544 1271
+11a86 5 1557 1271
+11a8b 38 1378 1271
+11ac3 14 1908 1271
+11ad7 f 1910 1271
+11ae6 5 1665 1271
+11aeb a 1668 1271
+11af5 2 1671 1271
+11af7 a 1673 1271
+11b01 25 1677 1271
+11b26 5 1678 1271
+11b2b 9 1682 1271
+11b34 9 1688 1271
+11b3d 9 1702 1271
+11b46 7 1703 1271
+11b4d 2 1704 1271
+11b4f 5 1706 1271
+11b54 3 1708 1271
+11b57 5 1710 1271
+11b5c 7 1864 1271
+11b63 7 1869 1271
+11b6a f 1933 1271
+11b79 9 1936 1271
+11b82 e 1939 1271
+11b90 5 1942 1271
+11b95 1c 1739 1271
+11bb1 21 1109 1271
+11bd2 16 1749 1271
+11be8 9 1750 1271
+11bf1 7 1751 1271
+11bf8 3 1767 1271
+11bfb 5 1806 1271
+11c00 9 1809 1271
+11c09 2 1812 1271
+11c0b 5 1753 1271
+11c10 3 1754 1271
+11c13 a 1756 1271
+11c1d f 1759 1271
+11c2c 2 1760 1271
+11c2e 11 1765 1271
+11c3f a 1818 1271
+11c49 6 1821 1271
+11c4f 16 1822 1271
+11c65 26 1828 1271
+11c8b 16 1838 1271
+11ca1 17 1840 1271
+11cb8 a 1844 1271
+11cc2 17 1846 1271
+11cd9 8 1852 1271
+11ce1 a 1853 1271
+11ceb 3 1854 1271
+11cee 3 1857 1271
+11cf1 5 1859 1271
+11cf6 7 1877 1271
+11cfd 7 1887 1271
+11d04 2 1888 1271
+11d06 1a 1378 1271
+11d20 7 1892 1271
+11d27 14 1897 1271
+11d3b c 1900 1271
+11d47 7 1901 1271
+11d4e 5 1903 1271
+11d53 a 1944 1271
+11d5d 2c 1948 1271
+11d89 5 1949 1271
+11d8e 6 1961 1271
+11d94 3 1964 1271
+11d97 6 1970 1271
+11d9d a 1972 1271
+11da7 2c 1976 1271
+11dd3 5 1977 1271
+11dd8 c 1981 1271
+11de4 5 1987 1271
+11de9 4 2019 1271
+11ded 4 2020 1271
+11df1 5 2023 1271
+11df6 b 2026 1271
+11e01 5 2029 1271
+11e06 a 2031 1271
+11e10 f 2035 1271
+11e1f a 2040 1271
+11e29 2 2045 1271
+11e2b 5 2048 1271
+11e30 b 2051 1271
+11e3b 2 2054 1271
+11e3d a 2056 1271
+11e47 b 2060 1271
+11e52 a 2065 1271
+11e5c 2 2071 1271
+11e5e 4 2074 1271
+11e62 5 2077 1271
+11e67 a 2080 1271
+11e71 2 2083 1271
+11e73 a 2085 1271
+11e7d b 2089 1271
+11e88 a 2094 1271
+11e92 2 2099 1271
+11e94 5 2102 1271
+11e99 a 2105 1271
+11ea3 2 2108 1271
+11ea5 a 2110 1271
+11eaf 38 2114 1271
+11ee7 5 2115 1271
+11eec b 2119 1271
+11ef7 13 2128 1271
+11f0a 7 2129 1271
+11f11 a 2130 1271
+11f1b f 2136 1271
+11f2a 2 2142 1271
+11f2c 6 2148 1271
+11f32 7 2149 1271
+11f39 2 2150 1271
+11f3b 7 2151 1271
+11f42 a 2152 1271
+11f4c 3 2153 1271
+11f4f 6 2157 1271
+11f55 3 2158 1271
+11f58 6 2163 1271
+11f5e 10 2165 1271
+11f6e 10 2166 1271
+11f7e c 2168 1271
+11f8a 3 2170 1271
+11f8d 3 2172 1271
+11f90 2 2173 1271
+11f92 8 2175 1271
+11f9a 1 2176 1271
+11f9b 24 2180 1271
+11fbf 9 2181 1271
+11fc8 1 2182 1271
+11fc9 5 2185 1271
+11fce c 1594 1271
+11fda c 1598 1271
+11fe6 9 1603 1271
+11fef e 1635 1271
+11ffd 4 1636 1271
+12001 8 1637 1271
+12009 8 1639 1271
+12011 1c 1598 1271
+1202d 6 1640 1271
+12033 2 1641 1271
+12035 4 1640 1271
+12039 5 1642 1271
+1203e 2 1644 1271
+12040 5 1645 1271
+12045 8 1646 1271
+1204d 5 1647 1271
+12052 6 1648 1271
+12058 1 1649 1271
+12059 4 1648 1271
+1205d 6 1650 1271
+12063 10 2189 1271
+12073 a 2201 1271
+1207d a 2204 1271
+12087 6 2205 1271
+1208d 4 2207 1271
+12091 2 2208 1271
+12093 4 2210 1271
+12097 4 2212 1271
+1209b 2 2213 1271
+1209d 4 2215 1271
+120a1 4 2217 1271
+120a5 7 2218 1271
+120ac 9 2224 1271
+120b5 4 2228 1271
+120b9 11 2230 1271
+120ca 11 2234 1271
+120db 13 2236 1271
+120ee f 2238 1271
+120fd d 2243 1271
+1210a 3 2249 1271
+1210d 3 2250 1271
+12110 1e 2252 1271
+1212e 9 2253 1271
+12137 18 2257 1271
+1214f 2 2310 1271
+12151 4 2254 1271
+12155 2 2259 1271
+12157 d 2260 1271
+12164 f 2290 1271
+12173 f 2292 1271
+12182 6 2297 1271
+12188 8 2298 1271
+12190 15 2299 1271
+121a5 2 1073 1271
+121a7 f 2310 1271
+121b6 b 2314 1271
+121c1 10 2319 1271
+121d1 1d 2321 1271
+121ee 2 2360 1271
+121f0 3 2361 1271
+121f3 2 2362 1271
+121f5 2 2324 1271
+121f7 f 2325 1271
+12206 10 1043 1271
+12216 10 2376 1271
+12226 38 2377 1271
+FUNC 1225e c2 4 _putwch_nolock
+1225e 11 84 4721
+1226f a 89 4721
+12279 9 91 4721
+12282 5 92 4721
+12287 a 96 4721
+12291 6 97 4721
+12297 16 103 4721
+122ad 14 105 4721
+122c1 6 106 4721
+122c7 1c 123 4721
+122e3 1e 129 4721
+12301 2 131 4721
+12303 4 133 4721
+12307 d 134 4721
+12314 a 110 4721
+1231e 2 113 4721
+FUNC 12320 9b 4 _cputws
+12320 c 151 4721
+1232c 5 153 4721
+12331 30 155 4721
+12361 b 157 4721
+1236c 9 158 4721
+12375 3 159 4721
+12378 a 160 4721
+12382 17 162 4721
+12399 4 164 4721
+1239d c 169 4721
+123a9 3 172 4721
+123ac 6 173 4721
+123b2 9 170 4721
+FUNC 123bb 46 4 _putwch
+123bb c 49 4721
+123c7 8 52 4721
+123cf 4 53 4721
+123d3 f 55 4721
+123e2 c 58 4721
+123ee 4 62 4721
+123f2 6 63 4721
+123f8 9 59 4721
+FUNC 12401 113 10 _mbtowc_l
+12401 8 55 6355
+12409 e 56 6355
+12417 4 61 6355
+1241b 7 64 6355
+12422 3 65 6355
+12425 4 59 6355
+12429 2 116 6355
+1242b b 70 6355
+12436 8 73 6355
+1243e 7 75 6355
+12445 7 76 6355
+1244c 11 77 6355
+1245d 13 80 6355
+12470 33 90 6355
+124a3 10 93 6355
+124b3 1b 99 6355
+124ce b 95 6355
+124d9 14 96 6355
+124ed 25 108 6355
+12512 2 111 6355
+FUNC 12514 17 c mbtowc
+12514 0 123 6355
+12514 16 124 6355
+1252a 1 125 6355
+FUNC 1252b 83 10 _lseeki64_nolock
+1252b 5 120 4872
+12530 4 126 4872
+12534 1b 134 4872
+1254f b 136 4872
+1255a 6 138 4872
+12560 22 146 4872
+12582 7 148 4872
+12589 2 149 4872
+1258b 19 152 4872
+125a4 8 153 4872
+125ac 2 154 4872
+FUNC 125ae 119 10 _lseeki64
+125ae c 73 4872
+125ba 9 74 4872
+125c3 24 77 4872
+125e7 2f 78 4872
+12616 46 79 4872
+1265c 7 81 4872
+12663 3 82 4872
+12666 9 84 4872
+1266f 1a 85 4872
+12689 2 86 4872
+1268b b 87 4872
+12696 7 88 4872
+1269d 8 89 4872
+126a5 c 93 4872
+126b1 6 97 4872
+126b7 6 98 4872
+126bd a 94 4872
+FUNC 126c7 7d 8 _set_osfhnd
+126c7 0 213 4825
+126c7 2e 216 4825
+126f5 e 217 4825
+12703 b 218 4825
+1270e 3 226 4825
+12711 2 227 4825
+12713 3 223 4825
+12716 2 224 4825
+12718 9 220 4825
+12721 5 231 4825
+12726 5 232 4825
+1272b b 234 4825
+12736 8 235 4825
+1273e 5 236 4825
+12743 1 238 4825
+FUNC 12744 81 4 _free_osfhnd
+12744 0 263 4825
+12744 38 266 4825
+1277c 9 268 4825
+12785 a 269 4825
+1278f 3 277 4825
+12792 2 278 4825
+12794 3 274 4825
+12797 2 275 4825
+12799 9 271 4825
+127a2 6 282 4825
+127a8 4 283 4825
+127ac b 285 4825
+127b7 7 286 4825
+127be 6 287 4825
+127c4 1 289 4825
+FUNC 127c5 71 4 _get_osfhandle
+127c5 0 312 4825
+127c5 1f 313 4825
+127e4 2 318 4825
+127e6 e 314 4825
+127f4 3d 315 4825
+12831 1 318 4825
+12832 3 317 4825
+12835 1 318 4825
+FUNC 12836 a0 4 __lock_fhandle
+12836 c 437 4825
+12842 17 438 4825
+12859 7 439 4825
+12860 7 444 4825
+12867 8 446 4825
+1286f 3 447 4825
+12872 5 448 4825
+12877 14 449 4825
+1288b 3 453 4825
+1288e 3 455 4825
+12891 c 457 4825
+1289d 5 462 4825
+128a2 1d 464 4825
+128bf 3 467 4825
+128c2 6 468 4825
+128c8 5 457 4825
+128cd 9 458 4825
+FUNC 128d6 22 4 _unlock_fhandle
+128d6 0 489 4825
+128d6 21 490 4825
+128f7 1 491 4825
+FUNC 128f8 19f 0 _alloc_osfhnd
+128f8 c 52 4825
+12904 4 53 4825
+12908 5 56 4825
+1290d c 58 4825
+12919 8 59 4825
+12921 8 61 4825
+12929 3 62 4825
+1292c c 71 4825
+12938 f 77 4825
+12947 17 83 4825
+1295e 6 85 4825
+12964 6 89 4825
+1296a 8 90 4825
+12972 6 91 4825
+12978 6 92 4825
+1297e 14 93 4825
+12992 3 99 4825
+12995 2 101 4825
+12997 3 103 4825
+1299a 9 106 4825
+129a3 6 111 4825
+129a9 a 113 4825
+129b3 6 119 4825
+129b9 7 120 4825
+129c0 5 83 4825
+129c5 6 106 4825
+129cb 9 107 4825
+129d4 6 124 4825
+129da 4 126 4825
+129de 3 127 4825
+129e1 19 128 4825
+129fa 6 137 4825
+12a00 6 71 4825
+12a06 12 145 4825
+12a18 9 151 4825
+12a21 7 152 4825
+12a28 c 154 4825
+12a34 4 155 4825
+12a38 3 156 4825
+12a3b 4 157 4825
+12a3f 4 158 4825
+12a43 8 154 4825
+12a4b 6 165 4825
+12a51 19 166 4825
+12a6a b 167 4825
+12a75 4 171 4825
+12a79 c 178 4825
+12a85 3 186 4825
+12a88 6 187 4825
+12a8e 9 179 4825
+FUNC 12a97 115 8 _open_osfhandle
+12a97 c 343 4825
+12aa3 5 347 4825
+12aa8 2 351 4825
+12aaa 6 353 4825
+12ab0 3 354 4825
+12ab3 8 356 4825
+12abb 3 357 4825
+12abe 6 359 4825
+12ac4 3 360 4825
+12ac7 9 364 4825
+12ad0 4 365 4825
+12ad4 d 367 4825
+12ae1 3 409 4825
+12ae4 6 410 4825
+12aea 5 372 4825
+12aef 5 373 4825
+12af4 5 374 4825
+12af9 3 375 4825
+12afc f 380 4825
+12b0b b 381 4825
+12b16 7 382 4825
+12b1d 2 383 4825
+12b1f 3 385 4825
+12b22 b 391 4825
+12b2d 3 393 4825
+12b30 1a 395 4825
+12b4a 9 396 4825
+12b53 9 397 4825
+12b5c 7 399 4825
+12b63 c 401 4825
+12b6f 10 409 4825
+12b7f 5 401 4825
+12b84 5 402 4825
+12b89 1b 404 4825
+12ba4 8 406 4825
+FUNC 12bac 11e c _calloc_impl
+12bac c 23 5592
+12bb8 9 28 5592
+12bc1 2e 30 5592
+12bef 9 32 5592
+12bf8 4 36 5592
+12bfc 3 37 5592
+12bff 5 41 5592
+12c04 5 43 5592
+12c09 9 46 5592
+12c12 9 50 5592
+12c1b b 52 5592
+12c26 8 56 5592
+12c2e 3 57 5592
+12c31 c 58 5592
+12c3d c 60 5592
+12c49 7 64 5592
+12c50 d 65 5592
+12c5d 4 93 5592
+12c61 11 94 5592
+12c72 c 97 5592
+12c7e f 109 5592
+12c8d b 111 5592
+12c98 6 112 5592
+12c9e 5 113 5592
+12ca3 5 60 5592
+12ca8 9 61 5592
+12cb1 4 100 5592
+12cb5 7 102 5592
+12cbc 6 103 5592
+12cc2 2 105 5592
+12cc4 6 119 5592
+FUNC 12cca 3f 8 calloc
+12cca 4 145 5592
+12cce 5 146 5592
+12cd3 14 147 5592
+12ce7 15 149 5592
+12cfc 8 151 5592
+12d04 3 153 5592
+12d07 2 154 5592
+FUNC 12d09 21b 8 realloc
+12d09 c 64 5338
+12d15 7 69 5338
+12d1c e 70 5338
+12d2a 7 73 5338
+12d31 7 75 5338
+12d38 5 76 5338
+12d3d d 81 5338
+12d4a 5 88 5338
+12d4f 9 89 5338
+12d58 8 91 5338
+12d60 3 92 5338
+12d63 12 96 5338
+12d75 8 100 5338
+12d7d f 102 5338
+12d8c 5 103 5338
+12d91 e 104 5338
+12d9f 4 107 5338
+12da3 10 108 5338
+12db3 9 110 5338
+12dbc a 111 5338
+12dc6 5 118 5338
+12dcb 4 120 5338
+12dcf 6 121 5338
+12dd5 9 123 5338
+12dde 15 124 5338
+12df3 4 127 5338
+12df7 10 128 5338
+12e07 c 129 5338
+12e13 c 135 5338
+12e1f 6 142 5338
+12e25 4 144 5338
+12e29 1 145 5338
+12e2a 9 147 5338
+12e33 14 148 5338
+12e47 6 135 5338
+12e4d 9 137 5338
+12e56 3 148 5338
+12e59 10 158 5338
+12e69 f 181 5338
+12e78 5 186 5338
+12e7d 5 183 5338
+12e82 11 186 5338
+12e93 2 188 5338
+12e95 8 160 5338
+12e9d 5 170 5338
+12ea2 3 167 5338
+12ea5 2 172 5338
+12ea7 6 174 5338
+12ead 2 155 5338
+12eaf 4 321 5338
+12eb3 1 322 5338
+12eb4 12 323 5338
+12ec6 c 332 5338
+12ed2 b 347 5338
+12edd 5 319 5338
+12ee2 7 327 5338
+12ee9 b 328 5338
+12ef4 2 329 5338
+12ef6 6 356 5338
+12efc 5 349 5338
+12f01 5 350 5338
+12f06 4 334 5338
+12f0a 16 341 5338
+12f20 4 343 5338
+FUNC 12f24 79 c _recalloc
+12f24 3 744 5338
+12f27 a 749 5338
+12f31 28 751 5338
+12f59 4 753 5338
+12f5d 9 754 5338
+12f66 b 755 5338
+12f71 b 756 5338
+12f7c a 757 5338
+12f86 10 759 5338
+12f96 5 761 5338
+12f9b 2 762 5338
+FUNC 12f9d 21 0 _get_sbh_threshold
+12f9d 0 61 5281
+12f9d 9 64 5281
+12fa6 2 66 5281
+12fa8 1 81 5281
+12fa9 14 69 5281
+12fbd 1 81 5281
+FUNC 12fbe 46 4 _set_amblksiz
+12fbe 0 214 5281
+12fbe 2b 216 5281
+12fe9 1 224 5281
+12fea 11 217 5281
+12ffb 5 220 5281
+13000 3 223 5281
+13003 1 224 5281
+FUNC 13004 3c 4 _get_amblksiz
+13004 0 243 5281
+13004 27 245 5281
+1302b 1 253 5281
+1302c 8 246 5281
+13034 8 249 5281
+1303c 3 252 5281
+1303f 1 253 5281
+FUNC 13040 48 4 __sbh_heap_init
+13040 0 274 5281
+13040 1c 275 5281
+1305c 1 285 5281
+1305d 4 278 5281
+13061 7 280 5281
+13068 c 281 5281
+13074 13 284 5281
+13087 1 285 5281
+FUNC 13088 2b 4 __sbh_find_block
+13088 0 306 5281
+13088 12 307 5281
+1309a 7 316 5281
+130a1 8 317 5281
+130a9 3 319 5281
+130ac 4 314 5281
+130b0 2 321 5281
+130b2 1 322 5281
+FUNC 130b3 314 8 __sbh_free_block
+130b3 6 381 5281
+130b9 7 399 5281
+130c0 9 402 5281
+130c9 18 407 5281
+130e1 3 408 5281
+130e4 d 412 5281
+130f1 3 416 5281
+130f4 5 417 5281
+130f9 6 420 5281
+130ff b 424 5281
+1310a 4 429 5281
+1310e 5 430 5281
+13113 3 431 5281
+13116 8 434 5281
+1311e 3 439 5281
+13121 b 441 5281
+1312c e 442 5281
+1313a 5 443 5281
+1313f 2 445 5281
+13141 5 448 5281
+13146 11 449 5281
+13157 9 450 5281
+13160 9 455 5281
+13169 15 459 5281
+1317e 6 463 5281
+13184 5 464 5281
+13189 3 465 5281
+1318c f 468 5281
+1319b 3 474 5281
+1319e 6 477 5281
+131a4 b 478 5281
+131af 2 479 5281
+131b1 3 483 5281
+131b4 6 484 5281
+131ba 7 485 5281
+131c1 2 486 5281
+131c3 4 489 5281
+131c7 b 493 5281
+131d2 3 498 5281
+131d5 11 501 5281
+131e6 6 502 5281
+131ec 5 503 5281
+131f1 2 505 5281
+131f3 e 508 5281
+13201 6 509 5281
+13207 6 511 5281
+1320d c 516 5281
+13219 c 517 5281
+13225 8 520 5281
+1322d e 524 5281
+1323b 6 528 5281
+13241 3 529 5281
+13244 6 530 5281
+1324a 3 531 5281
+1324d 6 532 5281
+13253 8 535 5281
+1325b 18 541 5281
+13273 e 542 5281
+13281 f 543 5281
+13290 2 545 5281
+13292 6 547 5281
+13298 10 548 5281
+132a8 13 550 5281
+132bb 5 556 5281
+132c0 4 558 5281
+132c4 b 561 5281
+132cf d 564 5281
+132dc 6 568 5281
+132e2 1a 569 5281
+132fc 15 573 5281
+13311 16 577 5281
+13327 19 578 5281
+13340 9 579 5281
+13349 6 583 5281
+1334f 8 586 5281
+13357 16 589 5281
+1336d 25 595 5281
+13392 14 599 5281
+133a6 4 600 5281
+133aa a 603 5281
+133b4 8 608 5281
+133bc 9 609 5281
+133c5 2 611 5281
+FUNC 133c7 b0 0 __sbh_alloc_new_region
+133c7 0 891 5281
+133c7 13 897 5281
+133da 1e 900 5281
+133f8 4 901 5281
+133fc 12 905 5281
+1340e 9 909 5281
+13417 18 913 5281
+1342f 2 914 5281
+13431 1a 918 5281
+1344b 10 920 5281
+1345b 2 921 5281
+1345d 9 927 5281
+13466 6 930 5281
+1346c 6 933 5281
+13472 4 935 5281
+13476 1 936 5281
+FUNC 13477 106 4 __sbh_alloc_new_group
+13477 5 958 5281
+1347c 3 959 5281
+1347f 9 972 5281
+13488 4 973 5281
+1348c 2 976 5281
+1348e 1 977 5281
+1348f 4 974 5281
+13493 15 981 5281
+134a8 c 986 5281
+134b4 1f 993 5281
+134d3 8 994 5281
+134db 6 998 5281
+134e1 12 1001 5281
+134f3 4 1004 5281
+134f7 7 1005 5281
+134fe 8 1011 5281
+13506 10 1013 5281
+13516 12 1016 5281
+13528 3 1001 5281
+1352b 8 1021 5281
+13533 6 1023 5281
+13539 3 1024 5281
+1353c 6 1027 5281
+13542 3 1028 5281
+13545 5 1030 5281
+1354a a 1031 5281
+13554 9 1032 5281
+1355d b 1033 5281
+13568 e 1036 5281
+13576 5 1038 5281
+1357b 2 1039 5281
+FUNC 1357d 2df c __sbh_resize_block
+1357d 6 1061 5281
+13583 c 1080 5281
+1358f b 1083 5281
+1359a 3 1084 5281
+1359d 12 1085 5281
+135af 7 1089 5281
+135b6 14 1096 5281
+135ca 13 1099 5281
+135dd 7 1105 5281
+135e4 8 1106 5281
+135ec 6 1107 5281
+135f2 8 1110 5281
+135fa 3 1115 5281
+135fd 9 1117 5281
+13606 11 1118 5281
+13617 5 1119 5281
+1361c 2 1121 5281
+1361e 5 1124 5281
+13623 14 1125 5281
+13637 6 1126 5281
+1363d 9 1131 5281
+13646 9 1132 5281
+1364f 12 1135 5281
+13661 a 1141 5281
+1366b 9 1142 5281
+13674 3 1143 5281
+13677 9 1147 5281
+13680 6 1148 5281
+13686 6 1149 5281
+1368c 3 1150 5281
+1368f 6 1151 5281
+13695 8 1154 5281
+1369d 18 1160 5281
+136b5 e 1161 5281
+136c3 6 1162 5281
+136c9 2 1164 5281
+136cb 6 1166 5281
+136d1 10 1167 5281
+136e1 13 1169 5281
+136f4 c 1174 5281
+13700 9 1176 5281
+13709 6 1180 5281
+1370f 9 1182 5281
+13718 7 1100 5281
+1371f 6 1186 5281
+13725 3 1189 5281
+13728 d 1195 5281
+13735 7 1198 5281
+1373c b 1199 5281
+13747 3 1200 5281
+1374a a 1203 5281
+13754 7 1208 5281
+1375b 5 1209 5281
+13760 3 1210 5281
+13763 8 1213 5281
+1376b 3 1218 5281
+1376e b 1221 5281
+13779 e 1222 5281
+13787 5 1223 5281
+1378c 2 1225 5281
+1378e 5 1228 5281
+13793 11 1229 5281
+137a4 9 1231 5281
+137ad 9 1236 5281
+137b6 9 1237 5281
+137bf 9 1240 5281
+137c8 4 1241 5281
+137cc 5 1242 5281
+137d1 3 1243 5281
+137d4 6 1249 5281
+137da 3 1250 5281
+137dd 6 1251 5281
+137e3 3 1252 5281
+137e6 6 1253 5281
+137ec 8 1256 5281
+137f4 18 1262 5281
+1380c e 1263 5281
+1381a 6 1264 5281
+13820 2 1266 5281
+13822 6 1268 5281
+13828 10 1269 5281
+13838 13 1271 5281
+1384b 5 1276 5281
+13850 4 1278 5281
+13854 6 1281 5281
+1385a 2 1282 5281
+FUNC 1385c cd 0 __sbh_heapmin
+1385c 0 1302 5281
+1385c d 1306 5281
+13869 6 1310 5281
+1386f 17 1311 5281
+13886 15 1314 5281
+1389b 16 1318 5281
+138b1 19 1319 5281
+138ca 9 1320 5281
+138d3 f 1325 5281
+138e2 11 1328 5281
+138f3 28 1333 5281
+1391b 6 1334 5281
+13921 7 1338 5281
+13928 1 1340 5281
+FUNC 13929 2e2 0 __sbh_heap_check
+13929 3 1361 5281
+1392c 12 1391 5281
+1393e 8 1393 5281
+13946 16 1398 5281
+1395c 3 1401 5281
+1395f 8 1402 5281
+13967 6 1406 5281
+1396d 9 1407 5281
+13976 c 1408 5281
+13982 3 1409 5281
+13985 3 1410 5281
+13988 6 1411 5281
+1398e 4 1418 5281
+13992 1b 1421 5281
+139ad 9 1424 5281
+139b6 9 1428 5281
+139bf 1c 1438 5281
+139db 2 1445 5281
+139dd 7 1446 5281
+139e4 1 1449 5281
+139e5 c 1452 5281
+139f1 3 1456 5281
+139f4 2 1458 5281
+139f6 6 1462 5281
+139fc 5 1463 5281
+13a01 3 1464 5281
+13a04 9 1465 5281
+13a0d 1e 1470 5281
+13a2b c 1475 5281
+13a37 2 1479 5281
+13a39 4 1481 5281
+13a3d 6 1484 5281
+13a43 10 1488 5281
+13a53 e 1492 5281
+13a61 2 1498 5281
+13a63 4 1502 5281
+13a67 20 1505 5281
+13a87 19 1509 5281
+13aa0 8 1514 5281
+13aa8 3 1518 5281
+13aab 6 1520 5281
+13ab1 8 1524 5281
+13ab9 4 1527 5281
+13abd e 1532 5281
+13acb 8 1536 5281
+13ad3 6 1541 5281
+13ad9 5 1542 5281
+13ade 3 1543 5281
+13ae1 8 1544 5281
+13ae9 c 1549 5281
+13af5 11 1554 5281
+13b06 6 1559 5281
+13b0c 3 1561 5281
+13b0f e 1563 5281
+13b1d 3 1564 5281
+13b20 2 1566 5281
+13b22 8 1568 5281
+13b2a 3 1569 5281
+13b2d 1c 1575 5281
+13b49 c 1580 5281
+13b55 10 1585 5281
+13b65 17 1591 5281
+13b7c 7 1595 5281
+13b83 7 1596 5281
+13b8a 16 1597 5281
+13ba0 f 1602 5281
+13baf 18 1606 5281
+13bc7 5 1608 5281
+13bcc 2 1609 5281
+13bce 4 1403 5281
+13bd2 4 1425 5281
+13bd6 4 1453 5281
+13bda 4 1485 5281
+13bde 4 1471 5281
+13be2 4 1439 5281
+13be6 4 1493 5281
+13bea 4 1537 5281
+13bee 4 1545 5281
+13bf2 4 1550 5281
+13bf6 4 1510 5281
+13bfa 4 1581 5281
+13bfe 4 1576 5281
+13c02 4 1592 5281
+13c06 5 1603 5281
+FUNC 13c0b a8 4 _set_sbh_threshold
+13c0b 1 102 5281
+13c0c a 104 5281
+13c16 3 106 5281
+13c19 1 195 5281
+13c1a a 109 5281
+13c24 25 112 5281
+13c49 5 113 5281
+13c4e 4 114 5281
+13c52 2 195 5281
+13c54 6 173 5281
+13c5a 2 175 5281
+13c5c 5 179 5281
+13c61 2d 185 5281
+13c8e 6 186 5281
+13c94 a 187 5281
+13c9e 5 188 5281
+13ca3 b 193 5281
+13cae 4 194 5281
+13cb2 1 195 5281
+FUNC 13cb3 2e3 4 __sbh_alloc_block
+13cb3 6 632 5281
+13cb9 5 633 5281
+13cbe 15 650 5281
+13cd3 5 668 5281
+13cd8 7 669 5281
+13cdf 5 671 5281
+13ce4 4 672 5281
+13ce8 2 674 5281
+13cea d 677 5281
+13cf7 a 682 5281
+13d01 e 686 5281
+13d0f 3 688 5281
+13d12 2 683 5281
+13d14 5 688 5281
+13d19 4 692 5281
+13d1d 8 694 5281
+13d25 e 698 5281
+13d33 3 700 5281
+13d36 2 695 5281
+13d38 5 700 5281
+13d3d 6 705 5281
+13d43 6 709 5281
+13d49 6 711 5281
+13d4f 4 707 5281
+13d53 4 715 5281
+13d57 8 717 5281
+13d5f 6 720 5281
+13d65 3 722 5281
+13d68 2 718 5281
+13d6a 5 722 5281
+13d6f 4 726 5281
+13d73 e 727 5281
+13d81 7 728 5281
+13d88 12 733 5281
+13d9a 2 734 5281
+13d9c 6 737 5281
+13da2 3 739 5281
+13da5 2 740 5281
+13da7 1c 745 5281
+13dc3 4 749 5281
+13dc7 14 751 5281
+13ddb e 752 5281
+13de9 3 751 5281
+13dec 12 754 5281
+13dfe a 760 5281
+13e08 d 763 5281
+13e15 2 768 5281
+13e17 2 767 5281
+13e19 1 768 5281
+13e1a 4 765 5281
+13e1e 7 770 5281
+13e25 5 775 5281
+13e2a 6 776 5281
+13e30 8 777 5281
+13e38 3 778 5281
+13e3b 8 781 5281
+13e43 8 784 5281
+13e4b 3 788 5281
+13e4e e 791 5281
+13e5c 15 792 5281
+13e71 8 793 5281
+13e79 2 795 5281
+13e7b f 798 5281
+13e8a f 799 5281
+13e99 e 800 5281
+13ea7 1c 809 5281
+13ec3 6 813 5281
+13ec9 3 814 5281
+13ecc 6 815 5281
+13ed2 3 816 5281
+13ed5 6 817 5281
+13edb 8 820 5281
+13ee3 18 826 5281
+13efb b 827 5281
+13f06 10 829 5281
+13f16 2 831 5281
+13f18 6 833 5281
+13f1e d 835 5281
+13f2b 16 837 5281
+13f41 3 831 5281
+13f44 4 844 5281
+13f48 2 846 5281
+13f4a 9 848 5281
+13f53 a 853 5281
+13f5d 4 855 5281
+13f61 e 858 5281
+13f6f 13 862 5281
+13f82 7 863 5281
+13f89 5 866 5281
+13f8e 6 868 5281
+13f94 2 869 5281
+FUNC 13f96 72 4 _fclose_nolock
+13f96 2 86 1752
+13f98 2a 90 1752
+13fc2 6 96 1752
+13fc8 6 105 1752
+13fce 8 106 1752
+13fd6 13 108 1752
+13fe9 5 109 1752
+13fee 7 111 1752
+13ff5 7 120 1752
+13ffc 3 121 1752
+13fff 3 126 1752
+14002 5 127 1752
+14007 1 128 1752
+FUNC 14008 7c 4 fclose
+14008 c 44 1752
+14014 4 45 1752
+14018 2d 47 1752
+14045 6 50 1752
+1404b 3 51 1752
+1404e 3 64 1752
+14051 6 65 1752
+14057 7 55 1752
+1405e 3 56 1752
+14061 a 57 1752
+1406b 11 59 1752
+1407c 8 60 1752
+FUNC 14084 d 8 _ValidateRead(void const *,unsigned int)
+14084 0 63 5683
+14084 3 64 5683
+14087 7 65 5683
+1408e 2 68 5683
+14090 1 71 5683
+FUNC 14091 d 8 _ValidateWrite(void *,unsigned int)
+14091 0 74 5683
+14091 3 75 5683
+14094 7 76 5683
+1409b 2 79 5683
+1409d 1 82 5683
+FUNC 1409e d 4 _ValidateExecute(int (*)(void))
+1409e 0 85 5683
+1409e 3 86 5683
+140a1 7 87 5683
+140a8 2 90 5683
+140aa 1 93 5683
+FUNC 140ab f3 0 abort
+140ab 1b 53 4119
+140c6 a 56 4119
+140d0 8 59 4119
+140d8 5 68 4119
+140dd 4 69 4119
+140e1 8 71 4119
+140e9 d 78 4119
+140f6 6 87 4119
+140fc 6 88 4119
+14102 6 89 4119
+14108 3 90 4119
+1410b 3 91 4119
+1410e 3 92 4119
+14111 7 93 4119
+14118 7 94 4119
+1411f 4 95 4119
+14123 4 96 4119
+14127 4 97 4119
+1412b 4 98 4119
+1412f 1 99 4119
+14130 6 100 4119
+14136 6 106 4119
+1413c 19 107 4119
+14155 3 109 4119
+14158 13 117 4119
+1416b 9 122 4119
+14174 3 123 4119
+14177 15 126 4119
+1418c a 128 4119
+14196 8 137 4119
+FUNC 1419e 1e 8 _set_abort_behavior
+1419e 0 158 4119
+1419e 1d 160 4119
+141bb 1 162 4119
+FUNC 141bc 20 0 _global_unwind2
+FUNC 141dc 45 0 __unwind_handler
+FUNC 14221 84 0 _local_unwind2
+FUNC 142a5 23 0 _abnormal_termination
+FUNC 142c8 9 0 _NLG_Notify1
+FUNC 142d1 1f 0 _NLG_Notify
+PUBLIC 142e8 0 _NLG_Dispatch2
+FUNC 142f0 3 0 _NLG_Call
+PUBLIC 142f2 0 _NLG_Return2
+FUNC 142f3 a3 4 _msize
+142f3 c 43 5383
+142ff 2d 47 5383
+1432c 9 51 5383
+14335 8 55 5383
+1433d 3 56 5383
+14340 e 57 5383
+1434e e 59 5383
+1435c c 61 5383
+14368 5 64 5383
+1436d 10 88 5383
+1437d 2 91 5383
+1437f 6 93 5383
+14385 8 61 5383
+1438d 9 62 5383
+FUNC 14396 6 0 HeapManager::Block::Block()
+14396 6 90 5771
+FUNC 1439c 1b 8 HeapManager::Constructor(void * (*)(unsigned int),void (*)(void *))
+1439c 6 100 5771
+143a2 7 101 5771
+143a9 5 102 5771
+143ae 3 103 5771
+143b1 3 104 5771
+143b4 3 105 5771
+FUNC 143b7 26 0 HeapManager::Destructor()
+143b7 9 110 5771
+143c0 2 111 5771
+143c2 5 113 5771
+143c7 15 115 5771
+143dc 1 118 5771
+FUNC 143dd 63 0 UnDecorator::getNumberOfDimensions()
+143dd 0 1663 5771
+143dd c 1664 5771
+143e9 2 1665 5771
+143eb 1 1696 5771
+143ec a 1666 5771
+143f6 d 1667 5771
+14403 1 1696 5771
+14404 4 1670 5771
+14408 4 1677 5771
+1440c a 1679 5771
+14416 6 1680 5771
+1441c d 1684 5771
+14429 5 1675 5771
+1442e e 1690 5771
+1443c 3 1691 5771
+1443f 1 1696 5771
+FUNC 14440 474 0 UnDecorator::getTypeEncoding()
+14440 f 2335 5771
+1444f 2 2336 5771
+14451 5 2341 5771
+14456 9 2345 5771
+1445f c 2351 5771
+1446b 9 2423 5771
+14474 2 2426 5771
+14476 2a 2427 5771
+144a0 8 2450 5771
+144a8 2 2451 5771
+144aa 24 2454 5771
+144ce 7 2462 5771
+144d5 5 2463 5771
+144da 6 2353 5771
+144e0 8 2358 5771
+144e8 b 2362 5771
+144f3 5 2363 5771
+144f8 2 2364 5771
+144fa 5 2365 5771
+144ff 9 2369 5771
+14508 1b 2373 5771
+14523 11 2377 5771
+14534 a 2393 5771
+1453e 10 2388 5771
+1454e 2 2389 5771
+14550 18 2384 5771
+14568 2 2385 5771
+1456a 12 2380 5771
+1457c 16 2399 5771
+14592 11 2418 5771
+145a3 a 2406 5771
+145ad 5 2407 5771
+145b2 15 2410 5771
+145c7 5 2422 5771
+145cc 1b 2427 5771
+145e7 a 2430 5771
+145f1 5 2431 5771
+145f6 7 2472 5771
+145fd a 2478 5771
+14607 c 2483 5771
+14613 5 2485 5771
+14618 5 2486 5771
+1461d 5 2487 5771
+14622 5 2490 5771
+14627 5 2505 5771
+1462c 5 2508 5771
+14631 5 2509 5771
+14636 5 2434 5771
+1463b 5 2435 5771
+14640 1a 2427 5771
+1465a 30 2568 5771
+1468a 5 2529 5771
+1468f 4 2530 5771
+14693 a 2531 5771
+1469d 2 2532 5771
+1469f a 2533 5771
+146a9 5 2537 5771
+146ae 5 2538 5771
+146b3 2 2539 5771
+146b5 5 2540 5771
+146ba e 2544 5771
+146c8 6 2560 5771
+146ce 10 2555 5771
+146de 2 2556 5771
+146e0 18 2551 5771
+146f8 2 2552 5771
+146fa 12 2547 5771
+1470c 2 2564 5771
+1470e a 2442 5771
+14718 2 2443 5771
+1471a a 2438 5771
+14724 2 2439 5771
+14726 5 2445 5771
+1472b c 2574 5771
+14737 14 2577 5771
+1474b a 2579 5771
+14755 18 2586 5771
+1476d 1a 2589 5771
+14787 1b 2590 5771
+147a2 5 2591 5771
+147a7 1a 2594 5771
+147c1 1b 2595 5771
+147dc 5 2596 5771
+147e1 1a 2599 5771
+147fb 10 2600 5771
+1480b 2 2601 5771
+1480d 7 2604 5771
+14814 2 2605 5771
+14816 a 2608 5771
+14820 2 2609 5771
+14822 a 2612 5771
+1482c 2 2613 5771
+1482e a 2616 5771
+14838 2 2617 5771
+1483a a 2620 5771
+14844 2 2621 5771
+14846 a 2624 5771
+14850 7 2634 5771
+14857 7 2635 5771
+1485e 7 2637 5771
+14865 10 2639 5771
+14875 3f 2648 5771
+FUNC 148b4 b 0 UnDecorator::doUnderScore()
+148b4 b 4259 5771
+FUNC 148bf d 0 UnDecorator::doMSKeywords()
+148bf d 4260 5771
+FUNC 148cc e 0 UnDecorator::doPtr64()
+148cc e 4261 5771
+FUNC 148da e 0 UnDecorator::doFunctionReturns()
+148da e 4262 5771
+FUNC 148e8 e 0 UnDecorator::doAllocationModel()
+148e8 e 4263 5771
+FUNC 148f6 e 0 UnDecorator::doAllocationLanguage()
+148f6 e 4264 5771
+FUNC 14904 12 0 UnDecorator::doThisTypes()
+14904 12 4271 5771
+FUNC 14916 e 0 UnDecorator::doAccessSpecifiers()
+14916 e 4272 5771
+FUNC 14924 e 0 UnDecorator::doThrowTypes()
+14924 e 4273 5771
+FUNC 14932 e 0 UnDecorator::doMemberTypes()
+14932 e 4274 5771
+FUNC 14940 b 0 UnDecorator::doNameOnly()
+14940 b 4279 5771
+FUNC 1494b b 0 UnDecorator::doTypeOnly()
+1494b b 4280 5771
+FUNC 14956 b 0 UnDecorator::haveTemplateParameters()
+14956 b 4281 5771
+FUNC 14961 e 0 UnDecorator::doEcsu()
+14961 e 4282 5771
+FUNC 1496f b 0 UnDecorator::doNoIdentCharCheck()
+1496f b 4283 5771
+FUNC 1497a e 0 UnDecorator::doEllipsis()
+1497a e 4284 5771
+FUNC 14988 19 4 UnDecorator::UScore(Tokens)
+14988 0 4288 5771
+14988 9 4293 5771
+14991 d 4294 5771
+1499e 2 4296 5771
+149a0 1 4298 5771
+FUNC 149a1 84 8 HeapManager::getMemory(unsigned int,int)
+149a1 2 134 5804
+149a3 a 137 5804
+149ad 9 139 5804
+149b6 6 140 5804
+149bc 4 146 5804
+149c0 3 147 5804
+149c3 8 149 5804
+149cb 7 153 5804
+149d2 2 154 5804
+149d4 1c 159 5804
+149f0 4 164 5804
+149f4 7 168 5804
+149fb 2 169 5804
+149fd 2 170 5804
+149ff 3 171 5804
+14a02 8 175 5804
+14a0a 2 182 5804
+14a0c 4 179 5804
+14a10 5 183 5804
+14a15 d 187 5804
+14a22 3 190 5804
+FUNC 14a25 d 0 DName::DName()
+14a25 2 210 5804
+14a27 3 211 5804
+14a2a 7 220 5804
+14a31 1 221 5804
+FUNC 14a32 12 4 DName::DName(DNameNode *)
+14a32 2 224 5804
+14a34 4 225 5804
+14a38 9 234 5804
+14a41 3 235 5804
+FUNC 14a44 9c 4 DName::DName(DName const &)
+14a44 2 259 5804
+14a46 17 260 5804
+14a5d 10 261 5804
+14a6d d 262 5804
+14a7a d 263 5804
+14a87 10 264 5804
+14a97 4 265 5804
+14a9b e 266 5804
+14aa9 13 267 5804
+14abc 10 268 5804
+14acc 11 269 5804
+14add 3 270 5804
+FUNC 14ae0 a 0 DName::status()
+14ae0 a 481 5804
+FUNC 14aea 5 0 DName::clearStatus()
+14aea 5 482 5804
+FUNC 14aef 7 0 DName::setPtrRef()
+14aef 7 484 5804
+FUNC 14af6 a 0 DName::isPtrRef()
+14af6 a 485 5804
+FUNC 14b00 8 0 DName::setIsArray()
+14b00 8 490 5804
+FUNC 14b08 a 0 DName::isArray()
+14b08 a 491 5804
+FUNC 14b12 a 0 DName::isNoTE()
+14b12 a 492 5804
+FUNC 14b1c 8 0 DName::setIsNoTE()
+14b1c 8 493 5804
+FUNC 14b24 a 0 DName::isPinPtr()
+14b24 a 494 5804
+FUNC 14b2e 8 0 DName::setIsPinPtr()
+14b2e 8 495 5804
+FUNC 14b36 a 0 DName::isComArray()
+14b36 a 496 5804
+FUNC 14b40 8 0 DName::setIsComArray()
+14b40 8 497 5804
+FUNC 14b48 a 0 DName::isVCallThunk()
+14b48 a 498 5804
+FUNC 14b52 8 0 DName::setIsVCallThunk()
+14b52 8 499 5804
+FUNC 14b5a 7b 4 DName::operator=(DName const &)
+14b5a 3 879 5804
+14b5d 12 880 5804
+14b6f 17 882 5804
+14b86 d 883 5804
+14b93 d 884 5804
+14ba0 d 885 5804
+14bad 10 886 5804
+14bbd 10 887 5804
+14bcd 5 889 5804
+14bd2 3 897 5804
+FUNC 14bd5 9 0 Replicator::isFull()
+14bd5 9 1001 5804
+FUNC 14bde 25 4 Replicator::operator[](int)
+14bde 0 1028 5804
+14bde 9 1029 5804
+14be7 b 1031 5804
+14bf2 6 1034 5804
+14bf8 5 1032 5804
+14bfd 3 1030 5804
+14c00 3 1036 5804
+FUNC 14c03 d 0 DNameNode::DNameNode()
+14c03 d 1048 5804
+FUNC 14c10 4 0 DNameNode::nextNode()
+14c10 4 1052 5804
+FUNC 14c14 29 4 DNameNode::operator+=(DNameNode *)
+14c14 2 1131 5804
+14c16 8 1132 5804
+14c1e 8 1134 5804
+14c26 b 1139 5804
+14c31 4 1144 5804
+14c35 2 1147 5804
+14c37 3 1148 5804
+14c3a 3 1156 5804
+FUNC 14c3d 16 4 charNode::charNode(char)
+14c3d 16 1166 5804
+FUNC 14c53 4 0 charNode::length()
+14c53 4 1168 5804
+FUNC 14c57 4 0 charNode::getLastChar()
+14c57 4 1170 5804
+FUNC 14c5b 1b 8 charNode::getString(char *,int)
+14c5b 0 1173 5804
+14c5b f 1174 5804
+14c6a 5 1175 5804
+14c6f 2 1176 5804
+14c71 2 1177 5804
+14c73 3 1183 5804
+FUNC 14c76 4 0 pcharNode::length()
+14c76 4 1189 5804
+FUNC 14c7a 2f 4 pDNameNode::pDNameNode(DName *)
+14c7a 2f 1244 5804
+FUNC 14ca9 25 4 DNameStatusNode::DNameStatusNode(DNameStatus)
+14ca9 25 1261 5804
+FUNC 14cce 4 0 DNameStatusNode::length()
+14cce 4 1263 5804
+FUNC 14cd2 d 0 DNameStatusNode::getLastChar()
+14cd2 d 1266 5804
+FUNC 14cdf e 0 und_strlen
+14cdf 0 1283 5804
+14cdf 6 1286 5804
+14ce5 7 1287 5804
+14cec 1 1291 5804
+FUNC 14ced 20 8 und_strncpy
+14ced 0 1295 5804
+14ced 1b 1296 5804
+14d08 4 1299 5804
+14d0c 1 1301 5804
+FUNC 14d0d 25 4 und_strncmp
+14d0d 0 1304 5804
+14d0d 7 1305 5804
+14d14 2 1306 5804
+14d16 1 1315 5804
+14d17 a 1308 5804
+14d21 1 1310 5804
+14d22 1 1311 5804
+14d23 6 1308 5804
+14d29 8 1314 5804
+14d31 1 1315 5804
+FUNC 14d32 33 0 UnDecorator::getDataIndirectType()
+14d32 33 4033 5771
+FUNC 14d65 34 0 UnDecorator::getThisType()
+14d65 34 4034 5771
+FUNC 14d99 13 c operator new(unsigned int,HeapManager &,int)
+14d99 13 131 5804
+FUNC 14dac 56 4 DName::DName(DName *)
+14dac 0 274 5804
+14dac a 275 5804
+14db6 23 277 5804
+14dd9 13 278 5804
+14dec 2 281 5804
+14dee 4 283 5804
+14df2 3 284 5804
+14df5 7 295 5804
+14dfc 6 296 5804
+FUNC 14e02 61 4 DName::DName(DNameStatus)
+14e02 2 457 5804
+14e04 21 458 5804
+14e25 1e 459 5804
+14e43 7 467 5804
+14e4a 9 469 5804
+14e53 a 470 5804
+14e5d 6 472 5804
+FUNC 14e63 17 0 DName::isValid()
+14e63 17 478 5804
+FUNC 14e7a 15 0 DName::isEmpty()
+14e7a 15 479 5804
+FUNC 14e8f 14 0 DName::isUDC()
+14e8f 14 486 5804
+FUNC 14ea3 e 0 DName::setIsUDC()
+14ea3 e 487 5804
+FUNC 14eb1 14 0 DName::isUDTThunk()
+14eb1 14 488 5804
+FUNC 14ec5 25 0 DName::length()
+14ec5 1 502 5804
+14ec6 2 503 5804
+14ec8 a 506 5804
+14ed2 4 507 5804
+14ed6 b 508 5804
+14ee1 5 507 5804
+14ee6 3 510 5804
+14ee9 1 512 5804
+FUNC 14eea 38 0 DName::getLastChar()
+14eea 2 516 5804
+14eec 2 517 5804
+14eee 9 519 5804
+14ef7 6 520 5804
+14efd a 521 5804
+14f07 2 522 5804
+14f09 7 520 5804
+14f10 11 524 5804
+14f21 1 526 5804
+FUNC 14f22 91 8 DName::getString(char *,int)
+14f22 7 530 5804
+14f29 9 531 5804
+14f32 5 535 5804
+14f37 7 537 5804
+14f3e e 538 5804
+14f4c c 544 5804
+14f58 d 550 5804
+14f65 4 553 5804
+14f69 8 555 5804
+14f71 4 561 5804
+14f75 6 565 5804
+14f7b 2 566 5804
+14f7d b 570 5804
+14f88 4 574 5804
+14f8c 2 578 5804
+14f8e 3 579 5804
+14f91 3 586 5804
+14f94 4 553 5804
+14f98 4 590 5804
+14f9c 2 593 5804
+14f9e 6 594 5804
+14fa4 6 595 5804
+14faa 5 599 5804
+14faf 4 601 5804
+FUNC 14fb3 35 4 DName::operator|=(DName const &)
+14fb3 3 832 5804
+14fb6 19 835 5804
+14fcf 13 836 5804
+14fe2 3 840 5804
+14fe5 3 842 5804
+FUNC 14fe8 81 4 DName::operator=(DNameStatus)
+14fe8 2 928 5804
+14fea 10 929 5804
+14ffa 12 937 5804
+1500c 26 945 5804
+15032 6 947 5804
+15038 e 948 5804
+15046 10 933 5804
+15056 d 934 5804
+15063 3 954 5804
+15066 3 956 5804
+FUNC 15069 1e 0 Replicator::Replicator()
+15069 1e 1004 5804
+FUNC 15087 47 4 Replicator::operator+=(DName const &)
+15087 3 1009 5804
+1508a 12 1010 5804
+1509c 20 1012 5804
+150bc 4 1017 5804
+150c0 8 1018 5804
+150c8 3 1022 5804
+150cb 3 1024 5804
+FUNC 150ce 47 0 DNameNode::clone()
+150ce 3 1055 5804
+150d1 43 1056 5804
+15114 1 1057 5804
+FUNC 15115 65 8 pcharNode::pcharNode(char const *,int)
+15115 1 1197 5804
+15116 1f 1200 5804
+15135 c 1201 5804
+15141 8 1205 5804
+15149 c 1207 5804
+15155 a 1210 5804
+1515f b 1211 5804
+1516a 2 1214 5804
+1516c 3 1216 5804
+1516f 4 1217 5804
+15173 7 1220 5804
+FUNC 1517a 12 0 pcharNode::getLastChar()
+1517a 12 1191 5804
+FUNC 1518c 31 8 pcharNode::getString(char *,int)
+1518c 0 1224 5804
+1518c b 1227 5804
+15197 2 1228 5804
+15199 21 1232 5804
+151ba 3 1234 5804
+FUNC 151bd f 0 pDNameNode::length()
+151bd f 1246 5804
+FUNC 151cc f 0 pDNameNode::getLastChar()
+151cc f 1248 5804
+FUNC 151db 1d 8 pDNameNode::getString(char *,int)
+151db 1d 1251 5804
+FUNC 151f8 33 8 DNameStatusNode::getString(char *,int)
+151f8 0 1269 5804
+151f8 b 1272 5804
+15203 2 1273 5804
+15205 23 1277 5804
+15228 3 1279 5804
+FUNC 1522b 73 14 UnDecorator::UnDecorator(char *,char const *,int,char * (*)(long),unsigned long)
+1522b 16 736 5771
+15241 8 737 5771
+15249 5 738 5771
+1524e 9 740 5771
+15257 a 741 5771
+15261 5 745 5771
+15266 2 747 5771
+15268 6 748 5771
+1526e 6 749 5771
+15274 8 754 5771
+1527c 15 755 5771
+15291 d 758 5771
+FUNC 1529e 2f 4 UnDecorator::getReturnType(DName *)
+1529e 3 2906 5771
+152a1 8 2907 5771
+152a9 15 2911 5771
+152be d 2915 5771
+152cb 2 2917 5771
+FUNC 152cd f 0 UnDecorator::getStorageConvention()
+152cd f 4032 5771
+FUNC 152dc 79 4 DName::operator+=(DNameStatus)
+152dc 4 799 5804
+152e0 17 800 5804
+152f7 20 804 5804
+15317 4 807 5804
+1531b 7 809 5804
+15322 6 811 5804
+15328 8 812 5804
+15330 2 815 5804
+15332 3 816 5804
+15335 5 818 5804
+1533a e 819 5804
+15348 7 801 5804
+1534f 3 825 5804
+15352 3 827 5804
+FUNC 15355 68 4 DName::operator=(DName *)
+15355 3 901 5804
+15358 12 902 5804
+1536a 7 903 5804
+15371 29 911 5804
+1539a 6 913 5804
+153a0 c 914 5804
+153ac 2 917 5804
+153ae 9 918 5804
+153b7 3 922 5804
+153ba 3 924 5804
+FUNC 153bd a6 8 DName::doPchar(char const *,int)
+153bd 3 962 5804
+153c0 1e 963 5804
+153de 6 964 5804
+153e4 c 965 5804
+153f0 10 966 5804
+15400 5 970 5804
+15405 23 984 5804
+15428 6 986 5804
+1542e 9 987 5804
+15437 2 988 5804
+15439 1b 977 5804
+15454 c 993 5804
+15460 3 995 5804
+FUNC 15463 26 4 DName::DName(char)
+15463 3 238 5804
+15466 3 244 5804
+15469 7 248 5804
+15470 7 252 5804
+15477 c 253 5804
+15483 6 255 5804
+FUNC 15489 31 4 DName::DName(char const *)
+15489 0 300 5804
+15489 16 312 5804
+1549f 15 313 5804
+154b4 6 315 5804
+FUNC 154ba d0 8 DName::DName(char const * &,char)
+154ba 7 319 5804
+154c1 d 329 5804
+154ce f 333 5804
+154dd 8 334 5804
+154e5 9 342 5804
+154ee 40 343 5804
+1552e b 344 5804
+15539 9 355 5804
+15542 8 359 5804
+1554a 8 361 5804
+15552 9 363 5804
+1555b 3 364 5804
+1555e 2 367 5804
+15560 3 347 5804
+15563 a 378 5804
+1556d 8 380 5804
+15575 6 368 5804
+1557b 7 371 5804
+15582 6 372 5804
+15588 2 375 5804
+FUNC 1558a 69 8 DName::DName(unsigned __int64)
+1558a 15 384 5804
+1559f 3 390 5804
+155a2 a 398 5804
+155ac 4 402 5804
+155b0 13 406 5804
+155c3 3 407 5804
+155c6 c 409 5804
+155d2 e 411 5804
+155e0 13 413 5804
+FUNC 155f3 96 8 DName::DName(__int64)
+155f3 10 416 5804
+15603 26 436 5804
+15629 15 438 5804
+1563e 10 443 5804
+1564e 5 444 5804
+15653 c 446 5804
+1565f 6 448 5804
+15665 4 449 5804
+15669 e 452 5804
+15677 12 453 5804
+FUNC 15689 2e 4 DName::operator+(DNameStatus)
+15689 1 675 5804
+1568a c 676 5804
+15696 9 679 5804
+1569f b 680 5804
+156aa 2 681 5804
+156ac 5 682 5804
+156b1 3 686 5804
+156b4 3 688 5804
+FUNC 156b7 62 4 DName::operator+=(DName const &)
+156b7 2 739 5804
+156b9 f 740 5804
+156c8 13 741 5804
+156db 2 742 5804
+156dd 9 743 5804
+156e6 6 744 5804
+156ec 2 745 5804
+156ee 7 747 5804
+156f5 6 749 5804
+156fb 9 750 5804
+15704 2 751 5804
+15706 d 752 5804
+15713 3 758 5804
+15716 3 760 5804
+FUNC 15719 8b 4 DName::operator+=(DName *)
+15719 2 764 5804
+1571b a 765 5804
+15725 9 766 5804
+1572e 8 767 5804
+15736 10 768 5804
+15746 8 789 5804
+1574e 20 770 5804
+1576e 4 773 5804
+15772 7 775 5804
+15779 6 777 5804
+1577f 8 778 5804
+15787 2 781 5804
+15789 3 782 5804
+1578c 5 784 5804
+15791 d 785 5804
+1579e 3 793 5804
+157a1 3 795 5804
+FUNC 157a4 1c 4 DName::operator=(char)
+157a4 1 847 5804
+157a5 15 854 5804
+157ba 3 856 5804
+157bd 3 858 5804
+FUNC 157c0 2a 4 DName::operator=(char const *)
+157c0 0 862 5804
+157c0 24 869 5804
+157e4 3 873 5804
+157e7 3 875 5804
+FUNC 157ea a6 0 UnDecorator::getCallingConvention()
+157ea 5 2825 5771
+157ef f 2826 5771
+157fe c 2828 5771
+1580a 5 2835 5771
+1580f 1a 2845 5771
+15829 20 2852 5771
+15849 2 2875 5771
+1584b 2 2876 5771
+1584d 2 2871 5771
+1584f 2 2872 5771
+15851 2 2867 5771
+15853 2 2868 5771
+15855 2 2863 5771
+15857 2 2864 5771
+15859 1 2859 5771
+1585a 2 2860 5771
+1585c 13 2855 5771
+1586f e 2891 5771
+1587d 4 2895 5771
+15881 d 2899 5771
+1588e 2 2901 5771
+FUNC 15890 37 0 UnDecorator::getVCallThunkType()
+15890 3 4057 5771
+15893 9 4059 5771
+1589c 5 4066 5771
+158a1 4 4059 5771
+158a5 4 4066 5771
+158a9 6 4061 5771
+158af c 4062 5771
+158bb a 4064 5771
+158c5 2 4170 5771
+FUNC 158c7 51 4 DName::operator+(DName const &)
+158c7 1 639 5804
+158c8 c 640 5804
+158d4 b 643 5804
+158df b 644 5804
+158ea d 645 5804
+158f7 11 646 5804
+15908 2 647 5804
+1590a 8 648 5804
+15912 3 652 5804
+15915 3 654 5804
+FUNC 15918 2e 4 DName::operator+(DName *)
+15918 1 658 5804
+15919 c 659 5804
+15925 9 662 5804
+1592e b 663 5804
+15939 2 664 5804
+1593b 5 665 5804
+15940 3 669 5804
+15943 3 671 5804
+FUNC 15946 6a 4 DName::operator+=(char)
+15946 1 693 5804
+15947 b 694 5804
+15952 9 695 5804
+1595b 6 696 5804
+15961 2 697 5804
+15963 7 699 5804
+1596a 6 701 5804
+15970 2b 702 5804
+1599b 2 703 5804
+1599d c 704 5804
+159a9 4 710 5804
+159ad 3 712 5804
+FUNC 159b0 6c 4 DName::operator+=(char const *)
+159b0 2 716 5804
+159b2 f 717 5804
+159c1 9 718 5804
+159ca 6 719 5804
+159d0 2 720 5804
+159d2 7 722 5804
+159d9 6 724 5804
+159df 28 725 5804
+15a07 2 726 5804
+15a09 d 727 5804
+15a16 3 733 5804
+15a19 3 735 5804
+FUNC 15a1c e0 0 UnDecorator::getArgumentList()
+15a1c 7 3076 5771
+15a23 12 3078 5771
+15a35 29 3081 5771
+15a5e 6 3085 5771
+15a64 4 3086 5771
+15a68 2 3087 5771
+15a6a e 3088 5771
+15a78 6 3093 5771
+15a7e 6 3095 5771
+15a84 5 3100 5771
+15a89 1 3102 5771
+15a8a 11 3106 5771
+15a9b 2 3109 5771
+15a9d 16 3116 5771
+15ab3 19 3121 5771
+15acc 9 3122 5771
+15ad5 17 3126 5771
+15aec b 3132 5771
+15af7 3 3141 5771
+15afa 2 3143 5771
+FUNC 15afc 4f 4 UnDecorator::getVdispMapType(DName const &)
+15afc 6 4230 5771
+15b02 d 4231 5771
+15b0f c 4232 5771
+15b1b 12 4233 5771
+15b2d 9 4234 5771
+15b36 a 4236 5771
+15b40 6 4237 5771
+15b46 3 4238 5771
+15b49 2 4239 5771
+FUNC 15b4b 22 8 operator+(char,DName const &)
+15b4b 22 198 5804
+FUNC 15b6d 22 8 operator+(DNameStatus,DName const &)
+15b6d 22 201 5804
+FUNC 15b8f 22 8 operator+(char const *,DName const &)
+15b8f 22 204 5804
+FUNC 15bb1 2e 4 DName::operator+(char)
+15bb1 1 605 5804
+15bb2 c 606 5804
+15bbe 9 609 5804
+15bc7 b 610 5804
+15bd2 2 611 5804
+15bd4 5 612 5804
+15bd9 3 616 5804
+15bdc 3 618 5804
+FUNC 15bdf 2e 4 DName::operator+(char const *)
+15bdf 1 622 5804
+15be0 c 623 5804
+15bec 9 626 5804
+15bf5 b 627 5804
+15c00 2 628 5804
+15c02 5 629 5804
+15c07 3 633 5804
+15c0a 3 635 5804
+FUNC 15c0d 141 4 UnDecorator::getDimension(bool)
+15c0d 7 1616 5771
+15c14 10 1618 5771
+15c24 e 1620 5771
+15c32 6 1623 5771
+15c38 f 1624 5771
+15c47 8 1625 5771
+15c4f 47 1626 5771
+15c96 4 1629 5771
+15c9a 4 1636 5771
+15c9e 8 1638 5771
+15ca6 20 1639 5771
+15cc6 d 1643 5771
+15cd3 4 1634 5771
+15cd7 b 1649 5771
+15ce2 2 1650 5771
+15ce4 5 1652 5771
+15ce9 13 1653 5771
+15cfc c 1637 5771
+15d08 4 1641 5771
+15d0c a 1653 5771
+15d16 36 1655 5771
+15d4c 2 1659 5771
+FUNC 15d4e d4 0 UnDecorator::getEnumType()
+15d4e 6 2762 5771
+15d54 1a 2766 5771
+15d6e 12 2770 5771
+15d80 5 2774 5771
+15d85 2 2775 5771
+15d87 5 2779 5771
+15d8c 2 2780 5771
+15d8e 5 2786 5771
+15d93 2 2787 5771
+15d95 d 2791 5771
+15da2 1f 2801 5771
+15dc1 1e 2807 5771
+15ddf e 2814 5771
+15ded 4 2795 5771
+15df1 d 2818 5771
+15dfe 24 2820 5771
+FUNC 15e22 c4 0 UnDecorator::getArgumentTypes()
+15e22 3 3035 5771
+15e25 18 3036 5771
+15e3d 9 3046 5771
+15e46 7 3051 5771
+15e4d 13 3052 5771
+15e60 c 3064 5771
+15e6c 36 3058 5771
+15ea2 b 3061 5771
+15ead 21 3039 5771
+15ece 16 3042 5771
+15ee4 2 3072 5771
+FUNC 15ee6 7e 0 UnDecorator::getThrowTypes()
+15ee6 3 3148 5771
+15ee9 e 3149 5771
+15ef7 2 3150 5771
+15ef9 21 3151 5771
+15f1a 1f 3153 5771
+15f39 29 3155 5771
+15f62 2 3157 5771
+FUNC 15f64 125 c UnDecorator::getExtendedDataIndirectType(char &,bool &,int)
+15f64 6 3636 5771
+15f6a 1a 3641 5771
+15f84 1c 3643 5771
+15fa0 a 3669 5771
+15faa 6 3670 5771
+15fb0 b 3672 5771
+15fbb a 3674 5771
+15fc5 21 3675 5771
+15fe6 17 3678 5771
+15ffd a 3680 5771
+16007 6 3689 5771
+1600d 2 3691 5771
+1600f 17 3693 5771
+16026 1e 3700 5771
+16044 6 3663 5771
+1604a 2 3665 5771
+1604c 3 3656 5771
+1604f d 3657 5771
+1605c 2 3659 5771
+1605e 6 3647 5771
+16064 13 3649 5771
+16077 10 3703 5771
+16087 2 3704 5771
+FUNC 16089 15f 4 UnDecorator::getArrayType(DName const &)
+16089 3 3986 5771
+1608c 12 3987 5771
+1609e 7 3989 5771
+160a5 4 3991 5771
+160a9 2 3992 5771
+160ab 4 3994 5771
+160af 9 3995 5771
+160b8 2a 4026 5771
+160e2 2 4028 5771
+160e4 c 3998 5771
+160f0 9 4000 5771
+160f9 d 4001 5771
+16106 35 4005 5771
+1613b b 4009 5771
+16146 4 4010 5771
+1614a 8 4011 5771
+16152 2 4012 5771
+16154 2c 4013 5771
+16180 d 4017 5771
+1618d 9 4018 5771
+16196 12 4019 5771
+161a8 a 4023 5771
+161b2 36 4024 5771
+FUNC 161e8 31 0 UnDecorator::getLexicalFrame()
+161e8 31 4031 5771
+FUNC 16219 12 0 UnDecorator::getDisplacement()
+16219 12 4048 5771
+FUNC 1622b 12 0 UnDecorator::getCallIndex()
+1622b 12 4049 5771
+FUNC 1623d 12 0 UnDecorator::getGuardNumber()
+1623d 12 4050 5771
+FUNC 1624f 150 4 UnDecorator::getVfTableType(DName const &)
+1624f 7 4174 5771
+16256 d 4175 5771
+16263 1d 4178 5771
+16280 2c 4180 5771
+162ac f 4182 5771
+162bb e 4184 5771
+162c9 5 4186 5771
+162ce 11 4188 5771
+162df 2d 4190 5771
+1630c b 4194 5771
+16317 7 4195 5771
+1631e 10 4199 5771
+1632e a 4200 5771
+16338 b 4188 5771
+16343 b 4204 5771
+1634e a 4206 5771
+16358 7 4207 5771
+1635f 9 4209 5771
+16368 a 4216 5771
+16372 6 4217 5771
+16378 2 4220 5771
+1637a 9 4221 5771
+16383 17 4222 5771
+1639a 3 4224 5771
+1639d 2 4226 5771
+FUNC 1639f a0 8 UnDecorator::getStringEncoding(char *,int)
+1639f 6 1447 5771
+163a5 b 1448 5771
+163b0 22 1451 5771
+163d2 6 1456 5771
+163d8 b 1459 5771
+163e3 b 1462 5771
+163ee 13 1464 5771
+16401 c 1466 5771
+1640d 5 1469 5771
+16412 6 1470 5771
+16418 4 1471 5771
+1641c 14 1477 5771
+16430 d 1452 5771
+1643d 2 1478 5771
+FUNC 1643f 50 0 UnDecorator::getSignedDimension()
+1643f 5 1603 5771
+16444 b 1604 5771
+1644f c 1605 5771
+1645b 2 1606 5771
+1645d 23 1608 5771
+16480 d 1611 5771
+1648d 2 1612 5771
+FUNC 1648f 2bb 0 UnDecorator::getTemplateConstant()
+1648f 15 1877 5771
+164a4 f 1884 5771
+164b3 32 1885 5771
+164e5 9 1921 5771
+164ee b 1922 5771
+164f9 20 1924 5771
+16519 12 1931 5771
+1652b e 1932 5771
+16539 3 1937 5771
+1653c 7 1939 5771
+16543 6 1941 5771
+16549 4 1942 5771
+1654d 2 1944 5771
+1654f 4 1945 5771
+16553 2a 1950 5771
+1657d a 1900 5771
+16587 6 1902 5771
+1658d 11 1903 5771
+1659e 1b 1906 5771
+165b9 b 1892 5771
+165c4 6 2034 5771
+165ca 7 1954 5771
+165d1 26 1885 5771
+165f7 b 1990 5771
+16602 c 1991 5771
+1660e 10 1992 5771
+1661e 9 1966 5771
+16627 c 1968 5771
+16633 e 1971 5771
+16641 10 1973 5771
+16651 6 1975 5771
+16657 6 1976 5771
+1665d 3 1980 5771
+16660 29 1981 5771
+16689 a 1983 5771
+16693 a 2001 5771
+1669d a 2003 5771
+166a7 13 2007 5771
+166ba a 2008 5771
+166c4 11 2012 5771
+166d5 13 2015 5771
+166e8 a 2016 5771
+166f2 13 2021 5771
+16705 a 2022 5771
+1670f 13 2026 5771
+16722 d 2029 5771
+1672f 7 1913 5771
+16736 14 2041 5771
+FUNC 1674a d9 8 UnDecorator::getPtrRefDataType(DName const &,int)
+1674a 3 3937 5771
+1674d 11 3940 5771
+1675e b 3944 5771
+16769 12 3948 5771
+1677b 12 3949 5771
+1678d 10 3951 5771
+1679d 5 3957 5771
+167a2 16 3961 5771
+167b8 d 3967 5771
+167c5 c 3968 5771
+167d1 b 3970 5771
+167dc 6 3972 5771
+167e2 1e 3974 5771
+16800 e 3976 5771
+1680e 13 3980 5771
+16821 2 3982 5771
+FUNC 16823 14 4 UnDecorator::getVbTableType(DName const &)
+16823 14 4053 5771
+FUNC 16837 1b8 0 UnDecorator::getTemplateArgumentList()
+16837 14 1775 5771
+1684b c 1777 5771
+16857 7 1778 5771
+1685e 2a 1781 5771
+16888 6 1785 5771
+1688e 4 1786 5771
+16892 2 1787 5771
+16894 e 1788 5771
+168a2 8 1793 5771
+168aa 5 1798 5771
+168af 1 1800 5771
+168b0 11 1804 5771
+168c1 5 1807 5771
+168c6 7 1810 5771
+168cd 7 1816 5771
+168d4 6 1817 5771
+168da 12 1818 5771
+168ec a 1820 5771
+168f6 5 1821 5771
+168fb e 1822 5771
+16909 5 1824 5771
+1690e 9 1830 5771
+16917 c 1832 5771
+16923 e 1835 5771
+16931 10 1837 5771
+16941 6 1839 5771
+16947 1 1840 5771
+16948 2 1842 5771
+1694a 25 1843 5771
+1696f 2 1846 5771
+16971 10 1847 5771
+16981 2 1850 5771
+16983 1f 1851 5771
+169a2 17 1857 5771
+169b9 9 1858 5771
+169c2 16 1862 5771
+169d8 17 1873 5771
+FUNC 169ef 56f 8 UnDecorator::getOperatorName(bool,bool *)
+169ef b 1095 5771
+169fa 53 1103 5771
+16a4d 13 1183 5771
+16a60 c 1439 5771
+16a6c 1d 1440 5771
+16a89 11 1442 5771
+16a9a 5 1444 5771
+16a9f 3 1124 5771
+16aa2 8 1126 5771
+16aaa 21 1127 5771
+16acb c 1129 5771
+16ad7 a 1130 5771
+16ae1 a 1133 5771
+16aeb 7 1135 5771
+16af2 3 1136 5771
+16af5 9 1144 5771
+16afe 5 1145 5771
+16b03 6 1148 5771
+16b09 2 1154 5771
+16b0b 15 1156 5771
+16b20 18 1160 5771
+16b38 1a 1161 5771
+16b52 10 1166 5771
+16b62 b 1167 5771
+16b6d 5 1170 5771
+16b72 6 1106 5771
+16b78 f 1108 5771
+16b87 21 1103 5771
+16ba8 3d 1220 5771
+16be5 18 1240 5771
+16bfd b 1234 5771
+16c08 5 1235 5771
+16c0d 13 1245 5771
+16c20 7 1247 5771
+16c27 8 1249 5771
+16c2f 18 1220 5771
+16c47 13 1255 5771
+16c5a 7 1256 5771
+16c61 2 1257 5771
+16c63 16 1335 5771
+16c79 7 1356 5771
+16c80 6 1350 5771
+16c86 2 1352 5771
+16c88 25 1220 5771
+16cad 13 1290 5771
+16cc0 17 1291 5771
+16cd7 24 1292 5771
+16cfb 14 1313 5771
+16d0f 6 1316 5771
+16d15 5 1317 5771
+16d1a 10 1302 5771
+16d2a 20 1303 5771
+16d4a 20 1304 5771
+16d6a 20 1305 5771
+16d8a 22 1306 5771
+16dac 12 1307 5771
+16dbe c 1296 5771
+16dca 2b 1297 5771
+16df5 13 1281 5771
+16e08 17 1282 5771
+16e1f 1a 1283 5771
+16e39 5 1284 5771
+16e3e 2d 1220 5771
+16e6b 25 1364 5771
+16e90 10 1373 5771
+16ea0 13 1378 5771
+16eb3 a 1397 5771
+16ebd 13 1399 5771
+16ed0 a 1403 5771
+16eda 6 1405 5771
+16ee0 2 1408 5771
+16ee2 13 1410 5771
+16ef5 d 1413 5771
+16f02 5 1415 5771
+16f07 10 1278 5771
+16f17 b 1330 5771
+16f22 5 1428 5771
+16f27 3 1187 5771
+16f2a 13 1216 5771
+16f3d 8 1437 5771
+16f45 19 1438 5771
+FUNC 16f5e 153 4 UnDecorator::getTemplateName(bool)
+16f5e 5 1700 5771
+16f63 1f 1704 5771
+16f82 16 1714 5771
+16f98 1d 1716 5771
+16fb5 23 1725 5771
+16fd8 e 1729 5771
+16fe6 6 1730 5771
+16fec 12 1732 5771
+16ffe 2 1734 5771
+17000 16 1735 5771
+17016 c 1738 5771
+17022 7 1739 5771
+17029 6 1746 5771
+1702f 21 1747 5771
+17050 c 1749 5771
+1705c a 1750 5771
+17066 a 1753 5771
+17070 6 1755 5771
+17076 6 1756 5771
+1707c 23 1769 5771
+1709f d 1705 5771
+170ac 5 1771 5771
+FUNC 170b1 1ea 4 UnDecorator::getZName(bool)
+170b1 10 1007 5771
+170c1 11 1008 5771
+170d2 3 1013 5771
+170d5 26 1043 5771
+170fb b 1024 5771
+17106 5 1026 5771
+1710b 16 1028 5771
+17121 16 1030 5771
+17137 17 1031 5771
+1714e 7 1033 5771
+17155 25 1040 5771
+1717a 5 1042 5771
+1717f 29 1043 5771
+171a8 8 1045 5771
+171b0 b 1051 5771
+171bb c 1053 5771
+171c7 e 1056 5771
+171d5 10 1058 5771
+171e5 4 1060 5771
+171e9 b 1061 5771
+171f4 2 1063 5771
+171f6 a 1064 5771
+17200 10 1065 5771
+17210 2 1068 5771
+17212 d 1069 5771
+1721f 2a 1070 5771
+17249 2 1073 5771
+1724b 1a 1076 5771
+17265 11 1083 5771
+17276 9 1084 5771
+1727f f 1087 5771
+1728e d 1090 5771
+FUNC 1729b e4 0 UnDecorator::getScopedName()
+1729b 7 2727 5771
+172a2 e 2728 5771
+172b0 15 2733 5771
+172c5 1a 2737 5771
+172df 2a 2738 5771
+17309 b 2742 5771
+17314 8 2743 5771
+1731c 4 2744 5771
+17320 1b 2745 5771
+1733b b 2746 5771
+17346 7 2747 5771
+1734d 2 2748 5771
+1734f 2b 2749 5771
+1737a 3 2753 5771
+1737d 2 2755 5771
+FUNC 1737f f 0 UnDecorator::getECSUName()
+1737f f 2758 5771
+FUNC 1738e 100 0 UnDecorator::getECSUDataType()
+1738e 3 3392 5771
+17391 20 3395 5771
+173b1 37 3399 5771
+173e8 5 3424 5771
+173ed 2 3425 5771
+173ef 5 3420 5771
+173f4 2 3421 5771
+173f6 26 3431 5771
+1741c 2 3432 5771
+1741e 5 3415 5771
+17423 2 3416 5771
+17425 5 3411 5771
+1742a 2 3412 5771
+1742c d 3407 5771
+17439 7 3439 5771
+17440 4 3441 5771
+17444 c 3442 5771
+17450 16 3446 5771
+17466 e 3450 5771
+17474 18 3404 5771
+1748c 2 3452 5771
+FUNC 1748e 46 0 UnDecorator::getSymbolName()
+1748e 3 989 5771
+17491 a 990 5771
+1749b 6 991 5771
+174a1 c 992 5771
+174ad 16 997 5771
+174c3 f 1001 5771
+174d2 2 1003 5771
+FUNC 174d4 92 0 UnDecorator::getBasedType()
+174d4 6 2653 5771
+174da 13 2654 5771
+174ed a 2659 5771
+174f7 17 2661 5771
+1750e c 2707 5771
+1751a 13 2699 5771
+1752d 2 2700 5771
+1752f d 2674 5771
+1753c 2 2711 5771
+1753e a 2712 5771
+17548 d 2716 5771
+17555 f 2720 5771
+17564 2 2722 5771
+FUNC 17566 b42 4 UnDecorator::composeDeclaration(DName const &)
+17566 6 2045 5771
+1756c e 2046 5771
+1757a 5 2047 5771
+1757f a 2048 5771
+17589 b 2053 5771
+17594 f 2054 5771
+175a3 8 2055 5771
+175ab 15 2056 5771
+175c0 8 2057 5771
+175c8 10 2058 5771
+175d8 83 2075 5771
+1765b 7 2081 5771
+17662 19 2082 5771
+1767b 21 2083 5771
+1769c 2 2084 5771
+1769e 15 2085 5771
+176b3 27 2090 5771
+176da 33 2092 5771
+1770d 9 2094 5771
+17716 9 2096 5771
+1771f 2b 2098 5771
+1774a d 2101 5771
+17757 9 2103 5771
+17760 2d 2105 5771
+1778d 2e 2107 5771
+177bb 5 2111 5771
+177c0 3 2114 5771
+177c3 3 2115 5771
+177c6 3 2116 5771
+177c9 3 2117 5771
+177cc 3 2118 5771
+177cf 26 2121 5771
+177f5 12 2123 5771
+17807 19 2125 5771
+17820 19 2126 5771
+17839 2 2127 5771
+1783b 12 2129 5771
+1784d 19 2131 5771
+17866 1b 2134 5771
+17881 13 2141 5771
+17894 a 2142 5771
+1789e 15 2143 5771
+178b3 2 2144 5771
+178b5 f 2145 5771
+178c4 10 2147 5771
+178d4 9 2151 5771
+178dd 22 2152 5771
+178ff 2 2153 5771
+17901 13 2168 5771
+17914 c 2172 5771
+17920 14 2173 5771
+17934 1a 2174 5771
+1794e 2 2175 5771
+17950 b 2176 5771
+1795b 5 2182 5771
+17960 6 2185 5771
+17966 27 2187 5771
+1798d b 2189 5771
+17998 5 2190 5771
+1799d 1b 2194 5771
+179b8 15 2195 5771
+179cd 1d 2202 5771
+179ea 16 2204 5771
+17a00 55 2205 5771
+17a55 12 2206 5771
+17a67 2b 2207 5771
+17a92 2 2208 5771
+17a94 d 2209 5771
+17aa1 1a 2211 5771
+17abb 2e 2218 5771
+17ae9 12 2222 5771
+17afb c 2223 5771
+17b07 c 2227 5771
+17b13 15 2228 5771
+17b28 2 2229 5771
+17b2a f 2230 5771
+17b39 1a 2235 5771
+17b53 b 2237 5771
+17b5e 3 2238 5771
+17b61 5 2243 5771
+17b66 b 2245 5771
+17b71 1c 2250 5771
+17b8d 13 2251 5771
+17ba0 e 2252 5771
+17bae 2 2253 5771
+17bb0 10 2254 5771
+17bc0 3d 2255 5771
+17bfd c 2256 5771
+17c09 e 2257 5771
+17c17 4c 2258 5771
+17c63 a 2259 5771
+17c6d 4b 2260 5771
+17cb8 7 2261 5771
+17cbf 4b 2262 5771
+17d0a f 2263 5771
+17d19 f 2264 5771
+17d28 6 2268 5771
+17d2e 61 2277 5771
+17d8f 15 2281 5771
+17da4 2 2283 5771
+17da6 18 2285 5771
+17dbe 2d 2292 5771
+17deb 12 2294 5771
+17dfd 37 2296 5771
+17e34 23 2297 5771
+17e57 b7 2299 5771
+17f0e 23 2300 5771
+17f31 12 2306 5771
+17f43 37 2307 5771
+17f7a b 2308 5771
+17f85 37 2309 5771
+17fbc b 2310 5771
+17fc7 30 2311 5771
+17ff7 23 2312 5771
+1801a 36 2319 5771
+18050 1e 2320 5771
+1806e 8 2325 5771
+18076 1e 2326 5771
+18094 12 2329 5771
+180a6 2 2331 5771
+FUNC 180a8 211 0 UnDecorator::getDecoratedName()
+180a8 7 861 5771
+180af e 864 5771
+180bd a 868 5771
+180c7 b 873 5771
+180d2 8 874 5771
+180da 11 876 5771
+180eb 10 878 5771
+180fb 6 882 5771
+18101 9 903 5771
+1810a 9 906 5771
+18113 8 910 5771
+1811b 6 912 5771
+18121 5 910 5771
+18126 2 915 5771
+18128 a 918 5771
+18132 19 919 5771
+1814b 6 920 5771
+18151 f 924 5771
+18160 8 925 5771
+18168 17 929 5771
+1817f a 930 5771
+18189 c 932 5771
+18195 8 933 5771
+1819d 5 934 5771
+181a2 18 935 5771
+181ba a 936 5771
+181c4 13 937 5771
+181d7 b 938 5771
+181e2 2 940 5771
+181e4 29 941 5771
+1820d 4 945 5771
+18211 10 946 5771
+18221 9 948 5771
+1822a 3 950 5771
+1822d 1c 955 5771
+18249 f 959 5771
+18258 4 976 5771
+1825c 6 962 5771
+18262 14 964 5771
+18276 19 967 5771
+1828f 5 968 5771
+18294 10 971 5771
+182a4 2 979 5771
+182a6 2 980 5771
+182a8 f 982 5771
+182b7 2 984 5771
+FUNC 182b9 28b 0 UnDecorator::getScope()
+182b9 d 1482 5771
+182c6 f 1483 5771
+182d5 2a 1489 5771
+182ff 14 1492 5771
+18313 b 1495 5771
+1831e 16 1496 5771
+18334 5 1498 5771
+18339 17 1499 5771
+18350 3 1500 5771
+18353 f 1506 5771
+18362 2a 1507 5771
+1838c 10 1566 5771
+1839c 5 1567 5771
+183a1 34 1561 5771
+183d5 4 1562 5771
+183d9 5 1563 5771
+183de e 1510 5771
+183ec 5 1514 5771
+183f1 22 1515 5771
+18413 e 1518 5771
+18421 6 1519 5771
+18427 5 1522 5771
+1842c 2a 1523 5771
+18456 2 1524 5771
+18458 f 1546 5771
+18467 1a 1548 5771
+18481 b 1550 5771
+1848c 9 1551 5771
+18495 2 1554 5771
+18497 f 1530 5771
+184a6 2 1570 5771
+184a8 21 1571 5771
+184c9 a 1489 5771
+184d3 f 1577 5771
+184e2 18 1590 5771
+184fa 2 1591 5771
+184fc b 1580 5771
+18507 7 1581 5771
+1850e 2 1582 5771
+18510 2b 1583 5771
+1853b 4 1597 5771
+1853f 5 1599 5771
+FUNC 18544 341 4 UnDecorator::getFunctionIndirectType(DName const &)
+18544 3 3461 5771
+18547 e 3462 5771
+18555 15 3463 5771
+1856a f 3465 5771
+18579 10 3466 5771
+18589 7 3469 5771
+18590 a 3471 5771
+1859a 6 3473 5771
+185a0 7 3475 5771
+185a7 d 3477 5771
+185b4 17 3482 5771
+185cb 9 3485 5771
+185d4 3 3486 5771
+185d7 5 3490 5771
+185dc f 3491 5771
+185eb 6 3496 5771
+185f1 13 3497 5771
+18604 b 3501 5771
+1860f 1e 3503 5771
+1862d 8 3505 5771
+18635 29 3506 5771
+1865e 2 3507 5771
+18660 17 3508 5771
+18677 f 3510 5771
+18686 4 3511 5771
+1868a 10 3518 5771
+1869a 15 3519 5771
+186af 9 3527 5771
+186b8 d 3528 5771
+186c5 30 3529 5771
+186f5 2 3530 5771
+186f7 11 3521 5771
+18708 7 3514 5771
+1870f 16 3516 5771
+18725 13 3531 5771
+18738 d 3535 5771
+18745 22 3537 5771
+18767 2 3546 5771
+18769 13 3547 5771
+1877c c 3551 5771
+18788 28 3552 5771
+187b0 1e 3557 5771
+187ce c 3558 5771
+187da 2e 3561 5771
+18808 10 3563 5771
+18818 c 3564 5771
+18824 c 3566 5771
+18830 15 3567 5771
+18845 2 3568 5771
+18847 f 3569 5771
+18856 4 3573 5771
+1885a b 3574 5771
+18865 e 3580 5771
+18873 10 3576 5771
+18883 2 3581 5771
+FUNC 18885 4e4 10 UnDecorator::getDataIndirectType(DName const &,char,DName const &,int)
+18885 6 3707 5771
+1888b 23 3711 5771
+188ae 4 3713 5771
+188b2 17 3715 5771
+188c9 c 3717 5771
+188d5 10 3719 5771
+188e5 e 3723 5771
+188f3 6 3725 5771
+188f9 15 3726 5771
+1890e 17 3732 5771
+18925 11 3751 5771
+18936 a 3752 5771
+18940 32 3753 5771
+18972 5 3754 5771
+18977 11 3743 5771
+18988 a 3744 5771
+18992 25 3745 5771
+189b7 2 3746 5771
+189b9 8 3747 5771
+189c1 2 3749 5771
+189c3 19 3735 5771
+189dc a 3736 5771
+189e6 14 3737 5771
+189fa 5 3738 5771
+189ff 11 3739 5771
+18a10 6 3766 5771
+18a16 a 3768 5771
+18a20 17 3770 5771
+18a37 10 3772 5771
+18a47 1a 3778 5771
+18a61 5 3780 5771
+18a66 6 3782 5771
+18a6c 9 3787 5771
+18a75 b 3789 5771
+18a80 19 3791 5771
+18a99 c 3793 5771
+18aa5 24 3794 5771
+18ac9 c 3796 5771
+18ad5 22 3797 5771
+18af7 9 3801 5771
+18b00 5 3805 5771
+18b05 7 3806 5771
+18b0c 6 3810 5771
+18b12 1e 3812 5771
+18b30 8 3814 5771
+18b38 1b 3815 5771
+18b53 2 3816 5771
+18b55 16 3817 5771
+18b6b a 3819 5771
+18b75 13 3828 5771
+18b88 b 3833 5771
+18b93 c 3834 5771
+18b9f 8 3835 5771
+18ba7 6 3836 5771
+18bad b 3842 5771
+18bb8 b 3843 5771
+18bc3 3 3863 5771
+18bc6 6 3864 5771
+18bcc 22 3866 5771
+18bee 9 3871 5771
+18bf7 13 3872 5771
+18c0a 5 3876 5771
+18c0f 1e 3877 5771
+18c2d 5 3879 5771
+18c32 1e 3880 5771
+18c50 5 3884 5771
+18c55 e 3885 5771
+18c63 14 3889 5771
+18c77 28 3895 5771
+18c9f 2 3890 5771
+18ca1 b 3891 5771
+18cac 2 3892 5771
+18cae c 3898 5771
+18cba 17 3899 5771
+18cd1 4 3902 5771
+18cd5 6 3904 5771
+18cdb 7 3906 5771
+18ce2 8 3774 5771
+18cea 13 3918 5771
+18cfd 12 3922 5771
+18d0f 29 3925 5771
+18d38 10 3923 5771
+18d48 c 3928 5771
+18d54 3 3929 5771
+18d57 10 3931 5771
+18d67 2 3933 5771
+FUNC 18d69 14c 0 UnDecorator::operator char *()
+18d69 6 762 5771
+18d6f 4 763 5771
+18d73 f 764 5771
+18d82 9 770 5771
+18d8b c 772 5771
+18d97 7 775 5771
+18d9e 1d 776 5771
+18dbb 4 782 5771
+18dbf 16 783 5771
+18dd5 9 785 5771
+18dde 5 794 5771
+18de3 9 795 5771
+18dec 13 799 5771
+18dff e 808 5771
+18e0d 2 809 5771
+18e0f 2 848 5771
+18e11 1a 810 5771
+18e2b e 813 5771
+18e39 e 811 5771
+18e47 9 817 5771
+18e50 e 819 5771
+18e5e d 820 5771
+18e6b a 824 5771
+18e75 f 825 5771
+18e84 5 828 5771
+18e89 2 829 5771
+18e8b 2 830 5771
+18e8d 5 831 5771
+18e92 1 832 5771
+18e93 5 833 5771
+18e98 1 835 5771
+18e99 5 834 5771
+18e9e 2 838 5771
+18ea0 a 839 5771
+18eaa 9 841 5771
+18eb3 2 848 5771
+FUNC 18eb5 116 c UnDecorator::getPtrRefType(DName const &,DName const &,char)
+18eb5 5 3585 5771
+18eba f 3588 5771
+18ec9 d 3589 5771
+18ed6 b 3591 5771
+18ee1 20 3594 5771
+18f01 b 3595 5771
+18f0c b 3597 5771
+18f17 9 3598 5771
+18f20 14 3600 5771
+18f34 14 3606 5771
+18f48 1b 3608 5771
+18f63 a 3612 5771
+18f6d b 3615 5771
+18f78 c 3617 5771
+18f84 9 3618 5771
+18f8d c 3620 5771
+18f99 c 3622 5771
+18fa5 a 3623 5771
+18faf b 3625 5771
+18fba f 3629 5771
+18fc9 2 3632 5771
+FUNC 18fcb 1b 8 UnDecorator::getPointerType(DName const &,DName const &)
+18fcb 1b 4037 5771
+FUNC 18fe6 1b 8 UnDecorator::getPointerTypeArray(DName const &,DName const &)
+18fe6 1b 4040 5771
+FUNC 19001 1b 8 UnDecorator::getReferenceType(DName const &,DName const &)
+19001 1b 4043 5771
+FUNC 1901c a3 18 __unDName
+1901c f 604 5771
+1902b 9 606 5771
+19034 4 607 5771
+19038 a 612 5771
+19042 2 613 5771
+19044 8 614 5771
+1904c 3 615 5771
+1904f 20 618 5771
+1906f 1a 627 5771
+19089 e 628 5771
+19097 a 633 5771
+190a1 c 636 5771
+190ad 3 643 5771
+190b0 6 645 5771
+190b6 9 637 5771
+FUNC 190bf a3 1c __unDNameEx
+190bf f 684 5771
+190ce 9 687 5771
+190d7 4 688 5771
+190db a 693 5771
+190e5 2 694 5771
+190e7 8 695 5771
+190ef 3 696 5771
+190f2 20 699 5771
+19112 1a 708 5771
+1912c e 709 5771
+1913a a 714 5771
+19144 c 717 5771
+19150 3 724 5771
+19153 6 726 5771
+19159 9 718 5771
+FUNC 19162 387 4 UnDecorator::getBasicDataType(DName const &)
+19162 3 3162 5771
+19165 15 3163 5771
+1917a 6 3165 5771
+19180 4 3168 5771
+19184 35 3173 5771
+191b9 5 3178 5771
+191be 5 3179 5771
+191c3 5 3183 5771
+191c8 5 3184 5771
+191cd 5 3188 5771
+191d2 5 3189 5771
+191d7 5 3193 5771
+191dc 5 3194 5771
+191e1 5 3203 5771
+191e6 5 3204 5771
+191eb 2a 3173 5771
+19215 3c 3222 5771
+19251 5 3231 5771
+19256 5 3232 5771
+1925b 22 3273 5771
+1927d 5 3235 5771
+19282 5 3236 5771
+19287 f 3222 5771
+19296 5 3243 5771
+1929b 5 3244 5771
+192a0 5 3239 5771
+192a5 5 3240 5771
+192aa 5 3247 5771
+192af 5 3248 5771
+192b4 1b 3222 5771
+192cf 3 3264 5771
+192d2 6 3262 5771
+192d8 10 3264 5771
+192e8 10 3266 5771
+192f8 11 3267 5771
+19309 5 3275 5771
+1930e 2 3276 5771
+19310 5 3255 5771
+19315 2 3257 5771
+19317 3 3224 5771
+1931a 12 3343 5771
+1932c 9 3345 5771
+19335 7 3347 5771
+1933c 16 3348 5771
+19352 6 3352 5771
+19358 d 3353 5771
+19365 5 3355 5771
+1936a 5 3227 5771
+1936f 2 3278 5771
+19371 d 3281 5771
+1937e 2 3282 5771
+19380 5 3219 5771
+19385 2 3220 5771
+19387 3 3287 5771
+1938a 5 3290 5771
+1938f d 3207 5771
+1939c d 3212 5771
+193a9 9 3297 5771
+193b2 1f 3301 5771
+193d1 19 3314 5771
+193ea c 3322 5771
+193f6 2 3326 5771
+193f8 c 3307 5771
+19404 2 3308 5771
+19406 1e 3311 5771
+19424 10 3332 5771
+19434 18 3333 5771
+1944c 5 3337 5771
+19451 c 3360 5771
+1945d 5 3367 5771
+19462 d 3369 5771
+1946f 5 3371 5771
+19474 d 3372 5771
+19481 2 3373 5771
+19483 5 3374 5771
+19488 d 3375 5771
+19495 17 3380 5771
+194ac 16 3385 5771
+194c2 27 3387 5771
+FUNC 194e9 13e 4 UnDecorator::getPrimaryDataType(DName const &)
+194e9 7 2962 5771
+194f0 2b 2966 5771
+1951b 12 3027 5771
+1952d d 2972 5771
+1953a c 2974 5771
+19546 a 2975 5771
+19550 b 2981 5771
+1955b 6 2984 5771
+19561 1e 2986 5771
+1957f 7 2996 5771
+19586 2 2997 5771
+19588 6 2998 5771
+1958e f 3000 5771
+1959d 8 3002 5771
+195a5 10 3004 5771
+195b5 2f 3022 5771
+195e4 16 3012 5771
+195fa 17 3008 5771
+19611 14 2969 5771
+19625 2 3030 5771
+FUNC 19627 b1 4 UnDecorator::getDataType(DName *)
+19627 6 2922 5771
+1962d b 2923 5771
+19638 15 2928 5771
+1964d 10 2954 5771
+1965d 6 2934 5771
+19663 c 2936 5771
+1966f f 2937 5771
+1967e 13 2939 5771
+19691 6 2944 5771
+19697 29 2946 5771
+196c0 2 2947 5771
+196c2 14 2931 5771
+196d6 2 2957 5771
+FUNC 196d8 64 4 UnDecorator::getExternalDataType(DName const &)
+196d8 7 4244 5771
+196df 1e 4247 5771
+196fd 9 4248 5771
+19706 30 4253 5771
+19736 4 4255 5771
+1973a 2 4257 5771
+FUNC 1973c 57 8 fastzero_I
+FUNC 19793 8f c _VEC_memzero
+FUNC 19822 14 0 _sse2_mathfcns_init
+FUNC 19836 14 4 _set_SSE2_enable
+FUNC 1984a 87 c fastcopy_I
+FUNC 198d1 e3 c _VEC_memcpy
+FUNC 199b4 1bd c __crtMessageBoxA
+199b4 9 41 4033
+199bd 5 49 4033
+199c2 2 56 4033
+199c4 18 64 4033
+199dc d 66 4033
+199e9 2 67 4033
+199eb 6 69 4033
+199f1 10 76 4033
+19a01 6 78 4033
+19a07 6 80 4033
+19a0d 15 83 4033
+19a22 1a 86 4033
+19a3c 1c 88 4033
+19a58 6 89 4033
+19a5e 8 95 4033
+19a66 6 98 4033
+19a6c a 100 4033
+19a76 14 102 4033
+19a8a 14 116 4033
+19a9e 6 119 4033
+19aa4 d 120 4033
+19ab1 c 122 4033
+19abd 1f 127 4033
+19adc 1b 136 4033
+19af7 6 137 4033
+19afd 7 138 4033
+19b04 2 139 4033
+19b06 7 140 4033
+19b0d 2 142 4033
+19b0f a 144 4033
+19b19 6 146 4033
+19b1f 5 147 4033
+19b24 2 149 4033
+19b26 11 153 4033
+19b37 6 155 4033
+19b3d 5 156 4033
+19b42 8 158 4033
+19b4a b 165 4033
+19b55 5 166 4033
+19b5a 10 168 4033
+19b6a 5 173 4033
+19b6f 2 176 4033
+FUNC 19b71 71 c strcat_s
+19b71 0 13 823
+19b71 30 18 823
+19ba1 c 19 823
+19bad 2 21 823
+19baf 4 23 823
+19bb3 1 25 823
+19bb4 3 26 823
+19bb7 2 29 823
+19bb9 2 32 823
+19bbb d 35 823
+19bc8 4 39 823
+19bcc 2 41 823
+19bce e 42 823
+19bdc 5 45 823
+19be1 1 46 823
+FUNC 19be2 b3 10 strncpy_s
+19be2 5 13 739
+19be7 14 17 739
+19bfb 5 65 739
+19c00 2 66 739
+19c02 26 24 739
+19c28 5 25 739
+19c2d 2 28 739
+19c2f 2 29 739
+19c31 b 31 739
+19c3c 8 35 739
+19c44 d 37 739
+19c51 2 41 739
+19c53 12 45 739
+19c65 5 48 739
+19c6a 2 50 739
+19c6c 4 54 739
+19c70 6 56 739
+19c76 3 58 739
+19c79 c 59 739
+19c85 2 61 739
+19c87 e 62 739
+FUNC 19c95 46 4 _set_error_mode
+19c95 0 43 3937
+19c95 15 50 3937
+19caa 6 58 3937
+19cb0 1 65 3937
+19cb1 5 54 3937
+19cb6 7 55 3937
+19cbd 1 65 3937
+19cbe 1c 61 3937
+19cda 1 65 3937
+FUNC 19cdb a 4 __set_app_type
+19cdb 0 91 3937
+19cdb 9 96 3937
+19ce4 1 97 3937
+FUNC 19ce5 6 0 __get_app_type
+19ce5 0 120 3937
+19ce5 5 125 3937
+19cea 1 126 3937
+FUNC 19ceb 51 10 x_ismbbtype_l
+19ceb 6 213 4669
+19cf1 b 214 4669
+19cfc 4 219 4669
+19d00 3a 222 4669
+19d3a 2 223 4669
+FUNC 19d3c 15 8 _ismbbkalnum_l
+19d3c 0 80 4669
+19d3c 14 81 4669
+19d50 1 82 4669
+FUNC 19d51 13 4 _ismbbkalnum
+19d51 0 85 4669
+19d51 12 86 4669
+19d63 1 87 4669
+FUNC 19d64 15 8 _ismbbkprint_l
+19d64 0 90 4669
+19d64 14 91 4669
+19d78 1 92 4669
+FUNC 19d79 13 4 _ismbbkprint
+19d79 0 95 4669
+19d79 12 96 4669
+19d8b 1 97 4669
+FUNC 19d8c 15 8 _ismbbkpunct_l
+19d8c 0 100 4669
+19d8c 14 101 4669
+19da0 1 102 4669
+FUNC 19da1 13 4 _ismbbkpunct
+19da1 0 105 4669
+19da1 12 106 4669
+19db3 1 107 4669
+FUNC 19db4 18 8 _ismbbalnum_l
+19db4 0 113 4669
+19db4 17 114 4669
+19dcb 1 115 4669
+FUNC 19dcc 16 4 _ismbbalnum
+19dcc 0 118 4669
+19dcc 15 119 4669
+19de1 1 120 4669
+FUNC 19de2 18 8 _ismbbalpha_l
+19de2 0 123 4669
+19de2 17 124 4669
+19df9 1 125 4669
+FUNC 19dfa 16 4 _ismbbalpha
+19dfa 0 128 4669
+19dfa 15 129 4669
+19e0f 1 130 4669
+FUNC 19e10 18 8 _ismbbgraph_l
+19e10 0 133 4669
+19e10 17 134 4669
+19e27 1 135 4669
+FUNC 19e28 16 4 _ismbbgraph
+19e28 0 138 4669
+19e28 15 139 4669
+19e3d 1 140 4669
+FUNC 19e3e 18 8 _ismbbprint_l
+19e3e 0 143 4669
+19e3e 17 144 4669
+19e55 1 145 4669
+FUNC 19e56 16 4 _ismbbprint
+19e56 0 148 4669
+19e56 15 149 4669
+19e6b 1 150 4669
+FUNC 19e6c 15 8 _ismbbpunct_l
+19e6c 0 153 4669
+19e6c 14 154 4669
+19e80 1 155 4669
+FUNC 19e81 13 4 _ismbbpunct
+19e81 0 158 4669
+19e81 12 159 4669
+19e93 1 160 4669
+FUNC 19e94 15 8 _ismbblead_l
+19e94 0 166 4669
+19e94 14 167 4669
+19ea8 1 168 4669
+FUNC 19ea9 13 4 _ismbblead
+19ea9 0 171 4669
+19ea9 12 172 4669
+19ebb 1 173 4669
+FUNC 19ebc 15 8 _ismbbtrail_l
+19ebc 0 176 4669
+19ebc 14 177 4669
+19ed0 1 178 4669
+FUNC 19ed1 13 4 _ismbbtrail
+19ed1 0 181 4669
+19ed1 12 182 4669
+19ee3 1 183 4669
+FUNC 19ee4 53 8 _ismbbkana_l
+19ee4 6 189 4669
+19eea b 190 4669
+19ef5 10 192 4669
+19f05 1f 194 4669
+19f24 2 197 4669
+19f26 f 196 4669
+19f35 2 197 4669
+FUNC 19f37 e 4 _ismbbkana
+19f37 0 200 4669
+19f37 d 201 4669
+19f44 1 202 4669
+FUNC 19f45 44 4 _getbuf
+19f45 0 43 1893
+19f45 6 50 1893
+19f4b 16 58 1893
+19f61 4 61 1893
+19f65 7 62 1893
+19f6c 2 65 1893
+19f6e 4 69 1893
+19f72 6 70 1893
+19f78 7 71 1893
+19f7f 3 75 1893
+19f82 6 76 1893
+19f88 1 79 1893
+FUNC 19f89 1de 8 _fputwc_nolock
+19f89 15 90 2124
+19f9e b 93 2124
+19fa9 48 95 2124
+19ff1 6 101 2124
+19ff7 45 104 2124
+1a03c 27 115 2124
+1a063 9 116 2124
+1a06c 22 120 2124
+1a08e 2 121 2124
+1a090 8 124 2124
+1a098 42 127 2124
+1a0da 17 133 2124
+1a0f1 6 139 2124
+1a0f7 7 141 2124
+1a0fe 34 143 2124
+1a132 6 146 2124
+1a138 6 150 2124
+1a13e d 151 2124
+1a14b d 153 2124
+1a158 f 154 2124
+FUNC 1a167 78 8 fputwc
+1a167 c 48 2124
+1a173 2e 52 2124
+1a1a1 3 55 2124
+1a1a4 7 57 2124
+1a1ab 3 58 2124
+1a1ae 11 60 2124
+1a1bf c 63 2124
+1a1cb 4 67 2124
+1a1cf 6 68 2124
+1a1d5 a 64 2124
+FUNC 1a1df 5 8 putwc
+1a1df 0 162 2124
+1a1df 5 163 2124
+FUNC 1a1e4 1f7 14 wcstoxl
+1a1e4 8 82 6173
+1a1ec b 88 6173
+1a1f7 3 92 6173
+1a1fa b 95 6173
+1a205 2f 97 6173
+1a234 12 98 6173
+1a246 9 103 6173
+1a24f 2 105 6173
+1a251 18 106 6173
+1a269 6 108 6173
+1a26f 4 109 6173
+1a273 2 110 6173
+1a275 6 112 6173
+1a27b 5 113 6173
+1a280 5 115 6173
+1a285 b 118 6173
+1a290 9 119 6173
+1a299 f 120 6173
+1a2a8 9 123 6173
+1a2b1 7 121 6173
+1a2b8 6 126 6173
+1a2be 1a 128 6173
+1a2d8 2 129 6173
+1a2da 5 130 6173
+1a2df d 135 6173
+1a2ec c 141 6173
+1a2f8 15 143 6173
+1a30d 12 144 6173
+1a31f 5 148 6173
+1a324 4 152 6173
+1a328 c 159 6173
+1a334 4 165 6173
+1a338 6 166 6173
+1a33e 9 178 6173
+1a347 6 181 6173
+1a34d 3 183 6173
+1a350 4 184 6173
+1a354 2 186 6173
+1a356 c 161 6173
+1a362 5 173 6173
+1a367 2 174 6173
+1a369 24 189 6173
+1a38d 5 192 6173
+1a392 c 193 6173
+1a39e 6 194 6173
+1a3a4 10 195 6173
+1a3b4 8 201 6173
+1a3bc 2 203 6173
+1a3be 6 205 6173
+1a3c4 3 207 6173
+1a3c7 12 209 6173
+1a3d9 2 210 6173
+FUNC 1a3db 29 c wcstol
+1a3db 3 217 6173
+1a3de 8 218 6173
+1a3e6 13 220 6173
+1a3f9 9 224 6173
+1a402 2 226 6173
+FUNC 1a404 1b 10 _wcstol_l
+1a404 0 234 6173
+1a404 1a 235 6173
+1a41e 1 236 6173
+FUNC 1a41f 2a c wcstoul
+1a41f 3 243 6173
+1a422 7 244 6173
+1a429 14 246 6173
+1a43d a 250 6173
+1a447 2 252 6173
+FUNC 1a449 1b 10 _wcstoul_l
+1a449 0 260 6173
+1a449 1a 261 6173
+1a463 1 262 6173
+FUNC 1a464 9 0 _fptrap
+1a464 0 46 2503
+1a464 8 47 2503
+1a46c 1 48 2503
+FUNC 1a46d 54 8 _isalpha_l
+1a46d 6 57 6535
+1a473 b 58 6535
+1a47e 41 60 6535
+1a4bf 2 61 6535
+FUNC 1a4c1 2b 4 isalpha
+1a4c1 0 66 6535
+1a4c1 9 67 6535
+1a4ca 13 69 6535
+1a4dd 1 75 6535
+1a4de d 73 6535
+1a4eb 1 75 6535
+FUNC 1a4ec 4f 8 _isupper_l
+1a4ec 6 81 6535
+1a4f2 b 82 6535
+1a4fd 3c 84 6535
+1a539 2 85 6535
+FUNC 1a53b 29 4 isupper
+1a53b 0 90 6535
+1a53b 9 91 6535
+1a544 11 93 6535
+1a555 1 99 6535
+1a556 d 97 6535
+1a563 1 99 6535
+FUNC 1a564 4f 8 _islower_l
+1a564 6 105 6535
+1a56a b 106 6535
+1a575 3c 108 6535
+1a5b1 2 109 6535
+FUNC 1a5b3 29 4 islower
+1a5b3 0 114 6535
+1a5b3 9 115 6535
+1a5bc 11 117 6535
+1a5cd 1 123 6535
+1a5ce d 121 6535
+1a5db 1 123 6535
+FUNC 1a5dc 4f 8 _isdigit_l
+1a5dc 6 129 6535
+1a5e2 b 130 6535
+1a5ed 3c 132 6535
+1a629 2 133 6535
+FUNC 1a62b 29 4 isdigit
+1a62b 0 138 6535
+1a62b 9 139 6535
+1a634 11 141 6535
+1a645 1 147 6535
+1a646 d 145 6535
+1a653 1 147 6535
+FUNC 1a654 54 8 _isxdigit_l
+1a654 6 153 6535
+1a65a b 154 6535
+1a665 41 156 6535
+1a6a6 2 157 6535
+FUNC 1a6a8 2b 4 isxdigit
+1a6a8 0 162 6535
+1a6a8 9 163 6535
+1a6b1 13 165 6535
+1a6c4 1 171 6535
+1a6c5 d 169 6535
+1a6d2 1 171 6535
+FUNC 1a6d3 4f 8 _isspace_l
+1a6d3 6 177 6535
+1a6d9 b 178 6535
+1a6e4 3c 180 6535
+1a720 2 181 6535
+FUNC 1a722 29 4 isspace
+1a722 0 186 6535
+1a722 9 187 6535
+1a72b 11 189 6535
+1a73c 1 195 6535
+1a73d d 193 6535
+1a74a 1 195 6535
+FUNC 1a74b 4f 8 _ispunct_l
+1a74b 6 201 6535
+1a751 b 202 6535
+1a75c 3c 204 6535
+1a798 2 205 6535
+FUNC 1a79a 29 4 ispunct
+1a79a 0 210 6535
+1a79a 9 211 6535
+1a7a3 11 213 6535
+1a7b4 1 219 6535
+1a7b5 d 217 6535
+1a7c2 1 219 6535
+FUNC 1a7c3 54 8 _isalnum_l
+1a7c3 6 225 6535
+1a7c9 b 226 6535
+1a7d4 41 228 6535
+1a815 2 229 6535
+FUNC 1a817 2b 4 isalnum
+1a817 0 234 6535
+1a817 9 235 6535
+1a820 13 237 6535
+1a833 1 243 6535
+1a834 d 241 6535
+1a841 1 243 6535
+FUNC 1a842 54 8 _isprint_l
+1a842 6 249 6535
+1a848 b 250 6535
+1a853 41 252 6535
+1a894 2 253 6535
+FUNC 1a896 2b 4 isprint
+1a896 0 258 6535
+1a896 9 259 6535
+1a89f 13 261 6535
+1a8b2 1 267 6535
+1a8b3 d 265 6535
+1a8c0 1 267 6535
+FUNC 1a8c1 54 8 _isgraph_l
+1a8c1 6 273 6535
+1a8c7 b 274 6535
+1a8d2 41 276 6535
+1a913 2 277 6535
+FUNC 1a915 2b 4 isgraph
+1a915 0 282 6535
+1a915 9 283 6535
+1a91e 13 285 6535
+1a931 1 291 6535
+1a932 d 289 6535
+1a93f 1 291 6535
+FUNC 1a940 4f 8 _iscntrl_l
+1a940 6 297 6535
+1a946 b 298 6535
+1a951 3c 300 6535
+1a98d 2 301 6535
+FUNC 1a98f 29 4 iscntrl
+1a98f 0 306 6535
+1a98f 9 307 6535
+1a998 11 309 6535
+1a9a9 1 315 6535
+1a9aa d 313 6535
+1a9b7 1 315 6535
+FUNC 1a9b8 d 4 __isascii
+1a9b8 0 320 6535
+1a9b8 c 321 6535
+1a9c4 1 322 6535
+FUNC 1a9c5 8 4 __toascii
+1a9c5 0 327 6535
+1a9c5 7 328 6535
+1a9cc 1 329 6535
+FUNC 1a9cd 1f 8 _iscsymf_l
+1a9cd 0 335 6535
+1a9cd 1a 336 6535
+1a9e7 1 337 6535
+1a9e8 3 336 6535
+1a9eb 1 337 6535
+FUNC 1a9ec 1a 4 __iscsymf
+1a9ec 0 341 6535
+1a9ec 15 342 6535
+1aa01 1 343 6535
+1aa02 3 342 6535
+1aa05 1 343 6535
+FUNC 1aa06 1f 8 _iscsym_l
+1aa06 0 349 6535
+1aa06 1a 350 6535
+1aa20 1 351 6535
+1aa21 3 350 6535
+1aa24 1 351 6535
+FUNC 1aa25 1c 4 __iscsym
+1aa25 0 356 6535
+1aa25 17 357 6535
+1aa3c 1 358 6535
+1aa3d 3 357 6535
+1aa40 1 358 6535
+FUNC 1aa41 12 8 _MarkAllocaS
+1aa41 0 207 2895
+1aa41 8 208 2895
+1aa49 6 210 2895
+1aa4f 3 211 2895
+1aa52 1 214 2895
+FUNC 1aa53 1b 4 _freea
+1aa53 0 249 2895
+1aa53 8 251 2895
+1aa5b 3 253 2895
+1aa5e 8 255 2895
+1aa66 7 257 2895
+1aa6d 1 266 2895
+FUNC 1aa6e 13b 18 __crtGetLocaleInfoW_stat
+1aa6e f 60 2876
+1aa7d 14 68 2876
+1aa91 d 70 2876
+1aa9e 8 71 2876
+1aaa6 b 73 2876
+1aab1 f 74 2876
+1aac0 5 79 2876
+1aac5 13 81 2876
+1aad8 7 86 2876
+1aadf 2 140 2876
+1aae1 8 96 2876
+1aae9 b 97 2876
+1aaf4 16 100 2876
+1ab0a 7 101 2876
+1ab11 48 104 2876
+1ab59 2 105 2876
+1ab5b 2 106 2876
+1ab5d e 110 2876
+1ab6b 7 113 2876
+1ab72 2 121 2876
+1ab74 2 123 2876
+1ab76 17 130 2876
+1ab8d 6 134 2876
+1ab93 4 136 2876
+1ab97 12 141 2876
+FUNC 1aba9 3b 18 __crtGetLocaleInfoW
+1aba9 6 151 2876
+1abaf b 152 2876
+1abba 28 161 2876
+1abe2 2 162 2876
+FUNC 1abe4 13d 18 __crtGetLocaleInfoA_stat
+1abe4 f 60 4251
+1abf3 17 68 4251
+1ac0a a 70 4251
+1ac14 8 71 4251
+1ac1c b 73 4251
+1ac27 f 74 4251
+1ac36 11 79 4251
+1ac47 4 86 4251
+1ac4b 5 96 4251
+1ac50 b 97 4251
+1ac5b 13 100 4251
+1ac6e 7 101 4251
+1ac75 49 104 4251
+1acbe 2 105 4251
+1acc0 2 106 4251
+1acc2 10 110 4251
+1acd2 3 114 4251
+1acd5 6 124 4251
+1acdb 2 126 4251
+1acdd 15 135 4251
+1acf2 7 139 4251
+1acf9 4 141 4251
+1acfd 12 81 4251
+1ad0f 12 145 4251
+FUNC 1ad21 3b 18 __crtGetLocaleInfoA
+1ad21 6 155 4251
+1ad27 b 156 4251
+1ad32 28 165 4251
+1ad5a 2 166 4251
+FUNC 1ad5c 1a 4 strncnt
+1ad5c 0 48 4203
+1ad5c 6 49 4203
+1ad62 6 52 4203
+1ad68 1 53 4203
+1ad69 5 52 4203
+1ad6e 7 55 4203
+1ad75 1 56 4203
+FUNC 1ad76 3a2 20 __crtLCMapStringA_stat
+1ad76 12 99 4203
+1ad88 d 108 4203
+1ad95 1b 109 4203
+1adb0 8 110 4203
+1adb8 b 111 4203
+1adc3 a 112 4203
+1adcd 5 119 4203
+1add2 19 120 4203
+1adeb 5 124 4203
+1adf0 1 125 4203
+1adf1 3 127 4203
+1adf4 16 133 4203
+1ae0a 9 213 4203
+1ae13 8 235 4203
+1ae1b 8 236 4203
+1ae23 27 247 4203
+1ae4a 6 248 4203
+1ae50 48 251 4203
+1ae98 3 252 4203
+1ae9b 6 253 4203
+1aea1 19 262 4203
+1aeba 21 271 4203
+1aedb 8 274 4203
+1aee3 9 277 4203
+1aeec 9 279 4203
+1aef5 12 288 4203
+1af07 5 292 4203
+1af0c 4b 298 4203
+1af57 4 299 4203
+1af5b 18 309 4203
+1af73 3 312 4203
+1af76 6 322 4203
+1af7c 2 325 4203
+1af7e 17 335 4203
+1af95 7 342 4203
+1af9c 8 344 4203
+1afa4 9 346 4203
+1afad b 141 4203
+1afb8 8 142 4203
+1afc0 5 143 4203
+1afc5 8 144 4203
+1afcd 11 146 4203
+1afde 7 147 4203
+1afe5 9 153 4203
+1afee 15 155 4203
+1b003 5 156 4203
+1b008 2 157 4203
+1b00a 1b 164 4203
+1b025 7 166 4203
+1b02c 41 169 4203
+1b06d 2 170 4203
+1b06f 28 196 4203
+1b097 2 183 4203
+1b099 2 184 4203
+1b09b 25 190 4203
+1b0c0 7 198 4203
+1b0c7 2 199 4203
+1b0c9 1a 202 4203
+1b0e3 5 204 4203
+1b0e8 9 205 4203
+1b0f1 c 206 4203
+1b0fd 7 207 4203
+1b104 2 208 4203
+1b106 12 350 4203
+FUNC 1b118 43 24 __crtLCMapStringA
+1b118 6 363 4203
+1b11e b 364 4203
+1b129 30 376 4203
+1b159 2 377 4203
+FUNC 1b15b 1b8 1c __crtGetStringTypeA_stat
+1b15b f 66 4155
+1b16a 10 75 4155
+1b17a 18 79 4155
+1b192 8 80 4155
+1b19a b 82 4155
+1b1a5 f 83 4155
+1b1b4 11 88 4155
+1b1c5 9 120 4155
+1b1ce 8 141 4155
+1b1d6 8 142 4155
+1b1de 27 153 4155
+1b205 6 154 4155
+1b20b 3e 157 4155
+1b249 2 158 4155
+1b24b 2 159 4155
+1b24d f 161 4155
+1b25c 13 169 4155
+1b26f 11 174 4155
+1b280 6 176 4155
+1b286 6 178 4155
+1b28c 2 90 4155
+1b28e 5 94 4155
+1b293 8 95 4155
+1b29b 5 96 4155
+1b2a0 8 97 4155
+1b2a8 e 99 4155
+1b2b6 4 100 4155
+1b2ba 5 104 4155
+1b2bf 17 106 4155
+1b2d6 2 107 4155
+1b2d8 2 108 4155
+1b2da 3 109 4155
+1b2dd 15 112 4155
+1b2f2 6 113 4155
+1b2f8 7 114 4155
+1b2ff 2 115 4155
+1b301 12 182 4155
+FUNC 1b313 40 20 __crtGetStringTypeA
+1b313 6 194 4155
+1b319 b 195 4155
+1b324 2d 206 4155
+1b351 2 207 4155
+FUNC 1b353 6 0 __pwctype_func
+1b353 0 24 3986
+1b353 5 25 3986
+1b358 1 26 3986
+FUNC 1b359 29 0 __pctype_func
+1b359 0 29 3986
+1b359 7 35 3986
+1b360 3 36 3986
+1b363 18 38 3986
+1b37b 6 39 3986
+1b381 1 40 3986
+FUNC 1b382 419 0 _get_lc_time
+1b382 6 94 3379
+1b388 12 104 3379
+1b39a 3 105 3379
+1b39d 2 170 3379
+1b39f 9 108 3379
+1b3a8 16 112 3379
+1b3be 15 113 3379
+1b3d3 15 114 3379
+1b3e8 18 115 3379
+1b400 15 116 3379
+1b415 13 117 3379
+1b428 14 118 3379
+1b43c 18 120 3379
+1b454 15 121 3379
+1b469 15 122 3379
+1b47e 15 123 3379
+1b493 18 124 3379
+1b4ab 15 125 3379
+1b4c0 15 126 3379
+1b4d5 15 128 3379
+1b4ea 18 129 3379
+1b502 15 130 3379
+1b517 15 131 3379
+1b52c 15 132 3379
+1b541 18 133 3379
+1b559 15 134 3379
+1b56e 15 135 3379
+1b583 15 136 3379
+1b598 18 137 3379
+1b5b0 15 138 3379
+1b5c5 15 139 3379
+1b5da 15 141 3379
+1b5ef 18 142 3379
+1b607 15 143 3379
+1b61c 15 144 3379
+1b631 15 145 3379
+1b646 18 146 3379
+1b65e 18 147 3379
+1b676 18 148 3379
+1b68e 18 149 3379
+1b6a6 1b 150 3379
+1b6c1 18 151 3379
+1b6d9 18 152 3379
+1b6f1 18 154 3379
+1b709 1b 155 3379
+1b724 18 160 3379
+1b73c 18 161 3379
+1b754 1b 163 3379
+1b76f 20 165 3379
+1b78f a 169 3379
+1b799 2 170 3379
+FUNC 1b79b 190 4 __free_lc_time
+1b79b 1 179 3379
+1b79c c 180 3379
+1b7a8 8 183 3379
+1b7b0 8 184 3379
+1b7b8 8 185 3379
+1b7c0 8 186 3379
+1b7c8 8 187 3379
+1b7d0 8 188 3379
+1b7d8 7 189 3379
+1b7df 8 191 3379
+1b7e7 8 192 3379
+1b7ef 8 193 3379
+1b7f7 8 194 3379
+1b7ff 8 195 3379
+1b807 8 196 3379
+1b80f 8 197 3379
+1b817 8 199 3379
+1b81f b 200 3379
+1b82a 8 201 3379
+1b832 8 202 3379
+1b83a 8 203 3379
+1b842 8 204 3379
+1b84a 8 205 3379
+1b852 8 206 3379
+1b85a 8 207 3379
+1b862 8 208 3379
+1b86a 8 209 3379
+1b872 8 210 3379
+1b87a 8 212 3379
+1b882 8 213 3379
+1b88a 8 214 3379
+1b892 8 215 3379
+1b89a 8 216 3379
+1b8a2 b 217 3379
+1b8ad b 218 3379
+1b8b8 b 219 3379
+1b8c3 b 220 3379
+1b8ce b 221 3379
+1b8d9 b 222 3379
+1b8e4 b 223 3379
+1b8ef b 225 3379
+1b8fa b 226 3379
+1b905 b 228 3379
+1b910 b 229 3379
+1b91b f 230 3379
+1b92a 1 232 3379
+FUNC 1b92b 73 4 __init_time
+1b92b 4 56 3379
+1b92f f 60 3379
+1b93e 16 64 3379
+1b954 4 65 3379
+1b958 b 67 3379
+1b963 6 69 3379
+1b969 8 70 3379
+1b971 2 71 3379
+1b973 6 73 3379
+1b979 2 74 3379
+1b97b 2 75 3379
+1b97d 18 78 3379
+1b995 2 82 3379
+1b997 6 83 3379
+1b99d 1 84 3379
+FUNC 1b99e 33 0 fix_grouping
+1b99e 0 32 3427
+1b99e 8 40 3427
+1b9a6 a 43 3427
+1b9b0 4 45 3427
+1b9b4 1 61 3427
+1b9b5 6 40 3427
+1b9bb 1 63 3427
+1b9bc 4 50 3427
+1b9c0 2 52 3427
+1b9c2 7 55 3427
+1b9c9 6 56 3427
+1b9cf 2 60 3427
+FUNC 1b9d1 40 4 __free_lconv_num
+1b9d1 1 211 3427
+1b9d2 8 212 3427
+1b9da a 215 3427
+1b9e4 7 216 3427
+1b9eb b 218 3427
+1b9f6 7 219 3427
+1b9fd b 221 3427
+1ba08 8 222 3427
+1ba10 1 223 3427
+FUNC 1ba11 1c8 4 __init_numeric
+1ba11 7 84 3427
+1ba18 4 92 3427
+1ba1c 2 93 3427
+1ba1e 11 96 3427
+1ba2f 3 177 3427
+1ba32 3 178 3427
+1ba35 c 179 3427
+1ba41 14 102 3427
+1ba55 8 103 3427
+1ba5d 9 108 3427
+1ba66 13 113 3427
+1ba79 9 115 3427
+1ba82 2 116 3427
+1ba84 2 118 3427
+1ba86 9 120 3427
+1ba8f 12 125 3427
+1baa1 8 127 3427
+1baa9 a 128 3427
+1bab3 7 129 3427
+1baba 2 131 3427
+1babc 19 140 3427
+1bad5 15 142 3427
+1baea 1b 144 3427
+1bb05 2 146 3427
+1bb07 c 148 3427
+1bb13 1e 154 3427
+1bb31 2 156 3427
+1bb33 17 154 3427
+1bb4a b 164 3427
+1bb55 9 165 3427
+1bb5e c 166 3427
+1bb6a 8 168 3427
+1bb72 7 169 3427
+1bb79 2 170 3427
+1bb7b 13 186 3427
+1bb8e 11 191 3427
+1bb9f b 193 3427
+1bbaa d 194 3427
+1bbb7 9 197 3427
+1bbc0 9 198 3427
+1bbc9 9 200 3427
+1bbd2 5 201 3427
+1bbd7 2 202 3427
+FUNC 1bbd9 33 0 fix_grouping
+1bbd9 0 214 3470
+1bbd9 8 222 3470
+1bbe1 a 225 3470
+1bbeb 4 227 3470
+1bbef 1 243 3470
+1bbf0 6 222 3470
+1bbf6 1 245 3470
+1bbf7 4 232 3470
+1bbfb 2 234 3470
+1bbfd 7 237 3470
+1bc04 6 238 3470
+1bc0a 2 242 3470
+FUNC 1bc0c 89 4 __free_lconv_mon
+1bc0c 1 255 3470
+1bc0d 8 256 3470
+1bc15 b 259 3470
+1bc20 7 260 3470
+1bc27 b 262 3470
+1bc32 7 263 3470
+1bc39 b 265 3470
+1bc44 7 266 3470
+1bc4b b 268 3470
+1bc56 7 269 3470
+1bc5d b 271 3470
+1bc68 7 272 3470
+1bc6f b 274 3470
+1bc7a 7 275 3470
+1bc81 b 277 3470
+1bc8c 8 278 3470
+1bc94 1 279 3470
+FUNC 1bc95 2c4 4 __init_monetary
+1bc95 8 65 3470
+1bc9d 6 73 3470
+1bca3 13 77 3470
+1bcb6 3 187 3470
+1bcb9 3 188 3470
+1bcbc a 189 3470
+1bcc6 11 83 3470
+1bcd7 8 84 3470
+1bcdf f 89 3470
+1bcee 7 91 3470
+1bcf5 2 92 3470
+1bcf7 2 94 3470
+1bcf9 9 96 3470
+1bd02 f 101 3470
+1bd11 6 103 3470
+1bd17 9 104 3470
+1bd20 2 105 3470
+1bd22 2 107 3470
+1bd24 4 112 3470
+1bd28 14 117 3470
+1bd3c 14 119 3470
+1bd50 14 121 3470
+1bd64 17 123 3470
+1bd7b 14 125 3470
+1bd8f 14 128 3470
+1bda3 14 130 3470
+1bdb7 17 133 3470
+1bdce 14 135 3470
+1bde2 14 137 3470
+1bdf6 14 139 3470
+1be0a 17 141 3470
+1be21 14 143 3470
+1be35 14 145 3470
+1be49 17 147 3470
+1be60 2 149 3470
+1be62 6 150 3470
+1be68 6 151 3470
+1be6e 8 152 3470
+1be76 b 153 3470
+1be81 5 154 3470
+1be86 1c 157 3470
+1bea2 2 159 3470
+1bea4 17 157 3470
+1bebb c 169 3470
+1bec7 3 175 3470
+1beca 32 181 3470
+1befc 11 194 3470
+1bf0d 15 199 3470
+1bf22 b 201 3470
+1bf2d d 202 3470
+1bf3a 9 204 3470
+1bf43 9 205 3470
+1bf4c 6 206 3470
+1bf52 5 208 3470
+1bf57 2 209 3470
+FUNC 1bf59 395 4 __init_ctype
+1bf59 11 59 3562
+1bf6a 6 60 3562
+1bf70 1f 82 3562
+1bf8f 7 84 3562
+1bf96 20 89 3562
+1bfb6 7 94 3562
+1bfbd 10 98 3562
+1bfcd b 100 3562
+1bfd8 b 102 3562
+1bfe3 12 104 3562
+1bff5 2f 106 3562
+1c024 5 109 3562
+1c029 2 112 3562
+1c02b e 113 3562
+1c039 15 115 3562
+1c04e a 118 3562
+1c058 4 121 3562
+1c05c 8 124 3562
+1c064 e 126 3562
+1c072 9 128 3562
+1c07b b 129 3562
+1c086 b 128 3562
+1c091 2c 140 3562
+1c0bd 33 155 3562
+1c0f0 2d 166 3562
+1c11d 37 178 3562
+1c154 11 180 3562
+1c165 17 182 3562
+1c17c 15 183 3562
+1c191 d 180 3562
+1c19e 12 189 3562
+1c1b0 f 190 3562
+1c1bf 12 191 3562
+1c1d1 18 195 3562
+1c1e9 11 198 3562
+1c1fa 13 199 3562
+1c20d e 200 3562
+1c21b e 201 3562
+1c229 9 203 3562
+1c232 6 204 3562
+1c238 9 206 3562
+1c241 9 207 3562
+1c24a 9 208 3562
+1c253 9 209 3562
+1c25c 9 210 3562
+1c265 9 213 3562
+1c26e 4 214 3562
+1c272 8 217 3562
+1c27a 8 218 3562
+1c282 8 219 3562
+1c28a 10 220 3562
+1c29a 13 227 3562
+1c2ad 2 231 3562
+1c2af 6 232 3562
+1c2b5 a 233 3562
+1c2bf a 234 3562
+1c2c9 a 235 3562
+1c2d3 a 236 3562
+1c2dd 2 238 3562
+1c2df f 240 3562
+FUNC 1c2ee 29 0 ___mb_cur_max_func
+1c2ee 0 248 3562
+1c2ee 7 254 3562
+1c2f5 3 255 3562
+1c2f8 18 257 3562
+1c310 6 259 3562
+1c316 1 260 3562
+FUNC 1c317 16 4 ___mb_cur_max_l_func
+1c317 0 263 3562
+1c317 15 264 3562
+1c32c 1 265 3562
+FUNC 1c32d 26 0 ___lc_codepage_func
+1c32d 0 268 3562
+1c32d 7 274 3562
+1c334 3 275 3562
+1c337 18 277 3562
+1c34f 3 279 3562
+1c352 1 280 3562
+FUNC 1c353 26 0 ___lc_collate_cp_func
+1c353 0 284 3562
+1c353 7 290 3562
+1c35a 3 291 3562
+1c35d 18 293 3562
+1c375 3 295 3562
+1c378 1 296 3562
+FUNC 1c379 26 0 ___lc_handle_func
+1c379 0 300 3562
+1c379 7 306 3562
+1c380 3 307 3562
+1c383 18 309 3562
+1c39b 3 311 3562
+1c39e 1 312 3562
+FUNC 1c39f 3 4 __init_collate
+1c39f 0 41 3650
+1c39f 2 42 3650
+1c3a1 1 43 3650
+FUNC 1c3a2 fe 4 _Getdays_l
+1c3a2 9 111 516
+1c3ab d 115 516
+1c3b8 9 117 516
+1c3c1 9 119 516
+1c3ca 28 120 516
+1c3f2 b 121 516
+1c3fd c 123 516
+1c409 4 126 516
+1c40d 30 128 516
+1c43d 8 129 516
+1c445 31 131 516
+1c476 12 132 516
+1c488 3 134 516
+1c48b 13 137 516
+1c49e 2 138 516
+FUNC 1c4a0 9 0 _Getdays
+1c4a0 0 142 516
+1c4a0 8 143 516
+1c4a8 1 144 516
+FUNC 1c4a9 fe 4 _Getmonths_l
+1c4a9 9 150 516
+1c4b2 d 154 516
+1c4bf 16 156 516
+1c4d5 2b 159 516
+1c500 b 160 516
+1c50b 8 162 516
+1c513 a 163 516
+1c51d 2d 167 516
+1c54a 8 168 516
+1c552 2c 170 516
+1c57e 11 171 516
+1c58f 3 173 516
+1c592 13 176 516
+1c5a5 2 177 516
+FUNC 1c5a7 9 0 _Getmonths
+1c5a7 0 181 516
+1c5a7 8 182 516
+1c5af 1 183 516
+FUNC 1c5b0 355 4 _Gettnames_l
+1c5b0 9 189 516
+1c5b9 d 193 516
+1c5c6 9 195 516
+1c5cf 9 197 516
+1c5d8 28 198 516
+1c600 d 199 516
+1c60d 29 200 516
+1c636 18 201 516
+1c64e 11 202 516
+1c65f f 203 516
+1c66e f 204 516
+1c67d 7 205 516
+1c684 e 206 516
+1c692 8 208 516
+1c69a 12 212 516
+1c6ac 13 213 516
+1c6bf 6 214 516
+1c6c5 2a 215 516
+1c6ef 6 216 516
+1c6f5 d 217 516
+1c702 26 218 516
+1c728 1c 219 516
+1c744 18 221 516
+1c75c 6 222 516
+1c762 26 223 516
+1c788 a 224 516
+1c792 5 225 516
+1c797 2a 226 516
+1c7c1 18 227 516
+1c7d9 30 230 516
+1c809 a 231 516
+1c813 30 233 516
+1c843 a 234 516
+1c84d 30 236 516
+1c87d a 237 516
+1c887 30 239 516
+1c8b7 a 240 516
+1c8c1 30 242 516
+1c8f1 12 245 516
+1c903 2 246 516
+FUNC 1c905 9 0 _Gettnames
+1c905 0 250 516
+1c905 8 251 516
+1c90d 1 252 516
+FUNC 1c90e 20 0 _store_str
+1c90e 0 869 516
+1c90e f 871 516
+1c91d 7 872 516
+1c924 9 873 516
+1c92d 1 875 516
+FUNC 1c92e 36 0 _store_number
+1c92e 0 965 516
+1c92e 8 973 516
+1c936 c 976 516
+1c942 2 977 516
+1c944 b 978 516
+1c94f 2 981 516
+1c951 2 982 516
+1c953 1 983 516
+1c954 7 988 516
+1c95b 3 989 516
+1c95e 5 990 516
+1c963 1 991 516
+FUNC 1c964 79 4 _store_num
+1c964 8 909 516
+1c96c 2 910 516
+1c96e 8 912 516
+1c976 33 913 516
+1c9a9 2 914 516
+1c9ab 4 917 516
+1c9af 8 918 516
+1c9b7 b 919 516
+1c9c2 c 921 516
+1c9ce 5 923 516
+1c9d3 2 924 516
+1c9d5 2 926 516
+1c9d7 4 927 516
+1c9db 2 928 516
+FUNC 1c9dd 3e6 10 _expandtime
+1c9dd 5 548 516
+1c9e2 4f 558 516
+1ca31 16 659 516
+1ca47 5 662 516
+1ca4c 16 587 516
+1ca62 7 589 516
+1ca69 5 590 516
+1ca6e 16 571 516
+1ca84 7 573 516
+1ca8b 5 574 516
+1ca90 5 822 516
+1ca95 7 823 516
+1ca9c 5 824 516
+1caa1 16 667 516
+1cab7 10 668 516
+1cac7 2 669 516
+1cac9 5 672 516
+1cace 23 558 516
+1caf1 6 787 516
+1caf7 5 789 516
+1cafc 15 736 516
+1cb11 2 737 516
+1cb13 2 739 516
+1cb15 5 740 516
+1cb1a 15 722 516
+1cb2f 2 723 516
+1cb31 16 742 516
+1cb47 4 743 516
+1cb4b 2 744 516
+1cb4d 5 745 516
+1cb52 6 746 516
+1cb58 8 747 516
+1cb60 1 748 516
+1cb61 5 752 516
+1cb66 f 715 516
+1cb75 5 718 516
+1cb7a 3 696 516
+1cb7d 2 699 516
+1cb7f 1d 804 516
+1cb9c 6 806 516
+1cba2 d 808 516
+1cbaf 2 809 516
+1cbb1 37 558 516
+1cbe8 19 678 516
+1cc01 8 680 516
+1cc09 2 681 516
+1cc0b 15 650 516
+1cc20 13 652 516
+1cc33 5 653 516
+1cc38 1e 601 516
+1cc56 2 603 516
+1cc58 5 606 516
+1cc5d 2 607 516
+1cc5f 2 608 516
+1cc61 25 615 516
+1cc86 2 617 516
+1cc88 1 627 516
+1cc89 2 642 516
+1cc8b e 579 516
+1cc99 7 581 516
+1cca0 5 582 516
+1cca5 2d 562 516
+1ccd2 6 564 516
+1ccd8 5 565 516
+1ccdd e 687 516
+1cceb 3 689 516
+1ccee 5 690 516
+1ccf3 15 558 516
+1cd08 2 834 516
+1cd0a 5 814 516
+1cd0f 19 817 516
+1cd28 5 819 516
+1cd2d d 795 516
+1cd3a b 798 516
+1cd45 5 799 516
+1cd4a 11 762 516
+1cd5b 5 764 516
+1cd60 1 774 516
+1cd61 5 776 516
+1cd66 16 729 516
+1cd7c 6 731 516
+1cd82 5 732 516
+1cd87 16 704 516
+1cd9d 3 705 516
+1cda0 b 706 516
+1cdab 2 707 516
+1cdad e 708 516
+1cdbb 6 839 516
+1cdc1 2 840 516
+FUNC 1cdc3 45d 18 _store_winword
+1cdc3 10 1035 516
+1cdd3 5 1043 516
+1cdd8 a 1053 516
+1cde2 3 1043 516
+1cde5 6 1053 516
+1cdeb 2 1054 516
+1cded 6 1049 516
+1cdf3 2 1050 516
+1cdf5 6 1046 516
+1cdfb 10 1057 516
+1ce0b 4 1066 516
+1ce0f 8 1067 516
+1ce17 6 1069 516
+1ce1d d 1075 516
+1ce2a a 1076 516
+1ce34 8 1077 516
+1ce3c 4 1078 516
+1ce40 2a 1085 516
+1ce6a b 1087 516
+1ce75 31 1092 516
+1cea6 7 1093 516
+1cead 3 1097 516
+1ceb0 13 1100 516
+1cec3 10 1101 516
+1ced3 b 1102 516
+1cede b 1103 516
+1cee9 9 1106 516
+1cef2 3 1291 516
+1cef5 12 1292 516
+1cf07 11 1114 516
+1cf18 5 1117 516
+1cf1d b 1120 516
+1cf28 37 1125 516
+1cf5f 14 1274 516
+1cf73 c 1277 516
+1cf7f 8 1283 516
+1cf87 4 1284 516
+1cf8b 9 1286 516
+1cf94 c 1287 516
+1cfa0 5 1277 516
+1cfa5 e 1128 516
+1cfb3 7 1133 516
+1cfba 7 1132 516
+1cfc1 7 1130 516
+1cfc8 2 1131 516
+1cfca 5 1134 516
+1cfcf a 1156 516
+1cfd9 7 1158 516
+1cfe0 2 1159 516
+1cfe2 5 1160 516
+1cfe7 11 1175 516
+1cff8 5 1176 516
+1cffd 11 1177 516
+1d00e 6 1178 516
+1d014 2 1179 516
+1d016 5 1180 516
+1d01b b 1225 516
+1d026 13 1226 516
+1d039 4 1228 516
+1d03d 1a 1233 516
+1d057 9 1236 516
+1d060 8 1242 516
+1d068 4 1243 516
+1d06c 9 1246 516
+1d075 8 1247 516
+1d07d 5 1277 516
+1d082 1 1230 516
+1d083 5 1250 516
+1d088 12 1136 516
+1d09a 7 1141 516
+1d0a1 7 1140 516
+1d0a8 7 1138 516
+1d0af 2 1139 516
+1d0b1 5 1142 516
+1d0b6 29 1125 516
+1d0df e 1144 516
+1d0ed 7 1147 516
+1d0f4 2 1146 516
+1d0f6 5 1148 516
+1d0fb 7 1182 516
+1d102 b 1183 516
+1d10d 2 1184 516
+1d10f 6 1185 516
+1d115 12 1187 516
+1d127 17 1188 516
+1d13e c 1191 516
+1d14a 8 1197 516
+1d152 4 1198 516
+1d156 8 1201 516
+1d15e 2 1202 516
+1d160 5 1203 516
+1d165 9 1204 516
+1d16e 1a 1205 516
+1d188 9 1207 516
+1d191 8 1212 516
+1d199 4 1213 516
+1d19d 9 1215 516
+1d1a6 8 1216 516
+1d1ae 2 1220 516
+1d1b0 d 1168 516
+1d1bd 7 1170 516
+1d1c4 2 1171 516
+1d1c6 2 1172 516
+1d1c8 d 1162 516
+1d1d5 7 1164 516
+1d1dc 2 1165 516
+1d1de 2 1166 516
+1d1e0 d 1150 516
+1d1ed 7 1152 516
+1d1f4 2 1153 516
+1d1f6 1b 1268 516
+1d211 3 1272 516
+1d214 5 1273 516
+1d219 7 1194 516
+FUNC 1d220 1af 18 _Strftime_l
+1d220 6 356 516
+1d226 4 361 516
+1d22a 13 362 516
+1d23d 33 364 516
+1d270 33 365 516
+1d2a3 d 368 516
+1d2b0 10 375 516
+1d2c0 e 385 516
+1d2ce a 387 516
+1d2d8 1e 435 516
+1d2f6 4 438 516
+1d2fa a 446 516
+1d304 5 447 516
+1d309 b 452 516
+1d314 3 453 516
+1d317 2 454 516
+1d319 7 400 516
+1d320 1 405 516
+1d321 2 408 516
+1d323 5 409 516
+1d328 1 411 516
+1d329 1 412 516
+1d32a 1d 415 516
+1d347 1 428 516
+1d348 5 385 516
+1d34d 5 464 516
+1d352 5 469 516
+1d357 13 470 516
+1d36a 3 441 516
+1d36d f 478 516
+1d37c b 481 516
+1d387 2 483 516
+1d389 b 402 516
+1d394 2 403 516
+1d396 5 421 516
+1d39b 7 423 516
+1d3a2 2 464 516
+1d3a4 18 485 516
+1d3bc 11 488 516
+1d3cd 2 490 516
+FUNC 1d3cf 1e 14 _strftime_l
+1d3cf 3 291 516
+1d3d2 19 292 516
+1d3eb 2 293 516
+FUNC 1d3ed 1d 10 strftime
+1d3ed 0 300 516
+1d3ed 1c 301 516
+1d409 1 302 516
+FUNC 1d40a 1e 14 _Strftime
+1d40a 3 343 516
+1d40d 19 345 516
+1d426 2 346 516
+FUNC 1d428 26 0 localeconv
+1d428 0 69 3302
+1d428 5 75 3302
+1d42d 1b 78 3302
+1d448 5 79 3302
+1d44d 1 80 3302
+FUNC 1d450 46 8 strcspn
+1d450 4 191 924
+1d454 2 198 924
+1d456 1 199 924
+1d457 1 200 924
+1d458 1 201 924
+1d459 1 202 924
+1d45a 1 203 924
+1d45b 1 204 924
+1d45c 1 205 924
+1d45d 1 206 924
+1d45e 6 212 924
+1d464 2 216 924
+1d466 2 217 924
+1d468 2 218 924
+1d46a 3 219 924
+1d46d 4 220 924
+1d471 2 221 924
+1d473 3 227 924
+1d476 6 229 924
+1d47c 3 234 924
+1d47f 2 236 924
+1d481 2 237 924
+1d483 2 238 924
+1d485 3 239 924
+1d488 4 240 924
+1d48c 2 245 924
+1d48e 2 255 924
+1d490 3 257 924
+1d493 3 259 924
+FUNC 1d496 60 c TranslateName
+1d496 3 340 3849
+1d499 3 342 3849
+1d49c 3 343 3849
+1d49f b 346 3849
+1d4aa a 348 3849
+1d4b4 14 349 3849
+1d4c8 6 351 3849
+1d4ce a 352 3849
+1d4d8 2 353 3849
+1d4da 4 354 3849
+1d4de 2 355 3849
+1d4e0 3 356 3849
+1d4e3 7 346 3849
+1d4ea a 359 3849
+1d4f4 2 360 3849
+FUNC 1d4f6 14 0 GetLcidFromDefault
+1d4f6 0 761 3849
+1d4f6 7 762 3849
+1d4fd c 763 3849
+1d509 1 764 3849
+FUNC 1d50a 77 0 ProcessCodePage
+1d50a 13 784 3849
+1d51d 1a 787 3849
+1d537 11 795 3849
+1d548 8 799 3849
+1d550 2 801 3849
+1d552 18 791 3849
+1d56a 3 793 3849
+1d56d 7 805 3849
+1d574 d 806 3849
+FUNC 1d581 1e 4 TestDefaultCountry
+1d581 0 826 3849
+1d581 2 830 3849
+1d583 15 832 3849
+1d598 3 835 3849
+1d59b 1 836 3849
+1d59c 2 833 3849
+1d59e 1 836 3849
+FUNC 1d59f 32 0 LcidFromHexString
+1d59f 1 893 3849
+1d5a0 2 895 3849
+1d5a2 2 897 3849
+1d5a4 9 899 3849
+1d5ad 5 900 3849
+1d5b2 8 901 3849
+1d5ba 3 902 3849
+1d5bd 10 903 3849
+1d5cd 3 906 3849
+1d5d0 1 907 3849
+FUNC 1d5d1 1b 0 GetPrimaryLen
+1d5d1 0 926 3849
+1d5d1 2 927 3849
+1d5d3 3 930 3849
+1d5d6 12 931 3849
+1d5e8 1 933 3849
+1d5e9 2 935 3849
+1d5eb 1 938 3849
+FUNC 1d5ec 96 4 CountryEnumProc
+1d5ec 15 717 3849
+1d601 7 718 3849
+1d608 f 719 3849
+1d617 23 725 3849
+1d63a 3 728 3849
+1d63d 3 729 3849
+1d640 12 731 3849
+1d652 b 734 3849
+1d65d a 738 3849
+1d667 b 741 3849
+1d672 10 742 3849
+FUNC 1d682 72 8 TestDefaultLanguage
+1d682 11 858 3849
+1d693 22 864 3849
+1d6b5 4 865 3849
+1d6b9 d 867 3849
+1d6c6 1c 871 3849
+1d6e2 2 872 3849
+1d6e4 3 874 3849
+1d6e7 d 875 3849
+FUNC 1d6f4 1d0 4 LangCountryEnumProc
+1d6f4 16 435 3849
+1d70a 7 436 3849
+1d711 d 437 3849
+1d71e 27 444 3849
+1d745 4 447 3849
+1d749 8 448 3849
+1d751 16 450 3849
+1d767 1d 456 3849
+1d784 2 460 3849
+1d786 11 462 3849
+1d797 7 467 3849
+1d79e 5 468 3849
+1d7a3 6 472 3849
+1d7a9 1a 475 3849
+1d7c3 14 482 3849
+1d7d7 3 483 3849
+1d7da a 487 3849
+1d7e4 b 490 3849
+1d7ef 6 493 3849
+1d7f5 3 494 3849
+1d7f8 12 501 3849
+1d80a 1d 506 3849
+1d827 6 510 3849
+1d82d c 513 3849
+1d839 16 518 3849
+1d84f 8 522 3849
+1d857 14 528 3849
+1d86b 2 531 3849
+1d86d 2 540 3849
+1d86f 1b 550 3849
+1d88a f 553 3849
+1d899 7 557 3849
+1d8a0 5 558 3849
+1d8a5 3 559 3849
+1d8a8 b 566 3849
+1d8b3 11 567 3849
+FUNC 1d8c4 bf 4 LanguageEnumProc
+1d8c4 15 624 3849
+1d8d9 7 625 3849
+1d8e0 f 626 3849
+1d8ef 23 632 3849
+1d912 3 635 3849
+1d915 3 636 3849
+1d918 11 639 3849
+1d929 7 643 3849
+1d930 2 650 3849
+1d932 1d 651 3849
+1d94f f 654 3849
+1d95e a 658 3849
+1d968 b 662 3849
+1d973 10 663 3849
+FUNC 1d983 2c 0 GetLcidFromCountry
+1d983 0 686 3849
+1d983 10 687 3849
+1d993 11 689 3849
+1d9a4 6 693 3849
+1d9aa 4 694 3849
+1d9ae 1 695 3849
+FUNC 1d9af 65 0 GetLcidFromLangCountry
+1d9af 0 386 3849
+1d9af 7 388 3849
+1d9b6 1a 389 3849
+1d9d0 5 390 3849
+1d9d5 17 392 3849
+1d9ec 10 394 3849
+1d9fc 13 402 3849
+1da0f 4 403 3849
+1da13 1 404 3849
+FUNC 1da14 3c 0 GetLcidFromLanguage
+1da14 0 591 3849
+1da14 13 593 3849
+1da27 e 594 3849
+1da35 10 596 3849
+1da45 6 600 3849
+1da4b 4 601 3849
+1da4f 1 602 3849
+FUNC 1da50 1e3 c __get_qualified_locale
+1da50 4 205 3849
+1da54 5 208 3849
+1da59 12 212 3849
+1da6b 7 215 3849
+1da72 5 217 3849
+1da77 3 222 3849
+1da7a f 223 3849
+1da89 10 226 3849
+1da99 d 230 3849
+1daa6 a 232 3849
+1dab0 5 235 3849
+1dab5 2 237 3849
+1dab7 5 240 3849
+1dabc 5 243 3849
+1dac1 14 248 3849
+1dad5 a 250 3849
+1dadf 5 252 3849
+1dae4 2 254 3849
+1dae6 5 256 3849
+1daeb 2 261 3849
+1daed a 263 3849
+1daf7 28 266 3849
+1db1f 2 268 3849
+1db21 13 271 3849
+1db34 3 277 3849
+1db37 6 278 3849
+1db3d 17 281 3849
+1db54 32 285 3849
+1db86 d 289 3849
+1db93 6 290 3849
+1db99 8 293 3849
+1dba1 7 295 3849
+1dba8 8 296 3849
+1dbb0 4 297 3849
+1dbb4 8 301 3849
+1dbbc d 305 3849
+1dbc9 23 306 3849
+1dbec 2 307 3849
+1dbee f 308 3849
+1dbfd 2 309 3849
+1dbff 12 311 3849
+1dc11 2 312 3849
+1dc13 14 313 3849
+1dc27 5 315 3849
+1dc2c 6 286 3849
+1dc32 1 316 3849
+FUNC 1dc33 12 0 cmpResult
+FUNC 1dc45 18 0 cmpBYTE
+FUNC 1dc5d 40 0 cmpWORD
+FUNC 1dc9d 78 0 cmpDWORD
+FUNC 1dd15 1490 0 unaligned_memcmp
+FUNC 1f1a5 1680 c memcmp
+FUNC 20825 be c strncmp
+20825 4 42 876
+20829 5 43 876
+2082e 7 45 876
+20835 7 46 876
+2083c 6 48 876
+20842 d 51 876
+2084f 11 56 876
+20860 c 61 876
+2086c c 66 876
+20878 15 71 876
+2088d 2 81 876
+2088f a 73 876
+20899 a 68 876
+208a3 a 63 876
+208ad 10 58 876
+208bd 2 79 876
+208bf a 81 876
+208c9 1 85 876
+208ca 4 86 876
+208ce 5 79 876
+208d3 4 89 876
+208d7 2 90 876
+208d9 a 83 876
+FUNC 208f0 40 8 strpbrk
+208f0 4 191 869
+208f4 2 198 869
+208f6 1 199 869
+208f7 1 200 869
+208f8 1 201 869
+208f9 1 202 869
+208fa 1 203 869
+208fb 1 204 869
+208fc 1 205 869
+208fd 1 206 869
+208fe 6 212 869
+20904 2 216 869
+20906 2 217 869
+20908 2 218 869
+2090a 3 219 869
+2090d 4 220 869
+20911 2 221 869
+20913 5 227 869
+20918 2 236 869
+2091a 2 237 869
+2091c 2 238 869
+2091e 3 239 869
+20921 4 240 869
+20925 2 247 869
+20927 3 248 869
+2092a 3 257 869
+2092d 3 259 869
+FUNC 20930 82 c _iswctype_l
+20930 6 66 6445
+20936 8 69 6445
+2093e 6 70 6445
+20944 8 71 6445
+2094c 18 72 6445
+20964 2 73 6445
+20966 b 75 6445
+20971 25 85 6445
+20996 3 86 6445
+20999 d 87 6445
+209a6 a 89 6445
+209b0 2 90 6445
+FUNC 209b2 6e 8 iswctype
+209b2 4 96 6445
+209b6 8 97 6445
+209be 2 99 6445
+209c0 2 122 6445
+209c2 8 101 6445
+209ca 14 103 6445
+209de 2 122 6445
+209e0 9 106 6445
+209e9 25 117 6445
+20a0e 10 121 6445
+20a1e 2 122 6445
+FUNC 20a20 5 8 is_wctype
+20a20 0 148 6445
+20a20 5 149 6445
+FUNC 20a25 22b 14 strtoxl
+20a25 8 80 6309
+20a2d b 86 6309
+20a38 3 89 6309
+20a3b b 92 6309
+20a46 30 94 6309
+20a76 11 95 6309
+20a87 c 100 6309
+20a93 34 101 6309
+20ac7 5 102 6309
+20acc 5 104 6309
+20ad1 4 105 6309
+20ad5 2 106 6309
+20ad7 5 108 6309
+20adc 3 109 6309
+20adf 1d 111 6309
+20afc 4 118 6309
+20b00 5 121 6309
+20b05 9 122 6309
+20b0e a 123 6309
+20b18 9 126 6309
+20b21 7 124 6309
+20b28 2 129 6309
+20b2a 5 140 6309
+20b2f f 142 6309
+20b3e 1 143 6309
+20b3f 9 144 6309
+20b48 8 149 6309
+20b50 c 154 6309
+20b5c 8 155 6309
+20b64 7 156 6309
+20b6b 13 157 6309
+20b7e 5 160 6309
+20b83 4 164 6309
+20b87 b 171 6309
+20b92 4 177 6309
+20b96 6 178 6309
+20b9c 8 190 6309
+20ba4 6 193 6309
+20baa 3 195 6309
+20bad 4 196 6309
+20bb1 2 198 6309
+20bb3 c 173 6309
+20bbf 3 185 6309
+20bc2 2 186 6309
+20bc4 24 201 6309
+20be8 5 204 6309
+20bed c 205 6309
+20bf9 6 206 6309
+20bff 10 207 6309
+20c0f 7 213 6309
+20c16 2 215 6309
+20c18 6 217 6309
+20c1e 3 219 6309
+20c21 12 221 6309
+20c33 7 113 6309
+20c3a 2 115 6309
+20c3c 12 116 6309
+20c4e 2 222 6309
+FUNC 20c50 29 c strtol
+20c50 3 229 6309
+20c53 8 230 6309
+20c5b 13 232 6309
+20c6e 9 236 6309
+20c77 2 238 6309
+FUNC 20c79 1b 10 _strtol_l
+20c79 0 246 6309
+20c79 1a 247 6309
+20c93 1 248 6309
+FUNC 20c94 2a c strtoul
+20c94 3 255 6309
+20c97 7 256 6309
+20c9e 14 258 6309
+20cb2 a 262 6309
+20cbc 2 264 6309
+FUNC 20cbe 1b 10 _strtoul_l
+20cbe 0 272 6309
+20cbe 1a 273 6309
+20cd8 1 274 6309
+FUNC 20cd9 1f 0 __initconin
+20cd9 0 58 5008
+20cd9 1e 65 5008
+20cf7 1 67 5008
+FUNC 20cf8 1f 0 __initconout
+20cf8 0 90 5008
+20cf8 1e 97 5008
+20d16 1 98 5008
+FUNC 20d17 2d 0 __termcon
+20d17 0 120 5008
+20d17 16 121 5008
+20d2d 3 122 5008
+20d30 f 125 5008
+20d3f 4 126 5008
+20d43 1 128 5008
+FUNC 20d44 94 4 _close_nolock
+20d44 1 72 5094
+20d45 54 93 5094
+20d99 a 99 5094
+20da3 2 96 5094
+20da5 6 101 5094
+20dab b 103 5094
+20db6 11 105 5094
+20dc7 7 107 5094
+20dce 5 108 5094
+20dd3 4 111 5094
+20dd7 1 112 5094
+FUNC 20dd8 cd 4 _close
+20dd8 c 42 5094
+20de4 23 46 5094
+20e07 2f 47 5094
+20e36 20 48 5094
+20e56 7 50 5094
+20e5d 3 52 5094
+20e60 9 53 5094
+20e69 c 54 5094
+20e75 2 55 5094
+20e77 b 56 5094
+20e82 4 57 5094
+20e86 c 61 5094
+20e92 3 65 5094
+20e95 6 66 5094
+20e9b a 62 5094
+FUNC 20ea5 2c 4 _freebuf
+20ea5 1 47 1927
+20ea6 f 50 1927
+20eb5 8 52 1927
+20ebd 7 54 1927
+20ec4 8 55 1927
+20ecc 4 56 1927
+20ed0 1 58 1927
+FUNC 20ed1 2a 0 _purecall
+20ed1 0 43 3119
+20ed1 b 44 3119
+20edc 5 45 3119
+20ee1 2 47 3119
+20ee3 7 54 3119
+20eea c 56 3119
+20ef6 5 57 3119
+FUNC 20efb 22 4 _set_purecall_handler
+20efb 1 82 3119
+20efc b 85 3119
+20f07 12 86 3119
+20f19 3 88 3119
+20f1c 1 89 3119
+FUNC 20f1d d 0 _get_purecall_handler
+20f1d 0 92 3119
+20f1d c 93 3119
+20f29 1 94 3119
+FUNC 20f30 34 0 _allmul
+20f30 0 47 5116
+20f30 4 62 5116
+20f34 4 63 5116
+20f38 2 64 5116
+20f3a 4 65 5116
+20f3e 2 66 5116
+20f40 4 68 5116
+20f44 2 69 5116
+20f46 3 71 5116
+20f49 1 74 5116
+20f4a 2 81 5116
+20f4c 2 82 5116
+20f4e 4 84 5116
+20f52 4 85 5116
+20f56 2 86 5116
+20f58 4 88 5116
+20f5c 2 89 5116
+20f5e 2 90 5116
+20f60 1 92 5116
+20f61 3 94 5116
+FUNC 20f64 11 4 atol
+20f64 0 55 6631
+20f64 10 56 6631
+20f74 1 57 6631
+FUNC 20f75 15 8 _atol_l
+20f75 0 64 6631
+20f75 14 65 6631
+20f89 1 66 6631
+FUNC 20f8a 5 4 atoi
+20f8a 0 99 6631
+20f8a 5 100 6631
+FUNC 20f8f 5 8 _atoi_l
+20f8f 0 107 6631
+20f8f 5 108 6631
+FUNC 20f94 11 4 _atoi64
+20f94 0 143 6631
+20f94 10 144 6631
+20fa4 1 145 6631
+FUNC 20fa5 15 8 _atoi64_l
+20fa5 0 151 6631
+20fa5 14 152 6631
+20fb9 1 153 6631
+FUNC 20fba 50 0 has_osfxsr_set
+FUNC 2100a 60 0 _get_sse2_info
+FUNC 2106a d 0 __sse2_available_init
+FUNC 21077 170 8 _flswbuf
+21077 5 93 1980
+2107c c 104 1980
+21088 8 106 1980
+21090 b 107 1980
+2109b 4 108 1980
+2109f a 109 1980
+210a9 4 110 1980
+210ad b 111 1980
+210b8 2 113 1980
+210ba 4 124 1980
+210be 4 125 1980
+210c2 8 126 1980
+210ca 3 127 1980
+210cd 8 128 1980
+210d5 3 137 1980
+210d8 11 138 1980
+210e9 9 141 1980
+210f2 25 151 1980
+21117 7 153 1980
+2111e d 158 1980
+2112b 5 162 1980
+21130 5 163 1980
+21135 7 164 1980
+2113c 7 166 1980
+21143 10 167 1980
+21153 2 168 1980
+21155 6 131 1980
+2115b 5 132 1980
+21160 2e 169 1980
+2118e 13 171 1980
+211a1 2 174 1980
+211a3 9 181 1980
+211ac 2 186 1980
+211ae 1d 195 1980
+211cb 5 201 1980
+211d0 4 202 1980
+211d4 7 203 1980
+211db a 209 1980
+211e5 2 212 1980
+FUNC 211e7 182 4 _wchartodigit
+211e7 0 32 6613
+211e7 1b 41 6613
+21202 1 73 6613
+21203 e 42 6613
+21211 19 44 6613
+2122a 1 73 6613
+2122b 14 45 6613
+2123f 14 46 6613
+21253 14 47 6613
+21267 14 48 6613
+2127b 14 49 6613
+2128f 14 50 6613
+212a3 18 51 6613
+212bb 18 52 6613
+212d3 18 53 6613
+212eb 14 54 6613
+212ff 14 55 6613
+21313 12 56 6613
+21325 14 57 6613
+21339 14 58 6613
+2134d c 59 6613
+21359 2 62 6613
+2135b 4 67 6613
+2135f 6 69 6613
+21365 3 71 6613
+21368 1 73 6613
+FUNC 21369 b6 c _isctype_l
+21369 7 114 6399
+21370 b 118 6399
+2137b d 121 6399
+21388 f 122 6399
+21397 1f 124 6399
+213b6 3 126 6399
+213b9 d 129 6399
+213c6 2 130 6399
+213c8 a 133 6399
+213d2 26 144 6399
+213f8 10 146 6399
+21408 15 149 6399
+2141d 2 150 6399
+FUNC 2141f 2f 8 _isctype
+2141f 0 156 6399
+2141f 9 157 6399
+21428 12 159 6399
+2143a 1 165 6399
+2143b 12 163 6399
+2144d 1 165 6399
+FUNC 21450 2c 0 _alloca_probe_16
+21450 0 44 2632
+21450 1 46 2632
+21451 4 47 2632
+21455 2 48 2632
+21457 3 49 2632
+2145a 2 50 2632
+2145c 2 51 2632
+2145e 2 52 2632
+21460 1 53 2632
+21461 5 54 2632
+21466 1 59 2632
+21467 4 60 2632
+2146b 2 61 2632
+2146d 3 62 2632
+21470 2 63 2632
+21472 2 64 2632
+21474 2 65 2632
+21476 1 66 2632
+21477 5 67 2632
+PUBLIC 21466 0 _alloca_probe_8
+FUNC 2147c 47 4 __ansicp
+2147c 10 39 2934
+2148c 1c 44 2934
+214a8 3 45 2934
+214ab 2 46 2934
+214ad a 47 2934
+214b7 c 49 2934
+FUNC 214c3 1b2 18 __convertcp
+214c3 16 79 2934
+214d9 10 83 2934
+214e9 18 85 2934
+21501 17 90 2934
+21518 13 92 2934
+2152b 6 93 2934
+21531 d 99 2934
+2153e 2 101 2934
+21540 c 103 2934
+2154c 2a 115 2934
+21576 15 111 2934
+2158b 7 112 2934
+21592 1c 115 2934
+215ae 3 116 2934
+215b1 2 117 2934
+215b3 10 119 2934
+215c3 15 127 2934
+215d8 7 129 2934
+215df 18 138 2934
+215f7 3 139 2934
+215fa 2 140 2934
+215fc 1f 149 2934
+2161b 11 151 2934
+2162c 12 160 2934
+2163e 9 162 2934
+21647 3 163 2934
+2164a 2 164 2934
+2164c 6 165 2934
+21652 5 166 2934
+21657 9 174 2934
+21660 3 177 2934
+21663 12 178 2934
+FUNC 21675 34 4 _get_daylight
+21675 0 35 487
+21675 27 36 487
+2169c 1 41 487
+2169d 8 39 487
+216a5 3 40 487
+216a8 1 41 487
+FUNC 216a9 34 4 _get_dstbias
+216a9 0 44 487
+216a9 27 45 487
+216d0 1 50 487
+216d1 8 48 487
+216d9 3 49 487
+216dc 1 50 487
+FUNC 216dd 34 4 _get_timezone
+216dd 0 53 487
+216dd 27 54 487
+21704 1 59 487
+21705 8 57 487
+2170d 3 58 487
+21710 1 59 487
+FUNC 21711 a2 10 _get_tzname
+21711 3 62 487
+21714 10 63 487
+21724 4 64 487
+21728 3 66 487
+2172b 7 68 487
+21732 27 69 487
+21759 20 63 487
+21779 f 72 487
+21788 8 73 487
+21790 4 76 487
+21794 5 78 487
+21799 5 80 487
+2179e 13 82 487
+217b1 2 83 487
+FUNC 217b3 6 0 __daylight
+217b3 0 118 487
+217b3 5 119 487
+217b8 1 120 487
+FUNC 217b9 6 0 __dstbias
+217b9 0 123 487
+217b9 5 124 487
+217be 1 125 487
+FUNC 217bf 6 0 __timezone
+217bf 0 128 487
+217bf 5 129 487
+217c4 1 130 487
+FUNC 217c5 6 0 __tzname
+217c5 0 133 487
+217c5 5 134 487
+217ca 1 135 487
+FUNC 217cb c 4 _set_daylight
+217cb c 189 418
+FUNC 217d7 c 4 _set_dstbias
+217d7 c 190 418
+FUNC 217e3 c 4 _set_timezone
+217e3 c 191 418
+FUNC 217ef 349 0 _tzset_nolock
+217ef c 124 440
+217fb 5 127 440
+21800 3 129 440
+21803 3 130 440
+21806 3 131 440
+21809 3 132 440
+2180c 3 133 440
+2180f 8 135 440
+21817 3 136 440
+2181a 8 139 440
+21822 1b 142 440
+2183d 1b 143 440
+21858 1b 144 440
+21873 8 149 440
+2187b 6 154 440
+21881 f 160 440
+21890 18 165 440
+218a8 14 260 440
+218bc b 268 440
+218c7 4 274 440
+218cb 7 275 440
+218d2 16 277 440
+218e8 6 281 440
+218ee 32 283 440
+21920 9 174 440
+21929 7 175 440
+21930 6 176 440
+21936 13 179 440
+21949 9 183 440
+21952 b 188 440
+2195d 9 190 440
+21966 e 191 440
+21974 12 199 440
+21986 3 201 440
+21989 c 203 440
+21995 2 205 440
+21997 3 206 440
+2199a 3 214 440
+2199d 27 234 440
+219c4 8 235 440
+219cc 2 236 440
+219ce 7 237 440
+219d5 23 247 440
+219f8 9 248 440
+21a01 2 249 440
+21a03 8 250 440
+21a0b 7 256 440
+21a12 a 288 440
+21a1c a 289 440
+21a26 a 290 440
+21a30 c 292 440
+21a3c 9 296 440
+21a45 23 301 440
+21a68 8 310 440
+21a70 7 311 440
+21a77 1 312 440
+21a78 10 318 440
+21a88 11 320 440
+21a99 5 292 440
+21a9e 9 293 440
+21aa7 5 325 440
+21aac e 329 440
+21aba d 330 440
+21ac7 5 335 440
+21acc b 339 440
+21ad7 d 340 440
+21ae4 5 344 440
+21ae9 3 345 440
+21aec 6 350 440
+21af2 4 351 440
+21af6 21 352 440
+21b17 2 354 440
+21b19 5 355 440
+21b1e a 357 440
+21b28 a 358 440
+21b32 6 360 440
+FUNC 21b38 1f5 24 cvtdate
+21b38 6 409 440
+21b3e 4 412 440
+21b42 c 414 440
+21b4e 52 424 440
+21ba0 4c 430 440
+21bec 14 436 440
+21c00 2 437 440
+21c02 2 438 440
+21c04 46 447 440
+21c4a 3 449 440
+21c4d 2 452 440
+21c4f 3c 457 440
+21c8b 3 459 440
+21c8e 27 467 440
+21cb5 6 472 440
+21cbb 2 474 440
+21cbd 29 485 440
+21ce6 11 486 440
+21cf7 a 487 440
+21d01 8 488 440
+21d09 d 490 440
+21d16 6 491 440
+21d1c 6 492 440
+21d22 9 499 440
+21d2b 2 503 440
+FUNC 21d2d 1ae 0 _isindst_nolock
+21d2d 5 554 440
+21d32 20 558 440
+21d52 5 560 440
+21d57 7 561 440
+21d5e 1b 568 440
+21d79 c 569 440
+21d85 7 573 440
+21d8c 34 584 440
+21dc0 2 585 440
+21dc2 19 596 440
+21ddb 40 611 440
+21e1b 2 612 440
+21e1d 1e 623 440
+21e3b 2 626 440
+21e3d 14 641 440
+21e51 1a 653 440
+21e6b d 660 440
+21e78 d 664 440
+21e85 8 666 440
+21e8d 4 674 440
+21e91 2 697 440
+21e93 8 673 440
+21e9b 8 675 440
+21ea3 4 676 440
+21ea7 14 679 440
+21ebb 4 681 440
+21ebf b 682 440
+21eca 2 685 440
+21ecc d 691 440
+21ed9 2 694 440
+FUNC 21edb 4f 0 __tzset
+21edb c 85 440
+21ee7 a 88 440
+21ef1 8 90 440
+21ef9 3 91 440
+21efc 8 93 440
+21f04 5 94 440
+21f09 6 95 440
+21f0f c 98 440
+21f1b 6 103 440
+21f21 9 99 440
+FUNC 21f2a 38 0 _tzset
+21f2a c 109 440
+21f36 8 110 440
+21f3e 4 111 440
+21f42 5 113 440
+21f47 c 115 440
+21f53 6 118 440
+21f59 9 116 440
+FUNC 21f62 41 4 _isindst
+21f62 c 538 440
+21f6e 8 541 440
+21f76 4 542 440
+21f7a b 543 440
+21f85 c 544 440
+21f91 3 548 440
+21f94 6 549 440
+21f9a 9 545 440
+FUNC 21fa3 35 8 __ascii_stricmp
+21fa3 a 75 693
+21fad c 80 693
+21fb9 3 81 693
+21fbc c 82 693
+21fc8 3 83 693
+21fcb 9 85 693
+21fd4 3 87 693
+21fd7 1 88 693
+FUNC 21fd8 d3 c _stricmp_l
+21fd8 7 47 693
+21fdf b 49 693
+21fea 36 52 693
+22020 32 53 693
+22052 8 55 693
+2205a e 57 693
+22068 15 63 693
+2207d 11 64 693
+2208e 8 65 693
+22096 13 68 693
+220a9 2 69 693
+FUNC 220ab 50 8 _stricmp
+220ab 4 94 693
+220af a 95 693
+220b9 24 98 693
+220dd 6 99 693
+220e3 1 107 693
+220e4 5 101 693
+220e9 10 105 693
+220f9 2 107 693
+FUNC 220fb f0 10 _strnicmp_l
+220fb 7 51 650
+22102 d 54 650
+2210f b 56 650
+2211a 33 59 650
+2214d 7 60 650
+22154 32 61 650
+22186 8 63 650
+2218e 1d 65 650
+221ab 15 71 650
+221c0 11 72 650
+221d1 d 74 650
+221de 6 76 650
+221e4 5 79 650
+221e9 2 80 650
+FUNC 221eb 5c c _strnicmp
+221eb 4 125 650
+221ef a 127 650
+221f9 24 130 650
+2221d 5 131 650
+22222 a 132 650
+2222c 1 141 650
+2222d 5 134 650
+22232 13 138 650
+22245 2 141 650
+FUNC 22247 db c xtoa_s
+22247 8 93 6581
+2224f 24 102 6581
+22273 24 103 6581
+22297 19 105 6581
+222b0 b 106 6581
+222bb a 112 6581
+222c5 6 114 6581
+222cb 7 116 6581
+222d2 2 118 6581
+222d4 2 121 6581
+222d6 5 124 6581
+222db 5 128 6581
+222e0 3 129 6581
+222e3 2 130 6581
+222e5 6 131 6581
+222eb 3 135 6581
+222ee e 136 6581
+222fc 8 139 6581
+22304 2 141 6581
+22306 2 142 6581
+22308 3 148 6581
+2230b 6 152 6581
+22311 3 154 6581
+22314 1 155 6581
+22315 4 156 6581
+22319 5 158 6581
+2231e 4 160 6581
+FUNC 22322 28 10 _itoa_s
+22322 3 172 6581
+22325 d 175 6581
+22332 4 176 6581
+22336 2 177 6581
+22338 10 178 6581
+22348 2 181 6581
+FUNC 2234a 25 10 _ltoa_s
+2234a 3 189 6581
+2234d 20 190 6581
+2236d 2 191 6581
+FUNC 2236f 18 10 _ultoa_s
+2236f 0 199 6581
+2236f 17 200 6581
+22386 1 201 6581
+FUNC 22387 f6 14 x64toa_s
+22387 7 309 6581
+2238e 25 318 6581
+223b3 5 319 6581
+223b8 19 321 6581
+223d1 b 322 6581
+223dc 3 327 6581
+223df 20 333 6581
+223ff 3 336 6581
+22402 1e 352 6581
+22420 3 344 6581
+22423 2 345 6581
+22425 5 346 6581
+2242a 5 351 6581
+2242f 13 352 6581
+22442 5 355 6581
+22447 3 357 6581
+2244a 13 358 6581
+2245d 4 364 6581
+22461 9 368 6581
+2246a 3 370 6581
+2246d 1 371 6581
+2246e 7 372 6581
+22475 4 375 6581
+22479 4 377 6581
+FUNC 2247d 33 14 _i64toa_s
+2247d 3 390 6581
+22480 2e 391 6581
+224ae 2 392 6581
+FUNC 224b0 1d 14 _ui64toa_s
+224b0 4 400 6581
+224b4 17 401 6581
+224cb 2 402 6581
+FUNC 224cd 224 1c __crtGetStringTypeW_stat
+224cd 10 64 2828
+224dd 9 72 2828
+224e6 7 73 2828
+224ed 14 75 2828
+22501 11 79 2828
+22512 8 80 2828
+2251a b 82 2828
+22525 f 83 2828
+22534 4 88 2828
+22538 13 90 2828
+2254b 7 95 2828
+22552 2 199 2828
+22554 8 119 2828
+2255c b 120 2828
+22567 5 121 2828
+2256c b 122 2828
+22577 e 128 2828
+22585 5 130 2828
+2258a 3 131 2828
+2258d 1d 142 2828
+225aa 6 143 2828
+225b0 40 146 2828
+225f0 3 147 2828
+225f3 6 148 2828
+225f9 d 150 2828
+22606 1a 160 2828
+22620 4d 164 2828
+2266d 4 165 2828
+22671 5 170 2828
+22676 b 171 2828
+22681 3 174 2828
+22684 23 178 2828
+226a7 12 186 2828
+226b9 f 189 2828
+226c8 4 187 2828
+226cc 7 191 2828
+226d3 8 194 2828
+226db 4 196 2828
+226df 12 200 2828
+FUNC 226f1 3e 1c __crtGetStringTypeW
+226f1 6 211 2828
+226f7 b 212 2828
+22702 2b 222 2828
+2272d 2 223 2828
+FUNC 2272f 294 14 strtoxq
+2272f 8 80 6264
+22737 b 86 6264
+22742 3 89 6264
+22745 b 92 6264
+22750 31 94 6264
+22781 12 95 6264
+22793 c 100 6264
+2279f 37 102 6264
+227d6 2 103 6264
+227d8 9 105 6264
+227e1 4 106 6264
+227e5 2 107 6264
+227e7 6 109 6264
+227ed 9 110 6264
+227f6 8 112 6264
+227fe 6 115 6264
+22804 9 116 6264
+2280d a 117 6264
+22817 9 120 6264
+22820 3 118 6264
+22823 5 123 6264
+22828 10 125 6264
+22838 1 126 6264
+22839 9 127 6264
+22842 26 132 6264
+22868 e 137 6264
+22876 8 138 6264
+2287e 6 139 6264
+22884 11 140 6264
+22895 5 143 6264
+2289a 31 154 6264
+228cb 4 160 6264
+228cf 6 161 6264
+228d5 a 173 6264
+228df 7 176 6264
+228e6 6 178 6264
+228ec 6 179 6264
+228f2 5 181 6264
+228f7 19 156 6264
+22910 b 168 6264
+2291b 5 169 6264
+22920 35 184 6264
+22955 5 187 6264
+2295a c 188 6264
+22966 a 189 6264
+22970 6 190 6264
+22976 7 191 6264
+2297d 2 192 6264
+2297f 7 193 6264
+22986 8 195 6264
+2298e 5 197 6264
+22993 6 199 6264
+22999 13 201 6264
+229ac 15 203 6264
+229c1 2 204 6264
+FUNC 229c3 29 c _strtoi64
+229c3 3 211 6264
+229c6 8 212 6264
+229ce 13 214 6264
+229e1 9 218 6264
+229ea 2 220 6264
+FUNC 229ec 1b 10 _strtoi64_l
+229ec 0 227 6264
+229ec 1a 228 6264
+22a06 1 229 6264
+FUNC 22a07 2a c _strtoui64
+22a07 3 236 6264
+22a0a 7 237 6264
+22a11 14 239 6264
+22a25 a 243 6264
+22a2f 2 245 6264
+FUNC 22a31 1b 10 _strtoui64_l
+22a31 0 253 6264
+22a31 1a 254 6264
+22a4b 1 255 6264
+FUNC 22a50 2b 0 _chkstk
+22a50 0 65 2634
+22a50 1 69 2634
+22a51 4 73 2634
+22a55 2 74 2634
+22a57 2 79 2634
+22a59 2 80 2634
+22a5b 2 81 2634
+22a5d 2 83 2634
+22a5f 5 84 2634
+22a64 2 87 2634
+22a66 2 88 2634
+22a68 2 89 2634
+22a6a 1 90 2634
+22a6b 1 91 2634
+22a6c 2 92 2634
+22a6e 3 93 2634
+22a71 1 94 2634
+22a72 5 98 2634
+22a77 2 99 2634
+22a79 2 100 2634
+FUNC 22a7b 81 4 _getenv_helper_nolock
+22a7b 0 95 3904
+22a7b 10 103 3904
+22a8b 3 104 3904
+22a8e 1 169 3904
+22a8f e 128 3904
+22a9d 7 131 3904
+22aa4 2 132 3904
+22aa6 6 135 3904
+22aac c 140 3904
+22ab8 9 142 3904
+22ac1 2 150 3904
+22ac3 22 154 3904
+22ae5 3 164 3904
+22ae8 6 150 3904
+22aee 5 168 3904
+22af3 9 169 3904
+FUNC 22afc 93 c _getenv_s_helper
+22afc 7 220 3904
+22b03 21 224 3904
+22b24 15 226 3904
+22b39 4 227 3904
+22b3d 3 229 3904
+22b40 a 233 3904
+22b4a 3 234 3904
+22b4d 2 236 3904
+22b4f 7 239 3904
+22b56 6 240 3904
+22b5c 2 243 3904
+22b5e 5 246 3904
+22b63 5 251 3904
+22b68 20 254 3904
+22b88 5 256 3904
+22b8d 2 257 3904
+FUNC 22b8f a2 8 _dupenv_s_helper
+22b8f 6 339 3904
+22b95 21 344 3904
+22bb6 9 346 3904
+22bbf 2 348 3904
+22bc1 5 350 3904
+22bc6 8 352 3904
+22bce 6 353 3904
+22bd4 2 355 3904
+22bd6 9 358 3904
+22bdf b 362 3904
+22bea 6 364 3904
+22bf0 b 366 3904
+22bfb 9 367 3904
+22c04 1e 370 3904
+22c22 7 371 3904
+22c29 2 373 3904
+22c2b 4 375 3904
+22c2f 2 376 3904
+FUNC 22c31 83 4 getenv
+22c31 c 75 3904
+22c3d 2a 78 3904
+22c67 18 79 3904
+22c7f 8 81 3904
+22c87 3 82 3904
+22c8a c 83 3904
+22c96 c 85 3904
+22ca2 3 89 3904
+22ca5 6 90 3904
+22cab 9 86 3904
+FUNC 22cb4 d8 10 getenv_s
+22cb4 c 198 3904
+22cc0 8 201 3904
+22cc8 5 202 3904
+22ccd a1 203 3904
+22d6e c 205 3904
+22d7a 3 209 3904
+22d7d 6 210 3904
+22d83 9 206 3904
+FUNC 22d8c e6 c _dupenv_s
+22d8c c 303 3904
+22d98 8 306 3904
+22da0 5 307 3904
+22da5 af 311 3904
+22e54 c 314 3904
+22e60 3 318 3904
+22e63 6 319 3904
+22e69 9 315 3904
+FUNC 22e72 8 4 _tolower
+22e72 0 48 6218
+22e72 7 49 6218
+22e79 1 50 6218
+FUNC 22e7a 117 8 _tolower_l
+22e7a 8 70 6218
+22e82 b 74 6218
+22e8d c 77 6218
+22e99 31 79 6218
+22eca f 80 6218
+22ed9 14 82 6218
+22eed 2b 86 6218
+22f18 3 88 6218
+22f1b d 91 6218
+22f28 2 92 6218
+22f2a b 94 6218
+22f35 a 97 6218
+22f3f 25 110 6218
+22f64 6 112 6218
+22f6a 5 116 6218
+22f6f 6 117 6218
+22f75 1a 119 6218
+22f8f 2 120 6218
+FUNC 22f91 27 4 tolower
+22f91 0 143 6218
+22f91 9 145 6218
+22f9a f 147 6218
+22fa9 1 153 6218
+22faa d 151 6218
+22fb7 1 153 6218
+FUNC 22fc0 61 c __ascii_strnicmp
+22fc0 6 69 871
+22fc6 3 75 871
+22fc9 2 76 871
+22fcb 2 77 871
+22fcd 3 79 871
+22fd0 3 80 871
+22fd3 2 82 871
+22fd5 2 83 871
+22fd7 5 84 871
+22fdc 2 89 871
+22fde 2 91 871
+22fe0 2 93 871
+22fe2 2 95 871
+22fe4 2 97 871
+22fe6 2 98 871
+22fe8 3 100 871
+22feb 3 101 871
+22fee 2 103 871
+22ff0 2 104 871
+22ff2 2 106 871
+22ff4 2 107 871
+22ff6 2 109 871
+22ff8 2 112 871
+22ffa 2 113 871
+22ffc 2 115 871
+22ffe 2 116 871
+23000 2 118 871
+23002 2 121 871
+23004 2 122 871
+23006 3 124 871
+23009 2 125 871
+2300b 2 128 871
+2300d 2 129 871
+2300f 2 130 871
+23011 5 133 871
+23016 2 134 871
+23018 2 135 871
+2301a 2 138 871
+2301c 5 140 871
+FUNC 23021 ec 10 _mbsnbicoll_l
+23021 7 53 4518
+23028 b 55 4518
+23033 9 57 4518
+2303c 13 58 4518
+2304f 33 61 4518
+23082 6 62 4518
+23088 23 63 4518
+230ab 8 65 4518
+230b3 14 66 4518
+230c7 23 74 4518
+230ea 10 75 4518
+230fa 11 77 4518
+2310b 2 79 4518
+FUNC 2310d 17 c _mbsnbicoll
+2310d 0 85 4518
+2310d 16 86 4518
+23123 1 87 4518
+FUNC 23124 95 0 __wtomb_environ
+23124 7 43 2699
+2312b 3 44 2699
+2312e 9 45 2699
+23137 c 52 2699
+23143 12 57 2699
+23155 11 61 2699
+23166 12 65 2699
+23178 10 72 2699
+23188 5 74 2699
+2318d 9 76 2699
+23196 3 77 2699
+23199 9 81 2699
+231a2 5 84 2699
+231a7 2 85 2699
+231a9 5 58 2699
+231ae 9 67 2699
+231b7 2 68 2699
+FUNC 231b9 1a 8 strnlen
+231b9 0 38 864
+231b9 19 45 864
+231d2 1 49 864
+FUNC 231d3 1a 4 strncnt
+231d3 0 50 4345
+231d3 6 51 4345
+231d9 6 54 4345
+231df 1 55 4345
+231e0 5 54 4345
+231e5 7 57 4345
+231ec 1 58 4345
+FUNC 231ed 389 18 __crtCompareStringA_stat
+231ed 10 96 4345
+231fd 31 280 4345
+2322e c 107 4345
+2323a b 109 4345
+23245 a 110 4345
+2324f 5 118 4345
+23254 1b 119 4345
+2326f 7 122 4345
+23276 1f 123 4345
+23295 6 120 4345
+2329b 7 121 4345
+232a2 3 124 4345
+232a5 2 125 4345
+232a7 17 130 4345
+232be 7 189 4345
+232c5 8 201 4345
+232cd 8 202 4345
+232d5 d 208 4345
+232e2 5 214 4345
+232e7 8 215 4345
+232ef 2 218 4345
+232f1 6 219 4345
+232f7 5 222 4345
+232fc 4 223 4345
+23300 f 231 4345
+2330f 2 232 4345
+23311 5 237 4345
+23316 4 239 4345
+2331a 2 240 4345
+2331c 10 244 4345
+2332c a 246 4345
+23336 7 244 4345
+2333d 2 262 4345
+2333f 5 253 4345
+23344 6 255 4345
+2334a 8 256 4345
+23352 10 260 4345
+23362 11 262 4345
+23373 7 260 4345
+2337a 2 262 4345
+2337c 1a 280 4345
+23396 6 281 4345
+2339c 4d 284 4345
+233e9 4 285 4345
+233ed 6 286 4345
+233f3 19 295 4345
+2340c 17 305 4345
+23423 46 309 4345
+23469 4 310 4345
+2346d 13 320 4345
+23480 17 326 4345
+23497 7 328 4345
+2349e 8 331 4345
+234a6 9 333 4345
+234af 4 132 4345
+234b3 5 137 4345
+234b8 8 138 4345
+234c0 5 139 4345
+234c5 8 140 4345
+234cd e 142 4345
+234db 6 143 4345
+234e1 5 148 4345
+234e6 19 155 4345
+234ff 2 156 4345
+23501 6 157 4345
+23507 19 163 4345
+23520 4 164 4345
+23524 7 166 4345
+2352b 5 167 4345
+23530 3 169 4345
+23533 3 170 4345
+23536 18 178 4345
+2354e 6 179 4345
+23554 6 181 4345
+2355a 8 182 4345
+23562 2 184 4345
+23564 12 337 4345
+FUNC 23576 40 20 __crtCompareStringA
+23576 6 349 4345
+2357c b 350 4345
+23587 2d 361 4345
+235b4 2 362 4345
+FUNC 235b6 f8 10 _strnicoll_l
+235b6 7 55 603
+235bd b 57 603
+235c8 9 59 603
+235d1 13 60 603
+235e4 33 63 603
+23617 6 64 603
+2361d 23 65 603
+23640 a 67 603
+2364a 15 68 603
+2365f 21 78 603
+23680 b 80 603
+2368b 10 81 603
+2369b 11 84 603
+236ac 2 85 603
+FUNC 236ae 27 c _strnicoll
+236ae 3 92 603
+236b1 9 93 603
+236ba 1 101 603
+236bb 5 95 603
+236c0 13 99 603
+236d3 2 101 603
+FUNC 236d5 4d 4 findenv
+236d5 1 387 3036
+236d6 8 390 3036
+236de 12 394 3036
+236f0 d 399 3036
+236fd 9 390 3036
+23706 e 407 3036
+23714 1 408 3036
+23715 c 400 3036
+23721 1 408 3036
+FUNC 23722 5d 0 copy_environ
+23722 4 428 3036
+23726 2 429 3036
+23728 6 434 3036
+2372e 2 464 3036
+23730 7 438 3036
+23737 8 439 3036
+2373f 14 443 3036
+23753 8 444 3036
+2375b 6 448 3036
+23761 11 458 3036
+23772 4 448 3036
+23776 2 461 3036
+23778 5 463 3036
+2377d 2 464 3036
+FUNC 2377f 24c 8 __crtsetenv
+2377f 6 76 3036
+23785 2c 89 3036
+237b1 2 91 3036
+237b3 1c 98 3036
+237cf 5 114 3036
+237d4 13 125 3036
+237e7 c 126 3036
+237f3 4 130 3036
+237f7 d 153 3036
+23804 9 155 3036
+2380d b 100 3036
+23818 6 101 3036
+2381e 2 356 3036
+23820 3 164 3036
+23823 6 165 3036
+23829 f 171 3036
+23838 2 172 3036
+2383a 2 173 3036
+2383c 8 176 3036
+23844 f 178 3036
+23853 2 179 3036
+23855 2 180 3036
+23857 6 196 3036
+2385d 5 197 3036
+23862 2 200 3036
+23864 10 207 3036
+23874 9 210 3036
+2387d a 216 3036
+23887 6 218 3036
+2388d 5 235 3036
+23892 5 238 3036
+23897 5 241 3036
+2389c c 222 3036
+238a8 4 221 3036
+238ac 1d 230 3036
+238c9 2 233 3036
+238cb 9 245 3036
+238d4 4 250 3036
+238d8 2 251 3036
+238da 2f 255 3036
+23909 8 258 3036
+23911 3 259 3036
+23914 5 262 3036
+23919 5 264 3036
+2391e 21 287 3036
+2393f 25 289 3036
+23964 21 338 3036
+23985 4 339 3036
+23989 b 343 3036
+23994 7 346 3036
+2399b 5 349 3036
+239a0 8 351 3036
+239a8 6 352 3036
+239ae 8 355 3036
+239b6 8 271 3036
+239be 6 274 3036
+239c4 7 276 3036
+FUNC 239cb 50 4 _strdup
+239cb 1 66 901
+239cc b 70 901
+239d7 6 71 901
+239dd 9 73 901
+239e6 e 77 901
+239f4 1c 80 901
+23a10 4 81 901
+23a14 6 84 901
+23a1a 1 85 901
+FUNC 23a1b ba c _mbschr_l
+23a1b 7 53 4568
+23a22 b 55 4568
+23a2d 32 58 4568
+23a5f 8 60 4568
+23a67 d 61 4568
+23a74 a 65 4568
+23a7e 7 67 4568
+23a85 10 69 4568
+23a95 3 70 4568
+23a98 8 72 4568
+23aa0 d 63 4568
+23aad 8 76 4568
+23ab5 e 77 4568
+23ac3 10 79 4568
+23ad3 2 80 4568
+FUNC 23ad5 13 8 _mbschr
+23ad5 0 86 4568
+23ad5 12 87 4568
+23ae7 1 88 4568
+FUNC 23b00 be 8 strchr
+23b00 0 60 928
+23b00 2 68 928
+23b02 4 69 928
+23b06 1 73 928
+23b07 2 74 928
+23b09 3 75 928
+23b0c 4 76 928
+23b10 6 77 928
+23b16 2 78 928
+23b18 2 81 928
+23b1a 3 82 928
+23b1d 2 83 928
+23b1f 2 84 928
+23b21 2 85 928
+23b23 2 86 928
+23b25 6 87 928
+23b2b 2 88 928
+23b2d 2 91 928
+23b2f 1 92 928
+23b30 2 93 928
+23b32 3 94 928
+23b35 1 95 928
+23b36 2 96 928
+23b38 2 101 928
+23b3a 5 102 928
+23b3f 2 104 928
+23b41 2 105 928
+23b43 2 107 928
+23b45 2 108 928
+23b47 2 110 928
+23b49 3 111 928
+23b4c 3 113 928
+23b4f 2 114 928
+23b51 2 116 928
+23b53 3 117 928
+23b56 6 119 928
+23b5c 2 120 928
+23b5e 5 124 928
+23b63 2 125 928
+23b65 5 127 928
+23b6a 2 128 928
+23b6c 6 130 928
+23b72 2 131 928
+23b74 1 134 928
+23b75 1 135 928
+23b76 1 137 928
+23b77 2 138 928
+23b79 1 139 928
+23b7a 3 142 928
+23b7d 2 143 928
+23b7f 2 144 928
+23b81 2 145 928
+23b83 2 146 928
+23b85 2 147 928
+23b87 2 148 928
+23b89 2 149 928
+23b8b 2 150 928
+23b8d 3 151 928
+23b90 2 152 928
+23b92 2 153 928
+23b94 2 154 928
+23b96 2 155 928
+23b98 2 156 928
+23b9a 2 157 928
+23b9c 2 158 928
+23b9e 2 159 928
+23ba0 2 160 928
+23ba2 1 163 928
+23ba3 1 164 928
+23ba4 3 165 928
+23ba7 1 166 928
+23ba8 1 167 928
+23ba9 3 170 928
+23bac 1 171 928
+23bad 1 172 928
+23bae 1 173 928
+23baf 1 174 928
+23bb0 3 177 928
+23bb3 1 178 928
+23bb4 1 179 928
+23bb5 1 180 928
+23bb6 1 181 928
+23bb7 3 184 928
+23bba 1 185 928
+23bbb 1 186 928
+23bbc 1 187 928
+23bbd 1 188 928
+PUBLIC 23b06 0 __from_strstr_to_strchr
+FUNC 240b9 14 0 `operator new'::`6'::`dynamic atexit destructor for 'nomem''
+STACK WIN 4 41b0 86 13 0 8 0 e0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4240 41 3 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4290 18 4 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 42ae 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42af 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42c6 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42d1 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42d2 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42f3 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4332 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4371 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 43b0 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 43b1 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 43c8 af c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4464 12 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 4477 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 448d 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44a3 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44b7 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44cd 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44e1 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4506 16 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 451c f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 452b 62 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 452c 60 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 452d 5c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 454a 35 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 458d 42 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 458e 40 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 45cf da c 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 466c 15 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46a0 8 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46a9 53 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 46f2 9 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46fc 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4705 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 470b b1 8 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4713 a8 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4785 33 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47bc 20 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47dc 3c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47dd 3a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4818 2e 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4846 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 487c 2a 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48a6 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48bc 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48c1 30 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 48c6 2b 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 48f1 7 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48f8 7 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48ff 7 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4906 52 8 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 490c 4c 2 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 4958 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 498e 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 49c4 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 49fa 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a14 30 1 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a15 2e 0 0 10 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a44 d5 7 0 1c 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4a4b ce 0 0 1c 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 4b19 9d 5 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4b1e 98 0 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bb6 73 7 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4bbb 6c 2 0 14 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bbc 6a 1 0 14 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bbd 68 0 0 14 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4c29 28 5 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c2e 22 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c51 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c72 4c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c73 4a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4cbe 5e 6 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d1c 4a b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d26 1b 1 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d27 16 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d66 19 a 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4d67 17 9 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4d7f 6a 6 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4de9 f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4df8 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e06 1c 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e07 18 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e22 f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e31 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e39 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e54 1c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e70 1f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e8f 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e93 b 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e9e 5 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4ea3 11 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4eb4 4e 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4eb5 4a 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4eba 44 3 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4ebb 42 2 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f02 18 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f1a 58 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f1b 54 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f20 4e 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f34 37 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f72 56 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f73 52 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f78 4c 3 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f79 4a 2 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4fc8 16 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4fde d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4feb 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4fec 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5004 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5005 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 501c b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5027 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5028 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5040 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5041 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5058 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5063 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5064 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 507b 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 507c 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5093 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 509e 1c 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 509f 18 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50ba 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50bb 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50dc 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50dd 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50fe 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50ff 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5120 7b 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5124 75 4 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5128 70 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 519b 5b 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51a2 52 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51a3 50 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51f6 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5200 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 520a a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5214 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 521e a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5228 24 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 524c 41 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 528d 1b6 c 0 0 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5405 14 0 0 0 c 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 5443 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 544d a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5457 fc 1c 0 14 4 328 0 1 $T0 $ebp 680 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5553 22 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5554 20 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5575 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5582 9 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 558b 24 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55af 10 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 55bf 9 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55c8 96 7 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55cf 8d 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 55fb 60 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 565e 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5678 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5694 1f 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 56b3 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 56cf 1d 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 56ec 20 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 570c 1d 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5729 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 573a 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 574b 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5761 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5777 14f c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 58bc 9 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 58c6 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 58e0 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 58fa 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5912 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 592c 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5944 f6 7 0 18 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 594b ed 0 0 18 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5973 c4 0 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5977 bf 0 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5a3a 27 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5a61 28 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5a89 87 4 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5a8d 81 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5ab2 5b 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5b10 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5b2b 107 5 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5b30 100 0 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5b5b d4 0 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5b5f cf 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c32 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5c50 27 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5c77 28 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5c9f 24 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5cc3 26 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5ce9 15 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5cfe 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d07 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d10 18 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d11 16 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d28 20 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d29 1e 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d48 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d4d 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d7f 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d84 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dbb 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dc0 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5df7 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dfc 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e33 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e38 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e6f 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e74 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5ea6 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5eab 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5edd 92 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f1b 34 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f1c 32 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f6f e2 c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6039 11 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 6051 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6062 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6073 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6082 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6091 4c 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6092 4a 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 616b 33 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 619e 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 61d4 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 620a 39 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6243 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6257 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6266 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6275 96 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6276 94 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 62ba 4a 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 62bb 46 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 630b 2f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6313 26 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 633a 82 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6341 78 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63bc e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63ca 3 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63cd 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6400 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6404 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6424 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6429 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 642a 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 646e d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 647b 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 648b e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6499 994 2c 0 10 0 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 64bb 945 a 0 10 4 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 64c2 93b 3 0 10 8 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 64c5 937 0 0 10 c 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 6e2d 3b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e68 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e7b 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e8e 1e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e8f 1c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6eac 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ec7 2a 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ec8 28 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ef1 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6f0c 2a 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6f0d 28 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fa0 24 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fd0 196 14 0 10 0 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fd4 d3 10 0 10 4 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 24 - ^ =
+STACK WIN 4 6fd9 cd b 0 10 8 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 6fda cb a 0 10 c 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 6fe4 c0 0 0 10 10 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 7166 90 c 0 10 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 71eb a 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 71f6 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7210 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 722a 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7244 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 725c 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7274 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 728c 104 9 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7390 5c6 22 0 c 0 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 73b2 597 0 0 c 4 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 73fe 542 0 0 c 8 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1436 - ^ =
+STACK WIN 4 740c 533 0 0 c c 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1436 - ^ =
+STACK WIN 4 7956 dc c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7a28 9 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7a32 2d 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a37 27 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a5f e1 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7b36 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7b40 49 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b41 3b 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b42 39 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b89 55 8 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b8a 53 7 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7b91 4b 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7b97 2a 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7bde 15 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7bf3 18 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7c0b c3 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cc5 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7cce 31 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cd5 28 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cff 240 c 0 0 c 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7f28 4 0 0 0 c 64 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7f3f 4c 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f40 4a 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f41 48 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f8b 21 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f8c 1f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fac 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbc 40 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbd 3e 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbe 3c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffc 48 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffd 46 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffe 44 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8044 4b 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8045 49 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8046 47 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 808f 50 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8090 4e 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8091 4c 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80df 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80e7 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80f1 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80fb 8e c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8151 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8189 9f c 0 0 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 821f 8 0 0 0 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8228 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8229 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8241 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 824c 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 824d 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 826e 5c 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 826f 5a 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8270 58 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 82ca 44 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 830e e1 c 0 10 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8390 a 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 83ce 20 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 83ef 45 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8434 54 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8477 9 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8488 25 7 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 848f 1d 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84ad 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c0 b3 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c7 9a 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c8 98 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8573 4c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85bf 139 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85c0 137 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85cf 127 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 85d0 11f 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 85d1 11d 0 0 8 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 86f8 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 86fc 32 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8714 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 872e 33 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8747 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8761 32 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8779 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8793 3b c 0 14 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 87b4 a 0 0 14 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 87ce 79 6 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 87f0 52 0 0 4 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 87f1 50 0 0 4 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 8847 49 c 0 4 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8890 30 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8891 2a 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 8892 28 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 88c0 82 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 88c1 7b 7 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 88c8 73 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8942 19c 14 0 18 c 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 89d2 9 0 0 18 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8a62 7b 0 0 18 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8ade 17f c 0 10 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8c49 4 0 0 10 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8c5d 91 c 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8ce2 4 0 0 10 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8cee 143 9 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8cfe 131 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8d02 12c 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8d05 128 0 0 10 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8e31 6c 3 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8e9d f2 6 0 20 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8ea3 ea 0 0 20 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8eb3 d9 0 0 20 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8f31 5a 0 0 20 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 8f8f 356 17 0 20 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8f99 34a d 0 20 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 8fa5 33d 1 0 20 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 8fa6 33b 0 0 20 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 92e5 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 92e6 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 92fd e4 6 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9301 de 2 0 20 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 9302 dc 1 0 20 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 9303 da 0 0 20 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 93e1 6c 7 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 93e7 64 1 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 93e8 62 0 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 9408 41 0 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 944d 6e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 944e 6c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94bb 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94c4 6e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94c5 6c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9532 9 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 953b 15 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9550 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9556 32 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9557 30 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9588 19 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 95a1 3d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 95de bf c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9694 8 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 969d 77 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 969e 75 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 969f 71 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9714 18 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9715 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 972c 121 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9835 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9841 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 984d 69 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9857 4b 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9860 25 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98b6 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98bc 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98c2 184 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98c3 182 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98de 166 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9a46 39 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9a66 4 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9a7f 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9a92 37 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ab6 4 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9ac9 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9b2c b9 5 0 4 0 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9b2e b5 3 0 4 4 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 9b2f b3 2 0 4 8 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9b30 b1 1 0 4 c 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9b31 af 0 0 4 10 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9be5 2f 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9be6 2d 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9c14 3c c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9c4a 5 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9c50 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9c62 4f c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ca8 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9cb1 75 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9cf9 2c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9d26 c3 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9d27 c1 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 9d35 9c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9d3c 94 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9d3d 90 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9de9 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9df3 31 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9df4 2f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e24 9 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e2d d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e3a 22 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e5c 22 3 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9e7e 70 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ee5 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9eee f5 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9fd7 b 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9fe3 70 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a04a 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a053 31 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a084 eb c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a163 b 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a16f 53 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a1b9 8 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a258 65 b 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 a25d 5f 6 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 a262 59 1 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 a263 57 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 aa15 3d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa52 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa60 1a0 8 0 4 0 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa62 19c 6 0 4 4 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa67 196 1 0 4 8 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa68 194 0 0 4 c 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa85 176 0 0 4 10 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 20 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 ac00 20 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac20 39 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac59 1 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac5a 32 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac65 1c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac8c 15e 6 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ac92 156 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 acaa 13d 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 acb0 136 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 adea 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ae05 db b 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ae06 c3 a 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae0f b9 1 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae10 b7 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae5f 67 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 aee0 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aeea 198 e 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 aef2 187 6 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 aef8 180 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 b082 b9 11 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b089 b0 a 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b092 a6 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b093 a4 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b13b 135 b 0 0 0 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b143 12a 3 0 0 4 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 b144 128 2 0 0 8 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b145 126 1 0 0 c 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b146 124 0 0 0 10 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b270 24 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b271 22 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b272 20 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b294 24 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b295 22 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b296 20 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b2b8 5b 6 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b2be 43 0 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b313 5a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b36d 74 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b36e 72 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 b37a 53 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b381 4b 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b38c 30 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b3e1 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b3e7 94 15 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b3fb 7e 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b3fc 7c 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b418 5f 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b47b 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b483 160 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b488 159 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b4c5 11b 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 b52c b3 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 b5e3 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b608 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b60c 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b62d 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b632 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 b633 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 b67c 910 30 0 10 0 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b69e 8c1 e 0 10 4 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 b6a5 8b7 7 0 10 8 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 b6ac 8af 0 0 10 c 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 bf8c 97 7 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 bf93 8e 0 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 bfbf 61 0 0 10 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 c023 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c03a 5 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c03f 55 7 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c046 4c 0 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c094 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0ac 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0c6 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0de 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0f8 14e c 0 14 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c23c 9 0 0 14 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 c246 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c264 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c282 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2a0 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2bc 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2d8 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2f4 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c319 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c31d 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c33e 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c343 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 c344 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 c38d 91c 2c 0 10 0 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c3a9 8d3 10 0 10 4 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 c3b0 8c9 9 0 10 8 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 c3b9 8bf 0 0 10 c 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 cca9 154 9 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ccb1 14a 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ccb2 148 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 cdfd 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ce22 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ce26 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ce47 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ce4c 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ce4d 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ce96 f60 2a 0 10 0 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ceb8 f0f 8 0 10 4 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 ceb9 f0b 7 0 10 8 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 cec0 f03 0 0 10 c ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 ddf6 1f 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddf7 1d 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddf8 1b 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de20 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de50 42 18 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de5e 33 a 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 de5f 31 9 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 de68 27 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 dea0 bb 33 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 deba a1 19 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 df29 14 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 df5b 19 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 df74 9b c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 dfed 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e00f 34 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e01a 1d 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e043 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e050 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e059 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e062 23d c 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e257 b 0 0 8 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e29f 1b0 c 0 4 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e40d 14 0 0 4 c 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e44f a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e459 104 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e45a 102 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e45b 100 1 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e45c fe 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e495 c4 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 16 - ^ =
+STACK WIN 4 e55d 15a 24 0 14 0 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e576 bc b 0 14 4 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e577 b8 a 0 14 8 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e581 ad 0 0 14 c 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e6b7 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6c1 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6cb 10 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6db c5 c 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e761 17 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e7a0 5e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e7b8 45 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e7fe 2f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e82d 55 b 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e82e 53 a 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 e82f 51 9 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e830 4f 8 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e831 4d 7 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e882 18a 1d 0 0 0 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e89e 161 1 0 0 4 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1312 - ^ =
+STACK WIN 4 e89f 15d 0 0 0 8 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1312 - ^ =
+STACK WIN 4 ea0c a4 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eaa4 b 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 eab0 7a 7 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eab7 71 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 eb2a 1d9 19 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eb3b 1c1 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 eb3f 1ba 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 eb43 1b5 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 ed03 3c 6 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ed3f 19a c 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eea0 8 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 eed9 1e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 eef7 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 eefd 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ef03 140 12 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ef04 13e 11 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ef05 13c 10 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 ef06 13a f 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 ef15 12a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f043 86 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f044 84 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f045 82 6 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f046 80 5 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f04b 7a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f0c9 8c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f0ca 8a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f0d3 7e 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 f0d4 7c 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 f0d5 7a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 f155 24 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f156 22 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f165 12 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f179 3e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f182 31 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f1b7 76 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f221 8 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f22d 66 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f22e 64 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f22f 62 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f293 53 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f2e6 96 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f370 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f37c 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f381 88 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f3fd b 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f409 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f40e 3 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f411 3e 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f412 3c 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f413 3a 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f41e 2e 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f44f 129 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f453 123 2 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f454 121 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f455 11f 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f578 6b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f57c 4d 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f57d 4b 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f5e3 171 4 0 0 0 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f5e7 169 0 0 0 4 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 20 - ^ =
+STACK WIN 4 f606 149 0 0 0 8 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 24 - ^ = $ebx $T0 20 - ^ =
+STACK WIN 4 f607 141 0 0 0 c 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 24 - ^ = $ebx $T0 20 - ^ =
+STACK WIN 4 f754 1d4 1e 0 18 0 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f76d 1b1 5 0 18 4 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f76e 1ad 4 0 18 8 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f772 1a8 0 0 18 c b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f928 2f6 17 0 4 0 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f93e 2d6 1 0 4 4 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 456 - ^ =
+STACK WIN 4 f93f 2d2 0 0 4 8 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 456 - ^ =
+STACK WIN 4 fc1e 1ce 18 0 4 0 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 fc37 1ab 0 0 4 4 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fc38 1a7 0 0 4 8 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fc3f 19f 0 0 4 c 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fdec f3 7 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fdf2 2c 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fdf3 2a 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fedf 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fee4 170 c 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1000a 10 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1001b b 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1004c 7 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 10054 15f 10 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1005b a1 9 0 14 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1005c b2 8 0 14 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 10064 96 0 0 14 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 101b3 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 101ce 4f 6 0 c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1021d 30 4 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1024d 36 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 10283 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10291 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102a7 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102b8 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102cb e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102d9 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102ec e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102fa 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1030d e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1031b 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10331 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10342 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10355 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10363 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10376 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10384 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1039a 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103ab 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103c1 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103d2 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103e8 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103f9 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1040c e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1041a c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10426 26 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1044c 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1046d 26 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10493 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 106ab 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 106de 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 106e2 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 10702 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10707 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 10708 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1074c 9b0 2c 0 10 0 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1076e 960 a 0 10 4 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 10775 956 3 0 10 8 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 10778 952 0 0 10 c 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 110fc 129 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11103 120 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11104 11e 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11225 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 11258 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1125c 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1127c 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 11281 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 11282 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 112c6 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 112d6 f88 2a 0 10 0 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 112f8 f39 8 0 10 4 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 112f9 f35 7 0 10 8 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 11300 f2d 0 0 10 c 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 1225e c2 11 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1226f 9e 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12320 9b c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 123b2 8 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 123bb 46 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 123f8 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12401 113 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12408 21 1 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 12409 1f 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 12514 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1252b 83 13 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12534 78 a 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1253e 6d 0 0 10 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 125ae 119 c 0 10 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 126bd 9 0 0 10 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 126c7 7d 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126ce 75 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126cf 73 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126fd 2c 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 12744 81 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12749 7b 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1274e 75 1 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1274f 73 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 127c5 71 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 127e6 4f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12836 a0 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 128c8 d 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 128d6 22 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 128f8 19f c 0 0 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 129c5 e 0 0 0 c 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12a8e 8 0 0 0 c 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12a97 115 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12b7f 2c 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12bac 11e c 0 c c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12ca3 d 0 0 c c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12cca 3f 9 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12cd3 34 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12cec 18 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12d09 21b c 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12e47 e 0 0 8 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12f24 79 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12f2b 70 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f61 39 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f62 37 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f9d 21 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12fbe 46 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12fc9 3a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13004 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13009 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13040 48 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13088 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 130b3 314 11 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130c0 305 4 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130c4 300 0 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130f1 2d2 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 133c7 b0 d 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 133cd a9 7 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 133d4 a1 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13477 106 11 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13483 f8 5 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 13484 f6 4 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 13488 f1 0 0 4 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1357d 2df 12 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1358a 2d0 5 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1358b 2ce 4 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1358f 2c9 0 0 c c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1385c cd 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13929 2e2 f 0 0 0 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13938 294 0 0 0 4 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 1394d 27e 0 0 0 8 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 13950 27a 0 0 0 c 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 13c0b a8 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13c0c a6 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13c54 5d 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13cb3 2e3 2a 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13cd7 2bd 6 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13cdc 2b7 1 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13cdd 2b5 0 0 4 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13f96 72 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13f97 70 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 13f98 6e 5 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 13f9d 68 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 14008 7c c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14079 a 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 14084 d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14091 d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1409e d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 140ab f3 23 0 0 4 328 0 1 $T0 $ebp 680 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1419e 1e 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 142f3 a3 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14385 10 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 14396 6 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1439c 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143b7 26 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143b8 24 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143dd 63 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14440 474 a 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14447 42e 3 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 14448 42c 2 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 14449 42a 1 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1444a 428 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 148b4 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148bf d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148cc e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148da e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148e8 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148f6 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14904 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14916 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14924 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14932 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14940 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1494b b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14956 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14961 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1496f b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1497a e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14988 19 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a1 84 13 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a2 80 12 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a3 7e 11 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149c9 57 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 14a25 d 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a32 12 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a44 9c 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a57 86 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ae0 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14aea 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14aef 7 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14af6 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b00 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b08 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b12 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b1c 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b24 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b2e 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b36 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b40 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b48 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b52 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b5a 7b 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b5d 75 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14bd5 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14bde 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c03 d 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c10 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c14 29 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c26 f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c3d 16 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c53 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c57 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c5b 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c76 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c7a 2f 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ca9 25 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cce 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cd2 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cdf e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ced 20 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14d0d 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14d32 33 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14d65 34 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14d99 13 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14dac 56 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14db2 4d 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e02 61 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e03 5d a 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e04 59 9 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e63 17 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e7a 15 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e8f 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ea3 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eb1 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ec5 25 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ec6 23 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ed2 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eea 38 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eeb 36 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eec 32 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14f22 91 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f26 89 3 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f27 87 2 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f5c 40 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 14fb3 35 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fb6 2f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fe8 81 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fe9 7d a 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fea 79 9 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15069 1e 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1506a 1c 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15087 47 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15088 43 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 150ce 47 7 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 150cf 45 6 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 150d0 43 5 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 150d1 41 4 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 15115 65 11 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15116 61 10 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1511b 5b b 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1511c 57 a 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1517a 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1518c 31 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151bd f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151cc f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151db 1d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151f8 33 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1522b 73 7 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1522f 6b 3 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15230 5b 2 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1529e 2f 3 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 152cd f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152dc 79 4 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152dd 75 3 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152de 71 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15355 68 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15356 64 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153bd a6 3 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153be a2 2 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153de 81 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 153f0 6e 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 15463 26 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15464 22 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15489 31 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1548e 29 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 154ba d0 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 154be b3 3 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 154bf b1 2 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 154ce 9f 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1558a 69 13 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1559b 4f 2 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1559c 4b 1 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1559d 49 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 155f3 96 22 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15607 79 e 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15615 66 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1563a 29 0 0 8 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 15689 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1568a 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b7 62 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b8 5e 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b9 5a 6 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15719 8b a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1571a 87 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1571b 83 8 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157a4 1c 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157a5 18 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157c0 2a 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157c5 22 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157ea a6 5 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15890 37 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 158c7 51 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 158c8 4d 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15918 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15919 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15946 6a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15947 66 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1594e 5e 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 159b0 6c a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 159b1 68 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 159b2 64 8 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15a1c e0 e 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a23 d7 7 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a2a cd 0 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a45 b1 0 0 4 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 15afc 4f 6 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b02 47 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b4b 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b6d 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b8f 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15bb1 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15bb2 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15bdf 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15be0 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15c0d 141 7 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15c14 138 0 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15c95 b3 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 15c96 b1 0 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 15d4e d4 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15e22 c4 e 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15ee6 7e d 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15f64 125 11 0 10 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15f75 112 0 0 10 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16089 15f f 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16098 4a 0 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 160f0 b3 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 161e8 31 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16219 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1622b 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1623d 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1624f 150 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16256 147 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1639f a0 6 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1643f 50 5 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1648f 2bb 2b 0 4 0 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 164aa 296 10 0 4 4 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 164b3 28a 7 0 4 8 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 164ba 282 0 0 4 c d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 1674a d9 b 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 167b8 17 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16823 14 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 16837 1b8 18 0 4 0 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16848 1a0 7 0 4 4 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1684f 18d 0 0 4 8 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16870 168 0 0 4 c 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 108 - ^ =
+STACK WIN 4 169ef 56f 22 0 c 0 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16a03 97 e 0 c 4 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 164 - ^ =
+STACK WIN 4 16a11 88 0 0 c 8 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 164 - ^ =
+STACK WIN 4 16f5e 153 10 0 8 0 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16f82 11b 0 0 8 4 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 16f89 113 0 0 8 8 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 16f92 109 0 0 8 c d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 170b1 1ea 1b 0 8 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 170cc 1c8 0 0 8 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17154 111 0 0 8 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 17155 10f 0 0 8 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 1729b e4 15 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 172a2 db e 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 172b0 ca 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1737f f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1738e 100 19 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1739a f2 d 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 173a7 e4 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1748e 46 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 174d4 92 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17566 b42 14 0 8 0 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17571 b35 9 0 8 4 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1757a b2b 0 0 8 8 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 175e3 abe 0 0 8 c 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 120 - ^ =
+STACK WIN 4 180a8 211 13 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 180af 208 c 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 180bb 1fb 0 0 4 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 182b9 28b 1f 0 4 0 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 182c5 27a 13 0 4 4 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 182c6 278 12 0 4 8 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 182d8 263 0 0 4 c 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 18544 341 d 0 8 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18589 2f7 0 0 8 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 185f0 28f 0 0 8 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 185f1 28d 0 0 8 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 18885 4e4 18 0 14 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18893 4d4 a 0 14 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 18894 4d2 9 0 14 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 1889d 4c8 0 0 14 c 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 18d69 14c 6 0 0 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18eb5 116 5 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18ed6 59 0 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18fcb 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 18fe6 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19001 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1901c a3 f 0 18 c 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 190b6 8 0 0 18 c 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 190bf a3 f 0 1c c 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19159 8 0 0 1c c 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 19162 387 12 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19172 350 2 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 19173 34e 1 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 19174 34c 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 194e9 13e 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 194f0 135 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19627 b1 6 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 196d8 64 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 196df 5b 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1973c 57 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19793 8f 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19822 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19836 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1984a 87 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 198d1 e3 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 199b4 1bd 9 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 199bb 1b4 2 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 199bc 1b2 1 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 199bd 1b0 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 19b71 71 b 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19b76 6b 6 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19b7b 65 1 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19b7c 63 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19be2 b3 e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19be6 1a a 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19be7 2e 9 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19bf0 e 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19c95 46 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19c9a 40 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19cdb a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ce5 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ceb 51 6 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19d3c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d51 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d64 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d79 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d8c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19da1 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19db4 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19dcc 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19de2 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19dfa 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e10 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e28 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e3e 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e56 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e6c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e81 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e94 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ea9 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ebc 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ed1 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ee4 53 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19f37 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19f45 44 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19f89 1de 1a 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19f9a 1c6 9 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 19f9b 1c2 8 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 19fa3 1b9 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1a167 78 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a1d5 9 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1a1df 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a1e4 1f7 8 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a1eb 1ee 1 0 14 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a1ec 1ec 0 0 14 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a246 174 0 0 14 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a3db 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a404 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a41f 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a449 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a464 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a46d 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a4c1 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a4ec 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a53b 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a564 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a5b3 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a5dc 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a62b 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a654 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a6a8 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a6d3 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a722 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a74b 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a79a 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a7c3 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a817 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a842 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a896 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a8c1 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a915 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a940 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a98f 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9b8 d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9c5 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9cd 1f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9ec 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa06 1f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa25 1c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa41 12 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa53 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa6e 13b 1d 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1aa83 126 8 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1aba9 3b 6 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1abe4 13d 1d 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1abf9 128 8 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1ad21 3b 6 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ad5c 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1ad76 3a2 1d 0 20 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ad87 391 c 0 20 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 1b118 43 6 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b15b 1b8 1d 0 1c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b170 1a3 8 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1b313 40 6 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b353 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b359 29 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b382 419 6 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b3a4 3f5 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1b3a5 3ed 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1b79b 190 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b79c 18e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b92b 73 4 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b92c 71 3 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92d 6f 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92e 6d 1 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92f 6b 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b99e 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b9a5 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b9a6 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b9d1 40 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b9d2 3e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1ba11 1c8 11 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ba18 1bf a 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1ba1c 1ba 6 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1ba22 1b3 0 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1bbd9 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bbe0 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1bbe1 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1bc0c 89 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bc0d 87 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bc95 2c4 c 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1bc9c 2bb 5 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bc9d 2b9 4 0 4 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bca1 2b4 0 0 4 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bf59 395 1b 0 4 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1bf6a 37d a 0 4 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1bf6d 377 7 0 4 8 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1bf74 36f 0 0 4 c 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1c2ee 29 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c317 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c32d 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c353 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c379 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c39f 3 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c3a2 fe 9 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c3a9 e9 2 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c3aa e7 1 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c3ab e5 0 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c4a0 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c4a9 fe 9 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c4b0 e9 2 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c4b1 e7 1 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c4b2 e5 0 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c5a7 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c5b0 355 9 0 4 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c5b7 34c 2 0 4 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c5b8 348 1 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c5b9 346 0 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c905 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c90e 20 6 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c912 1b 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c917 15 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c92e 36 6 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c934 2f 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1c964 79 8 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c969 72 3 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c96a 70 2 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9dd 3e6 11 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c9e2 3df c 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9e9 3d7 5 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9ea 3d5 4 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1cdc3 45d 1d 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1cdd7 449 9 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d220 1af a 0 18 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d22a 1a3 0 0 18 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d270 15c 0 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d2a3 128 0 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d3cf 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d3ed 1d 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d40a 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d428 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d496 60 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d49c 56 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4a5 45 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4a6 43 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4f6 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d50a 77 11 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d51b 5f 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d581 1e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d59f 32 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5a0 30 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5d1 1b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5ec 96 12 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d5fd 7c 1 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d5fe 78 0 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d682 72 11 0 8 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d693 5a 0 0 8 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d6cf 13 0 0 8 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d6f4 1d0 13 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d705 1b6 2 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d706 1b2 1 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d707 1b0 0 0 4 c 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d8c4 bf 12 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d8d5 a5 1 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d8d6 a1 0 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d983 2c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d9af 65 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da14 3c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da50 1e3 4 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da51 1e1 3 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1da52 1df 2 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1da53 1dd 1 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1da54 1db 0 0 c 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1dc33 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc45 18 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc5d 40 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc9d 78 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd15 1490 4 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd16 83f 3 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd17 83d 2 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1f1a5 1680 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1a9 15f8 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1aa 15f6 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1db 86c 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 20825 be 9 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2082e a9 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 20840 96 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 20930 82 6 0 c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 209b2 6e 4 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a20 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20a25 22b 8 0 14 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a2c 222 1 0 14 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a2d 220 0 0 14 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a8b 1c1 0 0 14 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 20c50 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20c79 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20c94 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20cbe 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20cd9 1f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20cf8 1f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d17 2d 9 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d20 23 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d44 94 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d45 92 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d4a 8c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20dd8 cd c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20e9b 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 20ea5 2c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20ea6 2a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20ed1 2a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20efb 22 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20efc 20 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f1d d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f64 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f75 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f8a 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f8f 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f94 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20fa5 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20fba 50 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20fd7 1c 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 2100a 60 9 0 0 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21013 57 0 0 0 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2106a d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21077 170 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2107c 169 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 210e1 103 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21125 be 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 211e7 182 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21369 b6 7 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21370 ad 0 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2141f 2f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2147c 47 10 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 214c3 1b2 2a 0 18 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 214e0 195 d 0 18 c 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 21675 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2167a 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216a9 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216ae 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216dd 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216e2 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21711 a2 c 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21718 99 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 2171d 93 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 2172b 84 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 217b3 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217b9 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217bf 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217c5 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217cb c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217d7 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217e3 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217ef 349 c 0 0 c 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21a99 d 0 0 0 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21b38 1f5 14 0 24 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21b47 1e4 5 0 24 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21b48 1e2 4 0 24 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21b49 1e0 3 0 24 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21d2d 1ae 5 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21d32 15f 0 0 0 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21d62 12e 0 0 0 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21edb 4f c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f21 8 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21f2a 38 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f59 8 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21f62 41 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f9a 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21fa3 35 a 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fa8 2f 5 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fad 27 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fd8 d3 7 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21fdf ca 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22020 88 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22068 33 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 220ab 50 4 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 220af 4a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 220fb f0 e 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22102 e7 7 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22108 e0 1 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22109 de 0 0 10 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 221eb 5c 4 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 221ef 56 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22247 db 8 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2224c d2 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2224d d0 2 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 22277 a5 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 22322 28 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2234a 25 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2236f 18 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22387 f6 c 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2238e eb 5 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 22393 e5 0 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2247d 33 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22498 16 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224b0 1d 4 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224b4 17 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224cd 224 17 0 1c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224e2 20f 2 0 1c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 226f1 3e 6 0 1c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2272f 294 8 0 14 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22736 28b 1 0 14 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 22737 289 0 0 14 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 22793 1f9 0 0 14 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 229c3 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 229ec 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a07 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22a31 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a7b 81 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a83 70 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a92 60 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 22a93 5e 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 22afc 93 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b00 8d 3 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b01 8b 2 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b40 4b 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b8f a2 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b94 9b 1 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b95 99 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22c31 83 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22cab 8 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22cb4 d8 c 0 10 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22d83 8 0 0 10 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22d8c e6 c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22e69 8 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22e72 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22e7a 117 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22e81 10e 1 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 22e82 10c 0 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 22f91 27 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23021 ec 7 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23028 e3 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23088 82 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2310d 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23124 95 a 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2312a 7d 4 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2312b 7b 3 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2312e 77 0 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 231b9 1a 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 231d3 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 231ed 389 16 0 18 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23201 375 2 0 18 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 23576 40 6 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 235b6 f8 7 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 235bd ef 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2361d 8e 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 236ae 27 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 236d5 4d 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 236d6 48 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23722 5d 4 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2373e 3f 0 0 0 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2373f 3d 0 0 0 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2377f 24c f 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23789 95 5 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2378e 8f 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 237b1 6b 0 0 8 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 239cb 50 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 239cc 4e 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 239d1 48 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 239dc 3c 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 239dd 3a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 23a1b ba 7 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23a22 b1 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23a5f 73 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23ad5 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 240b9 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 0 1000 13 0 0 4 0 0 0 0 0
+STACK WIN 0 1020 1b 0 0 10 0 0 0 0 0
+STACK WIN 0 1040 1b 0 0 10 0 0 0 0 0
+STACK WIN 0 1060 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1080 b 0 0 0 0 0 0 0 0
+STACK WIN 0 1090 24 3 0 4 0 0 0 0 0
+STACK WIN 0 10c0 f 0 0 8 0 0 0 0 0
+STACK WIN 0 10d0 17 0 0 4 0 0 0 0 0
+STACK WIN 0 10f0 27 9 0 10 0 0 0 0 0
+STACK WIN 0 1120 27 9 0 10 0 0 0 0 0
+STACK WIN 0 1150 d 0 0 8 0 0 0 0 0
+STACK WIN 0 1160 13 0 0 4 0 0 0 0 0
+STACK WIN 0 1180 21 d 0 10 0 0 0 0 0
+STACK WIN 0 11b0 21 d 0 10 0 0 0 0 0
+STACK WIN 0 11e0 7 0 0 0 0 0 0 0 0
+STACK WIN 0 11f0 6b 28 0 4 8 10 0 0 0
+STACK WIN 0 1260 32 3 0 0 0 0 0 0 0
+STACK WIN 0 12a0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 12b0 47 3 0 4 0 0 0 0 0
+STACK WIN 0 1300 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1320 32 3 0 0 0 0 0 0 0
+STACK WIN 0 1360 47 3 0 4 0 0 0 0 0
+STACK WIN 0 13b0 19 8 0 4 0 0 0 0 0
+STACK WIN 0 13d0 32 3 0 0 0 0 0 0 0
+STACK WIN 0 1410 47 3 0 4 0 0 0 0 0
+STACK WIN 0 1460 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1480 71 29 0 4 c 10 0 0 0
+STACK WIN 0 1500 1b 0 0 8 0 0 0 0 0
+STACK WIN 0 1520 35 4 0 0 0 0 0 0 0
+STACK WIN 0 1560 20b 2d 0 14 14 14 0 0 1
+STACK WIN 0 19f0 31 0 0 0 0 0 0 0 0
+STACK WIN 0 1a30 51 d 0 4 c 0 0 0 0
+STACK WIN 0 1a90 c7 7 0 4 10 8 0 0 1
+STACK WIN 0 1b60 36 0 0 0 0 0 0 0 0
+STACK WIN 0 1ba0 3 0 0 0 0 0 0 0 0
+STACK WIN 0 1db0 81 2 0 8 0 0 0 0 0
+STACK WIN 0 1e40 1d 7 0 0 0 0 0 0 0
+STACK WIN 0 1e60 a2 3a 0 4 10 c4 0 0 0
+STACK WIN 0 1f10 142 c 0 c 0 38 0 0 1
+STACK WIN 0 2060 138 38 0 0 8 244 0 0 0
+STACK WIN 0 21a0 3b 7 0 4 0 0 0 0 0
+STACK WIN 0 21e0 25 5 0 4 0 0 0 0 0
+STACK WIN 0 2210 26 3 0 0 0 0 0 0 0
+STACK WIN 0 2240 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2250 4 0 0 0 0 0 0 0 0
+STACK WIN 0 2260 11 0 0 0 0 0 0 0 0
+STACK WIN 0 2280 27 3 0 0 0 0 0 0 0
+STACK WIN 0 22b0 b 0 0 0 0 0 0 0 0
+STACK WIN 0 22c0 24 3 0 4 0 0 0 0 0
+STACK WIN 0 22f0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2300 c 0 0 0 0 0 0 0 0
+STACK WIN 0 2310 26 0 0 0 0 0 0 0 0
+STACK WIN 0 2340 1d 1 0 0 0 0 0 0 0
+STACK WIN 0 2360 1d 1 0 0 0 0 0 0 0
+STACK WIN 0 2380 13 0 0 0 0 0 0 0 0
+STACK WIN 0 23a0 23 0 0 0 0 0 0 0 0
+STACK WIN 0 23d0 56 5 0 0 8 c 0 0 0
+STACK WIN 0 2430 47 c 0 0 c 8 0 0 0
+STACK WIN 0 24f0 23 1 0 0 0 4 0 0 0
+STACK WIN 0 2520 3f b 0 8 0 0 0 0 0
+STACK WIN 0 2560 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2580 20 0 0 0 0 0 0 0 0
+STACK WIN 0 25a0 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 25c0 da 11 0 c 0 0 0 0 1
+STACK WIN 0 26a0 27 8 0 4 0 0 0 0 0
+STACK WIN 0 26d0 4a d 0 8 0 0 0 0 0
+STACK WIN 0 2720 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2730 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2740 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2750 3 2 0 0 0 0 0 0 0
+STACK WIN 0 2760 b 0 0 0 0 0 0 0 0
+STACK WIN 0 2770 ef 11 0 c 0 0 0 0 1
+STACK WIN 0 2860 2b 8 0 4 0 0 0 0 0
+STACK WIN 0 2890 4f d 0 8 0 0 0 0 0
+STACK WIN 0 28e0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 28f0 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2900 3 2 0 0 0 0 0 0 0
+STACK WIN 0 2910 13 0 0 0 0 0 0 0 0
+STACK WIN 0 2930 86 a 0 10 10 4 0 0 1
+STACK WIN 0 29c0 23 0 0 0 0 0 0 0 0
+STACK WIN 0 29f0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 2a00 26 0 0 0 0 0 0 0 0
+STACK WIN 0 2a30 23 0 0 0 0 0 0 0 0
+STACK WIN 0 2a60 76 23 0 0 4 50 0 0 0
+STACK WIN 0 2ae0 3 0 0 4 0 0 0 0 0
+STACK WIN 0 2af0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 2b00 21 0 0 0 0 0 0 0 0
+STACK WIN 0 2b30 32 6 0 4 8 0 0 0 0
+STACK WIN 0 2b70 2f 6 0 0 8 0 0 0 0
+STACK WIN 0 2ba0 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2bc0 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2be0 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 2c00 c1 5 0 8 0 0 0 0 1
+STACK WIN 0 2cd0 83 8 0 8 0 0 0 0 1
+STACK WIN 0 2d60 1f 0 0 4 0 0 0 0 0
+STACK WIN 0 2d80 bc b 0 8 0 0 0 0 1
+STACK WIN 0 2e40 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2e50 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2e60 e 0 0 8 0 0 0 0 0
+STACK WIN 0 2e70 da 4 0 8 0 0 0 0 1
+STACK WIN 0 2f50 97 8 0 8 0 0 0 0 1
+STACK WIN 0 2ff0 4 0 0 0 0 0 0 0 0
+STACK WIN 0 3000 23 0 0 4 0 0 0 0 0
+STACK WIN 0 3030 c7 e 0 8 0 0 0 0 1
+STACK WIN 0 3100 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3110 5 2 0 4 0 0 0 0 0
+STACK WIN 0 3120 e 0 0 8 0 0 0 0 0
+STACK WIN 0 3130 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3140 208 6 0 8 10 8 0 0 1
+STACK WIN 0 33d0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 33e0 8 0 0 0 0 0 0 0 0
+STACK WIN 0 33f0 56 3 0 0 0 10 0 0 0
+STACK WIN 0 3450 32 0 0 4 0 0 0 0 0
+STACK WIN 0 3490 28 0 0 0 0 0 0 0 0
+STACK WIN 0 34c0 19 0 0 0 0 0 0 0 0
+STACK WIN 0 34e0 21 0 0 0 0 0 0 0 0
+STACK WIN 0 3510 19 8 0 4 0 0 0 0 0
+STACK WIN 0 3530 7 0 0 0 0 0 0 0 0
+STACK WIN 0 3540 6 0 0 0 0 0 0 0 0
+STACK WIN 0 36d0 39 8 0 4 0 0 0 0 0
+STACK WIN 0 3710 6 0 0 0 0 0 0 0 0
+STACK WIN 0 38a0 3a 8 0 4 0 0 0 0 0
+STACK WIN 0 38e0 6 0 0 0 0 0 0 0 0
+STACK WIN 0 38f0 32 0 0 4 0 0 0 0 0
+STACK WIN 0 3930 19 0 0 0 0 0 0 0 0
+STACK WIN 0 3950 56 7 0 4 0 c 0 0 0
+STACK WIN 0 39b0 4 0 0 0 0 0 0 0 0
+STACK WIN 0 39c0 59 7 0 4 0 c 0 0 0
+STACK WIN 0 3a20 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3a30 21 d 0 10 0 0 0 0 0
+STACK WIN 0 3a60 27 9 0 10 0 0 0 0 0
+STACK WIN 0 3a90 24 f 0 0 0 0 0 0 0
+STACK WIN 0 3ac0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3ad0 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3af0 21 d 0 10 0 0 0 0 0
+STACK WIN 0 3b20 27 9 0 10 0 0 0 0 0
+STACK WIN 0 3b50 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3b80 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3b90 25 11 0 0 0 0 0 0 0
+STACK WIN 0 3bc0 4f a 0 0 0 10 0 0 0
+STACK WIN 0 3c10 54 7 0 8 0 c 0 0 0
+STACK WIN 0 3c70 57 7 0 8 0 c 0 0 0
+STACK WIN 0 3cd0 19 8 0 4 0 0 0 0 0
+STACK WIN 0 3cf0 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3d00 21 d 0 14 0 0 0 0 0
+STACK WIN 0 3d30 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3d40 27 9 0 14 0 0 0 0 0
+STACK WIN 0 3d70 3 0 0 0 0 0 0 0 0
+STACK WIN 0 3d80 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3d90 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3da0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3dc0 1 0 0 4 0 0 0 0 0
+STACK WIN 0 3dd0 15 0 0 8 0 0 0 0 0
+STACK WIN 0 3df0 21 d 0 14 0 0 0 0 0
+STACK WIN 0 3e20 27 9 0 14 0 0 0 0 0
+STACK WIN 0 3e50 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3e80 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3e90 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3ea0 25 11 0 c 0 0 0 0 0
+STACK WIN 0 3ed0 3 0 0 4 0 0 0 0 0
+STACK WIN 0 3ee0 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3f00 22 d 0 8 0 0 0 0 0
+STACK WIN 0 3f30 13 0 0 0 0 0 0 0 0
+STACK WIN 0 3f50 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3f60 15 0 0 8 0 0 0 0 0
+STACK WIN 0 3f80 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3fb0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3fd0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3ff0 13 0 0 4 0 0 0 0 0
+STACK WIN 0 4010 ae e 0 4 0 54 0 0 0
+STACK WIN 0 40c0 ae e 0 4 0 4c 0 0 0
+STACK WIN 0 4170 40 7 0 4 0 0 0 0 0
+STACK WIN 0 4464 13 0 0 0 0 0 0 0 0
+STACK WIN 0 466c 16 0 0 0 0 0 0 0 0
+STACK WIN 0 46a0 9 0 0 0 0 0 0 0 0
+STACK WIN 0 46f2 a 0 0 0 0 0 0 0 0
+STACK WIN 0 5405 14 0 0 0 0 0 0 0 0
+STACK WIN 0 58bc a 0 0 0 0 0 0 0 0
+STACK WIN 0 6039 12 0 0 0 0 0 0 0 0
+STACK WIN 0 60e0 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 71eb b 0 0 0 0 0 0 0 0
+STACK WIN 0 7a28 a 0 0 0 0 0 0 0 0
+STACK WIN 0 7b36 a 0 0 0 0 0 0 0 0
+STACK WIN 0 7cc5 9 0 0 0 0 0 0 0 0
+STACK WIN 0 7f28 4 0 0 0 0 0 0 0 0
+STACK WIN 0 8151 9 0 0 0 0 0 0 0 0
+STACK WIN 0 821f 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8390 a 0 0 0 0 0 0 0 0
+STACK WIN 0 83ce 21 0 0 0 0 0 0 0 0
+STACK WIN 0 8477 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8714 a 0 0 0 0 0 0 0 0
+STACK WIN 0 8747 a 0 0 0 0 0 0 0 0
+STACK WIN 0 8779 a 0 0 0 0 0 0 0 0
+STACK WIN 0 87b4 a 0 0 0 0 0 0 0 0
+STACK WIN 0 89d2 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8a62 7c 0 0 0 0 0 0 0 0
+STACK WIN 0 8c49 4 0 0 0 0 0 0 0 0
+STACK WIN 0 8ce2 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9694 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9835 c 0 0 0 0 0 0 0 0
+STACK WIN 0 9841 c 0 0 0 0 0 0 0 0
+STACK WIN 0 9a66 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9ab6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9ae0 4c 8 0 c 10 0 0 0 1
+STACK WIN 0 9c4a 6 0 0 0 0 0 0 0 0
+STACK WIN 0 9ca8 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9ee5 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9fd7 c 0 0 0 0 0 0 0 0
+STACK WIN 0 a04a 9 0 0 0 0 0 0 0 0
+STACK WIN 0 a163 c 0 0 0 0 0 0 0 0
+STACK WIN 0 a1b9 9 0 0 0 0 0 0 0 0
+STACK WIN 0 a1d0 88 0 0 8 0 0 0 0 0
+STACK WIN 0 a2c0 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 c23c a 0 0 0 0 0 0 0 0
+STACK WIN 0 df29 14 0 0 0 0 0 0 0 0
+STACK WIN 0 dfed a 0 0 0 0 0 0 0 0
+STACK WIN 0 e257 c 0 0 0 0 0 0 0 0
+STACK WIN 0 e40d 15 0 0 0 0 0 0 0 0
+STACK WIN 0 e761 17 0 0 0 0 0 0 0 0
+STACK WIN 0 eaa4 c 0 0 0 0 0 0 0 0
+STACK WIN 0 eea0 9 0 0 0 0 0 0 0 0
+STACK WIN 0 f221 9 0 0 0 0 0 0 0 0
+STACK WIN 0 f370 c 0 0 0 0 0 0 0 0
+STACK WIN 0 f3fd c 0 0 0 0 0 0 0 0
+STACK WIN 0 1000a 11 0 0 0 0 0 0 0 0
+STACK WIN 0 1001b c 0 0 0 0 0 0 0 0
+STACK WIN 0 1004c 8 0 0 0 0 0 0 0 0
+STACK WIN 0 10558 90 3 0 c c 0 0 0 0
+STACK WIN 0 105e8 46 0 0 10 4 0 0 0 1
+STACK WIN 0 1064a 17 4 0 0 10 0 0 0 1
+STACK WIN 0 10661 19 0 0 0 0 0 0 0 0
+STACK WIN 0 10694 17 1 0 8 4 0 0 0 1
+STACK WIN 0 123b2 9 0 0 0 0 0 0 0 0
+STACK WIN 0 123f8 9 0 0 0 0 0 0 0 0
+STACK WIN 0 126bd a 0 0 0 0 0 0 0 0
+STACK WIN 0 128c8 e 0 0 0 0 0 0 0 0
+STACK WIN 0 129c5 f 0 0 0 0 0 0 0 0
+STACK WIN 0 12a8e 9 0 0 0 0 0 0 0 0
+STACK WIN 0 12b7f 2d 0 0 0 0 0 0 0 0
+STACK WIN 0 12ca3 e 0 0 0 0 0 0 0 0
+STACK WIN 0 12e47 f 0 0 0 0 0 0 0 0
+STACK WIN 0 14079 b 0 0 0 0 0 0 0 0
+STACK WIN 0 14221 84 3 0 8 c 0 0 0 0
+STACK WIN 0 142a5 23 0 0 0 0 0 0 0 0
+STACK WIN 0 142f0 3 0 0 0 0 0 0 0 0
+STACK WIN 0 14385 11 0 0 0 0 0 0 0 0
+STACK WIN 0 190b6 9 0 0 0 0 0 0 0 0
+STACK WIN 0 19159 9 0 0 0 0 0 0 0 0
+STACK WIN 0 1a1d5 a 0 0 0 0 0 0 0 0
+STACK WIN 0 20e9b a 0 0 0 0 0 0 0 0
+STACK WIN 0 20fd7 1c 0 0 0 0 0 0 0 0
+STACK WIN 0 21a99 e 0 0 0 0 0 0 0 0
+STACK WIN 0 21f21 9 0 0 0 0 0 0 0 0
+STACK WIN 0 21f59 9 0 0 0 0 0 0 0 0
+STACK WIN 0 21f9a 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22cab 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22d83 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22e69 9 0 0 0 0 0 0 0 0
+STACK WIN 0 23b00 be 0 0 8 0 0 0 0 0
diff --git a/src/processor/testdata/module1.out b/src/processor/testdata/module1.out
new file mode 100644
index 0000000..cd6e18d
--- /dev/null
+++ b/src/processor/testdata/module1.out
@@ -0,0 +1,29 @@
+MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 file1_1.cc
+FILE 2 file1_2.cc
+FILE 3 file1_3.cc
+FUNC 1000 c 0 Function1_1
+1000 4 44 1
+1004 4 45 1
+1008 4 46 1
+FUNC 1100 8 4 Function1_2
+1100 4 65 2
+1104 4 66 2
+FUNC 1200 100 8 Function1_3
+FUNC 1300 100 c Function1_4
+FUNC 2000 0 0 Test_Zero_Size_Function_Is_Ignored
+2000 4 88 2
+PUBLIC 2800 0 PublicSymbol
+FUNC 3000 7000 42 LargeFunction
+3000 7000 4098359 3
+STACK WIN 4 1000 c 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK WIN 4 1100 8 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK WIN 4 1100 100 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK WIN 4 1300 100 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK CFI INIT 3d40 af .cfa: $esp 4 + .ra: .cfa 4 - ^
+STACK CFI 3d41 .cfa: $esp 8 + 
+STACK CFI 3d43 .cfa: $ebp 8 + $ebp: .cfa 8 - ^
+STACK CFI 3d54 $ebx: .cfa 20 - ^
+STACK CFI 3d5a $esi: .cfa 16 - ^
+STACK CFI 3d84 $edi: .cfa 12 - ^
diff --git a/src/processor/testdata/module2.out b/src/processor/testdata/module2.out
new file mode 100644
index 0000000..845212c
--- /dev/null
+++ b/src/processor/testdata/module2.out
@@ -0,0 +1,23 @@
+MODULE windows x86 222222222 module2.pdb
+FILE 1 file2_1.cc
+FILE 2 file2_2.cc
+FILE 3 file2_3.cc
+FUNC 2000 c 4 Function2_1
+1000 4 54 1
+1004 4 55 1
+1008 4 56 1
+PUBLIC 2160 0 Public2_1
+FUNC 2170 14 4 Function2_2
+2170 6 10 2
+2176 4 12 2
+217a 6 13 2
+2180 4 21 2
+PUBLIC 21a0 0 Public2_2
+STACK WIN 4 2000 c 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK WIN 4 2170 14 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
+STACK CFI INIT 3df0 af .cfa: $esp 4 + .ra: .cfa 4 - ^
+STACK CFI 3df1 .cfa: $esp 8 +
+STACK CFI 3df3 .cfa: $ebp 8 + $ebp: .cfa 8 - ^
+STACK CFI 3e04 $ebx: .cfa 20 - ^
+STACK CFI 3e0a $esi: .cfa 16 - ^
+STACK CFI 3e34 $edi: .cfa 12 - ^
diff --git a/src/processor/testdata/module3_bad.out b/src/processor/testdata/module3_bad.out
new file mode 100644
index 0000000..bb77248
--- /dev/null
+++ b/src/processor/testdata/module3_bad.out
@@ -0,0 +1,3 @@
+MODULE windows x86 333333333333333333333333333333333 module3.pdb
+FILE 1 file1.cc
+FUNC 1000
diff --git a/src/processor/testdata/module4_bad.out b/src/processor/testdata/module4_bad.out
new file mode 100644
index 0000000..d01fb2c
--- /dev/null
+++ b/src/processor/testdata/module4_bad.out
@@ -0,0 +1,5 @@
+MODULE windows x86 444444444444444444444444444444444 module4.pdb
+FILE 1 file4_1.cc
+FILE 2 file4_2.cc
+1000 4 44 1
+1004 4 45 1
diff --git a/src/processor/testdata/null_read_av.dmp b/src/processor/testdata/null_read_av.dmp
new file mode 100755
index 0000000..f146dc7
--- /dev/null
+++ b/src/processor/testdata/null_read_av.dmp
Binary files differ
diff --git a/src/processor/testdata/null_write_av.dmp b/src/processor/testdata/null_write_av.dmp
new file mode 100755
index 0000000..35c5933
--- /dev/null
+++ b/src/processor/testdata/null_write_av.dmp
Binary files differ
diff --git a/src/processor/testdata/read_av_clobber_write.dmp b/src/processor/testdata/read_av_clobber_write.dmp
new file mode 100755
index 0000000..5deea8d
--- /dev/null
+++ b/src/processor/testdata/read_av_clobber_write.dmp
Binary files differ
diff --git a/src/processor/testdata/read_av_conditional.dmp b/src/processor/testdata/read_av_conditional.dmp
new file mode 100755
index 0000000..b360423
--- /dev/null
+++ b/src/processor/testdata/read_av_conditional.dmp
Binary files differ
diff --git a/src/processor/testdata/read_av_non_null.dmp b/src/processor/testdata/read_av_non_null.dmp
new file mode 100755
index 0000000..2d972a4
--- /dev/null
+++ b/src/processor/testdata/read_av_non_null.dmp
Binary files differ
diff --git a/src/processor/testdata/stack_exhaustion.dmp b/src/processor/testdata/stack_exhaustion.dmp
new file mode 100755
index 0000000..4eb378b
--- /dev/null
+++ b/src/processor/testdata/stack_exhaustion.dmp
Binary files differ
diff --git a/src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym b/src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym
new file mode 100644
index 0000000..b813dbc
--- /dev/null
+++ b/src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym
@@ -0,0 +1,5787 @@
+MODULE windows x86 BCE8785C57B44245A669896B6A19B9542 kernel32.pdb
+PUBLIC b5ae c BaseDllInitialize
+PUBLIC 9b47 4 CloseHandle
+PUBLIC 17826 0 BaseDllInitializeMemoryManager
+PUBLIC 55709 10 EnumResourceNamesW
+PUBLIC be41 4 BaseDllMapResourceIdA
+PUBLIC 98f4 8 BasepMapModuleHandle
+PUBLIC 936b 4 BaseSetLastNTError
+PUBLIC 92b0 4 SetLastError
+PUBLIC 30769 0 GetLastError
+PUBLIC b722 0 ConsoleApp
+PUBLIC 29d7a 18 SetUpConsoleInfo
+PUBLIC 1b069 0 InitExeName
+PUBLIC 17860 0 InitializeCtrlHandling
+PUBLIC 29f30 4 SetUpHandles
+PUBLIC 1dc03 8 SetStdHandle
+PUBLIC 12f39 4 GetStdHandle
+PUBLIC 17889 4 BaseDllInitializeIniFileMappings
+PUBLIC 17923 0 NlsServerInitialize
+PUBLIC 180a6 0 NlsProcessInitialize
+PUBLIC 1795e 0 AllocTables
+PUBLIC 179ea 0 GetUnicodeFileInfo
+PUBLIC 16e70 c GetLocaleFileInfo
+PUBLIC 18a21 0 GetDefaultSortkeyFileInfo
+PUBLIC 17cb5 0 GetDefaultSortTablesFileInfo
+PUBLIC 1839b 8 GetSortTablesFileInfo
+PUBLIC 998d 8 LocalAlloc
+PUBLIC 992f 4 LocalFree
+PUBLIC 1625 20 DeviceIoControl
+PUBLIC 32eb1 4 LocalUnlock
+PUBLIC 32e1d 4 LocalLock
+PUBLIC a03b 4 ResetEvent
+PUBLIC a017 4 SetEvent
+PUBLIC 55921 4 SetLocalTime
+PUBLIC a35e 18 CompareStringW
+PUBLIC 55a0e 4 LocalFlags
+PUBLIC 55b09 4 LocalHandle
+PUBLIC 30927 c LocalReAlloc
+PUBLIC 30bd3 c InternalFindAtom
+PUBLIC 37923 0 wcscpy
+PUBLIC 33107 14 InternalGetAtomName
+PUBLIC ffb1 c InternalAddAtom
+PUBLIC 326c1 4 AddAtomW
+PUBLIC ab78 4 BaseDllMapResourceIdW
+PUBLIC 2d9b2 0 wcslen
+PUBLIC 330e7 c GetAtomNameW
+PUBLIC a9cc 8 lstrcmpW
+PUBLIC ba64 8 lstrcpyW
+PUBLIC bbce c FindResourceW
+PUBLIC e6dc 18 SearchPathW
+PUBLIC 1021c 10 BaseCreateStack
+PUBLIC 55bb1 0 wcscat
+PUBLIC 30b7d 8 InternalDeleteAtom
+PUBLIC 2c86d 0 CloseProfileUserMapping
+PUBLIC ddfe 1c DuplicateHandle
+PUBLIC a996 8 lstrcmpiW
+PUBLIC b64c 8 BaseThreadStart
+PUBLIC 2520 8 WaitForSingleObject
+PUBLIC 1042c 1c CreateRemoteThread
+PUBLIC 98eb 0 GetCurrentThread
+PUBLIC 9766 4 InterlockedIncrement
+PUBLIC 977a 4 InterlockedDecrement
+PUBLIC 978e 8 InterlockedExchange
+PUBLIC 97a2 c InterlockedCompareExchange
+PUBLIC 97b6 8 InterlockedExchangeAdd
+PUBLIC 97c6 c MulDiv
+PUBLIC 10659 8 BaseThreadStartThunk
+PUBLIC 10665 8 BaseProcessStartThunk
+PUBLIC 10672 4 SwitchToFiber
+PUBLIC 106fa 18 _ResourceCallEnumLangRoutine
+PUBLIC 1071e 14 _ResourceCallEnumNameRoutine
+PUBLIC 1073e 10 _ResourceCallEnumTypeRoutine
+PUBLIC 2ff92 0 BaseFiberStart
+PUBLIC 103a3 14 BaseInitializeContext
+PUBLIC 55bbc 4 ResetAccessDate
+PUBLIC 55bee 4 ComputeRemainingSize
+PUBLIC 55c24 8 ComputeRequestSize
+PUBLIC 55c57 c ReportTransfer
+PUBLIC 55c83 8 BackupReadBuffer
+PUBLIC 55cd4 c BackupReadStream
+PUBLIC 55df2 4 BackupTestRestartStream
+PUBLIC 55eb4 8 BasepIsDataAttribute
+PUBLIC 55eef 18 BackupSeek
+PUBLIC 5604f c BackupWriteHeader
+PUBLIC 560f8 c BackupWriteSparse
+PUBLIC 561d4 c BackupWriteStream
+PUBLIC 5627e c BackupWriteAlternateData
+PUBLIC 56381 4 BackupAlloc
+PUBLIC 563b1 4 BackupFree
+PUBLIC 563d6 8 GrowBuffer
+PUBLIC 5643b 4 FreeBuffer
+PUBLIC 5645f 4 FreeContext
+PUBLIC 564b8 4 AllocContext
+PUBLIC 56519 c BackupGetSparseMap
+PUBLIC 5669e c BackupReadData
+PUBLIC 5676b c BackupReadAlternateData
+PUBLIC 569ec c BackupReadEaData
+PUBLIC 56ada c BackupReadObjectId
+PUBLIC 56b94 c BackupReadReparseData
+PUBLIC 56cc7 c BackupReadSecurityData
+PUBLIC 56ddf 1c BackupRead
+PUBLIC 57012 8 BackupWriteBuffer
+PUBLIC 570a4 c BackupWriteEaData
+PUBLIC 570ef c BackupWriteReparseData
+PUBLIC 5714f c BackupWriteObjectId
+PUBLIC 571c9 c BackupWriteSecurityData
+PUBLIC 572ae c BackupWriteLinkData
+PUBLIC 573fe 1c BackupWrite
+PUBLIC 37bfc 0 NotifySoundSentry
+PUBLIC 37a77 8 Beep
+PUBLIC 575f7 4 BaseValidateNetbiosName
+PUBLIC 57665 4 BaseValidateDnsNames
+PUBLIC 576da 10 BasepGetMultiValueAddr
+PUBLIC 5773b c BaseGetMultiValueIndex
+PUBLIC 577c2 c BaseRemoveMultiValue
+PUBLIC 5786b c BaseAddMultiValue
+PUBLIC 202af 10 BasepGetNameFromReg
+PUBLIC 578bb c BaseSetNameInReg
+PUBLIC 5795d 10 BaseSetMultiNameInReg
+PUBLIC 579f7 c BaseCreateMultiValue
+PUBLIC 57aa8 c BaseAddMultiNameInReg
+PUBLIC 57bae c BaseRemoveMultiNameFromReg
+PUBLIC 57c97 4 BaseSetNetbiosName
+PUBLIC 57cd4 4 BaseSetDnsName
+PUBLIC 57da5 4 BaseSetDnsDomain
+PUBLIC 57e41 4 BaseSetAltNetBiosName
+PUBLIC 57e85 4 BaseSetAltDnsFQHostname
+PUBLIC 57eb6 4 BaseIsAltDnsFQHostname
+PUBLIC 57f59 4 BaseRemoveAltNetBiosName
+PUBLIC 57f8a 8 BaseEnumAltDnsFQHostnames
+PUBLIC 57fdd 8 BaseParseDnsName
+PUBLIC 31893 10 GetNameFromValue
+PUBLIC 316c7 8 GetComputerNameW
+PUBLIC 5808d 4 SetComputerNameW
+PUBLIC 201f1 c GetComputerNameExW
+PUBLIC 581b3 8 SetComputerNameExW
+PUBLIC 216a4 8 GetComputerNameA
+PUBLIC 58234 4 SetComputerNameA
+PUBLIC 582a7 c GetComputerNameExA
+PUBLIC 5834c 8 SetComputerNameExA
+PUBLIC 583a3 10 EnumerateLocalComputerNamesW
+PUBLIC 58523 10 EnumerateLocalComputerNamesA
+PUBLIC 2ceb2 c DnsHostnameToComputerNameW
+PUBLIC 585cf c DnsHostnameToComputerNameA
+PUBLIC 5866b 10 BasepGetComputerNameFromNtPath
+PUBLIC 58bc3 8 BaseMultiByteToWideCharWithAlloc
+PUBLIC 58c3e 4 BaseConvertCharFree
+PUBLIC 58c69 4 BaseIsNetBiosNameInUse
+PUBLIC 58e0a 8 AddLocalAlternateComputerNameW
+PUBLIC 58f26 8 AddLocalAlternateComputerNameA
+PUBLIC 58f6f 8 RemoveLocalAlternateComputerNameW
+PUBLIC 59050 8 RemoveLocalAlternateComputerNameA
+PUBLIC 59099 8 SetLocalPrimaryComputerNameW
+PUBLIC 592af 8 SetLocalPrimaryComputerNameA
+PUBLIC 592f8 8 LZCopy
+PUBLIC 593ae 8 CopyLZFile
+PUBLIC b852 10 GetFullPathNameW
+PUBLIC b877 8 GetCurrentDirectoryW
+PUBLIC 30b14 0 GetLogicalDrives
+PUBLIC f272 4 CheckForSameCurdir
+PUBLIC 138fc 10 GetFullPathNameA
+PUBLIC 34ffe 8 GetCurrentDirectoryA
+PUBLIC 360dd 4 SetCurrentDirectoryA
+PUBLIC f2ee 4 SetCurrentDirectoryW
+PUBLIC 176b 4 GetSystemTime
+PUBLIC 17e5 4 GetSystemTimeAsFileTime
+PUBLIC 593be 4 SetSystemTime
+PUBLIC 929c 0 GetTickCount
+PUBLIC e7ec 8 FileTimeToSystemTime
+PUBLIC 10b1c 8 SystemTimeToFileTime
+PUBLIC e866 8 FileTimeToLocalFileTime
+PUBLIC 35524 8 LocalFileTimeToFileTime
+PUBLIC 3065d c FileTimeToDosDateTime
+PUBLIC 3214e c DosDateTimeToFileTime
+PUBLIC 10ad9 8 CompareFileTime
+PUBLIC 350bf 4 GetTimeZoneInformation
+PUBLIC 5945e 4 SetTimeZoneInformation
+PUBLIC 2d36f c GetSystemTimeAdjustment
+PUBLIC 59584 8 SetSystemTimeAdjustment
+PUBLIC 2e9c1 c SystemTimeToTzSpecificLocalTime
+PUBLIC 595c1 c TzSpecificLocalTimeToSystemTime
+PUBLIC 5983e 8 CalcClientTimeZoneIdAndBias
+PUBLIC a7d4 4 GetLocalTime
+PUBLIC 59a31 4 SetClientTimeZoneInformation
+PUBLIC 13093 0 IsDebuggerPresent
+PUBLIC 59b1e 8 CheckRemoteDebuggerPresent
+PUBLIC 59b72 0 DebugBreak
+PUBLIC 59b7c 0 CreateDBWinMutex
+PUBLIC 59d78 4 OutputDebugStringA
+PUBLIC 5a0bd 4 ProcessIdToHandle
+PUBLIC 5a123 4 DebugActiveProcess
+PUBLIC 5a176 4 DebugBreakProcess
+PUBLIC 5a19d 4 DebugSetProcessKillOnExit
+PUBLIC 5a1e8 c GetThreadSelectorEntry
+PUBLIC 5a231 c SaveThreadHandle
+PUBLIC 5a28f 8 SaveProcessHandle
+PUBLIC 5a2eb 4 MarkThreadHandle
+PUBLIC 5a31b 4 MarkProcessHandle
+PUBLIC 5a351 8 RemoveHandles
+PUBLIC 5a3c6 4 CloseAllProcessHandles
+PUBLIC 5a42d 4 OutputDebugStringW
+PUBLIC 5a480 8 WaitForDebugEvent
+PUBLIC 5a565 c ContinueDebugEvent
+PUBLIC 5a5a9 4 DebugActiveProcessStop
+PUBLIC 36f5b 4 RemoveDirectoryW
+PUBLIC 323d2 8 CreateDirectoryW
+PUBLIC 5a5f2 c CreateDirectoryExW
+PUBLIC 5b219 4 RemoveDirectoryA
+PUBLIC 217ac 8 CreateDirectoryA
+PUBLIC 5b23b c CreateDirectoryExA
+PUBLIC 2af8f 4 InitAtomTable
+PUBLIC 30cce 0 InternalInitAtomTable
+PUBLIC 360a9 4 GlobalAddAtomA
+PUBLIC 360c3 4 GlobalFindAtomA
+PUBLIC 30bbb 4 GlobalDeleteAtom
+PUBLIC 5b28b c GlobalGetAtomNameA
+PUBLIC 1006c 4 GlobalAddAtomW
+PUBLIC 34e97 4 GlobalFindAtomW
+PUBLIC 2c3be c GlobalGetAtomNameW
+PUBLIC 354ed 4 AddAtomA
+PUBLIC 30cfe 4 FindAtomA
+PUBLIC 32695 4 DeleteAtom
+PUBLIC 5b2ab c GetAtomNameA
+PUBLIC 2f827 4 FindAtomW
+PUBLIC f726 c BaseDllGetApplicationName
+PUBLIC f763 c BaseDllGetVariableName
+PUBLIC 1ee95 10 BaseDllGetVariableValue
+PUBLIC f88c 14 BaseDllAppendBufferToResultBuffer
+PUBLIC f6da 8 BaseDllIniFileNameLength
+PUBLIC f7a0 c BaseDllFindIniFileNameMapping
+PUBLIC 1c858 0 BaseDllFlushRegistryCache
+PUBLIC 1c8a6 8 BaseDllFindVarNameMapping
+PUBLIC 5b2cb 8 BaseDllCheckKeyNotEmpty
+PUBLIC 1e361 4 BaseDllOpenIniFileOnDisk
+PUBLIC 1e6e1 4 BaseDllCloseIniFileOnDisk
+PUBLIC 35889 4 BaseDllCalculateDeleteLength
+PUBLIC 1e891 8 BaseDllAdvanceTextPointer
+PUBLIC 1f18a 14 BaseDllModifyMappedFile
+PUBLIC 5b355 1c BaseDllCheckInitFromIniFile
+PUBLIC 3331f 0 OpenProfileUserMapping
+PUBLIC f460 28 BaseDllCaptureIniFileParameters
+PUBLIC f928 4 BaseDllAppendNullToResultBuffer
+PUBLIC f851 10 BaseDllAppendStringToResultBuffer
+PUBLIC 1c8db 14 BaseDllOpenMappingTarget
+PUBLIC 5b435 4 BaseDllReadApplicationNames
+PUBLIC 1b42d 8 BaseDllReadVariableNames
+PUBLIC 1cac2 10 BaseDllReadVariableValue
+PUBLIC 5b592 8 BaseDllReadApplicationVariables
+PUBLIC 2bb93 10 BaseDllWriteVariableValue
+PUBLIC 32dd3 4 BaseDllReadSectionNames
+PUBLIC 1e793 4 BaseDllFindSection
+PUBLIC 1e9c5 4 BaseDllFindKeyword
+PUBLIC 5b71c 10 QueryWin31IniFilesMappedToRegistry
+PUBLIC 2dc81 8 BaseDllDeleteApplicationVariables
+PUBLIC 2dc43 8 BaseDllWriteApplicationVariables
+PUBLIC 358ed 4 BaseDllReadKeywordNames
+PUBLIC 1ea7d 4 BaseDllReadKeywordValue
+PUBLIC 1ecd2 4 BaseDllReadSection
+PUBLIC 5b828 4 BaseDllWriteSection
+PUBLIC 1f021 8 BaseDllWriteKeywordValue
+PUBLIC 1c7f4 4 BaseDllReadWriteIniFileViaMapping
+PUBLIC 1e291 4 BaseDllReadWriteIniFileOnDisk
+PUBLIC f331 20 BaseDllReadWriteIniFile
+PUBLIC 32b56 18 GetPrivateProfileStringA
+PUBLIC 35d54 10 WritePrivateProfileStringA
+PUBLIC 35f21 10 GetPrivateProfileSectionA
+PUBLIC 5ba7c c WritePrivateProfileSectionA
+PUBLIC f95d 18 GetPrivateProfileStringW
+PUBLIC 1ee4c 10 WritePrivateProfileStringW
+PUBLIC 1edbd 10 GetPrivateProfileSectionW
+PUBLIC 5bac3 c WritePrivateProfileSectionW
+PUBLIC 32da7 c GetPrivateProfileSectionNamesA
+PUBLIC 5bb0a c GetPrivateProfileSectionNamesW
+PUBLIC 5bb2b 14 GetPrivateProfileStructA
+PUBLIC 5bc95 14 GetPrivateProfileStructW
+PUBLIC 5be23 14 WritePrivateProfileStructA
+PUBLIC 5bf65 14 WritePrivateProfileStructW
+PUBLIC 21495 14 GetProfileStringA
+PUBLIC 5c0b9 c WriteProfileStringA
+PUBLIC 5c0d7 c GetProfileSectionA
+PUBLIC 5c0f5 8 WriteProfileSectionA
+PUBLIC 213f8 14 GetProfileStringW
+PUBLIC 332b1 c WriteProfileStringW
+PUBLIC 5c110 c GetProfileSectionW
+PUBLIC 5c12e 8 WriteProfileSectionW
+PUBLIC 36434 10 GetPrivateProfileIntA
+PUBLIC 32730 10 GetPrivateProfileIntW
+PUBLIC 364a9 c GetProfileIntA
+PUBLIC 2f89a c GetProfileIntW
+PUBLIC 21f1e c DefineDosDeviceW
+PUBLIC 5c149 8 IsGlobalDeviceMap
+PUBLIC 5c269 10 FindSymbolicLinkEntry
+PUBLIC 21d8d c QueryDosDeviceW
+PUBLIC 5c2c5 c DefineDosDeviceA
+PUBLIC 5c36c c QueryDosDeviceA
+PUBLIC 31385 10 CreateIoCompletionPort
+PUBLIC 126f2 10 PostQueuedCompletionStatus
+PUBLIC a71d 14 GetQueuedCompletionStatus
+PUBLIC 315c4 10 GetOverlappedResult
+PUBLIC ac4d 0 GetErrorMode
+PUBLIC ac0f 4 SetErrorMode
+PUBLIC ef3a 8 FindNextFileW
+PUBLIC edd7 4 FindClose
+PUBLIC 5c46c 8 BaseFindFirstDevice
+PUBLIC 34bef c FindFirstChangeNotificationW
+PUBLIC 32113 4 FindNextChangeNotification
+PUBLIC 3162f 20 ReadDirectoryChangesW
+PUBLIC ee81 4 BasepInitializeFindFileHandle
+PUBLIC 34eb1 8 FindNextFileA
+PUBLIC ea7d 18 FindFirstFileExW
+PUBLIC 5c4ab c FindFirstChangeNotificationA
+PUBLIC 137d9 8 FindFirstFileA
+PUBLIC eee1 8 FindFirstFileW
+PUBLIC 5c512 18 FindFirstFileExA
+PUBLIC 180e 14 ReadFile
+PUBLIC 10d87 14 WriteFile
+PUBLIC 32044 4 SetEndOfFile
+PUBLIC 10b8e 10 SetFilePointer
+PUBLIC 21057 14 SetFilePointerEx
+PUBLIC 10c6d 8 GetFileInformationByHandle
+PUBLIC 31c45 10 GetFileTime
+PUBLIC 31cb8 10 SetFileTime
+PUBLIC 12641 4 FlushFileBuffers
+PUBLIC 32361 14 LockFile
+PUBLIC 2f569 18 LockFileEx
+PUBLIC 322fb 14 UnlockFileEx
+PUBLIC 10a09 8 GetFileSizeEx
+PUBLIC 5c64e c BasepIoCompletion
+PUBLIC 2bd84 c BasepIoCompletionSimple
+PUBLIC 2bcfb 14 ReadFileEx
+PUBLIC 5c701 14 WriteFileEx
+PUBLIC 300da 4 CancelIo
+PUBLIC 2de51 14 ReadFileScatter
+PUBLIC 2dda5 14 WriteFileGather
+PUBLIC 5c7a1 c SetFileValidData
+PUBLIC 5c7f7 8 SetFileShortNameW
+PUBLIC 5c8c4 8 SetFileShortNameA
+PUBLIC 10e51 4 GetFileType
+PUBLIC 322bc 14 UnlockFile
+PUBLIC 10a77 8 GetFileSize
+PUBLIC bada c OpenFileMappingW
+PUBLIC b896 18 MapViewOfFileEx
+PUBLIC 35971 8 FlushViewOfFile
+PUBLIC b974 4 UnmapViewOfFile
+PUBLIC 938e 18 CreateFileMappingW
+PUBLIC bb76 c OpenFileMappingA
+PUBLIC b905 14 MapViewOfFile
+PUBLIC 945c 18 CreateFileMappingA
+PUBLIC 110f5 c GetFileAttributesExW
+PUBLIC 31f31 4 DeleteFileW
+PUBLIC 5c8e9 34 BasepMoveFileCopyProgress
+PUBLIC 5c94f 10 BasepNotifyTrackingService
+PUBLIC 5cbc1 10 BasepMoveFileDelayed
+PUBLIC 5cf6b 20 BasepOpenFileForMove
+PUBLIC 5d0e9 c PrivMoveFileIdentityW
+PUBLIC 5d371 8 GetCompressedFileSizeW
+PUBLIC 314d5 8 SetFileAttributesW
+PUBLIC b74c 4 GetFileAttributesW
+PUBLIC 137b1 c GetFileAttributesExA
+PUBLIC 31eab 4 DeleteFileA
+PUBLIC 1f72e 14 MoveFileWithProgressW
+PUBLIC 5d499 8 GetCompressedFileSizeA
+PUBLIC 12782 8 SetFileAttributesA
+PUBLIC 1153c 4 GetFileAttributesA
+PUBLIC 35eae 14 MoveFileWithProgressA
+PUBLIC 21261 8 MoveFileW
+PUBLIC 3565b c MoveFileExW
+PUBLIC 35e8f 8 MoveFileA
+PUBLIC 5d4c3 c MoveFileExA
+PUBLIC 21950 4 BasepOfShareToWin32Share
+PUBLIC 5d4e3 14 LoadDuplicateEncryptionInfoFile
+PUBLIC 10978 8 BaseIsThisAConsoleName
+PUBLIC 5d539 20 CopyNameGraftNow
+PUBLIC 284bd 14 BasepProcessNameGrafting
+PUBLIC 5d9a1 8 BasepChecksum
+PUBLIC 2879d 8 BasepRemoteFile
+PUBLIC 5d9e0 8 BasepCreateDispositionToWin32
+PUBLIC 5da30 0 CheckAllowDecryptedRemoteDestinationPolicy
+PUBLIC 10760 1c CreateFileW
+PUBLIC 3719a 20 BasepCopyFileCallback
+PUBLIC 5dadd 8 BaseMarkFileForDelete
+PUBLIC 5db55 8 CopyReparsePoint
+PUBLIC 5dc16 24 BasepOpenRestartableFile
+PUBLIC 5de71 1c BasepCopyCompression
+PUBLIC 285c6 38 BasepCopyEncryption
+PUBLIC 1a24 1c CreateFileA
+PUBLIC 21982 c OpenFile
+PUBLIC 5e021 28 BasepCopySecurityInformation
+PUBLIC 27bdb 38 BaseCopyStream
+PUBLIC 36c3c 18 ReplaceFileW
+PUBLIC 27613 24 BasepCopyFileExW
+PUBLIC 27b32 18 CopyFileExW
+PUBLIC 2005f 18 PrivCopyFileExW
+PUBLIC 5e307 18 ReplaceFileA
+PUBLIC 286ee c CopyFileA
+PUBLIC 2f873 c CopyFileW
+PUBLIC 5e3c4 18 CopyFileExA
+PUBLIC 5e41d 10 GetFirmwareEnvironmentVariableW
+PUBLIC 5e4ac 10 SetFirmwareEnvironmentVariableW
+PUBLIC 5e534 10 GetFirmwareEnvironmentVariableA
+PUBLIC 5e5c7 10 SetFirmwareEnvironmentVariableA
+PUBLIC 5e65a 4 RegisterWowBaseHandlers
+PUBLIC fd2d 8 GlobalAlloc
+PUBLIC 123b9 c GlobalReAlloc
+PUBLIC ff19 4 GlobalLock
+PUBLIC 34cb9 4 GlobalHandle
+PUBLIC fe82 4 GlobalUnlock
+PUBLIC 34da1 4 GlobalSize
+PUBLIC 36772 4 GlobalFlags
+PUBLIC fc2f 4 GlobalFree
+PUBLIC 5e670 4 LocalCompact
+PUBLIC 5e686 4 GlobalFix
+PUBLIC 5e6a0 4 GlobalUnfix
+PUBLIC 5e6ba 4 GlobalWire
+PUBLIC 5e6ca 4 GlobalUnWire
+PUBLIC 310f2 4 GlobalMemoryStatus
+PUBLIC 9a72 14 VirtualAllocEx
+PUBLIC 9b02 10 VirtualFreeEx
+PUBLIC 1a5d 14 VirtualProtectEx
+PUBLIC b9a0 10 VirtualQueryEx
+PUBLIC 2b13f 8 VirtualLock
+PUBLIC 5e6da 8 VirtualUnlock
+PUBLIC 355bc c FlushInstructionCache
+PUBLIC 5e712 c AllocateUserPhysicalPages
+PUBLIC 5e740 c FreeUserPhysicalPages
+PUBLIC 5e76e c MapUserPhysicalPages
+PUBLIC 5e79c c MapUserPhysicalPagesScatter
+PUBLIC 1f992 4 GlobalMemoryStatusEx
+PUBLIC 5e7ca 18 GetWriteWatch
+PUBLIC 5e803 8 ResetWriteWatch
+PUBLIC 9a51 10 VirtualAlloc
+PUBLIC 9ae4 c VirtualFree
+PUBLIC 1ad0 10 VirtualProtect
+PUBLIC b9d1 c VirtualQuery
+PUBLIC 2e18c c SetHandleInformation
+PUBLIC 2bdb5 8 GetHandleInformation
+PUBLIC 1d07e 0 SetFileApisToOEM
+PUBLIC 365f6 0 SetFileApisToANSI
+PUBLIC 3594f 0 AreFileApisANSI
+PUBLIC 17443 0 BaseProcessInitPostImport
+PUBLIC 934b 0 BaseGetNamedObjectDirectory
+PUBLIC b5c3 c _BaseDllInitialize
+PUBLIC 5e830 8 _lopen
+PUBLIC 365a5 8 _lcreat
+PUBLIC 353ce c _lread
+PUBLIC 38ae7 c _lwrite
+PUBLIC 34e64 4 _lclose
+PUBLIC 35406 c _llseek
+PUBLIC 30d74 8 lstrcmpA
+PUBLIC baa1 8 lstrcmpiA
+PUBLIC be01 8 lstrcpyA
+PUBLIC 10111 c lstrcpynA
+PUBLIC 34d41 8 lstrcatA
+PUBLIC bdb6 4 lstrlenA
+PUBLIC b9ef c lstrcpynW
+PUBLIC 10f32 8 lstrcatW
+PUBLIC 9a09 4 lstrlenW
+PUBLIC 325bc 4 LocalSize
+PUBLIC 5e882 8 LocalShrink
+PUBLIC 12bb6 c HeapCreate
+PUBLIC 10ef8 4 HeapDestroy
+PUBLIC 5e898 10 HeapExtend
+PUBLIC 5e8c9 10 HeapCreateTagsW
+PUBLIC 5e8da 14 HeapQueryTagW
+PUBLIC 5e8eb c HeapSummary
+PUBLIC 5e947 14 HeapUsage
+PUBLIC 5e9bb c HeapValidate
+PUBLIC abc1 0 GetProcessHeap
+PUBLIC 5e9db 8 GetProcessHeaps
+PUBLIC 3611e 8 HeapCompact
+PUBLIC 5e9ec 4 HeapLock
+PUBLIC 5ea06 4 HeapUnlock
+PUBLIC 5ea20 8 HeapWalk
+PUBLIC 39469 10 HeapSetInformation
+PUBLIC 5eb25 14 HeapQueryInformation
+PUBLIC 5eb58 14 GetMailslotInfo
+PUBLIC 2cdd8 8 SetMailslotInfo
+PUBLIC 2ccdc 10 CreateMailslotW
+PUBLIC 2cc8b 10 CreateMailslotA
+PUBLIC 34932 c CreateVirtualBuffer
+PUBLIC 5ebf4 8 ExtendVirtualBuffer
+PUBLIC 5ec4e 4 TrimVirtualBuffer
+PUBLIC 34b69 4 FreeVirtualBuffer
+PUBLIC 5ec71 c VirtualBufferExceptionHandler
+PUBLIC 349d8 20 BaseDllFormatMessage
+PUBLIC 2f7a0 1c FormatMessageA
+PUBLIC 34b8f 1c FormatMessageW
+PUBLIC abde 4 FreeLibrary
+PUBLIC c170 8 FreeLibraryAndExitThread
+PUBLIC 11296 4 DisableThreadLibraryCalls
+PUBLIC 5ecb0 4 SetDllDirectoryW
+PUBLIC 5ed46 4 SetDllDirectoryA
+PUBLIC 5edd7 8 GetDllDirectoryW
+PUBLIC e477 4 GetModuleHandleForUnicodeString
+PUBLIC 1fcff c BasepGetModuleHandleExParameterValidation
+PUBLIC e4b9 10 BasepGetModuleHandleExW
+PUBLIC 111da 0 GetVersion
+PUBLIC ae65 4 GetVersionExW
+PUBLIC 1fb26 10 VerifyVersionInfoW
+PUBLIC 5ee46 10 VerifyVersionInfoA
+PUBLIC 9f81 4 BaseDllFreeResourceId
+PUBLIC 5eee3 c ReturnMem16Data
+PUBLIC 5eef0 1c UTRegister
+PUBLIC 14c3c c BasepLoadLibraryAsDataFile
+PUBLIC 1af1 c LoadLibraryExW
+PUBLIC 5ef47 8 GetDllDirectoryA
+PUBLIC b3d5 c GetModuleFileNameW
+PUBLIC b4cf c GetModuleFileNameA
+PUBLIC e43d 4 GetModuleHandleW
+PUBLIC 5efe6 c GetModuleHandleExA
+PUBLIC 1fcc1 c GetModuleHandleExW
+PUBLIC ada0 8 GetProcAddress
+PUBLIC 12ade 4 GetVersionExA
+PUBLIC be89 c FindResourceA
+PUBLIC 35f78 10 FindResourceExA
+PUBLIC 9fb5 8 LoadResource
+PUBLIC bc69 8 SizeofResource
+PUBLIC 5f03c c EnumResourceTypesA
+PUBLIC 5f229 10 EnumResourceNamesA
+PUBLIC 2e000 14 EnumResourceLanguagesA
+PUBLIC ac88 10 FindResourceExW
+PUBLIC 5f449 c EnumResourceTypesW
+PUBLIC 5f631 14 EnumResourceLanguagesW
+PUBLIC ae4b 4 LoadLibraryW
+PUBLIC 1d4f c LoadLibraryExA
+PUBLIC b6a1 4 GetModuleHandleA
+PUBLIC 1d77 4 LoadLibraryA
+PUBLIC 3145b 8 ConnectNamedPipe
+PUBLIC 1269f 4 DisconnectNamedPipe
+PUBLIC 5f781 c NpGetUserNamep
+PUBLIC 313ec 10 SetNamedPipeHandleState
+PUBLIC 5f88a 14 GetNamedPipeInfo
+PUBLIC 5f90f 18 PeekNamedPipe
+PUBLIC 312e5 1c TransactNamedPipe
+PUBLIC 2c664 8 WaitNamedPipeW
+PUBLIC 2f0d4 20 CreateNamedPipeW
+PUBLIC 5fa85 1c GetNamedPipeHandleStateW
+PUBLIC 5fb7f 1c CallNamedPipeW
+PUBLIC 5fc39 8 WaitNamedPipeA
+PUBLIC 5fc74 20 CreateNamedPipeA
+PUBLIC 5fceb 1c GetNamedPipeHandleStateA
+PUBLIC 5fdce 1c CallNamedPipeA
+PUBLIC 5fe41 4 GetNumaHighestNodeNumber
+PUBLIC 5fe8c 8 GetNumaProcessorNode
+PUBLIC 5ff19 8 GetNumaNodeProcessorMask
+PUBLIC 5ff7e c GetNumaProcessorMap
+PUBLIC 5ffc4 c GetNumaAvailableMemory
+PUBLIC 6000a 8 GetNumaAvailableMemoryNode
+PUBLIC 600d2 10 NumaVirtualQueryNode
+PUBLIC f182 8 IsThisARootDirectory
+PUBLIC 31db9 8 GetSystemDirectoryW
+PUBLIC ad29 8 GetSystemWindowsDirectoryW
+PUBLIC ad7b 8 GetWindowsDirectoryW
+PUBLIC b2d0 4 GetDriveTypeW
+PUBLIC 112d5 c BasepGetTempPathW
+PUBLIC 359b7 10 GetTempFileNameW
+PUBLIC 301af 14 GetDiskFreeSpaceW
+PUBLIC 12803 10 GetDiskFreeSpaceExW
+PUBLIC f9e5 20 GetVolumeInformationW
+PUBLIC 2c2d3 8 GetLogicalDriveStringsA
+PUBLIC 603cf 8 GetLogicalDriveStringsW
+PUBLIC 60499 8 SetVolumeLabelW
+PUBLIC 60811 14 CheckNameLegalDOS8Dot3W
+PUBLIC 14eea 8 GetSystemDirectoryA
+PUBLIC 212f1 8 GetSystemWindowsDirectoryA
+PUBLIC 21363 8 GetWindowsDirectoryA
+PUBLIC 214e3 4 GetDriveTypeA
+PUBLIC 217ea 18 SearchPathA
+PUBLIC 30789 8 GetTempPathW
+PUBLIC 608ff 10 GetTempFileNameA
+PUBLIC 302ed 14 GetDiskFreeSpaceA
+PUBLIC 3039b 10 GetDiskFreeSpaceExA
+PUBLIC 21ba5 20 GetVolumeInformationA
+PUBLIC 609ed 8 SetVolumeLabelA
+PUBLIC 60a51 14 CheckNameLegalDOS8Dot3A
+PUBLIC 35dca 8 GetTempPathA
+PUBLIC a427 4 QueryPerformanceCounter
+PUBLIC 2fa46 4 QueryPerformanceFrequency
+PUBLIC 1e0c7 10 CreatePipe
+PUBLIC 35340 4 GetSystemPowerStatus
+PUBLIC 60aab 8 SetSystemPowerState
+PUBLIC 392b5 4 SetThreadExecutionState
+PUBLIC 60af4 4 RequestWakeupLatency
+PUBLIC 60b1c 8 GetDevicePowerState
+PUBLIC 60b60 0 IsSystemResumeAutomatic
+PUBLIC 60b6f 4 RequestDeviceWakeup
+PUBLIC 60b97 4 CancelDeviceWakeupRequest
+PUBLIC 60bbf 8 SetMessageWaitingIndicator
+PUBLIC 2f3a4 4 BasepIsSetupInvokedByWinLogon
+PUBLIC 1a1cf 8 BasepIsImageVersionOk
+PUBLIC 1500c 0 IsShimInfrastructureDisabled
+PUBLIC 1930f 1c BasepCheckBadapp
+PUBLIC 16f8e 4 RegisterWaitForInputIdle
+PUBLIC 2dfa0 c StuffStdHandle
+PUBLIC 60bd3 c BasepReplaceProcessThreadTokens
+PUBLIC 309e1 c OpenProcess
+PUBLIC 1cd34 4 _ExitProcess
+PUBLIC 1cdda 4 ExitProcess
+PUBLIC 1e16 8 TerminateProcess
+PUBLIC 1ae17 8 GetExitCodeProcess
+PUBLIC 1e50 4 GetStartupInfoW
+PUBLIC 1eee 4 GetStartupInfoA
+PUBLIC 12f1d 0 GetCommandLineA
+PUBLIC 16f83 0 GetCommandLineW
+PUBLIC 1df77 4 FreeEnvironmentStringsA
+PUBLIC 12f08 0 GetEnvironmentStringsW
+PUBLIC 1cf5b 0 GetEnvironmentStrings
+PUBLIC 14af2 c GetEnvironmentVariableA
+PUBLIC 33478 8 SetEnvironmentVariableA
+PUBLIC f0f4 c GetEnvironmentVariableW
+PUBLIC 101be 8 SetEnvironmentVariableW
+PUBLIC 329d9 c ExpandEnvironmentStringsA
+PUBLIC 305f6 c ExpandEnvironmentStringsW
+PUBLIC 9920 0 GetCurrentProcessId
+PUBLIC 60c75 4 GetProcessId
+PUBLIC 21cc 14 ReadProcessMemory
+PUBLIC 220f 14 WriteProcessMemory
+PUBLIC 60caa 8 FatalAppExitW
+PUBLIC 60cf8 8 FatalAppExitA
+PUBLIC 60d46 4 FatalExit
+PUBLIC ae2a 4 IsProcessorFeaturePresent
+PUBLIC 60d58 10 BuildSubSysCommandLine
+PUBLIC 60e13 4 GetPriorityClass
+PUBLIC 9e01 8 IsBadReadPtr
+PUBLIC 3593f 8 IsBadHugeReadPtr
+PUBLIC 9e79 8 IsBadWritePtr
+PUBLIC bf9d 8 IsBadHugeWritePtr
+PUBLIC bccf 4 IsBadCodePtr
+PUBLIC 32259 8 IsBadStringPtrA
+PUBLIC a5dc 8 IsBadStringPtrW
+PUBLIC 2c8ed 8 SetProcessShutdownParameters
+PUBLIC 60e79 8 GetProcessShutdownParameters
+PUBLIC 60ee8 4 BasepIsRealtimeAllowed
+PUBLIC 60f22 c GetSystemTimes
+PUBLIC 352d9 14 GetProcessTimes
+PUBLIC 21765 c GetProcessAffinityMask
+PUBLIC 61068 c GetProcessWorkingSetSize
+PUBLIC 303d0 c SetProcessWorkingSetSize
+PUBLIC 12c23 4 GetProcessVersion
+PUBLIC 610b0 8 SetProcessAffinityMask
+PUBLIC 610e0 8 SetProcessPriorityBoost
+PUBLIC 6111b 8 GetProcessPriorityBoost
+PUBLIC 61155 8 GetProcessIoCounters
+PUBLIC 61186 8 GetProcessHandleCount
+PUBLIC 611c0 8 GetSystemRegistryQuota
+PUBLIC 6120a c BasepSaveAppCertRegistryValue
+PUBLIC 15199 8 IsWow64Process
+PUBLIC 194dd 4 BasepIsProcessAllowed
+PUBLIC 19805 18 BasepCheckWinSaferRestrictions
+PUBLIC 19513 30 CreateProcessInternalW
+PUBLIC 2332 28 CreateProcessW
+PUBLIC 12cb0 c GetSystemInfoInternal
+PUBLIC 12d56 4 GetSystemInfo
+PUBLIC 37945 4 GetNativeSystemInfo
+PUBLIC 2c338 8 SetPriorityClass
+PUBLIC 61351 18 BasepConfigureAppCertDlls
+PUBLIC 1ddd6 30 CreateProcessInternalA
+PUBLIC 2367 28 CreateProcessA
+PUBLIC 6136d 8 WinExec
+PUBLIC 6147e 8 LoadModule
+PUBLIC 3965a 4 CreateMemoryResourceNotification
+PUBLIC 395d8 8 QueryMemoryResourceNotification
+PUBLIC 2c1e7 c DosPathToSessionPathW
+PUBLIC 12f89 8 ProcessIdToSessionId
+PUBLIC 132ee 0 WTSGetActiveConsoleSessionId
+PUBLIC 61799 c DosPathToSessionPathA
+PUBLIC 92ea c BaseFormatObjectAttributes
+PUBLIC 2470 8 BaseFormatTimeOut
+PUBLIC 16fb4 4 BaseProcessStart
+PUBLIC 61901 c BaseFreeThreadStack
+PUBLIC e0df 4 BasepEndOfDirName
+PUBLIC 176db c BasepLocateExeLdrEntry
+PUBLIC 61933 4 BasepUnicodeStringToOemSize
+PUBLIC 6195c 4 BasepUnicodeStringToAnsiSize
+PUBLIC 30445 8 BasepAcquirePrivilegeEx
+PUBLIC 3053e 4 BasepReleasePrivilege
+PUBLIC e275 c BasepComputeProcessPath
+PUBLIC df9e 8 BaseComputeProcessDllPath
+PUBLIC 31d8e 0 BaseComputeProcessSearchPath
+PUBLIC e074 4 Basep8BitStringToStaticUnicodeString
+PUBLIC 114f8 8 Basep8BitStringToDynamicUnicodeString
+PUBLIC 1a2ce 34 BasePushProcessParameters
+PUBLIC 9ef1 4 InitializeCriticalSection
+PUBLIC b829 8 InitializeCriticalSectionAndSpinCount
+PUBLIC 13140 c OpenEventW
+PUBLIC 2c05e 4 PulseEvent
+PUBLIC 10086 10 CreateSemaphoreW
+PUBLIC 2e30f c OpenSemaphoreW
+PUBLIC bfad c ReleaseSemaphore
+PUBLIC e8b7 c CreateMutexW
+PUBLIC e995 c OpenMutexW
+PUBLIC 24a7 4 ReleaseMutex
+PUBLIC 2540 c WaitForSingleObjectEx
+PUBLIC 36696 10 SignalObjectAndWait
+PUBLIC 952a 14 WaitForMultipleObjectsEx
+PUBLIC 239c 8 SleepEx
+PUBLIC 2fb52 c CreateWaitableTimerW
+PUBLIC 61985 c OpenWaitableTimerW
+PUBLIC 95f9 18 SetWaitableTimer
+PUBLIC 2cc09 4 CancelWaitableTimer
+PUBLIC a6a9 10 CreateEventW
+PUBLIC 1320c c OpenEventA
+PUBLIC 12e1d 10 CreateSemaphoreA
+PUBLIC 2ca47 c OpenSemaphoreA
+PUBLIC e93f c CreateMutexA
+PUBLIC ea1b c OpenMutexA
+PUBLIC a05d 10 WaitForMultipleObjects
+PUBLIC 2442 4 Sleep
+PUBLIC 61a81 c CreateWaitableTimerA
+PUBLIC 61af0 c OpenWaitableTimerA
+PUBLIC 308ad 10 CreateEventA
+PUBLIC 33609 0 StringCopyExWorkerW(unsigned short *,unsigned int,unsigned int,unsigned short const *,unsigned short * *,unsigned int *,unsigned long)
+PUBLIC 61b64 0 StringLengthWorkerW(unsigned short const *,unsigned int,unsigned int *)
+PUBLIC 1746c 0 IsTerminalServerCompatible
+PUBLIC 17499 0 IsTSAppCompatEnabled
+PUBLIC f1fa 0 IsSystemLUID
+PUBLIC 17459 0 InitializeTermsrvFpns
+PUBLIC 1efce 0 TermsrvAppInstallMode
+PUBLIC 61ba2 4 SetTermsrvAppInstallMode
+PUBLIC 61d3f c TermsrvGetSyncTime
+PUBLIC 61ffd c TermsrvPutSyncTime
+PUBLIC 6240a 8 TermsrvCheckIniSync
+PUBLIC 62473 4 TermsrvDoesFileExist
+PUBLIC 624ba c TermsrvIniSyncLoop
+PUBLIC 17f41 8 GetPerUserWindowsDirectory
+PUBLIC 6277d 18 StringCbCopyExW
+PUBLIC 627db 1c StringCatExWorkerW
+PUBLIC 6297f 18 StringCbCatExW
+PUBLIC 1ebb1 4 TermsrvSyncUserIniFile
+PUBLIC 629dd 10 StringVPrintfWorkerW
+PUBLIC 12980 c BaseCreateThreadPoolThread
+PUBLIC 2fc00 c OpenThread
+PUBLIC c108 8 SetThreadPriority
+PUBLIC a793 4 GetThreadPriority
+PUBLIC 62a30 8 SetThreadPriorityBoost
+PUBLIC 62a6b 8 GetThreadPriorityBoost
+PUBLIC c058 4 ExitThread
+PUBLIC 1ce03 8 TerminateThread
+PUBLIC 21435 8 GetExitCodeThread
+PUBLIC 9728 0 GetCurrentThreadId
+PUBLIC 3970d 8 GetThreadContext
+PUBLIC 62aa5 8 SetThreadContext
+PUBLIC 39732 4 SuspendThread
+PUBLIC 328f7 4 ResumeThread
+PUBLIC 12a09 10 RaiseException
+PUBLIC 62ad0 8 FillUEFInfo
+PUBLIC 4479d 4 SetUnhandledExceptionFilter
+PUBLIC 62b4f 4 BasepCheckForReadOnlyResource
+PUBLIC 12d9f 0 TlsAlloc
+PUBLIC 9740 4 TlsGetValue
+PUBLIC 9bc5 8 TlsSetValue
+PUBLIC 136d7 4 TlsFree
+PUBLIC 62c9c 14 GetThreadTimes
+PUBLIC 62d09 8 GetThreadIOPendingFlag
+PUBLIC 2fa7a 8 SetThreadAffinityMask
+PUBLIC 2c0e6 c BaseDispatchAPC
+PUBLIC 2c082 c QueueUserAPC
+PUBLIC 62d48 8 SetThreadIdealProcessor
+PUBLIC 2ffcf 14 CreateFiberEx
+PUBLIC 2fe84 4 DeleteFiber
+PUBLIC 2ff16 4 ConvertThreadToFiber
+PUBLIC 2fed7 0 ConvertFiberToThread
+PUBLIC 32992 0 SwitchToThread
+PUBLIC 211cd 18 RegisterWaitForSingleObject
+PUBLIC 2b086 14 RegisterWaitForSingleObjectEx
+PUBLIC 2bff8 4 UnregisterWait
+PUBLIC 30062 8 UnregisterWaitEx
+PUBLIC 30a62 c QueueUserWorkItem
+PUBLIC 2c02c c BindIoCompletionCallback
+PUBLIC 2cba2 0 BasepCreateDefaultTimerQueue
+PUBLIC 2bfd6 0 CreateTimerQueue
+PUBLIC 2117d 1c CreateTimerQueueTimer
+PUBLIC 12723 10 ChangeTimerQueueTimer
+PUBLIC 21130 c DeleteTimerQueueTimer
+PUBLIC 62d7c 8 DeleteTimerQueueEx
+PUBLIC 2b26e 18 SetTimerQueueTimer
+PUBLIC 62dc3 4 DeleteTimerQueue
+PUBLIC 62df0 8 CancelTimerQueueTimer
+PUBLIC 62e34 0 StringCchPrintfW
+PUBLIC 10637 18 CreateThread
+PUBLIC c1e0 4 BaseExitThreadPoolThread
+PUBLIC 62e62 4 UnhandledExceptionFilter
+PUBLIC 2ffaf c CreateFiber
+PUBLIC 63999 8 Heap32ListFirst
+PUBLIC 63a47 8 Heap32ListNext
+PUBLIC 63ade c Heap32First
+PUBLIC 63bf8 4 Heap32Next
+PUBLIC 63d24 14 Toolhelp32ReadProcessMemory
+PUBLIC 63d64 8 Process32FirstW
+PUBLIC 63e1d 8 Process32First
+PUBLIC 63eef 8 Process32NextW
+PUBLIC 63f90 8 Process32Next
+PUBLIC 64062 8 Thread32First
+PUBLIC 64116 8 Thread32Next
+PUBLIC 641af 8 Module32FirstW
+PUBLIC 64268 8 Module32First
+PUBLIC 6434c 8 Module32NextW
+PUBLIC 643ed 8 Module32Next
+PUBLIC 644c8 14 ThpCreateRawSnap
+PUBLIC 64679 18 ThpAllocateSnapshotSection
+PUBLIC 6481c c ThpCopyAnsiToUnicode
+PUBLIC 64858 18 ThpProcessToSnap
+PUBLIC 64b47 8 CreateToolhelp32Snapshot
+PUBLIC 64bcf 8 GetExpandedNameA
+PUBLIC 64c7c 8 GetExpandedNameW
+PUBLIC 64d93 4 ConvertWin32FHToDos
+PUBLIC 64e03 4 ConvertDosFHToWin32
+PUBLIC 64e2a 4 LZInit
+PUBLIC 64f85 14 LZCreateFileW
+PUBLIC 65053 c LZOpenFileA
+PUBLIC 65114 c LZOpenFileW
+PUBLIC 651ab c LZSeek
+PUBLIC 65236 c LZRead
+PUBLIC 65444 4 LZCloseFile
+PUBLIC 654bb 4 LZClose
+PUBLIC 6557c c ClearCommError
+PUBLIC 656c7 c SetupComm
+PUBLIC 6578e 8 EscapeCommFunction
+PUBLIC 6588a 8 GetCommMask
+PUBLIC 65913 8 GetCommModemStatus
+PUBLIC 6599c 8 GetCommProperties
+PUBLIC 65a54 8 GetCommState
+PUBLIC 22128 8 GetCommTimeouts
+PUBLIC 65d02 8 PurgeComm
+PUBLIC 65d8c 4 SetCommBreak
+PUBLIC 65da4 8 SetCommMask
+PUBLIC 65e43 8 SetCommState
+PUBLIC 6614b 8 SetCommTimeouts
+PUBLIC 661f6 8 TransmitCommChar
+PUBLIC 66280 c WaitCommEvent
+PUBLIC 663c8 8 GetFriendlyUi
+PUBLIC 6677d c CommConfigDialogW
+PUBLIC 66871 c CommConfigDialogA
+PUBLIC 66949 c GetDefaultCommConfigW
+PUBLIC 66a41 c GetDefaultCommConfigA
+PUBLIC 66b19 c SetDefaultCommConfigW
+PUBLIC 66c11 c SetDefaultCommConfigA
+PUBLIC 66cf1 4 ClearCommBreak
+PUBLIC 66d09 c GetCommConfig
+PUBLIC 66eab c SetCommConfig
+PUBLIC 66f43 4 GetNextVDMCommand
+PUBLIC 67695 8 ExitVDM
+PUBLIC 67714 8 SetVDMCurrentDirectories
+PUBLIC 67849 8 GetVDMCurrentDirectories
+PUBLIC 2f609 4 CmdBatNotification
+PUBLIC 679a9 4 RegisterWowExec
+PUBLIC 67a01 c GetVDMConfigValue
+PUBLIC 67a4a 10 BaseUpdateVDMEntry
+PUBLIC 28b87 8 BaseIsDosApplication
+PUBLIC 1ae5e 8 BaseCheckForVDM
+PUBLIC 67b2e 8 BaseDestroyVDMEnvironment
+PUBLIC 67b70 8 BaseGetEnvNameType_U
+PUBLIC 1143f 4 SkipPathTypeIndicator_U
+PUBLIC 1f5a6 8 IsShortName_U
+PUBLIC 132f9 8 IsLongName_U
+PUBLIC 67bcc 8 GetBinaryTypeW
+PUBLIC 67e19 4 VDMOperationStarted
+PUBLIC 67e35 14 BaseGetVDMKeyword
+PUBLIC 1146a 10 FindLFNorSFN_U
+PUBLIC 6802b 8 GetBinaryTypeA
+PUBLIC 1f26e c GetShortPathNameW
+PUBLIC 680be c BaseCreateVDMEnvironment
+PUBLIC 13353 c GetLongPathNameW
+PUBLIC 28c38 24 BaseCheckVDMp
+PUBLIC 68509 24 BaseCheckVDM
+PUBLIC 35bb0 c GetShortPathNameA
+PUBLIC 68586 c GetLongPathNameA
+PUBLIC 687a1 14 BaseGetVdmConfigInfo
+PUBLIC 2cf9b c FindNextVolumeW
+PUBLIC 2cf60 4 FindVolumeClose
+PUBLIC 68abf 10 FindNextVolumeMountPointHelper
+PUBLIC 68db1 c FindFirstVolumeMountPointW
+PUBLIC 68f11 8 IsThisAVolumeName
+PUBLIC 6905d c FindNextVolumeMountPointW
+PUBLIC 357d5 4 FindCloseChangeNotification
+PUBLIC 2080d c GetVolumeNameForRoot
+PUBLIC 31b99 10 BasepGetVolumeNameFromReparsePoint
+PUBLIC 20799 10 BasepGetVolumeNameForVolumeMountPoint
+PUBLIC 1fb88 c GetVolumeNameForVolumeMountPointW
+PUBLIC 6907b 8 SetVolumeNameForRoot
+PUBLIC 69218 c NotifyMountMgr
+PUBLIC 69395 8 SetVolumeMountPointW
+PUBLIC 69778 4 DeleteVolumeNameForRoot
+PUBLIC 69930 4 DeleteVolumeMountPointW
+PUBLIC 2e61c c GetVolumePathNameW
+PUBLIC 20d14 10 GetVolumePathNamesForVolumeNameW
+PUBLIC 2d2af 8 FindFirstVolumeW
+PUBLIC 69bff c FindNextVolumeA
+PUBLIC 69d19 c FindFirstVolumeMountPointA
+PUBLIC 69e49 c FindNextVolumeMountPointA
+PUBLIC 69f61 c GetVolumeNameForVolumeMountPointA
+PUBLIC 6a091 8 SetVolumeMountPointA
+PUBLIC 6a0de 4 DeleteVolumeMountPointA
+PUBLIC 2e8b2 c GetVolumePathNameA
+PUBLIC 6a100 10 GetVolumePathNamesForVolumeNameA
+PUBLIC 6a259 8 FindFirstVolumeA
+PUBLIC 6aebf c BuildCommDCBAndTimeoutsA
+PUBLIC 6aeed 8 BuildCommDCBA
+PUBLIC 6af1f c BuildCommDCBAndTimeoutsW
+PUBLIC 6af79 8 BuildCommDCBW
+PUBLIC 6afd0 18 BasepDoTapeOperation
+PUBLIC 6b046 18 SetTapePosition
+PUBLIC 6b08c 14 GetTapePosition
+PUBLIC 6b0e8 c PrepareTape
+PUBLIC 6b11b c EraseTape
+PUBLIC 6b14e 10 CreateTapePartition
+PUBLIC 6b188 10 WriteTapemark
+PUBLIC 6b1c2 10 GetTapeParameters
+PUBLIC 6b21e c SetTapeParameters
+PUBLIC 6b25f 4 GetTapeStatus
+PUBLIC 2cb03 8 CreateJobObjectW
+PUBLIC 6b280 c OpenJobObjectW
+PUBLIC 2e44a 8 AssignProcessToJobObject
+PUBLIC 6b2f7 8 TerminateJobObject
+PUBLIC 2afc9 14 QueryInformationJobObject
+PUBLIC 2ca9f 10 SetInformationJobObject
+PUBLIC 6b324 c IsProcessInJob
+PUBLIC 6b35e c CreateJobSet
+PUBLIC 6b38c 8 CreateJobObjectA
+PUBLIC 6b3f8 c OpenJobObjectA
+PUBLIC 6b46c c CreateHardLinkW
+PUBLIC 6b629 c CreateHardLinkA
+PUBLIC 6b683 4 GetHandleContext
+PUBLIC 2146c 8 GetSystemWow64DirectoryW
+PUBLIC 6b694 0 CreateSocketHandle
+PUBLIC 1301e 18 BasepSxsActivationContextNotification
+PUBLIC 6b6a3 10 BasepSxsSuitableManifestCallback
+PUBLIC 17190 c BasepSxsFindSuitableManifestResourceFor
+PUBLIC 2bf01 4 AddRefActCtx
+PUBLIC 1305f 4 ReleaseActCtx
+PUBLIC 6b6fb 4 ZombifyActCtx
+PUBLIC a644 8 ActivateActCtx
+PUBLIC a675 8 DeactivateActCtx
+PUBLIC 300a9 4 GetCurrentActCtx
+PUBLIC 967c 10 BasepAllocateActivationContextActivationBlock
+PUBLIC 6b723 4 BasepFreeActivationContextActivationBlock
+PUBLIC 130a6 4 BasepSxsCloseHandles
+PUBLIC 15350 14 BasepSxsCreateResourceStream
+PUBLIC 6b761 8 BasepSxsOverrideStreamToMessageStream
+PUBLIC 1530d 4 BasepSxsIsStatusFileNotFoundEtc
+PUBLIC 19aaa 4 BasepSxsIsStatusResourceNotFound
+PUBLIC 1a9d9 8 BasepSxsGetProcessImageBaseAddress
+PUBLIC 15229 10 BasepSxsCreateFileStream
+PUBLIC 162db 1c QueryActCtxW
+PUBLIC 1529b 3c BasepSxsCreateStreams
+PUBLIC 1a86f 28 BasepSxsCreateProcessCsrMessage
+PUBLIC 15921 c BasepCreateActCtx
+PUBLIC 1545c 4 CreateActCtxW
+PUBLIC 11210 c BasepProbeForDllManifest
+PUBLIC 6b7a5 4 CreateActCtxA
+PUBLIC 2fe16 c BasepFindActCtxSection_FillOutReturnData
+PUBLIC 30e9a c BasepFindActCtxSection_CheckAndConvertParameters
+PUBLIC 2fd92 14 BasepFindActCtxSectionString
+PUBLIC 6bb0f 14 FindActCtxSectionStringA
+PUBLIC 2fd4c 14 FindActCtxSectionStringW
+PUBLIC 30f21 14 FindActCtxSectionGuid
+PUBLIC 38653 14 BasepQueryModuleData
+PUBLIC 3835a 14 BaseQueryModuleData
+PUBLIC 1612f 4 CsrBasepCreateActCtx
+PUBLIC 6bb65 4 SetComPlusPackageInstallStatus
+PUBLIC 6bba2 0 GetComPlusPackageInstallStatus
+PUBLIC 6bbcf 4 BasepShimCacheWrite
+PUBLIC 16763 c BasepCheckStringPrefixUnicode
+PUBLIC 16602 4 BasepInitUserTempPath
+PUBLIC 1aa2c 0 BasepShimCacheInitTempDirs
+PUBLIC 169ea c BasepShimCacheQueryFileInformation
+PUBLIC 1691d 8 BasepIsRemovableMedia
+PUBLIC 2b335 c BasepShimCacheInit
+PUBLIC 16473 10 BasepShimCacheSearch
+PUBLIC 1697f c BasepShimCacheUpdateLRUIndex
+PUBLIC 2c59b c BasepShimCacheRemoveEntry
+PUBLIC 2f70b 1c BasepShimCacheAllocateEntry
+PUBLIC 2f695 10 BasepShimCacheUpdate
+PUBLIC 1642c 8 BasepBitMapCountBits
+PUBLIC 168bb c BasepBitMapSetBit
+PUBLIC 16396 4 BasepShimCacheCheckIntegrity
+PUBLIC 165e9 0 BasepShimCacheUnlock
+PUBLIC 16b75 4 BasepCheckCacheExcludeList
+PUBLIC 164cd 0 BaseInitAppcompatCache
+PUBLIC 2b553 8 BasepShimCacheRead
+PUBLIC 16662 14 BasepShimCacheCheckBypass
+PUBLIC 16879 10 BasepShimCacheLookup
+PUBLIC 16562 8 BasepShimCacheLock
+PUBLIC 167d7 10 BaseCheckAppcompatCache
+PUBLIC 15120 c BaseUpdateAppcompatCache
+PUBLIC 6bc3f 0 BaseFlushAppcompatCache
+PUBLIC 6bcc1 0 BaseDumpAppcompatCache
+PUBLIC 2b38d 0 BaseInitAppcompatCacheSupport
+PUBLIC 6be06 0 BaseCleanupAppcompatCache
+PUBLIC 6be8a 4 BaseCleanupAppcompatCacheSupport
+PUBLIC 1204d c StringCopyWorkerW
+PUBLIC 6bec2 0 FreeOne(_RESNAME *)
+PUBLIC 6bf37 0 FreeData(_UPDATEDATA *)
+PUBLIC 6c041 0 AddStringOrID(unsigned short const *,_UPDATEDATA *)
+PUBLIC 6c1ad 0 DeleteResourceFromList(_UPDATEDATA *,_RESTYPE *,_RESNAME *,int,int,int)
+PUBLIC 6c317 0 InsertResourceIntoLangList(_UPDATEDATA *,MY_STRING *,MY_STRING *,_RESTYPE *,_RESNAME *,int,int,int,void *)
+PUBLIC 6c414 0 FilePos(int)
+PUBLIC 6c42e 0 MuMoveFilePos(int,unsigned long)
+PUBLIC 6c449 0 MuWrite(int,void *,unsigned long)
+PUBLIC 6c470 0 MuRead(int,unsigned char *,unsigned long)
+PUBLIC 6c497 0 MuCopy(int,int,unsigned long)
+PUBLIC 6c536 0 SetResdata(_IMAGE_RESOURCE_DATA_ENTRY *,unsigned long,unsigned long)
+PUBLIC 6c55d 0 SetRestab(_IMAGE_RESOURCE_DIRECTORY *,long,unsigned short,unsigned short)
+PUBLIC 6c592 0 FindSection(_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,char *)
+PUBLIC 6c5e7 0 AssignResourceToSection(_RESNAME * *,unsigned long,unsigned long,long,long *)
+PUBLIC 6c62a 0 WriteResSection(_UPDATEDATA *,int,unsigned long,unsigned long,_RESNAME *)
+PUBLIC 6c7a6 0 PatchDebug<_IMAGE_NT_HEADERS>(int,int,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_NT_HEADERS *,_IMAGE_NT_HEADERS *,unsigned long,unsigned long *)
+PUBLIC 6c922 0 PatchDebug<_IMAGE_NT_HEADERS64>(int,int,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_SECTION_HEADER *,_IMAGE_NT_HEADERS64 *,_IMAGE_NT_HEADERS64 *,unsigned long,unsigned long *)
+PUBLIC 6ca9e 0 PatchRVAs<_IMAGE_NT_HEADERS>(int,int,_IMAGE_SECTION_HEADER *,unsigned long,_IMAGE_NT_HEADERS *,unsigned long)
+PUBLIC 6cc38 0 PatchRVAs<_IMAGE_NT_HEADERS64>(int,int,_IMAGE_SECTION_HEADER *,unsigned long,_IMAGE_NT_HEADERS64 *,unsigned long)
+PUBLIC 6cdd5 0 PEWriteResource<_IMAGE_NT_HEADERS>(int,int,unsigned long,_UPDATEDATA *,_IMAGE_NT_HEADERS *)
+PUBLIC 6df34 0 PEWriteResource<_IMAGE_NT_HEADERS64>(int,int,unsigned long,_UPDATEDATA *,_IMAGE_NT_HEADERS64 *)
+PUBLIC 335b7 0 StringCchCopyW(unsigned short *,unsigned int,unsigned short const *)
+PUBLIC 6f093 0 AddResource(MY_STRING *,MY_STRING *,unsigned short,_UPDATEDATA *,void *,unsigned long)
+PUBLIC 6f3ef 0 PEWriteResFile(int,int,unsigned long,_UPDATEDATA *)
+PUBLIC 6f49a 0 WriteResFile(void *,unsigned short *)
+PUBLIC 6f5a3 18 UpdateResourceW
+PUBLIC 6f6aa 18 UpdateResourceA
+PUBLIC 6f774 8 EndUpdateResourceW
+PUBLIC 6f949 8 EndUpdateResourceA
+PUBLIC 6f959 0 EnumLangsFunc(void *,unsigned short *,unsigned short *,unsigned short,long)
+PUBLIC 6fa8d 0 EnumNamesFunc(void *,unsigned short *,unsigned short *,long)
+PUBLIC 6fab4 0 EnumTypesFunc(void *,unsigned short *,long)
+PUBLIC 6fad8 8 BeginUpdateResourceW
+PUBLIC 6fc7b 8 BeginUpdateResourceA
+PUBLIC 6fcdc 0 __report_gsfailure
+PUBLIC 6fdca 0 __security_init_cookie_ex
+PUBLIC 189fc 0 __security_init_cookie
+PUBLIC 9702 0 __security_check_cookie
+PUBLIC 6fe51 8 GetCurrentExeName
+PUBLIC 6febb c GetExeName
+PUBLIC 6ff39 18 GetConsoleAliasInternal
+PUBLIC 70086 10 GetConsoleAliasW
+PUBLIC 700b2 10 GetConsoleAliasA
+PUBLIC 700dc 8 GetConsoleAliasesLengthInternal
+PUBLIC 701a1 4 GetConsoleAliasesLengthW
+PUBLIC 701b9 4 GetConsoleAliasesLengthA
+PUBLIC 701d1 4 GetConsoleAliasExesLengthInternal
+PUBLIC 70245 0 GetConsoleAliasExesLengthW
+PUBLIC 70252 0 GetConsoleAliasExesLengthA
+PUBLIC 7025f 10 GetConsoleAliasesInternal
+PUBLIC 703c9 c GetConsoleAliasesW
+PUBLIC 703e7 c GetConsoleAliasesA
+PUBLIC 70405 c GetConsoleAliasExesInternal
+PUBLIC 70531 8 GetConsoleAliasExesW
+PUBLIC 7054c 8 GetConsoleAliasExesA
+PUBLIC 70567 8 ExpungeConsoleCommandHistoryInternal
+PUBLIC 7060f 4 ExpungeConsoleCommandHistoryW
+PUBLIC 70627 4 ExpungeConsoleCommandHistoryA
+PUBLIC 7063f c SetConsoleNumberOfCommandsInternal
+PUBLIC 7070a 8 SetConsoleNumberOfCommandsW
+PUBLIC 70725 8 SetConsoleNumberOfCommandsA
+PUBLIC 70740 8 GetConsoleCommandHistoryLengthInternal
+PUBLIC 707ed 4 GetConsoleCommandHistoryLengthW
+PUBLIC 70805 4 GetConsoleCommandHistoryLengthA
+PUBLIC 7081d 10 GetConsoleCommandHistoryInternal
+PUBLIC 70989 c GetConsoleCommandHistoryW
+PUBLIC 709a7 c GetConsoleCommandHistoryA
+PUBLIC 709c5 4 SetConsoleCommandHistoryMode
+PUBLIC 1ba6a c GetConsoleTitleInternal
+PUBLIC 70a39 8 GetConsoleTitleA
+PUBLIC 1ba3c 8 GetConsoleTitleW
+PUBLIC 2da09 c SetConsoleTitleInternal
+PUBLIC 70a61 4 SetConsoleTitleA
+PUBLIC 2d9bd 4 SetConsoleTitleW
+PUBLIC 70ad1 8 GetConsoleInputExeNameW
+PUBLIC 1b355 4 SetConsoleInputExeNameW
+PUBLIC 70b61 18 AddConsoleAliasInternal
+PUBLIC 70c81 c AddConsoleAliasW
+PUBLIC 70cbf c AddConsoleAliasA
+PUBLIC 70cfc 8 GetConsoleInputExeNameA
+PUBLIC 70da8 4 SetConsoleInputExeNameA
+PUBLIC 1b10f 10 SetUpAppName
+PUBLIC 29ee3 8 ParseReserved
+PUBLIC 1aff3 4 GetConsoleLangId
+PUBLIC 1afd5 0 SetTEBLangID
+PUBLIC 18c64 c ConnectConsoleInternal
+PUBLIC 70e05 2c AllocConsoleInternal
+PUBLIC 71011 0 FreeConsoleInternal
+PUBLIC 7108d 0 FreeConsole
+PUBLIC 710e1 4 PropRoutine
+PUBLIC 71191 10 AttachConsoleInternal
+PUBLIC b6d7 8 ConDllInitialize
+PUBLIC 71311 0 AllocConsole
+PUBLIC 714f9 4 AttachConsole
+PUBLIC 715f9 0 GetConsoleInputWaitHandle
+PUBLIC 1ce32 14 WriteConsoleInternal
+PUBLIC 1cf25 14 WriteConsoleA
+PUBLIC 35484 14 WriteConsoleW
+PUBLIC 1dc7e 4 CloseConsoleHandle
+PUBLIC 1dd4d 10 DuplicateConsoleHandle
+PUBLIC 71604 8 GetConsoleHandleInformation
+PUBLIC 716c9 c SetConsoleHandleInformation
+PUBLIC 1aeaa 4 VerifyConsoleIoHandle
+PUBLIC 1ff5b 10 OpenConsoleWInternal
+PUBLIC 10fe1 10 OpenConsoleW
+PUBLIC 71749 20 ReadConsoleInternal
+PUBLIC 71a1d 14 ReadConsoleA
+PUBLIC 71a6c 14 ReadConsoleW
+PUBLIC 71ac2 2c RegisterConsoleVDM
+PUBLIC 71c19 c GetConsoleHardwareState
+PUBLIC 71ce9 c SetConsoleHardwareState
+PUBLIC 37c53 4 GetConsoleDisplayMode
+PUBLIC 71d69 10 SetConsoleKeyShortcuts
+PUBLIC 71e30 4 SetConsoleMenuClose
+PUBLIC 71ea4 10 WriteConsoleInputVDMA
+PUBLIC 71ec7 10 WriteConsoleInputVDMW
+PUBLIC 71eea 8 SetConsoleCursor
+PUBLIC 71f64 8 ShowConsoleCursor
+PUBLIC 71fbf c ConsoleMenuControl
+PUBLIC 72020 c SetConsolePaletteInternal
+PUBLIC 720a0 c SetConsoleDisplayMode
+PUBLIC 721c9 c SetConsolePalette
+PUBLIC 72269 18 WriteConsoleInputInternal
+PUBLIC 723c5 10 WriteConsoleInputA
+PUBLIC 723e8 10 WriteConsoleInputW
+PUBLIC 7240b 18 CopyRectangle
+PUBLIC 7254f 18 ReadConsoleOutputInternal
+PUBLIC 727e1 14 ReadConsoleOutputW
+PUBLIC 72805 14 ReadConsoleOutputA
+PUBLIC 72829 18 WriteConsoleOutputInternal
+PUBLIC 72b21 14 WriteConsoleOutputW
+PUBLIC 72b45 14 WriteConsoleOutputA
+PUBLIC 72b69 1c ReadConsoleOutputString
+PUBLIC 72cd9 14 ReadConsoleOutputCharacterA
+PUBLIC 72cff 14 ReadConsoleOutputCharacterW
+PUBLIC 72d25 14 ReadConsoleOutputAttribute
+PUBLIC 72d4b 1c WriteConsoleOutputString
+PUBLIC 72ea5 14 WriteConsoleOutputCharacterA
+PUBLIC 72ecb 14 WriteConsoleOutputCharacterW
+PUBLIC 72ef1 14 WriteConsoleOutputAttribute
+PUBLIC 72f17 18 FillConsoleOutput
+PUBLIC 72ff9 14 FillConsoleOutputCharacterA
+PUBLIC 73020 14 FillConsoleOutputCharacterW
+PUBLIC 73044 14 FillConsoleOutputAttribute
+PUBLIC 73068 14 CreateConsoleScreenBuffer
+PUBLIC 73215 8 InvalidateConsoleDIBits
+PUBLIC 732e1 18 GetConsoleInput
+PUBLIC 7348d 10 PeekConsoleInputA
+PUBLIC 734b0 10 PeekConsoleInputW
+PUBLIC 734d3 10 ReadConsoleInputA
+PUBLIC 734f6 10 ReadConsoleInputW
+PUBLIC 73519 14 ReadConsoleInputExA
+PUBLIC 7353d 14 ReadConsoleInputExW
+PUBLIC 73561 8 GetConsoleCursorInfo
+PUBLIC 73629 4 GetConsoleSelectionInfo
+PUBLIC 736e1 4 GetNumberOfConsoleMouseButtons
+PUBLIC 73799 10 GetConsoleFontInfo
+PUBLIC 738c1 8 GetConsoleFontSize
+PUBLIC 7394f c GetCurrentConsoleFont
+PUBLIC 1b1f0 8 SetConsoleMode
+PUBLIC 73a21 8 GenerateConsoleCtrlEvent
+PUBLIC 73aa8 4 SetConsoleActiveScreenBuffer
+PUBLIC 73b1c 4 FlushConsoleInputBuffer
+PUBLIC 73b90 8 SetConsoleScreenBufferSize
+PUBLIC 73c0a 8 SetConsoleCursorPosition
+PUBLIC 73c84 8 SetConsoleCursorInfo
+PUBLIC 73d51 c SetConsoleWindowInfo
+PUBLIC 73e21 18 ScrollConsoleScreenBufferInternal
+PUBLIC 73f21 14 ScrollConsoleScreenBufferA
+PUBLIC 73f45 14 ScrollConsoleScreenBufferW
+PUBLIC 73f69 8 SetConsoleTextAttribute
+PUBLIC 73fe5 8 SetConsoleFont
+PUBLIC 7405f 4 SetConsoleIcon
+PUBLIC 740d3 0 GetConsoleCP
+PUBLIC 74143 4 SetConsoleCP
+PUBLIC 1b18f 0 GetConsoleOutputCP
+PUBLIC 741fe 4 SetConsoleOutputCPInternal
+PUBLIC 74261 4 SetConsoleOutputCP
+PUBLIC 74294 8 GetConsoleKeyboardLayoutNameWorker
+PUBLIC 74329 4 GetConsoleKeyboardLayoutNameA
+PUBLIC 74341 4 GetConsoleKeyboardLayoutNameW
+PUBLIC 74359 0 GetConsoleWindow
+PUBLIC 743c5 8 GetConsoleProcessList
+PUBLIC 1af14 8 GetConsoleMode
+PUBLIC 74501 0 GetNumberOfConsoleFonts
+PUBLIC 7456d 8 GetNumberOfConsoleInputEvents
+PUBLIC 74631 4 GetLargestConsoleWindowSize
+PUBLIC 1bc2b 8 GetConsoleScreenBufferInfo
+PUBLIC 746b9 10 SetConsoleLocalEUDC
+PUBLIC 7477f c SetConsoleCursorMode
+PUBLIC 747ff c GetConsoleCursorMode
+PUBLIC 748c9 4 RegisterConsoleOS2
+PUBLIC 7493d 4 SetConsoleOS2OemFormat
+PUBLIC 749b1 14 RegisterConsoleIMEInternal
+PUBLIC 74ab9 8 RegisterConsoleIME
+PUBLIC 74b12 4 UnregisterConsoleIMEInternal
+PUBLIC 74b86 0 UnregisterConsoleIME
+PUBLIC 74b97 c MyRegOpenKey
+PUBLIC 74be9 10 MyRegQueryValue
+PUBLIC 74c8e 8 GetCommandLineString
+PUBLIC 74e13 4 ConsoleIMERoutine
+PUBLIC 74f87 8 GetConsoleNlsMode
+PUBLIC 750d9 8 SetConsoleNlsMode
+PUBLIC 751a3 c GetConsoleCharType
+PUBLIC 75271 4 DefaultHandler
+PUBLIC 1b5c6 4 SetCtrlHandler
+PUBLIC 2000c 4 RemoveCtrlHandler
+PUBLIC 1b58b 8 SetConsoleCtrlHandler
+PUBLIC 75280 4 CtrlRoutine
+PUBLIC 75489 0 SetLastConsoleEventActiveInternal
+PUBLIC 754d3 0 SetLastConsoleEventActive
+PUBLIC 754e4 8 VDMConsoleOperation
+PUBLIC 38211 10 EnumCalendarInfoA
+PUBLIC 75749 10 EnumCalendarInfoExA
+PUBLIC 7576c c EnumTimeFormatsA
+PUBLIC 7578a c EnumDateFormatsA
+PUBLIC 757aa c EnumDateFormatsExA
+PUBLIC 757ca c EnumSystemLanguageGroupsA
+PUBLIC 757e8 10 EnumLanguageGroupLocalesA
+PUBLIC 75809 c EnumUILanguagesA
+PUBLIC 37ce1 8 EnumSystemLocalesA
+PUBLIC 75827 8 EnumSystemCodePagesA
+PUBLIC 75842 14 GetGeoInfoA
+PUBLIC a459 8 NlsGetACPFromLocale
+PUBLIC cf52 18 NlsAnsiToUnicode
+PUBLIC d239 14 NlsUnicodeToAnsi
+PUBLIC 380ef c NlsEnumUnicodeToAnsi
+PUBLIC 38063 24 NlsDispatchAnsiEnumProc
+PUBLIC d077 18 CompareStringA
+PUBLIC 38de8 18 LCMapStringA
+PUBLIC d262 10 GetLocaleInfoA
+PUBLIC 758cb c SetLocaleInfoA
+PUBLIC 7596b 18 GetCalendarInfoA
+PUBLIC 75ad6 10 SetCalendarInfoA
+PUBLIC 3632d 18 GetTimeFormatA
+PUBLIC 361ee 18 GetDateFormatA
+PUBLIC 2ec56 18 GetNumberFormatA
+PUBLIC 75b79 18 GetCurrencyFormatA
+PUBLIC 38a0c 14 GetStringTypeA
+PUBLIC 75eb1 14 FoldStringA
+PUBLIC 76047 c GetCPInfoExA
+PUBLIC 760cf 14 GetStringTypeExA
+PUBLIC a490 10 GetStringTypeW
+PUBLIC 760df 3c FindJamoDifference
+PUBLIC bfef 14 GetStringTypeExW
+PUBLIC af4f 1c LongCompareStringW
+PUBLIC 763c9 0 NlsResetProcessLocale
+PUBLIC 763ef 8 IsValidLanguageGroup
+PUBLIC 1c48b 8 IsValidLocale
+PUBLIC 764fb 4 IsValidUILanguage
+PUBLIC a415 0 GetThreadLocale
+PUBLIC 13038 0 GetSystemDefaultUILanguage
+PUBLIC 13070 0 GetUserDefaultUILanguage
+PUBLIC 127b2 0 GetSystemDefaultLangID
+PUBLIC bf3d 0 GetSystemDefaultLCID
+PUBLIC 9f10 0 GetUserDefaultLCID
+PUBLIC 7668d c SetCurrentUserRegValue
+PUBLIC 76734 1c SetMultipleUserInfoInRegistry
+PUBLIC 769f2 1c SetMultipleUserInfo
+PUBLIC 39200 c GetTwoDigitYearInfo
+PUBLIC 76a53 c SetTwoDigitYearInfo
+PUBLIC 76c59 10 GetNativeLanguageName
+PUBLIC 383cf 4 ConvertDefaultLocale
+PUBLIC 1bbba 4 SetThreadLocale
+PUBLIC bf64 0 GetUserDefaultLangID
+PUBLIC 2f041 c VerLanguageNameW
+PUBLIC 2efb9 c VerLanguageNameA
+PUBLIC 11562 10 GetLocaleInfoW
+PUBLIC 39020 18 GetCalendarInfoW
+PUBLIC 76d1b 10 SetCalendarInfoW
+PUBLIC 76e34 c SetUserInfo
+PUBLIC 1b258 4 SetThreadUILanguage
+PUBLIC 76e73 c SetLocaleInfoW
+PUBLIC 77cf7 10 CreateRegKey
+PUBLIC 1bcfe 10 OpenRegKey
+PUBLIC 15047 14 QueryRegValue
+PUBLIC 77df0 10 SetRegValue
+PUBLIC 1734f 10 MapSection
+PUBLIC 77e24 4 UnMapSection
+PUBLIC 17f7d 18 GetNlsSectionName
+PUBLIC 77e43 c GetCodePageDLLPathName
+PUBLIC 2ae21 8 GetNTFileName
+PUBLIC 2ac6c c CreateNlsSecurityDescriptor
+PUBLIC 2b95b 8 AppendAccessAllowedACE
+PUBLIC 2b883 0 CreateNlsObjectDirectory
+PUBLIC 172de 14 OpenSection
+PUBLIC 2ad98 8 OpenDataFile
+PUBLIC 77f87 8 CreateSectionTemp
+PUBLIC 77fec 10 Internal_EnumSystemLanguageGroups
+PUBLIC 782c6 14 Internal_EnumLanguageGroupLocales
+PUBLIC 2a8fa 10 Internal_EnumUILanguages
+PUBLIC 37cfc c Internal_EnumSystemLocales
+PUBLIC 7849b c Internal_EnumSystemCodePages
+PUBLIC 38234 18 Internal_EnumCalendarInfo
+PUBLIC 38958 38 EnumDateTime
+PUBLIC 786e5 c EnumSystemLanguageGroupsW
+PUBLIC 78703 10 EnumLanguageGroupLocalesW
+PUBLIC 2a8dc c EnumUILanguagesW
+PUBLIC 78724 8 EnumSystemLocalesW
+PUBLIC 7873f 8 EnumSystemCodePagesW
+PUBLIC 7875a 10 EnumCalendarInfoW
+PUBLIC 7877d 10 EnumCalendarInfoExW
+PUBLIC 388dc 10 Internal_EnumTimeFormats
+PUBLIC 38801 14 Internal_EnumDateFormats
+PUBLIC 388be c EnumTimeFormatsW
+PUBLIC 387e1 c EnumDateFormatsW
+PUBLIC 787a0 c EnumDateFormatsExW
+PUBLIC 787c0 8 GetGeoLCID
+PUBLIC 78847 14 GetGeoInfoW
+PUBLIC 78bd9 c EnumSystemGeoID
+PUBLIC 3798e 4 GetUserGeoID
+PUBLIC 78c5c 4 SetUserGeoID
+PUBLIC 78db1 10 FoldCZone
+PUBLIC 78e32 10 FoldDigits
+PUBLIC 78eb3 10 FoldCZone_Digits
+PUBLIC 78f7b 10 FoldLigatures
+PUBLIC 790a7 10 FoldPreComposed
+PUBLIC 791d2 10 FoldComposite
+PUBLIC ce53 18 MapCase
+PUBLIC 2d4ad 1c MapSortKey
+PUBLIC 79269 18 MapNormalization
+PUBLIC 374eb 18 MapHalfKana
+PUBLIC 37787 18 MapFullKana
+PUBLIC 794fb 1c MapTraditionalSimplified
+PUBLIC 79636 14 FoldStringW
+PUBLIC 37693 18 MapKanaWidth
+PUBLIC cca8 18 LCMapStringW
+PUBLIC 110cb 4 IsValidCodePage
+PUBLIC 9915 0 GetACP
+PUBLIC 797c3 4 SetCPGlobal
+PUBLIC 127a7 0 GetOEMCP
+PUBLIC b7dc 4 IsDBCSLeadByte
+PUBLIC 2f540 10 GetWCCompSB
+PUBLIC 797df 1c GetWCCompMB
+PUBLIC 79866 14 GetWCCompSBErr
+PUBLIC 798c1 1c GetWCCompMBErr
+PUBLIC a1fb 18 GetMBNoDefault
+PUBLIC bd19 20 GetMBDefault
+PUBLIC 32cf3 1c GetMBCompSB
+PUBLIC 7998a 24 GetMBCompMB
+PUBLIC 7a064 0 GetMacCodePage
+PUBLIC cfd4 18 SpecialMBToWC
+PUBLIC 12e76 8 GetCPInfo
+PUBLIC 7a1cd c GetCPInfoExW
+PUBLIC 7a4ce 8 IsDBCSLeadByteEx
+PUBLIC 9bf8 18 MultiByteToWideChar
+PUBLIC 32c7b 20 GetMBDefaultComp
+PUBLIC a0d4 20 WideCharToMultiByte
+PUBLIC 7a6b5 0 GetXPSP2ResModuleHandle
+PUBLIC 7a6e2 0 GetXPSP3ResModuleHandle
+PUBLIC 35819 0 NlsGetCacheUpdateCount
+PUBLIC 34474 c IsValidSeparatorString
+PUBLIC 7a712 c IsValidGroupingString
+PUBLIC 336f6 8 IsValidCalendarType
+PUBLIC 33735 8 IsValidCalendarTypeStr
+PUBLIC 7a773 0 GetPreComposedChar
+PUBLIC 2f440 4 GetCompositeChars
+PUBLIC 7a7f3 4 InsertPreComposedForm
+PUBLIC 37834 8 InsertFullWidthPreComposedForm
+PUBLIC 2f40d 0 InsertCompositeForm
+PUBLIC 7a850 8 NlsConvertIntegerToHexStringW
+PUBLIC 124d1 8 NlsConvertStringToIntegerW
+PUBLIC 121de 0 NlsStrCpyW
+PUBLIC 1bdd2 0 NlsStrCatW
+PUBLIC a2d4 0 NlsStrLenW
+PUBLIC 7a8b2 0 NlsStrEqualW
+PUBLIC 7a962 4 NlsStrNEqualW
+PUBLIC 7aa41 4 GetDefaultSortkeySize
+PUBLIC 7aa6b 4 GetLinguistLangSize
+PUBLIC 7aa95 10 ValidateLCType
+PUBLIC 2ee51 14 GetStringTableEntry
+PUBLIC 7ad9c 0 NlsIsDll
+PUBLIC 2c16a 0 UpdateUserInfoCache
+PUBLIC 12544 c NlsStringIsInRange
+PUBLIC 2a5c3 10 GetUserInfoFromRegistry
+PUBLIC 12090 1c GetUserInfo
+PUBLIC 14f5c 14 NlsConvertIntegerToString
+PUBLIC 397f8 4 ValidateLocale
+PUBLIC 384db c GetCPFileNameFromRegistry
+PUBLIC 3440e 4 IsValidNumberFormat
+PUBLIC 7adfe 4 IsValidCurrencyFormat
+PUBLIC 7ae7f 20 GetRegIntValue
+PUBLIC 7af62 8 ConvertGroupingStringToInt
+PUBLIC 7afd9 1c GetGroupingValue
+PUBLIC 3472b 20 GetNumberString
+PUBLIC 3465d 20 ParseNumber
+PUBLIC 7b04e 20 ParseCurrency
+PUBLIC 344bc 18 GetNumberFormatW
+PUBLIC 7b6ca 18 GetCurrencyFormatW
+PUBLIC 3414d 4 IsValidTime
+PUBLIC 339dc 4 IsValidDate
+PUBLIC 7bad3 18 GetCalendarYear
+PUBLIC 7bb6e c GetAbsoluteDate
+PUBLIC 7bc59 4 GetAdvanceHijriDate
+PUBLIC 7be1b 4 DaysUpToHijriYear
+PUBLIC 7be83 c IsValidDateForHebrew
+PUBLIC 335d4 18 StringCchCopyExW
+PUBLIC 33ec8 14 ParseTime
+PUBLIC 7bf4d 8 GetHijriDate
+PUBLIC 7c04f 8 GetHebrewDate
+PUBLIC 7c86f c NumberToHebrewLetter
+PUBLIC 33fd3 18 GetTimeFormatW
+PUBLIC 33a4a 20 ParseDate
+PUBLIC 33775 18 GetDateFormatW
+PUBLIC c0ed 0 NlsThreadCleanup
+PUBLIC 17fc1 0 InitKoreanWeights
+PUBLIC 1805b c NlsDllInitialize
+PUBLIC 38617 4 IsCPHashNodeLoaded
+PUBLIC 7caa9 0 GetGeoFileInfo
+PUBLIC a557 0 GetCTypeFileInfo
+PUBLIC 7cb54 8 LoadCodePageAsDLL
+PUBLIC 188fc 14 MakeCPHashNode
+PUBLIC 16ea9 10 MakeLocHashNode
+PUBLIC 336b6 8 GetCalendar
+PUBLIC 7cc2b 4 IsValidSortId
+PUBLIC 7cd42 0 GetLanguageExceptionInfo
+PUBLIC 7cdc6 4 FindLanguageExceptionPointers
+PUBLIC 7ce1e 4 CopyLanguageExceptionInfo
+PUBLIC 184dc c FindExceptionPointers
+PUBLIC 7ceb0 8 CopyExceptionInfo
+PUBLIC 7cf53 4 WaitOnEvent
+PUBLIC 183fe 8 GetSortkeyFileInfo
+PUBLIC 3996f 8 GetCodePageFileInfo
+PUBLIC 1831e 10 MakeLangHashNode
+PUBLIC d1ae 0 GetCPHashNode
+PUBLIC 150c2 0 GetLocHashNode
+PUBLIC 7cf85 8 CreateAndCopyLanguageExceptions
+PUBLIC 7d1b9 4 GetLinguisticLanguageInfo
+PUBLIC 18297 10 GetLanguageFileInfo
+PUBLIC 7d246 0 GetLangHashNode
+PUBLIC 7d340 c UpdateJamoState
+PUBLIC 7d3aa 14 GetJamoComposition
+PUBLIC 7d4ae 18 MapOldHangulSortKey
+PUBLIC 17210 0 NlsIsInteractiveUserProcess
+PUBLIC 7d5b4 0 NlsCheckForInteractiveUser
+PUBLIC 2a25d 4 NlsGetCacheBuffer
+PUBLIC 2a41a 0 NlsInvalidateCache
+PUBLIC 7d659 4 NlsFlushProcessCache
+PUBLIC 2a855 10 NlsQueryCurrentUserInfo
+PUBLIC 11fff 18 NlsGetCurrentUserNlsInfo
+PUBLIC 2a532 4 NlsGetUserLocale
+PUBLIC 7d6b7 c CsrBasepNlsSetUserInfo
+PUBLIC 16ff1 8 CsrBasepNlsGetUserInfo
+PUBLIC 7d765 1c CsrBasepNlsSetMultipleUserInfo
+PUBLIC 7d9c9 0 CsrBasepNlsUpdateCacheCount
+PUBLIC 7da0e c UTFCPInfo
+PUBLIC 7da7f 10 UTF7ToUnicode
+PUBLIC 31054 14 UTF8ToUnicode
+PUBLIC 7dc45 10 UnicodeToUTF7
+PUBLIC 21523 10 UnicodeToUTF8
+PUBLIC 30f99 18 UTFToUnicode
+PUBLIC 215f5 20 UnicodeToUTF
+PUBLIC 2ad39 c CsrBasepNlsCreateSection
+PUBLIC 7dead 8 DelayLoadFailureHook
+PUBLIC 7debd 4 FindDll
+PUBLIC 7dfad 8 LookupHandlerByName
+PUBLIC 7e036 8 LookupHandlerByOrdinal
+PUBLIC 7e07f 8 LookupHandler
+PUBLIC 7e0cb 14 GetSSIDForAdapter
+PUBLIC 7e0ef 18 GetSignalStrengthForAdapter
+PUBLIC ddf5 0 GetCurrentProcess
+PUBLIC 7e27b 4 ntohs
+PUBLIC 7e299 c WSAEnumProtocolsW
+PUBLIC 7e2bd 24 WSAIoctl
+PUBLIC 7e313 4 GetActivePwrScheme
+PUBLIC 7e34b 28 WinStationSendMessageW
+PUBLIC 7e362 8 ReadPwrScheme
+PUBLIC 7e39e 18 SdbQueryData
+PUBLIC 14ae7 4 FreeEnvironmentStringsW
+PUBLIC 7e3a9 c mixerGetID
+PUBLIC 7e536 18 SetupDiGetDeviceInterfaceDetailA
+PUBLIC cc97 4 LockResource
+PUBLIC 7e848 8 DnsRecordCompare
+PUBLIC 7e878 10 DnsRecordSetCompare
+PUBLIC 260c2 4 DnsApiAlloc
+PUBLIC 7e8b2 c DnsRecordSetCopyEx
+PUBLIC 7e98d 4 DnsApiFree
+PUBLIC 7e9e7 0 LZStart
+PUBLIC 7ea57 c SfpInstallCatalog
+PUBLIC 7ea62 8 SfpDeleteCatalog
+PUBLIC 7eb14 10 pSetupConcatenatePaths
+PUBLIC 7eb60 c SetActivePwrScheme
+PUBLIC 7ec59 0 IsPwrShutdownAllowed
+PUBLIC 7ece6 10 UrlMkSetSessionOption
+PUBLIC 7f052 0 ldap_search_init_pageW
+PUBLIC 7f078 8 DnsFreeConfigStructure
+PUBLIC 7f0c5 c DnsSetConfigDword
+PUBLIC 7f1f1 10 WZCProviderDeleteWirelessProfile
+PUBLIC 7f1fe 0 LZDone
+PUBLIC 7f215 8 SetConsoleMaximumWindowSize
+PUBLIC 7f23b 1c MprAdminConnectionEnum
+PUBLIC 7f251 8 NPCancelConnectionForCSCAgent
+PUBLIC 7f6a5 5c LocalEnrollNoDS
+PUBLIC 328ec 0 memmove
+PUBLIC 2cf55 c RtlDnsHostNameToComputerName
+PUBLIC 11fc7 0 wcsncpy
+PUBLIC 7f853 0 wcschr
+PUBLIC 29f14 0 wcsstr
+PUBLIC a0c9 0 _allmul
+PUBLIC 7f85e 0 DbgBreakPoint
+PUBLIC 7f869 0 DbgPrint
+PUBLIC 24c6 0 _SEH_prolog
+PUBLIC 2501 0 _SEH_epilog
+PUBLIC 39aa8 0 _except_handler3
+PUBLIC 39b8e 4 _seh_longjmp_unwind
+PUBLIC 7f874 4 DbgUiDebugActiveProcess
+PUBLIC 7f87f 0 DbgUiConnectToDbg
+PUBLIC 7f88a 4 DbgUiIssueRemoteBreakin
+PUBLIC 7f895 14 NtSetInformationDebugObject
+PUBLIC 7f8a0 0 DbgUiGetThreadDebugObject
+PUBLIC 7f8ab 8 DbgUiConvertStateChangeStructure
+PUBLIC 7f8b6 8 DbgUiWaitStateChange
+PUBLIC 7f8c1 8 DbgUiContinue
+PUBLIC 7f8cc 4 DbgUiStopDebugging
+PUBLIC 7f8d7 0 strncpy
+PUBLIC 7f8e2 8 RtlFlushSecureMemoryCache
+PUBLIC de84 0 _global_unwind2
+PUBLIC dedf 0 _local_unwind2
+PUBLIC df3f 0 _NLG_Return2
+PUBLIC df4f 0 _abnormal_termination
+PUBLIC df72 0 _NLG_Notify1
+PUBLIC df7b 0 _NLG_Notify
+PUBLIC df91 0 _NLG_Dispatch2
+PUBLIC 7f8ed 18 NtQueryVirtualMemory
+PUBLIC 18045 4 LdrSetDllManifestProber
+PUBLIC 18050 8 RtlSetThreadPoolStartFunc
+PUBLIC 1017b 4 RtlEncodePointer
+PUBLIC 39493 10 RtlSetHeapInformation
+PUBLIC 7f8f8 14 RtlQueryHeapInformation
+PUBLIC abd3 4 LdrUnloadDll
+PUBLIC 14e44 4 LdrUnloadAlternateResourceModule
+PUBLIC 112bb 4 LdrDisableThreadCalloutsForDll
+PUBLIC e46c 10 LdrGetDllHandle
+PUBLIC b4c4 8 LdrUnlockLoaderLock
+PUBLIC 2129a 8 LdrAddRefDll
+PUBLIC b3ca c LdrLockLoaderLock
+PUBLIC 17779 c LdrEnumerateLoadedModules
+PUBLIC 14e0f 8 LdrLoadAlternateResourceModule
+PUBLIC e069 10 LdrLoadDll
+PUBLIC ad95 10 LdrGetProcedureAddress
+PUBLIC 9f9f 10 LdrFindResource_U
+PUBLIC 9faa 10 LdrAccessResource
+PUBLIC 1126d 10 LdrFindResourceDirectory_U
+PUBLIC 1cdf8 0 LdrShutdownProcess
+PUBLIC 7f903 8 NtTerminateProcess
+PUBLIC 1a204 18 LdrQueryImageFileExecutionOptions
+PUBLIC 7f90e 0 wcsncmp
+PUBLIC c0d1 0 LdrShutdownThread
+PUBLIC 10186 4 RtlDecodePointer
+PUBLIC 2c053 c RtlSetIoCompletionCallback
+PUBLIC 7f919 28 RtlApplicationVerifierStop
+PUBLIC 7f924 0 _alloca_probe
+PUBLIC 19a62 0 DbgPrintEx
+PUBLIC 15451 4 LdrDestroyOutOfProcessImage
+PUBLIC 162a8 14 LdrAccessOutOfProcessResource
+PUBLIC 15446 14 LdrFindCreateProcessManifest
+PUBLIC 15345 10 LdrCreateOutOfProcessImage
+PUBLIC 16912 0 _allshl
+PUBLIC 7f92f 4 RtlUnhandledExceptionFilter
+PUBLIC 7f93a 0 wcspbrk
+PUBLIC 7f945 0 _wcslwr
+PUBLIC 37a6c 0 _wtol
+PUBLIC 7f950 0 _strlwr
+PUBLIC 7f95b 0 _ValidateEH3RN
+PUBLIC 7fb82 10 RtlUnwind
+PUBLIC 7fb8d c InitGlobalBuffers
+PUBLIC 7fc40 0 InitGlobalBuffersEx
+PUBLIC 7fc57 4 FreeGlobalBuffers
+PUBLIC 7fca5 c lz_CopyFile
+PUBLIC 7fd63 c ExpandOrCopyFile
+PUBLIC 7fe21 4 ExtractFileNameW
+PUBLIC 7fe56 4 ExtractFileName
+PUBLIC 7fea2 4 ExtractExtensionW
+PUBLIC 7fed7 4 ExtractExtension
+PUBLIC 7ff1d 4 MakeCompressedNameW
+PUBLIC 7ff89 4 MakeCompressedName
+PUBLIC 7fff3 8 MakeExpandedName
+PUBLIC 800fc 8 CopyDateTimeStamp
+PUBLIC 80146 c GetHdr
+PUBLIC 801f9 4 IsCompressed
+PUBLIC 80246 18 LZDecode
+PUBLIC 804ad c ReadInBuf
+PUBLIC 80527 c WriteOutBuf
+PUBLIC 80579 4 LZIsCharLowerA
+PUBLIC 805dc 4 LZIsCharUpperA
+PUBLIC 8063f 4 LZCharNextA
+STACK WIN 4 b5ae 16 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9b47 66 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17826 35 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 55709 1f7 c 0 10 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 558b4 e 0 0 10 8 4c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 be41 c7 c 0 4 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39bc8 e 0 0 4 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 98f4 2b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 936b 1e 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9371 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92b0 32 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92b6 28 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92b7 26 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30769 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b722 20 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 29d7a 164 a 0 18 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 29d83 157 1 0 18 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 29d84 155 0 0 18 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 29dc5 8e 0 0 18 c 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1b069 a1 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b078 90 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b079 82 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17860 24 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 29f30 6f 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 29f36 65 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1dc03 54 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f39 52 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f3f 48 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17889 5c 1d 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1789f 42 7 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 178a6 38 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17923 98 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1792a 8f 0 0 0 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 180a6 23c 9 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 180af 231 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 180c5 21a 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1795e 89 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17961 85 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1798a 5a 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 179ea 212 8 0 0 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17a3c 1bd 0 0 0 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17a49 1af 0 0 0 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16e70 85 8 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18a21 a1 e 0 0 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18a2f 91 0 0 0 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18a68 57 0 0 0 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17cb5 257 8 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17e09 89 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1839b d3 1b 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 183b2 b8 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 183b6 b3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 998d 16b c 0 8 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39e42 e 0 0 8 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 992f 10b c 0 4 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39ea2 e 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39eca e 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1625 129 c 0 20 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1717 4 0 0 20 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32eb1 ba c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39f0b e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32e1d bb c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39f69 e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a03b 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a017 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55921 e8 8 0 4 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5595c a5 0 0 4 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5595d a3 0 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a35e b91 19 0 18 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a36a b81 d 0 18 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 132 - ^ =
+STACK WIN 4 a36b b7f c 0 18 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 132 - ^ =
+STACK WIN 4 a377 b72 0 0 18 c 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 132 - ^ =
+STACK WIN 4 55a0e e0 c 0 4 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55abf e 0 0 4 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55b09 8b c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55b65 e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30927 209 c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a7c5 e 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30bd3 142 c 0 c 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a824 e 0 0 c 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a86a 19 0 0 c 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33107 18f f 0 14 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33110 182 6 0 14 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 33116 17b 0 0 14 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 3312f 14d 0 0 14 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 ffb1 12d c 0 c 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a94d e 0 0 c 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a995 19 0 0 c 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 326c1 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ab78 ff c 0 4 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3a9c6 e 0 0 4 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 330e7 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a9cc 64 a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a9d2 5a 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a9d6 55 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 ba64 39 c 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3aa01 4 0 0 8 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bbce b2 c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3aa1d e 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e6dc 185 c 0 18 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e6e8 175 0 0 18 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 e701 13c 0 0 18 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 e73a ed 0 0 18 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 1021c 1ba 9 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10225 1ad 0 0 10 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1026f 15c 0 0 10 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30b7d 3b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c86d 29 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2c87c 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddfe d3 c 0 1c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3aad0 4 0 0 1c 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a996 65 a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a99c 5b 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a9a0 56 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 b64c 63 c 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3ab10 11 0 0 8 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2520 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1042c 301 17 0 1c 8 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3abe7 7a 0 0 1c 8 420 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 98eb 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2ff92 18 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103a3 9e 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55bbc 2d 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55bee 31 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55c24 2e 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55c2c 22 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55c57 27 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55c83 4c b 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55c89 42 5 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 55c8d 3d 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 55c8e 3b 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 55cd4 119 15 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55cdc 10d d 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 55cdd 10b c 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 55ce9 fe 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 55df2 bd 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55df8 b3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55e53 15 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55eb4 36 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55eef 15b 12 0 18 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55efb 14b 6 0 18 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 55f01 144 0 0 18 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5604f a4 18 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5605a 95 d 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5605e 90 9 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56067 86 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 560f8 d7 9 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56100 cb 1 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56101 c9 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5618d 3c 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 561d4 a5 16 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 561dd 98 d 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 561de 94 c 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 561ea 87 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5627e fe 16 0 c 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56287 f1 d 0 c 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56288 ef c 0 c 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56294 e2 0 0 c c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56381 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 563b1 20 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 563d6 60 10 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 563df 53 7 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 563e6 4b 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 56407 24 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5643b 1f 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56441 15 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5645f 54 a 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56465 4a 4 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 56469 45 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 56471 3c 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 564b8 5c 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 564be 52 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 564cf 16 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56519 180 e 0 c 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56522 173 5 0 c 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56523 171 4 0 c 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56527 16c 0 0 c c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 5669e c8 9 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 566a6 bc 1 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 566a7 ba 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5676b 27b 15 0 c 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56774 26e c 0 c 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 5677f 262 1 0 c 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 56780 260 0 0 c c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 569ec e9 15 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 569f4 dd d 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 569f5 db c 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56a01 ce 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56ada b5 15 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56ae2 a9 d 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56ae3 a7 c 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56aef 9a 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 56b94 12e 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56b9c 122 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56bba 102 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56cc7 113 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56cdf f6 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56cea ea 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56ddf 22e 19 0 1c 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 56df1 2a 7 0 1c 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 56df2 28 6 0 1c 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 56df8 21 0 0 1c c 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 57012 8d 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57018 83 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5704b 45 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5704f 40 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 570a4 46 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 570ac 16 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 570ef 5b 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 570f7 16 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57112 2c 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5714f 75 e 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5715d 5e 0 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57177 35 0 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 571c9 e0 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 571cf d6 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 571d3 d1 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 572ae 14b 9 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 572b7 13e 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 572df 115 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 573fe 1f4 1c 0 1c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5740d 1b2 d 0 1c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 57411 1ad 9 0 1c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5741a 1a3 0 0 1c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 37bfc 52 13 0 0 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37a77 1c7 13 0 8 0 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37a80 1ba a 0 8 4 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37a8a 1af 0 0 8 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 575f7 69 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 575fd 5f 5 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 575fe 5d 4 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57602 58 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57665 70 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5766b 66 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 576a6 2a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 576da 5c c 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 576e1 51 5 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 576e2 4f 4 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 576e6 4a 0 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 5773b 82 15 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57748 71 8 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 57749 6f 7 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 57750 67 0 0 c c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 577c2 a4 e 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 577cb 97 5 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 577cc 95 4 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 577d0 90 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5786b 4b 11 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57871 41 b 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57878 37 4 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5787c 32 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 202af 1e8 22 0 10 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 202c3 1cb e 0 10 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 202c4 1c9 d 0 10 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 202d1 1bb 0 0 10 c c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 578bb 9d 10 0 c 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 578c4 90 7 0 c 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 578cb 88 0 0 c 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5795d 95 a 0 10 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57966 88 1 0 10 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57967 86 0 0 10 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 579f7 ac 9 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 579fe a1 2 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 579ff 9d 1 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 57a00 9b 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 57aa8 101 9 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57ab0 f5 1 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57ab1 f3 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57ae7 93 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57bae e4 a 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57bb7 d7 1 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 57bb8 d5 0 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 57be2 a8 0 0 c c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 57c97 38 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57cd4 b4 9 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57cdd 54 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57d07 29 0 0 4 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57da5 80 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57dab 76 5 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57daf 71 1 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57db0 6f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 57e41 3f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57e85 2c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57eb6 9e a 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57ebe 92 2 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57ebf 8e 1 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57ec0 8c 0 0 4 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 57f59 2c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57f8a 4e a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57f90 44 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57f94 3f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57fdd a7 7 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 57fe4 9c 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 57ff3 8c 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 57ff4 8a 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 31893 136 22 0 10 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 318a7 119 e 0 10 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 318ab 114 a 0 10 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 318b5 109 0 0 10 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 316c7 20b 13 0 8 0 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 316d8 139 2 0 8 4 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 68 - ^ =
+STACK WIN 4 316d9 137 1 0 8 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 68 - ^ =
+STACK WIN 4 316da 135 0 0 8 c 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 68 - ^ =
+STACK WIN 4 5808d 121 15 0 4 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5809a 110 8 0 4 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 580a1 108 1 0 4 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 580a2 106 0 0 4 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 201f1 25b a 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 201fb 22d 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2020a 210 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 20210 209 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 581b3 7c 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 581b9 72 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 581cc 5e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 216a4 105 a 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 216ad f8 1 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 216ae f6 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 21702 84 0 0 8 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 58234 6e 8 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5827c 17 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 582a7 a0 b 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 582ad 96 5 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 582ae 94 4 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 582b2 8f 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5834c 52 8 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58380 1a 0 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 583a3 17b 7 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 583aa 170 0 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 583d0 143 0 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58523 a7 b 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58529 9d 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5852a 9b 4 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5852e 96 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2ceb2 ae 1c 0 c 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cec0 97 e 0 c 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 2cec4 92 a 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 2cece 87 0 0 c c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 585cf 97 18 0 c 0 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 585dd 76 a 0 c 4 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 585e7 6b 0 0 c 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5866b 476 1c 0 10 0 68c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5867c 2f7 b 0 10 4 68c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1684 - ^ =
+STACK WIN 4 58680 2f2 7 0 10 8 68c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1684 - ^ =
+STACK WIN 4 58687 2ea 0 0 10 c 68c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1684 - ^ =
+STACK WIN 4 58bc3 76 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58be8 4d 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58c3e 26 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58c69 19c b 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58c72 18f 2 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 58c73 18d 1 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 58c74 18b 0 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 58e0a 117 a 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58e12 10b 2 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 58e13 109 1 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 58e14 107 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 58f26 44 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58f3c 2a 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58f6f dc 8 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 58f76 d1 1 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 58f77 cf 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 58f91 af 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 59050 44 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59066 2a 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59099 211 d 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 590a2 6d 4 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 590a6 68 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 592af 44 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 592c5 2a 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 592f8 b1 11 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 592fe a7 b 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 592ff a5 a 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 59309 9a 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 593ae b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b852 20 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b877 1a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30b14 3a 8 0 0 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f272 79 9 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f27a 6d 1 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f27b 6b 0 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 138fc 172 d 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13905 165 4 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13909 160 0 0 10 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34ffe 96 12 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35006 8a a 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 35010 7f 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 360dd 63 a 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 360e3 59 4 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 360e7 54 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 360f4 46 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 f2ee 40 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 176b 75 8 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17e5 24 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 593be 9b 40 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 593ed 68 11 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 593fe 53 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 929c f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e7ec 82 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10b1c 77 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e866 5d 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e88c 22 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35524 5d 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3554a 22 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3065d 96 8 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3214e 8e 8 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10ad9 3b 11 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10aea 26 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 350bf 166 15 0 4 0 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 350d0 14c 4 0 4 4 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 350d4 147 0 0 4 8 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5945e 121 2c 0 4 0 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5946f eb 1b 0 4 4 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5948a cf 0 0 4 8 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2d36f 46 8 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59584 38 b 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5958f 29 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e9c1 2e7 1d 0 c 0 188 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e9d2 29a c 0 c 4 188 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e9de 28d 0 0 c 8 188 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 595c1 278 15 0 c 0 180 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 595d2 25e 4 0 c 4 180 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 392 - ^ =
+STACK WIN 4 595d6 259 0 0 c 8 180 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 392 - ^ =
+STACK WIN 4 5961c 20f 0 0 c c 180 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 392 - ^ =
+STACK WIN 4 5983e 1ee 13 0 8 0 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59847 1d2 a 0 8 4 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 59848 1d0 9 0 8 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 59851 1c6 0 0 8 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 a7d4 b7 8 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a810 67 0 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a811 61 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59a31 e8 1b 0 4 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59a42 ce a 0 4 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 59a4b c4 1 0 4 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 59a4c c2 0 0 4 c c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 13093 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 59b1e 4f a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59b28 41 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59b72 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 59b7c 1ea 11 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59b8a 1c5 3 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 59b8d 1c1 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 59c2c fa 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 59d78 2ab 17 0 4 8 244 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59dd6 4 0 0 4 8 244 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 59f9f 14 0 0 4 8 244 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a0bd 61 8 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a0d4 46 0 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a123 4e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a13c 31 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a14b 21 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a176 22 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a19d 46 6 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a1e8 44 8 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a231 59 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a28f 57 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a2eb 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a31b 31 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a351 70 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a357 66 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a358 64 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a3c6 62 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a3cc 58 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a3cd 56 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a42d 4e 9 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a436 35 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a480 e0 9 0 8 0 68 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a489 42 0 0 8 4 68 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a565 3f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a56d 33 4 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a571 2e 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a5a9 44 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a5af 3a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a5be 1a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36f5b 460 9 0 4 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36f64 e3 0 0 4 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 36f9d 98 0 0 4 8 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 36f9e 96 0 0 4 c 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 323d2 146 a 0 8 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 323db 139 1 0 8 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 323dc 137 0 0 8 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a5f2 c22 1d 0 c 0 2c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5a60f bfc 0 0 c 4 2c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 716 - ^ =
+STACK WIN 4 5a689 b7e 0 0 c 8 2c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 716 - ^ =
+STACK WIN 4 5a690 b76 0 0 c c 2c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 716 - ^ =
+STACK WIN 4 5b219 1d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 217ac 20 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b23b 4b 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b243 3f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2af8f 2c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30cce 1c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 360a9 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 360c3 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30bbb 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b28b 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1006c 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34e97 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c3be 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 354ed 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30cfe 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32695 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b2ab 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f827 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f726 59 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f72c 4f 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f72d 4d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f763 59 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f769 4f 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f76a 4d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ee95 e2 7 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ee9b d8 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ee9c d6 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f88c 181 13 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f893 176 c 0 14 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 f897 171 8 0 14 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 f89f 168 0 0 14 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 f6da 63 b 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f6e5 54 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 f7a0 124 22 0 c 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f7b1 10a 11 0 c 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 f7b5 105 d 0 c 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 f7c2 f7 0 0 c c 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 1c858 6a 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c85b 66 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 331f9 23 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c8a6 35 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c8ac 27 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c8ad 25 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b2cb 85 1b 0 8 0 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b315 2f 0 0 8 4 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e361 460 b 0 4 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e36a 453 2 0 4 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1e36b 451 1 0 4 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1e36c 44f 0 0 4 c 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1e6e1 119 d 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e6ed 109 1 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1e6ee 107 0 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1e708 8c 0 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 35889 29 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e891 362 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e8a8 100 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e8b6 f1 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f18a 112 10 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f193 105 7 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f19a fd 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b355 db 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b36b c1 0 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b36c bf 0 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3331f 98 a 0 0 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33328 8d 1 0 0 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33329 8b 0 0 0 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f460 3a2 12 0 28 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f46c 392 6 0 28 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 f46d 390 5 0 28 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 f472 38a 0 0 28 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 f928 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f851 47 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c8db 3b1 28 0 14 0 84 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c8fb 388 8 0 14 4 84 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 140 - ^ =
+STACK WIN 4 1c8fc 386 7 0 14 8 84 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 140 - ^ =
+STACK WIN 4 1c903 37e 0 0 14 c 84 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 140 - ^ =
+STACK WIN 4 5b435 158 1f 0 4 0 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b446 44 e 0 4 4 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 5b44a 3f a 0 4 8 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 5b454 34 0 0 4 c 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 1b42d 157 1f 0 8 0 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b43e 46 e 0 8 4 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 1b442 41 a 0 8 8 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 1b44c 36 0 0 8 c 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 548 - ^ =
+STACK WIN 4 1cac2 217 1e 0 10 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1cad0 200 10 0 10 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 1cad4 1fb c 0 10 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 1cae0 1ee 0 0 10 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 5b592 185 1f 0 8 0 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b5a3 5e e 0 8 4 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 5b5a7 59 a 0 8 8 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 5b5b1 4e 0 0 8 c 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 2bb93 14d 1e 0 10 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bba1 136 10 0 10 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 2bba5 131 c 0 10 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 2bbb1 124 0 0 10 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 32dd3 40 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32dd9 36 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e793 fa e 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e79c ed 5 0 4 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1e79d eb 4 0 4 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1e7a1 e6 0 0 4 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1e9c5 fa e 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e9ce ed 5 0 4 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1e9cf eb 4 0 4 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1e9d3 e6 0 0 4 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 5b71c 107 10 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b72b f4 1 0 10 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b72c f1 0 0 10 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2dc81 13a 16 0 8 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2dc92 120 5 0 8 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 2dc96 11b 1 0 8 8 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 2dc97 119 0 0 8 c 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 2dc43 3de c 0 8 8 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3bde2 e 0 0 8 8 5c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 358ed 48 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 358f3 3e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ea7d 155 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ea83 14b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ecd2 12f 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ecd8 125 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ecea 112 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b828 24f b 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5b831 242 2 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5b832 240 1 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5b833 23e 0 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1f021 325 e 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f02a 318 5 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1f02b 316 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1f02f 311 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c7f4 af c 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c7fa a5 6 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c800 9e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e291 166 c 0 4 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3c06f 15 0 0 4 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f331 225 26 0 20 0 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f34c 201 b 0 20 4 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 f34d 1ff a 0 20 8 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 f357 1f4 0 0 20 c cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 32b56 f5 f 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32b5c eb 9 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32b60 e6 5 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32b65 e0 0 0 18 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 35d54 4b 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35f21 7d b 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35f27 73 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 35f28 71 4 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 35f2c 6c 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5ba7c 42 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f95d d2 d 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f963 c8 7 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 f969 c1 1 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 f96a bd 0 0 18 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1ee4c 4b 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1edbd 81 b 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1edc3 77 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1edc4 75 4 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1edc8 70 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5bac3 42 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32da7 1c 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bb0a 1c 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bb2b 164 37 0 14 0 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bb62 124 0 0 14 4 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 292 - ^ =
+STACK WIN 4 5bb76 10c 0 0 14 8 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 292 - ^ =
+STACK WIN 4 5bb77 10a 0 0 14 c 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 292 - ^ =
+STACK WIN 4 5bc95 185 2d 0 14 0 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bcb5 15c d 0 14 4 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 5bcc2 14e 0 0 14 8 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 5bcef 11d 0 0 14 c 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 5be23 13d 18 0 14 0 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5be3a 11d 1 0 14 4 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5be3b 11b 0 0 14 8 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bf65 14f 18 0 14 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bf7c 12f 1 0 14 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5bf7d 12d 0 0 14 8 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21495 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c0b9 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c0d7 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c0f5 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 213f8 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 332b1 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c110 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c12e 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36434 83 2f 0 10 0 108 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32730 ce 2f 0 10 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3277e 67 0 0 10 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 364a9 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f89a 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21f1e 2b9 39 0 c 0 f4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21f3c 292 1b 0 c 4 f4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 252 - ^ =
+STACK WIN 4 21f50 27d 7 0 c 8 f4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 252 - ^ =
+STACK WIN 4 21f57 275 0 0 c c f4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 252 - ^ =
+STACK WIN 4 5c149 100 c 0 8 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c223 1e 0 0 8 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c269 57 d 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c26f 4d 7 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c275 46 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c276 44 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 21d8d 5b9 f 0 c 8 98 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3c77a 2c 0 0 c 8 98 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c2c5 a2 11 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c2ce 95 8 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5c2cf 93 7 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5c2d6 8b 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5c36c fb d 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c379 ea 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c3ce 93 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31385 8e 9 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3138e 81 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 126f2 30 6 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 126f8 26 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a71d 74 8 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 315c4 67 6 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 315ca 5d 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ac4d 37 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ac0f 3e 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ac16 33 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ef3a 1bb c 0 8 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f049 e 0 0 8 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 edd7 db c 0 4 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3c85e e 0 0 4 8 34 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c46c 3a 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c475 2d 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34bef ec 9 0 c 0 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34bf8 df 0 0 c 4 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34c1f ac 0 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32113 3a 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32119 30 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3162f 107 15 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31638 fa c 0 20 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 31639 f8 b 0 20 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 31644 ec 0 0 20 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 ee81 6d 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ee87 63 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ee88 5f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34eb1 10a 12 0 8 0 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34ec2 f0 1 0 8 4 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 34ec3 ee 0 0 8 8 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 34eea c0 0 0 8 c 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 ea7d 4d7 1d 0 18 0 2cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ea92 4b9 8 0 18 4 2cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 724 - ^ =
+STACK WIN 4 ea99 4b1 1 0 18 8 2cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 724 - ^ =
+STACK WIN 4 ea9a 4af 0 0 18 c 2cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 724 - ^ =
+STACK WIN 4 5c4ab 62 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c4b3 56 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 137d9 139 18 0 8 0 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 137ea 11f 7 0 8 4 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 137f1 117 0 0 8 8 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 eee1 1a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c512 137 1c 0 18 0 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c523 11d b 0 18 4 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 5c524 11b a 0 18 8 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 5c52e 110 0 0 18 c 268 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 624 - ^ =
+STACK WIN 4 180e 1cd c 0 14 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18ef e 0 0 14 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1921 4 0 0 14 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10d87 140 c 0 14 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3cac5 4 0 0 14 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32044 98 9 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3204d 8b 0 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3207f 4f 0 0 4 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10b8e 122 8 0 10 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10bae ef 0 0 10 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10baf ed 0 0 10 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21057 e3 9 0 14 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21060 d6 0 0 14 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10c6d 11d 22 0 8 0 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10c7e 103 11 0 8 4 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 10c8f f1 0 0 8 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 10c99 d6 0 0 8 c c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 31c45 7c 8 0 10 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31cb8 88 8 0 10 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31cd2 10 0 0 10 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12641 6d 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32361 8a 8 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3237e 5f 0 0 14 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f569 aa 8 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f5ad 41 0 0 18 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 322fb 6f 8 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10a09 40 8 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c64e 96 c 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c6de b 0 0 c 8 34 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bd84 33 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bd8a 29 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bcfb 9b 13 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bd0d 85 1 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2bd0e 83 0 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 5c701 9b 13 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c713 85 1 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 5c714 83 0 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 300da 29 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2de51 9c c 0 14 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2dda5 99 c 0 14 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c7a1 51 7 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c7f7 c8 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c82d 8d 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c82e 8b 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c8c4 20 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10e51 de 9 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10e5a d1 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 322bc 67 12 0 14 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 322ce 51 0 0 14 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10a77 3d 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bada c8 9 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bae3 bb 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bb47 3c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b896 86 7 0 18 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35971 44 8 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b974 50 d 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b97a 46 7 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b981 3e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 938e 153 d 0 18 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 939a 143 1 0 18 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 939b 141 0 0 18 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 9402 1d 0 0 18 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 bb76 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bb82 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b905 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 945c 73 8 0 18 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9464 67 0 0 18 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 110f5 f3 e 0 c 0 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11102 e2 1 0 c 4 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11103 e0 0 0 c 8 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31f31 25a 9 0 4 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31f3a 11e 0 0 4 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 31f73 d3 0 0 4 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 31f7a cb 0 0 4 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 5c8e9 61 11 0 34 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5c8ef 57 b 0 34 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c8f3 52 7 0 34 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c8fa 4a 0 0 34 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c94f 258 17 0 10 8 1b8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5cbad 1 0 0 10 8 1b8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5cbc1 2a4 22 0 10 0 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5cbd2 28a 11 0 10 4 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 5cbd6 285 d 0 10 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 5cbe3 277 0 0 10 c c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 200 - ^ =
+STACK WIN 4 5cf6b 163 c 0 20 8 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d0d4 1 0 0 20 8 40 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d0e9 267 f 0 c 8 d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d2ff 39 0 0 c 8 d8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d371 123 11 0 8 0 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d382 109 0 0 8 4 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d3bb cb 0 0 8 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 314d5 151 9 0 8 0 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 314de d0 0 0 8 4 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 108 - ^ =
+STACK WIN 4 31513 89 0 0 8 8 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 108 - ^ =
+STACK WIN 4 3151a 81 0 0 8 c 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 108 - ^ =
+STACK WIN 4 b74c ba 9 0 4 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b755 ad 0 0 4 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b77c 79 0 0 4 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 137b1 23 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31eab 1d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f72e 537 f 0 14 8 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f951 3c 0 0 14 8 ac 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d499 25 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12782 20 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1153c 22 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35eae 72 8 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35ee1 2d 0 0 14 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35ee2 2b 0 0 14 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21261 1a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3565b 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35e8f 1a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d4c3 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21950 36 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d4e3 33 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10978 109 c 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3d377 4 0 0 8 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d539 44d f 0 20 8 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d93e 4d 0 0 20 8 b0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 284bd 53 8 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 284c5 33 0 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d9a1 3a 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d9a7 30 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d9b9 14 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2879d 55 d 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 287aa 44 0 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5d9e0 4b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5da30 85 17 0 0 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5da4a 5c 0 0 0 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10760 424 8 0 1c 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10788 3c2 0 0 1c 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1078c 3bd 0 0 1c 8 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3719a 9f 10 0 20 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 371a5 7a 5 0 20 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 371a6 78 4 0 20 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 371aa 73 0 0 20 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5dadd 73 8 0 8 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5db0a 42 0 0 8 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5db13 23 0 0 8 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5db55 bc a 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5db5d b0 2 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5db5e ae 1 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5db5f ac 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5dc16 23e c 0 24 8 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5de3f 1a 0 0 24 8 60 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5de71 198 c 0 1c 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e00f 1 0 0 1c 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 285c6 2c4 c 0 38 8 8c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3d7a4 10 0 0 38 8 8c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a24 34 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21982 446 17 0 c 8 114 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3d9cf 10 0 0 c 8 114 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e021 292 9 0 28 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e02a 266 0 0 28 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e089 1f5 0 0 28 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 27bdb 1c8d 17 0 38 8 6bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3e895 11 0 0 38 8 6bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3eadf ab 0 0 38 8 6bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36c3c f7e 17 0 18 8 3fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3f743 134 0 0 18 8 3fc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 27613 d49 17 0 24 8 3c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3ffbd 3e 0 0 24 8 3c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 27b32 6d c 0 18 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 27b99 1d 0 0 18 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2005f 89 c 0 18 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 200d1 1d 0 0 18 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e307 b8 a 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e310 ab 1 0 18 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 5e311 a9 0 0 18 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 5e34f 5f 0 0 18 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 286ee 57 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 286f6 4b 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f873 22 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e3c4 54 8 0 18 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e3cc 48 0 0 18 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e41d 8a 1a 0 10 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e433 6b 4 0 10 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 5e437 66 0 0 10 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 5e446 25 0 0 10 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 5e4ac 83 1a 0 10 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e4c2 64 4 0 10 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 5e4c6 5f 0 0 10 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 5e4d5 25 0 0 10 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 5e534 8e 10 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e53d 81 7 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e544 79 0 0 10 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e5c7 8e 10 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e5d0 81 7 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e5d7 79 0 0 10 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e65a 11 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 fd2d 17d c 0 8 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40019 e 0 0 8 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 123b9 319 c 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 401f7 e 0 0 c 8 34 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ff19 d2 c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40258 e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34cb9 8b c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4029c e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 fe82 b1 c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 402de e 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34da1 f6 c 0 4 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40327 e 0 0 4 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36772 e9 c 0 4 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 403bd e 0 0 4 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 fc2f 11b c 0 4 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40414 e 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4043c e 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e670 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e686 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e6a0 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e6ba b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e6ca b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 310f2 1c6 e 0 4 0 18c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 310fe 1b6 2 0 4 4 18c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 404 - ^ =
+STACK WIN 4 310ff 1b4 1 0 4 8 18c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 404 - ^ =
+STACK WIN 4 31100 1b2 0 0 4 c 18c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 404 - ^ =
+STACK WIN 4 9a72 7d c 0 14 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 404b7 e 0 0 14 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9b02 82 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9b18 5e 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9b1f 56 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a5d 6e d 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a63 64 7 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a6a 5c 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b9a0 32 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b13f 33 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b148 26 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e6da 33 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e6e3 26 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 355bc 2b 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 355c2 21 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e712 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e740 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e76e 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e79c 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f992 16f c 0 4 0 184 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f99e 15f 0 0 4 4 184 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f9ac 141 0 0 4 8 184 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e7ca 34 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e803 28 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9a51 1c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9ae4 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ad0 1c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b9d1 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e18c aa 7 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e193 9f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bdb5 8b 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1d07e 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 365f6 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 3594f 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17443 11 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 934b d6 e 0 0 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9359 c6 0 0 0 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 177c7 96 0 0 0 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b5c3 409 19 0 c 0 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b5d7 3ec 5 0 c 4 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 b5d8 3ea 4 0 c 8 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 b5dc 3e5 0 0 c c 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 5e830 4d 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e836 43 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 365a5 2e 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 353ce 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38ae7 3d 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34e64 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35406 36 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30d74 8b b 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30d7a 81 5 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 30d7e 7c 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 30d7f 7a 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 baa1 6c a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 baa7 62 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 baab 5d 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 be01 3e c 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 407a9 4 0 0 8 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10111 65 c 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 407c5 4 0 0 c 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34d41 5a c 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 407e1 4 0 0 8 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bdb6 3e c 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 407fd 4 0 0 4 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b9ef 6c c 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40817 4 0 0 c 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10f32 39 c 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40833 4 0 0 8 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9a09 3b c 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4084f 4 0 0 4 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 325bc f6 c 0 4 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40892 e 0 0 4 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e882 11 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12bb6 69 1d 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12bd3 48 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10ef8 22 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e898 2c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e8c9 c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e8da c 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e8eb 57 9 0 c 0 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e8f4 4a 0 0 c 4 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e947 6f 6 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e94d 65 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e976 b 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e9bb 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 abc1 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e9db c 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3611e c 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5e9ec 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ea06 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ea20 100 9 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ea29 f3 0 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ea9d 74 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39469 2b 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5eb25 2e 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5eb58 97 8 0 14 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5eba8 43 0 0 14 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cdd8 5b 8 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ccdc 122 8 0 10 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cd12 dd 0 0 10 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cd13 db 0 0 10 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cc8b 66 8 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cc93 5a 0 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34932 a4 f 0 c 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3493b 97 6 0 c 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 34941 90 0 0 c 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 34976 5d 0 0 c c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5ebf4 55 a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ebfd 48 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ebfe 46 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ec4e 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34b69 1a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ec71 3a 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 349d8 29d c 0 20 8 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40a26 16 0 0 20 8 64 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f7a0 191 c 0 1c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f7ac 181 0 0 1c 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2f7b9 12c 0 0 1c 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2f7ca 118 0 0 1c c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 34b8f 25 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 abde 58 d 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 abe4 4e 7 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 abeb 46 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 c170 29 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11296 24 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1129c 1a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ecb0 91 8 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ecfc 41 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ed46 8c 8 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ed8d 41 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5edd7 6a 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5eddd 60 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5edde 5e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5ee15 1d 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 e477 a3 c 0 4 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40b63 e 0 0 4 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1fcff 64 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e4b9 26a 17 0 10 8 46c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40c62 17 0 0 10 8 46c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 111da 31 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ae65 4a c 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ae6b 21 6 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ae71 1a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1fb26 52 14 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ee46 98 16 0 10 0 120 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9f81 31 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5eee3 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5eef0 3b 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14c3c 1d2 1f 0 c 0 238 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14c50 1b5 b 0 c 4 238 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 576 - ^ =
+STACK WIN 4 14c5a 1aa 1 0 c 8 238 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 576 - ^ =
+STACK WIN 4 14c5b 1a8 0 0 c c 238 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 576 - ^ =
+STACK WIN 4 1af1 1fe c 0 c 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c8c e 0 0 c 8 44 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ef47 9a e 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ef53 8a 2 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5ef54 88 1 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 5ef55 86 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b3d5 146 c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40cf3 e 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40d2a e 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b4cf cc 9 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b4d8 bf 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b503 86 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e43d 34 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5efe6 51 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5efec 47 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1fcc1 39 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1fcc7 2f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ada0 76 9 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ada8 6a 1 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 ada9 68 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 12ade 106 1a 0 4 0 130 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12aef 27 9 0 4 4 130 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12af8 1d 0 0 4 8 130 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 be89 b2 c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40d78 e 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35f78 b6 c 0 10 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40da4 e 0 0 10 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9fb5 5f c 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40dd0 e 0 0 8 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bc69 5f c 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40e00 e 0 0 8 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f03c 1ce c 0 c 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f1bf e 0 0 c 8 50 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f229 203 c 0 10 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f3e0 e 0 0 10 8 54 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e000 136 c 0 14 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40e66 e 0 0 14 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ac88 b6 c 0 10 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40e92 e 0 0 10 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f449 1cb c 0 c 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f5c9 e 0 0 c 8 4c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f631 130 c 0 14 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f72a e 0 0 14 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ae4b 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1d4f 23 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b6a1 31 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1d77 9a b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1d81 8c 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1d82 8a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1dcf 3c 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 3145b 88 d 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31463 7c 5 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 31464 7a 4 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 31468 75 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1269f 52 8 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 126a7 46 0 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f781 db c 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f78d cb 0 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f7e8 64 0 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 313ec d5 e 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 313fa c3 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31439 78 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f88a 80 8 0 14 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f90f 13f c 0 18 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5f9fa 4 0 0 18 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fa2d 1e 0 0 18 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 312e5 119 c 0 1c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40faa 4 0 0 1c 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 40fe6 4 0 0 1c 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c664 30b 8 0 8 0 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c686 2db 0 0 8 4 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c6b1 2ad 0 0 8 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f0d4 295 12 0 20 0 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f0e0 285 6 0 20 4 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 100 - ^ =
+STACK WIN 4 2f0e5 27f 1 0 20 8 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 100 - ^ =
+STACK WIN 4 2f0e6 27d 0 0 20 c 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 100 - ^ =
+STACK WIN 4 5fa85 f5 11 0 1c 0 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fa8e e8 8 0 1c 4 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 5fa8f e6 7 0 1c 8 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 5fa96 de 0 0 1c c 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 5fb7f a1 c 0 1c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fc02 9 0 0 1c 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fc39 36 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fc51 1a 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fc74 72 8 0 20 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fc7c 66 0 0 20 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fceb de b 0 1c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fcf4 d1 2 0 1c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5fcf5 cf 1 0 1c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5fcf6 cd 0 0 1c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 5fdce 6e 8 0 1c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fdd6 62 0 0 1c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fe41 46 8 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fe8c 88 b 0 8 0 8c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5fed6 2f 0 0 8 4 8c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ff19 60 b 0 8 0 8c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ff7e 41 9 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ff87 25 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ffc4 41 9 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 5ffcd 25 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6000a 60 b 0 8 0 8c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6006f 5e 9 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6007b 4e 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6008a 3d 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 600d2 2f8 c 0 10 0 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 600db 2eb 3 0 10 4 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 600de 2e7 0 0 10 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 6013a 28a 0 0 10 c 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 f182 110 1b 0 8 0 654 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f193 f6 a 0 8 4 654 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f19d eb 0 0 8 8 654 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31db9 55 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31ddd 2a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ad29 4d 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ad46 2a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ad7b 24 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b2d0 3aa 18 0 4 0 480 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b2e1 37f 7 0 4 4 480 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1160 - ^ =
+STACK WIN 4 b2e7 378 1 0 4 8 480 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1160 - ^ =
+STACK WIN 4 b2e8 376 0 0 4 c 480 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1160 - ^ =
+STACK WIN 4 112d5 1d5 c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11419 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 359b7 29d 26 0 10 0 ec 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 359cf 27c e 0 10 4 ec 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 244 - ^ =
+STACK WIN 4 359dc 26e 1 0 10 8 ec 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 244 - ^ =
+STACK WIN 4 359dd 26c 0 0 10 c ec 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 244 - ^ =
+STACK WIN 4 301af 196 c 0 14 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 301bb 186 0 0 14 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 301e5 152 0 0 14 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 12803 1c9 c 0 10 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1280f 1b9 0 0 10 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 12839 185 0 0 10 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 1283d 180 0 0 10 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 84 - ^ =
+STACK WIN 4 f9e5 37d c 0 20 8 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4171b 4 0 0 20 8 6c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41748 48 0 0 20 8 6c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c2d3 8f e 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c2dc 7a 5 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2c2dd 78 4 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2c2e1 73 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 603cf bc 1c 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 603e3 91 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 603ea 89 1 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 603eb 87 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 60499 35e 17 0 8 8 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 607cb 30 0 0 8 8 274 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60811 e9 1c 0 14 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60822 cf b 0 14 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 60826 ca 7 0 14 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 6082d c2 0 0 14 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 14eea 6e 8 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 212f1 6e 8 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21363 24 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 214e3 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 217ea 213 a 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 217f3 206 1 0 18 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 217f4 204 0 0 18 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30789 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 608ff e9 9 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60908 dc 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 302ed 36 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3039b 33 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21ba5 1d5 c 0 20 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 418d1 3f 0 0 20 8 54 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 609ed 5f 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60a02 46 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60a51 55 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35dca 172 11 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35dd6 162 5 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 35ddb 15c 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 35e0c 11d 0 0 8 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 a427 40 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fa46 42 8 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fa4e 36 0 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e0c7 19e 31 0 10 0 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e0df 17d 19 0 10 4 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 1e0e9 172 f 0 10 8 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 1e0f8 162 0 0 10 c 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 35340 bd f 0 4 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3534e a6 1 0 4 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 3534f a4 0 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 35370 e 0 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 60aab 44 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 392b5 27 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60af4 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60b1c 3f 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60b60 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 60b6f 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60b97 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60bbf f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2f3a4 86 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f3aa 7c 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2f3ab 7a 1 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2f3ac 78 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1a1cf 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1500c 90 e 0 0 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1501a 7b 0 0 0 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ac85 28 0 0 0 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1930f 29e 1a 0 1c 0 248 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 19376 228 0 0 1c 4 248 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 19377 226 0 0 1c 8 248 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16f8e 11 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2dfa0 41 6 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60bd3 95 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60bd9 8b 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60bda 87 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 309e1 5f 12 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 309f3 3a 0 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1cd34 82 17 0 4 8 e0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41b32 7 0 0 4 8 e0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e16 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ae17 4a 9 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ae20 3d 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e50 97 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1eee 2bc c 0 4 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21af 7 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f1d 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 16f83 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1df77 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f08 10 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1cf5b b6 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1cf64 ab 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14af2 1d1 9 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14afb 1c4 0 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 14b23 192 0 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 14b42 177 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 33478 b4 10 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33481 a7 7 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33488 9f 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f0f4 a5 11 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f105 90 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 f132 59 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 101be 59 9 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 101c7 4c 0 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 329d9 159 15 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 329e2 14c c 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 329e3 14a b 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 329ee 13e 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 305f6 6d 9 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 305ff 48 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9920 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 60c75 30 8 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21cc 3c 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 220f 10c 16 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 221a fd b 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 221e f8 7 0 14 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2225 f0 0 0 14 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 60caa 49 8 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60cf8 49 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60d00 3d 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60d46 e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ae2a 1c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60d58 aa 9 0 10 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60d61 9d 0 0 10 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60dbf 29 0 0 10 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60e13 61 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9e01 6f c 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41c56 4 0 0 8 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3593f b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9e79 73 c 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41c70 4 0 0 8 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bf9d b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bccf 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32259 57 c 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41c8a 4 0 0 8 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a5dc 5d c 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41ca4 4 0 0 8 8 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c8ed 62 13 0 8 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60e79 6a 15 0 8 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60e8a 50 4 0 8 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60e8e 4b 0 0 8 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60ee8 35 6 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60f22 141 19 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 60f36 129 5 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 60f37 127 4 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 60f3b 122 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 352d9 68 8 0 14 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21765 48 8 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61068 43 9 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61071 36 0 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 303d0 72 f 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 303de 60 1 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 303df 5c 0 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 303e9 30 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 12c23 13f c 0 4 8 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 41dcc 10 0 0 4 8 60 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 610b0 2b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 610e0 36 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6111b 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61155 2c 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61186 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 611c0 45 8 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6120a 12b 9 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61212 11f 1 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61213 11d 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15199 40 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1519f 36 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 194dd 314 b 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 194e6 307 2 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 194e7 305 1 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 194e8 303 0 0 4 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 19805 8b9 26 0 18 0 1d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1981c 899 f 0 18 4 1d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 480 - ^ =
+STACK WIN 4 1981d 897 e 0 18 8 1d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 480 - ^ =
+STACK WIN 4 1982b 888 0 0 18 c 1d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 480 - ^ =
+STACK WIN 4 19513 218e 17 0 30 8 a18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 43025 4 0 0 30 8 a18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1e017 2eb 0 0 30 8 a18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2332 30 5 0 28 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12cb0 e7 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12cb6 dd 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12cba d8 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12d56 44 9 0 4 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12d5f 37 0 0 4 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37945 44 9 0 4 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3794e 37 0 0 4 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c338 91 c 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c341 84 3 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2c344 80 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2c373 33 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 61351 17 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ddd6 33f f 0 30 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 43374 14 0 0 30 8 a8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 434b2 17 0 0 30 8 a8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 434e5 60 0 0 30 8 a8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2367 30 5 0 28 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6136d ec b 0 8 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61376 df 2 0 8 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 61377 dd 1 0 8 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 61378 db 0 0 8 c 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 6147e 2fa f 0 8 8 b4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61723 e 0 0 8 8 b4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3965a 77 c 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39666 67 0 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 395d8 57 c 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 395e4 47 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c1e7 127 c 0 c 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 435d2 e 0 0 c 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f89 ac 9 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12f92 9f 0 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 12fa9 7d 0 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 12faa 7b 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 132ee 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 61799 148 c 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 617fd e 0 0 c 8 34 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92ea 6d c 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92f0 63 6 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 92f6 5c 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2470 32 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16fb4 4f c 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 436ca 11 0 0 4 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61901 2d 6 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e0df 33 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e0e5 29 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 176db 28 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61933 24 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6195c 24 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30445 1c1 e 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30450 1b2 3 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 30453 1ae 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 3047d 17d 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 3053e 73 10 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30544 69 a 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 30545 67 9 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 3054e 5d 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 e275 3c7 c 0 c 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 437f5 10 0 0 c 8 54 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 438be 4a 0 0 c 8 54 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 df9e f2 13 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 dfac db 5 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 dfb0 d6 1 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 dfb1 d4 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 31d8e f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e074 67 8 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e07c 5b 0 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 114f8 5c 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a2ce 6aa 17 0 34 8 2d0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a834 36 0 0 34 8 2d0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9ef1 1d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b829 28 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b82f 1e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13140 b3 9 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13149 a6 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c05e 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10086 a7 f 0 10 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1008f 9a 6 0 10 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10095 93 0 0 10 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e30f b3 9 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e318 a6 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bfad 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e8b7 a4 f 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e8c0 97 6 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e8c6 90 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e995 b3 9 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e99e a6 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 24a7 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2540 e6 c 0 c 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2610 b 0 0 c 8 44 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36696 e9 c 0 10 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 36759 b 0 0 10 8 44 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 952a 188 c 0 14 8 74 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 951a b 0 0 14 8 74 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 239c 98 c 0 8 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2432 b 0 0 8 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fb52 72 8 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61985 72 8 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 619fc 6b c 0 c 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61a61 b 0 0 c 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 95f9 93 f 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9600 88 8 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 9604 83 4 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 9608 7e 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2cc09 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a6a9 ae b 0 10 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a6b2 a1 2 0 10 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 a6b3 9f 1 0 10 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 a6b4 9d 0 0 10 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 1320c 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13218 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12e1d 6d 8 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12e25 61 0 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ca47 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ca53 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e93f 6a 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 e947 5e 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ea1b 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ea27 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a05d 1c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2442 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61a81 6a 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61a89 5e 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61af0 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61afc 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 308ad 6d 8 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 308b5 61 0 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33609 19f 16 0 1c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33614 190 b 0 1c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 33615 18e a 0 1c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 3361f 183 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 61b64 39 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61b6a 2f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1746c 23 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17499 ef 15 0 0 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 174a6 e0 8 0 0 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 174a7 de 7 0 0 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 174ae d6 0 0 0 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 f1fa 76 18 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17459 10e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 43ee5 e5 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1efce 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 61ba2 162 11 0 4 0 d4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61bb3 148 0 0 4 4 d4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 220 - ^ =
+STACK WIN 4 61bec 107 0 0 4 8 d4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 220 - ^ =
+STACK WIN 4 61bed 103 0 0 4 c d4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 220 - ^ =
+STACK WIN 4 61d3f 2b9 1f 0 c 0 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 61d53 29c b 0 c 4 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 628 - ^ =
+STACK WIN 4 61d5e 290 0 0 c 8 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 628 - ^ =
+STACK WIN 4 61dee 1c7 0 0 c c 26c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 628 - ^ =
+STACK WIN 4 61ffd 408 1a 0 c 0 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62017 3e5 0 0 c 4 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 620a4 353 0 0 c 8 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6240a 64 9 0 8 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62413 3d 0 0 8 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62473 42 8 0 4 0 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 624ba 2be 27 0 c 0 22c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 624d1 29e 10 0 c 4 22c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 564 - ^ =
+STACK WIN 4 624d4 29a d 0 c 8 22c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 564 - ^ =
+STACK WIN 4 624e1 28c 0 0 c c 22c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 564 - ^ =
+STACK WIN 4 17f41 141 13 0 8 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17f52 127 2 0 8 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 17f53 125 1 0 8 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 17f54 123 0 0 8 c 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 6277d 59 b 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62788 4a 0 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 627db 19f b 0 1c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 627e4 192 2 0 1c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 627e5 190 1 0 1c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 627e6 18e 0 0 1c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6297f 59 b 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6298a 4a 0 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ebb1 4ac 21 0 4 0 2c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ebc2 492 10 0 4 4 2c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 720 - ^ =
+STACK WIN 4 1ebc3 490 f 0 4 8 2c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 720 - ^ =
+STACK WIN 4 1ebd2 480 0 0 4 c 2c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 720 - ^ =
+STACK WIN 4 629dd 4e 9 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 629e6 41 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 629f4 30 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 629f5 2e 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 12980 8e c 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 129f9 b 0 0 c 8 34 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fc00 5f 12 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fc12 3a 0 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 c108 4b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a793 44 8 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62a30 36 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62a6b 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 c058 9f c 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 44733 c 0 0 4 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ce03 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21435 38 8 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9728 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 3970d 26 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62aa5 26 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39732 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 328f7 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12a09 58 16 0 10 0 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12a1f 3e 0 0 10 4 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12a4b 6 0 0 10 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62ad0 7a 9 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62ad9 6d 0 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62af6 4b 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4479d a2 15 0 4 0 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 447ae 88 4 0 4 4 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 447b2 81 0 0 4 8 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62b4f a8 c 0 4 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62be6 4 0 0 4 8 54 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62c19 7e e 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62c25 69 2 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 62c26 67 1 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 62c27 65 0 0 4 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 12d9f 10b c 0 0 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 448d9 a 0 0 0 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9740 4f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9bc5 a7 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9bcb 9d 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9bcc 9b 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 136d7 cc c 0 4 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13771 7 0 0 4 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62c9c 68 8 0 14 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62d09 3a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fa7a 53 9 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fa83 46 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c0e6 6f c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c151 14 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c082 71 c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c08e 1e 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62d48 2f 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62d4e 25 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ffcf b8 8 0 14 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ffe2 97 0 0 14 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fe84 73 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fe8b 68 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ff16 6f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fed7 40 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 32992 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 211cd 86 7 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 211d3 6d 1 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 211d4 6b 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b086 82 7 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b08d 68 0 0 14 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2bff8 39 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30062 42 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30a62 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c02c 28 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cba2 8e a 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cbaa 6e 2 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2cbab 6c 1 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2cbac 6a 0 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2bfd6 23 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2117d 56 9 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21186 49 0 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12723 43 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 21130 4d 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62d7c 42 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b26e 57 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62dc3 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62df0 3f 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62e34 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10637 22 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 c1e0 e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 62e62 97d 17 0 4 8 684 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63421 4 0 0 4 8 684 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6362b 4 0 0 4 8 684 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 636d3 4 0 0 4 8 684 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ffaf 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63999 a9 b 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 639a2 9c 2 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 639a3 9a 1 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 639a4 98 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 63a47 92 a 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63a50 85 1 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63a51 83 0 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63ade 115 c 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63ae5 10a 5 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 63ae6 108 4 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 63aea 103 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 63bf8 127 d 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63bfe 11d 7 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 63bff 11b 6 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 63c05 114 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 63d24 3b 6 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63d2a 31 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63d3d 1d 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63d64 b4 b 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63d6d a7 2 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 63d6e a5 1 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 63d6f a3 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 63e1d cd 11 0 8 0 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63e2e b3 0 0 8 4 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63eef 9c a 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63ef8 8f 1 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63ef9 8d 0 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63f90 cd 11 0 8 0 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 63fa1 b3 0 0 8 4 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64062 af b 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6406b a2 2 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6406c a0 1 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6406d 9e 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 64116 94 a 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6411f 87 1 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64120 85 0 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 641af b4 b 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 641b8 a7 2 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 641b9 a5 1 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 641ba a3 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 64268 df 15 0 8 0 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64279 c5 4 0 8 4 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6427d c0 0 0 8 8 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6434c 9c a 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64355 8f 1 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64356 8d 0 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 643ed d6 15 0 8 0 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 643fe bc 4 0 8 4 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64402 b7 0 0 8 8 42c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 644c8 195 c 0 14 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6452a e 0 0 14 8 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64679 19e e 0 18 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64685 18e 2 0 18 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 64686 18c 1 0 18 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 64687 18a 0 0 18 c 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 6481c 37 8 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64858 2c5 9 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64861 2b8 0 0 18 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6489e 24c 0 0 18 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64b47 83 9 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64b50 76 0 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64bcf a8 20 0 8 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64be7 87 8 0 8 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 64beb 82 4 0 8 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 64bef 7d 0 0 8 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 64c7c 112 17 0 8 0 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64c93 f2 0 0 8 4 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64cf5 8c 0 0 8 8 11c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64d93 6b d 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64da0 5a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64dc2 37 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64e03 22 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64e2a 156 11 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64e38 13f 3 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64e3b 13b 0 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64f85 c9 7 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 64f8b bf 1 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 64f8c bd 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 64fba 8e 0 0 14 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 65053 bc 11 0 c 0 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65064 a2 0 0 c 4 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 6508f 73 0 0 c 8 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 65090 71 0 0 c c 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 65114 92 17 0 c 0 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6512b 72 0 0 c 4 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 651ab 86 b 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 651b6 77 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 651f5 32 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65236 209 13 0 c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65248 1f3 1 0 c 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 65249 1f1 0 0 c 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 652a3 9b 0 0 c c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 65444 72 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6544a 68 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6547f 32 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 654bb 72 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 654c1 68 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 654f6 32 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65532 45 10 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6553b 38 7 0 18 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65542 2e 0 0 18 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6557c 146 a 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65585 139 1 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 65586 137 0 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 655ad 10f 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 656c7 c2 d 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 656d3 b2 1 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 656d4 b0 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6578e f7 11 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65799 c4 6 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6579e be 1 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6579f bc 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6588a 84 9 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65892 78 1 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65893 76 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 658aa 5e 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65913 84 9 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6591b 78 1 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6591c 76 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65933 5e 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6599c b3 15 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 659a5 a6 c 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 659b0 9a 1 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 659b1 98 0 0 8 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 65a54 2a9 d 0 8 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65a5d 29c 4 0 8 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65a61 297 0 0 8 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 22128 9e a 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 22131 91 1 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 22132 8f 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65d02 85 9 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65d0a 79 1 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65d0b 77 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65d22 5f 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 65d8c 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65da4 9a 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65dac 8e 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65dc4 74 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65e43 303 b 0 8 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 65e4c 2ec 2 0 8 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 65e4d 2ea 1 0 8 8 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 65e4e 2e8 0 0 8 c 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6614b a6 f 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66159 94 1 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 6615a 92 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 6618c 5f 0 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 661f6 85 9 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 661fe 79 1 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 661ff 77 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 66216 5f 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 66280 d4 10 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6628b c5 5 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66290 bf 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66359 6a 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6636c 53 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66370 4e 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 663c8 2ec f 0 8 8 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6665c 1c 0 0 8 8 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66682 b 0 0 8 8 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6677d ba c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66801 3b 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66871 bc c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66918 1a 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66949 ba c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 669cd 3b 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66a41 bc c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66ae8 1a 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66b19 ba c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66b9d 3b 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66c11 c3 c 0 c 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66cbf 1a 0 0 c 8 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66cf1 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66d09 19d b 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66d12 190 2 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 66d13 18e 1 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 66d14 18c 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 66eab 93 a 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 66eb3 87 2 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 66eb4 85 1 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 66eb5 83 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 66f43 71c 17 0 4 8 ec 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67093 11 0 0 4 8 ec 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 675f4 11 0 0 4 8 ec 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67695 7a 13 0 8 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67714 114 17 0 8 8 e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 677e9 11 0 0 8 8 e4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67849 145 17 0 8 8 e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67941 11 0 0 8 8 e4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f609 58 13 0 4 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 679a9 53 13 0 4 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67a01 44 7 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67a4a df 16 0 10 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67a5b c5 5 0 10 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 67a5c c3 4 0 10 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 67a60 be 0 0 10 c c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 28b87 ad 21 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 28b95 9b 13 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 28ba8 87 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ae5e 85 15 0 8 0 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ae6f 6b 4 0 8 4 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ae73 66 0 0 8 8 cc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67b2e 3d 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67b70 57 c 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67b77 4c 5 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 67b7b 47 1 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 67b7c 45 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1143f 60 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11445 56 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f5a6 197 11 0 8 0 128 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f5b7 179 0 0 8 4 128 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f5ca 15f 0 0 8 8 128 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 132f9 54 c 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13304 45 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13305 43 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67bcc 231 f 0 8 8 9c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67dd6 2c 0 0 8 8 9c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67e19 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67e35 17e c 0 14 0 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67e3e 171 3 0 14 4 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 67e41 16d 0 0 14 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1146a 90 a 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11470 86 4 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11474 81 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6802b 8e 9 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68034 81 0 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f26e 432 17 0 c 8 2b4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1f571 50 0 0 c 8 2b4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 680be 42e c 0 c 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68496 4a 0 0 c 8 50 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 13353 406 17 0 c 8 2ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1366c 45 0 0 c 8 2ac 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 28c38 1099 17 0 24 8 2e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 29b93 127 0 0 24 8 2e4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68509 78 6 0 24 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6850f 6c 0 0 24 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68538 3b 0 0 24 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35bb0 1fe 17 0 c 8 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 44db3 55 0 0 c 8 254 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68586 1fe 17 0 c 8 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68734 55 0 0 c 8 254 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 687a1 2ab 1c 0 14 0 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 687bd 286 0 0 14 4 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 288 - ^ =
+STACK WIN 4 68828 217 0 0 14 8 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 288 - ^ =
+STACK WIN 4 68867 1d7 0 0 14 c 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 288 - ^ =
+STACK WIN 4 2cf9b 28d f 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cfa8 27c 2 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2cfa9 27a 1 0 c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2cfaa 278 0 0 c c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2cf60 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68abf 2ed 11 0 10 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68ac8 2e0 8 0 10 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 68acf 2d8 1 0 10 8 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 68ad0 2d6 0 0 10 c 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 68db1 10d 9 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68dba 100 0 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68e39 80 0 0 c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68f11 148 8 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68f3e 115 0 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 68f75 dd 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6905d 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 357d5 b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2080d 5f7 11 0 c 0 24c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2081e 5dd 0 0 c 4 24c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2083d 5b0 0 0 c 8 24c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31b99 1f2 7 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31ba0 1e7 0 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 31bcf 1ac 0 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 31bd0 1aa 0 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 20799 e2 e 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 207a1 d6 6 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 207a7 cf 0 0 10 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 207d8 7d 0 0 10 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1fb88 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6907b 199 9 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69084 18c 0 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 690b9 156 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 690ba 154 0 0 8 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 69218 17a 9 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69221 16d 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 692b0 da 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69395 3de 16 0 8 0 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 693a6 3c4 5 0 8 4 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 568 - ^ =
+STACK WIN 4 693aa 3bf 1 0 8 8 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 568 - ^ =
+STACK WIN 4 693ab 3bd 0 0 8 c 230 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 568 - ^ =
+STACK WIN 4 69778 1b3 9 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69781 1a6 0 0 4 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 697b6 170 0 0 4 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 697b7 16e 0 0 4 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 69930 2ca 9 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69939 2bd 0 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69983 271 0 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e61c 39d a 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e625 390 1 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2e626 38e 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2e63e 372 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 20d14 3ab b 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 20d1d 39e 2 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 20d1e 39c 1 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 20d1f 39a 0 0 10 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2d2af 13d 9 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2d2b8 130 0 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2d2de 106 0 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2d2df 104 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 69bff fd c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69ce0 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69d19 111 c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69e0e 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69e49 fd c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69f2a 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 69f61 10f c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a054 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a091 48 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a099 3c 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a0de 1d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e8b2 10f c 0 c 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 453fe 21 0 0 c 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a100 13c c 0 10 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a220 21 0 0 10 8 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a259 fc c 0 8 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a339 21 0 0 8 8 38 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a371 172 a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a37a 167 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 6a37b 165 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 6a4e8 11 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6a4fe c7 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6a5ca 3e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6a60d a4 10 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a613 9a a 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a614 98 9 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a61b 90 2 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a6b6 d0 10 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a6bc c6 a 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a6bd c4 9 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a6c4 bc 2 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6a78b 66 8 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a7b8 33 0 0 18 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a7fb 60c e 0 8 0 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6a807 5fc 2 0 8 4 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 6a808 5fa 1 0 8 8 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 6a809 5f8 0 0 8 c 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 6aebf 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6aeed 2d 8 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6af1f 55 8 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6af53 1d 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6af79 52 8 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6afad 1a 0 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6afd0 71 9 0 18 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6afd8 65 1 0 18 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6afd9 63 0 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6aff2 49 0 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 6b046 41 8 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b08c 57 8 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b0e8 2e 7 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b11b 2e 7 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b14e 35 8 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b188 35 8 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b1c2 57 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b21e 3c 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b25f 1c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2cb03 69 8 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b280 72 8 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e44a 28 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2e450 1e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b2f7 28 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b2fd 1e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2afc9 cc e 0 14 0 70 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2afd6 bb 1 0 14 4 70 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2afd7 b9 0 0 14 8 70 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ca9f 111 f 0 10 0 78 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2caac 100 2 0 10 4 78 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 2caad fe 1 0 10 8 78 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 2caae fc 0 0 10 c 78 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 6b324 35 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b35e 29 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b38c 67 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b394 5b 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b3f8 6f c 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b404 5f 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b46c 19d c 0 c 8 5c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b5b5 48 0 0 c 8 5c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b629 55 8 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b631 49 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b683 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2146c c 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6b694 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1301e 22 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b6a3 53 6 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b6a9 49 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17190 c4 13 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1719f b1 4 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 171a2 ad 1 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 171a3 a9 0 0 c c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2bf01 c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1305f c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b6fb 23 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a644 35 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a675 38 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 300a9 33 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 300af 29 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 967c 12f c 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9684 123 4 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9688 11e 0 0 10 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b723 39 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b729 2f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 130a6 42 e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 130ac 38 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 130b4 2f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15350 124 16 0 14 0 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1535e 10d 8 0 14 4 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 15362 108 4 0 14 8 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 15366 103 0 0 14 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 6b761 3f 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b76a 32 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1530d 47 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 19aaa 33 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a9d9 3a 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15229 170 e 0 10 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15232 163 5 0 10 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 15233 15f 4 0 10 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 15237 15a 0 0 10 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 162db ef b 0 1c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 162e2 e4 4 0 1c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 162e6 df 0 0 1c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1529b af 8 0 3c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 152a1 a5 2 0 3c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 152a2 a3 1 0 3c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 152a3 a1 0 0 3c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1a86f 227 21 0 28 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1a878 21a 18 0 28 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1a879 216 17 0 28 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1a890 1fe 0 0 28 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 15921 ab5 45 0 c 0 3dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15958 a75 e 0 c 4 3dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 996 - ^ =
+STACK WIN 4 15965 a67 1 0 c 8 3dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 996 - ^ =
+STACK WIN 4 15966 a65 0 0 c c 3dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 996 - ^ =
+STACK WIN 4 1545c 910 17 0 4 8 2e0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 45f23 e 0 0 4 8 2e0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11210 83 9 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11219 76 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1123b 57 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b7a5 32f 1d 0 4 0 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6b7bd 2c9 5 0 4 4 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 6b7be 2c7 4 0 4 8 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 6b7c2 2c2 0 0 4 c 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 2fe16 84 3e 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fe54 1f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30e9a a7 9 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30ea1 9c 2 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 30ea2 9a 1 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 30ea3 98 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2fd92 73 9 0 14 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fd9b 66 0 0 14 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fdb4 2a 0 0 14 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bb0f 51 9 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bb17 45 1 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bb18 43 0 0 14 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fd4c 41 8 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2fd54 35 0 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30f21 73 9 0 14 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30f2a 66 0 0 14 4 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30f43 2a 0 0 14 8 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38653 18e 2e 0 14 0 e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38667 171 1a 0 14 4 e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 236 - ^ =
+STACK WIN 4 3866b 16c 16 0 14 8 e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 236 - ^ =
+STACK WIN 4 38681 155 0 0 14 c e4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 236 - ^ =
+STACK WIN 4 3835a 3f 6 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1612f 113 1f 0 4 0 d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16147 f2 7 0 4 4 d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1614e e8 0 0 4 8 d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bb65 38 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bba2 28 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bbcf 6b 8 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bbd7 5f 0 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bc0c 29 0 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16763 87 16 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16772 74 7 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16778 6d 1 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16779 6b 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16602 5b 13 0 4 0 20c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16613 41 2 0 4 4 20c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 532 - ^ =
+STACK WIN 4 16614 3d 1 0 4 8 20c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 532 - ^ =
+STACK WIN 4 16615 3b 0 0 4 c 20c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 532 - ^ =
+STACK WIN 4 1aa2c ff 13 0 0 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1aa3d e7 2 0 0 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 1aa3e e4 1 0 0 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 1aa3f e0 0 0 0 c 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 169ea 5c 9 0 c 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 169f3 4f 0 0 c 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1691d 5c 8 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b335 67 e 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b33e 5a 5 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2b33f 57 4 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2b343 50 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16473 5f 10 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16479 47 a 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1647a 45 9 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16483 3b 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1697f 66 7 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16996 47 0 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1699b 39 0 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c59b 87 c 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2c5a6 78 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2c5a7 76 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2c5be 5a 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2f70b 90 6 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f711 86 0 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f737 5f 0 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f695 bd 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f6ca 81 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f6ce 7b 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1642c 42 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1643c 2d 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16440 28 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 168bb 52 11 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 168c3 46 9 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 168c4 44 8 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 168cc 3b 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 16396 91 a 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1639f 5c 1 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 163a0 5a 0 0 4 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 163bf 3a 0 0 4 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 165e9 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 16b75 415 21 0 4 0 4a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16b8c 3f5 a 0 4 4 4a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1200 - ^ =
+STACK WIN 4 16b95 3eb 1 0 4 8 4a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1200 - ^ =
+STACK WIN 4 16b96 3e9 0 0 4 c 4a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1200 - ^ =
+STACK WIN 4 164cd c4 c 0 0 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 46631 e 0 0 0 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b553 b8 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b55b ac 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2b57d 86 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2b57e 82 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 16662 f2 b 0 14 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1666b e5 2 0 14 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 1666c e3 1 0 14 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 1666d e1 0 0 14 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 16879 b7 f 0 10 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16884 a8 4 0 10 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 16888 a3 0 0 10 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 16a5c 79 0 0 10 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 16562 8d c 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 46678 4 0 0 8 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 167d7 9a c 0 10 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 466a9 4 0 0 10 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 15120 a1 c 0 c 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 466d4 4 0 0 c 8 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bc3f 63 c 0 0 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bc8a 4 0 0 0 8 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bcc1 a9 8 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bcc9 9f 0 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bcf0 77 0 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b38d 214 e 0 0 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b39b 1ff 0 0 0 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2b3dd 1b6 0 0 0 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 2b3de 1b4 0 0 0 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 6be06 7f 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6be09 7b 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6be41 42 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6be8a 33 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1204d 44 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12061 1c 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bec2 70 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bec8 66 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bec9 64 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bf37 105 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6bf3d fb 5 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6bf3e f9 4 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6bf42 f4 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6c041 167 10 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c04f 155 2 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c050 153 1 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c051 151 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c1ad 165 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c1c9 df 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c1cd da 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c317 f8 6 0 24 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c31d ee 0 0 24 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6c34d bd 0 0 24 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6c351 b6 0 0 24 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 6c414 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c42e 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c449 22 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c470 22 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c497 9a c 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c4a2 83 1 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c4a3 81 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c4d1 52 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6c536 22 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c55d 30 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c592 50 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c598 42 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c599 40 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c5e7 3e 1a 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c601 20 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c62a 17b 15 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c639 168 6 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 6c63e 162 1 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 6c63f 15e 0 0 14 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 6c7a6 177 d 0 28 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c7ad 16c 6 0 28 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c7b3 165 0 0 28 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c922 177 d 0 28 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c929 16c 6 0 28 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6c92f 165 0 0 28 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6ca9e 195 10 0 18 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6caa7 188 7 0 18 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6caae 180 0 0 18 8 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6cabd 170 0 0 18 c 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6cc38 198 10 0 18 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6cc41 18b 7 0 18 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6cc48 183 0 0 18 8 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6cc57 173 0 0 18 c 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 80 - ^ =
+STACK WIN 4 6cdd5 115c 1b 0 14 0 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6cde9 1144 7 0 14 4 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 6cded 113f 3 0 14 8 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 6cdf0 113b 0 0 14 c 254 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 604 - ^ =
+STACK WIN 4 6df34 115c 1b 0 14 0 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6df48 1144 7 0 14 4 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 6df4c 113f 3 0 14 8 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 6df4f 113b 0 0 14 c 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 335b7 1d 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f093 357 13 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f09f 347 7 0 18 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6f0a2 343 4 0 18 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6f0a6 33e 0 0 18 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 6f3ef a6 c 0 10 0 f8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f3fb 96 0 0 10 4 f8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f49a 104 19 0 8 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f4a8 ed b 0 8 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 6f4a9 eb a 0 8 8 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 6f4b3 e0 0 0 8 c 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 6f5a3 102 8 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f5aa f7 1 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6f5ab f5 0 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6f602 9d 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 6f6aa c5 1a 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f6bc af 8 0 18 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 6f6bd ad 7 0 18 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 6f6c4 a5 0 0 18 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 6f774 1c7 16 0 8 0 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f785 1ad 5 0 8 4 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 6f786 1ab 4 0 8 8 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 6f78a 1a6 0 0 8 c 220 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 552 - ^ =
+STACK WIN 4 6f949 b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f959 12f 7 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f97d 107 0 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6f9f0 92 0 0 14 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fa8d 22 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fab4 1f 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fad8 19e 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fae0 192 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fb1d 153 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fc7b 61 8 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fc83 55 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fcdc e9 c 0 0 4 330 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fdca 66 c 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fe04 4 0 0 4 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 189fc 28 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fe51 65 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fe6d 44 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6fe6e 42 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6febb 5f c 0 c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6ff09 4 0 0 c 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6ff39 148 15 0 18 0 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6ff4a 12e 4 0 18 4 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 6ff4e 129 0 0 18 8 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70086 27 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 700b2 25 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 700dc c0 13 0 8 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 700ed a6 2 0 8 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 700ee a4 1 0 8 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 700ef a2 0 0 8 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 701a1 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 701b9 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 701d1 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70245 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 70252 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7025f 149 17 0 10 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70362 4 0 0 10 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 703c9 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 703e7 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70405 10c 17 0 c 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 704cb 4 0 0 c 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70531 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7054c 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70567 a3 19 0 8 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70578 89 8 0 8 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70579 87 7 0 8 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70580 7f 0 0 8 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 7060f 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70627 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7063f c6 13 0 c 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70650 ac 2 0 c 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70651 aa 1 0 c 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70652 a8 0 0 c c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 7070a 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70725 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70740 a8 19 0 8 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70751 8e 8 0 8 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70752 8c 7 0 8 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70759 84 0 0 8 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 707ed 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70805 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7081d 150 17 0 10 8 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70927 4 0 0 10 8 c8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70989 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 709a7 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 709c5 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ba6a 111 17 0 c 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4677c 4 0 0 c 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70a39 23 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70a42 16 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ba3c 29 9 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ba45 1c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2da09 a0 12 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2da1a 86 1 0 c 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2da1b 84 0 0 c 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70a61 4f c 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70a99 4 0 0 4 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2d9bd 4b c 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 467de 4 0 0 4 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70ad1 75 c 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70b3f c 0 0 8 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b355 6e c 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b3c1 c 0 0 4 8 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70b61 11b 1c 0 18 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70b72 101 b 0 18 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70b73 ff a 0 18 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70b7d f4 0 0 18 c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 70c81 39 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70cbf 38 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70cfc a7 13 0 8 0 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70d0d 8d 2 0 8 4 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 70d0e 8b 1 0 8 8 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 70d0f 89 0 0 8 c 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 70da8 58 8 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70db0 4c 0 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b10f 77 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b132 4f 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b13a 46 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 29ee3 70 d 0 8 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 29ef0 5f 0 0 8 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 46833 26 0 0 8 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1aff3 81 17 0 4 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 4687c 4 0 0 4 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1afd5 1f 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18c64 9a b 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18c6b 8f 4 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18c6f 8a 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70e05 1ef 17 0 2c 8 e0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 70fe7 12 0 0 2c 8 e0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71011 77 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7108d 4f 4 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 71090 4b 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 71091 49 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 710e1 93 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 710e8 88 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71107 68 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71191 164 17 0 10 8 d0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 712e3 17 0 0 10 8 d0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b6d7 228 16 0 8 0 640 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 b6ec 20a 1 0 8 4 640 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1608 - ^ =
+STACK WIN 4 b6ed 208 0 0 8 8 640 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1608 - ^ =
+STACK WIN 4 71311 1cd 17 0 0 8 480 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 714d7 c 0 0 0 8 480 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 714f9 e9 17 0 4 8 128 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 715db c 0 0 4 8 128 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 715f9 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1ce32 125 17 0 14 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 468d9 4 0 0 14 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 468e9 4 0 0 14 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1cf25 1c 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 35484 1c 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1dc7e 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1dd4d 9b 1c 0 10 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71604 a3 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71674 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 716c9 7b 13 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1aeaa 73 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1ff5b 82 13 0 10 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 10fe1 95 c 0 10 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 46968 4 0 0 10 8 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71749 29c 17 0 20 8 d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7189d 11 0 0 20 8 d8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7199c 4 0 0 20 8 d8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71a1d 4a 16 0 14 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71a2b 33 8 0 14 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 71a2f 2e 4 0 14 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 71a33 29 0 0 14 c 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 92 - ^ =
+STACK WIN 4 71a6c 51 1c 0 14 0 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71a7a 3a e 0 14 4 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 71a7e 35 a 0 14 8 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 71a88 2a 0 0 14 c 58 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 96 - ^ =
+STACK WIN 4 71ac2 139 17 0 2c 8 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71be9 4 0 0 2c 8 c8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71c19 ae 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71ca8 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71ce9 7b 13 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37c53 9a 17 0 4 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 469a3 4 0 0 4 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71d69 c2 19 0 10 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71d7a a8 8 0 10 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 71d7e a3 4 0 10 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 71d82 9e 0 0 10 c a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 71e30 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71ea4 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71ec7 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71eea 75 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71f64 56 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 71fbf 5c 13 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72020 7b 13 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 720a0 107 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72188 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 721c9 78 8 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72269 12b 17 0 18 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7236f 4 0 0 18 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7237f 4 0 0 18 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 723c5 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 723e8 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7240b 13f 26 0 18 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72420 126 11 0 18 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 72421 124 10 0 18 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 72431 113 0 0 18 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 7254f 272 17 0 18 8 d4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72787 4 0 0 18 8 d4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 727e1 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72805 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72829 2d8 17 0 18 8 e8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72aa3 4 0 0 18 8 e8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72b21 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72b45 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72b69 151 17 0 1c 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72c86 4 0 0 1c 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72cd9 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72cff 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72d25 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72d4b 126 17 0 1c 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72e4c 4 0 0 1c 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72e5c 4 0 0 1c 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72ea5 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72ecb 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72ef1 21 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72f17 c3 17 0 18 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72fbb 4 0 0 18 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 72ff9 22 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73020 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73044 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73068 172 17 0 14 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7314a 4 0 0 14 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 731c9 4 0 0 14 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73215 af 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 732a4 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 732e1 17b 17 0 18 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73326 4 0 0 18 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73432 4 0 0 18 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7348d 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 734b0 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 734d3 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 734f6 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73519 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7353d 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73561 ad 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 735db 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73629 9c 17 0 4 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73692 4 0 0 4 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 736e1 9a 17 0 4 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73748 4 0 0 4 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73799 107 17 0 10 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73854 4 0 0 10 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 738c1 89 13 0 8 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7394f b5 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 739d1 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b1f0 75 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73a21 82 18 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73aa8 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73b1c 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73b90 75 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73c0a 75 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73c84 ac 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73d11 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73d51 b5 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73de7 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73e21 e1 17 0 18 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73ee3 4 0 0 18 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73f21 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73f45 1f 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73f69 77 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 73fe5 75 13 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7405f 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 740d3 6b 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74143 b6 15 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74154 9c 4 0 4 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74158 97 0 0 4 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b18f 6e 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 741fe 5e 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74261 2e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74294 90 12 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 742a5 76 1 0 8 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 742a6 74 0 0 8 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74329 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74341 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74359 67 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 743c5 11c 17 0 8 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74497 4 0 0 8 8 c4 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1af14 a3 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 469dd 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74501 67 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7456d a3 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 745dd 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74631 83 13 0 4 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1bc2b e4 17 0 8 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 469fe 4 0 0 8 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 746b9 c1 19 0 10 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 746ca a7 8 0 10 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 746ce a2 4 0 10 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 746d2 9d 0 0 10 c a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 7477f 7b 13 0 c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 747ff ae 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7487a 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 748c9 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7493d 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 749b1 e8 17 0 14 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74a7a 4 0 0 14 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74ab9 54 8 0 8 0 44 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74b12 6f 13 0 4 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74b86 c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 74b97 4d 8 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74be9 a0 b 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74bf2 93 2 0 10 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 74bf3 91 1 0 10 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 74bf4 8f 0 0 10 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 74c8e bd 11 0 8 0 408 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74c9f a3 0 0 8 4 408 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74e13 13d 11 0 4 0 4b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74e24 123 0 0 4 4 4b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74e74 79 0 0 4 8 4b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 74f87 135 17 0 8 8 c0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7507d 4 0 0 8 8 c0 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 750d9 c5 15 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 750ea ab 4 0 8 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 750ee a6 0 0 8 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 751a3 ac 17 0 c 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7521c 4 0 0 c 8 bc 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75271 b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b5c6 ca 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b616 17 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b61d f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2000c 78 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 20012 3d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b58b 39 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b591 2f 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b592 2d 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75280 1cc c 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75348 4 0 0 4 8 7c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 753b9 c 0 0 4 8 7c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75454 c 0 0 4 8 7c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75489 45 13 0 0 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 754d3 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 754e4 242 17 0 8 8 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 756a5 4 0 0 8 8 c8 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $ebp = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38211 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75749 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7576c 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7578a 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 757aa 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 757ca 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 757e8 1c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75809 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37ce1 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75827 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75842 84 16 0 14 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75853 6a 5 0 14 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 75857 65 1 0 14 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 75858 63 0 0 14 c a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 a459 b3 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d21d 15 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 cf52 136 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 cf63 111 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 cf7e f4 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d239 24 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 380ef d7 c 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 380f9 c9 2 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 380fa c7 1 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 380fb c5 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 38063 f7 a 0 24 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3806c ea 1 0 24 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 3806d e8 0 0 24 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 380a9 65 0 0 24 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 d077 1a3 1e 0 18 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d088 189 d 0 18 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 d08f 181 6 0 18 8 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 d095 17a 0 0 18 c 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 38de8 204 19 0 18 0 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38df9 1ea 8 0 18 4 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 38dfd 1e5 4 0 18 8 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 38e01 1e0 0 0 18 c 214 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 540 - ^ =
+STACK WIN 4 d262 16c 1d 0 10 0 108 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d277 14e 8 0 10 4 108 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 272 - ^ =
+STACK WIN 4 d27e 146 1 0 10 8 108 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 272 - ^ =
+STACK WIN 4 d27f 144 0 0 10 c 108 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 272 - ^ =
+STACK WIN 4 758cb 9b 11 0 c 0 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 758dc 81 0 0 c 4 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75925 34 0 0 c 8 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7596b 166 21 0 18 0 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75981 47 b 0 18 4 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 7598b 3c 1 0 18 8 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 7598c 3a 0 0 18 c 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 276 - ^ =
+STACK WIN 4 75ad6 9e 11 0 10 0 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75ae7 84 0 0 10 4 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75b30 37 0 0 10 8 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3632d 1a7 19 0 18 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3633e 18d 8 0 18 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 36342 188 4 0 18 8 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 36346 183 0 0 18 c 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 361ee 1ea 19 0 18 0 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 361ff 1d0 8 0 18 4 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 36203 1cb 4 0 18 8 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 36207 1c6 0 0 18 c 218 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 544 - ^ =
+STACK WIN 4 2ec56 2cc 16 0 18 0 234 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ec67 2b2 5 0 18 4 234 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 572 - ^ =
+STACK WIN 4 2ec68 2b0 4 0 18 8 234 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 572 - ^ =
+STACK WIN 4 2ec6c 2ab 0 0 18 c 234 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 572 - ^ =
+STACK WIN 4 75b79 333 16 0 18 0 23c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75b8a 319 5 0 18 4 23c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 580 - ^ =
+STACK WIN 4 75b8b 317 4 0 18 8 23c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 580 - ^ =
+STACK WIN 4 75b8f 312 0 0 18 c 23c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 580 - ^ =
+STACK WIN 4 38a0c ad 15 0 14 0 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38a1d 93 4 0 14 4 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38a21 8e 0 0 14 8 10c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75eb1 191 21 0 14 0 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 75ec5 174 d 0 14 4 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 75ec6 172 c 0 14 8 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 75ed2 165 0 0 14 c 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 76047 83 11 0 c 0 224 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76058 69 0 0 c 4 224 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7606e 4f 0 0 c 8 224 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 760cf b 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a490 196 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a496 18c 2 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a497 18a 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a498 188 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 760df 2e5 11 0 3c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 760eb 2d5 5 0 3c 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 760ef 2cb 1 0 3c 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 760f0 2c9 0 0 3c c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 bfef 93 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 af4f 12e7 1d 0 1c 0 98 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 af64 12ce 8 0 1c 4 98 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 160 - ^ =
+STACK WIN 4 af68 12c9 4 0 1c 8 98 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 160 - ^ =
+STACK WIN 4 af6c 12c4 0 0 1c c 98 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 160 - ^ =
+STACK WIN 4 763c9 21 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 763ef 107 1e 0 8 0 424 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76400 6b d 0 8 4 424 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1068 - ^ =
+STACK WIN 4 7640d 5d 0 0 8 8 424 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1068 - ^ =
+STACK WIN 4 1c48b 263 26 0 8 0 648 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1c4a3 ad e 0 8 4 648 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1616 - ^ =
+STACK WIN 4 1c4ad a2 4 0 8 8 648 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1616 - ^ =
+STACK WIN 4 1c4b1 9d 0 0 8 c 648 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1616 - ^ =
+STACK WIN 4 764fb fe 18 0 4 0 140 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7650c e4 7 0 4 4 140 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76513 dc 0 0 4 8 140 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a415 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13038 2d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13070 2a 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 127b2 7 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 bf3d 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9f10 e2 6 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7668d a2 9 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76696 95 0 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76734 2b9 6 0 1c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7676f 27a 0 0 1c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 769f2 5c 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39200 157 15 0 c 0 43c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39211 13d 4 0 c 4 43c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39215 138 0 0 c 8 43c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76a53 195 1d 0 c 0 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76a6b 174 5 0 c 4 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 76a6f 16f 1 0 c 8 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 76a70 16d 0 0 c c 210 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 536 - ^ =
+STACK WIN 4 76c59 b2 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76c5f a8 2 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 76c60 a6 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 76c61 a4 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 383cf 49 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1bbba ac b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1bbc5 9d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bf64 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2f041 131 11 0 c 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f052 117 0 0 c 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 2f06a ef 0 0 c 8 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 2f06b eb 0 0 c c a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 176 - ^ =
+STACK WIN 4 2efb9 83 f 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2efc2 76 6 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2efc8 6f 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11562 17bb 2f 0 10 0 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1157f ee5 12 0 10 4 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 11582 19a f 0 10 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 11591 18a 0 0 10 c bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 39020 385 39 0 18 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39045 c8 14 0 18 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 39046 c6 13 0 18 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 39059 b2 0 0 18 c c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 76d1b 114 13 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76d2d fe 1 0 10 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76d2e fc 0 0 10 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76e34 3a 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76e3a 30 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b258 159 f 0 4 0 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b266 142 1 0 4 4 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1b267 140 0 0 4 8 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76e73 e22 23 0 c 0 570 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 76e84 d6c 12 0 c 4 570 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1400 - ^ =
+STACK WIN 4 76e92 9ea 4 0 c 8 570 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1400 - ^ =
+STACK WIN 4 76e96 9e5 0 0 c c 570 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1400 - ^ =
+STACK WIN 4 77cf7 f4 1d 0 10 0 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77d0b d7 9 0 10 4 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 77d0f d2 5 0 10 8 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 77d14 cc 0 0 10 c 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 1bcfe f4 1c 0 10 0 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1bd12 d7 8 0 10 4 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 1bd16 d2 4 0 10 8 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 1bd1a cd 0 0 10 c 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1072 - ^ =
+STACK WIN 4 15047 f9 7 0 14 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1505b e1 0 0 14 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1505c df 0 0 14 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77df0 2f 7 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1734f 4a a 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17358 3d 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17359 3b 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77e24 1a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17f7d 3f 9 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17f86 32 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77e43 13f 16 0 c 0 2a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77e54 125 5 0 c 4 2a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 684 - ^ =
+STACK WIN 4 77e58 120 1 0 c 8 2a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 684 - ^ =
+STACK WIN 4 77e59 11e 0 0 c c 2a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 684 - ^ =
+STACK WIN 4 2ae21 8d 1d 0 8 0 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ae3a 64 4 0 8 4 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ae3e 5f 0 0 8 8 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ac6c c8 10 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ac7a b1 2 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2ac7b af 1 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2ac7c ab 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2b95b af 10 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b969 98 2 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2b96a 96 1 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2b96b 94 0 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 2b883 c6 15 0 0 0 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2b8c4 7b 0 0 0 4 a8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 172de 74 10 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 172ea 64 4 0 14 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 172ee 5f 0 0 14 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ad98 b5 9 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ada1 a8 0 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2adb4 90 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77f87 60 9 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77f90 53 0 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77fec 2d5 1d 0 10 0 440 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 77ffd 2bb c 0 10 4 440 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1096 - ^ =
+STACK WIN 4 78008 2af 1 0 10 8 440 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1096 - ^ =
+STACK WIN 4 78009 2ad 0 0 10 c 440 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1096 - ^ =
+STACK WIN 4 782c6 19a 15 0 14 0 e3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 782d7 15b 4 0 14 4 e3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3652 - ^ =
+STACK WIN 4 782db 156 0 0 14 8 e3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3652 - ^ =
+STACK WIN 4 7838b a2 0 0 14 c e3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3652 - ^ =
+STACK WIN 4 2a8fa 221 12 0 10 0 430 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a90b 1f9 1 0 10 4 430 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a90c 1f7 0 0 10 8 430 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37cfc 3ad 22 0 c 0 468 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37d14 38c a 0 c 4 468 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1136 - ^ =
+STACK WIN 4 37d1d 382 1 0 c 8 468 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1136 - ^ =
+STACK WIN 4 37d1e 380 0 0 c c 468 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1136 - ^ =
+STACK WIN 4 7849b 22b 1d 0 c 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 784ac 211 c 0 c 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 784ad 20f b 0 c 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 784b8 203 0 0 c c 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 38234 726 22 0 18 0 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38248 709 e 0 18 4 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 38249 707 d 0 18 8 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 38256 6f9 0 0 18 c dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 38958 2ac 33 0 38 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38970 28b 1b 0 38 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 3897a 280 11 0 38 8 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 3898b 26c 0 0 38 c c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 204 - ^ =
+STACK WIN 4 786e5 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78703 1c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a8dc 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78724 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7873f 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7875a 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7877d 1e 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 388dc df f 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 388e7 d0 4 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 388eb cb 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38801 15f c 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3880c 150 1 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 3880d 14e 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 388be 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 387e1 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 787a0 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 787c0 82 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 787e7 29 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 787f2 1d 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78847 389 16 0 14 0 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78858 343 5 0 14 4 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 78859 341 4 0 14 8 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 7885d 33c 0 0 14 c ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 78bd9 7e 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78bdf 74 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78c22 30 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3798e da 18 0 4 0 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3799f c0 7 0 4 4 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 379a6 b8 0 0 4 8 280 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78c5c 150 12 0 4 0 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78c6d 136 1 0 4 4 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 78c6e 134 0 0 4 8 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 78cb4 ea 0 0 4 c 148 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 336 - ^ =
+STACK WIN 4 78db1 7c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78dd9 4c 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78ddd 47 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78e32 7c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78e5a 4c 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78e5e 47 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78eb3 c3 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78ef0 7e 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78ef3 7a 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78f7b 127 e 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 78f88 116 1 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 78f89 114 0 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 78fac f0 0 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 790a7 126 11 0 10 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 790b5 114 3 0 10 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 790b8 110 0 0 10 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 791d2 92 18 0 10 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 791e0 7b a 0 10 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 791e4 76 6 0 10 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 791ea 6f 0 0 10 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 ce53 73 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ce77 40 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ce7b 3b 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2d4ad 1ced 29 0 1c 0 de4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2d4c1 1cd0 15 0 1c 4 de4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3564 - ^ =
+STACK WIN 4 2d4d5 1cbb 1 0 1c 8 de4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3564 - ^ =
+STACK WIN 4 2d4d6 1cb9 0 0 1c c de4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 3564 - ^ =
+STACK WIN 4 79269 289 7 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79270 27e 0 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7928e 25e 0 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 374eb 220 1f 0 18 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 374fc 206 e 0 18 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3750a 1f7 0 0 18 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37787 e9 23 0 18 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3779d ca d 0 18 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 377aa bc 0 0 18 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 377d2 55 0 0 18 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 794fb 136 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7952d ff 0 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7952e fd 0 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79636 188 d 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79641 179 2 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 79642 177 1 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 79643 175 0 0 14 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 37693 2ef a 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3769c 2e2 1 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 3769d 2e0 0 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4acfb 1c3 0 0 18 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 cca8 3d3 13 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 ccb4 3c3 7 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 ccba 3bc 1 0 18 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 ccbb 3ba 0 0 18 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 110cb 48 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 110d1 3e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9915 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 797c3 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 127a7 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b7dc 39 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f540 24 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 797df 82 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79866 56 c 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79872 46 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 798c1 c4 13 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 798cf 67 5 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 798d0 65 4 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 798d4 60 0 0 1c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a1fb 2a0 13 0 18 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a20c 2c 2 0 18 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 a20d 2a 1 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 a20e 28 0 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 bd19 4ee 19 0 20 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 bd30 70 2 0 20 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 bd31 6e 1 0 20 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 bd32 48d 0 0 20 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 32cf3 1c3 1b 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32d04 1ae a 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32d07 1aa 7 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32d0e 1a2 0 0 1c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7998a 6d1 c 0 24 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 79991 6c6 5 0 24 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 79992 6c4 4 0 24 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 79996 6bf 0 0 24 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7a064 158 19 0 0 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a07d 138 0 0 0 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a095 11b 0 0 0 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 cfd4 281 1c 0 18 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 cfe8 264 8 0 18 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 cfec 25f 4 0 18 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 cff0 25a 0 0 18 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 12e76 244 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12e7c 23a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12e96 212 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a1cd 2fc 10 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a1d3 2f2 a 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7a1dd 2e7 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7a21d 2a6 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7a4ce 1e2 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a4d4 1d8 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a58b 81 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9bf8 87b 15 0 18 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 9c0c 85e 1 0 18 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 9c0d 85c 0 0 18 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 9c38 81d 0 0 18 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 32c7b 10b f 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 32c84 41 6 0 20 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32c85 3f 5 0 20 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 32c8a 39 0 0 20 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 a0d4 3c5 6 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a0da 3bb 0 0 20 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a0f1 387 0 0 20 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a6b5 1b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a6e2 1b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 35819 c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 34474 45 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a712 5c 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 336f6 3a 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33735 3b 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a773 7b e 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a779 74 8 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7a77a 72 7 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7a781 6a 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 2f440 58 1c 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f44b 3b 11 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f45c 29 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a7f3 58 9 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a7fa 4d 2 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a81b 23 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 37834 11f 15 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3783c 113 d 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 3783d 111 c 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 3783e 10f b 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2f40d 7a d 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2f416 6f 4 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2f417 6d 3 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2f418 6b 2 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 7a850 5d 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a856 53 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a874 2c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 124d1 109 c 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 124d7 ff 6 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 124dc f9 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 124dd f7 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 121de fc 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 121e1 f8 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bdd2 1bc 9 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bdd5 1b8 6 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bddb 1b1 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 a2d4 85 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 a2dc 7c 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a8b2 ab 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a8b5 a7 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a962 da 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a968 cc 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7a969 ca 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7aa41 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7aa6b 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7aa95 302 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ee51 3c6 d 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ee57 3bc 7 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2ee5d 3b5 1 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2ee5e 3b3 0 0 14 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7ad9c 5d 6 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ad9f 59 3 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ada0 57 2 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2c16a 58 4 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2c16d 54 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2c16e 52 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12544 32 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a5c3 13c 15 0 10 0 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a5d4 bf 4 0 10 4 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 2a5d8 ba 0 0 10 8 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 2a615 6f 0 0 10 c 228 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 560 - ^ =
+STACK WIN 4 12090 cb b 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12096 c1 5 0 1c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1209a bc 1 0 1c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1209b ba 0 0 1c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 14f5c 92 27 0 14 0 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14f83 62 0 0 14 4 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 14fbe 16 0 0 14 8 40c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 397f8 1e2 19 0 4 0 644 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39826 1a4 0 0 4 4 644 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39827 1a2 0 0 4 8 644 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 384db f1 15 0 c 0 29c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 384ec d7 4 0 c 4 29c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 676 - ^ =
+STACK WIN 4 384f0 d2 0 0 c 8 29c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 676 - ^ =
+STACK WIN 4 38518 a3 0 0 c c 29c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 676 - ^ =
+STACK WIN 4 3440e 61 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34414 57 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7adfe 7c 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ae04 72 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ae7f de 2d 0 20 0 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ae9b b9 11 0 20 4 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 7ae9f b4 d 0 20 8 b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 7aeac a6 0 0 20 c b0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 7af62 72 7 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7afd9 70 1b 0 1c 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7aff4 4c 0 0 1c 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3472b 390 15 0 20 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34740 377 0 0 20 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34777 347 0 0 20 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3465d 1d3 43 0 20 0 b8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 34695 182 b 0 20 4 b8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 192 - ^ =
+STACK WIN 4 3469c 17a 4 0 20 8 b8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 192 - ^ =
+STACK WIN 4 346a0 175 0 0 20 c b8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 192 - ^ =
+STACK WIN 4 7b04e 66c 43 0 20 0 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7b086 1c3 b 0 20 4 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 7b08d 3aa 4 0 20 8 bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 7b091 1b6 0 0 20 c bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 196 - ^ =
+STACK WIN 4 344bc 388 3c 0 18 0 378 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 344ea fe e 0 18 4 378 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 896 - ^ =
+STACK WIN 4 344f7 f0 1 0 18 8 378 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 896 - ^ =
+STACK WIN 4 344f8 ee 0 0 18 c 378 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 896 - ^ =
+STACK WIN 4 7b6ca 404 3c 0 18 0 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7b6f8 fe e 0 18 4 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 7b705 f0 1 0 18 8 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 7b706 ee 0 0 18 c 420 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1064 - ^ =
+STACK WIN 4 3414d 30 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 339dc 69 9 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 339e5 5c 0 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bad3 96 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bb13 4e 0 0 18 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bb6e e6 f 0 c 0 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bb7b d5 2 0 c 4 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7bb7c d3 1 0 c 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7bb7d cf 0 0 c c 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7bc59 17d e 0 4 0 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bc65 168 2 0 4 4 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 7bc66 166 1 0 4 8 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 7bc67 164 0 0 4 c 274 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 7be1b 63 a 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7be24 56 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7be25 52 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7be83 c5 1d 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bef3 35 0 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 335d4 33 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33ec8 a54 4c 0 14 0 508 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33eef a20 25 0 14 4 508 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1296 - ^ =
+STACK WIN 4 33efe a10 16 0 14 8 508 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1296 - ^ =
+STACK WIN 4 33f14 9f9 0 0 14 c 508 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1296 - ^ =
+STACK WIN 4 7bf4d fd 18 0 8 0 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7bf56 f0 f 0 8 4 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7bf64 dd 1 0 8 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7bf65 d7 0 0 8 c 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 7c04f 1d2 11 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7c058 1c5 8 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 7c059 1c3 7 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 7c060 1bb 0 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 7c86f 235 18 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7c887 1f0 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 7c8a5 1ce 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 7c8a6 1cc 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 44 - ^ =
+STACK WIN 4 33fd3 1f2 25 0 18 0 2bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33fea 17a e 0 18 4 2bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 708 - ^ =
+STACK WIN 4 33ff4 16f 4 0 18 8 2bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 708 - ^ =
+STACK WIN 4 33ff8 16a 0 0 18 c 2bc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 708 - ^ =
+STACK WIN 4 33a4a 8c9 30 0 20 0 258 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 33a6c 50 e 0 20 4 258 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 608 - ^ =
+STACK WIN 4 33a70 4b a 0 20 8 258 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 608 - ^ =
+STACK WIN 4 33a7a 578 0 0 20 c 258 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 608 - ^ =
+STACK WIN 4 33775 3fb 38 0 18 0 2d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 3379f 308 e 0 18 4 2d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 736 - ^ =
+STACK WIN 4 337a3 303 a 0 18 8 2d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 736 - ^ =
+STACK WIN 4 337ad 2f8 0 0 18 c 2d8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 736 - ^ =
+STACK WIN 4 c0ed 74 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17fc1 82 9 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 17fc8 7a 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 17fc9 78 1 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 17fca 76 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1805b 46 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38617 37 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 38620 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7caa9 a6 9 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cab1 9c 1 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cab2 98 0 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a557 9b e 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 a565 8b 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17395 78 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cb54 b5 1a 0 8 0 404 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cb6d 93 1 0 8 4 404 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1036 - ^ =
+STACK WIN 4 7cb6e 8f 0 0 8 8 404 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1036 - ^ =
+STACK WIN 4 7cba2 57 0 0 8 c 404 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 1036 - ^ =
+STACK WIN 4 188fc 146 7 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18902 13c 1 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 18903 13a 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1892c 10c 0 0 14 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16ea9 130 f 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 16eb6 11f 2 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16eb7 11d 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 16eb8 11b 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 336b6 9d e 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 336c4 8b 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 336d0 7d 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 336dd 6f 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cc2b 112 17 0 4 0 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cc42 f2 0 0 4 4 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cc60 d0 0 0 4 8 428 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cd42 7f 7 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cdc6 53 17 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cdcc 49 11 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cdd4 40 9 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cddd 36 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7ce1e 8d e 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ce30 76 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ce35 70 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 184dc db 12 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 184e6 cd 8 0 c 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 184e9 c9 5 0 c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 18504 ad 0 0 c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 7ceb0 9e d 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cebb 8f 2 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cebc 8d 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cebd 8b 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7cf53 2d 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 183fe 1fb 15 0 8 0 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1840f 1e1 4 0 8 4 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 18413 1dc 0 0 8 8 a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 1844e 196 0 0 8 c a4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 172 - ^ =
+STACK WIN 4 3996f 176 1c 0 8 0 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 39980 15c b 0 8 4 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 39984 157 7 0 8 8 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 3998b 14f 0 0 8 c a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 1831e 16a b 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18328 15c 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18329 15a 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d1ae 89 1e 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d1b6 7f 16 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 d1c9 69 3 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 150c2 d6 20 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 150ca 9c 18 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 150cb 9a 17 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 150df 85 3 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 7cf85 204 16 0 8 0 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7cf96 1ea 5 0 8 4 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 7cf9a 1e5 1 0 8 8 a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 7cf9b 1e3 0 0 8 c a0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 168 - ^ =
+STACK WIN 4 7d1b9 88 8 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 18297 9a e 0 10 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 182a5 88 0 0 10 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d246 f5 24 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d24f a2 1b 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 7d250 a0 1a 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 7d267 88 3 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 7d340 65 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d3aa ff 1d 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d3bd e8 a 0 14 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7d3be e6 9 0 14 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7d3c7 dc 0 0 14 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7d4ae 101 e 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d4b7 f4 5 0 18 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 7d4b8 f2 4 0 18 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 7d4bc ed 0 0 18 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 17210 6e a 0 0 0 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17219 63 1 0 0 4 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 1721a 5f 0 0 0 8 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d5b4 a0 a 0 0 0 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d5bd 95 1 0 0 4 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 7d5be 93 0 0 0 8 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 7d615 23 0 0 0 c 40 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 72 - ^ =
+STACK WIN 4 2a25d 2a9 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a268 26e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a41a 113 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7d659 5a 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d65f 50 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d690 1c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a855 82 14 0 10 0 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a869 65 0 0 10 4 21c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 11fff 23f 9 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 12006 234 2 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 12007 232 1 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 12008 230 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2a532 8e 13 0 4 0 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2a543 74 2 0 4 4 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 2a544 70 1 0 4 8 ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 2a545 6e 0 0 4 c ac 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 180 - ^ =
+STACK WIN 4 7d6b7 a9 15 0 c 0 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d6c8 8f 4 0 c 4 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 7d6cc 8a 0 0 c 8 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 7d700 40 0 0 c c c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 16ff1 9a 16 0 8 0 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 17002 80 5 0 8 4 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 17003 7e 4 0 8 8 c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 17007 79 0 0 8 c c8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 208 - ^ =
+STACK WIN 4 7d765 25f 2b 0 1c 0 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7d77f 12f 11 0 1c 4 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 7d78c 121 4 0 1c 8 dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 7d790 11c 0 0 1c c dc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 228 - ^ =
+STACK WIN 4 7d9c9 40 21 0 0 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7da0e 6c 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7da14 62 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7da47 15 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7da7f 13e b 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7da86 12e 4 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7da89 12a 1 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7da8a 128 0 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 31054 21d 13 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 31060 20d 7 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 31064 208 3 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 31067 204 0 0 14 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 7dc45 196 16 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7dc4c 17a f 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7dc52 173 9 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 7dc5b 169 0 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21523 2c6 d 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2152e 2b7 2 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2152f 2b5 1 0 10 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21530 2b3 0 0 10 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 30f99 bb 9 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 30fa0 b0 2 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 30fa1 ae 1 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 30fa2 ac 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 215f5 a1 13 0 20 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 215fc 96 c 0 20 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 215fd 94 b 0 20 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21608 88 0 0 20 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2ad39 5a 17 0 c 0 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 2ad50 3a 0 0 c 4 c4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7dead b 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7debd e1 1a 0 4 0 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7df16 75 0 0 4 4 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7df17 73 0 0 4 8 118 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7dfad 84 13 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7dfc0 6d 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7dfcd 5b 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e036 44 c 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e041 35 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7e042 31 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7e04a 28 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7e07f 47 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e085 3d 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e0cb 1f e 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e0ef 1f e 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e113 1f e 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e137 1f e 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e15b b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e16b f 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e17f f 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e193 f 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1a7 f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1bb f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1cf f 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddf5 4 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1e3 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1ec 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e1f9 15 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e213 15 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e22d 15 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e247 2f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e27b 19 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e299 d 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e2ab d 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e2bd d 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e2cf 14 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e2e8 4 0 0 2c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e2f1 10 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e306 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e313 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e31d 18 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e33a c 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e34b 5 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e355 8 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e362 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e36c c 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e37d 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e388 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e393 6 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e39e 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ae7 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e3a9 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e3b4 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e3bf 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e3ca 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e3e8 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e3f5 21 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e41b 1b 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e43b 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e446 11 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e45c 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e469 c 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e47a a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e489 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e496 5 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4a0 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4b1 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4be c 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4cf c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4e0 c 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e4f1 1d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e513 1e 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e536 c 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e547 e 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e55a c 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e56b 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e593 8 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e5a0 17 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e5bc 8 0 0 34 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e5c9 5 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e5d3 5 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e5dd 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e5f5 a 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e604 c 0 0 30 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e615 d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e627 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e640 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e659 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e666 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e67f 18 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e69c 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e6a9 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e6b6 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e6c3 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e6ed 18 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e728 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 cc97 c 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e735 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e742 c 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e753 f 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e767 10 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e77c 12 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e793 14 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e7ac c 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e7bd 1b 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e7dd 10 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e7f2 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e7fd 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e808 14 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e821 15 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e83b 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e848 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e878 5 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e88d 5 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 260c2 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e897 c 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e8a8 5 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e8b2 5 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e8bc 14 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e8d5 14 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e8ee 14 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e907 15 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e90d b 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e921 1f 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e945 c 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e956 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e96f 19 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e975 f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e98d 3 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e995 14 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e9ae 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e9bb 1a 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7e9da 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e9e7 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7e9f0 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ea09 14 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ea22 19 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ea40 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea4d 5 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea57 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea62 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea6d 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea78 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea83 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea8e 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ea99 6 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eaa4 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eaaf 12 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7eac6 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eacf c 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eae0 d 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eaf2 d 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb04 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb14 23 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7eb3c d 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb4e d 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb60 5 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb6a 8 0 0 38 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb77 5 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb81 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eb8c 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebbe 8 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebcb 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebd8 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebe5 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebf2 8 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ebff 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec0c 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec19 3 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec21 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec2e 19 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ec34 f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ec4c 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec59 3 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ec61 15 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ec7b 18 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ec98 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eca1 19 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ecbf 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eccc 8 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ecd9 8 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ece6 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ed3f 3 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ed47 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ed54 5 0 0 38 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ed69 10 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ed7e 15 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ed98 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eda5 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7edb2 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7edbf 8 0 0 2c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7edcc 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7edd9 8 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ede6 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7edf3 14 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee0c 14 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee25 19 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee2b f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee43 19 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee49 f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ee61 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ee6c 8 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ee79 8 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ee86 8 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ee93 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eea0 8 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eead 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eeb8 8 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eec5 8 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eed2 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eedf 8 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eeec 14 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef05 14 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef1e 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ef29 14 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef42 14 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef5b 1b 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef61 11 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef7b 14 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ef94 7 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efa0 7 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efac 7 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efb8 7 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efc4 7 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efd0 7 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efdc 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7efe7 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7eff2 12 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f009 12 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f020 19 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f03e f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f052 3 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f05a 3 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f062 6 0 0 2c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f06d 6 0 0 30 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f078 3 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f093 18 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f0b0 6 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f0bb 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f0c5 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f0f5 3 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f0fd 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f108 18 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f125 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f132 5 0 0 2c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f13c 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f147 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f152 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f17e 18 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f19b c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1ac 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1d0 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1db 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1e6 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1f1 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f1fe 1 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f204 c 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f215 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f220 16 5 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f23b 6 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f246 6 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f251 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f25c 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f279 18 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f296 27 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f2c2 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f2cd 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f2da 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f2e5 8 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f309 30 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f317 1b 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f31a 15 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f33e 3a 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f356 1b 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f359 15 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f37d 3e 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f399 1b 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f39c 15 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f3c0 7 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f3cc 7 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f3d8 1b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f3f8 1b 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f418 16 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f433 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f44e 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f469 16 5 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f484 16 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f49f 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f4aa 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f4b5 6 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f4c0 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f4cb 16 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f4e6 17 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f502 6 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f50d 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f518 19 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f51e f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f536 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f541 16 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f55c 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f567 16 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f582 16 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f59d c 0 0 24 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5ae 6 0 0 1c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5b9 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5c4 6 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5cf 6 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5da 6 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5e5 6 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5f0 6 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f5fb 6 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f606 f 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f61a f 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f62e d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f640 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f655 f 0 0 18 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f669 f 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f67d f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f691 f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6a5 8 0 0 5c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6b2 c 0 0 2c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6c3 6 0 0 28 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6ce 6 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6d9 5 0 0 30 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f6e3 13 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f6fb 12 5 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f712 1a 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f731 8 0 0 20 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f73e 22 5 0 30 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f765 18 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f782 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f78f 20 5 0 24 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f7b4 16 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f7cf 20 5 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f7f4 16 5 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f80f 15 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f829 18 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f846 8 0 0 14 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f95b 222 a 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7f964 217 1 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 7f965 215 0 0 4 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 7f994 1e5 0 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 7fb8d ae 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fb93 a0 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fbdd 55 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fc40 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fc57 49 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fc5d 3f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fca5 b9 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fcab af 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7fcdd 7c 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7fceb 6d 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7fd63 b9 13 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fd71 a2 5 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 7fd72 a0 4 0 c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 7fd76 9b 0 0 c c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 7fe21 30 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fe56 47 a 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fe5c 3d 4 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fe60 38 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fea2 30 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fed7 41 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fedd 37 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ff1d 5a 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ff23 50 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ff24 4e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ff89 65 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7ff8f 5b 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7ff90 57 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 7fff3 104 a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fff9 fa 4 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 7fffd f5 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 800fc 45 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80146 ae 16 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80154 97 8 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 80158 92 4 0 c 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 8015c 8d 0 0 c c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 801f9 3f 12 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80207 28 4 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8020b 22 0 0 4 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80246 262 c 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8024d 257 5 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 8024e 255 4 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 80252 250 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 804ad 75 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 804b3 6b 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80527 4d 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8052d 43 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8052e 41 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 80579 5e 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 805dc 5e 7 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8063f 2f e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 4 8064d 1d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 4 + .cbParams + =
+STACK WIN 0 17826 35 0 0 0 0 0 0 0 0
+STACK WIN 0 558b4 e 0 0 0 0 0 0 0 0
+STACK WIN 0 39bc8 e 0 0 0 0 0 0 0 0
+STACK WIN 0 30769 a 0 0 0 0 0 0 0 0
+STACK WIN 0 b722 20 0 0 0 0 0 0 0 0
+STACK WIN 0 1b069 a1 0 0 0 0 0 0 0 0
+STACK WIN 0 17860 24 0 0 0 0 0 0 0 0
+STACK WIN 0 1795e 89 3 0 0 0 0 0 0 0
+STACK WIN 0 39e42 e 0 0 0 0 0 0 0 0
+STACK WIN 0 39ea2 e 0 0 0 0 0 0 0 0
+STACK WIN 0 39eca e 0 0 0 0 0 0 0 0
+STACK WIN 0 1717 4 0 0 0 0 0 0 0 0
+STACK WIN 0 39f0b e 0 0 0 0 0 0 0 0
+STACK WIN 0 39f69 e 0 0 0 0 0 0 0 0
+STACK WIN 0 55abf e 0 0 0 0 0 0 0 0
+STACK WIN 0 55b65 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3a7c5 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3a824 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3a86a 19 0 0 0 0 0 0 0 0
+STACK WIN 0 3a94d e 0 0 0 0 0 0 0 0
+STACK WIN 0 3a995 19 0 0 0 0 0 0 0 0
+STACK WIN 0 3a9c6 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3aa01 4 0 0 0 0 0 0 0 0
+STACK WIN 0 3aa1d e 0 0 0 0 0 0 0 0
+STACK WIN 0 2c86d 29 0 0 0 0 0 0 0 0
+STACK WIN 0 3aad0 4 0 0 0 0 0 0 0 0
+STACK WIN 0 3ab10 11 0 0 0 0 0 0 0 0
+STACK WIN 0 3abe7 7a 0 0 0 0 0 0 0 0
+STACK WIN 0 98eb 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9766 11 0 0 4 0 0 0 0 0
+STACK WIN 0 977a 11 0 0 4 0 0 0 0 0
+STACK WIN 0 978e 13 0 0 8 0 0 0 0 0
+STACK WIN 0 97a2 13 0 0 c 0 0 0 0 0
+STACK WIN 0 97b6 f 0 0 8 0 0 0 0 0
+STACK WIN 0 97c6 120 0 0 c 0 0 0 0 0
+STACK WIN 0 2ff92 18 0 0 0 0 0 0 0 0
+STACK WIN 0 929c f 0 0 0 0 0 0 0 0
+STACK WIN 0 13093 e 0 0 0 0 0 0 0 0
+STACK WIN 0 59b72 5 0 0 0 0 0 0 0 0
+STACK WIN 0 59dd6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 59f9f 14 0 0 0 0 0 0 0 0
+STACK WIN 0 30cce 1c 0 0 0 0 0 0 0 0
+STACK WIN 0 1c858 6a 3 0 0 0 0 0 0 0
+STACK WIN 0 3bde2 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3c06f 15 0 0 0 0 0 0 0 0
+STACK WIN 0 5c223 1e 0 0 0 0 0 0 0 0
+STACK WIN 0 3c77a 2c 0 0 0 0 0 0 0 0
+STACK WIN 0 f049 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3c85e e 0 0 0 0 0 0 0 0
+STACK WIN 0 18ef e 0 0 0 0 0 0 0 0
+STACK WIN 0 1921 4 0 0 0 0 0 0 0 0
+STACK WIN 0 3cac5 4 0 0 0 0 0 0 0 0
+STACK WIN 0 5c6de b 0 0 0 0 0 0 0 0
+STACK WIN 0 5cbad 1 0 0 0 0 0 0 0 0
+STACK WIN 0 5d0d4 1 0 0 0 0 0 0 0 0
+STACK WIN 0 5d2ff 39 0 0 0 0 0 0 0 0
+STACK WIN 0 1f951 3c 0 0 0 0 0 0 0 0
+STACK WIN 0 3d377 4 0 0 0 0 0 0 0 0
+STACK WIN 0 5d93e 4d 0 0 0 0 0 0 0 0
+STACK WIN 0 5de3f 1a 0 0 0 0 0 0 0 0
+STACK WIN 0 5e00f 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3d7a4 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3d9cf 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3e895 11 0 0 0 0 0 0 0 0
+STACK WIN 0 3eadf ab 0 0 0 0 0 0 0 0
+STACK WIN 0 3f743 134 0 0 0 0 0 0 0 0
+STACK WIN 0 3ffbd 3e 0 0 0 0 0 0 0 0
+STACK WIN 0 27b99 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 200d1 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 40019 e 0 0 0 0 0 0 0 0
+STACK WIN 0 401f7 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40258 e 0 0 0 0 0 0 0 0
+STACK WIN 0 4029c e 0 0 0 0 0 0 0 0
+STACK WIN 0 402de e 0 0 0 0 0 0 0 0
+STACK WIN 0 40327 e 0 0 0 0 0 0 0 0
+STACK WIN 0 403bd e 0 0 0 0 0 0 0 0
+STACK WIN 0 40414 e 0 0 0 0 0 0 0 0
+STACK WIN 0 4043c e 0 0 0 0 0 0 0 0
+STACK WIN 0 5e670 11 0 0 4 0 0 0 0 0
+STACK WIN 0 404b7 e 0 0 0 0 0 0 0 0
+STACK WIN 0 1d07e 8 0 0 0 0 0 0 0 0
+STACK WIN 0 365f6 b 0 0 0 0 0 0 0 0
+STACK WIN 0 3594f 6 0 0 0 0 0 0 0 0
+STACK WIN 0 17443 11 0 0 0 0 0 0 0 0
+STACK WIN 0 407a9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 407c5 4 0 0 0 0 0 0 0 0
+STACK WIN 0 407e1 4 0 0 0 0 0 0 0 0
+STACK WIN 0 407fd 4 0 0 0 0 0 0 0 0
+STACK WIN 0 40817 4 0 0 0 0 0 0 0 0
+STACK WIN 0 40833 4 0 0 0 0 0 0 0 0
+STACK WIN 0 4084f 4 0 0 0 0 0 0 0 0
+STACK WIN 0 40892 e 0 0 0 0 0 0 0 0
+STACK WIN 0 5e882 11 0 0 8 0 0 0 0 0
+STACK WIN 0 abc1 d 0 0 0 0 0 0 0 0
+STACK WIN 0 40a26 16 0 0 0 0 0 0 0 0
+STACK WIN 0 40b63 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40c62 17 0 0 0 0 0 0 0 0
+STACK WIN 0 111da 31 0 0 0 0 0 0 0 0
+STACK WIN 0 5eee3 8 0 0 c 0 0 0 0 0
+STACK WIN 0 1c8c e 0 0 0 0 0 0 0 0
+STACK WIN 0 40cf3 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40d2a e 0 0 0 0 0 0 0 0
+STACK WIN 0 40d78 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40da4 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40dd0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40e00 e 0 0 0 0 0 0 0 0
+STACK WIN 0 5f1bf e 0 0 0 0 0 0 0 0
+STACK WIN 0 5f3e0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40e66 e 0 0 0 0 0 0 0 0
+STACK WIN 0 40e92 e 0 0 0 0 0 0 0 0
+STACK WIN 0 5f5c9 e 0 0 0 0 0 0 0 0
+STACK WIN 0 5f72a e 0 0 0 0 0 0 0 0
+STACK WIN 0 5f9fa 4 0 0 0 0 0 0 0 0
+STACK WIN 0 5fa2d 1e 0 0 0 0 0 0 0 0
+STACK WIN 0 40faa 4 0 0 0 0 0 0 0 0
+STACK WIN 0 40fe6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 5fc02 9 0 0 0 0 0 0 0 0
+STACK WIN 0 11419 21 0 0 0 0 0 0 0 0
+STACK WIN 0 4171b 4 0 0 0 0 0 0 0 0
+STACK WIN 0 41748 48 0 0 0 0 0 0 0 0
+STACK WIN 0 607cb 30 0 0 0 0 0 0 0 0
+STACK WIN 0 418d1 3f 0 0 0 0 0 0 0 0
+STACK WIN 0 60b60 a 0 0 0 0 0 0 0 0
+STACK WIN 0 60bbf f 0 0 8 0 0 0 0 0
+STACK WIN 0 41b32 7 0 0 0 0 0 0 0 0
+STACK WIN 0 21af 7 0 0 0 0 0 0 0 0
+STACK WIN 0 12f1d 6 0 0 0 0 0 0 0 0
+STACK WIN 0 16f83 6 0 0 0 0 0 0 0 0
+STACK WIN 0 12f08 10 0 0 0 0 0 0 0 0
+STACK WIN 0 9920 a 0 0 0 0 0 0 0 0
+STACK WIN 0 41c56 4 0 0 0 0 0 0 0 0
+STACK WIN 0 41c70 4 0 0 0 0 0 0 0 0
+STACK WIN 0 41c8a 4 0 0 0 0 0 0 0 0
+STACK WIN 0 41ca4 4 0 0 0 0 0 0 0 0
+STACK WIN 0 41dcc 10 0 0 0 0 0 0 0 0
+STACK WIN 0 43025 4 0 0 0 0 0 0 0 0
+STACK WIN 0 1e017 2eb 0 0 0 0 0 0 0 0
+STACK WIN 0 43374 14 0 0 0 0 0 0 0 0
+STACK WIN 0 434b2 17 0 0 0 0 0 0 0 0
+STACK WIN 0 434e5 60 0 0 0 0 0 0 0 0
+STACK WIN 0 61723 e 0 0 0 0 0 0 0 0
+STACK WIN 0 435d2 e 0 0 0 0 0 0 0 0
+STACK WIN 0 132ee 6 0 0 0 0 0 0 0 0
+STACK WIN 0 617fd e 0 0 0 0 0 0 0 0
+STACK WIN 0 436ca 11 0 0 0 0 0 0 0 0
+STACK WIN 0 437f5 10 0 0 0 0 0 0 0 0
+STACK WIN 0 438be 4a 0 0 0 0 0 0 0 0
+STACK WIN 0 31d8e f 0 0 0 0 0 0 0 0
+STACK WIN 0 1a834 36 0 0 0 0 0 0 0 0
+STACK WIN 0 2610 b 0 0 0 0 0 0 0 0
+STACK WIN 0 36759 b 0 0 0 0 0 0 0 0
+STACK WIN 0 951a b 0 0 0 0 0 0 0 0
+STACK WIN 0 2432 b 0 0 0 0 0 0 0 0
+STACK WIN 0 61a61 b 0 0 0 0 0 0 0 0
+STACK WIN 0 1746c 23 0 0 0 0 0 0 0 0
+STACK WIN 0 17459 10e 0 0 0 0 0 0 0 0
+STACK WIN 0 1efce 12 0 0 0 0 0 0 0 0
+STACK WIN 0 129f9 b 0 0 0 0 0 0 0 0
+STACK WIN 0 44733 c 0 0 0 0 0 0 0 0
+STACK WIN 0 9728 a 0 0 0 0 0 0 0 0
+STACK WIN 0 62be6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 448d9 a 0 0 0 0 0 0 0 0
+STACK WIN 0 13771 7 0 0 0 0 0 0 0 0
+STACK WIN 0 2c151 14 0 0 0 0 0 0 0 0
+STACK WIN 0 2fed7 40 0 0 0 0 0 0 0 0
+STACK WIN 0 32992 13 0 0 0 0 0 0 0 0
+STACK WIN 0 63421 4 0 0 0 0 0 0 0 0
+STACK WIN 0 6362b 4 0 0 0 0 0 0 0 0
+STACK WIN 0 636d3 4 0 0 0 0 0 0 0 0
+STACK WIN 0 6452a e 0 0 0 0 0 0 0 0
+STACK WIN 0 6665c 1c 0 0 0 0 0 0 0 0
+STACK WIN 0 66682 b 0 0 0 0 0 0 0 0
+STACK WIN 0 66801 3b 0 0 0 0 0 0 0 0
+STACK WIN 0 66918 1a 0 0 0 0 0 0 0 0
+STACK WIN 0 669cd 3b 0 0 0 0 0 0 0 0
+STACK WIN 0 66ae8 1a 0 0 0 0 0 0 0 0
+STACK WIN 0 66b9d 3b 0 0 0 0 0 0 0 0
+STACK WIN 0 66cbf 1a 0 0 0 0 0 0 0 0
+STACK WIN 0 67093 11 0 0 0 0 0 0 0 0
+STACK WIN 0 675f4 11 0 0 0 0 0 0 0 0
+STACK WIN 0 677e9 11 0 0 0 0 0 0 0 0
+STACK WIN 0 67941 11 0 0 0 0 0 0 0 0
+STACK WIN 0 67dd6 2c 0 0 0 0 0 0 0 0
+STACK WIN 0 1f571 50 0 0 0 0 0 0 0 0
+STACK WIN 0 68496 4a 0 0 0 0 0 0 0 0
+STACK WIN 0 1366c 45 0 0 0 0 0 0 0 0
+STACK WIN 0 29b93 127 0 0 0 0 0 0 0 0
+STACK WIN 0 44db3 55 0 0 0 0 0 0 0 0
+STACK WIN 0 68734 55 0 0 0 0 0 0 0 0
+STACK WIN 0 69ce0 21 0 0 0 0 0 0 0 0
+STACK WIN 0 69e0e 21 0 0 0 0 0 0 0 0
+STACK WIN 0 69f2a 21 0 0 0 0 0 0 0 0
+STACK WIN 0 6a054 21 0 0 0 0 0 0 0 0
+STACK WIN 0 453fe 21 0 0 0 0 0 0 0 0
+STACK WIN 0 6a220 21 0 0 0 0 0 0 0 0
+STACK WIN 0 6a339 21 0 0 0 0 0 0 0 0
+STACK WIN 0 6a4e8 11 0 0 0 0 0 0 0 0
+STACK WIN 0 6a4fe c7 0 0 0 0 0 0 0 0
+STACK WIN 0 6a5ca 3e 0 0 0 0 0 0 0 0
+STACK WIN 0 6b5b5 48 0 0 0 0 0 0 0 0
+STACK WIN 0 6b683 c 0 0 4 0 0 0 0 0
+STACK WIN 0 2146c c 0 0 8 0 0 0 0 0
+STACK WIN 0 6b694 a 0 0 0 0 0 0 0 0
+STACK WIN 0 45f23 e 0 0 0 0 0 0 0 0
+STACK WIN 0 165e9 13 0 0 0 0 0 0 0 0
+STACK WIN 0 46631 e 0 0 0 0 0 0 0 0
+STACK WIN 0 46678 4 0 0 0 0 0 0 0 0
+STACK WIN 0 466a9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 466d4 4 0 0 0 0 0 0 0 0
+STACK WIN 0 6bc8a 4 0 0 0 0 0 0 0 0
+STACK WIN 0 6be06 7f 3 0 0 0 0 0 0 0
+STACK WIN 0 6fe04 4 0 0 0 0 0 0 0 0
+STACK WIN 0 189fc 28 0 0 0 0 0 0 0 0
+STACK WIN 0 6ff09 4 0 0 0 0 0 0 0 0
+STACK WIN 0 70245 8 0 0 0 0 0 0 0 0
+STACK WIN 0 70252 8 0 0 0 0 0 0 0 0
+STACK WIN 0 70362 4 0 0 0 0 0 0 0 0
+STACK WIN 0 704cb 4 0 0 0 0 0 0 0 0
+STACK WIN 0 70927 4 0 0 0 0 0 0 0 0
+STACK WIN 0 4677c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 70a99 4 0 0 0 0 0 0 0 0
+STACK WIN 0 467de 4 0 0 0 0 0 0 0 0
+STACK WIN 0 70b3f c 0 0 0 0 0 0 0 0
+STACK WIN 0 1b3c1 c 0 0 0 0 0 0 0 0
+STACK WIN 0 4687c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 70fe7 12 0 0 0 0 0 0 0 0
+STACK WIN 0 7108d 4f 4 0 0 0 0 0 0 0
+STACK WIN 0 712e3 17 0 0 0 0 0 0 0 0
+STACK WIN 0 714d7 c 0 0 0 0 0 0 0 0
+STACK WIN 0 715db c 0 0 0 0 0 0 0 0
+STACK WIN 0 715f9 6 0 0 0 0 0 0 0 0
+STACK WIN 0 468d9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 468e9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 71674 4 0 0 0 0 0 0 0 0
+STACK WIN 0 46968 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7189d 11 0 0 0 0 0 0 0 0
+STACK WIN 0 7199c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 71be9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 71ca8 4 0 0 0 0 0 0 0 0
+STACK WIN 0 469a3 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72188 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7236f 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7237f 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72787 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72aa3 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72c86 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72e4c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72e5c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 72fbb 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7314a 4 0 0 0 0 0 0 0 0
+STACK WIN 0 731c9 4 0 0 0 0 0 0 0 0
+STACK WIN 0 732a4 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73326 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73432 4 0 0 0 0 0 0 0 0
+STACK WIN 0 735db 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73692 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73748 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73854 4 0 0 0 0 0 0 0 0
+STACK WIN 0 739d1 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73d11 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73de7 4 0 0 0 0 0 0 0 0
+STACK WIN 0 73ee3 4 0 0 0 0 0 0 0 0
+STACK WIN 0 74497 4 0 0 0 0 0 0 0 0
+STACK WIN 0 469dd 4 0 0 0 0 0 0 0 0
+STACK WIN 0 745dd 4 0 0 0 0 0 0 0 0
+STACK WIN 0 469fe 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7487a 4 0 0 0 0 0 0 0 0
+STACK WIN 0 74a7a 4 0 0 0 0 0 0 0 0
+STACK WIN 0 74b86 c 0 0 0 0 0 0 0 0
+STACK WIN 0 7507d 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7521c 4 0 0 0 0 0 0 0 0
+STACK WIN 0 75271 b 0 0 4 0 0 0 0 0
+STACK WIN 0 75348 4 0 0 0 0 0 0 0 0
+STACK WIN 0 753b9 c 0 0 0 0 0 0 0 0
+STACK WIN 0 75454 c 0 0 0 0 0 0 0 0
+STACK WIN 0 754d3 f 0 0 0 0 0 0 0 0
+STACK WIN 0 756a5 4 0 0 0 0 0 0 0 0
+STACK WIN 0 763c9 21 0 0 0 0 0 0 0 0
+STACK WIN 0 a415 d 0 0 0 0 0 0 0 0
+STACK WIN 0 13038 2d 0 0 0 0 0 0 0 0
+STACK WIN 0 127b2 7 0 0 0 0 0 0 0 0
+STACK WIN 0 bf3d 6 0 0 0 0 0 0 0 0
+STACK WIN 0 bf64 5 0 0 0 0 0 0 0 0
+STACK WIN 0 9915 6 0 0 0 0 0 0 0 0
+STACK WIN 0 127a7 6 0 0 0 0 0 0 0 0
+STACK WIN 0 7a6b5 1b 0 0 0 0 0 0 0 0
+STACK WIN 0 7a6e2 1b 0 0 0 0 0 0 0 0
+STACK WIN 0 35819 c 0 0 0 0 0 0 0 0
+STACK WIN 0 7a773 7b e 0 0 0 0 0 0 0
+STACK WIN 0 121de fc 3 0 0 0 0 0 0 0
+STACK WIN 0 1bdd2 1bc 9 0 0 0 0 0 0 0
+STACK WIN 0 a2d4 85 2 0 0 0 0 0 0 0
+STACK WIN 0 7a8b2 ab 3 0 0 0 0 0 0 0
+STACK WIN 0 7ad9c 5d 6 0 0 0 0 0 0 0
+STACK WIN 0 2c16a 58 4 0 0 0 0 0 0 0
+STACK WIN 0 c0ed 74 0 0 0 0 0 0 0 0
+STACK WIN 0 17fc1 82 9 0 0 0 0 0 0 0
+STACK WIN 0 2a41a 113 0 0 0 0 0 0 0 0
+STACK WIN 0 7e16b f 0 0 c 0 0 0 0 0
+STACK WIN 0 7e17f f 0 0 14 0 0 0 0 0
+STACK WIN 0 7e193 f 0 0 28 0 0 0 0 0
+STACK WIN 0 7e1a7 f 0 0 4 0 0 0 0 0
+STACK WIN 0 7e1bb f 0 0 8 0 0 0 0 0
+STACK WIN 0 7e1cf f 0 0 10 0 0 0 0 0
+STACK WIN 0 ddf5 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7e1e3 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7e1ec 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7e299 d 0 0 c 0 0 0 0 0
+STACK WIN 0 7e2ab d 0 0 18 0 0 0 0 0
+STACK WIN 0 7e2bd d 0 0 24 0 0 0 0 0
+STACK WIN 0 7e2e8 4 0 0 10 0 0 0 0 0
+STACK WIN 0 7e306 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7e313 5 0 0 4 0 0 0 0 0
+STACK WIN 0 7e33a c 0 0 18 0 0 0 0 0
+STACK WIN 0 7e34b 5 0 0 28 0 0 0 0 0
+STACK WIN 0 7e355 8 0 0 28 0 0 0 0 0
+STACK WIN 0 7e362 5 0 0 8 0 0 0 0 0
+STACK WIN 0 7e36c c 0 0 14 0 0 0 0 0
+STACK WIN 0 7e37d 6 0 0 18 0 0 0 0 0
+STACK WIN 0 7e388 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7e393 6 0 0 20 0 0 0 0 0
+STACK WIN 0 7e39e 6 0 0 18 0 0 0 0 0
+STACK WIN 0 14ae7 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7e3a9 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7e3b4 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7e3bf 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7e3e8 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7e43b 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7e45c 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7e469 c 0 0 1c 0 0 0 0 0
+STACK WIN 0 7e47a a 0 0 0 0 0 0 0 0
+STACK WIN 0 7e489 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7e496 5 0 0 20 0 0 0 0 0
+STACK WIN 0 7e4a0 c 0 0 4 0 0 0 0 0
+STACK WIN 0 7e4b1 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7e4be c 0 0 8 0 0 0 0 0
+STACK WIN 0 7e4cf c 0 0 c 0 0 0 0 0
+STACK WIN 0 7e4e0 c 0 0 14 0 0 0 0 0
+STACK WIN 0 7e536 c 0 0 18 0 0 0 0 0
+STACK WIN 0 7e547 e 0 0 8 0 0 0 0 0
+STACK WIN 0 7e55a c 0 0 28 0 0 0 0 0
+STACK WIN 0 7e56b 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7e593 8 0 0 28 0 0 0 0 0
+STACK WIN 0 7e5bc 8 0 0 34 0 0 0 0 0
+STACK WIN 0 7e5c9 5 0 0 28 0 0 0 0 0
+STACK WIN 0 7e5d3 5 0 0 24 0 0 0 0 0
+STACK WIN 0 7e5f5 a 0 0 14 0 0 0 0 0
+STACK WIN 0 7e604 c 0 0 30 0 0 0 0 0
+STACK WIN 0 7e615 d 0 0 4 0 0 0 0 0
+STACK WIN 0 7e659 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7e69c 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7e6a9 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7e6b6 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7e6c3 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7e728 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7e735 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7e7f2 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7e7fd 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7e83b 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7e848 5 0 0 8 0 0 0 0 0
+STACK WIN 0 7e878 5 0 0 10 0 0 0 0 0
+STACK WIN 0 7e88d 5 0 0 18 0 0 0 0 0
+STACK WIN 0 260c2 5 0 0 4 0 0 0 0 0
+STACK WIN 0 7e8a8 5 0 0 14 0 0 0 0 0
+STACK WIN 0 7e8b2 5 0 0 c 0 0 0 0 0
+STACK WIN 0 7e98d 3 0 0 4 0 0 0 0 0
+STACK WIN 0 7e9ae 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7e9da 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7e9e7 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7ea40 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7ea4d 5 0 0 1c 0 0 0 0 0
+STACK WIN 0 7ea57 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7ea62 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7ea6d 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7ea78 6 0 0 18 0 0 0 0 0
+STACK WIN 0 7ea83 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7ea8e 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7ea99 6 0 0 1c 0 0 0 0 0
+STACK WIN 0 7eaa4 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7eac6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7eacf c 0 0 20 0 0 0 0 0
+STACK WIN 0 7eae0 d 0 0 1c 0 0 0 0 0
+STACK WIN 0 7eaf2 d 0 0 10 0 0 0 0 0
+STACK WIN 0 7eb04 b 0 0 0 0 0 0 0 0
+STACK WIN 0 7eb3c d 0 0 14 0 0 0 0 0
+STACK WIN 0 7eb4e d 0 0 c 0 0 0 0 0
+STACK WIN 0 7eb60 5 0 0 c 0 0 0 0 0
+STACK WIN 0 7eb6a 8 0 0 38 0 0 0 0 0
+STACK WIN 0 7eb77 5 0 0 14 0 0 0 0 0
+STACK WIN 0 7eb81 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7eb8c 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7ebbe 8 0 0 18 0 0 0 0 0
+STACK WIN 0 7ebcb 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7ebd8 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7ebe5 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7ebf2 8 0 0 24 0 0 0 0 0
+STACK WIN 0 7ebff 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7ec0c 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7ec19 3 0 0 18 0 0 0 0 0
+STACK WIN 0 7ec21 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7ec4c 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7ec59 3 0 0 0 0 0 0 0 0
+STACK WIN 0 7ec98 4 0 0 0 0 0 0 0 0
+STACK WIN 0 7ecbf 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7eccc 8 0 0 18 0 0 0 0 0
+STACK WIN 0 7ecd9 8 0 0 24 0 0 0 0 0
+STACK WIN 0 7ece6 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7ed3f 3 0 0 10 0 0 0 0 0
+STACK WIN 0 7ed47 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7ed54 5 0 0 38 0 0 0 0 0
+STACK WIN 0 7ed98 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7eda5 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7edb2 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7edbf 8 0 0 2c 0 0 0 0 0
+STACK WIN 0 7edcc 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7edd9 8 0 0 8 0 0 0 0 0
+STACK WIN 0 7ede6 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7ee61 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7ee6c 8 0 0 20 0 0 0 0 0
+STACK WIN 0 7ee79 8 0 0 20 0 0 0 0 0
+STACK WIN 0 7ee86 8 0 0 10 0 0 0 0 0
+STACK WIN 0 7ee93 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7eea0 8 0 0 1c 0 0 0 0 0
+STACK WIN 0 7eead 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7eeb8 8 0 0 24 0 0 0 0 0
+STACK WIN 0 7eec5 8 0 0 18 0 0 0 0 0
+STACK WIN 0 7eed2 8 0 0 14 0 0 0 0 0
+STACK WIN 0 7eedf 8 0 0 20 0 0 0 0 0
+STACK WIN 0 7ef1e 6 0 0 0 0 0 0 0 0
+STACK WIN 0 7ef94 7 0 0 4 0 0 0 0 0
+STACK WIN 0 7efa0 7 0 0 c 0 0 0 0 0
+STACK WIN 0 7efac 7 0 0 8 0 0 0 0 0
+STACK WIN 0 7efb8 7 0 0 10 0 0 0 0 0
+STACK WIN 0 7efc4 7 0 0 28 0 0 0 0 0
+STACK WIN 0 7efd0 7 0 0 20 0 0 0 0 0
+STACK WIN 0 7efdc 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7efe7 6 0 0 18 0 0 0 0 0
+STACK WIN 0 7f052 3 0 0 0 0 0 0 0 0
+STACK WIN 0 7f05a 3 0 0 c 0 0 0 0 0
+STACK WIN 0 7f062 6 0 0 2c 0 0 0 0 0
+STACK WIN 0 7f06d 6 0 0 30 0 0 0 0 0
+STACK WIN 0 7f078 3 0 0 8 0 0 0 0 0
+STACK WIN 0 7f0b0 6 0 0 20 0 0 0 0 0
+STACK WIN 0 7f0bb 5 0 0 4 0 0 0 0 0
+STACK WIN 0 7f0c5 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7f0f5 3 0 0 14 0 0 0 0 0
+STACK WIN 0 7f0fd 6 0 0 0 0 0 0 0 0
+STACK WIN 0 7f125 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7f132 5 0 0 2c 0 0 0 0 0
+STACK WIN 0 7f13c 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f147 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7f152 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7f19b c 0 0 4 0 0 0 0 0
+STACK WIN 0 7f1ac 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7f1d0 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7f1db 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7f1e6 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7f1f1 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f1fe 1 0 0 0 0 0 0 0 0
+STACK WIN 0 7f204 c 0 0 10 0 0 0 0 0
+STACK WIN 0 7f215 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7f23b 6 0 0 1c 0 0 0 0 0
+STACK WIN 0 7f246 6 0 0 24 0 0 0 0 0
+STACK WIN 0 7f251 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7f2c2 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f2cd 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7f2da 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f2e5 8 0 0 c 0 0 0 0 0
+STACK WIN 0 7f3c0 7 0 0 1c 0 0 0 0 0
+STACK WIN 0 7f3cc 7 0 0 24 0 0 0 0 0
+STACK WIN 0 7f49f 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7f4aa 6 0 0 18 0 0 0 0 0
+STACK WIN 0 7f4b5 6 0 0 1c 0 0 0 0 0
+STACK WIN 0 7f4c0 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7f502 6 0 0 24 0 0 0 0 0
+STACK WIN 0 7f50d 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7f536 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7f55c 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f59d c 0 0 24 0 0 0 0 0
+STACK WIN 0 7f5ae 6 0 0 1c 0 0 0 0 0
+STACK WIN 0 7f5b9 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7f5c4 6 0 0 10 0 0 0 0 0
+STACK WIN 0 7f5cf 6 0 0 4 0 0 0 0 0
+STACK WIN 0 7f5da 6 0 0 8 0 0 0 0 0
+STACK WIN 0 7f5e5 6 0 0 14 0 0 0 0 0
+STACK WIN 0 7f5f0 6 0 0 18 0 0 0 0 0
+STACK WIN 0 7f5fb 6 0 0 20 0 0 0 0 0
+STACK WIN 0 7f606 f 0 0 10 0 0 0 0 0
+STACK WIN 0 7f61a f 0 0 14 0 0 0 0 0
+STACK WIN 0 7f62e d 0 0 0 0 0 0 0 0
+STACK WIN 0 7f640 10 0 0 4 0 0 0 0 0
+STACK WIN 0 7f655 f 0 0 18 0 0 0 0 0
+STACK WIN 0 7f669 f 0 0 c 0 0 0 0 0
+STACK WIN 0 7f67d f 0 0 4 0 0 0 0 0
+STACK WIN 0 7f691 f 0 0 8 0 0 0 0 0
+STACK WIN 0 7f6a5 8 0 0 5c 0 0 0 0 0
+STACK WIN 0 7f6b2 c 0 0 2c 0 0 0 0 0
+STACK WIN 0 7f6c3 6 0 0 28 0 0 0 0 0
+STACK WIN 0 7f6ce 6 0 0 c 0 0 0 0 0
+STACK WIN 0 7f6d9 5 0 0 30 0 0 0 0 0
+STACK WIN 0 7f731 8 0 0 20 0 0 0 0 0
+STACK WIN 0 7f782 8 0 0 4 0 0 0 0 0
+STACK WIN 0 7f846 8 0 0 14 0 0 0 0 0
+STACK WIN 0 39aa8 e6 a 0 c 1c 0 0 0 1
+STACK WIN 0 dedf 70 3 0 8 c 0 0 0 0
+STACK WIN 0 df4f 23 0 0 0 0 0 0 0 0
+STACK WIN 0 7fc40 12 0 0 0 0 0 0 0 0
diff --git a/src/processor/testdata/symbols/ld-2.13.so/C32AD7E235EA6112E02A5B9D6219C4850/ld-2.13.so.sym b/src/processor/testdata/symbols/ld-2.13.so/C32AD7E235EA6112E02A5B9D6219C4850/ld-2.13.so.sym
new file mode 100644
index 0000000..b15688e
--- /dev/null
+++ b/src/processor/testdata/symbols/ld-2.13.so/C32AD7E235EA6112E02A5B9D6219C4850/ld-2.13.so.sym
@@ -0,0 +1,782 @@
+MODULE Linux x86_64 C32AD7E235EA6112E02A5B9D6219C4850 ld-2.13.so
+PUBLIC 8600 0 _dl_rtld_di_serinfo
+PUBLIC e780 0 _dl_debug_state
+PUBLIC fa80 0 _dl_mcount
+PUBLIC 106e0 0 _dl_get_tls_static_info
+PUBLIC 10930 0 _dl_allocate_tls_init
+PUBLIC 10cf0 0 _dl_deallocate_tls
+PUBLIC 110c0 0 __tls_get_addr
+PUBLIC 11260 0 _dl_allocate_tls
+PUBLIC 114a0 0 _dl_tls_setup
+PUBLIC 117a0 0 _dl_make_stack_executable
+PUBLIC 15480 0 free
+PUBLIC 154c0 0 __libc_memalign
+PUBLIC 155c0 0 malloc
+PUBLIC 155d0 0 realloc
+PUBLIC 15680 0 calloc
+STACK CFI INIT b40 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b50 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b60 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b70 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b71 .cfa: $rsp 16 +
+STACK CFI b74 $rbx: .cfa -16 + ^
+STACK CFI b7e .cfa: $rsp 48 +
+STACK CFI INIT be0 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be1 .cfa: $rsp 16 +
+STACK CFI be4 $rbx: .cfa -16 + ^
+STACK CFI bfb .cfa: $rsp 32 +
+STACK CFI INIT c30 4ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c32 .cfa: $rsp 16 +
+STACK CFI c3e .cfa: $rsp 24 +
+STACK CFI c41 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI c43 .cfa: $rsp 32 +
+STACK CFI c44 .cfa: $rsp 40 +
+STACK CFI c45 .cfa: $rsp 48 +
+STACK CFI c4c $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI c53 .cfa: $rsp 320 +
+STACK CFI INIT 1120 600 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1121 .cfa: $rsp 16 +
+STACK CFI 1124 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1130 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 1720 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 172d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 1736 .cfa: $rsp 96 +
+STACK CFI 1739 $r12: .cfa -16 + ^
+STACK CFI INIT 17c0 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1800 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1840 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1841 .cfa: $rsp 16 +
+STACK CFI 1844 $rbx: .cfa -16 + ^
+STACK CFI INIT 1870 92 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1871 .cfa: $rsp 16 +
+STACK CFI 1872 .cfa: $rsp 24 +
+STACK CFI 1876 .cfa: $rsp 48 +
+STACK CFI 187b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1910 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1930 217 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1931 .cfa: $rsp 16 +
+STACK CFI 1934 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 193d $r14: .cfa -24 + ^
+STACK CFI 1946 $r13: .cfa -32 + ^
+STACK CFI 194c $r12: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 1b50 6cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1b51 .cfa: $rsp 16 +
+STACK CFI 1b62 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1b6f $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 1b75 $r12: .cfa -48 + ^
+STACK CFI 1bb3 $rbx: .cfa -56 + ^
+STACK CFI INIT 2220 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2227 .cfa: $rsp 16 +
+STACK CFI INIT 2240 163 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2252 .cfa: $rsp 16 +
+STACK CFI 225b $rbx: .cfa -16 + ^
+STACK CFI INIT 23b0 128 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 23c3 .cfa: $rsp 48 +
+STACK CFI 23d8 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 24e0 272f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 24e1 .cfa: $rsp 16 +
+STACK CFI 24eb $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 24f2 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 2500 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 2551 $rbx: .cfa -56 + ^
+STACK CFI INIT 4c10 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4c11 .cfa: $rsp 16 +
+STACK CFI 4c14 $rbx: .cfa -16 + ^
+STACK CFI INIT 4c50 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4d50 ae .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4d52 .cfa: $rsp 16 +
+STACK CFI 4d58 $r13: .cfa -16 + ^
+STACK CFI 4d5a .cfa: $rsp 24 +
+STACK CFI 4d5d $r12: .cfa -24 + ^
+STACK CFI 4d5e .cfa: $rsp 32 +
+STACK CFI 4d60 $rbp: .cfa -32 + ^
+STACK CFI 4d61 .cfa: $rsp 40 +
+STACK CFI 4d65 .cfa: $rsp 48 +
+STACK CFI 4d67 $rbx: .cfa -40 + ^
+STACK CFI INIT 4e00 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e0e .cfa: $rsp 32 +
+STACK CFI 4e11 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 4e60 32a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e62 .cfa: $rsp 16 +
+STACK CFI 4e64 .cfa: $rsp 24 +
+STACK CFI 4e66 .cfa: $rsp 32 +
+STACK CFI 4e69 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 4e6b .cfa: $rsp 40 +
+STACK CFI 4e6c .cfa: $rsp 48 +
+STACK CFI 4e6e $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 4e6f .cfa: $rsp 56 +
+STACK CFI 4e72 $rbx: .cfa -56 + ^
+STACK CFI 4e76 .cfa: $rsp 128 +
+STACK CFI INIT 5190 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5192 .cfa: $rsp 16 +
+STACK CFI 5194 .cfa: $rsp 24 +
+STACK CFI 5197 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 5198 .cfa: $rsp 32 +
+STACK CFI 5199 .cfa: $rsp 40 +
+STACK CFI 519c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 51a0 .cfa: $rsp 48 +
+STACK CFI INIT 5270 176 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5271 .cfa: $rsp 16 +
+STACK CFI 5277 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT 53f0 19c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 53f1 .cfa: $rsp 16 +
+STACK CFI 53f4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 53ff $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 542e $rbx: .cfa -56 + ^
+STACK CFI INIT 5590 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 559c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 55b7 .cfa: $rsp 64 +
+STACK CFI 55bd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 5610 58c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5611 .cfa: $rsp 16 +
+STACK CFI 5617 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 561c $r15: .cfa -24 + ^
+STACK CFI 5625 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 5629 $rbx: .cfa -56 + ^
+STACK CFI INIT 5ba0 438 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5ba1 .cfa: $rsp 16 +
+STACK CFI 5ba4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 5bf0 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 5fe0 119d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5fe1 .cfa: $rsp 16 +
+STACK CFI 5fe4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 5feb $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 5ff0 $r13: .cfa -40 + ^
+STACK CFI 5ff5 $r12: .cfa -48 + ^
+STACK CFI 6017 $rbx: .cfa -56 + ^
+STACK CFI INIT 7180 2c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7182 .cfa: $rsp 16 +
+STACK CFI 718b $r15: .cfa -16 + ^
+STACK CFI 718d .cfa: $rsp 24 +
+STACK CFI 7190 $r14: .cfa -24 + ^
+STACK CFI 7192 .cfa: $rsp 32 +
+STACK CFI 7195 $r13: .cfa -32 + ^
+STACK CFI 7197 .cfa: $rsp 40 +
+STACK CFI 719a $r12: .cfa -40 + ^
+STACK CFI 719b .cfa: $rsp 48 +
+STACK CFI 719c .cfa: $rsp 56 +
+STACK CFI 719f $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 71a6 .cfa: $rsp 96 +
+STACK CFI INIT 7450 18f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7458 $rbx: .cfa -48 + ^
+STACK CFI 746a $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^
+STACK CFI 7478 .cfa: $rsp 48 +
+STACK CFI 747e $r14: .cfa -16 + ^
+STACK CFI INIT 75e0 171 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75e2 .cfa: $rsp 16 +
+STACK CFI 75eb .cfa: $rsp 24 +
+STACK CFI 75ee $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 75f3 .cfa: $rsp 32 +
+STACK CFI 75f6 $r12: .cfa -32 + ^
+STACK CFI 75fa .cfa: $rsp 40 +
+STACK CFI 75fb .cfa: $rsp 48 +
+STACK CFI 7605 $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 7760 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 77b0 8e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 77b2 .cfa: $rsp 16 +
+STACK CFI 77b4 .cfa: $rsp 24 +
+STACK CFI 77b7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 77b9 .cfa: $rsp 32 +
+STACK CFI 77bb .cfa: $rsp 40 +
+STACK CFI 77be $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 77bf .cfa: $rsp 48 +
+STACK CFI 77c2 $rbp: .cfa -48 + ^
+STACK CFI 77c3 .cfa: $rsp 56 +
+STACK CFI 77c6 $rbx: .cfa -56 + ^
+STACK CFI 77cd .cfa: $rsp 1072 +
+STACK CFI INIT 80a0 48a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 80a1 .cfa: $rsp 16 +
+STACK CFI 80b2 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 80bb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 80ca $rbx: .cfa -48 + ^
+STACK CFI INIT 8530 cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8532 .cfa: $rsp 16 +
+STACK CFI 8534 .cfa: $rsp 24 +
+STACK CFI 8536 .cfa: $rsp 32 +
+STACK CFI 8537 .cfa: $rsp 40 +
+STACK CFI 8538 .cfa: $rsp 48 +
+STACK CFI 853b $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 8600 1b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 860d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 861b .cfa: $rsp 80 +
+STACK CFI 8623 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 87c0 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 88b0 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 88b4 .cfa: $rsp 16 +
+STACK CFI INIT 88f0 629 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 88f2 .cfa: $rsp 16 +
+STACK CFI 88f4 .cfa: $rsp 24 +
+STACK CFI 88f6 .cfa: $rsp 32 +
+STACK CFI 88f8 .cfa: $rsp 40 +
+STACK CFI 88f9 .cfa: $rsp 48 +
+STACK CFI 88fa .cfa: $rsp 56 +
+STACK CFI 88fd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8901 .cfa: $rsp 96 +
+STACK CFI INIT 8f20 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8f21 .cfa: $rsp 16 +
+STACK CFI 8f28 $rbp: .cfa -16 + ^
+STACK CFI 8f29 .cfa: $rsp 24 +
+STACK CFI 8f2b $rbx: .cfa -24 + ^
+STACK CFI INIT 8fa0 bb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8fa4 .cfa: $rsp 16 +
+STACK CFI INIT 9060 1b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 906d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 907b .cfa: $rsp 64 +
+STACK CFI 908b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 9220 873 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9222 .cfa: $rsp 16 +
+STACK CFI 9225 $r15: .cfa -16 + ^
+STACK CFI 9227 .cfa: $rsp 24 +
+STACK CFI 9229 .cfa: $rsp 32 +
+STACK CFI 922c $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 922e .cfa: $rsp 40 +
+STACK CFI 922f .cfa: $rsp 48 +
+STACK CFI 9230 .cfa: $rsp 56 +
+STACK CFI 9237 .cfa: $rsp 208 +
+STACK CFI 923b $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 9aa0 f15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9aa1 .cfa: $rsp 16 +
+STACK CFI 9aa4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9aac $r15: .cfa -24 + ^
+STACK CFI 9ab1 $r14: .cfa -32 + ^
+STACK CFI 9ab6 $r13: .cfa -40 + ^
+STACK CFI 9ac0 $r12: .cfa -48 + ^
+STACK CFI 9ae7 $rbx: .cfa -56 + ^
+STACK CFI INIT a9c0 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9c1 .cfa: $rsp 16 +
+STACK CFI a9c4 $rbp: .cfa -16 + ^
+STACK CFI a9c5 .cfa: $rsp 24 +
+STACK CFI a9c8 $rbx: .cfa -24 + ^
+STACK CFI a9d3 .cfa: $rsp 32 +
+STACK CFI INIT aa60 348 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa62 .cfa: $rsp 16 +
+STACK CFI aa65 $r15: .cfa -16 + ^
+STACK CFI aa67 .cfa: $rsp 24 +
+STACK CFI aa69 .cfa: $rsp 32 +
+STACK CFI aa6b .cfa: $rsp 40 +
+STACK CFI aa6c .cfa: $rsp 48 +
+STACK CFI aa6f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI aa70 .cfa: $rsp 56 +
+STACK CFI aa73 $rbx: .cfa -56 + ^
+STACK CFI aa7a .cfa: $rsp 96 +
+STACK CFI INIT adb0 d9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI adc8 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI adcc .cfa: $rsp 80 +
+STACK CFI INIT ae90 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ae98 .cfa: $rsp 16 +
+STACK CFI ae9b $rbx: .cfa -16 + ^
+STACK CFI INIT aef0 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aef4 .cfa: $rsp 16 +
+STACK CFI af04 $rbx: .cfa -16 + ^
+STACK CFI INIT af80 c9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI af81 .cfa: $rsp 16 +
+STACK CFI af8c $rbx: .cfa -16 + ^
+STACK CFI INIT b050 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b051 .cfa: $rsp 16 +
+STACK CFI b05c $rbx: .cfa -16 + ^
+STACK CFI INIT b080 f97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b081 .cfa: $rsp 16 +
+STACK CFI b084 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b08f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI b097 $rbx: .cfa -56 + ^
+STACK CFI INIT c020 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c022 .cfa: $rsp 16 +
+STACK CFI c025 $r12: .cfa -16 + ^
+STACK CFI c026 .cfa: $rsp 24 +
+STACK CFI c02a $rbp: .cfa -24 + ^
+STACK CFI c02b .cfa: $rsp 32 +
+STACK CFI c04d $rbx: .cfa -32 + ^
+STACK CFI INIT c0a0 1134 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c0a1 .cfa: $rsp 16 +
+STACK CFI c0a7 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c11b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d1e0 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1e1 .cfa: $rsp 16 +
+STACK CFI d1e4 $rbx: .cfa -16 + ^
+STACK CFI INIT d220 10f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d222 .cfa: $rsp 16 +
+STACK CFI d225 $r15: .cfa -16 + ^
+STACK CFI d227 .cfa: $rsp 24 +
+STACK CFI d229 .cfa: $rsp 32 +
+STACK CFI d22b .cfa: $rsp 40 +
+STACK CFI d22e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI d233 .cfa: $rsp 48 +
+STACK CFI d234 .cfa: $rsp 56 +
+STACK CFI d238 .cfa: $rsp 144 +
+STACK CFI d246 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d330 5c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d332 .cfa: $rsp 16 +
+STACK CFI d336 .cfa: $rsp 24 +
+STACK CFI d338 .cfa: $rsp 32 +
+STACK CFI d33a .cfa: $rsp 40 +
+STACK CFI d33d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI d33e .cfa: $rsp 48 +
+STACK CFI d341 $rbp: .cfa -48 + ^
+STACK CFI d346 .cfa: $rsp 56 +
+STACK CFI d34d .cfa: $rsp 208 +
+STACK CFI d367 $rbx: .cfa -56 + ^
+STACK CFI INIT d900 1ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d902 .cfa: $rsp 16 +
+STACK CFI d90a .cfa: $rsp 24 +
+STACK CFI d90f .cfa: $rsp 32 +
+STACK CFI d910 .cfa: $rsp 40 +
+STACK CFI d914 .cfa: $rsp 80 +
+STACK CFI d91f $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT daf0 7f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dafd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI db18 .cfa: $rsp 64 +
+STACK CFI db1b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT db70 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db71 .cfa: $rsp 16 +
+STACK CFI db78 .cfa: $rsp 304 +
+STACK CFI db9a $rbx: .cfa -16 + ^
+STACK CFI INIT dc60 1a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc7e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI dc8f .cfa: $rsp 1136 +
+STACK CFI dca6 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT de10 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de1d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI de2b .cfa: $rsp 48 +
+STACK CFI de38 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT deb0 14f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI debc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI dec9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI ded7 .cfa: $rsp 64 +
+STACK CFI deec $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT e000 10e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e002 .cfa: $rsp 16 +
+STACK CFI e004 .cfa: $rsp 24 +
+STACK CFI e006 .cfa: $rsp 32 +
+STACK CFI e009 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI e00b .cfa: $rsp 40 +
+STACK CFI e00e $r12: .cfa -40 + ^
+STACK CFI e00f .cfa: $rsp 48 +
+STACK CFI e011 $rbp: .cfa -48 + ^
+STACK CFI e012 .cfa: $rsp 56 +
+STACK CFI e015 $rbx: .cfa -56 + ^
+STACK CFI e019 .cfa: $rsp 80 +
+STACK CFI INIT e110 1f8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e111 .cfa: $rsp 16 +
+STACK CFI e114 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e120 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e310 3d9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e311 .cfa: $rsp 16 +
+STACK CFI e314 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e31f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI e322 $rbx: .cfa -56 + ^
+STACK CFI INIT e6f0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e780 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e790 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e810 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e811 .cfa: $rsp 16 +
+STACK CFI e814 $rbp: .cfa -16 + ^
+STACK CFI e815 .cfa: $rsp 24 +
+STACK CFI e818 $rbx: .cfa -24 + ^
+STACK CFI e81c .cfa: $rsp 32 +
+STACK CFI INIT e870 5f8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e871 .cfa: $rsp 16 +
+STACK CFI e884 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e88d $r15: .cfa -24 + ^
+STACK CFI e893 $r14: .cfa -32 + ^
+STACK CFI e898 $r13: .cfa -40 + ^
+STACK CFI e89d $r12: .cfa -48 + ^
+STACK CFI e8a0 $rbx: .cfa -56 + ^
+STACK CFI INIT ee70 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee77 .cfa: $rsp 224 +
+STACK CFI INIT ef10 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef17 .cfa: $rsp 224 +
+STACK CFI INIT efc0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI efc7 .cfa: $rsp 224 +
+STACK CFI INIT f070 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f089 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI f090 .cfa: $rsp 192 +
+STACK CFI INIT f120 3f1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f121 .cfa: $rsp 16 +
+STACK CFI f124 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f12f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f15a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT f520 4e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f521 .cfa: $rsp 16 +
+STACK CFI f524 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f52d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI f54d $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fa10 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa12 .cfa: $rsp 16 +
+STACK CFI fa15 $r13: .cfa -16 + ^
+STACK CFI fa17 .cfa: $rsp 24 +
+STACK CFI fa1a $r12: .cfa -24 + ^
+STACK CFI fa1b .cfa: $rsp 32 +
+STACK CFI fa1d $rbp: .cfa -32 + ^
+STACK CFI fa1e .cfa: $rsp 40 +
+STACK CFI fa21 $rbx: .cfa -40 + ^
+STACK CFI fa25 .cfa: $rsp 48 +
+STACK CFI INIT fa80 299 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI faa7 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT fd20 7eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd21 .cfa: $rsp 16 +
+STACK CFI fd24 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fd66 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10510 1c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1051d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1052a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 10538 .cfa: $rsp 80 +
+STACK CFI 10548 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 106e0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10700 d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10702 .cfa: $rsp 16 +
+STACK CFI 1070a .cfa: $rsp 24 +
+STACK CFI 1070d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 1070e .cfa: $rsp 32 +
+STACK CFI 10715 $rbx: .cfa -32 + ^
+STACK CFI INIT 107e0 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10850 de .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10854 .cfa: $rsp 16 +
+STACK CFI INIT 10930 23c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10932 .cfa: $rsp 16 +
+STACK CFI 10934 .cfa: $rsp 24 +
+STACK CFI 10936 .cfa: $rsp 32 +
+STACK CFI 10938 .cfa: $rsp 40 +
+STACK CFI 10939 .cfa: $rsp 48 +
+STACK CFI 1093a .cfa: $rsp 56 +
+STACK CFI 1093e .cfa: $rsp 96 +
+STACK CFI 1094c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10b70 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10b80 .cfa: $rsp 16 +
+STACK CFI INIT 10ba0 143 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10bad $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 10bbb .cfa: $rsp 48 +
+STACK CFI 10bc4 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 10cf0 a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10cf2 .cfa: $rsp 16 +
+STACK CFI 10cf5 $r15: .cfa -16 + ^
+STACK CFI 10cf7 .cfa: $rsp 24 +
+STACK CFI 10cf9 .cfa: $rsp 32 +
+STACK CFI 10cfb .cfa: $rsp 40 +
+STACK CFI 10cfe $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 10cff .cfa: $rsp 48 +
+STACK CFI 10d00 .cfa: $rsp 56 +
+STACK CFI 10d03 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10d07 .cfa: $rsp 64 +
+STACK CFI INIT 10da0 31b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10da2 .cfa: $rsp 16 +
+STACK CFI 10da4 .cfa: $rsp 24 +
+STACK CFI 10da6 .cfa: $rsp 32 +
+STACK CFI 10da8 .cfa: $rsp 40 +
+STACK CFI 10da9 .cfa: $rsp 48 +
+STACK CFI 10daa .cfa: $rsp 56 +
+STACK CFI 10dae .cfa: $rsp 128 +
+STACK CFI 10dd3 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 110c0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 110c1 .cfa: $rsp 16 +
+STACK CFI 110c4 $rbx: .cfa -16 + ^
+STACK CFI INIT 11120 131 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11122 .cfa: $rsp 16 +
+STACK CFI 1112a .cfa: $rsp 24 +
+STACK CFI 1112b .cfa: $rsp 32 +
+STACK CFI 11132 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 11260 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1126e .cfa: $rsp 32 +
+STACK CFI 11274 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 112d0 1c9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 112d2 .cfa: $rsp 16 +
+STACK CFI 112d4 .cfa: $rsp 24 +
+STACK CFI 112d6 .cfa: $rsp 32 +
+STACK CFI 112d8 .cfa: $rsp 40 +
+STACK CFI 112d9 .cfa: $rsp 48 +
+STACK CFI 112da .cfa: $rsp 56 +
+STACK CFI 112de .cfa: $rsp 64 +
+STACK CFI 112e5 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 114a0 a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 114a4 .cfa: $rsp 16 +
+STACK CFI INIT 11550 179 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11551 .cfa: $rsp 16 +
+STACK CFI 11563 .cfa: $rsp 24 +
+STACK CFI 1156a .cfa: $rsp 4128 +
+STACK CFI 11576 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 116d0 cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 116dd $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 116e1 .cfa: $rsp 32 +
+STACK CFI INIT 117a0 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 117ad $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 117b6 .cfa: $rsp 32 +
+STACK CFI 117be $rbp: .cfa -24 + ^
+STACK CFI INIT 11840 1d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11842 .cfa: $rsp 16 +
+STACK CFI 1184e .cfa: $rsp 24 +
+STACK CFI 11853 .cfa: $rsp 32 +
+STACK CFI 11855 .cfa: $rsp 40 +
+STACK CFI 11856 .cfa: $rsp 48 +
+STACK CFI 11857 .cfa: $rsp 56 +
+STACK CFI 11862 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 11a20 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11a90 364 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11a91 .cfa: $rsp 16 +
+STACK CFI 11a94 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 11a9e $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 11aa9 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 11abb $r15: .cfa -24 + ^
+STACK CFI INIT 11e00 1d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11e02 .cfa: $rsp 16 +
+STACK CFI 11e06 .cfa: $rsp 24 +
+STACK CFI 11e08 .cfa: $rsp 32 +
+STACK CFI 11e09 .cfa: $rsp 40 +
+STACK CFI 11e0c $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI 11e0d .cfa: $rsp 48 +
+STACK CFI 11e19 $rbx: .cfa -48 + ^
+STACK CFI INIT 11fe0 9a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11fe1 .cfa: $rsp 16 +
+STACK CFI 11fe9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 11ff5 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 12990 158 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 12991 .cfa: $rsp 16 +
+STACK CFI 12997 $rbp: .cfa -16 + ^
+STACK CFI 1299b .cfa: $rsp 24 +
+STACK CFI 1299e $rbx: .cfa -24 + ^
+STACK CFI 129a2 .cfa: $rsp 32 +
+STACK CFI INIT 12af0 eaa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 12af1 .cfa: $rsp 16 +
+STACK CFI 12b0b $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 12b2e $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 139a0 80 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 139a1 .cfa: $rsp 16 +
+STACK CFI 139ab $rbx: .cfa -16 + ^
+STACK CFI INIT 13a20 61 .cfa: $rsp 24 + .ra: .cfa -8 + ^
+STACK CFI 13a24 .cfa: $rsp 80 +
+STACK CFI 13a7e .cfa: $rsp 8 +
+STACK CFI INIT 13a90 55d .cfa: $rsp 24 + .ra: .cfa -8 + ^
+STACK CFI 13a94 .cfa: $rsp 56 +
+STACK CFI 13a98 $rbx: .cfa -56 + ^
+STACK CFI 13aa0 .cfa: $rbx 56 +
+STACK CFI 13dfa $rbx: $rbx .cfa: $rsp 56 +
+STACK CFI 13dfe .cfa: $rsp 8 +
+STACK CFI 13e01 $rbx: .cfa -56 + ^ .cfa: $rbx 56 +
+STACK CFI 13eda $rbx: $rbx .cfa: $rsp 56 +
+STACK CFI 13ede .cfa: $rsp 8 +
+STACK CFI 13edf $rbx: .cfa -56 + ^ .cfa: $rbx 56 +
+STACK CFI 13f60 $rbx: $rbx .cfa: $rsp 56 +
+STACK CFI 13f64 .cfa: $rsp 8 +
+STACK CFI 13f67 $rbx: .cfa -56 + ^ .cfa: $rbx 56 +
+STACK CFI 13fe8 $rbx: $rbx .cfa: $rsp 56 +
+STACK CFI 13fec .cfa: $rsp 8 +
+STACK CFI INIT 13ff0 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 140e0 ab .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 14190 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 141a0 1c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 141a2 .cfa: $rsp 16 +
+STACK CFI 141a3 .cfa: $rsp 24 +
+STACK CFI 141a4 .cfa: $rsp 32 +
+STACK CFI 141ab .cfa: $rsp 496 +
+STACK CFI 141b2 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 14370 741 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 14371 .cfa: $rsp 16 +
+STACK CFI 14374 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1437f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 1438e $rbx: .cfa -56 + ^
+STACK CFI INIT 14ac0 18a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 14ac2 .cfa: $rsp 16 +
+STACK CFI 14ac4 .cfa: $rsp 24 +
+STACK CFI 14ac6 .cfa: $rsp 32 +
+STACK CFI 14ac8 .cfa: $rsp 40 +
+STACK CFI 14ac9 .cfa: $rsp 48 +
+STACK CFI 14aca .cfa: $rsp 56 +
+STACK CFI 14ace .cfa: $rsp 160 +
+STACK CFI 14ad5 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 14c50 325 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 14c52 .cfa: $rsp 16 +
+STACK CFI 14c54 .cfa: $rsp 24 +
+STACK CFI 14c56 .cfa: $rsp 32 +
+STACK CFI 14c58 .cfa: $rsp 40 +
+STACK CFI 14c59 .cfa: $rsp 48 +
+STACK CFI 14c5c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 14c5d .cfa: $rsp 56 +
+STACK CFI 14c61 .cfa: $rsp 80 +
+STACK CFI 14c90 $rbx: .cfa -56 + ^
+STACK CFI INIT 14f80 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 14ff0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15030 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15040 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15044 .cfa: $rsp 16 +
+STACK CFI INIT 15050 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15054 .cfa: $rsp 32 +
+STACK CFI INIT 150a0 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 150a4 .cfa: $rsp 16 +
+STACK CFI INIT 15140 53 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15144 .cfa: $rsp 16 +
+STACK CFI INIT 151a0 173 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 151a4 .cfa: $rsp 16 +
+STACK CFI INIT 15320 d8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15400 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1540d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 15419 .cfa: $rsp 448 +
+STACK CFI 1541c $r12: .cfa -16 + ^
+STACK CFI INIT 15480 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15484 .cfa: $rsp 16 +
+STACK CFI INIT 154c0 f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 154c1 .cfa: $rsp 16 +
+STACK CFI 154c4 $rbp: .cfa -16 + ^
+STACK CFI 154c5 .cfa: $rsp 24 +
+STACK CFI 154c9 .cfa: $rsp 32 +
+STACK CFI 154d9 $rbx: .cfa -24 + ^
+STACK CFI INIT 155c0 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 155d0 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 155de .cfa: $rsp 32 +
+STACK CFI 155e4 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 15680 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 156c0 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15710 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1571e .cfa: $rsp 32 +
+STACK CFI 15725 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 157b0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 157c0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 157d0 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 157d4 .cfa: $rsp 16 +
+STACK CFI INIT 15810 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15812 .cfa: $rsp 16 +
+STACK CFI 15814 .cfa: $rsp 24 +
+STACK CFI 15815 .cfa: $rsp 32 +
+STACK CFI 15816 .cfa: $rsp 40 +
+STACK CFI 15819 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 1581d .cfa: $rsp 48 +
+STACK CFI INIT 158b0 2b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 158b2 .cfa: $rsp 16 +
+STACK CFI 158b4 .cfa: $rsp 24 +
+STACK CFI 158b6 .cfa: $rsp 32 +
+STACK CFI 158b9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 158c2 .cfa: $rsp 40 +
+STACK CFI 158c5 $r12: .cfa -40 + ^
+STACK CFI 158c6 .cfa: $rsp 48 +
+STACK CFI 158c7 .cfa: $rsp 56 +
+STACK CFI 158cb $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 80 +
+STACK CFI INIT 15b70 1cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15b7d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 15b86 .cfa: $rsp 80 +
+STACK CFI 15b97 $r12: .cfa -16 + ^
+STACK CFI INIT 15d40 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15d45 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 15d5e 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15dad .cfa: $rsp 80 +
+STACK CFI 15df2 .cfa: $rsp 8 +
+STACK CFI INIT 15df4 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15e00 .cfa: $rsp 16 +
+STACK CFI 15e04 .cfa: $rsp 88 +
+STACK CFI 15e6d .cfa: $rsp 8 +
+STACK CFI INIT 15e6f 73 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15e74 .cfa: $rsp 80 +
+STACK CFI 15edf .cfa: $rsp 8 +
+STACK CFI INIT 15ef0 c3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15f03 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 15f0a .cfa: $rsp 176 +
+STACK CFI INIT 15fc0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 15fc4 .cfa: $rsp 16 +
+STACK CFI INIT 16000 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16060 d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 16067 .cfa: $rsp 208 +
+STACK CFI INIT 16140 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16150 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16190 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 161d0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16200 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16230 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16260 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16290 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 162c0 da .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 163a0 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 163a4 .cfa: $rsp 16 +
+STACK CFI INIT 16410 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16440 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16470 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 164a0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 164d0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16500 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16550 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16560 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 165b0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 165dd $r12: .cfa 16 + ^ $r13: .cfa 24 + ^ $r14: .cfa 32 + ^ $r15: .cfa 40 + ^ $rbp: $r9 $rbx: .cfa 0 + ^ $rsp: $r8 .cfa: $rdi 0 + .ra: $rdx
+STACK CFI INIT 1660f a .ra: $rip
+STACK CFI INIT 16620 1f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 16627 .cfa: $rsp 216 +
+STACK CFI INIT 16820 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16840 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 168c0 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 168f0 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 169d0 e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16ac0 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16b30 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 16bb0 4d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 16bb2 .cfa: $rsp 16 +
+STACK CFI 16bb8 .cfa: $rsp 24 +
+STACK CFI 16bba .cfa: $rsp 32 +
+STACK CFI 16bbc .cfa: $rsp 40 +
+STACK CFI 16bbd .cfa: $rsp 48 +
+STACK CFI 16bbe .cfa: $rsp 56 +
+STACK CFI 16bc4 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 17090 197 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 17092 .cfa: $rsp 16 +
+STACK CFI 1709a .cfa: $rsp 24 +
+STACK CFI 170a0 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 170a2 .cfa: $rsp 32 +
+STACK CFI 170a5 $r12: .cfa -32 + ^
+STACK CFI 170a6 .cfa: $rsp 40 +
+STACK CFI 170a7 .cfa: $rsp 48 +
+STACK CFI 170aa $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 17230 550 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 17780 14d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 178d0 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 179b0 160 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 17b10 135 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 17c50 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 17c57 .cfa: $rsp 16 +
+STACK CFI 17c6c .cfa: $rsp 24 +
+STACK CFI 17c79 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 17d80 18b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 17f10 17b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 17f4b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 18090 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 180e0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 180f0 1b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 180f1 .cfa: $rsp 16 +
+STACK CFI 180f6 $rbx: .cfa -16 + ^
+STACK CFI INIT 182b0 292 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 182b2 .cfa: $rsp 16 +
+STACK CFI 182b5 $r15: .cfa -16 + ^
+STACK CFI 182b7 .cfa: $rsp 24 +
+STACK CFI 182ba $r14: .cfa -24 + ^
+STACK CFI 182bc .cfa: $rsp 32 +
+STACK CFI 182bf $r13: .cfa -32 + ^
+STACK CFI 182c1 .cfa: $rsp 40 +
+STACK CFI 182c2 .cfa: $rsp 48 +
+STACK CFI 182c3 .cfa: $rsp 56 +
+STACK CFI 182c5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 182c9 .cfa: $rsp 80 +
+STACK CFI INIT 18550 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 18552 .cfa: $rsp 16 +
+STACK CFI 18556 .cfa: $rsp 24 +
+STACK CFI 18558 .cfa: $rsp 32 +
+STACK CFI 1855a .cfa: $rsp 40 +
+STACK CFI 1855b .cfa: $rsp 48 +
+STACK CFI 1855d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 1855e .cfa: $rsp 56 +
+STACK CFI 18562 .cfa: $rsp 96 +
+STACK CFI 1856b $rbx: .cfa -56 + ^
+STACK CFI INIT 18650 2f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 18663 .cfa: $rsp 32 +
+STACK CFI 1866d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 18950 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 18954 .cfa: $rsp 32 +
+STACK CFI INIT 189b0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 189e0 1f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 189e3 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 18be0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 18c00 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 18c02 .cfa: $rsp 16 +
+STACK CFI 18c05 $r15: .cfa -16 + ^
+STACK CFI 18c07 .cfa: $rsp 24 +
+STACK CFI 18c0a $r14: .cfa -24 + ^
+STACK CFI 18c0c .cfa: $rsp 32 +
+STACK CFI 18c0e .cfa: $rsp 40 +
+STACK CFI 18c11 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 18c12 .cfa: $rsp 48 +
+STACK CFI 18c15 $rbp: .cfa -48 + ^
+STACK CFI 18c16 .cfa: $rsp 56 +
+STACK CFI 18c19 $rbx: .cfa -56 + ^
+STACK CFI 18c1d .cfa: $rsp 80 +
diff --git a/src/processor/testdata/symbols/libc-2.13.so/F4F8DFCD5A5FB5A7CE64717E9E6AE3890/libc-2.13.so.sym b/src/processor/testdata/symbols/libc-2.13.so/F4F8DFCD5A5FB5A7CE64717E9E6AE3890/libc-2.13.so.sym
new file mode 100644
index 0000000..e15670d
--- /dev/null
+++ b/src/processor/testdata/symbols/libc-2.13.so/F4F8DFCD5A5FB5A7CE64717E9E6AE3890/libc-2.13.so.sym
@@ -0,0 +1,13458 @@
+MODULE Linux x86_64 F4F8DFCD5A5FB5A7CE64717E9E6AE3890 libc-2.13.so
+PUBLIC 1eb80 0 __libc_init_first
+PUBLIC 1edb0 0 __libc_start_main
+PUBLIC 1ef80 0 gnu_get_libc_release
+PUBLIC 1ef90 0 gnu_get_libc_version
+PUBLIC 1f3f0 0 __get_cpu_features
+PUBLIC 1f410 0 __errno_location
+PUBLIC 1f4e0 0 iconv_open
+PUBLIC 1f700 0 iconv
+PUBLIC 1f8b0 0 iconv_close
+PUBLIC 203d0 0 __gconv_get_modules_db
+PUBLIC 203e0 0 __gconv_get_alias_db
+PUBLIC 28090 0 __gconv_get_cache
+PUBLIC 28c60 0 __ctype_get_mb_cur_max
+PUBLIC 28f20 0 setlocale
+PUBLIC 2a7d0 0 localeconv
+PUBLIC 2a990 0 nl_langinfo
+PUBLIC 2a9a0 0 __nl_langinfo_l
+PUBLIC 2aa00 0 __newlocale
+PUBLIC 2b0b0 0 duplocale
+PUBLIC 2b250 0 __freelocale
+PUBLIC 2b310 0 uselocale
+PUBLIC 2b530 0 __assert_fail
+PUBLIC 2b680 0 __assert_perror_fail
+PUBLIC 2b7e0 0 __assert
+PUBLIC 2b7f0 0 tolower
+PUBLIC 2b820 0 toupper
+PUBLIC 2b850 0 isxdigit
+PUBLIC 2b890 0 isupper
+PUBLIC 2b8d0 0 isspace
+PUBLIC 2b910 0 ispunct
+PUBLIC 2b950 0 isprint
+PUBLIC 2b990 0 isgraph
+PUBLIC 2b9d0 0 islower
+PUBLIC 2ba10 0 isdigit
+PUBLIC 2ba50 0 iscntrl
+PUBLIC 2ba90 0 isalpha
+PUBLIC 2bad0 0 isalnum
+PUBLIC 2bb10 0 _tolower
+PUBLIC 2bb30 0 _toupper
+PUBLIC 2bb50 0 __toascii_l
+PUBLIC 2bb60 0 __isascii_l
+PUBLIC 2bb70 0 isblank_l
+PUBLIC 2bb80 0 isblank
+PUBLIC 2bbc0 0 isalnum_l
+PUBLIC 2bbd0 0 isalpha_l
+PUBLIC 2bbf0 0 iscntrl_l
+PUBLIC 2bc00 0 isdigit_l
+PUBLIC 2bc20 0 __islower_l
+PUBLIC 2bc40 0 __isgraph_l
+PUBLIC 2bc60 0 isprint_l
+PUBLIC 2bc80 0 ispunct_l
+PUBLIC 2bc90 0 isspace_l
+PUBLIC 2bcb0 0 isupper_l
+PUBLIC 2bcd0 0 __isxdigit_l
+PUBLIC 2bcf0 0 __tolower_l
+PUBLIC 2bd00 0 toupper_l
+PUBLIC 2bd10 0 isctype
+PUBLIC 2bd30 0 __ctype_tolower_loc
+PUBLIC 2bd70 0 __ctype_toupper_loc
+PUBLIC 2bdb0 0 __ctype_b_loc
+PUBLIC 2c1f0 0 bind_textdomain_codeset
+PUBLIC 2c210 0 bindtextdomain
+PUBLIC 2c230 0 dcgettext
+PUBLIC 2c240 0 dgettext
+PUBLIC 2c250 0 gettext
+PUBLIC 2db60 0 dcngettext
+PUBLIC 2db70 0 dngettext
+PUBLIC 2db80 0 ngettext
+PUBLIC 2f5e0 0 textdomain
+PUBLIC 30b00 0 catgets
+PUBLIC 30ba0 0 catclose
+PUBLIC 30c10 0 catopen
+PUBLIC 30e50 0 __open_catalog
+PUBLIC 31710 0 isinf
+PUBLIC 31750 0 isnan
+PUBLIC 31780 0 finite
+PUBLIC 317a0 0 copysign
+PUBLIC 317c0 0 modf
+PUBLIC 318b0 0 scalbln
+PUBLIC 319c0 0 frexp
+PUBLIC 31a70 0 ldexp
+PUBLIC 31b00 0 __signbit
+PUBLIC 31b10 0 __isinff
+PUBLIC 31b40 0 __isnanf
+PUBLIC 31b60 0 finitef
+PUBLIC 31b80 0 copysignf
+PUBLIC 31ba0 0 modff
+PUBLIC 31c30 0 scalbnf
+PUBLIC 31d10 0 frexpf
+PUBLIC 31d80 0 ldexpf
+PUBLIC 31e10 0 __signbitf
+PUBLIC 31e20 0 __isinfl
+PUBLIC 31e70 0 __isnanl
+PUBLIC 31eb0 0 finitel
+PUBLIC 31ec0 0 copysignl
+PUBLIC 31ee0 0 modfl
+PUBLIC 32060 0 scalbnl
+PUBLIC 32080 0 frexpl
+PUBLIC 32120 0 ldexpl
+PUBLIC 321b0 0 __signbitl
+PUBLIC 321f0 0 __sigsetjmp
+PUBLIC 32290 0 setjmp
+PUBLIC 322a0 0 _setjmp
+PUBLIC 322b0 0 _longjmp
+PUBLIC 32380 0 signal
+PUBLIC 32440 0 gsignal
+PUBLIC 324b0 0 killpg
+PUBLIC 32700 0 sigaction
+PUBLIC 32720 0 sigprocmask
+PUBLIC 32750 0 kill
+PUBLIC 32780 0 sigpending
+PUBLIC 327e0 0 sigsuspend
+PUBLIC 328f0 0 sigwait
+PUBLIC 32940 0 sigblock
+PUBLIC 329a0 0 sigsetmask
+PUBLIC 32a80 0 __sigpause
+PUBLIC 32ad0 0 __xpg_sigpause
+PUBLIC 32ae0 0 sigpause
+PUBLIC 32af0 0 sigvec
+PUBLIC 32be0 0 sigstack
+PUBLIC 32c40 0 sigaltstack
+PUBLIC 32c70 0 siginterrupt
+PUBLIC 32d40 0 __sigismember
+PUBLIC 32d60 0 __sigaddset
+PUBLIC 32d80 0 __sigdelset
+PUBLIC 32da0 0 sigemptyset
+PUBLIC 32dd0 0 sigfillset
+PUBLIC 32e80 0 sigaddset
+PUBLIC 32ec0 0 sigdelset
+PUBLIC 32f00 0 sigismember
+PUBLIC 32f50 0 sigreturn
+PUBLIC 32f70 0 siggetmask
+PUBLIC 32f80 0 sysv_signal
+PUBLIC 33010 0 sigisemptyset
+PUBLIC 33060 0 sigandset
+PUBLIC 330b0 0 sigorset
+PUBLIC 33100 0 __libc_current_sigrtmin_private
+PUBLIC 33110 0 __libc_current_sigrtmax
+PUBLIC 33120 0 __libc_allocate_rtsig_private
+PUBLIC 33200 0 sigtimedwait
+PUBLIC 332f0 0 sigwaitinfo
+PUBLIC 33340 0 sigqueue
+PUBLIC 333f0 0 sighold
+PUBLIC 33460 0 sigrelse
+PUBLIC 334d0 0 sigignore
+PUBLIC 33520 0 sigset
+PUBLIC 35520 0 atof
+PUBLIC 35530 0 atoi
+PUBLIC 35550 0 atol
+PUBLIC 35560 0 atoll
+PUBLIC 35570 0 abort
+PUBLIC 35810 0 bsearch
+PUBLIC 36070 0 qsort_r
+PUBLIC 363a0 0 qsort
+PUBLIC 363b0 0 getenv
+PUBLIC 364d0 0 putenv
+PUBLIC 36550 0 clearenv
+PUBLIC 365e0 0 unsetenv
+PUBLIC 36b60 0 setenv
+PUBLIC 36ce0 0 __secure_getenv
+PUBLIC 36e30 0 exit
+PUBLIC 36e50 0 on_exit
+PUBLIC 37080 0 __cxa_atexit
+PUBLIC 370d0 0 __cxa_finalize
+PUBLIC 37230 0 quick_exit
+PUBLIC 37250 0 __cxa_at_quick_exit
+PUBLIC 37270 0 abs
+PUBLIC 37280 0 imaxabs
+PUBLIC 372a0 0 llabs
+PUBLIC 372c0 0 div
+PUBLIC 372f0 0 imaxdiv
+PUBLIC 37320 0 lldiv
+PUBLIC 37350 0 random
+PUBLIC 373c0 0 setstate
+PUBLIC 37440 0 initstate
+PUBLIC 374c0 0 srand
+PUBLIC 37630 0 setstate_r
+PUBLIC 37720 0 random_r
+PUBLIC 377c0 0 srandom_r
+PUBLIC 378c0 0 initstate_r
+PUBLIC 37a00 0 rand
+PUBLIC 37a10 0 rand_r
+PUBLIC 37a60 0 drand48
+PUBLIC 37a90 0 erand48
+PUBLIC 37ab0 0 lrand48
+PUBLIC 37ae0 0 nrand48
+PUBLIC 37b00 0 mrand48
+PUBLIC 37b30 0 jrand48
+PUBLIC 37b50 0 srand48
+PUBLIC 37b60 0 seed48
+PUBLIC 37b80 0 lcong48
+PUBLIC 37b90 0 drand48_r
+PUBLIC 37ba0 0 erand48_r
+PUBLIC 37c20 0 lrand48_r
+PUBLIC 37c40 0 nrand48_r
+PUBLIC 37c90 0 mrand48_r
+PUBLIC 37cb0 0 jrand48_r
+PUBLIC 37d00 0 srand48_r
+PUBLIC 37d40 0 seed48_r
+PUBLIC 37d80 0 lcong48_r
+PUBLIC 37e40 0 strtoll
+PUBLIC 37e60 0 __strtoll_internal
+PUBLIC 37e70 0 strtoul
+PUBLIC 37e90 0 __strtoull_internal
+PUBLIC 38300 0 strtoll_l
+PUBLIC 38740 0 strtoull_l
+PUBLIC 38750 0 strtof
+PUBLIC 38770 0 __strtof_internal
+PUBLIC 38780 0 strtod
+PUBLIC 387a0 0 __strtod_internal
+PUBLIC 387b0 0 strtold
+PUBLIC 387d0 0 __strtold_internal
+PUBLIC 3ae10 0 strtof_l
+PUBLIC 3d4f0 0 __strtod_l
+PUBLIC 3fb10 0 strtold_l
+PUBLIC 3ff80 0 __libc_system
+PUBLIC 401b0 0 realpath
+PUBLIC 40670 0 canonicalize_file_name
+PUBLIC 40680 0 a64l
+PUBLIC 406d0 0 l64a
+PUBLIC 40720 0 getsubopt
+PUBLIC 40830 0 __xpg_basename
+PUBLIC 408e0 0 strtoimax
+PUBLIC 408f0 0 strtoumax
+PUBLIC 40900 0 getcontext
+PUBLIC 409b0 0 setcontext
+PUBLIC 40a50 0 makecontext
+PUBLIC 40c50 0 swapcontext
+PUBLIC 40d60 0 strfmon
+PUBLIC 41fa0 0 strfmon_l
+PUBLIC 42030 0 mblen
+PUBLIC 420c0 0 mbstowcs
+PUBLIC 420f0 0 mbtowc
+PUBLIC 42180 0 wcstombs
+PUBLIC 421b0 0 wctomb
+PUBLIC 42220 0 wcstoimax
+PUBLIC 42230 0 wcstoumax
+PUBLIC 42300 0 rpmatch
+PUBLIC 42410 0 addseverity
+PUBLIC 426a0 0 fmtmsg
+PUBLIC 43040 0 ctermid
+PUBLIC 43070 0 cuserid
+PUBLIC 43680 0 _IO_vfprintf
+PUBLIC 48e40 0 vprintf
+PUBLIC 49250 0 __printf_fp
+PUBLIC 4b9c0 0 register_printf_specifier
+PUBLIC 4bab0 0 register_printf_function
+PUBLIC 4bb00 0 parse_printf_format
+PUBLIC 4d800 0 register_printf_modifier
+PUBLIC 4d9b0 0 register_printf_type
+PUBLIC 4dac0 0 printf_size_info
+PUBLIC 4dae0 0 printf_size
+PUBLIC 4e350 0 _IO_fprintf
+PUBLIC 4e3e0 0 _IO_printf
+PUBLIC 4e490 0 snprintf
+PUBLIC 4e520 0 sprintf
+PUBLIC 4e5b0 0 asprintf
+PUBLIC 4e640 0 dprintf
+PUBLIC 4e6d0 0 _IO_vfscanf
+PUBLIC 56b90 0 vfscanf
+PUBLIC 56bd0 0 fscanf
+PUBLIC 56c60 0 scanf
+PUBLIC 56d10 0 _IO_sscanf
+PUBLIC 56e30 0 perror
+PUBLIC 56f20 0 psignal
+PUBLIC 57030 0 tmpfile
+PUBLIC 570c0 0 tmpnam
+PUBLIC 57150 0 tmpnam_r
+PUBLIC 571a0 0 tempnam
+PUBLIC 57740 0 getline
+PUBLIC 57750 0 getw
+PUBLIC 57790 0 putw
+PUBLIC 577c0 0 remove
+PUBLIC 57800 0 rename
+PUBLIC 57830 0 renameat
+PUBLIC 57860 0 flockfile
+PUBLIC 578c0 0 ftrylockfile
+PUBLIC 57930 0 _IO_funlockfile
+PUBLIC 57980 0 __isoc99_scanf
+PUBLIC 57b60 0 __isoc99_vscanf
+PUBLIC 57cc0 0 __isoc99_fscanf
+PUBLIC 57e90 0 __isoc99_vfscanf
+PUBLIC 57fd0 0 __isoc99_sscanf
+PUBLIC 58060 0 __isoc99_vsscanf
+PUBLIC 58110 0 psiginfo
+PUBLIC 58a00 0 vfwprintf
+PUBLIC 66ab0 0 vfwscanf
+PUBLIC 67a70 0 _IO_file_doallocate
+PUBLIC 67b80 0 fclose
+PUBLIC 67e20 0 fdopen
+PUBLIC 68070 0 fflush
+PUBLIC 681c0 0 fgetpos
+PUBLIC 683c0 0 fgets
+PUBLIC 686c0 0 fopen
+PUBLIC 68860 0 fopencookie
+PUBLIC 68970 0 fputs
+PUBLIC 68b20 0 fread
+PUBLIC 68cc0 0 fsetpos64
+PUBLIC 68e70 0 ftell
+PUBLIC 69000 0 fwrite
+PUBLIC 691e0 0 getdelim
+PUBLIC 694d0 0 _IO_getline
+PUBLIC 694e0 0 _IO_getline_info
+PUBLIC 69670 0 gets
+PUBLIC 69860 0 _IO_padn
+PUBLIC 69970 0 _IO_proc_close
+PUBLIC 69b50 0 _IO_proc_open
+PUBLIC 69f20 0 popen
+PUBLIC 6a060 0 _IO_puts
+PUBLIC 6a340 0 _IO_seekoff
+PUBLIC 6a500 0 _IO_seekpos
+PUBLIC 6a630 0 setbuffer
+PUBLIC 6a7d0 0 _IO_setvbuf
+PUBLIC 6a9d0 0 _IO_ungetc
+PUBLIC 6aab0 0 vsprintf
+PUBLIC 6ab70 0 vsscanf
+PUBLIC 6ac10 0 putchar
+PUBLIC 6ad70 0 putchar_unlocked
+PUBLIC 6b3b0 0 clearerr
+PUBLIC 6b470 0 _IO_feof
+PUBLIC 6b540 0 _IO_ferror
+PUBLIC 6b610 0 fileno_unlocked
+PUBLIC 6b640 0 fputc
+PUBLIC 6b790 0 freopen
+PUBLIC 6ba40 0 fseek
+PUBLIC 6bb80 0 getc
+PUBLIC 6bcc0 0 getchar
+PUBLIC 6be10 0 open_memstream
+PUBLIC 6bfc0 0 pclose
+PUBLIC 6bfd0 0 _IO_putc
+PUBLIC 6c120 0 rewind
+PUBLIC 6c250 0 setbuf
+PUBLIC 6c260 0 setlinebuf
+PUBLIC 6c270 0 vasprintf
+PUBLIC 6c400 0 vdprintf
+PUBLIC 6c560 0 vscanf
+PUBLIC 6c600 0 vsnprintf
+PUBLIC 6c880 0 obstack_vprintf
+PUBLIC 6ca40 0 obstack_printf
+PUBLIC 6cad0 0 fcloseall
+PUBLIC 6cae0 0 fseeko64
+PUBLIC 6cc20 0 ftello64
+PUBLIC 6cdb0 0 freopen64
+PUBLIC 6d060 0 __fbufsize
+PUBLIC 6d090 0 __freading
+PUBLIC 6d0c0 0 __fwriting
+PUBLIC 6d0d0 0 __freadable
+PUBLIC 6d0e0 0 __fwritable
+PUBLIC 6d0f0 0 __flbf
+PUBLIC 6d100 0 __fpurge
+PUBLIC 6d170 0 __fpending
+PUBLIC 6d1a0 0 __fsetlocking
+PUBLIC 6d5f0 0 __libc_fatal
+PUBLIC 6d6a0 0 fmemopen
+PUBLIC 6d970 0 clearerr_unlocked
+PUBLIC 6d980 0 feof_unlocked
+PUBLIC 6d990 0 ferror_unlocked
+PUBLIC 6d9a0 0 fputc_unlocked
+PUBLIC 6d9d0 0 getc_unlocked
+PUBLIC 6d9f0 0 getchar_unlocked
+PUBLIC 6da20 0 fflush_unlocked
+PUBLIC 6da50 0 putc_unlocked
+PUBLIC 6da80 0 _IO_peekc_locked
+PUBLIC 6dbc0 0 fread_unlocked
+PUBLIC 6dc20 0 fwrite_unlocked
+PUBLIC 6dcc0 0 fgets_unlocked
+PUBLIC 6dd80 0 fputs_unlocked
+PUBLIC 6df50 0 swprintf
+PUBLIC 6e060 0 vswprintf
+PUBLIC 6e160 0 vswscanf
+PUBLIC 6e210 0 swscanf
+PUBLIC 6e2a0 0 _IO_least_wmarker
+PUBLIC 6e2e0 0 _IO_switch_to_main_wget_area
+PUBLIC 6e320 0 _IO_switch_to_wbackup_area
+PUBLIC 6e360 0 _IO_wdefault_uflow
+PUBLIC 6e390 0 _IO_wdoallocbuf
+PUBLIC 6e3e0 0 _IO_switch_to_wget_mode
+PUBLIC 6e460 0 _IO_sputbackwc
+PUBLIC 6e4b0 0 _IO_sungetwc
+PUBLIC 6e500 0 _IO_adjust_wcolumn
+PUBLIC 6e550 0 _IO_init_wmarker
+PUBLIC 6e5d0 0 _IO_wmarker_delta
+PUBLIC 6e620 0 _IO_seekwmark
+PUBLIC 6e6c0 0 _IO_unsave_wmarkers
+PUBLIC 6e6f0 0 _IO_free_wbackup_area
+PUBLIC 6e740 0 _IO_wdefault_doallocate
+PUBLIC 6e790 0 __woverflow
+PUBLIC 6e7e0 0 _IO_wdefault_xsputn
+PUBLIC 6eae0 0 __wunderflow
+PUBLIC 6ebf0 0 _IO_wdefault_xsgetn
+PUBLIC 6ecc0 0 __wuflow
+PUBLIC 6ede0 0 _IO_wdefault_pbackfail
+PUBLIC 6ef80 0 _IO_wsetb
+PUBLIC 6f030 0 _IO_wdefault_finish
+PUBLIC 6fa10 0 _IO_wfile_xsputn
+PUBLIC 6fbb0 0 _IO_wfile_seekoff
+PUBLIC 700a0 0 _IO_wfile_sync
+PUBLIC 70200 0 _IO_wfile_overflow
+PUBLIC 70480 0 _IO_wfile_underflow
+PUBLIC 70a60 0 _IO_wdo_write
+PUBLIC 70c10 0 open_wmemstream
+PUBLIC 70df0 0 fputwc
+PUBLIC 70f70 0 fputwc_unlocked
+PUBLIC 70ff0 0 fgetwc
+PUBLIC 71140 0 getwc_unlocked
+PUBLIC 71170 0 getwchar
+PUBLIC 712d0 0 getwchar_unlocked
+PUBLIC 71300 0 fgetws
+PUBLIC 714e0 0 fgetws_unlocked
+PUBLIC 715a0 0 fputws
+PUBLIC 71730 0 fputws_unlocked
+PUBLIC 71980 0 ungetwc
+PUBLIC 71a70 0 putwc
+PUBLIC 71bd0 0 putwc_unlocked
+PUBLIC 71c00 0 putwchar
+PUBLIC 71d70 0 putwchar_unlocked
+PUBLIC 71db0 0 fwprintf
+PUBLIC 71e40 0 vwprintf
+PUBLIC 71e60 0 wprintf
+PUBLIC 71f10 0 wscanf
+PUBLIC 71fc0 0 fwscanf
+PUBLIC 72050 0 vwscanf
+PUBLIC 72070 0 fwide
+PUBLIC 721a0 0 _IO_file_attach
+PUBLIC 723c0 0 _IO_file_seek
+PUBLIC 72bc0 0 _IO_file_xsputn
+PUBLIC 72de0 0 _IO_do_write
+PUBLIC 72e10 0 _IO_file_write
+PUBLIC 72eb0 0 _IO_file_close
+PUBLIC 72ef0 0 _IO_file_stat
+PUBLIC 72f00 0 _IO_file_read
+PUBLIC 72f30 0 _IO_file_underflow
+PUBLIC 73160 0 _IO_file_seekoff
+PUBLIC 73550 0 _IO_file_sync
+PUBLIC 73610 0 _IO_file_overflow
+PUBLIC 73850 0 _IO_file_setbuf
+PUBLIC 738f0 0 _IO_file_open
+PUBLIC 739c0 0 _IO_file_fopen
+PUBLIC 73e50 0 _IO_file_init
+PUBLIC 73e90 0 _IO_file_finish
+PUBLIC 73f10 0 _IO_file_close_it
+PUBLIC 74160 0 _IO_un_link
+PUBLIC 743b0 0 _IO_link_in
+PUBLIC 74630 0 _IO_switch_to_get_mode
+PUBLIC 746b0 0 __overflow
+PUBLIC 746e0 0 _IO_doallocbuf
+PUBLIC 74740 0 _IO_default_uflow
+PUBLIC 74770 0 _IO_sgetn
+PUBLIC 749f0 0 _IO_init
+PUBLIC 74a20 0 _IO_sputbackc
+PUBLIC 74a70 0 _IO_sungetc
+PUBLIC 74ab0 0 _IO_adjust_column
+PUBLIC 74d80 0 _IO_flush_all
+PUBLIC 74d90 0 _IO_flush_all_linebuffered
+PUBLIC 74fe0 0 _IO_init_marker
+PUBLIC 75040 0 _IO_remove_marker
+PUBLIC 75080 0 _IO_marker_difference
+PUBLIC 75090 0 _IO_marker_delta
+PUBLIC 750d0 0 _IO_seekmark
+PUBLIC 75160 0 _IO_unsave_markers
+PUBLIC 751f0 0 _IO_iter_begin
+PUBLIC 75200 0 _IO_iter_end
+PUBLIC 75210 0 _IO_iter_next
+PUBLIC 75220 0 _IO_iter_file
+PUBLIC 75230 0 _IO_list_lock
+PUBLIC 75280 0 _IO_list_unlock
+PUBLIC 752d0 0 _IO_list_resetlock
+PUBLIC 752f0 0 _IO_setb
+PUBLIC 75370 0 _IO_default_finish
+PUBLIC 753f0 0 _IO_free_backup_area
+PUBLIC 75430 0 _IO_default_xsputn
+PUBLIC 75690 0 _IO_default_pbackfail
+PUBLIC 757f0 0 __uflow
+PUBLIC 758c0 0 __underflow
+PUBLIC 75980 0 _IO_default_xsgetn
+PUBLIC 75c00 0 _IO_default_doallocate
+PUBLIC 75eb0 0 _IO_str_underflow
+PUBLIC 75f50 0 _IO_str_pbackfail
+PUBLIC 76130 0 _IO_str_seekoff
+PUBLIC 762d0 0 _IO_str_overflow
+PUBLIC 76530 0 _IO_str_init_readonly
+PUBLIC 76550 0 _IO_str_init_static
+PUBLIC 768f0 0 malloc_usable_size
+PUBLIC 77990 0 __libc_mallopt
+PUBLIC 77ab0 0 __libc_mallinfo
+PUBLIC 77b40 0 malloc_set_state
+PUBLIC 78c00 0 malloc_trim
+PUBLIC 7af90 0 malloc_info
+PUBLIC 7b0b0 0 __libc_calloc
+PUBLIC 7b510 0 pvalloc
+PUBLIC 7b7c0 0 __libc_valloc
+PUBLIC 7ba40 0 cfree
+PUBLIC 7bb20 0 __libc_malloc
+PUBLIC 7be60 0 malloc_get_state
+PUBLIC 7c030 0 __libc_memalign
+PUBLIC 7c310 0 posix_memalign
+PUBLIC 7c380 0 malloc_stats
+PUBLIC 7cb70 0 realloc
+PUBLIC 7d9e0 0 __default_morecore
+PUBLIC 7da90 0 mcheck_check_all
+PUBLIC 7dad0 0 mprobe
+PUBLIC 7daf0 0 mcheck
+PUBLIC 7dbd0 0 mcheck_pedantic
+PUBLIC 7e2f0 0 tr_break
+PUBLIC 7e300 0 muntrace
+PUBLIC 7e390 0 mtrace
+PUBLIC 7ecf0 0 _obstack_begin
+PUBLIC 7edb0 0 _obstack_begin_1
+PUBLIC 7ee70 0 _obstack_newchunk
+PUBLIC 7f000 0 _obstack_allocated_p
+PUBLIC 7f040 0 _obstack_memory_used
+PUBLIC 7f0a0 0 obstack_free
+PUBLIC 7f120 0 strcat
+PUBLIC 80810 0 strcoll
+PUBLIC 80a00 0 __strverscmp
+PUBLIC 80b20 0 __strdup
+PUBLIC 80b80 0 strndup
+PUBLIC 80bf0 0 strerror
+PUBLIC 80cb0 0 __strerror_r
+PUBLIC 80ef0 0 strnlen
+PUBLIC 80f60 0 strncat
+PUBLIC 82ac0 0 strsignal
+PUBLIC 82df0 0 strtok
+PUBLIC 82ef0 0 strtok_r
+PUBLIC 82fe0 0 strxfrm
+PUBLIC 82ff0 0 memchr
+PUBLIC 84690 0 bcopy
+PUBLIC 846e0 0 ffs
+PUBLIC 846f0 0 ffsl
+PUBLIC 891e0 0 memccpy
+PUBLIC 89c60 0 __strsep_g
+PUBLIC 89cf0 0 swab
+PUBLIC 89d30 0 strfry
+PUBLIC 89e10 0 memfrob
+PUBLIC 8a280 0 memmem
+PUBLIC 8a640 0 strchrnul
+PUBLIC 8a6b0 0 argz_append
+PUBLIC 8a740 0 argz_add
+PUBLIC 8a790 0 argz_count
+PUBLIC 8a7d0 0 argz_create
+PUBLIC 8a860 0 argz_create_sep
+PUBLIC 8a970 0 argz_next
+PUBLIC 8a9c0 0 argz_delete
+PUBLIC 8aa50 0 argz_extract
+PUBLIC 8aaa0 0 argz_insert
+PUBLIC 8ac10 0 argz_stringify
+PUBLIC 8ac60 0 argz_add_sep
+PUBLIC 8adf0 0 argz_replace
+PUBLIC 8b120 0 basename
+PUBLIC 8b140 0 strcoll_l
+PUBLIC 8c050 0 strxfrm_l
+PUBLIC 8cb30 0 __mempcpy_small
+PUBLIC 8cc00 0 __strcpy_small
+PUBLIC 8cca0 0 __stpcpy_small
+PUBLIC 8cd40 0 __strcspn_c1
+PUBLIC 8cd80 0 __strcspn_c2
+PUBLIC 8cdd0 0 __strcspn_c3
+PUBLIC 8ce20 0 __strspn_c1
+PUBLIC 8ce40 0 __strspn_c2
+PUBLIC 8ce60 0 __strspn_c3
+PUBLIC 8ce90 0 __strpbrk_c2
+PUBLIC 8cee0 0 __strpbrk_c3
+PUBLIC 8cf40 0 __strtok_r_1c
+PUBLIC 8cfb0 0 __strsep_2c
+PUBLIC 8d020 0 __strsep_3c
+PUBLIC 8d090 0 __strsep_1c
+PUBLIC 8d0e0 0 memrchr
+PUBLIC 8d200 0 __xpg_strerror_r
+PUBLIC 8d2e0 0 strerror_l
+PUBLIC 8d3b0 0 envz_entry
+PUBLIC 8d450 0 envz_get
+PUBLIC 8d490 0 envz_strip
+PUBLIC 8d510 0 envz_merge
+PUBLIC 8d5c0 0 envz_remove
+PUBLIC 8d610 0 envz_add
+PUBLIC 904d0 0 wmemcpy
+PUBLIC 904e0 0 wmemset
+PUBLIC 90550 0 wcscat
+PUBLIC 90590 0 wcschr
+PUBLIC 905b0 0 wcscmp
+PUBLIC 905e0 0 wcscpy
+PUBLIC 90610 0 wcscspn
+PUBLIC 90650 0 wcsdup
+PUBLIC 906b0 0 wcslen
+PUBLIC 90720 0 wcsncat
+PUBLIC 907b0 0 wcsncmp
+PUBLIC 90870 0 wcsncpy
+PUBLIC 90950 0 wcspbrk
+PUBLIC 909a0 0 wcsrchr
+PUBLIC 909c0 0 wcsspn
+PUBLIC 90a20 0 wcstok
+PUBLIC 90ad0 0 wcswcs
+PUBLIC 90be0 0 wmemchr
+PUBLIC 90c60 0 wmemcmp
+PUBLIC 90d40 0 wmemmove
+PUBLIC 90d50 0 wcpcpy
+PUBLIC 90d80 0 wcpncpy
+PUBLIC 90e60 0 wmempcpy
+PUBLIC 90e70 0 btowc
+PUBLIC 91030 0 wctob
+PUBLIC 911c0 0 mbsinit
+PUBLIC 911e0 0 __mbrlen
+PUBLIC 91200 0 mbrtowc
+PUBLIC 91470 0 wcrtomb
+PUBLIC 91690 0 mbsrtowcs
+PUBLIC 916b0 0 wcsrtombs
+PUBLIC 91a00 0 mbsnrtowcs
+PUBLIC 91d80 0 wcsnrtombs
+PUBLIC 920f0 0 wcsnlen
+PUBLIC 92190 0 wcschrnul
+PUBLIC 921c0 0 wcstoll
+PUBLIC 921e0 0 __wcstol_internal
+PUBLIC 921f0 0 wcstoul
+PUBLIC 92210 0 __wcstoull_internal
+PUBLIC 92220 0 wcstod
+PUBLIC 92240 0 __wcstod_internal
+PUBLIC 92250 0 wcstold
+PUBLIC 92270 0 __wcstold_internal
+PUBLIC 92280 0 wcstof
+PUBLIC 922a0 0 __wcstof_internal
+PUBLIC 92710 0 wcstoll_l
+PUBLIC 92b40 0 wcstoul_l
+PUBLIC 94fa0 0 __wcstod_l
+PUBLIC 97350 0 wcstold_l
+PUBLIC 99700 0 __wcstof_l
+PUBLIC 99710 0 wcscoll
+PUBLIC 99720 0 wcsxfrm
+PUBLIC 99730 0 wcwidth
+PUBLIC 997a0 0 wcswidth
+PUBLIC 99880 0 __wcscoll_l
+PUBLIC 9a510 0 wcsxfrm_l
+PUBLIC 9ade0 0 wcscasecmp
+PUBLIC 9ae40 0 wcsncasecmp
+PUBLIC 9aed0 0 __wcscasecmp_l
+PUBLIC 9af30 0 wcsncasecmp_l
+PUBLIC 9b7c0 0 __isoc99_swscanf
+PUBLIC 9b850 0 __isoc99_vswscanf
+PUBLIC 9b900 0 __isoc99_wscanf
+PUBLIC 9bae0 0 __isoc99_vwscanf
+PUBLIC 9bc40 0 __isoc99_fwscanf
+PUBLIC 9be10 0 __isoc99_vfwscanf
+PUBLIC 9c470 0 asctime
+PUBLIC 9c490 0 asctime_r
+PUBLIC 9c4a0 0 clock
+PUBLIC 9c530 0 ctime
+PUBLIC 9c550 0 ctime_r
+PUBLIC 9c580 0 difftime
+PUBLIC 9c5a0 0 gmtime
+PUBLIC 9c5b0 0 __gmtime_r
+PUBLIC 9c5c0 0 localtime
+PUBLIC 9c5e0 0 localtime_r
+PUBLIC 9cf30 0 timelocal
+PUBLIC 9cf50 0 time
+PUBLIC 9cf70 0 __gettimeofday
+PUBLIC 9cfb0 0 settimeofday
+PUBLIC 9cfe0 0 adjtime
+PUBLIC 9e0b0 0 tzset
+PUBLIC 9f930 0 getitimer
+PUBLIC 9f960 0 setitimer
+PUBLIC 9f990 0 stime
+PUBLIC 9f9e0 0 dysize
+PUBLIC 9fa30 0 timegm
+PUBLIC 9fa50 0 ftime
+PUBLIC 9fae0 0 getdate_r
+PUBLIC a0030 0 getdate
+PUBLIC a0070 0 strptime
+PUBLIC a2e50 0 strptime_l
+PUBLIC a2e60 0 strftime
+PUBLIC a4f30 0 strftime_l
+PUBLIC a4f50 0 wcsftime
+PUBLIC a70c0 0 wcsftime_l
+PUBLIC a7a10 0 ntp_gettime
+PUBLIC a7a60 0 ntp_gettimex
+PUBLIC a7be0 0 opendir
+PUBLIC a7c20 0 closedir
+PUBLIC a7c50 0 readdir
+PUBLIC a7d70 0 readdir_r
+PUBLIC a7f10 0 rewinddir
+PUBLIC a7fa0 0 seekdir
+PUBLIC a8050 0 telldir
+PUBLIC a8060 0 scandir
+PUBLIC a82a0 0 alphasort64
+PUBLIC a82c0 0 versionsort
+PUBLIC a8370 0 dirfd
+PUBLIC a8380 0 fdopendir
+PUBLIC a8410 0 getdirentries
+PUBLIC a8480 0 fgetgrent
+PUBLIC a8c60 0 initgroups
+PUBLIC a8d30 0 getgrouplist
+PUBLIC a8df0 0 setgroups
+PUBLIC a8e50 0 getgrent
+PUBLIC a8f10 0 getgrgid
+PUBLIC a9070 0 getgrnam
+PUBLIC a91d0 0 putgrent
+PUBLIC a9470 0 getgrent_r
+PUBLIC a9550 0 endgrent
+PUBLIC a95f0 0 setgrent
+PUBLIC a9750 0 getgrgid_r
+PUBLIC a99b0 0 getgrnam_r
+PUBLIC a9c10 0 _nss_files_parse_grent
+PUBLIC a9f00 0 fgetgrent_r
+PUBLIC aa200 0 fgetpwent
+PUBLIC aa3e0 0 getpw
+PUBLIC aa4b0 0 putpwent
+PUBLIC aa5b0 0 getpwent
+PUBLIC aa670 0 getpwnam
+PUBLIC aa7d0 0 getpwuid
+PUBLIC aa930 0 getpwent_r
+PUBLIC aaa10 0 endpwent
+PUBLIC aaab0 0 setpwent
+PUBLIC aac10 0 getpwnam_r
+PUBLIC aae70 0 getpwuid_r
+PUBLIC ab0d0 0 _nss_files_parse_pwent
+PUBLIC ab3b0 0 fgetpwent_r
+PUBLIC ab680 0 uname
+PUBLIC ab6b0 0 times
+PUBLIC ab700 0 wait
+PUBLIC ab7a0 0 waitpid
+PUBLIC ab840 0 wait3
+PUBLIC ab860 0 wait4
+PUBLIC ab890 0 waitid
+PUBLIC ab940 0 alarm
+PUBLIC ab970 0 sleep
+PUBLIC abb50 0 pause
+PUBLIC abbb0 0 nanosleep
+PUBLIC abc10 0 __libc_fork
+PUBLIC abee0 0 vfork
+PUBLIC abf30 0 _exit
+PUBLIC abf80 0 execve
+PUBLIC abfb0 0 fexecve
+PUBLIC ac080 0 execv
+PUBLIC ac090 0 execle
+PUBLIC ac270 0 execl
+PUBLIC ac430 0 execvp
+PUBLIC ac440 0 execlp
+PUBLIC ac5e0 0 execvpe
+PUBLIC aca70 0 getpid
+PUBLIC acab0 0 getppid
+PUBLIC acac0 0 getuid
+PUBLIC acad0 0 geteuid
+PUBLIC acae0 0 getgid
+PUBLIC acaf0 0 getegid
+PUBLIC acb00 0 getgroups
+PUBLIC acb30 0 setuid
+PUBLIC acb90 0 setgid
+PUBLIC acbf0 0 group_member
+PUBLIC acc90 0 getpgid
+PUBLIC accc0 0 setpgid
+PUBLIC accf0 0 getpgrp
+PUBLIC acd00 0 __bsd_getpgrp
+PUBLIC acd10 0 setpgrp
+PUBLIC acd20 0 getsid
+PUBLIC acd50 0 setsid
+PUBLIC acd80 0 getresuid
+PUBLIC acdb0 0 getresgid
+PUBLIC acde0 0 setresuid
+PUBLIC ace50 0 setresgid
+PUBLIC ad260 0 pathconf
+PUBLIC ad590 0 __sysconf
+PUBLIC ad9a0 0 fpathconf
+PUBLIC add00 0 glob_pattern_p
+PUBLIC add10 0 globfree64
+PUBLIC ae6c0 0 glob64
+PUBLIC b3aa0 0 fnmatch
+PUBLIC b3e10 0 confstr
+PUBLIC b56d0 0 __posix_getopt
+PUBLIC b56f0 0 getopt
+PUBLIC b5750 0 getopt_long_only
+PUBLIC b5770 0 getopt_long
+PUBLIC b5790 0 sched_setparam
+PUBLIC b57c0 0 __sched_getparam
+PUBLIC b57f0 0 sched_setscheduler
+PUBLIC b5820 0 __sched_getscheduler
+PUBLIC b5850 0 __sched_yield
+PUBLIC b5880 0 __sched_get_priority_max
+PUBLIC b58b0 0 sched_get_priority_min
+PUBLIC b58e0 0 sched_rr_get_interval
+PUBLIC b5910 0 sched_getaffinity
+PUBLIC b5970 0 sched_setaffinity
+PUBLIC b5ad0 0 pread64
+PUBLIC b5b40 0 __pwrite64
+PUBLIC b5bb0 0 posix_madvise
+PUBLIC b5d40 0 __sched_cpualloc
+PUBLIC b5d60 0 __sched_cpufree
+PUBLIC b5e80 0 freeaddrinfo
+PUBLIC b8fd0 0 getaddrinfo
+PUBLIC b9940 0 gai_strerror
+PUBLIC b9a00 0 re_set_syntax
+PUBLIC b9c90 0 re_set_registers
+PUBLIC bade0 0 regfree
+PUBLIC c4490 0 regexec
+PUBLIC c45d0 0 re_exec
+PUBLIC c5460 0 regerror
+PUBLIC c5be0 0 re_compile_fastmap
+PUBLIC c62d0 0 re_search_2
+PUBLIC c6300 0 re_match_2
+PUBLIC c6330 0 re_search
+PUBLIC c6350 0 re_match
+PUBLIC c8f20 0 re_comp
+PUBLIC c9060 0 re_compile_pattern
+PUBLIC c90e0 0 regcomp
+PUBLIC c92a0 0 posix_spawn_file_actions_init
+PUBLIC c9300 0 posix_spawn_file_actions_destroy
+PUBLIC c9320 0 posix_spawn_file_actions_addclose
+PUBLIC c93b0 0 posix_spawn_file_actions_addopen
+PUBLIC c9470 0 posix_spawn_file_actions_adddup2
+PUBLIC c9510 0 posix_spawnattr_init
+PUBLIC c9520 0 posix_spawnattr_destroy
+PUBLIC c9530 0 posix_spawnattr_getsigdefault
+PUBLIC c95c0 0 posix_spawnattr_setsigdefault
+PUBLIC c9650 0 posix_spawnattr_getflags
+PUBLIC c9660 0 posix_spawnattr_setflags
+PUBLIC c9680 0 posix_spawnattr_getpgroup
+PUBLIC c9690 0 posix_spawnattr_setpgroup
+PUBLIC c96a0 0 posix_spawn
+PUBLIC c96c0 0 posix_spawnp
+PUBLIC c9d10 0 posix_spawnattr_getsigmask
+PUBLIC c9da0 0 posix_spawnattr_getschedpolicy
+PUBLIC c9db0 0 posix_spawnattr_getschedparam
+PUBLIC c9dc0 0 posix_spawnattr_setsigmask
+PUBLIC c9e50 0 posix_spawnattr_setschedpolicy
+PUBLIC c9e70 0 posix_spawnattr_setschedparam
+PUBLIC c9f60 0 getlogin
+PUBLIC ca3c0 0 getlogin_r
+PUBLIC ca450 0 wordfree
+PUBLIC cd5c0 0 wordexp
+PUBLIC ce2a0 0 setlogin
+PUBLIC ce2f0 0 sched_getcpu
+PUBLIC ce340 0 utime
+PUBLIC ce370 0 mkfifo
+PUBLIC ce3a0 0 mkfifoat
+PUBLIC ce3d0 0 __xstat64
+PUBLIC ce420 0 __fxstat64
+PUBLIC ce470 0 __lxstat
+PUBLIC ce4c0 0 __xmknod
+PUBLIC ce520 0 __xmknodat
+PUBLIC ce580 0 __fxstatat64
+PUBLIC ce5d0 0 __statfs
+PUBLIC ce600 0 fstatfs
+PUBLIC ce630 0 statvfs64
+PUBLIC ce6c0 0 fstatvfs
+PUBLIC ce750 0 umask
+PUBLIC ce760 0 chmod
+PUBLIC ce790 0 fchmod
+PUBLIC ce7c0 0 fchmodat
+PUBLIC ce830 0 mkdir
+PUBLIC ce860 0 mkdirat
+PUBLIC ce890 0 __open64
+PUBLIC ce920 0 openat
+PUBLIC cea00 0 __openat64_2
+PUBLIC cea20 0 close
+PUBLIC cea80 0 __read
+PUBLIC ceae0 0 __write
+PUBLIC ceb40 0 access
+PUBLIC ceb70 0 eaccess
+PUBLIC cecb0 0 faccessat
+PUBLIC cef40 0 fcntl
+PUBLIC cefc0 0 flock
+PUBLIC ceff0 0 lockf64
+PUBLIC cf100 0 dup
+PUBLIC cf130 0 __dup2
+PUBLIC cf160 0 dup3
+PUBLIC cf190 0 pipe
+PUBLIC cf1c0 0 pipe2
+PUBLIC cf1f0 0 creat64
+PUBLIC cf250 0 chdir
+PUBLIC cf280 0 fchdir
+PUBLIC cf2b0 0 getcwd
+PUBLIC cf400 0 getwd
+PUBLIC cf490 0 get_current_dir_name
+PUBLIC cf520 0 chown
+PUBLIC cf550 0 fchown
+PUBLIC cf580 0 lchown
+PUBLIC cf5b0 0 fchownat
+PUBLIC cf5e0 0 ttyname
+PUBLIC cf8f0 0 ttyname_r
+PUBLIC cfc10 0 isatty
+PUBLIC cfc30 0 link
+PUBLIC cfc60 0 linkat
+PUBLIC cfc90 0 symlink
+PUBLIC cfcc0 0 symlinkat
+PUBLIC cfcf0 0 readlink
+PUBLIC cfd20 0 readlinkat
+PUBLIC cfd50 0 unlink
+PUBLIC cfd80 0 unlinkat
+PUBLIC cfdb0 0 rmdir
+PUBLIC cfde0 0 __poll
+PUBLIC cfe80 0 ppoll
+PUBLIC cff50 0 posix_fadvise
+PUBLIC d0120 0 posix_fallocate64
+PUBLIC d0170 0 sendfile
+PUBLIC d01a0 0 utimensat
+PUBLIC d01f0 0 futimens
+PUBLIC d0240 0 lchmod
+PUBLIC d11b0 0 nftw64
+PUBLIC d11f0 0 ftw64
+PUBLIC d1200 0 fts_set
+PUBLIC d1260 0 fts_close
+PUBLIC d1f00 0 fts_children
+PUBLIC d2040 0 fts_open
+PUBLIC d2310 0 fts_read
+PUBLIC d2e10 0 sync_file_range
+PUBLIC d2e40 0 __open_2
+PUBLIC d2e70 0 __open64_2
+PUBLIC d2ea0 0 fallocate
+PUBLIC d2ed0 0 cfgetospeed
+PUBLIC d2ee0 0 cfgetispeed
+PUBLIC d2f00 0 cfsetospeed
+PUBLIC d2f50 0 cfsetispeed
+PUBLIC d2fb0 0 cfsetspeed
+PUBLIC d3040 0 tcsetattr
+PUBLIC d3230 0 tcgetattr
+PUBLIC d32e0 0 tcgetpgrp
+PUBLIC d3310 0 tcsetpgrp
+PUBLIC d3330 0 tcdrain
+PUBLIC d33d0 0 tcflow
+PUBLIC d33e0 0 tcflush
+PUBLIC d33f0 0 tcsendbreak
+PUBLIC d3430 0 cfmakeraw
+PUBLIC d3460 0 tcgetsid
+PUBLIC d3520 0 getrlimit64
+PUBLIC d3550 0 setrlimit64
+PUBLIC d3580 0 getrusage
+PUBLIC d35b0 0 ulimit
+PUBLIC d36d0 0 vlimit
+PUBLIC d3830 0 vtimes
+PUBLIC d3870 0 getpriority
+PUBLIC d38b0 0 setpriority
+PUBLIC d38e0 0 nice
+PUBLIC d3980 0 brk
+PUBLIC d39f0 0 __sbrk
+PUBLIC d3aa0 0 sstk
+PUBLIC d3ac0 0 ioctl
+PUBLIC d3af0 0 readv
+PUBLIC d3b90 0 writev
+PUBLIC d3db0 0 preadv64
+PUBLIC d4030 0 pwritev
+PUBLIC d4140 0 setreuid
+PUBLIC d41b0 0 setregid
+PUBLIC d4220 0 seteuid
+PUBLIC d42c0 0 setegid
+PUBLIC d4360 0 getpagesize
+PUBLIC d4380 0 getdtablesize
+PUBLIC d43b0 0 gethostname
+PUBLIC d4460 0 sethostname
+PUBLIC d4490 0 getdomainname
+PUBLIC d4510 0 setdomainname
+PUBLIC d4540 0 __select
+PUBLIC d45b0 0 pselect
+PUBLIC d4690 0 acct
+PUBLIC d46c0 0 chroot
+PUBLIC d46f0 0 fsync
+PUBLIC d4750 0 sync
+PUBLIC d4780 0 fdatasync
+PUBLIC d47e0 0 reboot
+PUBLIC d4810 0 gethostid
+PUBLIC d4990 0 sethostid
+PUBLIC d4a40 0 vhangup
+PUBLIC d4a70 0 swapon
+PUBLIC d4aa0 0 swapoff
+PUBLIC d4ad0 0 mktemp
+PUBLIC d4af0 0 mkstemp
+PUBLIC d4b00 0 mkdtemp
+PUBLIC d4b30 0 mkostemp64
+PUBLIC d4b40 0 mkstemps
+PUBLIC d4b70 0 mkstemps64
+PUBLIC d4ba0 0 mkostemps
+PUBLIC d4bd0 0 mkostemps64
+PUBLIC d4c00 0 ualarm
+PUBLIC d4c60 0 usleep
+PUBLIC d4ca0 0 gtty
+PUBLIC d4ce0 0 stty
+PUBLIC d4d20 0 ptrace
+PUBLIC d4df0 0 getmntent
+PUBLIC d4f70 0 hasmntopt
+PUBLIC d4ff0 0 addmntent
+PUBLIC d5520 0 __getmntent_r
+PUBLIC d58c0 0 endmntent
+PUBLIC d58e0 0 setmntent
+PUBLIC d59a0 0 utimes
+PUBLIC d59d0 0 lutimes
+PUBLIC d5a70 0 futimes
+PUBLIC d5b10 0 futimesat
+PUBLIC d5b50 0 truncate
+PUBLIC d5b80 0 ftruncate
+PUBLIC d5bb0 0 insque
+PUBLIC d5be0 0 remque
+PUBLIC d5ce0 0 endttyent
+PUBLIC d5d20 0 setttyent
+PUBLIC d5d80 0 getttyent
+PUBLIC d6110 0 getttynam
+PUBLIC d6150 0 endusershell
+PUBLIC d63c0 0 setusershell
+PUBLIC d63e0 0 getusershell
+PUBLIC d6430 0 getpass
+PUBLIC d6680 0 ttyslot
+PUBLIC d6780 0 setlogmask
+PUBLIC d67a0 0 closelog
+PUBLIC d6ab0 0 openlog
+PUBLIC d6b20 0 __vsyslog_chk
+PUBLIC d7100 0 vsyslog
+PUBLIC d7110 0 __syslog_chk
+PUBLIC d71a0 0 syslog
+PUBLIC d72e0 0 syscall
+PUBLIC d7320 0 daemon
+PUBLIC d7480 0 mmap64
+PUBLIC d74b0 0 munmap
+PUBLIC d74e0 0 mprotect
+PUBLIC d7510 0 msync
+PUBLIC d7570 0 madvise
+PUBLIC d75a0 0 mincore
+PUBLIC d75d0 0 remap_file_pages
+PUBLIC d7600 0 mlock
+PUBLIC d7630 0 munlock
+PUBLIC d7660 0 mlockall
+PUBLIC d7690 0 munlockall
+PUBLIC d76c0 0 hdestroy
+PUBLIC d76d0 0 hcreate
+PUBLIC d76e0 0 hsearch
+PUBLIC d7710 0 hsearch_r
+PUBLIC d7930 0 hdestroy_r
+PUBLIC d7960 0 hcreate_r
+PUBLIC d7b40 0 tfind
+PUBLIC d7c40 0 twalk
+PUBLIC d7cb0 0 tdestroy
+PUBLIC d7cd0 0 tdelete
+PUBLIC d8110 0 tsearch
+PUBLIC d8230 0 lfind
+PUBLIC d82a0 0 lsearch
+PUBLIC d8430 0 vwarn
+PUBLIC d8560 0 verr
+PUBLIC d8580 0 err
+PUBLIC d8610 0 warn
+PUBLIC d86b0 0 vwarnx
+PUBLIC d87a0 0 verrx
+PUBLIC d87c0 0 errx
+PUBLIC d8850 0 warnx
+PUBLIC d8b10 0 error_at_line
+PUBLIC d8d10 0 error
+PUBLIC d8e60 0 ustat
+PUBLIC d8fa0 0 get_avphys_pages
+PUBLIC d8fb0 0 get_phys_pages
+PUBLIC d91b0 0 get_nprocs
+PUBLIC d92f0 0 get_nprocs_conf
+PUBLIC d93c0 0 dirname
+PUBLIC d94b0 0 getloadavg
+PUBLIC d95b0 0 fgetxattr
+PUBLIC d95e0 0 flistxattr
+PUBLIC d9610 0 fremovexattr
+PUBLIC d9640 0 fsetxattr
+PUBLIC d9670 0 getxattr
+PUBLIC d96a0 0 listxattr
+PUBLIC d96d0 0 lgetxattr
+PUBLIC d9700 0 llistxattr
+PUBLIC d9730 0 lremovexattr
+PUBLIC d9760 0 lsetxattr
+PUBLIC d9790 0 removexattr
+PUBLIC d97c0 0 setxattr
+PUBLIC d97f0 0 advance
+PUBLIC d9850 0 step
+PUBLIC d98b0 0 endfsent
+PUBLIC d9970 0 setfsent
+PUBLIC d9a80 0 getfsfile
+PUBLIC d9ae0 0 getfsspec
+PUBLIC d9b40 0 getfsent
+PUBLIC d9b80 0 chflags
+PUBLIC d9bc0 0 fchflags
+PUBLIC d9c00 0 revoke
+PUBLIC d9c20 0 gcvt
+PUBLIC d9c50 0 ecvt
+PUBLIC d9c80 0 fcvt
+PUBLIC d9d30 0 fcvt_r
+PUBLIC da040 0 ecvt_r
+PUBLIC da240 0 qgcvt
+PUBLIC da280 0 qecvt
+PUBLIC da2c0 0 qfcvt
+PUBLIC da390 0 qfcvt_r
+PUBLIC da6c0 0 qecvt_r
+PUBLIC da950 0 ioperm
+PUBLIC da980 0 iopl
+PUBLIC da9b0 0 __sysctl
+PUBLIC daa10 0 clone
+PUBLIC daaa0 0 llseek
+PUBLIC dab00 0 umount
+PUBLIC dab10 0 umount2
+PUBLIC dab40 0 readahead
+PUBLIC dab70 0 setfsuid
+PUBLIC daba0 0 setfsgid
+PUBLIC dabd0 0 gnu_dev_major
+PUBLIC dabf0 0 gnu_dev_minor
+PUBLIC dac10 0 gnu_dev_makedev
+PUBLIC dac40 0 epoll_pwait
+PUBLIC dad00 0 signalfd
+PUBLIC dad90 0 eventfd
+PUBLIC dae10 0 eventfd_read
+PUBLIC dae30 0 eventfd_write
+PUBLIC dae60 0 prlimit
+PUBLIC dae90 0 __arch_prctl
+PUBLIC daec0 0 modify_ldt
+PUBLIC daef0 0 fanotify_mark
+PUBLIC daf20 0 ntp_adjtime
+PUBLIC daf50 0 capget
+PUBLIC daf80 0 capset
+PUBLIC dafb0 0 create_module
+PUBLIC dafe0 0 delete_module
+PUBLIC db010 0 epoll_create
+PUBLIC db040 0 epoll_create1
+PUBLIC db070 0 epoll_ctl
+PUBLIC db0a0 0 epoll_wait
+PUBLIC db110 0 get_kernel_syms
+PUBLIC db140 0 init_module
+PUBLIC db170 0 inotify_add_watch
+PUBLIC db1a0 0 inotify_init
+PUBLIC db1d0 0 inotify_init1
+PUBLIC db200 0 inotify_rm_watch
+PUBLIC db230 0 klogctl
+PUBLIC db260 0 mount
+PUBLIC db290 0 mremap
+PUBLIC db2c0 0 nfsservctl
+PUBLIC db2f0 0 personality
+PUBLIC db320 0 pivot_root
+PUBLIC db350 0 prctl
+PUBLIC db380 0 query_module
+PUBLIC db3b0 0 quotactl
+PUBLIC db3e0 0 splice
+PUBLIC db450 0 sysinfo
+PUBLIC db480 0 tee
+PUBLIC db4f0 0 unshare
+PUBLIC db520 0 uselib
+PUBLIC db550 0 vmsplice
+PUBLIC db5c0 0 timerfd_create
+PUBLIC db5f0 0 timerfd_settime
+PUBLIC db620 0 timerfd_gettime
+PUBLIC db650 0 fanotify_init
+PUBLIC db680 0 bdflush
+PUBLIC db6a0 0 accept
+PUBLIC db700 0 bind
+PUBLIC db730 0 connect
+PUBLIC db790 0 getpeername
+PUBLIC db7c0 0 getsockname
+PUBLIC db7f0 0 getsockopt
+PUBLIC db820 0 listen
+PUBLIC db850 0 recv
+PUBLIC db900 0 recvfrom
+PUBLIC db970 0 recvmsg
+PUBLIC db9d0 0 __send
+PUBLIC dba80 0 sendmsg
+PUBLIC dbae0 0 sendto
+PUBLIC dbb50 0 setsockopt
+PUBLIC dbb80 0 shutdown
+PUBLIC dbbb0 0 socket
+PUBLIC dbbe0 0 socketpair
+PUBLIC dbc10 0 isfdtype
+PUBLIC dbf20 0 sockatmark
+PUBLIC dbf50 0 accept4
+PUBLIC dbff0 0 recvmmsg
+PUBLIC dc0a0 0 __cmsg_nxthdr
+PUBLIC dc0f0 0 __libc_sa_len
+PUBLIC dc110 0 ftok
+PUBLIC dc160 0 msgsnd
+PUBLIC dc1d0 0 msgrcv
+PUBLIC dc240 0 msgget
+PUBLIC dc270 0 msgctl
+PUBLIC dc2a0 0 semop
+PUBLIC dc2d0 0 semget
+PUBLIC dc300 0 semctl
+PUBLIC dc330 0 semtimedop
+PUBLIC dc360 0 shmat
+PUBLIC dc390 0 shmdt
+PUBLIC dc3c0 0 shmget
+PUBLIC dc3f0 0 shmctl
+PUBLIC dc910 0 moncontrol
+PUBLIC dc970 0 _mcleanup
+PUBLIC dc9a0 0 __monstartup
+PUBLIC dcd40 0 profil
+PUBLIC dd250 0 sprofil
+PUBLIC dd670 0 __profile_frequency
+PUBLIC dd680 0 _mcount
+PUBLIC dd6e0 0 __fentry__
+PUBLIC dd740 0 wctrans
+PUBLIC dd7d0 0 towctrans
+PUBLIC dd830 0 __towctrans_l
+PUBLIC dd890 0 iswdigit
+PUBLIC dd930 0 towlower
+PUBLIC dd9a0 0 towupper
+PUBLIC dda00 0 iswxdigit
+PUBLIC ddad0 0 iswupper
+PUBLIC ddba0 0 iswspace
+PUBLIC ddc70 0 iswpunct
+PUBLIC ddd40 0 iswprint
+PUBLIC dde10 0 iswgraph
+PUBLIC ddee0 0 iswlower
+PUBLIC ddfb0 0 iswcntrl
+PUBLIC de080 0 iswblank
+PUBLIC de150 0 iswalpha
+PUBLIC de220 0 iswalnum
+PUBLIC de2f0 0 wctype
+PUBLIC de370 0 __iswctype
+PUBLIC de3d0 0 __iswalnum_l
+PUBLIC de460 0 __iswalpha_l
+PUBLIC de4f0 0 __iswblank_l
+PUBLIC de580 0 iswcntrl_l
+PUBLIC de610 0 iswdigit_l
+PUBLIC de6a0 0 __iswlower_l
+PUBLIC de730 0 __iswgraph_l
+PUBLIC de7c0 0 __iswprint_l
+PUBLIC de850 0 __iswpunct_l
+PUBLIC de8e0 0 __iswspace_l
+PUBLIC de970 0 __iswupper_l
+PUBLIC dea00 0 iswxdigit_l
+PUBLIC dea90 0 __towlower_l
+PUBLIC deaf0 0 __towupper_l
+PUBLIC deb50 0 __wctype_l
+PUBLIC debd0 0 iswctype_l
+PUBLIC dec30 0 wctrans_l
+PUBLIC decb0 0 getspent
+PUBLIC ded70 0 getspnam
+PUBLIC deed0 0 sgetspent
+PUBLIC df060 0 fgetspent
+PUBLIC df240 0 putspent
+PUBLIC df680 0 getspent_r
+PUBLIC df760 0 endspent
+PUBLIC df800 0 setspent
+PUBLIC df960 0 getspnam_r
+PUBLIC dfb50 0 _nss_files_parse_spent
+PUBLIC dff10 0 sgetspent_r
+PUBLIC dffc0 0 fgetspent_r
+PUBLIC e0290 0 ulckpwdf
+PUBLIC e0310 0 lckpwdf
+PUBLIC e0620 0 getsgent
+PUBLIC e06e0 0 getsgnam
+PUBLIC e0840 0 sgetsgent
+PUBLIC e09f0 0 fgetsgent
+PUBLIC e0bd0 0 putsgent
+PUBLIC e0df0 0 getsgent_r
+PUBLIC e0ed0 0 endsgent
+PUBLIC e0f70 0 setsgent
+PUBLIC e10d0 0 getsgnam_r
+PUBLIC e12c0 0 _nss_files_parse_sgent
+PUBLIC e1650 0 sgetsgent_r
+PUBLIC e1710 0 fgetsgent_r
+PUBLIC e26f0 0 argp_failure
+PUBLIC e5940 0 argp_state_help
+PUBLIC e59f0 0 argp_error
+PUBLIC e5b40 0 argp_help
+PUBLIC e6150 0 argp_parse
+PUBLIC e6e60 0 argp_usage
+PUBLIC e6e80 0 __libc_alloca_cutoff
+PUBLIC e6ed0 0 pthread_equal
+PUBLIC e6f00 0 pthread_attr_destroy
+PUBLIC e6f30 0 pthread_attr_init
+PUBLIC e6f60 0 pthread_attr_getdetachstate
+PUBLIC e6f90 0 pthread_attr_setdetachstate
+PUBLIC e6fc0 0 pthread_attr_getinheritsched
+PUBLIC e6ff0 0 pthread_attr_setinheritsched
+PUBLIC e7020 0 pthread_attr_getschedparam
+PUBLIC e7050 0 pthread_attr_setschedparam
+PUBLIC e7080 0 pthread_attr_getschedpolicy
+PUBLIC e70b0 0 pthread_attr_setschedpolicy
+PUBLIC e70e0 0 pthread_attr_getscope
+PUBLIC e7110 0 pthread_attr_setscope
+PUBLIC e7140 0 pthread_condattr_destroy
+PUBLIC e7170 0 pthread_condattr_init
+PUBLIC e71a0 0 pthread_cond_broadcast
+PUBLIC e71d0 0 pthread_cond_destroy
+PUBLIC e7200 0 pthread_cond_init
+PUBLIC e7230 0 pthread_cond_signal
+PUBLIC e7260 0 pthread_cond_wait
+PUBLIC e7290 0 pthread_cond_timedwait
+PUBLIC e72c0 0 pthread_getschedparam
+PUBLIC e72f0 0 pthread_setschedparam
+PUBLIC e7320 0 pthread_mutex_destroy
+PUBLIC e7350 0 pthread_mutex_init
+PUBLIC e7380 0 pthread_mutex_lock
+PUBLIC e73b0 0 pthread_mutex_unlock
+PUBLIC e73e0 0 pthread_self
+PUBLIC e7410 0 pthread_setcancelstate
+PUBLIC e7440 0 pthread_setcanceltype
+PUBLIC e7470 0 pthread_exit
+PUBLIC e7610 0 __register_atfork
+PUBLIC e7960 0 __libc_pthread_init
+PUBLIC e79c0 0 hstrerror
+PUBLIC e7a30 0 herror
+PUBLIC e7b00 0 inet_aton
+PUBLIC e7c50 0 inet_addr
+PUBLIC e7cf0 0 inet_ntop
+PUBLIC e80c0 0 inet_pton
+PUBLIC e83b0 0 inet_nsap_ntoa
+PUBLIC e8470 0 inet_nsap_addr
+PUBLIC e8600 0 __res_iclose
+PUBLIC e86d0 0 __res_nclose
+PUBLIC e86e0 0 __res_randomid
+PUBLIC e95a0 0 __res_ninit
+PUBLIC ea2f0 0 __res_init
+PUBLIC ea3b0 0 __res_maybe_init
+PUBLIC ea540 0 __res_state
+PUBLIC ea550 0 __gai_sigqueue
+PUBLIC ea5e0 0 __nss_disable_nscd
+PUBLIC ea680 0 __nss_lookup_function
+PUBLIC eaff0 0 __nss_configure_lookup
+PUBLIC eb100 0 __nss_next2
+PUBLIC eb210 0 __nss_database_lookup
+PUBLIC ebce0 0 __nss_group_lookup2
+PUBLIC ebd90 0 __nss_passwd_lookup2
+PUBLIC ec040 0 __nss_services_lookup2
+PUBLIC ec0e0 0 __nss_hosts_lookup2
+PUBLIC ec570 0 __nss_hostname_digits_dots
+PUBLIC ecc50 0 __cyg_profile_func_enter
+PUBLIC ecef0 0 __stpcpy_chk
+PUBLIC ed050 0 __strcat_chk
+PUBLIC ed0b0 0 __strcpy_chk
+PUBLIC ed210 0 __strncat_chk
+PUBLIC ed340 0 __strncpy_chk
+PUBLIC ed430 0 __stpncpy_chk
+PUBLIC ed520 0 __sprintf_chk
+PUBLIC ed5c0 0 __vsprintf_chk
+PUBLIC ed6b0 0 __snprintf_chk
+PUBLIC ed740 0 __vsnprintf_chk
+PUBLIC ed860 0 __printf_chk
+PUBLIC eda50 0 __fprintf_chk
+PUBLIC edc30 0 __vprintf_chk
+PUBLIC eddb0 0 __vfprintf_chk
+PUBLIC edf20 0 __gets_chk
+PUBLIC ee150 0 __chk_fail
+PUBLIC ee370 0 __fgets_chk
+PUBLIC ee560 0 __fgets_unlocked_chk
+PUBLIC ee620 0 __read_chk
+PUBLIC ee660 0 __pread_chk
+PUBLIC ee680 0 __pread64_chk
+PUBLIC ee6a0 0 __recv_chk
+PUBLIC ee6c0 0 __recvfrom_chk
+PUBLIC ee6f0 0 __readlink_chk
+PUBLIC ee730 0 __readlinkat_chk
+PUBLIC ee750 0 __getwd_chk
+PUBLIC ee780 0 __getcwd_chk
+PUBLIC ee7a0 0 __realpath_chk
+PUBLIC ee7c0 0 __ptsname_r_chk
+PUBLIC ee7e0 0 __fread_chk
+PUBLIC ee9e0 0 __fread_unlocked_chk
+PUBLIC eea70 0 __confstr_chk
+PUBLIC eea90 0 __getgroups_chk
+PUBLIC eead0 0 __ttyname_r_chk
+PUBLIC eeaf0 0 __gethostname_chk
+PUBLIC eeb10 0 __getdomainname_chk
+PUBLIC eeb30 0 __asprintf_chk
+PUBLIC eebc0 0 __vasprintf_chk
+PUBLIC eed60 0 __dprintf_chk
+PUBLIC eedf0 0 __vdprintf_chk
+PUBLIC eef00 0 __obstack_vprintf_chk
+PUBLIC ef0e0 0 __obstack_printf_chk
+PUBLIC ef170 0 __longjmp_chk
+PUBLIC ef260 0 __stack_chk_fail
+PUBLIC ef270 0 __fortify_fail
+PUBLIC ef2b0 0 __getlogin_r_chk
+PUBLIC ef3c0 0 backtrace
+PUBLIC ef490 0 __backtrace_symbols
+PUBLIC ef720 0 backtrace_symbols_fd
+PUBLIC ef9f0 0 __wprintf_chk
+PUBLIC efbe0 0 __fwprintf_chk
+PUBLIC efdc0 0 __vwprintf_chk
+PUBLIC eff40 0 __vfwprintf_chk
+PUBLIC f00b0 0 __fgetws_chk
+PUBLIC f02a0 0 __fgetws_unlocked_chk
+PUBLIC f0360 0 __wctomb_chk
+PUBLIC f03a0 0 __wcscpy_chk
+PUBLIC f03e0 0 __wmemcpy_chk
+PUBLIC f0400 0 __wmemmove_chk
+PUBLIC f0420 0 __wmempcpy_chk
+PUBLIC f0440 0 __wcpcpy_chk
+PUBLIC f0480 0 __wcsncpy_chk
+PUBLIC f04a0 0 __wcscat_chk
+PUBLIC f0500 0 __wcsncat_chk
+PUBLIC f0620 0 __wmemset_chk
+PUBLIC f0640 0 __wcpncpy_chk
+PUBLIC f0660 0 __swprintf_chk
+PUBLIC f06f0 0 __vswprintf_chk
+PUBLIC f0810 0 __wcrtomb_chk
+PUBLIC f0840 0 __mbsnrtowcs_chk
+PUBLIC f0860 0 __wcsnrtombs_chk
+PUBLIC f0880 0 __mbsrtowcs_chk
+PUBLIC f08a0 0 __wcsrtombs_chk
+PUBLIC f08c0 0 __mbstowcs_chk
+PUBLIC f08f0 0 __wcstombs_chk
+PUBLIC f0b80 0 htonl
+PUBLIC f0b90 0 htons
+PUBLIC f0ba0 0 inet_lnaof
+PUBLIC f0bd0 0 inet_makeaddr
+PUBLIC f0c20 0 inet_netof
+PUBLIC f0c50 0 inet_ntoa
+PUBLIC f0cf0 0 inet_network
+PUBLIC f0ee0 0 __h_errno_location
+PUBLIC f0f00 0 gethostbyaddr
+PUBLIC f10d0 0 gethostbyaddr_r
+PUBLIC f1470 0 gethostbyname
+PUBLIC f1670 0 gethostbyname2
+PUBLIC f1880 0 gethostbyname2_r
+PUBLIC f1bf0 0 gethostbyname_r
+PUBLIC f1f50 0 gethostent
+PUBLIC f2020 0 gethostent_r
+PUBLIC f2110 0 endhostent
+PUBLIC f21c0 0 sethostent
+PUBLIC f2320 0 getnetbyaddr
+PUBLIC f24f0 0 getnetbyaddr_r
+PUBLIC f2760 0 getnetbyname
+PUBLIC f2910 0 getnetent
+PUBLIC f29e0 0 getnetent_r
+PUBLIC f2ad0 0 endnetent
+PUBLIC f2b80 0 setnetent
+PUBLIC f2ce0 0 getnetbyname_r
+PUBLIC f2f40 0 getprotobynumber
+PUBLIC f30a0 0 getprotobynumber_r
+PUBLIC f3290 0 getprotoent
+PUBLIC f3350 0 getprotoent_r
+PUBLIC f3430 0 endprotoent
+PUBLIC f34d0 0 setprotoent
+PUBLIC f3630 0 getprotobyname
+PUBLIC f3790 0 getprotobyname_r
+PUBLIC f3980 0 getservbyname
+PUBLIC f3b00 0 getservbyname_r
+PUBLIC f3d70 0 getservbyport
+PUBLIC f3ef0 0 getservbyport_r
+PUBLIC f4160 0 getservent
+PUBLIC f4220 0 getservent_r
+PUBLIC f4300 0 endservent
+PUBLIC f43a0 0 setservent
+PUBLIC f4500 0 getrpcent
+PUBLIC f45c0 0 getrpcbyname
+PUBLIC f4720 0 getrpcbynumber
+PUBLIC f4880 0 getrpcent_r
+PUBLIC f4960 0 endrpcent
+PUBLIC f4a00 0 setrpcent
+PUBLIC f4b60 0 getrpcbyname_r
+PUBLIC f4d50 0 getrpcbynumber_r
+PUBLIC f4f40 0 ether_aton
+PUBLIC f4f50 0 ether_aton_r
+PUBLIC f50c0 0 ether_hostton
+PUBLIC f5240 0 ether_line
+PUBLIC f54b0 0 ether_ntoa
+PUBLIC f54c0 0 ether_ntoa_r
+PUBLIC f5510 0 ether_ntohost
+PUBLIC f58a0 0 __internal_getnetgrent_r
+PUBLIC f5a90 0 getnetgrent_r
+PUBLIC f5b80 0 innetgr
+PUBLIC f5f00 0 __internal_endnetgrent
+PUBLIC f5f20 0 endnetgrent
+PUBLIC f5f90 0 __internal_setnetgrent
+PUBLIC f5fe0 0 setnetgrent
+PUBLIC f6130 0 getnetgrent
+PUBLIC f6510 0 getnameinfo
+PUBLIC f6fb0 0 if_indextoname
+PUBLIC f7040 0 if_nametoindex
+PUBLIC f70e0 0 if_freenameindex
+PUBLIC f7120 0 if_nameindex
+PUBLIC f7440 0 freeifaddrs
+PUBLIC f86d0 0 getifaddrs
+PUBLIC f86f0 0 getipv4sourcefilter
+PUBLIC f8850 0 setipv4sourcefilter
+PUBLIC f8a30 0 getsourcefilter
+PUBLIC f8bc0 0 setsourcefilter
+PUBLIC f9260 0 __ivaliduser
+PUBLIC f9620 0 iruserok_af
+PUBLIC f96b0 0 iruserok
+PUBLIC f96d0 0 ruserok_af
+PUBLIC f9790 0 ruserok
+PUBLIC f97a0 0 rresvport_af
+PUBLIC f9960 0 rresvport
+PUBLIC f9970 0 rcmd_af
+PUBLIC fa3c0 0 rcmd
+PUBLIC fa3e0 0 rexec_af
+PUBLIC fa960 0 rexec
+PUBLIC faba0 0 ruserpass
+PUBLIC fb020 0 getaliasent_r
+PUBLIC fb100 0 endaliasent
+PUBLIC fb1a0 0 setaliasent
+PUBLIC fb300 0 getaliasent
+PUBLIC fb3c0 0 getaliasbyname
+PUBLIC fb520 0 getaliasbyname_r
+PUBLIC fb710 0 inet6_option_space
+PUBLIC fb720 0 inet6_option_init
+PUBLIC fb750 0 inet6_option_next
+PUBLIC fb800 0 inet6_option_find
+PUBLIC fba10 0 inet6_option_alloc
+PUBLIC fba20 0 inet6_option_append
+PUBLIC fba70 0 inet6_opt_init
+PUBLIC fbab0 0 inet6_opt_next
+PUBLIC fbb40 0 inet6_opt_find
+PUBLIC fbbd0 0 inet6_opt_get_val
+PUBLIC fbc10 0 inet6_opt_set_val
+PUBLIC fbc50 0 inet6_opt_finish
+PUBLIC fbcd0 0 inet6_opt_append
+PUBLIC fbde0 0 inet6_rth_space
+PUBLIC fbe00 0 inet6_rth_segments
+PUBLIC fbe20 0 inet6_rth_getaddr
+PUBLIC fbe50 0 inet6_rth_reverse
+PUBLIC fbf30 0 inet6_rth_add
+PUBLIC fbf80 0 inet6_rth_init
+PUBLIC fcc50 0 authnone_create
+PUBLIC fccf0 0 authunix_create_default
+PUBLIC fcf50 0 authunix_create
+PUBLIC fd3a0 0 xdr_authunix_parms
+PUBLIC fd440 0 bindresvport
+PUBLIC fd840 0 clnt_create
+PUBLIC fdaf0 0 clnt_sperrno
+PUBLIC fdb60 0 clnt_spcreateerror
+PUBLIC fdc60 0 clnt_pcreateerror
+PUBLIC fdc80 0 clnt_perrno
+PUBLIC fdca0 0 clnt_sperror
+PUBLIC fdf40 0 clnt_perror
+PUBLIC fe010 0 clntraw_create
+PUBLIC fe3d0 0 callrpc
+PUBLIC fe8e0 0 clnttcp_create
+PUBLIC ff050 0 clntudp_bufcreate
+PUBLIC ff080 0 clntudp_create
+PUBLIC ff280 0 __libc_clntudp_bufcreate
+PUBLIC ffde0 0 _rpc_dtablesize
+PUBLIC ffe00 0 get_myaddress
+PUBLIC ffea0 0 getrpcport
+PUBLIC 100050 0 pmap_unset
+PUBLIC 100150 0 pmap_set
+PUBLIC 1002a0 0 pmap_getmaps
+PUBLIC 100430 0 __libc_rpc_getport
+PUBLIC 100620 0 pmap_getport
+PUBLIC 100640 0 xdr_pmap
+PUBLIC 1006b0 0 xdr_pmaplist
+PUBLIC 100780 0 clnt_broadcast
+PUBLIC 100de0 0 xdr_rmtcall_args
+PUBLIC 100ef0 0 xdr_rmtcallres
+PUBLIC 100f70 0 pmap_rmtcall
+PUBLIC 1010c0 0 _seterr_reply
+PUBLIC 1011e0 0 xdr_callhdr
+PUBLIC 101280 0 xdr_rejected_reply
+PUBLIC 101310 0 xdr_accepted_reply
+PUBLIC 1013b0 0 xdr_replymsg
+PUBLIC 101420 0 xdr_des_block
+PUBLIC 101430 0 xdr_opaque_auth
+PUBLIC 101490 0 xdr_callmsg
+PUBLIC 1018e0 0 __rpc_thread_svc_max_pollfd
+PUBLIC 101910 0 __rpc_thread_svc_pollfd
+PUBLIC 101940 0 __rpc_thread_createerr
+PUBLIC 101970 0 __rpc_thread_svc_fdset
+PUBLIC 101990 0 svc_sendreply
+PUBLIC 1019e0 0 svcerr_noproc
+PUBLIC 101a30 0 svcerr_decode
+PUBLIC 101a80 0 svcerr_systemerr
+PUBLIC 101ad0 0 svcerr_auth
+PUBLIC 101b00 0 svcerr_weakauth
+PUBLIC 101b10 0 svcerr_noprog
+PUBLIC 101b60 0 svcerr_progvers
+PUBLIC 101bb0 0 svc_getreq
+PUBLIC 101be0 0 svc_getreq_common
+PUBLIC 101e00 0 svc_getreqset
+PUBLIC 101ea0 0 svc_unregister
+PUBLIC 101f90 0 svc_register
+PUBLIC 102080 0 xprt_unregister
+PUBLIC 102170 0 svc_getreq_poll
+PUBLIC 102210 0 xprt_register
+PUBLIC 102360 0 _authenticate
+PUBLIC 1026b0 0 svcraw_create
+PUBLIC 102840 0 svc_run
+PUBLIC 102980 0 svc_exit
+PUBLIC 1029b0 0 registerrpc
+PUBLIC 102ef0 0 svcfd_create
+PUBLIC 103180 0 svctcp_create
+PUBLIC 103490 0 svcudp_create
+PUBLIC 1034f0 0 svcudp_enablecache
+PUBLIC 103620 0 svcudp_bufcreate
+PUBLIC 103f20 0 xdr_free
+PUBLIC 103f40 0 xdr_void
+PUBLIC 103f50 0 xdr_int
+PUBLIC 103fc0 0 xdr_u_int
+PUBLIC 104030 0 xdr_long
+PUBLIC 104070 0 xdr_u_long
+PUBLIC 1040f0 0 xdr_hyper
+PUBLIC 1041c0 0 xdr_u_hyper
+PUBLIC 104290 0 xdr_longlong_t
+PUBLIC 1042a0 0 xdr_u_longlong_t
+PUBLIC 1042b0 0 xdr_short
+PUBLIC 104320 0 xdr_u_short
+PUBLIC 104390 0 xdr_char
+PUBLIC 1043d0 0 xdr_u_char
+PUBLIC 104410 0 xdr_bool
+PUBLIC 104480 0 xdr_enum
+PUBLIC 1044f0 0 xdr_opaque
+PUBLIC 1045b0 0 xdr_netobj
+PUBLIC 1045d0 0 xdr_union
+PUBLIC 1046a0 0 xdr_wrapstring
+PUBLIC 1046c0 0 xdr_string
+PUBLIC 104800 0 xdr_bytes
+PUBLIC 104950 0 xdr_vector
+PUBLIC 1049d0 0 xdr_array
+PUBLIC 104b50 0 xdr_float
+PUBLIC 104bc0 0 xdr_double
+PUBLIC 104c80 0 xdrmem_create
+PUBLIC 104fd0 0 xdrrec_endofrecord
+PUBLIC 105220 0 xdrrec_eof
+PUBLIC 105280 0 xdrrec_skiprecord
+PUBLIC 105510 0 xdrrec_create
+PUBLIC 105810 0 xdr_pointer
+PUBLIC 1058a0 0 xdr_reference
+PUBLIC 105990 0 xdrstdio_create
+PUBLIC 105bb0 0 getsecretkey
+PUBLIC 105cc0 0 getpublickey
+PUBLIC 105e20 0 xdr_sizeof
+PUBLIC 1063b0 0 authdes_pk_create
+PUBLIC 106610 0 authdes_create
+PUBLIC 1066f0 0 xdr_authdes_verf
+PUBLIC 106740 0 xdr_authdes_cred
+PUBLIC 106c70 0 key_get_conv
+PUBLIC 106cc0 0 key_setnet
+PUBLIC 106d10 0 key_decryptsession_pk
+PUBLIC 106d80 0 key_encryptsession_pk
+PUBLIC 106df0 0 key_decryptsession
+PUBLIC 106e50 0 key_encryptsession
+PUBLIC 106eb0 0 key_setsecret
+PUBLIC 106f00 0 key_gendes
+PUBLIC 106fe0 0 key_secretkey_is_set
+PUBLIC 107070 0 xdr_getcredres
+PUBLIC 1070d0 0 xdr_key_netstarg
+PUBLIC 107130 0 xdr_key_netstres
+PUBLIC 107190 0 xdr_unixcred
+PUBLIC 107200 0 xdr_cryptkeyres
+PUBLIC 107260 0 xdr_cryptkeyarg
+PUBLIC 1072b0 0 xdr_cryptkeyarg2
+PUBLIC 107310 0 xdr_netnamestr
+PUBLIC 107330 0 xdr_keybuf
+PUBLIC 107350 0 xdr_keystatus
+PUBLIC 107370 0 netname2host
+PUBLIC 107410 0 netname2user
+PUBLIC 107520 0 host2netname
+PUBLIC 107740 0 user2netname
+PUBLIC 107850 0 getnetname
+PUBLIC 1079f0 0 rtime
+PUBLIC 107c20 0 authdes_getucred
+PUBLIC 108640 0 clntunix_create
+PUBLIC 109370 0 svcunixfd_create
+PUBLIC 1097c0 0 svcunix_create
+PUBLIC 109c10 0 xdr_int64_t
+PUBLIC 109cd0 0 xdr_uint64_t
+PUBLIC 109d90 0 xdr_int32_t
+PUBLIC 109dd0 0 xdr_uint32_t
+PUBLIC 109e10 0 xdr_int16_t
+PUBLIC 109e80 0 xdr_uint16_t
+PUBLIC 109ef0 0 xdr_int8_t
+PUBLIC 109f60 0 xdr_uint8_t
+PUBLIC 10a0c0 0 passwd2des
+PUBLIC 10a110 0 xdecrypt
+PUBLIC 10a210 0 xencrypt
+PUBLIC 10a3a0 0 ecb_crypt
+PUBLIC 10a3c0 0 cbc_crypt
+PUBLIC 10afb0 0 des_setparity
+PUBLIC 10e3f0 0 isastream
+PUBLIC 10e410 0 getmsg
+PUBLIC 10e430 0 getpmsg
+PUBLIC 10e460 0 putmsg
+PUBLIC 10e480 0 putpmsg
+PUBLIC 10e4b0 0 fattach
+PUBLIC 10e4d0 0 fdetach
+PUBLIC 10e5a0 0 posix_openpt
+PUBLIC 10e6b0 0 getpt
+PUBLIC 10e6e0 0 grantpt
+PUBLIC 10ebb0 0 unlockpt
+PUBLIC 10ef10 0 ptsname_r
+PUBLIC 10ef30 0 ptsname
+PUBLIC 10ef60 0 getutent
+PUBLIC 10f160 0 setutent
+PUBLIC 10f1d0 0 getutent_r
+PUBLIC 10f250 0 pututline
+PUBLIC 10f2c0 0 endutent
+PUBLIC 10f430 0 getutid
+PUBLIC 10f490 0 getutline
+PUBLIC 10f4f0 0 getutid_r
+PUBLIC 10f5f0 0 getutline_r
+PUBLIC 110740 0 utmpname
+PUBLIC 110880 0 updwtmp
+PUBLIC 110980 0 setutxent
+PUBLIC 110990 0 getutxent
+PUBLIC 1109a0 0 endutxent
+PUBLIC 1109b0 0 getutxid
+PUBLIC 1109c0 0 getutxline
+PUBLIC 1109d0 0 pututxline
+PUBLIC 1109e0 0 utmpxname
+PUBLIC 1109f0 0 updwtmpx
+PUBLIC 110a00 0 getutmp
+PUBLIC 110a70 0 dl_iterate_phdr
+PUBLIC 110cc0 0 _dl_addr
+PUBLIC 111000 0 _dl_mcount_wrapper_check
+PUBLIC 111040 0 _dl_mcount_wrapper
+PUBLIC 111180 0 __libc_dlclose
+PUBLIC 1111b0 0 __libc_dlsym
+PUBLIC 111210 0 __libc_dlopen_mode
+PUBLIC 1117a0 0 _dl_sym
+PUBLIC 1117b0 0 _dl_vsym
+PUBLIC 1118a0 0 __libc_dl_error_tsd
+PUBLIC 111990 0 realpath
+PUBLIC 1119c0 0 sched_getaffinity
+PUBLIC 1119d0 0 sched_setaffinity
+PUBLIC 1119e0 0 regexec
+PUBLIC 111dd0 0 nftw64
+PUBLIC 111df0 0 pthread_cond_broadcast
+PUBLIC 111e20 0 pthread_cond_destroy
+PUBLIC 111e50 0 pthread_cond_init
+PUBLIC 111e80 0 pthread_cond_signal
+PUBLIC 111eb0 0 pthread_cond_wait
+PUBLIC 111ee0 0 pthread_cond_timedwait
+PUBLIC 111f50 0 __nss_next
+PUBLIC 111f60 0 __nss_group_lookup
+PUBLIC 111f70 0 __nss_passwd_lookup
+PUBLIC 111fb0 0 __nss_hosts_lookup
+PUBLIC 136380 0 __libc_freeres
+PUBLIC 136990 0 __libc_thread_freeres
+STACK CFI INIT 1eaf0 90 .cfa: $rsp 16 + .ra: .cfa -8 + ^
+STACK CFI 1eaf6 .cfa: $rsp 24 +
+STACK CFI INIT 1eb80 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1eb90 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1eb94 .cfa: $rsp 16 +
+STACK CFI INIT 1eba0 210 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1ebac $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 1ebba .cfa: $rsp 80 +
+STACK CFI 1ebc7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 1edb0 1c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1edbd $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 1edd3 .cfa: $rsp 192 +
+STACK CFI 1edf1 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 1ef80 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1ef90 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1efa0 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1efc0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1efc4 .cfa: $rsp 16 +
+STACK CFI INIT 1efd0 c3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1efe3 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 1efea .cfa: $rsp 176 +
+STACK CFI INIT 1f0a0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f0a4 .cfa: $rsp 16 +
+STACK CFI INIT 1f0e0 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f0fa $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI INIT 1f160 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f164 .cfa: $rsp 64 +
+STACK CFI INIT 1f1c0 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f1c4 .cfa: $rsp 32 +
+STACK CFI INIT 1f1f0 1f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f1f3 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 1f3f0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1f410 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1f430 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1f4e0 218 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f4e1 .cfa: $rsp 16 +
+STACK CFI 1f4e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1f4e9 $r15: .cfa -24 + ^
+STACK CFI 1f4f2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 1f4f7 $rbx: .cfa -56 + ^
+STACK CFI INIT 1f700 1a9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f70d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1f71a $r12: .cfa -40 + ^ $r14: .cfa -24 + ^
+STACK CFI 1f728 .cfa: $rsp 80 +
+STACK CFI 1f734 $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 1f8b0 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f8b4 .cfa: $rsp 16 +
+STACK CFI INIT 1f8e0 812 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f8e1 .cfa: $rsp 16 +
+STACK CFI 1f8e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1f908 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 20100 212 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20102 .cfa: $rsp 16 +
+STACK CFI 2010a $r15: .cfa -16 + ^
+STACK CFI 2010c .cfa: $rsp 24 +
+STACK CFI 2010f $r14: .cfa -24 + ^
+STACK CFI 20111 .cfa: $rsp 32 +
+STACK CFI 20113 .cfa: $rsp 40 +
+STACK CFI 20114 .cfa: $rsp 48 +
+STACK CFI 20117 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 20118 .cfa: $rsp 56 +
+STACK CFI 2011b $rbx: .cfa -56 + ^
+STACK CFI 2011f .cfa: $rsp 112 +
+STACK CFI INIT 20320 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20322 .cfa: $rsp 16 +
+STACK CFI 20324 .cfa: $rsp 24 +
+STACK CFI 20327 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 20329 .cfa: $rsp 32 +
+STACK CFI 2032d $r13: .cfa -32 + ^
+STACK CFI 2032f .cfa: $rsp 40 +
+STACK CFI 20330 .cfa: $rsp 48 +
+STACK CFI 20331 .cfa: $rsp 56 +
+STACK CFI 20335 .cfa: $rsp 64 +
+STACK CFI 20339 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 213c2 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 213d0 .cfa: $rsp 0 +
+STACK CFI 213d4 .cfa: $rsp 128 +
+STACK CFI 213dc .cfa: $rsp -128 +
+STACK CFI INIT 213e1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 213ef .cfa: $rsp 0 +
+STACK CFI 213f3 .cfa: $rsp 128 +
+STACK CFI 213fb .cfa: $rsp -128 +
+STACK CFI INIT 21400 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2140e .cfa: $rsp 0 +
+STACK CFI 21412 .cfa: $rsp 128 +
+STACK CFI 2141a .cfa: $rsp -128 +
+STACK CFI INIT 2141f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2142d .cfa: $rsp 0 +
+STACK CFI 21431 .cfa: $rsp 128 +
+STACK CFI 21439 .cfa: $rsp -128 +
+STACK CFI INIT 2143e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2144c .cfa: $rsp 0 +
+STACK CFI 21450 .cfa: $rsp 128 +
+STACK CFI 21458 .cfa: $rsp -128 +
+STACK CFI INIT 2145d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2146b .cfa: $rsp 0 +
+STACK CFI 2146f .cfa: $rsp 128 +
+STACK CFI 21477 .cfa: $rsp -128 +
+STACK CFI INIT 2147c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2148a .cfa: $rsp 0 +
+STACK CFI 2148e .cfa: $rsp 128 +
+STACK CFI 21496 .cfa: $rsp -128 +
+STACK CFI INIT 203d0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 203e0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 135bd0 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135bd1 .cfa: $rsp 16 +
+STACK CFI 135bd2 .cfa: $rsp 24 +
+STACK CFI 135bd5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 135bd9 .cfa: $rsp 32 +
+STACK CFI INIT 135c30 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135c34 .cfa: $rsp 16 +
+STACK CFI INIT 135c90 d9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135c92 .cfa: $rsp 16 +
+STACK CFI 135c95 $r13: .cfa -16 + ^
+STACK CFI 135c97 .cfa: $rsp 24 +
+STACK CFI 135c98 .cfa: $rsp 32 +
+STACK CFI 135c99 .cfa: $rsp 40 +
+STACK CFI 135c9d .cfa: $rsp 48 +
+STACK CFI 135ca8 $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 203f0 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 203fd $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 20401 .cfa: $rsp 32 +
+STACK CFI INIT 20440 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 20450 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20454 .cfa: $rsp 32 +
+STACK CFI INIT 20490 c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20491 .cfa: $rsp 16 +
+STACK CFI 20494 $rbp: .cfa -16 + ^
+STACK CFI 20495 .cfa: $rsp 24 +
+STACK CFI 20498 $rbx: .cfa -24 + ^
+STACK CFI 2049c .cfa: $rsp 48 +
+STACK CFI INIT 20560 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2056e .cfa: $rsp 32 +
+STACK CFI 20575 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 20620 a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20622 .cfa: $rsp 16 +
+STACK CFI 20626 .cfa: $rsp 24 +
+STACK CFI 20627 .cfa: $rsp 32 +
+STACK CFI 2062a $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI 2062b .cfa: $rsp 40 +
+STACK CFI 2062e $rbx: .cfa -40 + ^
+STACK CFI 20637 .cfa: $rsp 48 +
+STACK CFI INIT 206d0 a70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 206d1 .cfa: $rsp 16 +
+STACK CFI 206d7 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 20743 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 21140 282 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2114d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 21168 .cfa: $rsp 80 +
+STACK CFI 21172 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 2220d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2221b .cfa: $rsp 0 +
+STACK CFI 2221f .cfa: $rsp 128 +
+STACK CFI 22227 .cfa: $rsp -128 +
+STACK CFI INIT 2222c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2223a .cfa: $rsp 0 +
+STACK CFI 2223e .cfa: $rsp 128 +
+STACK CFI 22246 .cfa: $rsp -128 +
+STACK CFI INIT 135d70 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 214a0 ec .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 214a2 .cfa: $rsp 16 +
+STACK CFI 214a5 $r14: .cfa -16 + ^
+STACK CFI 214a7 .cfa: $rsp 24 +
+STACK CFI 214aa $r13: .cfa -24 + ^
+STACK CFI 214ac .cfa: $rsp 32 +
+STACK CFI 214ad .cfa: $rsp 40 +
+STACK CFI 214b4 $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI 214b5 .cfa: $rsp 48 +
+STACK CFI 214b7 $rbx: .cfa -48 + ^
+STACK CFI INIT 21590 359 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 21591 .cfa: $rsp 16 +
+STACK CFI 21597 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 215a3 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 218f0 b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 218f2 .cfa: $rsp 16 +
+STACK CFI 218f5 $r13: .cfa -16 + ^
+STACK CFI 218f7 .cfa: $rsp 24 +
+STACK CFI 218fa $r12: .cfa -24 + ^
+STACK CFI 218fb .cfa: $rsp 32 +
+STACK CFI 218fc .cfa: $rsp 40 +
+STACK CFI 218ff $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 21903 .cfa: $rsp 48 +
+STACK CFI INIT 219b0 3c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 219b1 .cfa: $rsp 16 +
+STACK CFI 219bb $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 219f8 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 21d80 48d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 21d81 .cfa: $rsp 16 +
+STACK CFI 21d84 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 21db4 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 22250 da .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 22252 .cfa: $rsp 16 +
+STACK CFI 22259 $r14: .cfa -16 + ^
+STACK CFI 2225b .cfa: $rsp 24 +
+STACK CFI 2225e $r13: .cfa -24 + ^
+STACK CFI 22260 .cfa: $rsp 32 +
+STACK CFI 22263 $r12: .cfa -32 + ^
+STACK CFI 22264 .cfa: $rsp 40 +
+STACK CFI 22267 $rbp: .cfa -40 + ^
+STACK CFI 22268 .cfa: $rsp 48 +
+STACK CFI 2226a $rbx: .cfa -48 + ^
+STACK CFI INIT 22330 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 22340 8f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 22342 .cfa: $rsp 16 +
+STACK CFI 22348 $r15: .cfa -16 + ^
+STACK CFI 22351 .cfa: $rsp 24 +
+STACK CFI 22357 .cfa: $rsp 32 +
+STACK CFI 22359 .cfa: $rsp 40 +
+STACK CFI 2235c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 2235d .cfa: $rsp 48 +
+STACK CFI 2235e .cfa: $rsp 56 +
+STACK CFI 22365 .cfa: $rsp 240 +
+STACK CFI 22388 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 22c40 5ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 22c42 .cfa: $rsp 16 +
+STACK CFI 22c49 $r15: .cfa -16 + ^
+STACK CFI 22c4e .cfa: $rsp 24 +
+STACK CFI 22c54 .cfa: $rsp 32 +
+STACK CFI 22c56 .cfa: $rsp 40 +
+STACK CFI 22c57 .cfa: $rsp 48 +
+STACK CFI 22c5a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI 22c5b .cfa: $rsp 56 +
+STACK CFI 22c62 .cfa: $rsp 192 +
+STACK CFI 22c7c $rbx: .cfa -56 + ^
+STACK CFI INIT 23210 dfa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 23212 .cfa: $rsp 16 +
+STACK CFI 23218 .cfa: $rsp 24 +
+STACK CFI 2321b $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 23224 .cfa: $rsp 32 +
+STACK CFI 23226 .cfa: $rsp 40 +
+STACK CFI 23227 .cfa: $rsp 48 +
+STACK CFI 2322a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 2322b .cfa: $rsp 56 +
+STACK CFI 23232 .cfa: $rsp 208 +
+STACK CFI 23250 $rbx: .cfa -56 + ^
+STACK CFI INIT 24010 be8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 24012 .cfa: $rsp 16 +
+STACK CFI 24018 $r15: .cfa -16 + ^
+STACK CFI 24021 .cfa: $rsp 24 +
+STACK CFI 24027 .cfa: $rsp 32 +
+STACK CFI 24029 .cfa: $rsp 40 +
+STACK CFI 2402c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 2402d .cfa: $rsp 48 +
+STACK CFI 2402e .cfa: $rsp 56 +
+STACK CFI 24035 .cfa: $rsp 240 +
+STACK CFI 24038 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 24c00 89e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 24c02 .cfa: $rsp 16 +
+STACK CFI 24c08 $r15: .cfa -16 + ^
+STACK CFI 24c11 .cfa: $rsp 24 +
+STACK CFI 24c17 .cfa: $rsp 32 +
+STACK CFI 24c19 .cfa: $rsp 40 +
+STACK CFI 24c1c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 24c1d .cfa: $rsp 48 +
+STACK CFI 24c1e .cfa: $rsp 56 +
+STACK CFI 24c25 .cfa: $rsp 240 +
+STACK CFI 24c48 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 254a0 388 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 254a2 .cfa: $rsp 16 +
+STACK CFI 254a8 $r15: .cfa -16 + ^
+STACK CFI 254ae .cfa: $rsp 24 +
+STACK CFI 254b0 .cfa: $rsp 32 +
+STACK CFI 254b2 .cfa: $rsp 40 +
+STACK CFI 254b3 .cfa: $rsp 48 +
+STACK CFI 254b6 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI 254b7 .cfa: $rsp 56 +
+STACK CFI 254bb .cfa: $rsp 176 +
+STACK CFI 254e4 $rbx: .cfa -56 + ^
+STACK CFI INIT 25830 4aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 25832 .cfa: $rsp 16 +
+STACK CFI 25839 $r15: .cfa -16 + ^
+STACK CFI 2583b .cfa: $rsp 24 +
+STACK CFI 2583e $r14: .cfa -24 + ^
+STACK CFI 25844 .cfa: $rsp 32 +
+STACK CFI 25846 .cfa: $rsp 40 +
+STACK CFI 25847 .cfa: $rsp 48 +
+STACK CFI 25848 .cfa: $rsp 56 +
+STACK CFI 2584c .cfa: $rsp 176 +
+STACK CFI 25865 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 25ce0 900 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 25ce2 .cfa: $rsp 16 +
+STACK CFI 25ce8 $r15: .cfa -16 + ^
+STACK CFI 25cf1 .cfa: $rsp 24 +
+STACK CFI 25cf7 .cfa: $rsp 32 +
+STACK CFI 25cf9 .cfa: $rsp 40 +
+STACK CFI 25cfc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 25cfd .cfa: $rsp 48 +
+STACK CFI 25cfe .cfa: $rsp 56 +
+STACK CFI 25d05 .cfa: $rsp 240 +
+STACK CFI 25d28 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 265e0 5c9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 265e2 .cfa: $rsp 16 +
+STACK CFI 265e9 $r15: .cfa -16 + ^
+STACK CFI 265ee .cfa: $rsp 24 +
+STACK CFI 265f4 .cfa: $rsp 32 +
+STACK CFI 265f6 .cfa: $rsp 40 +
+STACK CFI 265f7 .cfa: $rsp 48 +
+STACK CFI 265fa $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI 265fb .cfa: $rsp 56 +
+STACK CFI 26602 .cfa: $rsp 192 +
+STACK CFI 2661c $rbx: .cfa -56 + ^
+STACK CFI INIT 26bb0 4bb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 26bb2 .cfa: $rsp 16 +
+STACK CFI 26bb8 $r15: .cfa -16 + ^
+STACK CFI 26bba .cfa: $rsp 24 +
+STACK CFI 26bbd $r14: .cfa -24 + ^
+STACK CFI 26bc3 .cfa: $rsp 32 +
+STACK CFI 26bc5 .cfa: $rsp 40 +
+STACK CFI 26bc6 .cfa: $rsp 48 +
+STACK CFI 26bc7 .cfa: $rsp 56 +
+STACK CFI 26bcb .cfa: $rsp 176 +
+STACK CFI 26bf1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 27070 40f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 27072 .cfa: $rsp 16 +
+STACK CFI 27079 $r15: .cfa -16 + ^
+STACK CFI 2707b .cfa: $rsp 24 +
+STACK CFI 2707e $r14: .cfa -24 + ^
+STACK CFI 27080 .cfa: $rsp 32 +
+STACK CFI 27082 .cfa: $rsp 40 +
+STACK CFI 27083 .cfa: $rsp 48 +
+STACK CFI 27084 .cfa: $rsp 56 +
+STACK CFI 27088 .cfa: $rsp 176 +
+STACK CFI 270ab $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 27480 3f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 27482 .cfa: $rsp 16 +
+STACK CFI 27489 $r15: .cfa -16 + ^
+STACK CFI 2748b .cfa: $rsp 24 +
+STACK CFI 2748d .cfa: $rsp 32 +
+STACK CFI 2748f .cfa: $rsp 40 +
+STACK CFI 27490 .cfa: $rsp 48 +
+STACK CFI 27491 .cfa: $rsp 56 +
+STACK CFI 27494 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 27498 .cfa: $rsp 176 +
+STACK CFI INIT 28046 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 28054 .cfa: $rsp 0 +
+STACK CFI 28058 .cfa: $rsp 128 +
+STACK CFI 28060 .cfa: $rsp -128 +
+STACK CFI INIT 28065 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 28073 .cfa: $rsp 0 +
+STACK CFI 28077 .cfa: $rsp 128 +
+STACK CFI 2807f .cfa: $rsp -128 +
+STACK CFI INIT 27880 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 27881 .cfa: $rsp 16 +
+STACK CFI 27884 $rbx: .cfa -16 + ^
+STACK CFI INIT 27940 29c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2794d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 27965 .cfa: $rsp 64 +
+STACK CFI 2796f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 27be0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 27bf0 456 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 27bf2 .cfa: $rsp 16 +
+STACK CFI 27bf4 .cfa: $rsp 24 +
+STACK CFI 27bf7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 27bf9 .cfa: $rsp 32 +
+STACK CFI 27bfb .cfa: $rsp 40 +
+STACK CFI 27bfc .cfa: $rsp 48 +
+STACK CFI 27bfd .cfa: $rsp 56 +
+STACK CFI 27c04 .cfa: $rsp 240 +
+STACK CFI 27c2a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 28090 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 280a0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 135da0 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 280c0 f5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 280c2 .cfa: $rsp 16 +
+STACK CFI 280c4 .cfa: $rsp 24 +
+STACK CFI 280c6 .cfa: $rsp 32 +
+STACK CFI 280c9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 280cb .cfa: $rsp 40 +
+STACK CFI 280cc .cfa: $rsp 48 +
+STACK CFI 280cd .cfa: $rsp 56 +
+STACK CFI 280d1 .cfa: $rsp 96 +
+STACK CFI 280e7 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 281c0 7f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 281cd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 281d6 .cfa: $rsp 48 +
+STACK CFI 281e4 $r12: .cfa -16 + ^
+STACK CFI INIT 28240 106 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 28241 .cfa: $rsp 16 +
+STACK CFI 28244 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2824f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 2825a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 28265 $r15: .cfa -24 + ^
+STACK CFI INIT 28350 484 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2835d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 28378 .cfa: $rsp 128 +
+STACK CFI 2837f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 287e0 1d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 287f8 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 176 +
+STACK CFI INIT 135de0 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135de4 .cfa: $rsp 16 +
+STACK CFI INIT 135e10 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135e11 .cfa: $rsp 16 +
+STACK CFI 135e14 $rbx: .cfa -16 + ^
+STACK CFI INIT 289c0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 289e0 89 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 289e4 .cfa: $rsp 16 +
+STACK CFI 289e7 $rbx: .cfa -16 + ^
+STACK CFI INIT 28a70 1df .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 28a71 .cfa: $rsp 16 +
+STACK CFI 28a80 .cfa: $rsp 24 +
+STACK CFI 28a84 .cfa: $rsp 48 +
+STACK CFI 28a8e $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 28c50 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 28c60 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 28c80 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 28c8c $rbx: .cfa -32 + ^
+STACK CFI 28c94 $rbp: .cfa -24 + ^
+STACK CFI 28c9d .cfa: $rsp 32 +
+STACK CFI 28ca8 $r12: .cfa -16 + ^
+STACK CFI INIT 135e30 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135e32 .cfa: $rsp 16 +
+STACK CFI 135e39 $r15: .cfa -16 + ^
+STACK CFI 135e3b .cfa: $rsp 24 +
+STACK CFI 135e3d .cfa: $rsp 32 +
+STACK CFI 135e43 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 135e45 .cfa: $rsp 40 +
+STACK CFI 135e48 $r12: .cfa -40 + ^
+STACK CFI 135e49 .cfa: $rsp 48 +
+STACK CFI 135e4a .cfa: $rsp 56 +
+STACK CFI 135e4e .cfa: $rsp 80 +
+STACK CFI 135e62 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 28ce0 232 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 28ce2 .cfa: $rsp 16 +
+STACK CFI 28ceb $r15: .cfa -16 + ^
+STACK CFI 28ced .cfa: $rsp 24 +
+STACK CFI 28cf0 $r14: .cfa -24 + ^
+STACK CFI 28cf2 .cfa: $rsp 32 +
+STACK CFI 28cf4 .cfa: $rsp 40 +
+STACK CFI 28cf7 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 28cf8 .cfa: $rsp 48 +
+STACK CFI 28cfd $rbp: .cfa -48 + ^
+STACK CFI 28cfe .cfa: $rsp 56 +
+STACK CFI 28d00 $rbx: .cfa -56 + ^
+STACK CFI 28d04 .cfa: $rsp 96 +
+STACK CFI INIT 28f20 6c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 28f21 .cfa: $rsp 16 +
+STACK CFI 28f24 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 28f2b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 28f32 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 28f36 $rbx: .cfa -56 + ^
+STACK CFI INIT 295f0 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 296a0 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 29700 4de .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 29701 .cfa: $rsp 16 +
+STACK CFI 29704 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2970f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 2971a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 29737 $r15: .cfa -24 + ^
+STACK CFI INIT 29be0 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 29be1 .cfa: $rsp 16 +
+STACK CFI 29be8 $rbx: .cfa -16 + ^
+STACK CFI INIT 29c40 38c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 29c42 .cfa: $rsp 16 +
+STACK CFI 29c45 $r13: .cfa -16 + ^
+STACK CFI 29c47 .cfa: $rsp 24 +
+STACK CFI 29c48 .cfa: $rsp 32 +
+STACK CFI 29c4b $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 29c4c .cfa: $rsp 40 +
+STACK CFI 29c4e $rbx: .cfa -40 + ^
+STACK CFI 29c52 .cfa: $rsp 48 +
+STACK CFI INIT 29fd0 2ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 29fd1 .cfa: $rsp 16 +
+STACK CFI 29fd6 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 29fe1 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 29fec $r13: .cfa -40 + ^ $r15: .cfa -24 + ^
+STACK CFI 2a00b $r14: .cfa -32 + ^
+STACK CFI INIT 135f40 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 135f42 .cfa: $rsp 16 +
+STACK CFI 135f44 .cfa: $rsp 24 +
+STACK CFI 135f4b $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 135f4d .cfa: $rsp 32 +
+STACK CFI 135f51 .cfa: $rsp 40 +
+STACK CFI 135f52 .cfa: $rsp 48 +
+STACK CFI 135f54 $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 2a280 548 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2a281 .cfa: $rsp 16 +
+STACK CFI 2a284 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2a2a9 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2a7d0 1be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2a990 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2a9a0 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2aa00 6ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2aa01 .cfa: $rsp 16 +
+STACK CFI 2aa04 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2aa10 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2b0b0 192 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b0b2 .cfa: $rsp 16 +
+STACK CFI 2b0bb .cfa: $rsp 24 +
+STACK CFI 2b0c0 .cfa: $rsp 32 +
+STACK CFI 2b0c1 .cfa: $rsp 40 +
+STACK CFI 2b0c4 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI 2b0c5 .cfa: $rsp 48 +
+STACK CFI 2b0cb $rbx: .cfa -48 + ^
+STACK CFI INIT 2b250 be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b252 .cfa: $rsp 16 +
+STACK CFI 2b25a .cfa: $rsp 24 +
+STACK CFI 2b25e .cfa: $rsp 32 +
+STACK CFI 2b261 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 2b310 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b370 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b3c0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b410 f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b510 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b530 14f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b53d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 2b558 .cfa: $rsp 128 +
+STACK CFI 2b561 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2b680 15f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b68c $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 2b699 $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 2b6aa .cfa: $rsp 1152 +
+STACK CFI 2b6c0 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI INIT 2b7e0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b7e4 .cfa: $rsp 16 +
+STACK CFI INIT 2b7f0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b820 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b850 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b890 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b8d0 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b910 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b950 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b990 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2b9d0 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2ba10 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2ba50 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2ba90 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bad0 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb10 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb30 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb50 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb60 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb70 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bb80 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bbc0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bbd0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bbf0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc00 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc20 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc40 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc60 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc80 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bc90 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bcb0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bcd0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bcf0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bd00 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bd10 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bd30 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bd70 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bdb0 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2bdf0 3f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2bdfd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 2be18 .cfa: $rsp 80 +
+STACK CFI 2be1e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 2c1f0 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2c1f4 .cfa: $rsp 32 +
+STACK CFI INIT 2c210 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2c214 .cfa: $rsp 32 +
+STACK CFI INIT 2c230 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2c240 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2c250 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2da9e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2daac .cfa: $rsp 0 +
+STACK CFI 2dab0 .cfa: $rsp 128 +
+STACK CFI 2dab8 .cfa: $rsp -128 +
+STACK CFI INIT 2dabd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2dacb .cfa: $rsp 0 +
+STACK CFI 2dacf .cfa: $rsp 128 +
+STACK CFI 2dad7 .cfa: $rsp -128 +
+STACK CFI INIT 2dadc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2daea .cfa: $rsp 0 +
+STACK CFI 2daee .cfa: $rsp 128 +
+STACK CFI 2daf6 .cfa: $rsp -128 +
+STACK CFI INIT 2dafb 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2db09 .cfa: $rsp 0 +
+STACK CFI 2db0d .cfa: $rsp 128 +
+STACK CFI 2db15 .cfa: $rsp -128 +
+STACK CFI INIT 2db1a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2db28 .cfa: $rsp 0 +
+STACK CFI 2db2c .cfa: $rsp 128 +
+STACK CFI 2db34 .cfa: $rsp -128 +
+STACK CFI INIT 2db39 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2db47 .cfa: $rsp 0 +
+STACK CFI 2db4b .cfa: $rsp 128 +
+STACK CFI 2db53 .cfa: $rsp -128 +
+STACK CFI INIT 2c260 1df .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2c268 $rbp: .cfa -24 + ^
+STACK CFI 2c276 .cfa: $rsp 32 +
+STACK CFI 2c27c $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 136050 b8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136052 .cfa: $rsp 16 +
+STACK CFI 136053 .cfa: $rsp 24 +
+STACK CFI 13605a $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 13605b .cfa: $rsp 32 +
+STACK CFI 13605f $rbx: .cfa -32 + ^
+STACK CFI INIT 2c440 76 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2c441 .cfa: $rsp 16 +
+STACK CFI 2c444 $rbp: .cfa -16 + ^
+STACK CFI 2c445 .cfa: $rsp 24 +
+STACK CFI 2c448 $rbx: .cfa -24 + ^
+STACK CFI 2c450 .cfa: $rsp 32 +
+STACK CFI INIT 2c4c0 c39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2c4c1 .cfa: $rsp 16 +
+STACK CFI 2c4c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2c4fd $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2d100 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2d102 .cfa: $rsp 16 +
+STACK CFI 2d104 .cfa: $rsp 24 +
+STACK CFI 2d107 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 2d108 .cfa: $rsp 32 +
+STACK CFI 2d109 .cfa: $rsp 40 +
+STACK CFI 2d10c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 2d114 .cfa: $rsp 48 +
+STACK CFI INIT 2d180 91e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2d181 .cfa: $rsp 16 +
+STACK CFI 2d184 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2d1c6 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2db60 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2db70 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2db80 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136110 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136111 .cfa: $rsp 16 +
+STACK CFI 136112 .cfa: $rsp 24 +
+STACK CFI 136116 .cfa: $rsp 32 +
+STACK CFI 13611d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 2dba0 315 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2dba1 .cfa: $rsp 16 +
+STACK CFI 2dba4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2dbaf $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 2dbba $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 2dbdb $rbx: .cfa -56 + ^
+STACK CFI INIT 2ef65 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2ef73 .cfa: $rsp 0 +
+STACK CFI 2ef77 .cfa: $rsp 128 +
+STACK CFI 2ef7f .cfa: $rsp -128 +
+STACK CFI INIT 2ef84 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2ef92 .cfa: $rsp 0 +
+STACK CFI 2ef96 .cfa: $rsp 128 +
+STACK CFI 2ef9e .cfa: $rsp -128 +
+STACK CFI INIT 136160 c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136162 .cfa: $rsp 16 +
+STACK CFI 13616b .cfa: $rsp 24 +
+STACK CFI 13616c .cfa: $rsp 32 +
+STACK CFI 13616d .cfa: $rsp 40 +
+STACK CFI 136170 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 136174 .cfa: $rsp 48 +
+STACK CFI INIT 2dec0 10a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2dec1 .cfa: $rsp 16 +
+STACK CFI 2decd $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2ded8 $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI 2def7 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT 2f59b 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2f5a9 .cfa: $rsp 0 +
+STACK CFI 2f5ad .cfa: $rsp 128 +
+STACK CFI 2f5b5 .cfa: $rsp -128 +
+STACK CFI INIT 2f5ba 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 2f5c8 .cfa: $rsp 0 +
+STACK CFI 2f5cc .cfa: $rsp 128 +
+STACK CFI 2f5d4 .cfa: $rsp -128 +
+STACK CFI INIT 2efb0 49a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2efb1 .cfa: $rsp 16 +
+STACK CFI 2efbe $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 2efda $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2f450 136 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2f451 .cfa: $rsp 16 +
+STACK CFI 2f459 .cfa: $rsp 24 +
+STACK CFI 2f45c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 2f460 .cfa: $rsp 48 +
+STACK CFI INIT 2f590 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2f5e0 131 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2f5e1 .cfa: $rsp 16 +
+STACK CFI 2f5e2 .cfa: $rsp 24 +
+STACK CFI 2f5e5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 2f5e9 .cfa: $rsp 32 +
+STACK CFI INIT 2f720 1b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2f722 .cfa: $rsp 16 +
+STACK CFI 2f72b $r12: .cfa -16 + ^
+STACK CFI 2f72c .cfa: $rsp 24 +
+STACK CFI 2f72f $rbp: .cfa -24 + ^
+STACK CFI 2f730 .cfa: $rsp 32 +
+STACK CFI 2f733 $rbx: .cfa -32 + ^
+STACK CFI INIT 2f8e0 4bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2f8e2 .cfa: $rsp 16 +
+STACK CFI 2f8e4 .cfa: $rsp 24 +
+STACK CFI 2f8e6 .cfa: $rsp 32 +
+STACK CFI 2f8e9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 2f8eb .cfa: $rsp 40 +
+STACK CFI 2f8ec .cfa: $rsp 48 +
+STACK CFI 2f8ed .cfa: $rsp 56 +
+STACK CFI 2f8f4 .cfa: $rsp 192 +
+STACK CFI 2f910 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 2fda0 265 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2fda2 .cfa: $rsp 16 +
+STACK CFI 2fda3 .cfa: $rsp 24 +
+STACK CFI 2fda4 .cfa: $rsp 32 +
+STACK CFI 2fda8 .cfa: $rsp 64 +
+STACK CFI 2fdd2 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 30010 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30014 .cfa: $rsp 16 +
+STACK CFI 30017 $rbx: .cfa -16 + ^
+STACK CFI INIT 30070 c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30072 .cfa: $rsp 16 +
+STACK CFI 30075 $r13: .cfa -16 + ^
+STACK CFI 30077 .cfa: $rsp 24 +
+STACK CFI 3007a $r12: .cfa -24 + ^
+STACK CFI 3007b .cfa: $rsp 32 +
+STACK CFI 3007d $rbp: .cfa -32 + ^
+STACK CFI 3007e .cfa: $rsp 40 +
+STACK CFI 30080 $rbx: .cfa -40 + ^
+STACK CFI 30084 .cfa: $rsp 48 +
+STACK CFI INIT 30140 86f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30142 .cfa: $rsp 16 +
+STACK CFI 30151 .cfa: $rsp 24 +
+STACK CFI 30157 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 30159 .cfa: $rsp 32 +
+STACK CFI 30160 $r13: .cfa -32 + ^
+STACK CFI 30162 .cfa: $rsp 40 +
+STACK CFI 30163 .cfa: $rsp 48 +
+STACK CFI 30164 .cfa: $rsp 56 +
+STACK CFI 3016b .cfa: $rsp 2192 +
+STACK CFI 30178 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 309b0 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 309b2 .cfa: $rsp 16 +
+STACK CFI 309b4 .cfa: $rsp 24 +
+STACK CFI 309b7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 309b8 .cfa: $rsp 32 +
+STACK CFI 309bb $rbp: .cfa -32 + ^
+STACK CFI 309bc .cfa: $rsp 40 +
+STACK CFI 309bf $rbx: .cfa -40 + ^
+STACK CFI 309c3 .cfa: $rsp 80 +
+STACK CFI INIT 30ac0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 30b00 94 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30b01 .cfa: $rsp 16 +
+STACK CFI 30b09 .cfa: $rsp 24 +
+STACK CFI 30b0b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 30ba0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30ba5 .cfa: $rsp 16 +
+STACK CFI 30ba8 $rbx: .cfa -16 + ^
+STACK CFI INIT 30c10 235 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30c11 .cfa: $rsp 16 +
+STACK CFI 30c14 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 30c1e $r12: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 30c35 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI INIT 30e50 8b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30e51 .cfa: $rsp 16 +
+STACK CFI 30e54 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 30e60 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 31710 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31750 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31780 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 317a0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 317c0 ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 318b0 10a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 319c0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31a70 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 31a71 .cfa: $rsp 16 +
+STACK CFI 31a77 $rbx: .cfa -16 + ^
+STACK CFI 31a7b .cfa: $rsp 48 +
+STACK CFI INIT 31b00 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31b10 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31b40 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31b60 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31b80 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31ba0 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31c30 d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31d10 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31d80 82 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 31d81 .cfa: $rsp 16 +
+STACK CFI 31d86 $rbx: .cfa -16 + ^
+STACK CFI 31d8a .cfa: $rsp 48 +
+STACK CFI INIT 31e10 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31e20 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31e70 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31eb0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31ec0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31ee0 173 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32060 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32080 92 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32120 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32121 .cfa: $rsp 16 +
+STACK CFI 32123 $rbx: .cfa -16 + ^
+STACK CFI 32127 .cfa: $rsp 64 +
+STACK CFI INIT 321b0 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 321d0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 321f0 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32250 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32253 .cfa: $rsp 16 +
+STACK CFI 32256 $rbx: .cfa -16 + ^
+STACK CFI INIT 32290 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 322a0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 322b0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 322be .cfa: $rsp 32 +
+STACK CFI 322c1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 32300 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32333 $r12: .cfa 16 + ^ $r13: .cfa 24 + ^ $r14: .cfa 32 + ^ $r15: .cfa 40 + ^ $rbp: $r9 $rbx: .cfa 0 + ^ $rsp: $r8 .cfa: $rdi 0 + .ra: $rdx
+STACK CFI INIT 32350 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32380 b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32387 .cfa: $rsp 336 +
+STACK CFI INIT 32440 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 324b0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 324ef a .ra: $rip
+STACK CFI INIT 32500 1f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32507 .cfa: $rsp 216 +
+STACK CFI INIT 32700 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32720 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32750 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32780 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 327b0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 327e0 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 327e4 .cfa: $rsp 32 +
+STACK CFI INIT 32870 80 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32871 .cfa: $rsp 16 +
+STACK CFI 32877 $rbx: .cfa -16 + ^
+STACK CFI 3287b .cfa: $rsp 24 +
+STACK CFI INIT 328f0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 328f1 .cfa: $rsp 16 +
+STACK CFI 328f5 .cfa: $rsp 32 +
+STACK CFI 328fb $rbx: .cfa -16 + ^
+STACK CFI INIT 32940 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32947 .cfa: $rsp 272 +
+STACK CFI INIT 329a0 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 329a7 .cfa: $rsp 272 +
+STACK CFI INIT 32a00 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32a01 .cfa: $rsp 16 +
+STACK CFI 32a03 $rbp: .cfa -16 + ^
+STACK CFI 32a04 .cfa: $rsp 24 +
+STACK CFI 32a0b .cfa: $rsp 160 +
+STACK CFI 32a0f $rbx: .cfa -24 + ^
+STACK CFI INIT 32a80 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32a81 .cfa: $rsp 16 +
+STACK CFI 32a85 .cfa: $rsp 32 +
+STACK CFI 32a8b $rbx: .cfa -16 + ^
+STACK CFI INIT 32ad0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32ae0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32af0 eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32af1 .cfa: $rsp 16 +
+STACK CFI 32af6 $rbx: .cfa -16 + ^
+STACK CFI 32afd .cfa: $rsp 336 +
+STACK CFI INIT 32be0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32be1 .cfa: $rsp 16 +
+STACK CFI 32be4 $rbx: .cfa -16 + ^
+STACK CFI 32bea .cfa: $rsp 80 +
+STACK CFI INIT 32c40 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32c70 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32c7d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 32c89 .cfa: $rsp 192 +
+STACK CFI 32c90 $rbp: .cfa -24 + ^
+STACK CFI INIT 32d40 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32d60 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32d80 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32da0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32dd0 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32e80 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32ec0 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32f00 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32f50 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32f70 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 32f80 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32f87 .cfa: $rsp 336 +
+STACK CFI INIT 33010 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33060 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 330b0 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33100 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33110 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33120 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33170 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33174 .cfa: $rsp 24 +
+STACK CFI INIT 33200 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33201 .cfa: $rsp 16 +
+STACK CFI 33205 .cfa: $rsp 48 +
+STACK CFI 3320f $rbx: .cfa -16 + ^
+STACK CFI INIT 33260 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33264 .cfa: $rsp 24 +
+STACK CFI INIT 332f0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 332f1 .cfa: $rsp 16 +
+STACK CFI 332f5 .cfa: $rsp 32 +
+STACK CFI 332fb $rbx: .cfa -16 + ^
+STACK CFI INIT 33340 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3334c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 3335d .cfa: $rsp 176 +
+STACK CFI 3336d $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 333f0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33401 .cfa: $rsp 160 +
+STACK CFI 33405 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 33460 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33471 .cfa: $rsp 160 +
+STACK CFI 33475 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 334d0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 334d7 .cfa: $rsp 176 +
+STACK CFI INIT 33520 195 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3352c $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 33538 .cfa: $rsp 608 +
+STACK CFI 33542 $r12: .cfa -16 + ^
+STACK CFI INIT 336c0 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33730 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33731 .cfa: $rsp 16 +
+STACK CFI 3373b $rbx: .cfa -16 + ^
+STACK CFI INIT 337a0 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 337b5 .cfa: $rsp 48 +
+STACK CFI 337bb $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 33830 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33845 .cfa: $rsp 48 +
+STACK CFI 3384b $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 338c0 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33970 eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33a60 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33ac0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 33b30 4b0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33b32 .cfa: $rsp 16 +
+STACK CFI 33b37 .cfa: $rsp 24 +
+STACK CFI 33b39 .cfa: $rsp 32 +
+STACK CFI 33b3b .cfa: $rsp 40 +
+STACK CFI 33b3c .cfa: $rsp 48 +
+STACK CFI 33b3f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 33b40 .cfa: $rsp 56 +
+STACK CFI 33b43 $rbx: .cfa -56 + ^
+STACK CFI 33b47 .cfa: $rsp 176 +
+STACK CFI INIT 33fe0 103 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 340f0 103 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 34200 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 34250 397 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 34251 .cfa: $rsp 16 +
+STACK CFI 34254 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 34259 $r15: .cfa -24 + ^
+STACK CFI 3425e $r14: .cfa -32 + ^
+STACK CFI 34265 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 34269 $rbx: .cfa -56 + ^
+STACK CFI INIT 345f0 119 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 345f1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 34708 $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI INIT 34710 108 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 34712 .cfa: $rsp 16 +
+STACK CFI 34714 .cfa: $rsp 24 +
+STACK CFI 34717 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 34719 .cfa: $rsp 32 +
+STACK CFI 3471c $r12: .cfa -32 + ^
+STACK CFI 3471d .cfa: $rsp 40 +
+STACK CFI 34720 $rbp: .cfa -40 + ^
+STACK CFI 34721 .cfa: $rsp 48 +
+STACK CFI 3472e $rbx: .cfa -48 + ^
+STACK CFI INIT 34820 376 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 34822 .cfa: $rsp 16 +
+STACK CFI 34824 .cfa: $rsp 24 +
+STACK CFI 34827 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 34829 .cfa: $rsp 32 +
+STACK CFI 3482c $r13: .cfa -32 + ^
+STACK CFI 3482e .cfa: $rsp 40 +
+STACK CFI 34831 $r12: .cfa -40 + ^
+STACK CFI 34832 .cfa: $rsp 48 +
+STACK CFI 34835 $rbp: .cfa -48 + ^
+STACK CFI 34836 .cfa: $rsp 56 +
+STACK CFI 3483a .cfa: $rsp 112 +
+STACK CFI 3483f $rbx: .cfa -56 + ^
+STACK CFI INIT 34ba0 117 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 34ba2 .cfa: $rsp 16 +
+STACK CFI 34ba5 $r15: .cfa -16 + ^
+STACK CFI 34ba7 .cfa: $rsp 24 +
+STACK CFI 34ba9 .cfa: $rsp 32 +
+STACK CFI 34bac $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 34bae .cfa: $rsp 40 +
+STACK CFI 34bb1 $r12: .cfa -40 + ^
+STACK CFI 34bb2 .cfa: $rsp 48 +
+STACK CFI 34bb5 $rbp: .cfa -48 + ^
+STACK CFI 34bb6 .cfa: $rsp 56 +
+STACK CFI 34bba .cfa: $rsp 64 +
+STACK CFI 34bc7 $rbx: .cfa -56 + ^
+STACK CFI INIT 34cc0 410 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 34cc2 .cfa: $rsp 16 +
+STACK CFI 34cc5 $r15: .cfa -16 + ^
+STACK CFI 34cc7 .cfa: $rsp 24 +
+STACK CFI 34cca $r14: .cfa -24 + ^
+STACK CFI 34ccc .cfa: $rsp 32 +
+STACK CFI 34ccf $r13: .cfa -32 + ^
+STACK CFI 34cd1 .cfa: $rsp 40 +
+STACK CFI 34cd4 $r12: .cfa -40 + ^
+STACK CFI 34cd5 .cfa: $rsp 48 +
+STACK CFI 34cd8 $rbp: .cfa -48 + ^
+STACK CFI 34cd9 .cfa: $rsp 56 +
+STACK CFI 34cdd .cfa: $rsp 128 +
+STACK CFI 34ce2 $rbx: .cfa -56 + ^
+STACK CFI INIT 350d0 81 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 350d1 .cfa: $rsp 16 +
+STACK CFI 350da $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT 35160 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 35210 eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 35300 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 353a0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 353a1 .cfa: $rsp 16 +
+STACK CFI 353aa $rbx: .cfa -16 + ^
+STACK CFI INIT 35470 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 354a0 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 354e0 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 35520 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 35530 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 35534 .cfa: $rsp 16 +
+STACK CFI INIT 35550 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 35560 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 357af 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 357bd .cfa: $rsp 0 +
+STACK CFI 357c1 .cfa: $rsp 128 +
+STACK CFI 357c9 .cfa: $rsp -128 +
+STACK CFI INIT 357ce 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 357dc .cfa: $rsp 0 +
+STACK CFI 357e0 .cfa: $rsp 128 +
+STACK CFI 357e8 .cfa: $rsp -128 +
+STACK CFI INIT 357ed 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 357fb .cfa: $rsp 0 +
+STACK CFI 357ff .cfa: $rsp 128 +
+STACK CFI 35807 .cfa: $rsp -128 +
+STACK CFI INIT 35570 23f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 35577 .cfa: $rsp 304 +
+STACK CFI INIT 35810 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 35812 .cfa: $rsp 16 +
+STACK CFI 35815 $r15: .cfa -16 + ^
+STACK CFI 35817 .cfa: $rsp 24 +
+STACK CFI 3581a $r14: .cfa -24 + ^
+STACK CFI 3581c .cfa: $rsp 32 +
+STACK CFI 3581e .cfa: $rsp 40 +
+STACK CFI 35821 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 35822 .cfa: $rsp 48 +
+STACK CFI 35825 $rbp: .cfa -48 + ^
+STACK CFI 35826 .cfa: $rsp 56 +
+STACK CFI 35829 $rbx: .cfa -56 + ^
+STACK CFI 3582d .cfa: $rsp 80 +
+STACK CFI INIT 358a0 498 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 358a2 .cfa: $rsp 16 +
+STACK CFI 358a4 .cfa: $rsp 24 +
+STACK CFI 358a6 .cfa: $rsp 32 +
+STACK CFI 358a9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 358ab .cfa: $rsp 40 +
+STACK CFI 358ac .cfa: $rsp 48 +
+STACK CFI 358af $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 358b0 .cfa: $rsp 56 +
+STACK CFI 358b3 $rbx: .cfa -56 + ^
+STACK CFI 358ba .cfa: $rsp 1152 +
+STACK CFI INIT 35d40 32f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 35d42 .cfa: $rsp 16 +
+STACK CFI 35d44 .cfa: $rsp 24 +
+STACK CFI 35d46 .cfa: $rsp 32 +
+STACK CFI 35d48 .cfa: $rsp 40 +
+STACK CFI 35d49 .cfa: $rsp 48 +
+STACK CFI 35d4a .cfa: $rsp 56 +
+STACK CFI 35d4e .cfa: $rsp 128 +
+STACK CFI 35d67 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 36070 32b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36071 .cfa: $rsp 16 +
+STACK CFI 36074 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 3607b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 36082 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 36086 $rbx: .cfa -56 + ^
+STACK CFI INIT 363a0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 363b0 11a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 363c7 $r12: .cfa -40 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 363d5 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ .cfa: $rsp 64 +
+STACK CFI INIT 364d0 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 364d1 .cfa: $rsp 16 +
+STACK CFI 364d9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 364dd $rbx: .cfa -24 + ^
+STACK CFI INIT 36be6 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36bf4 .cfa: $rsp 0 +
+STACK CFI 36bf8 .cfa: $rsp 128 +
+STACK CFI 36c00 .cfa: $rsp -128 +
+STACK CFI INIT 36c05 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36c13 .cfa: $rsp 0 +
+STACK CFI 36c17 .cfa: $rsp 128 +
+STACK CFI 36c1f .cfa: $rsp -128 +
+STACK CFI INIT 36c24 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36c32 .cfa: $rsp 0 +
+STACK CFI 36c36 .cfa: $rsp 128 +
+STACK CFI 36c3e .cfa: $rsp -128 +
+STACK CFI INIT 36c43 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36c51 .cfa: $rsp 0 +
+STACK CFI 36c55 .cfa: $rsp 128 +
+STACK CFI 36c5d .cfa: $rsp -128 +
+STACK CFI INIT 36c62 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36c70 .cfa: $rsp 0 +
+STACK CFI 36c74 .cfa: $rsp 128 +
+STACK CFI 36c7c .cfa: $rsp -128 +
+STACK CFI INIT 36c81 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36c8f .cfa: $rsp 0 +
+STACK CFI 36c93 .cfa: $rsp 128 +
+STACK CFI 36c9b .cfa: $rsp -128 +
+STACK CFI INIT 36ca0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36cae .cfa: $rsp 0 +
+STACK CFI 36cb2 .cfa: $rsp 128 +
+STACK CFI 36cba .cfa: $rsp -128 +
+STACK CFI INIT 36cbf 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 36ccd .cfa: $rsp 0 +
+STACK CFI 36cd1 .cfa: $rsp 128 +
+STACK CFI 36cd9 .cfa: $rsp -128 +
+STACK CFI INIT 36550 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36551 .cfa: $rsp 16 +
+STACK CFI 36585 $rbx: .cfa -16 + ^
+STACK CFI INIT 136230 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136234 .cfa: $rsp 16 +
+STACK CFI INIT 365e0 11e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 365e2 .cfa: $rsp 16 +
+STACK CFI 365e4 .cfa: $rsp 24 +
+STACK CFI 365e5 .cfa: $rsp 32 +
+STACK CFI 365e6 .cfa: $rsp 40 +
+STACK CFI 365e9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 365ed .cfa: $rsp 48 +
+STACK CFI INIT 36700 453 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36701 .cfa: $rsp 16 +
+STACK CFI 36704 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 3670f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 3671f $rbx: .cfa -56 + ^
+STACK CFI INIT 36b60 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36b6d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 36b76 .cfa: $rsp 32 +
+STACK CFI 36b7f $r12: .cfa -16 + ^
+STACK CFI INIT 36ce0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 36d00 12e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36d02 .cfa: $rsp 16 +
+STACK CFI 36d05 $r13: .cfa -16 + ^
+STACK CFI 36d07 .cfa: $rsp 24 +
+STACK CFI 36d08 .cfa: $rsp 32 +
+STACK CFI 36d0b $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 36d0c .cfa: $rsp 40 +
+STACK CFI 36d0e $rbx: .cfa -40 + ^
+STACK CFI 36d12 .cfa: $rsp 48 +
+STACK CFI INIT 36e30 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36e3b .cfa: $rsp 16 +
+STACK CFI INIT 36e50 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36e58 $rbx: .cfa -24 + ^
+STACK CFI 36e68 .cfa: $rsp 32 +
+STACK CFI 36e6b $rbp: .cfa -16 + ^
+STACK CFI INIT 3708c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 3709a .cfa: $rsp 0 +
+STACK CFI 3709e .cfa: $rsp 128 +
+STACK CFI 370a6 .cfa: $rsp -128 +
+STACK CFI INIT 370ab 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 370b9 .cfa: $rsp 0 +
+STACK CFI 370bd .cfa: $rsp 128 +
+STACK CFI 370c5 .cfa: $rsp -128 +
+STACK CFI INIT 36eb0 160 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36eb1 .cfa: $rsp 16 +
+STACK CFI 36eb9 $rbx: .cfa -16 + ^
+STACK CFI INIT 37010 65 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3701d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 37029 .cfa: $rsp 32 +
+STACK CFI 3702c $r12: .cfa -16 + ^
+STACK CFI INIT 37080 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 370d0 159 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 370d2 .cfa: $rsp 16 +
+STACK CFI 370d8 $r15: .cfa -16 + ^
+STACK CFI 370da .cfa: $rsp 24 +
+STACK CFI 370dc .cfa: $rsp 32 +
+STACK CFI 370df $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 370e1 .cfa: $rsp 40 +
+STACK CFI 370e2 .cfa: $rsp 48 +
+STACK CFI 370e5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 370e6 .cfa: $rsp 56 +
+STACK CFI 370ea .cfa: $rsp 80 +
+STACK CFI 370fa $rbx: .cfa -56 + ^
+STACK CFI INIT 37230 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3723b .cfa: $rsp 16 +
+STACK CFI INIT 37250 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37270 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37280 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 372a0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 372c0 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 372f0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37320 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3752a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 37538 .cfa: $rsp 0 +
+STACK CFI 3753c .cfa: $rsp 128 +
+STACK CFI 37544 .cfa: $rsp -128 +
+STACK CFI INIT 37549 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 37557 .cfa: $rsp 0 +
+STACK CFI 3755b .cfa: $rsp 128 +
+STACK CFI 37563 .cfa: $rsp -128 +
+STACK CFI INIT 37568 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 37576 .cfa: $rsp 0 +
+STACK CFI 3757a .cfa: $rsp 128 +
+STACK CFI 37582 .cfa: $rsp -128 +
+STACK CFI INIT 37587 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 37595 .cfa: $rsp 0 +
+STACK CFI 37599 .cfa: $rsp 128 +
+STACK CFI 375a1 .cfa: $rsp -128 +
+STACK CFI INIT 375a6 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 375b4 .cfa: $rsp 0 +
+STACK CFI 375b8 .cfa: $rsp 128 +
+STACK CFI 375c0 .cfa: $rsp -128 +
+STACK CFI INIT 375c5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 375d3 .cfa: $rsp 0 +
+STACK CFI 375d7 .cfa: $rsp 128 +
+STACK CFI 375df .cfa: $rsp -128 +
+STACK CFI INIT 375e4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 375f2 .cfa: $rsp 0 +
+STACK CFI 375f6 .cfa: $rsp 128 +
+STACK CFI 375fe .cfa: $rsp -128 +
+STACK CFI INIT 37603 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 37611 .cfa: $rsp 0 +
+STACK CFI 37615 .cfa: $rsp 128 +
+STACK CFI 3761d .cfa: $rsp -128 +
+STACK CFI INIT 37350 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37354 .cfa: $rsp 32 +
+STACK CFI INIT 373c0 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 373c1 .cfa: $rsp 16 +
+STACK CFI 373f8 $rbx: .cfa -16 + ^
+STACK CFI INIT 37440 7a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37441 .cfa: $rsp 16 +
+STACK CFI 3747b $rbx: .cfa -16 + ^
+STACK CFI INIT 374c0 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 374c4 .cfa: $rsp 16 +
+STACK CFI INIT 37630 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37720 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 377c0 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 377cd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 377d6 .cfa: $rsp 48 +
+STACK CFI 377db $r12: .cfa -16 + ^
+STACK CFI INIT 378c0 135 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 378cd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 378db .cfa: $rsp 48 +
+STACK CFI 378e7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 37a00 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37a04 .cfa: $rsp 16 +
+STACK CFI INIT 37a10 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37a60 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37a64 .cfa: $rsp 32 +
+STACK CFI INIT 37a90 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37a94 .cfa: $rsp 32 +
+STACK CFI INIT 37ab0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37ab4 .cfa: $rsp 32 +
+STACK CFI INIT 37ae0 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37ae4 .cfa: $rsp 32 +
+STACK CFI INIT 37b00 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37b04 .cfa: $rsp 32 +
+STACK CFI INIT 37b30 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37b34 .cfa: $rsp 32 +
+STACK CFI INIT 37b50 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37b60 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37b6b .cfa: $rsp 16 +
+STACK CFI INIT 37b80 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37b90 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37ba0 77 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37ba1 .cfa: $rsp 16 +
+STACK CFI 37ba4 $rbp: .cfa -16 + ^
+STACK CFI 37ba5 .cfa: $rsp 24 +
+STACK CFI 37ba8 $rbx: .cfa -24 + ^
+STACK CFI 37bac .cfa: $rsp 48 +
+STACK CFI INIT 37c20 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37c40 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37c4e .cfa: $rsp 32 +
+STACK CFI 37c51 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 37c90 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37cb0 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37cbe .cfa: $rsp 32 +
+STACK CFI 37cc1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 37d00 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37d40 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37d80 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37dc0 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37e40 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37e60 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37e70 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37e90 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37ea0 455 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 37ea2 .cfa: $rsp 16 +
+STACK CFI 37ea4 .cfa: $rsp 24 +
+STACK CFI 37ea6 .cfa: $rsp 32 +
+STACK CFI 37ea8 .cfa: $rsp 40 +
+STACK CFI 37ea9 .cfa: $rsp 48 +
+STACK CFI 37eaa .cfa: $rsp 56 +
+STACK CFI 37ead $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 37eb1 .cfa: $rsp 96 +
+STACK CFI INIT 38300 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 38310 425 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 38312 .cfa: $rsp 16 +
+STACK CFI 38314 .cfa: $rsp 24 +
+STACK CFI 38316 .cfa: $rsp 32 +
+STACK CFI 38318 .cfa: $rsp 40 +
+STACK CFI 38319 .cfa: $rsp 48 +
+STACK CFI 3831a .cfa: $rsp 56 +
+STACK CFI 3831d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 38321 .cfa: $rsp 96 +
+STACK CFI INIT 38740 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 38750 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 38770 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 38780 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 387a0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 387b0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 387d0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 387e0 309 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 387e2 .cfa: $rsp 16 +
+STACK CFI 387e8 $r15: .cfa -16 + ^
+STACK CFI 387ea .cfa: $rsp 24 +
+STACK CFI 387ec .cfa: $rsp 32 +
+STACK CFI 387ee .cfa: $rsp 40 +
+STACK CFI 387f1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 387f2 .cfa: $rsp 48 +
+STACK CFI 387f4 $rbp: .cfa -48 + ^
+STACK CFI 387f5 .cfa: $rsp 56 +
+STACK CFI 387f8 $rbx: .cfa -56 + ^
+STACK CFI 387fc .cfa: $rsp 96 +
+STACK CFI INIT 38af0 1dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 38afc $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 38b0a .cfa: $rsp 64 +
+STACK CFI 38b14 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 38cd0 213c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 38cd2 .cfa: $rsp 16 +
+STACK CFI 38cd5 $r15: .cfa -16 + ^
+STACK CFI 38cd7 .cfa: $rsp 24 +
+STACK CFI 38cd9 .cfa: $rsp 32 +
+STACK CFI 38cdb .cfa: $rsp 40 +
+STACK CFI 38cdc .cfa: $rsp 48 +
+STACK CFI 38cdd .cfa: $rsp 56 +
+STACK CFI 38ce4 .cfa: $rsp 336 +
+STACK CFI 38cfa $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 3ae10 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3ae20 309 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3ae22 .cfa: $rsp 16 +
+STACK CFI 3ae28 $r15: .cfa -16 + ^
+STACK CFI 3ae2a .cfa: $rsp 24 +
+STACK CFI 3ae2c .cfa: $rsp 32 +
+STACK CFI 3ae2e .cfa: $rsp 40 +
+STACK CFI 3ae31 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 3ae32 .cfa: $rsp 48 +
+STACK CFI 3ae34 $rbp: .cfa -48 + ^
+STACK CFI 3ae35 .cfa: $rsp 56 +
+STACK CFI 3ae38 $rbx: .cfa -56 + ^
+STACK CFI 3ae3c .cfa: $rsp 96 +
+STACK CFI INIT 3b130 1fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3b13c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 3b14a .cfa: $rsp 64 +
+STACK CFI 3b157 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 3b330 21b1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3b332 .cfa: $rsp 16 +
+STACK CFI 3b335 $r15: .cfa -16 + ^
+STACK CFI 3b337 .cfa: $rsp 24 +
+STACK CFI 3b339 .cfa: $rsp 32 +
+STACK CFI 3b33b .cfa: $rsp 40 +
+STACK CFI 3b33c .cfa: $rsp 48 +
+STACK CFI 3b33d .cfa: $rsp 56 +
+STACK CFI 3b344 .cfa: $rsp 576 +
+STACK CFI 3b35a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 3d4f0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3d500 312 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3d502 .cfa: $rsp 16 +
+STACK CFI 3d508 $r15: .cfa -16 + ^
+STACK CFI 3d50a .cfa: $rsp 24 +
+STACK CFI 3d50c .cfa: $rsp 32 +
+STACK CFI 3d50e .cfa: $rsp 40 +
+STACK CFI 3d511 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 3d512 .cfa: $rsp 48 +
+STACK CFI 3d514 $rbp: .cfa -48 + ^
+STACK CFI 3d515 .cfa: $rsp 56 +
+STACK CFI 3d518 $rbx: .cfa -56 + ^
+STACK CFI 3d51c .cfa: $rsp 96 +
+STACK CFI INIT 3d820 1ef .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3d82d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 3d83b .cfa: $rsp 64 +
+STACK CFI 3d847 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 3da10 20f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3da12 .cfa: $rsp 16 +
+STACK CFI 3da18 $r15: .cfa -16 + ^
+STACK CFI 3da1a .cfa: $rsp 24 +
+STACK CFI 3da1c .cfa: $rsp 32 +
+STACK CFI 3da1e .cfa: $rsp 40 +
+STACK CFI 3da1f .cfa: $rsp 48 +
+STACK CFI 3da20 .cfa: $rsp 56 +
+STACK CFI 3da27 .cfa: $rsp 4416 +
+STACK CFI 3da38 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 3fb10 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 400b1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 400bf .cfa: $rsp 0 +
+STACK CFI 400c3 .cfa: $rsp 128 +
+STACK CFI 400cb .cfa: $rsp -128 +
+STACK CFI INIT 400d0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 400de .cfa: $rsp 0 +
+STACK CFI 400e2 .cfa: $rsp 128 +
+STACK CFI 400ea .cfa: $rsp -128 +
+STACK CFI INIT 400ef 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 400fd .cfa: $rsp 0 +
+STACK CFI 40101 .cfa: $rsp 128 +
+STACK CFI 40109 .cfa: $rsp -128 +
+STACK CFI INIT 4010e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4011c .cfa: $rsp 0 +
+STACK CFI 40120 .cfa: $rsp 128 +
+STACK CFI 40128 .cfa: $rsp -128 +
+STACK CFI INIT 4012d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4013b .cfa: $rsp 0 +
+STACK CFI 4013f .cfa: $rsp 128 +
+STACK CFI 40147 .cfa: $rsp -128 +
+STACK CFI INIT 4014c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4015a .cfa: $rsp 0 +
+STACK CFI 4015e .cfa: $rsp 128 +
+STACK CFI 40166 .cfa: $rsp -128 +
+STACK CFI INIT 4016b 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 40179 .cfa: $rsp 0 +
+STACK CFI 4017d .cfa: $rsp 128 +
+STACK CFI 40185 .cfa: $rsp -128 +
+STACK CFI INIT 4018a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 40198 .cfa: $rsp 0 +
+STACK CFI 4019c .cfa: $rsp 128 +
+STACK CFI 401a4 .cfa: $rsp -128 +
+STACK CFI INIT 3fb20 458 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3fb22 .cfa: $rsp 16 +
+STACK CFI 3fb27 $r12: .cfa -16 + ^
+STACK CFI 3fb32 .cfa: $rsp 24 +
+STACK CFI 3fb33 .cfa: $rsp 32 +
+STACK CFI 3fb3a .cfa: $rsp 400 +
+STACK CFI 3fb55 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 3ff80 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3ff81 .cfa: $rsp 16 +
+STACK CFI 3ff85 .cfa: $rsp 32 +
+STACK CFI 3ff8a $rbx: .cfa -16 + ^
+STACK CFI INIT 3fff0 c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3fff1 .cfa: $rsp 16 +
+STACK CFI 3fff3 $rbx: .cfa -16 + ^
+STACK CFI INIT 401b0 4bf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 401b1 .cfa: $rsp 16 +
+STACK CFI 401b4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 401c0 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 40670 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111990 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 40680 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 406d0 4d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 40720 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40722 .cfa: $rsp 16 +
+STACK CFI 40724 .cfa: $rsp 24 +
+STACK CFI 40726 .cfa: $rsp 32 +
+STACK CFI 40728 .cfa: $rsp 40 +
+STACK CFI 4072e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 4072f .cfa: $rsp 48 +
+STACK CFI 40732 $rbp: .cfa -48 + ^
+STACK CFI 40733 .cfa: $rsp 56 +
+STACK CFI 40737 .cfa: $rsp 96 +
+STACK CFI 4074e $rbx: .cfa -56 + ^
+STACK CFI INIT 40830 ae .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40834 .cfa: $rsp 16 +
+STACK CFI 40837 $rbx: .cfa -16 + ^
+STACK CFI INIT 408e0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 408f0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 40900 a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 409b0 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 409b1 .cfa: $rsp 16 +
+STACK CFI 409cd .cfa: $rsp 8 +
+STACK CFI 409e5 $r12: .cfa 72 + ^ $r13: .cfa 80 + ^ $r14: .cfa 88 + ^ $r15: .cfa 96 + ^ $rbp: .cfa 120 + ^ $rbx: .cfa 128 + ^ $rsp: .cfa 160 + ^ .cfa: $rdi 0 + .ra: .cfa 168 + ^
+STACK CFI INIT 40a2d 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 40a50 1f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40a51 .cfa: $rsp 16 +
+STACK CFI 40a71 $rbx: .cfa -16 + ^
+STACK CFI INIT 40c50 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 40d60 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40d67 .cfa: $rsp 224 +
+STACK CFI INIT 40e00 1196 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40e02 .cfa: $rsp 16 +
+STACK CFI 40e15 .cfa: $rsp 24 +
+STACK CFI 40e1a $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 40e1c .cfa: $rsp 32 +
+STACK CFI 40e1f $r13: .cfa -32 + ^
+STACK CFI 40e21 .cfa: $rsp 40 +
+STACK CFI 40e22 .cfa: $rsp 48 +
+STACK CFI 40e23 .cfa: $rsp 56 +
+STACK CFI 40e26 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 40e2d .cfa: $rsp 576 +
+STACK CFI INIT 41fa0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 41fa1 .cfa: $rsp 16 +
+STACK CFI 41fac $rbx: .cfa -16 + ^
+STACK CFI 41fba .cfa: $rsp 224 +
+STACK CFI INIT 42030 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42034 .cfa: $rsp 16 +
+STACK CFI 42036 $rbx: .cfa -16 + ^
+STACK CFI INIT 420c0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 420c4 .cfa: $rsp 48 +
+STACK CFI INIT 420f0 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 420f4 .cfa: $rsp 16 +
+STACK CFI 420f6 $rbx: .cfa -16 + ^
+STACK CFI INIT 42180 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42184 .cfa: $rsp 48 +
+STACK CFI INIT 421b0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 421b4 .cfa: $rsp 16 +
+STACK CFI 421b6 $rbx: .cfa -16 + ^
+STACK CFI INIT 42220 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 42230 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 42240 b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4224c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 42259 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 42267 .cfa: $rsp 64 +
+STACK CFI 4226a $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 42300 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42301 .cfa: $rsp 16 +
+STACK CFI 4231a .cfa: $rsp 32 +
+STACK CFI 42326 $rbx: .cfa -16 + ^
+STACK CFI INIT 42bb8 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 42bc6 .cfa: $rsp 0 +
+STACK CFI 42bca .cfa: $rsp 128 +
+STACK CFI 42bd2 .cfa: $rsp -128 +
+STACK CFI INIT 42bd7 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 42be5 .cfa: $rsp 0 +
+STACK CFI 42be9 .cfa: $rsp 128 +
+STACK CFI 42bf1 .cfa: $rsp -128 +
+STACK CFI INIT 42bf6 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 42c04 .cfa: $rsp 0 +
+STACK CFI 42c08 .cfa: $rsp 128 +
+STACK CFI 42c10 .cfa: $rsp -128 +
+STACK CFI INIT 42c15 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 42c23 .cfa: $rsp 0 +
+STACK CFI 42c27 .cfa: $rsp 128 +
+STACK CFI 42c2f .cfa: $rsp -128 +
+STACK CFI INIT 136260 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136268 .cfa: $rsp 16 +
+STACK CFI 13626d $rbx: .cfa -16 + ^
+STACK CFI INIT 42360 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42361 .cfa: $rsp 16 +
+STACK CFI 42363 $rbx: .cfa -16 + ^
+STACK CFI 42367 .cfa: $rsp 32 +
+STACK CFI INIT 42410 77 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42414 .cfa: $rsp 16 +
+STACK CFI INIT 42490 20a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42492 .cfa: $rsp 16 +
+STACK CFI 4249b .cfa: $rsp 24 +
+STACK CFI 4249c .cfa: $rsp 32 +
+STACK CFI 4249d .cfa: $rsp 40 +
+STACK CFI 424a1 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 64 +
+STACK CFI INIT 426a0 518 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 426ad $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 426cb .cfa: $rsp 192 +
+STACK CFI 426d2 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 42c40 261 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42c42 .cfa: $rsp 16 +
+STACK CFI 42c4a .cfa: $rsp 24 +
+STACK CFI 42c4c .cfa: $rsp 32 +
+STACK CFI 42c4e .cfa: $rsp 40 +
+STACK CFI 42c4f .cfa: $rsp 48 +
+STACK CFI 42c50 .cfa: $rsp 56 +
+STACK CFI 42c5b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 42eb0 164 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42eb4 .cfa: $rsp 16 +
+STACK CFI 42eb9 $rbx: .cfa -16 + ^
+STACK CFI INIT 43020 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43024 .cfa: $rsp 0 +
+STACK CFI INIT 43040 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 43070 94 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43071 .cfa: $rsp 16 +
+STACK CFI 43074 $rbx: .cfa -16 + ^
+STACK CFI 4307b .cfa: $rsp 1104 +
+STACK CFI INIT 43110 cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 431e0 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 431e1 .cfa: $rsp 16 +
+STACK CFI 431e4 $rbp: .cfa -16 + ^
+STACK CFI 431e5 .cfa: $rsp 24 +
+STACK CFI 431e9 .cfa: $rsp 64 +
+STACK CFI 431ee $rbx: .cfa -24 + ^
+STACK CFI INIT 48dd1 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 48ddb .cfa: $rsp 0 +
+STACK CFI 48ddf .cfa: $rsp 128 +
+STACK CFI 48de7 .cfa: $rsp -128 +
+STACK CFI INIT 48dec 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 48df6 .cfa: $rsp 0 +
+STACK CFI 48dfa .cfa: $rsp 128 +
+STACK CFI 48e02 .cfa: $rsp -128 +
+STACK CFI INIT 48e07 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 48e11 .cfa: $rsp 0 +
+STACK CFI 48e15 .cfa: $rsp 128 +
+STACK CFI 48e1d .cfa: $rsp -128 +
+STACK CFI INIT 48e22 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 48e2c .cfa: $rsp 0 +
+STACK CFI 48e30 .cfa: $rsp 128 +
+STACK CFI 48e38 .cfa: $rsp -128 +
+STACK CFI INIT 43240 ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43248 $rbx: .cfa -40 + ^
+STACK CFI 4325b .cfa: $rsp 48 +
+STACK CFI 4325f $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 43310 12d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43311 .cfa: $rsp 16 +
+STACK CFI 43314 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 43319 $r15: .cfa -24 + ^
+STACK CFI 43322 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 43326 $rbx: .cfa -56 + ^
+STACK CFI INIT 43440 231 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43441 .cfa: $rsp 16 +
+STACK CFI 43444 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 4344f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 43453 $rbx: .cfa -56 + ^
+STACK CFI INIT 43680 5525 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 43681 .cfa: $rsp 16 +
+STACK CFI 43684 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 4368f $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 4369a $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 436c7 $r12: .cfa -48 + ^
+STACK CFI INIT 48bb0 221 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 48bbd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 48bce .cfa: $rsp 8528 +
+STACK CFI 48bdc $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 48e40 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 48e60 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 48ea0 169 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 48ea1 .cfa: $rsp 16 +
+STACK CFI 48ea2 .cfa: $rsp 24 +
+STACK CFI 48ea5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 48ea9 .cfa: $rsp 32 +
+STACK CFI INIT 49010 231 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 49011 .cfa: $rsp 16 +
+STACK CFI 49014 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 4901f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 49023 $rbx: .cfa -56 + ^
+STACK CFI INIT 49250 2764 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 49251 .cfa: $rsp 16 +
+STACK CFI 49254 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 4925f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 49263 $rbx: .cfa -56 + ^
+STACK CFI INIT 4bab5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4bac3 .cfa: $rsp 0 +
+STACK CFI 4bac7 .cfa: $rsp 128 +
+STACK CFI 4bacf .cfa: $rsp -128 +
+STACK CFI INIT 4bad4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4bae2 .cfa: $rsp 0 +
+STACK CFI 4bae6 .cfa: $rsp 128 +
+STACK CFI 4baee .cfa: $rsp -128 +
+STACK CFI INIT 4b9c0 ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4b9c1 .cfa: $rsp 16 +
+STACK CFI 4b9c4 $rbp: .cfa -16 + ^
+STACK CFI 4b9c5 .cfa: $rsp 24 +
+STACK CFI 4b9c7 $rbx: .cfa -24 + ^
+STACK CFI 4b9cb .cfa: $rsp 48 +
+STACK CFI INIT 4bab0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4bb00 10b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4bb02 .cfa: $rsp 16 +
+STACK CFI 4bb04 .cfa: $rsp 24 +
+STACK CFI 4bb06 .cfa: $rsp 32 +
+STACK CFI 4bb09 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 4bb0b .cfa: $rsp 40 +
+STACK CFI 4bb0c .cfa: $rsp 48 +
+STACK CFI 4bb0f $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 4bb15 .cfa: $rsp 56 +
+STACK CFI 4bb19 .cfa: $rsp 144 +
+STACK CFI 4bb22 $rbx: .cfa -56 + ^
+STACK CFI INIT 4bc10 1a25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4bc12 .cfa: $rsp 16 +
+STACK CFI 4bc14 .cfa: $rsp 24 +
+STACK CFI 4bc16 .cfa: $rsp 32 +
+STACK CFI 4bc19 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 4bc1b .cfa: $rsp 40 +
+STACK CFI 4bc1c .cfa: $rsp 48 +
+STACK CFI 4bc1f $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 4bc20 .cfa: $rsp 56 +
+STACK CFI 4bc27 .cfa: $rsp 480 +
+STACK CFI 4bc2c $rbx: .cfa -56 + ^
+STACK CFI INIT 4d96f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4d97d .cfa: $rsp 0 +
+STACK CFI 4d981 .cfa: $rsp 128 +
+STACK CFI 4d989 .cfa: $rsp -128 +
+STACK CFI INIT 4d98e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4d99c .cfa: $rsp 0 +
+STACK CFI 4d9a0 .cfa: $rsp 128 +
+STACK CFI 4d9a8 .cfa: $rsp -128 +
+STACK CFI INIT 4d640 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4d642 .cfa: $rsp 16 +
+STACK CFI 4d64e .cfa: $rsp 24 +
+STACK CFI 4d650 .cfa: $rsp 32 +
+STACK CFI 4d651 .cfa: $rsp 40 +
+STACK CFI 4d652 .cfa: $rsp 48 +
+STACK CFI 4d663 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 4d730 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4d732 .cfa: $rsp 16 +
+STACK CFI 4d73b .cfa: $rsp 24 +
+STACK CFI 4d73c .cfa: $rsp 32 +
+STACK CFI 4d73d .cfa: $rsp 40 +
+STACK CFI 4d740 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 1362a0 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1362a1 .cfa: $rsp 16 +
+STACK CFI 1362a2 .cfa: $rsp 24 +
+STACK CFI 1362a6 .cfa: $rsp 32 +
+STACK CFI 1362b2 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 4d800 16f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4d802 .cfa: $rsp 16 +
+STACK CFI 4d803 .cfa: $rsp 24 +
+STACK CFI 4d804 .cfa: $rsp 32 +
+STACK CFI 4d809 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 4da73 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4da81 .cfa: $rsp 0 +
+STACK CFI 4da85 .cfa: $rsp 128 +
+STACK CFI 4da8d .cfa: $rsp -128 +
+STACK CFI INIT 4da92 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 4daa0 .cfa: $rsp 0 +
+STACK CFI 4daa4 .cfa: $rsp 128 +
+STACK CFI 4daac .cfa: $rsp -128 +
+STACK CFI INIT 4d9b0 c3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4d9b1 .cfa: $rsp 16 +
+STACK CFI 4d9b9 $rbx: .cfa -16 + ^
+STACK CFI INIT 4dac0 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4dae0 86d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4dae2 .cfa: $rsp 16 +
+STACK CFI 4dae4 .cfa: $rsp 24 +
+STACK CFI 4dae6 .cfa: $rsp 32 +
+STACK CFI 4dae8 .cfa: $rsp 40 +
+STACK CFI 4daeb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 4daec .cfa: $rsp 48 +
+STACK CFI 4daed .cfa: $rsp 56 +
+STACK CFI 4daf0 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 4daf7 .cfa: $rsp 192 +
+STACK CFI INIT 4e350 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e357 .cfa: $rsp 224 +
+STACK CFI INIT 4e3e0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e3e7 .cfa: $rsp 224 +
+STACK CFI INIT 4e490 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e497 .cfa: $rsp 224 +
+STACK CFI INIT 4e520 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e527 .cfa: $rsp 224 +
+STACK CFI INIT 4e5b0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e5b7 .cfa: $rsp 224 +
+STACK CFI INIT 4e640 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e647 .cfa: $rsp 224 +
+STACK CFI INIT 56b97 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 56ba1 .cfa: $rsp 0 +
+STACK CFI 56ba5 .cfa: $rsp 128 +
+STACK CFI 56bad .cfa: $rsp -128 +
+STACK CFI INIT 56bb2 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 56bbc .cfa: $rsp 0 +
+STACK CFI 56bc0 .cfa: $rsp 128 +
+STACK CFI 56bc8 .cfa: $rsp -128 +
+STACK CFI INIT 4e6d0 84b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e6d1 .cfa: $rsp 16 +
+STACK CFI 4e6d4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 4e6df $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 4e6e3 $rbx: .cfa -56 + ^
+STACK CFI INIT 56b90 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 56bd0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56bd7 .cfa: $rsp 224 +
+STACK CFI INIT 56c60 a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56c67 .cfa: $rsp 224 +
+STACK CFI INIT 56d10 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56d17 .cfa: $rsp 224 +
+STACK CFI INIT 56da0 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56dad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 56db9 .cfa: $rsp 1056 +
+STACK CFI 56dc3 $r12: .cfa -16 + ^
+STACK CFI INIT 56e30 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56e3d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 56e46 .cfa: $rsp 48 +
+STACK CFI 56e65 $r12: .cfa -16 + ^
+STACK CFI INIT 56f20 101 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56f2d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 56f36 .cfa: $rsp 48 +
+STACK CFI 56f3e $rbp: .cfa -24 + ^
+STACK CFI INIT 57030 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57048 .cfa: $rsp 4128 +
+STACK CFI 57055 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 570c0 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 570c1 .cfa: $rsp 16 +
+STACK CFI 570c9 $rbp: .cfa -16 + ^
+STACK CFI 570ca .cfa: $rsp 24 +
+STACK CFI 570ce .cfa: $rsp 64 +
+STACK CFI 570d4 $rbx: .cfa -24 + ^
+STACK CFI INIT 57150 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57154 .cfa: $rsp 16 +
+STACK CFI 57157 $rbx: .cfa -16 + ^
+STACK CFI INIT 571a0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 571a1 .cfa: $rsp 16 +
+STACK CFI 571b9 .cfa: $rsp 4112 +
+STACK CFI 571bc $rbx: .cfa -16 + ^
+STACK CFI INIT 57200 36f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57202 .cfa: $rsp 16 +
+STACK CFI 57204 .cfa: $rsp 24 +
+STACK CFI 57206 .cfa: $rsp 32 +
+STACK CFI 57208 .cfa: $rsp 40 +
+STACK CFI 5720b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 5720c .cfa: $rsp 48 +
+STACK CFI 5720e $rbp: .cfa -48 + ^
+STACK CFI 5720f .cfa: $rsp 56 +
+STACK CFI 57216 .cfa: $rsp 288 +
+STACK CFI 5722c $rbx: .cfa -56 + ^
+STACK CFI INIT 57570 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57577 .cfa: $rsp 160 +
+STACK CFI INIT 575b0 190 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 575b2 .cfa: $rsp 16 +
+STACK CFI 575b4 .cfa: $rsp 24 +
+STACK CFI 575b6 .cfa: $rsp 32 +
+STACK CFI 575b9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 575bb .cfa: $rsp 40 +
+STACK CFI 575be $r12: .cfa -40 + ^
+STACK CFI 575bf .cfa: $rsp 48 +
+STACK CFI 575c2 $rbp: .cfa -48 + ^
+STACK CFI 575c3 .cfa: $rsp 56 +
+STACK CFI 575c6 $rbx: .cfa -56 + ^
+STACK CFI 575ca .cfa: $rsp 80 +
+STACK CFI INIT 57740 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 57750 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57754 .cfa: $rsp 32 +
+STACK CFI INIT 57790 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57794 .cfa: $rsp 32 +
+STACK CFI INIT 577c0 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 577c1 .cfa: $rsp 16 +
+STACK CFI 577c4 $rbx: .cfa -16 + ^
+STACK CFI INIT 57800 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 57830 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 578a6 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 578b0 .cfa: $rsp 0 +
+STACK CFI 578b4 .cfa: $rsp 128 +
+STACK CFI 578bc .cfa: $rsp -128 +
+STACK CFI INIT 57860 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 578c0 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 57962 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 5796c .cfa: $rsp 0 +
+STACK CFI 57970 .cfa: $rsp 128 +
+STACK CFI 57978 .cfa: $rsp -128 +
+STACK CFI INIT 57930 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 57b09 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57b13 .cfa: $rsp 0 +
+STACK CFI 57b17 .cfa: $rsp 128 +
+STACK CFI 57b1f .cfa: $rsp -128 +
+STACK CFI INIT 57b24 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57b2e .cfa: $rsp 0 +
+STACK CFI 57b32 .cfa: $rsp 128 +
+STACK CFI 57b3a .cfa: $rsp -128 +
+STACK CFI INIT 57b3f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57b49 .cfa: $rsp 0 +
+STACK CFI 57b4d .cfa: $rsp 128 +
+STACK CFI 57b55 .cfa: $rsp -128 +
+STACK CFI INIT 57980 189 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57981 .cfa: $rsp 16 +
+STACK CFI 5798b .cfa: $rsp 224 +
+STACK CFI 579ed $rbx: .cfa -16 + ^
+STACK CFI INIT 57c67 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57c71 .cfa: $rsp 0 +
+STACK CFI 57c75 .cfa: $rsp 128 +
+STACK CFI 57c7d .cfa: $rsp -128 +
+STACK CFI INIT 57c82 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57c8c .cfa: $rsp 0 +
+STACK CFI 57c90 .cfa: $rsp 128 +
+STACK CFI 57c98 .cfa: $rsp -128 +
+STACK CFI INIT 57c9d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57ca7 .cfa: $rsp 0 +
+STACK CFI 57cab .cfa: $rsp 128 +
+STACK CFI 57cb3 .cfa: $rsp -128 +
+STACK CFI INIT 57b60 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57b61 .cfa: $rsp 16 +
+STACK CFI 57b68 .cfa: $rsp 24 +
+STACK CFI 57b6c .cfa: $rsp 32 +
+STACK CFI 57b76 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 57e37 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57e41 .cfa: $rsp 0 +
+STACK CFI 57e45 .cfa: $rsp 128 +
+STACK CFI 57e4d .cfa: $rsp -128 +
+STACK CFI INIT 57e52 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57e5c .cfa: $rsp 0 +
+STACK CFI 57e60 .cfa: $rsp 128 +
+STACK CFI 57e68 .cfa: $rsp -128 +
+STACK CFI INIT 57e6d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57e77 .cfa: $rsp 0 +
+STACK CFI 57e7b .cfa: $rsp 128 +
+STACK CFI 57e83 .cfa: $rsp -128 +
+STACK CFI INIT 57cc0 177 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57cc1 .cfa: $rsp 16 +
+STACK CFI 57cc7 $rbx: .cfa -16 + ^
+STACK CFI 57cce .cfa: $rsp 224 +
+STACK CFI INIT 57f80 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57f8a .cfa: $rsp 0 +
+STACK CFI 57f8e .cfa: $rsp 128 +
+STACK CFI 57f96 .cfa: $rsp -128 +
+STACK CFI INIT 57f9b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57fa5 .cfa: $rsp 0 +
+STACK CFI 57fa9 .cfa: $rsp 128 +
+STACK CFI 57fb1 .cfa: $rsp -128 +
+STACK CFI INIT 57fb3 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 57fbd .cfa: $rsp 0 +
+STACK CFI 57fc1 .cfa: $rsp 128 +
+STACK CFI 57fc9 .cfa: $rsp -128 +
+STACK CFI INIT 57e90 f0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57e91 .cfa: $rsp 16 +
+STACK CFI 57e98 $rbx: .cfa -16 + ^
+STACK CFI INIT 57fd0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57fd7 .cfa: $rsp 224 +
+STACK CFI INIT 58060 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5807e .cfa: $rsp 288 +
+STACK CFI 58081 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 58110 5cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5812e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 5813f .cfa: $rsp 576 +
+STACK CFI 5814a $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 5dede 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 5dee8 .cfa: $rsp 0 +
+STACK CFI 5deec .cfa: $rsp 128 +
+STACK CFI 5def4 .cfa: $rsp -128 +
+STACK CFI INIT 5def9 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 5df03 .cfa: $rsp 0 +
+STACK CFI 5df07 .cfa: $rsp 128 +
+STACK CFI 5df0f .cfa: $rsp -128 +
+STACK CFI INIT 5df14 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 5df1e .cfa: $rsp 0 +
+STACK CFI 5df22 .cfa: $rsp 128 +
+STACK CFI 5df2a .cfa: $rsp -128 +
+STACK CFI INIT 5df2f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 5df39 .cfa: $rsp 0 +
+STACK CFI 5df3d .cfa: $rsp 128 +
+STACK CFI 5df45 .cfa: $rsp -128 +
+STACK CFI INIT 586e0 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 586e8 $rbx: .cfa -40 + ^
+STACK CFI 586fb .cfa: $rsp 48 +
+STACK CFI 58704 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 587e0 dd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 587e1 .cfa: $rsp 16 +
+STACK CFI 587e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 587eb $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 587f2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 587f6 $rbx: .cfa -56 + ^
+STACK CFI INIT 588c0 139 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 588c1 .cfa: $rsp 16 +
+STACK CFI 588c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 588cb $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 588d2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI 588e9 $rbx: .cfa -56 + ^
+STACK CFI INIT 58a00 52ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 58a01 .cfa: $rsp 16 +
+STACK CFI 58a04 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 58a0f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 58a1a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 58a2c $r15: .cfa -24 + ^
+STACK CFI INIT 5dcb0 22e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5dcbd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 5dcca $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 5dcd1 .cfa: $rsp 33424 +
+STACK CFI INIT 66ab7 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 66ac1 .cfa: $rsp 0 +
+STACK CFI 66ac5 .cfa: $rsp 128 +
+STACK CFI 66acd .cfa: $rsp -128 +
+STACK CFI INIT 66ad2 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 66adc .cfa: $rsp 0 +
+STACK CFI 66ae0 .cfa: $rsp 128 +
+STACK CFI 66ae8 .cfa: $rsp -128 +
+STACK CFI INIT 5df50 8b5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5df51 .cfa: $rsp 16 +
+STACK CFI 5df54 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 5df59 $r15: .cfa -24 + ^
+STACK CFI 5df65 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 5df69 $rbx: .cfa -56 + ^
+STACK CFI INIT 66ab0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 66af0 71d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 66af2 .cfa: $rsp 16 +
+STACK CFI 66af5 $r12: .cfa -16 + ^
+STACK CFI 66af6 .cfa: $rsp 24 +
+STACK CFI 66af7 .cfa: $rsp 32 +
+STACK CFI 66afa $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 66b02 .cfa: $rsp 48 +
+STACK CFI INIT 67210 171 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 67211 .cfa: $rsp 16 +
+STACK CFI 67217 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 6721e $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 67224 $r12: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 67390 6d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 67392 .cfa: $rsp 16 +
+STACK CFI 67399 $r12: .cfa -16 + ^
+STACK CFI 6739a .cfa: $rsp 24 +
+STACK CFI 6739b .cfa: $rsp 32 +
+STACK CFI 6739e $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 673a2 .cfa: $rsp 48 +
+STACK CFI INIT 67a70 102 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 67a71 .cfa: $rsp 16 +
+STACK CFI 67a72 .cfa: $rsp 24 +
+STACK CFI 67a75 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 67a7c .cfa: $rsp 176 +
+STACK CFI INIT 67d86 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 67d90 .cfa: $rsp 0 +
+STACK CFI 67d94 .cfa: $rsp 128 +
+STACK CFI 67d9c .cfa: $rsp -128 +
+STACK CFI INIT 67da1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 67daf .cfa: $rsp 0 +
+STACK CFI 67db3 .cfa: $rsp 128 +
+STACK CFI 67dbb .cfa: $rsp -128 +
+STACK CFI INIT 67dc0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 67dce .cfa: $rsp 0 +
+STACK CFI 67dd2 .cfa: $rsp 128 +
+STACK CFI 67dda .cfa: $rsp -128 +
+STACK CFI INIT 67ddf 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 67de9 .cfa: $rsp 0 +
+STACK CFI 67ded .cfa: $rsp 128 +
+STACK CFI 67df5 .cfa: $rsp -128 +
+STACK CFI INIT 67dfa 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 67e04 .cfa: $rsp 0 +
+STACK CFI 67e08 .cfa: $rsp 128 +
+STACK CFI 67e10 .cfa: $rsp -128 +
+STACK CFI INIT 67b80 206 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 67b82 .cfa: $rsp 16 +
+STACK CFI 67b83 .cfa: $rsp 24 +
+STACK CFI 67b84 .cfa: $rsp 32 +
+STACK CFI 67b89 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 67e20 242 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 67e2c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 67e3a .cfa: $rsp 48 +
+STACK CFI 67e45 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 68167 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68171 .cfa: $rsp 0 +
+STACK CFI 68175 .cfa: $rsp 128 +
+STACK CFI 6817d .cfa: $rsp -128 +
+STACK CFI INIT 68182 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6818c .cfa: $rsp 0 +
+STACK CFI 68190 .cfa: $rsp 128 +
+STACK CFI 68198 .cfa: $rsp -128 +
+STACK CFI INIT 6819d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 681a7 .cfa: $rsp 0 +
+STACK CFI 681ab .cfa: $rsp 128 +
+STACK CFI 681b3 .cfa: $rsp -128 +
+STACK CFI INIT 68070 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 68074 .cfa: $rsp 16 +
+STACK CFI 68077 $rbx: .cfa -16 + ^
+STACK CFI INIT 68365 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6836f .cfa: $rsp 0 +
+STACK CFI 68373 .cfa: $rsp 128 +
+STACK CFI 6837b .cfa: $rsp -128 +
+STACK CFI INIT 68380 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6838a .cfa: $rsp 0 +
+STACK CFI 6838e .cfa: $rsp 128 +
+STACK CFI 68396 .cfa: $rsp -128 +
+STACK CFI INIT 6839b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 683a5 .cfa: $rsp 0 +
+STACK CFI 683a9 .cfa: $rsp 128 +
+STACK CFI 683b1 .cfa: $rsp -128 +
+STACK CFI INIT 681c0 1a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 681c1 .cfa: $rsp 16 +
+STACK CFI 681c4 $rbp: .cfa -16 + ^
+STACK CFI 681c5 .cfa: $rsp 24 +
+STACK CFI 681c8 $rbx: .cfa -24 + ^
+STACK CFI 681cc .cfa: $rsp 32 +
+STACK CFI INIT 6854a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68554 .cfa: $rsp 0 +
+STACK CFI 68558 .cfa: $rsp 128 +
+STACK CFI 68560 .cfa: $rsp -128 +
+STACK CFI INIT 68565 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6856f .cfa: $rsp 0 +
+STACK CFI 68573 .cfa: $rsp 128 +
+STACK CFI 6857b .cfa: $rsp -128 +
+STACK CFI INIT 68580 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6858a .cfa: $rsp 0 +
+STACK CFI 6858e .cfa: $rsp 128 +
+STACK CFI 68596 .cfa: $rsp -128 +
+STACK CFI INIT 683c0 18a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 683d6 .cfa: $rsp 32 +
+STACK CFI 683db $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 685a0 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 685e0 db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 685ed $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 685fb .cfa: $rsp 48 +
+STACK CFI 685fe $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 686c0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 686d0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 686f0 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 686fe .cfa: $rsp 32 +
+STACK CFI 68708 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 68730 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 68734 .cfa: $rsp 32 +
+STACK CFI INIT 68780 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 687a0 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 687ac $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 687c6 .cfa: $rsp 80 +
+STACK CFI 687ce $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 68860 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6886d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 68876 .cfa: $rsp 64 +
+STACK CFI 68881 $rbp: .cfa -24 + ^
+STACK CFI INIT 68960 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 68ac3 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68acd .cfa: $rsp 0 +
+STACK CFI 68ad1 .cfa: $rsp 128 +
+STACK CFI 68ad9 .cfa: $rsp -128 +
+STACK CFI INIT 68ade 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68ae8 .cfa: $rsp 0 +
+STACK CFI 68aec .cfa: $rsp 128 +
+STACK CFI 68af4 .cfa: $rsp -128 +
+STACK CFI INIT 68af9 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68b03 .cfa: $rsp 0 +
+STACK CFI 68b07 .cfa: $rsp 128 +
+STACK CFI 68b0f .cfa: $rsp -128 +
+STACK CFI INIT 68970 153 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6897d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 68986 .cfa: $rsp 32 +
+STACK CFI 68989 $r12: .cfa -16 + ^
+STACK CFI INIT 68c6d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68c77 .cfa: $rsp 0 +
+STACK CFI 68c7b .cfa: $rsp 128 +
+STACK CFI 68c83 .cfa: $rsp -128 +
+STACK CFI INIT 68c88 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68c92 .cfa: $rsp 0 +
+STACK CFI 68c96 .cfa: $rsp 128 +
+STACK CFI 68c9e .cfa: $rsp -128 +
+STACK CFI INIT 68ca3 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68cad .cfa: $rsp 0 +
+STACK CFI 68cb1 .cfa: $rsp 128 +
+STACK CFI 68cb9 .cfa: $rsp -128 +
+STACK CFI INIT 68b20 14d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 68b28 $r12: .cfa -24 + ^
+STACK CFI 68b3f .cfa: $rsp 48 +
+STACK CFI 68b45 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 68e15 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68e1f .cfa: $rsp 0 +
+STACK CFI 68e23 .cfa: $rsp 128 +
+STACK CFI 68e2b .cfa: $rsp -128 +
+STACK CFI INIT 68e30 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68e3a .cfa: $rsp 0 +
+STACK CFI 68e3e .cfa: $rsp 128 +
+STACK CFI 68e46 .cfa: $rsp -128 +
+STACK CFI INIT 68e4b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68e55 .cfa: $rsp 0 +
+STACK CFI 68e59 .cfa: $rsp 128 +
+STACK CFI 68e61 .cfa: $rsp -128 +
+STACK CFI INIT 68cc0 155 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 68cc1 .cfa: $rsp 16 +
+STACK CFI 68cc4 $rbp: .cfa -16 + ^
+STACK CFI 68cc5 .cfa: $rsp 24 +
+STACK CFI 68cc8 $rbx: .cfa -24 + ^
+STACK CFI 68ccc .cfa: $rsp 32 +
+STACK CFI INIT 68fa8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68fb2 .cfa: $rsp 0 +
+STACK CFI 68fb6 .cfa: $rsp 128 +
+STACK CFI 68fbe .cfa: $rsp -128 +
+STACK CFI INIT 68fc3 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68fcd .cfa: $rsp 0 +
+STACK CFI 68fd1 .cfa: $rsp 128 +
+STACK CFI 68fd9 .cfa: $rsp -128 +
+STACK CFI INIT 68fde 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 68fe8 .cfa: $rsp 0 +
+STACK CFI 68fec .cfa: $rsp 128 +
+STACK CFI 68ff4 .cfa: $rsp -128 +
+STACK CFI INIT 68e70 138 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 68e71 .cfa: $rsp 16 +
+STACK CFI 68e78 $rbx: .cfa -16 + ^
+STACK CFI INIT 6918a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69194 .cfa: $rsp 0 +
+STACK CFI 69198 .cfa: $rsp 128 +
+STACK CFI 691a0 .cfa: $rsp -128 +
+STACK CFI INIT 691a5 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 691af .cfa: $rsp 0 +
+STACK CFI 691b3 .cfa: $rsp 128 +
+STACK CFI 691bb .cfa: $rsp -128 +
+STACK CFI INIT 691bd 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 691c7 .cfa: $rsp 0 +
+STACK CFI 691cb .cfa: $rsp 128 +
+STACK CFI 691d3 .cfa: $rsp -128 +
+STACK CFI INIT 69000 18a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 69008 $r13: .cfa -16 + ^
+STACK CFI 6901f .cfa: $rsp 48 +
+STACK CFI 69025 $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6947c 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69486 .cfa: $rsp 0 +
+STACK CFI 6948a .cfa: $rsp 128 +
+STACK CFI 69492 .cfa: $rsp -128 +
+STACK CFI INIT 69497 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 694a1 .cfa: $rsp 0 +
+STACK CFI 694a5 .cfa: $rsp 128 +
+STACK CFI 694ad .cfa: $rsp -128 +
+STACK CFI INIT 694b2 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 694bc .cfa: $rsp 0 +
+STACK CFI 694c0 .cfa: $rsp 128 +
+STACK CFI 694c8 .cfa: $rsp -128 +
+STACK CFI INIT 691e0 29c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 691e2 .cfa: $rsp 16 +
+STACK CFI 691e4 .cfa: $rsp 24 +
+STACK CFI 691e6 .cfa: $rsp 32 +
+STACK CFI 691e8 .cfa: $rsp 40 +
+STACK CFI 691eb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 691ec .cfa: $rsp 48 +
+STACK CFI 691ed .cfa: $rsp 56 +
+STACK CFI 691f0 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 691f4 .cfa: $rsp 96 +
+STACK CFI INIT 694d0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 694e0 18f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 694e2 .cfa: $rsp 16 +
+STACK CFI 694e4 .cfa: $rsp 24 +
+STACK CFI 694e6 .cfa: $rsp 32 +
+STACK CFI 694e8 .cfa: $rsp 40 +
+STACK CFI 694eb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 694ec .cfa: $rsp 48 +
+STACK CFI 694ef $rbp: .cfa -48 + ^
+STACK CFI 694f0 .cfa: $rsp 56 +
+STACK CFI 694f3 $rbx: .cfa -56 + ^
+STACK CFI 694f7 .cfa: $rsp 96 +
+STACK CFI INIT 69810 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6981a .cfa: $rsp 0 +
+STACK CFI 6981e .cfa: $rsp 128 +
+STACK CFI 69826 .cfa: $rsp -128 +
+STACK CFI INIT 6982b 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69835 .cfa: $rsp 0 +
+STACK CFI 69839 .cfa: $rsp 128 +
+STACK CFI 69841 .cfa: $rsp -128 +
+STACK CFI INIT 69846 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69850 .cfa: $rsp 0 +
+STACK CFI 69854 .cfa: $rsp 128 +
+STACK CFI 6985c .cfa: $rsp -128 +
+STACK CFI INIT 69670 1a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6967d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 69686 .cfa: $rsp 32 +
+STACK CFI 69696 $r12: .cfa -16 + ^
+STACK CFI INIT 69860 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 69862 .cfa: $rsp 16 +
+STACK CFI 69865 $r15: .cfa -16 + ^
+STACK CFI 69867 .cfa: $rsp 24 +
+STACK CFI 6986e $r14: .cfa -24 + ^
+STACK CFI 69870 .cfa: $rsp 32 +
+STACK CFI 69873 $r13: .cfa -32 + ^
+STACK CFI 69875 .cfa: $rsp 40 +
+STACK CFI 69876 .cfa: $rsp 48 +
+STACK CFI 69877 .cfa: $rsp 56 +
+STACK CFI 6987b .cfa: $rsp 80 +
+STACK CFI 69880 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 69fb8 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69fc6 .cfa: $rsp 0 +
+STACK CFI 69fca .cfa: $rsp 128 +
+STACK CFI 69fd2 .cfa: $rsp -128 +
+STACK CFI INIT 69fd7 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 69fe5 .cfa: $rsp 0 +
+STACK CFI 69fe9 .cfa: $rsp 128 +
+STACK CFI 69ff1 .cfa: $rsp -128 +
+STACK CFI INIT 69ff6 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a004 .cfa: $rsp 0 +
+STACK CFI 6a008 .cfa: $rsp 128 +
+STACK CFI 6a010 .cfa: $rsp -128 +
+STACK CFI INIT 6a015 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a023 .cfa: $rsp 0 +
+STACK CFI 6a027 .cfa: $rsp 128 +
+STACK CFI 6a02f .cfa: $rsp -128 +
+STACK CFI INIT 6a034 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a042 .cfa: $rsp 0 +
+STACK CFI 6a046 .cfa: $rsp 128 +
+STACK CFI 6a04e .cfa: $rsp -128 +
+STACK CFI INIT 69920 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 69970 1d1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 69972 .cfa: $rsp 16 +
+STACK CFI 69973 .cfa: $rsp 24 +
+STACK CFI 69974 .cfa: $rsp 32 +
+STACK CFI 69977 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6997b .cfa: $rsp 80 +
+STACK CFI INIT 69b50 3c3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 69b69 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 69b77 .cfa: $rsp 128 +
+STACK CFI 69b87 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI INIT 69f20 98 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 69f2d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 69f3b .cfa: $rsp 32 +
+STACK CFI 69f3e $r12: .cfa -16 + ^
+STACK CFI INIT 6a212 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a21c .cfa: $rsp 0 +
+STACK CFI 6a220 .cfa: $rsp 128 +
+STACK CFI 6a228 .cfa: $rsp -128 +
+STACK CFI INIT 6a22d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a237 .cfa: $rsp 0 +
+STACK CFI 6a23b .cfa: $rsp 128 +
+STACK CFI 6a243 .cfa: $rsp -128 +
+STACK CFI INIT 6a248 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a252 .cfa: $rsp 0 +
+STACK CFI 6a256 .cfa: $rsp 128 +
+STACK CFI 6a25e .cfa: $rsp -128 +
+STACK CFI INIT 6a060 1b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a06d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6a076 $r12: .cfa -16 + ^ .cfa: $rsp 32 +
+STACK CFI INIT 6a434 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a43e .cfa: $rsp 0 +
+STACK CFI 6a442 .cfa: $rsp 128 +
+STACK CFI 6a44a .cfa: $rsp -128 +
+STACK CFI INIT 6a44f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a459 .cfa: $rsp 0 +
+STACK CFI 6a45d .cfa: $rsp 128 +
+STACK CFI 6a465 .cfa: $rsp -128 +
+STACK CFI INIT 6a467 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a471 .cfa: $rsp 0 +
+STACK CFI 6a475 .cfa: $rsp 128 +
+STACK CFI 6a47d .cfa: $rsp -128 +
+STACK CFI INIT 6a260 e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a261 .cfa: $rsp 16 +
+STACK CFI 6a264 $rbx: .cfa -16 + ^
+STACK CFI 6a268 .cfa: $rsp 48 +
+STACK CFI INIT 6a340 f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a341 .cfa: $rsp 16 +
+STACK CFI 6a348 .cfa: $rsp 24 +
+STACK CFI 6a34b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 6a34f .cfa: $rsp 32 +
+STACK CFI INIT 6a5e4 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a5ee .cfa: $rsp 0 +
+STACK CFI 6a5f2 .cfa: $rsp 128 +
+STACK CFI 6a5fa .cfa: $rsp -128 +
+STACK CFI INIT 6a5ff 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a609 .cfa: $rsp 0 +
+STACK CFI 6a60d .cfa: $rsp 128 +
+STACK CFI 6a615 .cfa: $rsp -128 +
+STACK CFI INIT 6a617 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a621 .cfa: $rsp 0 +
+STACK CFI 6a625 .cfa: $rsp 128 +
+STACK CFI 6a62d .cfa: $rsp -128 +
+STACK CFI INIT 6a480 76 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a48d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6a496 .cfa: $rsp 32 +
+STACK CFI 6a4a2 $r12: .cfa -16 + ^
+STACK CFI INIT 6a500 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a501 .cfa: $rsp 16 +
+STACK CFI 6a508 $rbx: .cfa -16 + ^
+STACK CFI INIT 6a772 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a77d .cfa: $rsp 0 +
+STACK CFI 6a781 .cfa: $rsp 128 +
+STACK CFI 6a789 .cfa: $rsp -128 +
+STACK CFI INIT 6a78e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a798 .cfa: $rsp 0 +
+STACK CFI 6a79c .cfa: $rsp 128 +
+STACK CFI 6a7a4 .cfa: $rsp -128 +
+STACK CFI INIT 6a7a9 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a7b3 .cfa: $rsp 0 +
+STACK CFI 6a7b7 .cfa: $rsp 128 +
+STACK CFI 6a7bf .cfa: $rsp -128 +
+STACK CFI INIT 6a630 142 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a63d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6a646 .cfa: $rsp 32 +
+STACK CFI 6a650 $rbp: .cfa -24 + ^
+STACK CFI INIT 6a977 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a981 .cfa: $rsp 0 +
+STACK CFI 6a985 .cfa: $rsp 128 +
+STACK CFI 6a98d .cfa: $rsp -128 +
+STACK CFI INIT 6a992 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a99c .cfa: $rsp 0 +
+STACK CFI 6a9a0 .cfa: $rsp 128 +
+STACK CFI 6a9a8 .cfa: $rsp -128 +
+STACK CFI INIT 6a9ad 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6a9b7 .cfa: $rsp 0 +
+STACK CFI 6a9bb .cfa: $rsp 128 +
+STACK CFI 6a9c3 .cfa: $rsp -128 +
+STACK CFI INIT 6a7d0 1a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a7d1 .cfa: $rsp 16 +
+STACK CFI 6a7d8 .cfa: $rsp 24 +
+STACK CFI 6a7db $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 6a7df .cfa: $rsp 32 +
+STACK CFI INIT 6aa73 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6aa7d .cfa: $rsp 0 +
+STACK CFI 6aa81 .cfa: $rsp 128 +
+STACK CFI 6aa89 .cfa: $rsp -128 +
+STACK CFI INIT 6aa8b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6aa95 .cfa: $rsp 0 +
+STACK CFI 6aa99 .cfa: $rsp 128 +
+STACK CFI 6aaa1 .cfa: $rsp -128 +
+STACK CFI INIT 6a9d0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6a9d4 .cfa: $rsp 16 +
+STACK CFI 6a9d9 $rbx: .cfa -16 + ^
+STACK CFI INIT 6aab0 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6aabd $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 6aace .cfa: $rsp 288 +
+STACK CFI 6aad9 $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6ab70 9d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ab8e .cfa: $rsp 288 +
+STACK CFI 6ab91 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6ad1e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6ad28 .cfa: $rsp 0 +
+STACK CFI 6ad2c .cfa: $rsp 128 +
+STACK CFI 6ad34 .cfa: $rsp -128 +
+STACK CFI INIT 6ad39 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6ad43 .cfa: $rsp 0 +
+STACK CFI 6ad47 .cfa: $rsp 128 +
+STACK CFI 6ad4f .cfa: $rsp -128 +
+STACK CFI INIT 6ad54 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6ad5e .cfa: $rsp 0 +
+STACK CFI 6ad62 .cfa: $rsp 128 +
+STACK CFI 6ad6a .cfa: $rsp -128 +
+STACK CFI INIT 6ac10 10e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ac18 .cfa: $rsp 16 +
+STACK CFI 6ac22 $rbx: .cfa -16 + ^
+STACK CFI INIT 6ad70 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6ada0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6adc0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6add0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6ade0 d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6aded $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6adfa $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI 6ae03 .cfa: $rsp 80 +
+STACK CFI 6ae0b $r12: .cfa -32 + ^
+STACK CFI INIT 6aec0 be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6aecd $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6aedb .cfa: $rsp 80 +
+STACK CFI 6aee2 $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 6af80 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6af8d $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6af9a $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI 6afa3 .cfa: $rsp 80 +
+STACK CFI 6afb1 $r12: .cfa -32 + ^
+STACK CFI INIT 6b070 b8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6b071 .cfa: $rsp 16 +
+STACK CFI 6b078 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 6b083 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 6b0a2 $r12: .cfa -48 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 6b130 272 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6b14a .cfa: $rsp 80 +
+STACK CFI 6b150 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6b43d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b447 .cfa: $rsp 0 +
+STACK CFI 6b44b .cfa: $rsp 128 +
+STACK CFI 6b453 .cfa: $rsp -128 +
+STACK CFI INIT 6b455 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b45f .cfa: $rsp 0 +
+STACK CFI 6b463 .cfa: $rsp 128 +
+STACK CFI 6b46b .cfa: $rsp -128 +
+STACK CFI INIT 6b3b0 8d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6b509 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b513 .cfa: $rsp 0 +
+STACK CFI 6b517 .cfa: $rsp 128 +
+STACK CFI 6b51f .cfa: $rsp -128 +
+STACK CFI INIT 6b521 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b52b .cfa: $rsp 0 +
+STACK CFI 6b52f .cfa: $rsp 128 +
+STACK CFI 6b537 .cfa: $rsp -128 +
+STACK CFI INIT 6b470 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6b5d9 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b5e3 .cfa: $rsp 0 +
+STACK CFI 6b5e7 .cfa: $rsp 128 +
+STACK CFI 6b5ef .cfa: $rsp -128 +
+STACK CFI INIT 6b5f1 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b5fb .cfa: $rsp 0 +
+STACK CFI 6b5ff .cfa: $rsp 128 +
+STACK CFI 6b607 .cfa: $rsp -128 +
+STACK CFI INIT 6b540 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6b610 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6b73d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b747 .cfa: $rsp 0 +
+STACK CFI 6b74b .cfa: $rsp 128 +
+STACK CFI 6b753 .cfa: $rsp -128 +
+STACK CFI INIT 6b758 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b762 .cfa: $rsp 0 +
+STACK CFI 6b766 .cfa: $rsp 128 +
+STACK CFI 6b76e .cfa: $rsp -128 +
+STACK CFI INIT 6b773 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b77d .cfa: $rsp 0 +
+STACK CFI 6b781 .cfa: $rsp 128 +
+STACK CFI 6b789 .cfa: $rsp -128 +
+STACK CFI INIT 6b640 fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6b641 .cfa: $rsp 16 +
+STACK CFI 6b64b $rbx: .cfa -16 + ^
+STACK CFI INIT 6b9ee 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6b9f8 .cfa: $rsp 0 +
+STACK CFI 6b9fc .cfa: $rsp 128 +
+STACK CFI 6ba04 .cfa: $rsp -128 +
+STACK CFI INIT 6ba09 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6ba13 .cfa: $rsp 0 +
+STACK CFI 6ba17 .cfa: $rsp 128 +
+STACK CFI 6ba1f .cfa: $rsp -128 +
+STACK CFI INIT 6ba24 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6ba2e .cfa: $rsp 0 +
+STACK CFI 6ba32 .cfa: $rsp 128 +
+STACK CFI 6ba3a .cfa: $rsp -128 +
+STACK CFI INIT 6b790 25e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6b79c $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6b7b5 .cfa: $rsp 192 +
+STACK CFI 6b7ba $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 6bb2e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bb38 .cfa: $rsp 0 +
+STACK CFI 6bb3c .cfa: $rsp 128 +
+STACK CFI 6bb44 .cfa: $rsp -128 +
+STACK CFI INIT 6bb49 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bb53 .cfa: $rsp 0 +
+STACK CFI 6bb57 .cfa: $rsp 128 +
+STACK CFI 6bb5f .cfa: $rsp -128 +
+STACK CFI INIT 6bb61 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bb6b .cfa: $rsp 0 +
+STACK CFI 6bb6f .cfa: $rsp 128 +
+STACK CFI 6bb77 .cfa: $rsp -128 +
+STACK CFI INIT 6ba40 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ba41 .cfa: $rsp 16 +
+STACK CFI 6ba48 $rbx: .cfa -16 + ^
+STACK CFI INIT 6bc70 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bc7a .cfa: $rsp 0 +
+STACK CFI 6bc7e .cfa: $rsp 128 +
+STACK CFI 6bc86 .cfa: $rsp -128 +
+STACK CFI INIT 6bc8b 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bc95 .cfa: $rsp 0 +
+STACK CFI 6bc99 .cfa: $rsp 128 +
+STACK CFI 6bca1 .cfa: $rsp -128 +
+STACK CFI INIT 6bca6 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bcb0 .cfa: $rsp 0 +
+STACK CFI 6bcb4 .cfa: $rsp 128 +
+STACK CFI 6bcbc .cfa: $rsp -128 +
+STACK CFI INIT 6bb80 f0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6bb81 .cfa: $rsp 16 +
+STACK CFI 6bb88 $rbx: .cfa -16 + ^
+STACK CFI INIT 6bdc1 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bdcb .cfa: $rsp 0 +
+STACK CFI 6bdcf .cfa: $rsp 128 +
+STACK CFI 6bdd7 .cfa: $rsp -128 +
+STACK CFI INIT 6bddc 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6bde6 .cfa: $rsp 0 +
+STACK CFI 6bdea .cfa: $rsp 128 +
+STACK CFI 6bdf2 .cfa: $rsp -128 +
+STACK CFI INIT 6bdf7 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6be01 .cfa: $rsp 0 +
+STACK CFI 6be05 .cfa: $rsp 128 +
+STACK CFI 6be0d .cfa: $rsp -128 +
+STACK CFI INIT 6bcc0 101 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6bcc8 .cfa: $rsp 16 +
+STACK CFI 6bccf $rbx: .cfa -16 + ^
+STACK CFI INIT 6be10 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6be1d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6be30 .cfa: $rsp 64 +
+STACK CFI 6be33 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 6bf00 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6bf09 .cfa: $rsp 16 +
+STACK CFI 6bf0c $rbx: .cfa -16 + ^
+STACK CFI INIT 6bf50 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6bf51 .cfa: $rsp 16 +
+STACK CFI 6bf52 .cfa: $rsp 24 +
+STACK CFI 6bf55 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 6bf59 .cfa: $rsp 32 +
+STACK CFI INIT 6bfc0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6c0cd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c0d7 .cfa: $rsp 0 +
+STACK CFI 6c0db .cfa: $rsp 128 +
+STACK CFI 6c0e3 .cfa: $rsp -128 +
+STACK CFI INIT 6c0e8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c0f2 .cfa: $rsp 0 +
+STACK CFI 6c0f6 .cfa: $rsp 128 +
+STACK CFI 6c0fe .cfa: $rsp -128 +
+STACK CFI INIT 6c103 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c10d .cfa: $rsp 0 +
+STACK CFI 6c111 .cfa: $rsp 128 +
+STACK CFI 6c119 .cfa: $rsp -128 +
+STACK CFI INIT 6bfd0 fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6bfd1 .cfa: $rsp 16 +
+STACK CFI 6bfdb $rbx: .cfa -16 + ^
+STACK CFI INIT 6c204 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c20e .cfa: $rsp 0 +
+STACK CFI 6c212 .cfa: $rsp 128 +
+STACK CFI 6c21a .cfa: $rsp -128 +
+STACK CFI INIT 6c21f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c229 .cfa: $rsp 0 +
+STACK CFI 6c22d .cfa: $rsp 128 +
+STACK CFI 6c235 .cfa: $rsp -128 +
+STACK CFI INIT 6c237 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6c241 .cfa: $rsp 0 +
+STACK CFI 6c245 .cfa: $rsp 128 +
+STACK CFI 6c24d .cfa: $rsp -128 +
+STACK CFI INIT 6c120 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c121 .cfa: $rsp 16 +
+STACK CFI 6c128 $rbx: .cfa -16 + ^
+STACK CFI INIT 6c250 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6c260 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6c270 187 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c27d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6c298 .cfa: $rsp 288 +
+STACK CFI 6c29e $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 6c400 152 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c422 .cfa: $rsp 608 +
+STACK CFI 6c42a $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6c560 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6c580 7a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c591 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6c59f .cfa: $rsp 48 +
+STACK CFI 6c5a9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 6c600 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c60d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6c61a $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 6c626 .cfa: $rsp 352 +
+STACK CFI 6c630 $r14: .cfa -16 + ^
+STACK CFI INIT 6c6f0 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c6fd $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI 6c713 .cfa: $rsp 48 +
+STACK CFI 6c71a $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 6c7d0 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c7dd $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 6c7e6 .cfa: $rsp 32 +
+STACK CFI 6c7f3 $rbx: .cfa -32 + ^
+STACK CFI INIT 6c880 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6c88d $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6c8aa .cfa: $rsp 304 +
+STACK CFI 6c8b3 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT 6ca40 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ca47 .cfa: $rsp 224 +
+STACK CFI INIT 6cad0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6cbce 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cbd8 .cfa: $rsp 0 +
+STACK CFI 6cbdc .cfa: $rsp 128 +
+STACK CFI 6cbe4 .cfa: $rsp -128 +
+STACK CFI INIT 6cbe9 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cbf3 .cfa: $rsp 0 +
+STACK CFI 6cbf7 .cfa: $rsp 128 +
+STACK CFI 6cbff .cfa: $rsp -128 +
+STACK CFI INIT 6cc01 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cc0b .cfa: $rsp 0 +
+STACK CFI 6cc0f .cfa: $rsp 128 +
+STACK CFI 6cc17 .cfa: $rsp -128 +
+STACK CFI INIT 6cae0 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6cae1 .cfa: $rsp 16 +
+STACK CFI 6cae8 $rbx: .cfa -16 + ^
+STACK CFI INIT 6cd58 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cd62 .cfa: $rsp 0 +
+STACK CFI 6cd66 .cfa: $rsp 128 +
+STACK CFI 6cd6e .cfa: $rsp -128 +
+STACK CFI INIT 6cd73 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cd7d .cfa: $rsp 0 +
+STACK CFI 6cd81 .cfa: $rsp 128 +
+STACK CFI 6cd89 .cfa: $rsp -128 +
+STACK CFI INIT 6cd8e 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6cd98 .cfa: $rsp 0 +
+STACK CFI 6cd9c .cfa: $rsp 128 +
+STACK CFI 6cda4 .cfa: $rsp -128 +
+STACK CFI INIT 6cc20 138 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6cc21 .cfa: $rsp 16 +
+STACK CFI 6cc28 $rbx: .cfa -16 + ^
+STACK CFI INIT 6d00e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6d018 .cfa: $rsp 0 +
+STACK CFI 6d01c .cfa: $rsp 128 +
+STACK CFI 6d024 .cfa: $rsp -128 +
+STACK CFI INIT 6d029 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6d033 .cfa: $rsp 0 +
+STACK CFI 6d037 .cfa: $rsp 128 +
+STACK CFI 6d03f .cfa: $rsp -128 +
+STACK CFI INIT 6d044 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6d04e .cfa: $rsp 0 +
+STACK CFI 6d052 .cfa: $rsp 128 +
+STACK CFI 6d05a .cfa: $rsp -128 +
+STACK CFI INIT 6cdb0 25e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6cdbc $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6cdd5 .cfa: $rsp 192 +
+STACK CFI 6cdda $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 6d060 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d090 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d0c0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d0d0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d0e0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d0f0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d100 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d107 .cfa: $rsp 16 +
+STACK CFI 6d10a $rbx: .cfa -16 + ^
+STACK CFI INIT 6d170 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d1a0 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d1d0 412 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d1d1 .cfa: $rsp 16 +
+STACK CFI 6d1d7 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 6d2a3 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 6d5f0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d5f1 .cfa: $rsp 16 +
+STACK CFI 6d5f4 $rbx: .cfa -16 + ^
+STACK CFI INIT 6d610 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d680 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d681 .cfa: $rsp 16 +
+STACK CFI 6d687 $rbx: .cfa -16 + ^
+STACK CFI INIT 6d6a0 198 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d6ad $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6d6bb .cfa: $rsp 112 +
+STACK CFI 6d6c4 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 6d840 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d84d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6d856 .cfa: $rsp 32 +
+STACK CFI 6d860 $r12: .cfa -16 + ^
+STACK CFI INIT 6d910 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6d911 .cfa: $rsp 16 +
+STACK CFI 6d914 $rbp: .cfa -16 + ^
+STACK CFI 6d915 .cfa: $rsp 24 +
+STACK CFI 6d918 $rbx: .cfa -24 + ^
+STACK CFI 6d91f .cfa: $rsp 32 +
+STACK CFI INIT 6d970 4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d980 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d990 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d9a0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d9d0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6d9f0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6da20 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6da24 .cfa: $rsp 16 +
+STACK CFI INIT 6da50 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6db71 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6db7b .cfa: $rsp 0 +
+STACK CFI 6db7f .cfa: $rsp 128 +
+STACK CFI 6db87 .cfa: $rsp -128 +
+STACK CFI INIT 6db8c 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6db96 .cfa: $rsp 0 +
+STACK CFI 6db9a .cfa: $rsp 128 +
+STACK CFI 6dba2 .cfa: $rsp -128 +
+STACK CFI INIT 6dba7 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 6dbb1 .cfa: $rsp 0 +
+STACK CFI 6dbb5 .cfa: $rsp 128 +
+STACK CFI 6dbbd .cfa: $rsp -128 +
+STACK CFI INIT 6da80 f1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6da81 .cfa: $rsp 16 +
+STACK CFI 6da88 $rbx: .cfa -16 + ^
+STACK CFI INIT 6dbc0 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6dbc8 $r12: .cfa -16 + ^
+STACK CFI 6dbda .cfa: $rsp 32 +
+STACK CFI 6dbdd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 6dc20 92 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6dc28 $r12: .cfa -16 + ^
+STACK CFI 6dc3a .cfa: $rsp 32 +
+STACK CFI 6dc3d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 6dcc0 b1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6dccd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6dcd6 .cfa: $rsp 32 +
+STACK CFI 6dce1 $r12: .cfa -16 + ^
+STACK CFI INIT 6dd80 77 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6dd8d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 6dd96 .cfa: $rsp 32 +
+STACK CFI 6dd99 $r12: .cfa -16 + ^
+STACK CFI INIT 6de00 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6de01 .cfa: $rsp 16 +
+STACK CFI 6de04 $rbp: .cfa -16 + ^
+STACK CFI 6de05 .cfa: $rsp 24 +
+STACK CFI 6de09 .cfa: $rsp 32 +
+STACK CFI 6de12 $rbx: .cfa -24 + ^
+STACK CFI INIT 6de90 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6de92 .cfa: $rsp 16 +
+STACK CFI 6de95 $r15: .cfa -16 + ^
+STACK CFI 6de97 .cfa: $rsp 24 +
+STACK CFI 6de9e $r14: .cfa -24 + ^
+STACK CFI 6dea0 .cfa: $rsp 32 +
+STACK CFI 6dea3 $r13: .cfa -32 + ^
+STACK CFI 6dea5 .cfa: $rsp 40 +
+STACK CFI 6dea6 .cfa: $rsp 48 +
+STACK CFI 6dea7 .cfa: $rsp 56 +
+STACK CFI 6deab .cfa: $rsp 128 +
+STACK CFI 6deb0 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 6df50 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6df57 .cfa: $rsp 224 +
+STACK CFI INIT 6dfe0 80 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6dff1 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6dfff .cfa: $rsp 48 +
+STACK CFI 6e00c $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 6e060 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e06d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 6e086 .cfa: $rsp 880 +
+STACK CFI 6e08c $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 6e160 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e182 .cfa: $rsp 624 +
+STACK CFI 6e18a $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 6e210 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e217 .cfa: $rsp 224 +
+STACK CFI INIT 6e2a0 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e2e0 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e320 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e360 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e368 .cfa: $rsp 16 +
+STACK CFI 6e36b $rbx: .cfa -16 + ^
+STACK CFI INIT 6e390 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e391 .cfa: $rsp 16 +
+STACK CFI 6e39b $rbx: .cfa -16 + ^
+STACK CFI INIT 6e3e0 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e3e8 .cfa: $rsp 16 +
+STACK CFI 6e3eb $rbx: .cfa -16 + ^
+STACK CFI INIT 6e460 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e461 .cfa: $rsp 16 +
+STACK CFI 6e46b $rbx: .cfa -16 + ^
+STACK CFI INIT 6e4b0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e4b8 .cfa: $rsp 16 +
+STACK CFI 6e4bb $rbx: .cfa -16 + ^
+STACK CFI INIT 6e500 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e550 76 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e551 .cfa: $rsp 16 +
+STACK CFI 6e554 $rbx: .cfa -16 + ^
+STACK CFI 6e558 .cfa: $rsp 32 +
+STACK CFI INIT 6e5d0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e620 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e621 .cfa: $rsp 16 +
+STACK CFI 6e62a .cfa: $rsp 32 +
+STACK CFI 6e62e $rbx: .cfa -16 + ^
+STACK CFI INIT 6e6c0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6e6f0 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e6f1 .cfa: $rsp 16 +
+STACK CFI 6e6f6 $rbx: .cfa -16 + ^
+STACK CFI INIT 6e740 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e741 .cfa: $rsp 16 +
+STACK CFI 6e74c $rbx: .cfa -16 + ^
+STACK CFI INIT 6e790 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e79e .cfa: $rsp 32 +
+STACK CFI 6e7a7 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 6e7e0 e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e7e2 .cfa: $rsp 16 +
+STACK CFI 6e7e7 $r15: .cfa -16 + ^
+STACK CFI 6e7e9 .cfa: $rsp 24 +
+STACK CFI 6e7ec $r14: .cfa -24 + ^
+STACK CFI 6e7ee .cfa: $rsp 32 +
+STACK CFI 6e7f0 .cfa: $rsp 40 +
+STACK CFI 6e7f1 .cfa: $rsp 48 +
+STACK CFI 6e7f4 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 6e7f5 .cfa: $rsp 56 +
+STACK CFI 6e7f8 $rbx: .cfa -56 + ^
+STACK CFI 6e7fc .cfa: $rsp 64 +
+STACK CFI INIT 6e8d0 20d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6e8dd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6e8f8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 80 +
+STACK CFI INIT 6eae0 10a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6eae1 .cfa: $rsp 16 +
+STACK CFI 6eaeb $rbx: .cfa -16 + ^
+STACK CFI INIT 6ebf0 c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ebf2 .cfa: $rsp 16 +
+STACK CFI 6ebf5 $r14: .cfa -16 + ^
+STACK CFI 6ebf7 .cfa: $rsp 24 +
+STACK CFI 6ebf9 .cfa: $rsp 32 +
+STACK CFI 6ebfc $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 6ebfd .cfa: $rsp 40 +
+STACK CFI 6ec00 $rbp: .cfa -40 + ^
+STACK CFI 6ec01 .cfa: $rsp 48 +
+STACK CFI 6ec04 $rbx: .cfa -48 + ^
+STACK CFI INIT 6ecc0 11a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ecc1 .cfa: $rsp 16 +
+STACK CFI 6eccb $rbx: .cfa -16 + ^
+STACK CFI INIT 6ede0 199 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6edec $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6ee07 .cfa: $rsp 64 +
+STACK CFI 6ee1a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 6ef80 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6ef8e .cfa: $rsp 48 +
+STACK CFI 6ef98 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 6f030 98 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f031 .cfa: $rsp 16 +
+STACK CFI 6f03b $rbx: .cfa -16 + ^
+STACK CFI INIT 6f0d0 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6f120 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6f140 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f141 .cfa: $rsp 16 +
+STACK CFI 6f14b $rbx: .cfa -16 + ^
+STACK CFI INIT 6f180 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 6f1a0 243 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f1b9 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6f1c7 .cfa: $rsp 96 +
+STACK CFI 6f1da $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 6f3f0 1e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f3fd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6f40b .cfa: $rsp 64 +
+STACK CFI 6f413 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 6f5d0 1ef .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f5dc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6f5e9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 6f5f7 .cfa: $rsp 80 +
+STACK CFI 6f607 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 6f7c0 be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f7cd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 6f7db .cfa: $rsp 48 +
+STACK CFI 6f7e4 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 70bbe 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70bc8 .cfa: $rsp 0 +
+STACK CFI 70bcc .cfa: $rsp 128 +
+STACK CFI 70bd4 .cfa: $rsp -128 +
+STACK CFI INIT 70bd9 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70be3 .cfa: $rsp 0 +
+STACK CFI 70be7 .cfa: $rsp 128 +
+STACK CFI 70bef .cfa: $rsp -128 +
+STACK CFI INIT 70bf4 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70bfe .cfa: $rsp 0 +
+STACK CFI 70c02 .cfa: $rsp 128 +
+STACK CFI 70c0a .cfa: $rsp -128 +
+STACK CFI INIT 6f880 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f881 .cfa: $rsp 16 +
+STACK CFI 6f884 $rbx: .cfa -16 + ^
+STACK CFI INIT 6f8c0 145 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6f8c1 .cfa: $rsp 16 +
+STACK CFI 6f8c2 .cfa: $rsp 24 +
+STACK CFI 6f8c5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 6f8c9 .cfa: $rsp 64 +
+STACK CFI INIT 6fa10 198 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6fa29 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6fa37 .cfa: $rsp 64 +
+STACK CFI 6fa42 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 6fbb0 4ec .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 6fbbd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 6fbca $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 6fbdb .cfa: $rsp 208 +
+STACK CFI 6fbe5 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 700a0 15a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 700ad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 700b6 .cfa: $rsp 32 +
+STACK CFI 700ca $r12: .cfa -16 + ^
+STACK CFI INIT 70200 272 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70201 .cfa: $rsp 16 +
+STACK CFI 70203 $rbp: .cfa -16 + ^
+STACK CFI 70204 .cfa: $rsp 24 +
+STACK CFI 70207 $rbx: .cfa -24 + ^
+STACK CFI 7020b .cfa: $rsp 32 +
+STACK CFI INIT 70480 5d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70482 .cfa: $rsp 16 +
+STACK CFI 70484 .cfa: $rsp 24 +
+STACK CFI 70486 .cfa: $rsp 32 +
+STACK CFI 70488 .cfa: $rsp 40 +
+STACK CFI 70489 .cfa: $rsp 48 +
+STACK CFI 7048a .cfa: $rsp 56 +
+STACK CFI 7048d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 70491 .cfa: $rsp 128 +
+STACK CFI INIT 70a60 15e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70a6d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 70a7a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 70a88 .cfa: $rsp 112 +
+STACK CFI 70a9b $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 70c10 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70c1d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 70c2a $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 70c2e .cfa: $rsp 48 +
+STACK CFI INIT 70d00 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70d08 .cfa: $rsp 16 +
+STACK CFI 70d0b $rbx: .cfa -16 + ^
+STACK CFI INIT 70d60 82 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70d61 .cfa: $rsp 16 +
+STACK CFI 70d62 .cfa: $rsp 24 +
+STACK CFI 70d65 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 70d69 .cfa: $rsp 32 +
+STACK CFI INIT 70f16 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70f20 .cfa: $rsp 0 +
+STACK CFI 70f24 .cfa: $rsp 128 +
+STACK CFI 70f2c .cfa: $rsp -128 +
+STACK CFI INIT 70f31 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70f3b .cfa: $rsp 0 +
+STACK CFI 70f3f .cfa: $rsp 128 +
+STACK CFI 70f47 .cfa: $rsp -128 +
+STACK CFI INIT 70f4c 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 70f56 .cfa: $rsp 0 +
+STACK CFI 70f5a .cfa: $rsp 128 +
+STACK CFI 70f62 .cfa: $rsp -128 +
+STACK CFI INIT 70df0 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70df1 .cfa: $rsp 16 +
+STACK CFI 70df3 $rbp: .cfa -16 + ^
+STACK CFI 70df4 .cfa: $rsp 24 +
+STACK CFI 70df7 $rbx: .cfa -24 + ^
+STACK CFI 70dfb .cfa: $rsp 32 +
+STACK CFI INIT 70f70 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70f78 $rbx: .cfa -24 + ^
+STACK CFI 70f86 .cfa: $rsp 32 +
+STACK CFI 70f88 $rbp: .cfa -16 + ^
+STACK CFI INIT 710e9 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 710f3 .cfa: $rsp 0 +
+STACK CFI 710f7 .cfa: $rsp 128 +
+STACK CFI 710ff .cfa: $rsp -128 +
+STACK CFI INIT 71104 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7110e .cfa: $rsp 0 +
+STACK CFI 71112 .cfa: $rsp 128 +
+STACK CFI 7111a .cfa: $rsp -128 +
+STACK CFI INIT 7111f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71129 .cfa: $rsp 0 +
+STACK CFI 7112d .cfa: $rsp 128 +
+STACK CFI 71135 .cfa: $rsp -128 +
+STACK CFI INIT 70ff0 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 70ff1 .cfa: $rsp 16 +
+STACK CFI 70ff8 $rbx: .cfa -16 + ^
+STACK CFI INIT 71140 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7127a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71284 .cfa: $rsp 0 +
+STACK CFI 71288 .cfa: $rsp 128 +
+STACK CFI 71290 .cfa: $rsp -128 +
+STACK CFI INIT 71295 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7129f .cfa: $rsp 0 +
+STACK CFI 712a3 .cfa: $rsp 128 +
+STACK CFI 712ab .cfa: $rsp -128 +
+STACK CFI INIT 712b0 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 712ba .cfa: $rsp 0 +
+STACK CFI 712be .cfa: $rsp 128 +
+STACK CFI 712c6 .cfa: $rsp -128 +
+STACK CFI INIT 71170 10a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71178 .cfa: $rsp 16 +
+STACK CFI 7117f $rbx: .cfa -16 + ^
+STACK CFI INIT 712d0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7148d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71497 .cfa: $rsp 0 +
+STACK CFI 7149b .cfa: $rsp 128 +
+STACK CFI 714a3 .cfa: $rsp -128 +
+STACK CFI INIT 714a8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 714b2 .cfa: $rsp 0 +
+STACK CFI 714b6 .cfa: $rsp 128 +
+STACK CFI 714be .cfa: $rsp -128 +
+STACK CFI INIT 714c3 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 714cd .cfa: $rsp 0 +
+STACK CFI 714d1 .cfa: $rsp 128 +
+STACK CFI 714d9 .cfa: $rsp -128 +
+STACK CFI INIT 71300 18d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71316 .cfa: $rsp 32 +
+STACK CFI 7131b $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 714e0 b4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 714ed $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 714f6 .cfa: $rsp 32 +
+STACK CFI 71501 $r12: .cfa -16 + ^
+STACK CFI INIT 716e0 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 716ea .cfa: $rsp 0 +
+STACK CFI 716ee .cfa: $rsp 128 +
+STACK CFI 716f6 .cfa: $rsp -128 +
+STACK CFI INIT 716fb 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71705 .cfa: $rsp 0 +
+STACK CFI 71709 .cfa: $rsp 128 +
+STACK CFI 71711 .cfa: $rsp -128 +
+STACK CFI INIT 71716 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71720 .cfa: $rsp 0 +
+STACK CFI 71724 .cfa: $rsp 128 +
+STACK CFI 7172c .cfa: $rsp -128 +
+STACK CFI INIT 715a0 140 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 715ad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 715b6 .cfa: $rsp 32 +
+STACK CFI 715b9 $r12: .cfa -16 + ^
+STACK CFI INIT 71730 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7173d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 71746 .cfa: $rsp 32 +
+STACK CFI 71749 $r12: .cfa -16 + ^
+STACK CFI INIT 717a0 1d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 717a2 .cfa: $rsp 16 +
+STACK CFI 717a4 .cfa: $rsp 24 +
+STACK CFI 717a6 .cfa: $rsp 32 +
+STACK CFI 717a8 .cfa: $rsp 40 +
+STACK CFI 717ab $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 717ac .cfa: $rsp 48 +
+STACK CFI 717af $rbp: .cfa -48 + ^
+STACK CFI 717b0 .cfa: $rsp 56 +
+STACK CFI 717b3 $rbx: .cfa -56 + ^
+STACK CFI 717b7 .cfa: $rsp 96 +
+STACK CFI INIT 71970 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 71a32 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71a3c .cfa: $rsp 0 +
+STACK CFI 71a40 .cfa: $rsp 128 +
+STACK CFI 71a48 .cfa: $rsp -128 +
+STACK CFI INIT 71a4d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71a57 .cfa: $rsp 0 +
+STACK CFI 71a5b .cfa: $rsp 128 +
+STACK CFI 71a63 .cfa: $rsp -128 +
+STACK CFI INIT 71980 b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71981 .cfa: $rsp 16 +
+STACK CFI 71983 $rbp: .cfa -16 + ^
+STACK CFI 71984 .cfa: $rsp 24 +
+STACK CFI 71987 $rbx: .cfa -24 + ^
+STACK CFI 7198b .cfa: $rsp 32 +
+STACK CFI INIT 71b74 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71b7e .cfa: $rsp 0 +
+STACK CFI 71b82 .cfa: $rsp 128 +
+STACK CFI 71b8a .cfa: $rsp -128 +
+STACK CFI INIT 71b8f 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71b99 .cfa: $rsp 0 +
+STACK CFI 71b9d .cfa: $rsp 128 +
+STACK CFI 71ba5 .cfa: $rsp -128 +
+STACK CFI INIT 71baa 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71bb4 .cfa: $rsp 0 +
+STACK CFI 71bb8 .cfa: $rsp 128 +
+STACK CFI 71bc0 .cfa: $rsp -128 +
+STACK CFI INIT 71a70 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71a71 .cfa: $rsp 16 +
+STACK CFI 71a7b $rbx: .cfa -16 + ^
+STACK CFI INIT 71bd0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 71d15 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71d1f .cfa: $rsp 0 +
+STACK CFI 71d23 .cfa: $rsp 128 +
+STACK CFI 71d2b .cfa: $rsp -128 +
+STACK CFI INIT 71d30 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71d3a .cfa: $rsp 0 +
+STACK CFI 71d3e .cfa: $rsp 128 +
+STACK CFI 71d46 .cfa: $rsp -128 +
+STACK CFI INIT 71d4b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 71d55 .cfa: $rsp 0 +
+STACK CFI 71d59 .cfa: $rsp 128 +
+STACK CFI 71d61 .cfa: $rsp -128 +
+STACK CFI INIT 71c00 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71c08 .cfa: $rsp 16 +
+STACK CFI 71c12 $rbx: .cfa -16 + ^
+STACK CFI INIT 71d70 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 71db0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71db7 .cfa: $rsp 224 +
+STACK CFI INIT 71e40 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 71e60 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71e67 .cfa: $rsp 224 +
+STACK CFI INIT 71f10 a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71f17 .cfa: $rsp 224 +
+STACK CFI INIT 71fc0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 71fc7 .cfa: $rsp 224 +
+STACK CFI INIT 72050 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 72167 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 72171 .cfa: $rsp 0 +
+STACK CFI 72175 .cfa: $rsp 128 +
+STACK CFI 7217d .cfa: $rsp -128 +
+STACK CFI INIT 72182 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7218c .cfa: $rsp 0 +
+STACK CFI 72190 .cfa: $rsp 128 +
+STACK CFI 72198 .cfa: $rsp -128 +
+STACK CFI INIT 72070 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72074 .cfa: $rsp 16 +
+STACK CFI 7207c $rbx: .cfa -16 + ^
+STACK CFI INIT 74077 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 74081 .cfa: $rsp 0 +
+STACK CFI 74085 .cfa: $rsp 128 +
+STACK CFI 7408d .cfa: $rsp -128 +
+STACK CFI INIT 74092 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7409c .cfa: $rsp 0 +
+STACK CFI 740a0 .cfa: $rsp 128 +
+STACK CFI 740a8 .cfa: $rsp -128 +
+STACK CFI INIT 740ad 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 740b7 .cfa: $rsp 0 +
+STACK CFI 740bb .cfa: $rsp 128 +
+STACK CFI 740c3 .cfa: $rsp -128 +
+STACK CFI INIT 721a0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 721ad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 721b6 .cfa: $rsp 32 +
+STACK CFI 721bc $r12: .cfa -16 + ^
+STACK CFI INIT 72230 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72231 .cfa: $rsp 16 +
+STACK CFI 72234 $rbp: .cfa -16 + ^
+STACK CFI 72235 .cfa: $rsp 24 +
+STACK CFI 72238 $rbx: .cfa -24 + ^
+STACK CFI 7223c .cfa: $rsp 32 +
+STACK CFI INIT 72330 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72338 .cfa: $rsp 16 +
+STACK CFI 7233b $rbx: .cfa -16 + ^
+STACK CFI INIT 72360 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72361 .cfa: $rsp 16 +
+STACK CFI 72368 $rbx: .cfa -16 + ^
+STACK CFI INIT 723c0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 723d0 153 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 723e1 .cfa: $rsp 176 +
+STACK CFI 723eb $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 72530 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7253d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 72546 .cfa: $rsp 32 +
+STACK CFI 7254c $r12: .cfa -16 + ^
+STACK CFI INIT 72580 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72581 .cfa: $rsp 16 +
+STACK CFI 72584 $rbx: .cfa -16 + ^
+STACK CFI INIT 725a0 1be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 725a1 .cfa: $rsp 16 +
+STACK CFI 725a2 .cfa: $rsp 24 +
+STACK CFI 725a5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 725ac .cfa: $rsp 176 +
+STACK CFI INIT 72760 116 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7276d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 72788 .cfa: $rsp 64 +
+STACK CFI 7278c $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 72880 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72881 .cfa: $rsp 16 +
+STACK CFI 72888 $rbx: .cfa -16 + ^
+STACK CFI INIT 728d0 1a9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 728d2 .cfa: $rsp 16 +
+STACK CFI 728d5 $r14: .cfa -16 + ^
+STACK CFI 728d7 .cfa: $rsp 24 +
+STACK CFI 728da $r13: .cfa -24 + ^
+STACK CFI 728dc .cfa: $rsp 32 +
+STACK CFI 728dd .cfa: $rsp 40 +
+STACK CFI 728de .cfa: $rsp 48 +
+STACK CFI 728e6 $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 72a80 131 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72a8d $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI 72a9b .cfa: $rsp 48 +
+STACK CFI 72aa3 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 72bc0 217 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72bd9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 72be7 .cfa: $rsp 64 +
+STACK CFI 72bf6 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 72de0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72de4 .cfa: $rsp 16 +
+STACK CFI 72de7 $rbx: .cfa -16 + ^
+STACK CFI INIT 72e10 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72e12 .cfa: $rsp 16 +
+STACK CFI 72e17 $r13: .cfa -16 + ^
+STACK CFI 72e19 .cfa: $rsp 24 +
+STACK CFI 72e1c $r12: .cfa -24 + ^
+STACK CFI 72e1d .cfa: $rsp 32 +
+STACK CFI 72e20 $rbp: .cfa -32 + ^
+STACK CFI 72e21 .cfa: $rsp 40 +
+STACK CFI 72e24 $rbx: .cfa -40 + ^
+STACK CFI 72e28 .cfa: $rsp 48 +
+STACK CFI INIT 72eb0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 72ec0 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72ec1 .cfa: $rsp 16 +
+STACK CFI 72ec4 $rbx: .cfa -16 + ^
+STACK CFI INIT 72ef0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 72f00 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72f04 .cfa: $rsp 16 +
+STACK CFI INIT 72f30 22f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 72f31 .cfa: $rsp 16 +
+STACK CFI 72f32 .cfa: $rsp 24 +
+STACK CFI 72f35 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 72f39 .cfa: $rsp 32 +
+STACK CFI INIT 73160 3e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7316d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 73186 .cfa: $rsp 192 +
+STACK CFI 73191 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 73550 bf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73551 .cfa: $rsp 16 +
+STACK CFI 73558 $rbx: .cfa -16 + ^
+STACK CFI INIT 73610 235 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7361d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 73626 .cfa: $rsp 32 +
+STACK CFI 73632 $r12: .cfa -16 + ^
+STACK CFI INIT 73850 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73851 .cfa: $rsp 16 +
+STACK CFI 73854 $rbx: .cfa -16 + ^
+STACK CFI INIT 73890 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7389f .cfa: $rsp 16 +
+STACK CFI 738a2 $rbx: .cfa -16 + ^
+STACK CFI INIT 738f0 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 738f8 $rbx: .cfa -32 + ^
+STACK CFI 73906 .cfa: $rsp 32 +
+STACK CFI 73910 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI INIT 739c0 487 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 739c1 .cfa: $rsp 16 +
+STACK CFI 739c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 739cf $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 739d3 $rbx: .cfa -56 + ^
+STACK CFI INIT 73e50 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73e5e .cfa: $rsp 32 +
+STACK CFI 73e6b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 73e90 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73e91 .cfa: $rsp 16 +
+STACK CFI 73e98 $rbx: .cfa -16 + ^
+STACK CFI INIT 73f10 167 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73f12 .cfa: $rsp 16 +
+STACK CFI 73f18 $r12: .cfa -16 + ^
+STACK CFI 73f19 .cfa: $rsp 24 +
+STACK CFI 73f1a .cfa: $rsp 32 +
+STACK CFI 73f21 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 75c47 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75c51 .cfa: $rsp 0 +
+STACK CFI 75c55 .cfa: $rsp 128 +
+STACK CFI 75c5d .cfa: $rsp -128 +
+STACK CFI INIT 75c62 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75c70 .cfa: $rsp 0 +
+STACK CFI 75c74 .cfa: $rsp 128 +
+STACK CFI 75c7c .cfa: $rsp -128 +
+STACK CFI INIT 75c81 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75c8f .cfa: $rsp 0 +
+STACK CFI 75c93 .cfa: $rsp 128 +
+STACK CFI 75c9b .cfa: $rsp -128 +
+STACK CFI INIT 75ca0 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75caa .cfa: $rsp 0 +
+STACK CFI 75cae .cfa: $rsp 128 +
+STACK CFI 75cb6 .cfa: $rsp -128 +
+STACK CFI INIT 75cbb 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75cc9 .cfa: $rsp 0 +
+STACK CFI 75ccd .cfa: $rsp 128 +
+STACK CFI 75cd5 .cfa: $rsp -128 +
+STACK CFI INIT 75cda 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75ce4 .cfa: $rsp 0 +
+STACK CFI 75ce8 .cfa: $rsp 128 +
+STACK CFI 75cf0 .cfa: $rsp -128 +
+STACK CFI INIT 75cf5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d03 .cfa: $rsp 0 +
+STACK CFI 75d07 .cfa: $rsp 128 +
+STACK CFI 75d0f .cfa: $rsp -128 +
+STACK CFI INIT 75d14 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d1e .cfa: $rsp 0 +
+STACK CFI 75d22 .cfa: $rsp 128 +
+STACK CFI 75d2a .cfa: $rsp -128 +
+STACK CFI INIT 75d2f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d3d .cfa: $rsp 0 +
+STACK CFI 75d41 .cfa: $rsp 128 +
+STACK CFI 75d49 .cfa: $rsp -128 +
+STACK CFI INIT 75d4e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d58 .cfa: $rsp 0 +
+STACK CFI 75d5c .cfa: $rsp 128 +
+STACK CFI 75d64 .cfa: $rsp -128 +
+STACK CFI INIT 75d69 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d77 .cfa: $rsp 0 +
+STACK CFI 75d7b .cfa: $rsp 128 +
+STACK CFI 75d83 .cfa: $rsp -128 +
+STACK CFI INIT 75d88 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75d92 .cfa: $rsp 0 +
+STACK CFI 75d96 .cfa: $rsp 128 +
+STACK CFI 75d9e .cfa: $rsp -128 +
+STACK CFI INIT 75da3 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75dad .cfa: $rsp 0 +
+STACK CFI 75db1 .cfa: $rsp 128 +
+STACK CFI 75db9 .cfa: $rsp -128 +
+STACK CFI INIT 75dbe 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75dcc .cfa: $rsp 0 +
+STACK CFI 75dd0 .cfa: $rsp 128 +
+STACK CFI 75dd8 .cfa: $rsp -128 +
+STACK CFI INIT 75ddd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75deb .cfa: $rsp 0 +
+STACK CFI 75def .cfa: $rsp 128 +
+STACK CFI 75df7 .cfa: $rsp -128 +
+STACK CFI INIT 75dfc 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e06 .cfa: $rsp 0 +
+STACK CFI 75e0a .cfa: $rsp 128 +
+STACK CFI 75e12 .cfa: $rsp -128 +
+STACK CFI INIT 75e17 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e21 .cfa: $rsp 0 +
+STACK CFI 75e25 .cfa: $rsp 128 +
+STACK CFI 75e2d .cfa: $rsp -128 +
+STACK CFI INIT 75e32 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e40 .cfa: $rsp 0 +
+STACK CFI 75e44 .cfa: $rsp 128 +
+STACK CFI 75e4c .cfa: $rsp -128 +
+STACK CFI INIT 75e51 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e5f .cfa: $rsp 0 +
+STACK CFI 75e63 .cfa: $rsp 128 +
+STACK CFI 75e6b .cfa: $rsp -128 +
+STACK CFI INIT 75e70 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e7e .cfa: $rsp 0 +
+STACK CFI 75e82 .cfa: $rsp 128 +
+STACK CFI 75e8a .cfa: $rsp -128 +
+STACK CFI INIT 75e8f 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 75e99 .cfa: $rsp 0 +
+STACK CFI 75e9d .cfa: $rsp 128 +
+STACK CFI 75ea5 .cfa: $rsp -128 +
+STACK CFI INIT 740d0 8e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74160 247 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74161 .cfa: $rsp 16 +
+STACK CFI 74162 .cfa: $rsp 24 +
+STACK CFI 74165 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 74169 .cfa: $rsp 64 +
+STACK CFI INIT 743b0 1e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 743b1 .cfa: $rsp 16 +
+STACK CFI 743b2 .cfa: $rsp 24 +
+STACK CFI 743b5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 743b9 .cfa: $rsp 64 +
+STACK CFI INIT 745a0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 745d0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74600 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74630 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74639 .cfa: $rsp 16 +
+STACK CFI 7463c $rbx: .cfa -16 + ^
+STACK CFI INIT 746b0 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 746e0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 746e1 .cfa: $rsp 16 +
+STACK CFI 746e9 $rbx: .cfa -16 + ^
+STACK CFI INIT 74730 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74740 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74748 .cfa: $rsp 16 +
+STACK CFI 7474b $rbx: .cfa -16 + ^
+STACK CFI INIT 74770 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74780 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7478d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 74796 .cfa: $rsp 32 +
+STACK CFI 747a3 $r12: .cfa -16 + ^
+STACK CFI INIT 74850 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74870 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74920 c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7492c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7493a .cfa: $rsp 48 +
+STACK CFI 74940 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 749f0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74a00 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74a10 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74a20 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74a21 .cfa: $rsp 16 +
+STACK CFI 74a28 $rbx: .cfa -16 + ^
+STACK CFI INIT 74a70 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74a79 .cfa: $rsp 16 +
+STACK CFI 74a7c $rbx: .cfa -16 + ^
+STACK CFI INIT 74ab0 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74af0 287 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74af2 .cfa: $rsp 16 +
+STACK CFI 74af4 .cfa: $rsp 24 +
+STACK CFI 74af6 .cfa: $rsp 32 +
+STACK CFI 74af8 .cfa: $rsp 40 +
+STACK CFI 74af9 .cfa: $rsp 48 +
+STACK CFI 74afa .cfa: $rsp 56 +
+STACK CFI 74afc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 74b00 .cfa: $rsp 96 +
+STACK CFI INIT 74d80 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 74d90 247 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74d92 .cfa: $rsp 16 +
+STACK CFI 74d94 .cfa: $rsp 24 +
+STACK CFI 74d96 .cfa: $rsp 32 +
+STACK CFI 74d98 .cfa: $rsp 40 +
+STACK CFI 74d99 .cfa: $rsp 48 +
+STACK CFI 74d9a .cfa: $rsp 56 +
+STACK CFI 74d9e .cfa: $rsp 96 +
+STACK CFI 74da5 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 74fe0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 74fe1 .cfa: $rsp 16 +
+STACK CFI 74fe4 $rbx: .cfa -16 + ^
+STACK CFI 74fe8 .cfa: $rsp 32 +
+STACK CFI INIT 75040 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75080 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75090 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 750d0 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 750d1 .cfa: $rsp 16 +
+STACK CFI 750da .cfa: $rsp 32 +
+STACK CFI 750de $rbx: .cfa -16 + ^
+STACK CFI INIT 75160 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75190 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751a0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751b0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751c0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751d0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751e0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 751f0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75200 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75210 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75220 4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75230 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75280 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 752d0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136300 60 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136304 .cfa: $rsp 16 +
+STACK CFI INIT 752f0 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 752fd $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 75301 .cfa: $rsp 48 +
+STACK CFI INIT 75370 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75371 .cfa: $rsp 16 +
+STACK CFI 75374 $rbx: .cfa -16 + ^
+STACK CFI INIT 753f0 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 753f1 .cfa: $rsp 16 +
+STACK CFI 753f6 $rbx: .cfa -16 + ^
+STACK CFI INIT 75430 bf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75432 .cfa: $rsp 16 +
+STACK CFI 7543a $r14: .cfa -16 + ^
+STACK CFI 7543c .cfa: $rsp 24 +
+STACK CFI 7543e .cfa: $rsp 32 +
+STACK CFI 75441 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 75442 .cfa: $rsp 40 +
+STACK CFI 75445 $rbp: .cfa -40 + ^
+STACK CFI 75446 .cfa: $rsp 48 +
+STACK CFI 75449 $rbx: .cfa -48 + ^
+STACK CFI INIT 754f0 196 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 754fd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 75518 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 80 +
+STACK CFI INIT 75690 15f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7569c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 756b7 .cfa: $rsp 64 +
+STACK CFI 756c4 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 757f0 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 757f1 .cfa: $rsp 16 +
+STACK CFI 757fa $rbx: .cfa -16 + ^
+STACK CFI INIT 758c0 b8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 758c1 .cfa: $rsp 16 +
+STACK CFI 758ca $rbx: .cfa -16 + ^
+STACK CFI INIT 75980 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75982 .cfa: $rsp 16 +
+STACK CFI 75985 $r14: .cfa -16 + ^
+STACK CFI 75987 .cfa: $rsp 24 +
+STACK CFI 7598a $r13: .cfa -24 + ^
+STACK CFI 7598c .cfa: $rsp 32 +
+STACK CFI 7598d .cfa: $rsp 40 +
+STACK CFI 75990 $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI 75991 .cfa: $rsp 48 +
+STACK CFI 75994 $rbx: .cfa -48 + ^
+STACK CFI INIT 75a30 1d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75a32 .cfa: $rsp 16 +
+STACK CFI 75a36 .cfa: $rsp 24 +
+STACK CFI 75a38 .cfa: $rsp 32 +
+STACK CFI 75a3a .cfa: $rsp 40 +
+STACK CFI 75a3b .cfa: $rsp 48 +
+STACK CFI 75a3c .cfa: $rsp 56 +
+STACK CFI 75a40 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
+STACK CFI INIT 75c00 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75c01 .cfa: $rsp 16 +
+STACK CFI 75c0c $rbx: .cfa -16 + ^
+STACK CFI INIT 75eb0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75f00 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75f20 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75f21 .cfa: $rsp 16 +
+STACK CFI 75f24 $rbx: .cfa -16 + ^
+STACK CFI INIT 75f50 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 75f70 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75f89 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 75f97 .cfa: $rsp 80 +
+STACK CFI 75fad $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 76130 197 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7613d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7614b .cfa: $rsp 64 +
+STACK CFI 76153 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 762d0 1ae .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 762dd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 762ea $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 762f8 .cfa: $rsp 80 +
+STACK CFI 76307 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 76480 ae .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7648d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7649b .cfa: $rsp 48 +
+STACK CFI 764a4 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 76530 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76538 .cfa: $rsp 16 +
+STACK CFI 7653e $rbx: .cfa -16 + ^
+STACK CFI INIT 76550 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7d1b4 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d1be .cfa: $rsp 0 +
+STACK CFI 7d1c2 .cfa: $rsp 128 +
+STACK CFI 7d1ca .cfa: $rsp -128 +
+STACK CFI INIT 7d1cf 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d1dd .cfa: $rsp 0 +
+STACK CFI 7d1e1 .cfa: $rsp 128 +
+STACK CFI 7d1e9 .cfa: $rsp -128 +
+STACK CFI INIT 7d1ee 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d1f8 .cfa: $rsp 0 +
+STACK CFI 7d1fc .cfa: $rsp 128 +
+STACK CFI 7d204 .cfa: $rsp -128 +
+STACK CFI INIT 7d209 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d217 .cfa: $rsp 0 +
+STACK CFI 7d21b .cfa: $rsp 128 +
+STACK CFI 7d223 .cfa: $rsp -128 +
+STACK CFI INIT 7d228 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d236 .cfa: $rsp 0 +
+STACK CFI 7d23a .cfa: $rsp 128 +
+STACK CFI 7d242 .cfa: $rsp -128 +
+STACK CFI INIT 7d247 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d255 .cfa: $rsp 0 +
+STACK CFI 7d259 .cfa: $rsp 128 +
+STACK CFI 7d261 .cfa: $rsp -128 +
+STACK CFI INIT 7d266 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d274 .cfa: $rsp 0 +
+STACK CFI 7d278 .cfa: $rsp 128 +
+STACK CFI 7d280 .cfa: $rsp -128 +
+STACK CFI INIT 7d285 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d293 .cfa: $rsp 0 +
+STACK CFI 7d297 .cfa: $rsp 128 +
+STACK CFI 7d29f .cfa: $rsp -128 +
+STACK CFI INIT 7d2a4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d2b2 .cfa: $rsp 0 +
+STACK CFI 7d2b6 .cfa: $rsp 128 +
+STACK CFI 7d2be .cfa: $rsp -128 +
+STACK CFI INIT 7d2c3 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d2d1 .cfa: $rsp 0 +
+STACK CFI 7d2d5 .cfa: $rsp 128 +
+STACK CFI 7d2dd .cfa: $rsp -128 +
+STACK CFI INIT 7d2e2 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d2ec .cfa: $rsp 0 +
+STACK CFI 7d2f0 .cfa: $rsp 128 +
+STACK CFI 7d2f8 .cfa: $rsp -128 +
+STACK CFI INIT 7d2fd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d307 .cfa: $rsp 0 +
+STACK CFI 7d30b .cfa: $rsp 128 +
+STACK CFI 7d313 .cfa: $rsp -128 +
+STACK CFI INIT 7d318 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d326 .cfa: $rsp 0 +
+STACK CFI 7d32a .cfa: $rsp 128 +
+STACK CFI 7d332 .cfa: $rsp -128 +
+STACK CFI INIT 7d337 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d345 .cfa: $rsp 0 +
+STACK CFI 7d349 .cfa: $rsp 128 +
+STACK CFI 7d351 .cfa: $rsp -128 +
+STACK CFI INIT 7d356 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d364 .cfa: $rsp 0 +
+STACK CFI 7d368 .cfa: $rsp 128 +
+STACK CFI 7d370 .cfa: $rsp -128 +
+STACK CFI INIT 7d375 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d383 .cfa: $rsp 0 +
+STACK CFI 7d387 .cfa: $rsp 128 +
+STACK CFI 7d38f .cfa: $rsp -128 +
+STACK CFI INIT 7d394 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d39e .cfa: $rsp 0 +
+STACK CFI 7d3a2 .cfa: $rsp 128 +
+STACK CFI 7d3aa .cfa: $rsp -128 +
+STACK CFI INIT 7d3af 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d3b9 .cfa: $rsp 0 +
+STACK CFI 7d3bd .cfa: $rsp 128 +
+STACK CFI 7d3c5 .cfa: $rsp -128 +
+STACK CFI INIT 7d3ca 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d3d8 .cfa: $rsp 0 +
+STACK CFI 7d3dc .cfa: $rsp 128 +
+STACK CFI 7d3e4 .cfa: $rsp -128 +
+STACK CFI INIT 7d3e9 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d3f7 .cfa: $rsp 0 +
+STACK CFI 7d3fb .cfa: $rsp 128 +
+STACK CFI 7d403 .cfa: $rsp -128 +
+STACK CFI INIT 7d408 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d412 .cfa: $rsp 0 +
+STACK CFI 7d416 .cfa: $rsp 128 +
+STACK CFI 7d41e .cfa: $rsp -128 +
+STACK CFI INIT 7d423 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d431 .cfa: $rsp 0 +
+STACK CFI 7d435 .cfa: $rsp 128 +
+STACK CFI 7d43d .cfa: $rsp -128 +
+STACK CFI INIT 7d442 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d450 .cfa: $rsp 0 +
+STACK CFI 7d454 .cfa: $rsp 128 +
+STACK CFI 7d45c .cfa: $rsp -128 +
+STACK CFI INIT 7d461 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d46f .cfa: $rsp 0 +
+STACK CFI 7d473 .cfa: $rsp 128 +
+STACK CFI 7d47b .cfa: $rsp -128 +
+STACK CFI INIT 7d480 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d48e .cfa: $rsp 0 +
+STACK CFI 7d492 .cfa: $rsp 128 +
+STACK CFI 7d49a .cfa: $rsp -128 +
+STACK CFI INIT 7d49f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d4ad .cfa: $rsp 0 +
+STACK CFI 7d4b1 .cfa: $rsp 128 +
+STACK CFI 7d4b9 .cfa: $rsp -128 +
+STACK CFI INIT 7d4be 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d4cc .cfa: $rsp 0 +
+STACK CFI 7d4d0 .cfa: $rsp 128 +
+STACK CFI 7d4d8 .cfa: $rsp -128 +
+STACK CFI INIT 7d4dd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d4e7 .cfa: $rsp 0 +
+STACK CFI 7d4eb .cfa: $rsp 128 +
+STACK CFI 7d4f3 .cfa: $rsp -128 +
+STACK CFI INIT 7d4f8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d502 .cfa: $rsp 0 +
+STACK CFI 7d506 .cfa: $rsp 128 +
+STACK CFI 7d50e .cfa: $rsp -128 +
+STACK CFI INIT 7d513 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d51d .cfa: $rsp 0 +
+STACK CFI 7d521 .cfa: $rsp 128 +
+STACK CFI 7d529 .cfa: $rsp -128 +
+STACK CFI INIT 7d52e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d53c .cfa: $rsp 0 +
+STACK CFI 7d540 .cfa: $rsp 128 +
+STACK CFI 7d548 .cfa: $rsp -128 +
+STACK CFI INIT 7d54d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d55b .cfa: $rsp 0 +
+STACK CFI 7d55f .cfa: $rsp 128 +
+STACK CFI 7d567 .cfa: $rsp -128 +
+STACK CFI INIT 7d56c 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d576 .cfa: $rsp 0 +
+STACK CFI 7d57a .cfa: $rsp 128 +
+STACK CFI 7d582 .cfa: $rsp -128 +
+STACK CFI INIT 7d587 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d595 .cfa: $rsp 0 +
+STACK CFI 7d599 .cfa: $rsp 128 +
+STACK CFI 7d5a1 .cfa: $rsp -128 +
+STACK CFI INIT 7d5a6 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d5b0 .cfa: $rsp 0 +
+STACK CFI 7d5b4 .cfa: $rsp 128 +
+STACK CFI 7d5bc .cfa: $rsp -128 +
+STACK CFI INIT 7d5c1 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d5cb .cfa: $rsp 0 +
+STACK CFI 7d5cf .cfa: $rsp 128 +
+STACK CFI 7d5d7 .cfa: $rsp -128 +
+STACK CFI INIT 7d5dc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d5ea .cfa: $rsp 0 +
+STACK CFI 7d5ee .cfa: $rsp 128 +
+STACK CFI 7d5f6 .cfa: $rsp -128 +
+STACK CFI INIT 7d5fb 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d609 .cfa: $rsp 0 +
+STACK CFI 7d60d .cfa: $rsp 128 +
+STACK CFI 7d615 .cfa: $rsp -128 +
+STACK CFI INIT 7d61a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d624 .cfa: $rsp 0 +
+STACK CFI 7d628 .cfa: $rsp 128 +
+STACK CFI 7d630 .cfa: $rsp -128 +
+STACK CFI INIT 7d635 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d63f .cfa: $rsp 0 +
+STACK CFI 7d643 .cfa: $rsp 128 +
+STACK CFI 7d64b .cfa: $rsp -128 +
+STACK CFI INIT 7d650 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d65e .cfa: $rsp 0 +
+STACK CFI 7d662 .cfa: $rsp 128 +
+STACK CFI 7d66a .cfa: $rsp -128 +
+STACK CFI INIT 7d66f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d67d .cfa: $rsp 0 +
+STACK CFI 7d681 .cfa: $rsp 128 +
+STACK CFI 7d689 .cfa: $rsp -128 +
+STACK CFI INIT 7d68e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d698 .cfa: $rsp 0 +
+STACK CFI 7d69c .cfa: $rsp 128 +
+STACK CFI 7d6a4 .cfa: $rsp -128 +
+STACK CFI INIT 7d6a9 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d6b3 .cfa: $rsp 0 +
+STACK CFI 7d6b7 .cfa: $rsp 128 +
+STACK CFI 7d6bf .cfa: $rsp -128 +
+STACK CFI INIT 7d6c4 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d6ce .cfa: $rsp 0 +
+STACK CFI 7d6d2 .cfa: $rsp 128 +
+STACK CFI 7d6da .cfa: $rsp -128 +
+STACK CFI INIT 7d6df 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d6ea .cfa: $rsp 0 +
+STACK CFI 7d6ee .cfa: $rsp 128 +
+STACK CFI 7d6f6 .cfa: $rsp -128 +
+STACK CFI INIT 7d6fb 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d706 .cfa: $rsp 0 +
+STACK CFI 7d70a .cfa: $rsp 128 +
+STACK CFI 7d712 .cfa: $rsp -128 +
+STACK CFI INIT 7d717 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d725 .cfa: $rsp 0 +
+STACK CFI 7d729 .cfa: $rsp 128 +
+STACK CFI 7d731 .cfa: $rsp -128 +
+STACK CFI INIT 7d736 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d744 .cfa: $rsp 0 +
+STACK CFI 7d748 .cfa: $rsp 128 +
+STACK CFI 7d750 .cfa: $rsp -128 +
+STACK CFI INIT 7d755 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d763 .cfa: $rsp 0 +
+STACK CFI 7d767 .cfa: $rsp 128 +
+STACK CFI 7d76f .cfa: $rsp -128 +
+STACK CFI INIT 7d774 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d77f .cfa: $rsp 0 +
+STACK CFI 7d783 .cfa: $rsp 128 +
+STACK CFI 7d78b .cfa: $rsp -128 +
+STACK CFI INIT 7d790 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d79e .cfa: $rsp 0 +
+STACK CFI 7d7a2 .cfa: $rsp 128 +
+STACK CFI 7d7aa .cfa: $rsp -128 +
+STACK CFI INIT 7d7af 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d7bd .cfa: $rsp 0 +
+STACK CFI 7d7c1 .cfa: $rsp 128 +
+STACK CFI 7d7c9 .cfa: $rsp -128 +
+STACK CFI INIT 7d7ce 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d7dc .cfa: $rsp 0 +
+STACK CFI 7d7e0 .cfa: $rsp 128 +
+STACK CFI 7d7e8 .cfa: $rsp -128 +
+STACK CFI INIT 7d7ed 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d7fb .cfa: $rsp 0 +
+STACK CFI 7d7ff .cfa: $rsp 128 +
+STACK CFI 7d807 .cfa: $rsp -128 +
+STACK CFI INIT 7d80c 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d817 .cfa: $rsp 0 +
+STACK CFI 7d81b .cfa: $rsp 128 +
+STACK CFI 7d823 .cfa: $rsp -128 +
+STACK CFI INIT 7d828 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d833 .cfa: $rsp 0 +
+STACK CFI 7d837 .cfa: $rsp 128 +
+STACK CFI 7d83f .cfa: $rsp -128 +
+STACK CFI INIT 7d844 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d852 .cfa: $rsp 0 +
+STACK CFI 7d856 .cfa: $rsp 128 +
+STACK CFI 7d85e .cfa: $rsp -128 +
+STACK CFI INIT 7d863 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d871 .cfa: $rsp 0 +
+STACK CFI 7d875 .cfa: $rsp 128 +
+STACK CFI 7d87d .cfa: $rsp -128 +
+STACK CFI INIT 7d882 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d890 .cfa: $rsp 0 +
+STACK CFI 7d894 .cfa: $rsp 128 +
+STACK CFI 7d89c .cfa: $rsp -128 +
+STACK CFI INIT 7d8a1 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d8ac .cfa: $rsp 0 +
+STACK CFI 7d8b0 .cfa: $rsp 128 +
+STACK CFI 7d8b8 .cfa: $rsp -128 +
+STACK CFI INIT 7d8bd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d8c7 .cfa: $rsp 0 +
+STACK CFI 7d8cb .cfa: $rsp 128 +
+STACK CFI 7d8d3 .cfa: $rsp -128 +
+STACK CFI INIT 7d8d8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d8e2 .cfa: $rsp 0 +
+STACK CFI 7d8e6 .cfa: $rsp 128 +
+STACK CFI 7d8ee .cfa: $rsp -128 +
+STACK CFI INIT 7d8f3 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d8fd .cfa: $rsp 0 +
+STACK CFI 7d901 .cfa: $rsp 128 +
+STACK CFI 7d909 .cfa: $rsp -128 +
+STACK CFI INIT 7d90e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d918 .cfa: $rsp 0 +
+STACK CFI 7d91c .cfa: $rsp 128 +
+STACK CFI 7d924 .cfa: $rsp -128 +
+STACK CFI INIT 7d929 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d933 .cfa: $rsp 0 +
+STACK CFI 7d937 .cfa: $rsp 128 +
+STACK CFI 7d93f .cfa: $rsp -128 +
+STACK CFI INIT 7d944 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d94e .cfa: $rsp 0 +
+STACK CFI 7d952 .cfa: $rsp 128 +
+STACK CFI 7d95a .cfa: $rsp -128 +
+STACK CFI INIT 7d95f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d96d .cfa: $rsp 0 +
+STACK CFI 7d971 .cfa: $rsp 128 +
+STACK CFI 7d979 .cfa: $rsp -128 +
+STACK CFI INIT 7d97e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d98c .cfa: $rsp 0 +
+STACK CFI 7d990 .cfa: $rsp 128 +
+STACK CFI 7d998 .cfa: $rsp -128 +
+STACK CFI INIT 7d99d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d9ab .cfa: $rsp 0 +
+STACK CFI 7d9af .cfa: $rsp 128 +
+STACK CFI 7d9b7 .cfa: $rsp -128 +
+STACK CFI INIT 7d9bc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7d9ca .cfa: $rsp 0 +
+STACK CFI 7d9ce .cfa: $rsp 128 +
+STACK CFI 7d9d6 .cfa: $rsp -128 +
+STACK CFI INIT 76570 11b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76577 .cfa: $rsp 16 +
+STACK CFI 7657f $rbx: .cfa -16 + ^
+STACK CFI INIT 76690 b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 76750 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 767d0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 767e0 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 76850 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 768f0 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 76930 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7693d $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI 76950 .cfa: $rsp 48 +
+STACK CFI 76958 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 76a00 2b8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76a0e .cfa: $rsp 48 +
+STACK CFI 76a18 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 76cc0 e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76cc7 $rbp: .cfa -24 + ^
+STACK CFI 76cd7 .cfa: $rsp 64 +
+STACK CFI 76cdd $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 76da0 169 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76db8 .cfa: $rsp 48 +
+STACK CFI 76dbf $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 76f10 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76f14 .cfa: $rsp 48 +
+STACK CFI INIT 76f90 463 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 76f92 .cfa: $rsp 16 +
+STACK CFI 76f97 .cfa: $rsp 24 +
+STACK CFI 76f99 .cfa: $rsp 32 +
+STACK CFI 76f9b .cfa: $rsp 40 +
+STACK CFI 76f9c .cfa: $rsp 48 +
+STACK CFI 76f9d .cfa: $rsp 56 +
+STACK CFI 76fa1 .cfa: $rsp 96 +
+STACK CFI 76faf $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 77400 19a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 77401 .cfa: $rsp 16 +
+STACK CFI 77403 $rbp: .cfa -16 + ^
+STACK CFI 77404 .cfa: $rsp 24 +
+STACK CFI 77406 $rbx: .cfa -24 + ^
+STACK CFI 7740a .cfa: $rsp 32 +
+STACK CFI INIT 775a0 3e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 775a2 .cfa: $rsp 16 +
+STACK CFI 775a4 .cfa: $rsp 24 +
+STACK CFI 775a5 .cfa: $rsp 32 +
+STACK CFI 775a6 .cfa: $rsp 40 +
+STACK CFI 775aa .cfa: $rsp 96 +
+STACK CFI 775b6 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 77990 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 779a0 10b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 779a1 .cfa: $rsp 16 +
+STACK CFI 779a5 .cfa: $rsp 24 +
+STACK CFI 779a9 .cfa: $rsp 48 +
+STACK CFI 779b6 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 77ab0 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 77ab1 .cfa: $rsp 16 +
+STACK CFI 77ab4 $rbx: .cfa -16 + ^
+STACK CFI 77ab8 .cfa: $rsp 64 +
+STACK CFI INIT 77b40 513 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 77b4d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 77b65 .cfa: $rsp 64 +
+STACK CFI 77b6f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 78060 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78061 .cfa: $rsp 16 +
+STACK CFI 78062 .cfa: $rsp 24 +
+STACK CFI 78065 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 78069 .cfa: $rsp 32 +
+STACK CFI INIT 78130 913 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78132 .cfa: $rsp 16 +
+STACK CFI 78134 .cfa: $rsp 24 +
+STACK CFI 78136 .cfa: $rsp 32 +
+STACK CFI 78138 .cfa: $rsp 40 +
+STACK CFI 7813b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 7813c .cfa: $rsp 48 +
+STACK CFI 7813d .cfa: $rsp 56 +
+STACK CFI 78140 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 78144 .cfa: $rsp 112 +
+STACK CFI INIT 78a50 b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78a54 .cfa: $rsp 16 +
+STACK CFI 78a56 $rbx: .cfa -16 + ^
+STACK CFI INIT 78b10 ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78b14 .cfa: $rsp 16 +
+STACK CFI 78b17 $rbx: .cfa -16 + ^
+STACK CFI INIT 78c00 2be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78c02 .cfa: $rsp 16 +
+STACK CFI 78c04 .cfa: $rsp 24 +
+STACK CFI 78c06 .cfa: $rsp 32 +
+STACK CFI 78c08 .cfa: $rsp 40 +
+STACK CFI 78c09 .cfa: $rsp 48 +
+STACK CFI 78c0a .cfa: $rsp 56 +
+STACK CFI 78c0e .cfa: $rsp 112 +
+STACK CFI 78c20 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 78ec0 1d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78ecd $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI 78ee1 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 790a0 299 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 790a4 .cfa: $rsp 16 +
+STACK CFI 790aa $rbx: .cfa -16 + ^
+STACK CFI INIT 79340 13ef .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 79342 .cfa: $rsp 16 +
+STACK CFI 79344 .cfa: $rsp 24 +
+STACK CFI 79346 .cfa: $rsp 32 +
+STACK CFI 79348 .cfa: $rsp 40 +
+STACK CFI 79349 .cfa: $rsp 48 +
+STACK CFI 7934c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7934d .cfa: $rsp 56 +
+STACK CFI 79351 .cfa: $rsp 144 +
+STACK CFI 79360 $rbx: .cfa -56 + ^
+STACK CFI INIT 7a730 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7a735 .cfa: $rsp 16 +
+STACK CFI 7a738 $rbx: .cfa -16 + ^
+STACK CFI INIT 7a7d0 29b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7a7dd $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7a7f8 .cfa: $rsp 64 +
+STACK CFI 7a802 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7aa70 123 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7aa7d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 7aa86 .cfa: $rsp 32 +
+STACK CFI 7aa93 $r12: .cfa -16 + ^
+STACK CFI INIT 7aba0 3e7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7aba2 .cfa: $rsp 16 +
+STACK CFI 7aba5 $r15: .cfa -16 + ^
+STACK CFI 7abae .cfa: $rsp 24 +
+STACK CFI 7abb1 $r14: .cfa -24 + ^
+STACK CFI 7abb3 .cfa: $rsp 32 +
+STACK CFI 7abb5 .cfa: $rsp 40 +
+STACK CFI 7abb6 .cfa: $rsp 48 +
+STACK CFI 7abb7 .cfa: $rsp 56 +
+STACK CFI 7abbe .cfa: $rsp 4480 +
+STACK CFI 7abcf $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7af90 11f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7af92 .cfa: $rsp 16 +
+STACK CFI 7af98 .cfa: $rsp 24 +
+STACK CFI 7af99 .cfa: $rsp 32 +
+STACK CFI 7af9d .cfa: $rsp 144 +
+STACK CFI 7afa5 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 7b0b0 453 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7b0c0 $r13: .cfa -32 + ^
+STACK CFI 7b0e0 .cfa: $rsp 64 +
+STACK CFI 7b0ed $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7b510 2a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7b51d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7b535 .cfa: $rsp 64 +
+STACK CFI 7b543 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7b7c0 273 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7b7cd $r12: .cfa -32 + ^ $rbx: .cfa -48 + ^
+STACK CFI 7b7e0 .cfa: $rsp 48 +
+STACK CFI 7b7f0 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT 7ba40 d3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7ba48 .cfa: $rsp 16 +
+STACK CFI 7ba54 $rbx: .cfa -16 + ^
+STACK CFI INIT 7bb20 257 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7bb2d $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7bb3b .cfa: $rsp 48 +
+STACK CFI 7bb4e $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 7bd80 b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7bd88 .cfa: $rsp 16 +
+STACK CFI 7bd8b $rbx: .cfa -16 + ^
+STACK CFI INIT 7be40 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7be48 .cfa: $rsp 16 +
+STACK CFI 7be4b $rbx: .cfa -16 + ^
+STACK CFI INIT 7be60 1c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7be61 .cfa: $rsp 16 +
+STACK CFI 7be66 $rbx: .cfa -16 + ^
+STACK CFI INIT 7c030 29f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c03d $r12: .cfa -32 + ^ $rbx: .cfa -48 + ^
+STACK CFI 7c053 .cfa: $rsp 48 +
+STACK CFI 7c066 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT 7c2d0 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c2de .cfa: $rsp 32 +
+STACK CFI 7c2e8 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 7c310 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c311 .cfa: $rsp 16 +
+STACK CFI 7c314 $rbx: .cfa -16 + ^
+STACK CFI INIT 7c380 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c382 .cfa: $rsp 16 +
+STACK CFI 7c384 .cfa: $rsp 24 +
+STACK CFI 7c386 .cfa: $rsp 32 +
+STACK CFI 7c388 .cfa: $rsp 40 +
+STACK CFI 7c389 .cfa: $rsp 48 +
+STACK CFI 7c38a .cfa: $rsp 56 +
+STACK CFI 7c38e .cfa: $rsp 144 +
+STACK CFI 7c39c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7c540 471 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c54d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7c55a $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 7c568 .cfa: $rsp 64 +
+STACK CFI 7c57c $r12: .cfa -40 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 7c9c0 1a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7c9cd $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 7c9da $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7c9e8 .cfa: $rsp 64 +
+STACK CFI 7c9f3 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT 7cb70 340 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7cb7d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7cb98 .cfa: $rsp 64 +
+STACK CFI 7cbab $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 7ceb0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7cebe .cfa: $rsp 32 +
+STACK CFI 7cec8 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 7cf00 2b4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7cf0d $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7cf28 .cfa: $rsp 112 +
+STACK CFI 7cf32 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT 7d9e0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7d9e4 .cfa: $rsp 16 +
+STACK CFI INIT 7da00 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7da04 .cfa: $rsp 32 +
+STACK CFI INIT 7da90 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7da91 .cfa: $rsp 16 +
+STACK CFI 7da98 $rbx: .cfa -16 + ^
+STACK CFI INIT 7dad0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7daf0 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7daf4 .cfa: $rsp 16 +
+STACK CFI INIT 7dbd0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7dbd4 .cfa: $rsp 16 +
+STACK CFI INIT 7dbf0 116 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7dbf1 .cfa: $rsp 16 +
+STACK CFI 7dbf4 $rbp: .cfa -16 + ^
+STACK CFI 7dbf5 .cfa: $rsp 24 +
+STACK CFI 7dbf9 .cfa: $rsp 48 +
+STACK CFI 7dc09 $rbx: .cfa -24 + ^
+STACK CFI INIT 7dd10 12c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7dd1d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 7dd26 .cfa: $rsp 32 +
+STACK CFI 7dd37 $rbp: .cfa -24 + ^
+STACK CFI INIT 7de40 28f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7de4d $r13: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7de5a $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7de68 .cfa: $rsp 80 +
+STACK CFI 7de74 $r12: .cfa -40 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 7e0d0 14f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e0dd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 7e0e6 .cfa: $rsp 48 +
+STACK CFI 7e0f4 $r12: .cfa -16 + ^
+STACK CFI INIT 7e220 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e224 .cfa: $rsp 16 +
+STACK CFI INIT 7ebb0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ebbe .cfa: $rsp 0 +
+STACK CFI 7ebc2 .cfa: $rsp 128 +
+STACK CFI 7ebca .cfa: $rsp -128 +
+STACK CFI INIT 7ebcf 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ebdd .cfa: $rsp 0 +
+STACK CFI 7ebe1 .cfa: $rsp 128 +
+STACK CFI 7ebe9 .cfa: $rsp -128 +
+STACK CFI INIT 7ebee 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ebfc .cfa: $rsp 0 +
+STACK CFI 7ec00 .cfa: $rsp 128 +
+STACK CFI 7ec08 .cfa: $rsp -128 +
+STACK CFI INIT 7ec0d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ec1b .cfa: $rsp 0 +
+STACK CFI 7ec1f .cfa: $rsp 128 +
+STACK CFI 7ec27 .cfa: $rsp -128 +
+STACK CFI INIT 7ec2c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ec3a .cfa: $rsp 0 +
+STACK CFI 7ec3e .cfa: $rsp 128 +
+STACK CFI 7ec46 .cfa: $rsp -128 +
+STACK CFI INIT 7ec4b 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ec59 .cfa: $rsp 0 +
+STACK CFI 7ec5d .cfa: $rsp 128 +
+STACK CFI 7ec65 .cfa: $rsp -128 +
+STACK CFI INIT 7ec6a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ec78 .cfa: $rsp 0 +
+STACK CFI 7ec7c .cfa: $rsp 128 +
+STACK CFI 7ec84 .cfa: $rsp -128 +
+STACK CFI INIT 7ec89 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ec97 .cfa: $rsp 0 +
+STACK CFI 7ec9b .cfa: $rsp 128 +
+STACK CFI 7eca3 .cfa: $rsp -128 +
+STACK CFI INIT 7eca8 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ecb6 .cfa: $rsp 0 +
+STACK CFI 7ecba .cfa: $rsp 128 +
+STACK CFI 7ecc2 .cfa: $rsp -128 +
+STACK CFI INIT 7ecc7 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 7ecd5 .cfa: $rsp 0 +
+STACK CFI 7ecd9 .cfa: $rsp 128 +
+STACK CFI 7ece1 .cfa: $rsp -128 +
+STACK CFI INIT 7e2f0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7e300 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e304 .cfa: $rsp 16 +
+STACK CFI INIT 7e390 1aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e39e .cfa: $rsp 32 +
+STACK CFI 7e3a8 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 136360 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7e540 12c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e541 .cfa: $rsp 16 +
+STACK CFI 7e544 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 7e54f $r12: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7e560 $r13: .cfa -24 + ^
+STACK CFI INIT 7e670 123 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e67d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 7e692 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 7e696 .cfa: $rsp 48 +
+STACK CFI INIT 7e7a0 ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e7ad $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 7e7be .cfa: $rsp 48 +
+STACK CFI 7e7f9 $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 7e890 142 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e89d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7e8ab .cfa: $rsp 48 +
+STACK CFI 7e8b7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 7e9e0 1d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e9ed $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 7e9fa $r13: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7ea0b .cfa: $rsp 80 +
+STACK CFI 7ea4d $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 7ecf0 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7ecfd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 7ed06 .cfa: $rsp 48 +
+STACK CFI 7ed15 $r12: .cfa -16 + ^
+STACK CFI INIT 7edb0 b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7edb2 .cfa: $rsp 16 +
+STACK CFI 7edb8 $r12: .cfa -16 + ^
+STACK CFI 7edb9 .cfa: $rsp 24 +
+STACK CFI 7edc0 $rbp: .cfa -24 + ^
+STACK CFI 7edc1 .cfa: $rsp 32 +
+STACK CFI 7edc4 $rbx: .cfa -32 + ^
+STACK CFI 7edcd .cfa: $rsp 48 +
+STACK CFI INIT 7ee70 182 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7ee72 .cfa: $rsp 16 +
+STACK CFI 7ee77 .cfa: $rsp 24 +
+STACK CFI 7ee78 .cfa: $rsp 32 +
+STACK CFI 7ee79 .cfa: $rsp 40 +
+STACK CFI 7ee7c $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 7ee80 .cfa: $rsp 64 +
+STACK CFI INIT 7f000 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f040 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f060 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7f072 .cfa: $rsp 16 +
+STACK CFI INIT 7f0a0 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7f0a2 .cfa: $rsp 16 +
+STACK CFI 7f0a5 $r12: .cfa -16 + ^
+STACK CFI 7f0a6 .cfa: $rsp 24 +
+STACK CFI 7f0a7 .cfa: $rsp 32 +
+STACK CFI 7f0ae $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 136380 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136381 .cfa: $rsp 16 +
+STACK CFI 136389 .cfa: $rsp 24 +
+STACK CFI 13638d .cfa: $rsp 32 +
+STACK CFI 136398 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 136990 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136991 .cfa: $rsp 16 +
+STACK CFI 136998 $rbp: .cfa -16 + ^
+STACK CFI 136999 .cfa: $rsp 24 +
+STACK CFI 1369a0 $rbx: .cfa -24 + ^
+STACK CFI 1369a4 .cfa: $rsp 32 +
+STACK CFI INIT 7f120 1bc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f2e0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 112020 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f310 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f390 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1120d0 e99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 7f3d0 1439 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80810 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80820 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 119ca0 a0f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80850 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80930 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80960 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8096d .cfa: $rsp 264 +
+STACK CFI 809f3 .cfa: $rsp 8 +
+STACK CFI INIT 80a00 118 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80b20 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 80b2e .cfa: $rsp 32 +
+STACK CFI 80b31 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 80b80 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 80b8e .cfa: $rsp 32 +
+STACK CFI 80b91 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 80bf0 b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 80c07 .cfa: $rsp 32 +
+STACK CFI 80c09 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 80cb0 11a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 80cbd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 80cd8 .cfa: $rsp 96 +
+STACK CFI 80cdc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 80dd0 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80e10 dd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80ef0 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80f60 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 81000 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 112f70 11b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 81040 1849 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 82890 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11a6c0 f6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 828c0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 114130 19a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 828f0 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 82990 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 829c0 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 829cd .cfa: $rsp 264 +
+STACK CFI 82a53 .cfa: $rsp 8 +
+STACK CFI INIT 82a60 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82a64 .cfa: $rsp 16 +
+STACK CFI INIT 82ac0 20a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82acc $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 82ad5 .cfa: $rsp 32 +
+STACK CFI 82ae3 $r12: .cfa -16 + ^
+STACK CFI INIT 82cd0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82cd4 .cfa: $rsp 16 +
+STACK CFI INIT 82d20 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 82d50 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82d5d .cfa: $rsp 264 +
+STACK CFI 82de3 .cfa: $rsp 8 +
+STACK CFI INIT 1142d0 675 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1142d2 .cfa: $rsp 16 +
+STACK CFI 1142da .cfa: $rsp 24 +
+STACK CFI 1142dc .cfa: $rsp 32 +
+STACK CFI 1142e0 .cfa: $rsp 40 +
+STACK CFI 1142e1 .cfa: $rsp 48 +
+STACK CFI 1142e2 .cfa: $rsp 56 +
+STACK CFI 1142e8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 82df0 f1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82dfa .cfa: $rsp 264 +
+STACK CFI 82ed5 .cfa: $rsp 8 +
+STACK CFI INIT 82ef0 eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 82efa .cfa: $rsp 264 +
+STACK CFI 82fd3 .cfa: $rsp 8 +
+STACK CFI INIT 82fe0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 82ff0 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 83070 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 830a0 400 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 834a0 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 834a4 .cfa: $rsp 16 +
+STACK CFI INIT 834f0 197 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 834f2 .cfa: $rsp 16 +
+STACK CFI 834fa .cfa: $rsp 24 +
+STACK CFI 83500 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 83502 .cfa: $rsp 32 +
+STACK CFI 83505 $r12: .cfa -32 + ^
+STACK CFI 83506 .cfa: $rsp 40 +
+STACK CFI 83507 .cfa: $rsp 48 +
+STACK CFI 8350a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 83690 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 836c0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 836d0 b10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 841e0 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84220 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84230 452 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 843c4 $r14: .cfa -16 + ^
+STACK CFI 843c9 $r13: .cfa -24 + ^
+STACK CFI 843ce $r12: .cfa -32 + ^
+STACK CFI 843d3 $rbx: .cfa -40 + ^
+STACK CFI 8455b $rbx: $rbx
+STACK CFI 84560 $r12: $r12
+STACK CFI 84565 $r13: $r13
+STACK CFI 8456a $r14: $r14
+STACK CFI 845a2 $r14: .cfa -16 + ^
+STACK CFI 845a7 $r13: .cfa -24 + ^
+STACK CFI 845ac $r12: .cfa -32 + ^
+STACK CFI 8466b $r12: $r12
+STACK CFI 84670 $r13: $r13
+STACK CFI 84675 $r14: $r14
+STACK CFI INIT 84690 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 846a0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 846c9 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 846d3 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 846e0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 846f0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84710 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11b640 b03 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84740 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84820 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11c160 10d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84850 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 84890 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 114950 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 114960 1c86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 848d0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 848e0 2226 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86b10 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86b50 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1165f0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 116600 2096 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86b90 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86ba0 2636 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 891e0 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89220 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89260 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89270 465 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89414 $r14: .cfa -24 + ^
+STACK CFI 89419 $r13: .cfa -32 + ^
+STACK CFI 8941e $r12: .cfa -40 + ^
+STACK CFI 89423 $rbx: .cfa -48 + ^
+STACK CFI 895ab $rbx: $rbx
+STACK CFI 895b0 $r12: $r12
+STACK CFI 895b5 $r13: $r13
+STACK CFI 895ba $r14: $r14
+STACK CFI 895f2 $r14: .cfa -24 + ^
+STACK CFI 895f7 $r13: .cfa -32 + ^
+STACK CFI 895fc $r12: .cfa -40 + ^
+STACK CFI 896bb $r12: $r12
+STACK CFI 896c0 $r13: $r13
+STACK CFI 896c5 $r14: $r14
+STACK CFI INIT 896e0 135 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89820 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89827 .cfa: $rsp 16 +
+STACK CFI 8983c .cfa: $rsp 24 +
+STACK CFI 89849 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 89950 18b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89ae0 17b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89b1b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 89c60 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89c6e .cfa: $rsp 32 +
+STACK CFI 89c71 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1186a0 89b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1186a2 .cfa: $rsp 16 +
+STACK CFI 1186aa .cfa: $rsp 24 +
+STACK CFI 1186ac .cfa: $rsp 32 +
+STACK CFI 1186b0 .cfa: $rsp 40 +
+STACK CFI 1186b1 .cfa: $rsp 48 +
+STACK CFI 1186b2 .cfa: $rsp 56 +
+STACK CFI 1186b8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 89cf0 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89d30 dd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89d32 .cfa: $rsp 16 +
+STACK CFI 89d34 .cfa: $rsp 24 +
+STACK CFI 89d36 .cfa: $rsp 32 +
+STACK CFI 89d37 .cfa: $rsp 40 +
+STACK CFI 89d38 .cfa: $rsp 48 +
+STACK CFI 89d3b $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 89d3f .cfa: $rsp 64 +
+STACK CFI INIT 89e10 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 89e30 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89e31 .cfa: $rsp 16 +
+STACK CFI 89e42 .cfa: $rsp 24 +
+STACK CFI 89e47 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 89f30 341 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 89f32 .cfa: $rsp 16 +
+STACK CFI 89f35 $r15: .cfa -16 + ^
+STACK CFI 89f3a .cfa: $rsp 24 +
+STACK CFI 89f3c .cfa: $rsp 32 +
+STACK CFI 89f3e .cfa: $rsp 40 +
+STACK CFI 89f41 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 89f42 .cfa: $rsp 48 +
+STACK CFI 89f45 $rbp: .cfa -48 + ^
+STACK CFI 89f49 .cfa: $rsp 56 +
+STACK CFI 89f4c $rbx: .cfa -56 + ^
+STACK CFI 89f53 .cfa: $rsp 2176 +
+STACK CFI INIT 8a280 335 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a28d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8a29a $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 8a2a8 .cfa: $rsp 128 +
+STACK CFI 8a2b6 $r12: .cfa -40 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 8a5c0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 118f40 53 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8a5f0 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8a640 6f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8a6b0 89 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a6bd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8a6d7 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8a6db .cfa: $rsp 64 +
+STACK CFI INIT 8a740 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a74d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 8a759 .cfa: $rsp 32 +
+STACK CFI 8a75f $r12: .cfa -16 + ^
+STACK CFI INIT 8a790 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a792 .cfa: $rsp 16 +
+STACK CFI 8a795 $r12: .cfa -16 + ^
+STACK CFI 8a799 .cfa: $rsp 24 +
+STACK CFI 8a79c $rbp: .cfa -24 + ^
+STACK CFI 8a79d .cfa: $rsp 32 +
+STACK CFI 8a7a0 $rbx: .cfa -32 + ^
+STACK CFI INIT 8a7d0 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a7d2 .cfa: $rsp 16 +
+STACK CFI 8a7d4 .cfa: $rsp 24 +
+STACK CFI 8a7d7 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 8a7d9 .cfa: $rsp 32 +
+STACK CFI 8a7dc $r12: .cfa -32 + ^
+STACK CFI 8a7dd .cfa: $rsp 40 +
+STACK CFI 8a7de .cfa: $rsp 48 +
+STACK CFI 8a7e1 $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 8a860 103 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a86d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 8a882 .cfa: $rsp 48 +
+STACK CFI 8a885 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 8a970 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a974 .cfa: $rsp 16 +
+STACK CFI 8a979 $rbx: .cfa -16 + ^
+STACK CFI INIT 8a9c0 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8a9cd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 8a9d6 .cfa: $rsp 32 +
+STACK CFI 8a9dc $r12: .cfa -16 + ^
+STACK CFI INIT 8aa50 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8aa52 .cfa: $rsp 16 +
+STACK CFI 8aa58 $r12: .cfa -16 + ^
+STACK CFI 8aa59 .cfa: $rsp 24 +
+STACK CFI 8aa5c $rbp: .cfa -24 + ^
+STACK CFI 8aa5d .cfa: $rsp 32 +
+STACK CFI 8aa60 $rbx: .cfa -32 + ^
+STACK CFI INIT 8aaa0 162 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8aaad $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8aac8 .cfa: $rsp 96 +
+STACK CFI 8aace $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 8ac10 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8ac12 .cfa: $rsp 16 +
+STACK CFI 8ac18 $r12: .cfa -16 + ^
+STACK CFI 8ac19 .cfa: $rsp 24 +
+STACK CFI 8ac1c $rbp: .cfa -24 + ^
+STACK CFI 8ac1d .cfa: $rsp 32 +
+STACK CFI 8ac20 $rbx: .cfa -32 + ^
+STACK CFI INIT 8ac60 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8ac6d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 8ac83 .cfa: $rsp 48 +
+STACK CFI 8ac89 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 8ad40 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8ad4d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8ad67 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8ad6b .cfa: $rsp 64 +
+STACK CFI INIT 8adf0 322 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8adf2 .cfa: $rsp 16 +
+STACK CFI 8adf4 .cfa: $rsp 24 +
+STACK CFI 8adf6 .cfa: $rsp 32 +
+STACK CFI 8adf8 .cfa: $rsp 40 +
+STACK CFI 8adf9 .cfa: $rsp 48 +
+STACK CFI 8adfa .cfa: $rsp 56 +
+STACK CFI 8adfd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8ae04 .cfa: $rsp 192 +
+STACK CFI INIT 8b120 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8b121 .cfa: $rsp 16 +
+STACK CFI 8b129 $rbx: .cfa -16 + ^
+STACK CFI INIT 8b140 e91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8b141 .cfa: $rsp 16 +
+STACK CFI 8b144 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 8b149 $r15: .cfa -24 + ^
+STACK CFI 8b153 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 8bfe0 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8c050 ad3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8c051 .cfa: $rsp 16 +
+STACK CFI 8c054 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 8c05f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 8c063 $rbx: .cfa -56 + ^
+STACK CFI INIT 8cb30 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8cb31 .cfa: $rsp 16 +
+STACK CFI 8cb35 .cfa: $rsp 24 +
+STACK CFI 8cb44 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 8cc00 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cca0 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cd40 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cd80 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cdd0 4d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8ce20 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8ce40 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8ce60 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8ce90 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cee0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cf40 65 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8cfb0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d020 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d090 4b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d09e .cfa: $rsp 32 +
+STACK CFI 8d0a1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 8d0e0 111 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d200 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d20d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 8d216 .cfa: $rsp 32 +
+STACK CFI 8d21d $r12: .cfa -16 + ^
+STACK CFI INIT 1369d0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1369d4 .cfa: $rsp 16 +
+STACK CFI INIT 8d290 4d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d29e .cfa: $rsp 32 +
+STACK CFI 8d2a1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 8d2e0 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d2ed $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 8d2f6 .cfa: $rsp 48 +
+STACK CFI 8d2fa $rbp: .cfa -24 + ^
+STACK CFI INIT 8d3b0 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d450 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d490 71 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d492 .cfa: $rsp 16 +
+STACK CFI 8d496 .cfa: $rsp 24 +
+STACK CFI 8d499 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 8d49b .cfa: $rsp 32 +
+STACK CFI 8d49e $r12: .cfa -32 + ^
+STACK CFI 8d49f .cfa: $rsp 40 +
+STACK CFI 8d4a0 .cfa: $rsp 48 +
+STACK CFI 8d4a3 $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 8d510 af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d512 .cfa: $rsp 16 +
+STACK CFI 8d517 $r15: .cfa -16 + ^
+STACK CFI 8d519 .cfa: $rsp 24 +
+STACK CFI 8d51b .cfa: $rsp 32 +
+STACK CFI 8d51e $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 8d520 .cfa: $rsp 40 +
+STACK CFI 8d523 $r12: .cfa -40 + ^
+STACK CFI 8d524 .cfa: $rsp 48 +
+STACK CFI 8d527 $rbp: .cfa -48 + ^
+STACK CFI 8d528 .cfa: $rsp 56 +
+STACK CFI 8d52b $rbx: .cfa -56 + ^
+STACK CFI 8d52f .cfa: $rsp 80 +
+STACK CFI INIT 8d5c0 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d5cd $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 8d5d1 .cfa: $rsp 32 +
+STACK CFI INIT 8d610 120 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d61d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8d62a $r12: .cfa -40 + ^ $r14: .cfa -24 + ^
+STACK CFI 8d638 .cfa: $rsp 96 +
+STACK CFI 8d63e $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 8d730 d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d810 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11d240 1259 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11e4a0 1759 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 118fa0 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 134290 163e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11fc00 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11fc10 29b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1225d0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1225e0 29b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 124fa0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 124fb0 2b67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 127b20 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 127b30 2ab6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 12a5f0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 12a600 2ab6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 12d0c0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 12d0d0 2b06 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 118fe0 87c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 118fe2 .cfa: $rsp 16 +
+STACK CFI 118fe6 .cfa: $rsp 24 +
+STACK CFI 118fe8 .cfa: $rsp 32 +
+STACK CFI 118fea .cfa: $rsp 40 +
+STACK CFI 118feb .cfa: $rsp 48 +
+STACK CFI 118fec .cfa: $rsp 56 +
+STACK CFI 118ff0 .cfa: $rsp 152 +
+STACK CFI 119000 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 12fbe0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 12fbf0 2136 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 131d30 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 131d40 2546 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 119860 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1358d0 2fc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d8e0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8d8f0 550 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 119900 14c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 119a50 117 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 119b70 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8de40 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8de41 .cfa: $rsp 16 +
+STACK CFI 8de52 .cfa: $rsp 24 +
+STACK CFI 8de57 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 8df40 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8df44 .cfa: $rsp 16 +
+STACK CFI INIT 8df80 3f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8df82 .cfa: $rsp 16 +
+STACK CFI 8df84 .cfa: $rsp 24 +
+STACK CFI 8df86 .cfa: $rsp 32 +
+STACK CFI 8df89 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8df8b .cfa: $rsp 40 +
+STACK CFI 8df8e $r12: .cfa -40 + ^
+STACK CFI 8df92 .cfa: $rsp 48 +
+STACK CFI 8df95 $rbp: .cfa -48 + ^
+STACK CFI 8df99 .cfa: $rsp 56 +
+STACK CFI 8df9c $rbx: .cfa -56 + ^
+STACK CFI 8dfa3 .cfa: $rsp 2208 +
+STACK CFI INIT 8e380 3fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8e382 .cfa: $rsp 16 +
+STACK CFI 8e384 .cfa: $rsp 24 +
+STACK CFI 8e386 .cfa: $rsp 32 +
+STACK CFI 8e388 .cfa: $rsp 40 +
+STACK CFI 8e38b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8e38c .cfa: $rsp 48 +
+STACK CFI 8e38d .cfa: $rsp 56 +
+STACK CFI 8e390 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8e394 .cfa: $rsp 144 +
+STACK CFI INIT 8e780 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8e784 .cfa: $rsp 16 +
+STACK CFI INIT 8e7c0 335 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8e7c2 .cfa: $rsp 16 +
+STACK CFI 8e7d4 .cfa: $rsp 24 +
+STACK CFI 8e7d6 .cfa: $rsp 32 +
+STACK CFI 8e7dc $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8e7de .cfa: $rsp 40 +
+STACK CFI 8e7df .cfa: $rsp 48 +
+STACK CFI 8e7e0 .cfa: $rsp 56 +
+STACK CFI 8e7f7 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 8eb00 88f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8eb02 .cfa: $rsp 16 +
+STACK CFI 8eb04 .cfa: $rsp 24 +
+STACK CFI 8eb06 .cfa: $rsp 32 +
+STACK CFI 8eb08 .cfa: $rsp 40 +
+STACK CFI 8eb0b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8eb0c .cfa: $rsp 48 +
+STACK CFI 8eb0f $rbp: .cfa -48 + ^
+STACK CFI 8eb13 .cfa: $rsp 56 +
+STACK CFI 8eb16 $rbx: .cfa -56 + ^
+STACK CFI 8eb1d .cfa: $rsp 2208 +
+STACK CFI INIT 8f390 7d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8f392 .cfa: $rsp 16 +
+STACK CFI 8f394 .cfa: $rsp 24 +
+STACK CFI 8f397 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 8f399 .cfa: $rsp 32 +
+STACK CFI 8f39b .cfa: $rsp 40 +
+STACK CFI 8f39c .cfa: $rsp 48 +
+STACK CFI 8f39f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 8f3a0 .cfa: $rsp 56 +
+STACK CFI 8f3a4 .cfa: $rsp 160 +
+STACK CFI 8f3ad $rbx: .cfa -56 + ^
+STACK CFI INIT 8fb70 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8fb80 1b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8fb81 .cfa: $rsp 16 +
+STACK CFI 8fb86 $rbx: .cfa -16 + ^
+STACK CFI INIT 8fd40 292 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8fd42 .cfa: $rsp 16 +
+STACK CFI 8fd45 $r15: .cfa -16 + ^
+STACK CFI 8fd47 .cfa: $rsp 24 +
+STACK CFI 8fd4a $r14: .cfa -24 + ^
+STACK CFI 8fd4c .cfa: $rsp 32 +
+STACK CFI 8fd4f $r13: .cfa -32 + ^
+STACK CFI 8fd51 .cfa: $rsp 40 +
+STACK CFI 8fd52 .cfa: $rsp 48 +
+STACK CFI 8fd53 .cfa: $rsp 56 +
+STACK CFI 8fd55 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8fd59 .cfa: $rsp 80 +
+STACK CFI INIT 8ffe0 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8ffe2 .cfa: $rsp 16 +
+STACK CFI 8ffe6 .cfa: $rsp 24 +
+STACK CFI 8ffe8 .cfa: $rsp 32 +
+STACK CFI 8ffea .cfa: $rsp 40 +
+STACK CFI 8ffeb .cfa: $rsp 48 +
+STACK CFI 8ffed $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 8ffee .cfa: $rsp 56 +
+STACK CFI 8fff2 .cfa: $rsp 96 +
+STACK CFI 8fffb $rbx: .cfa -56 + ^
+STACK CFI INIT 900e0 2f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 900f3 .cfa: $rsp 32 +
+STACK CFI 900fd $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 903e0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 903e4 .cfa: $rsp 32 +
+STACK CFI INIT 90440 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90480 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 904d0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 904e0 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90550 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90590 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 905b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 905e0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90610 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 90612 .cfa: $rsp 16 +
+STACK CFI 90615 $r12: .cfa -16 + ^
+STACK CFI 90616 .cfa: $rsp 24 +
+STACK CFI 90619 $rbp: .cfa -24 + ^
+STACK CFI 9061a .cfa: $rsp 32 +
+STACK CFI 9061e $rbx: .cfa -32 + ^
+STACK CFI INIT 90650 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9065e .cfa: $rsp 32 +
+STACK CFI 90661 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 906b0 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90720 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 907b0 b1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90870 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90950 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 90951 .cfa: $rsp 16 +
+STACK CFI 90954 $rbp: .cfa -16 + ^
+STACK CFI 90955 .cfa: $rsp 24 +
+STACK CFI 90958 $rbx: .cfa -24 + ^
+STACK CFI 9095c .cfa: $rsp 32 +
+STACK CFI INIT 909a0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 909c0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90a20 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 90a2d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 90a36 .cfa: $rsp 32 +
+STACK CFI 90a3f $r12: .cfa -16 + ^
+STACK CFI INIT 90ad0 10b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 90ae0 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 90be0 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90c60 d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90d40 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90d50 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90d80 d3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90e60 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 90e70 1b1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 90e78 $r13: .cfa -16 + ^
+STACK CFI 90e95 .cfa: $rsp 144 +
+STACK CFI 90ea3 $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 91030 18d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9103d $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI 91053 .cfa: $rsp 176 +
+STACK CFI 9105c $r12: .cfa -32 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT 911c0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 911e0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 91200 265 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91211 $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI 9122a .cfa: $rsp 176 +
+STACK CFI 91249 $r12: .cfa -32 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT 91470 220 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91471 .cfa: $rsp 16 +
+STACK CFI 91474 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9147c $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 91690 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 916b0 34b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 916b2 .cfa: $rsp 16 +
+STACK CFI 916bb .cfa: $rsp 24 +
+STACK CFI 916be $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 916c0 .cfa: $rsp 32 +
+STACK CFI 916c3 $r13: .cfa -32 + ^
+STACK CFI 916c5 .cfa: $rsp 40 +
+STACK CFI 916c6 .cfa: $rsp 48 +
+STACK CFI 916c9 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 916ca .cfa: $rsp 56 +
+STACK CFI 916d1 .cfa: $rsp 464 +
+STACK CFI 9171b $rbx: .cfa -56 + ^
+STACK CFI INIT 91a00 373 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91a1e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 91a2f .cfa: $rsp 448 +
+STACK CFI 91a44 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 91d80 362 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91d9e $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 91daf .cfa: $rsp 464 +
+STACK CFI 91dc4 $r12: .cfa -40 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 920f0 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92190 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 921c0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 921e0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 921f0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92210 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92220 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92240 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92250 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92270 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92280 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 922a0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 922b0 458 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 922b2 .cfa: $rsp 16 +
+STACK CFI 922b4 .cfa: $rsp 24 +
+STACK CFI 922b6 .cfa: $rsp 32 +
+STACK CFI 922b8 .cfa: $rsp 40 +
+STACK CFI 922bb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 922bc .cfa: $rsp 48 +
+STACK CFI 922be $rbp: .cfa -48 + ^
+STACK CFI 922bf .cfa: $rsp 56 +
+STACK CFI 922c3 .cfa: $rsp 144 +
+STACK CFI 922d9 $rbx: .cfa -56 + ^
+STACK CFI INIT 92710 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92720 417 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 92722 .cfa: $rsp 16 +
+STACK CFI 92724 .cfa: $rsp 24 +
+STACK CFI 92726 .cfa: $rsp 32 +
+STACK CFI 92728 .cfa: $rsp 40 +
+STACK CFI 9272b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 9272c .cfa: $rsp 48 +
+STACK CFI 9272e $rbp: .cfa -48 + ^
+STACK CFI 9272f .cfa: $rsp 56 +
+STACK CFI 92733 .cfa: $rsp 144 +
+STACK CFI 92749 $rbx: .cfa -56 + ^
+STACK CFI INIT 92b40 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 92b50 27f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 92b52 .cfa: $rsp 16 +
+STACK CFI 92b55 $r15: .cfa -16 + ^
+STACK CFI 92b57 .cfa: $rsp 24 +
+STACK CFI 92b59 .cfa: $rsp 32 +
+STACK CFI 92b5c $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 92b5e .cfa: $rsp 40 +
+STACK CFI 92b61 $r12: .cfa -40 + ^
+STACK CFI 92b62 .cfa: $rsp 48 +
+STACK CFI 92b64 $rbp: .cfa -48 + ^
+STACK CFI 92b65 .cfa: $rsp 56 +
+STACK CFI 92b68 $rbx: .cfa -56 + ^
+STACK CFI 92b6c .cfa: $rsp 80 +
+STACK CFI INIT 92dd0 1fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 92ddc $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 92dea .cfa: $rsp 64 +
+STACK CFI 92df7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 92fd0 1fc4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 92fd2 .cfa: $rsp 16 +
+STACK CFI 92fd5 $r15: .cfa -16 + ^
+STACK CFI 92fd7 .cfa: $rsp 24 +
+STACK CFI 92fd9 .cfa: $rsp 32 +
+STACK CFI 92fdb .cfa: $rsp 40 +
+STACK CFI 92fdc .cfa: $rsp 48 +
+STACK CFI 92fdd .cfa: $rsp 56 +
+STACK CFI 92fe4 .cfa: $rsp 544 +
+STACK CFI 92ffa $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 94fa0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 94fb0 27f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 94fb2 .cfa: $rsp 16 +
+STACK CFI 94fb5 $r15: .cfa -16 + ^
+STACK CFI 94fb7 .cfa: $rsp 24 +
+STACK CFI 94fb9 .cfa: $rsp 32 +
+STACK CFI 94fbc $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 94fbe .cfa: $rsp 40 +
+STACK CFI 94fc1 $r12: .cfa -40 + ^
+STACK CFI 94fc2 .cfa: $rsp 48 +
+STACK CFI 94fc4 $rbp: .cfa -48 + ^
+STACK CFI 94fc5 .cfa: $rsp 56 +
+STACK CFI 94fc8 $rbx: .cfa -56 + ^
+STACK CFI 94fcc .cfa: $rsp 80 +
+STACK CFI INIT 95230 1ef .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9523d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 9524b .cfa: $rsp 64 +
+STACK CFI 95257 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 95420 1f22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 95422 .cfa: $rsp 16 +
+STACK CFI 95425 $r15: .cfa -16 + ^
+STACK CFI 95427 .cfa: $rsp 24 +
+STACK CFI 95429 .cfa: $rsp 32 +
+STACK CFI 9542b .cfa: $rsp 40 +
+STACK CFI 9542c .cfa: $rsp 48 +
+STACK CFI 9542d .cfa: $rsp 56 +
+STACK CFI 95434 .cfa: $rsp 4384 +
+STACK CFI 9544a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 97350 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 97360 27f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 97362 .cfa: $rsp 16 +
+STACK CFI 97365 $r15: .cfa -16 + ^
+STACK CFI 97367 .cfa: $rsp 24 +
+STACK CFI 97369 .cfa: $rsp 32 +
+STACK CFI 9736c $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 9736e .cfa: $rsp 40 +
+STACK CFI 97371 $r12: .cfa -40 + ^
+STACK CFI 97372 .cfa: $rsp 48 +
+STACK CFI 97374 $rbp: .cfa -48 + ^
+STACK CFI 97375 .cfa: $rsp 56 +
+STACK CFI 97378 $rbx: .cfa -56 + ^
+STACK CFI 9737c .cfa: $rsp 80 +
+STACK CFI INIT 975e0 1dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 975ec $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 975fa .cfa: $rsp 64 +
+STACK CFI 97604 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 977c0 1f32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 977c2 .cfa: $rsp 16 +
+STACK CFI 977c5 $r15: .cfa -16 + ^
+STACK CFI 977c7 .cfa: $rsp 24 +
+STACK CFI 977c9 .cfa: $rsp 32 +
+STACK CFI 977cb .cfa: $rsp 40 +
+STACK CFI 977cc .cfa: $rsp 48 +
+STACK CFI 977cd .cfa: $rsp 56 +
+STACK CFI 977d4 .cfa: $rsp 304 +
+STACK CFI 977ea $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 99700 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 99710 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 99720 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 99730 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 99738 .cfa: $rsp 16 +
+STACK CFI 99753 $rbx: .cfa -16 + ^
+STACK CFI INIT 997a0 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 997a2 .cfa: $rsp 16 +
+STACK CFI 997a6 .cfa: $rsp 24 +
+STACK CFI 997a7 .cfa: $rsp 32 +
+STACK CFI 997ad $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT 99880 c8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 99881 .cfa: $rsp 16 +
+STACK CFI 99884 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 99889 $r15: .cfa -24 + ^
+STACK CFI 99890 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 998ae $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 9a510 8c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9a511 .cfa: $rsp 16 +
+STACK CFI 9a514 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9a51f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 9a523 $rbx: .cfa -56 + ^
+STACK CFI INIT 9ade0 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9ade2 .cfa: $rsp 16 +
+STACK CFI 9ade7 $r13: .cfa -16 + ^
+STACK CFI 9ade9 .cfa: $rsp 24 +
+STACK CFI 9adea .cfa: $rsp 32 +
+STACK CFI 9adec $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 9aded .cfa: $rsp 40 +
+STACK CFI 9adf0 $rbx: .cfa -40 + ^
+STACK CFI 9adf4 .cfa: $rsp 48 +
+STACK CFI INIT 9ae40 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9ae4d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 9ae63 .cfa: $rsp 48 +
+STACK CFI 9ae69 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 9aed0 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9aed2 .cfa: $rsp 16 +
+STACK CFI 9aed7 $r14: .cfa -16 + ^
+STACK CFI 9aed9 .cfa: $rsp 24 +
+STACK CFI 9aedb .cfa: $rsp 32 +
+STACK CFI 9aede $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 9aee2 .cfa: $rsp 40 +
+STACK CFI 9aee5 $rbp: .cfa -40 + ^
+STACK CFI 9aee6 .cfa: $rsp 48 +
+STACK CFI 9aee9 $rbx: .cfa -48 + ^
+STACK CFI INIT 9af30 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9af3d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 9af58 .cfa: $rsp 64 +
+STACK CFI 9af5e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 9afe0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9afe1 .cfa: $rsp 16 +
+STACK CFI 9afe5 $rbx: .cfa -16 + ^
+STACK CFI INIT 9b030 4d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b031 .cfa: $rsp 16 +
+STACK CFI 9b037 $rbx: .cfa -16 + ^
+STACK CFI 9b03b .cfa: $rsp 32 +
+STACK CFI INIT 9b080 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b081 .cfa: $rsp 16 +
+STACK CFI 9b088 $rbp: .cfa -16 + ^
+STACK CFI 9b089 .cfa: $rsp 24 +
+STACK CFI 9b08c $rbx: .cfa -24 + ^
+STACK CFI 9b097 .cfa: $rsp 32 +
+STACK CFI INIT 9b100 207 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b101 .cfa: $rsp 16 +
+STACK CFI 9b104 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9b109 $r13: .cfa -24 + ^
+STACK CFI 9b11e $r12: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 9b310 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b311 .cfa: $rsp 16 +
+STACK CFI 9b312 .cfa: $rsp 24 +
+STACK CFI 9b315 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 9b319 .cfa: $rsp 32 +
+STACK CFI INIT 9b390 42c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b392 .cfa: $rsp 16 +
+STACK CFI 9b394 .cfa: $rsp 24 +
+STACK CFI 9b396 .cfa: $rsp 32 +
+STACK CFI 9b398 .cfa: $rsp 40 +
+STACK CFI 9b399 .cfa: $rsp 48 +
+STACK CFI 9b39a .cfa: $rsp 56 +
+STACK CFI 9b3a1 .cfa: $rsp 448 +
+STACK CFI 9b3a4 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 9b7c0 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b7c7 .cfa: $rsp 224 +
+STACK CFI INIT 9b850 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b872 .cfa: $rsp 624 +
+STACK CFI 9b87a $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 9ba89 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9ba93 .cfa: $rsp 0 +
+STACK CFI 9ba97 .cfa: $rsp 128 +
+STACK CFI 9ba9f .cfa: $rsp -128 +
+STACK CFI INIT 9baa4 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9baae .cfa: $rsp 0 +
+STACK CFI 9bab2 .cfa: $rsp 128 +
+STACK CFI 9baba .cfa: $rsp -128 +
+STACK CFI INIT 9babf 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bac9 .cfa: $rsp 0 +
+STACK CFI 9bacd .cfa: $rsp 128 +
+STACK CFI 9bad5 .cfa: $rsp -128 +
+STACK CFI INIT 9b900 189 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b901 .cfa: $rsp 16 +
+STACK CFI 9b90b .cfa: $rsp 224 +
+STACK CFI 9b96d $rbx: .cfa -16 + ^
+STACK CFI INIT 9bbe7 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bbf1 .cfa: $rsp 0 +
+STACK CFI 9bbf5 .cfa: $rsp 128 +
+STACK CFI 9bbfd .cfa: $rsp -128 +
+STACK CFI INIT 9bc02 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bc0c .cfa: $rsp 0 +
+STACK CFI 9bc10 .cfa: $rsp 128 +
+STACK CFI 9bc18 .cfa: $rsp -128 +
+STACK CFI INIT 9bc1d 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bc27 .cfa: $rsp 0 +
+STACK CFI 9bc2b .cfa: $rsp 128 +
+STACK CFI 9bc33 .cfa: $rsp -128 +
+STACK CFI INIT 9bae0 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9bae1 .cfa: $rsp 16 +
+STACK CFI 9bae8 .cfa: $rsp 24 +
+STACK CFI 9baec .cfa: $rsp 32 +
+STACK CFI 9baf6 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 9bdb7 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bdc1 .cfa: $rsp 0 +
+STACK CFI 9bdc5 .cfa: $rsp 128 +
+STACK CFI 9bdcd .cfa: $rsp -128 +
+STACK CFI INIT 9bdd2 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bddc .cfa: $rsp 0 +
+STACK CFI 9bde0 .cfa: $rsp 128 +
+STACK CFI 9bde8 .cfa: $rsp -128 +
+STACK CFI INIT 9bded 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bdf7 .cfa: $rsp 0 +
+STACK CFI 9bdfb .cfa: $rsp 128 +
+STACK CFI 9be03 .cfa: $rsp -128 +
+STACK CFI INIT 9bc40 177 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9bc41 .cfa: $rsp 16 +
+STACK CFI 9bc47 $rbx: .cfa -16 + ^
+STACK CFI 9bc4e .cfa: $rsp 224 +
+STACK CFI INIT 9bf00 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bf0a .cfa: $rsp 0 +
+STACK CFI 9bf0e .cfa: $rsp 128 +
+STACK CFI 9bf16 .cfa: $rsp -128 +
+STACK CFI INIT 9bf1b 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bf25 .cfa: $rsp 0 +
+STACK CFI 9bf29 .cfa: $rsp 128 +
+STACK CFI 9bf31 .cfa: $rsp -128 +
+STACK CFI INIT 9bf33 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9bf3d .cfa: $rsp 0 +
+STACK CFI 9bf41 .cfa: $rsp 128 +
+STACK CFI 9bf49 .cfa: $rsp -128 +
+STACK CFI INIT 9be10 f0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9be11 .cfa: $rsp 16 +
+STACK CFI 9be18 $rbx: .cfa -16 + ^
+STACK CFI INIT 9bf50 41a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9bf52 .cfa: $rsp 16 +
+STACK CFI 9bf5e .cfa: $rsp 24 +
+STACK CFI 9bf5f .cfa: $rsp 32 +
+STACK CFI 9bf62 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI 9bf63 .cfa: $rsp 40 +
+STACK CFI 9bf66 $rbx: .cfa -40 + ^
+STACK CFI INIT 9c370 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c371 .cfa: $rsp 16 +
+STACK CFI 9c374 $rbp: .cfa -16 + ^
+STACK CFI 9c375 .cfa: $rsp 24 +
+STACK CFI 9c378 $rbx: .cfa -24 + ^
+STACK CFI 9c37c .cfa: $rsp 64 +
+STACK CFI INIT 9c470 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c490 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c4a0 82 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c4a1 .cfa: $rsp 16 +
+STACK CFI 9c4aa $rbx: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 9c530 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c534 .cfa: $rsp 16 +
+STACK CFI INIT 9c550 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c551 .cfa: $rsp 16 +
+STACK CFI 9c554 $rbx: .cfa -16 + ^
+STACK CFI 9c558 .cfa: $rsp 80 +
+STACK CFI INIT 9c580 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c5a0 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c5b0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c5c0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c5e0 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c5f0 102 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c5f8 $rbx: .cfa -56 + ^
+STACK CFI 9c60a $r12: .cfa -40 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 9c61b .cfa: $rsp 64 +
+STACK CFI 9c621 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI INIT 9c700 827 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c702 .cfa: $rsp 16 +
+STACK CFI 9c705 $r15: .cfa -16 + ^
+STACK CFI 9c707 .cfa: $rsp 24 +
+STACK CFI 9c70a $r14: .cfa -24 + ^
+STACK CFI 9c70c .cfa: $rsp 32 +
+STACK CFI 9c70e .cfa: $rsp 40 +
+STACK CFI 9c70f .cfa: $rsp 48 +
+STACK CFI 9c710 .cfa: $rsp 56 +
+STACK CFI 9c717 .cfa: $rsp 352 +
+STACK CFI 9c727 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 9cf30 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9cf31 .cfa: $rsp 16 +
+STACK CFI 9cf34 $rbx: .cfa -16 + ^
+STACK CFI INIT 9cf50 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9cf54 .cfa: $rsp 16 +
+STACK CFI 9cf61 .cfa: $rsp 8 +
+STACK CFI INIT 9cf70 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9cf74 .cfa: $rsp 16 +
+STACK CFI 9cf95 .cfa: $rsp 8 +
+STACK CFI INIT 9cfb0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9cfe0 14e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9cfe1 .cfa: $rsp 16 +
+STACK CFI 9cfe4 $rbx: .cfa -16 + ^
+STACK CFI 9cfeb .cfa: $rsp 224 +
+STACK CFI INIT 9e1ba 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e1c8 .cfa: $rsp 0 +
+STACK CFI 9e1cc .cfa: $rsp 128 +
+STACK CFI 9e1d4 .cfa: $rsp -128 +
+STACK CFI INIT 9e1d9 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e1e7 .cfa: $rsp 0 +
+STACK CFI 9e1eb .cfa: $rsp 128 +
+STACK CFI 9e1f3 .cfa: $rsp -128 +
+STACK CFI INIT 9e1f8 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e206 .cfa: $rsp 0 +
+STACK CFI 9e20a .cfa: $rsp 128 +
+STACK CFI 9e212 .cfa: $rsp -128 +
+STACK CFI INIT 9e217 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e225 .cfa: $rsp 0 +
+STACK CFI 9e229 .cfa: $rsp 128 +
+STACK CFI 9e231 .cfa: $rsp -128 +
+STACK CFI INIT 9e236 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e244 .cfa: $rsp 0 +
+STACK CFI 9e248 .cfa: $rsp 128 +
+STACK CFI 9e250 .cfa: $rsp -128 +
+STACK CFI INIT 9e255 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 9e263 .cfa: $rsp 0 +
+STACK CFI 9e267 .cfa: $rsp 128 +
+STACK CFI 9e26f .cfa: $rsp -128 +
+STACK CFI INIT 9d130 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9d170 2e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d171 .cfa: $rsp 16 +
+STACK CFI 9d175 .cfa: $rsp 24 +
+STACK CFI 9d17b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 136400 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136404 .cfa: $rsp 16 +
+STACK CFI INIT 9d460 84 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d461 .cfa: $rsp 16 +
+STACK CFI 9d464 .cfa: $rsp 24 +
+STACK CFI 9d468 .cfa: $rsp 32 +
+STACK CFI 9d4a7 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 9d4f0 ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d4fd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 9d506 .cfa: $rsp 32 +
+STACK CFI 9d516 $r12: .cfa -16 + ^
+STACK CFI INIT 9d5c0 a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d5c2 .cfa: $rsp 16 +
+STACK CFI 9d5c5 $r14: .cfa -16 + ^
+STACK CFI 9d5c7 .cfa: $rsp 24 +
+STACK CFI 9d5ca $r13: .cfa -24 + ^
+STACK CFI 9d5cc .cfa: $rsp 32 +
+STACK CFI 9d5cd .cfa: $rsp 40 +
+STACK CFI 9d5ce $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 9d670 715 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d671 .cfa: $rsp 16 +
+STACK CFI 9d67b $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9d686 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 9d68c $r13: .cfa -40 + ^
+STACK CFI 9d692 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 9dd90 19e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9dd9e .cfa: $rsp 32 +
+STACK CFI 9dda2 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 9df30 175 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9df32 .cfa: $rsp 16 +
+STACK CFI 9df35 $r12: .cfa -16 + ^
+STACK CFI 9df36 .cfa: $rsp 24 +
+STACK CFI 9df39 $rbp: .cfa -24 + ^
+STACK CFI 9df3a .cfa: $rsp 32 +
+STACK CFI 9df3d $rbx: .cfa -32 + ^
+STACK CFI 9df41 .cfa: $rsp 48 +
+STACK CFI INIT 9e0b0 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e0b4 .cfa: $rsp 16 +
+STACK CFI INIT 9e150 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e154 .cfa: $rsp 16 +
+STACK CFI INIT 9e280 69c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e282 .cfa: $rsp 16 +
+STACK CFI 9e284 .cfa: $rsp 24 +
+STACK CFI 9e286 .cfa: $rsp 32 +
+STACK CFI 9e289 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 9e28b .cfa: $rsp 40 +
+STACK CFI 9e28c .cfa: $rsp 48 +
+STACK CFI 9e28f $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 9e290 .cfa: $rsp 56 +
+STACK CFI 9e293 $rbx: .cfa -56 + ^
+STACK CFI 9e297 .cfa: $rsp 96 +
+STACK CFI INIT 9e920 e0e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e921 .cfa: $rsp 16 +
+STACK CFI 9e924 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 9e92f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 9e933 $rbx: .cfa -56 + ^
+STACK CFI INIT 9f730 1fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9f732 .cfa: $rsp 16 +
+STACK CFI 9f734 .cfa: $rsp 24 +
+STACK CFI 9f736 .cfa: $rsp 32 +
+STACK CFI 9f738 .cfa: $rsp 40 +
+STACK CFI 9f73b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 9f73c .cfa: $rsp 48 +
+STACK CFI 9f73f $rbp: .cfa -48 + ^
+STACK CFI 9f740 .cfa: $rsp 56 +
+STACK CFI 9f743 $rbx: .cfa -56 + ^
+STACK CFI 9f747 .cfa: $rsp 96 +
+STACK CFI INIT 9f930 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9f960 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9f990 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9f994 .cfa: $rsp 32 +
+STACK CFI INIT 9f9e0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9fa30 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9fa50 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9fa51 .cfa: $rsp 16 +
+STACK CFI 9fa54 $rbx: .cfa -16 + ^
+STACK CFI 9fa58 .cfa: $rsp 48 +
+STACK CFI INIT 9fae0 54a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9fae8 $r12: .cfa -40 + ^
+STACK CFI 9fafc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 9fb12 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 352 +
+STACK CFI INIT a0030 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a003b .cfa: $rsp 16 +
+STACK CFI INIT a0070 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a0090 d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a0170 2cd9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a0172 .cfa: $rsp 16 +
+STACK CFI a0174 .cfa: $rsp 24 +
+STACK CFI a0176 .cfa: $rsp 32 +
+STACK CFI a0179 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI a017b .cfa: $rsp 40 +
+STACK CFI a017e $r12: .cfa -40 + ^
+STACK CFI a017f .cfa: $rsp 48 +
+STACK CFI a0182 $rbp: .cfa -48 + ^
+STACK CFI a0183 .cfa: $rsp 56 +
+STACK CFI a0186 $rbx: .cfa -56 + ^
+STACK CFI a018d .cfa: $rsp 272 +
+STACK CFI INIT a2e50 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a2e60 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a2e70 20b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a2e72 .cfa: $rsp 16 +
+STACK CFI a2e75 $r15: .cfa -16 + ^
+STACK CFI a2e77 .cfa: $rsp 24 +
+STACK CFI a2e79 .cfa: $rsp 32 +
+STACK CFI a2e7b .cfa: $rsp 40 +
+STACK CFI a2e7e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI a2e7f .cfa: $rsp 48 +
+STACK CFI a2e80 .cfa: $rsp 56 +
+STACK CFI a2e87 .cfa: $rsp 304 +
+STACK CFI a2eb8 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT a4f30 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a4f34 .cfa: $rsp 32 +
+STACK CFI INIT a4f50 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a4f60 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a4f62 .cfa: $rsp 16 +
+STACK CFI a4f68 $r14: .cfa -16 + ^
+STACK CFI a4f6a .cfa: $rsp 24 +
+STACK CFI a4f6c .cfa: $rsp 32 +
+STACK CFI a4f6d .cfa: $rsp 40 +
+STACK CFI a4f70 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^
+STACK CFI a4f71 .cfa: $rsp 48 +
+STACK CFI a4f74 $rbx: .cfa -48 + ^
+STACK CFI INIT a4fc0 20fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a4fc1 .cfa: $rsp 16 +
+STACK CFI a4fc4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI a5018 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT a70c0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a70c4 .cfa: $rsp 32 +
+STACK CFI INIT a70e0 a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a70e2 .cfa: $rsp 16 +
+STACK CFI a70e3 .cfa: $rsp 24 +
+STACK CFI a70e6 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI a70e7 .cfa: $rsp 32 +
+STACK CFI a70eb $rbx: .cfa -32 + ^
+STACK CFI INIT a7190 135 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7192 .cfa: $rsp 16 +
+STACK CFI a7194 .cfa: $rsp 24 +
+STACK CFI a719a $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI a719c .cfa: $rsp 32 +
+STACK CFI a719e .cfa: $rsp 40 +
+STACK CFI a719f .cfa: $rsp 48 +
+STACK CFI a71a0 .cfa: $rsp 56 +
+STACK CFI a71a3 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI a71a7 .cfa: $rsp 80 +
+STACK CFI INIT a72d0 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a72d1 .cfa: $rsp 16 +
+STACK CFI a72d3 $rbx: .cfa -16 + ^
+STACK CFI a72d7 .cfa: $rsp 32 +
+STACK CFI INIT a73b0 189 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a73bc $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a73ca .cfa: $rsp 64 +
+STACK CFI a73cf $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT a7540 2b4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a754d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI a7565 .cfa: $rsp 64 +
+STACK CFI a7573 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT a7800 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a780e .cfa: $rsp 32 +
+STACK CFI a7814 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT a7860 152 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7861 .cfa: $rsp 16 +
+STACK CFI a7864 $rbp: .cfa -16 + ^
+STACK CFI a7865 .cfa: $rsp 24 +
+STACK CFI a7868 $rbx: .cfa -24 + ^
+STACK CFI a786c .cfa: $rsp 32 +
+STACK CFI INIT a79c0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a79c1 .cfa: $rsp 16 +
+STACK CFI a79c5 $rbx: .cfa -16 + ^
+STACK CFI INIT a7a10 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7a11 .cfa: $rsp 16 +
+STACK CFI a7a14 $rbx: .cfa -16 + ^
+STACK CFI a7a1b .cfa: $rsp 224 +
+STACK CFI INIT a7a60 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7a61 .cfa: $rsp 16 +
+STACK CFI a7a64 $rbx: .cfa -16 + ^
+STACK CFI a7a6b .cfa: $rsp 224 +
+STACK CFI INIT a7ae0 f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7aed $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a7afb .cfa: $rsp 48 +
+STACK CFI a7b03 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT a7be0 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7be4 .cfa: $rsp 16 +
+STACK CFI INIT a7c20 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7c24 .cfa: $rsp 16 +
+STACK CFI a7c26 $rbx: .cfa -16 + ^
+STACK CFI INIT a7d2f 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7d3a .cfa: $rsp 0 +
+STACK CFI a7d3e .cfa: $rsp 128 +
+STACK CFI a7d46 .cfa: $rsp -128 +
+STACK CFI INIT a7d4b 19 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7d56 .cfa: $rsp 0 +
+STACK CFI a7d5a .cfa: $rsp 128 +
+STACK CFI a7d62 .cfa: $rsp -128 +
+STACK CFI INIT a7c50 df .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7c52 .cfa: $rsp 16 +
+STACK CFI a7c5b .cfa: $rsp 24 +
+STACK CFI a7c5c .cfa: $rsp 32 +
+STACK CFI a7c5d .cfa: $rsp 40 +
+STACK CFI a7c60 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a7c64 .cfa: $rsp 48 +
+STACK CFI INIT a7eca 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7ed5 .cfa: $rsp 0 +
+STACK CFI a7ed9 .cfa: $rsp 128 +
+STACK CFI a7ee1 .cfa: $rsp -128 +
+STACK CFI INIT a7ee6 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7ef1 .cfa: $rsp 0 +
+STACK CFI a7ef5 .cfa: $rsp 128 +
+STACK CFI a7efd .cfa: $rsp -128 +
+STACK CFI INIT a7d70 15a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7d72 .cfa: $rsp 16 +
+STACK CFI a7d74 .cfa: $rsp 24 +
+STACK CFI a7d77 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI a7d79 .cfa: $rsp 32 +
+STACK CFI a7d7c $r13: .cfa -32 + ^
+STACK CFI a7d83 .cfa: $rsp 40 +
+STACK CFI a7d84 .cfa: $rsp 48 +
+STACK CFI a7d85 .cfa: $rsp 56 +
+STACK CFI a7d88 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI a7d8c .cfa: $rsp 80 +
+STACK CFI INIT a7f6e 19 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7f79 .cfa: $rsp 0 +
+STACK CFI a7f7d .cfa: $rsp 128 +
+STACK CFI a7f85 .cfa: $rsp -128 +
+STACK CFI INIT a7f87 19 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a7f92 .cfa: $rsp 0 +
+STACK CFI a7f96 .cfa: $rsp 128 +
+STACK CFI a7f9e .cfa: $rsp -128 +
+STACK CFI INIT a7f10 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7f11 .cfa: $rsp 16 +
+STACK CFI a7f19 $rbx: .cfa -16 + ^
+STACK CFI INIT a8018 19 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a8023 .cfa: $rsp 0 +
+STACK CFI a8027 .cfa: $rsp 128 +
+STACK CFI a802f .cfa: $rsp -128 +
+STACK CFI INIT a8031 19 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a803c .cfa: $rsp 0 +
+STACK CFI a8040 .cfa: $rsp 128 +
+STACK CFI a8048 .cfa: $rsp -128 +
+STACK CFI INIT a7fa0 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7fad $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI a7fb1 .cfa: $rsp 32 +
+STACK CFI INIT a8050 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a8060 1f3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8062 .cfa: $rsp 16 +
+STACK CFI a8064 .cfa: $rsp 24 +
+STACK CFI a8066 .cfa: $rsp 32 +
+STACK CFI a8068 .cfa: $rsp 40 +
+STACK CFI a8069 .cfa: $rsp 48 +
+STACK CFI a806c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI a806d .cfa: $rsp 56 +
+STACK CFI a8071 .cfa: $rsp 128 +
+STACK CFI a807b $rbx: .cfa -56 + ^
+STACK CFI INIT a8260 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8262 .cfa: $rsp 16 +
+STACK CFI a8263 .cfa: $rsp 24 +
+STACK CFI a8266 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI a8267 .cfa: $rsp 32 +
+STACK CFI a8272 $rbx: .cfa -32 + ^
+STACK CFI INIT a82a0 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a82c0 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a82e0 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a82e2 .cfa: $rsp 16 +
+STACK CFI a82ef .cfa: $rsp 24 +
+STACK CFI a82f1 .cfa: $rsp 32 +
+STACK CFI a82f2 .cfa: $rsp 40 +
+STACK CFI a82f3 .cfa: $rsp 48 +
+STACK CFI a82fd $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT a8370 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a8380 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8381 .cfa: $rsp 16 +
+STACK CFI a8384 .cfa: $rsp 24 +
+STACK CFI a8386 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI a8392 .cfa: $rsp 176 +
+STACK CFI INIT a8410 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a841c $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI a8434 .cfa: $rsp 48 +
+STACK CFI a8437 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT a861f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a862d .cfa: $rsp 0 +
+STACK CFI a8631 .cfa: $rsp 128 +
+STACK CFI a8639 .cfa: $rsp -128 +
+STACK CFI INIT a863e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a864c .cfa: $rsp 0 +
+STACK CFI a8650 .cfa: $rsp 128 +
+STACK CFI a8658 .cfa: $rsp -128 +
+STACK CFI INIT a8480 19f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8482 .cfa: $rsp 16 +
+STACK CFI a8484 .cfa: $rsp 24 +
+STACK CFI a8485 .cfa: $rsp 32 +
+STACK CFI a8486 .cfa: $rsp 40 +
+STACK CFI a8489 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a848d .cfa: $rsp 96 +
+STACK CFI INIT a8660 354 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8661 .cfa: $rsp 16 +
+STACK CFI a8664 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI a8669 $r15: .cfa -24 + ^
+STACK CFI a8678 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT a89c0 297 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a89c2 .cfa: $rsp 16 +
+STACK CFI a89c5 $r15: .cfa -16 + ^
+STACK CFI a89c7 .cfa: $rsp 24 +
+STACK CFI a89ca $r14: .cfa -24 + ^
+STACK CFI a89cc .cfa: $rsp 32 +
+STACK CFI a89ce .cfa: $rsp 40 +
+STACK CFI a89cf .cfa: $rsp 48 +
+STACK CFI a89d2 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI a89d3 .cfa: $rsp 56 +
+STACK CFI a89d7 .cfa: $rsp 128 +
+STACK CFI a89f0 $rbx: .cfa -56 + ^
+STACK CFI INIT a8c60 d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8c62 .cfa: $rsp 16 +
+STACK CFI a8c63 .cfa: $rsp 24 +
+STACK CFI a8c65 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI a8c66 .cfa: $rsp 32 +
+STACK CFI a8c69 $rbx: .cfa -32 + ^
+STACK CFI a8c72 .cfa: $rsp 64 +
+STACK CFI INIT a8d30 b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8d3d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a8d4b .cfa: $rsp 64 +
+STACK CFI a8d50 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT a8df0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8df4 .cfa: $rsp 64 +
+STACK CFI INIT a8ed8 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a8ee6 .cfa: $rsp 0 +
+STACK CFI a8eea .cfa: $rsp 128 +
+STACK CFI a8ef2 .cfa: $rsp -128 +
+STACK CFI INIT a8ef4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a8f02 .cfa: $rsp 0 +
+STACK CFI a8f06 .cfa: $rsp 128 +
+STACK CFI a8f0e .cfa: $rsp -128 +
+STACK CFI INIT a8e50 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8e54 .cfa: $rsp 16 +
+STACK CFI INIT a9035 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a9043 .cfa: $rsp 0 +
+STACK CFI a9047 .cfa: $rsp 128 +
+STACK CFI a904f .cfa: $rsp -128 +
+STACK CFI INIT a9054 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a9062 .cfa: $rsp 0 +
+STACK CFI a9066 .cfa: $rsp 128 +
+STACK CFI a906e .cfa: $rsp -128 +
+STACK CFI INIT a8f10 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a8f11 .cfa: $rsp 16 +
+STACK CFI a8f19 .cfa: $rsp 24 +
+STACK CFI a8f1b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI a8f1f .cfa: $rsp 48 +
+STACK CFI INIT a9195 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a91a3 .cfa: $rsp 0 +
+STACK CFI a91a7 .cfa: $rsp 128 +
+STACK CFI a91af .cfa: $rsp -128 +
+STACK CFI INIT a91b4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI a91c2 .cfa: $rsp 0 +
+STACK CFI a91c6 .cfa: $rsp 128 +
+STACK CFI a91ce .cfa: $rsp -128 +
+STACK CFI INIT a9070 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9071 .cfa: $rsp 16 +
+STACK CFI a9079 .cfa: $rsp 24 +
+STACK CFI a907c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI a9080 .cfa: $rsp 48 +
+STACK CFI INIT a9414 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI a941e .cfa: $rsp 0 +
+STACK CFI a9422 .cfa: $rsp 128 +
+STACK CFI a942a .cfa: $rsp -128 +
+STACK CFI INIT a942f 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI a9439 .cfa: $rsp 0 +
+STACK CFI a943d .cfa: $rsp 128 +
+STACK CFI a9445 .cfa: $rsp -128 +
+STACK CFI INIT a944a 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI a9454 .cfa: $rsp 0 +
+STACK CFI a9458 .cfa: $rsp 128 +
+STACK CFI a9460 .cfa: $rsp -128 +
+STACK CFI INIT a91d0 244 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a91d2 .cfa: $rsp 16 +
+STACK CFI a91d4 .cfa: $rsp 24 +
+STACK CFI a91d6 .cfa: $rsp 32 +
+STACK CFI a91d8 .cfa: $rsp 40 +
+STACK CFI a91d9 .cfa: $rsp 48 +
+STACK CFI a91dc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI a91dd .cfa: $rsp 56 +
+STACK CFI a91e0 $rbx: .cfa -56 + ^
+STACK CFI a91e4 .cfa: $rsp 64 +
+STACK CFI INIT a9692 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a96a0 .cfa: $rsp 0 +
+STACK CFI a96a4 .cfa: $rsp 128 +
+STACK CFI a96ac .cfa: $rsp -128 +
+STACK CFI INIT a96b1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a96bf .cfa: $rsp 0 +
+STACK CFI a96c3 .cfa: $rsp 128 +
+STACK CFI a96cb .cfa: $rsp -128 +
+STACK CFI INIT a96d0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a96de .cfa: $rsp 0 +
+STACK CFI a96e2 .cfa: $rsp 128 +
+STACK CFI a96ea .cfa: $rsp -128 +
+STACK CFI INIT a96ef 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a96fd .cfa: $rsp 0 +
+STACK CFI a9701 .cfa: $rsp 128 +
+STACK CFI a9709 .cfa: $rsp -128 +
+STACK CFI INIT a970e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a971c .cfa: $rsp 0 +
+STACK CFI a9720 .cfa: $rsp 128 +
+STACK CFI a9728 .cfa: $rsp -128 +
+STACK CFI INIT a972d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI a973b .cfa: $rsp 0 +
+STACK CFI a973f .cfa: $rsp 128 +
+STACK CFI a9747 .cfa: $rsp -128 +
+STACK CFI INIT a9470 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9474 .cfa: $rsp 80 +
+STACK CFI INIT a9550 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9554 .cfa: $rsp 16 +
+STACK CFI INIT a95f0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a95f4 .cfa: $rsp 32 +
+STACK CFI INIT a9750 25d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9752 .cfa: $rsp 16 +
+STACK CFI a9755 $r15: .cfa -16 + ^
+STACK CFI a9757 .cfa: $rsp 24 +
+STACK CFI a975a $r14: .cfa -24 + ^
+STACK CFI a975c .cfa: $rsp 32 +
+STACK CFI a975f $r13: .cfa -32 + ^
+STACK CFI a9761 .cfa: $rsp 40 +
+STACK CFI a9762 .cfa: $rsp 48 +
+STACK CFI a9765 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI a9766 .cfa: $rsp 56 +
+STACK CFI a976a .cfa: $rsp 112 +
+STACK CFI a977e $rbx: .cfa -56 + ^
+STACK CFI INIT a99b0 25d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a99b2 .cfa: $rsp 16 +
+STACK CFI a99b5 $r15: .cfa -16 + ^
+STACK CFI a99b7 .cfa: $rsp 24 +
+STACK CFI a99ba $r14: .cfa -24 + ^
+STACK CFI a99bc .cfa: $rsp 32 +
+STACK CFI a99bf $r13: .cfa -32 + ^
+STACK CFI a99c1 .cfa: $rsp 40 +
+STACK CFI a99c2 .cfa: $rsp 48 +
+STACK CFI a99c5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI a99c6 .cfa: $rsp 56 +
+STACK CFI a99ca .cfa: $rsp 112 +
+STACK CFI a99de $rbx: .cfa -56 + ^
+STACK CFI INIT aa186 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa190 .cfa: $rsp 0 +
+STACK CFI aa194 .cfa: $rsp 128 +
+STACK CFI aa19c .cfa: $rsp -128 +
+STACK CFI INIT aa1a1 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa1ab .cfa: $rsp 0 +
+STACK CFI aa1af .cfa: $rsp 128 +
+STACK CFI aa1b7 .cfa: $rsp -128 +
+STACK CFI INIT aa1bc 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa1c6 .cfa: $rsp 0 +
+STACK CFI aa1ca .cfa: $rsp 128 +
+STACK CFI aa1d2 .cfa: $rsp -128 +
+STACK CFI INIT aa1d7 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa1e1 .cfa: $rsp 0 +
+STACK CFI aa1e5 .cfa: $rsp 128 +
+STACK CFI aa1ed .cfa: $rsp -128 +
+STACK CFI INIT a9c10 2e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9c12 .cfa: $rsp 16 +
+STACK CFI a9c15 $r15: .cfa -16 + ^
+STACK CFI a9c17 .cfa: $rsp 24 +
+STACK CFI a9c1a $r14: .cfa -24 + ^
+STACK CFI a9c1c .cfa: $rsp 32 +
+STACK CFI a9c20 $r13: .cfa -32 + ^
+STACK CFI a9c22 .cfa: $rsp 40 +
+STACK CFI a9c25 $r12: .cfa -40 + ^
+STACK CFI a9c26 .cfa: $rsp 48 +
+STACK CFI a9c29 $rbp: .cfa -48 + ^
+STACK CFI a9c2a .cfa: $rsp 56 +
+STACK CFI a9c2d $rbx: .cfa -56 + ^
+STACK CFI a9c31 .cfa: $rsp 96 +
+STACK CFI INIT a9f00 286 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9f02 .cfa: $rsp 16 +
+STACK CFI a9f04 .cfa: $rsp 24 +
+STACK CFI a9f07 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI a9f09 .cfa: $rsp 32 +
+STACK CFI a9f0b .cfa: $rsp 40 +
+STACK CFI a9f0c .cfa: $rsp 48 +
+STACK CFI a9f0f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI a9f10 .cfa: $rsp 56 +
+STACK CFI a9f13 $rbx: .cfa -56 + ^
+STACK CFI a9f17 .cfa: $rsp 80 +
+STACK CFI INIT aa39e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa3ac .cfa: $rsp 0 +
+STACK CFI aa3b0 .cfa: $rsp 128 +
+STACK CFI aa3b8 .cfa: $rsp -128 +
+STACK CFI INIT aa3bd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa3cb .cfa: $rsp 0 +
+STACK CFI aa3cf .cfa: $rsp 128 +
+STACK CFI aa3d7 .cfa: $rsp -128 +
+STACK CFI INIT aa200 19e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa202 .cfa: $rsp 16 +
+STACK CFI aa204 .cfa: $rsp 24 +
+STACK CFI aa205 .cfa: $rsp 32 +
+STACK CFI aa206 .cfa: $rsp 40 +
+STACK CFI aa209 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI aa20d .cfa: $rsp 96 +
+STACK CFI INIT aa3e0 d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa3e1 .cfa: $rsp 16 +
+STACK CFI aa3e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI aa3e9 $r12: .cfa -24 + ^
+STACK CFI aa3ed $rbx: .cfa -32 + ^
+STACK CFI INIT aa4b0 100 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa4b4 .cfa: $rsp 48 +
+STACK CFI INIT aa638 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa646 .cfa: $rsp 0 +
+STACK CFI aa64a .cfa: $rsp 128 +
+STACK CFI aa652 .cfa: $rsp -128 +
+STACK CFI INIT aa654 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa662 .cfa: $rsp 0 +
+STACK CFI aa666 .cfa: $rsp 128 +
+STACK CFI aa66e .cfa: $rsp -128 +
+STACK CFI INIT aa5b0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa5b4 .cfa: $rsp 16 +
+STACK CFI INIT aa795 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa7a3 .cfa: $rsp 0 +
+STACK CFI aa7a7 .cfa: $rsp 128 +
+STACK CFI aa7af .cfa: $rsp -128 +
+STACK CFI INIT aa7b4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa7c2 .cfa: $rsp 0 +
+STACK CFI aa7c6 .cfa: $rsp 128 +
+STACK CFI aa7ce .cfa: $rsp -128 +
+STACK CFI INIT aa670 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa671 .cfa: $rsp 16 +
+STACK CFI aa679 .cfa: $rsp 24 +
+STACK CFI aa67c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI aa680 .cfa: $rsp 48 +
+STACK CFI INIT aa8f5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa903 .cfa: $rsp 0 +
+STACK CFI aa907 .cfa: $rsp 128 +
+STACK CFI aa90f .cfa: $rsp -128 +
+STACK CFI INIT aa914 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI aa922 .cfa: $rsp 0 +
+STACK CFI aa926 .cfa: $rsp 128 +
+STACK CFI aa92e .cfa: $rsp -128 +
+STACK CFI INIT aa7d0 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa7d1 .cfa: $rsp 16 +
+STACK CFI aa7d9 .cfa: $rsp 24 +
+STACK CFI aa7db $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI aa7df .cfa: $rsp 48 +
+STACK CFI INIT aab52 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aab60 .cfa: $rsp 0 +
+STACK CFI aab64 .cfa: $rsp 128 +
+STACK CFI aab6c .cfa: $rsp -128 +
+STACK CFI INIT aab71 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aab7f .cfa: $rsp 0 +
+STACK CFI aab83 .cfa: $rsp 128 +
+STACK CFI aab8b .cfa: $rsp -128 +
+STACK CFI INIT aab90 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aab9e .cfa: $rsp 0 +
+STACK CFI aaba2 .cfa: $rsp 128 +
+STACK CFI aabaa .cfa: $rsp -128 +
+STACK CFI INIT aabaf 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aabbd .cfa: $rsp 0 +
+STACK CFI aabc1 .cfa: $rsp 128 +
+STACK CFI aabc9 .cfa: $rsp -128 +
+STACK CFI INIT aabce 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aabdc .cfa: $rsp 0 +
+STACK CFI aabe0 .cfa: $rsp 128 +
+STACK CFI aabe8 .cfa: $rsp -128 +
+STACK CFI INIT aabed 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI aabfb .cfa: $rsp 0 +
+STACK CFI aabff .cfa: $rsp 128 +
+STACK CFI aac07 .cfa: $rsp -128 +
+STACK CFI INIT aa930 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa934 .cfa: $rsp 80 +
+STACK CFI INIT aaa10 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aaa14 .cfa: $rsp 16 +
+STACK CFI INIT aaab0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aaab4 .cfa: $rsp 32 +
+STACK CFI INIT aac10 25d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aac12 .cfa: $rsp 16 +
+STACK CFI aac15 $r15: .cfa -16 + ^
+STACK CFI aac17 .cfa: $rsp 24 +
+STACK CFI aac1a $r14: .cfa -24 + ^
+STACK CFI aac1c .cfa: $rsp 32 +
+STACK CFI aac1f $r13: .cfa -32 + ^
+STACK CFI aac21 .cfa: $rsp 40 +
+STACK CFI aac22 .cfa: $rsp 48 +
+STACK CFI aac25 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI aac26 .cfa: $rsp 56 +
+STACK CFI aac2a .cfa: $rsp 112 +
+STACK CFI aac3e $rbx: .cfa -56 + ^
+STACK CFI INIT aae70 25d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aae72 .cfa: $rsp 16 +
+STACK CFI aae75 $r15: .cfa -16 + ^
+STACK CFI aae77 .cfa: $rsp 24 +
+STACK CFI aae7a $r14: .cfa -24 + ^
+STACK CFI aae7c .cfa: $rsp 32 +
+STACK CFI aae7f $r13: .cfa -32 + ^
+STACK CFI aae81 .cfa: $rsp 40 +
+STACK CFI aae82 .cfa: $rsp 48 +
+STACK CFI aae85 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI aae86 .cfa: $rsp 56 +
+STACK CFI aae8a .cfa: $rsp 112 +
+STACK CFI aae9e $rbx: .cfa -56 + ^
+STACK CFI INIT ab606 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ab610 .cfa: $rsp 0 +
+STACK CFI ab614 .cfa: $rsp 128 +
+STACK CFI ab61c .cfa: $rsp -128 +
+STACK CFI INIT ab621 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ab62b .cfa: $rsp 0 +
+STACK CFI ab62f .cfa: $rsp 128 +
+STACK CFI ab637 .cfa: $rsp -128 +
+STACK CFI INIT ab63c 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ab646 .cfa: $rsp 0 +
+STACK CFI ab64a .cfa: $rsp 128 +
+STACK CFI ab652 .cfa: $rsp -128 +
+STACK CFI INIT ab657 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ab661 .cfa: $rsp 0 +
+STACK CFI ab665 .cfa: $rsp 128 +
+STACK CFI ab66d .cfa: $rsp -128 +
+STACK CFI INIT ab0d0 2d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab0d2 .cfa: $rsp 16 +
+STACK CFI ab0d4 .cfa: $rsp 24 +
+STACK CFI ab0d5 .cfa: $rsp 32 +
+STACK CFI ab0d8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI ab0de .cfa: $rsp 40 +
+STACK CFI ab0e1 $rbx: .cfa -40 + ^
+STACK CFI ab0e5 .cfa: $rsp 64 +
+STACK CFI INIT ab3b0 256 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab3b2 .cfa: $rsp 16 +
+STACK CFI ab3b4 .cfa: $rsp 24 +
+STACK CFI ab3b7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI ab3b9 .cfa: $rsp 32 +
+STACK CFI ab3bb .cfa: $rsp 40 +
+STACK CFI ab3bc .cfa: $rsp 48 +
+STACK CFI ab3bf $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI ab3c0 .cfa: $rsp 56 +
+STACK CFI ab3c3 $rbx: .cfa -56 + ^
+STACK CFI ab3c7 .cfa: $rsp 80 +
+STACK CFI INIT ab680 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ab6b0 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ab700 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab704 .cfa: $rsp 32 +
+STACK CFI INIT ab7a0 9d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab7a4 .cfa: $rsp 48 +
+STACK CFI INIT ab840 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ab860 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ab890 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab894 .cfa: $rsp 48 +
+STACK CFI INIT ab940 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ab970 1d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ab98b .cfa: $rsp 480 +
+STACK CFI ab993 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT abb50 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abb6d .cfa: $rsp 16 +
+STACK CFI abb90 .cfa: $rsp 8 +
+STACK CFI INIT abbb0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abbcd .cfa: $rsp 16 +
+STACK CFI abbf0 .cfa: $rsp 8 +
+STACK CFI INIT abc10 2cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abc11 .cfa: $rsp 16 +
+STACK CFI abc14 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI abc27 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT abee0 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abee1 .cfa: $rsp 0 + .ra: $rdi
+STACK CFI abf05 .cfa: $rsp 8 +
+STACK CFI INIT abf30 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT abf80 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT abfb0 c3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abfbd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI abfc9 .cfa: $rsp 208 +
+STACK CFI abfd1 $r12: .cfa -16 + ^
+STACK CFI INIT ac080 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ac090 1dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ac092 .cfa: $rsp 16 +
+STACK CFI ac094 .cfa: $rsp 24 +
+STACK CFI ac096 .cfa: $rsp 32 +
+STACK CFI ac098 .cfa: $rsp 40 +
+STACK CFI ac099 .cfa: $rsp 48 +
+STACK CFI ac09a .cfa: $rsp 56 +
+STACK CFI ac0a1 .cfa: $rsp 8352 +
+STACK CFI ac0b1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ac270 1b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ac272 .cfa: $rsp 16 +
+STACK CFI ac274 .cfa: $rsp 24 +
+STACK CFI ac276 .cfa: $rsp 32 +
+STACK CFI ac278 .cfa: $rsp 40 +
+STACK CFI ac279 .cfa: $rsp 48 +
+STACK CFI ac27a .cfa: $rsp 56 +
+STACK CFI ac281 .cfa: $rsp 8352 +
+STACK CFI ac2df $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ac430 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ac440 192 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ac442 .cfa: $rsp 16 +
+STACK CFI ac444 .cfa: $rsp 24 +
+STACK CFI ac446 .cfa: $rsp 32 +
+STACK CFI ac448 .cfa: $rsp 40 +
+STACK CFI ac449 .cfa: $rsp 48 +
+STACK CFI ac44a .cfa: $rsp 56 +
+STACK CFI ac451 .cfa: $rsp 8352 +
+STACK CFI ac4af $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ac5e0 485 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ac5e1 .cfa: $rsp 16 +
+STACK CFI ac5e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ac5ef $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ac5fa $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI ac60a $r15: .cfa -24 + ^
+STACK CFI INIT aca70 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acab0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acac0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acad0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acae0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acaf0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acb00 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acb30 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI acb34 .cfa: $rsp 64 +
+STACK CFI INIT acb90 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI acb94 .cfa: $rsp 64 +
+STACK CFI INIT acbf0 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI acbf1 .cfa: $rsp 16 +
+STACK CFI acbf4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI acbf9 $r13: .cfa -24 + ^
+STACK CFI acc01 $r12: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT acc90 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT accc0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT accf0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acd00 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acd10 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acd20 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acd50 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acd80 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acdb0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acde0 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI acde4 .cfa: $rsp 64 +
+STACK CFI INIT ace50 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ace54 .cfa: $rsp 64 +
+STACK CFI INIT acec0 f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT acfc0 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ad0e0 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ad1a0 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad1a1 .cfa: $rsp 16 +
+STACK CFI ad1a2 .cfa: $rsp 24 +
+STACK CFI ad1a6 .cfa: $rsp 48 +
+STACK CFI ad1aa $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ad260 20b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad271 .cfa: $rsp 544 +
+STACK CFI ad27a $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ad470 111 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad471 .cfa: $rsp 16 +
+STACK CFI ad474 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ad47f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI ad4a5 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ad590 405 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad597 $rbx: .cfa -32 + ^
+STACK CFI ad5ab .cfa: $rsp 96 +
+STACK CFI ad5b0 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI INIT ad9a0 26f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad9ac $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI ad9b8 .cfa: $rsp 544 +
+STACK CFI ad9bf $r12: .cfa -16 + ^
+STACK CFI INIT adc10 6e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT adc80 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT add00 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT add10 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI add11 .cfa: $rsp 16 +
+STACK CFI add14 $rbp: .cfa -16 + ^
+STACK CFI add15 .cfa: $rsp 24 +
+STACK CFI add19 .cfa: $rsp 32 +
+STACK CFI add22 $rbx: .cfa -24 + ^
+STACK CFI INIT add70 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI add71 .cfa: $rsp 16 +
+STACK CFI add74 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI add7f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI add91 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT ade20 110 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ade22 .cfa: $rsp 16 +
+STACK CFI ade25 $r15: .cfa -16 + ^
+STACK CFI ade27 .cfa: $rsp 24 +
+STACK CFI ade29 .cfa: $rsp 32 +
+STACK CFI ade2b .cfa: $rsp 40 +
+STACK CFI ade2c .cfa: $rsp 48 +
+STACK CFI ade2f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI ade30 .cfa: $rsp 56 +
+STACK CFI ade34 .cfa: $rsp 80 +
+STACK CFI ade38 $rbx: .cfa -56 + ^
+STACK CFI INIT adf30 78e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI adf31 .cfa: $rsp 16 +
+STACK CFI adf34 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI adf39 $r15: .cfa -24 + ^
+STACK CFI adf43 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ae6c0 144d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ae6c1 .cfa: $rsp 16 +
+STACK CFI ae6c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ae6cd $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI ae6d2 $r12: .cfa -48 + ^
+STACK CFI ae6d6 $rbx: .cfa -56 + ^
+STACK CFI INIT afb10 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT afb40 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI afb41 .cfa: $rsp 16 +
+STACK CFI afb44 $rbp: .cfa -16 + ^
+STACK CFI afb45 .cfa: $rsp 24 +
+STACK CFI afb49 $rbx: .cfa -24 + ^
+STACK CFI afb4d .cfa: $rsp 32 +
+STACK CFI INIT afc50 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI afc51 .cfa: $rsp 16 +
+STACK CFI afc54 $rbp: .cfa -16 + ^
+STACK CFI afc55 .cfa: $rsp 24 +
+STACK CFI afc59 $rbx: .cfa -24 + ^
+STACK CFI afc5d .cfa: $rsp 32 +
+STACK CFI INIT afd60 79f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI afd61 .cfa: $rsp 16 +
+STACK CFI afd64 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI afd6d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI afd99 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT b0500 1640 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b0501 .cfa: $rsp 16 +
+STACK CFI b0504 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b0509 $r15: .cfa -24 + ^
+STACK CFI b0515 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI b05a0 $rbx: .cfa -56 + ^
+STACK CFI INIT b1b40 76f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b1b41 .cfa: $rsp 16 +
+STACK CFI b1b44 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b1b4d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI b1b79 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT b22b0 17e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b22b2 .cfa: $rsp 16 +
+STACK CFI b22b5 $r15: .cfa -16 + ^
+STACK CFI b22b7 .cfa: $rsp 24 +
+STACK CFI b22b9 .cfa: $rsp 32 +
+STACK CFI b22bc $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI b22c1 .cfa: $rsp 40 +
+STACK CFI b22c2 .cfa: $rsp 48 +
+STACK CFI b22c5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI b22cc .cfa: $rsp 56 +
+STACK CFI b22d3 .cfa: $rsp 2368 +
+STACK CFI b22ef $rbx: .cfa -56 + ^
+STACK CFI INIT b3aa0 369 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b3aa1 .cfa: $rsp 16 +
+STACK CFI b3aa4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b3aaf $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b3ae1 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT b3e10 6e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b3e1d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI b3e26 .cfa: $rsp 128 +
+STACK CFI b3e35 $rbx: .cfa -32 + ^
+STACK CFI INIT b4500 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b4502 .cfa: $rsp 16 +
+STACK CFI b4508 .cfa: $rsp 24 +
+STACK CFI b450d .cfa: $rsp 32 +
+STACK CFI b450f .cfa: $rsp 40 +
+STACK CFI b4513 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI b4514 .cfa: $rsp 48 +
+STACK CFI b4516 $rbp: .cfa -48 + ^
+STACK CFI b451a .cfa: $rsp 56 +
+STACK CFI b451e $rbx: .cfa -56 + ^
+STACK CFI INIT b45f0 106d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b45f2 .cfa: $rsp 16 +
+STACK CFI b45f4 .cfa: $rsp 24 +
+STACK CFI b45f6 .cfa: $rsp 32 +
+STACK CFI b45f8 .cfa: $rsp 40 +
+STACK CFI b45f9 .cfa: $rsp 48 +
+STACK CFI b45fa .cfa: $rsp 56 +
+STACK CFI b4601 .cfa: $rsp 192 +
+STACK CFI b460b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT b5660 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5661 .cfa: $rsp 16 +
+STACK CFI b5665 .cfa: $rsp 32 +
+STACK CFI b566c $rbx: .cfa -16 + ^
+STACK CFI INIT b56d0 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b56d4 .cfa: $rsp 32 +
+STACK CFI INIT b56f0 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b56f4 .cfa: $rsp 32 +
+STACK CFI INIT b5710 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5714 .cfa: $rsp 32 +
+STACK CFI INIT b5730 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5734 .cfa: $rsp 32 +
+STACK CFI INIT b5750 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5754 .cfa: $rsp 32 +
+STACK CFI INIT b5770 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5774 .cfa: $rsp 32 +
+STACK CFI INIT b5790 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b57c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b57f0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5820 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5850 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5880 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b58b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b58e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5910 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5917 .cfa: $rsp 16 +
+STACK CFI INIT 1119c0 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5970 15e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5971 .cfa: $rsp 16 +
+STACK CFI b5974 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b597d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI b5982 $r12: .cfa -48 + ^
+STACK CFI b5986 $rbx: .cfa -56 + ^
+STACK CFI INIT 1119d0 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5ad0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5af0 .cfa: $rsp 16 +
+STACK CFI b5b16 .cfa: $rsp 8 +
+STACK CFI INIT b5b40 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5b60 .cfa: $rsp 16 +
+STACK CFI b5b86 .cfa: $rsp 8 +
+STACK CFI INIT b5bb0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5bd0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5bd4 .cfa: $rsp 32 +
+STACK CFI INIT b5c10 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5c17 .cfa: $rsp 16 +
+STACK CFI b5c24 $rbx: .cfa -16 + ^
+STACK CFI INIT b5cd0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5d00 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5d04 .cfa: $rsp 16 +
+STACK CFI INIT b5d40 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5d60 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b98f5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI b9903 .cfa: $rsp 0 +
+STACK CFI b9907 .cfa: $rsp 128 +
+STACK CFI b990f .cfa: $rsp -128 +
+STACK CFI INIT b9914 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI b9922 .cfa: $rsp 0 +
+STACK CFI b9926 .cfa: $rsp 128 +
+STACK CFI b992e .cfa: $rsp -128 +
+STACK CFI INIT b5d70 c8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5e40 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5e60 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136450 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136454 .cfa: $rsp 16 +
+STACK CFI INIT b5e80 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5e81 .cfa: $rsp 16 +
+STACK CFI b5e82 .cfa: $rsp 24 +
+STACK CFI b5e85 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI b5e89 .cfa: $rsp 32 +
+STACK CFI INIT b5ec0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5ee0 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5ee1 .cfa: $rsp 16 +
+STACK CFI b5eec $rbx: .cfa -16 + ^
+STACK CFI INIT b5fa0 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b5fa1 .cfa: $rsp 16 +
+STACK CFI b5fa4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b5faa $r15: .cfa -24 + ^
+STACK CFI b5fb3 $r14: .cfa -32 + ^
+STACK CFI b5fb8 $r13: .cfa -40 + ^
+STACK CFI b5fc1 $r12: .cfa -48 + ^
+STACK CFI b5fc7 $rbx: .cfa -56 + ^
+STACK CFI INIT b6090 1bfc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b6091 .cfa: $rsp 16 +
+STACK CFI b6094 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b609d $r15: .cfa -24 + ^
+STACK CFI b60a4 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI b60a9 $r12: .cfa -48 + ^
+STACK CFI b60b4 $rbx: .cfa -56 + ^
+STACK CFI INIT b7c90 615 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b7c9d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b7cb5 .cfa: $rsp 112 +
+STACK CFI b7cb8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT b82b0 d1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b82b2 .cfa: $rsp 16 +
+STACK CFI b82c2 .cfa: $rsp 24 +
+STACK CFI b82c4 .cfa: $rsp 32 +
+STACK CFI b82c6 .cfa: $rsp 40 +
+STACK CFI b82c7 .cfa: $rsp 48 +
+STACK CFI b82c8 .cfa: $rsp 56 +
+STACK CFI b82cf .cfa: $rsp 416 +
+STACK CFI b830f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT b8fd0 925 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b8fd1 .cfa: $rsp 16 +
+STACK CFI b8fd9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI b8fe4 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b9000 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT b9940 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c921f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI c922d .cfa: $rsp 0 +
+STACK CFI c9231 .cfa: $rsp 128 +
+STACK CFI c9239 .cfa: $rsp -128 +
+STACK CFI INIT c923e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI c924c .cfa: $rsp 0 +
+STACK CFI c9250 .cfa: $rsp 128 +
+STACK CFI c9258 .cfa: $rsp -128 +
+STACK CFI INIT c925d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI c926b .cfa: $rsp 0 +
+STACK CFI c926f .cfa: $rsp 128 +
+STACK CFI c9277 .cfa: $rsp -128 +
+STACK CFI INIT c927c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI c928a .cfa: $rsp 0 +
+STACK CFI c928e .cfa: $rsp 128 +
+STACK CFI c9296 .cfa: $rsp -128 +
+STACK CFI INIT b99a0 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9a00 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9a10 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9ab0 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9b20 141 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9c70 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9c90 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9cd0 213 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b9cd2 .cfa: $rsp 16 +
+STACK CFI b9cd7 .cfa: $rsp 24 +
+STACK CFI b9cd9 .cfa: $rsp 32 +
+STACK CFI b9cdb .cfa: $rsp 40 +
+STACK CFI b9cde $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI b9ce3 .cfa: $rsp 48 +
+STACK CFI b9ce4 .cfa: $rsp 56 +
+STACK CFI b9ce8 .cfa: $rsp 144 +
+STACK CFI b9d0f $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT b9ef0 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b9f70 1c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b9f7d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b9f8a $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI b9f9a .cfa: $rsp 112 +
+STACK CFI b9fad $r12: .cfa -40 + ^ $r14: .cfa -24 + ^
+STACK CFI INIT ba140 2ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba142 .cfa: $rsp 16 +
+STACK CFI ba143 .cfa: $rsp 24 +
+STACK CFI ba146 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI ba147 .cfa: $rsp 32 +
+STACK CFI ba14a $rbx: .cfa -32 + ^
+STACK CFI ba14e .cfa: $rsp 48 +
+STACK CFI INIT ba3f0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba3f2 .cfa: $rsp 16 +
+STACK CFI ba3f5 $r12: .cfa -16 + ^
+STACK CFI ba3f6 .cfa: $rsp 24 +
+STACK CFI ba3f9 $rbp: .cfa -24 + ^
+STACK CFI ba3fa .cfa: $rsp 32 +
+STACK CFI ba3fd $rbx: .cfa -32 + ^
+STACK CFI INIT ba450 53 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba452 .cfa: $rsp 16 +
+STACK CFI ba455 $r12: .cfa -16 + ^
+STACK CFI ba456 .cfa: $rsp 24 +
+STACK CFI ba459 $rbp: .cfa -24 + ^
+STACK CFI ba45a .cfa: $rsp 32 +
+STACK CFI ba45d $rbx: .cfa -32 + ^
+STACK CFI INIT ba4b0 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba4b1 .cfa: $rsp 16 +
+STACK CFI ba4b9 $rbx: .cfa -16 + ^
+STACK CFI INIT ba4e0 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba4ed $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI ba4f1 .cfa: $rsp 32 +
+STACK CFI INIT ba540 fc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba541 .cfa: $rsp 16 +
+STACK CFI ba544 $rbx: .cfa -16 + ^
+STACK CFI ba548 .cfa: $rsp 48 +
+STACK CFI INIT ba640 a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba642 .cfa: $rsp 16 +
+STACK CFI ba645 $r13: .cfa -16 + ^
+STACK CFI ba647 .cfa: $rsp 24 +
+STACK CFI ba648 .cfa: $rsp 32 +
+STACK CFI ba649 .cfa: $rsp 40 +
+STACK CFI ba64c $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ba650 .cfa: $rsp 64 +
+STACK CFI INIT ba6f0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba6f4 .cfa: $rsp 32 +
+STACK CFI INIT ba710 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba71d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ba735 .cfa: $rsp 80 +
+STACK CFI ba741 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT ba8d0 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba8de .cfa: $rsp 48 +
+STACK CFI ba8e5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ba960 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba961 .cfa: $rsp 16 +
+STACK CFI ba964 $rbx: .cfa -16 + ^
+STACK CFI INIT ba9c0 e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ba9c2 .cfa: $rsp 16 +
+STACK CFI ba9c4 .cfa: $rsp 24 +
+STACK CFI ba9c6 .cfa: $rsp 32 +
+STACK CFI ba9c8 .cfa: $rsp 40 +
+STACK CFI ba9c9 .cfa: $rsp 48 +
+STACK CFI ba9ca .cfa: $rsp 56 +
+STACK CFI ba9ce .cfa: $rsp 80 +
+STACK CFI ba9d5 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT baab0 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI baab2 .cfa: $rsp 16 +
+STACK CFI baab6 .cfa: $rsp 24 +
+STACK CFI baab9 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI baaba .cfa: $rsp 32 +
+STACK CFI baabc $rbx: .cfa -32 + ^
+STACK CFI INIT bab10 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bab11 .cfa: $rsp 16 +
+STACK CFI bab14 $rbx: .cfa -16 + ^
+STACK CFI INIT bab50 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bab51 .cfa: $rsp 16 +
+STACK CFI bab54 $rbx: .cfa -16 + ^
+STACK CFI INIT baba0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT babd0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI babd8 .cfa: $rsp 16 +
+STACK CFI INIT babf0 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI babf1 .cfa: $rsp 16 +
+STACK CFI babf2 .cfa: $rsp 24 +
+STACK CFI babf6 .cfa: $rsp 32 +
+STACK CFI babf9 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT bac50 18c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bac52 .cfa: $rsp 16 +
+STACK CFI bac54 .cfa: $rsp 24 +
+STACK CFI bac56 .cfa: $rsp 32 +
+STACK CFI bac59 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI bac5b .cfa: $rsp 40 +
+STACK CFI bac5c .cfa: $rsp 48 +
+STACK CFI bac5d .cfa: $rsp 56 +
+STACK CFI bac61 .cfa: $rsp 64 +
+STACK CFI bac69 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT bade0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bade1 .cfa: $rsp 16 +
+STACK CFI bade4 $rbx: .cfa -16 + ^
+STACK CFI INIT 1364c0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT bae30 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bae3d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI bae46 .cfa: $rsp 32 +
+STACK CFI bae48 $rbp: .cfa -24 + ^
+STACK CFI INIT baee0 231 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI baef3 .cfa: $rsp 32 +
+STACK CFI baefa $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT bb120 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb12d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI bb136 .cfa: $rsp 32 +
+STACK CFI bb13e $r12: .cfa -16 + ^
+STACK CFI INIT bb1d0 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb1de .cfa: $rsp 32 +
+STACK CFI bb1e6 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT bb240 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb242 .cfa: $rsp 16 +
+STACK CFI bb245 $r15: .cfa -16 + ^
+STACK CFI bb247 .cfa: $rsp 24 +
+STACK CFI bb24b $r14: .cfa -24 + ^
+STACK CFI bb24d .cfa: $rsp 32 +
+STACK CFI bb24f .cfa: $rsp 40 +
+STACK CFI bb250 .cfa: $rsp 48 +
+STACK CFI bb253 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI bb257 .cfa: $rsp 56 +
+STACK CFI bb25a $rbx: .cfa -56 + ^
+STACK CFI bb25e .cfa: $rsp 80 +
+STACK CFI INIT bb340 1c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb342 .cfa: $rsp 16 +
+STACK CFI bb346 .cfa: $rsp 24 +
+STACK CFI bb349 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI bb34a .cfa: $rsp 32 +
+STACK CFI bb34d $rbx: .cfa -32 + ^
+STACK CFI INIT bb500 14b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb50e .cfa: $rsp 32 +
+STACK CFI bb513 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT bb650 d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb652 .cfa: $rsp 16 +
+STACK CFI bb655 $r15: .cfa -16 + ^
+STACK CFI bb657 .cfa: $rsp 24 +
+STACK CFI bb65a $r14: .cfa -24 + ^
+STACK CFI bb65c .cfa: $rsp 32 +
+STACK CFI bb65f $r13: .cfa -32 + ^
+STACK CFI bb661 .cfa: $rsp 40 +
+STACK CFI bb664 $r12: .cfa -40 + ^
+STACK CFI bb665 .cfa: $rsp 48 +
+STACK CFI bb668 $rbp: .cfa -48 + ^
+STACK CFI bb669 .cfa: $rsp 56 +
+STACK CFI bb66d .cfa: $rsp 64 +
+STACK CFI bb66f $rbx: .cfa -56 + ^
+STACK CFI INIT bb730 128 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb732 .cfa: $rsp 16 +
+STACK CFI bb735 $r15: .cfa -16 + ^
+STACK CFI bb737 .cfa: $rsp 24 +
+STACK CFI bb739 .cfa: $rsp 32 +
+STACK CFI bb73b .cfa: $rsp 40 +
+STACK CFI bb73e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI bb73f .cfa: $rsp 48 +
+STACK CFI bb741 $rbp: .cfa -48 + ^
+STACK CFI bb742 .cfa: $rsp 56 +
+STACK CFI bb744 $rbx: .cfa -56 + ^
+STACK CFI bb748 .cfa: $rsp 96 +
+STACK CFI INIT bb860 223 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bb862 .cfa: $rsp 16 +
+STACK CFI bb864 .cfa: $rsp 24 +
+STACK CFI bb866 .cfa: $rsp 32 +
+STACK CFI bb868 .cfa: $rsp 40 +
+STACK CFI bb869 .cfa: $rsp 48 +
+STACK CFI bb86c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI bb86d .cfa: $rsp 56 +
+STACK CFI bb870 $rbx: .cfa -56 + ^
+STACK CFI bb874 .cfa: $rsp 80 +
+STACK CFI INIT bba90 79 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bba91 .cfa: $rsp 16 +
+STACK CFI bba94 $rbp: .cfa -16 + ^
+STACK CFI bba95 .cfa: $rsp 24 +
+STACK CFI bba98 $rbx: .cfa -24 + ^
+STACK CFI bba9c .cfa: $rsp 32 +
+STACK CFI INIT bbb10 1f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bbb1d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI bbb2a $r14: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI bbb38 .cfa: $rsp 64 +
+STACK CFI bbb44 $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT bbd10 230 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bbd12 .cfa: $rsp 16 +
+STACK CFI bbd14 .cfa: $rsp 24 +
+STACK CFI bbd16 .cfa: $rsp 32 +
+STACK CFI bbd19 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI bbd1f .cfa: $rsp 40 +
+STACK CFI bbd22 $r12: .cfa -40 + ^
+STACK CFI bbd23 .cfa: $rsp 48 +
+STACK CFI bbd26 $rbp: .cfa -48 + ^
+STACK CFI bbd27 .cfa: $rsp 56 +
+STACK CFI bbd2a $rbx: .cfa -56 + ^
+STACK CFI bbd2e .cfa: $rsp 128 +
+STACK CFI INIT bbf40 1d1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bbf4d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI bbf65 .cfa: $rsp 96 +
+STACK CFI bbf80 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT bc120 b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc12d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI bc13b .cfa: $rsp 48 +
+STACK CFI bc145 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT bc1e0 2d1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc1e2 .cfa: $rsp 16 +
+STACK CFI bc1e4 .cfa: $rsp 24 +
+STACK CFI bc1e7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI bc1e9 .cfa: $rsp 32 +
+STACK CFI bc1eb .cfa: $rsp 40 +
+STACK CFI bc1ee $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI bc1ef .cfa: $rsp 48 +
+STACK CFI bc1f2 $rbp: .cfa -48 + ^
+STACK CFI bc1f3 .cfa: $rsp 56 +
+STACK CFI bc1f7 .cfa: $rsp 96 +
+STACK CFI bc207 $rbx: .cfa -56 + ^
+STACK CFI INIT bc4c0 230 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc4c2 .cfa: $rsp 16 +
+STACK CFI bc4c4 .cfa: $rsp 24 +
+STACK CFI bc4c6 .cfa: $rsp 32 +
+STACK CFI bc4c8 .cfa: $rsp 40 +
+STACK CFI bc4c9 .cfa: $rsp 48 +
+STACK CFI bc4cc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI bc4d1 .cfa: $rsp 56 +
+STACK CFI bc4d4 $rbx: .cfa -56 + ^
+STACK CFI bc4d8 .cfa: $rsp 128 +
+STACK CFI INIT bc6f0 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc6f1 .cfa: $rsp 16 +
+STACK CFI bc6f4 $rbp: .cfa -16 + ^
+STACK CFI bc6f5 .cfa: $rsp 24 +
+STACK CFI bc6f8 $rbx: .cfa -24 + ^
+STACK CFI bc6fc .cfa: $rsp 32 +
+STACK CFI INIT bc790 1db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc792 .cfa: $rsp 16 +
+STACK CFI bc794 .cfa: $rsp 24 +
+STACK CFI bc796 .cfa: $rsp 32 +
+STACK CFI bc798 .cfa: $rsp 40 +
+STACK CFI bc799 .cfa: $rsp 48 +
+STACK CFI bc79c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI bc79d .cfa: $rsp 56 +
+STACK CFI bc7a1 .cfa: $rsp 112 +
+STACK CFI bc7ab $rbx: .cfa -56 + ^
+STACK CFI INIT bc970 cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bc971 .cfa: $rsp 16 +
+STACK CFI bc972 .cfa: $rsp 24 +
+STACK CFI bc975 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI bc979 .cfa: $rsp 32 +
+STACK CFI INIT bca40 118 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bca4a .cfa: $rsp 16 +
+STACK CFI bca5b $rbx: .cfa -16 + ^
+STACK CFI INIT bcb60 b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bcb61 .cfa: $rsp 16 +
+STACK CFI bcb64 $rbp: .cfa -16 + ^
+STACK CFI bcb67 .cfa: $rsp 24 +
+STACK CFI bcb6a $rbx: .cfa -24 + ^
+STACK CFI bcb6e .cfa: $rsp 32 +
+STACK CFI INIT bcc20 70f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bcc2d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI bcc43 .cfa: $rsp 80 +
+STACK CFI bcc4f $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT bd330 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bd33e .cfa: $rsp 32 +
+STACK CFI bd341 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT bd360 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bd362 .cfa: $rsp 16 +
+STACK CFI bd368 $r14: .cfa -16 + ^
+STACK CFI bd36a .cfa: $rsp 24 +
+STACK CFI bd36d $r13: .cfa -24 + ^
+STACK CFI bd36f .cfa: $rsp 32 +
+STACK CFI bd372 $r12: .cfa -32 + ^
+STACK CFI bd373 .cfa: $rsp 40 +
+STACK CFI bd378 $rbp: .cfa -40 + ^
+STACK CFI bd379 .cfa: $rsp 48 +
+STACK CFI bd37c $rbx: .cfa -48 + ^
+STACK CFI INIT bd400 66c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bd402 .cfa: $rsp 16 +
+STACK CFI bd404 .cfa: $rsp 24 +
+STACK CFI bd406 .cfa: $rsp 32 +
+STACK CFI bd408 .cfa: $rsp 40 +
+STACK CFI bd409 .cfa: $rsp 48 +
+STACK CFI bd40a .cfa: $rsp 56 +
+STACK CFI bd40d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI bd411 .cfa: $rsp 176 +
+STACK CFI INIT bda70 ec .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT bdb60 700 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bdb6c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI bdb87 .cfa: $rsp 128 +
+STACK CFI bdb8d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT be260 112 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be261 .cfa: $rsp 16 +
+STACK CFI be262 .cfa: $rsp 24 +
+STACK CFI be265 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI be269 .cfa: $rsp 32 +
+STACK CFI INIT be380 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be38d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI be396 .cfa: $rsp 32 +
+STACK CFI be3a2 $r12: .cfa -16 + ^
+STACK CFI INIT be420 38d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be422 .cfa: $rsp 16 +
+STACK CFI be425 $r15: .cfa -16 + ^
+STACK CFI be427 .cfa: $rsp 24 +
+STACK CFI be429 .cfa: $rsp 32 +
+STACK CFI be42b .cfa: $rsp 40 +
+STACK CFI be42e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI be42f .cfa: $rsp 48 +
+STACK CFI be430 .cfa: $rsp 56 +
+STACK CFI be433 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI be437 .cfa: $rsp 112 +
+STACK CFI INIT be7b0 15d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be7b2 .cfa: $rsp 16 +
+STACK CFI be7b4 .cfa: $rsp 24 +
+STACK CFI be7b6 .cfa: $rsp 32 +
+STACK CFI be7b8 .cfa: $rsp 40 +
+STACK CFI be7b9 .cfa: $rsp 48 +
+STACK CFI be7bc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI be7bd .cfa: $rsp 56 +
+STACK CFI be7c0 $rbx: .cfa -56 + ^
+STACK CFI be7c4 .cfa: $rsp 96 +
+STACK CFI INIT be910 253 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be912 .cfa: $rsp 16 +
+STACK CFI be914 .cfa: $rsp 24 +
+STACK CFI be917 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI be919 .cfa: $rsp 32 +
+STACK CFI be91b .cfa: $rsp 40 +
+STACK CFI be91e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI be91f .cfa: $rsp 48 +
+STACK CFI be922 $rbp: .cfa -48 + ^
+STACK CFI be923 .cfa: $rsp 56 +
+STACK CFI be927 .cfa: $rsp 64 +
+STACK CFI be935 $rbx: .cfa -56 + ^
+STACK CFI INIT beb70 259 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI beb72 .cfa: $rsp 16 +
+STACK CFI beb74 .cfa: $rsp 24 +
+STACK CFI beb76 .cfa: $rsp 32 +
+STACK CFI beb78 .cfa: $rsp 40 +
+STACK CFI beb7b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI beb7c .cfa: $rsp 48 +
+STACK CFI beb7e $rbp: .cfa -48 + ^
+STACK CFI beb7f .cfa: $rsp 56 +
+STACK CFI beb82 $rbx: .cfa -56 + ^
+STACK CFI beb88 .cfa: $rsp 160 +
+STACK CFI INIT bedd0 d1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bedd2 .cfa: $rsp 16 +
+STACK CFI bedd5 $r15: .cfa -16 + ^
+STACK CFI bedd7 .cfa: $rsp 24 +
+STACK CFI bedd9 .cfa: $rsp 32 +
+STACK CFI beddb .cfa: $rsp 40 +
+STACK CFI beddc .cfa: $rsp 48 +
+STACK CFI beddf $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI bede0 .cfa: $rsp 56 +
+STACK CFI bede3 $rbx: .cfa -56 + ^
+STACK CFI bede7 .cfa: $rsp 112 +
+STACK CFI INIT beeb0 b3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI beeb2 .cfa: $rsp 16 +
+STACK CFI beebb .cfa: $rsp 24 +
+STACK CFI beebd .cfa: $rsp 32 +
+STACK CFI beebf .cfa: $rsp 40 +
+STACK CFI beec2 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI beec3 .cfa: $rsp 48 +
+STACK CFI beec4 .cfa: $rsp 56 +
+STACK CFI beec7 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI beecb .cfa: $rsp 160 +
+STACK CFI INIT bf9f0 775 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bf9f2 .cfa: $rsp 16 +
+STACK CFI bf9f4 .cfa: $rsp 24 +
+STACK CFI bf9f6 .cfa: $rsp 32 +
+STACK CFI bf9f8 .cfa: $rsp 40 +
+STACK CFI bf9f9 .cfa: $rsp 48 +
+STACK CFI bf9fb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI bf9fc .cfa: $rsp 56 +
+STACK CFI bf9fe $rbx: .cfa -56 + ^
+STACK CFI bfa05 .cfa: $rsp 240 +
+STACK CFI INIT c0170 215 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c017d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c018a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI c0198 .cfa: $rsp 96 +
+STACK CFI c019b $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT c0390 7ec .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c0392 .cfa: $rsp 16 +
+STACK CFI c0394 .cfa: $rsp 24 +
+STACK CFI c0396 .cfa: $rsp 32 +
+STACK CFI c0398 .cfa: $rsp 40 +
+STACK CFI c039b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c039c .cfa: $rsp 48 +
+STACK CFI c039d .cfa: $rsp 56 +
+STACK CFI c03a4 .cfa: $rsp 288 +
+STACK CFI c03c9 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c0b80 1dd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c0b8d $r13: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI c0ba8 .cfa: $rsp 96 +
+STACK CFI c0bab $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT c0d60 35d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c0d62 .cfa: $rsp 16 +
+STACK CFI c0d64 .cfa: $rsp 24 +
+STACK CFI c0d66 .cfa: $rsp 32 +
+STACK CFI c0d68 .cfa: $rsp 40 +
+STACK CFI c0d69 .cfa: $rsp 48 +
+STACK CFI c0d6a .cfa: $rsp 56 +
+STACK CFI c0d71 .cfa: $rsp 192 +
+STACK CFI c0d92 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c10c0 835 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c10c2 .cfa: $rsp 16 +
+STACK CFI c10c7 .cfa: $rsp 24 +
+STACK CFI c10c9 .cfa: $rsp 32 +
+STACK CFI c10cb .cfa: $rsp 40 +
+STACK CFI c10ce $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c10cf .cfa: $rsp 48 +
+STACK CFI c10d0 .cfa: $rsp 56 +
+STACK CFI c10d3 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c10da .cfa: $rsp 240 +
+STACK CFI INIT c1900 da8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c1901 .cfa: $rsp 16 +
+STACK CFI c1904 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c190d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI c1923 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c26b0 834 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c26b1 .cfa: $rsp 16 +
+STACK CFI c26b7 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c26c3 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c2ef0 1592 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c2ef2 .cfa: $rsp 16 +
+STACK CFI c2ef4 .cfa: $rsp 24 +
+STACK CFI c2ef6 .cfa: $rsp 32 +
+STACK CFI c2ef8 .cfa: $rsp 40 +
+STACK CFI c2efb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c2efc .cfa: $rsp 48 +
+STACK CFI c2efd .cfa: $rsp 56 +
+STACK CFI c2eff $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c2f0b .cfa: $rsp 528 +
+STACK CFI INIT c4490 133 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c449d $r12: .cfa -32 + ^ $rbx: .cfa -48 + ^
+STACK CFI c44aa $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI c44b3 .cfa: $rsp 96 +
+STACK CFI c44c3 $rbp: .cfa -40 + ^
+STACK CFI INIT c45d0 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c45de .cfa: $rsp 16 +
+STACK CFI INIT 1119e0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c4600 c8e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c4602 .cfa: $rsp 16 +
+STACK CFI c4604 .cfa: $rsp 24 +
+STACK CFI c4607 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c4609 .cfa: $rsp 32 +
+STACK CFI c460c $r13: .cfa -32 + ^
+STACK CFI c460e .cfa: $rsp 40 +
+STACK CFI c4611 $r12: .cfa -40 + ^
+STACK CFI c4612 .cfa: $rsp 48 +
+STACK CFI c4615 $rbp: .cfa -48 + ^
+STACK CFI c4616 .cfa: $rsp 56 +
+STACK CFI c4619 $rbx: .cfa -56 + ^
+STACK CFI c461d .cfa: $rsp 64 +
+STACK CFI INIT c5290 1cc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c5292 .cfa: $rsp 16 +
+STACK CFI c5295 $r15: .cfa -16 + ^
+STACK CFI c5297 .cfa: $rsp 24 +
+STACK CFI c529a $r14: .cfa -24 + ^
+STACK CFI c529c .cfa: $rsp 32 +
+STACK CFI c529e .cfa: $rsp 40 +
+STACK CFI c52a1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI c52a7 .cfa: $rsp 48 +
+STACK CFI c52aa $rbp: .cfa -48 + ^
+STACK CFI c52ab .cfa: $rsp 56 +
+STACK CFI c52af .cfa: $rsp 128 +
+STACK CFI c52c6 $rbx: .cfa -56 + ^
+STACK CFI INIT c5460 a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c546d $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI c547b .cfa: $rsp 48 +
+STACK CFI c5483 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT c5510 6cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c5511 .cfa: $rsp 16 +
+STACK CFI c5514 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c551b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI c5522 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI c5525 $rbx: .cfa -56 + ^
+STACK CFI INIT c5be0 122 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c5be2 .cfa: $rsp 16 +
+STACK CFI c5be8 .cfa: $rsp 24 +
+STACK CFI c5be9 .cfa: $rsp 32 +
+STACK CFI c5bed $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT c5d10 495 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c5d12 .cfa: $rsp 16 +
+STACK CFI c5d14 .cfa: $rsp 24 +
+STACK CFI c5d17 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c5d19 .cfa: $rsp 32 +
+STACK CFI c5d1c $r13: .cfa -32 + ^
+STACK CFI c5d1e .cfa: $rsp 40 +
+STACK CFI c5d1f .cfa: $rsp 48 +
+STACK CFI c5d20 .cfa: $rsp 56 +
+STACK CFI c5d24 .cfa: $rsp 160 +
+STACK CFI c5d36 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c61b0 112 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c61bd $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^
+STACK CFI c61ca $r14: .cfa -16 + ^ $rbx: .cfa -48 + ^
+STACK CFI c61d3 .cfa: $rsp 96 +
+STACK CFI c61e7 $r12: .cfa -32 + ^
+STACK CFI INIT c62d0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c62d4 .cfa: $rsp 48 +
+STACK CFI INIT c6300 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c6304 .cfa: $rsp 48 +
+STACK CFI INIT c6330 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c6334 .cfa: $rsp 32 +
+STACK CFI INIT c6350 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c6354 .cfa: $rsp 32 +
+STACK CFI INIT c6370 1daf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c6372 .cfa: $rsp 16 +
+STACK CFI c6378 $r15: .cfa -16 + ^
+STACK CFI c637d .cfa: $rsp 24 +
+STACK CFI c6380 $r14: .cfa -24 + ^
+STACK CFI c6389 .cfa: $rsp 32 +
+STACK CFI c6390 $r13: .cfa -32 + ^
+STACK CFI c6392 .cfa: $rsp 40 +
+STACK CFI c6395 $r12: .cfa -40 + ^
+STACK CFI c6396 .cfa: $rsp 48 +
+STACK CFI c6399 $rbp: .cfa -48 + ^
+STACK CFI c639a .cfa: $rsp 56 +
+STACK CFI c63a1 .cfa: $rsp 448 +
+STACK CFI c63bc $rbx: .cfa -56 + ^
+STACK CFI INIT c8120 145 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c8122 .cfa: $rsp 16 +
+STACK CFI c8125 $r15: .cfa -16 + ^
+STACK CFI c8127 .cfa: $rsp 24 +
+STACK CFI c8129 .cfa: $rsp 32 +
+STACK CFI c812c $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI c812e .cfa: $rsp 40 +
+STACK CFI c812f .cfa: $rsp 48 +
+STACK CFI c8132 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI c8133 .cfa: $rsp 56 +
+STACK CFI c8136 $rbx: .cfa -56 + ^
+STACK CFI c813a .cfa: $rsp 96 +
+STACK CFI INIT c8270 fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c8272 .cfa: $rsp 16 +
+STACK CFI c8274 .cfa: $rsp 24 +
+STACK CFI c8276 .cfa: $rsp 32 +
+STACK CFI c8279 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI c827b .cfa: $rsp 40 +
+STACK CFI c827e $r12: .cfa -40 + ^
+STACK CFI c827f .cfa: $rsp 48 +
+STACK CFI c8280 .cfa: $rsp 56 +
+STACK CFI c8283 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c8287 .cfa: $rsp 96 +
+STACK CFI INIT c8370 bad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c8372 .cfa: $rsp 16 +
+STACK CFI c8375 $r15: .cfa -16 + ^
+STACK CFI c8377 .cfa: $rsp 24 +
+STACK CFI c8379 .cfa: $rsp 32 +
+STACK CFI c837b .cfa: $rsp 40 +
+STACK CFI c837e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI c837f .cfa: $rsp 48 +
+STACK CFI c8382 $rbp: .cfa -48 + ^
+STACK CFI c8383 .cfa: $rsp 56 +
+STACK CFI c838a .cfa: $rsp 256 +
+STACK CFI c83b1 $rbx: .cfa -56 + ^
+STACK CFI INIT c8f20 138 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c8f2d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI c8f36 .cfa: $rsp 32 +
+STACK CFI c8f3f $r12: .cfa -16 + ^
+STACK CFI INIT c9060 79 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9064 .cfa: $rsp 16 +
+STACK CFI INIT c90e0 13f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9102 .cfa: $rsp 48 +
+STACK CFI c9108 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT c92a0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c92b0 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c92be .cfa: $rsp 32 +
+STACK CFI c92c0 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT c9300 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9304 .cfa: $rsp 16 +
+STACK CFI INIT c9320 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c932d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI c9331 .cfa: $rsp 32 +
+STACK CFI INIT c93b0 b8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c93bd $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI c93d7 .cfa: $rsp 48 +
+STACK CFI c93da $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT c9470 98 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c947d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI c948b .cfa: $rsp 32 +
+STACK CFI c948e $r12: .cfa -16 + ^
+STACK CFI INIT c9510 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9520 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9530 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c95c0 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9650 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9660 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9680 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9690 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c96a0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c96a4 .cfa: $rsp 32 +
+STACK CFI INIT c96c0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c96c4 .cfa: $rsp 32 +
+STACK CFI INIT c96e0 84 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c96e1 .cfa: $rsp 16 +
+STACK CFI c96e9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c96ff $rbx: .cfa -24 + ^
+STACK CFI INIT c9770 59a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9771 .cfa: $rsp 16 +
+STACK CFI c9779 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI c97c2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT c9d10 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9da0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9db0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9dc0 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9e50 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9e70 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c9e80 d9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9e81 .cfa: $rsp 16 +
+STACK CFI c9e89 .cfa: $rsp 24 +
+STACK CFI c9e90 .cfa: $rsp 1328 +
+STACK CFI c9e93 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT c9f60 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9f6b .cfa: $rsp 16 +
+STACK CFI INIT ca409 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ca417 .cfa: $rsp 0 +
+STACK CFI ca41b .cfa: $rsp 128 +
+STACK CFI ca423 .cfa: $rsp -128 +
+STACK CFI INIT ca428 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ca436 .cfa: $rsp 0 +
+STACK CFI ca43a .cfa: $rsp 128 +
+STACK CFI ca442 .cfa: $rsp -128 +
+STACK CFI INIT c9fa0 1b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9fc0 .cfa: $rsp 1344 +
+STACK CFI c9fc3 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT ca160 255 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca161 .cfa: $rsp 16 +
+STACK CFI ca166 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ca16d $r12: .cfa -48 + ^
+STACK CFI ca17f $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI ca190 $r13: .cfa -40 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT ca3c0 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca3ce .cfa: $rsp 32 +
+STACK CFI ca3d1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ca450 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca451 .cfa: $rsp 16 +
+STACK CFI ca454 $rbp: .cfa -16 + ^
+STACK CFI ca455 .cfa: $rsp 24 +
+STACK CFI ca459 .cfa: $rsp 32 +
+STACK CFI ca45e $rbx: .cfa -24 + ^
+STACK CFI INIT ca4b0 b3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca4bd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI ca4c6 .cfa: $rsp 48 +
+STACK CFI ca4d2 $r12: .cfa -16 + ^
+STACK CFI INIT ca570 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca571 .cfa: $rsp 16 +
+STACK CFI ca574 $rbx: .cfa -16 + ^
+STACK CFI ca578 .cfa: $rsp 32 +
+STACK CFI INIT ca5e0 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca5ed $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI ca5fa $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI ca603 .cfa: $rsp 48 +
+STACK CFI ca60f $r14: .cfa -16 + ^
+STACK CFI INIT ca6d0 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca6dd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI ca6e6 .cfa: $rsp 32 +
+STACK CFI ca6e9 $r12: .cfa -16 + ^
+STACK CFI INIT ca7a0 e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca7ad $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI ca7ba $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI ca7c3 .cfa: $rsp 48 +
+STACK CFI ca7d8 $r14: .cfa -16 + ^
+STACK CFI INIT ca890 7a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca892 .cfa: $rsp 16 +
+STACK CFI ca895 $r15: .cfa -16 + ^
+STACK CFI ca897 .cfa: $rsp 24 +
+STACK CFI ca899 .cfa: $rsp 32 +
+STACK CFI ca89b .cfa: $rsp 40 +
+STACK CFI ca89c .cfa: $rsp 48 +
+STACK CFI ca89d .cfa: $rsp 56 +
+STACK CFI ca8a0 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ca8a7 .cfa: $rsp 448 +
+STACK CFI INIT cb040 1a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb042 .cfa: $rsp 16 +
+STACK CFI cb044 .cfa: $rsp 24 +
+STACK CFI cb046 .cfa: $rsp 32 +
+STACK CFI cb048 .cfa: $rsp 40 +
+STACK CFI cb049 .cfa: $rsp 48 +
+STACK CFI cb04c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI cb04d .cfa: $rsp 56 +
+STACK CFI cb050 $rbx: .cfa -56 + ^
+STACK CFI cb054 .cfa: $rsp 160 +
+STACK CFI INIT cb1f0 12e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb1f2 .cfa: $rsp 16 +
+STACK CFI cb1f5 $r12: .cfa -16 + ^
+STACK CFI cb1f6 .cfa: $rsp 24 +
+STACK CFI cb1f9 $rbp: .cfa -24 + ^
+STACK CFI cb1fa .cfa: $rsp 32 +
+STACK CFI cb1fd $rbx: .cfa -32 + ^
+STACK CFI INIT cb320 10f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb322 .cfa: $rsp 16 +
+STACK CFI cb323 .cfa: $rsp 24 +
+STACK CFI cb326 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI cb327 .cfa: $rsp 32 +
+STACK CFI cb32a $rbx: .cfa -32 + ^
+STACK CFI cb32e .cfa: $rsp 48 +
+STACK CFI INIT cb430 10b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb432 .cfa: $rsp 16 +
+STACK CFI cb433 .cfa: $rsp 24 +
+STACK CFI cb434 .cfa: $rsp 32 +
+STACK CFI cb437 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI cb43b .cfa: $rsp 64 +
+STACK CFI INIT cb540 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb54d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI cb55b .cfa: $rsp 48 +
+STACK CFI cb564 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT cb5c0 3ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb5c1 .cfa: $rsp 16 +
+STACK CFI cb5c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI cb5f2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT cb9b0 17e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb9b2 .cfa: $rsp 16 +
+STACK CFI cb9b4 .cfa: $rsp 24 +
+STACK CFI cb9b6 .cfa: $rsp 32 +
+STACK CFI cb9b8 .cfa: $rsp 40 +
+STACK CFI cb9bb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI cb9bc .cfa: $rsp 48 +
+STACK CFI cb9bd .cfa: $rsp 56 +
+STACK CFI cb9c0 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI cb9c7 .cfa: $rsp 320 +
+STACK CFI INIT cd1a0 414 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cd1a2 .cfa: $rsp 16 +
+STACK CFI cd1a4 .cfa: $rsp 24 +
+STACK CFI cd1a6 .cfa: $rsp 32 +
+STACK CFI cd1a8 .cfa: $rsp 40 +
+STACK CFI cd1a9 .cfa: $rsp 48 +
+STACK CFI cd1ac $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI cd1ad .cfa: $rsp 56 +
+STACK CFI cd1b0 $rbx: .cfa -56 + ^
+STACK CFI cd1b7 .cfa: $rsp 208 +
+STACK CFI INIT cd5c0 cd7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cd5c2 .cfa: $rsp 16 +
+STACK CFI cd5c5 $r15: .cfa -16 + ^
+STACK CFI cd5c7 .cfa: $rsp 24 +
+STACK CFI cd5c9 .cfa: $rsp 32 +
+STACK CFI cd5cb .cfa: $rsp 40 +
+STACK CFI cd5cc .cfa: $rsp 48 +
+STACK CFI cd5cd .cfa: $rsp 56 +
+STACK CFI cd5d0 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI cd5d7 .cfa: $rsp 400 +
+STACK CFI INIT ce2a0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce2c0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce2f0 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce2f4 .cfa: $rsp 16 +
+STACK CFI ce31f .cfa: $rsp 8 +
+STACK CFI INIT ce340 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce370 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce374 .cfa: $rsp 32 +
+STACK CFI INIT ce3a0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce3a4 .cfa: $rsp 32 +
+STACK CFI INIT ce3d0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce420 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce470 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce4c0 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce520 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce580 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce5d0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce600 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce630 8d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce63d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ce64e .cfa: $rsp 320 +
+STACK CFI ce659 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT ce6c0 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce6cd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ce6de .cfa: $rsp 320 +
+STACK CFI ce6e9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT ce750 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce760 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce790 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce7c0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce830 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce860 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce890 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce8ad .cfa: $rsp 16 +
+STACK CFI ce8d0 .cfa: $rsp 8 +
+STACK CFI INIT ce8f0 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce920 d8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce924 .cfa: $rsp 128 +
+STACK CFI INIT cea00 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cea04 .cfa: $rsp 16 +
+STACK CFI INIT cea20 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cea3d .cfa: $rsp 16 +
+STACK CFI cea60 .cfa: $rsp 8 +
+STACK CFI INIT cea80 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cea9d .cfa: $rsp 16 +
+STACK CFI ceac0 .cfa: $rsp 8 +
+STACK CFI INIT ceae0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ceafd .cfa: $rsp 16 +
+STACK CFI ceb20 .cfa: $rsp 8 +
+STACK CFI INIT ceb40 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ceb70 13d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ceb7c $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ceb8d .cfa: $rsp 192 +
+STACK CFI ceb9b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT cecb0 183 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cecbc $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI cecc8 .cfa: $rsp 176 +
+STACK CFI cecd6 $r12: .cfa -16 + ^
+STACK CFI INIT cee40 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cef10 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cef14 .cfa: $rsp 96 +
+STACK CFI INIT cef40 7f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cef41 .cfa: $rsp 16 +
+STACK CFI cef44 $rbp: .cfa -16 + ^
+STACK CFI cef45 .cfa: $rsp 24 +
+STACK CFI cef49 .cfa: $rsp 128 +
+STACK CFI cef72 $rbx: .cfa -24 + ^
+STACK CFI INIT cefc0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ceff0 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ceff1 .cfa: $rsp 16 +
+STACK CFI ceff5 .cfa: $rsp 48 +
+STACK CFI cf024 $rbx: .cfa -16 + ^
+STACK CFI INIT cf100 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf130 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf160 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf190 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf1c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf1f0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf20d .cfa: $rsp 16 +
+STACK CFI cf230 .cfa: $rsp 8 +
+STACK CFI INIT cf250 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf280 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf2b0 148 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf2bd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI cf2c6 .cfa: $rsp 48 +
+STACK CFI cf2ce $r12: .cfa -16 + ^
+STACK CFI INIT cf400 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf411 .cfa: $rsp 4128 +
+STACK CFI cf417 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT cf490 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf491 .cfa: $rsp 16 +
+STACK CFI cf49f $rbx: .cfa -16 + ^ .cfa: $rsp 304 +
+STACK CFI INIT cf520 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf550 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf580 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cf5b0 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1119f0 230 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1119f2 .cfa: $rsp 16 +
+STACK CFI 1119f4 .cfa: $rsp 24 +
+STACK CFI 1119f6 .cfa: $rsp 32 +
+STACK CFI 1119f9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 1119fb .cfa: $rsp 40 +
+STACK CFI 1119fc .cfa: $rsp 48 +
+STACK CFI 1119fd .cfa: $rsp 56 +
+STACK CFI 111a00 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 111a07 .cfa: $rsp 272 +
+STACK CFI INIT cf5e0 307 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf5ed $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI cf5fe .cfa: $rsp 448 +
+STACK CFI cf61c $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 111c20 1ae .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111c22 .cfa: $rsp 16 +
+STACK CFI 111c24 .cfa: $rsp 24 +
+STACK CFI 111c26 .cfa: $rsp 32 +
+STACK CFI 111c29 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 111c2b .cfa: $rsp 40 +
+STACK CFI 111c2c .cfa: $rsp 48 +
+STACK CFI 111c2d .cfa: $rsp 56 +
+STACK CFI 111c30 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 111c37 .cfa: $rsp 256 +
+STACK CFI INIT cf8f0 31a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf8fd $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI cf91b .cfa: $rsp 464 +
+STACK CFI cf922 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT cfc10 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cfc14 .cfa: $rsp 80 +
+STACK CFI INIT cfc30 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfc60 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfc90 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfcc0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfcf0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfd20 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfd50 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfd80 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfdb0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cfde0 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cfde4 .cfa: $rsp 48 +
+STACK CFI INIT cfe80 c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cfe84 .cfa: $rsp 64 +
+STACK CFI INIT cff50 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cff70 1a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cff7d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI cff95 .cfa: $rsp 320 +
+STACK CFI cff9b $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT d0120 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d0121 .cfa: $rsp 16 +
+STACK CFI d0126 $rbx: .cfa -16 + ^
+STACK CFI INIT d0170 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d01a0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d01f0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d0240 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d0260 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d02a0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d02ad $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI d02b1 .cfa: $rsp 32 +
+STACK CFI INIT d0310 335 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d031d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI d032a $r12: .cfa -32 + ^ $r14: .cfa -16 + ^
+STACK CFI d0336 .cfa: $rsp 224 +
+STACK CFI d0345 $r13: .cfa -24 + ^
+STACK CFI INIT d0650 690 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d0652 .cfa: $rsp 16 +
+STACK CFI d0654 .cfa: $rsp 24 +
+STACK CFI d0656 .cfa: $rsp 32 +
+STACK CFI d0658 .cfa: $rsp 40 +
+STACK CFI d0659 .cfa: $rsp 48 +
+STACK CFI d065a .cfa: $rsp 56 +
+STACK CFI d065d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d0661 .cfa: $rsp 160 +
+STACK CFI INIT d0ce0 4cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d0ce1 .cfa: $rsp 16 +
+STACK CFI d0ce4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d0cef $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d0d0b $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT 111dd0 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d11b0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d11f0 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d1200 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d1230 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1234 .cfa: $rsp 16 +
+STACK CFI d1236 $rbx: .cfa -16 + ^
+STACK CFI INIT d1260 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1262 .cfa: $rsp 16 +
+STACK CFI d1263 .cfa: $rsp 24 +
+STACK CFI d1264 .cfa: $rsp 32 +
+STACK CFI d1267 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT d1330 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1338 $r12: .cfa -24 + ^
+STACK CFI d134b .cfa: $rsp 48 +
+STACK CFI d135f $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT d1400 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1401 .cfa: $rsp 16 +
+STACK CFI d1407 $rbx: .cfa -16 + ^
+STACK CFI INIT d1480 1af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d148d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d149e .cfa: $rsp 192 +
+STACK CFI d14a8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT d1630 121 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d163c $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI d1649 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI d1655 .cfa: $rsp 192 +
+STACK CFI d165e $r14: .cfa -16 + ^
+STACK CFI INIT d1760 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1762 .cfa: $rsp 16 +
+STACK CFI d1765 $r12: .cfa -16 + ^
+STACK CFI d1766 .cfa: $rsp 24 +
+STACK CFI d1768 $rbp: .cfa -24 + ^
+STACK CFI d1769 .cfa: $rsp 32 +
+STACK CFI d176f $rbx: .cfa -32 + ^
+STACK CFI INIT d1840 6b1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1842 .cfa: $rsp 16 +
+STACK CFI d1844 .cfa: $rsp 24 +
+STACK CFI d1846 .cfa: $rsp 32 +
+STACK CFI d1848 .cfa: $rsp 40 +
+STACK CFI d1849 .cfa: $rsp 48 +
+STACK CFI d184a .cfa: $rsp 56 +
+STACK CFI d184d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d1851 .cfa: $rsp 176 +
+STACK CFI INIT d1f00 13c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d1f0d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d1f16 .cfa: $rsp 48 +
+STACK CFI d1f1e $r12: .cfa -16 + ^
+STACK CFI INIT d2040 2cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2042 .cfa: $rsp 16 +
+STACK CFI d2044 .cfa: $rsp 24 +
+STACK CFI d2046 .cfa: $rsp 32 +
+STACK CFI d2048 .cfa: $rsp 40 +
+STACK CFI d204b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI d204c .cfa: $rsp 48 +
+STACK CFI d204f $rbp: .cfa -48 + ^
+STACK CFI d2050 .cfa: $rsp 56 +
+STACK CFI d2054 .cfa: $rsp 96 +
+STACK CFI d205c $rbx: .cfa -56 + ^
+STACK CFI INIT d2310 54b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d231d $r12: .cfa -32 + ^ $rbx: .cfa -48 + ^
+STACK CFI d2330 .cfa: $rsp 48 +
+STACK CFI d2333 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT d2860 4fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2862 .cfa: $rsp 16 +
+STACK CFI d2864 .cfa: $rsp 24 +
+STACK CFI d2866 .cfa: $rsp 32 +
+STACK CFI d2868 .cfa: $rsp 40 +
+STACK CFI d2869 .cfa: $rsp 48 +
+STACK CFI d286a .cfa: $rsp 56 +
+STACK CFI d286d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d2874 .cfa: $rsp 1312 +
+STACK CFI INIT d2d60 ab .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2d61 .cfa: $rsp 16 +
+STACK CFI d2d68 $rbx: .cfa -16 + ^
+STACK CFI INIT d2e10 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2e40 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2e44 .cfa: $rsp 16 +
+STACK CFI INIT d2e70 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2e74 .cfa: $rsp 16 +
+STACK CFI INIT d2ea0 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2ed0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2ee0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2f00 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2f50 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d2fb0 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d2fb2 .cfa: $rsp 16 +
+STACK CFI d2fc3 $r12: .cfa -16 + ^
+STACK CFI d2fc4 .cfa: $rsp 24 +
+STACK CFI d2fc5 .cfa: $rsp 32 +
+STACK CFI d2fc7 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT d3040 1e7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3042 .cfa: $rsp 16 +
+STACK CFI d3051 .cfa: $rsp 24 +
+STACK CFI d3052 .cfa: $rsp 32 +
+STACK CFI d3054 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT d3230 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d32e0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d32e4 .cfa: $rsp 32 +
+STACK CFI INIT d3310 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3314 .cfa: $rsp 32 +
+STACK CFI INIT d3330 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3334 .cfa: $rsp 32 +
+STACK CFI INIT d33d0 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d33e0 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d33f0 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3430 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3460 b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d346c $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d3475 .cfa: $rsp 48 +
+STACK CFI d347f $r12: .cfa -16 + ^
+STACK CFI INIT d3520 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3550 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3580 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d35b0 11e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d35b1 .cfa: $rsp 16 +
+STACK CFI d35b5 .cfa: $rsp 112 +
+STACK CFI d35da $rbx: .cfa -16 + ^
+STACK CFI INIT d36d0 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d36d8 $rbx: .cfa -32 + ^
+STACK CFI d36e6 .cfa: $rsp 48 +
+STACK CFI d36e8 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI INIT d3740 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3741 .cfa: $rsp 16 +
+STACK CFI d3744 $rbx: .cfa -16 + ^
+STACK CFI d374f .cfa: $rsp 160 +
+STACK CFI INIT d3830 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3831 .cfa: $rsp 16 +
+STACK CFI d3834 $rbx: .cfa -16 + ^
+STACK CFI INIT d3870 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d38b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d38e0 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d38f5 .cfa: $rsp 32 +
+STACK CFI d38fc $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT d3980 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d39f0 a9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d39fd $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI d3a06 .cfa: $rsp 32 +
+STACK CFI d3a11 $rbx: .cfa -32 + ^
+STACK CFI INIT d3aa0 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3ac0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d3af0 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3af4 .cfa: $rsp 48 +
+STACK CFI INIT d3b90 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3b94 .cfa: $rsp 48 +
+STACK CFI INIT d3c30 17f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3c31 .cfa: $rsp 16 +
+STACK CFI d3c34 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d3c3b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI d3c40 $r13: .cfa -40 + ^
+STACK CFI d3c45 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d3db0 109 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3dbd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d3dcb .cfa: $rsp 64 +
+STACK CFI d3dd4 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT d3ec0 165 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3ec1 .cfa: $rsp 16 +
+STACK CFI d3ec4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d3ecf $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI d3ed2 $rbx: .cfa -56 + ^
+STACK CFI INIT d4030 109 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d403d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d404b .cfa: $rsp 64 +
+STACK CFI d4054 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT d4140 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4144 .cfa: $rsp 64 +
+STACK CFI INIT d41b0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d41b4 .cfa: $rsp 64 +
+STACK CFI INIT d4220 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4224 .cfa: $rsp 64 +
+STACK CFI INIT d42c0 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d42c4 .cfa: $rsp 64 +
+STACK CFI INIT d4360 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4380 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4384 .cfa: $rsp 32 +
+STACK CFI INIT d43b0 a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d43bd $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI d43ce .cfa: $rsp 448 +
+STACK CFI d43d7 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT d4460 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4490 79 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d449d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d44a9 .cfa: $rsp 432 +
+STACK CFI d44ac $r12: .cfa -16 + ^
+STACK CFI INIT d4510 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4540 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4560 .cfa: $rsp 16 +
+STACK CFI d4586 .cfa: $rsp 8 +
+STACK CFI INIT d45b0 dd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d45b1 .cfa: $rsp 16 +
+STACK CFI d45b8 .cfa: $rsp 96 +
+STACK CFI d45bd $rbx: .cfa -16 + ^
+STACK CFI INIT d4690 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d46c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d46f0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d470d .cfa: $rsp 16 +
+STACK CFI d4730 .cfa: $rsp 8 +
+STACK CFI INIT d4750 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4780 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d479d .cfa: $rsp 16 +
+STACK CFI d47c0 .cfa: $rsp 8 +
+STACK CFI INIT d47e0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4810 174 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4811 .cfa: $rsp 16 +
+STACK CFI d4821 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d4831 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d4990 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4991 .cfa: $rsp 16 +
+STACK CFI d4995 .cfa: $rsp 32 +
+STACK CFI d49a2 $rbx: .cfa -16 + ^
+STACK CFI INIT d4a40 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4a70 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4aa0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4ad0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4ad1 .cfa: $rsp 16 +
+STACK CFI d4add $rbx: .cfa -16 + ^
+STACK CFI INIT d4af0 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4b00 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4b01 .cfa: $rsp 16 +
+STACK CFI d4b0d $rbx: .cfa -16 + ^
+STACK CFI INIT d4b30 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4b40 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4b70 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4ba0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4bd0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4c00 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4c04 .cfa: $rsp 80 +
+STACK CFI INIT d4c60 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4c6b .cfa: $rsp 32 +
+STACK CFI INIT d4ca0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4ce0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4d20 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4dd0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4dd4 .cfa: $rsp 16 +
+STACK CFI INIT d4df0 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4df7 .cfa: $rsp 16 +
+STACK CFI d4dfa $rbx: .cfa -16 + ^
+STACK CFI INIT d594d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI d5957 .cfa: $rsp 0 +
+STACK CFI d595b .cfa: $rsp 128 +
+STACK CFI d5963 .cfa: $rsp -128 +
+STACK CFI INIT d5968 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI d5972 .cfa: $rsp 0 +
+STACK CFI d5976 .cfa: $rsp 128 +
+STACK CFI d597e .cfa: $rsp -128 +
+STACK CFI INIT d5983 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI d598d .cfa: $rsp 0 +
+STACK CFI d5991 .cfa: $rsp 128 +
+STACK CFI d5999 .cfa: $rsp -128 +
+STACK CFI INIT d4e80 e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d4f70 7a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4f72 .cfa: $rsp 16 +
+STACK CFI d4f73 .cfa: $rsp 24 +
+STACK CFI d4f76 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI d4f77 .cfa: $rsp 32 +
+STACK CFI d4f7a $rbx: .cfa -32 + ^
+STACK CFI INIT d4ff0 530 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d4ff1 .cfa: $rsp 16 +
+STACK CFI d4ff9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d5002 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI d5018 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d5520 399 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5522 .cfa: $rsp 16 +
+STACK CFI d5524 .cfa: $rsp 24 +
+STACK CFI d5527 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI d5529 .cfa: $rsp 32 +
+STACK CFI d552c $r12: .cfa -32 + ^
+STACK CFI d552d .cfa: $rsp 40 +
+STACK CFI d5530 $rbp: .cfa -40 + ^
+STACK CFI d5531 .cfa: $rsp 48 +
+STACK CFI d5534 $rbx: .cfa -48 + ^
+STACK CFI d553b .cfa: $rsp 1072 +
+STACK CFI INIT d58c0 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d58c4 .cfa: $rsp 16 +
+STACK CFI INIT d58e0 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d58e1 .cfa: $rsp 16 +
+STACK CFI d58e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d58ef $r12: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d58fd $r13: .cfa -24 + ^
+STACK CFI INIT d59a0 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d59d0 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5a70 94 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5b10 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5b50 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5b80 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5bb0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5be0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5c00 de .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5ce0 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5ce4 .cfa: $rsp 16 +
+STACK CFI INIT d5d20 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5d24 .cfa: $rsp 16 +
+STACK CFI INIT d5d80 385 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5d82 .cfa: $rsp 16 +
+STACK CFI d5d84 .cfa: $rsp 24 +
+STACK CFI d5d86 .cfa: $rsp 32 +
+STACK CFI d5d88 .cfa: $rsp 40 +
+STACK CFI d5d89 .cfa: $rsp 48 +
+STACK CFI d5d8a .cfa: $rsp 56 +
+STACK CFI d5d8e .cfa: $rsp 64 +
+STACK CFI d5d9e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d6110 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d6111 .cfa: $rsp 16 +
+STACK CFI d6114 $rbp: .cfa -16 + ^
+STACK CFI d6115 .cfa: $rsp 24 +
+STACK CFI d6119 $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI INIT d6150 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d6154 .cfa: $rsp 16 +
+STACK CFI INIT d61a0 213 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d61a2 .cfa: $rsp 16 +
+STACK CFI d61a4 .cfa: $rsp 24 +
+STACK CFI d61a5 .cfa: $rsp 32 +
+STACK CFI d61a6 .cfa: $rsp 40 +
+STACK CFI d61ad .cfa: $rsp 192 +
+STACK CFI d61b4 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT d63c0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d63c4 .cfa: $rsp 16 +
+STACK CFI INIT d63e0 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d63e4 .cfa: $rsp 16 +
+STACK CFI INIT d6430 228 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d643f $r14: .cfa -24 + ^
+STACK CFI d6466 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 192 +
+STACK CFI INIT d6660 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d6680 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d6681 .cfa: $rsp 16 +
+STACK CFI d6689 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d6692 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT d7238 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI d7246 .cfa: $rsp 0 +
+STACK CFI d724a .cfa: $rsp 128 +
+STACK CFI d7252 .cfa: $rsp -128 +
+STACK CFI INIT d7257 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI d7265 .cfa: $rsp 0 +
+STACK CFI d7269 .cfa: $rsp 128 +
+STACK CFI d7271 .cfa: $rsp -128 +
+STACK CFI INIT d7276 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI d7284 .cfa: $rsp 0 +
+STACK CFI d7288 .cfa: $rsp 128 +
+STACK CFI d7290 .cfa: $rsp -128 +
+STACK CFI INIT d7295 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI d72a3 .cfa: $rsp 0 +
+STACK CFI d72a7 .cfa: $rsp 128 +
+STACK CFI d72af .cfa: $rsp -128 +
+STACK CFI INIT d72b4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI d72c2 .cfa: $rsp 0 +
+STACK CFI d72c6 .cfa: $rsp 128 +
+STACK CFI d72ce .cfa: $rsp -128 +
+STACK CFI INIT d6750 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d6780 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d67a0 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d67a4 .cfa: $rsp 32 +
+STACK CFI INIT d6840 265 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d685d .cfa: $rsp 48 +
+STACK CFI d6862 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT d6ab0 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d6ab7 .cfa: $rsp 32 +
+STACK CFI INIT d6b20 5d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d6b2c $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI d6b4a .cfa: $rsp 256 +
+STACK CFI d6b51 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d7100 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7110 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7117 .cfa: $rsp 224 +
+STACK CFI INIT d71a0 98 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d71a7 .cfa: $rsp 224 +
+STACK CFI INIT d72e0 37 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7320 15e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7331 .cfa: $rsp 176 +
+STACK CFI d7333 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT d7480 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d74b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d74e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7510 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d752d .cfa: $rsp 16 +
+STACK CFI d7550 .cfa: $rsp 8 +
+STACK CFI INIT d7570 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d75a0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d75d0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7600 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7630 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7660 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7690 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d76c0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d76d0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d76e0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d76e4 .cfa: $rsp 48 +
+STACK CFI INIT d7710 21f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7712 .cfa: $rsp 16 +
+STACK CFI d7714 .cfa: $rsp 24 +
+STACK CFI d7717 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI d7719 .cfa: $rsp 32 +
+STACK CFI d771b .cfa: $rsp 40 +
+STACK CFI d771c .cfa: $rsp 48 +
+STACK CFI d771d .cfa: $rsp 56 +
+STACK CFI d7720 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d7724 .cfa: $rsp 144 +
+STACK CFI INIT d7930 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7934 .cfa: $rsp 16 +
+STACK CFI d7937 $rbx: .cfa -16 + ^
+STACK CFI INIT d7960 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7964 .cfa: $rsp 16 +
+STACK CFI d7967 $rbx: .cfa -16 + ^
+STACK CFI INIT d7a20 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7b40 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7b42 .cfa: $rsp 16 +
+STACK CFI d7b48 $r12: .cfa -16 + ^
+STACK CFI d7b49 .cfa: $rsp 24 +
+STACK CFI d7b4a .cfa: $rsp 32 +
+STACK CFI d7b4d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT d7ba0 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7bad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d7bb6 .cfa: $rsp 32 +
+STACK CFI d7bc1 $r12: .cfa -16 + ^
+STACK CFI INIT d7c40 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7c60 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7c6d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI d7c71 .cfa: $rsp 32 +
+STACK CFI INIT d7cb0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d7cd0 433 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d7cd1 .cfa: $rsp 16 +
+STACK CFI d7cd4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d7ce0 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d8110 120 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8112 .cfa: $rsp 16 +
+STACK CFI d8116 .cfa: $rsp 24 +
+STACK CFI d8118 .cfa: $rsp 32 +
+STACK CFI d811b $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI d811d .cfa: $rsp 40 +
+STACK CFI d811e .cfa: $rsp 48 +
+STACK CFI d811f .cfa: $rsp 56 +
+STACK CFI d8123 .cfa: $rsp 96 +
+STACK CFI d8136 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d8230 65 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8232 .cfa: $rsp 16 +
+STACK CFI d8235 $r15: .cfa -16 + ^
+STACK CFI d8237 .cfa: $rsp 24 +
+STACK CFI d823a $r14: .cfa -24 + ^
+STACK CFI d823c .cfa: $rsp 32 +
+STACK CFI d823f $r13: .cfa -32 + ^
+STACK CFI d8241 .cfa: $rsp 40 +
+STACK CFI d8244 $r12: .cfa -40 + ^
+STACK CFI d8245 .cfa: $rsp 48 +
+STACK CFI d8248 $rbp: .cfa -48 + ^
+STACK CFI d8249 .cfa: $rsp 56 +
+STACK CFI d824c $rbx: .cfa -56 + ^
+STACK CFI d8250 .cfa: $rsp 64 +
+STACK CFI INIT d82a0 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d82ad $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d82bb .cfa: $rsp 48 +
+STACK CFI d82be $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT d8310 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8311 .cfa: $rsp 16 +
+STACK CFI d8314 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d831b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI d8331 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d8430 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8447 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI d8450 .cfa: $rsp 48 +
+STACK CFI d8469 $r12: .cfa -32 + ^
+STACK CFI INIT d8560 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8561 .cfa: $rsp 16 +
+STACK CFI d8563 $rbx: .cfa -16 + ^
+STACK CFI INIT d8580 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8587 .cfa: $rsp 224 +
+STACK CFI INIT d8610 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8617 .cfa: $rsp 224 +
+STACK CFI INIT d86b0 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d86bd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d86c6 .cfa: $rsp 32 +
+STACK CFI d86d0 $r12: .cfa -16 + ^
+STACK CFI INIT d87a0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d87a1 .cfa: $rsp 16 +
+STACK CFI d87a3 $rbx: .cfa -16 + ^
+STACK CFI INIT d87c0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d87c7 .cfa: $rsp 224 +
+STACK CFI INIT d8850 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8857 .cfa: $rsp 224 +
+STACK CFI INIT d88f0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d88f7 .cfa: $rsp 1040 +
+STACK CFI INIT d8920 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8921 .cfa: $rsp 16 +
+STACK CFI d8924 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d892b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI d8956 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d8b10 1f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8b1b $rbx: .cfa -48 + ^
+STACK CFI d8b3c $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^
+STACK CFI d8b48 .cfa: $rsp 256 +
+STACK CFI d8b60 $r14: .cfa -16 + ^
+STACK CFI INIT d8d10 14f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8d12 .cfa: $rsp 16 +
+STACK CFI d8d18 $r12: .cfa -16 + ^
+STACK CFI d8d19 .cfa: $rsp 24 +
+STACK CFI d8d1b $rbp: .cfa -24 + ^
+STACK CFI d8d1c .cfa: $rsp 32 +
+STACK CFI d8d1e $rbx: .cfa -32 + ^
+STACK CFI d8d25 .cfa: $rsp 240 +
+STACK CFI INIT d8e60 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d8eb0 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8eb2 .cfa: $rsp 16 +
+STACK CFI d8ebb .cfa: $rsp 24 +
+STACK CFI d8ebe $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI d8ec6 .cfa: $rsp 32 +
+STACK CFI d8ec7 .cfa: $rsp 40 +
+STACK CFI d8ece .cfa: $rsp 8256 +
+STACK CFI d8eda $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT d8fa0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d8fb0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d8fc0 1eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8fcd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d8fe8 .cfa: $rsp 96 +
+STACK CFI d8feb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT d91b0 140 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d91b1 .cfa: $rsp 16 +
+STACK CFI d91b9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI d91c6 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT d92f0 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d92f2 .cfa: $rsp 16 +
+STACK CFI d92fb .cfa: $rsp 24 +
+STACK CFI d92fd .cfa: $rsp 32 +
+STACK CFI d92ff .cfa: $rsp 40 +
+STACK CFI d9300 .cfa: $rsp 48 +
+STACK CFI d9301 .cfa: $rsp 56 +
+STACK CFI d9305 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 80 +
+STACK CFI INIT d93c0 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d93c4 .cfa: $rsp 16 +
+STACK CFI d93c7 $rbx: .cfa -16 + ^
+STACK CFI INIT d94b0 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d94b8 $rbp: .cfa -40 + ^
+STACK CFI d94d7 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbx: .cfa -48 + ^
+STACK CFI d94db .cfa: $rsp 128 +
+STACK CFI INIT d9590 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d95b0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d95e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9610 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9640 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9670 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d96a0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d96d0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9700 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9730 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9760 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9790 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d97c0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d97f0 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d97f1 .cfa: $rsp 16 +
+STACK CFI d97f4 $rbx: .cfa -16 + ^
+STACK CFI d980a .cfa: $rsp 32 +
+STACK CFI INIT d9850 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9851 .cfa: $rsp 16 +
+STACK CFI d9854 $rbx: .cfa -16 + ^
+STACK CFI d986a .cfa: $rsp 32 +
+STACK CFI INIT 1364d0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d98b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d98b4 .cfa: $rsp 16 +
+STACK CFI INIT d98e0 82 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d98e9 .cfa: $rsp 16 +
+STACK CFI d98eb $rbx: .cfa -16 + ^
+STACK CFI INIT d9970 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9974 .cfa: $rsp 16 +
+STACK CFI INIT d9990 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9991 .cfa: $rsp 16 +
+STACK CFI d9995 $rbp: .cfa -16 + ^
+STACK CFI d999d .cfa: $rsp 24 +
+STACK CFI d99a0 $rbx: .cfa -24 + ^
+STACK CFI d99a4 .cfa: $rsp 32 +
+STACK CFI INIT d9a80 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9a82 .cfa: $rsp 16 +
+STACK CFI d9a83 .cfa: $rsp 24 +
+STACK CFI d9a86 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI d9a8c $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI INIT d9ae0 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9ae2 .cfa: $rsp 16 +
+STACK CFI d9ae3 .cfa: $rsp 24 +
+STACK CFI d9ae6 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI d9aec $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI INIT d9b40 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9b41 .cfa: $rsp 16 +
+STACK CFI d9b43 $rbx: .cfa -16 + ^
+STACK CFI INIT d9b80 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9bc0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9c00 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d9c20 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9c21 .cfa: $rsp 16 +
+STACK CFI d9c27 $rbx: .cfa -16 + ^
+STACK CFI INIT d9c50 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9c5b .cfa: $rsp 16 +
+STACK CFI INIT d9c80 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9c8c $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI d9c95 .cfa: $rsp 48 +
+STACK CFI d9ca6 $r12: .cfa -16 + ^
+STACK CFI INIT d9d30 301 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d9d32 .cfa: $rsp 16 +
+STACK CFI d9d38 .cfa: $rsp 24 +
+STACK CFI d9d3b $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI d9d3d .cfa: $rsp 32 +
+STACK CFI d9d40 $r13: .cfa -32 + ^
+STACK CFI d9d42 .cfa: $rsp 40 +
+STACK CFI d9d45 $r12: .cfa -40 + ^
+STACK CFI d9d46 .cfa: $rsp 48 +
+STACK CFI d9d49 $rbp: .cfa -48 + ^
+STACK CFI d9d4a .cfa: $rsp 56 +
+STACK CFI d9d4d $rbx: .cfa -56 + ^
+STACK CFI d9d51 .cfa: $rsp 96 +
+STACK CFI INIT da040 1f1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da056 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI da06c .cfa: $rsp 80 +
+STACK CFI da077 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT da240 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da241 .cfa: $rsp 16 +
+STACK CFI da249 $rbx: .cfa -16 + ^
+STACK CFI da24d .cfa: $rsp 32 +
+STACK CFI INIT da280 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da281 .cfa: $rsp 16 +
+STACK CFI da28b .cfa: $rsp 32 +
+STACK CFI da294 $rbx: .cfa -16 + ^
+STACK CFI INIT da2c0 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da2cc $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI da2e2 .cfa: $rsp 64 +
+STACK CFI da2ee $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT da390 329 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da392 .cfa: $rsp 16 +
+STACK CFI da394 .cfa: $rsp 24 +
+STACK CFI da397 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI da399 .cfa: $rsp 32 +
+STACK CFI da39c $r13: .cfa -32 + ^
+STACK CFI da39e .cfa: $rsp 40 +
+STACK CFI da3a1 $r12: .cfa -40 + ^
+STACK CFI da3a2 .cfa: $rsp 48 +
+STACK CFI da3a5 $rbp: .cfa -48 + ^
+STACK CFI da3a6 .cfa: $rsp 56 +
+STACK CFI da3a9 $rbx: .cfa -56 + ^
+STACK CFI da3ad .cfa: $rsp 128 +
+STACK CFI INIT da6c0 220 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da6cd $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI da6e8 .cfa: $rsp 112 +
+STACK CFI da6ef $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT da8e0 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da8ee .cfa: $rsp 32 +
+STACK CFI da8f4 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT da950 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT da980 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT da9b0 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daa10 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daa85 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daaa0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI daabd .cfa: $rsp 16 +
+STACK CFI daae0 .cfa: $rsp 8 +
+STACK CFI INIT dab00 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dab10 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dab40 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dab70 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daba0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dabd0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dabf0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dac10 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dac40 bb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dac41 .cfa: $rsp 16 +
+STACK CFI dac45 .cfa: $rsp 64 +
+STACK CFI dac4f $rbx: .cfa -16 + ^
+STACK CFI INIT dad00 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dad01 .cfa: $rsp 16 +
+STACK CFI dad15 .cfa: $rsp 24 +
+STACK CFI dad18 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT dad90 7a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dae10 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dae14 .cfa: $rsp 16 +
+STACK CFI INIT dae30 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dae34 .cfa: $rsp 32 +
+STACK CFI INIT dae60 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dae90 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daec0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daef0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daf20 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daf50 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT daf80 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dafb0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dafe0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db010 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db040 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db070 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db0a0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db0c0 .cfa: $rsp 16 +
+STACK CFI db0e6 .cfa: $rsp 8 +
+STACK CFI INIT db110 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db140 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db170 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db1a0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db1d0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db200 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db230 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db260 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db290 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db2c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db2f0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db320 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db350 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db380 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db3b0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db3e0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db400 .cfa: $rsp 16 +
+STACK CFI db426 .cfa: $rsp 8 +
+STACK CFI INIT db450 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db480 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db4a0 .cfa: $rsp 16 +
+STACK CFI db4c6 .cfa: $rsp 8 +
+STACK CFI INIT db4f0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db520 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db550 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db570 .cfa: $rsp 16 +
+STACK CFI db596 .cfa: $rsp 8 +
+STACK CFI INIT db5c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db5f0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db620 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db650 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db680 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db6a0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db6bd .cfa: $rsp 16 +
+STACK CFI db6e0 .cfa: $rsp 8 +
+STACK CFI INIT db700 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db730 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db74d .cfa: $rsp 16 +
+STACK CFI db770 .cfa: $rsp 8 +
+STACK CFI INIT db790 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db7c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db7f0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db820 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db850 af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db851 .cfa: $rsp 16 +
+STACK CFI db855 .cfa: $rsp 48 +
+STACK CFI db85f $rbx: .cfa -16 + ^
+STACK CFI INIT db900 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db920 .cfa: $rsp 16 +
+STACK CFI db946 .cfa: $rsp 8 +
+STACK CFI INIT db970 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db98d .cfa: $rsp 16 +
+STACK CFI db9b0 .cfa: $rsp 8 +
+STACK CFI INIT db9d0 af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db9d1 .cfa: $rsp 16 +
+STACK CFI db9d5 .cfa: $rsp 48 +
+STACK CFI db9df $rbx: .cfa -16 + ^
+STACK CFI INIT dba80 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dba9d .cfa: $rsp 16 +
+STACK CFI dbac0 .cfa: $rsp 8 +
+STACK CFI INIT dbae0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbb00 .cfa: $rsp 16 +
+STACK CFI dbb26 .cfa: $rsp 8 +
+STACK CFI INIT dbb50 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dbb80 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dbbb0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dbbe0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dbc10 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbc1d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI dbc29 .cfa: $rsp 176 +
+STACK CFI dbc3d $rbp: .cfa -24 + ^
+STACK CFI INIT dbc80 29f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbc82 .cfa: $rsp 16 +
+STACK CFI dbc84 .cfa: $rsp 24 +
+STACK CFI dbc86 .cfa: $rsp 32 +
+STACK CFI dbc88 .cfa: $rsp 40 +
+STACK CFI dbc89 .cfa: $rsp 48 +
+STACK CFI dbc8a .cfa: $rsp 56 +
+STACK CFI dbc8e .cfa: $rsp 112 +
+STACK CFI dbc9c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT dbf20 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbf24 .cfa: $rsp 32 +
+STACK CFI INIT dbf50 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbf54 .cfa: $rsp 48 +
+STACK CFI INIT dbff0 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dbff4 .cfa: $rsp 64 +
+STACK CFI INIT dc0a0 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc0f0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc110 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc111 .cfa: $rsp 16 +
+STACK CFI dc113 $rbx: .cfa -16 + ^
+STACK CFI dc122 .cfa: $rsp 160 +
+STACK CFI INIT dc160 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc180 .cfa: $rsp 16 +
+STACK CFI dc1a6 .cfa: $rsp 8 +
+STACK CFI INIT dc1d0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc1f0 .cfa: $rsp 16 +
+STACK CFI dc216 .cfa: $rsp 8 +
+STACK CFI INIT dc240 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc270 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc2a0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc2d0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc300 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc330 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc360 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc390 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc3c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc3f0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dc420 4be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc421 .cfa: $rsp 16 +
+STACK CFI dc42b $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI dc43b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT dc8e0 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc8e1 .cfa: $rsp 16 +
+STACK CFI dc8e7 $rbx: .cfa -16 + ^
+STACK CFI INIT dc910 60 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc914 .cfa: $rsp 16 +
+STACK CFI INIT dc970 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc974 .cfa: $rsp 16 +
+STACK CFI INIT dc9a0 1e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dc9ac .cfa: $rsp 16 +
+STACK CFI INIT dcb90 14f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dcb91 .cfa: $rsp 16 +
+STACK CFI dcb9b $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT dcce0 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dcd40 1be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dcd4d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI dcd5e .cfa: $rsp 240 +
+STACK CFI dcd64 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT dcf00 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dcf40 109 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dcf41 .cfa: $rsp 16 +
+STACK CFI dcf43 $rbp: .cfa -16 + ^
+STACK CFI dcf44 .cfa: $rsp 24 +
+STACK CFI dcf4b $rbx: .cfa -24 + ^
+STACK CFI INIT dd050 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dd060 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dd080 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dd0b0 195 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd0bd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI dd0cb .cfa: $rsp 64 +
+STACK CFI dd0d1 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT dd250 41b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd251 .cfa: $rsp 16 +
+STACK CFI dd254 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI dd25b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI dd268 $r13: .cfa -40 + ^
+STACK CFI dd271 $r12: .cfa -48 + ^
+STACK CFI dd28d $rbx: .cfa -56 + ^
+STACK CFI INIT dd670 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dd740 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd742 .cfa: $rsp 16 +
+STACK CFI dd744 .cfa: $rsp 24 +
+STACK CFI dd747 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI dd748 .cfa: $rsp 32 +
+STACK CFI dd749 .cfa: $rsp 40 +
+STACK CFI dd74d .cfa: $rsp 48 +
+STACK CFI dd762 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT dd7d0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd7d4 .cfa: $rsp 16 +
+STACK CFI dd7d8 $rbx: .cfa -16 + ^
+STACK CFI INIT dd830 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd834 .cfa: $rsp 16 +
+STACK CFI dd838 $rbx: .cfa -16 + ^
+STACK CFI INIT dd890 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd897 .cfa: $rsp 16 +
+STACK CFI dd899 $rbx: .cfa -16 + ^
+STACK CFI INIT dd930 62 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd938 .cfa: $rsp 16 +
+STACK CFI dd93a $rbx: .cfa -16 + ^
+STACK CFI INIT dd9a0 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dd9a8 .cfa: $rsp 16 +
+STACK CFI dd9aa $rbx: .cfa -16 + ^
+STACK CFI INIT dda00 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dda07 .cfa: $rsp 16 +
+STACK CFI dda09 $rbx: .cfa -16 + ^
+STACK CFI INIT ddad0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddad7 .cfa: $rsp 16 +
+STACK CFI ddad9 $rbx: .cfa -16 + ^
+STACK CFI INIT ddba0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddba7 .cfa: $rsp 16 +
+STACK CFI ddba9 $rbx: .cfa -16 + ^
+STACK CFI INIT ddc70 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddc77 .cfa: $rsp 16 +
+STACK CFI ddc79 $rbx: .cfa -16 + ^
+STACK CFI INIT ddd40 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddd47 .cfa: $rsp 16 +
+STACK CFI ddd49 $rbx: .cfa -16 + ^
+STACK CFI INIT dde10 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dde17 .cfa: $rsp 16 +
+STACK CFI dde19 $rbx: .cfa -16 + ^
+STACK CFI INIT ddee0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddee7 .cfa: $rsp 16 +
+STACK CFI ddee9 $rbx: .cfa -16 + ^
+STACK CFI INIT ddfb0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ddfb7 .cfa: $rsp 16 +
+STACK CFI ddfb9 $rbx: .cfa -16 + ^
+STACK CFI INIT de080 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de087 .cfa: $rsp 16 +
+STACK CFI de089 $rbx: .cfa -16 + ^
+STACK CFI INIT de150 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de157 .cfa: $rsp 16 +
+STACK CFI de159 $rbx: .cfa -16 + ^
+STACK CFI INIT de220 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de227 .cfa: $rsp 16 +
+STACK CFI de229 $rbx: .cfa -16 + ^
+STACK CFI INIT de2f0 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de2f2 .cfa: $rsp 16 +
+STACK CFI de2f4 .cfa: $rsp 24 +
+STACK CFI de2f7 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI de2f9 .cfa: $rsp 32 +
+STACK CFI de2fa .cfa: $rsp 40 +
+STACK CFI de2fc $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI de2fd $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI INIT de370 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT de3d0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de3d7 .cfa: $rsp 16 +
+STACK CFI de3d9 $rbx: .cfa -16 + ^
+STACK CFI INIT de460 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de467 .cfa: $rsp 16 +
+STACK CFI de469 $rbx: .cfa -16 + ^
+STACK CFI INIT de4f0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de4f7 .cfa: $rsp 16 +
+STACK CFI de4f9 $rbx: .cfa -16 + ^
+STACK CFI INIT de580 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de587 .cfa: $rsp 16 +
+STACK CFI de589 $rbx: .cfa -16 + ^
+STACK CFI INIT de610 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de617 .cfa: $rsp 16 +
+STACK CFI de619 $rbx: .cfa -16 + ^
+STACK CFI INIT de6a0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de6a7 .cfa: $rsp 16 +
+STACK CFI de6a9 $rbx: .cfa -16 + ^
+STACK CFI INIT de730 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de737 .cfa: $rsp 16 +
+STACK CFI de739 $rbx: .cfa -16 + ^
+STACK CFI INIT de7c0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de7c7 .cfa: $rsp 16 +
+STACK CFI de7c9 $rbx: .cfa -16 + ^
+STACK CFI INIT de850 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de857 .cfa: $rsp 16 +
+STACK CFI de859 $rbx: .cfa -16 + ^
+STACK CFI INIT de8e0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de8e7 .cfa: $rsp 16 +
+STACK CFI de8e9 $rbx: .cfa -16 + ^
+STACK CFI INIT de970 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de977 .cfa: $rsp 16 +
+STACK CFI de979 $rbx: .cfa -16 + ^
+STACK CFI INIT dea00 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dea07 .cfa: $rsp 16 +
+STACK CFI dea09 $rbx: .cfa -16 + ^
+STACK CFI INIT dea90 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dea91 .cfa: $rsp 16 +
+STACK CFI dea96 $rbx: .cfa -16 + ^
+STACK CFI INIT deaf0 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI deaf1 .cfa: $rsp 16 +
+STACK CFI deaf6 $rbx: .cfa -16 + ^
+STACK CFI INIT deb50 7b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI deb52 .cfa: $rsp 16 +
+STACK CFI deb54 .cfa: $rsp 24 +
+STACK CFI deb57 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI deb59 .cfa: $rsp 32 +
+STACK CFI deb5a .cfa: $rsp 40 +
+STACK CFI deb5c $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI deb5d .cfa: $rsp 48 +
+STACK CFI deb60 $rbx: .cfa -48 + ^
+STACK CFI INIT debd0 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dec30 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dec32 .cfa: $rsp 16 +
+STACK CFI dec34 .cfa: $rsp 24 +
+STACK CFI dec37 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI dec38 .cfa: $rsp 32 +
+STACK CFI dec39 .cfa: $rsp 40 +
+STACK CFI dec3d .cfa: $rsp 48 +
+STACK CFI dec47 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT ded38 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI ded46 .cfa: $rsp 0 +
+STACK CFI ded4a .cfa: $rsp 128 +
+STACK CFI ded52 .cfa: $rsp -128 +
+STACK CFI INIT ded54 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI ded62 .cfa: $rsp 0 +
+STACK CFI ded66 .cfa: $rsp 128 +
+STACK CFI ded6e .cfa: $rsp -128 +
+STACK CFI INIT decb0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI decb4 .cfa: $rsp 16 +
+STACK CFI INIT dee95 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI deea3 .cfa: $rsp 0 +
+STACK CFI deea7 .cfa: $rsp 128 +
+STACK CFI deeaf .cfa: $rsp -128 +
+STACK CFI INIT deeb4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI deec2 .cfa: $rsp 0 +
+STACK CFI deec6 .cfa: $rsp 128 +
+STACK CFI deece .cfa: $rsp -128 +
+STACK CFI INIT ded70 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ded71 .cfa: $rsp 16 +
+STACK CFI ded79 .cfa: $rsp 24 +
+STACK CFI ded7c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI ded80 .cfa: $rsp 48 +
+STACK CFI INIT df01d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df02b .cfa: $rsp 0 +
+STACK CFI df02f .cfa: $rsp 128 +
+STACK CFI df037 .cfa: $rsp -128 +
+STACK CFI INIT df03c 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df04a .cfa: $rsp 0 +
+STACK CFI df04e .cfa: $rsp 128 +
+STACK CFI df056 .cfa: $rsp -128 +
+STACK CFI INIT deed0 14d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI deed1 .cfa: $rsp 16 +
+STACK CFI deed9 .cfa: $rsp 24 +
+STACK CFI deedc $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI deee0 .cfa: $rsp 48 +
+STACK CFI INIT df1fe 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df20c .cfa: $rsp 0 +
+STACK CFI df210 .cfa: $rsp 128 +
+STACK CFI df218 .cfa: $rsp -128 +
+STACK CFI INIT df21d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df22b .cfa: $rsp 0 +
+STACK CFI df22f .cfa: $rsp 128 +
+STACK CFI df237 .cfa: $rsp -128 +
+STACK CFI INIT df060 19e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df062 .cfa: $rsp 16 +
+STACK CFI df064 .cfa: $rsp 24 +
+STACK CFI df065 .cfa: $rsp 32 +
+STACK CFI df066 .cfa: $rsp 40 +
+STACK CFI df069 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI df06d .cfa: $rsp 96 +
+STACK CFI INIT df647 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI df651 .cfa: $rsp 0 +
+STACK CFI df655 .cfa: $rsp 128 +
+STACK CFI df65d .cfa: $rsp -128 +
+STACK CFI INIT df662 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI df66c .cfa: $rsp 0 +
+STACK CFI df670 .cfa: $rsp 128 +
+STACK CFI df678 .cfa: $rsp -128 +
+STACK CFI INIT df240 407 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df242 .cfa: $rsp 16 +
+STACK CFI df243 .cfa: $rsp 24 +
+STACK CFI df246 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI df247 .cfa: $rsp 32 +
+STACK CFI df24e $rbx: .cfa -32 + ^
+STACK CFI INIT df8a2 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df8b0 .cfa: $rsp 0 +
+STACK CFI df8b4 .cfa: $rsp 128 +
+STACK CFI df8bc .cfa: $rsp -128 +
+STACK CFI INIT df8c1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df8cf .cfa: $rsp 0 +
+STACK CFI df8d3 .cfa: $rsp 128 +
+STACK CFI df8db .cfa: $rsp -128 +
+STACK CFI INIT df8e0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df8ee .cfa: $rsp 0 +
+STACK CFI df8f2 .cfa: $rsp 128 +
+STACK CFI df8fa .cfa: $rsp -128 +
+STACK CFI INIT df8ff 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df90d .cfa: $rsp 0 +
+STACK CFI df911 .cfa: $rsp 128 +
+STACK CFI df919 .cfa: $rsp -128 +
+STACK CFI INIT df91e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df92c .cfa: $rsp 0 +
+STACK CFI df930 .cfa: $rsp 128 +
+STACK CFI df938 .cfa: $rsp -128 +
+STACK CFI INIT df93d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI df94b .cfa: $rsp 0 +
+STACK CFI df94f .cfa: $rsp 128 +
+STACK CFI df957 .cfa: $rsp -128 +
+STACK CFI INIT df680 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df684 .cfa: $rsp 80 +
+STACK CFI INIT df760 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df764 .cfa: $rsp 16 +
+STACK CFI INIT df800 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df804 .cfa: $rsp 32 +
+STACK CFI INIT df960 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df962 .cfa: $rsp 16 +
+STACK CFI df965 $r15: .cfa -16 + ^
+STACK CFI df967 .cfa: $rsp 24 +
+STACK CFI df96a $r14: .cfa -24 + ^
+STACK CFI df96c .cfa: $rsp 32 +
+STACK CFI df96f $r13: .cfa -32 + ^
+STACK CFI df971 .cfa: $rsp 40 +
+STACK CFI df974 $r12: .cfa -40 + ^
+STACK CFI df975 .cfa: $rsp 48 +
+STACK CFI df976 .cfa: $rsp 56 +
+STACK CFI df97a .cfa: $rsp 112 +
+STACK CFI df98c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT dfb50 3be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dfb52 .cfa: $rsp 16 +
+STACK CFI dfb54 .cfa: $rsp 24 +
+STACK CFI dfb55 .cfa: $rsp 32 +
+STACK CFI dfb58 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI dfb5e .cfa: $rsp 40 +
+STACK CFI dfb61 $rbx: .cfa -40 + ^
+STACK CFI dfb65 .cfa: $rsp 64 +
+STACK CFI INIT dff10 a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dff20 $r12: .cfa -16 + ^
+STACK CFI dff2d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI dff31 .cfa: $rsp 32 +
+STACK CFI INIT e020e 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0218 .cfa: $rsp 0 +
+STACK CFI e021c .cfa: $rsp 128 +
+STACK CFI e0224 .cfa: $rsp -128 +
+STACK CFI INIT e0229 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0233 .cfa: $rsp 0 +
+STACK CFI e0237 .cfa: $rsp 128 +
+STACK CFI e023f .cfa: $rsp -128 +
+STACK CFI INIT e0244 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e024e .cfa: $rsp 0 +
+STACK CFI e0252 .cfa: $rsp 128 +
+STACK CFI e025a .cfa: $rsp -128 +
+STACK CFI INIT e025f 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0269 .cfa: $rsp 0 +
+STACK CFI e026d .cfa: $rsp 128 +
+STACK CFI e0275 .cfa: $rsp -128 +
+STACK CFI INIT dffc0 24e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dffc2 .cfa: $rsp 16 +
+STACK CFI dffc5 $r15: .cfa -16 + ^
+STACK CFI dffc7 .cfa: $rsp 24 +
+STACK CFI dffc9 .cfa: $rsp 32 +
+STACK CFI dffcc $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI dffce .cfa: $rsp 40 +
+STACK CFI dffcf .cfa: $rsp 48 +
+STACK CFI dffd2 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI dffd3 .cfa: $rsp 56 +
+STACK CFI dffd6 $rbx: .cfa -56 + ^
+STACK CFI dffda .cfa: $rsp 80 +
+STACK CFI INIT e0579 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0587 .cfa: $rsp 0 +
+STACK CFI e058b .cfa: $rsp 128 +
+STACK CFI e0593 .cfa: $rsp -128 +
+STACK CFI INIT e0598 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e05a6 .cfa: $rsp 0 +
+STACK CFI e05aa .cfa: $rsp 128 +
+STACK CFI e05b2 .cfa: $rsp -128 +
+STACK CFI INIT e05b7 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e05c5 .cfa: $rsp 0 +
+STACK CFI e05c9 .cfa: $rsp 128 +
+STACK CFI e05d1 .cfa: $rsp -128 +
+STACK CFI INIT e05d6 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e05e4 .cfa: $rsp 0 +
+STACK CFI e05e8 .cfa: $rsp 128 +
+STACK CFI e05f0 .cfa: $rsp -128 +
+STACK CFI INIT e05f5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0603 .cfa: $rsp 0 +
+STACK CFI e0607 .cfa: $rsp 128 +
+STACK CFI e060f .cfa: $rsp -128 +
+STACK CFI INIT e0280 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e0290 80 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0294 .cfa: $rsp 16 +
+STACK CFI INIT e0310 269 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e031f $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI e032b .cfa: $rsp 640 +
+STACK CFI e0333 $r12: .cfa -16 + ^
+STACK CFI INIT e06a8 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI e06b6 .cfa: $rsp 0 +
+STACK CFI e06ba .cfa: $rsp 128 +
+STACK CFI e06c2 .cfa: $rsp -128 +
+STACK CFI INIT e06c4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI e06d2 .cfa: $rsp 0 +
+STACK CFI e06d6 .cfa: $rsp 128 +
+STACK CFI e06de .cfa: $rsp -128 +
+STACK CFI INIT e0620 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0624 .cfa: $rsp 16 +
+STACK CFI INIT e0805 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0813 .cfa: $rsp 0 +
+STACK CFI e0817 .cfa: $rsp 128 +
+STACK CFI e081f .cfa: $rsp -128 +
+STACK CFI INIT e0824 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0832 .cfa: $rsp 0 +
+STACK CFI e0836 .cfa: $rsp 128 +
+STACK CFI e083e .cfa: $rsp -128 +
+STACK CFI INIT e06e0 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e06e1 .cfa: $rsp 16 +
+STACK CFI e06e9 .cfa: $rsp 24 +
+STACK CFI e06ec $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI e06f0 .cfa: $rsp 48 +
+STACK CFI INIT e09a4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e09b2 .cfa: $rsp 0 +
+STACK CFI e09b6 .cfa: $rsp 128 +
+STACK CFI e09be .cfa: $rsp -128 +
+STACK CFI INIT e09c3 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e09d1 .cfa: $rsp 0 +
+STACK CFI e09d5 .cfa: $rsp 128 +
+STACK CFI e09dd .cfa: $rsp -128 +
+STACK CFI INIT e0840 164 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0842 .cfa: $rsp 16 +
+STACK CFI e084a .cfa: $rsp 24 +
+STACK CFI e084d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI e084e .cfa: $rsp 32 +
+STACK CFI e0852 .cfa: $rsp 48 +
+STACK CFI e0888 $rbx: .cfa -32 + ^
+STACK CFI INIT e0b8e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0b9c .cfa: $rsp 0 +
+STACK CFI e0ba0 .cfa: $rsp 128 +
+STACK CFI e0ba8 .cfa: $rsp -128 +
+STACK CFI INIT e0bad 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0bbb .cfa: $rsp 0 +
+STACK CFI e0bbf .cfa: $rsp 128 +
+STACK CFI e0bc7 .cfa: $rsp -128 +
+STACK CFI INIT e09f0 19e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e09f2 .cfa: $rsp 16 +
+STACK CFI e09f4 .cfa: $rsp 24 +
+STACK CFI e09f5 .cfa: $rsp 32 +
+STACK CFI e09f6 .cfa: $rsp 40 +
+STACK CFI e09f9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI e09fd .cfa: $rsp 96 +
+STACK CFI INIT e0db8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0dc2 .cfa: $rsp 0 +
+STACK CFI e0dc6 .cfa: $rsp 128 +
+STACK CFI e0dce .cfa: $rsp -128 +
+STACK CFI INIT e0dd3 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI e0ddd .cfa: $rsp 0 +
+STACK CFI e0de1 .cfa: $rsp 128 +
+STACK CFI e0de9 .cfa: $rsp -128 +
+STACK CFI INIT e0bd0 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0bd2 .cfa: $rsp 16 +
+STACK CFI e0bd4 .cfa: $rsp 24 +
+STACK CFI e0bd6 .cfa: $rsp 32 +
+STACK CFI e0bd8 .cfa: $rsp 40 +
+STACK CFI e0bdb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI e0bdc .cfa: $rsp 48 +
+STACK CFI e0bdd .cfa: $rsp 56 +
+STACK CFI e0be0 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e0be4 .cfa: $rsp 64 +
+STACK CFI INIT e1012 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e1020 .cfa: $rsp 0 +
+STACK CFI e1024 .cfa: $rsp 128 +
+STACK CFI e102c .cfa: $rsp -128 +
+STACK CFI INIT e1031 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e103f .cfa: $rsp 0 +
+STACK CFI e1043 .cfa: $rsp 128 +
+STACK CFI e104b .cfa: $rsp -128 +
+STACK CFI INIT e1050 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e105e .cfa: $rsp 0 +
+STACK CFI e1062 .cfa: $rsp 128 +
+STACK CFI e106a .cfa: $rsp -128 +
+STACK CFI INIT e106f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e107d .cfa: $rsp 0 +
+STACK CFI e1081 .cfa: $rsp 128 +
+STACK CFI e1089 .cfa: $rsp -128 +
+STACK CFI INIT e108e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e109c .cfa: $rsp 0 +
+STACK CFI e10a0 .cfa: $rsp 128 +
+STACK CFI e10a8 .cfa: $rsp -128 +
+STACK CFI INIT e10ad 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e10bb .cfa: $rsp 0 +
+STACK CFI e10bf .cfa: $rsp 128 +
+STACK CFI e10c7 .cfa: $rsp -128 +
+STACK CFI INIT e0df0 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0df4 .cfa: $rsp 80 +
+STACK CFI INIT e0ed0 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0ed4 .cfa: $rsp 16 +
+STACK CFI INIT e0f70 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e0f74 .cfa: $rsp 32 +
+STACK CFI INIT e10d0 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e10d2 .cfa: $rsp 16 +
+STACK CFI e10d5 $r15: .cfa -16 + ^
+STACK CFI e10d7 .cfa: $rsp 24 +
+STACK CFI e10da $r14: .cfa -24 + ^
+STACK CFI e10dc .cfa: $rsp 32 +
+STACK CFI e10df $r13: .cfa -32 + ^
+STACK CFI e10e1 .cfa: $rsp 40 +
+STACK CFI e10e4 $r12: .cfa -40 + ^
+STACK CFI e10e5 .cfa: $rsp 48 +
+STACK CFI e10e6 .cfa: $rsp 56 +
+STACK CFI e10ea .cfa: $rsp 112 +
+STACK CFI e10fc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e12c0 387 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e12c2 .cfa: $rsp 16 +
+STACK CFI e12c5 $r15: .cfa -16 + ^
+STACK CFI e12c7 .cfa: $rsp 24 +
+STACK CFI e12c9 .cfa: $rsp 32 +
+STACK CFI e12cd $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI e12cf .cfa: $rsp 40 +
+STACK CFI e12d2 $r12: .cfa -40 + ^
+STACK CFI e12d3 .cfa: $rsp 48 +
+STACK CFI e12d6 $rbp: .cfa -48 + ^
+STACK CFI e12d7 .cfa: $rsp 56 +
+STACK CFI e12da $rbx: .cfa -56 + ^
+STACK CFI e12de .cfa: $rsp 80 +
+STACK CFI INIT e1650 bf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e165d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI e1673 .cfa: $rsp 48 +
+STACK CFI e1679 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT e1966 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e1970 .cfa: $rsp 0 +
+STACK CFI e1974 .cfa: $rsp 128 +
+STACK CFI e197c .cfa: $rsp -128 +
+STACK CFI INIT e1981 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e198b .cfa: $rsp 0 +
+STACK CFI e198f .cfa: $rsp 128 +
+STACK CFI e1997 .cfa: $rsp -128 +
+STACK CFI INIT e199c 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e19a6 .cfa: $rsp 0 +
+STACK CFI e19aa .cfa: $rsp 128 +
+STACK CFI e19b2 .cfa: $rsp -128 +
+STACK CFI INIT e19b7 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI e19c1 .cfa: $rsp 0 +
+STACK CFI e19c5 .cfa: $rsp 128 +
+STACK CFI e19cd .cfa: $rsp -128 +
+STACK CFI INIT e1710 256 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e1712 .cfa: $rsp 16 +
+STACK CFI e1714 .cfa: $rsp 24 +
+STACK CFI e1717 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI e1719 .cfa: $rsp 32 +
+STACK CFI e171b .cfa: $rsp 40 +
+STACK CFI e171c .cfa: $rsp 48 +
+STACK CFI e171f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI e1720 .cfa: $rsp 56 +
+STACK CFI e1723 $rbx: .cfa -56 + ^
+STACK CFI e1727 .cfa: $rsp 80 +
+STACK CFI INIT e19e0 5a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e19e2 .cfa: $rsp 16 +
+STACK CFI e19e4 .cfa: $rsp 24 +
+STACK CFI e19e6 .cfa: $rsp 32 +
+STACK CFI e19e8 .cfa: $rsp 40 +
+STACK CFI e19e9 .cfa: $rsp 48 +
+STACK CFI e19ea .cfa: $rsp 56 +
+STACK CFI e19ed $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e19f1 .cfa: $rsp 80 +
+STACK CFI INIT e1f90 b7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e1f9e .cfa: $rsp 32 +
+STACK CFI e1fa9 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e2050 ff .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2052 .cfa: $rsp 16 +
+STACK CFI e2058 $r13: .cfa -16 + ^
+STACK CFI e205f .cfa: $rsp 24 +
+STACK CFI e2060 .cfa: $rsp 32 +
+STACK CFI e2061 .cfa: $rsp 40 +
+STACK CFI e2064 $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI e206e .cfa: $rsp 256 +
+STACK CFI INIT e2150 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2151 .cfa: $rsp 16 +
+STACK CFI e2154 $rbx: .cfa -16 + ^
+STACK CFI INIT e2190 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e219d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI e21b5 .cfa: $rsp 48 +
+STACK CFI e21bb $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT e2240 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e224d .cfa: $rsp 16 +
+STACK CFI e2250 $rbx: .cfa -16 + ^
+STACK CFI INIT e2270 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e227e .cfa: $rsp 32 +
+STACK CFI e2289 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e22b0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e22be .cfa: $rsp 32 +
+STACK CFI e22c9 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e22f0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e22fe .cfa: $rsp 32 +
+STACK CFI e2309 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e2330 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e233e .cfa: $rsp 32 +
+STACK CFI e2349 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e2390 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e239d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI e23a6 .cfa: $rsp 32 +
+STACK CFI e23ad $r12: .cfa -16 + ^
+STACK CFI INIT e2400 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e240d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI e2419 .cfa: $rsp 32 +
+STACK CFI e241c $r12: .cfa -16 + ^
+STACK CFI INIT e2460 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e24a0 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e24a1 .cfa: $rsp 16 +
+STACK CFI e24a4 $rbp: .cfa -16 + ^
+STACK CFI e24a5 .cfa: $rsp 24 +
+STACK CFI e24a9 .cfa: $rsp 32 +
+STACK CFI e24b2 $rbx: .cfa -24 + ^
+STACK CFI INIT e24f0 f5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e24f2 .cfa: $rsp 16 +
+STACK CFI e24fa $r15: .cfa -16 + ^
+STACK CFI e24fc .cfa: $rsp 24 +
+STACK CFI e24ff $r14: .cfa -24 + ^
+STACK CFI e2501 .cfa: $rsp 32 +
+STACK CFI e2503 .cfa: $rsp 40 +
+STACK CFI e2504 .cfa: $rsp 48 +
+STACK CFI e2505 .cfa: $rsp 56 +
+STACK CFI e2509 .cfa: $rsp 80 +
+STACK CFI e250c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e25f0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e2650 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e26f0 23d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e26fa $rbp: .cfa -40 + ^
+STACK CFI e271b $r12: .cfa -32 + ^ $r14: .cfa -16 + ^ $rbx: .cfa -48 + ^
+STACK CFI e2727 .cfa: $rsp 432 +
+STACK CFI e2773 $r13: .cfa -24 + ^
+STACK CFI INIT e2930 c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2938 $rbx: .cfa -32 + ^
+STACK CFI e2946 .cfa: $rsp 32 +
+STACK CFI e294e $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI INIT e2a00 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2a0d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI e2a16 .cfa: $rsp 32 +
+STACK CFI e2a20 $r12: .cfa -16 + ^
+STACK CFI INIT e2a90 195 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2a91 .cfa: $rsp 16 +
+STACK CFI e2a94 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e2a99 $r15: .cfa -24 + ^
+STACK CFI e2aa2 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI e2aae $rbx: .cfa -56 + ^
+STACK CFI INIT e2c30 66f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e2c32 .cfa: $rsp 16 +
+STACK CFI e2c34 .cfa: $rsp 24 +
+STACK CFI e2c37 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI e2c39 .cfa: $rsp 32 +
+STACK CFI e2c3b .cfa: $rsp 40 +
+STACK CFI e2c3c .cfa: $rsp 48 +
+STACK CFI e2c3d .cfa: $rsp 56 +
+STACK CFI e2c41 .cfa: $rsp 112 +
+STACK CFI e2c45 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e32a0 340 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e32a2 .cfa: $rsp 16 +
+STACK CFI e32a4 .cfa: $rsp 24 +
+STACK CFI e32a6 .cfa: $rsp 32 +
+STACK CFI e32a7 .cfa: $rsp 40 +
+STACK CFI e32aa $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI e32ab .cfa: $rsp 48 +
+STACK CFI e32ae $rbx: .cfa -48 + ^
+STACK CFI e32b2 .cfa: $rsp 64 +
+STACK CFI INIT e35e0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e35e1 .cfa: $rsp 16 +
+STACK CFI e35e3 $rbp: .cfa -16 + ^
+STACK CFI e35e4 .cfa: $rsp 24 +
+STACK CFI e35e8 .cfa: $rsp 32 +
+STACK CFI e35ec $rbx: .cfa -24 + ^
+STACK CFI INIT e3630 a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e3631 .cfa: $rsp 16 +
+STACK CFI e3634 $rbx: .cfa -16 + ^
+STACK CFI e3638 .cfa: $rsp 32 +
+STACK CFI INIT e36e0 d4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e36e8 $rbx: .cfa -40 + ^
+STACK CFI e36fb .cfa: $rsp 48 +
+STACK CFI e3705 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT e37c0 82 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e37c1 .cfa: $rsp 16 +
+STACK CFI e37c3 $rbp: .cfa -16 + ^
+STACK CFI e37c4 .cfa: $rsp 24 +
+STACK CFI e37c7 $rbx: .cfa -24 + ^
+STACK CFI e37cb .cfa: $rsp 32 +
+STACK CFI INIT e3850 6e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e385d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI e3866 .cfa: $rsp 32 +
+STACK CFI e386e $r12: .cfa -16 + ^
+STACK CFI INIT e38c0 21c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e38c2 .cfa: $rsp 16 +
+STACK CFI e38c5 $r15: .cfa -16 + ^
+STACK CFI e38c7 .cfa: $rsp 24 +
+STACK CFI e38ca $r14: .cfa -24 + ^
+STACK CFI e38cc .cfa: $rsp 32 +
+STACK CFI e38cf $r13: .cfa -32 + ^
+STACK CFI e38d1 .cfa: $rsp 40 +
+STACK CFI e38d4 $r12: .cfa -40 + ^
+STACK CFI e38d5 .cfa: $rsp 48 +
+STACK CFI e38d7 $rbp: .cfa -48 + ^
+STACK CFI e38d8 .cfa: $rsp 56 +
+STACK CFI e38dc .cfa: $rsp 112 +
+STACK CFI e38e7 $rbx: .cfa -56 + ^
+STACK CFI INIT e3ae0 27f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e3afa $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e3b08 .cfa: $rsp 80 +
+STACK CFI e3b17 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT e3d60 1cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e3d6d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI e3d82 .cfa: $rsp 48 +
+STACK CFI e3d86 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT e3f30 564 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e3f32 .cfa: $rsp 16 +
+STACK CFI e3f35 $r15: .cfa -16 + ^
+STACK CFI e3f37 .cfa: $rsp 24 +
+STACK CFI e3f3a $r14: .cfa -24 + ^
+STACK CFI e3f3c .cfa: $rsp 32 +
+STACK CFI e3f3f $r13: .cfa -32 + ^
+STACK CFI e3f46 .cfa: $rsp 40 +
+STACK CFI e3f49 $r12: .cfa -40 + ^
+STACK CFI e3f4a .cfa: $rsp 48 +
+STACK CFI e3f4b .cfa: $rsp 56 +
+STACK CFI e3f4f .cfa: $rsp 128 +
+STACK CFI e3f61 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e44a0 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e44a2 .cfa: $rsp 16 +
+STACK CFI e44a4 .cfa: $rsp 24 +
+STACK CFI e44a6 .cfa: $rsp 32 +
+STACK CFI e44a9 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI e44aa .cfa: $rsp 40 +
+STACK CFI e44ab .cfa: $rsp 48 +
+STACK CFI e44b7 $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT e4520 1418 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e4521 .cfa: $rsp 16 +
+STACK CFI e4524 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e4529 $r15: .cfa -24 + ^
+STACK CFI e455b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e5940 a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e594e .cfa: $rsp 32 +
+STACK CFI e5954 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e59f0 14c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e59f1 .cfa: $rsp 16 +
+STACK CFI e59f5 .cfa: $rsp 24 +
+STACK CFI e59f8 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI e59ff .cfa: $rsp 256 +
+STACK CFI INIT e5b40 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e5b50 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e5b51 .cfa: $rsp 16 +
+STACK CFI e5b59 $rbp: .cfa -16 + ^
+STACK CFI e5b5a .cfa: $rsp 24 +
+STACK CFI e5b5d $rbx: .cfa -24 + ^
+STACK CFI e5b63 .cfa: $rsp 32 +
+STACK CFI INIT e5ba0 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e5ba1 .cfa: $rsp 16 +
+STACK CFI e5ba2 .cfa: $rsp 24 +
+STACK CFI e5ba5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI e5ba9 .cfa: $rsp 32 +
+STACK CFI INIT e5c40 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e5c80 8e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e5c84 .cfa: $rsp 16 +
+STACK CFI e5c8c $rbx: .cfa -16 + ^
+STACK CFI INIT e5d10 12c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e5d11 .cfa: $rsp 16 +
+STACK CFI e5d14 $rbp: .cfa -16 + ^
+STACK CFI e5d15 .cfa: $rsp 24 +
+STACK CFI e5d18 $rbx: .cfa -24 + ^
+STACK CFI e5d1c .cfa: $rsp 32 +
+STACK CFI INIT e5e40 30f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e5e42 .cfa: $rsp 16 +
+STACK CFI e5e44 .cfa: $rsp 24 +
+STACK CFI e5e47 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI e5e49 .cfa: $rsp 32 +
+STACK CFI e5e4b .cfa: $rsp 40 +
+STACK CFI e5e4c .cfa: $rsp 48 +
+STACK CFI e5e4f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI e5e50 .cfa: $rsp 56 +
+STACK CFI e5e54 .cfa: $rsp 112 +
+STACK CFI e5e5b $rbx: .cfa -56 + ^
+STACK CFI INIT e6150 c76 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e6151 .cfa: $rsp 16 +
+STACK CFI e6154 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI e615d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI e6163 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT e6dd0 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6e00 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6e60 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6e80 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6ed0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6f00 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6f30 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6f60 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6f90 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6fc0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e6ff0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7020 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7050 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7080 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e70b0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e70e0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7110 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7140 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7170 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111df0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e71a0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111e20 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e71d0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111e50 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7200 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111e80 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7230 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111eb0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7260 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111ee0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7290 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e72c0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e72f0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7320 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7350 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7380 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e73b0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e73e0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7410 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7440 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111f10 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111f14 .cfa: $rsp 16 +
+STACK CFI INIT e7470 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7474 .cfa: $rsp 16 +
+STACK CFI INIT e74b0 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e74b2 .cfa: $rsp 16 +
+STACK CFI e74b3 $r10: .cfa -16 + ^ $rdx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e74d4 $rdx: $rdx .cfa: $rsp 16 +
+STACK CFI e74d6 $r10: $r10 .cfa: $rsp 8 +
+STACK CFI INIT e74e0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e74e1 .cfa: $rsp 16 +
+STACK CFI e74e2 $rdx: .cfa -24 + ^ $rsi: .cfa -16 + ^ .cfa: $rsp 24 +
+STACK CFI e74fa $rdx: $rdx .cfa: $rsp 16 +
+STACK CFI e74fb $rsi: $rsi .cfa: $rsp 8 +
+STACK CFI INIT e7500 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7530 .cfa: $rsp 16 +
+STACK CFI INIT e7560 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e75c0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136565 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 136573 .cfa: $rsp 0 +
+STACK CFI 136577 .cfa: $rsp 128 +
+STACK CFI 13657f .cfa: $rsp -128 +
+STACK CFI INIT 136581 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 13658f .cfa: $rsp 0 +
+STACK CFI 136593 .cfa: $rsp 128 +
+STACK CFI 13659b .cfa: $rsp -128 +
+STACK CFI INIT e777a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e7788 .cfa: $rsp 0 +
+STACK CFI e778c .cfa: $rsp 128 +
+STACK CFI e7794 .cfa: $rsp -128 +
+STACK CFI INIT e7799 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e77a7 .cfa: $rsp 0 +
+STACK CFI e77ab .cfa: $rsp 128 +
+STACK CFI e77b3 .cfa: $rsp -128 +
+STACK CFI INIT e75e0 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1364e0 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1364e1 .cfa: $rsp 16 +
+STACK CFI 13654d $rbx: .cfa -16 + ^
+STACK CFI INIT e7610 16a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7612 .cfa: $rsp 16 +
+STACK CFI e7617 $r12: .cfa -16 + ^
+STACK CFI e7618 .cfa: $rsp 24 +
+STACK CFI e761b $rbp: .cfa -24 + ^
+STACK CFI e761c .cfa: $rsp 32 +
+STACK CFI e761f $rbx: .cfa -32 + ^
+STACK CFI e7628 .cfa: $rsp 48 +
+STACK CFI INIT e7920 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e792e .cfa: $rsp 0 +
+STACK CFI e7932 .cfa: $rsp 128 +
+STACK CFI e793a .cfa: $rsp -128 +
+STACK CFI INIT e793f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI e794d .cfa: $rsp 0 +
+STACK CFI e7951 .cfa: $rsp 128 +
+STACK CFI e7959 .cfa: $rsp -128 +
+STACK CFI INIT e77c0 160 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e77c1 .cfa: $rsp 16 +
+STACK CFI e77ce $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT 1365a0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7960 5a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7961 .cfa: $rsp 16 +
+STACK CFI e796d $rbx: .cfa -16 + ^
+STACK CFI INIT e79c0 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7a30 cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7a43 .cfa: $rsp 96 +
+STACK CFI e7a4c $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT e7b00 14d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7b02 .cfa: $rsp 16 +
+STACK CFI e7b04 .cfa: $rsp 24 +
+STACK CFI e7b06 .cfa: $rsp 32 +
+STACK CFI e7b08 .cfa: $rsp 40 +
+STACK CFI e7b09 .cfa: $rsp 48 +
+STACK CFI e7b0c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI e7b0d .cfa: $rsp 56 +
+STACK CFI e7b11 .cfa: $rsp 128 +
+STACK CFI e7b40 $rbx: .cfa -56 + ^
+STACK CFI INIT e7c50 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7c54 .cfa: $rsp 32 +
+STACK CFI INIT e7c70 7a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7c7c $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI e7c85 .cfa: $rsp 48 +
+STACK CFI e7ca7 $rbx: .cfa -32 + ^
+STACK CFI INIT e7cf0 325 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7cf2 .cfa: $rsp 16 +
+STACK CFI e7cf4 .cfa: $rsp 24 +
+STACK CFI e7cf6 .cfa: $rsp 32 +
+STACK CFI e7cf8 .cfa: $rsp 40 +
+STACK CFI e7cf9 .cfa: $rsp 48 +
+STACK CFI e7cfa .cfa: $rsp 56 +
+STACK CFI e7cfd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e7d01 .cfa: $rsp 176 +
+STACK CFI INIT e8020 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e80c0 2e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e80cd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e80e5 .cfa: $rsp 128 +
+STACK CFI e80ea $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT e83b0 bf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e83b4 .cfa: $rsp 16 +
+STACK CFI e83bd $rbx: .cfa -16 + ^
+STACK CFI INIT e8470 18e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e8471 .cfa: $rsp 16 +
+STACK CFI e8474 .cfa: $rsp 24 +
+STACK CFI e8483 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT e8600 cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e860d $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI e861b .cfa: $rsp 48 +
+STACK CFI e8628 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 1369f0 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1369f1 .cfa: $rsp 16 +
+STACK CFI 1369f8 $rbx: .cfa -16 + ^
+STACK CFI INIT e86d0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e86e0 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e86e4 .cfa: $rsp 16 +
+STACK CFI INIT e8700 303 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e8702 .cfa: $rsp 16 +
+STACK CFI e8709 $r15: .cfa -16 + ^
+STACK CFI e870b .cfa: $rsp 24 +
+STACK CFI e8712 $r14: .cfa -24 + ^
+STACK CFI e8714 .cfa: $rsp 32 +
+STACK CFI e871b $r13: .cfa -32 + ^
+STACK CFI e871d .cfa: $rsp 40 +
+STACK CFI e8723 $r12: .cfa -40 + ^
+STACK CFI e8724 .cfa: $rsp 48 +
+STACK CFI e8727 $rbp: .cfa -48 + ^
+STACK CFI e8728 .cfa: $rsp 56 +
+STACK CFI e872b $rbx: .cfa -56 + ^
+STACK CFI e872f .cfa: $rsp 64 +
+STACK CFI INIT e8a10 b84 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e8a12 .cfa: $rsp 16 +
+STACK CFI e8a14 .cfa: $rsp 24 +
+STACK CFI e8a16 .cfa: $rsp 32 +
+STACK CFI e8a18 .cfa: $rsp 40 +
+STACK CFI e8a19 .cfa: $rsp 48 +
+STACK CFI e8a1a .cfa: $rsp 56 +
+STACK CFI e8a1d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e8a24 .cfa: $rsp 8416 +
+STACK CFI INIT e95a0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ea2b0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ea2be .cfa: $rsp 0 +
+STACK CFI ea2c2 .cfa: $rsp 128 +
+STACK CFI ea2ca .cfa: $rsp -128 +
+STACK CFI INIT ea2cf 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ea2dd .cfa: $rsp 0 +
+STACK CFI ea2e1 .cfa: $rsp 128 +
+STACK CFI ea2e9 .cfa: $rsp -128 +
+STACK CFI INIT e95b0 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e95b2 .cfa: $rsp 16 +
+STACK CFI e95b5 $r15: .cfa -16 + ^
+STACK CFI e95b7 .cfa: $rsp 24 +
+STACK CFI e95b9 .cfa: $rsp 32 +
+STACK CFI e95bb .cfa: $rsp 40 +
+STACK CFI e95bc .cfa: $rsp 48 +
+STACK CFI e95bd .cfa: $rsp 56 +
+STACK CFI e95c1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 80 +
+STACK CFI INIT e9650 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e9651 .cfa: $rsp 16 +
+STACK CFI e9654 $rbp: .cfa -16 + ^
+STACK CFI e9655 .cfa: $rsp 24 +
+STACK CFI e9659 .cfa: $rsp 32 +
+STACK CFI e9667 $rbx: .cfa -24 + ^
+STACK CFI INIT e96b0 2a1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e96bd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI e96d5 .cfa: $rsp 96 +
+STACK CFI e96e2 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT e9960 f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e996c $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI e9983 $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^
+STACK CFI e9987 .cfa: $rsp 64 +
+STACK CFI INIT e9a60 11f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e9a62 .cfa: $rsp 16 +
+STACK CFI e9a66 .cfa: $rsp 24 +
+STACK CFI e9a67 .cfa: $rsp 32 +
+STACK CFI e9a70 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT e9b80 221 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e9b82 .cfa: $rsp 16 +
+STACK CFI e9b8c $r15: .cfa -16 + ^
+STACK CFI e9b8e .cfa: $rsp 24 +
+STACK CFI e9b90 .cfa: $rsp 32 +
+STACK CFI e9b92 .cfa: $rsp 40 +
+STACK CFI e9b93 .cfa: $rsp 48 +
+STACK CFI e9b95 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI e9b96 .cfa: $rsp 56 +
+STACK CFI e9b99 $rbx: .cfa -56 + ^
+STACK CFI e9ba0 .cfa: $rsp 80 +
+STACK CFI INIT e9db0 49a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e9db2 .cfa: $rsp 16 +
+STACK CFI e9dbb .cfa: $rsp 24 +
+STACK CFI e9dbd .cfa: $rsp 32 +
+STACK CFI e9dbf .cfa: $rsp 40 +
+STACK CFI e9dc0 .cfa: $rsp 48 +
+STACK CFI e9dc1 .cfa: $rsp 56 +
+STACK CFI e9dc8 .cfa: $rsp 400 +
+STACK CFI e9dd9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ea250 60 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea254 .cfa: $rsp 16 +
+STACK CFI INIT ea4fe 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ea50c .cfa: $rsp 0 +
+STACK CFI ea510 .cfa: $rsp 128 +
+STACK CFI ea518 .cfa: $rsp -128 +
+STACK CFI INIT ea51d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI ea52b .cfa: $rsp 0 +
+STACK CFI ea52f .cfa: $rsp 128 +
+STACK CFI ea537 .cfa: $rsp -128 +
+STACK CFI INIT ea2f0 b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea2f4 .cfa: $rsp 32 +
+STACK CFI INIT ea3b0 14e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea3b1 .cfa: $rsp 16 +
+STACK CFI ea3b4 $rbx: .cfa -16 + ^
+STACK CFI ea3bb .cfa: $rsp 160 +
+STACK CFI INIT ea540 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ea550 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea55c $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI ea568 .cfa: $rsp 160 +
+STACK CFI ea587 $r12: .cfa -16 + ^
+STACK CFI INIT eb61a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb628 .cfa: $rsp 0 +
+STACK CFI eb62c .cfa: $rsp 128 +
+STACK CFI eb634 .cfa: $rsp -128 +
+STACK CFI INIT eb639 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb647 .cfa: $rsp 0 +
+STACK CFI eb64b .cfa: $rsp 128 +
+STACK CFI eb653 .cfa: $rsp -128 +
+STACK CFI INIT eb658 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb666 .cfa: $rsp 0 +
+STACK CFI eb66a .cfa: $rsp 128 +
+STACK CFI eb672 .cfa: $rsp -128 +
+STACK CFI INIT eb677 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb685 .cfa: $rsp 0 +
+STACK CFI eb689 .cfa: $rsp 128 +
+STACK CFI eb691 .cfa: $rsp -128 +
+STACK CFI INIT eb696 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb6a4 .cfa: $rsp 0 +
+STACK CFI eb6a8 .cfa: $rsp 128 +
+STACK CFI eb6b0 .cfa: $rsp -128 +
+STACK CFI INIT eb6b5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI eb6c3 .cfa: $rsp 0 +
+STACK CFI eb6c7 .cfa: $rsp 128 +
+STACK CFI eb6cf .cfa: $rsp -128 +
+STACK CFI INIT ea5e0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ea610 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea612 .cfa: $rsp 16 +
+STACK CFI ea616 .cfa: $rsp 24 +
+STACK CFI ea619 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI ea61a .cfa: $rsp 32 +
+STACK CFI ea61c $rbx: .cfa -32 + ^
+STACK CFI INIT 1365d0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136600 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136602 .cfa: $rsp 16 +
+STACK CFI 136603 .cfa: $rsp 24 +
+STACK CFI 13660a $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 13660b .cfa: $rsp 32 +
+STACK CFI 136610 $rbx: .cfa -32 + ^
+STACK CFI INIT ea680 373 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea681 .cfa: $rsp 16 +
+STACK CFI ea686 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ea691 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ea6d4 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT eaa00 af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eaa02 .cfa: $rsp 16 +
+STACK CFI eaa04 .cfa: $rsp 24 +
+STACK CFI eaa07 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI eaa09 .cfa: $rsp 32 +
+STACK CFI eaa0c $r12: .cfa -32 + ^
+STACK CFI eaa0d .cfa: $rsp 40 +
+STACK CFI eaa10 $rbp: .cfa -40 + ^
+STACK CFI eaa11 .cfa: $rsp 48 +
+STACK CFI eaa14 $rbx: .cfa -48 + ^
+STACK CFI INIT eaab0 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT eaad0 511 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eaad2 .cfa: $rsp 16 +
+STACK CFI eaad4 .cfa: $rsp 24 +
+STACK CFI eaad7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI eaad9 .cfa: $rsp 32 +
+STACK CFI eaadb .cfa: $rsp 40 +
+STACK CFI eaadc .cfa: $rsp 48 +
+STACK CFI eaadd .cfa: $rsp 56 +
+STACK CFI eaae1 .cfa: $rsp 112 +
+STACK CFI eaae8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT eaff0 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eaff2 .cfa: $rsp 16 +
+STACK CFI eaff4 .cfa: $rsp 24 +
+STACK CFI eaff7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI eaff9 .cfa: $rsp 32 +
+STACK CFI eaffc $r13: .cfa -32 + ^
+STACK CFI eaffe .cfa: $rsp 40 +
+STACK CFI eb005 $r12: .cfa -40 + ^
+STACK CFI eb006 .cfa: $rsp 48 +
+STACK CFI eb007 .cfa: $rsp 56 +
+STACK CFI eb009 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI eb00d .cfa: $rsp 64 +
+STACK CFI INIT eb100 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb10d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI eb123 .cfa: $rsp 48 +
+STACK CFI eb129 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 111f50 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT eb210 40a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb21d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI eb22a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI eb23e .cfa: $rsp 144 +
+STACK CFI eb274 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT eb6e0 db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb6e2 .cfa: $rsp 16 +
+STACK CFI eb6e5 $r15: .cfa -16 + ^
+STACK CFI eb6e7 .cfa: $rsp 24 +
+STACK CFI eb6ea $r14: .cfa -24 + ^
+STACK CFI eb6ec .cfa: $rsp 32 +
+STACK CFI eb6ee .cfa: $rsp 40 +
+STACK CFI eb6f1 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI eb6f2 .cfa: $rsp 48 +
+STACK CFI eb6f5 $rbp: .cfa -48 + ^
+STACK CFI eb6f6 .cfa: $rsp 56 +
+STACK CFI eb6f9 $rbx: .cfa -56 + ^
+STACK CFI eb6fd .cfa: $rsp 112 +
+STACK CFI INIT eb7c0 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb7c1 .cfa: $rsp 16 +
+STACK CFI eb7c4 $rbx: .cfa -16 + ^
+STACK CFI eb7cb .cfa: $rsp 32 +
+STACK CFI INIT eb840 c9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb842 .cfa: $rsp 16 +
+STACK CFI eb845 $r15: .cfa -16 + ^
+STACK CFI eb847 .cfa: $rsp 24 +
+STACK CFI eb84a $r14: .cfa -24 + ^
+STACK CFI eb84c .cfa: $rsp 32 +
+STACK CFI eb84e .cfa: $rsp 40 +
+STACK CFI eb851 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI eb852 .cfa: $rsp 48 +
+STACK CFI eb855 $rbp: .cfa -48 + ^
+STACK CFI eb856 .cfa: $rsp 56 +
+STACK CFI eb859 $rbx: .cfa -56 + ^
+STACK CFI eb85d .cfa: $rsp 80 +
+STACK CFI INIT eb910 111 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb912 .cfa: $rsp 16 +
+STACK CFI eb915 $r15: .cfa -16 + ^
+STACK CFI eb917 .cfa: $rsp 24 +
+STACK CFI eb91a $r14: .cfa -24 + ^
+STACK CFI eb91c .cfa: $rsp 32 +
+STACK CFI eb91f $r13: .cfa -32 + ^
+STACK CFI eb921 .cfa: $rsp 40 +
+STACK CFI eb924 $r12: .cfa -40 + ^
+STACK CFI eb925 .cfa: $rsp 48 +
+STACK CFI eb926 .cfa: $rsp 56 +
+STACK CFI eb929 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI eb92d .cfa: $rsp 96 +
+STACK CFI INIT eba30 2af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eba32 .cfa: $rsp 16 +
+STACK CFI eba34 .cfa: $rsp 24 +
+STACK CFI eba37 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI eba39 .cfa: $rsp 32 +
+STACK CFI eba3b .cfa: $rsp 40 +
+STACK CFI eba3c .cfa: $rsp 48 +
+STACK CFI eba3f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI eba40 .cfa: $rsp 56 +
+STACK CFI eba43 $rbx: .cfa -56 + ^
+STACK CFI eba47 .cfa: $rsp 144 +
+STACK CFI INIT ebce0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebced $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ebcfb .cfa: $rsp 48 +
+STACK CFI ebd08 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111f60 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ebd90 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebd9d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ebdab .cfa: $rsp 48 +
+STACK CFI ebdb8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111f70 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ebe40 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebe4d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ebe5b .cfa: $rsp 48 +
+STACK CFI ebe68 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111f80 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ebef0 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebefd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ebf0b .cfa: $rsp 48 +
+STACK CFI ebf18 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111f90 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ebfa0 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebfad $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ebfbb .cfa: $rsp 48 +
+STACK CFI ebfc8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111fa0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec040 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec04d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec05b .cfa: $rsp 48 +
+STACK CFI ec068 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT ec0e0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec0ed $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec0fb .cfa: $rsp 48 +
+STACK CFI ec108 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111fb0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec190 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec19d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec1ab .cfa: $rsp 48 +
+STACK CFI ec1b8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111fc0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec240 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec24d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec25b .cfa: $rsp 48 +
+STACK CFI ec268 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111fd0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec2e0 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec2ed $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec2fb .cfa: $rsp 48 +
+STACK CFI ec308 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111fe0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec380 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec38d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec39b .cfa: $rsp 48 +
+STACK CFI ec3a8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 111ff0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec420 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec42d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec43b .cfa: $rsp 48 +
+STACK CFI ec448 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 112000 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec4d0 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec4dd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ec4eb .cfa: $rsp 48 +
+STACK CFI ec4f8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 112010 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ec570 6d3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec572 .cfa: $rsp 16 +
+STACK CFI ec574 .cfa: $rsp 24 +
+STACK CFI ec576 .cfa: $rsp 32 +
+STACK CFI ec578 .cfa: $rsp 40 +
+STACK CFI ec57b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI ec57c .cfa: $rsp 48 +
+STACK CFI ec57f $rbp: .cfa -48 + ^
+STACK CFI ec580 .cfa: $rsp 56 +
+STACK CFI ec583 $rbx: .cfa -56 + ^
+STACK CFI ec587 .cfa: $rsp 128 +
+STACK CFI INIT ecc50 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ecc60 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ecca0 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ecca4 .cfa: $rsp 16 +
+STACK CFI INIT eccf0 18c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eccf2 .cfa: $rsp 16 +
+STACK CFI eccf4 .cfa: $rsp 24 +
+STACK CFI eccf5 .cfa: $rsp 32 +
+STACK CFI eccf6 .cfa: $rsp 40 +
+STACK CFI eccf9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI eccfd .cfa: $rsp 48 +
+STACK CFI INIT ece80 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ecec0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ecef0 15d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ed050 57 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed054 .cfa: $rsp 16 +
+STACK CFI INIT ed0b0 15d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ed210 124 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed214 .cfa: $rsp 16 +
+STACK CFI INIT ed340 e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed344 .cfa: $rsp 16 +
+STACK CFI INIT ed430 ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed434 .cfa: $rsp 16 +
+STACK CFI INIT ed520 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed521 .cfa: $rsp 16 +
+STACK CFI ed52c $rbx: .cfa -16 + ^
+STACK CFI ed53a .cfa: $rsp 224 +
+STACK CFI INIT ed5b0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed5b4 .cfa: $rsp 16 +
+STACK CFI INIT ed5c0 e2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed5cd $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI ed5eb .cfa: $rsp 304 +
+STACK CFI ed5f1 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT ed6b0 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed6b1 .cfa: $rsp 16 +
+STACK CFI ed6bc $rbx: .cfa -16 + ^
+STACK CFI ed6ca .cfa: $rsp 224 +
+STACK CFI INIT ed740 11b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed74d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI ed76b .cfa: $rsp 368 +
+STACK CFI ed771 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ed9fd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI eda07 .cfa: $rsp 0 +
+STACK CFI eda0b .cfa: $rsp 128 +
+STACK CFI eda13 .cfa: $rsp -128 +
+STACK CFI INIT eda18 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI eda22 .cfa: $rsp 0 +
+STACK CFI eda26 .cfa: $rsp 128 +
+STACK CFI eda2e .cfa: $rsp -128 +
+STACK CFI INIT eda33 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI eda3d .cfa: $rsp 0 +
+STACK CFI eda41 .cfa: $rsp 128 +
+STACK CFI eda49 .cfa: $rsp -128 +
+STACK CFI INIT ed860 19d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed862 .cfa: $rsp 16 +
+STACK CFI ed868 $r12: .cfa -16 + ^
+STACK CFI ed869 .cfa: $rsp 24 +
+STACK CFI ed86a .cfa: $rsp 32 +
+STACK CFI ed871 .cfa: $rsp 240 +
+STACK CFI ed878 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT edbe2 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI edbec .cfa: $rsp 0 +
+STACK CFI edbf0 .cfa: $rsp 128 +
+STACK CFI edbf8 .cfa: $rsp -128 +
+STACK CFI INIT edbfd 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI edc07 .cfa: $rsp 0 +
+STACK CFI edc0b .cfa: $rsp 128 +
+STACK CFI edc13 .cfa: $rsp -128 +
+STACK CFI INIT edc18 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI edc22 .cfa: $rsp 0 +
+STACK CFI edc26 .cfa: $rsp 128 +
+STACK CFI edc2e .cfa: $rsp -128 +
+STACK CFI INIT eda50 192 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eda51 .cfa: $rsp 16 +
+STACK CFI eda56 $rbp: .cfa -16 + ^
+STACK CFI eda57 .cfa: $rsp 24 +
+STACK CFI eda5a $rbx: .cfa -24 + ^
+STACK CFI eda61 .cfa: $rsp 240 +
+STACK CFI INIT edd5f 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI edd69 .cfa: $rsp 0 +
+STACK CFI edd6d .cfa: $rsp 128 +
+STACK CFI edd75 .cfa: $rsp -128 +
+STACK CFI INIT edd7a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI edd84 .cfa: $rsp 0 +
+STACK CFI edd88 .cfa: $rsp 128 +
+STACK CFI edd90 .cfa: $rsp -128 +
+STACK CFI INIT edd95 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI edd9f .cfa: $rsp 0 +
+STACK CFI edda3 .cfa: $rsp 128 +
+STACK CFI eddab .cfa: $rsp -128 +
+STACK CFI INIT edc30 12f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI edc3c $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI edc45 .cfa: $rsp 32 +
+STACK CFI edc53 $rbx: .cfa -32 + ^
+STACK CFI INIT edeca 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI eded4 .cfa: $rsp 0 +
+STACK CFI eded8 .cfa: $rsp 128 +
+STACK CFI edee0 .cfa: $rsp -128 +
+STACK CFI INIT edee5 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI edeef .cfa: $rsp 0 +
+STACK CFI edef3 .cfa: $rsp 128 +
+STACK CFI edefb .cfa: $rsp -128 +
+STACK CFI INIT edf00 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI edf0a .cfa: $rsp 0 +
+STACK CFI edf0e .cfa: $rsp 128 +
+STACK CFI edf16 .cfa: $rsp -128 +
+STACK CFI INIT eddb0 11a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eddb1 .cfa: $rsp 16 +
+STACK CFI eddb6 $rbp: .cfa -16 + ^
+STACK CFI eddba .cfa: $rsp 24 +
+STACK CFI eddbd $rbx: .cfa -24 + ^
+STACK CFI eddc1 .cfa: $rsp 32 +
+STACK CFI INIT ee0f9 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee103 .cfa: $rsp 0 +
+STACK CFI ee107 .cfa: $rsp 128 +
+STACK CFI ee10f .cfa: $rsp -128 +
+STACK CFI INIT ee114 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee11e .cfa: $rsp 0 +
+STACK CFI ee122 .cfa: $rsp 128 +
+STACK CFI ee12a .cfa: $rsp -128 +
+STACK CFI INIT ee12f 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee139 .cfa: $rsp 0 +
+STACK CFI ee13d .cfa: $rsp 128 +
+STACK CFI ee145 .cfa: $rsp -128 +
+STACK CFI INIT edf20 1d9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI edf2d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI edf3b .cfa: $rsp 48 +
+STACK CFI edf47 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT ee150 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee15b .cfa: $rsp 16 +
+STACK CFI INIT ee160 206 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee162 .cfa: $rsp 16 +
+STACK CFI ee168 .cfa: $rsp 24 +
+STACK CFI ee16a .cfa: $rsp 32 +
+STACK CFI ee16c .cfa: $rsp 40 +
+STACK CFI ee16f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI ee177 .cfa: $rsp 48 +
+STACK CFI ee17a $rbp: .cfa -48 + ^
+STACK CFI ee182 .cfa: $rsp 56 +
+STACK CFI ee186 .cfa: $rsp 128 +
+STACK CFI ee18b $rbx: .cfa -56 + ^
+STACK CFI INIT ee50a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee514 .cfa: $rsp 0 +
+STACK CFI ee518 .cfa: $rsp 128 +
+STACK CFI ee520 .cfa: $rsp -128 +
+STACK CFI INIT ee525 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee52f .cfa: $rsp 0 +
+STACK CFI ee533 .cfa: $rsp 128 +
+STACK CFI ee53b .cfa: $rsp -128 +
+STACK CFI INIT ee540 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee54a .cfa: $rsp 0 +
+STACK CFI ee54e .cfa: $rsp 128 +
+STACK CFI ee556 .cfa: $rsp -128 +
+STACK CFI INIT ee370 19a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee37d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ee38b .cfa: $rsp 48 +
+STACK CFI ee390 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT ee560 b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee57a .cfa: $rsp 48 +
+STACK CFI ee57f $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT ee620 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee624 .cfa: $rsp 16 +
+STACK CFI INIT ee660 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee664 .cfa: $rsp 16 +
+STACK CFI INIT ee680 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee684 .cfa: $rsp 16 +
+STACK CFI INIT ee6a0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee6a4 .cfa: $rsp 16 +
+STACK CFI INIT ee6c0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee6c4 .cfa: $rsp 16 +
+STACK CFI INIT ee6f0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee6f4 .cfa: $rsp 16 +
+STACK CFI INIT ee730 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee734 .cfa: $rsp 16 +
+STACK CFI INIT ee750 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee754 .cfa: $rsp 16 +
+STACK CFI INIT ee780 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee784 .cfa: $rsp 16 +
+STACK CFI INIT ee7a0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee7a4 .cfa: $rsp 16 +
+STACK CFI INIT ee7c0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee7c4 .cfa: $rsp 16 +
+STACK CFI INIT ee98a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee994 .cfa: $rsp 0 +
+STACK CFI ee998 .cfa: $rsp 128 +
+STACK CFI ee9a0 .cfa: $rsp -128 +
+STACK CFI INIT ee9a5 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee9af .cfa: $rsp 0 +
+STACK CFI ee9b3 .cfa: $rsp 128 +
+STACK CFI ee9bb .cfa: $rsp -128 +
+STACK CFI INIT ee9c0 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI ee9ca .cfa: $rsp 0 +
+STACK CFI ee9ce .cfa: $rsp 128 +
+STACK CFI ee9d6 .cfa: $rsp -128 +
+STACK CFI INIT ee7e0 1aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee7e8 $r12: .cfa -24 + ^
+STACK CFI ee7f4 $r13: .cfa -16 + ^
+STACK CFI ee80d .cfa: $rsp 48 +
+STACK CFI ee816 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT ee9e0 8c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ee9e8 $r12: .cfa -16 + ^
+STACK CFI ee9f4 $rbx: .cfa -32 + ^
+STACK CFI eea08 .cfa: $rsp 32 +
+STACK CFI eea0e $rbp: .cfa -24 + ^
+STACK CFI INIT eea70 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eea74 .cfa: $rsp 16 +
+STACK CFI INIT eea90 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eea94 .cfa: $rsp 16 +
+STACK CFI INIT eead0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eead4 .cfa: $rsp 16 +
+STACK CFI INIT eeaf0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eeaf4 .cfa: $rsp 16 +
+STACK CFI INIT eeb10 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eeb14 .cfa: $rsp 16 +
+STACK CFI INIT eeb30 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eeb37 .cfa: $rsp 224 +
+STACK CFI INIT eebc0 19f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eebcd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI eebed .cfa: $rsp 304 +
+STACK CFI eebf0 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT eed60 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eed67 .cfa: $rsp 224 +
+STACK CFI INIT eedf0 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eee0e $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI eee1a .cfa: $rsp 608 +
+STACK CFI eee2a $r14: .cfa -16 + ^
+STACK CFI INIT eef00 1d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eef0d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI eef2b .cfa: $rsp 320 +
+STACK CFI eef33 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT ef0e0 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef0e7 .cfa: $rsp 224 +
+STACK CFI INIT ef170 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef17e .cfa: $rsp 32 +
+STACK CFI ef181 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ef1c0 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef1fb $rdi: $r10
+STACK CFI ef1fd $rsi: $rbx
+STACK CFI ef23c $rdi: $rdi
+STACK CFI ef23e $r12: .cfa 16 + ^ $r13: .cfa 24 + ^ $r14: .cfa 32 + ^ $r15: .cfa 40 + ^ $rbp: $r9 $rbx: .cfa 0 + ^ $rsi: $rsi $rsp: $r8 .cfa: $rdi 0 + .ra: $rdx
+STACK CFI INIT ef260 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef26b .cfa: $rsp 16 +
+STACK CFI INIT ef270 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef271 .cfa: $rsp 16 +
+STACK CFI ef274 $rbp: .cfa -16 + ^
+STACK CFI ef275 .cfa: $rsp 24 +
+STACK CFI ef27c $rbx: .cfa -24 + ^
+STACK CFI ef280 .cfa: $rsp 32 +
+STACK CFI INIT ef2b0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef2b4 .cfa: $rsp 16 +
+STACK CFI INIT ef2d0 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef2d1 .cfa: $rsp 16 +
+STACK CFI ef2d4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ef2dc $rbx: .cfa -24 + ^
+STACK CFI INIT 136680 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136688 .cfa: $rsp 16 +
+STACK CFI 136696 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT ef350 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef351 .cfa: $rsp 16 +
+STACK CFI ef360 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI INIT ef3c0 c1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef3c1 .cfa: $rsp 16 +
+STACK CFI ef3c4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ef3c7 $rbx: .cfa -24 + ^
+STACK CFI INIT ef490 289 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef491 .cfa: $rsp 16 +
+STACK CFI ef497 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ef49c $r15: .cfa -24 + ^
+STACK CFI ef4a3 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI ef4f4 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ef720 2cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef722 .cfa: $rsp 16 +
+STACK CFI ef724 .cfa: $rsp 24 +
+STACK CFI ef726 .cfa: $rsp 32 +
+STACK CFI ef728 .cfa: $rsp 40 +
+STACK CFI ef729 .cfa: $rsp 48 +
+STACK CFI ef72a .cfa: $rsp 56 +
+STACK CFI ef731 .cfa: $rsp 336 +
+STACK CFI ef741 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT efb8d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI efb97 .cfa: $rsp 0 +
+STACK CFI efb9b .cfa: $rsp 128 +
+STACK CFI efba3 .cfa: $rsp -128 +
+STACK CFI INIT efba8 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI efbb2 .cfa: $rsp 0 +
+STACK CFI efbb6 .cfa: $rsp 128 +
+STACK CFI efbbe .cfa: $rsp -128 +
+STACK CFI INIT efbc3 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI efbcd .cfa: $rsp 0 +
+STACK CFI efbd1 .cfa: $rsp 128 +
+STACK CFI efbd9 .cfa: $rsp -128 +
+STACK CFI INIT ef9f0 19d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef9f2 .cfa: $rsp 16 +
+STACK CFI ef9f8 $r12: .cfa -16 + ^
+STACK CFI ef9f9 .cfa: $rsp 24 +
+STACK CFI ef9fa .cfa: $rsp 32 +
+STACK CFI efa01 .cfa: $rsp 240 +
+STACK CFI efa08 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT efd72 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI efd7c .cfa: $rsp 0 +
+STACK CFI efd80 .cfa: $rsp 128 +
+STACK CFI efd88 .cfa: $rsp -128 +
+STACK CFI INIT efd8d 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI efd97 .cfa: $rsp 0 +
+STACK CFI efd9b .cfa: $rsp 128 +
+STACK CFI efda3 .cfa: $rsp -128 +
+STACK CFI INIT efda8 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI efdb2 .cfa: $rsp 0 +
+STACK CFI efdb6 .cfa: $rsp 128 +
+STACK CFI efdbe .cfa: $rsp -128 +
+STACK CFI INIT efbe0 192 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI efbe1 .cfa: $rsp 16 +
+STACK CFI efbe6 $rbp: .cfa -16 + ^
+STACK CFI efbe7 .cfa: $rsp 24 +
+STACK CFI efbea $rbx: .cfa -24 + ^
+STACK CFI efbf1 .cfa: $rsp 240 +
+STACK CFI INIT efeef 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI efef9 .cfa: $rsp 0 +
+STACK CFI efefd .cfa: $rsp 128 +
+STACK CFI eff05 .cfa: $rsp -128 +
+STACK CFI INIT eff0a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI eff14 .cfa: $rsp 0 +
+STACK CFI eff18 .cfa: $rsp 128 +
+STACK CFI eff20 .cfa: $rsp -128 +
+STACK CFI INIT eff25 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI eff2f .cfa: $rsp 0 +
+STACK CFI eff33 .cfa: $rsp 128 +
+STACK CFI eff3b .cfa: $rsp -128 +
+STACK CFI INIT efdc0 12f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI efdcc $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI efdd5 .cfa: $rsp 32 +
+STACK CFI efde3 $rbx: .cfa -32 + ^
+STACK CFI INIT f005a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI f0064 .cfa: $rsp 0 +
+STACK CFI f0068 .cfa: $rsp 128 +
+STACK CFI f0070 .cfa: $rsp -128 +
+STACK CFI INIT f0075 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI f007f .cfa: $rsp 0 +
+STACK CFI f0083 .cfa: $rsp 128 +
+STACK CFI f008b .cfa: $rsp -128 +
+STACK CFI INIT f0090 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI f009a .cfa: $rsp 0 +
+STACK CFI f009e .cfa: $rsp 128 +
+STACK CFI f00a6 .cfa: $rsp -128 +
+STACK CFI INIT eff40 11a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eff41 .cfa: $rsp 16 +
+STACK CFI eff46 $rbp: .cfa -16 + ^
+STACK CFI eff4a .cfa: $rsp 24 +
+STACK CFI eff4d $rbx: .cfa -24 + ^
+STACK CFI eff51 .cfa: $rsp 32 +
+STACK CFI INIT f024a 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI f0254 .cfa: $rsp 0 +
+STACK CFI f0258 .cfa: $rsp 128 +
+STACK CFI f0260 .cfa: $rsp -128 +
+STACK CFI INIT f0265 1b .cfa: $rsp -128 + .ra: $rip
+STACK CFI f026f .cfa: $rsp 0 +
+STACK CFI f0273 .cfa: $rsp 128 +
+STACK CFI f027b .cfa: $rsp -128 +
+STACK CFI INIT f0280 18 .cfa: $rsp -128 + .ra: $rip
+STACK CFI f028a .cfa: $rsp 0 +
+STACK CFI f028e .cfa: $rsp 128 +
+STACK CFI f0296 .cfa: $rsp -128 +
+STACK CFI INIT f00b0 19a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f00bd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI f00cb .cfa: $rsp 48 +
+STACK CFI f00d0 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT f02a0 be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f02ba .cfa: $rsp 48 +
+STACK CFI f02bf $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT f0360 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0364 .cfa: $rsp 16 +
+STACK CFI INIT f03a0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f03a7 .cfa: $rsp 16 +
+STACK CFI INIT f03e0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f03e4 .cfa: $rsp 16 +
+STACK CFI INIT f0400 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0404 .cfa: $rsp 16 +
+STACK CFI INIT f0420 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0424 .cfa: $rsp 16 +
+STACK CFI INIT f0440 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f044b .cfa: $rsp 16 +
+STACK CFI INIT f0480 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0484 .cfa: $rsp 16 +
+STACK CFI INIT f04a0 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f04a4 .cfa: $rsp 16 +
+STACK CFI INIT f0500 117 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0504 .cfa: $rsp 16 +
+STACK CFI INIT f0620 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0624 .cfa: $rsp 16 +
+STACK CFI INIT f0640 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0644 .cfa: $rsp 16 +
+STACK CFI INIT f0660 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0661 .cfa: $rsp 16 +
+STACK CFI f066c $rbx: .cfa -16 + ^
+STACK CFI f067a .cfa: $rsp 224 +
+STACK CFI INIT f06f0 11c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f06fd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f071b .cfa: $rsp 896 +
+STACK CFI f0721 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT f0810 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0814 .cfa: $rsp 16 +
+STACK CFI INIT f0840 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0844 .cfa: $rsp 16 +
+STACK CFI INIT f0860 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0864 .cfa: $rsp 16 +
+STACK CFI INIT f0880 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0884 .cfa: $rsp 16 +
+STACK CFI INIT f08a0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f08a4 .cfa: $rsp 16 +
+STACK CFI INIT f08c0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f08c4 .cfa: $rsp 48 +
+STACK CFI INIT f08f0 30 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f08f4 .cfa: $rsp 48 +
+STACK CFI INIT f0b3f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f0b4d .cfa: $rsp 0 +
+STACK CFI f0b51 .cfa: $rsp 128 +
+STACK CFI f0b59 .cfa: $rsp -128 +
+STACK CFI INIT f0b5e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f0b6c .cfa: $rsp 0 +
+STACK CFI f0b70 .cfa: $rsp 128 +
+STACK CFI f0b78 .cfa: $rsp -128 +
+STACK CFI INIT 1366b0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1366b4 .cfa: $rsp 16 +
+STACK CFI INIT f0920 e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0924 .cfa: $rsp 16 +
+STACK CFI INIT f0a10 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0a14 .cfa: $rsp 48 +
+STACK CFI INIT f0a90 af .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0a92 .cfa: $rsp 16 +
+STACK CFI f0a98 $r14: .cfa -16 + ^
+STACK CFI f0a9a .cfa: $rsp 24 +
+STACK CFI f0aa1 $r13: .cfa -24 + ^
+STACK CFI f0aa3 .cfa: $rsp 32 +
+STACK CFI f0aa9 $r12: .cfa -32 + ^
+STACK CFI f0aaa .cfa: $rsp 40 +
+STACK CFI f0aad $rbp: .cfa -40 + ^
+STACK CFI f0aae .cfa: $rsp 48 +
+STACK CFI f0ab1 $rbx: .cfa -48 + ^
+STACK CFI INIT f0b80 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f0b90 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f0ba0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f0bd0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f0c20 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f0c50 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0c72 .cfa: $rsp 80 +
+STACK CFI f0c76 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT f0cf0 1e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0cf1 .cfa: $rsp 16 +
+STACK CFI f0cf9 .cfa: $rsp 24 +
+STACK CFI f0cfd $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT f0ee0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f108d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f109b .cfa: $rsp 0 +
+STACK CFI f109f .cfa: $rsp 128 +
+STACK CFI f10a7 .cfa: $rsp -128 +
+STACK CFI INIT f10ac 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f10ba .cfa: $rsp 0 +
+STACK CFI f10be .cfa: $rsp 128 +
+STACK CFI f10c6 .cfa: $rsp -128 +
+STACK CFI INIT f0f00 18d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0f02 .cfa: $rsp 16 +
+STACK CFI f0f07 $r14: .cfa -16 + ^
+STACK CFI f0f09 .cfa: $rsp 24 +
+STACK CFI f0f0c $r13: .cfa -24 + ^
+STACK CFI f0f13 .cfa: $rsp 32 +
+STACK CFI f0f16 $r12: .cfa -32 + ^
+STACK CFI f0f17 .cfa: $rsp 40 +
+STACK CFI f0f18 .cfa: $rsp 48 +
+STACK CFI f0f1c .cfa: $rsp 80 +
+STACK CFI f0f5a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT f10d0 398 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f10d2 .cfa: $rsp 16 +
+STACK CFI f10d5 $r15: .cfa -16 + ^
+STACK CFI f10d7 .cfa: $rsp 24 +
+STACK CFI f10da $r14: .cfa -24 + ^
+STACK CFI f10dc .cfa: $rsp 32 +
+STACK CFI f10df $r13: .cfa -32 + ^
+STACK CFI f10e1 .cfa: $rsp 40 +
+STACK CFI f10e2 .cfa: $rsp 48 +
+STACK CFI f10e3 .cfa: $rsp 56 +
+STACK CFI f10e7 .cfa: $rsp 144 +
+STACK CFI f1100 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f1626 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f1634 .cfa: $rsp 0 +
+STACK CFI f1638 .cfa: $rsp 128 +
+STACK CFI f1640 .cfa: $rsp -128 +
+STACK CFI INIT f1645 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f1653 .cfa: $rsp 0 +
+STACK CFI f1657 .cfa: $rsp 128 +
+STACK CFI f165f .cfa: $rsp -128 +
+STACK CFI INIT f1470 1b6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f1472 .cfa: $rsp 16 +
+STACK CFI f147a $r12: .cfa -16 + ^
+STACK CFI f147d .cfa: $rsp 24 +
+STACK CFI f147e .cfa: $rsp 32 +
+STACK CFI f1482 .cfa: $rsp 80 +
+STACK CFI f14be $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT f183a 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f1848 .cfa: $rsp 0 +
+STACK CFI f184c .cfa: $rsp 128 +
+STACK CFI f1854 .cfa: $rsp -128 +
+STACK CFI INIT f1859 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f1867 .cfa: $rsp 0 +
+STACK CFI f186b .cfa: $rsp 128 +
+STACK CFI f1873 .cfa: $rsp -128 +
+STACK CFI INIT f1670 1ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f1672 .cfa: $rsp 16 +
+STACK CFI f1677 $r13: .cfa -16 + ^
+STACK CFI f1679 .cfa: $rsp 24 +
+STACK CFI f167c $r12: .cfa -24 + ^
+STACK CFI f1682 .cfa: $rsp 32 +
+STACK CFI f1683 .cfa: $rsp 40 +
+STACK CFI f1687 .cfa: $rsp 96 +
+STACK CFI f16c3 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT f1880 363 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f1882 .cfa: $rsp 16 +
+STACK CFI f1884 .cfa: $rsp 24 +
+STACK CFI f1887 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI f1889 .cfa: $rsp 32 +
+STACK CFI f188c $r13: .cfa -32 + ^
+STACK CFI f188e .cfa: $rsp 40 +
+STACK CFI f1891 $r12: .cfa -40 + ^
+STACK CFI f1892 .cfa: $rsp 48 +
+STACK CFI f1895 $rbp: .cfa -48 + ^
+STACK CFI f1896 .cfa: $rsp 56 +
+STACK CFI f189a .cfa: $rsp 176 +
+STACK CFI f18a2 $rbx: .cfa -56 + ^
+STACK CFI INIT f1bf0 353 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f1bf2 .cfa: $rsp 16 +
+STACK CFI f1bf4 .cfa: $rsp 24 +
+STACK CFI f1bf6 .cfa: $rsp 32 +
+STACK CFI f1bf9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI f1bfb .cfa: $rsp 40 +
+STACK CFI f1bfe $r12: .cfa -40 + ^
+STACK CFI f1bff .cfa: $rsp 48 +
+STACK CFI f1c02 $rbp: .cfa -48 + ^
+STACK CFI f1c03 .cfa: $rsp 56 +
+STACK CFI f1c06 $rbx: .cfa -56 + ^
+STACK CFI f1c0a .cfa: $rsp 176 +
+STACK CFI INIT f1fe5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f1ff3 .cfa: $rsp 0 +
+STACK CFI f1ff7 .cfa: $rsp 128 +
+STACK CFI f1fff .cfa: $rsp -128 +
+STACK CFI INIT f2004 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2012 .cfa: $rsp 0 +
+STACK CFI f2016 .cfa: $rsp 128 +
+STACK CFI f201e .cfa: $rsp -128 +
+STACK CFI INIT f1f50 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f1f54 .cfa: $rsp 16 +
+STACK CFI INIT f2265 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2273 .cfa: $rsp 0 +
+STACK CFI f2277 .cfa: $rsp 128 +
+STACK CFI f227f .cfa: $rsp -128 +
+STACK CFI INIT f2284 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2292 .cfa: $rsp 0 +
+STACK CFI f2296 .cfa: $rsp 128 +
+STACK CFI f229e .cfa: $rsp -128 +
+STACK CFI INIT f22a3 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f22b1 .cfa: $rsp 0 +
+STACK CFI f22b5 .cfa: $rsp 128 +
+STACK CFI f22bd .cfa: $rsp -128 +
+STACK CFI INIT f22c2 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f22d0 .cfa: $rsp 0 +
+STACK CFI f22d4 .cfa: $rsp 128 +
+STACK CFI f22dc .cfa: $rsp -128 +
+STACK CFI INIT f22e1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f22ef .cfa: $rsp 0 +
+STACK CFI f22f3 .cfa: $rsp 128 +
+STACK CFI f22fb .cfa: $rsp -128 +
+STACK CFI INIT f2300 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f230e .cfa: $rsp 0 +
+STACK CFI f2312 .cfa: $rsp 128 +
+STACK CFI f231a .cfa: $rsp -128 +
+STACK CFI INIT f2020 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2024 .cfa: $rsp 80 +
+STACK CFI INIT f2110 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2114 .cfa: $rsp 16 +
+STACK CFI INIT f21c0 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f21c4 .cfa: $rsp 32 +
+STACK CFI INIT f24ad 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f24bb .cfa: $rsp 0 +
+STACK CFI f24bf .cfa: $rsp 128 +
+STACK CFI f24c7 .cfa: $rsp -128 +
+STACK CFI INIT f24cc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f24da .cfa: $rsp 0 +
+STACK CFI f24de .cfa: $rsp 128 +
+STACK CFI f24e6 .cfa: $rsp -128 +
+STACK CFI INIT f2320 18d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2322 .cfa: $rsp 16 +
+STACK CFI f2327 $r13: .cfa -16 + ^
+STACK CFI f2329 .cfa: $rsp 24 +
+STACK CFI f232c $r12: .cfa -24 + ^
+STACK CFI f2332 .cfa: $rsp 32 +
+STACK CFI f2333 .cfa: $rsp 40 +
+STACK CFI f2337 .cfa: $rsp 80 +
+STACK CFI f2375 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT f24f0 266 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f24f2 .cfa: $rsp 16 +
+STACK CFI f24f5 $r15: .cfa -16 + ^
+STACK CFI f24f7 .cfa: $rsp 24 +
+STACK CFI f24fa $r14: .cfa -24 + ^
+STACK CFI f24fc .cfa: $rsp 32 +
+STACK CFI f24ff $r13: .cfa -32 + ^
+STACK CFI f2501 .cfa: $rsp 40 +
+STACK CFI f2502 .cfa: $rsp 48 +
+STACK CFI f2503 .cfa: $rsp 56 +
+STACK CFI f2507 .cfa: $rsp 144 +
+STACK CFI f2523 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f28cd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f28db .cfa: $rsp 0 +
+STACK CFI f28df .cfa: $rsp 128 +
+STACK CFI f28e7 .cfa: $rsp -128 +
+STACK CFI INIT f28ec 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f28fa .cfa: $rsp 0 +
+STACK CFI f28fe .cfa: $rsp 128 +
+STACK CFI f2906 .cfa: $rsp -128 +
+STACK CFI INIT f2760 16d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2762 .cfa: $rsp 16 +
+STACK CFI f276a $r12: .cfa -16 + ^
+STACK CFI f276d .cfa: $rsp 24 +
+STACK CFI f276e .cfa: $rsp 32 +
+STACK CFI f2772 .cfa: $rsp 48 +
+STACK CFI f27b0 $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT f29a5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f29b3 .cfa: $rsp 0 +
+STACK CFI f29b7 .cfa: $rsp 128 +
+STACK CFI f29bf .cfa: $rsp -128 +
+STACK CFI INIT f29c4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f29d2 .cfa: $rsp 0 +
+STACK CFI f29d6 .cfa: $rsp 128 +
+STACK CFI f29de .cfa: $rsp -128 +
+STACK CFI INIT f2910 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2914 .cfa: $rsp 16 +
+STACK CFI INIT f2c25 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2c33 .cfa: $rsp 0 +
+STACK CFI f2c37 .cfa: $rsp 128 +
+STACK CFI f2c3f .cfa: $rsp -128 +
+STACK CFI INIT f2c44 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2c52 .cfa: $rsp 0 +
+STACK CFI f2c56 .cfa: $rsp 128 +
+STACK CFI f2c5e .cfa: $rsp -128 +
+STACK CFI INIT f2c63 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2c71 .cfa: $rsp 0 +
+STACK CFI f2c75 .cfa: $rsp 128 +
+STACK CFI f2c7d .cfa: $rsp -128 +
+STACK CFI INIT f2c82 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2c90 .cfa: $rsp 0 +
+STACK CFI f2c94 .cfa: $rsp 128 +
+STACK CFI f2c9c .cfa: $rsp -128 +
+STACK CFI INIT f2ca1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2caf .cfa: $rsp 0 +
+STACK CFI f2cb3 .cfa: $rsp 128 +
+STACK CFI f2cbb .cfa: $rsp -128 +
+STACK CFI INIT f2cc0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f2cce .cfa: $rsp 0 +
+STACK CFI f2cd2 .cfa: $rsp 128 +
+STACK CFI f2cda .cfa: $rsp -128 +
+STACK CFI INIT f29e0 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f29e4 .cfa: $rsp 80 +
+STACK CFI INIT f2ad0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2ad4 .cfa: $rsp 16 +
+STACK CFI INIT f2b80 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2b84 .cfa: $rsp 32 +
+STACK CFI INIT f2ce0 256 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2ce2 .cfa: $rsp 16 +
+STACK CFI f2ce5 $r15: .cfa -16 + ^
+STACK CFI f2ce7 .cfa: $rsp 24 +
+STACK CFI f2cea $r14: .cfa -24 + ^
+STACK CFI f2cec .cfa: $rsp 32 +
+STACK CFI f2cef $r13: .cfa -32 + ^
+STACK CFI f2cf1 .cfa: $rsp 40 +
+STACK CFI f2cf2 .cfa: $rsp 48 +
+STACK CFI f2cf5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI f2cf6 .cfa: $rsp 56 +
+STACK CFI f2cfa .cfa: $rsp 128 +
+STACK CFI f2d11 $rbx: .cfa -56 + ^
+STACK CFI INIT f3065 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3073 .cfa: $rsp 0 +
+STACK CFI f3077 .cfa: $rsp 128 +
+STACK CFI f307f .cfa: $rsp -128 +
+STACK CFI INIT f3084 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3092 .cfa: $rsp 0 +
+STACK CFI f3096 .cfa: $rsp 128 +
+STACK CFI f309e .cfa: $rsp -128 +
+STACK CFI INIT f2f40 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f2f41 .cfa: $rsp 16 +
+STACK CFI f2f49 .cfa: $rsp 24 +
+STACK CFI f2f4b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f2f4f .cfa: $rsp 48 +
+STACK CFI INIT f30a0 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f30a2 .cfa: $rsp 16 +
+STACK CFI f30a5 $r15: .cfa -16 + ^
+STACK CFI f30a7 .cfa: $rsp 24 +
+STACK CFI f30aa $r14: .cfa -24 + ^
+STACK CFI f30ac .cfa: $rsp 32 +
+STACK CFI f30af $r13: .cfa -32 + ^
+STACK CFI f30b1 .cfa: $rsp 40 +
+STACK CFI f30b4 $r12: .cfa -40 + ^
+STACK CFI f30b5 .cfa: $rsp 48 +
+STACK CFI f30b6 .cfa: $rsp 56 +
+STACK CFI f30ba .cfa: $rsp 112 +
+STACK CFI f30cc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f3318 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3326 .cfa: $rsp 0 +
+STACK CFI f332a .cfa: $rsp 128 +
+STACK CFI f3332 .cfa: $rsp -128 +
+STACK CFI INIT f3334 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3342 .cfa: $rsp 0 +
+STACK CFI f3346 .cfa: $rsp 128 +
+STACK CFI f334e .cfa: $rsp -128 +
+STACK CFI INIT f3290 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3294 .cfa: $rsp 16 +
+STACK CFI INIT f3575 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3583 .cfa: $rsp 0 +
+STACK CFI f3587 .cfa: $rsp 128 +
+STACK CFI f358f .cfa: $rsp -128 +
+STACK CFI INIT f3594 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f35a2 .cfa: $rsp 0 +
+STACK CFI f35a6 .cfa: $rsp 128 +
+STACK CFI f35ae .cfa: $rsp -128 +
+STACK CFI INIT f35b3 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f35c1 .cfa: $rsp 0 +
+STACK CFI f35c5 .cfa: $rsp 128 +
+STACK CFI f35cd .cfa: $rsp -128 +
+STACK CFI INIT f35d2 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f35e0 .cfa: $rsp 0 +
+STACK CFI f35e4 .cfa: $rsp 128 +
+STACK CFI f35ec .cfa: $rsp -128 +
+STACK CFI INIT f35f1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f35ff .cfa: $rsp 0 +
+STACK CFI f3603 .cfa: $rsp 128 +
+STACK CFI f360b .cfa: $rsp -128 +
+STACK CFI INIT f3610 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f361e .cfa: $rsp 0 +
+STACK CFI f3622 .cfa: $rsp 128 +
+STACK CFI f362a .cfa: $rsp -128 +
+STACK CFI INIT f3350 d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3354 .cfa: $rsp 80 +
+STACK CFI INIT f3430 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3434 .cfa: $rsp 16 +
+STACK CFI INIT f34d0 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f34d4 .cfa: $rsp 32 +
+STACK CFI INIT f3755 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3763 .cfa: $rsp 0 +
+STACK CFI f3767 .cfa: $rsp 128 +
+STACK CFI f376f .cfa: $rsp -128 +
+STACK CFI INIT f3774 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3782 .cfa: $rsp 0 +
+STACK CFI f3786 .cfa: $rsp 128 +
+STACK CFI f378e .cfa: $rsp -128 +
+STACK CFI INIT f3630 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3631 .cfa: $rsp 16 +
+STACK CFI f3639 .cfa: $rsp 24 +
+STACK CFI f363c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f3640 .cfa: $rsp 48 +
+STACK CFI INIT f3790 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3792 .cfa: $rsp 16 +
+STACK CFI f3795 $r15: .cfa -16 + ^
+STACK CFI f3797 .cfa: $rsp 24 +
+STACK CFI f379a $r14: .cfa -24 + ^
+STACK CFI f379c .cfa: $rsp 32 +
+STACK CFI f379f $r13: .cfa -32 + ^
+STACK CFI f37a1 .cfa: $rsp 40 +
+STACK CFI f37a4 $r12: .cfa -40 + ^
+STACK CFI f37a5 .cfa: $rsp 48 +
+STACK CFI f37a6 .cfa: $rsp 56 +
+STACK CFI f37aa .cfa: $rsp 112 +
+STACK CFI f37bc $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f3abd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3acb .cfa: $rsp 0 +
+STACK CFI f3acf .cfa: $rsp 128 +
+STACK CFI f3ad7 .cfa: $rsp -128 +
+STACK CFI INIT f3adc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3aea .cfa: $rsp 0 +
+STACK CFI f3aee .cfa: $rsp 128 +
+STACK CFI f3af6 .cfa: $rsp -128 +
+STACK CFI INIT f3980 13d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3982 .cfa: $rsp 16 +
+STACK CFI f3987 $r12: .cfa -16 + ^
+STACK CFI f3988 .cfa: $rsp 24 +
+STACK CFI f398b $rbp: .cfa -24 + ^
+STACK CFI f3991 .cfa: $rsp 32 +
+STACK CFI f3995 .cfa: $rsp 48 +
+STACK CFI f39c7 $rbx: .cfa -32 + ^
+STACK CFI INIT f3b00 26d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3b02 .cfa: $rsp 16 +
+STACK CFI f3b05 $r15: .cfa -16 + ^
+STACK CFI f3b07 .cfa: $rsp 24 +
+STACK CFI f3b0a $r14: .cfa -24 + ^
+STACK CFI f3b0c .cfa: $rsp 32 +
+STACK CFI f3b0f $r13: .cfa -32 + ^
+STACK CFI f3b11 .cfa: $rsp 40 +
+STACK CFI f3b12 .cfa: $rsp 48 +
+STACK CFI f3b15 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI f3b16 .cfa: $rsp 56 +
+STACK CFI f3b1a .cfa: $rsp 128 +
+STACK CFI f3b33 $rbx: .cfa -56 + ^
+STACK CFI INIT f3ead 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3ebb .cfa: $rsp 0 +
+STACK CFI f3ebf .cfa: $rsp 128 +
+STACK CFI f3ec7 .cfa: $rsp -128 +
+STACK CFI INIT f3ecc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f3eda .cfa: $rsp 0 +
+STACK CFI f3ede .cfa: $rsp 128 +
+STACK CFI f3ee6 .cfa: $rsp -128 +
+STACK CFI INIT f3d70 13d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3d72 .cfa: $rsp 16 +
+STACK CFI f3d77 $r12: .cfa -16 + ^
+STACK CFI f3d78 .cfa: $rsp 24 +
+STACK CFI f3d7b $rbp: .cfa -24 + ^
+STACK CFI f3d81 .cfa: $rsp 32 +
+STACK CFI f3d85 .cfa: $rsp 48 +
+STACK CFI f3db7 $rbx: .cfa -32 + ^
+STACK CFI INIT f3ef0 26d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3ef2 .cfa: $rsp 16 +
+STACK CFI f3ef5 $r15: .cfa -16 + ^
+STACK CFI f3ef7 .cfa: $rsp 24 +
+STACK CFI f3efa $r14: .cfa -24 + ^
+STACK CFI f3efc .cfa: $rsp 32 +
+STACK CFI f3eff $r13: .cfa -32 + ^
+STACK CFI f3f01 .cfa: $rsp 40 +
+STACK CFI f3f02 .cfa: $rsp 48 +
+STACK CFI f3f05 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI f3f06 .cfa: $rsp 56 +
+STACK CFI f3f0a .cfa: $rsp 128 +
+STACK CFI f3f22 $rbx: .cfa -56 + ^
+STACK CFI INIT f41e8 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f41f6 .cfa: $rsp 0 +
+STACK CFI f41fa .cfa: $rsp 128 +
+STACK CFI f4202 .cfa: $rsp -128 +
+STACK CFI INIT f4204 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4212 .cfa: $rsp 0 +
+STACK CFI f4216 .cfa: $rsp 128 +
+STACK CFI f421e .cfa: $rsp -128 +
+STACK CFI INIT f4160 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4164 .cfa: $rsp 16 +
+STACK CFI INIT f4445 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4453 .cfa: $rsp 0 +
+STACK CFI f4457 .cfa: $rsp 128 +
+STACK CFI f445f .cfa: $rsp -128 +
+STACK CFI INIT f4464 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4472 .cfa: $rsp 0 +
+STACK CFI f4476 .cfa: $rsp 128 +
+STACK CFI f447e .cfa: $rsp -128 +
+STACK CFI INIT f4483 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4491 .cfa: $rsp 0 +
+STACK CFI f4495 .cfa: $rsp 128 +
+STACK CFI f449d .cfa: $rsp -128 +
+STACK CFI INIT f44a2 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f44b0 .cfa: $rsp 0 +
+STACK CFI f44b4 .cfa: $rsp 128 +
+STACK CFI f44bc .cfa: $rsp -128 +
+STACK CFI INIT f44c1 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f44cf .cfa: $rsp 0 +
+STACK CFI f44d3 .cfa: $rsp 128 +
+STACK CFI f44db .cfa: $rsp -128 +
+STACK CFI INIT f44e0 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f44ee .cfa: $rsp 0 +
+STACK CFI f44f2 .cfa: $rsp 128 +
+STACK CFI f44fa .cfa: $rsp -128 +
+STACK CFI INIT f4220 d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4224 .cfa: $rsp 80 +
+STACK CFI INIT f4300 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4304 .cfa: $rsp 16 +
+STACK CFI INIT f43a0 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f43a4 .cfa: $rsp 32 +
+STACK CFI INIT f4588 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4596 .cfa: $rsp 0 +
+STACK CFI f459a .cfa: $rsp 128 +
+STACK CFI f45a2 .cfa: $rsp -128 +
+STACK CFI INIT f45a4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f45b2 .cfa: $rsp 0 +
+STACK CFI f45b6 .cfa: $rsp 128 +
+STACK CFI f45be .cfa: $rsp -128 +
+STACK CFI INIT f4500 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4504 .cfa: $rsp 16 +
+STACK CFI INIT f46e5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f46f3 .cfa: $rsp 0 +
+STACK CFI f46f7 .cfa: $rsp 128 +
+STACK CFI f46ff .cfa: $rsp -128 +
+STACK CFI INIT f4704 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4712 .cfa: $rsp 0 +
+STACK CFI f4716 .cfa: $rsp 128 +
+STACK CFI f471e .cfa: $rsp -128 +
+STACK CFI INIT f45c0 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f45c1 .cfa: $rsp 16 +
+STACK CFI f45c9 .cfa: $rsp 24 +
+STACK CFI f45cc $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f45d0 .cfa: $rsp 48 +
+STACK CFI INIT f4845 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4853 .cfa: $rsp 0 +
+STACK CFI f4857 .cfa: $rsp 128 +
+STACK CFI f485f .cfa: $rsp -128 +
+STACK CFI INIT f4864 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4872 .cfa: $rsp 0 +
+STACK CFI f4876 .cfa: $rsp 128 +
+STACK CFI f487e .cfa: $rsp -128 +
+STACK CFI INIT f4720 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4721 .cfa: $rsp 16 +
+STACK CFI f4729 .cfa: $rsp 24 +
+STACK CFI f472b $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f472f .cfa: $rsp 48 +
+STACK CFI INIT f4aa5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4ab3 .cfa: $rsp 0 +
+STACK CFI f4ab7 .cfa: $rsp 128 +
+STACK CFI f4abf .cfa: $rsp -128 +
+STACK CFI INIT f4ac4 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4ad2 .cfa: $rsp 0 +
+STACK CFI f4ad6 .cfa: $rsp 128 +
+STACK CFI f4ade .cfa: $rsp -128 +
+STACK CFI INIT f4ae3 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4af1 .cfa: $rsp 0 +
+STACK CFI f4af5 .cfa: $rsp 128 +
+STACK CFI f4afd .cfa: $rsp -128 +
+STACK CFI INIT f4b02 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4b10 .cfa: $rsp 0 +
+STACK CFI f4b14 .cfa: $rsp 128 +
+STACK CFI f4b1c .cfa: $rsp -128 +
+STACK CFI INIT f4b21 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4b2f .cfa: $rsp 0 +
+STACK CFI f4b33 .cfa: $rsp 128 +
+STACK CFI f4b3b .cfa: $rsp -128 +
+STACK CFI INIT f4b40 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f4b4e .cfa: $rsp 0 +
+STACK CFI f4b52 .cfa: $rsp 128 +
+STACK CFI f4b5a .cfa: $rsp -128 +
+STACK CFI INIT f4880 d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4884 .cfa: $rsp 80 +
+STACK CFI INIT f4960 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4964 .cfa: $rsp 16 +
+STACK CFI INIT f4a00 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4a04 .cfa: $rsp 32 +
+STACK CFI INIT f4b60 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4b62 .cfa: $rsp 16 +
+STACK CFI f4b65 $r15: .cfa -16 + ^
+STACK CFI f4b67 .cfa: $rsp 24 +
+STACK CFI f4b6a $r14: .cfa -24 + ^
+STACK CFI f4b6c .cfa: $rsp 32 +
+STACK CFI f4b6f $r13: .cfa -32 + ^
+STACK CFI f4b71 .cfa: $rsp 40 +
+STACK CFI f4b74 $r12: .cfa -40 + ^
+STACK CFI f4b75 .cfa: $rsp 48 +
+STACK CFI f4b76 .cfa: $rsp 56 +
+STACK CFI f4b7a .cfa: $rsp 112 +
+STACK CFI f4b8c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f4d50 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4d52 .cfa: $rsp 16 +
+STACK CFI f4d55 $r15: .cfa -16 + ^
+STACK CFI f4d57 .cfa: $rsp 24 +
+STACK CFI f4d5a $r14: .cfa -24 + ^
+STACK CFI f4d5c .cfa: $rsp 32 +
+STACK CFI f4d5f $r13: .cfa -32 + ^
+STACK CFI f4d61 .cfa: $rsp 40 +
+STACK CFI f4d64 $r12: .cfa -40 + ^
+STACK CFI f4d65 .cfa: $rsp 48 +
+STACK CFI f4d66 .cfa: $rsp 56 +
+STACK CFI f4d6a .cfa: $rsp 112 +
+STACK CFI f4d7c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f4f40 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f4f50 16e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4f62 .cfa: $rsp 16 +
+STACK CFI f4f63 .cfa: $rsp 24 +
+STACK CFI f4f6f $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT f50c0 176 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f50c2 .cfa: $rsp 16 +
+STACK CFI f50c4 .cfa: $rsp 24 +
+STACK CFI f50c6 .cfa: $rsp 32 +
+STACK CFI f50c8 .cfa: $rsp 40 +
+STACK CFI f50c9 .cfa: $rsp 48 +
+STACK CFI f50cc $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI f50cd .cfa: $rsp 56 +
+STACK CFI f50d4 .cfa: $rsp 1136 +
+STACK CFI f50e9 $rbx: .cfa -56 + ^
+STACK CFI INIT f5240 270 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5242 .cfa: $rsp 16 +
+STACK CFI f524d .cfa: $rsp 24 +
+STACK CFI f524e .cfa: $rsp 32 +
+STACK CFI f524f .cfa: $rsp 40 +
+STACK CFI f5256 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT f54b0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f54c0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f54c1 .cfa: $rsp 16 +
+STACK CFI f54c4 $rbx: .cfa -16 + ^
+STACK CFI f54cf .cfa: $rsp 32 +
+STACK CFI INIT f5510 16e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5512 .cfa: $rsp 16 +
+STACK CFI f5514 .cfa: $rsp 24 +
+STACK CFI f5516 .cfa: $rsp 32 +
+STACK CFI f5518 .cfa: $rsp 40 +
+STACK CFI f5519 .cfa: $rsp 48 +
+STACK CFI f551c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI f551d .cfa: $rsp 56 +
+STACK CFI f5524 .cfa: $rsp 1136 +
+STACK CFI f5539 $rbx: .cfa -56 + ^
+STACK CFI INIT f6050 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f605e .cfa: $rsp 0 +
+STACK CFI f6062 .cfa: $rsp 128 +
+STACK CFI f606a .cfa: $rsp -128 +
+STACK CFI INIT f606f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f607d .cfa: $rsp 0 +
+STACK CFI f6081 .cfa: $rsp 128 +
+STACK CFI f6089 .cfa: $rsp -128 +
+STACK CFI INIT f608e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f609c .cfa: $rsp 0 +
+STACK CFI f60a0 .cfa: $rsp 128 +
+STACK CFI f60a8 .cfa: $rsp -128 +
+STACK CFI INIT f60ad 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f60bb .cfa: $rsp 0 +
+STACK CFI f60bf .cfa: $rsp 128 +
+STACK CFI f60c7 .cfa: $rsp -128 +
+STACK CFI INIT f60cc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f60da .cfa: $rsp 0 +
+STACK CFI f60de .cfa: $rsp 128 +
+STACK CFI f60e6 .cfa: $rsp -128 +
+STACK CFI INIT f60eb 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f60f9 .cfa: $rsp 0 +
+STACK CFI f60fd .cfa: $rsp 128 +
+STACK CFI f6105 .cfa: $rsp -128 +
+STACK CFI INIT f5680 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5681 .cfa: $rsp 16 +
+STACK CFI f5684 $rbx: .cfa -16 + ^
+STACK CFI INIT f56c0 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f56c8 .cfa: $rsp 16 +
+STACK CFI f56cb $rbx: .cfa -16 + ^
+STACK CFI INIT f5750 141 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5752 .cfa: $rsp 16 +
+STACK CFI f5754 .cfa: $rsp 24 +
+STACK CFI f5756 .cfa: $rsp 32 +
+STACK CFI f5759 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI f575e .cfa: $rsp 40 +
+STACK CFI f575f .cfa: $rsp 48 +
+STACK CFI f5764 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI f5765 .cfa: $rsp 56 +
+STACK CFI f5768 $rbx: .cfa -56 + ^
+STACK CFI f5770 .cfa: $rsp 96 +
+STACK CFI INIT f58a0 1e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f58a2 .cfa: $rsp 16 +
+STACK CFI f58a5 $r15: .cfa -16 + ^
+STACK CFI f58a7 .cfa: $rsp 24 +
+STACK CFI f58aa $r14: .cfa -24 + ^
+STACK CFI f58ac .cfa: $rsp 32 +
+STACK CFI f58ae .cfa: $rsp 40 +
+STACK CFI f58af .cfa: $rsp 48 +
+STACK CFI f58b0 .cfa: $rsp 56 +
+STACK CFI f58b3 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f58b7 .cfa: $rsp 112 +
+STACK CFI INIT f5a90 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5a91 .cfa: $rsp 16 +
+STACK CFI f5a97 $rbp: .cfa -16 + ^
+STACK CFI f5a9f .cfa: $rsp 24 +
+STACK CFI f5aa2 $rbx: .cfa -24 + ^
+STACK CFI f5aa6 .cfa: $rsp 48 +
+STACK CFI INIT f5b30 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5b31 .cfa: $rsp 16 +
+STACK CFI f5b34 $rbx: .cfa -16 + ^
+STACK CFI INIT f5b80 374 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5b82 .cfa: $rsp 16 +
+STACK CFI f5b87 $r15: .cfa -16 + ^
+STACK CFI f5b89 .cfa: $rsp 24 +
+STACK CFI f5b8b .cfa: $rsp 32 +
+STACK CFI f5b8d .cfa: $rsp 40 +
+STACK CFI f5b8e .cfa: $rsp 48 +
+STACK CFI f5b91 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI f5b92 .cfa: $rsp 56 +
+STACK CFI f5b99 .cfa: $rsp 1280 +
+STACK CFI f5ba1 $rbx: .cfa -56 + ^
+STACK CFI INIT f5f00 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5f01 .cfa: $rsp 16 +
+STACK CFI f5f04 $rbx: .cfa -16 + ^
+STACK CFI INIT f5f20 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5f24 .cfa: $rsp 16 +
+STACK CFI INIT f5f90 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5f9d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f5fa1 .cfa: $rsp 32 +
+STACK CFI INIT f5fe0 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f5fe4 .cfa: $rsp 16 +
+STACK CFI INIT f6110 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f6114 .cfa: $rsp 16 +
+STACK CFI INIT f6130 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f613e .cfa: $rsp 48 +
+STACK CFI f6147 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT f6f63 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f6f71 .cfa: $rsp 0 +
+STACK CFI f6f75 .cfa: $rsp 128 +
+STACK CFI f6f7d .cfa: $rsp -128 +
+STACK CFI INIT f6f82 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI f6f90 .cfa: $rsp 0 +
+STACK CFI f6f94 .cfa: $rsp 128 +
+STACK CFI f6f9c .cfa: $rsp -128 +
+STACK CFI INIT f6210 2fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f6211 .cfa: $rsp 16 +
+STACK CFI f6214 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f6239 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f6510 a53 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f6511 .cfa: $rsp 16 +
+STACK CFI f6519 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f6524 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f652f $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI f654c $r15: .cfa -24 + ^
+STACK CFI INIT f6fb0 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f6fbc $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI f6fc5 .cfa: $rsp 80 +
+STACK CFI f6fc8 $r12: .cfa -16 + ^
+STACK CFI INIT f7040 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f704d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI f7056 $rbp: .cfa -24 + ^ .cfa: $rsp 80 +
+STACK CFI INIT f70e0 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f70e1 .cfa: $rsp 16 +
+STACK CFI f70e4 $rbp: .cfa -16 + ^
+STACK CFI f70e5 .cfa: $rsp 24 +
+STACK CFI f70e8 $rbx: .cfa -24 + ^
+STACK CFI f70ec .cfa: $rsp 32 +
+STACK CFI INIT f7120 303 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f7122 .cfa: $rsp 16 +
+STACK CFI f7124 .cfa: $rsp 24 +
+STACK CFI f7126 .cfa: $rsp 32 +
+STACK CFI f7128 .cfa: $rsp 40 +
+STACK CFI f7129 .cfa: $rsp 48 +
+STACK CFI f712a .cfa: $rsp 56 +
+STACK CFI f712e .cfa: $rsp 112 +
+STACK CFI f7165 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f7430 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f7440 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f7450 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f7452 .cfa: $rsp 16 +
+STACK CFI f7453 .cfa: $rsp 24 +
+STACK CFI f745a $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI f745b .cfa: $rsp 32 +
+STACK CFI f7469 $rbx: .cfa -32 + ^
+STACK CFI INIT f7490 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f7491 .cfa: $rsp 16 +
+STACK CFI f7499 .cfa: $rsp 24 +
+STACK CFI f749c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f74a5 .cfa: $rsp 48 +
+STACK CFI INIT f7520 377 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f7521 .cfa: $rsp 16 +
+STACK CFI f7524 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f752d $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI f7533 $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f78a0 e23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f78a1 .cfa: $rsp 16 +
+STACK CFI f78a4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f78b6 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f86d0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f86d1 .cfa: $rsp 16 +
+STACK CFI f86d4 $rbx: .cfa -16 + ^
+STACK CFI INIT f86f0 15b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f86f1 .cfa: $rsp 16 +
+STACK CFI f86f4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f86ff $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI f8715 $r12: .cfa -48 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI INIT f8850 159 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f8851 .cfa: $rsp 16 +
+STACK CFI f8854 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f885b $r14: .cfa -24 + ^
+STACK CFI f8867 $r13: .cfa -32 + ^
+STACK CFI f8875 $r12: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT f89b0 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f89c2 .cfa: $rsp 16 +
+STACK CFI INIT f8a30 188 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f8a31 .cfa: $rsp 16 +
+STACK CFI f8a34 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f8a3f $r12: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f8a4a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI f8a7a $r15: .cfa -24 + ^
+STACK CFI INIT f8bc0 168 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f8bc1 .cfa: $rsp 16 +
+STACK CFI f8bc4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f8bcb $r13: .cfa -40 + ^
+STACK CFI f8be2 $r12: .cfa -48 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI f8c00 $rbx: .cfa -56 + ^
+STACK CFI INIT f8d30 523 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f8d32 .cfa: $rsp 16 +
+STACK CFI f8d34 .cfa: $rsp 24 +
+STACK CFI f8d37 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI f8d39 .cfa: $rsp 32 +
+STACK CFI f8d3f $r13: .cfa -32 + ^
+STACK CFI f8d41 .cfa: $rsp 40 +
+STACK CFI f8d42 .cfa: $rsp 48 +
+STACK CFI f8d43 .cfa: $rsp 56 +
+STACK CFI f8d4a .cfa: $rsp 288 +
+STACK CFI f8dc3 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT f9260 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f9264 .cfa: $rsp 32 +
+STACK CFI INIT f92a0 1cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f92ad $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI f92b9 .cfa: $rsp 176 +
+STACK CFI f92c7 $rbp: .cfa -24 + ^
+STACK CFI INIT f9470 1a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f9471 .cfa: $rsp 16 +
+STACK CFI f9474 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI f947f $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI f948a $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI f94a4 $r12: .cfa -48 + ^
+STACK CFI INIT f9620 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f9627 .cfa: $rsp 144 +
+STACK CFI INIT f96b0 1d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f96b4 .cfa: $rsp 32 +
+STACK CFI INIT f96d0 ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f96d2 .cfa: $rsp 16 +
+STACK CFI f96de $r15: .cfa -16 + ^
+STACK CFI f96e0 .cfa: $rsp 24 +
+STACK CFI f96e3 $r14: .cfa -24 + ^
+STACK CFI f96e7 .cfa: $rsp 32 +
+STACK CFI f96ea $r13: .cfa -32 + ^
+STACK CFI f96ec .cfa: $rsp 40 +
+STACK CFI f96ef $r12: .cfa -40 + ^
+STACK CFI f96f5 .cfa: $rsp 48 +
+STACK CFI f96f8 $rbp: .cfa -48 + ^
+STACK CFI f96f9 .cfa: $rsp 56 +
+STACK CFI f96fd .cfa: $rsp 128 +
+STACK CFI f9713 $rbx: .cfa -56 + ^
+STACK CFI INIT f9790 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f97a0 1b9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f97ad $r13: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI f97cb .cfa: $rsp 208 +
+STACK CFI f97d1 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT f9960 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f9970 a47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f9972 .cfa: $rsp 16 +
+STACK CFI f9974 .cfa: $rsp 24 +
+STACK CFI f9976 .cfa: $rsp 32 +
+STACK CFI f9978 .cfa: $rsp 40 +
+STACK CFI f997b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI f997c .cfa: $rsp 48 +
+STACK CFI f997d .cfa: $rsp 56 +
+STACK CFI f9984 .cfa: $rsp 704 +
+STACK CFI f998c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fa3c0 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa3c4 .cfa: $rsp 32 +
+STACK CFI INIT fa3e0 576 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa3e2 .cfa: $rsp 16 +
+STACK CFI fa3e8 $r15: .cfa -16 + ^
+STACK CFI fa3ee .cfa: $rsp 24 +
+STACK CFI fa3f0 .cfa: $rsp 32 +
+STACK CFI fa3f3 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI fa3f5 .cfa: $rsp 40 +
+STACK CFI fa3f8 $r12: .cfa -40 + ^
+STACK CFI fa3f9 .cfa: $rsp 48 +
+STACK CFI fa3fa .cfa: $rsp 56 +
+STACK CFI fa401 .cfa: $rsp 592 +
+STACK CFI fa409 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fa960 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa964 .cfa: $rsp 32 +
+STACK CFI INIT fa980 215 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa982 .cfa: $rsp 16 +
+STACK CFI fa984 .cfa: $rsp 24 +
+STACK CFI fa985 .cfa: $rsp 32 +
+STACK CFI fa986 .cfa: $rsp 40 +
+STACK CFI fa98a .cfa: $rsp 48 +
+STACK CFI fa999 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT faba0 472 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI faba1 .cfa: $rsp 16 +
+STACK CFI faba4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fabab $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI fabb3 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fb242 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb250 .cfa: $rsp 0 +
+STACK CFI fb254 .cfa: $rsp 128 +
+STACK CFI fb25c .cfa: $rsp -128 +
+STACK CFI INIT fb261 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb26f .cfa: $rsp 0 +
+STACK CFI fb273 .cfa: $rsp 128 +
+STACK CFI fb27b .cfa: $rsp -128 +
+STACK CFI INIT fb280 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb28e .cfa: $rsp 0 +
+STACK CFI fb292 .cfa: $rsp 128 +
+STACK CFI fb29a .cfa: $rsp -128 +
+STACK CFI INIT fb29f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb2ad .cfa: $rsp 0 +
+STACK CFI fb2b1 .cfa: $rsp 128 +
+STACK CFI fb2b9 .cfa: $rsp -128 +
+STACK CFI INIT fb2be 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb2cc .cfa: $rsp 0 +
+STACK CFI fb2d0 .cfa: $rsp 128 +
+STACK CFI fb2d8 .cfa: $rsp -128 +
+STACK CFI INIT fb2dd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb2eb .cfa: $rsp 0 +
+STACK CFI fb2ef .cfa: $rsp 128 +
+STACK CFI fb2f7 .cfa: $rsp -128 +
+STACK CFI INIT fb020 d2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb024 .cfa: $rsp 80 +
+STACK CFI INIT fb100 a0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb104 .cfa: $rsp 16 +
+STACK CFI INIT fb1a0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb1a4 .cfa: $rsp 32 +
+STACK CFI INIT fb388 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb396 .cfa: $rsp 0 +
+STACK CFI fb39a .cfa: $rsp 128 +
+STACK CFI fb3a2 .cfa: $rsp -128 +
+STACK CFI INIT fb3a4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb3b2 .cfa: $rsp 0 +
+STACK CFI fb3b6 .cfa: $rsp 128 +
+STACK CFI fb3be .cfa: $rsp -128 +
+STACK CFI INIT fb300 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb304 .cfa: $rsp 16 +
+STACK CFI INIT fb4e5 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb4f3 .cfa: $rsp 0 +
+STACK CFI fb4f7 .cfa: $rsp 128 +
+STACK CFI fb4ff .cfa: $rsp -128 +
+STACK CFI INIT fb504 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI fb512 .cfa: $rsp 0 +
+STACK CFI fb516 .cfa: $rsp 128 +
+STACK CFI fb51e .cfa: $rsp -128 +
+STACK CFI INIT fb3c0 125 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb3c1 .cfa: $rsp 16 +
+STACK CFI fb3c9 .cfa: $rsp 24 +
+STACK CFI fb3cc $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI fb3d0 .cfa: $rsp 48 +
+STACK CFI INIT fb520 1ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb522 .cfa: $rsp 16 +
+STACK CFI fb525 $r15: .cfa -16 + ^
+STACK CFI fb527 .cfa: $rsp 24 +
+STACK CFI fb52a $r14: .cfa -24 + ^
+STACK CFI fb52c .cfa: $rsp 32 +
+STACK CFI fb52f $r13: .cfa -32 + ^
+STACK CFI fb531 .cfa: $rsp 40 +
+STACK CFI fb534 $r12: .cfa -40 + ^
+STACK CFI fb535 .cfa: $rsp 48 +
+STACK CFI fb536 .cfa: $rsp 56 +
+STACK CFI fb53a .cfa: $rsp 112 +
+STACK CFI fb54c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fb710 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fb720 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fb750 a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fb800 bc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fb8c0 77 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb8ce .cfa: $rsp 32 +
+STACK CFI fb8d1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fb940 cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fb956 .cfa: $rsp 32 +
+STACK CFI fb959 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT fba10 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fba20 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fba21 .cfa: $rsp 16 +
+STACK CFI fba26 $rbp: .cfa -16 + ^
+STACK CFI fba27 .cfa: $rsp 24 +
+STACK CFI fba2a $rbx: .cfa -24 + ^
+STACK CFI fba2e .cfa: $rsp 32 +
+STACK CFI INIT fba70 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbab0 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbb40 8f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbbd0 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbbda $rbx: .cfa -24 + ^
+STACK CFI fbbed .cfa: $rsp 32 +
+STACK CFI fbbef $rbp: .cfa -16 + ^
+STACK CFI INIT fbc10 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbc17 $rbx: .cfa -24 + ^
+STACK CFI fbc23 .cfa: $rsp 32 +
+STACK CFI fbc25 $rbp: .cfa -16 + ^
+STACK CFI INIT fbc50 71 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbc54 .cfa: $rsp 16 +
+STACK CFI fbc56 $rbx: .cfa -16 + ^
+STACK CFI INIT fbcd0 101 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbcdc $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI fbce5 .cfa: $rsp 48 +
+STACK CFI fbced $r12: .cfa -16 + ^
+STACK CFI INIT fbde0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbe00 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbe20 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbe50 d3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbe51 .cfa: $rsp 16 +
+STACK CFI fbe59 $rbp: .cfa -16 + ^
+STACK CFI fbe5a .cfa: $rsp 24 +
+STACK CFI fbe5d $rbx: .cfa -24 + ^
+STACK CFI fbe61 .cfa: $rsp 48 +
+STACK CFI INIT fbf30 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbf80 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbf8e .cfa: $rsp 32 +
+STACK CFI fbf93 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fbfe0 546 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbfe1 .cfa: $rsp 16 +
+STACK CFI fbfe4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fbfee $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI fbff3 $r12: .cfa -48 + ^
+STACK CFI fbff6 $rbx: .cfa -56 + ^
+STACK CFI INIT fc530 f0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fc53d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI fc54a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI fc55b .cfa: $rsp 80 +
+STACK CFI fc578 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT fc620 3d0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fc621 .cfa: $rsp 16 +
+STACK CFI fc624 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fc629 $r15: .cfa -24 + ^
+STACK CFI fc633 $r14: .cfa -32 + ^
+STACK CFI fc63d $r12: .cfa -48 + ^ $r13: .cfa -40 + ^
+STACK CFI fc658 $rbx: .cfa -56 + ^
+STACK CFI INIT fc9f0 138 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fc9f2 .cfa: $rsp 16 +
+STACK CFI fc9f5 $r14: .cfa -16 + ^
+STACK CFI fc9f7 .cfa: $rsp 24 +
+STACK CFI fc9fa $r13: .cfa -24 + ^
+STACK CFI fc9fc .cfa: $rsp 32 +
+STACK CFI fc9ff $r12: .cfa -32 + ^
+STACK CFI fca00 .cfa: $rsp 40 +
+STACK CFI fca01 .cfa: $rsp 48 +
+STACK CFI fca03 $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI fca07 .cfa: $rsp 64 +
+STACK CFI INIT fcb30 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fcb60 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fcb70 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fcb80 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fcb90 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fcba0 b0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fcba1 .cfa: $rsp 16 +
+STACK CFI fcbac .cfa: $rsp 64 +
+STACK CFI fcc03 $rbx: .cfa -16 + ^
+STACK CFI INIT fcc50 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fcc54 .cfa: $rsp 16 +
+STACK CFI INIT fccc0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fccd0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fccf0 13e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fccf1 .cfa: $rsp 16 +
+STACK CFI fccf9 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fcd04 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI fcd13 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT fce30 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fce3e .cfa: $rsp 32 +
+STACK CFI fce42 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fce90 b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fcea5 .cfa: $rsp 80 +
+STACK CFI fcea9 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI INIT fcf50 225 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fcf5d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI fcf7d .cfa: $rsp 592 +
+STACK CFI fcf82 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT fd180 136 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd18d $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI fd1a6 .cfa: $rsp 160 +
+STACK CFI fd1aa $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT fd2c0 db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd2cd $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI fd2db .cfa: $rsp 96 +
+STACK CFI fd2e0 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT fd3a0 91 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd3ae .cfa: $rsp 32 +
+STACK CFI fd3b1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fd440 400 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd442 .cfa: $rsp 16 +
+STACK CFI fd444 .cfa: $rsp 24 +
+STACK CFI fd446 .cfa: $rsp 32 +
+STACK CFI fd448 .cfa: $rsp 40 +
+STACK CFI fd449 .cfa: $rsp 48 +
+STACK CFI fd44c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI fd44d .cfa: $rsp 56 +
+STACK CFI fd44f $rbx: .cfa -56 + ^
+STACK CFI fd453 .cfa: $rsp 144 +
+STACK CFI INIT fd840 2b0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd841 .cfa: $rsp 16 +
+STACK CFI fd844 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fd84f $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI fd887 $rbx: .cfa -56 + ^
+STACK CFI INIT 1366e0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1366e4 .cfa: $rsp 16 +
+STACK CFI INIT fdaf0 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fdb60 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdb6d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI fdb7e $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 1088 +
+STACK CFI INIT fdc60 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdc64 .cfa: $rsp 16 +
+STACK CFI INIT fdc80 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdc84 .cfa: $rsp 16 +
+STACK CFI INIT fdca0 29d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdcad $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI fdcbe .cfa: $rsp 1104 +
+STACK CFI fdcca $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT fdf40 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdf44 .cfa: $rsp 16 +
+STACK CFI INIT fdf60 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fdf70 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fdf80 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fdf90 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fdfa0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdfae .cfa: $rsp 32 +
+STACK CFI fdfb1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fe010 14e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe027 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI fe033 .cfa: $rsp 144 +
+STACK CFI fe036 $r12: .cfa -32 + ^
+STACK CFI INIT fe160 22f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe162 .cfa: $rsp 16 +
+STACK CFI fe164 .cfa: $rsp 24 +
+STACK CFI fe166 .cfa: $rsp 32 +
+STACK CFI fe168 .cfa: $rsp 40 +
+STACK CFI fe169 .cfa: $rsp 48 +
+STACK CFI fe16c $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI fe16d .cfa: $rsp 56 +
+STACK CFI fe170 $rbx: .cfa -56 + ^
+STACK CFI fe177 .cfa: $rsp 256 +
+STACK CFI INIT fe390 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe391 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT fe3d0 313 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe3d1 .cfa: $rsp 16 +
+STACK CFI fe3d4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI fe3df $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI fe40a $rbx: .cfa -56 + ^
+STACK CFI INIT fe6f0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fe710 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fe730 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fe740 131 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fe880 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe88e .cfa: $rsp 32 +
+STACK CFI fe892 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT fe8e0 2e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fe8ed $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI fe90d .cfa: $rsp 176 +
+STACK CFI fe910 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT febc0 2f2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI febc2 .cfa: $rsp 16 +
+STACK CFI febc4 .cfa: $rsp 24 +
+STACK CFI febc6 .cfa: $rsp 32 +
+STACK CFI febc8 .cfa: $rsp 40 +
+STACK CFI febc9 .cfa: $rsp 48 +
+STACK CFI febca .cfa: $rsp 56 +
+STACK CFI febcd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI febd4 .cfa: $rsp 240 +
+STACK CFI INIT feec0 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI feec2 .cfa: $rsp 16 +
+STACK CFI feec5 $r13: .cfa -16 + ^
+STACK CFI feec7 .cfa: $rsp 24 +
+STACK CFI feeca $r12: .cfa -24 + ^
+STACK CFI feecb .cfa: $rsp 32 +
+STACK CFI feece $rbp: .cfa -32 + ^
+STACK CFI feecf .cfa: $rsp 40 +
+STACK CFI feed3 .cfa: $rsp 48 +
+STACK CFI feed7 $rbx: .cfa -40 + ^
+STACK CFI INIT fef30 11e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fef3c $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI fef59 .cfa: $rsp 64 +
+STACK CFI fef67 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT ff050 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ff054 .cfa: $rsp 64 +
+STACK CFI INIT ff080 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ff084 .cfa: $rsp 64 +
+STACK CFI INIT ff0b0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ff0d0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ff0f0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ff100 178 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ff280 3e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ff28d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ff2ad .cfa: $rsp 240 +
+STACK CFI ff2b9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT ff670 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ff67e .cfa: $rsp 32 +
+STACK CFI ff682 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT ff6d0 702 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ff6d1 .cfa: $rsp 16 +
+STACK CFI ff6d4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ff6d9 $r15: .cfa -24 + ^
+STACK CFI ff6eb $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT ffde0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ffde4 .cfa: $rsp 16 +
+STACK CFI INIT ffe00 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ffe01 .cfa: $rsp 16 +
+STACK CFI ffe04 $rbx: .cfa -16 + ^
+STACK CFI ffe08 .cfa: $rsp 32 +
+STACK CFI INIT ffea0 f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ffea1 .cfa: $rsp 16 +
+STACK CFI ffea4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI ffeaa $r15: .cfa -24 + ^
+STACK CFI ffeb0 $r14: .cfa -32 + ^
+STACK CFI ffeb6 $r13: .cfa -40 + ^
+STACK CFI ffebb $r12: .cfa -48 + ^
+STACK CFI ffec1 $rbx: .cfa -56 + ^
+STACK CFI INIT fffa0 a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fffa1 .cfa: $rsp 16 +
+STACK CFI fffa2 .cfa: $rsp 24 +
+STACK CFI fffa5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI fffa9 .cfa: $rsp 48 +
+STACK CFI INIT 100050 f8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10005d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 100066 .cfa: $rsp 112 +
+STACK CFI 100069 $r12: .cfa -16 + ^
+STACK CFI INIT 100150 145 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10015d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10016a $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 100173 .cfa: $rsp 128 +
+STACK CFI 10017e $r14: .cfa -16 + ^
+STACK CFI INIT 1002a0 10d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1002ad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 1002b6 .cfa: $rsp 80 +
+STACK CFI 1002c5 $r12: .cfa -16 + ^
+STACK CFI INIT 1003b0 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1003b1 .cfa: $rsp 16 +
+STACK CFI 1003b9 $rbp: .cfa -16 + ^
+STACK CFI 1003c4 .cfa: $rsp 24 +
+STACK CFI 1003c8 $rbx: .cfa -24 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 100430 1e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10043d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 10044a $r13: .cfa -32 + ^ $r15: .cfa -16 + ^
+STACK CFI 10045b .cfa: $rsp 176 +
+STACK CFI 100484 $r14: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 100620 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 100640 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10064e .cfa: $rsp 32 +
+STACK CFI 100651 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1006b0 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1006b2 .cfa: $rsp 16 +
+STACK CFI 1006b4 .cfa: $rsp 24 +
+STACK CFI 1006b6 .cfa: $rsp 32 +
+STACK CFI 1006b9 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 1006ba .cfa: $rsp 40 +
+STACK CFI 1006bd $rbp: .cfa -40 + ^
+STACK CFI 1006be .cfa: $rsp 48 +
+STACK CFI 1006c1 $rbx: .cfa -48 + ^
+STACK CFI 1006c5 .cfa: $rsp 64 +
+STACK CFI INIT 100780 654 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 100782 .cfa: $rsp 16 +
+STACK CFI 100785 $r15: .cfa -16 + ^
+STACK CFI 100787 .cfa: $rsp 24 +
+STACK CFI 10078a $r14: .cfa -24 + ^
+STACK CFI 10078c .cfa: $rsp 32 +
+STACK CFI 10078f $r13: .cfa -32 + ^
+STACK CFI 100791 .cfa: $rsp 40 +
+STACK CFI 100792 .cfa: $rsp 48 +
+STACK CFI 100793 .cfa: $rsp 56 +
+STACK CFI 10079a .cfa: $rsp 10752 +
+STACK CFI 1007a9 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 100de0 109 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 100ded $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 100e03 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI INIT 100ef0 76 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 100efe .cfa: $rsp 48 +
+STACK CFI 100f04 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 100f70 14e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 100f7d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 100f8a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 100f9b .cfa: $rsp 192 +
+STACK CFI 100fa3 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 1010c0 117 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1011e0 93 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1011ee .cfa: $rsp 32 +
+STACK CFI 1011fb $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 101280 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10128e .cfa: $rsp 32 +
+STACK CFI 101291 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 101310 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10131e .cfa: $rsp 32 +
+STACK CFI 101321 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1013b0 6e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1013be .cfa: $rsp 32 +
+STACK CFI 1013c1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 101420 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 101430 53 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10143e .cfa: $rsp 32 +
+STACK CFI 101441 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 101490 38b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101491 .cfa: $rsp 16 +
+STACK CFI 101494 $rbp: .cfa -16 + ^
+STACK CFI 101495 .cfa: $rsp 24 +
+STACK CFI 101498 $rbx: .cfa -24 + ^
+STACK CFI 10149c .cfa: $rsp 32 +
+STACK CFI INIT 101820 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 101840 9d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101841 .cfa: $rsp 16 +
+STACK CFI 101848 $rbx: .cfa -16 + ^
+STACK CFI INIT 1018e0 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1018e4 .cfa: $rsp 16 +
+STACK CFI INIT 101910 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101914 .cfa: $rsp 16 +
+STACK CFI INIT 101940 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101944 .cfa: $rsp 16 +
+STACK CFI INIT 101970 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101974 .cfa: $rsp 16 +
+STACK CFI INIT 136a30 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136a31 .cfa: $rsp 16 +
+STACK CFI 136a32 .cfa: $rsp 24 +
+STACK CFI 136a36 .cfa: $rsp 32 +
+STACK CFI 136a3d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 101990 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101994 .cfa: $rsp 112 +
+STACK CFI INIT 1019e0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1019e4 .cfa: $rsp 112 +
+STACK CFI INIT 101a30 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101a34 .cfa: $rsp 112 +
+STACK CFI INIT 101a80 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101a84 .cfa: $rsp 112 +
+STACK CFI INIT 101ad0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101ad4 .cfa: $rsp 112 +
+STACK CFI INIT 101b00 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 101b10 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101b14 .cfa: $rsp 112 +
+STACK CFI INIT 101b60 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101b64 .cfa: $rsp 112 +
+STACK CFI INIT 101bb0 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101bb7 .cfa: $rsp 144 +
+STACK CFI INIT 101be0 21c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101be2 .cfa: $rsp 16 +
+STACK CFI 101be4 .cfa: $rsp 24 +
+STACK CFI 101be6 .cfa: $rsp 32 +
+STACK CFI 101be7 .cfa: $rsp 40 +
+STACK CFI 101be8 .cfa: $rsp 48 +
+STACK CFI 101bea $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 101bf4 .cfa: $rsp 1408 +
+STACK CFI INIT 101e00 92 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101e02 .cfa: $rsp 16 +
+STACK CFI 101e05 $r15: .cfa -16 + ^
+STACK CFI 101e07 .cfa: $rsp 24 +
+STACK CFI 101e09 .cfa: $rsp 32 +
+STACK CFI 101e0b .cfa: $rsp 40 +
+STACK CFI 101e0c .cfa: $rsp 48 +
+STACK CFI 101e0d .cfa: $rsp 56 +
+STACK CFI 101e11 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 80 +
+STACK CFI INIT 101ea0 bc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101ea2 .cfa: $rsp 16 +
+STACK CFI 101ea3 .cfa: $rsp 24 +
+STACK CFI 101ea6 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 101ea7 .cfa: $rsp 32 +
+STACK CFI 101eaa $rbx: .cfa -32 + ^
+STACK CFI INIT 101f60 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101f61 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 101f90 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 101f92 .cfa: $rsp 16 +
+STACK CFI 101f95 $r15: .cfa -16 + ^
+STACK CFI 101f97 .cfa: $rsp 24 +
+STACK CFI 101f9a $r14: .cfa -24 + ^
+STACK CFI 101f9c .cfa: $rsp 32 +
+STACK CFI 101f9f $r13: .cfa -32 + ^
+STACK CFI 101fa1 .cfa: $rsp 40 +
+STACK CFI 101fa2 .cfa: $rsp 48 +
+STACK CFI 101fa5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 101fa6 .cfa: $rsp 56 +
+STACK CFI 101fa9 $rbx: .cfa -56 + ^
+STACK CFI 101fad .cfa: $rsp 80 +
+STACK CFI INIT 102080 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10208d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 1020a0 .cfa: $rsp 48 +
+STACK CFI 1020a2 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 102170 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102172 .cfa: $rsp 16 +
+STACK CFI 102174 .cfa: $rsp 24 +
+STACK CFI 102176 .cfa: $rsp 32 +
+STACK CFI 102179 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 10217b .cfa: $rsp 40 +
+STACK CFI 10217c .cfa: $rsp 48 +
+STACK CFI 10217d .cfa: $rsp 56 +
+STACK CFI 102180 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 102184 .cfa: $rsp 64 +
+STACK CFI INIT 102210 146 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102212 .cfa: $rsp 16 +
+STACK CFI 102214 .cfa: $rsp 24 +
+STACK CFI 102217 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 102218 .cfa: $rsp 32 +
+STACK CFI 102219 .cfa: $rsp 40 +
+STACK CFI 10221d .cfa: $rsp 48 +
+STACK CFI 10221f $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 102360 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1023b0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1023c0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1023d0 1e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1023dd $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 1023fa .cfa: $rsp 128 +
+STACK CFI 1023fe $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 1025c0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1025d0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1025e0 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1025ee .cfa: $rsp 32 +
+STACK CFI 1025f1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 102650 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10265e .cfa: $rsp 32 +
+STACK CFI 102661 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1026b0 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1026b1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 102740 84 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10274d $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 102756 $rbp: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI INIT 1027d0 66 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1027de .cfa: $rsp 32 +
+STACK CFI 1027e1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 102840 139 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102842 .cfa: $rsp 16 +
+STACK CFI 102844 .cfa: $rsp 24 +
+STACK CFI 102847 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 102848 .cfa: $rsp 32 +
+STACK CFI 102849 .cfa: $rsp 40 +
+STACK CFI 10284b $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 10284f .cfa: $rsp 48 +
+STACK CFI INIT 102980 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102981 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 1029b0 1e4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1029bd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1029ca $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 1029d8 .cfa: $rsp 96 +
+STACK CFI 1029e1 $r12: .cfa -40 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 102ba0 1ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102ba2 .cfa: $rsp 16 +
+STACK CFI 102ba4 .cfa: $rsp 24 +
+STACK CFI 102ba7 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 102ba8 .cfa: $rsp 32 +
+STACK CFI 102ba9 .cfa: $rsp 40 +
+STACK CFI 102bb0 .cfa: $rsp 8864 +
+STACK CFI 102bc9 $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 102d70 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 102d80 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 102da0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 102dc0 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102dd7 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 102dea .cfa: $rsp 64 +
+STACK CFI 102ded $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 102ef0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 102f00 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102f0d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 102f11 .cfa: $rsp 32 +
+STACK CFI INIT 102f70 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102f7e .cfa: $rsp 32 +
+STACK CFI 102f86 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 102fc0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102fc4 .cfa: $rsp 16 +
+STACK CFI INIT 102ff0 6f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 102ffd $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 103006 .cfa: $rsp 32 +
+STACK CFI 10300a $rbx: .cfa -32 + ^
+STACK CFI INIT 103060 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 103062 .cfa: $rsp 16 +
+STACK CFI 103065 $r13: .cfa -16 + ^
+STACK CFI 103067 .cfa: $rsp 24 +
+STACK CFI 10306a $r12: .cfa -24 + ^
+STACK CFI 10306b .cfa: $rsp 32 +
+STACK CFI 10306e $rbp: .cfa -32 + ^
+STACK CFI 10306f .cfa: $rsp 40 +
+STACK CFI 103073 .cfa: $rsp 48 +
+STACK CFI 103077 $rbx: .cfa -40 + ^
+STACK CFI INIT 1030c0 b4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1030cd $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 1030e3 .cfa: $rsp 64 +
+STACK CFI 1030e5 $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 103180 23a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10318c $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 1031a7 .cfa: $rsp 96 +
+STACK CFI 1031ad $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 1033c0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1033c4 .cfa: $rsp 16 +
+STACK CFI INIT 1033d0 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1033d2 .cfa: $rsp 16 +
+STACK CFI 1033d4 .cfa: $rsp 24 +
+STACK CFI 1033d5 .cfa: $rsp 32 +
+STACK CFI 1033d6 .cfa: $rsp 40 +
+STACK CFI 1033d9 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 1033dd .cfa: $rsp 96 +
+STACK CFI INIT 103490 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1034a0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1034b0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1034d0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1034f0 124 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1034fd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 103506 .cfa: $rsp 32 +
+STACK CFI 103520 $r12: .cfa -16 + ^
+STACK CFI INIT 103620 2ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10362d $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 103647 .cfa: $rsp 96 +
+STACK CFI 10364d $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 1038e0 5b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1038ed $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 1038f1 .cfa: $rsp 32 +
+STACK CFI INIT 103940 28e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10394d $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 10395a $r13: .cfa -32 + ^ $rbx: .cfa -56 + ^
+STACK CFI 103968 .cfa: $rsp 64 +
+STACK CFI 103980 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 103bd0 346 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 103bd2 .cfa: $rsp 16 +
+STACK CFI 103bd9 $r15: .cfa -16 + ^
+STACK CFI 103bdb .cfa: $rsp 24 +
+STACK CFI 103bdf $r14: .cfa -24 + ^
+STACK CFI 103be1 .cfa: $rsp 32 +
+STACK CFI 103be3 .cfa: $rsp 40 +
+STACK CFI 103be7 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 103be8 .cfa: $rsp 48 +
+STACK CFI 103beb $rbp: .cfa -48 + ^
+STACK CFI 103bec .cfa: $rsp 56 +
+STACK CFI 103bf0 $rbx: .cfa -56 + ^
+STACK CFI 103bf4 .cfa: $rsp 112 +
+STACK CFI INIT 103f20 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 103f24 .cfa: $rsp 64 +
+STACK CFI INIT 103f40 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 103f50 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 103f51 .cfa: $rsp 16 +
+STACK CFI 103f54 $rbx: .cfa -16 + ^
+STACK CFI 103f58 .cfa: $rsp 32 +
+STACK CFI INIT 103fc0 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 103fc1 .cfa: $rsp 16 +
+STACK CFI 103fc4 $rbx: .cfa -16 + ^
+STACK CFI 103fc8 .cfa: $rsp 32 +
+STACK CFI INIT 104030 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104070 71 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104071 .cfa: $rsp 16 +
+STACK CFI 104074 $rbx: .cfa -16 + ^
+STACK CFI 104078 .cfa: $rsp 32 +
+STACK CFI INIT 1040f0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1040fe .cfa: $rsp 48 +
+STACK CFI 104103 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1041c0 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1041ce .cfa: $rsp 48 +
+STACK CFI 1041d3 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 104290 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1042a0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1042b0 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1042b1 .cfa: $rsp 16 +
+STACK CFI 1042b4 $rbx: .cfa -16 + ^
+STACK CFI 1042b8 .cfa: $rsp 32 +
+STACK CFI INIT 104320 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104321 .cfa: $rsp 16 +
+STACK CFI 104324 $rbx: .cfa -16 + ^
+STACK CFI 104328 .cfa: $rsp 32 +
+STACK CFI INIT 104390 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104391 .cfa: $rsp 16 +
+STACK CFI 104394 $rbx: .cfa -16 + ^
+STACK CFI 104398 .cfa: $rsp 32 +
+STACK CFI INIT 1043d0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1043d1 .cfa: $rsp 16 +
+STACK CFI 1043d4 $rbx: .cfa -16 + ^
+STACK CFI 1043d8 .cfa: $rsp 32 +
+STACK CFI INIT 104410 6f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104411 .cfa: $rsp 16 +
+STACK CFI 104414 $rbx: .cfa -16 + ^
+STACK CFI 104418 .cfa: $rsp 32 +
+STACK CFI INIT 104480 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104481 .cfa: $rsp 16 +
+STACK CFI 104484 $rbx: .cfa -16 + ^
+STACK CFI 104488 .cfa: $rsp 32 +
+STACK CFI INIT 1044f0 bc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1044fe .cfa: $rsp 32 +
+STACK CFI 104503 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1045b0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1045d0 c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1045dd $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 1045f3 .cfa: $rsp 48 +
+STACK CFI 1045f6 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 1046a0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1046a4 .cfa: $rsp 16 +
+STACK CFI INIT 1046c0 13c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1046cd $r12: .cfa -24 + ^ $rbx: .cfa -40 + ^
+STACK CFI 1046db .cfa: $rsp 64 +
+STACK CFI 1046e3 $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^
+STACK CFI INIT 104800 14a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10480d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 104823 .cfa: $rsp 64 +
+STACK CFI 104826 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 104950 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104952 .cfa: $rsp 16 +
+STACK CFI 104954 .cfa: $rsp 24 +
+STACK CFI 104957 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 104959 .cfa: $rsp 32 +
+STACK CFI 10495b .cfa: $rsp 40 +
+STACK CFI 10495c .cfa: $rsp 48 +
+STACK CFI 10495f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 104960 .cfa: $rsp 56 +
+STACK CFI 104962 $rbx: .cfa -56 + ^
+STACK CFI 104966 .cfa: $rsp 64 +
+STACK CFI INIT 1049d0 172 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1049dd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1049f8 .cfa: $rsp 80 +
+STACK CFI 1049fb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 104b50 65 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104b51 .cfa: $rsp 16 +
+STACK CFI 104b54 $rbx: .cfa -16 + ^
+STACK CFI 104b58 .cfa: $rsp 32 +
+STACK CFI INIT 104bc0 b5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104bcd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 104bd6 .cfa: $rsp 48 +
+STACK CFI 104be0 $r12: .cfa -16 + ^
+STACK CFI INIT 104c80 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104ca0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104cb0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104cc0 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104d00 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104d20 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104d50 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104d80 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104db0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104de0 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104dee .cfa: $rsp 32 +
+STACK CFI 104df6 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 104e30 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104e38 $rbx: .cfa -24 + ^
+STACK CFI 104e41 .cfa: $rsp 32 +
+STACK CFI 104e4d $rbp: .cfa -16 + ^
+STACK CFI INIT 104e80 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 104ee0 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104ee2 .cfa: $rsp 16 +
+STACK CFI 104ee3 .cfa: $rsp 24 +
+STACK CFI 104ee6 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 104ee7 .cfa: $rsp 32 +
+STACK CFI 104eea $rbx: .cfa -32 + ^
+STACK CFI INIT 104f70 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 104f71 .cfa: $rsp 16 +
+STACK CFI 104f79 .cfa: $rsp 24 +
+STACK CFI 104f7c $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 104f80 .cfa: $rsp 32 +
+STACK CFI INIT 104fd0 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105030 73 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10503e .cfa: $rsp 32 +
+STACK CFI 105042 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1050b0 73 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1050be .cfa: $rsp 32 +
+STACK CFI 1050c2 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 105130 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105132 .cfa: $rsp 16 +
+STACK CFI 105134 .cfa: $rsp 24 +
+STACK CFI 105137 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 105139 .cfa: $rsp 32 +
+STACK CFI 10513a .cfa: $rsp 40 +
+STACK CFI 10513c $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI 10513d .cfa: $rsp 48 +
+STACK CFI 105140 $rbx: .cfa -48 + ^
+STACK CFI INIT 1051d0 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1051d1 .cfa: $rsp 16 +
+STACK CFI 1051d9 $rbx: .cfa -16 + ^
+STACK CFI 1051dd .cfa: $rsp 32 +
+STACK CFI INIT 105220 60 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105221 .cfa: $rsp 16 +
+STACK CFI 105225 $rbx: .cfa -16 + ^
+STACK CFI INIT 105280 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105281 .cfa: $rsp 16 +
+STACK CFI 105285 $rbx: .cfa -16 + ^
+STACK CFI INIT 1052e0 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1052ec $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 1052fa .cfa: $rsp 48 +
+STACK CFI 1052fe $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 105380 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105381 .cfa: $rsp 16 +
+STACK CFI 105384 $rbx: .cfa -16 + ^
+STACK CFI 105388 .cfa: $rsp 32 +
+STACK CFI INIT 1053f0 75 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1053f1 .cfa: $rsp 16 +
+STACK CFI 1053f4 $rbx: .cfa -16 + ^
+STACK CFI 1053f8 .cfa: $rsp 32 +
+STACK CFI INIT 105470 9e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105472 .cfa: $rsp 16 +
+STACK CFI 105477 $r14: .cfa -16 + ^
+STACK CFI 105479 .cfa: $rsp 24 +
+STACK CFI 10547b .cfa: $rsp 32 +
+STACK CFI 10547c .cfa: $rsp 40 +
+STACK CFI 10547e $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^
+STACK CFI 10547f .cfa: $rsp 48 +
+STACK CFI 105483 $rbx: .cfa -48 + ^
+STACK CFI INIT 105510 1c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10551d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10553c .cfa: $rsp 96 +
+STACK CFI 10553f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 1056e0 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1056e1 .cfa: $rsp 16 +
+STACK CFI 1056e5 $rbx: .cfa -16 + ^
+STACK CFI INIT 105700 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10570e .cfa: $rsp 32 +
+STACK CFI 105712 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 105770 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10577d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 105786 .cfa: $rsp 32 +
+STACK CFI 105789 $r12: .cfa -16 + ^
+STACK CFI INIT 105810 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10582a .cfa: $rsp 64 +
+STACK CFI 105831 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 1058a0 e7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1058ad $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 1058b6 .cfa: $rsp 48 +
+STACK CFI 1058b9 $r12: .cfa -16 + ^
+STACK CFI INIT 105990 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1059c0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1059d0 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1059d4 .cfa: $rsp 32 +
+STACK CFI INIT 105a10 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105a14 .cfa: $rsp 16 +
+STACK CFI INIT 105a50 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105a54 .cfa: $rsp 32 +
+STACK CFI INIT 105a90 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105a91 .cfa: $rsp 16 +
+STACK CFI 105a99 $rbx: .cfa -16 + ^
+STACK CFI 105aa2 .cfa: $rsp 32 +
+STACK CFI INIT 105ad0 3b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105ad4 .cfa: $rsp 16 +
+STACK CFI INIT 105b10 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105b11 .cfa: $rsp 16 +
+STACK CFI 105b19 $rbx: .cfa -16 + ^
+STACK CFI 105b22 .cfa: $rsp 32 +
+STACK CFI INIT 105b60 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105b70 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105b74 .cfa: $rsp 16 +
+STACK CFI INIT 105b90 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105b94 .cfa: $rsp 16 +
+STACK CFI INIT 105bb0 110 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105bb2 .cfa: $rsp 16 +
+STACK CFI 105bb4 .cfa: $rsp 24 +
+STACK CFI 105bb6 .cfa: $rsp 32 +
+STACK CFI 105bb9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 105bbb .cfa: $rsp 40 +
+STACK CFI 105bbe $r12: .cfa -40 + ^
+STACK CFI 105bbf .cfa: $rsp 48 +
+STACK CFI 105bc2 $rbp: .cfa -48 + ^
+STACK CFI 105bc3 .cfa: $rsp 56 +
+STACK CFI 105bc7 .cfa: $rsp 96 +
+STACK CFI 105bd7 $rbx: .cfa -56 + ^
+STACK CFI INIT 105cc0 f4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105cc2 .cfa: $rsp 16 +
+STACK CFI 105cc4 .cfa: $rsp 24 +
+STACK CFI 105cc6 .cfa: $rsp 32 +
+STACK CFI 105cc8 .cfa: $rsp 40 +
+STACK CFI 105ccb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 105ccc .cfa: $rsp 48 +
+STACK CFI 105ccf $rbp: .cfa -48 + ^
+STACK CFI 105cd0 .cfa: $rsp 56 +
+STACK CFI 105cd4 .cfa: $rsp 80 +
+STACK CFI 105ce0 $rbx: .cfa -56 + ^
+STACK CFI INIT 105dc0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105dd0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105de0 4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105df0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105e00 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105e10 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105e20 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105e21 .cfa: $rsp 16 +
+STACK CFI 105e2f .cfa: $rsp 144 +
+STACK CFI 105ebf $rbx: .cfa -16 + ^
+STACK CFI INIT 105ee0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105ee1 .cfa: $rsp 16 +
+STACK CFI 105ee4 $rbx: .cfa -16 + ^
+STACK CFI INIT 105f10 83 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105f1e .cfa: $rsp 48 +
+STACK CFI 105f23 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 105fa0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 105fb0 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105fbe .cfa: $rsp 32 +
+STACK CFI 105fc2 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 106000 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10600e .cfa: $rsp 48 +
+STACK CFI 106016 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1060a0 219 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1060a2 .cfa: $rsp 16 +
+STACK CFI 1060a5 $r12: .cfa -16 + ^
+STACK CFI 1060a8 .cfa: $rsp 24 +
+STACK CFI 1060ab $rbp: .cfa -24 + ^
+STACK CFI 1060ac .cfa: $rsp 32 +
+STACK CFI 1060b0 .cfa: $rsp 80 +
+STACK CFI 1060b4 $rbx: .cfa -32 + ^
+STACK CFI INIT 1062c0 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1062c1 .cfa: $rsp 16 +
+STACK CFI 1062c4 $rbp: .cfa -16 + ^
+STACK CFI 1062c5 .cfa: $rsp 24 +
+STACK CFI 1062c9 .cfa: $rsp 80 +
+STACK CFI 1062cd $rbx: .cfa -24 + ^
+STACK CFI INIT 1063b0 255 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1063bd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1063ca $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 1063db .cfa: $rsp 336 +
+STACK CFI 1063eb $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 106610 d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10661c $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 106629 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 106635 .cfa: $rsp 1088 +
+STACK CFI 10663e $r14: .cfa -16 + ^
+STACK CFI INIT 1066f0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106703 .cfa: $rsp 32 +
+STACK CFI 106706 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 106740 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10674e .cfa: $rsp 32 +
+STACK CFI 106751 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 10702e 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10703c .cfa: $rsp 0 +
+STACK CFI 107040 .cfa: $rsp 128 +
+STACK CFI 107048 .cfa: $rsp -128 +
+STACK CFI INIT 10704d 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10705b .cfa: $rsp 0 +
+STACK CFI 10705f .cfa: $rsp 128 +
+STACK CFI 107067 .cfa: $rsp -128 +
+STACK CFI INIT 1067e0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1067e1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI INIT 106830 23c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106831 .cfa: $rsp 16 +
+STACK CFI 106832 .cfa: $rsp 24 +
+STACK CFI 106839 .cfa: $rsp 192 +
+STACK CFI 10683d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 106a70 1f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106a7d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 106a98 .cfa: $rsp 96 +
+STACK CFI 106a9f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 106c70 4b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106c71 .cfa: $rsp 16 +
+STACK CFI 106c7b $rbx: .cfa -16 + ^
+STACK CFI 106c8e .cfa: $rsp 32 +
+STACK CFI INIT 106cc0 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106cc4 .cfa: $rsp 32 +
+STACK CFI INIT 106d10 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106d11 .cfa: $rsp 16 +
+STACK CFI 106d1b $rbx: .cfa -16 + ^
+STACK CFI 106d1f .cfa: $rsp 64 +
+STACK CFI INIT 106d80 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106d81 .cfa: $rsp 16 +
+STACK CFI 106d8b $rbx: .cfa -16 + ^
+STACK CFI 106d8f .cfa: $rsp 64 +
+STACK CFI INIT 106df0 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106df1 .cfa: $rsp 16 +
+STACK CFI 106dfb $rbx: .cfa -16 + ^
+STACK CFI 106dff .cfa: $rsp 48 +
+STACK CFI INIT 106e50 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106e51 .cfa: $rsp 16 +
+STACK CFI 106e5b $rbx: .cfa -16 + ^
+STACK CFI 106e5f .cfa: $rsp 48 +
+STACK CFI INIT 106eb0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106eb4 .cfa: $rsp 32 +
+STACK CFI INIT 106f00 d5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106f01 .cfa: $rsp 16 +
+STACK CFI 106f04 $rbp: .cfa -16 + ^
+STACK CFI 106f0f .cfa: $rsp 24 +
+STACK CFI 106f13 .cfa: $rsp 80 +
+STACK CFI 106f61 $rbx: .cfa -24 + ^
+STACK CFI INIT 106fe0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 106fe4 .cfa: $rsp 128 +
+STACK CFI INIT 107070 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10707e .cfa: $rsp 32 +
+STACK CFI 107081 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1070d0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1070de .cfa: $rsp 32 +
+STACK CFI 1070e1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 107130 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10713e .cfa: $rsp 32 +
+STACK CFI 107141 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 107190 6c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10719e .cfa: $rsp 32 +
+STACK CFI 1071a1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 107200 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10720e .cfa: $rsp 32 +
+STACK CFI 107211 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 107260 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10726e .cfa: $rsp 32 +
+STACK CFI 107271 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1072b0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1072be .cfa: $rsp 32 +
+STACK CFI 1072c1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 107310 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107314 .cfa: $rsp 16 +
+STACK CFI INIT 107330 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107334 .cfa: $rsp 16 +
+STACK CFI INIT 107350 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107354 .cfa: $rsp 16 +
+STACK CFI INIT 107370 96 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10737d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 107389 .cfa: $rsp 288 +
+STACK CFI 107394 $rbx: .cfa -32 + ^
+STACK CFI INIT 107410 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107412 .cfa: $rsp 16 +
+STACK CFI 107415 $r15: .cfa -16 + ^
+STACK CFI 107417 .cfa: $rsp 24 +
+STACK CFI 10741a $r14: .cfa -24 + ^
+STACK CFI 10741c .cfa: $rsp 32 +
+STACK CFI 10741f $r13: .cfa -32 + ^
+STACK CFI 107421 .cfa: $rsp 40 +
+STACK CFI 107424 $r12: .cfa -40 + ^
+STACK CFI 107425 .cfa: $rsp 48 +
+STACK CFI 107428 $rbp: .cfa -48 + ^
+STACK CFI 107429 .cfa: $rsp 56 +
+STACK CFI 10742d .cfa: $rsp 96 +
+STACK CFI 10743d $rbx: .cfa -56 + ^
+STACK CFI INIT 107520 219 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10752d $r13: .cfa -24 + ^ $rbx: .cfa -48 + ^
+STACK CFI 107546 .cfa: $rsp 208 +
+STACK CFI 107552 $r12: .cfa -32 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^
+STACK CFI INIT 107740 10c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10774d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 107759 .cfa: $rsp 288 +
+STACK CFI 107767 $r12: .cfa -16 + ^
+STACK CFI INIT 107850 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107851 .cfa: $rsp 16 +
+STACK CFI 107854 $rbx: .cfa -16 + ^
+STACK CFI INIT 107880 16b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10788d $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 10789b .cfa: $rsp 80 +
+STACK CFI 1078a6 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI INIT 1079f0 224 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1079fd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 107a0a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 107a18 .cfa: $rsp 96 +
+STACK CFI 107a1f $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 107c20 227 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107c2d $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 107c3a $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 107c48 .cfa: $rsp 96 +
+STACK CFI 107c4b $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 107e50 78d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 107e5d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 107e6a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 107e7b $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 1232 +
+STACK CFI INIT 1085e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 108610 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 108630 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 108640 30a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10864d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10866d .cfa: $rsp 192 +
+STACK CFI 108670 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 108950 61 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10895e .cfa: $rsp 32 +
+STACK CFI 108962 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 1089c0 1a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 108b70 333 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 108b72 .cfa: $rsp 16 +
+STACK CFI 108b74 .cfa: $rsp 24 +
+STACK CFI 108b76 .cfa: $rsp 32 +
+STACK CFI 108b78 .cfa: $rsp 40 +
+STACK CFI 108b79 .cfa: $rsp 48 +
+STACK CFI 108b7a .cfa: $rsp 56 +
+STACK CFI 108b7d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 108b84 .cfa: $rsp 240 +
+STACK CFI INIT 108eb0 d8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 108eb1 .cfa: $rsp 16 +
+STACK CFI 108eb4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 108eb9 $r14: .cfa -24 + ^
+STACK CFI 108ec0 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 108ec4 $rbx: .cfa -48 + ^
+STACK CFI INIT 108f90 6e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 108f92 .cfa: $rsp 16 +
+STACK CFI 108f95 $r13: .cfa -16 + ^
+STACK CFI 108f97 .cfa: $rsp 24 +
+STACK CFI 108f9a $r12: .cfa -24 + ^
+STACK CFI 108f9b .cfa: $rsp 32 +
+STACK CFI 108f9e $rbp: .cfa -32 + ^
+STACK CFI 108f9f .cfa: $rsp 40 +
+STACK CFI 108fa3 .cfa: $rsp 48 +
+STACK CFI 108fa7 $rbx: .cfa -40 + ^
+STACK CFI INIT 109000 1ec .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10900d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10901a $r12: .cfa -32 + ^ $r14: .cfa -16 + ^
+STACK CFI 109026 .cfa: $rsp 144 +
+STACK CFI 10905a $r13: .cfa -24 + ^
+STACK CFI INIT 1091f0 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109200 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109220 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109240 126 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109257 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10926a .cfa: $rsp 64 +
+STACK CFI 10926d $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 109370 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109380 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10938d $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI 109391 .cfa: $rsp 32 +
+STACK CFI INIT 1093f0 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1093fe .cfa: $rsp 32 +
+STACK CFI 109406 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 109440 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109444 .cfa: $rsp 16 +
+STACK CFI INIT 109470 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10947d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^
+STACK CFI 109486 .cfa: $rsp 32 +
+STACK CFI 10948a $rbx: .cfa -32 + ^
+STACK CFI INIT 109500 132 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109502 .cfa: $rsp 16 +
+STACK CFI 109504 .cfa: $rsp 24 +
+STACK CFI 109507 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 109509 .cfa: $rsp 32 +
+STACK CFI 10950c $r13: .cfa -32 + ^
+STACK CFI 10950e .cfa: $rsp 40 +
+STACK CFI 10950f .cfa: $rsp 48 +
+STACK CFI 109510 .cfa: $rsp 56 +
+STACK CFI 109514 .cfa: $rsp 176 +
+STACK CFI 109520 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 109640 172 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10964d $r12: .cfa -32 + ^ $rbp: .cfa -40 + ^
+STACK CFI 10965a $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 109666 .cfa: $rsp 144 +
+STACK CFI 109668 $rbx: .cfa -48 + ^
+STACK CFI INIT 1097c0 260 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1097cc $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1097d9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 1097e6 $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI 1097ed .cfa: $rsp 208 +
+STACK CFI INIT 109a20 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109a24 .cfa: $rsp 16 +
+STACK CFI INIT 109a30 f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109a32 .cfa: $rsp 16 +
+STACK CFI 109a34 .cfa: $rsp 24 +
+STACK CFI 109a35 .cfa: $rsp 32 +
+STACK CFI 109a36 .cfa: $rsp 40 +
+STACK CFI 109a39 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 109a40 .cfa: $rsp 208 +
+STACK CFI INIT 109bcc 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 109bda .cfa: $rsp 0 +
+STACK CFI 109bde .cfa: $rsp 128 +
+STACK CFI 109be6 .cfa: $rsp -128 +
+STACK CFI INIT 109beb 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 109bf9 .cfa: $rsp 0 +
+STACK CFI 109bfd .cfa: $rsp 128 +
+STACK CFI 109c05 .cfa: $rsp -128 +
+STACK CFI INIT 109b30 9c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109b31 .cfa: $rsp 16 +
+STACK CFI 109b3c .cfa: $rsp 48 +
+STACK CFI 109b5a $rbx: .cfa -16 + ^
+STACK CFI INIT 109c10 be .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109c1e .cfa: $rsp 48 +
+STACK CFI 109c23 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 109cd0 bd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109cde .cfa: $rsp 48 +
+STACK CFI 109ce3 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 109d90 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109dd0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 109e10 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109e11 .cfa: $rsp 16 +
+STACK CFI 109e14 $rbx: .cfa -16 + ^
+STACK CFI 109e18 .cfa: $rsp 32 +
+STACK CFI INIT 109e80 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109e81 .cfa: $rsp 16 +
+STACK CFI 109e84 $rbx: .cfa -16 + ^
+STACK CFI 109e88 .cfa: $rsp 32 +
+STACK CFI INIT 109ef0 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109ef1 .cfa: $rsp 16 +
+STACK CFI 109ef4 $rbx: .cfa -16 + ^
+STACK CFI 109ef8 .cfa: $rsp 32 +
+STACK CFI INIT 109f60 69 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 109f61 .cfa: $rsp 16 +
+STACK CFI 109f64 $rbx: .cfa -16 + ^
+STACK CFI 109f68 .cfa: $rsp 32 +
+STACK CFI INIT 109fd0 e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10a0c0 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10a110 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a112 .cfa: $rsp 16 +
+STACK CFI 10a115 $r15: .cfa -16 + ^
+STACK CFI 10a117 .cfa: $rsp 24 +
+STACK CFI 10a119 .cfa: $rsp 32 +
+STACK CFI 10a11b .cfa: $rsp 40 +
+STACK CFI 10a11e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 10a11f .cfa: $rsp 48 +
+STACK CFI 10a120 .cfa: $rsp 56 +
+STACK CFI 10a124 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 96 +
+STACK CFI INIT 10a210 f9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a212 .cfa: $rsp 16 +
+STACK CFI 10a215 $r15: .cfa -16 + ^
+STACK CFI 10a217 .cfa: $rsp 24 +
+STACK CFI 10a219 .cfa: $rsp 32 +
+STACK CFI 10a21b .cfa: $rsp 40 +
+STACK CFI 10a21e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^
+STACK CFI 10a21f .cfa: $rsp 48 +
+STACK CFI 10a220 .cfa: $rsp 56 +
+STACK CFI 10a224 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 96 +
+STACK CFI INIT 10a310 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a314 .cfa: $rsp 16 +
+STACK CFI 10a319 $rbx: .cfa -16 + ^
+STACK CFI INIT 10a3a0 19 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a3a4 .cfa: $rsp 64 +
+STACK CFI INIT 10a3c0 a4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a3c1 .cfa: $rsp 16 +
+STACK CFI 10a3c4 $rbx: .cfa -16 + ^
+STACK CFI 10a3c8 .cfa: $rsp 64 +
+STACK CFI INIT 10a470 43a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a475 .cfa: $rsp 16 +
+STACK CFI 10a478 $rbx: .cfa -16 + ^
+STACK CFI INIT 10a8b0 6f7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a8b2 .cfa: $rsp 16 +
+STACK CFI 10a8b7 $r15: .cfa -16 + ^
+STACK CFI 10a8c0 .cfa: $rsp 24 +
+STACK CFI 10a8c4 $r14: .cfa -24 + ^
+STACK CFI 10a8c6 .cfa: $rsp 32 +
+STACK CFI 10a8c9 $r13: .cfa -32 + ^
+STACK CFI 10a8cb .cfa: $rsp 40 +
+STACK CFI 10a8ce $r12: .cfa -40 + ^
+STACK CFI 10a8cf .cfa: $rsp 48 +
+STACK CFI 10a8d0 .cfa: $rsp 56 +
+STACK CFI 10a8d7 .cfa: $rsp 384 +
+STACK CFI 10a992 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10afb0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10afe0 117 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 136700 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10b100 39c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10b102 .cfa: $rsp 16 +
+STACK CFI 10b104 .cfa: $rsp 24 +
+STACK CFI 10b106 .cfa: $rsp 32 +
+STACK CFI 10b108 .cfa: $rsp 40 +
+STACK CFI 10b10b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 10b10c .cfa: $rsp 48 +
+STACK CFI 10b10f $rbp: .cfa -48 + ^
+STACK CFI 10b110 .cfa: $rsp 56 +
+STACK CFI 10b114 .cfa: $rsp 176 +
+STACK CFI 10b14c $rbx: .cfa -56 + ^
+STACK CFI INIT 10b4a0 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10b4ad $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10b4c3 .cfa: $rsp 80 +
+STACK CFI 10b4c6 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 10b530 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10b53d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10b553 .cfa: $rsp 64 +
+STACK CFI 10b559 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 136730 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10b5b0 6ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10b5b1 .cfa: $rsp 16 +
+STACK CFI 10b5b4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10b5b9 $r15: .cfa -24 + ^
+STACK CFI 10b5be $r14: .cfa -32 + ^
+STACK CFI 10b5c3 $r13: .cfa -40 + ^
+STACK CFI 10b5cc $r12: .cfa -48 + ^
+STACK CFI 10b5fc $rbx: .cfa -56 + ^
+STACK CFI INIT 10bc60 86 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10bc6d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10bc83 .cfa: $rsp 80 +
+STACK CFI 10bc86 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 10bcf0 6d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10bcfd $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10bd13 .cfa: $rsp 64 +
+STACK CFI 10bd16 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 136760 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10bd60 8a7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10bd61 .cfa: $rsp 16 +
+STACK CFI 10bd64 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10bdaa $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10c610 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10c660 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10c66c $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10c679 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 10c687 .cfa: $rsp 80 +
+STACK CFI 10c690 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10c6f0 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10c6fd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10c718 .cfa: $rsp 96 +
+STACK CFI 10c722 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10c7a0 40b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10c7a2 .cfa: $rsp 16 +
+STACK CFI 10c7a4 .cfa: $rsp 24 +
+STACK CFI 10c7a6 .cfa: $rsp 32 +
+STACK CFI 10c7a9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 10c7ab .cfa: $rsp 40 +
+STACK CFI 10c7ac .cfa: $rsp 48 +
+STACK CFI 10c7ad .cfa: $rsp 56 +
+STACK CFI 10c7b1 .cfa: $rsp 144 +
+STACK CFI 10c7c8 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10cbb0 369 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10cbb2 .cfa: $rsp 16 +
+STACK CFI 10cbb5 $r15: .cfa -16 + ^
+STACK CFI 10cbb7 .cfa: $rsp 24 +
+STACK CFI 10cbba $r14: .cfa -24 + ^
+STACK CFI 10cbbc .cfa: $rsp 32 +
+STACK CFI 10cbbf $r13: .cfa -32 + ^
+STACK CFI 10cbc1 .cfa: $rsp 40 +
+STACK CFI 10cbc2 .cfa: $rsp 48 +
+STACK CFI 10cbc3 .cfa: $rsp 56 +
+STACK CFI 10cbc5 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10cbc9 .cfa: $rsp 128 +
+STACK CFI INIT 136790 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10cf20 675 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10cf21 .cfa: $rsp 16 +
+STACK CFI 10cf24 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10cf29 $r15: .cfa -24 + ^
+STACK CFI 10cf35 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 10cf41 $r12: .cfa -48 + ^
+STACK CFI 10cf68 $rbx: .cfa -56 + ^
+STACK CFI INIT 10d5a0 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10d5ad $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10d5c8 .cfa: $rsp 96 +
+STACK CFI 10d5cd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10d640 7e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10d64d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10d65d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 10d66e .cfa: $rsp 80 +
+STACK CFI 10d671 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10d6c0 11b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10d6da .cfa: $rsp 96 +
+STACK CFI 10d6df $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 10d7e0 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10d7ed $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10d7fa $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 10d806 .cfa: $rsp 48 +
+STACK CFI 10d812 $r14: .cfa -16 + ^
+STACK CFI INIT 10d8b0 2a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10d8b1 .cfa: $rsp 16 +
+STACK CFI 10d8b4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10d8bf $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 10d8ca $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10d8ee $r12: .cfa -48 + ^
+STACK CFI INIT 10db60 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10db79 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10db82 .cfa: $rsp 48 +
+STACK CFI 10db94 $rbp: .cfa -40 + ^
+STACK CFI INIT 10dc30 146 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10dc32 .cfa: $rsp 16 +
+STACK CFI 10dc35 $r15: .cfa -16 + ^
+STACK CFI 10dc37 .cfa: $rsp 24 +
+STACK CFI 10dc3a $r14: .cfa -24 + ^
+STACK CFI 10dc3f .cfa: $rsp 32 +
+STACK CFI 10dc42 $r13: .cfa -32 + ^
+STACK CFI 10dc47 .cfa: $rsp 40 +
+STACK CFI 10dc48 .cfa: $rsp 48 +
+STACK CFI 10dc4b $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 10dc4c .cfa: $rsp 56 +
+STACK CFI 10dc4f $rbx: .cfa -56 + ^
+STACK CFI 10dc53 .cfa: $rsp 64 +
+STACK CFI INIT 10dd80 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10dd81 .cfa: $rsp 16 +
+STACK CFI 10dd88 $rbx: .cfa -16 + ^
+STACK CFI INIT 10ddd0 37c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ddd1 .cfa: $rsp 16 +
+STACK CFI 10ddd4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10dddf $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 10e150 115 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e15d $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10e172 .cfa: $rsp 64 +
+STACK CFI 10e176 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI INIT 10e270 180 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e271 .cfa: $rsp 16 +
+STACK CFI 10e274 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10e27b $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 10e280 $r13: .cfa -40 + ^
+STACK CFI 10e285 $r12: .cfa -48 + ^
+STACK CFI 10e299 $rbx: .cfa -56 + ^
+STACK CFI INIT 10e3f0 18 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e3f4 .cfa: $rsp 16 +
+STACK CFI INIT 10e410 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e430 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e460 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e480 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e4b0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e4d0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10e4f0 a5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e4f2 .cfa: $rsp 16 +
+STACK CFI 10e503 $r14: .cfa -16 + ^
+STACK CFI 10e50a .cfa: $rsp 24 +
+STACK CFI 10e50c .cfa: $rsp 32 +
+STACK CFI 10e50d .cfa: $rsp 40 +
+STACK CFI 10e50e .cfa: $rsp 48 +
+STACK CFI 10e512 .cfa: $rsp 64 +
+STACK CFI 10e517 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI INIT 10e5a0 107 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e5a1 .cfa: $rsp 16 +
+STACK CFI 10e5a2 .cfa: $rsp 24 +
+STACK CFI 10e5a9 .cfa: $rsp 160 +
+STACK CFI 10e5b7 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 10e6b0 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e6b4 .cfa: $rsp 16 +
+STACK CFI INIT 10e6e0 4c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e6e1 .cfa: $rsp 16 +
+STACK CFI 10e6e4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 10e6ed $r15: .cfa -24 + ^
+STACK CFI 10e6f5 $r14: .cfa -32 + ^
+STACK CFI 10e6fa $r13: .cfa -40 + ^
+STACK CFI 10e703 $r12: .cfa -48 + ^
+STACK CFI 10e707 $rbx: .cfa -56 + ^
+STACK CFI INIT 10ebb0 62 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ebbe .cfa: $rsp 48 +
+STACK CFI 10ebc5 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 10ec20 2e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ec2d $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10ec3a $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 10ec48 .cfa: $rsp 96 +
+STACK CFI 10ec55 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10ef10 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ef17 .cfa: $rsp 160 +
+STACK CFI INIT 10ef30 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ef3b .cfa: $rsp 16 +
+STACK CFI INIT 10ef60 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ef64 .cfa: $rsp 32 +
+STACK CFI INIT 10f332 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f340 .cfa: $rsp 0 +
+STACK CFI 10f344 .cfa: $rsp 128 +
+STACK CFI 10f34c .cfa: $rsp -128 +
+STACK CFI INIT 10f351 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f35f .cfa: $rsp 0 +
+STACK CFI 10f363 .cfa: $rsp 128 +
+STACK CFI 10f36b .cfa: $rsp -128 +
+STACK CFI INIT 10f370 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f37e .cfa: $rsp 0 +
+STACK CFI 10f382 .cfa: $rsp 128 +
+STACK CFI 10f38a .cfa: $rsp -128 +
+STACK CFI INIT 10f38f 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f39d .cfa: $rsp 0 +
+STACK CFI 10f3a1 .cfa: $rsp 128 +
+STACK CFI 10f3a9 .cfa: $rsp -128 +
+STACK CFI INIT 10f3ae 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f3bc .cfa: $rsp 0 +
+STACK CFI 10f3c0 .cfa: $rsp 128 +
+STACK CFI 10f3c8 .cfa: $rsp -128 +
+STACK CFI INIT 10f3cd 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f3db .cfa: $rsp 0 +
+STACK CFI 10f3df .cfa: $rsp 128 +
+STACK CFI 10f3e7 .cfa: $rsp -128 +
+STACK CFI INIT 10f3ec 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f3fa .cfa: $rsp 0 +
+STACK CFI 10f3fe .cfa: $rsp 128 +
+STACK CFI 10f406 .cfa: $rsp -128 +
+STACK CFI INIT 10f40b 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f419 .cfa: $rsp 0 +
+STACK CFI 10f41d .cfa: $rsp 128 +
+STACK CFI 10f425 .cfa: $rsp -128 +
+STACK CFI INIT 10efb0 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10efb4 .cfa: $rsp 16 +
+STACK CFI INIT 10efe0 5c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10efee .cfa: $rsp 32 +
+STACK CFI 10eff1 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI INIT 10f040 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f04d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 10f056 .cfa: $rsp 32 +
+STACK CFI 10f05c $r12: .cfa -16 + ^
+STACK CFI INIT 10f0b0 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f0bd $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 10f0c6 .cfa: $rsp 32 +
+STACK CFI 10f0cc $r12: .cfa -16 + ^
+STACK CFI INIT 10f120 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f121 .cfa: $rsp 16 +
+STACK CFI 10f124 $rbx: .cfa -16 + ^
+STACK CFI INIT 10f150 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10f160 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f164 .cfa: $rsp 16 +
+STACK CFI INIT 10f1d0 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f1d4 .cfa: $rsp 16 +
+STACK CFI INIT 10f250 70 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f254 .cfa: $rsp 16 +
+STACK CFI INIT 10f2c0 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f2c4 .cfa: $rsp 16 +
+STACK CFI INIT 10f430 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f431 .cfa: $rsp 16 +
+STACK CFI 10f434 $rbx: .cfa -16 + ^
+STACK CFI 10f438 .cfa: $rsp 32 +
+STACK CFI INIT 10f490 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f491 .cfa: $rsp 16 +
+STACK CFI 10f494 $rbx: .cfa -16 + ^
+STACK CFI 10f498 .cfa: $rsp 32 +
+STACK CFI INIT 10f5b4 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f5c2 .cfa: $rsp 0 +
+STACK CFI 10f5c6 .cfa: $rsp 128 +
+STACK CFI 10f5ce .cfa: $rsp -128 +
+STACK CFI INIT 10f5d0 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f5de .cfa: $rsp 0 +
+STACK CFI 10f5e2 .cfa: $rsp 128 +
+STACK CFI 10f5ea .cfa: $rsp -128 +
+STACK CFI INIT 10f4f0 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f4f4 .cfa: $rsp 16 +
+STACK CFI INIT 10f654 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f662 .cfa: $rsp 0 +
+STACK CFI 10f666 .cfa: $rsp 128 +
+STACK CFI 10f66e .cfa: $rsp -128 +
+STACK CFI INIT 10f670 1c .cfa: $rsp -128 + .ra: $rip
+STACK CFI 10f67e .cfa: $rsp 0 +
+STACK CFI 10f682 .cfa: $rsp 128 +
+STACK CFI 10f68a .cfa: $rsp -128 +
+STACK CFI INIT 10f5f0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f5f4 .cfa: $rsp 16 +
+STACK CFI INIT 10f690 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10f6a0 202 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f6b9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10f6cf .cfa: $rsp 432 +
+STACK CFI 10f6d4 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 10f8b0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f8b4 .cfa: $rsp 16 +
+STACK CFI INIT 10f900 168 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10f904 .cfa: $rsp 16 +
+STACK CFI INIT 10fa70 6f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10fa74 .cfa: $rsp 16 +
+STACK CFI INIT 10fae0 1ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10fae2 .cfa: $rsp 16 +
+STACK CFI 10fae4 .cfa: $rsp 24 +
+STACK CFI 10fae6 .cfa: $rsp 32 +
+STACK CFI 10fae9 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI 10faeb .cfa: $rsp 40 +
+STACK CFI 10faec .cfa: $rsp 48 +
+STACK CFI 10faef $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI 10faf2 .cfa: $rsp 56 +
+STACK CFI 10faf5 $rbx: .cfa -56 + ^
+STACK CFI 10fafc .cfa: $rsp 416 +
+STACK CFI INIT 10fcd0 4f6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10fcdd $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 10fcf8 .cfa: $rsp 816 +
+STACK CFI 10fd06 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^
+STACK CFI INIT 1101d0 ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1101d1 .cfa: $rsp 16 +
+STACK CFI 1101d4 $rbp: .cfa -16 + ^
+STACK CFI 1101d5 .cfa: $rsp 24 +
+STACK CFI 1101d8 $rbx: .cfa -24 + ^
+STACK CFI 1101dc .cfa: $rsp 48 +
+STACK CFI INIT 1102a0 259 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1102a2 .cfa: $rsp 16 +
+STACK CFI 1102a5 $r15: .cfa -16 + ^
+STACK CFI 1102a7 .cfa: $rsp 24 +
+STACK CFI 1102aa $r14: .cfa -24 + ^
+STACK CFI 1102ac .cfa: $rsp 32 +
+STACK CFI 1102ae .cfa: $rsp 40 +
+STACK CFI 1102af .cfa: $rsp 48 +
+STACK CFI 1102b0 .cfa: $rsp 56 +
+STACK CFI 1102b3 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1102ba .cfa: $rsp 416 +
+STACK CFI INIT 110500 23c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11050d $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 11052b .cfa: $rsp 416 +
+STACK CFI 110539 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^
+STACK CFI INIT 110841 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 11084f .cfa: $rsp 0 +
+STACK CFI 110853 .cfa: $rsp 128 +
+STACK CFI 11085b .cfa: $rsp -128 +
+STACK CFI INIT 110860 1f .cfa: $rsp -128 + .ra: $rip
+STACK CFI 11086e .cfa: $rsp 0 +
+STACK CFI 110872 .cfa: $rsp 128 +
+STACK CFI 11087a .cfa: $rsp -128 +
+STACK CFI INIT 110740 101 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11074d $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 11075b .cfa: $rsp 32 +
+STACK CFI 11078a $r12: .cfa -16 + ^
+STACK CFI INIT 110880 fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 110881 .cfa: $rsp 16 +
+STACK CFI 110889 $rbp: .cfa -16 + ^
+STACK CFI 11088a .cfa: $rsp 24 +
+STACK CFI 11088d $rbx: .cfa -24 + ^
+STACK CFI 11089b .cfa: $rsp 32 +
+STACK CFI INIT 110980 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 110990 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109a0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109b0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109c0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109d0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109e0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1109f0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 110a00 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 110a50 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 110a70 1d3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 110a72 .cfa: $rsp 16 +
+STACK CFI 110a75 $r15: .cfa -16 + ^
+STACK CFI 110a77 .cfa: $rsp 24 +
+STACK CFI 110a7a $r14: .cfa -24 + ^
+STACK CFI 110a7c .cfa: $rsp 32 +
+STACK CFI 110a7e .cfa: $rsp 40 +
+STACK CFI 110a7f .cfa: $rsp 48 +
+STACK CFI 110a80 .cfa: $rsp 56 +
+STACK CFI 110a84 .cfa: $rsp 160 +
+STACK CFI 110a8b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 110c50 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 110cc0 339 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 110cc2 .cfa: $rsp 16 +
+STACK CFI 110cc4 .cfa: $rsp 24 +
+STACK CFI 110cc6 .cfa: $rsp 32 +
+STACK CFI 110cc8 .cfa: $rsp 40 +
+STACK CFI 110cc9 .cfa: $rsp 48 +
+STACK CFI 110cca .cfa: $rsp 56 +
+STACK CFI 110ccd $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 110cd1 .cfa: $rsp 96 +
+STACK CFI INIT 111000 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111040 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 111060 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111061 .cfa: $rsp 16 +
+STACK CFI 111064 $rbx: .cfa -16 + ^
+STACK CFI 111071 .cfa: $rsp 32 +
+STACK CFI INIT 1110b0 4f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1110b1 .cfa: $rsp 16 +
+STACK CFI 1110b4 $rbx: .cfa -16 + ^
+STACK CFI 1110c2 .cfa: $rsp 32 +
+STACK CFI INIT 111100 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1367c0 74 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1367c1 .cfa: $rsp 16 +
+STACK CFI 1367c4 $rbx: .cfa -16 + ^
+STACK CFI INIT 111110 62 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111114 .cfa: $rsp 64 +
+STACK CFI INIT 136840 148 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 136842 .cfa: $rsp 16 +
+STACK CFI 136844 .cfa: $rsp 24 +
+STACK CFI 136846 .cfa: $rsp 32 +
+STACK CFI 136848 .cfa: $rsp 40 +
+STACK CFI 136849 .cfa: $rsp 48 +
+STACK CFI 13684a .cfa: $rsp 56 +
+STACK CFI 13684e .cfa: $rsp 80 +
+STACK CFI 136855 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI INIT 111180 21 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1111b0 52 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1111b4 .cfa: $rsp 48 +
+STACK CFI INIT 111210 3c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111214 .cfa: $rsp 48 +
+STACK CFI INIT 111250 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 111251 .cfa: $rsp 16 +
+STACK CFI 111254 $rbx: .cfa -16 + ^
+STACK CFI 11125b .cfa: $rsp 32 +
+STACK CFI INIT 1112a0 4fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1112a1 .cfa: $rsp 16 +
+STACK CFI 1112a4 $rbp: .cfa -16 + ^ .cfa: $rbp 16 +
+STACK CFI 1112ab $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 1112b0 $r13: .cfa -40 + ^
+STACK CFI 1112b5 $r12: .cfa -48 + ^
+STACK CFI 1112e5 $rbx: .cfa -56 + ^
+STACK CFI INIT 1117a0 d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1117b0 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1117b4 .cfa: $rsp 48 +
+STACK CFI INIT 1118a0 11 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1118c0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 1118f0 95 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1118f4 .cfa: $rsp 64 +
diff --git a/src/processor/testdata/symbols/libgcc_s.so.1/18B180F90887D8F8B5C35D185444AF4C0/libgcc_s.so.1.sym b/src/processor/testdata/symbols/libgcc_s.so.1/18B180F90887D8F8B5C35D185444AF4C0/libgcc_s.so.1.sym
new file mode 100644
index 0000000..c53f287
--- /dev/null
+++ b/src/processor/testdata/symbols/libgcc_s.so.1/18B180F90887D8F8B5C35D185444AF4C0/libgcc_s.so.1.sym
@@ -0,0 +1,897 @@
+MODULE Linux x86_64 18B180F90887D8F8B5C35D185444AF4C0 libgcc_s.so.1
+PUBLIC 2fe0 0 __multi3
+PUBLIC 3030 0 __negti2
+PUBLIC 3060 0 __lshrti3
+PUBLIC 30d0 0 __ashlti3
+PUBLIC 3140 0 __ashrti3
+PUBLIC 31b0 0 __cmpti2
+PUBLIC 31f0 0 __ucmpti2
+PUBLIC 3230 0 __clear_cache
+PUBLIC 3240 0 __absvdi2
+PUBLIC 3260 0 __absvsi2
+PUBLIC 3280 0 __absvti2
+PUBLIC 32b0 0 __addvdi3
+PUBLIC 32e0 0 __addvsi3
+PUBLIC 3310 0 __addvti3
+PUBLIC 3360 0 __subvdi3
+PUBLIC 3390 0 __subvsi3
+PUBLIC 33c0 0 __subvti3
+PUBLIC 3420 0 __mulvdi3
+PUBLIC 3440 0 __mulvsi3
+PUBLIC 3470 0 __mulvti3
+PUBLIC 36e0 0 __negvdi2
+PUBLIC 3710 0 __negvsi2
+PUBLIC 3730 0 __negvti2
+PUBLIC 3780 0 __ffsdi2
+PUBLIC 3790 0 __ffsti2
+PUBLIC 37b0 0 __clzdi2
+PUBLIC 37c0 0 __clzti2
+PUBLIC 37e0 0 __ctzdi2
+PUBLIC 37f0 0 __ctzti2
+PUBLIC 3810 0 __popcountdi2
+PUBLIC 3840 0 __popcountti2
+PUBLIC 3890 0 __paritydi2
+PUBLIC 38d0 0 __parityti2
+PUBLIC 3910 0 __powisf2
+PUBLIC 3960 0 __powidf2
+PUBLIC 39c0 0 __powixf2
+PUBLIC 3a20 0 __mulsc3
+PUBLIC 3cd0 0 __muldc3
+PUBLIC 3fc0 0 __mulxc3
+PUBLIC 4420 0 __divsc3
+PUBLIC 46f0 0 __divdc3
+PUBLIC 4a00 0 __divxc3
+PUBLIC 4d00 0 __bswapsi2
+PUBLIC 4d10 0 __bswapdi2
+PUBLIC 4d20 0 __clrsbdi2
+PUBLIC 4d50 0 __clrsbti2
+PUBLIC 4da0 0 __fixunssfdi
+PUBLIC 4dd0 0 __fixunsdfdi
+PUBLIC 4e00 0 __fixunsxfdi
+PUBLIC 4e70 0 __fixsfti
+PUBLIC 4eb0 0 __fixdfti
+PUBLIC 4ef0 0 __fixxfti
+PUBLIC 4f30 0 __fixunssfti
+PUBLIC 4fd0 0 __fixunsdfti
+PUBLIC 5070 0 __fixunsxfti
+PUBLIC 5260 0 __floattisf
+PUBLIC 5330 0 __floattidf
+PUBLIC 5400 0 __floattixf
+PUBLIC 5430 0 __floatuntisf
+PUBLIC 5520 0 __floatuntidf
+PUBLIC 5610 0 __floatuntixf
+PUBLIC 5650 0 __divti3
+PUBLIC 57f0 0 __modti3
+PUBLIC 59e0 0 __udivti3
+PUBLIC 5b10 0 __umodti3
+PUBLIC 5cb0 0 __udivmodti4
+PUBLIC 5f00 0 __addtf3
+PUBLIC 73d0 0 __divtf3
+PUBLIC 7e50 0 __multf3
+PUBLIC 8820 0 __negtf2
+PUBLIC 8b70 0 __subtf3
+PUBLIC a0e0 0 __unordtf2
+PUBLIC a190 0 __fixtfsi
+PUBLIC a2a0 0 __fixunstfsi
+PUBLIC a380 0 __floatsitf
+PUBLIC a470 0 __floatunsitf
+PUBLIC a550 0 __fixtfdi
+PUBLIC a6d0 0 __fixunstfdi
+PUBLIC a800 0 __floatditf
+PUBLIC a8f0 0 __floatunditf
+PUBLIC a9d0 0 __fixtfti
+PUBLIC abb0 0 __fixunstfti
+PUBLIC ad40 0 __floattitf
+PUBLIC b0d0 0 __floatuntitf
+PUBLIC b430 0 __extendsftf2
+PUBLIC b5a0 0 __extenddftf2
+PUBLIC b730 0 __extendxftf2
+PUBLIC b880 0 __trunctfsf2
+PUBLIC bd70 0 __trunctfdf2
+PUBLIC c2a0 0 __trunctfxf2
+PUBLIC c7b0 0 __gttf2
+PUBLIC c9e0 0 __letf2
+PUBLIC cbe0 0 __eqtf2
+PUBLIC cd40 0 __divtc3
+PUBLIC d3c0 0 __multc3
+PUBLIC da30 0 __powitf2
+PUBLIC dad0 0 __enable_execute_stack
+PUBLIC de60 0 _Unwind_GetGR
+PUBLIC deb0 0 _Unwind_GetCFA
+PUBLIC dec0 0 _Unwind_SetGR
+PUBLIC df10 0 _Unwind_GetIP
+PUBLIC df20 0 _Unwind_GetIPInfo
+PUBLIC df40 0 _Unwind_SetIP
+PUBLIC df50 0 _Unwind_GetLanguageSpecificData
+PUBLIC df60 0 _Unwind_GetRegionStart
+PUBLIC df70 0 _Unwind_FindEnclosingFunction
+PUBLIC dfa0 0 _Unwind_GetDataRelBase
+PUBLIC dfb0 0 _Unwind_GetTextRelBase
+PUBLIC fef0 0 _Unwind_RaiseException
+PUBLIC 10060 0 _Unwind_ForcedUnwind
+PUBLIC 10150 0 _Unwind_Resume
+PUBLIC 10230 0 _Unwind_Resume_or_Rethrow
+PUBLIC 10330 0 _Unwind_DeleteException
+PUBLIC 10350 0 _Unwind_Backtrace
+PUBLIC 11ac0 0 __register_frame_info_bases
+PUBLIC 11b50 0 __register_frame_info
+PUBLIC 11b60 0 __register_frame
+PUBLIC 11b90 0 __register_frame_info_table_bases
+PUBLIC 11c10 0 __register_frame_info_table
+PUBLIC 11c20 0 __register_frame_table
+PUBLIC 11c40 0 __deregister_frame_info_bases
+PUBLIC 11d60 0 __deregister_frame_info
+PUBLIC 11d70 0 __deregister_frame
+PUBLIC 11da0 0 _Unwind_Find_FDE
+PUBLIC 12160 0 __gcc_personality_v0
+PUBLIC 12420 0 __emutls_get_address
+PUBLIC 125a0 0 __emutls_register_common
+STACK CFI INIT 2bb0 2c0 .cfa: $rsp 16 + .ra: .cfa -8 + ^
+STACK CFI 2bb6 .cfa: $rsp 24 +
+STACK CFI INIT 2fe0 4b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3030 29 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3060 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 30d0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3140 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31b0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 31f0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3230 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3240 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3259 .cfa: $rsp 16 +
+STACK CFI INIT 3260 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3277 .cfa: $rsp 16 +
+STACK CFI INIT 3280 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32a0 .cfa: $rsp 16 +
+STACK CFI INIT 32b0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32d1 .cfa: $rsp 16 +
+STACK CFI INIT 32e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3300 .cfa: $rsp 16 +
+STACK CFI INIT 3310 45 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3317 .cfa: $rsp 16 +
+STACK CFI 3354 .cfa: $rsp 8 +
+STACK CFI INIT 3360 2e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3389 .cfa: $rsp 16 +
+STACK CFI INIT 3390 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33b0 .cfa: $rsp 16 +
+STACK CFI INIT 33c0 55 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33ca .cfa: $rsp 16 +
+STACK CFI 3414 .cfa: $rsp 8 +
+STACK CFI INIT 3420 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3435 .cfa: $rsp 16 +
+STACK CFI INIT 3440 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 345d .cfa: $rsp 16 +
+STACK CFI INIT 3470 26e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3477 .cfa: $rsp 160 +
+STACK CFI 34de .cfa: $rsp 8 +
+STACK CFI 34df .cfa: $rsp 160 +
+STACK CFI INIT 36e0 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36ff .cfa: $rsp 16 +
+STACK CFI INIT 3710 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3729 .cfa: $rsp 16 +
+STACK CFI INIT 3730 47 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3772 .cfa: $rsp 16 +
+STACK CFI INIT 3780 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3790 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37b0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37c0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37e0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 37f0 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3810 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3840 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3890 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 38d0 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3910 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3960 51 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 39c0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3a20 2a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3cd0 2ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3fc0 456 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4420 2cb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 46f0 30a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4a00 2fb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4d00 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4d10 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4d20 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4d50 4d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4da0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4dd0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4e00 6a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4e70 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4e84 .cfa: $rsp 16 +
+STACK CFI 4e9f .cfa: $rsp 8 +
+STACK CFI INIT 4eb0 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4ec4 .cfa: $rsp 16 +
+STACK CFI 4ee0 .cfa: $rsp 8 +
+STACK CFI INIT 4ef0 39 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4ef4 .cfa: $rsp 32 +
+STACK CFI 4f06 .cfa: $rsp 8 +
+STACK CFI 4f10 .cfa: $rsp 32 +
+STACK CFI 4f25 .cfa: $rsp 8 +
+STACK CFI INIT 4f30 9f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4fd0 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5070 1e1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5072 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 5074 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 5078 .cfa: $rsp 96 +
+STACK CFI 513a .cfa: $rsp 24 +
+STACK CFI 513c .cfa: $rsp 16 +
+STACK CFI 513e .cfa: $rsp 8 +
+STACK CFI 5140 .cfa: $rsp 96 +
+STACK CFI 51fe .cfa: $rsp 24 +
+STACK CFI 5200 .cfa: $rsp 16 +
+STACK CFI 5202 .cfa: $rsp 8 +
+STACK CFI 5208 .cfa: $rsp 96 +
+STACK CFI 5248 .cfa: $rsp 24 +
+STACK CFI 524e .cfa: $rsp 16 +
+STACK CFI 5250 .cfa: $rsp 8 +
+STACK CFI INIT 5260 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5330 ca .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5400 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5430 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5520 ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5610 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5650 19c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5651 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 56ee .cfa: $rsp 8 +
+STACK CFI 56f0 .cfa: $rsp 16 +
+STACK CFI INIT 57f0 1eb .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 57f2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 57fc $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 57fd $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 58a9 .cfa: $rsp 24 +
+STACK CFI 58aa .cfa: $rsp 16 +
+STACK CFI 58ac .cfa: $rsp 8 +
+STACK CFI 58b0 .cfa: $rsp 32 +
+STACK CFI INIT 59e0 12b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5b10 189 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5b11 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 5b1b $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 5b4e .cfa: $rsp 16 +
+STACK CFI 5b4f .cfa: $rsp 8 +
+STACK CFI 5b50 .cfa: $rsp 24 +
+STACK CFI 5b8f .cfa: $rsp 16 +
+STACK CFI 5b90 .cfa: $rsp 8 +
+STACK CFI 5b98 .cfa: $rsp 24 +
+STACK CFI 5bd5 .cfa: $rsp 16 +
+STACK CFI 5bd6 .cfa: $rsp 8 +
+STACK CFI 5be0 .cfa: $rsp 24 +
+STACK CFI 5c69 .cfa: $rsp 16 +
+STACK CFI 5c6a .cfa: $rsp 8 +
+STACK CFI 5c70 .cfa: $rsp 24 +
+STACK CFI INIT 5ca0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 5cb0 247 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5cd2 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI INIT 5f00 14c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5f02 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 5f11 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 5f13 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 5f15 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 5f16 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 5f17 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 5f1b .cfa: $rsp 72 +
+STACK CFI 6170 .cfa: $rsp 56 +
+STACK CFI 6171 .cfa: $rsp 48 +
+STACK CFI 6172 .cfa: $rsp 40 +
+STACK CFI 6174 .cfa: $rsp 32 +
+STACK CFI 6176 .cfa: $rsp 24 +
+STACK CFI 6178 .cfa: $rsp 16 +
+STACK CFI 617a .cfa: $rsp 8 +
+STACK CFI 6180 .cfa: $rsp 72 +
+STACK CFI INIT 73d0 a79 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 73d2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 73d4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 73d6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 73d8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 73d9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 73da $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 73de .cfa: $rsp 88 +
+STACK CFI 7790 .cfa: $rsp 56 +
+STACK CFI 7791 .cfa: $rsp 48 +
+STACK CFI 7792 .cfa: $rsp 40 +
+STACK CFI 7794 .cfa: $rsp 32 +
+STACK CFI 7796 .cfa: $rsp 24 +
+STACK CFI 7798 .cfa: $rsp 16 +
+STACK CFI 779a .cfa: $rsp 8 +
+STACK CFI 77a0 .cfa: $rsp 88 +
+STACK CFI INIT 7e50 9c7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e52 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7e54 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 7e56 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 7e58 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 7e59 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 7e5a $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 7e5e .cfa: $rsp 72 +
+STACK CFI 833b .cfa: $rsp 56 +
+STACK CFI 833c .cfa: $rsp 48 +
+STACK CFI 833d .cfa: $rsp 40 +
+STACK CFI 833f .cfa: $rsp 32 +
+STACK CFI 8341 .cfa: $rsp 24 +
+STACK CFI 8343 .cfa: $rsp 16 +
+STACK CFI 8345 .cfa: $rsp 8 +
+STACK CFI 8350 .cfa: $rsp 72 +
+STACK CFI INIT 8820 346 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8b70 1561 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8b72 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8b81 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8b83 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8b85 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 8b86 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 8b87 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 8b8b .cfa: $rsp 72 +
+STACK CFI 8f48 .cfa: $rsp 56 +
+STACK CFI 8f49 .cfa: $rsp 48 +
+STACK CFI 8f4a .cfa: $rsp 40 +
+STACK CFI 8f4c .cfa: $rsp 32 +
+STACK CFI 8f4e .cfa: $rsp 24 +
+STACK CFI 8f50 .cfa: $rsp 16 +
+STACK CFI 8f52 .cfa: $rsp 8 +
+STACK CFI 8f58 .cfa: $rsp 72 +
+STACK CFI INIT a0e0 ab .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a190 108 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a2a0 dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a380 ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a470 db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a550 171 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a6d0 123 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a800 ed .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a8f0 db .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a9d0 1dc .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9d1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aa31 .cfa: $rsp 8 +
+STACK CFI aa38 .cfa: $rsp 16 +
+STACK CFI aa84 .cfa: $rsp 8 +
+STACK CFI aa88 .cfa: $rsp 16 +
+STACK CFI aa92 .cfa: $rsp 8 +
+STACK CFI aa98 .cfa: $rsp 16 +
+STACK CFI ab2b .cfa: $rsp 8 +
+STACK CFI ab30 .cfa: $rsp 16 +
+STACK CFI INIT abb0 18a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ad40 38b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b0d0 35b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b430 16a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b5a0 18a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b730 14b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT b880 4e9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT bd70 528 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c2a0 510 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c2a1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c457 .cfa: $rsp 8 +
+STACK CFI c460 .cfa: $rsp 16 +
+STACK CFI INIT c7b0 225 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c7b1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c8aa .cfa: $rsp 8 +
+STACK CFI c8b0 .cfa: $rsp 16 +
+STACK CFI c8d6 .cfa: $rsp 8 +
+STACK CFI c8e0 .cfa: $rsp 16 +
+STACK CFI c91c .cfa: $rsp 8 +
+STACK CFI c921 .cfa: $rsp 16 +
+STACK CFI c937 .cfa: $rsp 8 +
+STACK CFI c940 .cfa: $rsp 16 +
+STACK CFI c956 .cfa: $rsp 8 +
+STACK CFI c960 .cfa: $rsp 16 +
+STACK CFI c9c5 .cfa: $rsp 8 +
+STACK CFI c9c6 .cfa: $rsp 16 +
+STACK CFI INIT c9e0 1f8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9e1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cace .cfa: $rsp 8 +
+STACK CFI cad0 .cfa: $rsp 16 +
+STACK CFI cae4 .cfa: $rsp 8 +
+STACK CFI cae8 .cfa: $rsp 16 +
+STACK CFI cb13 .cfa: $rsp 8 +
+STACK CFI cb18 .cfa: $rsp 16 +
+STACK CFI cb4d .cfa: $rsp 8 +
+STACK CFI cb4e .cfa: $rsp 16 +
+STACK CFI cb64 .cfa: $rsp 8 +
+STACK CFI cb68 .cfa: $rsp 16 +
+STACK CFI cbc9 .cfa: $rsp 8 +
+STACK CFI cbca .cfa: $rsp 16 +
+STACK CFI INIT cbe0 152 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT cd40 679 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cd42 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cd43 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI cd44 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI cd4b .cfa: $rsp 160 +
+STACK CFI ce4e .cfa: $rsp 32 +
+STACK CFI ce4f .cfa: $rsp 24 +
+STACK CFI ce50 .cfa: $rsp 16 +
+STACK CFI ce52 .cfa: $rsp 8 +
+STACK CFI ce58 .cfa: $rsp 160 +
+STACK CFI INIT d3c0 66a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d3ca $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI d3de $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 240 +
+STACK CFI d4d4 .cfa: $rsp 8 +
+STACK CFI d4d5 .cfa: $rsp 240 +
+STACK CFI INIT da30 97 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI da31 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI da3d $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI da45 .cfa: $rsp 64 +
+STACK CFI dac4 .cfa: $rsp 24 +
+STACK CFI dac5 .cfa: $rsp 16 +
+STACK CFI dac6 .cfa: $rsp 8 +
+STACK CFI INIT dad0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dae0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db30 13c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db3a $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI db45 $rbp: .cfa -24 + ^ .cfa: $rsp 64 +
+STACK CFI dbbf .cfa: $rsp 8 +
+STACK CFI dbc0 .cfa: $rsp 64 +
+STACK CFI INIT dc70 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dcf0 162 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dcf2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI dcf6 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI dcfa $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI dcfe .cfa: $rsp 48 +
+STACK CFI ddd6 .cfa: $rsp 32 +
+STACK CFI ddd7 .cfa: $rsp 24 +
+STACK CFI ddd8 .cfa: $rsp 16 +
+STACK CFI ddda .cfa: $rsp 8 +
+STACK CFI dde0 .cfa: $rsp 48 +
+STACK CFI de07 .cfa: $rsp 32 +
+STACK CFI de08 .cfa: $rsp 24 +
+STACK CFI de09 .cfa: $rsp 16 +
+STACK CFI de0b .cfa: $rsp 8 +
+STACK CFI de0c .cfa: $rsp 48 +
+STACK CFI de4d .cfa: $rsp 32 +
+STACK CFI de4e .cfa: $rsp 24 +
+STACK CFI de4f .cfa: $rsp 16 +
+STACK CFI de51 .cfa: $rsp 8 +
+STACK CFI INIT de60 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de64 .cfa: $rsp 16 +
+STACK CFI de9e .cfa: $rsp 8 +
+STACK CFI dea0 .cfa: $rsp 16 +
+STACK CFI dea7 .cfa: $rsp 8 +
+STACK CFI INIT deb0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dec0 50 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dec4 .cfa: $rsp 16 +
+STACK CFI df02 .cfa: $rsp 8 +
+STACK CFI df08 .cfa: $rsp 16 +
+STACK CFI df0f .cfa: $rsp 8 +
+STACK CFI INIT df10 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT df20 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT df40 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT df50 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT df60 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT df70 24 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df74 .cfa: $rsp 48 +
+STACK CFI df8e .cfa: $rsp 8 +
+STACK CFI df90 .cfa: $rsp 48 +
+STACK CFI INIT dfa0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dfb0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT dfc0 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI dfc4 .cfa: $rsp 16 +
+STACK CFI dffa .cfa: $rsp 8 +
+STACK CFI e000 .cfa: $rsp 16 +
+STACK CFI e017 .cfa: $rsp 8 +
+STACK CFI e020 .cfa: $rsp 16 +
+STACK CFI e027 .cfa: $rsp 8 +
+STACK CFI e030 .cfa: $rsp 16 +
+STACK CFI e037 .cfa: $rsp 8 +
+STACK CFI INIT e040 6c6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e042 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e047 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e049 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e04b $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e04f $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e050 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI e057 .cfa: $rsp 608 +
+STACK CFI e0eb .cfa: $rsp 56 +
+STACK CFI e0ef .cfa: $rsp 48 +
+STACK CFI e0f0 .cfa: $rsp 40 +
+STACK CFI e0f2 .cfa: $rsp 32 +
+STACK CFI e0f4 .cfa: $rsp 24 +
+STACK CFI e0f6 .cfa: $rsp 16 +
+STACK CFI e0f8 .cfa: $rsp 8 +
+STACK CFI e100 .cfa: $rsp 608 +
+STACK CFI INIT e710 3a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e712 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e719 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e71e $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e720 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e721 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e722 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI e729 .cfa: $rsp 368 +
+STACK CFI e8d0 .cfa: $rsp 56 +
+STACK CFI e8d1 .cfa: $rsp 48 +
+STACK CFI e8d2 .cfa: $rsp 40 +
+STACK CFI e8d4 .cfa: $rsp 32 +
+STACK CFI e8d6 .cfa: $rsp 24 +
+STACK CFI e8d8 .cfa: $rsp 16 +
+STACK CFI e8da .cfa: $rsp 8 +
+STACK CFI e8e0 .cfa: $rsp 368 +
+STACK CFI INIT eac0 a2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eaca $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI ead1 .cfa: $rsp 32 +
+STACK CFI eb40 .cfa: $rsp 8 +
+STACK CFI eb48 .cfa: $rsp 32 +
+STACK CFI eb61 .cfa: $rsp 8 +
+STACK CFI INIT eb70 85e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb71 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI eb77 .cfa: $rbp 16 +
+STACK CFI eb79 $r15: .cfa -24 + ^
+STACK CFI eb82 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI eb8a $rbx: .cfa -56 + ^
+STACK CFI ec4c .cfa: $rsp 8 +
+STACK CFI ec50 .cfa: $rbp 16 +
+STACK CFI INIT f3d0 64f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3d2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI f3d9 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI f3db $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI f3e3 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI f3e4 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI f3e8 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI f3ec .cfa: $rsp 96 +
+STACK CFI f619 .cfa: $rsp 56 +
+STACK CFI f61a .cfa: $rsp 48 +
+STACK CFI f61b .cfa: $rsp 40 +
+STACK CFI f61d .cfa: $rsp 32 +
+STACK CFI f61f .cfa: $rsp 24 +
+STACK CFI f621 .cfa: $rsp 16 +
+STACK CFI f623 .cfa: $rsp 8 +
+STACK CFI f628 .cfa: $rsp 96 +
+STACK CFI f710 .cfa: $rsp 56 +
+STACK CFI f713 .cfa: $rsp 48 +
+STACK CFI f714 .cfa: $rsp 40 +
+STACK CFI f716 .cfa: $rsp 32 +
+STACK CFI f718 .cfa: $rsp 24 +
+STACK CFI f71a .cfa: $rsp 16 +
+STACK CFI f71c .cfa: $rsp 8 +
+STACK CFI f71d .cfa: $rsp 96 +
+STACK CFI f91d .cfa: $rsp 56 +
+STACK CFI f923 .cfa: $rsp 48 +
+STACK CFI f924 .cfa: $rsp 40 +
+STACK CFI f926 .cfa: $rsp 32 +
+STACK CFI f928 .cfa: $rsp 24 +
+STACK CFI f92a .cfa: $rsp 16 +
+STACK CFI f92c .cfa: $rsp 8 +
+STACK CFI f92d .cfa: $rsp 96 +
+STACK CFI INIT fa20 20a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fa22 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI fa2c $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI fa30 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI fa3a .cfa: $rsp 432 +
+STACK CFI fbde .cfa: $rsp 32 +
+STACK CFI fbdf .cfa: $rsp 24 +
+STACK CFI fbe0 .cfa: $rsp 16 +
+STACK CFI fbe2 .cfa: $rsp 8 +
+STACK CFI fbe8 .cfa: $rsp 432 +
+STACK CFI INIT fc30 ea .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fc32 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI fc34 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI fc36 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI fc3a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI fc3e $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI fc45 .cfa: $rsp 432 +
+STACK CFI fcfc .cfa: $rsp 48 +
+STACK CFI fcff .cfa: $rsp 40 +
+STACK CFI fd00 .cfa: $rsp 32 +
+STACK CFI fd02 .cfa: $rsp 24 +
+STACK CFI fd04 .cfa: $rsp 16 +
+STACK CFI fd06 .cfa: $rsp 8 +
+STACK CFI fd10 .cfa: $rsp 432 +
+STACK CFI INIT fd20 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fd22 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI fd24 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI fd28 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI fd29 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI fd33 .cfa: $rsp 432 +
+STACK CFI fdb7 .cfa: $rsp 40 +
+STACK CFI fdb8 .cfa: $rsp 32 +
+STACK CFI fdb9 .cfa: $rsp 24 +
+STACK CFI fdbb .cfa: $rsp 16 +
+STACK CFI fdbd .cfa: $rsp 8 +
+STACK CFI fdbe .cfa: $rsp 432 +
+STACK CFI INIT fdd0 110 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fdd1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI fde9 .cfa: $rsp 640 +
+STACK CFI fecd .cfa: $rsp 16 +
+STACK CFI fed1 .cfa: $rsp 8 +
+STACK CFI fed2 .cfa: $rsp 640 +
+STACK CFI fedb .cfa: $rsp 16 +
+STACK CFI fedf .cfa: $rsp 8 +
+STACK CFI INIT fee0 1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fef0 167 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fef1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI fef4 .cfa: $rbp 16 +
+STACK CFI fefe $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI ff07 $r12: .cfa -48 + ^
+STACK CFI ff0e $rbx: .cfa -56 + ^
+STACK CFI ff1e $rax: .cfa -72 + ^ $rdx: .cfa -64 + ^
+STACK CFI ffa5 .cfa: $rsp 8 +
+STACK CFI ffb0 .cfa: $rbp 16 +
+STACK CFI 10053 $rbp: $rbp .cfa: $rcx 8 +
+STACK CFI INIT 10060 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10061 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10064 .cfa: $rbp 16 +
+STACK CFI 10074 $r12: .cfa -48 + ^ $rax: .cfa -72 + ^ $rbx: .cfa -56 + ^ $rdx: .cfa -64 + ^
+STACK CFI 10083 $r13: .cfa -40 + ^ $r14: .cfa -32 + ^
+STACK CFI 10091 $r15: .cfa -24 + ^
+STACK CFI 100ec .cfa: $rsp 8 +
+STACK CFI 100ed .cfa: $rbp 16 +
+STACK CFI 10142 $rbp: $rbp .cfa: $rcx 8 +
+STACK CFI INIT 10150 d7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10151 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10154 .cfa: $rbp 16 +
+STACK CFI 1015c $rbx: .cfa -56 + ^ $rdx: .cfa -64 + ^
+STACK CFI 10177 $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $rax: .cfa -72 + ^
+STACK CFI 10189 $r15: .cfa -24 + ^
+STACK CFI 10223 $rbp: $rbp .cfa: $rcx 8 +
+STACK CFI INIT 10230 f1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10231 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10234 .cfa: $rbp 16 +
+STACK CFI 1023c $rax: .cfa -72 + ^ $rbx: .cfa -56 + ^
+STACK CFI 1025a $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rdx: .cfa -64 + ^
+STACK CFI 1027b .cfa: $rsp 8 +
+STACK CFI 10280 .cfa: $rbp 16 +
+STACK CFI 1031d $rbp: $rbp .cfa: $rcx 8 +
+STACK CFI INIT 10330 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10350 99 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10351 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10354 .cfa: $rbp 16 +
+STACK CFI 1035a $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^
+STACK CFI 10366 $r12: .cfa -48 + ^
+STACK CFI 10375 $rbx: .cfa -56 + ^
+STACK CFI 103e8 .cfa: $rsp 8 +
+STACK CFI INIT 103f0 46 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10440 1b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 10460 a3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10462 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10464 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 10469 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 1046e $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 10472 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 10473 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 1047b .cfa: $rsp 80 +
+STACK CFI 104cd .cfa: $rsp 56 +
+STACK CFI 104ce .cfa: $rsp 48 +
+STACK CFI 104cf .cfa: $rsp 40 +
+STACK CFI 104d1 .cfa: $rsp 32 +
+STACK CFI 104d3 .cfa: $rsp 24 +
+STACK CFI 104d5 .cfa: $rsp 16 +
+STACK CFI 104d7 .cfa: $rsp 8 +
+STACK CFI 104e0 .cfa: $rsp 80 +
+STACK CFI INIT 10510 c8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10512 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10518 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1051a $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 1051f $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 10523 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 10524 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 1052b .cfa: $rsp 80 +
+STACK CFI 105cd .cfa: $rsp 56 +
+STACK CFI 105ce .cfa: $rsp 48 +
+STACK CFI 105cf .cfa: $rsp 40 +
+STACK CFI 105d1 .cfa: $rsp 32 +
+STACK CFI 105d3 .cfa: $rsp 24 +
+STACK CFI 105d5 .cfa: $rsp 16 +
+STACK CFI 105d7 .cfa: $rsp 8 +
+STACK CFI INIT 105e0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 105e4 .cfa: $rsp 16 +
+STACK CFI 1061e .cfa: $rsp 8 +
+STACK CFI 10620 .cfa: $rsp 16 +
+STACK CFI 10629 .cfa: $rsp 8 +
+STACK CFI 10630 .cfa: $rsp 16 +
+STACK CFI 10639 .cfa: $rsp 8 +
+STACK CFI 10640 .cfa: $rsp 16 +
+STACK CFI 10646 .cfa: $rsp 8 +
+STACK CFI INIT 10650 13c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1065a $r12: .cfa -16 + ^ $rbx: .cfa -32 + ^
+STACK CFI 10665 $rbp: .cfa -24 + ^ .cfa: $rsp 64 +
+STACK CFI 106df .cfa: $rsp 8 +
+STACK CFI 106e0 .cfa: $rsp 64 +
+STACK CFI INIT 10790 109 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10791 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10799 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1079d .cfa: $rsp 48 +
+STACK CFI 107c5 .cfa: $rsp 24 +
+STACK CFI 107c6 .cfa: $rsp 16 +
+STACK CFI 107c7 .cfa: $rsp 8 +
+STACK CFI 107d0 .cfa: $rsp 48 +
+STACK CFI 10867 .cfa: $rsp 24 +
+STACK CFI 10868 .cfa: $rsp 16 +
+STACK CFI 10869 .cfa: $rsp 8 +
+STACK CFI 10870 .cfa: $rsp 48 +
+STACK CFI INIT 108a0 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 108a4 .cfa: $rsp 16 +
+STACK CFI 108db .cfa: $rsp 8 +
+STACK CFI 108e0 .cfa: $rsp 16 +
+STACK CFI 108e7 .cfa: $rsp 8 +
+STACK CFI 108f0 .cfa: $rsp 16 +
+STACK CFI 108f7 .cfa: $rsp 8 +
+STACK CFI 10900 .cfa: $rsp 16 +
+STACK CFI INIT 10910 178 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10912 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10917 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 10919 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 1091b $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 1091c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 1091d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 10921 .cfa: $rsp 112 +
+STACK CFI 10a72 .cfa: $rsp 56 +
+STACK CFI 10a73 .cfa: $rsp 48 +
+STACK CFI 10a74 .cfa: $rsp 40 +
+STACK CFI 10a76 .cfa: $rsp 32 +
+STACK CFI 10a78 .cfa: $rsp 24 +
+STACK CFI 10a7a .cfa: $rsp 16 +
+STACK CFI 10a7c .cfa: $rsp 8 +
+STACK CFI 10a7d .cfa: $rsp 112 +
+STACK CFI INIT 10a90 157 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10a92 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10a9b $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 10a9d $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 10aa5 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 10aaa $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 10aab $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 10ab5 .cfa: $rsp 112 +
+STACK CFI 10bdc .cfa: $rsp 56 +
+STACK CFI 10bdd .cfa: $rsp 48 +
+STACK CFI 10bde .cfa: $rsp 40 +
+STACK CFI 10be0 .cfa: $rsp 32 +
+STACK CFI 10be2 .cfa: $rsp 24 +
+STACK CFI 10be4 .cfa: $rsp 16 +
+STACK CFI 10be6 .cfa: $rsp 8 +
+STACK CFI INIT 10bf0 b0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10bfa $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 10c07 $r13: .cfa -24 + ^ $r14: .cfa -16 + ^
+STACK CFI 10c13 $r12: .cfa -32 + ^ .cfa: $rsp 64 +
+STACK CFI 10c9f .cfa: $rsp 8 +
+STACK CFI INIT 10ca0 194 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10ca2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10cac $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 10cb1 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 10cb6 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 10cb7 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 10cbe $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 10cc8 .cfa: $rsp 112 +
+STACK CFI 10e1c .cfa: $rsp 56 +
+STACK CFI 10e20 .cfa: $rsp 48 +
+STACK CFI 10e21 .cfa: $rsp 40 +
+STACK CFI 10e23 .cfa: $rsp 32 +
+STACK CFI 10e25 .cfa: $rsp 24 +
+STACK CFI 10e27 .cfa: $rsp 16 +
+STACK CFI 10e29 .cfa: $rsp 8 +
+STACK CFI 10e30 .cfa: $rsp 112 +
+STACK CFI INIT 10e40 6b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10e44 .cfa: $rsp 16 +
+STACK CFI 10e7b .cfa: $rsp 8 +
+STACK CFI 10e80 .cfa: $rsp 16 +
+STACK CFI 10e87 .cfa: $rsp 8 +
+STACK CFI 10e90 .cfa: $rsp 16 +
+STACK CFI 10e97 .cfa: $rsp 8 +
+STACK CFI 10ea0 .cfa: $rsp 16 +
+STACK CFI INIT 10eb0 673 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 10eb2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 10eb4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 10eb6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 10eb8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 10eb9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 10eba $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 10ec1 .cfa: $rsp 144 +
+STACK CFI 10f3e .cfa: $rsp 56 +
+STACK CFI 10f42 .cfa: $rsp 48 +
+STACK CFI 10f43 .cfa: $rsp 40 +
+STACK CFI 10f45 .cfa: $rsp 32 +
+STACK CFI 10f47 .cfa: $rsp 24 +
+STACK CFI 10f49 .cfa: $rsp 16 +
+STACK CFI 10f4b .cfa: $rsp 8 +
+STACK CFI 10f50 .cfa: $rsp 144 +
+STACK CFI INIT 11530 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1153a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 11547 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI 11553 $r14: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI 115fe .cfa: $rsp 8 +
+STACK CFI INIT 11600 4b3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11602 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11604 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 11606 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 11608 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 11609 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 1160a $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 11611 .cfa: $rsp 160 +
+STACK CFI 11703 .cfa: $rsp 56 +
+STACK CFI 11706 .cfa: $rsp 48 +
+STACK CFI 11707 .cfa: $rsp 40 +
+STACK CFI 11709 .cfa: $rsp 32 +
+STACK CFI 1170b .cfa: $rsp 24 +
+STACK CFI 1170d .cfa: $rsp 16 +
+STACK CFI 1170f .cfa: $rsp 8 +
+STACK CFI 11710 .cfa: $rsp 160 +
+STACK CFI INIT 11ac0 8a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11b06 .cfa: $rsp 32 +
+STACK CFI 11b32 .cfa: $rsp 8 +
+STACK CFI INIT 11b50 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11b60 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11b61 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11b6b .cfa: $rsp 8 +
+STACK CFI 11b70 .cfa: $rsp 16 +
+STACK CFI 11b81 .cfa: $rsp 8 +
+STACK CFI INIT 11b90 72 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11bab $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11be9 .cfa: $rsp 8 +
+STACK CFI 11bee .cfa: $rsp 16 +
+STACK CFI 11bfd .cfa: $rsp 8 +
+STACK CFI INIT 11c10 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11c20 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11c21 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11c35 .cfa: $rsp 8 +
+STACK CFI INIT 11c40 113 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11c42 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11c46 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 11c4a $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 11d03 .cfa: $rsp 24 +
+STACK CFI 11d04 .cfa: $rsp 16 +
+STACK CFI 11d06 .cfa: $rsp 8 +
+STACK CFI 11d10 .cfa: $rsp 32 +
+STACK CFI 11d26 .cfa: $rsp 24 +
+STACK CFI 11d27 .cfa: $rsp 16 +
+STACK CFI 11d29 .cfa: $rsp 8 +
+STACK CFI 11d30 .cfa: $rsp 32 +
+STACK CFI INIT 11d60 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 11d70 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11d84 .cfa: $rsp 16 +
+STACK CFI 11d8d .cfa: $rsp 8 +
+STACK CFI INIT 11da0 1f8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11da2 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 11da4 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 11da9 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 11daa $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 11dae $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 11db2 .cfa: $rsp 112 +
+STACK CFI 11e7d .cfa: $rsp 48 +
+STACK CFI 11e81 .cfa: $rsp 40 +
+STACK CFI 11e82 .cfa: $rsp 32 +
+STACK CFI 11e84 .cfa: $rsp 24 +
+STACK CFI 11e86 .cfa: $rsp 16 +
+STACK CFI 11e88 .cfa: $rsp 8 +
+STACK CFI 11e89 .cfa: $rsp 112 +
+STACK CFI INIT 11fa0 7c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 11fa4 .cfa: $rsp 16 +
+STACK CFI 11fda .cfa: $rsp 8 +
+STACK CFI 11fe0 .cfa: $rsp 16 +
+STACK CFI 11ff7 .cfa: $rsp 8 +
+STACK CFI 12000 .cfa: $rsp 16 +
+STACK CFI 12007 .cfa: $rsp 8 +
+STACK CFI 12010 .cfa: $rsp 16 +
+STACK CFI 12017 .cfa: $rsp 8 +
+STACK CFI INIT 12020 13c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 12025 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1207f .cfa: $rsp 8 +
+STACK CFI 12080 .cfa: $rsp 16 +
+STACK CFI 1215b .cfa: $rsp 8 +
+STACK CFI INIT 12160 242 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 12182 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 12187 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1218c $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 12190 $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 12191 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 12195 .cfa: $rsp 128 +
+STACK CFI 12313 .cfa: $rsp 48 +
+STACK CFI 12314 $rbx: $rbx .cfa: $rsp 40 +
+STACK CFI 12315 $rbp: $rbp .cfa: $rsp 32 +
+STACK CFI 12317 $r12: $r12 .cfa: $rsp 24 +
+STACK CFI 12319 $r13: $r13 .cfa: $rsp 16 +
+STACK CFI 1231b $r14: $r14 .cfa: $rsp 8 +
+STACK CFI 12320 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^ .cfa: $rsp 128 +
+STACK CFI INIT 123b0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 123c2 .cfa: $rsp 16 +
+STACK CFI 123cf .cfa: $rsp 8 +
+STACK CFI 123d0 .cfa: $rsp 16 +
+STACK CFI INIT 2e70 6e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2e71 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2e72 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2e76 .cfa: $rsp 32 +
+STACK CFI 2edb .cfa: $rsp 24 +
+STACK CFI 2edc .cfa: $rsp 16 +
+STACK CFI 2edd .cfa: $rsp 8 +
+STACK CFI INIT 123e0 40 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 123e2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 123e3 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 123e7 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 12415 .cfa: $rsp 24 +
+STACK CFI 12419 .cfa: $rsp 16 +
+STACK CFI 1241b .cfa: $rsp 8 +
+STACK CFI INIT 12420 17f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1242a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI 12440 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI 1246f .cfa: $rsp 8 +
+STACK CFI 12470 .cfa: $rsp 48 +
+STACK CFI INIT 125a0 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
diff --git a/src/processor/testdata/symbols/microdump/breakpad_unittests/D6D1FEC9A15DE7F38A236898871A2E770/breakpad_unittests.sym b/src/processor/testdata/symbols/microdump/breakpad_unittests/D6D1FEC9A15DE7F38A236898871A2E770/breakpad_unittests.sym
new file mode 100644
index 0000000..ad38c2e
--- /dev/null
+++ b/src/processor/testdata/symbols/microdump/breakpad_unittests/D6D1FEC9A15DE7F38A236898871A2E770/breakpad_unittests.sym
@@ -0,0 +1,82243 @@
+MODULE Linux arm64 D6D1FEC9A15DE7F38A236898871A2E770 breakpad_unittests
+FILE 0 /s/clank/src/out/Release/../../breakpad/src/client/linux/crash_generation/crash_generation_client.cc
+FILE 1 /s/clank/src/out/Release/../../breakpad/src/client/linux/dump_writer_common/seccomp_unwinder.cc
+FILE 2 /s/clank/src/out/Release/../../breakpad/src/client/linux/dump_writer_common/thread_info.cc
+FILE 3 /s/clank/src/out/Release/../../breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+FILE 4 /s/clank/src/out/Release/../../breakpad/src/client/linux/handler/exception_handler.cc
+FILE 5 /s/clank/src/out/Release/../../breakpad/src/client/linux/handler/exception_handler.h
+FILE 6 /s/clank/src/out/Release/../../breakpad/src/client/linux/handler/exception_handler_unittest.cc
+FILE 7 /s/clank/src/out/Release/../../breakpad/src/client/linux/handler/minidump_descriptor.cc
+FILE 8 /s/clank/src/out/Release/../../breakpad/src/client/linux/handler/minidump_descriptor.h
+FILE 9 /s/clank/src/out/Release/../../breakpad/src/client/linux/log/log.cc
+FILE 10 /s/clank/src/out/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+FILE 11 /s/clank/src/out/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+FILE 12 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/cpu_set.h
+FILE 13 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/cpu_set_unittest.cc
+FILE 14 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/directory_reader.h
+FILE 15 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/directory_reader_unittest.cc
+FILE 16 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/line_reader.h
+FILE 17 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/line_reader_unittest.cc
+FILE 18 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+FILE 19 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper.h
+FILE 20 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+FILE 21 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+FILE 22 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_dumper.h
+FILE 23 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+FILE 24 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h
+FILE 25 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+FILE 26 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+FILE 27 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+FILE 28 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+FILE 29 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h
+FILE 30 /s/clank/src/out/Release/../../breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+FILE 31 /s/clank/src/out/Release/../../breakpad/src/client/minidump_file_writer-inl.h
+FILE 32 /s/clank/src/out/Release/../../breakpad/src/client/minidump_file_writer.cc
+FILE 33 /s/clank/src/out/Release/../../breakpad/src/client/minidump_file_writer.h
+FILE 34 /s/clank/src/out/Release/../../breakpad/src/common/android/breakpad_getcontext_unittest.cc
+FILE 35 /s/clank/src/out/Release/../../breakpad/src/common/android/testing/mkdtemp.h
+FILE 36 /s/clank/src/out/Release/../../breakpad/src/common/android/testing/pthread_fixes.h
+FILE 37 /s/clank/src/out/Release/../../breakpad/src/common/convert_UTF.c
+FILE 38 /s/clank/src/out/Release/../../breakpad/src/common/linux/elf_core_dump.cc
+FILE 39 /s/clank/src/out/Release/../../breakpad/src/common/linux/elf_core_dump_unittest.cc
+FILE 40 /s/clank/src/out/Release/../../breakpad/src/common/linux/elfutils-inl.h
+FILE 41 /s/clank/src/out/Release/../../breakpad/src/common/linux/elfutils.cc
+FILE 42 /s/clank/src/out/Release/../../breakpad/src/common/linux/file_id.cc
+FILE 43 /s/clank/src/out/Release/../../breakpad/src/common/linux/file_id_unittest.cc
+FILE 44 /s/clank/src/out/Release/../../breakpad/src/common/linux/guid_creator.cc
+FILE 45 /s/clank/src/out/Release/../../breakpad/src/common/linux/linux_libc_support.cc
+FILE 46 /s/clank/src/out/Release/../../breakpad/src/common/linux/linux_libc_support_unittest.cc
+FILE 47 /s/clank/src/out/Release/../../breakpad/src/common/linux/memory_mapped_file.cc
+FILE 48 /s/clank/src/out/Release/../../breakpad/src/common/linux/safe_readlink.cc
+FILE 49 /s/clank/src/out/Release/../../breakpad/src/common/linux/safe_readlink.h
+FILE 50 /s/clank/src/out/Release/../../breakpad/src/common/linux/synth_elf.cc
+FILE 51 /s/clank/src/out/Release/../../breakpad/src/common/linux/synth_elf.h
+FILE 52 /s/clank/src/out/Release/../../breakpad/src/common/linux/tests/auto_testfile.h
+FILE 53 /s/clank/src/out/Release/../../breakpad/src/common/linux/tests/crash_generator.cc
+FILE 54 /s/clank/src/out/Release/../../breakpad/src/common/memory.h
+FILE 55 /s/clank/src/out/Release/../../breakpad/src/common/memory_range.h
+FILE 56 /s/clank/src/out/Release/../../breakpad/src/common/memory_unittest.cc
+FILE 57 /s/clank/src/out/Release/../../breakpad/src/common/scoped_ptr.h
+FILE 58 /s/clank/src/out/Release/../../breakpad/src/common/simple_string_dictionary.h
+FILE 59 /s/clank/src/out/Release/../../breakpad/src/common/simple_string_dictionary_unittest.cc
+FILE 60 /s/clank/src/out/Release/../../breakpad/src/common/string_conversion.cc
+FILE 61 /s/clank/src/out/Release/../../breakpad/src/common/test_assembler.cc
+FILE 62 /s/clank/src/out/Release/../../breakpad/src/common/test_assembler.h
+FILE 63 /s/clank/src/out/Release/../../breakpad/src/common/tests/auto_tempdir.h
+FILE 64 /s/clank/src/out/Release/../../breakpad/src/common/tests/file_utils.cc
+FILE 65 /s/clank/src/out/Release/../../breakpad/src/google_breakpad/processor/minidump.h
+FILE 66 /s/clank/src/out/Release/../../breakpad/src/processor/basic_code_module.h
+FILE 67 /s/clank/src/out/Release/../../breakpad/src/processor/basic_code_modules.cc
+FILE 68 /s/clank/src/out/Release/../../breakpad/src/processor/dump_context.cc
+FILE 69 /s/clank/src/out/Release/../../breakpad/src/processor/dump_object.cc
+FILE 70 /s/clank/src/out/Release/../../breakpad/src/processor/linked_ptr.h
+FILE 71 /s/clank/src/out/Release/../../breakpad/src/processor/logging.cc
+FILE 72 /s/clank/src/out/Release/../../breakpad/src/processor/logging.h
+FILE 73 /s/clank/src/out/Release/../../breakpad/src/processor/minidump.cc
+FILE 74 /s/clank/src/out/Release/../../breakpad/src/processor/pathname_stripper.cc
+FILE 75 /s/clank/src/out/Release/../../breakpad/src/processor/range_map-inl.h
+FILE 76 /s/clank/src/out/Release/../../breakpad/src/processor/range_map.h
+FILE 77 /s/clank/src/out/Release/../../breakpad/src/tools/linux/md2core/minidump_memory_range.h
+FILE 78 /s/clank/src/out/Release/../../breakpad/src/tools/linux/md2core/minidump_memory_range_unittest.cc
+FILE 79 /s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest-message.h
+FILE 80 /s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest-printers.h
+FILE 81 /s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest-test-part.h
+FILE 82 /s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest.h
+FILE 83 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-death-test-internal.h
+FILE 84 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-filepath.h
+FILE 85 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-internal.h
+FILE 86 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-param-util.h
+FILE 87 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-port.h
+FILE 88 /s/clank/src/out/Release/../../testing/gtest/include/gtest/internal/gtest-type-util.h
+FILE 89 /s/clank/src/out/Release/../../testing/gtest/src/gtest-death-test.cc
+FILE 90 /s/clank/src/out/Release/../../testing/gtest/src/gtest-filepath.cc
+FILE 91 /s/clank/src/out/Release/../../testing/gtest/src/gtest-internal-inl.h
+FILE 92 /s/clank/src/out/Release/../../testing/gtest/src/gtest-port.cc
+FILE 93 /s/clank/src/out/Release/../../testing/gtest/src/gtest-printers.cc
+FILE 94 /s/clank/src/out/Release/../../testing/gtest/src/gtest-test-part.cc
+FILE 95 /s/clank/src/out/Release/../../testing/gtest/src/gtest.cc
+FILE 96 /s/clank/src/out/Release/../../testing/gtest/src/gtest_main.cc
+FILE 97 /s/clank/src/out/Release/../../third_party/lss/linux_syscall_support.h
+FILE 98 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algo.h
+FILE 99 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.c
+FILE 100 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.h
+FILE 101 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_alloc.h
+FILE 102 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_codecvt.h
+FILE 103 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_construct.h
+FILE 104 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.c
+FILE 105 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.h
+FILE 106 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_function_base.h
+FILE 107 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iomanip.h
+FILE 108 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.c
+FILE 109 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.h
+FILE 110 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios_base.h
+FILE 111 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.c
+FILE 112 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.h
+FILE 113 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator.h
+FILE 114 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator_base.h
+FILE 115 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_list.c
+FILE 116 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_list.h
+FILE 117 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_locale.h
+FILE 118 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_map.h
+FILE 119 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_new.h
+FILE 120 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.h
+FILE 121 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.c
+FILE 122 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.h
+FILE 123 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostreambuf_iterator.h
+FILE 124 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_pair.h
+FILE 125 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_relops_cont.h
+FILE 126 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_sstream.c
+FILE 127 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_sstream.h
+FILE 128 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.c
+FILE 129 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.h
+FILE 130 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string.c
+FILE 131 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string.h
+FILE 132 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_base.h
+FILE 133 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_io.c
+FILE 134 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_operators.h
+FILE 135 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_tree.c
+FILE 136 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_tree.h
+FILE 137 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_uninitialized.h
+FILE 138 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.c
+FILE 139 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.h
+FILE 140 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/char_traits.h
+FILE 141 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_list.h
+FILE 142 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_set.h
+FILE 143 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_vector.h
+FILE 144 /s/ndk-andrewhsieh/build/toolchain/gcc-4.9/aarch64-linux-android/libgcc/./gthr-default.h
+FILE 145 /s/ndk-andrewhsieh/build/toolchain/gcc-4.9/aarch64-linux-android/libgcc/./md-unwind-support.h
+FILE 146 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/config/aarch64/sfp-exceptions.c
+FILE 147 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/libgcc2.c
+FILE 148 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/soft-fp/addtf3.c
+FILE 149 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/soft-fp/eqtf2.c
+FILE 150 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/soft-fp/floatsitf.c
+FILE 151 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/soft-fp/getf2.c
+FILE 152 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/soft-fp/multf3.c
+FILE 153 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-dw2-fde-dip.c
+FILE 154 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-dw2-fde.c
+FILE 155 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-dw2-fde.h
+FILE 156 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-dw2.c
+FILE 157 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-pe.h
+FILE 158 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind.inc
+FILE 159 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/call_unexpected.cc
+FILE 160 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/class_type_info.cc
+FILE 161 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/cxxabi.cc
+FILE 162 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/cxxabi_defines.h
+FILE 163 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/delete.cc
+FILE 164 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/dwarf_helper.cc
+FILE 165 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/dynamic_cast.cc
+FILE 166 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/exception.cc
+FILE 167 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/fatal_error.cc
+FILE 168 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/helper_func_internal.cc
+FILE 169 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/new.cc
+FILE 170 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/one_time_construction.cc
+FILE 171 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/personality.cc
+FILE 172 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/si_class_type_info.cc
+FILE 173 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/terminate.cc
+FILE 174 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/type_info.cc
+FILE 175 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/vmi_class_type_info.cc
+FILE 176 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/allocators.cpp
+FILE 177 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/c_locale_dummy/c_locale_dummy.c
+FILE 178 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/codecvt.cpp
+FILE 179 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/collate.cpp
+FILE 180 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/ctype.cpp
+FILE 181 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/details/fstream_unistd.cpp
+FILE 182 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/dll_main.cpp
+FILE 183 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/fstream.cpp
+FILE 184 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/ios.cpp
+FILE 185 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/iostream.cpp
+FILE 186 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale.cpp
+FILE 187 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale_impl.cpp
+FILE 188 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale_impl.h
+FILE 189 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/messages.cpp
+FILE 190 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/monetary.cpp
+FILE 191 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_get.cpp
+FILE 192 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_get_float.cpp
+FILE 193 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_put.cpp
+FILE 194 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_put_float.cpp
+FILE 195 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/numpunct.cpp
+FILE 196 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/stdio_streambuf.cpp
+FILE 197 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/stdio_streambuf.h
+FILE 198 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/time_facets.cpp
+FILE 199 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algo.h
+FILE 200 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.c
+FILE 201 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.h
+FILE 202 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_alloc.h
+FILE 203 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_auto_ptr.h
+FILE 204 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_codecvt.h
+FILE 205 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_collate.h
+FILE 206 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_construct.h
+FILE 207 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ctype.h
+FILE 208 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.c
+FILE 209 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.h
+FILE 210 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.c
+FILE 211 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.h
+FILE 212 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios_base.h
+FILE 213 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_iostream_string.h
+FILE 214 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.h
+FILE 215 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_istreambuf_iterator.h
+FILE 216 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator.h
+FILE 217 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator_base.h
+FILE 218 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_limits.c
+FILE 219 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_locale.h
+FILE 220 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_messages_facets.h
+FILE 221 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_monetary.c
+FILE 222 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_monetary.h
+FILE 223 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_new.h
+FILE 224 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_get.c
+FILE 225 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_get.h
+FILE 226 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.c
+FILE 227 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.h
+FILE 228 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_numpunct.h
+FILE 229 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.c
+FILE 230 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ostreambuf_iterator.h
+FILE 231 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_pair.h
+FILE 232 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_range_errors.c
+FILE 233 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h
+FILE 234 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.c
+FILE 235 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.c
+FILE 236 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.h
+FILE 237 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string.c
+FILE 238 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string.h
+FILE 239 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string_base.h
+FILE 240 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string_operators.h
+FILE 241 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_threads.h
+FILE 242 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_time_facets.c
+FILE 243 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_time_facets.h
+FILE 244 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_uninitialized.h
+FILE 245 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.c
+FILE 246 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.h
+FILE 247 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/char_traits.h
+FUNC 20570 d8 0 testing::internal::ForkingDeathTest::Wait
+20570 4 799 89
+20574 4 806 89
+20578 8 799 89
+20580 10 806 89
+20590 4 806 89
+20594 4 806 89
+20598 10 806 89
+205a8 4 806 89
+205ac 4 806 89
+205b0 10 806 89
+205c0 4 806 89
+205c4 4 806 89
+205c8 10 806 89
+205d8 10 806 89
+205e8 c 806 89
+205f4 4 806 89
+205f8 4 806 89
+205fc 10 806 89
+2060c 4 806 89
+20610 4 806 89
+20614 10 806 89
+20624 4 806 89
+20628 4 806 89
+2062c 14 806 89
+20640 8 806 89
+FUNC 20648 44 0 sys_close
+20648 10 2979 97
+20658 14 2979 97
+2066c 4 2979 97
+20670 4 2979 97
+20674 8 2979 97
+2067c 10 2979 97
+FUNC 2068c 16c 0 MinidumpWriter::WriteFile
+2068c 10 1101 26
+2069c 4 1102 26
+206a0 c 1101 26
+206ac 4 1101 26
+206b0 8 1102 26
+206b8 4 1103 26
+206bc 8 1104 26
+206c4 4 100 22
+206c8 4 772 26
+206cc 4 1118 26
+206d0 4 1122 26
+206d4 c 772 26
+206e0 4 1115 26
+206e4 8 1116 26
+206ec 18 1122 26
+20704 8 1123 26
+2070c 4 1123 26
+20710 10 1123 26
+20720 8 1125 26
+20728 8 1137 26
+20730 4 1139 26
+20734 4 1142 26
+20738 8 161 33
+20740 4 1143 26
+20744 8 161 33
+2074c 4 1143 26
+20750 4 161 33
+20754 10 1143 26
+20764 8 1150 26
+2076c 10 1155 26
+2077c 8 1156 26
+20784 4 1145 26
+20788 4 1145 26
+2078c 8 176 33
+20794 8 1158 26
+2079c 4 1159 26
+207a0 4 1129 26
+207a4 4 1128 26
+207a8 8 1129 26
+207b0 8 1130 26
+207b8 4 100 22
+207bc c 772 26
+207c8 4 1131 26
+207cc 8 1133 26
+207d4 8 1134 26
+207dc 1c 1160 26
+FUNC 207f8 5c 0 MinidumpWriter::WriteProcFile
+207f8 10 1212 26
+20808 8 1212 26
+20810 20 1215 26
+20830 14 1217 26
+20844 10 1218 26
+FUNC 20854 1c 0 std::allocator<std::locale::facet*>::deallocate
+20854 4 319 202
+20858 4 323 202
+2085c 8 161 202
+20864 4 135 223
+20868 4 161 202
+2086c 4 325 202
+FUNC 20870 14 0 std::priv::_String_base<char, std::allocator<char> >::_M_throw_length_error
+20870 4 599 237
+20874 4 600 237
+20878 4 599 237
+2087c 4 600 237
+20880 4 600 237
+FUNC 20884 14 0 std::priv::_String_base<char, std::priv::__iostring_allocator<char> >::_M_throw_length_error
+20884 4 599 237
+20888 4 600 237
+2088c 4 599 237
+20890 4 600 237
+20894 4 600 237
+FUNC 20898 1c 0 std::allocator<wchar_t>::deallocate
+20898 4 319 202
+2089c 4 323 202
+208a0 8 161 202
+208a8 4 135 223
+208ac 4 161 202
+208b0 4 325 202
+FUNC 208b4 28 0 __cxxabiv1::::terminate_helper
+208b4 8 116 159
+208bc 4 118 159
+208c0 4 119 159
+208c4 4 120 159
+208c8 8 121 159
+208d0 c 120 159
+FUNC 208dc 18 0 std::allocator<char>::deallocate
+208dc 4 319 202
+208e0 8 161 202
+208e8 4 135 223
+208ec 4 161 202
+208f0 4 325 202
+FUNC 208f4 858 0 _GLOBAL__sub_I__ZN40ExceptionHandlerTest_SimpleWithPath_Test10test_info_E
+208f4 10 1191 6
+20904 8 160 6
+2090c 4 160 6
+20910 8 160 6
+20918 4 160 6
+2091c 4 160 6
+20920 4 484 85
+20924 14 160 6
+20938 4 484 85
+2093c 4 160 6
+20940 8 160 6
+20948 8 484 85
+20950 14 160 6
+20964 8 160 6
+2096c 8 170 6
+20974 c 170 6
+20980 4 484 85
+20984 14 170 6
+20998 c 484 85
+209a4 10 170 6
+209b4 8 170 6
+209bc 8 253 6
+209c4 c 253 6
+209d0 4 484 85
+209d4 14 253 6
+209e8 c 484 85
+209f4 10 253 6
+20a04 8 253 6
+20a0c 8 257 6
+20a14 c 257 6
+20a20 4 484 85
+20a24 14 257 6
+20a38 c 484 85
+20a44 10 257 6
+20a54 8 257 6
+20a5c 8 315 6
+20a64 c 315 6
+20a70 4 484 85
+20a74 14 315 6
+20a88 c 484 85
+20a94 10 315 6
+20aa4 8 315 6
+20aac 8 327 6
+20ab4 c 327 6
+20ac0 4 484 85
+20ac4 14 327 6
+20ad8 c 484 85
+20ae4 10 327 6
+20af4 8 327 6
+20afc 8 339 6
+20b04 c 339 6
+20b10 4 484 85
+20b14 14 339 6
+20b28 c 484 85
+20b34 10 339 6
+20b44 8 339 6
+20b4c 8 351 6
+20b54 c 351 6
+20b60 4 484 85
+20b64 14 351 6
+20b78 c 484 85
+20b84 10 351 6
+20b94 8 351 6
+20b9c 8 363 6
+20ba4 c 363 6
+20bb0 4 484 85
+20bb4 14 363 6
+20bc8 c 484 85
+20bd4 10 363 6
+20be4 8 363 6
+20bec 8 380 6
+20bf4 c 380 6
+20c00 4 484 85
+20c04 14 380 6
+20c18 c 484 85
+20c24 10 380 6
+20c34 8 380 6
+20c3c 8 409 6
+20c44 c 409 6
+20c50 4 484 85
+20c54 14 409 6
+20c68 c 484 85
+20c74 10 409 6
+20c84 8 409 6
+20c8c 8 425 6
+20c94 c 425 6
+20ca0 4 484 85
+20ca4 14 425 6
+20cb8 c 484 85
+20cc4 10 425 6
+20cd4 8 425 6
+20cdc 8 441 6
+20ce4 c 441 6
+20cf0 4 484 85
+20cf4 14 441 6
+20d08 c 484 85
+20d14 10 441 6
+20d24 8 441 6
+20d2c 8 457 6
+20d34 c 457 6
+20d40 4 484 85
+20d44 14 457 6
+20d58 c 484 85
+20d64 10 457 6
+20d74 8 457 6
+20d7c 8 487 6
+20d84 c 487 6
+20d90 4 484 85
+20d94 14 487 6
+20da8 c 484 85
+20db4 10 487 6
+20dc4 8 487 6
+20dcc 8 579 6
+20dd4 c 579 6
+20de0 4 484 85
+20de4 14 579 6
+20df8 c 484 85
+20e04 10 579 6
+20e14 8 579 6
+20e1c 8 667 6
+20e24 c 667 6
+20e30 4 484 85
+20e34 14 667 6
+20e48 c 484 85
+20e54 10 667 6
+20e64 8 667 6
+20e6c 8 760 6
+20e74 c 760 6
+20e80 4 484 85
+20e84 14 760 6
+20e98 c 484 85
+20ea4 10 760 6
+20eb4 8 760 6
+20ebc 8 806 6
+20ec4 c 806 6
+20ed0 4 484 85
+20ed4 14 806 6
+20ee8 c 484 85
+20ef4 10 806 6
+20f04 8 806 6
+20f0c 8 926 6
+20f14 c 926 6
+20f20 4 484 85
+20f24 14 926 6
+20f38 c 484 85
+20f44 10 926 6
+20f54 8 926 6
+20f5c 8 1000 6
+20f64 c 1000 6
+20f70 4 484 85
+20f74 14 1000 6
+20f88 c 484 85
+20f94 10 1000 6
+20fa4 8 1000 6
+20fac 8 1019 6
+20fb4 c 1019 6
+20fc0 4 484 85
+20fc4 14 1019 6
+20fd8 c 484 85
+20fe4 10 1019 6
+20ff4 8 1019 6
+20ffc 8 1036 6
+21004 c 1036 6
+21010 4 484 85
+21014 14 1036 6
+21028 c 484 85
+21034 10 1036 6
+21044 8 1036 6
+2104c 8 1068 6
+21054 c 1068 6
+21060 4 484 85
+21064 14 1068 6
+21078 c 484 85
+21084 10 1068 6
+21094 8 1068 6
+2109c 8 1112 6
+210a4 c 1112 6
+210b0 4 484 85
+210b4 14 1112 6
+210c8 c 484 85
+210d4 10 1112 6
+210e4 8 1112 6
+210ec 8 1154 6
+210f4 c 1154 6
+21100 4 484 85
+21104 14 1154 6
+21118 c 484 85
+21124 10 1154 6
+21134 4 1191 6
+21138 4 1154 6
+2113c 8 1191 6
+21144 4 1154 6
+21148 4 1191 6
+FUNC 2114c 6c 0 _GLOBAL__sub_I_microdump_writer_unittest.cc
+2114c 8 132 11
+21154 8 56 11
+2115c c 56 11
+21168 4 484 85
+2116c 4 56 11
+21170 4 484 85
+21174 4 56 11
+21178 4 484 85
+2117c 4 56 11
+21180 4 484 85
+21184 24 56 11
+211a8 4 56 11
+211ac 4 132 11
+211b0 4 56 11
+211b4 4 132 11
+FUNC 211b8 358 0 _GLOBAL__sub_I__ZN26CpuSetTest_EmptyCount_Test10test_info_E
+211b8 10 163 13
+211c8 8 58 13
+211d0 4 58 13
+211d4 8 58 13
+211dc 4 58 13
+211e0 4 58 13
+211e4 4 484 85
+211e8 14 58 13
+211fc 4 484 85
+21200 4 58 13
+21204 8 58 13
+2120c 8 484 85
+21214 14 58 13
+21228 8 58 13
+21230 8 63 13
+21238 c 63 13
+21244 4 484 85
+21248 14 63 13
+2125c c 484 85
+21268 10 63 13
+21278 8 63 13
+21280 8 72 13
+21288 c 72 13
+21294 4 484 85
+21298 14 72 13
+212ac c 484 85
+212b8 10 72 13
+212c8 8 72 13
+212d0 8 81 13
+212d8 c 81 13
+212e4 4 484 85
+212e8 14 81 13
+212fc c 484 85
+21308 10 81 13
+21318 8 81 13
+21320 8 90 13
+21328 c 90 13
+21334 4 484 85
+21338 14 90 13
+2134c c 484 85
+21358 10 90 13
+21368 8 90 13
+21370 8 99 13
+21378 c 99 13
+21384 4 484 85
+21388 14 99 13
+2139c c 484 85
+213a8 10 99 13
+213b8 8 99 13
+213c0 8 108 13
+213c8 c 108 13
+213d4 4 484 85
+213d8 14 108 13
+213ec c 484 85
+213f8 10 108 13
+21408 8 108 13
+21410 8 117 13
+21418 c 117 13
+21424 4 484 85
+21428 14 117 13
+2143c c 484 85
+21448 10 117 13
+21458 8 117 13
+21460 8 135 13
+21468 c 135 13
+21474 4 484 85
+21478 14 135 13
+2148c c 484 85
+21498 10 135 13
+214a8 8 135 13
+214b0 8 146 13
+214b8 c 146 13
+214c4 4 484 85
+214c8 14 146 13
+214dc c 484 85
+214e8 10 146 13
+214f8 4 163 13
+214fc 4 146 13
+21500 8 163 13
+21508 4 146 13
+2150c 4 163 13
+FUNC 21510 6c 0 _GLOBAL__sub_I__ZN39DirectoryReaderTest_CompareResults_Test10test_info_E
+21510 8 78 15
+21518 8 47 15
+21520 c 47 15
+2152c 4 484 85
+21530 14 47 15
+21544 4 484 85
+21548 8 47 15
+21550 8 484 85
+21558 14 47 15
+2156c 4 47 15
+21570 4 78 15
+21574 4 47 15
+21578 4 78 15
+FUNC 2157c 268 0 _GLOBAL__sub_I__ZN29LineReaderTest_EmptyFile_Test10test_info_E
+2157c 10 169 17
+2158c 8 57 17
+21594 4 57 17
+21598 8 57 17
+215a0 4 57 17
+215a4 4 57 17
+215a8 4 484 85
+215ac 14 57 17
+215c0 4 484 85
+215c4 4 57 17
+215c8 8 57 17
+215d0 8 484 85
+215d8 14 57 17
+215ec 8 57 17
+215f4 8 67 17
+215fc c 67 17
+21608 4 484 85
+2160c 14 67 17
+21620 c 484 85
+2162c 10 67 17
+2163c 8 67 17
+21644 8 83 17
+2164c c 83 17
+21658 4 484 85
+2165c 14 83 17
+21670 c 484 85
+2167c 10 83 17
+2168c 8 83 17
+21694 8 99 17
+2169c c 99 17
+216a8 4 484 85
+216ac 14 99 17
+216c0 c 484 85
+216cc 10 99 17
+216dc 8 99 17
+216e4 8 121 17
+216ec c 121 17
+216f8 4 484 85
+216fc 14 121 17
+21710 c 484 85
+2171c 10 121 17
+2172c 8 121 17
+21734 8 143 17
+2173c c 143 17
+21748 4 484 85
+2174c 14 143 17
+21760 c 484 85
+2176c 10 143 17
+2177c 8 143 17
+21784 8 158 17
+2178c c 158 17
+21798 4 484 85
+2179c 14 158 17
+217b0 c 484 85
+217bc 10 158 17
+217cc 4 169 17
+217d0 4 158 17
+217d4 8 169 17
+217dc 4 158 17
+217e0 4 169 17
+FUNC 217e4 d8 0 _GLOBAL__sub_I__ZN38LinuxCoreDumperTest_BuildProcPath_Test10test_info_E
+217e4 10 118 20
+217f4 8 42 20
+217fc 4 42 20
+21800 8 42 20
+21808 4 42 20
+2180c 4 42 20
+21810 4 484 85
+21814 14 42 20
+21828 4 484 85
+2182c 4 42 20
+21830 8 42 20
+21838 8 484 85
+21840 14 42 20
+21854 8 42 20
+2185c 8 65 20
+21864 c 65 20
+21870 4 484 85
+21874 14 65 20
+21888 c 484 85
+21894 10 65 20
+218a4 4 118 20
+218a8 4 65 20
+218ac 8 118 20
+218b4 4 65 20
+218b8 4 118 20
+FUNC 218bc 2dc 0 _GLOBAL__sub_I__ZN37LinuxPtraceDumperChildTest_Setup_Test10test_info_E
+218bc 4 463 25
+218c0 4 121 25
+218c4 c 463 25
+218d0 4 121 25
+218d4 4 121 25
+218d8 4 484 85
+218dc 14 121 25
+218f0 4 484 85
+218f4 c 121 25
+21900 8 484 85
+21908 4 121 25
+2190c 4 121 25
+21910 1c 121 25
+2192c 8 121 25
+21934 c 125 25
+21940 4 484 85
+21944 14 125 25
+21958 c 484 85
+21964 10 125 25
+21974 8 125 25
+2197c c 134 25
+21988 4 484 85
+2198c 14 134 25
+219a0 c 484 85
+219ac 10 134 25
+219bc 8 134 25
+219c4 c 226 25
+219d0 4 484 85
+219d4 14 226 25
+219e8 c 484 85
+219f4 18 226 25
+21a0c 8 226 25
+21a14 c 246 25
+21a20 4 484 85
+21a24 14 246 25
+21a38 c 484 85
+21a44 10 246 25
+21a54 8 246 25
+21a5c c 271 25
+21a68 4 484 85
+21a6c 14 271 25
+21a80 c 484 85
+21a8c 10 271 25
+21a9c 8 271 25
+21aa4 c 295 25
+21ab0 4 484 85
+21ab4 14 295 25
+21ac8 c 484 85
+21ad4 10 295 25
+21ae4 8 295 25
+21aec c 325 25
+21af8 4 484 85
+21afc 14 325 25
+21b10 c 484 85
+21b1c 10 325 25
+21b2c 8 325 25
+21b34 8 364 25
+21b3c c 364 25
+21b48 4 484 85
+21b4c 14 364 25
+21b60 c 484 85
+21b6c 14 364 25
+21b80 4 364 25
+21b84 8 463 25
+21b8c 4 364 25
+21b90 8 463 25
+FUNC 21b98 2b8 0 _GLOBAL__sub_I_minidump_writer_unittest.cc
+21b98 10 756 27
+21ba8 8 67 27
+21bb0 4 67 27
+21bb4 8 67 27
+21bbc 4 67 27
+21bc0 4 67 27
+21bc4 4 484 85
+21bc8 4 67 27
+21bcc 4 484 85
+21bd0 4 67 27
+21bd4 4 484 85
+21bd8 c 67 27
+21be4 4 484 85
+21be8 4 67 27
+21bec 4 67 27
+21bf0 18 67 27
+21c08 8 67 27
+21c10 8 96 27
+21c18 c 96 27
+21c24 4 484 85
+21c28 4 96 27
+21c2c 4 484 85
+21c30 4 96 27
+21c34 8 484 85
+21c3c 1c 96 27
+21c58 8 96 27
+21c60 8 128 27
+21c68 c 128 27
+21c74 4 484 85
+21c78 4 128 27
+21c7c 4 484 85
+21c80 4 128 27
+21c84 8 484 85
+21c8c 1c 128 27
+21ca8 8 128 27
+21cb0 8 236 27
+21cb8 c 236 27
+21cc4 4 484 85
+21cc8 4 236 27
+21ccc 4 484 85
+21cd0 4 236 27
+21cd4 8 484 85
+21cdc 1c 236 27
+21cf8 8 236 27
+21d00 8 338 27
+21d08 c 338 27
+21d14 4 484 85
+21d18 4 338 27
+21d1c 4 484 85
+21d20 4 338 27
+21d24 8 484 85
+21d2c 1c 338 27
+21d48 8 338 27
+21d50 8 432 27
+21d58 c 432 27
+21d64 4 484 85
+21d68 4 432 27
+21d6c 4 484 85
+21d70 4 432 27
+21d74 8 484 85
+21d7c 1c 432 27
+21d98 8 432 27
+21da0 8 504 27
+21da8 c 504 27
+21db4 4 484 85
+21db8 4 504 27
+21dbc 4 484 85
+21dc0 4 504 27
+21dc4 8 484 85
+21dcc 1c 504 27
+21de8 8 504 27
+21df0 8 583 27
+21df8 c 583 27
+21e04 4 484 85
+21e08 4 583 27
+21e0c 4 484 85
+21e10 4 583 27
+21e14 8 484 85
+21e1c 1c 583 27
+21e38 4 756 27
+21e3c 4 583 27
+21e40 8 756 27
+21e48 4 583 27
+21e4c 4 756 27
+FUNC 21e50 358 0 _GLOBAL__sub_I__ZN36ProcCpuInfoReaderTest_EmptyFile_Test10test_info_E
+21e50 10 199 30
+21e60 8 63 30
+21e68 4 63 30
+21e6c 8 63 30
+21e74 4 63 30
+21e78 4 63 30
+21e7c 4 484 85
+21e80 14 63 30
+21e94 4 484 85
+21e98 4 63 30
+21e9c 8 63 30
+21ea4 8 484 85
+21eac 14 63 30
+21ec0 8 63 30
+21ec8 8 72 30
+21ed0 c 72 30
+21edc 4 484 85
+21ee0 14 72 30
+21ef4 c 484 85
+21f00 10 72 30
+21f10 8 72 30
+21f18 8 85 30
+21f20 c 85 30
+21f2c 4 484 85
+21f30 14 85 30
+21f44 c 484 85
+21f50 10 85 30
+21f60 8 85 30
+21f68 8 100 30
+21f70 c 100 30
+21f7c 4 484 85
+21f80 14 100 30
+21f94 c 484 85
+21fa0 10 100 30
+21fb0 8 100 30
+21fb8 8 117 30
+21fc0 c 117 30
+21fcc 4 484 85
+21fd0 14 117 30
+21fe4 c 484 85
+21ff0 10 117 30
+22000 8 117 30
+22008 8 130 30
+22010 c 130 30
+2201c 4 484 85
+22020 14 130 30
+22034 c 484 85
+22040 10 130 30
+22050 8 130 30
+22058 8 143 30
+22060 c 143 30
+2206c 4 484 85
+22070 14 143 30
+22084 c 484 85
+22090 10 143 30
+220a0 8 143 30
+220a8 8 156 30
+220b0 c 156 30
+220bc 4 484 85
+220c0 14 156 30
+220d4 c 484 85
+220e0 10 156 30
+220f0 8 156 30
+220f8 8 173 30
+22100 c 173 30
+2210c 4 484 85
+22110 14 173 30
+22124 c 484 85
+22130 10 173 30
+22140 8 173 30
+22148 8 186 30
+22150 c 186 30
+2215c 4 484 85
+22160 14 186 30
+22174 c 484 85
+22180 10 186 30
+22190 4 199 30
+22194 4 186 30
+22198 8 199 30
+221a0 4 186 30
+221a4 4 199 30
+FUNC 221a8 128 0 _GLOBAL__sub_I__ZN39ElfCoreDumpTest_DefaultConstructor_Test10test_info_E
+221a8 10 256 39
+221b8 8 52 39
+221c0 4 52 39
+221c4 8 52 39
+221cc 4 52 39
+221d0 4 52 39
+221d4 4 484 85
+221d8 14 52 39
+221ec 4 484 85
+221f0 4 52 39
+221f4 8 52 39
+221fc 8 484 85
+22204 14 52 39
+22218 8 52 39
+22220 8 62 39
+22228 c 62 39
+22234 4 484 85
+22238 14 62 39
+2224c c 484 85
+22258 10 62 39
+22268 8 62 39
+22270 8 130 39
+22278 c 130 39
+22284 4 484 85
+22288 14 130 39
+2229c c 484 85
+222a8 10 130 39
+222b8 4 256 39
+222bc 4 130 39
+222c0 8 256 39
+222c8 4 130 39
+222cc 4 256 39
+FUNC 222d0 a8 0 _GLOBAL__sub_I_gtest_FileIDTest_ElfClass_registered_
+222d0 4 263 43
+222d4 8 127 43
+222dc 8 263 43
+222e4 24 127 43
+22308 c 151 43
+22314 4 127 43
+22318 10 151 43
+22328 c 183 43
+22334 4 151 43
+22338 10 183 43
+22348 c 220 43
+22354 4 183 43
+22358 10 220 43
+22368 8 263 43
+22370 4 220 43
+22374 4 263 43
+FUNC 22378 358 0 _GLOBAL__sub_I__ZN32LinuxLibcSupportTest_strlen_Test10test_info_E
+22378 10 213 46
+22388 8 37 46
+22390 4 37 46
+22394 8 37 46
+2239c 4 37 46
+223a0 4 37 46
+223a4 4 484 85
+223a8 14 37 46
+223bc 4 484 85
+223c0 4 37 46
+223c4 8 37 46
+223cc 8 484 85
+223d4 14 37 46
+223e8 8 37 46
+223f0 8 46 46
+223f8 c 46 46
+22404 4 484 85
+22408 14 46 46
+2241c c 484 85
+22428 10 46 46
+22438 8 46 46
+22440 8 71 46
+22448 c 71 46
+22454 4 484 85
+22458 14 71 46
+2246c c 484 85
+22478 10 71 46
+22488 8 71 46
+22490 8 92 46
+22498 c 92 46
+224a4 4 484 85
+224a8 14 92 46
+224bc c 484 85
+224c8 10 92 46
+224d8 8 92 46
+224e0 8 106 46
+224e8 c 106 46
+224f4 4 484 85
+224f8 14 106 46
+2250c c 484 85
+22518 10 106 46
+22528 8 106 46
+22530 8 129 46
+22538 c 129 46
+22544 4 484 85
+22548 14 129 46
+2255c c 484 85
+22568 10 129 46
+22578 8 129 46
+22580 8 143 46
+22588 c 143 46
+22594 4 484 85
+22598 14 143 46
+225ac c 484 85
+225b8 10 143 46
+225c8 8 143 46
+225d0 8 157 46
+225d8 c 157 46
+225e4 4 484 85
+225e8 14 157 46
+225fc c 484 85
+22608 10 157 46
+22618 8 157 46
+22620 8 169 46
+22628 c 169 46
+22634 4 484 85
+22638 14 169 46
+2264c c 484 85
+22658 10 169 46
+22668 8 169 46
+22670 8 194 46
+22678 c 194 46
+22684 4 484 85
+22688 14 194 46
+2269c c 484 85
+226a8 10 194 46
+226b8 4 213 46
+226bc 4 194 46
+226c0 8 213 46
+226c8 4 194 46
+226cc 4 213 46
+FUNC 226d0 220 0 _GLOBAL__sub_I__ZN28PageAllocatorTest_Setup_Test10test_info_E
+226d0 10 97 56
+226e0 8 39 56
+226e8 4 39 56
+226ec c 39 56
+226f8 4 39 56
+226fc 4 39 56
+22700 4 484 85
+22704 14 39 56
+22718 4 484 85
+2271c 4 39 56
+22720 4 39 56
+22724 4 39 56
+22728 4 484 85
+2272c 8 39 56
+22734 4 484 85
+22738 c 39 56
+22744 8 39 56
+2274c 8 43 56
+22754 c 43 56
+22760 4 484 85
+22764 14 43 56
+22778 c 484 85
+22784 10 43 56
+22794 8 43 56
+2279c 8 53 56
+227a4 c 53 56
+227b0 4 484 85
+227b4 14 53 56
+227c8 c 484 85
+227d4 c 53 56
+227e0 8 69 56
+227e8 4 53 56
+227ec 8 53 56
+227f4 8 69 56
+227fc c 69 56
+22808 4 484 85
+2280c 10 69 56
+2281c c 484 85
+22828 10 69 56
+22838 8 69 56
+22840 8 76 56
+22848 c 76 56
+22854 4 484 85
+22858 14 76 56
+2286c c 484 85
+22878 10 76 56
+22888 8 76 56
+22890 8 91 56
+22898 c 91 56
+228a4 4 484 85
+228a8 14 91 56
+228bc c 484 85
+228c8 10 91 56
+228d8 4 91 56
+228dc 8 97 56
+228e4 4 91 56
+228e8 8 97 56
+FUNC 228f0 268 0 _GLOBAL__sub_I__ZN15google_breakpad31NonAllocatingMapTest_Entry_Test10test_info_E
+228f0 10 308 59
+22900 8 35 59
+22908 4 35 59
+2290c 8 35 59
+22914 4 35 59
+22918 4 35 59
+2291c 4 484 85
+22920 14 35 59
+22934 4 484 85
+22938 4 35 59
+2293c 8 35 59
+22944 8 484 85
+2294c 14 35 59
+22960 8 35 59
+22968 8 63 59
+22970 c 63 59
+2297c 4 484 85
+22980 14 63 59
+22994 c 484 85
+229a0 10 63 59
+229b0 8 63 59
+229b8 8 92 59
+229c0 c 92 59
+229cc 4 484 85
+229d0 14 92 59
+229e4 c 484 85
+229f0 10 92 59
+22a00 8 92 59
+22a08 8 127 59
+22a10 c 127 59
+22a1c 4 484 85
+22a20 14 127 59
+22a34 c 484 85
+22a40 10 127 59
+22a50 8 127 59
+22a58 8 228 59
+22a60 c 228 59
+22a6c 4 484 85
+22a70 14 228 59
+22a84 c 484 85
+22a90 10 228 59
+22aa0 8 228 59
+22aa8 8 253 59
+22ab0 c 253 59
+22abc 4 484 85
+22ac0 14 253 59
+22ad4 c 484 85
+22ae0 10 253 59
+22af0 8 253 59
+22af8 8 282 59
+22b00 c 282 59
+22b0c 4 484 85
+22b10 14 282 59
+22b24 c 484 85
+22b30 10 282 59
+22b40 4 308 59
+22b44 4 282 59
+22b48 8 308 59
+22b50 4 282 59
+22b54 4 308 59
+FUNC 22b58 3e8 0 _GLOBAL__sub_I__ZN47MinidumpMemoryRangeTest_DefaultConstructor_Test10test_info_E
+22b58 4 90 78
+22b5c 8 258 78
+22b64 c 90 78
+22b70 8 258 78
+22b78 4 78 78
+22b7c 4 80 78
+22b80 4 90 78
+22b84 4 95 78
+22b88 4 90 78
+22b8c 4 79 78
+22b90 4 90 78
+22b94 4 81 78
+22b98 4 90 78
+22b9c 4 82 78
+22ba0 4 90 78
+22ba4 4 95 78
+22ba8 4 90 78
+22bac 4 95 78
+22bb0 4 90 78
+22bb4 c 95 78
+22bc0 8 95 78
+22bc8 c 95 78
+22bd4 4 484 85
+22bd8 14 95 78
+22bec c 484 85
+22bf8 10 95 78
+22c08 8 95 78
+22c10 8 101 78
+22c18 c 101 78
+22c24 4 484 85
+22c28 14 101 78
+22c3c c 484 85
+22c48 10 101 78
+22c58 8 101 78
+22c60 8 107 78
+22c68 c 107 78
+22c74 4 484 85
+22c78 14 107 78
+22c8c c 484 85
+22c98 10 107 78
+22ca8 8 107 78
+22cb0 8 122 78
+22cb8 c 122 78
+22cc4 4 484 85
+22cc8 14 122 78
+22cdc c 484 85
+22ce8 10 122 78
+22cf8 8 122 78
+22d00 8 133 78
+22d08 c 133 78
+22d14 4 484 85
+22d18 14 133 78
+22d2c c 484 85
+22d38 10 133 78
+22d48 8 133 78
+22d50 8 140 78
+22d58 c 140 78
+22d64 4 484 85
+22d68 14 140 78
+22d7c c 484 85
+22d88 10 140 78
+22d98 8 140 78
+22da0 8 165 78
+22da8 c 165 78
+22db4 4 484 85
+22db8 14 165 78
+22dcc c 484 85
+22dd8 10 165 78
+22de8 8 165 78
+22df0 8 193 78
+22df8 c 193 78
+22e04 4 484 85
+22e08 14 193 78
+22e1c c 484 85
+22e28 10 193 78
+22e38 8 193 78
+22e40 8 201 78
+22e48 c 201 78
+22e54 4 484 85
+22e58 14 201 78
+22e6c c 484 85
+22e78 10 201 78
+22e88 8 201 78
+22e90 8 216 78
+22e98 c 216 78
+22ea4 4 484 85
+22ea8 14 216 78
+22ebc c 484 85
+22ec8 10 216 78
+22ed8 8 216 78
+22ee0 8 224 78
+22ee8 c 224 78
+22ef4 4 484 85
+22ef8 14 224 78
+22f0c c 484 85
+22f18 10 224 78
+22f28 4 258 78
+22f2c 4 224 78
+22f30 8 258 78
+22f38 4 224 78
+22f3c 4 258 78
+FUNC 22f40 d8 0 _GLOBAL__sub_I__ZN32AndroidUContext_GRegsOffset_Test10test_info_E
+22f40 10 186 34
+22f50 8 50 34
+22f58 4 50 34
+22f5c 8 50 34
+22f64 4 50 34
+22f68 4 50 34
+22f6c 4 484 85
+22f70 14 50 34
+22f84 4 484 85
+22f88 4 50 34
+22f8c 8 50 34
+22f94 8 484 85
+22f9c 14 50 34
+22fb0 8 50 34
+22fb8 8 183 34
+22fc0 c 183 34
+22fcc 4 484 85
+22fd0 14 183 34
+22fe4 c 484 85
+22ff0 10 183 34
+23000 4 186 34
+23004 4 183 34
+23008 8 186 34
+23010 4 183 34
+23014 4 186 34
+FUNC 23018 238 0 _GLOBAL__sub_I_gtest.cc
+23018 4 5291 95
+2301c 8 193 95
+23024 4 5291 95
+23028 4 193 95
+2302c c 5291 95
+23038 8 193 95
+23040 c 209 95
+2304c 8 209 95
+23054 4 193 95
+23058 c 198 95
+23064 8 209 95
+2306c 4 198 95
+23070 4 229 95
+23074 4 198 95
+23078 4 229 95
+2307c 4 198 95
+23080 18 203 95
+23098 18 209 95
+230b0 c 209 95
+230bc c 209 95
+230c8 8 217 95
+230d0 4 209 95
+230d4 18 217 95
+230ec c 217 95
+230f8 c 217 95
+23104 8 229 95
+2310c 4 217 95
+23110 14 229 95
+23124 c 229 95
+23130 10 229 95
+23140 18 241 95
+23158 18 247 95
+23170 18 253 95
+23188 18 264 95
+231a0 18 270 95
+231b8 c 276 95
+231c4 4 276 95
+231c8 4 276 95
+231cc 4 276 95
+231d0 4 276 95
+231d4 c 276 95
+231e0 c 276 95
+231ec 8 377 95
+231f4 4 276 95
+231f8 18 283 95
+23210 c 377 95
+2321c 10 377 95
+2322c 4 5291 95
+23230 c 608 95
+2323c 8 5291 95
+23244 4 608 95
+23248 8 5291 95
+FUNC 23250 e8 0 _GLOBAL__sub_I_gtest_death_test.cc
+23250 4 1346 89
+23254 8 85 89
+2325c 4 1346 89
+23260 4 85 89
+23264 4 85 89
+23268 4 1346 89
+2326c 4 85 89
+23270 4 85 89
+23274 4 1346 89
+23278 4 85 89
+2327c 4 85 89
+23280 4 85 89
+23284 4 85 89
+23288 8 85 89
+23290 8 85 89
+23298 4 85 89
+2329c 10 85 89
+232ac 8 107 89
+232b4 4 85 89
+232b8 14 94 89
+232cc 4 107 89
+232d0 4 94 89
+232d4 10 107 89
+232e4 4 107 89
+232e8 8 120 132
+232f0 c 107 89
+232fc 4 120 132
+23300 4 124 132
+23304 4 481 101
+23308 c 124 132
+23314 8 359 89
+2331c 4 101 103
+23320 8 359 89
+23328 10 1346 89
+FUNC 23338 28 0 _GLOBAL__sub_I_gtest_port.cc
+23338 4 67 139
+2333c 4 1057 92
+23340 4 67 139
+23344 4 1057 92
+23348 4 67 139
+2334c 4 1057 92
+23350 4 67 139
+23354 4 1057 92
+23358 4 481 101
+2335c 4 1057 92
+FUNC 23360 44 0 main
+23360 c 34 96
+2336c c 34 96
+23378 c 35 96
+23384 c 36 96
+23390 4 2326 82
+23394 4 2326 82
+23398 c 38 96
+FUNC 233a4 88 0 _GLOBAL__sub_I_cxxabi.cc
+233a4 4 463 161
+233a8 8 210 161
+233b0 4 463 161
+233b4 8 210 161
+233bc 4 463 161
+233c0 8 210 161
+233c8 c 104 161
+233d4 8 108 161
+233dc 4 104 161
+233e0 8 105 161
+233e8 8 106 161
+233f0 4 108 161
+233f4 4 109 161
+233f8 4 110 161
+233fc 4 260 161
+23400 4 463 161
+23404 c 260 161
+23410 4 463 161
+23414 c 260 161
+23420 c 211 161
+FUNC 2342c 38 0 _GLOBAL__sub_I_locale_impl.cpp
+2342c 4 764 187
+23430 4 621 187
+23434 4 764 187
+23438 8 621 187
+23440 8 621 187
+23448 c 621 187
+23454 4 764 187
+23458 c 621 187
+FUNC 23464 40 0 _GLOBAL__sub_I_allocators.cpp
+23464 4 1119 176
+23468 4 340 241
+2346c 8 1119 176
+23474 10 340 241
+23484 8 128 176
+2348c 4 1119 176
+23490 4 128 176
+23494 4 1119 176
+23498 c 128 176
+FUNC 2351c 4 0 testing::Test::SetUpTestCase
+2351c 4 389 82
+FUNC 23520 4 0 testing::Test::TearDownTestCase
+23520 4 397 82
+FUNC 23524 8 0 testing::Test::Setup
+23524 8 475 82
+FUNC 2352c 8 0 DoneCallbackReturnFalse
+2352c 8 267 6
+FUNC 23534 8 0 DoneCallbackReturnTrue
+23534 8 273 6
+FUNC 2353c 8 0 FilterCallbackReturnFalse
+2353c 8 284 6
+FUNC 23544 8 0 FilterCallbackReturnTrue
+23544 8 288 6
+FUNC 2354c 8 0 std::basic_streambuf<char, std::char_traits<char> >::overflow
+2354c 8 158 128
+FUNC 23554 4 0 std::basic_streambuf<char, std::char_traits<char> >::imbue
+23554 4 180 128
+FUNC 23558 8 0 std::basic_streambuf<char, std::char_traits<char> >::sync
+23558 8 184 128
+FUNC 23560 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::~TestFactoryImpl
+23560 4 484 85
+FUNC 23564 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::~TestFactoryImpl
+23564 4 484 85
+FUNC 23568 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::~TestFactoryImpl
+23568 4 484 85
+FUNC 2356c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::~TestFactoryImpl
+2356c 4 484 85
+FUNC 23570 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::~TestFactoryImpl
+23570 4 484 85
+FUNC 23574 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::~TestFactoryImpl
+23574 4 484 85
+FUNC 23578 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::~TestFactoryImpl
+23578 4 484 85
+FUNC 2357c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::~TestFactoryImpl
+2357c 4 484 85
+FUNC 23580 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::~TestFactoryImpl
+23580 4 484 85
+FUNC 23584 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::~TestFactoryImpl
+23584 4 484 85
+FUNC 23588 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::~TestFactoryImpl
+23588 4 484 85
+FUNC 2358c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::~TestFactoryImpl
+2358c 4 484 85
+FUNC 23590 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::~TestFactoryImpl
+23590 4 484 85
+FUNC 23594 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::~TestFactoryImpl
+23594 4 484 85
+FUNC 23598 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::~TestFactoryImpl
+23598 4 484 85
+FUNC 2359c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::~TestFactoryImpl
+2359c 4 484 85
+FUNC 235a0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::~TestFactoryImpl
+235a0 4 484 85
+FUNC 235a4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::~TestFactoryImpl
+235a4 4 484 85
+FUNC 235a8 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::~TestFactoryImpl
+235a8 4 484 85
+FUNC 235ac 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::~TestFactoryImpl
+235ac 4 484 85
+FUNC 235b0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::~TestFactoryImpl
+235b0 4 484 85
+FUNC 235b4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::~TestFactoryImpl
+235b4 4 484 85
+FUNC 235b8 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::~TestFactoryImpl
+235b8 4 484 85
+FUNC 235bc 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::~TestFactoryImpl
+235bc 4 484 85
+FUNC 235c0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::~TestFactoryImpl
+235c0 4 484 85
+FUNC 235c4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::~TestFactoryImpl
+235c4 4 484 85
+FUNC 235c8 8 0 std::basic_streambuf<char, std::char_traits<char> >::showmanyc
+235c8 8 176 128
+FUNC 235d0 1c 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::underflow
+235d0 4 96 126
+235d4 4 99 126
+235d8 4 99 126
+235dc 8 99 126
+235e4 4 223 140
+235e8 4 100 126
+FUNC 235ec 24 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::uflow
+235ec 4 105 126
+235f0 4 112 126
+235f4 c 106 126
+23600 4 223 140
+23604 4 91 129
+23608 8 113 126
+FUNC 23610 6c 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::pbackfail
+23610 4 117 126
+23614 4 138 126
+23618 c 118 126
+23624 8 119 126
+2362c 4 120 126
+23630 4 220 140
+23634 8 120 126
+2363c c 91 129
+23648 4 124 126
+2364c 4 138 126
+23650 4 124 126
+23654 8 91 129
+2365c 4 126 126
+23660 8 127 126
+23668 4 91 129
+2366c 4 182 140
+23670 4 91 129
+23674 8 139 126
+FUNC 2367c 4 0 std::basic_streambuf<char, std::char_traits<char> >::setbuf
+2367c 4 200 128
+FUNC 23680 8 0 std::basic_streambuf<char, std::char_traits<char> >::underflow
+23680 8 171 128
+FUNC 23688 40 0 std::basic_streambuf<char, std::char_traits<char> >::uflow
+23688 c 162 128
+23694 4 162 128
+23698 c 163 128
+236a4 8 165 128
+236ac c 165 128
+236b8 4 223 140
+236bc c 166 128
+FUNC 236c8 8 0 std::basic_streambuf<char, std::char_traits<char> >::pbackfail
+236c8 8 152 128
+FUNC 236d0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::~TestFactoryImpl
+236d0 4 484 85
+FUNC 236d4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::~TestFactoryImpl
+236d4 4 484 85
+FUNC 236d8 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::~TestFactoryImpl
+236d8 4 484 85
+FUNC 236dc 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::~TestFactoryImpl
+236dc 4 484 85
+FUNC 236e0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::~TestFactoryImpl
+236e0 4 484 85
+FUNC 236e4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::~TestFactoryImpl
+236e4 4 484 85
+FUNC 236e8 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::~TestFactoryImpl
+236e8 4 484 85
+FUNC 236ec 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::~TestFactoryImpl
+236ec 4 484 85
+FUNC 236f0 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::~TestFactoryImpl
+236f0 4 484 85
+FUNC 236f4 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::~TestFactoryImpl
+236f4 4 484 85
+FUNC 236f8 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::~TestFactoryImpl
+236f8 4 484 85
+FUNC 236fc 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::~TestFactoryImpl
+236fc 4 484 85
+FUNC 23700 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::~TestFactoryImpl
+23700 4 484 85
+FUNC 23704 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::~TestFactoryImpl
+23704 4 484 85
+FUNC 23708 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::~TestFactoryImpl
+23708 4 484 85
+FUNC 2370c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::~TestFactoryImpl
+2370c 4 484 85
+FUNC 23710 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::~TestFactoryImpl
+23710 4 484 85
+FUNC 23714 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::~TestFactoryImpl
+23714 4 484 85
+FUNC 23718 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::~TestFactoryImpl
+23718 4 484 85
+FUNC 2371c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::~TestFactoryImpl
+2371c 4 484 85
+FUNC 23720 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::~TestFactoryImpl
+23720 4 484 85
+FUNC 23724 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::~TestFactoryImpl
+23724 4 484 85
+FUNC 23728 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::~TestFactoryImpl
+23728 4 484 85
+FUNC 2372c 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::~TestFactoryImpl
+2372c 4 484 85
+FUNC 23730 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::~TestFactoryImpl
+23730 4 484 85
+FUNC 23734 4 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::~TestFactoryImpl
+23734 4 484 85
+FUNC 23738 b4 0 std::basic_streambuf<char, std::char_traits<char> >::xsputn
+23738 14 84 128
+2374c c 84 128
+23758 4 86 128
+2375c 8 89 128
+23764 10 90 128
+23774 10 92 128
+23784 4 172 140
+23788 c 172 140
+23794 4 96 128
+23798 4 94 128
+2379c 4 95 128
+237a0 c 96 128
+237ac 4 100 128
+237b0 10 100 128
+237c0 8 99 128
+237c8 4 101 128
+237cc 8 102 128
+237d4 18 108 128
+FUNC 237ec a8 0 std::basic_streambuf<char, std::char_traits<char> >::_M_xsputnc
+237ec 14 112 128
+23800 c 112 128
+2380c 4 114 128
+23810 8 117 128
+23818 10 118 128
+23828 c 120 128
+23834 c 235 140
+23840 4 122 128
+23844 4 235 140
+23848 10 123 128
+23858 4 127 128
+2385c 10 127 128
+2386c 8 126 128
+23874 8 128 128
+2387c 18 133 128
+FUNC 23894 14 0 std::basic_streambuf<char, std::char_traits<char> >::~basic_streambuf
+23894 14 41 128
+FUNC 238a8 24 0 std::basic_streambuf<char, std::char_traits<char> >::~basic_streambuf
+238a8 c 40 128
+238b4 4 40 128
+238b8 4 41 128
+238bc 4 41 128
+238c0 8 41 128
+238c8 4 41 128
+FUNC 238cc 14 0 std::basic_ios<char, std::char_traits<char> >::~basic_ios
+238cc 14 59 109
+FUNC 238e0 24 0 std::basic_ios<char, std::char_traits<char> >::~basic_ios
+238e0 c 59 109
+238ec 8 59 109
+238f4 4 59 109
+238f8 8 59 109
+23900 4 59 109
+FUNC 23904 3c 0 InstallRaiseSIGKILL
+23904 4 297 6
+23908 4 300 6
+2390c 4 301 6
+23910 4 297 6
+23914 4 300 6
+23918 4 301 6
+2391c 4 299 6
+23920 4 300 6
+23924 4 301 6
+23928 4 299 6
+2392c 8 301 6
+23934 c 302 6
+FUNC 23940 8 0 RaiseSIGKILL
+23940 8 294 6
+FUNC 23948 1c 0 DoneCallbackRaiseSIGKILL
+23948 4 277 6
+2394c 4 278 6
+23950 4 277 6
+23954 4 278 6
+23958 c 280 6
+FUNC 23964 14 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::~ExceptionHandlerTest_WriteMinidumpForChild_Test
+23964 14 1154 6
+FUNC 23978 24 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::~ExceptionHandlerTest_WriteMinidumpForChild_Test
+23978 c 1154 6
+23984 8 1154 6
+2398c 4 1154 6
+23990 8 1154 6
+23998 4 1154 6
+FUNC 2399c 14 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::~ExceptionHandlerTest_AdditionalMemoryRemove_Test
+2399c 14 1112 6
+FUNC 239b0 24 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::~ExceptionHandlerTest_AdditionalMemoryRemove_Test
+239b0 c 1112 6
+239bc 8 1112 6
+239c4 4 1112 6
+239c8 8 1112 6
+239d0 4 1112 6
+FUNC 239d4 14 0 ExceptionHandlerTest_AdditionalMemory_Test::~ExceptionHandlerTest_AdditionalMemory_Test
+239d4 14 1068 6
+FUNC 239e8 24 0 ExceptionHandlerTest_AdditionalMemory_Test::~ExceptionHandlerTest_AdditionalMemory_Test
+239e8 c 1068 6
+239f4 8 1068 6
+239fc 4 1068 6
+23a00 8 1068 6
+23a08 4 1068 6
+FUNC 23a0c 14 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test
+23a0c 14 1036 6
+FUNC 23a20 24 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test
+23a20 c 1036 6
+23a2c 8 1036 6
+23a34 4 1036 6
+23a38 8 1036 6
+23a40 4 1036 6
+FUNC 23a44 14 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test
+23a44 14 1019 6
+FUNC 23a58 24 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test
+23a58 c 1019 6
+23a64 8 1019 6
+23a6c 4 1019 6
+23a70 8 1019 6
+23a78 4 1019 6
+FUNC 23a7c 14 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::~ExceptionHandlerTest_WriteMinidumpExceptionStream_Test
+23a7c 14 1000 6
+FUNC 23a90 24 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::~ExceptionHandlerTest_WriteMinidumpExceptionStream_Test
+23a90 c 1000 6
+23a9c 8 1000 6
+23aa4 4 1000 6
+23aa8 8 1000 6
+23ab0 4 1000 6
+FUNC 23ab4 14 0 ExceptionHandlerTest_ExternalDumper_Test::~ExceptionHandlerTest_ExternalDumper_Test
+23ab4 14 926 6
+FUNC 23ac8 24 0 ExceptionHandlerTest_ExternalDumper_Test::~ExceptionHandlerTest_ExternalDumper_Test
+23ac8 c 926 6
+23ad4 8 926 6
+23adc 4 926 6
+23ae0 8 926 6
+23ae8 4 926 6
+FUNC 23aec 14 0 ExceptionHandlerTest_ModuleInfo_Test::~ExceptionHandlerTest_ModuleInfo_Test
+23aec 14 806 6
+FUNC 23b00 24 0 ExceptionHandlerTest_ModuleInfo_Test::~ExceptionHandlerTest_ModuleInfo_Test
+23b00 c 806 6
+23b0c 8 806 6
+23b14 4 806 6
+23b18 8 806 6
+23b20 4 806 6
+FUNC 23b24 14 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::~ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test
+23b24 14 760 6
+FUNC 23b38 24 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::~ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test
+23b38 c 760 6
+23b44 8 760 6
+23b4c 4 760 6
+23b50 8 760 6
+23b58 4 760 6
+FUNC 23b5c 14 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test
+23b5c 14 667 6
+FUNC 23b70 24 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test
+23b70 c 667 6
+23b7c 8 667 6
+23b84 4 667 6
+23b88 8 667 6
+23b90 4 667 6
+FUNC 23b94 14 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test
+23b94 14 579 6
+FUNC 23ba8 24 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test
+23ba8 c 579 6
+23bb4 8 579 6
+23bbc 4 579 6
+23bc0 8 579 6
+23bc8 4 579 6
+FUNC 23bcc 14 0 ExceptionHandlerTest_InstructionPointerMemory_Test::~ExceptionHandlerTest_InstructionPointerMemory_Test
+23bcc 14 487 6
+FUNC 23be0 24 0 ExceptionHandlerTest_InstructionPointerMemory_Test::~ExceptionHandlerTest_InstructionPointerMemory_Test
+23be0 c 487 6
+23bec 8 487 6
+23bf4 4 487 6
+23bf8 8 487 6
+23c00 4 487 6
+FUNC 23c04 14 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::~ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test
+23c04 14 457 6
+FUNC 23c18 24 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::~ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test
+23c18 c 457 6
+23c24 8 457 6
+23c2c 4 457 6
+23c30 8 457 6
+23c38 4 457 6
+FUNC 23c3c 14 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::~ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test
+23c3c 14 441 6
+FUNC 23c50 24 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::~ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test
+23c50 c 441 6
+23c5c 8 441 6
+23c64 4 441 6
+23c68 8 441 6
+23c70 4 441 6
+FUNC 23c74 14 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::~ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test
+23c74 14 425 6
+FUNC 23c88 24 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::~ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test
+23c88 c 425 6
+23c94 8 425 6
+23c9c 4 425 6
+23ca0 8 425 6
+23ca8 4 425 6
+FUNC 23cac 14 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::~ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test
+23cac 14 409 6
+FUNC 23cc0 24 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::~ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test
+23cc0 c 409 6
+23ccc 8 409 6
+23cd4 4 409 6
+23cd8 8 409 6
+23ce0 4 409 6
+FUNC 23ce4 14 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::~ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test
+23ce4 14 380 6
+FUNC 23cf8 24 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::~ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test
+23cf8 c 380 6
+23d04 8 380 6
+23d0c 4 380 6
+23d10 8 380 6
+23d18 4 380 6
+FUNC 23d1c 14 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::~ExceptionHandlerTest_RedeliveryToDefaultHandler_Test
+23d1c 14 363 6
+FUNC 23d30 24 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::~ExceptionHandlerTest_RedeliveryToDefaultHandler_Test
+23d30 c 363 6
+23d3c 8 363 6
+23d44 4 363 6
+23d48 8 363 6
+23d50 4 363 6
+FUNC 23d54 14 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test
+23d54 14 351 6
+FUNC 23d68 24 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test
+23d68 c 351 6
+23d74 8 351 6
+23d7c 4 351 6
+23d80 8 351 6
+23d88 4 351 6
+FUNC 23d8c 14 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test
+23d8c 14 339 6
+FUNC 23da0 24 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test
+23da0 c 339 6
+23dac 8 339 6
+23db4 4 339 6
+23db8 8 339 6
+23dc0 4 339 6
+FUNC 23dc4 14 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test
+23dc4 14 327 6
+FUNC 23dd8 24 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test
+23dd8 c 327 6
+23de4 8 327 6
+23dec 4 327 6
+23df0 8 327 6
+23df8 4 327 6
+FUNC 23dfc 14 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test
+23dfc 14 315 6
+FUNC 23e10 24 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test
+23e10 c 315 6
+23e1c 8 315 6
+23e24 4 315 6
+23e28 8 315 6
+23e30 4 315 6
+FUNC 23e34 14 0 ExceptionHandlerTest_ChildCrashWithFD_Test::~ExceptionHandlerTest_ChildCrashWithFD_Test
+23e34 14 257 6
+FUNC 23e48 24 0 ExceptionHandlerTest_ChildCrashWithFD_Test::~ExceptionHandlerTest_ChildCrashWithFD_Test
+23e48 c 257 6
+23e54 8 257 6
+23e5c 4 257 6
+23e60 8 257 6
+23e68 4 257 6
+FUNC 23e6c 14 0 ExceptionHandlerTest_ChildCrashWithPath_Test::~ExceptionHandlerTest_ChildCrashWithPath_Test
+23e6c 14 253 6
+FUNC 23e80 24 0 ExceptionHandlerTest_ChildCrashWithPath_Test::~ExceptionHandlerTest_ChildCrashWithPath_Test
+23e80 c 253 6
+23e8c 8 253 6
+23e94 4 253 6
+23e98 8 253 6
+23ea0 4 253 6
+FUNC 23ea4 14 0 ExceptionHandlerTest_SimpleWithFD_Test::~ExceptionHandlerTest_SimpleWithFD_Test
+23ea4 14 170 6
+FUNC 23eb8 24 0 ExceptionHandlerTest_SimpleWithFD_Test::~ExceptionHandlerTest_SimpleWithFD_Test
+23eb8 c 170 6
+23ec4 8 170 6
+23ecc 4 170 6
+23ed0 8 170 6
+23ed8 4 170 6
+FUNC 23edc 14 0 ExceptionHandlerTest_SimpleWithPath_Test::~ExceptionHandlerTest_SimpleWithPath_Test
+23edc 14 160 6
+FUNC 23ef0 24 0 ExceptionHandlerTest_SimpleWithPath_Test::~ExceptionHandlerTest_SimpleWithPath_Test
+23ef0 c 160 6
+23efc 8 160 6
+23f04 4 160 6
+23f08 8 160 6
+23f10 4 160 6
+FUNC 23f14 194 0 CrashHandler
+23f14 10 877 6
+23f24 4 880 6
+23f28 4 877 6
+23f2c 4 877 6
+23f30 4 878 6
+23f34 10 880 6
+23f44 4 885 6
+23f48 4 886 6
+23f4c 4 891 6
+23f50 4 892 6
+23f54 4 895 6
+23f58 4 892 6
+23f5c 8 897 6
+23f64 4 902 6
+23f68 4 888 6
+23f6c 4 895 6
+23f70 4 902 6
+23f74 4 893 6
+23f78 4 903 6
+23f7c 4 895 6
+23f80 4 903 6
+23f84 4 904 6
+23f88 4 896 6
+23f8c 4 890 6
+23f90 4 893 6
+23f94 4 900 6
+23f98 4 901 6
+23f9c 8 888 6
+23fa4 4 895 6
+23fa8 8 904 6
+23fb0 4 905 6
+23fb4 4 907 6
+23fb8 8 906 6
+23fc0 8 907 6
+23fc8 8 909 6
+23fd0 8 910 6
+23fd8 8 911 6
+23fe0 24 3671 97
+24004 4 3671 97
+24008 8 3671 97
+24010 c 913 6
+2401c 4 3671 97
+24020 18 2979 97
+24038 4 2979 97
+2403c 8 2979 97
+24044 4 915 6
+24048 4 916 6
+2404c 4 915 6
+24050 24 3104 97
+24074 8 921 6
+2407c 4 3104 97
+24080 8 3104 97
+24088 10 919 6
+24098 10 922 6
+FUNC 240a8 d4 0 DoneCallback
+240a8 14 180 6
+240bc 4 180 6
+240c0 4 182 6
+240c4 4 181 6
+240c8 4 184 6
+240cc 4 191 6
+240d0 8 184 6
+240d8 4 187 6
+240dc 4 187 6
+240e0 4 185 6
+240e4 4 186 6
+240e8 4 187 6
+240ec 4 187 6
+240f0 20 3162 97
+24110 4 3162 97
+24114 8 3162 97
+2411c c 188 6
+24128 28 3162 97
+24150 4 3162 97
+24154 8 3162 97
+2415c 10 189 6
+2416c 10 192 6
+FUNC 2417c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::CreateTest
+2417c 10 486 85
+2418c 8 486 85
+24194 8 1154 6
+2419c 4 486 85
+241a0 c 1154 6
+241ac c 486 85
+FUNC 241b8 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::CreateTest
+241b8 10 486 85
+241c8 8 486 85
+241d0 8 1112 6
+241d8 4 486 85
+241dc c 1112 6
+241e8 c 486 85
+FUNC 241f4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::CreateTest
+241f4 10 486 85
+24204 8 486 85
+2420c 8 1068 6
+24214 4 486 85
+24218 c 1068 6
+24224 c 486 85
+FUNC 24230 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::CreateTest
+24230 10 486 85
+24240 8 486 85
+24248 8 339 6
+24250 4 486 85
+24254 c 339 6
+24260 c 486 85
+FUNC 2426c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::CreateTest
+2426c 10 486 85
+2427c 8 486 85
+24284 8 327 6
+2428c 4 486 85
+24290 c 327 6
+2429c c 486 85
+FUNC 242a8 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::CreateTest
+242a8 10 486 85
+242b8 8 486 85
+242c0 8 315 6
+242c8 4 486 85
+242cc c 315 6
+242d8 c 486 85
+FUNC 242e4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::CreateTest
+242e4 10 486 85
+242f4 8 486 85
+242fc 8 257 6
+24304 4 486 85
+24308 c 257 6
+24314 c 486 85
+FUNC 24320 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::CreateTest
+24320 10 486 85
+24330 8 486 85
+24338 8 253 6
+24340 4 486 85
+24344 c 253 6
+24350 c 486 85
+FUNC 2435c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::CreateTest
+2435c 10 486 85
+2436c 8 486 85
+24374 8 170 6
+2437c 4 486 85
+24380 c 170 6
+2438c c 486 85
+FUNC 24398 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::CreateTest
+24398 10 486 85
+243a8 8 486 85
+243b0 8 160 6
+243b8 4 486 85
+243bc c 160 6
+243c8 c 486 85
+FUNC 243d4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::CreateTest
+243d4 10 486 85
+243e4 8 486 85
+243ec 8 1036 6
+243f4 4 486 85
+243f8 c 1036 6
+24404 c 486 85
+FUNC 24410 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::CreateTest
+24410 10 486 85
+24420 8 486 85
+24428 8 1019 6
+24430 4 486 85
+24434 c 1019 6
+24440 c 486 85
+FUNC 2444c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::CreateTest
+2444c 10 486 85
+2445c 8 486 85
+24464 8 1000 6
+2446c 4 486 85
+24470 c 1000 6
+2447c c 486 85
+FUNC 24488 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::CreateTest
+24488 10 486 85
+24498 8 486 85
+244a0 8 926 6
+244a8 4 486 85
+244ac c 926 6
+244b8 c 486 85
+FUNC 244c4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::CreateTest
+244c4 10 486 85
+244d4 8 486 85
+244dc 8 806 6
+244e4 4 486 85
+244e8 c 806 6
+244f4 c 486 85
+FUNC 24500 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::CreateTest
+24500 10 486 85
+24510 8 486 85
+24518 8 760 6
+24520 4 486 85
+24524 c 760 6
+24530 c 486 85
+FUNC 2453c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::CreateTest
+2453c 10 486 85
+2454c 8 486 85
+24554 8 667 6
+2455c 4 486 85
+24560 c 667 6
+2456c c 486 85
+FUNC 24578 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::CreateTest
+24578 10 486 85
+24588 8 486 85
+24590 8 579 6
+24598 4 486 85
+2459c c 579 6
+245a8 c 486 85
+FUNC 245b4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::CreateTest
+245b4 10 486 85
+245c4 8 486 85
+245cc 8 487 6
+245d4 4 486 85
+245d8 c 487 6
+245e4 c 486 85
+FUNC 245f0 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::CreateTest
+245f0 10 486 85
+24600 8 486 85
+24608 8 457 6
+24610 4 486 85
+24614 c 457 6
+24620 c 486 85
+FUNC 2462c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::CreateTest
+2462c 10 486 85
+2463c 8 486 85
+24644 8 441 6
+2464c 4 486 85
+24650 c 441 6
+2465c c 486 85
+FUNC 24668 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::CreateTest
+24668 10 486 85
+24678 8 486 85
+24680 8 425 6
+24688 4 486 85
+2468c c 425 6
+24698 c 486 85
+FUNC 246a4 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::CreateTest
+246a4 10 486 85
+246b4 8 486 85
+246bc 8 409 6
+246c4 4 486 85
+246c8 c 409 6
+246d4 c 486 85
+FUNC 246e0 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::CreateTest
+246e0 10 486 85
+246f0 8 486 85
+246f8 8 380 6
+24700 4 486 85
+24704 c 380 6
+24710 c 486 85
+FUNC 2471c 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::CreateTest
+2471c 10 486 85
+2472c 8 486 85
+24734 8 363 6
+2473c 4 486 85
+24740 c 363 6
+2474c c 486 85
+FUNC 24758 3c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::CreateTest
+24758 10 486 85
+24768 8 486 85
+24770 8 351 6
+24778 4 486 85
+2477c c 351 6
+24788 c 486 85
+FUNC 24794 b0 0 std::basic_streambuf<char, std::char_traits<char> >::xsgetn
+24794 14 54 128
+247a8 c 54 128
+247b4 4 55 128
+247b8 8 58 128
+247c0 10 59 128
+247d0 10 61 128
+247e0 4 172 140
+247e4 c 172 140
+247f0 4 65 128
+247f4 4 63 128
+247f8 4 64 128
+247fc c 65 128
+24808 4 228 129
+2480c c 229 129
+24818 8 69 128
+24820 4 220 140
+24824 8 71 128
+2482c 18 80 128
+FUNC 24844 40 0 std::priv::__ucopy_trivial
+24844 14 103 137
+24858 10 107 137
+24868 c 106 137
+24874 4 107 137
+24878 c 108 137
+FUNC 24884 1c 0 testing::AssertionResult::message
+24884 4 1144 87
+24888 c 298 82
+24894 8 298 82
+2489c 4 299 82
+FUNC 248a0 48 0 testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+248a0 c 1140 87
+248ac c 1153 87
+248b8 10 1154 87
+248c8 8 1155 87
+248d0 c 1155 87
+248dc c 1140 87
+FUNC 248e8 30 0 std::priv::_String_base<char, std::allocator<char> >::_M_deallocate_block
+248e8 4 94 132
+248ec 4 64 132
+248f0 c 96 132
+248fc 8 97 132
+24904 8 161 101
+2490c 4 135 119
+24910 4 161 101
+24914 4 102 132
+FUNC 24918 28 0 google_breakpad::MinidumpDescriptor::~MinidumpDescriptor
+24918 c 47 8
+24924 4 47 8
+24928 c 156 132
+24934 8 47 8
+2493c 4 156 132
+FUNC 24940 34 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf
+24940 4 59 126
+24944 8 58 126
+2494c 4 59 126
+24950 4 58 126
+24954 4 58 126
+24958 8 59 126
+24960 4 156 132
+24964 4 59 126
+24968 8 59 126
+24970 4 59 126
+FUNC 24974 24 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf
+24974 c 58 126
+24980 4 58 126
+24984 4 59 126
+24988 4 59 126
+2498c 8 59 126
+24994 4 59 126
+FUNC 24998 60 0 testing::internal::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset
+24998 10 1152 87
+249a8 10 1153 87
+249b8 14 1154 87
+249cc 8 1155 87
+249d4 8 156 132
+249dc 8 1155 87
+249e4 4 1157 87
+249e8 10 1159 87
+FUNC 249f8 8 0 testing::internal::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+249f8 8 1140 87
+FUNC 24a00 fc 0 std::basic_ios<char, std::char_traits<char> >::init
+24a00 4 97 108
+24a04 4 92 109
+24a08 10 97 108
+24a18 4 50 108
+24a1c 4 92 109
+24a20 4 192 110
+24a24 4 97 108
+24a28 4 188 110
+24a2c 8 192 110
+24a34 4 193 110
+24a38 4 100 108
+24a3c 4 70 108
+24a40 8 100 108
+24a48 10 70 108
+24a58 8 72 108
+24a60 8 46 128
+24a68 4 47 128
+24a6c 8 46 128
+24a74 4 47 128
+24a78 4 46 128
+24a7c c 47 128
+24a88 c 48 128
+24a94 8 73 108
+24a9c 10 351 117
+24aac 4 76 108
+24ab0 8 100 108
+24ab8 8 100 108
+24ac0 4 188 110
+24ac4 8 112 110
+24acc 4 132 110
+24ad0 4 68 109
+24ad4 4 132 110
+24ad8 4 84 109
+24adc 4 190 110
+24ae0 4 139 110
+24ae4 4 84 109
+24ae8 14 110 108
+FUNC 24afc b4 0 std::basic_iostream<char, std::char_traits<char> >::basic_iostream
+24afc c 1406 111
+24b08 4 92 108
+24b0c 4 1406 111
+24b10 4 92 108
+24b14 4 1406 111
+24b18 4 1406 111
+24b1c 8 92 108
+24b24 4 87 112
+24b28 4 88 112
+24b2c 8 87 112
+24b34 4 87 112
+24b38 4 92 108
+24b3c 4 87 112
+24b40 4 92 108
+24b44 4 87 112
+24b48 4 88 112
+24b4c 4 87 112
+24b50 4 88 112
+24b54 4 38 121
+24b58 4 39 121
+24b5c 8 38 121
+24b64 c 38 121
+24b70 8 39 121
+24b78 10 1410 111
+24b88 4 1410 111
+24b8c 4 1410 111
+24b90 4 1410 111
+24b94 4 1411 111
+24b98 4 1410 111
+24b9c 4 1411 111
+24ba0 c 1412 111
+24bac 4 1411 111
+FUNC 24bb0 b0 0 std::basic_iostream<char, std::char_traits<char> >::basic_iostream
+24bb0 10 1406 111
+24bc0 c 1406 111
+24bcc 4 87 112
+24bd0 4 87 112
+24bd4 4 87 112
+24bd8 4 87 112
+24bdc 4 87 112
+24be0 4 88 112
+24be4 4 87 112
+24be8 4 88 112
+24bec c 88 112
+24bf8 4 38 121
+24bfc 4 1410 111
+24c00 4 38 121
+24c04 4 38 121
+24c08 4 38 121
+24c0c 4 38 121
+24c10 4 39 121
+24c14 10 39 121
+24c24 4 1410 111
+24c28 4 1410 111
+24c2c 4 1410 111
+24c30 4 1410 111
+24c34 4 1410 111
+24c38 4 1411 111
+24c3c 4 1412 111
+24c40 4 1410 111
+24c44 4 1410 111
+24c48 4 1411 111
+24c4c 8 1411 111
+24c54 8 1412 111
+24c5c 4 1411 111
+FUNC 24c60 98 0 std::__stlp_string_fill<char, std::char_traits<char> >
+24c60 10 16 133
+24c70 4 16 133
+24c74 4 20 133
+24c78 10 19 133
+24c88 8 20 133
+24c90 10 200 129
+24ca0 14 199 129
+24cb4 14 200 129
+24cc8 c 21 133
+24cd4 8 20 133
+24cdc 8 24 133
+24ce4 4 22 133
+24ce8 10 25 133
+FUNC 24cf8 1c 0 std::basic_streambuf<char, std::char_traits<char> >::sputn
+24cf8 8 204 129
+24d00 14 205 129
+FUNC 24d14 3c 0 std::basic_ios<char, std::char_traits<char> >::setstate
+24d14 8 95 109
+24d1c 4 95 109
+24d20 4 92 109
+24d24 4 95 109
+24d28 c 92 109
+24d34 4 192 110
+24d38 4 188 110
+24d3c 8 192 110
+24d44 4 193 110
+24d48 8 95 109
+FUNC 24d50 60 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase
+24d50 4 802 131
+24d54 4 803 131
+24d58 c 802 131
+24d64 8 802 131
+24d6c 4 803 131
+24d70 8 805 131
+24d78 8 168 140
+24d80 10 168 140
+24d90 10 806 131
+24da0 10 809 131
+FUNC 24db0 68 0 std::priv::_String_base<char, std::allocator<char> >::_M_allocate_block
+24db0 c 607 130
+24dbc 4 607 130
+24dc0 4 608 130
+24dc4 c 600 130
+24dd0 8 610 130
+24dd8 4 347 101
+24ddc 8 158 101
+24de4 c 134 119
+24df0 8 158 101
+24df8 4 613 130
+24dfc 4 611 130
+24e00 4 612 130
+24e04 8 613 130
+24e0c c 623 130
+FUNC 24e18 34 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+24e18 4 158 131
+24e1c 4 124 132
+24e20 8 158 131
+24e28 4 158 131
+24e2c 4 120 132
+24e30 4 481 101
+24e34 8 124 132
+24e3c 4 101 103
+24e40 c 166 131
+FUNC 24e4c 50 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+24e4c c 65 8
+24e58 4 65 8
+24e5c 4 69 8
+24e60 8 69 8
+24e68 4 69 8
+24e6c 4 69 8
+24e70 8 69 8
+24e78 c 69 8
+24e84 c 69 8
+24e90 c 71 8
+FUNC 24e9c bc 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream
+24e9c 10 439 126
+24eac 8 439 126
+24eb4 8 441 126
+24ebc 4 439 126
+24ec0 4 441 126
+24ec4 4 441 126
+24ec8 4 441 126
+24ecc 4 441 126
+24ed0 4 441 126
+24ed4 4 441 126
+24ed8 4 441 126
+24edc 4 34 128
+24ee0 4 441 126
+24ee4 30 34 128
+24f14 4 46 126
+24f18 4 46 126
+24f1c 10 46 126
+24f2c 8 46 126
+24f34 4 442 126
+24f38 10 442 126
+24f48 10 443 126
+FUNC 24f58 e8 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream
+24f58 c 439 126
+24f64 4 92 108
+24f68 8 439 126
+24f70 4 439 126
+24f74 4 92 108
+24f78 4 34 128
+24f7c 8 92 108
+24f84 4 441 126
+24f88 18 92 108
+24fa0 14 441 126
+24fb4 10 441 126
+24fc4 8 441 126
+24fcc 4 34 128
+24fd0 8 441 126
+24fd8 2c 34 128
+25004 4 46 126
+25008 4 46 126
+2500c 10 46 126
+2501c 8 46 126
+25024 c 442 126
+25030 10 443 126
+FUNC 25040 64 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+25040 18 639 130
+25058 4 112 132
+2505c 4 481 101
+25060 c 229 140
+2506c 4 643 130
+25070 c 379 131
+2507c 10 148 137
+2508c 4 380 131
+25090 4 101 103
+25094 10 644 130
+FUNC 250a4 58 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+250a4 14 647 130
+250b8 4 112 132
+250bc c 481 101
+250c8 4 378 131
+250cc 8 379 131
+250d4 10 148 137
+250e4 4 380 131
+250e8 4 101 103
+250ec 10 649 130
+FUNC 250fc 4c 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+250fc c 56 8
+25108 4 56 8
+2510c 18 61 8
+25124 c 61 8
+25130 c 61 8
+2513c c 63 8
+FUNC 25148 7c 0 CrashWithCallbacks
+25148 c 308 6
+25154 4 310 6
+25158 4 308 6
+2515c 8 308 6
+25164 8 310 6
+2516c 4 310 6
+25170 4 310 6
+25174 20 310 6
+25194 8 310 6
+2519c 10 207 6
+251ac 8 312 6
+251b4 10 313 6
+FUNC 251c4 2c 0 std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > >
+251c4 c 292 117
+251d0 4 292 117
+251d4 c 351 117
+251e0 4 351 117
+251e4 8 297 117
+251ec 4 351 117
+FUNC 251f0 8c 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+251f0 c 90 112
+251fc 8 90 112
+25204 8 90 112
+2520c c 90 112
+25218 4 90 112
+2521c 4 90 112
+25220 4 90 112
+25224 4 90 112
+25228 8 90 112
+25230 8 90 112
+25238 c 90 112
+25244 8 90 112
+2524c 10 90 112
+2525c 4 90 112
+25260 4 90 112
+25264 8 90 112
+2526c 4 90 112
+25270 c 90 112
+FUNC 2527c c 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+2527c c 90 112
+FUNC 25298 24 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+25298 c 90 112
+252a4 8 90 112
+252ac 4 90 112
+252b0 8 90 112
+252b8 4 90 112
+FUNC 252cc c 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+252cc c 90 112
+FUNC 252d8 8c 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+252d8 c 43 121
+252e4 4 43 121
+252e8 4 44 121
+252ec 8 44 121
+252f4 c 44 121
+25300 4 44 121
+25304 4 44 121
+25308 4 44 121
+2530c 4 44 121
+25310 8 44 121
+25318 8 44 121
+25320 c 44 121
+2532c 8 44 121
+25334 10 44 121
+25344 4 44 121
+25348 4 44 121
+2534c 8 44 121
+25354 4 44 121
+25358 c 44 121
+FUNC 25364 c 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+25364 c 44 121
+FUNC 25380 24 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+25380 c 43 121
+2538c 4 43 121
+25390 4 44 121
+25394 4 44 121
+25398 8 44 121
+253a0 4 44 121
+FUNC 253b4 c 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+253b4 4 43 121
+253b8 8 44 121
+FUNC 253c0 e0 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+253c0 c 1415 111
+253cc 8 1415 111
+253d4 4 1416 111
+253d8 8 1416 111
+253e0 c 1416 111
+253ec 4 1416 111
+253f0 4 1416 111
+253f4 4 1416 111
+253f8 4 1416 111
+253fc 8 1416 111
+25404 8 1416 111
+2540c c 1416 111
+25418 8 1416 111
+25420 8 1416 111
+25428 c 1416 111
+25434 8 1416 111
+2543c 4 1416 111
+25440 4 1416 111
+25444 10 1416 111
+25454 c 1416 111
+25460 8 1416 111
+25468 4 1416 111
+2546c 4 1416 111
+25470 4 1416 111
+25474 4 1416 111
+25478 8 1416 111
+25480 4 1416 111
+25484 4 1416 111
+25488 8 1416 111
+25490 4 1416 111
+25494 c 1416 111
+FUNC 254a0 c 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+254a0 4 1415 111
+254a4 8 1416 111
+FUNC 254ac cc 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+254ac c 453 126
+254b8 8 453 126
+254c0 4 454 126
+254c4 8 454 126
+254cc c 454 126
+254d8 4 454 126
+254dc 4 454 126
+254e0 4 454 126
+254e4 4 454 126
+254e8 8 454 126
+254f0 8 454 126
+254f8 c 454 126
+25504 8 454 126
+2550c 8 454 126
+25514 c 454 126
+25520 18 454 126
+25538 8 454 126
+25540 4 454 126
+25544 4 454 126
+25548 4 454 126
+2554c 4 454 126
+25550 8 454 126
+25558 4 454 126
+2555c 4 454 126
+25560 8 454 126
+25568 4 454 126
+2556c c 454 126
+FUNC 25578 c 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+25578 4 453 126
+2557c 8 454 126
+FUNC 25584 c 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+25584 c 454 126
+FUNC 255a8 24 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+255a8 c 453 126
+255b4 4 453 126
+255b8 4 454 126
+255bc 4 454 126
+255c0 8 454 126
+255c8 4 454 126
+FUNC 255e4 c 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+255e4 c 1416 111
+FUNC 25608 24 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+25608 c 1415 111
+25614 4 1415 111
+25618 4 1416 111
+2561c 4 1416 111
+25620 8 1416 111
+25628 4 1416 111
+FUNC 25644 5c 0 std::basic_ostream<char, std::char_traits<char> >::flush
+25644 c 134 122
+25650 4 134 122
+25654 14 135 122
+25668 c 153 129
+25674 8 136 122
+2567c 14 137 122
+25690 10 139 122
+FUNC 256a0 78 0 std::priv::__init_bostr<char, std::char_traits<char> >
+256a0 4 218 122
+256a4 4 228 122
+256a8 8 218 122
+256b0 4 218 122
+256b4 14 219 122
+256c8 8 221 122
+256d0 8 222 122
+256d8 14 223 122
+256ec 4 224 122
+256f0 c 225 122
+256fc c 174 110
+25708 10 229 122
+FUNC 25718 50 0 std::basic_ostream<char, std::char_traits<char> >::sentry::~sentry
+25718 c 184 122
+25724 1c 185 122
+25740 c 187 122
+2574c 4 189 122
+25750 8 190 122
+25758 4 189 122
+2575c c 190 122
+FUNC 25768 13c 0 std::basic_ostream<char, std::char_traits<char> >::_M_put_nowiden
+25768 10 331 121
+25778 8 331 121
+25780 10 181 122
+25790 4 333 121
+25794 c 229 140
+257a0 18 336 121
+257b8 8 339 121
+257c0 8 340 121
+257c8 c 341 121
+257d4 4 342 121
+257d8 4 341 121
+257dc c 342 121
+257e8 8 343 121
+257f0 8 343 121
+257f8 10 344 121
+25808 14 209 129
+2581c 8 343 121
+25824 14 209 129
+25838 8 348 121
+25840 c 348 121
+2584c 10 348 121
+2585c 8 348 121
+25864 4 351 121
+25868 c 139 110
+25874 4 357 121
+25878 14 358 121
+2588c 8 359 121
+25894 10 360 121
+FUNC 258a4 c0 0 std::priv::__put_num<char, std::char_traits<char>, long int>
+258a4 10 194 121
+258b4 8 194 121
+258bc 10 181 122
+258cc 4 199 121
+258d0 18 211 121
+258e8 4 202 121
+258ec 4 145 110
+258f0 4 202 121
+258f4 4 145 110
+258f8 4 202 121
+258fc 8 145 110
+25904 8 202 121
+2590c 4 67 120
+25910 4 202 121
+25914 8 67 120
+2591c c 202 121
+25928 4 67 120
+2592c 4 57 123
+25930 c 67 120
+2593c 8 202 121
+25944 4 210 121
+25948 8 212 121
+25950 14 213 121
+FUNC 25964 104 0 std::operator<< <char, std::char_traits<char>, std::allocator<char> >
+25964 14 30 133
+25978 8 30 133
+25980 10 181 122
+25990 4 41 133
+25994 18 62 133
+259ac c 400 131
+259b8 c 44 133
+259c4 4 138 110
+259c8 4 139 110
+259cc 4 44 133
+259d0 4 50 133
+259d4 4 46 133
+259d8 8 50 133
+259e0 14 52 133
+259f4 10 55 133
+25a04 c 55 133
+25a10 14 53 133
+25a24 8 55 133
+25a2c 4 57 133
+25a30 14 58 133
+25a44 4 58 133
+25a48 8 64 133
+25a50 18 65 133
+FUNC 25a68 c0 0 std::priv::__put_num<char, std::char_traits<char>, void const*>
+25a68 10 194 121
+25a78 8 194 121
+25a80 10 181 122
+25a90 4 199 121
+25a94 18 211 121
+25aac 4 202 121
+25ab0 4 145 110
+25ab4 4 202 121
+25ab8 4 145 110
+25abc 4 202 121
+25ac0 8 145 110
+25ac8 8 202 121
+25ad0 4 101 120
+25ad4 4 202 121
+25ad8 8 101 120
+25ae0 c 202 121
+25aec 4 101 120
+25af0 4 57 123
+25af4 c 101 120
+25b00 8 202 121
+25b08 4 210 121
+25b0c 8 212 121
+25b14 14 213 121
+FUNC 25b28 2c 0 std::priv::_String_base<char, std::allocator<char> >::_M_rest
+25b28 4 64 132
+25b2c 8 74 132
+25b34 10 74 132
+25b44 c 74 132
+25b50 4 74 132
+FUNC 25b54 5c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_compute_next_size
+25b54 8 302 131
+25b5c c 400 131
+25b68 10 304 131
+25b78 18 600 130
+25b90 4 306 131
+25b94 10 307 131
+25ba4 4 308 131
+25ba8 8 310 131
+FUNC 25bb0 164 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append
+25bb0 4 196 130
+25bb4 4 197 130
+25bb8 10 196 130
+25bc8 c 196 130
+25bd4 4 197 130
+25bd8 4 198 130
+25bdc c 199 130
+25be8 10 200 130
+25bf8 4 356 101
+25bfc 4 346 101
+25c00 4 347 101
+25c04 8 158 101
+25c0c 8 134 119
+25c14 8 158 101
+25c1c 4 352 101
+25c20 8 158 101
+25c28 10 86 137
+25c38 c 86 137
+25c44 10 146 103
+25c54 1c 86 137
+25c70 10 146 103
+25c80 8 205 130
+25c88 8 206 130
+25c90 4 101 103
+25c94 4 205 130
+25c98 4 160 132
+25c9c 4 164 132
+25ca0 8 165 132
+25ca8 4 210 130
+25cac 4 211 130
+25cb0 c 86 137
+25cbc 18 86 137
+25cd4 8 146 103
+25cdc 10 101 103
+25cec 4 232 140
+25cf0 c 214 130
+25cfc 18 218 130
+FUNC 25d14 90 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign
+25d14 10 242 130
+25d24 4 243 130
+25d28 4 242 130
+25d2c c 242 130
+25d38 8 400 131
+25d40 8 244 130
+25d48 4 168 140
+25d4c 8 168 140
+25d54 4 246 130
+25d58 14 246 130
+25d6c 4 168 140
+25d70 4 168 140
+25d74 4 400 131
+25d78 4 250 130
+25d7c 8 400 131
+25d84 c 250 130
+25d90 14 253 130
+FUNC 25da4 234 0 google_breakpad::AutoTempDir::AutoTempDir
+25da4 c 54 63
+25db0 8 54 63
+25db8 c 54 63
+25dc4 4 63 35
+25dc8 4 54 63
+25dcc 4 54 63
+25dd0 14 55 63
+25de4 8 63 35
+25dec 8 55 63
+25df4 18 63 35
+25e0c c 64 35
+25e18 8 65 35
+25e20 c 67 35
+25e2c 18 68 35
+25e44 4 67 35
+25e48 c 69 35
+25e54 10 75 35
+25e64 4 76 35
+25e68 4 79 35
+25e6c c 80 35
+25e78 8 81 35
+25e80 4 82 35
+25e84 10 84 35
+25e94 10 85 35
+25ea4 4 96 35
+25ea8 4 54 63
+25eac 8 96 35
+25eb4 14 94 35
+25ec8 4 96 35
+25ecc 8 94 35
+25ed4 c 96 35
+25ee0 10 97 35
+25ef0 10 100 35
+25f00 c 93 35
+25f0c 8 98 35
+25f14 4 101 35
+25f18 4 56 63
+25f1c 4 1139 87
+25f20 4 56 63
+25f24 4 277 82
+25f28 4 56 63
+25f2c 20 56 63
+25f4c 4 56 63
+25f50 4 56 63
+25f54 4 56 63
+25f58 1c 56 63
+25f74 8 56 63
+25f7c c 56 63
+25f88 8 85 79
+25f90 8 56 63
+25f98 8 156 132
+25fa0 8 256 82
+25fa8 8 229 140
+25fb0 4 563 131
+25fb4 c 563 131
+25fc0 18 58 63
+FUNC 25fd8 34 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=
+25fd8 c 353 131
+25fe4 4 353 131
+25fe8 c 229 140
+25ff4 8 355 131
+25ffc 4 355 131
+26000 8 356 131
+26008 4 355 131
+FUNC 2600c 24 0 SimpleCallback
+2600c 4 1148 6
+26010 4 1150 6
+26014 8 1148 6
+2601c 8 1150 6
+26024 c 1152 6
+FUNC 26030 98 0 testing::AssertionResult::AppendMessage
+26030 14 320 82
+26044 4 320 82
+26048 4 1144 87
+2604c 4 320 82
+26050 c 321 82
+2605c c 322 82
+26068 8 322 82
+26070 c 322 82
+2607c 8 323 82
+26084 4 1143 87
+26088 8 323 82
+26090 c 229 140
+2609c 8 530 131
+260a4 8 530 131
+260ac 8 156 132
+260b4 14 324 82
+FUNC 260c8 c0 0 std::priv::__put_num<char, std::char_traits<char>, long unsigned int>
+260c8 10 194 121
+260d8 8 194 121
+260e0 10 181 122
+260f0 4 199 121
+260f4 18 211 121
+2610c 4 202 121
+26110 4 145 110
+26114 4 202 121
+26118 4 145 110
+2611c 4 202 121
+26120 8 145 110
+26128 8 202 121
+26130 4 72 120
+26134 4 202 121
+26138 8 72 120
+26140 c 202 121
+2614c 4 72 120
+26150 4 57 123
+26154 c 72 120
+26160 8 202 121
+26168 4 210 121
+2616c 8 212 121
+26174 14 213 121
+FUNC 26188 54 0 testing::AssertionResult::operator<< <char [12]>
+26188 c 305 82
+26194 4 306 82
+26198 4 305 82
+2619c 4 306 82
+261a0 4 305 82
+261a4 4 306 82
+261a8 10 333 122
+261b8 c 306 82
+261c4 8 85 79
+261cc 10 308 82
+FUNC 261dc 64 0 testing::AssertionResult::operator<< <char const*>
+261dc c 305 82
+261e8 4 306 82
+261ec 4 305 82
+261f0 4 306 82
+261f4 4 305 82
+261f8 10 306 82
+26208 4 333 122
+2620c 4 150 79
+26210 c 333 122
+2621c c 306 82
+26228 8 85 79
+26230 10 308 82
+FUNC 26240 54 0 testing::AssertionResult::operator<< <char [3]>
+26240 c 305 82
+2624c 4 306 82
+26250 4 305 82
+26254 4 306 82
+26258 4 305 82
+2625c 4 306 82
+26260 10 333 122
+26270 c 306 82
+2627c 8 85 79
+26284 10 308 82
+FUNC 26294 54 0 testing::AssertionResult::operator<< <std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+26294 c 305 82
+262a0 4 306 82
+262a4 4 305 82
+262a8 4 306 82
+262ac 4 305 82
+262b0 4 306 82
+262b4 10 131 79
+262c4 c 306 82
+262d0 8 85 79
+262d8 10 308 82
+FUNC 262e8 54 0 testing::AssertionResult::operator<< <char [5]>
+262e8 c 305 82
+262f4 4 306 82
+262f8 4 305 82
+262fc 4 306 82
+26300 4 305 82
+26304 4 306 82
+26308 10 333 122
+26318 c 306 82
+26324 8 85 79
+2632c 10 308 82
+FUNC 2633c 104 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_appendT<char const*>
+2633c 4 468 131
+26340 4 470 131
+26344 14 468 131
+26358 8 468 131
+26360 4 470 131
+26364 4 355 114
+26368 c 472 131
+26374 10 473 131
+26384 4 356 101
+26388 4 346 101
+2638c 4 347 101
+26390 8 158 101
+26398 8 134 119
+263a0 8 158 101
+263a8 4 352 101
+263ac 4 353 101
+263b0 c 120 137
+263bc 4 479 131
+263c0 8 120 137
+263c8 10 148 137
+263d8 4 101 103
+263dc 8 478 131
+263e4 4 160 132
+263e8 4 164 132
+263ec c 165 132
+263f8 8 482 131
+26400 4 232 140
+26404 4 148 137
+26408 4 483 131
+2640c 8 148 137
+26414 8 101 103
+2641c c 485 131
+26428 18 489 131
+FUNC 26440 8c 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+26440 10 80 134
+26450 4 229 140
+26454 8 80 134
+2645c 4 80 134
+26460 4 229 140
+26464 4 400 131
+26468 4 229 140
+2646c 4 400 131
+26470 4 124 132
+26474 4 120 132
+26478 4 400 131
+2647c 8 481 101
+26484 c 124 132
+26490 4 101 103
+26494 10 517 131
+264a4 14 497 131
+264b8 14 94 134
+FUNC 264cc 370 0 google_breakpad::AutoTempDir::DeleteRecursively
+264cc 1c 69 63
+264e8 8 69 63
+264f0 c 71 63
+264fc 4 72 63
+26500 4 77 63
+26504 4 277 82
+26508 4 77 63
+2650c 4 79 63
+26510 4 256 82
+26514 10 76 63
+26524 14 77 63
+26538 10 77 63
+26548 4 77 63
+2654c 10 79 63
+2655c 4 79 63
+26560 4 79 63
+26564 10 79 63
+26574 8 156 132
+2657c c 81 63
+26588 8 81 63
+26590 4 1139 87
+26594 4 277 82
+26598 4 81 63
+2659c 24 81 63
+265c0 4 81 63
+265c4 4 81 63
+265c8 4 81 63
+265cc 1c 81 63
+265e8 8 81 63
+265f0 c 81 63
+265fc 8 85 79
+26604 8 81 63
+2660c 8 156 132
+26614 8 256 82
+2661c 10 82 63
+2662c 10 83 63
+2663c 8 85 63
+26644 8 85 63
+2664c 4 1139 87
+26650 4 277 82
+26654 4 85 63
+26658 24 85 63
+2667c 4 85 63
+26680 4 85 63
+26684 4 85 63
+26688 1c 85 63
+266a4 8 85 63
+266ac c 85 63
+266b8 8 85 79
+266c0 8 85 63
+266c8 8 156 132
+266d0 8 256 82
+266d8 c 156 132
+266e4 4 87 63
+266e8 4 277 82
+266ec c 87 63
+266f8 4 1139 87
+266fc 4 277 82
+26700 4 87 63
+26704 24 87 63
+26728 4 87 63
+2672c 4 87 63
+26730 4 87 63
+26734 1c 87 63
+26750 8 87 63
+26758 c 87 63
+26764 8 85 79
+2676c 8 87 63
+26774 8 156 132
+2677c 8 256 82
+26784 8 88 63
+2678c 8 88 63
+26794 4 1139 87
+26798 4 277 82
+2679c 4 88 63
+267a0 24 88 63
+267c4 4 88 63
+267c8 4 88 63
+267cc 4 88 63
+267d0 1c 88 63
+267ec 8 88 63
+267f4 c 88 63
+26800 8 85 79
+26808 8 88 63
+26810 8 156 132
+26818 8 256 82
+26820 1c 89 63
+FUNC 2683c 28 0 google_breakpad::AutoTempDir::~AutoTempDir
+2683c 4 60 63
+26840 4 61 63
+26844 8 60 63
+2684c 4 60 63
+26850 4 61 63
+26854 4 156 132
+26858 8 62 63
+26860 4 156 132
+FUNC 26864 70 0 CreateTMPFile
+26864 10 99 6
+26874 4 100 6
+26878 4 99 6
+2687c 10 100 6
+2688c c 103 6
+26898 8 104 6
+268a0 4 105 6
+268a4 c 106 6
+268b0 8 107 6
+268b8 8 156 132
+268c0 14 109 6
+FUNC 268d4 b0 0 ExceptionHandlerTest_SimpleWithFD_Test::TestBody
+268d4 c 170 6
+268e0 4 171 6
+268e4 4 170 6
+268e8 4 171 6
+268ec 4 174 6
+268f0 4 170 6
+268f4 4 171 6
+268f8 14 172 6
+2690c 10 173 6
+2691c c 174 6
+26928 20 174 6
+26948 8 174 6
+26950 8 175 6
+26958 8 174 6
+26960 8 156 132
+26968 8 175 6
+26970 14 176 6
+FUNC 26984 124 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::xsputn
+26984 4 170 126
+26988 4 174 126
+2698c 10 170 126
+2699c c 170 126
+269a8 4 174 126
+269ac 4 174 126
+269b0 c 174 126
+269bc 8 177 126
+269c4 c 177 126
+269d0 4 172 126
+269d4 14 193 126
+269e8 c 194 126
+269f4 10 497 131
+26a04 4 197 126
+26a08 4 93 129
+26a0c 4 94 129
+26a10 8 95 129
+26a18 10 497 131
+26a28 4 400 131
+26a2c 4 117 129
+26a30 4 400 131
+26a34 4 115 129
+26a38 4 119 129
+26a3c 4 115 129
+26a40 8 205 126
+26a48 c 172 126
+26a54 4 178 126
+26a58 8 179 126
+26a60 4 172 140
+26a64 4 172 140
+26a68 c 115 129
+26a74 8 182 126
+26a7c 4 172 140
+26a80 8 172 140
+26a88 4 186 126
+26a8c 8 187 126
+26a94 14 209 126
+FUNC 26aa8 88 0 testing::PrintToString<int>
+26aa8 4 883 80
+26aac 4 884 80
+26ab0 8 883 80
+26ab8 4 884 80
+26abc 4 883 80
+26ac0 4 883 80
+26ac4 4 884 80
+26ac8 4 883 80
+26acc 4 884 80
+26ad0 18 238 121
+26ae8 4 240 121
+26aec 4 239 121
+26af0 8 239 121
+26af8 4 239 121
+26afc 4 239 121
+26b00 8 240 121
+26b08 c 75 127
+26b14 8 886 80
+26b1c 14 887 80
+FUNC 26b30 114 0 testing::internal::CmpHelperOpFailure<int, int>
+26b30 c 1579 82
+26b3c 4 1583 82
+26b40 8 1579 82
+26b48 4 1579 82
+26b4c 4 1583 82
+26b50 4 1579 82
+26b54 4 1382 82
+26b58 10 1579 82
+26b68 4 1583 82
+26b6c 10 1583 82
+26b7c 8 1583 82
+26b84 c 1583 82
+26b90 8 1583 82
+26b98 c 1583 82
+26ba4 8 1583 82
+26bac 10 1584 82
+26bbc 10 1382 82
+26bcc 8 1584 82
+26bd4 4 1382 82
+26bd8 4 1584 82
+26bdc 10 1585 82
+26bec 10 1382 82
+26bfc 10 1585 82
+26c0c 8 1585 82
+26c14 10 156 132
+26c24 8 256 82
+26c2c 18 1586 82
+FUNC 26c44 44 0 testing::internal::CmpHelperNE<int, int>
+26c44 14 1615 82
+26c58 c 1615 82
+26c64 4 1615 82
+26c68 4 1615 82
+26c6c c 1615 82
+26c78 10 1615 82
+FUNC 26c88 9c 0 testing::internal::CmpHelperEQ<int, int>
+26c88 10 1476 82
+26c98 8 1476 82
+26ca0 10 1481 82
+26cb0 8 1482 82
+26cb8 2c 1382 82
+26ce4 1c 1471 82
+26d00 10 156 132
+26d10 14 1488 82
+FUNC 26d24 1f8 0 WaitForProcessToTerminate
+26d24 14 129 6
+26d38 8 129 6
+26d40 20 131 6
+26d60 4 131 6
+26d64 c 131 6
+26d70 c 131 6
+26d7c 30 131 6
+26dac 8 131 6
+26db4 c 302 82
+26dc0 18 131 6
+26dd8 c 256 82
+26de4 4 1139 87
+26de8 14 132 6
+26dfc 4 277 82
+26e00 4 132 6
+26e04 20 132 6
+26e24 4 132 6
+26e28 4 132 6
+26e2c 1c 132 6
+26e48 8 132 6
+26e50 c 132 6
+26e5c 8 85 79
+26e64 8 132 6
+26e6c 8 156 132
+26e74 10 256 82
+26e84 4 133 6
+26e88 c 1512 82
+26e94 8 133 6
+26e9c 14 1512 82
+26eb0 8 133 6
+26eb8 c 302 82
+26ec4 18 133 6
+26edc 8 133 6
+26ee4 c 133 6
+26ef0 8 85 79
+26ef8 8 133 6
+26f00 8 256 82
+26f08 14 134 6
+FUNC 26f1c 5c 0 testing::PrintToString<long int>
+26f1c 4 883 80
+26f20 4 884 80
+26f24 8 883 80
+26f2c 4 884 80
+26f30 4 883 80
+26f34 4 883 80
+26f38 4 884 80
+26f3c 4 883 80
+26f40 4 884 80
+26f44 c 259 121
+26f50 c 75 127
+26f5c 8 886 80
+26f64 14 887 80
+FUNC 26f78 9c 0 testing::internal::CmpHelperEQ<long int, long int>
+26f78 10 1476 82
+26f88 8 1476 82
+26f90 10 1481 82
+26fa0 8 1482 82
+26fa8 2c 1382 82
+26fd4 1c 1471 82
+26ff0 10 156 132
+27000 14 1488 82
+FUNC 27014 9c 0 testing::internal::CmpHelperEQ<int, long int>
+27014 10 1476 82
+27024 8 1476 82
+2702c 10 1481 82
+2703c 8 1482 82
+27044 2c 1382 82
+27070 1c 1471 82
+2708c 10 156 132
+2709c 14 1488 82
+FUNC 270b0 39c 0 ReadMinidumpPathFromPipe
+270b0 10 137 6
+270c0 4 139 6
+270c4 8 137 6
+270cc 4 140 6
+270d0 4 137 6
+270d4 4 141 6
+270d8 4 143 6
+270dc 4 137 6
+270e0 4 141 6
+270e4 1c 143 6
+27100 4 143 6
+27104 c 143 6
+27110 4 144 6
+27114 4 143 6
+27118 4 144 6
+2711c 30 1512 82
+2714c 8 144 6
+27154 c 302 82
+27160 18 144 6
+27178 10 256 82
+27188 4 1139 87
+2718c 8 145 6
+27194 4 277 82
+27198 4 145 6
+2719c 24 145 6
+271c0 1c 145 6
+271dc 8 145 6
+271e4 c 145 6
+271f0 8 85 79
+271f8 8 145 6
+27200 c 156 132
+2720c 8 256 82
+27214 18 148 6
+2722c 20 1512 82
+2724c 8 148 6
+27254 c 302 82
+27260 18 148 6
+27278 8 148 6
+27280 c 148 6
+2728c 8 85 79
+27294 8 148 6
+2729c 10 256 82
+272ac 8 149 6
+272b4 4 1619 82
+272b8 4 1619 82
+272bc 8 1619 82
+272c4 8 1619 82
+272cc 24 1619 82
+272f0 8 149 6
+272f8 c 302 82
+27304 18 149 6
+2731c 8 149 6
+27324 c 149 6
+27330 8 85 79
+27338 8 149 6
+27340 14 256 82
+27354 14 150 6
+27368 14 151 6
+2737c 20 1512 82
+2739c 8 151 6
+273a4 c 302 82
+273b0 18 151 6
+273c8 8 151 6
+273d0 c 151 6
+273dc 8 85 79
+273e4 8 151 6
+273ec 8 256 82
+273f4 18 156 6
+2740c 8 256 82
+27414 8 152 6
+2741c 8 153 6
+27424 c 154 6
+27430 4 155 6
+27434 14 156 6
+27448 4 155 6
+FUNC 2744c 134 0 testing::internal::CmpHelperGT<long int, int>
+2744c 14 1623 82
+27460 14 1623 82
+27474 4 1623 82
+27478 4 1623 82
+2747c 1c 1583 82
+27498 c 1382 82
+274a4 4 1583 82
+274a8 10 1583 82
+274b8 8 1583 82
+274c0 c 1583 82
+274cc 8 1583 82
+274d4 c 1583 82
+274e0 8 1583 82
+274e8 10 1584 82
+274f8 10 1382 82
+27508 8 1584 82
+27510 4 1382 82
+27514 4 1584 82
+27518 10 1585 82
+27528 10 1382 82
+27538 10 1585 82
+27548 8 1585 82
+27550 10 156 132
+27560 8 256 82
+27568 18 1623 82
+FUNC 27580 2d0 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::TestBody
+27580 10 1019 6
+27590 8 1020 6
+27598 c 1019 6
+275a4 8 1021 6
+275ac 4 1019 6
+275b0 4 1020 6
+275b4 4 1023 6
+275b8 8 1021 6
+275c0 4 277 82
+275c4 4 1021 6
+275c8 4 1139 87
+275cc 10 1022 6
+275dc c 1023 6
+275e8 20 1023 6
+27608 8 1023 6
+27610 8 1024 6
+27618 4 277 82
+2761c 4 1024 6
+27620 4 1139 87
+27624 4 1024 6
+27628 20 1024 6
+27648 4 1024 6
+2764c 4 1024 6
+27650 18 1024 6
+27668 4 256 82
+2766c 4 1027 6
+27670 8 1028 6
+27678 4 256 82
+2767c 4 1028 6
+27680 c 1027 6
+2768c 8 1028 6
+27694 8 1027 6
+2769c 24 1028 6
+276c0 4 302 82
+276c4 4 1028 6
+276c8 8 302 82
+276d0 18 1028 6
+276e8 8 256 82
+276f0 8 1031 6
+276f8 4 1139 87
+276fc 4 1031 6
+27700 4 277 82
+27704 4 1031 6
+27708 20 1031 6
+27728 4 1031 6
+2772c 4 1031 6
+27730 18 1031 6
+27748 4 1031 6
+2774c 4 1031 6
+27750 8 1031 6
+27758 c 1031 6
+27764 8 85 79
+2776c 8 1031 6
+27774 8 156 132
+2777c 10 256 82
+2778c 14 1032 6
+277a0 24 1033 6
+277c4 4 302 82
+277c8 4 1033 6
+277cc 8 302 82
+277d4 18 1033 6
+277ec 8 1033 6
+277f4 c 1033 6
+27800 8 85 79
+27808 8 1033 6
+27810 10 256 82
+27820 10 156 132
+27830 20 1034 6
+FUNC 27850 88 0 testing::PrintToString<void*>
+27850 4 883 80
+27854 4 884 80
+27858 8 883 80
+27860 4 884 80
+27864 4 883 80
+27868 4 884 80
+2786c 4 883 80
+27870 4 883 80
+27874 c 884 80
+27880 4 310 80
+27884 14 333 122
+27898 10 318 80
+278a8 8 291 121
+278b0 c 75 127
+278bc 8 886 80
+278c4 14 887 80
+FUNC 278d8 114 0 testing::internal::CmpHelperOpFailure<void*, void*>
+278d8 c 1579 82
+278e4 4 1583 82
+278e8 8 1579 82
+278f0 4 1579 82
+278f4 4 1583 82
+278f8 4 1579 82
+278fc 4 1382 82
+27900 10 1579 82
+27910 4 1583 82
+27914 10 1583 82
+27924 8 1583 82
+2792c c 1583 82
+27938 8 1583 82
+27940 c 1583 82
+2794c 8 1583 82
+27954 10 1584 82
+27964 10 1382 82
+27974 8 1584 82
+2797c 4 1382 82
+27980 4 1584 82
+27984 10 1585 82
+27994 10 1382 82
+279a4 10 1585 82
+279b4 8 1585 82
+279bc 10 156 132
+279cc 8 256 82
+279d4 18 1586 82
+FUNC 279ec 5c 0 testing::PrintToString<unsigned int>
+279ec 4 883 80
+279f0 4 884 80
+279f4 8 883 80
+279fc 4 884 80
+27a00 4 883 80
+27a04 4 883 80
+27a08 4 884 80
+27a0c 4 883 80
+27a10 4 884 80
+27a14 c 254 121
+27a20 c 75 127
+27a2c 8 886 80
+27a34 14 887 80
+FUNC 27a48 134 0 testing::internal::CmpHelperLT<unsigned int, unsigned int>
+27a48 14 1619 82
+27a5c 14 1619 82
+27a70 4 1619 82
+27a74 4 1619 82
+27a78 1c 1583 82
+27a94 c 1382 82
+27aa0 4 1583 82
+27aa4 10 1583 82
+27ab4 8 1583 82
+27abc c 1583 82
+27ac8 8 1583 82
+27ad0 c 1583 82
+27adc 8 1583 82
+27ae4 10 1584 82
+27af4 10 1382 82
+27b04 8 1584 82
+27b0c 4 1382 82
+27b10 4 1584 82
+27b14 10 1585 82
+27b24 10 1382 82
+27b34 10 1585 82
+27b44 8 1585 82
+27b4c 10 156 132
+27b5c 8 256 82
+27b64 18 1619 82
+FUNC 27b7c 9c 0 testing::internal::CmpHelperEQ<unsigned int, unsigned int>
+27b7c 10 1476 82
+27b8c 8 1476 82
+27b94 10 1481 82
+27ba4 8 1482 82
+27bac 2c 1382 82
+27bd8 1c 1471 82
+27bf4 10 156 132
+27c04 14 1488 82
+FUNC 27c18 158 0 testing::internal::CmpHelperEQFailure<MDExceptionCodeLinux, unsigned int>
+27c18 c 1464 82
+27c24 4 884 80
+27c28 14 1464 82
+27c3c 8 884 80
+27c44 4 1464 82
+27c48 c 1464 82
+27c54 8 884 80
+27c5c 20 181 122
+27c7c 4 199 121
+27c80 1c 211 121
+27c9c 4 202 121
+27ca0 4 145 110
+27ca4 4 202 121
+27ca8 4 145 110
+27cac 4 202 121
+27cb0 8 145 110
+27cb8 8 202 121
+27cc0 4 202 121
+27cc4 4 78 120
+27cc8 8 202 121
+27cd0 c 78 120
+27cdc 4 57 123
+27ce0 10 78 120
+27cf0 8 202 121
+27cf8 4 210 121
+27cfc 8 212 121
+27d04 c 75 127
+27d10 8 886 80
+27d18 c 1382 82
+27d24 1c 1471 82
+27d40 10 156 132
+27d50 20 1472 82
+FUNC 27d70 5c 0 testing::PrintToString<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+27d70 4 883 80
+27d74 4 884 80
+27d78 8 883 80
+27d80 4 884 80
+27d84 4 883 80
+27d88 4 883 80
+27d8c 4 884 80
+27d90 4 883 80
+27d94 4 884 80
+27d98 c 469 80
+27da4 c 75 127
+27db0 8 886 80
+27db8 14 887 80
+FUNC 27dcc c0 0 testing::internal::CmpHelperEQ<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+27dcc 14 1476 82
+27de0 18 1476 82
+27df8 4 400 131
+27dfc 4 1476 82
+27e00 c 400 131
+27e0c 8 289 134
+27e14 4 226 140
+27e18 4 289 134
+27e1c 20 1382 82
+27e3c 1c 1471 82
+27e58 14 156 132
+27e6c 8 1482 82
+27e74 18 1488 82
+FUNC 27e8c 1e8 0 ExceptionHandlerTest_SimpleWithPath_Test::TestBody
+27e8c 10 160 6
+27e9c 4 161 6
+27ea0 4 1512 82
+27ea4 4 161 6
+27ea8 8 160 6
+27eb0 4 163 6
+27eb4 4 161 6
+27eb8 8 163 6
+27ec0 4 163 6
+27ec4 4 1512 82
+27ec8 8 163 6
+27ed0 20 163 6
+27ef0 8 163 6
+27ef8 c 87 8
+27f04 20 1512 82
+27f24 8 156 132
+27f2c 8 164 6
+27f34 c 302 82
+27f40 18 164 6
+27f58 8 164 6
+27f60 c 164 6
+27f6c 8 85 79
+27f74 8 164 6
+27f7c 8 256 82
+27f84 14 165 6
+27f98 c 166 6
+27fa4 c 140 5
+27fb0 8 166 6
+27fb8 c 87 8
+27fc4 1c 1512 82
+27fe0 8 156 132
+27fe8 8 167 6
+27ff0 4 302 82
+27ff4 4 167 6
+27ff8 8 302 82
+28000 18 167 6
+28018 8 167 6
+28020 c 167 6
+2802c 8 85 79
+28034 8 167 6
+2803c 8 256 82
+28044 8 156 132
+2804c 8 163 6
+28054 8 167 6
+2805c 18 168 6
+FUNC 28074 5c 0 testing::PrintToString<long unsigned int>
+28074 4 883 80
+28078 4 884 80
+2807c 8 883 80
+28084 4 884 80
+28088 4 883 80
+2808c 4 883 80
+28090 4 884 80
+28094 4 883 80
+28098 4 884 80
+2809c c 263 121
+280a8 c 75 127
+280b4 8 886 80
+280bc 14 887 80
+FUNC 280d0 9c 0 testing::internal::CmpHelperEQ<long unsigned int, unsigned int>
+280d0 10 1476 82
+280e0 8 1476 82
+280e8 10 1481 82
+280f8 8 1482 82
+28100 2c 1382 82
+2812c 1c 1471 82
+28148 10 156 132
+28158 14 1488 82
+FUNC 2816c 9c 0 testing::internal::CmpHelperEQ<unsigned int, long unsigned int>
+2816c 10 1476 82
+2817c 8 1476 82
+28184 10 1481 82
+28194 8 1482 82
+2819c 2c 1382 82
+281c8 1c 1471 82
+281e4 10 156 132
+281f4 14 1488 82
+FUNC 28208 9c 0 testing::internal::CmpHelperEQ<long unsigned int, long unsigned int>
+28208 10 1476 82
+28218 8 1476 82
+28220 10 1481 82
+28230 8 1482 82
+28238 2c 1382 82
+28264 1c 1471 82
+28280 10 156 132
+28290 14 1488 82
+FUNC 282a4 28 0 std::fpos<mbstate_t>::fpos
+282a4 4 89 140
+282a8 10 89 140
+282b8 10 89 140
+282c8 4 89 140
+FUNC 282cc 20 0 std::basic_streambuf<char, std::char_traits<char> >::seekpos
+282cc 4 188 128
+282d0 4 189 128
+282d4 4 188 128
+282d8 14 189 128
+FUNC 282ec 20 0 std::basic_streambuf<char, std::char_traits<char> >::seekoff
+282ec 4 193 128
+282f0 4 195 128
+282f4 4 193 128
+282f8 14 195 128
+FUNC 2830c 110 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::seekoff
+2830c 10 299 126
+2831c 8 303 126
+28324 4 305 126
+28328 4 306 126
+2832c 10 308 126
+2833c 4 311 126
+28340 8 311 126
+28348 4 311 126
+2834c 8 311 126
+28354 8 315 126
+2835c 4 323 126
+28360 c 323 126
+2836c 4 332 126
+28370 8 324 126
+28378 8 335 126
+28380 8 337 126
+28388 c 312 126
+28394 8 353 126
+2839c c 323 126
+283a8 4 332 126
+283ac 8 324 126
+283b4 4 337 126
+283b8 4 339 126
+283bc 4 94 129
+283c0 8 343 126
+283c8 8 344 126
+283d0 c 346 126
+283dc 8 115 129
+283e4 8 352 126
+283ec 8 315 126
+283f4 c 400 131
+28400 4 321 126
+28404 8 315 126
+2840c 4 317 126
+28410 4 332 126
+28414 8 334 126
+FUNC 2841c 124 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::seekpos
+2841c 14 357 126
+28430 8 357 126
+28438 4 359 126
+2843c 8 357 126
+28444 4 359 126
+28448 4 362 126
+2844c 4 361 126
+28450 c 364 126
+2845c 4 367 126
+28460 c 367 126
+2846c 4 367 126
+28470 8 367 126
+28478 c 370 126
+28484 8 104 140
+2848c 4 372 126
+28490 8 373 126
+28498 14 373 126
+284ac 4 378 126
+284b0 c 379 126
+284bc 4 400 131
+284c0 c 379 126
+284cc 4 375 126
+284d0 4 94 129
+284d4 4 378 126
+284d8 c 386 126
+284e4 18 380 126
+284fc 4 115 129
+28500 4 117 129
+28504 4 119 129
+28508 8 115 129
+28510 4 367 126
+28514 c 370 126
+28520 c 104 140
+2852c 14 387 126
+FUNC 28540 b0 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_reserve
+28540 10 170 130
+28550 4 170 130
+28554 4 356 101
+28558 4 346 101
+2855c 4 347 101
+28560 8 158 101
+28568 c 134 119
+28574 8 158 101
+2857c 4 352 101
+28580 8 158 101
+28588 10 86 137
+28598 c 86 137
+285a4 10 146 103
+285b4 10 174 130
+285c4 4 101 103
+285c8 4 174 130
+285cc 4 164 132
+285d0 4 175 130
+285d4 4 165 132
+285d8 4 175 130
+285dc 4 176 130
+285e0 4 160 132
+285e4 c 176 130
+FUNC 285f0 60 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back
+285f0 c 534 131
+285fc 8 534 131
+28604 10 535 131
+28614 c 536 131
+28620 c 536 131
+2862c 8 101 103
+28634 4 232 140
+28638 c 539 131
+28644 c 540 131
+FUNC 28650 c4 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow
+28650 4 142 126
+28654 4 144 126
+28658 c 142 126
+28664 8 142 126
+2866c 4 182 140
+28670 4 144 126
+28674 4 145 126
+28678 4 163 126
+2867c 4 145 126
+28680 14 146 126
+28694 8 147 126
+2869c c 115 129
+286a8 4 149 126
+286ac c 150 126
+286b8 10 151 126
+286c8 4 153 126
+286cc 4 93 129
+286d0 4 94 129
+286d4 8 95 129
+286dc 10 157 126
+286ec 4 117 129
+286f0 4 119 129
+286f4 4 400 131
+286f8 c 115 129
+28704 10 166 126
+FUNC 28714 b8 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+28714 10 180 130
+28724 c 180 130
+28730 4 181 130
+28734 8 400 131
+2873c 10 182 130
+2874c c 600 130
+28758 c 184 130
+28764 10 185 130
+28774 8 185 130
+2877c c 186 130
+28788 8 249 137
+28790 4 146 103
+28794 8 249 137
+2879c c 101 103
+287a8 4 232 140
+287ac c 189 130
+287b8 14 192 130
+FUNC 287cc 10c 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_xsputnc
+287cc 4 213 126
+287d0 4 217 126
+287d4 14 213 126
+287e8 8 213 126
+287f0 4 217 126
+287f4 4 217 126
+287f8 4 217 126
+287fc 4 220 126
+28800 4 215 126
+28804 10 220 126
+28814 4 235 140
+28818 8 221 126
+28820 8 222 126
+28828 4 235 140
+2882c c 115 129
+28838 8 225 126
+28840 4 235 140
+28844 4 230 126
+28848 4 235 140
+2884c c 238 126
+28858 4 239 126
+2885c 4 240 126
+28860 4 239 126
+28864 4 240 126
+28868 4 239 126
+2886c c 240 126
+28878 4 242 126
+2887c 4 93 129
+28880 4 94 129
+28884 8 95 129
+2888c 14 244 126
+288a0 4 400 131
+288a4 4 117 129
+288a8 4 400 131
+288ac 4 115 129
+288b0 4 119 129
+288b4 4 115 129
+288b8 8 250 126
+288c0 4 215 126
+288c4 14 254 126
+FUNC 288d8 f0 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::setbuf
+288d8 4 262 126
+288dc 4 263 126
+288e0 10 262 126
+288f0 4 262 126
+288f4 c 263 126
+28900 8 269 126
+28908 4 271 126
+2890c 4 270 126
+28910 8 271 126
+28918 4 267 126
+2891c 8 265 126
+28924 8 274 126
+2892c 4 276 126
+28930 4 275 126
+28934 8 276 126
+2893c 4 266 126
+28940 4 264 126
+28944 4 400 131
+28948 4 279 126
+2894c c 400 131
+28958 4 72 132
+2895c 4 162 130
+28960 4 72 132
+28964 4 72 132
+28968 8 72 132
+28970 8 163 130
+28978 8 166 130
+28980 8 284 126
+28988 4 285 126
+2898c 4 93 129
+28990 4 94 129
+28994 4 95 129
+28998 8 288 126
+289a0 4 115 129
+289a4 4 117 129
+289a8 4 119 129
+289ac 4 115 129
+289b0 18 295 126
+FUNC 289c8 3e4 0 ChildCrash
+289c8 c 210 6
+289d4 4 211 6
+289d8 c 210 6
+289e4 4 211 6
+289e8 8 210 6
+289f0 4 214 6
+289f4 4 211 6
+289f8 4 212 6
+289fc c 214 6
+28a08 8 212 6
+28a10 4 214 6
+28a14 4 215 6
+28a18 14 216 6
+28a2c 4 218 6
+28a30 4 218 6
+28a34 10 218 6
+28a44 1c 218 6
+28a60 4 218 6
+28a64 4 218 6
+28a68 8 218 6
+28a70 c 302 82
+28a7c 18 218 6
+28a94 8 218 6
+28a9c c 218 6
+28aa8 8 85 79
+28ab0 8 218 6
+28ab8 10 256 82
+28ac8 8 221 6
+28ad0 4 222 6
+28ad4 4 225 6
+28ad8 c 227 6
+28ae4 c 227 6
+28af0 14 227 6
+28b04 8 229 6
+28b0c 4 230 6
+28b10 8 233 6
+28b18 4 230 6
+28b1c 4 233 6
+28b20 c 233 6
+28b2c 20 233 6
+28b4c 8 233 6
+28b54 10 207 6
+28b64 8 98 57
+28b6c 8 98 57
+28b74 4 239 6
+28b78 8 240 6
+28b80 c 242 6
+28b8c 8 242 6
+28b94 8 242 6
+28b9c 4 242 6
+28ba0 c 242 6
+28bac 8 242 6
+28bb4 8 242 6
+28bbc 10 244 6
+28bcc 20 242 6
+28bec c 245 6
+28bf8 8 245 6
+28c00 8 245 6
+28c08 4 245 6
+28c0c c 245 6
+28c18 8 245 6
+28c20 14 245 6
+28c34 20 245 6
+28c54 8 245 6
+28c5c c 245 6
+28c68 8 85 79
+28c70 8 245 6
+28c78 4 245 6
+28c7c 8 248 6
+28c84 4 248 6
+28c88 c 1552 82
+28c94 4 248 6
+28c98 8 1552 82
+28ca0 4 248 6
+28ca4 1c 1552 82
+28cc0 8 248 6
+28cc8 c 302 82
+28cd4 18 248 6
+28cec 8 256 82
+28cf4 28 249 6
+28d1c c 302 82
+28d28 18 249 6
+28d40 8 249 6
+28d48 c 249 6
+28d54 8 85 79
+28d5c 8 249 6
+28d64 14 256 82
+28d78 8 250 6
+28d80 10 156 132
+28d90 1c 251 6
+FUNC 28dac a8 0 ExceptionHandlerTest_ChildCrashWithPath_Test::TestBody
+28dac c 253 6
+28db8 10 254 6
+28dc8 8 254 6
+28dd0 8 254 6
+28dd8 4 254 6
+28ddc 8 254 6
+28de4 8 254 6
+28dec 14 254 6
+28e00 24 254 6
+28e24 8 254 6
+28e2c c 254 6
+28e38 8 85 79
+28e40 8 254 6
+28e48 c 255 6
+FUNC 28e54 a8 0 ExceptionHandlerTest_ChildCrashWithFD_Test::TestBody
+28e54 c 257 6
+28e60 10 258 6
+28e70 8 258 6
+28e78 8 258 6
+28e80 4 258 6
+28e84 8 258 6
+28e8c 8 258 6
+28e94 14 258 6
+28ea8 24 258 6
+28ecc 8 258 6
+28ed4 c 258 6
+28ee0 8 85 79
+28ee8 8 258 6
+28ef0 c 259 6
+FUNC 28efc 1a4 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::TestBody
+28efc c 315 6
+28f08 4 316 6
+28f0c 4 315 6
+28f10 8 316 6
+28f18 4 315 6
+28f1c 4 316 6
+28f20 8 318 6
+28f28 4 319 6
+28f2c 4 320 6
+28f30 4 1139 87
+28f34 4 320 6
+28f38 c 277 82
+28f44 4 320 6
+28f48 1c 320 6
+28f64 4 320 6
+28f68 4 320 6
+28f6c 4 320 6
+28f70 1c 320 6
+28f8c 8 320 6
+28f94 c 320 6
+28fa0 8 85 79
+28fa8 8 320 6
+28fb0 8 156 132
+28fb8 14 256 82
+28fcc c 321 6
+28fd8 14 321 6
+28fec 8 156 132
+28ff4 c 324 6
+29000 8 324 6
+29008 8 324 6
+29010 4 324 6
+29014 c 324 6
+29020 8 324 6
+29028 14 324 6
+2903c 24 324 6
+29060 8 324 6
+29068 c 324 6
+29074 8 85 79
+2907c 10 324 6
+2908c 14 325 6
+FUNC 290a0 1a4 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::TestBody
+290a0 c 327 6
+290ac 4 328 6
+290b0 4 327 6
+290b4 8 328 6
+290bc 4 327 6
+290c0 4 328 6
+290c4 8 330 6
+290cc 4 331 6
+290d0 4 332 6
+290d4 4 1139 87
+290d8 4 332 6
+290dc c 277 82
+290e8 4 332 6
+290ec 1c 332 6
+29108 4 332 6
+2910c 4 332 6
+29110 4 332 6
+29114 1c 332 6
+29130 8 332 6
+29138 c 332 6
+29144 8 85 79
+2914c 8 332 6
+29154 8 156 132
+2915c 14 256 82
+29170 c 333 6
+2917c 14 333 6
+29190 8 156 132
+29198 c 336 6
+291a4 8 336 6
+291ac 8 336 6
+291b4 4 336 6
+291b8 c 336 6
+291c4 8 336 6
+291cc 14 336 6
+291e0 24 336 6
+29204 8 336 6
+2920c c 336 6
+29218 8 85 79
+29220 10 336 6
+29230 14 337 6
+FUNC 29244 1a4 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::TestBody
+29244 c 339 6
+29250 4 340 6
+29254 4 339 6
+29258 8 340 6
+29260 4 339 6
+29264 4 340 6
+29268 8 342 6
+29270 4 343 6
+29274 4 344 6
+29278 4 1139 87
+2927c 4 344 6
+29280 c 277 82
+2928c 4 344 6
+29290 1c 344 6
+292ac 4 344 6
+292b0 4 344 6
+292b4 4 344 6
+292b8 1c 344 6
+292d4 8 344 6
+292dc c 344 6
+292e8 8 85 79
+292f0 8 344 6
+292f8 8 156 132
+29300 14 256 82
+29314 c 345 6
+29320 14 345 6
+29334 8 156 132
+2933c c 348 6
+29348 8 348 6
+29350 8 348 6
+29358 4 348 6
+2935c c 348 6
+29368 8 348 6
+29370 14 348 6
+29384 24 348 6
+293a8 8 348 6
+293b0 c 348 6
+293bc 8 85 79
+293c4 10 348 6
+293d4 14 349 6
+FUNC 293e8 1a4 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::TestBody
+293e8 c 351 6
+293f4 4 352 6
+293f8 4 351 6
+293fc 8 352 6
+29404 4 351 6
+29408 4 352 6
+2940c 8 354 6
+29414 4 355 6
+29418 4 356 6
+2941c 4 1139 87
+29420 4 356 6
+29424 c 277 82
+29430 4 356 6
+29434 1c 356 6
+29450 4 356 6
+29454 4 356 6
+29458 4 356 6
+2945c 1c 356 6
+29478 8 356 6
+29480 c 356 6
+2948c 8 85 79
+29494 8 356 6
+2949c 8 156 132
+294a4 14 256 82
+294b8 c 357 6
+294c4 14 357 6
+294d8 8 156 132
+294e0 c 360 6
+294ec 8 360 6
+294f4 8 360 6
+294fc 4 360 6
+29500 c 360 6
+2950c 8 360 6
+29514 14 360 6
+29528 24 360 6
+2954c 8 360 6
+29554 c 360 6
+29560 8 85 79
+29568 10 360 6
+29578 14 361 6
+FUNC 2958c fc 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::TestBody
+2958c c 363 6
+29598 4 364 6
+2959c 4 363 6
+295a0 c 364 6
+295ac 8 366 6
+295b4 4 367 6
+295b8 c 368 6
+295c4 14 368 6
+295d8 8 156 132
+295e0 c 373 6
+295ec 8 373 6
+295f4 8 373 6
+295fc 4 373 6
+29600 c 373 6
+2960c 8 373 6
+29614 14 373 6
+29628 24 373 6
+2964c 8 373 6
+29654 c 373 6
+29660 8 85 79
+29668 8 373 6
+29670 8 373 6
+29678 10 374 6
+FUNC 29688 324 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::TestBody
+29688 c 380 6
+29694 8 381 6
+2969c c 380 6
+296a8 8 381 6
+296b0 8 382 6
+296b8 4 383 6
+296bc 4 277 82
+296c0 4 385 6
+296c4 4 1139 87
+296c8 c 385 6
+296d4 4 277 82
+296d8 4 1139 87
+296dc 4 385 6
+296e0 24 385 6
+29704 1c 385 6
+29720 8 385 6
+29728 c 385 6
+29734 8 85 79
+2973c 8 385 6
+29744 8 156 132
+2974c 14 256 82
+29760 c 391 6
+2976c 24 391 6
+29790 8 391 6
+29798 10 396 6
+297a8 8 397 6
+297b0 4 1615 82
+297b4 4 397 6
+297b8 4 1615 82
+297bc 4 1615 82
+297c0 8 1615 82
+297c8 24 1615 82
+297ec c 397 6
+297f8 c 302 82
+29804 18 397 6
+2981c 8 256 82
+29824 18 399 6
+2983c 4 1615 82
+29840 4 1615 82
+29844 4 1615 82
+29848 8 1615 82
+29850 24 1615 82
+29874 c 399 6
+29880 c 302 82
+2988c 18 399 6
+298a4 8 399 6
+298ac c 399 6
+298b8 8 85 79
+298c0 8 399 6
+298c8 1c 256 82
+298e4 10 207 6
+298f4 8 403 6
+298fc c 406 6
+29908 8 406 6
+29910 8 406 6
+29918 4 406 6
+2991c c 406 6
+29928 8 406 6
+29930 14 406 6
+29944 24 406 6
+29968 8 406 6
+29970 c 406 6
+2997c 8 85 79
+29984 10 406 6
+29994 18 407 6
+FUNC 299ac 13c 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::TestBody
+299ac c 409 6
+299b8 8 410 6
+299c0 4 409 6
+299c4 8 410 6
+299cc 8 412 6
+299d4 4 413 6
+299d8 10 419 6
+299e8 20 419 6
+29a08 8 419 6
+29a10 c 420 6
+29a1c 14 420 6
+29a30 8 156 132
+29a38 8 420 6
+29a40 c 422 6
+29a4c 8 422 6
+29a54 8 422 6
+29a5c 4 422 6
+29a60 c 422 6
+29a6c 8 422 6
+29a74 14 422 6
+29a88 24 422 6
+29aac 8 422 6
+29ab4 c 422 6
+29ac0 8 85 79
+29ac8 8 422 6
+29ad0 8 422 6
+29ad8 10 423 6
+FUNC 29ae8 13c 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::TestBody
+29ae8 c 425 6
+29af4 8 426 6
+29afc 4 425 6
+29b00 8 426 6
+29b08 8 428 6
+29b10 4 429 6
+29b14 10 435 6
+29b24 24 435 6
+29b48 8 435 6
+29b50 c 436 6
+29b5c 10 436 6
+29b6c 8 156 132
+29b74 8 436 6
+29b7c c 438 6
+29b88 8 438 6
+29b90 8 438 6
+29b98 4 438 6
+29b9c c 438 6
+29ba8 8 438 6
+29bb0 14 438 6
+29bc4 24 438 6
+29be8 8 438 6
+29bf0 c 438 6
+29bfc 8 85 79
+29c04 8 438 6
+29c0c 8 438 6
+29c14 10 439 6
+FUNC 29c24 140 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::TestBody
+29c24 c 441 6
+29c30 8 442 6
+29c38 4 441 6
+29c3c 8 442 6
+29c44 8 444 6
+29c4c 4 445 6
+29c50 10 451 6
+29c60 24 451 6
+29c84 8 451 6
+29c8c c 452 6
+29c98 14 452 6
+29cac 8 156 132
+29cb4 8 452 6
+29cbc c 454 6
+29cc8 8 454 6
+29cd0 8 454 6
+29cd8 4 454 6
+29cdc c 454 6
+29ce8 8 454 6
+29cf0 14 454 6
+29d04 24 454 6
+29d28 8 454 6
+29d30 c 454 6
+29d3c 8 85 79
+29d44 8 454 6
+29d4c 8 454 6
+29d54 10 455 6
+FUNC 29d64 140 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::TestBody
+29d64 c 457 6
+29d70 8 458 6
+29d78 4 457 6
+29d7c 8 458 6
+29d84 8 460 6
+29d8c 4 461 6
+29d90 10 467 6
+29da0 24 467 6
+29dc4 8 467 6
+29dcc c 468 6
+29dd8 14 468 6
+29dec 8 156 132
+29df4 8 468 6
+29dfc c 470 6
+29e08 8 470 6
+29e10 8 470 6
+29e18 4 470 6
+29e1c c 470 6
+29e28 8 470 6
+29e30 14 470 6
+29e44 24 470 6
+29e68 8 470 6
+29e70 c 470 6
+29e7c 8 85 79
+29e84 8 470 6
+29e8c 8 470 6
+29e94 10 471 6
+FUNC 29ea4 9c4 0 ExceptionHandlerTest_ExternalDumper_Test::TestBody
+29ea4 4 926 6
+29ea8 4 928 6
+29eac 4 926 6
+29eb0 8 928 6
+29eb8 c 926 6
+29ec4 4 928 6
+29ec8 4 926 6
+29ecc c 928 6
+29ed8 10 926 6
+29ee8 c 928 6
+29ef4 20 928 6
+29f14 c 928 6
+29f20 4 928 6
+29f24 8 928 6
+29f2c c 302 82
+29f38 18 928 6
+29f50 8 928 6
+29f58 c 928 6
+29f64 8 85 79
+29f6c 8 928 6
+29f74 c 256 82
+29f80 8 930 6
+29f88 4 256 82
+29f8c 18 930 6
+29fa4 18 931 6
+29fbc 8 933 6
+29fc4 4 934 6
+29fc8 8 935 6
+29fd0 14 937 6
+29fe4 c 937 6
+29ff0 28 937 6
+2a018 8 156 132
+2a020 4 144 5
+2a024 4 207 6
+2a028 8 144 5
+2a030 c 207 6
+2a03c 8 939 6
+2a044 4 941 6
+2a048 4 955 6
+2a04c 8 941 6
+2a054 4 942 6
+2a058 8 948 6
+2a060 4 955 6
+2a064 4 948 6
+2a068 4 949 6
+2a06c 4 950 6
+2a070 4 949 6
+2a074 8 951 6
+2a07c 4 952 6
+2a080 4 942 6
+2a084 4 952 6
+2a088 4 953 6
+2a08c 4 942 6
+2a090 4 953 6
+2a094 1c 955 6
+2a0b0 4 955 6
+2a0b4 c 955 6
+2a0c0 8 956 6
+2a0c8 4 955 6
+2a0cc c 1512 82
+2a0d8 4 956 6
+2a0dc 10 1512 82
+2a0ec 4 956 6
+2a0f0 8 955 6
+2a0f8 4 1512 82
+2a0fc 8 956 6
+2a104 c 302 82
+2a110 14 956 6
+2a124 4 959 6
+2a128 8 959 6
+2a130 c 959 6
+2a13c 8 85 79
+2a144 8 959 6
+2a14c 10 256 82
+2a15c 4 1512 82
+2a160 4 256 82
+2a164 24 1512 82
+2a188 8 957 6
+2a190 c 302 82
+2a19c 18 957 6
+2a1b4 8 256 82
+2a1bc 4 958 6
+2a1c0 20 1552 82
+2a1e0 8 958 6
+2a1e8 c 302 82
+2a1f4 18 958 6
+2a20c 4 256 82
+2a210 4 1552 82
+2a214 4 256 82
+2a218 14 959 6
+2a22c 1c 1552 82
+2a248 8 959 6
+2a250 c 302 82
+2a25c 18 959 6
+2a274 4 256 82
+2a278 4 963 6
+2a27c 4 256 82
+2a280 c 961 6
+2a28c 8 962 6
+2a294 c 963 6
+2a2a0 4 963 6
+2a2a4 18 1512 82
+2a2bc 4 963 6
+2a2c0 c 965 6
+2a2cc c 967 6
+2a2d8 8 969 6
+2a2e0 8 970 6
+2a2e8 4 969 6
+2a2ec 4 1512 82
+2a2f0 4 969 6
+2a2f4 4 1512 82
+2a2f8 4 970 6
+2a2fc c 1512 82
+2a308 8 970 6
+2a310 4 302 82
+2a314 4 970 6
+2a318 8 302 82
+2a320 18 970 6
+2a338 8 970 6
+2a340 c 970 6
+2a34c 8 85 79
+2a354 8 970 6
+2a35c 10 256 82
+2a36c 8 971 6
+2a374 8 972 6
+2a37c c 975 6
+2a388 14 963 6
+2a39c 48 979 6
+2a3e4 c 302 82
+2a3f0 18 979 6
+2a408 8 256 82
+2a410 2c 980 6
+2a43c c 302 82
+2a448 18 980 6
+2a460 8 980 6
+2a468 c 980 6
+2a474 8 85 79
+2a47c 8 980 6
+2a484 10 256 82
+2a494 8 982 6
+2a49c 14 983 6
+2a4b0 1c 984 6
+2a4cc 4 277 82
+2a4d0 4 1139 87
+2a4d4 4 277 82
+2a4d8 4 1139 87
+2a4dc 4 984 6
+2a4e0 1c 984 6
+2a4fc 4 984 6
+2a500 4 984 6
+2a504 1c 984 6
+2a520 8 984 6
+2a528 c 984 6
+2a534 8 85 79
+2a53c 8 984 6
+2a544 c 156 132
+2a550 8 256 82
+2a558 8 987 6
+2a560 24 987 6
+2a584 4 987 6
+2a588 c 987 6
+2a594 4 987 6
+2a598 14 1512 82
+2a5ac 4 987 6
+2a5b0 10 1512 82
+2a5c0 4 987 6
+2a5c4 4 1512 82
+2a5c8 8 987 6
+2a5d0 c 302 82
+2a5dc 18 987 6
+2a5f4 8 987 6
+2a5fc c 987 6
+2a608 8 85 79
+2a610 8 987 6
+2a618 10 256 82
+2a628 c 990 6
+2a634 8 990 6
+2a63c 8 990 6
+2a644 4 990 6
+2a648 14 990 6
+2a65c c 990 6
+2a668 4 990 6
+2a66c 4 993 6
+2a670 4 993 6
+2a674 4 993 6
+2a678 4 1552 82
+2a67c 4 993 6
+2a680 4 1552 82
+2a684 8 993 6
+2a68c 4 993 6
+2a690 4 993 6
+2a694 1c 1552 82
+2a6b0 8 993 6
+2a6b8 c 302 82
+2a6c4 14 993 6
+2a6d8 4 994 6
+2a6dc 8 994 6
+2a6e4 c 994 6
+2a6f0 8 85 79
+2a6f8 8 994 6
+2a700 10 256 82
+2a710 20 990 6
+2a730 4 990 6
+2a734 4 990 6
+2a738 8 990 6
+2a740 c 990 6
+2a74c 8 85 79
+2a754 8 990 6
+2a75c 14 156 132
+2a770 8 256 82
+2a778 14 988 6
+2a78c 1c 1552 82
+2a7a8 8 988 6
+2a7b0 c 302 82
+2a7bc 18 988 6
+2a7d4 8 256 82
+2a7dc 28 994 6
+2a804 c 302 82
+2a810 18 994 6
+2a828 8 256 82
+2a830 8 995 6
+2a838 8 156 132
+2a840 28 996 6
+FUNC 2a868 aa4 0 ExceptionHandlerTest_InstructionPointerMemory_Test::TestBody
+2a868 10 487 6
+2a878 8 488 6
+2a880 10 487 6
+2a890 4 490 6
+2a894 4 487 6
+2a898 4 488 6
+2a89c c 490 6
+2a8a8 4 490 6
+2a8ac c 490 6
+2a8b8 1c 490 6
+2a8d4 8 490 6
+2a8dc 4 490 6
+2a8e0 8 490 6
+2a8e8 c 302 82
+2a8f4 18 490 6
+2a90c 8 490 6
+2a914 c 490 6
+2a920 8 85 79
+2a928 8 490 6
+2a930 10 256 82
+2a940 4 494 6
+2a944 4 256 82
+2a948 8 494 6
+2a950 8 497 6
+2a958 4 498 6
+2a95c 8 499 6
+2a964 c 502 6
+2a970 24 502 6
+2a994 8 502 6
+2a99c 1c 510 6
+2a9b8 4 511 6
+2a9bc 4 512 6
+2a9c0 10 517 6
+2a9d0 4 524 6
+2a9d4 8 524 6
+2a9dc 8 526 6
+2a9e4 c 528 6
+2a9f0 8 528 6
+2a9f8 8 528 6
+2aa00 4 528 6
+2aa04 c 528 6
+2aa10 8 528 6
+2aa18 4 528 6
+2aa1c 4 530 6
+2aa20 4 528 6
+2aa24 c 530 6
+2aa30 18 531 6
+2aa48 20 528 6
+2aa68 8 528 6
+2aa70 c 528 6
+2aa7c 8 85 79
+2aa84 8 528 6
+2aa8c 4 528 6
+2aa90 8 531 6
+2aa98 8 531 6
+2aaa0 4 531 6
+2aaa4 c 531 6
+2aab0 c 531 6
+2aabc 4 531 6
+2aac0 4 534 6
+2aac4 8 534 6
+2aacc 4 534 6
+2aad0 c 1552 82
+2aadc 4 534 6
+2aae0 4 534 6
+2aae4 1c 1552 82
+2ab00 8 534 6
+2ab08 c 302 82
+2ab14 1c 534 6
+2ab30 20 531 6
+2ab50 8 531 6
+2ab58 c 531 6
+2ab64 8 85 79
+2ab6c 8 531 6
+2ab74 4 531 6
+2ab78 8 256 82
+2ab80 28 535 6
+2aba8 c 302 82
+2abb4 18 535 6
+2abcc 8 535 6
+2abd4 c 535 6
+2abe0 8 85 79
+2abe8 8 535 6
+2abf0 10 256 82
+2ac00 8 1139 87
+2ac08 4 256 82
+2ac0c c 541 6
+2ac18 8 542 6
+2ac20 4 277 82
+2ac24 4 542 6
+2ac28 4 1139 87
+2ac2c 4 542 6
+2ac30 20 542 6
+2ac50 4 542 6
+2ac54 4 542 6
+2ac58 18 542 6
+2ac70 8 256 82
+2ac78 c 544 6
+2ac84 c 545 6
+2ac90 4 277 82
+2ac94 4 1139 87
+2ac98 c 277 82
+2aca4 4 546 6
+2aca8 20 546 6
+2acc8 4 546 6
+2accc 4 546 6
+2acd0 1c 546 6
+2acec 8 546 6
+2acf4 c 546 6
+2ad00 8 85 79
+2ad08 8 546 6
+2ad10 8 256 82
+2ad18 4 1139 87
+2ad1c c 277 82
+2ad28 4 547 6
+2ad2c 20 547 6
+2ad4c 4 547 6
+2ad50 4 547 6
+2ad54 18 547 6
+2ad6c 8 256 82
+2ad74 4 548 6
+2ad78 8 545 65
+2ad80 4 545 65
+2ad84 1c 548 6
+2ada0 8 548 6
+2ada8 4 548 6
+2adac 8 548 6
+2adb4 c 302 82
+2adc0 18 548 6
+2add8 8 548 6
+2ade0 c 548 6
+2adec 8 85 79
+2adf4 8 548 6
+2adfc c 256 82
+2ae08 8 1139 87
+2ae10 4 256 82
+2ae14 8 550 6
+2ae1c 4 277 82
+2ae20 4 550 6
+2ae24 8 277 82
+2ae2c 4 1139 87
+2ae30 4 551 6
+2ae34 24 551 6
+2ae58 18 551 6
+2ae70 c 256 82
+2ae7c 18 554 6
+2ae94 4 1139 87
+2ae98 4 554 6
+2ae9c 4 277 82
+2aea0 4 554 6
+2aea4 24 554 6
+2aec8 18 554 6
+2aee0 8 256 82
+2aee8 18 557 6
+2af00 4 277 82
+2af04 4 557 6
+2af08 4 1139 87
+2af0c 8 277 82
+2af14 4 558 6
+2af18 24 558 6
+2af3c 1c 558 6
+2af58 8 558 6
+2af60 c 558 6
+2af6c 8 85 79
+2af74 8 558 6
+2af7c 8 156 132
+2af84 10 256 82
+2af94 14 560 6
+2afa8 20 1512 82
+2afc8 8 560 6
+2afd0 c 302 82
+2afdc 18 560 6
+2aff4 8 560 6
+2affc c 560 6
+2b008 8 85 79
+2b010 8 560 6
+2b018 8 256 82
+2b020 4 561 6
+2b024 4 1139 87
+2b028 4 561 6
+2b02c 4 277 82
+2b030 4 561 6
+2b034 8 277 82
+2b03c 4 1139 87
+2b040 4 562 6
+2b044 24 562 6
+2b068 1c 562 6
+2b084 8 562 6
+2b08c c 562 6
+2b098 8 85 79
+2b0a0 8 562 6
+2b0a8 8 156 132
+2b0b0 14 256 82
+2b0c4 10 566 6
+2b0d4 10 567 6
+2b0e4 18 568 6
+2b0fc 4 1139 87
+2b100 4 277 82
+2b104 4 568 6
+2b108 20 568 6
+2b128 4 568 6
+2b12c 4 568 6
+2b130 4 568 6
+2b134 1c 568 6
+2b150 8 568 6
+2b158 c 568 6
+2b164 8 85 79
+2b16c 8 568 6
+2b174 8 156 132
+2b17c 8 256 82
+2b184 1c 569 6
+2b1a0 4 1139 87
+2b1a4 4 277 82
+2b1a8 4 569 6
+2b1ac 20 569 6
+2b1cc 4 569 6
+2b1d0 4 569 6
+2b1d4 4 569 6
+2b1d8 1c 569 6
+2b1f4 8 569 6
+2b1fc c 570 6
+2b208 8 85 79
+2b210 8 569 6
+2b218 8 156 132
+2b220 8 256 82
+2b228 18 571 6
+2b240 4 1139 87
+2b244 4 277 82
+2b248 4 571 6
+2b24c 20 571 6
+2b26c 4 571 6
+2b270 4 571 6
+2b274 4 571 6
+2b278 1c 571 6
+2b294 8 571 6
+2b29c c 572 6
+2b2a8 8 85 79
+2b2b0 8 571 6
+2b2b8 8 156 132
+2b2c0 8 256 82
+2b2c8 10 574 6
+2b2d8 10 156 132
+2b2e8 24 575 6
+FUNC 2b30c 9b4 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::TestBody
+2b30c 10 579 6
+2b31c 8 580 6
+2b324 10 579 6
+2b334 4 582 6
+2b338 4 580 6
+2b33c c 582 6
+2b348 4 582 6
+2b34c c 582 6
+2b358 1c 582 6
+2b374 8 582 6
+2b37c 4 582 6
+2b380 8 582 6
+2b388 c 302 82
+2b394 18 582 6
+2b3ac 8 582 6
+2b3b4 c 582 6
+2b3c0 8 85 79
+2b3c8 8 582 6
+2b3d0 14 256 82
+2b3e4 8 589 6
+2b3ec 4 590 6
+2b3f0 8 591 6
+2b3f8 c 594 6
+2b404 24 594 6
+2b428 8 594 6
+2b430 20 602 6
+2b450 4 603 6
+2b454 4 604 6
+2b458 c 609 6
+2b464 4 616 6
+2b468 8 616 6
+2b470 8 618 6
+2b478 c 620 6
+2b484 8 620 6
+2b48c 8 620 6
+2b494 4 620 6
+2b498 c 620 6
+2b4a4 8 620 6
+2b4ac 4 620 6
+2b4b0 4 622 6
+2b4b4 4 620 6
+2b4b8 c 622 6
+2b4c4 18 623 6
+2b4dc 20 620 6
+2b4fc 8 620 6
+2b504 c 620 6
+2b510 8 85 79
+2b518 8 620 6
+2b520 4 620 6
+2b524 8 623 6
+2b52c 8 623 6
+2b534 4 623 6
+2b538 c 623 6
+2b544 c 623 6
+2b550 4 623 6
+2b554 4 626 6
+2b558 8 626 6
+2b560 4 626 6
+2b564 8 1552 82
+2b56c 4 626 6
+2b570 4 626 6
+2b574 4 626 6
+2b578 1c 1552 82
+2b594 8 626 6
+2b59c c 302 82
+2b5a8 1c 626 6
+2b5c4 20 623 6
+2b5e4 8 623 6
+2b5ec c 623 6
+2b5f8 8 85 79
+2b600 8 623 6
+2b608 4 623 6
+2b60c 8 256 82
+2b614 28 627 6
+2b63c c 302 82
+2b648 18 627 6
+2b660 8 627 6
+2b668 c 627 6
+2b674 8 85 79
+2b67c 8 627 6
+2b684 10 256 82
+2b694 8 1139 87
+2b69c 4 256 82
+2b6a0 c 633 6
+2b6ac 8 634 6
+2b6b4 4 277 82
+2b6b8 4 634 6
+2b6bc 4 1139 87
+2b6c0 4 634 6
+2b6c4 20 634 6
+2b6e4 4 634 6
+2b6e8 4 634 6
+2b6ec 18 634 6
+2b704 8 256 82
+2b70c c 636 6
+2b718 8 637 6
+2b720 4 1139 87
+2b724 4 277 82
+2b728 4 637 6
+2b72c 8 277 82
+2b734 4 638 6
+2b738 20 638 6
+2b758 4 638 6
+2b75c 4 638 6
+2b760 18 638 6
+2b778 8 256 82
+2b780 4 1139 87
+2b784 c 277 82
+2b790 4 639 6
+2b794 20 639 6
+2b7b4 4 639 6
+2b7b8 4 639 6
+2b7bc 1c 639 6
+2b7d8 8 639 6
+2b7e0 c 639 6
+2b7ec 8 85 79
+2b7f4 8 639 6
+2b7fc 8 156 132
+2b804 10 256 82
+2b814 4 640 6
+2b818 8 545 65
+2b820 4 545 65
+2b824 8 640 6
+2b82c 4 640 6
+2b830 14 640 6
+2b844 4 640 6
+2b848 4 640 6
+2b84c 8 640 6
+2b854 c 302 82
+2b860 18 640 6
+2b878 8 640 6
+2b880 c 640 6
+2b88c 8 85 79
+2b894 c 640 6
+2b8a0 4 256 82
+2b8a4 4 1139 87
+2b8a8 4 256 82
+2b8ac 8 642 6
+2b8b4 4 277 82
+2b8b8 4 642 6
+2b8bc 8 277 82
+2b8c4 4 1139 87
+2b8c8 4 643 6
+2b8cc 20 643 6
+2b8ec 4 643 6
+2b8f0 4 643 6
+2b8f4 18 643 6
+2b90c 4 256 82
+2b910 4 646 6
+2b914 4 256 82
+2b918 c 646 6
+2b924 4 1139 87
+2b928 4 646 6
+2b92c 4 277 82
+2b930 4 646 6
+2b934 20 646 6
+2b954 4 646 6
+2b958 4 646 6
+2b95c 18 646 6
+2b974 8 256 82
+2b97c 14 649 6
+2b990 4 277 82
+2b994 4 649 6
+2b998 4 1139 87
+2b99c 8 277 82
+2b9a4 4 650 6
+2b9a8 20 650 6
+2b9c8 4 650 6
+2b9cc 4 650 6
+2b9d0 18 650 6
+2b9e8 8 256 82
+2b9f0 1c 652 6
+2ba0c 20 1512 82
+2ba2c 8 652 6
+2ba34 c 302 82
+2ba40 18 652 6
+2ba58 8 652 6
+2ba60 c 652 6
+2ba6c 8 85 79
+2ba74 8 652 6
+2ba7c 4 256 82
+2ba80 4 1139 87
+2ba84 4 256 82
+2ba88 8 653 6
+2ba90 4 277 82
+2ba94 4 653 6
+2ba98 8 277 82
+2baa0 4 1139 87
+2baa4 4 654 6
+2baa8 20 654 6
+2bac8 4 654 6
+2bacc 4 654 6
+2bad0 1c 654 6
+2baec 8 654 6
+2baf4 c 654 6
+2bb00 8 85 79
+2bb08 8 654 6
+2bb10 8 156 132
+2bb18 14 256 82
+2bb2c 10 657 6
+2bb3c 1c 658 6
+2bb58 4 1139 87
+2bb5c 4 277 82
+2bb60 4 658 6
+2bb64 20 658 6
+2bb84 4 658 6
+2bb88 4 658 6
+2bb8c 4 658 6
+2bb90 1c 658 6
+2bbac 8 658 6
+2bbb4 c 659 6
+2bbc0 8 85 79
+2bbc8 8 658 6
+2bbd0 8 156 132
+2bbd8 8 256 82
+2bbe0 18 660 6
+2bbf8 4 1139 87
+2bbfc 4 277 82
+2bc00 4 660 6
+2bc04 20 660 6
+2bc24 4 660 6
+2bc28 4 660 6
+2bc2c 4 660 6
+2bc30 1c 660 6
+2bc4c 8 660 6
+2bc54 c 661 6
+2bc60 8 85 79
+2bc68 8 660 6
+2bc70 8 156 132
+2bc78 8 256 82
+2bc80 10 662 6
+2bc90 10 156 132
+2bca0 20 663 6
+FUNC 2bcc0 9b8 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::TestBody
+2bcc0 10 667 6
+2bcd0 8 668 6
+2bcd8 10 667 6
+2bce8 4 670 6
+2bcec 4 668 6
+2bcf0 c 670 6
+2bcfc 4 670 6
+2bd00 c 670 6
+2bd0c 1c 670 6
+2bd28 8 670 6
+2bd30 4 670 6
+2bd34 8 670 6
+2bd3c c 302 82
+2bd48 18 670 6
+2bd60 8 670 6
+2bd68 c 670 6
+2bd74 8 85 79
+2bd7c 8 670 6
+2bd84 14 256 82
+2bd98 8 680 6
+2bda0 4 681 6
+2bda4 8 682 6
+2bdac c 685 6
+2bdb8 24 685 6
+2bddc 8 685 6
+2bde4 20 693 6
+2be04 4 694 6
+2be08 4 695 6
+2be0c 4 700 6
+2be10 4 706 6
+2be14 8 700 6
+2be1c 4 707 6
+2be20 8 707 6
+2be28 8 709 6
+2be30 c 711 6
+2be3c 8 711 6
+2be44 8 711 6
+2be4c 4 711 6
+2be50 c 711 6
+2be5c 8 711 6
+2be64 4 711 6
+2be68 4 713 6
+2be6c 4 711 6
+2be70 c 713 6
+2be7c 18 714 6
+2be94 20 711 6
+2beb4 8 711 6
+2bebc c 711 6
+2bec8 8 85 79
+2bed0 8 711 6
+2bed8 4 711 6
+2bedc 8 714 6
+2bee4 8 714 6
+2beec 4 714 6
+2bef0 c 714 6
+2befc c 714 6
+2bf08 4 714 6
+2bf0c 4 717 6
+2bf10 8 717 6
+2bf18 4 717 6
+2bf1c c 1552 82
+2bf28 4 717 6
+2bf2c 4 717 6
+2bf30 1c 1552 82
+2bf4c 8 717 6
+2bf54 c 302 82
+2bf60 1c 717 6
+2bf7c 20 714 6
+2bf9c 8 714 6
+2bfa4 c 714 6
+2bfb0 8 85 79
+2bfb8 8 714 6
+2bfc0 4 714 6
+2bfc4 8 256 82
+2bfcc 28 718 6
+2bff4 c 302 82
+2c000 18 718 6
+2c018 8 718 6
+2c020 c 718 6
+2c02c 8 85 79
+2c034 8 718 6
+2c03c 10 256 82
+2c04c 8 1139 87
+2c054 4 256 82
+2c058 c 723 6
+2c064 8 724 6
+2c06c 4 277 82
+2c070 4 724 6
+2c074 4 1139 87
+2c078 4 724 6
+2c07c 20 724 6
+2c09c 4 724 6
+2c0a0 4 724 6
+2c0a4 18 724 6
+2c0bc 8 256 82
+2c0c4 c 726 6
+2c0d0 8 727 6
+2c0d8 4 1139 87
+2c0dc 4 277 82
+2c0e0 4 727 6
+2c0e4 8 277 82
+2c0ec 4 728 6
+2c0f0 20 728 6
+2c110 4 728 6
+2c114 4 728 6
+2c118 18 728 6
+2c130 8 256 82
+2c138 4 1139 87
+2c13c c 277 82
+2c148 4 729 6
+2c14c 20 729 6
+2c16c 4 729 6
+2c170 4 729 6
+2c174 1c 729 6
+2c190 8 729 6
+2c198 c 729 6
+2c1a4 8 85 79
+2c1ac 8 729 6
+2c1b4 8 156 132
+2c1bc 10 256 82
+2c1cc 4 730 6
+2c1d0 8 545 65
+2c1d8 4 545 65
+2c1dc 1c 730 6
+2c1f8 8 730 6
+2c200 4 730 6
+2c204 8 730 6
+2c20c c 302 82
+2c218 18 730 6
+2c230 8 730 6
+2c238 c 730 6
+2c244 8 85 79
+2c24c c 730 6
+2c258 4 256 82
+2c25c 4 1139 87
+2c260 4 256 82
+2c264 8 732 6
+2c26c 4 277 82
+2c270 4 732 6
+2c274 8 277 82
+2c27c 4 1139 87
+2c280 4 733 6
+2c284 20 733 6
+2c2a4 4 733 6
+2c2a8 4 733 6
+2c2ac 18 733 6
+2c2c4 4 256 82
+2c2c8 4 736 6
+2c2cc 4 256 82
+2c2d0 c 736 6
+2c2dc 4 1139 87
+2c2e0 4 736 6
+2c2e4 4 277 82
+2c2e8 4 736 6
+2c2ec 20 736 6
+2c30c 4 736 6
+2c310 4 736 6
+2c314 18 736 6
+2c32c 8 256 82
+2c334 14 739 6
+2c348 4 277 82
+2c34c 4 739 6
+2c350 4 1139 87
+2c354 8 277 82
+2c35c 4 740 6
+2c360 20 740 6
+2c380 4 740 6
+2c384 4 740 6
+2c388 18 740 6
+2c3a0 8 256 82
+2c3a8 1c 743 6
+2c3c4 20 1512 82
+2c3e4 8 743 6
+2c3ec c 302 82
+2c3f8 18 743 6
+2c410 8 743 6
+2c418 c 743 6
+2c424 8 85 79
+2c42c 8 743 6
+2c434 4 256 82
+2c438 4 1139 87
+2c43c 4 256 82
+2c440 8 744 6
+2c448 4 277 82
+2c44c 4 744 6
+2c450 8 277 82
+2c458 4 1139 87
+2c45c 4 745 6
+2c460 20 745 6
+2c480 4 745 6
+2c484 4 745 6
+2c488 1c 745 6
+2c4a4 8 745 6
+2c4ac c 745 6
+2c4b8 8 85 79
+2c4c0 8 745 6
+2c4c8 8 156 132
+2c4d0 14 256 82
+2c4e4 10 748 6
+2c4f4 18 749 6
+2c50c 4 1139 87
+2c510 4 277 82
+2c514 4 749 6
+2c518 20 749 6
+2c538 4 749 6
+2c53c 4 749 6
+2c540 4 749 6
+2c544 1c 749 6
+2c560 8 749 6
+2c568 c 749 6
+2c574 8 85 79
+2c57c 8 749 6
+2c584 8 156 132
+2c58c 8 256 82
+2c594 1c 750 6
+2c5b0 4 1139 87
+2c5b4 4 277 82
+2c5b8 4 750 6
+2c5bc 20 750 6
+2c5dc 4 750 6
+2c5e0 4 750 6
+2c5e4 4 750 6
+2c5e8 1c 750 6
+2c604 8 750 6
+2c60c c 751 6
+2c618 8 85 79
+2c620 8 750 6
+2c628 8 156 132
+2c630 8 256 82
+2c638 10 753 6
+2c648 10 156 132
+2c658 20 754 6
+FUNC 2c678 5b4 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::TestBody
+2c678 10 760 6
+2c688 8 761 6
+2c690 10 760 6
+2c6a0 4 763 6
+2c6a4 4 761 6
+2c6a8 c 763 6
+2c6b4 4 763 6
+2c6b8 c 763 6
+2c6c4 1c 763 6
+2c6e0 8 763 6
+2c6e8 4 763 6
+2c6ec 8 763 6
+2c6f4 c 302 82
+2c700 18 763 6
+2c718 8 763 6
+2c720 c 763 6
+2c72c 8 85 79
+2c734 8 763 6
+2c73c 14 256 82
+2c750 8 765 6
+2c758 4 766 6
+2c75c 8 767 6
+2c764 c 770 6
+2c770 24 770 6
+2c794 8 770 6
+2c79c 8 774 6
+2c7a4 8 774 6
+2c7ac 8 776 6
+2c7b4 c 778 6
+2c7c0 8 778 6
+2c7c8 8 778 6
+2c7d0 4 778 6
+2c7d4 c 778 6
+2c7e0 8 778 6
+2c7e8 4 778 6
+2c7ec 4 780 6
+2c7f0 4 778 6
+2c7f4 c 780 6
+2c800 18 781 6
+2c818 20 778 6
+2c838 8 778 6
+2c840 c 778 6
+2c84c 8 85 79
+2c854 8 778 6
+2c85c 4 778 6
+2c860 8 781 6
+2c868 8 781 6
+2c870 4 781 6
+2c874 c 781 6
+2c880 c 781 6
+2c88c 4 781 6
+2c890 4 784 6
+2c894 8 784 6
+2c89c 4 784 6
+2c8a0 8 1552 82
+2c8a8 4 784 6
+2c8ac 4 784 6
+2c8b0 4 784 6
+2c8b4 1c 1552 82
+2c8d0 8 784 6
+2c8d8 c 302 82
+2c8e4 1c 784 6
+2c900 20 781 6
+2c920 8 781 6
+2c928 c 781 6
+2c934 8 85 79
+2c93c 8 781 6
+2c944 4 781 6
+2c948 8 256 82
+2c950 28 785 6
+2c978 c 302 82
+2c984 18 785 6
+2c99c 8 785 6
+2c9a4 c 785 6
+2c9b0 8 85 79
+2c9b8 8 785 6
+2c9c0 10 256 82
+2c9d0 8 1139 87
+2c9d8 4 256 82
+2c9dc c 791 6
+2c9e8 8 792 6
+2c9f0 4 277 82
+2c9f4 4 792 6
+2c9f8 4 1139 87
+2c9fc 4 792 6
+2ca00 20 792 6
+2ca20 4 792 6
+2ca24 4 792 6
+2ca28 18 792 6
+2ca40 8 256 82
+2ca48 c 794 6
+2ca54 8 795 6
+2ca5c 4 1139 87
+2ca60 4 277 82
+2ca64 4 795 6
+2ca68 8 277 82
+2ca70 4 796 6
+2ca74 20 796 6
+2ca94 4 796 6
+2ca98 4 796 6
+2ca9c 18 796 6
+2cab4 8 256 82
+2cabc 4 1139 87
+2cac0 c 277 82
+2cacc 4 797 6
+2cad0 20 797 6
+2caf0 4 797 6
+2caf4 4 797 6
+2caf8 1c 797 6
+2cb14 8 797 6
+2cb1c c 797 6
+2cb28 8 85 79
+2cb30 8 797 6
+2cb38 c 156 132
+2cb44 8 256 82
+2cb4c 8 798 6
+2cb54 8 545 65
+2cb5c 4 545 65
+2cb60 1c 1512 82
+2cb7c 8 798 6
+2cb84 4 1512 82
+2cb88 8 798 6
+2cb90 c 302 82
+2cb9c 18 798 6
+2cbb4 8 798 6
+2cbbc c 798 6
+2cbc8 8 85 79
+2cbd0 8 798 6
+2cbd8 14 256 82
+2cbec 10 800 6
+2cbfc 10 156 132
+2cc0c 20 801 6
+FUNC 2cc2c 8d8 0 ExceptionHandlerTest_ModuleInfo_Test::TestBody
+2cc2c 4 806 6
+2cc30 4 809 6
+2cc34 10 806 6
+2cc44 4 814 6
+2cc48 c 806 6
+2cc54 4 818 6
+2cc58 8 806 6
+2cc60 8 809 6
+2cc68 54 814 6
+2ccbc 4 809 6
+2ccc0 10 814 6
+2ccd0 4 809 6
+2ccd4 10 814 6
+2cce4 4 818 6
+2cce8 4 814 6
+2ccec 8 818 6
+2ccf4 4 814 6
+2ccf8 8 819 6
+2cd00 4 818 6
+2cd04 18 819 6
+2cd1c 8 440 130
+2cd24 c 162 99
+2cd30 8 164 99
+2cd38 c 165 99
+2cd44 c 168 99
+2cd50 8 166 99
+2cd58 c 171 99
+2cd64 8 169 99
+2cd6c c 174 99
+2cd78 c 172 99
+2cd84 8 164 99
+2cd8c 20 178 99
+2cdac 10 180 99
+2cdbc 4 181 99
+2cdc0 10 183 99
+2cdd0 4 184 99
+2cdd4 10 186 99
+2cde4 8 165 99
+2cdec 4 190 99
+2cdf0 8 447 130
+2cdf8 8 447 130
+2ce00 8 822 6
+2ce08 8 400 131
+2ce10 8 789 131
+2ce18 c 604 130
+2ce24 4 139 100
+2ce28 4 791 131
+2ce2c 4 791 131
+2ce30 10 791 131
+2ce40 14 530 131
+2ce54 4 277 82
+2ce58 8 1139 87
+2ce60 8 530 131
+2ce68 20 836 6
+2ce88 4 277 82
+2ce8c 4 837 6
+2ce90 8 277 82
+2ce98 4 837 6
+2ce9c 4 1139 87
+2cea0 4 837 6
+2cea4 4 838 6
+2cea8 24 838 6
+2cecc 1c 838 6
+2cee8 8 838 6
+2cef0 c 838 6
+2cefc 8 85 79
+2cf04 8 838 6
+2cf0c 8 156 132
+2cf14 10 256 82
+2cf24 4 849 6
+2cf28 4 1139 87
+2cf2c 4 256 82
+2cf30 c 840 6
+2cf3c c 842 6
+2cf48 20 842 6
+2cf68 8 842 6
+2cf70 10 849 6
+2cf80 28 849 6
+2cfa8 8 156 132
+2cfb0 8 850 6
+2cfb8 4 277 82
+2cfbc 4 850 6
+2cfc0 4 1139 87
+2cfc4 4 850 6
+2cfc8 24 850 6
+2cfec 1c 850 6
+2d008 8 850 6
+2d010 c 850 6
+2d01c 8 85 79
+2d024 8 850 6
+2d02c 8 156 132
+2d034 10 256 82
+2d044 8 1139 87
+2d04c 4 256 82
+2d050 10 855 6
+2d060 c 855 6
+2d06c 8 156 132
+2d074 8 856 6
+2d07c 4 277 82
+2d080 4 856 6
+2d084 4 1139 87
+2d088 4 856 6
+2d08c 24 856 6
+2d0b0 18 856 6
+2d0c8 8 256 82
+2d0d0 8 858 6
+2d0d8 4 277 82
+2d0dc 4 858 6
+2d0e0 4 1139 87
+2d0e4 8 277 82
+2d0ec 4 859 6
+2d0f0 24 859 6
+2d114 18 859 6
+2d12c 8 256 82
+2d134 18 861 6
+2d14c 4 277 82
+2d150 4 861 6
+2d154 4 1139 87
+2d158 8 277 82
+2d160 4 862 6
+2d164 24 862 6
+2d188 1c 862 6
+2d1a4 8 862 6
+2d1ac c 862 6
+2d1b8 8 85 79
+2d1c0 8 862 6
+2d1c8 8 156 132
+2d1d0 14 256 82
+2d1e4 14 864 6
+2d1f8 20 1512 82
+2d218 8 864 6
+2d220 c 302 82
+2d22c 18 864 6
+2d244 8 864 6
+2d24c c 864 6
+2d258 8 85 79
+2d260 8 864 6
+2d268 8 256 82
+2d270 14 865 6
+2d284 20 1512 82
+2d2a4 8 865 6
+2d2ac c 302 82
+2d2b8 18 865 6
+2d2d0 8 865 6
+2d2d8 c 865 6
+2d2e4 8 85 79
+2d2ec 8 865 6
+2d2f4 8 256 82
+2d2fc 18 866 6
+2d314 8 400 131
+2d31c 8 315 134
+2d324 8 226 140
+2d32c 4 315 134
+2d330 8 1482 82
+2d338 8 156 132
+2d340 8 866 6
+2d348 c 302 82
+2d354 18 866 6
+2d36c 8 866 6
+2d374 c 866 6
+2d380 8 85 79
+2d388 8 866 6
+2d390 8 256 82
+2d398 14 867 6
+2d3ac 20 1512 82
+2d3cc 8 156 132
+2d3d4 8 867 6
+2d3dc c 302 82
+2d3e8 18 867 6
+2d400 8 867 6
+2d408 c 867 6
+2d414 8 85 79
+2d41c 8 867 6
+2d424 8 256 82
+2d42c 20 869 6
+2d44c 8 156 132
+2d454 28 870 6
+2d47c c 884 80
+2d488 10 711 80
+2d498 c 469 80
+2d4a4 8 156 132
+2d4ac c 75 127
+2d4b8 8 886 80
+2d4c0 c 1382 82
+2d4cc 24 1471 82
+2d4f0 14 156 132
+FUNC 2d504 370 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::TestBody
+2d504 10 1000 6
+2d514 4 1001 6
+2d518 4 1003 6
+2d51c 4 1001 6
+2d520 c 1000 6
+2d52c 4 1003 6
+2d530 4 1001 6
+2d534 8 1003 6
+2d53c 8 277 82
+2d544 4 1003 6
+2d548 4 1139 87
+2d54c 24 1003 6
+2d570 8 1003 6
+2d578 8 1004 6
+2d580 4 277 82
+2d584 4 1004 6
+2d588 4 1139 87
+2d58c 4 1004 6
+2d590 24 1004 6
+2d5b4 1c 1004 6
+2d5d0 8 1004 6
+2d5d8 c 1004 6
+2d5e4 8 85 79
+2d5ec 8 1004 6
+2d5f4 8 156 132
+2d5fc 10 256 82
+2d60c 4 1139 87
+2d610 4 256 82
+2d614 10 1006 6
+2d624 c 1009 6
+2d630 8 1010 6
+2d638 4 277 82
+2d63c 4 1010 6
+2d640 4 1139 87
+2d644 4 1010 6
+2d648 20 1010 6
+2d668 4 1010 6
+2d66c 4 1010 6
+2d670 18 1010 6
+2d688 8 256 82
+2d690 8 1011 6
+2d698 4 277 82
+2d69c 4 1011 6
+2d6a0 4 1139 87
+2d6a4 8 277 82
+2d6ac 4 1012 6
+2d6b0 20 1012 6
+2d6d0 4 1012 6
+2d6d4 4 1012 6
+2d6d8 18 1012 6
+2d6f0 4 256 82
+2d6f4 4 600 65
+2d6f8 4 256 82
+2d6fc 4 600 65
+2d700 4 1139 87
+2d704 8 600 65
+2d70c c 277 82
+2d718 4 1014 6
+2d71c 20 1014 6
+2d73c 4 1014 6
+2d740 4 1014 6
+2d744 18 1014 6
+2d75c 4 1014 6
+2d760 4 1014 6
+2d764 8 1014 6
+2d76c c 1014 6
+2d778 8 85 79
+2d780 8 1014 6
+2d788 8 156 132
+2d790 10 256 82
+2d7a0 c 1015 6
+2d7ac 4 1482 82
+2d7b0 c 1481 82
+2d7bc 8 1482 82
+2d7c4 18 1487 82
+2d7dc 8 1015 6
+2d7e4 4 302 82
+2d7e8 4 1015 6
+2d7ec 8 302 82
+2d7f4 18 1015 6
+2d80c 8 1015 6
+2d814 c 1016 6
+2d820 8 85 79
+2d828 8 1015 6
+2d830 10 256 82
+2d840 18 156 132
+2d858 1c 1017 6
+FUNC 2d874 5b8 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::TestBody
+2d874 c 1036 6
+2d880 4 1037 6
+2d884 8 1036 6
+2d88c 4 1037 6
+2d890 14 1036 6
+2d8a4 4 1037 6
+2d8a8 c 1039 6
+2d8b4 4 1039 6
+2d8b8 4 277 82
+2d8bc c 1139 87
+2d8c8 4 1039 6
+2d8cc 20 1039 6
+2d8ec 8 1039 6
+2d8f4 8 1040 6
+2d8fc 4 277 82
+2d900 4 1040 6
+2d904 4 1139 87
+2d908 4 1040 6
+2d90c 24 1040 6
+2d930 1c 1040 6
+2d94c 8 1040 6
+2d954 c 1040 6
+2d960 8 85 79
+2d968 8 1040 6
+2d970 c 156 132
+2d97c 4 256 82
+2d980 8 1552 82
+2d988 4 256 82
+2d98c 4 1044 6
+2d990 c 1044 6
+2d99c 4 1044 6
+2d9a0 1c 1552 82
+2d9bc 8 1044 6
+2d9c4 c 302 82
+2d9d0 18 1044 6
+2d9e8 8 1044 6
+2d9f0 c 1044 6
+2d9fc 8 85 79
+2da04 8 1044 6
+2da0c 14 256 82
+2da20 38 1045 6
+2da58 c 302 82
+2da64 18 1045 6
+2da7c 4 256 82
+2da80 4 1046 6
+2da84 8 1139 87
+2da8c 4 256 82
+2da90 10 1046 6
+2daa0 c 1048 6
+2daac 8 1049 6
+2dab4 4 277 82
+2dab8 4 1049 6
+2dabc 4 1139 87
+2dac0 4 1049 6
+2dac4 20 1049 6
+2dae4 4 1049 6
+2dae8 4 1049 6
+2daec 18 1049 6
+2db04 8 256 82
+2db0c 8 1050 6
+2db14 8 1053 6
+2db1c 4 1139 87
+2db20 4 1053 6
+2db24 4 277 82
+2db28 4 1053 6
+2db2c 20 1053 6
+2db4c 4 1053 6
+2db50 4 1053 6
+2db54 1c 1053 6
+2db70 8 1053 6
+2db78 c 1053 6
+2db84 8 85 79
+2db8c 8 1053 6
+2db94 8 156 132
+2db9c 14 256 82
+2dbb0 4 1055 6
+2dbb4 c 1055 6
+2dbc0 4 1055 6
+2dbc4 1c 1552 82
+2dbe0 8 1055 6
+2dbe8 c 302 82
+2dbf4 18 1055 6
+2dc0c 8 256 82
+2dc14 24 1056 6
+2dc38 c 302 82
+2dc44 18 1056 6
+2dc5c 8 1056 6
+2dc64 c 1056 6
+2dc70 8 85 79
+2dc78 8 1056 6
+2dc80 c 256 82
+2dc8c 4 277 82
+2dc90 4 1139 87
+2dc94 4 256 82
+2dc98 10 1057 6
+2dca8 c 1059 6
+2dcb4 8 1060 6
+2dcbc 4 277 82
+2dcc0 4 1060 6
+2dcc4 4 1139 87
+2dcc8 4 1060 6
+2dccc 20 1060 6
+2dcec 4 1060 6
+2dcf0 4 1060 6
+2dcf4 4 1060 6
+2dcf8 1c 1060 6
+2dd14 8 1060 6
+2dd1c c 1060 6
+2dd28 8 85 79
+2dd30 8 1060 6
+2dd38 8 156 132
+2dd40 10 256 82
+2dd50 8 1061 6
+2dd58 20 1064 6
+2dd78 8 1064 6
+2dd80 4 302 82
+2dd84 4 1064 6
+2dd88 8 302 82
+2dd90 18 1064 6
+2dda8 8 1064 6
+2ddb0 c 1064 6
+2ddbc 8 85 79
+2ddc4 8 1064 6
+2ddcc 10 256 82
+2dddc 28 156 132
+2de04 28 1065 6
+FUNC 2de2c 488 0 ExceptionHandlerTest_AdditionalMemory_Test::TestBody
+2de2c 4 1068 6
+2de30 4 1069 6
+2de34 c 1068 6
+2de40 4 1069 6
+2de44 14 1068 6
+2de58 8 1069 6
+2de60 4 1072 6
+2de64 4 277 82
+2de68 8 1072 6
+2de70 8 1073 6
+2de78 4 1139 87
+2de7c 4 1073 6
+2de80 8 277 82
+2de88 8 256 82
+2de90 4 1077 6
+2de94 4 1078 6
+2de98 c 1077 6
+2dea4 c 1078 6
+2deb0 8 1077 6
+2deb8 4 1081 6
+2debc 4 1083 6
+2dec0 4 1081 6
+2dec4 c 1092 6
+2ded0 4 1081 6
+2ded4 4 1139 87
+2ded8 c 1083 6
+2dee4 20 1083 6
+2df04 8 1083 6
+2df0c 10 1086 6
+2df1c 8 1087 6
+2df24 10 1092 6
+2df34 c 1092 6
+2df40 8 156 132
+2df48 8 1093 6
+2df50 4 277 82
+2df54 4 1093 6
+2df58 4 1139 87
+2df5c 4 1093 6
+2df60 20 1093 6
+2df80 4 1093 6
+2df84 4 1093 6
+2df88 18 1093 6
+2dfa0 8 256 82
+2dfa8 8 1095 6
+2dfb0 4 277 82
+2dfb4 4 1095 6
+2dfb8 4 1139 87
+2dfbc 8 277 82
+2dfc4 4 1096 6
+2dfc8 20 1096 6
+2dfe8 4 1096 6
+2dfec 4 1096 6
+2dff0 18 1096 6
+2e008 8 256 82
+2e010 18 1098 6
+2e028 4 277 82
+2e02c 4 1098 6
+2e030 4 1139 87
+2e034 8 277 82
+2e03c 4 1099 6
+2e040 20 1099 6
+2e060 4 1099 6
+2e064 4 1099 6
+2e068 1c 1099 6
+2e084 8 1099 6
+2e08c c 1099 6
+2e098 8 85 79
+2e0a0 8 1099 6
+2e0a8 8 156 132
+2e0b0 14 256 82
+2e0c4 14 1101 6
+2e0d8 20 1512 82
+2e0f8 8 1101 6
+2e100 c 302 82
+2e10c 18 1101 6
+2e124 8 1101 6
+2e12c c 1101 6
+2e138 8 85 79
+2e140 8 1101 6
+2e148 8 256 82
+2e150 14 1102 6
+2e164 20 1512 82
+2e184 8 1102 6
+2e18c c 302 82
+2e198 18 1102 6
+2e1b0 8 1102 6
+2e1b8 c 1102 6
+2e1c4 8 85 79
+2e1cc 8 1102 6
+2e1d4 8 256 82
+2e1dc c 1105 6
+2e1e8 c 1105 6
+2e1f4 4 1105 6
+2e1f8 20 1552 82
+2e218 8 1105 6
+2e220 c 302 82
+2e22c 18 1105 6
+2e244 8 1105 6
+2e24c c 1105 6
+2e258 8 85 79
+2e260 8 1105 6
+2e268 8 256 82
+2e270 20 1107 6
+2e290 24 1108 6
+FUNC 2e2b4 2d0 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::TestBody
+2e2b4 4 1112 6
+2e2b8 4 1113 6
+2e2bc 18 1112 6
+2e2d4 4 1113 6
+2e2d8 8 1116 6
+2e2e0 4 277 82
+2e2e4 4 1120 6
+2e2e8 4 1122 6
+2e2ec 8 1116 6
+2e2f4 4 277 82
+2e2f8 4 256 82
+2e2fc 4 277 82
+2e300 4 1134 6
+2e304 4 277 82
+2e308 8 1139 87
+2e310 4 256 82
+2e314 8 1120 6
+2e31c c 1122 6
+2e328 20 1122 6
+2e348 8 1122 6
+2e350 c 1125 6
+2e35c 4 1134 6
+2e360 4 1125 6
+2e364 c 1128 6
+2e370 8 1129 6
+2e378 10 1134 6
+2e388 c 1134 6
+2e394 8 156 132
+2e39c 8 1135 6
+2e3a4 4 277 82
+2e3a8 4 1135 6
+2e3ac 4 1139 87
+2e3b0 4 1135 6
+2e3b4 20 1135 6
+2e3d4 4 1135 6
+2e3d8 4 1135 6
+2e3dc 18 1135 6
+2e3f4 8 256 82
+2e3fc 8 1137 6
+2e404 4 277 82
+2e408 4 1137 6
+2e40c 4 1139 87
+2e410 8 277 82
+2e418 4 1138 6
+2e41c 20 1138 6
+2e43c 4 1138 6
+2e440 4 1138 6
+2e444 18 1138 6
+2e45c 4 1138 6
+2e460 4 1138 6
+2e464 8 1138 6
+2e46c c 1138 6
+2e478 8 85 79
+2e480 8 1138 6
+2e488 8 156 132
+2e490 14 256 82
+2e4a4 14 1140 6
+2e4b8 8 1141 6
+2e4c0 4 1139 87
+2e4c4 4 277 82
+2e4c8 4 1141 6
+2e4cc 20 1141 6
+2e4ec 4 1141 6
+2e4f0 4 1141 6
+2e4f4 4 1141 6
+2e4f8 1c 1141 6
+2e514 8 1141 6
+2e51c c 1141 6
+2e528 8 85 79
+2e530 8 1141 6
+2e538 8 156 132
+2e540 8 256 82
+2e548 20 1143 6
+2e568 1c 1144 6
+FUNC 2e584 540 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::TestBody
+2e584 4 1154 6
+2e588 4 1156 6
+2e58c 8 1154 6
+2e594 c 1156 6
+2e5a0 10 1154 6
+2e5b0 4 1156 6
+2e5b4 4 1156 6
+2e5b8 4 1156 6
+2e5bc 2c 1156 6
+2e5e8 8 1156 6
+2e5f0 c 302 82
+2e5fc 18 1156 6
+2e614 8 1156 6
+2e61c c 1156 6
+2e628 8 85 79
+2e630 8 1156 6
+2e638 10 256 82
+2e648 4 1158 6
+2e64c 4 256 82
+2e650 8 1158 6
+2e658 4 1159 6
+2e65c 8 1160 6
+2e664 18 1162 6
+2e67c 4 1162 6
+2e680 c 1162 6
+2e68c 8 1163 6
+2e694 8 1164 6
+2e69c 4 1166 6
+2e6a0 c 1168 6
+2e6ac 4 1166 6
+2e6b0 8 1168 6
+2e6b8 c 1169 6
+2e6c4 1c 1170 6
+2e6e0 4 1139 87
+2e6e4 4 1170 6
+2e6e8 4 277 82
+2e6ec 4 1170 6
+2e6f0 20 1170 6
+2e710 4 1170 6
+2e714 4 1170 6
+2e718 1c 1170 6
+2e734 8 1170 6
+2e73c c 1170 6
+2e748 8 85 79
+2e750 8 1170 6
+2e758 8 156 132
+2e760 10 256 82
+2e770 4 1139 87
+2e774 4 256 82
+2e778 c 1175 6
+2e784 8 1176 6
+2e78c 4 277 82
+2e790 4 1176 6
+2e794 4 1139 87
+2e798 4 1176 6
+2e79c 20 1176 6
+2e7bc 4 1176 6
+2e7c0 4 1176 6
+2e7c4 18 1176 6
+2e7dc 8 256 82
+2e7e4 8 1178 6
+2e7ec 4 277 82
+2e7f0 4 1178 6
+2e7f4 4 1139 87
+2e7f8 8 277 82
+2e800 4 1179 6
+2e804 20 1179 6
+2e824 4 1179 6
+2e828 4 1179 6
+2e82c 18 1179 6
+2e844 4 256 82
+2e848 4 1181 6
+2e84c 4 256 82
+2e850 c 1181 6
+2e85c 4 1139 87
+2e860 4 1181 6
+2e864 4 277 82
+2e868 4 1181 6
+2e86c 20 1181 6
+2e88c 4 1181 6
+2e890 4 1181 6
+2e894 18 1181 6
+2e8ac 8 256 82
+2e8b4 4 1182 6
+2e8b8 4 1512 82
+2e8bc 4 1182 6
+2e8c0 1c 1512 82
+2e8dc 8 1182 6
+2e8e4 4 302 82
+2e8e8 4 1182 6
+2e8ec 8 302 82
+2e8f4 18 1182 6
+2e90c 8 1182 6
+2e914 c 1182 6
+2e920 8 85 79
+2e928 8 1182 6
+2e930 4 256 82
+2e934 4 600 65
+2e938 4 1139 87
+2e93c 4 256 82
+2e940 4 600 65
+2e944 8 600 65
+2e94c c 277 82
+2e958 4 1139 87
+2e95c 4 1185 6
+2e960 20 1185 6
+2e980 4 1185 6
+2e984 4 1185 6
+2e988 18 1185 6
+2e9a0 4 1185 6
+2e9a4 4 1185 6
+2e9a8 8 1185 6
+2e9b0 c 1185 6
+2e9bc 8 85 79
+2e9c4 8 1185 6
+2e9cc 8 156 132
+2e9d4 14 256 82
+2e9e8 c 1186 6
+2e9f4 4 1482 82
+2e9f8 c 1481 82
+2ea04 8 1482 82
+2ea0c 18 1487 82
+2ea24 8 1186 6
+2ea2c 4 302 82
+2ea30 4 1186 6
+2ea34 8 302 82
+2ea3c 18 1186 6
+2ea54 8 1186 6
+2ea5c c 1187 6
+2ea68 8 85 79
+2ea70 8 1186 6
+2ea78 8 256 82
+2ea80 8 1189 6
+2ea88 10 1190 6
+2ea98 10 156 132
+2eaa8 1c 1191 6
+FUNC 2eac4 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::~TestFactoryImpl
+2eac4 4 484 85
+FUNC 2eac8 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::CreateTest
+2eac8 10 486 85
+2ead8 8 486 85
+2eae0 8 56 11
+2eae8 4 486 85
+2eaec c 56 11
+2eaf8 c 486 85
+FUNC 2eb04 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::~TestFactoryImpl
+2eb04 4 484 85
+FUNC 2eb08 14 0 MicrodumpWriterTest_Setup_Test::~MicrodumpWriterTest_Setup_Test
+2eb08 14 56 11
+FUNC 2eb1c 24 0 MicrodumpWriterTest_Setup_Test::~MicrodumpWriterTest_Setup_Test
+2eb1c c 56 11
+2eb28 8 56 11
+2eb30 4 56 11
+2eb34 8 56 11
+2eb3c 4 56 11
+FUNC 2eb40 18 0 std::__node_alloc::allocate
+2eb40 c 158 101
+2eb4c 8 134 119
+2eb54 4 158 101
+FUNC 2eb58 88 0 testing::PrintToString<void const*>
+2eb58 4 883 80
+2eb5c 4 884 80
+2eb60 8 883 80
+2eb68 4 884 80
+2eb6c 4 883 80
+2eb70 4 884 80
+2eb74 4 883 80
+2eb78 4 883 80
+2eb7c c 884 80
+2eb88 4 310 80
+2eb8c 14 333 122
+2eba0 10 318 80
+2ebb0 8 291 121
+2ebb8 c 75 127
+2ebc4 8 886 80
+2ebcc 14 887 80
+FUNC 2ebe0 148 0 testing::internal::CmpHelperNE<char*, char*>
+2ebe0 14 1615 82
+2ebf4 14 1615 82
+2ec08 4 1615 82
+2ec0c 4 1615 82
+2ec10 1c 1583 82
+2ec2c 10 1407 82
+2ec3c 4 1583 82
+2ec40 10 1583 82
+2ec50 8 1583 82
+2ec58 c 1583 82
+2ec64 8 1583 82
+2ec6c c 1583 82
+2ec78 8 1583 82
+2ec80 10 1584 82
+2ec90 18 1407 82
+2eca8 c 1584 82
+2ecb4 10 1585 82
+2ecc4 1c 1407 82
+2ece0 10 1585 82
+2ecf0 8 1585 82
+2ecf8 10 156 132
+2ed08 8 256 82
+2ed10 18 1615 82
+FUNC 2ed28 a7c 0 MicrodumpWriterTest_Setup_Test::TestBody
+2ed28 14 56 11
+2ed3c 4 58 11
+2ed40 4 56 11
+2ed44 10 58 11
+2ed54 c 56 11
+2ed60 8 58 11
+2ed68 4 58 11
+2ed6c 8 58 11
+2ed74 14 58 11
+2ed88 4 58 11
+2ed8c 10 58 11
+2ed9c 8 58 11
+2eda4 4 1144 87
+2eda8 c 298 82
+2edb4 8 298 82
+2edbc 18 58 11
+2edd4 4 58 11
+2edd8 4 58 11
+2eddc 8 58 11
+2ede4 c 58 11
+2edf0 8 85 79
+2edf8 8 58 11
+2ee00 10 256 82
+2ee10 4 60 11
+2ee14 4 256 82
+2ee18 4 61 11
+2ee1c 4 256 82
+2ee20 8 60 11
+2ee28 14 61 11
+2ee3c 10 62 11
+2ee4c 4 63 11
+2ee50 4 62 11
+2ee54 10 63 11
+2ee64 4 62 11
+2ee68 10 63 11
+2ee78 4 1144 87
+2ee7c c 298 82
+2ee88 8 298 82
+2ee90 18 63 11
+2eea8 4 63 11
+2eeac 4 63 11
+2eeb0 8 63 11
+2eeb8 c 63 11
+2eec4 8 85 79
+2eecc 8 63 11
+2eed4 10 256 82
+2eee4 8 65 11
+2eeec 4 66 11
+2eef0 8 67 11
+2eef8 18 69 11
+2ef10 4 69 11
+2ef14 c 69 11
+2ef20 c 70 11
+2ef2c 8 71 11
+2ef34 4 73 11
+2ef38 4 76 11
+2ef3c c 77 11
+2ef48 8 73 11
+2ef50 10 76 11
+2ef60 10 77 11
+2ef70 c 1481 82
+2ef7c c 1482 82
+2ef88 20 1382 82
+2efa8 24 1471 82
+2efcc 14 156 132
+2efe0 8 77 11
+2efe8 4 1144 87
+2efec c 298 82
+2eff8 8 298 82
+2f000 18 77 11
+2f018 4 77 11
+2f01c 4 77 11
+2f020 8 77 11
+2f028 c 77 11
+2f034 8 85 79
+2f03c 8 77 11
+2f044 10 256 82
+2f054 4 98 11
+2f058 4 256 82
+2f05c 8 80 11
+2f064 8 83 11
+2f06c 4 91 11
+2f070 4 94 11
+2f074 4 91 11
+2f078 4 92 11
+2f07c 4 93 11
+2f080 4 94 11
+2f084 4 93 11
+2f088 8 94 11
+2f090 4 211 116
+2f094 8 98 11
+2f09c 4 211 116
+2f0a0 4 212 116
+2f0a4 8 98 11
+2f0ac c 306 101
+2f0b8 c 307 101
+2f0c4 8 119 103
+2f0cc 88 119 103
+2f154 4 427 116
+2f158 4 103 11
+2f15c c 104 11
+2f168 4 427 116
+2f16c 4 429 116
+2f170 4 428 116
+2f174 4 430 116
+2f178 4 103 11
+2f17c 4 431 116
+2f180 4 104 11
+2f184 8 103 11
+2f18c 28 104 11
+2f1b4 4 1144 87
+2f1b8 c 298 82
+2f1c4 8 298 82
+2f1cc 1c 104 11
+2f1e8 4 105 11
+2f1ec c 256 82
+2f1f8 18 105 11
+2f210 1c 105 11
+2f22c 8 105 11
+2f234 4 1144 87
+2f238 c 298 82
+2f244 8 298 82
+2f24c 1c 105 11
+2f268 c 105 11
+2f274 c 105 11
+2f280 8 85 79
+2f288 8 105 11
+2f290 14 256 82
+2f2a4 10 107 11
+2f2b4 8 1139 87
+2f2bc 4 107 11
+2f2c0 4 277 82
+2f2c4 4 107 11
+2f2c8 4 1139 87
+2f2cc 4 107 11
+2f2d0 24 107 11
+2f2f4 1c 107 11
+2f310 8 107 11
+2f318 c 107 11
+2f324 8 85 79
+2f32c 8 107 11
+2f334 8 156 132
+2f33c c 256 82
+2f348 4 118 11
+2f34c 4 256 82
+2f350 c 110 11
+2f35c 8 111 11
+2f364 8 114 11
+2f36c 10 115 11
+2f37c c 117 11
+2f388 10 118 11
+2f398 4 118 11
+2f39c 8 1623 82
+2f3a4 20 1623 82
+2f3c4 28 1583 82
+2f3ec 10 1583 82
+2f3fc 8 1583 82
+2f404 c 1583 82
+2f410 8 1583 82
+2f418 c 1583 82
+2f424 8 1583 82
+2f42c 10 1584 82
+2f43c c 884 80
+2f448 10 259 121
+2f458 c 75 127
+2f464 8 886 80
+2f46c c 1584 82
+2f478 10 1585 82
+2f488 c 1382 82
+2f494 10 1585 82
+2f4a4 8 1585 82
+2f4ac 10 156 132
+2f4bc c 256 82
+2f4c8 8 118 11
+2f4d0 4 1144 87
+2f4d4 c 298 82
+2f4e0 8 298 82
+2f4e8 18 118 11
+2f500 4 118 11
+2f504 4 118 11
+2f508 8 118 11
+2f510 c 118 11
+2f51c 8 85 79
+2f524 8 118 11
+2f52c c 256 82
+2f538 8 120 11
+2f540 4 120 11
+2f544 4 256 82
+2f548 4 120 11
+2f54c c 120 11
+2f558 4 120 11
+2f55c 4 120 11
+2f560 4 120 11
+2f564 4 120 11
+2f568 1c 120 11
+2f584 8 120 11
+2f58c 4 1144 87
+2f590 c 298 82
+2f59c 8 298 82
+2f5a4 1c 120 11
+2f5c0 c 256 82
+2f5cc 4 122 11
+2f5d0 10 122 11
+2f5e0 4 122 11
+2f5e4 1c 122 11
+2f600 8 122 11
+2f608 4 1144 87
+2f60c c 298 82
+2f618 8 298 82
+2f620 1c 122 11
+2f63c 8 256 82
+2f644 4 124 11
+2f648 10 124 11
+2f658 4 124 11
+2f65c 1c 124 11
+2f678 8 124 11
+2f680 4 1144 87
+2f684 c 298 82
+2f690 8 298 82
+2f698 1c 124 11
+2f6b4 c 124 11
+2f6c0 c 124 11
+2f6cc 8 85 79
+2f6d4 8 124 11
+2f6dc 8 256 82
+2f6e4 c 203 57
+2f6f0 8 256 82
+2f6f8 c 128 11
+2f704 c 129 11
+2f710 8 203 57
+2f718 4 67 115
+2f71c 4 68 115
+2f720 4 67 115
+2f724 8 68 115
+2f72c 4 74 115
+2f730 c 135 119
+2f73c 4 67 115
+2f740 4 68 115
+2f744 4 67 115
+2f748 8 68 115
+2f750 4 74 115
+2f754 c 135 119
+2f760 4 156 132
+2f764 4 61 63
+2f768 4 156 132
+2f76c c 61 63
+2f778 8 156 132
+2f780 24 130 11
+FUNC 2f7a4 4 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::~TestFactoryImpl
+2f7a4 4 484 85
+FUNC 2f7a8 4 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::~TestFactoryImpl
+2f7a8 4 484 85
+FUNC 2f7ac 4 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::~TestFactoryImpl
+2f7ac 4 484 85
+FUNC 2f7b0 4 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::~TestFactoryImpl
+2f7b0 4 484 85
+FUNC 2f7b4 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::~TestFactoryImpl
+2f7b4 4 484 85
+FUNC 2f7b8 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::~TestFactoryImpl
+2f7b8 4 484 85
+FUNC 2f7bc 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::~TestFactoryImpl
+2f7bc 4 484 85
+FUNC 2f7c0 4 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::~TestFactoryImpl
+2f7c0 4 484 85
+FUNC 2f7c4 4 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::~TestFactoryImpl
+2f7c4 4 484 85
+FUNC 2f7c8 4 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::~TestFactoryImpl
+2f7c8 4 484 85
+FUNC 2f7cc 4 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::~TestFactoryImpl
+2f7cc 4 484 85
+FUNC 2f7d0 4 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::~TestFactoryImpl
+2f7d0 4 484 85
+FUNC 2f7d4 4 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::~TestFactoryImpl
+2f7d4 4 484 85
+FUNC 2f7d8 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::~TestFactoryImpl
+2f7d8 4 484 85
+FUNC 2f7dc 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::~TestFactoryImpl
+2f7dc 4 484 85
+FUNC 2f7e0 4 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::~TestFactoryImpl
+2f7e0 4 484 85
+FUNC 2f7e4 4 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::~TestFactoryImpl
+2f7e4 4 484 85
+FUNC 2f7e8 4 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::~TestFactoryImpl
+2f7e8 4 484 85
+FUNC 2f7ec 4 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::~TestFactoryImpl
+2f7ec 4 484 85
+FUNC 2f7f0 4 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::~TestFactoryImpl
+2f7f0 4 484 85
+FUNC 2f7f4 14 0 CpuSetTest_EmptyIntersection_Test::~CpuSetTest_EmptyIntersection_Test
+2f7f4 14 146 13
+FUNC 2f808 24 0 CpuSetTest_EmptyIntersection_Test::~CpuSetTest_EmptyIntersection_Test
+2f808 c 146 13
+2f814 8 146 13
+2f81c 4 146 13
+2f820 8 146 13
+2f828 4 146 13
+FUNC 2f82c 14 0 CpuSetTest_SelfIntersection_Test::~CpuSetTest_SelfIntersection_Test
+2f82c 14 135 13
+FUNC 2f840 24 0 CpuSetTest_SelfIntersection_Test::~CpuSetTest_SelfIntersection_Test
+2f840 c 135 13
+2f84c 8 135 13
+2f854 4 135 13
+2f858 8 135 13
+2f860 4 135 13
+FUNC 2f864 14 0 CpuSetTest_IntersectWith_Test::~CpuSetTest_IntersectWith_Test
+2f864 14 117 13
+FUNC 2f878 24 0 CpuSetTest_IntersectWith_Test::~CpuSetTest_IntersectWith_Test
+2f878 c 117 13
+2f884 8 117 13
+2f88c 4 117 13
+2f890 8 117 13
+2f898 4 117 13
+FUNC 2f89c 14 0 CpuSetTest_MultiItems_Test::~CpuSetTest_MultiItems_Test
+2f89c 14 108 13
+FUNC 2f8b0 24 0 CpuSetTest_MultiItems_Test::~CpuSetTest_MultiItems_Test
+2f8b0 c 108 13
+2f8bc 8 108 13
+2f8c4 4 108 13
+2f8c8 8 108 13
+2f8d0 4 108 13
+FUNC 2f8d4 14 0 CpuSetTest_TenCpusWithRange_Test::~CpuSetTest_TenCpusWithRange_Test
+2f8d4 14 99 13
+FUNC 2f8e8 24 0 CpuSetTest_TenCpusWithRange_Test::~CpuSetTest_TenCpusWithRange_Test
+2f8e8 c 99 13
+2f8f4 8 99 13
+2f8fc 4 99 13
+2f900 8 99 13
+2f908 4 99 13
+FUNC 2f90c 14 0 CpuSetTest_TwoCpusWithRange_Test::~CpuSetTest_TwoCpusWithRange_Test
+2f90c 14 90 13
+FUNC 2f920 24 0 CpuSetTest_TwoCpusWithRange_Test::~CpuSetTest_TwoCpusWithRange_Test
+2f920 c 90 13
+2f92c 8 90 13
+2f934 4 90 13
+2f938 8 90 13
+2f940 4 90 13
+FUNC 2f944 14 0 CpuSetTest_TwoCpusWithComma_Test::~CpuSetTest_TwoCpusWithComma_Test
+2f944 14 81 13
+FUNC 2f958 24 0 CpuSetTest_TwoCpusWithComma_Test::~CpuSetTest_TwoCpusWithComma_Test
+2f958 c 81 13
+2f964 8 81 13
+2f96c 4 81 13
+2f970 8 81 13
+2f978 4 81 13
+FUNC 2f97c 14 0 CpuSetTest_OneCpuTerminated_Test::~CpuSetTest_OneCpuTerminated_Test
+2f97c 14 72 13
+FUNC 2f990 24 0 CpuSetTest_OneCpuTerminated_Test::~CpuSetTest_OneCpuTerminated_Test
+2f990 c 72 13
+2f99c 8 72 13
+2f9a4 4 72 13
+2f9a8 8 72 13
+2f9b0 4 72 13
+FUNC 2f9b4 14 0 CpuSetTest_OneCpu_Test::~CpuSetTest_OneCpu_Test
+2f9b4 14 63 13
+FUNC 2f9c8 24 0 CpuSetTest_OneCpu_Test::~CpuSetTest_OneCpu_Test
+2f9c8 c 63 13
+2f9d4 8 63 13
+2f9dc 4 63 13
+2f9e0 8 63 13
+2f9e8 4 63 13
+FUNC 2f9ec 14 0 CpuSetTest_EmptyCount_Test::~CpuSetTest_EmptyCount_Test
+2f9ec 14 58 13
+FUNC 2fa00 24 0 CpuSetTest_EmptyCount_Test::~CpuSetTest_EmptyCount_Test
+2fa00 c 58 13
+2fa0c 8 58 13
+2fa14 4 58 13
+2fa18 8 58 13
+2fa20 4 58 13
+FUNC 2fa24 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::CreateTest
+2fa24 10 486 85
+2fa34 8 486 85
+2fa3c 8 146 13
+2fa44 4 486 85
+2fa48 c 146 13
+2fa54 c 486 85
+FUNC 2fa60 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::CreateTest
+2fa60 10 486 85
+2fa70 8 486 85
+2fa78 8 135 13
+2fa80 4 486 85
+2fa84 c 135 13
+2fa90 c 486 85
+FUNC 2fa9c 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::CreateTest
+2fa9c 10 486 85
+2faac 8 486 85
+2fab4 8 117 13
+2fabc 4 486 85
+2fac0 c 117 13
+2facc c 486 85
+FUNC 2fad8 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::CreateTest
+2fad8 10 486 85
+2fae8 8 486 85
+2faf0 8 108 13
+2faf8 4 486 85
+2fafc c 108 13
+2fb08 c 486 85
+FUNC 2fb14 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::CreateTest
+2fb14 10 486 85
+2fb24 8 486 85
+2fb2c 8 99 13
+2fb34 4 486 85
+2fb38 c 99 13
+2fb44 c 486 85
+FUNC 2fb50 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::CreateTest
+2fb50 10 486 85
+2fb60 8 486 85
+2fb68 8 90 13
+2fb70 4 486 85
+2fb74 c 90 13
+2fb80 c 486 85
+FUNC 2fb8c 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::CreateTest
+2fb8c 10 486 85
+2fb9c 8 486 85
+2fba4 8 81 13
+2fbac 4 486 85
+2fbb0 c 81 13
+2fbbc c 486 85
+FUNC 2fbc8 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::CreateTest
+2fbc8 10 486 85
+2fbd8 8 486 85
+2fbe0 8 72 13
+2fbe8 4 486 85
+2fbec c 72 13
+2fbf8 c 486 85
+FUNC 2fc04 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::CreateTest
+2fc04 10 486 85
+2fc14 8 486 85
+2fc1c 8 63 13
+2fc24 4 486 85
+2fc28 c 63 13
+2fc34 c 486 85
+FUNC 2fc40 3c 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::CreateTest
+2fc40 10 486 85
+2fc50 8 486 85
+2fc58 8 58 13
+2fc60 4 486 85
+2fc64 c 58 13
+2fc70 c 486 85
+FUNC 2fc7c c 0 google_breakpad::CpuSet::CpuSet
+2fc7c c 51 12
+FUNC 2fc88 184 0 google_breakpad::CpuSet::ParseSysFile
+2fc88 4 55 12
+2fc8c 4 3104 97
+2fc90 14 55 12
+2fca4 4 3104 97
+2fca8 8 55 12
+2fcb0 18 3104 97
+2fcc8 4 3104 97
+2fccc c 3104 97
+2fcd8 4 58 12
+2fcdc 4 61 12
+2fce0 4 71 12
+2fce4 4 100 12
+2fce8 4 102 12
+2fcec 4 131 12
+2fcf0 4 61 12
+2fcf4 4 72 12
+2fcf8 c 73 12
+2fd04 8 75 12
+2fd0c 4 75 12
+2fd10 4 76 12
+2fd14 c 75 12
+2fd20 8 109 12
+2fd28 8 59 12
+2fd30 14 82 12
+2fd44 4 84 12
+2fd48 4 83 12
+2fd4c 8 92 12
+2fd54 8 92 12
+2fd5c 4 92 12
+2fd60 14 93 12
+2fd74 8 96 12
+2fd7c 8 101 12
+2fd84 4 100 12
+2fd88 8 101 12
+2fd90 8 102 12
+2fd98 c 103 12
+2fda4 c 104 12
+2fdb0 10 106 12
+2fdc0 4 130 12
+2fdc4 4 107 12
+2fdc8 4 130 12
+2fdcc 1c 131 12
+2fde8 8 130 12
+2fdf0 1c 110 12
+FUNC 2fe0c 48 0 google_breakpad::CpuSet::GetCount
+2fe0c c 119 12
+2fe18 4 121 12
+2fe1c 4 119 12
+2fe20 4 120 12
+2fe24 4 119 12
+2fe28 4 122 12
+2fe2c 4 121 12
+2fe30 8 122 12
+2fe38 8 121 12
+2fe40 14 125 12
+FUNC 2fe54 10 0 google_breakpad::AutoTestFile::~AutoTestFile
+2fe54 8 73 52
+2fe5c 4 74 52
+2fe60 4 77 52
+FUNC 2fe64 68 0 google_breakpad::AutoTestFile::Init
+2fe64 4 92 52
+2fe68 4 97 52
+2fe6c 4 92 52
+2fe70 8 97 52
+2fe78 c 92 52
+2fe84 4 92 52
+2fe88 4 97 52
+2fe8c 8 93 52
+2fe94 8 97 52
+2fe9c 8 98 52
+2fea4 c 101 52
+2feb0 4 102 52
+2feb4 8 105 52
+2febc 10 106 52
+FUNC 2fecc ac 0 ScopedTestFile::ScopedTestFile
+2fecc 10 51 13
+2fedc 4 60 52
+2fee0 4 51 13
+2fee4 4 60 52
+2fee8 4 51 13
+2feec 4 60 52
+2fef0 8 61 52
+2fef8 c 62 52
+2ff04 1c 109 52
+2ff20 4 109 52
+2ff24 c 109 52
+2ff30 8 110 52
+2ff38 8 111 52
+2ff40 c 112 52
+2ff4c 8 116 52
+2ff54 c 53 13
+2ff60 8 116 52
+2ff68 10 53 13
+FUNC 2ff78 c4 0 CpuSetTest_EmptyCount_Test::TestBody
+2ff78 c 58 13
+2ff84 4 59 13
+2ff88 4 1552 82
+2ff8c 4 59 13
+2ff90 4 58 13
+2ff94 4 59 13
+2ff98 8 60 13
+2ffa0 c 1552 82
+2ffac 8 60 13
+2ffb4 20 1552 82
+2ffd4 8 60 13
+2ffdc c 302 82
+2ffe8 18 60 13
+30000 8 60 13
+30008 c 60 13
+30014 8 85 79
+3001c 8 60 13
+30024 8 256 82
+3002c 10 61 13
+FUNC 3003c 224 0 CpuSetTest_OneCpu_Test::TestBody
+3003c 4 63 13
+30040 4 64 13
+30044 8 63 13
+3004c c 64 13
+30058 c 63 13
+30064 4 64 13
+30068 4 1139 87
+3006c 4 82 52
+30070 c 277 82
+3007c c 82 52
+30088 8 277 82
+30090 4 65 13
+30094 24 65 13
+300b8 1c 65 13
+300d4 8 65 13
+300dc c 65 13
+300e8 8 85 79
+300f0 8 65 13
+300f8 c 156 132
+30104 c 256 82
+30110 8 67 13
+30118 c 68 13
+30124 4 1139 87
+30128 4 68 13
+3012c 4 277 82
+30130 4 68 13
+30134 20 68 13
+30154 4 68 13
+30158 4 68 13
+3015c 1c 68 13
+30178 8 68 13
+30180 c 68 13
+3018c 8 85 79
+30194 8 68 13
+3019c 8 156 132
+301a4 10 256 82
+301b4 14 69 13
+301c8 20 1512 82
+301e8 8 69 13
+301f0 c 302 82
+301fc 18 69 13
+30214 8 69 13
+3021c c 69 13
+30228 8 85 79
+30230 8 69 13
+30238 8 256 82
+30240 8 49 13
+30248 18 70 13
+FUNC 30260 224 0 CpuSetTest_OneCpuTerminated_Test::TestBody
+30260 4 72 13
+30264 4 73 13
+30268 8 72 13
+30270 c 73 13
+3027c c 72 13
+30288 4 73 13
+3028c 4 1139 87
+30290 4 82 52
+30294 c 277 82
+302a0 c 82 52
+302ac 8 277 82
+302b4 4 74 13
+302b8 24 74 13
+302dc 1c 74 13
+302f8 8 74 13
+30300 c 74 13
+3030c 8 85 79
+30314 8 74 13
+3031c c 156 132
+30328 c 256 82
+30334 8 76 13
+3033c c 77 13
+30348 4 1139 87
+3034c 4 77 13
+30350 4 277 82
+30354 4 77 13
+30358 20 77 13
+30378 4 77 13
+3037c 4 77 13
+30380 1c 77 13
+3039c 8 77 13
+303a4 c 77 13
+303b0 8 85 79
+303b8 8 77 13
+303c0 8 156 132
+303c8 10 256 82
+303d8 14 78 13
+303ec 20 1512 82
+3040c 8 78 13
+30414 c 302 82
+30420 18 78 13
+30438 8 78 13
+30440 c 78 13
+3044c 8 85 79
+30454 8 78 13
+3045c 8 256 82
+30464 8 49 13
+3046c 18 79 13
+FUNC 30484 224 0 CpuSetTest_TwoCpusWithComma_Test::TestBody
+30484 4 81 13
+30488 4 82 13
+3048c 8 81 13
+30494 c 82 13
+304a0 c 81 13
+304ac 4 82 13
+304b0 4 1139 87
+304b4 4 82 52
+304b8 c 277 82
+304c4 c 82 52
+304d0 8 277 82
+304d8 4 83 13
+304dc 24 83 13
+30500 1c 83 13
+3051c 8 83 13
+30524 c 83 13
+30530 8 85 79
+30538 8 83 13
+30540 c 156 132
+3054c c 256 82
+30558 8 85 13
+30560 c 86 13
+3056c 4 1139 87
+30570 4 86 13
+30574 4 277 82
+30578 4 86 13
+3057c 20 86 13
+3059c 4 86 13
+305a0 4 86 13
+305a4 1c 86 13
+305c0 8 86 13
+305c8 c 86 13
+305d4 8 85 79
+305dc 8 86 13
+305e4 8 156 132
+305ec c 256 82
+305f8 4 87 13
+305fc 4 256 82
+30600 10 87 13
+30610 20 1512 82
+30630 8 87 13
+30638 c 302 82
+30644 18 87 13
+3065c 8 87 13
+30664 c 87 13
+30670 8 85 79
+30678 8 87 13
+30680 8 256 82
+30688 8 49 13
+30690 18 88 13
+FUNC 306a8 224 0 CpuSetTest_TwoCpusWithRange_Test::TestBody
+306a8 4 90 13
+306ac 4 91 13
+306b0 8 90 13
+306b8 c 91 13
+306c4 c 90 13
+306d0 4 91 13
+306d4 4 1139 87
+306d8 4 82 52
+306dc c 277 82
+306e8 c 82 52
+306f4 8 277 82
+306fc 4 92 13
+30700 24 92 13
+30724 1c 92 13
+30740 8 92 13
+30748 c 92 13
+30754 8 85 79
+3075c 8 92 13
+30764 c 156 132
+30770 c 256 82
+3077c 8 94 13
+30784 c 95 13
+30790 4 1139 87
+30794 4 95 13
+30798 4 277 82
+3079c 4 95 13
+307a0 20 95 13
+307c0 4 95 13
+307c4 4 95 13
+307c8 1c 95 13
+307e4 8 95 13
+307ec c 95 13
+307f8 8 85 79
+30800 8 95 13
+30808 8 156 132
+30810 c 256 82
+3081c 4 96 13
+30820 4 256 82
+30824 10 96 13
+30834 20 1512 82
+30854 8 96 13
+3085c c 302 82
+30868 18 96 13
+30880 8 96 13
+30888 c 96 13
+30894 8 85 79
+3089c 8 96 13
+308a4 8 256 82
+308ac 8 49 13
+308b4 18 97 13
+FUNC 308cc 224 0 CpuSetTest_TenCpusWithRange_Test::TestBody
+308cc 4 99 13
+308d0 4 100 13
+308d4 8 99 13
+308dc c 100 13
+308e8 c 99 13
+308f4 4 100 13
+308f8 4 1139 87
+308fc 4 82 52
+30900 c 277 82
+3090c c 82 52
+30918 8 277 82
+30920 4 101 13
+30924 24 101 13
+30948 1c 101 13
+30964 8 101 13
+3096c c 101 13
+30978 8 85 79
+30980 8 101 13
+30988 c 156 132
+30994 c 256 82
+309a0 8 103 13
+309a8 c 104 13
+309b4 4 1139 87
+309b8 4 104 13
+309bc 4 277 82
+309c0 4 104 13
+309c4 20 104 13
+309e4 4 104 13
+309e8 4 104 13
+309ec 1c 104 13
+30a08 8 104 13
+30a10 c 104 13
+30a1c 8 85 79
+30a24 8 104 13
+30a2c 8 156 132
+30a34 10 256 82
+30a44 14 105 13
+30a58 20 1512 82
+30a78 8 105 13
+30a80 c 302 82
+30a8c 18 105 13
+30aa4 8 105 13
+30aac c 105 13
+30ab8 8 85 79
+30ac0 8 105 13
+30ac8 8 256 82
+30ad0 8 49 13
+30ad8 18 106 13
+FUNC 30af0 224 0 CpuSetTest_MultiItems_Test::TestBody
+30af0 4 108 13
+30af4 4 109 13
+30af8 8 108 13
+30b00 c 109 13
+30b0c c 108 13
+30b18 4 109 13
+30b1c 4 1139 87
+30b20 4 82 52
+30b24 c 277 82
+30b30 c 82 52
+30b3c 8 277 82
+30b44 4 110 13
+30b48 24 110 13
+30b6c 1c 110 13
+30b88 8 110 13
+30b90 c 110 13
+30b9c 8 85 79
+30ba4 8 110 13
+30bac c 156 132
+30bb8 c 256 82
+30bc4 8 112 13
+30bcc c 113 13
+30bd8 4 1139 87
+30bdc 4 113 13
+30be0 4 277 82
+30be4 4 113 13
+30be8 20 113 13
+30c08 4 113 13
+30c0c 4 113 13
+30c10 1c 113 13
+30c2c 8 113 13
+30c34 c 113 13
+30c40 8 85 79
+30c48 8 113 13
+30c50 8 156 132
+30c58 10 256 82
+30c68 14 114 13
+30c7c 20 1512 82
+30c9c 8 114 13
+30ca4 c 302 82
+30cb0 18 114 13
+30cc8 8 114 13
+30cd0 c 114 13
+30cdc 8 85 79
+30ce4 8 114 13
+30cec 8 256 82
+30cf4 8 49 13
+30cfc 18 115 13
+FUNC 30d14 54c 0 CpuSetTest_IntersectWith_Test::TestBody
+30d14 4 117 13
+30d18 4 118 13
+30d1c 8 117 13
+30d24 c 118 13
+30d30 14 117 13
+30d44 4 118 13
+30d48 4 82 52
+30d4c 4 277 82
+30d50 8 1139 87
+30d58 c 82 52
+30d64 c 277 82
+30d70 4 119 13
+30d74 24 119 13
+30d98 1c 119 13
+30db4 8 119 13
+30dbc c 119 13
+30dc8 8 85 79
+30dd0 8 119 13
+30dd8 c 156 132
+30de4 4 256 82
+30de8 4 1139 87
+30dec 4 256 82
+30df0 8 120 13
+30df8 c 121 13
+30e04 4 277 82
+30e08 4 121 13
+30e0c 4 1139 87
+30e10 4 121 13
+30e14 20 121 13
+30e34 4 121 13
+30e38 4 121 13
+30e3c 1c 121 13
+30e58 8 121 13
+30e60 c 121 13
+30e6c 8 85 79
+30e74 8 121 13
+30e7c 8 156 132
+30e84 10 256 82
+30e94 8 1512 82
+30e9c 4 256 82
+30ea0 14 122 13
+30eb4 1c 1512 82
+30ed0 8 122 13
+30ed8 c 302 82
+30ee4 18 122 13
+30efc 8 122 13
+30f04 c 122 13
+30f10 8 85 79
+30f18 8 122 13
+30f20 c 256 82
+30f2c 8 124 13
+30f34 4 256 82
+30f38 10 124 13
+30f48 4 1139 87
+30f4c c 82 52
+30f58 4 277 82
+30f5c 4 125 13
+30f60 24 125 13
+30f84 1c 125 13
+30fa0 8 125 13
+30fa8 c 125 13
+30fb4 8 85 79
+30fbc 8 125 13
+30fc4 c 156 132
+30fd0 4 256 82
+30fd4 4 1139 87
+30fd8 4 256 82
+30fdc 8 126 13
+30fe4 c 127 13
+30ff0 4 277 82
+30ff4 4 127 13
+30ff8 4 1139 87
+30ffc 4 127 13
+31000 20 127 13
+31020 4 127 13
+31024 4 127 13
+31028 1c 127 13
+31044 8 127 13
+3104c c 127 13
+31058 8 85 79
+31060 8 127 13
+31068 8 156 132
+31070 c 256 82
+3107c 4 1512 82
+31080 4 256 82
+31084 14 128 13
+31098 24 1512 82
+310bc c 128 13
+310c8 c 302 82
+310d4 18 128 13
+310ec 8 128 13
+310f4 c 128 13
+31100 8 85 79
+31108 8 128 13
+31110 10 256 82
+31120 4 114 12
+31124 10 115 12
+31134 4 114 12
+31138 8 114 12
+31140 18 131 13
+31158 1c 1512 82
+31174 8 131 13
+3117c c 302 82
+31188 18 131 13
+311a0 8 256 82
+311a8 14 132 13
+311bc 1c 1512 82
+311d8 8 132 13
+311e0 c 302 82
+311ec 18 132 13
+31204 8 132 13
+3120c c 132 13
+31218 8 85 79
+31220 8 132 13
+31228 8 256 82
+31230 10 49 13
+31240 20 133 13
+FUNC 31260 290 0 CpuSetTest_SelfIntersection_Test::TestBody
+31260 4 135 13
+31264 4 136 13
+31268 8 135 13
+31270 c 136 13
+3127c 10 135 13
+3128c 4 136 13
+31290 4 1139 87
+31294 4 82 52
+31298 c 277 82
+312a4 c 82 52
+312b0 8 277 82
+312b8 4 137 13
+312bc 24 137 13
+312e0 1c 137 13
+312fc 8 137 13
+31304 c 137 13
+31310 8 85 79
+31318 8 137 13
+31320 c 156 132
+3132c c 256 82
+31338 8 138 13
+31340 c 139 13
+3134c 4 1139 87
+31350 4 139 13
+31354 4 277 82
+31358 4 139 13
+3135c 20 139 13
+3137c 4 139 13
+31380 4 139 13
+31384 1c 139 13
+313a0 8 139 13
+313a8 c 139 13
+313b4 8 85 79
+313bc 8 139 13
+313c4 8 156 132
+313cc c 256 82
+313d8 8 1512 82
+313e0 4 140 13
+313e4 4 256 82
+313e8 4 1512 82
+313ec 8 140 13
+313f4 4 1512 82
+313f8 8 140 13
+31400 18 1512 82
+31418 8 140 13
+31420 c 302 82
+3142c 18 140 13
+31444 8 256 82
+3144c 10 143 13
+3145c 18 1512 82
+31474 8 143 13
+3147c c 302 82
+31488 18 143 13
+314a0 8 143 13
+314a8 c 143 13
+314b4 8 85 79
+314bc 8 143 13
+314c4 8 256 82
+314cc 8 49 13
+314d4 1c 144 13
+FUNC 314f0 540 0 CpuSetTest_EmptyIntersection_Test::TestBody
+314f0 4 146 13
+314f4 4 147 13
+314f8 c 146 13
+31504 c 147 13
+31510 10 146 13
+31520 4 147 13
+31524 4 1139 87
+31528 4 82 52
+3152c c 277 82
+31538 c 82 52
+31544 8 277 82
+3154c 4 148 13
+31550 24 148 13
+31574 1c 148 13
+31590 8 148 13
+31598 c 148 13
+315a4 8 85 79
+315ac 8 148 13
+315b4 c 156 132
+315c0 4 256 82
+315c4 4 1139 87
+315c8 4 256 82
+315cc 8 149 13
+315d4 c 150 13
+315e0 4 277 82
+315e4 4 150 13
+315e8 4 1139 87
+315ec 4 150 13
+315f0 20 150 13
+31610 4 150 13
+31614 4 150 13
+31618 1c 150 13
+31634 8 150 13
+3163c c 150 13
+31648 8 85 79
+31650 8 150 13
+31658 8 156 132
+31660 10 256 82
+31670 8 1512 82
+31678 4 256 82
+3167c 14 151 13
+31690 1c 1512 82
+316ac 10 151 13
+316bc c 302 82
+316c8 18 151 13
+316e0 8 151 13
+316e8 c 151 13
+316f4 8 85 79
+316fc 8 151 13
+31704 c 256 82
+31710 8 153 13
+31718 4 256 82
+3171c 10 153 13
+3172c 4 1139 87
+31730 c 82 52
+3173c 4 277 82
+31740 4 154 13
+31744 24 154 13
+31768 1c 154 13
+31784 8 154 13
+3178c c 154 13
+31798 8 85 79
+317a0 8 154 13
+317a8 c 156 132
+317b4 4 256 82
+317b8 4 1139 87
+317bc 4 256 82
+317c0 8 155 13
+317c8 c 156 13
+317d4 4 277 82
+317d8 4 156 13
+317dc 4 1139 87
+317e0 4 156 13
+317e4 20 156 13
+31804 4 156 13
+31808 4 156 13
+3180c 1c 156 13
+31828 8 156 13
+31830 c 156 13
+3183c 8 85 79
+31844 8 156 13
+3184c 8 156 132
+31854 c 256 82
+31860 4 1512 82
+31864 4 256 82
+31868 14 157 13
+3187c 18 1512 82
+31894 8 157 13
+3189c c 302 82
+318a8 18 157 13
+318c0 8 157 13
+318c8 c 157 13
+318d4 8 85 79
+318dc 8 157 13
+318e4 10 256 82
+318f4 4 114 12
+318f8 10 115 12
+31908 4 114 12
+3190c 8 114 12
+31914 14 160 13
+31928 20 1552 82
+31948 8 160 13
+31950 c 302 82
+3195c 18 160 13
+31974 8 256 82
+3197c 14 162 13
+31990 18 1512 82
+319a8 8 162 13
+319b0 c 302 82
+319bc 18 162 13
+319d4 8 162 13
+319dc c 162 13
+319e8 8 85 79
+319f0 8 162 13
+319f8 8 256 82
+31a00 10 49 13
+31a10 20 163 13
+FUNC 31a30 4 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::~TestFactoryImpl
+31a30 4 484 85
+FUNC 31a34 4 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::~TestFactoryImpl
+31a34 4 484 85
+FUNC 31a38 14 0 DirectoryReaderTest_CompareResults_Test::~DirectoryReaderTest_CompareResults_Test
+31a38 14 47 15
+FUNC 31a4c 24 0 DirectoryReaderTest_CompareResults_Test::~DirectoryReaderTest_CompareResults_Test
+31a4c c 47 15
+31a58 8 47 15
+31a60 4 47 15
+31a64 8 47 15
+31a6c 4 47 15
+FUNC 31a70 3c 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::CreateTest
+31a70 10 486 85
+31a80 8 486 85
+31a88 8 47 15
+31a90 4 486 85
+31a94 c 47 15
+31aa0 c 486 85
+FUNC 31aac 4c 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_node
+31aac 4 315 136
+31ab0 4 306 101
+31ab4 8 315 136
+31abc 4 315 136
+31ac0 8 306 101
+31ac8 8 307 101
+31ad0 8 119 103
+31ad8 8 119 103
+31ae0 4 321 136
+31ae4 4 324 136
+31ae8 4 322 136
+31aec c 324 136
+FUNC 31af8 58 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_erase
+31af8 18 655 135
+31b10 4 657 135
+31b14 c 658 135
+31b20 4 659 135
+31b24 8 156 132
+31b2c 14 161 101
+31b40 10 664 135
+FUNC 31b50 60 0 std::operator< <char, std::char_traits<char>, std::allocator<char> >
+31b50 14 351 134
+31b64 4 1073 131
+31b68 c 1074 131
+31b74 4 1073 131
+31b78 8 1074 131
+31b80 8 226 140
+31b88 4 1076 131
+31b8c 4 1076 131
+31b90 4 1076 131
+31b94 c 1076 131
+31ba0 10 355 134
+FUNC 31bb0 5c 0 std::priv::_Rb_global<bool>::_Rotate_left
+31bb0 4 62 135
+31bb4 8 63 135
+31bbc 8 64 135
+31bc4 4 65 135
+31bc8 8 66 135
+31bd0 c 68 135
+31bdc 8 69 135
+31be4 10 70 135
+31bf4 8 71 135
+31bfc 4 73 135
+31c00 4 74 135
+31c04 4 75 135
+31c08 4 76 135
+FUNC 31c0c 5c 0 std::priv::_Rb_global<bool>::_Rotate_right
+31c0c 4 81 135
+31c10 8 82 135
+31c18 8 83 135
+31c20 4 84 135
+31c24 8 85 135
+31c2c c 87 135
+31c38 8 88 135
+31c40 10 89 135
+31c50 8 90 135
+31c58 4 92 135
+31c5c 4 93 135
+31c60 4 94 135
+31c64 4 95 135
+FUNC 31c68 124 0 std::priv::_Rb_global<bool>::_Rebalance
+31c68 10 98 135
+31c78 8 98 135
+31c80 4 100 135
+31c84 4 133 135
+31c88 c 101 135
+31c94 8 139 135
+31c9c 10 140 135
+31cac c 101 135
+31cb8 10 102 135
+31cc8 4 103 135
+31ccc 4 104 135
+31cd0 8 104 135
+31cd8 c 111 135
+31ce4 10 113 135
+31cf4 4 115 135
+31cf8 4 117 135
+31cfc 4 115 135
+31d00 c 116 135
+31d0c 10 117 135
+31d1c 4 122 135
+31d20 8 122 135
+31d28 4 123 135
+31d2c 4 124 135
+31d30 c 125 135
+31d3c c 126 135
+31d48 c 129 135
+31d54 10 131 135
+31d64 4 133 135
+31d68 4 135 135
+31d6c 4 133 135
+31d70 c 134 135
+31d7c 10 135 135
+FUNC 31d8c dc 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_insert
+31d8c 4 350 135
+31d90 4 358 135
+31d94 c 350 135
+31da0 c 350 135
+31dac 4 358 135
+31db0 c 359 135
+31dbc 4 360 135
+31dc0 4 361 135
+31dc4 8 362 135
+31dcc 4 364 135
+31dd0 4 364 135
+31dd4 14 79 106
+31de8 8 364 135
+31df0 8 367 135
+31df8 4 368 135
+31dfc 4 367 135
+31e00 c 369 135
+31e0c 8 370 135
+31e14 8 373 135
+31e1c 4 374 135
+31e20 4 373 135
+31e24 c 375 135
+31e30 4 376 135
+31e34 8 379 135
+31e3c 4 378 135
+31e40 4 379 135
+31e44 4 380 135
+31e48 4 382 135
+31e4c 8 380 135
+31e54 4 142 136
+31e58 10 382 135
+FUNC 31e68 950 0 DirectoryReaderTest_CompareResults_Test::TestBody
+31e68 14 47 15
+31e7c 4 481 101
+31e80 8 50 15
+31e88 4 277 82
+31e8c 4 47 15
+31e90 4 1139 87
+31e94 4 481 101
+31e98 c 47 15
+31ea4 4 263 136
+31ea8 8 266 136
+31eb0 8 267 136
+31eb8 4 391 136
+31ebc 4 50 15
+31ec0 4 51 15
+31ec4 4 50 15
+31ec8 4 51 15
+31ecc 4 277 82
+31ed0 8 1139 87
+31ed8 4 51 15
+31edc 20 51 15
+31efc 4 51 15
+31f00 4 51 15
+31f04 1c 51 15
+31f20 8 51 15
+31f28 c 51 15
+31f34 8 85 79
+31f3c 8 51 15
+31f44 8 156 132
+31f4c 10 256 82
+31f5c 10 54 15
+31f6c c 55 15
+31f78 4 406 135
+31f7c 4 55 15
+31f80 4 407 135
+31f84 4 408 135
+31f88 4 409 135
+31f8c 14 79 106
+31fa0 8 412 135
+31fa8 8 412 135
+31fb0 4 412 135
+31fb4 c 47 15
+31fc0 4 409 135
+31fc4 4 415 135
+31fc8 c 416 135
+31fd4 18 417 135
+31fec 8 279 135
+31ff4 10 279 135
+32004 8 280 135
+3200c 8 281 135
+32014 10 99 136
+32024 4 285 135
+32028 c 286 135
+32034 c 288 135
+32040 4 187 136
+32044 10 79 106
+32054 4 421 135
+32058 1c 422 135
+32074 c 156 132
+32080 4 57 15
+32084 4 59 15
+32088 4 57 15
+3208c c 59 15
+32098 4 60 15
+3209c 4 59 15
+320a0 4 1621 82
+320a4 4 1621 82
+320a8 8 1621 82
+320b0 24 1621 82
+320d4 8 60 15
+320dc 4 1144 87
+320e0 c 298 82
+320ec 8 298 82
+320f4 18 60 15
+3210c 8 60 15
+32114 c 60 15
+32120 8 85 79
+32128 8 60 15
+32130 c 256 82
+3213c 4 63 15
+32140 8 3016 97
+32148 4 256 82
+3214c c 51 14
+32158 8 553 136
+32160 8 65 14
+32168 20 3016 97
+32188 4 3016 97
+3218c c 3016 97
+32198 8 68 14
+321a0 4 70 14
+321a4 c 71 14
+321b0 c 73 14
+321bc 8 77 14
+321c4 c 77 14
+321d0 10 553 136
+321e0 10 79 106
+321f0 4 156 132
+321f4 4 79 106
+321f8 4 156 132
+321fc 8 553 136
+32204 4 554 136
+32208 8 556 136
+32210 4 552 136
+32214 8 558 136
+3221c 10 559 136
+3222c 10 79 106
+3223c 8 156 132
+32244 8 560 136
+3224c 4 200 136
+32250 4 1139 87
+32254 4 200 136
+32258 4 277 82
+3225c 4 67 15
+32260 20 67 15
+32280 4 67 15
+32284 4 67 15
+32288 4 67 15
+3228c 1c 67 15
+322a8 8 67 15
+322b0 c 67 15
+322bc 8 85 79
+322c4 8 67 15
+322cc 8 156 132
+322d4 18 256 82
+322ec 8 1481 82
+322f4 8 1482 82
+322fc 8 76 15
+32304 8 256 82
+3230c 8 77 15
+32314 8 531 136
+3231c 10 532 136
+3232c 8 553 136
+32334 4 549 136
+32338 4 553 136
+3233c 4 552 136
+32340 10 553 136
+32350 10 79 106
+32360 8 156 132
+32368 4 553 136
+3236c 8 554 136
+32374 14 556 136
+32388 8 558 136
+32390 14 559 136
+323a4 10 79 106
+323b4 8 156 132
+323bc 8 560 136
+323c4 4 200 136
+323c8 4 1139 87
+323cc 4 200 136
+323d0 4 277 82
+323d4 4 1139 87
+323d8 4 72 15
+323dc 20 72 15
+323fc 4 72 15
+32400 4 72 15
+32404 18 72 15
+3241c 4 256 82
+32420 4 553 136
+32424 4 549 136
+32428 4 553 136
+3242c 8 256 82
+32434 4 552 136
+32438 10 553 136
+32448 10 79 106
+32458 8 156 132
+32460 4 553 136
+32464 8 554 136
+3246c 14 556 136
+32480 8 558 136
+32488 14 559 136
+3249c 10 79 106
+324ac 8 156 132
+324b4 8 560 136
+324bc 4 200 136
+324c0 4 1139 87
+324c4 4 200 136
+324c8 4 277 82
+324cc 4 1139 87
+324d0 4 73 15
+324d4 20 73 15
+324f4 4 73 15
+324f8 4 73 15
+324fc 18 73 15
+32514 4 256 82
+32518 4 553 136
+3251c 4 549 136
+32520 4 553 136
+32524 8 256 82
+3252c 4 552 136
+32530 10 553 136
+32540 10 79 106
+32550 8 156 132
+32558 4 553 136
+3255c 8 554 136
+32564 14 556 136
+32578 8 558 136
+32580 14 559 136
+32594 10 79 106
+325a4 8 156 132
+325ac 8 560 136
+325b4 4 200 136
+325b8 4 1139 87
+325bc 4 200 136
+325c0 4 277 82
+325c4 4 1139 87
+325c8 4 74 15
+325cc 20 74 15
+325ec 4 74 15
+325f0 4 74 15
+325f4 18 74 15
+3260c 4 74 15
+32610 4 74 15
+32614 8 74 15
+3261c c 74 15
+32628 8 85 79
+32630 8 74 15
+32638 8 156 132
+32640 8 256 82
+32648 8 884 80
+32650 4 263 121
+32654 4 884 80
+32658 8 263 121
+32660 4 75 127
+32664 4 263 121
+32668 c 75 127
+32674 8 886 80
+3267c c 884 80
+32688 8 254 121
+32690 4 75 127
+32694 4 254 121
+32698 c 75 127
+326a4 8 886 80
+326ac 24 1471 82
+326d0 14 156 132
+326e4 4 1144 87
+326e8 c 298 82
+326f4 8 298 82
+326fc 1c 76 15
+32718 8 76 15
+32720 c 76 15
+3272c 8 85 79
+32734 8 76 15
+3273c c 256 82
+32748 8 549 136
+32750 c 556 136
+3275c 4 256 82
+32760 4 68 15
+32764 4 256 82
+32768 8 87 14
+32770 4 93 14
+32774 c 94 14
+32780 8 93 14
+32788 c 94 14
+32794 24 78 15
+FUNC 327b8 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::~TestFactoryImpl
+327b8 4 484 85
+FUNC 327bc 4 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::~TestFactoryImpl
+327bc 4 484 85
+FUNC 327c0 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::~TestFactoryImpl
+327c0 4 484 85
+FUNC 327c4 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+327c4 4 484 85
+FUNC 327c8 4 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::~TestFactoryImpl
+327c8 4 484 85
+FUNC 327cc 4 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+327cc 4 484 85
+FUNC 327d0 4 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::~TestFactoryImpl
+327d0 4 484 85
+FUNC 327d4 4 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::~TestFactoryImpl
+327d4 4 484 85
+FUNC 327d8 4 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+327d8 4 484 85
+FUNC 327dc 4 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::~TestFactoryImpl
+327dc 4 484 85
+FUNC 327e0 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+327e0 4 484 85
+FUNC 327e4 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::~TestFactoryImpl
+327e4 4 484 85
+FUNC 327e8 4 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::~TestFactoryImpl
+327e8 4 484 85
+FUNC 327ec 4 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::~TestFactoryImpl
+327ec 4 484 85
+FUNC 327f0 14 0 LineReaderTest_TooLong_Test::~LineReaderTest_TooLong_Test
+327f0 14 158 17
+FUNC 32804 24 0 LineReaderTest_TooLong_Test::~LineReaderTest_TooLong_Test
+32804 c 158 17
+32810 8 158 17
+32818 4 158 17
+3281c 8 158 17
+32824 4 158 17
+FUNC 32828 14 0 LineReaderTest_MaxLength_Test::~LineReaderTest_MaxLength_Test
+32828 14 143 17
+FUNC 3283c 24 0 LineReaderTest_MaxLength_Test::~LineReaderTest_MaxLength_Test
+3283c c 143 17
+32848 8 143 17
+32850 4 143 17
+32854 8 143 17
+3285c 4 143 17
+FUNC 32860 14 0 LineReaderTest_TwoLines_Test::~LineReaderTest_TwoLines_Test
+32860 14 121 17
+FUNC 32874 24 0 LineReaderTest_TwoLines_Test::~LineReaderTest_TwoLines_Test
+32874 c 121 17
+32880 8 121 17
+32888 4 121 17
+3288c 8 121 17
+32894 4 121 17
+FUNC 32898 14 0 LineReaderTest_TwoLinesTerminated_Test::~LineReaderTest_TwoLinesTerminated_Test
+32898 14 99 17
+FUNC 328ac 24 0 LineReaderTest_TwoLinesTerminated_Test::~LineReaderTest_TwoLinesTerminated_Test
+328ac c 99 17
+328b8 8 99 17
+328c0 4 99 17
+328c4 8 99 17
+328cc 4 99 17
+FUNC 328d0 14 0 LineReaderTest_OneLine_Test::~LineReaderTest_OneLine_Test
+328d0 14 83 17
+FUNC 328e4 24 0 LineReaderTest_OneLine_Test::~LineReaderTest_OneLine_Test
+328e4 c 83 17
+328f0 8 83 17
+328f8 4 83 17
+328fc 8 83 17
+32904 4 83 17
+FUNC 32908 14 0 LineReaderTest_OneLineTerminated_Test::~LineReaderTest_OneLineTerminated_Test
+32908 14 67 17
+FUNC 3291c 24 0 LineReaderTest_OneLineTerminated_Test::~LineReaderTest_OneLineTerminated_Test
+3291c c 67 17
+32928 8 67 17
+32930 4 67 17
+32934 8 67 17
+3293c 4 67 17
+FUNC 32940 14 0 LineReaderTest_EmptyFile_Test::~LineReaderTest_EmptyFile_Test
+32940 14 57 17
+FUNC 32954 24 0 LineReaderTest_EmptyFile_Test::~LineReaderTest_EmptyFile_Test
+32954 c 57 17
+32960 8 57 17
+32968 4 57 17
+3296c 8 57 17
+32974 4 57 17
+FUNC 32978 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::CreateTest
+32978 10 486 85
+32988 8 486 85
+32990 8 158 17
+32998 4 486 85
+3299c c 158 17
+329a8 c 486 85
+FUNC 329b4 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::CreateTest
+329b4 10 486 85
+329c4 8 486 85
+329cc 8 83 17
+329d4 4 486 85
+329d8 c 83 17
+329e4 c 486 85
+FUNC 329f0 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::CreateTest
+329f0 10 486 85
+32a00 8 486 85
+32a08 8 67 17
+32a10 4 486 85
+32a14 c 67 17
+32a20 c 486 85
+FUNC 32a2c 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::CreateTest
+32a2c 10 486 85
+32a3c 8 486 85
+32a44 8 57 17
+32a4c 4 486 85
+32a50 c 57 17
+32a5c c 486 85
+FUNC 32a68 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::CreateTest
+32a68 10 486 85
+32a78 8 486 85
+32a80 8 121 17
+32a88 4 486 85
+32a8c c 121 17
+32a98 c 486 85
+FUNC 32aa4 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::CreateTest
+32aa4 10 486 85
+32ab4 8 486 85
+32abc 8 99 17
+32ac4 4 486 85
+32ac8 c 99 17
+32ad4 c 486 85
+FUNC 32ae0 3c 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::CreateTest
+32ae0 10 486 85
+32af0 8 486 85
+32af8 8 143 17
+32b00 4 486 85
+32b04 c 143 17
+32b10 c 486 85
+FUNC 32b1c 118 0 google_breakpad::LineReader::GetNextLine
+32b1c 14 64 16
+32b30 4 64 16
+32b34 4 99 16
+32b38 4 103 16
+32b3c 8 66 16
+32b44 c 66 16
+32b50 14 69 16
+32b64 1c 70 16
+32b80 8 71 16
+32b88 8 72 16
+32b90 8 78 16
+32b98 c 86 16
+32ba4 8 90 16
+32bac 4 91 16
+32bb0 c 92 16
+32bbc 8 93 16
+32bc4 4 94 16
+32bc8 4 98 16
+32bcc 4 3104 97
+32bd0 4 98 16
+32bd4 4 99 16
+32bd8 14 3104 97
+32bec 4 3104 97
+32bf0 c 3104 97
+32bfc 8 100 16
+32c04 4 102 16
+32c08 8 103 16
+32c10 10 105 16
+32c20 4 67 16
+32c24 10 111 16
+FUNC 32c34 20 0 google_breakpad::LineReader::PopLine
+32c34 8 113 16
+32c3c 4 117 16
+32c40 4 118 16
+32c44 4 117 16
+32c48 c 118 16
+FUNC 32c54 8c 0 google_breakpad::AutoTestFile::WriteText
+32c54 1c 108 52
+32c70 1c 109 52
+32c8c 4 109 52
+32c90 c 109 52
+32c9c 8 110 52
+32ca4 8 111 52
+32cac 8 112 52
+32cb4 10 117 52
+32cc4 8 116 52
+32ccc c 117 52
+32cd8 8 116 52
+FUNC 32ce0 54 0 ScopedTestFile::ScopedTestFile
+32ce0 c 46 17
+32cec 4 46 17
+32cf0 4 60 52
+32cf4 4 46 17
+32cf8 8 60 52
+32d00 8 61 52
+32d08 c 62 52
+32d14 8 62 52
+32d1c 8 48 17
+32d24 4 62 52
+32d28 c 48 17
+FUNC 32d34 1a8 0 LineReaderTest_EmptyFile_Test::TestBody
+32d34 4 57 17
+32d38 8 58 17
+32d40 c 57 17
+32d4c 4 58 17
+32d50 4 57 17
+32d54 8 58 17
+32d5c 4 57 17
+32d60 4 58 17
+32d64 4 277 82
+32d68 4 82 52
+32d6c 8 1139 87
+32d74 8 82 52
+32d7c 4 277 82
+32d80 4 1139 87
+32d84 4 59 17
+32d88 20 59 17
+32da8 4 59 17
+32dac 4 59 17
+32db0 1c 59 17
+32dcc 8 59 17
+32dd4 c 59 17
+32de0 8 85 79
+32de8 8 59 17
+32df0 8 156 132
+32df8 10 256 82
+32e08 8 49 16
+32e10 4 64 17
+32e14 4 49 16
+32e18 8 64 17
+32e20 4 49 16
+32e24 4 1139 87
+32e28 c 64 17
+32e34 4 277 82
+32e38 4 1139 87
+32e3c 4 64 17
+32e40 20 64 17
+32e60 4 64 17
+32e64 4 64 17
+32e68 4 64 17
+32e6c 1c 64 17
+32e88 8 64 17
+32e90 c 64 17
+32e9c 8 85 79
+32ea4 8 64 17
+32eac 8 156 132
+32eb4 8 256 82
+32ebc 8 44 17
+32ec4 18 65 17
+FUNC 32edc 1d4 0 LineReaderTest_TooLong_Test::TestBody
+32edc 4 158 17
+32ee0 8 161 17
+32ee8 c 158 17
+32ef4 4 161 17
+32ef8 4 158 17
+32efc 4 161 17
+32f00 4 66 52
+32f04 4 158 17
+32f08 4 161 17
+32f0c 10 66 52
+32f1c 8 67 52
+32f24 10 68 52
+32f34 4 277 82
+32f38 4 82 52
+32f3c 8 1139 87
+32f44 c 82 52
+32f50 4 277 82
+32f54 4 1139 87
+32f58 4 163 17
+32f5c 20 163 17
+32f7c 4 163 17
+32f80 4 163 17
+32f84 1c 163 17
+32fa0 8 163 17
+32fa8 c 163 17
+32fb4 8 85 79
+32fbc 8 163 17
+32fc4 8 156 132
+32fcc 10 256 82
+32fdc 8 49 16
+32fe4 4 168 17
+32fe8 4 49 16
+32fec 8 168 17
+32ff4 4 49 16
+32ff8 4 1139 87
+32ffc c 168 17
+33008 4 277 82
+3300c 4 1139 87
+33010 4 168 17
+33014 20 168 17
+33034 4 168 17
+33038 4 168 17
+3303c 4 168 17
+33040 1c 168 17
+3305c 8 168 17
+33064 c 168 17
+33070 8 85 79
+33078 8 168 17
+33080 8 156 132
+33088 8 256 82
+33090 8 44 17
+33098 18 169 17
+FUNC 330b0 e8 0 testing::internal::CmpHelperEQFailure<char, char>
+330b0 c 1464 82
+330bc 4 884 80
+330c0 10 1464 82
+330d0 8 884 80
+330d8 4 1464 82
+330dc 4 75 127
+330e0 4 1464 82
+330e4 8 1464 82
+330ec 4 884 80
+330f0 c 394 80
+330fc 4 75 127
+33100 8 394 80
+33108 c 75 127
+33114 8 886 80
+3311c c 884 80
+33128 8 394 80
+33130 4 75 127
+33134 8 394 80
+3313c c 75 127
+33148 8 886 80
+33150 1c 1471 82
+3316c 10 156 132
+3317c 1c 1472 82
+FUNC 33198 3c 0 testing::internal::CmpHelperEQ<char, char>
+33198 8 1476 82
+331a0 8 1481 82
+331a8 4 1476 82
+331ac 4 1476 82
+331b0 8 1481 82
+331b8 8 1482 82
+331c0 4 1487 82
+331c4 10 1488 82
+FUNC 331d4 374 0 LineReaderTest_OneLineTerminated_Test::TestBody
+331d4 4 67 17
+331d8 8 68 17
+331e0 c 67 17
+331ec 8 68 17
+331f4 c 67 17
+33200 4 68 17
+33204 4 277 82
+33208 4 82 52
+3320c c 1139 87
+33218 8 82 52
+33220 4 277 82
+33224 4 1139 87
+33228 4 69 17
+3322c 20 69 17
+3324c 4 69 17
+33250 4 69 17
+33254 1c 69 17
+33270 8 69 17
+33278 c 69 17
+33284 8 85 79
+3328c 8 69 17
+33294 c 156 132
+332a0 4 256 82
+332a4 8 74 17
+332ac 4 1139 87
+332b0 4 256 82
+332b4 8 49 16
+332bc 4 74 17
+332c0 4 49 16
+332c4 8 74 17
+332cc 4 49 16
+332d0 4 74 17
+332d4 4 277 82
+332d8 4 74 17
+332dc 4 1139 87
+332e0 4 74 17
+332e4 20 74 17
+33304 4 74 17
+33308 4 74 17
+3330c 18 74 17
+33324 8 256 82
+3332c 4 75 17
+33330 4 1512 82
+33334 4 75 17
+33338 1c 1512 82
+33354 8 75 17
+3335c 4 302 82
+33360 4 75 17
+33364 8 302 82
+3336c 18 75 17
+33384 8 256 82
+3338c 4 76 17
+33390 4 1512 82
+33394 4 76 17
+33398 1c 1512 82
+333b4 8 76 17
+333bc 4 302 82
+333c0 4 76 17
+333c4 8 302 82
+333cc 18 76 17
+333e4 8 256 82
+333ec 8 77 17
+333f4 20 1552 82
+33414 8 77 17
+3341c 4 302 82
+33420 4 77 17
+33424 8 302 82
+3342c 18 77 17
+33444 8 77 17
+3344c c 77 17
+33458 8 85 79
+33460 8 77 17
+33468 10 256 82
+33478 c 78 17
+33484 18 80 17
+3349c 4 1139 87
+334a0 4 277 82
+334a4 4 80 17
+334a8 20 80 17
+334c8 4 80 17
+334cc 4 80 17
+334d0 18 80 17
+334e8 4 80 17
+334ec 4 80 17
+334f0 8 80 17
+334f8 c 80 17
+33504 8 85 79
+3350c 8 80 17
+33514 8 156 132
+3351c 8 256 82
+33524 8 44 17
+3352c 1c 81 17
+FUNC 33548 374 0 LineReaderTest_OneLine_Test::TestBody
+33548 4 83 17
+3354c 8 84 17
+33554 c 83 17
+33560 8 84 17
+33568 c 83 17
+33574 4 84 17
+33578 4 277 82
+3357c 4 82 52
+33580 c 1139 87
+3358c 8 82 52
+33594 4 277 82
+33598 4 1139 87
+3359c 4 85 17
+335a0 20 85 17
+335c0 4 85 17
+335c4 4 85 17
+335c8 1c 85 17
+335e4 8 85 17
+335ec c 85 17
+335f8 8 85 79
+33600 8 85 17
+33608 c 156 132
+33614 4 256 82
+33618 8 90 17
+33620 4 1139 87
+33624 4 256 82
+33628 8 49 16
+33630 4 90 17
+33634 4 49 16
+33638 8 90 17
+33640 4 49 16
+33644 4 90 17
+33648 4 277 82
+3364c 4 90 17
+33650 4 1139 87
+33654 4 90 17
+33658 20 90 17
+33678 4 90 17
+3367c 4 90 17
+33680 18 90 17
+33698 8 256 82
+336a0 4 91 17
+336a4 4 1512 82
+336a8 4 91 17
+336ac 1c 1512 82
+336c8 8 91 17
+336d0 4 302 82
+336d4 4 91 17
+336d8 8 302 82
+336e0 18 91 17
+336f8 8 256 82
+33700 4 92 17
+33704 4 1512 82
+33708 4 92 17
+3370c 1c 1512 82
+33728 8 92 17
+33730 4 302 82
+33734 4 92 17
+33738 8 302 82
+33740 18 92 17
+33758 8 256 82
+33760 8 93 17
+33768 20 1552 82
+33788 8 93 17
+33790 4 302 82
+33794 4 93 17
+33798 8 302 82
+337a0 18 93 17
+337b8 8 93 17
+337c0 c 93 17
+337cc 8 85 79
+337d4 8 93 17
+337dc 10 256 82
+337ec c 94 17
+337f8 18 96 17
+33810 4 1139 87
+33814 4 277 82
+33818 4 96 17
+3381c 20 96 17
+3383c 4 96 17
+33840 4 96 17
+33844 18 96 17
+3385c 4 96 17
+33860 4 96 17
+33864 8 96 17
+3386c c 96 17
+33878 8 85 79
+33880 8 96 17
+33888 8 156 132
+33890 8 256 82
+33898 8 44 17
+338a0 1c 97 17
+FUNC 338bc 568 0 LineReaderTest_TwoLinesTerminated_Test::TestBody
+338bc 4 99 17
+338c0 8 100 17
+338c8 10 99 17
+338d8 8 100 17
+338e0 14 99 17
+338f4 4 100 17
+338f8 4 277 82
+338fc 4 82 52
+33900 8 1139 87
+33908 c 82 52
+33914 4 277 82
+33918 4 1139 87
+3391c 4 101 17
+33920 20 101 17
+33940 4 101 17
+33944 4 101 17
+33948 1c 101 17
+33964 8 101 17
+3396c c 101 17
+33978 8 85 79
+33980 8 101 17
+33988 c 156 132
+33994 4 256 82
+33998 8 106 17
+339a0 4 1139 87
+339a4 4 256 82
+339a8 8 49 16
+339b0 4 106 17
+339b4 4 49 16
+339b8 8 106 17
+339c0 4 49 16
+339c4 4 106 17
+339c8 4 277 82
+339cc 4 106 17
+339d0 4 1139 87
+339d4 4 106 17
+339d8 20 106 17
+339f8 4 106 17
+339fc 4 106 17
+33a00 18 106 17
+33a18 8 256 82
+33a20 8 107 17
+33a28 30 1512 82
+33a58 8 107 17
+33a60 4 302 82
+33a64 4 107 17
+33a68 8 302 82
+33a70 18 107 17
+33a88 8 256 82
+33a90 8 108 17
+33a98 28 1512 82
+33ac0 8 108 17
+33ac8 4 302 82
+33acc 4 108 17
+33ad0 8 302 82
+33ad8 18 108 17
+33af0 4 256 82
+33af4 c 1552 82
+33b00 4 256 82
+33b04 4 1552 82
+33b08 4 109 17
+33b0c 14 1552 82
+33b20 4 109 17
+33b24 4 1552 82
+33b28 8 109 17
+33b30 4 302 82
+33b34 4 109 17
+33b38 8 302 82
+33b40 18 109 17
+33b58 8 256 82
+33b60 c 110 17
+33b6c 10 112 17
+33b7c 4 1139 87
+33b80 4 112 17
+33b84 4 277 82
+33b88 4 112 17
+33b8c 20 112 17
+33bac 4 112 17
+33bb0 4 112 17
+33bb4 18 112 17
+33bcc 4 112 17
+33bd0 4 112 17
+33bd4 8 112 17
+33bdc c 112 17
+33be8 8 85 79
+33bf0 8 112 17
+33bf8 8 156 132
+33c00 10 256 82
+33c10 8 113 17
+33c18 18 1512 82
+33c30 8 113 17
+33c38 4 302 82
+33c3c 4 113 17
+33c40 8 302 82
+33c48 18 113 17
+33c60 8 256 82
+33c68 4 114 17
+33c6c 8 1512 82
+33c74 4 114 17
+33c78 14 1512 82
+33c8c 8 114 17
+33c94 4 302 82
+33c98 4 114 17
+33c9c 8 302 82
+33ca4 18 114 17
+33cbc 8 256 82
+33cc4 8 115 17
+33ccc 18 1552 82
+33ce4 8 115 17
+33cec 4 302 82
+33cf0 4 115 17
+33cf4 8 302 82
+33cfc 18 115 17
+33d14 8 115 17
+33d1c c 115 17
+33d28 8 85 79
+33d30 8 115 17
+33d38 10 256 82
+33d48 c 116 17
+33d54 18 118 17
+33d6c 4 1139 87
+33d70 4 277 82
+33d74 4 118 17
+33d78 20 118 17
+33d98 4 118 17
+33d9c 4 118 17
+33da0 4 118 17
+33da4 1c 118 17
+33dc0 8 118 17
+33dc8 c 118 17
+33dd4 8 85 79
+33ddc 8 118 17
+33de4 8 156 132
+33dec 8 256 82
+33df4 8 44 17
+33dfc 28 119 17
+FUNC 33e24 568 0 LineReaderTest_TwoLines_Test::TestBody
+33e24 4 121 17
+33e28 8 122 17
+33e30 10 121 17
+33e40 8 122 17
+33e48 14 121 17
+33e5c 4 122 17
+33e60 4 277 82
+33e64 4 82 52
+33e68 8 1139 87
+33e70 c 82 52
+33e7c 4 277 82
+33e80 4 1139 87
+33e84 4 123 17
+33e88 20 123 17
+33ea8 4 123 17
+33eac 4 123 17
+33eb0 1c 123 17
+33ecc 8 123 17
+33ed4 c 123 17
+33ee0 8 85 79
+33ee8 8 123 17
+33ef0 c 156 132
+33efc 4 256 82
+33f00 8 128 17
+33f08 4 1139 87
+33f0c 4 256 82
+33f10 8 49 16
+33f18 4 128 17
+33f1c 4 49 16
+33f20 8 128 17
+33f28 4 49 16
+33f2c 4 128 17
+33f30 4 277 82
+33f34 4 128 17
+33f38 4 1139 87
+33f3c 4 128 17
+33f40 20 128 17
+33f60 4 128 17
+33f64 4 128 17
+33f68 18 128 17
+33f80 8 256 82
+33f88 8 129 17
+33f90 30 1512 82
+33fc0 8 129 17
+33fc8 4 302 82
+33fcc 4 129 17
+33fd0 8 302 82
+33fd8 18 129 17
+33ff0 8 256 82
+33ff8 8 130 17
+34000 28 1512 82
+34028 8 130 17
+34030 4 302 82
+34034 4 130 17
+34038 8 302 82
+34040 18 130 17
+34058 4 256 82
+3405c c 1552 82
+34068 4 256 82
+3406c 4 1552 82
+34070 4 131 17
+34074 14 1552 82
+34088 4 131 17
+3408c 4 1552 82
+34090 8 131 17
+34098 4 302 82
+3409c 4 131 17
+340a0 8 302 82
+340a8 18 131 17
+340c0 8 256 82
+340c8 c 132 17
+340d4 10 134 17
+340e4 4 1139 87
+340e8 4 134 17
+340ec 4 277 82
+340f0 4 134 17
+340f4 20 134 17
+34114 4 134 17
+34118 4 134 17
+3411c 18 134 17
+34134 4 134 17
+34138 4 134 17
+3413c 8 134 17
+34144 c 134 17
+34150 8 85 79
+34158 8 134 17
+34160 8 156 132
+34168 10 256 82
+34178 8 135 17
+34180 18 1512 82
+34198 8 135 17
+341a0 4 302 82
+341a4 4 135 17
+341a8 8 302 82
+341b0 18 135 17
+341c8 8 256 82
+341d0 4 136 17
+341d4 8 1512 82
+341dc 4 136 17
+341e0 14 1512 82
+341f4 8 136 17
+341fc 4 302 82
+34200 4 136 17
+34204 8 302 82
+3420c 18 136 17
+34224 8 256 82
+3422c 8 137 17
+34234 18 1552 82
+3424c 8 137 17
+34254 4 302 82
+34258 4 137 17
+3425c 8 302 82
+34264 18 137 17
+3427c 8 137 17
+34284 c 137 17
+34290 8 85 79
+34298 8 137 17
+342a0 10 256 82
+342b0 c 138 17
+342bc 18 140 17
+342d4 4 1139 87
+342d8 4 277 82
+342dc 4 140 17
+342e0 20 140 17
+34300 4 140 17
+34304 4 140 17
+34308 4 140 17
+3430c 1c 140 17
+34328 8 140 17
+34330 c 140 17
+3433c 8 85 79
+34344 8 140 17
+3434c 8 156 132
+34354 8 256 82
+3435c 8 44 17
+34364 28 141 17
+FUNC 3438c 3b8 0 LineReaderTest_MaxLength_Test::TestBody
+3438c 4 143 17
+34390 8 145 17
+34398 c 143 17
+343a4 8 145 17
+343ac c 143 17
+343b8 4 145 17
+343bc 14 66 52
+343d0 8 67 52
+343d8 10 68 52
+343e8 4 277 82
+343ec 4 82 52
+343f0 8 1139 87
+343f8 c 82 52
+34404 4 277 82
+34408 8 1139 87
+34410 4 147 17
+34414 24 147 17
+34438 1c 147 17
+34454 8 147 17
+3445c c 147 17
+34468 8 85 79
+34470 8 147 17
+34478 8 156 132
+34480 c 256 82
+3448c 8 152 17
+34494 4 256 82
+34498 8 49 16
+344a0 4 152 17
+344a4 4 49 16
+344a8 4 152 17
+344ac 4 49 16
+344b0 4 152 17
+344b4 4 1139 87
+344b8 4 152 17
+344bc 4 277 82
+344c0 4 152 17
+344c4 4 1139 87
+344c8 4 152 17
+344cc 20 152 17
+344ec 4 152 17
+344f0 4 152 17
+344f4 18 152 17
+3450c 8 256 82
+34514 c 1481 82
+34520 c 1482 82
+3452c c 884 80
+34538 c 263 121
+34544 c 75 127
+34550 8 886 80
+34558 c 1382 82
+34564 24 1471 82
+34588 10 156 132
+34598 c 153 17
+345a4 c 302 82
+345b0 18 153 17
+345c8 8 153 17
+345d0 c 153 17
+345dc 8 85 79
+345e4 8 153 17
+345ec 4 256 82
+345f0 4 1139 87
+345f4 4 256 82
+345f8 18 154 17
+34610 4 277 82
+34614 4 1139 87
+34618 4 154 17
+3461c 20 154 17
+3463c 4 154 17
+34640 4 154 17
+34644 1c 154 17
+34660 8 154 17
+34668 c 154 17
+34674 8 85 79
+3467c 8 154 17
+34684 c 156 132
+34690 4 256 82
+34694 4 155 17
+34698 4 256 82
+3469c 8 155 17
+346a4 4 1552 82
+346a8 4 155 17
+346ac 1c 1552 82
+346c8 8 155 17
+346d0 c 302 82
+346dc 18 155 17
+346f4 8 155 17
+346fc c 155 17
+34708 8 85 79
+34710 8 155 17
+34718 8 256 82
+34720 8 44 17
+34728 1c 156 17
+FUNC 34744 4 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::~TestFactoryImpl
+34744 4 484 85
+FUNC 34748 4 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::~TestFactoryImpl
+34748 4 484 85
+FUNC 3474c 4 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::~TestFactoryImpl
+3474c 4 484 85
+FUNC 34750 4 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::~TestFactoryImpl
+34750 4 484 85
+FUNC 34754 14 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::~LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test
+34754 14 65 20
+FUNC 34768 24 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::~LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test
+34768 c 65 20
+34774 8 65 20
+3477c 4 65 20
+34780 8 65 20
+34788 4 65 20
+FUNC 3478c 14 0 LinuxCoreDumperTest_BuildProcPath_Test::~LinuxCoreDumperTest_BuildProcPath_Test
+3478c 14 42 20
+FUNC 347a0 24 0 LinuxCoreDumperTest_BuildProcPath_Test::~LinuxCoreDumperTest_BuildProcPath_Test
+347a0 c 42 20
+347ac 8 42 20
+347b4 4 42 20
+347b8 8 42 20
+347c0 4 42 20
+FUNC 347c4 3c 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::CreateTest
+347c4 10 486 85
+347d4 8 486 85
+347dc 8 65 20
+347e4 4 486 85
+347e8 c 65 20
+347f4 c 486 85
+FUNC 34800 3c 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::CreateTest
+34800 10 486 85
+34810 8 486 85
+34818 8 42 20
+34820 4 486 85
+34824 c 42 20
+34830 c 486 85
+FUNC 3483c e8 0 testing::internal::CmpHelperEQFailure<unsigned int, long unsigned int>
+3483c c 1464 82
+34848 4 884 80
+3484c 10 1464 82
+3485c 8 884 80
+34864 4 1464 82
+34868 4 75 127
+3486c 4 1464 82
+34870 8 1464 82
+34878 4 884 80
+3487c c 254 121
+34888 4 75 127
+3488c 8 254 121
+34894 c 75 127
+348a0 8 886 80
+348a8 c 884 80
+348b4 8 263 121
+348bc 4 75 127
+348c0 8 263 121
+348c8 c 75 127
+348d4 8 886 80
+348dc 1c 1471 82
+348f8 10 156 132
+34908 1c 1472 82
+FUNC 34924 34 0 google_breakpad::LinuxCoreDumper::~LinuxCoreDumper
+34924 14 43 19
+34938 c 43 19
+34944 4 43 19
+34948 4 43 19
+3494c 8 43 19
+34954 4 43 19
+FUNC 34958 4a8 0 LinuxCoreDumperTest_BuildProcPath_Test::TestBody
+34958 20 42 20
+34978 8 43 20
+34980 c 44 20
+3498c 4 45 20
+34990 4 47 20
+34994 4 50 20
+34998 4 51 20
+3499c 4 277 82
+349a0 20 44 20
+349c0 8 45 20
+349c8 14 45 20
+349dc 1c 47 20
+349f8 18 50 20
+34a10 18 51 20
+34a28 4 1139 87
+34a2c 4 51 20
+34a30 4 277 82
+34a34 4 51 20
+34a38 20 51 20
+34a58 4 51 20
+34a5c 4 51 20
+34a60 1c 51 20
+34a7c 8 51 20
+34a84 c 51 20
+34a90 8 85 79
+34a98 8 51 20
+34aa0 8 156 132
+34aa8 8 256 82
+34ab0 2c 52 20
+34adc 4 1144 87
+34ae0 4 298 82
+34ae4 8 298 82
+34aec 18 52 20
+34b04 8 52 20
+34b0c c 52 20
+34b18 8 85 79
+34b20 8 52 20
+34b28 8 256 82
+34b30 1c 54 20
+34b4c 4 1139 87
+34b50 4 277 82
+34b54 4 54 20
+34b58 20 54 20
+34b78 4 54 20
+34b7c 4 54 20
+34b80 1c 54 20
+34b9c 8 54 20
+34ba4 c 54 20
+34bb0 8 85 79
+34bb8 8 54 20
+34bc0 8 156 132
+34bc8 8 256 82
+34bd0 1c 55 20
+34bec 4 1139 87
+34bf0 4 277 82
+34bf4 4 55 20
+34bf8 20 55 20
+34c18 4 55 20
+34c1c 4 55 20
+34c20 1c 55 20
+34c3c 8 55 20
+34c44 c 55 20
+34c50 8 85 79
+34c58 8 55 20
+34c60 8 156 132
+34c68 8 256 82
+34c70 1c 56 20
+34c8c 4 1139 87
+34c90 4 277 82
+34c94 4 56 20
+34c98 20 56 20
+34cb8 4 56 20
+34cbc 4 56 20
+34cc0 1c 56 20
+34cdc 8 56 20
+34ce4 c 56 20
+34cf0 8 85 79
+34cf8 8 56 20
+34d00 8 156 132
+34d08 8 256 82
+34d10 10 59 20
+34d20 10 60 20
+34d30 4 61 20
+34d34 1c 62 20
+34d50 4 1139 87
+34d54 4 277 82
+34d58 4 62 20
+34d5c 20 62 20
+34d7c 4 62 20
+34d80 4 62 20
+34d84 4 62 20
+34d88 1c 62 20
+34da4 8 62 20
+34dac c 62 20
+34db8 8 85 79
+34dc0 8 62 20
+34dc8 8 156 132
+34dd0 8 256 82
+34dd8 8 62 20
+34de0 20 63 20
+FUNC 34e00 880 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::TestBody
+34e00 14 65 20
+34e14 8 66 20
+34e1c 14 65 20
+34e30 4 66 20
+34e34 10 67 20
+34e44 18 69 20
+34e5c 4 70 20
+34e60 4 277 82
+34e64 4 73 20
+34e68 4 75 20
+34e6c 4 77 20
+34e70 4 73 20
+34e74 4 75 20
+34e78 c 77 20
+34e84 4 1139 87
+34e88 8 73 20
+34e90 4 75 20
+34e94 4 77 20
+34e98 4 277 82
+34e9c 4 77 20
+34ea0 4 1139 87
+34ea4 4 77 20
+34ea8 24 77 20
+34ecc 4 77 20
+34ed0 4 77 20
+34ed4 1c 77 20
+34ef0 8 77 20
+34ef8 c 77 20
+34f04 8 85 79
+34f0c 8 77 20
+34f14 8 156 132
+34f1c 10 256 82
+34f2c 4 80 20
+34f30 4 81 20
+34f34 4 256 82
+34f38 c 80 20
+34f44 c 81 20
+34f50 c 85 20
+34f5c 4 85 20
+34f60 1c 87 20
+34f7c c 92 20
+34f88 4 277 82
+34f8c 10 92 20
+34f9c 8 94 20
+34fa4 4 1139 87
+34fa8 4 94 20
+34fac 4 277 82
+34fb0 4 94 20
+34fb4 20 94 20
+34fd4 4 94 20
+34fd8 4 94 20
+34fdc 1c 94 20
+34ff8 8 94 20
+35000 c 94 20
+3500c 8 85 79
+35014 8 94 20
+3501c 8 156 132
+35024 8 256 82
+3502c 8 96 20
+35034 4 1139 87
+35038 4 96 20
+3503c 4 277 82
+35040 4 96 20
+35044 20 96 20
+35064 4 96 20
+35068 4 96 20
+3506c 1c 96 20
+35088 8 96 20
+35090 c 96 20
+3509c 8 85 79
+350a4 8 96 20
+350ac 8 156 132
+350b4 8 256 82
+350bc 8 99 20
+350c4 4 1139 87
+350c8 4 99 20
+350cc 4 277 82
+350d0 4 99 20
+350d4 20 99 20
+350f4 4 99 20
+350f8 4 99 20
+350fc 1c 99 20
+35118 8 99 20
+35120 c 99 20
+3512c 8 85 79
+35134 8 99 20
+3513c 8 156 132
+35144 8 256 82
+3514c 8 100 20
+35154 4 1139 87
+35158 4 100 20
+3515c 4 277 82
+35160 4 100 20
+35164 20 100 20
+35184 4 100 20
+35188 4 100 20
+3518c 1c 100 20
+351a8 8 100 20
+351b0 c 100 20
+351bc 8 85 79
+351c4 8 100 20
+351cc 8 156 132
+351d4 8 256 82
+351dc 8 104 20
+351e4 4 1482 82
+351e8 4 104 20
+351ec 4 1481 82
+351f0 8 1482 82
+351f8 1c 1487 82
+35214 8 104 20
+3521c 4 1144 87
+35220 c 298 82
+3522c 8 298 82
+35234 18 104 20
+3524c 8 104 20
+35254 c 104 20
+35260 8 85 79
+35268 8 104 20
+35270 8 256 82
+35278 4 105 20
+3527c 4 1512 82
+35280 4 105 20
+35284 1c 1512 82
+352a0 8 105 20
+352a8 4 1144 87
+352ac c 298 82
+352b8 8 298 82
+352c0 18 105 20
+352d8 8 105 20
+352e0 c 105 20
+352ec 8 85 79
+352f4 8 105 20
+352fc 8 256 82
+35304 14 106 20
+35318 4 1512 82
+3531c 4 106 20
+35320 1c 1512 82
+3533c 8 106 20
+35344 4 1144 87
+35348 c 298 82
+35354 8 298 82
+3535c 18 106 20
+35374 8 106 20
+3537c c 107 20
+35388 8 85 79
+35390 8 106 20
+35398 8 256 82
+353a0 4 192 139
+353a4 4 1482 82
+353a8 c 192 139
+353b4 4 1481 82
+353b8 4 109 20
+353bc 8 1481 82
+353c4 8 1482 82
+353cc 1c 1487 82
+353e8 8 109 20
+353f0 4 1144 87
+353f4 c 298 82
+35400 8 298 82
+35408 18 109 20
+35420 8 109 20
+35428 c 109 20
+35434 8 85 79
+3543c 8 109 20
+35444 4 256 82
+35448 c 112 20
+35454 4 256 82
+35458 1c 112 20
+35474 10 112 20
+35484 4 1139 87
+35488 4 112 20
+3548c 4 277 82
+35490 4 112 20
+35494 14 112 20
+354a8 4 112 20
+354ac 4 112 20
+354b0 4 112 20
+354b4 1c 112 20
+354d0 8 112 20
+354d8 c 112 20
+354e4 8 85 79
+354ec 8 112 20
+354f4 8 156 132
+354fc 8 256 82
+35504 14 115 20
+35518 4 1139 87
+3551c 4 115 20
+35520 4 277 82
+35524 4 115 20
+35528 18 115 20
+35540 4 115 20
+35544 4 115 20
+35548 4 115 20
+3554c 1c 115 20
+35568 8 115 20
+35570 c 115 20
+3557c 8 85 79
+35584 8 115 20
+3558c 8 156 132
+35594 8 256 82
+3559c 8 116 20
+355a4 20 1512 82
+355c4 8 116 20
+355cc 4 1144 87
+355d0 c 298 82
+355dc 8 298 82
+355e4 1c 116 20
+35600 8 116 20
+35608 c 116 20
+35614 8 85 79
+3561c 8 116 20
+35624 c 256 82
+35630 8 110 20
+35638 8 92 20
+35640 10 156 132
+35650 8 70 20
+35658 28 118 20
+FUNC 35680 24 0 google_breakpad::LinuxCoreDumper::~LinuxCoreDumper
+35680 c 43 19
+3568c 8 43 19
+35694 4 43 19
+35698 8 43 19
+356a0 4 43 19
+FUNC 356a4 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::~TestFactoryImpl
+356a4 4 484 85
+FUNC 356a8 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::~TestFactoryImpl
+356a8 4 484 85
+FUNC 356ac 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_LinuxGateMappingID_Test>::~TestFactoryImpl
+356ac 4 484 85
+FUNC 356b0 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test>::~TestFactoryImpl
+356b0 4 484 85
+FUNC 356b4 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::~TestFactoryImpl
+356b4 4 484 85
+FUNC 356b8 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::~TestFactoryImpl
+356b8 4 484 85
+FUNC 356bc 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::~TestFactoryImpl
+356bc 4 484 85
+FUNC 356c0 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::~TestFactoryImpl
+356c0 4 484 85
+FUNC 356c4 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::~TestFactoryImpl
+356c4 4 484 85
+FUNC 356c8 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::~TestFactoryImpl
+356c8 4 484 85
+FUNC 356cc 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::~TestFactoryImpl
+356cc 4 484 85
+FUNC 356d0 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::~TestFactoryImpl
+356d0 4 484 85
+FUNC 356d4 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::~TestFactoryImpl
+356d4 4 484 85
+FUNC 356d8 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::~TestFactoryImpl
+356d8 4 484 85
+FUNC 356dc 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test>::~TestFactoryImpl
+356dc 4 484 85
+FUNC 356e0 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_LinuxGateMappingID_Test>::~TestFactoryImpl
+356e0 4 484 85
+FUNC 356e4 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::~TestFactoryImpl
+356e4 4 484 85
+FUNC 356e8 4 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::~TestFactoryImpl
+356e8 4 484 85
+FUNC 356ec 24 0 LinuxPtraceDumperChildTest::SetUp
+356ec c 74 25
+356f8 4 74 25
+356fc 8 75 25
+35704 c 79 25
+FUNC 35710 14 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::~LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test
+35710 14 364 25
+FUNC 35724 24 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::~LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test
+35724 c 364 25
+35730 8 364 25
+35738 4 364 25
+3573c 8 364 25
+35744 4 364 25
+FUNC 35748 14 0 LinuxPtraceDumperChildTest_ThreadList_Test::~LinuxPtraceDumperChildTest_ThreadList_Test
+35748 14 72 25
+FUNC 3575c 24 0 LinuxPtraceDumperChildTest_ThreadList_Test::~LinuxPtraceDumperChildTest_ThreadList_Test
+3575c c 134 25
+35768 8 134 25
+35770 4 134 25
+35774 8 134 25
+3577c 4 134 25
+FUNC 35780 14 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::~LinuxPtraceDumperChildTest_FileIDsMatch_Test
+35780 14 72 25
+FUNC 35794 24 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::~LinuxPtraceDumperChildTest_FileIDsMatch_Test
+35794 c 325 25
+357a0 8 325 25
+357a8 4 325 25
+357ac 8 325 25
+357b4 4 325 25
+FUNC 357b8 14 0 LinuxPtraceDumperChildTest_LinuxGateMappingID_Test::~LinuxPtraceDumperChildTest_LinuxGateMappingID_Test
+357b8 14 72 25
+FUNC 357cc 24 0 LinuxPtraceDumperChildTest_LinuxGateMappingID_Test::~LinuxPtraceDumperChildTest_LinuxGateMappingID_Test
+357cc c 295 25
+357d8 8 295 25
+357e0 4 295 25
+357e4 8 295 25
+357ec 4 295 25
+FUNC 357f0 14 0 LinuxPtraceDumperChildTest_FindMappings_Test::~LinuxPtraceDumperChildTest_FindMappings_Test
+357f0 14 72 25
+FUNC 35804 24 0 LinuxPtraceDumperChildTest_FindMappings_Test::~LinuxPtraceDumperChildTest_FindMappings_Test
+35804 c 125 25
+35810 8 125 25
+35818 4 125 25
+3581c 8 125 25
+35824 4 125 25
+FUNC 35828 14 0 LinuxPtraceDumperChildTest_Setup_Test::~LinuxPtraceDumperChildTest_Setup_Test
+35828 14 72 25
+FUNC 3583c 24 0 LinuxPtraceDumperChildTest_Setup_Test::~LinuxPtraceDumperChildTest_Setup_Test
+3583c c 121 25
+35848 8 121 25
+35850 4 121 25
+35854 8 121 25
+3585c 4 121 25
+FUNC 35860 14 0 LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test::~LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test
+35860 14 72 25
+FUNC 35874 24 0 LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test::~LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test
+35874 c 271 25
+35880 8 271 25
+35888 4 271 25
+3588c 8 271 25
+35894 4 271 25
+FUNC 35898 14 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::~LinuxPtraceDumperChildTest_BuildProcPath_Test
+35898 14 72 25
+FUNC 358ac 24 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::~LinuxPtraceDumperChildTest_BuildProcPath_Test
+358ac c 246 25
+358b8 8 246 25
+358c0 4 246 25
+358c4 8 246 25
+358cc 4 246 25
+FUNC 358d0 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test>::CreateTest
+358d0 10 486 85
+358e0 8 486 85
+358e8 4 72 25
+358ec 4 271 25
+358f0 4 486 85
+358f4 c 271 25
+35900 c 486 85
+FUNC 3590c 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::CreateTest
+3590c 10 486 85
+3591c 8 486 85
+35924 4 72 25
+35928 4 246 25
+3592c 4 486 85
+35930 c 246 25
+3593c c 486 85
+FUNC 35948 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::CreateTest
+35948 10 486 85
+35958 8 486 85
+35960 4 72 25
+35964 4 125 25
+35968 4 486 85
+3596c c 125 25
+35978 c 486 85
+FUNC 35984 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::CreateTest
+35984 10 486 85
+35994 8 486 85
+3599c 4 72 25
+359a0 4 134 25
+359a4 4 486 85
+359a8 c 134 25
+359b4 c 486 85
+FUNC 359c0 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::CreateTest
+359c0 10 486 85
+359d0 8 486 85
+359d8 4 72 25
+359dc 4 325 25
+359e0 4 486 85
+359e4 c 325 25
+359f0 c 486 85
+FUNC 359fc 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_LinuxGateMappingID_Test>::CreateTest
+359fc 10 486 85
+35a0c 8 486 85
+35a14 4 72 25
+35a18 4 295 25
+35a1c 4 486 85
+35a20 c 295 25
+35a2c c 486 85
+FUNC 35a38 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::CreateTest
+35a38 10 486 85
+35a48 8 486 85
+35a50 4 72 25
+35a54 4 121 25
+35a58 4 486 85
+35a5c c 121 25
+35a68 c 486 85
+FUNC 35a74 3c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::CreateTest
+35a74 10 486 85
+35a84 8 486 85
+35a8c 8 364 25
+35a94 4 486 85
+35a98 c 364 25
+35aa4 c 486 85
+FUNC 35ab0 190 0 LinuxPtraceDumperChildTest::TestBody
+35ab0 10 85 25
+35ac0 4 85 25
+35ac4 c 86 25
+35ad0 c 88 25
+35adc 8 89 25
+35ae4 4 90 25
+35ae8 4 90 25
+35aec 8 90 25
+35af4 c 90 25
+35b00 8 90 25
+35b08 4 93 25
+35b0c 4 1139 87
+35b10 10 277 82
+35b20 4 93 25
+35b24 24 93 25
+35b48 4 93 25
+35b4c 4 93 25
+35b50 1c 93 25
+35b6c 8 93 25
+35b74 c 93 25
+35b80 8 85 79
+35b88 8 93 25
+35b90 8 156 132
+35b98 14 256 82
+35bac 10 95 25
+35bbc c 96 25
+35bc8 18 97 25
+35be0 8 98 25
+35be8 18 99 25
+35c00 4 99 25
+35c04 8 99 25
+35c0c 8 99 25
+35c14 c 99 25
+35c20 8 85 79
+35c28 8 99 25
+35c30 10 101 25
+FUNC 35c40 68 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::~LinuxPtraceDumperMappingsTest_MergedMappings_Test
+35c40 c 226 25
+35c4c 4 226 25
+35c50 14 176 25
+35c64 8 156 25
+35c6c 8 157 25
+35c74 8 158 25
+35c7c 4 159 25
+35c80 8 156 132
+35c88 14 72 25
+35c9c 8 226 25
+35ca4 4 72 25
+FUNC 35ca8 24 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::~LinuxPtraceDumperMappingsTest_MergedMappings_Test
+35ca8 c 226 25
+35cb4 8 226 25
+35cbc 4 226 25
+35cc0 8 226 25
+35cc8 4 226 25
+FUNC 35ccc 144 0 std::priv::_Impl_vector<void*, google_breakpad::PageStdAllocator<void*> >::_Impl_vector
+35ccc 10 246 139
+35cdc 8 246 139
+35ce4 8 192 139
+35cec 8 163 54
+35cf4 4 75 54
+35cf8 8 70 139
+35d00 4 481 101
+35d04 4 75 54
+35d08 8 76 54
+35d10 c 78 54
+35d1c 10 78 54
+35d2c 4 79 54
+35d30 4 80 54
+35d34 8 81 54
+35d3c 8 80 54
+35d44 4 82 54
+35d48 8 83 54
+35d50 c 90 54
+35d5c c 3940 97
+35d68 4 90 54
+35d6c 8 3940 97
+35d74 4 119 54
+35d78 14 3940 97
+35d8c 4 3940 97
+35d90 c 3940 97
+35d9c 8 124 54
+35da4 8 134 54
+35dac 4 135 54
+35db0 4 136 54
+35db4 14 96 54
+35dc8 4 97 54
+35dcc 4 98 54
+35dd0 8 98 54
+35dd8 4 98 54
+35ddc 4 100 54
+35de0 4 71 139
+35de4 4 73 139
+35de8 4 72 139
+35dec 4 73 139
+35df0 c 120 137
+35dfc 4 249 139
+35e00 10 250 139
+FUNC 35e10 78 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::CreateTest
+35e10 10 486 85
+35e20 8 486 85
+35e28 4 72 25
+35e2c 14 176 25
+35e40 4 124 132
+35e44 4 120 132
+35e48 4 481 101
+35e4c 8 124 132
+35e54 4 154 25
+35e58 4 101 103
+35e5c 4 226 25
+35e60 c 154 25
+35e6c c 226 25
+35e78 10 486 85
+FUNC 35e88 50 0 testing::internal::DefaultPrintTo<void>
+35e88 14 307 80
+35e9c 4 310 80
+35ea0 4 334 80
+35ea4 4 333 122
+35ea8 4 334 80
+35eac 8 333 122
+35eb4 10 318 80
+35ec4 8 291 121
+35ecc 8 334 80
+35ed4 4 291 121
+FUNC 35ed8 3a8 0 LinuxPtraceDumperMappingsTest::SetUp
+35ed8 c 185 25
+35ee4 4 186 25
+35ee8 4 185 25
+35eec 4 186 25
+35ef0 8 185 25
+35ef8 8 186 25
+35f00 14 348 131
+35f14 4 400 131
+35f18 4 243 130
+35f1c 4 400 131
+35f20 8 244 130
+35f28 4 168 140
+35f2c c 168 140
+35f38 c 246 130
+35f44 8 803 131
+35f4c 4 168 140
+35f50 4 806 131
+35f54 4 168 140
+35f58 10 806 131
+35f68 4 168 140
+35f6c 8 168 140
+35f74 4 400 131
+35f78 4 250 130
+35f7c 8 400 131
+35f84 c 250 130
+35f90 c 156 132
+35f9c 10 187 25
+35fac 20 188 25
+35fcc 8 188 25
+35fd4 14 333 122
+35fe8 c 188 25
+35ff4 8 85 79
+35ffc 8 188 25
+36004 4 188 25
+36008 14 194 25
+3601c c 196 25
+36028 4 196 25
+3602c 30 197 25
+3605c 4 302 82
+36060 4 197 25
+36064 8 302 82
+3606c 18 197 25
+36084 8 197 25
+3608c 14 333 122
+360a0 10 131 79
+360b0 14 333 122
+360c4 4 198 25
+360c8 4 198 25
+360cc c 198 25
+360d8 4 333 122
+360dc 4 150 79
+360e0 c 333 122
+360ec c 198 25
+360f8 8 85 79
+36100 8 197 25
+36108 8 256 82
+36110 c 195 25
+3611c 8 256 82
+36124 1c 205 25
+36140 4 277 82
+36144 4 205 25
+36148 4 1139 87
+3614c 8 277 82
+36154 4 206 25
+36158 20 206 25
+36178 4 206 25
+3617c 4 206 25
+36180 18 206 25
+36198 8 256 82
+361a0 4 163 25
+361a4 8 220 25
+361ac 4 209 25
+361b0 4 220 25
+361b4 4 162 25
+361b8 4 220 25
+361bc 4 164 25
+361c0 8 220 25
+361c8 8 277 82
+361d0 4 1139 87
+361d4 4 277 82
+361d8 4 221 25
+361dc 20 221 25
+361fc 4 221 25
+36200 4 221 25
+36204 18 221 25
+3621c 4 221 25
+36220 4 221 25
+36224 8 221 25
+3622c c 221 25
+36238 8 85 79
+36240 8 221 25
+36248 8 156 132
+36250 14 256 82
+36264 8 223 25
+3626c 14 224 25
+FUNC 36280 14 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper
+36280 14 42 24
+FUNC 36294 34 0 LinuxPtraceDumperChildTest_Setup_Test::RealTestBody
+36294 c 121 25
+362a0 4 122 25
+362a4 8 122 25
+362ac 8 122 25
+362b4 8 122 25
+362bc c 123 25
+FUNC 362c8 230 0 LinuxPtraceDumperChildTest_FindMappings_Test::RealTestBody
+362c8 14 125 25
+362dc 4 126 25
+362e0 8 126 25
+362e8 4 126 25
+362ec 8 277 82
+362f4 4 126 25
+362f8 8 127 25
+36300 4 1139 87
+36304 4 127 25
+36308 4 277 82
+3630c 4 127 25
+36310 24 127 25
+36334 4 127 25
+36338 4 127 25
+3633c 18 127 25
+36354 8 256 82
+3635c 10 129 25
+3636c 8 277 82
+36374 4 1139 87
+36378 4 277 82
+3637c 4 129 25
+36380 24 129 25
+363a4 4 129 25
+363a8 4 129 25
+363ac 18 129 25
+363c4 8 256 82
+363cc 10 130 25
+363dc 8 277 82
+363e4 4 1139 87
+363e8 4 277 82
+363ec 4 130 25
+363f0 24 130 25
+36414 4 130 25
+36418 4 130 25
+3641c 18 130 25
+36434 8 256 82
+3643c 14 131 25
+36450 4 1139 87
+36454 4 277 82
+36458 4 131 25
+3645c 24 131 25
+36480 4 131 25
+36484 4 131 25
+36488 18 131 25
+364a0 4 131 25
+364a4 4 131 25
+364a8 8 131 25
+364b0 c 131 25
+364bc 8 85 79
+364c4 8 131 25
+364cc 8 156 132
+364d4 10 256 82
+364e4 14 132 25
+FUNC 364f8 4fc 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::RealTestBody
+364f8 20 246 25
+36518 4 248 25
+3651c 8 247 25
+36524 8 248 25
+3652c 4 250 25
+36530 4 253 25
+36534 4 248 25
+36538 4 277 82
+3653c c 250 25
+36548 c 254 25
+36554 10 250 25
+36564 18 253 25
+3657c 14 254 25
+36590 4 1139 87
+36594 4 254 25
+36598 4 277 82
+3659c 4 254 25
+365a0 20 254 25
+365c0 4 254 25
+365c4 4 254 25
+365c8 1c 254 25
+365e4 8 254 25
+365ec c 254 25
+365f8 8 85 79
+36600 8 254 25
+36608 8 156 132
+36610 8 256 82
+36618 28 255 25
+36640 c 302 82
+3664c 18 255 25
+36664 8 255 25
+3666c c 255 25
+36678 8 85 79
+36680 8 255 25
+36688 8 256 82
+36690 1c 257 25
+366ac 4 1139 87
+366b0 4 277 82
+366b4 4 257 25
+366b8 20 257 25
+366d8 4 257 25
+366dc 4 257 25
+366e0 1c 257 25
+366fc 8 257 25
+36704 c 257 25
+36710 8 85 79
+36718 8 257 25
+36720 8 156 132
+36728 8 256 82
+36730 1c 258 25
+3674c 4 1139 87
+36750 4 277 82
+36754 4 258 25
+36758 20 258 25
+36778 4 258 25
+3677c 4 258 25
+36780 1c 258 25
+3679c 8 258 25
+367a4 c 258 25
+367b0 8 85 79
+367b8 8 258 25
+367c0 8 156 132
+367c8 8 256 82
+367d0 20 259 25
+367f0 4 1139 87
+367f4 4 277 82
+367f8 4 259 25
+367fc 20 259 25
+3681c 4 259 25
+36820 4 259 25
+36824 1c 259 25
+36840 8 259 25
+36848 c 259 25
+36854 8 85 79
+3685c 8 259 25
+36864 8 156 132
+3686c 8 256 82
+36874 1c 260 25
+36890 4 1139 87
+36894 4 277 82
+36898 4 260 25
+3689c 20 260 25
+368bc 4 260 25
+368c0 4 260 25
+368c4 1c 260 25
+368e0 8 260 25
+368e8 c 260 25
+368f4 8 85 79
+368fc 8 260 25
+36904 8 156 132
+3690c 8 256 82
+36914 10 264 25
+36924 4 265 25
+36928 1c 266 25
+36944 4 1139 87
+36948 4 277 82
+3694c 4 266 25
+36950 20 266 25
+36970 4 266 25
+36974 4 266 25
+36978 4 266 25
+3697c 1c 266 25
+36998 8 266 25
+369a0 c 266 25
+369ac 8 85 79
+369b4 8 266 25
+369bc 8 156 132
+369c4 8 256 82
+369cc 8 266 25
+369d4 20 267 25
+FUNC 369f4 4b8 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::RealTestBody
+369f4 4 325 25
+369f8 4 60 49
+369fc 4 325 25
+36a00 8 60 49
+36a08 c 325 25
+36a14 8 60 49
+36a1c 8 325 25
+36a24 4 60 49
+36a28 4 1139 87
+36a2c 4 60 49
+36a30 14 277 82
+36a44 4 330 25
+36a48 20 330 25
+36a68 4 330 25
+36a6c 4 330 25
+36a70 1c 330 25
+36a8c 8 330 25
+36a94 c 330 25
+36aa0 8 85 79
+36aa8 8 330 25
+36ab0 8 156 132
+36ab8 10 256 82
+36ac8 8 277 82
+36ad0 4 256 82
+36ad4 8 332 25
+36adc 8 332 25
+36ae4 8 333 25
+36aec 4 277 82
+36af0 4 333 25
+36af4 4 1139 87
+36af8 4 333 25
+36afc 20 333 25
+36b1c 4 333 25
+36b20 4 333 25
+36b24 1c 333 25
+36b40 8 333 25
+36b48 c 333 25
+36b54 8 85 79
+36b5c 8 333 25
+36b64 8 156 132
+36b6c 10 256 82
+36b7c 8 124 143
+36b84 4 337 25
+36b88 4 124 143
+36b8c 10 192 139
+36b9c c 337 25
+36ba8 14 339 25
+36bbc 8 337 25
+36bc4 8 335 25
+36bcc 4 340 25
+36bd0 c 277 82
+36bdc 4 1139 87
+36be0 4 344 25
+36be4 24 344 25
+36c08 4 344 25
+36c0c 4 344 25
+36c10 4 344 25
+36c14 1c 344 25
+36c30 8 344 25
+36c38 c 344 25
+36c44 8 85 79
+36c4c 8 344 25
+36c54 8 156 132
+36c5c 18 256 82
+36c74 c 348 25
+36c80 4 348 25
+36c84 c 348 25
+36c90 4 277 82
+36c94 4 348 25
+36c98 4 1139 87
+36c9c 4 348 25
+36ca0 24 348 25
+36cc4 4 348 25
+36cc8 4 348 25
+36ccc 4 348 25
+36cd0 1c 348 25
+36cec 8 348 25
+36cf4 c 349 25
+36d00 8 85 79
+36d08 8 348 25
+36d10 8 156 132
+36d18 c 256 82
+36d24 c 350 25
+36d30 10 351 25
+36d40 8 277 82
+36d48 4 1139 87
+36d4c 4 351 25
+36d50 24 351 25
+36d74 4 351 25
+36d78 4 351 25
+36d7c 4 351 25
+36d80 1c 351 25
+36d9c 8 351 25
+36da4 c 351 25
+36db0 8 85 79
+36db8 8 351 25
+36dc0 8 156 132
+36dc8 4 256 82
+36dcc 4 358 25
+36dd0 8 256 82
+36dd8 10 355 25
+36de8 18 357 25
+36e00 28 358 25
+36e28 4 302 82
+36e2c 4 358 25
+36e30 4 358 25
+36e34 8 302 82
+36e3c 18 358 25
+36e54 8 358 25
+36e5c c 358 25
+36e68 8 85 79
+36e70 8 358 25
+36e78 8 256 82
+36e80 10 156 132
+36e90 1c 359 25
+FUNC 36eac 408 0 LinuxPtraceDumperChildTest_ThreadList_Test::RealTestBody
+36eac 14 134 25
+36ec0 4 135 25
+36ec4 8 134 25
+36ecc 8 135 25
+36ed4 4 135 25
+36ed8 c 277 82
+36ee4 4 135 25
+36ee8 8 136 25
+36ef0 4 277 82
+36ef4 4 136 25
+36ef8 4 1139 87
+36efc 4 136 25
+36f00 24 136 25
+36f24 4 136 25
+36f28 4 136 25
+36f2c 1c 136 25
+36f48 8 136 25
+36f50 c 136 25
+36f5c 8 85 79
+36f64 8 136 25
+36f6c c 156 132
+36f78 4 256 82
+36f7c 8 138 25
+36f84 4 256 82
+36f88 10 192 139
+36f98 c 138 25
+36fa4 4 1621 82
+36fa8 10 1621 82
+36fb8 38 1583 82
+36ff0 10 1583 82
+37000 8 1583 82
+37008 c 1583 82
+37014 8 1583 82
+3701c c 1583 82
+37028 4 1583 82
+3702c 4 1382 82
+37030 4 1583 82
+37034 10 1584 82
+37044 c 1382 82
+37050 10 1584 82
+37060 8 306 82
+37068 4 131 79
+3706c 10 333 122
+3707c c 306 82
+37088 8 85 79
+37090 c 1382 82
+3709c 10 1585 82
+370ac 8 1585 82
+370b4 10 156 132
+370c4 8 256 82
+370cc c 138 25
+370d8 4 302 82
+370dc 4 138 25
+370e0 8 302 82
+370e8 18 138 25
+37100 8 138 25
+37108 c 138 25
+37114 8 85 79
+3711c 8 138 25
+37124 c 256 82
+37130 4 140 25
+37134 8 139 25
+3713c 4 256 82
+37140 c 192 139
+3714c 8 140 25
+37154 4 141 25
+37158 4 141 25
+3715c 8 141 25
+37164 4 142 25
+37168 4 1139 87
+3716c 4 277 82
+37170 4 142 25
+37174 24 142 25
+37198 4 142 25
+3719c 4 142 25
+371a0 1c 142 25
+371bc 8 142 25
+371c4 c 142 25
+371d0 8 85 79
+371d8 8 142 25
+371e0 8 156 132
+371e8 c 256 82
+371f4 4 143 25
+371f8 4 256 82
+371fc 8 140 25
+37204 8 277 82
+3720c 4 1139 87
+37210 4 146 25
+37214 24 146 25
+37238 4 146 25
+3723c 4 146 25
+37240 1c 146 25
+3725c 8 146 25
+37264 c 146 25
+37270 8 85 79
+37278 8 146 25
+37280 8 156 132
+37288 10 256 82
+37298 1c 147 25
+FUNC 372b4 40c 0 LinuxPtraceDumperChildTest_LinuxGateMappingID_Test::RealTestBody
+372b4 18 295 25
+372cc 4 296 25
+372d0 8 296 25
+372d8 4 296 25
+372dc 8 277 82
+372e4 4 296 25
+372e8 8 297 25
+372f0 4 1139 87
+372f4 4 297 25
+372f8 4 277 82
+372fc 4 297 25
+37300 24 297 25
+37324 4 297 25
+37328 4 297 25
+3732c 4 297 25
+37330 1c 297 25
+3734c 8 297 25
+37354 c 297 25
+37360 8 85 79
+37368 8 297 25
+37370 8 156 132
+37378 c 256 82
+37384 4 302 25
+37388 4 256 82
+3738c 8 124 143
+37394 4 303 25
+37398 4 124 143
+3739c 8 192 139
+373a4 4 303 25
+373a8 8 192 139
+373b0 c 302 25
+373bc 10 303 25
+373cc 4 303 25
+373d0 8 302 25
+373d8 4 299 25
+373dc 8 301 25
+373e4 4 304 25
+373e8 18 277 82
+37400 4 1139 87
+37404 4 309 25
+37408 24 309 25
+3742c 18 309 25
+37444 8 256 82
+3744c 8 312 25
+37454 4 277 82
+37458 4 312 25
+3745c 4 1139 87
+37460 4 312 25
+37464 24 312 25
+37488 1c 312 25
+374a4 8 312 25
+374ac c 312 25
+374b8 8 85 79
+374c0 8 312 25
+374c8 8 156 132
+374d0 10 256 82
+374e0 20 314 25
+37500 4 1139 87
+37504 4 314 25
+37508 4 277 82
+3750c 4 314 25
+37510 24 314 25
+37534 1c 314 25
+37550 8 314 25
+37558 c 314 25
+37564 8 85 79
+3756c 8 314 25
+37574 8 256 82
+3757c c 320 25
+37588 4 319 25
+3758c c 320 25
+37598 20 320 25
+375b8 8 320 25
+375c0 c 302 82
+375cc 18 320 25
+375e4 8 320 25
+375ec c 320 25
+375f8 8 85 79
+37600 8 320 25
+37608 8 256 82
+37610 8 321 25
+37618 4 277 82
+3761c 4 321 25
+37620 4 1139 87
+37624 4 321 25
+37628 20 321 25
+37648 4 321 25
+3764c 4 321 25
+37650 1c 321 25
+3766c 8 321 25
+37674 c 321 25
+37680 8 85 79
+37688 8 321 25
+37690 8 156 132
+37698 10 256 82
+376a8 18 322 25
+FUNC 376c0 3e0 0 LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test::RealTestBody
+376c0 18 271 25
+376d8 4 272 25
+376dc 4 277 82
+376e0 4 271 25
+376e4 8 272 25
+376ec 4 272 25
+376f0 8 1139 87
+376f8 4 272 25
+376fc 8 273 25
+37704 4 277 82
+37708 4 273 25
+3770c 4 1139 87
+37710 4 273 25
+37714 28 273 25
+3773c 18 273 25
+37754 8 256 82
+3775c 8 276 25
+37764 4 1139 87
+37768 c 277 82
+37774 4 277 25
+37778 28 277 25
+377a0 18 277 25
+377b8 4 277 25
+377bc 4 277 25
+377c0 8 277 25
+377c8 c 277 25
+377d4 8 85 79
+377dc 8 277 25
+377e4 8 156 132
+377ec c 256 82
+377f8 8 284 25
+37800 4 256 82
+37804 c 124 143
+37810 8 192 139
+37818 4 282 25
+3781c 8 192 139
+37824 c 282 25
+37830 4 283 25
+37834 10 284 25
+37844 8 282 25
+3784c 8 278 25
+37854 4 285 25
+37858 8 277 82
+37860 8 1139 87
+37868 4 289 25
+3786c 20 289 25
+3788c 4 289 25
+37890 4 289 25
+37894 1c 289 25
+378b0 8 289 25
+378b8 c 289 25
+378c4 8 85 79
+378cc 8 289 25
+378d4 8 156 132
+378dc 8 256 82
+378e4 4 290 25
+378e8 8 1481 82
+378f0 c 1482 82
+378fc 8 884 80
+37904 4 380 80
+37908 4 75 127
+3790c 4 884 80
+37910 c 380 80
+3791c c 75 127
+37928 8 886 80
+37930 c 884 80
+3793c c 380 80
+37948 c 75 127
+37954 8 886 80
+3795c 24 1471 82
+37980 10 156 132
+37990 8 290 25
+37998 c 302 82
+379a4 18 290 25
+379bc 8 290 25
+379c4 c 290 25
+379d0 8 85 79
+379d8 8 290 25
+379e0 8 256 82
+379e8 1c 291 25
+37a04 20 1552 82
+37a24 8 291 25
+37a2c c 302 82
+37a38 18 291 25
+37a50 8 291 25
+37a58 c 291 25
+37a64 8 85 79
+37a6c 8 291 25
+37a74 10 256 82
+37a84 1c 292 25
+FUNC 37aa0 3d8 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::RealTestBody
+37aa0 14 226 25
+37ab4 4 277 82
+37ab8 c 226 25
+37ac4 4 228 25
+37ac8 8 226 25
+37ad0 8 228 25
+37ad8 4 228 25
+37adc 8 1139 87
+37ae4 4 228 25
+37ae8 8 229 25
+37af0 4 277 82
+37af4 4 229 25
+37af8 4 1139 87
+37afc 4 229 25
+37b00 24 229 25
+37b24 4 229 25
+37b28 4 229 25
+37b2c 1c 229 25
+37b48 8 229 25
+37b50 c 229 25
+37b5c 8 85 79
+37b64 8 229 25
+37b6c 8 156 132
+37b74 10 256 82
+37b84 4 1512 82
+37b88 4 231 25
+37b8c 4 256 82
+37b90 4 1512 82
+37b94 4 256 82
+37b98 4 230 25
+37b9c 8 256 82
+37ba4 4 192 139
+37ba8 4 231 25
+37bac 8 192 139
+37bb4 8 231 25
+37bbc 4 232 25
+37bc0 c 233 25
+37bcc 4 233 25
+37bd0 4 236 25
+37bd4 4 1512 82
+37bd8 4 236 25
+37bdc 18 1512 82
+37bf4 8 236 25
+37bfc c 302 82
+37c08 18 236 25
+37c20 8 236 25
+37c28 c 237 25
+37c34 8 85 79
+37c3c 8 236 25
+37c44 8 256 82
+37c4c 4 238 25
+37c50 4 1512 82
+37c54 4 238 25
+37c58 1c 1512 82
+37c74 8 238 25
+37c7c c 302 82
+37c88 18 238 25
+37ca0 8 238 25
+37ca8 c 238 25
+37cb4 8 85 79
+37cbc 8 238 25
+37cc4 8 256 82
+37ccc 4 1481 82
+37cd0 4 239 25
+37cd4 4 1481 82
+37cd8 c 1482 82
+37ce4 10 884 80
+37cf4 c 254 121
+37d00 c 75 127
+37d0c 8 886 80
+37d14 10 1382 82
+37d24 24 1471 82
+37d48 10 156 132
+37d58 8 239 25
+37d60 c 302 82
+37d6c 18 239 25
+37d84 8 239 25
+37d8c c 239 25
+37d98 8 85 79
+37da0 8 239 25
+37da8 8 256 82
+37db0 c 240 25
+37dbc 8 231 25
+37dc4 20 1512 82
+37de4 8 243 25
+37dec 4 1512 82
+37df0 8 243 25
+37df8 4 302 82
+37dfc 4 243 25
+37e00 8 302 82
+37e08 18 243 25
+37e20 8 243 25
+37e28 c 243 25
+37e34 8 85 79
+37e3c 8 243 25
+37e44 8 256 82
+37e4c 8 243 25
+37e54 24 244 25
+FUNC 37e78 b58 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::TestBody
+37e78 4 364 25
+37e7c 4 367 25
+37e80 10 364 25
+37e90 4 367 25
+37e94 8 364 25
+37e9c 10 367 25
+37eac 4 364 25
+37eb0 8 370 25
+37eb8 8 364 25
+37ec0 4 367 25
+37ec4 10 370 25
+37ed4 8 370 25
+37edc c 370 25
+37ee8 1c 370 25
+37f04 c 370 25
+37f10 c 302 82
+37f1c 18 370 25
+37f34 8 370 25
+37f3c c 370 25
+37f48 8 85 79
+37f50 8 370 25
+37f58 10 256 82
+37f68 8 372 25
+37f70 4 373 25
+37f74 10 375 25
+37f84 8 377 25
+37f8c 10 378 25
+37f9c 18 379 25
+37fb4 8 379 25
+37fbc 4 131 79
+37fc0 10 333 122
+37fd0 14 385 25
+37fe4 1c 390 25
+38000 c 392 25
+3800c c 392 25
+38018 18 393 25
+38030 8 393 25
+38038 4 131 79
+3803c 10 333 122
+3804c 4 131 79
+38050 c 131 79
+3805c 4 131 79
+38060 10 333 122
+38070 4 393 25
+38074 c 393 25
+38080 4 333 122
+38084 4 150 79
+38088 c 333 122
+38094 c 393 25
+380a0 8 85 79
+380a8 8 393 25
+380b0 c 156 132
+380bc 8 396 25
+380c4 4 401 25
+380c8 4 396 25
+380cc 18 1512 82
+380e4 c 1471 82
+380f0 4 401 25
+380f4 8 402 25
+380fc 8 403 25
+38104 1c 405 25
+38120 4 405 25
+38124 c 405 25
+38130 4 405 25
+38134 4 406 25
+38138 4 1512 82
+3813c 4 406 25
+38140 4 1512 82
+38144 4 405 25
+38148 c 1512 82
+38154 4 406 25
+38158 4 1512 82
+3815c 8 406 25
+38164 c 302 82
+38170 18 406 25
+38188 8 406 25
+38190 c 406 25
+3819c 8 85 79
+381a4 8 406 25
+381ac 10 256 82
+381bc 8 1139 87
+381c4 4 256 82
+381c8 8 407 25
+381d0 4 277 82
+381d4 4 1139 87
+381d8 4 407 25
+381dc 24 407 25
+38200 1c 407 25
+3821c 8 407 25
+38224 c 407 25
+38230 8 85 79
+38238 8 407 25
+38240 c 156 132
+3824c 8 256 82
+38254 10 409 25
+38264 4 1481 82
+38268 4 409 25
+3826c 4 1481 82
+38270 c 1482 82
+3827c c 884 80
+38288 10 259 121
+38298 4 75 127
+3829c 4 259 121
+382a0 c 75 127
+382ac 8 886 80
+382b4 c 884 80
+382c0 10 259 121
+382d0 c 75 127
+382dc 8 886 80
+382e4 20 1471 82
+38304 10 156 132
+38314 c 409 25
+38320 c 302 82
+3832c 18 409 25
+38344 8 409 25
+3834c c 409 25
+38358 8 85 79
+38360 8 409 25
+38368 10 256 82
+38378 8 399 25
+38380 4 412 25
+38384 4 1139 87
+38388 4 412 25
+3838c c 417 25
+38398 c 420 25
+383a4 8 421 25
+383ac 4 277 82
+383b0 4 421 25
+383b4 4 1139 87
+383b8 4 421 25
+383bc 24 421 25
+383e0 1c 421 25
+383fc 8 421 25
+38404 c 421 25
+38410 8 85 79
+38418 8 421 25
+38420 8 156 132
+38428 8 256 82
+38430 4 422 25
+38434 4 192 139
+38438 4 422 25
+3843c 4 1512 82
+38440 4 192 139
+38444 8 1512 82
+3844c 8 192 139
+38454 4 1512 82
+38458 4 422 25
+3845c 10 1512 82
+3846c 8 422 25
+38474 c 302 82
+38480 18 422 25
+38498 8 422 25
+384a0 c 422 25
+384ac 8 85 79
+384b4 8 422 25
+384bc 8 256 82
+384c4 8 423 25
+384cc 4 1139 87
+384d0 4 423 25
+384d4 4 277 82
+384d8 4 423 25
+384dc 24 423 25
+38500 1c 423 25
+3851c 8 423 25
+38524 c 423 25
+38530 8 85 79
+38538 8 423 25
+38540 8 156 132
+38548 4 256 82
+3854c 4 426 25
+38550 4 256 82
+38554 20 427 25
+38574 10 192 139
+38584 4 426 25
+38588 4 427 25
+3858c 4 426 25
+38590 c 427 25
+3859c 4 1139 87
+385a0 4 427 25
+385a4 4 277 82
+385a8 4 427 25
+385ac 18 427 25
+385c4 1c 427 25
+385e0 8 427 25
+385e8 c 427 25
+385f4 8 85 79
+385fc 8 427 25
+38604 8 156 132
+3860c 8 256 82
+38614 14 430 25
+38628 4 1139 87
+3862c 4 430 25
+38630 4 277 82
+38634 4 430 25
+38638 1c 430 25
+38654 1c 430 25
+38670 8 430 25
+38678 c 431 25
+38684 8 85 79
+3868c 8 430 25
+38694 8 156 132
+3869c c 256 82
+386a8 1c 452 25
+386c4 4 203 139
+386c8 20 1512 82
+386e8 8 453 25
+386f0 c 302 82
+386fc 18 453 25
+38714 8 453 25
+3871c c 453 25
+38728 8 85 79
+38730 8 453 25
+38738 4 256 82
+3873c 4 426 25
+38740 8 256 82
+38748 4 455 25
+3874c 4 1139 87
+38750 4 455 25
+38754 4 277 82
+38758 4 455 25
+3875c 24 455 25
+38780 1c 455 25
+3879c 8 455 25
+387a4 c 455 25
+387b0 8 85 79
+387b8 8 455 25
+387c0 8 156 132
+387c8 8 256 82
+387d0 c 456 25
+387dc 8 460 25
+387e4 1c 460 25
+38800 4 460 25
+38804 10 460 25
+38814 4 256 82
+38818 4 1139 87
+3881c 4 256 82
+38820 14 461 25
+38834 4 277 82
+38838 4 1139 87
+3883c 4 461 25
+38840 24 461 25
+38864 1c 461 25
+38880 8 461 25
+38888 c 461 25
+38894 8 85 79
+3889c 8 461 25
+388a4 8 156 132
+388ac 8 256 82
+388b4 8 460 25
+388bc 4 460 25
+388c0 10 460 25
+388d0 4 460 25
+388d4 8 460 25
+388dc 8 460 25
+388e4 c 302 82
+388f0 14 460 25
+38904 4 462 25
+38908 8 462 25
+38910 c 462 25
+3891c 8 85 79
+38924 8 462 25
+3892c 1c 256 82
+38948 c 462 25
+38954 c 1512 82
+38960 8 462 25
+38968 14 1512 82
+3897c 8 462 25
+38984 c 302 82
+38990 18 462 25
+389a8 28 463 25
+FUNC 389d0 24 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper
+389d0 c 42 24
+389dc 8 42 24
+389e4 4 42 24
+389e8 8 42 24
+389f0 4 42 24
+FUNC 389f4 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::~TestFactoryImpl
+389f4 4 484 85
+FUNC 389f8 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::~TestFactoryImpl
+389f8 4 484 85
+FUNC 389fc 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::~TestFactoryImpl
+389fc 4 484 85
+FUNC 38a00 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::~TestFactoryImpl
+38a00 4 484 85
+FUNC 38a04 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::~TestFactoryImpl
+38a04 4 484 85
+FUNC 38a08 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::~TestFactoryImpl
+38a08 4 484 85
+FUNC 38a0c 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::~TestFactoryImpl
+38a0c 4 484 85
+FUNC 38a10 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::~TestFactoryImpl
+38a10 4 484 85
+FUNC 38a14 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::CreateTest
+38a14 10 486 85
+38a24 8 486 85
+38a2c 8 67 27
+38a34 4 486 85
+38a38 c 67 27
+38a44 c 486 85
+FUNC 38a50 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::CreateTest
+38a50 10 486 85
+38a60 8 486 85
+38a68 8 96 27
+38a70 4 486 85
+38a74 c 96 27
+38a80 c 486 85
+FUNC 38a8c 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::CreateTest
+38a8c 10 486 85
+38a9c 8 486 85
+38aa4 8 128 27
+38aac 4 486 85
+38ab0 c 128 27
+38abc c 486 85
+FUNC 38ac8 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::CreateTest
+38ac8 10 486 85
+38ad8 8 486 85
+38ae0 8 236 27
+38ae8 4 486 85
+38aec c 236 27
+38af8 c 486 85
+FUNC 38b04 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::CreateTest
+38b04 10 486 85
+38b14 8 486 85
+38b1c 8 338 27
+38b24 4 486 85
+38b28 c 338 27
+38b34 c 486 85
+FUNC 38b40 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::CreateTest
+38b40 10 486 85
+38b50 8 486 85
+38b58 8 432 27
+38b60 4 486 85
+38b64 c 432 27
+38b70 c 486 85
+FUNC 38b7c 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::CreateTest
+38b7c 10 486 85
+38b8c 8 486 85
+38b94 8 504 27
+38b9c 4 486 85
+38ba0 c 504 27
+38bac c 486 85
+FUNC 38bb8 3c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::CreateTest
+38bb8 10 486 85
+38bc8 8 486 85
+38bd0 8 583 27
+38bd8 4 486 85
+38bdc c 583 27
+38be8 c 486 85
+FUNC 38bf4 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::~TestFactoryImpl
+38bf4 4 484 85
+FUNC 38bf8 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::~TestFactoryImpl
+38bf8 4 484 85
+FUNC 38bfc 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::~TestFactoryImpl
+38bfc 4 484 85
+FUNC 38c00 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::~TestFactoryImpl
+38c00 4 484 85
+FUNC 38c04 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::~TestFactoryImpl
+38c04 4 484 85
+FUNC 38c08 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::~TestFactoryImpl
+38c08 4 484 85
+FUNC 38c0c 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::~TestFactoryImpl
+38c0c 4 484 85
+FUNC 38c10 4 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::~TestFactoryImpl
+38c10 4 484 85
+FUNC 38c14 14 0 MinidumpWriterTest_SetupWithPath_Test::~MinidumpWriterTest_SetupWithPath_Test
+38c14 14 67 27
+FUNC 38c28 24 0 MinidumpWriterTest_SetupWithPath_Test::~MinidumpWriterTest_SetupWithPath_Test
+38c28 c 67 27
+38c34 8 67 27
+38c3c 4 67 27
+38c40 8 67 27
+38c48 4 67 27
+FUNC 38c4c 14 0 MinidumpWriterTest_SetupWithFD_Test::~MinidumpWriterTest_SetupWithFD_Test
+38c4c 14 96 27
+FUNC 38c60 24 0 MinidumpWriterTest_SetupWithFD_Test::~MinidumpWriterTest_SetupWithFD_Test
+38c60 c 96 27
+38c6c 8 96 27
+38c74 4 96 27
+38c78 8 96 27
+38c80 4 96 27
+FUNC 38c84 14 0 MinidumpWriterTest_MappingInfo_Test::~MinidumpWriterTest_MappingInfo_Test
+38c84 14 128 27
+FUNC 38c98 24 0 MinidumpWriterTest_MappingInfo_Test::~MinidumpWriterTest_MappingInfo_Test
+38c98 c 128 27
+38ca4 8 128 27
+38cac 4 128 27
+38cb0 8 128 27
+38cb8 4 128 27
+FUNC 38cbc 14 0 MinidumpWriterTest_MappingInfoContained_Test::~MinidumpWriterTest_MappingInfoContained_Test
+38cbc 14 236 27
+FUNC 38cd0 24 0 MinidumpWriterTest_MappingInfoContained_Test::~MinidumpWriterTest_MappingInfoContained_Test
+38cd0 c 236 27
+38cdc 8 236 27
+38ce4 4 236 27
+38ce8 8 236 27
+38cf0 4 236 27
+FUNC 38cf4 14 0 MinidumpWriterTest_DeletedBinary_Test::~MinidumpWriterTest_DeletedBinary_Test
+38cf4 14 338 27
+FUNC 38d08 24 0 MinidumpWriterTest_DeletedBinary_Test::~MinidumpWriterTest_DeletedBinary_Test
+38d08 c 338 27
+38d14 8 338 27
+38d1c 4 338 27
+38d20 8 338 27
+38d28 4 338 27
+FUNC 38d2c 14 0 MinidumpWriterTest_AdditionalMemory_Test::~MinidumpWriterTest_AdditionalMemory_Test
+38d2c 14 432 27
+FUNC 38d40 24 0 MinidumpWriterTest_AdditionalMemory_Test::~MinidumpWriterTest_AdditionalMemory_Test
+38d40 c 432 27
+38d4c 8 432 27
+38d54 4 432 27
+38d58 8 432 27
+38d60 4 432 27
+FUNC 38d64 14 0 MinidumpWriterTest_InvalidStackPointer_Test::~MinidumpWriterTest_InvalidStackPointer_Test
+38d64 14 504 27
+FUNC 38d78 24 0 MinidumpWriterTest_InvalidStackPointer_Test::~MinidumpWriterTest_InvalidStackPointer_Test
+38d78 c 504 27
+38d84 8 504 27
+38d8c 4 504 27
+38d90 8 504 27
+38d98 4 504 27
+FUNC 38d9c 14 0 MinidumpWriterTest_MinidumpSizeLimit_Test::~MinidumpWriterTest_MinidumpSizeLimit_Test
+38d9c 14 583 27
+FUNC 38db0 24 0 MinidumpWriterTest_MinidumpSizeLimit_Test::~MinidumpWriterTest_MinidumpSizeLimit_Test
+38db0 c 583 27
+38dbc 8 583 27
+38dc4 4 583 27
+38dc8 8 583 27
+38dd0 4 583 27
+FUNC 38dd4 fc 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find
+38dd4 4 438 130
+38dd8 8 438 130
+38de0 4 400 131
+38de4 8 440 130
+38dec 8 441 130
+38df4 4 446 130
+38df8 8 162 99
+38e00 8 164 99
+38e08 c 165 99
+38e14 c 168 99
+38e20 8 166 99
+38e28 c 171 99
+38e34 8 169 99
+38e3c c 174 99
+38e48 c 172 99
+38e54 8 164 99
+38e5c 20 178 99
+38e7c 10 180 99
+38e8c 4 181 99
+38e90 10 183 99
+38ea0 4 184 99
+38ea4 10 186 99
+38eb4 8 165 99
+38ebc 4 190 99
+38ec0 8 447 130
+38ec8 4 447 130
+38ecc 4 448 130
+FUNC 38ed0 5c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase
+38ed0 c 788 131
+38edc 8 788 131
+38ee4 8 400 131
+38eec 8 789 131
+38ef4 c 604 130
+38f00 10 791 131
+38f10 c 791 131
+38f1c 10 793 131
+FUNC 38f2c 5c 0 std::priv::_Impl_list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::push_back
+38f2c 4 509 116
+38f30 4 306 101
+38f34 8 509 116
+38f3c 4 509 116
+38f40 4 306 101
+38f44 4 509 116
+38f48 4 306 101
+38f4c 8 307 101
+38f54 8 119 103
+38f5c c 119 103
+38f68 4 427 116
+38f6c 4 429 116
+38f70 4 428 116
+38f74 4 430 116
+38f78 4 431 116
+38f7c c 509 116
+FUNC 38f88 34 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+38f88 c 529 131
+38f94 4 529 131
+38f98 c 229 140
+38fa4 8 530 131
+38fac 4 530 131
+38fb0 8 530 131
+38fb8 4 530 131
+FUNC 38fbc 40 0 std::priv::_List_base<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::clear
+38fbc c 66 115
+38fc8 4 66 115
+38fcc 4 67 115
+38fd0 8 68 115
+38fd8 4 74 115
+38fdc c 135 119
+38fe8 4 78 115
+38fec 4 79 115
+38ff0 c 80 115
+FUNC 38ffc 44 0 std::priv::_List_base<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> >::clear
+38ffc c 66 115
+39008 4 66 115
+3900c 4 67 115
+39010 8 68 115
+39018 4 161 101
+3901c 4 74 115
+39020 c 161 101
+3902c 4 78 115
+39030 4 79 115
+39034 c 80 115
+FUNC 39040 354 0 MinidumpWriterTest_SetupWithPath_Test::TestBody
+39040 4 67 27
+39044 4 69 27
+39048 10 67 27
+39058 4 69 27
+3905c 4 67 27
+39060 8 69 27
+39068 c 67 27
+39074 c 69 27
+39080 4 69 27
+39084 c 69 27
+39090 20 69 27
+390b0 8 69 27
+390b8 c 302 82
+390c4 18 69 27
+390dc 8 69 27
+390e4 c 69 27
+390f0 8 85 79
+390f8 8 69 27
+39100 14 256 82
+39114 8 71 27
+3911c 4 72 27
+39120 8 73 27
+39128 18 75 27
+39140 4 75 27
+39144 c 75 27
+39150 c 76 27
+3915c 8 77 27
+39164 4 79 27
+39168 4 82 27
+3916c 4 84 27
+39170 c 85 27
+3917c 8 79 27
+39184 10 82 27
+39194 8 84 27
+3919c 14 85 27
+391b0 4 87 27
+391b4 8 88 27
+391bc 4 277 82
+391c0 8 88 27
+391c8 8 1139 87
+391d0 4 88 27
+391d4 4 277 82
+391d8 4 88 27
+391dc 4 1139 87
+391e0 4 88 27
+391e4 24 88 27
+39208 1c 88 27
+39224 8 88 27
+3922c c 88 27
+39238 8 85 79
+39240 8 88 27
+39248 c 156 132
+39254 4 256 82
+39258 8 1552 82
+39260 4 256 82
+39264 4 90 27
+39268 c 90 27
+39274 4 90 27
+39278 1c 1552 82
+39294 8 90 27
+3929c c 302 82
+392a8 18 90 27
+392c0 8 256 82
+392c8 28 91 27
+392f0 c 302 82
+392fc 18 91 27
+39314 8 91 27
+3931c c 91 27
+39328 8 85 79
+39330 8 91 27
+39338 8 256 82
+39340 10 156 132
+39350 8 256 82
+39358 8 93 27
+39360 8 156 132
+39368 8 93 27
+39370 24 94 27
+FUNC 39394 360 0 MinidumpWriterTest_SetupWithFD_Test::TestBody
+39394 4 96 27
+39398 4 98 27
+3939c 10 96 27
+393ac 4 98 27
+393b0 4 96 27
+393b4 8 98 27
+393bc c 96 27
+393c8 c 98 27
+393d4 4 98 27
+393d8 c 98 27
+393e4 20 98 27
+39404 8 98 27
+3940c c 302 82
+39418 18 98 27
+39430 8 98 27
+39438 c 98 27
+39444 8 85 79
+3944c 8 98 27
+39454 14 256 82
+39468 8 100 27
+39470 4 101 27
+39474 8 102 27
+3947c 18 104 27
+39494 4 104 27
+39498 c 104 27
+394a4 c 105 27
+394b0 8 106 27
+394b8 4 108 27
+394bc 4 111 27
+394c0 4 113 27
+394c4 c 114 27
+394d0 8 108 27
+394d8 10 111 27
+394e8 8 113 27
+394f0 14 114 27
+39504 10 115 27
+39514 4 117 27
+39518 4 118 27
+3951c 4 277 82
+39520 8 118 27
+39528 8 1139 87
+39530 4 118 27
+39534 4 277 82
+39538 4 118 27
+3953c 4 1139 87
+39540 4 118 27
+39544 24 118 27
+39568 1c 118 27
+39584 8 118 27
+3958c c 118 27
+39598 8 85 79
+395a0 8 118 27
+395a8 c 156 132
+395b4 4 256 82
+395b8 8 1552 82
+395c0 4 256 82
+395c4 4 120 27
+395c8 c 120 27
+395d4 4 120 27
+395d8 1c 1552 82
+395f4 8 120 27
+395fc c 302 82
+39608 18 120 27
+39620 8 256 82
+39628 28 121 27
+39650 c 302 82
+3965c 18 121 27
+39674 8 121 27
+3967c c 121 27
+39688 8 85 79
+39690 8 121 27
+39698 8 256 82
+396a0 10 156 132
+396b0 8 256 82
+396b8 8 123 27
+396c0 8 156 132
+396c8 8 123 27
+396d0 24 124 27
+FUNC 396f4 f0 0 testing::internal::CmpHelperEQ<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+396f4 18 1476 82
+3970c c 1476 82
+39718 8 400 131
+39720 8 315 134
+39728 8 226 140
+39730 4 315 134
+39734 c 884 80
+39740 4 711 80
+39744 4 884 80
+39748 10 711 80
+39758 c 469 80
+39764 8 156 132
+3976c c 75 127
+39778 8 886 80
+39780 c 1382 82
+3978c 24 1471 82
+397b0 14 156 132
+397c4 8 1482 82
+397cc 18 1488 82
+FUNC 397e4 10b4 0 MinidumpWriterTest_MappingInfo_Test::TestBody
+397e4 14 128 27
+397f8 4 130 27
+397fc 4 128 27
+39800 8 130 27
+39808 4 128 27
+3980c 4 130 27
+39810 4 130 27
+39814 8 128 27
+3981c 10 130 27
+3982c 1c 130 27
+39848 4 130 27
+3984c 4 130 27
+39850 8 130 27
+39858 c 302 82
+39864 18 130 27
+3987c 8 130 27
+39884 c 130 27
+39890 8 85 79
+39898 8 130 27
+398a0 10 256 82
+398b0 4 143 27
+398b4 4 144 27
+398b8 4 256 82
+398bc c 134 27
+398c8 4 143 27
+398cc 4 134 27
+398d0 74 139 27
+39944 4 143 27
+39948 8 139 27
+39950 4 143 27
+39954 10 144 27
+39964 10 962 131
+39974 4 147 27
+39978 4 962 131
+3997c 4 147 27
+39980 14 148 27
+39994 10 452 131
+399a4 20 161 27
+399c4 4 277 82
+399c8 8 162 27
+399d0 4 277 82
+399d4 4 1139 87
+399d8 8 277 82
+399e0 4 1139 87
+399e4 4 163 27
+399e8 20 163 27
+39a08 4 163 27
+39a0c 4 163 27
+39a10 4 163 27
+39a14 1c 163 27
+39a30 8 163 27
+39a38 c 163 27
+39a44 8 85 79
+39a4c 8 163 27
+39a54 8 156 132
+39a5c 10 256 82
+39a6c 8 165 27
+39a74 4 166 27
+39a78 4 167 27
+39a7c 4 169 27
+39a80 8 167 27
+39a88 18 169 27
+39aa0 4 169 27
+39aa4 c 169 27
+39ab0 c 170 27
+39abc 8 171 27
+39ac4 4 173 27
+39ac8 4 176 27
+39acc 8 177 27
+39ad4 4 1552 82
+39ad8 8 173 27
+39ae0 10 176 27
+39af0 10 177 27
+39b00 18 1552 82
+39b18 4 177 27
+39b1c 4 1552 82
+39b20 8 177 27
+39b28 c 302 82
+39b34 18 177 27
+39b4c 8 177 27
+39b54 c 177 27
+39b60 8 85 79
+39b68 8 177 27
+39b70 10 256 82
+39b80 4 180 27
+39b84 4 181 27
+39b88 4 185 27
+39b8c 4 256 82
+39b90 4 178 27
+39b94 8 180 27
+39b9c 10 181 27
+39bac 4 211 116
+39bb0 4 181 27
+39bb4 4 187 27
+39bb8 4 185 27
+39bbc 4 188 27
+39bc0 4 185 27
+39bc4 4 186 27
+39bc8 4 188 27
+39bcc 8 186 27
+39bd4 8 188 27
+39bdc 8 211 116
+39be4 4 193 27
+39be8 4 212 116
+39bec 8 193 27
+39bf4 4 212 116
+39bf8 8 211 116
+39c00 4 212 116
+39c04 4 193 27
+39c08 10 194 27
+39c18 c 229 141
+39c24 8 196 27
+39c2c 4 277 82
+39c30 10 196 27
+39c40 4 1139 87
+39c44 4 196 27
+39c48 4 277 82
+39c4c 4 196 27
+39c50 4 1139 87
+39c54 4 196 27
+39c58 20 196 27
+39c78 4 196 27
+39c7c 4 196 27
+39c80 1c 196 27
+39c9c 8 196 27
+39ca4 c 196 27
+39cb0 8 85 79
+39cb8 8 196 27
+39cc0 8 156 132
+39cc8 10 256 82
+39cd8 4 1139 87
+39cdc 4 256 82
+39ce0 c 202 27
+39cec 8 203 27
+39cf4 4 277 82
+39cf8 4 203 27
+39cfc 4 1139 87
+39d00 4 203 27
+39d04 20 203 27
+39d24 4 203 27
+39d28 4 203 27
+39d2c 18 203 27
+39d44 8 256 82
+39d4c 8 205 27
+39d54 4 277 82
+39d58 4 205 27
+39d5c 4 1139 87
+39d60 8 277 82
+39d68 4 206 27
+39d6c 20 206 27
+39d8c 4 206 27
+39d90 4 206 27
+39d94 18 206 27
+39dac 8 256 82
+39db4 14 208 27
+39dc8 4 277 82
+39dcc 4 208 27
+39dd0 4 1139 87
+39dd4 8 277 82
+39ddc 4 209 27
+39de0 20 209 27
+39e00 4 209 27
+39e04 4 209 27
+39e08 18 209 27
+39e20 4 209 27
+39e24 4 209 27
+39e28 8 209 27
+39e30 c 209 27
+39e3c 8 85 79
+39e44 8 209 27
+39e4c 8 156 132
+39e54 14 256 82
+39e68 14 211 27
+39e7c 20 1512 82
+39e9c 8 211 27
+39ea4 4 302 82
+39ea8 4 211 27
+39eac 8 302 82
+39eb4 18 211 27
+39ecc 8 211 27
+39ed4 c 211 27
+39ee0 8 85 79
+39ee8 8 211 27
+39ef0 4 256 82
+39ef4 4 212 27
+39ef8 c 256 82
+39f04 18 212 27
+39f1c 10 1481 82
+39f2c c 1482 82
+39f38 18 1382 82
+39f50 24 1471 82
+39f74 14 156 132
+39f88 8 212 27
+39f90 4 302 82
+39f94 8 212 27
+39f9c 4 302 82
+39fa0 10 212 27
+39fb0 4 212 27
+39fb4 4 212 27
+39fb8 8 212 27
+39fc0 c 212 27
+39fcc 8 85 79
+39fd4 8 212 27
+39fdc 4 256 82
+39fe0 4 213 27
+39fe4 4 256 82
+39fe8 4 1512 82
+39fec 4 256 82
+39ff0 14 213 27
+3a004 c 1512 82
+3a010 8 156 132
+3a018 8 213 27
+3a020 c 302 82
+3a02c 18 213 27
+3a044 8 213 27
+3a04c c 213 27
+3a058 8 85 79
+3a060 8 213 27
+3a068 4 256 82
+3a06c 4 214 27
+3a070 8 256 82
+3a078 14 214 27
+3a08c 20 1512 82
+3a0ac 8 156 132
+3a0b4 8 214 27
+3a0bc 4 302 82
+3a0c0 4 214 27
+3a0c4 8 302 82
+3a0cc 18 214 27
+3a0e4 8 214 27
+3a0ec c 214 27
+3a0f8 8 85 79
+3a100 8 214 27
+3a108 c 256 82
+3a114 10 218 27
+3a124 4 1139 87
+3a128 4 218 27
+3a12c 4 277 82
+3a130 4 218 27
+3a134 24 218 27
+3a158 4 218 27
+3a15c 4 218 27
+3a160 4 218 27
+3a164 1c 218 27
+3a180 8 218 27
+3a188 c 218 27
+3a194 8 85 79
+3a19c 8 218 27
+3a1a4 8 156 132
+3a1ac c 256 82
+3a1b8 10 219 27
+3a1c8 4 1139 87
+3a1cc 4 219 27
+3a1d0 4 277 82
+3a1d4 4 219 27
+3a1d8 24 219 27
+3a1fc 4 219 27
+3a200 4 219 27
+3a204 4 219 27
+3a208 1c 219 27
+3a224 8 219 27
+3a22c c 219 27
+3a238 8 85 79
+3a240 8 219 27
+3a248 8 156 132
+3a250 c 256 82
+3a25c 10 220 27
+3a26c 4 1139 87
+3a270 4 220 27
+3a274 4 277 82
+3a278 4 220 27
+3a27c 24 220 27
+3a2a0 4 220 27
+3a2a4 4 220 27
+3a2a8 4 220 27
+3a2ac 1c 220 27
+3a2c8 8 220 27
+3a2d0 c 220 27
+3a2dc 8 85 79
+3a2e4 8 220 27
+3a2ec 8 156 132
+3a2f4 c 256 82
+3a300 10 221 27
+3a310 4 1139 87
+3a314 4 221 27
+3a318 4 277 82
+3a31c 4 221 27
+3a320 24 221 27
+3a344 4 221 27
+3a348 4 221 27
+3a34c 4 221 27
+3a350 1c 221 27
+3a36c 8 221 27
+3a374 c 221 27
+3a380 8 85 79
+3a388 8 221 27
+3a390 8 156 132
+3a398 c 256 82
+3a3a4 14 222 27
+3a3b8 4 1139 87
+3a3bc 4 222 27
+3a3c0 4 277 82
+3a3c4 4 222 27
+3a3c8 24 222 27
+3a3ec 4 222 27
+3a3f0 4 222 27
+3a3f4 4 222 27
+3a3f8 1c 222 27
+3a414 8 222 27
+3a41c c 222 27
+3a428 8 85 79
+3a430 8 222 27
+3a438 8 156 132
+3a440 c 256 82
+3a44c 14 223 27
+3a460 4 1139 87
+3a464 4 223 27
+3a468 4 277 82
+3a46c 4 223 27
+3a470 24 223 27
+3a494 4 223 27
+3a498 4 223 27
+3a49c 4 223 27
+3a4a0 1c 223 27
+3a4bc 8 223 27
+3a4c4 c 223 27
+3a4d0 8 85 79
+3a4d8 8 223 27
+3a4e0 8 156 132
+3a4e8 c 256 82
+3a4f4 14 224 27
+3a508 4 1139 87
+3a50c 4 224 27
+3a510 4 277 82
+3a514 4 224 27
+3a518 24 224 27
+3a53c 4 224 27
+3a540 4 224 27
+3a544 4 224 27
+3a548 1c 224 27
+3a564 8 224 27
+3a56c c 224 27
+3a578 8 85 79
+3a580 8 224 27
+3a588 8 156 132
+3a590 c 256 82
+3a59c 14 225 27
+3a5b0 4 1139 87
+3a5b4 4 225 27
+3a5b8 4 277 82
+3a5bc 4 225 27
+3a5c0 24 225 27
+3a5e4 4 225 27
+3a5e8 4 225 27
+3a5ec 4 225 27
+3a5f0 1c 225 27
+3a60c 8 225 27
+3a614 c 225 27
+3a620 8 85 79
+3a628 8 225 27
+3a630 8 156 132
+3a638 c 256 82
+3a644 14 226 27
+3a658 4 1139 87
+3a65c 4 226 27
+3a660 4 277 82
+3a664 4 226 27
+3a668 24 226 27
+3a68c 4 226 27
+3a690 4 226 27
+3a694 4 226 27
+3a698 1c 226 27
+3a6b4 8 226 27
+3a6bc c 226 27
+3a6c8 8 85 79
+3a6d0 8 226 27
+3a6d8 8 156 132
+3a6e0 c 256 82
+3a6ec 14 227 27
+3a700 4 1139 87
+3a704 4 227 27
+3a708 4 277 82
+3a70c 4 227 27
+3a710 24 227 27
+3a734 4 227 27
+3a738 4 227 27
+3a73c 4 227 27
+3a740 1c 227 27
+3a75c 8 227 27
+3a764 c 227 27
+3a770 8 85 79
+3a778 8 227 27
+3a780 8 156 132
+3a788 c 256 82
+3a794 14 228 27
+3a7a8 4 1139 87
+3a7ac 4 228 27
+3a7b0 4 277 82
+3a7b4 4 228 27
+3a7b8 24 228 27
+3a7dc 4 228 27
+3a7e0 4 228 27
+3a7e4 4 228 27
+3a7e8 1c 228 27
+3a804 8 228 27
+3a80c c 228 27
+3a818 8 85 79
+3a820 8 228 27
+3a828 8 156 132
+3a830 8 256 82
+3a838 14 230 27
+3a84c 10 205 116
+3a85c 18 156 132
+3a874 24 231 27
+FUNC 3a898 aac 0 MinidumpWriterTest_MappingInfoContained_Test::TestBody
+3a898 14 236 27
+3a8ac c 238 27
+3a8b8 10 236 27
+3a8c8 10 238 27
+3a8d8 c 238 27
+3a8e4 4 238 27
+3a8e8 14 238 27
+3a8fc 8 238 27
+3a904 4 238 27
+3a908 8 238 27
+3a910 c 302 82
+3a91c 18 238 27
+3a934 8 238 27
+3a93c c 238 27
+3a948 8 85 79
+3a950 8 238 27
+3a958 10 256 82
+3a968 4 251 27
+3a96c 4 252 27
+3a970 4 256 82
+3a974 c 242 27
+3a980 4 247 27
+3a984 4 251 27
+3a988 4 242 27
+3a98c 6c 247 27
+3a9f8 4 251 27
+3a9fc 4 247 27
+3aa00 4 251 27
+3aa04 8 247 27
+3aa0c 4 251 27
+3aa10 10 252 27
+3aa20 14 962 131
+3aa34 4 255 27
+3aa38 4 256 27
+3aa3c 4 255 27
+3aa40 10 256 27
+3aa50 4 452 131
+3aa54 4 263 27
+3aa58 4 452 131
+3aa5c 4 264 27
+3aa60 8 265 27
+3aa68 4 452 131
+3aa6c 8 263 27
+3aa74 10 264 27
+3aa84 4 266 27
+3aa88 4 264 27
+3aa8c 10 265 27
+3aa9c c 266 27
+3aaa8 4 265 27
+3aaac 24 266 27
+3aad0 c 302 82
+3aadc 18 266 27
+3aaf4 8 266 27
+3aafc c 266 27
+3ab08 8 85 79
+3ab10 8 266 27
+3ab18 10 256 82
+3ab28 4 269 27
+3ab2c 4 256 82
+3ab30 8 267 27
+3ab38 c 269 27
+3ab44 c 270 27
+3ab50 c 271 27
+3ab5c 4 271 27
+3ab60 4 271 27
+3ab64 4 271 27
+3ab68 c 1481 82
+3ab74 c 1482 82
+3ab80 18 1382 82
+3ab98 24 1471 82
+3abbc 18 156 132
+3abd4 c 271 27
+3abe0 4 302 82
+3abe4 4 271 27
+3abe8 8 302 82
+3abf0 18 271 27
+3ac08 8 271 27
+3ac10 c 271 27
+3ac1c 8 85 79
+3ac24 c 271 27
+3ac30 4 256 82
+3ac34 4 272 27
+3ac38 4 1139 87
+3ac3c 4 256 82
+3ac40 10 272 27
+3ac50 20 280 27
+3ac70 4 277 82
+3ac74 4 280 27
+3ac78 8 277 82
+3ac80 4 1139 87
+3ac84 4 282 27
+3ac88 24 282 27
+3acac 4 282 27
+3acb0 4 282 27
+3acb4 1c 282 27
+3acd0 8 282 27
+3acd8 c 282 27
+3ace4 8 85 79
+3acec 8 282 27
+3acf4 8 156 132
+3acfc 14 256 82
+3ad10 8 283 27
+3ad18 8 285 27
+3ad20 4 286 27
+3ad24 4 287 27
+3ad28 4 289 27
+3ad2c 8 287 27
+3ad34 18 289 27
+3ad4c 4 289 27
+3ad50 c 289 27
+3ad5c c 290 27
+3ad68 8 291 27
+3ad70 4 293 27
+3ad74 4 296 27
+3ad78 4 299 27
+3ad7c 4 297 27
+3ad80 4 304 27
+3ad84 4 211 116
+3ad88 8 293 27
+3ad90 10 296 27
+3ada0 4 297 27
+3ada4 14 299 27
+3adb8 4 306 27
+3adbc 4 304 27
+3adc0 8 307 27
+3adc8 c 304 27
+3add4 4 307 27
+3add8 c 305 27
+3ade4 4 307 27
+3ade8 8 211 116
+3adf0 4 312 27
+3adf4 4 212 116
+3adf8 c 312 27
+3ae04 4 211 116
+3ae08 8 212 116
+3ae10 8 312 27
+3ae18 10 313 27
+3ae28 c 229 141
+3ae34 8 315 27
+3ae3c 4 277 82
+3ae40 10 315 27
+3ae50 c 1139 87
+3ae5c 4 315 27
+3ae60 4 277 82
+3ae64 4 315 27
+3ae68 4 1139 87
+3ae6c 4 315 27
+3ae70 20 315 27
+3ae90 4 315 27
+3ae94 4 315 27
+3ae98 1c 315 27
+3aeb4 8 315 27
+3aebc c 315 27
+3aec8 8 85 79
+3aed0 8 315 27
+3aed8 8 156 132
+3aee0 10 256 82
+3aef0 4 1139 87
+3aef4 4 256 82
+3aef8 c 321 27
+3af04 8 322 27
+3af0c 4 277 82
+3af10 4 322 27
+3af14 4 1139 87
+3af18 4 322 27
+3af1c 20 322 27
+3af3c 4 322 27
+3af40 4 322 27
+3af44 18 322 27
+3af5c 8 256 82
+3af64 8 324 27
+3af6c 4 277 82
+3af70 4 324 27
+3af74 4 1139 87
+3af78 8 277 82
+3af80 4 325 27
+3af84 20 325 27
+3afa4 4 325 27
+3afa8 4 325 27
+3afac 18 325 27
+3afc4 8 256 82
+3afcc 14 327 27
+3afe0 4 277 82
+3afe4 4 327 27
+3afe8 4 1139 87
+3afec 8 277 82
+3aff4 4 328 27
+3aff8 20 328 27
+3b018 4 328 27
+3b01c 4 328 27
+3b020 18 328 27
+3b038 4 328 27
+3b03c 4 328 27
+3b040 8 328 27
+3b048 c 328 27
+3b054 8 85 79
+3b05c 8 328 27
+3b064 8 156 132
+3b06c 14 256 82
+3b080 14 330 27
+3b094 20 1512 82
+3b0b4 8 330 27
+3b0bc 4 302 82
+3b0c0 4 330 27
+3b0c4 8 302 82
+3b0cc 18 330 27
+3b0e4 8 330 27
+3b0ec c 330 27
+3b0f8 8 85 79
+3b100 8 330 27
+3b108 4 256 82
+3b10c 4 331 27
+3b110 8 256 82
+3b118 14 331 27
+3b12c 20 1512 82
+3b14c 8 331 27
+3b154 4 302 82
+3b158 4 331 27
+3b15c 8 302 82
+3b164 18 331 27
+3b17c 8 331 27
+3b184 c 331 27
+3b190 8 85 79
+3b198 8 331 27
+3b1a0 4 256 82
+3b1a4 4 1512 82
+3b1a8 8 256 82
+3b1b0 14 332 27
+3b1c4 c 1512 82
+3b1d0 8 156 132
+3b1d8 8 332 27
+3b1e0 4 302 82
+3b1e4 4 332 27
+3b1e8 8 302 82
+3b1f0 18 332 27
+3b208 8 332 27
+3b210 c 332 27
+3b21c 8 85 79
+3b224 8 332 27
+3b22c 4 256 82
+3b230 4 333 27
+3b234 8 256 82
+3b23c 14 333 27
+3b250 20 1512 82
+3b270 8 156 132
+3b278 8 333 27
+3b280 4 302 82
+3b284 4 333 27
+3b288 8 302 82
+3b290 18 333 27
+3b2a8 8 333 27
+3b2b0 c 333 27
+3b2bc 8 85 79
+3b2c4 8 333 27
+3b2cc 8 256 82
+3b2d4 14 335 27
+3b2e8 10 205 116
+3b2f8 8 156 132
+3b300 8 203 57
+3b308 18 156 132
+3b320 24 336 27
+FUNC 3b344 b84 0 MinidumpWriterTest_DeletedBinary_Test::TestBody
+3b344 14 338 27
+3b358 8 339 27
+3b360 4 338 27
+3b364 4 339 27
+3b368 8 338 27
+3b370 10 339 27
+3b380 8 338 27
+3b388 4 340 27
+3b38c 4 339 27
+3b390 c 340 27
+3b39c 10 341 27
+3b3ac 20 342 27
+3b3cc 8 342 27
+3b3d4 4 131 79
+3b3d8 10 333 122
+3b3e8 c 342 27
+3b3f4 8 85 79
+3b3fc 8 342 27
+3b404 4 342 27
+3b408 4 347 27
+3b40c 4 348 27
+3b410 4 347 27
+3b414 4 1139 87
+3b418 4 347 27
+3b41c 18 348 27
+3b434 c 349 27
+3b440 4 277 82
+3b444 4 349 27
+3b448 4 1139 87
+3b44c 4 349 27
+3b450 20 349 27
+3b470 4 349 27
+3b474 4 349 27
+3b478 1c 349 27
+3b494 8 350 27
+3b49c 4 131 79
+3b4a0 10 333 122
+3b4b0 4 131 79
+3b4b4 c 131 79
+3b4c0 4 131 79
+3b4c4 10 333 122
+3b4d4 4 131 79
+3b4d8 c 131 79
+3b4e4 c 350 27
+3b4f0 8 85 79
+3b4f8 8 349 27
+3b500 8 156 132
+3b508 c 256 82
+3b514 4 1552 82
+3b518 4 351 27
+3b51c 4 256 82
+3b520 4 351 27
+3b524 c 351 27
+3b530 4 351 27
+3b534 1c 1552 82
+3b550 8 351 27
+3b558 c 302 82
+3b564 18 351 27
+3b57c 8 351 27
+3b584 c 351 27
+3b590 8 85 79
+3b598 8 351 27
+3b5a0 10 256 82
+3b5b0 4 354 27
+3b5b4 4 256 82
+3b5b8 14 354 27
+3b5cc 20 354 27
+3b5ec 8 354 27
+3b5f4 c 302 82
+3b600 18 354 27
+3b618 8 256 82
+3b620 8 356 27
+3b628 4 357 27
+3b62c 8 359 27
+3b634 14 363 27
+3b648 1c 368 27
+3b664 c 370 27
+3b670 4 373 27
+3b674 4 374 27
+3b678 4 377 27
+3b67c 4 373 27
+3b680 4 374 27
+3b684 8 375 27
+3b68c 1c 377 27
+3b6a8 4 377 27
+3b6ac 10 377 27
+3b6bc 8 256 82
+3b6c4 8 392 27
+3b6cc 4 256 82
+3b6d0 c 383 27
+3b6dc 8 387 27
+3b6e4 10 390 27
+3b6f4 14 392 27
+3b708 4 394 27
+3b70c 18 395 27
+3b724 4 1139 87
+3b728 4 395 27
+3b72c 4 277 82
+3b730 4 395 27
+3b734 24 395 27
+3b758 1c 395 27
+3b774 8 395 27
+3b77c c 395 27
+3b788 8 85 79
+3b790 8 395 27
+3b798 8 156 132
+3b7a0 8 256 82
+3b7a8 28 156 132
+3b7d0 28 429 27
+3b7f8 4 377 27
+3b7fc 8 378 27
+3b804 c 1512 82
+3b810 4 377 27
+3b814 4 1512 82
+3b818 4 378 27
+3b81c 8 1512 82
+3b824 4 378 27
+3b828 4 1512 82
+3b82c 8 378 27
+3b834 4 302 82
+3b838 4 378 27
+3b83c 8 302 82
+3b844 18 378 27
+3b85c 8 378 27
+3b864 c 378 27
+3b870 8 85 79
+3b878 c 378 27
+3b884 4 256 82
+3b888 4 1139 87
+3b88c 4 256 82
+3b890 c 379 27
+3b89c 4 277 82
+3b8a0 4 1139 87
+3b8a4 4 379 27
+3b8a8 20 379 27
+3b8c8 4 379 27
+3b8cc 4 379 27
+3b8d0 4 379 27
+3b8d4 1c 379 27
+3b8f0 8 379 27
+3b8f8 c 379 27
+3b904 8 85 79
+3b90c 8 379 27
+3b914 8 156 132
+3b91c c 256 82
+3b928 8 381 27
+3b930 4 256 82
+3b934 1c 381 27
+3b950 4 381 27
+3b954 c 381 27
+3b960 4 381 27
+3b964 8 382 27
+3b96c 8 1481 82
+3b974 4 381 27
+3b978 4 382 27
+3b97c 4 1481 82
+3b980 c 1482 82
+3b98c 1c 1382 82
+3b9a8 24 1471 82
+3b9cc 18 156 132
+3b9e4 10 382 27
+3b9f4 c 302 82
+3ba00 18 382 27
+3ba18 8 382 27
+3ba20 c 382 27
+3ba2c 8 85 79
+3ba34 8 382 27
+3ba3c 8 256 82
+3ba44 8 397 27
+3ba4c 4 1552 82
+3ba50 4 397 27
+3ba54 4 400 27
+3ba58 c 400 27
+3ba64 4 400 27
+3ba68 1c 1552 82
+3ba84 8 400 27
+3ba8c c 302 82
+3ba98 18 400 27
+3bab0 8 400 27
+3bab8 c 400 27
+3bac4 8 85 79
+3bacc c 400 27
+3bad8 8 256 82
+3bae0 28 401 27
+3bb08 c 302 82
+3bb14 18 401 27
+3bb2c 4 256 82
+3bb30 4 1139 87
+3bb34 4 256 82
+3bb38 c 403 27
+3bb44 8 404 27
+3bb4c 4 277 82
+3bb50 4 404 27
+3bb54 4 1139 87
+3bb58 4 404 27
+3bb5c 20 404 27
+3bb7c 4 404 27
+3bb80 4 404 27
+3bb84 18 404 27
+3bb9c 8 256 82
+3bba4 8 407 27
+3bbac 4 277 82
+3bbb0 4 407 27
+3bbb4 4 1139 87
+3bbb8 8 277 82
+3bbc0 4 408 27
+3bbc4 20 408 27
+3bbe4 4 408 27
+3bbe8 4 408 27
+3bbec 18 408 27
+3bc04 4 408 27
+3bc08 4 408 27
+3bc0c 8 408 27
+3bc14 c 408 27
+3bc20 8 85 79
+3bc28 8 408 27
+3bc30 8 156 132
+3bc38 14 256 82
+3bc4c 10 409 27
+3bc5c 8 410 27
+3bc64 8 410 27
+3bc6c 4 409 27
+3bc70 8 410 27
+3bc78 20 410 27
+3bc98 8 156 132
+3bca0 8 410 27
+3bca8 4 302 82
+3bcac 4 410 27
+3bcb0 8 302 82
+3bcb8 18 410 27
+3bcd0 8 410 27
+3bcd8 c 410 27
+3bce4 8 85 79
+3bcec 8 410 27
+3bcf4 4 256 82
+3bcf8 4 412 27
+3bcfc c 256 82
+3bd08 c 412 27
+3bd14 c 414 27
+3bd20 4 1139 87
+3bd24 4 414 27
+3bd28 4 277 82
+3bd2c 4 414 27
+3bd30 24 414 27
+3bd54 4 414 27
+3bd58 4 414 27
+3bd5c 4 414 27
+3bd60 1c 414 27
+3bd7c 8 414 27
+3bd84 c 414 27
+3bd90 8 85 79
+3bd98 8 414 27
+3bda0 8 156 132
+3bda8 4 256 82
+3bdac 4 418 27
+3bdb0 8 256 82
+3bdb8 10 418 27
+3bdc8 10 419 27
+3bdd8 14 962 131
+3bdec 4 422 27
+3bdf0 4 423 27
+3bdf4 4 422 27
+3bdf8 c 423 27
+3be04 4 452 131
+3be08 4 428 27
+3be0c 4 452 131
+3be10 10 428 27
+3be20 4 1512 82
+3be24 4 428 27
+3be28 20 1512 82
+3be48 8 156 132
+3be50 8 428 27
+3be58 4 302 82
+3be5c 4 428 27
+3be60 8 302 82
+3be68 18 428 27
+3be80 8 428 27
+3be88 c 428 27
+3be94 8 85 79
+3be9c 8 428 27
+3bea4 8 256 82
+3beac 1c 156 132
+FUNC 3bec8 3ac 0 MinidumpWriterTest_InvalidStackPointer_Test::TestBody
+3bec8 4 504 27
+3becc 4 506 27
+3bed0 10 504 27
+3bee0 4 506 27
+3bee4 8 504 27
+3beec 8 506 27
+3bef4 8 504 27
+3befc c 506 27
+3bf08 4 506 27
+3bf0c c 506 27
+3bf18 20 506 27
+3bf38 8 506 27
+3bf40 c 302 82
+3bf4c 18 506 27
+3bf64 8 506 27
+3bf6c c 506 27
+3bf78 8 85 79
+3bf80 8 256 82
+3bf88 8 508 27
+3bf90 4 509 27
+3bf94 8 510 27
+3bf9c 18 512 27
+3bfb4 4 512 27
+3bfb8 c 512 27
+3bfc4 c 513 27
+3bfd0 8 514 27
+3bfd8 4 516 27
+3bfdc c 523 27
+3bfe8 4 1552 82
+3bfec 4 516 27
+3bff0 4 523 27
+3bff4 4 516 27
+3bff8 10 523 27
+3c008 20 1552 82
+3c028 8 523 27
+3c030 c 302 82
+3c03c 18 523 27
+3c054 8 523 27
+3c05c c 523 27
+3c068 8 85 79
+3c070 8 523 27
+3c078 10 256 82
+3c088 4 546 27
+3c08c 4 1139 87
+3c090 4 256 82
+3c094 4 524 27
+3c098 4 530 27
+3c09c 4 538 27
+3c0a0 8 546 27
+3c0a8 14 547 27
+3c0bc 18 550 27
+3c0d4 4 277 82
+3c0d8 4 550 27
+3c0dc 4 1139 87
+3c0e0 4 550 27
+3c0e4 20 550 27
+3c104 4 550 27
+3c108 4 550 27
+3c10c 1c 550 27
+3c128 8 550 27
+3c130 c 550 27
+3c13c 8 85 79
+3c144 8 550 27
+3c14c 8 156 132
+3c154 10 256 82
+3c164 4 1139 87
+3c168 4 256 82
+3c16c c 553 27
+3c178 8 554 27
+3c180 4 277 82
+3c184 4 554 27
+3c188 4 1139 87
+3c18c 4 554 27
+3c190 20 554 27
+3c1b0 4 554 27
+3c1b4 4 554 27
+3c1b8 4 554 27
+3c1bc 1c 554 27
+3c1d8 8 554 27
+3c1e0 c 554 27
+3c1ec 8 85 79
+3c1f4 8 554 27
+3c1fc 8 156 132
+3c204 1c 256 82
+3c220 8 579 27
+3c228 8 579 27
+3c230 8 156 132
+3c238 8 579 27
+3c240 10 156 132
+3c250 24 580 27
+FUNC 3c274 790 0 MinidumpWriterTest_AdditionalMemory_Test::TestBody
+3c274 4 432 27
+3c278 4 434 27
+3c27c 10 432 27
+3c28c 4 434 27
+3c290 8 432 27
+3c298 4 434 27
+3c29c 4 434 27
+3c2a0 8 432 27
+3c2a8 18 434 27
+3c2c0 20 434 27
+3c2e0 8 434 27
+3c2e8 c 302 82
+3c2f4 18 434 27
+3c30c 8 434 27
+3c314 c 434 27
+3c320 8 85 79
+3c328 8 434 27
+3c330 c 256 82
+3c33c 4 438 27
+3c340 4 256 82
+3c344 c 438 27
+3c350 c 441 27
+3c35c 4 442 27
+3c360 4 1139 87
+3c364 4 442 27
+3c368 8 277 82
+3c370 8 256 82
+3c378 4 446 27
+3c37c 4 447 27
+3c380 c 446 27
+3c38c c 447 27
+3c398 8 446 27
+3c3a0 8 450 27
+3c3a8 4 451 27
+3c3ac 4 452 27
+3c3b0 4 454 27
+3c3b4 8 452 27
+3c3bc 18 454 27
+3c3d4 4 454 27
+3c3d8 c 454 27
+3c3e4 c 455 27
+3c3f0 8 456 27
+3c3f8 4 458 27
+3c3fc c 465 27
+3c408 8 1552 82
+3c410 4 458 27
+3c414 4 465 27
+3c418 4 458 27
+3c41c 10 465 27
+3c42c 1c 1552 82
+3c448 8 465 27
+3c450 c 302 82
+3c45c 18 465 27
+3c474 8 465 27
+3c47c c 465 27
+3c488 8 85 79
+3c490 8 465 27
+3c498 10 256 82
+3c4a8 4 468 27
+3c4ac 4 469 27
+3c4b0 4 256 82
+3c4b4 4 466 27
+3c4b8 8 468 27
+3c4c0 14 469 27
+3c4d4 8 470 27
+3c4dc 4 211 116
+3c4e0 4 478 27
+3c4e4 4 211 116
+3c4e8 4 212 116
+3c4ec 4 211 116
+3c4f0 4 478 27
+3c4f4 8 306 101
+3c4fc 4 307 101
+3c500 4 211 116
+3c504 4 212 116
+3c508 4 307 101
+3c50c 4 119 103
+3c510 4 307 101
+3c514 4 119 103
+3c518 8 119 103
+3c520 8 427 116
+3c528 4 277 82
+3c52c c 480 27
+3c538 4 427 116
+3c53c 4 1139 87
+3c540 8 428 116
+3c548 8 429 116
+3c550 4 430 116
+3c554 4 431 116
+3c558 c 480 27
+3c564 4 277 82
+3c568 4 480 27
+3c56c 4 1139 87
+3c570 4 480 27
+3c574 20 480 27
+3c594 4 480 27
+3c598 4 480 27
+3c59c 1c 480 27
+3c5b8 8 480 27
+3c5c0 c 480 27
+3c5cc 8 85 79
+3c5d4 8 480 27
+3c5dc 8 156 132
+3c5e4 10 256 82
+3c5f4 4 1139 87
+3c5f8 4 256 82
+3c5fc c 484 27
+3c608 8 485 27
+3c610 4 277 82
+3c614 4 485 27
+3c618 4 1139 87
+3c61c 4 485 27
+3c620 20 485 27
+3c640 4 485 27
+3c644 4 485 27
+3c648 18 485 27
+3c660 8 256 82
+3c668 8 487 27
+3c670 4 277 82
+3c674 4 487 27
+3c678 4 1139 87
+3c67c 8 277 82
+3c684 4 488 27
+3c688 20 488 27
+3c6a8 4 488 27
+3c6ac 4 488 27
+3c6b0 18 488 27
+3c6c8 4 256 82
+3c6cc 4 490 27
+3c6d0 4 256 82
+3c6d4 14 490 27
+3c6e8 4 277 82
+3c6ec 4 490 27
+3c6f0 4 1139 87
+3c6f4 8 277 82
+3c6fc 4 491 27
+3c700 20 491 27
+3c720 4 491 27
+3c724 4 491 27
+3c728 18 491 27
+3c740 4 491 27
+3c744 4 491 27
+3c748 8 491 27
+3c750 c 491 27
+3c75c 8 85 79
+3c764 8 491 27
+3c76c 8 156 132
+3c774 14 256 82
+3c788 14 493 27
+3c79c 20 1512 82
+3c7bc 8 493 27
+3c7c4 4 302 82
+3c7c8 4 493 27
+3c7cc 8 302 82
+3c7d4 18 493 27
+3c7ec 8 493 27
+3c7f4 c 493 27
+3c800 8 85 79
+3c808 8 493 27
+3c810 4 256 82
+3c814 4 494 27
+3c818 c 256 82
+3c824 18 494 27
+3c83c 10 1481 82
+3c84c c 1482 82
+3c858 18 1382 82
+3c870 24 1471 82
+3c894 14 156 132
+3c8a8 8 494 27
+3c8b0 4 302 82
+3c8b4 8 494 27
+3c8bc 4 302 82
+3c8c0 10 494 27
+3c8d0 4 494 27
+3c8d4 4 494 27
+3c8d8 8 494 27
+3c8e0 c 494 27
+3c8ec 8 85 79
+3c8f4 8 494 27
+3c8fc 4 256 82
+3c900 4 497 27
+3c904 4 256 82
+3c908 4 1552 82
+3c90c 4 256 82
+3c910 10 497 27
+3c920 c 497 27
+3c92c 4 497 27
+3c930 1c 1552 82
+3c94c 8 497 27
+3c954 c 302 82
+3c960 18 497 27
+3c978 8 497 27
+3c980 c 497 27
+3c98c 8 85 79
+3c994 8 497 27
+3c99c 8 256 82
+3c9a4 8 499 27
+3c9ac 14 500 27
+3c9c0 10 205 116
+3c9d0 10 156 132
+3c9e0 24 501 27
+FUNC 3ca04 113c 0 MinidumpWriterTest_MinidumpSizeLimit_Test::TestBody
+3ca04 4 583 27
+3ca08 4 587 27
+3ca0c 10 583 27
+3ca1c 4 587 27
+3ca20 c 583 27
+3ca2c 10 587 27
+3ca3c 8 583 27
+3ca44 8 589 27
+3ca4c 4 583 27
+3ca50 8 587 27
+3ca58 8 589 27
+3ca60 10 590 27
+3ca70 20 591 27
+3ca90 8 591 27
+3ca98 14 333 122
+3caac c 591 27
+3cab8 8 85 79
+3cac0 8 591 27
+3cac8 4 591 27
+3cacc 20 596 27
+3caec 20 596 27
+3cb0c 8 596 27
+3cb14 c 302 82
+3cb20 18 596 27
+3cb38 8 596 27
+3cb40 c 596 27
+3cb4c 8 85 79
+3cb54 8 596 27
+3cb5c 10 256 82
+3cb6c 8 598 27
+3cb74 4 599 27
+3cb78 8 601 27
+3cb80 10 605 27
+3cb90 18 610 27
+3cba8 8 612 27
+3cbb0 4 617 27
+3cbb4 4 612 27
+3cbb8 24 1512 82
+3cbdc 4 617 27
+3cbe0 8 618 27
+3cbe8 8 619 27
+3cbf0 1c 621 27
+3cc0c 4 621 27
+3cc10 10 621 27
+3cc20 4 256 82
+3cc24 8 1139 87
+3cc2c 4 256 82
+3cc30 8 623 27
+3cc38 4 277 82
+3cc3c 4 1139 87
+3cc40 4 623 27
+3cc44 24 623 27
+3cc68 1c 623 27
+3cc84 8 623 27
+3cc8c c 623 27
+3cc98 8 85 79
+3cca0 8 623 27
+3cca8 8 156 132
+3ccb0 14 256 82
+3ccc4 4 639 27
+3ccc8 8 658 27
+3ccd0 c 658 27
+3ccdc 8 658 27
+3cce4 8 665 27
+3ccec 8 156 132
+3ccf4 4 673 27
+3ccf8 8 676 27
+3cd00 4 673 27
+3cd04 c 676 27
+3cd10 4 211 116
+3cd14 1c 677 27
+3cd30 4 212 116
+3cd34 4 211 116
+3cd38 4 677 27
+3cd3c 4 212 116
+3cd40 4 677 27
+3cd44 4 1139 87
+3cd48 4 277 82
+3cd4c 10 205 116
+3cd5c 8 677 27
+3cd64 24 677 27
+3cd88 1c 677 27
+3cda4 8 677 27
+3cdac c 677 27
+3cdb8 8 85 79
+3cdc0 8 677 27
+3cdc8 8 156 132
+3cdd0 8 256 82
+3cdd8 18 156 132
+3cdf0 2c 754 27
+3ce1c 8 622 27
+3ce24 4 1512 82
+3ce28 4 621 27
+3ce2c 10 1512 82
+3ce3c 4 621 27
+3ce40 4 1512 82
+3ce44 10 622 27
+3ce54 c 302 82
+3ce60 18 622 27
+3ce78 8 256 82
+3ce80 1c 625 27
+3ce9c 1c 1512 82
+3ceb8 8 625 27
+3cec0 c 302 82
+3cecc 18 625 27
+3cee4 8 625 27
+3ceec c 625 27
+3cef8 8 85 79
+3cf00 8 625 27
+3cf08 10 256 82
+3cf18 8 615 27
+3cf20 4 628 27
+3cf24 4 646 27
+3cf28 4 628 27
+3cf2c 10 633 27
+3cf3c 8 640 27
+3cf44 14 645 27
+3cf58 4 211 116
+3cf5c 1c 646 27
+3cf78 4 212 116
+3cf7c 4 211 116
+3cf80 4 212 116
+3cf84 4 646 27
+3cf88 4 277 82
+3cf8c 4 205 116
+3cf90 4 1139 87
+3cf94 c 205 116
+3cfa0 8 646 27
+3cfa8 24 646 27
+3cfcc 1c 646 27
+3cfe8 8 646 27
+3cff0 c 646 27
+3cffc 8 85 79
+3d004 8 646 27
+3d00c 8 156 132
+3d014 c 256 82
+3d020 4 1552 82
+3d024 4 256 82
+3d028 4 650 27
+3d02c c 650 27
+3d038 4 650 27
+3d03c 20 1552 82
+3d05c c 650 27
+3d068 c 302 82
+3d074 18 650 27
+3d08c 8 650 27
+3d094 c 650 27
+3d0a0 8 85 79
+3d0a8 8 650 27
+3d0b0 c 256 82
+3d0bc 4 651 27
+3d0c0 4 256 82
+3d0c4 28 651 27
+3d0ec c 302 82
+3d0f8 18 651 27
+3d110 4 256 82
+3d114 4 652 27
+3d118 4 1139 87
+3d11c 4 256 82
+3d120 4 652 27
+3d124 4 654 27
+3d128 4 652 27
+3d12c 8 654 27
+3d134 8 655 27
+3d13c 4 277 82
+3d140 4 655 27
+3d144 4 1139 87
+3d148 4 655 27
+3d14c 20 655 27
+3d16c 4 655 27
+3d170 4 655 27
+3d174 18 655 27
+3d18c 8 256 82
+3d194 8 656 27
+3d19c 4 277 82
+3d1a0 4 656 27
+3d1a4 4 1139 87
+3d1a8 8 277 82
+3d1b0 4 657 27
+3d1b4 20 657 27
+3d1d4 4 657 27
+3d1d8 4 657 27
+3d1dc 1c 657 27
+3d1f8 18 659 27
+3d210 4 271 65
+3d214 4 659 27
+3d218 8 271 65
+3d220 4 1139 87
+3d224 4 271 65
+3d228 8 660 27
+3d230 4 277 82
+3d234 4 660 27
+3d238 20 660 27
+3d258 4 660 27
+3d25c 4 660 27
+3d260 14 660 27
+3d274 8 663 27
+3d27c c 663 27
+3d288 c 663 27
+3d294 8 85 79
+3d29c 8 663 27
+3d2a4 8 156 132
+3d2ac 14 256 82
+3d2c0 14 662 27
+3d2d4 4 663 27
+3d2d8 4 662 27
+3d2dc 4 1139 87
+3d2e0 4 663 27
+3d2e4 4 277 82
+3d2e8 4 663 27
+3d2ec 20 663 27
+3d30c 4 663 27
+3d310 4 663 27
+3d314 18 663 27
+3d32c 8 256 82
+3d334 4 658 27
+3d338 4 256 82
+3d33c 24 664 27
+3d360 4 256 82
+3d364 4 681 27
+3d368 4 256 82
+3d36c 4 681 27
+3d370 c 681 27
+3d37c 4 681 27
+3d380 24 1552 82
+3d3a4 8 681 27
+3d3ac c 302 82
+3d3b8 18 681 27
+3d3d0 4 256 82
+3d3d4 4 1512 82
+3d3d8 4 256 82
+3d3dc 30 1512 82
+3d40c 8 686 27
+3d414 c 302 82
+3d420 18 686 27
+3d438 8 686 27
+3d440 c 686 27
+3d44c 8 85 79
+3d454 c 686 27
+3d460 8 256 82
+3d468 8 156 132
+3d470 c 705 27
+3d47c 4 709 27
+3d480 c 699 27
+3d48c c 709 27
+3d498 8 699 27
+3d4a0 4 709 27
+3d4a4 20 710 27
+3d4c4 4 211 116
+3d4c8 4 212 116
+3d4cc 4 211 116
+3d4d0 4 212 116
+3d4d4 4 710 27
+3d4d8 4 277 82
+3d4dc 4 205 116
+3d4e0 4 1139 87
+3d4e4 c 205 116
+3d4f0 8 710 27
+3d4f8 24 710 27
+3d51c 1c 710 27
+3d538 8 710 27
+3d540 c 710 27
+3d54c 8 85 79
+3d554 8 710 27
+3d55c 8 156 132
+3d564 10 256 82
+3d574 4 714 27
+3d578 10 714 27
+3d588 4 714 27
+3d58c 1c 1552 82
+3d5a8 8 714 27
+3d5b0 c 302 82
+3d5bc 18 714 27
+3d5d4 8 714 27
+3d5dc c 714 27
+3d5e8 8 85 79
+3d5f0 8 714 27
+3d5f8 14 256 82
+3d60c 24 715 27
+3d630 c 302 82
+3d63c 18 715 27
+3d654 c 256 82
+3d660 10 1619 82
+3d670 10 1619 82
+3d680 2c 1583 82
+3d6ac 10 1583 82
+3d6bc c 1583 82
+3d6c8 c 1583 82
+3d6d4 8 1583 82
+3d6dc c 1583 82
+3d6e8 c 1583 82
+3d6f4 10 1584 82
+3d704 c 1382 82
+3d710 c 1584 82
+3d71c 10 1585 82
+3d72c c 1382 82
+3d738 10 1585 82
+3d748 8 1585 82
+3d750 10 156 132
+3d760 8 256 82
+3d768 8 719 27
+3d770 c 302 82
+3d77c 18 719 27
+3d794 8 719 27
+3d79c c 719 27
+3d7a8 8 85 79
+3d7b0 8 719 27
+3d7b8 4 256 82
+3d7bc 4 1139 87
+3d7c0 4 256 82
+3d7c4 c 721 27
+3d7d0 8 722 27
+3d7d8 4 277 82
+3d7dc 4 722 27
+3d7e0 4 1139 87
+3d7e4 4 722 27
+3d7e8 20 722 27
+3d808 4 722 27
+3d80c 4 722 27
+3d810 18 722 27
+3d828 8 256 82
+3d830 8 723 27
+3d838 4 277 82
+3d83c 4 723 27
+3d840 4 1139 87
+3d844 8 277 82
+3d84c 4 724 27
+3d850 20 724 27
+3d870 4 724 27
+3d874 4 724 27
+3d878 1c 724 27
+3d894 8 724 27
+3d89c c 724 27
+3d8a8 8 85 79
+3d8b0 8 724 27
+3d8b8 8 156 132
+3d8c0 4 256 82
+3d8c4 4 725 27
+3d8c8 4 256 82
+3d8cc 4 726 27
+3d8d0 4 725 27
+3d8d4 4 726 27
+3d8d8 c 256 82
+3d8e4 20 732 27
+3d904 c 726 27
+3d910 4 726 27
+3d914 c 726 27
+3d920 c 726 27
+3d92c 14 727 27
+3d940 4 271 65
+3d944 4 727 27
+3d948 8 271 65
+3d950 4 1139 87
+3d954 4 271 65
+3d958 8 728 27
+3d960 4 277 82
+3d964 4 728 27
+3d968 24 728 27
+3d98c 4 728 27
+3d990 4 728 27
+3d994 14 728 27
+3d9a8 8 731 27
+3d9b0 8 731 27
+3d9b8 c 731 27
+3d9c4 8 85 79
+3d9cc 8 731 27
+3d9d4 8 156 132
+3d9dc 20 256 82
+3d9fc 14 730 27
+3da10 4 731 27
+3da14 4 730 27
+3da18 4 1139 87
+3da1c 4 731 27
+3da20 4 277 82
+3da24 4 731 27
+3da28 24 731 27
+3da4c 4 731 27
+3da50 4 731 27
+3da54 18 731 27
+3da6c 4 748 27
+3da70 4 1619 82
+3da74 4 748 27
+3da78 4 1619 82
+3da7c 4 748 27
+3da80 8 1619 82
+3da88 8 1619 82
+3da90 24 1619 82
+3dab4 8 748 27
+3dabc c 302 82
+3dac8 18 748 27
+3dae0 8 748 27
+3dae8 c 749 27
+3daf4 8 85 79
+3dafc 8 748 27
+3db04 8 256 82
+3db0c 8 749 27
+3db14 8 156 132
+3db1c c 753 27
+3db28 8 753 27
+3db30 10 156 132
+FUNC 3db40 390 0 google_breakpad::GetHelperBinary
+3db40 4 42 28
+3db44 4 124 132
+3db48 10 42 28
+3db58 4 120 132
+3db5c 8 42 28
+3db64 4 120 132
+3db68 4 42 28
+3db6c 4 124 132
+3db70 4 120 132
+3db74 8 481 101
+3db7c 8 124 132
+3db84 4 101 103
+3db88 10 44 28
+3db98 4 45 28
+3db9c c 46 28
+3dba8 4 120 132
+3dbac 8 400 131
+3dbb4 4 481 101
+3dbb8 4 400 131
+3dbbc 10 124 132
+3dbcc 4 101 103
+3dbd0 10 517 131
+3dbe0 c 74 132
+3dbec 10 74 132
+3dbfc c 74 132
+3dc08 c 472 131
+3dc14 10 473 131
+3dc24 4 356 101
+3dc28 4 346 101
+3dc2c 4 347 101
+3dc30 8 348 101
+3dc38 4 352 101
+3dc3c 4 353 101
+3dc40 c 120 137
+3dc4c 4 479 131
+3dc50 8 120 137
+3dc58 14 148 137
+3dc6c 4 101 103
+3dc70 8 478 131
+3dc78 4 160 132
+3dc7c 4 164 132
+3dc80 8 165 132
+3dc88 4 482 131
+3dc8c 8 232 140
+3dc94 8 148 137
+3dc9c 4 483 131
+3dca0 c 148 137
+3dcac 4 101 103
+3dcb0 c 485 131
+3dcbc 10 349 131
+3dccc 14 156 132
+3dce0 18 60 49
+3dcf8 4 50 28
+3dcfc 14 51 28
+3dd10 10 53 28
+3dd20 10 349 131
+3dd30 10 156 132
+3dd40 8 471 130
+3dd48 8 162 99
+3dd50 c 164 99
+3dd5c c 165 99
+3dd68 c 168 99
+3dd74 8 81 113
+3dd7c c 171 99
+3dd88 8 81 113
+3dd90 c 174 99
+3dd9c 8 81 113
+3dda4 c 164 99
+3ddb0 4 152 113
+3ddb4 1c 178 99
+3ddd0 c 180 99
+3dddc 4 81 113
+3dde0 c 183 99
+3ddec 4 81 113
+3ddf0 10 186 99
+3de00 4 178 99
+3de04 8 478 130
+3de0c 8 478 130
+3de14 8 55 28
+3de1c 18 56 28
+3de34 4 58 28
+3de38 8 789 131
+3de40 c 604 130
+3de4c c 791 131
+3de58 20 530 131
+3de78 4 379 131
+3de7c 4 112 132
+3de80 4 378 131
+3de84 4 481 101
+3de88 8 379 131
+3de90 10 148 137
+3dea0 4 380 131
+3dea4 4 101 103
+3dea8 8 156 132
+3deb0 20 64 28
+FUNC 3ded0 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::~TestFactoryImpl
+3ded0 4 484 85
+FUNC 3ded4 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::~TestFactoryImpl
+3ded4 4 484 85
+FUNC 3ded8 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::~TestFactoryImpl
+3ded8 4 484 85
+FUNC 3dedc 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::~TestFactoryImpl
+3dedc 4 484 85
+FUNC 3dee0 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::~TestFactoryImpl
+3dee0 4 484 85
+FUNC 3dee4 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::~TestFactoryImpl
+3dee4 4 484 85
+FUNC 3dee8 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+3dee8 4 484 85
+FUNC 3deec 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::~TestFactoryImpl
+3deec 4 484 85
+FUNC 3def0 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+3def0 4 484 85
+FUNC 3def4 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::~TestFactoryImpl
+3def4 4 484 85
+FUNC 3def8 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::~TestFactoryImpl
+3def8 4 484 85
+FUNC 3defc 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+3defc 4 484 85
+FUNC 3df00 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::~TestFactoryImpl
+3df00 4 484 85
+FUNC 3df04 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+3df04 4 484 85
+FUNC 3df08 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::~TestFactoryImpl
+3df08 4 484 85
+FUNC 3df0c 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::~TestFactoryImpl
+3df0c 4 484 85
+FUNC 3df10 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::~TestFactoryImpl
+3df10 4 484 85
+FUNC 3df14 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::~TestFactoryImpl
+3df14 4 484 85
+FUNC 3df18 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::~TestFactoryImpl
+3df18 4 484 85
+FUNC 3df1c 4 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::~TestFactoryImpl
+3df1c 4 484 85
+FUNC 3df20 14 0 ProcCpuInfoReaderTest_EmptyValue_Test::~ProcCpuInfoReaderTest_EmptyValue_Test
+3df20 14 186 30
+FUNC 3df34 24 0 ProcCpuInfoReaderTest_EmptyValue_Test::~ProcCpuInfoReaderTest_EmptyValue_Test
+3df34 c 186 30
+3df40 8 186 30
+3df48 4 186 30
+3df4c 8 186 30
+3df54 4 186 30
+FUNC 3df58 14 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::~ProcCpuInfoReaderTest_FieldWithSpaces_Test
+3df58 14 173 30
+FUNC 3df6c 24 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::~ProcCpuInfoReaderTest_FieldWithSpaces_Test
+3df6c c 173 30
+3df78 8 173 30
+3df80 4 173 30
+3df84 8 173 30
+3df8c 4 173 30
+FUNC 3df90 14 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::~ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test
+3df90 14 156 30
+FUNC 3dfa4 24 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::~ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test
+3dfa4 c 156 30
+3dfb0 8 156 30
+3dfb8 4 156 30
+3dfbc 8 156 30
+3dfc4 4 156 30
+FUNC 3dfc8 14 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::~ProcCpuInfoReaderTest_SkipEmptyField_Test
+3dfc8 14 143 30
+FUNC 3dfdc 24 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::~ProcCpuInfoReaderTest_SkipEmptyField_Test
+3dfdc c 143 30
+3dfe8 8 143 30
+3dff0 4 143 30
+3dff4 8 143 30
+3dffc 4 143 30
+FUNC 3e000 14 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::~ProcCpuInfoReaderTest_SkipOneEmptyLine_Test
+3e000 14 130 30
+FUNC 3e014 24 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::~ProcCpuInfoReaderTest_SkipOneEmptyLine_Test
+3e014 c 130 30
+3e020 8 130 30
+3e028 4 130 30
+3e02c 8 130 30
+3e034 4 130 30
+FUNC 3e038 14 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::~ProcCpuInfoReaderTest_SkipMalformedLine_Test
+3e038 14 117 30
+FUNC 3e04c 24 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::~ProcCpuInfoReaderTest_SkipMalformedLine_Test
+3e04c c 117 30
+3e058 8 117 30
+3e060 4 117 30
+3e064 8 117 30
+3e06c 4 117 30
+FUNC 3e070 14 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::~ProcCpuInfoReaderTest_TwoLinesTerminated_Test
+3e070 14 100 30
+FUNC 3e084 24 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::~ProcCpuInfoReaderTest_TwoLinesTerminated_Test
+3e084 c 100 30
+3e090 8 100 30
+3e098 4 100 30
+3e09c 8 100 30
+3e0a4 4 100 30
+FUNC 3e0a8 14 0 ProcCpuInfoReaderTest_OneLine_Test::~ProcCpuInfoReaderTest_OneLine_Test
+3e0a8 14 85 30
+FUNC 3e0bc 24 0 ProcCpuInfoReaderTest_OneLine_Test::~ProcCpuInfoReaderTest_OneLine_Test
+3e0bc c 85 30
+3e0c8 8 85 30
+3e0d0 4 85 30
+3e0d4 8 85 30
+3e0dc 4 85 30
+FUNC 3e0e0 14 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::~ProcCpuInfoReaderTest_OneLineTerminated_Test
+3e0e0 14 72 30
+FUNC 3e0f4 24 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::~ProcCpuInfoReaderTest_OneLineTerminated_Test
+3e0f4 c 72 30
+3e100 8 72 30
+3e108 4 72 30
+3e10c 8 72 30
+3e114 4 72 30
+FUNC 3e118 14 0 ProcCpuInfoReaderTest_EmptyFile_Test::~ProcCpuInfoReaderTest_EmptyFile_Test
+3e118 14 63 30
+FUNC 3e12c 24 0 ProcCpuInfoReaderTest_EmptyFile_Test::~ProcCpuInfoReaderTest_EmptyFile_Test
+3e12c c 63 30
+3e138 8 63 30
+3e140 4 63 30
+3e144 8 63 30
+3e14c 4 63 30
+FUNC 3e150 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::CreateTest
+3e150 10 486 85
+3e160 8 486 85
+3e168 8 186 30
+3e170 4 486 85
+3e174 c 186 30
+3e180 c 486 85
+FUNC 3e18c 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::CreateTest
+3e18c 10 486 85
+3e19c 8 486 85
+3e1a4 8 173 30
+3e1ac 4 486 85
+3e1b0 c 173 30
+3e1bc c 486 85
+FUNC 3e1c8 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::CreateTest
+3e1c8 10 486 85
+3e1d8 8 486 85
+3e1e0 8 156 30
+3e1e8 4 486 85
+3e1ec c 156 30
+3e1f8 c 486 85
+FUNC 3e204 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::CreateTest
+3e204 10 486 85
+3e214 8 486 85
+3e21c 8 143 30
+3e224 4 486 85
+3e228 c 143 30
+3e234 c 486 85
+FUNC 3e240 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::CreateTest
+3e240 10 486 85
+3e250 8 486 85
+3e258 8 130 30
+3e260 4 486 85
+3e264 c 130 30
+3e270 c 486 85
+FUNC 3e27c 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::CreateTest
+3e27c 10 486 85
+3e28c 8 486 85
+3e294 8 117 30
+3e29c 4 486 85
+3e2a0 c 117 30
+3e2ac c 486 85
+FUNC 3e2b8 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::CreateTest
+3e2b8 10 486 85
+3e2c8 8 486 85
+3e2d0 8 100 30
+3e2d8 4 486 85
+3e2dc c 100 30
+3e2e8 c 486 85
+FUNC 3e2f4 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::CreateTest
+3e2f4 10 486 85
+3e304 8 486 85
+3e30c 8 85 30
+3e314 4 486 85
+3e318 c 85 30
+3e324 c 486 85
+FUNC 3e330 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::CreateTest
+3e330 10 486 85
+3e340 8 486 85
+3e348 8 72 30
+3e350 4 486 85
+3e354 c 72 30
+3e360 c 486 85
+FUNC 3e36c 3c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::CreateTest
+3e36c 10 486 85
+3e37c 8 486 85
+3e384 8 63 30
+3e38c 4 486 85
+3e390 c 63 30
+3e39c c 486 85
+FUNC 3e3a8 1cc 0 google_breakpad::ProcCpuInfoReader::GetNextField
+3e3a8 1c 54 29
+3e3c4 8 54 29
+3e3cc 4 118 16
+3e3d0 4 62 29
+3e3d4 4 99 16
+3e3d8 4 103 16
+3e3dc c 60 29
+3e3e8 8 118 16
+3e3f0 4 117 16
+3e3f4 4 118 16
+3e3f8 4 117 16
+3e3fc 8 118 16
+3e404 4 62 29
+3e408 8 66 16
+3e410 8 66 16
+3e418 4 66 16
+3e41c 14 69 16
+3e430 10 70 16
+3e440 c 71 16
+3e44c 8 78 16
+3e454 c 86 16
+3e460 4 90 16
+3e464 4 92 16
+3e468 4 86 16
+3e46c 4 90 16
+3e470 8 92 16
+3e478 4 98 16
+3e47c 4 3104 97
+3e480 4 98 16
+3e484 4 99 16
+3e488 14 3104 97
+3e49c 4 3104 97
+3e4a0 c 3104 97
+3e4ac 8 100 16
+3e4b4 4 102 16
+3e4b8 8 103 16
+3e4c0 10 105 16
+3e4d0 4 70 29
+3e4d4 4 68 29
+3e4d8 8 77 29
+3e4e0 4 70 29
+3e4e4 8 77 29
+3e4ec 4 83 29
+3e4f0 4 78 29
+3e4f4 8 84 29
+3e4fc 8 84 29
+3e504 4 84 29
+3e508 8 85 29
+3e510 8 66 29
+3e518 4 87 29
+3e51c 8 88 29
+3e524 8 92 29
+3e52c 8 92 29
+3e534 4 92 29
+3e538 8 93 29
+3e540 8 95 29
+3e548 4 99 29
+3e54c 4 102 29
+3e550 4 101 29
+3e554 20 104 29
+FUNC 3e574 ac 0 ScopedTestFile::ScopedTestFile
+3e574 10 56 30
+3e584 4 60 52
+3e588 4 56 30
+3e58c 4 60 52
+3e590 4 56 30
+3e594 4 60 52
+3e598 8 61 52
+3e5a0 c 62 52
+3e5ac 1c 109 52
+3e5c8 4 109 52
+3e5cc c 109 52
+3e5d8 8 110 52
+3e5e0 8 111 52
+3e5e8 c 112 52
+3e5f4 8 116 52
+3e5fc c 58 30
+3e608 8 116 52
+3e610 10 58 30
+FUNC 3e620 1ac 0 ProcCpuInfoReaderTest_EmptyFile_Test::TestBody
+3e620 4 63 30
+3e624 8 64 30
+3e62c c 63 30
+3e638 4 64 30
+3e63c 4 63 30
+3e640 8 64 30
+3e648 4 63 30
+3e64c 4 64 30
+3e650 4 277 82
+3e654 4 82 52
+3e658 8 1139 87
+3e660 8 82 52
+3e668 4 277 82
+3e66c 4 1139 87
+3e670 4 65 30
+3e674 20 65 30
+3e694 4 65 30
+3e698 4 65 30
+3e69c 1c 65 30
+3e6b8 8 65 30
+3e6c0 c 65 30
+3e6cc 8 85 79
+3e6d4 8 65 30
+3e6dc 8 156 132
+3e6e4 10 256 82
+3e6f4 8 49 16
+3e6fc 4 69 30
+3e700 4 49 16
+3e704 4 48 29
+3e708 4 49 16
+3e70c 4 48 29
+3e710 4 69 30
+3e714 4 1139 87
+3e718 c 69 30
+3e724 4 277 82
+3e728 4 1139 87
+3e72c 4 69 30
+3e730 20 69 30
+3e750 4 69 30
+3e754 4 69 30
+3e758 4 69 30
+3e75c 1c 69 30
+3e778 8 69 30
+3e780 c 69 30
+3e78c 8 85 79
+3e794 8 69 30
+3e79c 8 156 132
+3e7a4 8 256 82
+3e7ac 8 54 30
+3e7b4 18 70 30
+FUNC 3e7cc 2fc 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::TestBody
+3e7cc 4 72 30
+3e7d0 8 73 30
+3e7d8 c 72 30
+3e7e4 4 73 30
+3e7e8 4 72 30
+3e7ec 4 73 30
+3e7f0 8 72 30
+3e7f8 4 73 30
+3e7fc 4 277 82
+3e800 4 82 52
+3e804 c 1139 87
+3e810 8 82 52
+3e818 4 277 82
+3e81c 4 1139 87
+3e820 4 74 30
+3e824 20 74 30
+3e844 4 74 30
+3e848 4 74 30
+3e84c 1c 74 30
+3e868 8 74 30
+3e870 c 74 30
+3e87c 8 85 79
+3e884 8 74 30
+3e88c c 156 132
+3e898 4 256 82
+3e89c 4 78 30
+3e8a0 4 1139 87
+3e8a4 4 256 82
+3e8a8 8 49 16
+3e8b0 4 78 30
+3e8b4 4 49 16
+3e8b8 4 48 29
+3e8bc 4 49 16
+3e8c0 4 48 29
+3e8c4 8 78 30
+3e8cc 4 277 82
+3e8d0 4 78 30
+3e8d4 4 1139 87
+3e8d8 4 78 30
+3e8dc 20 78 30
+3e8fc 4 78 30
+3e900 4 78 30
+3e904 18 78 30
+3e91c 8 256 82
+3e924 2c 79 30
+3e950 4 302 82
+3e954 4 79 30
+3e958 8 302 82
+3e960 18 79 30
+3e978 8 256 82
+3e980 24 80 30
+3e9a4 8 80 30
+3e9ac 4 302 82
+3e9b0 4 80 30
+3e9b4 8 302 82
+3e9bc 18 80 30
+3e9d4 8 80 30
+3e9dc c 80 30
+3e9e8 8 85 79
+3e9f0 8 80 30
+3e9f8 10 256 82
+3ea08 14 82 30
+3ea1c 4 1139 87
+3ea20 4 277 82
+3ea24 4 82 30
+3ea28 20 82 30
+3ea48 4 82 30
+3ea4c 4 82 30
+3ea50 18 82 30
+3ea68 4 82 30
+3ea6c 4 82 30
+3ea70 8 82 30
+3ea78 c 82 30
+3ea84 8 85 79
+3ea8c 8 82 30
+3ea94 8 156 132
+3ea9c 8 256 82
+3eaa4 8 54 30
+3eaac 1c 83 30
+FUNC 3eac8 420 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::TestBody
+3eac8 4 100 30
+3eacc 8 101 30
+3ead4 c 100 30
+3eae0 4 101 30
+3eae4 4 100 30
+3eae8 4 101 30
+3eaec c 100 30
+3eaf8 4 101 30
+3eafc 4 277 82
+3eb00 4 82 52
+3eb04 c 1139 87
+3eb10 8 82 52
+3eb18 4 277 82
+3eb1c 4 1139 87
+3eb20 4 102 30
+3eb24 20 102 30
+3eb44 4 102 30
+3eb48 4 102 30
+3eb4c 1c 102 30
+3eb68 8 102 30
+3eb70 c 102 30
+3eb7c 8 85 79
+3eb84 8 102 30
+3eb8c c 156 132
+3eb98 4 256 82
+3eb9c 4 106 30
+3eba0 4 1139 87
+3eba4 4 256 82
+3eba8 8 49 16
+3ebb0 4 106 30
+3ebb4 4 49 16
+3ebb8 4 48 29
+3ebbc 4 49 16
+3ebc0 4 48 29
+3ebc4 8 106 30
+3ebcc 4 277 82
+3ebd0 4 106 30
+3ebd4 4 1139 87
+3ebd8 4 106 30
+3ebdc 20 106 30
+3ebfc 4 106 30
+3ec00 4 106 30
+3ec04 18 106 30
+3ec1c 4 256 82
+3ec20 8 107 30
+3ec28 4 256 82
+3ec2c 28 107 30
+3ec54 4 302 82
+3ec58 4 107 30
+3ec5c 8 302 82
+3ec64 18 107 30
+3ec7c 4 256 82
+3ec80 8 108 30
+3ec88 4 256 82
+3ec8c 20 108 30
+3ecac 8 108 30
+3ecb4 4 302 82
+3ecb8 4 108 30
+3ecbc 8 302 82
+3ecc4 18 108 30
+3ecdc 8 256 82
+3ece4 c 110 30
+3ecf0 4 1139 87
+3ecf4 4 110 30
+3ecf8 4 277 82
+3ecfc 4 110 30
+3ed00 20 110 30
+3ed20 4 110 30
+3ed24 4 110 30
+3ed28 18 110 30
+3ed40 8 256 82
+3ed48 28 111 30
+3ed70 4 302 82
+3ed74 4 111 30
+3ed78 8 302 82
+3ed80 18 111 30
+3ed98 8 256 82
+3eda0 20 112 30
+3edc0 8 112 30
+3edc8 4 302 82
+3edcc 4 112 30
+3edd0 8 302 82
+3edd8 18 112 30
+3edf0 8 112 30
+3edf8 c 112 30
+3ee04 8 85 79
+3ee0c 8 112 30
+3ee14 10 256 82
+3ee24 14 114 30
+3ee38 4 1139 87
+3ee3c 4 277 82
+3ee40 4 114 30
+3ee44 20 114 30
+3ee64 4 114 30
+3ee68 4 114 30
+3ee6c 18 114 30
+3ee84 4 114 30
+3ee88 4 114 30
+3ee8c 8 114 30
+3ee94 c 114 30
+3eea0 8 85 79
+3eea8 8 114 30
+3eeb0 8 156 132
+3eeb8 8 256 82
+3eec0 8 54 30
+3eec8 20 115 30
+FUNC 3eee8 2fc 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::TestBody
+3eee8 4 117 30
+3eeec 8 118 30
+3eef4 c 117 30
+3ef00 4 118 30
+3ef04 4 117 30
+3ef08 4 118 30
+3ef0c 8 117 30
+3ef14 4 118 30
+3ef18 4 277 82
+3ef1c 4 82 52
+3ef20 c 1139 87
+3ef2c 8 82 52
+3ef34 4 277 82
+3ef38 4 1139 87
+3ef3c 4 119 30
+3ef40 20 119 30
+3ef60 4 119 30
+3ef64 4 119 30
+3ef68 1c 119 30
+3ef84 8 119 30
+3ef8c c 119 30
+3ef98 8 85 79
+3efa0 8 119 30
+3efa8 c 156 132
+3efb4 4 256 82
+3efb8 4 123 30
+3efbc 4 1139 87
+3efc0 4 256 82
+3efc4 8 49 16
+3efcc 4 123 30
+3efd0 4 49 16
+3efd4 4 48 29
+3efd8 4 49 16
+3efdc 4 48 29
+3efe0 8 123 30
+3efe8 4 277 82
+3efec 4 123 30
+3eff0 4 1139 87
+3eff4 4 123 30
+3eff8 20 123 30
+3f018 4 123 30
+3f01c 4 123 30
+3f020 18 123 30
+3f038 8 256 82
+3f040 2c 124 30
+3f06c 4 302 82
+3f070 4 124 30
+3f074 8 302 82
+3f07c 18 124 30
+3f094 8 256 82
+3f09c 24 125 30
+3f0c0 8 125 30
+3f0c8 4 302 82
+3f0cc 4 125 30
+3f0d0 8 302 82
+3f0d8 18 125 30
+3f0f0 8 125 30
+3f0f8 c 125 30
+3f104 8 85 79
+3f10c 8 125 30
+3f114 10 256 82
+3f124 14 127 30
+3f138 4 1139 87
+3f13c 4 277 82
+3f140 4 127 30
+3f144 20 127 30
+3f164 4 127 30
+3f168 4 127 30
+3f16c 18 127 30
+3f184 4 127 30
+3f188 4 127 30
+3f18c 8 127 30
+3f194 c 127 30
+3f1a0 8 85 79
+3f1a8 8 127 30
+3f1b0 8 156 132
+3f1b8 8 256 82
+3f1c0 8 54 30
+3f1c8 1c 128 30
+FUNC 3f1e4 2fc 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::TestBody
+3f1e4 4 130 30
+3f1e8 8 131 30
+3f1f0 c 130 30
+3f1fc 4 131 30
+3f200 4 130 30
+3f204 4 131 30
+3f208 8 130 30
+3f210 4 131 30
+3f214 4 277 82
+3f218 4 82 52
+3f21c c 1139 87
+3f228 8 82 52
+3f230 4 277 82
+3f234 4 1139 87
+3f238 4 132 30
+3f23c 20 132 30
+3f25c 4 132 30
+3f260 4 132 30
+3f264 1c 132 30
+3f280 8 132 30
+3f288 c 132 30
+3f294 8 85 79
+3f29c 8 132 30
+3f2a4 c 156 132
+3f2b0 4 256 82
+3f2b4 4 136 30
+3f2b8 4 1139 87
+3f2bc 4 256 82
+3f2c0 8 49 16
+3f2c8 4 136 30
+3f2cc 4 49 16
+3f2d0 4 48 29
+3f2d4 4 49 16
+3f2d8 4 48 29
+3f2dc 8 136 30
+3f2e4 4 277 82
+3f2e8 4 136 30
+3f2ec 4 1139 87
+3f2f0 4 136 30
+3f2f4 20 136 30
+3f314 4 136 30
+3f318 4 136 30
+3f31c 18 136 30
+3f334 8 256 82
+3f33c 2c 137 30
+3f368 4 302 82
+3f36c 4 137 30
+3f370 8 302 82
+3f378 18 137 30
+3f390 8 256 82
+3f398 24 138 30
+3f3bc 8 138 30
+3f3c4 4 302 82
+3f3c8 4 138 30
+3f3cc 8 302 82
+3f3d4 18 138 30
+3f3ec 8 138 30
+3f3f4 c 138 30
+3f400 8 85 79
+3f408 8 138 30
+3f410 10 256 82
+3f420 14 140 30
+3f434 4 1139 87
+3f438 4 277 82
+3f43c 4 140 30
+3f440 20 140 30
+3f460 4 140 30
+3f464 4 140 30
+3f468 18 140 30
+3f480 4 140 30
+3f484 4 140 30
+3f488 8 140 30
+3f490 c 140 30
+3f49c 8 85 79
+3f4a4 8 140 30
+3f4ac 8 156 132
+3f4b4 8 256 82
+3f4bc 8 54 30
+3f4c4 1c 141 30
+FUNC 3f4e0 2fc 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::TestBody
+3f4e0 4 143 30
+3f4e4 8 144 30
+3f4ec c 143 30
+3f4f8 4 144 30
+3f4fc 4 143 30
+3f500 4 144 30
+3f504 8 143 30
+3f50c 4 144 30
+3f510 4 277 82
+3f514 4 82 52
+3f518 c 1139 87
+3f524 8 82 52
+3f52c 4 277 82
+3f530 4 1139 87
+3f534 4 145 30
+3f538 20 145 30
+3f558 4 145 30
+3f55c 4 145 30
+3f560 1c 145 30
+3f57c 8 145 30
+3f584 c 145 30
+3f590 8 85 79
+3f598 8 145 30
+3f5a0 c 156 132
+3f5ac 4 256 82
+3f5b0 4 149 30
+3f5b4 4 1139 87
+3f5b8 4 256 82
+3f5bc 8 49 16
+3f5c4 4 149 30
+3f5c8 4 49 16
+3f5cc 4 48 29
+3f5d0 4 49 16
+3f5d4 4 48 29
+3f5d8 8 149 30
+3f5e0 4 277 82
+3f5e4 4 149 30
+3f5e8 4 1139 87
+3f5ec 4 149 30
+3f5f0 20 149 30
+3f610 4 149 30
+3f614 4 149 30
+3f618 18 149 30
+3f630 8 256 82
+3f638 2c 150 30
+3f664 4 302 82
+3f668 4 150 30
+3f66c 8 302 82
+3f674 18 150 30
+3f68c 8 256 82
+3f694 24 151 30
+3f6b8 8 151 30
+3f6c0 4 302 82
+3f6c4 4 151 30
+3f6c8 8 302 82
+3f6d0 18 151 30
+3f6e8 8 151 30
+3f6f0 c 151 30
+3f6fc 8 85 79
+3f704 8 151 30
+3f70c 10 256 82
+3f71c 14 153 30
+3f730 4 1139 87
+3f734 4 277 82
+3f738 4 153 30
+3f73c 20 153 30
+3f75c 4 153 30
+3f760 4 153 30
+3f764 18 153 30
+3f77c 4 153 30
+3f780 4 153 30
+3f784 8 153 30
+3f78c c 153 30
+3f798 8 85 79
+3f7a0 8 153 30
+3f7a8 8 156 132
+3f7b0 8 256 82
+3f7b8 8 54 30
+3f7c0 1c 154 30
+FUNC 3f7dc 43c 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::TestBody
+3f7dc 4 156 30
+3f7e0 8 157 30
+3f7e8 10 156 30
+3f7f8 8 157 30
+3f800 14 156 30
+3f814 4 157 30
+3f818 4 277 82
+3f81c 4 82 52
+3f820 8 1139 87
+3f828 c 82 52
+3f834 4 277 82
+3f838 4 1139 87
+3f83c 4 158 30
+3f840 20 158 30
+3f860 4 158 30
+3f864 4 158 30
+3f868 1c 158 30
+3f884 8 158 30
+3f88c c 158 30
+3f898 8 85 79
+3f8a0 8 158 30
+3f8a8 c 156 132
+3f8b4 4 256 82
+3f8b8 4 162 30
+3f8bc 4 1139 87
+3f8c0 4 256 82
+3f8c4 8 49 16
+3f8cc 4 162 30
+3f8d0 4 49 16
+3f8d4 4 48 29
+3f8d8 4 49 16
+3f8dc 4 48 29
+3f8e0 8 162 30
+3f8e8 4 277 82
+3f8ec 4 162 30
+3f8f0 4 1139 87
+3f8f4 4 162 30
+3f8f8 20 162 30
+3f918 4 162 30
+3f91c 4 162 30
+3f920 18 162 30
+3f938 8 256 82
+3f940 44 163 30
+3f984 4 302 82
+3f988 4 163 30
+3f98c 8 302 82
+3f994 18 163 30
+3f9ac 4 256 82
+3f9b0 c 164 30
+3f9bc 4 256 82
+3f9c0 24 164 30
+3f9e4 8 164 30
+3f9ec 4 302 82
+3f9f0 4 164 30
+3f9f4 8 302 82
+3f9fc 18 164 30
+3fa14 8 256 82
+3fa1c c 166 30
+3fa28 4 1139 87
+3fa2c 4 166 30
+3fa30 4 277 82
+3fa34 4 166 30
+3fa38 20 166 30
+3fa58 4 166 30
+3fa5c 4 166 30
+3fa60 18 166 30
+3fa78 8 256 82
+3fa80 20 167 30
+3faa0 4 302 82
+3faa4 4 167 30
+3faa8 8 302 82
+3fab0 18 167 30
+3fac8 8 256 82
+3fad0 18 168 30
+3fae8 8 168 30
+3faf0 4 302 82
+3faf4 4 168 30
+3faf8 8 302 82
+3fb00 18 168 30
+3fb18 8 168 30
+3fb20 c 168 30
+3fb2c 8 85 79
+3fb34 8 168 30
+3fb3c 10 256 82
+3fb4c 14 170 30
+3fb60 4 1139 87
+3fb64 4 277 82
+3fb68 4 170 30
+3fb6c 20 170 30
+3fb8c 4 170 30
+3fb90 4 170 30
+3fb94 18 170 30
+3fbac 4 170 30
+3fbb0 4 170 30
+3fbb4 8 170 30
+3fbbc c 170 30
+3fbc8 8 85 79
+3fbd0 8 170 30
+3fbd8 8 156 132
+3fbe0 8 256 82
+3fbe8 8 54 30
+3fbf0 28 171 30
+FUNC 3fc18 2fc 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::TestBody
+3fc18 4 173 30
+3fc1c 8 174 30
+3fc24 c 173 30
+3fc30 4 174 30
+3fc34 4 173 30
+3fc38 4 174 30
+3fc3c 8 173 30
+3fc44 4 174 30
+3fc48 4 277 82
+3fc4c 4 82 52
+3fc50 c 1139 87
+3fc5c 8 82 52
+3fc64 4 277 82
+3fc68 4 1139 87
+3fc6c 4 175 30
+3fc70 20 175 30
+3fc90 4 175 30
+3fc94 4 175 30
+3fc98 1c 175 30
+3fcb4 8 175 30
+3fcbc c 175 30
+3fcc8 8 85 79
+3fcd0 8 175 30
+3fcd8 c 156 132
+3fce4 4 256 82
+3fce8 4 179 30
+3fcec 4 1139 87
+3fcf0 4 256 82
+3fcf4 8 49 16
+3fcfc 4 179 30
+3fd00 4 49 16
+3fd04 4 48 29
+3fd08 4 49 16
+3fd0c 4 48 29
+3fd10 8 179 30
+3fd18 4 277 82
+3fd1c 4 179 30
+3fd20 4 1139 87
+3fd24 4 179 30
+3fd28 20 179 30
+3fd48 4 179 30
+3fd4c 4 179 30
+3fd50 18 179 30
+3fd68 8 256 82
+3fd70 2c 180 30
+3fd9c 4 302 82
+3fda0 4 180 30
+3fda4 8 302 82
+3fdac 18 180 30
+3fdc4 8 256 82
+3fdcc 24 181 30
+3fdf0 8 181 30
+3fdf8 4 302 82
+3fdfc 4 181 30
+3fe00 8 302 82
+3fe08 18 181 30
+3fe20 8 181 30
+3fe28 c 181 30
+3fe34 8 85 79
+3fe3c 8 181 30
+3fe44 10 256 82
+3fe54 14 183 30
+3fe68 4 1139 87
+3fe6c 4 277 82
+3fe70 4 183 30
+3fe74 20 183 30
+3fe94 4 183 30
+3fe98 4 183 30
+3fe9c 18 183 30
+3feb4 4 183 30
+3feb8 4 183 30
+3febc 8 183 30
+3fec4 c 183 30
+3fed0 8 85 79
+3fed8 8 183 30
+3fee0 8 156 132
+3fee8 8 256 82
+3fef0 8 54 30
+3fef8 1c 184 30
+FUNC 3ff14 3b8 0 ProcCpuInfoReaderTest_EmptyValue_Test::TestBody
+3ff14 4 186 30
+3ff18 8 187 30
+3ff20 c 186 30
+3ff2c 4 187 30
+3ff30 4 186 30
+3ff34 4 187 30
+3ff38 8 186 30
+3ff40 4 187 30
+3ff44 4 277 82
+3ff48 4 82 52
+3ff4c c 1139 87
+3ff58 8 82 52
+3ff60 4 277 82
+3ff64 4 1139 87
+3ff68 4 188 30
+3ff6c 20 188 30
+3ff8c 4 188 30
+3ff90 4 188 30
+3ff94 1c 188 30
+3ffb0 8 188 30
+3ffb8 c 188 30
+3ffc4 8 85 79
+3ffcc 8 188 30
+3ffd4 c 156 132
+3ffe0 4 256 82
+3ffe4 4 192 30
+3ffe8 4 1139 87
+3ffec 4 256 82
+3fff0 8 49 16
+3fff8 4 192 30
+3fffc 4 49 16
+40000 4 48 29
+40004 4 49 16
+40008 4 48 29
+4000c 8 192 30
+40014 4 277 82
+40018 4 192 30
+4001c 4 1139 87
+40020 4 192 30
+40024 20 192 30
+40044 4 192 30
+40048 4 192 30
+4004c 4 192 30
+40050 1c 192 30
+4006c 8 192 30
+40074 c 192 30
+40080 8 85 79
+40088 8 192 30
+40090 8 156 132
+40098 10 256 82
+400a8 2c 193 30
+400d4 4 302 82
+400d8 4 193 30
+400dc 8 302 82
+400e4 18 193 30
+400fc 4 256 82
+40100 4 117 29
+40104 4 256 82
+40108 4 117 29
+4010c 4 195 30
+40110 4 117 29
+40114 20 195 30
+40134 8 195 30
+4013c 4 302 82
+40140 4 195 30
+40144 8 302 82
+4014c 18 195 30
+40164 8 256 82
+4016c 4 196 30
+40170 4 1481 82
+40174 4 1482 82
+40178 4 1481 82
+4017c 8 1482 82
+40184 1c 1487 82
+401a0 c 196 30
+401ac 4 302 82
+401b0 4 196 30
+401b4 8 302 82
+401bc 18 196 30
+401d4 8 196 30
+401dc c 196 30
+401e8 8 85 79
+401f0 8 196 30
+401f8 10 256 82
+40208 8 198 30
+40210 4 1139 87
+40214 c 198 30
+40220 4 277 82
+40224 4 1139 87
+40228 4 198 30
+4022c 20 198 30
+4024c 4 198 30
+40250 4 198 30
+40254 4 198 30
+40258 1c 198 30
+40274 8 198 30
+4027c c 198 30
+40288 8 85 79
+40290 8 198 30
+40298 8 156 132
+402a0 8 256 82
+402a8 8 54 30
+402b0 1c 199 30
+FUNC 402cc 3c0 0 ProcCpuInfoReaderTest_OneLine_Test::TestBody
+402cc 4 85 30
+402d0 8 86 30
+402d8 c 85 30
+402e4 4 86 30
+402e8 4 85 30
+402ec 4 86 30
+402f0 8 85 30
+402f8 4 86 30
+402fc 4 277 82
+40300 4 82 52
+40304 c 1139 87
+40310 8 82 52
+40318 4 277 82
+4031c 4 1139 87
+40320 4 87 30
+40324 20 87 30
+40344 4 87 30
+40348 4 87 30
+4034c 1c 87 30
+40368 8 87 30
+40370 c 87 30
+4037c 8 85 79
+40384 8 87 30
+4038c c 156 132
+40398 4 256 82
+4039c 4 92 30
+403a0 4 1139 87
+403a4 4 256 82
+403a8 8 49 16
+403b0 4 92 30
+403b4 4 49 16
+403b8 4 48 29
+403bc 4 49 16
+403c0 4 48 29
+403c4 8 92 30
+403cc 4 277 82
+403d0 4 92 30
+403d4 4 1139 87
+403d8 4 92 30
+403dc 20 92 30
+403fc 4 92 30
+40400 4 92 30
+40404 4 92 30
+40408 1c 92 30
+40424 8 92 30
+4042c c 92 30
+40438 8 85 79
+40440 8 92 30
+40448 8 156 132
+40450 10 256 82
+40460 2c 93 30
+4048c 4 302 82
+40490 4 93 30
+40494 8 302 82
+4049c 18 93 30
+404b4 4 256 82
+404b8 4 117 29
+404bc 4 256 82
+404c0 4 117 29
+404c4 4 94 30
+404c8 4 117 29
+404cc 20 94 30
+404ec 8 94 30
+404f4 4 302 82
+404f8 4 94 30
+404fc 8 302 82
+40504 18 94 30
+4051c 8 256 82
+40524 8 95 30
+4052c 4 1481 82
+40530 4 1482 82
+40534 8 1481 82
+4053c 8 1482 82
+40544 1c 1487 82
+40560 c 95 30
+4056c 4 302 82
+40570 4 95 30
+40574 8 302 82
+4057c 18 95 30
+40594 8 95 30
+4059c c 95 30
+405a8 8 85 79
+405b0 8 95 30
+405b8 10 256 82
+405c8 8 97 30
+405d0 4 1139 87
+405d4 c 97 30
+405e0 4 277 82
+405e4 4 1139 87
+405e8 4 97 30
+405ec 20 97 30
+4060c 4 97 30
+40610 4 97 30
+40614 4 97 30
+40618 1c 97 30
+40634 8 97 30
+4063c c 97 30
+40648 8 85 79
+40650 8 97 30
+40658 8 156 132
+40660 8 256 82
+40668 8 54 30
+40670 1c 98 30
+FUNC 4068c 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::~TestFactoryImpl
+4068c 4 484 85
+FUNC 40690 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::~TestFactoryImpl
+40690 4 484 85
+FUNC 40694 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::~TestFactoryImpl
+40694 4 484 85
+FUNC 40698 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::~TestFactoryImpl
+40698 4 484 85
+FUNC 4069c 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::~TestFactoryImpl
+4069c 4 484 85
+FUNC 406a0 4 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::~TestFactoryImpl
+406a0 4 484 85
+FUNC 406a4 14 0 ElfCoreDumpTest_ValidCoreFile_Test::~ElfCoreDumpTest_ValidCoreFile_Test
+406a4 14 130 39
+FUNC 406b8 24 0 ElfCoreDumpTest_ValidCoreFile_Test::~ElfCoreDumpTest_ValidCoreFile_Test
+406b8 c 130 39
+406c4 8 130 39
+406cc 4 130 39
+406d0 8 130 39
+406d8 4 130 39
+FUNC 406dc 14 0 ElfCoreDumpTest_TestElfHeader_Test::~ElfCoreDumpTest_TestElfHeader_Test
+406dc 14 62 39
+FUNC 406f0 24 0 ElfCoreDumpTest_TestElfHeader_Test::~ElfCoreDumpTest_TestElfHeader_Test
+406f0 c 62 39
+406fc 8 62 39
+40704 4 62 39
+40708 8 62 39
+40710 4 62 39
+FUNC 40714 14 0 ElfCoreDumpTest_DefaultConstructor_Test::~ElfCoreDumpTest_DefaultConstructor_Test
+40714 14 52 39
+FUNC 40728 24 0 ElfCoreDumpTest_DefaultConstructor_Test::~ElfCoreDumpTest_DefaultConstructor_Test
+40728 c 52 39
+40734 8 52 39
+4073c 4 52 39
+40740 8 52 39
+40748 4 52 39
+FUNC 4074c 3c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::CreateTest
+4074c 10 486 85
+4075c 8 486 85
+40764 8 62 39
+4076c 4 486 85
+40770 c 62 39
+4077c c 486 85
+FUNC 40788 3c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::CreateTest
+40788 10 486 85
+40798 8 486 85
+407a0 8 52 39
+407a8 4 486 85
+407ac c 52 39
+407b8 c 486 85
+FUNC 407c4 3c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::CreateTest
+407c4 10 486 85
+407d4 8 486 85
+407dc 8 130 39
+407e4 4 486 85
+407e8 c 130 39
+407f4 c 486 85
+FUNC 40800 50 0 testing::internal::DefaultPrintTo<const elf64_hdr>
+40800 14 307 80
+40814 4 310 80
+40818 4 334 80
+4081c 4 333 122
+40820 4 334 80
+40824 8 333 122
+4082c 10 318 80
+4083c 8 291 121
+40844 8 334 80
+4084c 4 291 121
+FUNC 40850 50 0 testing::internal::DefaultPrintTo<const elf64_phdr>
+40850 14 307 80
+40864 4 310 80
+40868 4 334 80
+4086c 4 333 122
+40870 4 334 80
+40874 8 333 122
+4087c 10 318 80
+4088c 8 291 121
+40894 8 334 80
+4089c 4 291 121
+FUNC 408a0 e8 0 testing::internal::CmpHelperEQFailure<const elf64_hdr*, const elf64_hdr*>
+408a0 c 1464 82
+408ac 4 884 80
+408b0 10 1464 82
+408c0 8 884 80
+408c8 4 1464 82
+408cc 4 75 127
+408d0 4 1464 82
+408d4 8 1464 82
+408dc 4 884 80
+408e0 c 380 80
+408ec 4 75 127
+408f0 8 380 80
+408f8 c 75 127
+40904 8 886 80
+4090c c 884 80
+40918 8 380 80
+40920 4 75 127
+40924 8 380 80
+4092c c 75 127
+40938 8 886 80
+40940 1c 1471 82
+4095c 10 156 132
+4096c 1c 1472 82
+FUNC 40988 e8 0 testing::internal::CmpHelperEQFailure<const elf64_phdr*, const elf64_phdr*>
+40988 c 1464 82
+40994 4 884 80
+40998 10 1464 82
+409a8 8 884 80
+409b0 4 1464 82
+409b4 4 75 127
+409b8 4 1464 82
+409bc 8 1464 82
+409c4 4 884 80
+409c8 c 380 80
+409d4 4 75 127
+409d8 8 380 80
+409e0 c 75 127
+409ec 8 886 80
+409f4 c 884 80
+40a00 8 380 80
+40a08 4 75 127
+40a0c 8 380 80
+40a14 c 75 127
+40a20 8 886 80
+40a28 1c 1471 82
+40a44 10 156 132
+40a54 1c 1472 82
+FUNC 40a70 50 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::_M_erase
+40a70 18 655 135
+40a88 4 657 135
+40a8c c 658 135
+40a98 4 659 135
+40a9c 14 161 101
+40ab0 10 664 135
+FUNC 40ac0 3c 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::clear
+40ac0 8 530 136
+40ac8 4 531 136
+40acc 4 530 136
+40ad0 4 530 136
+40ad4 4 531 136
+40ad8 8 532 136
+40ae0 4 533 136
+40ae4 4 534 136
+40ae8 4 535 136
+40aec 4 536 136
+40af0 c 538 136
+FUNC 40afc 11c 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::_M_insert
+40afc 4 350 135
+40b00 4 358 135
+40b04 10 350 135
+40b14 14 350 135
+40b28 4 358 135
+40b2c 8 306 101
+40b34 c 307 101
+40b40 4 126 103
+40b44 4 321 136
+40b48 4 322 136
+40b4c 4 360 135
+40b50 4 361 135
+40b54 8 362 135
+40b5c 4 364 135
+40b60 4 364 135
+40b64 10 364 135
+40b74 8 306 101
+40b7c c 307 101
+40b88 4 126 103
+40b8c 4 321 136
+40b90 4 322 136
+40b94 4 368 135
+40b98 c 369 135
+40ba4 8 370 135
+40bac 8 306 101
+40bb4 c 307 101
+40bc0 4 126 103
+40bc4 4 321 136
+40bc8 4 322 136
+40bcc 4 374 135
+40bd0 c 375 135
+40bdc 4 376 135
+40be0 8 379 135
+40be8 4 378 135
+40bec 4 379 135
+40bf0 4 380 135
+40bf4 4 382 135
+40bf8 8 380 135
+40c00 4 142 136
+40c04 14 382 135
+FUNC 40c18 118 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::insert_unique
+40c18 8 405 135
+40c20 4 408 135
+40c24 8 405 135
+40c2c 4 406 135
+40c30 4 405 135
+40c34 4 407 135
+40c38 4 409 135
+40c3c 10 412 135
+40c4c c 412 135
+40c58 18 412 135
+40c70 4 415 135
+40c74 c 416 135
+40c80 c 417 135
+40c8c 8 279 135
+40c94 10 279 135
+40ca4 8 280 135
+40cac 8 281 135
+40cb4 10 99 136
+40cc4 4 285 135
+40cc8 c 286 135
+40cd4 c 288 135
+40ce0 4 187 136
+40ce4 10 421 135
+40cf4 10 422 135
+40d04 8 142 136
+40d0c c 62 124
+40d18 4 142 136
+40d1c 4 62 124
+40d20 10 425 135
+FUNC 40d30 3c8 0 ElfCoreDumpTest_DefaultConstructor_Test::TestBody
+40d30 c 52 39
+40d3c 4 53 39
+40d40 4 52 39
+40d44 8 53 39
+40d4c 4 52 39
+40d50 4 53 39
+40d54 4 277 82
+40d58 14 54 39
+40d6c 4 1139 87
+40d70 4 277 82
+40d74 4 54 39
+40d78 20 54 39
+40d98 4 54 39
+40d9c 4 54 39
+40da0 1c 54 39
+40dbc 8 54 39
+40dc4 c 54 39
+40dd0 8 85 79
+40dd8 8 54 39
+40de0 8 156 132
+40de8 8 256 82
+40df0 8 55 39
+40df8 8 1571 82
+40e00 4 1482 82
+40e04 4 1481 82
+40e08 8 1482 82
+40e10 1c 1487 82
+40e2c 8 55 39
+40e34 c 302 82
+40e40 18 55 39
+40e58 8 55 39
+40e60 c 55 39
+40e6c 8 85 79
+40e74 8 55 39
+40e7c 8 256 82
+40e84 10 56 39
+40e94 20 1552 82
+40eb4 8 56 39
+40ebc c 302 82
+40ec8 18 56 39
+40ee0 8 56 39
+40ee8 c 56 39
+40ef4 8 85 79
+40efc 8 56 39
+40f04 8 256 82
+40f0c c 57 39
+40f18 8 1571 82
+40f20 4 1482 82
+40f24 4 1481 82
+40f28 8 1482 82
+40f30 1c 1487 82
+40f4c 8 57 39
+40f54 c 302 82
+40f60 18 57 39
+40f78 8 57 39
+40f80 c 57 39
+40f8c 8 85 79
+40f94 8 57 39
+40f9c 8 256 82
+40fa4 c 58 39
+40fb0 8 1571 82
+40fb8 4 1482 82
+40fbc 4 1481 82
+40fc0 8 1482 82
+40fc8 1c 1487 82
+40fe4 8 58 39
+40fec 4 302 82
+40ff0 4 58 39
+40ff4 8 302 82
+40ffc 18 58 39
+41014 8 58 39
+4101c c 58 39
+41028 8 85 79
+41030 8 58 39
+41038 8 256 82
+41040 c 59 39
+4104c c 59 39
+41058 4 59 39
+4105c 4 1139 87
+41060 4 277 82
+41064 4 59 39
+41068 20 59 39
+41088 4 59 39
+4108c 4 59 39
+41090 4 59 39
+41094 1c 59 39
+410b0 8 59 39
+410b8 c 59 39
+410c4 8 85 79
+410cc 8 59 39
+410d4 8 156 132
+410dc 8 256 82
+410e4 14 60 39
+FUNC 410f8 1258 0 ElfCoreDumpTest_TestElfHeader_Test::TestBody
+410f8 c 62 39
+41104 8 64 39
+4110c 14 62 39
+41120 4 66 39
+41124 c 64 39
+41130 4 69 39
+41134 4 70 39
+41138 c 277 82
+41144 14 64 39
+41158 8 66 39
+41160 20 67 39
+41180 8 69 39
+41188 8 70 39
+41190 10 72 39
+411a0 4 1139 87
+411a4 4 72 39
+411a8 4 277 82
+411ac 4 72 39
+411b0 24 72 39
+411d4 18 72 39
+411ec 8 256 82
+411f4 10 73 39
+41204 4 1139 87
+41208 4 73 39
+4120c 4 277 82
+41210 4 73 39
+41214 24 73 39
+41238 1c 73 39
+41254 8 73 39
+4125c c 73 39
+41268 8 85 79
+41270 8 73 39
+41278 8 156 132
+41280 10 256 82
+41290 c 74 39
+4129c 10 75 39
+412ac 4 1139 87
+412b0 4 277 82
+412b4 4 75 39
+412b8 24 75 39
+412dc 1c 75 39
+412f8 8 75 39
+41300 c 75 39
+4130c 8 85 79
+41314 8 75 39
+4131c 8 156 132
+41324 8 256 82
+4132c 8 76 39
+41334 c 1571 82
+41340 4 1482 82
+41344 4 1481 82
+41348 8 1482 82
+41350 18 1487 82
+41368 8 76 39
+41370 c 302 82
+4137c 18 76 39
+41394 8 76 39
+4139c c 76 39
+413a8 8 85 79
+413b0 8 76 39
+413b8 8 256 82
+413c0 10 77 39
+413d0 20 1552 82
+413f0 8 77 39
+413f8 c 302 82
+41404 18 77 39
+4141c 8 77 39
+41424 c 77 39
+41430 8 85 79
+41438 8 77 39
+41440 8 256 82
+41448 c 78 39
+41454 8 1571 82
+4145c 4 1482 82
+41460 4 1481 82
+41464 8 1482 82
+4146c 1c 1487 82
+41488 8 78 39
+41490 c 302 82
+4149c 18 78 39
+414b4 8 78 39
+414bc c 78 39
+414c8 8 85 79
+414d0 8 78 39
+414d8 8 256 82
+414e0 c 79 39
+414ec 8 1571 82
+414f4 4 1482 82
+414f8 4 1481 82
+414fc 8 1482 82
+41504 1c 1487 82
+41520 8 79 39
+41528 4 302 82
+4152c 4 79 39
+41530 8 302 82
+41538 18 79 39
+41550 8 79 39
+41558 c 79 39
+41564 8 85 79
+4156c 8 79 39
+41574 8 256 82
+4157c 10 80 39
+4158c c 80 39
+41598 4 80 39
+4159c 4 1139 87
+415a0 4 277 82
+415a4 4 80 39
+415a8 20 80 39
+415c8 4 80 39
+415cc 4 80 39
+415d0 4 80 39
+415d4 1c 80 39
+415f0 8 80 39
+415f8 c 80 39
+41604 8 85 79
+4160c 8 80 39
+41614 8 156 132
+4161c c 256 82
+41628 10 82 39
+41638 4 1139 87
+4163c 4 82 39
+41640 4 277 82
+41644 4 82 39
+41648 20 82 39
+41668 4 82 39
+4166c 4 82 39
+41670 18 82 39
+41688 8 256 82
+41690 10 83 39
+416a0 4 1139 87
+416a4 4 83 39
+416a8 4 277 82
+416ac 4 83 39
+416b0 20 83 39
+416d0 4 83 39
+416d4 4 83 39
+416d8 18 83 39
+416f0 8 256 82
+416f8 c 84 39
+41704 10 85 39
+41714 4 1139 87
+41718 4 277 82
+4171c 4 85 39
+41720 20 85 39
+41740 4 85 39
+41744 4 85 39
+41748 4 85 39
+4174c 1c 85 39
+41768 8 85 39
+41770 c 85 39
+4177c 8 85 79
+41784 8 85 39
+4178c 8 156 132
+41794 c 256 82
+417a0 4 87 39
+417a4 4 88 39
+417a8 4 87 39
+417ac c 88 39
+417b8 4 1139 87
+417bc 4 88 39
+417c0 4 277 82
+417c4 4 88 39
+417c8 20 88 39
+417e8 4 88 39
+417ec 4 88 39
+417f0 18 88 39
+41808 8 256 82
+41810 10 89 39
+41820 4 1139 87
+41824 4 89 39
+41828 4 277 82
+4182c 4 89 39
+41830 20 89 39
+41850 4 89 39
+41854 4 89 39
+41858 18 89 39
+41870 8 256 82
+41878 c 90 39
+41884 10 91 39
+41894 4 1139 87
+41898 4 277 82
+4189c 4 91 39
+418a0 20 91 39
+418c0 4 91 39
+418c4 4 91 39
+418c8 4 91 39
+418cc 1c 91 39
+418e8 8 91 39
+418f0 c 91 39
+418fc 8 85 79
+41904 8 91 39
+4190c 8 156 132
+41914 c 256 82
+41920 4 93 39
+41924 4 94 39
+41928 4 93 39
+4192c c 94 39
+41938 4 1139 87
+4193c 4 94 39
+41940 4 277 82
+41944 4 94 39
+41948 20 94 39
+41968 4 94 39
+4196c 4 94 39
+41970 18 94 39
+41988 8 256 82
+41990 10 95 39
+419a0 4 1139 87
+419a4 4 95 39
+419a8 4 277 82
+419ac 4 95 39
+419b0 20 95 39
+419d0 4 95 39
+419d4 4 95 39
+419d8 18 95 39
+419f0 8 256 82
+419f8 c 96 39
+41a04 10 97 39
+41a14 4 1139 87
+41a18 4 277 82
+41a1c 4 97 39
+41a20 20 97 39
+41a40 4 97 39
+41a44 4 97 39
+41a48 4 97 39
+41a4c 1c 97 39
+41a68 8 97 39
+41a70 c 97 39
+41a7c 8 85 79
+41a84 8 97 39
+41a8c 8 156 132
+41a94 c 256 82
+41aa0 4 99 39
+41aa4 4 100 39
+41aa8 4 99 39
+41aac c 100 39
+41ab8 4 1139 87
+41abc 4 100 39
+41ac0 4 277 82
+41ac4 4 100 39
+41ac8 20 100 39
+41ae8 4 100 39
+41aec 4 100 39
+41af0 18 100 39
+41b08 8 256 82
+41b10 10 101 39
+41b20 4 1139 87
+41b24 4 101 39
+41b28 4 277 82
+41b2c 4 101 39
+41b30 20 101 39
+41b50 4 101 39
+41b54 4 101 39
+41b58 18 101 39
+41b70 8 256 82
+41b78 c 102 39
+41b84 10 103 39
+41b94 4 1139 87
+41b98 4 277 82
+41b9c 4 103 39
+41ba0 20 103 39
+41bc0 4 103 39
+41bc4 4 103 39
+41bc8 4 103 39
+41bcc 1c 103 39
+41be8 8 103 39
+41bf0 c 103 39
+41bfc 8 85 79
+41c04 8 103 39
+41c0c 8 156 132
+41c14 c 256 82
+41c20 4 105 39
+41c24 4 106 39
+41c28 4 105 39
+41c2c c 106 39
+41c38 4 1139 87
+41c3c 4 106 39
+41c40 4 277 82
+41c44 4 106 39
+41c48 20 106 39
+41c68 4 106 39
+41c6c 4 106 39
+41c70 18 106 39
+41c88 8 256 82
+41c90 10 107 39
+41ca0 4 1139 87
+41ca4 4 107 39
+41ca8 4 277 82
+41cac 4 107 39
+41cb0 20 107 39
+41cd0 4 107 39
+41cd4 4 107 39
+41cd8 18 107 39
+41cf0 8 256 82
+41cf8 c 108 39
+41d04 10 109 39
+41d14 4 1139 87
+41d18 4 277 82
+41d1c 4 109 39
+41d20 20 109 39
+41d40 4 109 39
+41d44 4 109 39
+41d48 4 109 39
+41d4c 1c 109 39
+41d68 8 109 39
+41d70 c 109 39
+41d7c 8 85 79
+41d84 8 109 39
+41d8c 8 156 132
+41d94 c 256 82
+41da0 4 111 39
+41da4 4 112 39
+41da8 4 111 39
+41dac c 112 39
+41db8 4 1139 87
+41dbc 4 112 39
+41dc0 4 277 82
+41dc4 4 112 39
+41dc8 20 112 39
+41de8 4 112 39
+41dec 4 112 39
+41df0 18 112 39
+41e08 8 256 82
+41e10 10 113 39
+41e20 4 1139 87
+41e24 4 113 39
+41e28 4 277 82
+41e2c 4 113 39
+41e30 20 113 39
+41e50 4 113 39
+41e54 4 113 39
+41e58 18 113 39
+41e70 8 256 82
+41e78 c 114 39
+41e84 10 115 39
+41e94 4 1139 87
+41e98 4 277 82
+41e9c 4 115 39
+41ea0 20 115 39
+41ec0 4 115 39
+41ec4 4 115 39
+41ec8 4 115 39
+41ecc 1c 115 39
+41ee8 8 115 39
+41ef0 c 115 39
+41efc 8 85 79
+41f04 8 115 39
+41f0c 8 156 132
+41f14 4 256 82
+41f18 4 117 39
+41f1c 8 256 82
+41f24 4 117 39
+41f28 10 118 39
+41f38 4 1139 87
+41f3c 4 118 39
+41f40 4 277 82
+41f44 4 118 39
+41f48 20 118 39
+41f68 4 118 39
+41f6c 4 118 39
+41f70 18 118 39
+41f88 4 118 39
+41f8c 4 118 39
+41f90 8 118 39
+41f98 c 118 39
+41fa4 8 85 79
+41fac 8 118 39
+41fb4 8 156 132
+41fbc 8 256 82
+41fc4 10 119 39
+41fd4 4 1139 87
+41fd8 4 119 39
+41fdc 4 277 82
+41fe0 4 119 39
+41fe4 24 119 39
+42008 4 119 39
+4200c 4 119 39
+42010 4 119 39
+42014 1c 119 39
+42030 8 119 39
+42038 c 119 39
+42044 8 85 79
+4204c 8 119 39
+42054 8 156 132
+4205c c 256 82
+42068 4 120 39
+4206c 4 256 82
+42070 c 120 39
+4207c 10 121 39
+4208c 4 1139 87
+42090 4 277 82
+42094 4 121 39
+42098 24 121 39
+420bc 4 121 39
+420c0 4 121 39
+420c4 4 121 39
+420c8 1c 121 39
+420e4 8 121 39
+420ec c 121 39
+420f8 8 85 79
+42100 8 121 39
+42108 8 156 132
+42110 10 256 82
+42120 4 123 39
+42124 4 124 39
+42128 4 123 39
+4212c c 124 39
+42138 4 1139 87
+4213c 4 124 39
+42140 4 277 82
+42144 4 124 39
+42148 24 124 39
+4216c 4 124 39
+42170 4 124 39
+42174 18 124 39
+4218c 4 256 82
+42190 4 125 39
+42194 4 256 82
+42198 10 125 39
+421a8 4 1139 87
+421ac 4 125 39
+421b0 4 277 82
+421b4 4 125 39
+421b8 24 125 39
+421dc 4 125 39
+421e0 4 125 39
+421e4 18 125 39
+421fc 4 125 39
+42200 4 125 39
+42204 8 125 39
+4220c c 125 39
+42218 8 85 79
+42220 8 125 39
+42228 8 156 132
+42230 10 256 82
+42240 8 156 132
+42248 c 61 63
+42254 8 156 132
+4225c 8 256 82
+42264 c 126 39
+42270 8 127 39
+42278 4 1139 87
+4227c 4 127 39
+42280 4 277 82
+42284 4 127 39
+42288 24 127 39
+422ac 4 127 39
+422b0 4 127 39
+422b4 4 127 39
+422b8 1c 127 39
+422d4 8 127 39
+422dc c 127 39
+422e8 8 85 79
+422f0 8 127 39
+422f8 8 156 132
+42300 4 256 82
+42304 4 61 63
+42308 4 256 82
+4230c 8 69 39
+42314 8 156 132
+4231c c 61 63
+42328 8 156 132
+42330 20 128 39
+FUNC 42350 b1c 0 ElfCoreDumpTest_ValidCoreFile_Test::TestBody
+42350 14 130 39
+42364 4 131 39
+42368 4 130 39
+4236c 4 131 39
+42370 18 130 39
+42388 4 131 39
+4238c 10 132 39
+4239c 18 134 39
+423b4 4 135 39
+423b8 8 138 39
+423c0 4 140 39
+423c4 4 141 39
+423c8 4 138 39
+423cc 4 140 39
+423d0 4 141 39
+423d4 4 138 39
+423d8 4 140 39
+423dc 4 141 39
+423e0 4 140 39
+423e4 10 277 82
+423f4 4 141 39
+423f8 4 1139 87
+423fc 4 141 39
+42400 4 277 82
+42404 8 141 39
+4240c 20 141 39
+4242c 4 141 39
+42430 4 141 39
+42434 1c 141 39
+42450 8 141 39
+42458 c 141 39
+42464 8 85 79
+4246c 8 141 39
+42474 8 156 132
+4247c 10 256 82
+4248c 4 145 39
+42490 4 256 82
+42494 c 143 39
+424a0 4 481 101
+424a4 8 143 39
+424ac 4 263 136
+424b0 4 143 39
+424b4 4 266 136
+424b8 4 267 136
+424bc 4 391 136
+424c0 8 146 39
+424c8 4 145 39
+424cc 8 146 39
+424d4 10 229 142
+424e4 8 145 39
+424ec c 151 39
+424f8 10 151 39
+42508 8 156 132
+42510 4 151 39
+42514 18 153 39
+4252c 4 154 39
+42530 4 158 39
+42534 4 277 82
+42538 8 159 39
+42540 8 158 39
+42548 c 159 39
+42554 10 159 39
+42564 4 1139 87
+42568 4 277 82
+4256c 8 156 132
+42574 8 159 39
+4257c 20 159 39
+4259c 4 159 39
+425a0 4 159 39
+425a4 1c 159 39
+425c0 8 159 39
+425c8 c 159 39
+425d4 8 85 79
+425dc 8 159 39
+425e4 8 156 132
+425ec 10 256 82
+425fc 4 162 39
+42600 4 256 82
+42604 8 162 39
+4260c c 163 39
+42618 8 164 39
+42620 4 1139 87
+42624 4 164 39
+42628 4 277 82
+4262c 4 164 39
+42630 20 164 39
+42650 4 164 39
+42654 4 164 39
+42658 1c 164 39
+42674 8 164 39
+4267c c 164 39
+42688 8 85 79
+42690 8 164 39
+42698 8 156 132
+426a0 4 256 82
+426a4 4 188 39
+426a8 4 201 39
+426ac 4 256 82
+426b0 4 481 101
+426b4 4 187 39
+426b8 4 263 136
+426bc 4 266 136
+426c0 4 187 39
+426c4 4 267 136
+426c8 4 197 39
+426cc 4 187 39
+426d0 4 188 39
+426d4 4 277 82
+426d8 4 391 136
+426dc 8 197 39
+426e4 c 201 39
+426f0 8 256 82
+426f8 10 198 39
+42708 c 199 39
+42714 8 200 39
+4271c 4 1139 87
+42720 4 201 39
+42724 8 200 39
+4272c 4 201 39
+42730 4 277 82
+42734 4 201 39
+42738 1c 201 39
+42754 4 201 39
+42758 4 201 39
+4275c 1c 201 39
+42778 8 201 39
+42780 c 201 39
+4278c 8 85 79
+42794 8 201 39
+4279c 8 156 132
+427a4 8 256 82
+427ac 4 1139 87
+427b0 8 202 39
+427b8 4 277 82
+427bc 4 202 39
+427c0 20 202 39
+427e0 4 202 39
+427e4 4 202 39
+427e8 1c 202 39
+42804 8 202 39
+4280c c 202 39
+42818 8 85 79
+42820 8 202 39
+42828 8 156 132
+42830 8 256 82
+42838 1c 204 39
+42854 4 206 39
+42858 8 1139 87
+42860 8 206 39
+42868 4 277 82
+4286c 4 206 39
+42870 24 206 39
+42894 1c 206 39
+428b0 8 206 39
+428b8 c 206 39
+428c4 8 85 79
+428cc 8 206 39
+428d4 8 156 132
+428dc 8 256 82
+428e4 8 207 39
+428ec 4 1512 82
+428f0 4 207 39
+428f4 1c 1512 82
+42910 8 207 39
+42918 c 302 82
+42924 18 207 39
+4293c 8 207 39
+42944 c 207 39
+42950 8 85 79
+42958 8 207 39
+42960 8 256 82
+42968 14 208 39
+4297c 4 209 39
+42980 4 212 39
+42984 8 1139 87
+4298c 8 212 39
+42994 4 277 82
+42998 4 212 39
+4299c 28 212 39
+429c4 20 212 39
+429e4 8 212 39
+429ec c 212 39
+429f8 8 85 79
+42a00 8 212 39
+42a08 8 156 132
+42a10 8 256 82
+42a18 8 213 39
+42a20 4 1512 82
+42a24 4 213 39
+42a28 1c 1512 82
+42a44 8 213 39
+42a4c c 302 82
+42a58 18 213 39
+42a70 8 213 39
+42a78 c 213 39
+42a84 8 85 79
+42a8c 8 213 39
+42a94 8 256 82
+42a9c 8 91 55
+42aa4 4 229 142
+42aa8 4 91 55
+42aac 4 229 142
+42ab0 4 215 39
+42ab4 c 229 142
+42ac0 c 216 39
+42acc 1c 1512 82
+42ae8 8 217 39
+42af0 c 302 82
+42afc 18 217 39
+42b14 8 217 39
+42b1c c 217 39
+42b28 8 85 79
+42b30 8 217 39
+42b38 8 256 82
+42b40 20 1512 82
+42b60 8 218 39
+42b68 c 302 82
+42b74 18 218 39
+42b8c 8 218 39
+42b94 c 218 39
+42ba0 8 85 79
+42ba8 8 218 39
+42bb0 8 256 82
+42bb8 c 220 39
+42bc4 10 244 39
+42bd4 18 10 125
+42bec 8 555 100
+42bf4 10 556 100
+42c04 8 297 135
+42c0c 10 94 136
+42c1c 4 301 135
+42c20 c 302 135
+42c2c c 304 135
+42c38 c 309 135
+42c44 8 297 135
+42c4c 10 94 136
+42c5c 4 301 135
+42c60 c 302 135
+42c6c c 304 135
+42c78 c 309 135
+42c84 8 177 136
+42c8c 4 10 125
+42c90 8 277 82
+42c98 4 1139 87
+42c9c 4 247 39
+42ca0 20 247 39
+42cc0 4 247 39
+42cc4 4 247 39
+42cc8 4 247 39
+42ccc 1c 247 39
+42ce8 8 247 39
+42cf0 c 247 39
+42cfc 8 85 79
+42d04 8 247 39
+42d0c 8 156 132
+42d14 4 256 82
+42d18 4 248 39
+42d1c 4 256 82
+42d20 4 248 39
+42d24 20 1512 82
+42d44 8 248 39
+42d4c 4 302 82
+42d50 4 248 39
+42d54 8 302 82
+42d5c 18 248 39
+42d74 8 248 39
+42d7c c 248 39
+42d88 8 85 79
+42d90 8 248 39
+42d98 8 256 82
+42da0 20 1512 82
+42dc0 8 249 39
+42dc8 4 302 82
+42dcc 4 249 39
+42dd0 8 302 82
+42dd8 18 249 39
+42df0 8 249 39
+42df8 c 249 39
+42e04 8 85 79
+42e0c 8 249 39
+42e14 8 256 82
+42e1c 8 414 136
+42e24 8 158 39
+42e2c 8 414 136
+42e34 8 135 39
+42e3c 30 256 39
+FUNC 42e6c 4 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e6c 4 484 85
+FUNC 42e70 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e70 4 484 85
+FUNC 42e74 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e74 4 484 85
+FUNC 42e78 4 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e78 4 484 85
+FUNC 42e7c 4 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e7c 4 484 85
+FUNC 42e80 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e80 4 484 85
+FUNC 42e84 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e84 4 484 85
+FUNC 42e88 4 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e88 4 484 85
+FUNC 42e8c 4 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e8c 4 484 85
+FUNC 42e90 4 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e90 4 484 85
+FUNC 42e94 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e94 4 484 85
+FUNC 42e98 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42e98 4 484 85
+FUNC 42e9c 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42e9c 4 484 85
+FUNC 42ea0 4 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42ea0 4 484 85
+FUNC 42ea4 4 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+42ea4 4 484 85
+FUNC 42ea8 4 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+42ea8 4 484 85
+FUNC 42eac 48 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::CreateTest
+42eac 10 486 85
+42ebc 8 486 85
+42ec4 4 107 43
+42ec8 4 127 43
+42ecc 8 67 139
+42ed4 4 481 101
+42ed8 c 127 43
+42ee4 10 486 85
+FUNC 42ef4 48 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::CreateTest
+42ef4 10 486 85
+42f04 8 486 85
+42f0c 4 107 43
+42f10 4 183 43
+42f14 8 67 139
+42f1c 4 481 101
+42f20 c 183 43
+42f2c 10 486 85
+FUNC 42f3c 48 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::CreateTest
+42f3c 10 486 85
+42f4c 8 486 85
+42f54 4 107 43
+42f58 4 151 43
+42f5c 8 67 139
+42f64 4 481 101
+42f68 c 151 43
+42f74 10 486 85
+FUNC 42f84 48 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::CreateTest
+42f84 10 486 85
+42f94 8 486 85
+42f9c 4 107 43
+42fa0 4 220 43
+42fa4 8 67 139
+42fac 4 481 101
+42fb0 c 220 43
+42fbc 10 486 85
+FUNC 42fcc 48 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::CreateTest
+42fcc 10 486 85
+42fdc 8 486 85
+42fe4 4 107 43
+42fe8 4 127 43
+42fec 8 67 139
+42ff4 4 481 101
+42ff8 c 127 43
+43004 10 486 85
+FUNC 43014 48 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::CreateTest
+43014 10 486 85
+43024 8 486 85
+4302c 4 107 43
+43030 4 220 43
+43034 8 67 139
+4303c 4 481 101
+43040 c 220 43
+4304c 10 486 85
+FUNC 4305c 48 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::CreateTest
+4305c 10 486 85
+4306c 8 486 85
+43074 4 107 43
+43078 4 151 43
+4307c 8 67 139
+43084 4 481 101
+43088 c 151 43
+43094 10 486 85
+FUNC 430a4 48 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::CreateTest
+430a4 10 486 85
+430b4 8 486 85
+430bc 4 107 43
+430c0 4 183 43
+430c4 8 67 139
+430cc 4 481 101
+430d0 c 183 43
+430dc 10 486 85
+FUNC 430ec 38 0 std::priv::__copy_trivial
+430ec 14 222 100
+43100 8 224 100
+43108 c 224 100
+43114 4 224 100
+43118 c 225 100
+FUNC 43124 10 0 std::__node_alloc::deallocate
+43124 8 161 101
+4312c 4 135 119
+43130 4 161 101
+FUNC 43134 1b0 0 std::priv::_Impl_vector<unsigned char, std::allocator<unsigned char> >::_M_range_insert<char*>
+43134 4 532 139
+43138 4 546 139
+4313c 14 532 139
+43150 4 546 139
+43154 c 549 139
+43160 c 355 114
+4316c 10 549 139
+4317c 4 476 139
+43180 8 478 139
+43188 4 479 139
+4318c 10 120 137
+4319c 8 480 139
+431a4 4 255 100
+431a8 4 480 139
+431ac 8 256 100
+431b4 c 256 100
+431c0 c 269 100
+431cc 4 510 114
+431d0 c 120 137
+431dc 4 492 139
+431e0 4 120 137
+431e4 4 492 139
+431e8 8 120 137
+431f0 8 492 139
+431f8 4 120 137
+431fc 4 494 139
+43200 4 269 100
+43204 4 494 139
+43208 4 269 100
+4320c 4 494 139
+43210 c 269 100
+4321c 8 192 139
+43224 c 173 139
+43230 14 41 138
+43244 4 175 139
+43248 8 176 139
+43250 4 356 101
+43254 8 346 101
+4325c 4 177 139
+43260 8 347 101
+43268 4 348 101
+4326c 4 352 101
+43270 4 353 101
+43274 38 120 137
+432ac 8 662 139
+432b4 4 319 101
+432b8 4 323 101
+432bc 4 443 139
+432c0 4 666 139
+432c4 4 667 139
+432c8 4 668 139
+432cc 18 556 139
+FUNC 432e4 70 0 google_breakpad::test_assembler::Section::~Section
+432e4 18 277 62
+432fc 18 277 62
+43314 8 191 103
+4331c 10 449 62
+4332c 8 87 139
+43334 4 88 139
+43338 8 323 101
+43340 4 156 132
+43344 c 277 62
+43350 4 156 132
+FUNC 43354 24 0 google_breakpad::test_assembler::Section::~Section
+43354 c 277 62
+43360 8 277 62
+43368 4 277 62
+4336c 8 277 62
+43374 4 277 62
+FUNC 43378 14 0 google_breakpad::synth_elf::Notes::~Notes
+43378 14 181 51
+FUNC 4338c 24 0 google_breakpad::synth_elf::Notes::~Notes
+4338c c 181 51
+43398 8 181 51
+433a0 4 181 51
+433a4 8 181 51
+433ac 4 181 51
+FUNC 433b0 68 0 PopulateSection
+433b0 10 62 43
+433c0 8 62 43
+433c8 4 63 43
+433cc 4 303 62
+433d0 8 63 43
+433d8 1c 64 43
+433f4 8 303 62
+433fc 4 63 43
+43400 8 303 62
+43408 10 65 43
+FUNC 43418 50 0 google_breakpad::test_assembler::Section::Section
+43418 c 272 62
+43424 4 272 62
+43428 c 273 62
+43434 4 273 62
+43438 8 273 62
+43440 8 273 62
+43448 4 67 139
+4344c 4 273 62
+43450 4 67 139
+43454 4 481 101
+43458 4 273 62
+4345c c 273 62
+FUNC 43468 80 0 testing::internal::GetPrefixUntilComma
+43468 4 585 85
+4346c 4 586 85
+43470 c 585 85
+4347c 8 585 85
+43484 8 586 85
+4348c 4 587 85
+43490 14 587 85
+434a4 4 355 114
+434a8 4 112 132
+434ac 8 324 131
+434b4 4 481 101
+434b8 4 324 131
+434bc 10 148 137
+434cc 4 325 131
+434d0 4 101 103
+434d4 14 588 85
+FUNC 434e8 88 0 testing::internal::StripTrailingSpaces
+434e8 10 2214 87
+434f8 c 2214 87
+43504 c 2216 87
+43510 4 2194 87
+43514 4 2216 87
+43518 8 2194 87
+43520 8 2216 87
+43528 4 797 131
+4352c 8 168 140
+43534 8 168 140
+4353c 14 798 131
+43550 c 2218 87
+4355c 14 2219 87
+FUNC 43570 88 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+43570 10 29 134
+43580 c 29 134
+4358c 18 400 131
+435a4 4 120 132
+435a8 4 400 131
+435ac 4 481 101
+435b0 10 124 132
+435c0 4 101 103
+435c4 20 517 131
+435e4 14 42 134
+FUNC 435f8 64 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_erase
+435f8 18 655 135
+43610 4 657 135
+43614 8 658 135
+4361c 4 51 124
+43620 4 658 135
+43624 4 659 135
+43628 8 51 124
+43630 8 156 132
+43638 14 161 101
+4364c 10 664 135
+FUNC 4365c 48 0 google_breakpad::synth_elf::StringTable::~StringTable
+4365c 14 64 51
+43670 c 64 51
+4367c 8 531 136
+43684 8 532 136
+4368c 8 64 51
+43694 4 64 51
+43698 8 64 51
+436a0 4 64 51
+FUNC 436a4 24 0 google_breakpad::synth_elf::StringTable::~StringTable
+436a4 c 64 51
+436b0 8 64 51
+436b8 4 64 51
+436bc 8 64 51
+436c4 4 64 51
+FUNC 436c8 b8 0 google_breakpad::synth_elf::ELF::~ELF
+436c8 18 94 51
+436e0 14 94 51
+436f4 8 191 103
+436fc 4 57 103
+43700 4 77 113
+43704 14 57 103
+43718 8 87 139
+43720 4 88 139
+43724 8 323 101
+4372c 8 94 51
+43734 8 94 51
+4373c 8 94 51
+43744 8 94 51
+4374c 8 94 51
+43754 8 94 51
+4375c 8 94 51
+43764 8 94 51
+4376c 4 94 51
+43770 4 94 51
+43774 8 94 51
+4377c 4 94 51
+FUNC 43780 24 0 google_breakpad::synth_elf::ELF::~ELF
+43780 c 94 51
+4378c 8 94 51
+43794 4 94 51
+43798 8 94 51
+437a0 4 94 51
+FUNC 437a4 128 0 testing::internal::StreamableToString<int>
+437a4 c 243 79
+437b0 4 244 79
+437b4 c 243 79
+437c0 4 244 79
+437c4 4 243 79
+437c8 4 244 79
+437cc 8 1142 87
+437d4 4 131 79
+437d8 4 238 121
+437dc c 239 121
+437e8 c 181 122
+437f4 8 239 121
+437fc 8 239 121
+43804 c 181 122
+43810 4 199 121
+43814 18 211 121
+4382c 4 202 121
+43830 4 145 110
+43834 4 202 121
+43838 4 145 110
+4383c 4 202 121
+43840 8 145 110
+43848 c 351 117
+43854 8 351 117
+4385c 4 67 120
+43860 4 202 121
+43864 8 67 120
+4386c c 202 121
+43878 4 67 120
+4387c 4 57 123
+43880 c 67 120
+4388c 8 202 121
+43894 4 210 121
+43898 8 212 121
+438a0 c 244 79
+438ac 8 85 79
+438b4 18 245 79
+FUNC 438cc 1c0 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_ElfClass_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+438cc 1c 604 85
+438e8 4 621 85
+438ec c 604 85
+438f8 4 621 85
+438fc 8 604 85
+43904 c 621 85
+43910 4 604 85
+43914 4 621 85
+43918 4 621 85
+4391c 4 621 85
+43920 4 621 85
+43924 8 621 85
+4392c c 621 85
+43938 4 621 85
+4393c 4 621 85
+43940 4 85 88
+43944 4 621 85
+43948 c 621 85
+43954 4 621 85
+43958 4 621 85
+4395c c 621 85
+43968 4 621 85
+4396c 4 621 85
+43970 8 621 85
+43978 4 621 85
+4397c 4 621 85
+43980 14 621 85
+43994 c 621 85
+439a0 4 621 85
+439a4 4 621 85
+439a8 10 621 85
+439b8 18 85 88
+439d0 10 621 85
+439e0 4 484 85
+439e4 14 612 85
+439f8 4 484 85
+439fc 8 612 85
+43a04 8 484 85
+43a0c 14 612 85
+43a20 48 156 132
+43a68 24 626 85
+FUNC 43a8c 1f4 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_ElfClass_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+43a8c 1c 604 85
+43aa8 4 621 85
+43aac 8 604 85
+43ab4 4 621 85
+43ab8 8 604 85
+43ac0 8 621 85
+43ac8 8 604 85
+43ad0 8 621 85
+43ad8 4 621 85
+43adc 4 621 85
+43ae0 4 621 85
+43ae4 8 621 85
+43aec c 621 85
+43af8 4 621 85
+43afc 4 621 85
+43b00 4 621 85
+43b04 4 621 85
+43b08 10 621 85
+43b18 c 621 85
+43b24 4 621 85
+43b28 4 621 85
+43b2c c 621 85
+43b38 1c 621 85
+43b54 10 621 85
+43b64 14 621 85
+43b78 28 85 88
+43ba0 10 621 85
+43bb0 4 484 85
+43bb4 14 612 85
+43bc8 4 484 85
+43bcc 8 612 85
+43bd4 8 484 85
+43bdc 18 612 85
+43bf4 54 156 132
+43c48 18 625 85
+43c60 20 626 85
+FUNC 43c80 1c0 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildID_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+43c80 1c 604 85
+43c9c 4 621 85
+43ca0 c 604 85
+43cac 4 621 85
+43cb0 8 604 85
+43cb8 c 621 85
+43cc4 4 604 85
+43cc8 4 621 85
+43ccc 4 621 85
+43cd0 4 621 85
+43cd4 4 621 85
+43cd8 8 621 85
+43ce0 c 621 85
+43cec 4 621 85
+43cf0 4 621 85
+43cf4 4 85 88
+43cf8 4 621 85
+43cfc c 621 85
+43d08 4 621 85
+43d0c 4 621 85
+43d10 c 621 85
+43d1c 4 621 85
+43d20 4 621 85
+43d24 8 621 85
+43d2c 4 621 85
+43d30 4 621 85
+43d34 14 621 85
+43d48 c 621 85
+43d54 4 621 85
+43d58 4 621 85
+43d5c 10 621 85
+43d6c 18 85 88
+43d84 10 621 85
+43d94 4 484 85
+43d98 14 612 85
+43dac 4 484 85
+43db0 8 612 85
+43db8 8 484 85
+43dc0 14 612 85
+43dd4 48 156 132
+43e1c 24 626 85
+FUNC 43e40 1f4 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildID_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+43e40 1c 604 85
+43e5c 4 621 85
+43e60 8 604 85
+43e68 4 621 85
+43e6c 8 604 85
+43e74 8 621 85
+43e7c 8 604 85
+43e84 8 621 85
+43e8c 4 621 85
+43e90 4 621 85
+43e94 4 621 85
+43e98 8 621 85
+43ea0 c 621 85
+43eac 4 621 85
+43eb0 4 621 85
+43eb4 4 621 85
+43eb8 4 621 85
+43ebc 10 621 85
+43ecc c 621 85
+43ed8 4 621 85
+43edc 4 621 85
+43ee0 c 621 85
+43eec 1c 621 85
+43f08 10 621 85
+43f18 14 621 85
+43f2c 28 85 88
+43f54 10 621 85
+43f64 4 484 85
+43f68 14 612 85
+43f7c 4 484 85
+43f80 8 612 85
+43f88 8 484 85
+43f90 18 612 85
+43fa8 54 156 132
+43ffc 18 625 85
+44014 20 626 85
+FUNC 44034 1c0 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildIDPH_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+44034 1c 604 85
+44050 4 621 85
+44054 c 604 85
+44060 4 621 85
+44064 8 604 85
+4406c c 621 85
+44078 4 604 85
+4407c 4 621 85
+44080 4 621 85
+44084 4 621 85
+44088 4 621 85
+4408c 8 621 85
+44094 c 621 85
+440a0 4 621 85
+440a4 4 621 85
+440a8 4 85 88
+440ac 4 621 85
+440b0 c 621 85
+440bc 4 621 85
+440c0 4 621 85
+440c4 c 621 85
+440d0 4 621 85
+440d4 4 621 85
+440d8 8 621 85
+440e0 4 621 85
+440e4 4 621 85
+440e8 14 621 85
+440fc c 621 85
+44108 4 621 85
+4410c 4 621 85
+44110 10 621 85
+44120 18 85 88
+44138 10 621 85
+44148 4 484 85
+4414c 14 612 85
+44160 4 484 85
+44164 8 612 85
+4416c 8 484 85
+44174 14 612 85
+44188 48 156 132
+441d0 24 626 85
+FUNC 441f4 1f4 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildIDPH_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+441f4 1c 604 85
+44210 4 621 85
+44214 8 604 85
+4421c 4 621 85
+44220 8 604 85
+44228 8 621 85
+44230 8 604 85
+44238 8 621 85
+44240 4 621 85
+44244 4 621 85
+44248 4 621 85
+4424c 8 621 85
+44254 c 621 85
+44260 4 621 85
+44264 4 621 85
+44268 4 621 85
+4426c 4 621 85
+44270 10 621 85
+44280 c 621 85
+4428c 4 621 85
+44290 4 621 85
+44294 c 621 85
+442a0 1c 621 85
+442bc 10 621 85
+442cc 14 621 85
+442e0 28 85 88
+44308 10 621 85
+44318 4 484 85
+4431c 14 612 85
+44330 4 484 85
+44334 8 612 85
+4433c 8 484 85
+44344 18 612 85
+4435c 54 156 132
+443b0 18 625 85
+443c8 20 626 85
+FUNC 443e8 1c0 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_UniqueHashes_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+443e8 1c 604 85
+44404 4 621 85
+44408 c 604 85
+44414 4 621 85
+44418 8 604 85
+44420 c 621 85
+4442c 4 604 85
+44430 4 621 85
+44434 4 621 85
+44438 4 621 85
+4443c 4 621 85
+44440 8 621 85
+44448 c 621 85
+44454 4 621 85
+44458 4 621 85
+4445c 4 85 88
+44460 4 621 85
+44464 c 621 85
+44470 4 621 85
+44474 4 621 85
+44478 c 621 85
+44484 4 621 85
+44488 4 621 85
+4448c 8 621 85
+44494 4 621 85
+44498 4 621 85
+4449c 14 621 85
+444b0 c 621 85
+444bc 4 621 85
+444c0 4 621 85
+444c4 10 621 85
+444d4 18 85 88
+444ec 10 621 85
+444fc 4 484 85
+44500 14 612 85
+44514 4 484 85
+44518 8 612 85
+44520 8 484 85
+44528 14 612 85
+4453c 48 156 132
+44584 24 626 85
+FUNC 445a8 1f4 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_UniqueHashes_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+445a8 1c 604 85
+445c4 4 621 85
+445c8 8 604 85
+445d0 4 621 85
+445d4 8 604 85
+445dc 8 621 85
+445e4 8 604 85
+445ec 8 621 85
+445f4 4 621 85
+445f8 4 621 85
+445fc 4 621 85
+44600 8 621 85
+44608 c 621 85
+44614 4 621 85
+44618 4 621 85
+4461c 4 621 85
+44620 4 621 85
+44624 10 621 85
+44634 c 621 85
+44640 4 621 85
+44644 4 621 85
+44648 c 621 85
+44654 1c 621 85
+44670 10 621 85
+44680 14 621 85
+44694 28 85 88
+446bc 10 621 85
+446cc 4 484 85
+446d0 14 612 85
+446e4 4 484 85
+446e8 8 612 85
+446f0 8 484 85
+446f8 18 612 85
+44710 54 156 132
+44764 18 625 85
+4477c 20 626 85
+FUNC 4479c 48 0 FileIDTest<google_breakpad::ElfClass64>::~FileIDTest
+4479c 18 107 43
+447b4 c 107 43
+447c0 8 87 139
+447c8 4 88 139
+447cc 8 323 101
+447d4 4 107 43
+447d8 8 107 43
+447e0 4 107 43
+FUNC 447e4 14 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::~FileIDTest_ElfClass_Test
+447e4 14 127 43
+FUNC 447f8 24 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::~FileIDTest_ElfClass_Test
+447f8 c 127 43
+44804 8 127 43
+4480c 4 127 43
+44810 8 127 43
+44818 4 127 43
+FUNC 4481c 14 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildID_Test
+4481c 14 151 43
+FUNC 44830 24 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildID_Test
+44830 c 151 43
+4483c 8 151 43
+44844 4 151 43
+44848 8 151 43
+44850 4 151 43
+FUNC 44854 14 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildIDPH_Test
+44854 14 183 43
+FUNC 44868 24 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildIDPH_Test
+44868 c 183 43
+44874 8 183 43
+4487c 4 183 43
+44880 8 183 43
+44888 4 183 43
+FUNC 4488c 14 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::~FileIDTest_UniqueHashes_Test
+4488c 14 220 43
+FUNC 448a0 24 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::~FileIDTest_UniqueHashes_Test
+448a0 c 220 43
+448ac 8 220 43
+448b4 4 220 43
+448b8 8 220 43
+448c0 4 220 43
+FUNC 448c4 24 0 FileIDTest<google_breakpad::ElfClass64>::~FileIDTest
+448c4 c 107 43
+448d0 8 107 43
+448d8 4 107 43
+448dc 8 107 43
+448e4 4 107 43
+FUNC 448e8 48 0 FileIDTest<google_breakpad::ElfClass32>::~FileIDTest
+448e8 18 107 43
+44900 c 107 43
+4490c 8 87 139
+44914 4 88 139
+44918 8 323 101
+44920 4 107 43
+44924 8 107 43
+4492c 4 107 43
+FUNC 44930 14 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::~FileIDTest_ElfClass_Test
+44930 14 127 43
+FUNC 44944 24 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::~FileIDTest_ElfClass_Test
+44944 c 127 43
+44950 8 127 43
+44958 4 127 43
+4495c 8 127 43
+44964 4 127 43
+FUNC 44968 14 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildID_Test
+44968 14 151 43
+FUNC 4497c 24 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildID_Test
+4497c c 151 43
+44988 8 151 43
+44990 4 151 43
+44994 8 151 43
+4499c 4 151 43
+FUNC 449a0 14 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildIDPH_Test
+449a0 14 183 43
+FUNC 449b4 24 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildIDPH_Test
+449b4 c 183 43
+449c0 8 183 43
+449c8 4 183 43
+449cc 8 183 43
+449d4 4 183 43
+FUNC 449d8 14 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::~FileIDTest_UniqueHashes_Test
+449d8 14 220 43
+FUNC 449ec 24 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::~FileIDTest_UniqueHashes_Test
+449ec c 220 43
+449f8 8 220 43
+44a00 4 220 43
+44a04 8 220 43
+44a0c 4 220 43
+FUNC 44a10 24 0 FileIDTest<google_breakpad::ElfClass32>::~FileIDTest
+44a10 c 107 43
+44a1c 8 107 43
+44a24 4 107 43
+44a28 8 107 43
+44a30 4 107 43
+FUNC 44a34 27c 0 testing::internal::CmpHelperOpFailure<unsigned int, long unsigned int>
+44a34 10 1579 82
+44a44 4 1583 82
+44a48 c 1579 82
+44a54 4 1583 82
+44a58 18 1579 82
+44a70 4 1579 82
+44a74 4 306 82
+44a78 4 1579 82
+44a7c 4 1583 82
+44a80 4 306 82
+44a84 4 1579 82
+44a88 4 75 127
+44a8c 4 306 82
+44a90 4 131 79
+44a94 10 333 122
+44aa4 c 306 82
+44ab0 8 85 79
+44ab8 10 1583 82
+44ac8 8 306 82
+44ad0 4 131 79
+44ad4 10 333 122
+44ae4 c 306 82
+44af0 8 85 79
+44af8 8 1583 82
+44b00 4 254 121
+44b04 8 1583 82
+44b0c 8 306 82
+44b14 4 131 79
+44b18 10 333 122
+44b28 c 306 82
+44b34 8 85 79
+44b3c 8 1583 82
+44b44 4 75 127
+44b48 8 1583 82
+44b50 8 306 82
+44b58 4 131 79
+44b5c 10 333 122
+44b6c c 306 82
+44b78 8 85 79
+44b80 c 884 80
+44b8c 10 254 121
+44b9c c 75 127
+44ba8 8 886 80
+44bb0 8 306 82
+44bb8 4 131 79
+44bbc c 131 79
+44bc8 c 306 82
+44bd4 8 85 79
+44bdc 8 306 82
+44be4 4 131 79
+44be8 10 333 122
+44bf8 c 306 82
+44c04 8 85 79
+44c0c c 884 80
+44c18 8 263 121
+44c20 4 75 127
+44c24 8 263 121
+44c2c c 75 127
+44c38 8 886 80
+44c40 8 306 82
+44c48 4 131 79
+44c4c c 131 79
+44c58 c 306 82
+44c64 8 85 79
+44c6c c 1585 82
+44c78 10 156 132
+44c88 8 256 82
+44c90 20 1586 82
+FUNC 44cb0 1ec 0 FileIDTest<google_breakpad::ElfClass64>::GetElfContents
+44cb0 10 109 43
+44cc0 8 110 43
+44cc8 8 109 43
+44cd0 8 110 43
+44cd8 4 109 43
+44cdc 4 110 43
+44ce0 8 111 43
+44ce8 4 277 82
+44cec 4 111 43
+44cf0 4 1139 87
+44cf4 4 111 43
+44cf8 8 277 82
+44d00 4 111 43
+44d04 20 111 43
+44d24 4 111 43
+44d28 4 111 43
+44d2c 4 111 43
+44d30 1c 111 43
+44d4c 8 111 43
+44d54 c 111 43
+44d60 8 85 79
+44d68 8 111 43
+44d70 8 156 132
+44d78 10 256 82
+44d88 4 112 43
+44d8c 4 400 131
+44d90 4 1619 82
+44d94 8 400 131
+44d9c 4 112 43
+44da0 4 1619 82
+44da4 8 1619 82
+44dac 24 1619 82
+44dd0 8 112 43
+44dd8 4 1144 87
+44ddc c 298 82
+44de8 8 298 82
+44df0 14 112 43
+44e04 4 112 43
+44e08 4 112 43
+44e0c 8 112 43
+44e14 c 112 43
+44e20 8 85 79
+44e28 8 112 43
+44e30 10 256 82
+44e40 4 228 143
+44e44 c 256 82
+44e50 8 630 139
+44e58 8 269 100
+44e60 4 615 139
+44e64 14 510 139
+44e78 8 116 43
+44e80 8 156 132
+44e88 14 117 43
+FUNC 44e9c 250 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::TestBody
+44e9c 4 127 43
+44ea0 c 130 43
+44eac c 127 43
+44eb8 4 130 43
+44ebc 10 127 43
+44ecc 4 127 43
+44ed0 4 130 43
+44ed4 4 134 43
+44ed8 8 135 43
+44ee0 4 130 43
+44ee4 4 453 131
+44ee8 14 134 43
+44efc c 135 43
+44f08 14 453 131
+44f1c 8 136 43
+44f24 18 139 43
+44f3c 4 143 43
+44f40 4 139 43
+44f44 28 139 43
+44f6c 8 156 132
+44f74 8 140 43
+44f7c c 141 43
+44f88 c 143 43
+44f94 4 1139 87
+44f98 4 143 43
+44f9c 4 277 82
+44fa0 4 143 43
+44fa4 20 143 43
+44fc4 4 143 43
+44fc8 4 143 43
+44fcc 4 143 43
+44fd0 1c 143 43
+44fec 8 143 43
+44ff4 c 143 43
+45000 8 85 79
+45008 8 143 43
+45010 8 156 132
+45018 8 256 82
+45020 10 146 43
+45030 28 148 43
+45058 4 1144 87
+4505c c 298 82
+45068 8 298 82
+45070 18 148 43
+45088 4 148 43
+4508c 4 148 43
+45090 8 148 43
+45098 c 148 43
+450a4 8 85 79
+450ac 8 148 43
+450b4 8 256 82
+450bc 8 135 43
+450c4 8 148 43
+450cc 20 149 43
+FUNC 450ec 374 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::TestBody
+450ec 4 151 43
+450f0 c 156 43
+450fc c 151 43
+45108 4 154 43
+4510c c 151 43
+45118 64 154 43
+4517c 4 156 43
+45180 c 154 43
+4518c 8 151 43
+45194 4 156 43
+45198 4 151 43
+4519c c 154 43
+451a8 4 156 43
+451ac c 157 43
+451b8 4 164 43
+451bc 4 165 43
+451c0 4 167 43
+451c4 4 157 43
+451c8 4 170 43
+451cc 10 164 43
+451dc 4 167 43
+451e0 4 175 43
+451e4 4 164 43
+451e8 c 165 43
+451f4 10 303 62
+45204 14 167 43
+45218 28 167 43
+45240 8 156 132
+45248 10 184 51
+45258 10 170 43
+45268 c 184 51
+45274 4 170 43
+45278 18 169 43
+45290 8 156 132
+45298 14 171 43
+452ac 28 171 43
+452d4 8 156 132
+452dc 8 172 43
+452e4 c 173 43
+452f0 c 175 43
+452fc 4 1139 87
+45300 4 175 43
+45304 4 277 82
+45308 4 175 43
+4530c 20 175 43
+4532c 4 175 43
+45330 4 175 43
+45334 4 175 43
+45338 1c 175 43
+45354 8 175 43
+4535c c 175 43
+45368 8 85 79
+45370 8 175 43
+45378 8 156 132
+45380 8 256 82
+45388 10 178 43
+45398 28 180 43
+453c0 4 1144 87
+453c4 c 298 82
+453d0 8 298 82
+453d8 18 180 43
+453f0 4 180 43
+453f4 4 180 43
+453f8 8 180 43
+45400 c 180 43
+4540c 8 85 79
+45414 8 180 43
+4541c 8 256 82
+45424 8 168 43
+4542c 8 165 43
+45434 8 180 43
+4543c 24 181 43
+FUNC 45460 3cc 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::TestBody
+45460 4 183 43
+45464 c 188 43
+45470 c 183 43
+4547c 4 186 43
+45480 c 183 43
+4548c 64 186 43
+454f0 4 188 43
+454f4 c 186 43
+45500 8 183 43
+45508 4 188 43
+4550c 4 183 43
+45510 c 186 43
+4551c 4 188 43
+45520 c 189 43
+4552c 4 196 43
+45530 4 197 43
+45534 4 199 43
+45538 4 189 43
+4553c 4 202 43
+45540 10 196 43
+45550 4 199 43
+45554 4 210 43
+45558 4 196 43
+4555c c 197 43
+45568 10 303 62
+45578 14 199 43
+4558c 28 199 43
+455b4 8 156 132
+455bc 10 184 51
+455cc 10 202 43
+455dc c 184 51
+455e8 4 202 43
+455ec 1c 201 43
+45608 8 156 132
+45610 14 204 43
+45624 18 203 43
+4563c 8 156 132
+45644 14 205 43
+45658 2c 205 43
+45684 4 156 132
+45688 4 205 43
+4568c 4 156 132
+45690 18 206 43
+456a8 8 207 43
+456b0 c 208 43
+456bc c 210 43
+456c8 4 1139 87
+456cc 4 210 43
+456d0 4 277 82
+456d4 4 210 43
+456d8 20 210 43
+456f8 4 210 43
+456fc 4 210 43
+45700 4 210 43
+45704 1c 210 43
+45720 8 210 43
+45728 c 210 43
+45734 8 85 79
+4573c 8 210 43
+45744 8 156 132
+4574c 8 256 82
+45754 10 213 43
+45764 28 215 43
+4578c 4 1144 87
+45790 c 298 82
+4579c 8 298 82
+457a4 18 215 43
+457bc 4 215 43
+457c0 4 215 43
+457c4 8 215 43
+457cc c 215 43
+457d8 8 85 79
+457e0 8 215 43
+457e8 8 256 82
+457f0 8 200 43
+457f8 8 197 43
+45800 8 215 43
+45808 24 216 43
+FUNC 4582c 464 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::TestBody
+4582c 4 220 43
+45830 4 222 43
+45834 c 220 43
+45840 4 222 43
+45844 4 232 43
+45848 4 220 43
+4584c 8 222 43
+45854 4 220 43
+45858 4 222 43
+4585c 14 220 43
+45870 4 222 43
+45874 4 224 43
+45878 4 230 43
+4587c 4 232 43
+45880 4 222 43
+45884 4 232 43
+45888 c 224 43
+45894 4 229 43
+45898 8 235 43
+458a0 4 224 43
+458a4 14 229 43
+458b8 c 230 43
+458c4 10 231 43
+458d4 10 232 43
+458e4 28 232 43
+4590c 8 156 132
+45914 c 233 43
+45920 10 234 43
+45930 10 235 43
+45940 28 235 43
+45968 8 156 132
+45970 8 236 43
+45978 c 237 43
+45984 8 233 43
+4598c 8 230 43
+45994 8 237 43
+4599c c 240 43
+459a8 4 1139 87
+459ac 4 240 43
+459b0 c 277 82
+459bc 4 240 43
+459c0 24 240 43
+459e4 1c 240 43
+45a00 8 240 43
+45a08 c 240 43
+45a14 8 85 79
+45a1c 8 240 43
+45a24 8 156 132
+45a2c 4 256 82
+45a30 4 250 43
+45a34 4 256 82
+45a38 10 242 43
+45a48 14 246 43
+45a5c c 247 43
+45a68 c 248 43
+45a74 10 249 43
+45a84 14 250 43
+45a98 28 250 43
+45ac0 8 156 132
+45ac8 10 251 43
+45ad8 10 252 43
+45ae8 28 252 43
+45b10 8 156 132
+45b18 8 253 43
+45b20 c 254 43
+45b2c 8 248 43
+45b34 8 247 43
+45b3c 8 254 43
+45b44 c 257 43
+45b50 4 1139 87
+45b54 4 257 43
+45b58 4 277 82
+45b5c 4 257 43
+45b60 24 257 43
+45b84 1c 257 43
+45ba0 8 257 43
+45ba8 c 257 43
+45bb4 8 85 79
+45bbc 8 257 43
+45bc4 8 156 132
+45bcc 8 256 82
+45bd4 10 259 43
+45be4 28 262 43
+45c0c 4 1144 87
+45c10 c 298 82
+45c1c 8 298 82
+45c24 18 262 43
+45c3c 8 262 43
+45c44 c 262 43
+45c50 8 85 79
+45c58 8 262 43
+45c60 8 256 82
+45c68 28 263 43
+FUNC 45c90 1ec 0 FileIDTest<google_breakpad::ElfClass32>::GetElfContents
+45c90 10 109 43
+45ca0 8 110 43
+45ca8 8 109 43
+45cb0 8 110 43
+45cb8 4 109 43
+45cbc 4 110 43
+45cc0 8 111 43
+45cc8 4 277 82
+45ccc 4 111 43
+45cd0 4 1139 87
+45cd4 4 111 43
+45cd8 8 277 82
+45ce0 4 111 43
+45ce4 20 111 43
+45d04 4 111 43
+45d08 4 111 43
+45d0c 4 111 43
+45d10 1c 111 43
+45d2c 8 111 43
+45d34 c 111 43
+45d40 8 85 79
+45d48 8 111 43
+45d50 8 156 132
+45d58 10 256 82
+45d68 4 112 43
+45d6c 4 400 131
+45d70 4 1619 82
+45d74 8 400 131
+45d7c 4 112 43
+45d80 4 1619 82
+45d84 8 1619 82
+45d8c 24 1619 82
+45db0 8 112 43
+45db8 4 1144 87
+45dbc c 298 82
+45dc8 8 298 82
+45dd0 14 112 43
+45de4 4 112 43
+45de8 4 112 43
+45dec 8 112 43
+45df4 c 112 43
+45e00 8 85 79
+45e08 8 112 43
+45e10 10 256 82
+45e20 4 228 143
+45e24 c 256 82
+45e30 8 630 139
+45e38 8 269 100
+45e40 4 615 139
+45e44 14 510 139
+45e58 8 116 43
+45e60 8 156 132
+45e68 14 117 43
+FUNC 45e7c 250 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::TestBody
+45e7c 4 127 43
+45e80 c 130 43
+45e8c c 127 43
+45e98 4 130 43
+45e9c 10 127 43
+45eac 4 127 43
+45eb0 4 130 43
+45eb4 4 134 43
+45eb8 8 135 43
+45ec0 4 130 43
+45ec4 4 453 131
+45ec8 14 134 43
+45edc c 135 43
+45ee8 14 453 131
+45efc 8 136 43
+45f04 18 139 43
+45f1c 4 143 43
+45f20 4 139 43
+45f24 28 139 43
+45f4c 8 156 132
+45f54 8 140 43
+45f5c c 141 43
+45f68 c 143 43
+45f74 4 1139 87
+45f78 4 143 43
+45f7c 4 277 82
+45f80 4 143 43
+45f84 20 143 43
+45fa4 4 143 43
+45fa8 4 143 43
+45fac 4 143 43
+45fb0 1c 143 43
+45fcc 8 143 43
+45fd4 c 143 43
+45fe0 8 85 79
+45fe8 8 143 43
+45ff0 8 156 132
+45ff8 8 256 82
+46000 10 146 43
+46010 28 148 43
+46038 4 1144 87
+4603c c 298 82
+46048 8 298 82
+46050 18 148 43
+46068 4 148 43
+4606c 4 148 43
+46070 8 148 43
+46078 c 148 43
+46084 8 85 79
+4608c 8 148 43
+46094 8 256 82
+4609c 8 135 43
+460a4 8 148 43
+460ac 20 149 43
+FUNC 460cc 374 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::TestBody
+460cc 4 151 43
+460d0 c 156 43
+460dc c 151 43
+460e8 4 154 43
+460ec c 151 43
+460f8 64 154 43
+4615c 4 156 43
+46160 c 154 43
+4616c 8 151 43
+46174 4 156 43
+46178 4 151 43
+4617c c 154 43
+46188 4 156 43
+4618c c 157 43
+46198 4 164 43
+4619c 4 165 43
+461a0 4 167 43
+461a4 4 157 43
+461a8 4 170 43
+461ac 10 164 43
+461bc 4 167 43
+461c0 4 175 43
+461c4 4 164 43
+461c8 c 165 43
+461d4 10 303 62
+461e4 14 167 43
+461f8 28 167 43
+46220 8 156 132
+46228 10 184 51
+46238 10 170 43
+46248 c 184 51
+46254 4 170 43
+46258 18 169 43
+46270 8 156 132
+46278 14 171 43
+4628c 28 171 43
+462b4 8 156 132
+462bc 8 172 43
+462c4 c 173 43
+462d0 c 175 43
+462dc 4 1139 87
+462e0 4 175 43
+462e4 4 277 82
+462e8 4 175 43
+462ec 20 175 43
+4630c 4 175 43
+46310 4 175 43
+46314 4 175 43
+46318 1c 175 43
+46334 8 175 43
+4633c c 175 43
+46348 8 85 79
+46350 8 175 43
+46358 8 156 132
+46360 8 256 82
+46368 10 178 43
+46378 28 180 43
+463a0 4 1144 87
+463a4 c 298 82
+463b0 8 298 82
+463b8 18 180 43
+463d0 4 180 43
+463d4 4 180 43
+463d8 8 180 43
+463e0 c 180 43
+463ec 8 85 79
+463f4 8 180 43
+463fc 8 256 82
+46404 8 168 43
+4640c 8 165 43
+46414 8 180 43
+4641c 24 181 43
+FUNC 46440 3cc 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::TestBody
+46440 4 183 43
+46444 c 188 43
+46450 c 183 43
+4645c 4 186 43
+46460 c 183 43
+4646c 64 186 43
+464d0 4 188 43
+464d4 c 186 43
+464e0 8 183 43
+464e8 4 188 43
+464ec 4 183 43
+464f0 c 186 43
+464fc 4 188 43
+46500 c 189 43
+4650c 4 196 43
+46510 4 197 43
+46514 4 199 43
+46518 4 189 43
+4651c 4 202 43
+46520 10 196 43
+46530 4 199 43
+46534 4 210 43
+46538 4 196 43
+4653c c 197 43
+46548 10 303 62
+46558 14 199 43
+4656c 28 199 43
+46594 8 156 132
+4659c 10 184 51
+465ac 10 202 43
+465bc c 184 51
+465c8 4 202 43
+465cc 1c 201 43
+465e8 8 156 132
+465f0 14 204 43
+46604 18 203 43
+4661c 8 156 132
+46624 14 205 43
+46638 2c 205 43
+46664 4 156 132
+46668 4 205 43
+4666c 4 156 132
+46670 18 206 43
+46688 8 207 43
+46690 c 208 43
+4669c c 210 43
+466a8 4 1139 87
+466ac 4 210 43
+466b0 4 277 82
+466b4 4 210 43
+466b8 20 210 43
+466d8 4 210 43
+466dc 4 210 43
+466e0 4 210 43
+466e4 1c 210 43
+46700 8 210 43
+46708 c 210 43
+46714 8 85 79
+4671c 8 210 43
+46724 8 156 132
+4672c 8 256 82
+46734 10 213 43
+46744 28 215 43
+4676c 4 1144 87
+46770 c 298 82
+4677c 8 298 82
+46784 18 215 43
+4679c 4 215 43
+467a0 4 215 43
+467a4 8 215 43
+467ac c 215 43
+467b8 8 85 79
+467c0 8 215 43
+467c8 8 256 82
+467d0 8 200 43
+467d8 8 197 43
+467e0 8 215 43
+467e8 24 216 43
+FUNC 4680c 464 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::TestBody
+4680c 4 220 43
+46810 4 222 43
+46814 c 220 43
+46820 4 222 43
+46824 4 232 43
+46828 4 220 43
+4682c 8 222 43
+46834 4 220 43
+46838 4 222 43
+4683c 14 220 43
+46850 4 222 43
+46854 4 224 43
+46858 4 230 43
+4685c 4 232 43
+46860 4 222 43
+46864 4 232 43
+46868 c 224 43
+46874 4 229 43
+46878 8 235 43
+46880 4 224 43
+46884 14 229 43
+46898 c 230 43
+468a4 10 231 43
+468b4 10 232 43
+468c4 28 232 43
+468ec 8 156 132
+468f4 c 233 43
+46900 10 234 43
+46910 10 235 43
+46920 28 235 43
+46948 8 156 132
+46950 8 236 43
+46958 c 237 43
+46964 8 233 43
+4696c 8 230 43
+46974 8 237 43
+4697c c 240 43
+46988 4 1139 87
+4698c 4 240 43
+46990 c 277 82
+4699c 4 240 43
+469a0 24 240 43
+469c4 1c 240 43
+469e0 8 240 43
+469e8 c 240 43
+469f4 8 85 79
+469fc 8 240 43
+46a04 8 156 132
+46a0c 4 256 82
+46a10 4 250 43
+46a14 4 256 82
+46a18 10 242 43
+46a28 14 246 43
+46a3c c 247 43
+46a48 c 248 43
+46a54 10 249 43
+46a64 14 250 43
+46a78 28 250 43
+46aa0 8 156 132
+46aa8 10 251 43
+46ab8 10 252 43
+46ac8 28 252 43
+46af0 8 156 132
+46af8 8 253 43
+46b00 c 254 43
+46b0c 8 248 43
+46b14 8 247 43
+46b1c 8 254 43
+46b24 c 257 43
+46b30 4 1139 87
+46b34 4 257 43
+46b38 4 277 82
+46b3c 4 257 43
+46b40 24 257 43
+46b64 1c 257 43
+46b80 8 257 43
+46b88 c 257 43
+46b94 8 85 79
+46b9c 8 257 43
+46ba4 8 156 132
+46bac 8 256 82
+46bb4 10 259 43
+46bc4 28 262 43
+46bec 4 1144 87
+46bf0 c 298 82
+46bfc 8 298 82
+46c04 18 262 43
+46c1c 8 262 43
+46c24 c 262 43
+46c30 8 85 79
+46c38 8 262 43
+46c40 8 256 82
+46c48 28 263 43
+FUNC 46c70 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::~TestFactoryImpl
+46c70 4 484 85
+FUNC 46c74 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::~TestFactoryImpl
+46c74 4 484 85
+FUNC 46c78 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::~TestFactoryImpl
+46c78 4 484 85
+FUNC 46c7c 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::~TestFactoryImpl
+46c7c 4 484 85
+FUNC 46c80 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::~TestFactoryImpl
+46c80 4 484 85
+FUNC 46c84 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::~TestFactoryImpl
+46c84 4 484 85
+FUNC 46c88 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::~TestFactoryImpl
+46c88 4 484 85
+FUNC 46c8c 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::~TestFactoryImpl
+46c8c 4 484 85
+FUNC 46c90 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::~TestFactoryImpl
+46c90 4 484 85
+FUNC 46c94 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::~TestFactoryImpl
+46c94 4 484 85
+FUNC 46c98 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::~TestFactoryImpl
+46c98 4 484 85
+FUNC 46c9c 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::~TestFactoryImpl
+46c9c 4 484 85
+FUNC 46ca0 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::~TestFactoryImpl
+46ca0 4 484 85
+FUNC 46ca4 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::~TestFactoryImpl
+46ca4 4 484 85
+FUNC 46ca8 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::~TestFactoryImpl
+46ca8 4 484 85
+FUNC 46cac 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::~TestFactoryImpl
+46cac 4 484 85
+FUNC 46cb0 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::~TestFactoryImpl
+46cb0 4 484 85
+FUNC 46cb4 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::~TestFactoryImpl
+46cb4 4 484 85
+FUNC 46cb8 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::~TestFactoryImpl
+46cb8 4 484 85
+FUNC 46cbc 4 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::~TestFactoryImpl
+46cbc 4 484 85
+FUNC 46cc0 14 0 LinuxLibcSupportTest_read_decimal_ptr_Test::~LinuxLibcSupportTest_read_decimal_ptr_Test
+46cc0 14 194 46
+FUNC 46cd4 24 0 LinuxLibcSupportTest_read_decimal_ptr_Test::~LinuxLibcSupportTest_read_decimal_ptr_Test
+46cd4 c 194 46
+46ce0 8 194 46
+46ce8 4 194 46
+46cec 8 194 46
+46cf4 4 194 46
+FUNC 46cf8 14 0 LinuxLibcSupportTest_read_hex_ptr_Test::~LinuxLibcSupportTest_read_hex_ptr_Test
+46cf8 14 169 46
+FUNC 46d0c 24 0 LinuxLibcSupportTest_read_hex_ptr_Test::~LinuxLibcSupportTest_read_hex_ptr_Test
+46d0c c 169 46
+46d18 8 169 46
+46d20 4 169 46
+46d24 8 169 46
+46d2c 4 169 46
+FUNC 46d30 14 0 LinuxLibcSupportTest_memchr_Test::~LinuxLibcSupportTest_memchr_Test
+46d30 14 157 46
+FUNC 46d44 24 0 LinuxLibcSupportTest_memchr_Test::~LinuxLibcSupportTest_memchr_Test
+46d44 c 157 46
+46d50 8 157 46
+46d58 4 157 46
+46d5c 8 157 46
+46d64 4 157 46
+FUNC 46d68 14 0 LinuxLibcSupportTest_strrchr_Test::~LinuxLibcSupportTest_strrchr_Test
+46d68 14 143 46
+FUNC 46d7c 24 0 LinuxLibcSupportTest_strrchr_Test::~LinuxLibcSupportTest_strrchr_Test
+46d7c c 143 46
+46d88 8 143 46
+46d90 4 143 46
+46d94 8 143 46
+46d9c 4 143 46
+FUNC 46da0 14 0 LinuxLibcSupportTest_strchr_Test::~LinuxLibcSupportTest_strchr_Test
+46da0 14 129 46
+FUNC 46db4 24 0 LinuxLibcSupportTest_strchr_Test::~LinuxLibcSupportTest_strchr_Test
+46db4 c 129 46
+46dc0 8 129 46
+46dc8 4 129 46
+46dcc 8 129 46
+46dd4 4 129 46
+FUNC 46dd8 14 0 LinuxLibcSupportTest_uitos_Test::~LinuxLibcSupportTest_uitos_Test
+46dd8 14 106 46
+FUNC 46dec 24 0 LinuxLibcSupportTest_uitos_Test::~LinuxLibcSupportTest_uitos_Test
+46dec c 106 46
+46df8 8 106 46
+46e00 4 106 46
+46e04 8 106 46
+46e0c 4 106 46
+FUNC 46e10 14 0 LinuxLibcSupportTest_uint_len_Test::~LinuxLibcSupportTest_uint_len_Test
+46e10 14 92 46
+FUNC 46e24 24 0 LinuxLibcSupportTest_uint_len_Test::~LinuxLibcSupportTest_uint_len_Test
+46e24 c 92 46
+46e30 8 92 46
+46e38 4 92 46
+46e3c 8 92 46
+46e44 4 92 46
+FUNC 46e48 14 0 LinuxLibcSupportTest_strtoui_Test::~LinuxLibcSupportTest_strtoui_Test
+46e48 14 71 46
+FUNC 46e5c 24 0 LinuxLibcSupportTest_strtoui_Test::~LinuxLibcSupportTest_strtoui_Test
+46e5c c 71 46
+46e68 8 71 46
+46e70 4 71 46
+46e74 8 71 46
+46e7c 4 71 46
+FUNC 46e80 14 0 LinuxLibcSupportTest_strcmp_Test::~LinuxLibcSupportTest_strcmp_Test
+46e80 14 46 46
+FUNC 46e94 24 0 LinuxLibcSupportTest_strcmp_Test::~LinuxLibcSupportTest_strcmp_Test
+46e94 c 46 46
+46ea0 8 46 46
+46ea8 4 46 46
+46eac 8 46 46
+46eb4 4 46 46
+FUNC 46eb8 14 0 LinuxLibcSupportTest_strlen_Test::~LinuxLibcSupportTest_strlen_Test
+46eb8 14 37 46
+FUNC 46ecc 24 0 LinuxLibcSupportTest_strlen_Test::~LinuxLibcSupportTest_strlen_Test
+46ecc c 37 46
+46ed8 8 37 46
+46ee0 4 37 46
+46ee4 8 37 46
+46eec 4 37 46
+FUNC 46ef0 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::CreateTest
+46ef0 10 486 85
+46f00 8 486 85
+46f08 8 194 46
+46f10 4 486 85
+46f14 c 194 46
+46f20 c 486 85
+FUNC 46f2c 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::CreateTest
+46f2c 10 486 85
+46f3c 8 486 85
+46f44 8 169 46
+46f4c 4 486 85
+46f50 c 169 46
+46f5c c 486 85
+FUNC 46f68 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::CreateTest
+46f68 10 486 85
+46f78 8 486 85
+46f80 8 157 46
+46f88 4 486 85
+46f8c c 157 46
+46f98 c 486 85
+FUNC 46fa4 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::CreateTest
+46fa4 10 486 85
+46fb4 8 486 85
+46fbc 8 143 46
+46fc4 4 486 85
+46fc8 c 143 46
+46fd4 c 486 85
+FUNC 46fe0 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::CreateTest
+46fe0 10 486 85
+46ff0 8 486 85
+46ff8 8 129 46
+47000 4 486 85
+47004 c 129 46
+47010 c 486 85
+FUNC 4701c 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::CreateTest
+4701c 10 486 85
+4702c 8 486 85
+47034 8 106 46
+4703c 4 486 85
+47040 c 106 46
+4704c c 486 85
+FUNC 47058 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::CreateTest
+47058 10 486 85
+47068 8 486 85
+47070 8 92 46
+47078 4 486 85
+4707c c 92 46
+47088 c 486 85
+FUNC 47094 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::CreateTest
+47094 10 486 85
+470a4 8 486 85
+470ac 8 71 46
+470b4 4 486 85
+470b8 c 71 46
+470c4 c 486 85
+FUNC 470d0 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::CreateTest
+470d0 10 486 85
+470e0 8 486 85
+470e8 8 46 46
+470f0 4 486 85
+470f4 c 46 46
+47100 c 486 85
+FUNC 4710c 3c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::CreateTest
+4710c 10 486 85
+4711c 8 486 85
+47124 8 37 46
+4712c 4 486 85
+47130 c 37 46
+4713c c 486 85
+FUNC 47148 148 0 LinuxLibcSupportTest_strlen_Test::TestBody
+47148 18 37 46
+47160 8 1471 82
+47168 c 37 46
+47174 8 1471 82
+4717c 4 256 82
+47180 8 40 46
+47188 c 42 46
+47194 8 42 46
+4719c 4 42 46
+471a0 c 1481 82
+471ac c 1482 82
+471b8 20 1382 82
+471d8 1c 1471 82
+471f4 10 156 132
+47204 8 42 46
+4720c 4 302 82
+47210 4 42 46
+47214 4 42 46
+47218 8 302 82
+47220 18 42 46
+47238 8 42 46
+47240 c 42 46
+4724c 8 85 79
+47254 8 42 46
+4725c 18 256 82
+47274 4 43 46
+47278 18 44 46
+FUNC 47290 124 0 LinuxLibcSupportTest_strcmp_Test::TestBody
+47290 14 46 46
+472a4 10 1512 82
+472b4 8 46 46
+472bc c 1512 82
+472c8 8 60 46
+472d0 10 62 46
+472e0 8 63 46
+472e8 8 64 46
+472f0 8 65 46
+472f8 8 66 46
+47300 14 67 46
+47314 18 1512 82
+4732c 8 67 46
+47334 4 302 82
+47338 4 67 46
+4733c 8 302 82
+47344 18 67 46
+4735c 8 67 46
+47364 c 67 46
+47370 8 85 79
+47378 8 67 46
+47380 18 256 82
+47398 4 68 46
+4739c 18 69 46
+FUNC 473b4 73c 0 LinuxLibcSupportTest_strtoui_Test::TestBody
+473b4 4 71 46
+473b8 4 74 46
+473bc 8 71 46
+473c4 c 74 46
+473d0 c 71 46
+473dc c 74 46
+473e8 4 1139 87
+473ec 10 277 82
+473fc 4 74 46
+47400 20 74 46
+47420 4 74 46
+47424 4 74 46
+47428 18 74 46
+47440 8 256 82
+47448 18 75 46
+47460 4 1139 87
+47464 4 277 82
+47468 4 75 46
+4746c 20 75 46
+4748c 4 75 46
+47490 4 75 46
+47494 18 75 46
+474ac 8 256 82
+474b4 18 76 46
+474cc 4 1139 87
+474d0 4 277 82
+474d4 4 76 46
+474d8 20 76 46
+474f8 4 76 46
+474fc 4 76 46
+47500 18 76 46
+47518 8 256 82
+47520 18 77 46
+47538 4 1139 87
+4753c 4 277 82
+47540 4 77 46
+47544 20 77 46
+47564 4 77 46
+47568 4 77 46
+4756c 18 77 46
+47584 8 256 82
+4758c 18 78 46
+475a4 4 1139 87
+475a8 4 277 82
+475ac 4 78 46
+475b0 20 78 46
+475d0 4 78 46
+475d4 4 78 46
+475d8 18 78 46
+475f0 4 256 82
+475f4 8 80 46
+475fc 4 256 82
+47600 c 80 46
+4760c 4 1139 87
+47610 4 80 46
+47614 4 277 82
+47618 4 80 46
+4761c 20 80 46
+4763c 4 80 46
+47640 4 80 46
+47644 18 80 46
+4765c 4 256 82
+47660 8 1512 82
+47668 4 256 82
+4766c 4 81 46
+47670 1c 1512 82
+4768c 8 81 46
+47694 4 302 82
+47698 4 81 46
+4769c 8 302 82
+476a4 18 81 46
+476bc 4 256 82
+476c0 8 82 46
+476c8 4 256 82
+476cc c 82 46
+476d8 4 1139 87
+476dc 4 82 46
+476e0 4 277 82
+476e4 4 82 46
+476e8 20 82 46
+47708 4 82 46
+4770c 4 82 46
+47710 18 82 46
+47728 4 82 46
+4772c 4 82 46
+47730 8 82 46
+47738 c 82 46
+47744 8 85 79
+4774c 8 82 46
+47754 8 156 132
+4775c 10 256 82
+4776c 4 83 46
+47770 4 1512 82
+47774 4 83 46
+47778 14 1512 82
+4778c 8 83 46
+47794 4 302 82
+47798 4 83 46
+4779c 8 302 82
+477a4 18 83 46
+477bc 8 83 46
+477c4 c 83 46
+477d0 8 85 79
+477d8 8 83 46
+477e0 c 256 82
+477ec 4 84 46
+477f0 4 256 82
+477f4 c 84 46
+47800 4 1139 87
+47804 4 84 46
+47808 4 277 82
+4780c 4 84 46
+47810 20 84 46
+47830 4 84 46
+47834 4 84 46
+47838 4 84 46
+4783c 1c 84 46
+47858 8 84 46
+47860 c 84 46
+4786c 8 85 79
+47874 8 84 46
+4787c 8 156 132
+47884 c 256 82
+47890 4 1512 82
+47894 c 256 82
+478a0 4 85 46
+478a4 4 1512 82
+478a8 4 85 46
+478ac 14 1512 82
+478c0 8 85 46
+478c8 4 302 82
+478cc 4 85 46
+478d0 8 302 82
+478d8 18 85 46
+478f0 4 256 82
+478f4 8 86 46
+478fc 4 256 82
+47900 c 86 46
+4790c 4 1139 87
+47910 4 86 46
+47914 4 277 82
+47918 4 86 46
+4791c 20 86 46
+4793c 4 86 46
+47940 4 86 46
+47944 18 86 46
+4795c 4 256 82
+47960 4 87 46
+47964 4 256 82
+47968 4 87 46
+4796c 18 1512 82
+47984 8 87 46
+4798c 4 302 82
+47990 4 87 46
+47994 8 302 82
+4799c 18 87 46
+479b4 8 256 82
+479bc 10 88 46
+479cc 4 1139 87
+479d0 4 88 46
+479d4 4 277 82
+479d8 4 88 46
+479dc 20 88 46
+479fc 4 88 46
+47a00 4 88 46
+47a04 18 88 46
+47a1c 4 88 46
+47a20 4 88 46
+47a24 8 88 46
+47a2c c 88 46
+47a38 8 85 79
+47a40 8 88 46
+47a48 8 156 132
+47a50 10 256 82
+47a60 4 89 46
+47a64 18 1512 82
+47a7c 8 89 46
+47a84 4 302 82
+47a88 4 89 46
+47a8c 8 302 82
+47a94 18 89 46
+47aac 8 89 46
+47ab4 c 89 46
+47ac0 8 85 79
+47ac8 8 89 46
+47ad0 8 256 82
+47ad8 18 90 46
+FUNC 47af0 338 0 LinuxLibcSupportTest_uitos_Test::TestBody
+47af0 4 106 46
+47af4 8 109 46
+47afc 8 106 46
+47b04 4 109 46
+47b08 4 1552 82
+47b0c 4 109 46
+47b10 4 1552 82
+47b14 8 106 46
+47b1c 4 109 46
+47b20 4 1552 82
+47b24 4 110 46
+47b28 c 1552 82
+47b34 4 110 46
+47b38 4 1552 82
+47b3c 4 110 46
+47b40 10 1552 82
+47b50 8 110 46
+47b58 4 1552 82
+47b5c 8 110 46
+47b64 c 302 82
+47b70 18 110 46
+47b88 8 256 82
+47b90 10 112 46
+47ba0 8 113 46
+47ba8 c 1552 82
+47bb4 4 113 46
+47bb8 4 1552 82
+47bbc 4 113 46
+47bc0 c 1552 82
+47bcc 8 113 46
+47bd4 c 302 82
+47be0 18 113 46
+47bf8 8 256 82
+47c00 10 115 46
+47c10 1c 116 46
+47c2c 1c 1552 82
+47c48 8 116 46
+47c50 c 302 82
+47c5c 18 116 46
+47c74 8 256 82
+47c7c 10 118 46
+47c8c 1c 119 46
+47ca8 1c 1552 82
+47cc4 8 119 46
+47ccc c 302 82
+47cd8 18 119 46
+47cf0 8 256 82
+47cf8 10 121 46
+47d08 1c 122 46
+47d24 1c 1552 82
+47d40 8 122 46
+47d48 c 302 82
+47d54 18 122 46
+47d6c 8 256 82
+47d74 10 125 46
+47d84 1c 126 46
+47da0 1c 1552 82
+47dbc 8 126 46
+47dc4 c 302 82
+47dd0 18 126 46
+47de8 8 126 46
+47df0 c 126 46
+47dfc 8 85 79
+47e04 8 126 46
+47e0c 8 256 82
+47e14 14 127 46
+FUNC 47e28 484 0 LinuxLibcSupportTest_uint_len_Test::TestBody
+47e28 4 92 46
+47e2c 4 93 46
+47e30 14 92 46
+47e44 4 1512 82
+47e48 4 93 46
+47e4c 4 1512 82
+47e50 4 93 46
+47e54 24 1512 82
+47e78 8 93 46
+47e80 8 1512 82
+47e88 8 93 46
+47e90 c 302 82
+47e9c 18 93 46
+47eb4 8 256 82
+47ebc c 94 46
+47ec8 18 1512 82
+47ee0 4 94 46
+47ee4 4 1512 82
+47ee8 8 94 46
+47ef0 c 302 82
+47efc 18 94 46
+47f14 8 256 82
+47f1c c 95 46
+47f28 18 1512 82
+47f40 4 95 46
+47f44 4 1512 82
+47f48 8 95 46
+47f50 c 302 82
+47f5c 18 95 46
+47f74 8 256 82
+47f7c c 96 46
+47f88 18 1512 82
+47fa0 4 96 46
+47fa4 4 1512 82
+47fa8 8 96 46
+47fb0 c 302 82
+47fbc 18 96 46
+47fd4 4 256 82
+47fd8 8 1512 82
+47fe0 4 97 46
+47fe4 4 256 82
+47fe8 c 97 46
+47ff4 18 1512 82
+4800c 4 97 46
+48010 4 1512 82
+48014 8 97 46
+4801c c 302 82
+48028 18 97 46
+48040 8 256 82
+48048 c 98 46
+48054 18 1512 82
+4806c 4 98 46
+48070 4 1512 82
+48074 8 98 46
+4807c c 302 82
+48088 18 98 46
+480a0 4 256 82
+480a4 8 1512 82
+480ac 4 99 46
+480b0 4 256 82
+480b4 c 99 46
+480c0 18 1512 82
+480d8 4 99 46
+480dc 4 1512 82
+480e0 8 99 46
+480e8 c 302 82
+480f4 18 99 46
+4810c 8 256 82
+48114 c 100 46
+48120 18 1512 82
+48138 4 100 46
+4813c 4 1512 82
+48140 8 100 46
+48148 c 302 82
+48154 18 100 46
+4816c 8 256 82
+48174 10 101 46
+48184 4 1512 82
+48188 4 101 46
+4818c 1c 1512 82
+481a8 8 101 46
+481b0 c 302 82
+481bc 18 101 46
+481d4 8 101 46
+481dc c 101 46
+481e8 8 85 79
+481f0 8 101 46
+481f8 10 256 82
+48208 10 103 46
+48218 4 1512 82
+4821c 4 103 46
+48220 1c 1512 82
+4823c 8 103 46
+48244 c 302 82
+48250 18 103 46
+48268 8 103 46
+48270 c 103 46
+4827c 8 85 79
+48284 8 103 46
+4828c 8 256 82
+48294 18 104 46
+FUNC 482ac a8 0 testing::internal::CmpHelperEQ<char const*, char const*>
+482ac 10 1476 82
+482bc 8 1476 82
+482c4 c 1481 82
+482d0 8 1482 82
+482d8 3c 1408 82
+48314 1c 1471 82
+48330 10 156 132
+48340 14 1488 82
+FUNC 48354 458 0 LinuxLibcSupportTest_strchr_Test::TestBody
+48354 4 129 46
+48358 4 130 46
+4835c 8 129 46
+48364 4 130 46
+48368 4 1571 82
+4836c 4 130 46
+48370 4 1571 82
+48374 4 130 46
+48378 8 129 46
+48380 4 130 46
+48384 30 1571 82
+483b4 8 130 46
+483bc c 302 82
+483c8 18 130 46
+483e0 8 256 82
+483e8 14 131 46
+483fc 1c 1571 82
+48418 8 131 46
+48420 c 302 82
+4842c 18 131 46
+48444 8 131 46
+4844c c 131 46
+48458 8 85 79
+48460 c 131 46
+4846c 8 256 82
+48474 14 132 46
+48488 1c 1571 82
+484a4 8 132 46
+484ac c 302 82
+484b8 18 132 46
+484d0 c 256 82
+484dc 10 134 46
+484ec 8 277 82
+484f4 4 1139 87
+484f8 4 277 82
+484fc 4 134 46
+48500 20 134 46
+48520 4 134 46
+48524 4 134 46
+48528 18 134 46
+48540 8 256 82
+48548 c 135 46
+48554 8 277 82
+4855c 4 1139 87
+48560 4 277 82
+48564 4 135 46
+48568 20 135 46
+48588 4 135 46
+4858c 4 135 46
+48590 18 135 46
+485a8 8 256 82
+485b0 10 136 46
+485c0 8 277 82
+485c8 4 1139 87
+485cc 4 277 82
+485d0 4 136 46
+485d4 20 136 46
+485f4 4 136 46
+485f8 4 136 46
+485fc 18 136 46
+48614 8 256 82
+4861c 10 137 46
+4862c 8 277 82
+48634 4 1139 87
+48638 4 277 82
+4863c 4 137 46
+48640 20 137 46
+48660 4 137 46
+48664 4 137 46
+48668 1c 137 46
+48684 8 137 46
+4868c c 137 46
+48698 8 85 79
+486a0 8 137 46
+486a8 8 156 132
+486b0 c 256 82
+486bc 8 140 46
+486c4 4 256 82
+486c8 c 140 46
+486d4 4 1481 82
+486d8 4 140 46
+486dc 4 1481 82
+486e0 c 1482 82
+486ec 20 1408 82
+4870c 24 1471 82
+48730 10 156 132
+48740 8 140 46
+48748 c 302 82
+48754 18 140 46
+4876c 8 140 46
+48774 c 140 46
+48780 8 85 79
+48788 8 140 46
+48790 8 256 82
+48798 14 141 46
+FUNC 487ac 418 0 LinuxLibcSupportTest_strrchr_Test::TestBody
+487ac 4 143 46
+487b0 4 144 46
+487b4 8 143 46
+487bc 4 144 46
+487c0 4 1571 82
+487c4 4 144 46
+487c8 4 1571 82
+487cc 4 144 46
+487d0 8 143 46
+487d8 4 144 46
+487dc 30 1571 82
+4880c 8 144 46
+48814 c 302 82
+48820 18 144 46
+48838 8 256 82
+48840 14 145 46
+48854 1c 1571 82
+48870 8 145 46
+48878 c 302 82
+48884 18 145 46
+4889c 8 145 46
+488a4 c 145 46
+488b0 8 85 79
+488b8 8 145 46
+488c0 8 256 82
+488c8 14 146 46
+488dc 1c 1571 82
+488f8 8 146 46
+48900 4 302 82
+48904 4 146 46
+48908 8 302 82
+48910 18 146 46
+48928 c 256 82
+48934 10 148 46
+48944 8 277 82
+4894c 4 1139 87
+48950 4 277 82
+48954 4 148 46
+48958 20 148 46
+48978 4 148 46
+4897c 4 148 46
+48980 18 148 46
+48998 8 256 82
+489a0 c 149 46
+489ac 8 277 82
+489b4 4 1139 87
+489b8 4 277 82
+489bc 4 149 46
+489c0 20 149 46
+489e0 4 149 46
+489e4 4 149 46
+489e8 18 149 46
+48a00 8 256 82
+48a08 10 150 46
+48a18 8 277 82
+48a20 4 1139 87
+48a24 4 277 82
+48a28 4 150 46
+48a2c 20 150 46
+48a4c 4 150 46
+48a50 4 150 46
+48a54 18 150 46
+48a6c 8 256 82
+48a74 10 151 46
+48a84 8 277 82
+48a8c 4 1139 87
+48a90 4 277 82
+48a94 4 151 46
+48a98 20 151 46
+48ab8 4 151 46
+48abc 4 151 46
+48ac0 18 151 46
+48ad8 4 151 46
+48adc 4 151 46
+48ae0 8 151 46
+48ae8 c 151 46
+48af4 8 85 79
+48afc 8 151 46
+48b04 8 156 132
+48b0c c 256 82
+48b18 8 154 46
+48b20 4 256 82
+48b24 10 154 46
+48b34 20 1512 82
+48b54 8 154 46
+48b5c 4 302 82
+48b60 4 154 46
+48b64 8 302 82
+48b6c 18 154 46
+48b84 8 154 46
+48b8c c 154 46
+48b98 8 85 79
+48ba0 8 154 46
+48ba8 8 256 82
+48bb0 14 155 46
+FUNC 48bc4 84 0 testing::internal::CmpHelperEQFailure<void*, void*>
+48bc4 c 1464 82
+48bd0 8 1382 82
+48bd8 4 1464 82
+48bdc 8 1464 82
+48be4 8 1382 82
+48bec 8 1464 82
+48bf4 14 1382 82
+48c08 1c 1471 82
+48c24 10 156 132
+48c34 14 1472 82
+FUNC 48c48 9c 0 testing::internal::CmpHelperEQ<char [10], void*>
+48c48 10 1476 82
+48c58 8 1476 82
+48c60 c 1481 82
+48c6c 8 1482 82
+48c74 20 1408 82
+48c94 10 1382 82
+48ca4 1c 1471 82
+48cc0 10 156 132
+48cd0 14 1488 82
+FUNC 48ce4 9c 0 testing::internal::CmpHelperEQ<char const*, void*>
+48ce4 10 1476 82
+48cf4 8 1476 82
+48cfc c 1481 82
+48d08 8 1482 82
+48d10 20 1408 82
+48d30 10 1382 82
+48d40 1c 1471 82
+48d5c 10 156 132
+48d6c 14 1488 82
+FUNC 48d80 3bc 0 LinuxLibcSupportTest_memchr_Test::TestBody
+48d80 4 157 46
+48d84 8 158 46
+48d8c 4 157 46
+48d90 8 158 46
+48d98 c 157 46
+48da4 4 158 46
+48da8 10 1571 82
+48db8 4 1482 82
+48dbc 4 1481 82
+48dc0 8 1482 82
+48dc8 1c 1487 82
+48de4 8 158 46
+48dec 4 302 82
+48df0 4 158 46
+48df4 8 302 82
+48dfc 18 158 46
+48e14 8 256 82
+48e1c 14 159 46
+48e30 8 1571 82
+48e38 4 1482 82
+48e3c 4 1481 82
+48e40 8 1482 82
+48e48 1c 1487 82
+48e64 8 159 46
+48e6c 4 302 82
+48e70 4 159 46
+48e74 8 302 82
+48e7c 18 159 46
+48e94 8 256 82
+48e9c 14 160 46
+48eb0 8 1571 82
+48eb8 4 1482 82
+48ebc 4 1481 82
+48ec0 8 1482 82
+48ec8 1c 1487 82
+48ee4 8 160 46
+48eec 4 302 82
+48ef0 4 160 46
+48ef4 8 302 82
+48efc 18 160 46
+48f14 8 160 46
+48f1c c 160 46
+48f28 8 85 79
+48f30 8 160 46
+48f38 c 256 82
+48f44 4 163 46
+48f48 4 256 82
+48f4c 4 163 46
+48f50 4 1512 82
+48f54 4 256 82
+48f58 4 1512 82
+48f5c 14 163 46
+48f70 1c 1512 82
+48f8c 8 163 46
+48f94 4 302 82
+48f98 4 163 46
+48f9c 8 302 82
+48fa4 18 163 46
+48fbc 8 256 82
+48fc4 14 164 46
+48fd8 1c 1512 82
+48ff4 8 164 46
+48ffc 4 302 82
+49000 4 164 46
+49004 8 302 82
+4900c 18 164 46
+49024 8 256 82
+4902c 14 165 46
+49040 20 1512 82
+49060 8 165 46
+49068 4 302 82
+4906c 4 165 46
+49070 8 302 82
+49078 18 165 46
+49090 8 256 82
+49098 14 166 46
+490ac 20 1512 82
+490cc 8 166 46
+490d4 4 302 82
+490d8 4 166 46
+490dc 8 302 82
+490e4 18 166 46
+490fc 8 166 46
+49104 c 166 46
+49110 8 85 79
+49118 8 166 46
+49120 8 256 82
+49128 14 167 46
+FUNC 4913c 5c 0 testing::PrintToString<char>
+4913c 4 883 80
+49140 4 884 80
+49144 8 883 80
+4914c 4 884 80
+49150 4 883 80
+49154 4 883 80
+49158 4 884 80
+4915c 4 883 80
+49160 4 884 80
+49164 c 394 80
+49170 c 75 127
+4917c 8 886 80
+49184 14 887 80
+FUNC 49198 9c 0 testing::internal::CmpHelperEQ<char, int>
+49198 10 1476 82
+491a8 8 1476 82
+491b0 10 1481 82
+491c0 8 1482 82
+491c8 2c 1382 82
+491f4 1c 1471 82
+49210 10 156 132
+49220 14 1488 82
+FUNC 49234 47c 0 LinuxLibcSupportTest_read_hex_ptr_Test::TestBody
+49234 4 169 46
+49238 4 173 46
+4923c 8 169 46
+49244 c 173 46
+49250 8 169 46
+49258 8 1512 82
+49260 8 169 46
+49268 4 1512 82
+4926c 4 173 46
+49270 c 1512 82
+4927c 4 173 46
+49280 14 1512 82
+49294 8 174 46
+4929c 4 1512 82
+492a0 8 174 46
+492a8 4 302 82
+492ac 4 174 46
+492b0 8 302 82
+492b8 18 174 46
+492d0 4 256 82
+492d4 c 1512 82
+492e0 4 256 82
+492e4 18 1512 82
+492fc 4 175 46
+49300 4 1512 82
+49304 8 175 46
+4930c 4 302 82
+49310 4 175 46
+49314 8 302 82
+4931c 18 175 46
+49334 8 256 82
+4933c 10 177 46
+4934c 14 1512 82
+49360 4 178 46
+49364 4 1512 82
+49368 8 178 46
+49370 4 302 82
+49374 4 178 46
+49378 8 302 82
+49380 18 178 46
+49398 8 256 82
+493a0 4 179 46
+493a4 18 1512 82
+493bc 8 179 46
+493c4 4 302 82
+493c8 4 179 46
+493cc 8 302 82
+493d4 18 179 46
+493ec 8 256 82
+493f4 14 181 46
+49408 4 1512 82
+4940c 4 182 46
+49410 4 1512 82
+49414 4 182 46
+49418 14 1512 82
+4942c 8 182 46
+49434 4 302 82
+49438 4 182 46
+4943c 8 302 82
+49444 18 182 46
+4945c 8 256 82
+49464 4 183 46
+49468 18 1512 82
+49480 8 183 46
+49488 4 302 82
+4948c 4 183 46
+49490 8 302 82
+49498 18 183 46
+494b0 4 256 82
+494b4 8 1512 82
+494bc 4 186 46
+494c0 4 256 82
+494c4 14 185 46
+494d8 14 1512 82
+494ec 4 186 46
+494f0 4 1512 82
+494f4 8 186 46
+494fc 4 302 82
+49500 4 186 46
+49504 8 302 82
+4950c 18 186 46
+49524 8 256 82
+4952c 4 187 46
+49530 18 1512 82
+49548 8 187 46
+49550 4 302 82
+49554 4 187 46
+49558 8 302 82
+49560 18 187 46
+49578 8 256 82
+49580 14 189 46
+49594 14 1512 82
+495a8 4 190 46
+495ac 4 1512 82
+495b0 8 190 46
+495b8 4 302 82
+495bc 4 190 46
+495c0 8 302 82
+495c8 18 190 46
+495e0 8 190 46
+495e8 c 190 46
+495f4 8 85 79
+495fc 8 190 46
+49604 10 256 82
+49614 4 191 46
+49618 4 1512 82
+4961c 4 191 46
+49620 18 1512 82
+49638 8 191 46
+49640 4 302 82
+49644 4 191 46
+49648 8 302 82
+49650 18 191 46
+49668 8 191 46
+49670 c 191 46
+4967c 8 85 79
+49684 8 191 46
+4968c 8 256 82
+49694 1c 192 46
+FUNC 496b0 390 0 LinuxLibcSupportTest_read_decimal_ptr_Test::TestBody
+496b0 c 194 46
+496bc 4 198 46
+496c0 4 194 46
+496c4 10 198 46
+496d4 c 194 46
+496e0 4 1512 82
+496e4 4 198 46
+496e8 10 1512 82
+496f8 4 198 46
+496fc 14 1512 82
+49710 8 199 46
+49718 4 1512 82
+4971c 8 199 46
+49724 4 302 82
+49728 4 199 46
+4972c 8 302 82
+49734 18 199 46
+4974c 4 256 82
+49750 8 1512 82
+49758 4 256 82
+4975c 4 200 46
+49760 18 1512 82
+49778 8 200 46
+49780 4 302 82
+49784 4 200 46
+49788 8 302 82
+49790 18 200 46
+497a8 8 256 82
+497b0 14 202 46
+497c4 4 1512 82
+497c8 4 203 46
+497cc 4 1512 82
+497d0 4 203 46
+497d4 14 1512 82
+497e8 8 203 46
+497f0 4 302 82
+497f4 4 203 46
+497f8 8 302 82
+49800 18 203 46
+49818 8 256 82
+49820 4 204 46
+49824 18 1512 82
+4983c 8 204 46
+49844 4 302 82
+49848 4 204 46
+4984c 8 302 82
+49854 18 204 46
+4986c 4 256 82
+49870 8 1512 82
+49878 4 207 46
+4987c 4 256 82
+49880 14 206 46
+49894 14 1512 82
+498a8 4 207 46
+498ac 4 1512 82
+498b0 8 207 46
+498b8 4 302 82
+498bc 4 207 46
+498c0 8 302 82
+498c8 18 207 46
+498e0 8 256 82
+498e8 4 208 46
+498ec 18 1512 82
+49904 8 208 46
+4990c 4 302 82
+49910 4 208 46
+49914 8 302 82
+4991c 18 208 46
+49934 8 256 82
+4993c 14 210 46
+49950 14 1512 82
+49964 4 211 46
+49968 4 1512 82
+4996c 8 211 46
+49974 4 302 82
+49978 4 211 46
+4997c 8 302 82
+49984 18 211 46
+4999c 8 256 82
+499a4 4 212 46
+499a8 4 1512 82
+499ac 4 212 46
+499b0 18 1512 82
+499c8 8 212 46
+499d0 4 302 82
+499d4 4 212 46
+499d8 8 302 82
+499e0 18 212 46
+499f8 8 212 46
+49a00 c 212 46
+49a0c 8 85 79
+49a14 8 212 46
+49a1c 8 256 82
+49a24 1c 213 46
+FUNC 49a40 5c 0 google_breakpad::test_assembler::Section::Mark
+49a40 10 439 62
+49a50 4 439 62
+49a54 4 436 62
+49a58 4 439 62
+49a5c 4 400 131
+49a60 4 436 62
+49a64 4 400 131
+49a68 c 436 62
+49a74 c 439 62
+49a80 8 439 62
+49a88 14 439 62
+FUNC 49a9c 74 0 google_breakpad::synth_elf::ELF::AppendSection
+49a9c 10 121 50
+49aac 4 121 50
+49ab0 8 124 50
+49ab8 c 125 50
+49ac4 8 126 50
+49acc 8 127 50
+49ad4 8 133 50
+49adc 8 127 50
+49ae4 8 129 50
+49aec c 130 50
+49af8 8 131 50
+49b00 8 133 50
+49b08 8 131 50
+FUNC 49b10 150 0 google_breakpad::synth_elf::ELF::AddSegment
+49b10 18 135 50
+49b28 8 135 50
+49b30 4 140 50
+49b34 8 143 50
+49b3c 4 135 50
+49b40 8 140 50
+49b48 4 143 50
+49b4c 4 135 50
+49b50 4 143 50
+49b54 c 145 50
+49b60 10 147 50
+49b70 4 151 50
+49b74 4 153 50
+49b78 4 150 50
+49b7c c 153 50
+49b88 4 202 139
+49b8c 4 155 50
+49b90 4 154 50
+49b94 8 155 50
+49b9c 8 158 50
+49ba4 4 159 50
+49ba8 4 163 50
+49bac c 153 50
+49bb8 4 202 139
+49bbc 14 168 50
+49bd0 4 170 50
+49bd4 4 170 50
+49bd8 4 170 50
+49bdc c 170 50
+49be8 4 172 50
+49bec 4 172 50
+49bf0 4 172 50
+49bf4 c 172 50
+49c00 10 174 50
+49c10 10 176 50
+49c20 c 178 50
+49c2c c 180 50
+49c38 10 184 50
+49c48 14 185 50
+49c5c 4 184 50
+FUNC 49c60 34 0 google_breakpad::synth_elf::ELF::ElfSection::~ElfSection
+49c60 14 141 51
+49c74 10 141 51
+49c84 4 141 51
+49c88 8 141 51
+49c90 4 141 51
+FUNC 49c94 24 0 google_breakpad::synth_elf::ELF::ElfSection::~ElfSection
+49c94 c 141 51
+49ca0 8 141 51
+49ca8 4 141 51
+49cac 8 141 51
+49cb4 4 141 51
+FUNC 49cb8 14 0 google_breakpad::synth_elf::SymbolTable::~SymbolTable
+49cb8 14 161 51
+FUNC 49ccc 24 0 google_breakpad::synth_elf::SymbolTable::~SymbolTable
+49ccc c 161 51
+49cd8 8 161 51
+49ce0 4 161 51
+49ce4 8 161 51
+49cec 4 161 51
+FUNC 49cf0 b4 0 google_breakpad::synth_elf::Notes::AddNote
+49cf0 10 244 50
+49d00 4 244 50
+49d04 4 292 62
+49d08 4 250 50
+49d0c 4 400 131
+49d10 4 528 131
+49d14 4 400 131
+49d18 4 244 50
+49d1c 4 528 131
+49d20 4 244 50
+49d24 4 400 131
+49d28 4 528 131
+49d2c 4 248 50
+49d30 4 249 50
+49d34 4 248 50
+49d38 4 249 50
+49d3c 4 528 131
+49d40 10 517 131
+49d50 c 453 131
+49d5c 10 255 50
+49d6c 18 528 131
+49d84 10 257 50
+49d94 10 258 50
+FUNC 49da4 108 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::_Impl_vector
+49da4 14 246 139
+49db8 4 246 139
+49dbc 8 192 139
+49dc4 4 70 139
+49dc8 4 192 139
+49dcc 4 342 101
+49dd0 4 192 139
+49dd4 4 70 139
+49dd8 4 481 101
+49ddc 8 342 101
+49de4 c 343 101
+49df0 4 343 101
+49df4 4 356 101
+49df8 4 346 101
+49dfc c 347 101
+49e08 8 348 101
+49e10 c 352 101
+49e1c 4 71 139
+49e20 4 73 139
+49e24 4 72 139
+49e28 4 84 137
+49e2c 8 73 139
+49e34 14 86 137
+49e48 8 86 137
+49e50 4 139 103
+49e54 24 449 62
+49e78 4 89 137
+49e7c 18 86 137
+49e94 4 249 139
+49e98 14 250 139
+FUNC 49eac 58 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_create_node
+49eac 4 315 136
+49eb0 4 306 101
+49eb4 8 315 136
+49ebc 4 315 136
+49ec0 8 306 101
+49ec8 8 307 101
+49ed0 8 119 103
+49ed8 8 68 124
+49ee0 c 68 124
+49eec 4 321 136
+49ef0 4 324 136
+49ef4 4 322 136
+49ef8 c 324 136
+FUNC 49f04 48 0 google_breakpad::synth_elf::SymbolTable::SymbolTable
+49f04 c 213 50
+49f10 c 213 50
+49f1c 24 217 50
+49f40 c 219 50
+FUNC 49f4c 98 0 google_breakpad::synth_elf::ELF::ElfSection::ElfSection
+49f4c c 141 51
+49f58 4 141 51
+49f5c 4 270 62
+49f60 4 141 51
+49f64 20 270 62
+49f84 c 124 143
+49f90 c 270 62
+49f9c 4 141 51
+49fa0 4 141 51
+49fa4 24 141 51
+49fc8 8 141 51
+49fd0 14 141 51
+FUNC 49fe4 204 0 std::priv::_Impl_vector<google_breakpad::synth_elf::ELF::ElfSection, std::allocator<google_breakpad::synth_elf::ELF::ElfSection> >::_M_insert_overflow_aux
+49fe4 24 81 138
+4a008 8 192 139
+4a010 8 81 138
+4a018 4 192 139
+4a01c 4 81 138
+4a020 4 192 139
+4a024 8 173 139
+4a02c 8 81 138
+4a034 8 173 139
+4a03c 14 41 138
+4a050 4 175 139
+4a054 10 176 139
+4a064 4 356 101
+4a068 8 346 101
+4a070 4 177 139
+4a074 c 347 101
+4a080 4 348 101
+4a084 4 352 101
+4a088 4 348 101
+4a08c 4 352 101
+4a090 4 91 138
+4a094 4 84 137
+4a098 c 86 137
+4a0a4 8 86 137
+4a0ac 4 139 103
+4a0b0 c 139 103
+4a0bc 4 88 137
+4a0c0 4 89 137
+4a0c4 10 86 137
+4a0d4 c 93 138
+4a0e0 4 119 103
+4a0e4 c 119 103
+4a0f0 8 95 138
+4a0f8 8 314 137
+4a100 4 249 137
+4a104 8 249 137
+4a10c 4 139 103
+4a110 c 139 103
+4a11c c 249 137
+4a128 8 98 138
+4a130 4 86 137
+4a134 4 84 137
+4a138 c 86 137
+4a144 8 86 137
+4a14c 4 139 103
+4a150 c 139 103
+4a15c 4 88 137
+4a160 4 89 137
+4a164 1c 86 137
+4a180 8 191 103
+4a188 4 57 103
+4a18c 4 77 113
+4a190 14 57 103
+4a1a4 c 662 139
+4a1b0 4 319 101
+4a1b4 4 323 101
+4a1b8 4 104 138
+4a1bc 4 666 139
+4a1c0 4 667 139
+4a1c4 4 668 139
+4a1c8 20 105 138
+FUNC 4a1e8 5c 0 std::priv::_Rb_global<bool>::_M_decrement
+4a1e8 4 278 135
+4a1ec 8 279 135
+4a1f4 10 279 135
+4a204 8 280 135
+4a20c 8 281 135
+4a214 10 99 136
+4a224 4 285 135
+4a228 c 286 135
+4a234 c 288 135
+4a240 4 293 135
+FUNC 4a244 dc 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_insert
+4a244 4 350 135
+4a248 4 358 135
+4a24c c 350 135
+4a258 c 350 135
+4a264 4 358 135
+4a268 c 359 135
+4a274 4 360 135
+4a278 4 361 135
+4a27c 8 362 135
+4a284 4 364 135
+4a288 4 364 135
+4a28c 14 79 106
+4a2a0 8 364 135
+4a2a8 8 367 135
+4a2b0 4 368 135
+4a2b4 4 367 135
+4a2b8 c 369 135
+4a2c4 8 370 135
+4a2cc 8 373 135
+4a2d4 4 374 135
+4a2d8 4 373 135
+4a2dc c 375 135
+4a2e8 4 376 135
+4a2ec 8 379 135
+4a2f4 4 378 135
+4a2f8 4 379 135
+4a2fc 4 380 135
+4a300 4 382 135
+4a304 8 380 135
+4a30c 4 142 136
+4a310 10 382 135
+FUNC 4a320 fc 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::insert_unique
+4a320 14 405 135
+4a334 4 405 135
+4a338 4 406 135
+4a33c 4 405 135
+4a340 4 407 135
+4a344 4 405 135
+4a348 4 408 135
+4a34c 4 409 135
+4a350 14 79 106
+4a364 8 412 135
+4a36c 8 412 135
+4a374 4 412 135
+4a378 10 405 135
+4a388 4 415 135
+4a38c c 416 135
+4a398 18 417 135
+4a3b0 c 187 136
+4a3bc 10 79 106
+4a3cc 4 421 135
+4a3d0 1c 422 135
+4a3ec 8 142 136
+4a3f4 8 62 124
+4a3fc 4 142 136
+4a400 4 62 124
+4a404 18 425 135
+FUNC 4a41c 2d4 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::insert_unique
+4a41c 18 432 135
+4a434 8 432 135
+4a43c 10 434 135
+4a44c 4 437 135
+4a450 4 438 135
+4a454 4 437 135
+4a458 4 143 106
+4a45c 14 79 106
+4a470 8 440 135
+4a478 14 79 106
+4a48c 8 447 135
+4a494 c 297 135
+4a4a0 10 94 136
+4a4b0 8 301 135
+4a4b8 c 302 135
+4a4c4 c 304 135
+4a4d0 c 309 135
+4a4dc 8 458 135
+4a4e4 14 462 135
+4a4f8 18 79 106
+4a510 8 468 135
+4a518 4 469 135
+4a51c c 470 135
+4a528 8 469 135
+4a530 c 309 135
+4a53c 4 513 135
+4a540 10 475 135
+4a550 c 142 136
+4a55c 8 479 135
+4a564 4 480 135
+4a568 14 79 106
+4a57c 8 480 135
+4a584 18 483 135
+4a59c c 486 135
+4a5a8 8 187 136
+4a5b0 4 143 106
+4a5b4 8 187 136
+4a5bc 14 79 106
+4a5d0 8 494 135
+4a5d8 10 79 106
+4a5e8 c 494 135
+4a5f4 10 500 135
+4a604 8 497 135
+4a60c c 498 135
+4a618 8 522 135
+4a620 1c 524 135
+4a63c 14 79 106
+4a650 4 517 135
+4a654 8 142 136
+4a65c c 297 135
+4a668 10 94 136
+4a678 8 301 135
+4a680 c 302 135
+4a68c c 304 135
+4a698 c 517 135
+4a6a4 10 79 106
+4a6b4 8 517 135
+4a6bc 4 521 135
+4a6c0 14 522 135
+4a6d4 1c 534 135
+FUNC 4a6f0 ec 0 std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::operator[]<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+4a6f0 14 175 118
+4a704 8 175 118
+4a70c 8 568 136
+4a714 4 571 136
+4a718 10 79 106
+4a728 4 572 136
+4a72c 8 573 136
+4a734 14 575 136
+4a748 8 178 118
+4a750 10 79 106
+4a760 4 178 118
+4a764 4 179 118
+4a768 4 62 124
+4a76c 8 179 118
+4a774 8 62 124
+4a77c 4 62 124
+4a780 4 62 124
+4a784 c 62 124
+4a790 4 142 136
+4a794 14 191 118
+4a7a8 4 179 118
+4a7ac 8 51 124
+4a7b4 8 156 132
+4a7bc 8 179 118
+4a7c4 4 180 118
+4a7c8 14 181 118
+FUNC 4a7dc 120 0 google_breakpad::synth_elf::StringTable::Add
+4a7dc 14 75 51
+4a7f0 4 549 136
+4a7f4 10 75 51
+4a804 4 549 136
+4a808 4 552 136
+4a80c 10 79 106
+4a81c 4 553 136
+4a820 8 554 136
+4a828 14 556 136
+4a83c 8 558 136
+4a844 10 79 106
+4a854 8 559 136
+4a85c 8 76 51
+4a864 10 77 51
+4a874 8 77 51
+4a87c 4 77 51
+4a880 4 400 131
+4a884 4 436 62
+4a888 4 400 131
+4a88c 8 436 62
+4a894 4 296 62
+4a898 8 436 62
+4a8a0 10 517 131
+4a8b0 c 453 131
+4a8bc c 81 51
+4a8c8 8 81 51
+4a8d0 c 82 51
+4a8dc 8 82 51
+4a8e4 18 83 51
+FUNC 4a8fc a4 0 google_breakpad::synth_elf::SymbolTable::AddSymbol
+4a8fc 10 222 50
+4a90c 4 222 50
+4a910 4 224 50
+4a914 4 222 50
+4a918 8 224 50
+4a920 c 222 50
+4a92c 4 224 50
+4a930 c 224 50
+4a93c 4 224 50
+4a940 4 357 62
+4a944 4 224 50
+4a948 10 225 50
+4a958 10 226 50
+4a968 1c 453 131
+4a984 c 229 50
+4a990 10 230 50
+FUNC 4a9a0 a4 0 google_breakpad::synth_elf::SymbolTable::AddSymbol
+4a9a0 10 233 50
+4a9b0 4 233 50
+4a9b4 4 235 50
+4a9b8 4 233 50
+4a9bc 8 235 50
+4a9c4 c 233 50
+4a9d0 4 235 50
+4a9d4 c 235 50
+4a9e0 4 235 50
+4a9e4 4 357 62
+4a9e8 4 235 50
+4a9ec 1c 453 131
+4aa08 c 238 50
+4aa14 10 239 50
+4aa24 10 240 50
+4aa34 10 241 50
+FUNC 4aa44 210 0 google_breakpad::synth_elf::ELF::AddSection
+4aa44 c 86 50
+4aa50 4 87 50
+4aa54 c 86 50
+4aa60 4 87 50
+4aa64 4 86 50
+4aa68 4 270 62
+4aa6c 14 86 50
+4aa80 c 86 50
+4aa8c 4 87 50
+4aa90 10 88 50
+4aaa0 4 117 50
+4aaa4 4 88 50
+4aaa8 4 91 50
+4aaac 4 400 131
+4aab0 4 96 50
+4aab4 8 400 131
+4aabc 8 92 50
+4aac4 8 96 50
+4aacc 8 98 50
+4aad4 14 100 50
+4aae8 10 102 50
+4aaf8 10 104 50
+4ab08 10 106 50
+4ab18 c 108 50
+4ab24 8 110 50
+4ab2c 10 112 50
+4ab3c 10 114 50
+4ab4c 4 380 139
+4ab50 4 114 50
+4ab54 c 117 50
+4ab60 24 270 62
+4ab84 c 124 143
+4ab90 c 270 62
+4ab9c 8 145 51
+4aba4 8 117 50
+4abac 8 145 51
+4abb4 4 117 50
+4abb8 c 145 51
+4abc4 4 145 51
+4abc8 4 117 50
+4abcc 10 380 139
+4abdc 4 119 103
+4abe0 c 119 103
+4abec 10 382 139
+4abfc 18 162 139
+4ac14 8 117 50
+4ac1c 8 117 50
+4ac24 8 88 50
+4ac2c 8 118 50
+4ac34 20 119 50
+FUNC 4ac54 100 0 google_breakpad::synth_elf::ELF::Finish
+4ac54 10 187 50
+4ac64 4 187 50
+4ac68 4 189 50
+4ac6c 4 191 50
+4ac70 8 189 50
+4ac78 14 191 50
+4ac8c 28 191 50
+4acb4 8 156 132
+4acbc c 194 50
+4acc8 8 195 50
+4acd0 10 196 50
+4ace0 10 198 50
+4acf0 c 201 50
+4acfc 8 203 50
+4ad04 4 201 50
+4ad08 8 203 50
+4ad10 c 205 50
+4ad1c c 206 50
+4ad28 c 209 50
+4ad34 c 210 50
+4ad40 14 211 50
+FUNC 4ad54 438 0 google_breakpad::synth_elf::ELF::ELF
+4ad54 28 14 50
+4ad7c 4 23 50
+4ad80 10 14 50
+4ad90 4 23 50
+4ad94 8 14 50
+4ad9c 4 23 50
+4ada0 4 23 50
+4ada4 4 23 50
+4ada8 4 23 50
+4adac 8 23 50
+4adb4 4 67 51
+4adb8 4 432 62
+4adbc 4 23 50
+4adc0 4 69 51
+4adc4 4 69 51
+4adc8 8 23 50
+4add0 10 23 50
+4ade0 c 23 50
+4adec 4 23 50
+4adf0 4 23 50
+4adf4 8 23 50
+4adfc c 23 50
+4ae08 8 23 50
+4ae10 4 23 50
+4ae14 8 23 50
+4ae1c c 23 50
+4ae28 8 23 50
+4ae30 4 23 50
+4ae34 14 67 51
+4ae48 4 67 51
+4ae4c c 67 51
+4ae58 4 67 51
+4ae5c 4 481 101
+4ae60 8 263 136
+4ae68 8 432 62
+4ae70 4 266 136
+4ae74 4 267 136
+4ae78 4 391 136
+4ae7c 4 432 62
+4ae80 c 68 51
+4ae8c 8 68 51
+4ae94 18 69 51
+4aeac 14 69 51
+4aec0 8 69 51
+4aec8 4 357 62
+4aecc 4 69 51
+4aed0 8 69 51
+4aed8 8 156 132
+4aee0 4 67 139
+4aee4 8 432 62
+4aeec 4 67 139
+4aef0 4 481 101
+4aef4 4 432 62
+4aef8 c 30 50
+4af04 8 30 50
+4af0c 40 453 131
+4af4c 4 41 50
+4af50 38 453 131
+4af88 8 400 131
+4af90 10 182 130
+4afa0 c 600 130
+4afac 8 74 132
+4afb4 c 74 132
+4afc0 8 74 132
+4afc8 8 184 130
+4afd0 10 185 130
+4afe0 8 185 130
+4afe8 8 186 130
+4aff0 c 314 137
+4affc 8 249 137
+4b004 8 146 103
+4b00c 4 187 130
+4b010 4 53 50
+4b014 8 101 103
+4b01c 4 232 140
+4b020 c 189 130
+4b02c 4 53 50
+4b030 4 67 50
+4b034 4 53 50
+4b038 c 55 50
+4b044 c 57 50
+4b050 14 59 50
+4b064 14 61 50
+4b078 14 63 50
+4b08c c 65 50
+4b098 4 67 50
+4b09c 4 67 50
+4b0a0 4 67 50
+4b0a4 c 67 50
+4b0b0 4 69 50
+4b0b4 8 69 50
+4b0bc 4 69 50
+4b0c0 c 69 50
+4b0cc c 71 50
+4b0d8 4 73 50
+4b0dc 4 73 50
+4b0e0 4 73 50
+4b0e4 c 73 50
+4b0f0 c 75 50
+4b0fc c 77 50
+4b108 c 80 50
+4b114 14 81 50
+4b128 28 81 50
+4b150 8 156 132
+4b158 8 81 50
+4b160 2c 82 50
+FUNC 4b18c 78 0 pthread_barrier_wait
+4b18c 14 62 36
+4b1a0 8 64 36
+4b1a8 10 67 36
+4b1b8 8 69 36
+4b1c0 8 70 36
+4b1c8 c 71 36
+4b1d4 c 76 36
+4b1e0 8 75 36
+4b1e8 8 79 36
+4b1f0 4 80 36
+4b1f4 10 81 36
+FUNC 4b204 60 0 thread_function
+4b204 c 81 53
+4b210 4 81 53
+4b214 8 70 53
+4b21c 4 83 53
+4b220 c 84 53
+4b22c 8 85 53
+4b234 14 86 53
+4b248 c 87 53
+4b254 8 88 53
+4b25c 8 93 36
+FUNC 4b264 6c 0 google_breakpad::CrashGenerator::HasDefaultCorePattern
+4b264 4 108 53
+4b268 4 110 53
+4b26c 8 108 53
+4b274 c 111 53
+4b280 4 110 53
+4b284 10 111 53
+4b294 4 112 53
+4b298 4 111 53
+4b29c 4 112 53
+4b2a0 8 111 53
+4b2a8 1c 112 53
+4b2c4 c 113 53
+FUNC 4b2d0 c 0 google_breakpad::CrashGenerator::GetThreadId
+4b2d0 4 124 53
+4b2d4 8 125 53
+FUNC 4b2dc c 0 google_breakpad::CrashGenerator::GetThreadIdPointer
+4b2dc 4 128 53
+4b2e0 8 129 53
+FUNC 4b2e8 58 0 google_breakpad::CrashGenerator::UnmapSharedMemory
+4b2e8 4 148 53
+4b2ec 4 150 53
+4b2f0 8 148 53
+4b2f8 4 148 53
+4b2fc 8 149 53
+4b304 c 152 53
+4b310 4 153 53
+4b314 4 155 53
+4b318 4 154 53
+4b31c 4 155 53
+4b320 c 158 53
+4b32c 4 159 53
+4b330 10 160 53
+FUNC 4b340 88 0 google_breakpad::CrashGenerator::MapSharedMemory
+4b340 10 131 53
+4b350 8 131 53
+4b358 c 132 53
+4b364 1c 136 53
+4b380 4 137 53
+4b384 4 136 53
+4b388 4 137 53
+4b38c 4 138 53
+4b390 4 139 53
+4b394 c 138 53
+4b3a0 c 142 53
+4b3ac 4 143 53
+4b3b0 4 144 53
+4b3b4 14 146 53
+FUNC 4b3c8 44 0 google_breakpad::CrashGenerator::SetCoreFileSizeLimit
+4b3c8 4 162 53
+4b3cc 4 164 53
+4b3d0 4 162 53
+4b3d4 8 163 53
+4b3dc c 164 53
+4b3e8 4 168 53
+4b3ec 4 164 53
+4b3f0 c 165 53
+4b3fc 4 166 53
+4b400 c 169 53
+FUNC 4b40c dc 0 google_breakpad::CrashGenerator::CopyProcFiles
+4b40c 4 256 53
+4b410 4 265 53
+4b414 10 256 53
+4b424 4 260 53
+4b428 4 265 53
+4b42c c 256 53
+4b438 8 256 53
+4b440 4 258 53
+4b444 c 260 53
+4b450 8 265 53
+4b458 20 260 53
+4b478 8 261 53
+4b480 8 262 53
+4b488 18 265 53
+4b4a0 8 266 53
+4b4a8 14 269 53
+4b4bc 4 258 53
+4b4c0 8 258 53
+4b4c8 20 273 53
+FUNC 4b4e8 188 0 google_breakpad::CrashGenerator::CreateThreadsInChildProcess
+4b4e8 20 275 53
+4b508 4 275 53
+4b50c 4 128 53
+4b510 4 276 53
+4b514 4 278 53
+4b518 4 276 53
+4b51c 4 278 53
+4b520 4 283 53
+4b524 4 288 53
+4b528 4 283 53
+4b52c 8 283 53
+4b534 c 288 53
+4b540 c 290 53
+4b54c 4 288 53
+4b550 10 291 53
+4b560 8 313 53
+4b568 8 314 53
+4b570 4 56 36
+4b574 8 57 36
+4b57c 4 56 36
+4b580 8 305 53
+4b588 4 57 36
+4b58c 10 58 36
+4b59c 4 305 53
+4b5a0 4 58 36
+4b5a4 4 302 53
+4b5a8 c 305 53
+4b5b4 8 128 53
+4b5bc 4 303 53
+4b5c0 8 305 53
+4b5c8 4 304 53
+4b5cc 20 306 53
+4b5ec 8 301 53
+4b5f4 c 301 53
+4b600 8 311 53
+4b608 14 312 53
+4b61c 14 313 53
+4b630 4 85 36
+4b634 4 84 36
+4b638 4 85 36
+4b63c 8 86 36
+4b644 8 318 53
+4b64c 8 319 53
+4b654 1c 320 53
+FUNC 4b670 54 0 testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset
+4b670 c 1152 87
+4b67c 10 1153 87
+4b68c 14 1154 87
+4b6a0 8 1155 87
+4b6a8 c 1155 87
+4b6b4 4 1157 87
+4b6b8 c 1159 87
+FUNC 4b6c4 28 0 google_breakpad::CrashGenerator::CrashGenerator
+4b6c4 c 99 53
+4b6d0 4 99 53
+4b6d4 c 101 53
+4b6e0 c 102 53
+FUNC 4b6ec 30 0 google_breakpad::CrashGenerator::~CrashGenerator
+4b6ec c 104 53
+4b6f8 4 104 53
+4b6fc 4 105 53
+4b700 c 61 63
+4b70c 4 156 132
+4b710 8 106 53
+4b718 4 156 132
+FUNC 4b71c 2c 0 google_breakpad::CrashGenerator::GetCoreFilePath
+4b71c 4 115 53
+4b720 4 116 53
+4b724 4 115 53
+4b728 4 116 53
+4b72c 4 115 53
+4b730 4 115 53
+4b734 4 116 53
+4b738 10 117 53
+FUNC 4b748 2c 0 google_breakpad::CrashGenerator::GetDirectoryOfProcFilesCopy
+4b748 4 119 53
+4b74c 4 120 53
+4b750 4 119 53
+4b754 4 120 53
+4b758 4 119 53
+4b75c 4 119 53
+4b760 4 120 53
+4b764 10 121 53
+FUNC 4b774 27c 0 google_breakpad::CrashGenerator::CreateChildCrash
+4b774 4 173 53
+4b778 4 174 53
+4b77c 8 173 53
+4b784 8 174 53
+4b78c 4 173 53
+4b790 4 174 53
+4b794 c 173 53
+4b7a0 4 174 53
+4b7a4 10 173 53
+4b7b4 4 174 53
+4b7b8 24 176 53
+4b7dc 10 180 53
+4b7ec c 181 53
+4b7f8 4 182 53
+4b7fc 8 185 53
+4b804 4 186 53
+4b808 8 187 53
+4b810 8 187 53
+4b818 c 188 53
+4b824 14 191 53
+4b838 8 192 53
+4b840 4 193 53
+4b844 4 192 53
+4b848 c 193 53
+4b854 c 194 53
+4b860 8 194 53
+4b868 c 195 53
+4b874 8 198 53
+4b87c 10 198 53
+4b88c 4 198 53
+4b890 1c 199 53
+4b8ac 4 215 53
+4b8b0 8 128 53
+4b8b8 4 215 53
+4b8bc 4 214 53
+4b8c0 10 75 53
+4b8d0 8 214 53
+4b8d8 c 215 53
+4b8e4 8 226 53
+4b8ec 8 213 53
+4b8f4 c 156 132
+4b900 c 230 53
+4b90c 8 232 53
+4b914 4 233 53
+4b918 4 239 53
+4b91c 4 233 53
+4b920 4 234 53
+4b924 4 235 53
+4b928 8 234 53
+4b930 4 235 53
+4b934 18 239 53
+4b94c 4 239 53
+4b950 c 239 53
+4b95c 10 240 53
+4b96c 18 243 53
+4b984 8 243 53
+4b98c c 247 53
+4b998 8 247 53
+4b9a0 24 247 53
+4b9c4 4 251 53
+4b9c8 8 252 53
+4b9d0 4 241 53
+4b9d4 1c 254 53
+FUNC 4b9f0 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::~TestFactoryImpl
+4b9f0 4 484 85
+FUNC 4b9f4 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::~TestFactoryImpl
+4b9f4 4 484 85
+FUNC 4b9f8 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::~TestFactoryImpl
+4b9f8 4 484 85
+FUNC 4b9fc 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::~TestFactoryImpl
+4b9fc 4 484 85
+FUNC 4ba00 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::~TestFactoryImpl
+4ba00 4 484 85
+FUNC 4ba04 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::~TestFactoryImpl
+4ba04 4 484 85
+FUNC 4ba08 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::~TestFactoryImpl
+4ba08 4 484 85
+FUNC 4ba0c 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::~TestFactoryImpl
+4ba0c 4 484 85
+FUNC 4ba10 4 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::~TestFactoryImpl
+4ba10 4 484 85
+FUNC 4ba14 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::~TestFactoryImpl
+4ba14 4 484 85
+FUNC 4ba18 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::~TestFactoryImpl
+4ba18 4 484 85
+FUNC 4ba1c 4 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::~TestFactoryImpl
+4ba1c 4 484 85
+FUNC 4ba20 14 0 WastefulVectorTest_UsesPageAllocator_Test::~WastefulVectorTest_UsesPageAllocator_Test
+4ba20 14 91 56
+FUNC 4ba34 24 0 WastefulVectorTest_UsesPageAllocator_Test::~WastefulVectorTest_UsesPageAllocator_Test
+4ba34 c 91 56
+4ba40 8 91 56
+4ba48 4 91 56
+4ba4c 8 91 56
+4ba54 4 91 56
+FUNC 4ba58 14 0 WastefulVectorTest_Simple_Test::~WastefulVectorTest_Simple_Test
+4ba58 14 76 56
+FUNC 4ba6c 24 0 WastefulVectorTest_Simple_Test::~WastefulVectorTest_Simple_Test
+4ba6c c 76 56
+4ba78 8 76 56
+4ba80 4 76 56
+4ba84 8 76 56
+4ba8c 4 76 56
+FUNC 4ba90 14 0 WastefulVectorTest_Setup_Test::~WastefulVectorTest_Setup_Test
+4ba90 14 69 56
+FUNC 4baa4 24 0 WastefulVectorTest_Setup_Test::~WastefulVectorTest_Setup_Test
+4baa4 c 69 56
+4bab0 8 69 56
+4bab8 4 69 56
+4babc 8 69 56
+4bac4 4 69 56
+FUNC 4bac8 14 0 PageAllocatorTest_LargeObject_Test::~PageAllocatorTest_LargeObject_Test
+4bac8 14 53 56
+FUNC 4badc 24 0 PageAllocatorTest_LargeObject_Test::~PageAllocatorTest_LargeObject_Test
+4badc c 53 56
+4bae8 8 53 56
+4baf0 4 53 56
+4baf4 8 53 56
+4bafc 4 53 56
+FUNC 4bb00 14 0 PageAllocatorTest_SmallObjects_Test::~PageAllocatorTest_SmallObjects_Test
+4bb00 14 43 56
+FUNC 4bb14 24 0 PageAllocatorTest_SmallObjects_Test::~PageAllocatorTest_SmallObjects_Test
+4bb14 c 43 56
+4bb20 8 43 56
+4bb28 4 43 56
+4bb2c 8 43 56
+4bb34 4 43 56
+FUNC 4bb38 14 0 PageAllocatorTest_Setup_Test::~PageAllocatorTest_Setup_Test
+4bb38 14 39 56
+FUNC 4bb4c 24 0 PageAllocatorTest_Setup_Test::~PageAllocatorTest_Setup_Test
+4bb4c c 39 56
+4bb58 8 39 56
+4bb60 4 39 56
+4bb64 8 39 56
+4bb6c 4 39 56
+FUNC 4bb70 3c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::CreateTest
+4bb70 10 486 85
+4bb80 8 486 85
+4bb88 8 91 56
+4bb90 4 486 85
+4bb94 c 91 56
+4bba0 c 486 85
+FUNC 4bbac 3c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::CreateTest
+4bbac 10 486 85
+4bbbc 8 486 85
+4bbc4 8 76 56
+4bbcc 4 486 85
+4bbd0 c 76 56
+4bbdc c 486 85
+FUNC 4bbe8 3c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::CreateTest
+4bbe8 10 486 85
+4bbf8 8 486 85
+4bc00 8 69 56
+4bc08 4 486 85
+4bc0c c 69 56
+4bc18 c 486 85
+FUNC 4bc24 3c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::CreateTest
+4bc24 10 486 85
+4bc34 8 486 85
+4bc3c 8 53 56
+4bc44 4 486 85
+4bc48 c 53 56
+4bc54 c 486 85
+FUNC 4bc60 3c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::CreateTest
+4bc60 10 486 85
+4bc70 8 486 85
+4bc78 8 43 56
+4bc80 4 486 85
+4bc84 c 43 56
+4bc90 c 486 85
+FUNC 4bc9c 3c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::CreateTest
+4bc9c 10 486 85
+4bcac 8 486 85
+4bcb4 8 39 56
+4bcbc 4 486 85
+4bcc0 c 39 56
+4bccc c 486 85
+FUNC 4bcd8 34 0 google_breakpad::PageAllocator::PageAllocator
+4bcd8 c 63 54
+4bce4 4 63 54
+4bce8 4 64 54
+4bcec 14 67 54
+4bd00 c 68 54
+FUNC 4bd0c fc 0 google_breakpad::PageAllocator::Alloc
+4bd0c 10 74 54
+4bd1c 4 75 54
+4bd20 8 76 54
+4bd28 c 78 54
+4bd34 10 78 54
+4bd44 4 79 54
+4bd48 4 80 54
+4bd4c 8 81 54
+4bd54 8 80 54
+4bd5c 4 82 54
+4bd60 4 83 54
+4bd64 8 86 54
+4bd6c c 90 54
+4bd78 c 3940 97
+4bd84 4 90 54
+4bd88 4 3940 97
+4bd8c 4 119 54
+4bd90 18 3940 97
+4bda8 4 3940 97
+4bdac c 3940 97
+4bdb8 8 124 54
+4bdc0 8 134 54
+4bdc8 4 135 54
+4bdcc 4 136 54
+4bdd0 14 96 54
+4bde4 4 97 54
+4bde8 4 98 54
+4bdec 8 98 54
+4bdf4 4 98 54
+4bdf8 4 100 54
+4bdfc c 101 54
+FUNC 4be08 64 0 google_breakpad::PageAllocator::FreeAll
+4be08 10 141 54
+4be18 4 141 54
+4be1c 4 144 54
+4be20 4 144 54
+4be24 8 146 54
+4be2c 4 145 54
+4be30 18 3074 97
+4be48 4 3074 97
+4be4c 8 3074 97
+4be54 8 141 54
+4be5c 10 148 54
+FUNC 4be6c 2c 0 PageAllocatorTest_Setup_Test::TestBody
+4be6c c 39 56
+4be78 c 40 56
+4be84 8 71 54
+4be8c c 41 56
+FUNC 4be98 114 0 PageAllocatorTest_SmallObjects_Test::TestBody
+4be98 10 43 56
+4bea8 4 44 56
+4beac 4 277 82
+4beb0 4 43 56
+4beb4 10 44 56
+4bec4 c 47 56
+4bed0 4 48 56
+4bed4 4 47 56
+4bed8 4 1139 87
+4bedc 4 48 56
+4bee0 4 277 82
+4bee4 4 48 56
+4bee8 24 48 56
+4bf0c 4 48 56
+4bf10 4 48 56
+4bf14 4 48 56
+4bf18 1c 48 56
+4bf34 8 48 56
+4bf3c c 48 56
+4bf48 8 85 79
+4bf50 8 48 56
+4bf58 8 156 132
+4bf60 14 256 82
+4bf74 14 49 56
+4bf88 8 46 56
+4bf90 8 71 54
+4bf98 14 51 56
+FUNC 4bfac 180 0 PageAllocatorTest_LargeObject_Test::TestBody
+4bfac c 53 56
+4bfb8 4 54 56
+4bfbc 4 53 56
+4bfc0 4 54 56
+4bfc4 4 53 56
+4bfc8 4 54 56
+4bfcc 4 277 82
+4bfd0 10 56 56
+4bfe0 8 57 56
+4bfe8 4 1139 87
+4bfec 4 277 82
+4bff0 4 57 56
+4bff4 24 57 56
+4c018 4 57 56
+4c01c 4 57 56
+4c020 18 57 56
+4c038 c 256 82
+4c044 c 59 56
+4c050 4 60 56
+4c054 4 59 56
+4c058 4 1139 87
+4c05c 4 60 56
+4c060 4 277 82
+4c064 4 60 56
+4c068 24 60 56
+4c08c 4 60 56
+4c090 4 60 56
+4c094 18 60 56
+4c0ac 4 60 56
+4c0b0 4 60 56
+4c0b4 8 60 56
+4c0bc c 60 56
+4c0c8 8 85 79
+4c0d0 8 60 56
+4c0d8 8 156 132
+4c0e0 14 256 82
+4c0f4 14 61 56
+4c108 8 58 56
+4c110 8 71 54
+4c118 14 63 56
+FUNC 4c12c d4 0 std::priv::_Impl_vector<unsigned int, google_breakpad::PageStdAllocator<unsigned int> >::push_back
+4c12c 14 376 139
+4c140 14 380 139
+4c154 4 126 103
+4c158 10 382 139
+4c168 4 192 139
+4c16c 4 176 139
+4c170 10 192 139
+4c180 4 175 139
+4c184 10 176 139
+4c194 8 177 139
+4c19c 18 172 54
+4c1b4 4 112 138
+4c1b8 4 172 54
+4c1bc 8 224 100
+4c1c4 8 224 100
+4c1cc 4 224 100
+4c1d0 8 481 100
+4c1d8 4 118 138
+4c1dc 4 481 100
+4c1e0 4 666 139
+4c1e4 4 667 139
+4c1e8 4 668 139
+4c1ec 14 388 139
+FUNC 4c200 50 0 testing::internal::DefaultPrintTo<unsigned int>
+4c200 14 307 80
+4c214 4 310 80
+4c218 4 334 80
+4c21c 4 333 122
+4c220 4 334 80
+4c224 8 333 122
+4c22c 10 318 80
+4c23c 8 291 121
+4c244 8 334 80
+4c24c 4 291 121
+FUNC 4c250 a8 0 std::priv::_Impl_vector<unsigned int, google_breakpad::PageStdAllocator<unsigned int> >::reserve
+4c250 14 62 138
+4c264 4 62 138
+4c268 c 199 139
+4c274 8 63 138
+4c27c c 64 138
+4c288 c 41 138
+4c294 8 192 139
+4c29c 8 172 54
+4c2a4 4 192 139
+4c2a8 4 70 138
+4c2ac 8 172 54
+4c2b4 14 120 137
+4c2c8 8 172 54
+4c2d0 8 76 138
+4c2d8 4 666 139
+4c2dc 4 667 139
+4c2e0 4 668 139
+4c2e4 14 78 138
+FUNC 4c2f8 134 0 WastefulVectorTest_UsesPageAllocator_Test::TestBody
+4c2f8 c 91 56
+4c304 4 92 56
+4c308 4 91 56
+4c30c 4 92 56
+4c310 4 95 56
+4c314 4 91 56
+4c318 4 92 56
+4c31c 4 67 139
+4c320 8 153 143
+4c328 8 67 139
+4c330 4 163 54
+4c334 4 481 101
+4c338 4 153 143
+4c33c 8 95 56
+4c344 10 173 143
+4c354 4 106 54
+4c358 4 108 54
+4c35c 4 106 54
+4c360 8 108 54
+4c368 10 108 54
+4c378 8 106 54
+4c380 4 109 54
+4c384 8 277 82
+4c38c 8 1139 87
+4c394 4 96 56
+4c398 1c 96 56
+4c3b4 4 96 56
+4c3b8 4 96 56
+4c3bc 4 96 56
+4c3c0 1c 96 56
+4c3dc 8 96 56
+4c3e4 c 96 56
+4c3f0 8 85 79
+4c3f8 8 96 56
+4c400 8 156 132
+4c408 8 256 82
+4c410 8 71 54
+4c418 14 97 56
+FUNC 4c42c b4 0 testing::internal::CmpHelperEQFailure<long unsigned int, unsigned int>
+4c42c c 1464 82
+4c438 4 884 80
+4c43c 8 1464 82
+4c444 8 1464 82
+4c44c 8 884 80
+4c454 c 1464 82
+4c460 4 884 80
+4c464 8 263 121
+4c46c 4 75 127
+4c470 8 263 121
+4c478 c 75 127
+4c484 8 886 80
+4c48c 10 1382 82
+4c49c 1c 1471 82
+4c4b8 10 156 132
+4c4c8 18 1472 82
+FUNC 4c4e0 d8 0 WastefulVectorTest_Setup_Test::TestBody
+4c4e0 c 69 56
+4c4ec 4 70 56
+4c4f0 4 277 82
+4c4f4 4 70 56
+4c4f8 4 69 56
+4c4fc 4 70 56
+4c500 4 256 82
+4c504 c 172 54
+4c510 4 1139 87
+4c514 8 277 82
+4c51c 8 256 82
+4c524 8 1482 82
+4c52c 8 73 56
+4c534 4 1144 87
+4c538 c 298 82
+4c544 8 298 82
+4c54c 18 73 56
+4c564 4 73 56
+4c568 4 73 56
+4c56c 8 73 56
+4c574 c 73 56
+4c580 8 85 79
+4c588 8 73 56
+4c590 10 256 82
+4c5a0 8 71 54
+4c5a8 10 74 56
+FUNC 4c5b8 84 0 testing::internal::CmpHelperEQFailure<unsigned int, unsigned int>
+4c5b8 c 1464 82
+4c5c4 8 1382 82
+4c5cc 4 1464 82
+4c5d0 8 1464 82
+4c5d8 8 1382 82
+4c5e0 8 1464 82
+4c5e8 14 1382 82
+4c5fc 1c 1471 82
+4c618 10 156 132
+4c628 14 1472 82
+FUNC 4c63c 478 0 WastefulVectorTest_Simple_Test::TestBody
+4c63c 10 76 56
+4c64c 8 77 56
+4c654 8 76 56
+4c65c 4 67 139
+4c660 4 80 56
+4c664 8 76 56
+4c66c 4 1487 82
+4c670 4 76 56
+4c674 4 77 56
+4c678 4 67 139
+4c67c 8 153 143
+4c684 8 67 139
+4c68c 4 163 54
+4c690 4 1487 82
+4c694 4 481 101
+4c698 4 153 143
+4c69c 4 1487 82
+4c6a0 4 80 56
+4c6a4 4 1487 82
+4c6a8 4 256 82
+4c6ac 4 1487 82
+4c6b0 c 80 56
+4c6bc 10 173 143
+4c6cc 4 1482 82
+4c6d0 4 1481 82
+4c6d4 4 207 139
+4c6d8 c 1481 82
+4c6e4 8 1482 82
+4c6ec 10 1487 82
+4c6fc 8 82 56
+4c704 4 1144 87
+4c708 c 298 82
+4c714 8 298 82
+4c71c 1c 82 56
+4c738 8 256 82
+4c740 4 207 139
+4c744 8 202 139
+4c74c 4 207 139
+4c750 4 202 139
+4c754 8 1481 82
+4c75c c 1482 82
+4c768 8 884 80
+4c770 4 380 80
+4c774 4 75 127
+4c778 4 884 80
+4c77c 8 380 80
+4c784 4 75 127
+4c788 4 380 80
+4c78c c 75 127
+4c798 8 886 80
+4c7a0 c 884 80
+4c7ac 8 380 80
+4c7b4 4 75 127
+4c7b8 4 380 80
+4c7bc c 75 127
+4c7c8 8 886 80
+4c7d0 24 1471 82
+4c7f4 10 156 132
+4c804 8 83 56
+4c80c 4 1144 87
+4c810 c 298 82
+4c81c 8 298 82
+4c824 1c 83 56
+4c840 c 83 56
+4c84c c 83 56
+4c858 8 85 79
+4c860 8 83 56
+4c868 14 256 82
+4c87c 10 80 56
+4c88c 4 85 56
+4c890 4 277 82
+4c894 4 85 56
+4c898 8 1139 87
+4c8a0 8 85 56
+4c8a8 4 277 82
+4c8ac 4 1139 87
+4c8b0 4 85 56
+4c8b4 24 85 56
+4c8d8 1c 85 56
+4c8f4 8 85 56
+4c8fc c 85 56
+4c908 8 85 79
+4c910 8 85 56
+4c918 8 156 132
+4c920 10 256 82
+4c930 4 192 139
+4c934 4 1482 82
+4c938 c 192 139
+4c944 8 86 56
+4c94c 4 1481 82
+4c950 4 86 56
+4c954 4 1481 82
+4c958 8 1482 82
+4c960 1c 1487 82
+4c97c 8 86 56
+4c984 4 1144 87
+4c988 c 298 82
+4c994 8 298 82
+4c99c 18 86 56
+4c9b4 4 256 82
+4c9b8 4 1487 82
+4c9bc 4 256 82
+4c9c0 c 1487 82
+4c9cc 4 256 82
+4c9d0 8 87 56
+4c9d8 8 256 82
+4c9e0 c 87 56
+4c9ec c 87 56
+4c9f8 8 202 139
+4ca00 4 1482 82
+4ca04 4 202 139
+4ca08 c 1481 82
+4ca14 4 1482 82
+4ca18 8 88 56
+4ca20 4 1144 87
+4ca24 8 298 82
+4ca2c 18 88 56
+4ca44 8 88 56
+4ca4c c 88 56
+4ca58 8 85 79
+4ca60 8 88 56
+4ca68 14 1487 82
+4ca7c c 298 82
+4ca88 8 71 54
+4ca90 24 89 56
+FUNC 4cab4 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::~TestFactoryImpl
+4cab4 4 484 85
+FUNC 4cab8 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::~TestFactoryImpl
+4cab8 4 484 85
+FUNC 4cabc 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::~TestFactoryImpl
+4cabc 4 484 85
+FUNC 4cac0 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::~TestFactoryImpl
+4cac0 4 484 85
+FUNC 4cac4 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::~TestFactoryImpl
+4cac4 4 484 85
+FUNC 4cac8 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::~TestFactoryImpl
+4cac8 4 484 85
+FUNC 4cacc 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::~TestFactoryImpl
+4cacc 4 484 85
+FUNC 4cad0 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::~TestFactoryImpl
+4cad0 4 484 85
+FUNC 4cad4 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::~TestFactoryImpl
+4cad4 4 484 85
+FUNC 4cad8 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::~TestFactoryImpl
+4cad8 4 484 85
+FUNC 4cadc 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::~TestFactoryImpl
+4cadc 4 484 85
+FUNC 4cae0 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::~TestFactoryImpl
+4cae0 4 484 85
+FUNC 4cae4 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::~TestFactoryImpl
+4cae4 4 484 85
+FUNC 4cae8 4 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::~TestFactoryImpl
+4cae8 4 484 85
+FUNC 4caec 14 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::~NonAllocatingMapTest_OutOfSpace_Test
+4caec 14 282 59
+FUNC 4cb00 24 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::~NonAllocatingMapTest_OutOfSpace_Test
+4cb00 c 282 59
+4cb0c 8 282 59
+4cb14 4 282 59
+4cb18 8 282 59
+4cb20 4 282 59
+FUNC 4cb24 14 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::~NonAllocatingMapTest_Serialize_Test
+4cb24 14 253 59
+FUNC 4cb38 24 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::~NonAllocatingMapTest_Serialize_Test
+4cb38 c 253 59
+4cb44 8 253 59
+4cb4c 4 253 59
+4cb50 8 253 59
+4cb58 4 253 59
+FUNC 4cb5c 14 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::~NonAllocatingMapTest_AddRemove_Test
+4cb5c 14 228 59
+FUNC 4cb70 24 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::~NonAllocatingMapTest_AddRemove_Test
+4cb70 c 228 59
+4cb7c 8 228 59
+4cb84 4 228 59
+4cb88 8 228 59
+4cb90 4 228 59
+FUNC 4cb94 14 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::~NonAllocatingMapTest_Iterator_Test
+4cb94 14 127 59
+FUNC 4cba8 24 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::~NonAllocatingMapTest_Iterator_Test
+4cba8 c 127 59
+4cbb4 8 127 59
+4cbbc 4 127 59
+4cbc0 8 127 59
+4cbc8 4 127 59
+FUNC 4cbcc 14 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::~NonAllocatingMapTest_CopyAndAssign_Test
+4cbcc 14 92 59
+FUNC 4cbe0 24 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::~NonAllocatingMapTest_CopyAndAssign_Test
+4cbe0 c 92 59
+4cbec 8 92 59
+4cbf4 4 92 59
+4cbf8 8 92 59
+4cc00 4 92 59
+FUNC 4cc04 14 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::~NonAllocatingMapTest_SimpleStringDictionary_Test
+4cc04 14 63 59
+FUNC 4cc18 24 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::~NonAllocatingMapTest_SimpleStringDictionary_Test
+4cc18 c 63 59
+4cc24 8 63 59
+4cc2c 4 63 59
+4cc30 8 63 59
+4cc38 4 63 59
+FUNC 4cc3c 14 0 google_breakpad::NonAllocatingMapTest_Entry_Test::~NonAllocatingMapTest_Entry_Test
+4cc3c 14 35 59
+FUNC 4cc50 24 0 google_breakpad::NonAllocatingMapTest_Entry_Test::~NonAllocatingMapTest_Entry_Test
+4cc50 c 35 59
+4cc5c 8 35 59
+4cc64 4 35 59
+4cc68 8 35 59
+4cc70 4 35 59
+FUNC 4cc74 cc 0 google_breakpad::NonAllocatingMap<3ul, 2ul, 2ul>::SetKeyValue
+4cc74 18 161 58
+4cc8c 8 161 58
+4cc94 28 240 58
+4ccbc 4 239 58
+4ccc0 8 240 58
+4ccc8 4 239 58
+4cccc 4 241 58
+4ccd0 8 179 58
+4ccd8 14 181 58
+4ccec 8 180 58
+4ccf4 4 181 58
+4ccf8 14 184 58
+4cd0c 4 182 58
+4cd10 4 184 58
+4cd14 4 185 58
+4cd18 10 206 58
+4cd28 4 207 58
+4cd2c 14 208 58
+FUNC 4cd40 b8 0 google_breakpad::NonAllocatingMap<5ul, 9ul, 15ul>::SetKeyValue
+4cd40 14 161 58
+4cd54 14 161 58
+4cd68 18 240 58
+4cd80 10 239 58
+4cd90 c 181 58
+4cd9c 10 184 58
+4cdac 10 185 58
+4cdbc 8 180 58
+4cdc4 c 180 58
+4cdd0 10 206 58
+4cde0 4 207 58
+4cde4 14 208 58
+FUNC 4cdf8 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::CreateTest
+4cdf8 10 486 85
+4ce08 8 486 85
+4ce10 8 282 59
+4ce18 4 486 85
+4ce1c c 282 59
+4ce28 c 486 85
+FUNC 4ce34 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::CreateTest
+4ce34 10 486 85
+4ce44 8 486 85
+4ce4c 8 63 59
+4ce54 4 486 85
+4ce58 c 63 59
+4ce64 c 486 85
+FUNC 4ce70 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::CreateTest
+4ce70 10 486 85
+4ce80 8 486 85
+4ce88 8 35 59
+4ce90 4 486 85
+4ce94 c 35 59
+4cea0 c 486 85
+FUNC 4ceac 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::CreateTest
+4ceac 10 486 85
+4cebc 8 486 85
+4cec4 8 253 59
+4cecc 4 486 85
+4ced0 c 253 59
+4cedc c 486 85
+FUNC 4cee8 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::CreateTest
+4cee8 10 486 85
+4cef8 8 486 85
+4cf00 8 228 59
+4cf08 4 486 85
+4cf0c c 228 59
+4cf18 c 486 85
+FUNC 4cf24 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::CreateTest
+4cf24 10 486 85
+4cf34 8 486 85
+4cf3c 8 127 59
+4cf44 4 486 85
+4cf48 c 127 59
+4cf54 c 486 85
+FUNC 4cf60 3c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::CreateTest
+4cf60 10 486 85
+4cf70 8 486 85
+4cf78 8 92 59
+4cf80 4 486 85
+4cf84 c 92 59
+4cf90 c 486 85
+FUNC 4cf9c 28 0 google_breakpad::NonAllocatingMap<5ul, 7ul, 6ul>::GetCount
+4cf9c 8 133 58
+4cfa4 14 134 58
+4cfb8 8 135 58
+4cfc0 4 141 58
+FUNC 4cfc4 5c 0 google_breakpad::NonAllocatingMap<256ul, 256ul, 64ul>::GetConstEntryForKey
+4cfc4 10 238 58
+4cfd4 10 238 58
+4cfe4 18 240 58
+4cffc 8 239 58
+4d004 c 244 58
+4d010 10 245 58
+FUNC 4d020 24 0 google_breakpad::NonAllocatingMap<256ul, 256ul, 64ul>::RemoveKey
+4d020 8 212 58
+4d028 4 214 58
+4d02c 4 248 58
+4d030 4 218 58
+4d034 4 219 58
+4d038 4 220 58
+4d03c 8 226 58
+FUNC 4d044 c0 0 google_breakpad::NonAllocatingMap<256ul, 256ul, 64ul>::SetKeyValue
+4d044 14 161 58
+4d058 4 161 58
+4d05c 4 162 58
+4d060 10 208 58
+4d070 4 163 58
+4d074 4 168 58
+4d078 14 173 58
+4d08c 8 248 58
+4d094 c 179 58
+4d0a0 8 181 58
+4d0a8 4 185 58
+4d0ac 4 184 58
+4d0b0 4 181 58
+4d0b4 c 184 58
+4d0c0 8 185 58
+4d0c8 8 180 58
+4d0d0 c 180 58
+4d0dc 10 206 58
+4d0ec 4 207 58
+4d0f0 14 208 58
+FUNC 4d104 5c 0 google_breakpad::NonAllocatingMap<10ul, 10ul, 10ul>::GetConstEntryForKey
+4d104 10 238 58
+4d114 10 238 58
+4d124 18 240 58
+4d13c 8 239 58
+4d144 c 244 58
+4d150 10 245 58
+FUNC 4d160 24 0 google_breakpad::NonAllocatingMap<10ul, 10ul, 10ul>::RemoveKey
+4d160 8 212 58
+4d168 4 214 58
+4d16c 4 248 58
+4d170 4 218 58
+4d174 4 219 58
+4d178 4 220 58
+4d17c 8 226 58
+FUNC 4d184 c4 0 google_breakpad::NonAllocatingMap<10ul, 10ul, 10ul>::SetKeyValue
+4d184 14 161 58
+4d198 4 161 58
+4d19c 4 162 58
+4d1a0 10 208 58
+4d1b0 4 163 58
+4d1b4 4 168 58
+4d1b8 14 173 58
+4d1cc 8 248 58
+4d1d4 c 179 58
+4d1e0 8 181 58
+4d1e8 4 184 58
+4d1ec 4 181 58
+4d1f0 c 184 58
+4d1fc 10 185 58
+4d20c 8 180 58
+4d214 c 180 58
+4d220 10 206 58
+4d230 4 207 58
+4d234 14 208 58
+FUNC 4d248 2c 0 google_breakpad::NonAllocatingMap<10ul, 10ul, 10ul>::GetValueForKey
+4d248 4 145 58
+4d24c 4 148 58
+4d250 4 145 58
+4d254 4 147 58
+4d258 4 150 58
+4d25c c 154 58
+4d268 c 155 58
+FUNC 4d274 5c 0 google_breakpad::NonAllocatingMap<5ul, 7ul, 6ul>::GetConstEntryForKey
+4d274 10 238 58
+4d284 10 238 58
+4d294 18 240 58
+4d2ac 8 239 58
+4d2b4 c 244 58
+4d2c0 10 245 58
+FUNC 4d2d0 24 0 google_breakpad::NonAllocatingMap<5ul, 7ul, 6ul>::RemoveKey
+4d2d0 8 212 58
+4d2d8 4 214 58
+4d2dc 4 248 58
+4d2e0 4 218 58
+4d2e4 4 219 58
+4d2e8 4 220 58
+4d2ec 8 226 58
+FUNC 4d2f4 c4 0 google_breakpad::NonAllocatingMap<5ul, 7ul, 6ul>::SetKeyValue
+4d2f4 14 161 58
+4d308 4 161 58
+4d30c 4 162 58
+4d310 10 208 58
+4d320 4 163 58
+4d324 4 168 58
+4d328 14 173 58
+4d33c 8 248 58
+4d344 c 179 58
+4d350 8 181 58
+4d358 4 184 58
+4d35c 4 181 58
+4d360 c 184 58
+4d36c 10 185 58
+4d37c 8 180 58
+4d384 c 180 58
+4d390 10 206 58
+4d3a0 4 207 58
+4d3a4 14 208 58
+FUNC 4d3b8 5c 0 google_breakpad::NonAllocatingMap<4ul, 5ul, 7ul>::GetConstEntryForKey
+4d3b8 10 238 58
+4d3c8 10 238 58
+4d3d8 18 240 58
+4d3f0 8 239 58
+4d3f8 c 244 58
+4d404 10 245 58
+FUNC 4d414 9c 0 google_breakpad::NonAllocatingMap<4ul, 5ul, 7ul>::SetKeyValue
+4d414 14 161 58
+4d428 c 161 58
+4d434 8 248 58
+4d43c c 179 58
+4d448 8 181 58
+4d450 4 185 58
+4d454 4 184 58
+4d458 4 185 58
+4d45c 8 184 58
+4d464 4 181 58
+4d468 4 184 58
+4d46c 8 185 58
+4d474 8 180 58
+4d47c c 180 58
+4d488 10 206 58
+4d498 4 207 58
+4d49c 14 208 58
+FUNC 4d4b0 600 0 google_breakpad::NonAllocatingMapTest_Entry_Test::TestBody
+4d4b0 20 35 59
+4d4d0 10 104 58
+4d4e0 4 104 58
+4d4e4 8 104 58
+4d4ec 14 104 58
+4d500 8 90 58
+4d508 8 88 58
+4d510 8 94 58
+4d518 4 91 58
+4d51c 4 277 82
+4d520 8 40 59
+4d528 4 1139 87
+4d52c 4 277 82
+4d530 4 40 59
+4d534 24 40 59
+4d558 4 40 59
+4d55c 4 40 59
+4d560 4 40 59
+4d564 1c 40 59
+4d580 8 40 59
+4d588 c 40 59
+4d594 8 85 79
+4d59c 8 40 59
+4d5a4 8 156 132
+4d5ac 34 256 82
+4d5e0 8 90 58
+4d5e8 8 88 58
+4d5f0 4 94 58
+4d5f4 4 1139 87
+4d5f8 10 277 82
+4d608 4 1139 87
+4d60c 4 45 59
+4d610 20 45 59
+4d630 4 45 59
+4d634 4 45 59
+4d638 4 45 59
+4d63c 1c 45 59
+4d658 8 45 59
+4d660 c 45 59
+4d66c 8 85 79
+4d674 8 45 59
+4d67c 8 156 132
+4d684 c 256 82
+4d690 c 46 59
+4d69c 8 256 82
+4d6a4 20 46 59
+4d6c4 4 302 82
+4d6c8 4 46 59
+4d6cc 8 302 82
+4d6d4 18 46 59
+4d6ec 8 46 59
+4d6f4 c 46 59
+4d700 8 85 79
+4d708 8 46 59
+4d710 4 256 82
+4d714 8 47 59
+4d71c 4 256 82
+4d720 24 47 59
+4d744 4 302 82
+4d748 4 47 59
+4d74c 8 302 82
+4d754 18 47 59
+4d76c 8 47 59
+4d774 c 47 59
+4d780 8 85 79
+4d788 8 47 59
+4d790 24 256 82
+4d7b4 24 51 59
+4d7d8 4 302 82
+4d7dc 4 51 59
+4d7e0 8 302 82
+4d7e8 18 51 59
+4d800 8 51 59
+4d808 c 51 59
+4d814 8 85 79
+4d81c 8 51 59
+4d824 8 256 82
+4d82c 20 54 59
+4d84c 4 302 82
+4d850 4 54 59
+4d854 8 302 82
+4d85c 18 54 59
+4d874 8 54 59
+4d87c c 54 59
+4d888 8 85 79
+4d890 8 54 59
+4d898 8 256 82
+4d8a0 4 240 58
+4d8a4 8 256 82
+4d8ac 14 240 58
+4d8c0 4 219 58
+4d8c4 c 220 58
+4d8d0 8 239 58
+4d8d8 8 58 59
+4d8e0 4 1139 87
+4d8e4 8 58 59
+4d8ec 4 277 82
+4d8f0 4 58 59
+4d8f4 20 58 59
+4d914 4 58 59
+4d918 4 58 59
+4d91c 1c 58 59
+4d938 8 58 59
+4d940 c 58 59
+4d94c 8 85 79
+4d954 8 58 59
+4d95c 8 156 132
+4d964 8 256 82
+4d96c 10 59 59
+4d97c 4 1482 82
+4d980 4 1481 82
+4d984 8 1482 82
+4d98c 1c 1487 82
+4d9a8 8 59 59
+4d9b0 c 302 82
+4d9bc 18 59 59
+4d9d4 8 59 59
+4d9dc c 59 59
+4d9e8 8 85 79
+4d9f0 8 59 59
+4d9f8 8 256 82
+4da00 10 60 59
+4da10 4 1482 82
+4da14 4 1481 82
+4da18 8 1482 82
+4da20 1c 1487 82
+4da3c 8 60 59
+4da44 c 302 82
+4da50 18 60 59
+4da68 8 60 59
+4da70 c 60 59
+4da7c 8 85 79
+4da84 8 60 59
+4da8c 8 256 82
+4da94 1c 61 59
+FUNC 4dab0 990 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::TestBody
+4dab0 30 92 59
+4dae0 4 104 58
+4dae4 4 92 59
+4dae8 8 104 58
+4daf0 4 104 58
+4daf4 8 104 58
+4dafc 4 104 58
+4db00 14 94 59
+4db14 8 95 59
+4db1c 4 96 59
+4db20 4 94 59
+4db24 4 96 59
+4db28 14 95 59
+4db3c 10 96 59
+4db4c 8 97 59
+4db54 4 98 59
+4db58 4 97 59
+4db5c 14 98 59
+4db70 14 134 58
+4db84 8 135 58
+4db8c 4 98 59
+4db90 4 1512 82
+4db94 4 98 59
+4db98 20 1512 82
+4dbb8 c 98 59
+4dbc4 c 302 82
+4dbd0 18 98 59
+4dbe8 8 98 59
+4dbf0 c 98 59
+4dbfc 8 85 79
+4dc04 8 98 59
+4dc0c 4 256 82
+4dc10 4 102 59
+4dc14 4 256 82
+4dc18 10 117 58
+4dc28 c 102 59
+4dc34 14 134 58
+4dc48 8 135 58
+4dc50 4 1512 82
+4dc54 4 102 59
+4dc58 1c 1512 82
+4dc74 8 102 59
+4dc7c c 302 82
+4dc88 18 102 59
+4dca0 8 102 59
+4dca8 c 102 59
+4dcb4 8 85 79
+4dcbc 8 102 59
+4dcc4 4 256 82
+4dcc8 8 103 59
+4dcd0 4 256 82
+4dcd4 10 103 59
+4dce4 14 103 59
+4dcf8 c 103 59
+4dd04 c 302 82
+4dd10 18 103 59
+4dd28 8 103 59
+4dd30 c 103 59
+4dd3c 8 85 79
+4dd44 8 103 59
+4dd4c 4 256 82
+4dd50 4 104 59
+4dd54 4 256 82
+4dd58 14 104 59
+4dd6c 1c 104 59
+4dd88 c 104 59
+4dd94 c 302 82
+4dda0 18 104 59
+4ddb8 8 104 59
+4ddc0 c 104 59
+4ddcc 8 85 79
+4ddd4 8 104 59
+4dddc 4 256 82
+4dde0 4 105 59
+4dde4 4 256 82
+4dde8 24 105 59
+4de0c 8 106 59
+4de14 4 106 59
+4de18 8 106 59
+4de20 20 106 59
+4de40 10 106 59
+4de50 c 302 82
+4de5c 18 106 59
+4de74 8 106 59
+4de7c c 106 59
+4de88 8 85 79
+4de90 8 106 59
+4de98 8 256 82
+4dea0 18 107 59
+4deb8 4 1139 87
+4debc 4 277 82
+4dec0 4 107 59
+4dec4 20 107 59
+4dee4 4 107 59
+4dee8 4 107 59
+4deec 1c 107 59
+4df08 8 107 59
+4df10 c 107 59
+4df1c 8 85 79
+4df24 8 107 59
+4df2c 8 156 132
+4df34 c 256 82
+4df40 8 104 58
+4df48 4 104 58
+4df4c 8 104 58
+4df54 4 104 58
+4df58 8 117 58
+4df60 4 112 59
+4df64 4 117 58
+4df68 c 112 59
+4df74 14 134 58
+4df88 8 135 58
+4df90 4 112 59
+4df94 20 1512 82
+4dfb4 8 112 59
+4dfbc c 302 82
+4dfc8 18 112 59
+4dfe0 8 112 59
+4dfe8 c 112 59
+4dff4 8 85 79
+4dffc 8 112 59
+4e004 8 256 82
+4e00c 10 113 59
+4e01c 20 113 59
+4e03c c 113 59
+4e048 c 302 82
+4e054 18 113 59
+4e06c 8 113 59
+4e074 c 113 59
+4e080 8 85 79
+4e088 8 113 59
+4e090 8 256 82
+4e098 14 114 59
+4e0ac 20 114 59
+4e0cc 8 114 59
+4e0d4 c 302 82
+4e0e0 18 114 59
+4e0f8 8 114 59
+4e100 c 114 59
+4e10c 8 85 79
+4e114 8 114 59
+4e11c 4 256 82
+4e120 4 115 59
+4e124 4 256 82
+4e128 1c 115 59
+4e144 14 116 59
+4e158 1c 116 59
+4e174 8 116 59
+4e17c c 302 82
+4e188 18 116 59
+4e1a0 8 116 59
+4e1a8 c 116 59
+4e1b4 8 85 79
+4e1bc 8 116 59
+4e1c4 8 256 82
+4e1cc 18 117 59
+4e1e4 4 1139 87
+4e1e8 4 277 82
+4e1ec 4 117 59
+4e1f0 20 117 59
+4e210 4 117 59
+4e214 4 117 59
+4e218 1c 117 59
+4e234 8 117 59
+4e23c c 117 59
+4e248 8 85 79
+4e250 8 117 59
+4e258 8 156 132
+4e260 4 256 82
+4e264 4 119 59
+4e268 4 256 82
+4e26c c 119 59
+4e278 14 120 59
+4e28c 4 1139 87
+4e290 4 277 82
+4e294 4 120 59
+4e298 20 120 59
+4e2b8 4 120 59
+4e2bc 4 120 59
+4e2c0 1c 120 59
+4e2dc 8 120 59
+4e2e4 c 120 59
+4e2f0 8 85 79
+4e2f8 8 120 59
+4e300 8 156 132
+4e308 8 256 82
+4e310 10 121 59
+4e320 18 121 59
+4e338 8 121 59
+4e340 c 302 82
+4e34c 18 121 59
+4e364 8 121 59
+4e36c c 121 59
+4e378 8 85 79
+4e380 8 121 59
+4e388 8 256 82
+4e390 10 122 59
+4e3a0 18 122 59
+4e3b8 8 122 59
+4e3c0 c 302 82
+4e3cc 18 122 59
+4e3e4 8 122 59
+4e3ec c 122 59
+4e3f8 8 85 79
+4e400 8 122 59
+4e408 8 256 82
+4e410 30 123 59
+FUNC 4e440 6a8 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::TestBody
+4e440 4 228 59
+4e444 4 230 59
+4e448 c 228 59
+4e454 c 104 58
+4e460 4 230 59
+4e464 4 228 59
+4e468 4 104 58
+4e46c 4 1512 82
+4e470 4 104 58
+4e474 4 1512 82
+4e478 4 104 58
+4e47c 4 1512 82
+4e480 c 104 58
+4e48c c 228 59
+4e498 4 104 58
+4e49c 4 230 59
+4e4a0 4 104 58
+4e4a4 c 230 59
+4e4b0 4 231 59
+4e4b4 8 104 58
+4e4bc 4 231 59
+4e4c0 4 104 58
+4e4c4 4 230 59
+4e4c8 c 231 59
+4e4d4 8 232 59
+4e4dc 4 1512 82
+4e4e0 4 231 59
+4e4e4 10 232 59
+4e4f4 14 234 59
+4e508 20 1512 82
+4e528 18 234 59
+4e540 c 302 82
+4e54c 18 234 59
+4e564 8 234 59
+4e56c c 234 59
+4e578 8 85 79
+4e580 8 234 59
+4e588 8 256 82
+4e590 10 150 58
+4e5a0 4 154 58
+4e5a4 4 235 59
+4e5a8 4 154 58
+4e5ac 20 235 59
+4e5cc 8 235 59
+4e5d4 c 302 82
+4e5e0 18 235 59
+4e5f8 8 235 59
+4e600 c 235 59
+4e60c 8 85 79
+4e614 8 235 59
+4e61c 4 256 82
+4e620 4 236 59
+4e624 4 256 82
+4e628 c 150 58
+4e634 8 154 58
+4e63c 20 236 59
+4e65c 8 236 59
+4e664 c 302 82
+4e670 18 236 59
+4e688 8 236 59
+4e690 c 236 59
+4e69c 8 85 79
+4e6a4 8 236 59
+4e6ac 4 256 82
+4e6b0 4 237 59
+4e6b4 4 256 82
+4e6b8 c 150 58
+4e6c4 8 154 58
+4e6cc 1c 237 59
+4e6e8 8 237 59
+4e6f0 c 302 82
+4e6fc 18 237 59
+4e714 8 237 59
+4e71c c 237 59
+4e728 8 85 79
+4e730 8 237 59
+4e738 4 256 82
+4e73c 4 1512 82
+4e740 4 256 82
+4e744 c 239 59
+4e750 14 241 59
+4e764 18 1512 82
+4e77c 8 241 59
+4e784 c 302 82
+4e790 18 241 59
+4e7a8 8 241 59
+4e7b0 c 241 59
+4e7bc 8 85 79
+4e7c4 8 241 59
+4e7cc 8 256 82
+4e7d4 c 150 58
+4e7e0 8 154 58
+4e7e8 4 1139 87
+4e7ec 4 154 58
+4e7f0 8 242 59
+4e7f8 4 277 82
+4e7fc 4 242 59
+4e800 1c 242 59
+4e81c 4 242 59
+4e820 4 242 59
+4e824 1c 242 59
+4e840 8 242 59
+4e848 c 242 59
+4e854 8 85 79
+4e85c 8 242 59
+4e864 8 156 132
+4e86c 4 256 82
+4e870 4 244 59
+4e874 4 256 82
+4e878 10 244 59
+4e888 14 245 59
+4e89c 18 1512 82
+4e8b4 8 245 59
+4e8bc c 302 82
+4e8c8 18 245 59
+4e8e0 8 245 59
+4e8e8 c 245 59
+4e8f4 8 85 79
+4e8fc 8 245 59
+4e904 8 256 82
+4e90c c 150 58
+4e918 8 154 58
+4e920 1c 246 59
+4e93c 8 246 59
+4e944 c 302 82
+4e950 18 246 59
+4e968 8 246 59
+4e970 c 246 59
+4e97c 8 85 79
+4e984 8 246 59
+4e98c 4 256 82
+4e990 4 249 59
+4e994 4 256 82
+4e998 c 248 59
+4e9a4 10 249 59
+4e9b4 1c 1512 82
+4e9d0 8 249 59
+4e9d8 c 302 82
+4e9e4 18 249 59
+4e9fc 8 249 59
+4ea04 c 249 59
+4ea10 8 85 79
+4ea18 8 249 59
+4ea20 8 256 82
+4ea28 c 150 58
+4ea34 8 154 58
+4ea3c 4 1139 87
+4ea40 4 154 58
+4ea44 8 250 59
+4ea4c 4 277 82
+4ea50 4 250 59
+4ea54 1c 250 59
+4ea70 4 250 59
+4ea74 4 250 59
+4ea78 1c 250 59
+4ea94 8 250 59
+4ea9c c 250 59
+4eaa8 8 85 79
+4eab0 8 250 59
+4eab8 8 156 132
+4eac0 8 256 82
+4eac8 20 251 59
+FUNC 4eae8 5a4 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::TestBody
+4eae8 24 253 59
+4eb0c 4 104 58
+4eb10 4 253 59
+4eb14 c 104 58
+4eb20 4 104 58
+4eb24 4 104 58
+4eb28 54 104 58
+4eb7c c 150 58
+4eb88 10 154 58
+4eb98 24 260 59
+4ebbc 10 260 59
+4ebcc 4 302 82
+4ebd0 4 260 59
+4ebd4 8 302 82
+4ebdc 18 260 59
+4ebf4 8 260 59
+4ebfc c 260 59
+4ec08 8 85 79
+4ec10 8 260 59
+4ec18 4 256 82
+4ec1c 4 261 59
+4ec20 4 256 82
+4ec24 c 150 58
+4ec30 8 154 58
+4ec38 1c 261 59
+4ec54 8 261 59
+4ec5c 4 302 82
+4ec60 4 261 59
+4ec64 8 302 82
+4ec6c 18 261 59
+4ec84 8 261 59
+4ec8c c 261 59
+4ec98 8 85 79
+4eca0 8 261 59
+4eca8 4 256 82
+4ecac 4 262 59
+4ecb0 4 256 82
+4ecb4 c 150 58
+4ecc0 8 154 58
+4ecc8 1c 262 59
+4ece4 8 262 59
+4ecec 4 302 82
+4ecf0 4 262 59
+4ecf4 8 302 82
+4ecfc 18 262 59
+4ed14 8 262 59
+4ed1c c 262 59
+4ed28 8 85 79
+4ed30 8 262 59
+4ed38 8 256 82
+4ed40 8 268 59
+4ed48 4 277 82
+4ed4c 4 268 59
+4ed50 4 1139 87
+4ed54 c 277 82
+4ed60 4 269 59
+4ed64 24 269 59
+4ed88 4 269 59
+4ed8c 4 269 59
+4ed90 4 269 59
+4ed94 1c 269 59
+4edb0 8 269 59
+4edb8 c 269 59
+4edc4 8 85 79
+4edcc 8 269 59
+4edd4 8 156 132
+4eddc 14 256 82
+4edf0 10 270 59
+4ee00 10 127 58
+4ee10 8 273 59
+4ee18 c 275 59
+4ee24 14 134 58
+4ee38 8 135 58
+4ee40 4 275 59
+4ee44 28 1512 82
+4ee6c 8 275 59
+4ee74 c 302 82
+4ee80 18 275 59
+4ee98 8 275 59
+4eea0 c 275 59
+4eeac 8 85 79
+4eeb4 8 275 59
+4eebc 8 256 82
+4eec4 10 150 58
+4eed4 8 154 58
+4eedc 24 276 59
+4ef00 8 276 59
+4ef08 c 302 82
+4ef14 18 276 59
+4ef2c 8 276 59
+4ef34 c 276 59
+4ef40 8 85 79
+4ef48 8 276 59
+4ef50 8 256 82
+4ef58 c 150 58
+4ef64 8 154 58
+4ef6c 1c 277 59
+4ef88 8 277 59
+4ef90 c 302 82
+4ef9c 18 277 59
+4efb4 8 277 59
+4efbc c 277 59
+4efc8 8 85 79
+4efd0 8 277 59
+4efd8 8 256 82
+4efe0 c 150 58
+4efec 8 154 58
+4eff4 1c 278 59
+4f010 8 278 59
+4f018 c 302 82
+4f024 18 278 59
+4f03c 8 278 59
+4f044 c 278 59
+4f050 8 85 79
+4f058 8 278 59
+4f060 8 256 82
+4f068 24 279 59
+FUNC 4f08c 218 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::TestBody
+4f08c 14 282 59
+4f0a0 10 104 58
+4f0b0 c 282 59
+4f0bc 4 104 58
+4f0c0 4 1512 82
+4f0c4 4 104 58
+4f0c8 4 1512 82
+4f0cc 4 104 58
+4f0d0 4 1512 82
+4f0d4 8 104 58
+4f0dc c 104 58
+4f0e8 38 104 58
+4f120 8 287 59
+4f128 4 136 58
+4f12c 4 1512 82
+4f130 4 136 58
+4f134 4 1512 82
+4f138 4 136 58
+4f13c 4 1512 82
+4f140 4 136 58
+4f144 8 137 58
+4f14c 4 1512 82
+4f150 4 287 59
+4f154 10 1512 82
+4f164 8 287 59
+4f16c c 302 82
+4f178 18 287 59
+4f190 8 287 59
+4f198 c 287 59
+4f1a4 8 85 79
+4f1ac 8 287 59
+4f1b4 4 256 82
+4f1b8 4 240 58
+4f1bc 4 256 82
+4f1c0 24 240 58
+4f1e4 4 152 58
+4f1e8 4 240 58
+4f1ec 8 239 58
+4f1f4 4 239 58
+4f1f8 c 154 58
+4f204 4 288 59
+4f208 4 1139 87
+4f20c 4 288 59
+4f210 4 277 82
+4f214 4 288 59
+4f218 20 288 59
+4f238 4 288 59
+4f23c 4 288 59
+4f240 1c 288 59
+4f25c 8 288 59
+4f264 c 288 59
+4f270 8 85 79
+4f278 8 288 59
+4f280 8 156 132
+4f288 8 256 82
+4f290 14 289 59
+FUNC 4f2a4 144 0 testing::internal::CmpHelperOpFailure<char const*, char [7]>
+4f2a4 c 1579 82
+4f2b0 4 1583 82
+4f2b4 4 1579 82
+4f2b8 4 1583 82
+4f2bc 14 1579 82
+4f2d0 4 1408 82
+4f2d4 4 1579 82
+4f2d8 4 1408 82
+4f2dc 4 1579 82
+4f2e0 4 1583 82
+4f2e4 10 1583 82
+4f2f4 8 1583 82
+4f2fc c 1583 82
+4f308 8 1583 82
+4f310 c 1583 82
+4f31c 8 1583 82
+4f324 10 1584 82
+4f334 18 1408 82
+4f34c 10 1584 82
+4f35c 8 306 82
+4f364 14 333 122
+4f378 c 306 82
+4f384 8 85 79
+4f38c 14 1408 82
+4f3a0 10 1585 82
+4f3b0 8 1585 82
+4f3b8 10 156 132
+4f3c8 8 256 82
+4f3d0 18 1586 82
+FUNC 4f3e8 40 0 testing::internal::CmpHelperNE<char const*, char [7]>
+4f3e8 10 1615 82
+4f3f8 c 1615 82
+4f404 4 1615 82
+4f408 4 1615 82
+4f40c c 1615 82
+4f418 10 1615 82
+FUNC 4f428 57c 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::TestBody
+4f428 20 63 59
+4f448 4 63 59
+4f44c 18 104 58
+4f464 8 104 58
+4f46c 20 68 59
+4f48c 8 69 59
+4f494 4 68 59
+4f498 4 70 59
+4f49c c 69 59
+4f4a8 4 70 59
+4f4ac 4 72 59
+4f4b0 4 69 59
+4f4b4 10 70 59
+4f4c4 8 150 58
+4f4cc 4 72 59
+4f4d0 4 150 58
+4f4d4 8 154 58
+4f4dc 4 72 59
+4f4e0 4 154 58
+4f4e4 4 72 59
+4f4e8 4 72 59
+4f4ec 18 72 59
+4f504 8 72 59
+4f50c 4 302 82
+4f510 4 72 59
+4f514 8 302 82
+4f51c 18 72 59
+4f534 8 72 59
+4f53c c 72 59
+4f548 8 85 79
+4f550 8 72 59
+4f558 4 256 82
+4f55c 4 73 59
+4f560 4 256 82
+4f564 4 73 59
+4f568 4 256 82
+4f56c c 150 58
+4f578 8 154 58
+4f580 4 73 59
+4f584 4 154 58
+4f588 4 73 59
+4f58c 4 73 59
+4f590 14 73 59
+4f5a4 8 73 59
+4f5ac 4 302 82
+4f5b0 4 73 59
+4f5b4 8 302 82
+4f5bc 18 73 59
+4f5d4 8 73 59
+4f5dc c 73 59
+4f5e8 8 85 79
+4f5f0 8 73 59
+4f5f8 4 256 82
+4f5fc 4 74 59
+4f600 4 256 82
+4f604 4 74 59
+4f608 4 256 82
+4f60c c 150 58
+4f618 8 154 58
+4f620 4 74 59
+4f624 4 154 58
+4f628 4 74 59
+4f62c 4 74 59
+4f630 14 74 59
+4f644 8 74 59
+4f64c 4 302 82
+4f650 4 74 59
+4f654 8 302 82
+4f65c 18 74 59
+4f674 8 74 59
+4f67c c 74 59
+4f688 8 85 79
+4f690 8 74 59
+4f698 c 256 82
+4f6a4 14 134 58
+4f6b8 8 135 58
+4f6c0 c 75 59
+4f6cc 4 1481 82
+4f6d0 c 75 59
+4f6dc 4 1481 82
+4f6e0 8 1482 82
+4f6e8 14 1487 82
+4f6fc c 75 59
+4f708 4 302 82
+4f70c 8 75 59
+4f714 4 302 82
+4f718 10 75 59
+4f728 4 75 59
+4f72c 4 75 59
+4f730 8 75 59
+4f738 c 75 59
+4f744 8 85 79
+4f74c 8 75 59
+4f754 c 256 82
+4f760 10 150 58
+4f770 8 154 58
+4f778 4 1139 87
+4f77c 4 154 58
+4f780 4 77 59
+4f784 4 277 82
+4f788 4 77 59
+4f78c 4 277 82
+4f790 4 77 59
+4f794 1c 77 59
+4f7b0 4 77 59
+4f7b4 4 77 59
+4f7b8 4 77 59
+4f7bc 1c 77 59
+4f7d8 8 77 59
+4f7e0 c 77 59
+4f7ec 8 85 79
+4f7f4 8 77 59
+4f7fc 8 156 132
+4f804 4 256 82
+4f808 4 80 59
+4f80c 8 256 82
+4f814 c 80 59
+4f820 c 150 58
+4f82c 8 154 58
+4f834 4 1139 87
+4f838 4 154 58
+4f83c 8 83 59
+4f844 4 277 82
+4f848 4 83 59
+4f84c 20 83 59
+4f86c 4 83 59
+4f870 4 83 59
+4f874 4 83 59
+4f878 1c 83 59
+4f894 8 83 59
+4f89c c 83 59
+4f8a8 8 85 79
+4f8b0 8 83 59
+4f8b8 8 156 132
+4f8c0 4 256 82
+4f8c4 4 163 58
+4f8c8 8 256 82
+4f8d0 c 163 58
+4f8dc c 150 58
+4f8e8 8 154 58
+4f8f0 4 1139 87
+4f8f4 4 154 58
+4f8f8 8 89 59
+4f900 4 277 82
+4f904 4 89 59
+4f908 20 89 59
+4f928 4 89 59
+4f92c 4 89 59
+4f930 4 89 59
+4f934 1c 89 59
+4f950 8 89 59
+4f958 c 89 59
+4f964 8 85 79
+4f96c 8 89 59
+4f974 8 156 132
+4f97c 8 256 82
+4f984 20 90 59
+FUNC 4f9a4 60c 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::TestBody
+4f9a4 4 127 59
+4f9a8 4 128 59
+4f9ac 20 127 59
+4f9cc 10 128 59
+4f9dc 14 104 58
+4f9f0 8 104 58
+4f9f8 8 277 82
+4fa00 4 256 82
+4fa04 4 277 82
+4fa08 4 256 82
+4fa0c c 1139 87
+4fa18 4 256 82
+4fa1c 8 1621 82
+4fa24 8 138 59
+4fa2c c 302 82
+4fa38 18 138 59
+4fa50 8 138 59
+4fa58 c 138 59
+4fa64 8 85 79
+4fa6c 8 138 59
+4fa74 8 256 82
+4fa7c 4 142 59
+4fa80 4 256 82
+4fa84 4 146 59
+4fa88 4 147 59
+4fa8c 4 256 82
+4fa90 4 145 59
+4fa94 4 142 59
+4fa98 4 146 59
+4fa9c 4 147 59
+4faa0 10 146 59
+4fab0 c 147 59
+4fabc 4 145 59
+4fac0 4 147 59
+4fac4 10 148 59
+4fad4 8 145 59
+4fadc 14 153 59
+4faf0 4 150 59
+4faf4 4 153 59
+4faf8 18 154 59
+4fb10 18 155 59
+4fb28 10 158 59
+4fb38 10 159 59
+4fb48 10 160 59
+4fb58 10 161 59
+4fb68 c 162 59
+4fb74 10 166 59
+4fb84 c 167 59
+4fb90 4 165 59
+4fb94 4 167 59
+4fb98 10 168 59
+4fba8 8 165 59
+4fbb0 4 170 59
+4fbb4 8 181 59
+4fbbc 4 1512 82
+4fbc0 8 170 59
+4fbc8 8 181 59
+4fbd0 4 183 59
+4fbd4 4 82 58
+4fbd8 4 181 59
+4fbdc 4 191 59
+4fbe0 4 256 82
+4fbe4 4 183 59
+4fbe8 10 256 82
+4fbf8 8 88 58
+4fc00 10 89 58
+4fc10 8 90 58
+4fc18 4 187 59
+4fc1c c 191 59
+4fc28 8 187 59
+4fc30 4 191 59
+4fc34 4 195 59
+4fc38 8 191 59
+4fc40 18 195 59
+4fc58 20 1512 82
+4fc78 8 198 59
+4fc80 4 302 82
+4fc84 4 198 59
+4fc88 8 302 82
+4fc90 18 198 59
+4fca8 8 198 59
+4fcb0 c 198 59
+4fcbc 8 85 79
+4fcc4 8 198 59
+4fccc 8 256 82
+4fcd4 4 1139 87
+4fcd8 8 203 59
+4fce0 4 205 59
+4fce4 4 203 59
+4fce8 4 277 82
+4fcec 8 205 59
+4fcf4 4 206 59
+4fcf8 24 206 59
+4fd1c 24 206 59
+4fd40 10 206 59
+4fd50 14 206 59
+4fd64 c 85 79
+4fd70 c 206 59
+4fd7c 8 156 132
+4fd84 8 256 82
+4fd8c 4 277 82
+4fd90 4 1139 87
+4fd94 4 207 59
+4fd98 24 207 59
+4fdbc 24 207 59
+4fde0 10 207 59
+4fdf0 14 207 59
+4fe04 c 85 79
+4fe10 c 207 59
+4fe1c 8 156 132
+4fe24 8 256 82
+4fe2c 8 209 59
+4fe34 14 210 59
+4fe48 8 1512 82
+4fe50 4 88 58
+4fe54 4 219 59
+4fe58 4 1512 82
+4fe5c 4 256 82
+4fe60 14 218 59
+4fe74 8 218 59
+4fe7c 18 1512 82
+4fe94 8 219 59
+4fe9c 4 1512 82
+4fea0 8 219 59
+4fea8 4 302 82
+4feac 4 219 59
+4feb0 8 302 82
+4feb8 18 219 59
+4fed0 8 219 59
+4fed8 c 219 59
+4fee4 8 85 79
+4feec 8 219 59
+4fef4 8 256 82
+4fefc 4 216 59
+4ff00 8 216 59
+4ff08 24 1512 82
+4ff2c 8 224 59
+4ff34 4 302 82
+4ff38 4 224 59
+4ff3c 4 224 59
+4ff40 8 302 82
+4ff48 18 224 59
+4ff60 8 224 59
+4ff68 c 224 59
+4ff74 8 85 79
+4ff7c 8 224 59
+4ff84 8 256 82
+4ff8c 24 225 59
+FUNC 4ffb0 38 0 google_breakpad::test_assembler::Label::Label
+4ffb0 c 47 61
+4ffbc c 47 61
+4ffc8 10 127 61
+4ffd8 10 47 61
+FUNC 4ffe8 40 0 google_breakpad::test_assembler::Label::Label
+4ffe8 c 48 61
+4fff4 10 48 61
+50004 14 130 61
+50018 10 48 61
+FUNC 50028 18 0 google_breakpad::test_assembler::Label::Label
+50028 8 50 61
+50030 c 180 62
+5003c 4 52 61
+FUNC 50040 14 0 google_breakpad::test_assembler::Label::Binding::Binding
+50040 14 127 61
+FUNC 50054 14 0 google_breakpad::test_assembler::Label::Binding::Binding
+50054 14 130 61
+FUNC 50068 58 0 google_breakpad::test_assembler::Label::Binding::~Binding
+50068 c 132 61
+50074 4 134 61
+50078 c 134 61
+50084 c 182 62
+50090 4 134 61
+50094 8 135 61
+5009c 8 135 61
+500a4 4 135 61
+500a8 8 136 61
+500b0 4 135 61
+500b4 c 136 61
+FUNC 500c0 4c 0 google_breakpad::test_assembler::Label::~Label
+500c0 c 53 61
+500cc 4 54 61
+500d0 c 182 62
+500dc 4 54 61
+500e0 8 54 61
+500e8 8 54 61
+500f0 4 54 61
+500f4 8 55 61
+500fc 4 54 61
+50100 c 55 61
+FUNC 5010c b0 0 google_breakpad::test_assembler::Label::Binding::Get
+5010c 10 186 61
+5011c 8 186 61
+50124 4 187 61
+50128 4 186 61
+5012c c 187 61
+50138 c 194 61
+50144 8 195 61
+5014c c 180 62
+50158 4 196 61
+5015c c 182 62
+50168 4 196 61
+5016c 8 196 61
+50174 8 196 61
+5017c 8 196 61
+50184 4 197 61
+50188 4 198 61
+5018c 4 197 61
+50190 c 198 61
+5019c 8 200 61
+501a4 8 201 61
+501ac 10 202 61
+FUNC 501bc 4c 0 google_breakpad::test_assembler::Label::IsKnownConstant
+501bc c 104 61
+501c8 4 107 61
+501cc 4 104 61
+501d0 c 107 61
+501dc 4 108 61
+501e0 4 108 61
+501e4 4 108 61
+501e8 4 110 61
+501ec 4 109 61
+501f0 8 109 61
+501f8 4 110 61
+501fc c 111 61
+FUNC 50208 20 0 google_breakpad::test_assembler::Label::Value
+50208 8 98 61
+50210 8 99 61
+50218 4 100 61
+5021c c 102 61
+FUNC 50228 70 0 google_breakpad::test_assembler::Label::IsKnownOffsetFrom
+50228 c 114 61
+50234 8 114 61
+5023c 10 117 61
+5024c 10 118 61
+5025c 4 122 61
+50260 4 122 61
+50264 c 122 61
+50270 4 124 61
+50274 4 123 61
+50278 10 123 61
+50288 4 124 61
+5028c c 125 61
+FUNC 50298 1c 0 google_breakpad::test_assembler::Label::operator-
+50298 8 92 61
+502a0 8 94 61
+502a8 c 96 61
+FUNC 502b4 cc 0 google_breakpad::test_assembler::Label::Binding::Set
+502b4 10 138 61
+502c4 c 138 61
+502d0 4 139 61
+502d4 4 139 61
+502d8 4 139 61
+502dc 4 139 61
+502e0 14 145 61
+502f4 4 147 61
+502f8 c 154 61
+50304 8 155 61
+5030c c 163 61
+50318 10 169 61
+50328 4 171 61
+5032c c 182 62
+50338 4 171 61
+5033c 8 171 61
+50344 8 171 61
+5034c 8 171 61
+50354 8 180 61
+5035c c 180 62
+50368 4 181 61
+5036c 4 182 61
+50370 10 184 61
+FUNC 50380 30 0 google_breakpad::test_assembler::Label::operator=
+50380 8 57 61
+50388 4 58 61
+5038c 8 57 61
+50394 4 57 61
+50398 8 58 61
+503a0 10 60 61
+FUNC 503b0 30 0 google_breakpad::test_assembler::Label::operator=
+503b0 4 62 61
+503b4 4 63 61
+503b8 8 62 61
+503c0 4 62 61
+503c4 c 63 61
+503d0 10 65 61
+FUNC 503e0 40 0 google_breakpad::test_assembler::Label::operator+
+503e0 c 67 61
+503ec 8 67 61
+503f4 4 68 61
+503f8 4 67 61
+503fc 4 68 61
+50400 10 69 61
+50410 10 71 61
+FUNC 50420 48 0 google_breakpad::test_assembler::Label::operator-
+50420 10 73 61
+50430 8 73 61
+50438 4 74 61
+5043c 4 73 61
+50440 4 74 61
+50444 10 75 61
+50454 14 77 61
+FUNC 50468 48 0 google_breakpad::test_assembler::Section::Align
+50468 c 324 61
+50474 4 324 61
+50478 10 400 131
+50488 c 327 61
+50494 c 328 61
+504a0 10 331 61
+FUNC 504b0 58 0 google_breakpad::test_assembler::Section::LEB128
+504b0 10 303 61
+504c0 c 303 61
+504cc 8 304 61
+504d4 4 453 131
+504d8 4 304 61
+504dc 18 453 131
+504f4 14 313 61
+FUNC 50508 54 0 google_breakpad::test_assembler::Section::ULEB128
+50508 10 315 61
+50518 c 315 61
+50524 4 316 61
+50528 4 453 131
+5052c 4 316 61
+50530 4 453 131
+50534 4 318 61
+50538 10 453 131
+50548 14 322 61
+FUNC 5055c 7c 0 google_breakpad::test_assembler::InsertEndian<std::back_insert_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >
+5055c 4 205 61
+50560 4 208 61
+50564 c 205 61
+50570 c 205 61
+5057c 8 208 61
+50584 8 209 61
+5058c 8 178 113
+50594 4 211 61
+50598 4 209 61
+5059c 8 178 113
+505a4 4 216 61
+505a8 c 216 61
+505b4 8 178 113
+505bc 4 216 61
+505c0 8 178 113
+505c8 10 219 61
+FUNC 505d8 34 0 google_breakpad::test_assembler::Section::Append
+505d8 c 221 61
+505e4 4 221 61
+505e8 14 223 61
+505fc 10 225 61
+FUNC 5060c 34 0 google_breakpad::test_assembler::Section::L16
+5060c 8 267 61
+50614 4 267 61
+50618 8 267 61
+50620 4 267 61
+50624 c 267 61
+50630 10 267 61
+FUNC 50640 34 0 google_breakpad::test_assembler::Section::L32
+50640 8 268 61
+50648 4 268 61
+5064c 8 268 61
+50654 4 268 61
+50658 c 268 61
+50664 10 268 61
+FUNC 50674 34 0 google_breakpad::test_assembler::Section::L64
+50674 8 269 61
+5067c 4 269 61
+50680 8 269 61
+50688 4 269 61
+5068c c 269 61
+50698 10 269 61
+FUNC 506a8 34 0 google_breakpad::test_assembler::Section::B16
+506a8 8 270 61
+506b0 4 270 61
+506b4 8 270 61
+506bc 4 270 61
+506c0 c 270 61
+506cc 10 270 61
+FUNC 506dc 34 0 google_breakpad::test_assembler::Section::B32
+506dc 8 271 61
+506e4 4 271 61
+506e8 8 271 61
+506f0 4 271 61
+506f4 c 271 61
+50700 10 271 61
+FUNC 50710 34 0 google_breakpad::test_assembler::Section::B64
+50710 8 272 61
+50718 4 272 61
+5071c 8 272 61
+50724 4 272 61
+50728 c 272 61
+50734 10 272 61
+FUNC 50744 34 0 google_breakpad::test_assembler::Section::D16
+50744 8 289 61
+5074c 4 289 61
+50750 8 289 61
+50758 4 289 61
+5075c c 289 61
+50768 10 289 61
+FUNC 50778 34 0 google_breakpad::test_assembler::Section::D32
+50778 8 290 61
+50780 4 290 61
+50784 8 290 61
+5078c 4 290 61
+50790 c 290 61
+5079c 10 290 61
+FUNC 507ac 34 0 google_breakpad::test_assembler::Section::D64
+507ac 8 291 61
+507b4 4 291 61
+507b8 8 291 61
+507c0 4 291 61
+507c4 c 291 61
+507d0 10 291 61
+FUNC 507e0 50 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::clear
+507e0 18 650 139
+507f8 10 630 139
+50808 4 449 62
+5080c 4 191 103
+50810 4 449 62
+50814 8 191 103
+5081c 4 615 139
+50820 10 652 139
+FUNC 50830 24 0 google_breakpad::test_assembler::Section::Clear
+50830 4 333 61
+50834 c 422 131
+50840 4 232 140
+50844 8 424 131
+5084c 8 228 143
+FUNC 50854 108 0 std::priv::_String_base<char, std::allocator<char> >::_M_swap
+50854 4 168 132
+50858 4 64 132
+5085c 8 170 132
+50864 4 171 132
+50868 4 64 132
+5086c 14 171 132
+50880 4 92 100
+50884 4 91 100
+50888 4 92 100
+5088c 4 91 100
+50890 8 92 100
+50898 8 93 100
+508a0 8 91 100
+508a8 c 174 132
+508b4 4 173 132
+508b8 c 174 132
+508c4 c 175 132
+508d0 4 178 132
+508d4 8 179 132
+508dc 4 64 132
+508e0 8 185 132
+508e8 4 189 132
+508ec 4 188 132
+508f0 4 189 132
+508f4 4 187 132
+508f8 8 189 132
+50900 4 192 132
+50904 10 193 132
+50914 4 194 132
+50918 4 195 132
+5091c 8 196 132
+50924 4 92 100
+50928 4 91 100
+5092c 4 92 100
+50930 4 93 100
+50934 4 92 100
+50938 4 91 100
+5093c 4 92 100
+50940 4 93 100
+50944 4 92 100
+50948 4 91 100
+5094c 4 92 100
+50950 4 93 100
+50954 8 208 132
+FUNC 5095c 140 0 google_breakpad::test_assembler::Section::GetContents
+5095c 4 338 61
+50960 4 341 61
+50964 14 338 61
+50978 8 338 61
+50980 4 192 139
+50984 4 344 61
+50988 c 192 139
+50994 c 341 61
+509a0 4 344 61
+509a4 8 202 139
+509ac 14 344 61
+509c0 20 345 61
+509e0 4 208 61
+509e4 8 350 61
+509ec 4 208 61
+509f0 c 350 61
+509fc 8 208 61
+50a04 8 209 61
+50a0c 4 210 61
+50a10 4 211 61
+50a14 8 209 61
+50a1c 4 216 61
+50a20 14 216 61
+50a34 4 217 61
+50a38 4 216 61
+50a3c 8 217 61
+50a44 c 341 61
+50a50 c 422 131
+50a5c 4 232 140
+50a60 8 424 131
+50a68 8 942 131
+50a70 4 355 61
+50a74 4 942 131
+50a78 8 228 143
+50a80 1c 356 61
+FUNC 50a9c 274 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::_M_insert_overflow_aux
+50a9c 20 81 138
+50abc 8 192 139
+50ac4 4 81 138
+50ac8 4 192 139
+50acc 4 81 138
+50ad0 4 192 139
+50ad4 8 173 139
+50adc c 81 138
+50ae8 4 173 139
+50aec 4 81 138
+50af0 4 173 139
+50af4 14 41 138
+50b08 4 175 139
+50b0c 10 176 139
+50b1c 4 356 101
+50b20 8 346 101
+50b28 4 177 139
+50b2c c 347 101
+50b38 4 348 101
+50b3c 4 352 101
+50b40 4 348 101
+50b44 4 352 101
+50b48 4 91 138
+50b4c 4 84 137
+50b50 10 86 137
+50b60 8 86 137
+50b68 4 139 103
+50b6c 24 449 62
+50b90 4 89 137
+50b94 14 86 137
+50ba8 c 93 138
+50bb4 4 119 103
+50bb8 24 449 62
+50bdc 8 95 138
+50be4 8 314 137
+50bec 4 249 137
+50bf0 4 449 62
+50bf4 8 249 137
+50bfc 4 139 103
+50c00 24 449 62
+50c24 c 249 137
+50c30 8 98 138
+50c38 c 86 137
+50c44 4 84 137
+50c48 8 86 137
+50c50 8 86 137
+50c58 4 139 103
+50c5c 24 449 62
+50c80 4 89 137
+50c84 20 86 137
+50ca4 8 191 103
+50cac 10 449 62
+50cbc c 662 139
+50cc8 4 319 101
+50ccc 8 161 101
+50cd4 8 135 119
+50cdc 4 161 101
+50ce0 4 104 138
+50ce4 4 666 139
+50ce8 4 667 139
+50cec 4 668 139
+50cf0 20 105 138
+FUNC 50d10 78 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::push_back
+50d10 10 376 139
+50d20 4 376 139
+50d24 10 380 139
+50d34 4 119 103
+50d38 24 449 62
+50d5c 10 382 139
+50d6c 10 162 139
+50d7c c 388 139
+FUNC 50d88 c0 0 google_breakpad::test_assembler::Section::Append
+50d88 18 228 61
+50da0 8 232 61
+50da8 4 228 61
+50dac 4 232 61
+50db0 4 228 61
+50db4 14 232 61
+50dc8 14 223 61
+50ddc 4 233 61
+50de0 4 400 131
+50de4 4 453 62
+50de8 4 400 131
+50dec c 453 62
+50df8 4 400 131
+50dfc 10 453 62
+50e0c c 173 143
+50e18 8 449 62
+50e20 10 240 61
+50e30 18 242 61
+FUNC 50e48 10 0 google_breakpad::test_assembler::Section::L8
+50e48 10 265 61
+FUNC 50e58 10 0 google_breakpad::test_assembler::Section::B8
+50e58 10 266 61
+FUNC 50e68 10 0 google_breakpad::test_assembler::Section::L16
+50e68 10 267 61
+FUNC 50e78 10 0 google_breakpad::test_assembler::Section::L32
+50e78 10 268 61
+FUNC 50e88 10 0 google_breakpad::test_assembler::Section::L64
+50e88 10 269 61
+FUNC 50e98 10 0 google_breakpad::test_assembler::Section::B16
+50e98 10 270 61
+FUNC 50ea8 10 0 google_breakpad::test_assembler::Section::B32
+50ea8 10 271 61
+FUNC 50eb8 10 0 google_breakpad::test_assembler::Section::B64
+50eb8 10 272 61
+FUNC 50ec8 10 0 google_breakpad::test_assembler::Section::D8
+50ec8 10 288 61
+FUNC 50ed8 10 0 google_breakpad::test_assembler::Section::D16
+50ed8 10 289 61
+FUNC 50ee8 10 0 google_breakpad::test_assembler::Section::D32
+50ee8 10 290 61
+FUNC 50ef8 10 0 google_breakpad::test_assembler::Section::D64
+50ef8 10 291 61
+FUNC 50f08 1e4 0 google_breakpad::test_assembler::Section::Append
+50f08 20 293 61
+50f28 8 293 61
+50f30 8 295 61
+50f38 8 197 130
+50f40 4 400 131
+50f44 4 197 130
+50f48 4 74 132
+50f4c 4 198 130
+50f50 4 74 132
+50f54 c 74 132
+50f60 8 74 132
+50f68 8 199 130
+50f70 10 200 130
+50f80 4 356 101
+50f84 4 346 101
+50f88 8 347 101
+50f90 4 348 101
+50f94 4 352 101
+50f98 8 348 101
+50fa0 10 86 137
+50fb0 c 86 137
+50fbc 10 146 103
+50fcc 1c 86 137
+50fe8 10 146 103
+50ff8 8 205 130
+51000 8 206 130
+51008 4 101 103
+5100c 4 205 130
+51010 4 160 132
+51014 4 164 132
+51018 8 165 132
+51020 4 210 130
+51024 c 86 137
+51030 18 86 137
+51048 8 146 103
+51050 10 101 103
+51060 4 232 140
+51064 c 214 130
+51070 c 453 62
+5107c 4 173 143
+51080 c 296 61
+5108c c 299 61
+51098 4 296 61
+5109c 4 299 61
+510a0 8 453 62
+510a8 4 299 61
+510ac c 453 62
+510b8 c 173 143
+510c4 c 449 62
+510d0 1c 301 61
+FUNC 510ec 1e4 0 google_breakpad::CopyFile
+510ec 20 44 64
+5110c 18 45 64
+51124 4 45 64
+51128 c 45 64
+51134 c 47 64
+51140 4 57 64
+51144 4 54 64
+51148 c 55 64
+51154 8 57 64
+5115c 4 46 64
+51160 18 51 64
+51178 4 51 64
+5117c c 51 64
+51188 c 53 64
+51194 10 54 64
+511a4 4 54 64
+511a8 4 57 64
+511ac 8 54 64
+511b4 8 65 64
+511bc 8 70 64
+511c4 18 74 64
+511dc 4 78 64
+511e0 4 83 64
+511e4 8 73 64
+511ec 1c 64 64
+51208 4 64 64
+5120c c 64 64
+51218 8 66 64
+51220 8 79 64
+51228 10 87 64
+51238 10 91 64
+51248 4 91 64
+5124c 10 91 64
+5125c 4 64 64
+51260 8 52 64
+51268 4 87 64
+5126c 10 87 64
+5127c 4 74 64
+51280 c 74 64
+5128c 14 79 64
+512a0 4 88 64
+512a4 4 89 64
+512a8 c 88 64
+512b4 1c 97 64
+FUNC 512d0 104 0 google_breakpad::ReadFile
+512d0 1c 99 64
+512ec 18 100 64
+51304 4 100 64
+51308 c 100 64
+51314 c 102 64
+51320 4 107 64
+51324 8 106 64
+5132c 4 107 64
+51330 c 107 64
+5133c 4 108 64
+51340 1c 109 64
+5135c 4 109 64
+51360 8 110 64
+51368 4 111 64
+5136c 4 112 64
+51370 8 111 64
+51378 10 115 64
+51388 4 115 64
+5138c c 115 64
+51398 c 116 64
+513a4 4 109 64
+513a8 10 109 64
+513b8 4 103 64
+513bc 4 102 64
+513c0 14 120 64
+FUNC 513d4 104 0 google_breakpad::WriteFile
+513d4 20 122 64
+513f4 1c 123 64
+51410 4 123 64
+51414 c 123 64
+51420 10 125 64
+51430 4 130 64
+51434 8 129 64
+5143c 4 136 64
+51440 c 136 64
+5144c 18 136 64
+51464 4 138 64
+51468 4 143 64
+5146c 8 134 64
+51474 c 136 64
+51480 4 139 64
+51484 4 140 64
+51488 8 139 64
+51490 10 146 64
+514a0 4 146 64
+514a4 c 146 64
+514b0 8 147 64
+514b8 4 126 64
+514bc 4 125 64
+514c0 18 151 64
+FUNC 514d8 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::~TestFactoryImpl
+514d8 4 484 85
+FUNC 514dc 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::~TestFactoryImpl
+514dc 4 484 85
+FUNC 514e0 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::~TestFactoryImpl
+514e0 4 484 85
+FUNC 514e4 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::~TestFactoryImpl
+514e4 4 484 85
+FUNC 514e8 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::~TestFactoryImpl
+514e8 4 484 85
+FUNC 514ec 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::~TestFactoryImpl
+514ec 4 484 85
+FUNC 514f0 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::~TestFactoryImpl
+514f0 4 484 85
+FUNC 514f4 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::~TestFactoryImpl
+514f4 4 484 85
+FUNC 514f8 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::~TestFactoryImpl
+514f8 4 484 85
+FUNC 514fc 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::~TestFactoryImpl
+514fc 4 484 85
+FUNC 51500 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::~TestFactoryImpl
+51500 4 484 85
+FUNC 51504 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::~TestFactoryImpl
+51504 4 484 85
+FUNC 51508 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::~TestFactoryImpl
+51508 4 484 85
+FUNC 5150c 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::~TestFactoryImpl
+5150c 4 484 85
+FUNC 51510 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::~TestFactoryImpl
+51510 4 484 85
+FUNC 51514 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::~TestFactoryImpl
+51514 4 484 85
+FUNC 51518 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::~TestFactoryImpl
+51518 4 484 85
+FUNC 5151c 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::~TestFactoryImpl
+5151c 4 484 85
+FUNC 51520 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::~TestFactoryImpl
+51520 4 484 85
+FUNC 51524 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::~TestFactoryImpl
+51524 4 484 85
+FUNC 51528 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::~TestFactoryImpl
+51528 4 484 85
+FUNC 5152c 4 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::~TestFactoryImpl
+5152c 4 484 85
+FUNC 51530 14 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::~MinidumpMemoryRangeTest_GetAsciiMDString_Test
+51530 14 224 78
+FUNC 51544 24 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::~MinidumpMemoryRangeTest_GetAsciiMDString_Test
+51544 c 224 78
+51550 8 224 78
+51558 4 224 78
+5155c 8 224 78
+51564 4 224 78
+FUNC 51568 14 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::~MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test
+51568 14 216 78
+FUNC 5157c 24 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::~MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test
+5157c c 216 78
+51588 8 216 78
+51590 4 216 78
+51594 8 216 78
+5159c 4 216 78
+FUNC 515a0 14 0 MinidumpMemoryRangeTest_GetArrayElement_Test::~MinidumpMemoryRangeTest_GetArrayElement_Test
+515a0 14 201 78
+FUNC 515b4 24 0 MinidumpMemoryRangeTest_GetArrayElement_Test::~MinidumpMemoryRangeTest_GetArrayElement_Test
+515b4 c 201 78
+515c0 8 201 78
+515c8 4 201 78
+515cc 8 201 78
+515d4 4 201 78
+FUNC 515d8 14 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::~MinidumpMemoryRangeTest_GetDataWithTemplateType_Test
+515d8 14 193 78
+FUNC 515ec 24 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::~MinidumpMemoryRangeTest_GetDataWithTemplateType_Test
+515ec c 193 78
+515f8 8 193 78
+51600 4 193 78
+51604 8 193 78
+5160c 4 193 78
+FUNC 51610 14 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::~MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test
+51610 14 165 78
+FUNC 51624 24 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::~MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test
+51624 c 165 78
+51630 8 165 78
+51638 4 165 78
+5163c 8 165 78
+51644 4 165 78
+FUNC 51648 14 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::~MinidumpMemoryRangeTest_SubrangeAndGetData_Test
+51648 14 140 78
+FUNC 5165c 24 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::~MinidumpMemoryRangeTest_SubrangeAndGetData_Test
+5165c c 140 78
+51668 8 140 78
+51670 4 140 78
+51674 8 140 78
+5167c 4 140 78
+FUNC 51680 14 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::~MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test
+51680 14 133 78
+FUNC 51694 24 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::~MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test
+51694 c 133 78
+516a0 8 133 78
+516a8 4 133 78
+516ac 8 133 78
+516b4 4 133 78
+FUNC 516b8 14 0 MinidumpMemoryRangeTest_Set_Test::~MinidumpMemoryRangeTest_Set_Test
+516b8 14 122 78
+FUNC 516cc 24 0 MinidumpMemoryRangeTest_Set_Test::~MinidumpMemoryRangeTest_Set_Test
+516cc c 122 78
+516d8 8 122 78
+516e0 4 122 78
+516e4 8 122 78
+516ec 4 122 78
+FUNC 516f0 14 0 MinidumpMemoryRangeTest_Reset_Test::~MinidumpMemoryRangeTest_Reset_Test
+516f0 14 107 78
+FUNC 51704 24 0 MinidumpMemoryRangeTest_Reset_Test::~MinidumpMemoryRangeTest_Reset_Test
+51704 c 107 78
+51710 8 107 78
+51718 4 107 78
+5171c 8 107 78
+51724 4 107 78
+FUNC 51728 14 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::~MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test
+51728 14 101 78
+FUNC 5173c 24 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::~MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test
+5173c c 101 78
+51748 8 101 78
+51750 4 101 78
+51754 8 101 78
+5175c 4 101 78
+FUNC 51760 14 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::~MinidumpMemoryRangeTest_DefaultConstructor_Test
+51760 14 95 78
+FUNC 51774 24 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::~MinidumpMemoryRangeTest_DefaultConstructor_Test
+51774 c 95 78
+51780 8 95 78
+51788 4 95 78
+5178c 8 95 78
+51794 4 95 78
+FUNC 51798 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::CreateTest
+51798 10 486 85
+517a8 8 486 85
+517b0 8 224 78
+517b8 4 486 85
+517bc c 224 78
+517c8 c 486 85
+FUNC 517d4 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::CreateTest
+517d4 10 486 85
+517e4 8 486 85
+517ec 8 216 78
+517f4 4 486 85
+517f8 c 216 78
+51804 c 486 85
+FUNC 51810 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::CreateTest
+51810 10 486 85
+51820 8 486 85
+51828 8 201 78
+51830 4 486 85
+51834 c 201 78
+51840 c 486 85
+FUNC 5184c 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::CreateTest
+5184c 10 486 85
+5185c 8 486 85
+51864 8 193 78
+5186c 4 486 85
+51870 c 193 78
+5187c c 486 85
+FUNC 51888 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::CreateTest
+51888 10 486 85
+51898 8 486 85
+518a0 8 165 78
+518a8 4 486 85
+518ac c 165 78
+518b8 c 486 85
+FUNC 518c4 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::CreateTest
+518c4 10 486 85
+518d4 8 486 85
+518dc 8 140 78
+518e4 4 486 85
+518e8 c 140 78
+518f4 c 486 85
+FUNC 51900 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::CreateTest
+51900 10 486 85
+51910 8 486 85
+51918 8 133 78
+51920 4 486 85
+51924 c 133 78
+51930 c 486 85
+FUNC 5193c 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::CreateTest
+5193c 10 486 85
+5194c 8 486 85
+51954 8 122 78
+5195c 4 486 85
+51960 c 122 78
+5196c c 486 85
+FUNC 51978 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::CreateTest
+51978 10 486 85
+51988 8 486 85
+51990 8 107 78
+51998 4 486 85
+5199c c 107 78
+519a8 c 486 85
+FUNC 519b4 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::CreateTest
+519b4 10 486 85
+519c4 8 486 85
+519cc 8 101 78
+519d4 4 486 85
+519d8 c 101 78
+519e4 c 486 85
+FUNC 519f0 3c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::CreateTest
+519f0 10 486 85
+51a00 8 486 85
+51a08 8 95 78
+51a10 4 486 85
+51a14 c 95 78
+51a20 c 486 85
+FUNC 51a2c 3c 0 google_breakpad::MemoryRange::GetData
+51a2c 4 90 55
+51a30 4 90 55
+51a34 4 91 55
+51a38 8 83 55
+51a40 4 83 55
+51a44 10 83 55
+51a54 8 91 55
+51a5c 8 91 55
+51a64 4 92 55
+FUNC 51a68 3c 0 google_breakpad::MinidumpMemoryRange::Subrange
+51a68 4 59 77
+51a6c 8 83 55
+51a74 4 83 55
+51a78 10 83 55
+51a88 4 61 77
+51a8c c 72 55
+51a98 8 62 77
+51aa0 4 63 77
+FUNC 51aa4 90 0 google_breakpad::MinidumpMemoryRange::GetAsciiMDString
+51aa4 18 74 77
+51abc 4 124 132
+51ac0 4 74 77
+51ac4 4 120 132
+51ac8 4 124 132
+51acc 4 481 101
+51ad0 8 124 132
+51ad8 8 99 55
+51ae0 4 79 77
+51ae4 4 101 103
+51ae8 c 99 55
+51af4 4 78 77
+51af8 4 77 77
+51afc c 79 77
+51b08 8 79 77
+51b10 4 80 77
+51b14 4 79 77
+51b18 8 80 77
+51b20 14 84 77
+FUNC 51b34 cc 0 testing::PrintToString<char const*>
+51b34 4 883 80
+51b38 4 884 80
+51b3c c 883 80
+51b48 8 884 80
+51b50 8 883 80
+51b58 4 883 80
+51b5c 4 884 80
+51b60 8 885 80
+51b68 4 708 80
+51b6c 14 333 122
+51b80 4 112 132
+51b84 4 229 140
+51b88 4 112 132
+51b8c 4 481 101
+51b90 8 229 140
+51b98 4 643 130
+51b9c c 379 131
+51ba8 10 148 137
+51bb8 4 380 131
+51bbc 4 101 103
+51bc0 c 469 80
+51bcc 8 156 132
+51bd4 c 75 127
+51be0 8 886 80
+51be8 18 887 80
+FUNC 51c00 50 0 testing::internal::DefaultPrintTo<void const>
+51c00 14 307 80
+51c14 4 310 80
+51c18 4 334 80
+51c1c 4 333 122
+51c20 4 334 80
+51c24 8 333 122
+51c2c 10 318 80
+51c3c 8 291 121
+51c44 8 334 80
+51c4c 4 291 121
+FUNC 51c50 50 0 testing::internal::DefaultPrintTo<int const>
+51c50 14 307 80
+51c64 4 310 80
+51c68 4 334 80
+51c6c 4 333 122
+51c70 4 334 80
+51c74 8 333 122
+51c7c 10 318 80
+51c8c 8 291 121
+51c94 8 334 80
+51c9c 4 291 121
+FUNC 51ca0 11c 0 testing::operator<<
+51ca0 c 232 79
+51cac 4 233 79
+51cb0 4 232 79
+51cb4 4 233 79
+51cb8 4 232 79
+51cbc 4 233 79
+51cc0 4 232 79
+51cc4 4 233 79
+51cc8 14 181 122
+51cdc 4 41 133
+51ce0 18 62 133
+51cf8 4 44 133
+51cfc c 400 131
+51d08 8 44 133
+51d10 4 138 110
+51d14 4 139 110
+51d18 4 44 133
+51d1c 4 50 133
+51d20 4 46 133
+51d24 8 50 133
+51d2c 14 52 133
+51d40 10 55 133
+51d50 c 55 133
+51d5c 14 53 133
+51d70 8 55 133
+51d78 4 57 133
+51d7c 14 58 133
+51d90 4 58 133
+51d94 8 64 133
+51d9c 8 156 132
+51da4 18 234 79
+FUNC 51dbc e8 0 testing::internal::CmpHelperEQFailure<int const*, int const*>
+51dbc c 1464 82
+51dc8 4 884 80
+51dcc 10 1464 82
+51ddc 8 884 80
+51de4 4 1464 82
+51de8 4 75 127
+51dec 4 1464 82
+51df0 8 1464 82
+51df8 4 884 80
+51dfc c 380 80
+51e08 4 75 127
+51e0c 8 380 80
+51e14 c 75 127
+51e20 8 886 80
+51e28 c 884 80
+51e34 8 380 80
+51e3c 4 75 127
+51e40 8 380 80
+51e48 c 75 127
+51e54 8 886 80
+51e5c 1c 1471 82
+51e78 10 156 132
+51e88 1c 1472 82
+FUNC 51ea4 50 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+51ea4 c 311 134
+51eb0 8 311 134
+51eb8 8 229 140
+51ec0 8 315 134
+51ec8 8 400 131
+51ed0 8 315 134
+51ed8 8 226 140
+51ee0 8 315 134
+51ee8 c 316 134
+FUNC 51ef4 5c 0 testing::PrintToString<unsigned char const*>
+51ef4 4 883 80
+51ef8 4 884 80
+51efc 8 883 80
+51f04 4 884 80
+51f08 4 883 80
+51f0c 4 883 80
+51f10 4 884 80
+51f14 4 883 80
+51f18 4 884 80
+51f1c c 380 80
+51f28 c 75 127
+51f34 8 886 80
+51f3c 14 887 80
+FUNC 51f50 9c 0 testing::internal::CmpHelperEQ<unsigned char const*, unsigned char const*>
+51f50 10 1476 82
+51f60 8 1476 82
+51f68 10 1481 82
+51f78 8 1482 82
+51f80 2c 1382 82
+51fac 1c 1471 82
+51fc8 10 156 132
+51fd8 14 1488 82
+FUNC 51fec 12c 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::TestBody
+51fec 4 95 78
+51ff0 8 1571 82
+51ff8 c 95 78
+52004 2c 1571 82
+52030 8 97 78
+52038 c 302 82
+52044 18 97 78
+5205c 8 97 78
+52064 c 97 78
+52070 8 85 79
+52078 8 97 78
+52080 8 256 82
+52088 4 98 78
+5208c 1c 1552 82
+520a8 4 98 78
+520ac 4 1552 82
+520b0 8 98 78
+520b8 c 302 82
+520c4 18 98 78
+520dc 8 98 78
+520e4 c 98 78
+520f0 8 85 79
+520f8 8 98 78
+52100 8 256 82
+52108 10 99 78
+FUNC 52118 148 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::TestBody
+52118 4 133 78
+5211c 8 135 78
+52124 4 133 78
+52128 4 135 78
+5212c 8 133 78
+52134 4 50 55
+52138 4 1571 82
+5213c 4 50 55
+52140 4 135 78
+52144 8 1571 82
+5214c 4 135 78
+52150 28 1571 82
+52178 8 136 78
+52180 c 302 82
+5218c 18 136 78
+521a4 8 136 78
+521ac c 136 78
+521b8 8 85 79
+521c0 8 136 78
+521c8 8 256 82
+521d0 4 137 78
+521d4 1c 1552 82
+521f0 4 137 78
+521f4 4 1552 82
+521f8 8 137 78
+52200 c 302 82
+5220c 18 137 78
+52224 8 137 78
+5222c c 137 78
+52238 8 85 79
+52240 8 137 78
+52248 8 256 82
+52250 10 138 78
+FUNC 52260 13c 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::TestBody
+52260 4 101 78
+52264 4 103 78
+52268 4 1512 82
+5226c 4 101 78
+52270 4 103 78
+52274 4 1512 82
+52278 4 101 78
+5227c 4 103 78
+52280 20 1512 82
+522a0 4 101 78
+522a4 4 1512 82
+522a8 8 103 78
+522b0 4 302 82
+522b4 4 103 78
+522b8 8 302 82
+522c0 18 103 78
+522d8 8 103 78
+522e0 c 103 78
+522ec 8 85 79
+522f4 8 103 78
+522fc 8 256 82
+52304 4 104 78
+52308 4 1512 82
+5230c 4 104 78
+52310 20 1512 82
+52330 8 104 78
+52338 4 302 82
+5233c 4 104 78
+52340 8 302 82
+52348 18 104 78
+52360 8 104 78
+52368 c 104 78
+52374 8 85 79
+5237c 8 104 78
+52384 8 256 82
+5238c 10 105 78
+FUNC 5239c 338 0 MinidumpMemoryRangeTest_Reset_Test::TestBody
+5239c 14 107 78
+523b0 24 1571 82
+523d4 c 107 78
+523e0 8 1571 82
+523e8 c 110 78
+523f4 c 302 82
+52400 18 110 78
+52418 8 110 78
+52420 c 110 78
+5242c 8 85 79
+52434 8 110 78
+5243c 4 256 82
+52440 8 1552 82
+52448 4 256 82
+5244c 4 111 78
+52450 14 1552 82
+52464 4 111 78
+52468 4 1552 82
+5246c 8 111 78
+52474 c 302 82
+52480 18 111 78
+52498 8 111 78
+524a0 c 111 78
+524ac 8 85 79
+524b4 8 111 78
+524bc 8 256 82
+524c4 4 114 78
+524c8 4 1512 82
+524cc 4 114 78
+524d0 4 1512 82
+524d4 4 114 78
+524d8 18 1512 82
+524f0 8 114 78
+524f8 c 302 82
+52504 18 114 78
+5251c 8 114 78
+52524 c 114 78
+52530 8 85 79
+52538 8 114 78
+52540 8 256 82
+52548 4 115 78
+5254c 4 1512 82
+52550 4 115 78
+52554 1c 1512 82
+52570 8 115 78
+52578 c 302 82
+52584 18 115 78
+5259c 8 115 78
+525a4 c 115 78
+525b0 8 85 79
+525b8 8 115 78
+525c0 c 256 82
+525cc 20 1571 82
+525ec 8 118 78
+525f4 c 302 82
+52600 18 118 78
+52618 8 118 78
+52620 c 118 78
+5262c 8 85 79
+52634 8 118 78
+5263c 8 256 82
+52644 4 119 78
+52648 14 1552 82
+5265c 4 119 78
+52660 4 1552 82
+52664 8 119 78
+5266c c 302 82
+52678 18 119 78
+52690 8 119 78
+52698 c 119 78
+526a4 8 85 79
+526ac 8 119 78
+526b4 8 256 82
+526bc 18 120 78
+FUNC 526d4 240 0 MinidumpMemoryRangeTest_Set_Test::TestBody
+526d4 4 122 78
+526d8 4 125 78
+526dc 4 1512 82
+526e0 4 122 78
+526e4 4 125 78
+526e8 4 1512 82
+526ec 8 122 78
+526f4 4 125 78
+526f8 20 1512 82
+52718 c 122 78
+52724 4 1512 82
+52728 8 125 78
+52730 c 302 82
+5273c 18 125 78
+52754 8 125 78
+5275c c 125 78
+52768 8 85 79
+52770 8 125 78
+52778 4 256 82
+5277c 4 1512 82
+52780 4 256 82
+52784 4 126 78
+52788 4 1512 82
+5278c 4 126 78
+52790 1c 1512 82
+527ac 8 126 78
+527b4 c 302 82
+527c0 18 126 78
+527d8 8 126 78
+527e0 c 126 78
+527ec 8 85 79
+527f4 8 126 78
+527fc c 256 82
+52808 24 1571 82
+5282c 8 129 78
+52834 c 302 82
+52840 18 129 78
+52858 8 129 78
+52860 c 129 78
+5286c 8 85 79
+52874 8 129 78
+5287c 8 256 82
+52884 4 130 78
+52888 18 1552 82
+528a0 4 130 78
+528a4 4 1552 82
+528a8 8 130 78
+528b0 c 302 82
+528bc 18 130 78
+528d4 8 130 78
+528dc c 130 78
+528e8 8 85 79
+528f0 8 130 78
+528f8 8 256 82
+52900 14 131 78
+FUNC 52914 9c 0 testing::internal::CmpHelperEQ<unsigned char const*, void const*>
+52914 10 1476 82
+52924 8 1476 82
+5292c 10 1481 82
+5293c 8 1482 82
+52944 2c 1382 82
+52970 1c 1471 82
+5298c 10 156 132
+5299c 14 1488 82
+FUNC 529b0 84 0 testing::internal::CmpHelperEQFailure<void const*, void const*>
+529b0 c 1464 82
+529bc 8 1382 82
+529c4 4 1464 82
+529c8 8 1464 82
+529d0 8 1382 82
+529d8 8 1464 82
+529e0 14 1382 82
+529f4 1c 1471 82
+52a10 10 156 132
+52a20 14 1472 82
+FUNC 52a34 5ac 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::TestBody
+52a34 4 165 78
+52a38 4 70 55
+52a3c c 165 78
+52a48 10 70 55
+52a58 c 72 55
+52a64 8 165 78
+52a6c 8 171 78
+52a74 4 256 82
+52a78 4 165 78
+52a7c 4 256 82
+52a80 4 171 78
+52a84 8 165 78
+52a8c 4 256 82
+52a90 4 170 78
+52a94 4 171 78
+52a98 4 170 78
+52a9c 4 171 78
+52aa0 4 169 78
+52aa4 4 171 78
+52aa8 4 168 78
+52aac 4 171 78
+52ab0 4 171 78
+52ab4 8 68 77
+52abc 4 171 78
+52ac0 4 131 79
+52ac4 10 333 122
+52ad4 4 131 79
+52ad8 c 263 121
+52ae4 4 131 79
+52ae8 10 333 122
+52af8 4 131 79
+52afc c 263 121
+52b08 4 131 79
+52b0c c 131 79
+52b18 14 171 78
+52b2c 10 85 79
+52b3c 20 68 77
+52b5c 4 178 78
+52b60 4 83 55
+52b64 4 83 55
+52b68 4 83 55
+52b6c 4 83 55
+52b70 8 82 55
+52b78 c 83 55
+52b84 4 277 82
+52b88 4 1139 87
+52b8c 4 179 78
+52b90 20 179 78
+52bb0 4 179 78
+52bb4 4 179 78
+52bb8 18 179 78
+52bd0 8 179 78
+52bd8 c 179 78
+52be4 8 85 79
+52bec 8 179 78
+52bf4 8 156 132
+52bfc 4 256 82
+52c00 4 1512 82
+52c04 4 256 82
+52c08 28 180 78
+52c30 1c 1512 82
+52c4c 10 180 78
+52c5c c 302 82
+52c68 14 180 78
+52c7c 8 180 78
+52c84 c 181 78
+52c90 8 85 79
+52c98 8 180 78
+52ca0 8 256 82
+52ca8 8 182 78
+52cb0 c 1512 82
+52cbc 4 182 78
+52cc0 c 1512 82
+52ccc 4 182 78
+52cd0 4 1512 82
+52cd4 8 182 78
+52cdc c 302 82
+52ce8 14 182 78
+52cfc 8 182 78
+52d04 c 182 78
+52d10 8 85 79
+52d18 8 182 78
+52d20 8 256 82
+52d28 4 183 78
+52d2c 20 1512 82
+52d4c 8 183 78
+52d54 c 302 82
+52d60 14 183 78
+52d74 8 83 55
+52d7c 4 83 55
+52d80 8 82 55
+52d88 c 83 55
+52d94 4 185 78
+52d98 4 1139 87
+52d9c 4 277 82
+52da0 4 185 78
+52da4 20 185 78
+52dc4 4 185 78
+52dc8 4 185 78
+52dcc 18 185 78
+52de4 8 185 78
+52dec c 185 78
+52df8 8 85 79
+52e00 8 185 78
+52e08 8 156 132
+52e10 8 256 82
+52e18 14 186 78
+52e2c 8 1571 82
+52e34 4 1482 82
+52e38 4 1481 82
+52e3c 8 1482 82
+52e44 18 1487 82
+52e5c 8 186 78
+52e64 c 302 82
+52e70 14 186 78
+52e84 8 186 78
+52e8c c 186 78
+52e98 8 85 79
+52ea0 8 186 78
+52ea8 8 256 82
+52eb0 24 1571 82
+52ed4 8 187 78
+52edc c 302 82
+52ee8 14 187 78
+52efc 8 187 78
+52f04 c 187 78
+52f10 8 85 79
+52f18 8 187 78
+52f20 8 256 82
+52f28 4 188 78
+52f2c 1c 1552 82
+52f48 4 188 78
+52f4c 4 1552 82
+52f50 8 188 78
+52f58 c 302 82
+52f64 14 188 78
+52f78 8 188 78
+52f80 c 188 78
+52f8c 8 85 79
+52f94 8 188 78
+52f9c c 256 82
+52fa8 8 190 78
+52fb0 c 167 78
+52fbc 24 191 78
+FUNC 52fe0 204 0 MinidumpMemoryRangeTest_GetArrayElement_Test::TestBody
+52fe0 4 201 78
+52fe4 4 70 55
+52fe8 4 201 78
+52fec 4 70 55
+52ff0 8 201 78
+52ff8 4 70 55
+52ffc 4 208 78
+53000 8 72 55
+53008 4 211 78
+5300c 4 201 78
+53010 8 208 78
+53018 4 211 78
+5301c 4 256 82
+53020 4 201 78
+53024 8 256 82
+5302c 4 333 122
+53030 c 201 78
+5303c 4 333 122
+53040 4 207 78
+53044 4 208 78
+53048 4 207 78
+5304c 4 208 78
+53050 4 205 78
+53054 4 208 78
+53058 4 204 78
+5305c 4 206 78
+53060 4 208 78
+53064 4 208 78
+53068 4 254 121
+5306c 4 208 78
+53070 4 131 79
+53074 c 333 122
+53080 4 131 79
+53084 c 263 121
+53090 4 131 79
+53094 10 333 122
+530a4 4 131 79
+530a8 c 263 121
+530b4 4 131 79
+530b8 10 333 122
+530c8 4 131 79
+530cc c 254 121
+530d8 10 131 79
+530e8 14 208 78
+530fc 10 85 79
+5310c 14 109 55
+53120 4 211 78
+53124 4 1481 82
+53128 4 1482 82
+5312c 8 1481 82
+53134 8 1482 82
+5313c 1c 1487 82
+53158 8 211 78
+53160 4 302 82
+53164 4 211 78
+53168 8 302 82
+53170 14 211 78
+53184 8 211 78
+5318c c 212 78
+53198 8 85 79
+531a0 8 211 78
+531a8 c 256 82
+531b4 8 213 78
+531bc 8 203 78
+531c4 20 214 78
+FUNC 531e4 5ac 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::TestBody
+531e4 4 140 78
+531e8 4 70 55
+531ec c 140 78
+531f8 10 70 55
+53208 c 72 55
+53214 8 140 78
+5321c 8 146 78
+53224 4 256 82
+53228 4 140 78
+5322c 4 256 82
+53230 4 146 78
+53234 8 140 78
+5323c 4 256 82
+53240 4 145 78
+53244 4 146 78
+53248 4 145 78
+5324c 4 146 78
+53250 4 144 78
+53254 4 146 78
+53258 4 143 78
+5325c 4 146 78
+53260 4 146 78
+53264 8 149 78
+5326c 4 146 78
+53270 4 131 79
+53274 10 333 122
+53284 4 131 79
+53288 c 263 121
+53294 4 131 79
+53298 10 333 122
+532a8 4 131 79
+532ac c 263 121
+532b8 4 131 79
+532bc c 131 79
+532c8 14 146 78
+532dc 10 85 79
+532ec 20 149 78
+5330c 4 150 78
+53310 4 83 55
+53314 4 83 55
+53318 4 83 55
+5331c 4 83 55
+53320 8 82 55
+53328 c 83 55
+53334 4 277 82
+53338 4 1139 87
+5333c 4 151 78
+53340 20 151 78
+53360 4 151 78
+53364 4 151 78
+53368 18 151 78
+53380 8 151 78
+53388 c 151 78
+53394 8 85 79
+5339c 8 151 78
+533a4 8 156 132
+533ac 4 256 82
+533b0 4 1512 82
+533b4 4 256 82
+533b8 28 152 78
+533e0 1c 1512 82
+533fc 10 152 78
+5340c c 302 82
+53418 14 152 78
+5342c 8 152 78
+53434 c 153 78
+53440 8 85 79
+53448 8 152 78
+53450 8 256 82
+53458 8 154 78
+53460 c 1512 82
+5346c 4 154 78
+53470 c 1512 82
+5347c 4 154 78
+53480 4 1512 82
+53484 8 154 78
+5348c c 302 82
+53498 14 154 78
+534ac 8 154 78
+534b4 c 154 78
+534c0 8 85 79
+534c8 8 154 78
+534d0 8 256 82
+534d8 4 155 78
+534dc 20 1512 82
+534fc 8 155 78
+53504 c 302 82
+53510 14 155 78
+53524 8 83 55
+5352c 4 83 55
+53530 8 82 55
+53538 c 83 55
+53544 4 157 78
+53548 4 1139 87
+5354c 4 277 82
+53550 4 157 78
+53554 20 157 78
+53574 4 157 78
+53578 4 157 78
+5357c 18 157 78
+53594 8 157 78
+5359c c 157 78
+535a8 8 85 79
+535b0 8 157 78
+535b8 8 156 132
+535c0 8 256 82
+535c8 14 158 78
+535dc 8 1571 82
+535e4 4 1482 82
+535e8 4 1481 82
+535ec 8 1482 82
+535f4 18 1487 82
+5360c 8 158 78
+53614 c 302 82
+53620 14 158 78
+53634 8 158 78
+5363c c 158 78
+53648 8 85 79
+53650 8 158 78
+53658 8 256 82
+53660 24 1571 82
+53684 8 159 78
+5368c c 302 82
+53698 14 159 78
+536ac 8 159 78
+536b4 c 159 78
+536c0 8 85 79
+536c8 8 159 78
+536d0 8 256 82
+536d8 4 160 78
+536dc 1c 1552 82
+536f8 4 160 78
+536fc 4 1552 82
+53700 8 160 78
+53708 c 302 82
+53714 14 160 78
+53728 8 160 78
+53730 c 160 78
+5373c 8 85 79
+53744 8 160 78
+5374c c 256 82
+53758 8 162 78
+53760 c 142 78
+5376c 24 163 78
+FUNC 53790 90 0 testing::internal::CmpHelperEQFailure<char const*, char const*>
+53790 c 1464 82
+5379c 8 1408 82
+537a4 4 1464 82
+537a8 4 1464 82
+537ac c 1408 82
+537b8 4 1464 82
+537bc 1c 1408 82
+537d8 24 1471 82
+537fc 10 156 132
+5380c 14 1472 82
+FUNC 53820 190 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::TestBody
+53820 4 193 78
+53824 4 70 55
+53828 4 99 55
+5382c 4 193 78
+53830 4 70 55
+53834 4 99 55
+53838 4 193 78
+5383c 4 99 55
+53840 4 70 55
+53844 8 72 55
+5384c 4 99 55
+53850 8 193 78
+53858 8 99 55
+53860 4 196 78
+53864 c 195 78
+53870 4 1482 82
+53874 4 196 78
+53878 8 1481 82
+53880 8 1482 82
+53888 8 1487 82
+53890 8 196 78
+53898 4 302 82
+5389c 4 196 78
+538a0 4 196 78
+538a4 8 302 82
+538ac 18 196 78
+538c4 8 196 78
+538cc c 196 78
+538d8 8 85 79
+538e0 8 196 78
+538e8 8 256 82
+538f0 10 99 55
+53900 4 197 78
+53904 4 198 78
+53908 4 1482 82
+5390c 4 198 78
+53910 8 1481 82
+53918 8 1482 82
+53920 1c 1487 82
+5393c 8 198 78
+53944 4 302 82
+53948 4 198 78
+5394c 4 198 78
+53950 8 302 82
+53958 18 198 78
+53970 8 198 78
+53978 c 198 78
+53984 8 85 79
+5398c 8 198 78
+53994 8 256 82
+5399c 14 199 78
+FUNC 539b0 190 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::TestBody
+539b0 4 216 78
+539b4 4 70 55
+539b8 4 109 55
+539bc 4 216 78
+539c0 4 70 55
+539c4 4 109 55
+539c8 4 216 78
+539cc 4 109 55
+539d0 4 70 55
+539d4 8 72 55
+539dc 4 109 55
+539e0 8 216 78
+539e8 8 109 55
+539f0 4 219 78
+539f4 c 218 78
+53a00 4 1482 82
+53a04 4 219 78
+53a08 8 1481 82
+53a10 8 1482 82
+53a18 8 1487 82
+53a20 8 219 78
+53a28 4 302 82
+53a2c 4 219 78
+53a30 4 219 78
+53a34 8 302 82
+53a3c 18 219 78
+53a54 8 219 78
+53a5c c 219 78
+53a68 8 85 79
+53a70 8 219 78
+53a78 8 256 82
+53a80 10 109 55
+53a90 4 220 78
+53a94 4 221 78
+53a98 4 1482 82
+53a9c 4 221 78
+53aa0 8 1481 82
+53aa8 8 1482 82
+53ab0 1c 1487 82
+53acc 8 221 78
+53ad4 4 302 82
+53ad8 4 221 78
+53adc 4 221 78
+53ae0 8 302 82
+53ae8 18 221 78
+53b00 8 221 78
+53b08 c 221 78
+53b14 8 85 79
+53b1c 8 221 78
+53b24 8 256 82
+53b2c 14 222 78
+FUNC 53b40 bc 0 testing::internal::CmpHelperEQ<char [1], std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+53b40 18 1476 82
+53b58 c 1481 82
+53b64 8 1476 82
+53b6c 8 1476 82
+53b74 10 1481 82
+53b84 c 1482 82
+53b90 10 1427 82
+53ba0 4 1382 82
+53ba4 4 1427 82
+53ba8 c 1382 82
+53bb4 1c 1471 82
+53bd0 10 156 132
+53be0 1c 1488 82
+FUNC 53bfc 3d0 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::TestBody
+53bfc 4 224 78
+53c00 4 228 78
+53c04 4 239 78
+53c08 4 224 78
+53c0c 4 225 78
+53c10 10 224 78
+53c20 4 225 78
+53c24 4 228 78
+53c28 8 229 78
+53c30 8 230 78
+53c38 4 231 78
+53c3c 4 225 78
+53c40 4 231 78
+53c44 8 232 78
+53c4c 4 239 78
+53c50 4 241 78
+53c54 8 242 78
+53c5c 8 243 78
+53c64 4 244 78
+53c68 4 225 78
+53c6c 4 244 78
+53c70 4 245 78
+53c74 4 70 55
+53c78 4 245 78
+53c7c 8 247 78
+53c84 4 248 78
+53c88 4 251 78
+53c8c 4 248 78
+53c90 4 72 55
+53c94 4 239 78
+53c98 4 251 78
+53c9c 4 240 78
+53ca0 4 70 55
+53ca4 c 225 78
+53cb0 4 72 55
+53cb4 8 251 78
+53cbc 4 1481 82
+53cc0 4 240 78
+53cc4 4 1481 82
+53cc8 4 225 78
+53ccc 4 251 78
+53cd0 20 1481 82
+53cf0 10 1482 82
+53d00 c 1427 82
+53d0c c 1382 82
+53d18 24 1471 82
+53d3c 18 156 132
+53d54 8 251 78
+53d5c c 302 82
+53d68 18 251 78
+53d80 8 251 78
+53d88 c 251 78
+53d94 8 85 79
+53d9c 8 251 78
+53da4 4 256 82
+53da8 8 1481 82
+53db0 4 256 82
+53db4 10 252 78
+53dc4 14 1481 82
+53dd8 10 1482 82
+53de8 c 1427 82
+53df4 c 1382 82
+53e00 24 1471 82
+53e24 18 156 132
+53e3c 8 252 78
+53e44 c 302 82
+53e50 18 252 78
+53e68 8 252 78
+53e70 c 252 78
+53e7c 8 85 79
+53e84 8 252 78
+53e8c 4 256 82
+53e90 8 1512 82
+53e98 4 256 82
+53e9c 10 255 78
+53eac 1c 1512 82
+53ec8 8 156 132
+53ed0 8 255 78
+53ed8 c 302 82
+53ee4 18 255 78
+53efc 8 255 78
+53f04 c 256 78
+53f10 8 85 79
+53f18 8 255 78
+53f20 8 256 82
+53f28 10 257 78
+53f38 1c 1512 82
+53f54 8 156 132
+53f5c 8 257 78
+53f64 c 302 82
+53f70 18 257 78
+53f88 8 257 78
+53f90 c 257 78
+53f9c 8 85 79
+53fa4 8 257 78
+53fac 8 256 82
+53fb4 18 258 78
+FUNC 53fcc 4 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::~TestFactoryImpl
+53fcc 4 484 85
+FUNC 53fd0 4 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::~TestFactoryImpl
+53fd0 4 484 85
+FUNC 53fd4 4 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::~TestFactoryImpl
+53fd4 4 484 85
+FUNC 53fd8 4 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::~TestFactoryImpl
+53fd8 4 484 85
+FUNC 53fdc 14 0 AndroidUContext_SigmakOffset_Test::~AndroidUContext_SigmakOffset_Test
+53fdc 14 183 34
+FUNC 53ff0 24 0 AndroidUContext_SigmakOffset_Test::~AndroidUContext_SigmakOffset_Test
+53ff0 c 183 34
+53ffc 8 183 34
+54004 4 183 34
+54008 8 183 34
+54010 4 183 34
+FUNC 54014 14 0 AndroidUContext_GRegsOffset_Test::~AndroidUContext_GRegsOffset_Test
+54014 14 50 34
+FUNC 54028 24 0 AndroidUContext_GRegsOffset_Test::~AndroidUContext_GRegsOffset_Test
+54028 c 50 34
+54034 8 50 34
+5403c 4 50 34
+54040 8 50 34
+54048 4 50 34
+FUNC 5404c 3c 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::CreateTest
+5404c 10 486 85
+5405c 8 486 85
+54064 8 183 34
+5406c 4 486 85
+54070 c 183 34
+5407c c 486 85
+FUNC 54088 3c 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::CreateTest
+54088 10 486 85
+54098 8 486 85
+540a0 8 50 34
+540a8 4 486 85
+540ac c 50 34
+540b8 c 486 85
+FUNC 540c4 13c 0 testing::internal::CmpHelperEQFailure<long unsigned int, long unsigned int>
+540c4 c 1464 82
+540d0 4 884 80
+540d4 10 1464 82
+540e4 8 884 80
+540ec c 1464 82
+540f8 4 1464 82
+540fc 4 884 80
+54100 c 263 121
+5410c 4 112 132
+54110 10 263 121
+54120 4 379 131
+54124 4 112 132
+54128 4 378 131
+5412c 4 481 101
+54130 8 379 131
+54138 10 148 137
+54148 4 380 131
+5414c 4 101 103
+54150 8 886 80
+54158 c 884 80
+54164 8 263 121
+5416c 4 112 132
+54170 10 263 121
+54180 4 379 131
+54184 4 112 132
+54188 4 378 131
+5418c 4 481 101
+54190 8 379 131
+54198 10 148 137
+541a8 4 380 131
+541ac 4 101 103
+541b0 8 886 80
+541b8 1c 1471 82
+541d4 10 156 132
+541e4 1c 1472 82
+FUNC 54200 9c 0 AndroidUContext_SigmakOffset_Test::TestBody
+54200 c 183 34
+5420c 4 1482 82
+54210 4 183 34
+54214 8 1482 82
+5421c 8 184 34
+54224 4 1144 87
+54228 c 298 82
+54234 8 298 82
+5423c 18 184 34
+54254 4 184 34
+54258 4 184 34
+5425c 8 184 34
+54264 c 184 34
+54270 c 1140 87
+5427c 8 184 34
+54284 8 256 82
+5428c 10 186 34
+FUNC 5429c 1d8 0 AndroidUContext_GRegsOffset_Test::TestBody
+5429c c 50 34
+542a8 4 1482 82
+542ac 4 50 34
+542b0 8 1482 82
+542b8 8 59 34
+542c0 4 1144 87
+542c4 c 298 82
+542d0 8 298 82
+542d8 1c 59 34
+542f4 c 256 82
+54300 8 1482 82
+54308 8 61 34
+54310 4 1144 87
+54314 c 298 82
+54320 8 298 82
+54328 1c 61 34
+54344 8 256 82
+5434c 8 1482 82
+54354 8 63 34
+5435c 4 1144 87
+54360 c 298 82
+5436c 8 298 82
+54374 1c 63 34
+54390 8 256 82
+54398 8 1482 82
+543a0 8 65 34
+543a8 4 1144 87
+543ac c 298 82
+543b8 8 298 82
+543c0 1c 65 34
+543dc 8 256 82
+543e4 8 1482 82
+543ec 8 67 34
+543f4 4 1144 87
+543f8 c 298 82
+54404 8 298 82
+5440c 1c 67 34
+54428 c 67 34
+54434 c 67 34
+54440 c 1140 87
+5444c 8 67 34
+54454 10 256 82
+54464 10 181 34
+FUNC 54474 1c 0 std::basic_streambuf<char, std::char_traits<char> >::_M_sputnc
+54474 8 208 129
+5447c 14 209 129
+FUNC 54490 ec 0 std::basic_ostream<char, std::char_traits<char> >::operator<<
+54490 10 236 121
+544a0 8 239 121
+544a8 4 236 121
+544ac 8 238 121
+544b4 8 181 122
+544bc 8 239 121
+544c4 8 239 121
+544cc c 181 122
+544d8 4 199 121
+544dc 18 211 121
+544f4 4 202 121
+544f8 4 145 110
+544fc 4 202 121
+54500 4 145 110
+54504 4 202 121
+54508 8 145 110
+54510 c 351 117
+5451c 8 351 117
+54524 4 67 120
+54528 4 202 121
+5452c 8 67 120
+54534 c 202 121
+54540 4 67 120
+54544 4 57 123
+54548 c 67 120
+54554 8 202 121
+5455c 4 210 121
+54560 8 212 121
+54568 14 241 121
+FUNC 5457c 48 0 std::basic_streambuf<char, std::char_traits<char> >::sputc
+5457c 10 198 129
+5458c 10 200 129
+5459c c 199 129
+545a8 8 223 140
+545b0 4 199 129
+545b4 8 200 129
+545bc 8 201 129
+FUNC 545c4 11c 0 std::basic_ostream<char, std::char_traits<char> >::_M_put_char
+545c4 10 300 121
+545d4 8 300 121
+545dc 10 181 122
+545ec 4 302 121
+545f0 18 305 121
+54608 8 307 121
+54610 8 308 121
+54618 c 309 121
+54624 4 310 121
+54628 4 309 121
+5462c 8 310 121
+54634 8 311 121
+5463c 8 311 121
+54644 4 312 121
+54648 4 312 121
+5464c 8 312 121
+54654 c 312 121
+54660 c 311 121
+5466c c 315 121
+54678 8 316 121
+54680 c 316 121
+5468c c 316 121
+54698 8 316 121
+546a0 4 319 121
+546a4 c 139 110
+546b0 4 325 121
+546b4 14 326 121
+546c8 8 327 121
+546d0 10 328 121
+FUNC 546e0 2dc 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+546e0 24 46 134
+54704 8 229 140
+5470c 8 400 131
+54714 4 120 132
+54718 4 400 131
+5471c 8 481 101
+54724 8 608 130
+5472c c 600 130
+54738 8 610 130
+54740 8 347 101
+54748 4 348 101
+5474c 4 611 130
+54750 4 613 130
+54754 4 612 130
+54758 c 613 130
+54764 4 57 134
+54768 4 470 131
+5476c 4 101 103
+54770 4 470 131
+54774 4 64 132
+54778 c 74 132
+54784 c 74 132
+54790 8 74 132
+54798 8 472 131
+547a0 10 473 131
+547b0 4 356 101
+547b4 4 346 101
+547b8 8 347 101
+547c0 4 348 101
+547c4 4 352 101
+547c8 8 353 101
+547d0 10 107 137
+547e0 c 106 137
+547ec 4 107 137
+547f0 8 106 137
+547f8 4 479 131
+547fc 4 106 137
+54800 4 107 137
+54804 4 101 103
+54808 8 478 131
+54810 4 160 132
+54814 4 164 132
+54818 8 165 132
+54820 c 482 131
+5482c 4 107 137
+54830 4 232 140
+54834 8 483 131
+5483c 4 107 137
+54840 8 106 137
+54848 8 101 103
+54850 14 485 131
+54864 8 197 130
+5486c 4 64 132
+54870 4 198 130
+54874 c 74 132
+54880 c 74 132
+5488c 8 74 132
+54894 8 199 130
+5489c 10 200 130
+548ac 4 356 101
+548b0 4 346 101
+548b4 8 347 101
+548bc 4 348 101
+548c0 4 352 101
+548c4 8 348 101
+548cc 10 86 137
+548dc c 86 137
+548e8 10 146 103
+548f8 1c 86 137
+54914 10 146 103
+54924 8 205 130
+5492c 8 206 130
+54934 4 101 103
+54938 4 205 130
+5493c 4 160 132
+54940 4 164 132
+54944 8 165 132
+5494c 4 210 130
+54950 4 211 130
+54954 c 86 137
+54960 18 86 137
+54978 8 146 103
+54980 10 101 103
+54990 4 232 140
+54994 c 214 130
+549a0 1c 60 134
+FUNC 549bc 234 0 testing::internal::PrintCharAndCodeTo<unsigned char, unsigned char>
+549bc c 217 93
+549c8 4 333 122
+549cc 8 217 93
+549d4 8 217 93
+549dc 10 333 122
+549ec 1c 147 93
+54a08 10 333 122
+54a18 10 147 93
+54a28 10 333 122
+54a38 1c 147 93
+54a54 10 333 122
+54a64 10 147 93
+54a74 20 333 122
+54a94 8 187 93
+54a9c 50 333 122
+54aec 4 138 93
+54af0 8 179 93
+54af8 8 305 122
+54b00 4 181 93
+54b04 8 305 122
+54b0c c 183 93
+54b18 4 183 93
+54b1c 4 183 93
+54b20 14 183 93
+54b34 c 183 93
+54b40 c 156 132
+54b4c 4 184 93
+54b50 4 156 132
+54b54 c 333 122
+54b60 4 226 93
+54b64 10 333 122
+54b74 c 228 93
+54b80 8 233 93
+54b88 10 233 93
+54b98 c 333 122
+54ba4 4 236 93
+54ba8 4 333 122
+54bac c 236 93
+54bb8 c 236 93
+54bc4 8 156 132
+54bcc 10 333 122
+54bdc 14 239 93
+FUNC 54bf0 4 0 testing::internal::PrintTo
+54bf0 4 242 93
+FUNC 54bf4 190 0 testing::internal::PrintAsCharLiteralTo<wchar_t, wchar_t>
+54bf4 4 146 93
+54bf8 4 147 93
+54bfc 10 146 93
+54c0c 4 146 93
+54c10 18 147 93
+54c28 10 333 122
+54c38 10 147 93
+54c48 10 333 122
+54c58 1c 147 93
+54c74 10 333 122
+54c84 10 147 93
+54c94 70 333 122
+54d04 8 187 93
+54d0c 4 138 93
+54d10 8 179 93
+54d18 c 305 122
+54d24 8 181 93
+54d2c c 183 93
+54d38 4 183 93
+54d3c 4 183 93
+54d40 14 183 93
+54d54 c 183 93
+54d60 10 156 132
+54d70 4 184 93
+54d74 10 188 93
+FUNC 54d84 100 0 testing::internal::PrintCharsAsStringTo<char>
+54d84 c 262 93
+54d90 4 333 122
+54d94 10 262 93
+54da4 8 333 122
+54dac 4 262 93
+54db0 4 262 93
+54db4 14 333 122
+54dc8 4 266 93
+54dcc c 333 122
+54dd8 8 267 93
+54de0 4 268 93
+54de4 4 269 93
+54de8 8 2200 87
+54df0 4 269 93
+54df4 10 193 93
+54e04 c 333 122
+54e10 8 196 93
+54e18 c 333 122
+54e24 8 199 93
+54e2c c 201 93
+54e38 10 275 93
+54e48 8 333 122
+54e50 14 278 93
+54e64 20 333 122
+FUNC 54e84 18 0 testing::internal::PrintStringTo
+54e84 4 354 93
+54e88 4 354 93
+54e8c 4 400 131
+54e90 c 355 93
+FUNC 54e9c 34 0 testing::internal::HasNewFatalFailureHelper::ReportTestPartResult
+54e9c 8 102 94
+54ea4 c 103 94
+54eb0 8 104 94
+54eb8 10 105 94
+54ec8 8 106 94
+FUNC 54ed0 34 0 testing::internal::HasNewFatalFailureHelper::~HasNewFatalFailureHelper
+54ed0 10 96 94
+54ee0 c 96 94
+54eec 4 937 91
+54ef0 8 98 94
+54ef8 8 99 94
+54f00 4 98 94
+FUNC 54f04 24 0 testing::internal::HasNewFatalFailureHelper::~HasNewFatalFailureHelper
+54f04 c 96 94
+54f10 4 96 94
+54f14 4 99 94
+54f18 4 99 94
+54f1c 8 99 94
+54f24 4 99 94
+FUNC 54f28 48 0 testing::internal::HasNewFatalFailureHelper::HasNewFatalFailureHelper
+54f28 c 89 94
+54f34 4 89 94
+54f38 10 92 94
+54f48 4 937 91
+54f4c 8 92 94
+54f54 4 92 94
+54f58 4 937 91
+54f5c 8 93 94
+54f64 8 94 94
+54f6c 4 93 94
+FUNC 54f70 a8 0 testing::TestPartResult::ExtractSummary
+54f70 4 51 94
+54f74 4 52 94
+54f78 8 51 94
+54f80 4 52 94
+54f84 8 51 94
+54f8c 4 51 94
+54f90 4 52 94
+54f94 4 112 132
+54f98 4 481 101
+54f9c 4 52 94
+54fa0 4 54 94
+54fa4 c 229 140
+54fb0 10 379 131
+54fc0 c 107 137
+54fcc 4 355 114
+54fd0 10 324 131
+54fe0 c 107 137
+54fec c 106 137
+54ff8 4 107 137
+54ffc 4 325 131
+55000 4 55 94
+55004 4 101 103
+55008 10 55 94
+FUNC 55018 48 0 testing::TestPartResult::TestPartResult
+55018 c 47 81
+55024 18 47 81
+5503c 4 47 81
+55040 4 47 81
+55044 8 47 81
+5504c 8 47 81
+55054 8 47 81
+5505c 4 47 81
+FUNC 55060 268 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::_M_insert_overflow_aux
+55060 24 81 138
+55084 4 81 138
+55088 8 192 139
+55090 8 81 138
+55098 10 192 139
+550a8 14 173 139
+550bc 10 41 138
+550cc c 176 139
+550d8 4 175 139
+550dc 10 176 139
+550ec 4 356 101
+550f0 8 346 101
+550f8 8 177 139
+55100 c 347 101
+5510c 8 158 101
+55114 8 134 119
+5511c 8 158 101
+55124 4 352 101
+55128 4 158 101
+5512c 8 352 101
+55134 4 91 138
+55138 4 84 137
+5513c 14 86 137
+55150 8 86 137
+55158 4 139 103
+5515c 14 139 103
+55170 4 88 137
+55174 4 89 137
+55178 14 86 137
+5518c c 93 138
+55198 4 119 103
+5519c c 119 103
+551a8 8 95 138
+551b0 4 314 137
+551b4 4 249 137
+551b8 4 314 137
+551bc 8 249 137
+551c4 8 249 137
+551cc 4 139 103
+551d0 c 139 103
+551dc c 249 137
+551e8 4 98 138
+551ec 4 86 137
+551f0 4 84 137
+551f4 14 86 137
+55208 8 86 137
+55210 4 139 103
+55214 c 139 103
+55220 4 88 137
+55224 4 89 137
+55228 20 86 137
+55248 8 191 103
+55250 20 156 132
+55270 c 662 139
+5527c 4 319 101
+55280 8 161 101
+55288 8 135 119
+55290 4 161 101
+55294 4 104 138
+55298 4 666 139
+5529c 4 667 139
+552a0 8 104 138
+552a8 4 668 139
+552ac 1c 105 138
+FUNC 552c8 10 0 std::ios_base::precision
+552c8 4 131 110
+552cc 4 132 110
+552d0 8 134 110
+FUNC 552d8 10 0 std::ios_base::width
+552d8 4 138 110
+552dc 4 139 110
+552e0 8 141 110
+FUNC 552e8 20 0 testing::internal::DeleteThreadLocalValue
+552e8 8 1988 87
+552f0 4 1989 87
+552f4 c 1989 87
+55300 8 1990 87
+FUNC 55308 20 0 testing::Test::DeleteSelf_
+55308 8 453 82
+55310 4 453 82
+55314 4 453 82
+55318 8 453 82
+55320 8 453 82
+FUNC 55328 18 0 testing::TestCase::RunSetUpTestCase
+55328 8 879 82
+55330 10 879 82
+FUNC 55340 18 0 testing::TestCase::RunTearDownTestCase
+55340 8 883 82
+55348 10 883 82
+FUNC 55358 14 0 testing::TestCase::TestReportableDisabled
+55358 4 696 82
+5535c 4 898 82
+55360 4 898 82
+55364 8 899 82
+FUNC 5536c 8 0 testing::TestCase::TestReportable
+5536c 8 909 82
+FUNC 55374 8 0 testing::TestCase::ShouldRunTest
+55374 8 914 82
+FUNC 5537c 4 0 testing::EmptyTestEventListener::OnTestProgramStart
+5537c 4 1038 82
+FUNC 55380 4 0 testing::EmptyTestEventListener::OnTestIterationStart
+55380 4 1040 82
+FUNC 55384 4 0 testing::EmptyTestEventListener::OnEnvironmentsSetUpStart
+55384 4 1041 82
+FUNC 55388 4 0 testing::EmptyTestEventListener::OnEnvironmentsSetUpEnd
+55388 4 1042 82
+FUNC 5538c 4 0 testing::EmptyTestEventListener::OnTestCaseStart
+5538c 4 1043 82
+FUNC 55390 4 0 testing::EmptyTestEventListener::OnTestStart
+55390 4 1044 82
+FUNC 55394 4 0 testing::EmptyTestEventListener::OnTestPartResult
+55394 4 1045 82
+FUNC 55398 4 0 testing::EmptyTestEventListener::OnTestEnd
+55398 4 1046 82
+FUNC 5539c 4 0 testing::EmptyTestEventListener::OnTestCaseEnd
+5539c 4 1047 82
+FUNC 553a0 4 0 testing::EmptyTestEventListener::OnEnvironmentsTearDownStart
+553a0 4 1048 82
+FUNC 553a4 4 0 testing::EmptyTestEventListener::OnEnvironmentsTearDownEnd
+553a4 4 1049 82
+FUNC 553a8 4 0 testing::EmptyTestEventListener::OnTestProgramEnd
+553a8 4 1052 82
+FUNC 553ac 8 0 testing::internal::ShouldRunTestCase
+553ac 8 348 95
+FUNC 553b4 4 0 testing::Test::SetUp
+553b4 4 2188 95
+FUNC 553b8 4 0 testing::Test::TearDown
+553b8 4 2194 95
+FUNC 553bc 4 0 testing::internal::PrettyUnitTestResultPrinter::OnTestProgramStart
+553bc 4 2987 95
+FUNC 553c0 4 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsSetUpEnd
+553c0 4 2990 95
+FUNC 553c4 4 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsTearDownEnd
+553c4 4 2997 95
+FUNC 553c8 4 0 testing::internal::PrettyUnitTestResultPrinter::OnTestProgramEnd
+553c8 4 2999 95
+FUNC 553cc 4 0 testing::internal::OsStackTraceGetter::UponLeavingGTest
+553cc 4 3803 95
+FUNC 553d0 1c 0 testing::internal::SetUpEnvironment
+553d0 8 4486 95
+553d8 14 4486 95
+FUNC 553ec 1c 0 testing::internal::TearDownEnvironment
+553ec 8 4487 95
+553f4 14 4487 95
+FUNC 55408 20 0 testing::internal::Delete<testing::TestEventListener>
+55408 8 339 91
+55410 4 340 91
+55414 c 340 91
+55420 8 341 91
+FUNC 55428 20 0 testing::internal::Delete<testing::TestCase>
+55428 8 339 91
+55430 4 340 91
+55434 c 340 91
+55440 8 341 91
+FUNC 55448 20 0 testing::internal::Delete<testing::Environment>
+55448 8 339 91
+55450 4 340 91
+55454 c 340 91
+55460 8 341 91
+FUNC 55468 4 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::ValueHolder::~ValueHolder
+55468 4 2017 87
+FUNC 5546c 4 0 testing::internal::PrettyUnitTestResultPrinter::~PrettyUnitTestResultPrinter
+5546c 4 2979 95
+FUNC 55470 4 0 testing::internal::DefaultPerThreadTestPartResultReporter::~DefaultPerThreadTestPartResultReporter
+55470 4 490 91
+FUNC 55474 4 0 testing::internal::DefaultGlobalTestPartResultReporter::~DefaultGlobalTestPartResultReporter
+55474 4 474 91
+FUNC 55478 4 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::ValueHolder::~ValueHolder
+55478 4 2017 87
+FUNC 5547c 4 0 testing::internal::DefaultPerThreadTestPartResultReporter::~DefaultPerThreadTestPartResultReporter
+5547c 4 490 91
+FUNC 55480 4 0 testing::internal::DefaultGlobalTestPartResultReporter::~DefaultGlobalTestPartResultReporter
+55480 4 474 91
+FUNC 55484 4 0 testing::internal::PrettyUnitTestResultPrinter::~PrettyUnitTestResultPrinter
+55484 4 2979 95
+FUNC 55488 64 0 testing::internal::TestEventRepeater::OnTestProgramStart
+55488 10 3263 95
+55498 14 3263 95
+554ac c 192 139
+554b8 8 3263 95
+554c0 1c 3263 95
+554dc 10 3263 95
+FUNC 554ec 64 0 testing::internal::TestEventRepeater::OnEnvironmentsSetUpStart
+554ec 10 3264 95
+554fc 14 3264 95
+55510 c 192 139
+5551c 8 3264 95
+55524 1c 3264 95
+55540 10 3264 95
+FUNC 55550 64 0 testing::internal::TestEventRepeater::OnTestCaseStart
+55550 10 3265 95
+55560 14 3265 95
+55574 c 192 139
+55580 8 3265 95
+55588 1c 3265 95
+555a4 10 3265 95
+FUNC 555b4 64 0 testing::internal::TestEventRepeater::OnTestStart
+555b4 10 3266 95
+555c4 14 3266 95
+555d8 c 192 139
+555e4 8 3266 95
+555ec 1c 3266 95
+55608 10 3266 95
+FUNC 55618 64 0 testing::internal::TestEventRepeater::OnTestPartResult
+55618 10 3267 95
+55628 14 3267 95
+5563c c 192 139
+55648 8 3267 95
+55650 1c 3267 95
+5566c 10 3267 95
+FUNC 5567c 64 0 testing::internal::TestEventRepeater::OnEnvironmentsTearDownStart
+5567c 10 3268 95
+5568c 14 3268 95
+556a0 c 192 139
+556ac 8 3268 95
+556b4 1c 3268 95
+556d0 10 3268 95
+FUNC 556e0 80 0 testing::internal::TestEventRepeater::OnEnvironmentsSetUpEnd
+556e0 14 3269 95
+556f4 10 3269 95
+55704 4 192 139
+55708 4 3269 95
+5570c c 192 139
+55718 8 3269 95
+55720 4 3269 95
+55724 8 202 139
+5572c 20 3269 95
+5574c 14 3269 95
+FUNC 55760 80 0 testing::internal::TestEventRepeater::OnEnvironmentsTearDownEnd
+55760 14 3270 95
+55774 10 3270 95
+55784 4 192 139
+55788 4 3270 95
+5578c c 192 139
+55798 8 3270 95
+557a0 4 3270 95
+557a4 8 202 139
+557ac 20 3270 95
+557cc 14 3270 95
+FUNC 557e0 80 0 testing::internal::TestEventRepeater::OnTestEnd
+557e0 14 3271 95
+557f4 10 3271 95
+55804 4 192 139
+55808 4 3271 95
+5580c c 192 139
+55818 8 3271 95
+55820 4 3271 95
+55824 8 202 139
+5582c 20 3271 95
+5584c 14 3271 95
+FUNC 55860 80 0 testing::internal::TestEventRepeater::OnTestCaseEnd
+55860 14 3272 95
+55874 10 3272 95
+55884 4 192 139
+55888 4 3272 95
+5588c c 192 139
+55898 8 3272 95
+558a0 4 3272 95
+558a4 8 202 139
+558ac 20 3272 95
+558cc 14 3272 95
+FUNC 558e0 80 0 testing::internal::TestEventRepeater::OnTestProgramEnd
+558e0 14 3273 95
+558f4 10 3273 95
+55904 4 192 139
+55908 4 3273 95
+5590c c 192 139
+55918 8 3273 95
+55920 4 3273 95
+55924 8 202 139
+5592c 20 3273 95
+5594c 14 3273 95
+FUNC 55960 6c 0 testing::internal::TestEventRepeater::OnTestIterationStart
+55960 10 3279 95
+55970 8 3279 95
+55978 4 3280 95
+5597c 8 3279 95
+55984 4 3280 95
+55988 c 192 139
+55994 8 3281 95
+5599c 4 3282 95
+559a0 4 3282 95
+559a4 4 3281 95
+559a8 4 3282 95
+559ac 10 3282 95
+559bc 10 3285 95
+FUNC 559cc 88 0 testing::internal::TestEventRepeater::OnTestIterationEnd
+559cc 14 3288 95
+559e0 10 3289 95
+559f0 8 192 139
+559f8 4 3290 95
+559fc c 192 139
+55a08 8 3290 95
+55a10 4 3290 95
+55a14 8 202 139
+55a1c 4 3291 95
+55a20 8 3290 95
+55a28 8 3291 95
+55a30 10 3291 95
+55a40 14 3294 95
+FUNC 55a54 84 0 testing::internal::PrintOnOneLine
+55a54 10 4788 95
+55a64 4 4788 95
+55a68 4 4789 95
+55a6c 4 4796 95
+55a70 4 4789 95
+55a74 4 4796 95
+55a78 8 4790 95
+55a80 8 4791 95
+55a88 8 4804 95
+55a90 4 4792 95
+55a94 4 4804 95
+55a98 8 4792 95
+55aa0 8 4795 95
+55aa8 4 4796 95
+55aac 4 4797 95
+55ab0 8 4796 95
+55ab8 4 4800 95
+55abc 4 4799 95
+55ac0 8 4790 95
+55ac8 10 4804 95
+FUNC 55ad8 60 0 testing::internal::SumOverTestCaseList
+55ad8 c 325 95
+55ae4 4 328 95
+55ae8 4 325 95
+55aec 4 327 95
+55af0 4 325 95
+55af4 c 192 139
+55b00 8 328 95
+55b08 4 329 95
+55b0c 4 328 95
+55b10 8 329 95
+55b18 4 329 95
+55b1c 8 328 95
+55b24 14 332 95
+FUNC 55b38 30 0 testing::internal::StreamingListener::~StreamingListener
+55b38 c 1044 91
+55b44 8 1044 91
+55b4c 8 1153 87
+55b54 c 1155 87
+55b60 8 1044 91
+FUNC 55b68 24 0 testing::internal::StreamingListener::~StreamingListener
+55b68 c 1044 91
+55b74 8 1044 91
+55b7c 4 1044 91
+55b80 8 1044 91
+55b88 4 1044 91
+FUNC 55b8c 5c 0 std::allocator<testing::internal::edit_distance::EditType>::_M_allocate
+55b8c 8 341 101
+55b94 8 342 101
+55b9c 4 341 101
+55ba0 4 342 101
+55ba4 c 343 101
+55bb0 8 343 101
+55bb8 4 356 101
+55bbc 4 346 101
+55bc0 c 347 101
+55bcc 4 348 101
+55bd0 10 352 101
+55be0 8 357 101
+FUNC 55be8 a8 0 testing::internal::UnitTestOptions::PatternMatchesString
+55be8 c 445 95
+55bf4 8 445 95
+55bfc 30 446 95
+55c2c 10 449 95
+55c3c c 451 95
+55c48 10 453 95
+55c58 c 453 95
+55c64 8 453 95
+55c6c c 456 95
+55c78 8 457 95
+55c80 4 451 95
+55c84 c 459 95
+FUNC 55c90 58 0 testing::internal::UnitTestOptions::MatchesFilter
+55c90 10 462 95
+55ca0 8 462 95
+55ca8 10 465 95
+55cb8 4 465 95
+55cbc c 470 95
+55cc8 4 473 95
+55ccc 4 478 95
+55cd0 4 479 95
+55cd4 14 480 95
+FUNC 55ce8 c 0 testing::internal::GetTestTypeId
+55ce8 c 604 95
+FUNC 55cf4 24 0 testing::internal::UnitTestImpl::successful_test_count
+55cf4 4 733 95
+55cf8 8 734 95
+55d00 4 733 95
+55d04 8 734 95
+55d0c 4 734 95
+55d10 8 735 95
+FUNC 55d18 24 0 testing::internal::UnitTestImpl::failed_test_count
+55d18 4 738 95
+55d1c 8 739 95
+55d24 4 738 95
+55d28 8 739 95
+55d30 4 739 95
+55d34 8 740 95
+FUNC 55d3c 24 0 testing::internal::UnitTestImpl::reportable_disabled_test_count
+55d3c 4 743 95
+55d40 8 745 95
+55d48 4 743 95
+55d4c 8 745 95
+55d54 4 745 95
+55d58 8 746 95
+FUNC 55d60 24 0 testing::internal::UnitTestImpl::reportable_test_count
+55d60 4 754 95
+55d64 8 755 95
+55d6c 4 754 95
+55d70 8 755 95
+55d78 4 755 95
+55d7c 8 756 95
+FUNC 55d84 24 0 testing::internal::UnitTestImpl::test_to_run_count
+55d84 4 764 95
+55d88 8 765 95
+55d90 4 764 95
+55d94 8 765 95
+55d9c 4 765 95
+55da0 8 766 95
+FUNC 55da8 30 0 testing::internal::GetTimeInMillis
+55da8 4 784 95
+55dac 4 820 95
+55db0 4 784 95
+55db4 8 820 95
+55dbc 8 821 95
+55dc4 8 825 95
+55dcc 4 821 95
+55dd0 8 825 95
+FUNC 55dd8 30 0 testing::internal::String::CStringEquals
+55dd8 4 872 95
+55ddc 4 873 95
+55de0 4 872 95
+55de4 4 873 95
+55de8 4 875 95
+55dec 4 875 95
+55df0 c 877 95
+55dfc c 878 95
+FUNC 55e08 14 0 testing::AssertionSuccess
+55e08 4 277 82
+55e0c 4 971 95
+55e10 4 277 82
+55e14 4 1139 87
+55e18 4 973 95
+FUNC 55e1c 10 0 testing::AssertionFailure
+55e1c 4 976 95
+55e20 4 277 82
+55e24 4 1139 87
+55e28 4 978 95
+FUNC 55e2c 30 0 testing::internal::String::CaseInsensitiveCStringEquals
+55e2c 4 1866 95
+55e30 4 1868 95
+55e34 4 1866 95
+55e38 4 1867 95
+55e3c 4 1870 95
+55e40 4 1869 95
+55e44 4 2274 87
+55e48 8 1871 95
+55e50 c 1872 95
+FUNC 55e5c 58 0 testing::TestResult::GetTestPartResult
+55e5c 8 1990 95
+55e64 4 1991 95
+55e68 18 192 139
+55e80 8 1991 95
+55e88 8 167 139
+55e90 c 45 138
+55e9c 4 2340 87
+55ea0 4 203 139
+55ea4 4 1994 95
+55ea8 8 203 139
+55eb0 4 1994 95
+FUNC 55eb4 58 0 testing::TestResult::GetTestProperty
+55eb4 8 1999 95
+55ebc 4 2000 95
+55ec0 18 192 139
+55ed8 8 2000 95
+55ee0 8 167 139
+55ee8 c 45 138
+55ef4 4 2340 87
+55ef8 4 203 139
+55efc 4 2003 95
+55f00 8 203 139
+55f08 4 2003 95
+FUNC 55f0c 70 0 testing::TestResult::Failed
+55f0c 14 2131 95
+55f20 4 2162 95
+55f24 4 2132 95
+55f28 10 192 139
+55f38 4 2162 95
+55f3c 8 2132 95
+55f44 14 2133 95
+55f58 8 2132 95
+55f60 8 2136 95
+55f68 4 2134 95
+55f6c 10 2137 95
+FUNC 55f7c 18 0 testing::TestCase::TestFailed
+55f7c 4 689 82
+55f80 4 892 82
+55f84 8 892 82
+55f8c 8 893 82
+FUNC 55f94 2c 0 testing::TestCase::TestPassed
+55f94 8 886 82
+55f9c 4 689 82
+55fa0 4 887 82
+55fa4 c 540 82
+55fb0 4 887 82
+55fb4 c 888 82
+FUNC 55fc0 30 0 testing::TestResult::HasFatalFailure
+55fc0 8 2145 95
+55fc8 4 285 91
+55fcc 8 286 91
+55fd4 4 287 91
+55fd8 c 288 91
+55fe4 4 2146 95
+55fe8 8 2147 95
+FUNC 55ff0 30 0 testing::TestResult::HasNonfatalFailure
+55ff0 8 2155 95
+55ff8 4 285 91
+55ffc 8 286 91
+56004 4 287 91
+56008 c 288 91
+56014 4 2156 95
+56018 8 2157 95
+FUNC 56020 50 0 testing::internal::UnitTestImpl::RegisterParameterizedTests
+56020 c 2571 95
+5602c 10 2573 95
+5603c c 600 86
+56048 14 602 86
+5605c 8 2575 95
+56064 c 2578 95
+FUNC 56070 28 0 testing::TestCase::UnshuffleTests
+56070 4 2753 95
+56074 c 192 139
+56080 8 2753 95
+56088 4 2754 95
+5608c 8 2753 95
+56094 4 2756 95
+FUNC 56098 44 0 testing::internal::GetAnsiColorCode
+56098 18 2859 95
+560b0 8 2863 95
+560b8 c 2861 95
+560c4 c 2862 95
+560d0 8 2860 95
+560d8 4 2865 95
+FUNC 560dc 154 0 testing::internal::ShouldUseColor
+560dc 4 2870 95
+560e0 4 2873 95
+560e4 8 2870 95
+560ec 8 2870 95
+560f4 18 2873 95
+5610c 10 2328 87
+5611c 10 2882 95
+5612c 4 2887 95
+56130 14 2883 95
+56144 4 2882 95
+56148 14 2884 95
+5615c 4 2883 95
+56160 14 2885 95
+56174 4 2884 95
+56178 14 2886 95
+5618c 4 2885 95
+56190 14 2887 95
+561a4 4 2886 95
+561a8 14 2888 95
+561bc 8 2889 95
+561c4 14 2893 95
+561d8 4 2895 95
+561dc 14 2894 95
+561f0 4 2893 95
+561f4 14 2895 95
+56208 4 2894 95
+5620c 8 2896 95
+56214 8 2900 95
+5621c 8 2896 95
+56224 c 2900 95
+FUNC 56230 134 0 testing::internal::ColoredPrintf
+56230 10 2906 95
+56240 4 2908 95
+56244 4 2906 95
+56248 4 2908 95
+5624c 4 2915 95
+56250 1c 2908 95
+5626c 4 2906 95
+56270 4 2915 95
+56274 38 2906 95
+562ac 4 2915 95
+562b0 10 2270 87
+562c0 4 2271 87
+562c4 4 2915 95
+562c8 8 2915 95
+562d0 14 2915 95
+562e4 4 2916 95
+562e8 4 2916 95
+562ec 8 2916 95
+562f4 20 2921 95
+56314 c 2947 95
+56320 c 2947 95
+5632c 1c 2948 95
+56348 c 2949 95
+56354 10 2952 95
+FUNC 56364 38 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart
+56364 4 3042 95
+56368 8 3043 95
+56370 4 3042 95
+56374 4 3043 95
+56378 4 3043 95
+5637c c 3044 95
+56388 4 3045 95
+5638c 4 3046 95
+56390 c 3045 95
+FUNC 5639c 54 0 testing::internal::PrettyUnitTestResultPrinter::OnTestStart
+5639c 4 3061 95
+563a0 4 3062 95
+563a4 8 3061 95
+563ac 4 3061 95
+563b0 c 3062 95
+563bc 14 2983 95
+563d0 8 3064 95
+563d8 4 3066 95
+563dc 4 3065 95
+563e0 4 3066 95
+563e4 c 3065 95
+FUNC 563f0 38 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart
+563f0 4 3112 95
+563f4 8 3113 95
+563fc 4 3112 95
+56400 4 3113 95
+56404 4 3113 95
+56408 c 3114 95
+56414 4 3115 95
+56418 4 3116 95
+5641c c 3115 95
+FUNC 56428 c0 0 testing::internal::PrintFullTestCommentIfPresent
+56428 10 2959 95
+56438 4 1144 87
+5643c 4 662 82
+56440 8 660 82
+56448 4 1144 87
+5644c 4 670 82
+56450 8 668 82
+56458 18 2963 95
+56470 10 2964 95
+56480 4 2965 95
+56484 18 2966 95
+5649c 4 2967 95
+564a0 10 2968 95
+564b0 4 2970 95
+564b4 4 2971 95
+564b8 8 2974 95
+564c0 8 2971 95
+564c8 4 2974 95
+564cc c 2971 95
+564d8 10 2974 95
+FUNC 564e8 7c 0 testing::internal::TestEventRepeater::Release
+564e8 10 3231 95
+564f8 14 192 139
+5650c 4 3232 95
+56510 8 3232 95
+56518 4 202 139
+5651c c 3233 95
+56528 c 580 139
+56534 4 269 100
+56538 10 584 139
+56548 8 3232 95
+56550 4 3239 95
+56554 10 3240 95
+FUNC 56564 50 0 testing::TestEventListeners::TestEventListeners
+56564 c 3842 95
+56570 4 3842 95
+56574 8 3845 95
+5657c 4 67 139
+56580 4 3188 95
+56584 4 67 139
+56588 4 3188 95
+5658c 4 481 101
+56590 c 3188 95
+5659c c 3845 95
+565a8 c 3846 95
+FUNC 565b4 24 0 testing::TestEventListeners::~TestEventListeners
+565b4 8 3848 95
+565bc 8 3848 95
+565c4 4 3848 95
+565c8 8 3848 95
+565d0 8 3848 95
+FUNC 565d8 2c 0 testing::TestEventListeners::Release
+565d8 c 3862 95
+565e4 8 3863 95
+565ec c 3864 95
+565f8 4 3865 95
+565fc 8 3866 95
+FUNC 56604 c 0 testing::TestEventListeners::SuppressEventForwarding
+56604 4 3912 95
+56608 4 3196 95
+5660c 4 3913 95
+FUNC 56610 18 0 testing::UnitTest::total_test_case_count
+56610 4 1280 82
+56614 c 192 139
+56620 8 3958 95
+FUNC 56628 8 0 testing::UnitTest::successful_test_count
+56628 8 3968 95
+FUNC 56630 8 0 testing::UnitTest::failed_test_count
+56630 8 3972 95
+FUNC 56638 8 0 testing::UnitTest::reportable_disabled_test_count
+56638 8 3976 95
+FUNC 56640 8 0 testing::UnitTest::reportable_test_count
+56640 8 3986 95
+FUNC 56648 8 0 testing::UnitTest::test_to_run_count
+56648 8 3993 95
+FUNC 56650 c 0 testing::UnitTest::original_working_dir
+56650 4 4217 95
+56654 8 4219 95
+FUNC 5665c 14 0 testing::internal::UnitTestImpl::SuppressTestEventsIfInSubprocess
+5665c 8 4345 95
+56664 4 3912 95
+56668 4 3196 95
+5666c 4 4347 95
+FUNC 56670 30 0 testing::internal::TestCaseNameIs::operator()
+56670 8 4429 95
+56678 4 4430 95
+5667c 4 4429 95
+56680 4 4430 95
+56684 c 4430 95
+56690 8 4430 95
+56698 8 4431 95
+FUNC 566a0 7c 0 testing::internal::WriteToShardStatusFileIfNeeded
+566a0 c 4635 95
+566ac 10 2328 87
+566bc 8 4637 95
+566c4 c 2298 87
+566d0 8 4639 95
+566d8 14 4643 95
+566ec 10 4644 95
+566fc 8 4645 95
+56704 8 4649 95
+5670c 4 4647 95
+56710 c 4649 95
+FUNC 5671c 144 0 testing::internal::UnitTestImpl::ListTestsMatchingFilter
+5671c 14 4807 95
+56730 4 4832 95
+56734 4 4830 95
+56738 4 4832 95
+5673c 8 4807 95
+56744 4 4811 95
+56748 4 4830 95
+5674c 8 4832 95
+56754 c 192 139
+56760 8 4811 95
+56768 4 4815 95
+5676c 4 4812 95
+56770 4 4813 95
+56774 c 192 139
+56780 8 4815 95
+56788 4 4817 95
+5678c 8 4818 95
+56794 4 4819 95
+56798 10 4821 95
+567a8 4 1144 87
+567ac 4 797 82
+567b0 8 4822 95
+567b8 10 4823 95
+567c8 4 1144 87
+567cc 4 799 82
+567d0 8 797 82
+567d8 4 4826 95
+567dc 8 4828 95
+567e4 c 4830 95
+567f0 4 1144 87
+567f4 4 668 82
+567f8 8 4831 95
+56800 c 4832 95
+5680c 4 1144 87
+56810 4 670 82
+56814 8 668 82
+5681c 4 4835 95
+56820 c 4837 95
+5682c 8 4815 95
+56834 8 4811 95
+5683c 4 4841 95
+56840 8 4842 95
+56848 4 4841 95
+5684c c 4842 95
+56858 8 4841 95
+FUNC 56860 4c 0 testing::internal::UnitTestImpl::UnshuffleTests
+56860 c 4892 95
+5686c 4 4892 95
+56870 4 4893 95
+56874 c 192 139
+56880 8 4893 95
+56888 8 4895 95
+56890 4 202 139
+56894 4 4897 95
+56898 8 4893 95
+568a0 c 4899 95
+FUNC 568ac 4 0 testing::internal::IsTrue
+568ac 4 4924 95
+FUNC 568b0 8 0 testing::internal::AlwaysTrue
+568b0 8 4934 95
+FUNC 568b8 5c 0 testing::internal::SkipPrefix
+568b8 14 4939 95
+568cc 4 4939 95
+568d0 4 4940 95
+568d4 4 4941 95
+568d8 4 4940 95
+568dc 10 4941 95
+568ec 4 4945 95
+568f0 4 4941 95
+568f4 4 4942 95
+568f8 4 4943 95
+568fc 4 4942 95
+56900 14 4946 95
+FUNC 56914 b8 0 testing::internal::HasGoogleTestFlagPrefix
+56914 c 5043 95
+56920 8 5043 95
+56928 14 5044 95
+5693c 4 5047 95
+56940 14 5047 95
+56954 8 5046 95
+5695c 14 5045 95
+56970 4 5044 95
+56974 14 5046 95
+56988 4 5045 95
+5698c 8 5047 95
+56994 14 5048 95
+569a8 4 5047 95
+569ac 14 5049 95
+569c0 c 5050 95
+FUNC 569cc 30 0 testing::internal::GetElementOr<int>
+569cc 4 302 91
+569d0 4 303 91
+569d4 4 303 91
+569d8 10 192 139
+569e8 4 303 91
+569ec 8 303 91
+569f4 4 303 91
+569f8 4 304 91
+FUNC 569fc 3c 0 testing::TestCase::GetTestInfo
+569fc 4 2693 95
+56a00 4 2694 95
+56a04 8 2693 95
+56a0c 4 2693 95
+56a10 8 2694 95
+56a18 4 2695 95
+56a1c 4 2695 95
+56a20 8 2695 95
+56a28 10 2696 95
+FUNC 56a38 3c 0 testing::TestCase::GetMutableTestInfo
+56a38 4 2700 95
+56a3c 4 2701 95
+56a40 8 2700 95
+56a48 4 2700 95
+56a4c 8 2701 95
+56a54 4 2702 95
+56a58 4 2702 95
+56a5c 8 2702 95
+56a64 10 2703 95
+FUNC 56a74 40 0 testing::UnitTest::GetTestCase
+56a74 4 4015 95
+56a78 4 587 91
+56a7c 8 4015 95
+56a84 4 4015 95
+56a88 4 1280 82
+56a8c 8 587 91
+56a94 4 588 91
+56a98 4 588 91
+56a9c 8 588 91
+56aa4 10 4017 95
+FUNC 56ab4 5c 0 testing::internal::CountIf<std::vector<testing::TestCase*>, bool (*)(const testing::TestCase*)>
+56ab4 10 282 91
+56ac4 4 285 91
+56ac8 8 282 91
+56ad0 c 286 91
+56adc 10 287 91
+56aec 10 288 91
+56afc 14 291 91
+FUNC 56b10 10 0 testing::internal::UnitTestImpl::failed_test_case_count
+56b10 10 718 95
+FUNC 56b20 3c 0 testing::internal::UnitTestImpl::Failed
+56b20 c 580 91
+56b2c 4 580 91
+56b30 c 581 91
+56b3c 4 581 91
+56b40 8 582 91
+56b48 4 581 91
+56b4c 10 582 91
+FUNC 56b5c 20 0 testing::UnitTest::Passed
+56b5c 8 4007 95
+56b64 c 576 91
+56b70 c 4007 95
+FUNC 56b7c 10 0 testing::internal::UnitTestImpl::test_case_to_run_count
+56b7c 10 729 95
+FUNC 56b8c 8 0 testing::UnitTest::test_case_to_run_count
+56b8c 8 3963 95
+FUNC 56b94 50 0 std::operator<< <char, std::char_traits<char>, long int>
+56b94 c 80 107
+56ba0 4 80 107
+56ba4 4 82 107
+56ba8 8 42 107
+56bb0 c 82 107
+56bbc 4 42 107
+56bc0 8 42 107
+56bc8 c 42 107
+56bd4 10 84 107
+FUNC 56be4 1c 0 std::priv::_Impl_vector<testing::internal::edit_distance::EditType, std::allocator<testing::internal::edit_distance::EditType> >::~_Impl_vector
+56be4 8 304 139
+56bec 4 87 139
+56bf0 4 88 139
+56bf4 8 323 101
+56bfc 4 304 139
+FUNC 56c00 58 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+56c00 c 320 134
+56c0c 4 320 134
+56c10 10 229 140
+56c20 4 324 134
+56c24 4 400 131
+56c28 4 324 134
+56c2c 4 400 131
+56c30 8 324 134
+56c38 8 226 140
+56c40 8 324 134
+56c48 10 325 134
+FUNC 56c58 5c 0 testing::internal::CountIf<std::vector<testing::TestInfo*>, bool (*)(const testing::TestInfo*)>
+56c58 10 282 91
+56c68 4 285 91
+56c6c 8 282 91
+56c74 c 286 91
+56c80 10 287 91
+56c90 10 288 91
+56ca0 14 291 91
+FUNC 56cb4 10 0 testing::TestCase::successful_test_count
+56cb4 10 2632 95
+FUNC 56cc4 10 0 testing::TestCase::failed_test_count
+56cc4 10 2637 95
+FUNC 56cd4 28 0 testing::internal::TestCaseFailed
+56cd4 8 340 95
+56cdc 4 803 82
+56ce0 4 341 95
+56ce4 4 830 82
+56ce8 8 341 95
+56cf0 c 342 95
+FUNC 56cfc 104 0 testing::internal::PrettyUnitTestResultPrinter::PrintFailedTests
+56cfc 1c 3119 95
+56d18 4 3119 95
+56d1c 4 3120 95
+56d20 4 3121 95
+56d24 4 3135 95
+56d28 4 3136 95
+56d2c 4 3135 95
+56d30 4 3136 95
+56d34 8 3125 95
+56d3c 8 3125 95
+56d44 c 3126 95
+56d50 4 3127 95
+56d54 4 3126 95
+56d58 4 3127 95
+56d5c 4 3127 95
+56d60 8 3127 95
+56d68 10 192 139
+56d78 8 3130 95
+56d80 10 3131 95
+56d90 8 3132 95
+56d98 c 540 82
+56da4 4 3132 95
+56da8 8 3130 95
+56db0 8 3125 95
+56db8 c 3135 95
+56dc4 10 3136 95
+56dd4 8 3137 95
+56ddc c 3138 95
+56de8 18 3141 95
+FUNC 56e00 10 0 testing::TestCase::reportable_disabled_test_count
+56e00 10 2642 95
+FUNC 56e10 10 0 testing::TestCase::reportable_test_count
+56e10 10 2652 95
+FUNC 56e20 10 0 testing::TestCase::test_to_run_count
+56e20 10 2657 95
+FUNC 56e30 4 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
+56e30 4 156 132
+FUNC 56e34 3c 0 testing::internal::AssertHelper::~AssertHelper
+56e34 c 358 95
+56e40 c 359 95
+56e4c 8 156 132
+56e54 4 359 95
+56e58 8 360 95
+56e60 4 359 95
+56e64 c 360 95
+FUNC 56e70 30 0 testing::TestPartResult::~TestPartResult
+56e70 c 47 81
+56e7c 4 47 81
+56e80 14 156 132
+56e94 8 47 81
+56e9c 4 156 132
+FUNC 56ea0 10 0 testing::internal::XmlUnitTestResultPrinter::~XmlUnitTestResultPrinter
+56ea0 c 3299 95
+56eac 4 156 132
+FUNC 56eb0 24 0 testing::internal::XmlUnitTestResultPrinter::~XmlUnitTestResultPrinter
+56eb0 c 3299 95
+56ebc 8 3299 95
+56ec4 4 3299 95
+56ec8 8 3299 95
+56ed0 4 3299 95
+FUNC 56ed4 68 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~_Impl_vector
+56ed4 10 304 139
+56ee4 c 304 139
+56ef0 c 191 103
+56efc 10 156 132
+56f0c 8 87 139
+56f14 4 88 139
+56f18 c 304 139
+56f24 8 323 101
+56f2c 10 304 139
+FUNC 56f3c 58 0 testing::internal::scoped_ptr<testing::internal::InternalRunDeathTestFlag>::reset
+56f3c 10 1152 87
+56f4c 14 1153 87
+56f60 4 1155 87
+56f64 8 244 83
+56f6c 4 2314 87
+56f70 8 156 132
+56f78 8 1155 87
+56f80 4 1157 87
+56f84 10 1159 87
+FUNC 56f94 1c 0 std::priv::_Vector_base<void*, std::allocator<void*> >::~_Vector_base
+56f94 4 86 139
+56f98 8 87 139
+56fa0 4 88 139
+56fa4 8 323 101
+56fac 4 89 139
+FUNC 56fb0 50 0 testing::internal::TestEventRepeater::~TestEventRepeater
+56fb0 14 3222 95
+56fc4 14 3222 95
+56fd8 8 60 98
+56fe0 c 61 98
+56fec 4 304 139
+56ff0 c 3224 95
+56ffc 4 304 139
+FUNC 57000 24 0 testing::internal::TestEventRepeater::~TestEventRepeater
+57000 c 3222 95
+5700c 4 3222 95
+57010 4 3224 95
+57014 4 3224 95
+57018 8 3224 95
+57020 4 3224 95
+FUNC 57024 1c 0 std::priv::_Vector_base<double, std::allocator<double> >::~_Vector_base
+57024 4 86 139
+57028 8 87 139
+57030 4 88 139
+57034 8 323 101
+5703c 4 89 139
+FUNC 57040 1c 0 std::priv::_Vector_base<long unsigned int, std::allocator<long unsigned int> >::~_Vector_base
+57040 4 86 139
+57044 8 87 139
+5704c 4 88 139
+57050 8 323 101
+57058 4 89 139
+FUNC 5705c f0 0 std::priv::_Impl_vector<long unsigned int, std::allocator<long unsigned int> >::push_back
+5705c 14 376 139
+57070 14 380 139
+57084 4 126 103
+57088 14 382 139
+5709c 10 192 139
+570ac c 176 139
+570b8 4 175 139
+570bc 10 176 139
+570cc 4 356 101
+570d0 8 346 101
+570d8 4 177 139
+570dc c 347 101
+570e8 4 348 101
+570ec 4 352 101
+570f0 4 353 101
+570f4 4 352 101
+570f8 10 112 138
+57108 10 481 100
+57118 8 657 139
+57120 4 319 101
+57124 4 323 101
+57128 4 118 138
+5712c 4 666 139
+57130 4 667 139
+57134 4 668 139
+57138 14 388 139
+FUNC 5714c 60 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve
+5714c 4 158 130
+57150 4 159 130
+57154 4 158 130
+57158 4 159 130
+5715c 10 600 130
+5716c 10 400 131
+5717c 4 72 132
+57180 4 162 130
+57184 4 72 132
+57188 4 72 132
+5718c 8 72 132
+57194 8 163 130
+5719c 4 167 130
+571a0 4 166 130
+571a4 8 167 130
+FUNC 571ac f0 0 std::priv::_Impl_vector<int, std::allocator<int> >::push_back
+571ac 14 376 139
+571c0 14 380 139
+571d4 4 126 103
+571d8 14 382 139
+571ec 10 192 139
+571fc c 176 139
+57208 4 175 139
+5720c 10 176 139
+5721c 4 356 101
+57220 8 346 101
+57228 4 177 139
+5722c c 347 101
+57238 4 348 101
+5723c 4 352 101
+57240 4 353 101
+57244 4 352 101
+57248 10 112 138
+57258 10 481 100
+57268 8 657 139
+57270 4 319 101
+57274 4 323 101
+57278 4 118 138
+5727c 4 666 139
+57280 4 667 139
+57284 4 668 139
+57288 14 388 139
+FUNC 5729c 38 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=
+5729c 4 347 131
+572a0 4 348 131
+572a4 c 347 131
+572b0 4 347 131
+572b4 4 348 131
+572b8 c 349 131
+572c4 10 351 131
+FUNC 572d4 50 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::clear
+572d4 18 650 139
+572ec 10 630 139
+572fc 4 57 103
+57300 4 191 103
+57304 4 57 103
+57308 8 191 103
+57310 4 615 139
+57314 10 652 139
+FUNC 57324 68 0 testing::TestResult::Clear
+57324 10 2123 95
+57334 4 228 143
+57338 4 2123 95
+5733c c 228 143
+57348 c 630 139
+57354 c 156 132
+57360 4 191 103
+57364 4 156 132
+57368 8 191 103
+57370 4 615 139
+57374 4 2126 95
+57378 4 2127 95
+5737c 10 2128 95
+FUNC 5738c 44 0 testing::TestCase::ClearResult
+5738c c 2741 95
+57398 4 2741 95
+5739c 10 2742 95
+573ac 8 60 98
+573b4 10 740 82
+573c4 c 2744 95
+FUNC 573d0 194 0 testing::Test::~Test
+573d0 1c 2180 95
+573ec 8 2180 95
+573f4 c 2181 95
+57400 8 186 91
+57408 4 189 91
+5740c 4 190 91
+57410 4 192 91
+57414 4 186 91
+57418 8 187 91
+57420 4 193 91
+57424 4 195 91
+57428 4 201 91
+5742c 4 187 91
+57430 c 188 91
+5743c 10 189 91
+5744c 10 190 91
+5745c 8 191 91
+57464 4 192 91
+57468 8 191 91
+57470 c 192 91
+5747c 10 193 91
+5748c c 194 91
+57498 10 195 91
+574a8 c 196 91
+574b4 c 197 91
+574c0 c 198 91
+574cc c 199 91
+574d8 c 200 91
+574e4 10 201 91
+574f4 c 202 91
+57500 30 156 132
+57530 4 2181 95
+57534 14 2182 95
+57548 4 2181 95
+5754c 18 2182 95
+FUNC 57564 10 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+57564 4 516 131
+57568 c 517 131
+FUNC 57574 12c 0 std::priv::__find_if<testing::TestCase**, testing::internal::TestCaseNameIs>
+57574 10 159 99
+57584 4 162 99
+57588 4 159 99
+5758c 4 162 99
+57590 8 159 99
+57598 8 164 99
+575a0 14 165 99
+575b4 14 168 99
+575c8 4 166 99
+575cc 4 168 99
+575d0 14 171 99
+575e4 4 169 99
+575e8 4 171 99
+575ec 14 174 99
+57600 4 172 99
+57604 8 174 99
+5760c 8 164 99
+57614 20 178 99
+57634 4 190 99
+57638 8 178 99
+57640 14 180 99
+57654 4 181 99
+57658 18 183 99
+57670 4 184 99
+57674 18 186 99
+5768c 14 192 99
+FUNC 576a0 4c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_range_initialize
+576a0 c 376 131
+576ac 4 376 131
+576b0 4 378 131
+576b4 4 379 131
+576b8 4 376 131
+576bc 4 378 131
+576c0 4 379 131
+576c4 14 148 137
+576d8 4 380 131
+576dc 4 101 103
+576e0 c 382 131
+FUNC 576ec 68 0 testing::internal::AssertHelper::AssertHelper
+576ec c 351 95
+576f8 4 351 95
+576fc 4 355 95
+57700 10 351 95
+57710 4 355 95
+57714 4 1784 82
+57718 4 355 95
+5771c 4 1784 82
+57720 4 1784 82
+57724 c 1784 82
+57730 4 1784 82
+57734 4 1784 82
+57738 4 1784 82
+5773c 4 1784 82
+57740 4 1784 82
+57744 4 355 95
+57748 c 356 95
+FUNC 57754 30 0 testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop
+57754 4 778 95
+57758 8 780 95
+57760 4 778 95
+57764 8 780 95
+5776c 8 780 95
+57774 10 781 95
+FUNC 57784 70 0 testing::internal::XmlUnitTestResultPrinter::XmlUnitTestResultPrinter
+57784 4 3372 95
+57788 4 3373 95
+5778c 8 3372 95
+57794 4 3373 95
+57798 4 3372 95
+5779c 4 3373 95
+577a0 c 3373 95
+577ac 4 3374 95
+577b0 c 3374 95
+577bc 1c 3375 95
+577d8 8 3376 95
+577e0 8 3377 95
+577e8 c 3379 95
+FUNC 577f4 30 0 testing::internal::OsStackTraceGetter::CurrentStackTrace
+577f4 4 3797 95
+577f8 8 3798 95
+57800 4 3797 95
+57804 8 3798 95
+5780c 8 3798 95
+57814 10 3799 95
+FUNC 57824 e4 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_range_initialize<char const* const*>
+57824 4 699 139
+57828 4 355 114
+5782c c 699 139
+57838 4 342 101
+5783c 4 699 139
+57840 4 342 101
+57844 4 355 114
+57848 8 699 139
+57850 4 342 101
+57854 4 699 139
+57858 4 342 101
+5785c c 343 101
+57868 4 343 101
+5786c 4 346 101
+57870 10 347 101
+57880 8 348 101
+57888 c 352 101
+57894 4 346 101
+57898 4 356 101
+5789c 4 703 139
+578a0 4 702 139
+578a4 4 84 137
+578a8 c 703 139
+578b4 4 139 103
+578b8 8 86 137
+578c0 4 139 103
+578c4 10 139 103
+578d4 10 89 137
+578e4 c 705 139
+578f0 4 704 139
+578f4 14 705 139
+FUNC 57908 24 0 testing::internal::FilePath::FilePath
+57908 c 64 84
+57914 8 64 84
+5791c 4 65 84
+57920 8 66 84
+57928 4 65 84
+FUNC 5792c 7c 0 testing::internal::GetCurrentExecutableName
+5792c 4 381 95
+57930 4 61 84
+57934 8 381 95
+5793c 14 61 84
+57950 4 381 95
+57954 4 381 95
+57958 4 61 84
+5795c 10 387 95
+5796c c 74 84
+57978 8 156 132
+57980 c 390 95
+5798c 8 156 132
+57994 14 391 95
+FUNC 579a8 4c 0 testing::AssertionResult::AssertionResult
+579a8 c 948 95
+579b4 4 948 95
+579b8 8 952 95
+579c0 4 1144 87
+579c4 4 952 95
+579c8 10 952 95
+579d8 8 951 95
+579e0 4 952 95
+579e4 4 1139 87
+579e8 c 953 95
+FUNC 579f4 60 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::_M_create_node
+579f4 4 315 136
+579f8 4 306 101
+579fc c 315 136
+57a08 4 306 101
+57a0c 4 315 136
+57a10 4 306 101
+57a14 4 307 101
+57a18 4 119 103
+57a1c 4 307 101
+57a20 4 119 103
+57a24 14 68 124
+57a38 4 321 136
+57a3c 4 324 136
+57a40 4 322 136
+57a44 10 324 136
+FUNC 57a54 54 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+57a54 c 183 131
+57a60 4 112 132
+57a64 8 481 101
+57a6c 8 400 131
+57a74 8 205 131
+57a7c c 604 130
+57a88 4 209 131
+57a8c c 208 131
+57a98 4 209 131
+57a9c 4 210 131
+57aa0 8 208 131
+FUNC 57aa8 78 0 testing::internal::UnitTestOptions::GetOutputFormat
+57aa8 14 396 95
+57abc 4 396 95
+57ac0 4 398 95
+57ac4 10 398 95
+57ad4 10 400 95
+57ae4 4 403 95
+57ae8 14 403 95
+57afc 4 112 132
+57b00 4 225 131
+57b04 4 481 101
+57b08 8 225 131
+57b10 10 404 95
+FUNC 57b20 9c 0 testing::internal::XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters
+57b20 c 3473 95
+57b2c 4 3474 95
+57b30 4 3473 95
+57b34 4 3474 95
+57b38 4 3473 95
+57b3c 4 3473 95
+57b40 4 3474 95
+57b44 4 400 131
+57b48 4 3475 95
+57b4c 4 400 131
+57b50 c 3475 95
+57b5c c 3476 95
+57b68 4 3477 95
+57b6c 8 3314 95
+57b74 8 3309 95
+57b7c 8 3314 95
+57b84 8 3309 95
+57b8c 8 3314 95
+57b94 8 3476 95
+57b9c c 3478 95
+57ba8 14 3481 95
+FUNC 57bbc ac 0 testing::internal::StringStreamToString
+57bbc 4 1943 95
+57bc0 4 75 127
+57bc4 8 1943 95
+57bcc 8 75 127
+57bd4 8 1943 95
+57bdc 4 1943 95
+57be0 4 75 127
+57be4 10 1948 95
+57bf4 4 530 131
+57bf8 4 1948 95
+57bfc 4 400 131
+57c00 4 1949 95
+57c04 4 530 131
+57c08 4 1949 95
+57c0c 8 530 131
+57c14 4 1949 95
+57c18 8 1950 95
+57c20 4 1951 95
+57c24 4 530 131
+57c28 4 1951 95
+57c2c 10 530 131
+57c3c 4 453 131
+57c40 8 1950 95
+57c48 8 156 132
+57c50 18 1959 95
+FUNC 57c68 28 0 testing::Message::GetString
+57c68 c 942 95
+57c74 4 942 95
+57c78 8 943 95
+57c80 10 944 95
+FUNC 57c90 58 0 testing::Message::Message
+57c90 c 907 95
+57c9c 10 907 95
+57cac 8 907 95
+57cb4 4 1139 87
+57cb8 14 39 107
+57ccc 8 910 95
+57cd4 4 39 107
+57cd8 4 910 95
+57cdc c 911 95
+FUNC 57ce8 1a4 0 testing::Test::Test
+57ce8 4 2175 95
+57cec 4 2176 95
+57cf0 18 2175 95
+57d08 4 2175 95
+57d0c c 2176 95
+57d18 4 164 91
+57d1c 4 2176 95
+57d20 4 164 91
+57d24 4 2176 95
+57d28 8 164 91
+57d30 c 164 91
+57d3c 4 164 91
+57d40 4 164 91
+57d44 8 164 91
+57d4c 4 164 91
+57d50 4 164 91
+57d54 c 164 91
+57d60 c 164 91
+57d6c c 164 91
+57d78 c 164 91
+57d84 4 165 91
+57d88 8 168 91
+57d90 8 165 91
+57d98 c 166 91
+57da4 c 167 91
+57db0 8 168 91
+57db8 10 169 91
+57dc8 c 170 91
+57dd4 4 171 91
+57dd8 4 170 91
+57ddc c 171 91
+57de8 10 172 91
+57df8 4 173 91
+57dfc 8 174 91
+57e04 8 173 91
+57e0c 8 174 91
+57e14 4 175 91
+57e18 8 180 91
+57e20 8 175 91
+57e28 c 176 91
+57e34 c 177 91
+57e40 c 178 91
+57e4c c 179 91
+57e58 8 180 91
+57e60 c 181 91
+57e6c 4 2176 95
+57e70 1c 2177 95
+FUNC 57e8c 120 0 testing::internal::PrintColorEncoded
+57e8c 10 5063 95
+57e9c 4 5064 95
+57ea0 4 5077 95
+57ea4 4 5082 95
+57ea8 4 5064 95
+57eac 4 5063 95
+57eb0 4 5064 95
+57eb4 4 112 132
+57eb8 4 5077 95
+57ebc 4 5082 95
+57ec0 10 5071 95
+57ed0 4 5072 95
+57ed4 14 5073 95
+57ee8 14 5095 95
+57efc 4 355 114
+57f00 8 324 131
+57f08 4 112 132
+57f0c 4 481 101
+57f10 4 324 131
+57f14 c 148 137
+57f20 4 5080 95
+57f24 4 148 137
+57f28 4 325 131
+57f2c 4 101 103
+57f30 10 5077 95
+57f40 8 156 132
+57f48 4 5079 95
+57f4c 8 5081 95
+57f54 10 5082 95
+57f64 8 5083 95
+57f6c 8 5084 95
+57f74 8 5085 95
+57f7c 8 5086 95
+57f84 8 5087 95
+57f8c 8 5088 95
+57f94 8 5089 95
+57f9c 8 5090 95
+57fa4 8 5092 95
+FUNC 57fac cc 0 testing::internal::String::FormatByte
+57fac 4 1934 95
+57fb0 4 1935 95
+57fb4 8 1934 95
+57fbc 4 1935 95
+57fc0 4 1934 95
+57fc4 4 1934 95
+57fc8 4 1935 95
+57fcc 4 1934 95
+57fd0 4 1935 95
+57fd4 4 147 107
+57fd8 4 39 107
+57fdc 4 147 107
+57fe0 8 84 109
+57fe8 4 39 107
+57fec c 84 109
+57ff8 10 39 107
+58008 4 1936 95
+5800c 4 39 107
+58010 4 1936 95
+58014 c 79 122
+58020 8 123 110
+58028 8 124 110
+58030 8 79 122
+58038 4 254 121
+5803c 4 79 122
+58040 c 118 110
+5804c 4 254 121
+58050 c 75 127
+5805c 8 1938 95
+58064 14 1939 95
+FUNC 58078 138 0 testing::internal::Random::Generate
+58078 10 295 95
+58088 8 295 95
+58090 20 297 95
+580b0 4 299 95
+580b4 8 299 95
+580bc 4 333 122
+580c0 14 299 95
+580d4 24 333 122
+580f8 c 301 95
+58104 8 301 95
+5810c 4 333 122
+58110 14 301 95
+58124 24 333 122
+58148 10 254 121
+58158 1c 333 122
+58174 c 254 121
+58180 c 333 122
+5818c 8 301 95
+58194 4 308 95
+58198 4 309 95
+5819c 4 308 95
+581a0 10 309 95
+FUNC 581b0 38 0 testing::Message::operator<< <char const>
+581b0 c 149 79
+581bc 8 149 79
+581c4 4 333 122
+581c8 4 150 79
+581cc c 333 122
+581d8 10 156 79
+FUNC 581e8 8c 0 testing::internal::StreamingListener::SocketWriter::CloseConnection
+581e8 10 1094 91
+581f8 4 1094 91
+581fc c 1095 91
+58208 8 1095 91
+58210 4 333 122
+58214 14 1095 91
+58228 24 333 122
+5824c 8 1095 91
+58254 8 1098 91
+5825c 4 1100 91
+58260 8 1099 91
+58268 c 1100 91
+FUNC 58274 44 0 testing::internal::StreamingListener::SocketWriter::~SocketWriter
+58274 10 1071 91
+58284 c 1071 91
+58290 c 1072 91
+5829c 4 1073 91
+582a0 c 156 132
+582ac 8 1074 91
+582b4 4 156 132
+FUNC 582b8 24 0 testing::internal::StreamingListener::SocketWriter::~SocketWriter
+582b8 c 1071 91
+582c4 4 1071 91
+582c8 4 1074 91
+582cc 4 1074 91
+582d0 8 1074 91
+582d8 4 1074 91
+FUNC 582dc 68 0 testing::internal::StreamableToString<char*>
+582dc c 243 79
+582e8 4 244 79
+582ec 4 243 79
+582f0 4 243 79
+582f4 4 244 79
+582f8 4 243 79
+582fc c 244 79
+58308 4 333 122
+5830c 4 150 79
+58310 c 333 122
+5831c c 244 79
+58328 8 85 79
+58330 14 245 79
+FUNC 58344 8c 0 testing::internal::Int32FromEnvOrDie
+58344 10 4702 95
+58354 8 4702 95
+5835c 8 2328 87
+58364 4 4704 95
+58368 c 4709 95
+58374 14 333 122
+58388 c 4709 95
+58394 10 4710 95
+583a4 8 85 79
+583ac 4 4713 95
+583b0 4 4709 95
+583b4 8 4711 95
+583bc 4 4705 95
+583c0 10 4714 95
+FUNC 583d0 54 0 testing::AssertionResult::operator<< <char [2]>
+583d0 c 305 82
+583dc 4 306 82
+583e0 4 305 82
+583e4 4 306 82
+583e8 4 305 82
+583ec 4 306 82
+583f0 10 333 122
+58400 c 306 82
+5840c 8 85 79
+58414 10 308 82
+FUNC 58424 54 0 testing::AssertionResult::operator<< <char [7]>
+58424 c 305 82
+58430 4 306 82
+58434 4 305 82
+58438 4 306 82
+5843c 4 305 82
+58440 4 306 82
+58444 10 333 122
+58454 c 306 82
+58460 8 85 79
+58468 10 308 82
+FUNC 58478 10c 0 testing::internal::CmpHelperSTRNE
+58478 10 1483 95
+58488 4 1483 95
+5848c 4 1484 95
+58490 4 1483 95
+58494 4 1484 95
+58498 c 1483 95
+584a4 c 1484 95
+584b0 4 277 82
+584b4 4 1139 87
+584b8 c 277 82
+584c4 c 1487 95
+584d0 4 277 82
+584d4 4 306 82
+584d8 4 1139 87
+584dc 4 1487 95
+584e0 8 1487 95
+584e8 c 1487 95
+584f4 c 1488 95
+58500 8 306 82
+58508 14 333 122
+5851c c 306 82
+58528 8 85 79
+58530 c 1489 95
+5853c c 1489 95
+58548 8 1489 95
+58550 10 1489 95
+58560 8 1489 95
+58568 8 256 82
+58570 14 1491 95
+FUNC 58584 118 0 testing::internal::GetBoolAssertionFailureMessage
+58584 18 1311 95
+5859c 8 1311 95
+585a4 4 1144 87
+585a8 c 298 82
+585b4 8 298 82
+585bc 10 1313 95
+585cc 14 333 122
+585e0 10 1314 95
+585f0 4 131 79
+585f4 10 333 122
+58604 10 1315 95
+58614 8 1316 95
+5861c 14 333 122
+58630 c 1317 95
+5863c 4 131 79
+58640 24 333 122
+58664 c 1318 95
+58670 c 1319 95
+5867c 8 85 79
+58684 18 1320 95
+FUNC 5869c 98 0 testing::internal::MutexBase::Lock
+5869c 10 1886 87
+586ac 4 1886 87
+586b0 c 1887 87
+586bc 8 1887 87
+586c4 4 333 122
+586c8 14 1887 87
+586dc 24 333 122
+58700 c 1887 87
+5870c 8 1887 87
+58714 8 1888 87
+5871c 4 1890 87
+58720 8 1889 87
+58728 c 1890 87
+FUNC 58734 8c 0 testing::internal::GTestMutexLock::~GTestMutexLock
+58734 10 1965 87
+58744 4 1965 87
+58748 4 1898 87
+5874c c 1899 87
+58758 8 1899 87
+58760 4 333 122
+58764 14 1899 87
+58778 24 333 122
+5879c c 1899 87
+587a8 8 1899 87
+587b0 10 1965 87
+FUNC 587c0 38 0 testing::internal::UnitTestImpl::GetGlobalTestPartResultReporter
+587c0 c 687 95
+587cc 4 687 95
+587d0 4 688 95
+587d4 8 1963 87
+587dc 4 689 95
+587e0 8 689 95
+587e8 10 690 95
+FUNC 587f8 2c 0 testing::internal::DefaultPerThreadTestPartResultReporter::ReportTestPartResult
+587f8 8 681 95
+58800 4 682 95
+58804 4 681 95
+58808 8 682 95
+58810 c 682 95
+5881c 8 683 95
+FUNC 58824 90 0 testing::internal::Mutex::Mutex
+58824 4 1943 87
+58828 4 1944 87
+5882c c 1943 87
+58838 4 1943 87
+5883c c 1944 87
+58848 8 1944 87
+58850 4 333 122
+58854 14 1944 87
+58868 24 333 122
+5888c c 1944 87
+58898 8 1944 87
+588a0 4 1945 87
+588a4 10 1946 87
+FUNC 588b4 40 0 testing::TestResult::TestResult
+588b4 c 1978 95
+588c0 4 1978 95
+588c4 4 1980 95
+588c8 8 67 139
+588d0 4 481 101
+588d4 8 67 139
+588dc 4 481 101
+588e0 8 1980 95
+588e8 c 1981 95
+FUNC 588f4 c0 0 testing::TestInfo::TestInfo
+588f4 1c 2461 95
+58910 10 2461 95
+58920 4 2476 95
+58924 10 2476 95
+58934 4 2476 95
+58938 4 2476 95
+5893c c 2476 95
+58948 c 2469 95
+58954 4 2476 95
+58958 4 1139 87
+5895c 4 2476 95
+58960 4 2476 95
+58964 c 2476 95
+58970 c 2470 95
+5897c 4 2476 95
+58980 4 1139 87
+58984 4 2476 95
+58988 14 2476 95
+5899c 4 2476 95
+589a0 14 2476 95
+FUNC 589b4 a8 0 testing::TestCase::TestCase
+589b4 10 2674 95
+589c4 4 2682 95
+589c8 8 2674 95
+589d0 4 2682 95
+589d4 4 2682 95
+589d8 4 2674 95
+589dc 4 2682 95
+589e0 4 2682 95
+589e4 8 2674 95
+589ec 4 2682 95
+589f0 4 2682 95
+589f4 4 2682 95
+589f8 c 2682 95
+58a04 c 2678 95
+58a10 4 2682 95
+58a14 4 1139 87
+58a18 4 2682 95
+58a1c 8 2682 95
+58a24 8 67 139
+58a2c 4 481 101
+58a30 8 67 139
+58a38 4 481 101
+58a3c 8 2682 95
+58a44 4 2682 95
+58a48 14 2683 95
+FUNC 58a5c 54 0 testing::internal::UnitTestImpl::os_stack_trace_getter
+58a5c 10 4860 95
+58a6c 4 4860 95
+58a70 8 4861 95
+58a78 c 4862 95
+58a84 c 442 91
+58a90 4 442 91
+58a94 4 442 91
+58a98 4 4862 95
+58a9c 14 4866 95
+FUNC 58ab0 84 0 testing::internal::Mutex::~Mutex
+58ab0 10 1947 87
+58ac0 c 1948 87
+58acc 8 1948 87
+58ad4 4 333 122
+58ad8 14 1948 87
+58aec 24 333 122
+58b10 c 1948 87
+58b1c 8 1948 87
+58b24 10 1949 87
+FUNC 58b34 40 0 testing::UnitTest::~UnitTest
+58b34 c 4256 95
+58b40 10 4256 95
+58b50 8 4257 95
+58b58 c 4257 95
+58b64 4 4256 95
+58b68 8 4258 95
+58b70 4 4256 95
+FUNC 58b74 24 0 testing::UnitTest::~UnitTest
+58b74 c 4256 95
+58b80 4 4256 95
+58b84 4 4258 95
+58b88 4 4258 95
+58b8c 8 4258 95
+58b94 4 4258 95
+FUNC 58b98 10 0 testing::internal::OsStackTraceGetter::~OsStackTraceGetter
+58b98 10 440 91
+FUNC 58ba8 24 0 testing::internal::OsStackTraceGetter::~OsStackTraceGetter
+58ba8 c 440 91
+58bb4 8 440 91
+58bbc 4 440 91
+58bc0 8 440 91
+58bc8 4 440 91
+FUNC 58bcc 9c 0 testing::TestResult::~TestResult
+58bcc 10 1984 95
+58bdc c 1984 95
+58be8 8 191 103
+58bf0 18 156 132
+58c08 8 87 139
+58c10 4 88 139
+58c14 10 323 101
+58c24 8 191 103
+58c2c 4 77 113
+58c30 8 57 103
+58c38 8 81 113
+58c40 8 87 139
+58c48 4 88 139
+58c4c 8 323 101
+58c54 4 1984 95
+58c58 c 1985 95
+58c64 4 1984 95
+FUNC 58c68 74 0 testing::TestInfo::~TestInfo
+58c68 c 2479 95
+58c74 c 2479 95
+58c80 4 2479 95
+58c84 8 2479 95
+58c8c 8 2479 95
+58c94 8 1153 87
+58c9c 8 156 132
+58ca4 8 1155 87
+58cac 8 1153 87
+58cb4 8 156 132
+58cbc 8 1155 87
+58cc4 c 156 132
+58cd0 8 2479 95
+58cd8 4 156 132
+FUNC 58cdc 34 0 testing::internal::Delete<testing::TestInfo>
+58cdc c 339 91
+58ce8 8 340 91
+58cf0 4 340 91
+58cf4 4 340 91
+58cf8 8 341 91
+58d00 4 340 91
+58d04 c 341 91
+FUNC 58d10 8c 0 testing::TestCase::~TestCase
+58d10 14 2686 95
+58d24 14 2686 95
+58d38 8 60 98
+58d40 c 61 98
+58d4c 8 2686 95
+58d54 8 87 139
+58d5c 4 88 139
+58d60 8 323 101
+58d68 8 304 139
+58d70 8 1153 87
+58d78 8 156 132
+58d80 8 1155 87
+58d88 4 156 132
+58d8c c 2689 95
+58d98 4 156 132
+FUNC 58d9c 24 0 testing::TestCase::~TestCase
+58d9c c 2686 95
+58da8 4 2686 95
+58dac 4 2689 95
+58db0 4 2689 95
+58db4 8 2689 95
+58dbc 4 2689 95
+FUNC 58dc0 1d0 0 testing::internal::ShuffleRange<int>
+58dc0 18 311 91
+58dd8 c 311 91
+58de4 4 192 139
+58de8 4 311 91
+58dec c 192 139
+58df8 c 314 91
+58e04 8 314 91
+58e0c 4 333 122
+58e10 14 314 91
+58e24 24 333 122
+58e48 10 315 91
+58e58 c 333 122
+58e64 c 316 91
+58e70 c 333 122
+58e7c 8 314 91
+58e84 10 317 91
+58e94 8 317 91
+58e9c 4 333 122
+58ea0 14 317 91
+58eb4 24 333 122
+58ed8 10 318 91
+58ee8 c 333 122
+58ef4 10 319 91
+58f04 c 333 122
+58f10 c 319 91
+58f1c c 333 122
+58f28 8 317 91
+58f30 c 323 91
+58f3c 8 323 91
+58f44 8 325 91
+58f4c 4 323 91
+58f50 c 325 91
+58f5c 4 202 139
+58f60 4 92 100
+58f64 4 91 100
+58f68 4 92 100
+58f6c c 93 100
+58f78 18 328 91
+FUNC 58f90 b0 0 testing::internal::UnitTestImpl::ShuffleTests
+58f90 4 4877 95
+58f94 4 4879 95
+58f98 c 4877 95
+58fa4 4 4877 95
+58fa8 8 4879 95
+58fb0 4 801 91
+58fb4 c 4879 95
+58fc0 4 192 139
+58fc4 4 4879 95
+58fc8 4 192 139
+58fcc 4 4883 95
+58fd0 4 192 139
+58fd4 4 4883 95
+58fd8 4 4886 95
+58fdc 4 192 139
+58fe0 10 4883 95
+58ff0 c 192 139
+58ffc 8 4886 95
+59004 4 4887 95
+59008 4 4886 95
+5900c 8 192 139
+59014 4 333 91
+59018 8 192 139
+59020 10 333 91
+59030 10 4889 95
+FUNC 59040 9c 0 testing::internal::String::FormatIntWidth2
+59040 4 1920 95
+59044 4 1921 95
+59048 8 1920 95
+59050 4 1921 95
+59054 4 1920 95
+59058 4 1920 95
+5905c 4 1921 95
+59060 4 1920 95
+59064 4 1921 95
+59068 4 147 107
+5906c 8 39 107
+59074 4 147 107
+59078 14 84 109
+5908c 14 39 107
+590a0 4 1922 95
+590a4 4 39 107
+590a8 4 1922 95
+590ac 8 1922 95
+590b4 c 75 127
+590c0 8 1923 95
+590c8 14 1924 95
+FUNC 590dc 90 0 testing::internal::String::FormatHexInt
+590dc 4 1927 95
+590e0 4 1928 95
+590e4 8 1927 95
+590ec 4 1928 95
+590f0 4 1927 95
+590f4 4 1927 95
+590f8 4 1928 95
+590fc 4 1927 95
+59100 4 1928 95
+59104 10 79 122
+59114 8 123 110
+5911c 8 124 110
+59124 8 79 122
+5912c 4 1929 95
+59130 4 79 122
+59134 c 118 110
+59140 4 1929 95
+59144 c 75 127
+59150 8 1930 95
+59158 14 1931 95
+FUNC 5916c 1a0 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::GetOrCreateValue
+5916c 18 2037 87
+59184 4 2037 87
+59188 c 2039 87
+59194 4 2021 87
+59198 4 2040 87
+5919c 8 2044 87
+591a4 4 2019 87
+591a8 4 2044 87
+591ac c 2019 87
+591b8 8 192 139
+591c0 4 70 139
+591c4 4 192 139
+591c8 4 70 139
+591cc 4 192 139
+591d0 4 342 101
+591d4 4 481 101
+591d8 8 342 101
+591e0 c 343 101
+591ec 4 343 101
+591f0 4 356 101
+591f4 4 346 101
+591f8 8 347 101
+59200 8 348 101
+59208 8 352 101
+59210 4 71 139
+59214 4 73 139
+59218 4 72 139
+5921c 4 84 137
+59220 8 73 139
+59228 14 86 137
+5923c 8 86 137
+59244 4 139 103
+59248 1c 466 91
+59264 4 89 137
+59268 10 86 137
+59278 c 2046 87
+59284 4 249 139
+59288 10 2046 87
+59298 8 2046 87
+592a0 4 333 122
+592a4 14 2046 87
+592b8 24 333 122
+592dc c 2046 87
+592e8 8 2046 87
+592f0 4 2021 87
+592f4 18 2048 87
+FUNC 5930c 50 0 testing::UnitTest::PopGTestTrace
+5930c c 4270 95
+59318 4 4270 95
+5931c 4 4271 95
+59320 8 1963 87
+59328 4 752 91
+5932c 8 2010 87
+59334 c 563 139
+59340 8 156 132
+59348 8 4272 95
+59350 c 4273 95
+FUNC 5935c c8 0 std::priv::__put_num<char, std::char_traits<char>, double>
+5935c 14 194 121
+59370 4 194 121
+59374 10 181 122
+59384 8 199 121
+5938c 18 211 121
+593a4 4 202 121
+593a8 8 145 110
+593b0 4 202 121
+593b4 4 145 110
+593b8 4 202 121
+593bc 8 145 110
+593c4 8 202 121
+593cc 4 89 120
+593d0 4 202 121
+593d4 8 89 120
+593dc c 202 121
+593e8 4 89 120
+593ec 4 57 123
+593f0 c 89 120
+593fc 8 202 121
+59404 4 210 121
+59408 8 212 121
+59410 14 213 121
+FUNC 59428 64 0 testing::internal::FormatTimeInMillisAsSeconds
+59428 4 3500 95
+5942c 4 3501 95
+59430 8 3500 95
+59438 4 3501 95
+5943c 4 3500 95
+59440 4 3501 95
+59444 4 3500 95
+59448 4 3500 95
+5944c 4 3501 95
+59450 4 3502 95
+59454 10 281 121
+59464 c 75 127
+59470 8 3503 95
+59478 14 3504 95
+FUNC 59498 f8 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlCDataSection
+59498 18 3530 95
+594b0 4 3534 95
+594b4 c 333 122
+594c0 4 3534 95
+594c4 4 181 122
+594c8 4 333 122
+594cc 4 3530 95
+594d0 4 3530 95
+594d4 4 333 122
+594d8 10 3534 95
+594e8 4 3535 95
+594ec 14 181 122
+59500 4 434 121
+59504 18 444 121
+5951c 4 436 121
+59520 4 3537 95
+59524 18 436 121
+5953c 8 443 121
+59544 4 446 121
+59548 4 3539 95
+5954c 4 446 121
+59550 c 333 122
+5955c 4 3544 95
+59560 18 333 122
+59578 18 3546 95
+FUNC 59590 108 0 testing::internal::StreamingListener::SocketWriter::Send
+59590 10 1077 91
+595a0 8 1077 91
+595a8 c 1078 91
+595b4 8 1078 91
+595bc 4 333 122
+595c0 14 1078 91
+595d4 24 333 122
+595f8 c 1078 91
+59604 4 400 131
+59608 4 1082 91
+5960c 4 400 131
+59610 4 1082 91
+59614 8 1082 91
+5961c 8 1082 91
+59624 8 1083 91
+5962c 4 333 122
+59630 14 1083 91
+59644 14 333 122
+59658 10 1085 91
+59668 c 333 122
+59674 c 1085 91
+59680 8 1083 91
+59688 10 1087 91
+FUNC 59698 1d4 0 testing::internal::StreamingListener::SocketWriter::MakeConnection
+59698 10 3721 95
+596a8 8 3721 95
+596b0 c 3722 95
+596bc 4 3722 95
+596c0 4 333 122
+596c4 14 3722 95
+596d8 24 333 122
+596fc 8 3722 95
+59704 4 3729 95
+59708 c 3734 95
+59714 4 3726 95
+59718 4 3729 95
+5971c 4 3728 95
+59720 8 3726 95
+59728 4 3728 95
+5972c 8 3734 95
+59734 4 3735 95
+59738 c 3736 95
+59744 4 333 122
+59748 10 3736 95
+59758 14 333 122
+5976c c 3737 95
+59778 8 333 122
+59780 8 3736 95
+59788 4 3741 95
+5978c 4 3741 95
+59790 4 3741 95
+59794 8 3741 95
+5979c 14 3744 95
+597b0 8 3745 95
+597b8 18 3747 95
+597d0 8 3748 95
+597d8 4 3749 95
+597dc 8 3741 95
+597e4 8 3754 95
+597ec c 3756 95
+597f8 8 3757 95
+59800 4 333 122
+59804 14 3757 95
+59818 14 333 122
+5982c 10 3758 95
+5983c c 333 122
+59848 c 3758 95
+59854 8 3757 95
+5985c 10 3760 95
+FUNC 5986c 7c 0 testing::AssertionResult::operator<< <testing::Message>
+5986c c 305 82
+59878 4 306 82
+5987c 4 233 79
+59880 4 305 82
+59884 4 305 82
+59888 4 306 82
+5988c 4 305 82
+59890 4 306 82
+59894 8 233 79
+5989c 4 131 79
+598a0 4 233 79
+598a4 4 131 79
+598a8 4 233 79
+598ac c 233 79
+598b8 8 156 132
+598c0 c 306 82
+598cc 8 85 79
+598d4 14 308 82
+FUNC 598e8 104 0 testing::internal::PrettyUnitTestResultPrinter::OnTestPartResult
+598e8 10 3070 95
+598f8 8 3072 95
+59900 c 2808 95
+5990c 4 2808 95
+59910 8 2808 95
+59918 4 2808 95
+5991c 8 77 81
+59924 c 2808 95
+59930 10 131 79
+59940 14 333 122
+59954 10 2785 95
+59964 c 2794 95
+59970 c 2797 95
+5997c 8 2787 95
+59984 4 2809 95
+59988 4 2810 95
+5998c 4 2809 95
+59990 4 2810 95
+59994 4 2818 95
+59998 4 2810 95
+5999c 8 2810 95
+599a4 8 156 132
+599ac 8 85 79
+599b4 8 2817 95
+599bc 10 2818 95
+599cc 8 156 132
+599d4 8 3077 95
+599dc 10 3078 95
+FUNC 599ec 1c8 0 testing::internal::XmlUnitTestResultPrinter::EscapeXml
+599ec 14 3427 95
+59a00 4 3428 95
+59a04 c 333 122
+59a10 8 3427 95
+59a18 4 3430 95
+59a1c 4 3427 95
+59a20 4 333 122
+59a24 4 3428 95
+59a28 8 333 122
+59a30 8 3427 95
+59a38 8 3428 95
+59a40 8 400 131
+59a48 8 3430 95
+59a50 4 3431 95
+59a54 1c 3432 95
+59a70 4 131 79
+59a74 10 333 122
+59a84 10 3432 95
+59a94 4 131 79
+59a98 10 333 122
+59aa8 4 131 79
+59aac 10 333 122
+59abc 4 131 79
+59ac0 8 333 122
+59ac8 4 3443 95
+59acc 8 333 122
+59ad4 4 131 79
+59ad8 4 333 122
+59adc 4 3449 95
+59ae0 c 333 122
+59aec 1c 3309 95
+59b08 10 3314 95
+59b18 4 3456 95
+59b1c 4 131 79
+59b20 4 333 122
+59b24 4 3457 95
+59b28 8 333 122
+59b30 c 3457 95
+59b3c 4 131 79
+59b40 c 131 79
+59b4c 4 131 79
+59b50 c 333 122
+59b5c 8 156 132
+59b64 8 3430 95
+59b6c 4 131 79
+59b70 10 305 122
+59b80 c 3466 95
+59b8c 8 85 79
+59b94 20 3467 95
+FUNC 59bb4 154 0 testing::internal::XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes
+59bb4 14 3683 95
+59bc8 4 3684 95
+59bcc 4 192 139
+59bd0 8 333 122
+59bd8 8 3683 95
+59be0 4 3685 95
+59be4 4 3684 95
+59be8 4 192 139
+59bec 8 333 122
+59bf4 4 3688 95
+59bf8 8 3683 95
+59c00 4 3684 95
+59c04 14 192 139
+59c18 8 3685 95
+59c20 8 3686 95
+59c28 4 333 122
+59c2c 4 3685 95
+59c30 8 3686 95
+59c38 4 131 79
+59c3c 10 333 122
+59c4c 10 3687 95
+59c5c 4 131 79
+59c60 c 333 122
+59c6c 4 131 79
+59c70 c 333 122
+59c7c c 3688 95
+59c88 4 3328 95
+59c8c 4 3688 95
+59c90 10 3328 95
+59ca0 4 131 79
+59ca4 c 131 79
+59cb0 4 131 79
+59cb4 c 333 122
+59cc0 14 156 132
+59cd4 c 3690 95
+59ce0 8 85 79
+59ce8 20 3691 95
+FUNC 59d08 64 0 testing::Message::Message
+59d08 18 96 79
+59d20 c 96 79
+59d2c 8 96 79
+59d34 4 1139 87
+59d38 10 97 79
+59d48 c 97 79
+59d54 8 156 132
+59d5c 10 98 79
+FUNC 59d6c 380 0 testing::internal::ShouldShard
+59d6c 10 4657 95
+59d7c 4 4664 95
+59d80 8 4657 95
+59d88 4 4664 95
+59d8c 4 4665 95
+59d90 4 4664 95
+59d94 c 4665 95
+59da0 14 4667 95
+59db4 4 4668 95
+59db8 4 4667 95
+59dbc c 4669 95
+59dc8 c 4671 95
+59dd4 3c 333 122
+59e10 8 131 79
+59e18 4 4673 95
+59e1c 8 131 79
+59e24 3c 333 122
+59e60 c 4673 95
+59e6c 8 85 79
+59e74 c 4674 95
+59e80 c 4674 95
+59e8c 8 156 132
+59e94 c 4677 95
+59ea0 c 4679 95
+59eac 3c 333 122
+59ee8 8 131 79
+59ef0 4 4681 95
+59ef4 8 131 79
+59efc 3c 333 122
+59f38 c 4681 95
+59f44 8 85 79
+59f4c c 4682 95
+59f58 c 4682 95
+59f64 8 156 132
+59f6c 10 4683 95
+59f7c 8 4684 95
+59f84 c 4685 95
+59f90 4 4687 95
+59f94 4 333 122
+59f98 4 4687 95
+59f9c 8 333 122
+59fa4 4 4687 95
+59fa8 88 333 122
+5a030 10 131 79
+5a040 34 333 122
+5a074 8 131 79
+5a07c 4 4690 95
+5a080 8 131 79
+5a088 14 333 122
+5a09c c 4690 95
+5a0a8 8 85 79
+5a0b0 c 4691 95
+5a0bc c 4691 95
+5a0c8 8 156 132
+5a0d0 8 4696 95
+5a0d8 14 4697 95
+FUNC 5a0ec 14 0 testing::internal::ShouldShard
+5a0ec 4 4659 95
+5a0f0 8 4660 95
+5a0f8 8 4697 95
+FUNC 5a100 134 0 testing::GetReservedAttributesForElement
+5a100 4 2074 95
+5a104 4 2075 95
+5a108 4 2074 95
+5a10c 4 2075 95
+5a110 8 2074 95
+5a118 8 2074 95
+5a120 c 2075 95
+5a12c 4 272 139
+5a130 4 67 139
+5a134 4 272 139
+5a138 4 67 139
+5a13c 4 481 101
+5a140 c 272 139
+5a14c 18 2077 95
+5a164 4 272 139
+5a168 8 67 139
+5a170 4 272 139
+5a174 4 481 101
+5a178 8 272 139
+5a180 18 2079 95
+5a198 4 272 139
+5a19c 8 67 139
+5a1a4 4 272 139
+5a1a8 4 481 101
+5a1ac 10 272 139
+5a1bc 8 2082 95
+5a1c4 4 333 122
+5a1c8 14 2082 95
+5a1dc 24 333 122
+5a200 c 2082 95
+5a20c 8 2082 95
+5a214 8 67 139
+5a21c 4 481 101
+5a220 14 2086 95
+FUNC 5a234 c8 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::GetOrCreateValue
+5a234 10 2037 87
+5a244 4 2037 87
+5a248 8 2039 87
+5a250 4 2040 87
+5a254 4 2021 87
+5a258 4 2041 87
+5a25c c 2044 87
+5a268 4 2019 87
+5a26c 4 2046 87
+5a270 10 2019 87
+5a280 10 2046 87
+5a290 8 2046 87
+5a298 4 333 122
+5a29c 14 2046 87
+5a2b0 24 333 122
+5a2d4 c 2046 87
+5a2e0 8 2046 87
+5a2e8 4 2021 87
+5a2ec 10 2048 87
+FUNC 5a2fc 1c 0 testing::internal::UnitTestImpl::GetTestPartResultReporterForCurrentThread
+5a2fc 4 701 95
+5a300 4 2011 87
+5a304 4 701 95
+5a308 4 2011 87
+5a30c c 703 95
+FUNC 5a318 2a4 0 testing::UnitTest::AddTestPartResult
+5a318 14 4065 95
+5a32c 4 4066 95
+5a330 c 4065 95
+5a33c 4 4066 95
+5a340 14 4065 95
+5a354 4 4065 95
+5a358 4 4066 95
+5a35c 14 131 79
+5a370 4 4069 95
+5a374 8 1963 87
+5a37c 4 752 91
+5a380 8 2010 87
+5a388 10 192 139
+5a398 8 4070 95
+5a3a0 8 4081 95
+5a3a8 4c 333 122
+5a3f4 4 752 91
+5a3f8 8 2010 87
+5a400 8 192 139
+5a408 4 333 122
+5a40c c 192 139
+5a418 8 4073 95
+5a420 8 4073 95
+5a428 4 752 91
+5a42c 4 4075 95
+5a430 8 2010 87
+5a438 4 202 139
+5a43c 4 333 122
+5a440 4 131 79
+5a444 8 202 139
+5a44c 8 333 122
+5a454 18 4076 95
+5a46c 4 131 79
+5a470 c 131 79
+5a47c 4 131 79
+5a480 c 333 122
+5a48c 4 131 79
+5a490 c 131 79
+5a49c c 156 132
+5a4a8 c 4081 95
+5a4b4 10 4087 95
+5a4c4 10 68 81
+5a4d4 8 68 81
+5a4dc 10 68 81
+5a4ec 4 68 81
+5a4f0 c 68 81
+5a4fc 10 68 81
+5a50c 8 156 132
+5a514 8 4088 95
+5a51c 10 4089 95
+5a52c 4 4091 95
+5a530 c 4097 95
+5a53c c 4108 95
+5a548 c 4110 95
+5a554 8 4116 95
+5a55c 8 4087 95
+5a564 8 4069 95
+5a56c 8 85 79
+5a574 20 4120 95
+5a594 14 333 122
+5a5a8 14 131 79
+FUNC 5a5bc 24 0 testing::internal::UnitTestImpl::SetTestPartResultReporterForCurrentThread
+5a5bc 4 707 95
+5a5c0 4 2010 87
+5a5c4 4 707 95
+5a5c8 4 707 95
+5a5cc 4 2010 87
+5a5d0 8 2013 87
+5a5d8 8 709 95
+FUNC 5a5e0 8c 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::_M_find<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+5a5e0 14 548 136
+5a5f4 8 548 136
+5a5fc c 549 136
+5a608 4 552 136
+5a60c 10 79 106
+5a61c 8 553 136
+5a624 8 554 136
+5a62c 8 556 136
+5a634 8 558 136
+5a63c 18 79 106
+5a654 18 564 136
+FUNC 5a66c 58 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::_M_erase
+5a66c 18 655 135
+5a684 4 657 135
+5a688 c 658 135
+5a694 4 659 135
+5a698 8 156 132
+5a6a0 14 161 101
+5a6b4 10 664 135
+FUNC 5a6c4 44 0 std::priv::_List_base<std::pair<char, char const*>, std::allocator<std::pair<char, char const*> > >::clear
+5a6c4 c 66 115
+5a6d0 4 66 115
+5a6d4 4 67 115
+5a6d8 8 68 115
+5a6e0 4 161 101
+5a6e4 4 74 115
+5a6e8 c 161 101
+5a6f4 4 78 115
+5a6f8 4 79 115
+5a6fc c 80 115
+FUNC 5a708 3c 0 std::priv::_List_global<bool>::_Transfer
+5a708 8 50 115
+5a710 8 52 115
+5a718 8 53 115
+5a720 8 54 115
+5a728 4 58 115
+5a72c 4 57 115
+5a730 4 58 115
+5a734 8 59 115
+5a73c 4 60 115
+5a740 4 62 115
+FUNC 5a744 9c 0 testing::internal::edit_distance::::Hunk::PushLine
+5a744 14 1096 95
+5a758 4 1096 95
+5a75c 4 208 116
+5a760 4 1099 95
+5a764 4 370 116
+5a768 4 208 116
+5a76c 8 1099 95
+5a774 8 600 116
+5a77c 8 602 116
+5a784 8 208 116
+5a78c 8 600 116
+5a794 8 602 116
+5a79c c 306 101
+5a7a8 4 307 101
+5a7ac 8 119 103
+5a7b4 8 68 124
+5a7bc 4 427 116
+5a7c0 4 429 116
+5a7c4 4 428 116
+5a7c8 4 430 116
+5a7cc 4 431 116
+5a7d0 10 1112 95
+FUNC 5a7e0 4c 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+5a7e0 c 287 134
+5a7ec 4 289 134
+5a7f0 8 287 134
+5a7f8 14 400 131
+5a80c 8 289 134
+5a814 4 226 140
+5a818 8 289 134
+5a820 c 290 134
+FUNC 5a82c 144 0 std::priv::__find<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+5a82c 10 112 99
+5a83c 4 115 99
+5a840 8 112 99
+5a848 8 115 99
+5a850 4 112 99
+5a854 4 112 99
+5a858 8 115 99
+5a860 8 117 99
+5a868 14 118 99
+5a87c 4 119 99
+5a880 18 121 99
+5a898 18 124 99
+5a8b0 18 127 99
+5a8c8 8 117 99
+5a8d0 24 131 99
+5a8f4 4 143 99
+5a8f8 8 131 99
+5a900 18 133 99
+5a918 4 134 99
+5a91c 8 136 99
+5a924 4 136 99
+5a928 c 136 99
+5a934 4 137 99
+5a938 10 139 99
+5a948 10 139 99
+5a958 18 145 99
+FUNC 5a970 154 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlAttribute
+5a970 c 3552 95
+5a97c 4 3554 95
+5a980 8 3552 95
+5a988 4 3554 95
+5a98c 4 3552 95
+5a990 4 3554 95
+5a994 8 3552 95
+5a99c 8 3552 95
+5a9a4 8 3554 95
+5a9ac 18 223 99
+5a9c4 8 3556 95
+5a9cc 4 3556 95
+5a9d0 4 333 122
+5a9d4 14 3556 95
+5a9e8 24 333 122
+5aa0c 10 3558 95
+5aa1c c 333 122
+5aa28 c 3558 95
+5aa34 c 333 122
+5aa40 8 3556 95
+5aa48 10 333 122
+5aa58 10 3561 95
+5aa68 c 333 122
+5aa74 10 3328 95
+5aa84 c 3561 95
+5aa90 c 333 122
+5aa9c 8 156 132
+5aaa4 8 42 143
+5aaac 18 3562 95
+FUNC 5aac4 124 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_insert_overflow
+5aac4 18 108 138
+5aadc c 108 138
+5aae8 4 192 139
+5aaec 4 108 138
+5aaf0 4 192 139
+5aaf4 4 173 139
+5aaf8 4 108 138
+5aafc 8 192 139
+5ab04 c 173 139
+5ab10 14 41 138
+5ab24 4 175 139
+5ab28 10 176 139
+5ab38 4 356 101
+5ab3c 8 346 101
+5ab44 4 177 139
+5ab48 c 347 101
+5ab54 4 348 101
+5ab58 4 352 101
+5ab5c 4 353 101
+5ab60 4 352 101
+5ab64 14 112 138
+5ab78 8 480 100
+5ab80 14 481 100
+5ab94 4 115 138
+5ab98 18 116 138
+5abb0 8 657 139
+5abb8 4 319 101
+5abbc 4 323 101
+5abc0 4 118 138
+5abc4 4 666 139
+5abc8 4 667 139
+5abcc 4 668 139
+5abd0 18 119 138
+FUNC 5abe8 50 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::push_back
+5abe8 10 376 139
+5abf8 14 380 139
+5ac0c 4 126 103
+5ac10 10 382 139
+5ac20 10 386 139
+5ac30 8 388 139
+FUNC 5ac38 28 0 testing::TestEventListeners::Append
+5ac38 c 3854 95
+5ac44 4 3855 95
+5ac48 10 173 143
+5ac58 8 3856 95
+FUNC 5ac60 5c 0 testing::TestEventListeners::SetDefaultResultPrinter
+5ac60 c 3878 95
+5ac6c 8 3878 95
+5ac74 c 3879 95
+5ac80 8 3882 95
+5ac88 4 3882 95
+5ac8c 8 3882 95
+5ac94 4 3883 95
+5ac98 4 3884 95
+5ac9c 8 3885 95
+5aca4 8 3887 95
+5acac 4 3885 95
+5acb0 c 3887 95
+FUNC 5acbc 244 0 testing::internal::UnitTestImpl::UnitTestImpl
+5acbc 10 4277 95
+5accc 4 4305 95
+5acd0 4 4277 95
+5acd4 4 4305 95
+5acd8 4 61 84
+5acdc 4 4305 95
+5ace0 8 61 84
+5ace8 4 4305 95
+5acec 8 61 84
+5acf4 8 4277 95
+5acfc 4 61 84
+5ad00 4 669 95
+5ad04 4 678 95
+5ad08 8 669 95
+5ad10 4 678 95
+5ad14 4 669 95
+5ad18 c 678 95
+5ad24 4 669 95
+5ad28 4 4305 95
+5ad2c 4 4305 95
+5ad30 4 2032 87
+5ad34 8 4305 95
+5ad3c 14 2032 87
+5ad50 8 2032 87
+5ad58 4 333 122
+5ad5c 14 2032 87
+5ad70 24 333 122
+5ad94 c 2032 87
+5ada0 8 2032 87
+5ada8 8 1999 87
+5adb0 4 4305 95
+5adb4 4 1999 87
+5adb8 8 4305 95
+5adc0 4 4305 95
+5adc4 8 67 139
+5adcc 4 481 101
+5add0 8 67 139
+5add8 4 481 101
+5addc 8 67 139
+5ade4 4 481 101
+5ade8 8 67 139
+5adf0 4 481 101
+5adf4 c 4305 95
+5ae00 4 4305 95
+5ae04 8 4305 95
+5ae0c 8 4305 95
+5ae14 4 4305 95
+5ae18 4 4305 95
+5ae1c 4 712 85
+5ae20 8 4305 95
+5ae28 4 1139 87
+5ae2c 4 4305 95
+5ae30 4 148 83
+5ae34 4 2032 87
+5ae38 c 148 83
+5ae44 4 1139 87
+5ae48 10 2032 87
+5ae58 8 2032 87
+5ae60 4 333 122
+5ae64 14 2032 87
+5ae78 24 333 122
+5ae9c c 2032 87
+5aea8 8 2032 87
+5aeb0 4 2034 87
+5aeb4 4 1997 87
+5aeb8 4 4306 95
+5aebc 8 67 139
+5aec4 4 481 101
+5aec8 4 4305 95
+5aecc 8 4306 95
+5aed4 c 2981 95
+5aee0 8 4306 95
+5aee8 18 4307 95
+FUNC 5af00 44 0 testing::UnitTest::UnitTest
+5af00 10 4251 95
+5af10 10 4251 95
+5af20 c 4252 95
+5af2c 8 4252 95
+5af34 4 4252 95
+5af38 c 4253 95
+FUNC 5af44 5c 0 testing::UnitTest::GetInstance
+5af44 c 3924 95
+5af50 10 3940 95
+5af60 14 3940 95
+5af74 4 3940 95
+5af78 4 3940 95
+5af7c 14 3940 95
+5af90 10 3943 95
+FUNC 5afa0 244 0 testing::internal::UnitTestOptions::GetAbsolutePathToOutputFile
+5afa0 20 408 95
+5afc0 8 408 95
+5afc8 4 410 95
+5afcc 18 411 95
+5afe4 10 413 95
+5aff4 4 414 95
+5aff8 8 418 95
+5b000 c 418 95
+5b00c 4 418 95
+5b010 4 418 95
+5b014 4 418 95
+5b018 4 418 95
+5b01c c 418 95
+5b028 14 418 95
+5b03c c 418 95
+5b048 10 418 95
+5b058 c 418 95
+5b064 28 156 132
+5b08c 4 420 95
+5b090 10 420 95
+5b0a0 c 420 95
+5b0ac 8 156 132
+5b0b4 10 421 95
+5b0c4 8 426 95
+5b0cc c 426 95
+5b0d8 4 426 95
+5b0dc 4 426 95
+5b0e0 4 426 95
+5b0e4 4 426 95
+5b0e8 c 426 95
+5b0f4 10 426 95
+5b104 c 426 95
+5b110 10 426 95
+5b120 c 74 84
+5b12c 28 156 132
+5b154 10 430 95
+5b164 c 431 95
+5b170 4 431 95
+5b174 4 435 95
+5b178 4 435 95
+5b17c 4 435 95
+5b180 8 435 95
+5b188 14 435 95
+5b19c 10 156 132
+5b1ac c 436 95
+5b1b8 10 156 132
+5b1c8 1c 437 95
+FUNC 5b1e4 18 0 testing::internal::GetUnitTestImpl
+5b1e4 8 936 91
+5b1ec 4 937 91
+5b1f0 c 938 91
+FUNC 5b1fc 4c 0 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>
+5b1fc c 2370 95
+5b208 c 2370 95
+5b214 14 2395 95
+5b228 4 2418 95
+5b22c 8 2418 95
+5b234 8 2418 95
+5b23c c 2420 95
+FUNC 5b248 28 0 testing::Test::HasFatalFailure
+5b248 8 2447 95
+5b250 4 2448 95
+5b254 4 4872 95
+5b258 4 2449 95
+5b25c c 4872 95
+5b268 8 2448 95
+FUNC 5b270 28 0 testing::Test::HasNonfatalFailure
+5b270 8 2452 95
+5b278 4 2454 95
+5b27c 4 4872 95
+5b280 4 2455 95
+5b284 c 4872 95
+5b290 8 2454 95
+FUNC 5b298 14 0 testing::internal::ScopedTrace::~ScopedTrace
+5b298 8 3780 95
+5b2a0 4 3782 95
+5b2a4 4 3783 95
+5b2a8 4 3782 95
+FUNC 5b2ac 5c 0 testing::TestEventListeners::SetDefaultXmlGenerator
+5b2ac c 3894 95
+5b2b8 8 3894 95
+5b2c0 c 3895 95
+5b2cc 8 3898 95
+5b2d4 4 3898 95
+5b2d8 8 3898 95
+5b2e0 4 3899 95
+5b2e4 4 3900 95
+5b2e8 8 3901 95
+5b2f0 8 3903 95
+5b2f8 4 3901 95
+5b2fc c 3903 95
+FUNC 5b308 c8 0 testing::internal::UnitTestImpl::ConfigureXmlOutput
+5b308 c 4352 95
+5b314 8 4353 95
+5b31c 4 4352 95
+5b320 4 4352 95
+5b324 4 4353 95
+5b328 18 4354 95
+5b340 10 4356 95
+5b350 10 4356 95
+5b360 8 4356 95
+5b368 c 4356 95
+5b374 c 156 132
+5b380 14 476 134
+5b394 4 4357 95
+5b398 10 4359 95
+5b3a8 10 4360 95
+5b3b8 8 156 132
+5b3c0 10 4362 95
+FUNC 5b3d0 50 0 testing::TestCase::AddTestInfo
+5b3d0 10 2707 95
+5b3e0 4 2707 95
+5b3e4 4 173 143
+5b3e8 4 2707 95
+5b3ec 8 173 143
+5b3f4 14 192 139
+5b408 8 2709 95
+5b410 4 173 143
+5b414 c 2710 95
+FUNC 5b420 38 0 std::_Destroy_Range<std::reverse_iterator<testing::internal::TraceInfo*> >
+5b420 c 219 103
+5b42c 8 65 113
+5b434 8 191 103
+5b43c 10 156 132
+5b44c c 221 103
+FUNC 5b458 5c 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::ValueHolder::~ValueHolder
+5b458 c 2017 87
+5b464 8 2017 87
+5b46c 4 64 113
+5b470 4 2017 87
+5b474 4 304 139
+5b478 4 2017 87
+5b47c 10 64 113
+5b48c 8 304 139
+5b494 8 87 139
+5b49c 4 88 139
+5b4a0 8 323 101
+5b4a8 c 2017 87
+FUNC 5b4b4 24 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::ValueHolder::~ValueHolder
+5b4b4 c 2017 87
+5b4c0 8 2017 87
+5b4c8 4 2017 87
+5b4cc 8 2017 87
+5b4d4 4 2017 87
+FUNC 5b4d8 228 0 testing::internal::UnitTestImpl::~UnitTestImpl
+5b4d8 18 4309 95
+5b4f0 10 4309 95
+5b500 8 60 98
+5b508 14 61 98
+5b51c 8 60 98
+5b524 c 61 98
+5b530 8 4316 95
+5b538 c 4316 95
+5b544 c 2003 87
+5b550 4 2003 87
+5b554 10 2007 87
+5b564 4 2007 87
+5b568 4 333 122
+5b56c 14 2007 87
+5b580 24 333 122
+5b5a4 c 2007 87
+5b5b0 8 2007 87
+5b5b8 4 64 113
+5b5bc 4 304 139
+5b5c0 c 64 113
+5b5cc 8 304 139
+5b5d4 8 87 139
+5b5dc 4 88 139
+5b5e0 8 323 101
+5b5e8 8 1153 87
+5b5f0 c 1155 87
+5b5fc c 1140 87
+5b608 8 4309 95
+5b610 c 4309 95
+5b61c c 560 86
+5b628 8 562 86
+5b630 c 562 86
+5b63c 8 560 86
+5b644 8 304 139
+5b64c 8 87 139
+5b654 4 88 139
+5b658 8 323 101
+5b660 10 304 139
+5b670 8 2003 87
+5b678 4 2003 87
+5b67c 10 2007 87
+5b68c 4 2007 87
+5b690 4 333 122
+5b694 14 2007 87
+5b6a8 24 333 122
+5b6cc c 2007 87
+5b6d8 8 2007 87
+5b6e0 8 4309 95
+5b6e8 8 156 132
+5b6f0 10 4317 95
+FUNC 5b700 24 0 testing::internal::UnitTestImpl::~UnitTestImpl
+5b700 c 4309 95
+5b70c 4 4309 95
+5b710 4 4317 95
+5b714 4 4317 95
+5b718 8 4317 95
+5b720 4 4317 95
+FUNC 5b724 e4 0 testing::internal::StreamingListener::UrlEncode
+5b724 c 3702 95
+5b730 4 3703 95
+5b734 4 3711 95
+5b738 4 3702 95
+5b73c 4 3703 95
+5b740 4 3702 95
+5b744 4 3703 95
+5b748 8 3702 95
+5b750 4 3703 95
+5b754 4 3711 95
+5b758 8 3704 95
+5b760 4 3711 95
+5b764 8 3704 95
+5b76c 8 3704 95
+5b774 4 3705 95
+5b778 2c 3705 95
+5b7a4 c 3711 95
+5b7b0 10 3711 95
+5b7c0 c 3711 95
+5b7cc 10 156 132
+5b7dc 4 3712 95
+5b7e0 8 3714 95
+5b7e8 8 3705 95
+5b7f0 18 3719 95
+FUNC 5b808 18c 0 testing::internal::UnitTestOptions::FilterMatchesTest
+5b808 c 485 95
+5b814 4 486 95
+5b818 4 485 95
+5b81c c 486 95
+5b828 c 485 95
+5b834 4 486 95
+5b838 18 486 95
+5b850 4 492 95
+5b854 4 486 95
+5b858 4 493 95
+5b85c c 156 132
+5b868 10 491 95
+5b878 c 492 95
+5b884 c 493 95
+5b890 4 494 95
+5b894 c 495 95
+5b8a0 10 496 95
+5b8b0 4 355 114
+5b8b4 8 324 131
+5b8bc 4 112 132
+5b8c0 4 481 101
+5b8c4 4 324 131
+5b8c8 10 148 137
+5b8d8 4 325 131
+5b8dc 4 498 95
+5b8e0 4 101 103
+5b8e4 8 498 95
+5b8ec 8 156 132
+5b8f4 10 499 95
+5b904 c 499 95
+5b910 8 156 132
+5b918 10 500 95
+5b928 10 502 95
+5b938 10 508 95
+5b948 4 508 95
+5b94c 10 509 95
+5b95c 4 508 95
+5b960 18 156 132
+5b978 1c 510 95
+FUNC 5b994 1f8 0 testing::internal::UnitTestImpl::FilterTests
+5b994 28 4731 95
+5b9bc 8 4731 95
+5b9c4 4 4733 95
+5b9c8 14 4733 95
+5b9dc 18 4735 95
+5b9f4 4 4733 95
+5b9f8 4 4735 95
+5b9fc 4 4766 95
+5ba00 4 4743 95
+5ba04 4 4766 95
+5ba08 4 4755 95
+5ba0c 4 4742 95
+5ba10 4 4741 95
+5ba14 4 4766 95
+5ba18 8 4745 95
+5ba20 4 4755 95
+5ba24 10 192 139
+5ba34 8 4743 95
+5ba3c 4 4744 95
+5ba40 8 4745 95
+5ba48 4 4748 95
+5ba4c 8 4745 95
+5ba54 4 860 82
+5ba58 8 4750 95
+5ba60 c 192 139
+5ba6c 8 4748 95
+5ba74 4 4749 95
+5ba78 10 4750 95
+5ba88 14 4755 95
+5ba9c 10 4757 95
+5baac 4 4758 95
+5bab0 8 4762 95
+5bab8 4 4758 95
+5babc 8 4762 95
+5bac4 4 4763 95
+5bac8 14 4766 95
+5badc c 4766 95
+5bae8 8 4769 95
+5baf0 8 4769 95
+5baf8 4 4721 95
+5bafc 4 4766 95
+5bb00 4 4770 95
+5bb04 4 4769 95
+5bb08 4 4721 95
+5bb0c 8 4770 95
+5bb14 4 4775 95
+5bb18 4 4777 95
+5bb1c 4 4774 95
+5bb20 4 4748 95
+5bb24 10 4775 95
+5bb34 4 156 132
+5bb38 4 860 82
+5bb3c c 156 132
+5bb48 4 4743 95
+5bb4c 8 156 132
+5bb54 4 4766 95
+5bb58 8 4769 95
+5bb60 2c 4782 95
+FUNC 5bb8c 58 0 testing::internal::StreamingListener::SendLn
+5bb8c 10 1174 91
+5bb9c 8 1059 91
+5bba4 4 1143 87
+5bba8 18 1059 91
+5bbc0 c 1059 91
+5bbcc 8 156 132
+5bbd4 10 1174 91
+FUNC 5bbe4 48 0 testing::internal::StreamingListener::OnTestProgramStart
+5bbe4 4 1118 91
+5bbe8 4 1119 91
+5bbec 8 1118 91
+5bbf4 8 1119 91
+5bbfc 4 1118 91
+5bc00 c 1119 91
+5bc0c c 1119 91
+5bc18 8 156 132
+5bc20 c 1120 91
+FUNC 5bc2c 9c 0 testing::internal::StreamingListener::OnTestProgramEnd
+5bc2c 10 1122 91
+5bc3c 4 1125 91
+5bc40 4 1122 91
+5bc44 8 1125 91
+5bc4c 4 1180 91
+5bc50 c 1180 91
+5bc5c 8 1180 91
+5bc64 14 1180 91
+5bc78 14 1125 91
+5bc8c c 1125 91
+5bc98 10 156 132
+5bca8 4 1143 87
+5bcac 4 1128 91
+5bcb0 8 1128 91
+5bcb8 10 1129 91
+FUNC 5bcc8 6c 0 testing::internal::StreamingListener::OnTestIterationStart
+5bcc8 c 1131 91
+5bcd4 4 1132 91
+5bcd8 4 1131 91
+5bcdc 4 1132 91
+5bce0 4 1131 91
+5bce4 4 1132 91
+5bce8 4 1131 91
+5bcec 4 1132 91
+5bcf0 4 1132 91
+5bcf4 14 1132 91
+5bd08 c 1133 91
+5bd14 10 156 132
+5bd24 10 1134 91
+FUNC 5bd34 228 0 testing::internal::UnitTestImpl::ConfigureStreamingOutput
+5bd34 24 4367 95
+5bd58 8 4369 95
+5bd60 c 440 130
+5bd6c c 162 99
+5bd78 8 164 99
+5bd80 c 165 99
+5bd8c c 168 99
+5bd98 8 166 99
+5bda0 c 171 99
+5bdac 8 169 99
+5bdb4 c 174 99
+5bdc0 c 172 99
+5bdcc 8 164 99
+5bdd4 24 178 99
+5bdf8 10 180 99
+5be08 4 181 99
+5be0c 10 183 99
+5be1c 4 184 99
+5be20 10 186 99
+5be30 4 165 99
+5be34 8 447 130
+5be3c 4 447 130
+5be40 8 4371 95
+5be48 40 1023 131
+5be88 c 4373 95
+5be94 c 1113 91
+5bea0 c 1113 91
+5beac 4 1067 91
+5beb0 4 1067 91
+5beb4 10 1067 91
+5bec4 8 1067 91
+5becc c 1067 91
+5bed8 8 1068 91
+5bee0 4 1139 87
+5bee4 14 1178 91
+5bef8 c 1178 91
+5bf04 8 156 132
+5bf0c c 4373 95
+5bf18 14 156 132
+5bf2c c 4376 95
+5bf38 10 4377 95
+5bf48 14 4380 95
+FUNC 5bf5c 64 0 testing::internal::UnitTestImpl::PostFlagParsingInit
+5bf5c c 4388 95
+5bf68 c 4390 95
+5bf74 8 4391 95
+5bf7c 8 760 91
+5bf84 8 760 91
+5bf8c 8 4395 95
+5bf94 8 4401 95
+5bf9c 8 4405 95
+5bfa4 4 4409 95
+5bfa8 8 4412 95
+5bfb0 4 4409 95
+5bfb4 c 4412 95
+FUNC 5bfc0 94 0 testing::internal::AppendUserMessage
+5bfc0 c 1963 95
+5bfcc 4 1965 95
+5bfd0 8 1963 95
+5bfd8 4 1965 95
+5bfdc 4 1963 95
+5bfe0 8 1965 95
+5bfe8 10 1966 95
+5bff8 10 1967 95
+5c008 18 1970 95
+5c020 10 1970 95
+5c030 10 156 132
+5c040 14 1971 95
+FUNC 5c054 a0 0 testing::internal::AssertHelper::operator=
+5c054 10 363 95
+5c064 4 370 95
+5c068 4 363 95
+5c06c 4 363 95
+5c070 c 370 95
+5c07c 10 370 95
+5c08c 14 370 95
+5c0a0 4 370 95
+5c0a4 4 370 95
+5c0a8 10 370 95
+5c0b8 1c 370 95
+5c0d4 10 156 132
+5c0e4 10 371 95
+FUNC 5c0f4 314 0 testing::Test::HasSameFixtureClass
+5c0f4 1c 2229 95
+5c110 8 2230 95
+5c118 4 2287 95
+5c11c 4 743 91
+5c120 c 2234 95
+5c12c 8 2235 95
+5c134 4 2240 95
+5c138 8 2243 95
+5c140 1c 2245 95
+5c15c c 2247 95
+5c168 10 2249 95
+5c178 4 2257 95
+5c17c 4 2257 95
+5c180 4 2257 95
+5c184 4 2259 95
+5c188 14 2261 95
+5c19c 8 333 122
+5c1a4 4 2261 95
+5c1a8 8 2262 95
+5c1b0 38 333 122
+5c1e8 10 2264 95
+5c1f8 4 131 79
+5c1fc c 333 122
+5c208 4 131 79
+5c20c c 333 122
+5c218 10 2266 95
+5c228 4 131 79
+5c22c 10 333 122
+5c23c 4 131 79
+5c240 c 333 122
+5c24c 10 2267 95
+5c25c 4 131 79
+5c260 10 333 122
+5c270 4 131 79
+5c274 10 333 122
+5c284 4 131 79
+5c288 10 333 122
+5c298 8 2269 95
+5c2a0 4 2284 95
+5c2a4 4 2269 95
+5c2a8 8 85 79
+5c2b0 c 2261 95
+5c2bc 18 2273 95
+5c2d4 8 2274 95
+5c2dc 24 333 122
+5c300 10 2276 95
+5c310 4 131 79
+5c314 c 333 122
+5c320 4 131 79
+5c324 10 333 122
+5c334 10 2277 95
+5c344 4 131 79
+5c348 10 333 122
+5c358 10 2278 95
+5c368 4 131 79
+5c36c 10 333 122
+5c37c 4 131 79
+5c380 10 333 122
+5c390 4 131 79
+5c394 10 333 122
+5c3a4 4 131 79
+5c3a8 10 333 122
+5c3b8 4 131 79
+5c3bc 10 333 122
+5c3cc c 2282 95
+5c3d8 8 85 79
+5c3e0 8 2273 95
+5c3e8 20 2288 95
+FUNC 5c408 bc 0 testing::Test::Run
+5c408 c 2425 95
+5c414 4 2425 95
+5c418 c 2426 95
+5c424 8 2428 95
+5c42c 8 2429 95
+5c434 8 2429 95
+5c43c 18 2430 95
+5c454 c 2432 95
+5c460 c 2433 95
+5c46c 8 2433 95
+5c474 18 2435 95
+5c48c c 2441 95
+5c498 8 2441 95
+5c4a0 18 2443 95
+5c4b8 c 2444 95
+FUNC 5c4c4 10c 0 testing::TestInfo::Run
+5c4c4 14 2584 95
+5c4d8 c 2585 95
+5c4e4 4 2588 95
+5c4e8 4 693 91
+5c4ec 4 2588 95
+5c4f0 4 2591 95
+5c4f4 4 3871 95
+5c4f8 4 2594 95
+5c4fc 4 3871 95
+5c500 10 2594 95
+5c510 8 2596 95
+5c518 c 2598 95
+5c524 8 2598 95
+5c52c 4 2603 95
+5c530 8 2395 95
+5c538 10 2418 95
+5c548 4 2607 95
+5c54c 8 2607 95
+5c554 4 2607 95
+5c558 c 2614 95
+5c564 8 2614 95
+5c56c 1c 2616 95
+5c588 8 2618 95
+5c590 4 585 82
+5c594 14 2621 95
+5c5a8 8 693 91
+5c5b0 c 2610 95
+5c5bc 14 2626 95
+FUNC 5c5d0 100 0 testing::TestCase::Run
+5c5d0 14 2713 95
+5c5e4 c 2714 95
+5c5f0 4 2716 95
+5c5f4 4 686 91
+5c5f8 4 2716 95
+5c5fc 4 2727 95
+5c600 4 2719 95
+5c604 4 3871 95
+5c608 4 2721 95
+5c60c 4 3871 95
+5c610 10 2721 95
+5c620 c 2722 95
+5c62c 8 2722 95
+5c634 4 2395 95
+5c638 8 2362 95
+5c640 8 2726 95
+5c648 10 192 139
+5c658 8 2727 95
+5c660 8 2728 95
+5c668 4 2727 95
+5c66c 4 2728 95
+5c670 8 2728 95
+5c678 c 2730 95
+5c684 c 2732 95
+5c690 8 2732 95
+5c698 4 2395 95
+5c69c 8 2362 95
+5c6a4 14 2736 95
+5c6b8 4 686 91
+5c6bc 14 2738 95
+FUNC 5c6d0 3fc 0 testing::internal::UnitTestImpl::RunAllTests
+5c6d0 4 4498 95
+5c6d4 4 320 95
+5c6d8 10 4498 95
+5c6e8 4 4500 95
+5c6ec 10 4498 95
+5c6fc 4 4498 95
+5c700 4 4500 95
+5c704 c 4503 95
+5c710 4 4504 95
+5c714 c 4508 95
+5c720 4 4513 95
+5c724 4 4518 95
+5c728 4 4525 95
+5c72c 8 4529 95
+5c734 4 4525 95
+5c738 4 4529 95
+5c73c 4 4525 95
+5c740 10 4529 95
+5c750 10 4535 95
+5c760 4 4538 95
+5c764 4 4535 95
+5c768 8 4538 95
+5c770 c 4540 95
+5c77c c 4545 95
+5c788 8 4545 95
+5c790 4 138 91
+5c794 4 137 91
+5c798 1c 143 91
+5c7b4 4 144 91
+5c7b8 4 4545 95
+5c7bc 4 4557 95
+5c7c0 4 3871 95
+5c7c4 8 4552 95
+5c7cc 14 4553 95
+5c7e0 4 4557 95
+5c7e4 8 4557 95
+5c7ec 4 4559 95
+5c7f0 4 4560 95
+5c7f4 4 152 91
+5c7f8 4 4548 95
+5c7fc 4 4559 95
+5c800 8 333 122
+5c808 4 152 91
+5c80c 10 333 122
+5c81c 10 4560 95
+5c82c 8 60 98
+5c834 c 871 82
+5c840 8 4565 95
+5c848 4 4568 95
+5c84c 8 4568 95
+5c854 8 714 85
+5c85c 8 4573 95
+5c864 18 4577 95
+5c87c 4 4580 95
+5c880 1c 4582 95
+5c89c 8 60 98
+5c8a4 14 61 98
+5c8b8 14 4584 95
+5c8cc c 4588 95
+5c8d8 20 4596 95
+5c8f8 4 4588 95
+5c8fc 8 594 91
+5c904 10 192 139
+5c914 8 4589 95
+5c91c 14 594 91
+5c930 4 595 91
+5c934 4 595 91
+5c938 8 595 91
+5c940 4 4591 95
+5c944 4 4589 95
+5c948 8 4591 95
+5c950 8 60 98
+5c958 14 61 98
+5c96c 14 4599 95
+5c980 c 4602 95
+5c98c 18 4605 95
+5c9a4 c 576 91
+5c9b0 4 4609 95
+5c9b4 4 4618 95
+5c9b8 4 4609 95
+5c9bc 4 4618 95
+5c9c0 8 4620 95
+5c9c8 4 4622 95
+5c9cc 14 152 91
+5c9e0 4 152 91
+5c9e4 4 333 122
+5c9e8 18 152 91
+5ca00 1c 333 122
+5ca1c 10 153 91
+5ca2c c 333 122
+5ca38 10 154 91
+5ca48 c 333 122
+5ca54 c 152 91
+5ca60 4 156 91
+5ca64 4 155 91
+5ca68 c 156 91
+5ca74 4 4622 95
+5ca78 8 4560 95
+5ca80 8 4560 95
+5ca88 4 4626 95
+5ca8c 4 4628 95
+5ca90 4 4626 95
+5ca94 4 4628 95
+5ca98 c 4626 95
+5caa4 28 4629 95
+FUNC 5cacc cc 0 testing::UnitTest::Run
+5cacc 18 4137 95
+5cae4 4 4137 95
+5cae8 4 4164 95
+5caec 10 4164 95
+5cafc 10 2328 87
+5cb0c 4 3816 95
+5cb10 8 3816 95
+5cb18 10 2298 87
+5cb28 18 3821 95
+5cb40 8 3822 95
+5cb48 4 4168 95
+5cb4c 4 1279 82
+5cb50 8 819 91
+5cb58 4 1279 82
+5cb5c 4 2395 95
+5cb60 c 2418 95
+5cb6c 4 4212 95
+5cb70 4 3827 95
+5cb74 8 3827 95
+5cb7c 8 3828 95
+5cb84 14 4213 95
+FUNC 5cb98 70 0 testing::internal::StreamingListener::OnTestStart
+5cb98 10 1152 91
+5cba8 4 1153 91
+5cbac 4 1152 91
+5cbb0 8 1153 91
+5cbb8 4 1152 91
+5cbbc 8 1153 91
+5cbc4 4 1153 91
+5cbc8 4 1153 91
+5cbcc 10 1153 91
+5cbdc c 1153 91
+5cbe8 10 156 132
+5cbf8 10 1154 91
+FUNC 5cc08 70 0 testing::internal::StreamingListener::OnTestCaseStart
+5cc08 10 1142 91
+5cc18 4 1143 91
+5cc1c 4 1142 91
+5cc20 8 1143 91
+5cc28 4 1142 91
+5cc2c 8 1143 91
+5cc34 4 1143 91
+5cc38 4 1143 91
+5cc3c 10 1143 91
+5cc4c c 1143 91
+5cc58 10 156 132
+5cc68 10 1144 91
+FUNC 5cc78 88 0 testing::FormatCountableNoun
+5cc78 c 2765 95
+5cc84 4 2766 95
+5cc88 4 2766 95
+5cc8c 4 2765 95
+5cc90 8 2765 95
+5cc98 8 2766 95
+5cca0 8 2765 95
+5cca8 4 2766 95
+5ccac 14 2766 95
+5ccc0 4 2767 95
+5ccc4 8 2767 95
+5cccc 4 2767 95
+5ccd0 c 2767 95
+5ccdc 10 156 132
+5ccec 14 2768 95
+FUNC 5cd00 ac 0 testing::internal::PrettyUnitTestResultPrinter::OnTestCaseStart
+5cd00 4 3048 95
+5cd04 4 3050 95
+5cd08 8 3048 95
+5cd10 4 3048 95
+5cd14 4 3050 95
+5cd18 1c 3050 95
+5cd34 10 3051 95
+5cd44 14 3052 95
+5cd58 4 1144 87
+5cd5c 8 797 82
+5cd64 4 3053 95
+5cd68 c 3054 95
+5cd74 14 3056 95
+5cd88 10 3058 95
+5cd98 8 156 132
+5cda0 c 3059 95
+FUNC 5cdac 18c 0 testing::internal::PrettyUnitTestResultPrinter::OnTestIterationStart
+5cdac 4 3008 95
+5cdb0 8 3007 95
+5cdb8 4 3008 95
+5cdbc 8 3007 95
+5cdc4 4 3008 95
+5cdc8 4 3007 95
+5cdcc 4 3008 95
+5cdd0 14 3009 95
+5cde4 24 3015 95
+5ce08 38 3017 95
+5ce40 4 3020 95
+5ce44 10 3021 95
+5ce54 c 2328 87
+5ce60 14 3025 95
+5ce74 c 3028 95
+5ce80 4 798 91
+5ce84 14 3031 95
+5ce98 c 3034 95
+5cea4 4 2772 95
+5cea8 4 2777 95
+5ceac 4 3034 95
+5ceb0 8 3037 95
+5ceb8 1c 2772 95
+5ced4 8 3037 95
+5cedc 18 2777 95
+5cef4 14 3037 95
+5cf08 10 156 132
+5cf18 10 3038 95
+5cf28 10 3039 95
+FUNC 5cf38 2a0 0 testing::internal::FormatEpochTimeInMillisAsIso8601
+5cf38 4 3509 95
+5cf3c 4 3508 95
+5cf40 4 3509 95
+5cf44 8 3508 95
+5cf4c 4 3509 95
+5cf50 4 3515 95
+5cf54 4 3508 95
+5cf58 8 3509 95
+5cf60 4 3515 95
+5cf64 10 3508 95
+5cf74 4 3508 95
+5cf78 8 3515 95
+5cf80 18 3516 95
+5cf98 c 3520 95
+5cfa4 4 3520 95
+5cfa8 c 3520 95
+5cfb4 4 3520 95
+5cfb8 4 3520 95
+5cfbc 10 3520 95
+5cfcc 4 3520 95
+5cfd0 4 3520 95
+5cfd4 4 3521 95
+5cfd8 4 3520 95
+5cfdc 4 3521 95
+5cfe0 8 3520 95
+5cfe8 4 3523 95
+5cfec 8 3520 95
+5cff4 10 3520 95
+5d004 c 3521 95
+5d010 4 3523 95
+5d014 4 3521 95
+5d018 c 3521 95
+5d024 18 3521 95
+5d03c 24 3522 95
+5d060 14 3522 95
+5d074 28 3522 95
+5d09c 1c 3523 95
+5d0b8 4 3523 95
+5d0bc 4 3523 95
+5d0c0 c 3523 95
+5d0cc 18 3523 95
+5d0e4 20 3524 95
+5d104 c 3525 95
+5d110 14 3525 95
+5d124 90 156 132
+5d1b4 24 3526 95
+FUNC 5d1d8 e0 0 testing::internal::ParseFlagValue
+5d1d8 14 4955 95
+5d1ec 4 4955 95
+5d1f0 8 4957 95
+5d1f8 1c 4960 95
+5d214 4 4960 95
+5d218 4 4960 95
+5d21c 4 4960 95
+5d220 14 4960 95
+5d234 10 4960 95
+5d244 c 156 132
+5d250 4 4962 95
+5d254 4 156 132
+5d258 8 400 131
+5d260 4 4962 95
+5d264 4 400 131
+5d268 8 4962 95
+5d270 4 4962 95
+5d274 8 4965 95
+5d27c 8 4968 95
+5d284 4 4968 95
+5d288 8 4978 95
+5d290 c 156 132
+5d29c 4 4957 95
+5d2a0 18 4979 95
+FUNC 5d2b8 54 0 testing::internal::ParseBoolFlag
+5d2b8 c 4991 95
+5d2c4 4 4991 95
+5d2c8 8 4993 95
+5d2d0 4 4996 95
+5d2d4 4 4996 95
+5d2d8 4 4999 95
+5d2dc c 4999 95
+5d2e8 8 4999 95
+5d2f0 4 5000 95
+5d2f4 4 4999 95
+5d2f8 4 4999 95
+5d2fc 10 5001 95
+FUNC 5d30c 8c 0 testing::internal::ParseInt32Flag
+5d30c 10 5008 95
+5d31c 4 5010 95
+5d320 8 5008 95
+5d328 4 5008 95
+5d32c 8 5010 95
+5d334 4 5013 95
+5d338 4 5013 95
+5d33c c 5016 95
+5d348 14 333 122
+5d35c c 5016 95
+5d368 10 5017 95
+5d378 8 85 79
+5d380 18 5018 95
+FUNC 5d398 38 0 testing::internal::ParseStringFlag
+5d398 c 5025 95
+5d3a4 4 5025 95
+5d3a8 c 5027 95
+5d3b4 4 5030 95
+5d3b8 8 5033 95
+5d3c0 4 5034 95
+5d3c4 c 5035 95
+FUNC 5d3d0 374 0 testing::internal::ParseGoogleTestFlagsOnlyImpl<char>
+5d3d0 10 5165 95
+5d3e0 8 5176 95
+5d3e8 4 5178 95
+5d3ec c 5165 95
+5d3f8 8 5165 95
+5d400 4 5166 95
+5d404 8 5176 95
+5d40c 4 5178 95
+5d410 c 5166 95
+5d41c 18 5167 95
+5d434 14 5176 95
+5d448 4 5175 95
+5d44c 18 5178 95
+5d464 4 5175 95
+5d468 1c 5180 95
+5d484 4 5175 95
+5d488 1c 5181 95
+5d4a4 4 5175 95
+5d4a8 1c 5183 95
+5d4c4 4 5175 95
+5d4c8 1c 5185 95
+5d4e4 4 5175 95
+5d4e8 1c 5186 95
+5d504 4 5175 95
+5d508 1c 5188 95
+5d524 4 5175 95
+5d528 1c 5189 95
+5d544 4 5175 95
+5d548 1c 5190 95
+5d564 4 5175 95
+5d568 1c 5191 95
+5d584 4 5175 95
+5d588 1c 5192 95
+5d5a4 4 5175 95
+5d5a8 1c 5193 95
+5d5c4 4 5175 95
+5d5c8 1c 5194 95
+5d5e4 4 5175 95
+5d5e8 1c 5196 95
+5d604 4 5175 95
+5d608 1c 5198 95
+5d624 4 5175 95
+5d628 1c 5200 95
+5d644 8 5175 95
+5d64c c 5225 95
+5d658 c 5229 95
+5d664 4 5165 95
+5d668 10 5206 95
+5d678 4 5207 95
+5d67c 4 5206 95
+5d680 8 5207 95
+5d688 4 5211 95
+5d68c 4 5215 95
+5d690 8 5211 95
+5d698 18 5216 95
+5d6b0 14 5216 95
+5d6c4 4 5216 95
+5d6c8 c 5221 95
+5d6d4 4 156 132
+5d6d8 4 5166 95
+5d6dc 8 156 132
+5d6e4 14 5217 95
+5d6f8 4 5216 95
+5d6fc 14 5217 95
+5d710 4 5216 95
+5d714 c 5218 95
+5d720 8 5216 95
+5d728 1c 5231 95
+FUNC 5d744 150 0 testing::internal::StreamingListener::OnTestPartResult
+5d744 20 1163 91
+5d764 8 1163 91
+5d76c 4 77 81
+5d770 c 1165 91
+5d77c 8 1166 91
+5d784 4 1167 91
+5d788 4 1167 91
+5d78c 4 1167 91
+5d790 4 1167 91
+5d794 4 1168 91
+5d798 4 1168 91
+5d79c 4 1167 91
+5d7a0 4 1168 91
+5d7a4 10 1167 91
+5d7b4 4 1169 91
+5d7b8 4 1167 91
+5d7bc 14 1167 91
+5d7d0 c 1168 91
+5d7dc 4 1168 91
+5d7e0 4 1168 91
+5d7e4 4 1168 91
+5d7e8 10 1168 91
+5d7f8 14 1168 91
+5d80c 8 1169 91
+5d814 4 1169 91
+5d818 4 1169 91
+5d81c 10 1169 91
+5d82c c 1169 91
+5d838 40 156 132
+5d878 1c 1170 91
+FUNC 5d894 47c 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlTestInfo
+5d894 14 3568 95
+5d8a8 4 700 82
+5d8ac 8 3568 95
+5d8b4 4 700 82
+5d8b8 4 3570 95
+5d8bc 8 3568 95
+5d8c4 4 3570 95
+5d8c8 4 3568 95
+5d8cc 4 3570 95
+5d8d0 4 3568 95
+5d8d4 c 3570 95
+5d8e0 4 3573 95
+5d8e4 4 3568 95
+5d8e8 4 3573 95
+5d8ec 4 3568 95
+5d8f0 4 3570 95
+5d8f4 4 3573 95
+5d8f8 10 333 122
+5d908 14 3573 95
+5d91c 10 3573 95
+5d92c 14 3573 95
+5d940 10 156 132
+5d950 4 1144 87
+5d954 4 668 82
+5d958 8 3575 95
+5d960 14 3577 95
+5d974 4 1144 87
+5d978 4 670 82
+5d97c 8 668 82
+5d984 c 3577 95
+5d990 14 3577 95
+5d9a4 10 156 132
+5d9b4 4 1144 87
+5d9b8 4 660 82
+5d9bc 8 3579 95
+5d9c4 14 3580 95
+5d9d8 4 1144 87
+5d9dc 4 662 82
+5d9e0 8 660 82
+5d9e8 c 3580 95
+5d9f4 14 3580 95
+5da08 10 156 132
+5da18 14 3584 95
+5da2c 8 3584 95
+5da34 c 3584 95
+5da40 8 3584 95
+5da48 8 3584 95
+5da50 4 3591 95
+5da54 4 3584 95
+5da58 4 3590 95
+5da5c 14 3584 95
+5da70 10 156 132
+5da80 14 3586 95
+5da94 10 3586 95
+5daa4 14 3586 95
+5dab8 10 156 132
+5dac8 14 3587 95
+5dadc 10 3587 95
+5daec 14 3587 95
+5db00 10 156 132
+5db10 c 3588 95
+5db1c c 3588 95
+5db28 8 156 132
+5db30 c 192 139
+5db3c c 3599 95
+5db48 c 333 122
+5db54 8 3601 95
+5db5c 18 192 139
+5db74 8 3591 95
+5db7c 10 3592 95
+5db8c 8 3593 95
+5db94 c 3594 95
+5dba0 14 333 122
+5dbb4 4 3598 95
+5dbb8 8 77 81
+5dbc0 c 3598 95
+5dbcc 10 3599 95
+5dbdc 10 3599 95
+5dbec 8 156 132
+5dbf4 c 333 122
+5dc00 10 3601 95
+5dc10 10 3328 95
+5dc20 c 3601 95
+5dc2c c 333 122
+5dc38 10 156 132
+5dc48 10 3603 95
+5dc58 10 3603 95
+5dc68 8 156 132
+5dc70 c 3604 95
+5dc7c c 3604 95
+5dc88 8 156 132
+5dc90 10 333 122
+5dca0 18 156 132
+5dcb8 8 3591 95
+5dcc0 4 333 122
+5dcc4 4 3609 95
+5dcc8 18 333 122
+5dce0 8 156 132
+5dce8 28 3613 95
+FUNC 5dd10 2e4 0 testing::internal::XmlUnitTestResultPrinter::PrintXmlTestCase
+5dd10 10 3617 95
+5dd20 8 3618 95
+5dd28 8 3617 95
+5dd30 4 3618 95
+5dd34 4 3617 95
+5dd38 c 3618 95
+5dd44 4 3617 95
+5dd48 4 3620 95
+5dd4c 4 3618 95
+5dd50 4 3620 95
+5dd54 c 333 122
+5dd60 4 3620 95
+5dd64 4 333 122
+5dd68 c 3619 95
+5dd74 14 3620 95
+5dd88 10 3620 95
+5dd98 14 3620 95
+5ddac 10 156 132
+5ddbc 14 3622 95
+5ddd0 8 3622 95
+5ddd8 4 3622 95
+5dddc c 3622 95
+5dde8 14 3622 95
+5ddfc 10 156 132
+5de0c 14 3624 95
+5de20 8 3624 95
+5de28 4 3624 95
+5de2c c 3624 95
+5de38 14 3624 95
+5de4c 10 156 132
+5de5c 14 3627 95
+5de70 8 3627 95
+5de78 4 3627 95
+5de7c c 3627 95
+5de88 14 3627 95
+5de9c 10 156 132
+5deac 14 3628 95
+5dec0 14 3628 95
+5ded4 14 3628 95
+5dee8 10 156 132
+5def8 14 3630 95
+5df0c c 3630 95
+5df18 14 3630 95
+5df2c 4 156 132
+5df30 4 333 122
+5df34 c 156 132
+5df40 c 3631 95
+5df4c c 3631 95
+5df58 8 333 122
+5df60 4 156 132
+5df64 4 3634 95
+5df68 4 156 132
+5df6c 10 192 139
+5df7c 8 3634 95
+5df84 18 3635 95
+5df9c c 3636 95
+5dfa8 8 3634 95
+5dfb0 10 333 122
+5dfc0 c 3638 95
+5dfcc 8 333 122
+5dfd4 8 156 132
+5dfdc 18 3639 95
+FUNC 5dff4 3ac 0 testing::internal::XmlUnitTestResultPrinter::PrintXmlUnitTest
+5dff4 10 3643 95
+5e004 8 3644 95
+5e00c 8 3643 95
+5e014 4 3644 95
+5e018 4 3643 95
+5e01c c 3644 95
+5e028 4 3643 95
+5e02c 4 3650 95
+5e030 4 3644 95
+5e034 4 3650 95
+5e038 c 333 122
+5e044 4 3650 95
+5e048 14 333 122
+5e05c c 3647 95
+5e068 14 3650 95
+5e07c 8 3650 95
+5e084 4 3650 95
+5e088 c 3650 95
+5e094 14 3650 95
+5e0a8 10 156 132
+5e0b8 14 3652 95
+5e0cc 8 3652 95
+5e0d4 4 3652 95
+5e0d8 c 3652 95
+5e0e4 14 3652 95
+5e0f8 10 156 132
+5e108 14 3655 95
+5e11c 8 3655 95
+5e124 4 3655 95
+5e128 c 3655 95
+5e134 14 3655 95
+5e148 10 156 132
+5e158 14 3656 95
+5e16c 14 3656 95
+5e180 14 3656 95
+5e194 10 156 132
+5e1a4 14 3659 95
+5e1b8 4 570 91
+5e1bc c 3659 95
+5e1c8 14 3659 95
+5e1dc 10 156 132
+5e1ec 14 3661 95
+5e200 4 573 91
+5e204 c 3661 95
+5e210 14 3661 95
+5e224 10 156 132
+5e234 c 3663 95
+5e240 14 3665 95
+5e254 4 798 91
+5e258 4 3665 95
+5e25c 8 3665 95
+5e264 8 3665 95
+5e26c 14 3665 95
+5e280 10 156 132
+5e290 4 606 91
+5e294 c 3668 95
+5e2a0 c 3668 95
+5e2ac 8 156 132
+5e2b4 14 3670 95
+5e2c8 14 3670 95
+5e2dc 14 3670 95
+5e2f0 4 156 132
+5e2f4 4 3673 95
+5e2f8 8 156 132
+5e300 4 333 122
+5e304 4 156 132
+5e308 c 333 122
+5e314 8 3673 95
+5e31c 8 3673 95
+5e324 c 3674 95
+5e330 4 3674 95
+5e334 8 3674 95
+5e33c 10 3675 95
+5e34c 8 3675 95
+5e354 8 3673 95
+5e35c 10 333 122
+5e36c c 3677 95
+5e378 8 333 122
+5e380 8 156 132
+5e388 18 3678 95
+FUNC 5e3a0 108 0 testing::internal::XmlUnitTestResultPrinter::OnTestIterationEnd
+5e3a0 14 3383 95
+5e3b4 8 3385 95
+5e3bc 4 3383 95
+5e3c0 4 3385 95
+5e3c4 4 3383 95
+5e3c8 4 3385 95
+5e3cc 10 3386 95
+5e3dc 10 3388 95
+5e3ec 20 3404 95
+5e40c 8 3405 95
+5e414 8 3406 95
+5e41c 14 2298 87
+5e430 4 3391 95
+5e434 c 3408 95
+5e440 4 3410 95
+5e444 4 3408 95
+5e448 c 3409 95
+5e454 c 3410 95
+5e460 c 3410 95
+5e46c 8 156 132
+5e474 8 3411 95
+5e47c 8 3408 95
+5e484 10 156 132
+5e494 14 3412 95
+FUNC 5e4a8 c0 0 std::priv::__put_num<char, std::char_traits<char>, long long int>
+5e4a8 10 194 121
+5e4b8 8 194 121
+5e4c0 10 181 122
+5e4d0 4 199 121
+5e4d4 18 211 121
+5e4ec 4 202 121
+5e4f0 4 145 110
+5e4f4 4 202 121
+5e4f8 4 145 110
+5e4fc 4 202 121
+5e500 8 145 110
+5e508 8 202 121
+5e510 4 78 120
+5e514 4 202 121
+5e518 8 78 120
+5e520 c 202 121
+5e52c 4 78 120
+5e530 4 57 123
+5e534 c 78 120
+5e540 8 202 121
+5e548 4 210 121
+5e54c 8 212 121
+5e554 14 213 121
+FUNC 5e568 5c 0 testing::internal::StreamableToString<long long int>
+5e568 c 243 79
+5e574 4 244 79
+5e578 4 243 79
+5e57c 4 243 79
+5e580 4 244 79
+5e584 4 243 79
+5e588 4 244 79
+5e58c 10 268 121
+5e59c c 244 79
+5e5a8 8 85 79
+5e5b0 14 245 79
+FUNC 5e5c4 d4 0 testing::internal::PrettyUnitTestResultPrinter::OnTestEnd
+5e5c4 c 3080 95
+5e5d0 4 700 82
+5e5d4 4 3080 95
+5e5d8 c 540 82
+5e5e4 4 3081 95
+5e5e8 10 3082 95
+5e5f8 10 3084 95
+5e608 14 2983 95
+5e61c c 3087 95
+5e628 4 3087 95
+5e62c 8 3088 95
+5e634 c 3090 95
+5e640 4 3092 95
+5e644 4 3092 95
+5e648 4 3092 95
+5e64c c 3092 95
+5e658 10 3092 95
+5e668 c 156 132
+5e674 8 3094 95
+5e67c 10 3096 95
+5e68c c 3097 95
+FUNC 5e698 23c 0 testing::internal::PrettyUnitTestResultPrinter::OnTestIterationEnd
+5e698 4 3144 95
+5e69c 4 3145 95
+5e6a0 c 3144 95
+5e6ac 8 3145 95
+5e6b4 4 2777 95
+5e6b8 8 3144 95
+5e6c0 4 3145 95
+5e6c4 4 2772 95
+5e6c8 4 3148 95
+5e6cc 8 2772 95
+5e6d4 4 3148 95
+5e6d8 14 2772 95
+5e6ec 8 3148 95
+5e6f4 18 2777 95
+5e70c 14 3148 95
+5e720 10 156 132
+5e730 c 3149 95
+5e73c 4 573 91
+5e740 4 3151 95
+5e744 8 3151 95
+5e74c 8 3151 95
+5e754 10 3151 95
+5e764 8 156 132
+5e76c 4 3153 95
+5e770 8 2772 95
+5e778 4 3153 95
+5e77c 10 3154 95
+5e78c 8 3155 95
+5e794 10 2772 95
+5e7a4 10 3155 95
+5e7b4 8 156 132
+5e7bc c 3157 95
+5e7c8 10 3158 95
+5e7d8 c 3159 95
+5e7e4 10 3160 95
+5e7f4 14 2772 95
+5e808 10 3161 95
+5e818 8 156 132
+5e820 8 3162 95
+5e828 8 3164 95
+5e830 c 3164 95
+5e83c 8 3164 95
+5e844 10 3164 95
+5e854 c 3167 95
+5e860 4 3168 95
+5e864 c 3168 95
+5e870 4 3169 95
+5e874 10 3170 95
+5e884 8 3175 95
+5e88c c 3175 95
+5e898 8 3175 95
+5e8a0 10 3175 95
+5e8b0 10 3178 95
+5e8c0 14 3179 95
+FUNC 5e8d4 bc 0 testing::internal::PrettyUnitTestResultPrinter::OnTestCaseEnd
+5e8d4 4 3100 95
+5e8d8 8 3099 95
+5e8e0 4 3100 95
+5e8e4 4 3099 95
+5e8e8 4 3100 95
+5e8ec 8 3103 95
+5e8f4 4 3103 95
+5e8f8 4 3103 95
+5e8fc 18 3103 95
+5e914 14 3104 95
+5e928 4 3107 95
+5e92c c 3107 95
+5e938 4 3107 95
+5e93c 10 3107 95
+5e94c 18 3107 95
+5e964 8 156 132
+5e96c 10 3108 95
+5e97c 8 156 132
+5e984 c 3109 95
+FUNC 5e990 11c 0 testing::internal::StreamingListener::OnTestEnd
+5e990 c 1156 91
+5e99c 4 700 82
+5e9a0 8 1156 91
+5e9a8 4 540 82
+5e9ac 8 1156 91
+5e9b4 8 540 82
+5e9bc 4 1180 91
+5e9c0 c 1180 91
+5e9cc 8 1180 91
+5e9d4 10 1180 91
+5e9e4 4 1157 91
+5e9e8 4 1158 91
+5e9ec 4 1180 91
+5e9f0 4 1159 91
+5e9f4 14 1157 91
+5ea08 14 1158 91
+5ea1c 18 1159 91
+5ea34 10 1159 91
+5ea44 14 1160 91
+5ea58 c 1160 91
+5ea64 30 156 132
+5ea94 18 1161 91
+FUNC 5eaac 11c 0 testing::internal::StreamingListener::OnTestCaseEnd
+5eaac 10 1146 91
+5eabc 4 830 82
+5eac0 c 1146 91
+5eacc 4 1146 91
+5ead0 4 830 82
+5ead4 8 1180 91
+5eadc c 1180 91
+5eae8 8 1180 91
+5eaf0 10 1180 91
+5eb00 4 1147 91
+5eb04 4 1148 91
+5eb08 4 1180 91
+5eb0c 4 1148 91
+5eb10 14 1147 91
+5eb24 1c 1148 91
+5eb40 8 1148 91
+5eb48 4 1148 91
+5eb4c 4 1148 91
+5eb50 10 1148 91
+5eb60 14 1149 91
+5eb74 c 1149 91
+5eb80 30 156 132
+5ebb0 18 1150 91
+FUNC 5ebc8 124 0 testing::internal::StreamingListener::OnTestIterationEnd
+5ebc8 10 1136 91
+5ebd8 4 1137 91
+5ebdc c 1136 91
+5ebe8 4 1136 91
+5ebec 8 1137 91
+5ebf4 4 1180 91
+5ebf8 c 1180 91
+5ec04 8 1180 91
+5ec0c 10 1180 91
+5ec1c 4 1137 91
+5ec20 4 1138 91
+5ec24 4 1180 91
+5ec28 4 1138 91
+5ec2c 14 1137 91
+5ec40 14 1138 91
+5ec54 4 573 91
+5ec58 4 1138 91
+5ec5c 8 1138 91
+5ec64 8 1138 91
+5ec6c 8 1138 91
+5ec74 10 1138 91
+5ec84 14 1139 91
+5ec98 c 1139 91
+5eca4 30 156 132
+5ecd4 18 1140 91
+FUNC 5ecec 1a0 0 std::priv::_Impl_vector<testing::internal::edit_distance::EditType, std::allocator<testing::internal::edit_distance::EditType> >::_M_insert_overflow_aux
+5ecec 18 81 138
+5ed04 8 81 138
+5ed0c c 192 139
+5ed18 4 173 139
+5ed1c 4 192 139
+5ed20 c 173 139
+5ed2c 14 41 138
+5ed40 4 175 139
+5ed44 10 176 139
+5ed54 4 177 139
+5ed58 10 87 138
+5ed68 8 551 101
+5ed70 8 91 138
+5ed78 14 86 137
+5ed8c 8 86 137
+5ed94 8 139 103
+5ed9c 8 139 103
+5eda4 14 86 137
+5edb8 10 93 138
+5edc8 4 119 103
+5edcc 8 119 103
+5edd4 8 95 138
+5eddc 8 314 137
+5ede4 4 249 137
+5ede8 8 249 137
+5edf0 4 139 103
+5edf4 8 139 103
+5edfc c 249 137
+5ee08 4 98 138
+5ee0c 14 86 137
+5ee20 8 86 137
+5ee28 8 139 103
+5ee30 8 139 103
+5ee38 1c 86 137
+5ee54 8 662 139
+5ee5c 4 319 101
+5ee60 4 323 101
+5ee64 4 104 138
+5ee68 4 666 139
+5ee6c 4 667 139
+5ee70 4 104 138
+5ee74 4 105 138
+5ee78 4 668 139
+5ee7c 10 105 138
+FUNC 5ee90 63c 0 testing::internal::edit_distance::CalculateOptimalEdits
+5ee90 28 990 95
+5eeb8 4 70 139
+5eebc 4 990 95
+5eec0 8 192 139
+5eec8 4 70 139
+5eecc 10 192 139
+5eedc 4 481 101
+5eee0 4 992 95
+5eee4 8 192 139
+5eeec 4 342 101
+5eef0 4 992 95
+5eef4 8 342 101
+5eefc c 343 101
+5ef08 8 343 101
+5ef10 4 356 101
+5ef14 4 346 101
+5ef18 8 347 101
+5ef20 4 348 101
+5ef24 8 352 101
+5ef2c 4 146 103
+5ef30 4 73 139
+5ef34 4 71 139
+5ef38 4 249 137
+5ef3c 4 73 139
+5ef40 4 249 137
+5ef44 8 314 137
+5ef4c 8 249 137
+5ef54 c 146 103
+5ef60 4 342 101
+5ef64 4 244 139
+5ef68 c 342 101
+5ef74 4 346 101
+5ef78 10 347 101
+5ef88 8 348 101
+5ef90 c 352 101
+5ef9c 4 346 101
+5efa0 4 356 101
+5efa4 4 73 139
+5efa8 4 342 101
+5efac 4 314 137
+5efb0 4 73 139
+5efb4 8 249 137
+5efbc 4 314 137
+5efc0 4 348 101
+5efc4 4 249 137
+5efc8 4 73 139
+5efcc 8 249 137
+5efd4 8 249 137
+5efdc 4 139 103
+5efe0 8 192 139
+5efe8 4 70 139
+5efec 4 192 139
+5eff0 4 70 139
+5eff4 4 192 139
+5eff8 4 481 101
+5effc 8 342 101
+5f004 4 356 101
+5f008 4 346 101
+5f00c 4 348 101
+5f010 4 347 101
+5f014 4 348 101
+5f018 4 353 101
+5f01c 8 352 101
+5f024 4 71 139
+5f028 4 73 139
+5f02c 4 72 139
+5f030 4 73 139
+5f034 c 120 137
+5f040 4 249 139
+5f044 c 249 137
+5f050 c 304 139
+5f05c 4 70 139
+5f060 8 192 139
+5f068 4 70 139
+5f06c 10 192 139
+5f07c 4 481 101
+5f080 4 994 95
+5f084 4 192 139
+5f088 4 551 101
+5f08c 4 192 139
+5f090 8 994 95
+5f098 4 551 101
+5f09c 4 314 137
+5f0a0 4 551 101
+5f0a4 4 71 139
+5f0a8 4 73 139
+5f0ac 4 314 137
+5f0b0 8 73 139
+5f0b8 4 249 137
+5f0bc 8 249 137
+5f0c4 4 139 103
+5f0c8 4 139 103
+5f0cc c 249 137
+5f0d8 4 342 101
+5f0dc 4 244 139
+5f0e0 c 342 101
+5f0ec 4 346 101
+5f0f0 c 347 101
+5f0fc c 348 101
+5f108 c 352 101
+5f114 4 346 101
+5f118 4 356 101
+5f11c 8 73 139
+5f124 4 314 137
+5f128 4 73 139
+5f12c 8 249 137
+5f134 4 314 137
+5f138 8 249 137
+5f140 8 249 137
+5f148 4 139 103
+5f14c 18 192 139
+5f164 4 70 139
+5f168 4 551 101
+5f16c 4 70 139
+5f170 4 481 101
+5f174 8 551 101
+5f17c 4 71 139
+5f180 8 72 139
+5f188 c 73 139
+5f194 18 86 137
+5f1ac 8 86 137
+5f1b4 8 139 103
+5f1bc 8 139 103
+5f1c4 18 86 137
+5f1dc 4 249 139
+5f1e0 c 249 137
+5f1ec c 42 143
+5f1f8 8 997 95
+5f200 4 999 95
+5f204 c 997 95
+5f210 4 998 95
+5f214 8 997 95
+5f21c 8 998 95
+5f224 c 999 95
+5f230 4 1004 95
+5f234 c 192 139
+5f240 8 1002 95
+5f248 8 1003 95
+5f250 4 202 139
+5f254 4 1004 95
+5f258 8 1002 95
+5f260 c 1028 95
+5f26c 4 1002 95
+5f270 4 1029 95
+5f274 4 1024 95
+5f278 4 1023 95
+5f27c 4 1021 95
+5f280 c 192 139
+5f28c 14 1007 95
+5f2a0 c 192 139
+5f2ac 8 1008 95
+5f2b4 1c 1009 95
+5f2d0 10 1011 95
+5f2e0 8 1012 95
+5f2e8 c 1013 95
+5f2f4 4 1017 95
+5f2f8 4 1016 95
+5f2fc 4 1018 95
+5f300 10 1019 95
+5f310 8 1020 95
+5f318 c 1021 95
+5f324 10 1022 95
+5f334 8 1023 95
+5f33c c 1024 95
+5f348 8 1028 95
+5f350 8 1029 95
+5f358 c 1008 95
+5f364 10 1007 95
+5f374 c 67 139
+5f380 4 162 139
+5f384 4 481 101
+5f388 20 192 139
+5f3a8 c 1036 95
+5f3b4 8 380 139
+5f3bc 4 1037 95
+5f3c0 4 380 139
+5f3c4 8 1037 95
+5f3cc 4 380 139
+5f3d0 4 119 103
+5f3d4 4 119 103
+5f3d8 10 382 139
+5f3e8 20 162 139
+5f408 c 1039 95
+5f414 8 1040 95
+5f41c 4 1039 95
+5f420 10 1040 95
+5f430 8 324 98
+5f438 4 92 100
+5f43c 4 91 100
+5f440 4 92 100
+5f444 c 93 100
+5f450 c 191 103
+5f45c 10 42 143
+5f46c 4 87 139
+5f470 10 323 101
+5f480 c 191 103
+5f48c 10 304 139
+5f49c c 323 101
+5f4a8 24 1044 95
+FUNC 5f4d8 60 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::push_back
+5f4d8 10 376 139
+5f4e8 4 376 139
+5f4ec 10 380 139
+5f4fc 4 119 103
+5f500 8 119 103
+5f508 10 382 139
+5f518 14 162 139
+5f52c c 388 139
+FUNC 5f538 58 0 testing::internal::DefaultGlobalTestPartResultReporter::ReportTestPartResult
+5f538 c 672 95
+5f544 8 672 95
+5f54c 4 673 95
+5f550 4 4872 95
+5f554 4 4872 95
+5f558 c 4872 95
+5f564 8 173 143
+5f56c 8 3871 95
+5f574 4 674 95
+5f578 c 674 95
+5f584 c 675 95
+FUNC 5f590 244 0 std::priv::_Impl_vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> >::_M_insert_overflow_aux
+5f590 20 81 138
+5f5b0 8 192 139
+5f5b8 4 81 138
+5f5bc 4 192 139
+5f5c0 4 81 138
+5f5c4 4 192 139
+5f5c8 8 173 139
+5f5d0 c 81 138
+5f5dc 4 173 139
+5f5e0 4 81 138
+5f5e4 4 173 139
+5f5e8 14 41 138
+5f5fc 4 175 139
+5f600 10 176 139
+5f610 4 356 101
+5f614 8 346 101
+5f61c 4 177 139
+5f620 c 347 101
+5f62c 4 348 101
+5f630 4 352 101
+5f634 4 348 101
+5f638 4 352 101
+5f63c 4 91 138
+5f640 4 84 137
+5f644 10 86 137
+5f654 8 86 137
+5f65c 4 139 103
+5f660 1c 466 91
+5f67c 4 89 137
+5f680 14 86 137
+5f694 c 93 138
+5f6a0 4 119 103
+5f6a4 1c 466 91
+5f6c0 8 95 138
+5f6c8 8 314 137
+5f6d0 4 249 137
+5f6d4 4 466 91
+5f6d8 8 249 137
+5f6e0 4 139 103
+5f6e4 1c 466 91
+5f700 c 249 137
+5f70c 8 98 138
+5f714 c 86 137
+5f720 4 84 137
+5f724 8 86 137
+5f72c 8 86 137
+5f734 4 139 103
+5f738 1c 466 91
+5f754 4 89 137
+5f758 20 86 137
+5f778 8 191 103
+5f780 10 156 132
+5f790 c 662 139
+5f79c 4 319 101
+5f7a0 4 323 101
+5f7a4 4 104 138
+5f7a8 4 666 139
+5f7ac 4 667 139
+5f7b0 4 668 139
+5f7b4 20 105 138
+FUNC 5f7d4 98 0 testing::UnitTest::PushGTestTrace
+5f7d4 c 4263 95
+5f7e0 4 4263 95
+5f7e4 4 4264 95
+5f7e8 4 4263 95
+5f7ec 8 1963 87
+5f7f4 4 752 91
+5f7f8 8 2010 87
+5f800 8 380 139
+5f808 4 2010 87
+5f80c c 380 139
+5f818 4 119 103
+5f81c 1c 466 91
+5f838 10 382 139
+5f848 10 162 139
+5f858 8 4265 95
+5f860 c 4266 95
+FUNC 5f86c 88 0 testing::internal::ScopedTrace::ScopedTrace
+5f86c c 3769 95
+5f878 8 466 91
+5f880 4 3769 95
+5f884 4 466 91
+5f888 4 3769 95
+5f88c 4 466 91
+5f890 8 3769 95
+5f898 8 466 91
+5f8a0 4 3772 95
+5f8a4 8 3774 95
+5f8ac 4 3773 95
+5f8b0 4 3774 95
+5f8b4 4 3773 95
+5f8b8 4 3774 95
+5f8bc c 3774 95
+5f8c8 8 156 132
+5f8d0 4 3776 95
+5f8d4 8 3776 95
+5f8dc 8 156 132
+5f8e4 10 3777 95
+FUNC 5f8f4 148 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_fill_insert_aux
+5f8f4 18 140 138
+5f90c c 140 138
+5f918 4 416 139
+5f91c 8 140 138
+5f924 8 416 139
+5f92c 8 416 139
+5f934 8 150 138
+5f93c 8 152 138
+5f944 4 153 138
+5f948 4 120 137
+5f94c 4 153 138
+5f950 c 120 137
+5f95c 4 154 138
+5f960 4 255 100
+5f964 4 256 100
+5f968 8 154 138
+5f970 4 256 100
+5f974 c 256 100
+5f980 c 442 100
+5f98c 8 442 100
+5f994 10 443 100
+5f9a4 4 158 138
+5f9a8 4 249 137
+5f9ac 8 314 137
+5f9b4 8 249 137
+5f9bc c 249 137
+5f9c8 c 146 103
+5f9d4 4 158 138
+5f9d8 c 120 137
+5f9e4 14 160 138
+5f9f8 8 442 100
+5fa00 10 443 100
+5fa10 c 146 138
+5fa1c 8 147 138
+5fa24 18 163 138
+FUNC 5fa3c 1a4 0 testing::internal::UnitTestImpl::GetTestCase
+5fa3c 1c 4452 95
+5fa58 4 4456 95
+5fa5c c 4452 95
+5fa68 c 4456 95
+5fa74 8 4452 95
+5fa7c 4 4426 95
+5fa80 4 4452 95
+5fa84 4 4456 95
+5fa88 4 4422 95
+5fa8c c 4426 95
+5fa98 c 4422 95
+5faa4 18 217 99
+5fabc 18 156 132
+5fad4 10 4458 95
+5fae4 8 4459 95
+5faec 10 4463 95
+5fafc 14 4463 95
+5fb10 4 4463 95
+5fb14 10 4467 95
+5fb24 14 4466 95
+5fb38 c 156 132
+5fb44 4 4466 95
+5fb48 4 4472 95
+5fb4c 4 4474 95
+5fb50 8 4472 95
+5fb58 4 4474 95
+5fb5c 14 172 138
+5fb70 14 173 138
+5fb84 14 176 138
+5fb98 8 173 143
+5fba0 14 192 139
+5fbb4 4 173 143
+5fbb8 4 4480 95
+5fbbc 4 173 143
+5fbc0 4 4481 95
+5fbc4 1c 4482 95
+FUNC 5fbe0 16c 0 testing::internal::MakeAndRegisterTestInfo
+5fbe0 10 2508 95
+5fbf0 4 2511 95
+5fbf4 4 2511 95
+5fbf8 c 2508 95
+5fc04 8 2511 95
+5fc0c 4 2508 95
+5fc10 4 2511 95
+5fc14 10 2508 95
+5fc24 8 2508 95
+5fc2c 4 2511 95
+5fc30 10 2511 95
+5fc40 c 2511 95
+5fc4c 1c 2511 95
+5fc68 10 156 132
+5fc78 4 2512 95
+5fc7c 4 664 91
+5fc80 4 2512 95
+5fc84 c 664 91
+5fc90 8 665 91
+5fc98 c 74 84
+5fca4 8 156 132
+5fcac 10 666 91
+5fcbc 4 666 91
+5fcc0 4 333 122
+5fcc4 14 666 91
+5fcd8 24 333 122
+5fcfc 8 666 91
+5fd04 8 1144 87
+5fd0c 4 662 82
+5fd10 8 660 82
+5fd18 10 673 91
+5fd28 8 673 91
+5fd30 1c 2514 95
+FUNC 5fd4c dc 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::_M_insert
+5fd4c 4 350 135
+5fd50 4 358 135
+5fd54 c 350 135
+5fd60 c 350 135
+5fd6c 4 358 135
+5fd70 c 359 135
+5fd7c 4 360 135
+5fd80 4 361 135
+5fd84 8 362 135
+5fd8c 4 364 135
+5fd90 4 364 135
+5fd94 14 79 106
+5fda8 8 364 135
+5fdb0 8 367 135
+5fdb8 4 368 135
+5fdbc 4 367 135
+5fdc0 c 369 135
+5fdcc 8 370 135
+5fdd4 8 373 135
+5fddc 4 374 135
+5fde0 4 373 135
+5fde4 c 375 135
+5fdf0 4 376 135
+5fdf4 8 379 135
+5fdfc 4 378 135
+5fe00 4 379 135
+5fe04 4 380 135
+5fe08 4 382 135
+5fe0c 8 380 135
+5fe14 4 142 136
+5fe18 10 382 135
+FUNC 5fe28 fc 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::insert_unique
+5fe28 14 405 135
+5fe3c 4 405 135
+5fe40 4 406 135
+5fe44 4 405 135
+5fe48 4 407 135
+5fe4c 4 405 135
+5fe50 4 408 135
+5fe54 4 409 135
+5fe58 14 79 106
+5fe6c 8 412 135
+5fe74 8 412 135
+5fe7c 4 412 135
+5fe80 10 405 135
+5fe90 4 415 135
+5fe94 c 416 135
+5fea0 18 417 135
+5feb8 c 187 136
+5fec4 10 79 106
+5fed4 4 421 135
+5fed8 1c 422 135
+5fef4 8 142 136
+5fefc 8 62 124
+5ff04 4 142 136
+5ff08 4 62 124
+5ff0c 18 425 135
+FUNC 5ff24 2d4 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::insert_unique
+5ff24 18 432 135
+5ff3c 8 432 135
+5ff44 10 434 135
+5ff54 4 437 135
+5ff58 4 438 135
+5ff5c 4 437 135
+5ff60 4 143 106
+5ff64 14 79 106
+5ff78 8 440 135
+5ff80 14 79 106
+5ff94 8 447 135
+5ff9c c 297 135
+5ffa8 10 94 136
+5ffb8 8 301 135
+5ffc0 c 302 135
+5ffcc c 304 135
+5ffd8 c 309 135
+5ffe4 8 458 135
+5ffec 14 462 135
+60000 18 79 106
+60018 8 468 135
+60020 4 469 135
+60024 c 470 135
+60030 8 469 135
+60038 c 309 135
+60044 4 513 135
+60048 10 475 135
+60058 c 142 136
+60064 8 479 135
+6006c 4 480 135
+60070 14 79 106
+60084 8 480 135
+6008c 18 483 135
+600a4 c 486 135
+600b0 8 187 136
+600b8 4 143 106
+600bc 8 187 136
+600c4 14 79 106
+600d8 8 494 135
+600e0 10 79 106
+600f0 c 494 135
+600fc 10 500 135
+6010c 8 497 135
+60114 c 498 135
+60120 8 522 135
+60128 1c 524 135
+60144 14 79 106
+60158 4 517 135
+6015c 8 142 136
+60164 c 297 135
+60170 10 94 136
+60180 8 301 135
+60188 c 302 135
+60194 c 304 135
+601a0 c 517 135
+601ac 10 79 106
+601bc 8 517 135
+601c4 4 521 135
+601c8 14 522 135
+601dc 1c 534 135
+FUNC 601f8 c8 0 std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, long unsigned int> > >::operator[]<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+601f8 14 175 118
+6020c 8 175 118
+60214 8 568 136
+6021c 4 571 136
+60220 10 79 106
+60230 4 572 136
+60234 8 573 136
+6023c 14 575 136
+60250 4 178 118
+60254 4 571 136
+60258 4 178 118
+6025c 10 79 106
+6026c 4 178 118
+60270 14 62 124
+60284 10 191 118
+60294 4 142 136
+60298 4 191 118
+6029c 4 179 118
+602a0 8 156 132
+602a8 4 180 118
+602ac 14 181 118
+FUNC 602c0 1b4 0 testing::internal::edit_distance::CalculateOptimalEdits
+602c0 10 1067 95
+602d0 4 173 143
+602d4 4 1067 95
+602d8 4 192 139
+602dc 4 173 143
+602e0 4 67 139
+602e4 10 1067 95
+602f4 4 263 136
+602f8 8 1067 95
+60300 4 67 139
+60304 4 481 101
+60308 4 1071 95
+6030c 4 67 139
+60310 4 192 139
+60314 8 67 139
+6031c 4 481 101
+60320 4 173 143
+60324 4 481 101
+60328 4 263 136
+6032c 4 266 136
+60330 4 267 136
+60334 4 391 136
+60338 14 192 139
+6034c 8 1071 95
+60354 4 203 139
+60358 c 543 136
+60364 8 1053 95
+6036c 8 1053 95
+60374 10 1055 95
+60384 8 173 143
+6038c 4 1072 95
+60390 4 1071 95
+60394 8 173 143
+6039c 14 192 139
+603b0 4 173 143
+603b4 14 192 139
+603c8 8 1074 95
+603d0 4 203 139
+603d4 c 543 136
+603e0 8 1053 95
+603e8 8 1053 95
+603f0 10 1055 95
+60400 8 173 143
+60408 4 1075 95
+6040c 4 1074 95
+60410 8 173 143
+60418 8 531 136
+60420 c 532 136
+6042c 14 1078 95
+60440 10 304 139
+60450 24 1079 95
+FUNC 60474 554 0 testing::internal::edit_distance::CreateUnifiedDiff
+60474 30 1166 95
+604a4 8 1167 95
+604ac 10 1166 95
+604bc 4 1170 95
+604c0 4 1167 95
+604c4 8 1170 95
+604cc 4 1169 95
+604d0 4 1094 95
+604d4 4 1170 95
+604d8 4 1169 95
+604dc 4 333 122
+604e0 4 1169 95
+604e4 4 333 122
+604e8 4 306 101
+604ec 4 428 116
+604f0 4 333 122
+604f4 10 192 139
+60504 8 1171 95
+6050c 8 1173 95
+60514 4 1176 95
+60518 4 1174 95
+6051c 4 1173 95
+60520 4 1175 95
+60524 8 1173 95
+6052c 8 1094 95
+60534 4 212 116
+60538 14 1094 95
+6054c 4 1181 95
+60550 c 1094 95
+6055c 4 1181 95
+60560 4 1094 95
+60564 8 211 116
+6056c 4 212 116
+60570 8 211 116
+60578 4 212 116
+6057c 8 211 116
+60584 4 212 116
+60588 3c 1182 95
+605c4 8 428 116
+605cc 4 1182 95
+605d0 4 428 116
+605d4 c 192 139
+605e0 8 1189 95
+605e8 10 1190 95
+605f8 4 1192 95
+605fc 8 1193 95
+60604 c 1124 95
+60610 8 1193 95
+60618 8 1193 95
+60620 18 1194 95
+60638 4 1202 95
+6063c 4 1200 95
+60640 c 1202 95
+6064c c 1204 95
+60658 8 1204 95
+60660 20 1205 95
+60680 30 1097 95
+606b0 10 1104 95
+606c0 8 306 101
+606c8 c 307 101
+606d4 8 119 103
+606dc 10 68 124
+606ec 4 427 116
+606f0 4 429 116
+606f4 4 428 116
+606f8 4 430 116
+606fc 8 431 116
+60704 10 1108 95
+60714 8 306 101
+6071c c 307 101
+60728 8 119 103
+60730 10 68 124
+60740 4 427 116
+60744 4 429 116
+60748 4 428 116
+6074c 4 430 116
+60750 4 431 116
+60754 20 1207 95
+60774 10 1108 95
+60784 8 306 101
+6078c 8 307 101
+60794 8 119 103
+6079c 10 68 124
+607ac 4 427 116
+607b0 4 429 116
+607b4 4 428 116
+607b8 4 430 116
+607bc 4 431 116
+607c0 4 1212 95
+607c4 4 1189 95
+607c8 4 1212 95
+607cc 10 1213 95
+607dc 8 1124 95
+607e4 10 333 122
+607f4 8 1138 95
+607fc 10 333 122
+6080c 10 263 121
+6081c c 333 122
+60828 4 1139 95
+6082c 4 263 121
+60830 4 1139 95
+60834 8 263 121
+6083c 8 1141 95
+60844 8 1141 95
+6084c 10 333 122
+6085c 8 1144 95
+60864 14 333 122
+60878 10 263 121
+60888 c 333 122
+60894 4 1145 95
+60898 4 263 121
+6089c 4 1145 95
+608a0 8 263 121
+608a8 10 333 122
+608b8 8 208 116
+608c0 8 600 116
+608c8 8 602 116
+608d0 4 208 116
+608d4 8 600 116
+608dc c 602 116
+608e8 c 305 122
+608f4 10 333 122
+60904 8 1117 95
+6090c 8 305 122
+60914 8 1120 95
+6091c 4 305 122
+60920 1c 333 122
+6093c 8 91 116
+60944 34 205 116
+60978 c 75 127
+60984 8 1170 95
+6098c 8 42 143
+60994 34 1224 95
+FUNC 609c8 54 0 std::priv::_String_base<char, std::allocator<char> >::_M_move_src
+609c8 4 64 132
+609cc 8 129 132
+609d4 10 130 132
+609e4 8 131 132
+609ec 4 132 132
+609f0 10 131 132
+60a00 4 135 132
+60a04 8 136 132
+60a0c 8 137 132
+60a14 4 138 132
+60a18 4 140 132
+FUNC 60a1c d4 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_erase
+60a1c 18 588 139
+60a34 10 588 139
+60a44 4 591 139
+60a48 4 589 139
+60a4c 10 591 139
+60a5c 8 156 132
+60a64 4 486 101
+60a68 4 147 132
+60a6c 4 486 101
+60a70 4 147 132
+60a74 8 591 139
+60a7c 8 147 132
+60a84 c 595 139
+60a90 4 156 132
+60a94 4 191 103
+60a98 4 156 132
+60a9c c 191 103
+60aa8 4 160 103
+60aac 4 486 101
+60ab0 4 147 132
+60ab4 4 486 101
+60ab8 8 147 132
+60ac0 8 602 139
+60ac8 8 602 139
+60ad0 4 608 139
+60ad4 1c 610 139
+FUNC 60af0 224 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_insert_overflow_aux
+60af0 24 81 138
+60b14 4 81 138
+60b18 8 192 139
+60b20 8 81 138
+60b28 10 192 139
+60b38 14 173 139
+60b4c 10 41 138
+60b5c c 176 139
+60b68 4 175 139
+60b6c 10 176 139
+60b7c 4 356 101
+60b80 8 346 101
+60b88 8 177 139
+60b90 10 347 101
+60ba0 4 348 101
+60ba4 4 352 101
+60ba8 4 348 101
+60bac 4 352 101
+60bb0 4 91 138
+60bb4 18 428 137
+60bcc 8 428 137
+60bd4 4 160 103
+60bd8 4 486 101
+60bdc 4 147 132
+60be0 4 486 101
+60be4 10 147 132
+60bf4 8 430 137
+60bfc 14 428 137
+60c10 c 93 138
+60c1c 4 119 103
+60c20 c 119 103
+60c2c 8 95 138
+60c34 4 314 137
+60c38 4 249 137
+60c3c 4 314 137
+60c40 8 249 137
+60c48 8 249 137
+60c50 4 139 103
+60c54 c 139 103
+60c60 c 249 137
+60c6c 4 98 138
+60c70 1c 428 137
+60c8c 8 428 137
+60c94 4 160 103
+60c98 4 486 101
+60c9c 4 147 132
+60ca0 4 486 101
+60ca4 8 147 132
+60cac 8 430 137
+60cb4 1c 428 137
+60cd0 8 662 139
+60cd8 4 319 101
+60cdc 4 323 101
+60ce0 4 104 138
+60ce4 4 666 139
+60ce8 4 667 139
+60cec 8 104 138
+60cf4 4 668 139
+60cf8 1c 105 138
+FUNC 60d14 b4 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back
+60d14 14 376 139
+60d28 4 376 139
+60d2c 10 380 139
+60d3c 4 119 103
+60d40 8 119 103
+60d48 10 382 139
+60d58 8 416 139
+60d60 10 416 139
+60d70 8 150 139
+60d78 1c 151 139
+60d94 c 156 132
+60da0 18 154 139
+60db8 10 388 139
+FUNC 60dc8 128 0 testing::internal::::SplitEscapedString
+60dc8 4 1233 95
+60dcc 4 1235 95
+60dd0 14 1233 95
+60de4 4 1233 95
+60de8 4 67 139
+60dec 4 1233 95
+60df0 4 67 139
+60df4 8 481 101
+60dfc 8 400 131
+60e04 8 1236 95
+60e0c c 1236 95
+60e18 8 1236 95
+60e20 10 1238 95
+60e30 4 1241 95
+60e34 4 1240 95
+60e38 8 1023 131
+60e40 10 1241 95
+60e50 4 1244 95
+60e54 4 1242 95
+60e58 4 1244 95
+60e5c 4 1243 95
+60e60 8 1244 95
+60e68 14 1023 131
+60e7c c 173 143
+60e88 10 156 132
+60e98 8 1249 95
+60ea0 8 1243 95
+60ea8 18 1023 131
+60ec0 c 173 143
+60ecc 8 156 132
+60ed4 1c 1254 95
+FUNC 60ef0 22c 0 testing::internal::EqFailure
+60ef0 c 1277 95
+60efc 4 1278 95
+60f00 4 1277 95
+60f04 4 1278 95
+60f08 18 1277 95
+60f20 8 1277 95
+60f28 4 1278 95
+60f2c 14 333 122
+60f40 c 1279 95
+60f4c 10 476 134
+60f5c 4 1280 95
+60f60 14 333 122
+60f74 10 131 79
+60f84 14 333 122
+60f98 c 1284 95
+60fa4 4 1285 95
+60fa8 14 333 122
+60fbc 10 476 134
+60fcc 4 1288 95
+60fd0 14 333 122
+60fe4 10 131 79
+60ff4 14 1292 95
+61008 10 1292 95
+61018 c 1294 95
+61024 4 1296 95
+61028 4 1294 95
+6102c c 1296 95
+61038 1c 192 139
+61054 8 1297 95
+6105c 14 192 139
+61070 8 1297 95
+61078 14 42 143
+6108c 14 333 122
+610a0 14 1299 95
+610b4 10 131 79
+610c4 c 156 132
+610d0 8 1303 95
+610d8 4 277 82
+610dc 4 1139 87
+610e0 8 1303 95
+610e8 8 1303 95
+610f0 8 256 82
+610f8 8 85 79
+61100 1c 1304 95
+FUNC 6111c b0 0 testing::internal::CmpHelperSTREQ
+6111c 14 1451 95
+61130 8 1452 95
+61138 8 1451 95
+61140 c 1451 95
+6114c c 1452 95
+61158 4 277 82
+6115c 4 1139 87
+61160 8 277 82
+61168 c 1460 95
+61174 4 1460 95
+61178 4 1460 95
+6117c c 1460 95
+61188 1c 1460 95
+611a4 10 156 132
+611b4 18 1461 95
+FUNC 611cc f4 0 testing::InitGoogleTest
+611cc 4 5248 95
+611d0 8 5281 95
+611d8 4 5248 95
+611dc 4 5281 95
+611e0 8 5248 95
+611e8 8 5281 95
+611f0 8 5251 95
+611f8 c 5253 95
+61204 18 5255 95
+6121c 10 5255 95
+6122c 1c 156 132
+61248 8 630 139
+61250 c 632 139
+6125c 4 5281 95
+61260 c 5260 95
+6126c 8 5261 95
+61274 8 5260 95
+6127c 4 5261 95
+61280 c 173 143
+6128c c 156 132
+61298 c 5236 95
+612a4 4 5267 95
+612a8 4 5267 95
+612ac 14 5283 95
+FUNC 612c0 4 0 testing::internal::DefaultDeathTestFactory::~DefaultDeathTestFactory
+612c0 4 148 83
+FUNC 612c4 4 0 testing::internal::DefaultDeathTestFactory::~DefaultDeathTestFactory
+612c4 4 148 83
+FUNC 612c8 1c 0 testing::internal::AlwaysFalse
+612c8 8 692 85
+612d0 14 692 85
+FUNC 612e4 80 0 testing::internal::DeathTestAbort
+612e4 c 251 89
+612f0 4 251 89
+612f4 4 937 91
+612f8 8 1144 87
+61300 4 257 89
+61304 14 2304 87
+61318 c 259 89
+61324 c 260 89
+61330 8 261 89
+61338 8 262 89
+61340 18 264 89
+61358 8 265 89
+61360 4 2340 87
+FUNC 61364 50 0 testing::internal::GetLastErrnoDescription
+61364 c 304 89
+61370 4 304 89
+61374 c 305 89
+61380 4 305 89
+61384 c 2315 87
+61390 8 305 89
+61398 c 305 89
+613a4 10 306 89
+FUNC 613b4 54 0 testing::internal::DeathTest::DeathTest
+613b4 10 335 89
+613c4 8 335 89
+613cc 4 937 91
+613d0 4 743 91
+613d4 8 337 89
+613dc 18 339 89
+613f4 8 339 89
+613fc c 341 89
+FUNC 61408 60 0 testing::internal::ForkingDeathTest::ForkingDeathTest
+61408 c 792 89
+61414 c 792 89
+61420 10 371 89
+61430 4 794 89
+61434 4 371 89
+61438 4 794 89
+6143c 18 371 89
+61454 14 794 89
+FUNC 61468 e8 0 testing::internal::ParseNaturalNumber<int>
+61468 10 976 91
+61478 8 981 91
+61480 c 980 91
+6148c 8 2188 87
+61494 10 980 91
+614a4 c 983 91
+614b0 14 998 91
+614c4 c 1002 91
+614d0 c 1002 91
+614dc 10 1006 91
+614ec 1c 1006 91
+61508 14 333 122
+6151c 8 1006 91
+61524 4 1009 91
+61528 8 1009 91
+61530 8 1010 91
+61538 4 1013 91
+6153c 14 1014 91
+FUNC 61550 c8 0 testing::internal::DeathTest::set_last_death_test_message
+61550 c 355 89
+6155c 8 348 131
+61564 4 355 89
+61568 10 348 131
+61578 8 400 131
+61580 4 243 130
+61584 4 400 131
+61588 8 244 130
+61590 4 168 140
+61594 10 168 140
+615a4 c 246 130
+615b0 8 803 131
+615b8 4 168 140
+615bc 4 806 131
+615c0 4 168 140
+615c4 10 806 131
+615d4 4 168 140
+615d8 8 168 140
+615e0 4 250 130
+615e4 4 357 89
+615e8 c 400 131
+615f4 8 250 130
+615fc 8 357 89
+61604 4 250 130
+61608 10 357 89
+FUNC 61618 104 0 testing::internal::FormatDeathTestOutput
+61618 4 493 89
+6161c 4 124 132
+61620 18 493 89
+61638 4 493 89
+6163c 4 120 132
+61640 4 124 132
+61644 4 481 101
+61648 8 530 131
+61650 4 124 132
+61654 8 495 89
+6165c 10 530 131
+6166c 4 101 103
+61670 14 496 89
+61684 10 530 131
+61694 10 498 89
+616a4 14 1023 131
+616b8 4 503 89
+616bc 4 1023 131
+616c0 c 451 131
+616cc 8 156 132
+616d4 4 504 89
+616d8 14 1023 131
+616ec c 451 131
+616f8 8 156 132
+61700 1c 506 89
+FUNC 6171c 348 0 testing::internal::DeathTestImpl::Passed
+6171c c 530 89
+61728 4 534 89
+6172c 4 530 89
+61730 4 534 89
+61734 8 530 89
+6173c 8 530 89
+61744 4 537 89
+61748 4 534 89
+6174c 8 537 89
+61754 20 333 122
+61774 4 150 79
+61778 24 333 122
+6179c 28 540 89
+617c4 3c 333 122
+61800 c 547 89
+6180c 14 131 79
+61820 14 333 122
+61834 4 554 89
+61838 4 555 89
+6183c 4 557 89
+61840 c 555 89
+6184c 4 556 89
+61850 38 333 122
+61888 4 150 79
+6188c 3c 333 122
+618c8 4 183 89
+618cc 20 333 122
+618ec 8 183 89
+618f4 8 191 89
+618fc 14 333 122
+61910 10 131 79
+61920 10 193 89
+61930 4 131 79
+61934 10 333 122
+61944 4 131 79
+61948 c 131 79
+61954 4 197 89
+61958 14 333 122
+6196c c 203 89
+61978 8 85 79
+61980 10 131 79
+61990 24 333 122
+619b4 c 566 89
+619c0 10 131 79
+619d0 14 156 132
+619e4 18 571 89
+619fc 14 333 122
+61a10 8 571 89
+61a18 4 536 89
+61a1c c 575 89
+61a28 8 575 89
+61a30 8 156 132
+61a38 8 85 79
+61a40 8 156 132
+61a48 1c 577 89
+FUNC 61a64 18 0 testing::internal::DeathTestImpl::Passed
+61a64 4 531 89
+61a68 4 530 89
+61a6c 8 531 89
+61a74 8 577 89
+FUNC 61a7c 3c0 0 testing::internal::DeathTestImpl::ReadAndInterpretStatusByte
+61a7c 18 425 89
+61a94 4 425 89
+61a98 14 2309 87
+61aac 4 435 89
+61ab0 4 2309 87
+61ab4 4 435 89
+61ab8 4 435 89
+61abc 10 435 89
+61acc 8 439 89
+61ad4 8 459 89
+61adc 4 333 122
+61ae0 10 459 89
+61af0 4 460 89
+61af4 4 459 89
+61af8 14 333 122
+61b0c 8 460 89
+61b14 c 460 89
+61b20 8 156 132
+61b28 8 459 89
+61b30 8 2314 87
+61b38 8 462 89
+61b40 4 462 89
+61b44 c 462 89
+61b50 14 462 89
+61b64 4 462 89
+61b68 4 462 89
+61b6c 10 462 89
+61b7c 4 462 89
+61b80 4 462 89
+61b84 10 462 89
+61b94 4 462 89
+61b98 4 462 89
+61b9c 10 462 89
+61bac 10 462 89
+61bbc c 462 89
+61bc8 4 462 89
+61bcc 4 462 89
+61bd0 10 462 89
+61be0 4 462 89
+61be4 4 462 89
+61be8 10 462 89
+61bf8 4 462 89
+61bfc 4 462 89
+61c00 14 462 89
+61c14 8 462 89
+61c1c 8 462 89
+61c24 4 462 89
+61c28 8 388 89
+61c30 18 464 89
+61c48 4 437 89
+61c4c 8 386 89
+61c54 28 440 89
+61c7c 1c 386 89
+61c98 4 313 89
+61c9c 4 2309 87
+61ca0 c 313 89
+61cac 10 2309 87
+61cbc 8 318 89
+61cc4 4 319 89
+61cc8 4 333 122
+61ccc 4 131 79
+61cd0 c 333 122
+61cdc 8 322 89
+61ce4 4 322 89
+61ce8 c 322 89
+61cf4 4 327 89
+61cf8 8 328 89
+61d00 4 333 122
+61d04 8 328 89
+61d0c 4 327 89
+61d10 8 328 89
+61d18 4 329 89
+61d1c 4 328 89
+61d20 14 333 122
+61d34 8 329 89
+61d3c 10 329 89
+61d4c c 333 122
+61d58 c 329 89
+61d64 c 333 122
+61d70 8 156 132
+61d78 8 328 89
+61d80 c 85 79
+61d8c 8 454 89
+61d94 4 333 122
+61d98 14 454 89
+61dac 24 333 122
+61dd0 c 254 121
+61ddc 10 333 122
+61dec 4 324 89
+61df0 18 325 89
+61e08 4 325 89
+61e0c 4 325 89
+61e10 c 325 89
+61e1c 10 325 89
+61e2c 8 156 132
+61e34 8 325 89
+FUNC 61e3c 13c 0 testing::internal::DeathTestImpl::Abort
+61e3c 4 470 89
+61e40 4 476 89
+61e44 4 476 89
+61e48 8 470 89
+61e50 4 470 89
+61e54 4 476 89
+61e58 10 476 89
+61e68 8 476 89
+61e70 10 2312 87
+61e80 8 478 89
+61e88 4 478 89
+61e8c c 478 89
+61e98 14 478 89
+61eac 4 478 89
+61eb0 4 478 89
+61eb4 10 478 89
+61ec4 4 478 89
+61ec8 4 478 89
+61ecc 10 478 89
+61edc 4 478 89
+61ee0 4 478 89
+61ee4 10 478 89
+61ef4 10 478 89
+61f04 c 478 89
+61f10 4 478 89
+61f14 4 478 89
+61f18 10 478 89
+61f28 4 478 89
+61f2c 4 478 89
+61f30 10 478 89
+61f40 4 478 89
+61f44 4 478 89
+61f48 14 478 89
+61f5c 8 478 89
+61f64 8 478 89
+61f6c 4 478 89
+61f70 8 487 89
+FUNC 61f78 74 0 testing::internal::ForkingDeathTest::Wait
+61f78 4 799 89
+61f7c 4 801 89
+61f80 8 799 89
+61f88 4 799 89
+61f8c 8 800 89
+61f94 4 806 89
+61f98 4 803 89
+61f9c 18 806 89
+61fb4 4 806 89
+61fb8 10 806 89
+61fc8 8 806 89
+61fd0 4 806 89
+61fd4 4 807 89
+61fd8 4 384 89
+61fdc 10 809 89
+FUNC 61fec 51c 0 testing::internal::NoExecDeathTest::AssumeRole
+61fec 14 822 89
+62000 4 822 89
+62004 4 823 89
+62008 4 824 89
+6200c 4 823 89
+62010 4 824 89
+62014 18 825 89
+6202c 4 218 89
+62030 4 825 89
+62034 8 218 89
+6203c 58 333 122
+62094 4 221 89
+62098 18 333 122
+620b0 10 263 121
+620c0 14 333 122
+620d4 10 225 89
+620e4 8 85 79
+620ec 10 825 89
+620fc 8 156 132
+62104 8 825 89
+6210c 20 829 89
+6212c 14 829 89
+62140 4 829 89
+62144 4 829 89
+62148 10 829 89
+62158 4 829 89
+6215c 4 829 89
+62160 10 829 89
+62170 4 829 89
+62174 4 829 89
+62178 10 829 89
+62188 10 829 89
+62198 c 829 89
+621a4 4 829 89
+621a8 4 829 89
+621ac 10 829 89
+621bc 4 829 89
+621c0 4 829 89
+621c4 14 829 89
+621d8 8 829 89
+621e0 4 829 89
+621e4 1c 831 89
+62200 8 831 89
+62208 8 156 132
+62210 4 832 89
+62214 8 1294 87
+6221c 8 842 89
+62224 14 843 89
+62238 14 843 89
+6224c 4 843 89
+62250 4 843 89
+62254 10 843 89
+62264 4 843 89
+62268 4 843 89
+6226c 10 843 89
+6227c 4 843 89
+62280 4 843 89
+62284 10 843 89
+62294 10 843 89
+622a4 10 843 89
+622b4 14 843 89
+622c8 14 843 89
+622dc 8 843 89
+622e4 8 843 89
+622ec 4 843 89
+622f0 4 784 89
+622f4 4 845 89
+622f8 10 846 89
+62308 4 846 89
+6230c c 846 89
+62318 14 846 89
+6232c 4 846 89
+62330 4 846 89
+62334 10 846 89
+62344 4 846 89
+62348 4 846 89
+6234c 10 846 89
+6235c 4 846 89
+62360 4 846 89
+62364 10 846 89
+62374 10 846 89
+62384 c 846 89
+62390 4 846 89
+62394 4 846 89
+62398 14 846 89
+623ac 14 846 89
+623c0 8 846 89
+623c8 4 846 89
+623cc 8 390 89
+623d4 4 937 91
+623d8 4 599 91
+623dc 8 854 89
+623e4 c 855 89
+623f0 8 856 89
+623f8 10 858 89
+62408 4 858 89
+6240c c 858 89
+62418 14 858 89
+6242c 4 858 89
+62430 4 858 89
+62434 10 858 89
+62444 4 858 89
+62448 4 858 89
+6244c 10 858 89
+6245c 4 858 89
+62460 4 858 89
+62464 10 858 89
+62474 10 858 89
+62484 c 858 89
+62490 4 858 89
+62494 4 858 89
+62498 14 858 89
+624ac 14 858 89
+624c0 14 858 89
+624d4 8 858 89
+624dc 4 858 89
+624e0 8 388 89
+624e8 8 382 89
+624f0 4 861 89
+624f4 14 863 89
+FUNC 62508 c0 0 testing::internal::DeathTestImpl::~DeathTestImpl
+62508 4 374 89
+6250c 4 374 89
+62510 8 374 89
+62518 10 374 89
+62528 4 374 89
+6252c 4 374 89
+62530 10 374 89
+62540 4 374 89
+62544 4 374 89
+62548 10 374 89
+62558 4 374 89
+6255c 4 374 89
+62560 10 374 89
+62570 10 374 89
+62580 c 374 89
+6258c 4 374 89
+62590 4 374 89
+62594 10 374 89
+625a4 4 374 89
+625a8 4 374 89
+625ac 14 374 89
+625c0 8 374 89
+FUNC 625c8 50 0 testing::internal::DeathTestImpl::~DeathTestImpl
+625c8 10 374 89
+625d8 c 374 89
+625e4 1c 374 89
+62600 8 374 89
+62608 4 374 89
+6260c c 374 89
+FUNC 62618 24 0 testing::internal::DeathTestImpl::~DeathTestImpl
+62618 c 374 89
+62624 8 374 89
+6262c 4 374 89
+62630 8 374 89
+62638 4 374 89
+FUNC 6263c 10 0 testing::internal::ExecDeathTest::~ExecDeathTest
+6263c 10 776 89
+FUNC 6264c 24 0 testing::internal::ExecDeathTest::~ExecDeathTest
+6264c c 868 89
+62658 8 868 89
+62660 4 868 89
+62664 8 868 89
+6266c 4 868 89
+FUNC 62670 10 0 testing::internal::NoExecDeathTest::~NoExecDeathTest
+62670 10 776 89
+FUNC 62680 24 0 testing::internal::NoExecDeathTest::~NoExecDeathTest
+62680 c 813 89
+6268c 8 813 89
+62694 4 813 89
+62698 8 813 89
+626a0 4 813 89
+FUNC 626a4 24c 0 testing::internal::DefaultDeathTestFactory::Create
+626a4 18 1157 89
+626bc 14 1157 89
+626d0 4 937 91
+626d4 4 1279 82
+626d8 4 1144 87
+626dc 4 743 91
+626e0 c 609 82
+626ec 8 1162 89
+626f4 8 1164 89
+626fc 8 1165 89
+62704 4 1167 89
+62708 4 1167 89
+6270c 4 1167 89
+62710 4 1168 89
+62714 4 1169 89
+62718 4 1169 89
+6271c 4 1167 89
+62720 14 1167 89
+62734 14 1168 89
+62748 8 1169 89
+62750 4 1169 89
+62754 4 1169 89
+62758 8 1169 89
+62760 10 1169 89
+62770 14 1169 89
+62784 8 1169 89
+6278c 2c 156 132
+627b8 4 1170 89
+627bc 4 156 132
+627c0 4 1170 89
+627c4 10 1173 89
+627d4 4 1174 89
+627d8 4 1173 89
+627dc 10 1174 89
+627ec 20 1189 89
+6280c c 1190 89
+62818 24 872 89
+6283c 18 1191 89
+62854 c 1192 89
+62860 18 816 89
+62878 8 1192 89
+62880 14 1199 89
+62894 4 1200 89
+62898 4 1199 89
+6289c 14 1200 89
+628b0 8 1200 89
+628b8 10 156 132
+628c8 4 1201 89
+628cc 4 1175 89
+628d0 4 1176 89
+628d4 1c 1205 89
+FUNC 628f0 4c 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_fill_insert
+628f0 c 166 138
+628fc 4 171 138
+62900 18 172 138
+62918 c 173 138
+62924 10 176 138
+62934 8 179 138
+FUNC 6293c 44 0 testing::internal::Arguments::AddArgument
+6293c c 899 89
+62948 4 899 89
+6294c 4 900 89
+62950 4 2276 87
+62954 4 900 89
+62958 4 2276 87
+6295c 4 900 89
+62960 8 225 138
+62968 4 900 89
+6296c 8 225 138
+62974 c 901 89
+FUNC 62980 c0c 0 testing::internal::ExecDeathTest::AssumeRole
+62980 34 1102 89
+629b4 4 937 91
+629b8 4 1279 82
+629bc 4 1144 87
+629c0 8 744 91
+629c8 18 1107 89
+629e0 4 1109 89
+629e4 c 1115 89
+629f0 c 390 89
+629fc 8 1111 89
+62a04 8 1115 89
+62a0c 4 1115 89
+62a10 1c 1115 89
+62a2c 14 1115 89
+62a40 4 1115 89
+62a44 4 1115 89
+62a48 10 1115 89
+62a58 4 1115 89
+62a5c 4 1115 89
+62a60 10 1115 89
+62a70 4 1115 89
+62a74 4 1115 89
+62a78 10 1115 89
+62a88 10 1115 89
+62a98 c 1115 89
+62aa4 4 1115 89
+62aa8 4 1115 89
+62aac 10 1115 89
+62abc 4 1115 89
+62ac0 4 1115 89
+62ac4 14 1115 89
+62ad8 8 1118 89
+62ae0 4 1118 89
+62ae4 28 1118 89
+62b0c 14 1118 89
+62b20 4 1118 89
+62b24 4 1118 89
+62b28 10 1118 89
+62b38 4 1118 89
+62b3c 4 1118 89
+62b40 10 1118 89
+62b50 4 1118 89
+62b54 4 1118 89
+62b58 10 1118 89
+62b68 10 1118 89
+62b78 c 1118 89
+62b84 4 1118 89
+62b88 4 1118 89
+62b8c 10 1118 89
+62b9c 4 1118 89
+62ba0 4 1118 89
+62ba4 14 1118 89
+62bb8 8 1118 89
+62bc0 1c 1121 89
+62bdc c 1121 89
+62be8 4 1121 89
+62bec 4 1121 89
+62bf0 c 1121 89
+62bfc c 1121 89
+62c08 4 1121 89
+62c0c 4 1122 89
+62c10 10 1121 89
+62c20 4 1122 89
+62c24 4 1121 89
+62c28 10 1121 89
+62c38 14 1122 89
+62c4c 14 1122 89
+62c60 1c 1122 89
+62c7c 30 156 132
+62cac c 1124 89
+62cb8 4 1124 89
+62cbc 8 1124 89
+62cc4 c 1124 89
+62cd0 4 1124 89
+62cd4 4 1124 89
+62cd8 14 1124 89
+62cec c 1124 89
+62cf8 4 1125 89
+62cfc c 1124 89
+62d08 1c 1125 89
+62d24 1c 1125 89
+62d40 10 1125 89
+62d50 10 1125 89
+62d60 14 1125 89
+62d74 c 1126 89
+62d80 10 1126 89
+62d90 14 1126 89
+62da4 10 1127 89
+62db4 18 1127 89
+62dcc 68 156 132
+62e34 4 67 139
+62e38 18 386 139
+62e50 4 67 139
+62e54 4 481 101
+62e58 4 890 89
+62e5c 4 386 139
+62e60 8 877 89
+62e68 c 192 139
+62e74 4 70 139
+62e78 4 192 139
+62e7c 4 70 139
+62e80 4 192 139
+62e84 4 481 101
+62e88 8 192 139
+62e90 10 342 101
+62ea0 c 343 101
+62eac 4 343 101
+62eb0 4 356 101
+62eb4 4 346 101
+62eb8 4 347 101
+62ebc 10 348 101
+62ecc 10 352 101
+62edc 4 73 139
+62ee0 4 71 139
+62ee4 4 72 139
+62ee8 4 84 137
+62eec c 73 139
+62ef8 18 86 137
+62f10 8 86 137
+62f18 4 139 103
+62f1c 34 139 103
+62f50 4 88 137
+62f54 4 89 137
+62f58 1c 86 137
+62f74 4 249 139
+62f78 c 905 89
+62f84 4 908 89
+62f88 4 2276 87
+62f8c 4 908 89
+62f90 4 2276 87
+62f94 4 908 89
+62f98 4 2276 87
+62f9c 4 908 89
+62fa0 14 225 138
+62fb4 c 905 89
+62fc0 8 42 143
+62fc8 10 1130 89
+62fd8 10 1131 89
+62fe8 14 1133 89
+62ffc 8 1133 89
+63004 8 156 132
+6300c 4 1135 89
+63010 10 1294 87
+63020 c 1140 89
+6302c c 1045 89
+63038 4 1046 89
+6303c c 1047 89
+63048 18 1048 89
+63060 4 1048 89
+63064 c 1048 89
+63070 14 1048 89
+63084 14 1048 89
+63098 14 1048 89
+630ac 4 1048 89
+630b0 4 1048 89
+630b4 4 1048 89
+630b8 8 1048 89
+630c0 10 1048 89
+630d0 14 1048 89
+630e4 14 1048 89
+630f8 8 1048 89
+63100 4 1048 89
+63104 c 1084 89
+63110 10 946 89
+63120 4 946 89
+63124 c 946 89
+63130 14 946 89
+63144 14 946 89
+63158 14 946 89
+6316c 4 946 89
+63170 4 946 89
+63174 4 946 89
+63178 8 946 89
+63180 10 946 89
+63190 14 946 89
+631a4 14 946 89
+631b8 8 946 89
+631c0 4 946 89
+631c4 4 952 89
+631c8 8 952 89
+631d0 8 954 89
+631d8 14 955 89
+631ec 10 955 89
+631fc 14 955 89
+63210 8 955 89
+63218 10 955 89
+63228 4 937 89
+6322c 8 965 89
+63234 4 937 89
+63238 c 965 89
+63244 14 966 89
+63258 14 966 89
+6326c 14 966 89
+63280 10 966 89
+63290 14 967 89
+632a4 8 967 89
+632ac 14 967 89
+632c0 8 1090 89
+632c8 4 1090 89
+632cc 18 1090 89
+632e4 4 1090 89
+632e8 c 1090 89
+632f4 14 1090 89
+63308 14 1090 89
+6331c 14 1090 89
+63330 4 1090 89
+63334 4 1090 89
+63338 4 1090 89
+6333c 8 1090 89
+63344 10 1090 89
+63354 14 1090 89
+63368 14 1090 89
+6337c 8 1094 89
+63384 4 1094 89
+63388 18 1094 89
+633a0 14 1094 89
+633b4 14 1094 89
+633c8 14 1094 89
+633dc 4 1094 89
+633e0 4 1094 89
+633e4 4 1094 89
+633e8 8 1094 89
+633f0 10 1094 89
+63400 14 1094 89
+63414 14 1094 89
+63428 14 1141 89
+6343c 4 1141 89
+63440 c 1141 89
+6344c 14 1141 89
+63460 14 1141 89
+63474 14 1141 89
+63488 8 1141 89
+63490 4 1141 89
+63494 4 1141 89
+63498 8 1141 89
+634a0 10 1141 89
+634b0 14 1141 89
+634c4 14 1141 89
+634d8 14 1141 89
+634ec 8 1141 89
+634f4 4 1141 89
+634f8 8 784 89
+63500 4 388 89
+63504 4 784 89
+63508 c 388 89
+63514 8 382 89
+6351c c 894 89
+63528 c 896 89
+63534 8 87 139
+6353c 4 88 139
+63540 8 323 101
+63548 10 156 132
+63558 4 1145 89
+6355c 30 1146 89
+FUNC 6358c 234 0 testing::internal::ParseInternalRunDeathTestFlag
+6358c 4 1298 89
+63590 4 1299 89
+63594 8 1298 89
+6359c c 1299 89
+635a8 4 1298 89
+635ac 8 1299 89
+635b4 8 1298 89
+635bc c 1299 89
+635c8 4 1303 89
+635cc 8 1306 89
+635d4 4 1303 89
+635d8 4 1304 89
+635dc 8 1306 89
+635e4 8 67 139
+635ec 4 1213 89
+635f0 8 481 101
+635f8 8 1306 89
+63600 c 67 139
+6360c 4 481 101
+63610 c 1214 89
+6361c 14 1215 89
+63630 4 1216 89
+63634 c 1023 131
+63640 4 1216 89
+63644 c 1023 131
+63650 c 173 143
+6365c c 156 132
+63668 8 1023 131
+63670 4 1221 89
+63674 4 1023 131
+63678 c 173 143
+63684 c 156 132
+63690 4 91 100
+63694 8 92 100
+6369c 4 93 100
+636a0 4 92 100
+636a4 4 91 100
+636a8 4 93 100
+636ac 4 92 100
+636b0 4 91 100
+636b4 4 92 100
+636b8 4 93 100
+636bc 4 42 143
+636c0 4 92 100
+636c4 4 42 143
+636c8 8 156 132
+636d0 4 1307 89
+636d4 4 192 139
+636d8 4 1307 89
+636dc 14 192 139
+636f0 8 1332 89
+636f8 10 1330 89
+63708 4 1330 89
+6370c 14 1331 89
+63720 4 1331 89
+63724 1c 1332 89
+63740 8 1299 89
+63748 18 1334 89
+63760 c 1334 89
+6376c 10 1339 89
+6377c 4 241 83
+63780 c 1339 89
+6378c 4 241 83
+63790 4 42 143
+63794 c 241 83
+637a0 8 42 143
+637a8 18 1340 89
+FUNC 637c0 c 0 testing::internal::FilePath::FindLastPathSeparator
+637c0 c 137 90
+FUNC 637cc 24 0 testing::internal::FilePath::FileOrDirectoryExists
+637cc 8 209 90
+637d4 c 2272 87
+637e0 4 217 90
+637e4 c 219 90
+FUNC 637f0 38 0 testing::internal::FilePath::DirectoryExists
+637f0 8 223 90
+637f8 c 2272 87
+63804 4 244 90
+63808 4 244 90
+6380c 8 2278 87
+63814 8 244 90
+6381c c 249 90
+FUNC 63828 14 0 testing::internal::FilePath::IsAbsolutePath
+63828 4 274 90
+6382c 8 94 90
+63834 8 276 90
+FUNC 6383c 24 0 testing::internal::FilePath::IsDirectory
+6383c 8 300 90
+63844 4 301 90
+63848 8 301 90
+63850 c 301 90
+6385c 4 303 90
+FUNC 63860 44 0 testing::internal::FilePath::CreateFolder
+63860 4 325 90
+63864 4 334 90
+63868 8 325 90
+63870 4 325 90
+63874 8 334 90
+6387c 8 337 90
+63884 4 338 90
+63888 8 341 90
+63890 4 338 90
+63894 10 341 90
+FUNC 638a4 c0 0 testing::internal::FilePath::Normalize
+638a4 10 356 90
+638b4 8 356 90
+638bc 4 357 90
+638c0 8 384 90
+638c8 4 358 90
+638cc 4 384 90
+638d0 8 358 90
+638d8 8 400 131
+638e0 c 362 90
+638ec c 400 131
+638f8 c 364 90
+63904 8 366 90
+6390c 4 367 90
+63910 4 366 90
+63914 c 368 90
+63920 8 369 90
+63928 c 376 90
+63934 8 377 90
+6393c 8 379 90
+63944 c 382 90
+63950 4 383 90
+63954 c 384 90
+63960 4 383 90
+FUNC 63964 90 0 testing::internal::FilePath::GetCurrentDir
+63964 4 99 90
+63968 4 108 90
+6396c 4 99 90
+63970 4 108 90
+63974 c 99 90
+63980 4 108 90
+63984 4 99 90
+63988 4 108 90
+6398c 4 99 90
+63990 8 108 90
+63998 c 109 90
+639a4 4 116 90
+639a8 4 116 90
+639ac 8 116 90
+639b4 10 116 90
+639c4 c 116 90
+639d0 8 156 132
+639d8 1c 118 90
+FUNC 639f4 68 0 testing::internal::FilePath::RemoveDirectoryName
+639f4 c 155 90
+63a00 8 155 90
+63a08 4 156 90
+63a0c 4 157 90
+63a10 4 156 90
+63a14 4 157 90
+63a18 14 157 90
+63a2c c 157 90
+63a38 c 156 132
+63a44 8 62 84
+63a4c 10 158 90
+FUNC 63a5c 78 0 testing::internal::FilePath::RemoveTrailingPathSeparator
+63a5c c 346 90
+63a68 8 346 90
+63a70 8 347 90
+63a78 8 349 90
+63a80 4 400 131
+63a84 4 1023 131
+63a88 4 400 131
+63a8c 8 1023 131
+63a94 4 400 131
+63a98 c 1023 131
+63aa4 c 349 90
+63ab0 c 156 132
+63abc 8 62 84
+63ac4 10 350 90
+FUNC 63ad4 1ec 0 testing::internal::FilePath::ConcatPaths
+63ad4 18 200 90
+63aec 8 200 90
+63af4 10 201 90
+63b04 c 62 84
+63b10 4 203 90
+63b14 4 120 132
+63b18 8 203 90
+63b20 4 120 132
+63b24 8 400 131
+63b2c 4 481 101
+63b30 4 400 131
+63b34 10 124 132
+63b44 4 107 134
+63b48 4 101 103
+63b4c 8 107 134
+63b54 c 74 132
+63b60 10 74 132
+63b70 c 74 132
+63b7c 8 535 131
+63b84 c 536 131
+63b90 4 356 101
+63b94 4 346 101
+63b98 4 347 101
+63b9c 8 158 101
+63ba4 8 134 119
+63bac 8 158 101
+63bb4 4 352 101
+63bb8 8 158 101
+63bc0 10 86 137
+63bd0 c 86 137
+63bdc 10 146 103
+63bec 8 174 130
+63bf4 8 175 130
+63bfc 4 101 103
+63c00 4 174 130
+63c04 4 160 132
+63c08 4 164 132
+63c0c 8 165 132
+63c14 4 232 140
+63c18 4 120 132
+63c1c 4 101 103
+63c20 8 232 140
+63c28 4 120 132
+63c2c 4 539 131
+63c30 4 400 131
+63c34 4 539 131
+63c38 4 400 131
+63c3c 4 539 131
+63c40 c 400 131
+63c4c 4 481 101
+63c50 4 400 131
+63c54 10 124 132
+63c64 4 39 134
+63c68 4 101 103
+63c6c 8 39 134
+63c74 c 40 134
+63c80 c 204 90
+63c8c 18 156 132
+63ca4 1c 205 90
+FUNC 63cc0 b4 0 testing::internal::FilePath::RemoveFileName
+63cc0 10 166 90
+63cd0 4 120 132
+63cd4 8 166 90
+63cdc 4 167 90
+63ce0 4 124 132
+63ce4 4 167 90
+63ce8 4 124 132
+63cec 4 120 132
+63cf0 4 481 101
+63cf4 8 124 132
+63cfc 4 101 103
+63d00 8 169 90
+63d08 4 112 132
+63d0c 8 225 131
+63d14 4 112 132
+63d18 4 481 101
+63d1c 4 225 131
+63d20 10 349 131
+63d30 c 156 132
+63d3c 10 172 90
+63d4c c 174 90
+63d58 8 156 132
+63d60 14 175 90
+FUNC 63d74 a0 0 testing::internal::FilePath::CreateDirectoriesRecursively
+63d74 10 308 90
+63d84 4 308 90
+63d88 c 309 90
+63d94 10 313 90
+63da4 c 313 90
+63db0 4 313 90
+63db4 c 317 90
+63dc0 4 317 90
+63dc4 4 317 90
+63dc8 c 317 90
+63dd4 8 156 132
+63ddc 10 318 90
+63dec c 318 90
+63df8 8 156 132
+63e00 14 319 90
+FUNC 63e14 224 0 testing::internal::FilePath::MakeFileName
+63e14 c 186 90
+63e20 8 120 132
+63e28 10 186 90
+63e38 8 124 132
+63e40 8 186 90
+63e48 c 186 90
+63e54 4 120 132
+63e58 4 481 101
+63e5c 10 124 132
+63e6c 4 101 103
+63e70 4 188 90
+63e74 10 189 90
+63e84 10 189 90
+63e94 10 349 131
+63ea4 10 156 132
+63eb4 14 191 90
+63ec8 4 244 79
+63ecc 4 191 90
+63ed0 8 244 79
+63ed8 4 1142 87
+63edc 4 131 79
+63ee0 c 238 121
+63eec 4 239 121
+63ef0 8 239 121
+63ef8 4 239 121
+63efc 4 239 121
+63f00 8 240 121
+63f08 c 244 79
+63f14 8 1153 87
+63f1c 10 1154 87
+63f2c 8 1155 87
+63f34 c 1155 87
+63f40 4 400 131
+63f44 4 120 132
+63f48 4 400 131
+63f4c 4 124 132
+63f50 c 400 131
+63f5c 4 120 132
+63f60 4 400 131
+63f64 4 481 101
+63f68 4 35 134
+63f6c c 124 132
+63f78 4 39 134
+63f7c 4 101 103
+63f80 8 39 134
+63f88 c 40 134
+63f94 10 192 90
+63fa4 10 192 90
+63fb4 10 349 131
+63fc4 28 156 132
+63fec c 194 90
+63ff8 10 194 90
+64008 10 156 132
+64018 20 195 90
+FUNC 64038 a4 0 testing::internal::FilePath::GenerateUniqueFileName
+64038 10 288 90
+64048 4 61 84
+6404c 4 288 90
+64050 4 61 84
+64054 8 288 90
+6405c 4 61 84
+64060 4 288 90
+64064 8 61 84
+6406c 4 288 90
+64070 4 61 84
+64074 4 290 90
+64078 18 292 90
+64090 8 348 131
+64098 10 349 131
+640a8 8 156 132
+640b0 c 291 90
+640bc 4 292 90
+640c0 4 291 90
+640c4 18 295 90
+FUNC 640dc 8 0 testing::internal::GetThreadCount
+640dc 8 133 92
+FUNC 640e4 30 0 testing::internal::IsInSet
+640e4 8 587 92
+640ec 4 588 92
+640f0 4 587 92
+640f4 8 588 92
+640fc 8 588 92
+64104 8 588 92
+6410c 8 589 92
+FUNC 64114 c 0 testing::internal::IsAsciiPunct
+64114 c 596 92
+FUNC 64120 c 0 testing::internal::IsRepeat
+64120 c 598 92
+FUNC 6412c c 0 testing::internal::IsAsciiWhiteSpace
+6412c c 599 92
+FUNC 64138 3c 0 testing::internal::IsAsciiWordChar
+64138 4 600 92
+6413c 4 602 92
+64140 8 601 92
+64148 c 602 92
+64154 4 602 92
+64158 c 601 92
+64164 c 602 92
+64170 4 603 92
+FUNC 64174 158 0 testing::internal::AtomMatchesChar
+64174 10 612 92
+64184 8 612 92
+6418c 4 613 92
+64190 28 614 92
+641b8 c 621 92
+641c4 10 614 92
+641d4 8 617 92
+641dc 1c 614 92
+641f8 4 620 92
+641fc 8 631 92
+64204 4 620 92
+64208 10 614 92
+64218 4 624 92
+6421c 8 631 92
+64224 4 624 92
+64228 18 594 92
+64240 10 616 92
+64250 8 618 92
+64258 8 619 92
+64260 8 622 92
+64268 c 623 92
+64274 14 625 92
+64288 8 627 92
+64290 10 627 92
+642a0 10 630 92
+642b0 4 630 92
+642b4 4 630 92
+642b8 8 630 92
+642c0 c 631 92
+FUNC 642cc bc 0 testing::internal::MatchRegexAtHead
+642cc 18 731 92
+642e4 8 732 92
+642ec 8 737 92
+642f4 10 738 92
+64304 8 741 92
+6430c 8 743 92
+64314 14 744 92
+64328 14 749 92
+6433c c 757 92
+64348 4 749 92
+6434c 8 754 92
+64354 10 754 92
+64364 4 754 92
+64368 c 755 92
+64374 4 733 92
+64378 10 757 92
+FUNC 64388 c0 0 testing::internal::MatchRepetitionAndRegexAtHead
+64388 18 706 92
+643a0 4 707 92
+643a4 4 706 92
+643a8 10 706 92
+643b8 4 707 92
+643bc 14 707 92
+643d0 4 707 92
+643d4 4 709 92
+643d8 4 713 92
+643dc 8 715 92
+643e4 10 715 92
+643f4 4 715 92
+643f8 8 722 92
+64400 18 722 92
+64418 8 723 92
+64420 4 713 92
+64424 8 713 92
+6442c 4 723 92
+64430 18 726 92
+FUNC 64448 68 0 testing::internal::MatchRegexAnywhere
+64448 c 767 92
+64454 8 767 92
+6445c 8 768 92
+64464 c 771 92
+64470 4 772 92
+64474 8 780 92
+6447c 4 772 92
+64480 8 775 92
+64488 18 776 92
+644a0 4 769 92
+644a4 c 780 92
+FUNC 644b0 1c 0 testing::internal::RE::PartialMatch
+644b0 4 796 92
+644b4 8 797 92
+644bc c 797 92
+644c8 4 798 92
+FUNC 644cc 2c 0 testing::internal::CapturedStream::GetFileSize
+644cc 4 980 92
+644d0 8 981 92
+644d8 8 980 92
+644e0 4 980 92
+644e4 4 981 92
+644e8 4 982 92
+644ec 8 983 92
+644f4 4 982 92
+FUNC 644f8 18 0 testing::internal::GetInjectableArgvs
+644f8 c 1069 92
+64504 8 1072 92
+6450c 4 1073 92
+FUNC 64510 3c 0 std::_Destroy_Range<std::reverse_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*> >
+64510 c 219 103
+6451c 8 65 113
+64524 c 191 103
+64530 10 156 132
+64540 c 221 103
+FUNC 6454c 5c 0 std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector
+6454c c 42 143
+64558 4 42 143
+6455c 4 304 139
+64560 10 64 113
+64570 8 304 139
+64578 8 87 139
+64580 8 88 139
+64588 8 161 101
+64590 8 135 119
+64598 4 161 101
+6459c c 42 143
+FUNC 645a8 9c 0 testing::internal::CapturedStream::ReadEntireFile
+645a8 18 986 92
+645c0 4 986 92
+645c4 8 987 92
+645cc 4 988 92
+645d0 4 993 92
+645d4 4 988 92
+645d8 8 993 92
+645e0 4 991 92
+645e4 4 993 92
+645e8 14 998 92
+645fc 4 999 92
+64600 c 997 92
+6460c c 225 131
+64618 4 112 132
+6461c 4 481 101
+64620 4 225 131
+64624 8 1003 92
+6462c 18 1006 92
+FUNC 64644 a8 0 testing::internal::GetCapturedStream
+64644 10 1023 92
+64654 8 1023 92
+6465c 4 1024 92
+64660 c 950 92
+6466c 8 952 92
+64674 c 953 92
+64680 8 954 92
+64688 8 955 92
+64690 14 2298 87
+646a4 8 959 92
+646ac 8 2306 87
+646b4 8 1026 92
+646bc 8 946 92
+646c4 8 156 132
+646cc 8 1026 92
+646d4 4 1030 92
+646d8 4 1027 92
+646dc 10 1030 92
+FUNC 646ec 2c 0 testing::internal::GetCapturedStderr
+646ec 4 1048 92
+646f0 4 1049 92
+646f4 4 1048 92
+646f8 4 1049 92
+646fc 4 1048 92
+64700 4 1048 92
+64704 4 1049 92
+64708 10 1050 92
+FUNC 64718 38 0 testing::Message::operator<< <char const>
+64718 c 149 79
+64724 8 149 79
+6472c 4 333 122
+64730 4 150 79
+64734 c 333 122
+64740 10 156 79
+FUNC 64750 7c 0 std::endl<char, std::char_traits<char> >
+64750 c 357 122
+6475c 4 357 122
+64760 10 181 122
+64770 4 412 121
+64774 18 422 121
+6478c 4 414 121
+64790 14 414 121
+647a4 8 421 121
+647ac 8 424 121
+647b4 8 359 122
+647bc 10 361 122
+FUNC 647cc 48 0 testing::internal::GTestLog::~GTestLog
+647cc c 880 92
+647d8 4 880 92
+647dc c 78 122
+647e8 c 882 92
+647f4 10 883 92
+64804 4 2340 87
+64808 c 886 92
+FUNC 64814 1a8 0 testing::internal::ParseInt32
+64814 10 1103 92
+64824 4 1105 92
+64828 4 1103 92
+6482c 8 1103 92
+64834 4 1106 92
+64838 4 1105 92
+6483c 8 1106 92
+64844 c 1109 92
+64850 c 1111 92
+6485c 14 333 122
+64870 10 131 79
+64880 28 333 122
+648a8 c 1114 92
+648b4 4 131 79
+648b8 10 333 122
+648c8 10 1122 92
+648d8 4 1125 92
+648dc 8 1122 92
+648e4 c 1128 92
+648f0 14 333 122
+64904 10 131 79
+64914 28 333 122
+6493c c 1131 92
+64948 4 131 79
+6494c 10 333 122
+6495c 10 1132 92
+6496c 10 1132 92
+6497c 8 156 132
+64984 10 1133 92
+64994 8 85 79
+6499c 8 1134 92
+649a4 4 1137 92
+649a8 4 1138 92
+649ac 10 1139 92
+FUNC 649bc 150 0 testing::internal::FormatFileLocation
+649bc 14 840 92
+649d0 8 840 92
+649d8 8 841 92
+649e0 8 841 92
+649e8 4 229 140
+649ec 8 112 132
+649f4 4 481 101
+649f8 4 229 140
+649fc 4 643 130
+64a00 4 643 130
+64a04 c 643 130
+64a10 4 843 92
+64a14 14 844 92
+64a28 14 849 92
+64a3c 4 244 79
+64a40 4 849 92
+64a44 8 244 79
+64a4c 8 131 79
+64a54 4 244 79
+64a58 8 131 79
+64a60 c 244 79
+64a6c 8 85 79
+64a74 4 120 132
+64a78 14 400 131
+64a8c 4 481 101
+64a90 4 400 131
+64a94 4 35 134
+64a98 10 124 132
+64aa8 4 39 134
+64aac 4 101 103
+64ab0 8 39 134
+64ab8 c 40 134
+64ac4 10 849 92
+64ad4 20 156 132
+64af4 18 851 92
+FUNC 64b0c cc 0 testing::internal::GTestLog::GTestLog
+64b0c c 869 92
+64b18 4 870 92
+64b1c 4 874 92
+64b20 8 874 92
+64b28 8 874 92
+64b30 c 874 92
+64b3c c 874 92
+64b48 c 874 92
+64b54 8 874 92
+64b5c 18 78 122
+64b74 4 333 122
+64b78 4 876 92
+64b7c 14 333 122
+64b90 18 876 92
+64ba8 1c 333 122
+64bc4 8 156 132
+64bcc c 877 92
+FUNC 64bd8 1a4 0 testing::internal::CaptureStream
+64bd8 18 1014 92
+64bf0 c 1014 92
+64bfc c 1015 92
+64c08 4 1016 92
+64c0c 4 333 122
+64c10 14 1016 92
+64c24 30 333 122
+64c54 8 1016 92
+64c5c c 1019 92
+64c68 14 897 92
+64c7c 8 124 132
+64c84 4 120 132
+64c88 4 481 101
+64c8c 8 124 132
+64c94 c 933 92
+64ca0 4 101 103
+64ca4 8 933 92
+64cac c 937 92
+64cb8 8 229 140
+64cc0 4 355 131
+64cc4 4 400 131
+64cc8 8 243 130
+64cd0 4 400 131
+64cd4 8 244 130
+64cdc 4 168 140
+64ce0 c 168 140
+64cec c 246 130
+64cf8 8 803 131
+64d00 4 168 140
+64d04 4 806 131
+64d08 4 168 140
+64d0c 10 806 131
+64d1c 4 168 140
+64d20 8 168 140
+64d28 4 400 131
+64d2c 4 250 130
+64d30 8 400 131
+64d38 c 250 130
+64d44 8 940 92
+64d4c c 941 92
+64d58 8 942 92
+64d60 4 1019 92
+64d64 18 1020 92
+FUNC 64d7c 18 0 testing::internal::CaptureStderr
+64d7c 18 1039 92
+FUNC 64d94 13c 0 testing::internal::FormatCompilerIndependentFileLocation
+64d94 14 859 92
+64da8 8 859 92
+64db0 8 860 92
+64db8 8 860 92
+64dc0 4 229 140
+64dc4 8 112 132
+64dcc 4 481 101
+64dd0 4 229 140
+64dd4 4 643 130
+64dd8 4 643 130
+64ddc 8 643 130
+64de4 4 862 92
+64de8 c 649 130
+64df4 4 112 132
+64df8 4 481 101
+64dfc 8 649 130
+64e04 14 865 92
+64e18 4 244 79
+64e1c 4 865 92
+64e20 8 244 79
+64e28 8 131 79
+64e30 4 244 79
+64e34 8 131 79
+64e3c c 244 79
+64e48 8 85 79
+64e50 4 120 132
+64e54 14 400 131
+64e68 4 481 101
+64e6c 4 400 131
+64e70 4 35 134
+64e74 10 124 132
+64e84 4 39 134
+64e88 4 101 103
+64e8c 8 39 134
+64e94 c 40 134
+64ea0 18 156 132
+64eb8 18 866 92
+FUNC 64ed0 c8 0 testing::internal::FlagToEnvVar
+64ed0 c 1088 92
+64edc 4 1090 92
+64ee0 4 1088 92
+64ee4 4 1090 92
+64ee8 4 1088 92
+64eec 4 1088 92
+64ef0 4 1090 92
+64ef4 c 333 122
+64f00 4 1090 92
+64f04 8 333 122
+64f0c 8 1090 92
+64f14 4 1093 92
+64f18 4 1090 92
+64f1c 8 1090 92
+64f24 8 85 79
+64f2c c 1092 92
+64f38 8 400 131
+64f40 8 1093 92
+64f48 4 2211 87
+64f4c 4 1093 92
+64f50 8 2211 87
+64f58 4 131 79
+64f5c c 305 122
+64f68 c 1097 92
+64f74 8 85 79
+64f7c 8 156 132
+64f84 14 1098 92
+FUNC 64f98 54 0 testing::internal::BoolFromGTestEnv
+64f98 c 1145 92
+64fa4 4 1146 92
+64fa8 4 1145 92
+64fac 8 1146 92
+64fb4 8 2328 87
+64fbc 4 1149 92
+64fc0 c 1149 92
+64fcc 8 1149 92
+64fd4 8 156 132
+64fdc 10 1150 92
+FUNC 64fec 10c 0 testing::internal::Int32FromGTestEnv
+64fec c 1155 92
+64ff8 4 1156 92
+64ffc 4 1155 92
+65000 4 1156 92
+65004 4 1155 92
+65008 4 1155 92
+6500c 4 1156 92
+65010 4 2328 87
+65014 4 1160 92
+65018 8 2328 87
+65020 4 1158 92
+65024 4 1164 92
+65028 4 1163 92
+6502c 8 1164 92
+65034 14 333 122
+65048 10 131 79
+65058 14 1165 92
+6506c 8 85 79
+65074 4 1172 92
+65078 4 1164 92
+6507c c 1167 92
+65088 10 131 79
+65098 c 1167 92
+650a4 10 1167 92
+650b4 8 156 132
+650bc 4 85 79
+650c0 4 1169 92
+650c4 4 85 79
+650c8 10 1168 92
+650d8 8 156 132
+650e0 18 1173 92
+FUNC 650f8 48 0 testing::internal::StringFromGTestEnv
+650f8 c 1177 92
+65104 8 1178 92
+6510c 4 1177 92
+65110 4 1178 92
+65114 8 2328 87
+6511c c 1180 92
+65128 8 156 132
+65130 10 1181 92
+FUNC 65140 40 0 sys_sigaltstack
+65140 c 3142 97
+6514c 14 3142 97
+65160 4 3142 97
+65164 4 3142 97
+65168 8 3142 97
+65170 10 3142 97
+FUNC 65180 44 0 sys_close
+65180 10 2979 97
+65190 14 2979 97
+651a4 4 2979 97
+651a8 4 2979 97
+651ac 8 2979 97
+651b4 10 2979 97
+FUNC 651c4 50 0 sys_prctl
+651c4 14 3092 97
+651d8 1c 3092 97
+651f4 4 3092 97
+651f8 4 3092 97
+651fc 8 3092 97
+65204 10 3092 97
+FUNC 65214 fc 0 google_breakpad::ExceptionHandler::InstallHandlersLocked
+65214 4 247 4
+65218 8 246 4
+65220 4 247 4
+65224 14 246 4
+65238 4 247 4
+6523c c 248 4
+65248 2c 252 4
+65274 8 251 4
+6527c 4 257 4
+65280 c 258 4
+6528c 8 257 4
+65294 4 258 4
+65298 14 262 4
+652ac 8 261 4
+652b4 4 264 4
+652b8 4 265 4
+652bc 8 264 4
+652c4 c 265 4
+652d0 18 268 4
+652e8 8 267 4
+652f0 c 273 4
+652fc 14 275 4
+FUNC 65310 2b0 0 google_breakpad::ExceptionHandler::ExceptionHandler
+65310 18 200 4
+65328 4 210 4
+6532c 4 200 4
+65330 8 210 4
+65338 4 200 4
+6533c 4 210 4
+65340 4 92 57
+65344 4 210 4
+65348 4 200 4
+6534c 4 210 4
+65350 4 210 4
+65354 8 211 116
+6535c 4 211 4
+65360 4 212 116
+65364 8 211 116
+6536c 4 212 116
+65370 4 211 4
+65374 c 212 4
+65380 c 105 57
+6538c 4 107 57
+65390 c 107 57
+6539c 4 108 57
+653a0 8 214 4
+653a8 10 214 4
+653b8 4 218 4
+653bc 4 219 4
+653c0 8 218 4
+653c8 8 219 4
+653d0 8 220 4
+653d8 8 67 139
+653e0 4 481 101
+653e4 4 220 4
+653e8 4 221 4
+653ec 10 138 4
+653fc 4 141 4
+65400 4 142 4
+65404 10 141 4
+65414 c 142 4
+65420 c 147 4
+6542c 10 147 4
+6543c 18 151 4
+65454 c 151 4
+65460 4 152 4
+65464 c 151 4
+65470 18 153 4
+65488 8 156 4
+65490 4 154 4
+65494 c 156 4
+654a0 c 157 4
+654ac 4 223 4
+654b0 4 225 4
+654b4 10 380 139
+654c4 4 126 103
+654c8 10 382 139
+654d8 c 192 139
+654e4 c 176 139
+654f0 4 175 139
+654f4 10 176 139
+65504 4 356 101
+65508 8 346 101
+65510 4 177 139
+65514 c 347 101
+65520 4 348 101
+65524 4 352 101
+65528 4 353 101
+6552c 4 352 101
+65530 4 112 138
+65534 c 224 100
+65540 8 224 100
+65548 4 224 100
+6554c c 481 100
+65558 8 657 139
+65560 4 319 101
+65564 8 161 101
+6556c 8 135 119
+65574 4 161 101
+65578 4 118 138
+6557c 4 666 139
+65580 4 667 139
+65584 4 668 139
+65588 8 226 4
+65590 18 227 4
+655a8 c 216 4
+655b4 c 160 4
+FUNC 655c0 84 0 google_breakpad::ExceptionHandler::RestoreHandlersLocked
+655c0 4 281 4
+655c4 8 280 4
+655cc 4 281 4
+655d0 10 280 4
+655e0 c 281 4
+655ec 28 285 4
+65614 10 286 4
+65624 8 284 4
+6562c 4 289 4
+65630 14 290 4
+FUNC 65644 c4 0 google_breakpad::ExceptionHandler::SendContinueSignalToChild
+65644 c 521 4
+65650 4 3162 97
+65654 4 521 4
+65658 4 3162 97
+6565c 4 521 4
+65660 20 3162 97
+65680 4 3162 97
+65684 8 3162 97
+6568c c 524 4
+65698 10 528 4
+656a8 c 529 4
+656b4 8 529 4
+656bc 4 529 4
+656c0 4 529 4
+656c4 8 529 4
+656cc 8 529 4
+656d4 8 532 4
+656dc 8 530 4
+656e4 4 532 4
+656e8 8 530 4
+656f0 8 525 4
+656f8 10 532 4
+FUNC 65708 368 0 google_breakpad::ExceptionHandler::GenerateDump
+65708 18 449 4
+65720 8 449 4
+65728 4 122 57
+6572c 4 450 4
+65730 4 451 4
+65734 14 451 4
+65748 4 451 4
+6574c 4 64 54
+65750 4 67 54
+65754 4 90 54
+65758 4 3940 97
+6575c 4 90 54
+65760 c 3940 97
+6576c 4 90 54
+65770 4 3940 97
+65774 4 119 54
+65778 14 3940 97
+6578c 4 3940 97
+65790 4 3940 97
+65794 8 3940 97
+6579c 8 124 54
+657a4 4 135 54
+657a8 4 458 4
+657ac 4 134 54
+657b0 4 458 4
+657b4 4 461 4
+657b8 8 462 4
+657c0 4 461 4
+657c4 4 462 4
+657c8 4 466 4
+657cc 4 462 4
+657d0 4 465 4
+657d4 4 466 4
+657d8 8 467 4
+657e0 4 469 4
+657e4 4 468 4
+657e8 4 3944 97
+657ec 4 469 4
+657f0 4 475 4
+657f4 14 3944 97
+65808 4 3944 97
+6580c 4 3944 97
+65810 c 3944 97
+6581c 8 475 4
+65824 10 481 4
+65834 c 482 4
+65840 8 482 4
+65848 4 482 4
+6584c 4 482 4
+65850 8 482 4
+65858 8 482 4
+65860 10 483 4
+65870 8 486 4
+65878 4 2523 97
+6587c 4 2521 97
+65880 4 2560 97
+65884 4 2521 97
+65888 4 2522 97
+6588c 4 2524 97
+65890 4 2525 97
+65894 2c 2560 97
+658c0 8 2562 97
+658c8 4 2562 97
+658cc 4 2562 97
+658d0 8 2562 97
+658d8 4 492 4
+658dc 4 2562 97
+658e0 4 492 4
+658e4 4 493 4
+658e8 4 495 4
+658ec 4 493 4
+658f0 c 494 4
+658fc c 499 4
+65908 4 3272 97
+6590c 4 499 4
+65910 8 500 4
+65918 24 3272 97
+6593c 4 3272 97
+65940 4 3272 97
+65944 8 3272 97
+6594c 4 502 4
+65950 4 3272 97
+65954 4 502 4
+65958 4 502 4
+6595c 10 502 4
+6596c 4 67 54
+65970 8 459 4
+65978 c 514 4
+65984 c 514 4
+65990 4 515 4
+65994 4 514 4
+65998 4 515 4
+6599c 10 516 4
+659ac 4 144 54
+659b0 4 146 54
+659b4 4 3074 97
+659b8 4 145 54
+659bc 18 3074 97
+659d4 4 3074 97
+659d8 8 3074 97
+659e0 8 459 4
+659e8 8 504 4
+659f0 8 505 4
+659f8 8 507 4
+65a00 10 509 4
+65a10 c 510 4
+65a1c 8 510 4
+65a24 4 510 4
+65a28 4 510 4
+65a2c 8 510 4
+65a34 8 510 4
+65a3c 10 511 4
+65a4c 8 514 4
+65a54 1c 518 4
+FUNC 65a70 128 0 google_breakpad::ExceptionHandler::HandleSignal
+65a70 1c 392 4
+65a8c c 392 4
+65a98 4 397 4
+65a9c 8 400 4
+65aa4 c 400 4
+65ab0 4 400 4
+65ab4 4 400 4
+65ab8 8 400 4
+65ac0 18 405 4
+65ad8 10 406 4
+65ae8 10 407 4
+65af8 18 412 4
+65b10 10 413 4
+65b20 10 426 4
+65b30 8 427 4
+65b38 14 432 4
+65b4c 20 428 4
+65b6c 10 401 4
+65b7c 1c 433 4
+FUNC 65b98 5c 0 google_breakpad::ExceptionHandler::HandleSignal
+65b98 10 392 4
+65ba8 4 392 4
+65bac 8 393 4
+65bb4 14 393 4
+65bc8 10 393 4
+65bd8 1c 433 4
+FUNC 65bf4 190 0 google_breakpad::ExceptionHandler::SignalHandler
+65bf4 c 299 4
+65c00 4 301 4
+65c04 4 299 4
+65c08 4 301 4
+65c0c c 299 4
+65c18 8 299 4
+65c20 4 314 4
+65c24 4 301 4
+65c28 14 314 4
+65c3c 4 315 4
+65c40 4 314 4
+65c44 10 333 4
+65c54 10 192 139
+65c64 4 332 4
+65c68 c 333 4
+65c74 14 333 4
+65c88 c 334 4
+65c94 4 202 139
+65c98 14 334 4
+65cac 4 342 4
+65cb0 10 343 4
+65cc0 4 345 4
+65cc4 8 348 4
+65ccc 8 350 4
+65cd4 4 350 4
+65cd8 4 350 4
+65cdc 8 355 4
+65ce4 4 355 4
+65ce8 4 355 4
+65cec 8 355 4
+65cf4 10 110 4
+65d04 4 355 4
+65d08 8 359 4
+65d10 c 317 4
+65d1c c 318 4
+65d28 4 320 4
+65d2c 4 323 4
+65d30 8 320 4
+65d38 4 321 4
+65d3c 4 323 4
+65d40 8 321 4
+65d48 10 323 4
+65d58 c 326 4
+65d64 8 328 4
+65d6c 18 366 4
+FUNC 65d84 b8 0 google_breakpad::ExceptionHandler::WaitForContinueSignal
+65d84 10 536 4
+65d94 4 536 4
+65d98 24 3104 97
+65dbc 4 3104 97
+65dc0 8 3104 97
+65dc8 c 539 4
+65dd4 10 543 4
+65de4 c 544 4
+65df0 8 544 4
+65df8 4 544 4
+65dfc 4 544 4
+65e00 8 544 4
+65e08 8 544 4
+65e10 14 545 4
+65e24 8 540 4
+65e2c 10 547 4
+FUNC 65e3c 68 0 google_breakpad::ExceptionHandler::DoDump
+65e3c 10 552 4
+65e4c 4 553 4
+65e50 8 552 4
+65e58 4 553 4
+65e5c 14 557 4
+65e70 c 559 4
+65e7c 14 566 4
+65e90 14 574 4
+FUNC 65ea4 40 0 google_breakpad::ExceptionHandler::ThreadEntry
+65ea4 c 379 4
+65eb0 4 379 4
+65eb4 8 384 4
+65ebc 18 387 4
+65ed4 10 388 4
+FUNC 65ee4 130 0 google_breakpad::ExceptionHandler::WriteMinidump
+65ee4 18 593 4
+65efc 4 593 4
+65f00 c 594 4
+65f0c c 594 4
+65f18 8 600 4
+65f20 8 609 4
+65f28 4 612 4
+65f2c 4 609 4
+65f30 8 612 4
+65f38 4 614 4
+65f3c 4 613 4
+65f40 14 3039 97
+65f54 4 3039 97
+65f58 4 3039 97
+65f5c 8 3039 97
+65f64 4 3789 97
+65f68 4 3039 97
+65f6c 4 3789 97
+65f70 14 3026 97
+65f84 4 3026 97
+65f88 4 3026 97
+65f8c 8 3026 97
+65f94 4 643 4
+65f98 c 646 4
+65fa4 4 643 4
+65fa8 4 646 4
+65fac 8 647 4
+65fb4 4 659 4
+65fb8 4 667 4
+65fbc 4 659 4
+65fc0 10 667 4
+65fd0 8 601 4
+65fd8 10 604 4
+65fe8 10 605 4
+65ff8 1c 668 4
+FUNC 66014 b4 0 google_breakpad::ExceptionHandler::AddMappingInfo
+66014 14 674 4
+66028 8 674 4
+66030 c 679 4
+6603c 8 676 4
+66044 4 683 4
+66048 4 677 4
+6604c 4 370 116
+66050 4 678 4
+66054 4 679 4
+66058 c 683 4
+66064 4 680 4
+66068 4 683 4
+6606c 4 684 4
+66070 4 306 101
+66074 8 684 4
+6607c 8 306 101
+66084 8 307 101
+6608c 8 119 103
+66094 c 119 103
+660a0 4 427 116
+660a4 4 429 116
+660a8 4 428 116
+660ac 4 430 116
+660b0 4 431 116
+660b4 14 686 4
+FUNC 660c8 84 0 google_breakpad::ExceptionHandler::RegisterAppMemory
+660c8 10 688 4
+660d8 8 198 99
+660e0 c 198 99
+660ec 8 91 116
+660f4 8 691 4
+660fc 14 306 101
+66110 4 307 101
+66114 8 119 103
+6611c 10 119 103
+6612c 4 427 116
+66130 4 429 116
+66134 4 428 116
+66138 4 430 116
+6613c 4 431 116
+66140 c 700 4
+FUNC 6614c 48 0 google_breakpad::ExceptionHandler::UnregisterAppMemory
+6614c 8 702 4
+66154 8 198 99
+6615c c 198 99
+66168 8 91 116
+66170 8 705 4
+66178 4 520 116
+6617c 4 519 116
+66180 4 522 116
+66184 4 523 116
+66188 8 161 101
+66190 4 708 4
+FUNC 66194 258 0 google_breakpad::ExceptionHandler::~ExceptionHandler
+66194 c 230 4
+661a0 4 231 4
+661a4 4 230 4
+661a8 4 230 4
+661ac 8 231 4
+661b4 14 233 4
+661c8 8 115 99
+661d0 8 117 99
+661d8 c 118 99
+661e4 c 121 99
+661f0 8 119 99
+661f8 c 124 99
+66204 8 122 99
+6620c c 127 99
+66218 c 125 99
+66224 8 117 99
+6622c 24 131 99
+66250 10 133 99
+66260 4 134 99
+66264 10 136 99
+66274 4 137 99
+66278 10 139 99
+66288 8 118 99
+66290 4 143 99
+66294 c 580 139
+662a0 8 224 100
+662a8 4 224 100
+662ac 4 584 139
+662b0 4 200 139
+662b4 8 584 139
+662bc 8 235 4
+662c4 4 87 139
+662c8 8 88 139
+662d0 8 161 101
+662d8 8 135 119
+662e0 4 161 101
+662e4 8 236 4
+662ec 4 237 4
+662f0 10 166 4
+66300 14 170 4
+66314 18 175 4
+6632c 10 176 4
+6633c 8 177 4
+66344 8 181 4
+6634c 10 182 4
+6635c 8 187 4
+66364 4 188 4
+66368 4 239 4
+6636c 4 241 4
+66370 4 67 115
+66374 4 241 4
+66378 4 67 115
+6637c 8 68 115
+66384 4 161 101
+66388 4 74 115
+6638c c 161 101
+66398 8 67 115
+663a0 8 68 115
+663a8 4 74 115
+663ac c 135 119
+663b8 10 156 132
+663c8 8 98 57
+663d0 c 98 57
+663dc 10 242 4
+FUNC 663ec cc 0 google_breakpad::ExceptionHandler::WriteMinidumpForChild
+663ec 10 715 4
+663fc 4 61 8
+66400 4 715 4
+66404 4 61 8
+66408 4 715 4
+6640c c 61 8
+66418 8 715 4
+66420 c 61 8
+6642c 4 120 132
+66430 4 124 132
+66434 4 120 132
+66438 4 481 101
+6643c 8 124 132
+66444 4 101 103
+66448 8 61 8
+66450 4 718 4
+66454 4 61 8
+66458 4 718 4
+6645c 14 721 4
+66470 4 719 4
+66474 8 724 4
+6647c 18 724 4
+66494 10 156 132
+664a4 14 725 4
+FUNC 664b8 a4 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+664b8 18 41 7
+664d0 4 112 132
+664d4 4 41 7
+664d8 10 46 7
+664e8 4 379 131
+664ec 4 112 132
+664f0 c 481 101
+664fc 4 378 131
+66500 8 379 131
+66508 10 148 137
+66518 4 380 131
+6651c 4 101 103
+66520 4 165 131
+66524 4 124 132
+66528 4 120 132
+6652c 4 481 101
+66530 8 124 132
+66538 4 101 103
+6653c 4 46 7
+66540 4 51 7
+66544 8 46 7
+6654c 10 51 7
+FUNC 6655c f0 0 google_breakpad::MinidumpDescriptor::UpdatePath
+6655c c 70 7
+66568 4 75 7
+6656c 4 70 7
+66570 4 75 7
+66574 8 70 7
+6657c 10 75 7
+6658c 14 75 7
+665a0 4 79 7
+665a4 c 422 131
+665b0 4 232 140
+665b4 8 424 131
+665bc 14 80 7
+665d0 4 80 7
+665d4 4 80 7
+665d8 c 80 7
+665e4 4 80 7
+665e8 4 80 7
+665ec 14 80 7
+66600 8 348 131
+66608 10 349 131
+66618 18 156 132
+66630 4 82 7
+66634 8 81 7
+6663c 10 82 7
+FUNC 6664c 88 0 google_breakpad::MinidumpDescriptor::operator=
+6664c c 54 7
+66658 8 54 7
+66660 4 57 7
+66664 4 59 7
+66668 4 57 7
+6666c 8 58 7
+66674 4 59 7
+66678 8 348 131
+66680 10 349 131
+66690 c 422 131
+6669c 4 232 140
+666a0 8 424 131
+666a8 8 61 7
+666b0 4 63 7
+666b4 8 64 7
+666bc 8 66 7
+666c4 10 68 7
+FUNC 666d4 14 0 logger::write
+666d4 4 42 9
+666d8 4 40 9
+666dc c 42 9
+FUNC 666e8 c 0 MicrodumpWriter::LogAppend
+666e8 c 108 10
+FUNC 666f4 40 0 MicrodumpWriter::LogAppend<unsigned char>
+666f4 8 118 10
+666fc c 124 10
+66708 4 123 10
+6670c 4 118 10
+66710 c 124 10
+6671c 4 113 10
+66720 4 124 10
+66724 4 125 10
+66728 4 113 10
+6672c 8 127 10
+FUNC 66734 4c 0 MicrodumpWriter::LogAppend<long unsigned int>
+66734 10 118 10
+66744 8 124 10
+6674c 10 124 10
+6675c 4 123 10
+66760 4 123 10
+66764 8 124 10
+6676c 4 123 10
+66770 4 125 10
+66774 4 113 10
+66778 8 127 10
+FUNC 66780 44 0 MicrodumpWriter::LogCommitLine
+66780 c 137 10
+6678c 4 137 10
+66790 4 228 57
+66794 c 100 10
+667a0 8 100 10
+667a8 8 139 10
+667b0 8 140 10
+667b8 c 139 10
+FUNC 667c4 220 0 MicrodumpWriter::DumpModule
+667c4 1c 291 10
+667e0 c 291 10
+667ec 4 296 10
+667f0 c 298 10
+667fc c 304 10
+66808 18 310 10
+66820 4 314 10
+66824 4 310 10
+66828 4 314 10
+6682c 10 312 10
+6683c c 313 10
+66848 c 314 10
+66854 c 315 10
+66860 c 316 10
+6686c c 317 10
+66878 10 318 10
+66888 8 319 10
+66890 14 124 10
+668a4 4 123 10
+668a8 4 123 10
+668ac 8 124 10
+668b4 4 123 10
+668b8 8 113 10
+668c0 4 125 10
+668c4 4 113 10
+668c8 8 320 10
+668d0 14 124 10
+668e4 4 123 10
+668e8 4 123 10
+668ec c 124 10
+668f8 4 123 10
+668fc 8 113 10
+66904 4 125 10
+66908 4 113 10
+6690c 8 321 10
+66914 10 124 10
+66924 4 123 10
+66928 4 123 10
+6692c 8 124 10
+66934 4 123 10
+66938 8 113 10
+66940 4 125 10
+66944 4 113 10
+66948 c 322 10
+66954 c 323 10
+66960 c 324 10
+6696c c 325 10
+66978 c 326 10
+66984 c 327 10
+66990 c 328 10
+6699c c 329 10
+669a8 10 330 10
+669b8 c 113 10
+669c4 8 332 10
+669cc 18 333 10
+FUNC 669e4 678 0 google_breakpad::WriteMicrodump
+669e4 18 375 10
+669fc 4 376 10
+66a00 4 375 10
+66a04 4 376 10
+66a08 4 375 10
+66a0c 4 376 10
+66a10 14 375 10
+66a24 4 375 10
+66a28 4 376 10
+66a2c 8 378 10
+66a34 8 379 10
+66a3c 4 380 10
+66a40 8 379 10
+66a48 8 123 22
+66a50 8 127 22
+66a58 8 130 22
+66a60 8 72 10
+66a68 4 72 10
+66a6c 8 72 10
+66a74 4 72 10
+66a78 4 72 10
+66a7c 8 72 10
+66a84 14 72 10
+66a98 4 197 57
+66a9c 4 73 10
+66aa0 18 79 10
+66ab8 8 389 10
+66ac0 14 81 10
+66ad4 4 388 10
+66ad8 4 100 10
+66adc 4 144 10
+66ae0 10 100 10
+66af0 4 100 10
+66af4 4 88 10
+66af8 4 100 10
+66afc c 144 10
+66b08 4 146 10
+66b0c 4 149 10
+66b10 4 157 10
+66b14 4 172 10
+66b18 8 146 10
+66b20 4 149 10
+66b24 4 170 10
+66b28 4 149 10
+66b2c 4 170 10
+66b30 4 172 10
+66b34 4 267 10
+66b38 4 233 10
+66b3c 4 267 10
+66b40 4 149 10
+66b44 8 157 10
+66b4c 4 149 10
+66b50 10 157 10
+66b60 8 170 10
+66b68 c 171 10
+66b74 c 172 10
+66b80 c 173 10
+66b8c c 174 10
+66b98 c 175 10
+66ba4 c 176 10
+66bb0 c 113 10
+66bbc c 178 10
+66bc8 c 113 10
+66bd4 c 180 10
+66be0 c 113 10
+66bec 8 182 10
+66bf4 4 233 10
+66bf8 c 192 139
+66c04 8 233 10
+66c0c c 200 10
+66c18 c 221 10
+66c24 c 235 10
+66c30 10 237 10
+66c40 10 238 10
+66c50 c 241 10
+66c5c 4 248 10
+66c60 4 190 10
+66c64 8 248 10
+66c6c 4 249 10
+66c70 c 194 10
+66c7c 4 249 10
+66c80 10 194 10
+66c90 8 200 10
+66c98 4 202 10
+66c9c 4 200 10
+66ca0 c 201 10
+66cac c 202 10
+66cb8 c 203 10
+66cc4 c 204 10
+66cd0 c 205 10
+66cdc 8 206 10
+66ce4 8 358 10
+66cec 4 75 54
+66cf0 8 76 54
+66cf8 c 78 54
+66d04 14 78 54
+66d18 4 80 54
+66d1c 4 79 54
+66d20 8 81 54
+66d28 8 80 54
+66d30 4 82 54
+66d34 8 83 54
+66d3c 8 90 54
+66d44 10 3940 97
+66d54 4 90 54
+66d58 8 3940 97
+66d60 4 90 54
+66d64 4 119 54
+66d68 14 3940 97
+66d7c 4 3940 97
+66d80 c 3940 97
+66d8c 8 124 54
+66d94 8 134 54
+66d9c 4 135 54
+66da0 4 136 54
+66da4 14 96 54
+66db8 4 97 54
+66dbc 4 98 54
+66dc0 8 98 54
+66dc8 4 98 54
+66dcc 4 100 54
+66dd0 4 214 10
+66dd4 4 219 10
+66dd8 1c 214 10
+66df4 8 223 10
+66dfc c 219 10
+66e08 c 221 10
+66e14 10 222 10
+66e24 c 223 10
+66e30 4 225 10
+66e34 8 139 100
+66e3c 4 132 10
+66e40 4 225 10
+66e44 8 139 100
+66e4c 8 132 10
+66e54 18 133 10
+66e6c 14 132 10
+66e80 4 226 10
+66e84 4 219 10
+66e88 8 226 10
+66e90 10 253 10
+66ea0 10 255 10
+66eb0 4 259 10
+66eb4 10 260 10
+66ec4 10 267 10
+66ed4 10 133 10
+66ee4 8 132 10
+66eec 10 269 10
+66efc 4 235 10
+66f00 8 338 10
+66f08 c 192 139
+66f14 8 338 10
+66f1c 4 339 10
+66f20 8 342 10
+66f28 8 340 10
+66f30 4 342 10
+66f34 10 341 10
+66f44 8 275 10
+66f4c 10 280 10
+66f5c 4 282 10
+66f60 4 281 10
+66f64 4 282 10
+66f68 8 280 10
+66f70 8 91 116
+66f78 14 347 10
+66f8c 10 338 10
+66f9c c 350 10
+66fa8 18 353 10
+66fc0 8 91 116
+66fc8 4 91 10
+66fcc 14 100 10
+66fe0 4 100 10
+66fe4 4 390 10
+66fe8 4 100 10
+66fec 10 93 10
+66ffc 10 76 10
+6700c 8 203 57
+67014 4 203 57
+67018 18 42 24
+67030 2c 391 10
+FUNC 6705c 8 0 google_breakpad::LinuxCoreDumper::IsPostMortem
+6705c 8 116 18
+FUNC 67064 8 0 google_breakpad::LinuxCoreDumper::ThreadsSuspend
+67064 8 120 18
+FUNC 6706c 8 0 google_breakpad::LinuxCoreDumper::ThreadsResume
+6706c 8 124 18
+FUNC 67074 64 0 google_breakpad::LinuxCoreDumper::GetThreadInfoByIndex
+67074 8 90 18
+6707c 24 192 139
+670a0 4 92 18
+670a4 c 91 18
+670b0 14 94 18
+670c4 4 103 18
+670c8 4 110 18
+670cc 4 111 18
+670d0 8 112 18
+FUNC 670d8 54 0 google_breakpad::LinuxCoreDumper::CopyFromProcess
+670d8 4 78 18
+670dc 8 83 18
+670e4 4 78 18
+670e8 4 83 18
+670ec 4 78 18
+670f0 4 78 18
+670f4 14 83 18
+67108 4 86 18
+6710c 8 88 18
+67114 c 86 18
+67120 c 88 18
+FUNC 6712c b4 0 google_breakpad::LinuxCoreDumper::BuildProcPath
+6712c 18 57 18
+67144 10 58 18
+67154 c 59 18
+67160 14 61 18
+67174 4 62 18
+67178 c 65 18
+67184 4 66 18
+67188 4 67 18
+6718c 4 65 18
+67190 4 67 18
+67194 10 70 18
+671a4 8 71 18
+671ac 14 72 18
+671c0 4 73 18
+671c4 4 74 18
+671c8 18 75 18
+FUNC 671e0 90 0 std::priv::__ucopy<google_breakpad::ThreadInfo*, google_breakpad::ThreadInfo*, long int>
+671e0 4 82 137
+671e4 4 86 137
+671e8 8 82 137
+671f0 c 86 137
+671fc 4 82 137
+67200 4 86 137
+67204 4 82 137
+67208 8 86 137
+67210 4 82 137
+67214 4 86 137
+67218 4 82 137
+6721c 4 86 137
+67220 8 86 137
+67228 8 139 103
+67230 c 139 103
+6723c 10 86 137
+6724c 24 95 137
+FUNC 67270 84 0 google_breakpad::LinuxCoreDumper::LinuxCoreDumper
+67270 c 46 18
+6727c c 46 18
+67288 20 52 18
+672a8 8 52 18
+672b0 8 52 18
+672b8 4 67 139
+672bc 4 52 18
+672c0 4 67 139
+672c4 4 163 54
+672c8 4 172 54
+672cc 4 481 101
+672d0 4 172 54
+672d4 4 666 139
+672d8 4 667 139
+672dc 8 76 138
+672e4 4 668 139
+672e8 c 54 18
+FUNC 672f4 190 0 std::priv::_Impl_vector<google_breakpad::ThreadInfo, google_breakpad::PageStdAllocator<google_breakpad::ThreadInfo> >::_M_insert_overflow_aux
+672f4 20 81 138
+67314 8 81 138
+6731c 14 192 139
+67330 4 81 138
+67334 c 192 139
+67340 4 81 138
+67344 4 192 139
+67348 1c 173 139
+67364 c 41 138
+67370 14 176 139
+67384 4 175 139
+67388 4 176 139
+6738c 10 176 139
+6739c 10 177 139
+673ac 18 172 54
+673c4 14 113 137
+673d8 8 93 138
+673e0 4 119 103
+673e4 c 119 103
+673f0 8 95 138
+673f8 4 314 137
+673fc 4 249 137
+67400 4 314 137
+67404 14 249 137
+67418 8 249 137
+67420 4 139 103
+67424 10 139 103
+67434 c 249 137
+67440 4 98 138
+67444 14 113 137
+67458 4 104 138
+6745c 4 666 139
+67460 4 667 139
+67464 4 668 139
+67468 1c 105 138
+FUNC 67484 2b4 0 google_breakpad::LinuxCoreDumper::EnumerateThreads
+67484 14 126 18
+67498 4 132 18
+6749c 4 126 18
+674a0 8 132 18
+674a8 10 126 18
+674b8 4 132 18
+674bc 10 133 18
+674cc 14 134 18
+674e0 8 138 18
+674e8 4 139 18
+674ec 8 138 18
+674f4 10 139 18
+67504 1c 140 18
+67520 4 188 18
+67524 4 380 139
+67528 4 202 18
+6752c 4 380 139
+67530 4 162 139
+67534 4 202 18
+67538 c 146 18
+67544 4 147 18
+67548 4 146 18
+6754c 8 147 18
+67554 c 148 18
+67560 4 150 18
+67564 4 148 18
+67568 4 150 18
+6756c 4 150 18
+67570 4 150 18
+67574 8 150 18
+6757c 14 151 18
+67590 4 152 18
+67594 8 151 18
+6759c 8 177 18
+675a4 8 179 18
+675ac 14 180 18
+675c0 8 188 18
+675c8 4 186 18
+675cc 4 188 18
+675d0 4 189 18
+675d4 4 202 18
+675d8 4 189 18
+675dc 4 202 18
+675e0 8 190 18
+675e8 8 202 18
+675f0 4 204 18
+675f4 4 205 18
+675f8 8 206 18
+67600 10 380 139
+67610 4 126 103
+67614 10 382 139
+67624 c 192 139
+67630 c 176 139
+6763c 4 175 139
+67640 10 176 139
+67650 4 177 139
+67654 14 172 54
+67668 4 112 138
+6766c 4 172 54
+67670 8 224 100
+67678 c 224 100
+67684 8 224 100
+6768c 8 481 100
+67694 4 666 139
+67698 4 118 138
+6769c 4 667 139
+676a0 4 668 139
+676a4 10 380 139
+676b4 4 119 103
+676b8 10 119 103
+676c8 10 382 139
+676d8 18 162 139
+676f0 4 208 18
+676f4 c 244 18
+67700 10 145 18
+67710 28 248 18
+FUNC 67738 60 0 google_breakpad::LinuxCoreDumper::EnumerateThreads
+67738 4 126 18
+6773c 4 127 18
+67740 8 126 18
+67748 4 126 18
+6774c 18 127 18
+67764 c 248 18
+67770 18 128 18
+67788 10 248 18
+FUNC 67798 1ac 0 google_breakpad::::ElfFileSoName
+67798 10 193 21
+677a8 4 67 21
+677ac 4 193 21
+677b0 4 67 21
+677b4 c 193 21
+677c0 8 193 21
+677c8 10 67 21
+677d8 4 194 21
+677dc 8 196 21
+677e4 8 200 21
+677ec 4 201 21
+677f0 4 200 21
+677f4 4 201 21
+677f8 10 207 21
+67808 4 210 21
+6780c 8 207 21
+67814 8 210 21
+6781c 4 208 21
+67820 c 210 21
+6782c 4 213 21
+67830 4 211 21
+67834 4 211 21
+67838 4 213 21
+6783c 8 211 21
+67844 10 146 21
+67854 30 155 21
+67884 4 154 21
+67888 4 157 21
+6788c c 216 21
+67898 2c 163 21
+678c4 4 162 21
+678c8 4 169 21
+678cc 4 168 21
+678d0 10 170 21
+678e0 c 171 21
+678ec 8 173 21
+678f4 4 172 21
+678f8 8 173 21
+67900 4 178 21
+67904 18 179 21
+6791c 8 170 21
+67924 20 217 21
+FUNC 67944 120 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping
+67944 4 438 21
+67948 8 454 21
+67950 18 438 21
+67968 20 454 21
+67988 8 455 21
+67990 18 60 49
+679a8 4 456 21
+679ac 10 458 21
+679bc 24 3942 97
+679e0 4 466 21
+679e4 20 3942 97
+67a04 4 3942 97
+67a08 c 3942 97
+67a14 4 464 21
+67a18 10 465 21
+67a28 10 466 21
+67a38 10 471 21
+67a48 1c 473 21
+FUNC 67a64 70 0 google_breakpad::LinuxDumper::~LinuxDumper
+67a64 14 88 21
+67a78 c 88 21
+67a84 4 144 54
+67a88 4 144 54
+67a8c 8 146 54
+67a94 4 145 54
+67a98 18 3074 97
+67ab0 4 3074 97
+67ab4 8 3074 97
+67abc 8 88 21
+67ac4 10 89 21
+FUNC 67ad4 fc 0 google_breakpad::LinuxDumper::GetMappingEffectiveNameAndPath
+67ad4 14 227 21
+67ae8 8 228 21
+67af0 8 227 21
+67af8 c 227 21
+67b04 4 228 21
+67b08 8 235 21
+67b10 8 235 21
+67b18 14 236 21
+67b2c 4 238 21
+67b30 c 243 21
+67b3c 8 243 21
+67b44 10 243 21
+67b54 14 244 21
+67b68 4 255 21
+67b6c c 245 21
+67b78 c 255 21
+67b84 4 245 21
+67b88 c 251 21
+67b94 4 252 21
+67b98 4 251 21
+67b9c c 253 21
+67ba8 10 255 21
+67bb8 4 253 21
+67bbc 14 255 21
+FUNC 67bd0 11c 0 google_breakpad::LinuxDumper::ReadAuxv
+67bd0 4 257 21
+67bd4 4 259 21
+67bd8 c 257 21
+67be4 c 259 21
+67bf0 4 257 21
+67bf4 18 259 21
+67c0c 8 260 21
+67c14 24 3281 97
+67c38 4 3281 97
+67c3c 4 3281 97
+67c40 8 3281 97
+67c48 4 3281 97
+67c4c 8 264 21
+67c54 24 3104 97
+67c78 4 3104 97
+67c7c c 3104 97
+67c88 8 272 21
+67c90 4 273 21
+67c94 4 272 21
+67c98 8 274 21
+67ca0 4 275 21
+67ca4 4 276 21
+67ca8 c 275 21
+67cb4 18 2979 97
+67ccc 4 2979 97
+67cd0 8 2979 97
+67cd8 4 280 21
+67cdc 10 281 21
+FUNC 67cec 5c 0 google_breakpad::LinuxDumper::Init
+67cec c 91 21
+67cf8 4 91 21
+67cfc c 92 21
+67d08 8 92 21
+67d10 4 92 21
+67d14 10 92 21
+67d24 4 92 21
+67d28 4 92 21
+67d2c 10 92 21
+67d3c c 93 21
+FUNC 67d48 4c 0 google_breakpad::LinuxDumper::FindMapping
+67d48 4 192 139
+67d4c 4 429 21
+67d50 c 192 139
+67d5c 8 429 21
+67d64 8 430 21
+67d6c 8 431 21
+67d74 10 431 21
+67d84 8 429 21
+67d8c 4 435 21
+67d90 4 436 21
+FUNC 67d94 84 0 google_breakpad::LinuxDumper::GetStackInfo
+67d94 10 402 21
+67da4 10 402 21
+67db4 8 404 21
+67dbc 4 407 21
+67dc0 4 412 21
+67dc4 4 407 21
+67dc8 8 412 21
+67dd0 4 414 21
+67dd4 4 413 21
+67dd8 4 416 21
+67ddc 4 422 21
+67de0 4 418 21
+67de4 4 420 21
+67de8 4 416 21
+67dec 4 420 21
+67df0 4 418 21
+67df4 8 420 21
+67dfc 4 420 21
+67e00 4 421 21
+67e04 14 423 21
+FUNC 67e18 64 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping
+67e18 c 438 21
+67e24 4 438 21
+67e28 4 443 21
+67e2c 4 438 21
+67e30 4 443 21
+67e34 8 444 21
+67e3c 4 446 21
+67e40 14 447 21
+67e54 c 446 21
+67e60 1c 473 21
+FUNC 67e7c 1bc 0 google_breakpad::LinuxDumper::ElfFileIdentifierForMapping
+67e7c 1c 99 21
+67e98 8 101 21
+67ea0 4 99 21
+67ea4 4 101 21
+67ea8 8 99 21
+67eb0 8 99 21
+67eb8 4 101 21
+67ebc 18 67 21
+67ed4 4 102 21
+67ed8 8 103 21
+67ee0 14 106 21
+67ef4 4 108 21
+67ef8 14 3026 97
+67f0c 4 3026 97
+67f10 4 3026 97
+67f14 8 3026 97
+67f1c 8 108 21
+67f24 8 109 21
+67f2c 10 111 21
+67f3c 20 114 21
+67f5c 14 116 21
+67f70 8 120 21
+67f78 4 121 21
+67f7c 4 120 21
+67f80 4 121 21
+67f84 10 125 21
+67f94 4 129 21
+67f98 4 125 21
+67f9c 4 126 21
+67fa0 10 127 21
+67fb0 14 129 21
+67fc4 4 131 21
+67fc8 4 130 21
+67fcc 4 130 21
+67fd0 4 131 21
+67fd4 8 130 21
+67fdc c 134 21
+67fe8 8 135 21
+67ff0 4 135 21
+67ff4 10 137 21
+68004 c 140 21
+68010 8 134 21
+68018 20 141 21
+FUNC 68038 f4 0 std::priv::_Impl_vector<void*, google_breakpad::PageStdAllocator<void*> >::_M_insert_overflow
+68038 14 108 138
+6804c 8 108 138
+68054 4 192 139
+68058 4 108 138
+6805c 4 192 139
+68060 4 108 138
+68064 4 192 139
+68068 4 173 139
+6806c 4 192 139
+68070 c 173 139
+6807c 14 41 138
+68090 4 175 139
+68094 10 176 139
+680a4 4 177 139
+680a8 18 172 54
+680c0 18 112 138
+680d8 8 480 100
+680e0 14 481 100
+680f4 4 115 138
+680f8 10 116 138
+68108 4 118 138
+6810c 4 666 139
+68110 4 667 139
+68114 4 668 139
+68118 14 119 138
+FUNC 6812c 148 0 std::priv::_Impl_vector<long unsigned int, google_breakpad::PageStdAllocator<long unsigned int> >::_M_fill_insert_aux
+6812c 18 140 138
+68144 c 140 138
+68150 4 416 139
+68154 8 140 138
+6815c 8 416 139
+68164 8 416 139
+6816c 8 150 138
+68174 8 152 138
+6817c 4 153 138
+68180 4 120 137
+68184 4 153 138
+68188 c 120 137
+68194 4 154 138
+68198 4 255 100
+6819c 4 256 100
+681a0 8 154 138
+681a8 4 256 100
+681ac c 256 100
+681b8 c 442 100
+681c4 8 442 100
+681cc 10 443 100
+681dc 4 158 138
+681e0 4 249 137
+681e4 8 314 137
+681ec 8 249 137
+681f4 c 249 137
+68200 c 146 103
+6820c 4 158 138
+68210 c 120 137
+6821c 14 160 138
+68230 8 442 100
+68238 10 443 100
+68248 c 146 138
+68254 8 147 138
+6825c 18 163 138
+FUNC 68274 100 0 google_breakpad::LinuxDumper::LinuxDumper
+68274 10 75 21
+68284 c 82 21
+68290 4 75 21
+68294 4 67 139
+68298 14 82 21
+682ac 4 64 54
+682b0 8 67 54
+682b8 4 172 54
+682bc 4 67 54
+682c0 4 172 54
+682c4 8 67 54
+682cc 8 67 139
+682d4 4 163 54
+682d8 4 481 101
+682dc 4 172 54
+682e0 4 666 139
+682e4 4 667 139
+682e8 4 76 138
+682ec 4 67 139
+682f0 4 172 54
+682f4 4 668 139
+682f8 4 172 54
+682fc 4 67 139
+68300 4 163 54
+68304 4 481 101
+68308 4 172 54
+6830c 4 666 139
+68310 4 667 139
+68314 4 76 138
+68318 4 67 139
+6831c 4 172 54
+68320 4 668 139
+68324 4 172 54
+68328 4 67 139
+6832c 4 163 54
+68330 4 481 101
+68334 8 172 54
+6833c 4 85 21
+68340 4 76 138
+68344 4 666 139
+68348 4 173 138
+6834c 4 667 139
+68350 4 173 138
+68354 4 668 139
+68358 4 173 138
+6835c 4 85 21
+68360 4 173 138
+68364 10 86 21
+FUNC 68374 148 0 std::priv::_Impl_vector<void*, google_breakpad::PageStdAllocator<void*> >::_M_fill_insert_aux
+68374 18 140 138
+6838c c 140 138
+68398 4 416 139
+6839c 8 140 138
+683a4 8 416 139
+683ac 8 416 139
+683b4 8 150 138
+683bc 8 152 138
+683c4 4 153 138
+683c8 4 120 137
+683cc 4 153 138
+683d0 c 120 137
+683dc 4 154 138
+683e0 4 255 100
+683e4 4 256 100
+683e8 8 154 138
+683f0 4 256 100
+683f4 c 256 100
+68400 c 442 100
+6840c 8 442 100
+68414 10 443 100
+68424 4 158 138
+68428 4 249 137
+6842c 8 314 137
+68434 8 249 137
+6843c c 249 137
+68448 c 146 103
+68454 4 158 138
+68458 c 120 137
+68464 14 160 138
+68478 8 442 100
+68480 10 443 100
+68490 c 146 138
+6849c 8 147 138
+684a4 18 163 138
+FUNC 684bc 58c 0 google_breakpad::LinuxDumper::EnumerateMappings
+684bc 4 283 21
+684c0 4 285 21
+684c4 24 283 21
+684e8 c 285 21
+684f4 4 283 21
+684f8 18 285 21
+68510 c 286 21
+6851c 8 3281 97
+68524 4 296 21
+68528 4 300 21
+6852c 4 296 21
+68530 4 3281 97
+68534 4 300 21
+68538 18 3281 97
+68550 4 3281 97
+68554 4 3281 97
+68558 8 3281 97
+68560 4 3281 97
+68564 4 303 21
+68568 4 305 21
+6856c 4 208 54
+68570 4 312 21
+68574 4 314 21
+68578 4 305 21
+6857c 4 357 21
+68580 8 208 54
+68588 c 49 16
+68594 c 351 21
+685a0 4 99 16
+685a4 4 103 16
+685a8 8 66 16
+685b0 8 66 16
+685b8 4 66 16
+685bc 14 69 16
+685d0 10 70 16
+685e0 4 71 16
+685e4 4 73 16
+685e8 8 71 16
+685f0 8 78 16
+685f8 c 86 16
+68604 4 90 16
+68608 4 92 16
+6860c 4 93 16
+68610 4 66 16
+68614 4 90 16
+68618 8 92 16
+68620 4 98 16
+68624 4 3104 97
+68628 4 98 16
+6862c 4 99 16
+68630 14 3104 97
+68644 4 3104 97
+68648 c 3104 97
+68654 8 100 16
+6865c 4 102 16
+68660 8 103 16
+68668 10 105 16
+68678 1c 2979 97
+68694 4 2979 97
+68698 8 2979 97
+686a0 14 395 21
+686b4 10 312 21
+686c4 c 313 21
+686d0 10 314 21
+686e0 c 315 21
+686ec 4 316 21
+686f0 8 317 21
+686f8 4 316 21
+686fc 8 317 21
+68704 c 318 21
+68710 14 323 21
+68724 c 322 21
+68730 14 323 21
+68744 4 330 21
+68748 4 200 139
+6874c c 330 21
+68758 4 344 21
+6875c 4 200 139
+68760 10 344 21
+68770 4 331 21
+68774 c 332 21
+68780 c 333 21
+6878c c 333 21
+68798 4 333 21
+6879c c 333 21
+687a8 c 332 21
+687b4 c 208 54
+687c0 4 357 21
+687c4 c 358 21
+687d0 c 359 21
+687dc 14 360 21
+687f0 8 361 21
+687f8 10 316 21
+68808 4 363 21
+6880c 8 364 21
+68814 c 365 21
+68820 10 366 21
+68830 8 377 21
+68838 4 374 21
+6883c 4 373 21
+68840 4 374 21
+68844 8 373 21
+6884c 8 377 21
+68854 8 375 21
+6885c 8 200 139
+68864 c 377 21
+68870 8 383 21
+68878 10 390 21
+68888 4 325 21
+6888c 4 326 21
+68890 8 325 21
+68898 c 334 21
+688a4 c 334 21
+688b0 4 333 21
+688b4 14 335 21
+688c8 4 345 21
+688cc c 346 21
+688d8 c 349 21
+688e4 8 346 21
+688ec c 347 21
+688f8 8 348 21
+68900 14 351 21
+68914 8 349 21
+6891c 14 352 21
+68930 14 380 139
+68944 4 126 103
+68948 10 382 139
+68958 1c 386 139
+68974 4 192 139
+68978 4 380 21
+6897c 4 192 139
+68980 8 380 21
+68988 8 640 139
+68990 4 641 139
+68994 8 630 139
+6899c c 269 100
+689a8 8 615 139
+689b0 8 172 138
+689b8 4 173 138
+689bc 8 172 138
+689c4 4 173 138
+689c8 4 172 138
+689cc c 173 138
+689d8 10 176 138
+689e8 14 192 139
+689fc 8 381 21
+68a04 4 381 21
+68a08 4 202 139
+68a0c 14 382 21
+68a20 28 396 21
+FUNC 68a48 8 0 google_breakpad::LinuxPtraceDumper::IsPostMortem
+68a48 8 275 23
+FUNC 68a50 48 0 sys_ptrace
+68a50 14 3097 97
+68a64 14 3097 97
+68a78 4 3097 97
+68a7c 4 3097 97
+68a80 8 3097 97
+68a88 10 3097 97
+FUNC 68a98 a0 0 google_breakpad::LinuxPtraceDumper::CopyFromProcess
+68a98 4 134 23
+68a9c 4 135 23
+68aa0 8 134 23
+68aa8 4 135 23
+68aac 10 134 23
+68abc c 134 23
+68ac8 4 135 23
+68acc 4 136 23
+68ad0 4 142 23
+68ad4 8 141 23
+68adc 4 142 23
+68ae0 4 143 23
+68ae4 4 142 23
+68ae8 c 143 23
+68af4 4 142 23
+68af8 c 143 23
+68b04 4 144 23
+68b08 c 146 23
+68b14 4 147 23
+68b18 8 146 23
+68b20 18 149 23
+FUNC 68b38 e4 0 google_breakpad::LinuxPtraceDumper::BuildProcPath
+68b38 4 112 23
+68b3c 4 113 23
+68b40 c 112 23
+68b4c 4 113 23
+68b50 4 113 23
+68b54 4 112 23
+68b58 4 113 23
+68b5c 8 112 23
+68b64 8 113 23
+68b6c 4 113 23
+68b70 8 113 23
+68b78 8 114 23
+68b80 14 116 23
+68b94 4 117 23
+68b98 c 120 23
+68ba4 8 121 23
+68bac 8 122 23
+68bb4 4 125 23
+68bb8 4 126 23
+68bbc 10 125 23
+68bcc 4 126 23
+68bd0 4 125 23
+68bd4 8 126 23
+68bdc 8 127 23
+68be4 4 128 23
+68be8 4 127 23
+68bec 10 128 23
+68bfc 4 129 23
+68c00 4 130 23
+68c04 18 131 23
+FUNC 68c1c 78 0 google_breakpad::LinuxPtraceDumper::ThreadsResume
+68c1c 10 295 23
+68c2c 14 296 23
+68c40 c 192 139
+68c4c 8 299 23
+68c54 10 101 23
+68c64 4 299 23
+68c68 c 101 23
+68c74 8 300 23
+68c7c 4 301 23
+68c80 14 303 23
+FUNC 68c94 2dc 0 google_breakpad::LinuxPtraceDumper::GetThreadInfoByIndex
+68c94 1c 155 23
+68cb0 c 192 139
+68cbc 8 156 23
+68cc4 8 157 23
+68ccc 4 159 23
+68cd0 30 163 23
+68d00 24 3281 97
+68d24 4 3281 97
+68d28 4 3281 97
+68d2c 8 3281 97
+68d34 4 3281 97
+68d38 4 167 23
+68d3c 8 208 54
+68d44 4 177 23
+68d48 4 179 23
+68d4c 4 208 54
+68d50 8 49 16
+68d58 4 208 54
+68d5c 4 49 16
+68d60 4 99 16
+68d64 4 174 23
+68d68 4 177 23
+68d6c 4 174 23
+68d70 4 179 23
+68d74 4 174 23
+68d78 4 103 16
+68d7c 8 66 16
+68d84 8 66 16
+68d8c 4 66 16
+68d90 14 69 16
+68da4 10 70 16
+68db4 4 71 16
+68db8 4 73 16
+68dbc 8 71 16
+68dc4 8 78 16
+68dcc c 86 16
+68dd8 4 90 16
+68ddc 4 92 16
+68de0 4 93 16
+68de4 4 66 16
+68de8 4 90 16
+68dec 8 92 16
+68df4 4 98 16
+68df8 4 3104 97
+68dfc 4 98 16
+68e00 4 99 16
+68e04 14 3104 97
+68e18 4 3104 97
+68e1c c 3104 97
+68e28 8 100 16
+68e30 4 102 16
+68e34 8 103 16
+68e3c 10 105 16
+68e4c 18 2979 97
+68e64 4 2979 97
+68e68 8 2979 97
+68e70 c 187 23
+68e7c c 187 23
+68e88 c 192 23
+68e94 4 193 23
+68e98 4 194 23
+68e9c 4 193 23
+68ea0 18 194 23
+68eb8 8 198 23
+68ec0 4 199 23
+68ec4 4 200 23
+68ec8 4 199 23
+68ecc 18 200 23
+68ee4 4 261 23
+68ee8 4 268 23
+68eec 4 270 23
+68ef0 14 177 23
+68f04 8 178 23
+68f0c 14 179 23
+68f20 10 180 23
+68f30 10 118 16
+68f40 8 117 16
+68f48 8 118 16
+68f50 20 271 23
+FUNC 68f70 30 0 google_breakpad::LinuxPtraceDumper::LinuxPtraceDumper
+68f70 c 106 23
+68f7c 4 106 23
+68f80 14 108 23
+68f94 c 109 23
+FUNC 68fa0 110 0 std::priv::_Impl_vector<int, google_breakpad::PageStdAllocator<int> >::_M_insert_overflow
+68fa0 1c 108 138
+68fbc 4 108 138
+68fc0 8 192 139
+68fc8 c 108 138
+68fd4 8 192 139
+68fdc 10 173 139
+68fec 14 41 138
+69000 4 175 139
+69004 10 176 139
+69014 4 177 139
+69018 14 172 54
+6902c 4 112 138
+69030 4 172 54
+69034 8 224 100
+6903c 8 224 100
+69044 4 224 100
+69048 4 172 54
+6904c 8 480 100
+69054 14 481 100
+69068 4 115 138
+6906c 4 223 100
+69070 8 224 100
+69078 c 224 100
+69084 4 224 100
+69088 4 118 138
+6908c 4 666 139
+69090 4 667 139
+69094 4 668 139
+69098 18 119 138
+FUNC 690b0 240 0 google_breakpad::LinuxPtraceDumper::EnumerateThreads
+690b0 4 307 23
+690b4 4 309 23
+690b8 1c 307 23
+690d4 10 309 23
+690e4 4 307 23
+690e8 14 309 23
+690fc 8 310 23
+69104 24 3281 97
+69128 4 3281 97
+6912c 4 3281 97
+69130 8 3281 97
+69138 4 3281 97
+6913c 4 313 23
+69140 8 208 54
+69148 4 322 23
+6914c 4 323 23
+69150 4 208 54
+69154 4 319 23
+69158 4 208 54
+6915c 8 51 14
+69164 4 322 23
+69168 4 323 23
+6916c 4 324 23
+69170 4 386 139
+69174 4 65 14
+69178 4 63 14
+6917c 4 65 14
+69180 20 3016 97
+691a0 4 3016 97
+691a4 c 3016 97
+691b0 8 68 14
+691b8 4 70 14
+691bc c 71 14
+691c8 c 73 14
+691d4 8 77 14
+691dc 8 77 14
+691e4 4 82 14
+691e8 10 322 23
+691f8 c 323 23
+69204 4 322 23
+69208 8 325 23
+69210 8 324 23
+69218 c 325 23
+69224 4 326 23
+69228 c 325 23
+69234 8 87 14
+6923c 4 93 14
+69240 c 94 14
+6924c 8 93 14
+69254 c 94 14
+69260 14 380 139
+69274 4 126 103
+69278 10 382 139
+69288 1c 386 139
+692a4 1c 2979 97
+692c0 4 2979 97
+692c4 8 2979 97
+692cc 24 336 23
+FUNC 692f0 154 0 std::priv::_Impl_vector<int, google_breakpad::PageStdAllocator<int> >::_M_fill_insert_aux
+692f0 14 140 138
+69304 8 140 138
+6930c 4 416 139
+69310 c 140 138
+6931c 8 416 139
+69324 8 416 139
+6932c 8 150 138
+69334 8 152 138
+6933c 8 153 138
+69344 8 107 137
+6934c 14 106 137
+69360 4 154 138
+69364 4 255 100
+69368 4 256 100
+6936c 8 154 138
+69374 4 256 100
+69378 c 256 100
+69384 c 442 100
+69390 8 442 100
+69398 10 443 100
+693a8 4 158 138
+693ac 4 249 137
+693b0 8 314 137
+693b8 8 249 137
+693c0 c 249 137
+693cc c 146 103
+693d8 4 158 138
+693dc 8 107 137
+693e4 c 106 137
+693f0 14 160 138
+69404 8 442 100
+6940c 10 443 100
+6941c c 146 138
+69428 8 147 138
+69430 14 163 138
+FUNC 69444 1a4 0 google_breakpad::LinuxPtraceDumper::ThreadsSuspend
+69444 18 277 23
+6945c 10 278 23
+6946c 1c 192 139
+69488 8 280 23
+69490 4 202 139
+69494 4 281 23
+69498 4 65 23
+6949c 4 66 23
+694a0 8 65 23
+694a8 14 66 23
+694bc 4 67 23
+694c0 4 66 23
+694c4 24 3272 97
+694e8 8 3272 97
+694f0 c 71 23
+694fc 18 72 23
+69514 10 70 23
+69524 4 192 139
+69528 4 202 139
+6952c 4 286 23
+69530 4 192 139
+69534 4 286 23
+69538 4 286 23
+6953c 8 286 23
+69544 4 287 23
+69548 10 192 139
+69558 8 640 139
+69560 4 641 139
+69564 8 630 139
+6956c 8 615 139
+69574 c 172 138
+69580 4 173 138
+69584 8 172 138
+6958c 10 173 138
+6959c 14 176 138
+695b0 4 288 23
+695b4 8 280 23
+695bc 4 292 23
+695c0 4 291 23
+695c4 4 292 23
+695c8 4 291 23
+695cc 1c 293 23
+FUNC 695e8 44 0 sys_read
+695e8 10 3104 97
+695f8 14 3104 97
+6960c 4 3104 97
+69610 4 3104 97
+69614 8 3104 97
+6961c 10 3104 97
+FUNC 6962c 78 0 MinidumpWriter::Init
+6962c c 144 26
+69638 4 144 26
+6963c 18 145 26
+69654 8 146 26
+6965c 10 148 26
+6966c 8 149 26
+69674 10 150 26
+69684 14 153 26
+69698 c 154 26
+FUNC 696a4 50 0 sys_open
+696a4 4 3961 97
+696a8 4 3281 97
+696ac c 3961 97
+696b8 1c 3281 97
+696d4 4 3281 97
+696d8 4 3281 97
+696dc 8 3281 97
+696e4 10 3963 97
+FUNC 696f4 184 0 MinidumpWriter::FillRawModule
+696f4 20 534 26
+69714 4 539 26
+69718 4 534 26
+6971c 8 539 26
+69724 c 534 26
+69730 4 548 26
+69734 4 534 26
+69738 4 539 26
+6973c 4 541 26
+69740 4 548 26
+69744 4 541 26
+69748 4 552 26
+6974c 8 542 26
+69754 c 548 26
+69760 8 552 26
+69768 c 554 26
+69774 10 558 26
+69784 c 560 26
+69790 8 566 26
+69798 4 569 26
+6979c 4 560 26
+697a0 14 566 26
+697b4 4 161 33
+697b8 4 566 26
+697bc c 568 26
+697c8 4 161 33
+697cc 4 570 26
+697d0 4 161 33
+697d4 8 570 26
+697dc 8 161 33
+697e4 c 570 26
+697f0 8 571 26
+697f8 10 574 26
+69808 14 186 33
+6981c 8 176 33
+69824 4 580 26
+69828 4 176 33
+6982c 4 577 26
+69830 c 580 26
+6983c 14 580 26
+69850 4 580 26
+69854 8 582 26
+6985c 1c 584 26
+FUNC 69878 48 0 MinidumpWriter::~MinidumpWriter
+69878 c 156 26
+69884 4 159 26
+69888 4 156 26
+6988c c 159 26
+69898 8 160 26
+698a0 10 161 26
+698b0 4 156 26
+698b4 8 162 26
+698bc 4 156 26
+FUNC 698c0 ec 0 MinidumpWriter::WriteExceptionStream
+698c0 4 611 26
+698c4 4 212 33
+698c8 c 611 26
+698d4 4 161 33
+698d8 4 612 26
+698dc 4 611 26
+698e0 4 161 33
+698e4 4 212 33
+698e8 4 161 33
+698ec 4 611 26
+698f0 4 161 33
+698f4 4 611 26
+698f8 8 212 33
+69900 4 161 33
+69904 4 212 33
+69908 4 46 31
+6990c 4 47 31
+69910 4 46 31
+69914 10 47 31
+69924 4 613 26
+69928 10 615 26
+69938 8 617 26
+69940 8 176 33
+69948 c 618 26
+69954 8 620 26
+6995c c 621 26
+69968 4 622 26
+6996c 8 623 26
+69974 c 216 33
+69980 14 92 31
+69994 18 626 26
+FUNC 699ac 18 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex
+699ac 4 76 31
+699b0 14 76 31
+FUNC 699c4 28 0 google_breakpad::TypedMDRVA<MDRawContextARM64>::~TypedMDRVA
+699c4 4 214 33
+699c8 c 216 33
+699d4 14 92 31
+699e8 4 218 33
+FUNC 699ec 14 0 google_breakpad::TypedMDRVA<unsigned int>::CopyIndexAfterObject
+699ec 14 87 31
+FUNC 69a00 120 0 MinidumpWriter::WriteMemoryListStream
+69a00 10 586 26
+69a10 4 587 26
+69a14 4 586 26
+69a18 4 192 139
+69a1c 8 161 33
+69a24 4 586 26
+69a28 8 161 33
+69a30 8 192 139
+69a38 4 161 33
+69a3c 4 192 139
+69a40 4 212 33
+69a44 4 192 139
+69a48 4 588 26
+69a4c 4 67 31
+69a50 4 68 31
+69a54 4 67 31
+69a58 c 68 31
+69a64 4 589 26
+69a68 8 599 26
+69a70 8 176 33
+69a78 8 600 26
+69a80 4 192 139
+69a84 4 604 26
+69a88 c 192 139
+69a94 4 602 26
+69a98 4 604 26
+69a9c 8 591 26
+69aa4 4 46 31
+69aa8 4 47 31
+69aac 4 46 31
+69ab0 8 47 31
+69ab8 c 192 139
+69ac4 8 604 26
+69acc 10 606 26
+69adc 4 604 26
+69ae0 8 606 26
+69ae8 4 608 26
+69aec c 216 33
+69af8 14 92 31
+69b0c 14 609 26
+FUNC 69b20 2c8 0 MinidumpWriter::WriteMappings
+69b20 18 481 26
+69b38 8 481 26
+69b40 4 317 114
+69b44 4 482 26
+69b48 4 483 26
+69b4c 14 192 139
+69b60 4 318 114
+69b64 8 319 114
+69b6c 4 91 116
+69b70 8 320 114
+69b78 4 485 26
+69b7c c 485 26
+69b88 4 486 26
+69b8c 8 449 26
+69b94 8 449 26
+69b9c 8 452 26
+69ba4 4 453 26
+69ba8 c 452 26
+69bb4 8 463 26
+69bbc 10 468 26
+69bcc 4 470 26
+69bd0 4 469 26
+69bd4 4 470 26
+69bd8 8 468 26
+69be0 8 91 116
+69be8 4 488 26
+69bec 8 485 26
+69bf4 4 491 26
+69bf8 14 161 33
+69c0c 4 212 33
+69c10 4 492 26
+69c14 4 67 31
+69c18 4 68 31
+69c1c 4 67 31
+69c20 8 68 31
+69c28 c 68 31
+69c34 4 493 26
+69c38 8 502 26
+69c40 4 176 33
+69c44 4 508 26
+69c48 4 176 33
+69c4c 4 514 26
+69c50 8 503 26
+69c58 4 507 26
+69c5c 4 504 26
+69c60 4 508 26
+69c64 8 494 26
+69c6c 4 46 31
+69c70 4 47 31
+69c74 4 46 31
+69c78 c 47 31
+69c84 8 509 26
+69c8c c 449 26
+69c98 10 508 26
+69ca8 8 449 26
+69cb0 8 452 26
+69cb8 4 453 26
+69cbc 10 452 26
+69ccc 8 523 26
+69cd4 c 519 26
+69ce0 20 523 26
+69d00 4 523 26
+69d04 1c 525 26
+69d20 8 91 116
+69d28 4 528 26
+69d2c c 216 33
+69d38 20 92 31
+69d58 8 463 26
+69d60 10 468 26
+69d70 4 470 26
+69d74 4 469 26
+69d78 4 470 26
+69d7c 8 468 26
+69d84 8 91 116
+69d8c 20 514 26
+69dac 20 516 26
+69dcc 1c 529 26
+FUNC 69de8 28 0 google_breakpad::TypedMDRVA<MDRawLinkMap>::~TypedMDRVA
+69de8 4 214 33
+69dec c 216 33
+69df8 14 92 31
+69e0c 4 218 33
+FUNC 69e10 b8 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::reserve
+69e10 14 62 138
+69e24 c 199 139
+69e30 c 63 138
+69e3c c 64 138
+69e48 c 41 138
+69e54 8 192 139
+69e5c 8 172 54
+69e64 8 192 139
+69e6c 4 70 138
+69e70 4 172 54
+69e74 4 84 137
+69e78 8 86 137
+69e80 4 139 103
+69e84 8 139 103
+69e8c 4 88 137
+69e90 4 89 137
+69e94 8 86 137
+69e9c 4 172 54
+69ea0 8 76 138
+69ea8 4 666 139
+69eac 4 667 139
+69eb0 4 668 139
+69eb4 14 78 138
+FUNC 69ec8 17c 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::_M_insert_overflow_aux
+69ec8 14 81 138
+69edc 8 81 138
+69ee4 10 192 139
+69ef4 10 173 139
+69f04 14 41 138
+69f18 4 175 139
+69f1c 10 176 139
+69f2c 4 177 139
+69f30 18 172 54
+69f48 4 84 137
+69f4c 8 91 138
+69f54 10 86 137
+69f64 8 86 137
+69f6c 4 139 103
+69f70 8 139 103
+69f78 4 88 137
+69f7c 4 89 137
+69f80 10 86 137
+69f90 c 93 138
+69f9c 4 119 103
+69fa0 8 119 103
+69fa8 8 95 138
+69fb0 8 314 137
+69fb8 4 249 137
+69fbc 8 249 137
+69fc4 4 139 103
+69fc8 8 139 103
+69fd0 c 249 137
+69fdc 4 98 138
+69fe0 c 86 137
+69fec 4 84 137
+69ff0 4 86 137
+69ff4 8 86 137
+69ffc 4 139 103
+6a000 8 139 103
+6a008 4 88 137
+6a00c 4 89 137
+6a010 14 86 137
+6a024 4 104 138
+6a028 4 666 139
+6a02c 4 667 139
+6a030 4 668 139
+6a034 10 105 138
+FUNC 6a044 54 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::push_back
+6a044 10 376 139
+6a054 10 380 139
+6a064 4 119 103
+6a068 8 119 103
+6a070 10 382 139
+6a080 10 162 139
+6a090 8 388 139
+FUNC 6a098 124 0 MinidumpWriter::FillThreadStack
+6a098 14 256 26
+6a0ac 4 256 26
+6a0b0 4 258 26
+6a0b4 c 256 26
+6a0c0 10 261 26
+6a0d0 4 256 26
+6a0d4 c 261 26
+6a0e0 4 262 26
+6a0e4 10 161 33
+6a0f4 4 263 26
+6a0f8 c 263 26
+6a104 4 265 26
+6a108 18 267 26
+6a120 4 100 22
+6a124 c 772 26
+6a130 4 269 26
+6a134 4 772 26
+6a138 1c 271 26
+6a154 14 186 33
+6a168 4 274 26
+6a16c 4 173 143
+6a170 4 274 26
+6a174 8 176 33
+6a17c 8 275 26
+6a184 c 173 143
+6a190 4 278 26
+6a194 4 282 26
+6a198 8 279 26
+6a1a0 4 280 26
+6a1a4 18 283 26
+FUNC 6a1bc 4c8 0 MinidumpWriter::WriteThreadListStream
+6a1bc 2c 286 26
+6a1e8 4 286 26
+6a1ec 4 287 26
+6a1f0 4 286 26
+6a1f4 4 161 33
+6a1f8 4 289 26
+6a1fc 4 161 33
+6a200 4 67 31
+6a204 8 192 139
+6a20c 4 161 33
+6a210 4 192 139
+6a214 4 68 31
+6a218 4 192 139
+6a21c 8 161 33
+6a224 4 290 26
+6a228 4 212 33
+6a22c 4 68 31
+6a230 4 68 31
+6a234 4 67 31
+6a238 c 68 31
+6a244 4 290 26
+6a248 c 176 33
+6a254 4 303 26
+6a258 4 293 26
+6a25c 4 294 26
+6a260 4 296 26
+6a264 4 304 26
+6a268 4 287 26
+6a26c 4 303 26
+6a270 8 304 26
+6a278 8 308 26
+6a280 10 310 26
+6a290 4 161 33
+6a294 4 313 26
+6a298 4 315 26
+6a29c 4 388 26
+6a2a0 4 396 26
+6a2a4 4 212 33
+6a2a8 10 313 26
+6a2b8 14 315 26
+6a2cc 14 316 26
+6a2e0 4 323 26
+6a2e4 4 316 26
+6a2e8 8 323 26
+6a2f0 8 322 26
+6a2f8 14 324 26
+6a30c 4 323 26
+6a310 20 388 26
+6a330 c 393 26
+6a33c 4 393 26
+6a340 4 394 26
+6a344 4 393 26
+6a348 18 396 26
+6a360 8 395 26
+6a368 c 216 33
+6a374 18 92 31
+6a38c 8 392 26
+6a394 4 161 33
+6a398 4 212 33
+6a39c 4 161 33
+6a3a0 4 212 33
+6a3a4 4 161 33
+6a3a8 4 212 33
+6a3ac 4 161 33
+6a3b0 4 212 33
+6a3b4 4 46 31
+6a3b8 4 47 31
+6a3bc 4 46 31
+6a3c0 c 47 31
+6a3cc 4 400 26
+6a3d0 c 401 26
+6a3dc 10 402 26
+6a3ec c 403 26
+6a3f8 8 404 26
+6a400 c 405 26
+6a40c 8 407 26
+6a414 8 176 33
+6a41c 4 407 26
+6a420 8 406 26
+6a428 10 407 26
+6a438 8 408 26
+6a440 14 409 26
+6a454 10 413 26
+6a464 8 123 22
+6a46c c 415 26
+6a478 18 418 26
+6a490 c 326 26
+6a49c 1c 327 26
+6a4b8 8 332 26
+6a4c0 4 338 26
+6a4c4 4 338 26
+6a4c8 10 192 139
+6a4d8 c 338 26
+6a4e4 4 339 26
+6a4e8 c 340 26
+6a4f4 8 341 26
+6a4fc 8 340 26
+6a504 4 347 26
+6a508 c 349 26
+6a514 4 347 26
+6a518 4 350 26
+6a51c 4 161 33
+6a520 4 350 26
+6a524 10 161 33
+6a534 4 352 26
+6a538 4 161 33
+6a53c 4 359 26
+6a540 4 352 26
+6a544 c 359 26
+6a550 4 100 22
+6a554 10 772 26
+6a564 24 367 26
+6a588 18 186 33
+6a5a0 c 176 33
+6a5ac 4 173 143
+6a5b0 4 369 26
+6a5b4 c 173 143
+6a5c0 8 338 26
+6a5c8 4 161 33
+6a5cc 4 212 33
+6a5d0 4 161 33
+6a5d4 4 212 33
+6a5d8 4 161 33
+6a5dc 4 212 33
+6a5e0 4 161 33
+6a5e4 4 212 33
+6a5e8 4 46 31
+6a5ec 4 47 31
+6a5f0 4 46 31
+6a5f4 c 47 31
+6a600 4 374 26
+6a604 10 376 26
+6a614 10 378 26
+6a624 8 382 26
+6a62c c 383 26
+6a638 8 176 33
+6a640 8 384 26
+6a648 c 385 26
+6a654 30 422 26
+FUNC 6a684 f4 0 MinidumpWriter::WriteAppMemory
+6a684 18 425 26
+6a69c 4 425 26
+6a6a0 4 161 33
+6a6a4 8 434 26
+6a6ac 4 440 26
+6a6b0 8 173 143
+6a6b8 c 426 26
+6a6c4 4 100 22
+6a6c8 10 430 26
+6a6d8 4 432 26
+6a6dc 8 432 26
+6a6e4 4 432 26
+6a6e8 10 432 26
+6a6f8 8 161 33
+6a700 4 435 26
+6a704 4 161 33
+6a708 4 435 26
+6a70c 4 161 33
+6a710 8 435 26
+6a718 4 435 26
+6a71c 14 186 33
+6a730 4 440 26
+6a734 4 176 33
+6a738 4 440 26
+6a73c 8 176 33
+6a744 4 173 143
+6a748 4 441 26
+6a74c 8 173 143
+6a754 8 91 116
+6a75c 4 445 26
+6a760 18 446 26
+FUNC 6a778 130 0 std::priv::_Impl_vector<char, google_breakpad::PageStdAllocator<char> >::_M_fill_insert_aux
+6a778 14 140 138
+6a78c c 140 138
+6a798 4 416 139
+6a79c 8 140 138
+6a7a4 8 416 139
+6a7ac 8 416 139
+6a7b4 4 150 138
+6a7b8 8 152 138
+6a7c0 4 153 138
+6a7c4 8 107 137
+6a7cc 14 106 137
+6a7e0 4 154 138
+6a7e4 4 255 100
+6a7e8 4 256 100
+6a7ec 8 154 138
+6a7f4 4 256 100
+6a7f8 c 256 100
+6a804 10 471 100
+6a814 4 158 138
+6a818 c 314 137
+6a824 c 249 137
+6a830 c 146 103
+6a83c 4 158 138
+6a840 8 107 137
+6a848 c 106 137
+6a854 4 160 138
+6a858 4 471 100
+6a85c 8 160 138
+6a864 8 471 100
+6a86c 10 163 138
+6a87c 4 471 100
+6a880 c 146 138
+6a88c 8 147 138
+6a894 14 163 138
+FUNC 6a8a8 130 0 std::priv::_Impl_vector<char, google_breakpad::PageStdAllocator<char> >::resize
+6a8a8 18 636 139
+6a8c0 8 636 139
+6a8c8 c 192 139
+6a8d4 8 640 139
+6a8dc 4 641 139
+6a8e0 8 630 139
+6a8e8 8 615 139
+6a8f0 8 171 138
+6a8f8 14 172 138
+6a90c 18 173 138
+6a924 c 173 139
+6a930 10 41 138
+6a940 8 172 54
+6a948 4 175 139
+6a94c 8 177 139
+6a954 c 172 54
+6a960 4 112 138
+6a964 4 172 54
+6a968 8 224 100
+6a970 8 224 100
+6a978 4 224 100
+6a97c c 471 100
+6a988 4 503 100
+6a98c 4 471 100
+6a990 4 223 100
+6a994 4 503 100
+6a998 8 224 100
+6a9a0 c 224 100
+6a9ac 4 224 100
+6a9b0 4 118 138
+6a9b4 4 666 139
+6a9b8 4 667 139
+6a9bc 4 668 139
+6a9c0 18 644 139
+FUNC 6a9d8 d08 0 MinidumpWriter::Dump
+6a9d8 4 164 26
+6a9dc 4 47 31
+6a9e0 14 164 26
+6a9f4 4 169 26
+6a9f8 8 164 26
+6aa00 8 161 33
+6aa08 4 169 26
+6aa0c 8 164 26
+6aa14 8 161 33
+6aa1c 4 164 26
+6aa20 4 161 33
+6aa24 4 46 31
+6aa28 4 161 33
+6aa2c 8 164 26
+6aa34 4 161 33
+6aa38 1c 212 33
+6aa54 4 161 33
+6aa58 4 47 31
+6aa5c 4 161 33
+6aa60 10 212 33
+6aa70 4 46 31
+6aa74 8 47 31
+6aa7c 4 171 26
+6aa80 8 172 26
+6aa88 8 60 31
+6aa90 8 59 31
+6aa98 8 60 31
+6aaa0 4 173 26
+6aaa4 c 175 26
+6aab0 4 186 26
+6aab4 4 175 26
+6aab8 c 177 26
+6aac4 8 178 26
+6aacc 8 179 26
+6aad4 4 179 26
+6aad8 8 180 26
+6aae0 4 181 26
+6aae4 4 186 26
+6aae8 4 181 26
+6aaec 10 186 26
+6aafc 10 188 26
+6ab0c 14 190 26
+6ab20 10 192 26
+6ab30 10 194 26
+6ab40 14 197 26
+6ab54 10 199 26
+6ab64 14 201 26
+6ab78 c 203 26
+6ab84 4 161 33
+6ab88 4 212 33
+6ab8c 4 203 26
+6ab90 4 161 33
+6ab94 4 47 31
+6ab98 4 161 33
+6ab9c 4 47 31
+6aba0 8 161 33
+6aba8 10 212 33
+6abb8 4 46 31
+6abbc c 47 31
+6abc8 4 630 26
+6abcc c 632 26
+6abd8 4 896 26
+6abdc 4 51 12
+6abe0 4 632 26
+6abe4 4 176 33
+6abe8 4 634 26
+6abec 4 176 33
+6abf0 4 896 26
+6abf4 4 634 26
+6abf8 4 896 26
+6abfc 4 176 33
+6ac00 4 896 26
+6ac04 4 635 26
+6ac08 8 896 26
+6ac10 4 946 26
+6ac14 8 933 26
+6ac1c 4 947 26
+6ac20 4 51 12
+6ac24 4 947 26
+6ac28 8 51 12
+6ac30 4 945 26
+6ac34 4 948 26
+6ac38 4 51 12
+6ac3c 4 949 26
+6ac40 14 51 12
+6ac54 10 959 26
+6ac64 4 960 26
+6ac68 c 961 26
+6ac74 8 962 26
+6ac7c 10 964 26
+6ac8c 4 965 26
+6ac90 c 966 26
+6ac9c 8 967 26
+6aca4 4 114 12
+6aca8 10 115 12
+6acb8 4 114 12
+6acbc 10 114 12
+6accc 4 122 12
+6acd0 4 121 12
+6acd4 8 122 12
+6acdc 14 121 12
+6acf0 4 973 26
+6acf4 10 983 26
+6ad04 4 984 26
+6ad08 4 64 54
+6ad0c 4 67 54
+6ad10 4 208 54
+6ad14 4 67 54
+6ad18 4 208 54
+6ad1c c 67 54
+6ad28 8 208 54
+6ad30 8 48 29
+6ad38 4 995 26
+6ad3c 4 49 16
+6ad40 8 995 26
+6ad48 8 49 16
+6ad50 8 1050 26
+6ad58 4 49 16
+6ad5c 4 1050 26
+6ad60 c 1061 26
+6ad6c 18 995 26
+6ad84 14 1000 26
+6ad98 8 1002 26
+6ada0 c 1005 26
+6adac c 1005 26
+6adb8 10 1006 26
+6adc8 4 1007 26
+6adcc 8 1008 26
+6add4 4 1007 26
+6add8 4 1008 26
+6addc 4 1007 26
+6ade0 8 1008 26
+6ade8 8 1010 26
+6adf0 8 1012 26
+6adf8 18 1015 26
+6ae10 8 1016 26
+6ae18 c 1018 26
+6ae24 10 996 26
+6ae34 14 1050 26
+6ae48 4 1051 26
+6ae4c 10 1054 26
+6ae5c 8 1055 26
+6ae64 8 1057 26
+6ae6c 14 1061 26
+6ae80 4 117 29
+6ae84 4 118 29
+6ae88 4 1066 26
+6ae8c 10 1069 26
+6ae9c 4 1070 26
+6aea0 c 1071 26
+6aeac 4 1072 26
+6aeb0 4 1073 26
+6aeb4 8 1072 26
+6aebc 8 1092 26
+6aec4 4 144 54
+6aec8 4 144 54
+6aecc 8 146 54
+6aed4 4 145 54
+6aed8 18 3074 97
+6aef0 4 3074 97
+6aef4 8 3074 97
+6aefc 8 1076 26
+6af04 8 1164 26
+6af0c 10 1170 26
+6af1c 8 1174 26
+6af24 4 1183 26
+6af28 4 1174 26
+6af2c 14 1182 26
+6af40 4 1195 26
+6af44 4 1182 26
+6af48 4 1195 26
+6af4c 8 1182 26
+6af54 4 1175 26
+6af58 4 1195 26
+6af5c 8 1184 26
+6af64 c 1187 26
+6af70 4 1188 26
+6af74 4 1191 26
+6af78 4 1191 26
+6af7c c 1191 26
+6af88 20 1205 26
+6afa8 c 1207 26
+6afb4 4 1194 26
+6afb8 10 1195 26
+6afc8 4 1196 26
+6afcc 4 1195 26
+6afd0 4 1196 26
+6afd4 10 1200 26
+6afe4 4 1199 26
+6afe8 4 1200 26
+6afec 8 1201 26
+6aff4 8 1184 26
+6affc c 216 33
+6b008 14 92 31
+6b01c 8 205 26
+6b024 10 207 26
+6b034 c 209 26
+6b040 8 210 26
+6b048 4 209 26
+6b04c 10 210 26
+6b05c 4 780 26
+6b060 4 781 26
+6b064 4 782 26
+6b068 14 212 26
+6b07c 8 214 26
+6b084 4 215 26
+6b088 4 214 26
+6b08c 8 215 26
+6b094 4 214 26
+6b098 c 215 26
+6b0a4 4 215 26
+6b0a8 4 780 26
+6b0ac 4 781 26
+6b0b0 4 782 26
+6b0b4 10 217 26
+6b0c4 c 219 26
+6b0d0 8 220 26
+6b0d8 4 219 26
+6b0dc 10 220 26
+6b0ec 4 780 26
+6b0f0 4 781 26
+6b0f4 4 782 26
+6b0f8 14 222 26
+6b10c 8 224 26
+6b114 4 225 26
+6b118 4 224 26
+6b11c 8 225 26
+6b124 4 224 26
+6b128 c 225 26
+6b134 4 225 26
+6b138 4 780 26
+6b13c 4 781 26
+6b140 4 782 26
+6b144 14 227 26
+6b158 8 229 26
+6b160 4 230 26
+6b164 4 229 26
+6b168 8 230 26
+6b170 4 229 26
+6b174 c 230 26
+6b180 4 230 26
+6b184 4 780 26
+6b188 4 781 26
+6b18c 4 782 26
+6b190 14 232 26
+6b1a4 8 234 26
+6b1ac 4 235 26
+6b1b0 4 234 26
+6b1b4 8 235 26
+6b1bc 4 234 26
+6b1c0 c 235 26
+6b1cc 4 235 26
+6b1d0 4 780 26
+6b1d4 4 781 26
+6b1d8 4 782 26
+6b1dc 14 237 26
+6b1f0 8 239 26
+6b1f8 4 240 26
+6b1fc 4 239 26
+6b200 8 240 26
+6b208 4 239 26
+6b20c c 240 26
+6b218 4 240 26
+6b21c 4 780 26
+6b220 4 781 26
+6b224 4 782 26
+6b228 10 242 26
+6b238 14 244 26
+6b24c 4 644 26
+6b250 4 646 26
+6b254 c 647 26
+6b260 4 646 26
+6b264 c 647 26
+6b270 4 651 26
+6b274 4 654 26
+6b278 4 657 26
+6b27c 4 655 26
+6b280 4 657 26
+6b284 8 657 26
+6b28c 4 657 26
+6b290 10 657 26
+6b2a0 c 660 26
+6b2ac 8 660 26
+6b2b4 c 661 26
+6b2c0 8 663 26
+6b2c8 4 664 26
+6b2cc c 655 26
+6b2d8 4 667 26
+6b2dc c 670 26
+6b2e8 4 675 26
+6b2ec 8 670 26
+6b2f4 18 682 26
+6b30c 8 682 26
+6b314 10 682 26
+6b324 10 683 26
+6b334 c 684 26
+6b340 4 686 26
+6b344 4 703 26
+6b348 c 703 26
+6b354 4 703 26
+6b358 10 703 26
+6b368 4 704 26
+6b36c 4 704 26
+6b370 4 706 26
+6b374 8 706 26
+6b37c 4 708 26
+6b380 4 706 26
+6b384 4 706 26
+6b388 4 706 26
+6b38c 8 706 26
+6b394 8 707 26
+6b39c 10 711 26
+6b3ac 4 712 26
+6b3b0 4 161 33
+6b3b4 4 60 31
+6b3b8 4 161 33
+6b3bc 4 60 31
+6b3c0 4 161 33
+6b3c4 4 59 31
+6b3c8 4 161 33
+6b3cc 4 59 31
+6b3d0 4 60 31
+6b3d4 4 161 33
+6b3d8 c 212 33
+6b3e4 8 60 31
+6b3ec 4 716 26
+6b3f0 4 176 33
+6b3f4 4 722 26
+6b3f8 4 735 26
+6b3fc 4 176 33
+6b400 8 722 26
+6b408 8 732 26
+6b410 8 722 26
+6b418 4 724 26
+6b41c 8 724 26
+6b424 4 724 26
+6b428 10 724 26
+6b438 4 725 26
+6b43c 8 726 26
+6b444 4 725 26
+6b448 8 726 26
+6b450 8 727 26
+6b458 4 729 26
+6b45c 4 729 26
+6b460 4 729 26
+6b464 10 729 26
+6b474 1c 732 26
+6b490 4 735 26
+6b494 4 76 31
+6b498 8 76 31
+6b4a0 8 735 26
+6b4a8 4 76 31
+6b4ac 4 736 26
+6b4b0 4 76 31
+6b4b4 4 736 26
+6b4b8 8 737 26
+6b4c0 18 76 31
+6b4d8 c 739 26
+6b4e4 c 717 26
+6b4f0 8 161 33
+6b4f8 4 744 26
+6b4fc 8 161 33
+6b504 8 212 33
+6b50c 4 744 26
+6b510 4 67 31
+6b514 4 68 31
+6b518 4 67 31
+6b51c 4 68 31
+6b520 10 212 33
+6b530 c 68 31
+6b53c 4 744 26
+6b540 c 746 26
+6b54c 4 67 139
+6b550 4 746 26
+6b554 4 752 26
+6b558 4 747 26
+6b55c 4 176 33
+6b560 8 747 26
+6b568 4 176 33
+6b56c 4 748 26
+6b570 8 750 26
+6b578 8 753 26
+6b580 4 754 26
+6b584 4 176 33
+6b588 4 754 26
+6b58c 4 63 138
+6b590 4 100 22
+6b594 4 751 26
+6b598 4 100 22
+6b59c 4 755 26
+6b5a0 8 67 139
+6b5a8 4 163 54
+6b5ac 4 481 101
+6b5b0 4 63 138
+6b5b4 8 172 54
+6b5bc 4 666 139
+6b5c0 4 667 139
+6b5c4 4 76 138
+6b5c8 4 668 139
+6b5cc c 222 143
+6b5d8 4 760 26
+6b5dc 4 222 143
+6b5e0 4 762 26
+6b5e4 8 762 26
+6b5ec 4 762 26
+6b5f0 10 762 26
+6b600 18 87 31
+6b618 c 216 33
+6b624 14 92 31
+6b638 8 245 26
+6b640 4 780 26
+6b644 4 781 26
+6b648 4 782 26
+6b64c 10 247 26
+6b65c 10 252 26
+6b66c c 216 33
+6b678 14 92 31
+6b68c c 216 33
+6b698 14 92 31
+6b6ac 34 254 26
+FUNC 6b6e0 148 0 WriteMinidumpImpl
+6b6e0 c 1250 26
+6b6ec 4 1251 26
+6b6f0 18 1250 26
+6b708 8 1251 26
+6b710 8 1250 26
+6b718 c 1250 26
+6b724 4 1251 26
+6b728 4 1253 26
+6b72c 8 1254 26
+6b734 4 1255 26
+6b738 8 1254 26
+6b740 8 123 22
+6b748 8 127 22
+6b750 8 130 22
+6b758 4 138 26
+6b75c 8 138 26
+6b764 4 138 26
+6b768 4 138 26
+6b76c 4 138 26
+6b770 4 138 26
+6b774 4 138 26
+6b778 4 138 26
+6b77c 8 138 26
+6b784 10 138 26
+6b794 4 67 139
+6b798 8 138 26
+6b7a0 4 100 22
+6b7a4 4 153 143
+6b7a8 4 67 139
+6b7ac 4 100 22
+6b7b0 4 163 54
+6b7b4 4 153 143
+6b7b8 4 481 101
+6b7bc 4 153 143
+6b7c0 4 138 26
+6b7c4 4 1266 26
+6b7c8 4 138 26
+6b7cc 4 768 26
+6b7d0 c 1266 26
+6b7dc c 1268 26
+6b7e8 8 1263 26
+6b7f0 18 42 24
+6b808 20 1269 26
+FUNC 6b828 74 0 google_breakpad::WriteMinidump
+6b828 14 1276 26
+6b83c 8 211 116
+6b844 4 1276 26
+6b848 14 1279 26
+6b85c 4 1276 26
+6b860 4 211 116
+6b864 4 212 116
+6b868 4 211 116
+6b86c 4 212 116
+6b870 8 1279 26
+6b878 10 205 116
+6b888 14 1280 26
+FUNC 6b89c 7c 0 google_breakpad::WriteMinidump
+6b89c 14 1283 26
+6b8b0 8 211 116
+6b8b8 8 1283 26
+6b8c0 18 1286 26
+6b8d8 4 1283 26
+6b8dc 4 211 116
+6b8e0 4 212 116
+6b8e4 4 211 116
+6b8e8 4 212 116
+6b8ec 8 1286 26
+6b8f4 10 205 116
+6b904 14 1287 26
+FUNC 6b918 2c 0 google_breakpad::WriteMinidump
+6b918 14 1305 26
+6b92c 18 1308 26
+FUNC 6b944 34 0 google_breakpad::WriteMinidump
+6b944 18 1324 26
+6b95c 1c 1327 26
+FUNC 6b978 3c 0 google_breakpad::WriteMinidump
+6b978 1c 1334 26
+6b994 20 1337 26
+FUNC 6b9b4 108 0 google_breakpad::WriteMinidump
+6b9b4 c 1290 26
+6b9c0 4 1291 26
+6b9c4 8 1290 26
+6b9cc 4 1291 26
+6b9d0 4 1290 26
+6b9d4 4 211 116
+6b9d8 4 1290 26
+6b9dc 4 1291 26
+6b9e0 4 138 26
+6b9e4 4 130 22
+6b9e8 4 211 116
+6b9ec 4 127 22
+6b9f0 4 211 116
+6b9f4 4 212 116
+6b9f8 4 138 26
+6b9fc 4 130 22
+6ba00 4 127 22
+6ba04 4 138 26
+6ba08 4 211 116
+6ba0c 4 212 116
+6ba10 4 138 26
+6ba14 4 138 26
+6ba18 14 138 26
+6ba2c 4 100 22
+6ba30 4 153 143
+6ba34 4 67 139
+6ba38 4 100 22
+6ba3c 4 163 54
+6ba40 4 153 143
+6ba44 4 67 139
+6ba48 4 481 101
+6ba4c 4 153 143
+6ba50 4 138 26
+6ba54 4 205 116
+6ba58 4 138 26
+6ba5c c 205 116
+6ba68 10 1297 26
+6ba78 c 1299 26
+6ba84 8 1296 26
+6ba8c 18 42 24
+6baa4 18 1300 26
+FUNC 6babc 1c 0 google_breakpad::MinidumpFileWriter::MinidumpFileWriter
+6babc 18 55 32
+6bad4 4 56 32
+FUNC 6bad8 58 0 google_breakpad::MinidumpFileWriter::Open
+6bad8 4 63 32
+6badc 8 3281 97
+6bae4 8 63 32
+6baec 4 63 32
+6baf0 18 3281 97
+6bb08 4 3281 97
+6bb0c 4 3281 97
+6bb10 8 3281 97
+6bb18 4 71 32
+6bb1c 4 66 32
+6bb20 10 72 32
+FUNC 6bb30 c 0 google_breakpad::MinidumpFileWriter::SetFile
+6bb30 4 76 32
+6bb34 4 77 32
+6bb38 4 78 32
+FUNC 6bb3c 7c 0 google_breakpad::MinidumpFileWriter::Close
+6bb3c 4 80 32
+6bb40 4 81 32
+6bb44 8 80 32
+6bb4c 4 80 32
+6bb50 c 83 32
+6bb5c c 84 32
+6bb68 4 85 32
+6bb6c 4 84 32
+6bb70 18 2979 97
+6bb88 4 2979 97
+6bb8c 4 2979 97
+6bb90 8 2979 97
+6bb98 4 88 32
+6bb9c 4 92 32
+6bba0 4 88 32
+6bba4 4 92 32
+6bba8 10 96 32
+FUNC 6bbb8 10 0 google_breakpad::MinidumpFileWriter::~MinidumpFileWriter
+6bbb8 8 59 32
+6bbc0 4 60 32
+6bbc4 4 61 32
+FUNC 6bbc8 80 0 google_breakpad::MinidumpFileWriter::Allocate
+6bbc8 4 220 32
+6bbcc 4 223 32
+6bbd0 c 220 32
+6bbdc 4 220 32
+6bbe0 4 223 32
+6bbe4 14 225 32
+6bbf8 8 227 32
+6bc00 10 233 32
+6bc10 c 234 32
+6bc1c 4 235 32
+6bc20 4 234 32
+6bc24 4 237 32
+6bc28 4 240 32
+6bc2c 8 241 32
+6bc34 14 244 32
+FUNC 6bc48 ac 0 google_breakpad::MinidumpFileWriter::Copy
+6bc48 4 246 32
+6bc4c 4 252 32
+6bc50 8 246 32
+6bc58 1c 252 32
+6bc74 20 3071 97
+6bc94 4 3071 97
+6bc98 8 3071 97
+6bca0 8 267 32
+6bca8 8 257 32
+6bcb0 20 3162 97
+6bcd0 4 3162 97
+6bcd4 4 3162 97
+6bcd8 8 3162 97
+6bce0 8 258 32
+6bce8 c 268 32
+FUNC 6bcf4 34 0 google_breakpad::UntypedMDRVA::Allocate
+6bcf4 c 270 32
+6bd00 4 270 32
+6bd04 4 272 32
+6bd08 8 273 32
+6bd10 4 274 32
+6bd14 4 273 32
+6bd18 10 275 32
+FUNC 6bd28 8 0 google_breakpad::UntypedMDRVA::Copy
+6bd28 8 281 32
+FUNC 6bd30 14 0 google_breakpad::TypedMDRVA<MDString>::CopyIndexAfterObject
+6bd30 14 87 31
+FUNC 6bd44 9c 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString
+6bd44 4 133 32
+6bd48 4 134 32
+6bd4c 14 133 32
+6bd60 c 133 32
+6bd6c 4 136 32
+6bd70 4 140 32
+6bd74 4 149 32
+6bd78 8 139 32
+6bd80 10 140 32
+6bd90 4 141 32
+6bd94 4 145 32
+6bd98 4 146 32
+6bd9c 4 149 32
+6bda0 8 151 32
+6bda8 4 149 32
+6bdac 4 151 32
+6bdb0 4 149 32
+6bdb4 4 151 32
+6bdb8 4 152 32
+6bdbc c 151 32
+6bdc8 18 155 32
+FUNC 6bde0 12c 0 google_breakpad::MinidumpFileWriter::WriteString
+6bde0 4 199 32
+6bde4 8 167 32
+6bdec c 199 32
+6bdf8 4 167 32
+6bdfc c 199 32
+6be08 4 199 32
+6be0c 4 167 32
+6be10 c 168 32
+6be1c c 161 33
+6be28 4 67 31
+6be2c 4 173 32
+6be30 4 67 31
+6be34 4 68 31
+6be38 8 161 33
+6be40 4 68 31
+6be44 4 212 33
+6be48 4 68 31
+6be4c 4 212 33
+6be50 8 68 31
+6be58 10 173 32
+6be68 c 168 32
+6be74 4 177 32
+6be78 4 179 32
+6be7c 4 177 32
+6be80 14 179 32
+6be94 4 182 32
+6be98 8 174 32
+6bea0 4 183 32
+6bea4 c 184 32
+6beb0 4 183 32
+6beb4 8 184 32
+6bebc 4 186 32
+6bec0 c 176 33
+6becc 4 187 32
+6bed0 4 184 32
+6bed4 c 216 33
+6bee0 14 92 31
+6bef4 18 201 32
+FUNC 6bf0c 3c 0 google_breakpad::MemoryRange::Subrange
+6bf0c 4 124 55
+6bf10 8 83 55
+6bf18 4 83 55
+6bf1c 10 83 55
+6bf2c 4 126 55
+6bf30 c 72 55
+6bf3c 8 50 55
+6bf44 4 127 55
+FUNC 6bf48 c 0 google_breakpad::ElfCoreDump::Note::GetHeader
+6bf48 c 99 55
+FUNC 6bf54 1c 0 google_breakpad::ElfCoreDump::Note::IsValid
+6bf54 8 46 38
+6bf5c 8 47 38
+6bf64 c 48 38
+FUNC 6bf70 24 0 google_breakpad::ElfCoreDump::Note::GetType
+6bf70 8 54 38
+6bf78 4 55 38
+6bf7c 4 57 38
+6bf80 4 57 38
+6bf84 4 57 38
+6bf88 c 58 38
+FUNC 6bf94 40 0 google_breakpad::ElfCoreDump::Note::GetName
+6bf94 c 60 38
+6bfa0 4 60 38
+6bfa4 8 61 38
+6bfac 4 62 38
+6bfb0 14 63 38
+6bfc4 4 65 38
+6bfc8 c 66 38
+FUNC 6bfd4 48 0 google_breakpad::ElfCoreDump::Note::GetDescription
+6bfd4 c 68 38
+6bfe0 4 68 38
+6bfe4 8 69 38
+6bfec 4 70 38
+6bff0 4 72 38
+6bff4 8 72 38
+6bffc 4 92 38
+6c000 8 72 38
+6c008 4 72 38
+6c00c 4 74 38
+6c010 c 75 38
+FUNC 6c01c 58 0 google_breakpad::ElfCoreDump::Note::GetNextNote
+6c01c c 77 38
+6c028 4 77 38
+6c02c 4 79 38
+6c030 4 80 38
+6c034 4 81 38
+6c038 4 82 38
+6c03c 4 84 38
+6c040 10 92 38
+6c050 4 84 38
+6c054 4 92 38
+6c058 c 84 38
+6c064 4 50 55
+6c068 c 87 38
+FUNC 6c074 c 0 google_breakpad::ElfCoreDump::ElfCoreDump
+6c074 8 50 55
+6c07c 4 98 38
+FUNC 6c080 c 0 google_breakpad::ElfCoreDump::SetContent
+6c080 8 105 38
+6c088 4 106 38
+FUNC 6c08c c 0 google_breakpad::ElfCoreDump::GetHeader
+6c08c c 99 55
+FUNC 6c098 58 0 google_breakpad::ElfCoreDump::IsValid
+6c098 8 108 38
+6c0a0 4 109 38
+6c0a4 4 116 38
+6c0a8 4 116 38
+6c0ac 18 114 38
+6c0c4 4 116 38
+6c0c8 4 114 38
+6c0cc 18 116 38
+6c0e4 c 118 38
+FUNC 6c0f0 48 0 google_breakpad::ElfCoreDump::GetProgramHeader
+6c0f0 c 124 38
+6c0fc 8 124 38
+6c104 4 125 38
+6c108 4 126 38
+6c10c 4 128 38
+6c110 4 108 55
+6c114 4 109 55
+6c118 4 108 55
+6c11c 8 131 38
+6c124 8 109 55
+6c12c c 131 38
+FUNC 6c138 24 0 google_breakpad::ElfCoreDump::GetProgramHeaderCount
+6c138 8 144 38
+6c140 4 145 38
+6c144 4 146 38
+6c148 4 146 38
+6c14c 4 146 38
+6c150 c 147 38
+FUNC 6c15c 60 0 google_breakpad::ElfCoreDump::GetFirstProgramHeaderOfType
+6c15c 10 134 38
+6c16c 4 135 38
+6c170 8 134 38
+6c178 8 135 38
+6c180 8 135 38
+6c188 c 136 38
+6c194 c 137 38
+6c1a0 8 135 38
+6c1a8 4 141 38
+6c1ac 10 142 38
+FUNC 6c1bc c4 0 google_breakpad::ElfCoreDump::CopyData
+6c1bc 18 149 38
+6c1d4 10 149 38
+6c1e4 c 150 38
+6c1f0 8 150 38
+6c1f8 c 151 38
+6c204 c 152 38
+6c210 4 155 38
+6c214 8 156 38
+6c21c 4 156 38
+6c220 4 155 38
+6c224 8 156 38
+6c22c 18 159 38
+6c244 4 160 38
+6c248 c 161 38
+6c254 8 162 38
+6c25c 8 150 38
+6c264 4 166 38
+6c268 18 167 38
+FUNC 6c280 44 0 google_breakpad::ElfCoreDump::GetFirstNote
+6c280 4 169 38
+6c284 4 171 38
+6c288 8 169 38
+6c290 4 169 38
+6c294 8 171 38
+6c29c 4 172 38
+6c2a0 14 174 38
+6c2b4 4 50 55
+6c2b8 c 177 38
+FUNC 6c2c4 28 0 google_breakpad::IsValidElf
+6c2c4 4 109 41
+6c2c8 8 111 41
+6c2d0 4 109 41
+6c2d4 4 111 41
+6c2d8 8 111 41
+6c2e0 c 112 41
+FUNC 6c2ec 1e8 0 google_breakpad::FindElfSection
+6c2ec 8 126 41
+6c2f4 4 131 41
+6c2f8 4 132 41
+6c2fc 20 126 41
+6c31c 10 126 41
+6c32c 10 134 41
+6c33c 8 135 41
+6c344 4 118 41
+6c348 4 138 41
+6c34c 4 139 41
+6c350 8 145 41
+6c358 8 62 41
+6c360 4 42 40
+6c364 4 62 41
+6c368 4 42 40
+6c36c 4 70 41
+6c370 4 62 41
+6c374 4 70 41
+6c378 4 57 40
+6c37c 4 42 40
+6c380 4 65 41
+6c384 4 42 40
+6c388 4 65 41
+6c38c 4 57 40
+6c390 4 58 40
+6c394 4 63 40
+6c398 4 58 40
+6c39c 4 63 40
+6c3a0 c 61 40
+6c3ac 4 63 40
+6c3b0 4 62 40
+6c3b4 8 63 40
+6c3bc 4 62 40
+6c3c0 c 63 40
+6c3cc 8 65 40
+6c3d4 4 63 40
+6c3d8 c 61 40
+6c3e4 8 149 41
+6c3ec 4 42 40
+6c3f0 4 62 41
+6c3f4 4 42 40
+6c3f8 4 70 41
+6c3fc 4 62 41
+6c400 4 42 40
+6c404 4 65 41
+6c408 4 57 40
+6c40c 4 42 40
+6c410 4 57 40
+6c414 4 65 41
+6c418 4 57 40
+6c41c 8 58 40
+6c424 c 63 40
+6c430 8 61 40
+6c438 4 63 40
+6c43c 4 62 40
+6c440 8 63 40
+6c448 4 62 40
+6c44c c 63 40
+6c458 8 65 40
+6c460 c 63 40
+6c46c 8 72 41
+6c474 c 73 41
+6c480 8 74 41
+6c488 10 152 41
+6c498 8 72 41
+6c4a0 c 73 41
+6c4ac 8 74 41
+6c4b4 20 156 41
+FUNC 6c4d4 104 0 google_breakpad::FindElfSegment
+6c4d4 c 162 41
+6c4e0 4 162 41
+6c4e4 4 167 41
+6c4e8 4 168 41
+6c4ec 8 162 41
+6c4f4 4 167 41
+6c4f8 4 168 41
+6c4fc 1c 170 41
+6c518 8 171 41
+6c520 4 118 41
+6c524 4 174 41
+6c528 4 175 41
+6c52c 8 181 41
+6c534 8 42 40
+6c53c 4 98 41
+6c540 8 42 40
+6c548 8 98 41
+6c550 10 99 41
+6c560 c 100 41
+6c56c 8 101 41
+6c574 8 185 41
+6c57c 4 42 40
+6c580 4 98 41
+6c584 c 98 41
+6c590 4 98 41
+6c594 8 98 41
+6c59c 10 99 41
+6c5ac c 100 41
+6c5b8 8 101 41
+6c5c0 c 188 41
+6c5cc c 192 41
+FUNC 6c5d8 ac 0 google_breakpad::FileID::FileID
+6c5d8 14 51 42
+6c5ec 4 51 42
+6c5f0 4 112 132
+6c5f4 4 481 101
+6c5f8 c 229 140
+6c604 8 608 130
+6c60c c 600 130
+6c618 8 610 130
+6c620 4 347 101
+6c624 8 158 101
+6c62c 8 134 119
+6c634 8 158 101
+6c63c 4 613 130
+6c640 4 611 130
+6c644 4 613 130
+6c648 4 612 130
+6c64c 8 613 130
+6c654 8 107 137
+6c65c c 106 137
+6c668 4 107 137
+6c66c 4 380 131
+6c670 4 101 103
+6c674 10 51 42
+FUNC 6c684 220 0 google_breakpad::FileID::ElfFileIdentifierFromMappedFile
+6c684 8 142 42
+6c68c 4 98 42
+6c690 8 142 42
+6c698 c 98 42
+6c6a4 4 142 42
+6c6a8 10 98 42
+6c6b8 4 142 42
+6c6bc 4 142 42
+6c6c0 8 98 42
+6c6c8 8 99 42
+6c6d0 8 98 42
+6c6d8 20 101 42
+6c6f8 4 99 42
+6c6fc 2c 124 42
+6c728 c 101 42
+6c734 8 124 42
+6c73c 4 126 42
+6c740 8 148 42
+6c748 c 106 42
+6c754 4 108 42
+6c758 8 64 42
+6c760 8 66 42
+6c768 c 67 42
+6c774 c 70 42
+6c780 14 71 42
+6c794 8 69 42
+6c79c 8 109 42
+6c7a4 4 111 42
+6c7a8 8 64 42
+6c7b0 8 66 42
+6c7b8 c 67 42
+6c7c4 c 70 42
+6c7d0 14 71 42
+6c7e4 8 69 42
+6c7ec 18 129 42
+6c804 c 130 42
+6c810 4 131 42
+6c814 c 132 42
+6c820 14 134 42
+6c834 8 133 42
+6c83c 8 135 42
+6c844 8 74 42
+6c84c 4 80 42
+6c850 8 83 42
+6c858 8 80 42
+6c860 4 83 42
+6c864 4 80 42
+6c868 4 83 42
+6c86c 4 80 42
+6c870 4 85 42
+6c874 c 84 42
+6c880 4 139 100
+6c884 8 84 42
+6c88c 4 87 42
+6c890 14 149 42
+FUNC 6c8a4 60 0 google_breakpad::FileID::ElfFileIdentifier
+6c8a4 14 151 42
+6c8b8 4 152 42
+6c8bc 4 151 42
+6c8c0 14 152 42
+6c8d4 4 154 42
+6c8d8 4 153 42
+6c8dc c 156 42
+6c8e8 8 156 42
+6c8f0 14 157 42
+FUNC 6c904 d4 0 google_breakpad::FileID::ConvertIdentifierToString
+6c904 4 161 42
+6c908 10 165 42
+6c918 4 167 42
+6c91c 4 169 42
+6c920 4 167 42
+6c924 4 169 42
+6c928 4 169 42
+6c92c 4 171 42
+6c930 4 174 42
+6c934 4 171 42
+6c938 4 181 42
+6c93c 4 173 42
+6c940 14 174 42
+6c954 4 177 42
+6c958 c 180 42
+6c964 8 177 42
+6c96c 4 178 42
+6c970 4 180 42
+6c974 8 181 42
+6c97c 8 183 42
+6c984 c 183 42
+6c990 4 184 42
+6c994 4 183 42
+6c998 4 184 42
+6c99c 4 183 42
+6c9a0 8 184 42
+6c9a8 4 184 42
+6c9ac 8 184 42
+6c9b4 8 184 42
+6c9bc 8 188 42
+6c9c4 8 188 42
+6c9cc 4 189 42
+6c9d0 4 188 42
+6c9d4 4 189 42
+FUNC 6c9d8 18 0 GUIDGenerator::InitOnceImpl
+6c9d8 4 78 44
+6c9dc 4 79 44
+6c9e0 4 78 44
+6c9e4 4 79 44
+6c9e8 4 80 44
+6c9ec 4 79 44
+FUNC 6c9f0 8c 0 CreateGUID
+6c9f0 4 87 44
+6c9f4 4 75 44
+6c9f8 8 87 44
+6ca00 4 87 44
+6ca04 10 75 44
+6ca14 8 65 44
+6ca1c 8 66 44
+6ca24 8 67 44
+6ca2c 4 68 44
+6ca30 4 58 44
+6ca34 4 57 44
+6ca38 4 58 44
+6ca3c 4 59 44
+6ca40 4 60 44
+6ca44 4 59 44
+6ca48 4 60 44
+6ca4c 4 69 44
+6ca50 4 58 44
+6ca54 4 57 44
+6ca58 4 58 44
+6ca5c 4 59 44
+6ca60 4 60 44
+6ca64 4 59 44
+6ca68 4 60 44
+6ca6c 10 89 44
+FUNC 6ca7c 98 0 GUIDToString
+6ca7c 10 92 44
+6ca8c 4 92 44
+6ca90 4 51 44
+6ca94 c 52 44
+6caa0 8 53 44
+6caa8 4 51 44
+6caac 4 52 44
+6cab0 4 53 44
+6cab4 4 52 44
+6cab8 4 51 44
+6cabc c 98 44
+6cac8 4 51 44
+6cacc 8 98 44
+6cad4 4 52 44
+6cad8 18 98 44
+6caf0 4 99 44
+6caf4 4 100 44
+6caf8 4 99 44
+6cafc 4 102 44
+6cb00 4 103 44
+6cb04 10 104 44
+FUNC 6cb14 1c 0 my_strlen
+6cb14 4 40 45
+6cb18 4 41 45
+6cb1c 8 42 45
+6cb24 8 42 45
+6cb2c 4 44 45
+FUNC 6cb30 38 0 my_strcmp
+6cb30 4 46 45
+6cb34 10 48 45
+6cb44 8 50 45
+6cb4c 4 52 45
+6cb50 8 53 45
+6cb58 8 49 45
+6cb60 4 51 45
+6cb64 4 57 45
+FUNC 6cb68 4c 0 my_strncmp
+6cb68 4 60 45
+6cb6c 8 60 45
+6cb74 10 61 45
+6cb84 4 63 45
+6cb88 4 65 45
+6cb8c 8 60 45
+6cb94 8 66 45
+6cb9c 8 62 45
+6cba4 8 64 45
+6cbac 4 66 45
+6cbb0 4 72 45
+FUNC 6cbb4 5c 0 my_strtoui
+6cbb4 4 79 45
+6cbb8 4 80 45
+6cbbc 4 79 45
+6cbc0 4 86 45
+6cbc4 8 83 45
+6cbcc 4 87 45
+6cbd0 4 86 45
+6cbd4 c 87 45
+6cbe0 4 89 45
+6cbe4 8 90 45
+6cbec 4 82 45
+6cbf0 8 92 45
+6cbf8 4 94 45
+6cbfc 8 95 45
+6cc04 4 80 45
+6cc08 8 96 45
+FUNC 6cc10 24 0 my_uint_len
+6cc10 4 101 45
+6cc14 8 100 45
+6cc1c 8 106 45
+6cc24 4 105 45
+6cc28 4 104 45
+6cc2c 8 110 45
+FUNC 6cc34 28 0 my_uitos
+6cc34 4 120 45
+6cc38 4 119 45
+6cc3c 14 120 45
+6cc50 8 119 45
+6cc58 4 121 45
+FUNC 6cc5c 28 0 my_strchr
+6cc5c 4 123 45
+6cc60 8 124 45
+6cc68 8 124 45
+6cc70 8 125 45
+6cc78 8 126 45
+6cc80 4 129 45
+FUNC 6cc84 28 0 my_strrchr
+6cc84 4 131 45
+6cc88 4 132 45
+6cc8c 8 133 45
+6cc94 8 134 45
+6cc9c 8 136 45
+6cca4 8 139 45
+FUNC 6ccac 28 0 my_memchr
+6ccac 4 143 45
+6ccb0 8 144 45
+6ccb8 c 145 45
+6ccc4 8 144 45
+6cccc 4 148 45
+6ccd0 4 149 45
+FUNC 6ccd4 6c 0 my_read_hex_ptr
+6ccd4 4 156 45
+6ccd8 14 159 45
+6ccec c 161 45
+6ccf8 10 162 45
+6cd08 8 164 45
+6cd10 10 165 45
+6cd20 c 167 45
+6cd2c 4 158 45
+6cd30 4 174 45
+6cd34 4 173 45
+6cd38 8 175 45
+FUNC 6cd40 38 0 my_read_decimal_ptr
+6cd40 4 178 45
+6cd44 4 182 45
+6cd48 14 181 45
+6cd5c 4 183 45
+6cd60 4 180 45
+6cd64 4 183 45
+6cd68 4 189 45
+6cd6c 4 188 45
+6cd70 8 190 45
+FUNC 6cd78 20 0 my_memset
+6cd78 4 192 45
+6cd7c c 194 45
+6cd88 c 195 45
+6cd94 4 196 45
+FUNC 6cd98 3c 0 my_strlcpy
+6cd98 4 198 45
+6cd9c 4 200 45
+6cda0 4 199 45
+6cda4 8 202 45
+6cdac c 203 45
+6cdb8 8 204 45
+6cdc0 8 207 45
+6cdc8 4 209 45
+6cdcc 4 210 45
+6cdd0 4 213 45
+FUNC 6cdd4 4c 0 my_strlcat
+6cdd4 c 215 45
+6cde0 4 216 45
+6cde4 8 218 45
+6cdec 8 218 45
+6cdf4 10 219 45
+6ce04 10 224 45
+6ce14 c 225 45
+FUNC 6ce20 48 0 my_isspace
+6ce20 4 229 45
+6ce24 4 227 45
+6ce28 c 229 45
+6ce34 4 230 45
+6ce38 10 231 45
+6ce48 4 230 45
+6ce4c 8 230 45
+6ce54 8 234 45
+6ce5c 4 232 45
+6ce60 8 235 45
+FUNC 6ce68 44 0 sys_close
+6ce68 10 2979 97
+6ce78 14 2979 97
+6ce8c 4 2979 97
+6ce90 4 2979 97
+6ce94 8 2979 97
+6ce9c 10 2979 97
+FUNC 6ceac c 0 google_breakpad::MemoryMappedFile::MemoryMappedFile
+6ceac 8 50 55
+6ceb4 4 47 47
+FUNC 6ceb8 50 0 google_breakpad::MemoryMappedFile::Unmap
+6ceb8 c 106 47
+6cec4 8 106 47
+6cecc 4 107 47
+6ced0 18 3074 97
+6cee8 4 3074 97
+6ceec 8 3074 97
+6cef4 4 70 55
+6cef8 4 72 55
+6cefc c 111 47
+FUNC 6cf08 4 0 google_breakpad::MemoryMappedFile::~MemoryMappedFile
+6cf08 4 54 47
+FUNC 6cf0c 13c 0 google_breakpad::MemoryMappedFile::Map
+6cf0c 20 57 47
+6cf2c 4 58 47
+6cf30 24 3281 97
+6cf54 4 3281 97
+6cf58 4 3281 97
+6cf5c 8 3281 97
+6cf64 4 61 47
+6cf68 4 3281 97
+6cf6c 4 61 47
+6cf70 20 3000 97
+6cf90 4 3000 97
+6cf94 c 3000 97
+6cfa0 8 67 47
+6cfa8 8 67 47
+6cfb0 8 72 47
+6cfb8 8 73 47
+6cfc0 8 81 47
+6cfc8 c 82 47
+6cfd4 28 3940 97
+6cffc 4 3940 97
+6d000 4 3940 97
+6d004 8 3940 97
+6d00c 8 97 47
+6d014 8 98 47
+6d01c 4 102 47
+6d020 8 72 55
+6d028 4 70 55
+6d02c 4 72 55
+6d030 4 103 47
+6d034 14 104 47
+FUNC 6d048 c 0 google_breakpad::MemoryMappedFile::MemoryMappedFile
+6d048 8 50 55
+6d050 4 50 47
+FUNC 6d054 7c 0 google_breakpad::SafeReadLink
+6d054 8 39 48
+6d05c 4 3948 97
+6d060 c 39 48
+6d06c 8 39 48
+6d074 20 3948 97
+6d094 4 3948 97
+6d098 4 3948 97
+6d09c 8 3948 97
+6d0a4 18 46 48
+6d0bc 4 47 48
+6d0c0 10 51 48
+FUNC 6d0d0 8c 0 google_breakpad::UTF8ToUTF16Char
+6d0d0 10 58 60
+6d0e0 4 78 60
+6d0e4 4 58 60
+6d0e8 4 58 60
+6d0ec 4 59 60
+6d0f0 4 60 60
+6d0f4 4 61 60
+6d0f8 4 62 60
+6d0fc 8 63 60
+6d104 20 69 60
+6d124 4 71 60
+6d128 c 72 60
+6d134 4 76 60
+6d138 4 75 60
+6d13c 8 78 60
+6d144 4 82 60
+6d148 14 83 60
+FUNC 6d200 4 0 google_breakpad::::CrashGenerationClientImpl::~CrashGenerationClientImpl
+6d200 4 49 0
+FUNC 6d204 44 0 sys_close
+6d204 10 2979 97
+6d214 14 2979 97
+6d228 4 2979 97
+6d22c 4 2979 97
+6d230 8 2979 97
+6d238 10 2979 97
+FUNC 6d248 4 0 google_breakpad::::CrashGenerationClientImpl::~CrashGenerationClientImpl
+6d248 4 49 0
+FUNC 6d24c 158 0 google_breakpad::::CrashGenerationClientImpl::RequestDump
+6d24c 8 51 0
+6d254 4 3944 97
+6d258 10 51 0
+6d268 18 3944 97
+6d280 4 3944 97
+6d284 c 3944 97
+6d290 4 53 0
+6d294 4 64 0
+6d298 4 58 0
+6d29c 4 63 0
+6d2a0 4 62 0
+6d2a4 4 64 0
+6d2a8 4 59 0
+6d2ac 4 62 0
+6d2b0 4 61 0
+6d2b4 8 66 0
+6d2bc 4 71 0
+6d2c0 4 64 0
+6d2c4 4 71 0
+6d2c8 4 3671 97
+6d2cc 4 73 0
+6d2d0 8 61 0
+6d2d8 4 63 0
+6d2dc 8 64 0
+6d2e4 4 65 0
+6d2e8 4 69 0
+6d2ec 4 70 0
+6d2f0 4 73 0
+6d2f4 20 3671 97
+6d314 4 3671 97
+6d318 8 3671 97
+6d320 c 75 0
+6d32c 4 3671 97
+6d330 4 76 0
+6d334 4 3104 97
+6d338 4 76 0
+6d33c 4 77 0
+6d340 8 78 0
+6d348 8 54 0
+6d350 4 3104 97
+6d354 8 3104 97
+6d35c c 84 0
+6d368 20 3104 97
+6d388 8 85 0
+6d390 4 87 0
+6d394 10 88 0
+FUNC 6d3a4 44 0 google_breakpad::CrashGenerationClient::TryCreate
+6d3a4 8 99 0
+6d3ac 4 101 0
+6d3b0 8 99 0
+6d3b8 4 100 0
+6d3bc c 102 0
+6d3c8 14 48 0
+6d3dc c 103 0
+FUNC 6d3e8 4 0 google_breakpad::SeccompUnwinder::PopSeccompStackFrame
+6d3e8 4 152 1
+FUNC 6d3ec 8 0 google_breakpad::ThreadInfo::GetInstructionPointer
+6d3ec 8 217 2
+FUNC 6d3f4 68 0 google_breakpad::ThreadInfo::FillCPUContext
+6d3f4 4 219 2
+6d3f8 c 220 2
+6d404 10 222 2
+6d414 c 224 2
+6d420 4 223 2
+6d424 4 224 2
+6d428 4 223 2
+6d42c 8 225 2
+6d434 8 226 2
+6d43c 8 228 2
+6d444 8 229 2
+6d44c 10 231 2
+FUNC 6d45c 8 0 google_breakpad::UContextReader::GetStackPointer
+6d45c 8 189 3
+FUNC 6d464 8 0 google_breakpad::UContextReader::GetInstructionPointer
+6d464 8 193 3
+FUNC 6d46c 64 0 google_breakpad::UContextReader::FillCPUContext
+6d46c c 197 3
+6d478 10 199 3
+6d488 c 201 3
+6d494 4 200 3
+6d498 4 201 3
+6d49c 4 200 3
+6d4a0 4 202 3
+6d4a4 4 208 3
+6d4a8 4 202 3
+6d4ac 8 203 3
+6d4b4 8 205 3
+6d4bc 8 206 3
+6d4c4 c 208 3
+FUNC 6d4d0 fc 0 isLegalUTF8
+6d4d0 4 299 37
+6d4d4 8 300 37
+6d4dc 4 301 37
+6d4e0 1c 300 37
+6d4fc 4 303 37
+6d500 4 303 37
+6d504 4 303 37
+6d508 c 303 37
+6d514 4 303 37
+6d518 4 304 37
+6d51c 4 303 37
+6d520 4 304 37
+6d524 c 304 37
+6d530 4 304 37
+6d534 4 305 37
+6d538 4 303 37
+6d53c 8 305 37
+6d544 18 307 37
+6d55c 8 309 37
+6d564 10 307 37
+6d574 8 312 37
+6d57c 8 310 37
+6d584 c 311 37
+6d590 8 312 37
+6d598 4 303 37
+6d59c 4 313 37
+6d5a0 14 316 37
+6d5b4 c 318 37
+6d5c0 4 301 37
+6d5c4 8 320 37
+FUNC 6d5cc 220 0 ConvertUTF8toUTF16
+6d5cc 4 339 37
+6d5d0 4 371 37
+6d5d4 18 339 37
+6d5ec 4 357 37
+6d5f0 4 339 37
+6d5f4 4 341 37
+6d5f8 4 339 37
+6d5fc 4 342 37
+6d600 4 345 37
+6d604 4 357 37
+6d608 4 365 37
+6d60c 4 390 37
+6d610 8 343 37
+6d618 1c 345 37
+6d634 10 346 37
+6d644 1c 350 37
+6d660 4 357 37
+6d664 4 344 37
+6d668 24 357 37
+6d68c c 358 37
+6d698 4 344 37
+6d69c 14 359 37
+6d6b0 4 344 37
+6d6b4 14 360 37
+6d6c8 4 344 37
+6d6cc 14 361 37
+6d6e0 4 344 37
+6d6e4 14 362 37
+6d6f8 4 344 37
+6d6fc c 363 37
+6d708 4 365 37
+6d70c 4 367 37
+6d710 8 365 37
+6d718 4 367 37
+6d71c 8 371 37
+6d724 10 373 37
+6d734 8 382 37
+6d73c 10 384 37
+6d74c 4 385 37
+6d750 c 387 37
+6d75c c 390 37
+6d768 c 394 37
+6d774 4 395 37
+6d778 4 396 37
+6d77c 4 395 37
+6d780 4 396 37
+6d784 4 398 37
+6d788 8 399 37
+6d790 4 400 37
+6d794 4 399 37
+6d798 4 400 37
+6d79c 8 399 37
+6d7a4 10 400 37
+6d7b4 8 340 37
+6d7bc 8 347 37
+6d7c4 4 351 37
+6d7c8 4 403 37
+6d7cc 4 404 37
+6d7d0 1c 406 37
+FUNC 6d7ec 38 0 google_breakpad::DumpContext::DumpContext
+6d7ec c 53 68
+6d7f8 4 53 68
+6d7fc 28 54 68
+FUNC 6d824 1c 0 google_breakpad::DumpContext::GetContextCPU
+6d824 4 61 68
+6d828 4 60 68
+6d82c 4 64 68
+6d830 4 61 68
+6d834 8 67 68
+6d83c 4 68 68
+FUNC 6d840 8 0 google_breakpad::DumpContext::GetContextFlags
+6d840 8 72 68
+FUNC 6d848 8 0 google_breakpad::DumpContext::SetContextFlags
+6d848 4 190 68
+6d84c 4 191 68
+FUNC 6d850 8 0 google_breakpad::DumpContext::SetContextX86
+6d850 4 194 68
+6d854 4 195 68
+FUNC 6d858 8 0 google_breakpad::DumpContext::SetContextPPC
+6d858 4 198 68
+6d85c 4 199 68
+FUNC 6d860 8 0 google_breakpad::DumpContext::SetContextPPC64
+6d860 4 202 68
+6d864 4 203 68
+FUNC 6d868 8 0 google_breakpad::DumpContext::SetContextAMD64
+6d868 4 206 68
+6d86c 4 207 68
+FUNC 6d870 8 0 google_breakpad::DumpContext::SetContextSPARC
+6d870 4 210 68
+6d874 4 211 68
+FUNC 6d878 8 0 google_breakpad::DumpContext::SetContextARM
+6d878 4 214 68
+6d87c 4 215 68
+FUNC 6d880 8 0 google_breakpad::DumpContext::SetContextARM64
+6d880 4 218 68
+6d884 4 219 68
+FUNC 6d888 8 0 google_breakpad::DumpContext::SetContextMIPS
+6d888 4 222 68
+6d88c 4 223 68
+FUNC 6d890 88 0 google_breakpad::DumpContext::FreeContext
+6d890 c 225 68
+6d89c 4 225 68
+6d8a0 5c 226 68
+6d8fc 8 256 68
+6d904 4 266 68
+6d908 4 267 68
+6d90c c 268 68
+FUNC 6d918 10 0 google_breakpad::DumpContext::~DumpContext
+6d918 c 56 68
+6d924 4 57 68
+FUNC 6d928 24 0 google_breakpad::DumpContext::~DumpContext
+6d928 c 56 68
+6d934 4 56 68
+6d938 4 58 68
+6d93c 4 58 68
+6d940 8 58 68
+6d948 4 58 68
+FUNC 6d94c 70 0 google_breakpad::DumpContext::GetContextX86
+6d94c c 74 68
+6d958 4 74 68
+6d95c c 75 68
+6d968 24 76 68
+6d98c 10 333 122
+6d99c 8 76 68
+6d9a4 8 76 68
+6d9ac 4 80 68
+6d9b0 c 81 68
+FUNC 6d9bc 74 0 google_breakpad::DumpContext::GetContextPPC
+6d9bc c 83 68
+6d9c8 4 83 68
+6d9cc 10 84 68
+6d9dc 24 85 68
+6da00 10 333 122
+6da10 8 85 68
+6da18 8 85 68
+6da20 4 89 68
+6da24 c 90 68
+FUNC 6da30 74 0 google_breakpad::DumpContext::GetContextARM
+6da30 c 119 68
+6da3c 4 119 68
+6da40 10 120 68
+6da50 24 121 68
+6da74 10 333 122
+6da84 8 121 68
+6da8c 8 121 68
+6da94 4 125 68
+6da98 c 126 68
+FUNC 6daa4 74 0 google_breakpad::DumpContext::GetContextPPC64
+6daa4 c 92 68
+6dab0 4 92 68
+6dab4 10 93 68
+6dac4 24 94 68
+6dae8 10 333 122
+6daf8 8 94 68
+6db00 8 94 68
+6db08 4 98 68
+6db0c c 99 68
+FUNC 6db18 70 0 google_breakpad::DumpContext::GetContextAMD64
+6db18 c 101 68
+6db24 4 101 68
+6db28 c 102 68
+6db34 24 103 68
+6db58 10 333 122
+6db68 8 103 68
+6db70 8 103 68
+6db78 4 107 68
+6db7c c 108 68
+FUNC 6db88 74 0 google_breakpad::DumpContext::GetContextSPARC
+6db88 c 110 68
+6db94 4 110 68
+6db98 10 111 68
+6dba8 24 112 68
+6dbcc 10 333 122
+6dbdc 8 112 68
+6dbe4 8 112 68
+6dbec 4 116 68
+6dbf0 c 117 68
+FUNC 6dbfc 74 0 google_breakpad::DumpContext::GetContextARM64
+6dbfc c 128 68
+6dc08 4 128 68
+6dc0c 10 129 68
+6dc1c 24 130 68
+6dc40 10 333 122
+6dc50 8 130 68
+6dc58 8 130 68
+6dc60 4 134 68
+6dc64 c 135 68
+FUNC 6dc70 70 0 google_breakpad::DumpContext::GetContextMIPS
+6dc70 c 137 68
+6dc7c 4 137 68
+6dc80 c 138 68
+6dc8c 24 139 68
+6dcb0 10 333 122
+6dcc0 8 139 68
+6dcc8 8 139 68
+6dcd0 4 143 68
+6dcd4 c 144 68
+FUNC 6dce0 1e0 0 google_breakpad::DumpContext::GetInstructionPointer
+6dce0 10 146 68
+6dcf0 8 146 68
+6dcf8 4 147 68
+6dcfc 24 147 68
+6dd20 10 333 122
+6dd30 8 147 68
+6dd38 4 149 68
+6dd3c 8 151 68
+6dd44 24 152 68
+6dd68 10 333 122
+6dd78 8 152 68
+6dd80 4 153 68
+6dd84 30 156 68
+6ddb4 10 176 68
+6ddc4 1c 156 68
+6dde0 10 173 68
+6ddf0 18 156 68
+6de08 10 164 68
+6de18 10 158 68
+6de28 10 161 68
+6de38 10 167 68
+6de48 10 170 68
+6de58 c 179 68
+6de64 4 176 68
+6de68 4 177 68
+6de6c 20 183 68
+6de8c 4 184 68
+6de90 4 183 68
+6de94 10 333 122
+6dea4 8 183 68
+6deac 14 187 68
+FUNC 6dec0 8 0 google_breakpad::DumpObject::DumpObject
+6dec0 4 36 69
+6dec4 4 37 69
+FUNC 6dec8 4c 0 google_breakpad::HexString
+6dec8 4 86 71
+6decc 4 88 71
+6ded0 c 86 71
+6dedc 10 88 71
+6deec 4 86 71
+6def0 4 88 71
+6def4 10 89 71
+6df04 10 90 71
+FUNC 6df14 4c 0 google_breakpad::HexString
+6df14 4 92 71
+6df18 4 94 71
+6df1c c 92 71
+6df28 10 94 71
+6df38 4 92 71
+6df3c 4 94 71
+6df40 10 95 71
+6df50 10 96 71
+FUNC 6df60 4c 0 google_breakpad::HexString
+6df60 4 98 71
+6df64 4 100 71
+6df68 c 98 71
+6df74 10 100 71
+6df84 4 98 71
+6df88 4 100 71
+6df8c 10 101 71
+6df9c 10 102 71
+FUNC 6dfac 7c 0 google_breakpad::LogStream::~LogStream
+6dfac c 82 71
+6dfb8 4 83 71
+6dfbc 14 181 122
+6dfd0 4 412 121
+6dfd4 18 422 121
+6dfec 4 414 121
+6dff0 14 414 121
+6e004 8 421 121
+6e00c 8 424 121
+6e014 8 359 122
+6e01c c 84 71
+FUNC 6e028 20c 0 google_breakpad::LogStream::LogStream
+6e028 18 54 71
+6e040 4 58 71
+6e044 4 56 71
+6e048 4 54 71
+6e04c 4 58 71
+6e050 c 54 71
+6e05c 4 63 71
+6e060 4 58 71
+6e064 8 63 71
+6e06c 4 66 71
+6e070 4 63 71
+6e074 18 66 71
+6e08c c 69 71
+6e098 8 74 71
+6e0a0 4 75 71
+6e0a4 c 71 71
+6e0b0 8 68 71
+6e0b8 4 78 71
+6e0bc 8 333 122
+6e0c4 4 78 71
+6e0c8 18 333 122
+6e0e0 c 78 71
+6e0ec 4 78 71
+6e0f0 4 78 71
+6e0f4 c 78 71
+6e100 10 78 71
+6e110 c 333 122
+6e11c 4 238 121
+6e120 c 239 121
+6e12c 8 181 122
+6e134 8 239 121
+6e13c 4 239 121
+6e140 4 181 122
+6e144 4 239 121
+6e148 c 181 122
+6e154 4 199 121
+6e158 18 211 121
+6e170 4 202 121
+6e174 4 145 110
+6e178 4 202 121
+6e17c 4 145 110
+6e180 4 202 121
+6e184 8 145 110
+6e18c c 351 117
+6e198 8 351 117
+6e1a0 4 67 120
+6e1a4 4 202 121
+6e1a8 8 67 120
+6e1b0 c 202 121
+6e1bc 4 67 120
+6e1c0 4 57 123
+6e1c4 c 67 120
+6e1d0 8 202 121
+6e1d8 4 210 121
+6e1dc 4 212 121
+6e1e0 4 333 122
+6e1e4 4 212 121
+6e1e8 24 333 122
+6e20c 10 156 132
+6e21c 18 80 71
+FUNC 6e234 c0 0 google_breakpad::ErrnoString
+6e234 10 104 71
+6e244 4 104 71
+6e248 c 111 71
+6e254 8 111 71
+6e25c 8 229 140
+6e264 c 400 131
+6e270 8 244 130
+6e278 4 168 140
+6e27c c 168 140
+6e288 c 246 130
+6e294 8 803 131
+6e29c 4 168 140
+6e2a0 4 806 131
+6e2a4 4 168 140
+6e2a8 10 806 131
+6e2b8 4 168 140
+6e2bc 8 168 140
+6e2c4 4 400 131
+6e2c8 4 250 130
+6e2cc 8 400 131
+6e2d4 c 250 130
+6e2e0 4 112 71
+6e2e4 10 113 71
+FUNC 6e2f4 4 0 google_breakpad::MinidumpObject::~MinidumpObject
+6e2f4 4 114 65
+FUNC 6e2f8 18 0 google_breakpad::MinidumpThreadList::thread_count
+6e2f8 4 322 65
+6e2fc 4 321 65
+6e300 4 322 65
+6e304 4 322 65
+6e308 4 322 65
+6e30c 4 323 65
+FUNC 6e310 18 0 google_breakpad::MinidumpModule::base_address
+6e310 4 383 65
+6e314 4 382 65
+6e318 4 383 65
+6e31c 4 383 65
+6e320 4 383 65
+6e324 4 384 65
+FUNC 6e330 18 0 google_breakpad::MinidumpModule::size
+6e330 8 385 65
+6e338 4 385 65
+6e33c 4 385 65
+6e340 4 385 65
+6e344 4 385 65
+FUNC 6e350 18 0 google_breakpad::MinidumpModuleList::module_count
+6e350 4 491 65
+6e354 4 490 65
+6e358 4 491 65
+6e35c 4 491 65
+6e360 4 491 65
+6e364 4 492 65
+FUNC 6e370 14 0 google_breakpad::Minidump::header
+6e370 4 882 65
+6e374 8 882 65
+6e37c 8 882 65
+FUNC 6e384 8 0 google_breakpad::BasicCodeModule::base_address
+6e384 8 84 66
+FUNC 6e38c 8 0 google_breakpad::BasicCodeModule::size
+6e38c 8 85 66
+FUNC 6e394 18 0 google_breakpad::Swap
+6e394 10 125 73
+6e3a4 4 127 73
+6e3a8 4 128 73
+FUNC 6e3ac 10 0 google_breakpad::Swap
+6e3ac 8 131 73
+6e3b4 4 135 73
+6e3b8 4 136 73
+FUNC 6e3bc 38 0 google_breakpad::Swap
+6e3bc c 139 73
+6e3c8 4 139 73
+6e3cc 4 141 73
+6e3d0 8 142 73
+6e3d8 4 143 73
+6e3dc 8 144 73
+6e3e4 4 145 73
+6e3e8 c 146 73
+FUNC 6e3f4 24 0 google_breakpad::Swap
+6e3f4 c 182 73
+6e400 4 182 73
+6e404 4 183 73
+6e408 4 184 73
+6e40c 8 185 73
+6e414 4 184 73
+FUNC 6e418 50 0 google_breakpad::MinidumpThread::~MinidumpThread
+6e418 c 1380 73
+6e424 10 1380 73
+6e434 8 1381 73
+6e43c c 1381 73
+6e448 8 1382 73
+6e450 c 1382 73
+6e45c c 1383 73
+FUNC 6e468 30 0 google_breakpad::MinidumpException::~MinidumpException
+6e468 c 2883 73
+6e474 8 2883 73
+6e47c 8 2884 73
+6e484 c 2884 73
+6e490 8 2885 73
+FUNC 6e498 d4 0 std::basic_filebuf<char, std::char_traits<char> >::pbackfail
+6e498 4 161 104
+6e49c 4 157 104
+6e4a0 4 162 104
+6e4a4 c 161 104
+6e4b0 8 166 104
+6e4b8 8 166 104
+6e4c0 c 166 104
+6e4cc c 166 104
+6e4d8 8 175 104
+6e4e0 4 178 104
+6e4e4 4 177 104
+6e4e8 4 178 104
+6e4ec 4 180 104
+6e4f0 4 162 104
+6e4f4 8 180 104
+6e4fc 4 181 104
+6e500 4 95 129
+6e504 4 181 104
+6e508 4 93 129
+6e50c 8 94 129
+6e514 4 187 104
+6e518 8 188 104
+6e520 4 189 104
+6e524 4 186 104
+6e528 4 93 129
+6e52c 4 94 129
+6e530 4 190 104
+6e534 4 95 129
+6e538 8 190 104
+6e540 4 220 140
+6e544 8 162 104
+6e54c 4 91 129
+6e550 4 171 104
+6e554 8 91 129
+6e55c 4 171 104
+6e560 8 171 104
+6e568 4 199 104
+FUNC 6e56c 4 0 google_breakpad::MinidumpObject::~MinidumpObject
+6e56c 4 114 65
+FUNC 6e570 24 0 google_breakpad::MinidumpThread::~MinidumpThread
+6e570 c 1380 73
+6e57c 4 1380 73
+6e580 4 1383 73
+6e584 4 1383 73
+6e588 8 1383 73
+6e590 4 1383 73
+FUNC 6e594 24 0 google_breakpad::MinidumpException::~MinidumpException
+6e594 c 2883 73
+6e5a0 4 2883 73
+6e5a4 4 2885 73
+6e5a8 4 2885 73
+6e5ac 8 2885 73
+6e5b4 4 2885 73
+FUNC 6e5b8 10 0 google_breakpad::MinidumpContext::~MinidumpContext
+6e5b8 10 420 73
+FUNC 6e5c8 24 0 google_breakpad::MinidumpContext::~MinidumpContext
+6e5c8 c 420 73
+6e5d4 4 420 73
+6e5d8 4 421 73
+6e5dc 4 421 73
+6e5e0 8 421 73
+6e5e8 4 421 73
+FUNC 6e5ec 34 0 google_breakpad::MinidumpModuleList::Copy
+6e5ec c 2640 73
+6e5f8 4 2640 73
+6e5fc c 2641 73
+6e608 8 2641 73
+6e610 10 2642 73
+FUNC 6e628 4 0 std::basic_filebuf<char, std::char_traits<char> >::underflow
+6e628 4 76 104
+FUNC 6e62c 38 0 std::basic_filebuf<char, std::char_traits<char> >::sync
+6e62c 4 402 104
+6e630 4 406 104
+6e634 4 402 104
+6e638 8 403 104
+6e640 4 405 104
+6e644 c 405 104
+6e650 8 405 104
+6e658 c 407 104
+FUNC 6e664 88 0 std::basic_filebuf<char, std::char_traits<char> >::showmanyc
+6e664 10 132 104
+6e674 4 134 104
+6e678 4 135 104
+6e67c 4 134 104
+6e680 8 134 104
+6e688 8 136 104
+6e690 10 137 104
+6e6a0 8 138 104
+6e6a8 8 144 104
+6e6b0 18 139 104
+6e6c8 8 140 104
+6e6d0 8 141 104
+6e6d8 4 141 104
+6e6dc 4 141 104
+6e6e0 c 145 104
+FUNC 6e6ec b8 0 std::basic_filebuf<char, std::char_traits<char> >::_M_unshift
+6e6ec 14 593 104
+6e700 4 593 104
+6e704 4 598 104
+6e708 4 199 102
+6e70c 4 322 105
+6e710 4 597 104
+6e714 4 199 102
+6e718 4 598 104
+6e71c 4 597 104
+6e720 14 199 102
+6e734 4 600 104
+6e738 4 199 102
+6e73c 4 600 104
+6e740 4 600 104
+6e744 4 600 104
+6e748 4 600 104
+6e74c 4 600 104
+6e750 8 600 104
+6e758 8 600 104
+6e760 8 603 104
+6e768 10 322 105
+6e778 4 605 104
+6e77c c 596 104
+6e788 4 602 104
+6e78c 4 602 104
+6e790 14 611 104
+FUNC 6e7a4 80 0 std::basic_filebuf<char, std::char_traits<char> >::_M_setup_codecvt
+6e7a4 c 735 104
+6e7b0 4 735 104
+6e7b4 10 351 117
+6e7c4 4 737 104
+6e7c8 c 216 102
+6e7d4 4 141 100
+6e7d8 4 216 102
+6e7dc 4 141 100
+6e7e0 4 740 104
+6e7e4 4 741 104
+6e7e8 c 227 102
+6e7f4 4 741 104
+6e7f8 c 742 104
+6e804 4 743 104
+6e808 c 218 102
+6e814 4 743 104
+6e818 c 754 104
+FUNC 6e824 98 0 std::basic_filebuf<char, std::char_traits<char> >::imbue
+6e824 10 413 104
+6e834 4 413 104
+6e838 8 414 104
+6e840 8 414 104
+6e848 18 347 117
+6e860 c 736 104
+6e86c 10 417 104
+6e87c 4 746 104
+6e880 4 747 104
+6e884 4 748 104
+6e888 4 351 117
+6e88c 8 747 104
+6e894 4 351 117
+6e898 4 748 104
+6e89c c 417 104
+6e8a8 4 351 117
+6e8ac 10 417 104
+FUNC 6e8bc 54 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> > >::_M_create_node
+6e8bc 4 315 136
+6e8c0 4 306 101
+6e8c4 8 315 136
+6e8cc 4 315 136
+6e8d0 8 306 101
+6e8d8 4 307 101
+6e8dc 8 119 103
+6e8e4 18 68 124
+6e8fc 4 321 136
+6e900 4 322 136
+6e904 c 324 136
+FUNC 6e910 4c 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_create_node
+6e910 4 315 136
+6e914 4 306 101
+6e918 8 315 136
+6e920 4 315 136
+6e924 8 306 101
+6e92c 4 307 101
+6e930 8 119 103
+6e938 10 68 124
+6e948 4 321 136
+6e94c 4 322 136
+6e950 c 324 136
+FUNC 6e95c 54 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_create_node
+6e95c 4 315 136
+6e960 4 306 101
+6e964 8 315 136
+6e96c 4 315 136
+6e970 8 306 101
+6e978 4 307 101
+6e97c 8 119 103
+6e984 18 68 124
+6e99c 4 321 136
+6e9a0 4 322 136
+6e9a4 c 324 136
+FUNC 6e9b0 24 0 google_breakpad::Minidump::MinidumpStreamInfo::~MinidumpStreamInfo
+6e9b0 8 969 65
+6e9b8 8 969 65
+6e9c0 4 969 65
+6e9c4 8 969 65
+6e9cc 8 969 65
+FUNC 6e9d4 b8 0 google_breakpad::BasicCodeModule::BasicCodeModule
+6e9d4 c 57 66
+6e9e0 4 57 66
+6e9e4 8 64 66
+6e9ec 4 57 66
+6e9f0 4 64 66
+6e9f4 10 58 66
+6ea04 4 64 66
+6ea08 10 59 66
+6ea18 4 64 66
+6ea1c 4 64 66
+6ea20 4 60 66
+6ea24 c 64 66
+6ea30 4 61 66
+6ea34 10 64 66
+6ea44 4 62 66
+6ea48 10 64 66
+6ea58 4 63 66
+6ea5c 10 64 66
+6ea6c 4 64 66
+6ea70 10 64 66
+6ea80 c 64 66
+FUNC 6ea8c 34 0 google_breakpad::MinidumpModule::Copy
+6ea8c c 2071 73
+6ea98 4 2071 73
+6ea9c c 2072 73
+6eaa8 8 2072 73
+6eab0 10 2073 73
+FUNC 6eac8 34 0 google_breakpad::BasicCodeModule::Copy
+6eac8 c 91 66
+6ead4 10 91 66
+6eae4 8 91 66
+6eaec 10 91 66
+FUNC 6eafc 3c 0 google_breakpad::MinidumpStream::MinidumpStream
+6eafc c 405 73
+6eb08 4 405 73
+6eb0c 4 396 73
+6eb10 4 405 73
+6eb14 8 396 73
+6eb1c 4 406 73
+6eb20 4 396 73
+6eb24 8 406 73
+6eb2c c 407 73
+FUNC 6eb38 50 0 google_breakpad::MinidumpMemoryRegion::MinidumpMemoryRegion
+6eb38 c 1192 73
+6eb44 4 1192 73
+6eb48 4 396 73
+6eb4c 4 1192 73
+6eb50 4 396 73
+6eb54 8 1195 73
+6eb5c 4 396 73
+6eb60 c 1195 73
+6eb6c 4 396 73
+6eb70 c 1195 73
+6eb7c c 1196 73
+FUNC 6eb88 28 0 google_breakpad::MinidumpMemoryRegion::SetDescriptor
+6eb88 4 1205 73
+6eb8c 4 1206 73
+6eb90 4 1206 73
+6eb94 4 1207 73
+6eb98 8 1208 73
+6eba0 8 1206 73
+6eba8 4 1209 73
+6ebac 4 1210 73
+FUNC 6ebb0 54 0 google_breakpad::MinidumpThread::MinidumpThread
+6ebb0 c 1372 73
+6ebbc 4 1372 73
+6ebc0 4 396 73
+6ebc4 4 1372 73
+6ebc8 4 396 73
+6ebcc 4 1376 73
+6ebd0 8 396 73
+6ebd8 20 1376 73
+6ebf8 c 1377 73
+FUNC 6ec04 4c 0 google_breakpad::MinidumpThreadList::MinidumpThreadList
+6ec04 c 1540 73
+6ec10 4 1540 73
+6ec14 10 1544 73
+6ec24 4 263 136
+6ec28 4 481 101
+6ec2c 4 263 136
+6ec30 4 266 136
+6ec34 4 267 136
+6ec38 4 391 136
+6ec3c 8 1544 73
+6ec44 c 1545 73
+FUNC 6ec50 84 0 google_breakpad::MinidumpModule::MinidumpModule
+6ec50 c 1704 73
+6ec5c 4 1704 73
+6ec60 4 396 73
+6ec64 4 1704 73
+6ec68 4 396 73
+6ec6c 8 1712 73
+6ec74 4 396 73
+6ec78 c 1712 73
+6ec84 4 396 73
+6ec88 40 1712 73
+6ecc8 c 1713 73
+FUNC 6ecd4 60 0 google_breakpad::MinidumpModuleList::MinidumpModuleList
+6ecd4 c 2431 73
+6ece0 4 2431 73
+6ece4 1c 2435 73
+6ed00 8 2435 73
+6ed08 4 481 101
+6ed0c 4 263 136
+6ed10 4 266 136
+6ed14 4 267 136
+6ed18 4 391 136
+6ed1c c 2435 73
+6ed28 c 2436 73
+FUNC 6ed34 58 0 google_breakpad::MinidumpMemoryList::MinidumpMemoryList
+6ed34 c 2673 73
+6ed40 4 2673 73
+6ed44 10 2678 73
+6ed54 8 2678 73
+6ed5c 4 481 101
+6ed60 4 263 136
+6ed64 4 266 136
+6ed68 4 267 136
+6ed6c 4 391 136
+6ed70 10 2678 73
+6ed80 c 2679 73
+FUNC 6ed8c 40 0 google_breakpad::MinidumpException::MinidumpException
+6ed8c c 2876 73
+6ed98 4 2876 73
+6ed9c 24 2879 73
+6edc0 c 2880 73
+FUNC 6edcc 48 0 google_breakpad::MinidumpSystemInfo::MinidumpSystemInfo
+6edcc c 3092 73
+6edd8 4 3092 73
+6eddc 2c 3096 73
+6ee08 c 3097 73
+FUNC 6ee14 24 0 google_breakpad::scoped_ptr<google_breakpad::MinidumpContext>::~scoped_ptr
+6ee14 8 96 57
+6ee1c 8 98 57
+6ee24 c 98 57
+6ee30 8 99 57
+FUNC 6ee38 70 0 std::priv::_Impl_vector<google_breakpad::MinidumpThread, std::allocator<google_breakpad::MinidumpThread> >::~_Impl_vector
+6ee38 10 304 139
+6ee48 c 304 139
+6ee54 8 191 103
+6ee5c 4 57 103
+6ee60 4 77 113
+6ee64 14 57 103
+6ee78 8 87 139
+6ee80 4 88 139
+6ee84 c 304 139
+6ee90 8 323 101
+6ee98 10 304 139
+FUNC 6eea8 70 0 std::priv::_Impl_vector<google_breakpad::MinidumpModule, std::allocator<google_breakpad::MinidumpModule> >::~_Impl_vector
+6eea8 10 304 139
+6eeb8 c 304 139
+6eec4 8 191 103
+6eecc 4 57 103
+6eed0 4 77 113
+6eed4 14 57 103
+6eee8 8 87 139
+6eef0 4 88 139
+6eef4 c 304 139
+6ef00 8 323 101
+6ef08 10 304 139
+FUNC 6ef18 1c 0 std::priv::_Impl_vector<MDMemoryDescriptor, std::allocator<MDMemoryDescriptor> >::~_Impl_vector
+6ef18 8 304 139
+6ef20 4 87 139
+6ef24 4 88 139
+6ef28 8 323 101
+6ef30 4 304 139
+FUNC 6ef34 70 0 std::priv::_Impl_vector<google_breakpad::MinidumpMemoryRegion, std::allocator<google_breakpad::MinidumpMemoryRegion> >::~_Impl_vector
+6ef34 10 304 139
+6ef44 c 304 139
+6ef50 8 191 103
+6ef58 4 57 103
+6ef5c 4 77 113
+6ef60 14 57 103
+6ef74 8 87 139
+6ef7c 4 88 139
+6ef80 c 304 139
+6ef8c 8 323 101
+6ef94 10 304 139
+FUNC 6efa4 1c 0 std::priv::_Impl_vector<MDRawDirectory, std::allocator<MDRawDirectory> >::~_Impl_vector
+6efa4 8 304 139
+6efac 4 87 139
+6efb0 4 88 139
+6efb4 8 323 101
+6efbc 4 304 139
+FUNC 6efc0 38 0 google_breakpad::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+6efc0 c 96 57
+6efcc 8 98 57
+6efd4 8 156 132
+6efdc 4 98 57
+6efe0 8 99 57
+6efe8 4 98 57
+6efec c 99 57
+FUNC 6eff8 48 0 google_breakpad::BasicCodeModule::~BasicCodeModule
+6eff8 10 80 66
+6f008 c 80 66
+6f014 20 156 132
+6f034 8 80 66
+6f03c 4 156 132
+FUNC 6f040 24 0 google_breakpad::BasicCodeModule::~BasicCodeModule
+6f040 c 80 66
+6f04c 8 80 66
+6f054 4 80 66
+6f058 8 80 66
+6f060 4 80 66
+FUNC 6f064 60 0 google_breakpad::MinidumpSystemInfo::~MinidumpSystemInfo
+6f064 c 3100 73
+6f070 c 3100 73
+6f07c 4 3101 73
+6f080 4 3100 73
+6f084 4 3101 73
+6f088 8 156 132
+6f090 8 3101 73
+6f098 8 3102 73
+6f0a0 8 156 132
+6f0a8 4 3102 73
+6f0ac 8 3103 73
+6f0b4 4 3102 73
+6f0b8 c 3103 73
+FUNC 6f0c4 24 0 google_breakpad::MinidumpSystemInfo::~MinidumpSystemInfo
+6f0c4 c 3100 73
+6f0d0 4 3100 73
+6f0d4 4 3103 73
+6f0d8 4 3103 73
+6f0dc 8 3103 73
+6f0e4 4 3103 73
+FUNC 6f0e8 a0 0 std::priv::_Impl_vector<short unsigned int, std::allocator<short unsigned int> >::_Impl_vector
+6f0e8 c 233 139
+6f0f4 4 70 139
+6f0f8 4 233 139
+6f0fc 4 70 139
+6f100 4 481 101
+6f104 4 342 101
+6f108 c 343 101
+6f114 8 343 101
+6f11c 4 356 101
+6f120 4 346 101
+6f124 c 347 101
+6f130 4 348 101
+6f134 c 352 101
+6f140 4 73 139
+6f144 4 71 139
+6f148 4 73 139
+6f14c 4 314 137
+6f150 4 72 139
+6f154 c 249 137
+6f160 c 249 137
+6f16c c 146 103
+6f178 10 244 139
+FUNC 6f188 1c 0 std::priv::_Vector_base<short unsigned int, std::allocator<short unsigned int> >::~_Vector_base
+6f188 4 86 139
+6f18c 8 87 139
+6f194 4 88 139
+6f198 8 323 101
+6f1a0 4 89 139
+FUNC 6f1a4 1c 0 std::priv::_Vector_base<unsigned char, std::allocator<unsigned char> >::~_Vector_base
+6f1a4 4 86 139
+6f1a8 8 87 139
+6f1b0 4 88 139
+6f1b4 8 323 101
+6f1bc 4 89 139
+FUNC 6f1c0 50 0 google_breakpad::MinidumpMemoryRegion::~MinidumpMemoryRegion
+6f1c0 10 1199 73
+6f1d0 c 1199 73
+6f1dc 4 1200 73
+6f1e0 8 1199 73
+6f1e8 4 1200 73
+6f1ec 8 304 139
+6f1f4 4 1200 73
+6f1f8 8 1201 73
+6f200 4 1200 73
+6f204 c 1201 73
+FUNC 6f218 24 0 google_breakpad::MinidumpMemoryRegion::~MinidumpMemoryRegion
+6f218 c 1199 73
+6f224 4 1199 73
+6f228 4 1201 73
+6f22c 4 1201 73
+6f230 8 1201 73
+6f238 4 1201 73
+FUNC 6f244 38 0 google_breakpad::scoped_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >::~scoped_ptr
+6f244 c 96 57
+6f250 8 98 57
+6f258 8 304 139
+6f260 4 98 57
+6f264 8 99 57
+6f26c 4 98 57
+6f270 c 99 57
+FUNC 6f27c 84 0 google_breakpad::MinidumpModule::~MinidumpModule
+6f27c c 1716 73
+6f288 c 1716 73
+6f294 4 1717 73
+6f298 10 1716 73
+6f2a8 4 1717 73
+6f2ac 8 156 132
+6f2b4 8 1717 73
+6f2bc 8 1718 73
+6f2c4 8 304 139
+6f2cc 8 1718 73
+6f2d4 8 1719 73
+6f2dc 8 304 139
+6f2e4 4 1719 73
+6f2e8 8 1720 73
+6f2f0 4 1719 73
+6f2f4 c 1720 73
+FUNC 6f308 24 0 google_breakpad::MinidumpModule::~MinidumpModule
+6f308 c 1716 73
+6f314 4 1716 73
+6f318 4 1720 73
+6f31c 4 1720 73
+6f320 8 1720 73
+6f328 4 1720 73
+FUNC 6f334 90 0 std::priv::_Impl_vector<unsigned char, std::allocator<unsigned char> >::_Impl_vector
+6f334 c 233 139
+6f340 4 233 139
+6f344 8 70 139
+6f34c 4 481 101
+6f350 4 346 101
+6f354 10 347 101
+6f364 4 348 101
+6f368 10 352 101
+6f378 4 346 101
+6f37c 4 356 101
+6f380 4 73 139
+6f384 4 71 139
+6f388 4 73 139
+6f38c 4 314 137
+6f390 4 72 139
+6f394 8 314 137
+6f39c c 249 137
+6f3a8 c 146 103
+6f3b4 10 244 139
+FUNC 6f3c4 60 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::find<unsigned int>
+6f3c4 4 543 136
+6f3c8 8 549 136
+6f3d0 4 552 136
+6f3d4 10 553 136
+6f3e4 8 554 136
+6f3ec 14 556 136
+6f400 8 558 136
+6f408 10 559 136
+6f418 4 142 136
+6f41c 8 543 136
+FUNC 6f424 44 0 std::priv::_Rb_global<bool>::_M_increment
+6f424 8 297 135
+6f42c 10 94 136
+6f43c 4 301 135
+6f440 c 302 135
+6f44c c 304 135
+6f458 c 309 135
+6f464 4 313 135
+FUNC 6f468 170 0 std::priv::__read_unbuffered<char, std::char_traits<char>, std::priv::_Constant_unary_fun<bool, int> >
+6f468 1c 579 111
+6f484 20 579 111
+6f4a4 4 603 111
+6f4a8 c 592 111
+6f4b4 8 593 111
+6f4bc 10 229 129
+6f4cc 8 228 129
+6f4d4 8 223 140
+6f4dc 8 228 129
+6f4e4 c 229 129
+6f4f0 4 599 111
+6f4f4 4 229 129
+6f4f8 8 599 111
+6f500 18 600 111
+6f518 c 603 111
+6f524 4 604 111
+6f528 8 605 111
+6f530 10 244 129
+6f540 c 244 129
+6f54c 4 243 129
+6f550 8 244 129
+6f558 4 243 129
+6f55c 10 244 129
+6f56c c 606 111
+6f578 4 612 111
+6f57c 4 591 111
+6f580 8 594 111
+6f588 4 601 111
+6f58c 4 622 111
+6f590 4 623 111
+6f594 4 624 111
+6f598 14 625 111
+6f5ac c 622 111
+6f5b8 20 627 111
+FUNC 6f5d8 28 0 google_breakpad::BasicCodeModule::code_file
+6f5d8 10 86 66
+6f5e8 18 86 66
+FUNC 6f600 28 0 google_breakpad::BasicCodeModule::code_identifier
+6f600 10 87 66
+6f610 18 87 66
+FUNC 6f628 28 0 google_breakpad::BasicCodeModule::debug_file
+6f628 10 88 66
+6f638 18 88 66
+FUNC 6f650 28 0 google_breakpad::BasicCodeModule::debug_identifier
+6f650 10 89 66
+6f660 18 89 66
+FUNC 6f678 28 0 google_breakpad::BasicCodeModule::version
+6f678 10 90 66
+6f688 18 90 66
+FUNC 6f6a0 28 0 google_breakpad::Minidump::path
+6f6a0 4 869 65
+6f6a4 8 870 65
+6f6ac 4 869 65
+6f6b0 8 870 65
+6f6b8 10 871 65
+FUNC 6f6c8 84 0 google_breakpad::Minidump::Minidump
+6f6c8 c 3972 73
+6f6d4 4 3972 73
+6f6d8 8 3979 73
+6f6e0 4 3972 73
+6f6e4 2c 3979 73
+6f710 4 481 101
+6f714 4 263 136
+6f718 4 266 136
+6f71c 4 267 136
+6f720 4 391 136
+6f724 4 3979 73
+6f728 4 3979 73
+6f72c 8 3979 73
+6f734 c 3979 73
+6f740 c 3980 73
+FUNC 6f74c 74 0 google_breakpad::MinidumpModuleList::GetMainModule
+6f74c c 2588 73
+6f758 8 2589 73
+6f760 24 2590 73
+6f784 10 333 122
+6f794 8 2590 73
+6f79c 8 2590 73
+6f7a4 10 2596 73
+6f7b4 c 2597 73
+FUNC 6f7e8 68 0 google_breakpad::MinidumpThread::GetMemory
+6f7e8 c 1438 73
+6f7f4 8 1439 73
+6f7fc 24 1440 73
+6f820 10 333 122
+6f830 8 1440 73
+6f838 8 1440 73
+6f840 4 1444 73
+6f844 c 1445 73
+FUNC 6f850 6c 0 google_breakpad::MinidumpMemoryRegion::GetBase
+6f850 c 1252 73
+6f85c 8 1253 73
+6f864 24 1254 73
+6f888 10 333 122
+6f898 8 1254 73
+6f8a0 8 1254 73
+6f8a8 8 1258 73
+6f8b0 c 1259 73
+FUNC 6f8c4 6c 0 google_breakpad::MinidumpMemoryRegion::GetSize
+6f8c4 c 1262 73
+6f8d0 8 1263 73
+6f8d8 24 1264 73
+6f8fc 10 333 122
+6f90c 8 1264 73
+6f914 8 1264 73
+6f91c 8 1268 73
+6f924 c 1269 73
+FUNC 6f938 68 0 google_breakpad::MinidumpThread::GetStartOfStackMemoryRange
+6f938 c 1429 73
+6f944 8 1430 73
+6f94c 24 1431 73
+6f970 10 333 122
+6f980 8 1431 73
+6f988 8 1431 73
+6f990 4 1435 73
+6f994 c 1436 73
+FUNC 6f9a0 c0 0 google_breakpad::MinidumpThread::GetThreadID
+6f9a0 10 1474 73
+6f9b0 8 1474 73
+6f9b8 4 1476 73
+6f9bc 24 1476 73
+6f9e0 10 333 122
+6f9f0 8 1476 73
+6f9f8 4 1478 73
+6f9fc 8 1480 73
+6fa04 24 1481 73
+6fa28 10 333 122
+6fa38 c 1481 73
+6fa44 8 1485 73
+6fa4c 14 1487 73
+FUNC 6fa60 c0 0 google_breakpad::MinidumpException::GetThreadID
+6fa60 10 2930 73
+6fa70 8 2930 73
+6fa78 4 2932 73
+6fa7c 24 2932 73
+6faa0 10 333 122
+6fab0 8 2932 73
+6fab8 4 2934 73
+6fabc 8 2936 73
+6fac4 24 2937 73
+6fae8 10 333 122
+6faf8 8 2937 73
+6fb00 4 2938 73
+6fb04 8 2941 73
+6fb0c 14 2943 73
+FUNC 6fb20 8c 0 google_breakpad::MinidumpModule::code_file
+6fb20 10 1817 73
+6fb30 4 1817 73
+6fb34 8 1818 73
+6fb3c 24 1819 73
+6fb60 10 333 122
+6fb70 8 1819 73
+6fb78 18 1820 73
+6fb90 c 1823 73
+6fb9c 10 1824 73
+FUNC 6fbb4 104 0 google_breakpad::RangeMap<long unsigned int, unsigned int>::RetrieveRange
+6fbb4 14 118 75
+6fbc8 14 118 75
+6fbdc 4 121 75
+6fbe0 24 121 75
+6fc04 10 333 122
+6fc14 c 121 75
+6fc20 4 568 136
+6fc24 4 571 136
+6fc28 10 572 136
+6fc38 8 573 136
+6fc40 14 575 136
+6fc54 4 125 75
+6fc58 4 126 75
+6fc5c 4 125 75
+6fc60 14 133 75
+6fc74 4 136 75
+6fc78 8 137 75
+6fc80 4 138 75
+6fc84 4 142 75
+6fc88 8 139 75
+6fc90 10 140 75
+6fca0 4 142 75
+6fca4 14 143 75
+FUNC 6fcb8 238 0 google_breakpad::MinidumpContext::CheckAgainstSystemInfo
+6fcb8 14 1106 73
+6fccc 4 1106 73
+6fcd0 14 1109 73
+6fce4 4 1110 73
+6fce8 1c 1112 73
+6fd04 4 1113 73
+6fd08 4 1112 73
+6fd0c 10 333 122
+6fd1c 8 1112 73
+6fd24 4 1113 73
+6fd28 8 675 65
+6fd30 4 1125 73
+6fd34 48 1130 73
+6fd7c 8 1155 73
+6fd84 18 1130 73
+6fd9c 8 1165 73
+6fda4 10 1133 73
+6fdb4 c 1132 73
+6fdc0 8 1133 73
+6fdc8 8 1140 73
+6fdd0 8 1145 73
+6fdd8 8 1150 73
+6fde0 8 1155 73
+6fde8 8 1160 73
+6fdf0 c 1170 73
+6fdfc 24 1120 73
+6fe20 10 333 122
+6fe30 8 1120 73
+6fe38 4 1121 73
+6fe3c 20 1175 73
+6fe5c 4 1176 73
+6fe60 4 1175 73
+6fe64 4 110 72
+6fe68 10 333 122
+6fe78 8 1176 73
+6fe80 4 1178 73
+6fe84 4 1176 73
+6fe88 10 1176 73
+6fe98 c 333 122
+6fea4 c 1178 73
+6feb0 c 1178 73
+6febc c 156 132
+6fec8 4 1175 73
+6fecc 4 156 132
+6fed0 8 1175 73
+6fed8 18 1181 73
+FUNC 6fef0 108 0 google_breakpad::MinidumpModuleList::GetModuleForAddress
+6fef0 10 2571 73
+6ff00 8 2571 73
+6ff08 8 2572 73
+6ff10 24 2573 73
+6ff34 10 333 122
+6ff44 8 2573 73
+6ff4c 20 2578 73
+6ff6c 1c 2579 73
+6ff88 4 2580 73
+6ff8c 4 2579 73
+6ff90 4 110 72
+6ff94 10 333 122
+6ffa4 c 2580 73
+6ffb0 c 2580 73
+6ffbc 8 156 132
+6ffc4 8 2579 73
+6ffcc 8 2581 73
+6ffd4 14 2584 73
+6ffe8 10 2585 73
+FUNC 70020 fc 0 google_breakpad::MinidumpThreadList::GetThreadAtIndex
+70020 10 1652 73
+70030 8 1652 73
+70038 8 1653 73
+70040 24 1654 73
+70064 10 333 122
+70074 8 1654 73
+7007c c 1658 73
+70088 24 1659 73
+700ac 4 110 72
+700b0 10 333 122
+700c0 10 254 121
+700d0 c 333 122
+700dc c 254 121
+700e8 8 1659 73
+700f0 c 1659 73
+700fc 10 202 139
+7010c 10 1665 73
+FUNC 7011c fc 0 google_breakpad::MinidumpModuleList::GetModuleAtIndex
+7011c 10 2624 73
+7012c 8 2624 73
+70134 8 2625 73
+7013c 24 2626 73
+70160 10 333 122
+70170 8 2626 73
+70178 c 2630 73
+70184 24 2631 73
+701a8 4 110 72
+701ac 10 333 122
+701bc 10 254 121
+701cc c 333 122
+701d8 c 254 121
+701e4 8 2631 73
+701ec c 2631 73
+701f8 10 202 139
+70208 10 2637 73
+FUNC 70240 fc 0 google_breakpad::MinidumpMemoryList::GetMemoryRegionAtIndex
+70240 10 2805 73
+70250 8 2805 73
+70258 8 2806 73
+70260 24 2807 73
+70284 10 333 122
+70294 8 2807 73
+7029c c 2811 73
+702a8 24 2812 73
+702cc 4 110 72
+702d0 10 333 122
+702e0 10 254 121
+702f0 c 333 122
+702fc c 254 121
+70308 8 2812 73
+70310 c 2812 73
+7031c 10 202 139
+7032c 10 2818 73
+FUNC 7033c 100 0 google_breakpad::MinidumpMemoryList::GetMemoryRegionForAddress
+7033c 10 2822 73
+7034c 8 2822 73
+70354 8 2823 73
+7035c 24 2824 73
+70380 10 333 122
+70390 8 2824 73
+70398 20 2829 73
+703b8 1c 2830 73
+703d4 4 2831 73
+703d8 4 2830 73
+703dc 4 110 72
+703e0 10 333 122
+703f0 c 2831 73
+703fc c 2831 73
+70408 8 156 132
+70410 8 2830 73
+70418 8 2832 73
+70420 c 2835 73
+7042c 10 2836 73
+FUNC 7043c 1e4 0 google_breakpad::MinidumpModuleList::GetModuleAtSequence
+7043c 14 2601 73
+70450 8 2601 73
+70458 8 2602 73
+70460 24 2603 73
+70484 14 333 122
+70498 c 2607 73
+704a4 24 2608 73
+704c8 4 110 72
+704cc 10 333 122
+704dc 10 254 121
+704ec c 333 122
+704f8 c 254 121
+70504 8 2608 73
+7050c 8 2610 73
+70514 4 2614 73
+70518 4 207 75
+7051c 8 184 75
+70524 28 185 75
+7054c 4 110 72
+70550 10 333 122
+70560 10 185 75
+70570 c 333 122
+7057c c 185 75
+70588 8 185 75
+70590 1c 2615 73
+705ac 4 110 72
+705b0 10 333 122
+705c0 c 254 121
+705cc c 2615 73
+705d8 4 192 75
+705dc 8 192 75
+705e4 4 177 136
+705e8 4 192 75
+705ec c 177 136
+705f8 14 2619 73
+7060c 14 2620 73
+FUNC 70648 378 0 google_breakpad::UTF16ToUTF8
+70648 10 234 73
+70658 4 235 73
+7065c c 234 73
+70668 4 235 73
+7066c 8 234 73
+70674 8 235 73
+7067c 8 235 73
+70684 4 92 57
+70688 10 192 139
+70698 8 159 130
+706a0 10 600 130
+706b0 4 72 132
+706b4 10 400 131
+706c4 4 72 132
+706c8 4 162 130
+706cc 4 72 132
+706d0 8 72 132
+706d8 8 163 130
+706e0 c 166 130
+706ec 4 248 73
+706f0 4 286 73
+706f4 10 242 73
+70704 8 246 73
+7070c 4 247 73
+70710 8 248 73
+70718 18 252 73
+70730 24 253 73
+70754 4 110 72
+70758 10 333 122
+70768 c 254 73
+70774 c 254 73
+70780 c 333 122
+7078c 10 256 73
+7079c 8 259 73
+707a4 4 258 73
+707a8 4 259 73
+707ac 8 258 73
+707b4 4 259 73
+707b8 24 260 73
+707dc 4 110 72
+707e0 10 333 122
+707f0 c 261 73
+707fc c 261 73
+70808 c 333 122
+70814 8 156 132
+7081c 8 260 73
+70824 8 265 73
+7082c 14 266 73
+70840 20 267 73
+70860 4 268 73
+70864 4 267 73
+70868 4 110 72
+7086c 10 333 122
+7087c c 268 73
+70888 10 268 73
+70898 c 333 122
+708a4 c 269 73
+708b0 c 269 73
+708bc 10 156 132
+708cc 8 267 73
+708d4 8 255 73
+708dc 10 272 73
+708ec 4 281 73
+708f0 4 276 73
+708f4 4 281 73
+708f8 c 453 131
+70904 8 283 73
+7090c 4 453 131
+70910 4 284 73
+70914 8 453 131
+7091c 4 285 73
+70920 c 453 131
+7092c 14 286 73
+70940 c 453 131
+7094c 4 291 73
+70950 c 453 131
+7095c 4 292 73
+70960 10 453 131
+70970 4 293 73
+70974 14 453 131
+70988 8 242 73
+70990 4 143 57
+70994 4 144 57
+70998 8 302 73
+709a0 20 303 73
+FUNC 709c0 214 0 google_breakpad::MinidumpModule::code_identifier
+709c0 14 1827 73
+709d4 8 1827 73
+709dc c 1828 73
+709e8 20 1829 73
+70a08 10 333 122
+70a18 8 1833 73
+70a20 14 1836 73
+70a34 4 1837 73
+70a38 20 1839 73
+70a58 10 333 122
+70a68 8 675 65
+70a70 c 1849 73
+70a7c 4 1851 73
+70a80 4 1849 73
+70a84 28 1851 73
+70aac 1c 1858 73
+70ac8 c 1859 73
+70ad4 10 1851 73
+70ae4 10 1873 73
+70af4 4 1874 73
+70af8 24 1881 73
+70b1c 4 110 72
+70b20 10 333 122
+70b30 c 1881 73
+70b3c c 1881 73
+70b48 8 156 132
+70b50 8 1881 73
+70b58 c 1886 73
+70b64 c 156 132
+70b70 20 1845 73
+70b90 10 333 122
+70ba0 8 1845 73
+70ba8 14 1846 73
+70bbc 18 1887 73
+FUNC 70bdc 1e4 0 google_breakpad::MinidumpModule::debug_identifier
+70bdc 18 1970 73
+70bf4 c 1970 73
+70c00 8 1971 73
+70c08 20 1972 73
+70c28 10 333 122
+70c38 c 1972 73
+70c44 8 1976 73
+70c4c 18 1977 73
+70c64 10 1979 73
+70c74 8 1982 73
+70c7c 18 1983 73
+70c94 64 2005 73
+70cf8 14 2007 73
+70d0c 1c 2017 73
+70d28 c 2018 73
+70d34 10 2033 73
+70d44 20 2033 73
+70d64 4 110 72
+70d68 10 333 122
+70d78 c 2033 73
+70d84 8 2033 73
+70d8c c 2035 73
+70d98 8 156 132
+70da0 20 2036 73
+FUNC 70dc8 168 0 google_breakpad::MinidumpModule::version
+70dc8 14 2039 73
+70ddc c 2039 73
+70de8 8 2040 73
+70df0 20 2041 73
+70e10 10 333 122
+70e20 8 2041 73
+70e28 18 2042 73
+70e40 10 2045 73
+70e50 24 2047 73
+70e74 2c 2054 73
+70ea0 c 2055 73
+70eac 10 2065 73
+70ebc 20 2065 73
+70edc 4 110 72
+70ee0 10 333 122
+70ef0 c 2065 73
+70efc 8 2065 73
+70f04 c 2067 73
+70f10 8 156 132
+70f18 18 2068 73
+FUNC 70f38 248 0 google_breakpad::MinidumpModule::debug_file
+70f38 18 1890 73
+70f50 8 1890 73
+70f58 c 1891 73
+70f64 20 1892 73
+70f84 10 333 122
+70f94 c 1892 73
+70fa0 8 1896 73
+70fa8 18 1897 73
+70fc0 10 1899 73
+70fd0 8 1901 73
+70fd8 14 1902 73
+70fec 10 1909 73
+70ffc 10 1910 73
+7100c 10 1917 73
+7101c 10 1924 73
+7102c c 1926 73
+71038 8 1929 73
+71040 4 1932 73
+71044 8 225 131
+7104c 4 112 132
+71050 4 225 131
+71054 4 481 101
+71058 4 225 131
+7105c 10 349 131
+7106c c 156 132
+71078 8 1943 73
+71080 8 1944 73
+71088 4 1949 73
+7108c 4 1945 73
+71090 8 116 143
+71098 4 1949 73
+7109c c 116 143
+710a8 4 1950 73
+710ac 10 1951 73
+710bc c 1955 73
+710c8 4 92 57
+710cc 4 348 131
+710d0 4 1955 73
+710d4 4 348 131
+710d8 10 349 131
+710e8 8 1955 73
+710f0 8 304 139
+710f8 10 1964 73
+71108 20 1964 73
+71128 4 110 72
+7112c 10 333 122
+7113c c 1964 73
+71148 8 1964 73
+71150 c 1966 73
+7115c 8 156 132
+71164 1c 1967 73
+FUNC 71188 50 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_erase
+71188 18 655 135
+711a0 4 657 135
+711a4 c 658 135
+711b0 4 659 135
+711b4 14 161 101
+711c8 10 664 135
+FUNC 711d8 5c 0 google_breakpad::MinidumpThreadList::~MinidumpThreadList
+711d8 c 1548 73
+711e4 c 1548 73
+711f0 4 1549 73
+711f4 4 1548 73
+711f8 4 1549 73
+711fc 8 42 143
+71204 8 1549 73
+7120c c 531 136
+71218 4 532 136
+7121c 8 1550 73
+71224 4 532 136
+71228 c 1550 73
+FUNC 71234 24 0 google_breakpad::MinidumpThreadList::~MinidumpThreadList
+71234 c 1548 73
+71240 4 1548 73
+71244 4 1550 73
+71248 4 1550 73
+7124c 8 1550 73
+71254 4 1550 73
+FUNC 71258 50 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> > >::_M_erase
+71258 18 655 135
+71270 4 657 135
+71274 c 658 135
+71280 4 659 135
+71284 14 161 101
+71298 10 664 135
+FUNC 712a8 3c 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> > >::clear
+712a8 8 530 136
+712b0 4 531 136
+712b4 4 530 136
+712b8 4 530 136
+712bc 4 531 136
+712c0 8 532 136
+712c8 4 533 136
+712cc 4 534 136
+712d0 4 535 136
+712d4 4 536 136
+712d8 c 538 136
+FUNC 712e4 6c 0 google_breakpad::MinidumpModuleList::~MinidumpModuleList
+712e4 c 2439 73
+712f0 c 2439 73
+712fc 4 2440 73
+71300 10 2439 73
+71310 4 2440 73
+71314 8 414 136
+7131c 8 2440 73
+71324 8 2441 73
+7132c 8 42 143
+71334 4 2441 73
+71338 8 2442 73
+71340 4 2441 73
+71344 c 2442 73
+FUNC 71358 24 0 google_breakpad::MinidumpModuleList::~MinidumpModuleList
+71358 c 2439 73
+71364 4 2439 73
+71368 4 2442 73
+7136c 4 2442 73
+71370 8 2442 73
+71378 4 2442 73
+FUNC 71384 78 0 google_breakpad::MinidumpMemoryList::~MinidumpMemoryList
+71384 c 2682 73
+71390 c 2682 73
+7139c 4 2683 73
+713a0 4 2682 73
+713a4 4 2683 73
+713a8 8 414 136
+713b0 8 2683 73
+713b8 8 2684 73
+713c0 8 42 143
+713c8 8 2684 73
+713d0 8 2685 73
+713d8 8 42 143
+713e0 4 2685 73
+713e4 8 2686 73
+713ec 4 2685 73
+713f0 c 2686 73
+FUNC 713fc 24 0 google_breakpad::MinidumpMemoryList::~MinidumpMemoryList
+713fc c 2682 73
+71408 4 2682 73
+7140c 4 2686 73
+71410 4 2686 73
+71414 8 2686 73
+7141c 4 2686 73
+FUNC 71420 58 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_erase
+71420 18 655 135
+71438 4 657 135
+7143c c 658 135
+71448 4 659 135
+7144c 8 51 124
+71454 14 161 101
+71468 10 664 135
+FUNC 71478 d4 0 google_breakpad::Minidump::~Minidump
+71478 c 3992 73
+71484 10 3992 73
+71494 8 3993 73
+7149c 24 3994 73
+714c0 10 333 122
+714d0 8 3994 73
+714d8 10 3996 73
+714e8 8 3997 73
+714f0 c 3997 73
+714fc 8 3999 73
+71504 8 42 143
+7150c 8 3999 73
+71514 8 4000 73
+7151c 8 531 136
+71524 c 532 136
+71530 8 4000 73
+71538 8 156 132
+71540 c 4001 73
+FUNC 7154c 24 0 google_breakpad::Minidump::~Minidump
+7154c c 3992 73
+71558 4 3992 73
+7155c 4 4001 73
+71560 4 4001 73
+71564 8 4001 73
+7156c 4 4001 73
+FUNC 71570 78 0 std::_M_init_noskip<char, std::char_traits<char> >
+71570 c 310 112
+7157c 4 310 112
+71580 18 311 112
+71598 4 312 112
+7159c 4 313 112
+715a0 14 315 112
+715b4 8 316 112
+715bc 8 319 112
+715c4 c 320 112
+715d0 4 174 110
+715d4 4 321 112
+715d8 4 174 110
+715dc c 321 112
+FUNC 715e8 134 0 google_breakpad::Minidump::SeekSet
+715e8 10 4445 73
+715f8 4 4448 73
+715fc 4 4449 73
+71600 8 4448 73
+71608 c 207 112
+71614 4 521 111
+71618 4 522 111
+7161c 8 521 111
+71624 8 176 110
+7162c 10 522 111
+7163c 4 4452 73
+71640 4 4458 73
+71644 14 4452 73
+71658 18 4453 73
+71670 c 4454 73
+7167c 20 4455 73
+7169c 4 110 72
+716a0 10 333 122
+716b0 10 4455 73
+716c0 c 333 122
+716cc c 4455 73
+716d8 8 4455 73
+716e0 10 156 132
+716f0 18 147 129
+71708 14 4459 73
+FUNC 7171c 270 0 google_breakpad::Minidump::SeekToStreamType
+7171c 14 4526 73
+71730 10 4526 73
+71740 4 4528 73
+71744 20 4528 73
+71764 10 333 122
+71774 8 4528 73
+7177c 4 4530 73
+71780 8 4532 73
+71788 20 4533 73
+717a8 10 333 122
+717b8 8 4533 73
+717c0 4 4534 73
+717c4 10 210 118
+717d4 4 168 136
+717d8 c 4538 73
+717e4 1c 4540 73
+71800 4 4541 73
+71804 4 4540 73
+71808 4 110 72
+7180c 10 333 122
+7181c c 254 121
+71828 c 333 122
+71834 8 4540 73
+7183c 4 4541 73
+71840 10 4544 73
+71850 4 4545 73
+71854 4 4544 73
+71858 8 4545 73
+71860 24 4546 73
+71884 4 110 72
+71888 10 333 122
+71898 10 254 121
+718a8 c 333 122
+718b4 10 254 121
+718c4 c 333 122
+718d0 8 254 121
+718d8 4 4549 73
+718dc 4 254 121
+718e0 8 4546 73
+718e8 8 4549 73
+718f0 10 202 139
+71900 14 4553 73
+71914 24 4554 73
+71938 4 110 72
+7193c 10 333 122
+7194c c 254 121
+71958 8 4554 73
+71960 4 4556 73
+71964 8 4559 73
+7196c 8 4561 73
+71974 18 4562 73
+FUNC 7198c 280 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpException>
+7198c 18 4566 73
+719a4 8 4570 73
+719ac 4 4566 73
+719b0 4 4572 73
+719b4 24 4572 73
+719d8 4 110 72
+719dc 10 333 122
+719ec c 254 121
+719f8 c 333 122
+71a04 8 4572 73
+71a0c 4 4575 73
+71a10 8 4577 73
+71a18 24 4578 73
+71a3c 4 110 72
+71a40 10 333 122
+71a50 c 254 121
+71a5c 8 4578 73
+71a64 8 4579 73
+71a6c 10 210 118
+71a7c 4 197 136
+71a80 c 4583 73
+71a8c 24 4585 73
+71ab0 4 110 72
+71ab4 10 333 122
+71ac4 c 254 121
+71ad0 10 333 122
+71ae0 c 4592 73
+71aec 4 4595 73
+71af0 8 4596 73
+71af8 18 4600 73
+71b10 24 4601 73
+71b34 4 110 72
+71b38 10 333 122
+71b48 c 254 121
+71b54 8 4601 73
+71b5c c 4605 73
+71b68 8 4605 73
+71b70 4 4607 73
+71b74 14 4607 73
+71b88 4 4607 73
+71b8c 24 4608 73
+71bb0 4 110 72
+71bb4 10 333 122
+71bc4 c 254 121
+71bd0 8 4608 73
+71bd8 14 98 57
+71bec 4 4612 73
+71bf0 4 4613 73
+71bf4 4 4614 73
+71bf8 14 4615 73
+FUNC 71c0c 18 0 google_breakpad::Minidump::GetException
+71c0c 8 4249 73
+71c14 8 4251 73
+71c1c 8 4252 73
+FUNC 71c24 280 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpSystemInfo>
+71c24 18 4566 73
+71c3c 8 4570 73
+71c44 4 4566 73
+71c48 4 4572 73
+71c4c 24 4572 73
+71c70 4 110 72
+71c74 10 333 122
+71c84 c 254 121
+71c90 c 333 122
+71c9c 8 4572 73
+71ca4 4 4575 73
+71ca8 8 4577 73
+71cb0 24 4578 73
+71cd4 4 110 72
+71cd8 10 333 122
+71ce8 c 254 121
+71cf4 8 4578 73
+71cfc 8 4579 73
+71d04 10 210 118
+71d14 4 197 136
+71d18 c 4583 73
+71d24 24 4585 73
+71d48 4 110 72
+71d4c 10 333 122
+71d5c c 254 121
+71d68 10 333 122
+71d78 c 4592 73
+71d84 4 4595 73
+71d88 8 4596 73
+71d90 18 4600 73
+71da8 24 4601 73
+71dcc 4 110 72
+71dd0 10 333 122
+71de0 c 254 121
+71dec 8 4601 73
+71df4 c 4605 73
+71e00 8 4605 73
+71e08 4 4607 73
+71e0c 14 4607 73
+71e20 4 4607 73
+71e24 24 4608 73
+71e48 4 110 72
+71e4c 10 333 122
+71e5c c 254 121
+71e68 8 4608 73
+71e70 14 98 57
+71e84 4 4612 73
+71e88 4 4613 73
+71e8c 4 4614 73
+71e90 14 4615 73
+FUNC 71ea4 18 0 google_breakpad::Minidump::GetSystemInfo
+71ea4 8 4260 73
+71eac 8 4262 73
+71eb4 8 4263 73
+FUNC 71ebc 280 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpThreadList>
+71ebc 18 4566 73
+71ed4 8 4570 73
+71edc 4 4566 73
+71ee0 4 4572 73
+71ee4 24 4572 73
+71f08 4 110 72
+71f0c 10 333 122
+71f1c c 254 121
+71f28 c 333 122
+71f34 8 4572 73
+71f3c 4 4575 73
+71f40 8 4577 73
+71f48 24 4578 73
+71f6c 4 110 72
+71f70 10 333 122
+71f80 c 254 121
+71f8c 8 4578 73
+71f94 8 4579 73
+71f9c 10 210 118
+71fac 4 197 136
+71fb0 c 4583 73
+71fbc 24 4585 73
+71fe0 4 110 72
+71fe4 10 333 122
+71ff4 c 254 121
+72000 10 333 122
+72010 c 4592 73
+7201c 4 4595 73
+72020 8 4596 73
+72028 18 4600 73
+72040 24 4601 73
+72064 4 110 72
+72068 10 333 122
+72078 c 254 121
+72084 8 4601 73
+7208c c 4605 73
+72098 8 4605 73
+720a0 4 4607 73
+720a4 14 4607 73
+720b8 4 4607 73
+720bc 24 4608 73
+720e0 4 110 72
+720e4 10 333 122
+720f4 c 254 121
+72100 8 4608 73
+72108 14 98 57
+7211c 4 4612 73
+72120 4 4613 73
+72124 4 4614 73
+72128 14 4615 73
+FUNC 7213c 18 0 google_breakpad::Minidump::GetThreadList
+7213c 8 4231 73
+72144 8 4233 73
+7214c 8 4234 73
+FUNC 72154 280 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpModuleList>
+72154 18 4566 73
+7216c 8 4570 73
+72174 4 4566 73
+72178 4 4572 73
+7217c 24 4572 73
+721a0 4 110 72
+721a4 10 333 122
+721b4 c 254 121
+721c0 c 333 122
+721cc 8 4572 73
+721d4 4 4575 73
+721d8 8 4577 73
+721e0 24 4578 73
+72204 4 110 72
+72208 10 333 122
+72218 c 254 121
+72224 8 4578 73
+7222c 8 4579 73
+72234 10 210 118
+72244 4 197 136
+72248 c 4583 73
+72254 24 4585 73
+72278 4 110 72
+7227c 10 333 122
+7228c c 254 121
+72298 10 333 122
+722a8 c 4592 73
+722b4 4 4595 73
+722b8 8 4596 73
+722c0 18 4600 73
+722d8 24 4601 73
+722fc 4 110 72
+72300 10 333 122
+72310 c 254 121
+7231c 8 4601 73
+72324 c 4605 73
+72330 8 4605 73
+72338 4 4607 73
+7233c 14 4607 73
+72350 4 4607 73
+72354 24 4608 73
+72378 4 110 72
+7237c 10 333 122
+7238c c 254 121
+72398 8 4608 73
+723a0 14 98 57
+723b4 4 4612 73
+723b8 4 4613 73
+723bc 4 4614 73
+723c0 14 4615 73
+FUNC 723d4 18 0 google_breakpad::Minidump::GetModuleList
+723d4 8 4237 73
+723dc 8 4239 73
+723e4 8 4240 73
+FUNC 723ec 280 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpMemoryList>
+723ec 18 4566 73
+72404 8 4570 73
+7240c 4 4566 73
+72410 4 4572 73
+72414 24 4572 73
+72438 4 110 72
+7243c 10 333 122
+7244c c 254 121
+72458 c 333 122
+72464 8 4572 73
+7246c 4 4575 73
+72470 8 4577 73
+72478 24 4578 73
+7249c 4 110 72
+724a0 10 333 122
+724b0 c 254 121
+724bc 8 4578 73
+724c4 8 4579 73
+724cc 10 210 118
+724dc 4 197 136
+724e0 c 4583 73
+724ec 24 4585 73
+72510 4 110 72
+72514 10 333 122
+72524 c 254 121
+72530 10 333 122
+72540 c 4592 73
+7254c 4 4595 73
+72550 8 4596 73
+72558 18 4600 73
+72570 24 4601 73
+72594 4 110 72
+72598 10 333 122
+725a8 c 254 121
+725b4 8 4601 73
+725bc c 4605 73
+725c8 8 4605 73
+725d0 4 4607 73
+725d4 14 4607 73
+725e8 4 4607 73
+725ec 24 4608 73
+72610 4 110 72
+72614 10 333 122
+72624 c 254 121
+72630 8 4608 73
+72638 14 98 57
+7264c 4 4612 73
+72650 4 4613 73
+72654 4 4614 73
+72658 14 4615 73
+FUNC 7266c 18 0 google_breakpad::Minidump::GetMemoryList
+7266c 8 4243 73
+72674 8 4245 73
+7267c 8 4246 73
+FUNC 72684 370 0 google_breakpad::Minidump::Open
+72684 1c 4004 73
+726a0 8 4004 73
+726a8 10 4005 73
+726b8 1c 4006 73
+726d4 4 110 72
+726d8 10 333 122
+726e8 c 4006 73
+726f4 8 4006 73
+726fc 18 4010 73
+72714 8 4013 73
+7271c 4 92 108
+72720 4 4013 73
+72724 4 92 108
+72728 4 464 105
+7272c 4 61 104
+72730 8 92 108
+72738 4 87 112
+7273c 8 92 108
+72744 8 87 112
+7274c 8 87 112
+72754 4 88 112
+72758 4 87 112
+7275c 4 88 112
+72760 4 87 112
+72764 4 88 112
+72768 c 464 105
+72774 c 464 105
+72780 2c 34 128
+727ac c 61 104
+727b8 8 61 104
+727c0 8 61 104
+727c8 4 63 104
+727cc 2c 61 104
+727f8 10 61 104
+72808 10 61 104
+72818 10 61 104
+72828 10 61 104
+72838 24 61 104
+7285c 4 63 104
+72860 10 347 117
+72870 14 736 104
+72884 4 746 104
+72888 8 747 104
+72890 8 748 104
+72898 8 63 104
+728a0 c 465 105
+728ac 18 169 105
+728c4 4 4013 73
+728c8 14 4014 73
+728dc 10 4015 73
+728ec c 4016 73
+728f8 1c 4017 73
+72914 4 110 72
+72918 10 333 122
+72928 10 4017 73
+72938 c 333 122
+72944 10 4018 73
+72954 c 333 122
+72960 c 4018 73
+7296c 8 4017 73
+72974 8 156 132
+7297c 8 4019 73
+72984 10 467 105
+72994 18 4022 73
+729ac 4 110 72
+729b0 10 333 122
+729c0 c 4022 73
+729cc 8 4022 73
+729d4 4 4023 73
+729d8 1c 4024 73
+FUNC 729f4 8c 0 google_breakpad::Minidump::Tell
+729f4 10 4461 73
+72a04 4 4462 73
+72a08 4 4463 73
+72a0c 4 4462 73
+72a10 8 4462 73
+72a18 8 207 112
+72a20 10 497 111
+72a30 4 499 111
+72a34 4 176 110
+72a38 c 499 111
+72a44 18 147 129
+72a5c 8 499 111
+72a64 10 499 111
+72a74 c 4475 73
+FUNC 72a80 134 0 google_breakpad::Minidump::GetContextCPUFlagsFromSystemInfo
+72a80 10 4026 73
+72a90 4 4026 73
+72a94 4 4028 73
+72a98 4 4026 73
+72a9c 4 4031 73
+72aa0 4 4032 73
+72aa4 4 4031 73
+72aa8 4 4032 73
+72aac 14 4039 73
+72ac0 4 4039 73
+72ac4 c 4039 73
+72ad0 8 675 65
+72ad8 14 4042 73
+72aec 4 4053 73
+72af0 c 4042 73
+72afc 4 4047 73
+72b00 8 4042 73
+72b08 8 4044 73
+72b10 4 4042 73
+72b14 4 4062 73
+72b18 8 4042 73
+72b20 8 4059 73
+72b28 18 4042 73
+72b40 8 4077 73
+72b48 10 4042 73
+72b58 8 4056 73
+72b60 8 4050 73
+72b68 8 4065 73
+72b70 8 4068 73
+72b78 8 4083 73
+72b80 4 4084 73
+72b84 4 4089 73
+72b88 8 4095 73
+72b90 c 4096 73
+72b9c 4 4095 73
+72ba0 14 4096 73
+FUNC 72bb4 1b0 0 std::basic_istream<char, std::char_traits<char> >::read
+72bb4 24 783 111
+72bd8 4 207 112
+72bdc 4 785 111
+72be0 8 207 112
+72be8 4 787 111
+72bec 8 787 111
+72bf4 4 175 110
+72bf8 8 787 111
+72c00 10 802 111
+72c10 c 804 111
+72c1c 4 175 110
+72c20 4 804 111
+72c24 10 805 111
+72c34 10 789 111
+72c44 4 641 111
+72c48 4 640 111
+72c4c c 690 111
+72c58 c 645 111
+72c64 28 714 111
+72c8c 4 703 111
+72c90 14 704 111
+72ca4 8 640 111
+72cac 20 799 111
+72ccc 8 796 111
+72cd4 4 652 111
+72cd8 c 655 111
+72ce4 4 172 140
+72ce8 c 172 140
+72cf4 4 658 111
+72cf8 4 91 129
+72cfc 4 657 111
+72d00 4 671 111
+72d04 8 91 129
+72d0c 4 682 111
+72d10 4 671 111
+72d14 10 235 129
+72d24 4 234 129
+72d28 c 235 129
+72d34 14 690 111
+72d48 1c 808 111
+FUNC 72d64 158 0 google_breakpad::Minidump::ReadBytes
+72d64 10 4413 73
+72d74 4 4413 73
+72d78 4 4416 73
+72d7c 4 4417 73
+72d80 8 4416 73
+72d88 10 4419 73
+72d98 8 4421 73
+72da0 14 4422 73
+72db4 c 4423 73
+72dc0 20 4424 73
+72de0 4 110 72
+72de4 10 333 122
+72df4 10 4424 73
+72e04 c 333 122
+72e10 c 4424 73
+72e1c 8 4424 73
+72e24 c 156 132
+72e30 4 4436 73
+72e34 4 4441 73
+72e38 4 4436 73
+72e3c 24 4437 73
+72e60 4 110 72
+72e64 10 333 122
+72e74 10 263 121
+72e84 c 333 122
+72e90 c 263 121
+72e9c 8 4437 73
+72ea4 4 4438 73
+72ea8 14 4442 73
+FUNC 72ebc 14f4 0 google_breakpad::MinidumpContext::Read
+72ebc 14 423 73
+72ed0 4 424 73
+72ed4 8 423 73
+72edc 4 443 73
+72ee0 8 448 73
+72ee8 28 449 73
+72f10 10 333 122
+72f20 8 449 73
+72f28 18 451 73
+72f40 14 453 73
+72f54 4 452 73
+72f58 1c 454 73
+72f74 10 333 122
+72f84 14 458 73
+72f98 8 459 73
+72fa0 c 461 73
+72fac 4 462 73
+72fb0 14 463 73
+72fc4 14 464 73
+72fd8 1c 466 73
+72ff4 10 333 122
+73004 c 471 73
+73010 1c 474 73
+7302c 10 333 122
+7303c 10 480 73
+7304c 1c 481 73
+73068 10 333 122
+73078 10 481 73
+73088 4 480 73
+7308c 8 155 73
+73094 8 156 73
+7309c 4 157 73
+730a0 8 487 73
+730a8 14 492 73
+730bc 8 493 73
+730c4 8 494 73
+730cc 8 495 73
+730d4 8 496 73
+730dc 8 497 73
+730e4 8 498 73
+730ec 8 500 73
+730f4 8 501 73
+730fc 8 502 73
+73104 8 503 73
+7310c 8 504 73
+73114 8 505 73
+7311c 8 506 73
+73124 8 507 73
+7312c 8 508 73
+73134 8 509 73
+7313c 8 510 73
+73144 8 511 73
+7314c 8 512 73
+73154 8 513 73
+7315c 8 514 73
+73164 8 515 73
+7316c 8 516 73
+73174 8 517 73
+7317c 8 518 73
+73184 8 519 73
+7318c 8 520 73
+73194 8 521 73
+7319c 8 522 73
+731a4 8 523 73
+731ac 8 524 73
+731b4 8 525 73
+731bc 8 526 73
+731c4 8 527 73
+731cc 8 528 73
+731d4 8 529 73
+731dc 8 164 73
+731e4 c 165 73
+731f0 8 535 73
+731f8 8 539 73
+73200 8 540 73
+73208 8 541 73
+73210 8 542 73
+73218 8 543 73
+73220 8 544 73
+73228 c 547 73
+73234 10 549 73
+73244 8 550 73
+7324c 1c 554 73
+73268 24 555 73
+7328c 14 558 73
+732a0 8 559 73
+732a8 c 561 73
+732b4 18 562 73
+732cc 8 564 73
+732d4 14 565 73
+732e8 14 566 73
+732fc 24 568 73
+73320 10 333 122
+73330 10 573 73
+73340 24 576 73
+73364 10 333 122
+73374 8 583 73
+7337c 4 589 73
+73380 4 583 73
+73384 10 589 73
+73394 4 588 73
+73398 24 590 73
+733bc 10 333 122
+733cc 14 596 73
+733e0 24 597 73
+73404 10 333 122
+73414 14 600 73
+73428 10 602 73
+73438 8 603 73
+73440 c 607 73
+7344c 8 604 73
+73454 10 609 73
+73464 8 610 73
+7346c 8 611 73
+73474 8 612 73
+7347c 8 613 73
+73484 c 617 73
+73490 8 614 73
+73498 10 621 73
+734a8 8 164 73
+734b0 c 165 73
+734bc 8 622 73
+734c4 c 164 73
+734d0 8 165 73
+734d8 8 630 73
+734e0 c 633 73
+734ec 14 637 73
+73500 24 639 73
+73524 10 333 122
+73534 10 643 73
+73544 8 644 73
+7354c 24 649 73
+73570 4 651 73
+73574 4 649 73
+73578 10 333 122
+73588 8 649 73
+73590 18 651 73
+735a8 1c 652 73
+735c4 14 333 122
+735d8 14 655 73
+735ec 8 656 73
+735f4 18 658 73
+7360c c 660 73
+73618 4 661 73
+7361c 14 662 73
+73630 14 663 73
+73644 1c 665 73
+73660 10 333 122
+73670 10 670 73
+73680 1c 673 73
+7369c 10 333 122
+736ac 8 680 73
+736b4 4 686 73
+736b8 4 680 73
+736bc 10 686 73
+736cc 4 685 73
+736d0 1c 687 73
+736ec 10 333 122
+736fc 14 693 73
+73710 1c 694 73
+7372c 10 333 122
+7373c 18 698 73
+73754 c 718 73
+73760 14 722 73
+73774 1c 724 73
+73790 10 333 122
+737a0 c 703 73
+737ac 8 700 73
+737b4 10 705 73
+737c4 8 706 73
+737cc 8 707 73
+737d4 4 155 73
+737d8 8 156 73
+737e0 4 157 73
+737e4 8 164 73
+737ec c 165 73
+737f8 c 708 73
+73804 4 333 122
+73808 8 724 73
+73810 c 728 73
+7381c c 98 57
+73828 1c 731 73
+73844 24 732 73
+73868 10 333 122
+73878 14 735 73
+7388c 8 736 73
+73894 c 738 73
+738a0 4 739 73
+738a4 4 744 73
+738a8 c 746 73
+738b4 8 747 73
+738bc 8 751 73
+738c4 14 752 73
+738d8 14 753 73
+738ec 24 755 73
+73910 14 333 122
+73924 44 764 73
+73968 8 766 73
+73970 24 767 73
+73994 4 110 72
+73998 10 333 122
+739a8 10 254 121
+739b8 c 333 122
+739c4 c 263 121
+739d0 14 772 73
+739e4 4 777 73
+739e8 4 772 73
+739ec 4 777 73
+739f0 4 783 73
+739f4 4 777 73
+739f8 10 783 73
+73a08 4 782 73
+73a0c 24 784 73
+73a30 10 333 122
+73a40 14 790 73
+73a54 24 791 73
+73a78 10 333 122
+73a88 14 795 73
+73a9c 8 797 73
+73aa4 8 798 73
+73aac 8 799 73
+73ab4 8 800 73
+73abc 8 801 73
+73ac4 8 802 73
+73acc 8 803 73
+73ad4 8 804 73
+73adc 8 805 73
+73ae4 8 806 73
+73aec 8 807 73
+73af4 8 808 73
+73afc 8 809 73
+73b04 8 812 73
+73b0c 8 813 73
+73b14 8 814 73
+73b1c 8 815 73
+73b24 8 816 73
+73b2c 8 817 73
+73b34 8 818 73
+73b3c 8 819 73
+73b44 8 820 73
+73b4c 8 821 73
+73b54 8 822 73
+73b5c 8 823 73
+73b64 8 824 73
+73b6c 8 825 73
+73b74 8 826 73
+73b7c 8 827 73
+73b84 8 828 73
+73b8c 10 833 73
+73b9c 8 839 73
+73ba4 24 840 73
+73bc8 4 110 72
+73bcc 10 333 122
+73bdc 10 254 121
+73bec c 333 122
+73bf8 c 263 121
+73c04 14 845 73
+73c18 4 850 73
+73c1c 4 845 73
+73c20 4 850 73
+73c24 4 856 73
+73c28 4 850 73
+73c2c 10 856 73
+73c3c 4 855 73
+73c40 24 857 73
+73c64 10 333 122
+73c74 14 863 73
+73c88 24 864 73
+73cac 10 333 122
+73cbc 14 876 73
+73cd0 10 878 73
+73ce0 8 879 73
+73ce8 c 883 73
+73cf4 8 880 73
+73cfc 10 885 73
+73d0c 8 886 73
+73d14 8 887 73
+73d1c 8 888 73
+73d24 8 889 73
+73d2c 8 890 73
+73d34 c 894 73
+73d40 8 891 73
+73d48 10 898 73
+73d58 8 164 73
+73d60 c 165 73
+73d6c 8 899 73
+73d74 c 164 73
+73d80 8 165 73
+73d88 8 906 73
+73d90 10 909 73
+73da0 8 915 73
+73da8 24 916 73
+73dcc 4 110 72
+73dd0 10 333 122
+73de0 10 254 121
+73df0 c 333 122
+73dfc c 263 121
+73e08 18 921 73
+73e20 8 926 73
+73e28 4 932 73
+73e2c 4 926 73
+73e30 c 932 73
+73e3c 4 931 73
+73e40 24 933 73
+73e64 10 333 122
+73e74 14 939 73
+73e88 24 940 73
+73eac 10 333 122
+73ebc 1c 944 73
+73ed8 c 949 73
+73ee4 8 946 73
+73eec 10 951 73
+73efc 8 952 73
+73f04 8 953 73
+73f0c 8 954 73
+73f14 8 955 73
+73f1c 8 956 73
+73f24 c 960 73
+73f30 8 957 73
+73f38 8 962 73
+73f40 8 963 73
+73f48 10 965 73
+73f58 8 971 73
+73f60 24 972 73
+73f84 4 110 72
+73f88 10 333 122
+73f98 10 254 121
+73fa8 c 333 122
+73fb4 c 263 121
+73fc0 14 977 73
+73fd4 4 982 73
+73fd8 4 977 73
+73fdc 4 982 73
+73fe0 4 988 73
+73fe4 4 982 73
+73fe8 10 988 73
+73ff8 4 987 73
+73ffc 24 989 73
+74020 10 333 122
+74030 14 995 73
+74044 24 996 73
+74068 10 333 122
+74078 8 996 73
+74080 8 98 57
+74088 18 1000 73
+740a0 10 1020 73
+740b0 c 1005 73
+740bc 8 1002 73
+740c4 10 1007 73
+740d4 8 1008 73
+740dc c 1012 73
+740e8 c 1009 73
+740f4 c 1017 73
+74100 c 1014 73
+7410c 8 1026 73
+74114 24 1027 73
+74138 4 110 72
+7413c 10 333 122
+7414c 10 254 121
+7415c c 333 122
+74168 c 263 121
+74174 8 1027 73
+7417c 18 1034 73
+74194 8 1039 73
+7419c 4 1045 73
+741a0 4 1039 73
+741a4 c 1045 73
+741b0 4 1044 73
+741b4 24 1046 73
+741d8 10 333 122
+741e8 14 1052 73
+741fc 24 1053 73
+74220 10 333 122
+74230 8 1053 73
+74238 8 98 57
+74240 1c 1057 73
+7425c c 1062 73
+74268 8 1059 73
+74270 10 1064 73
+74280 8 1065 73
+74288 8 1069 73
+74290 c 1070 73
+7429c 8 1066 73
+742a4 10 1072 73
+742b4 8 1073 73
+742bc 8 1074 73
+742c4 8 1075 73
+742cc 8 1076 73
+742d4 c 1080 73
+742e0 8 1077 73
+742e8 8 1082 73
+742f0 8 1083 73
+742f8 c 1085 73
+74304 8 98 57
+7430c 10 1099 73
+7431c 8 98 57
+74324 20 1093 73
+74344 4 1094 73
+74348 4 1093 73
+7434c 4 110 72
+74350 10 333 122
+74360 c 1094 73
+7436c c 1094 73
+74378 8 156 132
+74380 8 1093 73
+74388 8 733 73
+74390 8 1102 73
+74398 4 1103 73
+7439c 14 1104 73
+FUNC 743b0 170 0 google_breakpad::MinidumpThread::GetContext
+743b0 10 1448 73
+743c0 4 1448 73
+743c4 8 1449 73
+743cc 20 1450 73
+743ec 4 1451 73
+743f0 4 1450 73
+743f4 10 333 122
+74404 8 1450 73
+7440c 4 1451 73
+74410 8 1454 73
+74418 14 1455 73
+7442c 24 1456 73
+74450 10 333 122
+74460 8 1456 73
+74468 4 1457 73
+7446c 10 1460 73
+7447c 14 417 73
+74490 4 1462 73
+74494 8 92 57
+7449c c 1462 73
+744a8 4 1462 73
+744ac 24 1463 73
+744d0 10 333 122
+744e0 8 1463 73
+744e8 c 1464 73
+744f4 4 143 57
+744f8 4 1467 73
+744fc 4 1467 73
+74500 4 144 57
+74504 4 1467 73
+74508 4 1470 73
+7450c 14 1471 73
+FUNC 74520 170 0 google_breakpad::MinidumpException::GetContext
+74520 10 2946 73
+74530 4 2946 73
+74534 8 2947 73
+7453c 20 2948 73
+7455c 4 2949 73
+74560 4 2948 73
+74564 10 333 122
+74574 8 2948 73
+7457c 4 2949 73
+74580 8 2952 73
+74588 14 2953 73
+7459c 24 2954 73
+745c0 10 333 122
+745d0 8 2954 73
+745d8 4 2955 73
+745dc 10 2958 73
+745ec 14 417 73
+74600 4 2962 73
+74604 8 92 57
+7460c c 2962 73
+74618 4 2962 73
+7461c 24 2963 73
+74640 10 333 122
+74650 8 2963 73
+74658 c 2964 73
+74664 4 143 57
+74668 4 2967 73
+7466c 4 2967 73
+74670 4 144 57
+74674 4 2967 73
+74678 4 2970 73
+7467c 14 2971 73
+FUNC 74690 240 0 google_breakpad::MinidumpThread::Read
+74690 18 1386 73
+746a8 4 1386 73
+746ac 8 1388 73
+746b4 c 1388 73
+746c0 4 1390 73
+746c4 4 1389 73
+746c8 4 1390 73
+746cc c 1390 73
+746d8 8 1395 73
+746e0 4 1391 73
+746e4 4 1395 73
+746e8 4 1393 73
+746ec 14 1395 73
+74700 24 1396 73
+74724 10 333 122
+74734 8 1396 73
+7473c 4 1397 73
+74740 14 1400 73
+74754 8 1401 73
+7475c 8 1402 73
+74764 8 1403 73
+7476c 8 1404 73
+74774 8 1405 73
+7477c 8 189 73
+74784 8 190 73
+7478c 8 1407 73
+74794 8 1412 73
+7479c 4 1412 73
+747a0 4 1411 73
+747a4 8 1413 73
+747ac 8 1412 73
+747b4 20 1416 73
+747d4 4 1417 73
+747d8 4 1416 73
+747dc 4 110 72
+747e0 10 333 122
+747f0 c 1417 73
+747fc 8 1417 73
+74804 4 1418 73
+74808 8 1417 73
+74810 c 333 122
+7481c c 1418 73
+74828 8 1418 73
+74830 4 1419 73
+74834 8 1418 73
+7483c c 333 122
+74848 c 1419 73
+74854 c 1419 73
+74860 18 156 132
+74878 8 1416 73
+74880 8 1425 73
+74888 4 1426 73
+7488c c 1421 73
+74898 8 1421 73
+748a0 4 1421 73
+748a4 10 1422 73
+748b4 1c 1427 73
+FUNC 748d0 268 0 google_breakpad::MinidumpModule::Read
+748d0 14 1723 73
+748e4 4 1723 73
+748e8 8 1725 73
+748f0 8 156 132
+748f8 8 1725 73
+74900 4 1727 73
+74904 4 1726 73
+74908 4 1727 73
+7490c 8 304 139
+74914 8 1727 73
+7491c 4 1730 73
+74920 4 1729 73
+74924 4 1728 73
+74928 4 1729 73
+7492c 4 1730 73
+74930 8 304 139
+74938 8 1730 73
+74940 8 1737 73
+74948 4 1731 73
+7494c 4 1737 73
+74950 4 1733 73
+74954 4 1737 73
+74958 4 1734 73
+7495c 4 1735 73
+74960 c 1737 73
+7496c 24 1738 73
+74990 10 333 122
+749a0 8 1738 73
+749a8 4 1739 73
+749ac 14 1742 73
+749c0 8 1743 73
+749c8 8 1744 73
+749d0 8 1745 73
+749d8 8 1746 73
+749e0 8 1747 73
+749e8 8 1748 73
+749f0 8 1749 73
+749f8 8 1750 73
+74a00 8 1751 73
+74a08 8 1752 73
+74a10 8 1753 73
+74a18 8 1754 73
+74a20 8 1755 73
+74a28 8 1756 73
+74a30 8 1757 73
+74a38 8 1758 73
+74a40 8 1759 73
+74a48 8 1760 73
+74a50 8 1761 73
+74a58 8 1762 73
+74a60 8 1768 73
+74a68 8 1770 73
+74a70 8 1768 73
+74a78 20 1771 73
+74a98 4 1772 73
+74a9c 4 1771 73
+74aa0 4 110 72
+74aa4 10 333 122
+74ab4 c 1772 73
+74ac0 8 1772 73
+74ac8 4 1773 73
+74acc 8 1772 73
+74ad4 c 333 122
+74ae0 c 1773 73
+74aec c 1773 73
+74af8 c 156 132
+74b04 4 1774 73
+74b08 4 156 132
+74b0c 8 1771 73
+74b14 4 1774 73
+74b18 8 1777 73
+74b20 18 1779 73
+FUNC 74b38 18c 0 google_breakpad::MinidumpException::Read
+74b38 10 2888 73
+74b48 8 2888 73
+74b50 8 2890 73
+74b58 c 2890 73
+74b64 4 2891 73
+74b68 4 2895 73
+74b6c 4 2893 73
+74b70 4 2895 73
+74b74 24 2896 73
+74b98 4 110 72
+74b9c 10 333 122
+74bac 8 254 121
+74bb4 4 2898 73
+74bb8 8 254 121
+74bc0 c 333 122
+74bcc c 263 121
+74bd8 8 2896 73
+74be0 4 2898 73
+74be4 1c 2901 73
+74c00 24 2902 73
+74c24 10 333 122
+74c34 8 2902 73
+74c3c 4 2903 73
+74c40 14 2906 73
+74c54 10 2907 73
+74c64 8 2910 73
+74c6c 8 2911 73
+74c74 8 2912 73
+74c7c 8 2913 73
+74c84 8 2914 73
+74c8c c 2920 73
+74c98 8 2917 73
+74ca0 8 2922 73
+74ca8 8 2925 73
+74cb0 14 2927 73
+FUNC 74cc4 1f4 0 google_breakpad::MinidumpSystemInfo::Read
+74cc4 10 3106 73
+74cd4 8 3106 73
+74cdc 8 3108 73
+74ce4 8 156 132
+74cec 8 3108 73
+74cf4 4 3110 73
+74cf8 4 3109 73
+74cfc 4 3110 73
+74d00 8 156 132
+74d08 8 3110 73
+74d10 4 3111 73
+74d14 4 3115 73
+74d18 4 3113 73
+74d1c 4 3115 73
+74d20 24 3116 73
+74d44 4 110 72
+74d48 10 333 122
+74d58 10 254 121
+74d68 c 333 122
+74d74 8 263 121
+74d7c 4 3118 73
+74d80 4 263 121
+74d84 8 3116 73
+74d8c 4 3118 73
+74d90 1c 3121 73
+74dac 24 3122 73
+74dd0 10 333 122
+74de0 8 3122 73
+74de8 4 3123 73
+74dec 14 3126 73
+74e00 c 3127 73
+74e0c 8 3128 73
+74e14 8 3129 73
+74e1c 8 3132 73
+74e24 8 3133 73
+74e2c 8 3134 73
+74e34 8 3135 73
+74e3c 8 3136 73
+74e44 8 3137 73
+74e4c 14 3140 73
+74e60 10 3149 73
+74e70 14 3143 73
+74e84 8 3144 73
+74e8c 8 3145 73
+74e94 8 3146 73
+74e9c 8 3153 73
+74ea4 14 3155 73
+FUNC 74eb8 2c8 0 google_breakpad::Minidump::ReadString
+74eb8 14 4478 73
+74ecc 8 4478 73
+74ed4 c 4479 73
+74ee0 20 4480 73
+74f00 14 333 122
+74f14 c 4483 73
+74f20 20 4484 73
+74f40 4 110 72
+74f44 10 333 122
+74f54 c 259 121
+74f60 4 4484 73
+74f64 4 4485 73
+74f68 4 4484 73
+74f6c 4 4485 73
+74f70 1c 4489 73
+74f8c 20 4490 73
+74fac 4 110 72
+74fb0 10 333 122
+74fc0 8 4494 73
+74fc8 8 4495 73
+74fd0 c 4497 73
+74fdc 20 4498 73
+74ffc 4 110 72
+75000 10 333 122
+75010 10 254 121
+75020 c 333 122
+7502c 4 4504 73
+75030 4 4502 73
+75034 c 4504 73
+75040 20 4505 73
+75060 4 110 72
+75064 10 333 122
+75074 10 254 121
+75084 c 333 122
+75090 10 254 121
+750a0 c 333 122
+750ac 4 4511 73
+750b0 8 116 143
+750b8 4 4511 73
+750bc c 116 143
+750c8 4 4513 73
+750cc 14 4514 73
+750e0 4 4514 73
+750e4 20 4515 73
+75104 4 110 72
+75108 10 333 122
+75118 10 254 121
+75128 c 333 122
+75134 8 259 121
+7513c 4 4517 73
+75140 4 259 121
+75144 8 4515 73
+7514c 4 4517 73
+75150 10 4521 73
+75160 8 304 139
+75168 18 4522 73
+FUNC 75180 238 0 google_breakpad::MinidumpMemoryRegion::GetMemory
+75180 14 1213 73
+75194 4 1213 73
+75198 8 1214 73
+751a0 24 1215 73
+751c4 10 333 122
+751d4 8 1215 73
+751dc 8 1219 73
+751e4 10 1220 73
+751f4 20 1221 73
+75214 10 333 122
+75224 14 1225 73
+75238 20 1226 73
+75258 14 333 122
+7526c 18 1230 73
+75284 20 1231 73
+752a4 4 110 72
+752a8 10 333 122
+752b8 4 1232 73
+752bc 10 254 121
+752cc c 333 122
+752d8 c 254 121
+752e4 8 1231 73
+752ec 4 1234 73
+752f0 4 1238 73
+752f4 4 1238 73
+752f8 4 92 57
+752fc 8 1238 73
+75304 4 1238 73
+75308 10 116 143
+75318 4 92 57
+7531c 4 1240 73
+75320 14 1240 73
+75334 4 1240 73
+75338 20 1241 73
+75358 10 333 122
+75368 8 1241 73
+75370 c 1242 73
+7537c 4 143 57
+75380 4 1245 73
+75384 4 1245 73
+75388 4 144 57
+7538c 8 1245 73
+75394 10 1222 73
+753a4 14 1249 73
+FUNC 753b8 21c 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<unsigned char>
+753b8 14 1279 73
+753cc c 1279 73
+753d8 4 1281 73
+753dc 24 1281 73
+75400 10 333 122
+75410 8 1281 73
+75418 4 1284 73
+7541c 8 1286 73
+75424 24 1287 73
+75448 10 333 122
+75458 8 1287 73
+75460 4 1289 73
+75464 10 1293 73
+75474 10 1293 73
+75484 14 1293 73
+75498 8 1304 73
+754a0 4 1305 73
+754a4 18 1312 73
+754bc 8 1307 73
+754c4 20 1297 73
+754e4 4 1297 73
+754e8 4 1297 73
+754ec 4 110 72
+754f0 10 333 122
+75500 c 1297 73
+7550c 8 1297 73
+75514 4 333 122
+75518 4 1297 73
+7551c 8 333 122
+75524 4 1297 73
+75528 4 333 122
+7552c 8 263 121
+75534 4 1298 73
+75538 8 263 121
+75540 c 333 122
+7554c 4 1298 73
+75550 c 1298 73
+7555c 10 1298 73
+7556c 4 333 122
+75570 4 1301 73
+75574 4 333 122
+75578 4 1299 73
+7557c 14 1299 73
+75590 c 1299 73
+7559c 18 156 132
+755b4 8 1297 73
+755bc 18 1319 73
+FUNC 755d4 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+755d4 4 1324 73
+FUNC 755e0 240 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<short unsigned int>
+755e0 14 1279 73
+755f4 c 1279 73
+75600 4 1281 73
+75604 24 1281 73
+75628 10 333 122
+75638 8 1281 73
+75640 4 1284 73
+75644 8 1286 73
+7564c 24 1287 73
+75670 10 333 122
+75680 8 1287 73
+75688 4 1289 73
+7568c 10 1293 73
+7569c 10 1293 73
+756ac 14 1293 73
+756c0 8 1304 73
+756c8 4 1305 73
+756cc 14 1312 73
+756e0 18 1315 73
+756f8 4 1316 73
+756fc 4 1318 73
+75700 8 1316 73
+75708 8 1307 73
+75710 20 1297 73
+75730 4 1297 73
+75734 4 1297 73
+75738 4 110 72
+7573c 10 333 122
+7574c c 1297 73
+75758 8 1297 73
+75760 4 333 122
+75764 4 1297 73
+75768 8 333 122
+75770 4 1297 73
+75774 4 333 122
+75778 8 263 121
+75780 4 1298 73
+75784 8 263 121
+7578c c 333 122
+75798 4 1298 73
+7579c c 1298 73
+757a8 10 1298 73
+757b8 4 333 122
+757bc 4 1301 73
+757c0 4 333 122
+757c4 4 1299 73
+757c8 14 1299 73
+757dc c 1299 73
+757e8 18 156 132
+75800 8 1297 73
+75808 18 1319 73
+FUNC 75820 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+75820 4 1330 73
+FUNC 7582c 240 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<unsigned int>
+7582c 14 1279 73
+75840 c 1279 73
+7584c 4 1281 73
+75850 24 1281 73
+75874 10 333 122
+75884 8 1281 73
+7588c 4 1284 73
+75890 8 1286 73
+75898 24 1287 73
+758bc 10 333 122
+758cc 8 1287 73
+758d4 4 1289 73
+758d8 10 1293 73
+758e8 10 1293 73
+758f8 14 1293 73
+7590c 8 1304 73
+75914 4 1305 73
+75918 14 1312 73
+7592c 18 1315 73
+75944 4 1316 73
+75948 4 1318 73
+7594c 8 1316 73
+75954 8 1307 73
+7595c 20 1297 73
+7597c 4 1297 73
+75980 4 1297 73
+75984 4 110 72
+75988 10 333 122
+75998 c 1297 73
+759a4 8 1297 73
+759ac 4 333 122
+759b0 4 1297 73
+759b4 8 333 122
+759bc 4 1297 73
+759c0 4 333 122
+759c4 8 263 121
+759cc 4 1298 73
+759d0 8 263 121
+759d8 c 333 122
+759e4 4 1298 73
+759e8 c 1298 73
+759f4 10 1298 73
+75a04 4 333 122
+75a08 4 1301 73
+75a0c 4 333 122
+75a10 4 1299 73
+75a14 14 1299 73
+75a28 c 1299 73
+75a34 18 156 132
+75a4c 8 1297 73
+75a54 18 1319 73
+FUNC 75a6c 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+75a6c 4 1336 73
+FUNC 75a78 240 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<long unsigned int>
+75a78 14 1279 73
+75a8c c 1279 73
+75a98 4 1281 73
+75a9c 24 1281 73
+75ac0 10 333 122
+75ad0 8 1281 73
+75ad8 4 1284 73
+75adc 8 1286 73
+75ae4 24 1287 73
+75b08 10 333 122
+75b18 8 1287 73
+75b20 4 1289 73
+75b24 10 1293 73
+75b34 10 1293 73
+75b44 14 1293 73
+75b58 8 1304 73
+75b60 4 1305 73
+75b64 14 1312 73
+75b78 18 1315 73
+75b90 4 1316 73
+75b94 4 1318 73
+75b98 8 1316 73
+75ba0 8 1307 73
+75ba8 20 1297 73
+75bc8 4 1297 73
+75bcc 4 1297 73
+75bd0 4 110 72
+75bd4 10 333 122
+75be4 c 1297 73
+75bf0 8 1297 73
+75bf8 4 333 122
+75bfc 4 1297 73
+75c00 8 333 122
+75c08 4 1297 73
+75c0c 4 333 122
+75c10 8 263 121
+75c18 4 1298 73
+75c1c 8 263 121
+75c24 c 333 122
+75c30 4 1298 73
+75c34 c 1298 73
+75c40 10 1298 73
+75c50 4 333 122
+75c54 4 1301 73
+75c58 4 333 122
+75c5c 4 1299 73
+75c60 14 1299 73
+75c74 c 1299 73
+75c80 18 156 132
+75c98 8 1297 73
+75ca0 18 1319 73
+FUNC 75cb8 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+75cb8 4 1342 73
+FUNC 75cc4 cc 0 google_breakpad::MinidumpMemoryRegion::Print
+75cc4 10 1346 73
+75cd4 4 1346 73
+75cd8 8 1347 73
+75ce0 24 1348 73
+75d04 10 333 122
+75d14 c 1348 73
+75d20 8 1352 73
+75d28 4 1353 73
+75d2c 4 1354 73
+75d30 4 1358 73
+75d34 4 1354 73
+75d38 4 1355 73
+75d3c 4 1358 73
+75d40 4 1354 73
+75d44 4 1356 73
+75d48 c 1355 73
+75d54 8 1358 73
+75d5c 4 1355 73
+75d60 8 1358 73
+75d68 c 1360 73
+75d74 c 1362 73
+75d80 10 1364 73
+FUNC 75d98 440 0 google_breakpad::MinidumpModule::GetCVRecord
+75d98 14 2076 73
+75dac 8 2076 73
+75db4 8 2077 73
+75dbc 24 2078 73
+75de0 10 333 122
+75df0 8 2078 73
+75df8 8 2082 73
+75e00 8 2085 73
+75e08 18 2089 73
+75e20 20 2090 73
+75e40 14 333 122
+75e54 14 2094 73
+75e68 20 2095 73
+75e88 4 110 72
+75e8c 10 333 122
+75e9c 10 254 121
+75eac c 333 122
+75eb8 c 254 121
+75ec4 8 2095 73
+75ecc 4 2098 73
+75ed0 4 2109 73
+75ed4 4 2109 73
+75ed8 4 116 143
+75edc 4 92 57
+75ee0 8 2109 73
+75ee8 10 116 143
+75ef8 4 92 57
+75efc 14 2111 73
+75f10 4 2111 73
+75f14 20 2112 73
+75f34 10 333 122
+75f44 8 2116 73
+75f4c 10 2117 73
+75f5c c 2120 73
+75f68 14 2121 73
+75f7c 8 2122 73
+75f84 14 2125 73
+75f98 c 2127 73
+75fa4 20 2128 73
+75fc4 4 110 72
+75fc8 10 333 122
+75fd8 c 263 121
+75fe4 1c 2134 73
+76000 4 2137 73
+76004 4 195 73
+76008 4 2137 73
+7600c 8 195 73
+76014 8 196 73
+7601c 8 197 73
+76024 8 2139 73
+7602c 18 2146 73
+76044 20 2148 73
+76064 10 333 122
+76074 10 2151 73
+76084 c 2153 73
+76090 20 2154 73
+760b0 4 110 72
+760b4 10 333 122
+760c4 10 263 121
+760d4 c 333 122
+760e0 10 254 121
+760f0 1c 2159 73
+7610c 8 2162 73
+76114 8 2163 73
+7611c 8 2164 73
+76124 8 2165 73
+7612c 18 2172 73
+76144 20 2174 73
+76164 10 333 122
+76174 8 2174 73
+7617c c 2113 73
+76188 4 143 57
+7618c 4 2187 73
+76190 c 2188 73
+7619c 4 144 57
+761a0 8 2188 73
+761a8 8 2086 73
+761b0 4 2191 73
+761b4 10 2192 73
+761c4 14 2195 73
+FUNC 761d8 334 0 google_breakpad::MinidumpModule::GetMiscRecord
+761d8 14 2198 73
+761ec 8 2198 73
+761f4 8 2199 73
+761fc 24 2200 73
+76220 10 333 122
+76230 8 2200 73
+76238 8 2204 73
+76240 8 2205 73
+76248 c 2209 73
+76254 20 2211 73
+76274 4 110 72
+76278 10 333 122
+76288 10 263 121
+76298 c 333 122
+762a4 c 254 121
+762b0 14 2216 73
+762c4 20 2218 73
+762e4 10 333 122
+762f4 8 2218 73
+762fc 4 2219 73
+76300 14 2222 73
+76314 20 2223 73
+76334 4 110 72
+76338 10 333 122
+76348 10 254 121
+76358 c 333 122
+76364 10 254 121
+76374 4 2236 73
+76378 4 2236 73
+7637c 8 2236 73
+76384 10 116 143
+76394 4 92 57
+76398 1c 2240 73
+763b4 20 2242 73
+763d4 14 333 122
+763e8 14 2246 73
+763fc 10 2262 73
+7640c 20 2264 73
+7642c 4 110 72
+76430 10 333 122
+76440 10 254 121
+76450 c 333 122
+7645c 10 254 121
+7646c 8 2247 73
+76474 8 2248 73
+7647c 8 2252 73
+76484 4 2257 73
+76488 4 2255 73
+7648c c 2258 73
+76498 8 214 73
+764a0 10 215 73
+764b0 8 2264 73
+764b8 c 2243 73
+764c4 4 143 57
+764c8 4 2271 73
+764cc 4 2271 73
+764d0 4 144 57
+764d4 8 2271 73
+764dc 8 2206 73
+764e4 4 2274 73
+764e8 10 2275 73
+764f8 14 2278 73
+FUNC 7650c 17c 0 google_breakpad::MinidumpModule::ReadAuxiliaryData
+7650c 10 1782 73
+7651c 4 1782 73
+76520 8 1783 73
+76528 24 1784 73
+7654c 10 333 122
+7655c 8 1784 73
+76564 4 1785 73
+76568 14 1789 73
+7657c 4 1790 73
+76580 24 1791 73
+765a4 10 333 122
+765b4 8 1796 73
+765bc 8 1800 73
+765c4 10 1800 73
+765d4 4 1800 73
+765d8 24 1802 73
+765fc 10 333 122
+7660c 8 1806 73
+76614 10 1806 73
+76624 4 1806 73
+76628 24 1808 73
+7664c 10 333 122
+7665c 4 1809 73
+76660 c 1808 73
+7666c 8 1812 73
+76674 14 1814 73
+FUNC 76688 c8 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_insert
+76688 18 350 135
+766a0 4 358 135
+766a4 8 350 135
+766ac 4 358 135
+766b0 8 359 135
+766b8 4 360 135
+766bc 4 361 135
+766c0 8 362 135
+766c8 4 364 135
+766cc 4 364 135
+766d0 10 364 135
+766e0 4 367 135
+766e4 4 368 135
+766e8 4 367 135
+766ec c 369 135
+766f8 8 370 135
+76700 4 373 135
+76704 4 374 135
+76708 4 373 135
+7670c c 375 135
+76718 4 376 135
+7671c 8 379 135
+76724 4 378 135
+76728 4 379 135
+7672c 4 380 135
+76730 4 382 135
+76734 8 380 135
+7673c 4 142 136
+76740 10 382 135
+FUNC 76750 e4 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::insert_unique
+76750 8 405 135
+76758 4 408 135
+7675c 8 405 135
+76764 4 406 135
+76768 4 405 135
+7676c 4 407 135
+76770 4 405 135
+76774 4 409 135
+76778 10 412 135
+76788 c 412 135
+76794 18 412 135
+767ac 4 415 135
+767b0 c 416 135
+767bc 10 417 135
+767cc 18 187 136
+767e4 10 421 135
+767f4 14 422 135
+76808 8 142 136
+76810 c 62 124
+7681c 4 142 136
+76820 4 62 124
+76824 10 425 135
+FUNC 76834 1cc 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::insert_unique
+76834 18 432 135
+7684c c 432 135
+76858 10 434 135
+76868 10 437 135
+76878 8 440 135
+76880 8 441 135
+76888 8 447 135
+76890 8 177 136
+76898 4 458 135
+7689c 4 177 136
+768a0 4 458 135
+768a4 14 462 135
+768b8 c 468 135
+768c4 4 469 135
+768c8 8 470 135
+768d0 8 469 135
+768d8 c 479 135
+768e4 10 187 136
+768f4 8 79 106
+768fc 4 494 135
+76900 c 177 136
+7690c 4 513 135
+76910 8 517 135
+76918 8 517 135
+76920 c 517 135
+7692c 10 475 135
+7693c c 142 136
+76948 10 480 135
+76958 c 483 135
+76964 8 486 135
+7696c 10 494 135
+7697c 8 521 135
+76984 18 522 135
+7699c c 500 135
+769a8 14 524 135
+769bc 8 142 136
+769c4 8 497 135
+769cc c 498 135
+769d8 c 524 135
+769e4 1c 534 135
+FUNC 76a00 84 0 std::map<unsigned int, google_breakpad::MinidumpThread*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::operator[]<unsigned int>
+76a00 4 175 118
+76a04 4 568 136
+76a08 c 175 118
+76a14 4 571 136
+76a18 c 572 136
+76a24 8 573 136
+76a2c 14 575 136
+76a40 4 178 118
+76a44 4 571 136
+76a48 4 178 118
+76a4c c 178 118
+76a58 c 191 118
+76a64 8 62 124
+76a6c 4 142 136
+76a70 4 191 118
+76a74 4 179 118
+76a78 4 180 118
+76a7c 8 181 118
+FUNC 76a84 28 0 google_breakpad::MinidumpThreadList::GetThreadByID
+76a84 4 1668 73
+76a88 4 1671 73
+76a8c 4 1668 73
+76a90 8 1668 73
+76a98 8 1671 73
+76aa0 c 1672 73
+FUNC 76aac 624 0 google_breakpad::MinidumpThreadList::Read
+76aac c 1553 73
+76ab8 4 206 118
+76abc 10 1553 73
+76acc 8 1553 73
+76ad4 8 531 136
+76adc c 532 136
+76ae8 4 533 136
+76aec 4 534 136
+76af0 4 535 136
+76af4 4 536 136
+76af8 8 1556 73
+76b00 8 42 143
+76b08 8 1556 73
+76b10 4 1557 73
+76b14 4 1563 73
+76b18 4 1558 73
+76b1c 4 1560 73
+76b20 4 1563 73
+76b24 24 1564 73
+76b48 4 110 72
+76b4c 10 333 122
+76b5c 10 254 121
+76b6c c 333 122
+76b78 c 263 121
+76b84 1c 1568 73
+76ba0 24 1569 73
+76bc4 10 333 122
+76bd4 8 1569 73
+76bdc 4 1570 73
+76be0 14 1573 73
+76bf4 8 1574 73
+76bfc 14 1576 73
+76c10 24 1577 73
+76c34 4 110 72
+76c38 10 333 122
+76c48 c 254 121
+76c54 c 333 122
+76c60 8 1577 73
+76c68 8 1579 73
+76c70 8 1583 73
+76c78 c 1582 73
+76c84 c 1585 73
+76c90 18 1588 73
+76ca8 20 1590 73
+76cc8 4 1591 73
+76ccc 4 1590 73
+76cd0 10 333 122
+76ce0 c 1590 73
+76cec 24 1594 73
+76d10 4 110 72
+76d14 10 333 122
+76d24 10 254 121
+76d34 c 333 122
+76d40 8 1596 73
+76d48 4 263 121
+76d4c 8 1596 73
+76d54 14 1602 73
+76d68 24 1603 73
+76d8c 4 110 72
+76d90 10 333 122
+76da0 10 254 121
+76db0 c 333 122
+76dbc 10 254 121
+76dcc 4 1608 73
+76dd0 10 1610 73
+76de0 8 1610 73
+76de8 4 1610 73
+76dec 4 70 139
+76df0 4 1610 73
+76df4 4 70 139
+76df8 4 1610 73
+76dfc 4 481 101
+76e00 4 356 101
+76e04 4 346 101
+76e08 10 347 101
+76e18 8 348 101
+76e20 c 352 101
+76e2c 4 73 139
+76e30 4 267 65
+76e34 4 71 139
+76e38 4 267 65
+76e3c 4 314 137
+76e40 8 73 139
+76e48 4 314 137
+76e4c c 249 137
+76e58 4 72 139
+76e5c c 249 137
+76e68 8 112 65
+76e70 4 249 137
+76e74 4 139 103
+76e78 4 112 65
+76e7c 4 267 65
+76e80 10 112 65
+76e90 30 267 65
+76ec0 c 249 137
+76ecc 4 244 139
+76ed0 4 1610 73
+76ed4 4 1625 73
+76ed8 4 1610 73
+76edc c 1612 73
+76ee8 c 202 139
+76ef4 4 1615 73
+76ef8 8 202 139
+76f00 14 1618 73
+76f14 20 1619 73
+76f34 4 110 72
+76f38 10 333 122
+76f48 1c 1625 73
+76f64 20 1626 73
+76f84 4 110 72
+76f88 10 333 122
+76f98 10 254 121
+76fa8 c 333 122
+76fb4 c 254 121
+76fc0 8 1626 73
+76fc8 10 1631 73
+76fd8 24 1633 73
+76ffc 4 110 72
+77000 10 333 122
+77010 c 1634 73
+7701c 10 1634 73
+7702c c 333 122
+77038 10 254 121
+77048 c 333 122
+77054 c 254 121
+77060 8 156 132
+77068 8 1633 73
+77070 8 42 143
+77078 c 98 57
+77084 8 1638 73
+7708c 4 1612 73
+77090 c 1638 73
+7709c 4 1641 73
+770a0 8 1644 73
+770a8 8 1646 73
+770b0 20 1648 73
+FUNC 770d0 c8 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, unsigned int>::Range> > >::_M_insert
+770d0 18 350 135
+770e8 4 358 135
+770ec 8 350 135
+770f4 4 358 135
+770f8 8 359 135
+77100 4 360 135
+77104 4 361 135
+77108 8 362 135
+77110 4 364 135
+77114 4 364 135
+77118 10 364 135
+77128 4 367 135
+7712c 4 368 135
+77130 4 367 135
+77134 c 369 135
+77140 8 370 135
+77148 4 373 135
+7714c 4 374 135
+77150 4 373 135
+77154 c 375 135
+77160 4 376 135
+77164 8 379 135
+7716c 4 378 135
+77170 4 379 135
+77174 4 380 135
+77178 4 382 135
+7717c 8 380 135
+77184 4 142 136
+77188 10 382 135
+FUNC 77198 254 0 google_breakpad::RangeMap<long unsigned int, unsigned int>::StoreRange
+77198 14 50 75
+771ac 8 53 75
+771b4 c 56 75
+771c0 8 53 75
+771c8 c 56 75
+771d4 20 60 75
+771f4 4 60 75
+771f8 4 60 75
+771fc 4 110 72
+77200 10 333 122
+77210 8 60 75
+77218 4 61 75
+7721c 4 60 75
+77220 10 60 75
+77230 c 333 122
+7723c 8 61 75
+77244 4 61 75
+77248 4 61 75
+7724c 10 61 75
+7725c c 333 122
+77268 c 61 75
+77274 c 61 75
+77280 18 156 132
+77298 8 60 75
+772a0 c 63 75
+772ac 4 568 136
+772b0 4 569 136
+772b4 4 571 136
+772b8 c 572 136
+772c4 8 573 136
+772cc 14 575 136
+772e0 4 569 136
+772e4 4 568 136
+772e8 4 571 136
+772ec c 572 136
+772f8 8 573 136
+77300 14 575 136
+77314 8 71 75
+7731c 8 90 75
+77324 c 91 75
+77330 4 105 76
+77334 4 568 136
+77338 4 62 124
+7733c 4 408 135
+77340 8 62 124
+77348 4 409 135
+7734c c 412 135
+77358 c 412 135
+77364 14 412 135
+77378 4 409 135
+7737c 4 415 135
+77380 c 416 135
+7738c 14 417 135
+773a0 c 187 136
+773ac c 421 135
+773b8 1c 422 135
+773d4 4 113 75
+773d8 14 114 75
+FUNC 773ec 7c8 0 google_breakpad::MinidumpModuleList::Read
+773ec 1c 2445 73
+77408 8 2445 73
+77410 8 206 118
+77418 8 2448 73
+77420 8 42 143
+77428 8 2448 73
+77430 4 2449 73
+77434 4 2455 73
+77438 4 2450 73
+7743c 4 2452 73
+77440 4 2455 73
+77444 24 2456 73
+77468 4 110 72
+7746c 10 333 122
+7747c 10 254 121
+7748c c 333 122
+77498 c 263 121
+774a4 1c 2460 73
+774c0 24 2461 73
+774e4 10 333 122
+774f4 8 2461 73
+774fc 4 2462 73
+77500 14 2465 73
+77514 8 2466 73
+7751c 14 2468 73
+77530 24 2469 73
+77554 4 110 72
+77558 10 333 122
+77568 c 254 121
+77574 10 333 122
+77584 8 2475 73
+7758c c 2474 73
+77598 c 2477 73
+775a4 18 2480 73
+775bc 20 2482 73
+775dc 4 2483 73
+775e0 4 2482 73
+775e4 10 333 122
+775f4 c 2482 73
+77600 24 2486 73
+77624 4 110 72
+77628 10 333 122
+77638 10 254 121
+77648 c 333 122
+77654 4 2488 73
+77658 4 263 121
+7765c 4 2488 73
+77660 8 263 121
+77668 8 2486 73
+77670 14 2493 73
+77684 24 2494 73
+776a8 4 110 72
+776ac 10 333 122
+776bc 10 254 121
+776cc c 333 122
+776d8 c 254 121
+776e4 c 2494 73
+776f0 4 2499 73
+776f4 10 2501 73
+77704 8 2501 73
+7770c 4 2501 73
+77710 4 2501 73
+77714 4 2501 73
+77718 4 70 139
+7771c 4 356 101
+77720 4 70 139
+77724 4 481 101
+77728 4 346 101
+7772c 10 347 101
+7773c 8 348 101
+77744 c 352 101
+77750 4 73 139
+77754 4 112 65
+77758 8 364 65
+77760 4 314 137
+77764 4 73 139
+77768 4 314 137
+7776c 8 249 137
+77774 4 71 139
+77778 4 249 137
+7777c 4 72 139
+77780 4 249 137
+77784 4 73 139
+77788 4 249 137
+7778c 4 112 65
+77790 8 364 65
+77798 4 249 137
+7779c 4 249 137
+777a0 4 139 103
+777a4 4 112 65
+777a8 4 364 65
+777ac 4 112 65
+777b0 4 364 65
+777b4 10 112 65
+777c4 44 364 65
+77808 c 249 137
+77814 4 244 139
+77818 4 2501 73
+7781c 4 2503 73
+77820 4 202 139
+77824 4 2501 73
+77828 c 2503 73
+77834 4 202 139
+77838 4 2506 73
+7783c 4 202 139
+77840 10 2509 73
+77850 20 2510 73
+77870 4 110 72
+77874 10 333 122
+77884 c 254 121
+77890 8 2503 73
+77898 4 2521 73
+7789c 4 2541 73
+778a0 4 2521 73
+778a4 4 2542 73
+778a8 4 2522 73
+778ac c 2521 73
+778b8 14 202 139
+778cc 14 2531 73
+778e0 8 2531 73
+778e8 20 2533 73
+77908 4 110 72
+7790c 10 333 122
+7791c c 254 121
+77928 8 2560 73
+77930 18 2541 73
+77948 18 2542 73
+77960 c 2543 73
+7796c 24 2545 73
+77990 4 110 72
+77994 10 333 122
+779a4 10 254 121
+779b4 c 333 122
+779c0 10 254 121
+779d0 c 333 122
+779dc 4 2546 73
+779e0 10 2546 73
+779f0 c 2546 73
+779fc 8 156 132
+77a04 4 2545 73
+77a08 4 2551 73
+77a0c 8 42 143
+77a14 10 98 57
+77a24 8 2563 73
+77a2c 8 2565 73
+77a34 4 2566 73
+77a38 8 254 121
+77a40 c 333 122
+77a4c c 254 121
+77a58 8 2533 73
+77a60 1c 2550 73
+77a7c 24 2551 73
+77aa0 4 110 72
+77aa4 10 333 122
+77ab4 10 254 121
+77ac4 c 333 122
+77ad0 8 254 121
+77ad8 4 333 122
+77adc 4 2553 73
+77ae0 4 333 122
+77ae4 8 254 121
+77aec 8 333 122
+77af4 10 2553 73
+77b04 4 2554 73
+77b08 4 2553 73
+77b0c 10 2553 73
+77b1c 8 333 122
+77b24 c 2554 73
+77b30 10 2554 73
+77b40 c 333 122
+77b4c c 2555 73
+77b58 c 2555 73
+77b64 18 156 132
+77b7c 8 2551 73
+77b84 10 2521 73
+77b94 20 2567 73
+FUNC 77bb4 70c 0 google_breakpad::MinidumpMemoryList::Read
+77bb4 1c 2689 73
+77bd0 8 2689 73
+77bd8 8 2691 73
+77be0 8 42 143
+77be8 8 2691 73
+77bf0 4 2693 73
+77bf4 4 2692 73
+77bf8 4 2693 73
+77bfc 8 42 143
+77c04 8 2693 73
+77c0c 4 206 118
+77c10 4 2694 73
+77c14 4 206 118
+77c18 4 2696 73
+77c1c 4 2698 73
+77c20 8 2701 73
+77c28 24 2702 73
+77c4c 4 110 72
+77c50 10 333 122
+77c60 10 254 121
+77c70 c 333 122
+77c7c c 263 121
+77c88 1c 2706 73
+77ca4 24 2707 73
+77cc8 10 333 122
+77cd8 8 2707 73
+77ce0 4 2708 73
+77ce4 14 2711 73
+77cf8 8 2712 73
+77d00 10 2714 73
+77d10 24 2716 73
+77d34 4 110 72
+77d38 10 333 122
+77d48 c 254 121
+77d54 10 333 122
+77d64 4 2722 73
+77d68 c 2721 73
+77d74 c 2724 73
+77d80 18 2727 73
+77d98 20 2729 73
+77db8 4 2730 73
+77dbc 4 2729 73
+77dc0 10 333 122
+77dd0 c 2729 73
+77ddc 24 2733 73
+77e00 4 110 72
+77e04 10 333 122
+77e14 10 254 121
+77e24 c 333 122
+77e30 c 2735 73
+77e3c 8 263 121
+77e44 14 2740 73
+77e58 24 2741 73
+77e7c 4 110 72
+77e80 10 333 122
+77e90 10 254 121
+77ea0 c 333 122
+77eac c 254 121
+77eb8 c 2741 73
+77ec4 4 2746 73
+77ec8 8 2748 73
+77ed0 4 70 139
+77ed4 4 2748 73
+77ed8 4 2748 73
+77edc 4 70 139
+77ee0 8 481 101
+77ee8 4 356 101
+77eec 4 346 101
+77ef0 c 347 101
+77efc 4 348 101
+77f00 8 352 101
+77f08 4 73 139
+77f0c 4 71 139
+77f10 4 72 139
+77f14 4 314 137
+77f18 4 73 139
+77f1c 8 249 137
+77f24 4 139 103
+77f28 c 139 103
+77f34 8 249 137
+77f3c 8 244 139
+77f44 18 2753 73
+77f5c 4 2752 73
+77f60 20 2754 73
+77f80 10 333 122
+77f90 8 2754 73
+77f98 4 2755 73
+77f9c c 2759 73
+77fa8 8 2759 73
+77fb0 4 2759 73
+77fb4 4 2759 73
+77fb8 4 2759 73
+77fbc 4 70 139
+77fc0 4 356 101
+77fc4 4 70 139
+77fc8 4 481 101
+77fcc 4 346 101
+77fd0 10 347 101
+77fe0 8 348 101
+77fe8 c 352 101
+77ff4 4 73 139
+77ff8 4 201 65
+77ffc 4 71 139
+78000 4 201 65
+78004 8 73 139
+7800c 4 314 137
+78010 4 201 65
+78014 4 72 139
+78018 4 249 137
+7801c 4 314 137
+78020 4 249 137
+78024 4 201 65
+78028 4 249 137
+7802c 8 112 65
+78034 4 249 137
+78038 4 139 103
+7803c 14 112 65
+78050 18 201 65
+78068 c 249 137
+78074 4 244 139
+78078 4 2759 73
+7807c 8 2782 73
+78084 4 2759 73
+78088 4 202 139
+7808c 4 2761 73
+78090 4 2762 73
+78094 c 2761 73
+780a0 4 202 139
+780a4 4 2766 73
+780a8 4 202 139
+780ac 4 2766 73
+780b0 4 202 139
+780b4 c 2766 73
+780c0 c 189 73
+780cc c 190 73
+780d8 4 2769 73
+780dc 4 2770 73
+780e0 4 2769 73
+780e4 4 2773 73
+780e8 8 2774 73
+780f0 c 2773 73
+780fc 4 2793 73
+78100 8 2794 73
+78108 20 2782 73
+78128 24 2783 73
+7814c 4 110 72
+78150 10 333 122
+78160 10 254 121
+78170 c 333 122
+7817c 8 254 121
+78184 4 2777 73
+78188 8 254 121
+78190 c 333 122
+7819c c 2777 73
+781a8 10 2777 73
+781b8 c 333 122
+781c4 c 2778 73
+781d0 c 2778 73
+781dc 10 156 132
+781ec 8 2775 73
+781f4 8 42 143
+781fc 8 98 57
+78204 8 42 143
+7820c 10 98 57
+7821c 8 2797 73
+78224 8 2799 73
+7822c 4 2800 73
+78230 24 2775 73
+78254 4 110 72
+78258 20 333 122
+78278 4 2790 73
+7827c 8 202 139
+78284 c 2790 73
+78290 10 2761 73
+782a0 20 2801 73
+FUNC 782c0 c8 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_insert
+782c0 18 350 135
+782d8 4 358 135
+782dc 8 350 135
+782e4 4 358 135
+782e8 8 359 135
+782f0 4 360 135
+782f4 4 361 135
+782f8 8 362 135
+78300 4 364 135
+78304 4 364 135
+78308 10 364 135
+78318 4 367 135
+7831c 4 368 135
+78320 4 367 135
+78324 c 369 135
+78330 8 370 135
+78338 4 373 135
+7833c 4 374 135
+78340 4 373 135
+78344 c 375 135
+78350 4 376 135
+78354 8 379 135
+7835c 4 378 135
+78360 4 379 135
+78364 4 380 135
+78368 4 382 135
+7836c 8 380 135
+78374 4 142 136
+78378 10 382 135
+FUNC 78388 e4 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::insert_unique
+78388 8 405 135
+78390 4 408 135
+78394 8 405 135
+7839c 4 406 135
+783a0 4 405 135
+783a4 4 407 135
+783a8 4 405 135
+783ac 4 409 135
+783b0 10 412 135
+783c0 c 412 135
+783cc 18 412 135
+783e4 4 415 135
+783e8 c 416 135
+783f4 10 417 135
+78404 18 187 136
+7841c 10 421 135
+7842c 14 422 135
+78440 8 142 136
+78448 c 62 124
+78454 4 142 136
+78458 4 62 124
+7845c 10 425 135
+FUNC 7846c 1cc 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::insert_unique
+7846c 18 432 135
+78484 c 432 135
+78490 10 434 135
+784a0 10 437 135
+784b0 8 440 135
+784b8 8 441 135
+784c0 8 447 135
+784c8 8 177 136
+784d0 4 458 135
+784d4 4 177 136
+784d8 4 458 135
+784dc 14 462 135
+784f0 c 468 135
+784fc 4 469 135
+78500 8 470 135
+78508 8 469 135
+78510 c 479 135
+7851c 10 187 136
+7852c 8 79 106
+78534 4 494 135
+78538 c 177 136
+78544 4 513 135
+78548 8 517 135
+78550 8 517 135
+78558 c 517 135
+78564 10 475 135
+78574 c 142 136
+78580 10 480 135
+78590 c 483 135
+7859c 8 486 135
+785a4 10 494 135
+785b4 8 521 135
+785bc 18 522 135
+785d4 c 500 135
+785e0 14 524 135
+785f4 8 142 136
+785fc 8 497 135
+78604 c 498 135
+78610 c 524 135
+7861c 1c 534 135
+FUNC 78638 6e4 0 google_breakpad::Minidump::Read
+78638 24 4099 73
+7865c 4 4099 73
+78660 8 4101 73
+78668 8 42 143
+78670 8 4101 73
+78678 4 4103 73
+7867c 4 4102 73
+78680 8 531 136
+78688 c 532 136
+78694 4 533 136
+78698 4 534 136
+7869c 4 535 136
+786a0 4 536 136
+786a4 4 4105 73
+786a8 18 4107 73
+786c0 1c 4108 73
+786dc 10 333 122
+786ec 1c 4112 73
+78708 1c 4113 73
+78724 10 333 122
+78734 8 4113 73
+7873c 4 4114 73
+78740 14 4117 73
+78754 8 4122 73
+7875c 4 4123 73
+78760 14 4124 73
+78774 1c 4126 73
+78790 4 4127 73
+78794 4 4126 73
+78798 4 110 72
+7879c 10 333 122
+787ac 8 4127 73
+787b4 4 4128 73
+787b8 4 4127 73
+787bc 10 4127 73
+787cc c 333 122
+787d8 c 4128 73
+787e4 10 4128 73
+787f4 c 333 122
+78800 10 4129 73
+78810 c 4129 73
+7881c 10 156 132
+7882c c 4132 73
+78838 4 4136 73
+7883c 1c 4139 73
+78858 4 110 72
+7885c 10 333 122
+7886c 8 4139 73
+78874 c 4139 73
+78880 8 4139 73
+78888 18 333 122
+788a0 8 4139 73
+788a8 8 4142 73
+788b0 8 4143 73
+788b8 8 4144 73
+788c0 8 4145 73
+788c8 8 4146 73
+788d0 8 4147 73
+788d8 8 4148 73
+788e0 8 4149 73
+788e8 10 4154 73
+788f8 1c 4155 73
+78914 4 4156 73
+78918 4 4155 73
+7891c 4 110 72
+78920 10 333 122
+78930 c 4156 73
+7893c 10 4156 73
+7894c c 333 122
+78958 c 4157 73
+78964 c 4157 73
+78970 10 156 132
+78980 8 4155 73
+78988 14 4161 73
+7899c 1c 4162 73
+789b8 10 333 122
+789c8 14 4166 73
+789dc 1c 4167 73
+789f8 4 110 72
+789fc 10 333 122
+78a0c 10 254 121
+78a1c c 333 122
+78a28 c 254 121
+78a34 c 4167 73
+78a40 4 4172 73
+78a44 8 4174 73
+78a4c 4 4174 73
+78a50 4 70 139
+78a54 4 4174 73
+78a58 4 70 139
+78a5c 4 4174 73
+78a60 4 481 101
+78a64 4 356 101
+78a68 4 346 101
+78a6c c 347 101
+78a78 8 348 101
+78a80 c 352 101
+78a8c 4 73 139
+78a90 4 71 139
+78a94 4 72 139
+78a98 c 73 139
+78aa4 4 314 137
+78aa8 4 249 137
+78aac 4 314 137
+78ab0 8 249 137
+78ab8 4 249 137
+78abc 4 139 103
+78ac0 c 139 103
+78acc c 249 137
+78ad8 4 244 139
+78adc 1c 4179 73
+78af8 4 4178 73
+78afc 1c 4180 73
+78b18 10 333 122
+78b28 10 4197 73
+78b38 8 4218 73
+78b40 8 568 136
+78b48 4 571 136
+78b4c 8 178 118
+78b54 c 178 118
+78b60 4 4218 73
+78b64 4 4184 73
+78b68 c 4184 73
+78b74 c 202 139
+78b80 4 4189 73
+78b84 4 202 139
+78b88 4 4189 73
+78b8c c 4190 73
+78b98 c 4191 73
+78ba4 8 4196 73
+78bac 8 4197 73
+78bb4 10 210 118
+78bc4 4 423 136
+78bc8 4 200 136
+78bcc 8 4205 73
+78bd4 1c 4208 73
+78bf0 4 110 72
+78bf4 10 333 122
+78c04 c 254 121
+78c10 c 333 122
+78c1c 8 4208 73
+78c24 8 42 143
+78c2c c 98 57
+78c38 4 210 118
+78c3c 4 968 65
+78c40 4 202 139
+78c44 4 142 136
+78c48 4 210 118
+78c4c c 191 118
+78c58 14 4197 73
+78c6c c 572 136
+78c78 8 573 136
+78c80 14 575 136
+78c94 8 4223 73
+78c9c 8 98 57
+78ca4 8 4226 73
+78cac 4 4227 73
+78cb0 4 62 124
+78cb4 8 968 65
+78cbc 8 191 118
+78cc4 4 142 136
+78cc8 c 62 124
+78cd4 8 191 118
+78cdc 4 179 118
+78ce0 8 51 124
+78ce8 c 179 118
+78cf4 28 4228 73
+FUNC 78d1c d4 0 std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_buffers
+78d1c 10 630 104
+78d2c 8 630 104
+78d34 4 637 104
+78d38 c 644 104
+78d44 4 646 104
+78d48 4 645 104
+78d4c c 647 104
+78d58 4 650 104
+78d5c 4 651 104
+78d60 8 655 104
+78d68 4 227 102
+78d6c 4 655 104
+78d70 8 227 102
+78d78 c 655 104
+78d84 c 661 104
+78d90 4 664 104
+78d94 8 686 104
+78d9c 8 687 104
+78da4 8 688 104
+78dac 4 689 104
+78db0 4 690 104
+78db4 4 666 104
+78db8 4 691 104
+78dbc 8 692 104
+78dc4 4 669 104
+78dc8 4 670 104
+78dcc 4 671 104
+78dd0 4 670 104
+78dd4 8 669 104
+78ddc 14 672 104
+FUNC 78df0 60 0 std::basic_filebuf<char, std::char_traits<char> >::setbuf
+78df0 c 268 104
+78dfc 4 268 104
+78e00 8 269 104
+78e08 8 269 104
+78e10 8 269 104
+78e18 8 271 104
+78e20 c 272 104
+78e2c c 273 104
+78e38 8 274 104
+78e40 10 277 104
+FUNC 78e50 1f8 0 std::basic_filebuf<char, std::char_traits<char> >::overflow
+78e50 18 208 104
+78e68 8 208 104
+78e70 8 210 104
+78e78 8 453 104
+78e80 8 453 104
+78e88 8 453 104
+78e90 8 453 104
+78e98 8 456 104
+78ea0 c 128 105
+78eac 8 680 104
+78eb4 c 681 104
+78ec0 4 456 104
+78ec4 8 462 104
+78ecc 10 463 104
+78edc 10 463 104
+78eec 8 118 129
+78ef4 8 466 104
+78efc 4 216 104
+78f00 4 219 104
+78f04 8 214 104
+78f0c 4 216 104
+78f10 4 117 129
+78f14 4 118 129
+78f18 4 119 129
+78f1c 4 219 104
+78f20 4 220 140
+78f24 4 220 104
+78f28 4 228 104
+78f2c 8 193 102
+78f34 4 322 105
+78f38 8 223 104
+78f40 4 225 104
+78f44 4 193 102
+78f48 4 228 104
+78f4c 4 193 102
+78f50 4 224 104
+78f54 4 193 102
+78f58 4 225 104
+78f5c 18 193 102
+78f74 8 229 104
+78f7c 14 322 105
+78f90 8 232 104
+78f98 8 240 104
+78fa0 4 582 104
+78fa4 4 580 104
+78fa8 4 581 104
+78fac 4 582 104
+78fb0 4 117 129
+78fb4 4 118 129
+78fb8 8 119 129
+78fc0 c 240 104
+78fcc 20 240 104
+78fec 8 240 104
+78ff4 4 240 104
+78ff8 4 240 104
+78ffc 18 322 105
+79014 4 246 104
+79018 8 247 104
+79020 c 182 140
+7902c 4 212 104
+79030 18 256 104
+FUNC 79048 130 0 std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf
+79048 4 67 104
+7904c 4 70 104
+79050 8 67 104
+79058 8 70 104
+79060 4 67 104
+79064 c 84 104
+79070 4 85 104
+79074 8 86 104
+7907c c 85 104
+79088 8 89 104
+79090 8 119 104
+79098 c 120 104
+790a4 4 121 104
+790a8 4 122 104
+790ac 4 124 104
+790b0 8 93 104
+790b8 10 97 104
+790c8 10 97 104
+790d8 4 98 104
+790dc 8 97 104
+790e4 4 686 104
+790e8 4 98 104
+790ec 4 100 104
+790f0 4 101 104
+790f4 4 93 129
+790f8 4 94 129
+790fc 4 95 129
+79100 4 117 129
+79104 4 118 129
+79108 4 119 129
+7910c c 106 104
+79118 10 108 104
+79128 4 686 104
+7912c 8 687 104
+79134 8 688 104
+7913c 4 689 104
+79140 4 690 104
+79144 4 70 104
+79148 4 691 104
+7914c 4 692 104
+79150 c 70 104
+7915c 8 594 104
+79164 14 594 104
+FUNC 79178 24 0 std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf
+79178 c 67 104
+79184 4 67 104
+79188 4 70 104
+7918c 4 70 104
+79190 8 70 104
+79198 4 70 104
+FUNC 7919c a8 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+7919c c 495 105
+791a8 c 495 105
+791b4 8 495 105
+791bc 8 495 105
+791c4 4 495 105
+791c8 4 495 105
+791cc 4 495 105
+791d0 4 495 105
+791d4 8 495 105
+791dc 8 495 105
+791e4 8 495 105
+791ec 14 495 105
+79200 4 495 105
+79204 4 495 105
+79208 8 495 105
+79210 8 495 105
+79218 4 495 105
+7921c 8 495 105
+79224 4 495 105
+79228 4 495 105
+7922c 8 495 105
+79234 4 495 105
+79238 c 495 105
+FUNC 79244 c 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+79244 c 495 105
+FUNC 79260 24 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+79260 c 495 105
+7926c 8 495 105
+79274 4 495 105
+79278 8 495 105
+79280 4 495 105
+FUNC 79294 c 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+79294 c 495 105
+FUNC 792a0 bc 0 std::basic_filebuf<char, std::char_traits<char> >::_M_seek_init
+792a0 c 700 104
+792ac 4 700 104
+792b0 4 702 104
+792b4 4 706 104
+792b8 4 700 104
+792bc 4 706 104
+792c0 4 708 104
+792c4 c 708 104
+792d0 8 708 104
+792d8 4 709 104
+792dc 4 710 104
+792e0 8 594 104
+792e8 14 594 104
+792fc 4 711 104
+79300 4 713 104
+79304 4 712 104
+79308 4 713 104
+7930c 4 715 104
+79310 4 117 129
+79314 4 118 129
+79318 4 119 129
+7931c 4 715 104
+79320 4 720 104
+79324 4 723 104
+79328 4 720 104
+7932c 8 720 104
+79334 8 220 105
+7933c 8 93 129
+79344 4 94 129
+79348 4 95 129
+7934c 4 221 105
+79350 c 724 104
+FUNC 7935c 94 0 std::basic_filebuf<char, std::char_traits<char> >::_M_seek_return
+7935c 4 238 105
+79360 4 239 105
+79364 c 238 105
+79370 c 238 105
+7937c 4 239 105
+79380 8 240 105
+79388 8 119 104
+79390 c 120 104
+7939c 4 121 104
+793a0 4 122 104
+793a4 4 242 105
+793a8 4 243 105
+793ac 4 244 105
+793b0 4 245 105
+793b4 4 93 129
+793b8 4 94 129
+793bc 4 95 129
+793c0 4 117 129
+793c4 4 118 129
+793c8 4 119 129
+793cc c 250 105
+793d8 4 121 140
+793dc 14 253 105
+FUNC 793f0 8c 0 std::basic_filebuf<char, std::char_traits<char> >::seekpos
+793f0 10 384 104
+79400 c 384 104
+7940c 8 386 104
+79414 10 387 104
+79424 8 391 104
+7942c 10 391 104
+7943c 8 391 104
+79444 14 397 104
+79458 4 392 104
+7945c 10 393 104
+7946c 10 398 104
+FUNC 7947c 1f4 0 std::basic_filebuf<char, std::char_traits<char> >::seekoff
+7947c 10 291 104
+7948c 8 291 104
+79494 8 294 104
+7949c c 297 104
+794a8 4 297 104
+794ac 4 297 104
+794b0 14 298 104
+794c4 24 300 104
+794e8 10 304 104
+794f8 8 310 104
+79500 10 312 104
+79510 c 314 104
+7951c 10 317 104
+7952c 4 321 104
+79530 c 320 104
+7953c 8 321 104
+79544 10 321 104
+79554 c 321 104
+79560 c 324 104
+7956c 8 325 104
+79574 4 332 104
+79578 4 325 104
+7957c 10 332 104
+7958c 4 333 104
+79590 8 87 105
+79598 4 336 104
+7959c c 335 104
+795a8 8 336 104
+795b0 10 336 104
+795c0 c 336 104
+795cc 8 344 104
+795d4 8 224 102
+795dc 4 344 104
+795e0 4 346 104
+795e4 14 224 102
+795f8 10 370 104
+79608 4 373 104
+7960c 4 371 104
+79610 4 372 104
+79614 4 373 104
+79618 4 87 105
+7961c 4 372 104
+79620 8 373 104
+79628 4 375 104
+7962c c 375 104
+79638 10 375 104
+79648 18 378 104
+79660 10 379 104
+FUNC 79670 fc 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind
+79670 4 468 130
+79674 4 468 130
+79678 4 400 131
+7967c 8 471 130
+79684 8 472 130
+7968c 10 474 130
+7969c 4 162 99
+796a0 4 474 130
+796a4 c 164 99
+796b0 c 165 99
+796bc c 168 99
+796c8 8 81 113
+796d0 c 171 99
+796dc 8 81 113
+796e4 c 174 99
+796f0 8 81 113
+796f8 c 164 99
+79704 4 152 113
+79708 1c 178 99
+79724 c 180 99
+79730 4 81 113
+79734 c 183 99
+79740 4 81 113
+79744 4 186 99
+79748 10 65 113
+79758 8 478 130
+79760 8 478 130
+79768 4 479 130
+FUNC 7976c 124 0 google_breakpad::PathnameStripper::File
+7976c 4 41 74
+79770 8 42 74
+79778 c 41 74
+79784 8 41 74
+7978c 8 42 74
+79794 10 43 74
+797a4 8 46 74
+797ac 10 46 74
+797bc 8 48 74
+797c4 4 49 74
+797c8 4 45 74
+797cc 4 49 74
+797d0 4 50 74
+797d4 4 112 132
+797d8 c 481 101
+797e4 4 400 131
+797e8 8 205 131
+797f0 c 604 130
+797fc 4 209 131
+79800 4 378 131
+79804 8 608 130
+7980c 8 610 130
+79814 4 347 101
+79818 8 158 101
+79820 8 134 119
+79828 8 158 101
+79830 4 613 130
+79834 4 611 130
+79838 4 612 130
+7983c c 613 130
+79848 c 107 137
+79854 c 106 137
+79860 8 107 137
+79868 c 600 130
+79874 4 380 131
+79878 4 54 74
+7987c 4 101 103
+79880 10 54 74
+FUNC 79890 c 0 google_breakpad::BasicCodeModules::module_count
+79890 4 85 67
+79894 8 87 67
+FUNC 7989c 20 0 google_breakpad::BasicCodeModules::GetMainModule
+7989c 8 100 67
+798a4 10 101 67
+798b4 8 102 67
+FUNC 798bc 1c 0 google_breakpad::BasicCodeModules::GetModuleAtIndex
+798bc 8 116 67
+798c4 c 121 67
+798d0 8 122 67
+FUNC 798d8 54 0 google_breakpad::linked_ptr<const google_breakpad::CodeModule>::depart
+798d8 4 155 70
+798dc 4 156 70
+798e0 4 155 70
+798e4 10 83 70
+798f4 14 85 70
+79908 8 86 70
+79910 8 156 70
+79918 4 156 70
+7991c 8 156 70
+79924 8 157 70
+FUNC 7992c 58 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_erase
+7992c 18 655 135
+79944 4 657 135
+79948 c 658 135
+79954 4 659 135
+79958 8 102 70
+79960 14 161 101
+79974 10 664 135
+FUNC 79984 50 0 google_breakpad::BasicCodeModules::~BasicCodeModules
+79984 10 81 67
+79994 8 81 67
+7999c 8 82 67
+799a4 8 531 136
+799ac c 532 136
+799b8 4 82 67
+799bc 8 83 67
+799c4 4 82 67
+799c8 c 83 67
+FUNC 799d4 24 0 google_breakpad::BasicCodeModules::~BasicCodeModules
+799d4 c 81 67
+799e0 4 81 67
+799e4 4 83 67
+799e8 4 83 67
+799ec 8 83 67
+799f4 4 83 67
+FUNC 799f8 40 0 google_breakpad::linked_ptr<const google_breakpad::CodeModule>::copy<const google_breakpad::CodeModule>
+799f8 c 165 70
+79a04 4 166 70
+79a08 8 167 70
+79a10 14 75 70
+79a24 4 76 70
+79a28 8 77 70
+79a30 4 69 70
+79a34 4 170 70
+FUNC 79a38 12c 0 google_breakpad::BasicCodeModules::GetModuleForAddress
+79a38 14 90 67
+79a4c 4 160 70
+79a50 4 90 67
+79a54 4 69 70
+79a58 4 92 67
+79a5c 4 69 70
+79a60 4 160 70
+79a64 8 568 136
+79a6c 4 571 136
+79a70 c 572 136
+79a7c 8 573 136
+79a84 14 575 136
+79a98 c 125 75
+79aa4 c 133 75
+79ab0 c 106 70
+79abc 8 117 70
+79ac4 c 118 70
+79ad0 c 102 70
+79adc 4 97 67
+79ae0 24 93 67
+79b04 4 110 72
+79b08 10 333 122
+79b18 c 93 67
+79b24 c 93 67
+79b30 4 156 132
+79b34 4 94 67
+79b38 4 156 132
+79b3c 8 93 67
+79b44 8 102 70
+79b4c 18 98 67
+FUNC 79b64 234 0 google_breakpad::BasicCodeModules::GetModuleAtSequence
+79b64 14 105 67
+79b78 4 105 67
+79b7c 4 160 70
+79b80 4 107 67
+79b84 4 69 70
+79b88 4 160 70
+79b8c 4 69 70
+79b90 4 207 75
+79b94 8 184 75
+79b9c 28 185 75
+79bc4 4 110 72
+79bc8 10 333 122
+79bd8 10 185 75
+79be8 c 333 122
+79bf4 8 185 75
+79bfc 4 108 67
+79c00 4 185 75
+79c04 8 185 75
+79c0c 1c 108 67
+79c28 4 110 72
+79c2c 10 333 122
+79c3c 14 181 122
+79c50 4 199 121
+79c54 1c 211 121
+79c70 4 192 75
+79c74 8 192 75
+79c7c 8 297 135
+79c84 10 94 136
+79c94 4 301 135
+79c98 c 302 135
+79ca4 c 304 135
+79cb0 c 309 135
+79cbc 8 192 75
+79cc4 10 106 70
+79cd4 8 117 70
+79cdc c 118 70
+79ce8 c 102 70
+79cf4 4 112 67
+79cf8 4 202 121
+79cfc 4 145 110
+79d00 4 202 121
+79d04 4 145 110
+79d08 4 202 121
+79d0c 8 145 110
+79d14 c 351 117
+79d20 8 351 117
+79d28 4 72 120
+79d2c 4 202 121
+79d30 8 72 120
+79d38 c 202 121
+79d44 4 72 120
+79d48 4 57 123
+79d4c c 72 120
+79d58 8 202 121
+79d60 4 210 121
+79d64 4 212 121
+79d68 4 109 67
+79d6c 4 212 121
+79d70 8 108 67
+79d78 8 102 70
+79d80 18 113 67
+FUNC 79d98 64 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_create_node
+79d98 4 315 136
+79d9c 4 306 101
+79da0 8 315 136
+79da8 4 315 136
+79dac 8 306 101
+79db4 4 158 101
+79db8 4 119 103
+79dbc 4 158 101
+79dc0 4 119 103
+79dc4 c 68 124
+79dd0 4 106 70
+79dd4 8 102 76
+79ddc 8 106 70
+79de4 4 321 136
+79de8 4 324 136
+79dec 4 322 136
+79df0 c 324 136
+FUNC 79dfc c8 0 std::priv::_Rb_tree<long unsigned int, std::less<long unsigned int>, std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long unsigned int const, google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_insert
+79dfc 18 350 135
+79e14 4 358 135
+79e18 8 350 135
+79e20 4 358 135
+79e24 8 359 135
+79e2c 4 360 135
+79e30 4 361 135
+79e34 8 362 135
+79e3c 4 364 135
+79e40 4 364 135
+79e44 10 364 135
+79e54 4 367 135
+79e58 4 368 135
+79e5c 4 367 135
+79e60 c 369 135
+79e6c 8 370 135
+79e74 4 373 135
+79e78 4 374 135
+79e7c 4 373 135
+79e80 c 375 135
+79e8c 4 376 135
+79e90 8 379 135
+79e98 4 378 135
+79e9c 4 379 135
+79ea0 4 380 135
+79ea4 4 382 135
+79ea8 8 380 135
+79eb0 4 142 136
+79eb4 10 382 135
+FUNC 79ec4 2d8 0 google_breakpad::RangeMap<long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::StoreRange
+79ec4 14 50 75
+79ed8 8 53 75
+79ee0 c 56 75
+79eec 8 53 75
+79ef4 c 56 75
+79f00 20 60 75
+79f20 4 60 75
+79f24 4 60 75
+79f28 4 110 72
+79f2c 10 333 122
+79f3c 8 60 75
+79f44 4 61 75
+79f48 4 60 75
+79f4c 10 60 75
+79f5c c 333 122
+79f68 8 61 75
+79f70 4 61 75
+79f74 4 61 75
+79f78 10 61 75
+79f88 c 333 122
+79f94 c 61 75
+79fa0 c 61 75
+79fac 18 156 132
+79fc4 8 60 75
+79fcc c 63 75
+79fd8 4 568 136
+79fdc 4 569 136
+79fe0 4 571 136
+79fe4 c 572 136
+79ff0 8 573 136
+79ff8 14 575 136
+7a00c 4 568 136
+7a010 4 571 136
+7a014 c 572 136
+7a020 8 573 136
+7a028 14 575 136
+7a03c 8 71 75
+7a044 8 90 75
+7a04c c 91 75
+7a058 4 105 76
+7a05c 8 106 70
+7a064 4 105 76
+7a068 4 106 70
+7a06c 4 62 124
+7a070 4 106 70
+7a074 4 62 124
+7a078 4 102 76
+7a07c 4 106 70
+7a080 4 102 76
+7a084 8 106 70
+7a08c 4 407 135
+7a090 8 568 136
+7a098 4 408 135
+7a09c 4 409 135
+7a0a0 c 412 135
+7a0ac c 412 135
+7a0b8 14 412 135
+7a0cc 4 409 135
+7a0d0 4 415 135
+7a0d4 c 416 135
+7a0e0 14 417 135
+7a0f4 8 279 135
+7a0fc 10 279 135
+7a10c 8 280 135
+7a114 8 281 135
+7a11c 10 99 136
+7a12c 4 285 135
+7a130 c 286 135
+7a13c c 288 135
+7a148 4 187 136
+7a14c c 421 135
+7a158 1c 422 135
+7a174 10 102 70
+7a184 4 113 75
+7a188 14 114 75
+FUNC 7a19c 204 0 google_breakpad::BasicCodeModules::BasicCodeModules
+7a19c 10 48 67
+7a1ac 8 50 67
+7a1b4 8 48 67
+7a1bc 4 50 67
+7a1c0 4 50 67
+7a1c4 4 50 67
+7a1c8 10 48 67
+7a1d8 4 50 67
+7a1dc 4 481 101
+7a1e0 4 263 136
+7a1e4 4 266 136
+7a1e8 4 267 136
+7a1ec 4 391 136
+7a1f0 4 50 67
+7a1f4 4 52 67
+7a1f8 24 52 67
+7a21c 10 333 122
+7a22c 8 52 67
+7a234 10 55 67
+7a244 4 56 67
+7a248 10 57 67
+7a258 4 59 67
+7a25c 4 160 70
+7a260 4 70 67
+7a264 4 333 122
+7a268 4 60 67
+7a26c 4 70 67
+7a270 8 59 67
+7a278 4 333 122
+7a27c 8 59 67
+7a284 8 69 70
+7a28c 8 60 67
+7a294 8 68 67
+7a29c 8 69 67
+7a2a4 10 68 67
+7a2b4 8 68 67
+7a2bc 4 69 70
+7a2c0 4 160 70
+7a2c4 8 69 67
+7a2cc 8 69 67
+7a2d4 c 69 67
+7a2e0 8 69 67
+7a2e8 4 69 67
+7a2ec 18 69 67
+7a304 4 69 67
+7a308 1c 70 67
+7a324 4 110 72
+7a328 10 333 122
+7a338 4 70 67
+7a33c 4 70 67
+7a340 8 70 67
+7a348 c 70 67
+7a354 c 333 122
+7a360 8 156 132
+7a368 8 70 67
+7a370 4 102 70
+7a374 4 60 67
+7a378 8 102 70
+7a380 20 74 67
+FUNC 7a3a0 34 0 google_breakpad::BasicCodeModules::Copy
+7a3a0 c 124 67
+7a3ac 4 124 67
+7a3b0 c 125 67
+7a3bc 8 125 67
+7a3c4 10 126 67
+FUNC 7a3d4 5c 0 CxaThreadKey::freeObject
+7a3d4 10 251 161
+7a3e4 4 141 161
+7a3e8 18 68 161
+7a400 8 146 161
+7a408 4 72 161
+7a40c 4 147 161
+7a410 c 253 161
+7a41c 4 72 161
+7a420 10 253 161
+FUNC 7a430 74 0 CxaThreadKey::~CxaThreadKey
+7a430 c 217 161
+7a43c 10 116 161
+7a44c 8 117 161
+7a454 4 119 161
+7a458 8 121 161
+7a460 8 119 161
+7a468 4 120 161
+7a46c 4 121 161
+7a470 8 117 161
+7a478 10 123 161
+7a488 8 124 161
+7a490 4 219 161
+7a494 8 220 161
+7a49c 8 219 161
+FUNC 7a4a4 10 0 __cxxabiv1::__shim_type_info::~__shim_type_info
+7a4a4 10 278 161
+FUNC 7a4b4 14 0 __cxxabiv1::__cxa_pure_virtual
+7a4b4 4 281 161
+7a4b8 4 282 161
+7a4bc 4 281 161
+7a4c0 4 282 161
+7a4c4 4 282 161
+FUNC 7a4c8 168 0 __cxxabiv1::__cxa_get_globals
+7a4c8 c 289 161
+7a4d4 4 228 161
+7a4d8 4 289 161
+7a4dc c 228 161
+7a4e8 4 229 161
+7a4ec 14 291 161
+7a500 10 68 161
+7a510 14 131 161
+7a524 8 135 161
+7a52c 8 136 161
+7a534 4 135 161
+7a538 4 136 161
+7a53c c 72 161
+7a548 4 239 161
+7a54c c 244 161
+7a558 14 291 161
+7a56c 18 156 161
+7a584 8 157 161
+7a58c 10 161 161
+7a59c 4 167 161
+7a5a0 4 161 161
+7a5a4 8 162 161
+7a5ac 10 167 161
+7a5bc 4 167 161
+7a5c0 4 168 161
+7a5c4 4 167 161
+7a5c8 4 169 161
+7a5cc 4 170 161
+7a5d0 10 167 161
+7a5e0 c 172 161
+7a5ec 8 165 161
+7a5f4 2c 72 161
+7a620 c 242 161
+7a62c 4 289 161
+FUNC 7a630 4c 0 throwException
+7a630 14 262 161
+7a644 8 263 161
+7a64c 4 264 161
+7a650 4 268 161
+7a654 4 264 161
+7a658 4 265 161
+7a65c 4 266 161
+7a660 4 265 161
+7a664 4 268 161
+7a668 8 266 161
+7a670 4 268 161
+7a674 8 271 161
+FUNC 7a67c 2c 0 __cxxabiv1::__cxa_get_globals_fast
+7a67c 4 223 161
+7a680 8 293 161
+7a688 8 223 161
+7a690 14 295 161
+7a6a4 4 293 161
+FUNC 7a6a8 5c 0 __cxxabiv1::__cxa_allocate_exception
+7a6a8 4 297 161
+7a6ac 4 299 161
+7a6b0 4 297 161
+7a6b4 4 299 161
+7a6b8 4 300 161
+7a6bc 20 307 161
+7a6dc 4 308 161
+7a6e0 8 309 161
+7a6e8 18 304 161
+7a700 4 297 161
+FUNC 7a704 60 0 __cxxabiv1::__cxa_free_exception
+7a704 8 311 161
+7a70c 4 314 161
+7a710 4 311 161
+7a714 4 312 161
+7a718 4 314 161
+7a71c 4 316 161
+7a720 4 322 161
+7a724 8 323 161
+7a72c 4 322 161
+7a730 4 317 161
+7a734 14 318 161
+7a748 18 317 161
+7a760 4 311 161
+FUNC 7a764 8 0 defaultExceptionCleanupFunc
+7a764 8 51 161
+FUNC 7a76c 3c 0 __cxxabiv1::__cxa_throw
+7a76c 8 327 161
+7a774 4 332 161
+7a778 4 327 161
+7a77c 4 332 161
+7a780 4 332 161
+7a784 4 329 161
+7a788 4 333 161
+7a78c 4 330 161
+7a790 4 332 161
+7a794 4 333 161
+7a798 4 335 161
+7a79c 4 332 161
+7a7a0 4 333 161
+7a7a4 4 335 161
+FUNC 7a7a8 58 0 __cxxabiv1::__cxa_rethrow
+7a7a8 8 338 161
+7a7b0 4 339 161
+7a7b4 4 340 161
+7a7b8 4 342 161
+7a7bc 1c 347 161
+7a7d8 4 350 161
+7a7dc 8 353 161
+7a7e4 10 348 161
+7a7f4 c 344 161
+FUNC 7a800 a4 0 __cxxabiv1::__cxa_begin_catch
+7a800 c 356 161
+7a80c 4 356 161
+7a810 4 359 161
+7a814 4 361 161
+7a818 4 358 161
+7a81c 14 361 161
+7a830 4 362 161
+7a834 4 361 161
+7a838 4 362 161
+7a83c 4 368 161
+7a840 4 369 161
+7a844 4 369 161
+7a848 4 369 161
+7a84c 8 371 161
+7a854 4 372 161
+7a858 4 373 161
+7a85c 4 375 161
+7a860 4 377 161
+7a864 8 375 161
+7a86c 10 378 161
+7a87c c 369 161
+7a888 18 363 161
+7a8a0 4 356 161
+FUNC 7a8a4 b4 0 __cxxabiv1::__cxa_end_catch
+7a8a4 8 380 161
+7a8ac 4 381 161
+7a8b0 4 382 161
+7a8b4 4 381 161
+7a8b8 4 385 161
+7a8bc 20 389 161
+7a8dc 4 390 161
+7a8e0 4 391 161
+7a8e4 8 409 161
+7a8ec 4 395 161
+7a8f0 4 396 161
+7a8f4 8 400 161
+7a8fc 8 404 161
+7a904 4 408 161
+7a908 8 409 161
+7a910 8 397 161
+7a918 8 398 161
+7a920 8 408 161
+7a928 4 401 161
+7a92c 4 402 161
+7a930 4 401 161
+7a934 4 409 161
+7a938 4 402 161
+7a93c 18 405 161
+7a954 4 380 161
+FUNC 7a958 c 0 operator delete
+7a958 4 37 163
+7a95c 4 38 163
+7a960 4 39 163
+FUNC 7a964 4 0 operator delete []
+7a964 4 44 163
+FUNC 7a968 4 0 std::exception::~exception
+7a968 4 41 166
+FUNC 7a96c c 0 std::exception::what
+7a96c 4 44 166
+7a970 8 45 166
+FUNC 7a978 4 0 std::bad_exception::~bad_exception
+7a978 4 53 166
+FUNC 7a97c c 0 std::bad_exception::what
+7a97c 4 56 166
+7a980 8 57 166
+FUNC 7a988 4 0 std::exception::~exception
+7a988 4 41 166
+FUNC 7a98c 4 0 std::bad_exception::~bad_exception
+7a98c 4 53 166
+FUNC 7a990 10 0 std::exception::exception
+7a990 c 36 166
+7a99c 4 37 166
+FUNC 7a9a0 10 0 std::bad_exception::bad_exception
+7a9a0 c 48 166
+7a9ac 4 49 166
+FUNC 7a9b0 20 0 std::uncaught_exception
+7a9b0 8 60 166
+7a9b8 4 63 166
+7a9bc 4 64 166
+7a9c0 4 65 166
+7a9c4 4 64 166
+7a9c8 8 65 166
+FUNC 7a9d0 78 0 __gabixx::__fatal_error
+7a9d0 4 36 167
+7a9d4 8 41 167
+7a9dc 8 36 167
+7a9e4 4 36 167
+7a9e8 14 41 167
+7a9fc 14 65 167
+7aa10 4 67 167
+7aa14 10 68 167
+7aa24 4 69 167
+7aa28 14 70 167
+7aa3c 8 72 167
+7aa44 4 75 167
+FUNC 7aa48 10 0 __cxxabiv1::call_terminate
+7aa48 8 52 168
+7aa50 4 53 168
+7aa54 4 54 168
+FUNC 7aa58 a0 0 __cxxabiv1::getTypePtr
+7aa58 c 418 168
+7aa64 4 418 168
+7aa68 4 419 168
+7aa6c c 423 168
+7aa78 8 441 168
+7aa80 18 423 168
+7aa98 4 437 168
+7aa9c 8 443 168
+7aaa4 4 444 168
+7aaa8 4 443 168
+7aaac 4 444 168
+7aab0 8 445 168
+7aab8 4 433 168
+7aabc 8 443 168
+7aac4 4 444 168
+7aac8 4 443 168
+7aacc 4 444 168
+7aad0 8 445 168
+7aad8 4 429 168
+7aadc 8 443 168
+7aae4 4 444 168
+7aae8 4 443 168
+7aaec 4 444 168
+7aaf0 8 445 168
+FUNC 7aaf8 c4 0 __cxxabiv1::canExceptionSpecCatch
+7aaf8 18 452 168
+7ab10 14 452 168
+7ab24 4 453 168
+7ab28 4 459 168
+7ab2c 4 458 168
+7ab30 4 459 168
+7ab34 4 471 168
+7ab38 8 459 168
+7ab40 10 469 168
+7ab50 4 472 168
+7ab54 4 471 168
+7ab58 4 470 168
+7ab5c 10 471 168
+7ab6c 4 471 168
+7ab70 8 462 168
+7ab78 4 463 168
+7ab7c 4 476 168
+7ab80 18 477 168
+7ab98 4 473 168
+7ab9c 18 477 168
+7abb4 8 454 168
+FUNC 7abbc 3d4 0 __cxxabiv1::scanEHTable
+7abbc 28 62 168
+7abe4 4 72 168
+7abe8 14 62 168
+7abfc 4 62 168
+7ac00 4 72 168
+7ac04 4 64 168
+7ac08 4 69 168
+7ac0c 4 65 168
+7ac10 4 66 168
+7ac14 4 67 168
+7ac18 4 68 168
+7ac1c 4 69 168
+7ac20 4 72 168
+7ac24 8 73 168
+7ac2c c 89 168
+7ac38 4 89 168
+7ac3c 8 90 168
+7ac44 4 99 168
+7ac48 4 95 168
+7ac4c 8 96 168
+7ac54 4 100 168
+7ac58 8 96 168
+7ac60 4 97 168
+7ac64 4 96 168
+7ac68 c 97 168
+7ac74 4 100 168
+7ac78 4 98 168
+7ac7c 8 100 168
+7ac84 c 101 168
+7ac90 4 103 168
+7ac94 4 105 168
+7ac98 4 103 168
+7ac9c 8 105 168
+7aca4 4 103 168
+7aca8 4 105 168
+7acac 4 106 168
+7acb0 4 105 168
+7acb4 4 106 168
+7acb8 8 107 168
+7acc0 c 108 168
+7accc 4 110 168
+7acd0 4 111 168
+7acd4 4 110 168
+7acd8 4 115 168
+7acdc 4 110 168
+7ace0 4 111 168
+7ace4 4 112 168
+7ace8 4 113 168
+7acec 4 115 168
+7acf0 8 118 168
+7acf8 10 119 168
+7ad08 10 120 168
+7ad18 10 121 168
+7ad28 8 122 168
+7ad30 8 123 168
+7ad38 8 275 168
+7ad40 8 206 168
+7ad48 4 209 168
+7ad4c 8 210 168
+7ad54 18 216 168
+7ad6c 4 216 168
+7ad70 8 219 168
+7ad78 4 225 168
+7ad7c 4 221 168
+7ad80 4 222 168
+7ad84 4 223 168
+7ad88 4 224 168
+7ad8c 4 225 168
+7ad90 2c 280 168
+7adbc 4 77 168
+7adc0 c 78 168
+7adcc 8 79 168
+7add4 4 80 168
+7add8 4 124 168
+7addc c 130 168
+7ade8 4 131 168
+7adec c 132 168
+7adf8 8 266 168
+7ae00 4 267 168
+7ae04 14 123 168
+7ae18 4 144 168
+7ae1c 8 235 168
+7ae24 8 144 168
+7ae2c 4 251 168
+7ae30 4 235 168
+7ae34 4 243 168
+7ae38 8 144 168
+7ae40 4 243 168
+7ae44 8 208 168
+7ae4c 14 153 168
+7ae60 4 154 168
+7ae64 8 172 168
+7ae6c 4 174 168
+7ae70 4 176 168
+7ae74 8 177 168
+7ae7c 1c 183 168
+7ae98 4 183 168
+7ae9c 8 184 168
+7aea4 20 188 168
+7aec4 4 188 168
+7aec8 8 189 168
+7aed0 8 197 168
+7aed8 4 262 168
+7aedc 4 263 168
+7aee0 4 262 168
+7aee4 4 263 168
+7aee8 4 264 168
+7aeec 10 271 168
+7aefc 8 147 168
+7af04 4 148 168
+7af08 4 147 168
+7af0c 4 148 168
+7af10 4 204 168
+7af14 10 251 168
+7af24 8 235 168
+7af2c 10 243 168
+7af3c 4 134 168
+7af40 4 136 168
+7af44 4 135 168
+7af48 4 136 168
+7af4c 4 137 168
+7af50 4 255 168
+7af54 4 256 168
+7af58 4 252 168
+7af5c 4 253 168
+7af60 4 254 168
+7af64 4 255 168
+7af68 4 256 168
+7af6c 4 257 168
+7af70 8 194 168
+7af78 4 195 168
+7af7c 4 191 168
+7af80 4 192 168
+7af84 4 193 168
+7af88 8 195 168
+FUNC 7af90 48 0 __cxxabiv1::setRegisters
+7af90 c 481 168
+7af9c 8 481 168
+7afa4 10 483 168
+7afb4 10 485 168
+7afc4 8 486 168
+7afcc 8 487 168
+7afd4 4 486 168
+FUNC 7afd8 8 0 __cxxabiv1::continueUnwinding
+7afd8 8 492 168
+FUNC 7afe0 4 0 __cxxabiv1::saveDataToBarrierCache
+7afe0 4 498 168
+FUNC 7afe4 4 0 __cxxabiv1::loadDataFromBarrierCache
+7afe4 4 501 168
+FUNC 7afe8 4 0 __cxxabiv1::prepareBeginCleanup
+7afe8 4 503 168
+FUNC 7afec 4 0 __cxxabiv1::saveUnexpectedDataToBarrierCache
+7afec 4 507 168
+FUNC 7aff0 c 0 std::bad_alloc::what
+7aff0 4 51 169
+7aff4 8 52 169
+FUNC 7affc 10 0 std::bad_alloc::~bad_alloc
+7affc 10 47 169
+FUNC 7b00c 30 0 std::bad_alloc::~bad_alloc
+7b00c 10 47 169
+7b01c 10 47 169
+7b02c 4 48 169
+7b030 8 48 169
+7b038 4 48 169
+FUNC 7b03c 2c 0 std::bad_alloc::bad_alloc
+7b03c c 44 169
+7b048 14 44 169
+7b05c c 45 169
+FUNC 7b068 90 0 operator new
+7b068 c 96 169
+7b074 4 96 169
+7b078 1c 90 169
+7b094 4 104 169
+7b098 4 107 169
+7b09c 8 99 169
+7b0a4 4 100 169
+7b0a8 c 110 169
+7b0b4 c 105 169
+7b0c0 4 44 169
+7b0c4 8 105 169
+7b0cc 4 44 169
+7b0d0 4 105 169
+7b0d4 4 44 169
+7b0d8 8 105 169
+7b0e0 4 44 169
+7b0e4 10 105 169
+7b0f4 4 96 169
+FUNC 7b0f8 24 0 operator new []
+7b0f8 8 123 169
+7b100 4 124 169
+7b104 14 125 169
+7b118 4 123 169
+FUNC 7b11c 1b4 0 __cxxabiv1::__gxx_personality_v0
+7b11c 4 56 171
+7b120 4 57 171
+7b124 4 56 171
+7b128 4 57 171
+7b12c 4 57 171
+7b130 4 56 171
+7b134 4 57 171
+7b138 4 57 171
+7b13c c 56 171
+7b148 8 56 171
+7b150 c 57 171
+7b15c 18 61 171
+7b174 4 67 171
+7b178 4 58 171
+7b17c 4 88 171
+7b180 4 89 171
+7b184 4 93 171
+7b188 4 90 171
+7b18c 4 93 171
+7b190 4 98 171
+7b194 4 94 171
+7b198 4 98 171
+7b19c 4 95 171
+7b1a0 4 97 171
+7b1a4 4 96 171
+7b1a8 4 93 171
+7b1ac 4 94 171
+7b1b0 4 95 171
+7b1b4 4 96 171
+7b1b8 4 97 171
+7b1bc 4 98 171
+7b1c0 c 106 171
+7b1cc 4 110 171
+7b1d0 4 106 171
+7b1d4 14 109 171
+7b1e8 4 58 171
+7b1ec 18 126 171
+7b204 10 68 171
+7b214 c 69 171
+7b220 4 71 171
+7b224 4 73 171
+7b228 4 78 171
+7b22c 4 74 171
+7b230 4 78 171
+7b234 4 75 171
+7b238 4 78 171
+7b23c 4 76 171
+7b240 4 77 171
+7b244 4 73 171
+7b248 4 74 171
+7b24c 4 75 171
+7b250 4 76 171
+7b254 4 77 171
+7b258 8 78 171
+7b260 14 121 171
+7b274 10 114 171
+7b284 c 115 171
+7b290 c 117 171
+7b29c 4 119 171
+7b2a0 4 117 171
+7b2a4 c 118 171
+7b2b0 c 100 171
+7b2bc c 102 171
+7b2c8 8 103 171
+FUNC 7b2d0 8 0 __cxxabiv1::__si_class_type_info::code
+7b2d0 8 174 162
+FUNC 7b2d8 10 0 __cxxabiv1::__si_class_type_info::~__si_class_type_info
+7b2d8 10 34 172
+FUNC 7b2e8 30 0 __cxxabiv1::__si_class_type_info::~__si_class_type_info
+7b2e8 10 34 172
+7b2f8 10 34 172
+7b308 4 36 172
+7b30c 8 36 172
+7b314 4 36 172
+FUNC 7b318 60 0 __cxxabiv1::__si_class_type_info::walk_to
+7b318 10 40 172
+7b328 10 40 172
+7b338 c 41 172
+7b344 24 45 172
+7b368 10 46 172
+FUNC 7b378 18 0 __gabixx::__default_terminate
+7b378 4 72 173
+7b37c 4 68 173
+7b380 4 72 173
+7b384 4 68 173
+7b388 4 72 173
+7b38c 4 75 173
+FUNC 7b390 30 0 __gabixx::__terminate
+7b390 8 78 173
+7b398 4 79 173
+7b39c 4 84 173
+7b3a0 4 91 173
+7b3a4 8 80 173
+7b3ac 8 84 173
+7b3b4 4 85 173
+7b3b8 4 85 173
+7b3bc 4 91 173
+FUNC 7b3c0 1c 0 std::get_terminate
+7b3c0 18 99 173
+7b3d8 4 100 173
+FUNC 7b3dc 24 0 std::terminate
+7b3dc 4 99 173
+7b3e0 4 109 173
+7b3e4 4 99 173
+7b3e8 4 109 173
+7b3ec 10 99 173
+7b3fc 4 110 173
+FUNC 7b400 c 0 __gabixx::__default_unexpected
+7b400 8 46 173
+7b408 4 47 173
+FUNC 7b40c 1c 0 std::get_unexpected
+7b40c 18 114 173
+7b424 4 115 173
+FUNC 7b428 4 0 std::type_info::~type_info
+7b428 4 44 174
+FUNC 7b42c c 0 std::bad_cast::what
+7b42c 4 85 174
+7b430 8 86 174
+FUNC 7b438 10 0 std::bad_cast::~bad_cast
+7b438 10 81 174
+FUNC 7b448 30 0 std::bad_cast::~bad_cast
+7b448 10 81 174
+7b458 10 81 174
+7b468 4 82 174
+7b46c 8 82 174
+7b474 4 82 174
+FUNC 7b478 c 0 std::type_info::operator==
+7b478 4 55 174
+7b47c 8 57 174
+FUNC 7b484 c 0 std::type_info::operator!=
+7b484 4 62 174
+7b488 8 63 174
+FUNC 7b490 2c 0 std::bad_cast::bad_cast
+7b490 c 78 174
+7b49c 14 78 174
+7b4b0 c 79 174
+FUNC 7b4bc 8 0 std::__Named_exception::what
+7b4bc 8 95 234
+FUNC 7b4c4 44 0 std::__Named_exception::~__Named_exception
+7b4c4 8 89 234
+7b4cc 4 90 234
+7b4d0 8 89 234
+7b4d8 8 89 234
+7b4e0 4 90 234
+7b4e4 8 89 234
+7b4ec 8 90 234
+7b4f4 4 91 234
+7b4f8 4 89 234
+7b4fc 8 92 234
+7b504 4 89 234
+FUNC 7b508 24 0 std::__Named_exception::~__Named_exception
+7b508 c 89 234
+7b514 4 89 234
+7b518 4 92 234
+7b51c 4 92 234
+7b520 8 92 234
+7b528 4 92 234
+FUNC 7b52c 14 0 std::logic_error::~logic_error
+7b52c 14 76 182
+FUNC 7b540 24 0 std::logic_error::~logic_error
+7b540 c 76 182
+7b54c 8 76 182
+7b554 4 76 182
+7b558 8 76 182
+7b560 4 76 182
+FUNC 7b564 14 0 std::length_error::~length_error
+7b564 14 80 182
+FUNC 7b578 24 0 std::length_error::~length_error
+7b578 c 80 182
+7b584 8 80 182
+7b58c 4 80 182
+7b590 8 80 182
+7b598 4 80 182
+FUNC 7b59c 14 0 std::out_of_range::~out_of_range
+7b59c 14 81 182
+FUNC 7b5b0 24 0 std::out_of_range::~out_of_range
+7b5b0 c 81 182
+7b5bc 8 81 182
+7b5c4 4 81 182
+7b5c8 8 81 182
+7b5d0 4 81 182
+FUNC 7b5d4 18 0 std::allocator<char>::deallocate
+7b5d4 4 319 202
+7b5d8 8 161 202
+7b5e0 4 161 202
+7b5e4 4 135 223
+7b5e8 4 325 202
+FUNC 7b5ec a0 0 std::__Named_exception::__Named_exception
+7b5ec 10 19 234
+7b5fc 1c 19 234
+7b618 8 20 234
+7b620 4 20 234
+7b624 4 21 234
+7b628 4 20 234
+7b62c 4 21 234
+7b630 c 32 234
+7b63c c 35 234
+7b648 8 36 234
+7b650 10 40 234
+7b660 c 22 234
+7b66c 4 23 234
+7b670 8 28 234
+7b678 14 25 234
+FUNC 7b68c c4 0 std::__stl_throw_out_of_range
+7b68c 10 70 232
+7b69c 4 70 232
+7b6a0 10 70 232
+7b6b0 10 70 232
+7b6c0 c 34 233
+7b6cc 4 74 233
+7b6d0 4 64 239
+7b6d4 4 96 239
+7b6d8 c 74 233
+7b6e4 8 96 239
+7b6ec c 97 239
+7b6f8 1c 70 232
+7b714 10 70 232
+7b724 8 64 239
+7b72c c 96 239
+7b738 18 97 239
+FUNC 7b750 c4 0 std::__stl_throw_length_error
+7b750 10 73 232
+7b760 4 73 232
+7b764 10 73 232
+7b774 10 73 232
+7b784 c 34 233
+7b790 4 66 233
+7b794 4 64 239
+7b798 4 96 239
+7b79c c 66 233
+7b7a8 8 96 239
+7b7b0 c 97 239
+7b7bc 1c 73 232
+7b7d8 10 73 232
+7b7e8 8 64 239
+7b7f0 c 96 239
+7b7fc 18 97 239
+FUNC 7b814 18 0 std::_Filebuf_base::_Filebuf_base
+7b814 14 128 181
+7b828 4 129 181
+FUNC 7b82c 28 0 std::_Filebuf_base::_S_initialize
+7b82c 4 132 181
+7b830 4 144 181
+7b834 4 132 181
+7b838 14 144 181
+7b84c 8 146 181
+FUNC 7b854 60 0 std::_Filebuf_base::_M_file_size
+7b854 c 151 181
+7b860 10 114 181
+7b870 4 111 181
+7b874 4 114 181
+7b878 10 114 181
+7b888 10 153 181
+7b898 4 115 181
+7b89c 4 153 181
+7b8a0 8 115 181
+7b8a8 c 153 181
+FUNC 7b8b4 140 0 std::_Filebuf_base::_M_open
+7b8b4 18 157 181
+7b8cc 4 157 181
+7b8d0 8 160 181
+7b8d8 10 166 181
+7b8e8 4 190 181
+7b8ec 10 212 181
+7b8fc 18 166 181
+7b914 4 169 181
+7b918 c 193 181
+7b924 4 195 181
+7b928 4 198 181
+7b92c 4 200 181
+7b930 4 198 181
+7b934 4 200 181
+7b938 4 204 181
+7b93c 4 205 181
+7b940 4 206 181
+7b944 c 106 181
+7b950 4 106 181
+7b954 10 106 181
+7b964 8 209 181
+7b96c 8 211 181
+7b974 10 212 181
+7b984 8 187 181
+7b98c 4 176 181
+7b990 8 177 181
+7b998 8 173 181
+7b9a0 8 183 181
+7b9a8 8 180 181
+7b9b0 c 200 181
+7b9bc c 200 181
+7b9c8 4 204 181
+7b9cc 4 205 181
+7b9d0 4 206 181
+7b9d4 c 208 181
+7b9e0 4 201 181
+7b9e4 4 204 181
+7b9e8 4 205 181
+7b9ec 8 206 181
+FUNC 7b9f4 8 0 std::_Filebuf_base::_M_open
+7b9f4 8 221 181
+FUNC 7b9fc d4 0 std::_Filebuf_base::_M_open
+7b9fc 10 228 181
+7ba0c 4 229 181
+7ba10 8 229 181
+7ba18 10 229 181
+7ba28 c 232 181
+7ba34 8 234 181
+7ba3c c 82 181
+7ba48 4 94 181
+7ba4c 8 95 181
+7ba54 4 238 181
+7ba58 4 95 181
+7ba5c 4 240 181
+7ba60 4 237 181
+7ba64 4 106 181
+7ba68 4 240 181
+7ba6c 4 106 181
+7ba70 4 241 181
+7ba74 4 106 181
+7ba78 8 106 181
+7ba80 4 242 181
+7ba84 4 243 181
+7ba88 10 244 181
+7ba98 4 230 181
+7ba9c 10 244 181
+7baac 24 106 181
+FUNC 7bad0 58 0 std::_Filebuf_base::_M_close
+7bad0 4 247 181
+7bad4 4 249 181
+7bad8 8 247 181
+7bae0 c 248 181
+7baec 4 251 181
+7baf0 4 251 181
+7baf4 4 251 181
+7baf8 8 253 181
+7bb00 4 254 181
+7bb04 10 256 181
+7bb14 14 251 181
+FUNC 7bb28 8 0 std::_Filebuf_base::_M_read
+7bb28 8 262 181
+FUNC 7bb30 68 0 std::_Filebuf_base::_M_write
+7bb30 10 268 181
+7bb40 10 268 181
+7bb50 10 276 181
+7bb60 10 270 181
+7bb70 4 272 181
+7bb74 4 278 181
+7bb78 4 276 181
+7bb7c 4 277 181
+7bb80 4 272 181
+7bb84 4 273 181
+7bb88 10 283 181
+FUNC 7bb98 90 0 std::_Filebuf_base::_M_seek
+7bb98 4 287 181
+7bb9c 4 290 181
+7bba0 8 287 181
+7bba8 4 287 181
+7bbac 14 290 181
+7bbc0 10 309 181
+7bbd0 4 294 181
+7bbd4 4 292 181
+7bbd8 4 308 181
+7bbdc 8 309 181
+7bbe4 8 308 181
+7bbec 14 300 181
+7bc00 4 308 181
+7bc04 4 302 181
+7bc08 8 309 181
+7bc10 8 308 181
+7bc18 4 297 181
+7bc1c 8 309 181
+7bc24 4 308 181
+FUNC 7bc28 c 0 std::_Filebuf_base::_M_unmap
+7bc28 c 340 181
+FUNC 7bc34 8c 0 std::_Filebuf_base::_M_mmap
+7bc34 4 317 181
+7bc38 4 320 181
+7bc3c 14 317 181
+7bc50 4 320 181
+7bc54 4 317 181
+7bc58 14 320 181
+7bc6c 4 321 181
+7bc70 4 320 181
+7bc74 4 321 181
+7bc78 14 322 181
+7bc8c 14 334 181
+7bca0 8 327 181
+7bca8 c 323 181
+7bcb4 4 324 181
+7bcb8 8 323 181
+FUNC 7bcc0 424 0 std::_Underflow<char, std::char_traits<char> >::_M_doit
+7bcc0 14 38 183
+7bcd4 4 38 183
+7bcd8 8 42 183
+7bce0 8 46 183
+7bce8 8 220 209
+7bcf0 8 93 236
+7bcf8 4 48 183
+7bcfc 4 94 236
+7bd00 4 95 236
+7bd04 4 221 209
+7bd08 4 48 183
+7bd0c 4 223 247
+7bd10 14 93 183
+7bd24 4 430 208
+7bd28 4 44 183
+7bd2c 4 430 208
+7bd30 8 430 208
+7bd38 8 430 208
+7bd40 c 432 208
+7bd4c 8 438 208
+7bd54 4 440 208
+7bd58 4 435 208
+7bd5c 4 436 208
+7bd60 4 440 208
+7bd64 c 59 183
+7bd70 8 502 208
+7bd78 8 498 208
+7bd80 8 502 208
+7bd88 8 509 208
+7bd90 4 537 208
+7bd94 8 213 204
+7bd9c 14 515 208
+7bdb0 4 516 208
+7bdb4 4 522 208
+7bdb8 4 525 208
+7bdbc 8 522 208
+7bdc4 8 525 208
+7bdcc 4 537 208
+7bdd0 24 213 204
+7bdf4 8 547 208
+7bdfc 8 549 208
+7be04 10 549 208
+7be14 10 549 208
+7be24 8 549 208
+7be2c 4 555 208
+7be30 4 93 236
+7be34 4 94 236
+7be38 4 95 236
+7be3c 8 223 247
+7be44 8 58 183
+7be4c 4 61 183
+7be50 4 62 183
+7be54 4 61 183
+7be58 c 62 183
+7be64 14 66 183
+7be78 8 67 183
+7be80 8 68 183
+7be88 4 67 183
+7be8c 8 68 183
+7be94 10 68 183
+7bea4 c 128 209
+7beb0 8 69 183
+7beb8 4 72 183
+7bebc 4 70 183
+7bec0 8 74 183
+7bec8 4 75 183
+7becc 10 77 183
+7bedc 8 80 183
+7bee4 4 93 236
+7bee8 4 80 183
+7beec 4 94 236
+7bef0 4 95 236
+7bef4 4 223 247
+7bef8 4 81 183
+7befc 4 224 201
+7bf00 4 504 208
+7bf04 4 224 201
+7bf08 c 504 208
+7bf14 18 549 208
+7bf2c 8 119 208
+7bf34 c 120 208
+7bf40 4 121 208
+7bf44 4 122 208
+7bf48 4 124 208
+7bf4c 4 488 208
+7bf50 4 487 208
+7bf54 4 553 208
+7bf58 4 488 208
+7bf5c 4 93 236
+7bf60 4 94 236
+7bf64 4 95 236
+7bf68 14 93 183
+7bf7c 14 549 208
+7bf90 c 549 208
+7bf9c c 563 208
+7bfa8 4 87 183
+7bfac 8 88 183
+7bfb4 18 549 208
+7bfcc 4 93 236
+7bfd0 4 519 208
+7bfd4 4 94 236
+7bfd8 4 95 236
+7bfdc 14 93 183
+7bff0 8 75 183
+7bff8 8 224 201
+7c000 8 224 201
+7c008 4 328 209
+7c00c 8 327 209
+7c014 4 93 236
+7c018 4 94 236
+7c01c 8 95 236
+7c024 8 84 183
+7c02c c 128 209
+7c038 c 680 208
+7c044 c 644 208
+7c050 4 645 208
+7c054 4 655 208
+7c058 8 647 208
+7c060 4 227 204
+7c064 4 655 208
+7c068 4 227 204
+7c06c 4 655 208
+7c070 8 227 204
+7c078 c 655 208
+7c084 c 661 208
+7c090 4 664 208
+7c094 4 669 208
+7c098 c 670 208
+7c0a4 c 669 208
+7c0b0 8 686 208
+7c0b8 c 687 208
+7c0c4 8 688 208
+7c0cc 4 689 208
+7c0d0 4 690 208
+7c0d4 4 691 208
+7c0d8 4 692 208
+7c0dc 8 44 183
+FUNC 7c0e4 14 0 std::ios_base::failure::~failure
+7c0e4 14 41 184
+FUNC 7c0f8 24 0 std::ios_base::failure::~failure
+7c0f8 c 41 184
+7c104 8 41 184
+7c10c 4 41 184
+7c110 8 41 184
+7c118 4 41 184
+FUNC 7c11c 18 0 std::allocator<char>::deallocate
+7c11c 4 319 202
+7c120 8 161 202
+7c128 4 161 202
+7c12c 4 135 223
+7c130 4 325 202
+FUNC 7c134 30 0 std::ios_base::failure::failure
+7c134 c 37 184
+7c140 4 37 184
+7c144 14 38 184
+7c158 c 39 184
+FUNC 7c164 60 0 std::ios_base::_M_invoke_callbacks
+7c164 c 199 184
+7c170 4 200 184
+7c174 4 199 184
+7c178 14 200 184
+7c18c 4 201 184
+7c190 8 203 184
+7c198 4 201 184
+7c19c 10 203 184
+7c1ac 8 200 184
+7c1b4 10 205 184
+FUNC 7c1c4 d0 0 std::ios_base::imbue
+7c1c4 c 124 184
+7c1d0 4 125 184
+7c1d4 8 124 184
+7c1dc 8 124 184
+7c1e4 8 125 184
+7c1ec 4 124 184
+7c1f0 c 125 184
+7c1fc 10 126 184
+7c20c c 127 184
+7c218 c 128 184
+7c224 c 129 184
+7c230 8 129 184
+7c238 18 135 184
+7c250 c 132 184
+7c25c c 133 184
+7c268 1c 135 184
+7c284 10 129 184
+FUNC 7c294 64 0 std::ios_base::~ios_base
+7c294 4 299 184
+7c298 4 300 184
+7c29c 10 299 184
+7c2ac c 299 184
+7c2b8 4 300 184
+7c2bc 8 301 184
+7c2c4 8 302 184
+7c2cc 8 303 184
+7c2d4 4 299 184
+7c2d8 8 304 184
+7c2e0 8 299 184
+7c2e8 10 299 184
+FUNC 7c2f8 24 0 std::ios_base::~ios_base
+7c2f8 c 299 184
+7c304 4 299 184
+7c308 4 304 184
+7c30c 4 304 184
+7c310 8 304 184
+7c318 4 304 184
+FUNC 7c31c c0 0 std::ios_base::_M_throw_failure
+7c31c 4 209 184
+7c320 4 227 184
+7c324 c 209 184
+7c330 4 227 184
+7c334 4 106 244
+7c338 4 481 202
+7c33c 4 106 244
+7c340 4 107 244
+7c344 4 380 238
+7c348 4 227 184
+7c34c 4 227 184
+7c350 4 481 202
+7c354 18 106 244
+7c36c 4 101 206
+7c370 4 227 184
+7c374 4 64 239
+7c378 c 96 239
+7c384 c 97 239
+7c390 18 227 184
+7c3a8 8 64 239
+7c3b0 c 96 239
+7c3bc 10 97 239
+7c3cc 10 227 184
+FUNC 7c3dc 6c 0 std::ios_base::ios_base
+7c3dc 4 287 184
+7c3e0 4 295 184
+7c3e4 8 287 184
+7c3ec 4 287 184
+7c3f0 4c 295 184
+7c43c c 296 184
+FUNC 7c448 4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::imbue
+7c448 4 180 235
+FUNC 7c44c 4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::setbuf
+7c44c 4 200 235
+FUNC 7c450 c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::seekoff
+7c450 c 195 235
+FUNC 7c45c c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::seekpos
+7c45c c 189 235
+FUNC 7c468 8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::sync
+7c468 8 184 235
+FUNC 7c470 8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::showmanyc
+7c470 8 176 235
+FUNC 7c478 8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::underflow
+7c478 8 171 235
+FUNC 7c480 8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::pbackfail
+7c480 8 152 235
+FUNC 7c488 8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::overflow
+7c488 8 158 235
+FUNC 7c490 10 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::~basic_streambuf
+7c490 10 41 235
+FUNC 7c4a0 30 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::~basic_streambuf
+7c4a0 4 40 235
+7c4a4 4 41 235
+7c4a8 8 40 235
+7c4b0 4 41 235
+7c4b4 4 40 235
+7c4b8 8 41 235
+7c4c0 4 41 235
+7c4c4 8 41 235
+7c4cc 4 41 235
+FUNC 7c4d0 10 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::~basic_ios
+7c4d0 10 59 211
+FUNC 7c4e0 30 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::~basic_ios
+7c4e0 10 59 211
+7c4f0 10 59 211
+7c500 4 59 211
+7c504 8 59 211
+7c50c 4 59 211
+FUNC 7c510 20 0 std::basic_istream<wchar_t, std::char_traits<wchar_t> >::~basic_istream
+7c510 4 90 214
+7c514 c 90 214
+7c520 10 59 211
+FUNC 7c540 3c 0 std::basic_istream<wchar_t, std::char_traits<wchar_t> >::~basic_istream
+7c540 4 90 214
+7c544 4 90 214
+7c548 8 90 214
+7c550 4 90 214
+7c554 8 90 214
+7c55c 10 59 211
+7c56c 4 90 214
+7c570 8 90 214
+7c578 4 90 214
+FUNC 7c58c 20 0 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::~basic_ostream
+7c58c 4 43 229
+7c590 c 44 229
+7c59c 10 59 211
+FUNC 7c5bc 3c 0 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::~basic_ostream
+7c5bc 4 43 229
+7c5c0 4 44 229
+7c5c4 8 43 229
+7c5cc 4 43 229
+7c5d0 8 44 229
+7c5d8 10 59 211
+7c5e8 4 44 229
+7c5ec 8 44 229
+7c5f4 4 44 229
+FUNC 7c608 c4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::_M_xsputnc
+7c608 4 112 235
+7c60c 4 117 235
+7c610 10 112 235
+7c620 20 117 235
+7c640 4 261 247
+7c644 4 122 235
+7c648 4 261 247
+7c64c 4 123 235
+7c650 4 117 235
+7c654 8 123 235
+7c65c 4 117 235
+7c660 4 118 235
+7c664 4 120 235
+7c668 4 118 235
+7c66c 8 261 247
+7c674 4 118 235
+7c678 8 120 235
+7c680 4 118 235
+7c684 4 127 235
+7c688 10 127 235
+7c698 8 126 235
+7c6a0 4 128 235
+7c6a4 8 117 235
+7c6ac 18 133 235
+7c6c4 8 114 235
+FUNC 7c6cc c8 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::xsputn
+7c6cc 4 84 235
+7c6d0 4 89 235
+7c6d4 10 84 235
+7c6e4 8 84 235
+7c6ec 4 89 235
+7c6f0 4 84 235
+7c6f4 10 89 235
+7c704 4 253 247
+7c708 4 94 235
+7c70c 4 95 235
+7c710 4 253 247
+7c714 4 95 235
+7c718 4 96 235
+7c71c 4 89 235
+7c720 8 96 235
+7c728 4 89 235
+7c72c 4 90 235
+7c730 4 92 235
+7c734 4 90 235
+7c738 8 253 247
+7c740 4 90 235
+7c744 8 92 235
+7c74c 4 90 235
+7c750 4 100 235
+7c754 8 100 235
+7c75c 4 102 235
+7c760 8 100 235
+7c768 8 99 235
+7c770 4 101 235
+7c774 8 89 235
+7c77c 18 108 235
+FUNC 7c794 38 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::sync
+7c794 4 402 208
+7c798 4 406 208
+7c79c 4 402 208
+7c7a0 8 403 208
+7c7a8 4 405 208
+7c7ac c 405 208
+7c7b8 8 405 208
+7c7c0 c 407 208
+FUNC 7c7cc dc 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_unshift
+7c7cc 14 593 208
+7c7e0 c 593 208
+7c7ec 8 322 209
+7c7f4 4 600 208
+7c7f8 4 600 208
+7c7fc 4 322 209
+7c800 4 600 208
+7c804 4 600 208
+7c808 4 322 209
+7c80c 4 600 208
+7c810 8 600 208
+7c818 8 603 208
+7c820 8 322 209
+7c828 4 596 208
+7c82c 4 605 208
+7c830 4 596 208
+7c834 4 598 208
+7c838 4 296 204
+7c83c 4 597 208
+7c840 14 296 204
+7c854 4 597 208
+7c858 c 296 204
+7c864 4 600 208
+7c868 4 322 209
+7c86c 4 600 208
+7c870 4 602 208
+7c874 18 611 208
+7c88c 4 610 208
+7c890 18 611 208
+FUNC 7c8a8 a4 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::showmanyc
+7c8a8 4 132 208
+7c8ac 4 135 208
+7c8b0 8 132 208
+7c8b8 8 134 208
+7c8c0 8 134 208
+7c8c8 8 136 208
+7c8d0 8 138 208
+7c8d8 4 144 208
+7c8dc 10 145 208
+7c8ec 18 139 208
+7c904 8 140 208
+7c90c c 141 208
+7c918 4 141 208
+7c91c 10 145 208
+7c92c 8 137 208
+7c934 4 145 208
+7c938 8 137 208
+7c940 c 145 208
+FUNC 7c94c 40 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::uflow
+7c94c 8 162 235
+7c954 4 163 235
+7c958 4 162 235
+7c95c 4 162 235
+7c960 8 163 235
+7c968 8 165 235
+7c970 10 165 235
+7c980 c 166 235
+FUNC 7c98c c4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::xsgetn
+7c98c 4 54 235
+7c990 4 58 235
+7c994 10 54 235
+7c9a4 8 54 235
+7c9ac 4 58 235
+7c9b0 4 54 235
+7c9b4 10 58 235
+7c9c4 4 253 247
+7c9c8 4 63 235
+7c9cc 4 253 247
+7c9d0 4 64 235
+7c9d4 4 65 235
+7c9d8 4 64 235
+7c9dc 4 58 235
+7c9e0 8 65 235
+7c9e8 4 58 235
+7c9ec 4 59 235
+7c9f0 4 61 235
+7c9f4 4 59 235
+7c9f8 8 253 247
+7ca00 4 59 235
+7ca04 8 61 235
+7ca0c 4 59 235
+7ca10 4 228 236
+7ca14 c 229 236
+7ca20 8 69 235
+7ca28 4 71 235
+7ca2c 4 70 235
+7ca30 8 58 235
+7ca38 18 80 235
+FUNC 7ca50 e4 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::pbackfail
+7ca50 4 157 208
+7ca54 4 162 208
+7ca58 8 161 208
+7ca60 c 199 208
+7ca6c 8 166 208
+7ca74 c 166 208
+7ca80 8 166 208
+7ca88 8 166 208
+7ca90 4 178 208
+7ca94 4 177 208
+7ca98 4 178 208
+7ca9c c 180 208
+7caa8 4 181 208
+7caac 4 95 236
+7cab0 4 181 208
+7cab4 4 93 236
+7cab8 8 94 236
+7cac0 8 91 236
+7cac8 4 199 208
+7cacc 8 91 236
+7cad4 8 197 208
+7cadc 4 199 208
+7cae0 c 91 236
+7caec 4 199 208
+7caf0 4 189 208
+7caf4 4 188 208
+7caf8 4 187 208
+7cafc 4 190 208
+7cb00 4 93 236
+7cb04 4 94 236
+7cb08 4 190 208
+7cb0c 4 186 208
+7cb10 4 188 208
+7cb14 4 95 236
+7cb18 8 190 208
+7cb20 8 175 208
+7cb28 4 199 208
+7cb2c 4 162 208
+7cb30 4 199 208
+FUNC 7cb34 544 0 std::ios_base::_S_uninitialize
+7cb34 c 248 185
+7cb40 4 256 185
+7cb44 4 258 185
+7cb48 8 248 185
+7cb50 4 256 185
+7cb54 4 257 185
+7cb58 4 188 212
+7cb5c 4 259 185
+7cb60 c 256 185
+7cb6c 8 190 212
+7cb74 18 257 185
+7cb8c 4 92 211
+7cb90 4 190 212
+7cb94 8 92 211
+7cb9c 4 188 212
+7cba0 14 258 185
+7cbb4 4 92 211
+7cbb8 4 92 211
+7cbbc 4 190 212
+7cbc0 8 92 211
+7cbc8 4 188 212
+7cbcc c 259 185
+7cbd8 4 50 210
+7cbdc 4 259 185
+7cbe0 8 188 212
+7cbe8 4 92 211
+7cbec 4 92 211
+7cbf0 4 190 212
+7cbf4 8 92 211
+7cbfc 4 188 212
+7cc00 4 261 185
+7cc04 4 261 185
+7cc08 1c 261 185
+7cc24 4 188 212
+7cc28 4 50 210
+7cc2c 4 192 212
+7cc30 4 262 185
+7cc34 4 262 185
+7cc38 8 262 185
+7cc40 4 263 185
+7cc44 4 188 212
+7cc48 c 263 185
+7cc54 4 192 212
+7cc58 4 49 210
+7cc5c 4 188 212
+7cc60 4 50 210
+7cc64 4 192 212
+7cc68 4 263 185
+7cc6c 4 263 185
+7cc70 8 263 185
+7cc78 4 264 185
+7cc7c 4 188 212
+7cc80 c 264 185
+7cc8c 4 192 212
+7cc90 4 49 210
+7cc94 4 188 212
+7cc98 4 50 210
+7cc9c 4 192 212
+7cca0 4 264 185
+7cca4 4 264 185
+7cca8 8 264 185
+7ccb0 14 57 206
+7ccc4 c 59 211
+7ccd0 c 90 214
+7ccdc 10 59 211
+7ccec 18 57 206
+7cd04 8 59 211
+7cd0c c 44 229
+7cd18 10 59 211
+7cd28 10 57 206
+7cd38 c 59 211
+7cd44 c 44 229
+7cd50 10 59 211
+7cd60 10 57 206
+7cd70 c 59 211
+7cd7c c 44 229
+7cd88 10 59 211
+7cd98 4 278 185
+7cd9c 4 279 185
+7cda0 4 188 212
+7cda4 4 280 185
+7cda8 4 281 185
+7cdac 10 278 185
+7cdbc 8 190 212
+7cdc4 18 279 185
+7cddc 4 92 211
+7cde0 4 190 212
+7cde4 8 92 211
+7cdec 4 188 212
+7cdf0 14 280 185
+7ce04 4 92 211
+7ce08 4 92 211
+7ce0c 4 190 212
+7ce10 8 92 211
+7ce18 4 188 212
+7ce1c c 281 185
+7ce28 4 50 210
+7ce2c 4 281 185
+7ce30 8 188 212
+7ce38 4 92 211
+7ce3c 4 92 211
+7ce40 4 190 212
+7ce44 8 92 211
+7ce4c 4 188 212
+7ce50 4 283 185
+7ce54 4 283 185
+7ce58 1c 283 185
+7ce74 4 188 212
+7ce78 4 50 210
+7ce7c 4 192 212
+7ce80 4 284 185
+7ce84 4 284 185
+7ce88 8 284 185
+7ce90 4 285 185
+7ce94 4 188 212
+7ce98 c 285 185
+7cea4 4 192 212
+7cea8 4 49 210
+7ceac 4 188 212
+7ceb0 4 50 210
+7ceb4 4 192 212
+7ceb8 4 285 185
+7cebc 4 285 185
+7cec0 8 285 185
+7cec8 4 286 185
+7cecc 4 188 212
+7ced0 c 286 185
+7cedc 4 192 212
+7cee0 4 49 210
+7cee4 4 188 212
+7cee8 4 50 210
+7ceec 4 192 212
+7cef0 4 286 185
+7cef4 4 286 185
+7cef8 8 286 185
+7cf00 14 57 206
+7cf14 c 59 211
+7cf20 c 90 214
+7cf2c 10 59 211
+7cf3c 18 57 206
+7cf54 8 59 211
+7cf5c c 44 229
+7cf68 10 59 211
+7cf78 10 57 206
+7cf88 c 59 211
+7cf94 c 44 229
+7cfa0 10 59 211
+7cfb0 10 57 206
+7cfc0 c 59 211
+7cfcc c 44 229
+7cfd8 c 59 211
+7cfe4 10 293 185
+7cff4 4 59 211
+7cff8 4 50 210
+7cffc c 188 212
+7d008 4 50 210
+7d00c c 188 212
+7d018 24 57 206
+7d03c 14 293 185
+7d050 18 57 206
+7d068 10 193 212
+FUNC 7d078 34 0 std::ios_base::Init::~Init
+7d078 4 152 185
+7d07c 8 151 185
+7d084 14 152 185
+7d098 8 156 185
+7d0a0 4 153 185
+7d0a4 4 156 185
+7d0a8 4 154 185
+FUNC 7d0ac 34 0 std::auto_ptr<std::basic_streambuf<char, std::char_traits<char> > >::~auto_ptr
+7d0ac 8 107 203
+7d0b4 4 68 203
+7d0b8 4 107 203
+7d0bc 4 107 203
+7d0c0 8 107 203
+7d0c8 14 107 203
+7d0dc 4 107 203
+FUNC 7d0e0 100 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_setup_codecvt
+7d0e0 c 735 208
+7d0ec 4 347 219
+7d0f0 8 735 208
+7d0f8 8 735 208
+7d100 10 347 219
+7d110 4 736 208
+7d114 4 747 208
+7d118 4 746 208
+7d11c 8 747 208
+7d124 8 748 208
+7d12c 4 749 208
+7d130 10 754 208
+7d140 8 351 219
+7d148 c 754 208
+7d154 10 351 219
+7d164 4 313 204
+7d168 4 737 208
+7d16c 8 313 204
+7d174 4 141 201
+7d178 4 741 208
+7d17c 4 313 204
+7d180 4 141 201
+7d184 4 740 208
+7d188 10 324 204
+7d198 4 741 208
+7d19c 4 743 208
+7d1a0 c 742 208
+7d1ac 10 315 204
+7d1bc 4 743 208
+7d1c0 1c 754 208
+7d1dc 4 346 219
+FUNC 7d1e0 1c 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::imbue
+7d1e0 8 414 208
+7d1e8 8 414 208
+7d1f0 4 417 208
+7d1f4 8 415 208
+FUNC 7d1fc 194 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::init
+7d1fc 18 97 210
+7d214 4 50 210
+7d218 4 97 210
+7d21c 4 92 211
+7d220 4 188 212
+7d224 4 100 210
+7d228 4 70 210
+7d22c 8 100 210
+7d234 10 70 210
+7d244 8 72 210
+7d24c 14 46 235
+7d260 14 47 235
+7d274 c 48 235
+7d280 8 73 210
+7d288 10 351 219
+7d298 4 76 210
+7d29c 8 100 210
+7d2a4 8 100 210
+7d2ac 8 68 211
+7d2b4 8 103 210
+7d2bc 4 132 212
+7d2c0 4 190 212
+7d2c4 4 206 207
+7d2c8 4 188 212
+7d2cc 8 112 212
+7d2d4 8 206 207
+7d2dc 4 132 212
+7d2e0 4 139 212
+7d2e4 4 206 207
+7d2e8 4 84 211
+7d2ec 14 110 210
+7d300 4 192 212
+7d304 8 188 212
+7d30c 4 192 212
+7d310 4 193 212
+7d314 4 78 210
+7d318 14 79 210
+7d32c c 79 210
+7d338 8 79 210
+7d340 4 187 212
+7d344 4 117 210
+7d348 8 187 212
+7d350 4 117 210
+7d354 c 78 210
+7d360 20 100 210
+7d380 8 118 210
+7d388 8 78 210
+FUNC 7d390 100 0 std::basic_filebuf<char, std::char_traits<char> >::_M_setup_codecvt
+7d390 c 735 208
+7d39c 4 347 219
+7d3a0 8 735 208
+7d3a8 8 735 208
+7d3b0 10 347 219
+7d3c0 4 736 208
+7d3c4 4 747 208
+7d3c8 4 746 208
+7d3cc 8 747 208
+7d3d4 8 748 208
+7d3dc 4 749 208
+7d3e0 10 754 208
+7d3f0 8 351 219
+7d3f8 c 754 208
+7d404 10 351 219
+7d414 4 216 204
+7d418 4 737 208
+7d41c 8 216 204
+7d424 4 141 201
+7d428 4 741 208
+7d42c 4 216 204
+7d430 4 141 201
+7d434 4 740 208
+7d438 10 227 204
+7d448 4 741 208
+7d44c 4 743 208
+7d450 c 742 208
+7d45c 10 218 204
+7d46c 4 743 208
+7d470 1c 754 208
+7d48c 4 346 219
+FUNC 7d490 dc 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_allocate_buffers
+7d490 10 630 208
+7d4a0 8 630 208
+7d4a8 4 637 208
+7d4ac 4 650 208
+7d4b0 4 651 208
+7d4b4 8 655 208
+7d4bc 8 324 204
+7d4c4 4 655 208
+7d4c8 8 324 204
+7d4d0 c 655 208
+7d4dc c 661 208
+7d4e8 4 664 208
+7d4ec 4 669 208
+7d4f0 4 670 208
+7d4f4 4 671 208
+7d4f8 4 670 208
+7d4fc 8 669 208
+7d504 10 672 208
+7d514 8 686 208
+7d51c c 687 208
+7d528 4 688 208
+7d52c 4 689 208
+7d530 4 690 208
+7d534 4 666 208
+7d538 4 691 208
+7d53c 4 692 208
+7d540 10 672 208
+7d550 c 644 208
+7d55c 4 645 208
+7d560 c 647 208
+FUNC 7d56c 68 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::setbuf
+7d56c c 268 208
+7d578 4 268 208
+7d57c 8 269 208
+7d584 8 269 208
+7d58c 8 269 208
+7d594 10 277 208
+7d5a4 8 271 208
+7d5ac 10 272 208
+7d5bc c 273 208
+7d5c8 c 274 208
+FUNC 7d5d4 2b8 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::underflow
+7d5d4 14 75 208
+7d5e8 4 75 208
+7d5ec 8 408 209
+7d5f4 8 412 209
+7d5fc 8 220 209
+7d604 8 93 236
+7d60c 4 414 209
+7d610 4 94 236
+7d614 4 95 236
+7d618 4 221 209
+7d61c 8 414 209
+7d624 1c 77 208
+7d640 4 498 208
+7d644 4 502 208
+7d648 8 498 208
+7d650 4 502 208
+7d654 c 224 201
+7d660 c 504 208
+7d66c 4 537 208
+7d670 8 310 204
+7d678 14 515 208
+7d68c 4 516 208
+7d690 4 522 208
+7d694 4 525 208
+7d698 8 522 208
+7d6a0 8 525 208
+7d6a8 4 537 208
+7d6ac 24 310 204
+7d6d0 8 547 208
+7d6d8 8 549 208
+7d6e0 10 549 208
+7d6f0 10 549 208
+7d700 8 549 208
+7d708 4 555 208
+7d70c 4 93 236
+7d710 4 94 236
+7d714 c 95 236
+7d720 1c 549 208
+7d73c 8 119 208
+7d744 c 120 208
+7d750 4 121 208
+7d754 4 122 208
+7d758 4 124 208
+7d75c 4 488 208
+7d760 4 487 208
+7d764 4 553 208
+7d768 4 488 208
+7d76c 4 93 236
+7d770 4 94 236
+7d774 4 95 236
+7d778 14 77 208
+7d78c 14 549 208
+7d7a0 c 549 208
+7d7ac c 563 208
+7d7b8 8 430 208
+7d7c0 8 430 208
+7d7c8 8 430 208
+7d7d0 4 410 209
+7d7d4 14 77 208
+7d7e8 8 432 208
+7d7f0 4 438 208
+7d7f4 4 440 208
+7d7f8 8 435 208
+7d800 4 438 208
+7d804 4 440 208
+7d808 8 509 208
+7d810 18 549 208
+7d828 4 93 236
+7d82c 4 519 208
+7d830 4 94 236
+7d834 4 95 236
+7d838 14 77 208
+7d84c c 224 201
+7d858 8 224 201
+7d860 c 128 209
+7d86c 8 680 208
+7d874 c 681 208
+7d880 4 432 208
+7d884 8 410 209
+FUNC 7d88c 2b4 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::overflow
+7d88c 18 208 208
+7d8a4 8 208 208
+7d8ac 8 210 208
+7d8b4 4 216 208
+7d8b8 c 219 208
+7d8c4 4 216 208
+7d8c8 4 117 236
+7d8cc 8 118 236
+7d8d4 4 119 236
+7d8d8 4 219 208
+7d8dc 8 220 208
+7d8e4 c 223 208
+7d8f0 8 228 208
+7d8f8 4 225 208
+7d8fc 14 290 204
+7d910 4 224 208
+7d914 4 290 204
+7d918 4 225 208
+7d91c c 290 204
+7d928 4 322 209
+7d92c c 290 204
+7d938 8 240 208
+7d940 4 240 208
+7d944 10 240 208
+7d954 8 322 209
+7d95c 10 290 204
+7d96c 4 246 208
+7d970 4 247 208
+7d974 4 223 208
+7d978 4 290 204
+7d97c 4 223 208
+7d980 4 228 208
+7d984 4 225 208
+7d988 10 290 204
+7d998 4 225 208
+7d99c 4 224 208
+7d9a0 c 290 204
+7d9ac 4 240 208
+7d9b0 4 322 209
+7d9b4 8 240 208
+7d9bc c 240 208
+7d9c8 24 240 208
+7d9ec 8 322 209
+7d9f4 10 290 204
+7da04 4 246 208
+7da08 4 582 208
+7da0c 4 580 208
+7da10 4 581 208
+7da14 4 232 208
+7da18 4 582 208
+7da1c 4 117 236
+7da20 4 118 236
+7da24 4 119 236
+7da28 18 256 208
+7da40 c 453 208
+7da4c 4 453 208
+7da50 8 453 208
+7da58 8 453 208
+7da60 8 456 208
+7da68 4 462 208
+7da6c 10 463 208
+7da7c 10 463 208
+7da8c 4 216 208
+7da90 4 466 208
+7da94 4 117 236
+7da98 4 219 208
+7da9c 4 216 208
+7daa0 4 466 208
+7daa4 4 118 236
+7daa8 4 119 236
+7daac c 219 208
+7dab8 4 212 208
+7dabc 18 256 208
+7dad4 c 223 208
+7dae0 8 182 247
+7dae8 8 182 247
+7daf0 4 232 208
+7daf4 18 256 208
+7db0c 4 681 208
+7db10 c 128 209
+7db1c 8 680 208
+7db24 c 681 208
+7db30 10 456 208
+FUNC 7db40 164 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::~basic_filebuf
+7db40 4 67 208
+7db44 4 70 208
+7db48 8 67 208
+7db50 8 70 208
+7db58 4 84 208
+7db5c 8 67 208
+7db64 4 84 208
+7db68 8 85 208
+7db70 8 93 208
+7db78 10 97 208
+7db88 10 97 208
+7db98 4 686 208
+7db9c 8 97 208
+7dba4 8 98 208
+7dbac 4 100 208
+7dbb0 4 101 208
+7dbb4 4 93 236
+7dbb8 4 94 236
+7dbbc 4 95 236
+7dbc0 4 117 236
+7dbc4 4 118 236
+7dbc8 4 119 236
+7dbcc c 106 208
+7dbd8 10 108 208
+7dbe8 4 686 208
+7dbec 8 687 208
+7dbf4 8 688 208
+7dbfc 4 689 208
+7dc00 4 41 235
+7dc04 4 690 208
+7dc08 4 691 208
+7dc0c 4 41 235
+7dc10 4 692 208
+7dc14 8 41 235
+7dc1c 8 70 208
+7dc24 4 41 235
+7dc28 8 89 208
+7dc30 4 119 208
+7dc34 4 120 208
+7dc38 4 119 208
+7dc3c c 120 208
+7dc48 4 121 208
+7dc4c 4 122 208
+7dc50 8 124 208
+7dc58 8 86 208
+7dc60 8 85 208
+7dc68 8 594 208
+7dc70 14 594 208
+7dc84 20 41 235
+FUNC 7dca4 24 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::~basic_filebuf
+7dca4 c 67 208
+7dcb0 4 67 208
+7dcb4 4 70 208
+7dcb8 4 70 208
+7dcbc 8 70 208
+7dcc4 4 70 208
+FUNC 7dcc8 64 0 std::auto_ptr<std::basic_filebuf<wchar_t, std::char_traits<wchar_t> > >::~auto_ptr
+7dcc8 c 107 203
+7dcd4 4 68 203
+7dcd8 4 107 203
+7dcdc 14 107 203
+7dcf0 c 70 208
+7dcfc 4 70 208
+7dd00 8 107 203
+7dd08 4 70 208
+7dd0c 4 107 203
+7dd10 18 107 203
+7dd28 4 107 203
+FUNC 7dd2c 230 0 std::_Stl_create_wfilebuf
+7dd2c 10 180 185
+7dd3c 4 181 185
+7dd40 c 180 185
+7dd4c 4 180 185
+7dd50 8 181 185
+7dd58 8 34 235
+7dd60 4 61 208
+7dd64 28 34 235
+7dd8c c 61 208
+7dd98 8 61 208
+7dda0 4 63 208
+7dda4 8 61 208
+7ddac 4 61 208
+7ddb0 4 61 208
+7ddb4 4 63 208
+7ddb8 28 61 208
+7dde0 10 61 208
+7ddf0 10 61 208
+7de00 10 61 208
+7de10 10 61 208
+7de20 20 61 208
+7de40 4 63 208
+7de44 10 63 208
+7de54 8 63 208
+7de5c 4 28 203
+7de60 10 194 209
+7de70 4 68 203
+7de74 8 184 185
+7de7c 1c 188 185
+7de98 14 107 203
+7deac c 70 208
+7deb8 4 70 208
+7debc 4 187 185
+7dec0 4 70 208
+7dec4 1c 188 185
+7dee0 4 107 203
+7dee4 4 187 185
+7dee8 2c 188 185
+7df14 10 187 185
+7df24 8 107 203
+7df2c 8 63 208
+7df34 10 41 235
+7df44 18 181 185
+FUNC 7df5c 22c 0 std::_Stl_create_filebuf<__sFILE*>
+7df5c 10 168 185
+7df6c 4 169 185
+7df70 c 168 185
+7df7c 4 168 185
+7df80 8 169 185
+7df88 8 34 235
+7df90 4 61 208
+7df94 28 34 235
+7dfbc c 61 208
+7dfc8 8 61 208
+7dfd0 4 63 208
+7dfd4 8 61 208
+7dfdc 4 61 208
+7dfe0 4 61 208
+7dfe4 4 63 208
+7dfe8 28 61 208
+7e010 10 61 208
+7e020 10 61 208
+7e030 10 61 208
+7e040 10 61 208
+7e050 20 61 208
+7e070 4 63 208
+7e074 10 63 208
+7e084 8 63 208
+7e08c 10 194 209
+7e09c c 172 185
+7e0a8 18 176 185
+7e0c0 14 107 203
+7e0d4 c 70 208
+7e0e0 8 70 208
+7e0e8 4 176 185
+7e0ec 4 175 185
+7e0f0 14 176 185
+7e104 4 107 203
+7e108 4 175 185
+7e10c 24 176 185
+7e130 8 107 203
+7e138 14 107 203
+7e14c c 107 203
+7e158 8 63 208
+7e160 10 41 235
+7e170 18 169 185
+FUNC 7e188 80c 0 std::ios_base::_S_initialize
+7e188 c 191 185
+7e194 4 202 185
+7e198 8 191 185
+7e1a0 4 202 185
+7e1a4 4 191 185
+7e1a8 4 28 203
+7e1ac 4 202 185
+7e1b0 c 28 203
+7e1bc 4 202 185
+7e1c0 8 203 185
+7e1c8 4 75 197
+7e1cc 4 203 185
+7e1d0 c 75 197
+7e1dc 4 68 203
+7e1e0 4 62 203
+7e1e4 c 75 197
+7e1f0 8 62 203
+7e1f8 c 62 203
+7e204 4 207 185
+7e208 4 28 203
+7e20c 8 207 185
+7e214 8 213 185
+7e21c 4 87 197
+7e220 4 213 185
+7e224 c 87 197
+7e230 4 68 203
+7e234 4 62 203
+7e238 c 87 197
+7e244 8 62 203
+7e24c c 62 203
+7e258 4 214 185
+7e25c 4 28 203
+7e260 4 214 185
+7e264 4 87 197
+7e268 4 214 185
+7e26c c 87 197
+7e278 4 68 203
+7e27c 8 87 197
+7e284 c 62 203
+7e290 c 62 203
+7e29c 4 215 185
+7e2a0 4 28 203
+7e2a4 4 215 185
+7e2a8 4 87 197
+7e2ac 4 215 185
+7e2b0 c 87 197
+7e2bc 4 68 203
+7e2c0 8 87 197
+7e2c8 c 62 203
+7e2d4 c 62 203
+7e2e0 4 28 203
+7e2e4 4 92 210
+7e2e8 4 68 203
+7e2ec 10 92 210
+7e2fc 8 87 214
+7e304 8 88 214
+7e30c 4 87 214
+7e310 8 87 214
+7e318 c 92 210
+7e324 8 87 214
+7e32c 4 88 214
+7e330 4 92 210
+7e334 4 55 203
+7e338 4 68 203
+7e33c 10 92 210
+7e34c 4 38 229
+7e350 4 38 229
+7e354 8 38 229
+7e35c 4 38 229
+7e360 4 39 229
+7e364 8 92 210
+7e36c 4 38 229
+7e370 4 92 210
+7e374 4 38 229
+7e378 4 39 229
+7e37c 4 92 210
+7e380 4 55 203
+7e384 4 68 203
+7e388 10 92 210
+7e398 4 38 229
+7e39c 4 38 229
+7e3a0 4 39 229
+7e3a4 4 38 229
+7e3a8 8 92 210
+7e3b0 4 38 229
+7e3b4 4 92 210
+7e3b8 4 38 229
+7e3bc 4 39 229
+7e3c0 4 92 210
+7e3c4 4 55 203
+7e3c8 4 68 203
+7e3cc 10 92 210
+7e3dc 4 38 229
+7e3e0 4 38 229
+7e3e4 4 39 229
+7e3e8 4 38 229
+7e3ec 8 92 210
+7e3f4 4 38 229
+7e3f8 4 92 210
+7e3fc 4 38 229
+7e400 4 39 229
+7e404 4 228 185
+7e408 4 232 185
+7e40c 4 68 211
+7e410 4 55 203
+7e414 4 228 185
+7e418 c 68 211
+7e424 10 229 185
+7e434 c 118 212
+7e440 8 232 185
+7e448 8 233 185
+7e450 4 28 203
+7e454 8 233 185
+7e45c 8 234 185
+7e464 4 28 203
+7e468 8 234 185
+7e470 8 235 185
+7e478 4 28 203
+7e47c 8 235 185
+7e484 4 92 210
+7e488 4 28 203
+7e48c 4 68 203
+7e490 10 92 210
+7e4a0 8 87 214
+7e4a8 8 88 214
+7e4b0 4 87 214
+7e4b4 8 87 214
+7e4bc c 92 210
+7e4c8 8 87 214
+7e4d0 4 88 214
+7e4d4 4 92 210
+7e4d8 4 55 203
+7e4dc 4 68 203
+7e4e0 10 92 210
+7e4f0 4 38 229
+7e4f4 4 38 229
+7e4f8 8 38 229
+7e500 4 38 229
+7e504 4 39 229
+7e508 8 92 210
+7e510 4 38 229
+7e514 4 92 210
+7e518 4 38 229
+7e51c 4 39 229
+7e520 4 92 210
+7e524 4 55 203
+7e528 4 68 203
+7e52c 10 92 210
+7e53c 4 38 229
+7e540 4 38 229
+7e544 4 39 229
+7e548 4 38 229
+7e54c 8 92 210
+7e554 4 38 229
+7e558 4 92 210
+7e55c 4 38 229
+7e560 4 39 229
+7e564 4 92 210
+7e568 4 55 203
+7e56c 4 68 203
+7e570 10 92 210
+7e580 4 38 229
+7e584 4 38 229
+7e588 4 39 229
+7e58c 4 38 229
+7e590 8 92 210
+7e598 4 38 229
+7e59c 4 92 210
+7e5a0 4 38 229
+7e5a4 4 39 229
+7e5a8 4 243 185
+7e5ac 4 68 211
+7e5b0 4 68 203
+7e5b4 4 243 185
+7e5b8 c 68 211
+7e5c4 10 244 185
+7e5d4 c 118 212
+7e5e0 4 107 203
+7e5e4 14 107 203
+7e5f8 c 70 208
+7e604 8 70 208
+7e60c 4 68 203
+7e610 4 107 203
+7e614 14 107 203
+7e628 c 70 208
+7e634 8 70 208
+7e63c 4 68 203
+7e640 4 107 203
+7e644 14 107 203
+7e658 c 70 208
+7e664 8 70 208
+7e66c 4 68 203
+7e670 4 107 203
+7e674 4 107 203
+7e678 8 107 203
+7e680 4 68 203
+7e684 4 107 203
+7e688 4 107 203
+7e68c 8 107 203
+7e694 4 68 203
+7e698 4 107 203
+7e69c 4 107 203
+7e6a0 8 107 203
+7e6a8 4 68 203
+7e6ac 4 107 203
+7e6b0 4 107 203
+7e6b4 8 107 203
+7e6bc 18 246 185
+7e6d4 14 219 185
+7e6e8 4 68 203
+7e6ec c 62 203
+7e6f8 c 62 203
+7e704 8 220 185
+7e70c 4 28 203
+7e710 c 220 185
+7e71c 4 68 203
+7e720 c 62 203
+7e72c c 62 203
+7e738 8 221 185
+7e740 4 28 203
+7e744 c 221 185
+7e750 4 68 203
+7e754 c 62 203
+7e760 c 62 203
+7e76c 8 28 203
+7e774 14 205 185
+7e788 4 68 203
+7e78c c 62 203
+7e798 10 62 203
+7e7a8 28 107 203
+7e7d0 c 107 203
+7e7dc 1c 59 211
+7e7f8 8 200 185
+7e800 8 199 185
+7e808 8 198 185
+7e810 10 244 185
+7e820 44 59 211
+7e864 8 234 185
+7e86c 8 233 185
+7e874 1c 232 185
+7e890 54 59 211
+7e8e4 18 235 185
+7e8fc 30 59 211
+7e92c 18 215 185
+7e944 50 59 211
+FUNC 7e994 38 0 std::ios_base::Init::Init
+7e994 4 144 185
+7e998 8 143 185
+7e9a0 14 144 185
+7e9b4 8 149 185
+7e9bc 4 145 185
+7e9c0 4 146 185
+7e9c4 4 149 185
+7e9c8 4 147 185
+FUNC 7e9cc cc 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_seek_init
+7e9cc c 700 208
+7e9d8 4 702 208
+7e9dc 4 700 208
+7e9e0 4 706 208
+7e9e4 4 700 208
+7e9e8 4 706 208
+7e9ec 4 720 208
+7e9f0 4 723 208
+7e9f4 4 720 208
+7e9f8 8 720 208
+7ea00 8 220 209
+7ea08 8 93 236
+7ea10 4 94 236
+7ea14 4 95 236
+7ea18 4 221 209
+7ea1c c 724 208
+7ea28 4 708 208
+7ea2c c 708 208
+7ea38 8 708 208
+7ea40 4 709 208
+7ea44 4 710 208
+7ea48 8 594 208
+7ea50 14 594 208
+7ea64 4 710 208
+7ea68 4 712 208
+7ea6c 4 713 208
+7ea70 4 117 236
+7ea74 4 713 208
+7ea78 4 715 208
+7ea7c 4 118 236
+7ea80 4 119 236
+7ea84 c 724 208
+7ea90 8 711 208
+FUNC 7ea98 10c 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::seekpos
+7ea98 10 384 208
+7eaa8 8 384 208
+7eab0 4 386 208
+7eab4 4 384 208
+7eab8 4 386 208
+7eabc 8 388 208
+7eac4 10 398 208
+7ead4 10 387 208
+7eae4 8 391 208
+7eaec 4 391 208
+7eaf0 10 391 208
+7eb00 8 391 208
+7eb08 4 240 209
+7eb0c 4 392 208
+7eb10 4 240 209
+7eb14 8 119 208
+7eb1c c 120 208
+7eb28 4 121 208
+7eb2c 4 122 208
+7eb30 3c 121 247
+7eb6c 8 242 209
+7eb74 4 243 209
+7eb78 8 244 209
+7eb80 8 245 209
+7eb88 4 93 236
+7eb8c 4 94 236
+7eb90 4 95 236
+7eb94 4 117 236
+7eb98 4 118 236
+7eb9c 8 119 236
+FUNC 7eba4 c8 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_seek_return
+7eba4 4 238 209
+7eba8 4 239 209
+7ebac c 238 209
+7ebb8 c 238 209
+7ebc4 4 239 209
+7ebc8 8 240 209
+7ebd0 8 119 208
+7ebd8 c 120 208
+7ebe4 4 121 208
+7ebe8 4 122 208
+7ebec 4 242 209
+7ebf0 4 243 209
+7ebf4 4 244 209
+7ebf8 4 245 209
+7ebfc 4 93 236
+7ec00 4 94 236
+7ec04 4 95 236
+7ec08 4 117 236
+7ec0c 4 118 236
+7ec10 4 119 236
+7ec14 4 121 247
+7ec18 38 252 209
+7ec50 4 253 209
+7ec54 4 252 209
+7ec58 4 253 209
+7ec5c 4 252 209
+7ec60 c 253 209
+FUNC 7ec6c 3ec 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::seekoff
+7ec6c 14 291 208
+7ec80 8 291 208
+7ec88 8 294 208
+7ec90 c 297 208
+7ec9c 4 297 208
+7eca0 4 297 208
+7eca4 8 295 208
+7ecac 14 379 208
+7ecc0 24 300 208
+7ece4 10 304 208
+7ecf4 8 310 208
+7ecfc 8 314 208
+7ed04 10 317 208
+7ed14 4 321 208
+7ed18 4 321 208
+7ed1c 10 321 208
+7ed2c 4 239 209
+7ed30 4 321 208
+7ed34 4 239 209
+7ed38 8 240 209
+7ed40 8 119 208
+7ed48 c 120 208
+7ed54 4 121 208
+7ed58 4 122 208
+7ed5c 4 242 209
+7ed60 4 243 209
+7ed64 4 244 209
+7ed68 4 245 209
+7ed6c 4 93 236
+7ed70 4 94 236
+7ed74 4 95 236
+7ed78 4 117 236
+7ed7c 4 118 236
+7ed80 4 119 236
+7ed84 c 321 208
+7ed90 3c 301 208
+7edcc 24 379 208
+7edf0 10 320 208
+7ee00 4 321 208
+7ee04 8 89 247
+7ee0c 14 306 208
+7ee20 4 239 209
+7ee24 4 306 208
+7ee28 4 239 209
+7ee2c 8 240 209
+7ee34 8 119 208
+7ee3c c 120 208
+7ee48 4 121 208
+7ee4c 4 122 208
+7ee50 4 242 209
+7ee54 4 243 209
+7ee58 4 244 209
+7ee5c 4 245 209
+7ee60 4 93 236
+7ee64 4 94 236
+7ee68 4 95 236
+7ee6c 4 117 236
+7ee70 4 118 236
+7ee74 4 119 236
+7ee78 c 306 208
+7ee84 14 312 208
+7ee98 4 239 209
+7ee9c 4 312 208
+7eea0 4 239 209
+7eea4 8 240 209
+7eeac 8 119 208
+7eeb4 c 120 208
+7eec0 4 121 208
+7eec4 4 122 208
+7eec8 4 242 209
+7eecc 4 243 209
+7eed0 4 244 209
+7eed4 4 245 209
+7eed8 4 93 236
+7eedc 4 94 236
+7eee0 4 95 236
+7eee4 4 117 236
+7eee8 4 118 236
+7eeec 4 119 236
+7eef0 4 306 208
+7eef4 4 312 208
+7eef8 8 306 208
+7ef00 14 312 208
+7ef14 8 324 208
+7ef1c 10 325 208
+7ef2c 4 332 208
+7ef30 4 325 208
+7ef34 4 332 208
+7ef38 4 325 208
+7ef3c c 332 208
+7ef48 4 333 208
+7ef4c 4 87 209
+7ef50 4 335 208
+7ef54 4 336 208
+7ef58 c 335 208
+7ef64 4 336 208
+7ef68 8 89 247
+7ef70 8 378 208
+7ef78 4 346 208
+7ef7c 4 344 208
+7ef80 8 341 208
+7ef88 8 321 204
+7ef90 4 344 208
+7ef94 4 341 208
+7ef98 4 344 208
+7ef9c 18 321 204
+7efb4 10 370 208
+7efc4 4 373 208
+7efc8 4 371 208
+7efcc 4 372 208
+7efd0 4 373 208
+7efd4 4 87 209
+7efd8 4 372 208
+7efdc 8 373 208
+7efe4 4 375 208
+7efe8 8 89 247
+7eff0 14 89 247
+7f004 10 336 208
+7f014 8 336 208
+7f01c 3c 375 208
+FUNC 7f058 14 0 std::locale::facet::~facet
+7f058 10 43 186
+7f068 4 342 241
+FUNC 7f06c 24 0 std::locale::facet::~facet
+7f06c c 43 186
+7f078 8 43 186
+7f080 4 43 186
+7f084 8 43 186
+7f08c 4 43 186
+FUNC 7f090 18 0 std::allocator<char>::deallocate
+7f090 4 319 202
+7f094 8 161 202
+7f09c 4 161 202
+7f0a0 4 135 223
+7f0a4 4 325 202
+FUNC 7f0a8 3c 0 std::locale::locale
+7f0a8 c 119 186
+7f0b4 4 119 186
+7f0b8 4 120 186
+7f0bc 8 120 186
+7f0c4 4 120 186
+7f0c8 18 121 186
+7f0e0 4 119 186
+FUNC 7f0e4 38 0 std::locale::locale
+7f0e4 c 124 186
+7f0f0 4 124 186
+7f0f4 8 125 186
+7f0fc 4 125 186
+7f100 18 126 186
+7f118 4 124 186
+FUNC 7f11c 28 0 std::locale::locale
+7f11c c 133 186
+7f128 4 133 186
+7f12c c 134 186
+7f138 c 135 186
+FUNC 7f144 2c 0 std::locale::~locale
+7f144 8 362 186
+7f14c 8 363 186
+7f154 4 364 186
+7f158 14 365 186
+7f16c 4 362 186
+FUNC 7f170 60 0 std::locale::operator=
+7f170 8 369 186
+7f178 8 370 186
+7f180 4 369 186
+7f184 4 370 186
+7f188 8 369 186
+7f190 4 370 186
+7f194 4 371 186
+7f198 8 372 186
+7f1a0 4 373 186
+7f1a4 4 373 186
+7f1a8 24 376 186
+7f1cc 4 369 186
+FUNC 7f1d0 2c 0 std::locale::_M_get_facet
+7f1d0 c 379 186
+7f1dc 8 192 246
+7f1e4 8 379 186
+7f1ec 4 379 186
+7f1f0 4 380 186
+7f1f4 4 379 186
+7f1f8 4 380 186
+FUNC 7f1fc 38 0 std::locale::_M_use_facet
+7f1fc 8 382 186
+7f204 c 383 186
+7f210 8 192 246
+7f218 8 383 186
+7f220 4 383 186
+7f224 4 384 186
+7f228 8 387 186
+7f230 4 385 186
+FUNC 7f234 9c 0 std::locale::name
+7f234 10 389 186
+7f244 4 390 186
+7f248 4 389 186
+7f24c 4 379 238
+7f250 4 112 239
+7f254 c 481 202
+7f260 4 378 238
+7f264 8 379 238
+7f26c c 107 244
+7f278 c 106 244
+7f284 4 107 244
+7f288 4 380 238
+7f28c 4 101 206
+7f290 14 391 186
+7f2a4 8 64 239
+7f2ac c 96 239
+7f2b8 18 97 239
+FUNC 7f2d0 1d0 0 std::locale::operator==
+7f2d0 8 394 186
+7f2d8 8 395 186
+7f2e0 c 394 186
+7f2ec 8 395 186
+7f2f4 14 396 186
+7f308 14 396 186
+7f31c 8 289 240
+7f324 10 400 238
+7f334 8 289 240
+7f33c c 96 239
+7f348 8 97 239
+7f350 8 161 202
+7f358 8 161 202
+7f360 4 64 239
+7f364 c 96 239
+7f370 8 97 239
+7f378 8 161 202
+7f380 8 161 202
+7f388 4 395 186
+7f38c 18 397 186
+7f3a4 14 135 223
+7f3b8 8 226 247
+7f3c0 4 289 240
+7f3c4 14 396 186
+7f3d8 4 395 186
+7f3dc 8 400 238
+7f3e4 8 324 240
+7f3ec c 96 239
+7f3f8 8 97 239
+7f400 8 161 202
+7f408 c 161 202
+7f414 10 324 240
+7f424 10 135 223
+7f434 4 64 239
+7f438 c 96 239
+7f444 18 97 239
+7f45c 4 395 186
+7f460 c 396 186
+7f46c 8 395 186
+7f474 8 64 239
+7f47c c 96 239
+7f488 10 97 239
+7f498 8 396 186
+FUNC 7f4a0 1c 0 std::locale::operator!=
+7f4a0 8 399 186
+7f4a8 8 400 186
+7f4b0 c 401 186
+FUNC 7f4bc 8 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_date_order
+7f4bc 8 168 243
+FUNC 7f4c4 8 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_date_order
+7f4c4 8 168 243
+FUNC 7f4cc 10 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_put
+7f4cc 10 406 222
+FUNC 7f4dc 30 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_put
+7f4dc 10 406 222
+7f4ec 10 406 222
+7f4fc 4 406 222
+7f500 8 406 222
+7f508 4 406 222
+FUNC 7f50c 10 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_get
+7f50c 10 73 222
+FUNC 7f51c 30 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_get
+7f51c 10 73 222
+7f52c 10 73 222
+7f53c 4 73 222
+7f540 8 73 222
+7f548 4 73 222
+FUNC 7f54c 10 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~money_put
+7f54c 10 406 222
+FUNC 7f55c 30 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~money_put
+7f55c 10 406 222
+7f56c 10 406 222
+7f57c 4 406 222
+7f580 8 406 222
+7f588 4 406 222
+FUNC 7f58c 10 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~money_get
+7f58c 10 73 222
+FUNC 7f59c 30 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~money_get
+7f59c 10 73 222
+7f5ac 10 73 222
+7f5bc 4 73 222
+7f5c0 8 73 222
+7f5c8 4 73 222
+FUNC 7f5cc 10 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_put
+7f5cc 10 107 227
+FUNC 7f5dc 30 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_put
+7f5dc 10 107 227
+7f5ec 10 107 227
+7f5fc 4 107 227
+7f600 8 107 227
+7f608 4 107 227
+FUNC 7f60c 10 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_get
+7f60c 10 126 225
+FUNC 7f61c 30 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_get
+7f61c 10 126 225
+7f62c 10 126 225
+7f63c 4 126 225
+7f640 8 126 225
+7f648 4 126 225
+FUNC 7f64c 10 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~num_get
+7f64c 10 126 225
+FUNC 7f65c 30 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~num_get
+7f65c 10 126 225
+7f66c 10 126 225
+7f67c 4 126 225
+7f680 8 126 225
+7f688 4 126 225
+FUNC 7f68c 10 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~num_put
+7f68c 10 107 227
+FUNC 7f69c 30 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~num_put
+7f69c 10 107 227
+7f6ac 10 107 227
+7f6bc 4 107 227
+7f6c0 8 107 227
+7f6c8 4 107 227
+FUNC 7f6cc 8 0 std::_Refcount_Base::~_Refcount_Base
+7f6cc 8 342 241
+FUNC 7f6d4 18 0 std::allocator<char>::deallocate
+7f6d4 4 319 202
+7f6d8 8 161 202
+7f6e0 4 161 202
+7f6e4 4 135 223
+7f6e8 4 325 202
+FUNC 7f6ec 1c 0 std::allocator<wchar_t>::deallocate
+7f6ec 4 319 202
+7f6f0 4 323 202
+7f6f4 8 161 202
+7f6fc 4 161 202
+7f700 4 135 223
+7f704 4 325 202
+FUNC 7f708 1c 0 std::basic_streambuf<char, std::char_traits<char> >::sbumpc
+7f708 8 227 236
+7f710 4 228 236
+7f714 8 229 236
+7f71c 8 230 236
+FUNC 7f724 110 0 std::priv::__write_integer_backward<long unsigned int>
+7f724 c 304 226
+7f730 4 304 226
+7f734 14 314 226
+7f748 4 322 226
+7f74c 4 323 226
+7f750 4 322 226
+7f754 8 323 226
+7f75c 4 322 226
+7f760 4 326 226
+7f764 c 327 226
+7f770 10 368 226
+7f780 8 295 226
+7f788 4 294 226
+7f78c 10 295 226
+7f79c 4 294 226
+7f7a0 8 295 226
+7f7a8 4 294 226
+7f7ac 4 297 226
+7f7b0 c 298 226
+7f7bc 18 368 226
+7f7d4 4 333 226
+7f7d8 c 333 226
+7f7e4 4 339 226
+7f7e8 4 340 226
+7f7ec 4 339 226
+7f7f0 8 340 226
+7f7f8 4 339 226
+7f7fc 4 342 226
+7f800 4 343 226
+7f804 4 344 226
+7f808 4 343 226
+7f80c 8 344 226
+7f814 10 368 226
+7f824 10 333 226
+FUNC 7f834 110 0 std::priv::__write_integer_backward<long long unsigned int>
+7f834 c 304 226
+7f840 4 304 226
+7f844 14 314 226
+7f858 4 322 226
+7f85c 4 323 226
+7f860 4 322 226
+7f864 8 323 226
+7f86c 4 322 226
+7f870 4 326 226
+7f874 c 327 226
+7f880 10 368 226
+7f890 8 295 226
+7f898 4 294 226
+7f89c 10 295 226
+7f8ac 4 294 226
+7f8b0 8 295 226
+7f8b8 4 294 226
+7f8bc 4 297 226
+7f8c0 c 298 226
+7f8cc 18 368 226
+7f8e4 4 333 226
+7f8e8 c 333 226
+7f8f4 4 339 226
+7f8f8 4 340 226
+7f8fc 4 339 226
+7f900 8 340 226
+7f908 4 339 226
+7f90c 4 342 226
+7f910 4 343 226
+7f914 4 344 226
+7f918 4 343 226
+7f91c 8 344 226
+7f924 10 368 226
+7f934 10 333 226
+FUNC 7f944 1c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::sbumpc
+7f944 8 227 236
+7f94c 4 228 236
+7f950 8 229 236
+7f958 8 230 236
+FUNC 7f960 98 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::_M_getc
+7f960 c 89 215
+7f96c 4 89 215
+7f970 4 92 215
+7f974 1c 235 236
+7f990 4 93 215
+7f994 4 95 215
+7f998 4 94 215
+7f99c 4 95 215
+7f9a0 c 96 215
+7f9ac 20 234 236
+7f9cc 4 93 215
+7f9d0 4 95 215
+7f9d4 4 94 215
+7f9d8 4 95 215
+7f9dc c 96 215
+7f9e8 10 235 236
+FUNC 7f9f8 98 0 std::istreambuf_iterator<char, std::char_traits<char> >::_M_getc
+7f9f8 c 89 215
+7fa04 4 89 215
+7fa08 4 92 215
+7fa0c 18 235 236
+7fa24 4 93 215
+7fa28 4 95 215
+7fa2c 4 94 215
+7fa30 4 95 215
+7fa34 c 96 215
+7fa40 20 234 236
+7fa60 4 93 215
+7fa64 4 95 215
+7fa68 4 94 215
+7fa6c 4 95 215
+7fa70 c 96 215
+7fa7c 14 235 236
+FUNC 7fa90 c4 0 std::priv::__copy<char const*, std::ostreambuf_iterator<char, std::char_traits<char> >, long int>
+7fa90 10 211 201
+7faa0 4 213 201
+7faa4 8 211 201
+7faac 4 213 201
+7fab0 10 211 201
+7fac0 10 213 201
+7fad0 8 199 236
+7fad8 4 215 201
+7fadc 8 213 201
+7fae4 4 214 201
+7fae8 4 62 230
+7faec 4 200 236
+7faf0 4 199 236
+7faf4 4 200 236
+7faf8 4 199 236
+7fafc 8 200 236
+7fb04 4 199 236
+7fb08 4 223 247
+7fb0c c 199 236
+7fb18 4 200 236
+7fb1c 4 215 201
+7fb20 4 200 236
+7fb24 8 62 230
+7fb2c 8 213 201
+7fb34 4 218 201
+7fb38 1c 219 201
+FUNC 7fb54 bc 0 std::priv::__copy<wchar_t*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long int>
+7fb54 10 211 201
+7fb64 4 213 201
+7fb68 4 213 201
+7fb6c 4 211 201
+7fb70 8 211 201
+7fb78 10 213 201
+7fb88 8 199 236
+7fb90 8 62 230
+7fb98 4 215 201
+7fb9c 8 213 201
+7fba4 4 214 201
+7fba8 4 62 230
+7fbac 4 200 236
+7fbb0 4 200 236
+7fbb4 4 200 236
+7fbb8 4 199 236
+7fbbc 8 200 236
+7fbc4 18 199 236
+7fbdc 18 200 236
+7fbf4 4 218 201
+7fbf8 18 219 201
+FUNC 7fc10 bc 0 std::priv::__copy<wchar_t const*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long int>
+7fc10 10 211 201
+7fc20 4 213 201
+7fc24 4 213 201
+7fc28 4 211 201
+7fc2c 8 211 201
+7fc34 10 213 201
+7fc44 8 199 236
+7fc4c 8 62 230
+7fc54 4 215 201
+7fc58 8 213 201
+7fc60 4 214 201
+7fc64 4 62 230
+7fc68 4 200 236
+7fc6c 4 200 236
+7fc70 4 200 236
+7fc74 4 199 236
+7fc78 8 200 236
+7fc80 18 199 236
+7fc98 18 200 236
+7fcb0 4 218 201
+7fcb4 18 219 201
+FUNC 7fccc 100 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::operator++
+7fccc 10 144 215
+7fcdc 4 90 215
+7fce0 c 144 215
+7fcec 10 90 215
+7fcfc 4 229 236
+7fd00 8 148 215
+7fd08 4 229 236
+7fd0c 8 228 236
+7fd14 4 151 215
+7fd18 4 150 215
+7fd1c 4 151 215
+7fd20 4 152 215
+7fd24 4 151 215
+7fd28 4 152 215
+7fd2c 4 151 215
+7fd30 10 152 215
+7fd40 4 228 236
+7fd44 10 229 236
+7fd54 1c 235 236
+7fd70 4 94 215
+7fd74 4 95 215
+7fd78 4 93 215
+7fd7c 8 95 215
+7fd84 24 234 236
+7fda8 24 235 236
+FUNC 7fdcc f4 0 std::istreambuf_iterator<char, std::char_traits<char> >::operator++
+7fdcc 8 144 215
+7fdd4 4 90 215
+7fdd8 c 144 215
+7fde4 4 144 215
+7fde8 c 90 215
+7fdf4 8 229 236
+7fdfc 4 148 215
+7fe00 4 229 236
+7fe04 4 148 215
+7fe08 4 229 236
+7fe0c 8 228 236
+7fe14 4 151 215
+7fe18 4 150 215
+7fe1c 4 151 215
+7fe20 4 152 215
+7fe24 4 151 215
+7fe28 4 152 215
+7fe2c 4 151 215
+7fe30 10 152 215
+7fe40 4 228 236
+7fe44 10 229 236
+7fe54 4 92 215
+7fe58 14 235 236
+7fe6c 4 95 215
+7fe70 4 93 215
+7fe74 4 94 215
+7fe78 8 95 215
+7fe80 24 234 236
+7fea4 1c 235 236
+FUNC 7fec0 1fc 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+7fec0 10 425 242
+7fed0 4 145 212
+7fed4 14 425 242
+7fee8 8 145 212
+7fef0 8 425 242
+7fef8 c 425 242
+7ff04 4 145 212
+7ff08 14 351 219
+7ff1c 4 428 242
+7ff20 4 108 213
+7ff24 4 41 213
+7ff28 4 428 242
+7ff2c 10 108 213
+7ff3c 14 41 213
+7ff50 4 613 237
+7ff54 18 430 242
+7ff6c 4 611 237
+7ff70 4 612 237
+7ff74 4 613 237
+7ff78 4 101 206
+7ff7c 10 430 242
+7ff8c 4 213 201
+7ff90 14 213 201
+7ffa4 10 199 236
+7ffb4 4 215 201
+7ffb8 8 213 201
+7ffc0 4 214 201
+7ffc4 4 62 230
+7ffc8 10 200 236
+7ffd8 14 199 236
+7ffec 8 200 236
+7fff4 4 62 230
+7fff8 8 215 201
+80000 c 213 201
+8000c 14 96 239
+80020 4 97 239
+80024 8 319 202
+8002c 4 97 239
+80030 8 161 202
+80038 4 161 202
+8003c 28 432 242
+80064 8 135 223
+8006c c 213 201
+80078 10 428 242
+80088 8 64 239
+80090 c 96 239
+8009c 4 97 239
+800a0 4 70 213
+800a4 4 97 239
+800a8 4 70 213
+800ac 10 70 213
+FUNC 800bc 49c 0 std::priv::__copy_digits<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+800bc 2c 314 224
+800e8 c 314 224
+800f4 4 316 224
+800f8 8 95 215
+80100 4 75 215
+80104 8 90 215
+8010c 4 77 215
+80110 8 90 215
+80118 10 318 224
+80128 14 90 215
+8013c 8 320 224
+80144 4 64 239
+80148 8 74 239
+80150 10 74 239
+80160 c 535 238
+8016c 8 101 206
+80174 4 232 247
+80178 4 68 215
+8017c 4 539 238
+80180 4 229 236
+80184 4 539 238
+80188 4 229 236
+8018c 4 539 238
+80190 8 229 236
+80198 8 228 236
+801a0 4 69 215
+801a4 8 322 224
+801ac 14 235 236
+801c0 4 95 215
+801c4 c 318 224
+801d0 20 328 224
+801f0 14 235 236
+80204 4 93 215
+80208 4 94 215
+8020c 8 95 215
+80214 14 234 236
+80228 4 95 215
+8022c 8 234 236
+80234 4 92 215
+80238 1c 235 236
+80254 4 93 215
+80258 4 94 215
+8025c 8 95 215
+80264 4 228 236
+80268 10 229 236
+80278 4 400 238
+8027c 14 304 238
+80290 4 306 238
+80294 10 307 238
+802a4 4 64 213
+802a8 4 67 213
+802ac 4 64 213
+802b0 58 86 244
+80308 20 146 206
+80328 4 86 244
+8032c 4 146 206
+80330 10 86 244
+80340 4 146 206
+80344 c 86 244
+80350 4 146 206
+80354 c 86 244
+80360 4 146 206
+80364 c 86 244
+80370 4 146 206
+80374 c 86 244
+80380 4 146 206
+80384 c 86 244
+80390 4 146 206
+80394 c 86 244
+803a0 4 146 206
+803a4 c 86 244
+803b0 4 146 206
+803b4 c 86 244
+803c0 4 146 206
+803c4 c 86 244
+803d0 4 146 206
+803d4 c 86 244
+803e0 4 146 206
+803e4 c 86 244
+803f0 4 146 206
+803f4 c 86 244
+80400 4 146 206
+80404 8 86 244
+8040c 8 146 206
+80414 4 101 206
+80418 4 64 239
+8041c c 96 239
+80428 8 97 239
+80430 8 319 202
+80438 8 97 239
+80440 8 161 202
+80448 8 161 202
+80450 4 175 237
+80454 4 164 239
+80458 4 160 239
+8045c 8 165 239
+80464 14 74 239
+80478 4 308 238
+8047c 18 134 223
+80494 10 86 244
+804a4 3c 234 236
+804e0 8 86 244
+804e8 8 146 206
+804f0 c 86 244
+804fc c 135 223
+80508 4 235 236
+8050c 4 95 215
+80510 44 235 236
+80554 4 305 238
+FUNC 80558 68 0 std::_release_facet
+80558 c 44 187
+80564 4 45 187
+80568 4 44 187
+8056c 4 45 187
+80570 10 347 241
+80580 4 475 241
+80584 4 349 241
+80588 8 475 241
+80590 4 349 241
+80594 4 45 187
+80598 8 46 187
+805a0 c 46 187
+805ac 4 47 187
+805b0 10 49 187
+FUNC 805c0 a0 0 std::_Locale_impl::Init::_M_count
+805c0 c 69 187
+805cc 4 70 187
+805d0 4 69 187
+805d4 14 70 187
+805e8 4 71 187
+805ec 10 72 187
+805fc 8 70 187
+80604 4 457 241
+80608 8 340 241
+80610 4 457 241
+80614 4 340 241
+80618 8 70 187
+80620 18 70 187
+80638 4 72 187
+8063c 4 71 187
+80640 10 72 187
+80650 10 70 187
+FUNC 80660 4 0 std::_Locale_impl::_S_uninitialize
+80660 4 113 187
+FUNC 80664 5c 0 std::_Locale_impl::Init::~Init
+80664 10 63 187
+80674 8 64 187
+8067c c 347 241
+80688 4 475 241
+8068c 4 349 241
+80690 8 475 241
+80698 4 349 241
+8069c 4 64 187
+806a0 1c 67 187
+806bc 4 65 187
+FUNC 806c0 120 0 std::_Locale_impl::~_Locale_impl
+806c0 10 92 187
+806d0 8 93 187
+806d8 4 92 187
+806dc c 93 187
+806e8 8 60 199
+806f0 8 61 199
+806f8 4 60 199
+806fc c 60 199
+80708 4 87 246
+8070c 4 88 246
+80710 4 135 223
+80714 4 88 246
+80718 8 161 202
+80720 4 161 202
+80724 8 64 239
+8072c c 96 239
+80738 8 97 239
+80740 8 161 202
+80748 4 161 202
+8074c 4 342 241
+80750 c 95 187
+8075c 4 342 241
+80760 4 135 223
+80764 4 342 241
+80768 c 95 187
+80774 4 342 241
+80778 c 135 223
+80784 14 342 241
+80798 8 64 239
+807a0 c 96 239
+807ac 18 97 239
+807c4 4 87 246
+807c8 18 88 246
+FUNC 807e0 34 0 std::_Locale_impl::_M_throw_bad_cast
+807e0 4 116 187
+807e4 4 117 187
+807e8 8 116 187
+807f0 8 117 187
+807f8 4 117 187
+807fc 18 117 187
+FUNC 80814 40 0 std::_get_Locale_impl
+80814 c 696 187
+80820 4 347 241
+80824 4 696 187
+80828 8 347 241
+80830 4 471 241
+80834 4 349 241
+80838 8 471 241
+80840 4 349 241
+80844 10 700 187
+FUNC 80854 84 0 std::_release_Locale_impl
+80854 c 703 187
+80860 4 705 187
+80864 4 703 187
+80868 4 347 241
+8086c 4 703 187
+80870 8 347 241
+80878 4 475 241
+8087c 4 349 241
+80880 8 475 241
+80888 4 349 241
+8088c 4 705 187
+80890 4 109 188
+80894 4 706 187
+80898 8 109 188
+808a0 8 706 187
+808a8 4 707 187
+808ac 8 707 187
+808b4 8 707 187
+808bc 4 710 187
+808c0 10 712 187
+808d0 8 709 187
+FUNC 808d8 c 0 std::priv::_GetFacetId
+808d8 4 745 187
+808dc 8 745 187
+FUNC 808e4 158 0 std::vector<std::locale::facet*, std::allocator<std::locale::facet*> >::reserve
+808e4 c 62 245
+808f0 8 199 246
+808f8 4 62 245
+808fc 4 199 246
+80900 4 62 245
+80904 c 63 245
+80910 14 64 245
+80924 4 192 246
+80928 4 70 245
+8092c 4 346 202
+80930 8 347 202
+80938 8 158 202
+80940 8 134 223
+80948 4 352 202
+8094c 4 107 244
+80950 8 352 202
+80958 4 107 244
+8095c 14 106 244
+80970 8 657 246
+80978 4 319 202
+8097c 8 161 202
+80984 8 161 202
+8098c 4 76 245
+80990 4 666 246
+80994 4 667 246
+80998 4 668 246
+8099c 14 78 245
+809b0 10 158 202
+809c0 c 107 244
+809cc 8 356 202
+809d4 8 135 223
+809dc 4 346 202
+809e0 4 356 202
+809e4 4 346 202
+809e8 8 347 202
+809f0 8 158 202
+809f8 c 158 202
+80a04 10 352 202
+80a14 c 134 223
+80a20 8 107 244
+80a28 8 356 202
+80a30 c 41 245
+FUNC 80a3c 1b8 0 std::priv::_Time_Info_Base::~_Time_Info_Base
+80a3c 4 63 243
+80a40 4 64 239
+80a44 8 63 243
+80a4c 4 63 243
+80a50 4 64 239
+80a54 c 96 239
+80a60 8 97 239
+80a68 8 161 202
+80a70 4 161 202
+80a74 8 64 239
+80a7c c 96 239
+80a88 8 97 239
+80a90 8 161 202
+80a98 4 161 202
+80a9c 8 64 239
+80aa4 c 96 239
+80ab0 8 97 239
+80ab8 8 161 202
+80ac0 4 161 202
+80ac4 8 64 239
+80acc c 96 239
+80ad8 8 97 239
+80ae0 8 161 202
+80ae8 4 161 202
+80aec 4 64 239
+80af0 c 96 239
+80afc 8 97 239
+80b04 8 161 202
+80b0c 8 63 243
+80b14 4 161 202
+80b18 c 63 243
+80b24 20 135 223
+80b44 8 63 243
+80b4c 4 135 223
+80b50 c 64 239
+80b5c c 96 239
+80b68 10 97 239
+80b78 8 64 239
+80b80 c 96 239
+80b8c c 97 239
+80b98 8 64 239
+80ba0 c 96 239
+80bac c 97 239
+80bb8 4 64 239
+80bbc c 96 239
+80bc8 2c 97 239
+FUNC 80bf4 18c 0 std::priv::_Time_Info::~_Time_Info
+80bf4 10 72 243
+80c04 8 72 243
+80c0c 4 72 243
+80c10 8 72 243
+80c18 4 161 202
+80c1c 8 72 243
+80c24 4 72 243
+80c28 4 64 239
+80c2c c 96 239
+80c38 8 97 239
+80c40 8 161 202
+80c48 4 135 223
+80c4c 8 72 243
+80c54 c 72 243
+80c60 4 161 202
+80c64 8 72 243
+80c6c 4 72 243
+80c70 4 64 239
+80c74 c 96 239
+80c80 8 97 239
+80c88 8 161 202
+80c90 4 135 223
+80c94 8 72 243
+80c9c c 72 243
+80ca8 4 161 202
+80cac 8 72 243
+80cb4 4 72 243
+80cb8 4 64 239
+80cbc c 96 239
+80cc8 8 97 239
+80cd0 8 161 202
+80cd8 4 135 223
+80cdc 8 72 243
+80ce4 4 72 243
+80ce8 c 72 243
+80cf4 4 72 243
+80cf8 c 72 243
+80d04 4 72 243
+80d08 4 64 239
+80d0c c 96 239
+80d18 c 97 239
+80d24 c 72 243
+80d30 8 72 243
+80d38 4 72 243
+80d3c 4 64 239
+80d40 c 96 239
+80d4c c 97 239
+80d58 8 72 243
+80d60 20 72 243
+FUNC 80d80 44 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~time_put
+80d80 10 273 243
+80d90 c 273 243
+80d9c 4 101 243
+80da0 4 273 243
+80da4 8 273 243
+80dac 8 273 243
+80db4 10 273 243
+FUNC 80dc4 4c 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~time_put
+80dc4 10 273 243
+80dd4 c 273 243
+80de0 4 101 243
+80de4 8 273 243
+80dec 4 273 243
+80df0 8 273 243
+80df8 8 273 243
+80e00 10 273 243
+FUNC 80e10 44 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~time_get
+80e10 10 166 243
+80e20 c 166 243
+80e2c 4 101 243
+80e30 4 166 243
+80e34 8 166 243
+80e3c 8 166 243
+80e44 10 166 243
+FUNC 80e54 4c 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~time_get
+80e54 10 166 243
+80e64 c 166 243
+80e70 4 101 243
+80e74 8 166 243
+80e7c 4 166 243
+80e80 8 166 243
+80e88 8 166 243
+80e90 10 166 243
+FUNC 80ea0 1a0 0 std::priv::_WTime_Info::~_WTime_Info
+80ea0 14 80 243
+80eb4 8 80 243
+80ebc 4 80 243
+80ec0 8 80 243
+80ec8 4 161 202
+80ecc 8 80 243
+80ed4 4 80 243
+80ed8 4 64 239
+80edc c 96 239
+80ee8 8 97 239
+80ef0 8 161 202
+80ef8 4 135 223
+80efc 8 80 243
+80f04 c 80 243
+80f10 4 161 202
+80f14 8 80 243
+80f1c 4 80 243
+80f20 4 64 239
+80f24 c 96 239
+80f30 8 97 239
+80f38 8 161 202
+80f40 4 135 223
+80f44 8 80 243
+80f4c c 80 243
+80f58 4 161 202
+80f5c 8 80 243
+80f64 4 80 243
+80f68 4 64 239
+80f6c c 96 239
+80f78 8 97 239
+80f80 8 161 202
+80f88 4 135 223
+80f8c 8 80 243
+80f94 4 80 243
+80f98 c 80 243
+80fa4 4 80 243
+80fa8 c 80 243
+80fb4 4 80 243
+80fb8 4 64 239
+80fbc c 96 239
+80fc8 14 97 239
+80fdc c 80 243
+80fe8 8 80 243
+80ff0 4 80 243
+80ff4 4 64 239
+80ff8 c 96 239
+81004 14 97 239
+81018 8 80 243
+81020 20 80 243
+FUNC 81040 44 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_put
+81040 10 273 243
+81050 c 273 243
+8105c 4 115 243
+81060 4 273 243
+81064 8 273 243
+8106c 8 273 243
+81074 10 273 243
+FUNC 81084 4c 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_put
+81084 10 273 243
+81094 c 273 243
+810a0 4 115 243
+810a4 8 273 243
+810ac 4 273 243
+810b0 8 273 243
+810b8 8 273 243
+810c0 10 273 243
+FUNC 810d0 44 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_get
+810d0 10 166 243
+810e0 c 166 243
+810ec 4 115 243
+810f0 4 166 243
+810f4 8 166 243
+810fc 8 166 243
+81104 10 166 243
+FUNC 81114 4c 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_get
+81114 10 166 243
+81124 c 166 243
+81130 4 115 243
+81134 8 166 243
+8113c 4 166 243
+81140 8 166 243
+81148 8 166 243
+81150 10 166 243
+FUNC 81160 e0 0 std::_Locale_impl::_Locale_impl
+81160 c 74 187
+8116c 4 457 241
+81170 8 74 187
+81178 4 74 187
+8117c 4 340 241
+81180 4 457 241
+81184 4 75 187
+81188 4 74 187
+8118c 8 340 241
+81194 10 75 187
+811a4 8 67 246
+811ac 8 76 187
+811b4 4 67 246
+811b8 4 481 202
+811bc 18 76 187
+811d4 18 78 187
+811ec 18 342 241
+81204 4 87 246
+81208 14 88 246
+8121c 4 64 239
+81220 c 96 239
+8122c 14 97 239
+FUNC 81240 810 0 std::_Locale_impl::make_classic_locale
+81240 4 623 187
+81244 4 628 187
+81248 8 623 187
+81250 c 628 187
+8125c 8 623 187
+81264 4 628 187
+81268 54 661 187
+812bc 4 457 241
+812c0 8 340 241
+812c8 4 457 241
+812cc 4 340 241
+812d0 4 48 205
+812d4 4 661 187
+812d8 4 661 187
+812dc c 48 205
+812e8 8 661 187
+812f0 10 633 187
+81300 4 661 187
+81304 4 661 187
+81308 8 661 187
+81310 4 457 241
+81314 8 340 241
+8131c 4 457 241
+81320 4 340 241
+81324 4 180 204
+81328 4 661 187
+8132c 4 661 187
+81330 c 180 204
+8133c 8 661 187
+81344 8 635 187
+8134c 4 661 187
+81350 4 661 187
+81354 8 661 187
+8135c 8 636 187
+81364 4 661 187
+81368 4 661 187
+8136c 8 661 187
+81374 4 457 241
+81378 8 340 241
+81380 4 457 241
+81384 4 340 241
+81388 4 54 228
+8138c 4 661 187
+81390 4 661 187
+81394 c 54 228
+813a0 8 661 187
+813a8 8 638 187
+813b0 4 661 187
+813b4 4 661 187
+813b8 8 661 187
+813c0 4 457 241
+813c4 8 340 241
+813cc 4 457 241
+813d0 4 340 241
+813d4 4 60 222
+813d8 4 661 187
+813dc 8 60 222
+813e4 4 661 187
+813e8 8 661 187
+813f0 4 457 241
+813f4 8 340 241
+813fc 4 457 241
+81400 4 340 241
+81404 4 394 222
+81408 4 661 187
+8140c 8 394 222
+81414 4 661 187
+81418 8 661 187
+81420 4 457 241
+81424 8 340 241
+8142c 4 457 241
+81430 4 340 241
+81434 4 61 225
+81438 4 661 187
+8143c 8 61 225
+81444 4 661 187
+81448 8 661 187
+81450 4 457 241
+81454 8 340 241
+8145c 4 457 241
+81460 4 340 241
+81464 4 57 227
+81468 4 661 187
+8146c 8 57 227
+81474 4 661 187
+81478 8 661 187
+81480 4 457 241
+81484 8 340 241
+8148c 4 457 241
+81490 4 340 241
+81494 14 86 219
+814a8 4 136 243
+814ac 4 136 243
+814b0 4 661 187
+814b4 8 136 243
+814bc 4 661 187
+814c0 8 661 187
+814c8 4 457 241
+814cc 8 340 241
+814d4 4 457 241
+814d8 4 340 241
+814dc 10 86 219
+814ec 4 253 243
+814f0 4 253 243
+814f4 4 661 187
+814f8 8 253 243
+81500 4 661 187
+81504 8 661 187
+8150c 4 457 241
+81510 8 340 241
+81518 4 457 241
+8151c 4 340 241
+81520 4 84 205
+81524 4 661 187
+81528 4 661 187
+8152c c 84 205
+81538 8 661 187
+81540 4 457 241
+81544 8 340 241
+8154c 4 457 241
+81550 4 340 241
+81554 4 181 207
+81558 4 661 187
+8155c 4 661 187
+81560 c 181 207
+8156c 8 661 187
+81574 4 457 241
+81578 8 340 241
+81580 4 457 241
+81584 4 340 241
+81588 4 277 204
+8158c 4 661 187
+81590 4 661 187
+81594 c 277 204
+815a0 8 661 187
+815a8 8 649 187
+815b0 4 661 187
+815b4 4 661 187
+815b8 8 661 187
+815c0 8 650 187
+815c8 4 661 187
+815cc 4 661 187
+815d0 8 661 187
+815d8 4 457 241
+815dc 8 340 241
+815e4 4 457 241
+815e8 4 340 241
+815ec 4 83 228
+815f0 4 661 187
+815f4 4 661 187
+815f8 c 83 228
+81604 8 661 187
+8160c 8 652 187
+81614 4 661 187
+81618 4 661 187
+8161c 8 661 187
+81624 4 457 241
+81628 8 340 241
+81630 4 457 241
+81634 4 340 241
+81638 4 60 222
+8163c 4 661 187
+81640 8 60 222
+81648 4 661 187
+8164c 8 661 187
+81654 4 457 241
+81658 8 340 241
+81660 4 457 241
+81664 4 340 241
+81668 4 394 222
+8166c 4 661 187
+81670 8 394 222
+81678 4 661 187
+8167c 8 661 187
+81684 4 457 241
+81688 8 340 241
+81690 4 457 241
+81694 4 340 241
+81698 4 61 225
+8169c 4 661 187
+816a0 8 61 225
+816a8 4 661 187
+816ac 8 661 187
+816b4 4 457 241
+816b8 8 340 241
+816c0 4 457 241
+816c4 4 340 241
+816c8 4 57 227
+816cc 4 661 187
+816d0 8 57 227
+816d8 4 661 187
+816dc 8 661 187
+816e4 4 457 241
+816e8 8 340 241
+816f0 4 457 241
+816f4 4 340 241
+816f8 10 86 219
+81708 4 136 243
+8170c 4 136 243
+81710 4 661 187
+81714 8 136 243
+8171c 4 661 187
+81720 8 661 187
+81728 4 457 241
+8172c 8 340 241
+81734 4 457 241
+81738 4 340 241
+8173c 10 86 219
+8174c 4 253 243
+81750 4 253 243
+81754 4 664 187
+81758 4 253 243
+8175c 4 664 187
+81760 4 253 243
+81764 4 664 187
+81768 8 661 187
+81770 8 664 187
+81778 8 199 246
+81780 c 326 246
+8178c 4 192 246
+81790 8 332 246
+81798 4 510 217
+8179c c 224 201
+817a8 c 107 244
+817b4 14 106 244
+817c8 4 107 244
+817cc 8 341 246
+817d4 14 667 187
+817e8 4 670 187
+817ec 8 668 187
+817f4 8 670 187
+817fc 8 668 187
+81804 4 670 187
+81808 8 671 187
+81810 8 672 187
+81818 4 671 187
+8181c c 672 187
+81828 4 224 201
+8182c 4 667 187
+81830 8 224 201
+81838 4 224 201
+8183c 4 667 187
+81840 4 335 246
+81844 c 667 187
+81850 8 667 187
+81858 c 667 187
+81864 8 667 187
+8186c 1c 667 187
+81888 8 670 187
+81890 c 670 187
+8189c 8 670 187
+818a4 10 670 187
+818b4 4 671 187
+818b8 8 670 187
+818c0 4 672 187
+818c4 4 671 187
+818c8 4 672 187
+818cc 4 671 187
+818d0 c 672 187
+818dc 10 347 202
+818ec 4 158 202
+818f0 4 352 202
+818f4 8 106 244
+818fc 4 158 202
+81900 4 352 202
+81904 8 106 244
+8190c 8 657 246
+81914 4 319 202
+81918 8 161 202
+81920 4 161 202
+81924 4 666 246
+81928 8 330 246
+81930 4 666 246
+81934 4 667 246
+81938 8 668 246
+81940 8 107 244
+81948 10 224 201
+81958 c 135 223
+81964 14 670 187
+81978 8 253 243
+81980 1c 658 187
+8199c 40 136 243
+819dc 14 253 243
+819f0 14 136 243
+81a04 3c 633 187
+81a40 10 667 187
+FUNC 81a50 94 0 std::_Locale_impl::_S_initialize
+81a50 c 575 187
+81a5c c 576 187
+81a68 c 577 187
+81a74 c 578 187
+81a80 c 579 187
+81a8c c 580 187
+81a98 c 583 187
+81aa4 c 584 187
+81ab0 c 585 187
+81abc c 586 187
+81ac8 c 587 187
+81ad4 c 588 187
+81ae0 4 102 187
+FUNC 81ae4 60 0 std::_Locale_impl::Init::Init
+81ae4 10 57 187
+81af4 8 58 187
+81afc c 347 241
+81b08 4 471 241
+81b0c 4 349 241
+81b10 8 471 241
+81b18 4 349 241
+81b1c 8 58 187
+81b24 1c 61 187
+81b40 4 59 187
+FUNC 81b44 8c 0 std::_Stl_get_global_locale
+81b44 c 603 187
+81b50 10 604 187
+81b60 4 605 187
+81b64 8 606 187
+81b6c 4 605 187
+81b70 4 606 187
+81b74 8 604 187
+81b7c c 604 187
+81b88 8 604 187
+81b90 18 604 187
+81ba8 4 605 187
+81bac 8 606 187
+81bb4 4 605 187
+81bb8 8 606 187
+81bc0 10 604 187
+FUNC 81bd0 214 0 std::priv::__get_decimal_integer<wchar_t*, long double, wchar_t>
+81bd0 c 239 224
+81bdc 4 190 224
+81be0 4 239 224
+81be4 4 190 224
+81be8 8 239 224
+81bf0 4 120 239
+81bf4 8 239 224
+81bfc 4 101 206
+81c00 4 190 224
+81c04 4 120 239
+81c08 4 481 202
+81c0c 4 190 224
+81c10 4 192 224
+81c14 8 52 224
+81c1c 4 223 224
+81c20 20 243 224
+81c40 1c 52 224
+81c5c 8 52 224
+81c64 8 202 224
+81c6c 4 208 224
+81c70 4 205 224
+81c74 14 208 224
+81c88 38 211 224
+81cc0 18 212 224
+81cd8 4 213 224
+81cdc 8 213 224
+81ce4 4 214 224
+81ce8 4 213 224
+81cec 4 214 224
+81cf0 c 213 224
+81cfc c 190 224
+81d08 c 190 224
+81d14 4 192 224
+81d18 8 52 224
+81d20 c 224 224
+81d2c c 224 224
+81d38 18 224 224
+81d50 4 96 239
+81d54 4 97 239
+81d58 4 319 202
+81d5c 4 97 239
+81d60 8 161 202
+81d68 4 161 202
+81d6c 20 243 224
+81d8c 8 209 224
+81d94 c 214 224
+81da0 8 135 223
+81da8 10 223 224
+81db8 8 64 239
+81dc0 c 96 239
+81dcc 18 97 239
+FUNC 81e30 214 0 std::priv::__get_decimal_integer<char*, long double, char>
+81e30 c 239 224
+81e3c 4 190 224
+81e40 4 239 224
+81e44 4 190 224
+81e48 8 239 224
+81e50 4 120 239
+81e54 8 239 224
+81e5c 4 101 206
+81e60 4 190 224
+81e64 4 120 239
+81e68 4 481 202
+81e6c 4 190 224
+81e70 4 200 224
+81e74 8 52 224
+81e7c 4 223 224
+81e80 20 243 224
+81ea0 1c 52 224
+81ebc 8 52 224
+81ec4 8 202 224
+81ecc 4 208 224
+81ed0 4 205 224
+81ed4 14 208 224
+81ee8 38 211 224
+81f20 18 212 224
+81f38 4 213 224
+81f3c 8 213 224
+81f44 4 214 224
+81f48 4 213 224
+81f4c 4 214 224
+81f50 c 213 224
+81f5c c 190 224
+81f68 c 190 224
+81f74 4 200 224
+81f78 8 52 224
+81f80 c 224 224
+81f8c c 224 224
+81f98 18 224 224
+81fb0 4 96 239
+81fb4 4 97 239
+81fb8 4 319 202
+81fbc 4 97 239
+81fc0 8 161 202
+81fc8 4 161 202
+81fcc 20 243 224
+81fec 8 209 224
+81ff4 c 214 224
+82000 8 135 223
+82008 10 223 224
+82018 8 64 239
+82020 c 96 239
+8202c 18 97 239
+FUNC 82090 2c0 0 std::priv::__get_decimal_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int, wchar_t>
+82090 14 239 224
+820a4 4 182 224
+820a8 10 239 224
+820b8 4 120 239
+820bc 4 239 224
+820c0 8 239 224
+820c8 4 120 239
+820cc 4 181 224
+820d0 4 481 202
+820d4 8 101 206
+820dc 8 95 215
+820e4 4 75 215
+820e8 8 90 215
+820f0 8 77 215
+820f8 c 90 215
+82104 c 190 224
+82110 c 90 215
+8211c 8 52 224
+82124 4 223 224
+82128 c 224 224
+82134 4 224 224
+82138 4 233 224
+8213c 4 64 239
+82140 c 233 224
+8214c c 96 239
+82158 c 97 239
+82164 20 243 224
+82184 1c 235 236
+821a0 4 93 215
+821a4 4 94 215
+821a8 8 95 215
+821b0 8 52 224
+821b8 8 202 224
+821c0 4 208 224
+821c4 4 205 224
+821c8 c 208 224
+821d4 8 211 224
+821dc 4 212 224
+821e0 4 213 224
+821e4 4 214 224
+821e8 8 213 224
+821f0 4 68 215
+821f4 10 229 236
+82204 c 228 236
+82210 8 69 215
+82218 4 92 215
+8221c 1c 235 236
+82238 4 93 215
+8223c 4 94 215
+82240 8 95 215
+82248 4 228 236
+8224c c 229 236
+82258 8 69 215
+82260 1c 235 236
+8227c 4 93 215
+82280 4 94 215
+82284 8 95 215
+8228c 8 209 224
+82294 8 214 224
+8229c 54 234 236
+822f0 34 235 236
+82324 8 64 239
+8232c c 96 239
+82338 18 97 239
+FUNC 82350 290 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_year
+82350 8 348 242
+82358 8 348 242
+82360 4 75 215
+82364 8 90 215
+8236c 8 77 215
+82374 c 90 215
+82380 c 351 242
+8238c 8 352 242
+82394 4 353 242
+82398 8 363 242
+823a0 1c 235 236
+823bc 4 93 215
+823c0 8 95 215
+823c8 4 351 242
+823cc 4 94 215
+823d0 8 351 242
+823d8 1c 356 242
+823f4 4 357 242
+823f8 4 356 242
+823fc 4 358 242
+82400 4 358 242
+82404 4 75 215
+82408 c 357 242
+82414 8 358 242
+8241c 4 358 242
+82420 4 75 215
+82424 8 90 215
+8242c 8 77 215
+82434 c 90 215
+82440 c 359 242
+8244c c 360 242
+82458 4 362 242
+8245c 8 363 242
+82464 1c 235 236
+82480 4 93 215
+82484 4 95 215
+82488 4 94 215
+8248c 8 95 215
+82494 20 235 236
+824b4 48 234 236
+824fc 1c 235 236
+82518 4 93 215
+8251c 4 95 215
+82520 4 94 215
+82524 8 95 215
+8252c 20 234 236
+8254c 14 235 236
+82560 2c 234 236
+8258c 54 235 236
+FUNC 825e0 2bc 0 std::priv::__get_decimal_integer<std::istreambuf_iterator<char, std::char_traits<char> >, int, char>
+825e0 14 239 224
+825f4 4 182 224
+825f8 18 239 224
+82610 4 181 224
+82614 4 120 239
+82618 4 239 224
+8261c 4 120 239
+82620 4 481 202
+82624 8 101 206
+8262c 8 95 215
+82634 4 75 215
+82638 8 90 215
+82640 8 77 215
+82648 c 90 215
+82654 c 190 224
+82660 c 90 215
+8266c 8 52 224
+82674 4 223 224
+82678 c 224 224
+82684 4 224 224
+82688 4 233 224
+8268c 4 64 239
+82690 c 233 224
+8269c c 96 239
+826a8 c 97 239
+826b4 20 243 224
+826d4 14 235 236
+826e8 4 93 215
+826ec 4 94 215
+826f0 8 95 215
+826f8 8 52 224
+82700 8 202 224
+82708 4 208 224
+8270c 4 205 224
+82710 c 208 224
+8271c 8 211 224
+82724 4 212 224
+82728 4 213 224
+8272c 4 214 224
+82730 8 213 224
+82738 4 68 215
+8273c 10 229 236
+8274c 8 228 236
+82754 8 69 215
+8275c 4 92 215
+82760 18 235 236
+82778 4 93 215
+8277c 4 94 215
+82780 8 95 215
+82788 4 228 236
+8278c c 229 236
+82798 8 69 215
+827a0 14 235 236
+827b4 4 93 215
+827b8 4 94 215
+827bc 8 95 215
+827c4 8 209 224
+827cc 8 214 224
+827d4 58 234 236
+8282c 44 235 236
+82870 8 64 239
+82878 c 96 239
+82884 18 97 239
+FUNC 8289c 274 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_year
+8289c 8 348 242
+828a4 8 348 242
+828ac 4 75 215
+828b0 8 90 215
+828b8 8 77 215
+828c0 c 90 215
+828cc c 351 242
+828d8 8 352 242
+828e0 4 353 242
+828e4 8 363 242
+828ec 14 235 236
+82900 4 93 215
+82904 8 95 215
+8290c 4 351 242
+82910 4 94 215
+82914 8 351 242
+8291c 1c 356 242
+82938 4 357 242
+8293c 4 356 242
+82940 4 358 242
+82944 4 358 242
+82948 4 75 215
+8294c c 357 242
+82958 8 358 242
+82960 4 358 242
+82964 4 75 215
+82968 8 90 215
+82970 8 77 215
+82978 c 90 215
+82984 c 359 242
+82990 c 360 242
+8299c 4 362 242
+829a0 8 363 242
+829a8 14 235 236
+829bc 4 93 215
+829c0 4 95 215
+829c4 4 94 215
+829c8 8 95 215
+829d0 10 235 236
+829e0 20 234 236
+82a00 14 235 236
+82a14 48 234 236
+82a5c 14 235 236
+82a70 4 93 215
+82a74 4 95 215
+82a78 4 94 215
+82a7c 8 95 215
+82a84 2c 234 236
+82ab0 60 235 236
+FUNC 82b10 3e0 0 std::priv::__do_put_bool<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+82b10 c 386 226
+82b1c 4 145 212
+82b20 14 386 226
+82b34 8 145 212
+82b3c 4 386 226
+82b40 8 386 226
+82b48 4 145 212
+82b4c 14 351 219
+82b60 8 387 226
+82b68 c 88 228
+82b74 4 389 226
+82b78 10 88 228
+82b88 4 138 212
+82b8c 4 400 238
+82b90 4 139 212
+82b94 4 400 238
+82b98 8 392 226
+82ba0 4 396 226
+82ba4 4 395 226
+82ba8 4 396 226
+82bac 8 398 226
+82bb4 10 480 201
+82bc4 4 62 230
+82bc8 10 200 236
+82bd8 c 199 236
+82be4 4 200 236
+82be8 8 62 230
+82bf0 1c 480 201
+82c0c 18 213 201
+82c24 c 199 236
+82c30 4 200 236
+82c34 8 62 230
+82c3c 4 215 201
+82c40 8 213 201
+82c48 4 214 201
+82c4c 4 62 230
+82c50 10 200 236
+82c60 14 199 236
+82c74 c 200 236
+82c80 14 199 236
+82c94 1c 200 236
+82cb0 c 96 239
+82cbc 8 97 239
+82cc4 8 161 202
+82ccc 4 161 202
+82cd0 20 407 226
+82cf0 10 89 228
+82d00 4 138 212
+82d04 4 400 238
+82d08 4 139 212
+82d0c 4 400 238
+82d10 8 392 226
+82d18 14 213 201
+82d2c c 199 236
+82d38 4 200 236
+82d3c 8 62 230
+82d44 4 215 201
+82d48 8 213 201
+82d50 4 214 201
+82d54 4 62 230
+82d58 10 200 236
+82d68 14 199 236
+82d7c c 200 236
+82d88 4 135 223
+82d8c 20 407 226
+82dac 14 213 201
+82dc0 c 199 236
+82dcc 4 200 236
+82dd0 8 62 230
+82dd8 4 215 201
+82ddc 8 213 201
+82de4 4 214 201
+82de8 4 62 230
+82dec 10 200 236
+82dfc 14 199 236
+82e10 c 200 236
+82e1c 10 480 201
+82e2c 4 62 230
+82e30 10 200 236
+82e40 c 199 236
+82e4c 4 200 236
+82e50 8 62 230
+82e58 18 480 201
+82e70 14 199 236
+82e84 10 200 236
+82e94 8 213 201
+82e9c 8 480 201
+82ea4 8 213 201
+82eac 8 64 239
+82eb4 c 96 239
+82ec0 20 97 239
+82ee0 10 387 226
+FUNC 82ef0 4c 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+82ef0 c 420 226
+82efc 8 422 226
+82f04 18 426 226
+82f1c 8 427 226
+82f24 10 424 226
+82f34 8 427 226
+FUNC 82f3c 80 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::operator=
+82f3c c 61 230
+82f48 8 61 230
+82f50 8 62 230
+82f58 4 63 230
+82f5c 10 200 236
+82f6c c 199 236
+82f78 8 62 230
+82f80 4 62 230
+82f84 10 65 230
+82f94 4 199 236
+82f98 4 62 230
+82f9c 14 199 236
+82fb0 c 200 236
+FUNC 82fbc 3d8 0 std::priv::__do_put_bool<char, std::ostreambuf_iterator<char, std::char_traits<char> > >
+82fbc c 386 226
+82fc8 4 145 212
+82fcc 14 386 226
+82fe0 8 145 212
+82fe8 4 386 226
+82fec 8 386 226
+82ff4 4 145 212
+82ff8 14 351 219
+8300c 8 387 226
+83014 c 59 228
+83020 4 389 226
+83024 10 59 228
+83034 4 138 212
+83038 4 400 238
+8303c 4 139 212
+83040 8 392 226
+83048 4 396 226
+8304c 4 395 226
+83050 4 396 226
+83054 8 398 226
+8305c 10 480 201
+8306c 4 62 230
+83070 10 200 236
+83080 10 199 236
+83090 18 480 201
+830a8 18 213 201
+830c0 10 199 236
+830d0 4 215 201
+830d4 8 213 201
+830dc 4 214 201
+830e0 4 62 230
+830e4 10 200 236
+830f4 14 199 236
+83108 8 200 236
+83110 4 62 230
+83114 8 215 201
+8311c 14 213 201
+83130 c 96 239
+8313c 8 97 239
+83144 8 161 202
+8314c 4 161 202
+83150 20 407 226
+83170 14 199 236
+83184 c 200 236
+83190 c 62 230
+8319c 10 60 228
+831ac 4 138 212
+831b0 4 400 238
+831b4 4 139 212
+831b8 8 392 226
+831c0 14 213 201
+831d4 10 199 236
+831e4 4 215 201
+831e8 8 213 201
+831f0 4 214 201
+831f4 4 62 230
+831f8 10 200 236
+83208 14 199 236
+8321c 8 200 236
+83224 c 62 230
+83230 4 135 223
+83234 20 407 226
+83254 14 213 201
+83268 10 199 236
+83278 4 215 201
+8327c 8 213 201
+83284 4 214 201
+83288 4 62 230
+8328c 10 200 236
+8329c 14 199 236
+832b0 8 200 236
+832b8 c 62 230
+832c4 10 480 201
+832d4 4 62 230
+832d8 10 200 236
+832e8 10 199 236
+832f8 18 480 201
+83310 14 199 236
+83324 c 200 236
+83330 c 62 230
+8333c 8 213 201
+83344 8 480 201
+8334c 8 213 201
+83354 8 64 239
+8335c c 96 239
+83368 1c 97 239
+83384 10 387 226
+FUNC 83394 50 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+83394 10 420 226
+833a4 8 422 226
+833ac 18 426 226
+833c4 8 427 226
+833cc 10 424 226
+833dc 8 427 226
+FUNC 833e4 8c 0 std::ostreambuf_iterator<char, std::char_traits<char> >::operator=
+833e4 c 61 230
+833f0 4 62 230
+833f4 4 61 230
+833f8 4 61 230
+833fc 4 62 230
+83400 4 63 230
+83404 10 200 236
+83414 c 199 236
+83420 4 62 230
+83424 10 65 230
+83434 4 199 236
+83438 4 62 230
+8343c 14 199 236
+83450 4 200 236
+83454 8 62 230
+8345c 4 62 230
+83460 10 65 230
+FUNC 83470 c6c 0 std::priv::__money_do_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+83470 10 316 221
+83480 4 145 212
+83484 1c 316 221
+834a0 4 145 212
+834a4 18 316 221
+834bc 4 316 221
+834c0 c 145 212
+834cc c 316 221
+834d8 4 145 212
+834dc 38 351 219
+83514 4 101 207
+83518 4 351 219
+8351c 68 101 207
+83584 4 336 221
+83588 10 92 222
+83598 4 93 222
+8359c 8 92 222
+835a4 c 93 222
+835b0 8 94 222
+835b8 4 93 222
+835bc 8 94 222
+835c4 4 93 222
+835c8 c 94 222
+835d4 10 98 222
+835e4 4 95 222
+835e8 4 98 222
+835ec 4 95 222
+835f0 1c 135 222
+8360c 8 354 221
+83614 10 360 221
+83624 4 361 221
+83628 4 368 221
+8362c 4 362 221
+83630 4 368 221
+83634 18 97 222
+8364c 4 385 221
+83650 8 387 221
+83658 c 79 207
+83664 4 387 221
+83668 4 390 221
+8366c 4 64 239
+83670 c 96 239
+8367c c 97 239
+83688 8 64 239
+83690 c 96 239
+8369c 10 97 239
+836ac 8 64 239
+836b4 c 96 239
+836c0 10 97 239
+836d0 8 498 221
+836d8 38 499 221
+83710 10 132 222
+83720 4 133 222
+83724 8 132 222
+8372c c 133 222
+83738 8 134 222
+83740 4 133 222
+83744 8 134 222
+8374c 4 133 222
+83750 c 134 222
+8375c 14 138 222
+83770 c 135 222
+8377c 8 368 221
+83784 18 96 222
+8379c 4 385 221
+837a0 c 79 207
+837ac 8 387 221
+837b4 4 388 221
+837b8 8 387 221
+837c0 8 79 207
+837c8 4 387 221
+837cc c 389 221
+837d8 c 108 213
+837e4 4 41 213
+837e8 c 108 213
+837f4 18 41 213
+8380c 4 397 221
+83810 4 611 237
+83814 4 612 237
+83818 4 101 206
+8381c 8 397 221
+83824 8 613 237
+8382c 8 397 221
+83834 8 579 238
+8383c 4 355 217
+83840 4 74 239
+83844 8 472 238
+8384c 8 482 238
+83854 4 232 247
+83858 8 107 244
+83860 10 106 244
+83870 4 101 206
+83874 10 485 238
+83884 1c 399 221
+838a0 4 400 238
+838a4 10 399 221
+838b4 c 413 221
+838c0 4 400 238
+838c4 4 419 221
+838c8 4 400 238
+838cc 4 421 221
+838d0 4 400 238
+838d4 4 416 221
+838d8 4 419 221
+838dc 4 421 221
+838e0 c 419 221
+838ec 10 421 221
+838fc 4 422 221
+83900 10 400 238
+83910 8 423 221
+83918 8 427 221
+83920 4 427 221
+83924 4 100 222
+83928 4 427 221
+8392c c 100 222
+83938 8 427 221
+83940 10 437 221
+83950 8 439 221
+83958 c 443 221
+83964 c 444 221
+83970 10 446 221
+83980 8 579 238
+83988 4 427 221
+8398c 4 140 222
+83990 4 427 221
+83994 c 139 222
+839a0 8 427 221
+839a8 10 437 221
+839b8 c 437 221
+839c4 c 443 221
+839d0 c 448 221
+839dc 8 446 221
+839e4 4 448 221
+839e8 10 448 221
+839f8 1c 480 201
+83a14 4 62 230
+83a18 10 200 236
+83a28 10 199 236
+83a38 8 480 201
+83a40 8 450 221
+83a48 4 480 221
+83a4c 4 444 221
+83a50 c 480 221
+83a5c c 454 221
+83a68 14 480 221
+83a7c 24 454 221
+83aa0 18 136 222
+83ab8 8 385 221
+83ac0 1c 137 222
+83adc 10 140 222
+83aec 10 99 222
+83afc c 456 221
+83b08 10 458 221
+83b18 14 480 201
+83b2c 4 62 230
+83b30 10 200 236
+83b40 10 199 236
+83b50 8 480 201
+83b58 c 459 221
+83b64 8 452 221
+83b6c c 400 238
+83b78 8 492 221
+83b80 8 493 221
+83b88 8 213 201
+83b90 1c 213 201
+83bac 10 199 236
+83bbc 4 215 201
+83bc0 8 213 201
+83bc8 4 214 201
+83bcc 4 62 230
+83bd0 10 200 236
+83be0 14 199 236
+83bf4 8 200 236
+83bfc 4 62 230
+83c00 8 215 201
+83c08 8 213 201
+83c10 8 493 221
+83c18 4 494 221
+83c1c c 494 221
+83c28 18 480 201
+83c40 4 62 230
+83c44 10 200 236
+83c54 10 199 236
+83c64 8 480 201
+83c6c 8 496 221
+83c74 4 64 239
+83c78 4 498 221
+83c7c c 96 239
+83c88 4 97 239
+83c8c 8 70 213
+83c94 10 70 213
+83ca4 c 466 221
+83cb0 10 467 221
+83cc0 8 470 221
+83cc8 10 473 221
+83cd8 c 475 221
+83ce4 c 476 221
+83cf0 18 480 201
+83d08 4 62 230
+83d0c 10 200 236
+83d1c 10 199 236
+83d2c c 480 201
+83d38 8 285 201
+83d40 14 477 221
+83d54 8 285 201
+83d5c c 483 221
+83d68 1c 462 221
+83d84 8 213 201
+83d8c 10 213 201
+83d9c 10 199 236
+83dac 4 215 201
+83db0 8 213 201
+83db8 4 214 201
+83dbc 4 62 230
+83dc0 14 200 236
+83dd4 1c 199 236
+83df0 8 200 236
+83df8 c 62 230
+83e04 18 199 236
+83e1c c 200 236
+83e28 c 62 230
+83e34 14 199 236
+83e48 c 200 236
+83e54 c 62 230
+83e60 14 199 236
+83e74 c 200 236
+83e80 c 62 230
+83e8c 18 199 236
+83ea4 c 200 236
+83eb0 10 62 230
+83ec0 24 285 201
+83ee4 4 480 221
+83ee8 4 482 221
+83eec 4 480 221
+83ef0 c 482 221
+83efc 24 285 201
+83f20 c 355 221
+83f2c 24 285 201
+83f50 10 463 221
+83f60 8 304 238
+83f68 8 306 238
+83f70 8 307 238
+83f78 8 308 238
+83f80 14 134 223
+83f94 8 107 244
+83f9c c 106 244
+83fa8 4 107 244
+83fac c 106 244
+83fb8 4 101 206
+83fbc 4 107 244
+83fc0 4 64 239
+83fc4 c 96 239
+83fd0 8 97 239
+83fd8 8 70 213
+83fe0 8 70 213
+83fe8 4 479 238
+83fec 4 165 239
+83ff0 4 164 239
+83ff4 4 479 238
+83ff8 4 165 239
+83ffc 8 160 239
+84004 4 64 213
+84008 8 67 213
+84010 c 64 213
+8401c 4 64 239
+84020 c 96 239
+8402c c 97 239
+84038 8 64 239
+84040 c 96 239
+8404c 10 97 239
+8405c 8 64 239
+84064 c 96 239
+84070 10 97 239
+84080 18 498 221
+84098 14 305 238
+840ac 8 64 239
+840b4 c 96 239
+840c0 4 97 239
+840c4 4 70 213
+840c8 4 97 239
+840cc 4 70 213
+840d0 c 70 213
+FUNC 840dc 34 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+840dc 4 515 221
+840e0 8 518 221
+840e8 4 515 221
+840ec 18 518 221
+84104 4 518 221
+84108 8 519 221
+FUNC 84110 c6c 0 std::priv::__money_do_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::__basic_iostring<char> >
+84110 10 316 221
+84120 4 145 212
+84124 1c 316 221
+84140 4 145 212
+84144 18 316 221
+8415c 4 316 221
+84160 c 145 212
+8416c c 316 221
+84178 4 145 212
+8417c 38 351 219
+841b4 4 101 207
+841b8 4 351 219
+841bc 68 101 207
+84224 4 336 221
+84228 10 92 222
+84238 4 93 222
+8423c 8 92 222
+84244 c 93 222
+84250 8 94 222
+84258 4 93 222
+8425c 8 94 222
+84264 4 93 222
+84268 c 94 222
+84274 10 98 222
+84284 4 95 222
+84288 4 98 222
+8428c 4 95 222
+84290 1c 135 222
+842ac 8 354 221
+842b4 10 360 221
+842c4 4 361 221
+842c8 4 368 221
+842cc 4 362 221
+842d0 4 368 221
+842d4 18 97 222
+842ec 4 385 221
+842f0 8 387 221
+842f8 c 79 207
+84304 4 387 221
+84308 4 390 221
+8430c 4 64 239
+84310 c 96 239
+8431c c 97 239
+84328 8 64 239
+84330 c 96 239
+8433c 10 97 239
+8434c 8 64 239
+84354 c 96 239
+84360 10 97 239
+84370 8 498 221
+84378 38 499 221
+843b0 10 132 222
+843c0 4 133 222
+843c4 8 132 222
+843cc c 133 222
+843d8 8 134 222
+843e0 4 133 222
+843e4 8 134 222
+843ec 4 133 222
+843f0 c 134 222
+843fc 14 138 222
+84410 c 135 222
+8441c 8 368 221
+84424 18 96 222
+8443c 4 385 221
+84440 c 79 207
+8444c 8 387 221
+84454 4 388 221
+84458 8 387 221
+84460 8 79 207
+84468 4 387 221
+8446c c 389 221
+84478 c 108 213
+84484 4 41 213
+84488 c 108 213
+84494 18 41 213
+844ac 4 397 221
+844b0 4 611 237
+844b4 4 612 237
+844b8 4 101 206
+844bc 8 397 221
+844c4 8 613 237
+844cc 8 397 221
+844d4 8 579 238
+844dc 4 355 217
+844e0 4 74 239
+844e4 8 472 238
+844ec 8 482 238
+844f4 4 232 247
+844f8 8 107 244
+84500 10 106 244
+84510 4 101 206
+84514 10 485 238
+84524 1c 399 221
+84540 4 400 238
+84544 10 399 221
+84554 c 413 221
+84560 4 400 238
+84564 4 419 221
+84568 4 400 238
+8456c 4 421 221
+84570 4 400 238
+84574 4 416 221
+84578 4 419 221
+8457c 4 421 221
+84580 c 419 221
+8458c 10 421 221
+8459c 4 422 221
+845a0 10 400 238
+845b0 8 423 221
+845b8 8 427 221
+845c0 4 427 221
+845c4 4 100 222
+845c8 4 427 221
+845cc c 100 222
+845d8 8 427 221
+845e0 10 437 221
+845f0 8 439 221
+845f8 c 443 221
+84604 c 444 221
+84610 10 446 221
+84620 8 579 238
+84628 4 427 221
+8462c 4 140 222
+84630 4 427 221
+84634 c 139 222
+84640 8 427 221
+84648 10 437 221
+84658 c 437 221
+84664 c 443 221
+84670 c 448 221
+8467c 8 446 221
+84684 4 448 221
+84688 10 448 221
+84698 1c 480 201
+846b4 4 62 230
+846b8 10 200 236
+846c8 10 199 236
+846d8 8 480 201
+846e0 8 450 221
+846e8 4 480 221
+846ec 4 444 221
+846f0 c 480 221
+846fc c 454 221
+84708 14 480 221
+8471c 24 454 221
+84740 18 136 222
+84758 8 385 221
+84760 1c 137 222
+8477c 10 140 222
+8478c 10 99 222
+8479c c 456 221
+847a8 10 458 221
+847b8 14 480 201
+847cc 4 62 230
+847d0 10 200 236
+847e0 10 199 236
+847f0 8 480 201
+847f8 c 459 221
+84804 8 452 221
+8480c c 400 238
+84818 8 492 221
+84820 8 493 221
+84828 8 213 201
+84830 1c 213 201
+8484c 10 199 236
+8485c 4 215 201
+84860 8 213 201
+84868 4 214 201
+8486c 4 62 230
+84870 10 200 236
+84880 14 199 236
+84894 8 200 236
+8489c 4 62 230
+848a0 8 215 201
+848a8 8 213 201
+848b0 8 493 221
+848b8 4 494 221
+848bc c 494 221
+848c8 18 480 201
+848e0 4 62 230
+848e4 10 200 236
+848f4 10 199 236
+84904 8 480 201
+8490c 8 496 221
+84914 4 64 239
+84918 4 498 221
+8491c c 96 239
+84928 4 97 239
+8492c 8 70 213
+84934 10 70 213
+84944 c 466 221
+84950 10 467 221
+84960 8 470 221
+84968 10 473 221
+84978 c 475 221
+84984 c 476 221
+84990 18 480 201
+849a8 4 62 230
+849ac 10 200 236
+849bc 10 199 236
+849cc c 480 201
+849d8 8 285 201
+849e0 14 477 221
+849f4 8 285 201
+849fc c 483 221
+84a08 1c 462 221
+84a24 8 213 201
+84a2c 10 213 201
+84a3c 10 199 236
+84a4c 4 215 201
+84a50 8 213 201
+84a58 4 214 201
+84a5c 4 62 230
+84a60 14 200 236
+84a74 1c 199 236
+84a90 8 200 236
+84a98 c 62 230
+84aa4 18 199 236
+84abc c 200 236
+84ac8 c 62 230
+84ad4 14 199 236
+84ae8 c 200 236
+84af4 c 62 230
+84b00 14 199 236
+84b14 c 200 236
+84b20 c 62 230
+84b2c 18 199 236
+84b44 c 200 236
+84b50 10 62 230
+84b60 24 285 201
+84b84 4 480 221
+84b88 4 482 221
+84b8c 4 480 221
+84b90 c 482 221
+84b9c 24 285 201
+84bc0 c 355 221
+84bcc 24 285 201
+84bf0 10 463 221
+84c00 8 304 238
+84c08 8 306 238
+84c10 8 307 238
+84c18 8 308 238
+84c20 14 134 223
+84c34 8 107 244
+84c3c c 106 244
+84c48 4 107 244
+84c4c c 106 244
+84c58 4 101 206
+84c5c 4 107 244
+84c60 4 64 239
+84c64 c 96 239
+84c70 8 97 239
+84c78 8 70 213
+84c80 8 70 213
+84c88 4 479 238
+84c8c 4 165 239
+84c90 4 164 239
+84c94 4 479 238
+84c98 4 165 239
+84c9c 8 160 239
+84ca4 4 64 213
+84ca8 8 67 213
+84cb0 c 64 213
+84cbc 4 64 239
+84cc0 c 96 239
+84ccc c 97 239
+84cd8 8 64 239
+84ce0 c 96 239
+84cec 10 97 239
+84cfc 8 64 239
+84d04 c 96 239
+84d10 10 97 239
+84d20 18 498 221
+84d38 14 305 238
+84d4c 8 64 239
+84d54 c 96 239
+84d60 4 97 239
+84d64 4 70 213
+84d68 4 97 239
+84d6c 4 70 213
+84d70 c 70 213
+FUNC 84d7c 138 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+84d7c 10 505 221
+84d8c 4 108 213
+84d90 4 41 213
+84d94 10 505 221
+84da4 c 108 213
+84db0 4 41 213
+84db4 4 505 221
+84db8 10 505 221
+84dc8 4 108 213
+84dcc 10 41 213
+84ddc 4 611 237
+84de0 4 128 226
+84de4 4 613 237
+84de8 4 128 226
+84dec 4 612 237
+84df0 4 613 237
+84df4 4 101 206
+84df8 4 128 226
+84dfc 28 510 221
+84e24 4 64 239
+84e28 4 510 221
+84e2c c 96 239
+84e38 4 97 239
+84e3c 8 319 202
+84e44 4 97 239
+84e48 8 161 202
+84e50 4 161 202
+84e54 24 511 221
+84e78 8 135 223
+84e80 8 64 239
+84e88 c 96 239
+84e94 4 97 239
+84e98 4 70 213
+84e9c 4 97 239
+84ea0 4 70 213
+84ea4 10 70 213
+FUNC 84eb4 38 0 std::priv::_String_base<wchar_t, std::priv::__iostring_allocator<wchar_t> >::_M_deallocate_block
+84eb4 4 64 239
+84eb8 c 96 239
+84ec4 4 97 239
+84ec8 8 319 202
+84ed0 4 97 239
+84ed4 4 135 223
+84ed8 8 161 202
+84ee0 4 161 202
+84ee4 4 102 239
+84ee8 4 135 223
+FUNC 84eec 1d4 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+84eec 10 425 242
+84efc 4 145 212
+84f00 8 425 242
+84f08 4 145 212
+84f0c 4 425 242
+84f10 4 145 212
+84f14 10 425 242
+84f24 c 425 242
+84f30 4 145 212
+84f34 14 351 219
+84f48 4 428 242
+84f4c 4 108 213
+84f50 4 41 213
+84f54 4 428 242
+84f58 10 108 213
+84f68 14 41 213
+84f7c 4 613 237
+84f80 18 430 242
+84f98 4 611 237
+84f9c 4 612 237
+84fa0 4 613 237
+84fa4 4 101 206
+84fa8 10 430 242
+84fb8 4 213 201
+84fbc 14 213 201
+84fd0 c 199 236
+84fdc 4 200 236
+84fe0 8 62 230
+84fe8 4 215 201
+84fec 8 213 201
+84ff4 4 214 201
+84ff8 4 62 230
+84ffc 10 200 236
+8500c 14 199 236
+85020 10 200 236
+85030 14 96 239
+85044 4 97 239
+85048 8 319 202
+85050 4 97 239
+85054 8 161 202
+8505c 4 161 202
+85060 28 432 242
+85088 8 135 223
+85090 c 213 201
+8509c 14 428 242
+850b0 10 156 239
+FUNC 850c0 c68 0 std::priv::__money_do_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >
+850c0 24 316 221
+850e4 4 145 212
+850e8 18 316 221
+85100 8 145 212
+85108 c 316 221
+85114 8 145 212
+8511c 4 316 221
+85120 c 316 221
+8512c 4 145 212
+85130 38 351 219
+85168 4 206 207
+8516c 4 351 219
+85170 5c 206 207
+851cc 4 336 221
+851d0 10 173 222
+851e0 4 174 222
+851e4 4 173 222
+851e8 c 174 222
+851f4 8 175 222
+851fc 4 174 222
+85200 10 175 222
+85210 10 179 222
+85220 4 176 222
+85224 4 179 222
+85228 4 176 222
+8522c 1c 215 222
+85248 8 354 221
+85250 14 360 221
+85264 4 361 221
+85268 8 368 221
+85270 1c 177 222
+8528c 8 385 221
+85294 1c 184 207
+852b0 4 387 221
+852b4 c 389 221
+852c0 c 108 213
+852cc 4 41 213
+852d0 c 108 213
+852dc 14 41 213
+852f0 4 101 206
+852f4 4 397 221
+852f8 4 41 213
+852fc 4 397 221
+85300 4 613 237
+85304 4 611 237
+85308 4 612 237
+8530c 4 397 221
+85310 4 613 237
+85314 4 397 221
+85318 4 355 217
+8531c 4 74 239
+85320 8 355 217
+85328 8 472 238
+85330 8 482 238
+85338 4 267 247
+8533c 8 107 244
+85344 c 106 244
+85350 10 484 238
+85360 4 101 206
+85364 8 485 238
+8536c 2c 399 221
+85398 4 400 238
+8539c 4 413 221
+853a0 4 419 221
+853a4 4 421 221
+853a8 8 400 238
+853b0 4 419 221
+853b4 4 413 221
+853b8 4 421 221
+853bc 8 400 238
+853c4 8 421 221
+853cc 8 416 221
+853d4 4 419 221
+853d8 4 413 221
+853dc 4 419 221
+853e0 4 422 221
+853e4 10 400 238
+853f4 8 423 221
+853fc 8 427 221
+85404 4 427 221
+85408 4 181 222
+8540c 4 427 221
+85410 c 181 222
+8541c 8 427 221
+85424 10 437 221
+85434 8 439 221
+8543c c 443 221
+85448 c 444 221
+85454 c 446 221
+85460 10 212 222
+85470 4 213 222
+85474 4 212 222
+85478 c 213 222
+85484 8 214 222
+8548c 4 213 222
+85490 10 214 222
+854a0 14 218 222
+854b4 c 215 222
+854c0 4 368 221
+854c4 4 362 221
+854c8 4 368 221
+854cc 1c 178 222
+854e8 4 385 221
+854ec c 387 221
+854f8 4 390 221
+854fc 8 64 239
+85504 c 96 239
+85510 18 97 239
+85528 8 64 239
+85530 c 96 239
+8553c 18 97 239
+85554 4 64 239
+85558 c 96 239
+85564 c 97 239
+85570 8 498 221
+85578 38 499 221
+855b0 4 388 221
+855b4 c 387 221
+855c0 c 108 213
+855cc 4 41 213
+855d0 c 108 213
+855dc 14 41 213
+855f0 4 101 206
+855f4 4 397 221
+855f8 4 41 213
+855fc 4 397 221
+85600 4 613 237
+85604 4 611 237
+85608 4 612 237
+8560c 4 397 221
+85610 4 613 237
+85614 4 397 221
+85618 10 584 238
+85628 4 427 221
+8562c 4 220 222
+85630 4 427 221
+85634 c 219 222
+85640 8 427 221
+85648 10 437 221
+85658 c 437 221
+85664 c 443 221
+85670 c 448 221
+8567c 8 446 221
+85684 4 448 221
+85688 10 448 221
+85698 1c 480 201
+856b4 4 62 230
+856b8 10 200 236
+856c8 c 199 236
+856d4 4 200 236
+856d8 8 62 230
+856e0 8 480 201
+856e8 8 450 221
+856f0 14 480 221
+85704 c 454 221
+85710 18 477 221
+85728 24 454 221
+8574c 20 216 222
+8576c 20 217 222
+8578c 10 220 222
+8579c 10 180 222
+857ac c 456 221
+857b8 10 458 221
+857c8 14 480 201
+857dc 4 62 230
+857e0 10 200 236
+857f0 c 199 236
+857fc 4 200 236
+85800 8 62 230
+85808 8 480 201
+85810 c 459 221
+8581c 8 452 221
+85824 10 400 238
+85834 8 492 221
+8583c 8 493 221
+85844 c 213 201
+85850 1c 213 201
+8586c c 199 236
+85878 4 200 236
+8587c 8 62 230
+85884 4 215 201
+85888 8 213 201
+85890 4 214 201
+85894 4 62 230
+85898 10 200 236
+858a8 14 199 236
+858bc c 200 236
+858c8 8 470 221
+858d0 10 473 221
+858e0 c 475 221
+858ec c 476 221
+858f8 10 477 221
+85908 4 480 201
+8590c 4 62 230
+85910 10 200 236
+85920 c 199 236
+8592c 4 200 236
+85930 8 62 230
+85938 c 480 201
+85944 8 285 201
+8594c 10 477 221
+8595c 4 285 201
+85960 4 477 221
+85964 10 285 201
+85974 c 466 221
+85980 10 467 221
+85990 8 462 221
+85998 28 285 201
+859c0 c 483 221
+859cc 18 199 236
+859e4 10 200 236
+859f4 8 493 221
+859fc 4 494 221
+85a00 c 494 221
+85a0c 18 480 201
+85a24 4 62 230
+85a28 10 200 236
+85a38 c 199 236
+85a44 4 200 236
+85a48 8 62 230
+85a50 8 480 201
+85a58 8 496 221
+85a60 4 64 239
+85a64 4 498 221
+85a68 c 96 239
+85a74 4 97 239
+85a78 8 319 202
+85a80 4 97 239
+85a84 8 161 202
+85a8c 8 161 202
+85a94 14 199 236
+85aa8 10 200 236
+85ab8 14 199 236
+85acc 10 200 236
+85adc 18 199 236
+85af4 14 200 236
+85b08 24 285 201
+85b2c 4 480 221
+85b30 4 482 221
+85b34 4 480 221
+85b38 c 482 221
+85b44 24 285 201
+85b68 c 355 221
+85b74 24 285 201
+85b98 8 135 223
+85ba0 c 304 238
+85bac 8 307 238
+85bb4 4 64 213
+85bb8 4 67 213
+85bbc 8 64 213
+85bc4 10 107 244
+85bd4 10 106 244
+85be4 4 107 244
+85be8 c 106 244
+85bf4 4 107 244
+85bf8 4 64 239
+85bfc 4 101 206
+85c00 c 96 239
+85c0c 8 97 239
+85c14 8 319 202
+85c1c 4 97 239
+85c20 4 135 223
+85c24 8 161 202
+85c2c 4 161 202
+85c30 8 479 238
+85c38 4 164 239
+85c3c 4 165 239
+85c40 4 479 238
+85c44 c 160 239
+85c50 c 135 223
+85c5c c 134 223
+85c68 10 600 237
+85c78 14 498 221
+85c8c 8 64 239
+85c94 c 96 239
+85ca0 18 97 239
+85cb8 4 64 239
+85cbc c 96 239
+85cc8 1c 97 239
+85ce4 c 156 239
+85cf0 8 64 239
+85cf8 c 96 239
+85d04 24 97 239
+FUNC 85d28 34 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+85d28 4 515 221
+85d2c 8 518 221
+85d34 4 515 221
+85d38 18 518 221
+85d50 4 518 221
+85d54 8 519 221
+FUNC 85d5c c68 0 std::priv::__money_do_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::priv::__basic_iostring<wchar_t> >
+85d5c 24 316 221
+85d80 4 145 212
+85d84 18 316 221
+85d9c 8 145 212
+85da4 c 316 221
+85db0 8 145 212
+85db8 4 316 221
+85dbc c 316 221
+85dc8 4 145 212
+85dcc 38 351 219
+85e04 4 206 207
+85e08 4 351 219
+85e0c 5c 206 207
+85e68 4 336 221
+85e6c 10 173 222
+85e7c 4 174 222
+85e80 4 173 222
+85e84 c 174 222
+85e90 8 175 222
+85e98 4 174 222
+85e9c 10 175 222
+85eac 10 179 222
+85ebc 4 176 222
+85ec0 4 179 222
+85ec4 4 176 222
+85ec8 1c 215 222
+85ee4 8 354 221
+85eec 14 360 221
+85f00 4 361 221
+85f04 8 368 221
+85f0c 1c 177 222
+85f28 8 385 221
+85f30 1c 184 207
+85f4c 4 387 221
+85f50 c 389 221
+85f5c c 108 213
+85f68 4 41 213
+85f6c c 108 213
+85f78 14 41 213
+85f8c 4 101 206
+85f90 4 397 221
+85f94 4 41 213
+85f98 4 397 221
+85f9c 4 613 237
+85fa0 4 611 237
+85fa4 4 612 237
+85fa8 4 397 221
+85fac 4 613 237
+85fb0 4 397 221
+85fb4 4 355 217
+85fb8 4 74 239
+85fbc 8 355 217
+85fc4 8 472 238
+85fcc 8 482 238
+85fd4 4 267 247
+85fd8 8 107 244
+85fe0 c 106 244
+85fec 10 484 238
+85ffc 4 101 206
+86000 8 485 238
+86008 2c 399 221
+86034 4 400 238
+86038 4 413 221
+8603c 4 419 221
+86040 4 421 221
+86044 8 400 238
+8604c 4 419 221
+86050 4 413 221
+86054 4 421 221
+86058 8 400 238
+86060 8 421 221
+86068 8 416 221
+86070 4 419 221
+86074 4 413 221
+86078 4 419 221
+8607c 4 422 221
+86080 10 400 238
+86090 8 423 221
+86098 8 427 221
+860a0 4 427 221
+860a4 4 181 222
+860a8 4 427 221
+860ac c 181 222
+860b8 8 427 221
+860c0 10 437 221
+860d0 8 439 221
+860d8 c 443 221
+860e4 c 444 221
+860f0 c 446 221
+860fc 10 212 222
+8610c 4 213 222
+86110 4 212 222
+86114 c 213 222
+86120 8 214 222
+86128 4 213 222
+8612c 10 214 222
+8613c 14 218 222
+86150 c 215 222
+8615c 4 368 221
+86160 4 362 221
+86164 4 368 221
+86168 1c 178 222
+86184 4 385 221
+86188 c 387 221
+86194 4 390 221
+86198 8 64 239
+861a0 c 96 239
+861ac 18 97 239
+861c4 8 64 239
+861cc c 96 239
+861d8 18 97 239
+861f0 4 64 239
+861f4 c 96 239
+86200 c 97 239
+8620c 8 498 221
+86214 38 499 221
+8624c 4 388 221
+86250 c 387 221
+8625c c 108 213
+86268 4 41 213
+8626c c 108 213
+86278 14 41 213
+8628c 4 101 206
+86290 4 397 221
+86294 4 41 213
+86298 4 397 221
+8629c 4 613 237
+862a0 4 611 237
+862a4 4 612 237
+862a8 4 397 221
+862ac 4 613 237
+862b0 4 397 221
+862b4 10 584 238
+862c4 4 427 221
+862c8 4 220 222
+862cc 4 427 221
+862d0 c 219 222
+862dc 8 427 221
+862e4 10 437 221
+862f4 c 437 221
+86300 c 443 221
+8630c c 448 221
+86318 8 446 221
+86320 4 448 221
+86324 10 448 221
+86334 1c 480 201
+86350 4 62 230
+86354 10 200 236
+86364 c 199 236
+86370 4 200 236
+86374 8 62 230
+8637c 8 480 201
+86384 8 450 221
+8638c 14 480 221
+863a0 c 454 221
+863ac 18 477 221
+863c4 24 454 221
+863e8 20 216 222
+86408 20 217 222
+86428 10 220 222
+86438 10 180 222
+86448 c 456 221
+86454 10 458 221
+86464 14 480 201
+86478 4 62 230
+8647c 10 200 236
+8648c c 199 236
+86498 4 200 236
+8649c 8 62 230
+864a4 8 480 201
+864ac c 459 221
+864b8 8 452 221
+864c0 10 400 238
+864d0 8 492 221
+864d8 8 493 221
+864e0 c 213 201
+864ec 1c 213 201
+86508 c 199 236
+86514 4 200 236
+86518 8 62 230
+86520 4 215 201
+86524 8 213 201
+8652c 4 214 201
+86530 4 62 230
+86534 10 200 236
+86544 14 199 236
+86558 c 200 236
+86564 8 470 221
+8656c 10 473 221
+8657c c 475 221
+86588 c 476 221
+86594 10 477 221
+865a4 4 480 201
+865a8 4 62 230
+865ac 10 200 236
+865bc c 199 236
+865c8 4 200 236
+865cc 8 62 230
+865d4 c 480 201
+865e0 8 285 201
+865e8 10 477 221
+865f8 4 285 201
+865fc 4 477 221
+86600 10 285 201
+86610 c 466 221
+8661c 10 467 221
+8662c 8 462 221
+86634 28 285 201
+8665c c 483 221
+86668 18 199 236
+86680 10 200 236
+86690 8 493 221
+86698 4 494 221
+8669c c 494 221
+866a8 18 480 201
+866c0 4 62 230
+866c4 10 200 236
+866d4 c 199 236
+866e0 4 200 236
+866e4 8 62 230
+866ec 8 480 201
+866f4 8 496 221
+866fc 4 64 239
+86700 4 498 221
+86704 c 96 239
+86710 4 97 239
+86714 8 319 202
+8671c 4 97 239
+86720 8 161 202
+86728 8 161 202
+86730 14 199 236
+86744 10 200 236
+86754 14 199 236
+86768 10 200 236
+86778 18 199 236
+86790 14 200 236
+867a4 24 285 201
+867c8 4 480 221
+867cc 4 482 221
+867d0 4 480 221
+867d4 c 482 221
+867e0 24 285 201
+86804 c 355 221
+86810 24 285 201
+86834 8 135 223
+8683c c 304 238
+86848 8 307 238
+86850 4 64 213
+86854 4 67 213
+86858 8 64 213
+86860 10 107 244
+86870 10 106 244
+86880 4 107 244
+86884 c 106 244
+86890 4 107 244
+86894 4 64 239
+86898 4 101 206
+8689c c 96 239
+868a8 8 97 239
+868b0 8 319 202
+868b8 4 97 239
+868bc 4 135 223
+868c0 8 161 202
+868c8 4 161 202
+868cc 8 479 238
+868d4 4 164 239
+868d8 4 165 239
+868dc 4 479 238
+868e0 c 160 239
+868ec c 135 223
+868f8 c 134 223
+86904 10 600 237
+86914 14 498 221
+86928 8 64 239
+86930 c 96 239
+8693c 18 97 239
+86954 4 64 239
+86958 c 96 239
+86964 1c 97 239
+86980 c 156 239
+8698c 8 64 239
+86994 c 96 239
+869a0 24 97 239
+FUNC 869c4 214 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+869c4 10 505 221
+869d4 8 108 213
+869dc 10 505 221
+869ec c 108 213
+869f8 4 41 213
+869fc 4 505 221
+86a00 4 41 213
+86a04 8 505 221
+86a0c 4 41 213
+86a10 4 505 221
+86a14 8 505 221
+86a1c 4 108 213
+86a20 10 41 213
+86a30 4 611 237
+86a34 4 108 213
+86a38 4 613 237
+86a3c 8 108 213
+86a44 4 101 206
+86a48 4 613 237
+86a4c 4 612 237
+86a50 4 108 213
+86a54 10 41 213
+86a64 4 611 237
+86a68 4 133 226
+86a6c 4 613 237
+86a70 4 133 226
+86a74 4 612 237
+86a78 4 613 237
+86a7c 4 101 206
+86a80 4 133 226
+86a84 c 145 212
+86a90 14 351 219
+86aa4 8 135 226
+86aac 18 136 226
+86ac4 4 64 239
+86ac8 c 96 239
+86ad4 4 97 239
+86ad8 8 319 202
+86ae0 4 97 239
+86ae4 8 161 202
+86aec 4 161 202
+86af0 28 510 221
+86b18 4 64 239
+86b1c 4 510 221
+86b20 c 96 239
+86b2c 8 97 239
+86b34 8 319 202
+86b3c 4 97 239
+86b40 8 161 202
+86b48 4 161 202
+86b4c 28 511 221
+86b74 14 135 223
+86b88 14 156 239
+86b9c c 135 226
+86ba8 4 64 239
+86bac c 96 239
+86bb8 4 97 239
+86bbc 4 70 213
+86bc0 4 97 239
+86bc4 4 70 213
+86bc8 10 70 213
+FUNC 86bd8 278 0 std::priv::__get_string<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t*>
+86bd8 34 51 221
+86c0c 20 51 221
+86c2c 4 75 215
+86c30 c 90 215
+86c3c 4 77 215
+86c40 8 90 215
+86c48 4 53 221
+86c4c 10 53 221
+86c5c 4 90 215
+86c60 c 53 221
+86c6c 4 57 221
+86c70 8 62 231
+86c78 4 57 221
+86c7c 4 62 231
+86c80 4 57 221
+86c84 4 58 221
+86c88 4 62 231
+86c8c 20 58 221
+86cac 14 235 236
+86cc0 c 95 215
+86ccc 8 235 236
+86cd4 10 229 236
+86ce4 8 228 236
+86cec 4 55 221
+86cf0 8 69 215
+86cf8 4 228 236
+86cfc 20 229 236
+86d1c 14 235 236
+86d30 c 95 215
+86d3c 1c 235 236
+86d58 10 95 215
+86d68 18 234 236
+86d80 4 95 215
+86d84 28 234 236
+86dac 8 95 215
+86db4 1c 234 236
+86dd0 8 95 215
+86dd8 10 235 236
+86de8 4 95 215
+86dec 14 235 236
+86e00 4 95 215
+86e04 2c 235 236
+86e30 4 95 215
+86e34 1c 235 236
+FUNC 86e50 26c 0 std::priv::__get_string<std::istreambuf_iterator<char, std::char_traits<char> >, char*>
+86e50 3c 51 221
+86e8c 14 51 221
+86ea0 4 75 215
+86ea4 10 90 215
+86eb4 4 77 215
+86eb8 c 90 215
+86ec4 4 53 221
+86ec8 10 53 221
+86ed8 4 90 215
+86edc c 53 221
+86ee8 4 57 221
+86eec 8 62 231
+86ef4 4 57 221
+86ef8 8 62 231
+86f00 4 57 221
+86f04 24 58 221
+86f28 14 235 236
+86f3c 8 95 215
+86f44 18 234 236
+86f5c 4 95 215
+86f60 8 234 236
+86f68 10 229 236
+86f78 8 228 236
+86f80 4 55 221
+86f84 8 69 215
+86f8c 4 228 236
+86f90 20 229 236
+86fb0 18 235 236
+86fc8 8 95 215
+86fd0 18 235 236
+86fe8 8 95 215
+86ff0 20 234 236
+87010 8 95 215
+87018 1c 234 236
+87034 8 95 215
+8703c 8 235 236
+87044 4 95 215
+87048 24 235 236
+8706c 4 95 215
+87070 2c 235 236
+8709c 4 95 215
+870a0 1c 235 236
+FUNC 870bc 138 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::equal
+870bc c 74 215
+870c8 4 74 215
+870cc 8 75 215
+870d4 8 90 215
+870dc 8 77 215
+870e4 8 90 215
+870ec 8 79 215
+870f4 4 80 215
+870f8 4 79 215
+870fc c 80 215
+87108 1c 235 236
+87124 4 94 215
+87128 4 93 215
+8712c 8 95 215
+87134 4 79 215
+87138 4 80 215
+8713c 4 79 215
+87140 c 80 215
+8714c 1c 235 236
+87168 4 93 215
+8716c 4 95 215
+87170 4 94 215
+87174 8 95 215
+8717c 4c 234 236
+871c8 2c 235 236
+FUNC 871f4 290 0 std::priv::__match<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >*>
+871f4 14 78 242
+87208 14 80 242
+8721c 4 78 242
+87220 4 80 242
+87224 14 78 242
+87238 8 80 242
+87240 4 87 242
+87244 4 120 215
+87248 8 83 242
+87250 4 120 215
+87254 4 85 242
+87258 4 87 242
+8725c 8 78 242
+87264 4 82 242
+87268 4 87 242
+8726c 4 78 242
+87270 8 120 215
+87278 4 81 242
+8727c 4 107 242
+87280 4 89 242
+87284 28 91 242
+872ac 8 92 242
+872b4 10 90 215
+872c4 c 93 242
+872d0 4 108 242
+872d4 4 107 242
+872d8 4 108 242
+872dc c 110 242
+872e8 14 91 242
+872fc 4 68 215
+87300 10 229 236
+87310 8 228 236
+87318 4 120 215
+8731c 4 69 215
+87320 4 120 215
+87324 4 119 242
+87328 4 120 242
+8732c 8 120 215
+87334 4 89 242
+87338 28 124 242
+87360 8 115 242
+87368 8 115 242
+87370 4 92 215
+87374 1c 235 236
+87390 8 94 215
+87398 4 93 215
+8739c 4 95 215
+873a0 c 93 242
+873ac c 400 238
+873b8 c 94 242
+873c4 c 104 242
+873d0 20 234 236
+873f0 4 97 242
+873f4 4 96 242
+873f8 4 97 242
+873fc 8 99 242
+87404 8 93 242
+8740c 8 228 236
+87414 18 229 236
+8742c 1c 235 236
+87448 8 91 242
+87450 4 68 215
+87454 4 93 242
+87458 10 229 236
+87468 8 228 236
+87470 4 69 215
+87474 8 101 242
+8747c 8 69 215
+FUNC 87484 178 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_monthname
+87484 c 384 242
+87490 4 292 242
+87494 4 384 242
+87498 8 384 242
+874a0 4 292 242
+874a4 8 384 242
+874ac 10 292 242
+874bc 8 293 242
+874c4 20 294 242
+874e4 4 390 242
+874e8 4 396 242
+874ec c 397 242
+874f8 4 75 215
+874fc 8 392 242
+87504 4 75 215
+87508 8 90 215
+87510 8 77 215
+87518 c 90 215
+87524 c 393 242
+87530 c 394 242
+8753c 4 396 242
+87540 c 397 242
+8754c 3c 235 236
+87588 4 93 215
+8758c 4 95 215
+87590 4 94 215
+87594 8 95 215
+8759c 1c 234 236
+875b8 10 235 236
+875c8 24 234 236
+875ec 10 235 236
+FUNC 875fc 188 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_weekday
+875fc c 367 242
+87608 4 281 242
+8760c 4 367 242
+87610 c 367 242
+8761c c 281 242
+87628 4 367 242
+8762c 4 281 242
+87630 8 282 242
+87638 34 283 242
+8766c 4 373 242
+87670 4 379 242
+87674 c 380 242
+87680 4 75 215
+87684 8 375 242
+8768c 4 75 215
+87690 8 90 215
+87698 8 77 215
+876a0 c 90 215
+876ac c 376 242
+876b8 c 377 242
+876c4 4 379 242
+876c8 c 380 242
+876d4 3c 235 236
+87710 4 93 215
+87714 4 95 215
+87718 4 94 215
+8771c 8 95 215
+87724 1c 234 236
+87740 10 235 236
+87750 24 234 236
+87774 10 235 236
+FUNC 87784 4c4 0 std::priv::__get_formatted_time<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t, std::priv::_WTime_Info>
+87784 c 149 242
+87790 4 145 212
+87794 8 149 242
+8779c 8 145 212
+877a4 4 149 242
+877a8 4 145 212
+877ac 10 149 242
+877bc c 149 242
+877c8 4 145 212
+877cc 10 351 219
+877dc 8 231 242
+877e4 4 166 242
+877e8 8 351 219
+877f0 4 153 242
+877f4 4 166 242
+877f8 4 231 242
+877fc 4 153 242
+87800 8 75 215
+87808 8 90 215
+87810 8 77 215
+87818 c 90 215
+87824 4 156 242
+87828 10 156 242
+87838 c 158 242
+87844 4 160 242
+87848 8 161 242
+87850 4 159 242
+87854 1c 166 242
+87870 1c 235 236
+8788c 4 156 242
+87890 4 93 215
+87894 4 95 215
+87898 4 94 215
+8789c 4 156 242
+878a0 4 95 215
+878a4 4 156 242
+878a8 20 276 242
+878c8 4 166 242
+878cc 4 157 242
+878d0 24 182 242
+878f4 8 183 242
+878fc 4 185 242
+87900 8 272 242
+87908 4 166 242
+8790c 4 157 242
+87910 24 171 242
+87934 8 172 242
+8793c 4 174 242
+87940 8 272 242
+87948 18 250 242
+87960 4 251 242
+87964 8 272 242
+8796c 18 257 242
+87984 c 258 242
+87990 4 259 242
+87994 8 272 242
+8799c 18 243 242
+879b4 4 244 242
+879b8 8 272 242
+879c0 14 231 242
+879d4 8 232 242
+879dc 8 235 242
+879e4 4 237 242
+879e8 c 237 242
+879f4 4 238 242
+879f8 8 272 242
+87a00 14 213 242
+87a14 c 214 242
+87a20 10 215 242
+87a30 14 216 242
+87a44 4 217 242
+87a48 18 206 242
+87a60 4 207 242
+87a64 8 272 242
+87a6c 18 190 242
+87a84 4 191 242
+87a88 10 191 242
+87a98 8 272 242
+87aa0 18 223 242
+87ab8 4 224 242
+87abc 8 272 242
+87ac4 18 199 242
+87adc 4 200 242
+87ae0 8 272 242
+87ae8 4 166 242
+87aec 8 179 242
+87af4 4 166 242
+87af8 8 168 242
+87b00 8 269 242
+87b08 4 90 215
+87b0c 8 269 242
+87b14 4 90 215
+87b18 14 206 207
+87b2c 8 269 242
+87b34 8 272 242
+87b3c 1c 235 236
+87b58 4 93 215
+87b5c 4 95 215
+87b60 4 94 215
+87b64 8 95 215
+87b6c 14 235 236
+87b80 8 93 215
+87b88 4 163 242
+87b8c 8 162 242
+87b94 4c 234 236
+87be0 8 235 236
+87be8 8 93 215
+87bf0 28 235 236
+87c18 c 235 242
+87c24 4 236 242
+87c28 4 272 242
+87c2c c 236 242
+87c38 10 153 242
+FUNC 87c48 1c0 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_date
+87c48 24 304 242
+87c6c 4 315 242
+87c70 4 304 242
+87c74 4 315 242
+87c78 4 304 242
+87c7c 4 315 242
+87c80 4 304 242
+87c84 10 315 242
+87c94 4 304 242
+87c98 10 315 242
+87ca8 8 304 242
+87cb0 4 315 242
+87cb4 18 316 242
+87ccc 8 319 242
+87cd4 4 75 215
+87cd8 8 90 215
+87ce0 4 77 215
+87ce4 c 90 215
+87cf0 8 320 242
+87cf8 c 321 242
+87d04 4 324 242
+87d08 8 323 242
+87d10 4 324 242
+87d14 4 323 242
+87d18 24 324 242
+87d3c 20 235 236
+87d5c 8 317 242
+87d64 14 235 236
+87d78 c 95 215
+87d84 8 235 236
+87d8c 1c 234 236
+87da8 14 235 236
+87dbc 24 234 236
+87de0 8 95 215
+87de8 4 235 236
+87dec 4 95 215
+87df0 18 235 236
+FUNC 87e08 1b8 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_time
+87e08 24 328 242
+87e2c 4 338 242
+87e30 4 328 242
+87e34 4 338 242
+87e38 4 328 242
+87e3c 4 338 242
+87e40 4 328 242
+87e44 c 338 242
+87e50 4 328 242
+87e54 14 338 242
+87e68 8 328 242
+87e70 4 338 242
+87e74 10 339 242
+87e84 10 339 242
+87e94 4 75 215
+87e98 8 90 215
+87ea0 4 77 215
+87ea4 c 90 215
+87eb0 8 341 242
+87eb8 c 342 242
+87ec4 4 344 242
+87ec8 8 343 242
+87ed0 4 344 242
+87ed4 4 343 242
+87ed8 24 344 242
+87efc 34 235 236
+87f30 c 95 215
+87f3c 8 235 236
+87f44 24 234 236
+87f68 8 95 215
+87f70 1c 234 236
+87f8c 18 235 236
+87fa4 4 95 215
+87fa8 18 235 236
+FUNC 87fc0 498 0 std::priv::__do_get_alphabool<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>
+87fc0 8 449 224
+87fc8 4 145 212
+87fcc 8 449 224
+87fd4 4 145 212
+87fd8 18 449 224
+87ff0 c 145 212
+87ffc c 449 224
+88008 4 145 212
+8800c 14 351 219
+88020 4 451 224
+88024 4 88 228
+88028 4 451 224
+8802c 14 88 228
+88040 2c 89 228
+8806c c 95 215
+88078 4 75 215
+8807c 8 90 215
+88084 8 77 215
+8808c c 90 215
+88098 c 458 224
+880a4 18 90 215
+880bc 4 460 224
+880c0 4 461 224
+880c4 4 462 224
+880c8 8 229 236
+880d0 8 228 236
+880d8 8 69 215
+880e0 4 471 224
+880e4 c 400 238
+880f0 8 471 224
+880f8 4 472 224
+880fc 4 400 238
+88100 4 472 224
+88104 8 400 238
+8810c 8 472 224
+88114 c 479 224
+88120 10 112 215
+88130 4 481 224
+88134 10 482 224
+88144 4 96 239
+88148 4 64 239
+8814c 4 484 224
+88150 c 96 239
+8815c 18 97 239
+88174 4 64 239
+88178 c 96 239
+88184 14 97 239
+88198 2c 485 224
+881c4 1c 235 236
+881e0 4 93 215
+881e4 4 94 215
+881e8 8 95 215
+881f0 10 460 224
+88200 8 461 224
+88208 c 461 224
+88214 4 464 224
+88218 c 400 238
+88224 8 464 224
+8822c 4 229 236
+88230 8 464 224
+88238 4 229 236
+8823c c 228 236
+88248 10 69 215
+88258 4 464 224
+8825c 8 400 238
+88264 c 464 224
+88270 c 400 238
+8827c 8 464 224
+88284 8 229 236
+8828c 4 228 236
+88290 10 229 236
+882a0 4 92 215
+882a4 1c 235 236
+882c0 4 93 215
+882c4 4 94 215
+882c8 8 95 215
+882d0 1c 235 236
+882ec 4 93 215
+882f0 4 94 215
+882f4 c 95 215
+88300 c 461 224
+8830c 4 464 224
+88310 c 229 236
+8831c c 69 215
+88328 54 234 236
+8837c 8 475 224
+88384 c 476 224
+88390 48 235 236
+883d8 4 64 239
+883dc c 96 239
+883e8 20 97 239
+88408 14 451 224
+8841c 4 64 239
+88420 10 96 239
+88430 1c 97 239
+8844c 4 464 224
+88450 8 464 224
+FUNC 88458 130 0 std::istreambuf_iterator<char, std::char_traits<char> >::equal
+88458 c 74 215
+88464 4 74 215
+88468 8 75 215
+88470 8 90 215
+88478 8 77 215
+88480 8 90 215
+88488 8 79 215
+88490 4 80 215
+88494 4 79 215
+88498 c 80 215
+884a4 14 235 236
+884b8 4 93 215
+884bc 4 95 215
+884c0 4 94 215
+884c4 4 95 215
+884c8 4 79 215
+884cc 4 80 215
+884d0 4 79 215
+884d4 c 80 215
+884e0 14 235 236
+884f4 4 93 215
+884f8 4 95 215
+884fc 4 94 215
+88500 8 95 215
+88508 4c 234 236
+88554 34 235 236
+FUNC 88588 268 0 std::priv::__match<std::istreambuf_iterator<char, std::char_traits<char> >, const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*>
+88588 4 78 242
+8858c 4 80 242
+88590 24 78 242
+885b4 8 80 242
+885bc 4 87 242
+885c0 4 78 242
+885c4 4 80 242
+885c8 4 78 242
+885cc 4 120 215
+885d0 4 87 242
+885d4 4 85 242
+885d8 4 83 242
+885dc 4 120 215
+885e0 8 78 242
+885e8 4 82 242
+885ec 4 87 242
+885f0 4 78 242
+885f4 8 120 215
+885fc 4 81 242
+88600 4 107 242
+88604 4 89 242
+88608 24 91 242
+8862c 8 92 242
+88634 10 90 215
+88644 c 93 242
+88650 4 108 242
+88654 4 107 242
+88658 4 108 242
+8865c c 110 242
+88668 14 91 242
+8867c 4 68 215
+88680 10 229 236
+88690 8 228 236
+88698 4 120 215
+8869c 4 69 215
+886a0 4 120 215
+886a4 4 119 242
+886a8 4 120 242
+886ac 8 120 215
+886b4 4 89 242
+886b8 28 124 242
+886e0 8 115 242
+886e8 8 115 242
+886f0 4 92 215
+886f4 14 235 236
+88708 4 93 215
+8870c 8 94 215
+88714 4 95 215
+88718 c 93 242
+88724 8 400 238
+8872c c 94 242
+88738 c 104 242
+88744 20 234 236
+88764 4 97 242
+88768 4 96 242
+8876c 4 97 242
+88770 8 99 242
+88778 8 93 242
+88780 8 228 236
+88788 14 229 236
+8879c 18 235 236
+887b4 8 91 242
+887bc 4 68 215
+887c0 4 93 242
+887c4 10 229 236
+887d4 8 228 236
+887dc 4 69 215
+887e0 8 101 242
+887e8 8 69 215
+FUNC 887f0 160 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_monthname
+887f0 c 384 242
+887fc 4 292 242
+88800 4 384 242
+88804 c 384 242
+88810 c 292 242
+8881c 4 384 242
+88820 4 292 242
+88824 8 293 242
+8882c 20 294 242
+8884c 4 390 242
+88850 4 396 242
+88854 c 397 242
+88860 4 75 215
+88864 8 392 242
+8886c 4 75 215
+88870 8 90 215
+88878 8 77 215
+88880 c 90 215
+8888c c 393 242
+88898 c 394 242
+888a4 4 396 242
+888a8 c 397 242
+888b4 10 235 236
+888c4 1c 234 236
+888e0 10 235 236
+888f0 14 235 236
+88904 4 93 215
+88908 4 95 215
+8890c 4 94 215
+88910 8 95 215
+88918 24 234 236
+8893c 14 235 236
+FUNC 88950 174 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_weekday
+88950 c 367 242
+8895c 4 281 242
+88960 4 367 242
+88964 c 367 242
+88970 c 281 242
+8897c 4 367 242
+88980 4 281 242
+88984 8 282 242
+8898c 34 283 242
+889c0 4 373 242
+889c4 4 379 242
+889c8 c 380 242
+889d4 4 75 215
+889d8 8 375 242
+889e0 4 75 215
+889e4 8 90 215
+889ec 8 77 215
+889f4 c 90 215
+88a00 c 376 242
+88a0c c 377 242
+88a18 4 379 242
+88a1c c 380 242
+88a28 10 235 236
+88a38 1c 234 236
+88a54 10 235 236
+88a64 14 235 236
+88a78 4 93 215
+88a7c 4 95 215
+88a80 4 94 215
+88a84 8 95 215
+88a8c 24 234 236
+88ab0 14 235 236
+FUNC 88ac4 4b4 0 std::priv::__get_formatted_time<std::istreambuf_iterator<char, std::char_traits<char> >, char, std::priv::_Time_Info>
+88ac4 c 149 242
+88ad0 4 145 212
+88ad4 8 149 242
+88adc 8 145 212
+88ae4 4 149 242
+88ae8 4 145 212
+88aec 10 149 242
+88afc c 149 242
+88b08 4 145 212
+88b0c 14 351 219
+88b20 4 166 242
+88b24 4 351 219
+88b28 4 269 242
+88b2c 4 153 242
+88b30 8 257 242
+88b38 4 166 242
+88b3c 4 153 242
+88b40 8 75 215
+88b48 8 90 215
+88b50 8 77 215
+88b58 c 90 215
+88b64 4 156 242
+88b68 10 156 242
+88b78 c 158 242
+88b84 4 160 242
+88b88 8 161 242
+88b90 4 159 242
+88b94 1c 166 242
+88bb0 14 235 236
+88bc4 4 156 242
+88bc8 4 93 215
+88bcc 4 95 215
+88bd0 4 94 215
+88bd4 4 156 242
+88bd8 4 95 215
+88bdc 4 156 242
+88be0 20 276 242
+88c00 4 166 242
+88c04 4 157 242
+88c08 24 182 242
+88c2c 8 183 242
+88c34 4 185 242
+88c38 8 272 242
+88c40 4 166 242
+88c44 4 157 242
+88c48 24 171 242
+88c6c 8 172 242
+88c74 4 174 242
+88c78 8 272 242
+88c80 18 250 242
+88c98 4 251 242
+88c9c 8 272 242
+88ca4 18 257 242
+88cbc c 258 242
+88cc8 4 259 242
+88ccc 8 272 242
+88cd4 18 243 242
+88cec 4 244 242
+88cf0 8 272 242
+88cf8 14 231 242
+88d0c 8 232 242
+88d14 8 235 242
+88d1c 4 237 242
+88d20 c 237 242
+88d2c 4 238 242
+88d30 8 272 242
+88d38 14 213 242
+88d4c c 214 242
+88d58 10 215 242
+88d68 14 216 242
+88d7c 4 217 242
+88d80 18 206 242
+88d98 4 207 242
+88d9c 8 272 242
+88da4 18 190 242
+88dbc 4 191 242
+88dc0 10 191 242
+88dd0 8 272 242
+88dd8 18 223 242
+88df0 4 224 242
+88df4 8 272 242
+88dfc 18 199 242
+88e14 4 200 242
+88e18 8 272 242
+88e20 4 166 242
+88e24 8 179 242
+88e2c 4 166 242
+88e30 8 168 242
+88e38 8 269 242
+88e40 4 90 215
+88e44 8 269 242
+88e4c 4 90 215
+88e50 14 101 207
+88e64 8 269 242
+88e6c 8 272 242
+88e74 14 235 236
+88e88 4 93 215
+88e8c 4 95 215
+88e90 4 94 215
+88e94 8 95 215
+88e9c 18 235 236
+88eb4 4 163 242
+88eb8 8 162 242
+88ec0 4c 234 236
+88f0c 3c 235 236
+88f48 c 235 242
+88f54 4 236 242
+88f58 4 272 242
+88f5c c 236 242
+88f68 10 153 242
+FUNC 88f78 1ac 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_date
+88f78 18 304 242
+88f90 4 315 242
+88f94 8 304 242
+88f9c 4 315 242
+88fa0 4 304 242
+88fa4 4 315 242
+88fa8 8 304 242
+88fb0 4 315 242
+88fb4 4 304 242
+88fb8 8 315 242
+88fc0 4 304 242
+88fc4 4 315 242
+88fc8 4 304 242
+88fcc 14 315 242
+88fe0 4 304 242
+88fe4 4 315 242
+88fe8 14 316 242
+88ffc 8 319 242
+89004 4 75 215
+89008 c 90 215
+89014 4 77 215
+89018 c 90 215
+89024 8 320 242
+8902c c 321 242
+89038 4 324 242
+8903c 8 323 242
+89044 4 324 242
+89048 4 323 242
+8904c 24 324 242
+89070 10 235 236
+89080 1c 234 236
+8909c 14 235 236
+890b0 8 317 242
+890b8 18 235 236
+890d0 8 95 215
+890d8 24 234 236
+890fc 8 95 215
+89104 4 235 236
+89108 4 95 215
+8910c 18 235 236
+FUNC 89124 1a4 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_time
+89124 18 328 242
+8913c 4 338 242
+89140 8 328 242
+89148 4 338 242
+8914c 4 328 242
+89150 4 338 242
+89154 c 328 242
+89160 8 338 242
+89168 8 328 242
+89170 1c 338 242
+8918c 4 328 242
+89190 4 338 242
+89194 10 339 242
+891a4 c 339 242
+891b0 4 75 215
+891b4 c 90 215
+891c0 4 77 215
+891c4 c 90 215
+891d0 8 341 242
+891d8 c 342 242
+891e4 4 344 242
+891e8 8 343 242
+891f0 4 344 242
+891f4 4 343 242
+891f8 24 344 242
+8921c 10 235 236
+8922c 1c 234 236
+89248 14 235 236
+8925c 18 235 236
+89274 8 95 215
+8927c 24 234 236
+892a0 8 95 215
+892a8 4 235 236
+892ac 4 95 215
+892b0 18 235 236
+FUNC 892c8 450 0 std::priv::__do_get_alphabool<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+892c8 18 449 224
+892e0 4 145 212
+892e4 10 449 224
+892f4 8 145 212
+892fc 8 449 224
+89304 4 145 212
+89308 14 351 219
+8931c 4 451 224
+89320 4 59 228
+89324 4 451 224
+89328 14 59 228
+8933c 28 60 228
+89364 c 95 215
+89370 4 75 215
+89374 8 90 215
+8937c 8 77 215
+89384 c 90 215
+89390 c 458 224
+8939c 10 90 215
+893ac 4 460 224
+893b0 4 461 224
+893b4 4 462 224
+893b8 10 229 236
+893c8 8 228 236
+893d0 8 69 215
+893d8 4 471 224
+893dc c 400 238
+893e8 8 471 224
+893f0 4 472 224
+893f4 4 400 238
+893f8 4 472 224
+893fc 8 400 238
+89404 8 472 224
+8940c c 479 224
+89418 10 112 215
+89428 4 481 224
+8942c 10 482 224
+8943c 4 64 239
+89440 4 484 224
+89444 c 96 239
+89450 c 97 239
+8945c 4 64 239
+89460 c 96 239
+8946c c 97 239
+89478 28 485 224
+894a0 14 235 236
+894b4 4 93 215
+894b8 4 94 215
+894bc 8 95 215
+894c4 10 460 224
+894d4 8 461 224
+894dc c 461 224
+894e8 4 464 224
+894ec 8 400 238
+894f4 c 464 224
+89500 8 229 236
+89508 4 464 224
+8950c 8 229 236
+89514 8 228 236
+8951c c 69 215
+89528 4 464 224
+8952c 8 400 238
+89534 c 464 224
+89540 c 400 238
+8954c 8 464 224
+89554 10 229 236
+89564 4 228 236
+89568 10 229 236
+89578 4 92 215
+8957c 14 235 236
+89590 4 93 215
+89594 4 94 215
+89598 8 95 215
+895a0 14 235 236
+895b4 4 93 215
+895b8 4 94 215
+895bc c 95 215
+895c8 c 461 224
+895d4 4 464 224
+895d8 14 229 236
+895ec c 69 215
+895f8 54 234 236
+8964c 8 475 224
+89654 c 476 224
+89660 4c 235 236
+896ac 4 64 239
+896b0 c 96 239
+896bc 18 97 239
+896d4 10 451 224
+896e4 8 64 239
+896ec c 96 239
+896f8 14 97 239
+8970c 4 464 224
+89710 8 464 224
+FUNC 89718 15c 0 std::priv::__write_integer_backward<long int>
+89718 c 304 226
+89724 4 304 226
+89728 4 307 226
+8972c 8 309 226
+89734 4 308 226
+89738 4 309 226
+8973c 4 308 226
+89740 4 309 226
+89744 4 287 226
+89748 10 368 226
+89758 14 314 226
+8976c 4 277 226
+89770 4 279 226
+89774 8 281 226
+8977c 18 282 226
+89794 4 281 226
+89798 8 282 226
+897a0 4 281 226
+897a4 4 284 226
+897a8 4 286 226
+897ac c 287 226
+897b8 4 323 226
+897bc 4 322 226
+897c0 8 323 226
+897c8 8 322 226
+897d0 4 326 226
+897d4 18 327 226
+897ec 4 333 226
+897f0 c 333 226
+897fc 4 340 226
+89800 4 339 226
+89804 8 340 226
+8980c 8 339 226
+89814 4 342 226
+89818 4 343 226
+8981c 4 344 226
+89820 4 343 226
+89824 c 344 226
+89830 c 310 226
+8983c 10 368 226
+8984c 10 333 226
+8985c 8 279 226
+89864 10 285 226
+FUNC 89874 4e0 0 std::priv::__put_float<std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+89874 18 74 226
+8988c 4 145 212
+89890 10 74 226
+898a0 8 145 212
+898a8 10 74 226
+898b8 c 74 226
+898c4 4 145 212
+898c8 14 351 219
+898dc 4 78 226
+898e0 4 108 213
+898e4 4 41 213
+898e8 4 78 226
+898ec 10 108 213
+898fc 14 41 213
+89910 4 613 237
+89914 14 81 226
+89928 4 611 237
+8992c 4 612 237
+89930 4 613 237
+89934 4 101 206
+89938 4 81 226
+8993c 10 83 226
+8994c 2c 206 207
+89978 4 84 226
+8997c 4 206 207
+89980 18 84 226
+89998 18 206 207
+899b0 4 138 212
+899b4 4 400 238
+899b8 4 139 212
+899bc 8 400 238
+899c4 20 206 207
+899e4 c 47 226
+899f0 4 51 226
+899f4 4 50 226
+899f8 8 53 226
+89a00 10 57 226
+89a10 4 57 226
+89a14 10 57 226
+89a24 18 480 201
+89a3c 4 62 230
+89a40 10 200 236
+89a50 c 199 236
+89a5c 4 200 236
+89a60 8 62 230
+89a68 8 480 201
+89a70 4 64 226
+89a74 4 213 201
+89a78 4 64 226
+89a7c 10 213 201
+89a8c c 199 236
+89a98 4 200 236
+89a9c 8 62 230
+89aa4 4 215 201
+89aa8 8 213 201
+89ab0 4 214 201
+89ab4 4 62 230
+89ab8 10 200 236
+89ac8 14 199 236
+89adc 10 200 236
+89aec 14 199 236
+89b00 10 200 236
+89b10 10 213 201
+89b20 4 62 230
+89b24 c 64 239
+89b30 c 96 239
+89b3c 4 97 239
+89b40 8 319 202
+89b48 4 97 239
+89b4c 8 161 202
+89b54 4 161 202
+89b58 38 90 226
+89b90 c 199 236
+89b9c 4 200 236
+89ba0 8 62 230
+89ba8 4 215 201
+89bac 8 213 201
+89bb4 4 214 201
+89bb8 4 62 230
+89bbc 10 200 236
+89bcc 14 199 236
+89be0 c 200 236
+89bec 8 135 223
+89bf4 4 59 226
+89bf8 4 59 226
+89bfc 4 59 226
+89c00 18 480 201
+89c18 4 62 230
+89c1c 10 200 236
+89c2c c 199 236
+89c38 4 200 236
+89c3c 8 62 230
+89c44 8 480 201
+89c4c 10 285 201
+89c5c 8 60 226
+89c64 10 285 201
+89c74 14 199 236
+89c88 10 200 236
+89c98 18 285 201
+89cb0 4 54 226
+89cb4 4 480 201
+89cb8 4 54 226
+89cbc 8 285 201
+89cc4 c 480 201
+89cd0 4 62 230
+89cd4 10 200 236
+89ce4 c 199 236
+89cf0 4 200 236
+89cf4 8 62 230
+89cfc c 480 201
+89d08 14 199 236
+89d1c 14 200 236
+89d30 14 156 239
+89d44 10 78 226
+FUNC 89d54 220 0 std::priv::__do_put_float<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long double>
+89d54 10 115 226
+89d64 4 108 213
+89d68 4 41 213
+89d6c 18 115 226
+89d84 4 108 213
+89d88 4 115 226
+89d8c 4 115 226
+89d90 8 108 213
+89d98 4 41 213
+89d9c 8 115 226
+89da4 4 108 213
+89da8 10 41 213
+89db8 4 611 237
+89dbc c 119 226
+89dc8 4 613 237
+89dcc 4 119 226
+89dd0 4 612 237
+89dd4 4 613 237
+89dd8 4 101 206
+89ddc 4 119 226
+89de0 4 145 212
+89de4 4 119 226
+89de8 8 145 212
+89df0 14 351 219
+89e04 8 121 226
+89e0c 10 85 228
+89e1c 4 86 228
+89e20 4 85 228
+89e24 c 86 228
+89e30 4 87 228
+89e34 4 86 228
+89e38 10 87 228
+89e48 2c 124 226
+89e74 4 64 239
+89e78 4 124 226
+89e7c c 96 239
+89e88 8 97 239
+89e90 8 161 202
+89e98 4 161 202
+89e9c 4 64 239
+89ea0 c 96 239
+89eac 4 97 239
+89eb0 8 319 202
+89eb8 4 97 239
+89ebc 8 161 202
+89ec4 4 161 202
+89ec8 2c 125 226
+89ef4 14 135 223
+89f08 4 64 239
+89f0c c 96 239
+89f18 4 97 239
+89f1c 4 70 213
+89f20 4 97 239
+89f24 4 70 213
+89f28 c 70 213
+89f34 8 64 239
+89f3c c 96 239
+89f48 1c 97 239
+89f64 10 121 226
+FUNC 89f74 24 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+89f74 4 451 226
+89f78 8 453 226
+89f80 4 451 226
+89f84 8 453 226
+89f8c c 453 226
+FUNC 89f98 220 0 std::priv::__do_put_float<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, double>
+89f98 10 115 226
+89fa8 4 108 213
+89fac 4 41 213
+89fb0 18 115 226
+89fc8 4 108 213
+89fcc 4 115 226
+89fd0 4 115 226
+89fd4 8 108 213
+89fdc 4 41 213
+89fe0 8 115 226
+89fe8 4 108 213
+89fec 10 41 213
+89ffc 4 611 237
+8a000 c 119 226
+8a00c 4 613 237
+8a010 4 119 226
+8a014 4 612 237
+8a018 4 613 237
+8a01c 4 101 206
+8a020 4 119 226
+8a024 4 145 212
+8a028 4 119 226
+8a02c 8 145 212
+8a034 14 351 219
+8a048 8 121 226
+8a050 10 85 228
+8a060 4 86 228
+8a064 4 85 228
+8a068 c 86 228
+8a074 4 87 228
+8a078 4 86 228
+8a07c 10 87 228
+8a08c 2c 124 226
+8a0b8 4 64 239
+8a0bc 4 124 226
+8a0c0 c 96 239
+8a0cc 8 97 239
+8a0d4 8 161 202
+8a0dc 4 161 202
+8a0e0 4 64 239
+8a0e4 c 96 239
+8a0f0 4 97 239
+8a0f4 8 319 202
+8a0fc 4 97 239
+8a100 8 161 202
+8a108 4 161 202
+8a10c 2c 125 226
+8a138 14 135 223
+8a14c 4 64 239
+8a150 c 96 239
+8a15c 4 97 239
+8a160 4 70 213
+8a164 4 97 239
+8a168 4 70 213
+8a16c c 70 213
+8a178 8 64 239
+8a180 c 96 239
+8a18c 1c 97 239
+8a1a8 10 121 226
+FUNC 8a1b8 24 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+8a1b8 4 444 226
+8a1bc 8 446 226
+8a1c4 4 444 226
+8a1c8 8 446 226
+8a1d0 c 446 226
+FUNC 8a1dc 15c 0 std::priv::__write_integer_backward<long long int>
+8a1dc c 304 226
+8a1e8 4 304 226
+8a1ec 4 307 226
+8a1f0 8 309 226
+8a1f8 4 308 226
+8a1fc 4 309 226
+8a200 4 308 226
+8a204 4 309 226
+8a208 4 287 226
+8a20c 10 368 226
+8a21c 14 314 226
+8a230 4 277 226
+8a234 4 279 226
+8a238 8 281 226
+8a240 18 282 226
+8a258 4 281 226
+8a25c 8 282 226
+8a264 4 281 226
+8a268 4 284 226
+8a26c 4 286 226
+8a270 c 287 226
+8a27c 4 323 226
+8a280 4 322 226
+8a284 8 323 226
+8a28c 8 322 226
+8a294 4 326 226
+8a298 18 327 226
+8a2b0 4 333 226
+8a2b4 c 333 226
+8a2c0 4 340 226
+8a2c4 4 339 226
+8a2c8 8 340 226
+8a2d0 8 339 226
+8a2d8 4 342 226
+8a2dc 4 343 226
+8a2e0 4 344 226
+8a2e4 4 343 226
+8a2e8 c 344 226
+8a2f4 c 310 226
+8a300 10 368 226
+8a310 10 333 226
+8a320 8 279 226
+8a328 10 285 226
+FUNC 8a338 3e8 0 std::priv::__get_base_or_zero<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>
+8a338 10 56 224
+8a348 10 56 224
+8a358 8 59 224
+8a360 4 59 224
+8a364 4 59 224
+8a368 1c 209 207
+8a384 c 90 215
+8a390 c 64 224
+8a39c 10 68 224
+8a3ac 4 74 224
+8a3b0 18 76 224
+8a3c8 10 120 215
+8a3d8 4 95 224
+8a3dc 8 90 215
+8a3e4 10 95 224
+8a3f4 4 91 224
+8a3f8 8 72 224
+8a400 4 112 224
+8a404 10 113 224
+8a414 4 92 215
+8a418 1c 235 236
+8a434 4 64 224
+8a438 4 94 215
+8a43c 4 95 215
+8a440 4 93 215
+8a444 4 64 224
+8a448 4 95 215
+8a44c 4 64 224
+8a450 4 68 215
+8a454 10 229 236
+8a464 8 228 236
+8a46c 4 74 224
+8a470 4 69 215
+8a474 4 76 224
+8a478 4 69 215
+8a47c 4 76 224
+8a480 10 120 215
+8a490 4 85 224
+8a494 8 90 215
+8a49c 10 85 224
+8a4ac c 72 224
+8a4b8 4 112 224
+8a4bc 10 113 224
+8a4cc 4 68 215
+8a4d0 10 229 236
+8a4e0 8 228 236
+8a4e8 c 69 215
+8a4f4 4 228 236
+8a4f8 c 229 236
+8a504 4 228 236
+8a508 c 229 236
+8a514 4 68 215
+8a518 10 229 236
+8a528 8 228 236
+8a530 4 69 215
+8a534 10 120 215
+8a544 4 97 224
+8a548 8 90 215
+8a550 4 66 215
+8a554 c 97 224
+8a560 c 97 224
+8a56c 4 105 224
+8a570 8 72 224
+8a578 4 112 224
+8a57c 10 113 224
+8a58c 4 68 215
+8a590 10 229 236
+8a5a0 8 228 236
+8a5a8 4 69 215
+8a5ac 10 120 215
+8a5bc 4 87 224
+8a5c0 8 90 215
+8a5c8 4 66 215
+8a5cc c 87 224
+8a5d8 c 87 224
+8a5e4 4 91 224
+8a5e8 8 72 224
+8a5f0 4 112 224
+8a5f4 10 113 224
+8a604 4 68 215
+8a608 10 229 236
+8a618 8 228 236
+8a620 4 69 215
+8a624 4 72 224
+8a628 8 69 215
+8a630 4 112 224
+8a634 10 113 224
+8a644 2c 234 236
+8a670 4 66 215
+8a674 c 97 224
+8a680 20 90 215
+8a6a0 4 66 215
+8a6a4 c 87 224
+8a6b0 18 90 215
+8a6c8 4 228 236
+8a6cc c 229 236
+8a6d8 4 228 236
+8a6dc c 229 236
+8a6e8 4 228 236
+8a6ec 24 229 236
+8a710 10 235 236
+FUNC 8a720 5e0 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long long unsigned int, wchar_t>
+8a720 20 247 224
+8a740 4 145 212
+8a744 10 247 224
+8a754 8 145 212
+8a75c c 247 224
+8a768 8 247 224
+8a770 4 145 212
+8a774 10 351 219
+8a784 4 258 224
+8a788 4 351 219
+8a78c 14 258 224
+8a7a0 8 112 215
+8a7a8 4 259 224
+8a7ac c 112 215
+8a7b8 4 263 224
+8a7bc 4 265 224
+8a7c0 4 266 224
+8a7c4 4 287 224
+8a7c8 4 287 224
+8a7cc 4 75 215
+8a7d0 4 287 224
+8a7d4 4 75 215
+8a7d8 8 90 215
+8a7e0 8 77 215
+8a7e8 c 90 215
+8a7f4 c 289 224
+8a800 10 290 224
+8a810 4 291 224
+8a814 4 291 224
+8a818 4 291 224
+8a81c 34 292 224
+8a850 1c 235 236
+8a86c 4 93 215
+8a870 4 95 215
+8a874 4 94 215
+8a878 8 95 215
+8a880 10 351 219
+8a890 4 275 224
+8a894 4 351 219
+8a898 4 86 228
+8a89c 4 275 224
+8a8a0 4 86 228
+8a8a4 8 275 224
+8a8ac 4 86 228
+8a8b0 8 87 228
+8a8b8 4 86 228
+8a8bc 14 87 228
+8a8d0 4 188 224
+8a8d4 4 183 224
+8a8d8 8 182 224
+8a8e0 4 185 224
+8a8e4 4 95 215
+8a8e8 4 181 224
+8a8ec c 188 224
+8a8f8 c 186 224
+8a904 8 183 224
+8a90c 4 188 224
+8a910 4 183 224
+8a914 14 188 224
+8a928 4 75 215
+8a92c 8 90 215
+8a934 8 77 215
+8a93c c 90 215
+8a948 c 190 224
+8a954 c 90 215
+8a960 c 194 224
+8a96c 8 195 224
+8a974 4 196 224
+8a978 4 68 215
+8a97c 10 229 236
+8a98c c 228 236
+8a998 8 69 215
+8a9a0 1c 235 236
+8a9bc 4 94 215
+8a9c0 4 93 215
+8a9c4 4 190 224
+8a9c8 4 95 215
+8a9cc c 190 224
+8a9d8 4 218 224
+8a9dc c 218 224
+8a9e8 8 219 224
+8a9f0 4 223 224
+8a9f4 10 224 224
+8aa04 14 233 224
+8aa18 8 224 224
+8aa20 4 233 224
+8aa24 18 233 224
+8aa3c 4 64 239
+8aa40 10 96 239
+8aa50 10 97 239
+8aa60 14 287 224
+8aa74 4 52 224
+8aa78 4 52 224
+8aa7c 4 52 224
+8aa80 c 202 224
+8aa8c 4 208 224
+8aa90 4 206 224
+8aa94 4 205 224
+8aa98 4 206 224
+8aa9c 8 208 224
+8aaa4 8 211 224
+8aaac 4 212 224
+8aab0 4 213 224
+8aab4 4 214 224
+8aab8 10 213 224
+8aac8 4 68 215
+8aacc 10 229 236
+8aadc 4 228 236
+8aae0 c 229 236
+8aaec 8 69 215
+8aaf4 4 92 215
+8aaf8 1c 235 236
+8ab14 4 93 215
+8ab18 4 94 215
+8ab1c 8 95 215
+8ab24 1c 235 236
+8ab40 4 93 215
+8ab44 4 94 215
+8ab48 8 95 215
+8ab50 c 209 224
+8ab5c c 52 224
+8ab68 8 214 224
+8ab70 60 234 236
+8abd0 1c 235 236
+8abec 4 93 215
+8abf0 4 95 215
+8abf4 4 94 215
+8abf8 8 95 215
+8ac00 10 224 224
+8ac10 24 234 236
+8ac34 8 287 224
+8ac3c 24 234 236
+8ac60 34 235 236
+8ac94 8 218 224
+8ac9c 20 235 236
+8acbc 8 64 239
+8acc4 10 96 239
+8acd4 14 97 239
+8ace8 18 291 224
+FUNC 8ad00 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8ad00 8 611 224
+8ad08 4 614 224
+8ad0c 8 611 224
+8ad14 20 614 224
+FUNC 8ad34 54 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8ad34 8 587 224
+8ad3c 4 595 224
+8ad40 8 587 224
+8ad48 18 595 224
+8ad60 4 587 224
+8ad64 4 595 224
+8ad68 c 596 224
+8ad74 c 597 224
+8ad80 8 599 224
+FUNC 8ad88 5f8 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long long int, wchar_t>
+8ad88 20 247 224
+8ada8 4 145 212
+8adac 10 247 224
+8adbc 8 145 212
+8adc4 c 247 224
+8add0 4 247 224
+8add4 4 145 212
+8add8 10 351 219
+8ade8 4 258 224
+8adec 4 351 219
+8adf0 14 258 224
+8ae04 4 75 215
+8ae08 4 259 224
+8ae0c 4 75 215
+8ae10 8 90 215
+8ae18 8 77 215
+8ae20 c 90 215
+8ae2c c 263 224
+8ae38 8 265 224
+8ae40 8 266 224
+8ae48 4 287 224
+8ae4c 4 287 224
+8ae50 4 112 215
+8ae54 4 287 224
+8ae58 c 112 215
+8ae64 4 289 224
+8ae68 c 290 224
+8ae74 4 291 224
+8ae78 4 291 224
+8ae7c 4 291 224
+8ae80 34 292 224
+8aeb4 1c 235 236
+8aed0 4 94 215
+8aed4 4 93 215
+8aed8 8 95 215
+8aee0 c 263 224
+8aeec 10 351 219
+8aefc 4 275 224
+8af00 4 351 219
+8af04 4 275 224
+8af08 c 86 228
+8af14 8 87 228
+8af1c 4 86 228
+8af20 14 87 228
+8af34 4 128 224
+8af38 4 123 224
+8af3c 4 128 224
+8af40 4 122 224
+8af44 4 128 224
+8af48 c 126 224
+8af54 4 123 224
+8af58 4 125 224
+8af5c 8 121 224
+8af64 4 123 224
+8af68 4 95 215
+8af6c 8 123 224
+8af74 18 128 224
+8af8c 4 75 215
+8af90 8 90 215
+8af98 8 77 215
+8afa0 c 90 215
+8afac c 130 224
+8afb8 c 90 215
+8afc4 10 134 224
+8afd4 8 135 224
+8afdc 4 136 224
+8afe0 4 68 215
+8afe4 10 229 236
+8aff4 c 228 236
+8b000 8 69 215
+8b008 1c 235 236
+8b024 4 94 215
+8b028 4 93 215
+8b02c 4 130 224
+8b030 4 95 215
+8b034 8 130 224
+8b03c 4 158 224
+8b040 4 130 224
+8b044 4 158 224
+8b048 c 158 224
+8b054 8 159 224
+8b05c 4 163 224
+8b060 8 274 224
+8b068 c 164 224
+8b074 10 173 224
+8b084 c 164 224
+8b090 8 173 224
+8b098 4 96 239
+8b09c 4 64 239
+8b0a0 c 96 239
+8b0ac 10 97 239
+8b0bc 10 287 224
+8b0cc 4 52 224
+8b0d0 4 52 224
+8b0d4 4 52 224
+8b0d8 8 142 224
+8b0e0 4 148 224
+8b0e4 4 146 224
+8b0e8 4 145 224
+8b0ec 4 146 224
+8b0f0 8 148 224
+8b0f8 c 151 224
+8b104 4 152 224
+8b108 4 153 224
+8b10c 4 154 224
+8b110 10 153 224
+8b120 4 68 215
+8b124 10 229 236
+8b134 4 228 236
+8b138 c 229 236
+8b144 8 69 215
+8b14c 4 92 215
+8b150 1c 235 236
+8b16c 4 93 215
+8b170 4 94 215
+8b174 8 95 215
+8b17c 1c 235 236
+8b198 4 93 215
+8b19c 4 94 215
+8b1a0 8 95 215
+8b1a8 c 149 224
+8b1b4 c 52 224
+8b1c0 8 154 224
+8b1c8 60 234 236
+8b228 1c 235 236
+8b244 4 93 215
+8b248 4 95 215
+8b24c 4 94 215
+8b250 8 95 215
+8b258 10 164 224
+8b268 8 164 224
+8b270 8 173 224
+8b278 24 234 236
+8b29c 8 287 224
+8b2a4 24 234 236
+8b2c8 20 235 236
+8b2e8 18 173 224
+8b300 14 235 236
+8b314 8 158 224
+8b31c 24 235 236
+8b340 4 64 239
+8b344 10 96 239
+8b354 14 97 239
+8b368 18 291 224
+FUNC 8b380 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8b380 8 604 224
+8b388 4 607 224
+8b38c 8 604 224
+8b394 20 607 224
+FUNC 8b3b4 5e0 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long unsigned int, wchar_t>
+8b3b4 20 247 224
+8b3d4 4 145 212
+8b3d8 10 247 224
+8b3e8 8 145 212
+8b3f0 c 247 224
+8b3fc 8 247 224
+8b404 4 145 212
+8b408 10 351 219
+8b418 4 258 224
+8b41c 4 351 219
+8b420 14 258 224
+8b434 8 112 215
+8b43c 4 259 224
+8b440 c 112 215
+8b44c 4 263 224
+8b450 4 265 224
+8b454 4 266 224
+8b458 4 287 224
+8b45c 4 287 224
+8b460 4 75 215
+8b464 4 287 224
+8b468 4 75 215
+8b46c 8 90 215
+8b474 8 77 215
+8b47c c 90 215
+8b488 c 289 224
+8b494 10 290 224
+8b4a4 4 291 224
+8b4a8 4 291 224
+8b4ac 4 291 224
+8b4b0 34 292 224
+8b4e4 1c 235 236
+8b500 4 93 215
+8b504 4 95 215
+8b508 4 94 215
+8b50c 8 95 215
+8b514 10 351 219
+8b524 4 275 224
+8b528 4 351 219
+8b52c 4 86 228
+8b530 4 275 224
+8b534 4 86 228
+8b538 8 275 224
+8b540 4 86 228
+8b544 8 87 228
+8b54c 4 86 228
+8b550 14 87 228
+8b564 4 188 224
+8b568 4 183 224
+8b56c 8 182 224
+8b574 4 185 224
+8b578 4 95 215
+8b57c 4 181 224
+8b580 c 188 224
+8b58c c 186 224
+8b598 8 183 224
+8b5a0 4 188 224
+8b5a4 4 183 224
+8b5a8 14 188 224
+8b5bc 4 75 215
+8b5c0 8 90 215
+8b5c8 8 77 215
+8b5d0 c 90 215
+8b5dc c 190 224
+8b5e8 c 90 215
+8b5f4 c 194 224
+8b600 8 195 224
+8b608 4 196 224
+8b60c 4 68 215
+8b610 10 229 236
+8b620 c 228 236
+8b62c 8 69 215
+8b634 1c 235 236
+8b650 4 94 215
+8b654 4 93 215
+8b658 4 190 224
+8b65c 4 95 215
+8b660 c 190 224
+8b66c 4 218 224
+8b670 c 218 224
+8b67c 8 219 224
+8b684 4 223 224
+8b688 10 224 224
+8b698 14 233 224
+8b6ac 8 224 224
+8b6b4 4 233 224
+8b6b8 18 233 224
+8b6d0 4 64 239
+8b6d4 10 96 239
+8b6e4 10 97 239
+8b6f4 14 287 224
+8b708 4 52 224
+8b70c 4 52 224
+8b710 4 52 224
+8b714 c 202 224
+8b720 4 208 224
+8b724 4 206 224
+8b728 4 205 224
+8b72c 4 206 224
+8b730 8 208 224
+8b738 8 211 224
+8b740 4 212 224
+8b744 4 213 224
+8b748 4 214 224
+8b74c 10 213 224
+8b75c 4 68 215
+8b760 10 229 236
+8b770 4 228 236
+8b774 c 229 236
+8b780 8 69 215
+8b788 4 92 215
+8b78c 1c 235 236
+8b7a8 4 93 215
+8b7ac 4 94 215
+8b7b0 8 95 215
+8b7b8 1c 235 236
+8b7d4 4 93 215
+8b7d8 4 94 215
+8b7dc 8 95 215
+8b7e4 c 209 224
+8b7f0 c 52 224
+8b7fc 8 214 224
+8b804 60 234 236
+8b864 1c 235 236
+8b880 4 93 215
+8b884 4 95 215
+8b888 4 94 215
+8b88c 8 95 215
+8b894 10 224 224
+8b8a4 24 234 236
+8b8c8 8 287 224
+8b8d0 24 234 236
+8b8f4 34 235 236
+8b928 8 218 224
+8b930 20 235 236
+8b950 8 64 239
+8b958 10 96 239
+8b968 14 97 239
+8b97c 18 291 224
+FUNC 8b994 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8b994 8 557 224
+8b99c 4 560 224
+8b9a0 8 557 224
+8b9a8 20 560 224
+FUNC 8b9c8 5d0 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned int, wchar_t>
+8b9c8 20 247 224
+8b9e8 4 145 212
+8b9ec 10 247 224
+8b9fc 8 145 212
+8ba04 c 247 224
+8ba10 4 247 224
+8ba14 4 145 212
+8ba18 10 351 219
+8ba28 4 258 224
+8ba2c 4 351 219
+8ba30 14 258 224
+8ba44 4 75 215
+8ba48 4 259 224
+8ba4c 4 75 215
+8ba50 8 90 215
+8ba58 8 77 215
+8ba60 c 90 215
+8ba6c c 263 224
+8ba78 8 265 224
+8ba80 8 266 224
+8ba88 4 287 224
+8ba8c 4 287 224
+8ba90 4 112 215
+8ba94 4 287 224
+8ba98 c 112 215
+8baa4 4 289 224
+8baa8 c 290 224
+8bab4 4 291 224
+8bab8 4 291 224
+8babc 4 291 224
+8bac0 34 292 224
+8baf4 1c 235 236
+8bb10 4 94 215
+8bb14 4 93 215
+8bb18 8 95 215
+8bb20 c 263 224
+8bb2c 10 351 219
+8bb3c 4 275 224
+8bb40 4 351 219
+8bb44 4 86 228
+8bb48 4 275 224
+8bb4c 4 86 228
+8bb50 4 275 224
+8bb54 4 86 228
+8bb58 8 87 228
+8bb60 4 86 228
+8bb64 14 87 228
+8bb78 4 186 224
+8bb7c 4 183 224
+8bb80 4 186 224
+8bb84 4 185 224
+8bb88 4 186 224
+8bb8c 4 183 224
+8bb90 8 181 224
+8bb98 4 183 224
+8bb9c 8 188 224
+8bba4 4 183 224
+8bba8 4 182 224
+8bbac 4 95 215
+8bbb0 14 188 224
+8bbc4 4 75 215
+8bbc8 8 90 215
+8bbd0 8 77 215
+8bbd8 c 90 215
+8bbe4 c 190 224
+8bbf0 c 90 215
+8bbfc c 194 224
+8bc08 8 195 224
+8bc10 4 196 224
+8bc14 4 68 215
+8bc18 10 229 236
+8bc28 c 228 236
+8bc34 8 69 215
+8bc3c 1c 235 236
+8bc58 4 94 215
+8bc5c 4 93 215
+8bc60 4 190 224
+8bc64 4 95 215
+8bc68 c 190 224
+8bc74 4 218 224
+8bc78 c 218 224
+8bc84 8 219 224
+8bc8c 4 223 224
+8bc90 c 224 224
+8bc9c 14 233 224
+8bcb0 8 224 224
+8bcb8 4 233 224
+8bcbc 4 96 239
+8bcc0 4 64 239
+8bcc4 c 96 239
+8bcd0 10 97 239
+8bce0 10 287 224
+8bcf0 4 52 224
+8bcf4 4 52 224
+8bcf8 4 52 224
+8bcfc c 202 224
+8bd08 4 208 224
+8bd0c 4 206 224
+8bd10 4 205 224
+8bd14 4 206 224
+8bd18 8 208 224
+8bd20 8 211 224
+8bd28 4 212 224
+8bd2c 4 213 224
+8bd30 4 214 224
+8bd34 10 213 224
+8bd44 4 68 215
+8bd48 10 229 236
+8bd58 4 228 236
+8bd5c c 229 236
+8bd68 8 69 215
+8bd70 4 92 215
+8bd74 1c 235 236
+8bd90 4 93 215
+8bd94 4 94 215
+8bd98 8 95 215
+8bda0 1c 235 236
+8bdbc 4 93 215
+8bdc0 4 94 215
+8bdc4 8 95 215
+8bdcc c 209 224
+8bdd8 c 52 224
+8bde4 8 214 224
+8bdec 60 234 236
+8be4c 1c 235 236
+8be68 4 93 215
+8be6c 4 95 215
+8be70 4 94 215
+8be74 8 95 215
+8be7c c 224 224
+8be88 8 233 224
+8be90 24 234 236
+8beb4 8 287 224
+8bebc 24 234 236
+8bee0 20 235 236
+8bf00 18 233 224
+8bf18 14 235 236
+8bf2c 8 218 224
+8bf34 24 235 236
+8bf58 4 64 239
+8bf5c 10 96 239
+8bf6c 14 97 239
+8bf80 18 291 224
+FUNC 8bf98 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8bf98 8 550 224
+8bfa0 4 553 224
+8bfa4 8 550 224
+8bfac 20 553 224
+FUNC 8bfcc 4f4 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, short unsigned int, wchar_t>
+8bfcc 20 247 224
+8bfec 4 145 212
+8bff0 10 247 224
+8c000 8 145 212
+8c008 c 247 224
+8c014 8 247 224
+8c01c 4 145 212
+8c020 10 351 219
+8c030 4 258 224
+8c034 4 351 219
+8c038 14 258 224
+8c04c 8 112 215
+8c054 4 259 224
+8c058 c 112 215
+8c064 4 263 224
+8c068 4 265 224
+8c06c 4 266 224
+8c070 4 287 224
+8c074 4 287 224
+8c078 4 112 215
+8c07c 4 287 224
+8c080 c 112 215
+8c08c 4 289 224
+8c090 c 290 224
+8c09c 4 291 224
+8c0a0 4 291 224
+8c0a4 4 291 224
+8c0a8 34 292 224
+8c0dc 10 351 219
+8c0ec 4 275 224
+8c0f0 4 351 219
+8c0f4 4 86 228
+8c0f8 4 275 224
+8c0fc 4 86 228
+8c100 4 275 224
+8c104 4 86 228
+8c108 8 87 228
+8c110 4 86 228
+8c114 14 87 228
+8c128 4 188 224
+8c12c 4 186 224
+8c130 4 183 224
+8c134 8 186 224
+8c13c 4 185 224
+8c140 4 183 224
+8c144 4 182 224
+8c148 4 188 224
+8c14c 4 95 215
+8c150 4 183 224
+8c154 4 188 224
+8c158 8 181 224
+8c160 4 188 224
+8c164 4 183 224
+8c168 10 188 224
+8c178 4 75 215
+8c17c 8 90 215
+8c184 8 77 215
+8c18c c 90 215
+8c198 c 190 224
+8c1a4 c 90 215
+8c1b0 c 194 224
+8c1bc 8 195 224
+8c1c4 4 196 224
+8c1c8 4 68 215
+8c1cc 10 229 236
+8c1dc c 228 236
+8c1e8 8 69 215
+8c1f0 1c 235 236
+8c20c 4 94 215
+8c210 4 93 215
+8c214 4 190 224
+8c218 4 95 215
+8c21c c 190 224
+8c228 4 218 224
+8c22c c 218 224
+8c238 8 219 224
+8c240 4 223 224
+8c244 10 224 224
+8c254 14 233 224
+8c268 8 224 224
+8c270 4 233 224
+8c274 18 233 224
+8c28c 4 96 239
+8c290 4 64 239
+8c294 c 96 239
+8c2a0 10 97 239
+8c2b0 14 287 224
+8c2c4 4 52 224
+8c2c8 4 52 224
+8c2cc 4 52 224
+8c2d0 c 202 224
+8c2dc 4 208 224
+8c2e0 4 206 224
+8c2e4 4 205 224
+8c2e8 4 206 224
+8c2ec 8 208 224
+8c2f4 10 211 224
+8c304 4 212 224
+8c308 8 213 224
+8c310 4 214 224
+8c314 c 213 224
+8c320 4 68 215
+8c324 10 229 236
+8c334 4 228 236
+8c338 c 229 236
+8c344 8 69 215
+8c34c 4 92 215
+8c350 1c 235 236
+8c36c 4 93 215
+8c370 4 94 215
+8c374 8 95 215
+8c37c 1c 235 236
+8c398 4 93 215
+8c39c 4 94 215
+8c3a0 8 95 215
+8c3a8 c 209 224
+8c3b4 c 52 224
+8c3c0 8 214 224
+8c3c8 60 234 236
+8c428 10 224 224
+8c438 8 287 224
+8c440 34 235 236
+8c474 c 218 224
+8c480 4 64 239
+8c484 10 96 239
+8c494 14 97 239
+8c4a8 18 291 224
+FUNC 8c4c0 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8c4c0 8 543 224
+8c4c8 4 546 224
+8c4cc 8 543 224
+8c4d4 20 546 224
+FUNC 8c4f4 5f8 0 std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long int, wchar_t>
+8c4f4 20 247 224
+8c514 4 145 212
+8c518 10 247 224
+8c528 8 145 212
+8c530 c 247 224
+8c53c 8 247 224
+8c544 4 145 212
+8c548 10 351 219
+8c558 4 258 224
+8c55c 4 351 219
+8c560 14 258 224
+8c574 8 112 215
+8c57c 4 259 224
+8c580 c 112 215
+8c58c 4 263 224
+8c590 4 265 224
+8c594 4 266 224
+8c598 4 287 224
+8c59c 4 287 224
+8c5a0 4 75 215
+8c5a4 4 287 224
+8c5a8 4 75 215
+8c5ac 8 90 215
+8c5b4 8 77 215
+8c5bc c 90 215
+8c5c8 c 289 224
+8c5d4 10 290 224
+8c5e4 4 291 224
+8c5e8 4 291 224
+8c5ec 4 291 224
+8c5f0 34 292 224
+8c624 1c 235 236
+8c640 4 93 215
+8c644 4 95 215
+8c648 4 94 215
+8c64c 8 95 215
+8c654 10 351 219
+8c664 4 275 224
+8c668 4 351 219
+8c66c 4 275 224
+8c670 c 86 228
+8c67c 8 87 228
+8c684 4 86 228
+8c688 14 87 228
+8c69c 4 128 224
+8c6a0 4 123 224
+8c6a4 4 128 224
+8c6a8 4 122 224
+8c6ac 4 128 224
+8c6b0 c 126 224
+8c6bc 4 123 224
+8c6c0 4 125 224
+8c6c4 8 121 224
+8c6cc 4 123 224
+8c6d0 4 95 215
+8c6d4 8 123 224
+8c6dc 18 128 224
+8c6f4 4 75 215
+8c6f8 8 90 215
+8c700 8 77 215
+8c708 c 90 215
+8c714 c 130 224
+8c720 c 90 215
+8c72c 10 134 224
+8c73c 8 135 224
+8c744 4 136 224
+8c748 4 68 215
+8c74c 10 229 236
+8c75c c 228 236
+8c768 8 69 215
+8c770 1c 235 236
+8c78c 4 94 215
+8c790 4 93 215
+8c794 4 130 224
+8c798 4 95 215
+8c79c 8 130 224
+8c7a4 4 158 224
+8c7a8 4 130 224
+8c7ac 4 158 224
+8c7b0 c 158 224
+8c7bc 8 159 224
+8c7c4 4 163 224
+8c7c8 8 274 224
+8c7d0 c 164 224
+8c7dc 14 173 224
+8c7f0 c 164 224
+8c7fc 8 173 224
+8c804 18 173 224
+8c81c 4 64 239
+8c820 10 96 239
+8c830 10 97 239
+8c840 14 287 224
+8c854 4 52 224
+8c858 4 52 224
+8c85c 4 52 224
+8c860 8 142 224
+8c868 4 148 224
+8c86c 4 146 224
+8c870 4 145 224
+8c874 4 146 224
+8c878 8 148 224
+8c880 c 151 224
+8c88c 4 152 224
+8c890 4 153 224
+8c894 4 154 224
+8c898 10 153 224
+8c8a8 4 68 215
+8c8ac 10 229 236
+8c8bc 4 228 236
+8c8c0 c 229 236
+8c8cc 8 69 215
+8c8d4 4 92 215
+8c8d8 1c 235 236
+8c8f4 4 93 215
+8c8f8 4 94 215
+8c8fc 8 95 215
+8c904 1c 235 236
+8c920 4 93 215
+8c924 4 94 215
+8c928 8 95 215
+8c930 c 149 224
+8c93c c 52 224
+8c948 8 154 224
+8c950 60 234 236
+8c9b0 1c 235 236
+8c9cc 4 93 215
+8c9d0 4 95 215
+8c9d4 4 94 215
+8c9d8 8 95 215
+8c9e0 10 164 224
+8c9f0 c 164 224
+8c9fc 24 234 236
+8ca20 8 287 224
+8ca28 24 234 236
+8ca4c 34 235 236
+8ca80 8 158 224
+8ca88 20 235 236
+8caa8 8 64 239
+8cab0 10 96 239
+8cac0 14 97 239
+8cad4 18 291 224
+FUNC 8caec 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8caec 8 537 224
+8caf4 4 539 224
+8caf8 8 537 224
+8cb00 20 539 224
+FUNC 8cb20 a8 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+8cb20 8 499 224
+8cb28 4 501 224
+8cb2c 8 499 224
+8cb34 4 501 224
+8cb38 24 506 224
+8cb5c 14 507 224
+8cb70 8 508 224
+8cb78 8 510 224
+8cb80 8 513 224
+8cb88 8 517 224
+8cb90 1c 502 224
+8cbac 8 517 224
+8cbb4 4 509 224
+8cbb8 8 517 224
+8cbc0 8 511 224
+FUNC 8cbc8 3e4 0 std::priv::__get_base_or_zero<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+8cbc8 10 56 224
+8cbd8 10 56 224
+8cbe8 8 59 224
+8cbf0 4 59 224
+8cbf4 4 59 224
+8cbf8 1c 103 207
+8cc14 c 90 215
+8cc20 c 64 224
+8cc2c 10 68 224
+8cc3c 4 74 224
+8cc40 18 76 224
+8cc58 10 120 215
+8cc68 4 95 224
+8cc6c 8 90 215
+8cc74 10 95 224
+8cc84 4 91 224
+8cc88 8 72 224
+8cc90 4 112 224
+8cc94 10 113 224
+8cca4 4 92 215
+8cca8 14 235 236
+8ccbc 4 94 215
+8ccc0 4 95 215
+8ccc4 4 64 224
+8ccc8 4 93 215
+8cccc 4 95 215
+8ccd0 8 64 224
+8ccd8 4 68 215
+8ccdc 10 229 236
+8ccec 8 228 236
+8ccf4 4 74 224
+8ccf8 4 69 215
+8ccfc 4 76 224
+8cd00 4 69 215
+8cd04 4 76 224
+8cd08 10 120 215
+8cd18 4 85 224
+8cd1c 8 90 215
+8cd24 10 85 224
+8cd34 c 72 224
+8cd40 4 112 224
+8cd44 10 113 224
+8cd54 4 68 215
+8cd58 10 229 236
+8cd68 8 228 236
+8cd70 c 69 215
+8cd7c 4 228 236
+8cd80 c 229 236
+8cd8c 4 228 236
+8cd90 c 229 236
+8cd9c 4 68 215
+8cda0 10 229 236
+8cdb0 8 228 236
+8cdb8 4 69 215
+8cdbc 10 120 215
+8cdcc 4 97 224
+8cdd0 8 90 215
+8cdd8 4 66 215
+8cddc c 97 224
+8cde8 c 97 224
+8cdf4 4 105 224
+8cdf8 8 72 224
+8ce00 4 112 224
+8ce04 10 113 224
+8ce14 4 68 215
+8ce18 10 229 236
+8ce28 8 228 236
+8ce30 4 69 215
+8ce34 10 120 215
+8ce44 4 87 224
+8ce48 8 90 215
+8ce50 4 66 215
+8ce54 c 87 224
+8ce60 c 87 224
+8ce6c 4 91 224
+8ce70 8 72 224
+8ce78 4 112 224
+8ce7c 10 113 224
+8ce8c 4 68 215
+8ce90 10 229 236
+8cea0 8 228 236
+8cea8 4 69 215
+8ceac 4 72 224
+8ceb0 8 69 215
+8ceb8 4 112 224
+8cebc 10 113 224
+8cecc 2c 234 236
+8cef8 4 66 215
+8cefc c 97 224
+8cf08 20 90 215
+8cf28 4 66 215
+8cf2c c 87 224
+8cf38 18 90 215
+8cf50 4 228 236
+8cf54 c 229 236
+8cf60 4 228 236
+8cf64 c 229 236
+8cf70 4 228 236
+8cf74 24 229 236
+8cf98 14 235 236
+FUNC 8cfac 5c4 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long long unsigned int, char>
+8cfac 20 247 224
+8cfcc 4 145 212
+8cfd0 10 247 224
+8cfe0 8 145 212
+8cfe8 c 247 224
+8cff4 8 247 224
+8cffc 4 145 212
+8d000 10 351 219
+8d010 4 258 224
+8d014 4 351 219
+8d018 14 258 224
+8d02c 8 112 215
+8d034 4 259 224
+8d038 c 112 215
+8d044 4 263 224
+8d048 4 265 224
+8d04c 4 266 224
+8d050 4 287 224
+8d054 4 287 224
+8d058 4 75 215
+8d05c 4 287 224
+8d060 4 75 215
+8d064 8 90 215
+8d06c 8 77 215
+8d074 c 90 215
+8d080 c 289 224
+8d08c 10 290 224
+8d09c 4 291 224
+8d0a0 4 291 224
+8d0a4 4 291 224
+8d0a8 34 292 224
+8d0dc 14 235 236
+8d0f0 4 93 215
+8d0f4 4 95 215
+8d0f8 4 94 215
+8d0fc 8 95 215
+8d104 10 351 219
+8d114 4 275 224
+8d118 4 351 219
+8d11c 4 57 228
+8d120 4 275 224
+8d124 4 57 228
+8d128 8 275 224
+8d130 4 57 228
+8d134 8 58 228
+8d13c 4 57 228
+8d140 14 58 228
+8d154 4 188 224
+8d158 4 183 224
+8d15c 4 182 224
+8d160 4 185 224
+8d164 4 95 215
+8d168 4 181 224
+8d16c c 188 224
+8d178 c 186 224
+8d184 8 183 224
+8d18c 8 188 224
+8d194 4 183 224
+8d198 14 188 224
+8d1ac 4 75 215
+8d1b0 8 90 215
+8d1b8 8 77 215
+8d1c0 c 90 215
+8d1cc c 190 224
+8d1d8 c 90 215
+8d1e4 c 194 224
+8d1f0 8 195 224
+8d1f8 4 196 224
+8d1fc 4 68 215
+8d200 10 229 236
+8d210 8 228 236
+8d218 8 69 215
+8d220 14 235 236
+8d234 4 93 215
+8d238 4 94 215
+8d23c 4 95 215
+8d240 10 190 224
+8d250 4 218 224
+8d254 c 218 224
+8d260 8 219 224
+8d268 4 223 224
+8d26c 10 224 224
+8d27c 14 233 224
+8d290 8 224 224
+8d298 4 233 224
+8d29c 18 233 224
+8d2b4 4 64 239
+8d2b8 10 96 239
+8d2c8 10 97 239
+8d2d8 14 287 224
+8d2ec 4 52 224
+8d2f0 4 52 224
+8d2f4 4 52 224
+8d2f8 c 202 224
+8d304 4 208 224
+8d308 4 206 224
+8d30c 4 205 224
+8d310 4 206 224
+8d314 8 208 224
+8d31c 8 211 224
+8d324 4 212 224
+8d328 4 213 224
+8d32c 4 214 224
+8d330 10 213 224
+8d340 4 68 215
+8d344 10 229 236
+8d354 4 228 236
+8d358 c 229 236
+8d364 8 69 215
+8d36c 4 92 215
+8d370 14 235 236
+8d384 4 93 215
+8d388 4 94 215
+8d38c 8 95 215
+8d394 14 235 236
+8d3a8 4 93 215
+8d3ac 4 94 215
+8d3b0 8 95 215
+8d3b8 c 209 224
+8d3c4 c 52 224
+8d3d0 8 214 224
+8d3d8 60 234 236
+8d438 14 235 236
+8d44c 4 93 215
+8d450 4 95 215
+8d454 4 94 215
+8d458 8 95 215
+8d460 10 224 224
+8d470 24 234 236
+8d494 8 287 224
+8d49c 24 234 236
+8d4c0 3c 235 236
+8d4fc 8 218 224
+8d504 28 235 236
+8d52c 8 64 239
+8d534 10 96 239
+8d544 14 97 239
+8d558 18 291 224
+FUNC 8d570 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8d570 8 611 224
+8d578 4 614 224
+8d57c 8 611 224
+8d584 20 614 224
+FUNC 8d5a4 54 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8d5a4 8 587 224
+8d5ac 4 595 224
+8d5b0 8 587 224
+8d5b8 18 595 224
+8d5d0 4 587 224
+8d5d4 4 595 224
+8d5d8 c 596 224
+8d5e4 c 597 224
+8d5f0 8 599 224
+FUNC 8d5f8 5dc 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long long int, char>
+8d5f8 20 247 224
+8d618 4 145 212
+8d61c 10 247 224
+8d62c 8 145 212
+8d634 c 247 224
+8d640 8 247 224
+8d648 4 145 212
+8d64c 10 351 219
+8d65c 4 258 224
+8d660 4 351 219
+8d664 14 258 224
+8d678 8 112 215
+8d680 4 259 224
+8d684 c 112 215
+8d690 4 263 224
+8d694 4 265 224
+8d698 4 266 224
+8d69c 4 287 224
+8d6a0 4 287 224
+8d6a4 4 75 215
+8d6a8 4 287 224
+8d6ac 4 75 215
+8d6b0 8 90 215
+8d6b8 8 77 215
+8d6c0 c 90 215
+8d6cc c 289 224
+8d6d8 10 290 224
+8d6e8 4 291 224
+8d6ec 4 291 224
+8d6f0 4 291 224
+8d6f4 34 292 224
+8d728 14 235 236
+8d73c 4 93 215
+8d740 4 95 215
+8d744 4 94 215
+8d748 8 95 215
+8d750 10 351 219
+8d760 4 275 224
+8d764 4 351 219
+8d768 4 275 224
+8d76c c 57 228
+8d778 8 58 228
+8d780 4 57 228
+8d784 14 58 228
+8d798 4 128 224
+8d79c 4 123 224
+8d7a0 4 128 224
+8d7a4 4 122 224
+8d7a8 4 128 224
+8d7ac c 126 224
+8d7b8 4 123 224
+8d7bc 4 125 224
+8d7c0 4 121 224
+8d7c4 4 95 215
+8d7c8 14 123 224
+8d7dc 14 128 224
+8d7f0 4 75 215
+8d7f4 8 90 215
+8d7fc 8 77 215
+8d804 c 90 215
+8d810 c 130 224
+8d81c c 90 215
+8d828 10 134 224
+8d838 8 135 224
+8d840 4 136 224
+8d844 4 68 215
+8d848 10 229 236
+8d858 8 228 236
+8d860 8 69 215
+8d868 14 235 236
+8d87c 4 93 215
+8d880 4 94 215
+8d884 4 95 215
+8d888 c 130 224
+8d894 4 158 224
+8d898 4 130 224
+8d89c 4 158 224
+8d8a0 c 158 224
+8d8ac 8 159 224
+8d8b4 4 163 224
+8d8b8 8 274 224
+8d8c0 c 164 224
+8d8cc 14 173 224
+8d8e0 c 164 224
+8d8ec 8 173 224
+8d8f4 18 173 224
+8d90c 4 64 239
+8d910 10 96 239
+8d920 10 97 239
+8d930 14 287 224
+8d944 4 52 224
+8d948 4 52 224
+8d94c 4 52 224
+8d950 8 142 224
+8d958 4 148 224
+8d95c 4 146 224
+8d960 4 145 224
+8d964 4 146 224
+8d968 8 148 224
+8d970 c 151 224
+8d97c 4 152 224
+8d980 4 153 224
+8d984 4 154 224
+8d988 10 153 224
+8d998 4 68 215
+8d99c 10 229 236
+8d9ac 4 228 236
+8d9b0 c 229 236
+8d9bc 8 69 215
+8d9c4 4 92 215
+8d9c8 14 235 236
+8d9dc 4 93 215
+8d9e0 4 94 215
+8d9e4 8 95 215
+8d9ec 14 235 236
+8da00 4 93 215
+8da04 4 94 215
+8da08 8 95 215
+8da10 c 149 224
+8da1c c 52 224
+8da28 8 154 224
+8da30 60 234 236
+8da90 14 235 236
+8daa4 4 93 215
+8daa8 4 95 215
+8daac 4 94 215
+8dab0 8 95 215
+8dab8 10 164 224
+8dac8 c 164 224
+8dad4 24 234 236
+8daf8 8 287 224
+8db00 24 234 236
+8db24 3c 235 236
+8db60 8 158 224
+8db68 28 235 236
+8db90 8 64 239
+8db98 10 96 239
+8dba8 14 97 239
+8dbbc 18 291 224
+FUNC 8dbd4 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8dbd4 8 604 224
+8dbdc 4 607 224
+8dbe0 8 604 224
+8dbe8 20 607 224
+FUNC 8dc08 5c4 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long unsigned int, char>
+8dc08 20 247 224
+8dc28 4 145 212
+8dc2c 10 247 224
+8dc3c 8 145 212
+8dc44 c 247 224
+8dc50 8 247 224
+8dc58 4 145 212
+8dc5c 10 351 219
+8dc6c 4 258 224
+8dc70 4 351 219
+8dc74 14 258 224
+8dc88 8 112 215
+8dc90 4 259 224
+8dc94 c 112 215
+8dca0 4 263 224
+8dca4 4 265 224
+8dca8 4 266 224
+8dcac 4 287 224
+8dcb0 4 287 224
+8dcb4 4 75 215
+8dcb8 4 287 224
+8dcbc 4 75 215
+8dcc0 8 90 215
+8dcc8 8 77 215
+8dcd0 c 90 215
+8dcdc c 289 224
+8dce8 10 290 224
+8dcf8 4 291 224
+8dcfc 4 291 224
+8dd00 4 291 224
+8dd04 34 292 224
+8dd38 14 235 236
+8dd4c 4 93 215
+8dd50 4 95 215
+8dd54 4 94 215
+8dd58 8 95 215
+8dd60 10 351 219
+8dd70 4 275 224
+8dd74 4 351 219
+8dd78 4 57 228
+8dd7c 4 275 224
+8dd80 4 57 228
+8dd84 8 275 224
+8dd8c 4 57 228
+8dd90 8 58 228
+8dd98 4 57 228
+8dd9c 14 58 228
+8ddb0 4 188 224
+8ddb4 4 183 224
+8ddb8 4 182 224
+8ddbc 4 185 224
+8ddc0 4 95 215
+8ddc4 4 181 224
+8ddc8 c 188 224
+8ddd4 c 186 224
+8dde0 8 183 224
+8dde8 8 188 224
+8ddf0 4 183 224
+8ddf4 14 188 224
+8de08 4 75 215
+8de0c 8 90 215
+8de14 8 77 215
+8de1c c 90 215
+8de28 c 190 224
+8de34 c 90 215
+8de40 c 194 224
+8de4c 8 195 224
+8de54 4 196 224
+8de58 4 68 215
+8de5c 10 229 236
+8de6c 8 228 236
+8de74 8 69 215
+8de7c 14 235 236
+8de90 4 93 215
+8de94 4 94 215
+8de98 4 95 215
+8de9c 10 190 224
+8deac 4 218 224
+8deb0 c 218 224
+8debc 8 219 224
+8dec4 4 223 224
+8dec8 10 224 224
+8ded8 14 233 224
+8deec 8 224 224
+8def4 4 233 224
+8def8 18 233 224
+8df10 4 64 239
+8df14 10 96 239
+8df24 10 97 239
+8df34 14 287 224
+8df48 4 52 224
+8df4c 4 52 224
+8df50 4 52 224
+8df54 c 202 224
+8df60 4 208 224
+8df64 4 206 224
+8df68 4 205 224
+8df6c 4 206 224
+8df70 8 208 224
+8df78 8 211 224
+8df80 4 212 224
+8df84 4 213 224
+8df88 4 214 224
+8df8c 10 213 224
+8df9c 4 68 215
+8dfa0 10 229 236
+8dfb0 4 228 236
+8dfb4 c 229 236
+8dfc0 8 69 215
+8dfc8 4 92 215
+8dfcc 14 235 236
+8dfe0 4 93 215
+8dfe4 4 94 215
+8dfe8 8 95 215
+8dff0 14 235 236
+8e004 4 93 215
+8e008 4 94 215
+8e00c 8 95 215
+8e014 c 209 224
+8e020 c 52 224
+8e02c 8 214 224
+8e034 60 234 236
+8e094 14 235 236
+8e0a8 4 93 215
+8e0ac 4 95 215
+8e0b0 4 94 215
+8e0b4 8 95 215
+8e0bc 10 224 224
+8e0cc 24 234 236
+8e0f0 8 287 224
+8e0f8 24 234 236
+8e11c 3c 235 236
+8e158 8 218 224
+8e160 28 235 236
+8e188 8 64 239
+8e190 10 96 239
+8e1a0 14 97 239
+8e1b4 18 291 224
+FUNC 8e1cc 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8e1cc 8 557 224
+8e1d4 4 560 224
+8e1d8 8 557 224
+8e1e0 20 560 224
+FUNC 8e200 4d4 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned int, char>
+8e200 20 247 224
+8e220 4 145 212
+8e224 10 247 224
+8e234 8 145 212
+8e23c c 247 224
+8e248 8 247 224
+8e250 4 145 212
+8e254 10 351 219
+8e264 4 258 224
+8e268 4 351 219
+8e26c 14 258 224
+8e280 8 112 215
+8e288 4 259 224
+8e28c c 112 215
+8e298 4 263 224
+8e29c 4 265 224
+8e2a0 4 266 224
+8e2a4 4 287 224
+8e2a8 4 287 224
+8e2ac 4 112 215
+8e2b0 4 287 224
+8e2b4 c 112 215
+8e2c0 4 289 224
+8e2c4 c 290 224
+8e2d0 4 291 224
+8e2d4 4 291 224
+8e2d8 4 291 224
+8e2dc 34 292 224
+8e310 10 351 219
+8e320 4 275 224
+8e324 4 351 219
+8e328 4 57 228
+8e32c 4 275 224
+8e330 4 57 228
+8e334 4 275 224
+8e338 4 57 228
+8e33c 8 58 228
+8e344 4 57 228
+8e348 14 58 228
+8e35c 4 186 224
+8e360 4 183 224
+8e364 8 186 224
+8e36c 4 183 224
+8e370 4 185 224
+8e374 4 182 224
+8e378 4 95 215
+8e37c 4 183 224
+8e380 8 188 224
+8e388 4 183 224
+8e38c 4 181 224
+8e390 18 188 224
+8e3a8 4 75 215
+8e3ac 8 90 215
+8e3b4 8 77 215
+8e3bc c 90 215
+8e3c8 c 190 224
+8e3d4 c 90 215
+8e3e0 c 194 224
+8e3ec 8 195 224
+8e3f4 4 196 224
+8e3f8 4 68 215
+8e3fc 10 229 236
+8e40c 8 228 236
+8e414 8 69 215
+8e41c 14 235 236
+8e430 4 93 215
+8e434 4 94 215
+8e438 4 95 215
+8e43c 10 190 224
+8e44c 4 218 224
+8e450 c 218 224
+8e45c 8 219 224
+8e464 4 223 224
+8e468 10 224 224
+8e478 14 233 224
+8e48c 8 224 224
+8e494 4 233 224
+8e498 18 233 224
+8e4b0 4 96 239
+8e4b4 4 64 239
+8e4b8 c 96 239
+8e4c4 10 97 239
+8e4d4 14 287 224
+8e4e8 4 52 224
+8e4ec 4 52 224
+8e4f0 4 52 224
+8e4f4 c 202 224
+8e500 4 208 224
+8e504 4 206 224
+8e508 4 205 224
+8e50c 4 206 224
+8e510 8 208 224
+8e518 8 211 224
+8e520 4 212 224
+8e524 4 213 224
+8e528 4 214 224
+8e52c 10 213 224
+8e53c 4 68 215
+8e540 10 229 236
+8e550 4 228 236
+8e554 c 229 236
+8e560 8 69 215
+8e568 4 92 215
+8e56c 14 235 236
+8e580 4 93 215
+8e584 4 94 215
+8e588 8 95 215
+8e590 14 235 236
+8e5a4 4 93 215
+8e5a8 4 94 215
+8e5ac 8 95 215
+8e5b4 c 209 224
+8e5c0 c 52 224
+8e5cc 8 214 224
+8e5d4 60 234 236
+8e634 10 224 224
+8e644 8 287 224
+8e64c 3c 235 236
+8e688 c 218 224
+8e694 4 64 239
+8e698 10 96 239
+8e6a8 14 97 239
+8e6bc 18 291 224
+FUNC 8e6d4 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8e6d4 8 550 224
+8e6dc 4 553 224
+8e6e0 8 550 224
+8e6e8 20 553 224
+FUNC 8e708 5c0 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, short unsigned int, char>
+8e708 20 247 224
+8e728 4 145 212
+8e72c 10 247 224
+8e73c 8 145 212
+8e744 c 247 224
+8e750 4 247 224
+8e754 4 145 212
+8e758 10 351 219
+8e768 4 258 224
+8e76c 4 351 219
+8e770 14 258 224
+8e784 4 75 215
+8e788 4 259 224
+8e78c 4 75 215
+8e790 8 90 215
+8e798 8 77 215
+8e7a0 c 90 215
+8e7ac c 263 224
+8e7b8 8 265 224
+8e7c0 8 266 224
+8e7c8 4 287 224
+8e7cc 4 287 224
+8e7d0 4 112 215
+8e7d4 4 287 224
+8e7d8 c 112 215
+8e7e4 4 289 224
+8e7e8 c 290 224
+8e7f4 4 291 224
+8e7f8 4 291 224
+8e7fc 4 291 224
+8e800 34 292 224
+8e834 14 235 236
+8e848 4 93 215
+8e84c 4 95 215
+8e850 4 94 215
+8e854 4 95 215
+8e858 c 263 224
+8e864 10 351 219
+8e874 4 275 224
+8e878 4 351 219
+8e87c 4 57 228
+8e880 4 275 224
+8e884 4 57 228
+8e888 4 275 224
+8e88c 4 57 228
+8e890 8 58 228
+8e898 4 57 228
+8e89c 14 58 228
+8e8b0 4 186 224
+8e8b4 4 188 224
+8e8b8 4 186 224
+8e8bc 4 183 224
+8e8c0 4 186 224
+8e8c4 4 183 224
+8e8c8 4 185 224
+8e8cc 4 95 215
+8e8d0 4 183 224
+8e8d4 8 188 224
+8e8dc 4 183 224
+8e8e0 4 181 224
+8e8e4 4 182 224
+8e8e8 18 188 224
+8e900 4 75 215
+8e904 8 90 215
+8e90c 8 77 215
+8e914 c 90 215
+8e920 c 190 224
+8e92c c 90 215
+8e938 c 194 224
+8e944 8 195 224
+8e94c 4 196 224
+8e950 4 68 215
+8e954 10 229 236
+8e964 8 228 236
+8e96c 8 69 215
+8e974 14 235 236
+8e988 4 93 215
+8e98c 4 94 215
+8e990 4 95 215
+8e994 10 190 224
+8e9a4 4 218 224
+8e9a8 c 218 224
+8e9b4 8 219 224
+8e9bc 4 223 224
+8e9c0 c 224 224
+8e9cc 10 233 224
+8e9dc c 224 224
+8e9e8 4 233 224
+8e9ec 4 96 239
+8e9f0 4 64 239
+8e9f4 c 96 239
+8ea00 10 97 239
+8ea10 10 287 224
+8ea20 4 52 224
+8ea24 4 52 224
+8ea28 4 52 224
+8ea2c c 202 224
+8ea38 4 208 224
+8ea3c 4 206 224
+8ea40 4 205 224
+8ea44 4 206 224
+8ea48 8 208 224
+8ea50 10 211 224
+8ea60 4 212 224
+8ea64 8 213 224
+8ea6c 4 214 224
+8ea70 c 213 224
+8ea7c 4 68 215
+8ea80 10 229 236
+8ea90 4 228 236
+8ea94 c 229 236
+8eaa0 8 69 215
+8eaa8 4 92 215
+8eaac 14 235 236
+8eac0 4 93 215
+8eac4 4 94 215
+8eac8 8 95 215
+8ead0 14 235 236
+8eae4 4 93 215
+8eae8 4 94 215
+8eaec 8 95 215
+8eaf4 c 209 224
+8eb00 c 52 224
+8eb0c 8 214 224
+8eb14 60 234 236
+8eb74 14 235 236
+8eb88 4 93 215
+8eb8c 4 95 215
+8eb90 4 94 215
+8eb94 8 95 215
+8eb9c c 224 224
+8eba8 8 233 224
+8ebb0 24 234 236
+8ebd4 8 287 224
+8ebdc 24 234 236
+8ec00 28 235 236
+8ec28 18 233 224
+8ec40 14 235 236
+8ec54 8 218 224
+8ec5c 2c 235 236
+8ec88 4 64 239
+8ec8c 10 96 239
+8ec9c 14 97 239
+8ecb0 18 291 224
+FUNC 8ecc8 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8ecc8 8 543 224
+8ecd0 4 546 224
+8ecd4 8 543 224
+8ecdc 20 546 224
+FUNC 8ecfc 4fc 0 std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long int, char>
+8ecfc 20 247 224
+8ed1c 4 145 212
+8ed20 10 247 224
+8ed30 8 145 212
+8ed38 c 247 224
+8ed44 8 247 224
+8ed4c 4 145 212
+8ed50 10 351 219
+8ed60 4 258 224
+8ed64 4 351 219
+8ed68 14 258 224
+8ed7c 8 112 215
+8ed84 4 259 224
+8ed88 c 112 215
+8ed94 4 263 224
+8ed98 4 265 224
+8ed9c 4 266 224
+8eda0 4 287 224
+8eda4 4 287 224
+8eda8 4 112 215
+8edac 4 287 224
+8edb0 c 112 215
+8edbc 4 289 224
+8edc0 c 290 224
+8edcc 4 291 224
+8edd0 4 291 224
+8edd4 4 291 224
+8edd8 34 292 224
+8ee0c 10 351 219
+8ee1c 4 275 224
+8ee20 4 351 219
+8ee24 4 275 224
+8ee28 c 57 228
+8ee34 8 58 228
+8ee3c 4 57 228
+8ee40 14 58 228
+8ee54 4 128 224
+8ee58 4 123 224
+8ee5c 4 128 224
+8ee60 4 122 224
+8ee64 4 128 224
+8ee68 c 126 224
+8ee74 4 123 224
+8ee78 4 125 224
+8ee7c 4 121 224
+8ee80 4 95 215
+8ee84 14 123 224
+8ee98 14 128 224
+8eeac 4 75 215
+8eeb0 8 90 215
+8eeb8 8 77 215
+8eec0 c 90 215
+8eecc c 130 224
+8eed8 c 90 215
+8eee4 10 134 224
+8eef4 8 135 224
+8eefc 4 136 224
+8ef00 4 68 215
+8ef04 10 229 236
+8ef14 8 228 236
+8ef1c 8 69 215
+8ef24 14 235 236
+8ef38 4 93 215
+8ef3c 4 94 215
+8ef40 4 95 215
+8ef44 c 130 224
+8ef50 4 158 224
+8ef54 4 130 224
+8ef58 4 158 224
+8ef5c c 158 224
+8ef68 8 159 224
+8ef70 4 163 224
+8ef74 8 274 224
+8ef7c c 164 224
+8ef88 14 173 224
+8ef9c c 164 224
+8efa8 8 173 224
+8efb0 18 173 224
+8efc8 4 64 239
+8efcc 10 96 239
+8efdc 10 97 239
+8efec 14 287 224
+8f000 4 52 224
+8f004 4 52 224
+8f008 4 52 224
+8f00c 8 142 224
+8f014 4 148 224
+8f018 4 146 224
+8f01c 4 145 224
+8f020 4 146 224
+8f024 8 148 224
+8f02c c 151 224
+8f038 4 152 224
+8f03c 4 153 224
+8f040 4 154 224
+8f044 10 153 224
+8f054 4 68 215
+8f058 10 229 236
+8f068 4 228 236
+8f06c c 229 236
+8f078 8 69 215
+8f080 4 92 215
+8f084 14 235 236
+8f098 4 93 215
+8f09c 4 94 215
+8f0a0 8 95 215
+8f0a8 14 235 236
+8f0bc 4 93 215
+8f0c0 4 94 215
+8f0c4 8 95 215
+8f0cc c 149 224
+8f0d8 c 52 224
+8f0e4 8 154 224
+8f0ec 60 234 236
+8f14c 10 164 224
+8f15c c 164 224
+8f168 8 287 224
+8f170 3c 235 236
+8f1ac 8 158 224
+8f1b4 8 64 239
+8f1bc 10 96 239
+8f1cc 14 97 239
+8f1e0 18 291 224
+FUNC 8f1f8 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8f1f8 8 537 224
+8f200 4 539 224
+8f204 8 537 224
+8f20c 20 539 224
+FUNC 8f22c a8 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+8f22c 8 499 224
+8f234 4 501 224
+8f238 8 499 224
+8f240 4 501 224
+8f244 24 506 224
+8f268 14 507 224
+8f27c 8 508 224
+8f284 8 510 224
+8f28c 8 513 224
+8f294 8 517 224
+8f29c 1c 502 224
+8f2b8 8 517 224
+8f2c0 4 509 224
+8f2c4 8 517 224
+8f2cc 8 511 224
+FUNC 8f2d4 468 0 std::priv::__put_float<std::ostreambuf_iterator<char, std::char_traits<char> > >
+8f2d4 20 96 226
+8f2f4 4 400 238
+8f2f8 4 96 226
+8f2fc 4 400 238
+8f300 8 96 226
+8f308 4 100 226
+8f30c 14 96 226
+8f320 4 100 226
+8f324 c 100 226
+8f330 10 104 226
+8f340 20 105 226
+8f360 4 138 212
+8f364 4 400 238
+8f368 8 139 212
+8f370 c 47 226
+8f37c 4 51 226
+8f380 4 50 226
+8f384 4 53 226
+8f388 4 50 226
+8f38c 4 53 226
+8f390 10 57 226
+8f3a0 c 57 226
+8f3ac 8 57 226
+8f3b4 18 480 201
+8f3cc 4 62 230
+8f3d0 4 200 236
+8f3d4 4 199 236
+8f3d8 4 200 236
+8f3dc 4 199 236
+8f3e0 8 200 236
+8f3e8 8 199 236
+8f3f0 8 480 201
+8f3f8 4 64 226
+8f3fc 4 213 201
+8f400 4 64 226
+8f404 10 213 201
+8f414 8 199 236
+8f41c 4 215 201
+8f420 8 213 201
+8f428 4 214 201
+8f42c 4 62 230
+8f430 4 200 236
+8f434 4 199 236
+8f438 4 200 236
+8f43c 4 199 236
+8f440 8 200 236
+8f448 4 199 236
+8f44c 4 223 247
+8f450 c 199 236
+8f45c 4 200 236
+8f460 4 215 201
+8f464 4 200 236
+8f468 8 62 230
+8f470 8 213 201
+8f478 10 62 230
+8f488 1c 111 226
+8f4a4 8 101 226
+8f4ac 4 199 236
+8f4b0 4 223 247
+8f4b4 c 199 236
+8f4c0 c 200 236
+8f4cc c 62 230
+8f4d8 1c 213 201
+8f4f4 8 199 236
+8f4fc 4 215 201
+8f500 8 213 201
+8f508 4 214 201
+8f50c 4 62 230
+8f510 4 200 236
+8f514 4 199 236
+8f518 4 200 236
+8f51c 4 199 236
+8f520 8 200 236
+8f528 4 199 236
+8f52c 4 223 247
+8f530 c 199 236
+8f53c 8 200 236
+8f544 c 62 230
+8f550 4 59 226
+8f554 4 59 226
+8f558 8 59 226
+8f560 14 480 201
+8f574 4 62 230
+8f578 4 200 236
+8f57c 4 199 236
+8f580 4 200 236
+8f584 4 199 236
+8f588 8 200 236
+8f590 8 199 236
+8f598 8 480 201
+8f5a0 4 213 201
+8f5a4 8 60 226
+8f5ac 1c 213 201
+8f5c8 8 199 236
+8f5d0 4 215 201
+8f5d4 8 213 201
+8f5dc 4 214 201
+8f5e0 4 62 230
+8f5e4 4 200 236
+8f5e8 4 199 236
+8f5ec 4 200 236
+8f5f0 4 199 236
+8f5f4 8 200 236
+8f5fc 4 199 236
+8f600 4 223 247
+8f604 c 199 236
+8f610 8 200 236
+8f618 c 62 230
+8f624 4 199 236
+8f628 4 223 247
+8f62c c 199 236
+8f638 c 200 236
+8f644 c 62 230
+8f650 1c 213 201
+8f66c 8 199 236
+8f674 4 215 201
+8f678 8 213 201
+8f680 4 214 201
+8f684 4 62 230
+8f688 4 200 236
+8f68c 4 199 236
+8f690 4 200 236
+8f694 4 199 236
+8f698 8 200 236
+8f6a0 4 199 236
+8f6a4 4 223 247
+8f6a8 c 199 236
+8f6b4 8 200 236
+8f6bc c 62 230
+8f6c8 4 54 226
+8f6cc 4 480 201
+8f6d0 4 54 226
+8f6d4 c 480 201
+8f6e0 4 62 230
+8f6e4 4 200 236
+8f6e8 4 199 236
+8f6ec 4 200 236
+8f6f0 4 199 236
+8f6f4 8 200 236
+8f6fc 8 199 236
+8f704 c 480 201
+8f710 4 199 236
+8f714 4 223 247
+8f718 c 199 236
+8f724 c 200 236
+8f730 c 62 230
+FUNC 8f73c 220 0 std::priv::__do_put_float<char, std::ostreambuf_iterator<char, std::char_traits<char> >, long double>
+8f73c 10 115 226
+8f74c 4 108 213
+8f750 4 41 213
+8f754 18 115 226
+8f76c 4 108 213
+8f770 4 115 226
+8f774 4 115 226
+8f778 8 108 213
+8f780 4 41 213
+8f784 8 115 226
+8f78c 4 108 213
+8f790 10 41 213
+8f7a0 4 611 237
+8f7a4 c 119 226
+8f7b0 4 613 237
+8f7b4 4 119 226
+8f7b8 4 612 237
+8f7bc 4 613 237
+8f7c0 4 101 206
+8f7c4 4 119 226
+8f7c8 4 145 212
+8f7cc 4 119 226
+8f7d0 8 145 212
+8f7d8 14 351 219
+8f7ec 8 121 226
+8f7f4 10 56 228
+8f804 4 57 228
+8f808 4 56 228
+8f80c c 57 228
+8f818 4 58 228
+8f81c 4 57 228
+8f820 10 58 228
+8f830 2c 124 226
+8f85c 4 64 239
+8f860 4 124 226
+8f864 c 96 239
+8f870 8 97 239
+8f878 8 161 202
+8f880 4 161 202
+8f884 4 64 239
+8f888 c 96 239
+8f894 4 97 239
+8f898 8 319 202
+8f8a0 4 97 239
+8f8a4 8 161 202
+8f8ac 4 161 202
+8f8b0 2c 125 226
+8f8dc 14 135 223
+8f8f0 4 64 239
+8f8f4 c 96 239
+8f900 4 97 239
+8f904 4 70 213
+8f908 4 97 239
+8f90c 4 70 213
+8f910 c 70 213
+8f91c 8 64 239
+8f924 c 96 239
+8f930 1c 97 239
+8f94c 10 121 226
+FUNC 8f95c 24 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+8f95c 4 451 226
+8f960 8 453 226
+8f968 4 451 226
+8f96c 8 453 226
+8f974 c 453 226
+FUNC 8f980 220 0 std::priv::__do_put_float<char, std::ostreambuf_iterator<char, std::char_traits<char> >, double>
+8f980 10 115 226
+8f990 4 108 213
+8f994 4 41 213
+8f998 18 115 226
+8f9b0 4 108 213
+8f9b4 4 115 226
+8f9b8 4 115 226
+8f9bc 8 108 213
+8f9c4 4 41 213
+8f9c8 8 115 226
+8f9d0 4 108 213
+8f9d4 10 41 213
+8f9e4 4 611 237
+8f9e8 c 119 226
+8f9f4 4 613 237
+8f9f8 4 119 226
+8f9fc 4 612 237
+8fa00 4 613 237
+8fa04 4 101 206
+8fa08 4 119 226
+8fa0c 4 145 212
+8fa10 4 119 226
+8fa14 8 145 212
+8fa1c 14 351 219
+8fa30 8 121 226
+8fa38 10 56 228
+8fa48 4 57 228
+8fa4c 4 56 228
+8fa50 c 57 228
+8fa5c 4 58 228
+8fa60 4 57 228
+8fa64 10 58 228
+8fa74 2c 124 226
+8faa0 4 64 239
+8faa4 4 124 226
+8faa8 c 96 239
+8fab4 8 97 239
+8fabc 8 161 202
+8fac4 4 161 202
+8fac8 4 64 239
+8facc c 96 239
+8fad8 4 97 239
+8fadc 8 319 202
+8fae4 4 97 239
+8fae8 8 161 202
+8faf0 4 161 202
+8faf4 2c 125 226
+8fb20 14 135 223
+8fb34 4 64 239
+8fb38 c 96 239
+8fb44 4 97 239
+8fb48 4 70 213
+8fb4c 4 97 239
+8fb50 4 70 213
+8fb54 c 70 213
+8fb60 8 64 239
+8fb68 c 96 239
+8fb74 1c 97 239
+8fb90 10 121 226
+FUNC 8fba0 24 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+8fba0 4 444 226
+8fba4 8 446 226
+8fbac 4 444 226
+8fbb0 8 446 226
+8fbb8 c 446 226
+FUNC 8fbc4 4b4 0 std::priv::__copy_integer_and_fill<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+8fbc4 4 148 226
+8fbc8 4 152 226
+8fbcc 10 148 226
+8fbdc c 148 226
+8fbe8 4 152 226
+8fbec 4 161 226
+8fbf0 4 159 226
+8fbf4 8 163 226
+8fbfc 10 167 226
+8fc0c 4 167 226
+8fc10 14 167 226
+8fc24 c 173 226
+8fc30 10 173 226
+8fc40 18 480 201
+8fc58 4 62 230
+8fc5c 4 200 236
+8fc60 4 200 236
+8fc64 4 200 236
+8fc68 4 199 236
+8fc6c 8 200 236
+8fc74 8 199 236
+8fc7c 8 62 230
+8fc84 8 480 201
+8fc8c 4 183 226
+8fc90 8 182 226
+8fc98 18 213 201
+8fcb0 8 199 236
+8fcb8 8 62 230
+8fcc0 4 215 201
+8fcc4 8 213 201
+8fccc 4 214 201
+8fcd0 4 62 230
+8fcd4 4 200 236
+8fcd8 4 200 236
+8fcdc 4 200 236
+8fce0 4 199 236
+8fce4 8 200 236
+8fcec 14 199 236
+8fd00 c 200 236
+8fd0c 8 153 226
+8fd14 18 213 201
+8fd2c 18 186 226
+8fd44 14 199 236
+8fd58 28 200 236
+8fd80 8 199 236
+8fd88 8 62 230
+8fd90 4 215 201
+8fd94 8 213 201
+8fd9c 4 214 201
+8fda0 4 62 230
+8fda4 4 200 236
+8fda8 4 200 236
+8fdac 4 200 236
+8fdb0 4 199 236
+8fdb4 8 200 236
+8fdbc 14 199 236
+8fdd0 c 200 236
+8fddc 10 169 226
+8fdec 18 480 201
+8fe04 4 62 230
+8fe08 4 200 236
+8fe0c 4 200 236
+8fe10 4 200 236
+8fe14 4 199 236
+8fe18 8 200 236
+8fe20 8 199 236
+8fe28 8 62 230
+8fe30 8 480 201
+8fe38 8 171 226
+8fe40 4 213 201
+8fe44 4 170 226
+8fe48 4 213 201
+8fe4c 4 170 226
+8fe50 1c 213 201
+8fe6c 8 199 236
+8fe74 8 62 230
+8fe7c 4 215 201
+8fe80 8 213 201
+8fe88 4 214 201
+8fe8c 4 62 230
+8fe90 4 200 236
+8fe94 4 200 236
+8fe98 4 200 236
+8fe9c 4 199 236
+8fea0 8 200 236
+8fea8 14 199 236
+8febc c 200 236
+8fec8 14 199 236
+8fedc 18 200 236
+8fef4 1c 285 201
+8ff10 8 164 226
+8ff18 14 480 201
+8ff2c 4 62 230
+8ff30 4 200 236
+8ff34 4 200 236
+8ff38 4 200 236
+8ff3c 4 199 236
+8ff40 8 200 236
+8ff48 8 199 236
+8ff50 8 62 230
+8ff58 14 480 201
+8ff6c 18 186 226
+8ff84 14 199 236
+8ff98 18 200 236
+8ffb0 14 176 226
+8ffc4 10 177 226
+8ffd4 18 480 201
+8ffec 4 62 230
+8fff0 4 200 236
+8fff4 4 200 236
+8fff8 4 200 236
+8fffc 4 199 236
+90000 8 200 236
+90008 8 199 236
+90010 8 62 230
+90018 8 480 201
+90020 10 285 201
+90030 8 178 226
+90038 14 285 201
+9004c 14 199 236
+90060 18 200 236
+FUNC 90078 21c 0 std::priv::__put_integer<std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+90078 18 192 226
+90090 4 145 212
+90094 10 192 226
+900a4 8 145 212
+900ac 8 192 226
+900b4 c 192 226
+900c0 4 145 212
+900c4 10 351 219
+900d4 8 206 207
+900dc 4 351 219
+900e0 20 206 207
+90100 8 209 207
+90108 4 206 207
+9010c 18 209 207
+90124 4 351 219
+90128 4 203 226
+9012c 4 351 219
+90130 4 204 226
+90134 8 351 219
+9013c c 87 228
+90148 4 351 219
+9014c 8 87 228
+90154 10 209 226
+90164 4 218 226
+90168 4 211 226
+9016c 14 86 228
+90180 20 220 226
+901a0 4 225 226
+901a4 4 138 212
+901a8 4 225 226
+901ac 4 139 212
+901b0 1c 225 226
+901cc 4 64 239
+901d0 4 225 226
+901d4 c 96 239
+901e0 8 97 239
+901e8 8 161 202
+901f0 4 161 202
+901f4 8 225 226
+901fc 30 226 226
+9022c c 212 226
+90238 c 215 226
+90244 8 135 223
+9024c 8 213 226
+90254 8 64 239
+9025c c 96 239
+90268 14 97 239
+9027c 18 225 226
+FUNC 90294 a4 0 std::priv::__do_put_integer<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long unsigned int>
+90294 14 372 226
+902a8 10 372 226
+902b8 4 307 226
+902bc 4 309 226
+902c0 4 308 226
+902c4 4 309 226
+902c8 4 308 226
+902cc 4 309 226
+902d0 4 310 226
+902d4 4 308 226
+902d8 4 309 226
+902dc 14 381 226
+902f0 38 382 226
+90328 10 310 226
+FUNC 90338 1e8 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+90338 c 475 226
+90344 4 145 212
+90348 8 475 226
+90350 4 145 212
+90354 4 475 226
+90358 4 145 212
+9035c c 475 226
+90368 4 475 226
+9036c 4 145 212
+90370 18 351 219
+90388 c 477 226
+90394 4 124 212
+90398 4 139 212
+9039c 4 123 212
+903a0 4 139 212
+903a4 8 124 212
+903ac 4 484 226
+903b0 c 206 207
+903bc 4 506 226
+903c0 c 206 207
+903cc 14 506 226
+903e0 4 112 212
+903e4 18 514 226
+903fc 4 488 226
+90400 8 488 226
+90408 18 206 207
+90420 4 62 230
+90424 10 200 236
+90434 c 199 236
+90440 4 200 236
+90444 8 62 230
+9044c 18 206 207
+90464 10 200 236
+90474 10 199 236
+90484 8 62 230
+9048c c 139 212
+90498 c 488 226
+904a4 1c 206 207
+904c0 18 199 236
+904d8 c 200 236
+904e4 1c 199 236
+90500 10 200 236
+90510 10 477 226
+FUNC 90520 28 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+90520 4 438 226
+90524 8 440 226
+9052c 4 438 226
+90530 c 440 226
+9053c c 440 226
+FUNC 90548 a8 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+90548 18 465 226
+90560 10 465 226
+90570 4 307 226
+90574 4 309 226
+90578 4 308 226
+9057c 4 309 226
+90580 4 308 226
+90584 4 309 226
+90588 4 310 226
+9058c 4 309 226
+90590 4 308 226
+90594 18 381 226
+905ac 34 467 226
+905e0 10 310 226
+FUNC 905f0 6c 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+905f0 14 459 226
+90604 8 380 226
+9060c 8 459 226
+90614 c 380 226
+90620 8 459 226
+90628 8 380 226
+90630 1c 381 226
+9064c 10 461 226
+FUNC 9065c 6c 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put
+9065c 14 432 226
+90670 8 380 226
+90678 8 432 226
+90680 c 380 226
+9068c 8 432 226
+90694 8 380 226
+9069c 1c 381 226
+906b8 10 434 226
+FUNC 906c8 550 0 std::priv::__copy_sign<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>
+906c8 18 297 224
+906e0 18 297 224
+906f8 4 75 215
+906fc 8 90 215
+90704 4 77 215
+90708 c 90 215
+90714 8 299 224
+9071c 4 90 215
+90720 8 301 224
+90728 8 303 224
+90730 4 308 224
+90734 4 309 224
+90738 4 308 224
+9073c 4 309 224
+90740 4 308 224
+90744 18 309 224
+9075c 34 235 236
+90790 c 95 215
+9079c 1c 235 236
+907b8 c 95 215
+907c4 8 301 224
+907cc 10 229 236
+907dc 8 228 236
+907e4 4 165 239
+907e8 8 69 215
+907f0 4 64 239
+907f4 8 74 239
+907fc 10 74 239
+9080c c 535 238
+90818 4 101 206
+9081c c 232 247
+90828 4 539 238
+9082c 8 229 236
+90834 8 539 238
+9083c 8 229 236
+90844 8 228 236
+9084c c 69 215
+90858 24 234 236
+9087c 8 95 215
+90884 20 234 236
+908a4 28 235 236
+908cc 20 234 236
+908ec c 95 215
+908f8 8 235 236
+90900 8 95 215
+90908 20 235 236
+90928 4 228 236
+9092c 18 229 236
+90944 4 228 236
+90948 18 229 236
+90960 4 400 238
+90964 14 304 238
+90978 4 306 238
+9097c 10 307 238
+9098c 4 64 213
+90990 4 67 213
+90994 4 64 213
+90998 58 86 244
+909f0 20 146 206
+90a10 4 86 244
+90a14 4 146 206
+90a18 10 86 244
+90a28 4 146 206
+90a2c c 86 244
+90a38 4 146 206
+90a3c c 86 244
+90a48 4 146 206
+90a4c c 86 244
+90a58 4 146 206
+90a5c c 86 244
+90a68 4 146 206
+90a6c c 86 244
+90a78 4 146 206
+90a7c c 86 244
+90a88 4 146 206
+90a8c c 86 244
+90a98 4 146 206
+90a9c c 86 244
+90aa8 4 146 206
+90aac c 86 244
+90ab8 4 146 206
+90abc c 86 244
+90ac8 4 146 206
+90acc c 86 244
+90ad8 4 146 206
+90adc c 86 244
+90ae8 4 146 206
+90aec 8 86 244
+90af4 8 146 206
+90afc 4 101 206
+90b00 4 64 239
+90b04 c 96 239
+90b10 8 97 239
+90b18 8 319 202
+90b20 c 97 239
+90b2c 8 161 202
+90b34 c 161 202
+90b40 4 175 237
+90b44 4 164 239
+90b48 4 160 239
+90b4c 10 165 239
+90b5c 14 95 215
+90b70 2c 235 236
+90b9c 14 74 239
+90bb0 4 308 238
+90bb4 2c 134 223
+90be0 8 86 244
+90be8 8 146 206
+90bf0 c 86 244
+90bfc 10 135 223
+90c0c 8 86 244
+90c14 4 305 238
+FUNC 90c18 4d8 0 std::priv::__copy_digits<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>
+90c18 2c 314 224
+90c44 10 314 224
+90c54 4 316 224
+90c58 8 95 215
+90c60 4 320 224
+90c64 4 75 215
+90c68 8 90 215
+90c70 4 77 215
+90c74 4 90 215
+90c78 10 318 224
+90c88 c 90 215
+90c94 8 320 224
+90c9c 4 319 224
+90ca0 8 320 224
+90ca8 4 320 224
+90cac 4 64 239
+90cb0 4 321 224
+90cb4 8 74 239
+90cbc 10 74 239
+90ccc c 535 238
+90cd8 8 101 206
+90ce0 4 232 247
+90ce4 4 68 215
+90ce8 4 539 238
+90cec 4 229 236
+90cf0 4 539 238
+90cf4 4 229 236
+90cf8 4 539 238
+90cfc 8 229 236
+90d04 8 228 236
+90d0c 4 69 215
+90d10 8 322 224
+90d18 14 235 236
+90d2c c 95 215
+90d38 4 235 236
+90d3c c 318 224
+90d48 20 328 224
+90d68 1c 235 236
+90d84 4 93 215
+90d88 4 94 215
+90d8c 8 95 215
+90d94 4 92 215
+90d98 1c 235 236
+90db4 4 93 215
+90db8 4 94 215
+90dbc 8 95 215
+90dc4 4 228 236
+90dc8 14 229 236
+90ddc 4 400 238
+90de0 14 304 238
+90df4 4 306 238
+90df8 10 307 238
+90e08 4 64 213
+90e0c 4 67 213
+90e10 4 64 213
+90e14 58 86 244
+90e6c 20 146 206
+90e8c 4 86 244
+90e90 4 146 206
+90e94 10 86 244
+90ea4 4 146 206
+90ea8 c 86 244
+90eb4 4 146 206
+90eb8 c 86 244
+90ec4 4 146 206
+90ec8 c 86 244
+90ed4 4 146 206
+90ed8 c 86 244
+90ee4 4 146 206
+90ee8 c 86 244
+90ef4 4 146 206
+90ef8 c 86 244
+90f04 4 146 206
+90f08 c 86 244
+90f14 4 146 206
+90f18 c 86 244
+90f24 4 146 206
+90f28 c 86 244
+90f34 4 146 206
+90f38 c 86 244
+90f44 4 146 206
+90f48 c 86 244
+90f54 4 146 206
+90f58 c 86 244
+90f64 4 146 206
+90f68 8 86 244
+90f70 8 146 206
+90f78 4 101 206
+90f7c 4 64 239
+90f80 c 96 239
+90f8c 8 97 239
+90f94 8 319 202
+90f9c c 97 239
+90fa8 c 161 202
+90fb4 10 161 202
+90fc4 4 175 237
+90fc8 4 164 239
+90fcc 4 160 239
+90fd0 8 165 239
+90fd8 14 74 239
+90fec 14 234 236
+91000 4 95 215
+91004 8 234 236
+9100c 4 308 238
+91010 20 134 223
+91030 10 86 244
+91040 38 234 236
+91078 8 86 244
+91080 8 146 206
+91088 c 86 244
+91094 14 135 223
+910a8 4 235 236
+910ac 4 95 215
+910b0 3c 235 236
+910ec 4 305 238
+FUNC 910f0 2bc 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::push_back
+910f0 8 534 238
+910f8 4 64 239
+910fc c 534 238
+91108 4 74 239
+9110c 8 534 238
+91114 4 74 239
+91118 10 74 239
+91128 c 535 238
+91134 8 101 206
+9113c 4 232 247
+91140 4 539 238
+91144 4 540 238
+91148 8 539 238
+91150 10 540 238
+91160 4 400 238
+91164 14 304 238
+91178 4 306 238
+9117c 10 307 238
+9118c 4 64 213
+91190 4 67 213
+91194 4 64 213
+91198 58 86 244
+911f0 20 146 206
+91210 4 86 244
+91214 4 146 206
+91218 10 86 244
+91228 4 146 206
+9122c c 86 244
+91238 4 146 206
+9123c c 86 244
+91248 4 146 206
+9124c c 86 244
+91258 4 146 206
+9125c c 86 244
+91268 4 146 206
+9126c c 86 244
+91278 4 146 206
+9127c c 86 244
+91288 4 146 206
+9128c c 86 244
+91298 4 146 206
+9129c c 86 244
+912a8 4 146 206
+912ac c 86 244
+912b8 4 146 206
+912bc c 86 244
+912c8 4 146 206
+912cc c 86 244
+912d8 4 146 206
+912dc c 86 244
+912e8 4 146 206
+912ec 8 86 244
+912f4 8 146 206
+912fc 4 101 206
+91300 4 64 239
+91304 c 96 239
+91310 8 97 239
+91318 8 319 202
+91320 4 97 239
+91324 8 161 202
+9132c 4 161 202
+91330 4 175 237
+91334 4 164 239
+91338 4 160 239
+9133c c 165 239
+91348 14 74 239
+9135c 4 308 238
+91360 1c 134 223
+9137c 8 86 244
+91384 8 146 206
+9138c c 86 244
+91398 8 135 223
+913a0 8 86 244
+913a8 4 305 238
+FUNC 913ac 844 0 std::priv::__read_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>
+913ac 14 368 224
+913c0 4 87 228
+913c4 10 368 224
+913d4 4 87 228
+913d8 4 368 224
+913dc 4 87 228
+913e0 8 368 224
+913e8 c 87 228
+913f4 c 368 224
+91400 8 368 224
+91408 4 87 228
+9140c 10 85 228
+9141c 4 86 228
+91420 4 85 228
+91424 10 86 228
+91434 20 390 224
+91454 18 393 224
+9146c 8 393 224
+91474 8 396 224
+9147c 8 393 224
+91484 4 396 224
+91488 10 393 224
+91498 4 396 224
+9149c 4 338 224
+914a0 4 339 224
+914a4 4 338 224
+914a8 4 336 224
+914ac 20 338 224
+914cc 8 343 224
+914d4 4 75 215
+914d8 8 90 215
+914e0 4 77 215
+914e4 4 90 215
+914e8 10 341 224
+914f8 c 90 215
+91504 c 343 224
+91510 4 342 224
+91514 8 343 224
+9151c 4 344 224
+91520 c 345 224
+9152c 4 68 215
+91530 8 346 224
+91538 4 347 224
+9153c 10 229 236
+9154c c 228 236
+91558 8 69 215
+91560 14 235 236
+91574 c 95 215
+91580 4 235 236
+91584 c 341 224
+91590 c 359 224
+9159c 8 360 224
+915a4 10 361 224
+915b4 10 120 215
+915c4 4 403 224
+915c8 8 90 215
+915d0 10 403 224
+915e0 4 375 224
+915e4 4 410 224
+915e8 4 413 224
+915ec 4 96 239
+915f0 4 64 239
+915f4 c 96 239
+91600 10 97 239
+91610 30 423 224
+91640 1c 235 236
+9165c 4 93 215
+91660 4 95 215
+91664 4 94 215
+91668 8 95 215
+91670 4 64 239
+91674 4 351 224
+91678 8 74 239
+91680 10 74 239
+91690 c 535 238
+9169c 4 101 206
+916a0 4 352 224
+916a4 8 350 224
+916ac 4 352 224
+916b0 4 232 247
+916b4 c 539 238
+916c0 4 68 215
+916c4 10 229 236
+916d4 4 228 236
+916d8 c 229 236
+916e4 8 69 215
+916ec 4 92 215
+916f0 1c 235 236
+9170c 4 94 215
+91710 4 95 215
+91714 4 93 215
+91718 8 95 215
+91720 18 234 236
+91738 4 95 215
+9173c 8 234 236
+91744 4 400 238
+91748 14 304 238
+9175c 4 306 238
+91760 4 307 238
+91764 4 306 238
+91768 c 307 238
+91774 4 64 213
+91778 8 67 213
+91780 8 64 213
+91788 40 234 236
+917c8 14 74 239
+917dc 8 308 238
+917e4 18 134 223
+917fc 58 86 244
+91854 24 146 206
+91878 4 86 244
+9187c 4 146 206
+91880 10 86 244
+91890 4 146 206
+91894 c 86 244
+918a0 4 146 206
+918a4 c 86 244
+918b0 4 146 206
+918b4 c 86 244
+918c0 4 146 206
+918c4 c 86 244
+918d0 4 146 206
+918d4 c 86 244
+918e0 4 146 206
+918e4 c 86 244
+918f0 4 146 206
+918f4 c 86 244
+91900 4 146 206
+91904 c 86 244
+91910 4 146 206
+91914 c 86 244
+91920 4 146 206
+91924 c 86 244
+91930 4 146 206
+91934 c 86 244
+91940 4 146 206
+91944 c 86 244
+91950 4 146 206
+91954 8 86 244
+9195c c 146 206
+91968 4 101 206
+9196c 4 64 239
+91970 c 96 239
+9197c 8 97 239
+91984 8 319 202
+9198c 4 97 239
+91990 8 161 202
+91998 4 161 202
+9199c 4 175 237
+919a0 4 164 239
+919a4 4 175 237
+919a8 4 165 239
+919ac 4 175 237
+919b0 8 160 239
+919b8 c 404 224
+919c4 4 68 215
+919c8 10 229 236
+919d8 8 228 236
+919e0 4 406 224
+919e4 4 69 215
+919e8 18 406 224
+91a00 4 410 224
+91a04 4 413 224
+91a08 10 120 215
+91a18 4 413 224
+91a1c 8 90 215
+91a24 4 66 215
+91a28 c 413 224
+91a34 c 413 224
+91a40 c 414 224
+91a4c 4 68 215
+91a50 10 229 236
+91a60 8 228 236
+91a68 4 416 224
+91a6c 4 69 215
+91a70 18 416 224
+91a88 4 416 224
+91a8c 4 416 224
+91a90 4 416 224
+91a94 c 417 224
+91aa0 14 416 224
+91ab4 18 417 224
+91acc 14 403 224
+91ae0 c 235 236
+91aec 8 95 215
+91af4 8 235 236
+91afc 4 86 244
+91b00 10 146 206
+91b10 c 86 244
+91b1c 14 235 236
+91b30 8 135 223
+91b38 1c 400 224
+91b54 14 235 236
+91b68 18 359 224
+91b80 10 86 244
+91b90 4 66 215
+91b94 c 413 224
+91ba0 18 90 215
+91bb8 8 305 238
+91bc0 4 64 239
+91bc4 10 96 239
+91bd4 1c 97 239
+FUNC 91bf0 2a0 0 std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long double, wchar_t>
+91bf0 10 427 224
+91c00 4 145 212
+91c04 14 427 224
+91c18 8 145 212
+91c20 4 427 224
+91c24 8 427 224
+91c2c 4 145 212
+91c30 24 351 219
+91c54 4 108 213
+91c58 4 351 219
+91c5c c 108 213
+91c68 4 41 213
+91c6c 4 108 213
+91c70 14 41 213
+91c84 4 101 206
+91c88 4 41 213
+91c8c 4 613 237
+91c90 14 434 224
+91ca4 4 612 237
+91ca8 4 613 237
+91cac 4 611 237
+91cb0 8 434 224
+91cb8 4 435 224
+91cbc 8 440 224
+91cc4 8 75 215
+91ccc 8 90 215
+91cd4 8 77 215
+91cdc c 90 215
+91ce8 c 442 224
+91cf4 4 64 239
+91cf8 4 444 224
+91cfc c 96 239
+91d08 4 97 239
+91d0c 8 319 202
+91d14 4 97 239
+91d18 8 161 202
+91d20 4 161 202
+91d24 8 444 224
+91d2c 28 445 224
+91d54 10 443 224
+91d64 1c 235 236
+91d80 4 93 215
+91d84 4 95 215
+91d88 4 94 215
+91d8c 8 95 215
+91d94 8 135 223
+91d9c c 436 224
+91da8 8 437 224
+91db0 1c 235 236
+91dcc 4 93 215
+91dd0 4 95 215
+91dd4 4 94 215
+91dd8 8 95 215
+91de0 48 234 236
+91e28 24 235 236
+91e4c 10 444 224
+91e5c 8 64 239
+91e64 c 96 239
+91e70 4 97 239
+91e74 4 70 213
+91e78 4 97 239
+91e7c 4 70 213
+91e80 10 70 213
+FUNC 91e90 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+91e90 8 579 224
+91e98 4 582 224
+91e9c 8 579 224
+91ea4 20 582 224
+FUNC 91ec4 2a0 0 std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, double, wchar_t>
+91ec4 10 427 224
+91ed4 4 145 212
+91ed8 14 427 224
+91eec 8 145 212
+91ef4 4 427 224
+91ef8 8 427 224
+91f00 4 145 212
+91f04 24 351 219
+91f28 4 108 213
+91f2c 4 351 219
+91f30 c 108 213
+91f3c 4 41 213
+91f40 4 108 213
+91f44 14 41 213
+91f58 4 101 206
+91f5c 4 41 213
+91f60 4 613 237
+91f64 14 434 224
+91f78 4 612 237
+91f7c 4 613 237
+91f80 4 611 237
+91f84 8 434 224
+91f8c 4 435 224
+91f90 8 440 224
+91f98 8 75 215
+91fa0 8 90 215
+91fa8 8 77 215
+91fb0 c 90 215
+91fbc c 442 224
+91fc8 4 64 239
+91fcc 4 444 224
+91fd0 c 96 239
+91fdc 4 97 239
+91fe0 8 319 202
+91fe8 4 97 239
+91fec 8 161 202
+91ff4 4 161 202
+91ff8 8 444 224
+92000 28 445 224
+92028 10 443 224
+92038 1c 235 236
+92054 4 93 215
+92058 4 95 215
+9205c 4 94 215
+92060 8 95 215
+92068 8 135 223
+92070 c 436 224
+9207c 8 437 224
+92084 1c 235 236
+920a0 4 93 215
+920a4 4 95 215
+920a8 4 94 215
+920ac 8 95 215
+920b4 48 234 236
+920fc 24 235 236
+92120 10 444 224
+92130 8 64 239
+92138 c 96 239
+92144 4 97 239
+92148 4 70 213
+9214c 4 97 239
+92150 4 70 213
+92154 10 70 213
+FUNC 92164 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+92164 8 571 224
+9216c 4 574 224
+92170 8 571 224
+92178 20 574 224
+FUNC 92198 2a0 0 std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, float, wchar_t>
+92198 10 427 224
+921a8 4 145 212
+921ac 14 427 224
+921c0 8 145 212
+921c8 4 427 224
+921cc 8 427 224
+921d4 4 145 212
+921d8 24 351 219
+921fc 4 108 213
+92200 4 351 219
+92204 c 108 213
+92210 4 41 213
+92214 4 108 213
+92218 14 41 213
+9222c 4 101 206
+92230 4 41 213
+92234 4 613 237
+92238 14 434 224
+9224c 4 612 237
+92250 4 613 237
+92254 4 611 237
+92258 8 434 224
+92260 4 435 224
+92264 8 440 224
+9226c 8 75 215
+92274 8 90 215
+9227c 8 77 215
+92284 c 90 215
+92290 c 442 224
+9229c 4 64 239
+922a0 4 444 224
+922a4 c 96 239
+922b0 4 97 239
+922b4 8 319 202
+922bc 4 97 239
+922c0 8 161 202
+922c8 4 161 202
+922cc 8 444 224
+922d4 28 445 224
+922fc 10 443 224
+9230c 1c 235 236
+92328 4 93 215
+9232c 4 95 215
+92330 4 94 215
+92334 8 95 215
+9233c 8 135 223
+92344 c 436 224
+92350 8 437 224
+92358 1c 235 236
+92374 4 93 215
+92378 4 95 215
+9237c 4 94 215
+92380 8 95 215
+92388 48 234 236
+923d0 24 235 236
+923f4 10 444 224
+92404 8 64 239
+9240c c 96 239
+92418 4 97 239
+9241c 4 70 213
+92420 4 97 239
+92424 4 70 213
+92428 10 70 213
+FUNC 92438 34 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+92438 8 564 224
+92440 4 567 224
+92444 8 564 224
+9244c 20 567 224
+FUNC 9246c 4f4 0 std::priv::__copy_sign<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+9246c 1c 297 224
+92488 20 297 224
+924a8 4 75 215
+924ac c 90 215
+924b8 4 77 215
+924bc c 90 215
+924c8 8 299 224
+924d0 4 90 215
+924d4 8 301 224
+924dc 8 303 224
+924e4 4 308 224
+924e8 4 309 224
+924ec 4 308 224
+924f0 4 309 224
+924f4 4 308 224
+924f8 1c 309 224
+92514 10 235 236
+92524 20 234 236
+92544 18 235 236
+9255c 18 235 236
+92574 8 95 215
+9257c 18 235 236
+92594 4 95 215
+92598 8 301 224
+925a0 10 229 236
+925b0 8 228 236
+925b8 4 165 239
+925bc 8 69 215
+925c4 4 64 239
+925c8 8 74 239
+925d0 10 74 239
+925e0 c 535 238
+925ec 4 101 206
+925f0 c 232 247
+925fc 4 539 238
+92600 8 229 236
+92608 8 539 238
+92610 8 229 236
+92618 8 228 236
+92620 c 69 215
+9262c 24 234 236
+92650 8 95 215
+92658 20 234 236
+92678 c 95 215
+92684 4 235 236
+92688 4 95 215
+9268c 18 235 236
+926a4 4 228 236
+926a8 10 229 236
+926b8 4 228 236
+926bc 10 229 236
+926cc 4 400 238
+926d0 14 304 238
+926e4 4 306 238
+926e8 10 307 238
+926f8 4 64 213
+926fc 4 67 213
+92700 4 64 213
+92704 58 86 244
+9275c 20 146 206
+9277c 4 86 244
+92780 4 146 206
+92784 10 86 244
+92794 4 146 206
+92798 c 86 244
+927a4 4 146 206
+927a8 c 86 244
+927b4 4 146 206
+927b8 c 86 244
+927c4 4 146 206
+927c8 c 86 244
+927d4 4 146 206
+927d8 c 86 244
+927e4 4 146 206
+927e8 c 86 244
+927f4 4 146 206
+927f8 c 86 244
+92804 4 146 206
+92808 c 86 244
+92814 4 146 206
+92818 c 86 244
+92824 4 146 206
+92828 c 86 244
+92834 4 146 206
+92838 c 86 244
+92844 4 146 206
+92848 c 86 244
+92854 4 146 206
+92858 8 86 244
+92860 8 146 206
+92868 4 101 206
+9286c 4 64 239
+92870 c 96 239
+9287c 8 97 239
+92884 8 319 202
+9288c 8 97 239
+92894 8 161 202
+9289c 8 161 202
+928a4 4 175 237
+928a8 4 164 239
+928ac 4 160 239
+928b0 10 165 239
+928c0 c 95 215
+928cc 24 235 236
+928f0 14 74 239
+92904 4 308 238
+92908 24 134 223
+9292c 8 86 244
+92934 8 146 206
+9293c c 86 244
+92948 c 135 223
+92954 8 86 244
+9295c 4 305 238
+FUNC 92960 7b8 0 std::priv::__read_float<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+92960 10 368 224
+92970 4 58 228
+92974 4 368 224
+92978 4 58 228
+9297c 8 368 224
+92984 4 58 228
+92988 8 368 224
+92990 8 58 228
+92998 c 368 224
+929a4 4 58 228
+929a8 c 368 224
+929b4 4 368 224
+929b8 4 58 228
+929bc 14 56 228
+929d0 8 57 228
+929d8 4 56 228
+929dc c 57 228
+929e8 18 393 224
+92a00 8 393 224
+92a08 8 396 224
+92a10 8 393 224
+92a18 4 396 224
+92a1c 10 393 224
+92a2c 8 396 224
+92a34 8 338 224
+92a3c 8 339 224
+92a44 10 338 224
+92a54 4 336 224
+92a58 8 338 224
+92a60 4 75 215
+92a64 8 90 215
+92a6c 4 77 215
+92a70 8 90 215
+92a78 10 341 224
+92a88 c 90 215
+92a94 8 42 224
+92a9c 4 39 224
+92aa0 c 344 224
+92aac 4 64 239
+92ab0 8 74 239
+92ab8 10 74 239
+92ac8 c 535 238
+92ad4 4 101 206
+92ad8 4 352 224
+92adc 8 350 224
+92ae4 4 352 224
+92ae8 4 232 247
+92aec c 539 238
+92af8 4 68 215
+92afc 10 229 236
+92b0c 8 228 236
+92b14 8 69 215
+92b1c 14 235 236
+92b30 4 95 215
+92b34 c 341 224
+92b40 10 359 224
+92b50 8 360 224
+92b58 10 361 224
+92b68 10 120 215
+92b78 4 403 224
+92b7c 8 90 215
+92b84 10 403 224
+92b94 4 375 224
+92b98 4 410 224
+92b9c 4 413 224
+92ba0 4 96 239
+92ba4 4 64 239
+92ba8 c 96 239
+92bb4 10 97 239
+92bc4 30 423 224
+92bf4 14 235 236
+92c08 4 93 215
+92c0c 4 95 215
+92c10 4 94 215
+92c14 8 95 215
+92c1c 18 234 236
+92c34 4 95 215
+92c38 8 234 236
+92c40 4 68 215
+92c44 8 346 224
+92c4c 4 347 224
+92c50 10 229 236
+92c60 4 228 236
+92c64 c 229 236
+92c70 8 69 215
+92c78 4 92 215
+92c7c 14 235 236
+92c90 4 95 215
+92c94 4 93 215
+92c98 4 94 215
+92c9c 8 95 215
+92ca4 4 400 238
+92ca8 14 304 238
+92cbc 4 306 238
+92cc0 4 307 238
+92cc4 4 306 238
+92cc8 c 307 238
+92cd4 4 64 213
+92cd8 4 67 213
+92cdc 8 64 213
+92ce4 40 234 236
+92d24 14 74 239
+92d38 8 308 238
+92d40 18 134 223
+92d58 58 86 244
+92db0 20 146 206
+92dd0 4 86 244
+92dd4 4 146 206
+92dd8 10 86 244
+92de8 4 146 206
+92dec c 86 244
+92df8 4 146 206
+92dfc c 86 244
+92e08 4 146 206
+92e0c c 86 244
+92e18 4 146 206
+92e1c c 86 244
+92e28 4 146 206
+92e2c c 86 244
+92e38 4 146 206
+92e3c c 86 244
+92e48 4 146 206
+92e4c c 86 244
+92e58 4 146 206
+92e5c c 86 244
+92e68 4 146 206
+92e6c c 86 244
+92e78 4 146 206
+92e7c c 86 244
+92e88 4 146 206
+92e8c c 86 244
+92e98 4 146 206
+92e9c c 86 244
+92ea8 4 146 206
+92eac 8 86 244
+92eb4 c 146 206
+92ec0 8 101 206
+92ec8 4 64 239
+92ecc c 96 239
+92ed8 8 97 239
+92ee0 8 70 213
+92ee8 8 70 213
+92ef0 4 175 237
+92ef4 8 164 239
+92efc 4 165 239
+92f00 4 175 237
+92f04 8 160 239
+92f0c c 404 224
+92f18 4 68 215
+92f1c 10 229 236
+92f2c 8 228 236
+92f34 4 406 224
+92f38 4 69 215
+92f3c 14 406 224
+92f50 4 410 224
+92f54 4 413 224
+92f58 10 120 215
+92f68 4 413 224
+92f6c 8 90 215
+92f74 4 66 215
+92f78 8 413 224
+92f80 8 413 224
+92f88 c 414 224
+92f94 4 68 215
+92f98 10 229 236
+92fa8 8 228 236
+92fb0 4 416 224
+92fb4 4 69 215
+92fb8 18 416 224
+92fd0 4 416 224
+92fd4 4 416 224
+92fd8 4 416 224
+92fdc 8 417 224
+92fe4 14 416 224
+92ff8 18 417 224
+93010 14 403 224
+93024 c 235 236
+93030 8 95 215
+93038 8 235 236
+93040 8 86 244
+93048 8 146 206
+93050 c 86 244
+9305c 14 235 236
+93070 18 400 224
+93088 24 235 236
+930ac 10 86 244
+930bc 4 66 215
+930c0 8 413 224
+930c8 1c 90 215
+930e4 4 64 239
+930e8 10 96 239
+930f8 1c 97 239
+93114 4 305 238
+FUNC 93118 298 0 std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, long double, char>
+93118 10 427 224
+93128 4 145 212
+9312c 14 427 224
+93140 8 145 212
+93148 4 427 224
+9314c 8 427 224
+93154 4 145 212
+93158 24 351 219
+9317c 4 108 213
+93180 4 351 219
+93184 c 108 213
+93190 4 41 213
+93194 4 108 213
+93198 14 41 213
+931ac 4 101 206
+931b0 4 41 213
+931b4 4 613 237
+931b8 14 434 224
+931cc 4 612 237
+931d0 4 613 237
+931d4 4 611 237
+931d8 8 434 224
+931e0 4 435 224
+931e4 8 440 224
+931ec 8 75 215
+931f4 8 90 215
+931fc 8 77 215
+93204 c 90 215
+93210 c 442 224
+9321c 4 64 239
+93220 4 444 224
+93224 c 96 239
+93230 4 97 239
+93234 8 319 202
+9323c 4 97 239
+93240 8 161 202
+93248 4 161 202
+9324c 8 444 224
+93254 28 445 224
+9327c 10 443 224
+9328c 14 235 236
+932a0 4 93 215
+932a4 4 95 215
+932a8 4 94 215
+932ac 8 95 215
+932b4 8 135 223
+932bc c 436 224
+932c8 8 437 224
+932d0 14 235 236
+932e4 4 93 215
+932e8 4 95 215
+932ec 4 94 215
+932f0 8 95 215
+932f8 48 234 236
+93340 2c 235 236
+9336c 10 444 224
+9337c 8 64 239
+93384 c 96 239
+93390 4 97 239
+93394 4 70 213
+93398 4 97 239
+9339c 4 70 213
+933a0 10 70 213
+FUNC 933b0 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+933b0 8 579 224
+933b8 4 582 224
+933bc 8 579 224
+933c4 20 582 224
+FUNC 933e4 298 0 std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, double, char>
+933e4 10 427 224
+933f4 4 145 212
+933f8 14 427 224
+9340c 8 145 212
+93414 4 427 224
+93418 8 427 224
+93420 4 145 212
+93424 24 351 219
+93448 4 108 213
+9344c 4 351 219
+93450 c 108 213
+9345c 4 41 213
+93460 4 108 213
+93464 14 41 213
+93478 4 101 206
+9347c 4 41 213
+93480 4 613 237
+93484 14 434 224
+93498 4 612 237
+9349c 4 613 237
+934a0 4 611 237
+934a4 8 434 224
+934ac 4 435 224
+934b0 8 440 224
+934b8 8 75 215
+934c0 8 90 215
+934c8 8 77 215
+934d0 c 90 215
+934dc c 442 224
+934e8 4 64 239
+934ec 4 444 224
+934f0 c 96 239
+934fc 4 97 239
+93500 8 319 202
+93508 4 97 239
+9350c 8 161 202
+93514 4 161 202
+93518 8 444 224
+93520 28 445 224
+93548 10 443 224
+93558 14 235 236
+9356c 4 93 215
+93570 4 95 215
+93574 4 94 215
+93578 8 95 215
+93580 8 135 223
+93588 c 436 224
+93594 8 437 224
+9359c 14 235 236
+935b0 4 93 215
+935b4 4 95 215
+935b8 4 94 215
+935bc 8 95 215
+935c4 48 234 236
+9360c 2c 235 236
+93638 10 444 224
+93648 8 64 239
+93650 c 96 239
+9365c 4 97 239
+93660 4 70 213
+93664 4 97 239
+93668 4 70 213
+9366c 10 70 213
+FUNC 9367c 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+9367c 8 571 224
+93684 4 574 224
+93688 8 571 224
+93690 20 574 224
+FUNC 936b0 298 0 std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, float, char>
+936b0 10 427 224
+936c0 4 145 212
+936c4 14 427 224
+936d8 8 145 212
+936e0 4 427 224
+936e4 8 427 224
+936ec 4 145 212
+936f0 24 351 219
+93714 4 108 213
+93718 4 351 219
+9371c c 108 213
+93728 4 41 213
+9372c 4 108 213
+93730 14 41 213
+93744 4 101 206
+93748 4 41 213
+9374c 4 613 237
+93750 14 434 224
+93764 4 612 237
+93768 4 613 237
+9376c 4 611 237
+93770 8 434 224
+93778 4 435 224
+9377c 8 440 224
+93784 8 75 215
+9378c 8 90 215
+93794 8 77 215
+9379c c 90 215
+937a8 c 442 224
+937b4 4 64 239
+937b8 4 444 224
+937bc c 96 239
+937c8 4 97 239
+937cc 8 319 202
+937d4 4 97 239
+937d8 8 161 202
+937e0 4 161 202
+937e4 8 444 224
+937ec 28 445 224
+93814 10 443 224
+93824 14 235 236
+93838 4 93 215
+9383c 4 95 215
+93840 4 94 215
+93844 8 95 215
+9384c 8 135 223
+93854 c 436 224
+93860 8 437 224
+93868 14 235 236
+9387c 4 93 215
+93880 4 95 215
+93884 4 94 215
+93888 8 95 215
+93890 48 234 236
+938d8 2c 235 236
+93904 10 444 224
+93914 8 64 239
+9391c c 96 239
+93928 4 97 239
+9392c 4 70 213
+93930 4 97 239
+93934 4 70 213
+93938 10 70 213
+FUNC 93948 34 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+93948 8 564 224
+93950 4 567 224
+93954 8 564 224
+9395c 20 567 224
+FUNC 9397c 4c8 0 std::priv::__copy_integer_and_fill<char, std::ostreambuf_iterator<char, std::char_traits<char> > >
+9397c 4 148 226
+93980 4 152 226
+93984 14 148 226
+93998 10 148 226
+939a8 4 152 226
+939ac 4 161 226
+939b0 4 159 226
+939b4 8 163 226
+939bc 10 167 226
+939cc 4 167 226
+939d0 14 167 226
+939e4 c 173 226
+939f0 10 173 226
+93a00 18 480 201
+93a18 4 62 230
+93a1c 4 200 236
+93a20 4 199 236
+93a24 4 200 236
+93a28 4 199 236
+93a2c 8 200 236
+93a34 8 199 236
+93a3c 8 480 201
+93a44 4 182 226
+93a48 4 213 201
+93a4c 4 182 226
+93a50 14 213 201
+93a64 8 199 236
+93a6c 4 215 201
+93a70 8 213 201
+93a78 4 214 201
+93a7c 4 62 230
+93a80 4 200 236
+93a84 4 199 236
+93a88 4 200 236
+93a8c 4 199 236
+93a90 8 200 236
+93a98 4 199 236
+93a9c 4 223 247
+93aa0 c 199 236
+93aac 4 200 236
+93ab0 4 215 201
+93ab4 4 200 236
+93ab8 8 62 230
+93ac0 14 213 201
+93ad4 18 186 226
+93aec 4 199 236
+93af0 4 223 247
+93af4 c 199 236
+93b00 c 200 236
+93b0c c 62 230
+93b18 20 213 201
+93b38 8 199 236
+93b40 4 215 201
+93b44 8 213 201
+93b4c 4 214 201
+93b50 4 62 230
+93b54 4 200 236
+93b58 4 199 236
+93b5c 4 200 236
+93b60 4 199 236
+93b64 8 200 236
+93b6c 4 199 236
+93b70 4 223 247
+93b74 c 199 236
+93b80 8 200 236
+93b88 c 62 230
+93b94 c 169 226
+93ba0 14 480 201
+93bb4 4 62 230
+93bb8 4 200 236
+93bbc 4 199 236
+93bc0 4 200 236
+93bc4 4 199 236
+93bc8 8 200 236
+93bd0 8 199 236
+93bd8 8 480 201
+93be0 8 171 226
+93be8 4 213 201
+93bec 8 170 226
+93bf4 1c 213 201
+93c10 8 199 236
+93c18 4 215 201
+93c1c 8 213 201
+93c24 4 214 201
+93c28 4 62 230
+93c2c 4 200 236
+93c30 4 199 236
+93c34 4 200 236
+93c38 4 199 236
+93c3c 8 200 236
+93c44 4 199 236
+93c48 4 223 247
+93c4c c 199 236
+93c58 8 200 236
+93c60 c 62 230
+93c6c 4 199 236
+93c70 4 223 247
+93c74 c 199 236
+93c80 c 200 236
+93c8c c 62 230
+93c98 20 213 201
+93cb8 8 199 236
+93cc0 4 215 201
+93cc4 8 213 201
+93ccc 4 214 201
+93cd0 4 62 230
+93cd4 4 200 236
+93cd8 4 199 236
+93cdc 4 200 236
+93ce0 4 199 236
+93ce4 8 200 236
+93cec 4 199 236
+93cf0 4 223 247
+93cf4 c 199 236
+93d00 c 200 236
+93d0c c 62 230
+93d18 4 164 226
+93d1c 4 480 201
+93d20 4 164 226
+93d24 c 480 201
+93d30 4 62 230
+93d34 4 200 236
+93d38 4 199 236
+93d3c 4 200 236
+93d40 4 199 236
+93d44 8 200 236
+93d4c 8 199 236
+93d54 c 480 201
+93d60 4 199 236
+93d64 4 223 247
+93d68 c 199 236
+93d74 c 200 236
+93d80 c 62 230
+93d8c 10 176 226
+93d9c 10 177 226
+93dac 14 480 201
+93dc0 4 62 230
+93dc4 4 200 236
+93dc8 4 199 236
+93dcc 4 200 236
+93dd0 4 199 236
+93dd4 8 200 236
+93ddc 8 199 236
+93de4 8 480 201
+93dec 10 285 201
+93dfc 8 178 226
+93e04 14 285 201
+93e18 4 199 236
+93e1c 4 223 247
+93e20 c 199 236
+93e2c c 200 236
+93e38 c 62 230
+FUNC 93e44 1e8 0 std::priv::__put_integer<std::ostreambuf_iterator<char, std::char_traits<char> > >
+93e44 28 232 226
+93e6c 4 145 212
+93e70 4 235 226
+93e74 8 145 212
+93e7c c 232 226
+93e88 c 232 226
+93e94 4 145 212
+93e98 14 351 219
+93eac 4 237 226
+93eb0 4 58 228
+93eb4 4 237 226
+93eb8 14 58 228
+93ecc 10 240 226
+93edc 4 249 226
+93ee0 4 242 226
+93ee4 4 224 201
+93ee8 8 57 228
+93ef0 4 255 226
+93ef4 c 57 228
+93f00 20 256 226
+93f20 4 254 226
+93f24 4 260 226
+93f28 4 138 212
+93f2c 4 260 226
+93f30 4 139 212
+93f34 24 260 226
+93f58 4 64 239
+93f5c 4 260 226
+93f60 c 96 239
+93f6c 8 97 239
+93f74 8 161 202
+93f7c 4 161 202
+93f80 30 261 226
+93fb0 c 243 226
+93fbc 8 246 226
+93fc4 4 224 201
+93fc8 14 224 201
+93fdc 8 135 223
+93fe4 8 244 226
+93fec 8 64 239
+93ff4 c 96 239
+94000 1c 97 239
+9401c 10 237 226
+FUNC 9402c a4 0 std::priv::__do_put_integer<char, std::ostreambuf_iterator<char, std::char_traits<char> >, long unsigned int>
+9402c 14 372 226
+94040 10 372 226
+94050 4 307 226
+94054 4 309 226
+94058 4 308 226
+9405c 4 309 226
+94060 4 308 226
+94064 4 309 226
+94068 4 310 226
+9406c 4 308 226
+94070 4 309 226
+94074 14 381 226
+94088 38 382 226
+940c0 10 310 226
+FUNC 940d0 1fc 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+940d0 c 475 226
+940dc 4 145 212
+940e0 8 475 226
+940e8 4 145 212
+940ec 4 475 226
+940f0 4 145 212
+940f4 c 475 226
+94100 4 475 226
+94104 4 145 212
+94108 18 351 219
+94120 c 477 226
+9412c 4 124 212
+94130 4 139 212
+94134 4 123 212
+94138 4 139 212
+9413c 8 124 212
+94144 4 484 226
+94148 c 101 207
+94154 4 506 226
+94158 c 101 207
+94164 14 506 226
+94178 4 112 212
+9417c 18 514 226
+94194 4 488 226
+94198 8 488 226
+941a0 18 101 207
+941b8 4 62 230
+941bc 10 200 236
+941cc c 199 236
+941d8 18 101 207
+941f0 10 200 236
+94200 10 199 236
+94210 c 139 212
+9421c c 488 226
+94228 1c 101 207
+94244 18 199 236
+9425c 8 200 236
+94264 8 62 230
+9426c 1c 101 207
+94288 4 199 236
+9428c 4 223 247
+94290 14 199 236
+942a4 8 200 236
+942ac 10 62 230
+942bc 10 477 226
+FUNC 942cc 28 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+942cc 4 438 226
+942d0 8 440 226
+942d8 4 438 226
+942dc c 440 226
+942e8 c 440 226
+FUNC 942f4 a8 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+942f4 18 465 226
+9430c 10 465 226
+9431c 4 307 226
+94320 4 309 226
+94324 4 308 226
+94328 4 309 226
+9432c 4 308 226
+94330 4 309 226
+94334 4 310 226
+94338 4 309 226
+9433c 4 308 226
+94340 18 381 226
+94358 34 467 226
+9438c 10 310 226
+FUNC 9439c 70 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+9439c 10 459 226
+943ac 8 380 226
+943b4 4 459 226
+943b8 4 380 226
+943bc 8 459 226
+943c4 4 380 226
+943c8 4 459 226
+943cc 4 380 226
+943d0 4 459 226
+943d4 8 380 226
+943dc 1c 381 226
+943f8 14 461 226
+FUNC 9440c 70 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put
+9440c 10 432 226
+9441c 8 380 226
+94424 4 432 226
+94428 4 380 226
+9442c 8 432 226
+94434 4 380 226
+94438 4 432 226
+9443c 4 380 226
+94440 4 432 226
+94444 8 380 226
+9444c 1c 381 226
+94468 14 434 226
+FUNC 9447c 420 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_append
+9447c 4 196 237
+94480 4 197 237
+94484 10 196 237
+94494 4 196 237
+94498 4 197 237
+9449c 4 64 239
+944a0 8 198 237
+944a8 8 74 239
+944b0 10 74 239
+944c0 8 199 237
+944c8 4 210 237
+944cc 4 211 237
+944d0 8 86 244
+944d8 58 86 244
+94530 24 146 206
+94554 4 86 244
+94558 4 146 206
+9455c 10 86 244
+9456c 4 146 206
+94570 8 86 244
+94578 4 146 206
+9457c 4 101 206
+94580 8 212 237
+94588 4 267 247
+9458c 4 214 237
+94590 18 218 237
+945a8 4 400 238
+945ac 4 304 238
+945b0 4 400 238
+945b4 18 304 238
+945cc 4 306 238
+945d0 10 307 238
+945e0 8 346 202
+945e8 4 347 202
+945ec 8 158 202
+945f4 30 158 202
+94624 58 86 244
+9467c 24 146 206
+946a0 4 86 244
+946a4 4 146 206
+946a8 10 86 244
+946b8 4 146 206
+946bc c 86 244
+946c8 8 146 206
+946d0 58 86 244
+94728 24 146 206
+9474c 4 86 244
+94750 4 146 206
+94754 10 86 244
+94764 4 146 206
+94768 8 86 244
+94770 8 146 206
+94778 4 101 206
+9477c c 96 239
+94788 8 97 239
+94790 8 161 202
+94798 8 161 202
+947a0 4 160 239
+947a4 4 218 237
+947a8 4 165 239
+947ac 4 164 239
+947b0 14 218 237
+947c4 c 347 202
+947d0 1c 134 223
+947ec 4 146 206
+947f0 8 86 244
+947f8 4 101 206
+947fc 8 212 237
+94804 4 267 247
+94808 8 214 237
+94810 20 74 239
+94830 8 86 244
+94838 8 146 206
+94840 14 86 244
+94854 8 146 206
+9485c 14 86 244
+94870 c 135 223
+9487c 4 346 202
+94880 8 356 202
+94888 8 86 244
+94890 c 600 237
+FUNC 9489c 1d0 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_reserve
+9489c 4 170 237
+948a0 4 342 202
+948a4 c 170 237
+948b0 4 342 202
+948b4 4 170 237
+948b8 4 342 202
+948bc 4 346 202
+948c0 8 347 202
+948c8 8 158 202
+948d0 c 158 202
+948dc 10 352 202
+948ec c 86 244
+948f8 58 86 244
+94950 24 146 206
+94974 4 86 244
+94978 4 146 206
+9497c 10 86 244
+9498c 4 146 206
+94990 8 86 244
+94998 8 146 206
+949a0 4 101 206
+949a4 c 96 239
+949b0 8 97 239
+949b8 8 161 202
+949c0 8 161 202
+949c8 4 160 239
+949cc 4 164 239
+949d0 4 165 239
+949d4 10 176 237
+949e4 c 134 223
+949f0 8 86 244
+949f8 8 146 206
+94a00 c 86 244
+94a0c 8 135 223
+94a14 4 160 239
+94a18 4 164 239
+94a1c 4 165 239
+94a20 10 176 237
+94a30 4 346 202
+94a34 8 356 202
+94a3c 8 86 244
+94a44 c 343 202
+94a50 4 343 202
+94a54 18 343 202
+FUNC 94a6c 4c4 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::assign
+94a6c 18 222 237
+94a84 4 400 238
+94a88 8 222 237
+94a90 4 400 238
+94a94 4 222 237
+94a98 4 400 238
+94a9c 8 222 237
+94aa4 8 223 237
+94aac 4 72 239
+94ab0 4 64 239
+94ab4 4 72 239
+94ab8 10 72 239
+94ac8 8 228 237
+94ad0 14 261 247
+94ae4 8 400 238
+94aec 8 181 237
+94af4 20 238 237
+94b14 4 608 237
+94b18 4 120 239
+94b1c 4 608 237
+94b20 4 120 239
+94b24 4 481 202
+94b28 4 247 238
+94b2c 4 608 237
+94b30 c 610 237
+94b3c 4 314 244
+94b40 4 249 244
+94b44 4 314 244
+94b48 30 249 244
+94b78 20 146 206
+94b98 4 249 244
+94b9c 4 146 206
+94ba0 8 249 244
+94ba8 4 146 206
+94bac 8 249 244
+94bb4 4 146 206
+94bb8 4 248 238
+94bbc 4 64 239
+94bc0 10 101 206
+94bd0 28 171 239
+94bf8 8 170 239
+94c00 8 185 239
+94c08 4 92 201
+94c0c 4 91 201
+94c10 4 92 201
+94c14 4 93 201
+94c18 4 92 201
+94c1c 4 91 201
+94c20 4 92 201
+94c24 4 93 201
+94c28 4 92 201
+94c2c 4 91 201
+94c30 4 92 201
+94c34 4 93 201
+94c38 4 64 239
+94c3c c 96 239
+94c48 8 97 239
+94c50 8 161 202
+94c58 8 161 202
+94c60 c 600 237
+94c6c 14 261 247
+94c80 8 225 237
+94c88 8 803 238
+94c90 c 249 247
+94c9c 4 806 238
+94ca0 4 249 247
+94ca4 4 238 237
+94ca8 4 806 238
+94cac 4 238 237
+94cb0 8 806 238
+94cb8 18 238 237
+94cd0 14 91 201
+94ce4 10 92 201
+94cf4 10 93 201
+94d04 4 174 239
+94d08 4 173 239
+94d0c 8 174 239
+94d14 4 175 239
+94d18 4 174 239
+94d1c 8 175 239
+94d24 4 178 239
+94d28 8 179 239
+94d30 4 249 244
+94d34 4 249 244
+94d38 4 249 244
+94d3c 4 146 206
+94d40 8 249 244
+94d48 8 72 239
+94d50 c 342 202
+94d5c 8 347 202
+94d64 4 158 202
+94d68 4 347 202
+94d6c 4 158 202
+94d70 8 158 202
+94d78 4 352 202
+94d7c 4 613 237
+94d80 4 611 237
+94d84 14 613 237
+94d98 10 182 237
+94da8 8 74 239
+94db0 c 74 239
+94dbc 8 184 237
+94dc4 8 186 237
+94dcc 4 249 244
+94dd0 30 249 244
+94e00 20 146 206
+94e20 4 249 244
+94e24 4 146 206
+94e28 8 249 244
+94e30 4 146 206
+94e34 8 249 244
+94e3c 4 146 206
+94e40 4 187 237
+94e44 8 238 237
+94e4c 4 101 206
+94e50 4 187 237
+94e54 4 267 247
+94e58 4 238 237
+94e5c 4 189 237
+94e60 14 238 237
+94e74 8 134 223
+94e7c 14 135 223
+94e90 4 306 238
+94e94 14 307 238
+94ea8 10 185 237
+94eb8 c 189 239
+94ec4 4 187 239
+94ec8 4 188 239
+94ecc 4 189 239
+94ed0 4 193 239
+94ed4 4 192 239
+94ed8 c 193 239
+94ee4 4 194 239
+94ee8 4 195 239
+94eec 8 196 239
+94ef4 c 74 239
+94f00 8 308 238
+94f08 c 343 202
+94f14 4 343 202
+94f18 18 343 202
+FUNC 94f30 7f4 0 std::priv::__get_monetary_value<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::back_insert_iterator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t>
+94f30 20 62 221
+94f50 4 112 215
+94f54 14 62 221
+94f68 18 62 221
+94f80 8 112 215
+94f88 4 66 221
+94f8c 8 90 215
+94f94 1c 184 207
+94fb0 4 66 221
+94fb4 4 67 221
+94fb8 28 118 221
+94fe0 4 70 221
+94fe4 4 70 221
+94fe8 1c 70 221
+95004 4 81 221
+95008 10 95 215
+95018 4 75 215
+9501c 8 90 215
+95024 8 77 215
+9502c c 90 215
+95038 c 73 221
+95044 c 90 215
+95050 18 184 207
+95068 4 74 221
+9506c 4 78 221
+95070 c 90 215
+9507c 8 79 221
+95084 4 68 215
+95088 8 80 221
+95090 10 229 236
+950a0 c 228 236
+950ac 4 69 215
+950b0 4 80 221
+950b4 8 81 221
+950bc 1c 235 236
+950d8 4 93 215
+950dc 4 73 221
+950e0 4 94 215
+950e4 4 95 215
+950e8 14 73 221
+950fc 8 90 221
+95104 c 93 221
+95110 8 94 221
+95118 4 97 221
+9511c 4 96 221
+95120 10 112 215
+95130 4 99 221
+95134 8 90 215
+9513c 10 99 221
+9514c 14 100 221
+95160 4 307 238
+95164 8 267 247
+9516c 4 535 238
+95170 4 267 247
+95174 8 101 206
+9517c 4 100 221
+95180 4 267 247
+95184 4 539 238
+95188 4 100 221
+9518c 4 64 239
+95190 8 74 239
+95198 c 74 239
+951a4 8 535 238
+951ac 14 400 238
+951c0 4 306 238
+951c4 10 307 238
+951d4 10 536 238
+951e4 4 76 221
+951e8 4 75 221
+951ec 4 76 221
+951f0 4 75 221
+951f4 4 76 221
+951f8 8 90 215
+95200 4 64 239
+95204 4 66 215
+95208 8 74 239
+95210 14 74 239
+95224 8 535 238
+9522c 4 267 247
+95230 8 101 206
+95238 4 267 247
+9523c 8 539 238
+95244 4 92 215
+95248 1c 235 236
+95264 4 93 215
+95268 4 94 215
+9526c 8 95 215
+95274 1c 235 236
+95290 4 93 215
+95294 4 94 215
+95298 8 95 215
+952a0 4 92 215
+952a4 1c 235 236
+952c0 4 93 215
+952c4 4 94 215
+952c8 8 95 215
+952d0 4 228 236
+952d4 1c 229 236
+952f0 48 234 236
+95338 4 64 239
+9533c 4 66 215
+95340 8 74 239
+95348 10 74 239
+95358 8 535 238
+95360 14 400 238
+95374 4 306 238
+95378 14 307 238
+9538c 18 536 238
+953a4 20 234 236
+953c4 8 91 221
+953cc 4 68 215
+953d0 10 229 236
+953e0 10 228 236
+953f0 4 69 215
+953f4 4 108 221
+953f8 8 95 215
+95400 4 75 215
+95404 8 90 215
+9540c 8 77 215
+95414 c 90 215
+95420 c 110 221
+9542c 8 90 215
+95434 1c 184 207
+95450 4 110 221
+95454 10 115 221
+95464 4 115 221
+95468 4 117 221
+9546c 1c 235 236
+95488 4 93 215
+9548c 4 94 215
+95490 8 95 215
+95498 8 111 221
+954a0 4 90 215
+954a4 8 111 221
+954ac 4 90 215
+954b0 4 64 239
+954b4 8 74 239
+954bc 14 74 239
+954d0 8 535 238
+954d8 4 267 247
+954dc 8 101 206
+954e4 4 112 221
+954e8 4 267 247
+954ec 8 539 238
+954f4 14 235 236
+95508 4 93 215
+9550c 4 64 239
+95510 8 74 239
+95518 10 74 239
+95528 8 535 238
+95530 14 400 238
+95544 4 306 238
+95548 14 307 238
+9555c 10 536 238
+9556c 1c 235 236
+95588 4 93 215
+9558c 4 94 215
+95590 14 95 215
+955a4 3c 234 236
+955e0 10 74 239
+955f0 8 308 238
+955f8 14 234 236
+9560c 8 235 236
+95614 8 93 215
+9561c 1c 234 236
+95638 18 308 238
+95650 1c 184 207
+9566c 8 66 221
+95674 28 235 236
+9569c 14 90 221
+956b0 8 94 221
+956b8 40 235 236
+956f8 8 70 221
+95700 24 235 236
+FUNC 95724 b48 0 std::priv::__money_do_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >
+95724 48 122 221
+9576c c 122 221
+95778 8 112 215
+95780 4 122 221
+95784 8 112 215
+9578c 4 125 221
+95790 4 126 221
+95794 4 127 221
+95798 8 126 221
+957a0 3c 272 221
+957dc 14 145 212
+957f0 3c 351 219
+9582c 8 143 221
+95834 10 220 222
+95844 4 143 221
+95848 c 217 222
+95854 8 143 221
+9585c 10 217 222
+9586c 18 216 222
+95884 c 120 239
+95890 4 171 216
+95894 4 120 239
+95898 4 149 221
+9589c 8 120 239
+958a4 8 149 221
+958ac 4 154 221
+958b0 4 481 202
+958b4 4 154 221
+958b8 4 101 206
+958bc 4 154 221
+958c0 8 220 221
+958c8 8 214 222
+958d0 24 154 221
+958f4 10 181 222
+95904 4 143 221
+95908 c 178 222
+95914 8 143 221
+9591c 10 178 222
+9592c 1c 177 222
+95948 10 112 215
+95958 4 176 221
+9595c 10 177 221
+9596c 14 179 221
+95980 c 192 221
+9598c 8 153 221
+95994 14 244 221
+959a8 4 400 238
+959ac 8 245 221
+959b4 14 247 221
+959c8 10 248 221
+959d8 4 249 221
+959dc 8 248 221
+959e4 4 249 221
+959e8 c 250 221
+959f4 4 252 221
+959f8 10 112 215
+95a08 4 268 221
+95a0c c 269 221
+95a18 4 271 221
+95a1c 4 96 239
+95a20 4 64 239
+95a24 c 96 239
+95a30 18 97 239
+95a48 4 64 239
+95a4c c 96 239
+95a58 14 97 239
+95a6c 8 64 239
+95a74 c 96 239
+95a80 18 97 239
+95a98 c 271 221
+95aa4 8 167 221
+95aac 14 176 222
+95ac0 18 169 221
+95ad8 1c 170 221
+95af4 8 171 221
+95afc 4 64 239
+95b00 8 172 221
+95b08 4 64 239
+95b0c 8 172 221
+95b14 4 96 239
+95b18 c 172 221
+95b24 8 96 239
+95b2c 18 97 239
+95b44 10 90 215
+95b54 1c 184 207
+95b70 4 156 221
+95b74 4 68 215
+95b78 10 229 236
+95b88 c 228 236
+95b94 4 69 215
+95b98 4 95 215
+95b9c 4 75 215
+95ba0 8 90 215
+95ba8 8 77 215
+95bb0 c 90 215
+95bbc c 162 221
+95bc8 c 90 215
+95bd4 18 184 207
+95bec 4 162 221
+95bf0 4 68 215
+95bf4 10 229 236
+95c04 c 228 236
+95c10 8 69 215
+95c18 1c 235 236
+95c34 4 93 215
+95c38 4 94 215
+95c3c 8 95 215
+95c44 8 215 221
+95c4c 10 173 222
+95c5c 4 179 222
+95c60 4 173 222
+95c64 c 179 222
+95c70 4 175 222
+95c74 4 179 222
+95c78 10 175 222
+95c88 c 220 221
+95c94 10 225 221
+95ca4 8 225 221
+95cac 10 174 222
+95cbc 4 213 222
+95cc0 28 227 221
+95ce8 4 232 221
+95cec 4 227 221
+95cf0 8 232 221
+95cf8 c 233 221
+95d04 4 234 221
+95d08 8 64 239
+95d10 c 96 239
+95d1c 18 97 239
+95d34 10 95 215
+95d44 4 92 215
+95d48 1c 235 236
+95d64 4 93 215
+95d68 4 94 215
+95d6c 8 95 215
+95d74 4 228 236
+95d78 c 229 236
+95d84 8 69 215
+95d8c 1c 235 236
+95da8 4 93 215
+95dac 4 94 215
+95db0 8 95 215
+95db8 54 234 236
+95e0c 44 235 236
+95e50 4 400 238
+95e54 8 256 221
+95e5c 14 258 221
+95e70 10 259 221
+95e80 4 260 221
+95e84 8 259 221
+95e8c 4 260 221
+95e90 c 261 221
+95e9c 4 263 221
+95ea0 18 206 207
+95eb8 c 359 238
+95ec4 18 517 238
+95edc 8 263 221
+95ee4 10 212 222
+95ef4 4 218 222
+95ef8 4 212 222
+95efc c 218 222
+95f08 4 214 222
+95f0c 4 218 222
+95f10 14 214 222
+95f24 1c 215 222
+95f40 c 187 221
+95f4c 8 90 215
+95f54 4 66 215
+95f58 14 197 221
+95f6c c 201 221
+95f78 8 90 215
+95f80 c 203 221
+95f8c 4 68 215
+95f90 10 229 236
+95fa0 8 228 236
+95fa8 8 69 215
+95fb0 1c 213 222
+95fcc 14 69 215
+95fe0 c 243 237
+95fec 4 400 238
+95ff0 4 249 247
+95ff4 8 400 238
+95ffc 8 244 237
+96004 8 249 247
+9600c 10 246 237
+9601c 8 803 238
+96024 c 249 247
+96030 4 806 238
+96034 4 249 247
+96038 10 806 238
+96048 4 68 215
+9604c 10 229 236
+9605c 4 228 236
+96060 4 69 215
+96064 18 228 236
+9607c 4 249 247
+96080 4 400 238
+96084 4 250 237
+96088 c 400 238
+96094 14 250 237
+960a8 c 188 221
+960b4 8 90 215
+960bc 18 190 221
+960d4 20 69 215
+960f4 8 225 221
+960fc 8 157 221
+96104 c 158 221
+96110 8 69 215
+96118 8 235 221
+96120 4 96 239
+96124 4 64 239
+96128 4 236 221
+9612c c 96 239
+96138 2c 97 239
+96164 4 64 239
+96168 10 96 239
+96178 18 97 239
+96190 4 96 239
+96194 4 64 239
+96198 c 96 239
+961a4 18 97 239
+961bc 4 64 239
+961c0 c 96 239
+961cc 14 97 239
+961e0 8 64 239
+961e8 c 96 239
+961f4 18 97 239
+9620c 24 271 221
+96230 4 64 239
+96234 10 96 239
+96244 28 97 239
+FUNC 9626c 54 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+9626c 4 304 221
+96270 14 308 221
+96284 8 304 221
+9628c 4 308 221
+96290 4 307 221
+96294 4 307 221
+96298 4 308 221
+9629c 4 307 221
+962a0 10 308 221
+962b0 10 309 221
+FUNC 962c0 154 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get
+962c0 4 279 221
+962c4 4 284 221
+962c8 4 283 221
+962cc 8 279 221
+962d4 4 283 221
+962d8 4 279 221
+962dc 4 120 239
+962e0 4 279 221
+962e4 4 283 221
+962e8 4 284 221
+962ec 4 279 221
+962f0 4 284 221
+962f4 4 279 221
+962f8 1c 284 221
+96314 4 120 239
+96318 4 481 202
+9631c 4 101 206
+96320 4 284 221
+96324 4 286 221
+96328 10 284 221
+96338 c 286 221
+96344 4 287 221
+96348 4 289 221
+9634c 8 287 221
+96354 4 289 221
+96358 14 292 221
+9636c 8 294 221
+96374 4 64 239
+96378 c 96 239
+96384 8 97 239
+9638c 8 161 202
+96394 4 161 202
+96398 20 300 221
+963b8 18 295 221
+963d0 c 289 221
+963dc 8 135 223
+963e4 8 64 239
+963ec c 96 239
+963f8 1c 97 239
+FUNC 96414 504 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign
+96414 20 222 237
+96434 4 400 238
+96438 4 222 237
+9643c 4 400 238
+96440 8 223 237
+96448 4 72 239
+9644c 4 64 239
+96450 4 72 239
+96454 c 72 239
+96460 8 228 237
+96468 4 120 239
+9646c 8 124 239
+96474 4 120 239
+96478 4 481 202
+9647c 8 124 239
+96484 4 249 244
+96488 4 249 244
+9648c 4 314 244
+96490 28 249 244
+964b8 20 146 206
+964d8 4 249 244
+964dc 4 146 206
+964e0 8 249 244
+964e8 4 146 206
+964ec 8 249 244
+964f4 4 146 206
+964f8 8 249 244
+96500 4 146 206
+96504 8 249 244
+9650c 4 146 206
+96510 8 249 244
+96518 4 146 206
+9651c 8 249 244
+96524 4 146 206
+96528 8 249 244
+96530 4 146 206
+96534 8 249 244
+9653c 4 146 206
+96540 8 249 244
+96548 4 146 206
+9654c 8 249 244
+96554 4 146 206
+96558 8 249 244
+96560 4 146 206
+96564 8 249 244
+9656c 4 146 206
+96570 8 249 244
+96578 4 146 206
+9657c 8 249 244
+96584 4 146 206
+96588 4 248 238
+9658c 4 64 239
+96590 18 101 206
+965a8 28 171 239
+965d0 8 170 239
+965d8 8 185 239
+965e0 4 92 201
+965e4 4 91 201
+965e8 4 92 201
+965ec 4 93 201
+965f0 4 92 201
+965f4 4 91 201
+965f8 4 92 201
+965fc 4 93 201
+96600 4 92 201
+96604 4 91 201
+96608 4 92 201
+9660c 4 93 201
+96610 4 64 239
+96614 c 96 239
+96620 8 97 239
+96628 8 161 202
+96630 8 161 202
+96638 10 235 247
+96648 4 400 238
+9664c 8 181 237
+96654 18 238 237
+9666c c 235 247
+96678 c 225 237
+96684 8 803 238
+9668c 4 168 247
+96690 4 806 238
+96694 4 168 247
+96698 4 806 238
+9669c 4 238 237
+966a0 8 806 238
+966a8 14 238 237
+966bc 4 92 201
+966c0 4 91 201
+966c4 4 92 201
+966c8 4 91 201
+966cc 8 92 201
+966d4 8 93 201
+966dc c 174 239
+966e8 4 173 239
+966ec c 174 239
+966f8 c 175 239
+96704 4 178 239
+96708 8 91 201
+96710 8 179 239
+96718 8 72 239
+96720 10 182 237
+96730 8 74 239
+96738 8 74 239
+96740 c 184 237
+9674c 8 186 237
+96754 4 249 244
+96758 4 249 244
+9675c 2c 249 244
+96788 20 146 206
+967a8 4 249 244
+967ac 4 146 206
+967b0 8 249 244
+967b8 4 146 206
+967bc 8 249 244
+967c4 4 146 206
+967c8 8 249 244
+967d0 4 146 206
+967d4 8 249 244
+967dc 4 146 206
+967e0 8 249 244
+967e8 4 146 206
+967ec 8 249 244
+967f4 4 146 206
+967f8 8 249 244
+96800 4 146 206
+96804 8 249 244
+9680c 4 146 206
+96810 8 249 244
+96818 4 146 206
+9681c 8 249 244
+96824 4 146 206
+96828 8 249 244
+96830 4 146 206
+96834 8 249 244
+9683c 4 146 206
+96840 8 249 244
+96848 4 146 206
+9684c 8 249 244
+96854 8 146 206
+9685c 8 101 206
+96864 4 232 247
+96868 4 189 237
+9686c 4 238 237
+96870 8 189 237
+96878 14 238 237
+9688c 14 135 223
+968a0 4 306 238
+968a4 10 307 238
+968b4 10 185 237
+968c4 4 189 239
+968c8 4 188 239
+968cc 4 189 239
+968d0 4 187 239
+968d4 8 189 239
+968dc 4 192 239
+968e0 10 193 239
+968f0 4 194 239
+968f4 4 195 239
+968f8 8 196 239
+96900 c 74 239
+9690c 8 308 238
+96914 4 183 237
+FUNC 96918 7cc 0 std::priv::__get_monetary_value<std::istreambuf_iterator<char, std::char_traits<char> >, std::back_insert_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>
+96918 1c 62 221
+96934 4 112 215
+96938 20 62 221
+96958 10 62 221
+96968 8 112 215
+96970 4 66 221
+96974 8 90 215
+9697c c 79 207
+96988 4 66 221
+9698c 4 67 221
+96990 20 118 221
+969b0 4 70 221
+969b4 4 70 221
+969b8 18 70 221
+969d0 4 81 221
+969d4 8 95 215
+969dc 4 75 215
+969e0 8 90 215
+969e8 8 77 215
+969f0 c 90 215
+969fc c 73 221
+96a08 10 90 215
+96a18 8 79 207
+96a20 8 74 221
+96a28 4 78 221
+96a2c 8 90 215
+96a34 8 79 221
+96a3c 4 68 215
+96a40 8 80 221
+96a48 10 229 236
+96a58 8 228 236
+96a60 4 69 215
+96a64 4 80 221
+96a68 8 81 221
+96a70 14 235 236
+96a84 4 93 215
+96a88 4 73 221
+96a8c 4 94 215
+96a90 4 95 215
+96a94 14 73 221
+96aa8 8 90 221
+96ab0 c 93 221
+96abc 8 94 221
+96ac4 4 97 221
+96ac8 4 96 221
+96acc 10 112 215
+96adc 4 99 221
+96ae0 8 90 215
+96ae8 10 99 221
+96af8 14 100 221
+96b0c 8 232 247
+96b14 8 101 206
+96b1c 8 100 221
+96b24 4 232 247
+96b28 c 539 238
+96b34 4 100 221
+96b38 4 64 239
+96b3c 8 74 239
+96b44 8 74 239
+96b4c c 535 238
+96b58 4 400 238
+96b5c 14 304 238
+96b70 4 306 238
+96b74 10 307 238
+96b84 10 536 238
+96b94 4 75 221
+96b98 4 76 221
+96b9c 4 75 221
+96ba0 4 76 221
+96ba4 4 90 215
+96ba8 8 76 221
+96bb0 4 90 215
+96bb4 4 64 239
+96bb8 8 74 239
+96bc0 10 74 239
+96bd0 c 535 238
+96bdc 8 101 206
+96be4 4 232 247
+96be8 14 539 238
+96bfc 4 92 215
+96c00 18 235 236
+96c18 4 93 215
+96c1c 4 94 215
+96c20 8 95 215
+96c28 14 235 236
+96c3c 4 93 215
+96c40 4 94 215
+96c44 8 95 215
+96c4c 4 92 215
+96c50 14 235 236
+96c64 4 93 215
+96c68 4 94 215
+96c6c 8 95 215
+96c74 8 228 236
+96c7c 14 229 236
+96c90 3c 234 236
+96ccc 10 235 236
+96cdc 8 64 239
+96ce4 8 74 239
+96cec 8 74 239
+96cf4 4 535 238
+96cf8 4 74 239
+96cfc 8 535 238
+96d04 4 400 238
+96d08 14 304 238
+96d1c 4 306 238
+96d20 10 307 238
+96d30 18 536 238
+96d48 1c 234 236
+96d64 8 91 221
+96d6c 4 68 215
+96d70 10 229 236
+96d80 c 228 236
+96d8c 4 69 215
+96d90 4 108 221
+96d94 8 95 215
+96d9c 4 75 215
+96da0 8 90 215
+96da8 8 77 215
+96db0 c 90 215
+96dbc c 110 221
+96dc8 8 90 215
+96dd0 c 79 207
+96ddc 4 110 221
+96de0 c 115 221
+96dec 4 117 221
+96df0 4 115 221
+96df4 4 115 221
+96df8 20 118 221
+96e18 14 235 236
+96e2c 4 93 215
+96e30 4 94 215
+96e34 8 95 215
+96e3c 8 111 221
+96e44 4 90 215
+96e48 8 111 221
+96e50 4 90 215
+96e54 4 64 239
+96e58 8 74 239
+96e60 10 74 239
+96e70 c 535 238
+96e7c 4 101 206
+96e80 8 112 221
+96e88 4 232 247
+96e8c 14 539 238
+96ea0 10 235 236
+96eb0 8 64 239
+96eb8 8 74 239
+96ec0 8 74 239
+96ec8 4 535 238
+96ecc 4 74 239
+96ed0 8 535 238
+96ed8 4 400 238
+96edc 14 304 238
+96ef0 4 306 238
+96ef4 10 307 238
+96f04 10 536 238
+96f14 14 235 236
+96f28 4 93 215
+96f2c 4 94 215
+96f30 14 95 215
+96f44 38 234 236
+96f7c c 74 239
+96f88 8 308 238
+96f90 14 234 236
+96fa4 c 235 236
+96fb0 1c 234 236
+96fcc 8 102 221
+96fd4 10 308 238
+96fe4 14 234 236
+96ff8 14 235 236
+9700c c 79 207
+97018 8 66 221
+97020 28 235 236
+97048 14 90 221
+9705c 8 94 221
+97064 4c 235 236
+970b0 8 70 221
+970b8 28 235 236
+970e0 4 305 238
+FUNC 970e4 a44 0 std::priv::__money_do_get<char, std::istreambuf_iterator<char, std::char_traits<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+970e4 34 122 221
+97118 8 122 221
+97120 4 112 215
+97124 14 122 221
+97138 10 112 215
+97148 4 125 221
+9714c 4 126 221
+97150 4 127 221
+97154 8 126 221
+9715c 3c 272 221
+97198 10 145 212
+971a8 3c 351 219
+971e4 8 143 221
+971ec 10 140 222
+971fc 8 137 222
+97204 4 143 221
+97208 14 137 222
+9721c 1c 136 222
+97238 4 149 221
+9723c c 120 239
+97248 c 149 221
+97254 4 481 202
+97258 4 120 239
+9725c 8 171 216
+97264 8 154 221
+9726c 8 101 206
+97274 4 154 221
+97278 8 227 221
+97280 8 134 222
+97288 24 154 221
+972ac 10 100 222
+972bc 8 97 222
+972c4 4 143 221
+972c8 14 97 222
+972dc 20 96 222
+972fc 10 112 215
+9730c 4 176 221
+97310 10 177 221
+97320 10 179 221
+97330 c 192 221
+9733c 8 153 221
+97344 14 244 221
+97358 4 400 238
+9735c 8 245 221
+97364 14 247 221
+97378 10 248 221
+97388 4 249 221
+9738c 8 248 221
+97394 4 249 221
+97398 c 250 221
+973a4 4 252 221
+973a8 10 112 215
+973b8 4 268 221
+973bc c 269 221
+973c8 4 271 221
+973cc 4 96 239
+973d0 4 64 239
+973d4 c 96 239
+973e0 10 97 239
+973f0 4 64 239
+973f4 10 96 239
+97404 10 97 239
+97414 4 96 239
+97418 4 64 239
+9741c c 96 239
+97428 10 97 239
+97438 c 271 221
+97444 8 167 221
+9744c 14 95 222
+97460 18 169 221
+97478 1c 170 221
+97494 8 171 221
+9749c 4 64 239
+974a0 4 172 221
+974a4 4 64 239
+974a8 8 172 221
+974b0 4 96 239
+974b4 10 172 221
+974c4 8 96 239
+974cc 14 97 239
+974e0 8 90 215
+974e8 c 79 207
+974f4 4 156 221
+974f8 4 68 215
+974fc 10 229 236
+9750c c 228 236
+97518 4 69 215
+9751c 4 95 215
+97520 4 75 215
+97524 8 90 215
+9752c 8 77 215
+97534 c 90 215
+97540 c 162 221
+9754c 10 90 215
+9755c 8 79 207
+97564 4 162 221
+97568 4 68 215
+9756c 10 229 236
+9757c c 228 236
+97588 8 69 215
+97590 14 235 236
+975a4 4 93 215
+975a8 4 94 215
+975ac 8 95 215
+975b4 8 215 221
+975bc 10 92 222
+975cc 4 98 222
+975d0 8 92 222
+975d8 c 98 222
+975e4 4 94 222
+975e8 4 98 222
+975ec 10 94 222
+975fc 4 220 221
+97600 4 225 221
+97604 4 220 221
+97608 c 225 221
+97614 8 225 221
+9761c 10 93 222
+9762c 4 133 222
+97630 24 227 221
+97654 4 232 221
+97658 4 227 221
+9765c 4 232 221
+97660 c 233 221
+9766c 4 234 221
+97670 8 64 239
+97678 10 96 239
+97688 10 95 215
+97698 4 228 236
+9769c c 229 236
+976a8 8 69 215
+976b0 4 92 215
+976b4 18 235 236
+976cc 4 93 215
+976d0 4 94 215
+976d4 8 95 215
+976dc 14 235 236
+976f0 4 93 215
+976f4 4 94 215
+976f8 8 95 215
+97700 58 234 236
+97758 4c 235 236
+977a4 4 400 238
+977a8 8 256 221
+977b0 14 258 221
+977c4 10 259 221
+977d4 4 260 221
+977d8 8 259 221
+977e0 4 260 221
+977e4 c 261 221
+977f0 4 263 221
+977f4 18 101 207
+9780c c 359 238
+97818 18 517 238
+97830 8 263 221
+97838 1c 135 222
+97854 c 187 221
+97860 8 90 215
+97868 4 66 215
+9786c 10 197 221
+9787c c 201 221
+97888 8 90 215
+97890 c 203 221
+9789c 4 68 215
+978a0 10 229 236
+978b0 8 228 236
+978b8 8 69 215
+978c0 10 132 222
+978d0 4 138 222
+978d4 8 132 222
+978dc c 138 222
+978e8 4 134 222
+978ec 4 138 222
+978f0 14 134 222
+97904 28 133 222
+9792c 8 69 215
+97934 14 349 238
+97948 4 68 215
+9794c 10 229 236
+9795c 4 228 236
+97960 4 69 215
+97964 1c 228 236
+97980 c 188 221
+9798c 8 90 215
+97994 18 190 221
+979ac 1c 69 215
+979c8 c 225 221
+979d4 8 69 215
+979dc 8 157 221
+979e4 8 158 221
+979ec 8 235 221
+979f4 4 96 239
+979f8 4 64 239
+979fc 4 236 221
+97a00 c 96 239
+97a0c 28 97 239
+97a34 4 96 239
+97a38 4 64 239
+97a3c c 96 239
+97a48 10 97 239
+97a58 1c 271 221
+97a74 4 96 239
+97a78 4 64 239
+97a7c c 96 239
+97a88 10 97 239
+97a98 4 64 239
+97a9c 10 96 239
+97aac 18 97 239
+97ac4 4 64 239
+97ac8 10 96 239
+97ad8 1c 97 239
+97af4 4 64 239
+97af8 10 96 239
+97b08 20 97 239
+FUNC 97b28 54 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+97b28 4 304 221
+97b2c 14 308 221
+97b40 8 304 221
+97b48 4 308 221
+97b4c 4 307 221
+97b50 4 307 221
+97b54 4 308 221
+97b58 4 307 221
+97b5c 10 308 221
+97b6c 10 309 221
+FUNC 97b7c 154 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get
+97b7c 4 279 221
+97b80 4 284 221
+97b84 4 283 221
+97b88 8 279 221
+97b90 4 283 221
+97b94 4 279 221
+97b98 4 120 239
+97b9c 4 279 221
+97ba0 4 283 221
+97ba4 4 284 221
+97ba8 4 279 221
+97bac 4 284 221
+97bb0 4 279 221
+97bb4 1c 284 221
+97bd0 4 120 239
+97bd4 4 481 202
+97bd8 4 101 206
+97bdc 4 284 221
+97be0 4 286 221
+97be4 c 284 221
+97bf0 4 286 221
+97bf4 8 284 221
+97bfc 8 286 221
+97c04 4 287 221
+97c08 4 289 221
+97c0c 4 287 221
+97c10 4 287 221
+97c14 4 289 221
+97c18 14 292 221
+97c2c 8 294 221
+97c34 4 64 239
+97c38 c 96 239
+97c44 8 97 239
+97c4c 8 161 202
+97c54 4 161 202
+97c58 20 300 221
+97c78 18 295 221
+97c90 c 289 221
+97c9c 8 135 223
+97ca4 8 64 239
+97cac c 96 239
+97cb8 18 97 239
+FUNC 97cd0 84 0 std::priv::_String_base<wchar_t, std::allocator<wchar_t> >::_M_allocate_block
+97cd0 4 607 237
+97cd4 8 608 237
+97cdc 8 607 237
+97ce4 4 608 237
+97ce8 4 607 237
+97cec 4 608 237
+97cf0 c 600 237
+97cfc 8 610 237
+97d04 c 623 237
+97d10 8 347 202
+97d18 8 158 202
+97d20 8 158 202
+97d28 4 613 237
+97d2c 4 611 237
+97d30 4 613 237
+97d34 4 612 237
+97d38 8 613 237
+97d40 c 623 237
+97d4c 8 134 223
+FUNC 97d54 9c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string
+97d54 14 639 237
+97d68 4 264 247
+97d6c 4 639 237
+97d70 4 112 239
+97d74 4 481 202
+97d78 4 264 247
+97d7c 4 643 237
+97d80 4 378 238
+97d84 10 379 238
+97d94 4 107 244
+97d98 c 106 244
+97da4 4 107 244
+97da8 4 380 238
+97dac 4 101 206
+97db0 10 644 237
+97dc0 8 64 239
+97dc8 c 96 239
+97dd4 1c 97 239
+FUNC 97df0 4 0 std::_STLP_mutex::~_STLP_mutex
+97df0 4 342 241
+FUNC 97df4 58 0 std::__node_alloc_impl::_M_deallocate
+97df4 4 340 176
+97df8 4 341 176
+97dfc 8 340 176
+97e04 4 347 241
+97e08 8 340 176
+97e10 4 347 241
+97e14 10 341 176
+97e24 8 347 241
+97e2c 4 346 176
+97e30 4 349 241
+97e34 4 346 176
+97e38 4 347 176
+97e3c c 353 176
+97e48 4 349 241
+FUNC 97e4c 1d0 0 std::__node_alloc_impl::_S_chunk_alloc
+97e4c 18 365 176
+97e64 8 405 176
+97e6c 4 365 176
+97e70 c 405 176
+97e7c c 365 176
+97e88 8 386 176
+97e90 8 392 176
+97e98 8 405 176
+97ea0 8 377 176
+97ea8 c 386 176
+97eb4 8 387 176
+97ebc 4 389 176
+97ec0 8 388 176
+97ec8 4 389 176
+97ecc c 248 176
+97ed8 4 392 176
+97edc 8 134 223
+97ee4 4 395 176
+97ee8 4 421 176
+97eec 8 426 176
+97ef4 8 421 176
+97efc 4 367 176
+97f00 4 370 176
+97f04 4 367 176
+97f08 4 370 176
+97f0c 8 371 176
+97f14 8 373 176
+97f1c 1c 429 176
+97f38 4 378 176
+97f3c 4 429 176
+97f40 4 378 176
+97f44 c 429 176
+97f50 4 379 176
+97f54 8 381 176
+97f5c 18 429 176
+97f74 4 398 176
+97f78 8 404 176
+97f80 4 406 176
+97f84 8 407 176
+97f8c 4 404 176
+97f90 10 404 176
+97fa0 8 405 176
+97fa8 4 406 176
+97fac 4 405 176
+97fb0 4 407 176
+97fb4 4 408 176
+97fb8 4 410 176
+97fbc 8 411 176
+97fc4 4 408 176
+97fc8 4 409 176
+97fcc 4 410 176
+97fd0 8 411 176
+97fd8 c 398 176
+97fe4 8 134 223
+97fec 4 417 176
+97ff0 4 398 176
+97ff4 c 367 176
+98000 10 407 176
+98010 c 398 176
+FUNC 9801c 84 0 std::__node_alloc_impl::_S_refill
+9801c 4 434 176
+98020 4 435 176
+98024 4 434 176
+98028 4 435 176
+9802c 4 434 176
+98030 4 434 176
+98034 4 435 176
+98038 4 436 176
+9803c c 438 176
+98048 4 440 176
+9804c 4 447 176
+98050 4 440 176
+98054 4 447 176
+98058 4 440 176
+9805c 4 447 176
+98060 4 448 176
+98064 4 447 176
+98068 c 448 176
+98074 4 450 176
+98078 4 448 176
+9807c 4 451 176
+98080 10 448 176
+98090 4 453 176
+98094 c 455 176
+FUNC 980a0 b4 0 std::__node_alloc_impl::_M_allocate
+980a0 18 318 176
+980b8 4 320 176
+980bc 4 347 241
+980c0 4 248 176
+980c4 4 320 176
+980c8 4 347 241
+980cc 8 248 176
+980d4 4 319 176
+980d8 8 320 176
+980e0 4 347 241
+980e4 8 328 176
+980ec 8 329 176
+980f4 8 349 241
+980fc 18 338 176
+98114 c 331 176
+98120 8 349 241
+98128 1c 338 176
+98144 10 349 241
+FUNC 98154 4 0 std::__node_alloc::_M_allocate
+98154 4 743 176
+FUNC 98158 4 0 std::__node_alloc::_M_deallocate
+98158 4 746 176
+FUNC 9815c 124 0 _Locale_init
+9815c 14 58 177
+98170 8 58 177
+98178 c 63 177
+98184 c 63 177
+98190 c 64 177
+9819c 10 64 177
+981ac 8 65 177
+981b4 c 65 177
+981c0 c 66 177
+981cc c 66 177
+981d8 c 67 177
+981e4 c 67 177
+981f0 c 68 177
+981fc c 68 177
+98208 c 69 177
+98214 c 69 177
+98220 c 70 177
+9822c c 70 177
+98238 c 71 177
+98244 14 71 177
+98258 8 72 177
+98260 4 76 177
+98264 c 77 177
+98270 10 76 177
+FUNC 98280 4 0 _Locale_final
+98280 4 80 177
+FUNC 98284 1d0 0 __cxxabiv1::__cxa_call_unexpected
+98284 18 250 159
+9829c 4 250 159
+982a0 4 252 159
+982a4 4 255 159
+982a8 1c 257 159
+982c4 4 263 159
+982c8 4 270 159
+982cc 4 264 159
+982d0 4 265 159
+982d4 4 266 159
+982d8 4 269 159
+982dc 4 270 159
+982e0 4 126 159
+982e4 4 127 159
+982e8 4 272 159
+982ec 4 260 159
+982f0 4 272 159
+982f4 8 273 159
+982fc 4 253 159
+98300 4 278 159
+98304 4 281 159
+98308 4 282 159
+9830c 10 284 159
+9831c c 285 159
+98328 10 286 159
+98338 8 287 159
+98340 8 290 159
+98348 8 291 159
+98350 4 292 159
+98354 4 293 159
+98358 4 292 159
+9835c 4 294 159
+98360 8 300 159
+98368 14 298 159
+9837c 8 300 159
+98384 20 303 159
+983a4 4 302 159
+983a8 24 321 159
+983cc 4 320 159
+983d0 4 322 159
+983d4 4 323 159
+983d8 c 324 159
+983e4 4 324 159
+983e8 14 324 159
+983fc c 295 159
+98408 c 278 159
+98414 4 310 159
+98418 4 311 159
+9841c 8 310 159
+98424 8 311 159
+9842c 4 312 159
+98430 4 313 159
+98434 8 314 159
+9843c 4 315 159
+98440 8 288 159
+98448 4 278 159
+9844c 8 329 159
+FUNC 98454 8 0 __cxxabiv1::__class_type_info::code
+98454 8 153 162
+FUNC 9845c 10 0 __cxxabiv1::__class_type_info::~__class_type_info
+9845c 10 34 160
+FUNC 9846c 30 0 __cxxabiv1::__class_type_info::~__class_type_info
+9846c 10 34 160
+9847c 10 34 160
+9848c 4 36 160
+98490 8 36 160
+98498 4 36 160
+FUNC 9849c 50 0 __cxxabiv1::__class_type_info::walk_to
+9849c c 63 160
+984a8 c 63 160
+984b4 c 70 160
+984c0 4 72 160
+984c4 4 71 160
+984c8 4 73 160
+984cc 4 72 160
+984d0 4 71 160
+984d4 8 73 160
+984dc 4 74 160
+984e0 c 65 160
+FUNC 984ec 50 0 __cxxabiv1::__class_type_info::self_class_type_match
+984ec c 69 160
+984f8 c 69 160
+98504 c 70 160
+98510 4 72 160
+98514 4 71 160
+98518 4 73 160
+9851c 4 72 160
+98520 4 71 160
+98524 8 73 160
+9852c 4 74 160
+98530 c 79 160
+FUNC 9853c 64 0 __cxxabiv1::__UpcastInfo::__UpcastInfo
+9853c 10 82 160
+9854c 18 84 160
+98564 8 87 160
+9856c 1c 87 160
+98588 4 86 160
+9858c 8 88 160
+98594 c 90 160
+FUNC 985a0 c0 0 __cxxabiv1::__class_type_info::can_catch
+985a0 10 39 160
+985b0 c 39 160
+985bc 8 40 160
+985c4 4 40 160
+985c8 4 45 160
+985cc 20 45 160
+985ec 4 46 160
+985f0 14 50 160
+98604 1c 51 160
+98620 c 53 160
+9862c 14 59 160
+98640 4 58 160
+98644 8 57 160
+9864c 14 59 160
+FUNC 98660 30 0 __cxxabiv1::readULEB128
+98660 4 56 164
+98664 4 58 164
+98668 4 57 164
+9866c 4 60 164
+98670 4 62 164
+98674 10 63 164
+98684 4 61 164
+98688 4 66 164
+9868c 4 68 164
+FUNC 98690 48 0 __cxxabiv1::readSLEB128
+98690 4 70 164
+98694 4 72 164
+98698 4 71 164
+9869c 4 74 164
+986a0 4 76 164
+986a4 10 77 164
+986b4 4 75 164
+986b8 4 80 164
+986bc c 81 164
+986c8 c 82 164
+986d4 4 85 164
+FUNC 986d8 1b8 0 __cxxabiv1::readEncodedPointer
+986d8 c 144 164
+986e4 4 144 164
+986e8 8 146 164
+986f0 8 149 164
+986f8 4 151 164
+986fc 4 149 164
+98700 8 151 164
+98708 4 193 164
+9870c 18 151 164
+98724 4 115 164
+98728 4 187 164
+9872c 4 114 164
+98730 4 113 164
+98734 4 115 164
+98738 4 116 164
+9873c 8 117 164
+98744 4 118 164
+98748 4 114 164
+9874c 4 119 164
+98750 4 115 164
+98754 4 120 164
+98758 4 116 164
+9875c 4 117 164
+98760 4 187 164
+98764 4 118 164
+98768 4 120 164
+9876c 10 191 164
+9877c 4 198 164
+98780 4 208 164
+98784 4 209 164
+98788 4 208 164
+9878c c 210 164
+98798 8 199 164
+987a0 c 205 164
+987ac 8 206 164
+987b4 c 90 164
+987c0 4 179 164
+987c4 4 90 164
+987c8 4 178 164
+987cc 4 180 164
+987d0 c 163 164
+987dc 4 164 164
+987e0 4 101 164
+987e4 4 183 164
+987e8 4 100 164
+987ec 4 99 164
+987f0 4 101 164
+987f4 8 102 164
+987fc 4 183 164
+98800 4 100 164
+98804 4 102 164
+98808 4 182 164
+9880c 4 184 164
+98810 4 101 164
+98814 4 171 164
+98818 4 100 164
+9881c 4 99 164
+98820 4 101 164
+98824 8 102 164
+9882c 4 171 164
+98830 4 100 164
+98834 4 170 164
+98838 4 172 164
+9883c c 90 164
+98848 4 167 164
+9884c 4 90 164
+98850 4 166 164
+98854 4 168 164
+98858 8 151 164
+98860 4 62 164
+98864 10 63 164
+98874 4 61 164
+98878 4 66 164
+9887c 4 161 164
+98880 4 147 164
+98884 c 210 164
+FUNC 98890 184 0 base_to_derived_cast
+98890 18 203 165
+988a8 8 205 165
+988b0 4 203 165
+988b4 4 203 165
+988b8 4 204 165
+988bc 8 205 165
+988c4 4 206 165
+988c8 4 207 165
+988cc c 211 165
+988d8 24 221 165
+988fc 4 243 165
+98900 4 57 165
+98904 8 243 165
+9890c 10 245 165
+9891c 4 113 162
+98920 4 103 165
+98924 4 107 165
+98928 14 251 165
+9893c 10 254 165
+9894c 4 243 165
+98950 8 243 165
+98958 4 263 165
+9895c 14 264 165
+98970 8 210 165
+98978 14 211 165
+9898c 8 213 165
+98994 c 215 165
+989a0 4 263 165
+989a4 8 216 165
+989ac 14 264 165
+989c0 8 214 165
+989c8 4 263 165
+989cc 14 264 165
+989e0 20 261 165
+98a00 10 232 165
+98a10 4 233 165
+FUNC 98a14 158 0 walk_object
+98a14 28 119 165
+98a3c 14 120 165
+98a50 24 123 165
+98a74 8 146 165
+98a7c 4 57 165
+98a80 4 146 165
+98a84 10 148 165
+98a94 4 113 162
+98a98 4 103 165
+98a9c 4 107 165
+98aa0 18 155 165
+98ab8 8 157 165
+98ac0 4 159 165
+98ac4 4 161 165
+98ac8 c 165 165
+98ad4 4 146 165
+98ad8 8 146 165
+98ae0 4 169 165
+98ae4 18 176 165
+98afc 2c 173 165
+98b28 4 127 165
+98b2c 18 176 165
+98b44 8 135 165
+98b4c 8 158 165
+98b54 8 121 165
+98b5c 4 121 165
+98b60 c 121 165
+FUNC 98b6c 124 0 __cxxabiv1::__dynamic_cast
+98b6c 10 293 165
+98b7c 4 77 165
+98b80 8 293 165
+98b88 4 48 165
+98b8c 8 293 165
+98b94 4 293 165
+98b98 4 48 165
+98b9c 4 293 165
+98ba0 4 66 165
+98ba4 c 303 165
+98bb0 4 66 165
+98bb4 c 303 165
+98bc0 4 304 165
+98bc4 8 318 165
+98bcc 10 322 165
+98bdc 4 48 165
+98be0 18 355 165
+98bf8 1c 193 165
+98c14 4 329 165
+98c18 c 330 165
+98c24 8 335 165
+98c2c 4 336 165
+98c30 8 335 165
+98c38 8 348 165
+98c40 14 353 165
+98c54 8 354 165
+98c5c 4 305 165
+98c60 20 355 165
+98c80 10 333 165
+FUNC 98c90 94 0 __cxa_guard_acquire
+98c90 c 60 170
+98c9c 4 61 170
+98ca0 4 60 170
+98ca4 4 61 170
+98ca8 4 60 170
+98cac 8 61 170
+98cb4 4 66 170
+98cb8 4 67 170
+98cbc 8 88 170
+98cc4 4 76 170
+98cc8 4 87 170
+98ccc 4 88 170
+98cd0 4 87 170
+98cd4 8 88 170
+98cdc 4 66 170
+98ce0 4 67 170
+98ce4 8 69 170
+98cec 4 70 170
+98cf0 10 90 170
+98d00 4 79 170
+98d04 4 80 170
+98d08 4 79 170
+98d0c 4 80 170
+98d10 4 81 170
+98d14 10 90 170
+FUNC 98d24 48 0 __cxa_guard_release
+98d24 c 93 170
+98d30 4 94 170
+98d34 4 93 170
+98d38 8 94 170
+98d40 4 96 170
+98d44 8 98 170
+98d4c 4 99 170
+98d50 c 100 170
+98d5c 4 102 170
+98d60 8 103 170
+98d68 4 102 170
+FUNC 98d6c 44 0 __cxa_guard_abort
+98d6c c 106 170
+98d78 4 107 170
+98d7c 4 106 170
+98d80 8 107 170
+98d88 4 109 170
+98d8c 4 110 170
+98d90 4 111 170
+98d94 c 112 170
+98da0 4 114 170
+98da4 8 115 170
+98dac 4 114 170
+FUNC 98db0 8 0 __cxxabiv1::__vmi_class_type_info::code
+98db0 8 198 162
+FUNC 98db8 10 0 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info
+98db8 10 35 175
+FUNC 98dc8 30 0 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info
+98dc8 10 35 175
+98dd8 10 35 175
+98de8 4 37 175
+98dec 8 37 175
+98df4 4 37 175
+FUNC 98df8 270 0 __cxxabiv1::__vmi_class_type_info::walk_to
+98df8 1c 41 175
+98e14 10 41 175
+98e24 c 42 175
+98e30 4 46 175
+98e34 10 46 175
+98e44 4 74 175
+98e48 c 47 175
+98e54 c 48 175
+98e60 4 103 162
+98e64 4 113 162
+98e68 4 49 175
+98e6c 4 107 162
+98e70 4 55 175
+98e74 4 56 175
+98e78 8 59 175
+98e80 8 61 175
+98e88 4 65 175
+98e8c 4 66 175
+98e90 4 65 175
+98e94 1c 74 175
+98eb0 4 74 175
+98eb4 8 83 175
+98ebc 4 86 175
+98ec0 4 88 175
+98ec4 4 92 175
+98ec8 4 92 175
+98ecc 4 92 175
+98ed0 4 111 175
+98ed4 8 114 175
+98edc 4 114 175
+98ee0 8 120 175
+98ee8 10 138 175
+98ef8 4 138 175
+98efc 8 143 175
+98f04 8 143 175
+98f0c 8 146 175
+98f14 8 46 175
+98f1c 8 46 175
+98f24 c 156 175
+98f30 1c 157 175
+98f4c 1c 74 175
+98f68 8 74 175
+98f70 8 120 175
+98f78 8 121 175
+98f80 8 121 175
+98f88 10 126 175
+98f98 4 126 175
+98f9c 8 115 175
+98fa4 4 106 175
+98fa8 1c 157 175
+98fc4 4 92 175
+98fc8 c 93 175
+98fd4 4 94 175
+98fd8 1c 93 175
+98ff4 4 94 175
+98ff8 4 95 175
+98ffc 4 94 175
+99000 8 106 175
+99008 20 111 175
+99028 20 143 175
+99048 20 138 175
+FUNC 99068 8 0 std::priv::stdio_istreambuf::showmanyc
+99068 8 154 196
+FUNC 99070 8 0 std::priv::stdio_ostreambuf::showmanyc
+99070 8 201 196
+FUNC 99078 60 0 std::priv::stdio_streambuf_base::~stdio_streambuf_base
+99078 10 60 196
+99088 4 60 196
+9908c 4 61 196
+99090 8 60 196
+99098 4 61 196
+9909c c 41 235
+990a8 4 62 196
+990ac 4 41 235
+990b0 4 62 196
+990b4 24 41 235
+FUNC 990d8 10 0 std::priv::stdio_istreambuf::~stdio_istreambuf
+990d8 10 151 196
+FUNC 990e8 30 0 std::priv::stdio_istreambuf::~stdio_istreambuf
+990e8 10 151 196
+990f8 10 151 196
+99108 4 151 196
+9910c 8 151 196
+99114 4 151 196
+FUNC 99118 10 0 std::priv::stdio_ostreambuf::~stdio_ostreambuf
+99118 10 198 196
+FUNC 99128 30 0 std::priv::stdio_ostreambuf::~stdio_ostreambuf
+99128 10 198 196
+99138 10 198 196
+99148 4 198 196
+9914c 8 198 196
+99154 4 198 196
+FUNC 99158 24 0 std::priv::stdio_streambuf_base::~stdio_streambuf_base
+99158 c 60 196
+99164 4 60 196
+99168 4 62 196
+9916c 4 62 196
+99170 8 62 196
+99178 4 62 196
+FUNC 9917c 20 0 std::priv::stdio_streambuf_base::sync
+9917c 8 144 196
+99184 c 145 196
+99190 c 146 196
+FUNC 9919c 50 0 std::priv::stdio_streambuf_base::setbuf
+9919c 10 64 196
+991ac 4 64 196
+991b0 4 70 196
+991b4 4 70 196
+991b8 4 70 196
+991bc 4 70 196
+991c0 4 70 196
+991c4 10 73 196
+991d4 4 70 196
+991d8 4 70 196
+991dc 10 73 196
+FUNC 991ec 7c 0 std::priv::stdio_streambuf_base::seekoff
+991ec 4 77 196
+991f0 4 79 196
+991f4 8 77 196
+991fc 14 79 196
+99210 8 109 196
+99218 c 110 196
+99224 8 81 196
+9922c 8 93 196
+99234 4 93 196
+99238 c 95 196
+99244 4 110 196
+99248 8 105 196
+99250 8 110 196
+99258 4 87 196
+9925c 4 88 196
+99260 8 84 196
+FUNC 99268 8 0 std::priv::stdio_istreambuf::uflow
+99268 8 175 196
+FUNC 99270 3c 0 std::priv::stdio_istreambuf::underflow
+99270 c 157 196
+9927c 4 157 196
+99280 8 161 196
+99288 4 163 196
+9928c 4 161 196
+99290 4 163 196
+99294 8 164 196
+9929c 10 169 196
+FUNC 992ac 4c 0 std::priv::stdio_streambuf_base::seekpos
+992ac 8 114 196
+992b4 4 138 196
+992b8 4 114 196
+992bc 4 141 196
+992c0 8 114 196
+992c8 4 138 196
+992cc 8 141 196
+992d4 10 141 196
+992e4 4 142 196
+992e8 4 141 196
+992ec c 142 196
+FUNC 992f8 3c 0 std::priv::stdio_istreambuf::pbackfail
+992f8 4 181 196
+992fc 4 180 196
+99300 4 181 196
+99304 10 182 196
+99314 c 186 196
+99320 4 91 236
+99324 4 182 247
+99328 4 91 236
+9932c 8 193 196
+FUNC 99334 80 0 std::priv::stdio_ostreambuf::overflow
+99334 4 203 196
+99338 4 205 196
+9933c c 203 196
+99348 4 205 196
+9934c 8 227 196
+99354 8 231 196
+9935c 4 227 196
+99360 4 207 196
+99364 4 182 247
+99368 4 207 196
+9936c 8 208 196
+99374 14 231 196
+99388 8 209 196
+99390 14 211 196
+993a4 10 231 196
+FUNC 993b4 60 0 std::priv::stdio_streambuf_base::stdio_streambuf_base
+993b4 4 55 196
+993b8 4 34 235
+993bc 8 55 196
+993c4 4 55 196
+993c8 8 34 235
+993d0 4 55 196
+993d4 20 34 235
+993f4 14 57 196
+99408 c 58 196
+FUNC 99414 10 0 std::codecvt<char, char, mbstate_t>::do_length
+99414 10 34 178
+FUNC 99424 8 0 std::codecvt<char, char, mbstate_t>::do_max_length
+99424 8 37 178
+FUNC 9942c 8 0 std::codecvt<char, char, mbstate_t>::do_always_noconv
+9942c 8 41 178
+FUNC 99434 8 0 std::codecvt<char, char, mbstate_t>::do_encoding
+99434 8 45 178
+FUNC 9943c c 0 std::codecvt<char, char, mbstate_t>::do_unshift
+9943c c 52 178
+FUNC 99448 10 0 std::codecvt<char, char, mbstate_t>::do_in
+99448 10 62 178
+FUNC 99458 10 0 std::codecvt<char, char, mbstate_t>::do_out
+99458 10 72 178
+FUNC 99468 1f4 0 std::codecvt<wchar_t, char, mbstate_t>::do_out
+99468 14 90 178
+9947c 4 91 178
+99480 4 213 201
+99484 4 91 178
+99488 48 213 201
+994d0 64 214 201
+99534 4 213 201
+99538 4 214 201
+9953c 8 213 201
+99544 4 214 201
+99548 4 213 201
+9954c 4 214 201
+99550 4 213 201
+99554 4 214 201
+99558 4 213 201
+9955c 4 214 201
+99560 4 213 201
+99564 4 214 201
+99568 4 213 201
+9956c 4 214 201
+99570 4 213 201
+99574 4 214 201
+99578 4 213 201
+9957c 4 214 201
+99580 4 213 201
+99584 4 214 201
+99588 4 213 201
+9958c 4 214 201
+99590 4 213 201
+99594 4 214 201
+99598 4 213 201
+9959c 4 214 201
+995a0 4 213 201
+995a4 4 214 201
+995a8 4 213 201
+995ac 4 214 201
+995b0 4 213 201
+995b4 4 214 201
+995b8 4 213 201
+995bc 4 214 201
+995c0 4 213 201
+995c4 4 214 201
+995c8 4 213 201
+995cc 4 214 201
+995d0 4 213 201
+995d4 4 214 201
+995d8 4 213 201
+995dc 4 214 201
+995e0 4 213 201
+995e4 4 214 201
+995e8 4 213 201
+995ec 4 214 201
+995f0 4 213 201
+995f4 4 214 201
+995f8 4 213 201
+995fc 4 214 201
+99600 4 213 201
+99604 4 214 201
+99608 4 213 201
+9960c 4 214 201
+99610 4 213 201
+99614 8 214 201
+9961c 4 92 178
+99620 4 93 178
+99624 4 95 178
+99628 4 93 178
+9962c 4 95 178
+99630 4 213 201
+99634 c 214 201
+99640 8 213 201
+99648 4 92 178
+9964c 4 93 178
+99650 4 95 178
+99654 4 93 178
+99658 4 95 178
+FUNC 9965c 1f0 0 std::codecvt<wchar_t, char, mbstate_t>::do_in
+9965c 14 105 178
+99670 8 213 201
+99678 4 107 178
+9967c 44 213 201
+996c0 64 214 201
+99724 4 213 201
+99728 4 214 201
+9972c 8 213 201
+99734 4 214 201
+99738 4 213 201
+9973c 4 214 201
+99740 4 213 201
+99744 4 214 201
+99748 4 213 201
+9974c 4 214 201
+99750 4 213 201
+99754 4 214 201
+99758 4 213 201
+9975c 4 214 201
+99760 4 213 201
+99764 4 214 201
+99768 4 213 201
+9976c 4 214 201
+99770 4 213 201
+99774 4 214 201
+99778 4 213 201
+9977c 4 214 201
+99780 4 213 201
+99784 4 214 201
+99788 4 213 201
+9978c 4 214 201
+99790 4 213 201
+99794 4 214 201
+99798 4 213 201
+9979c 4 214 201
+997a0 4 213 201
+997a4 4 214 201
+997a8 4 213 201
+997ac 4 214 201
+997b0 4 213 201
+997b4 4 214 201
+997b8 4 213 201
+997bc 4 214 201
+997c0 4 213 201
+997c4 4 214 201
+997c8 4 213 201
+997cc 4 214 201
+997d0 4 213 201
+997d4 4 214 201
+997d8 4 213 201
+997dc 4 214 201
+997e0 4 213 201
+997e4 4 214 201
+997e8 4 213 201
+997ec 4 214 201
+997f0 4 213 201
+997f4 4 214 201
+997f8 4 213 201
+997fc 4 214 201
+99800 4 213 201
+99804 8 214 201
+9980c 4 108 178
+99810 4 109 178
+99814 4 111 178
+99818 4 109 178
+9981c 4 111 178
+99820 4 213 201
+99824 c 214 201
+99830 8 213 201
+99838 4 108 178
+9983c 4 109 178
+99840 4 111 178
+99844 4 109 178
+99848 4 111 178
+FUNC 9984c c 0 std::codecvt<wchar_t, char, mbstate_t>::do_unshift
+9984c 4 118 178
+99850 8 120 178
+FUNC 99858 8 0 std::codecvt<wchar_t, char, mbstate_t>::do_encoding
+99858 8 123 178
+FUNC 99860 8 0 std::codecvt<wchar_t, char, mbstate_t>::do_always_noconv
+99860 8 126 178
+FUNC 99868 10 0 std::codecvt<wchar_t, char, mbstate_t>::do_length
+99868 10 132 178
+FUNC 99878 8 0 std::codecvt<wchar_t, char, mbstate_t>::do_max_length
+99878 8 135 178
+FUNC 99880 14 0 std::codecvt<char, char, mbstate_t>::~codecvt
+99880 14 28 178
+FUNC 99894 14 0 std::codecvt<wchar_t, char, mbstate_t>::~codecvt
+99894 14 79 178
+FUNC 998a8 24 0 std::codecvt<char, char, mbstate_t>::~codecvt
+998a8 c 28 178
+998b4 8 28 178
+998bc 4 28 178
+998c0 8 28 178
+998c8 4 28 178
+FUNC 998cc 24 0 std::codecvt<wchar_t, char, mbstate_t>::~codecvt
+998cc c 79 178
+998d8 8 79 178
+998e0 4 79 178
+998e4 8 79 178
+998ec 4 79 178
+FUNC 998f0 24 0 std::collate<char>::do_hash
+998f0 c 37 179
+998fc 8 38 179
+99904 4 37 179
+99908 4 38 179
+9990c 4 37 179
+99910 4 40 179
+FUNC 99914 5c 0 std::collate<wchar_t>::do_compare
+99914 14 80 200
+99928 10 81 200
+99938 4 85 200
+9993c 4 87 200
+99940 4 88 200
+99944 10 80 200
+99954 8 91 200
+9995c 4 50 179
+99960 4 83 200
+99964 4 50 179
+99968 4 86 200
+9996c 4 50 179
+FUNC 99970 24 0 std::collate<wchar_t>::do_hash
+99970 c 57 179
+9997c 8 58 179
+99984 4 57 179
+99988 4 58 179
+9998c 4 57 179
+99990 4 60 179
+FUNC 99994 14 0 std::collate<char>::~collate
+99994 14 26 179
+FUNC 999a8 14 0 std::collate<wchar_t>::~collate
+999a8 14 45 179
+FUNC 999bc 24 0 std::collate<char>::~collate
+999bc c 26 179
+999c8 8 26 179
+999d0 4 26 179
+999d4 8 26 179
+999dc 4 26 179
+FUNC 999e0 24 0 std::collate<wchar_t>::~collate
+999e0 c 45 179
+999ec 8 45 179
+999f4 4 45 179
+999f8 8 45 179
+99a00 4 45 179
+FUNC 99a04 48 0 std::collate<char>::do_compare
+99a04 10 30 179
+99a14 4 625 201
+99a18 8 626 201
+99a20 c 627 201
+99a2c 4 629 201
+99a30 8 629 201
+99a38 8 629 201
+99a40 c 30 179
+FUNC 99a4c f4 0 std::collate<char>::do_transform
+99a4c 10 33 179
+99a5c 4 355 217
+99a60 4 33 179
+99a64 4 608 237
+99a68 4 33 179
+99a6c 4 112 239
+99a70 4 33 179
+99a74 4 481 202
+99a78 4 608 237
+99a7c c 600 237
+99a88 c 610 237
+99a94 8 107 244
+99a9c c 106 244
+99aa8 4 107 244
+99aac 4 325 238
+99ab0 4 101 206
+99ab4 14 33 179
+99ac8 4 347 202
+99acc 8 158 202
+99ad4 8 158 202
+99adc 4 613 237
+99ae0 4 158 202
+99ae4 4 611 237
+99ae8 4 613 237
+99aec 4 612 237
+99af0 8 613 237
+99af8 8 134 223
+99b00 8 64 239
+99b08 c 96 239
+99b14 8 97 239
+99b1c 8 161 202
+99b24 10 161 202
+99b34 c 135 223
+FUNC 99b40 108 0 std::collate<wchar_t>::do_transform
+99b40 4 53 179
+99b44 4 608 237
+99b48 14 53 179
+99b5c 4 355 217
+99b60 4 53 179
+99b64 4 355 217
+99b68 4 112 239
+99b6c 4 608 237
+99b70 4 481 202
+99b74 4 324 238
+99b78 4 608 237
+99b7c c 600 237
+99b88 c 610 237
+99b94 8 107 244
+99b9c c 106 244
+99ba8 4 107 244
+99bac 4 325 238
+99bb0 4 101 206
+99bb4 14 53 179
+99bc8 8 347 202
+99bd0 8 158 202
+99bd8 8 158 202
+99be0 4 613 237
+99be4 4 158 202
+99be8 4 611 237
+99bec 4 613 237
+99bf0 4 612 237
+99bf4 c 613 237
+99c00 8 134 223
+99c08 8 64 239
+99c10 c 96 239
+99c1c 8 97 239
+99c24 8 161 202
+99c2c 10 161 202
+99c3c c 135 223
+FUNC 99c48 14 0 std::ctype<char>::do_toupper
+99c48 14 342 180
+FUNC 99c5c 14 0 std::ctype<char>::do_tolower
+99c5c 14 344 180
+FUNC 99c70 2c 0 std::ctype<char>::do_toupper
+99c70 4 347 180
+99c74 8 346 180
+99c7c 4 347 180
+99c80 10 348 180
+99c90 8 347 180
+99c98 4 350 180
+FUNC 99c9c 2c 0 std::ctype<char>::do_tolower
+99c9c 4 352 180
+99ca0 8 351 180
+99ca8 4 352 180
+99cac 10 353 180
+99cbc 8 352 180
+99cc4 4 355 180
+FUNC 99cc8 8 0 std::ctype<char>::do_widen
+99cc8 8 358 180
+FUNC 99cd0 8 0 std::ctype<char>::do_narrow
+99cd0 8 367 180
+FUNC 99cd8 1c 0 std::ctype<wchar_t>::do_toupper
+99cd8 4 426 180
+99cdc 4 424 180
+99ce0 4 426 180
+99ce4 8 425 180
+99cec 4 426 180
+99cf0 4 427 180
+FUNC 99cf4 34 0 std::ctype<wchar_t>::do_toupper
+99cf4 4 431 180
+99cf8 4 430 180
+99cfc 4 433 180
+99d00 4 431 180
+99d04 4 432 180
+99d08 8 434 180
+99d10 8 434 180
+99d18 4 434 180
+99d1c 8 431 180
+99d24 4 437 180
+FUNC 99d28 1c 0 std::ctype<wchar_t>::do_tolower
+99d28 4 441 180
+99d2c 4 439 180
+99d30 4 441 180
+99d34 8 440 180
+99d3c 4 441 180
+99d40 4 442 180
+FUNC 99d44 34 0 std::ctype<wchar_t>::do_tolower
+99d44 4 446 180
+99d48 4 445 180
+99d4c 4 448 180
+99d50 4 446 180
+99d54 4 447 180
+99d58 8 449 180
+99d60 8 449 180
+99d68 4 449 180
+99d6c 8 446 180
+99d74 4 452 180
+FUNC 99d78 8 0 std::ctype<wchar_t>::do_widen
+99d78 8 456 180
+FUNC 99d80 208 0 std::ctype<wchar_t>::do_widen
+99d80 4 461 180
+99d84 4 460 180
+99d88 5c 461 180
+99de4 68 462 180
+99e4c 8 461 180
+99e54 c 462 180
+99e60 8 461 180
+99e68 c 462 180
+99e74 8 461 180
+99e7c c 462 180
+99e88 8 461 180
+99e90 c 462 180
+99e9c 8 461 180
+99ea4 c 462 180
+99eb0 8 461 180
+99eb8 c 462 180
+99ec4 8 461 180
+99ecc c 462 180
+99ed8 8 461 180
+99ee0 c 462 180
+99eec 8 461 180
+99ef4 c 462 180
+99f00 8 461 180
+99f08 c 462 180
+99f14 8 461 180
+99f1c c 462 180
+99f28 8 461 180
+99f30 c 462 180
+99f3c 8 461 180
+99f44 c 462 180
+99f50 8 461 180
+99f58 8 462 180
+99f60 8 464 180
+99f68 8 461 180
+99f70 c 462 180
+99f7c 8 461 180
+99f84 4 464 180
+FUNC 99f88 14 0 std::ctype<wchar_t>::do_narrow
+99f88 8 467 180
+99f90 4 467 180
+99f94 8 467 180
+FUNC 99f9c 30 0 std::ctype<wchar_t>::do_narrow
+99f9c 4 472 180
+99fa0 8 471 180
+99fa8 4 472 180
+99fac 4 473 180
+99fb0 c 474 180
+99fbc 4 472 180
+99fc0 4 474 180
+99fc4 4 472 180
+99fc8 4 478 180
+FUNC 99fcc 44 0 std::ctype<char>::~ctype
+99fcc 10 322 180
+99fdc 8 322 180
+99fe4 4 323 180
+99fe8 8 322 180
+99ff0 4 323 180
+99ff4 8 324 180
+99ffc 4 324 180
+9a000 4 322 180
+9a004 8 325 180
+9a00c 4 322 180
+FUNC 9a010 14 0 std::ctype<wchar_t>::~ctype
+9a010 14 391 180
+FUNC 9a024 24 0 std::ctype<char>::~ctype
+9a024 c 322 180
+9a030 4 322 180
+9a034 4 325 180
+9a038 4 325 180
+9a03c 8 325 180
+9a044 4 325 180
+FUNC 9a048 24 0 std::ctype<wchar_t>::~ctype
+9a048 c 391 180
+9a054 8 391 180
+9a05c 4 391 180
+9a060 8 391 180
+9a068 4 391 180
+FUNC 9a06c 30 0 std::ctype<char>::do_widen
+9a06c c 362 180
+9a078 4 362 180
+9a07c 8 224 201
+9a084 8 224 201
+9a08c 10 365 180
+FUNC 9a09c 30 0 std::ctype<char>::do_narrow
+9a09c c 370 180
+9a0a8 4 370 180
+9a0ac 8 224 201
+9a0b4 8 224 201
+9a0bc 10 373 180
+FUNC 9a0cc c 0 std::ctype<char>::classic_table
+9a0cc 4 192 180
+9a0d0 8 193 180
+FUNC 9a0d8 40 0 std::ctype<wchar_t>::do_is
+9a0d8 8 394 180
+9a0e0 8 394 180
+9a0e8 4 395 180
+9a0ec 4 396 180
+9a0f0 4 396 180
+9a0f4 c 396 180
+9a100 c 396 180
+9a10c c 397 180
+FUNC 9a118 5c 0 std::ctype<wchar_t>::do_is
+9a118 8 400 180
+9a120 c 400 180
+9a12c 4 402 180
+9a130 14 404 180
+9a144 4 405 180
+9a148 4 406 180
+9a14c 4 404 180
+9a150 8 406 180
+9a158 4 406 180
+9a15c 4 406 180
+9a160 8 404 180
+9a168 c 409 180
+FUNC 9a174 184 0 std::ctype<wchar_t>::do_scan_is
+9a174 8 413 180
+9a17c c 413 180
+9a188 4 414 180
+9a18c 8 162 200
+9a194 4 164 200
+9a198 c 162 200
+9a1a4 10 164 200
+9a1b4 4 168 200
+9a1b8 8 385 180
+9a1c0 c 385 180
+9a1cc 4 171 200
+9a1d0 8 385 180
+9a1d8 c 385 180
+9a1e4 4 174 200
+9a1e8 8 385 180
+9a1f0 10 385 180
+9a200 8 164 200
+9a208 4 165 200
+9a20c 8 385 180
+9a214 10 385 180
+9a224 c 415 180
+9a230 4 166 200
+9a234 c 415 180
+9a240 4 169 200
+9a244 c 415 180
+9a250 4 172 200
+9a254 10 415 180
+9a264 8 164 200
+9a26c 14 178 200
+9a280 4 190 200
+9a284 4 178 200
+9a288 4 186 200
+9a28c 4 190 200
+9a290 8 385 180
+9a298 10 385 180
+9a2a8 4 180 200
+9a2ac 8 385 180
+9a2b4 4 181 200
+9a2b8 4 183 200
+9a2bc 8 385 180
+9a2c4 10 385 180
+9a2d4 8 184 200
+9a2dc 14 385 180
+9a2f0 8 164 200
+FUNC 9a2f8 188 0 std::ctype<wchar_t>::do_scan_not
+9a2f8 8 420 180
+9a300 c 420 180
+9a30c 4 421 180
+9a310 4 162 200
+9a314 4 421 180
+9a318 4 162 200
+9a31c 4 164 200
+9a320 c 162 200
+9a32c c 164 200
+9a338 8 385 180
+9a340 10 385 180
+9a350 4 166 200
+9a354 c 385 180
+9a360 14 385 180
+9a374 8 385 180
+9a37c 14 385 180
+9a390 8 385 180
+9a398 10 385 180
+9a3a8 c 164 200
+9a3b4 8 385 180
+9a3bc 10 385 180
+9a3cc 8 385 180
+9a3d4 4 168 200
+9a3d8 8 422 180
+9a3e0 4 165 200
+9a3e4 c 422 180
+9a3f0 8 164 200
+9a3f8 14 178 200
+9a40c 4 190 200
+9a410 8 178 200
+9a418 c 385 180
+9a424 4 385 180
+9a428 10 190 200
+9a438 c 385 180
+9a444 c 385 180
+9a450 8 181 200
+9a458 c 385 180
+9a464 c 385 180
+9a470 8 184 200
+9a478 8 164 200
+FUNC 9a480 78 0 std::ctype<char>::ctype
+9a480 4 316 180
+9a484 4 86 219
+9a488 10 316 180
+9a498 4 86 219
+9a49c 4 316 180
+9a4a0 8 340 241
+9a4a8 4 457 241
+9a4ac 4 316 180
+9a4b0 4 340 241
+9a4b4 18 319 180
+9a4cc 14 319 180
+9a4e0 10 320 180
+9a4f0 8 319 180
+FUNC 9a4f8 8 0 std::moneypunct<char, true>::do_decimal_point
+9a4f8 8 52 190
+FUNC 9a500 8 0 std::moneypunct<char, true>::do_thousands_sep
+9a500 8 53 190
+FUNC 9a508 8 0 std::moneypunct<char, true>::do_pos_format
+9a508 8 58 190
+FUNC 9a510 8 0 std::moneypunct<char, true>::do_neg_format
+9a510 8 59 190
+FUNC 9a518 8 0 std::moneypunct<char, true>::do_frac_digits
+9a518 8 60 190
+FUNC 9a520 8 0 std::moneypunct<char, false>::do_decimal_point
+9a520 8 66 190
+FUNC 9a528 8 0 std::moneypunct<char, false>::do_thousands_sep
+9a528 8 67 190
+FUNC 9a530 8 0 std::moneypunct<char, false>::do_pos_format
+9a530 8 73 190
+FUNC 9a538 8 0 std::moneypunct<char, false>::do_neg_format
+9a538 8 74 190
+FUNC 9a540 8 0 std::moneypunct<char, false>::do_frac_digits
+9a540 8 75 190
+FUNC 9a548 8 0 std::moneypunct<wchar_t, true>::do_decimal_point
+9a548 8 82 190
+FUNC 9a550 8 0 std::moneypunct<wchar_t, true>::do_thousands_sep
+9a550 8 83 190
+FUNC 9a558 8 0 std::moneypunct<wchar_t, true>::do_frac_digits
+9a558 8 92 190
+FUNC 9a560 8 0 std::moneypunct<wchar_t, true>::do_pos_format
+9a560 8 94 190
+FUNC 9a568 8 0 std::moneypunct<wchar_t, true>::do_neg_format
+9a568 8 96 190
+FUNC 9a570 8 0 std::moneypunct<wchar_t, false>::do_decimal_point
+9a570 8 102 190
+FUNC 9a578 8 0 std::moneypunct<wchar_t, false>::do_thousands_sep
+9a578 8 103 190
+FUNC 9a580 8 0 std::moneypunct<wchar_t, false>::do_frac_digits
+9a580 8 111 190
+FUNC 9a588 8 0 std::moneypunct<wchar_t, false>::do_pos_format
+9a588 8 114 190
+FUNC 9a590 8 0 std::moneypunct<wchar_t, false>::do_neg_format
+9a590 8 116 190
+FUNC 9a598 14 0 std::moneypunct<char, true>::~moneypunct
+9a598 14 50 190
+FUNC 9a5ac 14 0 std::moneypunct<char, false>::~moneypunct
+9a5ac 14 64 190
+FUNC 9a5c0 14 0 std::moneypunct<wchar_t, true>::~moneypunct
+9a5c0 14 80 190
+FUNC 9a5d4 14 0 std::moneypunct<wchar_t, false>::~moneypunct
+9a5d4 14 100 190
+FUNC 9a5e8 24 0 std::moneypunct<char, true>::~moneypunct
+9a5e8 c 50 190
+9a5f4 8 50 190
+9a5fc 4 50 190
+9a600 8 50 190
+9a608 4 50 190
+FUNC 9a60c 24 0 std::moneypunct<char, false>::~moneypunct
+9a60c c 64 190
+9a618 8 64 190
+9a620 4 64 190
+9a624 8 64 190
+9a62c 4 64 190
+FUNC 9a630 24 0 std::moneypunct<wchar_t, true>::~moneypunct
+9a630 c 80 190
+9a63c 8 80 190
+9a644 4 80 190
+9a648 8 80 190
+9a650 4 80 190
+FUNC 9a654 24 0 std::moneypunct<wchar_t, false>::~moneypunct
+9a654 c 100 190
+9a660 8 100 190
+9a668 4 100 190
+9a66c 8 100 190
+9a674 4 100 190
+FUNC 9a678 70 0 std::moneypunct<char, true>::moneypunct
+9a678 4 48 190
+9a67c 4 86 219
+9a680 4 340 241
+9a684 8 48 190
+9a68c 4 48 190
+9a690 4 86 219
+9a694 4 340 241
+9a698 4 457 241
+9a69c 4 340 241
+9a6a0 4 48 190
+9a6a4 4 27 190
+9a6a8 4 28 190
+9a6ac 4 30 190
+9a6b0 4 48 190
+9a6b4 4 27 190
+9a6b8 4 28 190
+9a6bc 4 48 190
+9a6c0 4 29 190
+9a6c4 4 48 190
+9a6c8 4 30 190
+9a6cc 4 32 190
+9a6d0 4 33 190
+9a6d4 4 34 190
+9a6d8 4 35 190
+9a6dc c 49 190
+FUNC 9a6e8 70 0 std::moneypunct<char, false>::moneypunct
+9a6e8 4 62 190
+9a6ec 4 86 219
+9a6f0 4 340 241
+9a6f4 8 62 190
+9a6fc 4 62 190
+9a700 4 86 219
+9a704 4 340 241
+9a708 4 457 241
+9a70c 4 340 241
+9a710 4 62 190
+9a714 4 27 190
+9a718 4 28 190
+9a71c 4 30 190
+9a720 4 62 190
+9a724 4 27 190
+9a728 4 28 190
+9a72c 4 62 190
+9a730 4 29 190
+9a734 4 62 190
+9a738 4 30 190
+9a73c 4 32 190
+9a740 4 33 190
+9a744 4 34 190
+9a748 4 35 190
+9a74c c 63 190
+FUNC 9a758 70 0 std::moneypunct<wchar_t, true>::moneypunct
+9a758 4 78 190
+9a75c 4 86 219
+9a760 4 340 241
+9a764 8 78 190
+9a76c 4 78 190
+9a770 4 86 219
+9a774 4 340 241
+9a778 4 457 241
+9a77c 4 340 241
+9a780 4 78 190
+9a784 4 27 190
+9a788 4 28 190
+9a78c 4 30 190
+9a790 4 78 190
+9a794 4 27 190
+9a798 4 28 190
+9a79c 4 78 190
+9a7a0 4 29 190
+9a7a4 4 78 190
+9a7a8 4 30 190
+9a7ac 4 32 190
+9a7b0 4 33 190
+9a7b4 4 34 190
+9a7b8 4 35 190
+9a7bc c 79 190
+FUNC 9a7c8 70 0 std::moneypunct<wchar_t, false>::moneypunct
+9a7c8 4 98 190
+9a7cc 4 86 219
+9a7d0 4 340 241
+9a7d4 8 98 190
+9a7dc 4 98 190
+9a7e0 4 86 219
+9a7e4 4 340 241
+9a7e8 4 457 241
+9a7ec 4 340 241
+9a7f0 4 98 190
+9a7f4 4 27 190
+9a7f8 4 28 190
+9a7fc 4 30 190
+9a800 4 98 190
+9a804 4 27 190
+9a808 4 28 190
+9a80c 4 98 190
+9a810 4 29 190
+9a814 4 98 190
+9a818 4 30 190
+9a81c 4 32 190
+9a820 4 33 190
+9a824 4 34 190
+9a828 4 35 190
+9a82c c 99 190
+FUNC 9a838 30 0 std::moneypunct<char, true>::do_grouping
+9a838 4 54 190
+9a83c 8 54 190
+9a844 4 54 190
+9a848 8 54 190
+9a850 8 54 190
+9a858 10 54 190
+FUNC 9a868 30 0 std::moneypunct<char, true>::do_curr_symbol
+9a868 4 55 190
+9a86c 8 55 190
+9a874 4 55 190
+9a878 8 55 190
+9a880 8 55 190
+9a888 10 55 190
+FUNC 9a898 30 0 std::moneypunct<char, true>::do_positive_sign
+9a898 4 56 190
+9a89c 8 56 190
+9a8a4 4 56 190
+9a8a8 8 56 190
+9a8b0 8 56 190
+9a8b8 10 56 190
+FUNC 9a8c8 30 0 std::moneypunct<char, true>::do_negative_sign
+9a8c8 4 57 190
+9a8cc 8 57 190
+9a8d4 4 57 190
+9a8d8 8 57 190
+9a8e0 8 57 190
+9a8e8 10 57 190
+FUNC 9a8f8 30 0 std::moneypunct<char, false>::do_grouping
+9a8f8 4 69 190
+9a8fc 8 69 190
+9a904 4 69 190
+9a908 8 69 190
+9a910 8 69 190
+9a918 10 69 190
+FUNC 9a928 30 0 std::moneypunct<char, false>::do_curr_symbol
+9a928 4 70 190
+9a92c 8 70 190
+9a934 4 70 190
+9a938 8 70 190
+9a940 8 70 190
+9a948 10 70 190
+FUNC 9a958 30 0 std::moneypunct<char, false>::do_positive_sign
+9a958 4 71 190
+9a95c 8 71 190
+9a964 4 71 190
+9a968 8 71 190
+9a970 8 71 190
+9a978 10 71 190
+FUNC 9a988 30 0 std::moneypunct<char, false>::do_negative_sign
+9a988 4 72 190
+9a98c 8 72 190
+9a994 4 72 190
+9a998 8 72 190
+9a9a0 8 72 190
+9a9a8 10 72 190
+FUNC 9a9b8 30 0 std::moneypunct<wchar_t, true>::do_grouping
+9a9b8 4 84 190
+9a9bc 8 84 190
+9a9c4 4 84 190
+9a9c8 8 84 190
+9a9d0 8 84 190
+9a9d8 10 84 190
+FUNC 9a9e8 30 0 std::moneypunct<wchar_t, false>::do_grouping
+9a9e8 4 104 190
+9a9ec 8 104 190
+9a9f4 4 104 190
+9a9f8 8 104 190
+9aa00 8 104 190
+9aa08 10 104 190
+FUNC 9aa18 30 0 std::moneypunct<wchar_t, true>::do_curr_symbol
+9aa18 4 87 190
+9aa1c 8 87 190
+9aa24 4 87 190
+9aa28 8 87 190
+9aa30 8 87 190
+9aa38 10 87 190
+FUNC 9aa48 30 0 std::moneypunct<wchar_t, true>::do_positive_sign
+9aa48 4 89 190
+9aa4c 8 89 190
+9aa54 4 89 190
+9aa58 8 89 190
+9aa60 8 89 190
+9aa68 10 89 190
+FUNC 9aa78 30 0 std::moneypunct<wchar_t, true>::do_negative_sign
+9aa78 4 91 190
+9aa7c 8 91 190
+9aa84 4 91 190
+9aa88 8 91 190
+9aa90 8 91 190
+9aa98 10 91 190
+FUNC 9aaa8 30 0 std::moneypunct<wchar_t, false>::do_curr_symbol
+9aaa8 4 106 190
+9aaac 8 106 190
+9aab4 4 106 190
+9aab8 8 106 190
+9aac0 8 106 190
+9aac8 10 106 190
+FUNC 9aad8 30 0 std::moneypunct<wchar_t, false>::do_positive_sign
+9aad8 4 108 190
+9aadc 8 108 190
+9aae4 4 108 190
+9aae8 8 108 190
+9aaf0 8 108 190
+9aaf8 10 108 190
+FUNC 9ab08 30 0 std::moneypunct<wchar_t, false>::do_negative_sign
+9ab08 4 110 190
+9ab0c 8 110 190
+9ab14 4 110 190
+9ab18 8 110 190
+9ab20 8 110 190
+9ab28 10 110 190
+FUNC 9ab38 78 0 std::priv::__valid_grouping
+9ab38 18 40 191
+9ab50 8 42 191
+9ab58 8 44 191
+9ab60 24 45 191
+9ab84 4 48 191
+9ab88 4 47 191
+9ab8c 4 48 191
+9ab90 8 44 191
+9ab98 10 51 191
+9aba8 8 52 191
+FUNC 9abb0 10 0 std::priv::__digit_val_table
+9abb0 8 66 191
+9abb8 8 67 191
+FUNC 9abc0 c 0 std::priv::__narrow_atoms
+9abc0 4 70 191
+9abc4 8 70 191
+FUNC 9abcc 12c 0 std::priv::__get_fdigit
+9abcc 4 78 191
+9abd0 4 79 191
+9abd4 c 118 200
+9abe0 c 121 200
+9abec c 124 200
+9abf8 c 127 200
+9ac04 4 118 200
+9ac08 4 128 200
+9ac0c 8 118 200
+9ac14 c 121 200
+9ac20 c 124 200
+9ac2c c 127 200
+9ac38 4 128 200
+9ac3c 20 131 200
+9ac5c 4 85 191
+9ac60 8 86 191
+9ac68 4 118 200
+9ac6c 4 136 200
+9ac70 4 80 191
+9ac74 4 85 191
+9ac78 4 80 191
+9ac7c 4 81 191
+9ac80 4 82 191
+9ac84 10 81 191
+9ac94 8 86 191
+9ac9c 4 121 200
+9aca0 8 119 200
+9aca8 c 133 200
+9acb4 4 134 200
+9acb8 c 136 200
+9acc4 4 137 200
+9acc8 4 139 200
+9accc 4 85 191
+9acd0 8 139 200
+9acd8 8 86 191
+9ace0 4 124 200
+9ace4 8 122 200
+9acec 4 127 200
+9acf0 8 125 200
+FUNC 9acf8 28 0 std::priv::__get_fdigit_or_sep
+9acf8 4 90 191
+9acfc 4 89 191
+9ad00 8 90 191
+9ad08 8 95 191
+9ad10 8 91 191
+9ad18 8 96 191
+FUNC 9ad20 c 0 std::priv::__hex_char_table_lo
+9ad20 4 119 193
+9ad24 8 119 193
+FUNC 9ad2c c 0 std::priv::__hex_char_table_hi
+9ad2c 4 122 193
+9ad30 8 122 193
+FUNC 9ad38 180 0 std::priv::__write_integer
+9ad38 c 125 193
+9ad44 4 125 193
+9ad48 4 307 226
+9ad4c 4 309 226
+9ad50 4 308 226
+9ad54 4 309 226
+9ad58 4 308 226
+9ad5c 4 309 226
+9ad60 4 308 226
+9ad64 4 309 226
+9ad68 10 224 201
+9ad78 c 224 201
+9ad84 4 224 201
+9ad88 c 130 193
+9ad94 14 314 226
+9ada8 4 277 226
+9adac 4 279 226
+9adb0 c 281 226
+9adbc 4 282 226
+9adc0 4 339 226
+9adc4 14 282 226
+9add8 4 281 226
+9addc 8 282 226
+9ade4 4 281 226
+9ade8 4 284 226
+9adec 4 286 226
+9adf0 10 287 226
+9ae00 4 305 226
+9ae04 4 323 226
+9ae08 4 322 226
+9ae0c 8 323 226
+9ae14 8 322 226
+9ae1c 4 326 226
+9ae20 18 327 226
+9ae38 4 333 226
+9ae3c c 333 226
+9ae48 4 305 226
+9ae4c 4 340 226
+9ae50 4 339 226
+9ae54 8 340 226
+9ae5c 8 339 226
+9ae64 4 342 226
+9ae68 4 343 226
+9ae6c 4 344 226
+9ae70 4 343 226
+9ae74 c 344 226
+9ae80 10 310 226
+9ae90 10 333 226
+9aea0 8 279 226
+9aea8 10 285 226
+FUNC 9aeb8 120 0 std::priv::__insert_grouping
+9aeb8 4 136 193
+9aebc 4 36 193
+9aec0 1c 136 193
+9aedc 10 136 193
+9aeec 4 36 193
+9aef0 4 41 193
+9aef4 14 41 193
+9af08 4 46 193
+9af0c 4 52 193
+9af10 8 46 193
+9af18 c 49 193
+9af24 4 57 193
+9af28 8 400 238
+9af30 8 53 193
+9af38 8 54 193
+9af40 4 57 193
+9af44 4 57 193
+9af48 4 57 193
+9af4c 4 62 193
+9af50 4 256 201
+9af54 c 57 193
+9af60 4 63 193
+9af64 4 255 201
+9af68 8 256 201
+9af70 4 256 201
+9af74 4 256 201
+9af78 4 256 201
+9af7c 8 65 193
+9af84 c 68 193
+9af90 1c 139 193
+9afac c 43 193
+9afb8 4 37 193
+9afbc 1c 139 193
+FUNC 9afd8 7b4 0 std::priv::__insert_grouping
+9afd8 14 143 193
+9afec 8 400 238
+9aff4 4 143 193
+9aff8 4 400 238
+9affc 10 143 193
+9b00c c 80 193
+9b018 8 84 193
+9b020 4 70 213
+9b024 4 86 193
+9b028 4 97 193
+9b02c c 86 193
+9b038 4 92 193
+9b03c 4 83 193
+9b040 4 94 193
+9b044 4 90 193
+9b048 8 102 193
+9b050 8 400 238
+9b058 8 98 193
+9b060 8 99 193
+9b068 8 102 193
+9b070 c 102 193
+9b07c 14 102 193
+9b090 4 108 193
+9b094 8 660 238
+9b09c 8 74 239
+9b0a4 8 74 239
+9b0ac 8 259 237
+9b0b4 4 101 206
+9b0b8 4 261 237
+9b0bc 8 168 247
+9b0c4 c 168 247
+9b0d0 4 232 247
+9b0d4 14 263 237
+9b0e8 1c 145 193
+9b104 8 74 239
+9b10c 8 74 239
+9b114 c 535 238
+9b120 8 101 206
+9b128 4 232 247
+9b12c 10 539 238
+9b13c 8 74 239
+9b144 8 259 237
+9b14c 4 400 238
+9b150 14 304 238
+9b164 4 306 238
+9b168 10 307 238
+9b178 4 64 213
+9b17c 4 67 213
+9b180 4 64 213
+9b184 4 86 244
+9b188 58 86 244
+9b1e0 20 146 206
+9b200 4 86 244
+9b204 4 146 206
+9b208 10 86 244
+9b218 4 146 206
+9b21c c 86 244
+9b228 4 146 206
+9b22c c 86 244
+9b238 4 146 206
+9b23c c 86 244
+9b248 4 146 206
+9b24c c 86 244
+9b258 4 146 206
+9b25c c 86 244
+9b268 4 146 206
+9b26c c 86 244
+9b278 4 146 206
+9b27c c 86 244
+9b288 4 146 206
+9b28c c 86 244
+9b298 4 146 206
+9b29c c 86 244
+9b2a8 4 146 206
+9b2ac c 86 244
+9b2b8 4 146 206
+9b2bc c 86 244
+9b2c8 4 146 206
+9b2cc c 86 244
+9b2d8 4 146 206
+9b2dc 8 86 244
+9b2e4 8 146 206
+9b2ec 8 232 247
+9b2f4 4 271 237
+9b2f8 4 86 244
+9b2fc 60 86 244
+9b35c 20 146 206
+9b37c 4 86 244
+9b380 4 146 206
+9b384 10 86 244
+9b394 4 146 206
+9b398 c 86 244
+9b3a4 4 146 206
+9b3a8 c 86 244
+9b3b4 4 146 206
+9b3b8 c 86 244
+9b3c4 4 146 206
+9b3c8 c 86 244
+9b3d4 4 146 206
+9b3d8 c 86 244
+9b3e4 4 146 206
+9b3e8 c 86 244
+9b3f4 4 146 206
+9b3f8 c 86 244
+9b404 4 146 206
+9b408 c 86 244
+9b414 4 146 206
+9b418 c 86 244
+9b424 4 146 206
+9b428 c 86 244
+9b434 4 146 206
+9b438 c 86 244
+9b444 4 146 206
+9b448 c 86 244
+9b454 4 146 206
+9b458 8 86 244
+9b460 8 146 206
+9b468 4 101 206
+9b46c 4 64 239
+9b470 c 96 239
+9b47c 4 319 202
+9b480 4 97 239
+9b484 4 319 202
+9b488 c 97 239
+9b494 10 161 202
+9b4a4 14 161 202
+9b4b8 4 274 237
+9b4bc 4 164 239
+9b4c0 4 160 239
+9b4c4 c 165 239
+9b4d0 4 308 238
+9b4d4 1c 134 223
+9b4f0 18 135 223
+9b508 4 400 238
+9b50c 14 304 238
+9b520 4 306 238
+9b524 10 307 238
+9b534 4 64 213
+9b538 4 67 213
+9b53c 4 64 213
+9b540 4 86 244
+9b544 58 86 244
+9b59c 20 146 206
+9b5bc 4 86 244
+9b5c0 4 146 206
+9b5c4 10 86 244
+9b5d4 4 146 206
+9b5d8 c 86 244
+9b5e4 4 146 206
+9b5e8 c 86 244
+9b5f4 4 146 206
+9b5f8 c 86 244
+9b604 4 146 206
+9b608 c 86 244
+9b614 4 146 206
+9b618 c 86 244
+9b624 4 146 206
+9b628 c 86 244
+9b634 4 146 206
+9b638 c 86 244
+9b644 4 146 206
+9b648 c 86 244
+9b654 4 146 206
+9b658 c 86 244
+9b664 4 146 206
+9b668 c 86 244
+9b674 4 146 206
+9b678 c 86 244
+9b684 4 146 206
+9b688 c 86 244
+9b694 4 146 206
+9b698 8 86 244
+9b6a0 8 146 206
+9b6a8 4 101 206
+9b6ac 4 64 239
+9b6b0 c 96 239
+9b6bc 4 319 202
+9b6c0 4 97 239
+9b6c4 4 319 202
+9b6c8 4 97 239
+9b6cc 8 161 202
+9b6d4 4 161 202
+9b6d8 4 175 237
+9b6dc 4 164 239
+9b6e0 4 160 239
+9b6e4 c 165 239
+9b6f0 c 74 239
+9b6fc 8 86 244
+9b704 4 146 206
+9b708 14 86 244
+9b71c 8 146 206
+9b724 c 86 244
+9b730 4 308 238
+9b734 18 134 223
+9b74c 8 86 244
+9b754 8 135 223
+9b75c 8 86 244
+9b764 8 146 206
+9b76c 14 86 244
+9b780 c 600 237
+FUNC 9b78c 128 0 std::priv::__insert_grouping
+9b78c 4 151 193
+9b790 4 36 193
+9b794 18 151 193
+9b7ac c 151 193
+9b7b8 4 36 193
+9b7bc 4 41 193
+9b7c0 14 41 193
+9b7d4 c 46 193
+9b7e0 4 52 193
+9b7e4 8 46 193
+9b7ec c 49 193
+9b7f8 4 53 193
+9b7fc 4 57 193
+9b800 4 53 193
+9b804 8 54 193
+9b80c 4 57 193
+9b810 4 57 193
+9b814 4 57 193
+9b818 4 62 193
+9b81c 4 256 201
+9b820 c 57 193
+9b82c 4 63 193
+9b830 4 255 201
+9b834 8 256 201
+9b83c 8 256 201
+9b844 4 256 201
+9b848 10 256 201
+9b858 8 65 193
+9b860 4 68 193
+9b864 4 154 193
+9b868 8 68 193
+9b870 18 154 193
+9b888 c 43 193
+9b894 4 37 193
+9b898 1c 154 193
+FUNC 9b8b4 1c0 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::_M_reserve
+9b8b4 4 170 237
+9b8b8 4 64 213
+9b8bc c 170 237
+9b8c8 4 170 237
+9b8cc 8 64 213
+9b8d4 8 67 213
+9b8dc c 86 244
+9b8e8 58 86 244
+9b940 24 146 206
+9b964 4 86 244
+9b968 4 146 206
+9b96c 10 86 244
+9b97c 4 146 206
+9b980 8 86 244
+9b988 8 146 206
+9b990 4 101 206
+9b994 c 96 239
+9b9a0 8 97 239
+9b9a8 8 319 202
+9b9b0 4 97 239
+9b9b4 4 135 223
+9b9b8 8 161 202
+9b9c0 4 161 202
+9b9c4 4 175 237
+9b9c8 4 164 239
+9b9cc 4 160 239
+9b9d0 4 165 239
+9b9d4 10 176 237
+9b9e4 c 302 202
+9b9f0 4 306 202
+9b9f4 10 134 223
+9ba04 8 86 244
+9ba0c 8 146 206
+9ba14 c 86 244
+9ba20 4 135 223
+9ba24 4 164 239
+9ba28 4 175 237
+9ba2c 4 165 239
+9ba30 4 160 239
+9ba34 10 176 237
+9ba44 8 86 244
+9ba4c c 303 202
+9ba58 4 303 202
+9ba5c 18 303 202
+FUNC 9ba74 46c 0 std::priv::__insert_grouping
+9ba74 c 159 193
+9ba80 8 400 238
+9ba88 4 159 193
+9ba8c 4 400 238
+9ba90 c 159 193
+9ba9c 4 80 193
+9baa0 4 159 193
+9baa4 8 80 193
+9baac 8 84 193
+9bab4 4 92 193
+9bab8 4 86 193
+9babc 4 70 213
+9bac0 c 86 193
+9bacc 4 97 193
+9bad0 8 83 193
+9bad8 4 90 193
+9badc 4 94 193
+9bae0 4 70 213
+9bae4 8 102 193
+9baec 8 400 238
+9baf4 8 98 193
+9bafc 8 99 193
+9bb04 8 102 193
+9bb0c 14 102 193
+9bb20 10 102 193
+9bb30 c 108 193
+9bb3c 8 660 238
+9bb44 8 74 239
+9bb4c 10 74 239
+9bb5c 8 259 237
+9bb64 4 261 237
+9bb68 4 101 206
+9bb6c c 249 247
+9bb78 4 263 237
+9bb7c 4 249 247
+9bb80 4 263 237
+9bb84 4 267 247
+9bb88 c 263 237
+9bb94 4 400 238
+9bb98 4 307 238
+9bb9c 10 400 238
+9bbac 4 306 238
+9bbb0 10 307 238
+9bbc0 8 64 213
+9bbc8 4 67 213
+9bbcc 4 64 213
+9bbd0 8 86 244
+9bbd8 58 86 244
+9bc30 24 146 206
+9bc54 4 86 244
+9bc58 4 146 206
+9bc5c 10 86 244
+9bc6c 4 146 206
+9bc70 8 86 244
+9bc78 8 146 206
+9bc80 4 267 247
+9bc84 8 86 244
+9bc8c 4 86 244
+9bc90 4 267 247
+9bc94 5c 86 244
+9bcf0 24 146 206
+9bd14 4 86 244
+9bd18 4 146 206
+9bd1c 10 86 244
+9bd2c 4 146 206
+9bd30 8 86 244
+9bd38 8 146 206
+9bd40 4 101 206
+9bd44 c 96 239
+9bd50 8 319 202
+9bd58 4 97 239
+9bd5c 4 319 202
+9bd60 c 97 239
+9bd6c c 161 202
+9bd78 10 161 202
+9bd88 4 274 237
+9bd8c 4 164 239
+9bd90 4 160 239
+9bd94 c 165 239
+9bda0 20 161 193
+9bdc0 4 307 238
+9bdc4 20 134 223
+9bde4 8 86 244
+9bdec 10 86 244
+9bdfc 8 74 239
+9be04 c 74 239
+9be10 8 535 238
+9be18 4 101 206
+9be1c 4 539 238
+9be20 4 267 247
+9be24 8 539 238
+9be2c 14 74 239
+9be40 8 86 244
+9be48 8 146 206
+9be50 18 86 244
+9be68 4 146 206
+9be6c c 86 244
+9be78 14 135 223
+9be8c 14 400 238
+9bea0 4 306 238
+9bea4 14 307 238
+9beb8 10 536 238
+9bec8 10 74 239
+9bed8 8 308 238
+FUNC 9bee0 44 0 std::priv::_Stl_mult64
+9bee0 4 122 192
+9bee4 4 124 192
+9bee8 4 123 192
+9beec 4 125 192
+9bef0 4 127 192
+9bef4 4 130 192
+9bef8 4 136 192
+9befc 4 130 192
+9bf00 4 128 192
+9bf04 8 134 192
+9bf0c 4 136 192
+9bf10 8 135 192
+9bf18 8 136 192
+9bf20 4 137 192
+FUNC 9bf24 84 0 std::priv::_Stl_norm_and_round
+9bf24 4 233 192
+9bf28 4 234 192
+9bf2c c 238 192
+9bf38 8 246 192
+9bf40 4 248 192
+9bf44 8 247 192
+9bf4c 4 254 192
+9bf50 4 263 192
+9bf54 4 255 192
+9bf58 4 255 192
+9bf5c c 255 192
+9bf68 8 259 192
+9bf70 8 260 192
+9bf78 4 263 192
+9bf7c 4 251 192
+9bf80 8 254 192
+9bf88 4 239 192
+9bf8c 8 238 192
+9bf94 8 243 192
+9bf9c 4 263 192
+9bfa0 4 258 192
+9bfa4 4 263 192
+FUNC 9bfa8 17c 0 std::priv::_Stl_tenscale
+9bfa8 4 269 192
+9bfac 4 280 192
+9bfb0 1c 269 192
+9bfcc c 269 192
+9bfd8 4 280 192
+9bfdc 4 281 192
+9bfe0 4 276 192
+9bfe4 4 281 192
+9bfe8 4 282 192
+9bfec 4 285 192
+9bff0 4 284 192
+9bff4 8 283 192
+9bffc 4 289 192
+9c000 4 288 192
+9c004 20 303 192
+9c024 c 307 192
+9c030 4 306 192
+9c034 c 307 192
+9c040 4 305 192
+9c044 8 307 192
+9c04c 14 308 192
+9c060 20 309 192
+9c080 4 303 192
+9c084 4 312 192
+9c088 4 314 192
+9c08c 4 313 192
+9c090 18 314 192
+9c0a8 14 315 192
+9c0bc 20 316 192
+9c0dc 20 320 192
+9c0fc c 291 192
+9c108 4 292 192
+9c10c 4 291 192
+9c110 4 296 192
+9c114 8 295 192
+9c11c 8 276 192
+FUNC 9c124 3a8 0 std::priv::_Stl_string_to_double
+9c124 10 645 192
+9c134 4 655 192
+9c138 8 659 192
+9c140 8 661 192
+9c148 4 655 192
+9c14c 4 658 192
+9c150 4 672 192
+9c154 4 666 192
+9c158 4 673 192
+9c15c 4 669 192
+9c160 4 666 192
+9c164 4 668 192
+9c168 4 674 192
+9c16c 4 673 192
+9c170 8 674 192
+9c178 c 678 192
+9c184 4 681 192
+9c188 4 683 192
+9c18c 4 681 192
+9c190 4 690 192
+9c194 4 672 192
+9c198 8 673 192
+9c1a0 c 685 192
+9c1ac 4 686 192
+9c1b0 8 690 192
+9c1b8 8 676 192
+9c1c0 8 690 192
+9c1c8 c 694 192
+9c1d4 c 698 192
+9c1e0 4 701 192
+9c1e4 14 702 192
+9c1f8 8 704 192
+9c200 4 701 192
+9c204 c 708 192
+9c210 4 722 192
+9c214 8 723 192
+9c21c 4 724 192
+9c220 4 723 192
+9c224 8 726 192
+9c22c 4 166 218
+9c230 4 167 218
+9c234 4 736 192
+9c238 4 737 192
+9c23c 10 741 192
+9c24c 8 683 192
+9c254 8 660 192
+9c25c 8 658 192
+9c264 8 703 192
+9c26c 4 699 192
+9c270 10 708 192
+9c280 4 710 192
+9c284 4 711 192
+9c288 4 710 192
+9c28c 10 709 192
+9c29c c 722 192
+9c2a8 4 717 192
+9c2ac 8 723 192
+9c2b4 4 724 192
+9c2b8 8 723 192
+9c2c0 8 663 192
+9c2c8 8 662 192
+9c2d0 8 706 192
+9c2d8 8 705 192
+9c2e0 4 354 192
+9c2e4 4 355 192
+9c2e8 c 357 192
+9c2f4 4 359 192
+9c2f8 4 358 192
+9c2fc 4 357 192
+9c300 4 359 192
+9c304 4 357 192
+9c308 4 363 192
+9c30c 1c 372 192
+9c328 4 373 192
+9c32c 4 372 192
+9c330 8 373 192
+9c338 8 374 192
+9c340 8 374 192
+9c348 8 375 192
+9c350 8 375 192
+9c358 c 376 192
+9c364 24 377 192
+9c388 c 378 192
+9c394 4 381 192
+9c398 4 270 192
+9c39c 4 381 192
+9c3a0 4 390 192
+9c3a4 8 381 192
+9c3ac 4 272 192
+9c3b0 4 429 192
+9c3b4 8 432 192
+9c3bc 4 441 192
+9c3c0 4 442 192
+9c3c4 4 429 192
+9c3c8 8 442 192
+9c3d0 4 443 192
+9c3d4 8 444 192
+9c3dc 4 445 192
+9c3e0 4 446 192
+9c3e4 4 445 192
+9c3e8 8 464 192
+9c3f0 4 150 192
+9c3f4 4 469 192
+9c3f8 c 150 192
+9c404 4 474 192
+9c408 8 736 192
+9c410 4 695 192
+9c414 c 741 192
+9c420 4 364 192
+9c424 14 736 192
+9c438 8 390 192
+9c440 8 392 192
+9c448 8 394 192
+9c450 8 398 192
+9c458 8 401 192
+9c460 8 406 192
+9c468 c 412 192
+9c474 4 413 192
+9c478 4 412 192
+9c47c 4 413 192
+9c480 4 412 192
+9c484 8 413 192
+9c48c 4 418 192
+9c490 c 418 192
+9c49c 4 419 192
+9c4a0 4 150 192
+9c4a4 8 474 192
+9c4ac 4 395 192
+9c4b0 8 474 192
+9c4b8 4 407 192
+9c4bc 4 409 192
+9c4c0 4 407 192
+9c4c4 8 408 192
+FUNC 9c4cc d8 0 std::priv::_Initialize_get_float
+9c4cc 4 86 192
+9c4d0 4 87 192
+9c4d4 4 86 192
+9c4d8 4 87 192
+9c4dc 4 206 207
+9c4e0 4 86 192
+9c4e4 4 87 192
+9c4e8 4 86 192
+9c4ec 4 87 192
+9c4f0 4 86 192
+9c4f4 4 87 192
+9c4f8 8 206 207
+9c500 c 87 192
+9c50c 10 86 192
+9c51c c 206 207
+9c528 4 88 192
+9c52c 14 206 207
+9c540 8 89 192
+9c548 14 206 207
+9c55c 4 90 192
+9c560 4 206 207
+9c564 4 90 192
+9c568 8 206 207
+9c570 8 209 207
+9c578 4 91 192
+9c57c 8 209 207
+9c584 4 91 192
+9c588 10 209 207
+9c598 c 93 192
+FUNC 9c5a4 28 0 std::priv::__string_to_float
+9c5a4 8 847 192
+9c5ac 4 849 192
+9c5b0 4 847 192
+9c5b4 4 849 192
+9c5b8 c 849 192
+9c5c4 8 853 192
+FUNC 9c5cc 24 0 std::priv::__string_to_float
+9c5cc 8 857 192
+9c5d4 4 859 192
+9c5d8 4 857 192
+9c5dc 4 859 192
+9c5e0 8 859 192
+9c5e8 8 863 192
+FUNC 9c5f0 27c 0 std::priv::_Stl_atodT<long double, ieee854_long_double, 16, 16383>
+9c5f0 4 483 192
+9c5f4 4 488 192
+9c5f8 4 492 192
+9c5fc 8 483 192
+9c604 8 492 192
+9c60c 4 494 192
+9c610 4 493 192
+9c614 4 492 192
+9c618 4 494 192
+9c61c 4 492 192
+9c620 4 497 192
+9c624 18 507 192
+9c63c 4 508 192
+9c640 8 507 192
+9c648 8 508 192
+9c650 8 509 192
+9c658 8 509 192
+9c660 8 510 192
+9c668 8 510 192
+9c670 c 511 192
+9c67c 14 512 192
+9c690 8 516 192
+9c698 4 270 192
+9c69c 8 517 192
+9c6a4 4 527 192
+9c6a8 14 272 192
+9c6bc 4 527 192
+9c6c0 4 529 192
+9c6c4 4 527 192
+9c6c8 8 529 192
+9c6d0 c 589 192
+9c6dc 8 598 192
+9c6e4 8 604 192
+9c6ec 4 608 192
+9c6f0 c 613 192
+9c6fc 4 614 192
+9c700 4 613 192
+9c704 4 614 192
+9c708 4 613 192
+9c70c 8 614 192
+9c714 4 619 192
+9c718 c 619 192
+9c724 8 620 192
+9c72c 4 621 192
+9c730 4 626 192
+9c734 4 624 192
+9c738 8 626 192
+9c740 4 625 192
+9c744 10 627 192
+9c754 8 628 192
+9c75c c 512 192
+9c768 c 513 192
+9c774 4 516 192
+9c778 4 270 192
+9c77c 4 516 192
+9c780 4 527 192
+9c784 8 517 192
+9c78c 4 272 192
+9c790 8 571 192
+9c798 c 197 218
+9c7a4 4 641 192
+9c7a8 8 197 218
+9c7b0 4 198 218
+9c7b4 4 197 218
+9c7b8 4 200 218
+9c7bc 4 199 218
+9c7c0 4 641 192
+9c7c4 4 200 218
+9c7c8 4 641 192
+9c7cc 4 498 192
+9c7d0 c 641 192
+9c7dc 4 581 192
+9c7e0 4 582 192
+9c7e4 4 579 192
+9c7e8 4 582 192
+9c7ec 8 581 192
+9c7f4 4 579 192
+9c7f8 4 582 192
+9c7fc 8 580 192
+9c804 8 582 192
+9c80c 4 641 192
+9c810 4 584 192
+9c814 8 641 192
+9c81c 4 590 192
+9c820 4 637 192
+9c824 4 635 192
+9c828 8 637 192
+9c830 4 635 192
+9c834 4 638 192
+9c838 8 636 192
+9c840 8 638 192
+9c848 4 641 192
+9c84c 4 640 192
+9c850 8 641 192
+9c858 4 609 192
+9c85c 4 611 192
+9c860 4 609 192
+9c864 8 610 192
+FUNC 9c880 1f0 0 std::priv::_Stl_string_to_doubleT<long double, ieee854_long_double, 16, 16383>
+9c880 c 749 192
+9c88c 4 761 192
+9c890 8 765 192
+9c898 8 767 192
+9c8a0 4 761 192
+9c8a4 4 764 192
+9c8a8 4 778 192
+9c8ac 4 772 192
+9c8b0 4 779 192
+9c8b4 4 775 192
+9c8b8 4 772 192
+9c8bc 4 774 192
+9c8c0 4 780 192
+9c8c4 4 779 192
+9c8c8 8 780 192
+9c8d0 c 784 192
+9c8dc 4 787 192
+9c8e0 4 789 192
+9c8e4 4 787 192
+9c8e8 4 796 192
+9c8ec 4 778 192
+9c8f0 8 779 192
+9c8f8 c 791 192
+9c904 4 792 192
+9c908 8 796 192
+9c910 8 782 192
+9c918 8 796 192
+9c920 8 799 192
+9c928 c 803 192
+9c934 4 806 192
+9c938 14 807 192
+9c94c 8 809 192
+9c954 4 806 192
+9c958 c 813 192
+9c964 4 827 192
+9c968 4 826 192
+9c96c c 827 192
+9c978 c 829 192
+9c984 c 197 218
+9c990 4 198 218
+9c994 8 199 218
+9c99c 4 840 192
+9c9a0 4 840 192
+9c9a4 18 841 192
+9c9bc 8 789 192
+9c9c4 4 800 192
+9c9c8 4 841 192
+9c9cc 4 800 192
+9c9d0 10 841 192
+9c9e0 8 766 192
+9c9e8 8 764 192
+9c9f0 8 808 192
+9c9f8 4 804 192
+9c9fc 10 813 192
+9ca0c 4 815 192
+9ca10 4 816 192
+9ca14 4 815 192
+9ca18 18 814 192
+9ca30 8 822 192
+9ca38 8 769 192
+9ca40 8 768 192
+9ca48 18 837 192
+9ca60 8 811 192
+9ca68 8 810 192
+FUNC 9ca70 24 0 std::priv::__string_to_float
+9ca70 8 867 192
+9ca78 4 874 192
+9ca7c 4 867 192
+9ca80 4 874 192
+9ca84 8 874 192
+9ca8c 8 876 192
+FUNC 9ca94 f0 0 std::priv::__fill_fmtbuf
+9ca94 8 711 194
+9ca9c 4 710 194
+9caa0 4 714 194
+9caa4 18 715 194
+9cabc 8 717 194
+9cac4 14 718 194
+9cad8 8 720 194
+9cae0 c 721 194
+9caec 4 723 194
+9caf0 8 724 194
+9caf8 4 726 194
+9cafc 4 735 194
+9cb00 10 726 194
+9cb10 10 739 194
+9cb20 4 739 194
+9cb24 4 739 194
+9cb28 4 743 194
+9cb2c 10 744 194
+9cb3c 8 712 194
+9cb44 10 729 194
+9cb54 4 729 194
+9cb58 4 729 194
+9cb5c 4 743 194
+9cb60 4 744 194
+9cb64 10 735 194
+9cb74 4 735 194
+9cb78 4 735 194
+9cb7c 4 743 194
+9cb80 4 744 194
+FUNC 9cb84 5f8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_append
+9cb84 4 196 237
+9cb88 4 197 237
+9cb8c 10 196 237
+9cb9c 4 196 237
+9cba0 4 197 237
+9cba4 4 64 239
+9cba8 4 198 237
+9cbac 8 74 239
+9cbb4 c 74 239
+9cbc0 8 199 237
+9cbc8 4 210 237
+9cbcc 4 211 237
+9cbd0 4 86 244
+9cbd4 58 86 244
+9cc2c 20 146 206
+9cc4c 4 86 244
+9cc50 4 146 206
+9cc54 10 86 244
+9cc64 4 146 206
+9cc68 c 86 244
+9cc74 4 146 206
+9cc78 c 86 244
+9cc84 4 146 206
+9cc88 c 86 244
+9cc94 4 146 206
+9cc98 c 86 244
+9cca4 4 146 206
+9cca8 c 86 244
+9ccb4 4 146 206
+9ccb8 c 86 244
+9ccc4 4 146 206
+9ccc8 c 86 244
+9ccd4 4 146 206
+9ccd8 c 86 244
+9cce4 4 146 206
+9cce8 c 86 244
+9ccf4 4 146 206
+9ccf8 c 86 244
+9cd04 4 146 206
+9cd08 c 86 244
+9cd14 4 146 206
+9cd18 c 86 244
+9cd24 4 146 206
+9cd28 8 86 244
+9cd30 8 146 206
+9cd38 c 101 206
+9cd44 4 232 247
+9cd48 c 214 237
+9cd54 18 218 237
+9cd6c 4 400 238
+9cd70 1c 304 238
+9cd8c 4 306 238
+9cd90 10 307 238
+9cda0 4 64 213
+9cda4 4 67 213
+9cda8 8 64 213
+9cdb0 4 308 238
+9cdb4 20 134 223
+9cdd4 58 86 244
+9ce2c 20 146 206
+9ce4c 4 86 244
+9ce50 4 146 206
+9ce54 10 86 244
+9ce64 4 146 206
+9ce68 c 86 244
+9ce74 4 146 206
+9ce78 c 86 244
+9ce84 4 146 206
+9ce88 c 86 244
+9ce94 4 146 206
+9ce98 c 86 244
+9cea4 4 146 206
+9cea8 c 86 244
+9ceb4 4 146 206
+9ceb8 c 86 244
+9cec4 4 146 206
+9cec8 c 86 244
+9ced4 4 146 206
+9ced8 c 86 244
+9cee4 4 146 206
+9cee8 c 86 244
+9cef4 4 146 206
+9cef8 c 86 244
+9cf04 4 146 206
+9cf08 c 86 244
+9cf14 4 146 206
+9cf18 c 86 244
+9cf24 4 146 206
+9cf28 8 86 244
+9cf30 8 146 206
+9cf38 58 86 244
+9cf90 20 146 206
+9cfb0 4 86 244
+9cfb4 4 146 206
+9cfb8 10 86 244
+9cfc8 4 146 206
+9cfcc c 86 244
+9cfd8 4 146 206
+9cfdc c 86 244
+9cfe8 4 146 206
+9cfec c 86 244
+9cff8 4 146 206
+9cffc c 86 244
+9d008 4 146 206
+9d00c c 86 244
+9d018 4 146 206
+9d01c c 86 244
+9d028 4 146 206
+9d02c c 86 244
+9d038 4 146 206
+9d03c c 86 244
+9d048 4 146 206
+9d04c c 86 244
+9d058 4 146 206
+9d05c c 86 244
+9d068 4 146 206
+9d06c c 86 244
+9d078 4 146 206
+9d07c c 86 244
+9d088 4 146 206
+9d08c 8 86 244
+9d094 8 146 206
+9d09c 4 101 206
+9d0a0 4 64 239
+9d0a4 c 96 239
+9d0b0 8 97 239
+9d0b8 8 319 202
+9d0c0 4 97 239
+9d0c4 8 161 202
+9d0cc 4 161 202
+9d0d0 4 165 239
+9d0d4 4 206 237
+9d0d8 4 164 239
+9d0dc 4 218 237
+9d0e0 4 160 239
+9d0e4 20 218 237
+9d104 4 146 206
+9d108 10 86 244
+9d118 10 74 239
+9d128 8 86 244
+9d130 8 146 206
+9d138 14 86 244
+9d14c 8 146 206
+9d154 c 86 244
+9d160 8 135 223
+9d168 8 86 244
+9d170 c 600 237
+FUNC 9d17c 220 0 std::priv::__get_floor_digits
+9d17c 4 844 194
+9d180 4 849 194
+9d184 4 844 194
+9d188 8 849 194
+9d190 c 844 194
+9d19c 4 849 194
+9d1a0 4 844 194
+9d1a4 4 849 194
+9d1a8 4 844 194
+9d1ac 4 849 194
+9d1b0 4 844 194
+9d1b4 4 849 194
+9d1b8 10 853 194
+9d1c8 4 854 194
+9d1cc 8 470 238
+9d1d4 4 64 239
+9d1d8 4 355 217
+9d1dc 8 74 239
+9d1e4 10 74 239
+9d1f4 10 472 238
+9d204 4 232 247
+9d208 c 107 244
+9d214 10 106 244
+9d224 4 101 206
+9d228 c 485 238
+9d234 1c 870 194
+9d250 4 400 238
+9d254 1c 304 238
+9d270 4 306 238
+9d274 10 307 238
+9d284 4 64 213
+9d288 8 67 213
+9d290 8 64 213
+9d298 4 308 238
+9d29c 10 134 223
+9d2ac 4 311 202
+9d2b0 c 107 244
+9d2bc 10 106 244
+9d2cc 4 107 244
+9d2d0 c 106 244
+9d2dc 4 101 206
+9d2e0 4 107 244
+9d2e4 4 64 239
+9d2e8 c 96 239
+9d2f4 8 97 239
+9d2fc 8 319 202
+9d304 4 97 239
+9d308 4 135 223
+9d30c 8 161 202
+9d314 4 161 202
+9d318 4 164 239
+9d31c 4 479 238
+9d320 4 165 239
+9d324 4 160 239
+9d328 1c 870 194
+9d344 10 74 239
+9d354 8 229 247
+9d35c 4 530 238
+9d360 c 530 238
+9d36c 1c 870 194
+9d388 8 135 223
+9d390 c 600 237
+FUNC 9d39c 334 0 std::priv::__convert_float_buffer
+9d39c 2c 875 194
+9d3c8 4 875 194
+9d3cc 4 880 194
+9d3d0 4 879 194
+9d3d4 4 880 194
+9d3d8 4 881 194
+9d3dc 4 307 238
+9d3e0 c 881 194
+9d3ec 4 267 247
+9d3f0 4 101 206
+9d3f4 4 880 194
+9d3f8 4 267 247
+9d3fc 4 539 238
+9d400 4 880 194
+9d404 c 881 194
+9d410 8 206 207
+9d418 4 882 194
+9d41c c 206 207
+9d428 4 64 239
+9d42c 8 74 239
+9d434 14 74 239
+9d448 8 535 238
+9d450 14 400 238
+9d464 4 306 238
+9d468 10 307 238
+9d478 c 536 238
+9d484 4 880 194
+9d488 4 267 247
+9d48c 4 101 206
+9d490 4 267 247
+9d494 4 539 238
+9d498 4 880 194
+9d49c 18 900 194
+9d4b4 4 889 194
+9d4b8 18 206 207
+9d4d0 4 64 239
+9d4d4 8 74 239
+9d4dc 14 74 239
+9d4f0 8 535 238
+9d4f8 4 267 247
+9d4fc 4 101 206
+9d500 4 267 247
+9d504 4 539 238
+9d508 c 896 194
+9d514 8 307 238
+9d51c 4 267 247
+9d520 4 101 206
+9d524 8 896 194
+9d52c 4 267 247
+9d530 4 539 238
+9d534 4 896 194
+9d538 18 206 207
+9d550 4 64 239
+9d554 8 74 239
+9d55c 14 74 239
+9d570 c 535 238
+9d57c 14 400 238
+9d590 4 306 238
+9d594 10 307 238
+9d5a4 10 536 238
+9d5b4 14 74 239
+9d5c8 8 308 238
+9d5d0 14 74 239
+9d5e4 c 308 238
+9d5f0 4 64 239
+9d5f4 8 74 239
+9d5fc c 74 239
+9d608 8 535 238
+9d610 4 267 247
+9d614 4 101 206
+9d618 4 267 247
+9d61c 8 539 238
+9d624 14 400 238
+9d638 4 306 238
+9d63c 14 307 238
+9d650 10 536 238
+9d660 14 74 239
+9d674 14 400 238
+9d688 4 306 238
+9d68c 14 307 238
+9d6a0 10 536 238
+9d6b0 8 308 238
+9d6b8 10 74 239
+9d6c8 8 308 238
+FUNC 9d6d0 dc 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_assign
+9d6d0 18 242 237
+9d6e8 4 243 237
+9d6ec 4 242 237
+9d6f0 4 242 237
+9d6f4 4 400 238
+9d6f8 4 244 237
+9d6fc 4 242 237
+9d700 4 244 237
+9d704 4 168 247
+9d708 4 246 237
+9d70c 8 803 238
+9d714 4 168 247
+9d718 4 806 238
+9d71c 4 168 247
+9d720 c 806 238
+9d72c 14 253 237
+9d740 4 168 247
+9d744 10 250 237
+9d754 14 253 237
+9d768 10 168 247
+9d778 4 246 237
+9d77c c 803 238
+9d788 10 168 247
+9d798 14 250 237
+FUNC 9d7ac 230 0 std::priv::__write_floatT<long double>
+9d7ac c 749 194
+9d7b8 4 760 194
+9d7bc c 749 194
+9d7c8 4 760 194
+9d7cc 4 749 194
+9d7d0 4 749 194
+9d7d4 4 760 194
+9d7d8 4 749 194
+9d7dc 4 761 194
+9d7e0 4 749 194
+9d7e4 4 760 194
+9d7e8 18 761 194
+9d800 8 229 247
+9d808 4 355 238
+9d80c 10 355 238
+9d81c 10 162 200
+9d82c 8 164 200
+9d834 4 165 200
+9d838 14 705 194
+9d84c 4 168 200
+9d850 20 705 194
+9d870 4 174 200
+9d874 14 705 194
+9d888 8 164 200
+9d890 4 165 200
+9d894 14 705 194
+9d8a8 4 168 200
+9d8ac 18 705 194
+9d8c4 8 171 200
+9d8cc c 705 194
+9d8d8 8 169 200
+9d8e0 20 820 194
+9d900 4 172 200
+9d904 30 820 194
+9d934 8 166 200
+9d93c c 164 200
+9d948 18 178 200
+9d960 4 186 200
+9d964 20 705 194
+9d984 8 166 200
+9d98c 4 180 200
+9d990 10 705 194
+9d9a0 4 181 200
+9d9a4 4 705 194
+9d9a8 4 183 200
+9d9ac 14 705 194
+9d9c0 10 184 200
+9d9d0 c 164 200
+FUNC 9d9dc 4 0 std::priv::__write_float
+9d9dc 4 840 194
+FUNC 9d9e0 210 0 std::priv::__write_floatT<double>
+9d9e0 8 749 194
+9d9e8 4 760 194
+9d9ec 8 749 194
+9d9f4 4 760 194
+9d9f8 4 749 194
+9d9fc 4 749 194
+9da00 4 760 194
+9da04 4 749 194
+9da08 4 761 194
+9da0c 4 749 194
+9da10 4 760 194
+9da14 18 761 194
+9da2c 8 229 247
+9da34 4 355 238
+9da38 10 355 238
+9da48 10 162 200
+9da58 8 164 200
+9da60 4 165 200
+9da64 14 705 194
+9da78 4 168 200
+9da7c 20 705 194
+9da9c 4 174 200
+9daa0 14 705 194
+9dab4 8 164 200
+9dabc 4 165 200
+9dac0 14 705 194
+9dad4 4 168 200
+9dad8 18 705 194
+9daf0 8 171 200
+9daf8 c 705 194
+9db04 8 169 200
+9db0c 10 820 194
+9db1c 4 172 200
+9db20 28 820 194
+9db48 8 166 200
+9db50 c 164 200
+9db5c 18 178 200
+9db74 4 186 200
+9db78 20 705 194
+9db98 8 166 200
+9dba0 4 180 200
+9dba4 10 705 194
+9dbb4 4 181 200
+9dbb8 4 705 194
+9dbbc 4 183 200
+9dbc0 14 705 194
+9dbd4 10 184 200
+9dbe4 c 164 200
+FUNC 9dbf0 4 0 std::priv::__write_float
+9dbf0 4 829 194
+FUNC 9dbf4 8 0 std::numpunct<char>::do_decimal_point
+9dbf4 8 26 195
+FUNC 9dbfc 8 0 std::numpunct<char>::do_thousands_sep
+9dbfc 8 27 195
+FUNC 9dc04 8 0 std::numpunct<wchar_t>::do_decimal_point
+9dc04 8 34 195
+FUNC 9dc0c 8 0 std::numpunct<wchar_t>::do_thousands_sep
+9dc0c 8 35 195
+FUNC 9dc14 14 0 std::numpunct<char>::~numpunct
+9dc14 14 31 195
+FUNC 9dc28 24 0 std::numpunct<char>::~numpunct
+9dc28 c 31 195
+9dc34 8 31 195
+9dc3c 4 31 195
+9dc40 8 31 195
+9dc48 4 31 195
+FUNC 9dc4c 14 0 std::numpunct<wchar_t>::~numpunct
+9dc4c 14 39 195
+FUNC 9dc60 24 0 std::numpunct<wchar_t>::~numpunct
+9dc60 c 39 195
+9dc6c 8 39 195
+9dc74 4 39 195
+9dc78 8 39 195
+9dc80 4 39 195
+FUNC 9dc84 14 0 std::numpunct<wchar_t>::do_grouping
+9dc84 4 36 195
+9dc88 4 120 239
+9dc8c 4 481 202
+9dc90 4 101 206
+9dc94 4 36 195
+FUNC 9dc98 14 0 std::numpunct<char>::do_grouping
+9dc98 4 28 195
+9dc9c 4 120 239
+9dca0 4 481 202
+9dca4 4 101 206
+9dca8 4 28 195
+FUNC 9dcac 30 0 std::numpunct<char>::do_truename
+9dcac 4 29 195
+9dcb0 8 29 195
+9dcb8 4 29 195
+9dcbc 8 29 195
+9dcc4 8 29 195
+9dccc 10 29 195
+FUNC 9dcdc 30 0 std::numpunct<char>::do_falsename
+9dcdc 4 30 195
+9dce0 8 30 195
+9dce8 4 30 195
+9dcec 8 30 195
+9dcf4 8 30 195
+9dcfc 10 30 195
+FUNC 9dd0c 30 0 std::numpunct<wchar_t>::do_truename
+9dd0c 4 37 195
+9dd10 8 37 195
+9dd18 4 37 195
+9dd1c 8 37 195
+9dd24 8 37 195
+9dd2c 10 37 195
+FUNC 9dd3c 30 0 std::numpunct<wchar_t>::do_falsename
+9dd3c 4 38 195
+9dd40 8 38 195
+9dd48 4 38 195
+9dd4c 8 38 195
+9dd54 8 38 195
+9dd5c 10 38 195
+FUNC 9dd6c 1dc 0 std::priv::__append
+9dd6c c 174 198
+9dd78 4 209 207
+9dd7c 4 174 198
+9dd80 4 209 207
+9dd84 4 174 198
+9dd88 8 209 207
+9dd90 8 174 198
+9dd98 4 174 198
+9dd9c 4 209 207
+9dda0 4 174 198
+9dda4 4 209 207
+9dda8 8 177 198
+9ddb0 8 470 238
+9ddb8 4 64 239
+9ddbc 8 355 217
+9ddc4 8 74 239
+9ddcc 14 74 239
+9dde0 8 472 238
+9dde8 4 107 244
+9ddec 8 267 247
+9ddf4 8 107 244
+9ddfc 10 106 244
+9de0c 4 101 206
+9de10 4 484 238
+9de14 4 485 238
+9de18 14 178 198
+9de2c 4 400 238
+9de30 4 304 238
+9de34 4 400 238
+9de38 18 304 238
+9de50 4 306 238
+9de54 10 307 238
+9de64 c 64 213
+9de70 8 67 213
+9de78 c 107 244
+9de84 10 106 244
+9de94 4 107 244
+9de98 c 106 244
+9dea4 4 107 244
+9dea8 4 64 239
+9deac 4 101 206
+9deb0 c 96 239
+9debc 8 97 239
+9dec4 8 319 202
+9decc 4 97 239
+9ded0 4 135 223
+9ded4 8 161 202
+9dedc 4 161 202
+9dee0 4 479 238
+9dee4 4 164 239
+9dee8 4 160 239
+9deec 4 165 239
+9def0 14 178 198
+9df04 4 307 238
+9df08 8 134 223
+9df10 10 311 202
+9df20 14 74 239
+9df34 8 135 223
+9df3c c 600 237
+FUNC 9df48 1b8 0 std::priv::__append
+9df48 1c 169 198
+9df64 4 470 238
+9df68 8 400 238
+9df70 4 470 238
+9df74 4 64 239
+9df78 8 74 239
+9df80 14 74 239
+9df94 c 472 238
+9dfa0 8 482 238
+9dfa8 4 267 247
+9dfac 8 107 244
+9dfb4 10 106 244
+9dfc4 4 101 206
+9dfc8 4 484 238
+9dfcc 4 485 238
+9dfd0 14 169 198
+9dfe4 4 400 238
+9dfe8 4 304 238
+9dfec 4 400 238
+9dff0 18 304 238
+9e008 4 306 238
+9e00c 10 307 238
+9e01c c 64 213
+9e028 8 67 213
+9e030 c 107 244
+9e03c 10 106 244
+9e04c 4 107 244
+9e050 c 106 244
+9e05c 4 107 244
+9e060 4 64 239
+9e064 4 101 206
+9e068 c 96 239
+9e074 8 97 239
+9e07c 8 319 202
+9e084 4 97 239
+9e088 4 135 223
+9e08c 8 161 202
+9e094 4 161 202
+9e098 4 479 238
+9e09c 4 165 239
+9e0a0 4 160 239
+9e0a4 4 164 239
+9e0a8 14 169 198
+9e0bc 4 307 238
+9e0c0 8 134 223
+9e0c8 10 311 202
+9e0d8 14 74 239
+9e0ec 8 135 223
+9e0f4 c 600 237
+FUNC 9e100 208 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::append
+9e100 1c 180 237
+9e11c 4 74 239
+9e120 8 180 237
+9e128 4 74 239
+9e12c c 74 239
+9e138 8 184 237
+9e140 4 267 247
+9e144 4 101 206
+9e148 c 192 237
+9e154 4 267 247
+9e158 4 189 237
+9e15c c 192 237
+9e168 14 400 238
+9e17c 4 306 238
+9e180 14 307 238
+9e194 c 64 213
+9e1a0 8 67 213
+9e1a8 58 86 244
+9e200 24 146 206
+9e224 4 86 244
+9e228 4 146 206
+9e22c 10 86 244
+9e23c 4 146 206
+9e240 c 86 244
+9e24c 8 146 206
+9e254 4 101 206
+9e258 c 96 239
+9e264 8 97 239
+9e26c 8 319 202
+9e274 4 97 239
+9e278 8 161 202
+9e280 4 161 202
+9e284 4 175 237
+9e288 4 165 239
+9e28c 4 160 239
+9e290 8 165 239
+9e298 4 307 238
+9e29c 24 134 223
+9e2c0 1c 74 239
+9e2dc 8 86 244
+9e2e4 8 146 206
+9e2ec c 86 244
+9e2f8 8 135 223
+9e300 8 86 244
+FUNC 9e308 2b8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::append
+9e308 18 180 237
+9e320 4 400 238
+9e324 8 180 237
+9e32c 4 182 237
+9e330 4 180 237
+9e334 4 182 237
+9e338 8 74 239
+9e340 8 74 239
+9e348 8 184 237
+9e350 8 101 206
+9e358 4 232 247
+9e35c 4 192 237
+9e360 4 189 237
+9e364 4 192 237
+9e368 8 189 237
+9e370 1c 192 237
+9e38c 4 306 238
+9e390 10 307 238
+9e3a0 4 64 213
+9e3a4 4 67 213
+9e3a8 8 64 213
+9e3b0 4 308 238
+9e3b4 18 134 223
+9e3cc 58 86 244
+9e424 20 146 206
+9e444 4 86 244
+9e448 4 146 206
+9e44c 10 86 244
+9e45c 4 146 206
+9e460 c 86 244
+9e46c 4 146 206
+9e470 c 86 244
+9e47c 4 146 206
+9e480 c 86 244
+9e48c 4 146 206
+9e490 c 86 244
+9e49c 4 146 206
+9e4a0 c 86 244
+9e4ac 4 146 206
+9e4b0 c 86 244
+9e4bc 4 146 206
+9e4c0 c 86 244
+9e4cc 4 146 206
+9e4d0 c 86 244
+9e4dc 4 146 206
+9e4e0 c 86 244
+9e4ec 4 146 206
+9e4f0 c 86 244
+9e4fc 4 146 206
+9e500 c 86 244
+9e50c 4 146 206
+9e510 c 86 244
+9e51c 4 146 206
+9e520 8 86 244
+9e528 8 146 206
+9e530 4 101 206
+9e534 4 64 239
+9e538 c 96 239
+9e544 8 97 239
+9e54c 8 319 202
+9e554 4 97 239
+9e558 8 161 202
+9e560 4 161 202
+9e564 4 175 237
+9e568 4 164 239
+9e56c 4 160 239
+9e570 c 165 239
+9e57c c 74 239
+9e588 8 86 244
+9e590 8 146 206
+9e598 c 86 244
+9e5a4 8 135 223
+9e5ac 8 86 244
+9e5b4 c 600 237
+FUNC 9e5c0 a8 0 std::priv::__subformat<wchar_t, std::priv::_WTime_Info>
+9e5c0 24 148 198
+9e5e4 8 148 198
+9e5ec 8 152 198
+9e5f4 10 153 198
+9e604 4 156 198
+9e608 4 155 198
+9e60c 4 156 198
+9e610 4 155 198
+9e614 4 156 198
+9e618 4 154 198
+9e61c 18 159 198
+9e634 8 152 198
+9e63c 14 163 198
+9e650 10 161 198
+9e660 8 157 198
+FUNC 9e668 8b4 0 std::priv::__write_formatted_timeT<wchar_t, std::priv::_WTime_Info>
+9e668 10 213 198
+9e678 4 220 198
+9e67c 4 220 198
+9e680 c 213 198
+9e68c 2c 220 198
+9e6b8 18 374 198
+9e6d0 18 374 198
+9e6e8 4 64 239
+9e6ec c 96 239
+9e6f8 8 97 239
+9e700 8 161 202
+9e708 4 161 202
+9e70c 14 452 198
+9e720 1c 338 198
+9e73c 14 342 198
+9e750 4 357 198
+9e754 14 358 198
+9e768 14 452 198
+9e77c 20 206 207
+9e79c 30 381 198
+9e7cc 8 420 198
+9e7d4 10 421 198
+9e7e4 14 452 198
+9e7f8 24 226 198
+9e81c c 305 198
+9e828 1c 304 198
+9e844 4 243 198
+9e848 c 243 198
+9e854 4 243 198
+9e858 c 282 198
+9e864 4 283 198
+9e868 10 283 198
+9e878 14 452 198
+9e88c c 239 198
+9e898 28 313 198
+9e8c0 1c 222 198
+9e8dc 18 318 198
+9e8f4 1c 309 198
+9e910 4 299 198
+9e914 c 299 198
+9e920 4 299 198
+9e924 4 299 198
+9e928 4 299 198
+9e92c 4 420 198
+9e930 14 299 198
+9e944 c 420 198
+9e950 40 287 198
+9e990 4 282 198
+9e994 c 282 198
+9e9a0 4 282 198
+9e9a4 c 282 198
+9e9b0 4 283 198
+9e9b4 10 283 198
+9e9c4 18 366 198
+9e9dc 1c 366 198
+9e9f8 4 273 198
+9e9fc c 273 198
+9ea08 4 273 198
+9ea0c c 273 198
+9ea18 4 274 198
+9ea1c 10 274 198
+9ea2c 8 258 198
+9ea34 18 258 198
+9ea4c 18 258 198
+9ea64 8 259 198
+9ea6c 4 253 198
+9ea70 c 253 198
+9ea7c 4 253 198
+9ea80 c 253 198
+9ea8c 4 254 198
+9ea90 10 254 198
+9eaa0 4 394 198
+9eaa4 4 194 198
+9eaa8 4 394 198
+9eaac 4 393 198
+9eab0 1c 194 198
+9eacc 8 395 198
+9ead4 8 393 198
+9eadc 8 401 198
+9eae4 14 401 198
+9eaf8 18 401 198
+9eb10 4 401 198
+9eb14 20 194 198
+9eb34 8 402 198
+9eb3c 4 404 198
+9eb40 10 409 198
+9eb50 4 411 198
+9eb54 4 420 198
+9eb58 1c 411 198
+9eb74 4 386 198
+9eb78 4 387 198
+9eb7c 4 386 198
+9eb80 4 387 198
+9eb84 8 420 198
+9eb8c 2c 357 198
+9ebb8 18 352 198
+9ebd0 18 263 198
+9ebe8 1c 348 198
+9ec04 24 206 207
+9ec28 8 292 198
+9ec30 4 420 198
+9ec34 8 292 198
+9ec3c 24 234 198
+9ec60 18 370 198
+9ec78 1c 370 198
+9ec94 40 278 198
+9ecd4 10 206 207
+9ece4 4 268 198
+9ece8 c 268 198
+9ecf4 4 268 198
+9ecf8 10 268 198
+9ed08 8 269 198
+9ed10 18 258 198
+9ed28 8 258 198
+9ed30 4 258 198
+9ed34 10 258 198
+9ed44 24 259 198
+9ed68 14 259 198
+9ed7c 8 259 198
+9ed84 10 268 198
+9ed94 4 269 198
+9ed98 10 269 198
+9eda8 c 243 198
+9edb4 4 244 198
+9edb8 10 244 198
+9edc8 c 299 198
+9edd4 4 258 198
+9edd8 4 258 198
+9eddc 8 258 198
+9ede4 8 135 223
+9edec c 258 198
+9edf8 4 417 198
+9edfc 4 420 198
+9ee00 24 417 198
+9ee24 4 414 198
+9ee28 8 420 198
+9ee30 8 397 198
+9ee38 8 398 198
+9ee40 14 398 198
+9ee54 18 398 198
+9ee6c 4 398 198
+9ee70 20 194 198
+9ee90 10 195 198
+9eea0 8 64 239
+9eea8 c 96 239
+9eeb4 18 97 239
+9eecc 8 64 239
+9eed4 c 96 239
+9eee0 14 97 239
+9eef4 8 64 239
+9eefc c 96 239
+9ef08 14 97 239
+FUNC 9ef1c 4 0 std::priv::__write_formatted_time
+9ef1c 4 462 198
+FUNC 9ef20 294 0 std::priv::time_init<char>::time_init
+9ef20 10 502 198
+9ef30 4 101 206
+9ef34 10 502 198
+9ef44 c 120 239
+9ef50 4 481 202
+9ef54 4 120 239
+9ef58 4 101 206
+9ef5c 14 120 239
+9ef70 4 481 202
+9ef74 4 120 239
+9ef78 4 101 206
+9ef7c c 120 239
+9ef88 4 481 202
+9ef8c 4 120 239
+9ef90 4 101 206
+9ef94 c 120 239
+9efa0 4 481 202
+9efa4 4 120 239
+9efa8 4 101 206
+9efac c 120 239
+9efb8 4 481 202
+9efbc 4 120 239
+9efc0 4 101 206
+9efc4 4 72 243
+9efc8 4 120 239
+9efcc 4 72 243
+9efd0 8 481 202
+9efd8 4 101 206
+9efdc 4 120 239
+9efe0 4 481 202
+9efe4 4 101 206
+9efe8 4 120 239
+9efec 4 481 202
+9eff0 4 101 206
+9eff4 4 120 239
+9eff8 4 481 202
+9effc 4 101 206
+9f000 4 120 239
+9f004 4 481 202
+9f008 4 101 206
+9f00c 4 120 239
+9f010 4 481 202
+9f014 4 101 206
+9f018 4 120 239
+9f01c 4 481 202
+9f020 4 101 206
+9f024 4 120 239
+9f028 4 481 202
+9f02c 4 101 206
+9f030 4 120 239
+9f034 4 481 202
+9f038 4 101 206
+9f03c 4 120 239
+9f040 4 481 202
+9f044 4 101 206
+9f048 4 120 239
+9f04c 4 481 202
+9f050 4 101 206
+9f054 4 120 239
+9f058 4 481 202
+9f05c 4 101 206
+9f060 4 120 239
+9f064 4 481 202
+9f068 4 101 206
+9f06c 4 120 239
+9f070 4 481 202
+9f074 4 101 206
+9f078 4 120 239
+9f07c 4 481 202
+9f080 4 101 206
+9f084 8 72 243
+9f08c 8 120 239
+9f094 8 481 202
+9f09c 8 101 206
+9f0a4 8 120 239
+9f0ac 8 481 202
+9f0b4 4 101 206
+9f0b8 4 503 198
+9f0bc 8 229 247
+9f0c4 4 355 238
+9f0c8 14 355 238
+9f0dc 10 77 198
+9f0ec 8 229 247
+9f0f4 4 355 238
+9f0f8 14 355 238
+9f10c 8 79 198
+9f114 70 355 238
+9f184 20 504 198
+9f1a4 10 503 198
+FUNC 9f1b4 c0 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_assign
+9f1b4 14 242 237
+9f1c8 4 243 237
+9f1cc 4 242 237
+9f1d0 4 400 238
+9f1d4 4 242 237
+9f1d8 4 243 237
+9f1dc 4 242 237
+9f1e0 8 400 238
+9f1e8 8 244 237
+9f1f0 c 249 247
+9f1fc 8 246 237
+9f204 8 803 238
+9f20c c 249 247
+9f218 4 806 238
+9f21c 4 249 247
+9f220 c 806 238
+9f22c 14 253 237
+9f240 4 249 247
+9f244 4 400 238
+9f248 4 250 237
+9f24c 4 400 238
+9f250 4 250 237
+9f254 4 400 238
+9f258 8 250 237
+9f260 14 253 237
+FUNC 9f274 2bc 0 std::priv::time_init<wchar_t>::time_init
+9f274 4 527 198
+9f278 8 120 239
+9f280 c 527 198
+9f28c 4 101 206
+9f290 10 527 198
+9f2a0 c 120 239
+9f2ac 4 481 202
+9f2b0 4 120 239
+9f2b4 4 101 206
+9f2b8 14 120 239
+9f2cc 4 481 202
+9f2d0 4 120 239
+9f2d4 4 101 206
+9f2d8 c 120 239
+9f2e4 4 481 202
+9f2e8 4 120 239
+9f2ec 4 101 206
+9f2f0 c 120 239
+9f2fc 4 481 202
+9f300 4 120 239
+9f304 4 101 206
+9f308 8 120 239
+9f310 4 80 243
+9f314 8 481 202
+9f31c 4 101 206
+9f320 4 80 243
+9f324 8 120 239
+9f32c 4 481 202
+9f330 4 101 206
+9f334 4 120 239
+9f338 4 481 202
+9f33c 4 101 206
+9f340 4 120 239
+9f344 4 481 202
+9f348 4 101 206
+9f34c 4 120 239
+9f350 4 481 202
+9f354 4 101 206
+9f358 4 120 239
+9f35c 4 481 202
+9f360 4 101 206
+9f364 4 120 239
+9f368 4 481 202
+9f36c 4 101 206
+9f370 4 120 239
+9f374 4 481 202
+9f378 4 101 206
+9f37c 4 120 239
+9f380 4 481 202
+9f384 4 101 206
+9f388 4 120 239
+9f38c 4 481 202
+9f390 4 101 206
+9f394 4 120 239
+9f398 4 481 202
+9f39c 4 101 206
+9f3a0 4 120 239
+9f3a4 4 481 202
+9f3a8 4 101 206
+9f3ac 4 120 239
+9f3b0 4 481 202
+9f3b4 4 101 206
+9f3b8 4 120 239
+9f3bc 4 481 202
+9f3c0 4 101 206
+9f3c4 4 120 239
+9f3c8 4 481 202
+9f3cc 4 101 206
+9f3d0 4 120 239
+9f3d4 4 481 202
+9f3d8 4 101 206
+9f3dc 8 80 243
+9f3e4 4 80 243
+9f3e8 1c 120 239
+9f404 4 481 202
+9f408 4 101 206
+9f40c 4 120 239
+9f410 4 481 202
+9f414 4 101 206
+9f418 4 528 198
+9f41c 8 264 247
+9f424 4 355 238
+9f428 14 355 238
+9f43c 14 89 198
+9f450 8 264 247
+9f458 4 355 238
+9f45c 14 355 238
+9f470 8 91 198
+9f478 14 264 247
+9f48c 8 355 238
+9f494 8 355 238
+9f49c 14 264 247
+9f4b0 8 355 238
+9f4b8 48 355 238
+9f500 20 529 198
+9f520 10 528 198
+FUNC 9f530 1a8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_appendT<char const*>
+9f530 4 468 238
+9f534 4 470 238
+9f538 10 468 238
+9f548 8 468 238
+9f550 4 470 238
+9f554 4 64 239
+9f558 4 355 217
+9f55c 8 74 239
+9f564 c 74 239
+9f570 c 472 238
+9f57c 4 482 238
+9f580 4 232 247
+9f584 c 107 244
+9f590 10 106 244
+9f5a0 4 101 206
+9f5a4 c 485 238
+9f5b0 18 489 238
+9f5c8 4 400 238
+9f5cc 1c 304 238
+9f5e8 4 306 238
+9f5ec 10 307 238
+9f5fc 4 64 213
+9f600 4 67 213
+9f604 8 64 213
+9f60c 4 308 238
+9f610 8 134 223
+9f618 c 311 202
+9f624 c 107 244
+9f630 10 106 244
+9f640 4 107 244
+9f644 c 106 244
+9f650 4 101 206
+9f654 4 107 244
+9f658 4 64 239
+9f65c c 96 239
+9f668 8 97 239
+9f670 8 319 202
+9f678 4 97 239
+9f67c 4 135 223
+9f680 8 161 202
+9f688 4 161 202
+9f68c 4 164 239
+9f690 4 479 238
+9f694 4 165 239
+9f698 4 489 238
+9f69c 4 160 239
+9f6a0 14 489 238
+9f6b4 10 74 239
+9f6c4 8 135 223
+9f6cc c 600 237
+FUNC 9f6d8 1a8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_appendT<char*>
+9f6d8 4 468 238
+9f6dc 4 470 238
+9f6e0 10 468 238
+9f6f0 8 468 238
+9f6f8 4 470 238
+9f6fc 4 64 239
+9f700 4 355 217
+9f704 8 74 239
+9f70c c 74 239
+9f718 c 472 238
+9f724 4 482 238
+9f728 4 232 247
+9f72c c 107 244
+9f738 10 106 244
+9f748 4 101 206
+9f74c c 485 238
+9f758 18 489 238
+9f770 4 400 238
+9f774 1c 304 238
+9f790 4 306 238
+9f794 10 307 238
+9f7a4 4 64 213
+9f7a8 4 67 213
+9f7ac 8 64 213
+9f7b4 4 308 238
+9f7b8 8 134 223
+9f7c0 c 311 202
+9f7cc c 107 244
+9f7d8 10 106 244
+9f7e8 4 107 244
+9f7ec c 106 244
+9f7f8 4 101 206
+9f7fc 4 107 244
+9f800 4 64 239
+9f804 c 96 239
+9f810 8 97 239
+9f818 8 319 202
+9f820 4 97 239
+9f824 4 135 223
+9f828 8 161 202
+9f830 4 161 202
+9f834 4 164 239
+9f838 4 479 238
+9f83c 4 165 239
+9f840 4 489 238
+9f844 4 160 239
+9f848 14 489 238
+9f85c 10 74 239
+9f86c 8 135 223
+9f874 c 600 237
+FUNC 9f880 11f8 0 std::priv::__write_formatted_timeT<char, std::priv::_Time_Info>
+9f880 10 213 198
+9f890 4 220 198
+9f894 4 220 198
+9f898 c 213 198
+9f8a4 2c 220 198
+9f8d0 4 222 198
+9f8d4 10 226 198
+9f8e4 8 470 238
+9f8ec 4 64 239
+9f8f0 4 355 217
+9f8f4 8 74 239
+9f8fc 10 74 239
+9f90c 8 472 238
+9f914 4 400 238
+9f918 1c 304 238
+9f934 4 306 238
+9f938 10 307 238
+9f948 4 64 213
+9f94c 4 67 213
+9f950 4 64 213
+9f954 8 107 244
+9f95c 10 106 244
+9f96c 4 107 244
+9f970 c 106 244
+9f97c 4 101 206
+9f980 4 107 244
+9f984 4 64 239
+9f988 c 96 239
+9f994 8 97 239
+9f99c 8 319 202
+9f9a4 4 97 239
+9f9a8 4 135 223
+9f9ac 8 161 202
+9f9b4 4 161 202
+9f9b8 4 479 238
+9f9bc 4 164 239
+9f9c0 4 160 239
+9f9c4 4 165 239
+9f9c8 14 452 198
+9f9dc 8 342 198
+9f9e4 10 352 198
+9f9f4 18 497 238
+9fa0c 20 101 207
+9fa2c 34 381 198
+9fa60 4 470 238
+9fa64 4 381 198
+9fa68 4 470 238
+9fa6c 4 64 239
+9fa70 4 355 217
+9fa74 8 74 239
+9fa7c 10 74 239
+9fa8c c 472 238
+9fa98 4 107 244
+9fa9c 4 232 247
+9faa0 c 107 244
+9faac 10 106 244
+9fabc 4 101 206
+9fac0 4 485 238
+9fac4 4 452 198
+9fac8 8 485 238
+9fad0 10 452 198
+9fae0 1c 348 198
+9fafc 28 313 198
+9fb24 4 470 238
+9fb28 4 313 198
+9fb2c 4 470 238
+9fb30 4 64 239
+9fb34 4 355 217
+9fb38 8 74 239
+9fb40 10 74 239
+9fb50 8 472 238
+9fb58 4 400 238
+9fb5c 1c 304 238
+9fb78 4 306 238
+9fb7c 10 307 238
+9fb8c 4 64 213
+9fb90 4 67 213
+9fb94 4 64 213
+9fb98 8 107 244
+9fba0 10 106 244
+9fbb0 4 107 244
+9fbb4 c 106 244
+9fbc0 4 101 206
+9fbc4 4 107 244
+9fbc8 4 64 239
+9fbcc c 96 239
+9fbd8 8 97 239
+9fbe0 8 319 202
+9fbe8 4 97 239
+9fbec 4 135 223
+9fbf0 8 161 202
+9fbf8 4 161 202
+9fbfc 4 165 239
+9fc00 4 479 238
+9fc04 4 164 239
+9fc08 4 160 239
+9fc0c 14 452 198
+9fc20 8 243 198
+9fc28 18 243 198
+9fc40 4 244 198
+9fc44 4 244 198
+9fc48 8 244 198
+9fc50 4 64 239
+9fc54 4 355 217
+9fc58 8 74 239
+9fc60 10 74 239
+9fc70 c 472 238
+9fc7c 4 107 244
+9fc80 4 232 247
+9fc84 c 107 244
+9fc90 10 106 244
+9fca0 4 485 238
+9fca4 4 101 206
+9fca8 c 485 238
+9fcb4 8 239 198
+9fcbc 4 305 198
+9fcc0 1c 304 198
+9fcdc 4 230 198
+9fce0 10 234 198
+9fcf0 8 470 238
+9fcf8 4 64 239
+9fcfc 4 355 217
+9fd00 8 74 239
+9fd08 10 74 239
+9fd18 c 472 238
+9fd24 4 482 238
+9fd28 4 232 247
+9fd2c c 107 244
+9fd38 10 106 244
+9fd48 4 101 206
+9fd4c 10 485 238
+9fd5c 18 318 198
+9fd74 4 470 238
+9fd78 4 318 198
+9fd7c 4 470 238
+9fd80 4 64 239
+9fd84 4 355 217
+9fd88 8 74 239
+9fd90 10 74 239
+9fda0 8 472 238
+9fda8 4 400 238
+9fdac 1c 304 238
+9fdc8 4 306 238
+9fdcc 10 307 238
+9fddc 4 64 213
+9fde0 4 67 213
+9fde4 4 64 213
+9fde8 8 134 223
+9fdf0 10 311 202
+9fe00 1c 309 198
+9fe1c 4 299 198
+9fe20 c 299 198
+9fe2c 4 299 198
+9fe30 4 299 198
+9fe34 4 299 198
+9fe38 4 297 198
+9fe3c c 299 198
+9fe48 4 297 198
+9fe4c 4 299 198
+9fe50 4 297 198
+9fe54 4 299 198
+9fe58 4 297 198
+9fe5c 4 470 238
+9fe60 4 297 198
+9fe64 8 470 238
+9fe6c 40 287 198
+9feac 4 470 238
+9feb0 4 287 198
+9feb4 8 470 238
+9febc 18 374 198
+9fed4 18 374 198
+9feec 4 64 239
+9fef0 c 96 239
+9fefc 8 97 239
+9ff04 8 161 202
+9ff0c 4 161 202
+9ff10 4 375 198
+9ff14 8 282 198
+9ff1c 18 282 198
+9ff34 4 283 198
+9ff38 4 283 198
+9ff3c 8 283 198
+9ff44 4 64 239
+9ff48 4 355 217
+9ff4c 8 74 239
+9ff54 10 74 239
+9ff64 8 472 238
+9ff6c 4 400 238
+9ff70 1c 304 238
+9ff8c 4 306 238
+9ff90 10 307 238
+9ffa0 4 64 213
+9ffa4 4 67 213
+9ffa8 4 64 213
+9ffac 8 107 244
+9ffb4 10 106 244
+9ffc4 4 107 244
+9ffc8 c 106 244
+9ffd4 4 107 244
+9ffd8 4 64 239
+9ffdc 4 101 206
+9ffe0 c 96 239
+9ffec 18 366 198
+a0004 1c 366 198
+a0020 8 258 198
+a0028 8 258 198
+a0030 8 258 198
+a0038 c 258 198
+a0044 c 258 198
+a0050 4 258 198
+a0054 8 258 198
+a005c 8 258 198
+a0064 20 259 198
+a0084 10 259 198
+a0094 8 253 198
+a009c 18 253 198
+a00b4 4 254 198
+a00b8 4 254 198
+a00bc 8 254 198
+a00c4 8 274 198
+a00cc 8 394 198
+a00d4 4 393 198
+a00d8 20 194 198
+a00f8 8 395 198
+a0100 8 393 198
+a0108 8 401 198
+a0110 14 401 198
+a0124 18 401 198
+a013c 4 401 198
+a0140 20 194 198
+a0160 8 402 198
+a0168 4 404 198
+a016c 10 409 198
+a017c 4 411 198
+a0180 4 420 198
+a0184 1c 411 198
+a01a0 8 273 198
+a01a8 18 273 198
+a01c0 4 274 198
+a01c4 4 274 198
+a01c8 8 274 198
+a01d0 8 274 198
+a01d8 4 338 198
+a01dc 8 497 238
+a01e4 8 338 198
+a01ec 10 497 238
+a01fc 8 268 198
+a0204 1c 268 198
+a0220 4 269 198
+a0224 4 269 198
+a0228 8 269 198
+a0230 8 274 198
+a0238 28 357 198
+a0260 4 64 239
+a0264 8 74 239
+a026c 10 74 239
+a027c c 472 238
+a0288 4 232 247
+a028c 4 483 238
+a0290 c 106 244
+a029c 4 101 206
+a02a0 10 485 238
+a02b0 c 352 198
+a02bc 14 263 198
+a02d0 c 305 198
+a02dc 4 386 198
+a02e0 4 387 198
+a02e4 8 386 198
+a02ec c 420 198
+a02f8 4 470 238
+a02fc 4 420 198
+a0300 4 470 238
+a0304 4 64 239
+a0308 4 355 217
+a030c 8 74 239
+a0314 10 74 239
+a0324 8 472 238
+a032c 4 400 238
+a0330 1c 304 238
+a034c 4 306 238
+a0350 10 307 238
+a0360 4 64 213
+a0364 4 67 213
+a0368 4 64 213
+a036c 10 107 244
+a037c 10 234 198
+a038c 10 226 198
+a039c 24 101 207
+a03c0 18 370 198
+a03d8 1c 370 198
+a03f4 30 278 198
+a0424 8 470 238
+a042c 4 64 239
+a0430 4 355 217
+a0434 8 74 239
+a043c 10 74 239
+a044c 8 472 238
+a0454 4 400 238
+a0458 1c 304 238
+a0474 4 306 238
+a0478 10 307 238
+a0488 4 64 213
+a048c 4 67 213
+a0490 4 64 213
+a0494 10 107 244
+a04a4 14 292 198
+a04b8 4 470 238
+a04bc 4 292 198
+a04c0 8 470 238
+a04c8 10 101 207
+a04d8 18 282 198
+a04f0 4 283 198
+a04f4 4 283 198
+a04f8 8 283 198
+a0500 8 283 198
+a0508 4 400 238
+a050c 1c 304 238
+a0528 4 306 238
+a052c 10 307 238
+a053c 4 64 213
+a0540 4 67 213
+a0544 4 64 213
+a0548 8 134 223
+a0550 10 311 202
+a0560 4 400 238
+a0564 1c 304 238
+a0580 4 306 238
+a0584 10 307 238
+a0594 4 64 213
+a0598 4 67 213
+a059c 4 64 213
+a05a0 10 107 244
+a05b0 8 135 223
+a05b8 10 74 239
+a05c8 8 308 238
+a05d0 10 74 239
+a05e0 4 308 238
+a05e4 8 134 223
+a05ec 10 311 202
+a05fc 4 400 238
+a0600 1c 304 238
+a061c 4 306 238
+a0620 10 307 238
+a0630 4 64 213
+a0634 4 67 213
+a0638 4 64 213
+a063c 8 134 223
+a0644 10 311 202
+a0654 c 299 198
+a0660 8 259 198
+a0668 8 135 223
+a0670 10 74 239
+a0680 4 308 238
+a0684 8 134 223
+a068c 10 311 202
+a069c 4 417 198
+a06a0 4 420 198
+a06a4 24 417 198
+a06c8 4 414 198
+a06cc 8 420 198
+a06d4 4 400 238
+a06d8 20 304 238
+a06f8 4 306 238
+a06fc 10 307 238
+a070c 4 64 213
+a0710 4 67 213
+a0714 4 64 213
+a0718 8 107 244
+a0720 10 106 244
+a0730 4 107 244
+a0734 c 106 244
+a0740 4 101 206
+a0744 4 64 239
+a0748 c 96 239
+a0754 8 97 239
+a075c 8 319 202
+a0764 4 97 239
+a0768 4 135 223
+a076c 8 161 202
+a0774 4 161 202
+a0778 4 479 238
+a077c 4 164 239
+a0780 4 160 239
+a0784 8 165 239
+a078c c 258 198
+a0798 1c 268 198
+a07b4 4 269 198
+a07b8 4 269 198
+a07bc 8 269 198
+a07c4 8 274 198
+a07cc 18 273 198
+a07e4 4 274 198
+a07e8 4 274 198
+a07ec 8 274 198
+a07f4 8 274 198
+a07fc 18 253 198
+a0814 4 254 198
+a0818 4 254 198
+a081c 8 254 198
+a0824 8 274 198
+a082c 18 243 198
+a0844 4 244 198
+a0848 4 244 198
+a084c 8 244 198
+a0854 8 274 198
+a085c 8 397 198
+a0864 8 398 198
+a086c 14 398 198
+a0880 18 398 198
+a0898 4 398 198
+a089c 20 194 198
+a08bc 8 195 198
+a08c4 30 74 239
+a08f4 4 308 238
+a08f8 8 134 223
+a0900 10 311 202
+a0910 c 308 238
+a091c 8 134 223
+a0924 10 311 202
+a0934 10 135 223
+a0944 10 74 239
+a0954 4 308 238
+a0958 8 134 223
+a0960 10 311 202
+a0970 30 74 239
+a09a0 4 308 238
+a09a4 8 134 223
+a09ac 10 311 202
+a09bc c 308 238
+a09c8 8 134 223
+a09d0 10 311 202
+a09e0 8 107 244
+a09e8 8 135 223
+a09f0 c 600 237
+a09fc 8 64 239
+a0a04 c 96 239
+a0a10 18 97 239
+a0a28 8 64 239
+a0a30 c 96 239
+a0a3c 14 97 239
+a0a50 8 64 239
+a0a58 c 96 239
+a0a64 14 97 239
+FUNC a0a78 4 0 std::priv::__write_formatted_time
+a0a78 4 457 198
+FUNC a0a7c a8 0 std::priv::__subformat<char, std::priv::_Time_Info>
+a0a7c 24 148 198
+a0aa0 8 148 198
+a0aa8 8 152 198
+a0ab0 10 153 198
+a0ac0 4 156 198
+a0ac4 4 155 198
+a0ac8 4 156 198
+a0acc 4 155 198
+a0ad0 4 156 198
+a0ad4 4 154 198
+a0ad8 18 159 198
+a0af0 8 152 198
+a0af8 14 163 198
+a0b0c 10 161 198
+a0b1c 8 157 198
+FUNC a0b24 8 0 std::messages<char>::do_open
+a0b24 8 77 220
+FUNC a0b2c 4 0 std::messages<char>::do_close
+a0b2c 4 82 220
+FUNC a0b30 8 0 std::messages<wchar_t>::do_open
+a0b30 8 110 220
+FUNC a0b38 4 0 std::messages<wchar_t>::do_close
+a0b38 4 115 220
+FUNC a0b3c 14 0 std::messages<char>::~messages
+a0b3c 14 74 220
+FUNC a0b50 34 0 std::messages<char>::~messages
+a0b50 14 74 220
+a0b64 10 74 220
+a0b74 4 74 220
+a0b78 8 74 220
+a0b80 4 74 220
+FUNC a0b84 14 0 std::messages<wchar_t>::~messages
+a0b84 14 107 220
+FUNC a0b98 34 0 std::messages<wchar_t>::~messages
+a0b98 14 107 220
+a0bac 10 107 220
+a0bbc 4 107 220
+a0bc0 8 107 220
+a0bc8 4 107 220
+FUNC a0bcc 44 0 std::messages<char>::messages
+a0bcc 4 188 189
+a0bd0 4 86 219
+a0bd4 4 340 241
+a0bd8 8 188 189
+a0be0 4 188 189
+a0be4 4 86 219
+a0be8 4 340 241
+a0bec 4 457 241
+a0bf0 4 340 241
+a0bf4 1c 189 189
+FUNC a0c10 44 0 std::messages<wchar_t>::messages
+a0c10 4 217 189
+a0c14 4 86 219
+a0c18 4 340 241
+a0c1c 8 217 189
+a0c24 4 217 189
+a0c28 4 86 219
+a0c2c 4 340 241
+a0c30 4 457 241
+a0c34 4 340 241
+a0c38 1c 218 189
+FUNC a0c54 28 0 std::messages<char>::do_get
+a0c54 4 78 220
+a0c58 8 80 220
+a0c60 4 78 220
+a0c64 18 80 220
+FUNC a0c7c a8 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string
+a0c7c 14 647 237
+a0c90 4 112 239
+a0c94 c 481 202
+a0ca0 8 378 238
+a0ca8 8 379 238
+a0cb0 c 107 244
+a0cbc c 106 244
+a0cc8 4 107 244
+a0ccc 4 380 238
+a0cd0 4 101 206
+a0cd4 10 649 237
+a0ce4 8 64 239
+a0cec c 96 239
+a0cf8 8 97 239
+a0d00 8 161 202
+a0d08 10 161 202
+a0d18 c 135 223
+FUNC a0d24 28 0 std::messages<wchar_t>::do_get
+a0d24 4 111 220
+a0d28 8 113 220
+a0d30 4 111 220
+a0d34 18 113 220
+FUNC a0d4c 34 0 __popcountdi2
+a0d4c c 846 147
+a0d58 10 847 147
+a0d68 4 849 147
+a0d6c 8 848 147
+a0d74 4 849 147
+a0d78 8 858 147
+FUNC a0d80 aa4 0 __addtf3
+a0d80 1c 36 148
+a0d9c 8 36 148
+a0da4 4 43 148
+a0da8 8 44 148
+a0db0 8 45 148
+a0db8 8 44 148
+a0dc0 4 44 148
+a0dc4 4 46 148
+a0dc8 4 44 148
+a0dcc 4 44 148
+a0dd0 4 45 148
+a0dd4 4 45 148
+a0dd8 4 45 148
+a0ddc 4 44 148
+a0de0 4 44 148
+a0de4 4 45 148
+a0de8 8 45 148
+a0df0 4 46 148
+a0df4 10 46 148
+a0e04 4 46 148
+a0e08 8 46 148
+a0e10 8 46 148
+a0e18 14 46 148
+a0e2c 4 46 148
+a0e30 4 46 148
+a0e34 8 46 148
+a0e3c 8 46 148
+a0e44 8 46 148
+a0e4c c 46 148
+a0e58 4 46 148
+a0e5c 4 46 148
+a0e60 4 46 148
+a0e64 4 46 148
+a0e68 4 46 148
+a0e6c 4 46 148
+a0e70 8 46 148
+a0e78 c 46 148
+a0e84 4 46 148
+a0e88 4 46 148
+a0e8c c 46 148
+a0e98 14 46 148
+a0eac 8 46 148
+a0eb4 4 46 148
+a0eb8 4 46 148
+a0ebc 18 46 148
+a0ed4 8 46 148
+a0edc 4 46 148
+a0ee0 8 46 148
+a0ee8 c 46 148
+a0ef4 8 46 148
+a0efc c 46 148
+a0f08 c 46 148
+a0f14 8 46 148
+a0f1c 8 46 148
+a0f24 14 46 148
+a0f38 4 46 148
+a0f3c 4 46 148
+a0f40 8 46 148
+a0f48 8 46 148
+a0f50 c 46 148
+a0f5c 4 46 148
+a0f60 4 46 148
+a0f64 8 46 148
+a0f6c 4 46 148
+a0f70 4 46 148
+a0f74 8 46 148
+a0f7c c 46 148
+a0f88 4 46 148
+a0f8c 4 46 148
+a0f90 c 46 148
+a0f9c 14 46 148
+a0fb0 8 46 148
+a0fb8 4 46 148
+a0fbc 4 46 148
+a0fc0 c 46 148
+a0fcc 4 45 148
+a0fd0 8 46 148
+a0fd8 18 46 148
+a0ff0 4 46 148
+a0ff4 4 46 148
+a0ff8 8 46 148
+a1000 14 46 148
+a1014 c 46 148
+a1020 8 46 148
+a1028 4 46 148
+a102c 4 46 148
+a1030 4 46 148
+a1034 8 46 148
+a103c c 46 148
+a1048 4 37 148
+a104c 4 46 148
+a1050 8 46 148
+a1058 4 46 148
+a105c 8 46 148
+a1064 8 46 148
+a106c 8 46 148
+a1074 10 46 148
+a1084 4 46 148
+a1088 c 46 148
+a1094 24 46 148
+a10b8 8 37 148
+a10c0 8 46 148
+a10c8 8 46 148
+a10d0 1c 46 148
+a10ec 8 46 148
+a10f4 4 46 148
+a10f8 8 46 148
+a1100 4 46 148
+a1104 2c 46 148
+a1130 8 46 148
+a1138 8 46 148
+a1140 1c 46 148
+a115c c 46 148
+a1168 10 46 148
+a1178 10 46 148
+a1188 4 46 148
+a118c 8 46 148
+a1194 c 46 148
+a11a0 8 46 148
+a11a8 18 46 148
+a11c0 4 46 148
+a11c4 4 46 148
+a11c8 8 46 148
+a11d0 8 46 148
+a11d8 4 46 148
+a11dc 4 44 148
+a11e0 4 46 148
+a11e4 4 44 148
+a11e8 8 46 148
+a11f0 8 46 148
+a11f8 8 46 148
+a1200 c 46 148
+a120c 4 46 148
+a1210 4 46 148
+a1214 4 46 148
+a1218 4 46 148
+a121c 4 46 148
+a1220 4 46 148
+a1224 8 46 148
+a122c c 46 148
+a1238 4 46 148
+a123c 4 46 148
+a1240 c 46 148
+a124c 14 46 148
+a1260 8 46 148
+a1268 4 46 148
+a126c 4 46 148
+a1270 1c 46 148
+a128c 8 46 148
+a1294 4 46 148
+a1298 8 46 148
+a12a0 c 46 148
+a12ac 8 46 148
+a12b4 18 46 148
+a12cc c 46 148
+a12d8 8 46 148
+a12e0 8 46 148
+a12e8 18 46 148
+a1300 4 46 148
+a1304 4 46 148
+a1308 8 46 148
+a1310 8 46 148
+a1318 c 46 148
+a1324 4 46 148
+a1328 4 46 148
+a132c 8 46 148
+a1334 4 46 148
+a1338 4 46 148
+a133c 8 46 148
+a1344 c 46 148
+a1350 4 46 148
+a1354 4 46 148
+a1358 c 46 148
+a1364 14 46 148
+a1378 8 46 148
+a1380 4 46 148
+a1384 4 46 148
+a1388 14 46 148
+a139c c 45 148
+a13a8 18 46 148
+a13c0 4 46 148
+a13c4 4 46 148
+a13c8 4 46 148
+a13cc 14 46 148
+a13e0 4 46 148
+a13e4 18 46 148
+a13fc 18 46 148
+a1414 8 46 148
+a141c 18 46 148
+a1434 c 46 148
+a1440 4 46 148
+a1444 4 46 148
+a1448 4 46 148
+a144c 8 46 148
+a1454 c 46 148
+a1460 4 37 148
+a1464 4 46 148
+a1468 4 46 148
+a146c 4 46 148
+a1470 8 46 148
+a1478 4 46 148
+a147c 30 46 148
+a14ac 4 46 148
+a14b0 10 46 148
+a14c0 4 46 148
+a14c4 c 46 148
+a14d0 c 46 148
+a14dc 18 46 148
+a14f4 1c 46 148
+a1510 c 46 148
+a151c 4 46 148
+a1520 8 46 148
+a1528 4 46 148
+a152c 4 46 148
+a1530 4 46 148
+a1534 4 46 148
+a1538 c 46 148
+a1544 1c 46 148
+a1560 c 46 148
+a156c 10 46 148
+a157c c 46 148
+a1588 c 46 148
+a1594 4 46 148
+a1598 4 46 148
+a159c 8 46 148
+a15a4 4 46 148
+a15a8 4 46 148
+a15ac 8 46 148
+a15b4 c 46 148
+a15c0 4 46 148
+a15c4 4 46 148
+a15c8 c 46 148
+a15d4 18 46 148
+a15ec c 46 148
+a15f8 20 45 148
+a1618 4 47 148
+a161c 1c 47 148
+a1638 4 47 148
+a163c 8 47 148
+a1644 1c 47 148
+a1660 c 47 148
+a166c 8 47 148
+a1674 8 47 148
+a167c 4 47 148
+a1680 14 47 148
+a1694 4 47 148
+a1698 4 47 148
+a169c 4 47 148
+a16a0 4 47 148
+a16a4 4 47 148
+a16a8 14 47 148
+a16bc 4 47 148
+a16c0 4 47 148
+a16c4 4 47 148
+a16c8 8 47 148
+a16d0 18 47 148
+a16e8 c 47 148
+a16f4 8 47 148
+a16fc c 47 148
+a1708 14 47 148
+a171c 4 47 148
+a1720 c 47 148
+a172c 18 47 148
+a1744 8 48 148
+a174c c 48 148
+a1758 4 45 148
+a175c 8 46 148
+a1764 14 45 148
+a1778 10 46 148
+a1788 10 46 148
+a1798 8 46 148
+a17a0 18 46 148
+a17b8 18 46 148
+a17d0 8 37 148
+a17d8 8 44 148
+a17e0 4 46 148
+a17e4 10 47 148
+a17f4 8 47 148
+a17fc 4 46 148
+a1800 4 37 148
+a1804 8 46 148
+a180c 4 46 148
+a1810 4 37 148
+a1814 8 46 148
+a181c 8 51 148
+FUNC a1824 100 0 __eqtf2
+a1824 1c 36 149
+a1840 c 36 149
+a184c 4 42 149
+a1850 c 43 149
+a185c c 44 149
+a1868 c 45 149
+a1874 8 45 149
+a187c 8 45 149
+a1884 8 45 149
+a188c 8 45 149
+a1894 14 45 149
+a18a8 8 45 149
+a18b0 4 45 149
+a18b4 10 45 149
+a18c4 c 46 149
+a18d0 8 46 149
+a18d8 8 46 149
+a18e0 c 46 149
+a18ec c 46 149
+a18f8 4 46 149
+a18fc 4 48 149
+a1900 10 48 149
+a1910 c 46 149
+a191c 8 51 149
+FUNC a1924 13c 0 __getf2
+a1924 18 36 151
+a193c c 36 151
+a1948 4 42 151
+a194c c 43 151
+a1958 8 45 151
+a1960 c 44 151
+a196c 4 45 151
+a1970 c 45 151
+a197c 8 45 151
+a1984 8 45 151
+a198c 4 45 151
+a1990 4 45 151
+a1994 c 45 151
+a19a0 4 45 151
+a19a4 4 45 151
+a19a8 c 45 151
+a19b4 4 45 151
+a19b8 4 45 151
+a19bc 4 45 151
+a19c0 4 44 151
+a19c4 4 45 151
+a19c8 4 45 151
+a19cc 4 43 151
+a19d0 4 45 151
+a19d4 8 45 151
+a19dc 8 45 151
+a19e4 4 45 151
+a19e8 8 45 151
+a19f0 10 45 151
+a1a00 10 45 151
+a1a10 8 45 151
+a1a18 c 45 151
+a1a24 10 45 151
+a1a34 8 45 151
+a1a3c 10 48 151
+a1a4c c 45 151
+a1a58 8 51 151
+FUNC a1a60 6bc 0 __multf3
+a1a60 14 36 152
+a1a74 c 36 152
+a1a80 4 43 152
+a1a84 30 44 152
+a1ab4 4 44 152
+a1ab8 4 44 152
+a1abc 4 44 152
+a1ac0 4 44 152
+a1ac4 8 44 152
+a1acc 8 44 152
+a1ad4 4 44 152
+a1ad8 4 44 152
+a1adc 4 44 152
+a1ae0 4 44 152
+a1ae4 c 44 152
+a1af0 20 44 152
+a1b10 c 44 152
+a1b1c 18 44 152
+a1b34 8 44 152
+a1b3c 18 44 152
+a1b54 10 44 152
+a1b64 4 44 152
+a1b68 4 37 152
+a1b6c 30 45 152
+a1b9c 4 45 152
+a1ba0 4 45 152
+a1ba4 4 45 152
+a1ba8 4 45 152
+a1bac 8 45 152
+a1bb4 8 45 152
+a1bbc 4 45 152
+a1bc0 4 45 152
+a1bc4 4 45 152
+a1bc8 4 45 152
+a1bcc c 45 152
+a1bd8 20 45 152
+a1bf8 c 45 152
+a1c04 14 45 152
+a1c18 8 45 152
+a1c20 18 45 152
+a1c38 10 45 152
+a1c48 4 45 152
+a1c4c 4c 46 152
+a1c98 4 46 152
+a1c9c 8 46 152
+a1ca4 2c 46 152
+a1cd0 8 46 152
+a1cd8 30 46 152
+a1d08 8 46 152
+a1d10 34 46 152
+a1d44 8 46 152
+a1d4c 28 46 152
+a1d74 8 46 152
+a1d7c 54 46 152
+a1dd0 8 46 152
+a1dd8 8 46 152
+a1de0 8 46 152
+a1de8 c 46 152
+a1df4 4 46 152
+a1df8 4 46 152
+a1dfc 4 46 152
+a1e00 4 46 152
+a1e04 4 46 152
+a1e08 8 46 152
+a1e10 c 46 152
+a1e1c 4 46 152
+a1e20 20 46 152
+a1e40 4 46 152
+a1e44 8 46 152
+a1e4c 1c 47 152
+a1e68 14 47 152
+a1e7c 10 47 152
+a1e8c 8 47 152
+a1e94 1c 47 152
+a1eb0 c 47 152
+a1ebc 8 47 152
+a1ec4 8 47 152
+a1ecc 4 47 152
+a1ed0 10 47 152
+a1ee0 4 47 152
+a1ee4 8 47 152
+a1eec 18 47 152
+a1f04 14 47 152
+a1f18 3c 47 152
+a1f54 10 47 152
+a1f64 10 47 152
+a1f74 8 47 152
+a1f7c 10 47 152
+a1f8c 8 47 152
+a1f94 4 47 152
+a1f98 4 47 152
+a1f9c c 47 152
+a1fa8 c 47 152
+a1fb4 4 47 152
+a1fb8 4 47 152
+a1fbc c 47 152
+a1fc8 14 47 152
+a1fdc 8 47 152
+a1fe4 1c 47 152
+a2000 c 47 152
+a200c 8 47 152
+a2014 8 47 152
+a201c 4 47 152
+a2020 10 47 152
+a2030 8 47 152
+a2038 14 47 152
+a204c 8 47 152
+a2054 4 47 152
+a2058 4 47 152
+a205c 8 47 152
+a2064 c 47 152
+a2070 18 47 152
+a2088 28 47 152
+a20b0 4 47 152
+a20b4 8 47 152
+a20bc 8 47 152
+a20c4 10 46 152
+a20d4 4 47 152
+a20d8 8 47 152
+a20e0 c 47 152
+a20ec 18 47 152
+a2104 8 48 152
+a210c 8 48 152
+a2114 8 51 152
+FUNC a211c 64 0 __floatsitf
+a211c 4 41 150
+a2120 4 41 150
+a2124 8 41 150
+a212c 4 41 150
+a2130 4 41 150
+a2134 4 41 150
+a2138 4 41 150
+a213c 4 41 150
+a2140 4 41 150
+a2144 4 41 150
+a2148 c 41 150
+a2154 c 41 150
+a2160 1c 42 150
+a217c 4 45 150
+FUNC a2180 28 0 read_uleb128
+a2180 4 137 157
+a2184 4 133 157
+a2188 4 140 157
+a218c 8 141 157
+a2194 4 142 157
+a2198 4 141 157
+a219c 4 144 157
+a21a0 4 146 157
+a21a4 4 148 157
+FUNC a21a8 40 0 read_sleb128
+a21a8 4 159 157
+a21ac 4 155 157
+a21b0 4 162 157
+a21b4 8 163 157
+a21bc 4 164 157
+a21c0 4 163 157
+a21c4 4 166 157
+a21c8 8 169 157
+a21d0 4 169 157
+a21d4 c 170 157
+a21e0 4 172 157
+a21e4 4 174 157
+FUNC a21e8 f0 0 read_encoded_value_with_base
+a21e8 18 183 157
+a2200 4 198 157
+a2204 8 183 157
+a220c 4 198 157
+a2210 4 201 157
+a2214 c 202 157
+a2220 24 207 157
+a2244 10 217 157
+a2254 c 225 157
+a2260 4 226 157
+a2264 4 228 157
+a2268 8 231 157
+a2270 4 233 157
+a2274 8 235 157
+a227c 4 237 157
+a2280 8 244 157
+a2288 4 246 157
+a228c 8 248 157
+a2294 4 250 157
+a2298 8 252 157
+a22a0 4 254 157
+a22a4 4 257 157
+a22a8 4 260 157
+a22ac 4 263 157
+a22b0 8 263 157
+a22b8 4 262 157
+a22bc 4 264 157
+a22c0 4 265 157
+a22c4 4 269 157
+a22c8 10 271 157
+FUNC a22d8 114 0 init_dwarf_reg_size_table
+a22d8 110 1549 156
+a23e8 4 1550 156
+FUNC a23ec 3c 0 _Unwind_SetSpColumn
+a23ec 4 1368 156
+a23f0 8 1367 156
+a23f8 c 1370 156
+a2404 4 1371 156
+a2408 4 218 156
+a240c 4 312 156
+a2410 8 313 156
+a2418 4 1374 156
+a241c 4 314 156
+a2420 8 1378 156
+FUNC a2428 58 0 _Unwind_GetGR
+a2428 4 225 156
+a242c 4 235 156
+a2430 4 225 156
+a2434 4 235 156
+a2438 4 235 156
+a243c c 236 156
+a2448 4 218 156
+a244c 4 237 156
+a2450 4 236 156
+a2454 4 239 156
+a2458 c 239 156
+a2464 4 115 156
+a2468 4 240 156
+a246c 8 243 156
+a2474 4 244 156
+a2478 8 250 156
+FUNC a2480 10c 0 uw_install_context_1
+a2480 10 1632 156
+a2490 4 218 156
+a2494 4 1632 156
+a2498 4 1632 156
+a249c 4 301 156
+a24a0 8 301 156
+a24a8 8 1638 156
+a24b0 10 1639 156
+a24c0 4 1632 156
+a24c4 8 1664 156
+a24cc 4 1643 156
+a24d0 4 1644 156
+a24d4 8 1646 156
+a24dc 8 1646 156
+a24e4 8 1647 156
+a24ec 4 1647 156
+a24f0 8 1647 156
+a24f8 10 1651 156
+a2508 8 1654 156
+a2510 8 1663 156
+a2518 10 1663 156
+a2528 c 1664 156
+a2534 4 1641 156
+a2538 8 1641 156
+a2540 4 218 156
+a2544 4 301 156
+a2548 4 301 156
+a254c 4 1682 156
+a2550 4 301 156
+a2554 4 1670 156
+a2558 4 1682 156
+a255c 4 1670 156
+a2560 c 255 156
+a256c 10 1678 156
+a257c 10 1683 156
+FUNC a258c 8 0 _Unwind_GetCFA
+a258c 8 264 156
+FUNC a2594 58 0 _Unwind_SetGR
+a2594 4 270 156
+a2598 4 275 156
+a259c 4 270 156
+a25a0 4 275 156
+a25a4 4 275 156
+a25a8 c 276 156
+a25b4 4 218 156
+a25b8 4 276 156
+a25bc 4 278 156
+a25c0 c 278 156
+a25cc 4 280 156
+a25d0 4 281 156
+a25d4 4 286 156
+a25d8 4 284 156
+a25dc 4 286 156
+a25e0 4 287 156
+a25e4 8 293 156
+FUNC a25ec 8 0 _Unwind_GetIP
+a25ec 8 348 156
+FUNC a25f4 14 0 _Unwind_GetIPInfo
+a25f4 4 202 156
+a25f8 4 358 156
+a25fc 4 202 156
+a2600 4 356 156
+a2604 4 358 156
+FUNC a2608 8 0 _Unwind_SetIP
+a2608 4 365 156
+a260c 4 366 156
+FUNC a2610 8 0 _Unwind_GetLanguageSpecificData
+a2610 8 372 156
+FUNC a2618 8 0 _Unwind_GetRegionStart
+a2618 8 378 156
+FUNC a2620 28 0 _Unwind_FindEnclosingFunction
+a2620 4 382 156
+a2624 4 384 156
+a2628 4 382 156
+a262c 8 384 156
+a2634 4 386 156
+a2638 10 389 156
+FUNC a2648 8 0 _Unwind_GetDataRelBase
+a2648 8 396 156
+FUNC a2650 8 0 _Unwind_GetTextRelBase
+a2650 8 402 156
+FUNC a2658 78 0 base_of_encoded_value
+a2658 c 102 157
+a2664 4 103 157
+a2668 4 102 157
+a266c 4 103 157
+a2670 38 106 157
+a26a8 4 121 157
+a26ac 4 116 157
+a26b0 4 121 157
+a26b4 4 114 157
+a26b8 4 121 157
+a26bc 4 118 157
+a26c0 4 120 157
+a26c4 c 121 157
+FUNC a26d0 4f8 0 execute_cfa_program
+a26d0 1c 942 156
+a26ec 4 985 156
+a26f0 c 942 156
+a26fc 4 946 156
+a2700 4 943 156
+a2704 4 985 156
+a2708 4 1209 156
+a270c 4 1210 156
+a2710 4 1215 156
+a2714 4 1169 156
+a2718 8 957 156
+a2720 4 202 156
+a2724 14 958 156
+a2738 8 960 156
+a2740 c 964 156
+a274c 14 965 156
+a2760 8 966 156
+a2768 4 968 156
+a276c 4 969 156
+a2770 8 968 156
+a2778 8 978 156
+a2780 10 983 156
+a2790 18 985 156
+a27a8 4 991 156
+a27ac 14 282 157
+a27c0 18 282 157
+a27d8 8 993 156
+a27e0 4 995 156
+a27e4 4 998 156
+a27e8 4 999 156
+a27ec c 998 156
+a27f8 4 1000 156
+a27fc 4 1002 156
+a2800 4 1003 156
+a2804 c 1002 156
+a2810 4 1004 156
+a2814 4 1006 156
+a2818 4 1007 156
+a281c c 1006 156
+a2828 4 1008 156
+a282c c 1011 156
+a2838 c 1012 156
+a2844 c 1013 156
+a2850 10 1032 156
+a2860 4 1033 156
+a2864 8 1034 156
+a286c c 1035 156
+a2878 10 1039 156
+a2888 4 1040 156
+a288c 8 1041 156
+a2894 10 1042 156
+a28a4 c 1051 156
+a28b0 c 1052 156
+a28bc 4 1053 156
+a28c0 c 1054 156
+a28cc c 1056 156
+a28d8 8 1057 156
+a28e0 8 1065 156
+a28e8 8 1068 156
+a28f0 8 1071 156
+a28f8 10 1073 156
+a2908 4 1074 156
+a290c 4 1076 156
+a2910 4 1080 156
+a2914 14 1081 156
+a2928 8 1082 156
+a2930 8 1085 156
+a2938 c 1088 156
+a2944 8 1089 156
+a294c c 1090 156
+a2958 c 1091 156
+a2964 10 1096 156
+a2974 8 1097 156
+a297c 4 1098 156
+a2980 4 1099 156
+a2984 10 1102 156
+a2994 8 1103 156
+a299c 4 1109 156
+a29a0 4 1108 156
+a29a4 4 1109 156
+a29a8 8 1110 156
+a29b0 c 1115 156
+a29bc 4 1116 156
+a29c0 c 1117 156
+a29cc c 1119 156
+a29d8 c 1128 156
+a29e4 c 1129 156
+a29f0 c 1130 156
+a29fc 4 1131 156
+a2a00 10 1132 156
+a2a10 8 1134 156
+a2a18 c 1140 156
+a2a24 8 1141 156
+a2a2c 8 1142 156
+a2a34 4 1144 156
+a2a38 4 1142 156
+a2a3c 10 1145 156
+a2a4c 4 1146 156
+a2a50 14 1149 156
+a2a64 c 1156 156
+a2a70 c 1157 156
+a2a7c c 1158 156
+a2a88 c 1168 156
+a2a94 c 1169 156
+a2aa0 c 1170 156
+a2aac 4 1171 156
+a2ab0 c 1172 156
+a2abc 10 1174 156
+a2acc c 1180 156
+a2ad8 4 1181 156
+a2adc c 1182 156
+a2ae8 c 1184 156
+a2af4 4 1185 156
+a2af8 8 1187 156
+a2b00 8 1188 156
+a2b08 4 1189 156
+a2b0c 10 1194 156
+a2b1c 4 1196 156
+a2b20 4 1194 156
+a2b24 4 1197 156
+a2b28 10 1194 156
+a2b38 10 1202 156
+a2b48 8 1203 156
+a2b50 4 1204 156
+a2b54 c 1209 156
+a2b60 c 1210 156
+a2b6c c 1211 156
+a2b78 4 1212 156
+a2b7c c 1213 156
+a2b88 8 1216 156
+a2b90 4 1215 156
+a2b94 8 1216 156
+a2b9c c 1221 156
+a2ba8 20 1224 156
+FUNC a2bc8 41c 0 uw_frame_state_for
+a2bc8 4 1233 156
+a2bcc 4 1238 156
+a2bd0 14 1233 156
+a2be4 8 1238 156
+a2bec c 1233 156
+a2bf8 4 1238 156
+a2bfc 4 1239 156
+a2c00 4 1242 156
+a2c04 4 1240 156
+a2c08 4 1242 156
+a2c0c 8 1243 156
+a2c14 8 202 156
+a2c1c 4 1245 156
+a2c20 10 1245 156
+a2c30 4 1247 156
+a2c34 4 60 145
+a2c38 14 71 145
+a2c4c 18 71 145
+a2c64 4 76 145
+a2c68 8 84 145
+a2c70 c 85 145
+a2c7c c 83 145
+a2c88 4 85 145
+a2c8c 4 89 145
+a2c90 8 90 145
+a2c98 c 87 145
+a2ca4 c 100 145
+a2cb0 8 115 145
+a2cb8 4 101 145
+a2cbc 4 100 145
+a2cc0 18 105 145
+a2cd8 c 115 145
+a2ce4 4 133 145
+a2ce8 8 111 145
+a2cf0 c 102 145
+a2cfc 4 143 145
+a2d00 4 142 145
+a2d04 4 143 145
+a2d08 4 145 145
+a2d0c 4 143 145
+a2d10 8 147 145
+a2d18 4 149 145
+a2d1c 4 142 145
+a2d20 4 149 145
+a2d24 4 151 145
+a2d28 4 148 145
+a2d2c 8 151 145
+a2d34 4 1259 156
+a2d38 4 157 155
+a2d3c 4 1259 156
+a2d40 8 157 155
+a2d48 4 415 156
+a2d4c c 416 156
+a2d58 4 423 156
+a2d5c 4 416 156
+a2d60 8 423 156
+a2d68 c 423 156
+a2d74 4 173 156
+a2d78 4 427 156
+a2d7c 4 425 156
+a2d80 c 433 156
+a2d8c c 435 156
+a2d98 8 435 156
+a2da0 4 437 156
+a2da4 c 441 156
+a2db0 8 442 156
+a2db8 c 443 156
+a2dc4 8 444 156
+a2dcc c 445 156
+a2dd8 c 446 156
+a2de4 8 449 156
+a2dec 8 450 156
+a2df4 8 452 156
+a2dfc 4 417 156
+a2e00 c 457 156
+a2e0c 4 459 156
+a2e10 4 463 156
+a2e14 4 459 156
+a2e18 4 460 156
+a2e1c 8 462 156
+a2e24 8 460 156
+a2e2c 4 496 156
+a2e30 4 282 157
+a2e34 8 467 156
+a2e3c 8 470 156
+a2e44 c 472 156
+a2e50 8 477 156
+a2e58 10 479 156
+a2e68 8 484 156
+a2e70 4 488 156
+a2e74 4 282 157
+a2e78 4 488 156
+a2e7c c 282 157
+a2e88 10 282 157
+a2e98 c 489 156
+a2ea4 8 494 156
+a2eac c 496 156
+a2eb8 c 506 156
+a2ec4 4 494 156
+a2ec8 4 1263 156
+a2ecc 4 163 155
+a2ed0 8 1269 156
+a2ed8 4 163 155
+a2edc 8 1269 156
+a2ee4 4 1273 156
+a2ee8 8 74 157
+a2ef0 24 77 157
+a2f14 8 82 157
+a2f1c 8 84 157
+a2f24 4 88 157
+a2f28 8 75 157
+a2f30 4 80 157
+a2f34 4 1275 156
+a2f38 8 1273 156
+a2f40 4 1274 156
+a2f44 4 1273 156
+a2f48 4 1275 156
+a2f4c c 1278 156
+a2f58 4 1279 156
+a2f5c 4 1278 156
+a2f60 4 1279 156
+a2f64 c 1281 156
+a2f70 10 282 157
+a2f80 14 282 157
+a2f94 8 1286 156
+a2f9c 4 163 155
+a2fa0 4 1291 156
+a2fa4 8 1293 156
+a2fac 4 163 155
+a2fb0 c 1293 156
+a2fbc 8 1295 156
+a2fc4 4 1265 156
+a2fc8 1c 1296 156
+FUNC a2fe4 598 0 execute_stack_op
+a2fe4 14 516 156
+a2ff8 4 520 156
+a2ffc 8 516 156
+a3004 4 520 156
+a3008 8 516 156
+a3010 4 836 156
+a3014 4 770 156
+a3018 c 516 156
+a3024 4 521 156
+a3028 4 836 156
+a302c 4 801 156
+a3030 4 770 156
+a3034 4 656 156
+a3038 c 523 156
+a3044 8 525 156
+a304c 3c 530 156
+a3088 4 568 156
+a308c 4 569 156
+a3090 4 570 156
+a3094 14 530 156
+a30a8 4 585 156
+a30ac 4 587 156
+a30b0 1c 530 156
+a30cc 8 597 156
+a30d4 c0 530 156
+a3194 c 653 156
+a31a0 14 530 156
+a31b4 8 696 156
+a31bc 4 697 156
+a31c0 4 696 156
+a31c4 c 697 156
+a31d0 c 698 156
+a31dc 10 530 156
+a31ec 4 575 156
+a31f0 4 282 157
+a31f4 4 575 156
+a31f8 c 282 157
+a3204 18 282 157
+a321c 4 564 156
+a3220 4 565 156
+a3224 4 581 156
+a3228 4 583 156
+a322c 8 589 156
+a3234 4 593 156
+a3238 4 594 156
+a323c 4 595 156
+a3240 4 601 156
+a3244 4 602 156
+a3248 4 603 156
+a324c 4 197 156
+a3250 4 611 156
+a3254 10 613 156
+a3264 4 614 156
+a3268 4 615 156
+a326c 14 617 156
+a3280 4 618 156
+a3284 4 619 156
+a3288 10 656 156
+a3298 c 657 156
+a32a4 4 658 156
+a32a8 14 692 156
+a32bc 8 693 156
+a32c4 4 698 156
+a32c8 8 698 156
+a32d0 4 699 156
+a32d4 4 702 156
+a32d8 8 703 156
+a32e0 4 707 156
+a32e4 4 708 156
+a32e8 4 709 156
+a32ec 4 713 156
+a32f0 c 712 156
+a32fc c 713 156
+a3308 8 714 156
+a3310 4 715 156
+a3314 8 718 156
+a331c 8 719 156
+a3324 4 720 156
+a3328 8 725 156
+a3330 4 727 156
+a3334 4 726 156
+a3338 4 727 156
+a333c 4 728 156
+a3340 4 729 156
+a3344 8 736 156
+a334c 4 739 156
+a3350 4 738 156
+a3354 4 737 156
+a3358 4 739 156
+a335c 4 740 156
+a3360 4 741 156
+a3364 4 742 156
+a3368 4 743 156
+a336c 4 753 156
+a3370 4 754 156
+a3374 4 758 156
+a3378 4 756 156
+a337c 3c 758 156
+a33b8 4 798 156
+a33bc 4 799 156
+a33c0 24 770 156
+a33e4 4 773 156
+a33e8 4 774 156
+a33ec 4 776 156
+a33f0 4 777 156
+a33f4 4 779 156
+a33f8 4 780 156
+a33fc 4 795 156
+a3400 4 796 156
+a3404 10 801 156
+a3414 8 802 156
+a341c 4 803 156
+a3420 8 830 156
+a3428 4 831 156
+a342c 4 836 156
+a3430 4 834 156
+a3434 4 836 156
+a3438 4 833 156
+a343c 4 834 156
+a3440 14 836 156
+a3454 8 839 156
+a345c 8 842 156
+a3464 8 845 156
+a346c c 848 156
+a3478 8 851 156
+a3480 8 854 156
+a3488 8 857 156
+a3490 8 860 156
+a3498 8 863 156
+a34a0 8 866 156
+a34a8 8 869 156
+a34b0 c 872 156
+a34bc c 875 156
+a34c8 c 878 156
+a34d4 c 881 156
+a34e0 8 884 156
+a34e8 4 831 156
+a34ec 4 885 156
+a34f0 c 887 156
+a34fc 4 899 156
+a3500 4 898 156
+a3504 4 899 156
+a3508 4 900 156
+a350c 4 903 156
+a3510 4 904 156
+a3514 4 907 156
+a3518 4 185 156
+a351c 4 909 156
+a3520 4 908 156
+a3524 c 909 156
+a3530 4 916 156
+a3534 8 920 156
+a353c 10 921 156
+a354c 4 927 156
+a3550 4 928 156
+a3554 28 930 156
+FUNC a357c 224 0 uw_update_context_1
+a357c 4 1382 156
+a3580 4 1383 156
+a3584 14 1382 156
+a3598 4 1383 156
+a359c 4 1382 156
+a35a0 4 1383 156
+a35a4 4 1382 156
+a35a8 4 1383 156
+a35ac c 1382 156
+a35b8 4 1383 156
+a35bc 8 301 156
+a35c4 8 301 156
+a35cc 8 1405 156
+a35d4 10 1406 156
+a35e4 4 218 156
+a35e8 4 312 156
+a35ec 4 313 156
+a35f0 4 1411 156
+a35f4 4 314 156
+a35f8 10 1411 156
+a3608 10 1423 156
+a3618 1c 1424 156
+a3634 c 255 156
+a3640 8 1415 156
+a3648 4 1436 156
+a364c 4 1432 156
+a3650 c 1436 156
+a365c 4 1435 156
+a3660 4 1436 156
+a3664 4 1483 156
+a3668 4 326 156
+a366c 4 328 156
+a3670 24 1436 156
+a3694 c 1443 156
+a36a0 4 1448 156
+a36a4 4 339 156
+a36a8 8 1448 156
+a36b0 8 1449 156
+a36b8 10 326 156
+a36c8 4 326 156
+a36cc 4 218 156
+a36d0 4 303 156
+a36d4 4 312 156
+a36d8 4 313 156
+a36dc 8 314 156
+a36e4 c 1464 156
+a36f0 14 1465 156
+a3704 4 218 156
+a3708 4 312 156
+a370c 8 313 156
+a3714 c 1474 156
+a3720 c 1483 156
+a372c 18 1484 156
+a3744 4 328 156
+a3748 4 329 156
+a374c 8 1435 156
+a3754 10 1435 156
+a3764 4 208 156
+a3768 14 209 156
+a377c 24 1496 156
+FUNC a37a0 cc 0 uw_init_context_1
+a37a0 1c 1555 156
+a37bc 8 1555 156
+a37c4 10 1561 156
+a37d4 4 1562 156
+a37d8 4 1564 156
+a37dc 4 1566 156
+a37e0 4 1564 156
+a37e4 c 1566 156
+a37f0 4 1567 156
+a37f4 4 1567 156
+a37f8 18 712 144
+a3810 4 1572 156
+a3814 8 1573 156
+a381c 4 1574 156
+a3820 10 1582 156
+a3830 4 1585 156
+a3834 8 1583 156
+a383c 4 1584 156
+a3840 4 1587 156
+a3844 4 1584 156
+a3848 8 1587 156
+a3850 4 1592 156
+a3854 18 1593 156
+FUNC a386c 4c 0 uw_update_context
+a386c c 1505 156
+a3878 8 1505 156
+a3880 4 1506 156
+a3884 14 1514 156
+a3898 8 1518 156
+a38a0 8 255 156
+a38a8 4 1522 156
+a38ac c 1524 156
+FUNC a38b8 c0 0 _Unwind_RaiseException_Phase2
+a38b8 18 40 158
+a38d0 8 40 158
+a38d8 4 48 158
+a38dc 4 52 158
+a38e0 10 48 158
+a38f0 8 1692 156
+a38f8 4 202 156
+a38fc 4 1692 156
+a3900 4 52 158
+a3904 8 52 158
+a390c 4 54 158
+a3910 8 60 158
+a3918 4 71 158
+a391c 4 71 158
+a3920 18 62 158
+a3938 8 64 158
+a3940 c 66 158
+a394c c 73 158
+a3958 4 74 158
+a395c 4 57 158
+a3960 18 77 158
+FUNC a3978 ec 0 _Unwind_ForcedUnwind_Phase2
+a3978 10 144 158
+a3988 4 145 158
+a398c 4 146 158
+a3990 c 144 158
+a399c 8 144 158
+a39a4 4 155 158
+a39a8 8 162 158
+a39b0 c 155 158
+a39bc 4 156 158
+a39c0 4 155 158
+a39c4 8 156 158
+a39cc 4 162 158
+a39d0 1c 163 158
+a39ec 4 165 158
+a39f0 8 170 158
+a39f8 8 173 158
+a3a00 c 1529 156
+a3a0c 4 186 158
+a3a10 18 175 158
+a3a28 4 177 158
+a3a2c 4 175 158
+a3a30 4 177 158
+a3a34 8 179 158
+a3a3c 8 157 158
+a3a44 4 188 158
+a3a48 1c 189 158
+FUNC a3a64 f4 0 __frame_state_for
+a3a64 4 1318 156
+a3a68 4 1323 156
+a3a6c c 1318 156
+a3a78 4 1323 156
+a3a7c 4 1318 156
+a3a80 8 1318 156
+a3a88 8 1323 156
+a3a90 4 1326 156
+a3a94 4 1323 156
+a3a98 4 1326 156
+a3a9c 4 1325 156
+a3aa0 4 1328 156
+a3aa4 4 1325 156
+a3aa8 c 1328 156
+a3ab4 4 1329 156
+a3ab8 4 1328 156
+a3abc 1c 1333 156
+a3ad8 8 1338 156
+a3ae0 10 1339 156
+a3af0 8 1345 156
+a3af8 4 1346 156
+a3afc c 1348 156
+a3b08 c 1336 156
+a3b14 4 1353 156
+a3b18 4 1359 156
+a3b1c 4 1353 156
+a3b20 8 1354 156
+a3b28 8 1355 156
+a3b30 8 1356 156
+a3b38 8 1357 156
+a3b40 18 1360 156
+FUNC a3b58 4 0 _Unwind_DebugHook
+a3b58 4 1613 156
+FUNC a3b5c 188 0 _Unwind_RaiseException
+a3b5c 14 83 158
+a3b70 4 88 158
+a3b74 18 83 158
+a3b8c 8 88 158
+a3b94 4 83 158
+a3b98 4 88 158
+a3b9c c 83 158
+a3ba8 4 89 158
+a3bac 4 88 158
+a3bb0 c 89 158
+a3bbc 4 99 158
+a3bc0 4 89 158
+a3bc4 c 99 158
+a3bd0 8 101 158
+a3bd8 4 105 158
+a3bdc 8 108 158
+a3be4 8 111 158
+a3bec c 122 158
+a3bf8 4 123 158
+a3bfc 18 113 158
+a3c14 8 115 158
+a3c1c c 117 158
+a3c28 8 103 158
+a3c30 4 127 158
+a3c34 8 1692 156
+a3c3c 4 202 156
+a3c40 4 130 158
+a3c44 4 1692 156
+a3c48 4 130 158
+a3c4c 4 128 158
+a3c50 8 130 158
+a3c58 c 131 158
+a3c64 c 132 158
+a3c70 c 135 158
+a3c7c 4 135 158
+a3c80 4 135 158
+a3c84 c 135 158
+a3c90 54 136 158
+FUNC a3ce4 f4 0 _Unwind_ForcedUnwind
+a3ce4 14 197 158
+a3cf8 4 201 158
+a3cfc 28 197 158
+a3d24 c 201 158
+a3d30 4 202 158
+a3d34 8 197 158
+a3d3c 4 201 158
+a3d40 10 202 158
+a3d50 4 204 158
+a3d54 4 205 158
+a3d58 c 207 158
+a3d64 4 208 158
+a3d68 4 212 158
+a3d6c 4 208 158
+a3d70 c 211 158
+a3d7c 4 211 158
+a3d80 4 211 158
+a3d84 c 211 158
+a3d90 48 212 158
+FUNC a3dd8 fc 0 _Unwind_Resume
+a3dd8 14 220 158
+a3dec 4 224 158
+a3df0 14 220 158
+a3e04 8 224 158
+a3e0c 8 220 158
+a3e14 4 224 158
+a3e18 c 220 158
+a3e24 4 225 158
+a3e28 4 224 158
+a3e2c 10 225 158
+a3e3c 8 229 158
+a3e44 10 230 158
+a3e54 c 232 158
+a3e60 8 234 158
+a3e68 4 234 158
+a3e6c c 236 158
+a3e78 4 236 158
+a3e7c 4 236 158
+a3e80 c 236 158
+a3e8c 48 237 158
+FUNC a3ed4 fc 0 _Unwind_Resume_or_Rethrow
+a3ed4 10 245 158
+a3ee4 4 251 158
+a3ee8 2c 245 158
+a3f14 4 245 158
+a3f18 8 251 158
+a3f20 4 252 158
+a3f24 8 262 158
+a3f2c c 254 158
+a3f38 4 255 158
+a3f3c 4 254 158
+a3f40 10 255 158
+a3f50 c 257 158
+a3f5c 8 259 158
+a3f64 4 259 158
+a3f68 c 261 158
+a3f74 4 261 158
+a3f78 4 261 158
+a3f7c c 261 158
+a3f88 48 262 158
+FUNC a3fd0 24 0 _Unwind_DeleteException
+a3fd0 8 269 158
+a3fd8 c 270 158
+a3fe4 8 271 158
+a3fec 8 272 158
+FUNC a3ff4 d0 0 _Unwind_Backtrace
+a3ff4 4 279 158
+a3ff8 4 283 158
+a3ffc 10 279 158
+a400c 4 283 158
+a4010 1c 279 158
+a402c 8 283 158
+a4034 4 290 158
+a4038 8 279 158
+a4040 4 283 158
+a4044 c 290 158
+a4050 4 291 158
+a4054 4 290 158
+a4058 8 291 158
+a4060 c 295 158
+a406c 4 295 158
+a4070 8 299 158
+a4078 c 303 158
+a4084 4 304 158
+a4088 8 292 158
+a4090 4 306 158
+a4094 30 307 158
+FUNC a40c4 28 0 read_uleb128
+a40c4 4 137 157
+a40c8 4 133 157
+a40cc 4 140 157
+a40d0 8 141 157
+a40d8 4 142 157
+a40dc 4 141 157
+a40e0 4 144 157
+a40e4 4 146 157
+a40e8 4 148 157
+FUNC a40ec 40 0 read_sleb128
+a40ec 4 159 157
+a40f0 4 155 157
+a40f4 4 162 157
+a40f8 8 163 157
+a4100 4 164 157
+a4104 4 163 157
+a4108 4 166 157
+a410c 8 169 157
+a4114 4 169 157
+a4118 c 170 157
+a4124 4 172 157
+a4128 4 174 157
+FUNC a412c 1c 0 fde_unencoded_compare
+a412c 4 334 154
+a4130 4 338 154
+a4134 4 335 154
+a4138 8 337 154
+a4140 4 339 154
+a4144 4 342 154
+FUNC a4148 c0 0 frame_downheap
+a4148 c 488 154
+a4154 4 491 154
+a4158 c 488 154
+a4164 10 488 154
+a4174 4 491 154
+a4178 8 491 154
+a4180 c 495 154
+a418c 28 495 154
+a41b4 1c 498 154
+a41d0 4 500 154
+a41d4 4 501 154
+a41d8 c 500 154
+a41e4 c 493 154
+a41f0 18 506 154
+FUNC a4208 b4 0 frame_heapsort
+a4208 c 514 154
+a4214 4 522 154
+a4218 c 514 154
+a4224 c 514 154
+a4230 4 518 154
+a4234 4 528 154
+a4238 4 528 154
+a423c 4 528 154
+a4240 1c 529 154
+a425c c 534 154
+a4268 8 534 154
+a4270 4 536 154
+a4274 4 537 154
+a4278 4 536 154
+a427c 4 537 154
+a4280 4 536 154
+a4284 4 537 154
+a4288 4 536 154
+a428c 8 537 154
+a4294 8 534 154
+a429c 8 537 154
+a42a4 18 540 154
+FUNC a42bc 60 0 size_of_encoded_value
+a42bc 8 73 157
+a42c4 4 74 157
+a42c8 4 73 157
+a42cc 4 74 157
+a42d0 24 77 157
+a42f4 8 82 157
+a42fc 8 84 157
+a4304 4 88 157
+a4308 8 75 157
+a4310 4 80 157
+a4314 8 89 157
+FUNC a431c 60 0 base_from_object
+a431c 8 240 154
+a4324 4 241 154
+a4328 4 240 154
+a432c 4 241 154
+a4330 2c 244 154
+a435c 4 256 154
+a4360 8 252 154
+a4368 8 254 154
+a4370 4 249 154
+a4374 8 258 154
+FUNC a437c 60 0 base_from_cb_data
+a437c 8 133 153
+a4384 4 134 153
+a4388 4 133 153
+a438c 4 134 153
+a4390 2c 137 153
+a43bc 4 149 153
+a43c0 8 145 153
+a43c8 8 147 153
+a43d0 4 142 153
+a43d4 8 151 153
+FUNC a43dc f0 0 read_encoded_value_with_base
+a43dc 18 183 157
+a43f4 4 198 157
+a43f8 8 183 157
+a4400 4 198 157
+a4404 4 201 157
+a4408 c 202 157
+a4414 24 207 157
+a4438 10 217 157
+a4448 c 225 157
+a4454 4 226 157
+a4458 4 228 157
+a445c 8 231 157
+a4464 4 233 157
+a4468 8 235 157
+a4470 4 237 157
+a4474 8 244 157
+a447c 4 246 157
+a4480 8 248 157
+a4488 4 250 157
+a448c 8 252 157
+a4494 4 254 157
+a4498 4 257 157
+a449c 4 260 157
+a44a0 4 263 157
+a44a4 8 263 157
+a44ac 4 262 157
+a44b0 4 264 157
+a44b4 4 265 157
+a44b8 4 269 157
+a44bc 10 271 157
+FUNC a44cc 90 0 fde_single_encoding_compare
+a44cc c 346 154
+a44d8 4 349 154
+a44dc c 346 154
+a44e8 c 349 154
+a44f4 4 346 154
+a44f8 4 346 154
+a44fc 8 349 154
+a4504 14 350 154
+a4518 18 351 154
+a4530 4 353 154
+a4534 4 354 154
+a4538 c 353 154
+a4544 4 355 154
+a4548 14 358 154
+FUNC a455c fc 0 get_cie_encoding
+a455c c 265 154
+a4568 4 271 154
+a456c 4 265 154
+a4570 c 272 154
+a457c 4 273 154
+a4580 4 272 154
+a4584 8 273 154
+a458c 4 275 154
+a4590 4 276 154
+a4594 8 275 154
+a459c 8 275 154
+a45a4 4 278 154
+a45a8 c 281 154
+a45b4 8 282 154
+a45bc 10 284 154
+a45cc 8 285 154
+a45d4 c 286 154
+a45e0 8 287 154
+a45e8 8 289 154
+a45f0 4 292 154
+a45f4 4 291 154
+a45f8 4 304 154
+a45fc 4 292 154
+a4600 c 296 154
+a460c 8 297 154
+a4614 8 299 154
+a461c 1c 304 154
+a4638 8 307 154
+a4640 4 308 154
+a4644 4 312 154
+a4648 4 313 154
+a464c c 314 154
+FUNC a4658 160 0 linear_search_fdes
+a4658 10 799 154
+a4668 4 801 154
+a466c 4 799 154
+a4670 4 801 154
+a4674 4 799 154
+a4678 4 802 154
+a467c c 799 154
+a4688 4 799 154
+a468c 4 801 154
+a4690 4 802 154
+a4694 4 839 154
+a4698 4 802 154
+a469c 4 800 154
+a46a0 4 841 154
+a46a4 4 849 154
+a46a8 8 804 154
+a46b0 8 810 154
+a46b8 c 813 154
+a46c4 8 157 155
+a46cc 8 818 154
+a46d4 c 821 154
+a46e0 c 822 154
+a46ec 4 826 154
+a46f0 4 829 154
+a46f4 4 830 154
+a46f8 4 829 154
+a46fc 4 830 154
+a4700 4 831 154
+a4704 14 857 154
+a4718 8 858 154
+a4720 1c 839 154
+a473c 10 841 154
+a474c 8 847 154
+a4754 4 847 154
+a4758 4 848 154
+a475c 4 851 154
+a4760 4 848 154
+a4764 c 849 154
+a4770 14 853 154
+a4784 14 163 155
+a4798 4 861 154
+a479c 1c 862 154
+FUNC a47b8 10 0 get_fde_encoding
+a47b8 8 157 155
+a47c0 8 319 154
+FUNC a47c8 414 0 _Unwind_IteratePhdrCallback
+a47c8 4 155 153
+a47cc 4 189 153
+a47d0 10 155 153
+a47e0 4 189 153
+a47e4 4 181 153
+a47e8 4 182 153
+a47ec 4 189 153
+a47f0 4 189 153
+a47f4 4 189 153
+a47f8 1c 198 153
+a4814 10 198 153
+a4824 4 207 153
+a4828 4 187 153
+a482c 4 186 153
+a4830 4 207 153
+a4834 4 207 153
+a4838 14 211 153
+a484c 8 212 153
+a4854 4 219 153
+a4858 4 214 153
+a485c 4 215 153
+a4860 4 219 153
+a4864 4 223 153
+a4868 8 221 153
+a4870 4 222 153
+a4874 8 223 153
+a487c 8 230 153
+a4884 18 232 153
+a489c 4 238 153
+a48a0 14 239 153
+a48b4 4 245 153
+a48b8 8 246 153
+a48c0 4 243 153
+a48c4 4 247 153
+a48c8 4 243 153
+a48cc c 249 153
+a48d8 4 250 153
+a48dc 8 251 153
+a48e4 10 256 153
+a48f4 4 262 153
+a48f8 8 168 153
+a4900 4 180 153
+a4904 4 184 153
+a4908 4 183 153
+a490c c 262 153
+a4918 c 264 153
+a4924 4 266 153
+a4928 4 268 153
+a492c 4 266 153
+a4930 8 268 153
+a4938 24 268 153
+a495c 10 275 153
+a496c 10 283 153
+a497c c 262 153
+a4988 4 287 153
+a498c 8 288 153
+a4994 8 290 153
+a499c 8 295 153
+a49a4 8 297 153
+a49ac c 298 153
+a49b8 4 299 153
+a49bc c 302 153
+a49c8 4 303 153
+a49cc 4 304 153
+a49d0 4 305 153
+a49d4 4 306 153
+a49d8 4 311 153
+a49dc 8 316 153
+a49e4 c 317 153
+a49f0 18 353 153
+a4a08 10 353 153
+a4a18 4 362 153
+a4a1c 4 353 153
+a4a20 8 362 153
+a4a28 c 363 153
+a4a34 14 367 153
+a4a48 14 367 153
+a4a5c 8 372 153
+a4a64 8 374 153
+a4a6c 14 388 153
+a4a80 4 387 153
+a4a84 14 390 153
+a4a98 4 397 153
+a4a9c 8 395 153
+a4aa4 8 397 153
+a4aac 14 398 153
+a4ac0 18 400 153
+a4ad8 10 409 153
+a4ae8 8 410 153
+a4af0 c 411 153
+a4afc 4 413 153
+a4b00 14 412 153
+a4b14 1c 414 153
+a4b30 4 415 153
+a4b34 4 416 153
+a4b38 4 417 153
+a4b3c 8 425 153
+a4b44 8 426 153
+a4b4c 4 429 153
+a4b50 4 427 153
+a4b54 4 428 153
+a4b58 4 430 153
+a4b5c 4 429 153
+a4b60 4 430 153
+a4b64 4 424 153
+a4b68 4 427 153
+a4b6c 4 430 153
+a4b70 4 430 153
+a4b74 4 431 153
+a4b78 4 434 153
+a4b7c 14 436 153
+a4b90 4 438 153
+a4b94 10 436 153
+a4ba4 8 439 153
+a4bac 8 441 153
+a4bb4 10 258 153
+a4bc4 4 406 153
+a4bc8 14 442 153
+FUNC a4bdc 9c 0 fde_mixed_encoding_compare
+a4bdc 10 362 154
+a4bec 4 366 154
+a4bf0 4 362 154
+a4bf4 8 362 154
+a4bfc 4 366 154
+a4c00 14 367 154
+a4c14 10 367 154
+a4c24 8 370 154
+a4c2c 14 371 154
+a4c40 10 371 154
+a4c50 4 374 154
+a4c54 4 375 154
+a4c58 c 374 154
+a4c64 4 376 154
+a4c68 10 379 154
+FUNC a4c78 160 0 classify_object_over_fdes
+a4c78 c 607 154
+a4c84 4 611 154
+a4c88 10 607 154
+a4c98 8 607 154
+a4ca0 4 610 154
+a4ca4 4 609 154
+a4ca8 4 608 154
+a4cac 4 638 154
+a4cb0 4 647 154
+a4cb4 8 613 154
+a4cbc 8 619 154
+a4cc4 8 157 155
+a4ccc 8 625 154
+a4cd4 8 628 154
+a4cdc 4 629 154
+a4ce0 4 628 154
+a4ce4 4 629 154
+a4ce8 8 630 154
+a4cf0 14 631 154
+a4d04 10 632 154
+a4d14 c 633 154
+a4d20 c 634 154
+a4d2c 14 635 154
+a4d40 18 638 154
+a4d58 8 645 154
+a4d60 4 645 154
+a4d64 4 646 154
+a4d68 4 649 154
+a4d6c 4 646 154
+a4d70 c 647 154
+a4d7c c 651 154
+a4d88 4 655 154
+a4d8c 4 654 154
+a4d90 8 655 154
+a4d98 c 656 154
+a4da4 14 163 155
+a4db8 4 659 154
+a4dbc 1c 660 154
+FUNC a4dd8 134 0 add_fdes
+a4dd8 10 664 154
+a4de8 4 666 154
+a4dec 4 664 154
+a4df0 4 666 154
+a4df4 4 664 154
+a4df8 4 667 154
+a4dfc c 664 154
+a4e08 4 666 154
+a4e0c 4 664 154
+a4e10 4 667 154
+a4e14 4 701 154
+a4e18 4 667 154
+a4e1c 4 665 154
+a4e20 4 710 154
+a4e24 8 669 154
+a4e2c c 674 154
+a4e38 8 677 154
+a4e40 8 157 155
+a4e48 8 682 154
+a4e50 c 685 154
+a4e5c c 686 154
+a4e68 4 690 154
+a4e6c c 694 154
+a4e78 18 701 154
+a4e90 8 708 154
+a4e98 4 708 154
+a4e9c 4 709 154
+a4ea0 4 712 154
+a4ea4 4 709 154
+a4ea8 c 710 154
+a4eb4 10 714 154
+a4ec4 4 423 154
+a4ec8 14 424 154
+a4edc 14 163 155
+a4ef0 1c 720 154
+FUNC a4f0c 578 0 search_object
+a4f0c 10 956 154
+a4f1c 4 959 154
+a4f20 14 956 154
+a4f34 4 956 154
+a4f38 4 959 154
+a4f3c c 970 154
+a4f48 8 733 154
+a4f50 4 734 154
+a4f54 4 736 154
+a4f58 4 738 154
+a4f5c 8 739 154
+a4f64 8 741 154
+a4f6c 8 742 154
+a4f74 4 755 154
+a4f78 4 754 154
+a4f7c 4 755 154
+a4f80 14 756 154
+a4f94 4 744 154
+a4f98 8 739 154
+a4fa0 8 749 154
+a4fa8 4 750 154
+a4fac 4 749 154
+a4fb0 4 750 154
+a4fb4 4 766 154
+a4fb8 4 767 154
+a4fbc 8 766 154
+a4fc4 4 767 154
+a4fc8 8 766 154
+a4fd0 8 768 154
+a4fd8 4 405 154
+a4fdc 8 408 154
+a4fe4 10 409 154
+a4ff4 4 411 154
+a4ff8 10 412 154
+a5008 c 413 154
+a5014 4 473 154
+a5018 8 472 154
+a5020 c 473 154
+a502c 8 471 154
+a5034 8 471 154
+a503c 4 476 154
+a5040 4 477 154
+a5044 1c 587 154
+a5060 c 588 154
+a506c 8 589 154
+a5074 4 550 154
+a5078 4 551 154
+a507c c 553 154
+a5088 8 556 154
+a5090 4 557 154
+a5094 4 558 154
+a5098 10 563 154
+a50a8 4 565 154
+a50ac 10 566 154
+a50bc 8 590 154
+a50c4 c 787 154
+a50d0 4 788 154
+a50d4 c 790 154
+a50e0 c 966 154
+a50ec 8 967 154
+a50f4 4 972 154
+a50f8 4 926 154
+a50fc 4 941 154
+a5100 4 929 154
+a5104 4 938 154
+a5108 4 941 154
+a510c 4 929 154
+a5110 8 929 154
+a5118 8 931 154
+a5120 8 932 154
+a5128 8 937 154
+a5130 4 938 154
+a5134 4 937 154
+a5138 10 938 154
+a5148 14 938 154
+a515c 10 941 154
+a516c c 943 154
+a5178 10 945 154
+a5188 c 946 154
+a5194 10 932 154
+a51a4 10 974 154
+a51b4 8 873 154
+a51bc 8 873 154
+a51c4 8 875 154
+a51cc 8 876 154
+a51d4 4 879 154
+a51d8 4 880 154
+a51dc 8 882 154
+a51e4 c 884 154
+a51f0 8 885 154
+a51f8 8 875 154
+a5200 4 897 154
+a5204 4 898 154
+a5208 4 896 154
+a520c 4 901 154
+a5210 4 897 154
+a5214 8 898 154
+a521c 4 910 154
+a5220 4 901 154
+a5224 4 908 154
+a5228 8 910 154
+a5230 8 901 154
+a5238 4 903 154
+a523c 4 908 154
+a5240 4 903 154
+a5244 4 908 154
+a5248 8 904 154
+a5250 10 908 154
+a5260 10 910 154
+a5270 c 912 154
+a527c 10 914 154
+a528c c 915 154
+a5298 10 904 154
+a52a8 4 982 154
+a52ac 4 985 154
+a52b0 8 985 154
+a52b8 c 987 154
+a52c4 4 988 154
+a52c8 8 985 154
+a52d0 14 994 154
+a52e4 8 774 154
+a52ec 4 777 154
+a52f0 4 778 154
+a52f4 8 777 154
+a52fc 8 778 154
+a5304 4 777 154
+a5308 8 778 154
+a5310 10 781 154
+a5320 8 575 154
+a5328 c 575 154
+a5334 4 575 154
+a5338 8 577 154
+a5340 c 579 154
+a534c c 582 154
+a5358 c 578 154
+a5364 8 580 154
+a536c 8 584 154
+a5374 c 445 154
+a5380 4 444 154
+a5384 4 445 154
+a5388 4 444 154
+a538c 4 453 154
+a5390 4 457 154
+a5394 8 453 154
+a539c 8 457 154
+a53a4 24 458 154
+a53c8 c 461 154
+a53d4 c 462 154
+a53e0 4 453 154
+a53e4 4 464 154
+a53e8 c 465 154
+a53f4 10 453 154
+a5404 10 475 154
+a5414 2c 558 154
+a5440 4 560 154
+a5444 4 561 154
+a5448 8 560 154
+a5450 14 596 154
+a5464 20 996 154
+FUNC a5484 84 0 __register_frame_info_bases
+a5484 10 79 154
+a5494 4 81 154
+a5498 c 81 154
+a54a4 8 761 144
+a54ac 4 84 154
+a54b0 4 761 144
+a54b4 4 87 154
+a54b8 4 89 154
+a54bc 4 88 154
+a54c0 4 84 154
+a54c4 4 85 154
+a54c8 4 86 154
+a54cc 4 89 154
+a54d0 8 761 144
+a54d8 8 97 154
+a54e0 4 791 144
+a54e4 4 98 154
+a54e8 c 101 154
+a54f4 4 791 144
+a54f8 10 101 154
+FUNC a5508 c 0 __register_frame_info
+a5508 c 106 154
+FUNC a5514 40 0 __register_frame
+a5514 8 111 154
+a551c 4 115 154
+a5520 4 111 154
+a5524 8 115 154
+a552c c 118 154
+a5538 4 119 154
+a553c 8 120 154
+a5544 4 119 154
+a5548 c 120 154
+FUNC a5554 70 0 __register_frame_info_table_bases
+a5554 4 129 154
+a5558 4 130 154
+a555c 8 129 154
+a5564 4 134 154
+a5568 4 761 144
+a556c 4 133 154
+a5570 8 135 154
+a5578 8 761 144
+a5580 4 130 154
+a5584 4 136 154
+a5588 4 131 154
+a558c 4 136 154
+a5590 4 132 154
+a5594 4 136 154
+a5598 4 761 144
+a559c 4 136 154
+a55a0 4 761 144
+a55a4 8 141 154
+a55ac 4 142 154
+a55b0 4 141 154
+a55b4 4 791 144
+a55b8 8 145 154
+a55c0 4 791 144
+FUNC a55c4 c 0 __register_frame_info_table
+a55c4 c 150 154
+FUNC a55d0 2c 0 __register_frame_table
+a55d0 c 155 154
+a55dc 4 155 154
+a55e0 c 156 154
+a55ec 4 157 154
+a55f0 8 158 154
+a55f8 4 157 154
+FUNC a55fc f0 0 __deregister_frame_info_bases
+a55fc 10 174 154
+a560c 4 179 154
+a5610 8 179 154
+a5618 10 761 144
+a5628 4 185 154
+a562c 4 761 144
+a5630 4 185 154
+a5634 4 185 154
+a5638 c 186 154
+a5644 c 189 154
+a5650 c 185 154
+a565c 8 185 154
+a5664 8 193 154
+a566c 8 194 154
+a5674 10 196 154
+a5684 8 199 154
+a568c c 200 154
+a5698 c 206 154
+a56a4 c 209 154
+a56b0 8 193 154
+a56b8 c 791 144
+a56c4 4 216 154
+a56c8 4 216 154
+a56cc c 180 154
+a56d8 14 218 154
+FUNC a56ec 4 0 __deregister_frame_info
+a56ec 4 223 154
+FUNC a56f0 24 0 __deregister_frame
+a56f0 8 228 154
+a56f8 8 230 154
+a5700 4 231 154
+a5704 4 232 154
+a5708 4 231 154
+a570c 8 232 154
+FUNC a5714 190 0 _Unwind_Find_FDE
+a5714 c 446 153
+a5720 4 761 144
+a5724 8 446 153
+a572c 4 761 144
+a5730 4 446 153
+a5734 4 446 153
+a5738 8 761 144
+a5740 4 1010 154
+a5744 4 1010 154
+a5748 c 1011 154
+a5754 10 1013 154
+a5764 8 1014 154
+a576c 8 1010 154
+a5774 c 1020 154
+a5780 4 1024 154
+a5784 4 1025 154
+a5788 4 1024 154
+a578c c 1025 154
+a5798 8 1028 154
+a57a0 4 1028 154
+a57a4 10 1029 154
+a57b4 c 1028 154
+a57c0 4 1031 154
+a57c4 4 1032 154
+a57c8 8 1034 154
+a57d0 4 1020 154
+a57d4 10 791 144
+a57e4 4 1041 154
+a57e8 8 1046 154
+a57f0 4 1050 154
+a57f4 8 1047 154
+a57fc 8 1049 154
+a5804 4 1050 154
+a5808 8 1051 154
+a5810 14 1052 154
+a5824 10 1052 154
+a5834 8 1054 154
+a583c 8 459 153
+a5844 c 461 153
+a5850 4 454 153
+a5854 4 455 153
+a5858 4 456 153
+a585c 4 457 153
+a5860 4 458 153
+a5864 4 461 153
+a5868 4 461 153
+a586c 8 464 153
+a5874 8 466 153
+a587c 8 467 153
+a5884 8 468 153
+a588c 18 471 153
+FUNC a58a4 60 0 __sfp_handle_exceptions
+a58a4 4 36 146
+a58a8 8 38 146
+a58b0 4 42 146
+a58b4 4 44 146
+a58b8 c 46 146
+a58c4 4 50 146
+a58c8 4 52 146
+a58cc c 54 146
+a58d8 4 58 146
+a58dc 4 60 146
+a58e0 8 62 146
+a58e8 4 66 146
+a58ec 4 68 146
+a58f0 c 70 146
+a58fc 4 74 146
+a5900 4 76 146
+PUBLIC 268d4 0 _ZN38ExceptionHandlerTest_SimpleWithFD_Test8TestBodyEv
+PUBLIC 26aa8 0 _ZN7testing13PrintToStringIiEESsRKT_
+PUBLIC 26b30 0 _ZN7testing8internal18CmpHelperOpFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_S4_
+PUBLIC 26c44 0 _ZN7testing8internal11CmpHelperNEIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 26c88 0 _ZN7testing8internal11CmpHelperEQIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 26f1c 0 _ZN7testing13PrintToStringIlEESsRKT_
+PUBLIC 26f78 0 _ZN7testing8internal11CmpHelperEQIllEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 27014 0 _ZN7testing8internal11CmpHelperEQIilEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 2744c 0 _ZN7testing8internal11CmpHelperGTIliEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 27580 0 _ZN53ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test8TestBodyEv
+PUBLIC 27850 0 _ZN7testing13PrintToStringIPvEESsRKT_
+PUBLIC 278d8 0 _ZN7testing8internal18CmpHelperOpFailureIPvS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_S5_
+PUBLIC 279ec 0 _ZN7testing13PrintToStringIjEESsRKT_
+PUBLIC 27a48 0 _ZN7testing8internal11CmpHelperLTIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 27b7c 0 _ZN7testing8internal11CmpHelperEQIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 27c18 0 _ZN7testing8internal18CmpHelperEQFailureI20MDExceptionCodeLinuxjEENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 27d70 0 _ZN7testing13PrintToStringISsEESsRKT_
+PUBLIC 27dcc 0 _ZN7testing8internal11CmpHelperEQISsSsEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 27e8c 0 _ZN40ExceptionHandlerTest_SimpleWithPath_Test8TestBodyEv
+PUBLIC 28074 0 _ZN7testing13PrintToStringImEESsRKT_
+PUBLIC 280d0 0 _ZN7testing8internal11CmpHelperEQImjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 2816c 0 _ZN7testing8internal11CmpHelperEQIjmEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 28208 0 _ZN7testing8internal11CmpHelperEQImmEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 289c8 0 _Z10ChildCrashb
+PUBLIC 28dac 0 _ZN44ExceptionHandlerTest_ChildCrashWithPath_Test8TestBodyEv
+PUBLIC 28e54 0 _ZN42ExceptionHandlerTest_ChildCrashWithFD_Test8TestBodyEv
+PUBLIC 28efc 0 _ZN57ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test8TestBodyEv
+PUBLIC 290a0 0 _ZN55ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test8TestBodyEv
+PUBLIC 29244 0 _ZN56ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test8TestBodyEv
+PUBLIC 293e8 0 _ZN58ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test8TestBodyEv
+PUBLIC 2958c 0 _ZN52ExceptionHandlerTest_RedeliveryToDefaultHandler_Test8TestBodyEv
+PUBLIC 29688 0 _ZN58ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test8TestBodyEv
+PUBLIC 299ac 0 _ZN55ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test8TestBodyEv
+PUBLIC 29ae8 0 _ZN61ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test8TestBodyEv
+PUBLIC 29c24 0 _ZN57ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test8TestBodyEv
+PUBLIC 29d64 0 _ZN58ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test8TestBodyEv
+PUBLIC 29ea4 0 _ZN40ExceptionHandlerTest_ExternalDumper_Test8TestBodyEv
+PUBLIC 2a868 0 _ZN50ExceptionHandlerTest_InstructionPointerMemory_Test8TestBodyEv
+PUBLIC 2b30c 0 _ZN58ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test8TestBodyEv
+PUBLIC 2bcc0 0 _ZN58ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test8TestBodyEv
+PUBLIC 2c678 0 _ZN61ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test8TestBodyEv
+PUBLIC 2cc2c 0 _ZN36ExceptionHandlerTest_ModuleInfo_Test8TestBodyEv
+PUBLIC 2d504 0 _ZN54ExceptionHandlerTest_WriteMinidumpExceptionStream_Test8TestBodyEv
+PUBLIC 2d874 0 _ZN55ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test8TestBodyEv
+PUBLIC 2de2c 0 _ZN42ExceptionHandlerTest_AdditionalMemory_Test8TestBodyEv
+PUBLIC 2e2b4 0 _ZN48ExceptionHandlerTest_AdditionalMemoryRemove_Test8TestBodyEv
+PUBLIC 2e584 0 _ZN47ExceptionHandlerTest_WriteMinidumpForChild_Test8TestBodyEv
+PUBLIC 2eb58 0 _ZN7testing13PrintToStringIPKvEESsRKT_
+PUBLIC 2ebe0 0 _ZN7testing8internal11CmpHelperNEIPcS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 2ff78 0 _ZN26CpuSetTest_EmptyCount_Test8TestBodyEv
+PUBLIC 3003c 0 _ZN22CpuSetTest_OneCpu_Test8TestBodyEv
+PUBLIC 30260 0 _ZN32CpuSetTest_OneCpuTerminated_Test8TestBodyEv
+PUBLIC 30484 0 _ZN32CpuSetTest_TwoCpusWithComma_Test8TestBodyEv
+PUBLIC 306a8 0 _ZN32CpuSetTest_TwoCpusWithRange_Test8TestBodyEv
+PUBLIC 308cc 0 _ZN32CpuSetTest_TenCpusWithRange_Test8TestBodyEv
+PUBLIC 30af0 0 _ZN26CpuSetTest_MultiItems_Test8TestBodyEv
+PUBLIC 30d14 0 _ZN29CpuSetTest_IntersectWith_Test8TestBodyEv
+PUBLIC 31260 0 _ZN32CpuSetTest_SelfIntersection_Test8TestBodyEv
+PUBLIC 314f0 0 _ZN33CpuSetTest_EmptyIntersection_Test8TestBodyEv
+PUBLIC 31af8 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESsNS_9_IdentityISsEENS_11_SetTraitsTISsEESaISsEE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 31d8c 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESsNS_9_IdentityISsEENS_11_SetTraitsTISsEESaISsEE9_M_insertEPNS_18_Rb_tree_node_baseERKSsSA_SA_
+PUBLIC 31e68 0 _ZN39DirectoryReaderTest_CompareResults_Test8TestBodyEv
+PUBLIC 32d34 0 _ZN29LineReaderTest_EmptyFile_Test8TestBodyEv
+PUBLIC 32edc 0 _ZN27LineReaderTest_TooLong_Test8TestBodyEv
+PUBLIC 330b0 0 _ZN7testing8internal18CmpHelperEQFailureIccEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 33198 0 _ZN7testing8internal11CmpHelperEQIccEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 331d4 0 _ZN37LineReaderTest_OneLineTerminated_Test8TestBodyEv
+PUBLIC 33548 0 _ZN27LineReaderTest_OneLine_Test8TestBodyEv
+PUBLIC 338bc 0 _ZN38LineReaderTest_TwoLinesTerminated_Test8TestBodyEv
+PUBLIC 33e24 0 _ZN28LineReaderTest_TwoLines_Test8TestBodyEv
+PUBLIC 3438c 0 _ZN29LineReaderTest_MaxLength_Test8TestBodyEv
+PUBLIC 3483c 0 _ZN7testing8internal18CmpHelperEQFailureIjmEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 34958 0 _ZN38LinuxCoreDumperTest_BuildProcPath_Test8TestBodyEv
+PUBLIC 34e00 0 _ZN54LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test8TestBodyEv
+PUBLIC 35ed8 0 _ZN29LinuxPtraceDumperMappingsTest5SetUpEv
+PUBLIC 36294 0 _ZN37LinuxPtraceDumperChildTest_Setup_Test12RealTestBodyEv
+PUBLIC 362c8 0 _ZN44LinuxPtraceDumperChildTest_FindMappings_Test12RealTestBodyEv
+PUBLIC 364f8 0 _ZN45LinuxPtraceDumperChildTest_BuildProcPath_Test12RealTestBodyEv
+PUBLIC 369f4 0 _ZN44LinuxPtraceDumperChildTest_FileIDsMatch_Test12RealTestBodyEv
+PUBLIC 36eac 0 _ZN42LinuxPtraceDumperChildTest_ThreadList_Test12RealTestBodyEv
+PUBLIC 372b4 0 _ZN50LinuxPtraceDumperChildTest_LinuxGateMappingID_Test12RealTestBodyEv
+PUBLIC 376c0 0 _ZN56LinuxPtraceDumperChildTest_MappingsIncludeLinuxGate_Test12RealTestBodyEv
+PUBLIC 37aa0 0 _ZN49LinuxPtraceDumperMappingsTest_MergedMappings_Test12RealTestBodyEv
+PUBLIC 37e78 0 _ZN61LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test8TestBodyEv
+PUBLIC 3db40 0 _ZN15google_breakpad15GetHelperBinaryEv
+PUBLIC 3e620 0 _ZN36ProcCpuInfoReaderTest_EmptyFile_Test8TestBodyEv
+PUBLIC 3e7cc 0 _ZN44ProcCpuInfoReaderTest_OneLineTerminated_Test8TestBodyEv
+PUBLIC 3eac8 0 _ZN45ProcCpuInfoReaderTest_TwoLinesTerminated_Test8TestBodyEv
+PUBLIC 3eee8 0 _ZN44ProcCpuInfoReaderTest_SkipMalformedLine_Test8TestBodyEv
+PUBLIC 3f1e4 0 _ZN43ProcCpuInfoReaderTest_SkipOneEmptyLine_Test8TestBodyEv
+PUBLIC 3f4e0 0 _ZN41ProcCpuInfoReaderTest_SkipEmptyField_Test8TestBodyEv
+PUBLIC 3f7dc 0 _ZN44ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test8TestBodyEv
+PUBLIC 3fc18 0 _ZN42ProcCpuInfoReaderTest_FieldWithSpaces_Test8TestBodyEv
+PUBLIC 3ff14 0 _ZN37ProcCpuInfoReaderTest_EmptyValue_Test8TestBodyEv
+PUBLIC 402cc 0 _ZN34ProcCpuInfoReaderTest_OneLine_Test8TestBodyEv
+PUBLIC 408a0 0 _ZN7testing8internal18CmpHelperEQFailureIPK9elf64_hdrS4_EENS_15AssertionResultEPKcS7_RKT_RKT0_
+PUBLIC 40988 0 _ZN7testing8internal18CmpHelperEQFailureIPK10elf64_phdrS4_EENS_15AssertionResultEPKcS7_RKT_RKT0_
+PUBLIC 40a70 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 40afc 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE9_M_insertEPNS_18_Rb_tree_node_baseERKiSA_SA_
+PUBLIC 40c18 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE13insert_uniqueERKi
+PUBLIC 40d30 0 _ZN39ElfCoreDumpTest_DefaultConstructor_Test8TestBodyEv
+PUBLIC 410f8 0 _ZN34ElfCoreDumpTest_TestElfHeader_Test8TestBodyEv
+PUBLIC 42350 0 _ZN34ElfCoreDumpTest_ValidCoreFile_Test8TestBodyEv
+PUBLIC 435f8 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 44a34 0 _ZN7testing8internal18CmpHelperOpFailureIjmEENS_15AssertionResultEPKcS4_RKT_RKT0_S4_
+PUBLIC 44e9c 0 _ZN24FileIDTest_ElfClass_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 450ec 0 _ZN23FileIDTest_BuildID_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 45460 0 _ZN25FileIDTest_BuildIDPH_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 4582c 0 _ZN28FileIDTest_UniqueHashes_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 45e7c 0 _ZN24FileIDTest_ElfClass_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 460cc 0 _ZN23FileIDTest_BuildID_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 46440 0 _ZN25FileIDTest_BuildIDPH_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 4680c 0 _ZN28FileIDTest_UniqueHashes_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 47148 0 _ZN32LinuxLibcSupportTest_strlen_Test8TestBodyEv
+PUBLIC 47290 0 _ZN32LinuxLibcSupportTest_strcmp_Test8TestBodyEv
+PUBLIC 473b4 0 _ZN33LinuxLibcSupportTest_strtoui_Test8TestBodyEv
+PUBLIC 47af0 0 _ZN31LinuxLibcSupportTest_uitos_Test8TestBodyEv
+PUBLIC 47e28 0 _ZN34LinuxLibcSupportTest_uint_len_Test8TestBodyEv
+PUBLIC 48354 0 _ZN32LinuxLibcSupportTest_strchr_Test8TestBodyEv
+PUBLIC 487ac 0 _ZN33LinuxLibcSupportTest_strrchr_Test8TestBodyEv
+PUBLIC 48bc4 0 _ZN7testing8internal18CmpHelperEQFailureIPvS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 48c48 0 _ZN7testing8internal11CmpHelperEQIA10_cPvEENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 48d80 0 _ZN32LinuxLibcSupportTest_memchr_Test8TestBodyEv
+PUBLIC 4913c 0 _ZN7testing13PrintToStringIcEESsRKT_
+PUBLIC 49198 0 _ZN7testing8internal11CmpHelperEQIciEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 49234 0 _ZN38LinuxLibcSupportTest_read_hex_ptr_Test8TestBodyEv
+PUBLIC 496b0 0 _ZN42LinuxLibcSupportTest_read_decimal_ptr_Test8TestBodyEv
+PUBLIC 49a9c 0 _ZN15google_breakpad9synth_elf3ELF13AppendSectionERNS1_10ElfSectionE
+PUBLIC 49b10 0 _ZN15google_breakpad9synth_elf3ELF10AddSegmentEiijj
+PUBLIC 49cf0 0 _ZN15google_breakpad9synth_elf5Notes7AddNoteEiRKSsPKhm
+PUBLIC 49f04 0 _ZN15google_breakpad9synth_elf11SymbolTableC2ENS_14test_assembler10EndiannessEmRNS0_11StringTableE
+PUBLIC 49fe4 0 _ZNSt4priv12_Impl_vectorIN15google_breakpad9synth_elf3ELF10ElfSectionESaIS4_EE22_M_insert_overflow_auxEPS4_RKS4_RKSt12__false_typemb
+PUBLIC 4a244 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE9_M_insertEPNS_18_Rb_tree_node_baseERKS8_SG_SG_
+PUBLIC 4a320 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE13insert_uniqueERKS8_
+PUBLIC 4a41c 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE13insert_uniqueENS_17_Rb_tree_iteratorIS8_SC_EERKS8_
+PUBLIC 4a8fc 0 _ZN15google_breakpad9synth_elf11SymbolTable9AddSymbolERKSsjjjt
+PUBLIC 4a9a0 0 _ZN15google_breakpad9synth_elf11SymbolTable9AddSymbolERKSsmmjt
+PUBLIC 4aa44 0 _ZN15google_breakpad9synth_elf3ELF10AddSectionERKSsRKNS_14test_assembler7SectionEjjmjmm
+PUBLIC 4ac54 0 _ZN15google_breakpad9synth_elf3ELF6FinishEv
+PUBLIC 4ad54 0 _ZN15google_breakpad9synth_elf3ELFC1EthNS_14test_assembler10EndiannessE
+PUBLIC 4b264 0 _ZNK15google_breakpad14CrashGenerator21HasDefaultCorePatternEv
+PUBLIC 4b2d0 0 _ZNK15google_breakpad14CrashGenerator11GetThreadIdEj
+PUBLIC 4b2dc 0 _ZN15google_breakpad14CrashGenerator18GetThreadIdPointerEj
+PUBLIC 4b2e8 0 _ZN15google_breakpad14CrashGenerator17UnmapSharedMemoryEv
+PUBLIC 4b340 0 _ZN15google_breakpad14CrashGenerator15MapSharedMemoryEm
+PUBLIC 4b3c8 0 _ZNK15google_breakpad14CrashGenerator20SetCoreFileSizeLimitEm
+PUBLIC 4b40c 0 _ZNK15google_breakpad14CrashGenerator13CopyProcFilesEiPKc
+PUBLIC 4b4e8 0 _ZN15google_breakpad14CrashGenerator27CreateThreadsInChildProcessEj
+PUBLIC 4b6c4 0 _ZN15google_breakpad14CrashGeneratorC1Ev
+PUBLIC 4b6ec 0 _ZN15google_breakpad14CrashGeneratorD2Ev
+PUBLIC 4b71c 0 _ZNK15google_breakpad14CrashGenerator15GetCoreFilePathEv
+PUBLIC 4b748 0 _ZNK15google_breakpad14CrashGenerator27GetDirectoryOfProcFilesCopyEv
+PUBLIC 4b774 0 _ZN15google_breakpad14CrashGenerator16CreateChildCrashEjjiPi
+PUBLIC 4be6c 0 _ZN28PageAllocatorTest_Setup_Test8TestBodyEv
+PUBLIC 4be98 0 _ZN35PageAllocatorTest_SmallObjects_Test8TestBodyEv
+PUBLIC 4bfac 0 _ZN34PageAllocatorTest_LargeObject_Test8TestBodyEv
+PUBLIC 4c250 0 _ZNSt4priv12_Impl_vectorIjN15google_breakpad16PageStdAllocatorIjEEE7reserveEm
+PUBLIC 4c2f8 0 _ZN41WastefulVectorTest_UsesPageAllocator_Test8TestBodyEv
+PUBLIC 4c42c 0 _ZN7testing8internal18CmpHelperEQFailureImjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 4c4e0 0 _ZN29WastefulVectorTest_Setup_Test8TestBodyEv
+PUBLIC 4c5b8 0 _ZN7testing8internal18CmpHelperEQFailureIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 4c63c 0 _ZN30WastefulVectorTest_Simple_Test8TestBodyEv
+PUBLIC 4d4b0 0 _ZN15google_breakpad31NonAllocatingMapTest_Entry_Test8TestBodyEv
+PUBLIC 4dab0 0 _ZN15google_breakpad39NonAllocatingMapTest_CopyAndAssign_Test8TestBodyEv
+PUBLIC 4e440 0 _ZN15google_breakpad35NonAllocatingMapTest_AddRemove_Test8TestBodyEv
+PUBLIC 4eae8 0 _ZN15google_breakpad35NonAllocatingMapTest_Serialize_Test8TestBodyEv
+PUBLIC 4f08c 0 _ZN15google_breakpad36NonAllocatingMapTest_OutOfSpace_Test8TestBodyEv
+PUBLIC 4f2a4 0 _ZN7testing8internal18CmpHelperOpFailureIPKcA7_cEENS_15AssertionResultES3_S3_RKT_RKT0_S3_
+PUBLIC 4f3e8 0 _ZN7testing8internal11CmpHelperNEIPKcA7_cEENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 4f428 0 _ZN15google_breakpad48NonAllocatingMapTest_SimpleStringDictionary_Test8TestBodyEv
+PUBLIC 4f9a4 0 _ZN15google_breakpad34NonAllocatingMapTest_Iterator_Test8TestBodyEv
+PUBLIC 4ffb0 0 _ZN15google_breakpad14test_assembler5LabelC1Ev
+PUBLIC 4ffe8 0 _ZN15google_breakpad14test_assembler5LabelC1Em
+PUBLIC 50028 0 _ZN15google_breakpad14test_assembler5LabelC2ERKS1_
+PUBLIC 50040 0 _ZN15google_breakpad14test_assembler5Label7BindingC2Ev
+PUBLIC 50054 0 _ZN15google_breakpad14test_assembler5Label7BindingC2Em
+PUBLIC 50068 0 _ZN15google_breakpad14test_assembler5Label7BindingD1Ev
+PUBLIC 500c0 0 _ZN15google_breakpad14test_assembler5LabelD2Ev
+PUBLIC 5010c 0 _ZN15google_breakpad14test_assembler5Label7Binding3GetEPPS2_Pm
+PUBLIC 501bc 0 _ZNK15google_breakpad14test_assembler5Label15IsKnownConstantEPm
+PUBLIC 50208 0 _ZNK15google_breakpad14test_assembler5Label5ValueEv
+PUBLIC 50228 0 _ZNK15google_breakpad14test_assembler5Label17IsKnownOffsetFromERKS1_Pm
+PUBLIC 50298 0 _ZNK15google_breakpad14test_assembler5LabelmiERKS1_
+PUBLIC 502b4 0 _ZN15google_breakpad14test_assembler5Label7Binding3SetEPS2_m
+PUBLIC 50380 0 _ZN15google_breakpad14test_assembler5LabelaSEm
+PUBLIC 503b0 0 _ZN15google_breakpad14test_assembler5LabelaSERKS1_
+PUBLIC 503e0 0 _ZNK15google_breakpad14test_assembler5LabelplEm
+PUBLIC 50420 0 _ZNK15google_breakpad14test_assembler5LabelmiEm
+PUBLIC 50468 0 _ZN15google_breakpad14test_assembler7Section5AlignEmh
+PUBLIC 504b0 0 _ZN15google_breakpad14test_assembler7Section6LEB128Ex
+PUBLIC 50508 0 _ZN15google_breakpad14test_assembler7Section7ULEB128Em
+PUBLIC 505d8 0 _ZN15google_breakpad14test_assembler7Section6AppendENS0_10EndiannessEmm
+PUBLIC 5060c 0 _ZN15google_breakpad14test_assembler7Section3L16Et
+PUBLIC 50640 0 _ZN15google_breakpad14test_assembler7Section3L32Ej
+PUBLIC 50674 0 _ZN15google_breakpad14test_assembler7Section3L64Em
+PUBLIC 506a8 0 _ZN15google_breakpad14test_assembler7Section3B16Et
+PUBLIC 506dc 0 _ZN15google_breakpad14test_assembler7Section3B32Ej
+PUBLIC 50710 0 _ZN15google_breakpad14test_assembler7Section3B64Em
+PUBLIC 50744 0 _ZN15google_breakpad14test_assembler7Section3D16Et
+PUBLIC 50778 0 _ZN15google_breakpad14test_assembler7Section3D32Ej
+PUBLIC 507ac 0 _ZN15google_breakpad14test_assembler7Section3D64Em
+PUBLIC 50830 0 _ZN15google_breakpad14test_assembler7Section5ClearEv
+PUBLIC 5095c 0 _ZN15google_breakpad14test_assembler7Section11GetContentsEPSs
+PUBLIC 50a9c 0 _ZNSt4priv12_Impl_vectorIN15google_breakpad14test_assembler7Section9ReferenceESaIS4_EE22_M_insert_overflow_auxEPS4_RKS4_RKSt12__false_typemb
+PUBLIC 50d88 0 _ZN15google_breakpad14test_assembler7Section6AppendENS0_10EndiannessEmRKNS0_5LabelE
+PUBLIC 50e48 0 _ZN15google_breakpad14test_assembler7Section2L8ERKNS0_5LabelE
+PUBLIC 50e58 0 _ZN15google_breakpad14test_assembler7Section2B8ERKNS0_5LabelE
+PUBLIC 50e68 0 _ZN15google_breakpad14test_assembler7Section3L16ERKNS0_5LabelE
+PUBLIC 50e78 0 _ZN15google_breakpad14test_assembler7Section3L32ERKNS0_5LabelE
+PUBLIC 50e88 0 _ZN15google_breakpad14test_assembler7Section3L64ERKNS0_5LabelE
+PUBLIC 50e98 0 _ZN15google_breakpad14test_assembler7Section3B16ERKNS0_5LabelE
+PUBLIC 50ea8 0 _ZN15google_breakpad14test_assembler7Section3B32ERKNS0_5LabelE
+PUBLIC 50eb8 0 _ZN15google_breakpad14test_assembler7Section3B64ERKNS0_5LabelE
+PUBLIC 50ec8 0 _ZN15google_breakpad14test_assembler7Section2D8ERKNS0_5LabelE
+PUBLIC 50ed8 0 _ZN15google_breakpad14test_assembler7Section3D16ERKNS0_5LabelE
+PUBLIC 50ee8 0 _ZN15google_breakpad14test_assembler7Section3D32ERKNS0_5LabelE
+PUBLIC 50ef8 0 _ZN15google_breakpad14test_assembler7Section3D64ERKNS0_5LabelE
+PUBLIC 50f08 0 _ZN15google_breakpad14test_assembler7Section6AppendERKS1_
+PUBLIC 510ec 0 _ZN15google_breakpad8CopyFileEPKcS1_
+PUBLIC 512d0 0 _ZN15google_breakpad8ReadFileEPKcPvPl
+PUBLIC 513d4 0 _ZN15google_breakpad9WriteFileEPKcPKvm
+PUBLIC 51dbc 0 _ZN7testing8internal18CmpHelperEQFailureIPKiS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 51ef4 0 _ZN7testing13PrintToStringIPKhEESsRKT_
+PUBLIC 51f50 0 _ZN7testing8internal11CmpHelperEQIPKhS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 51fec 0 _ZN47MinidumpMemoryRangeTest_DefaultConstructor_Test8TestBodyEv
+PUBLIC 52118 0 _ZN55MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test8TestBodyEv
+PUBLIC 52260 0 _ZN57MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test8TestBodyEv
+PUBLIC 5239c 0 _ZN34MinidumpMemoryRangeTest_Reset_Test8TestBodyEv
+PUBLIC 526d4 0 _ZN32MinidumpMemoryRangeTest_Set_Test8TestBodyEv
+PUBLIC 52914 0 _ZN7testing8internal11CmpHelperEQIPKhPKvEENS_15AssertionResultEPKcS8_RKT_RKT0_
+PUBLIC 529b0 0 _ZN7testing8internal18CmpHelperEQFailureIPKvS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 52a34 0 _ZN61MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test8TestBodyEv
+PUBLIC 52fe0 0 _ZN44MinidumpMemoryRangeTest_GetArrayElement_Test8TestBodyEv
+PUBLIC 531e4 0 _ZN47MinidumpMemoryRangeTest_SubrangeAndGetData_Test8TestBodyEv
+PUBLIC 53820 0 _ZN52MinidumpMemoryRangeTest_GetDataWithTemplateType_Test8TestBodyEv
+PUBLIC 539b0 0 _ZN59MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test8TestBodyEv
+PUBLIC 53b40 0 _ZN7testing8internal11CmpHelperEQIA1_cSsEENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 53bfc 0 _ZN45MinidumpMemoryRangeTest_GetAsciiMDString_Test8TestBodyEv
+PUBLIC 540c4 0 _ZN7testing8internal18CmpHelperEQFailureImmEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 54200 0 _ZN33AndroidUContext_SigmakOffset_Test8TestBodyEv
+PUBLIC 5429c 0 _ZN32AndroidUContext_GRegsOffset_Test8TestBodyEv
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2352c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23534 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2353c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23544 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23560 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23564 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23568 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2356c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23570 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23574 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23578 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2357c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23580 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23584 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23588 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2358c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23590 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23594 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23598 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2359c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235a0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235a4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235a8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ac 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235b0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235b4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235b8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235bc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236d0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236d4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236d8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236e0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236e4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236ec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236f0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236f4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236f8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 236fc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23700 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23704 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23708 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2370c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23710 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23714 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23718 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2371c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23720 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23724 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23728 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2372c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23730 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23734 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23904 3c .cfa: sp 0 + .ra: x30
+STACK CFI 23908 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 23914 .cfa: x29 48 +
+STACK CFI 2393c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23940 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23948 1c .cfa: sp 0 + .ra: x30
+STACK CFI 2394c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 23954 .cfa: x29 16 +
+STACK CFI 23960 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23964 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23978 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2397c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23980 .cfa: x29 32 +
+STACK CFI 23984 x19: .cfa -16 + ^
+STACK CFI 23994 x19: x19
+STACK CFI 23998 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2399c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 239b0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 239b4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 239b8 .cfa: x29 32 +
+STACK CFI 239bc x19: .cfa -16 + ^
+STACK CFI 239cc x19: x19
+STACK CFI 239d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 239d4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 239e8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 239ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 239f0 .cfa: x29 32 +
+STACK CFI 239f4 x19: .cfa -16 + ^
+STACK CFI 23a04 x19: x19
+STACK CFI 23a08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23a0c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23a20 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23a24 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23a28 .cfa: x29 32 +
+STACK CFI 23a2c x19: .cfa -16 + ^
+STACK CFI 23a3c x19: x19
+STACK CFI 23a40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23a44 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23a58 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23a5c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23a60 .cfa: x29 32 +
+STACK CFI 23a64 x19: .cfa -16 + ^
+STACK CFI 23a74 x19: x19
+STACK CFI 23a78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23a7c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23a90 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23a94 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23a98 .cfa: x29 32 +
+STACK CFI 23a9c x19: .cfa -16 + ^
+STACK CFI 23aac x19: x19
+STACK CFI 23ab0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23ab4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23ac8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23acc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23ad0 .cfa: x29 32 +
+STACK CFI 23ad4 x19: .cfa -16 + ^
+STACK CFI 23ae4 x19: x19
+STACK CFI 23ae8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23aec 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23b00 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23b04 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23b08 .cfa: x29 32 +
+STACK CFI 23b0c x19: .cfa -16 + ^
+STACK CFI 23b1c x19: x19
+STACK CFI 23b20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23b24 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23b38 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23b3c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23b40 .cfa: x29 32 +
+STACK CFI 23b44 x19: .cfa -16 + ^
+STACK CFI 23b54 x19: x19
+STACK CFI 23b58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23b5c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23b70 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23b74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23b78 .cfa: x29 32 +
+STACK CFI 23b7c x19: .cfa -16 + ^
+STACK CFI 23b8c x19: x19
+STACK CFI 23b90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23b94 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23ba8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23bac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23bb0 .cfa: x29 32 +
+STACK CFI 23bb4 x19: .cfa -16 + ^
+STACK CFI 23bc4 x19: x19
+STACK CFI 23bc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23bcc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23be0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23be4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23be8 .cfa: x29 32 +
+STACK CFI 23bec x19: .cfa -16 + ^
+STACK CFI 23bfc x19: x19
+STACK CFI 23c00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23c04 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23c18 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23c1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23c20 .cfa: x29 32 +
+STACK CFI 23c24 x19: .cfa -16 + ^
+STACK CFI 23c34 x19: x19
+STACK CFI 23c38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23c3c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23c50 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23c54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23c58 .cfa: x29 32 +
+STACK CFI 23c5c x19: .cfa -16 + ^
+STACK CFI 23c6c x19: x19
+STACK CFI 23c70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23c74 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23c88 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23c8c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23c90 .cfa: x29 32 +
+STACK CFI 23c94 x19: .cfa -16 + ^
+STACK CFI 23ca4 x19: x19
+STACK CFI 23ca8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23cac 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23cc0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23cc4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23cc8 .cfa: x29 32 +
+STACK CFI 23ccc x19: .cfa -16 + ^
+STACK CFI 23cdc x19: x19
+STACK CFI 23ce0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23ce4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23cf8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23cfc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23d00 .cfa: x29 32 +
+STACK CFI 23d04 x19: .cfa -16 + ^
+STACK CFI 23d14 x19: x19
+STACK CFI 23d18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23d1c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23d30 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23d34 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23d38 .cfa: x29 32 +
+STACK CFI 23d3c x19: .cfa -16 + ^
+STACK CFI 23d4c x19: x19
+STACK CFI 23d50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23d54 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23d68 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23d6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23d70 .cfa: x29 32 +
+STACK CFI 23d74 x19: .cfa -16 + ^
+STACK CFI 23d84 x19: x19
+STACK CFI 23d88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23d8c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23da0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23da4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23da8 .cfa: x29 32 +
+STACK CFI 23dac x19: .cfa -16 + ^
+STACK CFI 23dbc x19: x19
+STACK CFI 23dc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23dc4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23dd8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23ddc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23de0 .cfa: x29 32 +
+STACK CFI 23de4 x19: .cfa -16 + ^
+STACK CFI 23df4 x19: x19
+STACK CFI 23df8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23dfc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23e10 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23e14 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23e18 .cfa: x29 32 +
+STACK CFI 23e1c x19: .cfa -16 + ^
+STACK CFI 23e2c x19: x19
+STACK CFI 23e30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23e34 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23e48 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23e4c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23e50 .cfa: x29 32 +
+STACK CFI 23e54 x19: .cfa -16 + ^
+STACK CFI 23e64 x19: x19
+STACK CFI 23e68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23e6c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23e80 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23e84 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23e88 .cfa: x29 32 +
+STACK CFI 23e8c x19: .cfa -16 + ^
+STACK CFI 23e9c x19: x19
+STACK CFI 23ea0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23ea4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23eb8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23ebc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23ec0 .cfa: x29 32 +
+STACK CFI 23ec4 x19: .cfa -16 + ^
+STACK CFI 23ed4 x19: x19
+STACK CFI 23ed8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23edc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23ef0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 23ef4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23ef8 .cfa: x29 32 +
+STACK CFI 23efc x19: .cfa -16 + ^
+STACK CFI 23f0c x19: x19
+STACK CFI 23f10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23f14 194 .cfa: sp 0 + .ra: x30
+STACK CFI 23f18 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 23f1c .cfa: x29 208 +
+STACK CFI 23f20 x19: .cfa -192 + ^ x20: .cfa -184 + ^
+STACK CFI 23f2c x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 2409c x19: x19 x20: x20
+STACK CFI 240a0 x21: x21 x22: x22
+STACK CFI 240a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 240a8 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 240ac .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 240b4 .cfa: x29 64 +
+STACK CFI 240bc x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 24170 x19: x19 x20: x20
+STACK CFI 24174 x21: x21 x22: x22
+STACK CFI 24178 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2417c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24180 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24188 .cfa: x29 32 +
+STACK CFI 2418c x19: .cfa -16 + ^
+STACK CFI 241b0 x19: x19
+STACK CFI 241b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 241b8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 241bc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 241c4 .cfa: x29 32 +
+STACK CFI 241c8 x19: .cfa -16 + ^
+STACK CFI 241ec x19: x19
+STACK CFI 241f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 241f4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 241f8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24200 .cfa: x29 32 +
+STACK CFI 24204 x19: .cfa -16 + ^
+STACK CFI 24228 x19: x19
+STACK CFI 2422c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24230 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24234 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2423c .cfa: x29 32 +
+STACK CFI 24240 x19: .cfa -16 + ^
+STACK CFI 24264 x19: x19
+STACK CFI 24268 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2426c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24270 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24278 .cfa: x29 32 +
+STACK CFI 2427c x19: .cfa -16 + ^
+STACK CFI 242a0 x19: x19
+STACK CFI 242a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 242a8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 242ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 242b4 .cfa: x29 32 +
+STACK CFI 242b8 x19: .cfa -16 + ^
+STACK CFI 242dc x19: x19
+STACK CFI 242e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 242e4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 242e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 242f0 .cfa: x29 32 +
+STACK CFI 242f4 x19: .cfa -16 + ^
+STACK CFI 24318 x19: x19
+STACK CFI 2431c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24320 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24324 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2432c .cfa: x29 32 +
+STACK CFI 24330 x19: .cfa -16 + ^
+STACK CFI 24354 x19: x19
+STACK CFI 24358 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2435c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24360 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24368 .cfa: x29 32 +
+STACK CFI 2436c x19: .cfa -16 + ^
+STACK CFI 24390 x19: x19
+STACK CFI 24394 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24398 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2439c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 243a4 .cfa: x29 32 +
+STACK CFI 243a8 x19: .cfa -16 + ^
+STACK CFI 243cc x19: x19
+STACK CFI 243d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 243d4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 243d8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 243e0 .cfa: x29 32 +
+STACK CFI 243e4 x19: .cfa -16 + ^
+STACK CFI 24408 x19: x19
+STACK CFI 2440c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24410 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24414 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2441c .cfa: x29 32 +
+STACK CFI 24420 x19: .cfa -16 + ^
+STACK CFI 24444 x19: x19
+STACK CFI 24448 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2444c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24450 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24458 .cfa: x29 32 +
+STACK CFI 2445c x19: .cfa -16 + ^
+STACK CFI 24480 x19: x19
+STACK CFI 24484 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24488 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2448c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24494 .cfa: x29 32 +
+STACK CFI 24498 x19: .cfa -16 + ^
+STACK CFI 244bc x19: x19
+STACK CFI 244c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 244c4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 244c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 244d0 .cfa: x29 32 +
+STACK CFI 244d4 x19: .cfa -16 + ^
+STACK CFI 244f8 x19: x19
+STACK CFI 244fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24500 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24504 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2450c .cfa: x29 32 +
+STACK CFI 24510 x19: .cfa -16 + ^
+STACK CFI 24534 x19: x19
+STACK CFI 24538 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2453c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24540 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24548 .cfa: x29 32 +
+STACK CFI 2454c x19: .cfa -16 + ^
+STACK CFI 24570 x19: x19
+STACK CFI 24574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24578 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2457c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24584 .cfa: x29 32 +
+STACK CFI 24588 x19: .cfa -16 + ^
+STACK CFI 245ac x19: x19
+STACK CFI 245b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 245b4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 245b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 245c0 .cfa: x29 32 +
+STACK CFI 245c4 x19: .cfa -16 + ^
+STACK CFI 245e8 x19: x19
+STACK CFI 245ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 245f0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 245f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 245fc .cfa: x29 32 +
+STACK CFI 24600 x19: .cfa -16 + ^
+STACK CFI 24624 x19: x19
+STACK CFI 24628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2462c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24630 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24638 .cfa: x29 32 +
+STACK CFI 2463c x19: .cfa -16 + ^
+STACK CFI 24660 x19: x19
+STACK CFI 24664 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24668 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2466c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24674 .cfa: x29 32 +
+STACK CFI 24678 x19: .cfa -16 + ^
+STACK CFI 2469c x19: x19
+STACK CFI 246a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 246a4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 246a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 246b0 .cfa: x29 32 +
+STACK CFI 246b4 x19: .cfa -16 + ^
+STACK CFI 246d8 x19: x19
+STACK CFI 246dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 246e0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 246e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 246ec .cfa: x29 32 +
+STACK CFI 246f0 x19: .cfa -16 + ^
+STACK CFI 24714 x19: x19
+STACK CFI 24718 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2471c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24720 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24728 .cfa: x29 32 +
+STACK CFI 2472c x19: .cfa -16 + ^
+STACK CFI 24750 x19: x19
+STACK CFI 24754 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24758 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2475c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24764 .cfa: x29 32 +
+STACK CFI 24768 x19: .cfa -16 + ^
+STACK CFI 2478c x19: x19
+STACK CFI 24790 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24918 28 .cfa: sp 0 + .ra: x30
+STACK CFI 2491c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24920 .cfa: x29 32 +
+STACK CFI 24924 x19: .cfa -16 + ^
+STACK CFI 24938 x19: x19
+STACK CFI 2493c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 24d54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24d60 .cfa: x29 32 +
+STACK CFI 24d64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 24da8 x19: x19 x20: x20
+STACK CFI 24dac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24db0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 24db4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24db8 .cfa: x29 48 +
+STACK CFI 24dbc x19: .cfa -32 + ^
+STACK CFI 24e10 x19: x19
+STACK CFI 24e14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e18 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24e1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24e24 .cfa: x29 32 +
+STACK CFI 24e28 x19: .cfa -16 + ^
+STACK CFI 24e44 x19: x19
+STACK CFI 24e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e4c 50 .cfa: sp 0 + .ra: x30
+STACK CFI 24e50 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24e54 .cfa: x29 48 +
+STACK CFI 24e58 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24e94 x19: x19 x20: x20
+STACK CFI 24e98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e9c bc .cfa: sp 0 + .ra: x30
+STACK CFI 24ea0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24ea4 .cfa: x29 64 +
+STACK CFI 24eac x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24f4c x21: x21
+STACK CFI 24f50 x19: x19 x20: x20
+STACK CFI 24f54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24f58 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 24f5c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24f60 .cfa: x29 64 +
+STACK CFI 24f64 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 24f70 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 25034 x19: x19 x20: x20
+STACK CFI 25038 x21: x21 x22: x22
+STACK CFI 2503c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25040 64 .cfa: sp 0 + .ra: x30
+STACK CFI 25044 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25048 .cfa: x29 48 +
+STACK CFI 2504c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25058 x21: .cfa -16 + ^
+STACK CFI 25098 x19: x19 x20: x20
+STACK CFI 2509c x21: x21
+STACK CFI 250a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250fc 4c .cfa: sp 0 + .ra: x30
+STACK CFI 25100 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25104 .cfa: x29 48 +
+STACK CFI 25108 x19: .cfa -32 + ^
+STACK CFI 25140 x19: x19
+STACK CFI 25144 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25148 7c .cfa: sp 0 + .ra: x30
+STACK CFI 2514c .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 25150 .cfa: x29 384 +
+STACK CFI 25154 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 2515c x21: .cfa -352 + ^
+STACK CFI 251b8 x21: x21
+STACK CFI 251bc x19: x19 x20: x20
+STACK CFI 251c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251c4 2c .cfa: sp 0 + .ra: x30
+STACK CFI 251c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 251cc .cfa: x29 32 +
+STACK CFI 251d0 x19: .cfa -16 + ^
+STACK CFI 251e8 x19: x19
+STACK CFI 251ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 258a4 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 258a8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 258ac .cfa: x29 80 +
+STACK CFI 258b4 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 25954 x21: x21
+STACK CFI 2595c x19: x19 x20: x20
+STACK CFI 25960 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25a68 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 25a6c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 25a70 .cfa: x29 80 +
+STACK CFI 25a78 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 25b18 x21: x21
+STACK CFI 25b20 x19: x19 x20: x20
+STACK CFI 25b24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25bb0 164 .cfa: sp 0 + .ra: x30
+STACK CFI 25bb4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 25bbc .cfa: x29 80 +
+STACK CFI 25bc8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 25d04 x23: x23
+STACK CFI 25d08 x19: x19 x20: x20
+STACK CFI 25d0c x21: x21 x22: x22
+STACK CFI 25d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25d14 90 .cfa: sp 0 + .ra: x30
+STACK CFI 25d18 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25d1c .cfa: x29 48 +
+STACK CFI 25d20 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25d2c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 25d98 x19: x19 x20: x20
+STACK CFI 25d9c x21: x21 x22: x22
+STACK CFI 25da0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25da4 234 .cfa: sp 0 + .ra: x30
+STACK CFI 25da8 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 25dac .cfa: x29 272 +
+STACK CFI 25db0 x21: .cfa -240 + ^ x22: .cfa -232 + ^
+STACK CFI 25dc0 x19: .cfa -256 + ^ x20: .cfa -248 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^
+STACK CFI 25dcc x25: .cfa -208 + ^ x26: .cfa -200 + ^
+STACK CFI 25fc4 x19: x19 x20: x20
+STACK CFI 25fc8 x21: x21 x22: x22
+STACK CFI 25fcc x23: x23 x24: x24
+STACK CFI 25fd0 x25: x25 x26: x26
+STACK CFI 25fd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25fd8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 25fdc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25fe0 .cfa: x29 48 +
+STACK CFI 25fe4 x19: .cfa -32 + ^
+STACK CFI 26004 x19: x19
+STACK CFI 26008 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2600c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 26018 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 2601c .cfa: x29 16 +
+STACK CFI 2602c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26030 98 .cfa: sp 0 + .ra: x30
+STACK CFI 26034 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 26038 .cfa: x29 128 +
+STACK CFI 26044 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 260b8 x23: x23
+STACK CFI 260bc x19: x19 x20: x20
+STACK CFI 260c0 x21: x21 x22: x22
+STACK CFI 260c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 260c8 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 260cc .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 260d0 .cfa: x29 80 +
+STACK CFI 260d8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 26178 x21: x21
+STACK CFI 26180 x19: x19 x20: x20
+STACK CFI 26184 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 262e8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 262ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 262f0 .cfa: x29 64 +
+STACK CFI 262f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26334 x19: x19 x20: x20
+STACK CFI 26338 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2633c 104 .cfa: sp 0 + .ra: x30
+STACK CFI 26340 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26348 .cfa: x29 80 +
+STACK CFI 26350 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 26358 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 26430 x23: x23
+STACK CFI 26434 x19: x19 x20: x20
+STACK CFI 26438 x21: x21 x22: x22
+STACK CFI 2643c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26440 8c .cfa: sp 0 + .ra: x30
+STACK CFI 26444 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26448 .cfa: x29 64 +
+STACK CFI 2644c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2645c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 264c0 x19: x19 x20: x20
+STACK CFI 264c4 x21: x21 x22: x22
+STACK CFI 264c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 264cc 370 .cfa: sp 0 + .ra: x30
+STACK CFI 264d0 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 264d4 .cfa: x29 368 +
+STACK CFI 264e8 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 26824 x19: x19 x20: x20
+STACK CFI 26828 x21: x21 x22: x22
+STACK CFI 2682c x23: x23 x24: x24
+STACK CFI 26830 x25: x25 x26: x26
+STACK CFI 26834 x27: x27 x28: x28
+STACK CFI 26838 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2683c 28 .cfa: sp 0 + .ra: x30
+STACK CFI 26840 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 26848 .cfa: x29 32 +
+STACK CFI 2684c x19: .cfa -16 + ^
+STACK CFI 2685c x19: x19
+STACK CFI 26860 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26864 70 .cfa: sp 0 + .ra: x30
+STACK CFI 26868 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 2686c .cfa: x29 96 +
+STACK CFI 26874 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 268c8 x19: x19 x20: x20
+STACK CFI 268cc x21: x21 x22: x22
+STACK CFI 268d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 268d4 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 268d8 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 268dc .cfa: x29 480 +
+STACK CFI 268e0 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 268f4 x19: .cfa -464 + ^ x20: .cfa -456 + ^ x23: .cfa -432 + ^
+STACK CFI 26974 x23: x23
+STACK CFI 26978 x19: x19 x20: x20
+STACK CFI 2697c x21: x21 x22: x22
+STACK CFI 26980 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26aa8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 26aac .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26ab4 .cfa: x29 336 +
+STACK CFI 26ab8 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26ac0 x21: .cfa -304 + ^
+STACK CFI 26b20 x21: x21
+STACK CFI 26b28 x19: x19 x20: x20
+STACK CFI 26b2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26b30 114 .cfa: sp 0 + .ra: x30
+STACK CFI 26b34 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 26b38 .cfa: x29 224 +
+STACK CFI 26b3c x19: .cfa -208 + ^ x20: .cfa -200 + ^
+STACK CFI 26b48 x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 26c30 x23: x23
+STACK CFI 26c38 x19: x19 x20: x20
+STACK CFI 26c3c x21: x21 x22: x22
+STACK CFI 26c40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c44 44 .cfa: sp 0 + .ra: x30
+STACK CFI 26c48 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 26c4c .cfa: x29 32 +
+STACK CFI 26c58 x19: .cfa -16 + ^
+STACK CFI 26c80 x19: x19
+STACK CFI 26c84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26d24 1f8 .cfa: sp 0 + .ra: x30
+STACK CFI 26d28 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 26d2c .cfa: x29 176 +
+STACK CFI 26d38 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 26f0c x23: x23
+STACK CFI 26f10 x19: x19 x20: x20
+STACK CFI 26f14 x21: x21 x22: x22
+STACK CFI 26f18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26f1c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 26f20 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26f28 .cfa: x29 336 +
+STACK CFI 26f2c x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26f34 x21: .cfa -304 + ^
+STACK CFI 26f68 x21: x21
+STACK CFI 26f70 x19: x19 x20: x20
+STACK CFI 26f74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26f78 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26f7c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26f80 .cfa: x29 160 +
+STACK CFI 26f88 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27008 x19: x19 x20: x20
+STACK CFI 2700c x21: x21 x22: x22
+STACK CFI 27010 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27014 9c .cfa: sp 0 + .ra: x30
+STACK CFI 27018 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 2701c .cfa: x29 160 +
+STACK CFI 27024 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 270a4 x19: x19 x20: x20
+STACK CFI 270a8 x21: x21 x22: x22
+STACK CFI 270ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 270b0 39c .cfa: sp 0 + .ra: x30
+STACK CFI 270b4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 270b8 .cfa: x29 176 +
+STACK CFI 270c4 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 270d0 x25: .cfa -112 + ^ x26: .cfa -104 + ^
+STACK CFI 270e0 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 273f8 x19: x19 x20: x20
+STACK CFI 273fc x21: x21 x22: x22
+STACK CFI 27400 x23: x23 x24: x24
+STACK CFI 27404 x25: x25 x26: x26
+STACK CFI 27408 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2740c .cfa: x29 176 + .ra: .cfa -168 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^ x29: .cfa -176 + ^
+STACK CFI 27438 x19: x19 x20: x20
+STACK CFI 2743c x21: x21 x22: x22
+STACK CFI 27440 x23: x23 x24: x24
+STACK CFI 27444 x25: x25 x26: x26
+STACK CFI 27448 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2744c 134 .cfa: sp 0 + .ra: x30
+STACK CFI 27450 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 27454 .cfa: x29 224 +
+STACK CFI 27460 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 27570 x23: x23
+STACK CFI 27574 x19: x19 x20: x20
+STACK CFI 27578 x21: x21 x22: x22
+STACK CFI 2757c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27580 2d0 .cfa: sp 0 + .ra: x30
+STACK CFI 27584 .cfa: sp 480 +
+STACK CFI 27588 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 2758c .cfa: x29 576 +
+STACK CFI 27590 x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 275a4 x19: .cfa -560 + ^ x20: .cfa -552 + ^ x21: .cfa -544 + ^ x22: .cfa -536 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 275b0 x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 27834 x19: x19 x20: x20
+STACK CFI 27838 x21: x21 x22: x22
+STACK CFI 2783c x23: x23 x24: x24
+STACK CFI 27840 x25: x25 x26: x26
+STACK CFI 27844 x27: x27 x28: x28
+STACK CFI 27848 .cfa: sp 480 + .ra: .ra x29: x29
+STACK CFI 2784c .cfa: sp 384 +
+STACK CFI INIT 27850 88 .cfa: sp 0 + .ra: x30
+STACK CFI 27854 .cfa: sp 352 + .ra: .cfa -344 + ^ x29: .cfa -352 + ^
+STACK CFI 2785c .cfa: x29 352 +
+STACK CFI 27860 x19: .cfa -336 + ^ x20: .cfa -328 + ^
+STACK CFI 27870 x21: .cfa -320 + ^
+STACK CFI 278cc x21: x21
+STACK CFI 278d0 x19: x19 x20: x20
+STACK CFI 278d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 278d8 114 .cfa: sp 0 + .ra: x30
+STACK CFI 278dc .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 278e0 .cfa: x29 224 +
+STACK CFI 278e4 x19: .cfa -208 + ^ x20: .cfa -200 + ^
+STACK CFI 278f0 x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 279d8 x23: x23
+STACK CFI 279e0 x19: x19 x20: x20
+STACK CFI 279e4 x21: x21 x22: x22
+STACK CFI 279e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27a48 134 .cfa: sp 0 + .ra: x30
+STACK CFI 27a4c .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 27a50 .cfa: x29 224 +
+STACK CFI 27a5c x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 27b6c x23: x23
+STACK CFI 27b70 x19: x19 x20: x20
+STACK CFI 27b74 x21: x21 x22: x22
+STACK CFI 27b78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27b7c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 27b80 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27b84 .cfa: x29 160 +
+STACK CFI 27b8c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27c0c x19: x19 x20: x20
+STACK CFI 27c10 x21: x21 x22: x22
+STACK CFI 27c14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27c18 158 .cfa: sp 0 + .ra: x30
+STACK CFI 27c1c .cfa: sp 464 + .ra: .cfa -456 + ^ x29: .cfa -464 + ^
+STACK CFI 27c20 .cfa: x29 464 +
+STACK CFI 27c24 x19: .cfa -448 + ^ x20: .cfa -440 + ^
+STACK CFI 27c34 x23: .cfa -416 + ^ x24: .cfa -408 + ^ x25: .cfa -400 + ^ x26: .cfa -392 + ^ x27: .cfa -384 + ^
+STACK CFI 27c48 x21: .cfa -432 + ^ x22: .cfa -424 + ^
+STACK CFI 27d54 x27: x27
+STACK CFI 27d5c x19: x19 x20: x20
+STACK CFI 27d60 x21: x21 x22: x22
+STACK CFI 27d64 x23: x23 x24: x24
+STACK CFI 27d68 x25: x25 x26: x26
+STACK CFI 27d6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27d70 5c .cfa: sp 0 + .ra: x30
+STACK CFI 27d74 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 27d7c .cfa: x29 336 +
+STACK CFI 27d80 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27d88 x21: .cfa -304 + ^
+STACK CFI 27dbc x21: x21
+STACK CFI 27dc4 x19: x19 x20: x20
+STACK CFI 27dc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27dcc c0 .cfa: sp 0 + .ra: x30
+STACK CFI 27dd0 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27dd4 .cfa: x29 160 +
+STACK CFI 27de0 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 27e7c x19: x19 x20: x20
+STACK CFI 27e80 x21: x21 x22: x22
+STACK CFI 27e84 x23: x23 x24: x24
+STACK CFI 27e88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27e8c 1e8 .cfa: sp 0 + .ra: x30
+STACK CFI 27e90 .cfa: sp 448 +
+STACK CFI 27e94 .cfa: sp 512 + .ra: .cfa -504 + ^ x29: .cfa -512 + ^
+STACK CFI 27e98 .cfa: x29 512 +
+STACK CFI 27e9c x21: .cfa -480 + ^ x22: .cfa -472 + ^
+STACK CFI 27eb0 x19: .cfa -496 + ^ x20: .cfa -488 + ^ x23: .cfa -464 + ^ x24: .cfa -456 + ^
+STACK CFI 28060 x19: x19 x20: x20
+STACK CFI 28064 x21: x21 x22: x22
+STACK CFI 28068 x23: x23 x24: x24
+STACK CFI 2806c .cfa: sp 448 + .ra: .ra x29: x29
+STACK CFI 28070 .cfa: sp 384 +
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 280d0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 280d4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 280d8 .cfa: x29 160 +
+STACK CFI 280e0 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28160 x19: x19 x20: x20
+STACK CFI 28164 x21: x21 x22: x22
+STACK CFI 28168 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2816c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 28170 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28174 .cfa: x29 160 +
+STACK CFI 2817c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 281fc x19: x19 x20: x20
+STACK CFI 28200 x21: x21 x22: x22
+STACK CFI 28204 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28208 9c .cfa: sp 0 + .ra: x30
+STACK CFI 2820c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28210 .cfa: x29 160 +
+STACK CFI 28218 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28298 x19: x19 x20: x20
+STACK CFI 2829c x21: x21 x22: x22
+STACK CFI 282a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28540 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 28544 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28548 .cfa: x29 80 +
+STACK CFI 28550 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 285e0 x21: x21
+STACK CFI 285e8 x19: x19 x20: x20
+STACK CFI 285ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 208f4 858 .cfa: sp 0 + .ra: x30
+STACK CFI 208f8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 208fc .cfa: x29 64 +
+STACK CFI 20904 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 21138 x21: x21
+STACK CFI 21140 x19: x19 x20: x20
+STACK CFI 21144 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 289c8 3e4 .cfa: sp 0 + .ra: x30
+STACK CFI 289cc .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 289d0 .cfa: x29 384 +
+STACK CFI 289d4 x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 289e0 x25: .cfa -320 + ^ x26: .cfa -312 + ^ x27: .cfa -304 + ^
+STACK CFI 289f0 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 28d94 x27: x27
+STACK CFI 28d98 x19: x19 x20: x20
+STACK CFI 28d9c x21: x21 x22: x22
+STACK CFI 28da0 x23: x23 x24: x24
+STACK CFI 28da4 x25: x25 x26: x26
+STACK CFI 28da8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28dac a8 .cfa: sp 0 + .ra: x30
+STACK CFI 28db0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 28db4 .cfa: x29 64 +
+STACK CFI 28db8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 28e4c x19: x19 x20: x20
+STACK CFI 28e50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28e54 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 28e58 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 28e5c .cfa: x29 64 +
+STACK CFI 28e60 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 28ef4 x19: x19 x20: x20
+STACK CFI 28ef8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28efc 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 28f00 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 28f04 .cfa: x29 192 +
+STACK CFI 28f08 x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 28f1c x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^
+STACK CFI 29090 x23: x23
+STACK CFI 29094 x19: x19 x20: x20
+STACK CFI 29098 x21: x21 x22: x22
+STACK CFI 2909c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 290a0 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 290a4 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 290a8 .cfa: x29 192 +
+STACK CFI 290ac x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 290c0 x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^
+STACK CFI 29234 x23: x23
+STACK CFI 29238 x19: x19 x20: x20
+STACK CFI 2923c x21: x21 x22: x22
+STACK CFI 29240 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29244 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 29248 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 2924c .cfa: x29 192 +
+STACK CFI 29250 x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 29264 x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^
+STACK CFI 293d8 x23: x23
+STACK CFI 293dc x19: x19 x20: x20
+STACK CFI 293e0 x21: x21 x22: x22
+STACK CFI 293e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 293e8 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 293ec .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 293f0 .cfa: x29 192 +
+STACK CFI 293f4 x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 29408 x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^
+STACK CFI 2957c x23: x23
+STACK CFI 29580 x19: x19 x20: x20
+STACK CFI 29584 x21: x21 x22: x22
+STACK CFI 29588 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2958c fc .cfa: sp 0 + .ra: x30
+STACK CFI 29590 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 29594 .cfa: x29 160 +
+STACK CFI 29598 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 295a0 x21: .cfa -128 + ^
+STACK CFI 2967c x21: x21
+STACK CFI 29680 x19: x19 x20: x20
+STACK CFI 29684 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29688 324 .cfa: sp 0 + .ra: x30
+STACK CFI 2968c .cfa: sp 464 + .ra: .cfa -456 + ^ x29: .cfa -464 + ^
+STACK CFI 29690 .cfa: x29 464 +
+STACK CFI 29694 x23: .cfa -416 + ^ x24: .cfa -408 + ^
+STACK CFI 296a8 x19: .cfa -448 + ^ x20: .cfa -440 + ^ x21: .cfa -432 + ^ x22: .cfa -424 + ^ x25: .cfa -400 + ^ x26: .cfa -392 + ^
+STACK CFI 29998 x19: x19 x20: x20
+STACK CFI 2999c x21: x21 x22: x22
+STACK CFI 299a0 x23: x23 x24: x24
+STACK CFI 299a4 x25: x25 x26: x26
+STACK CFI 299a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 299ac 13c .cfa: sp 0 + .ra: x30
+STACK CFI 299b0 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 299b4 .cfa: x29 416 +
+STACK CFI 299b8 x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 299c4 x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 29adc x19: x19 x20: x20
+STACK CFI 29ae0 x21: x21 x22: x22
+STACK CFI 29ae4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29ae8 13c .cfa: sp 0 + .ra: x30
+STACK CFI 29aec .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 29af0 .cfa: x29 416 +
+STACK CFI 29af4 x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 29b00 x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 29c18 x19: x19 x20: x20
+STACK CFI 29c1c x21: x21 x22: x22
+STACK CFI 29c20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29c24 140 .cfa: sp 0 + .ra: x30
+STACK CFI 29c28 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 29c2c .cfa: x29 416 +
+STACK CFI 29c30 x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 29c3c x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 29d58 x19: x19 x20: x20
+STACK CFI 29d5c x21: x21 x22: x22
+STACK CFI 29d60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29d64 140 .cfa: sp 0 + .ra: x30
+STACK CFI 29d68 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 29d6c .cfa: x29 416 +
+STACK CFI 29d70 x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 29d7c x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 29e98 x19: x19 x20: x20
+STACK CFI 29e9c x21: x21 x22: x22
+STACK CFI 29ea0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 29ea4 9c4 .cfa: sp 0 + .ra: x30
+STACK CFI 29ea8 .cfa: sp 4096 +
+STACK CFI 29eb0 .cfa: sp 5648 +
+STACK CFI 29ebc .cfa: sp 5760 + .ra: .cfa -5752 + ^ x29: .cfa -5760 + ^
+STACK CFI 29ec0 .cfa: x29 5760 +
+STACK CFI 29ec4 x19: .cfa -5744 + ^ x20: .cfa -5736 + ^
+STACK CFI 29ecc x23: .cfa -5712 + ^ x24: .cfa -5704 + ^
+STACK CFI 29ee8 v8: .cfa -5664 + ^ x21: .cfa -5728 + ^ x22: .cfa -5720 + ^ x25: .cfa -5696 + ^ x26: .cfa -5688 + ^ x27: .cfa -5680 + ^ x28: .cfa -5672 + ^
+STACK CFI 2a844 x19: x19 x20: x20
+STACK CFI 2a848 x21: x21 x22: x22
+STACK CFI 2a84c x23: x23 x24: x24
+STACK CFI 2a850 x25: x25 x26: x26
+STACK CFI 2a854 x27: x27 x28: x28
+STACK CFI 2a858 v8: v8
+STACK CFI 2a85c .cfa: sp 5648 + .ra: .ra x29: x29
+STACK CFI 2a860 .cfa: sp 4096 +
+STACK CFI 2a864 .cfa: sp 3984 +
+STACK CFI INIT 2a868 aa4 .cfa: sp 0 + .ra: x30
+STACK CFI 2a86c .cfa: sp 800 +
+STACK CFI 2a870 .cfa: sp 912 + .ra: .cfa -904 + ^ x29: .cfa -912 + ^
+STACK CFI 2a874 .cfa: x29 912 +
+STACK CFI 2a878 x27: .cfa -832 + ^ x28: .cfa -824 + ^
+STACK CFI 2a890 v8: .cfa -816 + ^ x19: .cfa -896 + ^ x20: .cfa -888 + ^ x21: .cfa -880 + ^ x22: .cfa -872 + ^ x23: .cfa -864 + ^ x24: .cfa -856 + ^
+STACK CFI 2a898 x25: .cfa -848 + ^ x26: .cfa -840 + ^
+STACK CFI 2b2ec v8: v8
+STACK CFI 2b2f0 x19: x19 x20: x20
+STACK CFI 2b2f4 x21: x21 x22: x22
+STACK CFI 2b2f8 x23: x23 x24: x24
+STACK CFI 2b2fc x25: x25 x26: x26
+STACK CFI 2b300 x27: x27 x28: x28
+STACK CFI 2b304 .cfa: sp 800 + .ra: .ra x29: x29
+STACK CFI 2b308 .cfa: sp 688 +
+STACK CFI INIT 2b30c 9b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2b310 .cfa: sp 640 +
+STACK CFI 2b314 .cfa: sp 736 + .ra: .cfa -728 + ^ x29: .cfa -736 + ^
+STACK CFI 2b318 .cfa: x29 736 +
+STACK CFI 2b31c x27: .cfa -656 + ^ x28: .cfa -648 + ^
+STACK CFI 2b334 x19: .cfa -720 + ^ x20: .cfa -712 + ^ x21: .cfa -704 + ^ x22: .cfa -696 + ^ x23: .cfa -688 + ^ x24: .cfa -680 + ^ x25: .cfa -672 + ^ x26: .cfa -664 + ^
+STACK CFI 2bca4 x19: x19 x20: x20
+STACK CFI 2bca8 x21: x21 x22: x22
+STACK CFI 2bcac x23: x23 x24: x24
+STACK CFI 2bcb0 x25: x25 x26: x26
+STACK CFI 2bcb4 x27: x27 x28: x28
+STACK CFI 2bcb8 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 2bcbc .cfa: sp 544 +
+STACK CFI INIT 2bcc0 9b8 .cfa: sp 0 + .ra: x30
+STACK CFI 2bcc4 .cfa: sp 640 +
+STACK CFI 2bcc8 .cfa: sp 736 + .ra: .cfa -728 + ^ x29: .cfa -736 + ^
+STACK CFI 2bccc .cfa: x29 736 +
+STACK CFI 2bcd0 x27: .cfa -656 + ^ x28: .cfa -648 + ^
+STACK CFI 2bce8 x19: .cfa -720 + ^ x20: .cfa -712 + ^ x21: .cfa -704 + ^ x22: .cfa -696 + ^ x23: .cfa -688 + ^ x24: .cfa -680 + ^ x25: .cfa -672 + ^ x26: .cfa -664 + ^
+STACK CFI 2c65c x19: x19 x20: x20
+STACK CFI 2c660 x21: x21 x22: x22
+STACK CFI 2c664 x23: x23 x24: x24
+STACK CFI 2c668 x25: x25 x26: x26
+STACK CFI 2c66c x27: x27 x28: x28
+STACK CFI 2c670 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 2c674 .cfa: sp 544 +
+STACK CFI INIT 2c678 5b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2c67c .cfa: sp 512 +
+STACK CFI 2c680 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 2c684 .cfa: x29 608 +
+STACK CFI 2c688 x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 2c6a0 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^ x23: .cfa -560 + ^ x24: .cfa -552 + ^ x27: .cfa -528 + ^ x28: .cfa -520 + ^
+STACK CFI 2cc10 x19: x19 x20: x20
+STACK CFI 2cc14 x21: x21 x22: x22
+STACK CFI 2cc18 x23: x23 x24: x24
+STACK CFI 2cc1c x25: x25 x26: x26
+STACK CFI 2cc20 x27: x27 x28: x28
+STACK CFI 2cc24 .cfa: sp 512 + .ra: .ra x29: x29
+STACK CFI 2cc28 .cfa: sp 416 +
+STACK CFI INIT 2cc2c 8d8 .cfa: sp 0 + .ra: x30
+STACK CFI 2cc30 .cfa: sp 896 +
+STACK CFI 2cc38 .cfa: sp 1024 + .ra: .cfa -1016 + ^ x29: .cfa -1024 + ^
+STACK CFI 2cc3c .cfa: x29 1024 +
+STACK CFI 2cc44 v8: .cfa -928 + ^ v9: .cfa -920 + ^ x21: .cfa -992 + ^ x22: .cfa -984 + ^
+STACK CFI 2cc54 v10: .cfa -912 + ^ x19: .cfa -1008 + ^ x20: .cfa -1000 + ^ x23: .cfa -976 + ^ x24: .cfa -968 + ^
+STACK CFI 2cc60 x25: .cfa -960 + ^ x26: .cfa -952 + ^ x27: .cfa -944 + ^ x28: .cfa -936 + ^
+STACK CFI 2d458 v8: v8 v9: v9
+STACK CFI 2d45c x19: x19 x20: x20
+STACK CFI 2d460 x21: x21 x22: x22
+STACK CFI 2d464 x23: x23 x24: x24
+STACK CFI 2d468 x25: x25 x26: x26
+STACK CFI 2d46c x27: x27 x28: x28
+STACK CFI 2d470 v10: v10
+STACK CFI 2d474 .cfa: sp 896 + .ra: .ra x29: x29
+STACK CFI 2d478 .cfa: sp 768 +
+STACK CFI 2d47c .cfa: x29 1024 + .ra: .cfa -1016 + ^ v10: .cfa -912 + ^ v8: .cfa -928 + ^ v9: .cfa -920 + ^ x19: .cfa -1008 + ^ x20: .cfa -1000 + ^ x21: .cfa -992 + ^ x22: .cfa -984 + ^ x23: .cfa -976 + ^ x24: .cfa -968 + ^ x25: .cfa -960 + ^ x26: .cfa -952 + ^ x27: .cfa -944 + ^ x28: .cfa -936 + ^ x29: .cfa -1024 + ^
+STACK CFI INIT 2d504 370 .cfa: sp 0 + .ra: x30
+STACK CFI 2d508 .cfa: sp 496 +
+STACK CFI 2d50c .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 2d510 .cfa: x29 576 +
+STACK CFI 2d514 x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 2d52c x19: .cfa -560 + ^ x20: .cfa -552 + ^ x21: .cfa -544 + ^ x22: .cfa -536 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 2d85c x19: x19 x20: x20
+STACK CFI 2d860 x21: x21 x22: x22
+STACK CFI 2d864 x23: x23 x24: x24
+STACK CFI 2d868 x25: x25 x26: x26
+STACK CFI 2d86c .cfa: sp 496 + .ra: .ra x29: x29
+STACK CFI 2d870 .cfa: sp 416 +
+STACK CFI INIT 2d874 5b8 .cfa: sp 0 + .ra: x30
+STACK CFI 2d878 .cfa: sp 800 +
+STACK CFI 2d87c .cfa: sp 928 + .ra: .cfa -920 + ^ x29: .cfa -928 + ^
+STACK CFI 2d880 .cfa: x29 928 +
+STACK CFI 2d88c v10: .cfa -816 + ^ v8: .cfa -832 + ^ v9: .cfa -824 + ^
+STACK CFI 2d8a4 x19: .cfa -912 + ^ x20: .cfa -904 + ^ x21: .cfa -896 + ^ x22: .cfa -888 + ^ x23: .cfa -880 + ^ x24: .cfa -872 + ^ x25: .cfa -864 + ^ x26: .cfa -856 + ^ x27: .cfa -848 + ^ x28: .cfa -840 + ^
+STACK CFI 2de08 v8: v8 v9: v9
+STACK CFI 2de0c x19: x19 x20: x20
+STACK CFI 2de10 x21: x21 x22: x22
+STACK CFI 2de14 x23: x23 x24: x24
+STACK CFI 2de18 x25: x25 x26: x26
+STACK CFI 2de1c x27: x27 x28: x28
+STACK CFI 2de20 v10: v10
+STACK CFI 2de24 .cfa: sp 800 + .ra: .ra x29: x29
+STACK CFI 2de28 .cfa: sp 672 +
+STACK CFI INIT 2de2c 488 .cfa: sp 0 + .ra: x30
+STACK CFI 2de30 .cfa: sp 464 +
+STACK CFI 2de38 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 2de3c .cfa: x29 576 +
+STACK CFI 2de40 x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 2de58 v8: .cfa -480 + ^ x19: .cfa -560 + ^ x20: .cfa -552 + ^ x21: .cfa -544 + ^ x22: .cfa -536 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 2e294 v8: v8
+STACK CFI 2e298 x19: x19 x20: x20
+STACK CFI 2e29c x21: x21 x22: x22
+STACK CFI 2e2a0 x23: x23 x24: x24
+STACK CFI 2e2a4 x25: x25 x26: x26
+STACK CFI 2e2a8 x27: x27 x28: x28
+STACK CFI 2e2ac .cfa: sp 464 + .ra: .ra x29: x29
+STACK CFI 2e2b0 .cfa: sp 352 +
+STACK CFI INIT 2e2b4 2d0 .cfa: sp 0 + .ra: x30
+STACK CFI 2e2b8 .cfa: sp 464 +
+STACK CFI 2e2c0 .cfa: sp 544 + .ra: .cfa -536 + ^ x29: .cfa -544 + ^
+STACK CFI 2e2c4 .cfa: x29 544 +
+STACK CFI 2e2d4 x19: .cfa -528 + ^ x20: .cfa -520 + ^ x21: .cfa -512 + ^ x22: .cfa -504 + ^ x23: .cfa -496 + ^ x24: .cfa -488 + ^ x25: .cfa -480 + ^ x26: .cfa -472 + ^
+STACK CFI 2e56c x19: x19 x20: x20
+STACK CFI 2e570 x21: x21 x22: x22
+STACK CFI 2e574 x23: x23 x24: x24
+STACK CFI 2e578 x25: x25 x26: x26
+STACK CFI 2e57c .cfa: sp 464 + .ra: .ra x29: x29
+STACK CFI 2e580 .cfa: sp 384 +
+STACK CFI INIT 2e584 540 .cfa: sp 0 + .ra: x30
+STACK CFI 2e588 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 2e590 .cfa: x29 416 +
+STACK CFI 2e594 x25: .cfa -352 + ^ x26: .cfa -344 + ^
+STACK CFI 2e5b0 x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x27: .cfa -336 + ^ x28: .cfa -328 + ^
+STACK CFI 2eaac x19: x19 x20: x20
+STACK CFI 2eab0 x21: x21 x22: x22
+STACK CFI 2eab4 x23: x23 x24: x24
+STACK CFI 2eab8 x25: x25 x26: x26
+STACK CFI 2eabc x27: x27 x28: x28
+STACK CFI 2eac0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2eac4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2eac8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2eacc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2ead4 .cfa: x29 32 +
+STACK CFI 2ead8 x19: .cfa -16 + ^
+STACK CFI 2eafc x19: x19
+STACK CFI 2eb00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb04 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb08 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2eb1c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2eb20 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2eb24 .cfa: x29 32 +
+STACK CFI 2eb28 x19: .cfa -16 + ^
+STACK CFI 2eb38 x19: x19
+STACK CFI 2eb3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 144 x23: x23
+STACK CFI 148 x19: x19 x20: x20
+STACK CFI 14c x21: x21 x22: x22
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI c .cfa: x29 272 +
+STACK CFI 10 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 20 x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^
+STACK CFI 298 x19: x19 x20: x20
+STACK CFI 29c x21: x21 x22: x22
+STACK CFI 2a0 x23: x23 x24: x24
+STACK CFI 2a4 x25: x25
+STACK CFI 2a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 98 x23: x23
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 262e8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 262ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 262f0 .cfa: x29 64 +
+STACK CFI 262f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26334 x19: x19 x20: x20
+STACK CFI 26338 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26440 8c .cfa: sp 0 + .ra: x30
+STACK CFI 26444 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26448 .cfa: x29 64 +
+STACK CFI 2644c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2645c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 264c0 x19: x19 x20: x20
+STACK CFI 264c4 x21: x21 x22: x22
+STACK CFI 264c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 264cc 370 .cfa: sp 0 + .ra: x30
+STACK CFI 264d0 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 264d4 .cfa: x29 368 +
+STACK CFI 264e8 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 26824 x19: x19 x20: x20
+STACK CFI 26828 x21: x21 x22: x22
+STACK CFI 2682c x23: x23 x24: x24
+STACK CFI 26830 x25: x25 x26: x26
+STACK CFI 26834 x27: x27 x28: x28
+STACK CFI 26838 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26aa8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 26aac .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26ab4 .cfa: x29 336 +
+STACK CFI 26ab8 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26ac0 x21: .cfa -304 + ^
+STACK CFI 26b20 x21: x21
+STACK CFI 26b28 x19: x19 x20: x20
+STACK CFI 26b2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 8 .cfa: x29 224 +
+STACK CFI 14 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 124 x23: x23
+STACK CFI 128 x19: x19 x20: x20
+STACK CFI 12c x21: x21 x22: x22
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb58 88 .cfa: sp 0 + .ra: x30
+STACK CFI 2eb5c .cfa: sp 352 + .ra: .cfa -344 + ^ x29: .cfa -352 + ^
+STACK CFI 2eb64 .cfa: x29 352 +
+STACK CFI 2eb68 x19: .cfa -336 + ^ x20: .cfa -328 + ^
+STACK CFI 2eb78 x21: .cfa -320 + ^
+STACK CFI 2ebd4 x21: x21
+STACK CFI 2ebd8 x19: x19 x20: x20
+STACK CFI 2ebdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2ebe0 148 .cfa: sp 0 + .ra: x30
+STACK CFI 2ebe4 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 2ebe8 .cfa: x29 224 +
+STACK CFI 2ebf4 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 2ed18 x23: x23
+STACK CFI 2ed1c x19: x19 x20: x20
+STACK CFI 2ed20 x21: x21 x22: x22
+STACK CFI 2ed24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2ed28 a7c .cfa: sp 0 + .ra: x30
+STACK CFI 2ed2c .cfa: sp 4096 +
+STACK CFI 2ed30 .cfa: sp 6352 +
+STACK CFI 2ed34 .cfa: sp 6448 + .ra: .cfa -6440 + ^ x29: .cfa -6448 + ^
+STACK CFI 2ed38 .cfa: x29 6448 +
+STACK CFI 2ed3c x19: .cfa -6432 + ^ x20: .cfa -6424 + ^
+STACK CFI 2ed48 x21: .cfa -6416 + ^ x22: .cfa -6408 + ^
+STACK CFI 2ed60 x23: .cfa -6400 + ^ x24: .cfa -6392 + ^ x25: .cfa -6384 + ^ x26: .cfa -6376 + ^ x27: .cfa -6368 + ^ x28: .cfa -6360 + ^
+STACK CFI 2f784 x19: x19 x20: x20
+STACK CFI 2f788 x21: x21 x22: x22
+STACK CFI 2f78c x23: x23 x24: x24
+STACK CFI 2f790 x25: x25 x26: x26
+STACK CFI 2f794 x27: x27 x28: x28
+STACK CFI 2f798 .cfa: sp 6352 + .ra: .ra x29: x29
+STACK CFI 2f79c .cfa: sp 4096 +
+STACK CFI 2f7a0 .cfa: sp 4000 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2114c 6c .cfa: sp 0 + .ra: x30
+STACK CFI 21150 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 21154 .cfa: x29 32 +
+STACK CFI 211b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7a4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7a8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7ac 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7b0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7b4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7b8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7bc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7c8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7cc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7d0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7d4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7d8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7e0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7e4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7ec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f7f0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f7f4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f808 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f80c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f810 .cfa: x29 32 +
+STACK CFI 2f814 x19: .cfa -16 + ^
+STACK CFI 2f824 x19: x19
+STACK CFI 2f828 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f82c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f840 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f844 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f848 .cfa: x29 32 +
+STACK CFI 2f84c x19: .cfa -16 + ^
+STACK CFI 2f85c x19: x19
+STACK CFI 2f860 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f864 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f878 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f87c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f880 .cfa: x29 32 +
+STACK CFI 2f884 x19: .cfa -16 + ^
+STACK CFI 2f894 x19: x19
+STACK CFI 2f898 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f89c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f8b0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f8b4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f8b8 .cfa: x29 32 +
+STACK CFI 2f8bc x19: .cfa -16 + ^
+STACK CFI 2f8cc x19: x19
+STACK CFI 2f8d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f8d4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f8e8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f8ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f8f0 .cfa: x29 32 +
+STACK CFI 2f8f4 x19: .cfa -16 + ^
+STACK CFI 2f904 x19: x19
+STACK CFI 2f908 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f90c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f920 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f924 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f928 .cfa: x29 32 +
+STACK CFI 2f92c x19: .cfa -16 + ^
+STACK CFI 2f93c x19: x19
+STACK CFI 2f940 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f944 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f958 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f95c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f960 .cfa: x29 32 +
+STACK CFI 2f964 x19: .cfa -16 + ^
+STACK CFI 2f974 x19: x19
+STACK CFI 2f978 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f97c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f990 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f994 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f998 .cfa: x29 32 +
+STACK CFI 2f99c x19: .cfa -16 + ^
+STACK CFI 2f9ac x19: x19
+STACK CFI 2f9b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f9b4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2f9c8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2f9cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2f9d0 .cfa: x29 32 +
+STACK CFI 2f9d4 x19: .cfa -16 + ^
+STACK CFI 2f9e4 x19: x19
+STACK CFI 2f9e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2f9ec 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fa00 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2fa04 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fa08 .cfa: x29 32 +
+STACK CFI 2fa0c x19: .cfa -16 + ^
+STACK CFI 2fa1c x19: x19
+STACK CFI 2fa20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fa24 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fa28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fa30 .cfa: x29 32 +
+STACK CFI 2fa34 x19: .cfa -16 + ^
+STACK CFI 2fa58 x19: x19
+STACK CFI 2fa5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fa60 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fa64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fa6c .cfa: x29 32 +
+STACK CFI 2fa70 x19: .cfa -16 + ^
+STACK CFI 2fa94 x19: x19
+STACK CFI 2fa98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fa9c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2faa0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2faa8 .cfa: x29 32 +
+STACK CFI 2faac x19: .cfa -16 + ^
+STACK CFI 2fad0 x19: x19
+STACK CFI 2fad4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fad8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fadc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fae4 .cfa: x29 32 +
+STACK CFI 2fae8 x19: .cfa -16 + ^
+STACK CFI 2fb0c x19: x19
+STACK CFI 2fb10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fb14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fb18 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fb20 .cfa: x29 32 +
+STACK CFI 2fb24 x19: .cfa -16 + ^
+STACK CFI 2fb48 x19: x19
+STACK CFI 2fb4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fb50 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fb54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fb5c .cfa: x29 32 +
+STACK CFI 2fb60 x19: .cfa -16 + ^
+STACK CFI 2fb84 x19: x19
+STACK CFI 2fb88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fb8c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fb90 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fb98 .cfa: x29 32 +
+STACK CFI 2fb9c x19: .cfa -16 + ^
+STACK CFI 2fbc0 x19: x19
+STACK CFI 2fbc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fbc8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fbcc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fbd4 .cfa: x29 32 +
+STACK CFI 2fbd8 x19: .cfa -16 + ^
+STACK CFI 2fbfc x19: x19
+STACK CFI 2fc00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fc04 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fc08 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fc10 .cfa: x29 32 +
+STACK CFI 2fc14 x19: .cfa -16 + ^
+STACK CFI 2fc38 x19: x19
+STACK CFI 2fc3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fc40 3c .cfa: sp 0 + .ra: x30
+STACK CFI 2fc44 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2fc4c .cfa: x29 32 +
+STACK CFI 2fc50 x19: .cfa -16 + ^
+STACK CFI 2fc74 x19: x19
+STACK CFI 2fc78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fc7c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fc88 184 .cfa: sp 0 + .ra: x30
+STACK CFI 2fc8c .cfa: sp 528 +
+STACK CFI 2fc94 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 2fc98 .cfa: x29 608 +
+STACK CFI 2fca0 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 2fcb0 x21: .cfa -576 + ^ x22: .cfa -568 + ^ x23: .cfa -560 + ^ x24: .cfa -552 + ^
+STACK CFI 2fdf4 x19: x19 x20: x20
+STACK CFI 2fdf8 x21: x21 x22: x22
+STACK CFI 2fdfc x23: x23 x24: x24
+STACK CFI 2fe00 x25: x25 x26: x26
+STACK CFI 2fe04 .cfa: sp 528 + .ra: .ra x29: x29
+STACK CFI 2fe08 .cfa: sp 448 +
+STACK CFI INIT 2fe0c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 2fe10 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2fe14 .cfa: x29 48 +
+STACK CFI 2fe18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2fe20 x21: .cfa -16 + ^
+STACK CFI 2fe48 x21: x21
+STACK CFI 2fe4c x19: x19 x20: x20
+STACK CFI 2fe50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2fe54 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fe64 68 .cfa: sp 0 + .ra: x30
+STACK CFI 2fe68 .cfa: sp 4096 +
+STACK CFI 2fe7c .cfa: sp 4128 + .ra: .cfa -4120 + ^ x29: .cfa -4128 + ^
+STACK CFI 2fe80 .cfa: x29 4128 +
+STACK CFI 2fe84 x19: .cfa -4112 + ^ x20: .cfa -4104 + ^
+STACK CFI 2fec0 x19: x19 x20: x20
+STACK CFI 2fec4 .cfa: sp 4096 + .ra: .ra x29: x29
+STACK CFI 2fec8 .cfa: sp 4064 +
+STACK CFI INIT 2fecc ac .cfa: sp 0 + .ra: x30
+STACK CFI 2fed0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2fed4 .cfa: x29 48 +
+STACK CFI 2fed8 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 2fee4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2ff58 x19: x19 x20: x20
+STACK CFI 2ff5c x21: x21 x22: x22
+STACK CFI 2ff60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2ff68 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 2ff6c x19: x19 x20: x20
+STACK CFI 2ff70 x21: x21 x22: x22
+STACK CFI 2ff74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 130 x21: x21
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 8 .cfa: x29 336 +
+STACK CFI c x21: .cfa -304 + ^ x22: .cfa -296 + ^
+STACK CFI 1c x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 1bc x19: x19 x20: x20
+STACK CFI 1c0 x21: x21 x22: x22
+STACK CFI 1c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2ff78 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 2ff7c .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 2ff80 .cfa: x29 208 +
+STACK CFI 2ff84 x19: .cfa -192 + ^ x20: .cfa -184 + ^
+STACK CFI 2ff94 x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 30030 x19: x19 x20: x20
+STACK CFI 30034 x21: x21 x22: x22
+STACK CFI 30038 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3003c 224 .cfa: sp 0 + .ra: x30
+STACK CFI 30040 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 30048 .cfa: x29 304 +
+STACK CFI 3004c x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 30064 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 3024c x25: x25
+STACK CFI 30250 x19: x19 x20: x20
+STACK CFI 30254 x21: x21 x22: x22
+STACK CFI 30258 x23: x23 x24: x24
+STACK CFI 3025c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 30260 224 .cfa: sp 0 + .ra: x30
+STACK CFI 30264 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 3026c .cfa: x29 304 +
+STACK CFI 30270 x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 30288 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 30470 x25: x25
+STACK CFI 30474 x19: x19 x20: x20
+STACK CFI 30478 x21: x21 x22: x22
+STACK CFI 3047c x23: x23 x24: x24
+STACK CFI 30480 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 30484 224 .cfa: sp 0 + .ra: x30
+STACK CFI 30488 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 30490 .cfa: x29 304 +
+STACK CFI 30494 x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 304ac x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 30694 x25: x25
+STACK CFI 30698 x19: x19 x20: x20
+STACK CFI 3069c x21: x21 x22: x22
+STACK CFI 306a0 x23: x23 x24: x24
+STACK CFI 306a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 306a8 224 .cfa: sp 0 + .ra: x30
+STACK CFI 306ac .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 306b4 .cfa: x29 304 +
+STACK CFI 306b8 x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 306d0 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 308b8 x25: x25
+STACK CFI 308bc x19: x19 x20: x20
+STACK CFI 308c0 x21: x21 x22: x22
+STACK CFI 308c4 x23: x23 x24: x24
+STACK CFI 308c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 308cc 224 .cfa: sp 0 + .ra: x30
+STACK CFI 308d0 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 308d8 .cfa: x29 304 +
+STACK CFI 308dc x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 308f4 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 30adc x25: x25
+STACK CFI 30ae0 x19: x19 x20: x20
+STACK CFI 30ae4 x21: x21 x22: x22
+STACK CFI 30ae8 x23: x23 x24: x24
+STACK CFI 30aec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 30af0 224 .cfa: sp 0 + .ra: x30
+STACK CFI 30af4 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 30afc .cfa: x29 304 +
+STACK CFI 30b00 x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 30b18 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x25: .cfa -240 + ^
+STACK CFI 30d00 x25: x25
+STACK CFI 30d04 x19: x19 x20: x20
+STACK CFI 30d08 x21: x21 x22: x22
+STACK CFI 30d0c x23: x23 x24: x24
+STACK CFI 30d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 30d14 54c .cfa: sp 0 + .ra: x30
+STACK CFI 30d18 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 30d20 .cfa: x29 480 +
+STACK CFI 30d24 x25: .cfa -416 + ^ x26: .cfa -408 + ^
+STACK CFI 30d44 v8: .cfa -384 + ^ x19: .cfa -464 + ^ x20: .cfa -456 + ^ x21: .cfa -448 + ^ x22: .cfa -440 + ^ x23: .cfa -432 + ^ x24: .cfa -424 + ^ x27: .cfa -400 + ^ x28: .cfa -392 + ^
+STACK CFI 31244 v8: v8
+STACK CFI 31248 x19: x19 x20: x20
+STACK CFI 3124c x21: x21 x22: x22
+STACK CFI 31250 x23: x23 x24: x24
+STACK CFI 31254 x25: x25 x26: x26
+STACK CFI 31258 x27: x27 x28: x28
+STACK CFI 3125c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31260 290 .cfa: sp 0 + .ra: x30
+STACK CFI 31264 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 3126c .cfa: x29 320 +
+STACK CFI 31270 x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 3128c x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^
+STACK CFI 314d8 x27: x27
+STACK CFI 314dc x19: x19 x20: x20
+STACK CFI 314e0 x21: x21 x22: x22
+STACK CFI 314e4 x23: x23 x24: x24
+STACK CFI 314e8 x25: x25 x26: x26
+STACK CFI 314ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 314f0 540 .cfa: sp 0 + .ra: x30
+STACK CFI 314f4 .cfa: sp 464 + .ra: .cfa -456 + ^ x29: .cfa -464 + ^
+STACK CFI 314fc .cfa: x29 464 +
+STACK CFI 31504 v8: .cfa -368 + ^ v9: .cfa -360 + ^ x25: .cfa -400 + ^ x26: .cfa -392 + ^
+STACK CFI 31520 x19: .cfa -448 + ^ x20: .cfa -440 + ^ x21: .cfa -432 + ^ x22: .cfa -424 + ^ x23: .cfa -416 + ^ x24: .cfa -408 + ^ x27: .cfa -384 + ^ x28: .cfa -376 + ^
+STACK CFI 31a14 v8: v8 v9: v9
+STACK CFI 31a18 x19: x19 x20: x20
+STACK CFI 31a1c x21: x21 x22: x22
+STACK CFI 31a20 x23: x23 x24: x24
+STACK CFI 31a24 x25: x25 x26: x26
+STACK CFI 31a28 x27: x27 x28: x28
+STACK CFI 31a2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 211b8 358 .cfa: sp 0 + .ra: x30
+STACK CFI 211bc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 211c0 .cfa: x29 64 +
+STACK CFI 211c8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 214fc x21: x21
+STACK CFI 21504 x19: x19 x20: x20
+STACK CFI 21508 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31a30 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31a34 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31a38 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31a4c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 31a50 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 31a54 .cfa: x29 32 +
+STACK CFI 31a58 x19: .cfa -16 + ^
+STACK CFI 31a68 x19: x19
+STACK CFI 31a6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31a70 3c .cfa: sp 0 + .ra: x30
+STACK CFI 31a74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 31a7c .cfa: x29 32 +
+STACK CFI 31a80 x19: .cfa -16 + ^
+STACK CFI 31aa4 x19: x19
+STACK CFI 31aa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25040 64 .cfa: sp 0 + .ra: x30
+STACK CFI 25044 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25048 .cfa: x29 48 +
+STACK CFI 2504c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25058 x21: .cfa -16 + ^
+STACK CFI 25098 x19: x19 x20: x20
+STACK CFI 2509c x21: x21
+STACK CFI 250a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31aac 4c .cfa: sp 0 + .ra: x30
+STACK CFI 31ab0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 31ab8 .cfa: x29 64 +
+STACK CFI 31abc x19: .cfa -48 + ^
+STACK CFI 31af0 x19: x19
+STACK CFI 31af4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1b8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 1a8 x19: x19 x20: x20
+STACK CFI 1ac x21: x21 x22: x22
+STACK CFI 1b0 x23: x23 x24: x24
+STACK CFI 1b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31af8 58 .cfa: sp 0 + .ra: x30
+STACK CFI 31afc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 31b00 .cfa: x29 48 +
+STACK CFI 31b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 31b44 x19: x19 x20: x20
+STACK CFI 31b48 x21: x21
+STACK CFI 31b4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31b50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 31b54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 31b60 .cfa: x29 32 +
+STACK CFI 31b64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 31ba8 x19: x19 x20: x20
+STACK CFI 31bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31bb0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c0c 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c68 124 .cfa: sp 0 + .ra: x30
+STACK CFI 31c6c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 31c70 .cfa: x29 48 +
+STACK CFI 31c78 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 31ca0 x19: x19 x20: x20
+STACK CFI 31ca4 x21: x21 x22: x22
+STACK CFI 31ca8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 31cac .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 31d8c dc .cfa: sp 0 + .ra: x30
+STACK CFI 31d90 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 31d98 .cfa: x29 64 +
+STACK CFI 31da0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 31e5c x19: x19 x20: x20
+STACK CFI 31e60 x21: x21 x22: x22
+STACK CFI 31e64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI c .cfa: x29 384 +
+STACK CFI 10 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 20 x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 28 x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 124 x19: x19 x20: x20
+STACK CFI 128 x21: x21 x22: x22
+STACK CFI 12c x23: x23 x24: x24
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 218 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 8 .cfa: x29 240 +
+STACK CFI c x21: .cfa -208 + ^ x22: .cfa -200 + ^
+STACK CFI 14 x23: .cfa -192 + ^ x24: .cfa -184 + ^
+STACK CFI 30 x19: .cfa -224 + ^ x20: .cfa -216 + ^
+STACK CFI 208 x19: x19 x20: x20
+STACK CFI 20c x21: x21 x22: x22
+STACK CFI 210 x23: x23 x24: x24
+STACK CFI 214 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31e68 950 .cfa: sp 0 + .ra: x30
+STACK CFI 31e6c .cfa: sp 1024 +
+STACK CFI 31e70 .cfa: sp 1136 + .ra: .cfa -1128 + ^ x29: .cfa -1136 + ^
+STACK CFI 31e74 .cfa: x29 1136 +
+STACK CFI 31e7c x19: .cfa -1120 + ^ x20: .cfa -1112 + ^ x21: .cfa -1104 + ^ x22: .cfa -1096 + ^
+STACK CFI 31e90 x23: .cfa -1088 + ^ x24: .cfa -1080 + ^
+STACK CFI 31ea4 v8: .cfa -1040 + ^ x25: .cfa -1072 + ^ x26: .cfa -1064 + ^ x27: .cfa -1056 + ^ x28: .cfa -1048 + ^
+STACK CFI 32798 x19: x19 x20: x20
+STACK CFI 3279c x21: x21 x22: x22
+STACK CFI 327a0 x23: x23 x24: x24
+STACK CFI 327a4 x25: x25 x26: x26
+STACK CFI 327a8 x27: x27 x28: x28
+STACK CFI 327ac v8: v8
+STACK CFI 327b0 .cfa: sp 1024 + .ra: .ra x29: x29
+STACK CFI 327b4 .cfa: sp 912 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 21510 6c .cfa: sp 0 + .ra: x30
+STACK CFI 21514 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 21518 .cfa: x29 32 +
+STACK CFI 21574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327b8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327bc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327c8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327cc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327d0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327d4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327d8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327e0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327e4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 327ec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 327f0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 32804 24 .cfa: sp 0 + .ra: x30
+STACK CFI 32808 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3280c .cfa: x29 32 +
+STACK CFI 32810 x19: .cfa -16 + ^
+STACK CFI 32820 x19: x19
+STACK CFI 32824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32828 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3283c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 32840 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32844 .cfa: x29 32 +
+STACK CFI 32848 x19: .cfa -16 + ^
+STACK CFI 32858 x19: x19
+STACK CFI 3285c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32860 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 32874 24 .cfa: sp 0 + .ra: x30
+STACK CFI 32878 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3287c .cfa: x29 32 +
+STACK CFI 32880 x19: .cfa -16 + ^
+STACK CFI 32890 x19: x19
+STACK CFI 32894 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32898 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 328ac 24 .cfa: sp 0 + .ra: x30
+STACK CFI 328b0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 328b4 .cfa: x29 32 +
+STACK CFI 328b8 x19: .cfa -16 + ^
+STACK CFI 328c8 x19: x19
+STACK CFI 328cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 328d0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 328e4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 328e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 328ec .cfa: x29 32 +
+STACK CFI 328f0 x19: .cfa -16 + ^
+STACK CFI 32900 x19: x19
+STACK CFI 32904 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32908 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3291c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 32920 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32924 .cfa: x29 32 +
+STACK CFI 32928 x19: .cfa -16 + ^
+STACK CFI 32938 x19: x19
+STACK CFI 3293c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32940 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 32954 24 .cfa: sp 0 + .ra: x30
+STACK CFI 32958 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3295c .cfa: x29 32 +
+STACK CFI 32960 x19: .cfa -16 + ^
+STACK CFI 32970 x19: x19
+STACK CFI 32974 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32978 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3297c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32984 .cfa: x29 32 +
+STACK CFI 32988 x19: .cfa -16 + ^
+STACK CFI 329ac x19: x19
+STACK CFI 329b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 329b4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 329b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 329c0 .cfa: x29 32 +
+STACK CFI 329c4 x19: .cfa -16 + ^
+STACK CFI 329e8 x19: x19
+STACK CFI 329ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 329f0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 329f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 329fc .cfa: x29 32 +
+STACK CFI 32a00 x19: .cfa -16 + ^
+STACK CFI 32a24 x19: x19
+STACK CFI 32a28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32a2c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 32a30 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32a38 .cfa: x29 32 +
+STACK CFI 32a3c x19: .cfa -16 + ^
+STACK CFI 32a60 x19: x19
+STACK CFI 32a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32a68 3c .cfa: sp 0 + .ra: x30
+STACK CFI 32a6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32a74 .cfa: x29 32 +
+STACK CFI 32a78 x19: .cfa -16 + ^
+STACK CFI 32a9c x19: x19
+STACK CFI 32aa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32aa4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 32aa8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32ab0 .cfa: x29 32 +
+STACK CFI 32ab4 x19: .cfa -16 + ^
+STACK CFI 32ad8 x19: x19
+STACK CFI 32adc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32ae0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 32ae4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32aec .cfa: x29 32 +
+STACK CFI 32af0 x19: .cfa -16 + ^
+STACK CFI 32b14 x19: x19
+STACK CFI 32b18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32b1c 118 .cfa: sp 0 + .ra: x30
+STACK CFI 32b20 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32b2c .cfa: x29 32 +
+STACK CFI 32b30 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 32c2c x19: x19 x20: x20
+STACK CFI 32c30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32c34 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fe54 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fe64 68 .cfa: sp 0 + .ra: x30
+STACK CFI 2fe68 .cfa: sp 4096 +
+STACK CFI 2fe7c .cfa: sp 4128 + .ra: .cfa -4120 + ^ x29: .cfa -4128 + ^
+STACK CFI 2fe80 .cfa: x29 4128 +
+STACK CFI 2fe84 x19: .cfa -4112 + ^ x20: .cfa -4104 + ^
+STACK CFI 2fec0 x19: x19 x20: x20
+STACK CFI 2fec4 .cfa: sp 4096 + .ra: .ra x29: x29
+STACK CFI 2fec8 .cfa: sp 4064 +
+STACK CFI INIT 32c54 8c .cfa: sp 0 + .ra: x30
+STACK CFI 32c58 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 32c5c .cfa: x29 48 +
+STACK CFI 32c64 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 32cb8 x21: x21 x22: x22
+STACK CFI 32cbc x19: x19 x20: x20
+STACK CFI 32cc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 32cc4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 32cd0 x19: x19 x20: x20
+STACK CFI 32cd4 x21: x21 x22: x22
+STACK CFI 32cd8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32ce0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 32ce4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 32ce8 .cfa: x29 32 +
+STACK CFI 32cec x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 32d20 x19: x19 x20: x20
+STACK CFI 32d24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 32d28 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 32d2c x19: x19 x20: x20
+STACK CFI 32d30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32d34 1a8 .cfa: sp 0 + .ra: x30
+STACK CFI 32d38 .cfa: sp 624 +
+STACK CFI 32d44 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 32d48 .cfa: x29 688 +
+STACK CFI 32d4c x21: .cfa -656 + ^ x22: .cfa -648 + ^
+STACK CFI 32d60 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x23: .cfa -640 + ^
+STACK CFI 32ec8 x23: x23
+STACK CFI 32ecc x19: x19 x20: x20
+STACK CFI 32ed0 x21: x21 x22: x22
+STACK CFI 32ed4 .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 32ed8 .cfa: sp 560 +
+STACK CFI INIT 32edc 1d4 .cfa: sp 0 + .ra: x30
+STACK CFI 32ee0 .cfa: sp 1136 +
+STACK CFI 32eec .cfa: sp 1200 + .ra: .cfa -1192 + ^ x29: .cfa -1200 + ^
+STACK CFI 32ef0 .cfa: x29 1200 +
+STACK CFI 32ef4 x19: .cfa -1184 + ^ x20: .cfa -1176 + ^
+STACK CFI 32f08 x21: .cfa -1168 + ^ x22: .cfa -1160 + ^ x23: .cfa -1152 + ^
+STACK CFI 3309c x23: x23
+STACK CFI 330a0 x19: x19 x20: x20
+STACK CFI 330a4 x21: x21 x22: x22
+STACK CFI 330a8 .cfa: sp 1136 + .ra: .ra x29: x29
+STACK CFI 330ac .cfa: sp 1072 +
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 130 x21: x21
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 330b0 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 330b4 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 330b8 .cfa: x29 480 +
+STACK CFI 330bc x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 330c8 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 330e4 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 33180 x25: x25
+STACK CFI 33188 x19: x19 x20: x20
+STACK CFI 3318c x21: x21 x22: x22
+STACK CFI 33190 x23: x23 x24: x24
+STACK CFI 33194 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 33198 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3319c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 331a0 .cfa: x29 32 +
+STACK CFI 331ac x19: .cfa -16 + ^
+STACK CFI 331cc x19: x19
+STACK CFI 331d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27b7c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 27b80 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27b84 .cfa: x29 160 +
+STACK CFI 27b8c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27c0c x19: x19 x20: x20
+STACK CFI 27c10 x21: x21 x22: x22
+STACK CFI 27c14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 331d4 374 .cfa: sp 0 + .ra: x30
+STACK CFI 331d8 .cfa: sp 624 +
+STACK CFI 331e4 .cfa: sp 704 + .ra: .cfa -696 + ^ x29: .cfa -704 + ^
+STACK CFI 331e8 .cfa: x29 704 +
+STACK CFI 331ec x23: .cfa -656 + ^ x24: .cfa -648 + ^
+STACK CFI 33200 x19: .cfa -688 + ^ x20: .cfa -680 + ^ x21: .cfa -672 + ^ x22: .cfa -664 + ^ x25: .cfa -640 + ^ x26: .cfa -632 + ^
+STACK CFI 33530 x19: x19 x20: x20
+STACK CFI 33534 x21: x21 x22: x22
+STACK CFI 33538 x23: x23 x24: x24
+STACK CFI 3353c x25: x25 x26: x26
+STACK CFI 33540 .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 33544 .cfa: sp 544 +
+STACK CFI INIT 33548 374 .cfa: sp 0 + .ra: x30
+STACK CFI 3354c .cfa: sp 624 +
+STACK CFI 33558 .cfa: sp 704 + .ra: .cfa -696 + ^ x29: .cfa -704 + ^
+STACK CFI 3355c .cfa: x29 704 +
+STACK CFI 33560 x23: .cfa -656 + ^ x24: .cfa -648 + ^
+STACK CFI 33574 x19: .cfa -688 + ^ x20: .cfa -680 + ^ x21: .cfa -672 + ^ x22: .cfa -664 + ^ x25: .cfa -640 + ^ x26: .cfa -632 + ^
+STACK CFI 338a4 x19: x19 x20: x20
+STACK CFI 338a8 x21: x21 x22: x22
+STACK CFI 338ac x23: x23 x24: x24
+STACK CFI 338b0 x25: x25 x26: x26
+STACK CFI 338b4 .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 338b8 .cfa: sp 544 +
+STACK CFI INIT 338bc 568 .cfa: sp 0 + .ra: x30
+STACK CFI 338c0 .cfa: sp 624 +
+STACK CFI 338cc .cfa: sp 752 + .ra: .cfa -744 + ^ x29: .cfa -752 + ^
+STACK CFI 338d0 .cfa: x29 752 +
+STACK CFI 338d8 v8: .cfa -656 + ^ v9: .cfa -648 + ^ x25: .cfa -688 + ^ x26: .cfa -680 + ^
+STACK CFI 338f4 v10: .cfa -640 + ^ x19: .cfa -736 + ^ x20: .cfa -728 + ^ x21: .cfa -720 + ^ x22: .cfa -712 + ^ x23: .cfa -704 + ^ x24: .cfa -696 + ^ x27: .cfa -672 + ^ x28: .cfa -664 + ^
+STACK CFI 33e00 v8: v8 v9: v9
+STACK CFI 33e04 x19: x19 x20: x20
+STACK CFI 33e08 x21: x21 x22: x22
+STACK CFI 33e0c x23: x23 x24: x24
+STACK CFI 33e10 x25: x25 x26: x26
+STACK CFI 33e14 x27: x27 x28: x28
+STACK CFI 33e18 v10: v10
+STACK CFI 33e1c .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 33e20 .cfa: sp 496 +
+STACK CFI INIT 33e24 568 .cfa: sp 0 + .ra: x30
+STACK CFI 33e28 .cfa: sp 624 +
+STACK CFI 33e34 .cfa: sp 752 + .ra: .cfa -744 + ^ x29: .cfa -752 + ^
+STACK CFI 33e38 .cfa: x29 752 +
+STACK CFI 33e40 v8: .cfa -656 + ^ v9: .cfa -648 + ^ x25: .cfa -688 + ^ x26: .cfa -680 + ^
+STACK CFI 33e5c v10: .cfa -640 + ^ x19: .cfa -736 + ^ x20: .cfa -728 + ^ x21: .cfa -720 + ^ x22: .cfa -712 + ^ x23: .cfa -704 + ^ x24: .cfa -696 + ^ x27: .cfa -672 + ^ x28: .cfa -664 + ^
+STACK CFI 34368 v8: v8 v9: v9
+STACK CFI 3436c x19: x19 x20: x20
+STACK CFI 34370 x21: x21 x22: x22
+STACK CFI 34374 x23: x23 x24: x24
+STACK CFI 34378 x25: x25 x26: x26
+STACK CFI 3437c x27: x27 x28: x28
+STACK CFI 34380 v10: v10
+STACK CFI 34384 .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 34388 .cfa: sp 496 +
+STACK CFI INIT 3438c 3b8 .cfa: sp 0 + .ra: x30
+STACK CFI 34390 .cfa: sp 1424 +
+STACK CFI 3439c .cfa: sp 1504 + .ra: .cfa -1496 + ^ x29: .cfa -1504 + ^
+STACK CFI 343a0 .cfa: x29 1504 +
+STACK CFI 343a4 x25: .cfa -1440 + ^ x26: .cfa -1432 + ^
+STACK CFI 343b8 x19: .cfa -1488 + ^ x20: .cfa -1480 + ^ x21: .cfa -1472 + ^ x22: .cfa -1464 + ^ x23: .cfa -1456 + ^ x24: .cfa -1448 + ^
+STACK CFI 3472c x19: x19 x20: x20
+STACK CFI 34730 x21: x21 x22: x22
+STACK CFI 34734 x23: x23 x24: x24
+STACK CFI 34738 x25: x25 x26: x26
+STACK CFI 3473c .cfa: sp 1424 + .ra: .ra x29: x29
+STACK CFI 34740 .cfa: sp 1344 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2157c 268 .cfa: sp 0 + .ra: x30
+STACK CFI 21580 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 21584 .cfa: x29 64 +
+STACK CFI 2158c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 217d0 x21: x21
+STACK CFI 217d8 x19: x19 x20: x20
+STACK CFI 217dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 34744 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 34748 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3474c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 34750 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 34754 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 34768 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3476c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 34770 .cfa: x29 32 +
+STACK CFI 34774 x19: .cfa -16 + ^
+STACK CFI 34784 x19: x19
+STACK CFI 34788 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3478c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 347a0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 347a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 347a8 .cfa: x29 32 +
+STACK CFI 347ac x19: .cfa -16 + ^
+STACK CFI 347bc x19: x19
+STACK CFI 347c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 347c4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 347c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 347d0 .cfa: x29 32 +
+STACK CFI 347d4 x19: .cfa -16 + ^
+STACK CFI 347f8 x19: x19
+STACK CFI 347fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 34800 3c .cfa: sp 0 + .ra: x30
+STACK CFI 34804 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3480c .cfa: x29 32 +
+STACK CFI 34810 x19: .cfa -16 + ^
+STACK CFI 34834 x19: x19
+STACK CFI 34838 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 7c x19: x19
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI cc x21: x21
+STACK CFI d4 x19: x19 x20: x20
+STACK CFI d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI cc x21: x21
+STACK CFI d4 x19: x19 x20: x20
+STACK CFI d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3483c e8 .cfa: sp 0 + .ra: x30
+STACK CFI 34840 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 34844 .cfa: x29 480 +
+STACK CFI 34848 x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 34854 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 34870 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 3490c x25: x25
+STACK CFI 34914 x19: x19 x20: x20
+STACK CFI 34918 x21: x21 x22: x22
+STACK CFI 3491c x23: x23 x24: x24
+STACK CFI 34920 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26aa8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 26aac .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26ab4 .cfa: x29 336 +
+STACK CFI 26ab8 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26ac0 x21: .cfa -304 + ^
+STACK CFI 26b20 x21: x21
+STACK CFI 26b28 x19: x19 x20: x20
+STACK CFI 26b2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 34924 34 .cfa: sp 0 + .ra: x30
+STACK CFI 3492c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 34930 .cfa: x29 32 +
+STACK CFI 34938 x19: .cfa -16 + ^
+STACK CFI 34950 x19: x19
+STACK CFI 34954 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 34958 4a8 .cfa: sp 0 + .ra: x30
+STACK CFI 3495c .cfa: sp 1104 +
+STACK CFI 34960 .cfa: sp 1200 + .ra: .cfa -1192 + ^ x29: .cfa -1200 + ^
+STACK CFI 34964 .cfa: x29 1200 +
+STACK CFI 34978 x19: .cfa -1184 + ^ x20: .cfa -1176 + ^ x21: .cfa -1168 + ^ x22: .cfa -1160 + ^ x23: .cfa -1152 + ^ x24: .cfa -1144 + ^ x25: .cfa -1136 + ^ x26: .cfa -1128 + ^ x27: .cfa -1120 + ^ x28: .cfa -1112 + ^
+STACK CFI 34de4 x19: x19 x20: x20
+STACK CFI 34de8 x21: x21 x22: x22
+STACK CFI 34dec x23: x23 x24: x24
+STACK CFI 34df0 x25: x25 x26: x26
+STACK CFI 34df4 x27: x27 x28: x28
+STACK CFI 34df8 .cfa: sp 1104 + .ra: .ra x29: x29
+STACK CFI 34dfc .cfa: sp 1008 +
+STACK CFI INIT 34e00 880 .cfa: sp 0 + .ra: x30
+STACK CFI 34e04 .cfa: sp 1456 +
+STACK CFI 34e08 .cfa: sp 1584 + .ra: .cfa -1576 + ^ x29: .cfa -1584 + ^
+STACK CFI 34e0c .cfa: x29 1584 +
+STACK CFI 34e14 v8: .cfa -1488 + ^ v9: .cfa -1480 + ^ x23: .cfa -1536 + ^ x24: .cfa -1528 + ^
+STACK CFI 34e30 v10: .cfa -1472 + ^ x19: .cfa -1568 + ^ x20: .cfa -1560 + ^ x21: .cfa -1552 + ^ x22: .cfa -1544 + ^ x25: .cfa -1520 + ^ x26: .cfa -1512 + ^ x27: .cfa -1504 + ^ x28: .cfa -1496 + ^
+STACK CFI 3565c v8: v8 v9: v9
+STACK CFI 35660 x19: x19 x20: x20
+STACK CFI 35664 x21: x21 x22: x22
+STACK CFI 35668 x23: x23 x24: x24
+STACK CFI 3566c x25: x25 x26: x26
+STACK CFI 35670 x27: x27 x28: x28
+STACK CFI 35674 v10: v10
+STACK CFI 35678 .cfa: sp 1456 + .ra: .ra x29: x29
+STACK CFI 3567c .cfa: sp 1328 +
+STACK CFI INIT 35680 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35684 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35688 .cfa: x29 32 +
+STACK CFI 3568c x19: .cfa -16 + ^
+STACK CFI 3569c x19: x19
+STACK CFI 356a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 217e4 d8 .cfa: sp 0 + .ra: x30
+STACK CFI 217e8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 217ec .cfa: x29 64 +
+STACK CFI 217f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 218a8 x21: x21
+STACK CFI 218b0 x19: x19 x20: x20
+STACK CFI 218b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356a4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356a8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356ac 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356b0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356b4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356b8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356bc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356c8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356cc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356d0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356d4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356d8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356e0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356e4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 356e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 356ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI 356f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 356f4 .cfa: x29 32 +
+STACK CFI 356f8 x19: .cfa -16 + ^
+STACK CFI 35708 x19: x19
+STACK CFI 3570c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35710 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 35724 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35728 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3572c .cfa: x29 32 +
+STACK CFI 35730 x19: .cfa -16 + ^
+STACK CFI 35740 x19: x19
+STACK CFI 35744 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35748 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3575c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35760 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35764 .cfa: x29 32 +
+STACK CFI 35768 x19: .cfa -16 + ^
+STACK CFI 35778 x19: x19
+STACK CFI 3577c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35780 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 35794 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35798 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3579c .cfa: x29 32 +
+STACK CFI 357a0 x19: .cfa -16 + ^
+STACK CFI 357b0 x19: x19
+STACK CFI 357b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 357b8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 357cc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 357d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 357d4 .cfa: x29 32 +
+STACK CFI 357d8 x19: .cfa -16 + ^
+STACK CFI 357e8 x19: x19
+STACK CFI 357ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 357f0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 35804 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35808 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3580c .cfa: x29 32 +
+STACK CFI 35810 x19: .cfa -16 + ^
+STACK CFI 35820 x19: x19
+STACK CFI 35824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35828 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3583c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35840 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35844 .cfa: x29 32 +
+STACK CFI 35848 x19: .cfa -16 + ^
+STACK CFI 35858 x19: x19
+STACK CFI 3585c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35860 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 35874 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35878 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3587c .cfa: x29 32 +
+STACK CFI 35880 x19: .cfa -16 + ^
+STACK CFI 35890 x19: x19
+STACK CFI 35894 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35898 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 358ac 24 .cfa: sp 0 + .ra: x30
+STACK CFI 358b0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 358b4 .cfa: x29 32 +
+STACK CFI 358b8 x19: .cfa -16 + ^
+STACK CFI 358c8 x19: x19
+STACK CFI 358cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 358d0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 358d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 358dc .cfa: x29 32 +
+STACK CFI 358e0 x19: .cfa -16 + ^
+STACK CFI 35904 x19: x19
+STACK CFI 35908 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3590c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 35910 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35918 .cfa: x29 32 +
+STACK CFI 3591c x19: .cfa -16 + ^
+STACK CFI 35940 x19: x19
+STACK CFI 35944 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35948 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3594c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35954 .cfa: x29 32 +
+STACK CFI 35958 x19: .cfa -16 + ^
+STACK CFI 3597c x19: x19
+STACK CFI 35980 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35984 3c .cfa: sp 0 + .ra: x30
+STACK CFI 35988 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35990 .cfa: x29 32 +
+STACK CFI 35994 x19: .cfa -16 + ^
+STACK CFI 359b8 x19: x19
+STACK CFI 359bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 359c0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 359c4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 359cc .cfa: x29 32 +
+STACK CFI 359d0 x19: .cfa -16 + ^
+STACK CFI 359f4 x19: x19
+STACK CFI 359f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 359fc 3c .cfa: sp 0 + .ra: x30
+STACK CFI 35a00 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35a08 .cfa: x29 32 +
+STACK CFI 35a0c x19: .cfa -16 + ^
+STACK CFI 35a30 x19: x19
+STACK CFI 35a34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35a38 3c .cfa: sp 0 + .ra: x30
+STACK CFI 35a3c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35a44 .cfa: x29 32 +
+STACK CFI 35a48 x19: .cfa -16 + ^
+STACK CFI 35a6c x19: x19
+STACK CFI 35a70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35a74 3c .cfa: sp 0 + .ra: x30
+STACK CFI 35a78 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35a80 .cfa: x29 32 +
+STACK CFI 35a84 x19: .cfa -16 + ^
+STACK CFI 35aa8 x19: x19
+STACK CFI 35aac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 35ab0 190 .cfa: sp 0 + .ra: x30
+STACK CFI 35ab4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 35ab8 .cfa: x29 128 +
+STACK CFI 35ac0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 35c34 x19: x19 x20: x20
+STACK CFI 35c38 x21: x21 x22: x22
+STACK CFI 35c3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35c40 68 .cfa: sp 0 + .ra: x30
+STACK CFI 35c44 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35c48 .cfa: x29 32 +
+STACK CFI 35c4c x19: .cfa -16 + ^
+STACK CFI 35ca0 x19: x19
+STACK CFI 35ca4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35ca8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35cac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35cb0 .cfa: x29 32 +
+STACK CFI 35cb4 x19: .cfa -16 + ^
+STACK CFI 35cc4 x19: x19
+STACK CFI 35cc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35ccc 144 .cfa: sp 0 + .ra: x30
+STACK CFI 35cd0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 35cd4 .cfa: x29 48 +
+STACK CFI 35cdc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 35e04 x19: x19 x20: x20
+STACK CFI 35e08 x21: x21 x22: x22
+STACK CFI 35e0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24db0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 24db4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24db8 .cfa: x29 48 +
+STACK CFI 24dbc x19: .cfa -32 + ^
+STACK CFI 24e10 x19: x19
+STACK CFI 24e14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35e10 78 .cfa: sp 0 + .ra: x30
+STACK CFI 35e14 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35e1c .cfa: x29 32 +
+STACK CFI 35e20 x19: .cfa -16 + ^
+STACK CFI 35e80 x19: x19
+STACK CFI 35e84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35e88 50 .cfa: sp 0 + .ra: x30
+STACK CFI 35e8c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35e98 .cfa: x29 32 +
+STACK CFI 35e9c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 35ea4 x19: x19 x20: x20
+STACK CFI 35eac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 35eb4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 35ed0 x19: x19 x20: x20
+STACK CFI 35ed4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25bb0 164 .cfa: sp 0 + .ra: x30
+STACK CFI 25bb4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 25bbc .cfa: x29 80 +
+STACK CFI 25bc8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 25d04 x23: x23
+STACK CFI 25d08 x19: x19 x20: x20
+STACK CFI 25d0c x21: x21 x22: x22
+STACK CFI 25d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 98 x23: x23
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28208 9c .cfa: sp 0 + .ra: x30
+STACK CFI 2820c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28210 .cfa: x29 160 +
+STACK CFI 28218 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28298 x19: x19 x20: x20
+STACK CFI 2829c x21: x21 x22: x22
+STACK CFI 282a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26aa8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 26aac .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26ab4 .cfa: x29 336 +
+STACK CFI 26ab8 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26ac0 x21: .cfa -304 + ^
+STACK CFI 26b20 x21: x21
+STACK CFI 26b28 x19: x19 x20: x20
+STACK CFI 26b2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 158 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 8 .cfa: x29 224 +
+STACK CFI 14 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 148 x23: x23
+STACK CFI 14c x19: x19 x20: x20
+STACK CFI 150 x21: x21 x22: x22
+STACK CFI 154 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35ed8 3a8 .cfa: sp 0 + .ra: x30
+STACK CFI 35edc .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 35ee0 .cfa: x29 160 +
+STACK CFI 35ee4 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 35ef8 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 36270 x19: x19 x20: x20
+STACK CFI 36274 x21: x21 x22: x22
+STACK CFI 36278 x23: x23 x24: x24
+STACK CFI 3627c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 36280 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 36294 34 .cfa: sp 0 + .ra: x30
+STACK CFI 36298 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 3629c .cfa: x29 208 +
+STACK CFI 362a0 x19: .cfa -192 + ^
+STACK CFI 362c0 x19: x19
+STACK CFI 362c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 362c8 230 .cfa: sp 0 + .ra: x30
+STACK CFI 362cc .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 362d0 .cfa: x29 320 +
+STACK CFI 362dc x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^
+STACK CFI 364e8 x23: x23
+STACK CFI 364ec x19: x19 x20: x20
+STACK CFI 364f0 x21: x21 x22: x22
+STACK CFI 364f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 364f8 4fc .cfa: sp 0 + .ra: x30
+STACK CFI 364fc .cfa: sp 1024 +
+STACK CFI 36500 .cfa: sp 1120 + .ra: .cfa -1112 + ^ x29: .cfa -1120 + ^
+STACK CFI 36504 .cfa: x29 1120 +
+STACK CFI 36518 x19: .cfa -1104 + ^ x20: .cfa -1096 + ^ x21: .cfa -1088 + ^ x22: .cfa -1080 + ^ x23: .cfa -1072 + ^ x24: .cfa -1064 + ^ x25: .cfa -1056 + ^ x26: .cfa -1048 + ^ x27: .cfa -1040 + ^
+STACK CFI 369d8 x27: x27
+STACK CFI 369dc x19: x19 x20: x20
+STACK CFI 369e0 x21: x21 x22: x22
+STACK CFI 369e4 x23: x23 x24: x24
+STACK CFI 369e8 x25: x25 x26: x26
+STACK CFI 369ec .cfa: sp 1024 + .ra: .ra x29: x29
+STACK CFI 369f0 .cfa: sp 928 +
+STACK CFI INIT 369f4 4b8 .cfa: sp 0 + .ra: x30
+STACK CFI 369f8 .cfa: sp 4096 +
+STACK CFI 36a00 .cfa: sp 4512 +
+STACK CFI 36a0c .cfa: sp 4576 + .ra: .cfa -4568 + ^ x29: .cfa -4576 + ^
+STACK CFI 36a10 .cfa: x29 4576 +
+STACK CFI 36a14 x19: .cfa -4560 + ^ x20: .cfa -4552 + ^
+STACK CFI 36a24 x21: .cfa -4544 + ^ x22: .cfa -4536 + ^ x23: .cfa -4528 + ^ x24: .cfa -4520 + ^
+STACK CFI 36e94 x19: x19 x20: x20
+STACK CFI 36e98 x21: x21 x22: x22
+STACK CFI 36e9c x23: x23 x24: x24
+STACK CFI 36ea0 .cfa: sp 4512 + .ra: .ra x29: x29
+STACK CFI 36ea4 .cfa: sp 4096 +
+STACK CFI 36ea8 .cfa: sp 4032 +
+STACK CFI INIT 36eac 408 .cfa: sp 0 + .ra: x30
+STACK CFI 36eb0 .cfa: sp 432 + .ra: .cfa -424 + ^ x29: .cfa -432 + ^
+STACK CFI 36eb4 .cfa: x29 432 +
+STACK CFI 36ec0 x19: .cfa -416 + ^ x20: .cfa -408 + ^ x21: .cfa -400 + ^ x22: .cfa -392 + ^ x23: .cfa -384 + ^ x24: .cfa -376 + ^
+STACK CFI 36ecc x25: .cfa -368 + ^ x26: .cfa -360 + ^ x27: .cfa -352 + ^
+STACK CFI 3729c x27: x27
+STACK CFI 372a0 x19: x19 x20: x20
+STACK CFI 372a4 x21: x21 x22: x22
+STACK CFI 372a8 x23: x23 x24: x24
+STACK CFI 372ac x25: x25 x26: x26
+STACK CFI 372b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 372b4 40c .cfa: sp 0 + .ra: x30
+STACK CFI 372b8 .cfa: sp 400 + .ra: .cfa -392 + ^ x29: .cfa -400 + ^
+STACK CFI 372bc .cfa: x29 400 +
+STACK CFI 372cc x19: .cfa -384 + ^ x20: .cfa -376 + ^ x21: .cfa -368 + ^ x22: .cfa -360 + ^ x23: .cfa -352 + ^ x24: .cfa -344 + ^ x25: .cfa -336 + ^
+STACK CFI 376ac x25: x25
+STACK CFI 376b0 x19: x19 x20: x20
+STACK CFI 376b4 x21: x21 x22: x22
+STACK CFI 376b8 x23: x23 x24: x24
+STACK CFI 376bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 376c0 3e0 .cfa: sp 0 + .ra: x30
+STACK CFI 376c4 .cfa: sp 592 +
+STACK CFI 376c8 .cfa: sp 672 + .ra: .cfa -664 + ^ x29: .cfa -672 + ^
+STACK CFI 376cc .cfa: x29 672 +
+STACK CFI 376d8 x19: .cfa -656 + ^ x20: .cfa -648 + ^ x21: .cfa -640 + ^ x22: .cfa -632 + ^ x23: .cfa -624 + ^ x24: .cfa -616 + ^
+STACK CFI 376e4 x25: .cfa -608 + ^ x26: .cfa -600 + ^
+STACK CFI 37a88 x19: x19 x20: x20
+STACK CFI 37a8c x21: x21 x22: x22
+STACK CFI 37a90 x23: x23 x24: x24
+STACK CFI 37a94 x25: x25 x26: x26
+STACK CFI 37a98 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 37a9c .cfa: sp 512 +
+STACK CFI INIT 37aa0 3d8 .cfa: sp 0 + .ra: x30
+STACK CFI 37aa4 .cfa: sp 544 +
+STACK CFI 37aa8 .cfa: sp 656 + .ra: .cfa -648 + ^ x29: .cfa -656 + ^
+STACK CFI 37aac .cfa: x29 656 +
+STACK CFI 37ab4 v8: .cfa -560 + ^ x19: .cfa -640 + ^ x20: .cfa -632 + ^
+STACK CFI 37ac4 x21: .cfa -624 + ^ x22: .cfa -616 + ^ x23: .cfa -608 + ^ x24: .cfa -600 + ^ x25: .cfa -592 + ^ x26: .cfa -584 + ^
+STACK CFI 37ad0 x27: .cfa -576 + ^ x28: .cfa -568 + ^
+STACK CFI 37e58 v8: v8
+STACK CFI 37e5c x19: x19 x20: x20
+STACK CFI 37e60 x21: x21 x22: x22
+STACK CFI 37e64 x23: x23 x24: x24
+STACK CFI 37e68 x25: x25 x26: x26
+STACK CFI 37e6c x27: x27 x28: x28
+STACK CFI 37e70 .cfa: sp 544 + .ra: .ra x29: x29
+STACK CFI 37e74 .cfa: sp 432 +
+STACK CFI INIT 37e78 b58 .cfa: sp 0 + .ra: x30
+STACK CFI 37e7c .cfa: sp 1120 +
+STACK CFI 37e84 .cfa: sp 1248 + .ra: .cfa -1240 + ^ x29: .cfa -1248 + ^
+STACK CFI 37e88 .cfa: x29 1248 +
+STACK CFI 37e90 v8: .cfa -1152 + ^ v9: .cfa -1144 + ^ x21: .cfa -1216 + ^ x22: .cfa -1208 + ^
+STACK CFI 37ea0 v10: .cfa -1136 + ^ v11: .cfa -1128 + ^ x27: .cfa -1168 + ^ x28: .cfa -1160 + ^
+STACK CFI 37eb0 x19: .cfa -1232 + ^ x20: .cfa -1224 + ^
+STACK CFI 37ec0 x23: .cfa -1200 + ^ x24: .cfa -1192 + ^ x25: .cfa -1184 + ^ x26: .cfa -1176 + ^
+STACK CFI 389ac x19: x19 x20: x20
+STACK CFI 389b0 v8: v8 v9: v9
+STACK CFI 389b4 x21: x21 x22: x22
+STACK CFI 389b8 v10: v10 v11: v11
+STACK CFI 389bc x23: x23 x24: x24
+STACK CFI 389c0 x25: x25 x26: x26
+STACK CFI 389c4 x27: x27 x28: x28
+STACK CFI 389c8 .cfa: sp 1120 + .ra: .ra x29: x29
+STACK CFI 389cc .cfa: sp 992 +
+STACK CFI INIT 389d0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 389d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 389d8 .cfa: x29 32 +
+STACK CFI 389dc x19: .cfa -16 + ^
+STACK CFI 389ec x19: x19
+STACK CFI 389f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28540 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 28544 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28548 .cfa: x29 80 +
+STACK CFI 28550 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 285e0 x21: x21
+STACK CFI 285e8 x19: x19 x20: x20
+STACK CFI 285ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2633c 104 .cfa: sp 0 + .ra: x30
+STACK CFI 26340 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26348 .cfa: x29 80 +
+STACK CFI 26350 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 26358 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 26430 x23: x23
+STACK CFI 26434 x19: x19 x20: x20
+STACK CFI 26438 x21: x21 x22: x22
+STACK CFI 2643c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 218bc 2dc .cfa: sp 0 + .ra: x30
+STACK CFI 218c0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 218c8 .cfa: x29 64 +
+STACK CFI 218d0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 21b88 x19: x19 x20: x20
+STACK CFI 21b8c x21: x21 x22: x22
+STACK CFI 21b94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 389f4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 389f8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 389fc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a00 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a04 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a08 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a0c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a10 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38a14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38a18 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38a20 .cfa: x29 32 +
+STACK CFI 38a24 x19: .cfa -16 + ^
+STACK CFI 38a48 x19: x19
+STACK CFI 38a4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38a50 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38a54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38a5c .cfa: x29 32 +
+STACK CFI 38a60 x19: .cfa -16 + ^
+STACK CFI 38a84 x19: x19
+STACK CFI 38a88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38a8c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38a90 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38a98 .cfa: x29 32 +
+STACK CFI 38a9c x19: .cfa -16 + ^
+STACK CFI 38ac0 x19: x19
+STACK CFI 38ac4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38ac8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38acc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38ad4 .cfa: x29 32 +
+STACK CFI 38ad8 x19: .cfa -16 + ^
+STACK CFI 38afc x19: x19
+STACK CFI 38b00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38b04 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38b08 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38b10 .cfa: x29 32 +
+STACK CFI 38b14 x19: .cfa -16 + ^
+STACK CFI 38b38 x19: x19
+STACK CFI 38b3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38b40 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38b44 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38b4c .cfa: x29 32 +
+STACK CFI 38b50 x19: .cfa -16 + ^
+STACK CFI 38b74 x19: x19
+STACK CFI 38b78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38b7c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38b80 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38b88 .cfa: x29 32 +
+STACK CFI 38b8c x19: .cfa -16 + ^
+STACK CFI 38bb0 x19: x19
+STACK CFI 38bb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38bb8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 38bbc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38bc4 .cfa: x29 32 +
+STACK CFI 38bc8 x19: .cfa -16 + ^
+STACK CFI 38bec x19: x19
+STACK CFI 38bf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38bf4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38bf8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38bfc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c00 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c04 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c08 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c0c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c10 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38c14 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c28 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38c2c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38c30 .cfa: x29 32 +
+STACK CFI 38c34 x19: .cfa -16 + ^
+STACK CFI 38c44 x19: x19
+STACK CFI 38c48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38c4c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c60 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38c64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38c68 .cfa: x29 32 +
+STACK CFI 38c6c x19: .cfa -16 + ^
+STACK CFI 38c7c x19: x19
+STACK CFI 38c80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38c84 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38c98 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38c9c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38ca0 .cfa: x29 32 +
+STACK CFI 38ca4 x19: .cfa -16 + ^
+STACK CFI 38cb4 x19: x19
+STACK CFI 38cb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38cbc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38cd0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38cd4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38cd8 .cfa: x29 32 +
+STACK CFI 38cdc x19: .cfa -16 + ^
+STACK CFI 38cec x19: x19
+STACK CFI 38cf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38cf4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38d08 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38d0c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38d10 .cfa: x29 32 +
+STACK CFI 38d14 x19: .cfa -16 + ^
+STACK CFI 38d24 x19: x19
+STACK CFI 38d28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38d2c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38d40 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38d44 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38d48 .cfa: x29 32 +
+STACK CFI 38d4c x19: .cfa -16 + ^
+STACK CFI 38d5c x19: x19
+STACK CFI 38d60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38d64 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38d78 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38d7c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38d80 .cfa: x29 32 +
+STACK CFI 38d84 x19: .cfa -16 + ^
+STACK CFI 38d94 x19: x19
+STACK CFI 38d98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38d9c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 38db0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 38db4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38db8 .cfa: x29 32 +
+STACK CFI 38dbc x19: .cfa -16 + ^
+STACK CFI 38dcc x19: x19
+STACK CFI 38dd0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38dd4 fc .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24d50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 24d54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24d60 .cfa: x29 32 +
+STACK CFI 24d64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 24da8 x19: x19 x20: x20
+STACK CFI 24dac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38ed0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 38ed4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38ed8 .cfa: x29 32 +
+STACK CFI 38edc x19: .cfa -16 + ^
+STACK CFI 38f24 x19: x19
+STACK CFI 38f28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38f2c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 38f30 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 38f38 .cfa: x29 64 +
+STACK CFI 38f3c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 38f80 x19: x19 x20: x20
+STACK CFI 38f84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25040 64 .cfa: sp 0 + .ra: x30
+STACK CFI 25044 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25048 .cfa: x29 48 +
+STACK CFI 2504c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25058 x21: .cfa -16 + ^
+STACK CFI 25098 x19: x19 x20: x20
+STACK CFI 2509c x21: x21
+STACK CFI 250a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 144 x23: x23
+STACK CFI 148 x19: x19 x20: x20
+STACK CFI 14c x21: x21 x22: x22
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38f88 34 .cfa: sp 0 + .ra: x30
+STACK CFI 38f8c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 38f90 .cfa: x29 48 +
+STACK CFI 38f94 x19: .cfa -32 + ^
+STACK CFI 38fb4 x19: x19
+STACK CFI 38fb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI c .cfa: x29 272 +
+STACK CFI 10 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 20 x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^
+STACK CFI 28c x19: x19 x20: x20
+STACK CFI 290 x21: x21 x22: x22
+STACK CFI 294 x23: x23 x24: x24
+STACK CFI 298 x25: x25
+STACK CFI 29c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 98 x23: x23
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 262e8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 262ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 262f0 .cfa: x29 64 +
+STACK CFI 262f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26334 x19: x19 x20: x20
+STACK CFI 26338 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38fbc 40 .cfa: sp 0 + .ra: x30
+STACK CFI 38fc0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 38fc4 .cfa: x29 32 +
+STACK CFI 38fc8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 38ff4 x19: x19 x20: x20
+STACK CFI 38ff8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 38ffc 44 .cfa: sp 0 + .ra: x30
+STACK CFI 39000 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 39004 .cfa: x29 32 +
+STACK CFI 39008 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 39038 x19: x19 x20: x20
+STACK CFI 3903c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26440 8c .cfa: sp 0 + .ra: x30
+STACK CFI 26444 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26448 .cfa: x29 64 +
+STACK CFI 2644c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2645c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 264c0 x19: x19 x20: x20
+STACK CFI 264c4 x21: x21 x22: x22
+STACK CFI 264c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 264cc 370 .cfa: sp 0 + .ra: x30
+STACK CFI 264d0 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 264d4 .cfa: x29 368 +
+STACK CFI 264e8 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 26824 x19: x19 x20: x20
+STACK CFI 26828 x21: x21 x22: x22
+STACK CFI 2682c x23: x23 x24: x24
+STACK CFI 26830 x25: x25 x26: x26
+STACK CFI 26834 x27: x27 x28: x28
+STACK CFI 26838 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2683c 28 .cfa: sp 0 + .ra: x30
+STACK CFI 26840 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 26848 .cfa: x29 32 +
+STACK CFI 2684c x19: .cfa -16 + ^
+STACK CFI 2685c x19: x19
+STACK CFI 26860 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26aa8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 26aac .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26ab4 .cfa: x29 336 +
+STACK CFI 26ab8 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26ac0 x21: .cfa -304 + ^
+STACK CFI 26b20 x21: x21
+STACK CFI 26b28 x19: x19 x20: x20
+STACK CFI 26b2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26b30 114 .cfa: sp 0 + .ra: x30
+STACK CFI 26b34 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 26b38 .cfa: x29 224 +
+STACK CFI 26b3c x19: .cfa -208 + ^ x20: .cfa -200 + ^
+STACK CFI 26b48 x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 26c30 x23: x23
+STACK CFI 26c38 x19: x19 x20: x20
+STACK CFI 26c3c x21: x21 x22: x22
+STACK CFI 26c40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c44 44 .cfa: sp 0 + .ra: x30
+STACK CFI 26c48 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 26c4c .cfa: x29 32 +
+STACK CFI 26c58 x19: .cfa -16 + ^
+STACK CFI 26c80 x19: x19
+STACK CFI 26c84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26f1c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 26f20 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 26f28 .cfa: x29 336 +
+STACK CFI 26f2c x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 26f34 x21: .cfa -304 + ^
+STACK CFI 26f68 x21: x21
+STACK CFI 26f70 x19: x19 x20: x20
+STACK CFI 26f74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2744c 134 .cfa: sp 0 + .ra: x30
+STACK CFI 27450 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 27454 .cfa: x29 224 +
+STACK CFI 27460 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 27570 x23: x23
+STACK CFI 27574 x19: x19 x20: x20
+STACK CFI 27578 x21: x21 x22: x22
+STACK CFI 2757c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 39040 354 .cfa: sp 0 + .ra: x30
+STACK CFI 39044 .cfa: sp 4096 +
+STACK CFI 3904c .cfa: sp 5504 +
+STACK CFI 39050 .cfa: sp 5600 + .ra: .cfa -5592 + ^ x29: .cfa -5600 + ^
+STACK CFI 39054 .cfa: x29 5600 +
+STACK CFI 39058 x19: .cfa -5584 + ^ x20: .cfa -5576 + ^
+STACK CFI 39060 x21: .cfa -5568 + ^ x22: .cfa -5560 + ^
+STACK CFI 39074 x23: .cfa -5552 + ^ x24: .cfa -5544 + ^ x25: .cfa -5536 + ^ x26: .cfa -5528 + ^ x27: .cfa -5520 + ^ x28: .cfa -5512 + ^
+STACK CFI 39374 x19: x19 x20: x20
+STACK CFI 39378 x21: x21 x22: x22
+STACK CFI 3937c x23: x23 x24: x24
+STACK CFI 39380 x25: x25 x26: x26
+STACK CFI 39384 x27: x27 x28: x28
+STACK CFI 39388 .cfa: sp 5504 + .ra: .ra x29: x29
+STACK CFI 3938c .cfa: sp 4096 +
+STACK CFI 39390 .cfa: sp 4000 +
+STACK CFI INIT 39394 360 .cfa: sp 0 + .ra: x30
+STACK CFI 39398 .cfa: sp 4096 +
+STACK CFI 393a0 .cfa: sp 5504 +
+STACK CFI 393a4 .cfa: sp 5600 + .ra: .cfa -5592 + ^ x29: .cfa -5600 + ^
+STACK CFI 393a8 .cfa: x29 5600 +
+STACK CFI 393ac x19: .cfa -5584 + ^ x20: .cfa -5576 + ^
+STACK CFI 393b4 x21: .cfa -5568 + ^ x22: .cfa -5560 + ^
+STACK CFI 393c8 x23: .cfa -5552 + ^ x24: .cfa -5544 + ^ x25: .cfa -5536 + ^ x26: .cfa -5528 + ^ x27: .cfa -5520 + ^ x28: .cfa -5512 + ^
+STACK CFI 396d4 x19: x19 x20: x20
+STACK CFI 396d8 x21: x21 x22: x22
+STACK CFI 396dc x23: x23 x24: x24
+STACK CFI 396e0 x25: x25 x26: x26
+STACK CFI 396e4 x27: x27 x28: x28
+STACK CFI 396e8 .cfa: sp 5504 + .ra: .ra x29: x29
+STACK CFI 396ec .cfa: sp 4096 +
+STACK CFI 396f0 .cfa: sp 4000 +
+STACK CFI INIT 26f78 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26f7c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26f80 .cfa: x29 160 +
+STACK CFI 26f88 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27008 x19: x19 x20: x20
+STACK CFI 2700c x21: x21 x22: x22
+STACK CFI 27010 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28208 9c .cfa: sp 0 + .ra: x30
+STACK CFI 2820c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28210 .cfa: x29 160 +
+STACK CFI 28218 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28298 x19: x19 x20: x20
+STACK CFI 2829c x21: x21 x22: x22
+STACK CFI 282a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27d70 5c .cfa: sp 0 + .ra: x30
+STACK CFI 27d74 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 27d7c .cfa: x29 336 +
+STACK CFI 27d80 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27d88 x21: .cfa -304 + ^
+STACK CFI 27dbc x21: x21
+STACK CFI 27dc4 x19: x19 x20: x20
+STACK CFI 27dc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27dcc c0 .cfa: sp 0 + .ra: x30
+STACK CFI 27dd0 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27dd4 .cfa: x29 160 +
+STACK CFI 27de0 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 27e7c x19: x19 x20: x20
+STACK CFI 27e80 x21: x21 x22: x22
+STACK CFI 27e84 x23: x23 x24: x24
+STACK CFI 27e88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 396f4 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 396f8 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 396fc .cfa: x29 416 +
+STACK CFI 39704 x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^
+STACK CFI 3970c x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 397d4 x23: x23
+STACK CFI 397d8 x19: x19 x20: x20
+STACK CFI 397dc x21: x21 x22: x22
+STACK CFI 397e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 21b98 2b8 .cfa: sp 0 + .ra: x30
+STACK CFI 21b9c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 21ba0 .cfa: x29 64 +
+STACK CFI 21ba8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 21e3c x21: x21
+STACK CFI 21e44 x19: x19 x20: x20
+STACK CFI 21e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 397e4 10b4 .cfa: sp 0 + .ra: x30
+STACK CFI 397e8 .cfa: sp 4096 +
+STACK CFI 397ec .cfa: sp 6320 +
+STACK CFI 397f0 .cfa: sp 6416 + .ra: .cfa -6408 + ^ x29: .cfa -6416 + ^
+STACK CFI 397f4 .cfa: x29 6416 +
+STACK CFI 397f8 x19: .cfa -6400 + ^ x20: .cfa -6392 + ^
+STACK CFI 3980c x21: .cfa -6384 + ^ x22: .cfa -6376 + ^ x27: .cfa -6336 + ^
+STACK CFI 3981c x23: .cfa -6368 + ^ x24: .cfa -6360 + ^ x25: .cfa -6352 + ^ x26: .cfa -6344 + ^
+STACK CFI 3a878 x19: x19 x20: x20
+STACK CFI 3a87c x21: x21 x22: x22
+STACK CFI 3a880 x23: x23 x24: x24
+STACK CFI 3a884 x25: x25 x26: x26
+STACK CFI 3a888 x27: x27
+STACK CFI 3a88c .cfa: sp 6320 + .ra: .ra x29: x29
+STACK CFI 3a890 .cfa: sp 4096 +
+STACK CFI 3a894 .cfa: sp 4000 +
+STACK CFI INIT 3a898 aac .cfa: sp 0 + .ra: x30
+STACK CFI 3a89c .cfa: sp 4096 +
+STACK CFI 3a8a0 .cfa: sp 6320 +
+STACK CFI 3a8a4 .cfa: sp 6416 + .ra: .cfa -6408 + ^ x29: .cfa -6416 + ^
+STACK CFI 3a8a8 .cfa: x29 6416 +
+STACK CFI 3a8ac x19: .cfa -6400 + ^ x20: .cfa -6392 + ^
+STACK CFI 3a8c8 x21: .cfa -6384 + ^ x22: .cfa -6376 + ^ x23: .cfa -6368 + ^ x24: .cfa -6360 + ^ x25: .cfa -6352 + ^ x26: .cfa -6344 + ^ x27: .cfa -6336 + ^ x28: .cfa -6328 + ^
+STACK CFI 3b324 x19: x19 x20: x20
+STACK CFI 3b328 x21: x21 x22: x22
+STACK CFI 3b32c x23: x23 x24: x24
+STACK CFI 3b330 x25: x25 x26: x26
+STACK CFI 3b334 x27: x27 x28: x28
+STACK CFI 3b338 .cfa: sp 6320 + .ra: .ra x29: x29
+STACK CFI 3b33c .cfa: sp 4096 +
+STACK CFI 3b340 .cfa: sp 4000 +
+STACK CFI INIT 3b344 b84 .cfa: sp 0 + .ra: x30
+STACK CFI 3b348 .cfa: sp 4096 +
+STACK CFI 3b34c .cfa: sp 6000 +
+STACK CFI 3b350 .cfa: sp 6112 + .ra: .cfa -6104 + ^ x29: .cfa -6112 + ^
+STACK CFI 3b354 .cfa: x29 6112 +
+STACK CFI 3b358 x19: .cfa -6096 + ^ x20: .cfa -6088 + ^
+STACK CFI 3b364 v8: .cfa -6016 + ^
+STACK CFI 3b370 x21: .cfa -6080 + ^ x22: .cfa -6072 + ^ x27: .cfa -6032 + ^ x28: .cfa -6024 + ^
+STACK CFI 3b388 x23: .cfa -6064 + ^ x24: .cfa -6056 + ^ x25: .cfa -6048 + ^ x26: .cfa -6040 + ^
+STACK CFI 3b7d4 v8: v8
+STACK CFI 3b7d8 x19: x19 x20: x20
+STACK CFI 3b7dc x21: x21 x22: x22
+STACK CFI 3b7e0 x23: x23 x24: x24
+STACK CFI 3b7e4 x25: x25 x26: x26
+STACK CFI 3b7e8 x27: x27 x28: x28
+STACK CFI 3b7ec .cfa: sp 6000 + .ra: .ra x29: x29
+STACK CFI 3b7f0 .cfa: sp 4096 +
+STACK CFI 3b7f4 .cfa: sp 3984 +
+STACK CFI 3b7f8 .cfa: x29 6112 + .ra: .cfa -6104 + ^ v8: .cfa -6016 + ^ x19: .cfa -6096 + ^ x20: .cfa -6088 + ^ x21: .cfa -6080 + ^ x22: .cfa -6072 + ^ x23: .cfa -6064 + ^ x24: .cfa -6056 + ^ x25: .cfa -6048 + ^ x26: .cfa -6040 + ^ x27: .cfa -6032 + ^ x28: .cfa -6024 + ^ x29: .cfa -6112 + ^
+STACK CFI INIT 3bec8 3ac .cfa: sp 0 + .ra: x30
+STACK CFI 3becc .cfa: sp 4096 +
+STACK CFI 3bed4 .cfa: sp 5536 +
+STACK CFI 3bed8 .cfa: sp 5632 + .ra: .cfa -5624 + ^ x29: .cfa -5632 + ^
+STACK CFI 3bedc .cfa: x29 5632 +
+STACK CFI 3bee0 x19: .cfa -5616 + ^ x20: .cfa -5608 + ^
+STACK CFI 3beec x21: .cfa -5600 + ^ x22: .cfa -5592 + ^ x27: .cfa -5552 + ^
+STACK CFI 3befc x23: .cfa -5584 + ^ x24: .cfa -5576 + ^ x25: .cfa -5568 + ^ x26: .cfa -5560 + ^
+STACK CFI 3c254 x19: x19 x20: x20
+STACK CFI 3c258 x21: x21 x22: x22
+STACK CFI 3c25c x23: x23 x24: x24
+STACK CFI 3c260 x25: x25 x26: x26
+STACK CFI 3c264 x27: x27
+STACK CFI 3c268 .cfa: sp 5536 + .ra: .ra x29: x29
+STACK CFI 3c26c .cfa: sp 4096 +
+STACK CFI 3c270 .cfa: sp 4000 +
+STACK CFI INIT 3c274 790 .cfa: sp 0 + .ra: x30
+STACK CFI 3c278 .cfa: sp 4096 +
+STACK CFI 3c280 .cfa: sp 5632 +
+STACK CFI 3c284 .cfa: sp 5728 + .ra: .cfa -5720 + ^ x29: .cfa -5728 + ^
+STACK CFI 3c288 .cfa: x29 5728 +
+STACK CFI 3c28c x19: .cfa -5712 + ^ x20: .cfa -5704 + ^
+STACK CFI 3c298 x21: .cfa -5696 + ^ x22: .cfa -5688 + ^ x27: .cfa -5648 + ^
+STACK CFI 3c2a8 x23: .cfa -5680 + ^ x24: .cfa -5672 + ^ x25: .cfa -5664 + ^ x26: .cfa -5656 + ^
+STACK CFI 3c9e4 x19: x19 x20: x20
+STACK CFI 3c9e8 x21: x21 x22: x22
+STACK CFI 3c9ec x23: x23 x24: x24
+STACK CFI 3c9f0 x25: x25 x26: x26
+STACK CFI 3c9f4 x27: x27
+STACK CFI 3c9f8 .cfa: sp 5632 + .ra: .ra x29: x29
+STACK CFI 3c9fc .cfa: sp 4096 +
+STACK CFI 3ca00 .cfa: sp 4000 +
+STACK CFI INIT 3ca04 113c .cfa: sp 0 + .ra: x30
+STACK CFI 3ca08 .cfa: sp 544 +
+STACK CFI 3ca10 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 3ca14 .cfa: x29 688 +
+STACK CFI 3ca1c v8: .cfa -592 + ^ v9: .cfa -584 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^
+STACK CFI 3ca2c v10: .cfa -576 + ^ v11: .cfa -568 + ^ v12: .cfa -560 + ^ v13: .cfa -552 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 3ca44 x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^
+STACK CFI 3ca50 x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 3cdf4 v8: v8 v9: v9
+STACK CFI 3cdf8 x19: x19 x20: x20
+STACK CFI 3cdfc x21: x21 x22: x22
+STACK CFI 3ce00 v10: v10 v11: v11
+STACK CFI 3ce04 x23: x23 x24: x24
+STACK CFI 3ce08 v12: v12 v13: v13
+STACK CFI 3ce0c x25: x25 x26: x26
+STACK CFI 3ce10 x27: x27 x28: x28
+STACK CFI 3ce14 .cfa: sp 544 + .ra: .ra x29: x29
+STACK CFI 3ce18 .cfa: sp 400 +
+STACK CFI 3ce1c .cfa: x29 688 + .ra: .cfa -680 + ^ v10: .cfa -576 + ^ v11: .cfa -568 + ^ v12: .cfa -560 + ^ v13: .cfa -552 + ^ v8: .cfa -592 + ^ v9: .cfa -584 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24d50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 24d54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24d60 .cfa: x29 32 +
+STACK CFI 24d64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 24da8 x19: x19 x20: x20
+STACK CFI 24dac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25040 64 .cfa: sp 0 + .ra: x30
+STACK CFI 25044 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25048 .cfa: x29 48 +
+STACK CFI 2504c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25058 x21: .cfa -16 + ^
+STACK CFI 25098 x19: x19 x20: x20
+STACK CFI 2509c x21: x21
+STACK CFI 250a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 160 x23: x23
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25d14 90 .cfa: sp 0 + .ra: x30
+STACK CFI 25d18 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25d1c .cfa: x29 48 +
+STACK CFI 25d20 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25d2c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 25d98 x19: x19 x20: x20
+STACK CFI 25d9c x21: x21 x22: x22
+STACK CFI 25da0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3db40 390 .cfa: sp 0 + .ra: x30
+STACK CFI 3db44 .cfa: sp 4096 +
+STACK CFI 3db4c .cfa: sp 4208 +
+STACK CFI 3db50 .cfa: sp 4272 + .ra: .cfa -4264 + ^ x29: .cfa -4272 + ^
+STACK CFI 3db54 .cfa: x29 4272 +
+STACK CFI 3db58 x19: .cfa -4256 + ^ x20: .cfa -4248 + ^
+STACK CFI 3db64 x21: .cfa -4240 + ^ x22: .cfa -4232 + ^
+STACK CFI 3db6c x23: .cfa -4224 + ^
+STACK CFI 3deb4 x23: x23
+STACK CFI 3debc x19: x19 x20: x20
+STACK CFI 3dec0 x21: x21 x22: x22
+STACK CFI 3dec4 .cfa: sp 4208 + .ra: .ra x29: x29
+STACK CFI 3dec8 .cfa: sp 4096 +
+STACK CFI 3decc .cfa: sp 4032 +
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3ded0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3ded4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3ded8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dedc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dee0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dee4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dee8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3deec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3def0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3def4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3def8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3defc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df00 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df04 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df08 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df0c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df10 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df14 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df18 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df1c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3df20 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df34 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3df38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3df3c .cfa: x29 32 +
+STACK CFI 3df40 x19: .cfa -16 + ^
+STACK CFI 3df50 x19: x19
+STACK CFI 3df54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3df58 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3df6c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3df70 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3df74 .cfa: x29 32 +
+STACK CFI 3df78 x19: .cfa -16 + ^
+STACK CFI 3df88 x19: x19
+STACK CFI 3df8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3df90 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dfa4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3dfa8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3dfac .cfa: x29 32 +
+STACK CFI 3dfb0 x19: .cfa -16 + ^
+STACK CFI 3dfc0 x19: x19
+STACK CFI 3dfc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3dfc8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3dfdc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3dfe0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3dfe4 .cfa: x29 32 +
+STACK CFI 3dfe8 x19: .cfa -16 + ^
+STACK CFI 3dff8 x19: x19
+STACK CFI 3dffc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e000 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e014 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e018 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e01c .cfa: x29 32 +
+STACK CFI 3e020 x19: .cfa -16 + ^
+STACK CFI 3e030 x19: x19
+STACK CFI 3e034 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e038 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e04c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e050 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e054 .cfa: x29 32 +
+STACK CFI 3e058 x19: .cfa -16 + ^
+STACK CFI 3e068 x19: x19
+STACK CFI 3e06c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e070 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e084 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e088 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e08c .cfa: x29 32 +
+STACK CFI 3e090 x19: .cfa -16 + ^
+STACK CFI 3e0a0 x19: x19
+STACK CFI 3e0a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e0a8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e0bc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e0c0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e0c4 .cfa: x29 32 +
+STACK CFI 3e0c8 x19: .cfa -16 + ^
+STACK CFI 3e0d8 x19: x19
+STACK CFI 3e0dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e0e0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e0f4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e0f8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e0fc .cfa: x29 32 +
+STACK CFI 3e100 x19: .cfa -16 + ^
+STACK CFI 3e110 x19: x19
+STACK CFI 3e114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e118 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 3e12c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 3e130 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e134 .cfa: x29 32 +
+STACK CFI 3e138 x19: .cfa -16 + ^
+STACK CFI 3e148 x19: x19
+STACK CFI 3e14c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e150 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e154 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e15c .cfa: x29 32 +
+STACK CFI 3e160 x19: .cfa -16 + ^
+STACK CFI 3e184 x19: x19
+STACK CFI 3e188 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e18c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e190 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e198 .cfa: x29 32 +
+STACK CFI 3e19c x19: .cfa -16 + ^
+STACK CFI 3e1c0 x19: x19
+STACK CFI 3e1c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e1c8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e1cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e1d4 .cfa: x29 32 +
+STACK CFI 3e1d8 x19: .cfa -16 + ^
+STACK CFI 3e1fc x19: x19
+STACK CFI 3e200 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e204 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e208 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e210 .cfa: x29 32 +
+STACK CFI 3e214 x19: .cfa -16 + ^
+STACK CFI 3e238 x19: x19
+STACK CFI 3e23c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e240 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e244 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e24c .cfa: x29 32 +
+STACK CFI 3e250 x19: .cfa -16 + ^
+STACK CFI 3e274 x19: x19
+STACK CFI 3e278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e27c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e280 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e288 .cfa: x29 32 +
+STACK CFI 3e28c x19: .cfa -16 + ^
+STACK CFI 3e2b0 x19: x19
+STACK CFI 3e2b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e2b8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e2bc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e2c4 .cfa: x29 32 +
+STACK CFI 3e2c8 x19: .cfa -16 + ^
+STACK CFI 3e2ec x19: x19
+STACK CFI 3e2f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e2f4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e2f8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e300 .cfa: x29 32 +
+STACK CFI 3e304 x19: .cfa -16 + ^
+STACK CFI 3e328 x19: x19
+STACK CFI 3e32c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e330 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e334 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e33c .cfa: x29 32 +
+STACK CFI 3e340 x19: .cfa -16 + ^
+STACK CFI 3e364 x19: x19
+STACK CFI 3e368 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e36c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 3e370 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 3e378 .cfa: x29 32 +
+STACK CFI 3e37c x19: .cfa -16 + ^
+STACK CFI 3e3a0 x19: x19
+STACK CFI 3e3a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e3a8 1cc .cfa: sp 0 + .ra: x30
+STACK CFI 3e3ac .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 3e3b0 .cfa: x29 96 +
+STACK CFI 3e3c4 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^
+STACK CFI 3e55c x27: x27
+STACK CFI 3e560 x19: x19 x20: x20
+STACK CFI 3e564 x21: x21 x22: x22
+STACK CFI 3e568 x23: x23 x24: x24
+STACK CFI 3e56c x25: x25 x26: x26
+STACK CFI 3e570 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fe54 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2fe64 68 .cfa: sp 0 + .ra: x30
+STACK CFI 2fe68 .cfa: sp 4096 +
+STACK CFI 2fe7c .cfa: sp 4128 + .ra: .cfa -4120 + ^ x29: .cfa -4128 + ^
+STACK CFI 2fe80 .cfa: x29 4128 +
+STACK CFI 2fe84 x19: .cfa -4112 + ^ x20: .cfa -4104 + ^
+STACK CFI 2fec0 x19: x19 x20: x20
+STACK CFI 2fec4 .cfa: sp 4096 + .ra: .ra x29: x29
+STACK CFI 2fec8 .cfa: sp 4064 +
+STACK CFI INIT 3e574 ac .cfa: sp 0 + .ra: x30
+STACK CFI 3e578 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 3e57c .cfa: x29 48 +
+STACK CFI 3e580 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 3e58c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 3e600 x19: x19 x20: x20
+STACK CFI 3e604 x21: x21 x22: x22
+STACK CFI 3e608 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 3e610 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 3e614 x19: x19 x20: x20
+STACK CFI 3e618 x21: x21 x22: x22
+STACK CFI 3e61c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3e620 1ac .cfa: sp 0 + .ra: x30
+STACK CFI 3e624 .cfa: sp 640 +
+STACK CFI 3e630 .cfa: sp 704 + .ra: .cfa -696 + ^ x29: .cfa -704 + ^
+STACK CFI 3e634 .cfa: x29 704 +
+STACK CFI 3e638 x21: .cfa -672 + ^ x22: .cfa -664 + ^
+STACK CFI 3e64c x19: .cfa -688 + ^ x20: .cfa -680 + ^ x23: .cfa -656 + ^
+STACK CFI 3e7b8 x23: x23
+STACK CFI 3e7bc x19: x19 x20: x20
+STACK CFI 3e7c0 x21: x21 x22: x22
+STACK CFI 3e7c4 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3e7c8 .cfa: sp 576 +
+STACK CFI INIT 3e7cc 2fc .cfa: sp 0 + .ra: x30
+STACK CFI 3e7d0 .cfa: sp 640 +
+STACK CFI 3e7dc .cfa: sp 720 + .ra: .cfa -712 + ^ x29: .cfa -720 + ^
+STACK CFI 3e7e0 .cfa: x29 720 +
+STACK CFI 3e7e4 x23: .cfa -672 + ^ x24: .cfa -664 + ^
+STACK CFI 3e7f8 x19: .cfa -704 + ^ x20: .cfa -696 + ^ x21: .cfa -688 + ^ x22: .cfa -680 + ^ x25: .cfa -656 + ^
+STACK CFI 3eab0 x25: x25
+STACK CFI 3eab4 x19: x19 x20: x20
+STACK CFI 3eab8 x21: x21 x22: x22
+STACK CFI 3eabc x23: x23 x24: x24
+STACK CFI 3eac0 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3eac4 .cfa: sp 560 +
+STACK CFI INIT 3eac8 420 .cfa: sp 0 + .ra: x30
+STACK CFI 3eacc .cfa: sp 640 +
+STACK CFI 3ead8 .cfa: sp 736 + .ra: .cfa -728 + ^ x29: .cfa -736 + ^
+STACK CFI 3eadc .cfa: x29 736 +
+STACK CFI 3eae0 x23: .cfa -688 + ^ x24: .cfa -680 + ^
+STACK CFI 3eaf8 x19: .cfa -720 + ^ x20: .cfa -712 + ^ x21: .cfa -704 + ^ x22: .cfa -696 + ^ x25: .cfa -672 + ^ x26: .cfa -664 + ^ x27: .cfa -656 + ^
+STACK CFI 3eecc x27: x27
+STACK CFI 3eed0 x19: x19 x20: x20
+STACK CFI 3eed4 x21: x21 x22: x22
+STACK CFI 3eed8 x23: x23 x24: x24
+STACK CFI 3eedc x25: x25 x26: x26
+STACK CFI 3eee0 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3eee4 .cfa: sp 544 +
+STACK CFI INIT 3eee8 2fc .cfa: sp 0 + .ra: x30
+STACK CFI 3eeec .cfa: sp 640 +
+STACK CFI 3eef8 .cfa: sp 720 + .ra: .cfa -712 + ^ x29: .cfa -720 + ^
+STACK CFI 3eefc .cfa: x29 720 +
+STACK CFI 3ef00 x23: .cfa -672 + ^ x24: .cfa -664 + ^
+STACK CFI 3ef14 x19: .cfa -704 + ^ x20: .cfa -696 + ^ x21: .cfa -688 + ^ x22: .cfa -680 + ^ x25: .cfa -656 + ^
+STACK CFI 3f1cc x25: x25
+STACK CFI 3f1d0 x19: x19 x20: x20
+STACK CFI 3f1d4 x21: x21 x22: x22
+STACK CFI 3f1d8 x23: x23 x24: x24
+STACK CFI 3f1dc .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3f1e0 .cfa: sp 560 +
+STACK CFI INIT 3f1e4 2fc .cfa: sp 0 + .ra: x30
+STACK CFI 3f1e8 .cfa: sp 640 +
+STACK CFI 3f1f4 .cfa: sp 720 + .ra: .cfa -712 + ^ x29: .cfa -720 + ^
+STACK CFI 3f1f8 .cfa: x29 720 +
+STACK CFI 3f1fc x23: .cfa -672 + ^ x24: .cfa -664 + ^
+STACK CFI 3f210 x19: .cfa -704 + ^ x20: .cfa -696 + ^ x21: .cfa -688 + ^ x22: .cfa -680 + ^ x25: .cfa -656 + ^
+STACK CFI 3f4c8 x25: x25
+STACK CFI 3f4cc x19: x19 x20: x20
+STACK CFI 3f4d0 x21: x21 x22: x22
+STACK CFI 3f4d4 x23: x23 x24: x24
+STACK CFI 3f4d8 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3f4dc .cfa: sp 560 +
+STACK CFI INIT 3f4e0 2fc .cfa: sp 0 + .ra: x30
+STACK CFI 3f4e4 .cfa: sp 640 +
+STACK CFI 3f4f0 .cfa: sp 720 + .ra: .cfa -712 + ^ x29: .cfa -720 + ^
+STACK CFI 3f4f4 .cfa: x29 720 +
+STACK CFI 3f4f8 x23: .cfa -672 + ^ x24: .cfa -664 + ^
+STACK CFI 3f50c x19: .cfa -704 + ^ x20: .cfa -696 + ^ x21: .cfa -688 + ^ x22: .cfa -680 + ^ x25: .cfa -656 + ^
+STACK CFI 3f7c4 x25: x25
+STACK CFI 3f7c8 x19: x19 x20: x20
+STACK CFI 3f7cc x21: x21 x22: x22
+STACK CFI 3f7d0 x23: x23 x24: x24
+STACK CFI 3f7d4 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3f7d8 .cfa: sp 560 +
+STACK CFI INIT 3f7dc 43c .cfa: sp 0 + .ra: x30
+STACK CFI 3f7e0 .cfa: sp 640 +
+STACK CFI 3f7ec .cfa: sp 768 + .ra: .cfa -760 + ^ x29: .cfa -768 + ^
+STACK CFI 3f7f0 .cfa: x29 768 +
+STACK CFI 3f7f8 v8: .cfa -672 + ^ v9: .cfa -664 + ^ x23: .cfa -720 + ^ x24: .cfa -712 + ^
+STACK CFI 3f814 v10: .cfa -656 + ^ x19: .cfa -752 + ^ x20: .cfa -744 + ^ x21: .cfa -736 + ^ x22: .cfa -728 + ^ x25: .cfa -704 + ^ x26: .cfa -696 + ^ x27: .cfa -688 + ^ x28: .cfa -680 + ^
+STACK CFI 3fbf4 v8: v8 v9: v9
+STACK CFI 3fbf8 x19: x19 x20: x20
+STACK CFI 3fbfc x21: x21 x22: x22
+STACK CFI 3fc00 x23: x23 x24: x24
+STACK CFI 3fc04 x25: x25 x26: x26
+STACK CFI 3fc08 x27: x27 x28: x28
+STACK CFI 3fc0c v10: v10
+STACK CFI 3fc10 .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3fc14 .cfa: sp 512 +
+STACK CFI INIT 3fc18 2fc .cfa: sp 0 + .ra: x30
+STACK CFI 3fc1c .cfa: sp 640 +
+STACK CFI 3fc28 .cfa: sp 720 + .ra: .cfa -712 + ^ x29: .cfa -720 + ^
+STACK CFI 3fc2c .cfa: x29 720 +
+STACK CFI 3fc30 x23: .cfa -672 + ^ x24: .cfa -664 + ^
+STACK CFI 3fc44 x19: .cfa -704 + ^ x20: .cfa -696 + ^ x21: .cfa -688 + ^ x22: .cfa -680 + ^ x25: .cfa -656 + ^
+STACK CFI 3fefc x25: x25
+STACK CFI 3ff00 x19: x19 x20: x20
+STACK CFI 3ff04 x21: x21 x22: x22
+STACK CFI 3ff08 x23: x23 x24: x24
+STACK CFI 3ff0c .cfa: sp 640 + .ra: .ra x29: x29
+STACK CFI 3ff10 .cfa: sp 560 +
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 130 x21: x21
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3483c e8 .cfa: sp 0 + .ra: x30
+STACK CFI 34840 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 34844 .cfa: x29 480 +
+STACK CFI 34848 x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 34854 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 34870 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 3490c x25: x25
+STACK CFI 34914 x19: x19 x20: x20
+STACK CFI 34918 x21: x21 x22: x22
+STACK CFI 3491c x23: x23 x24: x24
+STACK CFI 34920 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3ff14 3b8 .cfa: sp 0 + .ra: x30
+STACK CFI 3ff18 .cfa: sp 656 +
+STACK CFI 3ff24 .cfa: sp 736 + .ra: .cfa -728 + ^ x29: .cfa -736 + ^
+STACK CFI 3ff28 .cfa: x29 736 +
+STACK CFI 3ff2c x23: .cfa -688 + ^ x24: .cfa -680 + ^
+STACK CFI 3ff40 x19: .cfa -720 + ^ x20: .cfa -712 + ^ x21: .cfa -704 + ^ x22: .cfa -696 + ^ x25: .cfa -672 + ^
+STACK CFI 402b4 x25: x25
+STACK CFI 402b8 x19: x19 x20: x20
+STACK CFI 402bc x21: x21 x22: x22
+STACK CFI 402c0 x23: x23 x24: x24
+STACK CFI 402c4 .cfa: sp 656 + .ra: .ra x29: x29
+STACK CFI 402c8 .cfa: sp 576 +
+STACK CFI INIT 402cc 3c0 .cfa: sp 0 + .ra: x30
+STACK CFI 402d0 .cfa: sp 656 +
+STACK CFI 402dc .cfa: sp 736 + .ra: .cfa -728 + ^ x29: .cfa -736 + ^
+STACK CFI 402e0 .cfa: x29 736 +
+STACK CFI 402e4 x23: .cfa -688 + ^ x24: .cfa -680 + ^
+STACK CFI 402f8 x19: .cfa -720 + ^ x20: .cfa -712 + ^ x21: .cfa -704 + ^ x22: .cfa -696 + ^ x25: .cfa -672 + ^
+STACK CFI 40674 x25: x25
+STACK CFI 40678 x19: x19 x20: x20
+STACK CFI 4067c x21: x21 x22: x22
+STACK CFI 40680 x23: x23 x24: x24
+STACK CFI 40684 .cfa: sp 656 + .ra: .ra x29: x29
+STACK CFI 40688 .cfa: sp 576 +
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 21e50 358 .cfa: sp 0 + .ra: x30
+STACK CFI 21e54 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 21e58 .cfa: x29 64 +
+STACK CFI 21e60 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 22194 x21: x21
+STACK CFI 2219c x19: x19 x20: x20
+STACK CFI 221a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4068c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 40690 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 40694 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 40698 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4069c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 406a0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 406a4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 406b8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 406bc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 406c0 .cfa: x29 32 +
+STACK CFI 406c4 x19: .cfa -16 + ^
+STACK CFI 406d4 x19: x19
+STACK CFI 406d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 406dc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 406f0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 406f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 406f8 .cfa: x29 32 +
+STACK CFI 406fc x19: .cfa -16 + ^
+STACK CFI 4070c x19: x19
+STACK CFI 40710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40714 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 40728 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4072c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40730 .cfa: x29 32 +
+STACK CFI 40734 x19: .cfa -16 + ^
+STACK CFI 40744 x19: x19
+STACK CFI 40748 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4074c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 40750 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40758 .cfa: x29 32 +
+STACK CFI 4075c x19: .cfa -16 + ^
+STACK CFI 40780 x19: x19
+STACK CFI 40784 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40788 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4078c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40794 .cfa: x29 32 +
+STACK CFI 40798 x19: .cfa -16 + ^
+STACK CFI 407bc x19: x19
+STACK CFI 407c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 407c4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 407c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 407d0 .cfa: x29 32 +
+STACK CFI 407d4 x19: .cfa -16 + ^
+STACK CFI 407f8 x19: x19
+STACK CFI 407fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 140 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 x21: x21 x22: x22
+STACK CFI 13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40800 50 .cfa: sp 0 + .ra: x30
+STACK CFI 40804 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40810 .cfa: x29 32 +
+STACK CFI 40814 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4081c x19: x19 x20: x20
+STACK CFI 40824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4082c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 40848 x19: x19 x20: x20
+STACK CFI 4084c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40850 50 .cfa: sp 0 + .ra: x30
+STACK CFI 40854 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40860 .cfa: x29 32 +
+STACK CFI 40864 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4086c x19: x19 x20: x20
+STACK CFI 40874 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4087c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 40898 x19: x19 x20: x20
+STACK CFI 4089c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 144 x23: x23
+STACK CFI 148 x19: x19 x20: x20
+STACK CFI 14c x21: x21 x22: x22
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI c .cfa: x29 272 +
+STACK CFI 10 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 20 x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^
+STACK CFI 298 x19: x19 x20: x20
+STACK CFI 29c x21: x21 x22: x22
+STACK CFI 2a0 x23: x23 x24: x24
+STACK CFI 2a4 x25: x25
+STACK CFI 2a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 408a0 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 408a4 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 408a8 .cfa: x29 480 +
+STACK CFI 408ac x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 408b8 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 408d4 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 40970 x25: x25
+STACK CFI 40978 x19: x19 x20: x20
+STACK CFI 4097c x21: x21 x22: x22
+STACK CFI 40980 x23: x23 x24: x24
+STACK CFI 40984 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40988 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 4098c .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 40990 .cfa: x29 480 +
+STACK CFI 40994 x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 409a0 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 409bc x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 40a58 x25: x25
+STACK CFI 40a60 x19: x19 x20: x20
+STACK CFI 40a64 x21: x21 x22: x22
+STACK CFI 40a68 x23: x23 x24: x24
+STACK CFI 40a6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40a70 50 .cfa: sp 0 + .ra: x30
+STACK CFI 40a74 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 40a78 .cfa: x29 48 +
+STACK CFI 40a80 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 40ab4 x19: x19 x20: x20
+STACK CFI 40ab8 x21: x21
+STACK CFI 40abc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40ac0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 40ac4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 40ac8 .cfa: x29 32 +
+STACK CFI 40ad0 x19: .cfa -16 + ^
+STACK CFI 40af4 x19: x19
+STACK CFI 40af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26440 8c .cfa: sp 0 + .ra: x30
+STACK CFI 26444 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26448 .cfa: x29 64 +
+STACK CFI 2644c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2645c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 264c0 x19: x19 x20: x20
+STACK CFI 264c4 x21: x21 x22: x22
+STACK CFI 264c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 264cc 370 .cfa: sp 0 + .ra: x30
+STACK CFI 264d0 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 264d4 .cfa: x29 368 +
+STACK CFI 264e8 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 26824 x19: x19 x20: x20
+STACK CFI 26828 x21: x21 x22: x22
+STACK CFI 2682c x23: x23 x24: x24
+STACK CFI 26830 x25: x25 x26: x26
+STACK CFI 26834 x27: x27 x28: x28
+STACK CFI 26838 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31bb0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c0c 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c68 124 .cfa: sp 0 + .ra: x30
+STACK CFI 31c6c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 31c70 .cfa: x29 48 +
+STACK CFI 31c78 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 31ca0 x19: x19 x20: x20
+STACK CFI 31ca4 x21: x21 x22: x22
+STACK CFI 31ca8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 31cac .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 40afc 11c .cfa: sp 0 + .ra: x30
+STACK CFI 40b00 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 40b08 .cfa: x29 80 +
+STACK CFI 40b14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 40c08 x19: x19 x20: x20
+STACK CFI 40c0c x21: x21 x22: x22
+STACK CFI 40c10 x23: x23
+STACK CFI 40c14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40c18 118 .cfa: sp 0 + .ra: x30
+STACK CFI 40c1c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 40c28 .cfa: x29 48 +
+STACK CFI 40c2c x19: .cfa -32 + ^
+STACK CFI 40d28 x19: x19
+STACK CFI 40d2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27b7c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 27b80 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27b84 .cfa: x29 160 +
+STACK CFI 27b8c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27c0c x19: x19 x20: x20
+STACK CFI 27c10 x21: x21 x22: x22
+STACK CFI 27c14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 40d30 3c8 .cfa: sp 0 + .ra: x30
+STACK CFI 40d34 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 40d38 .cfa: x29 192 +
+STACK CFI 40d3c x21: .cfa -160 + ^ x22: .cfa -152 + ^
+STACK CFI 40d50 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x23: .cfa -144 + ^
+STACK CFI 410e8 x23: x23
+STACK CFI 410ec x19: x19 x20: x20
+STACK CFI 410f0 x21: x21 x22: x22
+STACK CFI 410f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 410f8 1258 .cfa: sp 0 + .ra: x30
+STACK CFI 410fc .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 41100 .cfa: x29 416 +
+STACK CFI 41104 x25: .cfa -352 + ^ x26: .cfa -344 + ^
+STACK CFI 41120 v8: .cfa -320 + ^ x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x27: .cfa -336 + ^ x28: .cfa -328 + ^
+STACK CFI 42334 v8: v8
+STACK CFI 42338 x19: x19 x20: x20
+STACK CFI 4233c x21: x21 x22: x22
+STACK CFI 42340 x23: x23 x24: x24
+STACK CFI 42344 x25: x25 x26: x26
+STACK CFI 42348 x27: x27 x28: x28
+STACK CFI 4234c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28208 9c .cfa: sp 0 + .ra: x30
+STACK CFI 2820c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28210 .cfa: x29 160 +
+STACK CFI 28218 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28298 x19: x19 x20: x20
+STACK CFI 2829c x21: x21 x22: x22
+STACK CFI 282a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2816c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 28170 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28174 .cfa: x29 160 +
+STACK CFI 2817c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 281fc x19: x19 x20: x20
+STACK CFI 28200 x21: x21 x22: x22
+STACK CFI 28204 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI c .cfa: x29 384 +
+STACK CFI 10 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 20 x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 28 x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 124 x19: x19 x20: x20
+STACK CFI 128 x21: x21 x22: x22
+STACK CFI 12c x23: x23 x24: x24
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42350 b1c .cfa: sp 0 + .ra: x30
+STACK CFI 42354 .cfa: sp 464 +
+STACK CFI 42358 .cfa: sp 624 + .ra: .cfa -616 + ^ x29: .cfa -624 + ^
+STACK CFI 4235c .cfa: x29 624 +
+STACK CFI 42364 v8: .cfa -528 + ^ v9: .cfa -520 + ^ x25: .cfa -560 + ^ x26: .cfa -552 + ^
+STACK CFI 42388 v10: .cfa -512 + ^ v11: .cfa -504 + ^ v12: .cfa -496 + ^ v13: .cfa -488 + ^ v14: .cfa -480 + ^ v15: .cfa -472 + ^ x19: .cfa -608 + ^ x20: .cfa -600 + ^ x21: .cfa -592 + ^ x22: .cfa -584 + ^ x23: .cfa -576 + ^ x24: .cfa -568 + ^ x27: .cfa -544 + ^ x28: .cfa -536 + ^
+STACK CFI 42e40 v8: v8 v9: v9
+STACK CFI 42e44 x19: x19 x20: x20
+STACK CFI 42e48 x21: x21 x22: x22
+STACK CFI 42e4c v10: v10 v11: v11
+STACK CFI 42e50 x23: x23 x24: x24
+STACK CFI 42e54 v12: v12 v13: v13
+STACK CFI 42e58 x25: x25 x26: x26
+STACK CFI 42e5c v14: v14 v15: v15
+STACK CFI 42e60 x27: x27 x28: x28
+STACK CFI 42e64 .cfa: sp 464 + .ra: .ra x29: x29
+STACK CFI 42e68 .cfa: sp 304 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 221a8 128 .cfa: sp 0 + .ra: x30
+STACK CFI 221ac .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 221b0 .cfa: x29 64 +
+STACK CFI 221b8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 222bc x21: x21
+STACK CFI 222c4 x19: x19 x20: x20
+STACK CFI 222c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e6c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e70 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e74 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e78 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e7c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e80 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e84 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e88 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42e8c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e90 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e94 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e98 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42e9c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42ea0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42ea4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 42ea8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42eac 48 .cfa: sp 0 + .ra: x30
+STACK CFI 42eb0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 42eb8 .cfa: x29 32 +
+STACK CFI 42ebc x19: .cfa -16 + ^
+STACK CFI 42eec x19: x19
+STACK CFI 42ef0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42ef4 48 .cfa: sp 0 + .ra: x30
+STACK CFI 42ef8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 42f00 .cfa: x29 32 +
+STACK CFI 42f04 x19: .cfa -16 + ^
+STACK CFI 42f34 x19: x19
+STACK CFI 42f38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42f3c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 42f40 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 42f48 .cfa: x29 32 +
+STACK CFI 42f4c x19: .cfa -16 + ^
+STACK CFI 42f7c x19: x19
+STACK CFI 42f80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42f84 48 .cfa: sp 0 + .ra: x30
+STACK CFI 42f88 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 42f90 .cfa: x29 32 +
+STACK CFI 42f94 x19: .cfa -16 + ^
+STACK CFI 42fc4 x19: x19
+STACK CFI 42fc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 42fcc 48 .cfa: sp 0 + .ra: x30
+STACK CFI 42fd0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 42fd8 .cfa: x29 32 +
+STACK CFI 42fdc x19: .cfa -16 + ^
+STACK CFI 4300c x19: x19
+STACK CFI 43010 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43014 48 .cfa: sp 0 + .ra: x30
+STACK CFI 43018 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43020 .cfa: x29 32 +
+STACK CFI 43024 x19: .cfa -16 + ^
+STACK CFI 43054 x19: x19
+STACK CFI 43058 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4305c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 43060 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43068 .cfa: x29 32 +
+STACK CFI 4306c x19: .cfa -16 + ^
+STACK CFI 4309c x19: x19
+STACK CFI 430a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 430a4 48 .cfa: sp 0 + .ra: x30
+STACK CFI 430a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 430b0 .cfa: x29 32 +
+STACK CFI 430b4 x19: .cfa -16 + ^
+STACK CFI 430e4 x19: x19
+STACK CFI 430e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 430ec 38 .cfa: sp 0 + .ra: x30
+STACK CFI 430f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 430fc .cfa: x29 32 +
+STACK CFI 43100 x19: .cfa -16 + ^
+STACK CFI 4311c x19: x19
+STACK CFI 43120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 43124 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43134 1b0 .cfa: sp 0 + .ra: x30
+STACK CFI 43138 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 43140 .cfa: x29 96 +
+STACK CFI 43150 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 432d0 x19: x19 x20: x20
+STACK CFI 432d4 x21: x21 x22: x22
+STACK CFI 432d8 x23: x23 x24: x24
+STACK CFI 432dc x25: x25 x26: x26
+STACK CFI 432e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 432e4 70 .cfa: sp 0 + .ra: x30
+STACK CFI 432ec .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 432f0 .cfa: x29 48 +
+STACK CFI 432fc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 43348 x21: x21
+STACK CFI 4334c x19: x19 x20: x20
+STACK CFI 43350 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43354 24 .cfa: sp 0 + .ra: x30
+STACK CFI 43358 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4335c .cfa: x29 32 +
+STACK CFI 43360 x19: .cfa -16 + ^
+STACK CFI 43370 x19: x19
+STACK CFI 43374 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43378 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4338c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 43390 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43394 .cfa: x29 32 +
+STACK CFI 43398 x19: .cfa -16 + ^
+STACK CFI 433a8 x19: x19
+STACK CFI 433ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 144 x23: x23
+STACK CFI 148 x19: x19 x20: x20
+STACK CFI 14c x21: x21 x22: x22
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 433b0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 433b4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 433b8 .cfa: x29 48 +
+STACK CFI 433c0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4340c x19: x19 x20: x20
+STACK CFI 43410 x21: x21 x22: x22
+STACK CFI 43414 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25040 64 .cfa: sp 0 + .ra: x30
+STACK CFI 25044 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25048 .cfa: x29 48 +
+STACK CFI 2504c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25058 x21: .cfa -16 + ^
+STACK CFI 25098 x19: x19 x20: x20
+STACK CFI 2509c x21: x21
+STACK CFI 250a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e18 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24e1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24e24 .cfa: x29 32 +
+STACK CFI 24e28 x19: .cfa -16 + ^
+STACK CFI 24e44 x19: x19
+STACK CFI 24e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43418 50 .cfa: sp 0 + .ra: x30
+STACK CFI 4341c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 43420 .cfa: x29 48 +
+STACK CFI 43424 x19: .cfa -32 + ^
+STACK CFI 43460 x19: x19
+STACK CFI 43464 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26030 98 .cfa: sp 0 + .ra: x30
+STACK CFI 26034 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 26038 .cfa: x29 128 +
+STACK CFI 26044 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 260b8 x23: x23
+STACK CFI 260bc x19: x19 x20: x20
+STACK CFI 260c0 x21: x21 x22: x22
+STACK CFI 260c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24f58 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 24f5c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24f60 .cfa: x29 64 +
+STACK CFI 24f64 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 24f70 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 25034 x19: x19 x20: x20
+STACK CFI 25038 x21: x21 x22: x22
+STACK CFI 2503c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e9c bc .cfa: sp 0 + .ra: x30
+STACK CFI 24ea0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24ea4 .cfa: x29 64 +
+STACK CFI 24eac x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24f4c x21: x21
+STACK CFI 24f50 x19: x19 x20: x20
+STACK CFI 24f54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43468 80 .cfa: sp 0 + .ra: x30
+STACK CFI 4346c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 43474 .cfa: x29 64 +
+STACK CFI 4347c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 434dc x21: x21
+STACK CFI 434e0 x19: x19 x20: x20
+STACK CFI 434e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 434e8 88 .cfa: sp 0 + .ra: x30
+STACK CFI 434ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 434f0 .cfa: x29 64 +
+STACK CFI 434f8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 43564 x21: x21
+STACK CFI 43568 x19: x19 x20: x20
+STACK CFI 4356c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43570 88 .cfa: sp 0 + .ra: x30
+STACK CFI 43574 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 43578 .cfa: x29 48 +
+STACK CFI 43580 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 435e8 x21: x21
+STACK CFI 435f0 x19: x19 x20: x20
+STACK CFI 435f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 435f8 64 .cfa: sp 0 + .ra: x30
+STACK CFI 435fc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 43600 .cfa: x29 48 +
+STACK CFI 43608 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 43650 x19: x19 x20: x20
+STACK CFI 43654 x21: x21 x22: x22
+STACK CFI 43658 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4365c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 43664 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43668 .cfa: x29 32 +
+STACK CFI 43670 x19: .cfa -16 + ^
+STACK CFI 4369c x19: x19
+STACK CFI 436a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 436a4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 436a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 436ac .cfa: x29 32 +
+STACK CFI 436b0 x19: .cfa -16 + ^
+STACK CFI 436c0 x19: x19
+STACK CFI 436c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 436c8 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 436cc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 436d0 .cfa: x29 48 +
+STACK CFI 436d4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 436e0 x21: .cfa -16 + ^
+STACK CFI 43770 x21: x21
+STACK CFI 43778 x19: x19 x20: x20
+STACK CFI 4377c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43780 24 .cfa: sp 0 + .ra: x30
+STACK CFI 43784 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43788 .cfa: x29 32 +
+STACK CFI 4378c x19: .cfa -16 + ^
+STACK CFI 4379c x19: x19
+STACK CFI 437a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 437a4 128 .cfa: sp 0 + .ra: x30
+STACK CFI 437a8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 437ac .cfa: x29 96 +
+STACK CFI 437b0 x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 437bc x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 437c8 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 438bc x19: x19 x20: x20
+STACK CFI 438c0 x21: x21 x22: x22
+STACK CFI 438c4 x23: x23 x24: x24
+STACK CFI 438c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26440 8c .cfa: sp 0 + .ra: x30
+STACK CFI 26444 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26448 .cfa: x29 64 +
+STACK CFI 2644c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2645c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 264c0 x19: x19 x20: x20
+STACK CFI 264c4 x21: x21 x22: x22
+STACK CFI 264c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 438cc 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 438d0 .cfa: sp 480 +
+STACK CFI 438d4 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 438d8 .cfa: x29 576 +
+STACK CFI 438e0 x19: .cfa -560 + ^ x20: .cfa -552 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 438fc x21: .cfa -544 + ^ x22: .cfa -536 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 43914 x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 43a6c x19: x19 x20: x20
+STACK CFI 43a70 x21: x21 x22: x22
+STACK CFI 43a74 x23: x23 x24: x24
+STACK CFI 43a78 x25: x25 x26: x26
+STACK CFI 43a7c x27: x27 x28: x28
+STACK CFI 43a80 .cfa: sp 480 + .ra: .ra x29: x29
+STACK CFI 43a88 .cfa: sp 384 +
+STACK CFI INIT 43a8c 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 43a90 .cfa: sp 512 +
+STACK CFI 43a94 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 43a98 .cfa: x29 608 +
+STACK CFI 43aa0 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^
+STACK CFI 43ab8 x27: .cfa -528 + ^ x28: .cfa -520 + ^
+STACK CFI 43ad0 x23: .cfa -560 + ^ x24: .cfa -552 + ^ x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 43c64 x19: x19 x20: x20
+STACK CFI 43c68 x21: x21 x22: x22
+STACK CFI 43c6c x23: x23 x24: x24
+STACK CFI 43c70 x25: x25 x26: x26
+STACK CFI 43c74 x27: x27 x28: x28
+STACK CFI 43c78 .cfa: sp 512 + .ra: .ra x29: x29
+STACK CFI 43c7c .cfa: sp 416 +
+STACK CFI INIT 43c80 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 43c84 .cfa: sp 480 +
+STACK CFI 43c88 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 43c8c .cfa: x29 576 +
+STACK CFI 43c94 x19: .cfa -560 + ^ x20: .cfa -552 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 43cb0 x21: .cfa -544 + ^ x22: .cfa -536 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 43cc8 x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 43e20 x19: x19 x20: x20
+STACK CFI 43e24 x21: x21 x22: x22
+STACK CFI 43e28 x23: x23 x24: x24
+STACK CFI 43e2c x25: x25 x26: x26
+STACK CFI 43e30 x27: x27 x28: x28
+STACK CFI 43e34 .cfa: sp 480 + .ra: .ra x29: x29
+STACK CFI 43e3c .cfa: sp 384 +
+STACK CFI INIT 43e40 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 43e44 .cfa: sp 512 +
+STACK CFI 43e48 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 43e4c .cfa: x29 608 +
+STACK CFI 43e54 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^
+STACK CFI 43e6c x27: .cfa -528 + ^ x28: .cfa -520 + ^
+STACK CFI 43e84 x23: .cfa -560 + ^ x24: .cfa -552 + ^ x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 44018 x19: x19 x20: x20
+STACK CFI 4401c x21: x21 x22: x22
+STACK CFI 44020 x23: x23 x24: x24
+STACK CFI 44024 x25: x25 x26: x26
+STACK CFI 44028 x27: x27 x28: x28
+STACK CFI 4402c .cfa: sp 512 + .ra: .ra x29: x29
+STACK CFI 44030 .cfa: sp 416 +
+STACK CFI INIT 44034 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 44038 .cfa: sp 480 +
+STACK CFI 4403c .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 44040 .cfa: x29 576 +
+STACK CFI 44048 x19: .cfa -560 + ^ x20: .cfa -552 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 44064 x21: .cfa -544 + ^ x22: .cfa -536 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 4407c x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 441d4 x19: x19 x20: x20
+STACK CFI 441d8 x21: x21 x22: x22
+STACK CFI 441dc x23: x23 x24: x24
+STACK CFI 441e0 x25: x25 x26: x26
+STACK CFI 441e4 x27: x27 x28: x28
+STACK CFI 441e8 .cfa: sp 480 + .ra: .ra x29: x29
+STACK CFI 441f0 .cfa: sp 384 +
+STACK CFI INIT 441f4 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 441f8 .cfa: sp 512 +
+STACK CFI 441fc .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 44200 .cfa: x29 608 +
+STACK CFI 44208 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^
+STACK CFI 44220 x27: .cfa -528 + ^ x28: .cfa -520 + ^
+STACK CFI 44238 x23: .cfa -560 + ^ x24: .cfa -552 + ^ x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 443cc x19: x19 x20: x20
+STACK CFI 443d0 x21: x21 x22: x22
+STACK CFI 443d4 x23: x23 x24: x24
+STACK CFI 443d8 x25: x25 x26: x26
+STACK CFI 443dc x27: x27 x28: x28
+STACK CFI 443e0 .cfa: sp 512 + .ra: .ra x29: x29
+STACK CFI 443e4 .cfa: sp 416 +
+STACK CFI INIT 443e8 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 443ec .cfa: sp 480 +
+STACK CFI 443f0 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 443f4 .cfa: x29 576 +
+STACK CFI 443fc x19: .cfa -560 + ^ x20: .cfa -552 + ^ x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 44418 x21: .cfa -544 + ^ x22: .cfa -536 + ^ x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 44430 x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 44588 x19: x19 x20: x20
+STACK CFI 4458c x21: x21 x22: x22
+STACK CFI 44590 x23: x23 x24: x24
+STACK CFI 44594 x25: x25 x26: x26
+STACK CFI 44598 x27: x27 x28: x28
+STACK CFI 4459c .cfa: sp 480 + .ra: .ra x29: x29
+STACK CFI 445a4 .cfa: sp 384 +
+STACK CFI INIT 445a8 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 445ac .cfa: sp 512 +
+STACK CFI 445b0 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 445b4 .cfa: x29 608 +
+STACK CFI 445bc x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^
+STACK CFI 445d4 x27: .cfa -528 + ^ x28: .cfa -520 + ^
+STACK CFI 445ec x23: .cfa -560 + ^ x24: .cfa -552 + ^ x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 44780 x19: x19 x20: x20
+STACK CFI 44784 x21: x21 x22: x22
+STACK CFI 44788 x23: x23 x24: x24
+STACK CFI 4478c x25: x25 x26: x26
+STACK CFI 44790 x27: x27 x28: x28
+STACK CFI 44794 .cfa: sp 512 + .ra: .ra x29: x29
+STACK CFI 44798 .cfa: sp 416 +
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4479c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 447a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 447ac .cfa: x29 32 +
+STACK CFI 447b4 x19: .cfa -16 + ^
+STACK CFI 447dc x19: x19
+STACK CFI 447e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 447e4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 447f8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 447fc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 44800 .cfa: x29 32 +
+STACK CFI 44804 x19: .cfa -16 + ^
+STACK CFI 44814 x19: x19
+STACK CFI 44818 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4481c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 44830 24 .cfa: sp 0 + .ra: x30
+STACK CFI 44834 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 44838 .cfa: x29 32 +
+STACK CFI 4483c x19: .cfa -16 + ^
+STACK CFI 4484c x19: x19
+STACK CFI 44850 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44854 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 44868 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4486c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 44870 .cfa: x29 32 +
+STACK CFI 44874 x19: .cfa -16 + ^
+STACK CFI 44884 x19: x19
+STACK CFI 44888 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4488c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 448a0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 448a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 448a8 .cfa: x29 32 +
+STACK CFI 448ac x19: .cfa -16 + ^
+STACK CFI 448bc x19: x19
+STACK CFI 448c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 448c4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 448c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 448cc .cfa: x29 32 +
+STACK CFI 448d0 x19: .cfa -16 + ^
+STACK CFI 448e0 x19: x19
+STACK CFI 448e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 448e8 48 .cfa: sp 0 + .ra: x30
+STACK CFI 448f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 448f8 .cfa: x29 32 +
+STACK CFI 44900 x19: .cfa -16 + ^
+STACK CFI 44928 x19: x19
+STACK CFI 4492c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44930 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 44944 24 .cfa: sp 0 + .ra: x30
+STACK CFI 44948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4494c .cfa: x29 32 +
+STACK CFI 44950 x19: .cfa -16 + ^
+STACK CFI 44960 x19: x19
+STACK CFI 44964 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44968 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4497c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 44980 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 44984 .cfa: x29 32 +
+STACK CFI 44988 x19: .cfa -16 + ^
+STACK CFI 44998 x19: x19
+STACK CFI 4499c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 449a0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 449b4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 449b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 449bc .cfa: x29 32 +
+STACK CFI 449c0 x19: .cfa -16 + ^
+STACK CFI 449d0 x19: x19
+STACK CFI 449d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 449d8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 449ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI 449f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 449f4 .cfa: x29 32 +
+STACK CFI 449f8 x19: .cfa -16 + ^
+STACK CFI 44a08 x19: x19
+STACK CFI 44a0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44a10 24 .cfa: sp 0 + .ra: x30
+STACK CFI 44a14 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 44a18 .cfa: x29 32 +
+STACK CFI 44a1c x19: .cfa -16 + ^
+STACK CFI 44a2c x19: x19
+STACK CFI 44a30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44a34 27c .cfa: sp 0 + .ra: x30
+STACK CFI 44a38 .cfa: sp 448 +
+STACK CFI 44a3c .cfa: sp 528 + .ra: .cfa -520 + ^ x29: .cfa -528 + ^
+STACK CFI 44a40 .cfa: x29 528 +
+STACK CFI 44a44 x21: .cfa -496 + ^ x22: .cfa -488 + ^
+STACK CFI 44a50 x23: .cfa -480 + ^ x24: .cfa -472 + ^ x25: .cfa -464 + ^
+STACK CFI 44a70 x19: .cfa -512 + ^ x20: .cfa -504 + ^
+STACK CFI 44c94 x25: x25
+STACK CFI 44c9c x19: x19 x20: x20
+STACK CFI 44ca0 x21: x21 x22: x22
+STACK CFI 44ca4 x23: x23 x24: x24
+STACK CFI 44ca8 .cfa: sp 448 + .ra: .ra x29: x29
+STACK CFI 44cac .cfa: sp 368 +
+STACK CFI INIT 44cb0 1ec .cfa: sp 0 + .ra: x30
+STACK CFI 44cb4 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 44cb8 .cfa: x29 192 +
+STACK CFI 44cc0 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^
+STACK CFI 44cdc x23: .cfa -144 + ^
+STACK CFI 44e8c x23: x23
+STACK CFI 44e90 x19: x19 x20: x20
+STACK CFI 44e94 x21: x21 x22: x22
+STACK CFI 44e98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 44e9c 250 .cfa: sp 0 + .ra: x30
+STACK CFI 44ea0 .cfa: sp 768 +
+STACK CFI 44eb0 .cfa: sp 848 + .ra: .cfa -840 + ^ x29: .cfa -848 + ^
+STACK CFI 44eb4 .cfa: x29 848 +
+STACK CFI 44eb8 x25: .cfa -784 + ^ x26: .cfa -776 + ^
+STACK CFI 44ecc x19: .cfa -832 + ^ x20: .cfa -824 + ^ x21: .cfa -816 + ^ x22: .cfa -808 + ^ x23: .cfa -800 + ^ x24: .cfa -792 + ^
+STACK CFI 450d0 .cfa: sp 848 +
+STACK CFI 450d4 x19: x19 x20: x20
+STACK CFI 450d8 x21: x21 x22: x22
+STACK CFI 450dc x23: x23 x24: x24
+STACK CFI 450e0 x25: x25 x26: x26
+STACK CFI 450e4 .cfa: sp 768 + .ra: .ra x29: x29
+STACK CFI 450e8 .cfa: sp 688 +
+STACK CFI INIT 450ec 374 .cfa: sp 0 + .ra: x30
+STACK CFI 450f0 .cfa: sp 880 +
+STACK CFI 45100 .cfa: sp 976 + .ra: .cfa -968 + ^ x29: .cfa -976 + ^
+STACK CFI 45104 .cfa: x29 976 +
+STACK CFI 45108 x19: .cfa -960 + ^ x20: .cfa -952 + ^
+STACK CFI 45114 x25: .cfa -912 + ^ x26: .cfa -904 + ^ x27: .cfa -896 + ^
+STACK CFI 4519c x21: .cfa -944 + ^ x22: .cfa -936 + ^ x23: .cfa -928 + ^ x24: .cfa -920 + ^
+STACK CFI 45440 .cfa: sp 976 +
+STACK CFI 45444 x19: x19 x20: x20
+STACK CFI 45448 x21: x21 x22: x22
+STACK CFI 4544c x23: x23 x24: x24
+STACK CFI 45450 x25: x25 x26: x26
+STACK CFI 45454 x27: x27
+STACK CFI 45458 .cfa: sp 880 + .ra: .ra x29: x29
+STACK CFI 4545c .cfa: sp 784 +
+STACK CFI INIT 45460 3cc .cfa: sp 0 + .ra: x30
+STACK CFI 45464 .cfa: sp 896 +
+STACK CFI 45474 .cfa: sp 992 + .ra: .cfa -984 + ^ x29: .cfa -992 + ^
+STACK CFI 45478 .cfa: x29 992 +
+STACK CFI 4547c x19: .cfa -976 + ^ x20: .cfa -968 + ^
+STACK CFI 45488 x25: .cfa -928 + ^ x26: .cfa -920 + ^ x27: .cfa -912 + ^
+STACK CFI 45510 x21: .cfa -960 + ^ x22: .cfa -952 + ^ x23: .cfa -944 + ^ x24: .cfa -936 + ^
+STACK CFI 4580c .cfa: sp 992 +
+STACK CFI 45810 x19: x19 x20: x20
+STACK CFI 45814 x21: x21 x22: x22
+STACK CFI 45818 x23: x23 x24: x24
+STACK CFI 4581c x25: x25 x26: x26
+STACK CFI 45820 x27: x27
+STACK CFI 45824 .cfa: sp 896 + .ra: .ra x29: x29
+STACK CFI 45828 .cfa: sp 800 +
+STACK CFI INIT 4582c 464 .cfa: sp 0 + .ra: x30
+STACK CFI 45830 .cfa: sp 880 +
+STACK CFI 45838 .cfa: sp 992 + .ra: .cfa -984 + ^ x29: .cfa -992 + ^
+STACK CFI 4583c .cfa: x29 992 +
+STACK CFI 45840 x19: .cfa -976 + ^ x20: .cfa -968 + ^
+STACK CFI 45850 x27: .cfa -912 + ^ x28: .cfa -904 + ^
+STACK CFI 45868 v8: .cfa -896 + ^ x21: .cfa -960 + ^ x22: .cfa -952 + ^ x23: .cfa -944 + ^ x24: .cfa -936 + ^ x25: .cfa -928 + ^ x26: .cfa -920 + ^
+STACK CFI 45c6c .cfa: sp 992 +
+STACK CFI 45c70 v8: v8
+STACK CFI 45c74 x19: x19 x20: x20
+STACK CFI 45c78 x21: x21 x22: x22
+STACK CFI 45c7c x23: x23 x24: x24
+STACK CFI 45c80 x25: x25 x26: x26
+STACK CFI 45c84 x27: x27 x28: x28
+STACK CFI 45c88 .cfa: sp 880 + .ra: .ra x29: x29
+STACK CFI 45c8c .cfa: sp 768 +
+STACK CFI INIT 45c90 1ec .cfa: sp 0 + .ra: x30
+STACK CFI 45c94 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 45c98 .cfa: x29 192 +
+STACK CFI 45ca0 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^
+STACK CFI 45cbc x23: .cfa -144 + ^
+STACK CFI 45e6c x23: x23
+STACK CFI 45e70 x19: x19 x20: x20
+STACK CFI 45e74 x21: x21 x22: x22
+STACK CFI 45e78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 45e7c 250 .cfa: sp 0 + .ra: x30
+STACK CFI 45e80 .cfa: sp 768 +
+STACK CFI 45e90 .cfa: sp 848 + .ra: .cfa -840 + ^ x29: .cfa -848 + ^
+STACK CFI 45e94 .cfa: x29 848 +
+STACK CFI 45e98 x25: .cfa -784 + ^ x26: .cfa -776 + ^
+STACK CFI 45eac x19: .cfa -832 + ^ x20: .cfa -824 + ^ x21: .cfa -816 + ^ x22: .cfa -808 + ^ x23: .cfa -800 + ^ x24: .cfa -792 + ^
+STACK CFI 460b0 .cfa: sp 848 +
+STACK CFI 460b4 x19: x19 x20: x20
+STACK CFI 460b8 x21: x21 x22: x22
+STACK CFI 460bc x23: x23 x24: x24
+STACK CFI 460c0 x25: x25 x26: x26
+STACK CFI 460c4 .cfa: sp 768 + .ra: .ra x29: x29
+STACK CFI 460c8 .cfa: sp 688 +
+STACK CFI INIT 460cc 374 .cfa: sp 0 + .ra: x30
+STACK CFI 460d0 .cfa: sp 880 +
+STACK CFI 460e0 .cfa: sp 976 + .ra: .cfa -968 + ^ x29: .cfa -976 + ^
+STACK CFI 460e4 .cfa: x29 976 +
+STACK CFI 460e8 x19: .cfa -960 + ^ x20: .cfa -952 + ^
+STACK CFI 460f4 x25: .cfa -912 + ^ x26: .cfa -904 + ^ x27: .cfa -896 + ^
+STACK CFI 4617c x21: .cfa -944 + ^ x22: .cfa -936 + ^ x23: .cfa -928 + ^ x24: .cfa -920 + ^
+STACK CFI 46420 .cfa: sp 976 +
+STACK CFI 46424 x19: x19 x20: x20
+STACK CFI 46428 x21: x21 x22: x22
+STACK CFI 4642c x23: x23 x24: x24
+STACK CFI 46430 x25: x25 x26: x26
+STACK CFI 46434 x27: x27
+STACK CFI 46438 .cfa: sp 880 + .ra: .ra x29: x29
+STACK CFI 4643c .cfa: sp 784 +
+STACK CFI INIT 46440 3cc .cfa: sp 0 + .ra: x30
+STACK CFI 46444 .cfa: sp 896 +
+STACK CFI 46454 .cfa: sp 992 + .ra: .cfa -984 + ^ x29: .cfa -992 + ^
+STACK CFI 46458 .cfa: x29 992 +
+STACK CFI 4645c x19: .cfa -976 + ^ x20: .cfa -968 + ^
+STACK CFI 46468 x25: .cfa -928 + ^ x26: .cfa -920 + ^ x27: .cfa -912 + ^
+STACK CFI 464f0 x21: .cfa -960 + ^ x22: .cfa -952 + ^ x23: .cfa -944 + ^ x24: .cfa -936 + ^
+STACK CFI 467ec .cfa: sp 992 +
+STACK CFI 467f0 x19: x19 x20: x20
+STACK CFI 467f4 x21: x21 x22: x22
+STACK CFI 467f8 x23: x23 x24: x24
+STACK CFI 467fc x25: x25 x26: x26
+STACK CFI 46800 x27: x27
+STACK CFI 46804 .cfa: sp 896 + .ra: .ra x29: x29
+STACK CFI 46808 .cfa: sp 800 +
+STACK CFI INIT 4680c 464 .cfa: sp 0 + .ra: x30
+STACK CFI 46810 .cfa: sp 880 +
+STACK CFI 46818 .cfa: sp 992 + .ra: .cfa -984 + ^ x29: .cfa -992 + ^
+STACK CFI 4681c .cfa: x29 992 +
+STACK CFI 46820 x19: .cfa -976 + ^ x20: .cfa -968 + ^
+STACK CFI 46830 x27: .cfa -912 + ^ x28: .cfa -904 + ^
+STACK CFI 46848 v8: .cfa -896 + ^ x21: .cfa -960 + ^ x22: .cfa -952 + ^ x23: .cfa -944 + ^ x24: .cfa -936 + ^ x25: .cfa -928 + ^ x26: .cfa -920 + ^
+STACK CFI 46c4c .cfa: sp 992 +
+STACK CFI 46c50 v8: v8
+STACK CFI 46c54 x19: x19 x20: x20
+STACK CFI 46c58 x21: x21 x22: x22
+STACK CFI 46c5c x23: x23 x24: x24
+STACK CFI 46c60 x25: x25 x26: x26
+STACK CFI 46c64 x27: x27 x28: x28
+STACK CFI 46c68 .cfa: sp 880 + .ra: .ra x29: x29
+STACK CFI 46c6c .cfa: sp 768 +
+STACK CFI INIT 222d0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 222d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 222e0 .cfa: x29 32 +
+STACK CFI 222e4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 2236c x19: x19 x20: x20
+STACK CFI 22370 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c70 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c74 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c78 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c7c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c80 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c84 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c88 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c8c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c90 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c94 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c98 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46c9c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46ca0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46ca4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46ca8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cac 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cb0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cb4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cb8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cbc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46cc0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46cd4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46cd8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46cdc .cfa: x29 32 +
+STACK CFI 46ce0 x19: .cfa -16 + ^
+STACK CFI 46cf0 x19: x19
+STACK CFI 46cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46cf8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46d0c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46d10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46d14 .cfa: x29 32 +
+STACK CFI 46d18 x19: .cfa -16 + ^
+STACK CFI 46d28 x19: x19
+STACK CFI 46d2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46d30 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46d44 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46d48 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46d4c .cfa: x29 32 +
+STACK CFI 46d50 x19: .cfa -16 + ^
+STACK CFI 46d60 x19: x19
+STACK CFI 46d64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46d68 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46d7c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46d80 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46d84 .cfa: x29 32 +
+STACK CFI 46d88 x19: .cfa -16 + ^
+STACK CFI 46d98 x19: x19
+STACK CFI 46d9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46da0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46db4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46db8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46dbc .cfa: x29 32 +
+STACK CFI 46dc0 x19: .cfa -16 + ^
+STACK CFI 46dd0 x19: x19
+STACK CFI 46dd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46dd8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46dec 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46df0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46df4 .cfa: x29 32 +
+STACK CFI 46df8 x19: .cfa -16 + ^
+STACK CFI 46e08 x19: x19
+STACK CFI 46e0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46e10 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46e24 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46e28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46e2c .cfa: x29 32 +
+STACK CFI 46e30 x19: .cfa -16 + ^
+STACK CFI 46e40 x19: x19
+STACK CFI 46e44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46e48 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46e5c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46e60 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46e64 .cfa: x29 32 +
+STACK CFI 46e68 x19: .cfa -16 + ^
+STACK CFI 46e78 x19: x19
+STACK CFI 46e7c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46e80 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46e94 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46e98 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46e9c .cfa: x29 32 +
+STACK CFI 46ea0 x19: .cfa -16 + ^
+STACK CFI 46eb0 x19: x19
+STACK CFI 46eb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46eb8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 46ecc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 46ed0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46ed4 .cfa: x29 32 +
+STACK CFI 46ed8 x19: .cfa -16 + ^
+STACK CFI 46ee8 x19: x19
+STACK CFI 46eec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46ef0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 46ef4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46efc .cfa: x29 32 +
+STACK CFI 46f00 x19: .cfa -16 + ^
+STACK CFI 46f24 x19: x19
+STACK CFI 46f28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46f2c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 46f30 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46f38 .cfa: x29 32 +
+STACK CFI 46f3c x19: .cfa -16 + ^
+STACK CFI 46f60 x19: x19
+STACK CFI 46f64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46f68 3c .cfa: sp 0 + .ra: x30
+STACK CFI 46f6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46f74 .cfa: x29 32 +
+STACK CFI 46f78 x19: .cfa -16 + ^
+STACK CFI 46f9c x19: x19
+STACK CFI 46fa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46fa4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 46fa8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46fb0 .cfa: x29 32 +
+STACK CFI 46fb4 x19: .cfa -16 + ^
+STACK CFI 46fd8 x19: x19
+STACK CFI 46fdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 46fe0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 46fe4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 46fec .cfa: x29 32 +
+STACK CFI 46ff0 x19: .cfa -16 + ^
+STACK CFI 47014 x19: x19
+STACK CFI 47018 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4701c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 47020 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 47028 .cfa: x29 32 +
+STACK CFI 4702c x19: .cfa -16 + ^
+STACK CFI 47050 x19: x19
+STACK CFI 47054 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47058 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4705c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 47064 .cfa: x29 32 +
+STACK CFI 47068 x19: .cfa -16 + ^
+STACK CFI 4708c x19: x19
+STACK CFI 47090 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47094 3c .cfa: sp 0 + .ra: x30
+STACK CFI 47098 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 470a0 .cfa: x29 32 +
+STACK CFI 470a4 x19: .cfa -16 + ^
+STACK CFI 470c8 x19: x19
+STACK CFI 470cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 470d0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 470d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 470dc .cfa: x29 32 +
+STACK CFI 470e0 x19: .cfa -16 + ^
+STACK CFI 47104 x19: x19
+STACK CFI 47108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4710c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 47110 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 47118 .cfa: x29 32 +
+STACK CFI 4711c x19: .cfa -16 + ^
+STACK CFI 47140 x19: x19
+STACK CFI 47144 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 140 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 x21: x21 x22: x22
+STACK CFI 13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47148 148 .cfa: sp 0 + .ra: x30
+STACK CFI 4714c .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 47150 .cfa: x29 208 +
+STACK CFI 47158 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 47174 x23: .cfa -160 + ^ x24: .cfa -152 + ^ x25: .cfa -144 + ^
+STACK CFI 4727c x19: x19 x20: x20
+STACK CFI 47280 x21: x21 x22: x22
+STACK CFI 47284 x23: x23 x24: x24
+STACK CFI 47288 x25: x25
+STACK CFI 4728c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI c .cfa: x29 384 +
+STACK CFI 10 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 20 x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 28 x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 124 x19: x19 x20: x20
+STACK CFI 128 x21: x21 x22: x22
+STACK CFI 12c x23: x23 x24: x24
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47290 124 .cfa: sp 0 + .ra: x30
+STACK CFI 47294 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 47298 .cfa: x29 128 +
+STACK CFI 472a4 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 472b8 x25: .cfa -64 + ^
+STACK CFI 473a0 x19: x19 x20: x20
+STACK CFI 473a4 x21: x21 x22: x22
+STACK CFI 473a8 x23: x23 x24: x24
+STACK CFI 473ac x25: x25
+STACK CFI 473b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 473b4 73c .cfa: sp 0 + .ra: x30
+STACK CFI 473b8 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 473c0 .cfa: x29 176 +
+STACK CFI 473c4 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 473dc x19: .cfa -160 + ^ x20: .cfa -152 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^
+STACK CFI 47adc x19: x19 x20: x20
+STACK CFI 47ae0 x21: x21 x22: x22
+STACK CFI 47ae4 x23: x23 x24: x24
+STACK CFI 47ae8 x25: x25 x26: x26
+STACK CFI 47aec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47af0 338 .cfa: sp 0 + .ra: x30
+STACK CFI 47af4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 47b00 .cfa: x29 128 +
+STACK CFI 47b04 x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 47b1c x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 47e18 x19: x19 x20: x20
+STACK CFI 47e1c x21: x21 x22: x22
+STACK CFI 47e20 x23: x23 x24: x24
+STACK CFI 47e24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27b7c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 27b80 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 27b84 .cfa: x29 160 +
+STACK CFI 27b8c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 27c0c x19: x19 x20: x20
+STACK CFI 27c10 x21: x21 x22: x22
+STACK CFI 27c14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 47e28 484 .cfa: sp 0 + .ra: x30
+STACK CFI 47e2c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 47e34 .cfa: x29 112 +
+STACK CFI 47e44 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^
+STACK CFI 48298 x25: x25
+STACK CFI 4829c x19: x19 x20: x20
+STACK CFI 482a0 x21: x21 x22: x22
+STACK CFI 482a4 x23: x23 x24: x24
+STACK CFI 482a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 280d0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 280d4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 280d8 .cfa: x29 160 +
+STACK CFI 280e0 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28160 x19: x19 x20: x20
+STACK CFI 28164 x21: x21 x22: x22
+STACK CFI 28168 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb58 88 .cfa: sp 0 + .ra: x30
+STACK CFI 2eb5c .cfa: sp 352 + .ra: .cfa -344 + ^ x29: .cfa -352 + ^
+STACK CFI 2eb64 .cfa: x29 352 +
+STACK CFI 2eb68 x19: .cfa -336 + ^ x20: .cfa -328 + ^
+STACK CFI 2eb78 x21: .cfa -320 + ^
+STACK CFI 2ebd4 x21: x21
+STACK CFI 2ebd8 x19: x19 x20: x20
+STACK CFI 2ebdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 482ac a8 .cfa: sp 0 + .ra: x30
+STACK CFI 482b0 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 482b4 .cfa: x29 176 +
+STACK CFI 482bc x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 48348 x19: x19 x20: x20
+STACK CFI 4834c x21: x21 x22: x22
+STACK CFI 48350 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 48354 458 .cfa: sp 0 + .ra: x30
+STACK CFI 48358 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 48360 .cfa: x29 208 +
+STACK CFI 48364 x23: .cfa -160 + ^ x24: .cfa -152 + ^
+STACK CFI 48380 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 4879c x19: x19 x20: x20
+STACK CFI 487a0 x21: x21 x22: x22
+STACK CFI 487a4 x23: x23 x24: x24
+STACK CFI 487a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 487ac 418 .cfa: sp 0 + .ra: x30
+STACK CFI 487b0 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 487b8 .cfa: x29 176 +
+STACK CFI 487bc x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 487d8 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 48bb4 x19: x19 x20: x20
+STACK CFI 48bb8 x21: x21 x22: x22
+STACK CFI 48bbc x23: x23 x24: x24
+STACK CFI 48bc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27850 88 .cfa: sp 0 + .ra: x30
+STACK CFI 27854 .cfa: sp 352 + .ra: .cfa -344 + ^ x29: .cfa -352 + ^
+STACK CFI 2785c .cfa: x29 352 +
+STACK CFI 27860 x19: .cfa -336 + ^ x20: .cfa -328 + ^
+STACK CFI 27870 x21: .cfa -320 + ^
+STACK CFI 278cc x21: x21
+STACK CFI 278d0 x19: x19 x20: x20
+STACK CFI 278d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 48bc4 84 .cfa: sp 0 + .ra: x30
+STACK CFI 48bc8 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 48bcc .cfa: x29 160 +
+STACK CFI 48bd0 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 48bdc x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 48c3c x19: x19 x20: x20
+STACK CFI 48c40 x21: x21 x22: x22
+STACK CFI 48c44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 48c48 9c .cfa: sp 0 + .ra: x30
+STACK CFI 48c4c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 48c50 .cfa: x29 160 +
+STACK CFI 48c58 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 48cd8 x19: x19 x20: x20
+STACK CFI 48cdc x21: x21 x22: x22
+STACK CFI 48ce0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 48ce4 9c .cfa: sp 0 + .ra: x30
+STACK CFI 48ce8 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 48cec .cfa: x29 160 +
+STACK CFI 48cf4 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 48d74 x19: x19 x20: x20
+STACK CFI 48d78 x21: x21 x22: x22
+STACK CFI 48d7c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 48d80 3bc .cfa: sp 0 + .ra: x30
+STACK CFI 48d84 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 48d90 .cfa: x29 128 +
+STACK CFI 48da4 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 4912c x23: x23
+STACK CFI 49130 x19: x19 x20: x20
+STACK CFI 49134 x21: x21 x22: x22
+STACK CFI 49138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4913c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 49140 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 49148 .cfa: x29 336 +
+STACK CFI 4914c x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 49154 x21: .cfa -304 + ^
+STACK CFI 49188 x21: x21
+STACK CFI 49190 x19: x19 x20: x20
+STACK CFI 49194 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI 10 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 90 x19: x19 x20: x20
+STACK CFI 94 x21: x21 x22: x22
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49198 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4919c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 491a0 .cfa: x29 160 +
+STACK CFI 491a8 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 49228 x19: x19 x20: x20
+STACK CFI 4922c x21: x21 x22: x22
+STACK CFI 49230 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49234 47c .cfa: sp 0 + .ra: x30
+STACK CFI 49238 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 49240 .cfa: x29 144 +
+STACK CFI 49244 x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 49258 x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 49268 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 49698 x19: x19 x20: x20
+STACK CFI 4969c x21: x21 x22: x22
+STACK CFI 496a0 x23: x23 x24: x24
+STACK CFI 496a4 x25: x25 x26: x26
+STACK CFI 496a8 x27: x27 x28: x28
+STACK CFI 496ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 496b0 390 .cfa: sp 0 + .ra: x30
+STACK CFI 496b4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 496b8 .cfa: x29 144 +
+STACK CFI 496bc x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 496c8 x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 496e0 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 49a28 x19: x19 x20: x20
+STACK CFI 49a2c x21: x21 x22: x22
+STACK CFI 49a30 x23: x23 x24: x24
+STACK CFI 49a34 x25: x25 x26: x26
+STACK CFI 49a38 x27: x27 x28: x28
+STACK CFI 49a3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 22378 358 .cfa: sp 0 + .ra: x30
+STACK CFI 2237c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 22380 .cfa: x29 64 +
+STACK CFI 22388 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 226bc x21: x21
+STACK CFI 226c4 x19: x19 x20: x20
+STACK CFI 226c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 43124 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 49a40 5c .cfa: sp 0 + .ra: x30
+STACK CFI 49a44 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 49a48 .cfa: x29 64 +
+STACK CFI 49a50 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 49a8c x21: x21
+STACK CFI 49a94 x19: x19 x20: x20
+STACK CFI 49a98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49a9c 74 .cfa: sp 0 + .ra: x30
+STACK CFI 49aa0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 49aa8 .cfa: x29 32 +
+STACK CFI 49aac x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 49ad8 x19: x19 x20: x20
+STACK CFI 49adc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 49ae0 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 49b04 x19: x19 x20: x20
+STACK CFI 49b08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49b10 150 .cfa: sp 0 + .ra: x30
+STACK CFI 49b14 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 49b18 .cfa: x29 80 +
+STACK CFI 49b28 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 49c4c x19: x19 x20: x20
+STACK CFI 49c50 x21: x21 x22: x22
+STACK CFI 49c54 x23: x23 x24: x24
+STACK CFI 49c58 x25: x25 x26: x26
+STACK CFI 49c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 432e4 70 .cfa: sp 0 + .ra: x30
+STACK CFI 432ec .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 432f0 .cfa: x29 48 +
+STACK CFI 432fc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 43348 x21: x21
+STACK CFI 4334c x19: x19 x20: x20
+STACK CFI 43350 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43354 24 .cfa: sp 0 + .ra: x30
+STACK CFI 43358 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4335c .cfa: x29 32 +
+STACK CFI 43360 x19: .cfa -16 + ^
+STACK CFI 43370 x19: x19
+STACK CFI 43374 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49c60 34 .cfa: sp 0 + .ra: x30
+STACK CFI 49c68 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 49c6c .cfa: x29 32 +
+STACK CFI 49c74 x19: .cfa -16 + ^
+STACK CFI 49c8c x19: x19
+STACK CFI 49c90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49c94 24 .cfa: sp 0 + .ra: x30
+STACK CFI 49c98 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 49c9c .cfa: x29 32 +
+STACK CFI 49ca0 x19: .cfa -16 + ^
+STACK CFI 49cb0 x19: x19
+STACK CFI 49cb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49cb8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 49ccc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 49cd0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 49cd4 .cfa: x29 32 +
+STACK CFI 49cd8 x19: .cfa -16 + ^
+STACK CFI 49ce8 x19: x19
+STACK CFI 49cec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 160 x23: x23
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49cf0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 49cf4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 49cf8 .cfa: x29 80 +
+STACK CFI 49d00 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 49d98 x21: x21
+STACK CFI 49d9c x19: x19 x20: x20
+STACK CFI 49da0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49da4 108 .cfa: sp 0 + .ra: x30
+STACK CFI 49da8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 49dac .cfa: x29 96 +
+STACK CFI 49db8 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 49e9c x23: x23 x24: x24
+STACK CFI 49ea0 x19: x19 x20: x20
+STACK CFI 49ea4 x21: x21 x22: x22
+STACK CFI 49ea8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 14 x21: .cfa -16 + ^
+STACK CFI 60 x19: x19 x20: x20
+STACK CFI 64 x21: x21
+STACK CFI 68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 14 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 5c x19: x19 x20: x20
+STACK CFI 60 x21: x21 x22: x22
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49eac 58 .cfa: sp 0 + .ra: x30
+STACK CFI 49eb0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 49eb8 .cfa: x29 48 +
+STACK CFI 49ebc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 49efc x19: x19 x20: x20
+STACK CFI 49f00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 54 x19: x19
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49f04 48 .cfa: sp 0 + .ra: x30
+STACK CFI 49f08 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 49f0c .cfa: x29 48 +
+STACK CFI 49f10 x19: .cfa -32 + ^
+STACK CFI 49f44 x19: x19
+STACK CFI 49f48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 435f8 64 .cfa: sp 0 + .ra: x30
+STACK CFI 435fc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 43600 .cfa: x29 48 +
+STACK CFI 43608 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 43650 x19: x19 x20: x20
+STACK CFI 43654 x21: x21 x22: x22
+STACK CFI 43658 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4365c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 43664 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43668 .cfa: x29 32 +
+STACK CFI 43670 x19: .cfa -16 + ^
+STACK CFI 4369c x19: x19
+STACK CFI 436a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 436a4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 436a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 436ac .cfa: x29 32 +
+STACK CFI 436b0 x19: .cfa -16 + ^
+STACK CFI 436c0 x19: x19
+STACK CFI 436c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 436c8 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 436cc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 436d0 .cfa: x29 48 +
+STACK CFI 436d4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 436e0 x21: .cfa -16 + ^
+STACK CFI 43770 x21: x21
+STACK CFI 43778 x19: x19 x20: x20
+STACK CFI 4377c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43780 24 .cfa: sp 0 + .ra: x30
+STACK CFI 43784 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 43788 .cfa: x29 32 +
+STACK CFI 4378c x19: .cfa -16 + ^
+STACK CFI 4379c x19: x19
+STACK CFI 437a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31b50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 31b54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 31b60 .cfa: x29 32 +
+STACK CFI 31b64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 31ba8 x19: x19 x20: x20
+STACK CFI 31bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49f4c 98 .cfa: sp 0 + .ra: x30
+STACK CFI 49f50 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 49f54 .cfa: x29 32 +
+STACK CFI 49f58 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 49fdc x19: x19 x20: x20
+STACK CFI 49fe0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 49fe4 204 .cfa: sp 0 + .ra: x30
+STACK CFI 49fe8 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 49fec .cfa: x29 128 +
+STACK CFI 49ff0 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 4a000 v8: .cfa -32 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 4a01c x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 4a034 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 4a1cc x23: x23 x24: x24
+STACK CFI 4a1d0 x19: x19 x20: x20
+STACK CFI 4a1d4 x21: x21 x22: x22
+STACK CFI 4a1d8 x25: x25 x26: x26
+STACK CFI 4a1dc x27: x27 x28: x28
+STACK CFI 4a1e0 v8: v8
+STACK CFI 4a1e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a1e8 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31bb0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c0c 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 31c68 124 .cfa: sp 0 + .ra: x30
+STACK CFI 31c6c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 31c70 .cfa: x29 48 +
+STACK CFI 31c78 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 31ca0 x19: x19 x20: x20
+STACK CFI 31ca4 x21: x21 x22: x22
+STACK CFI 31ca8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 31cac .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 4a244 dc .cfa: sp 0 + .ra: x30
+STACK CFI 4a248 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4a250 .cfa: x29 64 +
+STACK CFI 4a258 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 4a314 x19: x19 x20: x20
+STACK CFI 4a318 x21: x21 x22: x22
+STACK CFI 4a31c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a320 fc .cfa: sp 0 + .ra: x30
+STACK CFI 4a324 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 4a328 .cfa: x29 96 +
+STACK CFI 4a334 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 4a40c x19: x19 x20: x20
+STACK CFI 4a410 x21: x21 x22: x22
+STACK CFI 4a414 x23: x23
+STACK CFI 4a418 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a41c 2d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4a420 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 4a424 .cfa: x29 112 +
+STACK CFI 4a434 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^
+STACK CFI 4a6dc x25: x25
+STACK CFI 4a6e0 x19: x19 x20: x20
+STACK CFI 4a6e4 x21: x21 x22: x22
+STACK CFI 4a6e8 x23: x23 x24: x24
+STACK CFI 4a6ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a6f0 ec .cfa: sp 0 + .ra: x30
+STACK CFI 4a6f4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 4a6f8 .cfa: x29 144 +
+STACK CFI 4a704 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^
+STACK CFI 4a7cc x23: x23
+STACK CFI 4a7d0 x19: x19 x20: x20
+STACK CFI 4a7d4 x21: x21 x22: x22
+STACK CFI 4a7d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a7dc 120 .cfa: sp 0 + .ra: x30
+STACK CFI 4a7e0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 4a7e4 .cfa: x29 80 +
+STACK CFI 4a7f0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 4a8ec x19: x19 x20: x20
+STACK CFI 4a8f0 x21: x21 x22: x22
+STACK CFI 4a8f4 x23: x23 x24: x24
+STACK CFI 4a8f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a8fc a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4a900 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 4a904 .cfa: x29 96 +
+STACK CFI 4a90c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI 4a994 x21: x21
+STACK CFI 4a998 x19: x19 x20: x20
+STACK CFI 4a99c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4a9a0 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4a9a4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 4a9a8 .cfa: x29 96 +
+STACK CFI 4a9b0 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI 4aa38 x21: x21
+STACK CFI 4aa3c x19: x19 x20: x20
+STACK CFI 4aa40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4aa44 210 .cfa: sp 0 + .ra: x30
+STACK CFI 4aa48 .cfa: sp 288 + .ra: .cfa -280 + ^ x29: .cfa -288 + ^
+STACK CFI 4aa4c .cfa: x29 288 +
+STACK CFI 4aa50 x21: .cfa -256 + ^ x22: .cfa -248 + ^
+STACK CFI 4aa5c x19: .cfa -272 + ^ x20: .cfa -264 + ^
+STACK CFI 4aa80 x23: .cfa -240 + ^ x24: .cfa -232 + ^ x25: .cfa -224 + ^ x26: .cfa -216 + ^ x27: .cfa -208 + ^ x28: .cfa -200 + ^
+STACK CFI 4ac3c x19: x19 x20: x20
+STACK CFI 4ac40 x21: x21 x22: x22
+STACK CFI 4ac44 x23: x23 x24: x24
+STACK CFI 4ac48 x25: x25 x26: x26
+STACK CFI 4ac4c x27: x27 x28: x28
+STACK CFI 4ac50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ac54 100 .cfa: sp 0 + .ra: x30
+STACK CFI 4ac58 .cfa: sp 112 +
+STACK CFI 4ac5c .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 4ac60 .cfa: x29 96 +
+STACK CFI 4ac64 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 4ad44 .cfa: sp 112 +
+STACK CFI 4ad48 x19: x19 x20: x20
+STACK CFI 4ad4c .ra: .ra x29: x29
+STACK CFI 4ad50 .cfa: sp 0 +
+STACK CFI INIT 4ad54 438 .cfa: sp 0 + .ra: x30
+STACK CFI 4ad58 .cfa: sp 320 +
+STACK CFI 4ad60 .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 4ad64 .cfa: x29 304 +
+STACK CFI 4ad6c v10: .cfa -192 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^
+STACK CFI 4ad80 x19: .cfa -288 + ^ x20: .cfa -280 + ^
+STACK CFI 4ad8c x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 4ad9c x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 4b164 .cfa: sp 320 +
+STACK CFI 4b168 v8: v8 v9: v9
+STACK CFI 4b16c v10: v10
+STACK CFI 4b170 x19: x19 x20: x20
+STACK CFI 4b174 x21: x21 x22: x22
+STACK CFI 4b178 x23: x23 x24: x24
+STACK CFI 4b17c x25: x25 x26: x26
+STACK CFI 4b180 x27: x27 x28: x28
+STACK CFI 4b184 .ra: .ra x29: x29
+STACK CFI 4b188 .cfa: sp 0 +
+STACK CFI INIT 4b18c 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4b190 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4b194 .cfa: x29 48 +
+STACK CFI 4b198 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 4b1a0 x21: .cfa -16 + ^
+STACK CFI 4b1f8 x19: x19 x20: x20
+STACK CFI 4b1fc x21: x21
+STACK CFI 4b200 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b204 60 .cfa: sp 0 + .ra: x30
+STACK CFI 4b208 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4b20c .cfa: x29 48 +
+STACK CFI 4b210 x19: .cfa -32 + ^
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b264 6c .cfa: sp 0 + .ra: x30
+STACK CFI 4b268 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4b270 .cfa: x29 48 +
+STACK CFI 4b274 x19: .cfa -32 + ^
+STACK CFI 4b2c8 x19: x19
+STACK CFI 4b2cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b2d0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b2dc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b2e8 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4b2ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b2f4 .cfa: x29 32 +
+STACK CFI 4b2f8 x19: .cfa -16 + ^
+STACK CFI 4b338 x19: x19
+STACK CFI 4b33c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b340 88 .cfa: sp 0 + .ra: x30
+STACK CFI 4b344 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4b348 .cfa: x29 48 +
+STACK CFI 4b350 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4b3bc x19: x19 x20: x20
+STACK CFI 4b3c0 x21: x21 x22: x22
+STACK CFI 4b3c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b3c8 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4b3cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b3d4 .cfa: x29 32 +
+STACK CFI 4b408 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b40c dc .cfa: sp 0 + .ra: x30
+STACK CFI 4b410 .cfa: sp 8192 +
+STACK CFI 4b418 .cfa: sp 8288 + .ra: .cfa -8280 + ^ x29: .cfa -8288 + ^
+STACK CFI 4b41c .cfa: x29 8288 +
+STACK CFI 4b424 x19: .cfa -8272 + ^ x20: .cfa -8264 + ^ x21: .cfa -8256 + ^ x22: .cfa -8248 + ^
+STACK CFI 4b438 x23: .cfa -8240 + ^ x24: .cfa -8232 + ^ x25: .cfa -8224 + ^ x26: .cfa -8216 + ^ x27: .cfa -8208 + ^
+STACK CFI 4b4cc x19: x19 x20: x20
+STACK CFI 4b4d0 x21: x21 x22: x22
+STACK CFI 4b4d4 x23: x23 x24: x24
+STACK CFI 4b4d8 x25: x25 x26: x26
+STACK CFI 4b4dc x27: x27
+STACK CFI 4b4e0 .cfa: sp 8192 + .ra: .ra x29: x29
+STACK CFI 4b4e4 .cfa: sp 8096 +
+STACK CFI INIT 4b4e8 188 .cfa: sp 0 + .ra: x30
+STACK CFI 4b4ec .cfa: sp 256 + .ra: .cfa -248 + ^ x29: .cfa -256 + ^
+STACK CFI 4b4f0 .cfa: x29 256 +
+STACK CFI 4b4f8 x21: .cfa -224 + ^ x22: .cfa -216 + ^ x27: .cfa -176 + ^
+STACK CFI 4b508 x19: .cfa -240 + ^ x20: .cfa -232 + ^ x23: .cfa -208 + ^ x24: .cfa -200 + ^ x25: .cfa -192 + ^ x26: .cfa -184 + ^
+STACK CFI 4b658 x19: x19 x20: x20
+STACK CFI 4b65c x21: x21 x22: x22
+STACK CFI 4b660 x23: x23 x24: x24
+STACK CFI 4b664 x25: x25 x26: x26
+STACK CFI 4b668 x27: x27
+STACK CFI 4b66c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b670 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4b674 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b678 .cfa: x29 32 +
+STACK CFI 4b67c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4b6bc x19: x19 x20: x20
+STACK CFI 4b6c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 160 x23: x23
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI c .cfa: x29 272 +
+STACK CFI 10 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 20 x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^
+STACK CFI 29c x19: x19 x20: x20
+STACK CFI 2a0 x21: x21 x22: x22
+STACK CFI 2a4 x23: x23 x24: x24
+STACK CFI 2a8 x25: x25
+STACK CFI 2ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b6c4 28 .cfa: sp 0 + .ra: x30
+STACK CFI 4b6c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b6cc .cfa: x29 32 +
+STACK CFI 4b6d0 x19: .cfa -16 + ^
+STACK CFI 4b6e4 x19: x19
+STACK CFI 4b6e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 174 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 20 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c x23: x23 x24: x24
+STACK CFI 170 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 380 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 8 .cfa: x29 368 +
+STACK CFI 1c x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 368 x19: x19 x20: x20
+STACK CFI 36c x21: x21 x22: x22
+STACK CFI 370 x23: x23 x24: x24
+STACK CFI 374 x25: x25 x26: x26
+STACK CFI 378 x27: x27 x28: x28
+STACK CFI 37c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b6ec 30 .cfa: sp 0 + .ra: x30
+STACK CFI 4b6f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b6f4 .cfa: x29 32 +
+STACK CFI 4b6f8 x19: .cfa -16 + ^
+STACK CFI 4b714 x19: x19
+STACK CFI 4b718 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b71c 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4b720 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b728 .cfa: x29 32 +
+STACK CFI 4b730 x19: .cfa -16 + ^
+STACK CFI 4b740 x19: x19
+STACK CFI 4b744 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b748 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4b74c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b754 .cfa: x29 32 +
+STACK CFI 4b75c x19: .cfa -16 + ^
+STACK CFI 4b76c x19: x19
+STACK CFI 4b770 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b774 27c .cfa: sp 0 + .ra: x30
+STACK CFI 4b778 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 4b780 .cfa: x29 128 +
+STACK CFI 4b784 x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 4b7a0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 4b9dc x19: x19 x20: x20
+STACK CFI 4b9e0 x21: x21 x22: x22
+STACK CFI 4b9e4 x23: x23 x24: x24
+STACK CFI 4b9e8 x25: x25 x26: x26
+STACK CFI 4b9ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b9f0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b9f4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b9f8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4b9fc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba00 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba04 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ba08 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba0c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba10 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba14 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba18 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba1c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ba20 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba34 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4ba38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ba3c .cfa: x29 32 +
+STACK CFI 4ba40 x19: .cfa -16 + ^
+STACK CFI 4ba50 x19: x19
+STACK CFI 4ba54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ba58 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ba6c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4ba70 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ba74 .cfa: x29 32 +
+STACK CFI 4ba78 x19: .cfa -16 + ^
+STACK CFI 4ba88 x19: x19
+STACK CFI 4ba8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ba90 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4baa4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4baa8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4baac .cfa: x29 32 +
+STACK CFI 4bab0 x19: .cfa -16 + ^
+STACK CFI 4bac0 x19: x19
+STACK CFI 4bac4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bac8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4badc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4bae0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bae4 .cfa: x29 32 +
+STACK CFI 4bae8 x19: .cfa -16 + ^
+STACK CFI 4baf8 x19: x19
+STACK CFI 4bafc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bb00 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4bb14 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4bb18 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bb1c .cfa: x29 32 +
+STACK CFI 4bb20 x19: .cfa -16 + ^
+STACK CFI 4bb30 x19: x19
+STACK CFI 4bb34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bb38 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4bb4c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4bb50 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bb54 .cfa: x29 32 +
+STACK CFI 4bb58 x19: .cfa -16 + ^
+STACK CFI 4bb68 x19: x19
+STACK CFI 4bb6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bb70 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bb74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bb7c .cfa: x29 32 +
+STACK CFI 4bb80 x19: .cfa -16 + ^
+STACK CFI 4bba4 x19: x19
+STACK CFI 4bba8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bbac 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bbb0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bbb8 .cfa: x29 32 +
+STACK CFI 4bbbc x19: .cfa -16 + ^
+STACK CFI 4bbe0 x19: x19
+STACK CFI 4bbe4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bbe8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bbec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bbf4 .cfa: x29 32 +
+STACK CFI 4bbf8 x19: .cfa -16 + ^
+STACK CFI 4bc1c x19: x19
+STACK CFI 4bc20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bc24 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bc28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bc30 .cfa: x29 32 +
+STACK CFI 4bc34 x19: .cfa -16 + ^
+STACK CFI 4bc58 x19: x19
+STACK CFI 4bc5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bc60 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bc64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bc6c .cfa: x29 32 +
+STACK CFI 4bc70 x19: .cfa -16 + ^
+STACK CFI 4bc94 x19: x19
+STACK CFI 4bc98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bc9c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4bca0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bca8 .cfa: x29 32 +
+STACK CFI 4bcac x19: .cfa -16 + ^
+STACK CFI 4bcd0 x19: x19
+STACK CFI 4bcd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bcd8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 4bcdc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bce0 .cfa: x29 32 +
+STACK CFI 4bce4 x19: .cfa -16 + ^
+STACK CFI 4bd04 x19: x19
+STACK CFI 4bd08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bd0c fc .cfa: sp 0 + .ra: x30
+STACK CFI 4bd10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bd18 .cfa: x29 32 +
+STACK CFI 4bd1c x19: .cfa -16 + ^
+STACK CFI 4be00 x19: x19
+STACK CFI 4be04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4be08 64 .cfa: sp 0 + .ra: x30
+STACK CFI 4be0c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4be10 .cfa: x29 48 +
+STACK CFI 4be18 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 4be60 x19: x19 x20: x20
+STACK CFI 4be64 x21: x21
+STACK CFI 4be68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4be6c 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4be70 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4be74 .cfa: x29 64 +
+STACK CFI 4be78 x19: .cfa -48 + ^
+STACK CFI 4be90 x19: x19
+STACK CFI 4be94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4be98 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4be9c .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 4bea0 .cfa: x29 176 +
+STACK CFI 4bea8 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 4beb4 x23: .cfa -128 + ^
+STACK CFI 4bf9c x23: x23
+STACK CFI 4bfa0 x19: x19 x20: x20
+STACK CFI 4bfa4 x21: x21 x22: x22
+STACK CFI 4bfa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bfac 180 .cfa: sp 0 + .ra: x30
+STACK CFI 4bfb0 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 4bfb4 .cfa: x29 176 +
+STACK CFI 4bfb8 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 4bfc8 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 4c11c x23: x23
+STACK CFI 4c120 x19: x19 x20: x20
+STACK CFI 4c124 x21: x21 x22: x22
+STACK CFI 4c128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c12c d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4c130 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4c134 .cfa: x29 64 +
+STACK CFI 4c140 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 4c1f0 x19: x19 x20: x20
+STACK CFI 4c1f4 x21: x21 x22: x22
+STACK CFI 4c1f8 x23: x23
+STACK CFI 4c1fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 140 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 x21: x21 x22: x22
+STACK CFI 13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c200 50 .cfa: sp 0 + .ra: x30
+STACK CFI 4c204 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4c210 .cfa: x29 32 +
+STACK CFI 4c214 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4c21c x19: x19 x20: x20
+STACK CFI 4c224 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4c22c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 4c248 x19: x19 x20: x20
+STACK CFI 4c24c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c250 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4c254 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4c258 .cfa: x29 64 +
+STACK CFI 4c264 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4c2e8 x19: x19 x20: x20
+STACK CFI 4c2ec x21: x21 x22: x22
+STACK CFI 4c2f0 x23: x23 x24: x24
+STACK CFI 4c2f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c2f8 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4c2fc .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 4c300 .cfa: x29 208 +
+STACK CFI 4c304 x19: .cfa -192 + ^ x20: .cfa -184 + ^
+STACK CFI 4c318 x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI 4c41c x23: x23
+STACK CFI 4c420 x19: x19 x20: x20
+STACK CFI 4c424 x21: x21 x22: x22
+STACK CFI 4c428 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 279ec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 279f0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 279f8 .cfa: x29 336 +
+STACK CFI 279fc x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27a04 x21: .cfa -304 + ^
+STACK CFI 27a38 x21: x21
+STACK CFI 27a40 x19: x19 x20: x20
+STACK CFI 27a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c42c b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4c430 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 4c434 .cfa: x29 416 +
+STACK CFI 4c438 x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 4c444 x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^
+STACK CFI 4c4cc x23: x23
+STACK CFI 4c4d4 x19: x19 x20: x20
+STACK CFI 4c4d8 x21: x21 x22: x22
+STACK CFI 4c4dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c4e0 d8 .cfa: sp 0 + .ra: x30
+STACK CFI 4c4e4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 4c4e8 .cfa: x29 112 +
+STACK CFI 4c4ec x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 4c4fc x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 4c5ac x19: x19 x20: x20
+STACK CFI 4c5b0 x21: x21 x22: x22
+STACK CFI 4c5b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c5b8 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4c5bc .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 4c5c0 .cfa: x29 160 +
+STACK CFI 4c5c4 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 4c5d0 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 4c630 x19: x19 x20: x20
+STACK CFI 4c634 x21: x21 x22: x22
+STACK CFI 4c638 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4c63c 478 .cfa: sp 0 + .ra: x30
+STACK CFI 4c640 .cfa: sp 464 +
+STACK CFI 4c644 .cfa: sp 576 + .ra: .cfa -568 + ^ x29: .cfa -576 + ^
+STACK CFI 4c648 .cfa: x29 576 +
+STACK CFI 4c64c x23: .cfa -528 + ^ x24: .cfa -520 + ^
+STACK CFI 4c65c x19: .cfa -560 + ^ x20: .cfa -552 + ^ x21: .cfa -544 + ^ x22: .cfa -536 + ^
+STACK CFI 4c66c v8: .cfa -480 + ^ x27: .cfa -496 + ^ x28: .cfa -488 + ^
+STACK CFI 4c674 x25: .cfa -512 + ^ x26: .cfa -504 + ^
+STACK CFI 4ca94 v8: v8
+STACK CFI 4ca98 x19: x19 x20: x20
+STACK CFI 4ca9c x21: x21 x22: x22
+STACK CFI 4caa0 x23: x23 x24: x24
+STACK CFI 4caa4 x25: x25 x26: x26
+STACK CFI 4caa8 x27: x27 x28: x28
+STACK CFI 4caac .cfa: sp 464 + .ra: .ra x29: x29
+STACK CFI 4cab0 .cfa: sp 352 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 226d0 220 .cfa: sp 0 + .ra: x30
+STACK CFI 226d4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 226d8 .cfa: x29 64 +
+STACK CFI 226e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 228e0 x19: x19 x20: x20
+STACK CFI 228e4 x21: x21 x22: x22
+STACK CFI 228ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cab4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cab8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cabc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cac0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cac4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cac8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cacc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cad0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cad4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cad8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cadc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cae0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cae4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cae8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4caec 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cb00 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cb04 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cb08 .cfa: x29 32 +
+STACK CFI 4cb0c x19: .cfa -16 + ^
+STACK CFI 4cb1c x19: x19
+STACK CFI 4cb20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cb24 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cb38 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cb3c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cb40 .cfa: x29 32 +
+STACK CFI 4cb44 x19: .cfa -16 + ^
+STACK CFI 4cb54 x19: x19
+STACK CFI 4cb58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cb5c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cb70 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cb74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cb78 .cfa: x29 32 +
+STACK CFI 4cb7c x19: .cfa -16 + ^
+STACK CFI 4cb8c x19: x19
+STACK CFI 4cb90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cb94 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cba8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cbac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cbb0 .cfa: x29 32 +
+STACK CFI 4cbb4 x19: .cfa -16 + ^
+STACK CFI 4cbc4 x19: x19
+STACK CFI 4cbc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cbcc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cbe0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cbe4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cbe8 .cfa: x29 32 +
+STACK CFI 4cbec x19: .cfa -16 + ^
+STACK CFI 4cbfc x19: x19
+STACK CFI 4cc00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cc04 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cc18 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cc1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cc20 .cfa: x29 32 +
+STACK CFI 4cc24 x19: .cfa -16 + ^
+STACK CFI 4cc34 x19: x19
+STACK CFI 4cc38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cc3c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4cc50 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4cc54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cc58 .cfa: x29 32 +
+STACK CFI 4cc5c x19: .cfa -16 + ^
+STACK CFI 4cc6c x19: x19
+STACK CFI 4cc70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cc74 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4cc78 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4cc7c .cfa: x29 64 +
+STACK CFI 4cc80 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4cc8c x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 4cd30 x19: x19 x20: x20
+STACK CFI 4cd34 x21: x21 x22: x22
+STACK CFI 4cd38 x23: x23
+STACK CFI 4cd3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cd40 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 4cd44 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4cd48 .cfa: x29 64 +
+STACK CFI 4cd54 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4cde8 x19: x19 x20: x20
+STACK CFI 4cdec x21: x21 x22: x22
+STACK CFI 4cdf0 x23: x23 x24: x24
+STACK CFI 4cdf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cdf8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4cdfc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ce04 .cfa: x29 32 +
+STACK CFI 4ce08 x19: .cfa -16 + ^
+STACK CFI 4ce2c x19: x19
+STACK CFI 4ce30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ce34 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4ce38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ce40 .cfa: x29 32 +
+STACK CFI 4ce44 x19: .cfa -16 + ^
+STACK CFI 4ce68 x19: x19
+STACK CFI 4ce6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ce70 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4ce74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ce7c .cfa: x29 32 +
+STACK CFI 4ce80 x19: .cfa -16 + ^
+STACK CFI 4cea4 x19: x19
+STACK CFI 4cea8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ceac 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4ceb0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ceb8 .cfa: x29 32 +
+STACK CFI 4cebc x19: .cfa -16 + ^
+STACK CFI 4cee0 x19: x19
+STACK CFI 4cee4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cee8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4ceec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cef4 .cfa: x29 32 +
+STACK CFI 4cef8 x19: .cfa -16 + ^
+STACK CFI 4cf1c x19: x19
+STACK CFI 4cf20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cf24 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4cf28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cf30 .cfa: x29 32 +
+STACK CFI 4cf34 x19: .cfa -16 + ^
+STACK CFI 4cf58 x19: x19
+STACK CFI 4cf5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cf60 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4cf64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4cf6c .cfa: x29 32 +
+STACK CFI 4cf70 x19: .cfa -16 + ^
+STACK CFI 4cf94 x19: x19
+STACK CFI 4cf98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cf9c 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24998 60 .cfa: sp 0 + .ra: x30
+STACK CFI 2499c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 249a0 .cfa: x29 48 +
+STACK CFI 249a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 249ec x19: x19 x20: x20
+STACK CFI 249f0 x21: x21
+STACK CFI 249f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 249f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4cfc4 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4cfc8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4cfcc .cfa: x29 48 +
+STACK CFI 4cfd4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4d014 x19: x19 x20: x20
+STACK CFI 4d018 x21: x21 x22: x22
+STACK CFI 4d01c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d020 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4d024 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 4d028 .cfa: x29 16 +
+STACK CFI 4d040 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d044 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 4d048 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4d04c .cfa: x29 64 +
+STACK CFI 4d058 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4d064 x19: x19 x20: x20
+STACK CFI 4d068 x21: x21 x22: x22
+STACK CFI 4d06c x23: x23 x24: x24
+STACK CFI 4d070 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4d074 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 4d0f4 x19: x19 x20: x20
+STACK CFI 4d0f8 x21: x21 x22: x22
+STACK CFI 4d0fc x23: x23 x24: x24
+STACK CFI 4d100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d104 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4d108 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4d10c .cfa: x29 48 +
+STACK CFI 4d114 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4d154 x19: x19 x20: x20
+STACK CFI 4d158 x21: x21 x22: x22
+STACK CFI 4d15c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d160 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4d164 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 4d168 .cfa: x29 16 +
+STACK CFI 4d180 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d184 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4d188 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4d18c .cfa: x29 64 +
+STACK CFI 4d198 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4d1a4 x19: x19 x20: x20
+STACK CFI 4d1a8 x21: x21 x22: x22
+STACK CFI 4d1ac x23: x23 x24: x24
+STACK CFI 4d1b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4d1b4 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 4d238 x19: x19 x20: x20
+STACK CFI 4d23c x21: x21 x22: x22
+STACK CFI 4d240 x23: x23 x24: x24
+STACK CFI 4d244 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d248 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4d24c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 4d254 .cfa: x29 16 +
+STACK CFI 4d270 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d274 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4d278 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4d27c .cfa: x29 48 +
+STACK CFI 4d284 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4d2c4 x19: x19 x20: x20
+STACK CFI 4d2c8 x21: x21 x22: x22
+STACK CFI 4d2cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d2d0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4d2d4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 4d2d8 .cfa: x29 16 +
+STACK CFI 4d2f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d2f4 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4d2f8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4d2fc .cfa: x29 64 +
+STACK CFI 4d308 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4d314 x19: x19 x20: x20
+STACK CFI 4d318 x21: x21 x22: x22
+STACK CFI 4d31c x23: x23 x24: x24
+STACK CFI 4d320 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 4d324 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 4d3a8 x19: x19 x20: x20
+STACK CFI 4d3ac x21: x21 x22: x22
+STACK CFI 4d3b0 x23: x23 x24: x24
+STACK CFI 4d3b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d3b8 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4d3bc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4d3c0 .cfa: x29 48 +
+STACK CFI 4d3c8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 4d408 x19: x19 x20: x20
+STACK CFI 4d40c x21: x21 x22: x22
+STACK CFI 4d410 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d414 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4d418 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 4d41c .cfa: x29 64 +
+STACK CFI 4d428 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 4d4a0 x19: x19 x20: x20
+STACK CFI 4d4a4 x21: x21 x22: x22
+STACK CFI 4d4a8 x23: x23 x24: x24
+STACK CFI 4d4ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24db0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 24db4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24db8 .cfa: x29 48 +
+STACK CFI 24dbc x19: .cfa -32 + ^
+STACK CFI 24e10 x19: x19
+STACK CFI 24e14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25964 104 .cfa: sp 0 + .ra: x30
+STACK CFI 25968 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 2596c .cfa: x29 80 +
+STACK CFI 25978 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 25a58 x19: x19 x20: x20
+STACK CFI 25a5c x21: x21 x22: x22
+STACK CFI 25a60 x23: x23 x24: x24
+STACK CFI 25a64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 1b8 x19: x19 x20: x20
+STACK CFI 1bc x21: x21 x22: x22
+STACK CFI 1c0 x23: x23 x24: x24
+STACK CFI 1c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 8 .cfa: x29 480 +
+STACK CFI c x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 18 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 34 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI d0 x25: x25
+STACK CFI d8 x19: x19 x20: x20
+STACK CFI dc x21: x21 x22: x22
+STACK CFI e0 x23: x23 x24: x24
+STACK CFI e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4d4b0 600 .cfa: sp 0 + .ra: x30
+STACK CFI 4d4b4 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 4d4bc .cfa: x29 416 +
+STACK CFI 4d4d0 x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x25: .cfa -352 + ^ x26: .cfa -344 + ^ x27: .cfa -336 + ^ x28: .cfa -328 + ^
+STACK CFI 4da98 x19: x19 x20: x20
+STACK CFI 4da9c x21: x21 x22: x22
+STACK CFI 4daa0 x23: x23 x24: x24
+STACK CFI 4daa4 x25: x25 x26: x26
+STACK CFI 4daa8 x27: x27 x28: x28
+STACK CFI 4daac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 261dc 64 .cfa: sp 0 + .ra: x30
+STACK CFI 261e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 261e4 .cfa: x29 64 +
+STACK CFI 261e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26238 x19: x19 x20: x20
+STACK CFI 2623c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 3483c e8 .cfa: sp 0 + .ra: x30
+STACK CFI 34840 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 34844 .cfa: x29 480 +
+STACK CFI 34848 x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 34854 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 34870 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 3490c x25: x25
+STACK CFI 34914 x19: x19 x20: x20
+STACK CFI 34918 x21: x21 x22: x22
+STACK CFI 3491c x23: x23 x24: x24
+STACK CFI 34920 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 x19: .cfa -16 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4dab0 990 .cfa: sp 0 + .ra: x30
+STACK CFI 4dab4 .cfa: sp 704 +
+STACK CFI 4dabc .cfa: sp 864 + .ra: .cfa -856 + ^ x29: .cfa -864 + ^
+STACK CFI 4dac0 .cfa: x29 864 +
+STACK CFI 4dae0 v10: .cfa -752 + ^ v11: .cfa -744 + ^ v12: .cfa -736 + ^ v13: .cfa -728 + ^ v8: .cfa -768 + ^ v9: .cfa -760 + ^ x19: .cfa -848 + ^ x20: .cfa -840 + ^ x21: .cfa -832 + ^ x22: .cfa -824 + ^ x23: .cfa -816 + ^ x24: .cfa -808 + ^ x25: .cfa -800 + ^ x26: .cfa -792 + ^ x27: .cfa -784 + ^ x28: .cfa -776 + ^
+STACK CFI 4dae8 v14: .cfa -720 + ^
+STACK CFI 4e414 v8: v8 v9: v9
+STACK CFI 4e418 x19: x19 x20: x20
+STACK CFI 4e41c x21: x21 x22: x22
+STACK CFI 4e420 v10: v10 v11: v11
+STACK CFI 4e424 x23: x23 x24: x24
+STACK CFI 4e428 v12: v12 v13: v13
+STACK CFI 4e42c x25: x25 x26: x26
+STACK CFI 4e430 x27: x27 x28: x28
+STACK CFI 4e434 v14: v14
+STACK CFI 4e438 .cfa: sp 704 + .ra: .ra x29: x29
+STACK CFI 4e43c .cfa: sp 544 +
+STACK CFI INIT 4e440 6a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4e444 .cfa: sp 288 + .ra: .cfa -280 + ^ x29: .cfa -288 + ^
+STACK CFI 4e44c .cfa: x29 288 +
+STACK CFI 4e454 v8: .cfa -192 + ^ v9: .cfa -184 + ^ x21: .cfa -256 + ^ x22: .cfa -248 + ^
+STACK CFI 4e474 x19: .cfa -272 + ^ x20: .cfa -264 + ^
+STACK CFI 4e498 x23: .cfa -240 + ^ x24: .cfa -232 + ^ x25: .cfa -224 + ^ x26: .cfa -216 + ^ x27: .cfa -208 + ^ x28: .cfa -200 + ^
+STACK CFI 4eacc v8: v8 v9: v9
+STACK CFI 4ead0 x19: x19 x20: x20
+STACK CFI 4ead4 x21: x21 x22: x22
+STACK CFI 4ead8 x23: x23 x24: x24
+STACK CFI 4eadc x25: x25 x26: x26
+STACK CFI 4eae0 x27: x27 x28: x28
+STACK CFI 4eae4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4eae8 5a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4eaec .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 4eaf4 .cfa: x29 304 +
+STACK CFI 4eb0c v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 4eb14 v10: .cfa -192 + ^
+STACK CFI 4f06c v8: v8 v9: v9
+STACK CFI 4f070 x19: x19 x20: x20
+STACK CFI 4f074 x21: x21 x22: x22
+STACK CFI 4f078 x23: x23 x24: x24
+STACK CFI 4f07c x25: x25 x26: x26
+STACK CFI 4f080 x27: x27 x28: x28
+STACK CFI 4f084 v10: v10
+STACK CFI 4f088 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4f08c 218 .cfa: sp 0 + .ra: x30
+STACK CFI 4f090 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 4f09c .cfa: x29 160 +
+STACK CFI 4f0a0 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 4f0b8 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^
+STACK CFI 4f294 x23: x23
+STACK CFI 4f298 x19: x19 x20: x20
+STACK CFI 4f29c x21: x21 x22: x22
+STACK CFI 4f2a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb58 88 .cfa: sp 0 + .ra: x30
+STACK CFI 2eb5c .cfa: sp 352 + .ra: .cfa -344 + ^ x29: .cfa -352 + ^
+STACK CFI 2eb64 .cfa: x29 352 +
+STACK CFI 2eb68 x19: .cfa -336 + ^ x20: .cfa -328 + ^
+STACK CFI 2eb78 x21: .cfa -320 + ^
+STACK CFI 2ebd4 x21: x21
+STACK CFI 2ebd8 x19: x19 x20: x20
+STACK CFI 2ebdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4f2a4 144 .cfa: sp 0 + .ra: x30
+STACK CFI 4f2a8 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 4f2ac .cfa: x29 240 +
+STACK CFI 4f2b0 x21: .cfa -208 + ^ x22: .cfa -200 + ^
+STACK CFI 4f2d0 x19: .cfa -224 + ^ x20: .cfa -216 + ^ x23: .cfa -192 + ^
+STACK CFI 4f3d4 x23: x23
+STACK CFI 4f3dc x19: x19 x20: x20
+STACK CFI 4f3e0 x21: x21 x22: x22
+STACK CFI 4f3e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4f3e8 40 .cfa: sp 0 + .ra: x30
+STACK CFI 4f3ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4f3f0 .cfa: x29 32 +
+STACK CFI 4f3f8 x19: .cfa -16 + ^
+STACK CFI 4f420 x19: x19
+STACK CFI 4f424 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4f428 57c .cfa: sp 0 + .ra: x30
+STACK CFI 4f42c .cfa: sp 32768 +
+STACK CFI 4f430 .cfa: sp 32864 +
+STACK CFI 4f434 .cfa: sp 32944 + .ra: .cfa -32936 + ^ x29: .cfa -32944 + ^
+STACK CFI 4f438 .cfa: x29 32944 +
+STACK CFI 4f448 x19: .cfa -32928 + ^ x20: .cfa -32920 + ^ x21: .cfa -32912 + ^ x22: .cfa -32904 + ^ x23: .cfa -32896 + ^ x24: .cfa -32888 + ^ x25: .cfa -32880 + ^ x26: .cfa -32872 + ^
+STACK CFI 4f988 x19: x19 x20: x20
+STACK CFI 4f98c x21: x21 x22: x22
+STACK CFI 4f990 x23: x23 x24: x24
+STACK CFI 4f994 x25: x25 x26: x26
+STACK CFI 4f998 .cfa: sp 32864 + .ra: .ra x29: x29
+STACK CFI 4f99c .cfa: sp 32768 +
+STACK CFI 4f9a0 .cfa: sp 32688 +
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI c .cfa: x29 384 +
+STACK CFI 10 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 20 x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 28 x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 124 x19: x19 x20: x20
+STACK CFI 128 x21: x21 x22: x22
+STACK CFI 12c x23: x23 x24: x24
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26c88 9c .cfa: sp 0 + .ra: x30
+STACK CFI 26c8c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 26c90 .cfa: x29 160 +
+STACK CFI 26c98 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 26d18 x19: x19 x20: x20
+STACK CFI 26d1c x21: x21 x22: x22
+STACK CFI 26d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4f9a4 60c .cfa: sp 0 + .ra: x30
+STACK CFI 4f9a8 .cfa: sp 880 +
+STACK CFI 4f9b0 .cfa: sp 992 + .ra: .cfa -984 + ^ x29: .cfa -992 + ^
+STACK CFI 4f9b4 .cfa: x29 992 +
+STACK CFI 4f9cc v8: .cfa -896 + ^ v9: .cfa -888 + ^ x19: .cfa -976 + ^ x20: .cfa -968 + ^ x21: .cfa -960 + ^ x22: .cfa -952 + ^ x23: .cfa -944 + ^ x24: .cfa -936 + ^ x25: .cfa -928 + ^ x26: .cfa -920 + ^ x27: .cfa -912 + ^ x28: .cfa -904 + ^
+STACK CFI 4ff90 v8: v8 v9: v9
+STACK CFI 4ff94 x19: x19 x20: x20
+STACK CFI 4ff98 x21: x21 x22: x22
+STACK CFI 4ff9c x23: x23 x24: x24
+STACK CFI 4ffa0 x25: x25 x26: x26
+STACK CFI 4ffa4 x27: x27 x28: x28
+STACK CFI 4ffa8 .cfa: sp 880 + .ra: .ra x29: x29
+STACK CFI 4ffac .cfa: sp 768 +
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28540 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 28544 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28548 .cfa: x29 80 +
+STACK CFI 28550 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 285e0 x21: x21
+STACK CFI 285e8 x19: x19 x20: x20
+STACK CFI 285ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28714 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 28718 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2871c .cfa: x29 48 +
+STACK CFI 28724 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 287c0 x21: x21
+STACK CFI 287c4 x19: x19 x20: x20
+STACK CFI 287c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2633c 104 .cfa: sp 0 + .ra: x30
+STACK CFI 26340 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26348 .cfa: x29 80 +
+STACK CFI 26350 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 26358 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 26430 x23: x23
+STACK CFI 26434 x19: x19 x20: x20
+STACK CFI 26438 x21: x21 x22: x22
+STACK CFI 2643c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 228f0 268 .cfa: sp 0 + .ra: x30
+STACK CFI 228f4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 228f8 .cfa: x29 64 +
+STACK CFI 22900 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 22b44 x21: x21
+STACK CFI 22b4c x19: x19 x20: x20
+STACK CFI 22b50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 4ffb0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4ffb4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4ffb8 .cfa: x29 32 +
+STACK CFI 4ffbc x19: .cfa -16 + ^
+STACK CFI 4ffe0 x19: x19
+STACK CFI 4ffe4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4ffe8 40 .cfa: sp 0 + .ra: x30
+STACK CFI 4ffec .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 4fff0 .cfa: x29 48 +
+STACK CFI 4fff4 x19: .cfa -32 + ^
+STACK CFI 50020 x19: x19
+STACK CFI 50024 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50028 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50040 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50054 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50068 58 .cfa: sp 0 + .ra: x30
+STACK CFI 5006c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50070 .cfa: x29 32 +
+STACK CFI 50074 x19: .cfa -16 + ^
+STACK CFI 500ac x19: x19
+STACK CFI 500b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 500b4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 500b8 x19: x19
+STACK CFI 500bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 500c0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 500c4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 500c8 .cfa: x29 32 +
+STACK CFI 500cc x19: .cfa -16 + ^
+STACK CFI 500f8 x19: x19
+STACK CFI 500fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 50100 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 50104 x19: x19
+STACK CFI 50108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5010c b0 .cfa: sp 0 + .ra: x30
+STACK CFI 50110 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 50114 .cfa: x29 64 +
+STACK CFI 5011c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 501b0 x19: x19 x20: x20
+STACK CFI 501b4 x21: x21 x22: x22
+STACK CFI 501b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 501bc 4c .cfa: sp 0 + .ra: x30
+STACK CFI 501c0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 501c4 .cfa: x29 48 +
+STACK CFI 501c8 x19: .cfa -32 + ^
+STACK CFI 50200 x19: x19
+STACK CFI 50204 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50208 20 .cfa: sp 0 + .ra: x30
+STACK CFI 5020c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50210 .cfa: x29 32 +
+STACK CFI 50224 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50228 70 .cfa: sp 0 + .ra: x30
+STACK CFI 5022c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 50230 .cfa: x29 64 +
+STACK CFI 50234 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 50290 x19: x19 x20: x20
+STACK CFI 50294 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50298 1c .cfa: sp 0 + .ra: x30
+STACK CFI 5029c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 502a0 .cfa: x29 32 +
+STACK CFI 502b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 502b4 cc .cfa: sp 0 + .ra: x30
+STACK CFI 502b8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 502bc .cfa: x29 80 +
+STACK CFI 502c4 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 50374 x19: x19 x20: x20
+STACK CFI 50378 x21: x21
+STACK CFI 5037c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50380 30 .cfa: sp 0 + .ra: x30
+STACK CFI 50384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50390 .cfa: x29 32 +
+STACK CFI 50394 x19: .cfa -16 + ^
+STACK CFI 503a8 x19: x19
+STACK CFI 503ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 503b0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 503b4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 503bc .cfa: x29 32 +
+STACK CFI 503c0 x19: .cfa -16 + ^
+STACK CFI 503d8 x19: x19
+STACK CFI 503dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 503e0 40 .cfa: sp 0 + .ra: x30
+STACK CFI 503e4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 503e8 .cfa: x29 48 +
+STACK CFI 503ec x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 50418 x19: x19 x20: x20
+STACK CFI 5041c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50420 48 .cfa: sp 0 + .ra: x30
+STACK CFI 50424 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 50428 .cfa: x29 48 +
+STACK CFI 50430 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 50458 x21: x21
+STACK CFI 50460 x19: x19 x20: x20
+STACK CFI 50464 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50468 48 .cfa: sp 0 + .ra: x30
+STACK CFI 5046c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50470 .cfa: x29 32 +
+STACK CFI 50474 x19: .cfa -16 + ^
+STACK CFI 504a8 x19: x19
+STACK CFI 504ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 504b0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 504b4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 504b8 .cfa: x29 48 +
+STACK CFI 504c0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 504f8 x21: x21
+STACK CFI 50500 x19: x19 x20: x20
+STACK CFI 50504 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50508 54 .cfa: sp 0 + .ra: x30
+STACK CFI 5050c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 50510 .cfa: x29 48 +
+STACK CFI 50518 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 5054c x21: x21
+STACK CFI 50554 x19: x19 x20: x20
+STACK CFI 50558 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5055c 7c .cfa: sp 0 + .ra: x30
+STACK CFI 50560 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 50568 .cfa: x29 48 +
+STACK CFI 50570 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 505cc x19: x19 x20: x20
+STACK CFI 505d0 x21: x21 x22: x22
+STACK CFI 505d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 505d8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 505dc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 505e0 .cfa: x29 32 +
+STACK CFI 505e4 x19: .cfa -16 + ^
+STACK CFI 50604 x19: x19
+STACK CFI 50608 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5060c 34 .cfa: sp 0 + .ra: x30
+STACK CFI 50610 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5061c .cfa: x29 32 +
+STACK CFI 50620 x19: .cfa -16 + ^
+STACK CFI 50638 x19: x19
+STACK CFI 5063c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50640 34 .cfa: sp 0 + .ra: x30
+STACK CFI 50644 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50650 .cfa: x29 32 +
+STACK CFI 50654 x19: .cfa -16 + ^
+STACK CFI 5066c x19: x19
+STACK CFI 50670 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50674 34 .cfa: sp 0 + .ra: x30
+STACK CFI 50678 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50684 .cfa: x29 32 +
+STACK CFI 50688 x19: .cfa -16 + ^
+STACK CFI 506a0 x19: x19
+STACK CFI 506a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 506a8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 506ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 506b8 .cfa: x29 32 +
+STACK CFI 506bc x19: .cfa -16 + ^
+STACK CFI 506d4 x19: x19
+STACK CFI 506d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 506dc 34 .cfa: sp 0 + .ra: x30
+STACK CFI 506e0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 506ec .cfa: x29 32 +
+STACK CFI 506f0 x19: .cfa -16 + ^
+STACK CFI 50708 x19: x19
+STACK CFI 5070c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50710 34 .cfa: sp 0 + .ra: x30
+STACK CFI 50714 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50720 .cfa: x29 32 +
+STACK CFI 50724 x19: .cfa -16 + ^
+STACK CFI 5073c x19: x19
+STACK CFI 50740 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50744 34 .cfa: sp 0 + .ra: x30
+STACK CFI 50748 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50754 .cfa: x29 32 +
+STACK CFI 50758 x19: .cfa -16 + ^
+STACK CFI 50770 x19: x19
+STACK CFI 50774 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50778 34 .cfa: sp 0 + .ra: x30
+STACK CFI 5077c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 50788 .cfa: x29 32 +
+STACK CFI 5078c x19: .cfa -16 + ^
+STACK CFI 507a4 x19: x19
+STACK CFI 507a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 507ac 34 .cfa: sp 0 + .ra: x30
+STACK CFI 507b0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 507bc .cfa: x29 32 +
+STACK CFI 507c0 x19: .cfa -16 + ^
+STACK CFI 507d8 x19: x19
+STACK CFI 507dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 507e0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 507e4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 507e8 .cfa: x29 48 +
+STACK CFI 507f0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 50824 x19: x19 x20: x20
+STACK CFI 50828 x21: x21 x22: x22
+STACK CFI 5082c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50830 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50854 108 .cfa: sp 0 + .ra: x30
+STACK CFI 50858 .cfa: sp 32 +
+STACK CFI 50958 .cfa: sp 0 +
+STACK CFI INIT 5095c 140 .cfa: sp 0 + .ra: x30
+STACK CFI 50960 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 50968 .cfa: x29 112 +
+STACK CFI 50978 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^
+STACK CFI 50a88 x19: x19 x20: x20
+STACK CFI 50a8c x21: x21 x22: x22
+STACK CFI 50a90 x23: x23 x24: x24
+STACK CFI 50a94 x25: x25 x26: x26
+STACK CFI 50a98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50a9c 274 .cfa: sp 0 + .ra: x30
+STACK CFI 50aa0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 50aa4 .cfa: x29 128 +
+STACK CFI 50aa8 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 50ab8 v8: .cfa -32 + ^
+STACK CFI 50acc x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 50ae8 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 50cf4 x23: x23 x24: x24
+STACK CFI 50cf8 x19: x19 x20: x20
+STACK CFI 50cfc x21: x21 x22: x22
+STACK CFI 50d00 x25: x25 x26: x26
+STACK CFI 50d04 x27: x27 x28: x28
+STACK CFI 50d08 v8: v8
+STACK CFI 50d0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50d10 78 .cfa: sp 0 + .ra: x30
+STACK CFI 50d14 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 50d1c .cfa: x29 48 +
+STACK CFI 50d20 x19: .cfa -32 + ^
+STACK CFI 50d80 x19: x19
+STACK CFI 50d84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50d88 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 50d8c .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 50d90 .cfa: x29 128 +
+STACK CFI 50d98 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 50dac x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 50e38 x19: x19 x20: x20
+STACK CFI 50e3c x21: x21 x22: x22
+STACK CFI 50e40 x23: x23 x24: x24
+STACK CFI 50e44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 50e48 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50e58 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50e68 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50e78 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50e88 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50e98 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50ea8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50eb8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50ec8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50ed8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50ee8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50ef8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 50f08 1e4 .cfa: sp 0 + .ra: x30
+STACK CFI 50f0c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 50f10 .cfa: x29 112 +
+STACK CFI 50f14 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 50f24 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^
+STACK CFI 510d8 x19: x19 x20: x20
+STACK CFI 510dc x21: x21 x22: x22
+STACK CFI 510e0 x23: x23 x24: x24
+STACK CFI 510e4 x25: x25 x26: x26
+STACK CFI 510e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 510ec 1e4 .cfa: sp 0 + .ra: x30
+STACK CFI 510f0 .cfa: sp 1024 +
+STACK CFI 510f4 .cfa: sp 1088 + .ra: .cfa -1080 + ^ x29: .cfa -1088 + ^
+STACK CFI 510f8 .cfa: x29 1088 +
+STACK CFI 51104 x19: .cfa -1072 + ^ x20: .cfa -1064 + ^ x21: .cfa -1056 + ^ x22: .cfa -1048 + ^ x23: .cfa -1040 + ^
+STACK CFI 512bc x23: x23
+STACK CFI 512c0 x19: x19 x20: x20
+STACK CFI 512c4 x21: x21 x22: x22
+STACK CFI 512c8 .cfa: sp 1024 + .ra: .ra x29: x29
+STACK CFI 512cc .cfa: sp 960 +
+STACK CFI INIT 512d0 104 .cfa: sp 0 + .ra: x30
+STACK CFI 512d4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 512d8 .cfa: x29 48 +
+STACK CFI 512e0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 513c8 x19: x19 x20: x20
+STACK CFI 513cc x21: x21 x22: x22
+STACK CFI 513d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 513d4 104 .cfa: sp 0 + .ra: x30
+STACK CFI 513d8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 513dc .cfa: x29 64 +
+STACK CFI 513e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 514c8 x19: x19 x20: x20
+STACK CFI 514cc x21: x21 x22: x22
+STACK CFI 514d0 x23: x23 x24: x24
+STACK CFI 514d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514d8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514e0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514e4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514ec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514f0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514f4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514f8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 514fc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51500 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51504 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51508 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5150c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51510 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51514 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51518 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5151c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51524 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51528 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5152c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51530 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51544 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51548 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5154c .cfa: x29 32 +
+STACK CFI 51550 x19: .cfa -16 + ^
+STACK CFI 51560 x19: x19
+STACK CFI 51564 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51568 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5157c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51580 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51584 .cfa: x29 32 +
+STACK CFI 51588 x19: .cfa -16 + ^
+STACK CFI 51598 x19: x19
+STACK CFI 5159c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 515a0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 515b4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 515b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 515bc .cfa: x29 32 +
+STACK CFI 515c0 x19: .cfa -16 + ^
+STACK CFI 515d0 x19: x19
+STACK CFI 515d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 515d8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 515ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI 515f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 515f4 .cfa: x29 32 +
+STACK CFI 515f8 x19: .cfa -16 + ^
+STACK CFI 51608 x19: x19
+STACK CFI 5160c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51610 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51624 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51628 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5162c .cfa: x29 32 +
+STACK CFI 51630 x19: .cfa -16 + ^
+STACK CFI 51640 x19: x19
+STACK CFI 51644 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51648 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5165c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51660 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51664 .cfa: x29 32 +
+STACK CFI 51668 x19: .cfa -16 + ^
+STACK CFI 51678 x19: x19
+STACK CFI 5167c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51680 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51694 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51698 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5169c .cfa: x29 32 +
+STACK CFI 516a0 x19: .cfa -16 + ^
+STACK CFI 516b0 x19: x19
+STACK CFI 516b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 516b8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 516cc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 516d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 516d4 .cfa: x29 32 +
+STACK CFI 516d8 x19: .cfa -16 + ^
+STACK CFI 516e8 x19: x19
+STACK CFI 516ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 516f0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51704 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51708 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5170c .cfa: x29 32 +
+STACK CFI 51710 x19: .cfa -16 + ^
+STACK CFI 51720 x19: x19
+STACK CFI 51724 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51728 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5173c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51740 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51744 .cfa: x29 32 +
+STACK CFI 51748 x19: .cfa -16 + ^
+STACK CFI 51758 x19: x19
+STACK CFI 5175c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51760 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51774 24 .cfa: sp 0 + .ra: x30
+STACK CFI 51778 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5177c .cfa: x29 32 +
+STACK CFI 51780 x19: .cfa -16 + ^
+STACK CFI 51790 x19: x19
+STACK CFI 51794 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51798 3c .cfa: sp 0 + .ra: x30
+STACK CFI 5179c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 517a4 .cfa: x29 32 +
+STACK CFI 517a8 x19: .cfa -16 + ^
+STACK CFI 517cc x19: x19
+STACK CFI 517d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 517d4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 517d8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 517e0 .cfa: x29 32 +
+STACK CFI 517e4 x19: .cfa -16 + ^
+STACK CFI 51808 x19: x19
+STACK CFI 5180c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51810 3c .cfa: sp 0 + .ra: x30
+STACK CFI 51814 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5181c .cfa: x29 32 +
+STACK CFI 51820 x19: .cfa -16 + ^
+STACK CFI 51844 x19: x19
+STACK CFI 51848 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5184c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 51850 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51858 .cfa: x29 32 +
+STACK CFI 5185c x19: .cfa -16 + ^
+STACK CFI 51880 x19: x19
+STACK CFI 51884 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51888 3c .cfa: sp 0 + .ra: x30
+STACK CFI 5188c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51894 .cfa: x29 32 +
+STACK CFI 51898 x19: .cfa -16 + ^
+STACK CFI 518bc x19: x19
+STACK CFI 518c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 518c4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 518c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 518d0 .cfa: x29 32 +
+STACK CFI 518d4 x19: .cfa -16 + ^
+STACK CFI 518f8 x19: x19
+STACK CFI 518fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51900 3c .cfa: sp 0 + .ra: x30
+STACK CFI 51904 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5190c .cfa: x29 32 +
+STACK CFI 51910 x19: .cfa -16 + ^
+STACK CFI 51934 x19: x19
+STACK CFI 51938 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5193c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 51940 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51948 .cfa: x29 32 +
+STACK CFI 5194c x19: .cfa -16 + ^
+STACK CFI 51970 x19: x19
+STACK CFI 51974 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51978 3c .cfa: sp 0 + .ra: x30
+STACK CFI 5197c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51984 .cfa: x29 32 +
+STACK CFI 51988 x19: .cfa -16 + ^
+STACK CFI 519ac x19: x19
+STACK CFI 519b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 519b4 3c .cfa: sp 0 + .ra: x30
+STACK CFI 519b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 519c0 .cfa: x29 32 +
+STACK CFI 519c4 x19: .cfa -16 + ^
+STACK CFI 519e8 x19: x19
+STACK CFI 519ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 519f0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 519f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 519fc .cfa: x29 32 +
+STACK CFI 51a00 x19: .cfa -16 + ^
+STACK CFI 51a24 x19: x19
+STACK CFI 51a28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24884 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51a2c 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 51a68 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24c60 98 .cfa: sp 0 + .ra: x30
+STACK CFI 24c64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 24c68 .cfa: x29 64 +
+STACK CFI 24c70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24cec x19: x19 x20: x20
+STACK CFI 24cf0 x21: x21
+STACK CFI 24cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 250a4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 250a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 250ac .cfa: x29 48 +
+STACK CFI 250b0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 250b8 x21: .cfa -16 + ^
+STACK CFI 250f0 x19: x19 x20: x20
+STACK CFI 250f4 x21: x21
+STACK CFI 250f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51aa4 90 .cfa: sp 0 + .ra: x30
+STACK CFI 51aa8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 51aac .cfa: x29 48 +
+STACK CFI 51ab0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 51abc x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 51b28 x19: x19 x20: x20
+STACK CFI 51b2c x21: x21 x22: x22
+STACK CFI 51b30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 256a0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 256a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 256ac .cfa: x29 32 +
+STACK CFI 256b0 x19: .cfa -16 + ^
+STACK CFI 25710 x19: x19
+STACK CFI 25714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25768 13c .cfa: sp 0 + .ra: x30
+STACK CFI 2576c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 25770 .cfa: x29 64 +
+STACK CFI 25778 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 25898 x19: x19 x20: x20
+STACK CFI 2589c x21: x21 x22: x22
+STACK CFI 258a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51b34 cc .cfa: sp 0 + .ra: x30
+STACK CFI 51b38 .cfa: sp 400 + .ra: .cfa -392 + ^ x29: .cfa -400 + ^
+STACK CFI 51b40 .cfa: x29 400 +
+STACK CFI 51b44 x19: .cfa -384 + ^ x20: .cfa -376 + ^
+STACK CFI 51b58 x21: .cfa -368 + ^ x22: .cfa -360 + ^ x23: .cfa -352 + ^ x24: .cfa -344 + ^
+STACK CFI 51bf0 x19: x19 x20: x20
+STACK CFI 51bf4 x21: x21 x22: x22
+STACK CFI 51bf8 x23: x23 x24: x24
+STACK CFI 51bfc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51c00 50 .cfa: sp 0 + .ra: x30
+STACK CFI 51c04 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51c10 .cfa: x29 32 +
+STACK CFI 51c14 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 51c1c x19: x19 x20: x20
+STACK CFI 51c24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 51c2c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 51c48 x19: x19 x20: x20
+STACK CFI 51c4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51c50 50 .cfa: sp 0 + .ra: x30
+STACK CFI 51c54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51c60 .cfa: x29 32 +
+STACK CFI 51c64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 51c6c x19: x19 x20: x20
+STACK CFI 51c74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 51c7c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 51c98 x19: x19 x20: x20
+STACK CFI 51c9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51ca0 11c .cfa: sp 0 + .ra: x30
+STACK CFI 51ca4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 51ca8 .cfa: x29 128 +
+STACK CFI 51cac x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 51cb8 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 51cc4 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 51dac x19: x19 x20: x20
+STACK CFI 51db0 x21: x21 x22: x22
+STACK CFI 51db4 x23: x23 x24: x24
+STACK CFI 51db8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51dbc e8 .cfa: sp 0 + .ra: x30
+STACK CFI 51dc0 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 51dc4 .cfa: x29 480 +
+STACK CFI 51dc8 x19: .cfa -464 + ^ x20: .cfa -456 + ^
+STACK CFI 51dd4 x23: .cfa -432 + ^ x24: .cfa -424 + ^ x25: .cfa -416 + ^
+STACK CFI 51df0 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 51e8c x25: x25
+STACK CFI 51e94 x19: x19 x20: x20
+STACK CFI 51e98 x21: x21 x22: x22
+STACK CFI 51e9c x23: x23 x24: x24
+STACK CFI 51ea0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51ea4 50 .cfa: sp 0 + .ra: x30
+STACK CFI 51ea8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 51eac .cfa: x29 32 +
+STACK CFI 51eb0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 51eec x19: x19 x20: x20
+STACK CFI 51ef0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51ef4 5c .cfa: sp 0 + .ra: x30
+STACK CFI 51ef8 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 51f00 .cfa: x29 336 +
+STACK CFI 51f04 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 51f0c x21: .cfa -304 + ^
+STACK CFI 51f40 x21: x21
+STACK CFI 51f48 x19: x19 x20: x20
+STACK CFI 51f4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51f50 9c .cfa: sp 0 + .ra: x30
+STACK CFI 51f54 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 51f58 .cfa: x29 160 +
+STACK CFI 51f60 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 51fe0 x19: x19 x20: x20
+STACK CFI 51fe4 x21: x21 x22: x22
+STACK CFI 51fe8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28074 5c .cfa: sp 0 + .ra: x30
+STACK CFI 28078 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 28080 .cfa: x29 336 +
+STACK CFI 28084 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 2808c x21: .cfa -304 + ^
+STACK CFI 280c0 x21: x21
+STACK CFI 280c8 x19: x19 x20: x20
+STACK CFI 280cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 8 .cfa: x29 416 +
+STACK CFI c x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 18 x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^
+STACK CFI a0 x23: x23
+STACK CFI a8 x19: x19 x20: x20
+STACK CFI ac x21: x21 x22: x22
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 x19: .cfa -16 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51fec 12c .cfa: sp 0 + .ra: x30
+STACK CFI 51ff0 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 51ffc .cfa: x29 96 +
+STACK CFI 52004 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI 5210c x21: x21
+STACK CFI 52110 x19: x19 x20: x20
+STACK CFI 52114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 52118 148 .cfa: sp 0 + .ra: x30
+STACK CFI 5211c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 52128 .cfa: x29 112 +
+STACK CFI 52134 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 52254 x19: x19 x20: x20
+STACK CFI 52258 x21: x21 x22: x22
+STACK CFI 5225c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28208 9c .cfa: sp 0 + .ra: x30
+STACK CFI 2820c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 28210 .cfa: x29 160 +
+STACK CFI 28218 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 28298 x19: x19 x20: x20
+STACK CFI 2829c x21: x21 x22: x22
+STACK CFI 282a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 52260 13c .cfa: sp 0 + .ra: x30
+STACK CFI 52264 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 52270 .cfa: x29 80 +
+STACK CFI 52280 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 522a4 x21: .cfa -48 + ^
+STACK CFI 52390 x21: x21
+STACK CFI 52394 x19: x19 x20: x20
+STACK CFI 52398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5239c 338 .cfa: sp 0 + .ra: x30
+STACK CFI 523a0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 523a4 .cfa: x29 128 +
+STACK CFI 523b0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 523d8 x25: .cfa -64 + ^
+STACK CFI 526c0 x25: x25
+STACK CFI 526c4 x19: x19 x20: x20
+STACK CFI 526c8 x21: x21 x22: x22
+STACK CFI 526cc x23: x23 x24: x24
+STACK CFI 526d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 526d4 240 .cfa: sp 0 + .ra: x30
+STACK CFI 526d8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 526e4 .cfa: x29 112 +
+STACK CFI 526f8 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 5271c x23: .cfa -64 + ^
+STACK CFI 52904 x23: x23
+STACK CFI 52908 x19: x19 x20: x20
+STACK CFI 5290c x21: x21 x22: x22
+STACK CFI 52910 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI c .cfa: x29 336 +
+STACK CFI 10 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 18 x21: .cfa -304 + ^
+STACK CFI 4c x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 52914 9c .cfa: sp 0 + .ra: x30
+STACK CFI 52918 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5291c .cfa: x29 160 +
+STACK CFI 52924 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 529a4 x19: x19 x20: x20
+STACK CFI 529a8 x21: x21 x22: x22
+STACK CFI 529ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 529b0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 529b4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 529b8 .cfa: x29 160 +
+STACK CFI 529bc x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 529c8 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 52a28 x19: x19 x20: x20
+STACK CFI 52a2c x21: x21 x22: x22
+STACK CFI 52a30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 52a34 5ac .cfa: sp 0 + .ra: x30
+STACK CFI 52a38 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 52a40 .cfa: x29 272 +
+STACK CFI 52a4c v10: .cfa -160 + ^ v11: .cfa -152 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^
+STACK CFI 52a6c v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 52a80 x21: .cfa -240 + ^ x22: .cfa -232 + ^
+STACK CFI 52a8c x23: .cfa -224 + ^ x24: .cfa -216 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^
+STACK CFI 52fc0 x19: x19 x20: x20
+STACK CFI 52fc4 v8: v8 v9: v9
+STACK CFI 52fc8 x21: x21 x22: x22
+STACK CFI 52fcc v10: v10 v11: v11
+STACK CFI 52fd0 x23: x23 x24: x24
+STACK CFI 52fd4 x25: x25 x26: x26
+STACK CFI 52fd8 x27: x27 x28: x28
+STACK CFI 52fdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 52fe0 204 .cfa: sp 0 + .ra: x30
+STACK CFI 52fe4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 52fec .cfa: x29 176 +
+STACK CFI 52ffc v8: .cfa -80 + ^ v9: .cfa -72 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^
+STACK CFI 53010 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 5302c x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 53038 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^
+STACK CFI 531c8 x19: x19 x20: x20
+STACK CFI 531cc v8: v8 v9: v9
+STACK CFI 531d0 x21: x21 x22: x22
+STACK CFI 531d4 x23: x23 x24: x24
+STACK CFI 531d8 x25: x25 x26: x26
+STACK CFI 531dc x27: x27 x28: x28
+STACK CFI 531e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 531e4 5ac .cfa: sp 0 + .ra: x30
+STACK CFI 531e8 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 531f0 .cfa: x29 272 +
+STACK CFI 531fc v10: .cfa -160 + ^ v11: .cfa -152 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^
+STACK CFI 5321c v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 53230 x21: .cfa -240 + ^ x22: .cfa -232 + ^
+STACK CFI 5323c x23: .cfa -224 + ^ x24: .cfa -216 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^
+STACK CFI 53770 x19: x19 x20: x20
+STACK CFI 53774 v8: v8 v9: v9
+STACK CFI 53778 x21: x21 x22: x22
+STACK CFI 5377c v10: v10 v11: v11
+STACK CFI 53780 x23: x23 x24: x24
+STACK CFI 53784 x25: x25 x26: x26
+STACK CFI 53788 x27: x27 x28: x28
+STACK CFI 5378c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 53790 90 .cfa: sp 0 + .ra: x30
+STACK CFI 53794 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 53798 .cfa: x29 176 +
+STACK CFI 5379c x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 537a8 x21: .cfa -144 + ^
+STACK CFI 53814 x21: x21
+STACK CFI 53818 x19: x19 x20: x20
+STACK CFI 5381c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 53820 190 .cfa: sp 0 + .ra: x30
+STACK CFI 53824 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 53830 .cfa: x29 128 +
+STACK CFI 5383c x23: .cfa -80 + ^
+STACK CFI 53858 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 539a0 x23: x23
+STACK CFI 539a4 x19: x19 x20: x20
+STACK CFI 539a8 x21: x21 x22: x22
+STACK CFI 539ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 539b0 190 .cfa: sp 0 + .ra: x30
+STACK CFI 539b4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 539c0 .cfa: x29 128 +
+STACK CFI 539cc x23: .cfa -80 + ^
+STACK CFI 539e8 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 53b30 x23: x23
+STACK CFI 53b34 x19: x19 x20: x20
+STACK CFI 53b38 x21: x21 x22: x22
+STACK CFI 53b3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 27d70 5c .cfa: sp 0 + .ra: x30
+STACK CFI 27d74 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 27d7c .cfa: x29 336 +
+STACK CFI 27d80 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 27d88 x21: .cfa -304 + ^
+STACK CFI 27dbc x21: x21
+STACK CFI 27dc4 x19: x19 x20: x20
+STACK CFI 27dc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 53b40 bc .cfa: sp 0 + .ra: x30
+STACK CFI 53b44 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 53b48 .cfa: x29 208 +
+STACK CFI 53b50 x23: .cfa -160 + ^ x24: .cfa -152 + ^ x25: .cfa -144 + ^
+STACK CFI 53b6c x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 53be8 x25: x25
+STACK CFI 53bec x19: x19 x20: x20
+STACK CFI 53bf0 x21: x21 x22: x22
+STACK CFI 53bf4 x23: x23 x24: x24
+STACK CFI 53bf8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 53bfc 3d0 .cfa: sp 0 + .ra: x30
+STACK CFI 53c00 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 53c0c .cfa: x29 384 +
+STACK CFI 53c20 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^
+STACK CFI 53fb8 x25: x25
+STACK CFI 53fbc x19: x19 x20: x20
+STACK CFI 53fc0 x21: x21 x22: x22
+STACK CFI 53fc4 x23: x23 x24: x24
+STACK CFI 53fc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 22b58 3e8 .cfa: sp 0 + .ra: x30
+STACK CFI 22b60 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 22b64 .cfa: x29 64 +
+STACK CFI 22b78 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 22f2c x21: x21
+STACK CFI 22f34 x19: x19 x20: x20
+STACK CFI 22f38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2351c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23520 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2354c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23554 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 53fcc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 53fd0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 235ec 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23610 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 2367c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23680 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23688 40 .cfa: sp 0 + .ra: x30
+STACK CFI 2368c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23690 .cfa: x29 32 +
+STACK CFI 23694 x19: .cfa -16 + ^
+STACK CFI 236c0 x19: x19
+STACK CFI 236c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 236c8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 53fd4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 53fd8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 237ec a8 .cfa: sp 0 + .ra: x30
+STACK CFI 237f0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 237f4 .cfa: x29 64 +
+STACK CFI 23800 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 23884 x23: x23
+STACK CFI 23888 x19: x19 x20: x20
+STACK CFI 2388c x21: x21 x22: x22
+STACK CFI 23890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23738 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 2373c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23740 .cfa: x29 64 +
+STACK CFI 2374c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 237dc x23: x23
+STACK CFI 237e0 x19: x19 x20: x20
+STACK CFI 237e4 x21: x21 x22: x22
+STACK CFI 237e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238b0 .cfa: x29 32 +
+STACK CFI 238b4 x19: .cfa -16 + ^
+STACK CFI 238c4 x19: x19
+STACK CFI 238c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 238cc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 53fdc 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 53ff0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 53ff4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 53ff8 .cfa: x29 32 +
+STACK CFI 53ffc x19: .cfa -16 + ^
+STACK CFI 5400c x19: x19
+STACK CFI 54010 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54014 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 54028 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5402c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54030 .cfa: x29 32 +
+STACK CFI 54034 x19: .cfa -16 + ^
+STACK CFI 54044 x19: x19
+STACK CFI 54048 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5404c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 54050 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54058 .cfa: x29 32 +
+STACK CFI 5405c x19: .cfa -16 + ^
+STACK CFI 54080 x19: x19
+STACK CFI 54084 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54088 3c .cfa: sp 0 + .ra: x30
+STACK CFI 5408c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54094 .cfa: x29 32 +
+STACK CFI 54098 x19: .cfa -16 + ^
+STACK CFI 540bc x19: x19
+STACK CFI 540c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24794 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24798 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2479c .cfa: x29 64 +
+STACK CFI 247a8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 24834 x23: x23
+STACK CFI 24838 x19: x19 x20: x20
+STACK CFI 2483c x21: x21 x22: x22
+STACK CFI 24840 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24940 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24948 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2494c .cfa: x29 32 +
+STACK CFI 24954 x19: .cfa -16 + ^
+STACK CFI 2496c x19: x19
+STACK CFI 24970 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24974 24 .cfa: sp 0 + .ra: x30
+STACK CFI 24978 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2497c .cfa: x29 32 +
+STACK CFI 24980 x19: .cfa -16 + ^
+STACK CFI 24990 x19: x19
+STACK CFI 24994 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 48 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24a00 fc .cfa: sp 0 + .ra: x30
+STACK CFI 24a04 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 24a0c .cfa: x29 96 +
+STACK CFI 24a18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 24aec x21: x21 x22: x22
+STACK CFI 24af0 x19: x19 x20: x20
+STACK CFI 24af4 x23: x23 x24: x24
+STACK CFI 24af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24afc b4 .cfa: sp 0 + .ra: x30
+STACK CFI 24b00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24b04 .cfa: x29 48 +
+STACK CFI 24b08 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 24b18 x21: .cfa -16 + ^
+STACK CFI 24ba4 x21: x21
+STACK CFI 24ba8 x19: x19 x20: x20
+STACK CFI 24bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24bb0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 24bb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 24bb8 .cfa: x29 48 +
+STACK CFI 24bc0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 24c40 x21: x21
+STACK CFI 24c58 x19: x19 x20: x20
+STACK CFI 24c5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4b670 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4b674 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4b678 .cfa: x29 32 +
+STACK CFI 4b67c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4b6bc x19: x19 x20: x20
+STACK CFI 4b6c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 18 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x21: x21
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 251f4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 251f8 .cfa: x29 48 +
+STACK CFI 251fc x19: .cfa -32 + ^
+STACK CFI 25268 x19: x19
+STACK CFI 2526c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25270 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 25274 x19: x19
+STACK CFI 25278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252d8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 252dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 252e0 .cfa: x29 48 +
+STACK CFI 252e4 x19: .cfa -32 + ^
+STACK CFI 25350 x19: x19
+STACK CFI 25354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25358 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 2535c x19: x19
+STACK CFI 25360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25364 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25370 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25380 24 .cfa: sp 0 + .ra: x30
+STACK CFI 25384 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25388 .cfa: x29 32 +
+STACK CFI 2538c x19: .cfa -16 + ^
+STACK CFI 2539c x19: x19
+STACK CFI 253a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 253a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253b4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 253c0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 253c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 253c8 .cfa: x29 48 +
+STACK CFI 253cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 2548c x19: x19 x20: x20
+STACK CFI 25490 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 25494 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25498 x19: x19 x20: x20
+STACK CFI 2549c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 254a0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 254ac cc .cfa: sp 0 + .ra: x30
+STACK CFI 254b0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 254b4 .cfa: x29 48 +
+STACK CFI 254b8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 25564 x19: x19 x20: x20
+STACK CFI 25568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2556c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 25570 x19: x19 x20: x20
+STACK CFI 25574 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25578 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25584 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25598 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 255ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 255b0 .cfa: x29 32 +
+STACK CFI 255b4 x19: .cfa -16 + ^
+STACK CFI 255c4 x19: x19
+STACK CFI 255c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 255cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255d4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255e4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 255f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25608 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2560c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25610 .cfa: x29 32 +
+STACK CFI 25614 x19: .cfa -16 + ^
+STACK CFI 25624 x19: x19
+STACK CFI 25628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2562c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25634 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 130 x21: x21
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 540c4 13c .cfa: sp 0 + .ra: x30
+STACK CFI 540c8 .cfa: sp 480 + .ra: .cfa -472 + ^ x29: .cfa -480 + ^
+STACK CFI 540cc .cfa: x29 480 +
+STACK CFI 540d0 x21: .cfa -448 + ^ x22: .cfa -440 + ^
+STACK CFI 540dc x25: .cfa -416 + ^ x26: .cfa -408 + ^
+STACK CFI 540f8 x19: .cfa -464 + ^ x20: .cfa -456 + ^ x23: .cfa -432 + ^ x24: .cfa -424 + ^
+STACK CFI 541ec x19: x19 x20: x20
+STACK CFI 541f0 x21: x21 x22: x22
+STACK CFI 541f4 x23: x23 x24: x24
+STACK CFI 541f8 x25: x25 x26: x26
+STACK CFI 541fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54200 9c .cfa: sp 0 + .ra: x30
+STACK CFI 54204 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54208 .cfa: x29 80 +
+STACK CFI 5420c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 54214 x21: .cfa -48 + ^
+STACK CFI 54290 x21: x21
+STACK CFI 54294 x19: x19 x20: x20
+STACK CFI 54298 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5429c 1d8 .cfa: sp 0 + .ra: x30
+STACK CFI 542a0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 542a4 .cfa: x29 80 +
+STACK CFI 542a8 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 542b0 x21: .cfa -48 + ^
+STACK CFI 54468 x21: x21
+STACK CFI 5446c x19: x19 x20: x20
+STACK CFI 54470 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 282cc 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282d8 .cfa: x29 32 +
+STACK CFI 282e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282ec 20 .cfa: sp 0 + .ra: x30
+STACK CFI 282f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 282f8 .cfa: x29 32 +
+STACK CFI 28308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2830c 110 .cfa: sp 0 + .ra: x30
+STACK CFI 28310 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2831c .cfa: x29 32 +
+STACK CFI 28398 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2839c .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 2841c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 28420 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 28424 .cfa: x29 80 +
+STACK CFI 28430 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 28530 x19: x19 x20: x20
+STACK CFI 28534 x21: x21 x22: x22
+STACK CFI 28538 x23: x23 x24: x24
+STACK CFI 2853c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 28650 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 28654 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 2865c .cfa: x29 48 +
+STACK CFI 28664 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 28708 x19: x19 x20: x20
+STACK CFI 2870c x21: x21
+STACK CFI 28710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI c4 x21: x21
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 287cc 10c .cfa: sp 0 + .ra: x30
+STACK CFI 287d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 287d8 .cfa: x29 64 +
+STACK CFI 287e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 287e8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 288c8 x19: x19 x20: x20
+STACK CFI 288cc x21: x21 x22: x22
+STACK CFI 288d0 x23: x23
+STACK CFI 288d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 288d8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI 288dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 288e4 .cfa: x29 64 +
+STACK CFI 288f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 289b8 x23: x23
+STACK CFI 289bc x19: x19 x20: x20
+STACK CFI 289c0 x21: x21 x22: x22
+STACK CFI 289c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26984 124 .cfa: sp 0 + .ra: x30
+STACK CFI 26988 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 26990 .cfa: x29 80 +
+STACK CFI 2699c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 26a98 x19: x19 x20: x20
+STACK CFI 26a9c x21: x21 x22: x22
+STACK CFI 26aa0 x23: x23
+STACK CFI 26aa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 22f40 d8 .cfa: sp 0 + .ra: x30
+STACK CFI 22f44 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 22f48 .cfa: x29 64 +
+STACK CFI 22f50 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 23004 x21: x21
+STACK CFI 2300c x19: x19 x20: x20
+STACK CFI 23010 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54474 1c .cfa: sp 0 + .ra: x30
+STACK CFI 54478 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5447c .cfa: x29 16 +
+STACK CFI 5448c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54490 ec .cfa: sp 0 + .ra: x30
+STACK CFI 54494 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54498 .cfa: x29 80 +
+STACK CFI 544a0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 5456c x21: x21
+STACK CFI 54574 x19: x19 x20: x20
+STACK CFI 54578 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5457c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 54580 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5458c .cfa: x29 16 +
+STACK CFI 545c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 545c4 11c .cfa: sp 0 + .ra: x30
+STACK CFI 545c8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 545cc .cfa: x29 64 +
+STACK CFI 545d4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 546d4 x21: x21
+STACK CFI 546d8 x19: x19 x20: x20
+STACK CFI 546dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x25: .cfa -32 + ^
+STACK CFI 18 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 30 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI a4 x19: x19 x20: x20
+STACK CFI a8 x21: x21 x22: x22
+STACK CFI ac x23: x23 x24: x24
+STACK CFI b0 x25: x25
+STACK CFI b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 140 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 1c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x23: .cfa -48 + ^
+STACK CFI 130 x23: x23
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 x21: x21 x22: x22
+STACK CFI 13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 14 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 20 x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 x23: x23 x24: x24
+STACK CFI 12c x25: x25 x26: x26
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 546e0 2dc .cfa: sp 0 + .ra: x30
+STACK CFI 546e4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 546e8 .cfa: x29 96 +
+STACK CFI 546ec x25: .cfa -32 + ^
+STACK CFI 546f8 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 54704 x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 549a8 x25: x25
+STACK CFI 549ac x19: x19 x20: x20
+STACK CFI 549b0 x21: x21 x22: x22
+STACK CFI 549b4 x23: x23 x24: x24
+STACK CFI 549b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 549bc 234 .cfa: sp 0 + .ra: x30
+STACK CFI 549c0 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 549c4 .cfa: x29 160 +
+STACK CFI 549c8 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 549d4 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x23: .cfa -112 + ^
+STACK CFI 54be0 x19: x19 x20: x20
+STACK CFI 54be4 x21: x21 x22: x22
+STACK CFI 54be8 x23: x23
+STACK CFI 54bec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54bf0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 238 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI c x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 18 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x23: .cfa -112 + ^
+STACK CFI 228 x19: x19 x20: x20
+STACK CFI 22c x21: x21 x22: x22
+STACK CFI 230 x23: x23
+STACK CFI 234 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 54bf4 190 .cfa: sp 0 + .ra: x30
+STACK CFI 54bf8 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 54c04 .cfa: x29 144 +
+STACK CFI 54c0c x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^
+STACK CFI 54d78 x19: x19 x20: x20
+STACK CFI 54d7c x21: x21
+STACK CFI 54d80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 24 x21: .cfa -64 + ^
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 x21: x21
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54d84 100 .cfa: sp 0 + .ra: x30
+STACK CFI 54d88 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54d8c .cfa: x29 80 +
+STACK CFI 54d90 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 54d9c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 54db0 x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 54e54 x19: x19 x20: x20
+STACK CFI 54e58 x21: x21 x22: x22
+STACK CFI 54e5c x23: x23 x24: x24
+STACK CFI 54e60 x25: x25 x26: x26
+STACK CFI 54e64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 54e68 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 28 x19: x19
+STACK CFI 30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 34 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 1c x19: x19
+STACK CFI 24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 60 x19: x19
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54e84 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 18 x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^
+STACK CFI 30 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI f4 x27: x27
+STACK CFI f8 x19: x19 x20: x20
+STACK CFI fc x21: x21 x22: x22
+STACK CFI 100 x23: x23 x24: x24
+STACK CFI 104 x25: x25 x26: x26
+STACK CFI 10c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 28 x19: x19
+STACK CFI 30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 34 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 1c x19: x19
+STACK CFI 24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 60 x19: x19
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54e9c 34 .cfa: sp 0 + .ra: x30
+STACK CFI 54ea0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 54ea4 .cfa: x29 16 +
+STACK CFI 54ecc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54ed0 34 .cfa: sp 0 + .ra: x30
+STACK CFI 54ed4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54edc .cfa: x29 32 +
+STACK CFI 54ee0 x19: .cfa -16 + ^
+STACK CFI 54efc x19: x19
+STACK CFI 54f00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54f04 24 .cfa: sp 0 + .ra: x30
+STACK CFI 54f08 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54f0c .cfa: x29 32 +
+STACK CFI 54f10 x19: .cfa -16 + ^
+STACK CFI 54f20 x19: x19
+STACK CFI 54f24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8 .cfa: x29 16 +
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 54f28 48 .cfa: sp 0 + .ra: x30
+STACK CFI 54f2c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 54f30 .cfa: x29 32 +
+STACK CFI 54f34 x19: .cfa -16 + ^
+STACK CFI 54f68 x19: x19
+STACK CFI 54f6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 60 x19: x19
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 14 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 5c x19: x19 x20: x20
+STACK CFI 60 x21: x21 x22: x22
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54f70 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 54f74 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 54f7c .cfa: x29 48 +
+STACK CFI 54f84 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 54f8c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 5500c x19: x19 x20: x20
+STACK CFI 55010 x21: x21 x22: x22
+STACK CFI 55014 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 140 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 x21: x21 x22: x22
+STACK CFI 13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 210 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 204 x19: x19 x20: x20
+STACK CFI 208 x21: x21 x22: x22
+STACK CFI 20c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55018 48 .cfa: sp 0 + .ra: x30
+STACK CFI 5501c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 55020 .cfa: x29 32 +
+STACK CFI 55024 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 55058 x19: x19 x20: x20
+STACK CFI 5505c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55060 268 .cfa: sp 0 + .ra: x30
+STACK CFI 55064 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 55068 .cfa: x29 128 +
+STACK CFI 5506c x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 55084 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 552b0 x23: x23 x24: x24
+STACK CFI 552b4 x19: x19 x20: x20
+STACK CFI 552b8 x21: x21 x22: x22
+STACK CFI 552bc x25: x25 x26: x26
+STACK CFI 552c0 x27: x27 x28: x28
+STACK CFI 552c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI c .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^
+STACK CFI 58 x19: x19
+STACK CFI 5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 552c8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 552d8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 552e8 20 .cfa: sp 0 + .ra: x30
+STACK CFI 552ec .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 552f0 .cfa: x29 16 +
+STACK CFI 55304 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55308 20 .cfa: sp 0 + .ra: x30
+STACK CFI 5530c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55310 .cfa: x29 16 +
+STACK CFI 55324 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23524 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55328 18 .cfa: sp 0 + .ra: x30
+STACK CFI 5532c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55330 .cfa: x29 16 +
+STACK CFI 5533c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55340 18 .cfa: sp 0 + .ra: x30
+STACK CFI 55344 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55348 .cfa: x29 16 +
+STACK CFI 55354 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55358 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5536c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55374 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5537c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55380 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55384 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55388 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5538c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55390 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55394 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55398 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5539c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553a0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553a4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553a8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553ac 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553b4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553b8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553bc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553c8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553cc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 553d0 1c .cfa: sp 0 + .ra: x30
+STACK CFI 553d4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 553d8 .cfa: x29 16 +
+STACK CFI 553e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 553ec 1c .cfa: sp 0 + .ra: x30
+STACK CFI 553f0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 553f4 .cfa: x29 16 +
+STACK CFI 55404 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55408 20 .cfa: sp 0 + .ra: x30
+STACK CFI 5540c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55410 .cfa: x29 16 +
+STACK CFI 55424 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55428 20 .cfa: sp 0 + .ra: x30
+STACK CFI 5542c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55430 .cfa: x29 16 +
+STACK CFI 55444 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55448 20 .cfa: sp 0 + .ra: x30
+STACK CFI 5544c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55450 .cfa: x29 16 +
+STACK CFI 55464 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55468 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5546c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55470 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55474 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 38 x19: x19
+STACK CFI 3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55478 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5547c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55480 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55484 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 98 x23: x23
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI a4 x23: x23
+STACK CFI a8 x19: x19 x20: x20
+STACK CFI ac x21: x21 x22: x22
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55488 64 .cfa: sp 0 + .ra: x30
+STACK CFI 5548c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55490 .cfa: x29 48 +
+STACK CFI 55498 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 554e0 x19: x19 x20: x20
+STACK CFI 554e4 x21: x21
+STACK CFI 554e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 554ec 64 .cfa: sp 0 + .ra: x30
+STACK CFI 554f0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 554f4 .cfa: x29 48 +
+STACK CFI 554fc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 55544 x19: x19 x20: x20
+STACK CFI 55548 x21: x21
+STACK CFI 5554c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55550 64 .cfa: sp 0 + .ra: x30
+STACK CFI 55554 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55558 .cfa: x29 48 +
+STACK CFI 55560 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 555a8 x19: x19 x20: x20
+STACK CFI 555ac x21: x21
+STACK CFI 555b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 555b4 64 .cfa: sp 0 + .ra: x30
+STACK CFI 555b8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 555bc .cfa: x29 48 +
+STACK CFI 555c4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 5560c x19: x19 x20: x20
+STACK CFI 55610 x21: x21
+STACK CFI 55614 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55618 64 .cfa: sp 0 + .ra: x30
+STACK CFI 5561c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55620 .cfa: x29 48 +
+STACK CFI 55628 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 55670 x19: x19 x20: x20
+STACK CFI 55674 x21: x21
+STACK CFI 55678 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5567c 64 .cfa: sp 0 + .ra: x30
+STACK CFI 55680 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55684 .cfa: x29 48 +
+STACK CFI 5568c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 556d4 x19: x19 x20: x20
+STACK CFI 556d8 x21: x21
+STACK CFI 556dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 556e0 80 .cfa: sp 0 + .ra: x30
+STACK CFI 556e4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 556e8 .cfa: x29 64 +
+STACK CFI 556f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 55750 x19: x19 x20: x20
+STACK CFI 55754 x21: x21 x22: x22
+STACK CFI 55758 x23: x23
+STACK CFI 5575c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55760 80 .cfa: sp 0 + .ra: x30
+STACK CFI 55764 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 55768 .cfa: x29 64 +
+STACK CFI 55774 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 557d0 x19: x19 x20: x20
+STACK CFI 557d4 x21: x21 x22: x22
+STACK CFI 557d8 x23: x23
+STACK CFI 557dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 557e0 80 .cfa: sp 0 + .ra: x30
+STACK CFI 557e4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 557e8 .cfa: x29 64 +
+STACK CFI 557f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 55850 x19: x19 x20: x20
+STACK CFI 55854 x21: x21 x22: x22
+STACK CFI 55858 x23: x23
+STACK CFI 5585c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55860 80 .cfa: sp 0 + .ra: x30
+STACK CFI 55864 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 55868 .cfa: x29 64 +
+STACK CFI 55874 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 558d0 x19: x19 x20: x20
+STACK CFI 558d4 x21: x21 x22: x22
+STACK CFI 558d8 x23: x23
+STACK CFI 558dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 558e0 80 .cfa: sp 0 + .ra: x30
+STACK CFI 558e4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 558e8 .cfa: x29 64 +
+STACK CFI 558f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 55950 x19: x19 x20: x20
+STACK CFI 55954 x21: x21 x22: x22
+STACK CFI 55958 x23: x23
+STACK CFI 5595c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55960 6c .cfa: sp 0 + .ra: x30
+STACK CFI 55964 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55968 .cfa: x29 48 +
+STACK CFI 55970 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 559c0 x19: x19 x20: x20
+STACK CFI 559c4 x21: x21 x22: x22
+STACK CFI 559c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 559cc 88 .cfa: sp 0 + .ra: x30
+STACK CFI 559d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 559d4 .cfa: x29 64 +
+STACK CFI 559e0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 55a44 x19: x19 x20: x20
+STACK CFI 55a48 x21: x21 x22: x22
+STACK CFI 55a4c x23: x23 x24: x24
+STACK CFI 55a50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55a54 84 .cfa: sp 0 + .ra: x30
+STACK CFI 55a58 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55a5c .cfa: x29 48 +
+STACK CFI 55a64 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 55a8c x19: x19 x20: x20
+STACK CFI 55a90 x21: x21
+STACK CFI 55a98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 55aa0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 55acc x19: x19 x20: x20
+STACK CFI 55ad0 x21: x21
+STACK CFI 55ad4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55ad8 60 .cfa: sp 0 + .ra: x30
+STACK CFI 55adc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 55ae0 .cfa: x29 64 +
+STACK CFI 55ae4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 55aec x21: .cfa -32 + ^
+STACK CFI 55b2c x21: x21
+STACK CFI 55b30 x19: x19 x20: x20
+STACK CFI 55b34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55b38 30 .cfa: sp 0 + .ra: x30
+STACK CFI 55b3c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55b44 .cfa: x29 16 +
+STACK CFI 55b64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55b68 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55b6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 55b70 .cfa: x29 32 +
+STACK CFI 55b74 x19: .cfa -16 + ^
+STACK CFI 55b84 x19: x19
+STACK CFI 55b88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI a0 x23: x23
+STACK CFI a4 x19: x19 x20: x20
+STACK CFI a8 x21: x21 x22: x22
+STACK CFI ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 430ec 38 .cfa: sp 0 + .ra: x30
+STACK CFI 430f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 430fc .cfa: x29 32 +
+STACK CFI 43100 x19: .cfa -16 + ^
+STACK CFI 4311c x19: x19
+STACK CFI 43120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55b8c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 55b90 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55ba0 .cfa: x29 48 +
+STACK CFI 55be4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43124 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55be8 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 55bec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 55bf0 .cfa: x29 32 +
+STACK CFI 55bf4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 55c88 x19: x19 x20: x20
+STACK CFI 55c8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55c90 58 .cfa: sp 0 + .ra: x30
+STACK CFI 55c94 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55c98 .cfa: x29 48 +
+STACK CFI 55ca0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 55cdc x21: x21
+STACK CFI 55ce0 x19: x19 x20: x20
+STACK CFI 55ce4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55ce8 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55cf4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55cf8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55d04 .cfa: x29 16 +
+STACK CFI 55d14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55d18 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55d1c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55d28 .cfa: x29 16 +
+STACK CFI 55d38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55d3c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55d40 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55d4c .cfa: x29 16 +
+STACK CFI 55d5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 10 .cfa: x29 16 +
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55d60 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55d64 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55d70 .cfa: x29 16 +
+STACK CFI 55d80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 10 .cfa: x29 16 +
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55d84 24 .cfa: sp 0 + .ra: x30
+STACK CFI 55d88 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55d94 .cfa: x29 16 +
+STACK CFI 55da4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55da8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 55dac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 55db4 .cfa: x29 32 +
+STACK CFI 55dcc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55dd8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 55ddc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55de4 .cfa: x29 16 +
+STACK CFI 55e04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55e08 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55e1c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI c .cfa: x29 16 +
+STACK CFI 2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55e2c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 55e30 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55e38 .cfa: x29 16 +
+STACK CFI 55e58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 60 x19: x19 x20: x20
+STACK CFI 64 x21: x21 x22: x22
+STACK CFI 68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55e5c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 55e60 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55e64 .cfa: x29 16 +
+STACK CFI 55ea8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55eb4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 55eb8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55ebc .cfa: x29 16 +
+STACK CFI 55f00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55f0c 70 .cfa: sp 0 + .ra: x30
+STACK CFI 55f10 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 55f14 .cfa: x29 48 +
+STACK CFI 55f18 x21: .cfa -16 + ^
+STACK CFI 55f20 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 55f70 x19: x19 x20: x20
+STACK CFI 55f74 x21: x21
+STACK CFI 55f78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55f7c 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55f94 2c .cfa: sp 0 + .ra: x30
+STACK CFI 55f98 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 55f9c .cfa: x29 16 +
+STACK CFI 55fbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55fc0 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 55ff0 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56020 50 .cfa: sp 0 + .ra: x30
+STACK CFI 56024 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56028 .cfa: x29 32 +
+STACK CFI 5602c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 56068 x19: x19 x20: x20
+STACK CFI 5606c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56070 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56098 44 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 560dc 154 .cfa: sp 0 + .ra: x30
+STACK CFI 560e0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 560e8 .cfa: x29 32 +
+STACK CFI 560ec x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 56218 x19: x19 x20: x20
+STACK CFI 5621c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56224 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 56228 x19: x19 x20: x20
+STACK CFI 5622c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56230 134 .cfa: sp 0 + .ra: x30
+STACK CFI 56234 .cfa: sp 288 + .ra: .cfa -280 + ^ x29: .cfa -288 + ^
+STACK CFI 56238 .cfa: x29 288 +
+STACK CFI 5623c x21: .cfa -256 + ^
+STACK CFI 56248 x19: .cfa -272 + ^ x20: .cfa -264 + ^
+STACK CFI 56358 x19: x19 x20: x20
+STACK CFI 5635c x21: x21
+STACK CFI 56360 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56364 38 .cfa: sp 0 + .ra: x30
+STACK CFI 56368 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 56374 .cfa: x29 16 +
+STACK CFI 56390 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5639c 54 .cfa: sp 0 + .ra: x30
+STACK CFI 563a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 563a8 .cfa: x29 32 +
+STACK CFI 563ac x19: .cfa -16 + ^
+STACK CFI 563dc x19: x19
+STACK CFI 563e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 563f0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 563f4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 56400 .cfa: x29 16 +
+STACK CFI 5641c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56428 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 5642c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 56430 .cfa: x29 64 +
+STACK CFI 56438 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 564bc x21: x21
+STACK CFI 564c0 x19: x19 x20: x20
+STACK CFI 564cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 564d8 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x29: .cfa -64 + ^
+STACK CFI 564dc x19: x19 x20: x20
+STACK CFI 564e0 x21: x21
+STACK CFI 564e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 564e8 7c .cfa: sp 0 + .ra: x30
+STACK CFI 564ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 564f4 .cfa: x29 32 +
+STACK CFI 564f8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5655c x19: x19 x20: x20
+STACK CFI 56560 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56564 50 .cfa: sp 0 + .ra: x30
+STACK CFI 56568 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5656c .cfa: x29 32 +
+STACK CFI 56570 x19: .cfa -16 + ^
+STACK CFI 565ac x19: x19
+STACK CFI 565b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 565b4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 565b8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 565bc .cfa: x29 16 +
+STACK CFI 565d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 565d8 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56604 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56610 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56628 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56630 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56638 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56640 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56648 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56650 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5665c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56670 30 .cfa: sp 0 + .ra: x30
+STACK CFI 56674 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 56680 .cfa: x29 16 +
+STACK CFI 5669c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 566a0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 566a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 566a8 .cfa: x29 48 +
+STACK CFI 566ac x19: .cfa -32 + ^
+STACK CFI 56708 x19: x19
+STACK CFI 5670c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56710 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 56714 x19: x19
+STACK CFI 56718 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5671c 144 .cfa: sp 0 + .ra: x30
+STACK CFI 56720 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 56724 .cfa: x29 80 +
+STACK CFI 56730 x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 56744 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 56844 x19: x19 x20: x20
+STACK CFI 56848 x21: x21 x22: x22
+STACK CFI 56850 x23: x23 x24: x24
+STACK CFI 56854 x25: x25 x26: x26
+STACK CFI 56858 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 3c x19: x19 x20: x20
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56860 4c .cfa: sp 0 + .ra: x30
+STACK CFI 56864 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56868 .cfa: x29 32 +
+STACK CFI 5686c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 568a4 x19: x19 x20: x20
+STACK CFI 568a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 568ac 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 568b0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 568b8 5c .cfa: sp 0 + .ra: x30
+STACK CFI 568bc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 568c0 .cfa: x29 48 +
+STACK CFI 568c4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 568cc x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 56908 x19: x19 x20: x20
+STACK CFI 5690c x21: x21 x22: x22
+STACK CFI 56910 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56914 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 56918 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5691c .cfa: x29 48 +
+STACK CFI 56920 x19: .cfa -32 + ^
+STACK CFI 569c4 x19: x19
+STACK CFI 569c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8 .cfa: x29 16 +
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 569cc 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 569fc 3c .cfa: sp 0 + .ra: x30
+STACK CFI 56a00 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56a08 .cfa: x29 32 +
+STACK CFI 56a0c x19: .cfa -16 + ^
+STACK CFI 56a30 x19: x19
+STACK CFI 56a34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56a38 3c .cfa: sp 0 + .ra: x30
+STACK CFI 56a3c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56a44 .cfa: x29 32 +
+STACK CFI 56a48 x19: .cfa -16 + ^
+STACK CFI 56a6c x19: x19
+STACK CFI 56a70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56a74 40 .cfa: sp 0 + .ra: x30
+STACK CFI 56a78 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56a80 .cfa: x29 32 +
+STACK CFI 56a84 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 56aac x19: x19 x20: x20
+STACK CFI 56ab0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56ab4 5c .cfa: sp 0 + .ra: x30
+STACK CFI 56ab8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 56abc .cfa: x29 64 +
+STACK CFI 56ac4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 56b04 x21: x21
+STACK CFI 56b08 x19: x19 x20: x20
+STACK CFI 56b0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56b10 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56b20 3c .cfa: sp 0 + .ra: x30
+STACK CFI 56b24 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56b28 .cfa: x29 32 +
+STACK CFI 56b2c x19: .cfa -16 + ^
+STACK CFI 56b44 x19: x19
+STACK CFI 56b48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56b4c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 56b54 x19: x19
+STACK CFI 56b58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56b5c 20 .cfa: sp 0 + .ra: x30
+STACK CFI 56b60 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 56b64 .cfa: x29 16 +
+STACK CFI 56b78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56b7c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56b8c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56b94 50 .cfa: sp 0 + .ra: x30
+STACK CFI 56b98 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56b9c .cfa: x29 32 +
+STACK CFI 56ba0 x19: .cfa -16 + ^
+STACK CFI 56bdc x19: x19
+STACK CFI 56be0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56be4 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56c00 58 .cfa: sp 0 + .ra: x30
+STACK CFI 56c04 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56c08 .cfa: x29 48 +
+STACK CFI 56c0c x19: .cfa -32 + ^
+STACK CFI 56c50 x19: x19
+STACK CFI 56c54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56c58 5c .cfa: sp 0 + .ra: x30
+STACK CFI 56c5c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 56c60 .cfa: x29 64 +
+STACK CFI 56c68 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 56ca8 x21: x21
+STACK CFI 56cac x19: x19 x20: x20
+STACK CFI 56cb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56cb4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56cc4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56cd4 28 .cfa: sp 0 + .ra: x30
+STACK CFI 56cd8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 56cdc .cfa: x29 16 +
+STACK CFI 56cf8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56cfc 104 .cfa: sp 0 + .ra: x30
+STACK CFI 56d00 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 56d04 .cfa: x29 80 +
+STACK CFI 56d0c x21: .cfa -48 + ^ x22: .cfa -40 + ^ x25: .cfa -16 + ^
+STACK CFI 56d18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 56dec x19: x19 x20: x20
+STACK CFI 56df0 x21: x21 x22: x22
+STACK CFI 56df4 x23: x23 x24: x24
+STACK CFI 56df8 x25: x25
+STACK CFI 56dfc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8 .cfa: x29 16 +
+STACK CFI 24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56e00 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56e10 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56e20 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56e30 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56e34 3c .cfa: sp 0 + .ra: x30
+STACK CFI 56e38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56e3c .cfa: x29 32 +
+STACK CFI 56e40 x19: .cfa -16 + ^
+STACK CFI 56e5c x19: x19
+STACK CFI 56e60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56e64 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 56e68 x19: x19
+STACK CFI 56e6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 28 x19: x19
+STACK CFI 2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56e70 30 .cfa: sp 0 + .ra: x30
+STACK CFI 56e74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56e78 .cfa: x29 32 +
+STACK CFI 56e7c x19: .cfa -16 + ^
+STACK CFI 56e98 x19: x19
+STACK CFI 56e9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56ea0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56eb0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 56eb4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 56eb8 .cfa: x29 32 +
+STACK CFI 56ebc x19: .cfa -16 + ^
+STACK CFI 56ecc x19: x19
+STACK CFI 56ed0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56ed4 68 .cfa: sp 0 + .ra: x30
+STACK CFI 56ed8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56edc .cfa: x29 48 +
+STACK CFI 56ee4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 56f1c x21: x21
+STACK CFI 56f20 x19: x19 x20: x20
+STACK CFI 56f24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56f2c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 56f30 x19: x19 x20: x20
+STACK CFI 56f34 x21: x21
+STACK CFI 56f38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56f3c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 56f40 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56f44 .cfa: x29 48 +
+STACK CFI 56f4c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 56f88 x19: x19 x20: x20
+STACK CFI 56f8c x21: x21
+STACK CFI 56f90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 24 x19: x19
+STACK CFI 28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 30 x19: x19
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI c .cfa: x29 96 +
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 x19: x19 x20: x20
+STACK CFI f4 x23: x23 x24: x24
+STACK CFI f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 1c x21: .cfa -16 + ^
+STACK CFI 94 x21: x21
+STACK CFI b0 x19: x19 x20: x20
+STACK CFI b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 90 x21: x21
+STACK CFI a8 x19: x19 x20: x20
+STACK CFI ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56f94 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56fb0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 56fb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56fb8 .cfa: x29 48 +
+STACK CFI 56fbc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 56fc4 x21: .cfa -16 + ^
+STACK CFI 56ff4 x21: x21
+STACK CFI 56ff8 x19: x19 x20: x20
+STACK CFI 56ffc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57000 24 .cfa: sp 0 + .ra: x30
+STACK CFI 57004 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 57008 .cfa: x29 32 +
+STACK CFI 5700c x19: .cfa -16 + ^
+STACK CFI 5701c x19: x19
+STACK CFI 57020 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57024 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 57040 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5705c f0 .cfa: sp 0 + .ra: x30
+STACK CFI 57060 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 57064 .cfa: x29 80 +
+STACK CFI 57070 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 5713c x19: x19 x20: x20
+STACK CFI 57140 x21: x21 x22: x22
+STACK CFI 57144 x23: x23
+STACK CFI 57148 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5714c 60 .cfa: sp 0 + .ra: x30
+STACK CFI 57150 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 57158 .cfa: x29 16 +
+STACK CFI 571a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 571a4 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 571a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 10 .cfa: x29 64 +
+STACK CFI 1c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI b4 x23: x23
+STACK CFI b8 x19: x19 x20: x20
+STACK CFI bc x21: x21 x22: x22
+STACK CFI c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 571ac f0 .cfa: sp 0 + .ra: x30
+STACK CFI 571b0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 571b4 .cfa: x29 80 +
+STACK CFI 571c0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 5728c x19: x19 x20: x20
+STACK CFI 57290 x21: x21 x22: x22
+STACK CFI 57294 x23: x23
+STACK CFI 57298 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b28 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 285f0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 285f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 285f8 .cfa: x29 32 +
+STACK CFI 285fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 28648 x19: x19 x20: x20
+STACK CFI 2864c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI c .cfa: x29 48 +
+STACK CFI 14 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b8 x19: x19 x20: x20
+STACK CFI bc x21: x21
+STACK CFI c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 144 x23: x23
+STACK CFI 148 x19: x19 x20: x20
+STACK CFI 14c x21: x21 x22: x22
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 18 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5729c 38 .cfa: sp 0 + .ra: x30
+STACK CFI 572a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 572ac .cfa: x29 32 +
+STACK CFI 572b0 x19: .cfa -16 + ^
+STACK CFI 572cc x19: x19
+STACK CFI 572d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 572d4 50 .cfa: sp 0 + .ra: x30
+STACK CFI 572d8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 572dc .cfa: x29 48 +
+STACK CFI 572e4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 57318 x19: x19 x20: x20
+STACK CFI 5731c x21: x21 x22: x22
+STACK CFI 57320 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 57324 68 .cfa: sp 0 + .ra: x30
+STACK CFI 57328 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5732c .cfa: x29 48 +
+STACK CFI 57330 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 5733c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 57380 x21: x21 x22: x22
+STACK CFI 57384 x19: x19 x20: x20
+STACK CFI 57388 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5738c 44 .cfa: sp 0 + .ra: x30
+STACK CFI 57390 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 57394 .cfa: x29 32 +
+STACK CFI 57398 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 573c8 x19: x19 x20: x20
+STACK CFI 573cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 573d0 194 .cfa: sp 0 + .ra: x30
+STACK CFI 573d4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 573dc .cfa: x29 80 +
+STACK CFI 573ec x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 57538 x21: x21 x22: x22
+STACK CFI 5753c x19: x19 x20: x20
+STACK CFI 57540 x23: x23 x24: x24
+STACK CFI 57544 x25: x25 x26: x26
+STACK CFI 57548 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 5754c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^ x29: .cfa -80 + ^
+STACK CFI 57550 x19: x19 x20: x20
+STACK CFI 57554 x21: x21 x22: x22
+STACK CFI 57558 x23: x23 x24: x24
+STACK CFI 5755c x25: x25 x26: x26
+STACK CFI 57560 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25fd8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 25fdc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25fe0 .cfa: x29 48 +
+STACK CFI 25fe4 x19: .cfa -32 + ^
+STACK CFI 26004 x19: x19
+STACK CFI 26008 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57564 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 57574 12c .cfa: sp 0 + .ra: x30
+STACK CFI 57578 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5757c .cfa: x29 48 +
+STACK CFI 57580 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 5758c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 57694 x19: x19 x20: x20
+STACK CFI 57698 x21: x21 x22: x22
+STACK CFI 5769c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 576a0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 576a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 576a8 .cfa: x29 48 +
+STACK CFI 576ac x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 576e4 x19: x19 x20: x20
+STACK CFI 576e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 576ec 68 .cfa: sp 0 + .ra: x30
+STACK CFI 576f0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 576f4 .cfa: x29 80 +
+STACK CFI 576f8 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 5774c x19: x19 x20: x20
+STACK CFI 57750 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57754 30 .cfa: sp 0 + .ra: x30
+STACK CFI 57758 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 57764 .cfa: x29 48 +
+STACK CFI 5777c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57784 70 .cfa: sp 0 + .ra: x30
+STACK CFI 57788 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 57790 .cfa: x29 48 +
+STACK CFI 57794 x19: .cfa -32 + ^
+STACK CFI 577ec x19: x19
+STACK CFI 577f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 577f4 30 .cfa: sp 0 + .ra: x30
+STACK CFI 577f8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 57804 .cfa: x29 48 +
+STACK CFI 5781c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57824 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 57828 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 57830 .cfa: x29 96 +
+STACK CFI 57834 x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 57844 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 57850 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x25: .cfa -32 + ^
+STACK CFI 578e8 x25: x25
+STACK CFI 578f8 x21: x21 x22: x22
+STACK CFI 578fc x19: x19 x20: x20
+STACK CFI 57900 x23: x23 x24: x24
+STACK CFI 57904 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 57908 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5790c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 57910 .cfa: x29 32 +
+STACK CFI 57914 x19: .cfa -16 + ^
+STACK CFI 57924 x19: x19
+STACK CFI 57928 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5792c 7c .cfa: sp 0 + .ra: x30
+STACK CFI 57930 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 57938 .cfa: x29 144 +
+STACK CFI 5793c x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 57954 x21: .cfa -112 + ^
+STACK CFI 5799c x21: x21
+STACK CFI 579a0 x19: x19 x20: x20
+STACK CFI 579a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 579a8 4c .cfa: sp 0 + .ra: x30
+STACK CFI 579ac .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 579b0 .cfa: x29 48 +
+STACK CFI 579b4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 579ec x19: x19 x20: x20
+STACK CFI 579f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 579f4 60 .cfa: sp 0 + .ra: x30
+STACK CFI 579f8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 57a00 .cfa: x29 64 +
+STACK CFI 57a04 x21: .cfa -32 + ^
+STACK CFI 57a10 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 57a48 x19: x19 x20: x20
+STACK CFI 57a4c x21: x21
+STACK CFI 57a50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57a54 54 .cfa: sp 0 + .ra: x30
+STACK CFI 57a58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 57a60 .cfa: x29 16 +
+STACK CFI 57aa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57aa8 78 .cfa: sp 0 + .ra: x30
+STACK CFI 57aac .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 57ab4 .cfa: x29 48 +
+STACK CFI 57ab8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 57b18 x19: x19 x20: x20
+STACK CFI 57b1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e18 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24e1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24e24 .cfa: x29 32 +
+STACK CFI 24e28 x19: .cfa -16 + ^
+STACK CFI 24e44 x19: x19
+STACK CFI 24e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57b20 9c .cfa: sp 0 + .ra: x30
+STACK CFI 57b24 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 57b28 .cfa: x29 64 +
+STACK CFI 57b30 x21: .cfa -32 + ^
+STACK CFI 57b3c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 57bb0 x21: x21
+STACK CFI 57bb4 x19: x19 x20: x20
+STACK CFI 57bb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57bbc ac .cfa: sp 0 + .ra: x30
+STACK CFI 57bc0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 57bc8 .cfa: x29 128 +
+STACK CFI 57bcc x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 57bdc x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 57c58 x19: x19 x20: x20
+STACK CFI 57c5c x21: x21 x22: x22
+STACK CFI 57c60 x23: x23 x24: x24
+STACK CFI 57c64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57c68 28 .cfa: sp 0 + .ra: x30
+STACK CFI 57c6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 57c70 .cfa: x29 32 +
+STACK CFI 57c74 x19: .cfa -16 + ^
+STACK CFI 57c88 x19: x19
+STACK CFI 57c8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 9c x23: x23
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 x21: x21 x22: x22
+STACK CFI a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 18 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI d0 x19: x19 x20: x20
+STACK CFI d4 x21: x21 x22: x22
+STACK CFI d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57c90 58 .cfa: sp 0 + .ra: x30
+STACK CFI 57c94 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 57c98 .cfa: x29 64 +
+STACK CFI 57c9c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 57ce0 x19: x19 x20: x20
+STACK CFI 57ce4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI a8 x21: x21
+STACK CFI ac x19: x19 x20: x20
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57ce8 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 57cec .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 57cf4 .cfa: x29 112 +
+STACK CFI 57d08 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI 57e74 x23: x23 x24: x24
+STACK CFI 57e78 x19: x19 x20: x20
+STACK CFI 57e7c x21: x21 x22: x22
+STACK CFI 57e80 x25: x25 x26: x26
+STACK CFI 57e84 x27: x27
+STACK CFI 57e88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57e8c 120 .cfa: sp 0 + .ra: x30
+STACK CFI 57e90 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 57e94 .cfa: x29 112 +
+STACK CFI 57e9c x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 57eb0 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 57eec x19: x19 x20: x20
+STACK CFI 57ef0 x21: x21 x22: x22
+STACK CFI 57ef4 x23: x23 x24: x24
+STACK CFI 57ef8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 57efc .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 0 80 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 70 x21: x21
+STACK CFI 78 x19: x19 x20: x20
+STACK CFI 7c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54474 1c .cfa: sp 0 + .ra: x30
+STACK CFI 54478 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5447c .cfa: x29 16 +
+STACK CFI 5448c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 251c4 2c .cfa: sp 0 + .ra: x30
+STACK CFI 251c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 251cc .cfa: x29 32 +
+STACK CFI 251d0 x19: .cfa -16 + ^
+STACK CFI 251e8 x19: x19
+STACK CFI 251ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 78 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7c x19: x19
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 78 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7c x19: x19
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI bc x19: x19 x20: x20
+STACK CFI c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI c4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI ac x19: x19 x20: x20
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI b4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI b8 x19: x19 x20: x20
+STACK CFI bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI c .cfa: x29 336 +
+STACK CFI 10 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 18 x21: .cfa -304 + ^
+STACK CFI 4c x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI b0 x21: x21
+STACK CFI b8 x19: x19 x20: x20
+STACK CFI bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57fac cc .cfa: sp 0 + .ra: x30
+STACK CFI 57fb0 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 57fb8 .cfa: x29 368 +
+STACK CFI 57fbc x19: .cfa -352 + ^ x20: .cfa -344 + ^
+STACK CFI 57fc4 x21: .cfa -336 + ^
+STACK CFI 58068 x21: x21
+STACK CFI 58070 x19: x19 x20: x20
+STACK CFI 58074 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58078 138 .cfa: sp 0 + .ra: x30
+STACK CFI 5807c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 58080 .cfa: x29 64 +
+STACK CFI 58088 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5819c x21: x21 x22: x22
+STACK CFI 581a8 x19: x19 x20: x20
+STACK CFI 581ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 581b0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 581b4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 581b8 .cfa: x29 32 +
+STACK CFI 581bc x19: .cfa -16 + ^
+STACK CFI 581e0 x19: x19
+STACK CFI 581e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 581e8 8c .cfa: sp 0 + .ra: x30
+STACK CFI 581ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 581f0 .cfa: x29 64 +
+STACK CFI 581f8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 58260 x21: x21
+STACK CFI 5826c x19: x19 x20: x20
+STACK CFI 58270 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58274 44 .cfa: sp 0 + .ra: x30
+STACK CFI 58278 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58280 .cfa: x29 32 +
+STACK CFI 58284 x19: .cfa -16 + ^
+STACK CFI 582b0 x19: x19
+STACK CFI 582b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 582b8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 582bc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 582c0 .cfa: x29 32 +
+STACK CFI 582c4 x19: .cfa -16 + ^
+STACK CFI 582d4 x19: x19
+STACK CFI 582d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 582dc 68 .cfa: sp 0 + .ra: x30
+STACK CFI 582e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 582e4 .cfa: x29 64 +
+STACK CFI 582e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 582f0 x21: .cfa -32 + ^
+STACK CFI 58334 x21: x21
+STACK CFI 5833c x19: x19 x20: x20
+STACK CFI 58340 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 400 + .ra: .cfa -392 + ^ x29: .cfa -400 + ^
+STACK CFI c .cfa: x29 400 +
+STACK CFI 10 x19: .cfa -384 + ^ x20: .cfa -376 + ^
+STACK CFI 20 x21: .cfa -368 + ^ x22: .cfa -360 + ^
+STACK CFI 88 x19: x19 x20: x20
+STACK CFI 8c x21: x21 x22: x22
+STACK CFI 90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58344 8c .cfa: sp 0 + .ra: x30
+STACK CFI 58348 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5834c .cfa: x29 64 +
+STACK CFI 58354 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 583c4 x19: x19 x20: x20
+STACK CFI 583c8 x21: x21
+STACK CFI 583cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 583d0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 583d4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 583d8 .cfa: x29 64 +
+STACK CFI 583dc x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 5841c x19: x19 x20: x20
+STACK CFI 58420 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26240 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26248 .cfa: x29 64 +
+STACK CFI 2624c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 2628c x19: x19 x20: x20
+STACK CFI 26290 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 262e8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 262ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 262f0 .cfa: x29 64 +
+STACK CFI 262f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 26334 x19: x19 x20: x20
+STACK CFI 26338 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58424 54 .cfa: sp 0 + .ra: x30
+STACK CFI 58428 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5842c .cfa: x29 64 +
+STACK CFI 58430 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 58470 x19: x19 x20: x20
+STACK CFI 58474 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26188 54 .cfa: sp 0 + .ra: x30
+STACK CFI 2618c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 26190 .cfa: x29 64 +
+STACK CFI 26194 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 261d4 x19: x19 x20: x20
+STACK CFI 261d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58478 10c .cfa: sp 0 + .ra: x30
+STACK CFI 5847c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 58480 .cfa: x29 112 +
+STACK CFI 58488 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 58578 x19: x19 x20: x20
+STACK CFI 5857c x21: x21 x22: x22
+STACK CFI 58580 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 8 .cfa: x29 112 +
+STACK CFI 10 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 178 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 28 x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c x23: x23 x24: x24
+STACK CFI 170 x25: x25 x26: x26
+STACK CFI 174 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 10 .cfa: x29 48 +
+STACK CFI 1c x19: .cfa -32 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 10 .cfa: x29 48 +
+STACK CFI 1c x19: .cfa -32 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 188 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI c x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 14 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 17c x19: x19 x20: x20
+STACK CFI 180 x21: x21 x22: x22
+STACK CFI 184 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58584 118 .cfa: sp 0 + .ra: x30
+STACK CFI 58588 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5858c .cfa: x29 96 +
+STACK CFI 58594 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 5859c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 58688 x23: x23
+STACK CFI 58690 x19: x19 x20: x20
+STACK CFI 58694 x21: x21 x22: x22
+STACK CFI 58698 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI d0 x21: x21
+STACK CFI d8 x19: x19 x20: x20
+STACK CFI dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5869c 98 .cfa: sp 0 + .ra: x30
+STACK CFI 586a0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 586a4 .cfa: x29 64 +
+STACK CFI 586ac x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 58720 x21: x21 x22: x22
+STACK CFI 5872c x19: x19 x20: x20
+STACK CFI 58730 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58734 8c .cfa: sp 0 + .ra: x30
+STACK CFI 58738 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5873c .cfa: x29 64 +
+STACK CFI 58744 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 587b4 x19: x19 x20: x20
+STACK CFI 587b8 x21: x21
+STACK CFI 587bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 587c0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 587c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 587c8 .cfa: x29 48 +
+STACK CFI 587cc x19: .cfa -32 + ^
+STACK CFI 587f0 x19: x19
+STACK CFI 587f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 587f8 2c .cfa: sp 0 + .ra: x30
+STACK CFI 587fc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58800 .cfa: x29 32 +
+STACK CFI 58820 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58824 90 .cfa: sp 0 + .ra: x30
+STACK CFI 58828 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 58830 .cfa: x29 64 +
+STACK CFI 58838 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 588a8 x19: x19 x20: x20
+STACK CFI 588ac x21: x21 x22: x22
+STACK CFI 588b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 588b4 40 .cfa: sp 0 + .ra: x30
+STACK CFI 588b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 588bc .cfa: x29 32 +
+STACK CFI 588c0 x19: .cfa -16 + ^
+STACK CFI 588ec x19: x19
+STACK CFI 588f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 588f4 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 588f8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 588fc .cfa: x29 96 +
+STACK CFI 58904 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 58910 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 589a4 x19: x19 x20: x20
+STACK CFI 589a8 x21: x21 x22: x22
+STACK CFI 589ac x23: x23 x24: x24
+STACK CFI 589b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 589b4 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 589b8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 589bc .cfa: x29 80 +
+STACK CFI 589c0 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 589d0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 58a4c x19: x19 x20: x20
+STACK CFI 58a50 x21: x21 x22: x22
+STACK CFI 58a54 x23: x23 x24: x24
+STACK CFI 58a58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58a5c 54 .cfa: sp 0 + .ra: x30
+STACK CFI 58a60 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 58a64 .cfa: x29 48 +
+STACK CFI 58a6c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 58aa4 x19: x19 x20: x20
+STACK CFI 58aa8 x21: x21
+STACK CFI 58aac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58ab0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 58ab4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 58ab8 .cfa: x29 64 +
+STACK CFI 58ac0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 58b28 x19: x19 x20: x20
+STACK CFI 58b2c x21: x21
+STACK CFI 58b30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58b34 40 .cfa: sp 0 + .ra: x30
+STACK CFI 58b38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58b3c .cfa: x29 32 +
+STACK CFI 58b40 x19: .cfa -16 + ^
+STACK CFI 58b6c x19: x19
+STACK CFI 58b70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58b74 24 .cfa: sp 0 + .ra: x30
+STACK CFI 58b78 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58b7c .cfa: x29 32 +
+STACK CFI 58b80 x19: .cfa -16 + ^
+STACK CFI 58b90 x19: x19
+STACK CFI 58b94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58b98 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 58ba8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 58bac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58bb0 .cfa: x29 32 +
+STACK CFI 58bb4 x19: .cfa -16 + ^
+STACK CFI 58bc4 x19: x19
+STACK CFI 58bc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58bcc 9c .cfa: sp 0 + .ra: x30
+STACK CFI 58bd0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 58bd4 .cfa: x29 48 +
+STACK CFI 58bdc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 58c5c x21: x21
+STACK CFI 58c60 x19: x19 x20: x20
+STACK CFI 58c64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58c68 74 .cfa: sp 0 + .ra: x30
+STACK CFI 58c6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58c70 .cfa: x29 32 +
+STACK CFI 58c74 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 58cd4 x19: x19 x20: x20
+STACK CFI 58cd8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58cdc 34 .cfa: sp 0 + .ra: x30
+STACK CFI 58ce0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58ce4 .cfa: x29 32 +
+STACK CFI 58ce8 x19: .cfa -16 + ^
+STACK CFI 58cfc x19: x19
+STACK CFI 58d00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 58d04 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 58d08 x19: x19
+STACK CFI 58d0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58d10 8c .cfa: sp 0 + .ra: x30
+STACK CFI 58d14 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 58d18 .cfa: x29 48 +
+STACK CFI 58d1c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 58d24 x21: .cfa -16 + ^
+STACK CFI 58d90 x21: x21
+STACK CFI 58d94 x19: x19 x20: x20
+STACK CFI 58d98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58d9c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 58da0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 58da4 .cfa: x29 32 +
+STACK CFI 58da8 x19: .cfa -16 + ^
+STACK CFI 58db8 x19: x19
+STACK CFI 58dbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58dc0 1d0 .cfa: sp 0 + .ra: x30
+STACK CFI 58dc4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 58dc8 .cfa: x29 96 +
+STACK CFI 58dd8 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 58f7c x19: x19 x20: x20
+STACK CFI 58f80 x21: x21 x22: x22
+STACK CFI 58f84 x23: x23 x24: x24
+STACK CFI 58f88 x25: x25
+STACK CFI 58f8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 58f90 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 58f94 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 58f9c .cfa: x29 48 +
+STACK CFI 58fa4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 59034 x19: x19 x20: x20
+STACK CFI 59038 x21: x21 x22: x22
+STACK CFI 5903c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 59040 9c .cfa: sp 0 + .ra: x30
+STACK CFI 59044 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 5904c .cfa: x29 368 +
+STACK CFI 59050 x19: .cfa -352 + ^ x20: .cfa -344 + ^
+STACK CFI 59058 x21: .cfa -336 + ^
+STACK CFI 590cc x21: x21
+STACK CFI 590d4 x19: x19 x20: x20
+STACK CFI 590d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 590dc 90 .cfa: sp 0 + .ra: x30
+STACK CFI 590e0 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 590e8 .cfa: x29 336 +
+STACK CFI 590ec x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 590f4 x21: .cfa -304 + ^
+STACK CFI 5915c x21: x21
+STACK CFI 59164 x19: x19 x20: x20
+STACK CFI 59168 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 14 x21: .cfa -32 + ^
+STACK CFI 4c x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5916c 1a0 .cfa: sp 0 + .ra: x30
+STACK CFI 59170 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 59174 .cfa: x29 96 +
+STACK CFI 59184 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 592f8 x19: x19 x20: x20
+STACK CFI 592fc x21: x21 x22: x22
+STACK CFI 59300 x23: x23 x24: x24
+STACK CFI 59304 x25: x25 x26: x26
+STACK CFI 59308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5930c 50 .cfa: sp 0 + .ra: x30
+STACK CFI 59310 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 59314 .cfa: x29 48 +
+STACK CFI 59318 x19: .cfa -32 + ^
+STACK CFI 59354 x19: x19
+STACK CFI 59358 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5935c c8 .cfa: sp 0 + .ra: x30
+STACK CFI 59360 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 59364 .cfa: x29 96 +
+STACK CFI 59370 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI 59414 x21: x21
+STACK CFI 5941c x19: x19 x20: x20
+STACK CFI 59420 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 50 x19: x19 x20: x20
+STACK CFI 54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1f0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI 20 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^
+STACK CFI 1dc x25: x25
+STACK CFI 1e0 x19: x19 x20: x20
+STACK CFI 1e4 x21: x21 x22: x22
+STACK CFI 1e8 x23: x23 x24: x24
+STACK CFI 1ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59428 64 .cfa: sp 0 + .ra: x30
+STACK CFI 5942c .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI 59434 .cfa: x29 336 +
+STACK CFI 59438 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 59448 x21: .cfa -304 + ^
+STACK CFI 59480 x21: x21
+STACK CFI 59484 x19: x19 x20: x20
+STACK CFI 59488 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59498 f8 .cfa: sp 0 + .ra: x30
+STACK CFI 5949c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 594a0 .cfa: x29 96 +
+STACK CFI 594ac x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 594d0 x25: .cfa -32 + ^
+STACK CFI 5957c x25: x25
+STACK CFI 59580 x19: x19 x20: x20
+STACK CFI 59584 x21: x21 x22: x22
+STACK CFI 59588 x23: x23 x24: x24
+STACK CFI 5958c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5457c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 54580 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5458c .cfa: x29 16 +
+STACK CFI 545c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 545c4 11c .cfa: sp 0 + .ra: x30
+STACK CFI 545c8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 545cc .cfa: x29 64 +
+STACK CFI 545d4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 546d4 x21: x21
+STACK CFI 546d8 x19: x19 x20: x20
+STACK CFI 546dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 14 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 20 x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 x23: x23 x24: x24
+STACK CFI 12c x25: x25 x26: x26
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59590 108 .cfa: sp 0 + .ra: x30
+STACK CFI 59594 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 59598 .cfa: x29 64 +
+STACK CFI 595a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5968c x19: x19 x20: x20
+STACK CFI 59690 x21: x21 x22: x22
+STACK CFI 59694 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59698 1d4 .cfa: sp 0 + .ra: x30
+STACK CFI 5969c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 596a0 .cfa: x29 112 +
+STACK CFI 596a8 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 59860 x19: x19 x20: x20
+STACK CFI 59864 x21: x21 x22: x22
+STACK CFI 59868 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5986c 7c .cfa: sp 0 + .ra: x30
+STACK CFI 59870 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 59874 .cfa: x29 128 +
+STACK CFI 59878 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 59884 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 598dc x19: x19 x20: x20
+STACK CFI 598e0 x21: x21 x22: x22
+STACK CFI 598e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI c .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 44 x19: x19 x20: x20
+STACK CFI 48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 26294 54 .cfa: sp 0 + .ra: x30
+STACK CFI 26298 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 2629c .cfa: x29 64 +
+STACK CFI 262a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 262e0 x19: x19 x20: x20
+STACK CFI 262e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 8 .cfa: x29 208 +
+STACK CFI 24 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI 108 x23: x23
+STACK CFI 10c x19: x19 x20: x20
+STACK CFI 110 x21: x21 x22: x22
+STACK CFI 114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 224 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 736 +
+STACK CFI c .cfa: sp 816 + .ra: .cfa -808 + ^ x29: .cfa -816 + ^
+STACK CFI 10 .cfa: x29 816 +
+STACK CFI 18 x23: .cfa -768 + ^ x24: .cfa -760 + ^ x25: .cfa -752 + ^ x26: .cfa -744 + ^
+STACK CFI 28 x19: .cfa -800 + ^ x20: .cfa -792 + ^ x21: .cfa -784 + ^ x22: .cfa -776 + ^
+STACK CFI 20c x19: x19 x20: x20
+STACK CFI 210 x21: x21 x22: x22
+STACK CFI 214 x23: x23 x24: x24
+STACK CFI 218 x25: x25 x26: x26
+STACK CFI 21c .cfa: sp 736 + .ra: .ra x29: x29
+STACK CFI 220 .cfa: sp 656 +
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 220 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 736 +
+STACK CFI c .cfa: sp 816 + .ra: .cfa -808 + ^ x29: .cfa -816 + ^
+STACK CFI 10 .cfa: x29 816 +
+STACK CFI 18 x23: .cfa -768 + ^ x24: .cfa -760 + ^ x25: .cfa -752 + ^ x26: .cfa -744 + ^
+STACK CFI 28 x19: .cfa -800 + ^ x20: .cfa -792 + ^ x21: .cfa -784 + ^ x22: .cfa -776 + ^
+STACK CFI 208 x19: x19 x20: x20
+STACK CFI 20c x21: x21 x22: x22
+STACK CFI 210 x23: x23 x24: x24
+STACK CFI 214 x25: x25 x26: x26
+STACK CFI 218 .cfa: sp 736 + .ra: .ra x29: x29
+STACK CFI 21c .cfa: sp 656 +
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 264 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 8 .cfa: x29 144 +
+STACK CFI 18 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^
+STACK CFI 250 x25: x25
+STACK CFI 254 x19: x19 x20: x20
+STACK CFI 258 x21: x21 x22: x22
+STACK CFI 25c x23: x23 x24: x24
+STACK CFI 260 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 14 .cfa: x29 32 +
+STACK CFI 2c x19: .cfa -16 + ^
+STACK CFI 3c x19: x19
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 14 .cfa: x29 32 +
+STACK CFI 2c x19: .cfa -16 + ^
+STACK CFI 3c x19: x19
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI c .cfa: x29 160 +
+STACK CFI 1c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^
+STACK CFI 2b0 x19: x19 x20: x20
+STACK CFI 2b4 x21: x21 x22: x22
+STACK CFI 2b8 x23: x23 x24: x24
+STACK CFI 2bc x25: x25 x26: x26
+STACK CFI 2c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 598e8 104 .cfa: sp 0 + .ra: x30
+STACK CFI 598ec .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 598f0 .cfa: x29 160 +
+STACK CFI 598f8 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 599e0 x19: x19 x20: x20
+STACK CFI 599e4 x21: x21 x22: x22
+STACK CFI 599e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 599ec 1c8 .cfa: sp 0 + .ra: x30
+STACK CFI 599f0 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 599f4 .cfa: x29 160 +
+STACK CFI 59a00 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^
+STACK CFI 59a18 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x27: .cfa -80 + ^ x28: .cfa -72 + ^
+STACK CFI 59b9c x19: x19 x20: x20
+STACK CFI 59ba0 x21: x21 x22: x22
+STACK CFI 59ba4 x23: x23 x24: x24
+STACK CFI 59ba8 x25: x25 x26: x26
+STACK CFI 59bac x27: x27 x28: x28
+STACK CFI 59bb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59bb4 154 .cfa: sp 0 + .ra: x30
+STACK CFI 59bb8 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 59bbc .cfa: x29 224 +
+STACK CFI 59bc8 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^
+STACK CFI 59bf4 x27: .cfa -144 + ^ x28: .cfa -136 + ^
+STACK CFI 59c00 x21: .cfa -192 + ^ x22: .cfa -184 + ^
+STACK CFI 59cf0 x19: x19 x20: x20
+STACK CFI 59cf4 x21: x21 x22: x22
+STACK CFI 59cf8 x23: x23 x24: x24
+STACK CFI 59cfc x25: x25 x26: x26
+STACK CFI 59d00 x27: x27 x28: x28
+STACK CFI 59d04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59d08 64 .cfa: sp 0 + .ra: x30
+STACK CFI 59d0c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 59d10 .cfa: x29 96 +
+STACK CFI 59d14 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 59d20 x21: .cfa -64 + ^
+STACK CFI 59d60 x21: x21
+STACK CFI 59d64 x19: x19 x20: x20
+STACK CFI 59d68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 59d6c 380 .cfa: sp 0 + .ra: x30
+STACK CFI 59d70 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 59d74 .cfa: x29 128 +
+STACK CFI 59d78 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 59d88 x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 5a0dc x19: x19 x20: x20
+STACK CFI 5a0e0 x21: x21 x22: x22
+STACK CFI 5a0e4 x23: x23
+STACK CFI 5a0e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a0ec 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5a100 134 .cfa: sp 0 + .ra: x30
+STACK CFI 5a104 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5a10c .cfa: x29 64 +
+STACK CFI 5a118 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5a228 x19: x19 x20: x20
+STACK CFI 5a22c x21: x21 x22: x22
+STACK CFI 5a230 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a234 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 5a238 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5a23c .cfa: x29 64 +
+STACK CFI 5a244 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5a2f0 x19: x19 x20: x20
+STACK CFI 5a2f4 x21: x21 x22: x22
+STACK CFI 5a2f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a2fc 1c .cfa: sp 0 + .ra: x30
+STACK CFI 5a300 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5a308 .cfa: x29 16 +
+STACK CFI 5a314 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a318 2a4 .cfa: sp 0 + .ra: x30
+STACK CFI 5a31c .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 5a320 .cfa: x29 368 +
+STACK CFI 5a324 v8: .cfa -272 + ^ v9: .cfa -264 + ^
+STACK CFI 5a32c x21: .cfa -336 + ^ x22: .cfa -328 + ^
+STACK CFI 5a338 x23: .cfa -320 + ^ x24: .cfa -312 + ^
+STACK CFI 5a348 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^
+STACK CFI 5a354 x27: .cfa -288 + ^ x28: .cfa -280 + ^
+STACK CFI 5a578 v8: v8 v9: v9
+STACK CFI 5a57c x19: x19 x20: x20
+STACK CFI 5a580 x21: x21 x22: x22
+STACK CFI 5a584 x23: x23 x24: x24
+STACK CFI 5a588 x25: x25 x26: x26
+STACK CFI 5a58c x27: x27 x28: x28
+STACK CFI 5a590 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 5a594 .cfa: x29 368 + .ra: .cfa -360 + ^ v8: .cfa -272 + ^ v9: .cfa -264 + ^ x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x28: .cfa -280 + ^ x29: .cfa -368 + ^
+STACK CFI INIT 5a5bc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5a5c0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5a5c8 .cfa: x29 32 +
+STACK CFI 5a5dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 31b50 60 .cfa: sp 0 + .ra: x30
+STACK CFI 31b54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 31b60 .cfa: x29 32 +
+STACK CFI 31b64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 31ba8 x19: x19 x20: x20
+STACK CFI 31bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a5e0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 5a5e4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5a5e8 .cfa: x29 64 +
+STACK CFI 5a5f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 5a65c x23: x23
+STACK CFI 5a660 x19: x19 x20: x20
+STACK CFI 5a664 x21: x21 x22: x22
+STACK CFI 5a668 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a66c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 5a670 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5a674 .cfa: x29 48 +
+STACK CFI 5a67c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 5a6b8 x19: x19 x20: x20
+STACK CFI 5a6bc x21: x21
+STACK CFI 5a6c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a6c4 44 .cfa: sp 0 + .ra: x30
+STACK CFI 5a6c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5a6cc .cfa: x29 32 +
+STACK CFI 5a6d0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5a700 x19: x19 x20: x20
+STACK CFI 5a704 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a708 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5a744 9c .cfa: sp 0 + .ra: x30
+STACK CFI 5a748 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5a74c .cfa: x29 64 +
+STACK CFI 5a750 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 5a758 x21: .cfa -32 + ^
+STACK CFI 5a7d4 x19: x19 x20: x20
+STACK CFI 5a7d8 x21: x21
+STACK CFI 5a7dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a7e0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 5a7ec .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5a7f4 .cfa: x29 16 +
+STACK CFI 5a828 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a82c 144 .cfa: sp 0 + .ra: x30
+STACK CFI 5a830 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5a834 .cfa: x29 64 +
+STACK CFI 5a838 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5a844 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 5a854 x23: .cfa -16 + ^
+STACK CFI 5a960 x23: x23
+STACK CFI 5a964 x19: x19 x20: x20
+STACK CFI 5a968 x21: x21 x22: x22
+STACK CFI 5a96c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5a970 154 .cfa: sp 0 + .ra: x30
+STACK CFI 5a974 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5a978 .cfa: x29 160 +
+STACK CFI 5a97c x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5a98c x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^
+STACK CFI 5a99c x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5aab0 x25: x25
+STACK CFI 5aab4 x19: x19 x20: x20
+STACK CFI 5aab8 x21: x21 x22: x22
+STACK CFI 5aabc x23: x23 x24: x24
+STACK CFI 5aac0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5aac4 124 .cfa: sp 0 + .ra: x30
+STACK CFI 5aac8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5aacc .cfa: x29 96 +
+STACK CFI 5aadc x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 5abd4 x21: x21 x22: x22
+STACK CFI 5abd8 x19: x19 x20: x20
+STACK CFI 5abdc x23: x23 x24: x24
+STACK CFI 5abe0 x25: x25
+STACK CFI 5abe4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5abe8 50 .cfa: sp 0 + .ra: x30
+STACK CFI 5abec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5abf8 .cfa: x29 32 +
+STACK CFI 5ac34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ac38 28 .cfa: sp 0 + .ra: x30
+STACK CFI 5ac3c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5ac40 .cfa: x29 32 +
+STACK CFI 5ac5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ac60 5c .cfa: sp 0 + .ra: x30
+STACK CFI 5ac64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5ac68 .cfa: x29 32 +
+STACK CFI 5ac6c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5aca8 x19: x19 x20: x20
+STACK CFI 5acac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 5acb0 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 5acb4 x19: x19 x20: x20
+STACK CFI 5acb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5acbc 244 .cfa: sp 0 + .ra: x30
+STACK CFI 5acc0 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5acc4 .cfa: x29 96 +
+STACK CFI 5acc8 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 5acd8 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 5acfc x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 5aeec x25: x25
+STACK CFI 5aef0 x19: x19 x20: x20
+STACK CFI 5aef4 x21: x21 x22: x22
+STACK CFI 5aef8 x23: x23 x24: x24
+STACK CFI 5aefc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5af00 44 .cfa: sp 0 + .ra: x30
+STACK CFI 5af04 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5af0c .cfa: x29 32 +
+STACK CFI 5af10 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5af3c x19: x19 x20: x20
+STACK CFI 5af40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5af44 5c .cfa: sp 0 + .ra: x30
+STACK CFI 5af48 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5af4c .cfa: x29 48 +
+STACK CFI 5af50 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 5af98 x19: x19 x20: x20
+STACK CFI 5af9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5afa0 244 .cfa: sp 0 + .ra: x30
+STACK CFI 5afa8 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 5afac .cfa: x29 384 +
+STACK CFI 5afc0 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^
+STACK CFI 5b1d0 x19: x19 x20: x20
+STACK CFI 5b1d4 x21: x21 x22: x22
+STACK CFI 5b1d8 x23: x23 x24: x24
+STACK CFI 5b1dc x25: x25 x26: x26
+STACK CFI 5b1e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b1e4 18 .cfa: sp 0 + .ra: x30
+STACK CFI 5b1e8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5b1ec .cfa: x29 16 +
+STACK CFI 5b1f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 38 x19: x19 x20: x20
+STACK CFI 3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 40 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 58 x19: x19 x20: x20
+STACK CFI 5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 3c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 50 x19: x19
+STACK CFI 54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b1fc 4c .cfa: sp 0 + .ra: x30
+STACK CFI 5b200 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5b204 .cfa: x29 48 +
+STACK CFI 5b208 x19: .cfa -32 + ^
+STACK CFI 5b240 x19: x19
+STACK CFI 5b244 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b248 28 .cfa: sp 0 + .ra: x30
+STACK CFI 5b24c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5b250 .cfa: x29 16 +
+STACK CFI 5b25c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b270 28 .cfa: sp 0 + .ra: x30
+STACK CFI 5b274 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5b278 .cfa: x29 16 +
+STACK CFI 5b284 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 30 x19: x19
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 10 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI 60 x21: x21
+STACK CFI 64 x19: x19 x20: x20
+STACK CFI 68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b298 14 .cfa: sp 0 + .ra: x30
+STACK CFI 5b29c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5b2a0 .cfa: x29 16 +
+STACK CFI 5b2a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b2ac 5c .cfa: sp 0 + .ra: x30
+STACK CFI 5b2b0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5b2b4 .cfa: x29 32 +
+STACK CFI 5b2b8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5b2f4 x19: x19 x20: x20
+STACK CFI 5b2f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 5b2fc .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 5b300 x19: x19 x20: x20
+STACK CFI 5b304 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b308 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 5b30c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5b310 .cfa: x29 160 +
+STACK CFI 5b314 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5b320 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5b3c4 x19: x19 x20: x20
+STACK CFI 5b3c8 x21: x21 x22: x22
+STACK CFI 5b3cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b3d0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 5b3d4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5b3d8 .cfa: x29 64 +
+STACK CFI 5b3e0 x19: .cfa -48 + ^
+STACK CFI 5b418 x19: x19
+STACK CFI 5b41c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b420 38 .cfa: sp 0 + .ra: x30
+STACK CFI 5b424 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5b428 .cfa: x29 32 +
+STACK CFI 5b42c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5b450 x19: x19 x20: x20
+STACK CFI 5b454 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b458 5c .cfa: sp 0 + .ra: x30
+STACK CFI 5b45c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5b460 .cfa: x29 48 +
+STACK CFI 5b464 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 5b4ac x19: x19 x20: x20
+STACK CFI 5b4b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b4b4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5b4b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5b4bc .cfa: x29 32 +
+STACK CFI 5b4c0 x19: .cfa -16 + ^
+STACK CFI 5b4d0 x19: x19
+STACK CFI 5b4d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b4d8 228 .cfa: sp 0 + .ra: x30
+STACK CFI 5b4dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5b4e0 .cfa: x29 64 +
+STACK CFI 5b4e4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 5b4f0 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5b6f4 x19: x19 x20: x20
+STACK CFI 5b6f8 x21: x21 x22: x22
+STACK CFI 5b6fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b700 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5b704 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5b708 .cfa: x29 32 +
+STACK CFI 5b70c x19: .cfa -16 + ^
+STACK CFI 5b71c x19: x19
+STACK CFI 5b720 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI e4 x23: x23
+STACK CFI e8 x19: x19 x20: x20
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 18 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 78 x19: x19 x20: x20
+STACK CFI 7c x21: x21 x22: x22
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b724 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 5b728 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5b72c .cfa: x29 160 +
+STACK CFI 5b730 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5b740 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5b750 x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 5b7f8 x19: x19 x20: x20
+STACK CFI 5b7fc x21: x21 x22: x22
+STACK CFI 5b800 x23: x23 x24: x24
+STACK CFI 5b804 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 114 x19: x19 x20: x20
+STACK CFI 118 x21: x21 x22: x22
+STACK CFI 11c x23: x23
+STACK CFI 120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 1c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 7c x19: x19 x20: x20
+STACK CFI 80 x21: x21 x22: x22
+STACK CFI 84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b808 18c .cfa: sp 0 + .ra: x30
+STACK CFI 5b80c .cfa: sp 288 + .ra: .cfa -280 + ^ x29: .cfa -288 + ^
+STACK CFI 5b810 .cfa: x29 288 +
+STACK CFI 5b814 x19: .cfa -272 + ^ x20: .cfa -264 + ^
+STACK CFI 5b834 x21: .cfa -256 + ^ x22: .cfa -248 + ^ x23: .cfa -240 + ^ x24: .cfa -232 + ^ x25: .cfa -224 + ^
+STACK CFI 5b97c x25: x25
+STACK CFI 5b984 x19: x19 x20: x20
+STACK CFI 5b988 x21: x21 x22: x22
+STACK CFI 5b98c x23: x23 x24: x24
+STACK CFI 5b990 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5b994 1f8 .cfa: sp 0 + .ra: x30
+STACK CFI 5b998 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 5b99c .cfa: x29 272 +
+STACK CFI 5b9bc v10: .cfa -160 + ^ v11: .cfa -152 + ^ v12: .cfa -144 + ^ v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^ x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^
+STACK CFI 5bb68 v10: v10 v11: v11
+STACK CFI 5bb6c x19: x19 x20: x20
+STACK CFI 5bb70 v8: v8 v9: v9
+STACK CFI 5bb74 x21: x21 x22: x22
+STACK CFI 5bb78 x23: x23 x24: x24
+STACK CFI 5bb7c x25: x25 x26: x26
+STACK CFI 5bb80 x27: x27 x28: x28
+STACK CFI 5bb84 v12: v12
+STACK CFI 5bb88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bb8c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 5bb90 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5bb94 .cfa: x29 96 +
+STACK CFI 5bb9c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI 5bbd8 x21: x21
+STACK CFI 5bbdc x19: x19 x20: x20
+STACK CFI 5bbe0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bbe4 48 .cfa: sp 0 + .ra: x30
+STACK CFI 5bbe8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5bbf0 .cfa: x29 96 +
+STACK CFI 5bbf4 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 5bc24 x19: x19 x20: x20
+STACK CFI 5bc28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bc2c 9c .cfa: sp 0 + .ra: x30
+STACK CFI 5bc30 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 5bc34 .cfa: x29 144 +
+STACK CFI 5bc38 x21: .cfa -112 + ^
+STACK CFI 5bc44 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 5bcbc x21: x21
+STACK CFI 5bcc0 x19: x19 x20: x20
+STACK CFI 5bcc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bcc8 6c .cfa: sp 0 + .ra: x30
+STACK CFI 5bccc .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5bcd0 .cfa: x29 160 +
+STACK CFI 5bcd4 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5bcdc x21: .cfa -128 + ^
+STACK CFI 5bd28 x21: x21
+STACK CFI 5bd2c x19: x19 x20: x20
+STACK CFI 5bd30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bd34 228 .cfa: sp 0 + .ra: x30
+STACK CFI 5bd38 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 5bd3c .cfa: x29 224 +
+STACK CFI 5bd40 x21: .cfa -192 + ^ x22: .cfa -184 + ^
+STACK CFI 5bd50 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 5bf4c x19: x19 x20: x20
+STACK CFI 5bf50 x21: x21 x22: x22
+STACK CFI 5bf54 x23: x23 x24: x24
+STACK CFI 5bf58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bf5c 64 .cfa: sp 0 + .ra: x30
+STACK CFI 5bf60 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5bf64 .cfa: x29 32 +
+STACK CFI 5bf68 x19: .cfa -16 + ^
+STACK CFI 5bfac x19: x19
+STACK CFI 5bfb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 5bfb4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 5bfb8 x19: x19
+STACK CFI 5bfbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5bfc0 94 .cfa: sp 0 + .ra: x30
+STACK CFI 5bfc4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 5bfc8 .cfa: x29 144 +
+STACK CFI 5bfcc x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 5bfd8 x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 5c048 x19: x19 x20: x20
+STACK CFI 5c04c x21: x21 x22: x22
+STACK CFI 5c050 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c054 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 5c058 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 5c05c .cfa: x29 176 +
+STACK CFI 5c060 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 5c06c x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 5c0e8 x19: x19 x20: x20
+STACK CFI 5c0ec x21: x21 x22: x22
+STACK CFI 5c0f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 10 .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 x21: x21 x22: x22
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 240 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI 1c x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^
+STACK CFI 228 x19: x19 x20: x20
+STACK CFI 22c x21: x21 x22: x22
+STACK CFI 230 x23: x23 x24: x24
+STACK CFI 234 x25: x25 x26: x26
+STACK CFI 238 x27: x27 x28: x28
+STACK CFI 23c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 10 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI 60 x21: x21
+STACK CFI 64 x19: x19 x20: x20
+STACK CFI 68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c0f4 314 .cfa: sp 0 + .ra: x30
+STACK CFI 5c0f8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 5c0fc .cfa: x29 112 +
+STACK CFI 5c110 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI 5c3f0 x27: x27
+STACK CFI 5c3f4 x19: x19 x20: x20
+STACK CFI 5c3f8 x21: x21 x22: x22
+STACK CFI 5c3fc x23: x23 x24: x24
+STACK CFI 5c400 x25: x25 x26: x26
+STACK CFI 5c404 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c408 bc .cfa: sp 0 + .ra: x30
+STACK CFI 5c40c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5c410 .cfa: x29 32 +
+STACK CFI 5c414 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5c4bc x19: x19 x20: x20
+STACK CFI 5c4c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c4c4 10c .cfa: sp 0 + .ra: x30
+STACK CFI 5c4c8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5c4cc .cfa: x29 64 +
+STACK CFI 5c4d8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 5c5c0 x19: x19 x20: x20
+STACK CFI 5c5c4 x21: x21 x22: x22
+STACK CFI 5c5c8 x23: x23
+STACK CFI 5c5cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c5d0 100 .cfa: sp 0 + .ra: x30
+STACK CFI 5c5d4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5c5d8 .cfa: x29 64 +
+STACK CFI 5c5e4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 5c6c0 x19: x19 x20: x20
+STACK CFI 5c6c4 x21: x21 x22: x22
+STACK CFI 5c6c8 x23: x23
+STACK CFI 5c6cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5c6d0 3fc .cfa: sp 0 + .ra: x30
+STACK CFI 5c6d4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5c6dc .cfa: x29 160 +
+STACK CFI 5c6e8 v10: .cfa -48 + ^ v11: .cfa -40 + ^ v8: .cfa -64 + ^ v9: .cfa -56 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5c6fc x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x28: .cfa -72 + ^
+STACK CFI 5caac v8: v8 v9: v9
+STACK CFI 5cab0 x19: x19 x20: x20
+STACK CFI 5cab4 v10: v10 v11: v11
+STACK CFI 5cab8 x21: x21 x22: x22
+STACK CFI 5cabc x23: x23 x24: x24
+STACK CFI 5cac0 x25: x25 x26: x26
+STACK CFI 5cac4 x27: x27 x28: x28
+STACK CFI 5cac8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cacc cc .cfa: sp 0 + .ra: x30
+STACK CFI 5cad4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5cad8 .cfa: x29 48 +
+STACK CFI 5cae4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 5cb8c x21: x21
+STACK CFI 5cb90 x19: x19 x20: x20
+STACK CFI 5cb94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cb98 70 .cfa: sp 0 + .ra: x30
+STACK CFI 5cb9c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5cba0 .cfa: x29 160 +
+STACK CFI 5cba8 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5cbfc x19: x19 x20: x20
+STACK CFI 5cc00 x21: x21 x22: x22
+STACK CFI 5cc04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cc08 70 .cfa: sp 0 + .ra: x30
+STACK CFI 5cc0c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5cc10 .cfa: x29 160 +
+STACK CFI 5cc18 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5cc6c x19: x19 x20: x20
+STACK CFI 5cc70 x21: x21 x22: x22
+STACK CFI 5cc74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cc78 88 .cfa: sp 0 + .ra: x30
+STACK CFI 5cc7c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5cc80 .cfa: x29 160 +
+STACK CFI 5cc84 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5cc90 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5ccf4 x19: x19 x20: x20
+STACK CFI 5ccf8 x21: x21 x22: x22
+STACK CFI 5ccfc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cd00 ac .cfa: sp 0 + .ra: x30
+STACK CFI 5cd04 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 5cd0c .cfa: x29 80 +
+STACK CFI 5cd10 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 5cda4 x19: x19 x20: x20
+STACK CFI 5cda8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cdac 18c .cfa: sp 0 + .ra: x30
+STACK CFI 5cdb4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5cdb8 .cfa: x29 160 +
+STACK CFI 5cdc4 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 5cf2c x19: x19 x20: x20
+STACK CFI 5cf30 x21: x21 x22: x22
+STACK CFI 5cf34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5cf38 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI 5cf40 .cfa: sp 864 +
+STACK CFI 5cf48 .cfa: sp 960 + .ra: .cfa -952 + ^ x29: .cfa -960 + ^
+STACK CFI 5cf4c .cfa: x29 960 +
+STACK CFI 5cf5c x21: .cfa -928 + ^ x22: .cfa -920 + ^
+STACK CFI 5cf74 x19: .cfa -944 + ^ x20: .cfa -936 + ^ x23: .cfa -912 + ^ x24: .cfa -904 + ^ x25: .cfa -896 + ^ x26: .cfa -888 + ^ x27: .cfa -880 + ^ x28: .cfa -872 + ^
+STACK CFI 5d1bc x19: x19 x20: x20
+STACK CFI 5d1c0 x21: x21 x22: x22
+STACK CFI 5d1c4 x23: x23 x24: x24
+STACK CFI 5d1c8 x25: x25 x26: x26
+STACK CFI 5d1cc x27: x27 x28: x28
+STACK CFI 5d1d0 .cfa: sp 864 + .ra: .ra x29: x29
+STACK CFI 5d1d4 .cfa: sp 768 +
+STACK CFI INIT 5d1d8 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 5d1dc .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 5d1e0 .cfa: x29 224 +
+STACK CFI 5d1ec x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 5d2a8 x19: x19 x20: x20
+STACK CFI 5d2ac x21: x21 x22: x22
+STACK CFI 5d2b0 x23: x23 x24: x24
+STACK CFI 5d2b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5d2b8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 5d2bc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5d2c0 .cfa: x29 32 +
+STACK CFI 5d2c4 x19: .cfa -16 + ^
+STACK CFI 5d304 x19: x19
+STACK CFI 5d308 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5d30c 8c .cfa: sp 0 + .ra: x30
+STACK CFI 5d310 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 5d314 .cfa: x29 80 +
+STACK CFI 5d318 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 5d328 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 5d388 x23: x23
+STACK CFI 5d38c x19: x19 x20: x20
+STACK CFI 5d390 x21: x21 x22: x22
+STACK CFI 5d394 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5d398 38 .cfa: sp 0 + .ra: x30
+STACK CFI 5d39c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5d3a0 .cfa: x29 32 +
+STACK CFI 5d3a4 x19: .cfa -16 + ^
+STACK CFI 5d3c8 x19: x19
+STACK CFI 5d3cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5d3d0 374 .cfa: sp 0 + .ra: x30
+STACK CFI 5d3d4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 5d3d8 .cfa: x29 144 +
+STACK CFI 5d3e0 x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 5d3f8 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x27: .cfa -64 + ^
+STACK CFI 5d72c x19: x19 x20: x20
+STACK CFI 5d730 x21: x21 x22: x22
+STACK CFI 5d734 x23: x23 x24: x24
+STACK CFI 5d738 x25: x25 x26: x26
+STACK CFI 5d73c x27: x27
+STACK CFI 5d740 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 130 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 10 .cfa: x29 144 +
+STACK CFI 18 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^
+STACK CFI 124 x21: x21
+STACK CFI 128 x19: x19 x20: x20
+STACK CFI 12c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI c .cfa: x29 416 +
+STACK CFI 1c x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x25: .cfa -352 + ^
+STACK CFI 9c x25: x25
+STACK CFI a4 x19: x19 x20: x20
+STACK CFI a8 x21: x21 x22: x22
+STACK CFI ac x23: x23 x24: x24
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 3c x19: x19
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 40 x19: x19 x20: x20
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1d8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI 14 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 28 x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^
+STACK CFI 30 x21: .cfa -128 + ^ x22: .cfa -120 + ^
+STACK CFI 1c0 x27: x27
+STACK CFI 1c4 x19: x19 x20: x20
+STACK CFI 1c8 x21: x21 x22: x22
+STACK CFI 1cc x23: x23 x24: x24
+STACK CFI 1d0 x25: x25 x26: x26
+STACK CFI 1d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 10 .cfa: x29 48 +
+STACK CFI 1c x19: .cfa -32 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 10 .cfa: x29 48 +
+STACK CFI 1c x19: .cfa -32 + ^
+STACK CFI 40 x19: x19
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 40 x19: x19 x20: x20
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 14 x21: .cfa -32 + ^
+STACK CFI 44 x21: x21
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 374 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 8 .cfa: x29 144 +
+STACK CFI 10 x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 28 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x27: .cfa -64 + ^
+STACK CFI 35c x19: x19 x20: x20
+STACK CFI 360 x21: x21 x22: x22
+STACK CFI 364 x23: x23 x24: x24
+STACK CFI 368 x25: x25 x26: x26
+STACK CFI 36c x27: x27
+STACK CFI 370 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5d744 150 .cfa: sp 0 + .ra: x30
+STACK CFI 5d748 .cfa: sp 496 + .ra: .cfa -488 + ^ x29: .cfa -496 + ^
+STACK CFI 5d74c .cfa: x29 496 +
+STACK CFI 5d754 x19: .cfa -480 + ^ x20: .cfa -472 + ^ x27: .cfa -416 + ^
+STACK CFI 5d764 x21: .cfa -464 + ^ x22: .cfa -456 + ^ x23: .cfa -448 + ^ x24: .cfa -440 + ^ x25: .cfa -432 + ^ x26: .cfa -424 + ^
+STACK CFI 5d87c x27: x27
+STACK CFI 5d880 x19: x19 x20: x20
+STACK CFI 5d884 x21: x21 x22: x22
+STACK CFI 5d888 x23: x23 x24: x24
+STACK CFI 5d88c x25: x25 x26: x26
+STACK CFI 5d890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5d894 47c .cfa: sp 0 + .ra: x30
+STACK CFI 5d898 .cfa: sp 400 + .ra: .cfa -392 + ^ x29: .cfa -400 + ^
+STACK CFI 5d89c .cfa: x29 400 +
+STACK CFI 5d8a4 v8: .cfa -304 + ^ v9: .cfa -296 + ^ x21: .cfa -368 + ^ x22: .cfa -360 + ^
+STACK CFI 5d8b8 v10: .cfa -288 + ^ v11: .cfa -280 + ^ x19: .cfa -384 + ^ x20: .cfa -376 + ^
+STACK CFI 5d8c4 x23: .cfa -352 + ^ x24: .cfa -344 + ^ x25: .cfa -336 + ^ x26: .cfa -328 + ^
+STACK CFI 5d8f0 v12: .cfa -272 + ^ x27: .cfa -320 + ^ x28: .cfa -312 + ^
+STACK CFI 5dcec v8: v8 v9: v9
+STACK CFI 5dcf0 x19: x19 x20: x20
+STACK CFI 5dcf4 x21: x21 x22: x22
+STACK CFI 5dcf8 v10: v10 v11: v11
+STACK CFI 5dcfc x23: x23 x24: x24
+STACK CFI 5dd00 x25: x25 x26: x26
+STACK CFI 5dd04 x27: x27 x28: x28
+STACK CFI 5dd08 v12: v12
+STACK CFI 5dd0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5dd10 2e4 .cfa: sp 0 + .ra: x30
+STACK CFI 5dd14 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 5dd18 .cfa: x29 240 +
+STACK CFI 5dd20 x19: .cfa -224 + ^ x20: .cfa -216 + ^ x21: .cfa -208 + ^ x22: .cfa -200 + ^
+STACK CFI 5dd2c x23: .cfa -192 + ^ x24: .cfa -184 + ^
+STACK CFI 5dd48 x25: .cfa -176 + ^
+STACK CFI 5dfe0 x25: x25
+STACK CFI 5dfe4 x19: x19 x20: x20
+STACK CFI 5dfe8 x21: x21 x22: x22
+STACK CFI 5dfec x23: x23 x24: x24
+STACK CFI 5dff0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5dff4 3ac .cfa: sp 0 + .ra: x30
+STACK CFI 5dff8 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 5dffc .cfa: x29 240 +
+STACK CFI 5e004 x19: .cfa -224 + ^ x20: .cfa -216 + ^ x21: .cfa -208 + ^ x22: .cfa -200 + ^
+STACK CFI 5e010 x23: .cfa -192 + ^ x24: .cfa -184 + ^
+STACK CFI 5e02c x25: .cfa -176 + ^
+STACK CFI 5e38c x25: x25
+STACK CFI 5e390 x19: x19 x20: x20
+STACK CFI 5e394 x21: x21 x22: x22
+STACK CFI 5e398 x23: x23 x24: x24
+STACK CFI 5e39c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e3a0 108 .cfa: sp 0 + .ra: x30
+STACK CFI 5e3a4 .cfa: sp 496 + .ra: .cfa -488 + ^ x29: .cfa -496 + ^
+STACK CFI 5e3a8 .cfa: x29 496 +
+STACK CFI 5e3b0 x19: .cfa -480 + ^ x20: .cfa -472 + ^ x23: .cfa -448 + ^ x24: .cfa -440 + ^
+STACK CFI 5e3c8 x21: .cfa -464 + ^ x22: .cfa -456 + ^
+STACK CFI 5e498 x19: x19 x20: x20
+STACK CFI 5e49c x21: x21 x22: x22
+STACK CFI 5e4a0 x23: x23 x24: x24
+STACK CFI 5e4a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e4a8 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 5e4ac .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 5e4b0 .cfa: x29 80 +
+STACK CFI 5e4b8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 5e558 x21: x21
+STACK CFI 5e560 x19: x19 x20: x20
+STACK CFI 5e564 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e568 5c .cfa: sp 0 + .ra: x30
+STACK CFI 5e56c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5e570 .cfa: x29 64 +
+STACK CFI 5e574 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 5e57c x21: .cfa -32 + ^
+STACK CFI 5e5b4 x21: x21
+STACK CFI 5e5bc x19: x19 x20: x20
+STACK CFI 5e5c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e5c4 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 5e5c8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5e5cc .cfa: x29 96 +
+STACK CFI 5e5d0 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 5e690 x19: x19 x20: x20
+STACK CFI 5e694 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e698 23c .cfa: sp 0 + .ra: x30
+STACK CFI 5e69c .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 5e6a4 .cfa: x29 176 +
+STACK CFI 5e6a8 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 5e6c0 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 5e8c4 x19: x19 x20: x20
+STACK CFI 5e8c8 x21: x21 x22: x22
+STACK CFI 5e8cc x23: x23 x24: x24
+STACK CFI 5e8d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e8d4 bc .cfa: sp 0 + .ra: x30
+STACK CFI 5e8dc .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 5e8e0 .cfa: x29 160 +
+STACK CFI 5e8e8 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 5e988 x19: x19 x20: x20
+STACK CFI 5e98c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5e990 11c .cfa: sp 0 + .ra: x30
+STACK CFI 5e994 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 5e998 .cfa: x29 384 +
+STACK CFI 5e99c x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 5e9a4 x25: .cfa -320 + ^
+STACK CFI 5e9b4 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 5ea98 x25: x25
+STACK CFI 5ea9c x19: x19 x20: x20
+STACK CFI 5eaa0 x21: x21 x22: x22
+STACK CFI 5eaa4 x23: x23 x24: x24
+STACK CFI 5eaa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5eaac 11c .cfa: sp 0 + .ra: x30
+STACK CFI 5eab0 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 5eab4 .cfa: x29 384 +
+STACK CFI 5eab8 x25: .cfa -320 + ^
+STACK CFI 5eacc x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 5ebb4 x25: x25
+STACK CFI 5ebb8 x19: x19 x20: x20
+STACK CFI 5ebbc x21: x21 x22: x22
+STACK CFI 5ebc0 x23: x23 x24: x24
+STACK CFI 5ebc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ebc8 124 .cfa: sp 0 + .ra: x30
+STACK CFI 5ebcc .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 5ebd0 .cfa: x29 384 +
+STACK CFI 5ebd4 x25: .cfa -320 + ^
+STACK CFI 5ebe8 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^
+STACK CFI 5ecd8 x25: x25
+STACK CFI 5ecdc x19: x19 x20: x20
+STACK CFI 5ece0 x21: x21 x22: x22
+STACK CFI 5ece4 x23: x23 x24: x24
+STACK CFI 5ece8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 336 + .ra: .cfa -328 + ^ x29: .cfa -336 + ^
+STACK CFI c .cfa: x29 336 +
+STACK CFI 10 x19: .cfa -320 + ^ x20: .cfa -312 + ^
+STACK CFI 18 x21: .cfa -304 + ^
+STACK CFI 4c x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI c .cfa: x29 208 +
+STACK CFI 18 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI fc x23: x23
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI c .cfa: x29 208 +
+STACK CFI 18 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI fc x23: x23
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI c .cfa: x29 208 +
+STACK CFI 18 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI fc x23: x23
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI c .cfa: x29 208 +
+STACK CFI 18 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI fc x23: x23
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI c .cfa: x29 208 +
+STACK CFI 18 x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI fc x23: x23
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ecec 1a0 .cfa: sp 0 + .ra: x30
+STACK CFI 5ecf0 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5ecf4 .cfa: x29 96 +
+STACK CFI 5ecf8 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 5ed04 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 5ee78 x23: x23
+STACK CFI 5ee80 x21: x21 x22: x22
+STACK CFI 5ee84 x19: x19 x20: x20
+STACK CFI 5ee88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ee90 63c .cfa: sp 0 + .ra: x30
+STACK CFI 5ee94 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 5ee98 .cfa: x29 192 +
+STACK CFI 5eea0 v8: .cfa -96 + ^ v9: .cfa -88 + ^ x23: .cfa -144 + ^ x24: .cfa -136 + ^
+STACK CFI 5eeb8 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^ x25: .cfa -128 + ^ x26: .cfa -120 + ^ x27: .cfa -112 + ^ x28: .cfa -104 + ^
+STACK CFI 5f4b0 v8: v8 v9: v9
+STACK CFI 5f4b4 x19: x19 x20: x20
+STACK CFI 5f4b8 x21: x21 x22: x22
+STACK CFI 5f4bc x23: x23 x24: x24
+STACK CFI 5f4c0 x25: x25 x26: x26
+STACK CFI 5f4c4 x27: x27 x28: x28
+STACK CFI 5f4c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 55018 48 .cfa: sp 0 + .ra: x30
+STACK CFI 5501c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 55020 .cfa: x29 32 +
+STACK CFI 55024 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 55058 x19: x19 x20: x20
+STACK CFI 5505c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 238 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI c x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 24 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 220 x23: x23 x24: x24
+STACK CFI 224 x19: x19 x20: x20
+STACK CFI 228 x21: x21 x22: x22
+STACK CFI 22c x25: x25 x26: x26
+STACK CFI 230 x27: x27 x28: x28
+STACK CFI 234 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f4d8 60 .cfa: sp 0 + .ra: x30
+STACK CFI 5f4dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 5f4e4 .cfa: x29 48 +
+STACK CFI 5f4e8 x19: .cfa -32 + ^
+STACK CFI 5f530 x19: x19
+STACK CFI 5f534 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 5f538 58 .cfa: sp 0 + .ra: x30
+STACK CFI 5f53c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 5f540 .cfa: x29 32 +
+STACK CFI 5f544 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 5f588 x19: x19 x20: x20
+STACK CFI 5f58c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 24 x19: x19 x20: x20
+STACK CFI 28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 238 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI c .cfa: x29 128 +
+STACK CFI 10 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 28 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 220 x23: x23 x24: x24
+STACK CFI 224 x19: x19 x20: x20
+STACK CFI 228 x21: x21 x22: x22
+STACK CFI 22c x25: x25 x26: x26
+STACK CFI 230 x27: x27 x28: x28
+STACK CFI 234 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 248 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 256 + .ra: .cfa -248 + ^ x29: .cfa -256 + ^
+STACK CFI 8 .cfa: x29 256 +
+STACK CFI c x21: .cfa -224 + ^ x22: .cfa -216 + ^
+STACK CFI 28 x19: .cfa -240 + ^ x20: .cfa -232 + ^ x23: .cfa -208 + ^ x24: .cfa -200 + ^ x25: .cfa -192 + ^ x26: .cfa -184 + ^ x27: .cfa -176 + ^
+STACK CFI 230 x19: x19 x20: x20
+STACK CFI 234 x21: x21 x22: x22
+STACK CFI 238 x23: x23 x24: x24
+STACK CFI 23c x25: x25 x26: x26
+STACK CFI 240 x27: x27
+STACK CFI 244 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 8 .cfa: x29 112 +
+STACK CFI c x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 14 x21: .cfa -80 + ^
+STACK CFI 9c x21: x21
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI 10 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^
+STACK CFI 58 x21: x21
+STACK CFI 5c x19: x19 x20: x20
+STACK CFI 60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 24 x19: x19
+STACK CFI 28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI c x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 18 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 80 x19: x19 x20: x20
+STACK CFI 84 x21: x21 x22: x22
+STACK CFI 88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f590 244 .cfa: sp 0 + .ra: x30
+STACK CFI 5f594 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 5f598 .cfa: x29 128 +
+STACK CFI 5f59c x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 5f5ac v8: .cfa -32 + ^
+STACK CFI 5f5c0 x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 5f5dc x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 5f7b8 x23: x23 x24: x24
+STACK CFI 5f7bc x19: x19 x20: x20
+STACK CFI 5f7c0 x21: x21 x22: x22
+STACK CFI 5f7c4 x25: x25 x26: x26
+STACK CFI 5f7c8 x27: x27 x28: x28
+STACK CFI 5f7cc v8: v8
+STACK CFI 5f7d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f7d4 98 .cfa: sp 0 + .ra: x30
+STACK CFI 5f7d8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5f7dc .cfa: x29 64 +
+STACK CFI 5f7e0 x19: .cfa -48 + ^
+STACK CFI 5f864 x19: x19
+STACK CFI 5f868 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f86c 88 .cfa: sp 0 + .ra: x30
+STACK CFI 5f870 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 5f874 .cfa: x29 176 +
+STACK CFI 5f878 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 5f884 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 5f8e8 x19: x19 x20: x20
+STACK CFI 5f8ec x21: x21 x22: x22
+STACK CFI 5f8f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f8f4 148 .cfa: sp 0 + .ra: x30
+STACK CFI 5f8f8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5f8fc .cfa: x29 96 +
+STACK CFI 5f90c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 5fa28 x19: x19 x20: x20
+STACK CFI 5fa2c x21: x21 x22: x22
+STACK CFI 5fa30 x23: x23 x24: x24
+STACK CFI 5fa34 x25: x25
+STACK CFI 5fa38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5fa3c 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 5fa40 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 5fa44 .cfa: x29 272 +
+STACK CFI 5fa58 x19: .cfa -256 + ^ x20: .cfa -248 + ^ x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^ x27: .cfa -192 + ^
+STACK CFI 5fbc8 x19: x19 x20: x20
+STACK CFI 5fbcc x21: x21 x22: x22
+STACK CFI 5fbd0 x23: x23 x24: x24
+STACK CFI 5fbd4 x25: x25 x26: x26
+STACK CFI 5fbd8 x27: x27
+STACK CFI 5fbdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5fbe0 16c .cfa: sp 0 + .ra: x30
+STACK CFI 5fbe4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 5fbec .cfa: x29 208 +
+STACK CFI 5fbf0 x19: .cfa -192 + ^ x20: .cfa -184 + ^
+STACK CFI 5fc00 x21: .cfa -176 + ^ x22: .cfa -168 + ^ x25: .cfa -144 + ^ x26: .cfa -136 + ^
+STACK CFI 5fc24 x23: .cfa -160 + ^ x24: .cfa -152 + ^
+STACK CFI 5fd38 x19: x19 x20: x20
+STACK CFI 5fd3c x21: x21 x22: x22
+STACK CFI 5fd40 x23: x23 x24: x24
+STACK CFI 5fd44 x25: x25 x26: x26
+STACK CFI 5fd48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 38 x19: x19 x20: x20
+STACK CFI 3c x21: x21 x22: x22
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 44 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 5fd4c dc .cfa: sp 0 + .ra: x30
+STACK CFI 5fd50 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 5fd58 .cfa: x29 64 +
+STACK CFI 5fd60 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 5fe1c x19: x19 x20: x20
+STACK CFI 5fe20 x21: x21 x22: x22
+STACK CFI 5fe24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5fe28 fc .cfa: sp 0 + .ra: x30
+STACK CFI 5fe2c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5fe30 .cfa: x29 96 +
+STACK CFI 5fe3c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 5ff14 x19: x19 x20: x20
+STACK CFI 5ff18 x21: x21 x22: x22
+STACK CFI 5ff1c x23: x23
+STACK CFI 5ff20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5ff24 2d4 .cfa: sp 0 + .ra: x30
+STACK CFI 5ff28 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 5ff2c .cfa: x29 112 +
+STACK CFI 5ff3c x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^
+STACK CFI 601e4 x25: x25
+STACK CFI 601e8 x19: x19 x20: x20
+STACK CFI 601ec x21: x21 x22: x22
+STACK CFI 601f0 x23: x23 x24: x24
+STACK CFI 601f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 601f8 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 601fc .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 60200 .cfa: x29 144 +
+STACK CFI 6020c x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^
+STACK CFI 602b0 x23: x23
+STACK CFI 602b4 x19: x19 x20: x20
+STACK CFI 602b8 x21: x21 x22: x22
+STACK CFI 602bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 602c0 1b4 .cfa: sp 0 + .ra: x30
+STACK CFI 602c4 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 602c8 .cfa: x29 224 +
+STACK CFI 602cc x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 602dc v8: .cfa -128 + ^
+STACK CFI 602f4 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x27: .cfa -144 + ^ x28: .cfa -136 + ^
+STACK CFI 60458 x19: x19 x20: x20
+STACK CFI 6045c x21: x21 x22: x22
+STACK CFI 60460 x23: x23 x24: x24
+STACK CFI 60464 x25: x25 x26: x26
+STACK CFI 60468 x27: x27 x28: x28
+STACK CFI 6046c v8: v8
+STACK CFI 60470 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60474 554 .cfa: sp 0 + .ra: x30
+STACK CFI 60478 .cfa: sp 432 +
+STACK CFI 6047c .cfa: sp 592 + .ra: .cfa -584 + ^ x29: .cfa -592 + ^
+STACK CFI 60480 .cfa: x29 592 +
+STACK CFI 60484 v8: .cfa -496 + ^ v9: .cfa -488 + ^
+STACK CFI 6048c v10: .cfa -480 + ^ v11: .cfa -472 + ^
+STACK CFI 60498 v12: .cfa -464 + ^ v13: .cfa -456 + ^
+STACK CFI 604a4 v14: .cfa -448 + ^ v15: .cfa -440 + ^ x23: .cfa -544 + ^ x24: .cfa -536 + ^
+STACK CFI 604bc x19: .cfa -576 + ^ x20: .cfa -568 + ^ x21: .cfa -560 + ^ x22: .cfa -552 + ^ x25: .cfa -528 + ^ x26: .cfa -520 + ^ x27: .cfa -512 + ^ x28: .cfa -504 + ^
+STACK CFI 60998 v8: v8 v9: v9
+STACK CFI 609a0 x19: x19 x20: x20
+STACK CFI 609a4 v10: v10 v11: v11
+STACK CFI 609a8 x21: x21 x22: x22
+STACK CFI 609ac v12: v12 v13: v13
+STACK CFI 609b0 x23: x23 x24: x24
+STACK CFI 609b4 v14: v14 v15: v15
+STACK CFI 609b8 x25: x25 x26: x26
+STACK CFI 609bc x27: x27 x28: x28
+STACK CFI 609c0 .cfa: sp 432 + .ra: .ra x29: x29
+STACK CFI 609c4 .cfa: sp 272 +
+STACK CFI INIT 609c8 54 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 60a1c d4 .cfa: sp 0 + .ra: x30
+STACK CFI 60a20 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 60a24 .cfa: x29 80 +
+STACK CFI 60a34 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 60adc x19: x19 x20: x20
+STACK CFI 60ae0 x21: x21 x22: x22
+STACK CFI 60ae4 x23: x23 x24: x24
+STACK CFI 60ae8 x25: x25
+STACK CFI 60aec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60af0 224 .cfa: sp 0 + .ra: x30
+STACK CFI 60af4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 60af8 .cfa: x29 128 +
+STACK CFI 60afc x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 60b14 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 60cfc x23: x23 x24: x24
+STACK CFI 60d00 x19: x19 x20: x20
+STACK CFI 60d04 x21: x21 x22: x22
+STACK CFI 60d08 x25: x25 x26: x26
+STACK CFI 60d0c x27: x27 x28: x28
+STACK CFI 60d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60d14 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 60d18 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 60d20 .cfa: x29 112 +
+STACK CFI 60d28 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^
+STACK CFI 60dbc x19: x19 x20: x20
+STACK CFI 60dc0 x21: x21
+STACK CFI 60dc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60dc8 128 .cfa: sp 0 + .ra: x30
+STACK CFI 60dcc .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 60dd4 .cfa: x29 144 +
+STACK CFI 60de4 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^
+STACK CFI 60ed8 x25: x25
+STACK CFI 60ee0 x19: x19 x20: x20
+STACK CFI 60ee4 x21: x21 x22: x22
+STACK CFI 60ee8 x23: x23 x24: x24
+STACK CFI 60eec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60ef0 22c .cfa: sp 0 + .ra: x30
+STACK CFI 60ef4 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 60ef8 .cfa: x29 192 +
+STACK CFI 60efc x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 60f10 x21: .cfa -160 + ^ x22: .cfa -152 + ^ x25: .cfa -128 + ^
+STACK CFI 60f20 x23: .cfa -144 + ^ x24: .cfa -136 + ^
+STACK CFI 61104 x25: x25
+STACK CFI 6110c x19: x19 x20: x20
+STACK CFI 61110 x21: x21 x22: x22
+STACK CFI 61114 x23: x23 x24: x24
+STACK CFI 61118 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6111c b0 .cfa: sp 0 + .ra: x30
+STACK CFI 61120 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 61124 .cfa: x29 176 +
+STACK CFI 61128 x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 61140 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 611bc x19: x19 x20: x20
+STACK CFI 611c0 x21: x21 x22: x22
+STACK CFI 611c4 x23: x23 x24: x24
+STACK CFI 611c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI 10 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 28 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI a0 x23: x23
+STACK CFI a4 x19: x19 x20: x20
+STACK CFI a8 x21: x21 x22: x22
+STACK CFI ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI c x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 24 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 x21: x21 x22: x22
+STACK CFI a8 x23: x23 x24: x24
+STACK CFI ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI c .cfa: x29 176 +
+STACK CFI 14 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 90 x19: x19 x20: x20
+STACK CFI 94 x21: x21 x22: x22
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 611cc f4 .cfa: sp 0 + .ra: x30
+STACK CFI 611d4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 611d8 .cfa: x29 112 +
+STACK CFI 611f0 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 612b0 x19: x19 x20: x20
+STACK CFI 612b4 x21: x21 x22: x22
+STACK CFI 612b8 x23: x23 x24: x24
+STACK CFI 612bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI c .cfa: x29 112 +
+STACK CFI 24 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI e4 x19: x19 x20: x20
+STACK CFI e8 x21: x21 x22: x22
+STACK CFI ec x23: x23 x24: x24
+STACK CFI f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 110 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 10 .cfa: x29 32 +
+STACK CFI 8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 90 .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 114 x19: x19 x20: x20
+STACK CFI 118 x21: x21 x22: x22
+STACK CFI 11c x23: x23 x24: x24
+STACK CFI 120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI ac x21: x21
+STACK CFI b0 x19: x19 x20: x20
+STACK CFI b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI c .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 1c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI fc x19: x19 x20: x20
+STACK CFI 100 x21: x21 x22: x22
+STACK CFI 104 x23: x23
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23018 238 .cfa: sp 0 + .ra: x30
+STACK CFI 2301c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 23028 .cfa: x29 80 +
+STACK CFI 23038 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 23230 x23: x23
+STACK CFI 23240 x19: x19 x20: x20
+STACK CFI 23244 x21: x21 x22: x22
+STACK CFI 2324c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 612c0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 612c4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 43124 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 612c8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 612cc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 612d0 .cfa: x29 16 +
+STACK CFI 612e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 612e4 80 .cfa: sp 0 + .ra: x30
+STACK CFI 612e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 612ec .cfa: x29 32 +
+STACK CFI 612f0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 x21: x21 x22: x22
+STACK CFI 5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 +
+STACK CFI c .cfa: sp 0 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 56c00 58 .cfa: sp 0 + .ra: x30
+STACK CFI 56c04 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56c08 .cfa: x29 48 +
+STACK CFI 56c0c x19: .cfa -32 + ^
+STACK CFI 56c50 x19: x19
+STACK CFI 56c54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 10 .cfa: x29 16 +
+STACK CFI 4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56e30 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 56ed4 68 .cfa: sp 0 + .ra: x30
+STACK CFI 56ed8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 56edc .cfa: x29 48 +
+STACK CFI 56ee4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 56f1c x21: x21
+STACK CFI 56f20 x19: x19 x20: x20
+STACK CFI 56f24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 56f2c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 56f30 x19: x19 x20: x20
+STACK CFI 56f34 x21: x21
+STACK CFI 56f38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 8c x19: x19 x20: x20
+STACK CFI 90 x21: x21
+STACK CFI 94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 576a0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 576a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 576a8 .cfa: x29 48 +
+STACK CFI 576ac x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 576e4 x19: x19 x20: x20
+STACK CFI 576e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61364 50 .cfa: sp 0 + .ra: x30
+STACK CFI 61368 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6136c .cfa: x29 48 +
+STACK CFI 61370 x19: .cfa -32 + ^
+STACK CFI 613ac x19: x19
+STACK CFI 613b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 613b4 54 .cfa: sp 0 + .ra: x30
+STACK CFI 613b8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 613c0 .cfa: x29 96 +
+STACK CFI 613c4 x19: .cfa -80 + ^
+STACK CFI 61400 x19: x19
+STACK CFI 61404 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61408 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6140c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 61410 .cfa: x29 48 +
+STACK CFI 61414 x19: .cfa -32 + ^
+STACK CFI 61460 x19: x19
+STACK CFI 61464 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57a54 54 .cfa: sp 0 + .ra: x30
+STACK CFI 57a58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 57a60 .cfa: x29 16 +
+STACK CFI 57aa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54490 ec .cfa: sp 0 + .ra: x30
+STACK CFI 54494 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54498 .cfa: x29 80 +
+STACK CFI 544a0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 5456c x21: x21
+STACK CFI 54574 x19: x19 x20: x20
+STACK CFI 54578 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 14 x21: .cfa -32 + ^
+STACK CFI 4c x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 130 x19: x19 x20: x20
+STACK CFI 134 x21: x21 x22: x22
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61468 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 6146c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 61470 .cfa: x29 64 +
+STACK CFI 61478 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 61544 x19: x19 x20: x20
+STACK CFI 61548 x21: x21 x22: x22
+STACK CFI 6154c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI f4 x19: x19 x20: x20
+STACK CFI f8 x21: x21 x22: x22
+STACK CFI fc x23: x23 x24: x24
+STACK CFI 100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 160 x23: x23
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61550 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 61554 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 61558 .cfa: x29 48 +
+STACK CFI 6155c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 61568 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 615e8 x19: x19 x20: x20
+STACK CFI 61600 x21: x21 x22: x22
+STACK CFI 61604 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 61608 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 6160c x19: x19 x20: x20
+STACK CFI 61610 x21: x21 x22: x22
+STACK CFI 61614 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57564 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 80 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 70 x21: x21
+STACK CFI 78 x19: x19 x20: x20
+STACK CFI 7c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61618 104 .cfa: sp 0 + .ra: x30
+STACK CFI 6161c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 61624 .cfa: x29 160 +
+STACK CFI 61628 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 61638 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^
+STACK CFI 61708 x19: x19 x20: x20
+STACK CFI 6170c x21: x21 x22: x22
+STACK CFI 61710 x23: x23 x24: x24
+STACK CFI 61714 x25: x25 x26: x26
+STACK CFI 61718 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6171c 348 .cfa: sp 0 + .ra: x30
+STACK CFI 61720 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 61724 .cfa: x29 240 +
+STACK CFI 61728 x21: .cfa -208 + ^ x22: .cfa -200 + ^
+STACK CFI 6173c x19: .cfa -224 + ^ x20: .cfa -216 + ^ x23: .cfa -192 + ^ x24: .cfa -184 + ^ x25: .cfa -176 + ^
+STACK CFI 61a4c x25: x25
+STACK CFI 61a54 x19: x19 x20: x20
+STACK CFI 61a58 x21: x21 x22: x22
+STACK CFI 61a5c x23: x23 x24: x24
+STACK CFI 61a60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61a64 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 1c x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 128 x21: x21 x22: x22
+STACK CFI 12c x19: x19 x20: x20
+STACK CFI 130 x23: x23 x24: x24
+STACK CFI 134 x25: x25 x26: x26
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 114 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 104 x23: x23
+STACK CFI 108 x19: x19 x20: x20
+STACK CFI 10c x21: x21 x22: x22
+STACK CFI 110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 1c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 7c x19: x19 x20: x20
+STACK CFI 80 x21: x21 x22: x22
+STACK CFI 84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61a7c 3c0 .cfa: sp 0 + .ra: x30
+STACK CFI 61a80 .cfa: sp 624 +
+STACK CFI 61a84 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 61a88 .cfa: x29 688 +
+STACK CFI 61a94 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 61c34 x19: x19 x20: x20
+STACK CFI 61c38 x21: x21 x22: x22
+STACK CFI 61c3c x23: x23 x24: x24
+STACK CFI 61c40 .cfa: sp 624 + .ra: .ra x29: x29
+STACK CFI 61c44 .cfa: sp 560 +
+STACK CFI 61c48 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 61e3c 13c .cfa: sp 0 + .ra: x30
+STACK CFI 61e40 .cfa: sp 448 + .ra: .cfa -440 + ^ x29: .cfa -448 + ^
+STACK CFI 61e4c .cfa: x29 448 +
+STACK CFI 61e50 x19: .cfa -432 + ^ x20: .cfa -424 + ^
+STACK CFI INIT 20570 d8 .cfa: sp 0 + .ra: x30
+STACK CFI 20574 .cfa: sp 448 + .ra: .cfa -440 + ^ x29: .cfa -448 + ^
+STACK CFI 2057c .cfa: x29 448 +
+STACK CFI 20580 x19: .cfa -432 + ^ x20: .cfa -424 + ^
+STACK CFI INIT 61f78 74 .cfa: sp 0 + .ra: x30
+STACK CFI 61f7c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 61f84 .cfa: x29 48 +
+STACK CFI 61f88 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 61fe4 x19: x19 x20: x20
+STACK CFI 61fe8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 61fec 51c .cfa: sp 0 + .ra: x30
+STACK CFI 61ff0 .cfa: sp 496 + .ra: .cfa -488 + ^ x29: .cfa -496 + ^
+STACK CFI 61ff4 .cfa: x29 496 +
+STACK CFI 62000 x19: .cfa -480 + ^ x20: .cfa -472 + ^ x21: .cfa -464 + ^ x22: .cfa -456 + ^ x23: .cfa -448 + ^
+STACK CFI 624f8 x19: x19 x20: x20
+STACK CFI 624fc x21: x21 x22: x22
+STACK CFI 62500 x23: x23
+STACK CFI 62504 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 62508 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 6250c .cfa: sp 400 + .ra: .cfa -392 + ^ x29: .cfa -400 + ^
+STACK CFI 62514 .cfa: x29 400 +
+STACK CFI 62518 x19: .cfa -384 + ^ x20: .cfa -376 + ^
+STACK CFI INIT 625c8 50 .cfa: sp 0 + .ra: x30
+STACK CFI 625cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 625d4 .cfa: x29 32 +
+STACK CFI 625d8 x19: .cfa -16 + ^
+STACK CFI 62610 x19: x19
+STACK CFI 62614 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 62618 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6261c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 62620 .cfa: x29 32 +
+STACK CFI 62624 x19: .cfa -16 + ^
+STACK CFI 62634 x19: x19
+STACK CFI 62638 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6263c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6264c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 62650 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 62654 .cfa: x29 32 +
+STACK CFI 62658 x19: .cfa -16 + ^
+STACK CFI 62668 x19: x19
+STACK CFI 6266c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 62670 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 62680 24 .cfa: sp 0 + .ra: x30
+STACK CFI 62684 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 62688 .cfa: x29 32 +
+STACK CFI 6268c x19: .cfa -16 + ^
+STACK CFI 6269c x19: x19
+STACK CFI 626a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 18 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 78 x19: x19 x20: x20
+STACK CFI 7c x21: x21 x22: x22
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 626a4 24c .cfa: sp 0 + .ra: x30
+STACK CFI 626a8 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 626ac .cfa: x29 384 +
+STACK CFI 626bc x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^
+STACK CFI 628dc x19: x19 x20: x20
+STACK CFI 628e0 x21: x21 x22: x22
+STACK CFI 628e4 x23: x23 x24: x24
+STACK CFI 628e8 x25: x25 x26: x26
+STACK CFI 628ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5f8f4 148 .cfa: sp 0 + .ra: x30
+STACK CFI 5f8f8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 5f8fc .cfa: x29 96 +
+STACK CFI 5f90c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 5fa28 x19: x19 x20: x20
+STACK CFI 5fa2c x21: x21 x22: x22
+STACK CFI 5fa30 x23: x23 x24: x24
+STACK CFI 5fa34 x25: x25
+STACK CFI 5fa38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 628f0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 628f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 628fc .cfa: x29 32 +
+STACK CFI 62938 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6293c 44 .cfa: sp 0 + .ra: x30
+STACK CFI 62940 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 62944 .cfa: x29 48 +
+STACK CFI 62948 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 62978 x19: x19 x20: x20
+STACK CFI 6297c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 62980 c0c .cfa: sp 0 + .ra: x30
+STACK CFI 62984 .cfa: sp 784 +
+STACK CFI 62988 .cfa: sp 944 + .ra: .cfa -936 + ^ x29: .cfa -944 + ^
+STACK CFI 6298c .cfa: x29 944 +
+STACK CFI 62990 v8: .cfa -848 + ^ v9: .cfa -840 + ^
+STACK CFI 629b4 v10: .cfa -832 + ^ v11: .cfa -824 + ^ v12: .cfa -816 + ^ v13: .cfa -808 + ^ v14: .cfa -800 + ^ v15: .cfa -792 + ^ x19: .cfa -928 + ^ x20: .cfa -920 + ^ x21: .cfa -912 + ^ x22: .cfa -904 + ^ x23: .cfa -896 + ^ x24: .cfa -888 + ^ x25: .cfa -880 + ^ x26: .cfa -872 + ^ x27: .cfa -864 + ^ x28: .cfa -856 + ^
+STACK CFI 63560 x19: x19 x20: x20
+STACK CFI 63564 v8: v8 v9: v9
+STACK CFI 63568 x21: x21 x22: x22
+STACK CFI 6356c v10: v10 v11: v11
+STACK CFI 63570 x23: x23 x24: x24
+STACK CFI 63574 v12: v12 v13: v13
+STACK CFI 63578 x25: x25 x26: x26
+STACK CFI 6357c v14: v14 v15: v15
+STACK CFI 63580 x27: x27 x28: x28
+STACK CFI 63584 .cfa: sp 784 + .ra: .ra x29: x29
+STACK CFI 63588 .cfa: sp 624 +
+STACK CFI INIT 0 2a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 8 .cfa: x29 112 +
+STACK CFI c x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 20 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI 28c x23: x23 x24: x24
+STACK CFI 290 x19: x19 x20: x20
+STACK CFI 294 x21: x21 x22: x22
+STACK CFI 298 x25: x25 x26: x26
+STACK CFI 29c x27: x27
+STACK CFI 2a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 60d14 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 60d18 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 60d20 .cfa: x29 112 +
+STACK CFI 60d28 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^
+STACK CFI 60dbc x19: x19 x20: x20
+STACK CFI 60dc0 x21: x21
+STACK CFI 60dc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6358c 234 .cfa: sp 0 + .ra: x30
+STACK CFI 63590 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 63598 .cfa: x29 272 +
+STACK CFI 6359c x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 635b0 x25: .cfa -208 + ^
+STACK CFI 635bc x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^
+STACK CFI 637ac x19: x19 x20: x20
+STACK CFI 637b0 x21: x21 x22: x22
+STACK CFI 637b4 x23: x23 x24: x24
+STACK CFI 637b8 x25: x25
+STACK CFI 637bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23250 e8 .cfa: sp 0 + .ra: x30
+STACK CFI 23254 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 23260 .cfa: x29 64 +
+STACK CFI 2326c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 23278 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 2332c x19: x19 x20: x20
+STACK CFI 23330 x21: x21 x22: x22
+STACK CFI 23334 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 637c0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 637cc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 637d0 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 637d4 .cfa: x29 144 +
+STACK CFI 637ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 637f0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 637f4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 637f8 .cfa: x29 144 +
+STACK CFI 63824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 63828 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6383c 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 63860 44 .cfa: sp 0 + .ra: x30
+STACK CFI 63864 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6386c .cfa: x29 32 +
+STACK CFI 63870 x19: .cfa -16 + ^
+STACK CFI 6388c x19: x19
+STACK CFI 63890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 63894 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 6389c x19: x19
+STACK CFI 638a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 60 x19: x19
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 576a0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 576a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 576a8 .cfa: x29 48 +
+STACK CFI 576ac x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 576e4 x19: x19 x20: x20
+STACK CFI 576e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 57a54 54 .cfa: sp 0 + .ra: x30
+STACK CFI 57a58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 57a60 .cfa: x29 16 +
+STACK CFI 57aa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 130 x21: x21
+STACK CFI 134 x19: x19 x20: x20
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 180 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 170 x23: x23
+STACK CFI 174 x19: x19 x20: x20
+STACK CFI 178 x21: x21 x22: x22
+STACK CFI 17c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57564 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 18 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25fd8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 25fdc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25fe0 .cfa: x29 48 +
+STACK CFI 25fe4 x19: .cfa -32 + ^
+STACK CFI 26004 x19: x19
+STACK CFI 26008 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 638a4 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 638a8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 638ac .cfa: x29 48 +
+STACK CFI 638b4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 638c4 x19: x19 x20: x20
+STACK CFI 638c8 x21: x21
+STACK CFI 638d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 638d8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 63958 x21: x21
+STACK CFI 6395c x19: x19 x20: x20
+STACK CFI 63960 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57908 24 .cfa: sp 0 + .ra: x30
+STACK CFI 5790c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 57910 .cfa: x29 32 +
+STACK CFI 57914 x19: .cfa -16 + ^
+STACK CFI 57924 x19: x19
+STACK CFI 57928 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63964 90 .cfa: sp 0 + .ra: x30
+STACK CFI 63968 .cfa: sp 4096 +
+STACK CFI 63970 .cfa: sp 4160 +
+STACK CFI 63978 .cfa: sp 4208 + .ra: .cfa -4200 + ^ x29: .cfa -4208 + ^
+STACK CFI 6397c .cfa: x29 4208 +
+STACK CFI 63980 x19: .cfa -4192 + ^ x20: .cfa -4184 + ^
+STACK CFI 63988 x21: .cfa -4176 + ^
+STACK CFI 639e0 x21: x21
+STACK CFI 639e4 x19: x19 x20: x20
+STACK CFI 639e8 .cfa: sp 4160 + .ra: .ra x29: x29
+STACK CFI 639ec .cfa: sp 4096 +
+STACK CFI 639f0 .cfa: sp 4048 +
+STACK CFI INIT 639f4 68 .cfa: sp 0 + .ra: x30
+STACK CFI 639f8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 639fc .cfa: x29 112 +
+STACK CFI 63a00 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 63a54 x19: x19 x20: x20
+STACK CFI 63a58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63a5c 78 .cfa: sp 0 + .ra: x30
+STACK CFI 63a60 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 63a64 .cfa: x29 112 +
+STACK CFI 63a68 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 63acc x19: x19 x20: x20
+STACK CFI 63ad0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63ad4 1ec .cfa: sp 0 + .ra: x30
+STACK CFI 63ad8 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 63adc .cfa: x29 224 +
+STACK CFI 63aec x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^
+STACK CFI 63cac x25: x25
+STACK CFI 63cb0 x19: x19 x20: x20
+STACK CFI 63cb4 x21: x21 x22: x22
+STACK CFI 63cb8 x23: x23 x24: x24
+STACK CFI 63cbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63cc0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 63cc4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 63cc8 .cfa: x29 144 +
+STACK CFI 63cd0 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 63d68 x19: x19 x20: x20
+STACK CFI 63d6c x21: x21 x22: x22
+STACK CFI 63d70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63d74 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 63d78 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 63d7c .cfa: x29 144 +
+STACK CFI 63d84 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^
+STACK CFI 63e08 x21: x21
+STACK CFI 63e0c x19: x19 x20: x20
+STACK CFI 63e10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 168 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 1c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 158 x23: x23
+STACK CFI 15c x19: x19 x20: x20
+STACK CFI 160 x21: x21 x22: x22
+STACK CFI 164 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 8 .cfa: x29 192 +
+STACK CFI 14 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x23: .cfa -144 + ^
+STACK CFI 38 x21: .cfa -160 + ^ x22: .cfa -152 + ^
+STACK CFI d0 x23: x23
+STACK CFI d8 x19: x19 x20: x20
+STACK CFI dc x21: x21 x22: x22
+STACK CFI e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 63e14 224 .cfa: sp 0 + .ra: x30
+STACK CFI 63e18 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 63e1c .cfa: x29 384 +
+STACK CFI 63e20 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 63e30 x23: .cfa -336 + ^ x24: .cfa -328 + ^ x27: .cfa -304 + ^ x28: .cfa -296 + ^
+STACK CFI 63e48 x21: .cfa -352 + ^ x22: .cfa -344 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^
+STACK CFI 64020 x19: x19 x20: x20
+STACK CFI 64024 x21: x21 x22: x22
+STACK CFI 64028 x23: x23 x24: x24
+STACK CFI 6402c x25: x25 x26: x26
+STACK CFI 64030 x27: x27 x28: x28
+STACK CFI 64034 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64038 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 6403c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 64040 .cfa: x29 112 +
+STACK CFI 64048 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 6405c x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 640cc x19: x19 x20: x20
+STACK CFI 640d0 x21: x21 x22: x22
+STACK CFI 640d4 x23: x23 x24: x24
+STACK CFI 640d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 640dc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 640e4 30 .cfa: sp 0 + .ra: x30
+STACK CFI 640e8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 640f4 .cfa: x29 16 +
+STACK CFI 64110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 64114 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 64120 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6412c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 64138 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 2c x19: x19
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 38 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 3c x19: x19
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64174 158 .cfa: sp 0 + .ra: x30
+STACK CFI 64178 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 64180 .cfa: x29 32 +
+STACK CFI 64184 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 64200 x19: x19 x20: x20
+STACK CFI 64204 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 64208 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 64220 x19: x19 x20: x20
+STACK CFI 64224 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 64228 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 642c4 x19: x19 x20: x20
+STACK CFI 642c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 642cc bc .cfa: sp 0 + .ra: x30
+STACK CFI 642d0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 642d4 .cfa: x29 48 +
+STACK CFI 642dc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 64340 x21: x21 x22: x22
+STACK CFI 64344 x19: x19 x20: x20
+STACK CFI 64348 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6434c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 6437c x19: x19 x20: x20
+STACK CFI 64380 x21: x21 x22: x22
+STACK CFI 64384 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64388 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 6438c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 64394 .cfa: x29 80 +
+STACK CFI 643a8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 64434 x19: x19 x20: x20
+STACK CFI 64438 x21: x21 x22: x22
+STACK CFI 6443c x23: x23 x24: x24
+STACK CFI 64440 x25: x25
+STACK CFI 64444 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64448 68 .cfa: sp 0 + .ra: x30
+STACK CFI 6444c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 64450 .cfa: x29 32 +
+STACK CFI 64454 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 64478 x19: x19 x20: x20
+STACK CFI 6447c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 64480 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 644a8 x19: x19 x20: x20
+STACK CFI 644ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 20 x19: x19
+STACK CFI 24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 644b0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 644cc 2c .cfa: sp 0 + .ra: x30
+STACK CFI 644d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 644dc .cfa: x29 32 +
+STACK CFI 644e0 x19: .cfa -16 + ^
+STACK CFI 644f0 x19: x19
+STACK CFI 644f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 644f8 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248a0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 248a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 248a8 .cfa: x29 32 +
+STACK CFI 248ac x19: .cfa -16 + ^
+STACK CFI 248e0 x19: x19
+STACK CFI 248e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64510 3c .cfa: sp 0 + .ra: x30
+STACK CFI 64514 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 64518 .cfa: x29 32 +
+STACK CFI 6451c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 64544 x19: x19 x20: x20
+STACK CFI 64548 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6454c 5c .cfa: sp 0 + .ra: x30
+STACK CFI 64550 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 64554 .cfa: x29 48 +
+STACK CFI 64558 x19: .cfa -32 + ^
+STACK CFI 645a0 x19: x19
+STACK CFI 645a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI c .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 1c x21: .cfa -32 + ^
+STACK CFI 7c x19: x19 x20: x20
+STACK CFI 80 x21: x21
+STACK CFI 84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 60 x19: x19
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 576a0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 576a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 576a8 .cfa: x29 48 +
+STACK CFI 576ac x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 576e4 x19: x19 x20: x20
+STACK CFI 576e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 645a8 9c .cfa: sp 0 + .ra: x30
+STACK CFI 645ac .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 645b0 .cfa: x29 64 +
+STACK CFI 645b8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 645c0 x23: .cfa -16 + ^
+STACK CFI 64630 x23: x23
+STACK CFI 64638 x19: x19 x20: x20
+STACK CFI 6463c x21: x21 x22: x22
+STACK CFI 64640 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64644 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 64648 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6464c .cfa: x29 48 +
+STACK CFI 64654 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 646e0 x21: x21
+STACK CFI 646e4 x19: x19 x20: x20
+STACK CFI 646e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 14 x19: .cfa -16 + ^
+STACK CFI 24 x19: x19
+STACK CFI 28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 646ec 2c .cfa: sp 0 + .ra: x30
+STACK CFI 646f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 646f8 .cfa: x29 32 +
+STACK CFI 64700 x19: .cfa -16 + ^
+STACK CFI 64710 x19: x19
+STACK CFI 64714 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54474 1c .cfa: sp 0 + .ra: x30
+STACK CFI 54478 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5447c .cfa: x29 16 +
+STACK CFI 5448c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54490 ec .cfa: sp 0 + .ra: x30
+STACK CFI 54494 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54498 .cfa: x29 80 +
+STACK CFI 544a0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 5456c x21: x21
+STACK CFI 54574 x19: x19 x20: x20
+STACK CFI 54578 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64718 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6471c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 64720 .cfa: x29 32 +
+STACK CFI 64724 x19: .cfa -16 + ^
+STACK CFI 64748 x19: x19
+STACK CFI 6474c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 18 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 x21: x21 x22: x22
+STACK CFI a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5457c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 54580 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5458c .cfa: x29 16 +
+STACK CFI 545c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64750 7c .cfa: sp 0 + .ra: x30
+STACK CFI 64754 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 64758 .cfa: x29 48 +
+STACK CFI 6475c x19: .cfa -32 + ^
+STACK CFI 647c4 x19: x19
+STACK CFI 647c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 647cc 48 .cfa: sp 0 + .ra: x30
+STACK CFI 647d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 647d4 .cfa: x29 32 +
+STACK CFI 647d8 x19: .cfa -16 + ^
+STACK CFI 6480c x19: x19
+STACK CFI 64810 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 14 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 20 x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 x23: x23 x24: x24
+STACK CFI 12c x25: x25 x26: x26
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 40 x19: x19 x20: x20
+STACK CFI 44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64814 1a8 .cfa: sp 0 + .ra: x30
+STACK CFI 64818 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 6481c .cfa: x29 112 +
+STACK CFI 64820 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 6482c x21: .cfa -80 + ^
+STACK CFI 649b0 x19: x19 x20: x20
+STACK CFI 649b4 x21: x21
+STACK CFI 649b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 180 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 170 x23: x23
+STACK CFI 174 x19: x19 x20: x20
+STACK CFI 178 x21: x21 x22: x22
+STACK CFI 17c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 57564 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 168 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 1c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 158 x23: x23
+STACK CFI 15c x19: x19 x20: x20
+STACK CFI 160 x21: x21 x22: x22
+STACK CFI 164 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 649bc 150 .cfa: sp 0 + .ra: x30
+STACK CFI 649c0 .cfa: sp 256 + .ra: .cfa -248 + ^ x29: .cfa -256 + ^
+STACK CFI 649c4 .cfa: x29 256 +
+STACK CFI 649d0 x19: .cfa -240 + ^ x20: .cfa -232 + ^ x21: .cfa -224 + ^ x22: .cfa -216 + ^ x23: .cfa -208 + ^ x24: .cfa -200 + ^
+STACK CFI 64afc x19: x19 x20: x20
+STACK CFI 64b00 x21: x21 x22: x22
+STACK CFI 64b04 x23: x23 x24: x24
+STACK CFI 64b08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64b0c cc .cfa: sp 0 + .ra: x30
+STACK CFI 64b10 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 64b14 .cfa: x29 96 +
+STACK CFI 64b18 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 64bd0 x19: x19 x20: x20
+STACK CFI 64bd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64bd8 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 64bdc .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 64be0 .cfa: x29 128 +
+STACK CFI 64bf0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^
+STACK CFI 64d68 x21: x21 x22: x22
+STACK CFI 64d6c x19: x19 x20: x20
+STACK CFI 64d70 x23: x23 x24: x24
+STACK CFI 64d74 x25: x25
+STACK CFI 64d78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 64d7c 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 64d94 13c .cfa: sp 0 + .ra: x30
+STACK CFI 64d98 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 64d9c .cfa: x29 224 +
+STACK CFI 64da8 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^
+STACK CFI 64ebc x23: x23
+STACK CFI 64ec4 x19: x19 x20: x20
+STACK CFI 64ec8 x21: x21 x22: x22
+STACK CFI 64ecc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 545c4 11c .cfa: sp 0 + .ra: x30
+STACK CFI 545c8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 545cc .cfa: x29 64 +
+STACK CFI 545d4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 546d4 x21: x21
+STACK CFI 546d8 x19: x19 x20: x20
+STACK CFI 546dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64ed0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 64ed4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 64ed8 .cfa: x29 112 +
+STACK CFI 64edc x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 64eec x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 64f8c x19: x19 x20: x20
+STACK CFI 64f90 x21: x21 x22: x22
+STACK CFI 64f94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64f98 54 .cfa: sp 0 + .ra: x30
+STACK CFI 64f9c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 64fa0 .cfa: x29 80 +
+STACK CFI 64fa4 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 64fe4 x19: x19 x20: x20
+STACK CFI 64fe8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 64fec 10c .cfa: sp 0 + .ra: x30
+STACK CFI 64ff0 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 64ff4 .cfa: x29 176 +
+STACK CFI 64ff8 x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 65008 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x23: .cfa -128 + ^
+STACK CFI 650e4 x23: x23
+STACK CFI 650ec x19: x19 x20: x20
+STACK CFI 650f0 x21: x21 x22: x22
+STACK CFI 650f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 650f8 48 .cfa: sp 0 + .ra: x30
+STACK CFI 650fc .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 65100 .cfa: x29 96 +
+STACK CFI 65104 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 65138 x19: x19 x20: x20
+STACK CFI 6513c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 8 .cfa: x29 192 +
+STACK CFI 20 v8: .cfa -96 + ^ x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^ x24: .cfa -136 + ^ x25: .cfa -128 + ^ x26: .cfa -120 + ^ x27: .cfa -112 + ^ x28: .cfa -104 + ^
+STACK CFI 4b8 x19: x19 x20: x20
+STACK CFI 4bc x21: x21 x22: x22
+STACK CFI 4c0 x23: x23 x24: x24
+STACK CFI 4c4 x25: x25 x26: x26
+STACK CFI 4c8 x27: x27 x28: x28
+STACK CFI 4cc v8: v8
+STACK CFI 4d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI b4 x19: x19 x20: x20
+STACK CFI b8 x21: x21
+STACK CFI bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 23338 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23360 44 .cfa: sp 0 + .ra: x30
+STACK CFI 23364 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 23368 .cfa: x29 48 +
+STACK CFI 2336c x19: .cfa -32 + ^
+STACK CFI 2339c x19: x19
+STACK CFI 233a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65140 40 .cfa: sp 0 + .ra: x30
+STACK CFI 65144 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 65148 .cfa: x29 32 +
+STACK CFI 6514c x19: .cfa -16 + ^
+STACK CFI 65178 x19: x19
+STACK CFI 6517c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65180 44 .cfa: sp 0 + .ra: x30
+STACK CFI 65184 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6518c .cfa: x29 32 +
+STACK CFI 65190 x19: .cfa -16 + ^
+STACK CFI 651bc x19: x19
+STACK CFI 651c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 651c4 50 .cfa: sp 0 + .ra: x30
+STACK CFI 651c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 651d4 .cfa: x29 32 +
+STACK CFI 651d8 x19: .cfa -16 + ^
+STACK CFI 6520c x19: x19
+STACK CFI 65210 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 65214 fc .cfa: sp 0 + .ra: x30
+STACK CFI 6521c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 65220 .cfa: x29 96 +
+STACK CFI 6522c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x23: .cfa -48 + ^
+STACK CFI 65234 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 65300 x19: x19 x20: x20
+STACK CFI 65304 x21: x21 x22: x22
+STACK CFI 65308 x23: x23
+STACK CFI 6530c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65310 2b0 .cfa: sp 0 + .ra: x30
+STACK CFI 65314 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 65318 .cfa: x29 112 +
+STACK CFI 65328 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^
+STACK CFI 65594 x25: x25
+STACK CFI 65598 x19: x19 x20: x20
+STACK CFI 6559c x21: x21 x22: x22
+STACK CFI 655a0 x23: x23 x24: x24
+STACK CFI 655a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 655a8 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 655c0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 655c8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 655cc .cfa: x29 64 +
+STACK CFI 655dc x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 65634 x19: x19 x20: x20
+STACK CFI 65638 x21: x21 x22: x22
+STACK CFI 6563c x23: x23
+STACK CFI 65640 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65644 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 65648 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6564c .cfa: x29 48 +
+STACK CFI 65650 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 65658 x21: .cfa -16 + ^
+STACK CFI 656d8 x21: x21
+STACK CFI 656dc x19: x19 x20: x20
+STACK CFI 656e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 656f0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 656fc x19: x19 x20: x20
+STACK CFI 65700 x21: x21
+STACK CFI 65704 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65708 368 .cfa: sp 0 + .ra: x30
+STACK CFI 6570c .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 65710 .cfa: x29 128 +
+STACK CFI 65720 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 65a5c x19: x19 x20: x20
+STACK CFI 65a60 x21: x21 x22: x22
+STACK CFI 65a64 x23: x23 x24: x24
+STACK CFI 65a68 x25: x25 x26: x26
+STACK CFI 65a6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65a70 128 .cfa: sp 0 + .ra: x30
+STACK CFI 65a74 .cfa: sp 4096 +
+STACK CFI 65a78 .cfa: sp 5232 +
+STACK CFI 65a7c .cfa: sp 5296 + .ra: .cfa -5288 + ^ x29: .cfa -5296 + ^
+STACK CFI 65a80 .cfa: x29 5296 +
+STACK CFI 65a8c x19: .cfa -5280 + ^ x20: .cfa -5272 + ^ x21: .cfa -5264 + ^ x22: .cfa -5256 + ^ x23: .cfa -5248 + ^
+STACK CFI 65b80 x19: x19 x20: x20
+STACK CFI 65b84 x21: x21 x22: x22
+STACK CFI 65b88 x23: x23
+STACK CFI 65b8c .cfa: sp 5232 + .ra: .ra x29: x29
+STACK CFI 65b90 .cfa: sp 4096 +
+STACK CFI 65b94 .cfa: sp 4032 +
+STACK CFI INIT 65b98 5c .cfa: sp 0 + .ra: x30
+STACK CFI 65b9c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 65ba4 .cfa: x29 48 +
+STACK CFI 65ba8 x19: .cfa -32 + ^
+STACK CFI 65bdc x19: x19
+STACK CFI 65be0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 65be8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 65bec x19: x19
+STACK CFI 65bf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 4096 +
+STACK CFI c .cfa: sp 4704 +
+STACK CFI 10 .cfa: sp 4752 + .ra: .cfa -4744 + ^ x29: .cfa -4752 + ^
+STACK CFI 14 .cfa: x29 4752 +
+STACK CFI 18 x19: .cfa -4736 + ^ x20: .cfa -4728 + ^
+STACK CFI 24 x21: .cfa -4720 + ^ x22: .cfa -4712 + ^
+STACK CFI 68 x19: x19 x20: x20
+STACK CFI 6c x21: x21 x22: x22
+STACK CFI 70 .cfa: sp 4704 + .ra: .ra x29: x29
+STACK CFI 74 .cfa: sp 4096 +
+STACK CFI 78 .cfa: sp 4048 +
+STACK CFI INIT 65bf4 190 .cfa: sp 0 + .ra: x30
+STACK CFI 65bf8 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 65bfc .cfa: x29 128 +
+STACK CFI 65c00 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 65c18 x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 65d70 x19: x19 x20: x20
+STACK CFI 65d74 x21: x21 x22: x22
+STACK CFI 65d78 x23: x23 x24: x24
+STACK CFI 65d7c x25: x25 x26: x26
+STACK CFI 65d80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65d84 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 65d88 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 65d8c .cfa: x29 64 +
+STACK CFI 65d94 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 65e30 x19: x19 x20: x20
+STACK CFI 65e34 x21: x21
+STACK CFI 65e38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65e3c 68 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 65ea4 40 .cfa: sp 0 + .ra: x30
+STACK CFI 65ea8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 65eac .cfa: x29 32 +
+STACK CFI 65eb0 x19: .cfa -16 + ^
+STACK CFI 65edc x19: x19
+STACK CFI 65ee0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 65ee4 130 .cfa: sp 0 + .ra: x30
+STACK CFI 65ee8 .cfa: sp 4096 +
+STACK CFI 65eec .cfa: sp 5232 +
+STACK CFI 65ef0 .cfa: sp 5280 + .ra: .cfa -5272 + ^ x29: .cfa -5280 + ^
+STACK CFI 65ef4 .cfa: x29 5280 +
+STACK CFI 65efc x19: .cfa -5264 + ^ x20: .cfa -5256 + ^ x21: .cfa -5248 + ^ x22: .cfa -5240 + ^
+STACK CFI 65ffc x19: x19 x20: x20
+STACK CFI 66000 x21: x21 x22: x22
+STACK CFI 66004 .cfa: sp 5232 + .ra: .ra x29: x29
+STACK CFI 6600c .cfa: sp 4096 +
+STACK CFI 66010 .cfa: sp 4048 +
+STACK CFI INIT 66014 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 66018 .cfa: sp 592 +
+STACK CFI 6601c .cfa: sp 640 + .ra: .cfa -632 + ^ x29: .cfa -640 + ^
+STACK CFI 66020 .cfa: x29 640 +
+STACK CFI 66028 x19: .cfa -624 + ^ x20: .cfa -616 + ^ x21: .cfa -608 + ^ x22: .cfa -600 + ^
+STACK CFI 660b8 x19: x19 x20: x20
+STACK CFI 660bc x21: x21 x22: x22
+STACK CFI 660c0 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 660c4 .cfa: sp 544 +
+STACK CFI INIT 660c8 84 .cfa: sp 0 + .ra: x30
+STACK CFI 660cc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 660d0 .cfa: x29 64 +
+STACK CFI 660d4 x19: .cfa -48 + ^
+STACK CFI 66144 x19: x19
+STACK CFI 66148 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6614c 48 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 66194 258 .cfa: sp 0 + .ra: x30
+STACK CFI 66198 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 6619c .cfa: x29 96 +
+STACK CFI 661a0 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 661a8 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 663e0 x19: x19 x20: x20
+STACK CFI 663e4 x21: x21 x22: x22
+STACK CFI 663e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 14 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 5c x19: x19 x20: x20
+STACK CFI 60 x21: x21 x22: x22
+STACK CFI 64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 663ec cc .cfa: sp 0 + .ra: x30
+STACK CFI 663f0 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 663f4 .cfa: x29 192 +
+STACK CFI 663fc x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^
+STACK CFI 664ac x19: x19 x20: x20
+STACK CFI 664b0 x21: x21 x22: x22
+STACK CFI 664b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 10 .cfa: x29 384 +
+STACK CFI 14 x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 38 x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI b8 x19: x19 x20: x20
+STACK CFI bc x21: x21 x22: x22
+STACK CFI c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 664b8 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 664bc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 664c0 .cfa: x29 64 +
+STACK CFI 664c8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 664d0 x23: .cfa -16 + ^
+STACK CFI 66544 x21: x21 x22: x22
+STACK CFI 66550 x23: x23
+STACK CFI 66554 x19: x19 x20: x20
+STACK CFI 66558 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 160 x23: x23
+STACK CFI 164 x19: x19 x20: x20
+STACK CFI 168 x21: x21 x22: x22
+STACK CFI 16c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 18 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 15c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 1c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 14c x23: x23
+STACK CFI 150 x19: x19 x20: x20
+STACK CFI 154 x21: x21 x22: x22
+STACK CFI 158 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6655c f0 .cfa: sp 0 + .ra: x30
+STACK CFI 66560 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 66564 .cfa: x29 272 +
+STACK CFI 66568 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 6657c x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^
+STACK CFI 66634 x23: x23
+STACK CFI 66640 x21: x21 x22: x22
+STACK CFI 66644 x19: x19 x20: x20
+STACK CFI 66648 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6664c 88 .cfa: sp 0 + .ra: x30
+STACK CFI 66650 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 66654 .cfa: x29 32 +
+STACK CFI 66658 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 666cc x19: x19 x20: x20
+STACK CFI 666d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 666d4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 666e8 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 666f4 40 .cfa: sp 0 + .ra: x30
+STACK CFI 666f8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 66710 .cfa: x29 32 +
+STACK CFI 66730 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 66734 4c .cfa: sp 0 + .ra: x30
+STACK CFI 66738 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 66744 .cfa: x29 48 +
+STACK CFI 6677c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 66780 44 .cfa: sp 0 + .ra: x30
+STACK CFI 66784 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 66788 .cfa: x29 32 +
+STACK CFI 6678c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 667b4 x19: x19 x20: x20
+STACK CFI 667b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 667c4 220 .cfa: sp 0 + .ra: x30
+STACK CFI 667c8 .cfa: sp 544 +
+STACK CFI 667d0 .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 667d4 .cfa: x29 608 +
+STACK CFI 667e0 x19: .cfa -592 + ^ x20: .cfa -584 + ^ x21: .cfa -576 + ^ x22: .cfa -568 + ^ x23: .cfa -560 + ^
+STACK CFI 669d0 x23: x23
+STACK CFI 669d4 x19: x19 x20: x20
+STACK CFI 669d8 x21: x21 x22: x22
+STACK CFI 669dc .cfa: sp 544 + .ra: .ra x29: x29
+STACK CFI 669e0 .cfa: sp 480 +
+STACK CFI INIT 669e4 678 .cfa: sp 0 + .ra: x30
+STACK CFI 669e8 .cfa: sp 1120 +
+STACK CFI 669f0 .cfa: sp 1248 + .ra: .cfa -1240 + ^ x29: .cfa -1248 + ^
+STACK CFI 669f4 .cfa: x29 1248 +
+STACK CFI 669fc v8: .cfa -1152 + ^ v9: .cfa -1144 + ^ x21: .cfa -1216 + ^ x22: .cfa -1208 + ^
+STACK CFI 66a08 x19: .cfa -1232 + ^ x20: .cfa -1224 + ^
+STACK CFI 66a24 v10: .cfa -1136 + ^ x23: .cfa -1200 + ^ x24: .cfa -1192 + ^ x25: .cfa -1184 + ^ x26: .cfa -1176 + ^ x27: .cfa -1168 + ^ x28: .cfa -1160 + ^
+STACK CFI 67038 v8: v8 v9: v9
+STACK CFI 6703c x19: x19 x20: x20
+STACK CFI 67040 x21: x21 x22: x22
+STACK CFI 67044 x23: x23 x24: x24
+STACK CFI 67048 x25: x25 x26: x26
+STACK CFI 6704c x27: x27 x28: x28
+STACK CFI 67050 v10: v10
+STACK CFI 67054 .cfa: sp 1120 + .ra: .ra x29: x29
+STACK CFI 67058 .cfa: sp 992 +
+STACK CFI INIT 6705c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 67064 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6706c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 67074 64 .cfa: sp 0 + .ra: x30
+STACK CFI 67078 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6707c .cfa: x29 32 +
+STACK CFI 670d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 670d8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 670dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 670e8 .cfa: x29 48 +
+STACK CFI 670f0 x19: .cfa -32 + ^
+STACK CFI 67110 x19: x19
+STACK CFI 67114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 67120 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 67124 x19: x19
+STACK CFI 67128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6712c b4 .cfa: sp 0 + .ra: x30
+STACK CFI 67130 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 67134 .cfa: x29 80 +
+STACK CFI 67144 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 671cc x19: x19 x20: x20
+STACK CFI 671d0 x21: x21 x22: x22
+STACK CFI 671d4 x23: x23 x24: x24
+STACK CFI 671d8 x25: x25
+STACK CFI 671dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 671e0 90 .cfa: sp 0 + .ra: x30
+STACK CFI 671e4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 671ec .cfa: x29 64 +
+STACK CFI 671f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 67204 x23: .cfa -16 + ^
+STACK CFI 67214 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 67258 x23: x23
+STACK CFI 67264 x19: x19 x20: x20
+STACK CFI 67268 x21: x21 x22: x22
+STACK CFI 6726c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 28 x19: x19
+STACK CFI 2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 35680 24 .cfa: sp 0 + .ra: x30
+STACK CFI 35684 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 35688 .cfa: x29 32 +
+STACK CFI 3568c x19: .cfa -16 + ^
+STACK CFI 3569c x19: x19
+STACK CFI 356a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bd0c fc .cfa: sp 0 + .ra: x30
+STACK CFI 4bd10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bd18 .cfa: x29 32 +
+STACK CFI 4bd1c x19: .cfa -16 + ^
+STACK CFI 4be00 x19: x19
+STACK CFI 4be04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67270 84 .cfa: sp 0 + .ra: x30
+STACK CFI 67274 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 67278 .cfa: x29 48 +
+STACK CFI 6727c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 672ec x19: x19 x20: x20
+STACK CFI 672f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 672f4 190 .cfa: sp 0 + .ra: x30
+STACK CFI 672f8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 672fc .cfa: x29 96 +
+STACK CFI 67300 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 67314 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^
+STACK CFI 6746c x21: x21 x22: x22
+STACK CFI 67470 x19: x19 x20: x20
+STACK CFI 67474 x23: x23 x24: x24
+STACK CFI 67478 x25: x25 x26: x26
+STACK CFI 6747c x27: x27
+STACK CFI 67480 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67484 2b4 .cfa: sp 0 + .ra: x30
+STACK CFI 67488 .cfa: sp 864 +
+STACK CFI 6748c .cfa: sp 976 + .ra: .cfa -968 + ^ x29: .cfa -976 + ^
+STACK CFI 67490 .cfa: x29 976 +
+STACK CFI 67498 x19: .cfa -960 + ^ x20: .cfa -952 + ^ x23: .cfa -928 + ^ x24: .cfa -920 + ^
+STACK CFI 674b8 v8: .cfa -880 + ^ x21: .cfa -944 + ^ x22: .cfa -936 + ^ x25: .cfa -912 + ^ x26: .cfa -904 + ^ x27: .cfa -896 + ^ x28: .cfa -888 + ^
+STACK CFI 67718 x19: x19 x20: x20
+STACK CFI 6771c x21: x21 x22: x22
+STACK CFI 67720 x23: x23 x24: x24
+STACK CFI 67724 x25: x25 x26: x26
+STACK CFI 67728 x27: x27 x28: x28
+STACK CFI 6772c v8: v8
+STACK CFI 67730 .cfa: sp 864 + .ra: .ra x29: x29
+STACK CFI 67734 .cfa: sp 752 +
+STACK CFI INIT 67738 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6773c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 67744 .cfa: x29 32 +
+STACK CFI 67748 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 67768 x19: x19 x20: x20
+STACK CFI 6776c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 67770 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 67790 x19: x19 x20: x20
+STACK CFI 67794 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67798 1ac .cfa: sp 0 + .ra: x30
+STACK CFI 6779c .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 677a0 .cfa: x29 416 +
+STACK CFI 677a8 x19: .cfa -400 + ^ x20: .cfa -392 + ^ x25: .cfa -352 + ^ x26: .cfa -344 + ^
+STACK CFI 677c0 x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x27: .cfa -336 + ^
+STACK CFI 6792c x27: x27
+STACK CFI 67930 x19: x19 x20: x20
+STACK CFI 67934 x21: x21 x22: x22
+STACK CFI 67938 x23: x23 x24: x24
+STACK CFI 6793c x25: x25 x26: x26
+STACK CFI 67940 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67944 120 .cfa: sp 0 + .ra: x30
+STACK CFI 67948 .cfa: sp 768 +
+STACK CFI 67954 .cfa: sp 832 + .ra: .cfa -824 + ^ x29: .cfa -832 + ^
+STACK CFI 67958 .cfa: x29 832 +
+STACK CFI 67960 x19: .cfa -816 + ^ x20: .cfa -808 + ^ x23: .cfa -784 + ^
+STACK CFI 67968 x21: .cfa -800 + ^ x22: .cfa -792 + ^
+STACK CFI 67a50 x23: x23
+STACK CFI 67a54 x19: x19 x20: x20
+STACK CFI 67a58 x21: x21 x22: x22
+STACK CFI 67a5c .cfa: sp 768 + .ra: .ra x29: x29
+STACK CFI 67a60 .cfa: sp 704 +
+STACK CFI INIT 430ec 38 .cfa: sp 0 + .ra: x30
+STACK CFI 430f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 430fc .cfa: x29 32 +
+STACK CFI 43100 x19: .cfa -16 + ^
+STACK CFI 4311c x19: x19
+STACK CFI 43120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24844 40 .cfa: sp 0 + .ra: x30
+STACK CFI 24848 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24854 .cfa: x29 32 +
+STACK CFI 24858 x19: .cfa -16 + ^
+STACK CFI 2487c x19: x19
+STACK CFI 24880 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bd0c fc .cfa: sp 0 + .ra: x30
+STACK CFI 4bd10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bd18 .cfa: x29 32 +
+STACK CFI 4bd1c x19: .cfa -16 + ^
+STACK CFI 4be00 x19: x19
+STACK CFI 4be04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 32c34 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 67a64 70 .cfa: sp 0 + .ra: x30
+STACK CFI 67a68 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 67a6c .cfa: x29 48 +
+STACK CFI 67a70 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 67a78 x21: .cfa -16 + ^
+STACK CFI 67ac8 x19: x19 x20: x20
+STACK CFI 67acc x21: x21
+STACK CFI 67ad0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67ad4 fc .cfa: sp 0 + .ra: x30
+STACK CFI 67ad8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 67adc .cfa: x29 64 +
+STACK CFI 67ae0 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 67af8 x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 67b6c x23: x23
+STACK CFI 67b7c x19: x19 x20: x20
+STACK CFI 67b80 x21: x21 x22: x22
+STACK CFI 67b84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 67b88 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI 67bac x21: x21 x22: x22
+STACK CFI 67bb0 x19: x19 x20: x20
+STACK CFI 67bb4 x23: x23
+STACK CFI 67bb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 67bbc .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI 67bc0 x19: x19 x20: x20
+STACK CFI 67bc4 x21: x21 x22: x22
+STACK CFI 67bc8 x23: x23
+STACK CFI 67bcc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67bd0 11c .cfa: sp 0 + .ra: x30
+STACK CFI 67bd4 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 67bdc .cfa: x29 320 +
+STACK CFI 67be4 x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^
+STACK CFI 67ce0 x19: x19 x20: x20
+STACK CFI 67ce4 x21: x21 x22: x22
+STACK CFI 67ce8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67cec 5c .cfa: sp 0 + .ra: x30
+STACK CFI 67cf0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 67cf4 .cfa: x29 32 +
+STACK CFI 67cf8 x19: .cfa -16 + ^
+STACK CFI 67d40 x19: x19
+STACK CFI 67d44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67d48 4c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 67d94 84 .cfa: sp 0 + .ra: x30
+STACK CFI 67d98 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 67d9c .cfa: x29 64 +
+STACK CFI 67da4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 67e0c x19: x19 x20: x20
+STACK CFI 67e10 x21: x21 x22: x22
+STACK CFI 67e14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67e18 64 .cfa: sp 0 + .ra: x30
+STACK CFI 67e1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 67e20 .cfa: x29 32 +
+STACK CFI 67e24 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 67e64 x19: x19 x20: x20
+STACK CFI 67e68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 67e6c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 67e74 x19: x19 x20: x20
+STACK CFI 67e78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 67e7c 1bc .cfa: sp 0 + .ra: x30
+STACK CFI 67e80 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 67e84 .cfa: x29 368 +
+STACK CFI 67e90 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^
+STACK CFI 67eb0 x23: .cfa -320 + ^ x24: .cfa -312 + ^ x27: .cfa -288 + ^
+STACK CFI 68020 x27: x27
+STACK CFI 68024 x19: x19 x20: x20
+STACK CFI 68028 x21: x21 x22: x22
+STACK CFI 6802c x23: x23 x24: x24
+STACK CFI 68030 x25: x25 x26: x26
+STACK CFI 68034 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68038 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 6803c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 68040 .cfa: x29 80 +
+STACK CFI 6804c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 6811c x21: x21 x22: x22
+STACK CFI 68120 x19: x19 x20: x20
+STACK CFI 68124 x23: x23 x24: x24
+STACK CFI 68128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6812c 148 .cfa: sp 0 + .ra: x30
+STACK CFI 68130 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 68134 .cfa: x29 96 +
+STACK CFI 68144 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 68260 x19: x19 x20: x20
+STACK CFI 68264 x21: x21 x22: x22
+STACK CFI 68268 x23: x23 x24: x24
+STACK CFI 6826c x25: x25
+STACK CFI 68270 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68274 100 .cfa: sp 0 + .ra: x30
+STACK CFI 68278 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6827c .cfa: x29 64 +
+STACK CFI 68280 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 68294 x21: .cfa -32 + ^
+STACK CFI 68368 x21: x21
+STACK CFI 6836c x19: x19 x20: x20
+STACK CFI 68370 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68374 148 .cfa: sp 0 + .ra: x30
+STACK CFI 68378 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 6837c .cfa: x29 96 +
+STACK CFI 6838c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 684a8 x19: x19 x20: x20
+STACK CFI 684ac x21: x21 x22: x22
+STACK CFI 684b0 x23: x23 x24: x24
+STACK CFI 684b4 x25: x25
+STACK CFI 684b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 684bc 58c .cfa: sp 0 + .ra: x30
+STACK CFI 684c0 .cfa: sp 464 + .ra: .cfa -456 + ^ x29: .cfa -464 + ^
+STACK CFI 684c8 .cfa: x29 464 +
+STACK CFI 684e8 v10: .cfa -352 + ^ v11: .cfa -344 + ^ v12: .cfa -336 + ^ v13: .cfa -328 + ^ v8: .cfa -368 + ^ v9: .cfa -360 + ^ x19: .cfa -448 + ^ x20: .cfa -440 + ^ x21: .cfa -432 + ^ x22: .cfa -424 + ^ x23: .cfa -416 + ^ x24: .cfa -408 + ^ x25: .cfa -400 + ^ x26: .cfa -392 + ^ x27: .cfa -384 + ^ x28: .cfa -376 + ^
+STACK CFI 68a24 x19: x19 x20: x20
+STACK CFI 68a28 v8: v8 v9: v9
+STACK CFI 68a2c x21: x21 x22: x22
+STACK CFI 68a30 v10: v10 v11: v11
+STACK CFI 68a34 x23: x23 x24: x24
+STACK CFI 68a38 v12: v12 v13: v13
+STACK CFI 68a3c x25: x25 x26: x26
+STACK CFI 68a40 x27: x27 x28: x28
+STACK CFI 68a44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68a48 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 68a50 48 .cfa: sp 0 + .ra: x30
+STACK CFI 68a54 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 68a60 .cfa: x29 32 +
+STACK CFI 68a64 x19: .cfa -16 + ^
+STACK CFI 68a90 x19: x19
+STACK CFI 68a94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68a98 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 68a9c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 68aa4 .cfa: x29 96 +
+STACK CFI 68aa8 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 68abc x19: .cfa -80 + ^ x20: .cfa -72 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 68b24 x19: x19 x20: x20
+STACK CFI 68b28 x21: x21 x22: x22
+STACK CFI 68b2c x23: x23 x24: x24
+STACK CFI 68b30 x25: x25 x26: x26
+STACK CFI 68b34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 389d0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 389d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 389d8 .cfa: x29 32 +
+STACK CFI 389dc x19: .cfa -16 + ^
+STACK CFI 389ec x19: x19
+STACK CFI 389f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68b38 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 68b3c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 68b44 .cfa: x29 80 +
+STACK CFI 68b48 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 68b64 x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 68c08 x19: x19 x20: x20
+STACK CFI 68c0c x21: x21 x22: x22
+STACK CFI 68c10 x23: x23 x24: x24
+STACK CFI 68c14 x25: x25
+STACK CFI 68c18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68c1c 78 .cfa: sp 0 + .ra: x30
+STACK CFI 68c20 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 68c24 .cfa: x29 48 +
+STACK CFI 68c2c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 68c88 x21: x21
+STACK CFI 68c8c x19: x19 x20: x20
+STACK CFI 68c90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bd0c fc .cfa: sp 0 + .ra: x30
+STACK CFI 4bd10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bd18 .cfa: x29 32 +
+STACK CFI 4bd1c x19: .cfa -16 + ^
+STACK CFI 4be00 x19: x19
+STACK CFI 4be04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68c94 2dc .cfa: sp 0 + .ra: x30
+STACK CFI 68c98 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 68c9c .cfa: x29 384 +
+STACK CFI 68cb0 x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^ x27: .cfa -304 + ^ x28: .cfa -296 + ^
+STACK CFI 68f58 x19: x19 x20: x20
+STACK CFI 68f5c x21: x21 x22: x22
+STACK CFI 68f60 x23: x23 x24: x24
+STACK CFI 68f64 x25: x25 x26: x26
+STACK CFI 68f68 x27: x27 x28: x28
+STACK CFI 68f6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68f70 30 .cfa: sp 0 + .ra: x30
+STACK CFI 68f74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 68f78 .cfa: x29 32 +
+STACK CFI 68f7c x19: .cfa -16 + ^
+STACK CFI 68f98 x19: x19
+STACK CFI 68f9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 68fa0 110 .cfa: sp 0 + .ra: x30
+STACK CFI 68fa4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 68fa8 .cfa: x29 80 +
+STACK CFI 68fac x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 68fbc x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 6909c x21: x21 x22: x22
+STACK CFI 690a0 x19: x19 x20: x20
+STACK CFI 690a4 x23: x23 x24: x24
+STACK CFI 690a8 x25: x25 x26: x26
+STACK CFI 690ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 690b0 240 .cfa: sp 0 + .ra: x30
+STACK CFI 690b4 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 690bc .cfa: x29 384 +
+STACK CFI 690d4 v8: .cfa -288 + ^ x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^ x27: .cfa -304 + ^ x28: .cfa -296 + ^
+STACK CFI 692d4 x19: x19 x20: x20
+STACK CFI 692d8 x21: x21 x22: x22
+STACK CFI 692dc x23: x23 x24: x24
+STACK CFI 692e0 x25: x25 x26: x26
+STACK CFI 692e4 x27: x27 x28: x28
+STACK CFI 692e8 v8: v8
+STACK CFI 692ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 692f0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 692f4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 692f8 .cfa: x29 80 +
+STACK CFI 69304 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 69434 x19: x19 x20: x20
+STACK CFI 69438 x21: x21 x22: x22
+STACK CFI 6943c x23: x23 x24: x24
+STACK CFI 69440 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 69444 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 69448 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 6944c .cfa: x29 96 +
+STACK CFI 6945c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 695d4 x19: x19 x20: x20
+STACK CFI 695d8 x21: x21 x22: x22
+STACK CFI 695dc x23: x23 x24: x24
+STACK CFI 695e0 x25: x25 x26: x26
+STACK CFI 695e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 695e8 44 .cfa: sp 0 + .ra: x30
+STACK CFI 695ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 695f4 .cfa: x29 32 +
+STACK CFI 695f8 x19: .cfa -16 + ^
+STACK CFI 69624 x19: x19
+STACK CFI 69628 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 20648 44 .cfa: sp 0 + .ra: x30
+STACK CFI 2064c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 20654 .cfa: x29 32 +
+STACK CFI 20658 x19: .cfa -16 + ^
+STACK CFI 20684 x19: x19
+STACK CFI 20688 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6962c 78 .cfa: sp 0 + .ra: x30
+STACK CFI 69630 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 69634 .cfa: x29 32 +
+STACK CFI 69638 x19: .cfa -16 + ^
+STACK CFI 6969c x19: x19
+STACK CFI 696a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 696a4 50 .cfa: sp 0 + .ra: x30
+STACK CFI 696a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 696b4 .cfa: x29 32 +
+STACK CFI 696b8 x19: .cfa -16 + ^
+STACK CFI 696ec x19: x19
+STACK CFI 696f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 696f4 184 .cfa: sp 0 + .ra: x30
+STACK CFI 696f8 .cfa: sp 848 +
+STACK CFI 696fc .cfa: sp 928 + .ra: .cfa -920 + ^ x29: .cfa -928 + ^
+STACK CFI 69700 .cfa: x29 928 +
+STACK CFI 69708 x19: .cfa -912 + ^ x20: .cfa -904 + ^ x21: .cfa -896 + ^ x22: .cfa -888 + ^
+STACK CFI 69718 x23: .cfa -880 + ^ x24: .cfa -872 + ^
+STACK CFI 69738 x25: .cfa -864 + ^ x26: .cfa -856 + ^
+STACK CFI 69860 x19: x19 x20: x20
+STACK CFI 69864 x21: x21 x22: x22
+STACK CFI 69868 x23: x23 x24: x24
+STACK CFI 6986c x25: x25 x26: x26
+STACK CFI 69870 .cfa: sp 848 + .ra: .ra x29: x29
+STACK CFI 69874 .cfa: sp 768 +
+STACK CFI INIT 69878 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6987c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 69880 .cfa: x29 32 +
+STACK CFI 69884 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 698b8 x19: x19 x20: x20
+STACK CFI 698bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 698c0 ec .cfa: sp 0 + .ra: x30
+STACK CFI 698c4 .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 698cc .cfa: x29 272 +
+STACK CFI 698d0 x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 698e4 x23: .cfa -224 + ^
+STACK CFI 698f0 x21: .cfa -240 + ^ x22: .cfa -232 + ^
+STACK CFI 6999c x23: x23
+STACK CFI 699a0 x19: x19 x20: x20
+STACK CFI 699a4 x21: x21 x22: x22
+STACK CFI 699a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 4bd0c fc .cfa: sp 0 + .ra: x30
+STACK CFI 4bd10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 4bd18 .cfa: x29 32 +
+STACK CFI 4bd1c x19: .cfa -16 + ^
+STACK CFI 4be00 x19: x19
+STACK CFI 4be04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2068c 16c .cfa: sp 0 + .ra: x30
+STACK CFI 20690 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 20694 .cfa: x29 112 +
+STACK CFI 20698 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 206ac x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^
+STACK CFI 207e4 x25: x25
+STACK CFI 207e8 x19: x19 x20: x20
+STACK CFI 207ec x21: x21 x22: x22
+STACK CFI 207f0 x23: x23 x24: x24
+STACK CFI 207f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 207f8 5c .cfa: sp 0 + .ra: x30
+STACK CFI 207fc .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 20800 .cfa: x29 304 +
+STACK CFI 20808 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^
+STACK CFI 20848 x19: x19 x20: x20
+STACK CFI 2084c x21: x21
+STACK CFI 20850 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 164 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 528 +
+STACK CFI c .cfa: sp 608 + .ra: .cfa -600 + ^ x29: .cfa -608 + ^
+STACK CFI 10 .cfa: x29 608 +
+STACK CFI 14 x19: .cfa -592 + ^ x20: .cfa -584 + ^
+STACK CFI 1c x25: .cfa -544 + ^ x26: .cfa -536 + ^
+STACK CFI 30 x21: .cfa -576 + ^ x22: .cfa -568 + ^ x23: .cfa -560 + ^ x24: .cfa -552 + ^
+STACK CFI 14c x19: x19 x20: x20
+STACK CFI 150 x21: x21 x22: x22
+STACK CFI 154 x23: x23 x24: x24
+STACK CFI 158 x25: x25 x26: x26
+STACK CFI 15c .cfa: sp 528 + .ra: .ra x29: x29
+STACK CFI 160 .cfa: sp 448 +
+STACK CFI INIT 0 1a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 1c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^
+STACK CFI 190 x19: x19 x20: x20
+STACK CFI 194 x21: x21 x22: x22
+STACK CFI 198 x23: x23 x24: x24
+STACK CFI 19c x25: x25 x26: x26
+STACK CFI 1a0 x27: x27
+STACK CFI 1a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 699ac 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 699c4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 699ec 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 69a00 120 .cfa: sp 0 + .ra: x30
+STACK CFI 69a04 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 69a08 .cfa: x29 80 +
+STACK CFI 69a0c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 69a18 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 69b14 x19: x19 x20: x20
+STACK CFI 69b18 x21: x21 x22: x22
+STACK CFI 69b1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 69b20 2c8 .cfa: sp 0 + .ra: x30
+STACK CFI 69b24 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 69b28 .cfa: x29 224 +
+STACK CFI 69b38 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^
+STACK CFI 69dd4 x25: x25
+STACK CFI 69dd8 x19: x19 x20: x20
+STACK CFI 69ddc x21: x21 x22: x22
+STACK CFI 69de0 x23: x23 x24: x24
+STACK CFI 69de4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 69de8 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 69e10 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 69e14 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 69e18 .cfa: x29 64 +
+STACK CFI 69e24 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 69eb8 x19: x19 x20: x20
+STACK CFI 69ebc x21: x21 x22: x22
+STACK CFI 69ec0 x23: x23
+STACK CFI 69ec4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 38 x19: x19 x20: x20
+STACK CFI 3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 3c x19: x19 x20: x20
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 69ec8 17c .cfa: sp 0 + .ra: x30
+STACK CFI 69ecc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 69ed0 .cfa: x29 64 +
+STACK CFI 69ed4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 69edc x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 6a038 x21: x21 x22: x22
+STACK CFI 6a03c x19: x19 x20: x20
+STACK CFI 6a040 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a044 54 .cfa: sp 0 + .ra: x30
+STACK CFI 6a048 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6a054 .cfa: x29 32 +
+STACK CFI 6a094 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a098 124 .cfa: sp 0 + .ra: x30
+STACK CFI 6a09c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 6a0a0 .cfa: x29 112 +
+STACK CFI 6a0ac x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 6a1ac x23: x23
+STACK CFI 6a1b0 x19: x19 x20: x20
+STACK CFI 6a1b4 x21: x21 x22: x22
+STACK CFI 6a1b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a1bc 4c8 .cfa: sp 0 + .ra: x30
+STACK CFI 6a1c0 .cfa: sp 1760 +
+STACK CFI 6a1c4 .cfa: sp 1904 + .ra: .cfa -1896 + ^ x29: .cfa -1904 + ^
+STACK CFI 6a1c8 .cfa: x29 1904 +
+STACK CFI 6a1e8 v10: .cfa -1792 + ^ v11: .cfa -1784 + ^ v12: .cfa -1776 + ^ v8: .cfa -1808 + ^ v9: .cfa -1800 + ^ x19: .cfa -1888 + ^ x20: .cfa -1880 + ^ x21: .cfa -1872 + ^ x22: .cfa -1864 + ^ x23: .cfa -1856 + ^ x24: .cfa -1848 + ^ x25: .cfa -1840 + ^ x26: .cfa -1832 + ^ x27: .cfa -1824 + ^ x28: .cfa -1816 + ^
+STACK CFI 6a65c v8: v8 v9: v9
+STACK CFI 6a660 x19: x19 x20: x20
+STACK CFI 6a664 v10: v10 v11: v11
+STACK CFI 6a668 x21: x21 x22: x22
+STACK CFI 6a66c x23: x23 x24: x24
+STACK CFI 6a670 x25: x25 x26: x26
+STACK CFI 6a674 x27: x27 x28: x28
+STACK CFI 6a678 v12: v12
+STACK CFI 6a67c .cfa: sp 1760 + .ra: .ra x29: x29
+STACK CFI 6a680 .cfa: sp 1616 +
+STACK CFI INIT 6a684 f4 .cfa: sp 0 + .ra: x30
+STACK CFI 6a688 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 6a68c .cfa: x29 128 +
+STACK CFI 6a69c x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^
+STACK CFI 6a764 x19: x19 x20: x20
+STACK CFI 6a768 x21: x21 x22: x22
+STACK CFI 6a76c x23: x23 x24: x24
+STACK CFI 6a770 x25: x25
+STACK CFI 6a774 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a778 130 .cfa: sp 0 + .ra: x30
+STACK CFI 6a77c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6a780 .cfa: x29 80 +
+STACK CFI 6a78c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 6a870 x19: x19 x20: x20
+STACK CFI 6a874 x21: x21 x22: x22
+STACK CFI 6a878 x23: x23
+STACK CFI 6a87c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6a880 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI 6a898 x23: x23
+STACK CFI 6a89c x19: x19 x20: x20
+STACK CFI 6a8a0 x21: x21 x22: x22
+STACK CFI 6a8a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a8a8 130 .cfa: sp 0 + .ra: x30
+STACK CFI 6a8ac .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 6a8b0 .cfa: x29 96 +
+STACK CFI 6a8c0 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 6a9c4 x19: x19 x20: x20
+STACK CFI 6a9c8 x21: x21 x22: x22
+STACK CFI 6a9cc x23: x23 x24: x24
+STACK CFI 6a9d0 x25: x25
+STACK CFI 6a9d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6a9d8 d08 .cfa: sp 0 + .ra: x30
+STACK CFI 6a9dc .cfa: sp 1232 +
+STACK CFI 6a9e4 .cfa: sp 1392 + .ra: .cfa -1384 + ^ x29: .cfa -1392 + ^
+STACK CFI 6a9e8 .cfa: x29 1392 +
+STACK CFI 6a9f0 v8: .cfa -1296 + ^ v9: .cfa -1288 + ^ x21: .cfa -1360 + ^ x22: .cfa -1352 + ^
+STACK CFI 6aa00 v10: .cfa -1280 + ^ v11: .cfa -1272 + ^ x23: .cfa -1344 + ^ x24: .cfa -1336 + ^
+STACK CFI 6aa24 v12: .cfa -1264 + ^ v13: .cfa -1256 + ^ v14: .cfa -1248 + ^ v15: .cfa -1240 + ^ x25: .cfa -1328 + ^ x26: .cfa -1320 + ^
+STACK CFI 6aa34 x19: .cfa -1376 + ^ x20: .cfa -1368 + ^ x27: .cfa -1312 + ^ x28: .cfa -1304 + ^
+STACK CFI 6b6b4 x19: x19 x20: x20
+STACK CFI 6b6b8 x21: x21 x22: x22
+STACK CFI 6b6bc v8: v8 v9: v9
+STACK CFI 6b6c0 x23: x23 x24: x24
+STACK CFI 6b6c4 v10: v10 v11: v11
+STACK CFI 6b6c8 x25: x25 x26: x26
+STACK CFI 6b6cc v12: v12 v13: v13
+STACK CFI 6b6d0 x27: x27 x28: x28
+STACK CFI 6b6d4 v14: v14 v15: v15
+STACK CFI 6b6d8 .cfa: sp 1232 + .ra: .ra x29: x29
+STACK CFI 6b6dc .cfa: sp 1072 +
+STACK CFI INIT 6b6e0 148 .cfa: sp 0 + .ra: x30
+STACK CFI 6b6e4 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 6b6e8 .cfa: x29 416 +
+STACK CFI 6b6ec x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 6b6fc x19: .cfa -400 + ^ x20: .cfa -392 + ^ x25: .cfa -352 + ^ x26: .cfa -344 + ^ x27: .cfa -336 + ^
+STACK CFI 6b718 x23: .cfa -368 + ^ x24: .cfa -360 + ^
+STACK CFI 6b80c x27: x27
+STACK CFI 6b814 x19: x19 x20: x20
+STACK CFI 6b818 x21: x21 x22: x22
+STACK CFI 6b81c x23: x23 x24: x24
+STACK CFI 6b820 x25: x25 x26: x26
+STACK CFI 6b824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6b828 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6b82c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6b838 .cfa: x29 80 +
+STACK CFI 6b83c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 6b860 x21: .cfa -48 + ^
+STACK CFI 6b890 x21: x21
+STACK CFI 6b894 x19: x19 x20: x20
+STACK CFI 6b898 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6b89c 7c .cfa: sp 0 + .ra: x30
+STACK CFI 6b8a0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6b8ac .cfa: x29 80 +
+STACK CFI 6b8b0 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 6b8dc x21: .cfa -48 + ^
+STACK CFI 6b90c x21: x21
+STACK CFI 6b910 x19: x19 x20: x20
+STACK CFI 6b914 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6b918 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6b944 34 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6b978 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6b9b4 108 .cfa: sp 0 + .ra: x30
+STACK CFI 6b9b8 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 6b9bc .cfa: x29 416 +
+STACK CFI 6b9c0 x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 6b9c8 x23: .cfa -368 + ^
+STACK CFI 6b9d4 x19: .cfa -400 + ^ x20: .cfa -392 + ^
+STACK CFI 6baa8 x23: x23
+STACK CFI 6bab0 x19: x19 x20: x20
+STACK CFI 6bab4 x21: x21 x22: x22
+STACK CFI 6bab8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI c x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6babc 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bad8 58 .cfa: sp 0 + .ra: x30
+STACK CFI 6badc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bae8 .cfa: x29 32 +
+STACK CFI 6baec x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6bb28 x19: x19 x20: x20
+STACK CFI 6bb2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bb30 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bb3c 7c .cfa: sp 0 + .ra: x30
+STACK CFI 6bb40 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bb48 .cfa: x29 32 +
+STACK CFI 6bb4c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6bbb0 x19: x19 x20: x20
+STACK CFI 6bbb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bbb8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bbc8 80 .cfa: sp 0 + .ra: x30
+STACK CFI 6bbcc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6bbd4 .cfa: x29 48 +
+STACK CFI 6bbdc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 6bc3c x21: x21
+STACK CFI 6bc40 x19: x19 x20: x20
+STACK CFI 6bc44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bc48 ac .cfa: sp 0 + .ra: x30
+STACK CFI 6bc4c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bc54 .cfa: x29 32 +
+STACK CFI 6bc58 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6bcec x19: x19 x20: x20
+STACK CFI 6bcf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bcf4 34 .cfa: sp 0 + .ra: x30
+STACK CFI 6bcf8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bcfc .cfa: x29 32 +
+STACK CFI 6bd00 x19: .cfa -16 + ^
+STACK CFI 6bd20 x19: x19
+STACK CFI 6bd24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bd28 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 7c x19: x19 x20: x20
+STACK CFI 80 x21: x21
+STACK CFI 84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bd30 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI c .cfa: x29 96 +
+STACK CFI 10 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 20 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 x21: x21 x22: x22
+STACK CFI 9c x23: x23 x24: x24
+STACK CFI a0 x25: x25 x26: x26
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bd44 9c .cfa: sp 0 + .ra: x30
+STACK CFI 6bd48 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 6bd50 .cfa: x29 96 +
+STACK CFI 6bd60 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 6bdcc x19: x19 x20: x20
+STACK CFI 6bdd0 x21: x21 x22: x22
+STACK CFI 6bdd4 x23: x23 x24: x24
+STACK CFI 6bdd8 x25: x25
+STACK CFI 6bddc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 10 .cfa: x29 112 +
+STACK CFI 14 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 28 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^
+STACK CFI 11c x23: x23
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bde0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 6bde4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 6bdf0 .cfa: x29 112 +
+STACK CFI 6bdf4 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 6be08 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^
+STACK CFI 6befc x23: x23
+STACK CFI 6bf00 x19: x19 x20: x20
+STACK CFI 6bf04 x21: x21 x22: x22
+STACK CFI 6bf08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 51a2c 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bf0c 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bf48 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6bf54 1c .cfa: sp 0 + .ra: x30
+STACK CFI 6bf58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6bf5c .cfa: x29 16 +
+STACK CFI 6bf6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bf70 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6bf74 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6bf78 .cfa: x29 16 +
+STACK CFI 6bf90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bf94 40 .cfa: sp 0 + .ra: x30
+STACK CFI 6bf98 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bf9c .cfa: x29 32 +
+STACK CFI 6bfa0 x19: .cfa -16 + ^
+STACK CFI 6bfcc x19: x19
+STACK CFI 6bfd0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6bfd4 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6bfd8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6bfdc .cfa: x29 32 +
+STACK CFI 6bfe0 x19: .cfa -16 + ^
+STACK CFI 6c014 x19: x19
+STACK CFI 6c018 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c01c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 6c020 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6c024 .cfa: x29 32 +
+STACK CFI 6c028 x19: .cfa -16 + ^
+STACK CFI 6c06c x19: x19
+STACK CFI 6c070 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6c074 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6c080 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6c08c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6c098 58 .cfa: sp 0 + .ra: x30
+STACK CFI 6c09c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6c0a0 .cfa: x29 16 +
+STACK CFI 6c0ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c0f0 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6c0f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6c0f8 .cfa: x29 32 +
+STACK CFI 6c0fc x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6c120 x19: x19 x20: x20
+STACK CFI 6c124 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6c12c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 6c130 x19: x19 x20: x20
+STACK CFI 6c134 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c138 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6c13c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6c140 .cfa: x29 16 +
+STACK CFI 6c158 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c15c 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6c160 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6c164 .cfa: x29 48 +
+STACK CFI 6c16c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 6c1b0 x19: x19 x20: x20
+STACK CFI 6c1b4 x21: x21 x22: x22
+STACK CFI 6c1b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c1bc c4 .cfa: sp 0 + .ra: x30
+STACK CFI 6c1c0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6c1c4 .cfa: x29 80 +
+STACK CFI 6c1d4 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 6c26c x19: x19 x20: x20
+STACK CFI 6c270 x21: x21 x22: x22
+STACK CFI 6c274 x23: x23 x24: x24
+STACK CFI 6c278 x25: x25
+STACK CFI 6c27c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c280 44 .cfa: sp 0 + .ra: x30
+STACK CFI 6c284 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6c28c .cfa: x29 32 +
+STACK CFI 6c290 x19: .cfa -16 + ^
+STACK CFI 6c2bc x19: x19
+STACK CFI 6c2c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c2c4 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6c2c8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6c2d4 .cfa: x29 16 +
+STACK CFI 6c2e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6c2ec 1e8 .cfa: sp 0 + .ra: x30
+STACK CFI 6c2f0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 6c2f4 .cfa: x29 128 +
+STACK CFI 6c310 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 6c31c v8: .cfa -32 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 6c4b8 x19: x19 x20: x20
+STACK CFI 6c4bc x21: x21 x22: x22
+STACK CFI 6c4c0 x23: x23 x24: x24
+STACK CFI 6c4c4 x25: x25 x26: x26
+STACK CFI 6c4c8 x27: x27 x28: x28
+STACK CFI 6c4cc v8: v8
+STACK CFI 6c4d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c4d4 104 .cfa: sp 0 + .ra: x30
+STACK CFI 6c4d8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6c4dc .cfa: x29 64 +
+STACK CFI 6c4e0 x19: .cfa -48 + ^
+STACK CFI 6c5d0 x19: x19
+STACK CFI 6c5d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c5d8 ac .cfa: sp 0 + .ra: x30
+STACK CFI 6c5dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6c5e0 .cfa: x29 64 +
+STACK CFI 6c5e4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 6c5ec x21: .cfa -32 + ^
+STACK CFI 6c678 x19: x19 x20: x20
+STACK CFI 6c67c x21: x21
+STACK CFI 6c680 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c684 220 .cfa: sp 0 + .ra: x30
+STACK CFI 6c688 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 6c68c .cfa: x29 112 +
+STACK CFI 6c698 x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 6c6bc x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 6c894 x19: x19 x20: x20
+STACK CFI 6c898 x21: x21 x22: x22
+STACK CFI 6c89c x23: x23
+STACK CFI 6c8a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c8a4 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6c8a8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6c8b0 .cfa: x29 64 +
+STACK CFI 6c8b8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 6c8f4 x21: x21
+STACK CFI 6c8fc x19: x19 x20: x20
+STACK CFI 6c900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c904 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 6c908 .cfa: sp 16 +
+STACK CFI 6c9d0 .cfa: sp 0 +
+STACK CFI INIT 6c9d8 18 .cfa: sp 0 + .ra: x30
+STACK CFI 6c9dc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6c9e4 .cfa: x29 16 +
+STACK CFI 6c9ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6c9f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 6c9f4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6c9fc .cfa: x29 32 +
+STACK CFI 6ca00 x19: .cfa -16 + ^
+STACK CFI 6ca74 x19: x19
+STACK CFI 6ca78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ca7c 98 .cfa: sp 0 + .ra: x30
+STACK CFI 6ca80 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ca88 .cfa: x29 32 +
+STACK CFI 6ca8c x19: .cfa -16 + ^
+STACK CFI 6cb0c x19: x19
+STACK CFI 6cb10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6cb14 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cb30 38 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cb68 4c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cbb4 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cc10 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cc34 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cc5c 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cc84 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6ccac 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6ccd4 6c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cd40 38 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cd78 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cd98 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cdd4 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6cdd8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6cddc .cfa: x29 32 +
+STACK CFI 6cde0 x19: .cfa -16 + ^
+STACK CFI 6ce18 x19: x19
+STACK CFI 6ce1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ce20 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6ce28 .cfa: sp 16 +
+STACK CFI 6ce64 .cfa: sp 0 +
+STACK CFI INIT 6ce68 44 .cfa: sp 0 + .ra: x30
+STACK CFI 6ce6c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ce74 .cfa: x29 32 +
+STACK CFI 6ce78 x19: .cfa -16 + ^
+STACK CFI 6cea4 x19: x19
+STACK CFI 6cea8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ceac c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6ceb8 50 .cfa: sp 0 + .ra: x30
+STACK CFI 6cebc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6cec0 .cfa: x29 32 +
+STACK CFI 6cec4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6cf00 x19: x19 x20: x20
+STACK CFI 6cf04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6cf08 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6cf0c 13c .cfa: sp 0 + .ra: x30
+STACK CFI 6cf10 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 6cf14 .cfa: x29 208 +
+STACK CFI 6cf20 x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^ x24: .cfa -152 + ^
+STACK CFI 6cf2c x19: .cfa -192 + ^ x20: .cfa -184 + ^
+STACK CFI 6d038 x19: x19 x20: x20
+STACK CFI 6d03c x21: x21 x22: x22
+STACK CFI 6d040 x23: x23 x24: x24
+STACK CFI 6d044 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d048 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d054 7c .cfa: sp 0 + .ra: x30
+STACK CFI 6d058 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6d064 .cfa: x29 48 +
+STACK CFI 6d06c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 6d0c4 x19: x19 x20: x20
+STACK CFI 6d0c8 x21: x21
+STACK CFI 6d0cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d0d0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 6d0d4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6d0d8 .cfa: x29 80 +
+STACK CFI 6d0e0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 6d0e8 x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 6d14c x19: x19 x20: x20
+STACK CFI 6d150 x21: x21 x22: x22
+STACK CFI 6d154 x23: x23 x24: x24
+STACK CFI 6d158 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 10 .cfa: x29 64 +
+STACK CFI 18 x19: .cfa -48 + ^
+STACK CFI 50 x19: x19
+STACK CFI 54 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 14 x21: .cfa -32 + ^
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 x21: x21
+STACK CFI a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI c .cfa: x29 96 +
+STACK CFI 14 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 100 x19: x19 x20: x20
+STACK CFI 104 x21: x21 x22: x22
+STACK CFI 108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 144 x19: x19 x20: x20
+STACK CFI 148 x21: x21 x22: x22
+STACK CFI 14c x23: x23 x24: x24
+STACK CFI 150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 17c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 168 x19: x19 x20: x20
+STACK CFI 16c x21: x21 x22: x22
+STACK CFI 170 x23: x23 x24: x24
+STACK CFI 174 x25: x25
+STACK CFI 178 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 18 x21: .cfa -48 + ^
+STACK CFI a8 x21: x21
+STACK CFI ac x19: x19 x20: x20
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 18 x21: .cfa -48 + ^
+STACK CFI a8 x21: x21
+STACK CFI ac x19: x19 x20: x20
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d200 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d204 44 .cfa: sp 0 + .ra: x30
+STACK CFI 6d208 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6d210 .cfa: x29 32 +
+STACK CFI 6d214 x19: .cfa -16 + ^
+STACK CFI 6d240 x19: x19
+STACK CFI 6d244 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d248 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d24c 158 .cfa: sp 0 + .ra: x30
+STACK CFI 6d250 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 6d25c .cfa: x29 160 +
+STACK CFI 6d260 x21: .cfa -128 + ^
+STACK CFI 6d268 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 6d398 x19: x19 x20: x20
+STACK CFI 6d39c x21: x21
+STACK CFI 6d3a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d3a4 44 .cfa: sp 0 + .ra: x30
+STACK CFI 6d3a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6d3b4 .cfa: x29 32 +
+STACK CFI 6d3b8 x19: .cfa -16 + ^
+STACK CFI 6d3e0 x19: x19
+STACK CFI 6d3e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d3e8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d3ec 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d3f4 68 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d45c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d464 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d46c 64 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d4d0 fc .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 d8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 164 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d5cc 220 .cfa: sp 0 + .ra: x30
+STACK CFI 6d5d0 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 6d5d8 .cfa: x29 144 +
+STACK CFI 6d5ec x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 6d7d4 x19: x19 x20: x20
+STACK CFI 6d7d8 x21: x21 x22: x22
+STACK CFI 6d7dc x23: x23 x24: x24
+STACK CFI 6d7e0 x25: x25 x26: x26
+STACK CFI 6d7e4 x27: x27 x28: x28
+STACK CFI 6d7e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 10 .cfa: x29 144 +
+STACK CFI 24 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 1dc x19: x19 x20: x20
+STACK CFI 1e0 x21: x21 x22: x22
+STACK CFI 1e4 x23: x23 x24: x24
+STACK CFI 1e8 x25: x25 x26: x26
+STACK CFI 1ec x27: x27 x28: x28
+STACK CFI 1f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d7ec 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6d7f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6d7f4 .cfa: x29 32 +
+STACK CFI 6d7f8 x19: .cfa -16 + ^
+STACK CFI 6d81c x19: x19
+STACK CFI 6d820 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d824 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d840 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d848 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d850 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d858 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d860 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d868 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d870 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d878 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d880 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d888 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d890 88 .cfa: sp 0 + .ra: x30
+STACK CFI 6d894 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6d898 .cfa: x29 32 +
+STACK CFI 6d89c x19: .cfa -16 + ^
+STACK CFI 6d910 x19: x19
+STACK CFI 6d914 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d918 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6d928 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6d92c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6d930 .cfa: x29 32 +
+STACK CFI 6d934 x19: .cfa -16 + ^
+STACK CFI 6d944 x19: x19
+STACK CFI 6d948 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 6c x19: x19
+STACK CFI 70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 18 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 1b0 x23: x23
+STACK CFI 1b4 x19: x19 x20: x20
+STACK CFI 1b8 x21: x21 x22: x22
+STACK CFI 1bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 1c0 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI 1c4 x19: x19 x20: x20
+STACK CFI 1c8 x21: x21 x22: x22
+STACK CFI 1cc x23: x23
+STACK CFI 1d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d94c 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6d950 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6d954 .cfa: x29 48 +
+STACK CFI 6d958 x19: .cfa -32 + ^
+STACK CFI 6d9b4 x19: x19
+STACK CFI 6d9b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d9bc 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6d9c0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6d9c4 .cfa: x29 48 +
+STACK CFI 6d9c8 x19: .cfa -32 + ^
+STACK CFI 6da28 x19: x19
+STACK CFI 6da2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6da30 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6da34 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6da38 .cfa: x29 48 +
+STACK CFI 6da3c x19: .cfa -32 + ^
+STACK CFI 6da9c x19: x19
+STACK CFI 6daa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6daa4 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6daa8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6daac .cfa: x29 48 +
+STACK CFI 6dab0 x19: .cfa -32 + ^
+STACK CFI 6db10 x19: x19
+STACK CFI 6db14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6db18 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6db1c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6db20 .cfa: x29 48 +
+STACK CFI 6db24 x19: .cfa -32 + ^
+STACK CFI 6db80 x19: x19
+STACK CFI 6db84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6db88 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6db8c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6db90 .cfa: x29 48 +
+STACK CFI 6db94 x19: .cfa -32 + ^
+STACK CFI 6dbf4 x19: x19
+STACK CFI 6dbf8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dbfc 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6dc00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6dc04 .cfa: x29 48 +
+STACK CFI 6dc08 x19: .cfa -32 + ^
+STACK CFI 6dc68 x19: x19
+STACK CFI 6dc6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dc70 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6dc74 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6dc78 .cfa: x29 48 +
+STACK CFI 6dc7c x19: .cfa -32 + ^
+STACK CFI 6dcd8 x19: x19
+STACK CFI 6dcdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dce0 1e0 .cfa: sp 0 + .ra: x30
+STACK CFI 6dce4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6dce8 .cfa: x29 64 +
+STACK CFI 6dcf0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 6deb4 x21: x21
+STACK CFI 6deb8 x19: x19 x20: x20
+STACK CFI 6debc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c08 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI bf8 x19: x19 x20: x20
+STACK CFI bfc x21: x21 x22: x22
+STACK CFI c00 x23: x23
+STACK CFI c04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dec0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 14 x21: .cfa -32 + ^
+STACK CFI a0 x19: x19 x20: x20
+STACK CFI a4 x21: x21
+STACK CFI a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dec8 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6decc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6ded8 .cfa: x29 64 +
+STACK CFI 6dedc x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 6df0c x19: x19 x20: x20
+STACK CFI 6df10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6df14 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6df18 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6df24 .cfa: x29 64 +
+STACK CFI 6df28 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 6df58 x19: x19 x20: x20
+STACK CFI 6df5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6df60 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6df64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6df70 .cfa: x29 64 +
+STACK CFI 6df74 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 6dfa4 x19: x19 x20: x20
+STACK CFI 6dfa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 130 x19: x19 x20: x20
+STACK CFI 134 x21: x21 x22: x22
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 5457c 48 .cfa: sp 0 + .ra: x30
+STACK CFI 54580 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 5458c .cfa: x29 16 +
+STACK CFI 545c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6dfac 7c .cfa: sp 0 + .ra: x30
+STACK CFI 6dfb0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6dfb4 .cfa: x29 48 +
+STACK CFI 6dfb8 x19: .cfa -32 + ^
+STACK CFI 6e020 x19: x19
+STACK CFI 6e024 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 14 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 20 x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 120 x19: x19 x20: x20
+STACK CFI 124 x21: x21 x22: x22
+STACK CFI 128 x23: x23 x24: x24
+STACK CFI 12c x25: x25 x26: x26
+STACK CFI 130 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e028 20c .cfa: sp 0 + .ra: x30
+STACK CFI 6e02c .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 6e030 .cfa: x29 304 +
+STACK CFI 6e040 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^
+STACK CFI 6e220 x25: x25
+STACK CFI 6e224 x19: x19 x20: x20
+STACK CFI 6e228 x21: x21 x22: x22
+STACK CFI 6e22c x23: x23 x24: x24
+STACK CFI 6e230 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 18 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 1b4 x23: x23
+STACK CFI 1b8 x19: x19 x20: x20
+STACK CFI 1bc x21: x21 x22: x22
+STACK CFI 1c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e234 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 6e238 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6e23c .cfa: x29 48 +
+STACK CFI 6e244 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 6e2e8 x19: x19 x20: x20
+STACK CFI 6e2ec x21: x21 x22: x22
+STACK CFI 6e2f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e2f4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e2f8 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e310 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e328 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e330 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e348 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e350 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e368 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e370 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e384 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e38c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e394 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e3ac 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e3bc 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6e3c0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e3c4 .cfa: x29 32 +
+STACK CFI 6e3c8 x19: .cfa -16 + ^
+STACK CFI 6e3ec x19: x19
+STACK CFI 6e3f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e3f4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6e3f8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e3fc .cfa: x29 32 +
+STACK CFI 6e400 x19: .cfa -16 + ^
+STACK CFI 6e410 x19: x19
+STACK CFI 6e414 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e418 50 .cfa: sp 0 + .ra: x30
+STACK CFI 6e41c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e420 .cfa: x29 32 +
+STACK CFI 6e424 x19: .cfa -16 + ^
+STACK CFI 6e460 x19: x19
+STACK CFI 6e464 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e468 30 .cfa: sp 0 + .ra: x30
+STACK CFI 6e46c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6e474 .cfa: x29 16 +
+STACK CFI 6e494 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 38 x19: x19
+STACK CFI 3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e498 d4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e56c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e570 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6e574 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e578 .cfa: x29 32 +
+STACK CFI 6e57c x19: .cfa -16 + ^
+STACK CFI 6e58c x19: x19
+STACK CFI 6e590 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e594 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6e598 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e59c .cfa: x29 32 +
+STACK CFI 6e5a0 x19: .cfa -16 + ^
+STACK CFI 6e5b0 x19: x19
+STACK CFI 6e5b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e5b8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e5c8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6e5cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e5d0 .cfa: x29 32 +
+STACK CFI 6e5d4 x19: .cfa -16 + ^
+STACK CFI 6e5e4 x19: x19
+STACK CFI 6e5e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 98 x23: x23
+STACK CFI 9c x19: x19 x20: x20
+STACK CFI a0 x21: x21 x22: x22
+STACK CFI a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e5ec 34 .cfa: sp 0 + .ra: x30
+STACK CFI 6e5f0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e5f4 .cfa: x29 32 +
+STACK CFI 6e5f8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6e618 x19: x19 x20: x20
+STACK CFI 6e61c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e620 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e628 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 238e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 238e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 238e8 .cfa: x29 32 +
+STACK CFI 238ec x19: .cfa -16 + ^
+STACK CFI 238fc x19: x19
+STACK CFI 23900 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e62c 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6e630 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6e638 .cfa: x29 16 +
+STACK CFI 6e660 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e664 88 .cfa: sp 0 + .ra: x30
+STACK CFI 6e668 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e670 .cfa: x29 32 +
+STACK CFI 6e674 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6e6e4 x19: x19 x20: x20
+STACK CFI 6e6e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e6ec b8 .cfa: sp 0 + .ra: x30
+STACK CFI 6e6f0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6e6f4 .cfa: x29 80 +
+STACK CFI 6e700 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 6e794 x19: x19 x20: x20
+STACK CFI 6e798 x21: x21 x22: x22
+STACK CFI 6e79c x23: x23 x24: x24
+STACK CFI 6e7a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e7a4 80 .cfa: sp 0 + .ra: x30
+STACK CFI 6e7a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e7ac .cfa: x29 32 +
+STACK CFI 6e7b0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6e81c x19: x19 x20: x20
+STACK CFI 6e820 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI a0 x23: x23
+STACK CFI a4 x19: x19 x20: x20
+STACK CFI a8 x21: x21 x22: x22
+STACK CFI ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI a4 x23: x23
+STACK CFI a8 x19: x19 x20: x20
+STACK CFI ac x21: x21 x22: x22
+STACK CFI b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e824 98 .cfa: sp 0 + .ra: x30
+STACK CFI 6e828 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6e82c .cfa: x29 48 +
+STACK CFI 6e834 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 6e870 x21: x21 x22: x22
+STACK CFI 6e874 x19: x19 x20: x20
+STACK CFI 6e878 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6e87c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 6e8a0 x19: x19 x20: x20
+STACK CFI 6e8a4 x21: x21 x22: x22
+STACK CFI 6e8a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6e8ac .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 6e8b0 x19: x19 x20: x20
+STACK CFI 6e8b4 x21: x21 x22: x22
+STACK CFI 6e8b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2eb40 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e8bc 54 .cfa: sp 0 + .ra: x30
+STACK CFI 6e8c0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6e8c8 .cfa: x29 48 +
+STACK CFI 6e8cc x19: .cfa -32 + ^
+STACK CFI 6e908 x19: x19
+STACK CFI 6e90c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e910 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6e914 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6e91c .cfa: x29 48 +
+STACK CFI 6e920 x19: .cfa -32 + ^
+STACK CFI 6e954 x19: x19
+STACK CFI 6e958 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e95c 54 .cfa: sp 0 + .ra: x30
+STACK CFI 6e960 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6e968 .cfa: x29 48 +
+STACK CFI 6e96c x19: .cfa -32 + ^
+STACK CFI 6e9a8 x19: x19
+STACK CFI 6e9ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 43124 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6e9b0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6e9b4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6e9b8 .cfa: x29 16 +
+STACK CFI 6e9d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6e9d4 b8 .cfa: sp 0 + .ra: x30
+STACK CFI 6e9d8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6e9dc .cfa: x29 32 +
+STACK CFI 6e9e0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6ea84 x19: x19 x20: x20
+STACK CFI 6ea88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ea8c 34 .cfa: sp 0 + .ra: x30
+STACK CFI 6ea90 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ea94 .cfa: x29 32 +
+STACK CFI 6ea98 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6eab8 x19: x19 x20: x20
+STACK CFI 6eabc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eac0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6eac8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 6eacc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6ead0 .cfa: x29 48 +
+STACK CFI 6ead4 x19: .cfa -32 + ^
+STACK CFI 6eaf4 x19: x19
+STACK CFI 6eaf8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eafc 3c .cfa: sp 0 + .ra: x30
+STACK CFI 6eb00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6eb04 .cfa: x29 48 +
+STACK CFI 6eb08 x19: .cfa -32 + ^
+STACK CFI 6eb30 x19: x19
+STACK CFI 6eb34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 30 x19: x19
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eb38 50 .cfa: sp 0 + .ra: x30
+STACK CFI 6eb3c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6eb40 .cfa: x29 48 +
+STACK CFI 6eb44 x19: .cfa -32 + ^
+STACK CFI 6eb80 x19: x19
+STACK CFI 6eb84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eb88 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6ebb0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 6ebb4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6ebb8 .cfa: x29 48 +
+STACK CFI 6ebbc x19: .cfa -32 + ^
+STACK CFI 6ebfc x19: x19
+STACK CFI 6ec00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ec04 4c .cfa: sp 0 + .ra: x30
+STACK CFI 6ec08 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ec0c .cfa: x29 32 +
+STACK CFI 6ec10 x19: .cfa -16 + ^
+STACK CFI 6ec48 x19: x19
+STACK CFI 6ec4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ec50 84 .cfa: sp 0 + .ra: x30
+STACK CFI 6ec54 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6ec58 .cfa: x29 48 +
+STACK CFI 6ec5c x19: .cfa -32 + ^
+STACK CFI 6eccc x19: x19
+STACK CFI 6ecd0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ecd4 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6ecd8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ecdc .cfa: x29 32 +
+STACK CFI 6ece0 x19: .cfa -16 + ^
+STACK CFI 6ed2c x19: x19
+STACK CFI 6ed30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ed34 58 .cfa: sp 0 + .ra: x30
+STACK CFI 6ed38 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ed3c .cfa: x29 32 +
+STACK CFI 6ed40 x19: .cfa -16 + ^
+STACK CFI 6ed84 x19: x19
+STACK CFI 6ed88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ed8c 40 .cfa: sp 0 + .ra: x30
+STACK CFI 6ed90 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6ed94 .cfa: x29 32 +
+STACK CFI 6ed98 x19: .cfa -16 + ^
+STACK CFI 6edc4 x19: x19
+STACK CFI 6edc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6edcc 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6edd0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6edd4 .cfa: x29 32 +
+STACK CFI 6edd8 x19: .cfa -16 + ^
+STACK CFI 6ee0c x19: x19
+STACK CFI 6ee10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 30 x19: x19
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 44 x19: x19
+STACK CFI 48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ee14 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6ee18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6ee1c .cfa: x29 16 +
+STACK CFI 6ee34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ee38 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6ee3c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6ee40 .cfa: x29 48 +
+STACK CFI 6ee48 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 6ee88 x21: x21
+STACK CFI 6ee8c x19: x19 x20: x20
+STACK CFI 6ee90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6ee98 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 6ee9c x19: x19 x20: x20
+STACK CFI 6eea0 x21: x21
+STACK CFI 6eea4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eea8 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6eeac .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6eeb0 .cfa: x29 48 +
+STACK CFI 6eeb8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 6eef8 x21: x21
+STACK CFI 6eefc x19: x19 x20: x20
+STACK CFI 6ef00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6ef08 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 6ef0c x19: x19 x20: x20
+STACK CFI 6ef10 x21: x21
+STACK CFI 6ef14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6ef18 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6ef34 70 .cfa: sp 0 + .ra: x30
+STACK CFI 6ef38 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6ef3c .cfa: x29 48 +
+STACK CFI 6ef44 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 6ef84 x21: x21
+STACK CFI 6ef88 x19: x19 x20: x20
+STACK CFI 6ef8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6ef94 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 6ef98 x19: x19 x20: x20
+STACK CFI 6ef9c x21: x21
+STACK CFI 6efa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 50 x21: x21
+STACK CFI 54 x19: x19 x20: x20
+STACK CFI 58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 60 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 64 x19: x19 x20: x20
+STACK CFI 68 x21: x21
+STACK CFI 6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 78 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7c x19: x19
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 2527c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25288 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25298 24 .cfa: sp 0 + .ra: x30
+STACK CFI 2529c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 252a0 .cfa: x29 32 +
+STACK CFI 252a4 x19: .cfa -16 + ^
+STACK CFI 252b4 x19: x19
+STACK CFI 252b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 252bc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 252cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6efa4 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6efc0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6efc4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6efc8 .cfa: x29 32 +
+STACK CFI 6efcc x19: .cfa -16 + ^
+STACK CFI 6efe4 x19: x19
+STACK CFI 6efe8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6efec .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 6eff0 x19: x19
+STACK CFI 6eff4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6eff8 48 .cfa: sp 0 + .ra: x30
+STACK CFI 6effc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f004 .cfa: x29 32 +
+STACK CFI 6f008 x19: .cfa -16 + ^
+STACK CFI 6f038 x19: x19
+STACK CFI 6f03c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f040 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6f044 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f048 .cfa: x29 32 +
+STACK CFI 6f04c x19: .cfa -16 + ^
+STACK CFI 6f05c x19: x19
+STACK CFI 6f060 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f064 60 .cfa: sp 0 + .ra: x30
+STACK CFI 6f068 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f06c .cfa: x29 32 +
+STACK CFI 6f070 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6f0b0 x19: x19 x20: x20
+STACK CFI 6f0b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6f0b8 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 6f0bc x19: x19 x20: x20
+STACK CFI 6f0c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f0c4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6f0c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f0cc .cfa: x29 32 +
+STACK CFI 6f0d0 x19: .cfa -16 + ^
+STACK CFI 6f0e0 x19: x19
+STACK CFI 6f0e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 3c x19: x19
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 9c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 8c x21: x21
+STACK CFI 94 x19: x19 x20: x20
+STACK CFI 98 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 8c x19: x19 x20: x20
+STACK CFI 90 x21: x21
+STACK CFI 94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f0e8 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 6f0ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6f0f0 .cfa: x29 64 +
+STACK CFI 6f0f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 6f180 x19: x19 x20: x20
+STACK CFI 6f184 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f188 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f1a4 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f1c0 50 .cfa: sp 0 + .ra: x30
+STACK CFI 6f1c4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f1cc .cfa: x29 32 +
+STACK CFI 6f1d0 x19: .cfa -16 + ^
+STACK CFI 6f1fc x19: x19
+STACK CFI 6f200 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6f204 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 6f208 x19: x19
+STACK CFI 6f20c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f210 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f218 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6f21c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f220 .cfa: x29 32 +
+STACK CFI 6f224 x19: .cfa -16 + ^
+STACK CFI 6f234 x19: x19
+STACK CFI 6f238 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f23c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f244 38 .cfa: sp 0 + .ra: x30
+STACK CFI 6f248 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f24c .cfa: x29 32 +
+STACK CFI 6f250 x19: .cfa -16 + ^
+STACK CFI 6f268 x19: x19
+STACK CFI 6f26c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6f270 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 6f274 x19: x19
+STACK CFI 6f278 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 30 x19: x19 x20: x20
+STACK CFI 34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f27c 84 .cfa: sp 0 + .ra: x30
+STACK CFI 6f280 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f284 .cfa: x29 32 +
+STACK CFI 6f288 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 6f2ec x19: x19 x20: x20
+STACK CFI 6f2f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 6f2f4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 6f2f8 x19: x19 x20: x20
+STACK CFI 6f2fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f300 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f308 24 .cfa: sp 0 + .ra: x30
+STACK CFI 6f30c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f310 .cfa: x29 32 +
+STACK CFI 6f314 x19: .cfa -16 + ^
+STACK CFI 6f324 x19: x19
+STACK CFI 6f328 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f32c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f334 90 .cfa: sp 0 + .ra: x30
+STACK CFI 6f338 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6f33c .cfa: x29 64 +
+STACK CFI 6f340 x19: .cfa -48 + ^
+STACK CFI 6f3bc x19: x19
+STACK CFI 6f3c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI c .cfa: x29 96 +
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI ec x21: x21 x22: x22
+STACK CFI f0 x19: x19 x20: x20
+STACK CFI f4 x23: x23 x24: x24
+STACK CFI f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f3c4 60 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f424 44 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f468 170 .cfa: sp 0 + .ra: x30
+STACK CFI 6f46c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 6f470 .cfa: x29 112 +
+STACK CFI 6f484 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x28: .cfa -24 + ^
+STACK CFI 6f5c0 x19: x19 x20: x20
+STACK CFI 6f5c4 x21: x21 x22: x22
+STACK CFI 6f5c8 x23: x23 x24: x24
+STACK CFI 6f5cc x25: x25 x26: x26
+STACK CFI 6f5d0 x27: x27 x28: x28
+STACK CFI 6f5d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 282a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 4c x19: x19
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24e18 34 .cfa: sp 0 + .ra: x30
+STACK CFI 24e1c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 24e24 .cfa: x29 32 +
+STACK CFI 24e28 x19: .cfa -16 + ^
+STACK CFI 24e44 x19: x19
+STACK CFI 24e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 5c x19: x19 x20: x20
+STACK CFI 60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 68 x19: x19 x20: x20
+STACK CFI 6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7c x19: x19 x20: x20
+STACK CFI 80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 1c x21: .cfa -32 + ^
+STACK CFI 58 x19: x19 x20: x20
+STACK CFI 5c x21: x21
+STACK CFI 60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 34 x19: x19
+STACK CFI 38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 8 .cfa: x29 144 +
+STACK CFI 14 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f5d8 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f5dc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f5e8 .cfa: x29 32 +
+STACK CFI 6f5f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f600 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f604 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f610 .cfa: x29 32 +
+STACK CFI 6f620 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f628 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f62c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f638 .cfa: x29 32 +
+STACK CFI 6f648 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f650 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f654 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f660 .cfa: x29 32 +
+STACK CFI 6f670 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f678 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f67c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f688 .cfa: x29 32 +
+STACK CFI 6f698 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f6a0 28 .cfa: sp 0 + .ra: x30
+STACK CFI 6f6a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 6f6b0 .cfa: x29 32 +
+STACK CFI 6f6c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f6c8 84 .cfa: sp 0 + .ra: x30
+STACK CFI 6f6cc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f6d0 .cfa: x29 48 +
+STACK CFI 6f6d4 x19: .cfa -32 + ^
+STACK CFI 6f744 x19: x19
+STACK CFI 6f748 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 130 x19: x19 x20: x20
+STACK CFI 134 x21: x21 x22: x22
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f74c 74 .cfa: sp 0 + .ra: x30
+STACK CFI 6f750 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f754 .cfa: x29 48 +
+STACK CFI 6f758 x19: .cfa -32 + ^
+STACK CFI 6f7b8 x19: x19
+STACK CFI 6f7bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f7c0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 6f7c4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 6f7c8 .cfa: x29 16 +
+STACK CFI 6f7dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f7e0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI d8 x19: x19
+STACK CFI dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI d0 x19: x19 x20: x20
+STACK CFI d4 x21: x21 x22: x22
+STACK CFI d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI c0 x19: x19
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f7e8 68 .cfa: sp 0 + .ra: x30
+STACK CFI 6f7ec .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f7f0 .cfa: x29 48 +
+STACK CFI 6f7f4 x19: .cfa -32 + ^
+STACK CFI 6f848 x19: x19
+STACK CFI 6f84c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI c0 x19: x19
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f850 6c .cfa: sp 0 + .ra: x30
+STACK CFI 6f854 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f858 .cfa: x29 48 +
+STACK CFI 6f85c x19: .cfa -32 + ^
+STACK CFI 6f8b4 x19: x19
+STACK CFI 6f8b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f8bc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6f8c4 6c .cfa: sp 0 + .ra: x30
+STACK CFI 6f8c8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f8cc .cfa: x29 48 +
+STACK CFI 6f8d0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 6f928 x19: x19 x20: x20
+STACK CFI 6f92c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f930 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 19c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 194 x19: x19 x20: x20
+STACK CFI 198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc x21: x21 x22: x22
+STACK CFI d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f938 68 .cfa: sp 0 + .ra: x30
+STACK CFI 6f93c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6f940 .cfa: x29 48 +
+STACK CFI 6f944 x19: .cfa -32 + ^
+STACK CFI 6f998 x19: x19
+STACK CFI 6f99c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6f9a0 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 6f9a4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6f9a8 .cfa: x29 64 +
+STACK CFI 6f9b0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 6fa54 x21: x21
+STACK CFI 6fa58 x19: x19 x20: x20
+STACK CFI 6fa5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6fa60 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 6fa64 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 6fa68 .cfa: x29 64 +
+STACK CFI 6fa70 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 6fb14 x21: x21
+STACK CFI 6fb18 x19: x19 x20: x20
+STACK CFI 6fb1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 110 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 104 x19: x19 x20: x20
+STACK CFI 108 x21: x21 x22: x22
+STACK CFI 10c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 110 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 104 x19: x19 x20: x20
+STACK CFI 108 x21: x21 x22: x22
+STACK CFI 10c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 3e8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 +
+STACK CFI 8 .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI c .cfa: x29 96 +
+STACK CFI 10 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 3d8 .cfa: sp 112 +
+STACK CFI 3dc x19: x19 x20: x20
+STACK CFI 3e0 .ra: .ra x29: x29
+STACK CFI 3e4 .cfa: sp 0 +
+STACK CFI INIT 0 24c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 8 .cfa: x29 160 +
+STACK CFI 1c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^
+STACK CFI 234 x19: x19 x20: x20
+STACK CFI 238 x21: x21 x22: x22
+STACK CFI 23c x23: x23 x24: x24
+STACK CFI 240 x25: x25 x26: x26
+STACK CFI 244 x27: x27
+STACK CFI 248 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 12c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 +
+STACK CFI 8 .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI c .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 118 .cfa: sp 144 +
+STACK CFI 11c x19: x19 x20: x20
+STACK CFI 120 x21: x21
+STACK CFI 124 .ra: .ra x29: x29
+STACK CFI 128 .cfa: sp 0 +
+STACK CFI INIT 6fb20 8c .cfa: sp 0 + .ra: x30
+STACK CFI 6fb24 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 6fb2c .cfa: x29 48 +
+STACK CFI 6fb30 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 6fba4 x19: x19 x20: x20
+STACK CFI 6fba8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6fbac 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 6fbb4 104 .cfa: sp 0 + .ra: x30
+STACK CFI 6fbb8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 6fbbc .cfa: x29 80 +
+STACK CFI 6fbc8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 6fca8 x19: x19 x20: x20
+STACK CFI 6fcac x21: x21 x22: x22
+STACK CFI 6fcb0 x23: x23 x24: x24
+STACK CFI 6fcb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI f4 x19: x19 x20: x20
+STACK CFI f8 x21: x21 x22: x22
+STACK CFI fc x23: x23 x24: x24
+STACK CFI 100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6fcb8 238 .cfa: sp 0 + .ra: x30
+STACK CFI 6fcbc .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 6fcc0 .cfa: x29 176 +
+STACK CFI 6fccc x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 6fee0 x23: x23
+STACK CFI 6fee4 x19: x19 x20: x20
+STACK CFI 6fee8 x21: x21 x22: x22
+STACK CFI 6feec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6fef0 108 .cfa: sp 0 + .ra: x30
+STACK CFI 6fef4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 6fef8 .cfa: x29 128 +
+STACK CFI 6ff00 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI 6ffec x19: x19 x20: x20
+STACK CFI 6fff0 x21: x21
+STACK CFI 6fff4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6fff8 20 .cfa: sp 0 + .ra: x30
+STACK CFI 6fffc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 70000 .cfa: x29 16 +
+STACK CFI 70014 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70018 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70020 fc .cfa: sp 0 + .ra: x30
+STACK CFI 70024 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 70028 .cfa: x29 64 +
+STACK CFI 70030 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 70110 x19: x19 x20: x20
+STACK CFI 70114 x21: x21 x22: x22
+STACK CFI 70118 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7011c fc .cfa: sp 0 + .ra: x30
+STACK CFI 70120 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 70124 .cfa: x29 64 +
+STACK CFI 7012c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 7020c x19: x19 x20: x20
+STACK CFI 70210 x21: x21 x22: x22
+STACK CFI 70214 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70218 20 .cfa: sp 0 + .ra: x30
+STACK CFI 7021c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 70220 .cfa: x29 16 +
+STACK CFI 70234 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70238 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 70240 fc .cfa: sp 0 + .ra: x30
+STACK CFI 70244 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 70248 .cfa: x29 64 +
+STACK CFI 70250 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 70330 x19: x19 x20: x20
+STACK CFI 70334 x21: x21 x22: x22
+STACK CFI 70338 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 168 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 154 x19: x19 x20: x20
+STACK CFI 158 x21: x21 x22: x22
+STACK CFI 15c x23: x23 x24: x24
+STACK CFI 160 x25: x25 x26: x26
+STACK CFI 164 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7033c 100 .cfa: sp 0 + .ra: x30
+STACK CFI 70340 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 70344 .cfa: x29 128 +
+STACK CFI 7034c x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI 70430 x19: x19 x20: x20
+STACK CFI 70434 x21: x21
+STACK CFI 70438 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI f0 x19: x19 x20: x20
+STACK CFI f4 x21: x21 x22: x22
+STACK CFI f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 100 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI 10 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI f4 x19: x19 x20: x20
+STACK CFI f8 x21: x21
+STACK CFI fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI f0 x19: x19 x20: x20
+STACK CFI f4 x21: x21 x22: x22
+STACK CFI f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 10 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI bc x21: x21
+STACK CFI c4 x19: x19 x20: x20
+STACK CFI c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7043c 1e4 .cfa: sp 0 + .ra: x30
+STACK CFI 70440 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 70444 .cfa: x29 80 +
+STACK CFI 70450 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 70610 x19: x19 x20: x20
+STACK CFI 70614 x21: x21 x22: x22
+STACK CFI 70618 x23: x23
+STACK CFI 7061c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70620 20 .cfa: sp 0 + .ra: x30
+STACK CFI 70624 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 70628 .cfa: x29 16 +
+STACK CFI 7063c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70640 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 25b54 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25b58 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 25b5c .cfa: x29 16 +
+STACK CFI 25bac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 74 x19: x19 x20: x20
+STACK CFI 78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70648 378 .cfa: sp 0 + .ra: x30
+STACK CFI 7064c .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 70650 .cfa: x29 224 +
+STACK CFI 70654 x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 70668 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^
+STACK CFI 70674 x25: .cfa -160 + ^ x26: .cfa -152 + ^ x27: .cfa -144 + ^ x28: .cfa -136 + ^
+STACK CFI 709a8 x19: x19 x20: x20
+STACK CFI 709ac x21: x21 x22: x22
+STACK CFI 709b0 x23: x23 x24: x24
+STACK CFI 709b4 x25: x25 x26: x26
+STACK CFI 709b8 x27: x27 x28: x28
+STACK CFI 709bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 18 x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 1c4 x23: x23
+STACK CFI 1c8 x19: x19 x20: x20
+STACK CFI 1cc x21: x21 x22: x22
+STACK CFI 1d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25fd8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 25fdc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 25fe0 .cfa: x29 48 +
+STACK CFI 25fe4 x19: .cfa -32 + ^
+STACK CFI 26004 x19: x19
+STACK CFI 26008 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 709c0 214 .cfa: sp 0 + .ra: x30
+STACK CFI 709c4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 709c8 .cfa: x29 176 +
+STACK CFI 709d4 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 70bc4 x19: x19 x20: x20
+STACK CFI 70bc8 x21: x21 x22: x22
+STACK CFI 70bcc x23: x23 x24: x24
+STACK CFI 70bd0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70bd4 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 70bdc 1e4 .cfa: sp 0 + .ra: x30
+STACK CFI 70be0 .cfa: sp 224 +
+STACK CFI 70be4 .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 70be8 .cfa: x29 160 +
+STACK CFI 70bf4 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^
+STACK CFI 70da4 .cfa: sp 224 +
+STACK CFI 70dac x19: x19 x20: x20
+STACK CFI 70db0 x21: x21 x22: x22
+STACK CFI 70db4 x23: x23
+STACK CFI 70db8 .ra: .ra x29: x29
+STACK CFI 70dbc .cfa: sp 0 +
+STACK CFI INIT 70dc0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 70dc8 168 .cfa: sp 0 + .ra: x30
+STACK CFI 70dcc .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 70dd0 .cfa: x29 144 +
+STACK CFI 70ddc x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^
+STACK CFI 70f20 x23: x23
+STACK CFI 70f24 x19: x19 x20: x20
+STACK CFI 70f28 x21: x21 x22: x22
+STACK CFI 70f2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70f30 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 1cc .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 8 .cfa: x29 128 +
+STACK CFI c x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 18 x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^
+STACK CFI 1bc x23: x23
+STACK CFI 1c0 x19: x19 x20: x20
+STACK CFI 1c4 x21: x21 x22: x22
+STACK CFI 1c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 1e4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 8 .cfa: x29 176 +
+STACK CFI 14 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 1d4 x19: x19 x20: x20
+STACK CFI 1d8 x21: x21 x22: x22
+STACK CFI 1dc x23: x23 x24: x24
+STACK CFI 1e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI c .cfa: x29 112 +
+STACK CFI 18 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI d4 x19: x19 x20: x20
+STACK CFI d8 x21: x21 x22: x22
+STACK CFI dc x23: x23 x24: x24
+STACK CFI e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 70f38 248 .cfa: sp 0 + .ra: x30
+STACK CFI 70f3c .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 70f40 .cfa: x29 192 +
+STACK CFI 70f50 x19: .cfa -176 + ^ x20: .cfa -168 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^ x24: .cfa -136 + ^ x25: .cfa -128 + ^ x26: .cfa -120 + ^
+STACK CFI 7116c x19: x19 x20: x20
+STACK CFI 71170 x21: x21 x22: x22
+STACK CFI 71174 x23: x23 x24: x24
+STACK CFI 71178 x25: x25 x26: x26
+STACK CFI 7117c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71180 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 71188 50 .cfa: sp 0 + .ra: x30
+STACK CFI 7118c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 71190 .cfa: x29 48 +
+STACK CFI 71198 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 711cc x19: x19 x20: x20
+STACK CFI 711d0 x21: x21
+STACK CFI 711d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 711d8 5c .cfa: sp 0 + .ra: x30
+STACK CFI 711dc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 711e0 .cfa: x29 32 +
+STACK CFI 711e4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 71220 x19: x19 x20: x20
+STACK CFI 71224 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 71228 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 7122c x19: x19 x20: x20
+STACK CFI 71230 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71234 24 .cfa: sp 0 + .ra: x30
+STACK CFI 71238 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7123c .cfa: x29 32 +
+STACK CFI 71240 x19: .cfa -16 + ^
+STACK CFI 71250 x19: x19
+STACK CFI 71254 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71258 50 .cfa: sp 0 + .ra: x30
+STACK CFI 7125c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 71260 .cfa: x29 48 +
+STACK CFI 71268 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7129c x19: x19 x20: x20
+STACK CFI 712a0 x21: x21
+STACK CFI 712a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 712a8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 712ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 712b0 .cfa: x29 32 +
+STACK CFI 712b8 x19: .cfa -16 + ^
+STACK CFI 712dc x19: x19
+STACK CFI 712e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 712e4 6c .cfa: sp 0 + .ra: x30
+STACK CFI 712e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 712ec .cfa: x29 32 +
+STACK CFI 712f0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7133c x19: x19 x20: x20
+STACK CFI 71340 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 71344 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 71348 x19: x19 x20: x20
+STACK CFI 7134c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71350 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 71358 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7135c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71360 .cfa: x29 32 +
+STACK CFI 71364 x19: .cfa -16 + ^
+STACK CFI 71374 x19: x19
+STACK CFI 71378 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7137c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 71384 78 .cfa: sp 0 + .ra: x30
+STACK CFI 71388 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7138c .cfa: x29 32 +
+STACK CFI 71390 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 713e8 x19: x19 x20: x20
+STACK CFI 713ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 713f0 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 713f4 x19: x19 x20: x20
+STACK CFI 713f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 713fc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 71400 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71404 .cfa: x29 32 +
+STACK CFI 71408 x19: .cfa -16 + ^
+STACK CFI 71418 x19: x19
+STACK CFI 7141c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 4c x19: x19 x20: x20
+STACK CFI 50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 54 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 58 x19: x19 x20: x20
+STACK CFI 5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 1c x19: x19
+STACK CFI 20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71420 58 .cfa: sp 0 + .ra: x30
+STACK CFI 71424 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 71428 .cfa: x29 48 +
+STACK CFI 71430 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7146c x19: x19 x20: x20
+STACK CFI 71470 x21: x21
+STACK CFI 71474 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71478 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 7147c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 71480 .cfa: x29 48 +
+STACK CFI 71484 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 71544 x19: x19 x20: x20
+STACK CFI 71548 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7154c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 71550 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71554 .cfa: x29 32 +
+STACK CFI 71558 x19: .cfa -16 + ^
+STACK CFI 71568 x19: x19
+STACK CFI 7156c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71570 78 .cfa: sp 0 + .ra: x30
+STACK CFI 71574 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71578 .cfa: x29 32 +
+STACK CFI 7157c x19: .cfa -16 + ^
+STACK CFI 715d8 x19: x19
+STACK CFI 715e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 715e8 134 .cfa: sp 0 + .ra: x30
+STACK CFI 715ec .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 715f0 .cfa: x29 128 +
+STACK CFI 715f8 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 71710 x19: x19 x20: x20
+STACK CFI 71714 x21: x21 x22: x22
+STACK CFI 71718 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7171c 270 .cfa: sp 0 + .ra: x30
+STACK CFI 71720 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 71724 .cfa: x29 112 +
+STACK CFI 71730 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 7197c x23: x23
+STACK CFI 71980 x19: x19 x20: x20
+STACK CFI 71984 x21: x21 x22: x22
+STACK CFI 71988 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7198c 280 .cfa: sp 0 + .ra: x30
+STACK CFI 71990 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 71994 .cfa: x29 96 +
+STACK CFI 7199c x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 719a4 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 71bfc x19: x19 x20: x20
+STACK CFI 71c00 x21: x21 x22: x22
+STACK CFI 71c04 x23: x23
+STACK CFI 71c08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71c0c 18 .cfa: sp 0 + .ra: x30
+STACK CFI 71c10 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71c14 .cfa: x29 32 +
+STACK CFI 71c20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 29c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x23: .cfa -48 + ^
+STACK CFI 24 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 28c x19: x19 x20: x20
+STACK CFI 290 x21: x21 x22: x22
+STACK CFI 294 x23: x23
+STACK CFI 298 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71c24 280 .cfa: sp 0 + .ra: x30
+STACK CFI 71c28 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 71c2c .cfa: x29 96 +
+STACK CFI 71c34 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 71c3c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 71e94 x19: x19 x20: x20
+STACK CFI 71e98 x21: x21 x22: x22
+STACK CFI 71e9c x23: x23
+STACK CFI 71ea0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71ea4 18 .cfa: sp 0 + .ra: x30
+STACK CFI 71ea8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 71eac .cfa: x29 32 +
+STACK CFI 71eb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 280 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 10 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 270 x19: x19 x20: x20
+STACK CFI 274 x21: x21 x22: x22
+STACK CFI 278 x23: x23
+STACK CFI 27c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 29c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI c x23: .cfa -48 + ^
+STACK CFI 24 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 28c x19: x19 x20: x20
+STACK CFI 290 x21: x21 x22: x22
+STACK CFI 294 x23: x23
+STACK CFI 298 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 71ebc 280 .cfa: sp 0 + .ra: x30
+STACK CFI 71ec0 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 71ec4 .cfa: x29 96 +
+STACK CFI 71ecc x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 71ed4 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 7212c x19: x19 x20: x20
+STACK CFI 72130 x21: x21 x22: x22
+STACK CFI 72134 x23: x23
+STACK CFI 72138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7213c 18 .cfa: sp 0 + .ra: x30
+STACK CFI 72140 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 72144 .cfa: x29 32 +
+STACK CFI 72150 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72154 280 .cfa: sp 0 + .ra: x30
+STACK CFI 72158 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7215c .cfa: x29 96 +
+STACK CFI 72164 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 7216c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 723c4 x19: x19 x20: x20
+STACK CFI 723c8 x21: x21 x22: x22
+STACK CFI 723cc x23: x23
+STACK CFI 723d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 723d4 18 .cfa: sp 0 + .ra: x30
+STACK CFI 723d8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 723dc .cfa: x29 32 +
+STACK CFI 723e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 723ec 280 .cfa: sp 0 + .ra: x30
+STACK CFI 723f0 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 723f4 .cfa: x29 96 +
+STACK CFI 723fc x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 72404 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 7265c x19: x19 x20: x20
+STACK CFI 72660 x21: x21 x22: x22
+STACK CFI 72664 x23: x23
+STACK CFI 72668 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7266c 18 .cfa: sp 0 + .ra: x30
+STACK CFI 72670 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 72674 .cfa: x29 32 +
+STACK CFI 72680 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 280 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8 .cfa: x29 96 +
+STACK CFI 10 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 18 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 270 x19: x19 x20: x20
+STACK CFI 274 x21: x21 x22: x22
+STACK CFI 278 x23: x23
+STACK CFI 27c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI 14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72684 370 .cfa: sp 0 + .ra: x30
+STACK CFI 72688 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 7268c .cfa: x29 160 +
+STACK CFI 726a0 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x28: .cfa -72 + ^
+STACK CFI 729dc x19: x19 x20: x20
+STACK CFI 729e0 x21: x21 x22: x22
+STACK CFI 729e4 x23: x23 x24: x24
+STACK CFI 729e8 x25: x25 x26: x26
+STACK CFI 729ec x27: x27 x28: x28
+STACK CFI 729f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 729f4 8c .cfa: sp 0 + .ra: x30
+STACK CFI 729f8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 72a00 .cfa: x29 48 +
+STACK CFI 72a04 x19: .cfa -32 + ^
+STACK CFI 72a78 x19: x19
+STACK CFI 72a7c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72a80 134 .cfa: sp 0 + .ra: x30
+STACK CFI 72a84 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 72a88 .cfa: x29 48 +
+STACK CFI 72a90 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 72b94 x19: x19 x20: x20
+STACK CFI 72b98 x21: x21
+STACK CFI 72b9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 72ba0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 72ba8 x21: x21
+STACK CFI 72bac x19: x19 x20: x20
+STACK CFI 72bb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72bb4 1b0 .cfa: sp 0 + .ra: x30
+STACK CFI 72bb8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 72bbc .cfa: x29 80 +
+STACK CFI 72bc0 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 72bcc x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x26: .cfa -8 + ^
+STACK CFI 72bd8 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 72d50 x19: x19 x20: x20
+STACK CFI 72d54 x21: x21 x22: x22
+STACK CFI 72d58 x23: x23 x24: x24
+STACK CFI 72d5c x25: x25 x26: x26
+STACK CFI 72d60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72d64 158 .cfa: sp 0 + .ra: x30
+STACK CFI 72d68 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 72d6c .cfa: x29 112 +
+STACK CFI 72d74 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 72eb0 x19: x19 x20: x20
+STACK CFI 72eb4 x21: x21 x22: x22
+STACK CFI 72eb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 72ebc 14f4 .cfa: sp 0 + .ra: x30
+STACK CFI 72ec0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 72ec4 .cfa: x29 128 +
+STACK CFI 72ed0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 743a0 x19: x19 x20: x20
+STACK CFI 743a4 x21: x21 x22: x22
+STACK CFI 743a8 x23: x23 x24: x24
+STACK CFI 743ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 743b0 170 .cfa: sp 0 + .ra: x30
+STACK CFI 743b4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 743b8 .cfa: x29 64 +
+STACK CFI 743c0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 74514 x19: x19 x20: x20
+STACK CFI 74518 x21: x21 x22: x22
+STACK CFI 7451c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 74520 170 .cfa: sp 0 + .ra: x30
+STACK CFI 74524 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 74528 .cfa: x29 64 +
+STACK CFI 74530 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 74684 x19: x19 x20: x20
+STACK CFI 74688 x21: x21 x22: x22
+STACK CFI 7468c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 164 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 158 x19: x19 x20: x20
+STACK CFI 15c x21: x21
+STACK CFI 160 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 74690 240 .cfa: sp 0 + .ra: x30
+STACK CFI 74694 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 74698 .cfa: x29 240 +
+STACK CFI 746a8 x19: .cfa -224 + ^ x20: .cfa -216 + ^ x21: .cfa -208 + ^ x22: .cfa -200 + ^ x23: .cfa -192 + ^ x24: .cfa -184 + ^ x25: .cfa -176 + ^
+STACK CFI 748bc x25: x25
+STACK CFI 748c0 x19: x19 x20: x20
+STACK CFI 748c4 x21: x21 x22: x22
+STACK CFI 748c8 x23: x23 x24: x24
+STACK CFI 748cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 748d0 268 .cfa: sp 0 + .ra: x30
+STACK CFI 748d4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 748d8 .cfa: x29 176 +
+STACK CFI 748e4 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 74b28 x23: x23
+STACK CFI 74b2c x19: x19 x20: x20
+STACK CFI 74b30 x21: x21 x22: x22
+STACK CFI 74b34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 74b38 18c .cfa: sp 0 + .ra: x30
+STACK CFI 74b3c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 74b40 .cfa: x29 64 +
+STACK CFI 74b48 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 74cb8 x19: x19 x20: x20
+STACK CFI 74cbc x21: x21 x22: x22
+STACK CFI 74cc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 74cc4 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 74cc8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 74ccc .cfa: x29 64 +
+STACK CFI 74cd4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 74eac x21: x21
+STACK CFI 74eb0 x19: x19 x20: x20
+STACK CFI 74eb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 138 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI c .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 12c x21: x21
+STACK CFI 130 x19: x19 x20: x20
+STACK CFI 134 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 19c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI c .cfa: x29 176 +
+STACK CFI 18 x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^
+STACK CFI 18c x23: x23
+STACK CFI 190 x19: x19 x20: x20
+STACK CFI 194 x21: x21 x22: x22
+STACK CFI 198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 19c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI c .cfa: x29 64 +
+STACK CFI 14 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 190 x21: x21
+STACK CFI 194 x19: x19 x20: x20
+STACK CFI 198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 36c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 35c x23: x23
+STACK CFI 360 x19: x19 x20: x20
+STACK CFI 364 x21: x21 x22: x22
+STACK CFI 368 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 74eb8 2c8 .cfa: sp 0 + .ra: x30
+STACK CFI 74ebc .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 74ec0 .cfa: x29 112 +
+STACK CFI 74ecc x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 75170 x19: x19 x20: x20
+STACK CFI 75174 x21: x21 x22: x22
+STACK CFI 75178 x23: x23 x24: x24
+STACK CFI 7517c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI c0 x19: x19 x20: x20
+STACK CFI c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 258 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 24c x19: x19 x20: x20
+STACK CFI 250 x21: x21
+STACK CFI 254 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 75180 238 .cfa: sp 0 + .ra: x30
+STACK CFI 75184 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 75188 .cfa: x29 96 +
+STACK CFI 75194 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 753a8 x19: x19 x20: x20
+STACK CFI 753ac x21: x21 x22: x22
+STACK CFI 753b0 x23: x23
+STACK CFI 753b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 753b8 21c .cfa: sp 0 + .ra: x30
+STACK CFI 753bc .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 753c0 .cfa: x29 224 +
+STACK CFI 753cc x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 755c4 x19: x19 x20: x20
+STACK CFI 755c8 x21: x21 x22: x22
+STACK CFI 755cc x23: x23 x24: x24
+STACK CFI 755d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 755d4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 755d8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 755e0 240 .cfa: sp 0 + .ra: x30
+STACK CFI 755e4 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 755e8 .cfa: x29 224 +
+STACK CFI 755f4 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 75810 x19: x19 x20: x20
+STACK CFI 75814 x21: x21 x22: x22
+STACK CFI 75818 x23: x23 x24: x24
+STACK CFI 7581c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 75820 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75824 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7582c 240 .cfa: sp 0 + .ra: x30
+STACK CFI 75830 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 75834 .cfa: x29 224 +
+STACK CFI 75840 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 75a5c x19: x19 x20: x20
+STACK CFI 75a60 x21: x21 x22: x22
+STACK CFI 75a64 x23: x23 x24: x24
+STACK CFI 75a68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 75a6c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75a70 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75a78 240 .cfa: sp 0 + .ra: x30
+STACK CFI 75a7c .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 75a80 .cfa: x29 224 +
+STACK CFI 75a8c x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 75ca8 x19: x19 x20: x20
+STACK CFI 75cac x21: x21 x22: x22
+STACK CFI 75cb0 x23: x23 x24: x24
+STACK CFI 75cb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 75cb8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75cbc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75cc4 cc .cfa: sp 0 + .ra: x30
+STACK CFI 75cc8 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 75ccc .cfa: x29 64 +
+STACK CFI 75cd4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 75d84 x19: x19 x20: x20
+STACK CFI 75d88 x21: x21 x22: x22
+STACK CFI 75d8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 75d90 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 75d98 440 .cfa: sp 0 + .ra: x30
+STACK CFI 75d9c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 75da0 .cfa: x29 96 +
+STACK CFI 75dac x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 761c8 x19: x19 x20: x20
+STACK CFI 761cc x21: x21 x22: x22
+STACK CFI 761d0 x23: x23 x24: x24
+STACK CFI 761d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 761d8 334 .cfa: sp 0 + .ra: x30
+STACK CFI 761dc .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 761e0 .cfa: x29 96 +
+STACK CFI 761ec x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 764fc x19: x19 x20: x20
+STACK CFI 76500 x21: x21 x22: x22
+STACK CFI 76504 x23: x23 x24: x24
+STACK CFI 76508 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7650c 17c .cfa: sp 0 + .ra: x30
+STACK CFI 76510 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 76514 .cfa: x29 64 +
+STACK CFI 7651c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 7667c x21: x21
+STACK CFI 76680 x19: x19 x20: x20
+STACK CFI 76684 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4a4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 8 .cfa: x29 144 +
+STACK CFI c x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 20 x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^
+STACK CFI 494 x23: x23
+STACK CFI 498 x19: x19 x20: x20
+STACK CFI 49c x21: x21 x22: x22
+STACK CFI 4a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI c x19: .cfa -32 + ^
+STACK CFI 5c x19: x19
+STACK CFI 60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI c8 x19: x19 x20: x20
+STACK CFI cc x21: x21 x22: x22
+STACK CFI d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 38 x19: x19 x20: x20
+STACK CFI 3c x21: x21 x22: x22
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 44 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 76688 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 7668c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 76690 .cfa: x29 48 +
+STACK CFI 76694 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 766a0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 76744 x19: x19 x20: x20
+STACK CFI 76748 x21: x21 x22: x22
+STACK CFI 7674c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 76750 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 76754 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 76760 .cfa: x29 64 +
+STACK CFI 76764 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7682c x19: x19 x20: x20
+STACK CFI 76830 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 76834 1cc .cfa: sp 0 + .ra: x30
+STACK CFI 76838 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7683c .cfa: x29 96 +
+STACK CFI 7684c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 769ec x25: x25
+STACK CFI 769f0 x19: x19 x20: x20
+STACK CFI 769f4 x21: x21 x22: x22
+STACK CFI 769f8 x23: x23 x24: x24
+STACK CFI 769fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 76a00 84 .cfa: sp 0 + .ra: x30
+STACK CFI 76a04 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 76a0c .cfa: x29 48 +
+STACK CFI 76a80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 76a84 28 .cfa: sp 0 + .ra: x30
+STACK CFI 76a88 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 76a90 .cfa: x29 32 +
+STACK CFI 76aa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 76aac 624 .cfa: sp 0 + .ra: x30
+STACK CFI 76ab0 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 76ab4 .cfa: x29 224 +
+STACK CFI 76ab8 x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 76acc x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x27: .cfa -144 + ^ x28: .cfa -136 + ^
+STACK CFI 770b8 x19: x19 x20: x20
+STACK CFI 770bc x21: x21 x22: x22
+STACK CFI 770c0 x23: x23 x24: x24
+STACK CFI 770c4 x25: x25 x26: x26
+STACK CFI 770c8 x27: x27 x28: x28
+STACK CFI 770cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 770d0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 770d4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 770d8 .cfa: x29 48 +
+STACK CFI 770dc x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 770e8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7718c x19: x19 x20: x20
+STACK CFI 77190 x21: x21 x22: x22
+STACK CFI 77194 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 77198 254 .cfa: sp 0 + .ra: x30
+STACK CFI 7719c .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 771a0 .cfa: x29 224 +
+STACK CFI 771ac x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 773dc x19: x19 x20: x20
+STACK CFI 773e0 x21: x21 x22: x22
+STACK CFI 773e4 x23: x23 x24: x24
+STACK CFI 773e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 773ec 7c8 .cfa: sp 0 + .ra: x30
+STACK CFI 773f0 .cfa: sp 432 + .ra: .cfa -424 + ^ x29: .cfa -432 + ^
+STACK CFI 773f4 .cfa: x29 432 +
+STACK CFI 77408 x19: .cfa -416 + ^ x20: .cfa -408 + ^ x21: .cfa -400 + ^ x22: .cfa -392 + ^ x23: .cfa -384 + ^ x24: .cfa -376 + ^ x25: .cfa -368 + ^ x26: .cfa -360 + ^ x27: .cfa -352 + ^ x28: .cfa -344 + ^
+STACK CFI 77b9c x19: x19 x20: x20
+STACK CFI 77ba0 x21: x21 x22: x22
+STACK CFI 77ba4 x23: x23 x24: x24
+STACK CFI 77ba8 x25: x25 x26: x26
+STACK CFI 77bac x27: x27 x28: x28
+STACK CFI 77bb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 77bb4 70c .cfa: sp 0 + .ra: x30
+STACK CFI 77bb8 .cfa: sp 240 + .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 77bbc .cfa: x29 240 +
+STACK CFI 77bd0 x19: .cfa -224 + ^ x20: .cfa -216 + ^ x21: .cfa -208 + ^ x22: .cfa -200 + ^ x23: .cfa -192 + ^ x24: .cfa -184 + ^ x25: .cfa -176 + ^ x26: .cfa -168 + ^ x27: .cfa -160 + ^ x28: .cfa -152 + ^
+STACK CFI 782a8 x19: x19 x20: x20
+STACK CFI 782ac x21: x21 x22: x22
+STACK CFI 782b0 x23: x23 x24: x24
+STACK CFI 782b4 x25: x25 x26: x26
+STACK CFI 782b8 x27: x27 x28: x28
+STACK CFI 782bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5e8 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 288 + .ra: .cfa -280 + ^ x29: .cfa -288 + ^
+STACK CFI 8 .cfa: x29 288 +
+STACK CFI 20 v8: .cfa -192 + ^ v9: .cfa -184 + ^ x19: .cfa -272 + ^ x20: .cfa -264 + ^ x21: .cfa -256 + ^ x22: .cfa -248 + ^ x23: .cfa -240 + ^ x24: .cfa -232 + ^ x25: .cfa -224 + ^ x26: .cfa -216 + ^ x27: .cfa -208 + ^ x28: .cfa -200 + ^
+STACK CFI 5cc v8: v8 v9: v9
+STACK CFI 5d0 x19: x19 x20: x20
+STACK CFI 5d4 x21: x21 x22: x22
+STACK CFI 5d8 x23: x23 x24: x24
+STACK CFI 5dc x25: x25 x26: x26
+STACK CFI 5e0 x27: x27 x28: x28
+STACK CFI 5e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 782c0 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 782c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 782c8 .cfa: x29 48 +
+STACK CFI 782cc x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 782d8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7837c x19: x19 x20: x20
+STACK CFI 78380 x21: x21 x22: x22
+STACK CFI 78384 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 78388 e4 .cfa: sp 0 + .ra: x30
+STACK CFI 7838c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 78398 .cfa: x29 64 +
+STACK CFI 7839c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 78464 x19: x19 x20: x20
+STACK CFI 78468 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7846c 1cc .cfa: sp 0 + .ra: x30
+STACK CFI 78470 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 78474 .cfa: x29 96 +
+STACK CFI 78484 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 78624 x25: x25
+STACK CFI 78628 x19: x19 x20: x20
+STACK CFI 7862c x21: x21 x22: x22
+STACK CFI 78630 x23: x23 x24: x24
+STACK CFI 78634 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 78638 6e4 .cfa: sp 0 + .ra: x30
+STACK CFI 7863c .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 78640 .cfa: x29 304 +
+STACK CFI 7865c v10: .cfa -192 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 78cfc v8: v8 v9: v9
+STACK CFI 78d00 x19: x19 x20: x20
+STACK CFI 78d04 x21: x21 x22: x22
+STACK CFI 78d08 x23: x23 x24: x24
+STACK CFI 78d0c x25: x25 x26: x26
+STACK CFI 78d10 x27: x27 x28: x28
+STACK CFI 78d14 v10: v10
+STACK CFI 78d18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 78d1c d4 .cfa: sp 0 + .ra: x30
+STACK CFI 78d20 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 78d24 .cfa: x29 48 +
+STACK CFI 78d2c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 78de4 x21: x21
+STACK CFI 78de8 x19: x19 x20: x20
+STACK CFI 78dec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 78df0 60 .cfa: sp 0 + .ra: x30
+STACK CFI 78df4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 78df8 .cfa: x29 32 +
+STACK CFI 78dfc x19: .cfa -16 + ^
+STACK CFI 78e48 x19: x19
+STACK CFI 78e4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 78e50 1f8 .cfa: sp 0 + .ra: x30
+STACK CFI 78e54 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 78e58 .cfa: x29 96 +
+STACK CFI 78e68 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 79034 x19: x19 x20: x20
+STACK CFI 79038 x21: x21 x22: x22
+STACK CFI 7903c x23: x23 x24: x24
+STACK CFI 79040 x25: x25 x26: x26
+STACK CFI 79044 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79048 130 .cfa: sp 0 + .ra: x30
+STACK CFI 7904c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 79054 .cfa: x29 32 +
+STACK CFI 79058 x19: .cfa -16 + ^
+STACK CFI 79154 x19: x19
+STACK CFI 79158 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7915c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 79178 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7917c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 79180 .cfa: x29 32 +
+STACK CFI 79184 x19: .cfa -16 + ^
+STACK CFI 79194 x19: x19
+STACK CFI 79198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7919c a8 .cfa: sp 0 + .ra: x30
+STACK CFI 791a0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 791a4 .cfa: x29 48 +
+STACK CFI 791a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 79230 x19: x19 x20: x20
+STACK CFI 79234 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 79238 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 7923c x19: x19 x20: x20
+STACK CFI 79240 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79244 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 79250 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 79260 24 .cfa: sp 0 + .ra: x30
+STACK CFI 79264 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 79268 .cfa: x29 32 +
+STACK CFI 7926c x19: .cfa -16 + ^
+STACK CFI 7927c x19: x19
+STACK CFI 79280 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79284 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 79294 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 792a0 bc .cfa: sp 0 + .ra: x30
+STACK CFI 792a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 792a8 .cfa: x29 32 +
+STACK CFI 792ac x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 79354 x19: x19 x20: x20
+STACK CFI 79358 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7935c 94 .cfa: sp 0 + .ra: x30
+STACK CFI 79360 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 79368 .cfa: x29 64 +
+STACK CFI 79370 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 793e0 x19: x19 x20: x20
+STACK CFI 793e8 x21: x21
+STACK CFI 793ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 793f0 8c .cfa: sp 0 + .ra: x30
+STACK CFI 793f4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 793f8 .cfa: x29 64 +
+STACK CFI 79400 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 79470 x19: x19 x20: x20
+STACK CFI 79474 x21: x21
+STACK CFI 79478 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7947c 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI 79480 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 79484 .cfa: x29 96 +
+STACK CFI 7948c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 79664 x19: x19 x20: x20
+STACK CFI 79668 x21: x21 x22: x22
+STACK CFI 7966c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79670 fc .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7976c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 79770 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7977c .cfa: x29 64 +
+STACK CFI 79784 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 79884 x19: x19 x20: x20
+STACK CFI 79888 x21: x21 x22: x22
+STACK CFI 7988c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79890 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7989c 20 .cfa: sp 0 + .ra: x30
+STACK CFI 798a0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 798a4 .cfa: x29 16 +
+STACK CFI 798b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 798bc 1c .cfa: sp 0 + .ra: x30
+STACK CFI 798c0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 798c4 .cfa: x29 16 +
+STACK CFI 798d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8 .cfa: x29 32 +
+STACK CFI c x19: .cfa -16 + ^
+STACK CFI 44 x19: x19
+STACK CFI 48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 248e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 798d8 54 .cfa: sp 0 + .ra: x30
+STACK CFI 798dc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 798e4 .cfa: x29 16 +
+STACK CFI 79928 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^
+STACK CFI 8c x19: x19 x20: x20
+STACK CFI 90 x21: x21
+STACK CFI 94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24cf8 1c .cfa: sp 0 + .ra: x30
+STACK CFI 24cfc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d00 .cfa: x29 16 +
+STACK CFI 24d10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 24d14 3c .cfa: sp 0 + .ra: x30
+STACK CFI 24d18 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 24d1c .cfa: x29 16 +
+STACK CFI 24d4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25644 5c .cfa: sp 0 + .ra: x30
+STACK CFI 25648 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 2564c .cfa: x29 32 +
+STACK CFI 25650 x19: .cfa -16 + ^
+STACK CFI 25698 x19: x19
+STACK CFI 2569c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI c .cfa: x29 32 +
+STACK CFI 10 x19: .cfa -16 + ^
+STACK CFI 70 x19: x19
+STACK CFI 74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 25718 50 .cfa: sp 0 + .ra: x30
+STACK CFI 2571c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 25720 .cfa: x29 32 +
+STACK CFI 25724 x19: .cfa -16 + ^
+STACK CFI 25754 x19: x19
+STACK CFI 25758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 2575c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 25760 x19: x19
+STACK CFI 25764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8 .cfa: x29 80 +
+STACK CFI 14 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI f4 x19: x19 x20: x20
+STACK CFI f8 x21: x21 x22: x22
+STACK CFI fc x23: x23 x24: x24
+STACK CFI 100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 8 .cfa: x29 64 +
+STACK CFI 10 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 130 x19: x19 x20: x20
+STACK CFI 134 x21: x21 x22: x22
+STACK CFI 138 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 54490 ec .cfa: sp 0 + .ra: x30
+STACK CFI 54494 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 54498 .cfa: x29 80 +
+STACK CFI 544a0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^
+STACK CFI 5456c x21: x21
+STACK CFI 54574 x19: x19 x20: x20
+STACK CFI 54578 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7992c 58 .cfa: sp 0 + .ra: x30
+STACK CFI 79930 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 79934 .cfa: x29 48 +
+STACK CFI 7993c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 79978 x19: x19 x20: x20
+STACK CFI 7997c x21: x21
+STACK CFI 79980 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79984 50 .cfa: sp 0 + .ra: x30
+STACK CFI 79988 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 79990 .cfa: x29 32 +
+STACK CFI 79994 x19: .cfa -16 + ^
+STACK CFI 799c0 x19: x19
+STACK CFI 799c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 799c8 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 799cc x19: x19
+STACK CFI 799d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 799d4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 799d8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 799dc .cfa: x29 32 +
+STACK CFI 799e0 x19: .cfa -16 + ^
+STACK CFI 799f0 x19: x19
+STACK CFI 799f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 799f8 40 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 79a38 12c .cfa: sp 0 + .ra: x30
+STACK CFI 79a3c .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 79a40 .cfa: x29 144 +
+STACK CFI 79a4c x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^
+STACK CFI 79b50 x23: x23
+STACK CFI 79b58 x19: x19 x20: x20
+STACK CFI 79b5c x21: x21 x22: x22
+STACK CFI 79b60 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79b64 234 .cfa: sp 0 + .ra: x30
+STACK CFI 79b68 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 79b6c .cfa: x29 112 +
+STACK CFI 79b78 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 79d88 x19: x19 x20: x20
+STACK CFI 79d8c x21: x21 x22: x22
+STACK CFI 79d90 x23: x23 x24: x24
+STACK CFI 79d94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79d98 64 .cfa: sp 0 + .ra: x30
+STACK CFI 79d9c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 79da4 .cfa: x29 48 +
+STACK CFI 79da8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 79df4 x19: x19 x20: x20
+STACK CFI 79df8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: x30
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8 .cfa: x29 48 +
+STACK CFI 10 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 38 x19: x19 x20: x20
+STACK CFI 3c x21: x21 x22: x22
+STACK CFI 40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 44 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 79dfc c8 .cfa: sp 0 + .ra: x30
+STACK CFI 79e00 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 79e04 .cfa: x29 48 +
+STACK CFI 79e08 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 79e14 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 79eb8 x19: x19 x20: x20
+STACK CFI 79ebc x21: x21 x22: x22
+STACK CFI 79ec0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 79ec4 2d8 .cfa: sp 0 + .ra: x30
+STACK CFI 79ec8 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 79ecc .cfa: x29 224 +
+STACK CFI 79ed8 x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 7a18c x19: x19 x20: x20
+STACK CFI 7a190 x21: x21 x22: x22
+STACK CFI 7a194 x23: x23 x24: x24
+STACK CFI 7a198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7a19c 204 .cfa: sp 0 + .ra: x30
+STACK CFI 7a1a0 .cfa: sp 192 + .ra: .cfa -184 + ^ x29: .cfa -192 + ^
+STACK CFI 7a1a4 .cfa: x29 192 +
+STACK CFI 7a1a8 x19: .cfa -176 + ^ x20: .cfa -168 + ^
+STACK CFI 7a1d8 v8: .cfa -96 + ^ x21: .cfa -160 + ^ x22: .cfa -152 + ^ x23: .cfa -144 + ^ x24: .cfa -136 + ^ x25: .cfa -128 + ^ x26: .cfa -120 + ^ x27: .cfa -112 + ^ x28: .cfa -104 + ^
+STACK CFI 7a384 x19: x19 x20: x20
+STACK CFI 7a388 x21: x21 x22: x22
+STACK CFI 7a38c x23: x23 x24: x24
+STACK CFI 7a390 x25: x25 x26: x26
+STACK CFI 7a394 x27: x27 x28: x28
+STACK CFI 7a398 v8: v8
+STACK CFI 7a39c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7a3a0 34 .cfa: sp 0 + .ra: x30
+STACK CFI 7a3a4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7a3a8 .cfa: x29 48 +
+STACK CFI 7a3ac x19: .cfa -32 + ^
+STACK CFI 7a3cc x19: x19
+STACK CFI 7a3d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 6d160 9c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a3d4 5c .cfa: sp 0 + .ra: x30
+STACK CFI 7a3d8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7a3dc .cfa: x29 48 +
+STACK CFI 7a3e4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7a414 x21: x21
+STACK CFI 7a418 x19: x19 x20: x20
+STACK CFI 7a41c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a420 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 7a424 x19: x19 x20: x20
+STACK CFI 7a428 x21: x21
+STACK CFI 7a42c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7a430 74 .cfa: sp 0 + .ra: x30
+STACK CFI 7a434 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7a438 .cfa: x29 32 +
+STACK CFI 7a43c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7a498 x19: x19 x20: x20
+STACK CFI 7a49c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7a4a4 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a4b4 14 .cfa: sp 0 + .ra: x30
+STACK CFI 7a4b8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a4c0 .cfa: x29 16 +
+STACK CFI INIT 7a4c8 168 .cfa: sp 0 + .ra: x30
+STACK CFI 7a4cc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7a4d0 .cfa: x29 64 +
+STACK CFI 7a4d4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7a4dc x21: .cfa -32 + ^
+STACK CFI 7a4f4 x21: x21
+STACK CFI 7a4f8 x19: x19 x20: x20
+STACK CFI 7a4fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a500 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x29: .cfa -64 + ^
+STACK CFI 7a560 x21: x21
+STACK CFI 7a564 x19: x19 x20: x20
+STACK CFI 7a568 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a56c .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 7a630 4c .cfa: sp 0 + .ra: x30
+STACK CFI 7a634 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7a638 .cfa: x29 48 +
+STACK CFI 7a63c x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7a644 x21: .cfa -16 + ^
+STACK CFI INIT 7a67c 2c .cfa: sp 0 + .ra: x30
+STACK CFI 7a684 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a688 .cfa: x29 16 +
+STACK CFI 7a694 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a698 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7a6a8 5c .cfa: sp 0 + .ra: x30
+STACK CFI 7a6ac .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a6b4 .cfa: x29 16 +
+STACK CFI 7a6e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a6e8 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7a704 60 .cfa: sp 0 + .ra: x30
+STACK CFI 7a708 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7a70c .cfa: x29 48 +
+STACK CFI 7a714 x19: .cfa -32 + ^
+STACK CFI 7a728 x19: x19
+STACK CFI 7a72c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a730 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7a764 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a76c 3c .cfa: sp 0 + .ra: x30
+STACK CFI 7a770 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a77c .cfa: x29 16 +
+STACK CFI INIT 7a7a8 58 .cfa: sp 0 + .ra: x30
+STACK CFI 7a7ac .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a7b0 .cfa: x29 16 +
+STACK CFI INIT 7a800 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 7a804 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7a808 .cfa: x29 32 +
+STACK CFI 7a80c x19: .cfa -16 + ^
+STACK CFI 7a870 x19: x19
+STACK CFI 7a878 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a87c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7a8a4 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 7a8a8 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a8ac .cfa: x29 16 +
+STACK CFI 7a8e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a8ec .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a90c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a910 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a938 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7a93c .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 233a4 88 .cfa: sp 0 + .ra: x30
+STACK CFI 233a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 233b4 .cfa: x29 32 +
+STACK CFI 233c0 x19: .cfa -16 + ^
+STACK CFI 23404 x19: x19
+STACK CFI 23414 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 23420 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7a958 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a964 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a968 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a96c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a978 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a97c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a988 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a98c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a990 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a9a0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7a9b0 20 .cfa: sp 0 + .ra: x30
+STACK CFI 7a9b4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7a9b8 .cfa: x29 16 +
+STACK CFI 7a9c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7a9d0 78 .cfa: sp 0 + .ra: x30
+STACK CFI 7a9d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7a9e0 .cfa: x29 32 +
+STACK CFI 7a9e4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI INIT 7aa48 10 .cfa: sp 0 + .ra: x30
+STACK CFI 7aa4c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7aa50 .cfa: x29 16 +
+STACK CFI INIT 7aa58 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 7aa5c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7aa64 .cfa: x29 32 +
+STACK CFI 7aab4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7aab8 .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7aad4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7aad8 .cfa: x29 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7aaf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7aaf8 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7aafc .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7ab00 .cfa: x29 96 +
+STACK CFI 7ab10 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI 7ab84 x25: x25
+STACK CFI 7ab88 x19: x19 x20: x20
+STACK CFI 7ab8c x21: x21 x22: x22
+STACK CFI 7ab90 x23: x23 x24: x24
+STACK CFI 7ab94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ab98 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI 7aba0 x25: x25
+STACK CFI 7aba4 x19: x19 x20: x20
+STACK CFI 7aba8 x21: x21 x22: x22
+STACK CFI 7abac x23: x23 x24: x24
+STACK CFI 7abb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7abb4 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7abbc 3d4 .cfa: sp 0 + .ra: x30
+STACK CFI 7abc0 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 7abc4 .cfa: x29 208 +
+STACK CFI 7abcc v8: .cfa -112 + ^ v9: .cfa -104 + ^ x25: .cfa -144 + ^ x26: .cfa -136 + ^
+STACK CFI 7abe8 v10: .cfa -96 + ^ v11: .cfa -88 + ^ v12: .cfa -80 + ^ v13: .cfa -72 + ^ x23: .cfa -160 + ^ x24: .cfa -152 + ^
+STACK CFI 7abfc v14: .cfa -64 + ^ x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x27: .cfa -128 + ^ x28: .cfa -120 + ^
+STACK CFI 7ad94 x19: x19 x20: x20
+STACK CFI 7ad98 v8: v8 v9: v9
+STACK CFI 7ad9c x21: x21 x22: x22
+STACK CFI 7ada0 v10: v10 v11: v11
+STACK CFI 7ada4 x23: x23 x24: x24
+STACK CFI 7ada8 v12: v12 v13: v13
+STACK CFI 7adac x25: x25 x26: x26
+STACK CFI 7adb0 x27: x27 x28: x28
+STACK CFI 7adb4 v14: v14
+STACK CFI 7adb8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7adbc .cfa: x29 208 + .ra: .cfa -200 + ^ v10: .cfa -96 + ^ v11: .cfa -88 + ^ v12: .cfa -80 + ^ v13: .cfa -72 + ^ v14: .cfa -64 + ^ v8: .cfa -112 + ^ v9: .cfa -104 + ^ x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^ x24: .cfa -152 + ^ x25: .cfa -144 + ^ x26: .cfa -136 + ^ x27: .cfa -128 + ^ x28: .cfa -120 + ^ x29: .cfa -208 + ^
+STACK CFI INIT 7af90 48 .cfa: sp 0 + .ra: x30
+STACK CFI 7af94 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7af98 .cfa: x29 32 +
+STACK CFI 7af9c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7afd0 x19: x19 x20: x20
+STACK CFI 7afd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7afd8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7afe0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7afe4 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7afe8 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7afec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7aff0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7affc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b00c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7b010 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b018 .cfa: x29 32 +
+STACK CFI 7b01c x19: .cfa -16 + ^
+STACK CFI 7b034 x19: x19
+STACK CFI 7b038 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b03c 2c .cfa: sp 0 + .ra: x30
+STACK CFI 7b040 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b044 .cfa: x29 32 +
+STACK CFI 7b048 x19: .cfa -16 + ^
+STACK CFI 7b060 x19: x19
+STACK CFI 7b064 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b068 90 .cfa: sp 0 + .ra: x30
+STACK CFI 7b06c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b070 .cfa: x29 32 +
+STACK CFI 7b074 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7b0ac x19: x19 x20: x20
+STACK CFI 7b0b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b0b4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7b0f8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b0fc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b100 .cfa: x29 16 +
+STACK CFI 7b108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b10c .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7b11c 1b4 .cfa: sp 0 + .ra: x30
+STACK CFI 7b120 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 7b134 .cfa: x29 112 +
+STACK CFI 7b148 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 7b1f4 x23: x23
+STACK CFI 7b1f8 x19: x19 x20: x20
+STACK CFI 7b1fc x21: x21 x22: x22
+STACK CFI 7b200 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b204 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 7b2d0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b2d8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b2e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7b2ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b2f4 .cfa: x29 32 +
+STACK CFI 7b2f8 x19: .cfa -16 + ^
+STACK CFI 7b310 x19: x19
+STACK CFI 7b314 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b318 60 .cfa: sp 0 + .ra: x30
+STACK CFI 7b31c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7b320 .cfa: x29 48 +
+STACK CFI 7b328 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7b36c x19: x19 x20: x20
+STACK CFI 7b370 x21: x21 x22: x22
+STACK CFI 7b374 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b378 18 .cfa: sp 0 + .ra: x30
+STACK CFI 7b380 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b388 .cfa: x29 16 +
+STACK CFI INIT 7b390 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7b394 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b398 .cfa: x29 16 +
+STACK CFI INIT 7b3c0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b3dc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b3e4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b3ec .cfa: x29 16 +
+STACK CFI INIT 7b400 c .cfa: sp 0 + .ra: x30
+STACK CFI 7b404 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b408 .cfa: x29 16 +
+STACK CFI INIT 7b40c 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b428 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b42c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b438 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b448 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7b44c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b454 .cfa: x29 32 +
+STACK CFI 7b458 x19: .cfa -16 + ^
+STACK CFI 7b470 x19: x19
+STACK CFI 7b474 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b478 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b484 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b490 2c .cfa: sp 0 + .ra: x30
+STACK CFI 7b494 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b498 .cfa: x29 32 +
+STACK CFI 7b49c x19: .cfa -16 + ^
+STACK CFI 7b4b4 x19: x19
+STACK CFI 7b4b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b4bc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b4c4 44 .cfa: sp 0 + .ra: x30
+STACK CFI 7b4c8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b4d4 .cfa: x29 32 +
+STACK CFI 7b4d8 x19: .cfa -16 + ^
+STACK CFI 7b500 x19: x19
+STACK CFI 7b504 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b508 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b50c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b510 .cfa: x29 32 +
+STACK CFI 7b514 x19: .cfa -16 + ^
+STACK CFI 7b524 x19: x19
+STACK CFI 7b528 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b52c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b540 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b544 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b548 .cfa: x29 32 +
+STACK CFI 7b54c x19: .cfa -16 + ^
+STACK CFI 7b55c x19: x19
+STACK CFI 7b560 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b564 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b578 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b57c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b580 .cfa: x29 32 +
+STACK CFI 7b584 x19: .cfa -16 + ^
+STACK CFI 7b594 x19: x19
+STACK CFI 7b598 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b59c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b5b0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7b5b4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7b5b8 .cfa: x29 32 +
+STACK CFI 7b5bc x19: .cfa -16 + ^
+STACK CFI 7b5cc x19: x19
+STACK CFI 7b5d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b5d4 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b5ec a0 .cfa: sp 0 + .ra: x30
+STACK CFI 7b5f0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7b5f4 .cfa: x29 48 +
+STACK CFI 7b5fc x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7b654 x19: x19 x20: x20
+STACK CFI 7b658 x21: x21 x22: x22
+STACK CFI 7b65c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b660 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7b68c c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7b690 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 7b694 .cfa: x29 128 +
+STACK CFI 7b69c x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI INIT 7b750 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7b754 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 7b758 .cfa: x29 128 +
+STACK CFI 7b760 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^
+STACK CFI INIT 7b814 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b82c 28 .cfa: sp 0 + .ra: x30
+STACK CFI 7b830 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7b838 .cfa: x29 16 +
+STACK CFI 7b850 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b854 60 .cfa: sp 0 + .ra: x30
+STACK CFI 7b858 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 7b85c .cfa: x29 160 +
+STACK CFI 7b860 x19: .cfa -144 + ^
+STACK CFI 7b890 x19: x19
+STACK CFI 7b894 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b898 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x29: .cfa -160 + ^
+STACK CFI 7b8a0 x19: x19
+STACK CFI 7b8b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7b8b4 140 .cfa: sp 0 + .ra: x30
+STACK CFI 7b8b8 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 7b8bc .cfa: x29 176 +
+STACK CFI 7b8c0 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 7b8cc x21: .cfa -144 + ^ x22: .cfa -136 + ^
+STACK CFI 7b8f0 x19: x19 x20: x20
+STACK CFI 7b8f4 x21: x21 x22: x22
+STACK CFI 7b8f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b8fc .cfa: x29 176 + .ra: .cfa -168 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x29: .cfa -176 + ^
+STACK CFI 7b978 x19: x19 x20: x20
+STACK CFI 7b97c x21: x21 x22: x22
+STACK CFI 7b980 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7b984 .cfa: x29 176 + .ra: .cfa -168 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x29: .cfa -176 + ^
+STACK CFI INIT 7b9f4 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7b9fc d4 .cfa: sp 0 + .ra: x30
+STACK CFI 7ba00 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 7ba04 .cfa: x29 176 +
+STACK CFI 7ba0c x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^
+STACK CFI 7ba8c x19: x19 x20: x20
+STACK CFI 7ba90 x21: x21
+STACK CFI 7ba94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ba98 .cfa: x29 176 + .ra: .cfa -168 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x29: .cfa -176 + ^
+STACK CFI 7baa0 x21: x21
+STACK CFI 7baa4 x19: x19 x20: x20
+STACK CFI 7baa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7baac .cfa: x29 176 + .ra: .cfa -168 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x29: .cfa -176 + ^
+STACK CFI INIT 7bad0 58 .cfa: sp 0 + .ra: x30
+STACK CFI 7bad4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7badc .cfa: x29 32 +
+STACK CFI 7bae0 x19: .cfa -16 + ^
+STACK CFI 7bb0c x19: x19
+STACK CFI 7bb10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bb14 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7bb28 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7bb30 68 .cfa: sp 0 + .ra: x30
+STACK CFI 7bb34 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7bb38 .cfa: x29 48 +
+STACK CFI 7bb40 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7bb8c x19: x19 x20: x20
+STACK CFI 7bb90 x21: x21
+STACK CFI 7bb94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7bb98 90 .cfa: sp 0 + .ra: x30
+STACK CFI 7bb9c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7bba4 .cfa: x29 48 +
+STACK CFI 7bba8 x19: .cfa -32 + ^
+STACK CFI 7bbc8 x19: x19
+STACK CFI 7bbcc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bbd0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7bbe0 x19: x19
+STACK CFI 7bbe4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bbe8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7bc0c x19: x19
+STACK CFI 7bc10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bc14 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7bc20 x19: x19
+STACK CFI 7bc24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7bc28 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7bc34 8c .cfa: sp 0 + .ra: x30
+STACK CFI 7bc38 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7bc40 .cfa: x29 48 +
+STACK CFI 7bc44 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7bc50 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7bc94 x19: x19 x20: x20
+STACK CFI 7bc98 x21: x21 x22: x22
+STACK CFI 7bc9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bca0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7bcc0 424 .cfa: sp 0 + .ra: x30
+STACK CFI 7bcc4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 7bcc8 .cfa: x29 80 +
+STACK CFI 7bcd4 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 7bd14 x19: x19 x20: x20
+STACK CFI 7bd18 x21: x21 x22: x22
+STACK CFI 7bd1c x23: x23 x24: x24
+STACK CFI 7bd20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bd24 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7bf6c x21: x21 x22: x22
+STACK CFI 7bf70 x19: x19 x20: x20
+STACK CFI 7bf74 x23: x23 x24: x24
+STACK CFI 7bf78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bf7c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7bfe0 x21: x21 x22: x22
+STACK CFI 7bfe4 x19: x19 x20: x20
+STACK CFI 7bfe8 x23: x23 x24: x24
+STACK CFI 7bfec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7bff0 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 7c0e4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c0f8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7c0fc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c100 .cfa: x29 32 +
+STACK CFI 7c104 x19: .cfa -16 + ^
+STACK CFI 7c114 x19: x19
+STACK CFI 7c118 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c11c 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c134 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7c138 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c13c .cfa: x29 32 +
+STACK CFI 7c140 x19: .cfa -16 + ^
+STACK CFI 7c15c x19: x19
+STACK CFI 7c160 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c164 60 .cfa: sp 0 + .ra: x30
+STACK CFI 7c168 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7c16c .cfa: x29 48 +
+STACK CFI 7c170 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7c178 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7c1b8 x19: x19 x20: x20
+STACK CFI 7c1bc x21: x21 x22: x22
+STACK CFI 7c1c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c1c4 d0 .cfa: sp 0 + .ra: x30
+STACK CFI 7c1c8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 7c1cc .cfa: x29 80 +
+STACK CFI 7c1d0 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 7c1dc x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 7c23c x23: x23
+STACK CFI 7c244 x19: x19 x20: x20
+STACK CFI 7c248 x21: x21 x22: x22
+STACK CFI 7c24c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c250 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI 7c26c x23: x23
+STACK CFI 7c274 x19: x19 x20: x20
+STACK CFI 7c278 x21: x21 x22: x22
+STACK CFI 7c27c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c280 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 7c294 64 .cfa: sp 0 + .ra: x30
+STACK CFI 7c2a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c2a4 .cfa: x29 32 +
+STACK CFI 7c2ac x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7c2dc x19: x19 x20: x20
+STACK CFI 7c2e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c2e4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7c2f8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7c2fc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c300 .cfa: x29 32 +
+STACK CFI 7c304 x19: .cfa -16 + ^
+STACK CFI 7c314 x19: x19
+STACK CFI 7c318 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c31c c0 .cfa: sp 0 + .ra: x30
+STACK CFI 7c320 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7c328 .cfa: x29 96 +
+STACK CFI 7c330 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^
+STACK CFI INIT 7c3dc 6c .cfa: sp 0 + .ra: x30
+STACK CFI 7c3e0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c3e8 .cfa: x29 32 +
+STACK CFI 7c3ec x19: .cfa -16 + ^
+STACK CFI 7c440 x19: x19
+STACK CFI 7c444 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c448 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c44c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c450 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c45c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c468 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c470 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c478 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c480 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c488 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c490 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c4a0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7c4a4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c4ac .cfa: x29 32 +
+STACK CFI 7c4b0 x19: .cfa -16 + ^
+STACK CFI 7c4c8 x19: x19
+STACK CFI 7c4cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c4d0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c4e0 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7c4e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c4ec .cfa: x29 32 +
+STACK CFI 7c4f0 x19: .cfa -16 + ^
+STACK CFI 7c508 x19: x19
+STACK CFI 7c50c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c510 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c530 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c540 3c .cfa: sp 0 + .ra: x30
+STACK CFI 7c544 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c54c .cfa: x29 32 +
+STACK CFI 7c550 x19: .cfa -16 + ^
+STACK CFI 7c574 x19: x19
+STACK CFI 7c578 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c57c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c58c 20 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c5ac 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c5bc 3c .cfa: sp 0 + .ra: x30
+STACK CFI 7c5c0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c5c8 .cfa: x29 32 +
+STACK CFI 7c5cc x19: .cfa -16 + ^
+STACK CFI 7c5f0 x19: x19
+STACK CFI 7c5f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c5f8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7c608 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7c60c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7c614 .cfa: x29 64 +
+STACK CFI 7c620 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7c6b4 x23: x23
+STACK CFI 7c6b8 x19: x19 x20: x20
+STACK CFI 7c6bc x21: x21 x22: x22
+STACK CFI 7c6c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c6c4 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 7c6cc c8 .cfa: sp 0 + .ra: x30
+STACK CFI 7c6d0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7c6d8 .cfa: x29 64 +
+STACK CFI 7c6e4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7c784 x23: x23
+STACK CFI 7c788 x19: x19 x20: x20
+STACK CFI 7c78c x21: x21 x22: x22
+STACK CFI 7c790 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c794 38 .cfa: sp 0 + .ra: x30
+STACK CFI 7c798 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7c7a0 .cfa: x29 16 +
+STACK CFI 7c7c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c7cc dc .cfa: sp 0 + .ra: x30
+STACK CFI 7c7d0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 7c7d4 .cfa: x29 80 +
+STACK CFI 7c7e0 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 7c87c x19: x19 x20: x20
+STACK CFI 7c880 x21: x21 x22: x22
+STACK CFI 7c884 x23: x23 x24: x24
+STACK CFI 7c888 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c88c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7c898 x19: x19 x20: x20
+STACK CFI 7c89c x21: x21 x22: x22
+STACK CFI 7c8a0 x23: x23 x24: x24
+STACK CFI 7c8a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c8a8 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 7c8ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c8b4 .cfa: x29 32 +
+STACK CFI 7c8b8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7c8e4 x19: x19 x20: x20
+STACK CFI 7c8e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c8ec .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 7c924 x19: x19 x20: x20
+STACK CFI 7c928 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7c92c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 7c938 x19: x19 x20: x20
+STACK CFI 7c948 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c94c 40 .cfa: sp 0 + .ra: x30
+STACK CFI 7c950 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7c954 .cfa: x29 32 +
+STACK CFI 7c95c x19: .cfa -16 + ^
+STACK CFI 7c984 x19: x19
+STACK CFI 7c988 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7c98c c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7c990 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7c998 .cfa: x29 64 +
+STACK CFI 7c9a4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7ca40 x23: x23
+STACK CFI 7ca44 x19: x19 x20: x20
+STACK CFI 7ca48 x21: x21 x22: x22
+STACK CFI 7ca4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7ca50 e4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7cb34 544 .cfa: sp 0 + .ra: x30
+STACK CFI 7cb38 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7cb3c .cfa: x29 64 +
+STACK CFI 7cb40 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 7cb50 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 7cfe8 x19: x19 x20: x20
+STACK CFI 7cfec x21: x21 x22: x22
+STACK CFI 7cff0 x23: x23 x24: x24
+STACK CFI 7cff4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7cff8 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 7d040 x19: x19 x20: x20
+STACK CFI 7d044 x21: x21 x22: x22
+STACK CFI 7d048 x23: x23 x24: x24
+STACK CFI 7d04c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d050 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 7d078 34 .cfa: sp 0 + .ra: x30
+STACK CFI 7d080 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7d084 .cfa: x29 16 +
+STACK CFI 7d09c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d0a0 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7d0a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7d0ac 34 .cfa: sp 0 + .ra: x30
+STACK CFI 7d0b0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7d0b4 .cfa: x29 16 +
+STACK CFI 7d0cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d0d0 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7d0e0 100 .cfa: sp 0 + .ra: x30
+STACK CFI 7d0e4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7d0e8 .cfa: x29 48 +
+STACK CFI 7d0ec x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7d0f8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7d134 x19: x19 x20: x20
+STACK CFI 7d138 x21: x21 x22: x22
+STACK CFI 7d13c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d140 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 7d14c x21: x21 x22: x22
+STACK CFI 7d150 x19: x19 x20: x20
+STACK CFI 7d154 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d158 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 7d1c4 x19: x19 x20: x20
+STACK CFI 7d1c8 x21: x21 x22: x22
+STACK CFI 7d1cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d1d0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7d1e0 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7d1fc 194 .cfa: sp 0 + .ra: x30
+STACK CFI 7d200 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7d204 .cfa: x29 96 +
+STACK CFI 7d208 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 7d214 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 7d2f0 x21: x21 x22: x22
+STACK CFI 7d2f4 x19: x19 x20: x20
+STACK CFI 7d2f8 x23: x23 x24: x24
+STACK CFI 7d2fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d300 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7d390 100 .cfa: sp 0 + .ra: x30
+STACK CFI 7d394 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7d398 .cfa: x29 48 +
+STACK CFI 7d39c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7d3a8 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7d3e4 x19: x19 x20: x20
+STACK CFI 7d3e8 x21: x21 x22: x22
+STACK CFI 7d3ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d3f0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 7d3fc x21: x21 x22: x22
+STACK CFI 7d400 x19: x19 x20: x20
+STACK CFI 7d404 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d408 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 7d474 x19: x19 x20: x20
+STACK CFI 7d478 x21: x21 x22: x22
+STACK CFI 7d47c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d480 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7d490 dc .cfa: sp 0 + .ra: x30
+STACK CFI 7d494 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7d498 .cfa: x29 48 +
+STACK CFI 7d4a0 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7d508 x19: x19 x20: x20
+STACK CFI 7d50c x21: x21
+STACK CFI 7d510 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d514 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 7d544 x21: x21
+STACK CFI 7d548 x19: x19 x20: x20
+STACK CFI 7d54c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d550 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7d56c 68 .cfa: sp 0 + .ra: x30
+STACK CFI 7d570 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7d574 .cfa: x29 32 +
+STACK CFI 7d578 x19: .cfa -16 + ^
+STACK CFI 7d59c x19: x19
+STACK CFI 7d5a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d5a4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7d5d4 2b8 .cfa: sp 0 + .ra: x30
+STACK CFI 7d5d8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 7d5dc .cfa: x29 80 +
+STACK CFI 7d5e8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 7d628 x19: x19 x20: x20
+STACK CFI 7d62c x21: x21 x22: x22
+STACK CFI 7d630 x23: x23 x24: x24
+STACK CFI 7d634 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d638 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7d77c x21: x21 x22: x22
+STACK CFI 7d780 x19: x19 x20: x20
+STACK CFI 7d784 x23: x23 x24: x24
+STACK CFI 7d788 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d78c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7d7d8 x19: x19 x20: x20
+STACK CFI 7d7dc x21: x21 x22: x22
+STACK CFI 7d7e0 x23: x23 x24: x24
+STACK CFI 7d7e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d7e8 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI 7d83c x21: x21 x22: x22
+STACK CFI 7d840 x19: x19 x20: x20
+STACK CFI 7d844 x23: x23 x24: x24
+STACK CFI 7d848 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7d84c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 7d88c 2b4 .cfa: sp 0 + .ra: x30
+STACK CFI 7d890 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7d894 .cfa: x29 96 +
+STACK CFI 7d8a4 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 7da2c x19: x19 x20: x20
+STACK CFI 7da30 x21: x21 x22: x22
+STACK CFI 7da34 x23: x23 x24: x24
+STACK CFI 7da38 x25: x25 x26: x26
+STACK CFI 7da3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7da40 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x29: .cfa -96 + ^
+STACK CFI 7dac0 x19: x19 x20: x20
+STACK CFI 7dac4 x21: x21 x22: x22
+STACK CFI 7dac8 x23: x23 x24: x24
+STACK CFI 7dacc x25: x25 x26: x26
+STACK CFI 7dad0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7dad4 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x29: .cfa -96 + ^
+STACK CFI 7daf8 x19: x19 x20: x20
+STACK CFI 7dafc x21: x21 x22: x22
+STACK CFI 7db00 x23: x23 x24: x24
+STACK CFI 7db04 x25: x25 x26: x26
+STACK CFI 7db08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7db0c .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7db40 164 .cfa: sp 0 + .ra: x30
+STACK CFI 7db44 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7db4c .cfa: x29 32 +
+STACK CFI 7db50 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7dc20 x19: x19 x20: x20
+STACK CFI 7dc24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7dc28 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7dca4 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7dca8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7dcac .cfa: x29 32 +
+STACK CFI 7dcb0 x19: .cfa -16 + ^
+STACK CFI 7dcc0 x19: x19
+STACK CFI 7dcc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7dcc8 64 .cfa: sp 0 + .ra: x30
+STACK CFI 7dccc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7dcd0 .cfa: x29 32 +
+STACK CFI 7dcd4 x19: .cfa -16 + ^
+STACK CFI 7dd04 x19: x19
+STACK CFI 7dd08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7dd0c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 7dd14 x19: x19
+STACK CFI 7dd18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7dd1c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7dd2c 230 .cfa: sp 0 + .ra: x30
+STACK CFI 7dd30 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7dd34 .cfa: x29 96 +
+STACK CFI 7dd38 x25: .cfa -32 + ^
+STACK CFI 7dd4c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 7de84 x25: x25
+STACK CFI 7de88 x19: x19 x20: x20
+STACK CFI 7de8c x21: x21 x22: x22
+STACK CFI 7de90 x23: x23 x24: x24
+STACK CFI 7de94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7de98 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI 7dec8 x25: x25
+STACK CFI 7ded0 x19: x19 x20: x20
+STACK CFI 7ded4 x21: x21 x22: x22
+STACK CFI 7ded8 x23: x23 x24: x24
+STACK CFI 7dedc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7dee0 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI 7deec x25: x25
+STACK CFI 7def4 x19: x19 x20: x20
+STACK CFI 7def8 x21: x21 x22: x22
+STACK CFI 7defc x23: x23 x24: x24
+STACK CFI 7df00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7df04 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7df5c 22c .cfa: sp 0 + .ra: x30
+STACK CFI 7df60 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7df64 .cfa: x29 96 +
+STACK CFI 7df68 x25: .cfa -32 + ^
+STACK CFI 7df7c x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 7e0ac x19: x19 x20: x20
+STACK CFI 7e0b0 x21: x21 x22: x22
+STACK CFI 7e0b4 x23: x23 x24: x24
+STACK CFI 7e0b8 x25: x25
+STACK CFI 7e0bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7e0c0 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI 7e0ec x25: x25
+STACK CFI 7e0f4 x19: x19 x20: x20
+STACK CFI 7e0f8 x21: x21 x22: x22
+STACK CFI 7e0fc x23: x23 x24: x24
+STACK CFI 7e100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7e104 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI 7e110 x25: x25
+STACK CFI 7e114 x19: x19 x20: x20
+STACK CFI 7e118 x21: x21 x22: x22
+STACK CFI 7e11c x23: x23 x24: x24
+STACK CFI 7e120 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7e124 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7e188 80c .cfa: sp 0 + .ra: x30
+STACK CFI 7e18c .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 7e190 .cfa: x29 144 +
+STACK CFI 7e194 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 7e1a8 x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 7e6c0 x19: x19 x20: x20
+STACK CFI 7e6c4 x21: x21 x22: x22
+STACK CFI 7e6c8 x23: x23 x24: x24
+STACK CFI 7e6cc x25: x25 x26: x26
+STACK CFI 7e6d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7e6d4 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 7e994 38 .cfa: sp 0 + .ra: x30
+STACK CFI 7e99c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7e9a0 .cfa: x29 16 +
+STACK CFI 7e9b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7e9bc .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7e9c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7e9cc cc .cfa: sp 0 + .ra: x30
+STACK CFI 7e9d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7e9d4 .cfa: x29 32 +
+STACK CFI 7e9d8 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7ea20 x19: x19 x20: x20
+STACK CFI 7ea24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ea28 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 7ea88 x19: x19 x20: x20
+STACK CFI 7ea8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ea90 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7ea98 10c .cfa: sp 0 + .ra: x30
+STACK CFI 7ea9c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7eaa0 .cfa: x29 48 +
+STACK CFI 7eaa8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7eac8 x19: x19 x20: x20
+STACK CFI 7eacc x21: x21 x22: x22
+STACK CFI 7ead0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ead4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7eba4 c8 .cfa: sp 0 + .ra: x30
+STACK CFI 7eba8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7ebb0 .cfa: x29 48 +
+STACK CFI 7ebb8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 7ec5c x21: x21
+STACK CFI 7ec64 x19: x19 x20: x20
+STACK CFI 7ec68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7ec6c 3ec .cfa: sp 0 + .ra: x30
+STACK CFI 7ec70 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 7ec74 .cfa: x29 96 +
+STACK CFI 7ec80 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 7ecb0 x19: x19 x20: x20
+STACK CFI 7ecb4 x21: x21 x22: x22
+STACK CFI 7ecb8 x23: x23
+STACK CFI 7ecbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7ecc0 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x29: .cfa -96 + ^
+STACK CFI 7edd0 x23: x23
+STACK CFI 7ede4 x19: x19 x20: x20
+STACK CFI 7ede8 x21: x21 x22: x22
+STACK CFI 7edec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7edf0 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 7f058 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f06c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 7f070 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f074 .cfa: x29 32 +
+STACK CFI 7f078 x19: .cfa -16 + ^
+STACK CFI 7f088 x19: x19
+STACK CFI 7f08c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f090 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f0a8 3c .cfa: sp 0 + .ra: x30
+STACK CFI 7f0ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f0b0 .cfa: x29 32 +
+STACK CFI 7f0b4 x19: .cfa -16 + ^
+STACK CFI 7f0cc x19: x19
+STACK CFI 7f0d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f0d4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7f0e4 38 .cfa: sp 0 + .ra: x30
+STACK CFI 7f0e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f0ec .cfa: x29 32 +
+STACK CFI 7f0f0 x19: .cfa -16 + ^
+STACK CFI 7f104 x19: x19
+STACK CFI 7f108 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f10c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7f11c 28 .cfa: sp 0 + .ra: x30
+STACK CFI 7f120 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f124 .cfa: x29 32 +
+STACK CFI 7f128 x19: .cfa -16 + ^
+STACK CFI 7f13c x19: x19
+STACK CFI 7f140 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f144 2c .cfa: sp 0 + .ra: x30
+STACK CFI 7f148 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7f14c .cfa: x29 16 +
+STACK CFI 7f15c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f160 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7f170 60 .cfa: sp 0 + .ra: x30
+STACK CFI 7f174 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f178 .cfa: x29 32 +
+STACK CFI 7f184 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 7f1b0 x19: x19 x20: x20
+STACK CFI 7f1b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f1b8 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7f1d0 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f1fc 38 .cfa: sp 0 + .ra: x30
+STACK CFI 7f200 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7f204 .cfa: x29 16 +
+STACK CFI 7f22c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f230 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI INIT 7f234 9c .cfa: sp 0 + .ra: x30
+STACK CFI 7f238 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7f23c .cfa: x29 48 +
+STACK CFI 7f240 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 7f24c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 7f298 x19: x19 x20: x20
+STACK CFI 7f29c x21: x21 x22: x22
+STACK CFI 7f2a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f2a4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7f2d0 1d0 .cfa: sp 0 + .ra: x30
+STACK CFI 7f2d4 .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 7f2d8 .cfa: x29 208 +
+STACK CFI 7f2ec x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^
+STACK CFI 7f394 x23: x23
+STACK CFI 7f398 x19: x19 x20: x20
+STACK CFI 7f39c x21: x21 x22: x22
+STACK CFI 7f3a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f3a4 .cfa: x29 208 + .ra: .cfa -200 + ^ x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^ x29: .cfa -208 + ^
+STACK CFI INIT 7f4a0 1c .cfa: sp 0 + .ra: x30
+STACK CFI 7f4a4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7f4a8 .cfa: x29 16 +
+STACK CFI 7f4b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f4bc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f4c4 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f4cc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f4dc 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f4e0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f4e8 .cfa: x29 32 +
+STACK CFI 7f4ec x19: .cfa -16 + ^
+STACK CFI 7f504 x19: x19
+STACK CFI 7f508 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f50c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f51c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f520 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f528 .cfa: x29 32 +
+STACK CFI 7f52c x19: .cfa -16 + ^
+STACK CFI 7f544 x19: x19
+STACK CFI 7f548 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f54c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f55c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f560 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f568 .cfa: x29 32 +
+STACK CFI 7f56c x19: .cfa -16 + ^
+STACK CFI 7f584 x19: x19
+STACK CFI 7f588 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f58c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f59c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f5a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f5a8 .cfa: x29 32 +
+STACK CFI 7f5ac x19: .cfa -16 + ^
+STACK CFI 7f5c4 x19: x19
+STACK CFI 7f5c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f5cc 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f5dc 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f5e0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f5e8 .cfa: x29 32 +
+STACK CFI 7f5ec x19: .cfa -16 + ^
+STACK CFI 7f604 x19: x19
+STACK CFI 7f608 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f60c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f61c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f620 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f628 .cfa: x29 32 +
+STACK CFI 7f62c x19: .cfa -16 + ^
+STACK CFI 7f644 x19: x19
+STACK CFI 7f648 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f64c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f65c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f660 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f668 .cfa: x29 32 +
+STACK CFI 7f66c x19: .cfa -16 + ^
+STACK CFI 7f684 x19: x19
+STACK CFI 7f688 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f68c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f69c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 7f6a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f6a8 .cfa: x29 32 +
+STACK CFI 7f6ac x19: .cfa -16 + ^
+STACK CFI 7f6c4 x19: x19
+STACK CFI 7f6c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f6cc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f6d4 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 7f6ec 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 20854 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 20870 14 .cfa: sp 0 + .ra: x30
+STACK CFI 20874 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 2087c .cfa: x29 16 +
+STACK CFI INIT 20884 14 .cfa: sp 0 + .ra: x30
+STACK CFI 20888 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 20890 .cfa: x29 16 +
+STACK CFI INIT 7f708 1c .cfa: sp 0 + .ra: x30
+STACK CFI 7f70c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7f710 .cfa: x29 16 +
+STACK CFI 7f720 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f724 110 .cfa: sp 0 + .ra: x30
+STACK CFI 7f728 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7f72c .cfa: x29 48 +
+STACK CFI 7f730 x19: .cfa -32 + ^
+STACK CFI 7f778 x19: x19
+STACK CFI 7f77c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f780 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7f7c4 x19: x19
+STACK CFI 7f7c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f7cc .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7f81c x19: x19
+STACK CFI 7f820 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f824 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7f834 110 .cfa: sp 0 + .ra: x30
+STACK CFI 7f838 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 7f83c .cfa: x29 48 +
+STACK CFI 7f840 x19: .cfa -32 + ^
+STACK CFI 7f888 x19: x19
+STACK CFI 7f88c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f890 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7f8d4 x19: x19
+STACK CFI 7f8d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f8dc .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 7f92c x19: x19
+STACK CFI 7f930 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f934 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 7f944 1c .cfa: sp 0 + .ra: x30
+STACK CFI 7f948 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 7f94c .cfa: x29 16 +
+STACK CFI 7f95c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7f960 98 .cfa: sp 0 + .ra: x30
+STACK CFI 7f964 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7f968 .cfa: x29 32 +
+STACK CFI 7f96c x19: .cfa -16 + ^
+STACK CFI 7f9a4 x19: x19
+STACK CFI 7f9a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f9ac .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 7f9e0 x19: x19
+STACK CFI 7f9e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7f9e8 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7f9f8 98 .cfa: sp 0 + .ra: x30
+STACK CFI 7f9fc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 7fa00 .cfa: x29 32 +
+STACK CFI 7fa04 x19: .cfa -16 + ^
+STACK CFI 7fa38 x19: x19
+STACK CFI 7fa3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7fa40 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 7fa74 x19: x19
+STACK CFI 7fa78 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7fa7c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 7fa90 c4 .cfa: sp 0 + .ra: x30
+STACK CFI 7fa94 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7fa98 .cfa: x29 64 +
+STACK CFI 7fa9c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7faac x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7fb44 x23: x23
+STACK CFI 7fb48 x19: x19 x20: x20
+STACK CFI 7fb4c x21: x21 x22: x22
+STACK CFI 7fb50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7fb54 bc .cfa: sp 0 + .ra: x30
+STACK CFI 7fb58 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7fb5c .cfa: x29 64 +
+STACK CFI 7fb60 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7fb70 x21: .cfa -32 + ^
+STACK CFI 7fbfc x21: x21
+STACK CFI 7fc08 x19: x19 x20: x20
+STACK CFI 7fc0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7fc10 bc .cfa: sp 0 + .ra: x30
+STACK CFI 7fc14 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7fc18 .cfa: x29 64 +
+STACK CFI 7fc1c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7fc2c x21: .cfa -32 + ^
+STACK CFI 7fcb8 x21: x21
+STACK CFI 7fcc4 x19: x19 x20: x20
+STACK CFI 7fcc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 7fccc 100 .cfa: sp 0 + .ra: x30
+STACK CFI 7fcd0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7fcd4 .cfa: x29 64 +
+STACK CFI 7fcd8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 7fce8 x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7fd2c x23: x23
+STACK CFI 7fd34 x19: x19 x20: x20
+STACK CFI 7fd38 x21: x21 x22: x22
+STACK CFI 7fd3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7fd40 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 7fdcc f4 .cfa: sp 0 + .ra: x30
+STACK CFI 7fdd0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 7fdd4 .cfa: x29 64 +
+STACK CFI 7fde4 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 7fe2c x23: x23
+STACK CFI 7fe34 x19: x19 x20: x20
+STACK CFI 7fe38 x21: x21 x22: x22
+STACK CFI 7fe3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 7fe40 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 7fec0 1fc .cfa: sp 0 + .ra: x30
+STACK CFI 7fec4 .cfa: sp 576 +
+STACK CFI 7fec8 .cfa: sp 672 + .ra: .cfa -664 + ^ x29: .cfa -672 + ^
+STACK CFI 7fecc .cfa: x29 672 +
+STACK CFI 7fed0 x21: .cfa -640 + ^ x22: .cfa -632 + ^
+STACK CFI 7fee0 x19: .cfa -656 + ^ x20: .cfa -648 + ^ x25: .cfa -608 + ^ x26: .cfa -600 + ^
+STACK CFI 7fef8 x23: .cfa -624 + ^ x24: .cfa -616 + ^ x27: .cfa -592 + ^ x28: .cfa -584 + ^
+STACK CFI 80048 x19: x19 x20: x20
+STACK CFI 8004c x21: x21 x22: x22
+STACK CFI 80050 x23: x23 x24: x24
+STACK CFI 80054 x25: x25 x26: x26
+STACK CFI 80058 x27: x27 x28: x28
+STACK CFI 8005c .cfa: sp 576 + .ra: .ra x29: x29
+STACK CFI 80060 .cfa: sp 480 +
+STACK CFI 80064 .cfa: x29 672 + .ra: .cfa -664 + ^ x19: .cfa -656 + ^ x20: .cfa -648 + ^ x21: .cfa -640 + ^ x22: .cfa -632 + ^ x23: .cfa -624 + ^ x24: .cfa -616 + ^ x25: .cfa -608 + ^ x26: .cfa -600 + ^ x27: .cfa -592 + ^ x28: .cfa -584 + ^ x29: .cfa -672 + ^
+STACK CFI INIT 800bc 49c .cfa: sp 0 + .ra: x30
+STACK CFI 800c0 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 800c4 .cfa: x29 112 +
+STACK CFI 800cc x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 800e8 x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x28: .cfa -24 + ^
+STACK CFI 801d8 x19: x19 x20: x20
+STACK CFI 801dc x21: x21 x22: x22
+STACK CFI 801e0 x23: x23 x24: x24
+STACK CFI 801e4 x25: x25 x26: x26
+STACK CFI 801e8 x27: x27 x28: x28
+STACK CFI 801ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 801f0 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x28: .cfa -24 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 80558 68 .cfa: sp 0 + .ra: x30
+STACK CFI 8055c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 80560 .cfa: x29 48 +
+STACK CFI 80564 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 8056c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 805b4 x19: x19 x20: x20
+STACK CFI 805b8 x21: x21 x22: x22
+STACK CFI 805bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 805c0 a0 .cfa: sp 0 + .ra: x30
+STACK CFI 805c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 805c8 .cfa: x29 48 +
+STACK CFI 805cc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 805d4 x21: .cfa -16 + ^
+STACK CFI 805f0 x21: x21
+STACK CFI 805f4 x19: x19 x20: x20
+STACK CFI 805f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 805fc .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 8063c x21: x21
+STACK CFI 80644 x19: x19 x20: x20
+STACK CFI 80648 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8064c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 80660 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 80664 5c .cfa: sp 0 + .ra: x30
+STACK CFI 80668 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8066c .cfa: x29 48 +
+STACK CFI 80674 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 806a4 x19: x19 x20: x20
+STACK CFI 806a8 x21: x21
+STACK CFI 806ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 806b0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 806b4 x19: x19 x20: x20
+STACK CFI 806b8 x21: x21
+STACK CFI 806bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 806c0 120 .cfa: sp 0 + .ra: x30
+STACK CFI 806c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 806c8 .cfa: x29 48 +
+STACK CFI 806cc x21: .cfa -16 + ^
+STACK CFI 806dc x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 80754 x21: x21
+STACK CFI 80758 x19: x19 x20: x20
+STACK CFI 8075c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80760 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 8076c x21: x21
+STACK CFI 80770 x19: x19 x20: x20
+STACK CFI 80774 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80778 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 807e0 34 .cfa: sp 0 + .ra: x30
+STACK CFI 807e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 807ec .cfa: x29 32 +
+STACK CFI 807f0 x19: .cfa -16 + ^
+STACK CFI INIT 80814 40 .cfa: sp 0 + .ra: x30
+STACK CFI 80818 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8081c .cfa: x29 32 +
+STACK CFI 80820 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 8084c x19: x19 x20: x20
+STACK CFI 80850 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 80854 84 .cfa: sp 0 + .ra: x30
+STACK CFI 80858 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8085c .cfa: x29 48 +
+STACK CFI 80860 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 80868 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 808c4 x19: x19 x20: x20
+STACK CFI 808c8 x21: x21 x22: x22
+STACK CFI 808cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 808d0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 808d8 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 808e4 158 .cfa: sp 0 + .ra: x30
+STACK CFI 808e8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 808ec .cfa: x29 80 +
+STACK CFI 808f4 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 80904 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x23: .cfa -32 + ^
+STACK CFI 809a0 x19: x19 x20: x20
+STACK CFI 809a4 x21: x21 x22: x22
+STACK CFI 809a8 x23: x23
+STACK CFI 809ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 809b0 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 80a3c 1b8 .cfa: sp 0 + .ra: x30
+STACK CFI 80a40 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 80a48 .cfa: x29 32 +
+STACK CFI 80a4c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 80b10 x19: x19 x20: x20
+STACK CFI 80b14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80b18 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 80b1c x19: x19 x20: x20
+STACK CFI 80b20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80b24 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 80b48 x19: x19 x20: x20
+STACK CFI 80b4c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80b50 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 80bf4 18c .cfa: sp 0 + .ra: x30
+STACK CFI 80bf8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 80bfc .cfa: x29 48 +
+STACK CFI 80c04 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 80cec x19: x19 x20: x20
+STACK CFI 80cf0 x21: x21 x22: x22
+STACK CFI 80cf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80cf8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 80d80 44 .cfa: sp 0 + .ra: x30
+STACK CFI 80d84 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 80d8c .cfa: x29 32 +
+STACK CFI 80d90 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 80da8 x19: x19 x20: x20
+STACK CFI 80dac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80db0 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 80dc4 4c .cfa: sp 0 + .ra: x30
+STACK CFI 80dc8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 80dd0 .cfa: x29 32 +
+STACK CFI 80dd4 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 80df4 x19: x19 x20: x20
+STACK CFI 80df8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80dfc .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 80e10 44 .cfa: sp 0 + .ra: x30
+STACK CFI 80e14 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 80e1c .cfa: x29 32 +
+STACK CFI 80e20 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 80e38 x19: x19 x20: x20
+STACK CFI 80e3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80e40 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 80e54 4c .cfa: sp 0 + .ra: x30
+STACK CFI 80e58 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 80e60 .cfa: x29 32 +
+STACK CFI 80e64 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 80e84 x19: x19 x20: x20
+STACK CFI 80e88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80e8c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 80ea0 1a0 .cfa: sp 0 + .ra: x30
+STACK CFI 80ea4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 80ea8 .cfa: x29 48 +
+STACK CFI 80eac x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 80eb4 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 80f9c x19: x19 x20: x20
+STACK CFI 80fa0 x21: x21 x22: x22
+STACK CFI 80fa4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 80fa8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 81040 44 .cfa: sp 0 + .ra: x30
+STACK CFI 81044 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 8104c .cfa: x29 32 +
+STACK CFI 81050 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 81068 x19: x19 x20: x20
+STACK CFI 8106c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81070 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 81084 4c .cfa: sp 0 + .ra: x30
+STACK CFI 81088 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 81090 .cfa: x29 32 +
+STACK CFI 81094 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 810b4 x19: x19 x20: x20
+STACK CFI 810b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 810bc .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 810d0 44 .cfa: sp 0 + .ra: x30
+STACK CFI 810d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 810dc .cfa: x29 32 +
+STACK CFI 810e0 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 810f8 x19: x19 x20: x20
+STACK CFI 810fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81100 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 81114 4c .cfa: sp 0 + .ra: x30
+STACK CFI 81118 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 81120 .cfa: x29 32 +
+STACK CFI 81124 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 81144 x19: x19 x20: x20
+STACK CFI 81148 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8114c .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 81160 e0 .cfa: sp 0 + .ra: x30
+STACK CFI 81164 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 81168 .cfa: x29 80 +
+STACK CFI 8116c x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 81178 x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 811d8 x19: x19 x20: x20
+STACK CFI 811dc x21: x21 x22: x22
+STACK CFI 811e0 x23: x23
+STACK CFI 811e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 811e8 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 81240 810 .cfa: sp 0 + .ra: x30
+STACK CFI 81244 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8124c .cfa: x29 320 +
+STACK CFI 81250 x21: .cfa -288 + ^ x22: .cfa -280 + ^
+STACK CFI 81264 x19: .cfa -304 + ^ x20: .cfa -296 + ^ x23: .cfa -272 + ^
+STACK CFI 81814 x21: x21 x22: x22
+STACK CFI 81818 x23: x23
+STACK CFI 81820 x19: x19 x20: x20
+STACK CFI 81824 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81828 .cfa: x29 320 + .ra: .cfa -312 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x29: .cfa -320 + ^
+STACK CFI 818c4 x23: x23
+STACK CFI 818cc x21: x21 x22: x22
+STACK CFI 818d4 x19: x19 x20: x20
+STACK CFI 818d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 818dc .cfa: x29 320 + .ra: .cfa -312 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 81a50 94 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 81ae4 60 .cfa: sp 0 + .ra: x30
+STACK CFI 81ae8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 81aec .cfa: x29 48 +
+STACK CFI 81af4 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI 81b28 x19: x19 x20: x20
+STACK CFI 81b2c x21: x21
+STACK CFI 81b30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81b34 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI 81b38 x19: x19 x20: x20
+STACK CFI 81b3c x21: x21
+STACK CFI 81b40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 81b44 8c .cfa: sp 0 + .ra: x30
+STACK CFI 81b48 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 81b4c .cfa: x29 32 +
+STACK CFI 81b50 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 81b68 x19: x19 x20: x20
+STACK CFI 81b6c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81b74 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 81bb0 x19: x19 x20: x20
+STACK CFI 81bb4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81bbc .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 81bd0 214 .cfa: sp 0 + .ra: x30
+STACK CFI 81bd4 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 81bd8 .cfa: x29 160 +
+STACK CFI 81be0 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 81bf0 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 81bfc x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^
+STACK CFI 81c28 x27: x27
+STACK CFI 81c2c x19: x19 x20: x20
+STACK CFI 81c30 x21: x21 x22: x22
+STACK CFI 81c34 x23: x23 x24: x24
+STACK CFI 81c38 x25: x25 x26: x26
+STACK CFI 81c3c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81c40 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x29: .cfa -160 + ^
+STACK CFI 81d70 x27: x27
+STACK CFI 81d78 x19: x19 x20: x20
+STACK CFI 81d7c x21: x21 x22: x22
+STACK CFI 81d80 x23: x23 x24: x24
+STACK CFI 81d84 x25: x25 x26: x26
+STACK CFI 81d88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81d8c .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x29: .cfa -160 + ^
+STACK CFI INIT 81e30 214 .cfa: sp 0 + .ra: x30
+STACK CFI 81e34 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 81e38 .cfa: x29 160 +
+STACK CFI 81e40 x19: .cfa -144 + ^ x20: .cfa -136 + ^
+STACK CFI 81e50 x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 81e5c x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^
+STACK CFI 81e88 x27: x27
+STACK CFI 81e8c x19: x19 x20: x20
+STACK CFI 81e90 x21: x21 x22: x22
+STACK CFI 81e94 x23: x23 x24: x24
+STACK CFI 81e98 x25: x25 x26: x26
+STACK CFI 81e9c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81ea0 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x29: .cfa -160 + ^
+STACK CFI 81fd0 x27: x27
+STACK CFI 81fd8 x19: x19 x20: x20
+STACK CFI 81fdc x21: x21 x22: x22
+STACK CFI 81fe0 x23: x23 x24: x24
+STACK CFI 81fe4 x25: x25 x26: x26
+STACK CFI 81fe8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 81fec .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x29: .cfa -160 + ^
+STACK CFI INIT 82090 2c0 .cfa: sp 0 + .ra: x30
+STACK CFI 82094 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 82098 .cfa: x29 144 +
+STACK CFI 820a4 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 820c0 x23: .cfa -96 + ^ x24: .cfa -88 + ^ x27: .cfa -64 + ^
+STACK CFI 8216c x27: x27
+STACK CFI 82170 x19: x19 x20: x20
+STACK CFI 82174 x21: x21 x22: x22
+STACK CFI 82178 x23: x23 x24: x24
+STACK CFI 8217c x25: x25 x26: x26
+STACK CFI 82180 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82184 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 82350 290 .cfa: sp 0 + .ra: x30
+STACK CFI 82354 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 82358 .cfa: x29 64 +
+STACK CFI 8239c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 823a0 .cfa: x29 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 82460 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82464 .cfa: x29 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 825e0 2bc .cfa: sp 0 + .ra: x30
+STACK CFI 825e4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 825e8 .cfa: x29 144 +
+STACK CFI 825f4 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x27: .cfa -64 + ^
+STACK CFI 82610 x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 826bc x27: x27
+STACK CFI 826c0 x19: x19 x20: x20
+STACK CFI 826c4 x21: x21 x22: x22
+STACK CFI 826c8 x23: x23 x24: x24
+STACK CFI 826cc x25: x25 x26: x26
+STACK CFI 826d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 826d4 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 8289c 274 .cfa: sp 0 + .ra: x30
+STACK CFI 828a0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 828a4 .cfa: x29 64 +
+STACK CFI 828e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 828ec .cfa: x29 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 829a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 829a8 .cfa: x29 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 82b10 3e0 .cfa: sp 0 + .ra: x30
+STACK CFI 82b14 .cfa: sp 224 + .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 82b18 .cfa: x29 224 +
+STACK CFI 82b1c x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 82b2c x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^
+STACK CFI 82b40 x25: .cfa -160 + ^ x26: .cfa -152 + ^
+STACK CFI 82cdc x19: x19 x20: x20
+STACK CFI 82ce0 x21: x21 x22: x22
+STACK CFI 82ce4 x23: x23 x24: x24
+STACK CFI 82ce8 x25: x25 x26: x26
+STACK CFI 82cec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82cf0 .cfa: x29 224 + .ra: .cfa -216 + ^ x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x29: .cfa -224 + ^
+STACK CFI 82d98 x19: x19 x20: x20
+STACK CFI 82d9c x21: x21 x22: x22
+STACK CFI 82da0 x23: x23 x24: x24
+STACK CFI 82da4 x25: x25 x26: x26
+STACK CFI 82da8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82dac .cfa: x29 224 + .ra: .cfa -216 + ^ x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x29: .cfa -224 + ^
+STACK CFI INIT 82ef0 4c .cfa: sp 0 + .ra: x30
+STACK CFI 82ef4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 82efc .cfa: x29 16 +
+STACK CFI 82f20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82f24 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 82f38 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 82f3c 80 .cfa: sp 0 + .ra: x30
+STACK CFI 82f40 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 82f44 .cfa: x29 32 +
+STACK CFI 82f48 x19: .cfa -16 + ^
+STACK CFI 82f8c x19: x19
+STACK CFI 82f90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 82f94 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 82fbc 3d8 .cfa: sp 0 + .ra: x30
+STACK CFI 82fc0 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 82fc4 .cfa: x29 128 +
+STACK CFI 82fc8 x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 82fd8 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 82fec x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 8315c x19: x19 x20: x20
+STACK CFI 83160 x21: x21 x22: x22
+STACK CFI 83164 x23: x23 x24: x24
+STACK CFI 83168 x25: x25 x26: x26
+STACK CFI 8316c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 83170 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x29: .cfa -128 + ^
+STACK CFI 83240 x19: x19 x20: x20
+STACK CFI 83244 x21: x21 x22: x22
+STACK CFI 83248 x23: x23 x24: x24
+STACK CFI 8324c x25: x25 x26: x26
+STACK CFI 83250 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 83254 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 83394 50 .cfa: sp 0 + .ra: x30
+STACK CFI 83398 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 833a4 .cfa: x29 16 +
+STACK CFI 833c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 833cc .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 833e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 833e4 8c .cfa: sp 0 + .ra: x30
+STACK CFI 833e8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 833f0 .cfa: x29 32 +
+STACK CFI 833f8 x19: .cfa -16 + ^
+STACK CFI 8342c x19: x19
+STACK CFI 83430 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 83434 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 83468 x19: x19
+STACK CFI 8346c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 83470 c6c .cfa: sp 0 + .ra: x30
+STACK CFI 83474 .cfa: sp 848 +
+STACK CFI 8347c .cfa: sp 1008 + .ra: .cfa -1000 + ^ x29: .cfa -1008 + ^
+STACK CFI 83480 .cfa: x29 1008 +
+STACK CFI 83490 v10: .cfa -896 + ^ v11: .cfa -888 + ^ v14: .cfa -864 + ^ v15: .cfa -856 + ^ x19: .cfa -992 + ^ x20: .cfa -984 + ^
+STACK CFI 834bc v12: .cfa -880 + ^ v13: .cfa -872 + ^ v8: .cfa -912 + ^ v9: .cfa -904 + ^ x21: .cfa -976 + ^ x22: .cfa -968 + ^ x23: .cfa -960 + ^ x24: .cfa -952 + ^ x25: .cfa -944 + ^ x26: .cfa -936 + ^ x27: .cfa -928 + ^ x28: .cfa -920 + ^
+STACK CFI 836e4 x19: x19 x20: x20
+STACK CFI 836e8 v8: v8 v9: v9
+STACK CFI 836ec x21: x21 x22: x22
+STACK CFI 836f0 v10: v10 v11: v11
+STACK CFI 836f4 x23: x23 x24: x24
+STACK CFI 836f8 v12: v12 v13: v13
+STACK CFI 836fc x25: x25 x26: x26
+STACK CFI 83700 v14: v14 v15: v15
+STACK CFI 83704 x27: x27 x28: x28
+STACK CFI 83708 .cfa: sp 848 + .ra: .ra x29: x29
+STACK CFI 8370c .cfa: sp 688 +
+STACK CFI 83710 .cfa: x29 1008 + .ra: .cfa -1000 + ^ v10: .cfa -896 + ^ v11: .cfa -888 + ^ v12: .cfa -880 + ^ v13: .cfa -872 + ^ v14: .cfa -864 + ^ v15: .cfa -856 + ^ v8: .cfa -912 + ^ v9: .cfa -904 + ^ x19: .cfa -992 + ^ x20: .cfa -984 + ^ x21: .cfa -976 + ^ x22: .cfa -968 + ^ x23: .cfa -960 + ^ x24: .cfa -952 + ^ x25: .cfa -944 + ^ x26: .cfa -936 + ^ x27: .cfa -928 + ^ x28: .cfa -920 + ^ x29: .cfa -1008 + ^
+STACK CFI INIT 840dc 34 .cfa: sp 0 + .ra: x30
+STACK CFI 840e0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 840ec .cfa: x29 16 +
+STACK CFI 8410c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 84110 c6c .cfa: sp 0 + .ra: x30
+STACK CFI 84114 .cfa: sp 848 +
+STACK CFI 8411c .cfa: sp 1008 + .ra: .cfa -1000 + ^ x29: .cfa -1008 + ^
+STACK CFI 84120 .cfa: x29 1008 +
+STACK CFI 84130 v10: .cfa -896 + ^ v11: .cfa -888 + ^ v14: .cfa -864 + ^ v15: .cfa -856 + ^ x19: .cfa -992 + ^ x20: .cfa -984 + ^
+STACK CFI 8415c v12: .cfa -880 + ^ v13: .cfa -872 + ^ v8: .cfa -912 + ^ v9: .cfa -904 + ^ x21: .cfa -976 + ^ x22: .cfa -968 + ^ x23: .cfa -960 + ^ x24: .cfa -952 + ^ x25: .cfa -944 + ^ x26: .cfa -936 + ^ x27: .cfa -928 + ^ x28: .cfa -920 + ^
+STACK CFI 84384 x19: x19 x20: x20
+STACK CFI 84388 v8: v8 v9: v9
+STACK CFI 8438c x21: x21 x22: x22
+STACK CFI 84390 v10: v10 v11: v11
+STACK CFI 84394 x23: x23 x24: x24
+STACK CFI 84398 v12: v12 v13: v13
+STACK CFI 8439c x25: x25 x26: x26
+STACK CFI 843a0 v14: v14 v15: v15
+STACK CFI 843a4 x27: x27 x28: x28
+STACK CFI 843a8 .cfa: sp 848 + .ra: .ra x29: x29
+STACK CFI 843ac .cfa: sp 688 +
+STACK CFI 843b0 .cfa: x29 1008 + .ra: .cfa -1000 + ^ v10: .cfa -896 + ^ v11: .cfa -888 + ^ v12: .cfa -880 + ^ v13: .cfa -872 + ^ v14: .cfa -864 + ^ v15: .cfa -856 + ^ v8: .cfa -912 + ^ v9: .cfa -904 + ^ x19: .cfa -992 + ^ x20: .cfa -984 + ^ x21: .cfa -976 + ^ x22: .cfa -968 + ^ x23: .cfa -960 + ^ x24: .cfa -952 + ^ x25: .cfa -944 + ^ x26: .cfa -936 + ^ x27: .cfa -928 + ^ x28: .cfa -920 + ^ x29: .cfa -1008 + ^
+STACK CFI INIT 84d7c 138 .cfa: sp 0 + .ra: x30
+STACK CFI 84d80 .cfa: sp 592 +
+STACK CFI 84d84 .cfa: sp 672 + .ra: .cfa -664 + ^ x29: .cfa -672 + ^
+STACK CFI 84d88 .cfa: x29 672 +
+STACK CFI 84d8c x19: .cfa -656 + ^ x20: .cfa -648 + ^
+STACK CFI 84d9c x21: .cfa -640 + ^ x22: .cfa -632 + ^ x23: .cfa -624 + ^ x24: .cfa -616 + ^
+STACK CFI 84db8 x25: .cfa -608 + ^ x26: .cfa -600 + ^
+STACK CFI 84e60 x19: x19 x20: x20
+STACK CFI 84e64 x21: x21 x22: x22
+STACK CFI 84e68 x23: x23 x24: x24
+STACK CFI 84e6c x25: x25 x26: x26
+STACK CFI 84e70 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 84e74 .cfa: sp 512 +
+STACK CFI 84e78 .cfa: x29 672 + .ra: .cfa -664 + ^ x19: .cfa -656 + ^ x20: .cfa -648 + ^ x21: .cfa -640 + ^ x22: .cfa -632 + ^ x23: .cfa -624 + ^ x24: .cfa -616 + ^ x25: .cfa -608 + ^ x26: .cfa -600 + ^ x29: .cfa -672 + ^
+STACK CFI INIT 84eb4 38 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 84eec 1d4 .cfa: sp 0 + .ra: x30
+STACK CFI 84ef0 .cfa: sp 2208 +
+STACK CFI 84ef4 .cfa: sp 2304 + .ra: .cfa -2296 + ^ x29: .cfa -2304 + ^
+STACK CFI 84ef8 .cfa: x29 2304 +
+STACK CFI 84efc x21: .cfa -2272 + ^ x22: .cfa -2264 + ^
+STACK CFI 84f0c x25: .cfa -2240 + ^ x26: .cfa -2232 + ^
+STACK CFI 84f24 x19: .cfa -2288 + ^ x20: .cfa -2280 + ^ x23: .cfa -2256 + ^ x24: .cfa -2248 + ^ x27: .cfa -2224 + ^ x28: .cfa -2216 + ^
+STACK CFI 8506c x21: x21 x22: x22
+STACK CFI 85070 x19: x19 x20: x20
+STACK CFI 85074 x23: x23 x24: x24
+STACK CFI 85078 x25: x25 x26: x26
+STACK CFI 8507c x27: x27 x28: x28
+STACK CFI 85080 .cfa: sp 2208 + .ra: .ra x29: x29
+STACK CFI 85084 .cfa: sp 2112 +
+STACK CFI 85088 .cfa: x29 2304 + .ra: .cfa -2296 + ^ x19: .cfa -2288 + ^ x20: .cfa -2280 + ^ x21: .cfa -2272 + ^ x22: .cfa -2264 + ^ x23: .cfa -2256 + ^ x24: .cfa -2248 + ^ x25: .cfa -2240 + ^ x26: .cfa -2232 + ^ x27: .cfa -2224 + ^ x28: .cfa -2216 + ^ x29: .cfa -2304 + ^
+STACK CFI INIT 850c0 c68 .cfa: sp 0 + .ra: x30
+STACK CFI 850c4 .cfa: sp 2672 +
+STACK CFI 850cc .cfa: sp 2832 + .ra: .cfa -2824 + ^ x29: .cfa -2832 + ^
+STACK CFI 850d0 .cfa: x29 2832 +
+STACK CFI 850d8 v10: .cfa -2720 + ^ v11: .cfa -2712 + ^ x23: .cfa -2784 + ^ x24: .cfa -2776 + ^
+STACK CFI 850e8 v14: .cfa -2688 + ^ v15: .cfa -2680 + ^
+STACK CFI 850fc v12: .cfa -2704 + ^ v13: .cfa -2696 + ^ v8: .cfa -2736 + ^ v9: .cfa -2728 + ^ x19: .cfa -2816 + ^ x20: .cfa -2808 + ^
+STACK CFI 85114 x21: .cfa -2800 + ^ x22: .cfa -2792 + ^ x25: .cfa -2768 + ^ x26: .cfa -2760 + ^
+STACK CFI 85120 x27: .cfa -2752 + ^ x28: .cfa -2744 + ^
+STACK CFI 85584 x19: x19 x20: x20
+STACK CFI 85588 v8: v8 v9: v9
+STACK CFI 8558c x21: x21 x22: x22
+STACK CFI 85590 v10: v10 v11: v11
+STACK CFI 85594 x23: x23 x24: x24
+STACK CFI 85598 v12: v12 v13: v13
+STACK CFI 8559c x25: x25 x26: x26
+STACK CFI 855a0 v14: v14 v15: v15
+STACK CFI 855a4 x27: x27 x28: x28
+STACK CFI 855a8 .cfa: sp 2672 + .ra: .ra x29: x29
+STACK CFI 855ac .cfa: sp 2512 +
+STACK CFI 855b0 .cfa: x29 2832 + .ra: .cfa -2824 + ^ v10: .cfa -2720 + ^ v11: .cfa -2712 + ^ v12: .cfa -2704 + ^ v13: .cfa -2696 + ^ v14: .cfa -2688 + ^ v15: .cfa -2680 + ^ v8: .cfa -2736 + ^ v9: .cfa -2728 + ^ x19: .cfa -2816 + ^ x20: .cfa -2808 + ^ x21: .cfa -2800 + ^ x22: .cfa -2792 + ^ x23: .cfa -2784 + ^ x24: .cfa -2776 + ^ x25: .cfa -2768 + ^ x26: .cfa -2760 + ^ x27: .cfa -2752 + ^ x28: .cfa -2744 + ^ x29: .cfa -2832 + ^
+STACK CFI INIT 85d28 34 .cfa: sp 0 + .ra: x30
+STACK CFI 85d2c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 85d38 .cfa: x29 16 +
+STACK CFI 85d58 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 85d5c c68 .cfa: sp 0 + .ra: x30
+STACK CFI 85d60 .cfa: sp 2672 +
+STACK CFI 85d68 .cfa: sp 2832 + .ra: .cfa -2824 + ^ x29: .cfa -2832 + ^
+STACK CFI 85d6c .cfa: x29 2832 +
+STACK CFI 85d74 v10: .cfa -2720 + ^ v11: .cfa -2712 + ^ x23: .cfa -2784 + ^ x24: .cfa -2776 + ^
+STACK CFI 85d84 v14: .cfa -2688 + ^ v15: .cfa -2680 + ^
+STACK CFI 85d98 v12: .cfa -2704 + ^ v13: .cfa -2696 + ^ v8: .cfa -2736 + ^ v9: .cfa -2728 + ^ x19: .cfa -2816 + ^ x20: .cfa -2808 + ^
+STACK CFI 85db0 x21: .cfa -2800 + ^ x22: .cfa -2792 + ^ x25: .cfa -2768 + ^ x26: .cfa -2760 + ^
+STACK CFI 85dbc x27: .cfa -2752 + ^ x28: .cfa -2744 + ^
+STACK CFI 86220 x19: x19 x20: x20
+STACK CFI 86224 v8: v8 v9: v9
+STACK CFI 86228 x21: x21 x22: x22
+STACK CFI 8622c v10: v10 v11: v11
+STACK CFI 86230 x23: x23 x24: x24
+STACK CFI 86234 v12: v12 v13: v13
+STACK CFI 86238 x25: x25 x26: x26
+STACK CFI 8623c v14: v14 v15: v15
+STACK CFI 86240 x27: x27 x28: x28
+STACK CFI 86244 .cfa: sp 2672 + .ra: .ra x29: x29
+STACK CFI 86248 .cfa: sp 2512 +
+STACK CFI 8624c .cfa: x29 2832 + .ra: .cfa -2824 + ^ v10: .cfa -2720 + ^ v11: .cfa -2712 + ^ v12: .cfa -2704 + ^ v13: .cfa -2696 + ^ v14: .cfa -2688 + ^ v15: .cfa -2680 + ^ v8: .cfa -2736 + ^ v9: .cfa -2728 + ^ x19: .cfa -2816 + ^ x20: .cfa -2808 + ^ x21: .cfa -2800 + ^ x22: .cfa -2792 + ^ x23: .cfa -2784 + ^ x24: .cfa -2776 + ^ x25: .cfa -2768 + ^ x26: .cfa -2760 + ^ x27: .cfa -2752 + ^ x28: .cfa -2744 + ^ x29: .cfa -2832 + ^
+STACK CFI INIT 869c4 214 .cfa: sp 0 + .ra: x30
+STACK CFI 869c8 .cfa: sp 2496 +
+STACK CFI 869cc .cfa: sp 2592 + .ra: .cfa -2584 + ^ x29: .cfa -2592 + ^
+STACK CFI 869d0 .cfa: x29 2592 +
+STACK CFI 869d4 x19: .cfa -2576 + ^ x20: .cfa -2568 + ^
+STACK CFI 869e4 x21: .cfa -2560 + ^ x22: .cfa -2552 + ^ x23: .cfa -2544 + ^ x24: .cfa -2536 + ^
+STACK CFI 86a00 x25: .cfa -2528 + ^ x26: .cfa -2520 + ^
+STACK CFI 86a14 x27: .cfa -2512 + ^ x28: .cfa -2504 + ^
+STACK CFI 86b58 x19: x19 x20: x20
+STACK CFI 86b5c x21: x21 x22: x22
+STACK CFI 86b60 x23: x23 x24: x24
+STACK CFI 86b64 x25: x25 x26: x26
+STACK CFI 86b68 x27: x27 x28: x28
+STACK CFI 86b6c .cfa: sp 2496 + .ra: .ra x29: x29
+STACK CFI 86b70 .cfa: sp 2400 +
+STACK CFI 86b74 .cfa: x29 2592 + .ra: .cfa -2584 + ^ x19: .cfa -2576 + ^ x20: .cfa -2568 + ^ x21: .cfa -2560 + ^ x22: .cfa -2552 + ^ x23: .cfa -2544 + ^ x24: .cfa -2536 + ^ x25: .cfa -2528 + ^ x26: .cfa -2520 + ^ x27: .cfa -2512 + ^ x28: .cfa -2504 + ^ x29: .cfa -2592 + ^
+STACK CFI INIT 86bd8 278 .cfa: sp 0 + .ra: x30
+STACK CFI 86bdc .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 86be0 .cfa: x29 128 +
+STACK CFI 86be4 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 86bf8 v8: .cfa -32 + ^
+STACK CFI 86c0c x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 86c90 x19: x19 x20: x20
+STACK CFI 86c94 x21: x21 x22: x22
+STACK CFI 86c98 x23: x23 x24: x24
+STACK CFI 86c9c x25: x25 x26: x26
+STACK CFI 86ca0 x27: x27 x28: x28
+STACK CFI 86ca4 v8: v8
+STACK CFI 86ca8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 86cac .cfa: x29 128 + .ra: .cfa -120 + ^ v8: .cfa -32 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 86e50 26c .cfa: sp 0 + .ra: x30
+STACK CFI 86e54 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 86e58 .cfa: x29 128 +
+STACK CFI 86e5c x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 86e70 v8: .cfa -32 + ^
+STACK CFI 86e80 x21: .cfa -96 + ^ x22: .cfa -88 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 86e8c x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 86f0c x19: x19 x20: x20
+STACK CFI 86f10 x21: x21 x22: x22
+STACK CFI 86f14 x23: x23 x24: x24
+STACK CFI 86f18 x25: x25 x26: x26
+STACK CFI 86f1c x27: x27 x28: x28
+STACK CFI 86f20 v8: v8
+STACK CFI 86f24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 86f28 .cfa: x29 128 + .ra: .cfa -120 + ^ v8: .cfa -32 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 870bc 138 .cfa: sp 0 + .ra: x30
+STACK CFI 870c0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 870c4 .cfa: x29 48 +
+STACK CFI 870c8 x19: .cfa -32 + ^
+STACK CFI 870f8 x19: x19
+STACK CFI 87104 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 87108 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 8713c x19: x19
+STACK CFI 87148 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8714c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 871f4 290 .cfa: sp 0 + .ra: x30
+STACK CFI 871f8 .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 87200 .cfa: x29 176 +
+STACK CFI 87204 v10: .cfa -64 + ^ v11: .cfa -56 + ^
+STACK CFI 87224 v8: .cfa -80 + ^ v9: .cfa -72 + ^
+STACK CFI 87230 x23: .cfa -128 + ^ x24: .cfa -120 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^
+STACK CFI 87264 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^
+STACK CFI 87270 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 87340 v10: v10 v11: v11
+STACK CFI 87344 x19: x19 x20: x20
+STACK CFI 87348 v8: v8 v9: v9
+STACK CFI 8734c x21: x21 x22: x22
+STACK CFI 87350 x23: x23 x24: x24
+STACK CFI 87354 x25: x25 x26: x26
+STACK CFI 87358 x27: x27 x28: x28
+STACK CFI 8735c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 87360 .cfa: x29 176 + .ra: .cfa -168 + ^ v10: .cfa -64 + ^ v11: .cfa -56 + ^ v8: .cfa -80 + ^ v9: .cfa -72 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^ x29: .cfa -176 + ^
+STACK CFI INIT 87484 178 .cfa: sp 0 + .ra: x30
+STACK CFI 87488 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 87490 .cfa: x29 80 +
+STACK CFI 87498 x19: .cfa -64 + ^
+STACK CFI 874f0 x19: x19
+STACK CFI 874f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 874f8 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI 87544 x19: x19
+STACK CFI 87548 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8754c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 875fc 188 .cfa: sp 0 + .ra: x30
+STACK CFI 87600 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 87608 .cfa: x29 80 +
+STACK CFI 87610 x19: .cfa -64 + ^
+STACK CFI 87678 x19: x19
+STACK CFI 8767c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 87680 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI 876cc x19: x19
+STACK CFI 876d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 876d4 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 87784 4c4 .cfa: sp 0 + .ra: x30
+STACK CFI 87788 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 8778c .cfa: x29 144 +
+STACK CFI 87790 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 877ac x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 877bc x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 878b0 x19: x19 x20: x20
+STACK CFI 878b4 x21: x21 x22: x22
+STACK CFI 878b8 x23: x23 x24: x24
+STACK CFI 878bc x25: x25 x26: x26
+STACK CFI 878c0 x27: x27 x28: x28
+STACK CFI 878c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 878c8 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 87c48 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 87c4c .cfa: sp 128 +
+STACK CFI 87c54 .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 87c58 .cfa: x29 96 +
+STACK CFI 87c5c x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 87c68 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 87c80 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 87cb0 x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 87d08 .cfa: sp 128 +
+STACK CFI 87d20 x19: x19 x20: x20
+STACK CFI 87d24 x21: x21 x22: x22
+STACK CFI 87d28 x23: x23 x24: x24
+STACK CFI 87d2c x25: x25 x26: x26
+STACK CFI 87d30 x27: x27 x28: x28
+STACK CFI 87d34 .ra: .ra x29: x29
+STACK CFI 87d38 .cfa: sp 0 +
+STACK CFI 87d3c .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 87e08 1b8 .cfa: sp 0 + .ra: x30
+STACK CFI 87e0c .cfa: sp 128 +
+STACK CFI 87e14 .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 87e18 .cfa: x29 96 +
+STACK CFI 87e1c x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 87e28 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 87e40 x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 87e70 x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 87ec8 .cfa: sp 128 +
+STACK CFI 87ee0 x19: x19 x20: x20
+STACK CFI 87ee4 x21: x21 x22: x22
+STACK CFI 87ee8 x23: x23 x24: x24
+STACK CFI 87eec x25: x25 x26: x26
+STACK CFI 87ef0 x27: x27 x28: x28
+STACK CFI 87ef4 .ra: .ra x29: x29
+STACK CFI 87ef8 .cfa: sp 0 +
+STACK CFI 87efc .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 87fc0 498 .cfa: sp 0 + .ra: x30
+STACK CFI 87fc4 .cfa: sp 416 + .ra: .cfa -408 + ^ x29: .cfa -416 + ^
+STACK CFI 87fc8 .cfa: x29 416 +
+STACK CFI 87fd4 v10: .cfa -304 + ^ v8: .cfa -320 + ^ v9: .cfa -312 + ^
+STACK CFI 87fe8 x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^
+STACK CFI 88008 x23: .cfa -368 + ^ x24: .cfa -360 + ^ x25: .cfa -352 + ^ x26: .cfa -344 + ^ x27: .cfa -336 + ^ x28: .cfa -328 + ^
+STACK CFI 881a4 x19: x19 x20: x20
+STACK CFI 881a8 v8: v8 v9: v9
+STACK CFI 881ac x21: x21 x22: x22
+STACK CFI 881b0 x23: x23 x24: x24
+STACK CFI 881b4 x25: x25 x26: x26
+STACK CFI 881b8 x27: x27 x28: x28
+STACK CFI 881bc v10: v10
+STACK CFI 881c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 881c4 .cfa: x29 416 + .ra: .cfa -408 + ^ v10: .cfa -304 + ^ v8: .cfa -320 + ^ v9: .cfa -312 + ^ x19: .cfa -400 + ^ x20: .cfa -392 + ^ x21: .cfa -384 + ^ x22: .cfa -376 + ^ x23: .cfa -368 + ^ x24: .cfa -360 + ^ x25: .cfa -352 + ^ x26: .cfa -344 + ^ x27: .cfa -336 + ^ x28: .cfa -328 + ^ x29: .cfa -416 + ^
+STACK CFI INIT 88458 130 .cfa: sp 0 + .ra: x30
+STACK CFI 8845c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 88460 .cfa: x29 48 +
+STACK CFI 88464 x19: .cfa -32 + ^
+STACK CFI 88494 x19: x19
+STACK CFI 884a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 884a4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 884d0 x19: x19
+STACK CFI 884dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 884e0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 88588 268 .cfa: sp 0 + .ra: x30
+STACK CFI 8858c .cfa: sp 176 + .ra: .cfa -168 + ^ x29: .cfa -176 + ^
+STACK CFI 88594 .cfa: x29 176 +
+STACK CFI 8859c v10: .cfa -64 + ^ v11: .cfa -56 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^
+STACK CFI 885b4 v8: .cfa -80 + ^ v9: .cfa -72 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^
+STACK CFI 885e8 x21: .cfa -144 + ^ x22: .cfa -136 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^
+STACK CFI 885f4 x19: .cfa -160 + ^ x20: .cfa -152 + ^
+STACK CFI 886c0 v10: v10 v11: v11
+STACK CFI 886c4 x19: x19 x20: x20
+STACK CFI 886c8 v8: v8 v9: v9
+STACK CFI 886cc x21: x21 x22: x22
+STACK CFI 886d0 x23: x23 x24: x24
+STACK CFI 886d4 x25: x25 x26: x26
+STACK CFI 886d8 x27: x27 x28: x28
+STACK CFI 886dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 886e0 .cfa: x29 176 + .ra: .cfa -168 + ^ v10: .cfa -64 + ^ v11: .cfa -56 + ^ v8: .cfa -80 + ^ v9: .cfa -72 + ^ x19: .cfa -160 + ^ x20: .cfa -152 + ^ x21: .cfa -144 + ^ x22: .cfa -136 + ^ x23: .cfa -128 + ^ x24: .cfa -120 + ^ x25: .cfa -112 + ^ x26: .cfa -104 + ^ x27: .cfa -96 + ^ x28: .cfa -88 + ^ x29: .cfa -176 + ^
+STACK CFI INIT 887f0 160 .cfa: sp 0 + .ra: x30
+STACK CFI 887f4 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 887fc .cfa: x29 80 +
+STACK CFI 88804 x19: .cfa -64 + ^
+STACK CFI 88858 x19: x19
+STACK CFI 8885c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 88860 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI 888ac x19: x19
+STACK CFI 888b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 888b4 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 88950 174 .cfa: sp 0 + .ra: x30
+STACK CFI 88954 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8895c .cfa: x29 80 +
+STACK CFI 88964 x19: .cfa -64 + ^
+STACK CFI 889cc x19: x19
+STACK CFI 889d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 889d4 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI 88a20 x19: x19
+STACK CFI 88a24 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 88a28 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 88ac4 4b4 .cfa: sp 0 + .ra: x30
+STACK CFI 88ac8 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 88acc .cfa: x29 144 +
+STACK CFI 88ad0 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 88aec x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 88afc x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 88be8 x19: x19 x20: x20
+STACK CFI 88bec x21: x21 x22: x22
+STACK CFI 88bf0 x23: x23 x24: x24
+STACK CFI 88bf4 x25: x25 x26: x26
+STACK CFI 88bf8 x27: x27 x28: x28
+STACK CFI 88bfc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 88c00 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 88f78 1ac .cfa: sp 0 + .ra: x30
+STACK CFI 88f7c .cfa: sp 128 +
+STACK CFI 88f84 .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 88f88 .cfa: x29 96 +
+STACK CFI 88f8c x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 88f98 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 88fb4 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 88fe4 x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 8903c .cfa: sp 128 +
+STACK CFI 89054 x19: x19 x20: x20
+STACK CFI 89058 x21: x21 x22: x22
+STACK CFI 8905c x23: x23 x24: x24
+STACK CFI 89060 x25: x25 x26: x26
+STACK CFI 89064 x27: x27 x28: x28
+STACK CFI 89068 .ra: .ra x29: x29
+STACK CFI 8906c .cfa: sp 0 +
+STACK CFI 89070 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 89124 1a4 .cfa: sp 0 + .ra: x30
+STACK CFI 89128 .cfa: sp 128 +
+STACK CFI 89130 .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 89134 .cfa: x29 96 +
+STACK CFI 89138 x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 89144 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 8915c x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 89190 x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 891e8 .cfa: sp 128 +
+STACK CFI 89200 x19: x19 x20: x20
+STACK CFI 89204 x21: x21 x22: x22
+STACK CFI 89208 x23: x23 x24: x24
+STACK CFI 8920c x25: x25 x26: x26
+STACK CFI 89210 x27: x27 x28: x28
+STACK CFI 89214 .ra: .ra x29: x29
+STACK CFI 89218 .cfa: sp 0 +
+STACK CFI 8921c .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 892c8 450 .cfa: sp 0 + .ra: x30
+STACK CFI 892cc .cfa: sp 208 + .ra: .cfa -200 + ^ x29: .cfa -208 + ^
+STACK CFI 892d0 .cfa: x29 208 +
+STACK CFI 892d4 v8: .cfa -112 + ^ v9: .cfa -104 + ^
+STACK CFI 892e0 x25: .cfa -144 + ^ x26: .cfa -136 + ^
+STACK CFI 892ec x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^
+STACK CFI 89304 x23: .cfa -160 + ^ x24: .cfa -152 + ^ x27: .cfa -128 + ^ x28: .cfa -120 + ^
+STACK CFI 89484 x19: x19 x20: x20
+STACK CFI 89488 v8: v8 v9: v9
+STACK CFI 8948c x21: x21 x22: x22
+STACK CFI 89490 x23: x23 x24: x24
+STACK CFI 89494 x25: x25 x26: x26
+STACK CFI 89498 x27: x27 x28: x28
+STACK CFI 8949c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 894a0 .cfa: x29 208 + .ra: .cfa -200 + ^ v8: .cfa -112 + ^ v9: .cfa -104 + ^ x19: .cfa -192 + ^ x20: .cfa -184 + ^ x21: .cfa -176 + ^ x22: .cfa -168 + ^ x23: .cfa -160 + ^ x24: .cfa -152 + ^ x25: .cfa -144 + ^ x26: .cfa -136 + ^ x27: .cfa -128 + ^ x28: .cfa -120 + ^ x29: .cfa -208 + ^
+STACK CFI INIT 89718 15c .cfa: sp 0 + .ra: x30
+STACK CFI 8971c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 89720 .cfa: x29 48 +
+STACK CFI 89724 x19: .cfa -32 + ^
+STACK CFI 89750 x19: x19
+STACK CFI 89754 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 89758 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 89844 x19: x19
+STACK CFI 89848 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8984c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 89874 4e0 .cfa: sp 0 + .ra: x30
+STACK CFI 89878 .cfa: sp 2224 +
+STACK CFI 8987c .cfa: sp 2336 + .ra: .cfa -2328 + ^ x29: .cfa -2336 + ^
+STACK CFI 89880 .cfa: x29 2336 +
+STACK CFI 89884 v8: .cfa -2240 + ^
+STACK CFI 8988c x21: .cfa -2304 + ^ x22: .cfa -2296 + ^
+STACK CFI 8989c x23: .cfa -2288 + ^ x24: .cfa -2280 + ^
+STACK CFI 898b8 x19: .cfa -2320 + ^ x20: .cfa -2312 + ^ x25: .cfa -2272 + ^ x26: .cfa -2264 + ^ x27: .cfa -2256 + ^ x28: .cfa -2248 + ^
+STACK CFI 89b64 x21: x21 x22: x22
+STACK CFI 89b68 x19: x19 x20: x20
+STACK CFI 89b6c x23: x23 x24: x24
+STACK CFI 89b70 x25: x25 x26: x26
+STACK CFI 89b74 x27: x27 x28: x28
+STACK CFI 89b78 v8: v8
+STACK CFI 89b7c .cfa: sp 2224 + .ra: .ra x29: x29
+STACK CFI 89b80 .cfa: sp 2112 +
+STACK CFI 89b84 .cfa: x29 2336 + .ra: .cfa -2328 + ^ v8: .cfa -2240 + ^ x19: .cfa -2320 + ^ x20: .cfa -2312 + ^ x21: .cfa -2304 + ^ x22: .cfa -2296 + ^ x23: .cfa -2288 + ^ x24: .cfa -2280 + ^ x25: .cfa -2272 + ^ x26: .cfa -2264 + ^ x27: .cfa -2256 + ^ x28: .cfa -2248 + ^ x29: .cfa -2336 + ^
+STACK CFI INIT 89d54 220 .cfa: sp 0 + .ra: x30
+STACK CFI 89d58 .cfa: sp 592 +
+STACK CFI 89d5c .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 89d60 .cfa: x29 688 +
+STACK CFI 89d64 x19: .cfa -672 + ^ x20: .cfa -664 + ^
+STACK CFI 89d78 x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 89d8c x27: .cfa -608 + ^ x28: .cfa -600 + ^
+STACK CFI 89ecc .cfa: sp 688 +
+STACK CFI 89ed8 x19: x19 x20: x20
+STACK CFI 89edc x21: x21 x22: x22
+STACK CFI 89ee0 x23: x23 x24: x24
+STACK CFI 89ee4 x25: x25 x26: x26
+STACK CFI 89ee8 x27: x27 x28: x28
+STACK CFI 89eec .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 89ef0 .cfa: sp 496 +
+STACK CFI 89ef4 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 89f74 24 .cfa: sp 0 + .ra: x30
+STACK CFI 89f78 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 89f84 .cfa: x29 16 +
+STACK CFI 89f94 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 89f98 220 .cfa: sp 0 + .ra: x30
+STACK CFI 89f9c .cfa: sp 592 +
+STACK CFI 89fa0 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 89fa4 .cfa: x29 688 +
+STACK CFI 89fa8 x19: .cfa -672 + ^ x20: .cfa -664 + ^
+STACK CFI 89fbc x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 89fd0 x27: .cfa -608 + ^ x28: .cfa -600 + ^
+STACK CFI 8a110 .cfa: sp 688 +
+STACK CFI 8a11c x19: x19 x20: x20
+STACK CFI 8a120 x21: x21 x22: x22
+STACK CFI 8a124 x23: x23 x24: x24
+STACK CFI 8a128 x25: x25 x26: x26
+STACK CFI 8a12c x27: x27 x28: x28
+STACK CFI 8a130 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 8a134 .cfa: sp 496 +
+STACK CFI 8a138 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 8a1b8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 8a1bc .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8a1c8 .cfa: x29 16 +
+STACK CFI 8a1d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8a1dc 15c .cfa: sp 0 + .ra: x30
+STACK CFI 8a1e0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8a1e4 .cfa: x29 48 +
+STACK CFI 8a1e8 x19: .cfa -32 + ^
+STACK CFI 8a214 x19: x19
+STACK CFI 8a218 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a21c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 8a308 x19: x19
+STACK CFI 8a30c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a310 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 8a338 3e8 .cfa: sp 0 + .ra: x30
+STACK CFI 8a33c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8a340 .cfa: x29 96 +
+STACK CFI 8a348 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 8a408 x19: x19 x20: x20
+STACK CFI 8a40c x21: x21 x22: x22
+STACK CFI 8a410 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a414 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI 8a4c0 x19: x19 x20: x20
+STACK CFI 8a4c4 x21: x21 x22: x22
+STACK CFI 8a4c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a4cc .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI 8a580 x19: x19 x20: x20
+STACK CFI 8a584 x21: x21 x22: x22
+STACK CFI 8a588 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a58c .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI 8a5f8 x19: x19 x20: x20
+STACK CFI 8a5fc x21: x21 x22: x22
+STACK CFI 8a600 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a604 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI 8a638 x19: x19 x20: x20
+STACK CFI 8a63c x21: x21 x22: x22
+STACK CFI 8a640 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a644 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 8a720 5e0 .cfa: sp 0 + .ra: x30
+STACK CFI 8a724 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8a728 .cfa: x29 320 +
+STACK CFI 8a72c v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8a734 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8a740 v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8a74c v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8a768 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8a828 x19: x19 x20: x20
+STACK CFI 8a82c v8: v8 v9: v9
+STACK CFI 8a830 x21: x21 x22: x22
+STACK CFI 8a834 v10: v10 v11: v11
+STACK CFI 8a838 x23: x23 x24: x24
+STACK CFI 8a83c v12: v12 v13: v13
+STACK CFI 8a840 x25: x25 x26: x26
+STACK CFI 8a844 v14: v14 v15: v15
+STACK CFI 8a848 x27: x27 x28: x28
+STACK CFI 8a84c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8a850 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8ad00 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8ad04 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8ad08 .cfa: x29 48 +
+STACK CFI 8ad30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8ad34 54 .cfa: sp 0 + .ra: x30
+STACK CFI 8ad38 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8ad3c .cfa: x29 80 +
+STACK CFI 8ad84 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8ad88 5f8 .cfa: sp 0 + .ra: x30
+STACK CFI 8ad8c .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8ad90 .cfa: x29 320 +
+STACK CFI 8ad94 v10: .cfa -208 + ^ v11: .cfa -200 + ^
+STACK CFI 8ad9c v12: .cfa -192 + ^ v13: .cfa -184 + ^
+STACK CFI 8ada8 v8: .cfa -224 + ^ v9: .cfa -216 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8adb4 v14: .cfa -176 + ^ v15: .cfa -168 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8add0 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8ae8c x19: x19 x20: x20
+STACK CFI 8ae90 v8: v8 v9: v9
+STACK CFI 8ae94 x21: x21 x22: x22
+STACK CFI 8ae98 v10: v10 v11: v11
+STACK CFI 8ae9c x23: x23 x24: x24
+STACK CFI 8aea0 v12: v12 v13: v13
+STACK CFI 8aea4 x25: x25 x26: x26
+STACK CFI 8aea8 v14: v14 v15: v15
+STACK CFI 8aeac x27: x27 x28: x28
+STACK CFI 8aeb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8aeb4 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8b380 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8b384 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8b388 .cfa: x29 48 +
+STACK CFI 8b3b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8b3b4 5e0 .cfa: sp 0 + .ra: x30
+STACK CFI 8b3b8 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8b3bc .cfa: x29 320 +
+STACK CFI 8b3c0 v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8b3c8 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8b3d4 v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8b3e0 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8b3fc x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8b4bc x19: x19 x20: x20
+STACK CFI 8b4c0 v8: v8 v9: v9
+STACK CFI 8b4c4 x21: x21 x22: x22
+STACK CFI 8b4c8 v10: v10 v11: v11
+STACK CFI 8b4cc x23: x23 x24: x24
+STACK CFI 8b4d0 v12: v12 v13: v13
+STACK CFI 8b4d4 x25: x25 x26: x26
+STACK CFI 8b4d8 v14: v14 v15: v15
+STACK CFI 8b4dc x27: x27 x28: x28
+STACK CFI 8b4e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8b4e4 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8b994 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8b998 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8b99c .cfa: x29 48 +
+STACK CFI 8b9c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8b9c8 5d0 .cfa: sp 0 + .ra: x30
+STACK CFI 8b9cc .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 8b9d0 .cfa: x29 304 +
+STACK CFI 8b9d4 v10: .cfa -192 + ^ v11: .cfa -184 + ^
+STACK CFI 8b9dc v12: .cfa -176 + ^ v13: .cfa -168 + ^
+STACK CFI 8b9e8 v8: .cfa -208 + ^ v9: .cfa -200 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^
+STACK CFI 8b9f4 v14: .cfa -160 + ^ v15: .cfa -152 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^
+STACK CFI 8ba10 x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 8bacc x19: x19 x20: x20
+STACK CFI 8bad0 v8: v8 v9: v9
+STACK CFI 8bad4 x21: x21 x22: x22
+STACK CFI 8bad8 v10: v10 v11: v11
+STACK CFI 8badc x23: x23 x24: x24
+STACK CFI 8bae0 v12: v12 v13: v13
+STACK CFI 8bae4 x25: x25 x26: x26
+STACK CFI 8bae8 v14: v14 v15: v15
+STACK CFI 8baec x27: x27 x28: x28
+STACK CFI 8baf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8baf4 .cfa: x29 304 + .ra: .cfa -296 + ^ v10: .cfa -192 + ^ v11: .cfa -184 + ^ v12: .cfa -176 + ^ v13: .cfa -168 + ^ v14: .cfa -160 + ^ v15: .cfa -152 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^ x29: .cfa -304 + ^
+STACK CFI INIT 8bf98 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8bf9c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8bfa0 .cfa: x29 48 +
+STACK CFI 8bfc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8bfcc 4f4 .cfa: sp 0 + .ra: x30
+STACK CFI 8bfd0 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8bfd4 .cfa: x29 320 +
+STACK CFI 8bfd8 v10: .cfa -208 + ^ v11: .cfa -200 + ^
+STACK CFI 8bfe0 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8bfec v8: .cfa -224 + ^ v9: .cfa -216 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8bff8 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8c014 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8c0b4 x19: x19 x20: x20
+STACK CFI 8c0b8 v8: v8 v9: v9
+STACK CFI 8c0bc x21: x21 x22: x22
+STACK CFI 8c0c0 v10: v10 v11: v11
+STACK CFI 8c0c4 x23: x23 x24: x24
+STACK CFI 8c0c8 v12: v12 v13: v13
+STACK CFI 8c0cc x25: x25 x26: x26
+STACK CFI 8c0d0 v14: v14 v15: v15
+STACK CFI 8c0d4 x27: x27 x28: x28
+STACK CFI 8c0d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8c0dc .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8c4c0 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8c4c4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8c4c8 .cfa: x29 48 +
+STACK CFI 8c4f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8c4f4 5f8 .cfa: sp 0 + .ra: x30
+STACK CFI 8c4f8 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8c4fc .cfa: x29 320 +
+STACK CFI 8c500 v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8c508 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8c514 v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8c520 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8c53c x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8c5fc x19: x19 x20: x20
+STACK CFI 8c600 v8: v8 v9: v9
+STACK CFI 8c604 x21: x21 x22: x22
+STACK CFI 8c608 v10: v10 v11: v11
+STACK CFI 8c60c x23: x23 x24: x24
+STACK CFI 8c610 v12: v12 v13: v13
+STACK CFI 8c614 x25: x25 x26: x26
+STACK CFI 8c618 v14: v14 v15: v15
+STACK CFI 8c61c x27: x27 x28: x28
+STACK CFI 8c620 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8c624 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8caec 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8caf0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8caf4 .cfa: x29 48 +
+STACK CFI 8cb1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8cb20 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 8cb24 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8cb28 .cfa: x29 80 +
+STACK CFI 8cb8c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cb90 .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8cbb0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cbb4 .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8cbbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cbc0 .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 8cbc8 3e4 .cfa: sp 0 + .ra: x30
+STACK CFI 8cbcc .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8cbd0 .cfa: x29 80 +
+STACK CFI 8cbd8 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI 8cc98 x19: x19 x20: x20
+STACK CFI 8cc9c x21: x21 x22: x22
+STACK CFI 8cca0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cca4 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x29: .cfa -80 + ^
+STACK CFI 8cd48 x19: x19 x20: x20
+STACK CFI 8cd4c x21: x21 x22: x22
+STACK CFI 8cd50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cd54 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x29: .cfa -80 + ^
+STACK CFI 8ce08 x19: x19 x20: x20
+STACK CFI 8ce0c x21: x21 x22: x22
+STACK CFI 8ce10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8ce14 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x29: .cfa -80 + ^
+STACK CFI 8ce80 x19: x19 x20: x20
+STACK CFI 8ce84 x21: x21 x22: x22
+STACK CFI 8ce88 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8ce8c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x29: .cfa -80 + ^
+STACK CFI 8cec0 x19: x19 x20: x20
+STACK CFI 8cec4 x21: x21 x22: x22
+STACK CFI 8cec8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8cecc .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 8cfac 5c4 .cfa: sp 0 + .ra: x30
+STACK CFI 8cfb0 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8cfb4 .cfa: x29 320 +
+STACK CFI 8cfb8 v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8cfc0 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8cfcc v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8cfd8 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8cff4 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8d0b4 x19: x19 x20: x20
+STACK CFI 8d0b8 v8: v8 v9: v9
+STACK CFI 8d0bc x21: x21 x22: x22
+STACK CFI 8d0c0 v10: v10 v11: v11
+STACK CFI 8d0c4 x23: x23 x24: x24
+STACK CFI 8d0c8 v12: v12 v13: v13
+STACK CFI 8d0cc x25: x25 x26: x26
+STACK CFI 8d0d0 v14: v14 v15: v15
+STACK CFI 8d0d4 x27: x27 x28: x28
+STACK CFI 8d0d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8d0dc .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8d570 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8d574 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8d578 .cfa: x29 48 +
+STACK CFI 8d5a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8d5a4 54 .cfa: sp 0 + .ra: x30
+STACK CFI 8d5a8 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8d5ac .cfa: x29 80 +
+STACK CFI 8d5f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8d5f8 5dc .cfa: sp 0 + .ra: x30
+STACK CFI 8d5fc .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8d600 .cfa: x29 320 +
+STACK CFI 8d604 v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8d60c v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8d618 v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8d624 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8d640 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8d700 x19: x19 x20: x20
+STACK CFI 8d704 v8: v8 v9: v9
+STACK CFI 8d708 x21: x21 x22: x22
+STACK CFI 8d70c v10: v10 v11: v11
+STACK CFI 8d710 x23: x23 x24: x24
+STACK CFI 8d714 v12: v12 v13: v13
+STACK CFI 8d718 x25: x25 x26: x26
+STACK CFI 8d71c v14: v14 v15: v15
+STACK CFI 8d720 x27: x27 x28: x28
+STACK CFI 8d724 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8d728 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8dbd4 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8dbd8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8dbdc .cfa: x29 48 +
+STACK CFI 8dc04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8dc08 5c4 .cfa: sp 0 + .ra: x30
+STACK CFI 8dc0c .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8dc10 .cfa: x29 320 +
+STACK CFI 8dc14 v8: .cfa -224 + ^ v9: .cfa -216 + ^
+STACK CFI 8dc1c v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8dc28 v10: .cfa -208 + ^ v11: .cfa -200 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8dc34 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8dc50 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8dd10 x19: x19 x20: x20
+STACK CFI 8dd14 v8: v8 v9: v9
+STACK CFI 8dd18 x21: x21 x22: x22
+STACK CFI 8dd1c v10: v10 v11: v11
+STACK CFI 8dd20 x23: x23 x24: x24
+STACK CFI 8dd24 v12: v12 v13: v13
+STACK CFI 8dd28 x25: x25 x26: x26
+STACK CFI 8dd2c v14: v14 v15: v15
+STACK CFI 8dd30 x27: x27 x28: x28
+STACK CFI 8dd34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8dd38 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8e1cc 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8e1d0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8e1d4 .cfa: x29 48 +
+STACK CFI 8e1fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8e200 4d4 .cfa: sp 0 + .ra: x30
+STACK CFI 8e204 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8e208 .cfa: x29 320 +
+STACK CFI 8e20c v10: .cfa -208 + ^ v11: .cfa -200 + ^
+STACK CFI 8e214 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8e220 v8: .cfa -224 + ^ v9: .cfa -216 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8e22c v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8e248 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8e2e8 x19: x19 x20: x20
+STACK CFI 8e2ec v8: v8 v9: v9
+STACK CFI 8e2f0 x21: x21 x22: x22
+STACK CFI 8e2f4 v10: v10 v11: v11
+STACK CFI 8e2f8 x23: x23 x24: x24
+STACK CFI 8e2fc v12: v12 v13: v13
+STACK CFI 8e300 x25: x25 x26: x26
+STACK CFI 8e304 v14: v14 v15: v15
+STACK CFI 8e308 x27: x27 x28: x28
+STACK CFI 8e30c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8e310 .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8e6d4 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8e6d8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8e6dc .cfa: x29 48 +
+STACK CFI 8e704 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8e708 5c0 .cfa: sp 0 + .ra: x30
+STACK CFI 8e70c .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 8e710 .cfa: x29 304 +
+STACK CFI 8e714 v10: .cfa -192 + ^ v11: .cfa -184 + ^
+STACK CFI 8e71c v12: .cfa -176 + ^ v13: .cfa -168 + ^
+STACK CFI 8e728 v8: .cfa -208 + ^ v9: .cfa -200 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^
+STACK CFI 8e734 v14: .cfa -160 + ^ v15: .cfa -152 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^
+STACK CFI 8e750 x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 8e80c x19: x19 x20: x20
+STACK CFI 8e810 v8: v8 v9: v9
+STACK CFI 8e814 x21: x21 x22: x22
+STACK CFI 8e818 v10: v10 v11: v11
+STACK CFI 8e81c x23: x23 x24: x24
+STACK CFI 8e820 v12: v12 v13: v13
+STACK CFI 8e824 x25: x25 x26: x26
+STACK CFI 8e828 v14: v14 v15: v15
+STACK CFI 8e82c x27: x27 x28: x28
+STACK CFI 8e830 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8e834 .cfa: x29 304 + .ra: .cfa -296 + ^ v10: .cfa -192 + ^ v11: .cfa -184 + ^ v12: .cfa -176 + ^ v13: .cfa -168 + ^ v14: .cfa -160 + ^ v15: .cfa -152 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^ x29: .cfa -304 + ^
+STACK CFI INIT 8ecc8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8eccc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8ecd0 .cfa: x29 48 +
+STACK CFI 8ecf8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8ecfc 4fc .cfa: sp 0 + .ra: x30
+STACK CFI 8ed00 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 8ed04 .cfa: x29 320 +
+STACK CFI 8ed08 v10: .cfa -208 + ^ v11: .cfa -200 + ^
+STACK CFI 8ed10 v14: .cfa -176 + ^ v15: .cfa -168 + ^
+STACK CFI 8ed1c v8: .cfa -224 + ^ v9: .cfa -216 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^
+STACK CFI 8ed28 v12: .cfa -192 + ^ v13: .cfa -184 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 8ed44 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^
+STACK CFI 8ede4 x19: x19 x20: x20
+STACK CFI 8ede8 v8: v8 v9: v9
+STACK CFI 8edec x21: x21 x22: x22
+STACK CFI 8edf0 v10: v10 v11: v11
+STACK CFI 8edf4 x23: x23 x24: x24
+STACK CFI 8edf8 v12: v12 v13: v13
+STACK CFI 8edfc x25: x25 x26: x26
+STACK CFI 8ee00 v14: v14 v15: v15
+STACK CFI 8ee04 x27: x27 x28: x28
+STACK CFI 8ee08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8ee0c .cfa: x29 320 + .ra: .cfa -312 + ^ v10: .cfa -208 + ^ v11: .cfa -200 + ^ v12: .cfa -192 + ^ v13: .cfa -184 + ^ v14: .cfa -176 + ^ v15: .cfa -168 + ^ v8: .cfa -224 + ^ v9: .cfa -216 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x25: .cfa -256 + ^ x26: .cfa -248 + ^ x27: .cfa -240 + ^ x28: .cfa -232 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 8f1f8 34 .cfa: sp 0 + .ra: x30
+STACK CFI 8f1fc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 8f200 .cfa: x29 48 +
+STACK CFI 8f228 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8f22c a8 .cfa: sp 0 + .ra: x30
+STACK CFI 8f230 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8f234 .cfa: x29 80 +
+STACK CFI 8f298 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8f29c .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8f2bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8f2c0 .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 8f2c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8f2cc .cfa: x29 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 8f2d4 468 .cfa: sp 0 + .ra: x30
+STACK CFI 8f2d8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 8f2e0 .cfa: x29 112 +
+STACK CFI 8f2e8 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI 8f308 x21: .cfa -80 + ^ x22: .cfa -72 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI 8f48c x19: x19 x20: x20
+STACK CFI 8f490 x21: x21 x22: x22
+STACK CFI 8f494 x23: x23 x24: x24
+STACK CFI 8f498 x25: x25 x26: x26
+STACK CFI 8f49c x27: x27
+STACK CFI 8f4a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8f4a4 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 8f73c 220 .cfa: sp 0 + .ra: x30
+STACK CFI 8f740 .cfa: sp 592 +
+STACK CFI 8f744 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 8f748 .cfa: x29 688 +
+STACK CFI 8f74c x19: .cfa -672 + ^ x20: .cfa -664 + ^
+STACK CFI 8f760 x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 8f774 x27: .cfa -608 + ^ x28: .cfa -600 + ^
+STACK CFI 8f8b4 .cfa: sp 688 +
+STACK CFI 8f8c0 x19: x19 x20: x20
+STACK CFI 8f8c4 x21: x21 x22: x22
+STACK CFI 8f8c8 x23: x23 x24: x24
+STACK CFI 8f8cc x25: x25 x26: x26
+STACK CFI 8f8d0 x27: x27 x28: x28
+STACK CFI 8f8d4 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 8f8d8 .cfa: sp 496 +
+STACK CFI 8f8dc .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 8f95c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 8f960 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8f96c .cfa: x29 16 +
+STACK CFI 8f97c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8f980 220 .cfa: sp 0 + .ra: x30
+STACK CFI 8f984 .cfa: sp 592 +
+STACK CFI 8f988 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 8f98c .cfa: x29 688 +
+STACK CFI 8f990 x19: .cfa -672 + ^ x20: .cfa -664 + ^
+STACK CFI 8f9a4 x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 8f9b8 x27: .cfa -608 + ^ x28: .cfa -600 + ^
+STACK CFI 8faf8 .cfa: sp 688 +
+STACK CFI 8fb04 x19: x19 x20: x20
+STACK CFI 8fb08 x21: x21 x22: x22
+STACK CFI 8fb0c x23: x23 x24: x24
+STACK CFI 8fb10 x25: x25 x26: x26
+STACK CFI 8fb14 x27: x27 x28: x28
+STACK CFI 8fb18 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 8fb1c .cfa: sp 496 +
+STACK CFI 8fb20 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x28: .cfa -600 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 8fba0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 8fba4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 8fbb0 .cfa: x29 16 +
+STACK CFI 8fbc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 8fbc4 4b4 .cfa: sp 0 + .ra: x30
+STACK CFI 8fbc8 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 8fbd0 .cfa: x29 96 +
+STACK CFI 8fbdc x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^
+STACK CFI 8fd34 x23: x23
+STACK CFI 8fd38 x19: x19 x20: x20
+STACK CFI 8fd3c x21: x21 x22: x22
+STACK CFI 8fd40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8fd44 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x29: .cfa -96 + ^
+STACK CFI 8ff70 x23: x23
+STACK CFI 8ff78 x19: x19 x20: x20
+STACK CFI 8ff7c x21: x21 x22: x22
+STACK CFI 8ff80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 8ff84 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 90078 21c .cfa: sp 0 + .ra: x30
+STACK CFI 9007c .cfa: sp 464 +
+STACK CFI 90080 .ra: .cfa -440 + ^ x29: .cfa -448 + ^
+STACK CFI 90084 .cfa: x29 448 +
+STACK CFI 90088 v8: .cfa -352 + ^
+STACK CFI 90090 x23: .cfa -400 + ^ x24: .cfa -392 + ^
+STACK CFI 9009c x19: .cfa -432 + ^ x20: .cfa -424 + ^ x21: .cfa -416 + ^ x22: .cfa -408 + ^
+STACK CFI 900b4 x25: .cfa -384 + ^ x26: .cfa -376 + ^ x27: .cfa -368 + ^ x28: .cfa -360 + ^
+STACK CFI 90200 .cfa: sp 464 +
+STACK CFI 9020c v8: v8
+STACK CFI 90210 x19: x19 x20: x20
+STACK CFI 90214 x21: x21 x22: x22
+STACK CFI 90218 x23: x23 x24: x24
+STACK CFI 9021c x25: x25 x26: x26
+STACK CFI 90220 x27: x27 x28: x28
+STACK CFI 90224 .ra: .ra x29: x29
+STACK CFI 90228 .cfa: sp 0 +
+STACK CFI 9022c .cfa: x29 448 + .ra: .cfa -440 + ^ v8: .cfa -352 + ^ x19: .cfa -432 + ^ x20: .cfa -424 + ^ x21: .cfa -416 + ^ x22: .cfa -408 + ^ x23: .cfa -400 + ^ x24: .cfa -392 + ^ x25: .cfa -384 + ^ x26: .cfa -376 + ^ x27: .cfa -368 + ^ x28: .cfa -360 + ^ x29: .cfa -448 + ^
+STACK CFI INIT 90294 a4 .cfa: sp 0 + .ra: x30
+STACK CFI 90298 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 902a0 .cfa: x29 96 +
+STACK CFI 902a8 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x22: .cfa -64 + ^ x23: .cfa -56 + ^
+STACK CFI 902f4 x19: x19 x20: x20
+STACK CFI 902f8 x22: x22 x23: x23
+STACK CFI 902fc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 90300 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x22: .cfa -64 + ^ x23: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 90338 1e8 .cfa: sp 0 + .ra: x30
+STACK CFI 9033c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 90340 .cfa: x29 96 +
+STACK CFI 90344 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 90354 x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 90368 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 903e8 x21: x21 x22: x22
+STACK CFI 903ec x19: x19 x20: x20
+STACK CFI 903f0 x23: x23 x24: x24
+STACK CFI 903f4 x25: x25 x26: x26
+STACK CFI 903f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 903fc .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 90520 28 .cfa: sp 0 + .ra: x30
+STACK CFI 90524 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 90530 .cfa: x29 16 +
+STACK CFI 90544 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 90548 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 9054c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 90554 .cfa: x29 112 +
+STACK CFI 90560 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 905b0 x23: x23
+STACK CFI 905b4 x19: x19 x20: x20
+STACK CFI 905b8 x21: x21 x22: x22
+STACK CFI 905bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 905c0 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 905f0 6c .cfa: sp 0 + .ra: x30
+STACK CFI 905f4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 905fc .cfa: x29 96 +
+STACK CFI 90600 x22: .cfa -64 + ^ x23: .cfa -56 + ^
+STACK CFI 90614 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 90650 x19: x19 x20: x20
+STACK CFI 90654 x22: x22 x23: x23
+STACK CFI 90658 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9065c 6c .cfa: sp 0 + .ra: x30
+STACK CFI 90660 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 90668 .cfa: x29 96 +
+STACK CFI 9066c x22: .cfa -64 + ^ x23: .cfa -56 + ^
+STACK CFI 90680 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 906bc x19: x19 x20: x20
+STACK CFI 906c0 x22: x22 x23: x23
+STACK CFI 906c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 906c8 550 .cfa: sp 0 + .ra: x30
+STACK CFI 906cc .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 906d0 .cfa: x29 128 +
+STACK CFI 906e0 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^
+STACK CFI 90740 x25: x25
+STACK CFI 9074c x19: x19 x20: x20
+STACK CFI 90750 x21: x21 x22: x22
+STACK CFI 90754 x23: x23 x24: x24
+STACK CFI 90758 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9075c .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 90c18 4d8 .cfa: sp 0 + .ra: x30
+STACK CFI 90c1c .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 90c20 .cfa: x29 144 +
+STACK CFI 90c28 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 90c44 x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 90d50 x19: x19 x20: x20
+STACK CFI 90d54 x21: x21 x22: x22
+STACK CFI 90d58 x23: x23 x24: x24
+STACK CFI 90d5c x25: x25 x26: x26
+STACK CFI 90d60 x27: x27 x28: x28
+STACK CFI 90d64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 90d68 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 910f0 2bc .cfa: sp 0 + .ra: x30
+STACK CFI 910f4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 910f8 .cfa: x29 64 +
+STACK CFI 91108 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 91148 x21: x21 x22: x22
+STACK CFI 91154 x23: x23
+STACK CFI 91158 x19: x19 x20: x20
+STACK CFI 9115c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 91160 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 913ac 844 .cfa: sp 0 + .ra: x30
+STACK CFI 913b0 .cfa: sp 384 + .ra: .cfa -376 + ^ x29: .cfa -384 + ^
+STACK CFI 913b4 .cfa: x29 384 +
+STACK CFI 913bc v12: .cfa -256 + ^ v13: .cfa -248 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^
+STACK CFI 913cc v8: .cfa -288 + ^ v9: .cfa -280 + ^ x19: .cfa -368 + ^ x20: .cfa -360 + ^
+STACK CFI 91400 v10: .cfa -272 + ^ v11: .cfa -264 + ^ v14: .cfa -240 + ^ v15: .cfa -232 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^ x27: .cfa -304 + ^ x28: .cfa -296 + ^
+STACK CFI 91618 v8: v8 v9: v9
+STACK CFI 9161c x19: x19 x20: x20
+STACK CFI 91620 v10: v10 v11: v11
+STACK CFI 91624 x21: x21 x22: x22
+STACK CFI 91628 v12: v12 v13: v13
+STACK CFI 9162c x23: x23 x24: x24
+STACK CFI 91630 v14: v14 v15: v15
+STACK CFI 91634 x25: x25 x26: x26
+STACK CFI 91638 x27: x27 x28: x28
+STACK CFI 9163c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 91640 .cfa: x29 384 + .ra: .cfa -376 + ^ v10: .cfa -272 + ^ v11: .cfa -264 + ^ v12: .cfa -256 + ^ v13: .cfa -248 + ^ v14: .cfa -240 + ^ v15: .cfa -232 + ^ v8: .cfa -288 + ^ v9: .cfa -280 + ^ x19: .cfa -368 + ^ x20: .cfa -360 + ^ x21: .cfa -352 + ^ x22: .cfa -344 + ^ x23: .cfa -336 + ^ x24: .cfa -328 + ^ x25: .cfa -320 + ^ x26: .cfa -312 + ^ x27: .cfa -304 + ^ x28: .cfa -296 + ^ x29: .cfa -384 + ^
+STACK CFI INIT 91bf0 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI 91bf4 .cfa: sp 592 +
+STACK CFI 91bf8 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 91bfc .cfa: x29 688 +
+STACK CFI 91c00 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 91c10 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 91c24 x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 91d30 x27: x27
+STACK CFI 91d3c x19: x19 x20: x20
+STACK CFI 91d40 x21: x21 x22: x22
+STACK CFI 91d44 x23: x23 x24: x24
+STACK CFI 91d48 x25: x25 x26: x26
+STACK CFI 91d4c .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 91d50 .cfa: sp 496 +
+STACK CFI 91d54 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 91e90 34 .cfa: sp 0 + .ra: x30
+STACK CFI 91e94 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 91e98 .cfa: x29 48 +
+STACK CFI 91ec0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 91ec4 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI 91ec8 .cfa: sp 592 +
+STACK CFI 91ecc .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 91ed0 .cfa: x29 688 +
+STACK CFI 91ed4 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 91ee4 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 91ef8 x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 92004 x27: x27
+STACK CFI 92010 x19: x19 x20: x20
+STACK CFI 92014 x21: x21 x22: x22
+STACK CFI 92018 x23: x23 x24: x24
+STACK CFI 9201c x25: x25 x26: x26
+STACK CFI 92020 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 92024 .cfa: sp 496 +
+STACK CFI 92028 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 92164 34 .cfa: sp 0 + .ra: x30
+STACK CFI 92168 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9216c .cfa: x29 48 +
+STACK CFI 92194 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 92198 2a0 .cfa: sp 0 + .ra: x30
+STACK CFI 9219c .cfa: sp 592 +
+STACK CFI 921a0 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 921a4 .cfa: x29 688 +
+STACK CFI 921a8 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 921b8 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 921cc x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 922d8 x27: x27
+STACK CFI 922e4 x19: x19 x20: x20
+STACK CFI 922e8 x21: x21 x22: x22
+STACK CFI 922ec x23: x23 x24: x24
+STACK CFI 922f0 x25: x25 x26: x26
+STACK CFI 922f4 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 922f8 .cfa: sp 496 +
+STACK CFI 922fc .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 92438 34 .cfa: sp 0 + .ra: x30
+STACK CFI 9243c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 92440 .cfa: x29 48 +
+STACK CFI 92468 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9246c 4f4 .cfa: sp 0 + .ra: x30
+STACK CFI 92470 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 92474 .cfa: x29 128 +
+STACK CFI 92488 x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^
+STACK CFI 924f4 x27: x27
+STACK CFI 92500 x19: x19 x20: x20
+STACK CFI 92504 x21: x21 x22: x22
+STACK CFI 92508 x23: x23 x24: x24
+STACK CFI 9250c x25: x25 x26: x26
+STACK CFI 92510 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 92514 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 92960 7b8 .cfa: sp 0 + .ra: x30
+STACK CFI 92964 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 92968 .cfa: x29 304 +
+STACK CFI 92974 v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^
+STACK CFI 92984 v10: .cfa -192 + ^ v11: .cfa -184 + ^ v12: .cfa -176 + ^ v13: .cfa -168 + ^
+STACK CFI 929a0 x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^
+STACK CFI 929b4 v14: .cfa -160 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 92bcc v8: v8 v9: v9
+STACK CFI 92bd0 x19: x19 x20: x20
+STACK CFI 92bd4 v10: v10 v11: v11
+STACK CFI 92bd8 x21: x21 x22: x22
+STACK CFI 92bdc v12: v12 v13: v13
+STACK CFI 92be0 x23: x23 x24: x24
+STACK CFI 92be4 x25: x25 x26: x26
+STACK CFI 92be8 x27: x27 x28: x28
+STACK CFI 92bec v14: v14
+STACK CFI 92bf0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 92bf4 .cfa: x29 304 + .ra: .cfa -296 + ^ v10: .cfa -192 + ^ v11: .cfa -184 + ^ v12: .cfa -176 + ^ v13: .cfa -168 + ^ v14: .cfa -160 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^ x29: .cfa -304 + ^
+STACK CFI INIT 93118 298 .cfa: sp 0 + .ra: x30
+STACK CFI 9311c .cfa: sp 592 +
+STACK CFI 93120 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 93124 .cfa: x29 688 +
+STACK CFI 93128 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 93138 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 9314c x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 93258 x27: x27
+STACK CFI 93264 x19: x19 x20: x20
+STACK CFI 93268 x21: x21 x22: x22
+STACK CFI 9326c x23: x23 x24: x24
+STACK CFI 93270 x25: x25 x26: x26
+STACK CFI 93274 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 93278 .cfa: sp 496 +
+STACK CFI 9327c .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 933b0 34 .cfa: sp 0 + .ra: x30
+STACK CFI 933b4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 933b8 .cfa: x29 48 +
+STACK CFI 933e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 933e4 298 .cfa: sp 0 + .ra: x30
+STACK CFI 933e8 .cfa: sp 592 +
+STACK CFI 933ec .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 933f0 .cfa: x29 688 +
+STACK CFI 933f4 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 93404 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 93418 x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 93524 x27: x27
+STACK CFI 93530 x19: x19 x20: x20
+STACK CFI 93534 x21: x21 x22: x22
+STACK CFI 93538 x23: x23 x24: x24
+STACK CFI 9353c x25: x25 x26: x26
+STACK CFI 93540 .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 93544 .cfa: sp 496 +
+STACK CFI 93548 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 9367c 34 .cfa: sp 0 + .ra: x30
+STACK CFI 93680 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 93684 .cfa: x29 48 +
+STACK CFI 936ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 936b0 298 .cfa: sp 0 + .ra: x30
+STACK CFI 936b4 .cfa: sp 592 +
+STACK CFI 936b8 .cfa: sp 688 + .ra: .cfa -680 + ^ x29: .cfa -688 + ^
+STACK CFI 936bc .cfa: x29 688 +
+STACK CFI 936c0 x23: .cfa -640 + ^ x24: .cfa -632 + ^
+STACK CFI 936d0 x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x27: .cfa -608 + ^
+STACK CFI 936e4 x25: .cfa -624 + ^ x26: .cfa -616 + ^
+STACK CFI 937f0 x27: x27
+STACK CFI 937fc x19: x19 x20: x20
+STACK CFI 93800 x21: x21 x22: x22
+STACK CFI 93804 x23: x23 x24: x24
+STACK CFI 93808 x25: x25 x26: x26
+STACK CFI 9380c .cfa: sp 592 + .ra: .ra x29: x29
+STACK CFI 93810 .cfa: sp 496 +
+STACK CFI 93814 .cfa: x29 688 + .ra: .cfa -680 + ^ x19: .cfa -672 + ^ x20: .cfa -664 + ^ x21: .cfa -656 + ^ x22: .cfa -648 + ^ x23: .cfa -640 + ^ x24: .cfa -632 + ^ x25: .cfa -624 + ^ x26: .cfa -616 + ^ x27: .cfa -608 + ^ x29: .cfa -688 + ^
+STACK CFI INIT 93948 34 .cfa: sp 0 + .ra: x30
+STACK CFI 9394c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 93950 .cfa: x29 48 +
+STACK CFI 93978 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9397c 4c8 .cfa: sp 0 + .ra: x30
+STACK CFI 93980 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9398c .cfa: x29 80 +
+STACK CFI 93998 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 93adc x19: x19 x20: x20
+STACK CFI 93ae0 x21: x21 x22: x22
+STACK CFI 93ae4 x23: x23 x24: x24
+STACK CFI 93ae8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 93aec .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 93e44 1e8 .cfa: sp 0 + .ra: x30
+STACK CFI 93e48 .cfa: sp 240 +
+STACK CFI 93e4c .ra: .cfa -216 + ^ x29: .cfa -224 + ^
+STACK CFI 93e50 .cfa: x29 224 +
+STACK CFI 93e54 x23: .cfa -176 + ^ x24: .cfa -168 + ^
+STACK CFI 93e64 v8: .cfa -128 + ^
+STACK CFI 93e6c x19: .cfa -208 + ^ x20: .cfa -200 + ^
+STACK CFI 93e88 x21: .cfa -192 + ^ x22: .cfa -184 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x27: .cfa -144 + ^ x28: .cfa -136 + ^
+STACK CFI 93f84 .cfa: sp 240 +
+STACK CFI 93f90 v8: v8
+STACK CFI 93f94 x19: x19 x20: x20
+STACK CFI 93f98 x21: x21 x22: x22
+STACK CFI 93f9c x23: x23 x24: x24
+STACK CFI 93fa0 x25: x25 x26: x26
+STACK CFI 93fa4 x27: x27 x28: x28
+STACK CFI 93fa8 .ra: .ra x29: x29
+STACK CFI 93fac .cfa: sp 0 +
+STACK CFI 93fb0 .cfa: x29 224 + .ra: .cfa -216 + ^ v8: .cfa -128 + ^ x19: .cfa -208 + ^ x20: .cfa -200 + ^ x21: .cfa -192 + ^ x22: .cfa -184 + ^ x23: .cfa -176 + ^ x24: .cfa -168 + ^ x25: .cfa -160 + ^ x26: .cfa -152 + ^ x27: .cfa -144 + ^ x28: .cfa -136 + ^ x29: .cfa -224 + ^
+STACK CFI INIT 9402c a4 .cfa: sp 0 + .ra: x30
+STACK CFI 94030 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 94038 .cfa: x29 96 +
+STACK CFI 94040 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x22: .cfa -64 + ^ x23: .cfa -56 + ^
+STACK CFI 9408c x19: x19 x20: x20
+STACK CFI 94090 x22: x22 x23: x23
+STACK CFI 94094 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94098 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x22: .cfa -64 + ^ x23: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 940d0 1fc .cfa: sp 0 + .ra: x30
+STACK CFI 940d4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 940d8 .cfa: x29 96 +
+STACK CFI 940dc x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 940ec x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 94100 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^
+STACK CFI 94180 x21: x21 x22: x22
+STACK CFI 94184 x19: x19 x20: x20
+STACK CFI 94188 x23: x23 x24: x24
+STACK CFI 9418c x25: x25 x26: x26
+STACK CFI 94190 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94194 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 942cc 28 .cfa: sp 0 + .ra: x30
+STACK CFI 942d0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 942dc .cfa: x29 16 +
+STACK CFI 942f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 942f4 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 942f8 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 94300 .cfa: x29 112 +
+STACK CFI 9430c x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^
+STACK CFI 9435c x23: x23
+STACK CFI 94360 x19: x19 x20: x20
+STACK CFI 94364 x21: x21 x22: x22
+STACK CFI 94368 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9436c .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 9439c 70 .cfa: sp 0 + .ra: x30
+STACK CFI 943a0 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 943a4 .cfa: x29 112 +
+STACK CFI 943a8 x23: .cfa -64 + ^
+STACK CFI 943b8 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 943c4 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 943fc x23: x23
+STACK CFI 94400 x19: x19 x20: x20
+STACK CFI 94404 x21: x21 x22: x22
+STACK CFI 94408 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9440c 70 .cfa: sp 0 + .ra: x30
+STACK CFI 94410 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 94414 .cfa: x29 112 +
+STACK CFI 94418 x23: .cfa -64 + ^
+STACK CFI 94428 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 94434 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI 9446c x23: x23
+STACK CFI 94470 x19: x19 x20: x20
+STACK CFI 94474 x21: x21 x22: x22
+STACK CFI 94478 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9447c 420 .cfa: sp 0 + .ra: x30
+STACK CFI 94480 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 94488 .cfa: x29 96 +
+STACK CFI 94494 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^
+STACK CFI 94598 x19: x19 x20: x20
+STACK CFI 9459c x21: x21 x22: x22
+STACK CFI 945a0 x23: x23 x24: x24
+STACK CFI 945a4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 945a8 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x29: .cfa -96 + ^
+STACK CFI 947b4 x21: x21 x22: x22
+STACK CFI 947b8 x19: x19 x20: x20
+STACK CFI 947bc x23: x23 x24: x24
+STACK CFI 947c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 947c4 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 9489c 1d0 .cfa: sp 0 + .ra: x30
+STACK CFI 948a0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 948a8 .cfa: x29 64 +
+STACK CFI 948b0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 949d8 x19: x19 x20: x20
+STACK CFI 949dc x21: x21 x22: x22
+STACK CFI 949e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 949e4 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x29: .cfa -64 + ^
+STACK CFI 94a24 x19: x19 x20: x20
+STACK CFI 94a28 x21: x21 x22: x22
+STACK CFI 94a2c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94a30 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 94a6c 4c4 .cfa: sp 0 + .ra: x30
+STACK CFI 94a70 .cfa: sp 368 + .ra: .cfa -360 + ^ x29: .cfa -368 + ^
+STACK CFI 94a74 .cfa: x29 368 +
+STACK CFI 94a7c x21: .cfa -336 + ^ x22: .cfa -328 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^
+STACK CFI 94a94 x23: .cfa -320 + ^ x24: .cfa -312 + ^
+STACK CFI 94aa4 x19: .cfa -352 + ^ x20: .cfa -344 + ^ x27: .cfa -288 + ^
+STACK CFI 94afc x27: x27
+STACK CFI 94b00 x19: x19 x20: x20
+STACK CFI 94b04 x21: x21 x22: x22
+STACK CFI 94b08 x23: x23 x24: x24
+STACK CFI 94b0c x25: x25 x26: x26
+STACK CFI 94b10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94b14 .cfa: x29 368 + .ra: .cfa -360 + ^ x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x29: .cfa -368 + ^
+STACK CFI 94ca8 x27: x27
+STACK CFI 94cb0 x19: x19 x20: x20
+STACK CFI 94cc0 x21: x21 x22: x22
+STACK CFI 94cc4 x23: x23 x24: x24
+STACK CFI 94cc8 x25: x25 x26: x26
+STACK CFI 94ccc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94cd0 .cfa: x29 368 + .ra: .cfa -360 + ^ x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x29: .cfa -368 + ^
+STACK CFI 94e48 x27: x27
+STACK CFI 94e4c x19: x19 x20: x20
+STACK CFI 94e64 x21: x21 x22: x22
+STACK CFI 94e68 x23: x23 x24: x24
+STACK CFI 94e6c x25: x25 x26: x26
+STACK CFI 94e70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94e74 .cfa: x29 368 + .ra: .cfa -360 + ^ x19: .cfa -352 + ^ x20: .cfa -344 + ^ x21: .cfa -336 + ^ x22: .cfa -328 + ^ x23: .cfa -320 + ^ x24: .cfa -312 + ^ x25: .cfa -304 + ^ x26: .cfa -296 + ^ x27: .cfa -288 + ^ x29: .cfa -368 + ^
+STACK CFI INIT 94f30 7f4 .cfa: sp 0 + .ra: x30
+STACK CFI 94f34 .cfa: sp 304 + .ra: .cfa -296 + ^ x29: .cfa -304 + ^
+STACK CFI 94f38 .cfa: x29 304 +
+STACK CFI 94f44 v10: .cfa -192 + ^ v11: .cfa -184 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^
+STACK CFI 94f68 x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^
+STACK CFI 94fc0 v8: v8 v9: v9
+STACK CFI 94fc4 x19: x19 x20: x20
+STACK CFI 94fc8 v10: v10 v11: v11
+STACK CFI 94fcc x21: x21 x22: x22
+STACK CFI 94fd0 x23: x23 x24: x24
+STACK CFI 94fd4 x25: x25 x26: x26
+STACK CFI 94fd8 x27: x27 x28: x28
+STACK CFI 94fdc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 94fe0 .cfa: x29 304 + .ra: .cfa -296 + ^ v10: .cfa -192 + ^ v11: .cfa -184 + ^ v8: .cfa -208 + ^ v9: .cfa -200 + ^ x19: .cfa -288 + ^ x20: .cfa -280 + ^ x21: .cfa -272 + ^ x22: .cfa -264 + ^ x23: .cfa -256 + ^ x24: .cfa -248 + ^ x25: .cfa -240 + ^ x26: .cfa -232 + ^ x27: .cfa -224 + ^ x28: .cfa -216 + ^ x29: .cfa -304 + ^
+STACK CFI INIT 95724 b48 .cfa: sp 0 + .ra: x30
+STACK CFI 95728 .cfa: sp 672 +
+STACK CFI 9572c .cfa: sp 832 + .ra: .cfa -824 + ^ x29: .cfa -832 + ^
+STACK CFI 95730 .cfa: x29 832 +
+STACK CFI 95738 v8: .cfa -736 + ^ v9: .cfa -728 + ^ x19: .cfa -816 + ^ x20: .cfa -808 + ^
+STACK CFI 95764 v10: .cfa -720 + ^ v11: .cfa -712 + ^ v12: .cfa -704 + ^ v13: .cfa -696 + ^ v14: .cfa -688 + ^ v15: .cfa -680 + ^ x21: .cfa -800 + ^ x22: .cfa -792 + ^ x23: .cfa -784 + ^ x24: .cfa -776 + ^ x25: .cfa -768 + ^ x26: .cfa -760 + ^ x27: .cfa -752 + ^ x28: .cfa -744 + ^
+STACK CFI 957a4 .cfa: sp 832 +
+STACK CFI 957b0 v8: v8 v9: v9
+STACK CFI 957b4 x19: x19 x20: x20
+STACK CFI 957b8 v10: v10 v11: v11
+STACK CFI 957bc x21: x21 x22: x22
+STACK CFI 957c0 v12: v12 v13: v13
+STACK CFI 957c4 x23: x23 x24: x24
+STACK CFI 957c8 v14: v14 v15: v15
+STACK CFI 957cc x25: x25 x26: x26
+STACK CFI 957d0 x27: x27 x28: x28
+STACK CFI 957d4 .cfa: sp 672 + .ra: .ra x29: x29
+STACK CFI 957d8 .cfa: sp 512 +
+STACK CFI 957dc .cfa: x29 832 + .ra: .cfa -824 + ^ v10: .cfa -720 + ^ v11: .cfa -712 + ^ v12: .cfa -704 + ^ v13: .cfa -696 + ^ v14: .cfa -688 + ^ v15: .cfa -680 + ^ v8: .cfa -736 + ^ v9: .cfa -728 + ^ x19: .cfa -816 + ^ x20: .cfa -808 + ^ x21: .cfa -800 + ^ x22: .cfa -792 + ^ x23: .cfa -784 + ^ x24: .cfa -776 + ^ x25: .cfa -768 + ^ x26: .cfa -760 + ^ x27: .cfa -752 + ^ x28: .cfa -744 + ^ x29: .cfa -832 + ^
+STACK CFI INIT 9626c 54 .cfa: sp 0 + .ra: x30
+STACK CFI 96270 .cfa: sp 48 +
+STACK CFI 96288 .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9628c .cfa: x29 32 +
+STACK CFI 962b4 .cfa: sp 48 +
+STACK CFI 962b8 .ra: .ra x29: x29
+STACK CFI 962bc .cfa: sp 0 +
+STACK CFI INIT 962c0 154 .cfa: sp 0 + .ra: x30
+STACK CFI 962c4 .cfa: sp 256 +
+STACK CFI 962d0 .ra: .cfa -232 + ^ x29: .cfa -240 + ^
+STACK CFI 962d4 .cfa: x29 240 +
+STACK CFI 962dc x19: .cfa -224 + ^ x20: .cfa -216 + ^
+STACK CFI 962f0 x21: .cfa -208 + ^
+STACK CFI 9639c .cfa: sp 256 +
+STACK CFI 963a8 x19: x19 x20: x20
+STACK CFI 963ac x21: x21
+STACK CFI 963b0 .ra: .ra x29: x29
+STACK CFI 963b4 .cfa: sp 0 +
+STACK CFI 963b8 .cfa: x29 240 + .ra: .cfa -232 + ^ x19: .cfa -224 + ^ x20: .cfa -216 + ^ x21: .cfa -208 + ^ x29: .cfa -240 + ^
+STACK CFI INIT 96414 504 .cfa: sp 0 + .ra: x30
+STACK CFI 96418 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 9641c .cfa: x29 144 +
+STACK CFI 96420 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 9642c x21: .cfa -112 + ^ x22: .cfa -104 + ^
+STACK CFI 96434 x23: .cfa -96 + ^
+STACK CFI 9665c x23: x23
+STACK CFI 96660 x19: x19 x20: x20
+STACK CFI 96664 x21: x21 x22: x22
+STACK CFI 96668 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9666c .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x29: .cfa -144 + ^
+STACK CFI 966a0 x21: x21 x22: x22
+STACK CFI 966ac x23: x23
+STACK CFI 966b4 x19: x19 x20: x20
+STACK CFI 966b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 966bc .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x29: .cfa -144 + ^
+STACK CFI 96870 x23: x23
+STACK CFI 96880 x19: x19 x20: x20
+STACK CFI 96884 x21: x21 x22: x22
+STACK CFI 96888 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9688c .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 96918 7cc .cfa: sp 0 + .ra: x30
+STACK CFI 9691c .cfa: sp 272 + .ra: .cfa -264 + ^ x29: .cfa -272 + ^
+STACK CFI 96920 .cfa: x29 272 +
+STACK CFI 96938 v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^
+STACK CFI 96958 x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^
+STACK CFI 96994 x19: x19 x20: x20
+STACK CFI 96998 v8: v8 v9: v9
+STACK CFI 9699c x21: x21 x22: x22
+STACK CFI 969a0 x23: x23 x24: x24
+STACK CFI 969a4 x25: x25 x26: x26
+STACK CFI 969a8 x27: x27 x28: x28
+STACK CFI 969ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 969b0 .cfa: x29 272 + .ra: .cfa -264 + ^ v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^ x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^ x29: .cfa -272 + ^
+STACK CFI 96dfc x19: x19 x20: x20
+STACK CFI 96e00 v8: v8 v9: v9
+STACK CFI 96e04 x21: x21 x22: x22
+STACK CFI 96e08 x23: x23 x24: x24
+STACK CFI 96e0c x25: x25 x26: x26
+STACK CFI 96e10 x27: x27 x28: x28
+STACK CFI 96e14 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 96e18 .cfa: x29 272 + .ra: .cfa -264 + ^ v8: .cfa -176 + ^ v9: .cfa -168 + ^ x19: .cfa -256 + ^ x20: .cfa -248 + ^ x21: .cfa -240 + ^ x22: .cfa -232 + ^ x23: .cfa -224 + ^ x24: .cfa -216 + ^ x25: .cfa -208 + ^ x26: .cfa -200 + ^ x27: .cfa -192 + ^ x28: .cfa -184 + ^ x29: .cfa -272 + ^
+STACK CFI INIT 970e4 a44 .cfa: sp 0 + .ra: x30
+STACK CFI 970e8 .cfa: sp 464 +
+STACK CFI 970ec .ra: .cfa -440 + ^ x29: .cfa -448 + ^
+STACK CFI 970f0 .cfa: x29 448 +
+STACK CFI 970f8 v8: .cfa -352 + ^ v9: .cfa -344 + ^ x19: .cfa -432 + ^ x20: .cfa -424 + ^
+STACK CFI 97118 v10: .cfa -336 + ^ v11: .cfa -328 + ^ v12: .cfa -320 + ^ v13: .cfa -312 + ^ v14: .cfa -304 + ^ v15: .cfa -296 + ^ x21: .cfa -416 + ^ x22: .cfa -408 + ^ x23: .cfa -400 + ^ x24: .cfa -392 + ^ x25: .cfa -384 + ^ x26: .cfa -376 + ^ x27: .cfa -368 + ^ x28: .cfa -360 + ^
+STACK CFI 97160 .cfa: sp 464 +
+STACK CFI 9716c v8: v8 v9: v9
+STACK CFI 97170 x19: x19 x20: x20
+STACK CFI 97174 v10: v10 v11: v11
+STACK CFI 97178 x21: x21 x22: x22
+STACK CFI 9717c v12: v12 v13: v13
+STACK CFI 97180 x23: x23 x24: x24
+STACK CFI 97184 v14: v14 v15: v15
+STACK CFI 97188 x25: x25 x26: x26
+STACK CFI 9718c x27: x27 x28: x28
+STACK CFI 97190 .ra: .ra x29: x29
+STACK CFI 97194 .cfa: sp 0 +
+STACK CFI 97198 .cfa: x29 448 + .ra: .cfa -440 + ^ v10: .cfa -336 + ^ v11: .cfa -328 + ^ v12: .cfa -320 + ^ v13: .cfa -312 + ^ v14: .cfa -304 + ^ v15: .cfa -296 + ^ v8: .cfa -352 + ^ v9: .cfa -344 + ^ x19: .cfa -432 + ^ x20: .cfa -424 + ^ x21: .cfa -416 + ^ x22: .cfa -408 + ^ x23: .cfa -400 + ^ x24: .cfa -392 + ^ x25: .cfa -384 + ^ x26: .cfa -376 + ^ x27: .cfa -368 + ^ x28: .cfa -360 + ^ x29: .cfa -448 + ^
+STACK CFI INIT 97b28 54 .cfa: sp 0 + .ra: x30
+STACK CFI 97b2c .cfa: sp 48 +
+STACK CFI 97b44 .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 97b48 .cfa: x29 32 +
+STACK CFI 97b70 .cfa: sp 48 +
+STACK CFI 97b74 .ra: .ra x29: x29
+STACK CFI 97b78 .cfa: sp 0 +
+STACK CFI INIT 97b7c 154 .cfa: sp 0 + .ra: x30
+STACK CFI 97b80 .cfa: sp 160 +
+STACK CFI 97b8c .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 97b90 .cfa: x29 144 +
+STACK CFI 97b98 x19: .cfa -128 + ^ x20: .cfa -120 + ^
+STACK CFI 97bac x21: .cfa -112 + ^
+STACK CFI 97c5c .cfa: sp 160 +
+STACK CFI 97c68 x19: x19 x20: x20
+STACK CFI 97c6c x21: x21
+STACK CFI 97c70 .ra: .ra x29: x29
+STACK CFI 97c74 .cfa: sp 0 +
+STACK CFI 97c78 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 2342c 38 .cfa: sp 0 + .ra: x30
+STACK CFI 23430 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23438 .cfa: x29 32 +
+STACK CFI 23458 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 20898 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 97cd0 84 .cfa: sp 0 + .ra: x30
+STACK CFI 97cd4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 97ce0 .cfa: x29 48 +
+STACK CFI 97ce4 x19: .cfa -32 + ^
+STACK CFI 97d08 x19: x19
+STACK CFI 97d0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 97d10 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 97d44 x19: x19
+STACK CFI 97d48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 97d4c .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 97d54 9c .cfa: sp 0 + .ra: x30
+STACK CFI 97d58 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 97d5c .cfa: x29 48 +
+STACK CFI 97d60 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 97d68 x21: .cfa -16 + ^
+STACK CFI 97db4 x19: x19 x20: x20
+STACK CFI 97db8 x21: x21
+STACK CFI 97dbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 97dc0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 97df0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 97df4 58 .cfa: sp 0 + .ra: x30
+STACK CFI 97df8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 97e00 .cfa: x29 48 +
+STACK CFI 97e04 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 97e10 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 97e40 x19: x19 x20: x20
+STACK CFI 97e44 x21: x21 x22: x22
+STACK CFI 97e48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 97e4c 1d0 .cfa: sp 0 + .ra: x30
+STACK CFI 97e50 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 97e54 .cfa: x29 112 +
+STACK CFI 97e60 x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^
+STACK CFI 97e88 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x27: .cfa -32 + ^
+STACK CFI 97f20 x19: x19 x20: x20
+STACK CFI 97f24 x21: x21 x22: x22
+STACK CFI 97f28 x23: x23 x24: x24
+STACK CFI 97f2c x25: x25 x26: x26
+STACK CFI 97f30 x27: x27
+STACK CFI 97f34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 97f38 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x29: .cfa -112 + ^
+STACK CFI 97f40 x27: x27
+STACK CFI 97f48 x19: x19 x20: x20
+STACK CFI 97f4c x23: x23 x24: x24
+STACK CFI 97f50 x25: x25 x26: x26
+STACK CFI 97f60 x21: x21 x22: x22
+STACK CFI 97f64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 97f68 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 9801c 84 .cfa: sp 0 + .ra: x30
+STACK CFI 98020 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 98028 .cfa: x29 48 +
+STACK CFI 98030 x19: .cfa -32 + ^
+STACK CFI 98098 x19: x19
+STACK CFI 9809c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 980a0 b4 .cfa: sp 0 + .ra: x30
+STACK CFI 980a4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 980a8 .cfa: x29 64 +
+STACK CFI 980ac x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 980b8 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x23: .cfa -16 + ^
+STACK CFI 98100 x23: x23
+STACK CFI 98108 x19: x19 x20: x20
+STACK CFI 9810c x21: x21 x22: x22
+STACK CFI 98110 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98114 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI 9812c x23: x23
+STACK CFI 98134 x19: x19 x20: x20
+STACK CFI 98138 x21: x21 x22: x22
+STACK CFI 9813c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98140 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 98154 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 98158 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 23464 40 .cfa: sp 0 + .ra: x30
+STACK CFI 23468 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 23470 .cfa: x29 32 +
+STACK CFI 23474 x19: .cfa -16 + ^
+STACK CFI 23490 x19: x19
+STACK CFI 23498 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9815c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 98160 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 98164 .cfa: x29 48 +
+STACK CFI 98168 x21: .cfa -16 + ^
+STACK CFI 98170 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 98268 x21: x21
+STACK CFI 9826c x19: x19 x20: x20
+STACK CFI 98270 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98280 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 208b4 28 .cfa: sp 0 + .ra: x30
+STACK CFI 208b8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 208bc .cfa: x29 32 +
+STACK CFI INIT 98284 1d0 .cfa: sp 0 + .ra: x30
+STACK CFI 98288 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 9828c .cfa: x29 112 +
+STACK CFI 9829c x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^
+STACK CFI INIT 98454 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9845c 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9846c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 98470 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 98478 .cfa: x29 32 +
+STACK CFI 9847c x19: .cfa -16 + ^
+STACK CFI 98494 x19: x19
+STACK CFI 98498 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9849c 50 .cfa: sp 0 + .ra: x30
+STACK CFI 984a0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 984a4 .cfa: x29 48 +
+STACK CFI 984a8 x19: .cfa -32 + ^
+STACK CFI 984e4 x19: x19
+STACK CFI 984e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 984ec 50 .cfa: sp 0 + .ra: x30
+STACK CFI 984f0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 984f4 .cfa: x29 48 +
+STACK CFI 984f8 x19: .cfa -32 + ^
+STACK CFI 98534 x19: x19
+STACK CFI 98538 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9853c 64 .cfa: sp 0 + .ra: x30
+STACK CFI 98540 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 98548 .cfa: x29 32 +
+STACK CFI 9854c x19: .cfa -16 + ^
+STACK CFI 98598 x19: x19
+STACK CFI 9859c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 985a0 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 985a4 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 985a8 .cfa: x29 96 +
+STACK CFI 985b0 x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^
+STACK CFI 98634 x19: x19 x20: x20
+STACK CFI 98638 x21: x21 x22: x22
+STACK CFI 9863c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98640 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x29: .cfa -96 + ^
+STACK CFI 98654 x21: x21 x22: x22
+STACK CFI 98658 x19: x19 x20: x20
+STACK CFI 9865c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98660 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 98690 48 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 986d8 1b8 .cfa: sp 0 + .ra: x30
+STACK CFI 986dc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 986e0 .cfa: x29 48 +
+STACK CFI 986e4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 98790 x19: x19 x20: x20
+STACK CFI 98794 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98798 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x29: .cfa -48 + ^
+STACK CFI 98888 x19: x19 x20: x20
+STACK CFI 9888c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98890 184 .cfa: sp 0 + .ra: x30
+STACK CFI 98894 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 98898 .cfa: x29 64 +
+STACK CFI 988a0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 988b4 x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 98960 x21: x21 x22: x22
+STACK CFI 98964 x19: x19 x20: x20
+STACK CFI 98968 x23: x23 x24: x24
+STACK CFI 9896c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98970 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 989b0 x21: x21 x22: x22
+STACK CFI 989b4 x19: x19 x20: x20
+STACK CFI 989b8 x23: x23 x24: x24
+STACK CFI 989bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 989c0 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 989d0 x21: x21 x22: x22
+STACK CFI 989d4 x19: x19 x20: x20
+STACK CFI 989d8 x23: x23 x24: x24
+STACK CFI 989dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 989e0 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 98a14 158 .cfa: sp 0 + .ra: x30
+STACK CFI 98a18 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 98a1c .cfa: x29 80 +
+STACK CFI 98a2c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI 98ae8 x19: x19 x20: x20
+STACK CFI 98aec x21: x21 x22: x22
+STACK CFI 98af0 x23: x23 x24: x24
+STACK CFI 98af4 x25: x25
+STACK CFI 98af8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98afc .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x29: .cfa -80 + ^
+STACK CFI 98b30 x25: x25
+STACK CFI 98b34 x19: x19 x20: x20
+STACK CFI 98b38 x21: x21 x22: x22
+STACK CFI 98b3c x23: x23 x24: x24
+STACK CFI 98b40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98b44 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 98b6c 124 .cfa: sp 0 + .ra: x30
+STACK CFI 98b70 .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 98b74 .cfa: x29 128 +
+STACK CFI 98b78 x19: .cfa -112 + ^ x20: .cfa -104 + ^
+STACK CFI 98b8c x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^
+STACK CFI 98b94 x25: .cfa -64 + ^
+STACK CFI 98be4 x19: x19 x20: x20
+STACK CFI 98be8 x21: x21 x22: x22
+STACK CFI 98bec x23: x23 x24: x24
+STACK CFI 98bf0 x25: x25
+STACK CFI 98bf4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98bf8 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x29: .cfa -128 + ^
+STACK CFI 98c64 x25: x25
+STACK CFI 98c68 x19: x19 x20: x20
+STACK CFI 98c6c x21: x21 x22: x22
+STACK CFI 98c70 x23: x23 x24: x24
+STACK CFI 98c74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98c78 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 98c90 94 .cfa: sp 0 + .ra: x30
+STACK CFI 98c94 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 98c98 .cfa: x29 48 +
+STACK CFI 98c9c x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 98ca4 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 98cf4 x19: x19 x20: x20
+STACK CFI 98cf8 x21: x21 x22: x22
+STACK CFI 98cfc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98d00 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 98d18 x19: x19 x20: x20
+STACK CFI 98d1c x21: x21 x22: x22
+STACK CFI 98d20 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98d24 48 .cfa: sp 0 + .ra: x30
+STACK CFI 98d28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 98d2c .cfa: x29 32 +
+STACK CFI 98d30 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 98d64 x19: x19 x20: x20
+STACK CFI 98d68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98d6c 44 .cfa: sp 0 + .ra: x30
+STACK CFI 98d70 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 98d74 .cfa: x29 32 +
+STACK CFI 98d78 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 98da8 x19: x19 x20: x20
+STACK CFI 98dac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98db0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 98db8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 98dc8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 98dcc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 98dd4 .cfa: x29 32 +
+STACK CFI 98dd8 x19: .cfa -16 + ^
+STACK CFI 98df0 x19: x19
+STACK CFI 98df4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 98df8 270 .cfa: sp 0 + .ra: x30
+STACK CFI 98dfc .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 98e00 .cfa: x29 144 +
+STACK CFI 98e14 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 98f34 x19: x19 x20: x20
+STACK CFI 98f38 x21: x21 x22: x22
+STACK CFI 98f3c x23: x23 x24: x24
+STACK CFI 98f40 x25: x25 x26: x26
+STACK CFI 98f44 x27: x27 x28: x28
+STACK CFI 98f48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98f4c .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI 98fac x19: x19 x20: x20
+STACK CFI 98fb0 x21: x21 x22: x22
+STACK CFI 98fb4 x23: x23 x24: x24
+STACK CFI 98fb8 x25: x25 x26: x26
+STACK CFI 98fbc x27: x27 x28: x28
+STACK CFI 98fc0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 98fc4 .cfa: x29 144 + .ra: .cfa -136 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 99068 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99070 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99078 60 .cfa: sp 0 + .ra: x30
+STACK CFI 9907c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99084 .cfa: x29 32 +
+STACK CFI 99088 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 990ac x19: x19 x20: x20
+STACK CFI 990b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 990b8 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI INIT 990d8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 990e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 990ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 990f4 .cfa: x29 32 +
+STACK CFI 990f8 x19: .cfa -16 + ^
+STACK CFI 99110 x19: x19
+STACK CFI 99114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 99118 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99128 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9912c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99134 .cfa: x29 32 +
+STACK CFI 99138 x19: .cfa -16 + ^
+STACK CFI 99150 x19: x19
+STACK CFI 99154 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 99158 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9915c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99160 .cfa: x29 32 +
+STACK CFI 99164 x19: .cfa -16 + ^
+STACK CFI 99174 x19: x19
+STACK CFI 99178 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9917c 20 .cfa: sp 0 + .ra: x30
+STACK CFI 99180 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI 99184 .cfa: x29 16 +
+STACK CFI 99198 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9919c 50 .cfa: sp 0 + .ra: x30
+STACK CFI 991a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 991a8 .cfa: x29 32 +
+STACK CFI 991ac x19: .cfa -16 + ^
+STACK CFI 991cc x19: x19
+STACK CFI 991d0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 991d4 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI 991e4 x19: x19
+STACK CFI 991e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 991ec 7c .cfa: sp 0 + .ra: x30
+STACK CFI 991f0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 991f8 .cfa: x29 48 +
+STACK CFI 991fc x19: .cfa -32 + ^
+STACK CFI 9921c x19: x19
+STACK CFI 99220 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99224 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI 99248 x19: x19
+STACK CFI 99254 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99258 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 99268 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99270 3c .cfa: sp 0 + .ra: x30
+STACK CFI 99274 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99278 .cfa: x29 32 +
+STACK CFI 9927c x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 992a4 x19: x19 x20: x20
+STACK CFI 992a8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 992ac 4c .cfa: sp 0 + .ra: x30
+STACK CFI 992b0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 992b4 .cfa: x29 64 +
+STACK CFI 992bc x19: .cfa -48 + ^
+STACK CFI 992f0 x19: x19
+STACK CFI 992f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 992f8 3c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99334 80 .cfa: sp 0 + .ra: x30
+STACK CFI 99338 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99344 .cfa: x29 32 +
+STACK CFI 99348 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 99358 x19: x19 x20: x20
+STACK CFI 9935c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99360 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 9937c x19: x19 x20: x20
+STACK CFI 99380 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99384 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x20: .cfa -8 + ^ x29: .cfa -32 + ^
+STACK CFI 993ac x19: x19 x20: x20
+STACK CFI 993b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 993b4 60 .cfa: sp 0 + .ra: x30
+STACK CFI 993b8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 993c0 .cfa: x29 48 +
+STACK CFI 993c4 x19: .cfa -32 + ^
+STACK CFI 9940c x19: x19
+STACK CFI 99410 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 99414 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99424 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9942c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99434 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9943c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99448 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99458 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99468 1f4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9965c 1f0 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9984c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99858 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99860 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99868 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99878 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99880 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99894 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 998a8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 998ac .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 998b0 .cfa: x29 32 +
+STACK CFI 998b4 x19: .cfa -16 + ^
+STACK CFI 998c4 x19: x19
+STACK CFI 998c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 998cc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 998d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 998d4 .cfa: x29 32 +
+STACK CFI 998d8 x19: .cfa -16 + ^
+STACK CFI 998e8 x19: x19
+STACK CFI 998ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 998f0 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99914 5c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99970 24 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99994 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 999a8 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 999bc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 999c0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 999c4 .cfa: x29 32 +
+STACK CFI 999c8 x19: .cfa -16 + ^
+STACK CFI 999d8 x19: x19
+STACK CFI 999dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 999e0 24 .cfa: sp 0 + .ra: x30
+STACK CFI 999e4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 999e8 .cfa: x29 32 +
+STACK CFI 999ec x19: .cfa -16 + ^
+STACK CFI 999fc x19: x19
+STACK CFI 99a00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 99a04 48 .cfa: sp 0 + .ra: x30
+STACK CFI 99a08 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99a10 .cfa: x29 32 +
+STACK CFI 99a14 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI 99a44 x19: x19 x20: x20
+STACK CFI 99a48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 99a4c f4 .cfa: sp 0 + .ra: x30
+STACK CFI 99a50 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 99a54 .cfa: x29 64 +
+STACK CFI 99a58 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 99a64 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 99abc x19: x19 x20: x20
+STACK CFI 99ac0 x21: x21 x22: x22
+STACK CFI 99ac4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99ac8 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 99b40 108 .cfa: sp 0 + .ra: x30
+STACK CFI 99b44 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 99b4c .cfa: x29 64 +
+STACK CFI 99b50 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 99b5c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 99bbc x21: x21 x22: x22
+STACK CFI 99bc0 x19: x19 x20: x20
+STACK CFI 99bc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 99bc8 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 99c48 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99c5c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99c70 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99c9c 2c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99cc8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99cd0 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99cd8 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99cf4 34 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99d28 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99d44 34 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99d78 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99d80 208 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99f88 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99f9c 30 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 99fcc 44 .cfa: sp 0 + .ra: x30
+STACK CFI 99fd0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 99fd8 .cfa: x29 32 +
+STACK CFI 99fdc x19: .cfa -16 + ^
+STACK CFI 9a008 x19: x19
+STACK CFI 9a00c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a010 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a024 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a028 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a02c .cfa: x29 32 +
+STACK CFI 9a030 x19: .cfa -16 + ^
+STACK CFI 9a040 x19: x19
+STACK CFI 9a044 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a048 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a04c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a050 .cfa: x29 32 +
+STACK CFI 9a054 x19: .cfa -16 + ^
+STACK CFI 9a064 x19: x19
+STACK CFI 9a068 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a06c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a070 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a074 .cfa: x29 32 +
+STACK CFI 9a078 x19: .cfa -16 + ^
+STACK CFI 9a094 x19: x19
+STACK CFI 9a098 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a09c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a0a0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a0a4 .cfa: x29 32 +
+STACK CFI 9a0a8 x19: .cfa -16 + ^
+STACK CFI 9a0c4 x19: x19
+STACK CFI 9a0c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a0cc c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a0d8 40 .cfa: sp 0 + .ra: x30
+STACK CFI 9a0dc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a0e0 .cfa: x29 32 +
+STACK CFI 9a114 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a118 5c .cfa: sp 0 + .ra: x30
+STACK CFI 9a11c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a120 .cfa: x29 48 +
+STACK CFI 9a170 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a174 184 .cfa: sp 0 + .ra: x30
+STACK CFI 9a178 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a17c .cfa: x29 48 +
+STACK CFI 9a22c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a230 .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a23c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a240 .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a24c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a250 .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a25c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a260 .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 9a2f8 188 .cfa: sp 0 + .ra: x30
+STACK CFI 9a2fc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a300 .cfa: x29 48 +
+STACK CFI 9a3dc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a3e0 .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a3e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a3ec .cfa: x29 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 9a480 78 .cfa: sp 0 + .ra: x30
+STACK CFI 9a484 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a48c .cfa: x29 48 +
+STACK CFI 9a490 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 9a498 x21: .cfa -16 + ^
+STACK CFI 9a4e4 x21: x21
+STACK CFI 9a4e8 x19: x19 x20: x20
+STACK CFI 9a4ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9a4f0 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 9a4f8 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a500 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a508 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a510 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a518 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a520 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a528 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a530 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a538 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a540 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a548 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a550 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a558 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a560 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a568 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a570 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a578 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a580 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a588 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a590 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a598 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a5ac 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a5c0 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a5d4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9a5e8 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a5ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a5f0 .cfa: x29 32 +
+STACK CFI 9a5f4 x19: .cfa -16 + ^
+STACK CFI 9a604 x19: x19
+STACK CFI 9a608 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a60c 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a610 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a614 .cfa: x29 32 +
+STACK CFI 9a618 x19: .cfa -16 + ^
+STACK CFI 9a628 x19: x19
+STACK CFI 9a62c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a630 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a634 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a638 .cfa: x29 32 +
+STACK CFI 9a63c x19: .cfa -16 + ^
+STACK CFI 9a64c x19: x19
+STACK CFI 9a650 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a654 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9a658 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a65c .cfa: x29 32 +
+STACK CFI 9a660 x19: .cfa -16 + ^
+STACK CFI 9a670 x19: x19
+STACK CFI 9a674 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a678 70 .cfa: sp 0 + .ra: x30
+STACK CFI 9a67c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a688 .cfa: x29 32 +
+STACK CFI 9a68c x19: .cfa -16 + ^
+STACK CFI 9a6e0 x19: x19
+STACK CFI 9a6e4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a6e8 70 .cfa: sp 0 + .ra: x30
+STACK CFI 9a6ec .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a6f8 .cfa: x29 32 +
+STACK CFI 9a6fc x19: .cfa -16 + ^
+STACK CFI 9a750 x19: x19
+STACK CFI 9a754 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a758 70 .cfa: sp 0 + .ra: x30
+STACK CFI 9a75c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a768 .cfa: x29 32 +
+STACK CFI 9a76c x19: .cfa -16 + ^
+STACK CFI 9a7c0 x19: x19
+STACK CFI 9a7c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a7c8 70 .cfa: sp 0 + .ra: x30
+STACK CFI 9a7cc .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9a7d8 .cfa: x29 32 +
+STACK CFI 9a7dc x19: .cfa -16 + ^
+STACK CFI 9a830 x19: x19
+STACK CFI 9a834 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a838 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a83c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a848 .cfa: x29 48 +
+STACK CFI 9a860 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a868 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a86c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a878 .cfa: x29 48 +
+STACK CFI 9a890 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a898 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a89c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a8a8 .cfa: x29 48 +
+STACK CFI 9a8c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a8c8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a8cc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a8d8 .cfa: x29 48 +
+STACK CFI 9a8f0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a8f8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a8fc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a908 .cfa: x29 48 +
+STACK CFI 9a920 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a928 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a92c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a938 .cfa: x29 48 +
+STACK CFI 9a950 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a958 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a95c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a968 .cfa: x29 48 +
+STACK CFI 9a980 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a988 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a98c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a998 .cfa: x29 48 +
+STACK CFI 9a9b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a9b8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a9bc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a9c8 .cfa: x29 48 +
+STACK CFI 9a9e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9a9e8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9a9ec .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9a9f8 .cfa: x29 48 +
+STACK CFI 9aa10 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9aa18 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9aa1c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9aa28 .cfa: x29 48 +
+STACK CFI 9aa40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9aa48 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9aa4c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9aa58 .cfa: x29 48 +
+STACK CFI 9aa70 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9aa78 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9aa7c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9aa88 .cfa: x29 48 +
+STACK CFI 9aaa0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9aaa8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9aaac .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9aab8 .cfa: x29 48 +
+STACK CFI 9aad0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9aad8 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9aadc .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9aae8 .cfa: x29 48 +
+STACK CFI 9ab00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9ab08 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9ab0c .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9ab18 .cfa: x29 48 +
+STACK CFI 9ab30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9ab38 78 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9abb0 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9abc0 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9abcc 12c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9acf8 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9ad20 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9ad2c c .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9ad38 180 .cfa: sp 0 + .ra: x30
+STACK CFI 9ad3c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 9ad40 .cfa: x29 112 +
+STACK CFI 9ad44 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 9ad8c x19: x19 x20: x20
+STACK CFI 9ad90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9ad94 .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 9aeb8 120 .cfa: sp 0 + .ra: x30
+STACK CFI 9aebc .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 9aec8 .cfa: x29 96 +
+STACK CFI 9aedc x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 9af94 x19: x19 x20: x20
+STACK CFI 9af98 x21: x21 x22: x22
+STACK CFI 9af9c x23: x23 x24: x24
+STACK CFI 9afa0 x25: x25 x26: x26
+STACK CFI 9afa4 x27: x27 x28: x28
+STACK CFI 9afa8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9afac .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI 9afc0 x19: x19 x20: x20
+STACK CFI 9afc4 x21: x21 x22: x22
+STACK CFI 9afc8 x23: x23 x24: x24
+STACK CFI 9afcc x25: x25 x26: x26
+STACK CFI 9afd0 x27: x27 x28: x28
+STACK CFI 9afd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9afd8 7b4 .cfa: sp 0 + .ra: x30
+STACK CFI 9afdc .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI 9afe8 .cfa: x29 128 +
+STACK CFI 9aff0 x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI 9affc x25: .cfa -64 + ^ x26: .cfa -56 + ^
+STACK CFI 9b00c x19: .cfa -112 + ^ x20: .cfa -104 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI 9b0ec x19: x19 x20: x20
+STACK CFI 9b0f0 x21: x21 x22: x22
+STACK CFI 9b0f4 x23: x23 x24: x24
+STACK CFI 9b0f8 x25: x25 x26: x26
+STACK CFI 9b0fc x27: x27 x28: x28
+STACK CFI 9b100 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9b104 .cfa: x29 128 + .ra: .cfa -120 + ^ x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^ x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^ x29: .cfa -128 + ^
+STACK CFI INIT 9b78c 128 .cfa: sp 0 + .ra: x30
+STACK CFI 9b790 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 9b798 .cfa: x29 96 +
+STACK CFI 9b7ac x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^
+STACK CFI 9b868 x21: x21 x22: x22
+STACK CFI 9b874 x19: x19 x20: x20
+STACK CFI 9b878 x23: x23 x24: x24
+STACK CFI 9b87c x25: x25 x26: x26
+STACK CFI 9b880 x27: x27 x28: x28
+STACK CFI 9b884 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9b888 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x28: .cfa -8 + ^ x29: .cfa -96 + ^
+STACK CFI 9b89c x19: x19 x20: x20
+STACK CFI 9b8a0 x21: x21 x22: x22
+STACK CFI 9b8a4 x23: x23 x24: x24
+STACK CFI 9b8a8 x25: x25 x26: x26
+STACK CFI 9b8ac x27: x27 x28: x28
+STACK CFI 9b8b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9b8b4 1c0 .cfa: sp 0 + .ra: x30
+STACK CFI 9b8b8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9b8c0 .cfa: x29 48 +
+STACK CFI 9b8c8 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9b9d8 x19: x19 x20: x20
+STACK CFI 9b9dc x21: x21 x22: x22
+STACK CFI 9b9e0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9b9e4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 9ba38 x19: x19 x20: x20
+STACK CFI 9ba3c x21: x21 x22: x22
+STACK CFI 9ba40 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9ba44 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 9ba74 46c .cfa: sp 0 + .ra: x30
+STACK CFI 9ba78 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 9ba7c .cfa: x29 144 +
+STACK CFI 9ba84 x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 9baa4 v8: .cfa -48 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^
+STACK CFI 9bda4 x19: x19 x20: x20
+STACK CFI 9bda8 x21: x21 x22: x22
+STACK CFI 9bdac x23: x23 x24: x24
+STACK CFI 9bdb0 x25: x25 x26: x26
+STACK CFI 9bdb4 x27: x27 x28: x28
+STACK CFI 9bdb8 v8: v8
+STACK CFI 9bdbc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9bdc0 .cfa: x29 144 + .ra: .cfa -136 + ^ v8: .cfa -48 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 9bee0 44 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9bf24 84 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9bfa8 17c .cfa: sp 0 + .ra: x30
+STACK CFI 9bfac .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI 9bfb4 .cfa: x29 144 +
+STACK CFI 9bfcc v8: .cfa -48 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI 9c0e0 x19: x19 x20: x20
+STACK CFI 9c0e4 x21: x21 x22: x22
+STACK CFI 9c0e8 x23: x23 x24: x24
+STACK CFI 9c0ec x25: x25 x26: x26
+STACK CFI 9c0f0 x27: x27 x28: x28
+STACK CFI 9c0f4 v8: v8
+STACK CFI 9c0f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c0fc .cfa: x29 144 + .ra: .cfa -136 + ^ v8: .cfa -48 + ^ x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^ x29: .cfa -144 + ^
+STACK CFI INIT 9c124 3a8 .cfa: sp 0 + .ra: x30
+STACK CFI 9c128 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9c130 .cfa: x29 80 +
+STACK CFI 9c134 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 9c240 x19: x19 x20: x20
+STACK CFI 9c244 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c248 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x29: .cfa -80 + ^
+STACK CFI 9c418 x19: x19 x20: x20
+STACK CFI 9c41c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c420 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 9c4cc d8 .cfa: sp 0 + .ra: x30
+STACK CFI 9c4d0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9c4d8 .cfa: x29 80 +
+STACK CFI 9c4e4 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI 9c59c x19: x19 x20: x20
+STACK CFI 9c5a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9c5a4 28 .cfa: sp 0 + .ra: x30
+STACK CFI 9c5a8 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9c5ac .cfa: x29 32 +
+STACK CFI 9c5c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9c5cc 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9c5d0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9c5d4 .cfa: x29 32 +
+STACK CFI 9c5ec .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9c5f0 27c .cfa: sp 0 + .ra: x30
+STACK CFI 9c5f4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9c600 .cfa: x29 64 +
+STACK CFI 9c604 x19: .cfa -48 + ^
+STACK CFI 9c7a8 x19: x19
+STACK CFI 9c7c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c7cc .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x29: .cfa -64 + ^
+STACK CFI 9c7d4 x19: x19
+STACK CFI 9c7d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c7dc .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x29: .cfa -64 + ^
+STACK CFI 9c810 x19: x19
+STACK CFI 9c818 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c81c .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x29: .cfa -64 + ^
+STACK CFI 9c84c x19: x19
+STACK CFI 9c854 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c858 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9c880 1f0 .cfa: sp 0 + .ra: x30
+STACK CFI 9c884 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9c888 .cfa: x29 80 +
+STACK CFI 9c88c x19: .cfa -64 + ^
+STACK CFI 9c9ac x19: x19
+STACK CFI 9c9b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c9b8 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI 9c9cc x19: x19
+STACK CFI 9c9d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9c9e0 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 9ca70 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9ca74 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9ca78 .cfa: x29 32 +
+STACK CFI 9ca90 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9ca94 f0 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9cb84 5f8 .cfa: sp 0 + .ra: x30
+STACK CFI 9cb88 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9cb90 .cfa: x29 80 +
+STACK CFI 9cb9c x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^
+STACK CFI 9cd5c x23: x23
+STACK CFI 9cd60 x19: x19 x20: x20
+STACK CFI 9cd64 x21: x21 x22: x22
+STACK CFI 9cd68 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9cd6c .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI 9d0e8 x19: x19 x20: x20
+STACK CFI 9d0ec x21: x21 x22: x22
+STACK CFI 9d0f0 x23: x23
+STACK CFI 9d0f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9d0f8 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 9d17c 220 .cfa: sp 0 + .ra: x30
+STACK CFI 9d180 .cfa: sp 4096 +
+STACK CFI 9d188 .cfa: sp 4944 +
+STACK CFI 9d194 .cfa: sp 5008 + .ra: .cfa -5000 + ^ x29: .cfa -5008 + ^
+STACK CFI 9d198 .cfa: x29 5008 +
+STACK CFI 9d19c x21: .cfa -4976 + ^ x22: .cfa -4968 + ^
+STACK CFI 9d1a4 x19: .cfa -4992 + ^ x20: .cfa -4984 + ^
+STACK CFI 9d1b4 x23: .cfa -4960 + ^ x24: .cfa -4952 + ^
+STACK CFI 9d238 x19: x19 x20: x20
+STACK CFI 9d23c x21: x21 x22: x22
+STACK CFI 9d240 x23: x23 x24: x24
+STACK CFI 9d244 .cfa: sp 4944 + .ra: .ra x29: x29
+STACK CFI 9d248 .cfa: sp 4096 +
+STACK CFI 9d24c .cfa: sp 4032 +
+STACK CFI 9d250 .cfa: x29 5008 + .ra: .cfa -5000 + ^ x19: .cfa -4992 + ^ x20: .cfa -4984 + ^ x21: .cfa -4976 + ^ x22: .cfa -4968 + ^ x23: .cfa -4960 + ^ x24: .cfa -4952 + ^ x29: .cfa -5008 + ^
+STACK CFI 9d32c x19: x19 x20: x20
+STACK CFI 9d330 x21: x21 x22: x22
+STACK CFI 9d334 x23: x23 x24: x24
+STACK CFI 9d338 .cfa: sp 4944 + .ra: .ra x29: x29
+STACK CFI 9d33c .cfa: sp 4096 +
+STACK CFI 9d340 .cfa: sp 4032 +
+STACK CFI 9d344 .cfa: x29 5008 + .ra: .cfa -5000 + ^ x19: .cfa -4992 + ^ x20: .cfa -4984 + ^ x21: .cfa -4976 + ^ x22: .cfa -4968 + ^ x23: .cfa -4960 + ^ x24: .cfa -4952 + ^ x29: .cfa -5008 + ^
+STACK CFI 9d370 x19: x19 x20: x20
+STACK CFI 9d374 x21: x21 x22: x22
+STACK CFI 9d378 x23: x23 x24: x24
+STACK CFI 9d37c .cfa: sp 4944 + .ra: .ra x29: x29
+STACK CFI 9d380 .cfa: sp 4096 +
+STACK CFI 9d384 .cfa: sp 4032 +
+STACK CFI 9d388 .cfa: x29 5008 + .ra: .cfa -5000 + ^ x19: .cfa -4992 + ^ x20: .cfa -4984 + ^ x21: .cfa -4976 + ^ x22: .cfa -4968 + ^ x23: .cfa -4960 + ^ x24: .cfa -4952 + ^ x29: .cfa -5008 + ^
+STACK CFI INIT 9d39c 334 .cfa: sp 0 + .ra: x30
+STACK CFI 9d3a0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI 9d3a8 .cfa: x29 80 +
+STACK CFI 9d3b4 x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^
+STACK CFI 9d3c8 x25: .cfa -16 + ^
+STACK CFI 9d4a0 x19: x19 x20: x20
+STACK CFI 9d4a4 x21: x21 x22: x22
+STACK CFI 9d4a8 x23: x23 x24: x24
+STACK CFI 9d4ac x25: x25
+STACK CFI 9d4b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9d4b4 .cfa: x29 80 + .ra: .cfa -72 + ^ x19: .cfa -64 + ^ x20: .cfa -56 + ^ x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^ x29: .cfa -80 + ^
+STACK CFI INIT 9d6d0 dc .cfa: sp 0 + .ra: x30
+STACK CFI 9d6d4 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9d6d8 .cfa: x29 48 +
+STACK CFI 9d6e0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 9d6f0 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9d734 x19: x19 x20: x20
+STACK CFI 9d738 x21: x21 x22: x22
+STACK CFI 9d73c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9d740 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 9d75c x19: x19 x20: x20
+STACK CFI 9d760 x21: x21 x22: x22
+STACK CFI 9d764 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9d768 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT 9d7ac 230 .cfa: sp 0 + .ra: x30
+STACK CFI 9d7b0 .cfa: sp 4096 +
+STACK CFI 9d7b8 .cfa: sp 5008 +
+STACK CFI 9d7c0 .cfa: sp 5056 + .ra: .cfa -5048 + ^ x29: .cfa -5056 + ^
+STACK CFI 9d7c4 .cfa: x29 5056 +
+STACK CFI 9d7c8 x21: .cfa -5024 + ^
+STACK CFI 9d7d0 x19: .cfa -5040 + ^ x20: .cfa -5032 + ^
+STACK CFI 9d8e4 x19: x19 x20: x20
+STACK CFI 9d8e8 x21: x21
+STACK CFI 9d8ec .cfa: sp 5008 + .ra: .ra x29: x29
+STACK CFI 9d8f0 .cfa: sp 4096 +
+STACK CFI 9d8f4 .cfa: sp 4048 +
+STACK CFI 9d8f8 .cfa: x29 5056 + .ra: .cfa -5048 + ^ x19: .cfa -5040 + ^ x20: .cfa -5032 + ^ x21: .cfa -5024 + ^ x29: .cfa -5056 + ^
+STACK CFI 9d8fc x19: x19 x20: x20
+STACK CFI 9d900 x21: x21
+STACK CFI 9d908 .cfa: sp 5008 + .ra: .ra x29: x29
+STACK CFI 9d910 .cfa: sp 4096 +
+STACK CFI 9d914 .cfa: sp 4048 +
+STACK CFI 9d918 .cfa: x29 5056 + .ra: .cfa -5048 + ^ x19: .cfa -5040 + ^ x20: .cfa -5032 + ^ x21: .cfa -5024 + ^ x29: .cfa -5056 + ^
+STACK CFI 9d91c x19: x19 x20: x20
+STACK CFI 9d920 x21: x21
+STACK CFI 9d928 .cfa: sp 5008 + .ra: .ra x29: x29
+STACK CFI 9d92c .cfa: sp 4096 +
+STACK CFI 9d930 .cfa: sp 4048 +
+STACK CFI 9d934 .cfa: x29 5056 + .ra: .cfa -5048 + ^ x19: .cfa -5040 + ^ x20: .cfa -5032 + ^ x21: .cfa -5024 + ^ x29: .cfa -5056 + ^
+STACK CFI INIT 9d9dc 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9d9e0 210 .cfa: sp 0 + .ra: x30
+STACK CFI 9d9e4 .cfa: sp 432 + .ra: .cfa -424 + ^ x29: .cfa -432 + ^
+STACK CFI 9d9f0 .cfa: x29 432 +
+STACK CFI 9d9f4 x19: .cfa -416 + ^ x20: .cfa -408 + ^
+STACK CFI 9d9fc x21: .cfa -400 + ^
+STACK CFI 9db10 x19: x19 x20: x20
+STACK CFI 9db14 x21: x21
+STACK CFI 9db18 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9db1c .cfa: x29 432 + .ra: .cfa -424 + ^ x19: .cfa -416 + ^ x20: .cfa -408 + ^ x21: .cfa -400 + ^ x29: .cfa -432 + ^
+STACK CFI 9db24 x21: x21
+STACK CFI 9db2c x19: x19 x20: x20
+STACK CFI 9db30 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9db34 .cfa: x29 432 + .ra: .cfa -424 + ^ x19: .cfa -416 + ^ x20: .cfa -408 + ^ x21: .cfa -400 + ^ x29: .cfa -432 + ^
+STACK CFI 9db3c x21: x21
+STACK CFI 9db40 x19: x19 x20: x20
+STACK CFI 9db44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9db48 .cfa: x29 432 + .ra: .cfa -424 + ^ x19: .cfa -416 + ^ x20: .cfa -408 + ^ x21: .cfa -400 + ^ x29: .cfa -432 + ^
+STACK CFI INIT 9dbf0 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dbf4 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dbfc 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc04 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc0c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc14 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc28 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9dc2c .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9dc30 .cfa: x29 32 +
+STACK CFI 9dc34 x19: .cfa -16 + ^
+STACK CFI 9dc44 x19: x19
+STACK CFI 9dc48 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9dc4c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc60 24 .cfa: sp 0 + .ra: x30
+STACK CFI 9dc64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI 9dc68 .cfa: x29 32 +
+STACK CFI 9dc6c x19: .cfa -16 + ^
+STACK CFI 9dc7c x19: x19
+STACK CFI 9dc80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9dc84 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dc98 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dcac 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9dcb0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9dcbc .cfa: x29 48 +
+STACK CFI 9dcd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9dcdc 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9dce0 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9dcec .cfa: x29 48 +
+STACK CFI 9dd04 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9dd0c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9dd10 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9dd1c .cfa: x29 48 +
+STACK CFI 9dd34 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9dd3c 30 .cfa: sp 0 + .ra: x30
+STACK CFI 9dd40 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9dd4c .cfa: x29 48 +
+STACK CFI 9dd64 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 208dc 18 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9dd6c 1dc .cfa: sp 0 + .ra: x30
+STACK CFI 9dd74 .cfa: sp 320 + .ra: .cfa -312 + ^ x29: .cfa -320 + ^
+STACK CFI 9dd78 .cfa: x29 320 +
+STACK CFI 9dd80 x19: .cfa -304 + ^ x20: .cfa -296 + ^
+STACK CFI 9dd98 x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^
+STACK CFI 9de1c x19: x19 x20: x20
+STACK CFI 9de20 x21: x21 x22: x22
+STACK CFI 9de24 x23: x23 x24: x24
+STACK CFI 9de28 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9de2c .cfa: x29 320 + .ra: .cfa -312 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x29: .cfa -320 + ^
+STACK CFI 9def4 x19: x19 x20: x20
+STACK CFI 9def8 x21: x21 x22: x22
+STACK CFI 9defc x23: x23 x24: x24
+STACK CFI 9df00 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9df04 .cfa: x29 320 + .ra: .cfa -312 + ^ x19: .cfa -304 + ^ x20: .cfa -296 + ^ x21: .cfa -288 + ^ x22: .cfa -280 + ^ x23: .cfa -272 + ^ x24: .cfa -264 + ^ x29: .cfa -320 + ^
+STACK CFI INIT 9df48 1b8 .cfa: sp 0 + .ra: x30
+STACK CFI 9df4c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9df50 .cfa: x29 64 +
+STACK CFI 9df58 x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 9df64 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 9dfd4 x19: x19 x20: x20
+STACK CFI 9dfd8 x21: x21 x22: x22
+STACK CFI 9dfdc x23: x23 x24: x24
+STACK CFI 9dfe0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9dfe4 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 9e0ac x21: x21 x22: x22
+STACK CFI 9e0b0 x19: x19 x20: x20
+STACK CFI 9e0b4 x23: x23 x24: x24
+STACK CFI 9e0b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e0bc .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9e100 208 .cfa: sp 0 + .ra: x30
+STACK CFI 9e104 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9e108 .cfa: x29 64 +
+STACK CFI 9e10c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 9e11c x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 9e150 x23: x23
+STACK CFI 9e154 x21: x21 x22: x22
+STACK CFI 9e160 x19: x19 x20: x20
+STACK CFI 9e164 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e168 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9e308 2b8 .cfa: sp 0 + .ra: x30
+STACK CFI 9e30c .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9e310 .cfa: x29 64 +
+STACK CFI 9e31c x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI 9e32c x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^
+STACK CFI 9e368 x21: x21 x22: x22
+STACK CFI 9e374 x23: x23
+STACK CFI 9e378 x19: x19 x20: x20
+STACK CFI 9e37c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e380 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9e5c0 a8 .cfa: sp 0 + .ra: x30
+STACK CFI 9e5c4 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9e5c8 .cfa: x29 64 +
+STACK CFI 9e5d0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI 9e5e4 x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 9e640 x19: x19 x20: x20
+STACK CFI 9e644 x21: x21 x22: x22
+STACK CFI 9e648 x23: x23 x24: x24
+STACK CFI 9e64c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e650 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9e668 8b4 .cfa: sp 0 + .ra: x30
+STACK CFI 9e66c .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 9e678 .cfa: x29 160 +
+STACK CFI 9e68c x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^
+STACK CFI 9e710 x19: x19 x20: x20
+STACK CFI 9e714 x21: x21 x22: x22
+STACK CFI 9e718 x23: x23
+STACK CFI 9e71c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e720 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x29: .cfa -160 + ^
+STACK CFI 9e76c x23: x23
+STACK CFI 9e770 x19: x19 x20: x20
+STACK CFI 9e774 x21: x21 x22: x22
+STACK CFI 9e778 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e77c .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x29: .cfa -160 + ^
+STACK CFI 9e7e8 x23: x23
+STACK CFI 9e7ec x19: x19 x20: x20
+STACK CFI 9e7f0 x21: x21 x22: x22
+STACK CFI 9e7f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e7f8 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x29: .cfa -160 + ^
+STACK CFI 9e87c x23: x23
+STACK CFI 9e880 x19: x19 x20: x20
+STACK CFI 9e884 x21: x21 x22: x22
+STACK CFI 9e888 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9e88c .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x29: .cfa -160 + ^
+STACK CFI INIT 9ef1c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT 9ef20 294 .cfa: sp 0 + .ra: x30
+STACK CFI 9ef24 .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI 9ef28 .cfa: x29 96 +
+STACK CFI 9ef2c x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI 9ef44 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^
+STACK CFI 9f188 x19: x19 x20: x20
+STACK CFI 9f18c x21: x21 x22: x22
+STACK CFI 9f190 x23: x23 x24: x24
+STACK CFI 9f194 x25: x25 x26: x26
+STACK CFI 9f198 x27: x27
+STACK CFI 9f19c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f1a0 .cfa: x29 96 + .ra: .cfa -88 + ^ x19: .cfa -80 + ^ x20: .cfa -72 + ^ x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^ x26: .cfa -24 + ^ x27: .cfa -16 + ^ x29: .cfa -96 + ^
+STACK CFI INIT 9f1b4 c0 .cfa: sp 0 + .ra: x30
+STACK CFI 9f1b8 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI 9f1bc .cfa: x29 48 +
+STACK CFI 9f1c0 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI 9f1d0 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI 9f234 x19: x19 x20: x20
+STACK CFI 9f238 x21: x21 x22: x22
+STACK CFI 9f23c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f240 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI 9f268 x19: x19 x20: x20
+STACK CFI 9f26c x21: x21 x22: x22
+STACK CFI 9f270 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT 9f274 2bc .cfa: sp 0 + .ra: x30
+STACK CFI 9f278 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI 9f284 .cfa: x29 112 +
+STACK CFI 9f288 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI 9f2a0 x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI 9f504 x19: x19 x20: x20
+STACK CFI 9f508 x21: x21 x22: x22
+STACK CFI 9f50c x23: x23 x24: x24
+STACK CFI 9f510 x25: x25 x26: x26
+STACK CFI 9f514 x27: x27
+STACK CFI 9f518 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f51c .cfa: x29 112 + .ra: .cfa -104 + ^ x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x29: .cfa -112 + ^
+STACK CFI INIT 9f530 1a8 .cfa: sp 0 + .ra: x30
+STACK CFI 9f534 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9f53c .cfa: x29 64 +
+STACK CFI 9f548 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 9f5b8 x19: x19 x20: x20
+STACK CFI 9f5bc x21: x21 x22: x22
+STACK CFI 9f5c0 x23: x23 x24: x24
+STACK CFI 9f5c4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f5c8 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 9f6a4 x19: x19 x20: x20
+STACK CFI 9f6a8 x21: x21 x22: x22
+STACK CFI 9f6ac x23: x23 x24: x24
+STACK CFI 9f6b0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f6b4 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9f6d8 1a8 .cfa: sp 0 + .ra: x30
+STACK CFI 9f6dc .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI 9f6e4 .cfa: x29 64 +
+STACK CFI 9f6f0 x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI 9f760 x19: x19 x20: x20
+STACK CFI 9f764 x21: x21 x22: x22
+STACK CFI 9f768 x23: x23 x24: x24
+STACK CFI 9f76c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f770 .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI 9f84c x19: x19 x20: x20
+STACK CFI 9f850 x21: x21 x22: x22
+STACK CFI 9f854 x23: x23 x24: x24
+STACK CFI 9f858 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f85c .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT 9f880 11f8 .cfa: sp 0 + .ra: x30
+STACK CFI 9f884 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI 9f890 .cfa: x29 160 +
+STACK CFI 9f8a4 x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI 9f9cc x19: x19 x20: x20
+STACK CFI 9f9d0 x21: x21 x22: x22
+STACK CFI 9f9d4 x23: x23 x24: x24
+STACK CFI 9f9d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9f9dc .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x29: .cfa -160 + ^
+STACK CFI 9fac8 x23: x23 x24: x24
+STACK CFI 9fad4 x19: x19 x20: x20
+STACK CFI 9fad8 x21: x21 x22: x22
+STACK CFI 9fadc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9fae0 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x29: .cfa -160 + ^
+STACK CFI 9fc10 x19: x19 x20: x20
+STACK CFI 9fc14 x21: x21 x22: x22
+STACK CFI 9fc18 x23: x23 x24: x24
+STACK CFI 9fc1c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI 9fc20 .cfa: x29 160 + .ra: .cfa -152 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x23: .cfa -112 + ^ x24: .cfa -104 + ^ x29: .cfa -160 + ^
+STACK CFI INIT a0a78 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0a7c a8 .cfa: sp 0 + .ra: x30
+STACK CFI a0a80 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a0a84 .cfa: x29 64 +
+STACK CFI a0a8c x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a0aa0 x23: .cfa -16 + ^ x24: .cfa -8 + ^
+STACK CFI a0afc x19: x19 x20: x20
+STACK CFI a0b00 x21: x21 x22: x22
+STACK CFI a0b04 x23: x23 x24: x24
+STACK CFI a0b08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a0b0c .cfa: x29 64 + .ra: .cfa -56 + ^ x19: .cfa -48 + ^ x20: .cfa -40 + ^ x21: .cfa -32 + ^ x22: .cfa -24 + ^ x23: .cfa -16 + ^ x24: .cfa -8 + ^ x29: .cfa -64 + ^
+STACK CFI INIT a0b24 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b2c 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b30 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b38 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b3c 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b50 34 .cfa: sp 0 + .ra: x30
+STACK CFI a0b58 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0b5c .cfa: x29 32 +
+STACK CFI a0b64 x19: .cfa -16 + ^
+STACK CFI a0b7c x19: x19
+STACK CFI a0b80 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0b84 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0b98 34 .cfa: sp 0 + .ra: x30
+STACK CFI a0ba0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0ba4 .cfa: x29 32 +
+STACK CFI a0bac x19: .cfa -16 + ^
+STACK CFI a0bc4 x19: x19
+STACK CFI a0bc8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0bcc 44 .cfa: sp 0 + .ra: x30
+STACK CFI a0bd0 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0bdc .cfa: x29 32 +
+STACK CFI a0be0 x19: .cfa -16 + ^
+STACK CFI a0c08 x19: x19
+STACK CFI a0c0c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0c10 44 .cfa: sp 0 + .ra: x30
+STACK CFI a0c14 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0c20 .cfa: x29 32 +
+STACK CFI a0c24 x19: .cfa -16 + ^
+STACK CFI a0c4c x19: x19
+STACK CFI a0c50 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0c54 28 .cfa: sp 0 + .ra: x30
+STACK CFI a0c58 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0c64 .cfa: x29 32 +
+STACK CFI a0c74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0c7c a8 .cfa: sp 0 + .ra: x30
+STACK CFI a0c80 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI a0c84 .cfa: x29 48 +
+STACK CFI a0c88 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI a0c90 x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI a0cd8 x19: x19 x20: x20
+STACK CFI a0cdc x21: x21 x22: x22
+STACK CFI a0ce0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a0ce4 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^ x29: .cfa -48 + ^
+STACK CFI INIT a0d24 28 .cfa: sp 0 + .ra: x30
+STACK CFI a0d28 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0d34 .cfa: x29 32 +
+STACK CFI a0d44 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a0d4c 34 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a0d80 aa4 .cfa: sp 0 + .ra: x30
+STACK CFI a0d88 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a0d98 .cfa: x29 32 +
+STACK CFI a1820 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a1824 100 .cfa: sp 0 + .ra: x30
+STACK CFI a1828 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a1834 .cfa: x29 16 +
+STACK CFI a1920 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a1924 13c .cfa: sp 0 + .ra: x30
+STACK CFI a1928 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a1934 .cfa: x29 16 +
+STACK CFI a1a5c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a1a60 6bc .cfa: sp 0 + .ra: x30
+STACK CFI a1a64 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a1a70 .cfa: x29 32 +
+STACK CFI a2118 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a211c 64 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2180 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a21a8 40 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a21e8 f0 .cfa: sp 0 + .ra: x30
+STACK CFI a21ec .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a21f0 .cfa: x29 64 +
+STACK CFI a21f4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI a2200 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a22cc x19: x19 x20: x20
+STACK CFI a22d0 x21: x21 x22: x22
+STACK CFI a22d4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a22d8 114 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a23ec 3c .cfa: sp 0 + .ra: x30
+STACK CFI a23f4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a23f8 .cfa: x29 16 +
+STACK CFI a2424 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a2428 58 .cfa: sp 0 + .ra: x30
+STACK CFI a242c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a2434 .cfa: x29 16 +
+STACK CFI a247c .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a2480 10c .cfa: sp 0 + .ra: x30
+STACK CFI a2484 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a2488 .cfa: x29 64 +
+STACK CFI a248c x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a2498 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI a2580 x19: x19 x20: x20
+STACK CFI a2584 x21: x21 x22: x22
+STACK CFI a2588 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a258c 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2594 58 .cfa: sp 0 + .ra: x30
+STACK CFI a2598 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a25a0 .cfa: x29 16 +
+STACK CFI a25e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a25ec 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a25f4 14 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2608 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2610 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2618 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2620 28 .cfa: sp 0 + .ra: x30
+STACK CFI a2624 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI a262c .cfa: x29 48 +
+STACK CFI a2640 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a2648 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2650 8 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a2658 78 .cfa: sp 0 + .ra: x30
+STACK CFI a265c .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a266c .cfa: x29 16 +
+STACK CFI a26ac .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a26b0 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a26b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a26b8 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a26bc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a26c0 .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a26cc .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a26d0 4f8 .cfa: sp 0 + .ra: x30
+STACK CFI a26d4 .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI a26d8 .cfa: x29 144 +
+STACK CFI a26ec x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^ x25: .cfa -80 + ^ x26: .cfa -72 + ^ x27: .cfa -64 + ^ x28: .cfa -56 + ^
+STACK CFI a2bac .cfa: sp 144 +
+STACK CFI a2bb0 x19: x19 x20: x20
+STACK CFI a2bb4 x21: x21 x22: x22
+STACK CFI a2bb8 x23: x23 x24: x24
+STACK CFI a2bbc x25: x25 x26: x26
+STACK CFI a2bc0 x27: x27 x28: x28
+STACK CFI a2bc4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a2bc8 41c .cfa: sp 0 + .ra: x30
+STACK CFI a2bcc .cfa: sp 128 + .ra: .cfa -120 + ^ x29: .cfa -128 + ^
+STACK CFI a2bd4 .cfa: x29 128 +
+STACK CFI a2bdc x19: .cfa -112 + ^ x20: .cfa -104 + ^ x21: .cfa -96 + ^ x22: .cfa -88 + ^
+STACK CFI a2bf8 x23: .cfa -80 + ^ x24: .cfa -72 + ^ x25: .cfa -64 + ^ x26: .cfa -56 + ^ x27: .cfa -48 + ^ x28: .cfa -40 + ^
+STACK CFI a2fcc x19: x19 x20: x20
+STACK CFI a2fd0 x21: x21 x22: x22
+STACK CFI a2fd4 x23: x23 x24: x24
+STACK CFI a2fd8 x25: x25 x26: x26
+STACK CFI a2fdc x27: x27 x28: x28
+STACK CFI a2fe0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a2fe4 598 .cfa: sp 0 + .ra: x30
+STACK CFI a2fe8 .cfa: sp 544 +
+STACK CFI a2ff0 .cfa: sp 656 + .ra: .cfa -648 + ^ x29: .cfa -656 + ^
+STACK CFI a2ff4 .cfa: x29 656 +
+STACK CFI a2ff8 x23: .cfa -608 + ^ x24: .cfa -600 + ^
+STACK CFI a3008 v8: .cfa -560 + ^
+STACK CFI a3010 x27: .cfa -576 + ^ x28: .cfa -568 + ^
+STACK CFI a3024 x19: .cfa -640 + ^ x20: .cfa -632 + ^ x21: .cfa -624 + ^ x22: .cfa -616 + ^ x25: .cfa -592 + ^ x26: .cfa -584 + ^
+STACK CFI a3558 x21: x21 x22: x22
+STACK CFI a355c x25: x25 x26: x26
+STACK CFI a3564 x19: x19 x20: x20
+STACK CFI a3568 x23: x23 x24: x24
+STACK CFI a356c x27: x27 x28: x28
+STACK CFI a3570 v8: v8
+STACK CFI a3574 .cfa: sp 544 + .ra: .ra x29: x29
+STACK CFI a3578 .cfa: sp 432 +
+STACK CFI INIT a357c 224 .cfa: sp 0 + .ra: x30
+STACK CFI a3580 .cfa: sp 976 +
+STACK CFI a3588 .cfa: sp 1088 + .ra: .cfa -1080 + ^ x29: .cfa -1088 + ^
+STACK CFI a358c .cfa: x29 1088 +
+STACK CFI a3594 x19: .cfa -1072 + ^ x20: .cfa -1064 + ^ x21: .cfa -1056 + ^ x22: .cfa -1048 + ^
+STACK CFI a35a4 x25: .cfa -1024 + ^ x26: .cfa -1016 + ^
+STACK CFI a35b8 v8: .cfa -992 + ^ x23: .cfa -1040 + ^ x24: .cfa -1032 + ^ x27: .cfa -1008 + ^ x28: .cfa -1000 + ^
+STACK CFI a3780 x21: x21 x22: x22
+STACK CFI a3784 x19: x19 x20: x20
+STACK CFI a3788 x23: x23 x24: x24
+STACK CFI a378c x25: x25 x26: x26
+STACK CFI a3790 x27: x27 x28: x28
+STACK CFI a3794 v8: v8
+STACK CFI a3798 .cfa: sp 976 + .ra: .ra x29: x29
+STACK CFI a379c .cfa: sp 864 +
+STACK CFI INIT a37a0 cc .cfa: sp 0 + .ra: x30
+STACK CFI a37a4 .cfa: sp 1680 +
+STACK CFI a37a8 .cfa: sp 1744 + .ra: .cfa -1736 + ^ x29: .cfa -1744 + ^
+STACK CFI a37ac .cfa: x29 1744 +
+STACK CFI a37b4 x19: .cfa -1728 + ^ x20: .cfa -1720 + ^ x21: .cfa -1712 + ^ x22: .cfa -1704 + ^
+STACK CFI a37bc x23: .cfa -1696 + ^
+STACK CFI a3858 x23: x23
+STACK CFI a385c x19: x19 x20: x20
+STACK CFI a3860 x21: x21 x22: x22
+STACK CFI a3864 .cfa: sp 1680 + .ra: .ra x29: x29
+STACK CFI a3868 .cfa: sp 1616 +
+STACK CFI INIT a386c 4c .cfa: sp 0 + .ra: x30
+STACK CFI a3870 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a3874 .cfa: x29 32 +
+STACK CFI a3878 x19: .cfa -16 + ^ x20: .cfa -8 + ^
+STACK CFI a38b0 x19: x19 x20: x20
+STACK CFI a38b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a38b8 c0 .cfa: sp 0 + .ra: x30
+STACK CFI a38bc .cfa: sp 1664 +
+STACK CFI a38c0 .cfa: sp 1728 + .ra: .cfa -1720 + ^ x29: .cfa -1728 + ^
+STACK CFI a38c4 .cfa: x29 1728 +
+STACK CFI a38d0 x19: .cfa -1712 + ^ x20: .cfa -1704 + ^ x21: .cfa -1696 + ^ x22: .cfa -1688 + ^ x23: .cfa -1680 + ^ x24: .cfa -1672 + ^
+STACK CFI a3964 x19: x19 x20: x20
+STACK CFI a3968 x21: x21 x22: x22
+STACK CFI a396c x23: x23 x24: x24
+STACK CFI a3970 .cfa: sp 1664 + .ra: .ra x29: x29
+STACK CFI a3974 .cfa: sp 1600 +
+STACK CFI INIT a3978 ec .cfa: sp 0 + .ra: x30
+STACK CFI a397c .cfa: sp 1664 +
+STACK CFI a3980 .cfa: sp 1744 + .ra: .cfa -1736 + ^ x29: .cfa -1744 + ^
+STACK CFI a3984 .cfa: x29 1744 +
+STACK CFI a3988 x23: .cfa -1696 + ^ x24: .cfa -1688 + ^
+STACK CFI a399c x19: .cfa -1728 + ^ x20: .cfa -1720 + ^ x21: .cfa -1712 + ^ x22: .cfa -1704 + ^ x25: .cfa -1680 + ^ x26: .cfa -1672 + ^
+STACK CFI a3a4c x19: x19 x20: x20
+STACK CFI a3a50 x21: x21 x22: x22
+STACK CFI a3a54 x23: x23 x24: x24
+STACK CFI a3a58 x25: x25 x26: x26
+STACK CFI a3a5c .cfa: sp 1664 + .ra: .ra x29: x29
+STACK CFI a3a60 .cfa: sp 1584 +
+STACK CFI INIT a3a64 f4 .cfa: sp 0 + .ra: x30
+STACK CFI a3a68 .cfa: sp 2624 +
+STACK CFI a3a70 .cfa: sp 2672 + .ra: .cfa -2664 + ^ x29: .cfa -2672 + ^
+STACK CFI a3a74 .cfa: x29 2672 +
+STACK CFI a3a78 x19: .cfa -2656 + ^ x20: .cfa -2648 + ^
+STACK CFI a3a80 x21: .cfa -2640 + ^
+STACK CFI a3b44 x19: x19 x20: x20
+STACK CFI a3b48 x21: x21
+STACK CFI a3b50 .cfa: sp 2624 + .ra: .ra x29: x29
+STACK CFI a3b54 .cfa: sp 2576 +
+STACK CFI INIT a3b58 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a3b5c 188 .cfa: sp 0 + .ra: x30
+STACK CFI a3b60 .cfa: sp 3600 +
+STACK CFI a3b64 .cfa: sp 3792 + .ra: .cfa -3784 + ^ x29: .cfa -3792 + ^
+STACK CFI a3b68 .cfa: x29 3792 +
+STACK CFI a3b70 v8: .cfa -3664 + ^ v9: .cfa -3656 + ^ x21: .cfa -3728 + ^ x22: .cfa -3720 + ^
+STACK CFI a3b8c v10: .cfa -3648 + ^ v11: .cfa -3640 + ^ v12: .cfa -3632 + ^ v13: .cfa -3624 + ^ v14: .cfa -3616 + ^ v15: .cfa -3608 + ^ x0: .cfa -3776 + ^ x1: .cfa -3768 + ^ x19: .cfa -3744 + ^ x2: .cfa -3760 + ^ x20: .cfa -3736 + ^ x3: .cfa -3752 + ^
+STACK CFI a3ba8 x23: .cfa -3712 + ^ x24: .cfa -3704 + ^ x25: .cfa -3696 + ^ x26: .cfa -3688 + ^ x27: .cfa -3680 + ^ x28: .cfa -3672 + ^
+STACK CFI a3ca8 x2: x2 x3: x3
+STACK CFI a3cac v8: v8 v9: v9
+STACK CFI a3cb0 x19: x19 x20: x20
+STACK CFI a3cb4 v10: v10 v11: v11
+STACK CFI a3cb8 x21: x21 x22: x22
+STACK CFI a3cbc v12: v12 v13: v13
+STACK CFI a3cc0 x23: x23 x24: x24
+STACK CFI a3cc4 v14: v14 v15: v15
+STACK CFI a3cc8 x25: x25 x26: x26
+STACK CFI a3ccc x27: x27 x28: x28
+STACK CFI a3cd0 x0: x0 x1: x1
+STACK CFI a3cd4 .cfa: sp 3600 + .ra: .ra x29: x29
+STACK CFI a3cd8 .cfa: x16 0 +
+STACK CFI INIT a3ce4 f4 .cfa: sp 0 + .ra: x30
+STACK CFI a3ce8 .cfa: sp 1936 +
+STACK CFI a3cec .cfa: sp 2128 + .ra: .cfa -2120 + ^ x29: .cfa -2128 + ^
+STACK CFI a3cf0 .cfa: x29 2128 +
+STACK CFI a3cf8 v8: .cfa -2000 + ^ v9: .cfa -1992 + ^ x19: .cfa -2080 + ^ x20: .cfa -2072 + ^
+STACK CFI a3d18 v10: .cfa -1984 + ^ v11: .cfa -1976 + ^ v12: .cfa -1968 + ^ v13: .cfa -1960 + ^ v14: .cfa -1952 + ^ v15: .cfa -1944 + ^ x0: .cfa -2112 + ^ x1: .cfa -2104 + ^ x2: .cfa -2096 + ^ x21: .cfa -2064 + ^ x22: .cfa -2056 + ^ x23: .cfa -2048 + ^ x24: .cfa -2040 + ^ x3: .cfa -2088 + ^
+STACK CFI a3d3c x25: .cfa -2032 + ^ x26: .cfa -2024 + ^ x27: .cfa -2016 + ^ x28: .cfa -2008 + ^
+STACK CFI a3d9c x2: x2 x3: x3
+STACK CFI a3da0 v8: v8 v9: v9
+STACK CFI a3da4 x19: x19 x20: x20
+STACK CFI a3da8 v10: v10 v11: v11
+STACK CFI a3dac x21: x21 x22: x22
+STACK CFI a3db0 v12: v12 v13: v13
+STACK CFI a3db4 x23: x23 x24: x24
+STACK CFI a3db8 v14: v14 v15: v15
+STACK CFI a3dbc x25: x25 x26: x26
+STACK CFI a3dc0 x27: x27 x28: x28
+STACK CFI a3dc4 x0: x0 x1: x1
+STACK CFI a3dc8 .cfa: sp 1936 + .ra: .ra x29: x29
+STACK CFI a3dcc .cfa: x16 0 +
+STACK CFI INIT a3dd8 fc .cfa: sp 0 + .ra: x30
+STACK CFI a3ddc .cfa: sp 1936 +
+STACK CFI a3de0 .cfa: sp 2128 + .ra: .cfa -2120 + ^ x29: .cfa -2128 + ^
+STACK CFI a3de4 .cfa: x29 2128 +
+STACK CFI a3dec v8: .cfa -2000 + ^ v9: .cfa -1992 + ^ x19: .cfa -2080 + ^ x20: .cfa -2072 + ^
+STACK CFI a3e04 v10: .cfa -1984 + ^ v11: .cfa -1976 + ^ v12: .cfa -1968 + ^ v13: .cfa -1960 + ^ v14: .cfa -1952 + ^ v15: .cfa -1944 + ^ x0: .cfa -2112 + ^ x1: .cfa -2104 + ^ x2: .cfa -2096 + ^ x3: .cfa -2088 + ^
+STACK CFI a3e10 x21: .cfa -2064 + ^ x22: .cfa -2056 + ^
+STACK CFI a3e24 x23: .cfa -2048 + ^ x24: .cfa -2040 + ^ x25: .cfa -2032 + ^ x26: .cfa -2024 + ^ x27: .cfa -2016 + ^ x28: .cfa -2008 + ^
+STACK CFI a3e98 v8: v8 v9: v9
+STACK CFI a3e9c x0: x0 x1: x1
+STACK CFI a3ea0 v10: v10 v11: v11
+STACK CFI a3ea4 x2: x2 x3: x3
+STACK CFI a3ea8 v12: v12 v13: v13
+STACK CFI a3eac x19: x19 x20: x20
+STACK CFI a3eb0 v14: v14 v15: v15
+STACK CFI a3eb4 x21: x21 x22: x22
+STACK CFI a3eb8 x23: x23 x24: x24
+STACK CFI a3ebc x25: x25 x26: x26
+STACK CFI a3ec0 x27: x27 x28: x28
+STACK CFI a3ec4 .cfa: sp 1936 + .ra: .ra x29: x29
+STACK CFI a3ec8 .cfa: x16 0 +
+STACK CFI INIT a3ed4 fc .cfa: sp 0 + .ra: x30
+STACK CFI a3ed8 .cfa: sp 1936 +
+STACK CFI a3edc .cfa: sp 2128 + .ra: .cfa -2120 + ^ x29: .cfa -2128 + ^
+STACK CFI a3ee0 .cfa: x29 2128 +
+STACK CFI a3f10 v10: .cfa -1984 + ^ v11: .cfa -1976 + ^ v12: .cfa -1968 + ^ v13: .cfa -1960 + ^ v14: .cfa -1952 + ^ v15: .cfa -1944 + ^ v8: .cfa -2000 + ^ v9: .cfa -1992 + ^ x0: .cfa -2112 + ^ x1: .cfa -2104 + ^ x19: .cfa -2080 + ^ x2: .cfa -2096 + ^ x20: .cfa -2072 + ^ x21: .cfa -2064 + ^ x22: .cfa -2056 + ^ x23: .cfa -2048 + ^ x24: .cfa -2040 + ^ x25: .cfa -2032 + ^ x26: .cfa -2024 + ^ x27: .cfa -2016 + ^ x28: .cfa -2008 + ^ x3: .cfa -2088 + ^
+STACK CFI a3f94 x2: x2 x3: x3
+STACK CFI a3f98 v8: v8 v9: v9
+STACK CFI a3f9c x19: x19 x20: x20
+STACK CFI a3fa0 v10: v10 v11: v11
+STACK CFI a3fa4 x21: x21 x22: x22
+STACK CFI a3fa8 v12: v12 v13: v13
+STACK CFI a3fac x23: x23 x24: x24
+STACK CFI a3fb0 v14: v14 v15: v15
+STACK CFI a3fb4 x25: x25 x26: x26
+STACK CFI a3fb8 x27: x27 x28: x28
+STACK CFI a3fbc x0: x0 x1: x1
+STACK CFI a3fc0 .cfa: sp 1936 + .ra: .ra x29: x29
+STACK CFI a3fc4 .cfa: x16 0 +
+STACK CFI INIT a3fd0 24 .cfa: sp 0 + .ra: x30
+STACK CFI a3fd4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a3fd8 .cfa: x29 16 +
+STACK CFI a3ff0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a3ff4 d0 .cfa: sp 0 + .ra: x30
+STACK CFI a3ff8 .cfa: sp 2624 +
+STACK CFI a4000 .cfa: sp 2784 + .ra: .cfa -2776 + ^ x29: .cfa -2784 + ^
+STACK CFI a4004 .cfa: x29 2784 +
+STACK CFI a400c v8: .cfa -2688 + ^ v9: .cfa -2680 + ^ x19: .cfa -2768 + ^ x20: .cfa -2760 + ^
+STACK CFI a4024 v10: .cfa -2672 + ^ v11: .cfa -2664 + ^ v12: .cfa -2656 + ^ v13: .cfa -2648 + ^ v14: .cfa -2640 + ^ v15: .cfa -2632 + ^ x21: .cfa -2752 + ^ x22: .cfa -2744 + ^ x23: .cfa -2736 + ^ x24: .cfa -2728 + ^
+STACK CFI a4040 x25: .cfa -2720 + ^ x26: .cfa -2712 + ^ x27: .cfa -2704 + ^ x28: .cfa -2696 + ^
+STACK CFI a4098 x19: x19 x20: x20
+STACK CFI a409c v8: v8 v9: v9
+STACK CFI a40a0 x21: x21 x22: x22
+STACK CFI a40a4 v10: v10 v11: v11
+STACK CFI a40a8 x23: x23 x24: x24
+STACK CFI a40ac v12: v12 v13: v13
+STACK CFI a40b0 x25: x25 x26: x26
+STACK CFI a40b4 v14: v14 v15: v15
+STACK CFI a40b8 x27: x27 x28: x28
+STACK CFI a40bc .cfa: sp 2624 + .ra: .ra x29: x29
+STACK CFI a40c0 .cfa: sp 2464 +
+STACK CFI INIT a40c4 28 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a40ec 40 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a412c 1c .cfa: sp 0 + .ra: x30
+STACK CFI INIT a4148 c0 .cfa: sp 0 + .ra: x30
+STACK CFI a414c .cfa: sp 96 + .ra: .cfa -88 + ^ x29: .cfa -96 + ^
+STACK CFI a4150 .cfa: x29 96 +
+STACK CFI a4154 x19: .cfa -80 + ^ x20: .cfa -72 + ^
+STACK CFI a4164 x21: .cfa -64 + ^ x22: .cfa -56 + ^ x23: .cfa -48 + ^ x24: .cfa -40 + ^ x25: .cfa -32 + ^
+STACK CFI a41f4 x19: x19 x20: x20
+STACK CFI a41f8 x21: x21 x22: x22
+STACK CFI a41fc x23: x23 x24: x24
+STACK CFI a4200 x25: x25
+STACK CFI a4204 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4208 b4 .cfa: sp 0 + .ra: x30
+STACK CFI a420c .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI a4210 .cfa: x29 80 +
+STACK CFI a4214 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI a4224 x21: .cfa -48 + ^ x22: .cfa -40 + ^ x23: .cfa -32 + ^ x24: .cfa -24 + ^ x25: .cfa -16 + ^
+STACK CFI a42a8 x19: x19 x20: x20
+STACK CFI a42ac x21: x21 x22: x22
+STACK CFI a42b0 x23: x23 x24: x24
+STACK CFI a42b4 x25: x25
+STACK CFI a42b8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a42bc 60 .cfa: sp 0 + .ra: x30
+STACK CFI a42c0 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a42cc .cfa: x29 16 +
+STACK CFI a4318 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a431c 60 .cfa: sp 0 + .ra: x30
+STACK CFI a4320 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a432c .cfa: x29 16 +
+STACK CFI a4378 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a437c 60 .cfa: sp 0 + .ra: x30
+STACK CFI a4380 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a438c .cfa: x29 16 +
+STACK CFI a43d8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a43dc f0 .cfa: sp 0 + .ra: x30
+STACK CFI a43e0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a43e4 .cfa: x29 64 +
+STACK CFI a43e8 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI a43f4 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a44c0 x19: x19 x20: x20
+STACK CFI a44c4 x21: x21 x22: x22
+STACK CFI a44c8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a44cc 90 .cfa: sp 0 + .ra: x30
+STACK CFI a44d0 .cfa: sp 80 + .ra: .cfa -72 + ^ x29: .cfa -80 + ^
+STACK CFI a44d4 .cfa: x29 80 +
+STACK CFI a44d8 x19: .cfa -64 + ^ x20: .cfa -56 + ^
+STACK CFI a44e4 x23: .cfa -32 + ^
+STACK CFI a44f8 x21: .cfa -48 + ^ x22: .cfa -40 + ^
+STACK CFI a454c x19: x19 x20: x20
+STACK CFI a4550 x21: x21 x22: x22
+STACK CFI a4554 x23: x23
+STACK CFI a4558 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a455c fc .cfa: sp 0 + .ra: x30
+STACK CFI a4560 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a4564 .cfa: x29 64 +
+STACK CFI a4568 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI a4650 x19: x19 x20: x20
+STACK CFI a4654 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4658 160 .cfa: sp 0 + .ra: x30
+STACK CFI a465c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI a4660 .cfa: x29 112 +
+STACK CFI a4664 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI a4674 x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI a4688 x23: .cfa -64 + ^ x24: .cfa -56 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^ x28: .cfa -24 + ^
+STACK CFI a47a0 x19: x19 x20: x20
+STACK CFI a47a4 x21: x21 x22: x22
+STACK CFI a47a8 x23: x23 x24: x24
+STACK CFI a47ac x25: x25 x26: x26
+STACK CFI a47b0 x27: x27 x28: x28
+STACK CFI a47b4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a47b8 10 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a47c8 414 .cfa: sp 0 + .ra: x30
+STACK CFI a47cc .cfa: sp 144 + .ra: .cfa -136 + ^ x29: .cfa -144 + ^
+STACK CFI a47d4 .cfa: x29 144 +
+STACK CFI a47e0 x19: .cfa -128 + ^ x20: .cfa -120 + ^ x21: .cfa -112 + ^ x22: .cfa -104 + ^ x23: .cfa -96 + ^ x24: .cfa -88 + ^
+STACK CFI a4bcc x19: x19 x20: x20
+STACK CFI a4bd0 x21: x21 x22: x22
+STACK CFI a4bd4 x23: x23 x24: x24
+STACK CFI a4bd8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4bdc 9c .cfa: sp 0 + .ra: x30
+STACK CFI a4be0 .cfa: sp 64 + .ra: .cfa -56 + ^ x29: .cfa -64 + ^
+STACK CFI a4be4 .cfa: x29 64 +
+STACK CFI a4be8 x21: .cfa -32 + ^ x22: .cfa -24 + ^
+STACK CFI a4bf4 x19: .cfa -48 + ^ x20: .cfa -40 + ^
+STACK CFI a4c6c x19: x19 x20: x20
+STACK CFI a4c70 x21: x21 x22: x22
+STACK CFI a4c74 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4c78 160 .cfa: sp 0 + .ra: x30
+STACK CFI a4c7c .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI a4c80 .cfa: x29 112 +
+STACK CFI a4c84 x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI a4c98 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x21: .cfa -80 + ^ x22: .cfa -72 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI a4dc0 x19: x19 x20: x20
+STACK CFI a4dc4 x21: x21 x22: x22
+STACK CFI a4dc8 x23: x23 x24: x24
+STACK CFI a4dcc x25: x25 x26: x26
+STACK CFI a4dd0 x27: x27
+STACK CFI a4dd4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4dd8 134 .cfa: sp 0 + .ra: x30
+STACK CFI a4ddc .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI a4de0 .cfa: x29 112 +
+STACK CFI a4de4 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI a4df4 x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI a4e08 x19: .cfa -96 + ^ x20: .cfa -88 + ^ x25: .cfa -48 + ^ x26: .cfa -40 + ^ x27: .cfa -32 + ^
+STACK CFI a4ef4 x19: x19 x20: x20
+STACK CFI a4ef8 x21: x21 x22: x22
+STACK CFI a4efc x23: x23 x24: x24
+STACK CFI a4f00 x25: x25 x26: x26
+STACK CFI a4f04 x27: x27
+STACK CFI a4f08 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a4f0c 578 .cfa: sp 0 + .ra: x30
+STACK CFI a4f10 .cfa: sp 160 + .ra: .cfa -152 + ^ x29: .cfa -160 + ^
+STACK CFI a4f14 .cfa: x29 160 +
+STACK CFI a4f18 x23: .cfa -112 + ^ x24: .cfa -104 + ^
+STACK CFI a4f34 v8: .cfa -64 + ^ x19: .cfa -144 + ^ x20: .cfa -136 + ^ x21: .cfa -128 + ^ x22: .cfa -120 + ^ x25: .cfa -96 + ^ x26: .cfa -88 + ^ x27: .cfa -80 + ^ x28: .cfa -72 + ^
+STACK CFI a5468 x19: x19 x20: x20
+STACK CFI a546c x21: x21 x22: x22
+STACK CFI a5470 x23: x23 x24: x24
+STACK CFI a5474 x25: x25 x26: x26
+STACK CFI a5478 x27: x27 x28: x28
+STACK CFI a547c v8: v8
+STACK CFI a5480 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a5484 84 .cfa: sp 0 + .ra: x30
+STACK CFI a5488 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI a548c .cfa: x29 48 +
+STACK CFI a5494 x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^
+STACK CFI a54ec x21: x21
+STACK CFI a54f0 x19: x19 x20: x20
+STACK CFI a54f4 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a54f8 .cfa: x29 48 + .ra: .cfa -40 + ^ x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x29: .cfa -48 + ^
+STACK CFI a54fc x19: x19 x20: x20
+STACK CFI a5500 x21: x21
+STACK CFI a5504 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a5508 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT a5514 40 .cfa: sp 0 + .ra: x30
+STACK CFI a5518 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a551c .cfa: x29 32 +
+STACK CFI a5524 x19: .cfa -16 + ^
+STACK CFI a5540 x19: x19
+STACK CFI a5544 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a5548 .cfa: x29 32 + .ra: .cfa -24 + ^ x19: .cfa -16 + ^ x29: .cfa -32 + ^
+STACK CFI a554c x19: x19
+STACK CFI a5550 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a5554 70 .cfa: sp 0 + .ra: x30
+STACK CFI a5558 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI a5560 .cfa: x29 48 +
+STACK CFI a5564 x19: .cfa -32 + ^ x20: .cfa -24 + ^
+STACK CFI a55bc x19: x19 x20: x20
+STACK CFI a55c0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a55c4 c .cfa: sp 0 + .ra: x30
+STACK CFI INIT a55d0 2c .cfa: sp 0 + .ra: x30
+STACK CFI a55d4 .cfa: sp 32 + .ra: .cfa -24 + ^ x29: .cfa -32 + ^
+STACK CFI a55d8 .cfa: x29 32 +
+STACK CFI a55dc x19: .cfa -16 + ^
+STACK CFI a55f4 x19: x19
+STACK CFI a55f8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a55fc f0 .cfa: sp 0 + .ra: x30
+STACK CFI a5600 .cfa: sp 48 + .ra: .cfa -40 + ^ x29: .cfa -48 + ^
+STACK CFI a5604 .cfa: x29 48 +
+STACK CFI a560c x19: .cfa -32 + ^ x20: .cfa -24 + ^ x21: .cfa -16 + ^ x22: .cfa -8 + ^
+STACK CFI a56e0 x19: x19 x20: x20
+STACK CFI a56e4 x21: x21 x22: x22
+STACK CFI a56e8 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a56ec 4 .cfa: sp 0 + .ra: x30
+STACK CFI INIT a56f0 24 .cfa: sp 0 + .ra: x30
+STACK CFI a56f4 .cfa: sp 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a56f8 .cfa: x29 16 +
+STACK CFI a5708 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI a570c .cfa: x29 16 + .ra: .cfa -8 + ^ x29: .cfa -16 + ^
+STACK CFI a5710 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a5714 190 .cfa: sp 0 + .ra: x30
+STACK CFI a5718 .cfa: sp 112 + .ra: .cfa -104 + ^ x29: .cfa -112 + ^
+STACK CFI a571c .cfa: x29 112 +
+STACK CFI a5720 x21: .cfa -80 + ^ x22: .cfa -72 + ^
+STACK CFI a572c x19: .cfa -96 + ^ x20: .cfa -88 + ^
+STACK CFI a5734 x23: .cfa -64 + ^ x24: .cfa -56 + ^
+STACK CFI a5894 x19: x19 x20: x20
+STACK CFI a5898 x21: x21 x22: x22
+STACK CFI a589c x23: x23 x24: x24
+STACK CFI a58a0 .cfa: sp 0 + .ra: .ra x29: x29
+STACK CFI INIT a58a4 60 .cfa: sp 0 + .ra: x30
diff --git a/src/processor/testdata/symbols/microdump/breakpad_unittests/DA7778FB66018A4E9B4110ED06E730D00/breakpad_unittests.sym b/src/processor/testdata/symbols/microdump/breakpad_unittests/DA7778FB66018A4E9B4110ED06E730D00/breakpad_unittests.sym
new file mode 100644
index 0000000..2ea3faa
--- /dev/null
+++ b/src/processor/testdata/symbols/microdump/breakpad_unittests/DA7778FB66018A4E9B4110ED06E730D00/breakpad_unittests.sym
@@ -0,0 +1,66343 @@
+MODULE Linux arm DA7778FB66018A4E9B4110ED06E730D00 breakpad_unittests
+FILE 0 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/crash_generation/crash_generation_client.cc
+FILE 1 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/dump_writer_common/seccomp_unwinder.cc
+FILE 2 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/dump_writer_common/thread_info.cc
+FILE 3 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+FILE 4 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/handler/exception_handler.cc
+FILE 5 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/handler/exception_handler.h
+FILE 6 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/handler/exception_handler_unittest.cc
+FILE 7 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/handler/minidump_descriptor.cc
+FILE 8 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/handler/minidump_descriptor.h
+FILE 9 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/log/log.cc
+FILE 10 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+FILE 11 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+FILE 12 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/cpu_set.h
+FILE 13 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/cpu_set_unittest.cc
+FILE 14 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/directory_reader.h
+FILE 15 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/directory_reader_unittest.cc
+FILE 16 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/line_reader.h
+FILE 17 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/line_reader_unittest.cc
+FILE 18 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+FILE 19 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper.h
+FILE 20 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
+FILE 21 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+FILE 22 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_dumper.h
+FILE 23 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+FILE 24 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h
+FILE 25 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+FILE 26 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+FILE 27 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+FILE 28 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
+FILE 29 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h
+FILE 30 /s/clank/src/out_arm/Release/../../breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
+FILE 31 /s/clank/src/out_arm/Release/../../breakpad/src/client/minidump_file_writer-inl.h
+FILE 32 /s/clank/src/out_arm/Release/../../breakpad/src/client/minidump_file_writer.cc
+FILE 33 /s/clank/src/out_arm/Release/../../breakpad/src/client/minidump_file_writer.h
+FILE 34 /s/clank/src/out_arm/Release/../../breakpad/src/common/android/breakpad_getcontext_unittest.cc
+FILE 35 /s/clank/src/out_arm/Release/../../breakpad/src/common/android/testing/mkdtemp.h
+FILE 36 /s/clank/src/out_arm/Release/../../breakpad/src/common/android/testing/pthread_fixes.h
+FILE 37 /s/clank/src/out_arm/Release/../../breakpad/src/common/convert_UTF.c
+FILE 38 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/elf_core_dump.cc
+FILE 39 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/elf_core_dump_unittest.cc
+FILE 40 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/elfutils-inl.h
+FILE 41 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/elfutils.cc
+FILE 42 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/file_id.cc
+FILE 43 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/file_id_unittest.cc
+FILE 44 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/guid_creator.cc
+FILE 45 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/linux_libc_support.cc
+FILE 46 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/linux_libc_support_unittest.cc
+FILE 47 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/memory_mapped_file.cc
+FILE 48 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/safe_readlink.cc
+FILE 49 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/safe_readlink.h
+FILE 50 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/synth_elf.cc
+FILE 51 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/synth_elf.h
+FILE 52 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/tests/auto_testfile.h
+FILE 53 /s/clank/src/out_arm/Release/../../breakpad/src/common/linux/tests/crash_generator.cc
+FILE 54 /s/clank/src/out_arm/Release/../../breakpad/src/common/memory.h
+FILE 55 /s/clank/src/out_arm/Release/../../breakpad/src/common/memory_range.h
+FILE 56 /s/clank/src/out_arm/Release/../../breakpad/src/common/memory_unittest.cc
+FILE 57 /s/clank/src/out_arm/Release/../../breakpad/src/common/scoped_ptr.h
+FILE 58 /s/clank/src/out_arm/Release/../../breakpad/src/common/simple_string_dictionary.h
+FILE 59 /s/clank/src/out_arm/Release/../../breakpad/src/common/simple_string_dictionary_unittest.cc
+FILE 60 /s/clank/src/out_arm/Release/../../breakpad/src/common/string_conversion.cc
+FILE 61 /s/clank/src/out_arm/Release/../../breakpad/src/common/test_assembler.cc
+FILE 62 /s/clank/src/out_arm/Release/../../breakpad/src/common/test_assembler.h
+FILE 63 /s/clank/src/out_arm/Release/../../breakpad/src/common/tests/auto_tempdir.h
+FILE 64 /s/clank/src/out_arm/Release/../../breakpad/src/common/tests/file_utils.cc
+FILE 65 /s/clank/src/out_arm/Release/../../breakpad/src/google_breakpad/processor/minidump.h
+FILE 66 /s/clank/src/out_arm/Release/../../breakpad/src/processor/basic_code_module.h
+FILE 67 /s/clank/src/out_arm/Release/../../breakpad/src/processor/basic_code_modules.cc
+FILE 68 /s/clank/src/out_arm/Release/../../breakpad/src/processor/dump_context.cc
+FILE 69 /s/clank/src/out_arm/Release/../../breakpad/src/processor/dump_object.cc
+FILE 70 /s/clank/src/out_arm/Release/../../breakpad/src/processor/linked_ptr.h
+FILE 71 /s/clank/src/out_arm/Release/../../breakpad/src/processor/logging.cc
+FILE 72 /s/clank/src/out_arm/Release/../../breakpad/src/processor/logging.h
+FILE 73 /s/clank/src/out_arm/Release/../../breakpad/src/processor/minidump.cc
+FILE 74 /s/clank/src/out_arm/Release/../../breakpad/src/processor/pathname_stripper.cc
+FILE 75 /s/clank/src/out_arm/Release/../../breakpad/src/processor/range_map-inl.h
+FILE 76 /s/clank/src/out_arm/Release/../../breakpad/src/processor/range_map.h
+FILE 77 /s/clank/src/out_arm/Release/../../breakpad/src/tools/linux/md2core/minidump_memory_range.h
+FILE 78 /s/clank/src/out_arm/Release/../../breakpad/src/tools/linux/md2core/minidump_memory_range_unittest.cc
+FILE 79 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest-message.h
+FILE 80 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest-printers.h
+FILE 81 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest-test-part.h
+FILE 82 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest.h
+FILE 83 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-death-test-internal.h
+FILE 84 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-filepath.h
+FILE 85 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-internal.h
+FILE 86 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-param-util.h
+FILE 87 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-port.h
+FILE 88 /s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/internal/gtest-type-util.h
+FILE 89 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-death-test.cc
+FILE 90 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-filepath.cc
+FILE 91 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-internal-inl.h
+FILE 92 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-port.cc
+FILE 93 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-printers.cc
+FILE 94 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest-test-part.cc
+FILE 95 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc
+FILE 96 /s/clank/src/out_arm/Release/../../testing/gtest/src/gtest_main.cc
+FILE 97 /s/clank/src/out_arm/Release/../../third_party/lss/linux_syscall_support.h
+FILE 98 /s/clank/src/third_party/android_tools/ndk/platforms/android-14/arch-arm/usr/include/ctype.h
+FILE 99 /s/clank/src/third_party/android_tools/ndk/platforms/android-14/arch-arm/usr/include/linux/socket.h
+FILE 100 /s/clank/src/third_party/android_tools/ndk/platforms/android-14/arch-arm/usr/include/signal.h
+FILE 101 /s/clank/src/third_party/android_tools/ndk/platforms/android-14/arch-arm/usr/include/stdlib.h
+FILE 102 /s/clank/src/third_party/android_tools/ndk/platforms/android-14/arch-arm/usr/include/unistd.h
+FILE 103 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algo.h
+FILE 104 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.c
+FILE 105 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.h
+FILE 106 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_alloc.h
+FILE 107 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_codecvt.h
+FILE 108 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_construct.h
+FILE 109 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.c
+FILE 110 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.h
+FILE 111 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_function_base.h
+FILE 112 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iomanip.h
+FILE 113 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.c
+FILE 114 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.h
+FILE 115 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ios_base.h
+FILE 116 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.c
+FILE 117 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.h
+FILE 118 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator.h
+FILE 119 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator_base.h
+FILE 120 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_list.c
+FILE 121 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_list.h
+FILE 122 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_locale.h
+FILE 123 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_map.h
+FILE 124 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_new.h
+FILE 125 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.h
+FILE 126 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.c
+FILE 127 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.h
+FILE 128 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_ostreambuf_iterator.h
+FILE 129 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_pair.h
+FILE 130 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_relops_cont.h
+FILE 131 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_sstream.c
+FILE 132 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_sstream.h
+FILE 133 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.c
+FILE 134 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.h
+FILE 135 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string.c
+FILE 136 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string.h
+FILE 137 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_base.h
+FILE 138 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_io.c
+FILE 139 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_string_operators.h
+FILE 140 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_tree.c
+FILE 141 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_tree.h
+FILE 142 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_uninitialized.h
+FILE 143 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.c
+FILE 144 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.h
+FILE 145 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/char_traits.h
+FILE 146 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_list.h
+FILE 147 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_set.h
+FILE 148 /s/clank/src/third_party/android_tools/ndk/sources/cxx-stl/stlport/stlport/stl/pointers/_vector.h
+FILE 149 /s/ndk-andrewhsieh/build/toolchain/gcc-4.9/arm-linux-androideabi/thumb/libgcc/./unwind.h
+FILE 150 /s/ndk-andrewhsieh/build/toolchain/gcc-4.9/gcc/include/unwind-arm-common.h
+FILE 151 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/config/arm/bpabi.c
+FILE 152 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/config/arm/pr-support.c
+FILE 153 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/config/arm/unwind-arm.c
+FILE 154 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/libgcc2.c
+FILE 155 /s/ndk-toolchain/src/build/../gcc/gcc-4.9/libgcc/unwind-arm-common.inc
+FILE 156 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/include/unwind-arm.h
+FILE 157 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/call_unexpected.cc
+FILE 158 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/class_type_info.cc
+FILE 159 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/cxxabi.cc
+FILE 160 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/cxxabi_defines.h
+FILE 161 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/delete.cc
+FILE 162 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/dwarf_helper.cc
+FILE 163 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/dynamic_cast.cc
+FILE 164 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/exception.cc
+FILE 165 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/fatal_error.cc
+FILE 166 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/helper_func_internal.cc
+FILE 167 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/new.cc
+FILE 168 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/one_time_construction.cc
+FILE 169 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/personality.cc
+FILE 170 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/si_class_type_info.cc
+FILE 171 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/terminate.cc
+FILE 172 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/type_info.cc
+FILE 173 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/gabi++/src/vmi_class_type_info.cc
+FILE 174 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/_stdio_file.h
+FILE 175 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/allocators.cpp
+FILE 176 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/c_locale_dummy/c_locale_dummy.c
+FILE 177 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/codecvt.cpp
+FILE 178 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/collate.cpp
+FILE 179 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/ctype.cpp
+FILE 180 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/details/fstream_unistd.cpp
+FILE 181 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/dll_main.cpp
+FILE 182 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/fstream.cpp
+FILE 183 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/ios.cpp
+FILE 184 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/iostream.cpp
+FILE 185 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale.cpp
+FILE 186 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale_impl.cpp
+FILE 187 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/locale_impl.h
+FILE 188 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/messages.cpp
+FILE 189 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/monetary.cpp
+FILE 190 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_get.cpp
+FILE 191 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_get_float.cpp
+FILE 192 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_put.cpp
+FILE 193 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/num_put_float.cpp
+FILE 194 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/numpunct.cpp
+FILE 195 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/stdio_streambuf.cpp
+FILE 196 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/stdio_streambuf.h
+FILE 197 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/src/time_facets.cpp
+FILE 198 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algo.h
+FILE 199 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.c
+FILE 200 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_algobase.h
+FILE 201 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_alloc.h
+FILE 202 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_auto_ptr.h
+FILE 203 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_codecvt.h
+FILE 204 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_collate.h
+FILE 205 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_construct.h
+FILE 206 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ctype.h
+FILE 207 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.c
+FILE 208 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_fstream.h
+FILE 209 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_function.h
+FILE 210 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.c
+FILE 211 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios.h
+FILE 212 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ios_base.h
+FILE 213 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_iostream_string.h
+FILE 214 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_istream.h
+FILE 215 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_istreambuf_iterator.h
+FILE 216 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_iterator_base.h
+FILE 217 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_limits.c
+FILE 218 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_locale.h
+FILE 219 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_messages_facets.h
+FILE 220 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_monetary.c
+FILE 221 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_monetary.h
+FILE 222 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_new.h
+FILE 223 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_get.c
+FILE 224 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_get.h
+FILE 225 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.c
+FILE 226 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_num_put.h
+FILE 227 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_numpunct.h
+FILE 228 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ostream.c
+FILE 229 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_ostreambuf_iterator.h
+FILE 230 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_pair.h
+FILE 231 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_range_errors.c
+FILE 232 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h
+FILE 233 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.c
+FILE 234 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.c
+FILE 235 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_streambuf.h
+FILE 236 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string.c
+FILE 237 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string.h
+FILE 238 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string_base.h
+FILE 239 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_string_operators.h
+FILE 240 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_threads.h
+FILE 241 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_time_facets.c
+FILE 242 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_time_facets.h
+FILE 243 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_uninitialized.h
+FILE 244 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.c
+FILE 245 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/_vector.h
+FILE 246 /tmp/ndk-user/tmp/build-stlport/ndk/sources/cxx-stl/stlport/stlport/stl/char_traits.h
+FUNC c 2c 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+c 2 44 228
+e 2 43 228
+10 2 43 228
+12 2 44 228
+14 2 43 228
+16 4 44 228
+1a 2 59 211
+1c 2 44 228
+1e 8 59 211
+26 e 90 214
+34 4 90 214
+FUNC c 12 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+FUNC 13a40 e0 0 MinidumpWriter::WriteFile
+13a40 8 1101 26
+13a48 2 1102 26
+13a4a 2 1101 26
+13a4c 4 1102 26
+13a50 6 1103 26
+13a56 4 1104 26
+13a5a 2 100 22
+13a5c a 772 26
+13a66 2 1115 26
+13a68 2 772 26
+13a6a 2 1116 26
+13a6c 2 1133 26
+13a6e 2 1115 26
+13a70 2 1116 26
+13a72 12 1122 26
+13a84 4 1123 26
+13a88 4 1123 26
+13a8c 8 1123 26
+13a94 4 1125 26
+13a98 6 1137 26
+13a9e 4 1139 26
+13aa2 4 1142 26
+13aa6 4 161 33
+13aaa 2 1143 26
+13aac 4 161 33
+13ab0 4 1143 26
+13ab4 2 161 33
+13ab6 c 1143 26
+13ac2 4 1150 26
+13ac6 c 1155 26
+13ad2 4 1156 26
+13ad6 2 1145 26
+13ad8 4 1145 26
+13adc 8 176 33
+13ae4 a 1158 26
+13aee 2 1159 26
+13af0 2 1129 26
+13af2 2 1128 26
+13af4 2 1129 26
+13af6 4 1130 26
+13afa 2 1129 26
+13afc 2 1130 26
+13afe 2 100 22
+13b00 a 772 26
+13b0a 2 1131 26
+13b0c 4 1133 26
+13b10 8 1134 26
+13b18 8 1160 26
+FUNC 13b20 40 0 MinidumpWriter::WriteProcFile
+13b20 c 1212 26
+13b2c 2 1215 26
+13b2e 4 1212 26
+13b32 2 1212 26
+13b34 e 1215 26
+13b42 a 1217 26
+13b4c 14 1218 26
+FUNC 13b60 28 0 std::priv::_STLP_alloc_proxy<wchar_t*, wchar_t, std::allocator<wchar_t> >::allocate(unsigned int, unsigned int&)
+13b60 2 525 201
+13b62 26 343 201
+FUNC 13b88 6ac 0 _GLOBAL__sub_I__ZN40ExceptionHandlerTest_SimpleWithPath_Test10test_info_E
+13b88 4 1191 6
+13b8c 6 160 6
+13b92 6 160 6
+13b98 2 160 6
+13b9a 4 1191 6
+13b9e 4 484 85
+13ba2 2 1191 6
+13ba4 2 484 85
+13ba6 4 160 6
+13baa 4 484 85
+13bae 24 160 6
+13bd2 8 160 6
+13bda 6 170 6
+13be0 6 170 6
+13be6 2 170 6
+13be8 4 484 85
+13bec 4 170 6
+13bf0 2 484 85
+13bf2 2 170 6
+13bf4 4 484 85
+13bf8 12 170 6
+13c0a 8 170 6
+13c12 6 253 6
+13c18 6 253 6
+13c1e 2 253 6
+13c20 4 484 85
+13c24 4 253 6
+13c28 2 484 85
+13c2a 2 253 6
+13c2c 4 484 85
+13c30 12 253 6
+13c42 8 253 6
+13c4a 6 257 6
+13c50 6 257 6
+13c56 2 257 6
+13c58 4 484 85
+13c5c 4 257 6
+13c60 2 484 85
+13c62 2 257 6
+13c64 4 484 85
+13c68 12 257 6
+13c7a 8 257 6
+13c82 6 315 6
+13c88 6 315 6
+13c8e 2 315 6
+13c90 4 484 85
+13c94 4 315 6
+13c98 2 484 85
+13c9a 2 315 6
+13c9c 4 484 85
+13ca0 12 315 6
+13cb2 8 315 6
+13cba 6 327 6
+13cc0 6 327 6
+13cc6 2 327 6
+13cc8 4 484 85
+13ccc 4 327 6
+13cd0 2 484 85
+13cd2 2 327 6
+13cd4 4 484 85
+13cd8 12 327 6
+13cea 8 327 6
+13cf2 6 339 6
+13cf8 6 339 6
+13cfe 2 339 6
+13d00 4 484 85
+13d04 4 339 6
+13d08 2 484 85
+13d0a 2 339 6
+13d0c 4 484 85
+13d10 12 339 6
+13d22 8 339 6
+13d2a 6 351 6
+13d30 6 351 6
+13d36 2 351 6
+13d38 4 484 85
+13d3c 4 351 6
+13d40 2 484 85
+13d42 2 351 6
+13d44 4 484 85
+13d48 12 351 6
+13d5a 6 351 6
+13d60 6 363 6
+13d66 6 363 6
+13d6c 2 363 6
+13d6e 2 484 85
+13d70 2 363 6
+13d72 2 484 85
+13d74 2 363 6
+13d76 4 484 85
+13d7a 12 363 6
+13d8c 6 363 6
+13d92 6 380 6
+13d98 6 380 6
+13d9e 2 380 6
+13da0 2 484 85
+13da2 2 380 6
+13da4 2 484 85
+13da6 2 380 6
+13da8 4 484 85
+13dac 12 380 6
+13dbe 6 380 6
+13dc4 6 409 6
+13dca 6 409 6
+13dd0 2 409 6
+13dd2 2 484 85
+13dd4 2 409 6
+13dd6 2 484 85
+13dd8 2 409 6
+13dda 4 484 85
+13dde 12 409 6
+13df0 6 409 6
+13df6 6 425 6
+13dfc 6 425 6
+13e02 2 425 6
+13e04 2 484 85
+13e06 2 425 6
+13e08 2 484 85
+13e0a 2 425 6
+13e0c 4 484 85
+13e10 12 425 6
+13e22 6 425 6
+13e28 6 441 6
+13e2e 6 441 6
+13e34 2 441 6
+13e36 2 484 85
+13e38 2 441 6
+13e3a 2 484 85
+13e3c 2 441 6
+13e3e 4 484 85
+13e42 12 441 6
+13e54 6 441 6
+13e5a 6 457 6
+13e60 6 457 6
+13e66 2 457 6
+13e68 2 484 85
+13e6a 2 457 6
+13e6c 2 484 85
+13e6e 2 457 6
+13e70 4 484 85
+13e74 12 457 6
+13e86 6 457 6
+13e8c 6 487 6
+13e92 6 487 6
+13e98 2 487 6
+13e9a 2 484 85
+13e9c 2 487 6
+13e9e 2 484 85
+13ea0 2 487 6
+13ea2 4 484 85
+13ea6 12 487 6
+13eb8 6 487 6
+13ebe 6 579 6
+13ec4 6 579 6
+13eca 2 579 6
+13ecc 2 484 85
+13ece 2 579 6
+13ed0 2 484 85
+13ed2 2 579 6
+13ed4 4 484 85
+13ed8 12 579 6
+13eea 6 579 6
+13ef0 6 667 6
+13ef6 6 667 6
+13efc 2 667 6
+13efe 2 484 85
+13f00 2 667 6
+13f02 2 484 85
+13f04 2 667 6
+13f06 4 484 85
+13f0a 12 667 6
+13f1c 6 667 6
+13f22 6 760 6
+13f28 6 760 6
+13f2e 2 760 6
+13f30 2 484 85
+13f32 2 760 6
+13f34 2 484 85
+13f36 2 760 6
+13f38 4 484 85
+13f3c 12 760 6
+13f4e 6 760 6
+13f54 6 806 6
+13f5a 6 806 6
+13f60 2 806 6
+13f62 2 484 85
+13f64 2 806 6
+13f66 2 484 85
+13f68 2 806 6
+13f6a 4 484 85
+13f6e 12 806 6
+13f80 6 806 6
+13f86 6 926 6
+13f8c 6 926 6
+13f92 2 926 6
+13f94 2 484 85
+13f96 2 926 6
+13f98 2 484 85
+13f9a 2 926 6
+13f9c 4 484 85
+13fa0 12 926 6
+13fb2 6 926 6
+13fb8 6 1000 6
+13fbe 6 1000 6
+13fc4 2 1000 6
+13fc6 2 484 85
+13fc8 2 1000 6
+13fca 2 484 85
+13fcc 2 1000 6
+13fce 4 484 85
+13fd2 12 1000 6
+13fe4 6 1000 6
+13fea 6 1019 6
+13ff0 6 1019 6
+13ff6 2 1019 6
+13ff8 2 484 85
+13ffa 2 1019 6
+13ffc 2 484 85
+13ffe 2 1019 6
+14000 4 484 85
+14004 12 1019 6
+14016 6 1019 6
+1401c 6 1036 6
+14022 6 1036 6
+14028 2 1036 6
+1402a 2 484 85
+1402c 2 1036 6
+1402e 2 484 85
+14030 2 1036 6
+14032 4 484 85
+14036 12 1036 6
+14048 6 1036 6
+1404e 6 1068 6
+14054 6 1068 6
+1405a 2 1068 6
+1405c 2 484 85
+1405e 2 1068 6
+14060 2 484 85
+14062 2 1068 6
+14064 4 484 85
+14068 12 1068 6
+1407a 6 1068 6
+14080 6 1112 6
+14086 6 1112 6
+1408c 2 1112 6
+1408e 2 484 85
+14090 2 1112 6
+14092 2 484 85
+14094 2 1112 6
+14096 4 484 85
+1409a 12 1112 6
+140ac 6 1112 6
+140b2 6 1154 6
+140b8 6 1154 6
+140be 2 1154 6
+140c0 2 484 85
+140c2 2 1154 6
+140c4 2 484 85
+140c6 2 1154 6
+140c8 4 484 85
+140cc 12 1154 6
+140de 6 1154 6
+140e4 150 1191 6
+FUNC 14234 58 0 _GLOBAL__sub_I_microdump_writer_unittest.cc
+14234 2 132 11
+14236 6 56 11
+1423c 6 56 11
+14242 2 56 11
+14244 2 484 85
+14246 2 56 11
+14248 6 484 85
+1424e 1c 56 11
+1426a 6 56 11
+14270 1c 132 11
+FUNC 1428c 294 0 _GLOBAL__sub_I__ZN26CpuSetTest_EmptyCount_Test10test_info_E
+1428c 4 163 13
+14290 6 58 13
+14296 6 58 13
+1429c 2 58 13
+1429e 2 163 13
+142a0 2 484 85
+142a2 2 163 13
+142a4 2 484 85
+142a6 2 58 13
+142a8 4 484 85
+142ac 1e 58 13
+142ca 6 58 13
+142d0 6 63 13
+142d6 6 63 13
+142dc 2 63 13
+142de 2 484 85
+142e0 2 63 13
+142e2 2 484 85
+142e4 2 63 13
+142e6 4 484 85
+142ea 12 63 13
+142fc 6 63 13
+14302 6 72 13
+14308 6 72 13
+1430e 2 72 13
+14310 2 484 85
+14312 2 72 13
+14314 2 484 85
+14316 2 72 13
+14318 4 484 85
+1431c 12 72 13
+1432e 6 72 13
+14334 6 81 13
+1433a 6 81 13
+14340 2 81 13
+14342 2 484 85
+14344 2 81 13
+14346 2 484 85
+14348 2 81 13
+1434a 4 484 85
+1434e 12 81 13
+14360 6 81 13
+14366 6 90 13
+1436c 6 90 13
+14372 2 90 13
+14374 2 484 85
+14376 2 90 13
+14378 2 484 85
+1437a 2 90 13
+1437c 4 484 85
+14380 12 90 13
+14392 6 90 13
+14398 6 99 13
+1439e 6 99 13
+143a4 2 99 13
+143a6 2 484 85
+143a8 2 99 13
+143aa 2 484 85
+143ac 2 99 13
+143ae 4 484 85
+143b2 12 99 13
+143c4 6 99 13
+143ca 6 108 13
+143d0 6 108 13
+143d6 2 108 13
+143d8 2 484 85
+143da 2 108 13
+143dc 2 484 85
+143de 2 108 13
+143e0 4 484 85
+143e4 12 108 13
+143f6 6 108 13
+143fc 6 117 13
+14402 6 117 13
+14408 2 117 13
+1440a 2 484 85
+1440c 2 117 13
+1440e 2 484 85
+14410 2 117 13
+14412 4 484 85
+14416 12 117 13
+14428 6 117 13
+1442e 6 135 13
+14434 6 135 13
+1443a 2 135 13
+1443c 2 484 85
+1443e 2 135 13
+14440 2 484 85
+14442 2 135 13
+14444 4 484 85
+14448 12 135 13
+1445a 6 135 13
+14460 6 146 13
+14466 6 146 13
+1446c 2 146 13
+1446e 2 484 85
+14470 2 146 13
+14472 2 484 85
+14474 2 146 13
+14476 4 484 85
+1447a 12 146 13
+1448c 6 146 13
+14492 8e 163 13
+FUNC 14520 5c 0 _GLOBAL__sub_I__ZN39DirectoryReaderTest_CompareResults_Test10test_info_E
+14520 2 78 15
+14522 6 47 15
+14528 8 47 15
+14530 2 47 15
+14532 8 484 85
+1453a 1e 47 15
+14558 6 47 15
+1455e 1e 78 15
+FUNC 1457c 1dc 0 _GLOBAL__sub_I__ZN29LineReaderTest_EmptyFile_Test10test_info_E
+1457c 4 169 17
+14580 6 57 17
+14586 6 57 17
+1458c 2 57 17
+1458e 2 169 17
+14590 2 484 85
+14592 2 169 17
+14594 2 484 85
+14596 2 57 17
+14598 4 484 85
+1459c 1e 57 17
+145ba 6 57 17
+145c0 6 67 17
+145c6 6 67 17
+145cc 2 67 17
+145ce 2 484 85
+145d0 2 67 17
+145d2 2 484 85
+145d4 2 67 17
+145d6 4 484 85
+145da 12 67 17
+145ec 6 67 17
+145f2 6 83 17
+145f8 6 83 17
+145fe 2 83 17
+14600 2 484 85
+14602 2 83 17
+14604 2 484 85
+14606 2 83 17
+14608 4 484 85
+1460c 12 83 17
+1461e 6 83 17
+14624 6 99 17
+1462a 6 99 17
+14630 2 99 17
+14632 2 484 85
+14634 2 99 17
+14636 2 484 85
+14638 2 99 17
+1463a 4 484 85
+1463e 12 99 17
+14650 6 99 17
+14656 6 121 17
+1465c 6 121 17
+14662 2 121 17
+14664 2 484 85
+14666 2 121 17
+14668 2 484 85
+1466a 2 121 17
+1466c 4 484 85
+14670 12 121 17
+14682 6 121 17
+14688 6 143 17
+1468e 6 143 17
+14694 2 143 17
+14696 2 484 85
+14698 2 143 17
+1469a 2 484 85
+1469c 2 143 17
+1469e 4 484 85
+146a2 12 143 17
+146b4 6 143 17
+146ba 6 158 17
+146c0 6 158 17
+146c6 2 158 17
+146c8 2 484 85
+146ca 2 158 17
+146cc 2 484 85
+146ce 2 158 17
+146d0 4 484 85
+146d4 12 158 17
+146e6 6 158 17
+146ec 6c 169 17
+FUNC 14758 9c 0 _GLOBAL__sub_I__ZN38LinuxCoreDumperTest_BuildProcPath_Test10test_info_E
+14758 4 118 20
+1475c 6 42 20
+14762 8 42 20
+1476a 2 42 20
+1476c 8 484 85
+14774 20 42 20
+14794 6 42 20
+1479a 6 65 20
+147a0 8 65 20
+147a8 2 65 20
+147aa 4 484 85
+147ae 2 65 20
+147b0 4 484 85
+147b4 12 65 20
+147c6 6 65 20
+147cc 28 118 20
+FUNC 147f4 1d4 0 _GLOBAL__sub_I__ZN37LinuxPtraceDumperChildTest_Setup_Test10test_info_E
+147f4 4 463 25
+147f8 6 121 25
+147fe 2 121 25
+14800 2 463 25
+14802 2 484 85
+14804 2 463 25
+14806 2 484 85
+14808 14 121 25
+1481c 4 484 85
+14820 14 121 25
+14834 6 121 25
+1483a 6 125 25
+14840 2 125 25
+14842 2 484 85
+14844 2 125 25
+14846 2 484 85
+14848 2 125 25
+1484a 4 484 85
+1484e 12 125 25
+14860 6 125 25
+14866 6 134 25
+1486c 2 134 25
+1486e 2 484 85
+14870 2 134 25
+14872 2 484 85
+14874 2 134 25
+14876 4 484 85
+1487a 12 134 25
+1488c 6 134 25
+14892 6 226 25
+14898 2 226 25
+1489a 2 484 85
+1489c 2 226 25
+1489e 2 484 85
+148a0 2 226 25
+148a2 4 484 85
+148a6 16 226 25
+148bc 6 226 25
+148c2 6 246 25
+148c8 2 246 25
+148ca 2 484 85
+148cc 2 246 25
+148ce 2 484 85
+148d0 2 246 25
+148d2 4 484 85
+148d6 12 246 25
+148e8 6 246 25
+148ee 6 325 25
+148f4 2 325 25
+148f6 2 484 85
+148f8 2 325 25
+148fa 2 484 85
+148fc 2 325 25
+148fe 4 484 85
+14902 12 325 25
+14914 6 325 25
+1491a 6 364 25
+14920 6 364 25
+14926 2 364 25
+14928 2 484 85
+1492a 2 364 25
+1492c 2 484 85
+1492e 2 364 25
+14930 4 484 85
+14934 12 364 25
+14946 6 364 25
+1494c 7c 463 25
+FUNC 149c8 200 0 _GLOBAL__sub_I_minidump_writer_unittest.cc
+149c8 4 756 27
+149cc 6 67 27
+149d2 6 67 27
+149d8 2 67 27
+149da 2 484 85
+149dc 2 67 27
+149de 6 484 85
+149e4 1e 67 27
+14a02 6 67 27
+14a08 6 96 27
+14a0e 6 96 27
+14a14 2 96 27
+14a16 2 484 85
+14a18 2 96 27
+14a1a 6 484 85
+14a20 12 96 27
+14a32 6 96 27
+14a38 6 128 27
+14a3e 6 128 27
+14a44 2 128 27
+14a46 2 484 85
+14a48 2 128 27
+14a4a 6 484 85
+14a50 12 128 27
+14a62 6 128 27
+14a68 6 236 27
+14a6e 6 236 27
+14a74 2 236 27
+14a76 2 484 85
+14a78 2 236 27
+14a7a 6 484 85
+14a80 12 236 27
+14a92 6 236 27
+14a98 6 338 27
+14a9e 6 338 27
+14aa4 2 338 27
+14aa6 2 484 85
+14aa8 2 338 27
+14aaa 6 484 85
+14ab0 12 338 27
+14ac2 6 338 27
+14ac8 6 432 27
+14ace 6 432 27
+14ad4 2 432 27
+14ad6 2 484 85
+14ad8 2 432 27
+14ada 6 484 85
+14ae0 12 432 27
+14af2 6 432 27
+14af8 6 504 27
+14afe 6 504 27
+14b04 2 504 27
+14b06 2 484 85
+14b08 2 504 27
+14b0a 6 484 85
+14b10 12 504 27
+14b22 6 504 27
+14b28 6 583 27
+14b2e 6 583 27
+14b34 2 583 27
+14b36 2 484 85
+14b38 2 583 27
+14b3a 6 484 85
+14b40 12 583 27
+14b52 6 583 27
+14b58 70 756 27
+FUNC 14bc8 294 0 _GLOBAL__sub_I__ZN36ProcCpuInfoReaderTest_EmptyFile_Test10test_info_E
+14bc8 4 199 30
+14bcc 6 63 30
+14bd2 6 63 30
+14bd8 2 63 30
+14bda 2 199 30
+14bdc 2 484 85
+14bde 2 199 30
+14be0 2 484 85
+14be2 2 63 30
+14be4 4 484 85
+14be8 1e 63 30
+14c06 6 63 30
+14c0c 6 72 30
+14c12 6 72 30
+14c18 2 72 30
+14c1a 2 484 85
+14c1c 2 72 30
+14c1e 2 484 85
+14c20 2 72 30
+14c22 4 484 85
+14c26 12 72 30
+14c38 6 72 30
+14c3e 6 85 30
+14c44 6 85 30
+14c4a 2 85 30
+14c4c 2 484 85
+14c4e 2 85 30
+14c50 2 484 85
+14c52 2 85 30
+14c54 4 484 85
+14c58 12 85 30
+14c6a 6 85 30
+14c70 6 100 30
+14c76 6 100 30
+14c7c 2 100 30
+14c7e 2 484 85
+14c80 2 100 30
+14c82 2 484 85
+14c84 2 100 30
+14c86 4 484 85
+14c8a 12 100 30
+14c9c 6 100 30
+14ca2 6 117 30
+14ca8 6 117 30
+14cae 2 117 30
+14cb0 2 484 85
+14cb2 2 117 30
+14cb4 2 484 85
+14cb6 2 117 30
+14cb8 4 484 85
+14cbc 12 117 30
+14cce 6 117 30
+14cd4 6 130 30
+14cda 6 130 30
+14ce0 2 130 30
+14ce2 2 484 85
+14ce4 2 130 30
+14ce6 2 484 85
+14ce8 2 130 30
+14cea 4 484 85
+14cee 12 130 30
+14d00 6 130 30
+14d06 6 143 30
+14d0c 6 143 30
+14d12 2 143 30
+14d14 2 484 85
+14d16 2 143 30
+14d18 2 484 85
+14d1a 2 143 30
+14d1c 4 484 85
+14d20 12 143 30
+14d32 6 143 30
+14d38 6 156 30
+14d3e 6 156 30
+14d44 2 156 30
+14d46 2 484 85
+14d48 2 156 30
+14d4a 2 484 85
+14d4c 2 156 30
+14d4e 4 484 85
+14d52 12 156 30
+14d64 6 156 30
+14d6a 6 173 30
+14d70 6 173 30
+14d76 2 173 30
+14d78 2 484 85
+14d7a 2 173 30
+14d7c 2 484 85
+14d7e 2 173 30
+14d80 4 484 85
+14d84 12 173 30
+14d96 6 173 30
+14d9c 6 186 30
+14da2 6 186 30
+14da8 2 186 30
+14daa 2 484 85
+14dac 2 186 30
+14dae 2 484 85
+14db0 2 186 30
+14db2 4 484 85
+14db6 12 186 30
+14dc8 6 186 30
+14dce 8e 199 30
+FUNC 14e5c dc 0 _GLOBAL__sub_I__ZN39ElfCoreDumpTest_DefaultConstructor_Test10test_info_E
+14e5c 4 256 39
+14e60 6 52 39
+14e66 8 52 39
+14e6e 2 52 39
+14e70 8 484 85
+14e78 20 52 39
+14e98 6 52 39
+14e9e 6 62 39
+14ea4 8 62 39
+14eac 2 62 39
+14eae 4 484 85
+14eb2 2 62 39
+14eb4 4 484 85
+14eb8 12 62 39
+14eca 6 62 39
+14ed0 6 130 39
+14ed6 8 130 39
+14ede 2 130 39
+14ee0 4 484 85
+14ee4 2 130 39
+14ee6 4 484 85
+14eea 12 130 39
+14efc 6 130 39
+14f02 36 256 39
+FUNC 14f38 84 0 _GLOBAL__sub_I_gtest_FileIDTest_ElfClass_registered_
+14f38 2 263 43
+14f3a 18 127 43
+14f52 2 151 43
+14f54 4 127 43
+14f58 e 151 43
+14f66 2 183 43
+14f68 4 151 43
+14f6c e 183 43
+14f7a 2 220 43
+14f7c 4 183 43
+14f80 3c 220 43
+FUNC 14fbc 294 0 _GLOBAL__sub_I__ZN32LinuxLibcSupportTest_strlen_Test10test_info_E
+14fbc 4 213 46
+14fc0 6 37 46
+14fc6 6 37 46
+14fcc 2 37 46
+14fce 2 213 46
+14fd0 2 484 85
+14fd2 2 213 46
+14fd4 2 484 85
+14fd6 2 37 46
+14fd8 4 484 85
+14fdc 1e 37 46
+14ffa 6 37 46
+15000 6 46 46
+15006 6 46 46
+1500c 2 46 46
+1500e 2 484 85
+15010 2 46 46
+15012 2 484 85
+15014 2 46 46
+15016 4 484 85
+1501a 12 46 46
+1502c 6 46 46
+15032 6 71 46
+15038 6 71 46
+1503e 2 71 46
+15040 2 484 85
+15042 2 71 46
+15044 2 484 85
+15046 2 71 46
+15048 4 484 85
+1504c 12 71 46
+1505e 6 71 46
+15064 6 92 46
+1506a 6 92 46
+15070 2 92 46
+15072 2 484 85
+15074 2 92 46
+15076 2 484 85
+15078 2 92 46
+1507a 4 484 85
+1507e 12 92 46
+15090 6 92 46
+15096 6 106 46
+1509c 6 106 46
+150a2 2 106 46
+150a4 2 484 85
+150a6 2 106 46
+150a8 2 484 85
+150aa 2 106 46
+150ac 4 484 85
+150b0 12 106 46
+150c2 6 106 46
+150c8 6 129 46
+150ce 6 129 46
+150d4 2 129 46
+150d6 2 484 85
+150d8 2 129 46
+150da 2 484 85
+150dc 2 129 46
+150de 4 484 85
+150e2 12 129 46
+150f4 6 129 46
+150fa 6 143 46
+15100 6 143 46
+15106 2 143 46
+15108 2 484 85
+1510a 2 143 46
+1510c 2 484 85
+1510e 2 143 46
+15110 4 484 85
+15114 12 143 46
+15126 6 143 46
+1512c 6 157 46
+15132 6 157 46
+15138 2 157 46
+1513a 2 484 85
+1513c 2 157 46
+1513e 2 484 85
+15140 2 157 46
+15142 4 484 85
+15146 12 157 46
+15158 6 157 46
+1515e 6 169 46
+15164 6 169 46
+1516a 2 169 46
+1516c 2 484 85
+1516e 2 169 46
+15170 2 484 85
+15172 2 169 46
+15174 4 484 85
+15178 12 169 46
+1518a 6 169 46
+15190 6 194 46
+15196 6 194 46
+1519c 2 194 46
+1519e 2 484 85
+151a0 2 194 46
+151a2 2 484 85
+151a4 2 194 46
+151a6 4 484 85
+151aa 12 194 46
+151bc 6 194 46
+151c2 8e 213 46
+FUNC 15250 1a4 0 _GLOBAL__sub_I__ZN28PageAllocatorTest_Setup_Test10test_info_E
+15250 6 97 56
+15256 6 39 56
+1525c 6 39 56
+15262 2 39 56
+15264 2 97 56
+15266 2 484 85
+15268 2 97 56
+1526a 2 484 85
+1526c 2 39 56
+1526e 4 484 85
+15272 22 39 56
+15294 6 39 56
+1529a 6 43 56
+152a0 6 43 56
+152a6 2 43 56
+152a8 2 484 85
+152aa 2 43 56
+152ac 2 484 85
+152ae 2 43 56
+152b0 4 484 85
+152b4 12 43 56
+152c6 6 43 56
+152cc 6 53 56
+152d2 6 53 56
+152d8 2 53 56
+152da 2 484 85
+152dc 2 53 56
+152de 2 484 85
+152e0 2 53 56
+152e2 4 484 85
+152e6 12 53 56
+152f8 6 53 56
+152fe 6 69 56
+15304 6 69 56
+1530a 2 69 56
+1530c 2 484 85
+1530e 2 69 56
+15310 6 484 85
+15316 16 69 56
+1532c 6 69 56
+15332 6 76 56
+15338 6 76 56
+1533e 2 76 56
+15340 2 484 85
+15342 2 76 56
+15344 2 484 85
+15346 2 76 56
+15348 4 484 85
+1534c 12 76 56
+1535e 6 76 56
+15364 6 91 56
+1536a 6 91 56
+15370 2 91 56
+15372 2 484 85
+15374 2 91 56
+15376 2 484 85
+15378 2 91 56
+1537a 4 484 85
+1537e 12 91 56
+15390 6 91 56
+15396 5e 97 56
+FUNC 153f4 1dc 0 _GLOBAL__sub_I__ZN15google_breakpad31NonAllocatingMapTest_Entry_Test10test_info_E
+153f4 4 308 59
+153f8 6 35 59
+153fe 6 35 59
+15404 2 35 59
+15406 2 308 59
+15408 2 484 85
+1540a 2 308 59
+1540c 2 484 85
+1540e 2 35 59
+15410 4 484 85
+15414 1e 35 59
+15432 6 35 59
+15438 6 63 59
+1543e 6 63 59
+15444 2 63 59
+15446 2 484 85
+15448 2 63 59
+1544a 2 484 85
+1544c 2 63 59
+1544e 4 484 85
+15452 12 63 59
+15464 6 63 59
+1546a 6 92 59
+15470 6 92 59
+15476 2 92 59
+15478 2 484 85
+1547a 2 92 59
+1547c 2 484 85
+1547e 2 92 59
+15480 4 484 85
+15484 12 92 59
+15496 6 92 59
+1549c 6 127 59
+154a2 6 127 59
+154a8 2 127 59
+154aa 2 484 85
+154ac 2 127 59
+154ae 2 484 85
+154b0 2 127 59
+154b2 4 484 85
+154b6 12 127 59
+154c8 6 127 59
+154ce 6 228 59
+154d4 6 228 59
+154da 2 228 59
+154dc 2 484 85
+154de 2 228 59
+154e0 2 484 85
+154e2 2 228 59
+154e4 4 484 85
+154e8 12 228 59
+154fa 6 228 59
+15500 6 253 59
+15506 6 253 59
+1550c 2 253 59
+1550e 2 484 85
+15510 2 253 59
+15512 2 484 85
+15514 2 253 59
+15516 4 484 85
+1551a 12 253 59
+1552c 6 253 59
+15532 6 282 59
+15538 6 282 59
+1553e 2 282 59
+15540 2 484 85
+15542 2 282 59
+15544 2 484 85
+15546 2 282 59
+15548 4 484 85
+1554c 12 282 59
+1555e 6 282 59
+15564 6c 308 59
+FUNC 155d0 300 0 _GLOBAL__sub_I__ZN47MinidumpMemoryRangeTest_DefaultConstructor_Test10test_info_E
+155d0 4 258 78
+155d4 a 90 78
+155de 2 78 78
+155e0 2 80 78
+155e2 6 90 78
+155e8 4 79 78
+155ec 4 81 78
+155f0 2 82 78
+155f2 8 90 78
+155fa 6 95 78
+15600 6 95 78
+15606 2 95 78
+15608 2 258 78
+1560a 2 484 85
+1560c 2 258 78
+1560e 2 484 85
+15610 2 95 78
+15612 4 484 85
+15616 1e 95 78
+15634 6 95 78
+1563a 6 101 78
+15640 6 101 78
+15646 2 101 78
+15648 2 484 85
+1564a 2 101 78
+1564c 2 484 85
+1564e 2 101 78
+15650 4 484 85
+15654 12 101 78
+15666 6 101 78
+1566c 6 107 78
+15672 6 107 78
+15678 2 107 78
+1567a 2 484 85
+1567c 2 107 78
+1567e 2 484 85
+15680 2 107 78
+15682 4 484 85
+15686 12 107 78
+15698 6 107 78
+1569e 6 122 78
+156a4 6 122 78
+156aa 2 122 78
+156ac 2 484 85
+156ae 2 122 78
+156b0 2 484 85
+156b2 2 122 78
+156b4 4 484 85
+156b8 12 122 78
+156ca 6 122 78
+156d0 6 133 78
+156d6 6 133 78
+156dc 2 133 78
+156de 2 484 85
+156e0 2 133 78
+156e2 2 484 85
+156e4 2 133 78
+156e6 4 484 85
+156ea 12 133 78
+156fc 6 133 78
+15702 6 140 78
+15708 6 140 78
+1570e 2 140 78
+15710 2 484 85
+15712 2 140 78
+15714 2 484 85
+15716 2 140 78
+15718 4 484 85
+1571c 12 140 78
+1572e 6 140 78
+15734 6 165 78
+1573a 6 165 78
+15740 2 165 78
+15742 2 484 85
+15744 2 165 78
+15746 2 484 85
+15748 2 165 78
+1574a 4 484 85
+1574e 12 165 78
+15760 6 165 78
+15766 6 193 78
+1576c 6 193 78
+15772 2 193 78
+15774 2 484 85
+15776 2 193 78
+15778 2 484 85
+1577a 2 193 78
+1577c 4 484 85
+15780 12 193 78
+15792 6 193 78
+15798 6 201 78
+1579e 6 201 78
+157a4 2 201 78
+157a6 2 484 85
+157a8 2 201 78
+157aa 2 484 85
+157ac 2 201 78
+157ae 4 484 85
+157b2 12 201 78
+157c4 6 201 78
+157ca 6 216 78
+157d0 6 216 78
+157d6 2 216 78
+157d8 2 484 85
+157da 2 216 78
+157dc 2 484 85
+157de 2 216 78
+157e0 4 484 85
+157e4 12 216 78
+157f6 6 216 78
+157fc 6 224 78
+15802 6 224 78
+15808 2 224 78
+1580a 2 484 85
+1580c 2 224 78
+1580e 2 484 85
+15810 2 224 78
+15812 4 484 85
+15816 12 224 78
+15828 6 224 78
+1582e a2 258 78
+FUNC 158d0 9c 0 _GLOBAL__sub_I__ZN32AndroidUContext_GRegsOffset_Test10test_info_E
+158d0 4 186 34
+158d4 6 50 34
+158da 8 50 34
+158e2 2 50 34
+158e4 8 484 85
+158ec 20 50 34
+1590c 6 50 34
+15912 6 183 34
+15918 8 183 34
+15920 2 183 34
+15922 4 484 85
+15926 2 183 34
+15928 4 484 85
+1592c 12 183 34
+1593e 6 183 34
+15944 28 186 34
+FUNC 1596c 1e0 0 _GLOBAL__sub_I_gtest.cc
+1596c 4 5291 95
+15970 c 193 95
+1597c 2 198 95
+1597e 4 193 95
+15982 2 198 95
+15984 2 209 95
+15986 8 198 95
+1598e 2 203 95
+15990 4 198 95
+15994 2 203 95
+15996 2 209 95
+15998 8 203 95
+159a0 2 209 95
+159a2 4 203 95
+159a6 a 209 95
+159b0 2 209 95
+159b2 4 209 95
+159b6 4 209 95
+159ba 2 209 95
+159bc 8 209 95
+159c4 a 209 95
+159ce c 217 95
+159da 2 217 95
+159dc 2 217 95
+159de a 217 95
+159e8 6 217 95
+159ee 2 229 95
+159f0 4 217 95
+159f4 c 229 95
+15a00 4 229 95
+15a04 2 229 95
+15a06 a 229 95
+15a10 a 229 95
+15a1a c 241 95
+15a26 2 247 95
+15a28 4 241 95
+15a2c a 247 95
+15a36 2 253 95
+15a38 4 247 95
+15a3c a 253 95
+15a46 2 264 95
+15a48 4 253 95
+15a4c a 264 95
+15a56 2 270 95
+15a58 4 264 95
+15a5c a 270 95
+15a66 2 276 95
+15a68 4 270 95
+15a6c 2 276 95
+15a6e 2 276 95
+15a70 6 276 95
+15a76 2 276 95
+15a78 2 276 95
+15a7a 8 276 95
+15a82 a 276 95
+15a8c a 283 95
+15a96 2 377 95
+15a98 2 283 95
+15a9a 2 377 95
+15a9c 4 283 95
+15aa0 8 377 95
+15aa8 a 377 95
+15ab2 a 608 95
+15abc 90 5291 95
+FUNC 15b4c a8 0 _GLOBAL__sub_I_gtest_death_test.cc
+15b4c 2 1346 89
+15b4e c 85 89
+15b5a 2 85 89
+15b5c 4 85 89
+15b60 4 85 89
+15b64 4 85 89
+15b68 2 85 89
+15b6a 8 85 89
+15b72 a 85 89
+15b7c a 94 89
+15b86 2 107 89
+15b88 2 94 89
+15b8a 2 107 89
+15b8c 2 94 89
+15b8e 4 107 89
+15b92 2 120 137
+15b94 2 94 89
+15b96 8 107 89
+15b9e 2 120 137
+15ba0 a 107 89
+15baa 2 124 137
+15bac 2 120 137
+15bae 2 481 106
+15bb0 6 124 137
+15bb6 4 101 108
+15bba 2 359 89
+15bbc 2 101 108
+15bbe 8 359 89
+15bc6 2e 1346 89
+FUNC 15bf4 24 0 _GLOBAL__sub_I_gtest_port.cc
+15bf4 4 67 144
+15bf8 4 1057 92
+15bfc 6 67 144
+15c02 2 481 106
+15c04 14 1057 92
+FUNC 15c18 2c 0 main
+15c18 2 34 96
+15c1a 8 34 96
+15c22 8 35 96
+15c2a 8 36 96
+15c32 4 2326 82
+15c36 4 2326 82
+15c3a a 38 96
+FUNC 15c44 70 0 _GLOBAL__sub_I_cxxabi.cc
+15c44 4 210 159
+15c48 2 463 159
+15c4a c 210 159
+15c56 4 104 159
+15c5a 2 108 159
+15c5c 2 104 159
+15c5e 4 108 159
+15c62 2 104 159
+15c64 6 105 159
+15c6a 6 106 159
+15c70 4 108 159
+15c74 a 260 159
+15c7e 2 109 159
+15c80 4 260 159
+15c84 2 110 159
+15c86 4 463 159
+15c8a 4 260 159
+15c8e 26 211 159
+FUNC 15cb4 30 0 _GLOBAL__sub_I_locale_impl.cpp
+15cb4 2 764 186
+15cb6 18 621 186
+15cce 4 764 186
+15cd2 12 621 186
+FUNC 15ce4 30 0 _GLOBAL__sub_I_allocators.cpp
+15ce4 2 1119 175
+15ce6 c 340 240
+15cf2 c 128 175
+15cfe 4 1119 175
+15d02 12 128 175
+FUNC 15dc4 2 0 testing::Test::SetUpTestCase
+15dc4 2 389 82
+FUNC 15dc6 2 0 testing::Test::TearDownTestCase
+15dc6 2 397 82
+FUNC 15dc8 4 0 __cxxabiv1::__class_type_info::code() const
+15dc8 4 153 160
+FUNC 15dc8 4 0 google_breakpad::LinuxPtraceDumper::IsPostMortem
+15dc8 4 275 23
+FUNC 15dc8 4 0 std::basic_streambuf<char, std::char_traits<char> >::showmanyc
+15dc8 4 176 133
+FUNC 15dc8 4 0 std::basic_streambuf<char, std::char_traits<char> >::sync
+FUNC 15dc8 4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::showmanyc()
+FUNC 15dc8 4 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::sync()
+15dc8 4 184 234
+FUNC 15dc8 4 0 std::moneypunct<char, false>::do_frac_digits() const
+FUNC 15dc8 4 0 std::moneypunct<char, true>::do_frac_digits() const
+FUNC 15dc8 4 0 std::moneypunct<wchar_t, false>::do_frac_digits() const
+15dc8 4 111 189
+FUNC 15dc8 4 0 std::moneypunct<wchar_t, true>::do_frac_digits() const
+FUNC 15dc8 4 0 std::priv::stdio_istreambuf::showmanyc()
+15dc8 4 154 195
+FUNC 15dc8 4 0 testing::Test::Setup
+FUNC 15dc8 4 0 testing::internal::GetThreadCount
+15dc8 4 133 92
+FUNC 15dcc 4 0 DoneCallbackReturnFalse
+15dcc 4 267 6
+FUNC 15dd0 4 0 DoneCallbackReturnTrue
+15dd0 4 273 6
+FUNC 15dd4 4 0 FilterCallbackReturnFalse
+15dd4 4 284 6
+FUNC 15dd8 4 0 FilterCallbackReturnTrue
+15dd8 4 288 6
+FUNC 15ddc 6 0 std::basic_streambuf<char, std::char_traits<char> >::overflow
+FUNC 15ddc 6 0 std::basic_streambuf<char, std::char_traits<char> >::pbackfail
+15ddc 6 152 133
+FUNC 15ddc 6 0 std::basic_streambuf<char, std::char_traits<char> >::underflow
+FUNC 15de2 2 0 google_breakpad::::CrashGenerationClientImpl::~CrashGenerationClientImpl
+15de2 2 49 0
+FUNC 15de2 2 0 google_breakpad::MinidumpObject::~MinidumpObject
+15de2 2 180 133
+FUNC 15de2 2 0 google_breakpad::SeccompUnwinder::PopSeccompStackFrame
+15de2 2 41 1
+FUNC 15de2 2 0 std::basic_streambuf<char, std::char_traits<char> >::imbue
+FUNC 15de2 2 0 std::basic_streambuf<char, std::char_traits<char> >::setbuf
+FUNC 15de2 2 0 testing::Test::SetUp
+FUNC 15de2 2 0 testing::Test::TearDown
+FUNC 15de2 2 0 testing::internal::DefaultDeathTestFactory::~DefaultDeathTestFactory
+15de2 2 148 83
+FUNC 15de2 2 0 testing::internal::DefaultGlobalTestPartResultReporter::~DefaultGlobalTestPartResultReporter
+FUNC 15de2 2 0 testing::internal::DefaultPerThreadTestPartResultReporter::~DefaultPerThreadTestPartResultReporter
+FUNC 15de2 2 0 testing::internal::IsTrue
+FUNC 15de2 2 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsSetUpEnd
+FUNC 15de2 2 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsTearDownEnd
+FUNC 15de2 2 0 testing::internal::PrettyUnitTestResultPrinter::OnTestProgramEnd
+FUNC 15de2 2 0 testing::internal::PrettyUnitTestResultPrinter::OnTestProgramStart
+FUNC 15de2 2 0 testing::internal::PrettyUnitTestResultPrinter::~PrettyUnitTestResultPrinter
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::~TestFactoryImpl
+15de2 2 484 85
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::~TestFactoryImpl
+FUNC 15de2 2 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::ValueHolder::~ValueHolder
+15de2 2 4924 95
+FUNC 15de4 ac 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::seekoff
+15de4 2 299 131
+15de6 6 303 131
+15dec 4 305 131
+15df0 4 306 131
+15df4 2 308 131
+15df6 4 308 131
+15dfa 4 311 131
+15dfe 4 311 131
+15e02 4 311 131
+15e06 8 315 131
+15e0e 6 400 136
+15e14 2 332 131
+15e16 4 334 131
+15e1a 2 335 131
+15e1c 2 337 131
+15e1e 4 335 131
+15e22 2 337 131
+15e24 8 89 145
+15e2c 4 337 131
+15e30 2 339 131
+15e32 2 94 134
+15e34 2 343 131
+15e36 8 89 145
+15e3e 2 323 131
+15e40 6 323 131
+15e46 4 324 131
+15e4a 4 332 131
+15e4e 4 323 131
+15e52 4 324 131
+15e56 2 332 131
+15e58 6 343 131
+15e5e 2 344 131
+15e60 2 346 131
+15e62 4 344 131
+15e66 2 346 131
+15e68 4 346 131
+15e6c 6 115 134
+15e72 4 315 131
+15e76 6 317 131
+15e7c 6 344 131
+15e82 e 315 131
+FUNC 15e90 9e 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::seekpos
+15e90 4 357 131
+15e94 2 357 131
+15e96 4 359 131
+15e9a 2 357 131
+15e9c 2 359 131
+15e9e 4 361 131
+15ea2 6 357 131
+15ea8 4 362 131
+15eac 6 364 131
+15eb2 2 364 131
+15eb4 c 89 145
+15ec0 6 367 131
+15ec6 6 367 131
+15ecc a 114 145
+15ed6 2 104 145
+15ed8 6 372 131
+15ede 6 373 131
+15ee4 a 373 131
+15eee 2 378 131
+15ef0 8 379 131
+15ef8 2 400 136
+15efa 4 379 131
+15efe 2 115 134
+15f00 2 117 134
+15f02 2 119 134
+15f04 2 115 134
+15f06 a 386 131
+15f10 2 375 131
+15f12 2 94 134
+15f14 6 378 131
+15f1a 4 367 131
+15f1e 6 114 145
+15f24 4 104 145
+15f28 6 387 131
+FUNC 15f2e 10 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::underflow
+15f2e 2 96 131
+15f30 4 99 131
+15f34 4 223 145
+15f38 4 99 131
+15f3c 2 100 131
+FUNC 15f3e 16 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::uflow
+15f3e 4 105 131
+15f42 4 106 131
+15f46 6 223 145
+15f4c 4 112 131
+15f50 2 91 134
+15f52 2 113 131
+FUNC 15f54 3e 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::pbackfail
+15f54 4 117 131
+15f58 6 118 131
+15f5e 4 119 131
+15f62 4 120 131
+15f66 2 220 145
+15f68 4 120 131
+15f6c 6 91 134
+15f72 6 124 131
+15f78 4 91 134
+15f7c 4 126 131
+15f80 4 127 131
+15f84 4 91 134
+15f88 4 182 145
+15f8c 4 138 131
+15f90 2 139 131
+FUNC 15f92 c 0 std::basic_streambuf<char, std::char_traits<char> >::seekoff
+15f92 a 89 145
+15f9c 2 195 133
+FUNC 15f92 c 0 std::basic_streambuf<char, std::char_traits<char> >::seekoff(long, int, int)
+15f92 a 89 246
+15f9c 2 195 234
+FUNC 15f9e 1a 0 std::basic_streambuf<char, std::char_traits<char> >::seekpos
+15f9e 2 188 133
+15fa0 8 188 133
+15fa8 a 89 145
+15fb2 6 189 133
+FUNC 15fb8 18 0 std::basic_streambuf<char, std::char_traits<char> >::uflow
+15fb8 2 162 133
+15fba 2 163 133
+15fbc 2 162 133
+15fbe 4 163 133
+15fc2 2 165 133
+15fc4 8 165 133
+15fcc 2 223 145
+15fce 2 166 133
+FUNC 15fb8 18 0 std::basic_streambuf<char, std::char_traits<char> >::uflow()
+15fb8 2 165 234
+15fba 2 162 234
+15fbc 2 162 234
+15fbe 8 165 234
+15fc6 6 165 234
+15fcc 2 223 246
+15fce 2 166 234
+FUNC 15fd0 c 0 google_breakpad::::CrashGenerationClientImpl::~CrashGenerationClientImpl
+15fd0 2 49 0
+15fd2 2 49 0
+15fd4 4 49 0
+15fd8 4 49 0
+FUNC 15fd0 c 0 google_breakpad::MinidumpObject::~MinidumpObject
+15fd0 2 114 65
+15fd2 2 114 65
+15fd4 4 114 65
+15fd8 4 114 65
+FUNC 15fd0 c 0 testing::internal::DefaultDeathTestFactory::~DefaultDeathTestFactory
+15fd0 2 148 83
+15fd2 2 148 83
+15fd4 4 148 83
+15fd8 4 148 83
+FUNC 15fd0 c 0 testing::internal::DefaultGlobalTestPartResultReporter::~DefaultGlobalTestPartResultReporter
+FUNC 15fd0 c 0 testing::internal::DefaultPerThreadTestPartResultReporter::~DefaultPerThreadTestPartResultReporter
+15fd0 2 2017 87
+15fd2 2 2979 95
+15fd4 4 490 91
+15fd8 4 2979 95
+FUNC 15fd0 c 0 testing::internal::PrettyUnitTestResultPrinter::~PrettyUnitTestResultPrinter
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::~TestFactoryImpl
+FUNC 15fd0 c 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::~TestFactoryImpl
+15fd0 2 484 85
+15fd2 2 484 85
+15fd4 4 484 85
+15fd8 4 484 85
+FUNC 15fd0 c 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::ValueHolder::~ValueHolder
+FUNC 15fdc 54 0 std::basic_streambuf<char, std::char_traits<char> >::xsputn
+15fdc 4 84 133
+15fe0 6 84 133
+15fe6 2 86 133
+15fe8 4 89 133
+15fec 8 90 133
+15ff4 c 92 133
+16000 2 172 145
+16002 8 172 145
+1600a 2 96 133
+1600c 2 94 133
+1600e 2 95 133
+16010 6 96 133
+16016 2 100 133
+16018 8 100 133
+16020 4 99 133
+16024 2 101 133
+16026 4 102 133
+1602a 6 108 133
+FUNC 16030 4c 0 std::basic_streambuf<char, std::char_traits<char> >::_M_xsputnc
+16030 4 112 133
+16034 6 112 133
+1603a 2 114 133
+1603c 4 117 133
+16040 8 118 133
+16048 a 120 133
+16052 8 235 145
+1605a 2 123 133
+1605c 2 122 133
+1605e 6 123 133
+16064 2 127 133
+16066 8 127 133
+1606e 4 126 133
+16072 4 128 133
+16076 6 133 133
+FUNC 1607c 1c 0 std::basic_streambuf<char, std::char_traits<char> >::~basic_streambuf
+1607c 4 40 133
+16080 4 41 133
+16084 2 40 133
+16086 12 41 133
+FUNC 16098 12 0 std::basic_streambuf<char, std::char_traits<char> >::~basic_streambuf
+16098 2 40 133
+1609a 2 40 133
+1609c 4 41 133
+160a0 6 41 133
+160a6 4 41 133
+FUNC 160ac 1c 0 std::basic_ios<char, std::char_traits<char> >::~basic_ios
+160ac 4 59 114
+160b0 18 59 114
+FUNC 160c8 12 0 std::basic_ios<char, std::char_traits<char> >::~basic_ios
+160c8 2 59 114
+160ca 6 59 114
+160d0 6 59 114
+160d6 4 59 114
+FUNC 160dc 2c 0 InstallRaiseSIGKILL
+160dc 2 297 6
+160de a 299 6
+160e8 2 300 6
+160ea 2 301 6
+160ec 2 300 6
+160ee 4 301 6
+160f2 2 300 6
+160f4 4 301 6
+160f8 10 302 6
+FUNC 16108 6 0 RaiseSIGKILL
+16108 6 294 6
+FUNC 1610e c 0 DoneCallbackRaiseSIGKILL
+1610e 2 277 6
+16110 6 278 6
+16116 4 280 6
+FUNC 1611c 18 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::~ExceptionHandlerTest_WriteMinidumpForChild_Test
+1611c 2 1154 6
+1611e 16 1154 6
+FUNC 16134 12 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::~ExceptionHandlerTest_WriteMinidumpForChild_Test
+16134 2 1154 6
+16136 6 1154 6
+1613c 6 1154 6
+16142 4 1154 6
+FUNC 16148 18 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::~ExceptionHandlerTest_AdditionalMemoryRemove_Test
+16148 2 1112 6
+1614a 16 1112 6
+FUNC 16160 12 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::~ExceptionHandlerTest_AdditionalMemoryRemove_Test
+16160 2 1112 6
+16162 6 1112 6
+16168 6 1112 6
+1616e 4 1112 6
+FUNC 16174 18 0 ExceptionHandlerTest_AdditionalMemory_Test::~ExceptionHandlerTest_AdditionalMemory_Test
+16174 2 1068 6
+16176 16 1068 6
+FUNC 1618c 12 0 ExceptionHandlerTest_AdditionalMemory_Test::~ExceptionHandlerTest_AdditionalMemory_Test
+1618c 2 1068 6
+1618e 6 1068 6
+16194 6 1068 6
+1619a 4 1068 6
+FUNC 161a0 18 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test
+161a0 2 1036 6
+161a2 16 1036 6
+FUNC 161b8 12 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test
+161b8 2 1036 6
+161ba 6 1036 6
+161c0 6 1036 6
+161c6 4 1036 6
+FUNC 161cc 18 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test
+161cc 2 1019 6
+161ce 16 1019 6
+FUNC 161e4 12 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::~ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test
+161e4 2 1019 6
+161e6 6 1019 6
+161ec 6 1019 6
+161f2 4 1019 6
+FUNC 161f8 18 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::~ExceptionHandlerTest_WriteMinidumpExceptionStream_Test
+161f8 2 1000 6
+161fa 16 1000 6
+FUNC 16210 12 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::~ExceptionHandlerTest_WriteMinidumpExceptionStream_Test
+16210 2 1000 6
+16212 6 1000 6
+16218 6 1000 6
+1621e 4 1000 6
+FUNC 16224 18 0 ExceptionHandlerTest_ExternalDumper_Test::~ExceptionHandlerTest_ExternalDumper_Test
+16224 2 926 6
+16226 16 926 6
+FUNC 1623c 12 0 ExceptionHandlerTest_ExternalDumper_Test::~ExceptionHandlerTest_ExternalDumper_Test
+1623c 2 926 6
+1623e 6 926 6
+16244 6 926 6
+1624a 4 926 6
+FUNC 16250 18 0 ExceptionHandlerTest_ModuleInfo_Test::~ExceptionHandlerTest_ModuleInfo_Test
+16250 2 806 6
+16252 16 806 6
+FUNC 16268 12 0 ExceptionHandlerTest_ModuleInfo_Test::~ExceptionHandlerTest_ModuleInfo_Test
+16268 2 806 6
+1626a 6 806 6
+16270 6 806 6
+16276 4 806 6
+FUNC 1627c 18 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::~ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test
+1627c 2 760 6
+1627e 16 760 6
+FUNC 16294 12 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::~ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test
+16294 2 760 6
+16296 6 760 6
+1629c 6 760 6
+162a2 4 760 6
+FUNC 162a8 18 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test
+162a8 2 667 6
+162aa 16 667 6
+FUNC 162c0 12 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test
+162c0 2 667 6
+162c2 6 667 6
+162c8 6 667 6
+162ce 4 667 6
+FUNC 162d4 18 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test
+162d4 2 579 6
+162d6 16 579 6
+FUNC 162ec 12 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::~ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test
+162ec 2 579 6
+162ee 6 579 6
+162f4 6 579 6
+162fa 4 579 6
+FUNC 16300 18 0 ExceptionHandlerTest_InstructionPointerMemory_Test::~ExceptionHandlerTest_InstructionPointerMemory_Test
+16300 2 487 6
+16302 16 487 6
+FUNC 16318 12 0 ExceptionHandlerTest_InstructionPointerMemory_Test::~ExceptionHandlerTest_InstructionPointerMemory_Test
+16318 2 487 6
+1631a 6 487 6
+16320 6 487 6
+16326 4 487 6
+FUNC 1632c 18 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::~ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test
+1632c 2 457 6
+1632e 16 457 6
+FUNC 16344 12 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::~ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test
+16344 2 457 6
+16346 6 457 6
+1634c 6 457 6
+16352 4 457 6
+FUNC 16358 18 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::~ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test
+16358 2 441 6
+1635a 16 441 6
+FUNC 16370 12 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::~ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test
+16370 2 441 6
+16372 6 441 6
+16378 6 441 6
+1637e 4 441 6
+FUNC 16384 18 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::~ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test
+16384 2 425 6
+16386 16 425 6
+FUNC 1639c 12 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::~ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test
+1639c 2 425 6
+1639e 6 425 6
+163a4 6 425 6
+163aa 4 425 6
+FUNC 163b0 18 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::~ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test
+163b0 2 409 6
+163b2 16 409 6
+FUNC 163c8 12 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::~ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test
+163c8 2 409 6
+163ca 6 409 6
+163d0 6 409 6
+163d6 4 409 6
+FUNC 163dc 18 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::~ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test
+163dc 2 380 6
+163de 16 380 6
+FUNC 163f4 12 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::~ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test
+163f4 2 380 6
+163f6 6 380 6
+163fc 6 380 6
+16402 4 380 6
+FUNC 16408 18 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::~ExceptionHandlerTest_RedeliveryToDefaultHandler_Test
+16408 2 363 6
+1640a 16 363 6
+FUNC 16420 12 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::~ExceptionHandlerTest_RedeliveryToDefaultHandler_Test
+16420 2 363 6
+16422 6 363 6
+16428 6 363 6
+1642e 4 363 6
+FUNC 16434 18 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test
+16434 2 351 6
+16436 16 351 6
+FUNC 1644c 12 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test
+1644c 2 351 6
+1644e 6 351 6
+16454 6 351 6
+1645a 4 351 6
+FUNC 16460 18 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test
+16460 2 339 6
+16462 16 339 6
+FUNC 16478 12 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::~ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test
+16478 2 339 6
+1647a 6 339 6
+16480 6 339 6
+16486 4 339 6
+FUNC 1648c 18 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test
+1648c 2 327 6
+1648e 16 327 6
+FUNC 164a4 12 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test
+164a4 2 327 6
+164a6 6 327 6
+164ac 6 327 6
+164b2 4 327 6
+FUNC 164b8 18 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test
+164b8 2 315 6
+164ba 16 315 6
+FUNC 164d0 12 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::~ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test
+164d0 2 315 6
+164d2 6 315 6
+164d8 6 315 6
+164de 4 315 6
+FUNC 164e4 18 0 ExceptionHandlerTest_ChildCrashWithFD_Test::~ExceptionHandlerTest_ChildCrashWithFD_Test
+164e4 2 257 6
+164e6 16 257 6
+FUNC 164fc 12 0 ExceptionHandlerTest_ChildCrashWithFD_Test::~ExceptionHandlerTest_ChildCrashWithFD_Test
+164fc 2 257 6
+164fe 6 257 6
+16504 6 257 6
+1650a 4 257 6
+FUNC 16510 18 0 ExceptionHandlerTest_ChildCrashWithPath_Test::~ExceptionHandlerTest_ChildCrashWithPath_Test
+16510 2 253 6
+16512 16 253 6
+FUNC 16528 12 0 ExceptionHandlerTest_ChildCrashWithPath_Test::~ExceptionHandlerTest_ChildCrashWithPath_Test
+16528 2 253 6
+1652a 6 253 6
+16530 6 253 6
+16536 4 253 6
+FUNC 1653c 18 0 ExceptionHandlerTest_SimpleWithFD_Test::~ExceptionHandlerTest_SimpleWithFD_Test
+1653c 2 170 6
+1653e 16 170 6
+FUNC 16554 12 0 ExceptionHandlerTest_SimpleWithFD_Test::~ExceptionHandlerTest_SimpleWithFD_Test
+16554 2 170 6
+16556 6 170 6
+1655c 6 170 6
+16562 4 170 6
+FUNC 16568 18 0 ExceptionHandlerTest_SimpleWithPath_Test::~ExceptionHandlerTest_SimpleWithPath_Test
+16568 2 160 6
+1656a 16 160 6
+FUNC 16580 12 0 ExceptionHandlerTest_SimpleWithPath_Test::~ExceptionHandlerTest_SimpleWithPath_Test
+16580 2 160 6
+16582 6 160 6
+16588 6 160 6
+1658e 4 160 6
+FUNC 16592 80 0 DoneCallback
+16592 2 180 6
+16594 4 180 6
+16598 4 181 6
+1659c 6 184 6
+165a2 2 186 6
+165a4 2 187 6
+165a6 2 186 6
+165a8 4 187 6
+165ac 6 187 6
+165b2 18 3162 97
+165ca 4 3162 97
+165ce 4 3162 97
+165d2 4 188 6
+165d6 6 188 6
+165dc 18 3162 97
+165f4 4 3162 97
+165f8 4 3162 97
+165fc 4 189 6
+16600 8 189 6
+16608 4 182 6
+1660c 2 191 6
+1660e 4 192 6
+FUNC 16614 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test>::CreateTest
+16614 2 486 85
+16616 8 486 85
+1661e 6 351 6
+16624 2 486 85
+16626 6 351 6
+1662c 8 486 85
+FUNC 16634 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test>::CreateTest
+16634 2 486 85
+16636 8 486 85
+1663e 6 339 6
+16644 2 486 85
+16646 6 339 6
+1664c 8 486 85
+FUNC 16654 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test>::CreateTest
+16654 2 486 85
+16656 8 486 85
+1665e 6 327 6
+16664 2 486 85
+16666 6 327 6
+1666c 8 486 85
+FUNC 16674 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test>::CreateTest
+16674 2 486 85
+16676 8 486 85
+1667e 6 315 6
+16684 2 486 85
+16686 6 315 6
+1668c 8 486 85
+FUNC 16694 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithFD_Test>::CreateTest
+16694 2 486 85
+16696 8 486 85
+1669e 6 257 6
+166a4 2 486 85
+166a6 6 257 6
+166ac 8 486 85
+FUNC 166b4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ChildCrashWithPath_Test>::CreateTest
+166b4 2 486 85
+166b6 8 486 85
+166be 6 253 6
+166c4 2 486 85
+166c6 6 253 6
+166cc 8 486 85
+FUNC 166d4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithFD_Test>::CreateTest
+166d4 2 486 85
+166d6 8 486 85
+166de 6 170 6
+166e4 2 486 85
+166e6 6 170 6
+166ec 8 486 85
+FUNC 166f4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_SimpleWithPath_Test>::CreateTest
+166f4 2 486 85
+166f6 8 486 85
+166fe 6 160 6
+16704 2 486 85
+16706 6 160 6
+1670c 8 486 85
+FUNC 16714 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemory_Test>::CreateTest
+16714 2 486 85
+16716 8 486 85
+1671e 6 1068 6
+16724 2 486 85
+16726 6 1068 6
+1672c 8 486 85
+FUNC 16734 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test>::CreateTest
+16734 2 486 85
+16736 8 486 85
+1673e 6 1036 6
+16744 2 486 85
+16746 6 1036 6
+1674c 8 486 85
+FUNC 16754 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test>::CreateTest
+16754 2 486 85
+16756 8 486 85
+1675e 6 1019 6
+16764 2 486 85
+16766 6 1019 6
+1676c 8 486 85
+FUNC 16774 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpExceptionStream_Test>::CreateTest
+16774 2 486 85
+16776 8 486 85
+1677e 6 1000 6
+16784 2 486 85
+16786 6 1000 6
+1678c 8 486 85
+FUNC 16794 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ExternalDumper_Test>::CreateTest
+16794 2 486 85
+16796 8 486 85
+1679e 6 926 6
+167a4 2 486 85
+167a6 6 926 6
+167ac 8 486 85
+FUNC 167b4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_ModuleInfo_Test>::CreateTest
+167b4 2 486 85
+167b6 8 486 85
+167be 6 806 6
+167c4 2 486 85
+167c6 6 806 6
+167cc 8 486 85
+FUNC 167d4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test>::CreateTest
+167d4 2 486 85
+167d6 8 486 85
+167de 6 760 6
+167e4 2 486 85
+167e6 6 760 6
+167ec 8 486 85
+FUNC 167f4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test>::CreateTest
+167f4 2 486 85
+167f6 8 486 85
+167fe 6 667 6
+16804 2 486 85
+16806 6 667 6
+1680c 8 486 85
+FUNC 16814 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test>::CreateTest
+16814 2 486 85
+16816 8 486 85
+1681e 6 579 6
+16824 2 486 85
+16826 6 579 6
+1682c 8 486 85
+FUNC 16834 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_InstructionPointerMemory_Test>::CreateTest
+16834 2 486 85
+16836 8 486 85
+1683e 6 487 6
+16844 2 486 85
+16846 6 487 6
+1684c 8 486 85
+FUNC 16854 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test>::CreateTest
+16854 2 486 85
+16856 8 486 85
+1685e 6 457 6
+16864 2 486 85
+16866 6 457 6
+1686c 8 486 85
+FUNC 16874 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test>::CreateTest
+16874 2 486 85
+16876 8 486 85
+1687e 6 441 6
+16884 2 486 85
+16886 6 441 6
+1688c 8 486 85
+FUNC 16894 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test>::CreateTest
+16894 2 486 85
+16896 8 486 85
+1689e 6 425 6
+168a4 2 486 85
+168a6 6 425 6
+168ac 8 486 85
+FUNC 168b4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test>::CreateTest
+168b4 2 486 85
+168b6 8 486 85
+168be 6 409 6
+168c4 2 486 85
+168c6 6 409 6
+168cc 8 486 85
+FUNC 168d4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test>::CreateTest
+168d4 2 486 85
+168d6 8 486 85
+168de 6 380 6
+168e4 2 486 85
+168e6 6 380 6
+168ec 8 486 85
+FUNC 168f4 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_RedeliveryToDefaultHandler_Test>::CreateTest
+168f4 2 486 85
+168f6 8 486 85
+168fe 6 363 6
+16904 2 486 85
+16906 6 363 6
+1690c 8 486 85
+FUNC 16914 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_WriteMinidumpForChild_Test>::CreateTest
+16914 2 486 85
+16916 8 486 85
+1691e 6 1154 6
+16924 2 486 85
+16926 6 1154 6
+1692c 8 486 85
+FUNC 16934 20 0 testing::internal::TestFactoryImpl<ExceptionHandlerTest_AdditionalMemoryRemove_Test>::CreateTest
+16934 2 486 85
+16936 8 486 85
+1693e 6 1112 6
+16944 2 486 85
+16946 6 1112 6
+1694c 8 486 85
+FUNC 16954 118 0 CrashHandler
+16954 8 877 6
+1695c 8 877 6
+16964 2 880 6
+16966 6 877 6
+1696c 4 880 6
+16970 2 888 6
+16972 2 880 6
+16974 4 885 6
+16978 2 886 6
+1697a 4 888 6
+1697e 4 895 6
+16982 6 888 6
+16988 2 891 6
+1698a 2 893 6
+1698c 2 890 6
+1698e 6 895 6
+16994 2 892 6
+16996 2 895 6
+16998 2 892 6
+1699a 2 893 6
+1699c 4 895 6
+169a0 4 902 6
+169a4 2 903 6
+169a6 2 900 6
+169a8 2 903 6
+169aa 4 906 6
+169ae 2 907 6
+169b0 2 901 6
+169b2 2 907 6
+169b4 2 905 6
+169b6 2 896 6
+169b8 4 897 6
+169bc 6 909 6
+169c2 6 910 6
+169c8 4 911 6
+169cc 2 3671 97
+169ce 2 911 6
+169d0 18 3671 97
+169e8 4 3671 97
+169ec 4 3671 97
+169f0 4 913 6
+169f4 6 913 6
+169fa 4 3671 97
+169fe 14 2979 97
+16a12 4 2979 97
+16a16 4 2979 97
+16a1a 4 915 6
+16a1e 1c 3104 97
+16a3a 4 921 6
+16a3e 4 3104 97
+16a42 4 3104 97
+16a46 4 919 6
+16a4a 8 919 6
+16a52 2 916 6
+16a54 18 922 6
+FUNC 16a6c 54 0 std::basic_streambuf<char, std::char_traits<char> >::xsgetn
+16a6c 4 54 133
+16a70 6 54 133
+16a76 2 55 133
+16a78 4 58 133
+16a7c 8 59 133
+16a84 c 61 133
+16a90 2 172 145
+16a92 8 172 145
+16a9a 2 65 133
+16a9c 2 63 133
+16a9e 2 64 133
+16aa0 6 65 133
+16aa6 2 228 134
+16aa8 6 229 134
+16aae 4 69 133
+16ab2 4 220 145
+16ab6 4 71 133
+16aba 6 80 133
+FUNC 16ac0 18 0 std::priv::__ucopy_trivial
+16ac0 2 103 142
+16ac2 2 107 142
+16ac4 2 103 142
+16ac6 2 103 142
+16ac8 2 107 142
+16aca a 106 142
+16ad4 2 107 142
+16ad6 2 108 142
+FUNC 16ad8 14 0 testing::AssertionResult::message
+16ad8 2 1144 87
+16ada 6 298 82
+16ae0 4 298 82
+16ae4 8 299 82
+FUNC 16aec 1e 0 testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+16aec 2 1140 87
+16aee 2 1153 87
+16af0 2 1140 87
+16af2 2 1153 87
+16af4 8 1154 87
+16afc 4 1155 87
+16b00 6 1155 87
+16b06 4 1140 87
+FUNC 16b0a 1e 0 std::priv::_String_base<char, std::allocator<char> >::_M_deallocate_block
+16b0a 2 94 137
+16b0c 2 64 137
+16b0e 4 96 137
+16b12 4 96 137
+16b16 4 97 137
+16b1a 4 161 106
+16b1e 4 135 124
+16b22 6 161 106
+FUNC 16b28 16 0 google_breakpad::MinidumpDescriptor::~MinidumpDescriptor
+16b28 2 47 8
+16b2a 2 47 8
+16b2c e 156 137
+16b3a 4 47 8
+FUNC 16b40 24 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf
+16b40 4 58 131
+16b44 4 59 131
+16b48 2 58 131
+16b4a 6 59 131
+16b50 4 156 137
+16b54 6 59 131
+16b5a a 59 131
+FUNC 16b64 12 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf
+16b64 2 58 131
+16b66 2 58 131
+16b68 4 59 131
+16b6c 6 59 131
+16b72 4 59 131
+FUNC 16b76 28 0 testing::internal::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset
+16b76 2 1152 87
+16b78 2 1153 87
+16b7a 2 1152 87
+16b7c 2 1153 87
+16b7e 2 1152 87
+16b80 2 1153 87
+16b82 8 1154 87
+16b8a 4 1155 87
+16b8e 6 156 137
+16b94 6 1155 87
+16b9a 4 1157 87
+FUNC 16b9e e 0 testing::internal::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+16b9e 2 1140 87
+16ba0 c 1140 87
+FUNC 16bac 9c 0 std::basic_ios<char, std::char_traits<char> >::init
+16bac 4 97 113
+16bb0 4 92 114
+16bb4 2 192 115
+16bb6 2 92 114
+16bb8 2 192 115
+16bba 2 97 113
+16bbc 2 97 113
+16bbe 2 50 113
+16bc0 2 188 115
+16bc2 2 192 115
+16bc4 4 193 115
+16bc8 4 100 113
+16bcc 4 70 113
+16bd0 4 100 113
+16bd4 a 70 113
+16bde 4 72 113
+16be2 8 46 133
+16bea 6 47 133
+16bf0 2 46 133
+16bf2 8 47 133
+16bfa 8 48 133
+16c02 6 73 113
+16c08 c 351 122
+16c14 2 76 113
+16c16 6 100 113
+16c1c 6 100 113
+16c22 4 68 114
+16c26 2 190 115
+16c28 2 139 115
+16c2a 2 132 115
+16c2c 4 112 115
+16c30 2 132 115
+16c32 2 84 114
+16c34 2 188 115
+16c36 2 112 115
+16c38 4 84 114
+16c3c c 110 113
+FUNC 16c48 78 0 std::basic_iostream<char, std::char_traits<char> >::basic_iostream
+16c48 2 1406 116
+16c4a 4 92 113
+16c4e 2 1406 116
+16c50 2 92 113
+16c52 2 1406 116
+16c54 6 92 113
+16c5a 2 87 117
+16c5c 4 92 113
+16c60 6 87 117
+16c66 2 87 117
+16c68 4 92 113
+16c6c 2 87 117
+16c6e 4 87 117
+16c72 8 88 117
+16c7a 2 38 126
+16c7c 2 39 126
+16c7e 6 38 126
+16c84 2 38 126
+16c86 2 38 126
+16c88 2 38 126
+16c8a 8 39 126
+16c92 2 1411 116
+16c94 a 1410 116
+16c9e 4 1410 116
+16ca2 2 1410 116
+16ca4 2 1410 116
+16ca6 2 1410 116
+16ca8 6 1411 116
+16cae 12 1412 116
+FUNC 16cc0 66 0 std::basic_iostream<char, std::char_traits<char> >::basic_iostream
+16cc0 2 1406 116
+16cc2 2 87 117
+16cc4 2 1406 116
+16cc6 2 87 117
+16cc8 2 87 117
+16cca 4 87 117
+16cce 2 1406 116
+16cd0 4 87 117
+16cd4 2 1406 116
+16cd6 2 87 117
+16cd8 2 88 117
+16cda c 88 117
+16ce6 2 38 126
+16ce8 4 1410 116
+16cec 2 38 126
+16cee 2 38 126
+16cf0 6 38 126
+16cf6 2 39 126
+16cf8 c 39 126
+16d04 2 1410 116
+16d06 2 1411 116
+16d08 2 1410 116
+16d0a 2 1410 116
+16d0c 6 1410 116
+16d12 2 1410 116
+16d14 2 1410 116
+16d16 2 1411 116
+16d18 a 1411 116
+16d22 4 1412 116
+FUNC 16d26 42 0 std::__stlp_string_fill<char, std::char_traits<char> >
+16d26 2 16 138
+16d28 4 16 138
+16d2c 2 20 138
+16d2e c 19 138
+16d3a 4 20 138
+16d3e 8 200 134
+16d46 a 199 134
+16d50 8 200 134
+16d58 4 21 138
+16d5c 4 20 138
+16d60 4 24 138
+16d64 2 22 138
+16d66 2 25 138
+FUNC 16d68 6 0 std::basic_streambuf<char, std::char_traits<char> >::sputn
+16d68 6 205 134
+FUNC 16d6e 1c 0 std::basic_ios<char, std::char_traits<char> >::setstate
+16d6e 2 95 114
+16d70 4 95 114
+16d74 4 92 114
+16d78 4 92 114
+16d7c 2 192 115
+16d7e 2 188 115
+16d80 4 192 115
+16d84 6 193 115
+FUNC 16d8a 28 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase
+16d8a 2 803 136
+16d8c 2 802 136
+16d8e 6 802 136
+16d94 2 803 136
+16d96 4 805 136
+16d9a 4 168 145
+16d9e 8 168 145
+16da6 8 806 136
+16dae 4 809 136
+FUNC 16db4 38 0 std::priv::_String_base<char, std::allocator<char> >::_M_allocate_block
+16db4 2 607 135
+16db6 2 607 135
+16db8 2 608 135
+16dba 8 600 135
+16dc2 4 610 135
+16dc6 2 158 106
+16dc8 2 347 106
+16dca 2 158 106
+16dcc 8 134 124
+16dd4 6 158 106
+16dda 2 613 135
+16ddc 2 611 135
+16dde 2 612 135
+16de0 4 613 135
+16de4 8 623 135
+FUNC 16dec 18 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+16dec 2 158 136
+16dee 2 158 136
+16df0 2 124 137
+16df2 2 120 137
+16df4 2 481 106
+16df6 4 124 137
+16dfa 4 101 108
+16dfe 2 166 136
+16e00 2 101 108
+16e02 2 166 136
+FUNC 16e04 2e 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+16e04 2 69 8
+16e06 2 65 8
+16e08 2 65 8
+16e0a 2 69 8
+16e0c 4 69 8
+16e10 8 69 8
+16e18 a 69 8
+16e22 2 69 8
+16e24 2 71 8
+16e26 8 69 8
+16e2e 4 71 8
+FUNC 16e34 ac 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream
+16e34 4 439 131
+16e38 2 439 131
+16e3a 2 92 113
+16e3c 2 439 131
+16e3e 6 92 113
+16e44 2 439 131
+16e46 6 92 113
+16e4c 2 439 131
+16e4e a 92 113
+16e58 2 441 131
+16e5a 8 92 113
+16e62 c 441 131
+16e6e 2 441 131
+16e70 4 34 133
+16e74 8 441 131
+16e7c 4 441 131
+16e80 4 441 131
+16e84 2 34 133
+16e86 2 441 131
+16e88 16 34 133
+16e9e 2 46 131
+16ea0 2 46 131
+16ea2 2 46 131
+16ea4 4 34 133
+16ea8 8 46 131
+16eb0 8 46 131
+16eb8 8 442 131
+16ec0 20 443 131
+FUNC 16ee0 78 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream
+16ee0 2 439 131
+16ee2 6 439 131
+16ee8 8 441 131
+16ef0 2 441 131
+16ef2 4 34 133
+16ef6 2 441 131
+16ef8 2 441 131
+16efa 6 441 131
+16f00 2 441 131
+16f02 4 34 133
+16f06 4 441 131
+16f0a 1c 34 133
+16f26 2 46 131
+16f28 a 46 131
+16f32 8 46 131
+16f3a 2 442 131
+16f3c c 442 131
+16f48 10 443 131
+FUNC 16f58 30 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+16f58 2 639 135
+16f5a 2 639 135
+16f5c 2 112 137
+16f5e 2 481 106
+16f60 2 229 145
+16f62 2 639 135
+16f64 6 229 145
+16f6a 2 643 135
+16f6c 8 379 136
+16f74 a 148 142
+16f7e 2 101 108
+16f80 2 380 136
+16f82 2 101 108
+16f84 4 644 135
+FUNC 16f88 28 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+16f88 2 647 135
+16f8a 2 647 135
+16f8c 2 112 137
+16f8e 6 481 106
+16f94 2 378 136
+16f96 6 379 136
+16f9c a 148 142
+16fa6 2 101 108
+16fa8 2 380 136
+16faa 2 101 108
+16fac 4 649 135
+FUNC 16fb0 2a 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+16fb0 2 56 8
+16fb2 6 61 8
+16fb8 2 56 8
+16fba a 61 8
+16fc4 a 61 8
+16fce 2 61 8
+16fd0 2 63 8
+16fd2 4 61 8
+16fd6 4 63 8
+FUNC 16fdc 68 0 CrashWithCallbacks
+16fdc 8 308 6
+16fe4 4 308 6
+16fe8 2 310 6
+16fea 6 308 6
+16ff0 4 310 6
+16ff4 2 308 6
+16ff6 2 310 6
+16ff8 4 310 6
+16ffc 1a 310 6
+17016 6 310 6
+1701c 2 207 6
+1701e 2 312 6
+17020 6 207 6
+17026 4 312 6
+1702a 1a 313 6
+FUNC 17044 16 0 std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > >
+17044 2 292 122
+17046 2 292 122
+17048 8 351 122
+17050 2 351 122
+17052 4 297 122
+17056 4 351 122
+FUNC 1705c 54 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+1705c 2 90 117
+1705e 6 90 117
+17064 6 90 117
+1706a 6 90 117
+17070 4 90 117
+17074 6 90 117
+1707a 2 90 117
+1707c 4 90 117
+17080 6 90 117
+17086 6 90 117
+1708c 6 90 117
+17092 8 90 117
+1709a 4 90 117
+1709e 6 90 117
+170a4 c 90 117
+FUNC 170b0 8 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+170b0 8 90 117
+FUNC 170c4 12 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+170c4 2 90 117
+170c6 6 90 117
+170cc 6 90 117
+170d2 4 90 117
+FUNC 170e2 8 0 std::basic_istream<char, std::char_traits<char> >::~basic_istream
+170e2 8 90 117
+FUNC 170ec 54 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+170ec 2 43 126
+170ee 2 43 126
+170f0 4 44 126
+170f4 6 44 126
+170fa 6 44 126
+17100 4 44 126
+17104 6 44 126
+1710a 2 44 126
+1710c 4 44 126
+17110 6 44 126
+17116 6 44 126
+1711c 6 44 126
+17122 6 44 126
+17128 4 44 126
+1712c 6 44 126
+17132 e 44 126
+FUNC 17140 8 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+17140 8 44 126
+FUNC 17154 12 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+17154 2 43 126
+17156 2 43 126
+17158 4 44 126
+1715c 6 44 126
+17162 4 44 126
+FUNC 17172 8 0 std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
+17172 2 43 126
+17174 6 44 126
+FUNC 1717c 8c 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+1717c 2 1415 116
+1717e 8 1415 116
+17186 4 1416 116
+1718a 4 1416 116
+1718e 6 1416 116
+17194 4 1416 116
+17198 6 1416 116
+1719e 2 1416 116
+171a0 4 1416 116
+171a4 4 1416 116
+171a8 6 1416 116
+171ae 4 1416 116
+171b2 4 1416 116
+171b6 6 1416 116
+171bc 8 1416 116
+171c4 4 1416 116
+171c8 2 1416 116
+171ca 6 1416 116
+171d0 6 1416 116
+171d6 6 1416 116
+171dc 6 1416 116
+171e2 4 1416 116
+171e6 8 1416 116
+171ee 4 1416 116
+171f2 6 1416 116
+171f8 10 1416 116
+FUNC 17208 8 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+17208 2 1415 116
+1720a 6 1416 116
+FUNC 17210 80 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+17210 2 453 131
+17212 8 453 131
+1721a 4 454 131
+1721e 4 454 131
+17222 6 454 131
+17228 4 454 131
+1722c 6 454 131
+17232 2 454 131
+17234 4 454 131
+17238 4 454 131
+1723c 6 454 131
+17242 4 454 131
+17246 4 454 131
+1724a 6 454 131
+17250 c 454 131
+1725c 6 454 131
+17262 6 454 131
+17268 4 454 131
+1726c 8 454 131
+17274 4 454 131
+17278 6 454 131
+1727e 12 454 131
+FUNC 17290 8 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+17290 2 453 131
+17292 6 454 131
+FUNC 17298 8 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+17298 8 454 131
+FUNC 172b4 12 0 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream
+172b4 2 453 131
+172b6 2 453 131
+172b8 4 454 131
+172bc 6 454 131
+172c2 4 454 131
+FUNC 172dc c0 0 testing::internal::CmpHelperEQ<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+172dc a 1476 82
+172e6 14 1476 82
+172fa e 400 136
+17308 6 289 139
+1730e 4 226 145
+17312 2 289 139
+17314 2 884 80
+17316 2 469 80
+17318 8 884 80
+17320 2 75 132
+17322 4 469 80
+17326 2 75 132
+17328 4 469 80
+1732c 8 75 132
+17334 6 886 80
+1733a 8 884 80
+17342 4 469 80
+17346 2 75 132
+17348 4 469 80
+1734c 8 75 132
+17354 6 886 80
+1735a 12 1471 82
+1736c e 156 137
+1737a 6 1482 82
+17380 1c 1488 82
+FUNC 1739c 8 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+1739c 8 1416 116
+FUNC 173b8 12 0 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
+173b8 2 1415 116
+173ba 2 1415 116
+173bc 4 1416 116
+173c0 6 1416 116
+173c6 4 1416 116
+FUNC 173de 2c 0 std::basic_ostream<char, std::char_traits<char> >::flush
+173de 2 134 127
+173e0 2 135 127
+173e2 a 134 127
+173ec 2 135 127
+173ee 6 153 134
+173f4 4 136 127
+173f8 e 137 127
+17406 4 139 127
+FUNC 1740a 40 0 std::priv::__init_bostr<char, std::char_traits<char> >
+1740a 2 218 127
+1740c 2 218 127
+1740e c 219 127
+1741a 4 221 127
+1741e 6 222 127
+17424 c 223 127
+17430 4 224 127
+17434 8 225 127
+1743c a 174 115
+17446 2 228 127
+17448 2 229 127
+FUNC 1744a 24 0 std::basic_ostream<char, std::char_traits<char> >::sentry::~sentry
+1744a 2 184 127
+1744c 2 185 127
+1744e 2 184 127
+17450 e 185 127
+1745e 6 187 127
+17464 6 189 127
+1746a 4 190 127
+FUNC 1746e b4 0 std::basic_ostream<char, std::char_traits<char> >::_M_put_nowiden
+1746e 2 331 126
+17470 4 331 126
+17474 a 181 127
+1747e 4 333 126
+17482 6 229 145
+17488 2 336 126
+1748a 2 229 145
+1748c c 336 126
+17498 4 339 126
+1749c 2 341 126
+1749e 2 342 126
+174a0 8 341 126
+174a8 8 342 126
+174b0 4 343 126
+174b4 4 343 126
+174b8 a 344 126
+174c2 c 209 134
+174ce 4 343 126
+174d2 e 209 134
+174e0 4 348 126
+174e4 8 348 126
+174ec a 348 126
+174f6 6 348 126
+174fc 2 139 115
+174fe 2 351 126
+17500 8 139 115
+17508 2 357 126
+1750a e 358 126
+17518 6 359 126
+1751e 4 360 126
+FUNC 17522 90 0 std::priv::__put_num<char, std::char_traits<char>, long int>
+17522 4 194 126
+17526 4 194 126
+1752a a 181 127
+17534 2 199 126
+17536 10 211 126
+17546 2 202 126
+17548 2 145 115
+1754a 4 202 126
+1754e 2 145 115
+17550 2 202 126
+17552 6 145 115
+17558 6 202 126
+1755e 2 202 126
+17560 2 202 126
+17562 c 202 126
+1756e 18 57 128
+17586 16 67 125
+1759c 6 202 126
+175a2 4 210 126
+175a6 6 212 126
+175ac 6 213 126
+FUNC 175b2 98 0 std::operator<< <char, std::char_traits<char>, std::allocator<char> >
+175b2 4 30 138
+175b6 4 30 138
+175ba a 181 127
+175c4 2 41 138
+175c6 10 62 138
+175d6 2 139 115
+175d8 a 400 136
+175e2 8 44 138
+175ea 2 138 115
+175ec 2 139 115
+175ee 2 44 138
+175f0 2 46 138
+175f2 6 49 138
+175f8 a 44 138
+17602 2 49 138
+17604 2 52 138
+17606 c 55 138
+17612 6 55 138
+17618 a 53 138
+17622 6 55 138
+17628 4 50 138
+1762c 2 57 138
+1762e a 58 138
+17638 4 58 138
+1763c 6 64 138
+17642 8 65 138
+FUNC 1764a 90 0 std::priv::__put_num<char, std::char_traits<char>, void const*>
+1764a 4 194 126
+1764e 4 194 126
+17652 a 181 127
+1765c 2 199 126
+1765e 10 211 126
+1766e 2 202 126
+17670 2 145 115
+17672 4 202 126
+17676 2 145 115
+17678 2 202 126
+1767a 6 145 115
+17680 6 202 126
+17686 2 202 126
+17688 2 202 126
+1768a c 202 126
+17696 18 57 128
+176ae 16 101 125
+176c4 6 202 126
+176ca 4 210 126
+176ce 6 212 126
+176d4 6 213 126
+FUNC 176da 16 0 std::priv::_String_base<char, std::allocator<char> >::_M_rest
+176da 2 64 137
+176dc 2 74 137
+176de 4 74 137
+176e2 2 74 137
+176e4 4 74 137
+176e8 6 74 137
+176ee 2 74 137
+FUNC 176f0 3c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_compute_next_size
+176f0 2 302 136
+176f2 6 400 136
+176f8 a 304 136
+17702 a 600 135
+1770c 8 306 136
+17714 4 307 136
+17718 2 307 136
+1771a c 308 136
+17726 6 310 136
+FUNC 1772c d8 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append
+1772c 2 197 135
+1772e 4 196 135
+17732 6 196 135
+17738 2 197 135
+1773a 2 198 135
+1773c 8 199 135
+17744 8 200 135
+1774c 4 346 106
+17750 2 158 106
+17752 2 347 106
+17754 2 158 106
+17756 6 134 124
+1775c 8 158 106
+17764 6 352 106
+1776a 4 356 106
+1776e 14 86 142
+17782 8 86 142
+1778a 1c 146 108
+177a6 8 86 142
+177ae 6 146 108
+177b4 8 101 108
+177bc 8 205 135
+177c4 4 206 135
+177c8 2 160 137
+177ca 2 164 137
+177cc 6 165 137
+177d2 4 210 135
+177d6 6 86 142
+177dc 8 86 142
+177e4 6 146 108
+177ea a 101 108
+177f4 2 232 145
+177f6 6 214 135
+177fc 8 218 135
+FUNC 17804 44 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign
+17804 2 242 135
+17806 4 242 135
+1780a 2 400 136
+1780c 2 243 135
+1780e 2 242 135
+17810 2 400 136
+17812 2 244 135
+17814 2 242 135
+17816 2 244 135
+17818 2 168 145
+1781a 6 168 145
+17820 2 246 135
+17822 c 246 135
+1782e 2 168 145
+17830 4 168 145
+17834 4 400 136
+17838 2 250 135
+1783a 2 400 136
+1783c 8 250 135
+17844 4 253 135
+FUNC 17848 1a4 0 google_breakpad::AutoTempDir::AutoTempDir
+17848 8 54 63
+17850 4 54 63
+17854 4 54 63
+17858 2 54 63
+1785a 2 54 63
+1785c 4 54 63
+17860 4 54 63
+17864 1c 55 63
+17880 e 63 35
+1788e 2 64 35
+17890 8 63 35
+17898 6 64 35
+1789e 6 65 35
+178a4 8 67 35
+178ac c 68 35
+178b8 4 67 35
+178bc 8 69 35
+178c4 8 75 35
+178cc 4 76 35
+178d0 4 79 35
+178d4 8 80 35
+178dc 2 81 35
+178de 2 82 35
+178e0 2 81 35
+178e2 2 82 35
+178e4 c 84 35
+178f0 a 85 35
+178fa 2 54 63
+178fc a 96 35
+17906 4 121 101
+1790a 6 94 35
+17910 2 96 35
+17912 2 94 35
+17914 8 96 35
+1791c c 97 35
+17928 a 100 35
+17932 6 93 35
+17938 4 98 35
+1793c 2 101 35
+1793e 6 56 63
+17944 2 1139 87
+17946 4 277 82
+1794a 2 1139 87
+1794c 2 56 63
+1794e 18 56 63
+17966 a 56 63
+17970 4 56 63
+17974 a 56 63
+1797e 6 56 63
+17984 8 56 63
+1798c 6 85 79
+17992 6 56 63
+17998 6 156 137
+1799e 6 256 82
+179a4 6 229 145
+179aa 2 563 136
+179ac 2 563 136
+179ae 6 563 136
+179b4 38 58 63
+FUNC 179ec 1a 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=
+179ec 2 353 136
+179ee 2 353 136
+179f0 2 229 145
+179f2 2 353 136
+179f4 4 229 145
+179f8 2 355 136
+179fa 2 355 136
+179fc 2 355 136
+179fe 4 356 136
+17a02 4 355 136
+FUNC 17a06 10 0 SimpleCallback
+17a06 2 1148 6
+17a08 2 1148 6
+17a0a 8 1150 6
+17a12 4 1152 6
+FUNC 17a18 6c 0 testing::AssertionResult::AppendMessage
+17a18 e 320 82
+17a26 2 320 82
+17a28 2 321 82
+17a2a 6 320 82
+17a30 2 321 82
+17a32 8 322 82
+17a3a 6 322 82
+17a40 8 322 82
+17a48 6 323 82
+17a4e 2 1143 87
+17a50 6 323 82
+17a56 6 229 145
+17a5c 2 530 136
+17a5e 2 530 136
+17a60 6 530 136
+17a66 6 156 137
+17a6c 18 324 82
+FUNC 17a84 2c 0 testing::AssertionResult::operator<< <char [12]>
+17a84 2 305 82
+17a86 4 305 82
+17a8a 8 306 82
+17a92 a 333 127
+17a9c 8 306 82
+17aa4 6 85 79
+17aaa 6 308 82
+FUNC 17a84 2c 0 testing::AssertionResult::operator<< <char [2]>
+FUNC 17a84 2c 0 testing::AssertionResult::operator<< <char [3]>
+FUNC 17a84 2c 0 testing::AssertionResult::operator<< <char [5]>
+FUNC 17a84 2c 0 testing::AssertionResult::operator<< <char [7]>
+FUNC 17ab0 38 0 testing::AssertionResult::operator<< <char const*>
+17ab0 2 305 82
+17ab2 2 305 82
+17ab4 2 306 82
+17ab6 2 305 82
+17ab8 a 306 82
+17ac2 2 333 127
+17ac4 2 150 79
+17ac6 8 333 127
+17ace 8 306 82
+17ad6 6 85 79
+17adc c 308 82
+FUNC 17ae8 2c 0 testing::AssertionResult::operator<< <std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+17ae8 2 305 82
+17aea 4 305 82
+17aee 8 306 82
+17af6 a 131 79
+17b00 8 306 82
+17b08 6 85 79
+17b0e 6 308 82
+FUNC 17b14 90 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_appendT<char const*>
+17b14 2 470 136
+17b16 4 468 136
+17b1a 6 468 136
+17b20 2 470 136
+17b22 2 355 119
+17b24 8 472 136
+17b2c 8 473 136
+17b34 4 346 106
+17b38 2 158 106
+17b3a 2 347 106
+17b3c 2 158 106
+17b3e 6 134 124
+17b44 6 158 106
+17b4a 2 352 106
+17b4c 4 353 106
+17b50 2 356 106
+17b52 a 120 142
+17b5c 2 148 142
+17b5e 2 120 142
+17b60 6 148 142
+17b66 2 101 108
+17b68 2 148 142
+17b6a 2 101 108
+17b6c 6 478 136
+17b72 2 479 136
+17b74 2 160 137
+17b76 2 164 137
+17b78 6 165 137
+17b7e 6 482 136
+17b84 2 148 142
+17b86 2 232 145
+17b88 2 483 136
+17b8a 6 148 142
+17b90 6 101 108
+17b96 6 485 136
+17b9c 8 489 136
+FUNC 17ba4 46 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+17ba4 2 80 139
+17ba6 2 80 139
+17ba8 2 229 145
+17baa 4 80 139
+17bae 6 229 145
+17bb4 4 400 136
+17bb8 2 124 137
+17bba 4 400 136
+17bbe 2 124 137
+17bc0 2 120 137
+17bc2 2 481 106
+17bc4 4 124 137
+17bc8 4 101 108
+17bcc 2 517 136
+17bce 2 101 108
+17bd0 8 517 136
+17bd8 c 497 136
+17be4 6 94 139
+FUNC 17bec 2c8 0 google_breakpad::AutoTempDir::DeleteRecursively
+17bec 8 69 63
+17bf4 8 69 63
+17bfc 2 71 63
+17bfe 4 69 63
+17c02 6 71 63
+17c08 8 72 63
+17c10 6 77 63
+17c16 6 77 63
+17c1c 6 79 63
+17c22 12 85 63
+17c34 e 76 63
+17c42 e 77 63
+17c50 8 77 63
+17c58 4 77 63
+17c5c 8 79 63
+17c64 4 79 63
+17c68 4 79 63
+17c6c a 79 63
+17c76 6 156 137
+17c7c 8 81 63
+17c84 4 81 63
+17c88 2 1139 87
+17c8a 2 81 63
+17c8c 4 277 82
+17c90 6 1139 87
+17c96 2 81 63
+17c98 18 81 63
+17cb0 a 81 63
+17cba 4 81 63
+17cbe a 81 63
+17cc8 6 81 63
+17cce 8 81 63
+17cd6 6 85 79
+17cdc 6 81 63
+17ce2 6 156 137
+17ce8 a 256 82
+17cf2 c 82 63
+17cfe a 83 63
+17d08 6 85 63
+17d0e 4 85 63
+17d12 2 1139 87
+17d14 2 85 63
+17d16 4 277 82
+17d1a 2 1139 87
+17d1c 2 85 63
+17d1e 12 85 63
+17d30 a 85 63
+17d3a 4 85 63
+17d3e a 85 63
+17d48 6 85 63
+17d4e 8 85 63
+17d56 6 85 79
+17d5c 6 85 63
+17d62 6 156 137
+17d68 6 256 82
+17d6e 8 156 137
+17d76 c 87 63
+17d82 4 277 82
+17d86 4 1139 87
+17d8a 2 87 63
+17d8c 18 87 63
+17da4 a 87 63
+17dae 4 87 63
+17db2 a 87 63
+17dbc 6 87 63
+17dc2 8 87 63
+17dca 6 85 79
+17dd0 6 87 63
+17dd6 6 156 137
+17ddc a 256 82
+17de6 6 88 63
+17dec 4 88 63
+17df0 2 1139 87
+17df2 2 88 63
+17df4 4 277 82
+17df8 2 1139 87
+17dfa 2 88 63
+17dfc 18 88 63
+17e14 a 88 63
+17e1e 2 88 63
+17e20 a 88 63
+17e2a 6 88 63
+17e30 8 88 63
+17e38 6 85 79
+17e3e 6 88 63
+17e44 6 156 137
+17e4a 6 256 82
+17e50 64 89 63
+FUNC 17eb4 14 0 google_breakpad::AutoTempDir::~AutoTempDir
+17eb4 2 60 63
+17eb6 2 60 63
+17eb8 6 61 63
+17ebe 6 156 137
+17ec4 4 62 63
+FUNC 17ec8 64 0 CreateTMPFile
+17ec8 10 99 6
+17ed8 2 99 6
+17eda 8 100 6
+17ee2 2 99 6
+17ee4 6 100 6
+17eea 8 103 6
+17ef2 4 104 6
+17ef6 4 105 6
+17efa 8 106 6
+17f02 6 107 6
+17f08 6 156 137
+17f0e 1e 109 6
+FUNC 17f2c 88 0 ExceptionHandlerTest_SimpleWithFD_Test::TestBody
+17f2c 8 170 6
+17f34 4 170 6
+17f38 2 171 6
+17f3a 2 170 6
+17f3c 2 172 6
+17f3e 2 171 6
+17f40 2 170 6
+17f42 4 171 6
+17f46 8 172 6
+17f4e a 173 6
+17f58 c 174 6
+17f64 1a 174 6
+17f7e 6 174 6
+17f84 6 175 6
+17f8a 6 174 6
+17f90 6 156 137
+17f96 6 175 6
+17f9c 18 176 6
+FUNC 17fb4 180 0 ExceptionHandlerTest_SimpleWithPath_Test::TestBody
+17fb4 8 160 6
+17fbc 4 160 6
+17fc0 2 161 6
+17fc2 2 160 6
+17fc4 2 163 6
+17fc6 2 161 6
+17fc8 2 160 6
+17fca 4 161 6
+17fce 8 163 6
+17fd6 1e 163 6
+17ff4 4 87 8
+17ff8 6 163 6
+17ffe 8 87 8
+18006 16 1512 82
+1801c 6 156 137
+18022 6 164 6
+18028 6 302 82
+1802e a 164 6
+18038 4 164 6
+1803c 8 164 6
+18044 6 164 6
+1804a 8 164 6
+18052 6 85 79
+18058 6 164 6
+1805e a 256 82
+18068 e 165 6
+18076 8 166 6
+1807e 8 140 5
+18086 6 166 6
+1808c 8 87 8
+18094 12 1512 82
+180a6 6 156 137
+180ac 6 167 6
+180b2 6 302 82
+180b8 a 167 6
+180c2 4 167 6
+180c6 8 167 6
+180ce 6 167 6
+180d4 8 167 6
+180dc 6 85 79
+180e2 6 167 6
+180e8 6 256 82
+180ee 6 156 137
+180f4 6 163 6
+180fa 6 167 6
+18100 34 168 6
+FUNC 18134 a4 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::xsputn
+18134 4 170 131
+18138 2 170 131
+1813a 2 174 131
+1813c 2 170 131
+1813e 4 174 131
+18142 2 170 131
+18144 2 174 131
+18146 8 174 131
+1814e 4 177 131
+18152 6 177 131
+18158 2 172 131
+1815a 14 193 131
+1816e 8 194 131
+18176 c 497 136
+18182 4 197 131
+18186 2 93 134
+18188 2 94 134
+1818a 4 95 134
+1818e c 497 136
+1819a 2 400 136
+1819c 2 117 134
+1819e 2 400 136
+181a0 2 115 134
+181a2 2 119 134
+181a4 2 115 134
+181a6 4 205 131
+181aa 6 172 131
+181b0 2 178 131
+181b2 4 179 131
+181b6 4 172 145
+181ba 2 115 134
+181bc 2 182 131
+181be 4 115 134
+181c2 2 182 131
+181c4 2 172 145
+181c6 6 172 145
+181cc 2 186 131
+181ce 4 187 131
+181d2 6 209 131
+FUNC 181d8 48 0 testing::PrintToString<int>
+181d8 e 883 80
+181e6 2 883 80
+181e8 6 884 80
+181ee 2 883 80
+181f0 4 884 80
+181f4 8 240 126
+181fc 8 75 132
+18204 6 886 80
+1820a 16 887 80
+FUNC 18220 d4 0 testing::internal::CmpHelperOpFailure<int, int>
+18220 8 1579 82
+18228 8 1579 82
+18230 2 1583 82
+18232 6 1579 82
+18238 2 1583 82
+1823a a 1579 82
+18244 4 1583 82
+18248 a 1583 82
+18252 6 1583 82
+18258 2 1583 82
+1825a 2 1382 82
+1825c 6 1583 82
+18262 6 1583 82
+18268 8 1583 82
+18270 6 1583 82
+18276 a 1584 82
+18280 8 1382 82
+18288 8 1584 82
+18290 2 1585 82
+18292 2 1382 82
+18294 8 1585 82
+1829c 8 1382 82
+182a4 a 1585 82
+182ae 6 1585 82
+182b4 c 156 137
+182c0 6 256 82
+182c6 2e 1586 82
+FUNC 182f4 2c 0 testing::internal::CmpHelperNE<int, int>
+182f4 2 1615 82
+182f6 c 1615 82
+18302 4 1615 82
+18306 2 1615 82
+18308 c 1615 82
+18314 c 1615 82
+FUNC 18320 74 0 testing::internal::CmpHelperEQ<int, int>
+18320 8 1476 82
+18328 c 1476 82
+18334 2 1481 82
+18336 2 1476 82
+18338 4 1481 82
+1833c 2 1476 82
+1833e 2 1481 82
+18340 2 1476 82
+18342 2 1481 82
+18344 6 1482 82
+1834a 14 1382 82
+1835e 12 1471 82
+18370 c 156 137
+1837c 18 1488 82
+FUNC 18394 178 0 WaitForProcessToTerminate
+18394 10 129 6
+183a4 4 129 6
+183a8 12 131 6
+183ba 4 131 6
+183be 6 131 6
+183c4 4 131 6
+183c8 4 131 6
+183cc 2 131 6
+183ce 8 131 6
+183d6 2 131 6
+183d8 e 131 6
+183e6 8 131 6
+183ee 6 302 82
+183f4 e 131 6
+18402 6 256 82
+18408 2 132 6
+1840a 2 1139 87
+1840c e 132 6
+1841a 2 1139 87
+1841c 4 277 82
+18420 2 132 6
+18422 1a 132 6
+1843c 12 132 6
+1844e 6 132 6
+18454 8 132 6
+1845c 6 85 79
+18462 6 132 6
+18468 8 156 137
+18470 6 256 82
+18476 2 133 6
+18478 4 1512 82
+1847c 6 133 6
+18482 e 1512 82
+18490 6 133 6
+18496 6 302 82
+1849c 10 133 6
+184ac 6 133 6
+184b2 8 133 6
+184ba 6 85 79
+184c0 6 133 6
+184c6 6 256 82
+184cc 40 134 6
+FUNC 1850c 2ac 0 ReadMinidumpPathFromPipe
+1850c a 137 6
+18516 a 137 6
+18520 2 139 6
+18522 2 137 6
+18524 4 139 6
+18528 2 141 6
+1852a 4 137 6
+1852e 2 140 6
+18530 4 141 6
+18534 10 143 6
+18544 4 143 6
+18548 6 143 6
+1854e 2 144 6
+18550 4 1512 82
+18554 2 144 6
+18556 10 1512 82
+18566 2 143 6
+18568 4 1512 82
+1856c a 144 6
+18576 6 302 82
+1857c e 144 6
+1858a 6 256 82
+18590 2 1139 87
+18592 4 145 6
+18596 2 1139 87
+18598 4 145 6
+1859c 4 277 82
+185a0 2 145 6
+185a2 1a 145 6
+185bc 12 145 6
+185ce 6 145 6
+185d4 8 145 6
+185dc 6 85 79
+185e2 6 145 6
+185e8 8 156 137
+185f0 6 256 82
+185f6 10 148 6
+18606 4 1512 82
+1860a 2 148 6
+1860c e 1512 82
+1861a 6 148 6
+18620 6 302 82
+18626 10 148 6
+18636 6 148 6
+1863c 8 148 6
+18644 4 85 79
+18648 6 256 82
+1864e 6 149 6
+18654 8 1619 82
+1865c 8 1619 82
+18664 18 1619 82
+1867c 6 149 6
+18682 6 302 82
+18688 8 149 6
+18690 2 149 6
+18692 8 149 6
+1869a 6 149 6
+186a0 8 149 6
+186a8 6 85 79
+186ae 6 149 6
+186b4 a 256 82
+186be 2 150 6
+186c0 4 1512 82
+186c4 8 150 6
+186cc a 151 6
+186d6 4 1512 82
+186da 2 151 6
+186dc 10 1512 82
+186ec 6 151 6
+186f2 6 302 82
+186f8 10 151 6
+18708 6 151 6
+1870e 8 151 6
+18716 6 85 79
+1871c 6 151 6
+18722 6 256 82
+18728 c 156 6
+18734 6 256 82
+1873a 4 152 6
+1873e 2 153 6
+18740 2 152 6
+18742 4 153 6
+18746 8 154 6
+1874e c 155 6
+1875a 6 156 6
+18760 4 155 6
+18764 54 156 6
+FUNC 187b8 e8 0 testing::internal::CmpHelperOpFailure<long int, int>
+187b8 8 1579 82
+187c0 8 1579 82
+187c8 2 1583 82
+187ca 6 1579 82
+187d0 2 1583 82
+187d2 a 1579 82
+187dc 4 1583 82
+187e0 a 1583 82
+187ea 6 1583 82
+187f0 2 1583 82
+187f2 2 884 80
+187f4 6 1583 82
+187fa 6 1583 82
+18800 8 1583 82
+18808 6 1583 82
+1880e a 1584 82
+18818 8 884 80
+18820 4 259 126
+18824 2 75 132
+18826 4 259 126
+1882a 8 75 132
+18832 6 886 80
+18838 8 1584 82
+18840 a 1585 82
+1884a 8 1382 82
+18852 a 1585 82
+1885c 6 1585 82
+18862 c 156 137
+1886e 6 256 82
+18874 2c 1586 82
+FUNC 188a0 244 0 ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test::TestBody
+188a0 a 1019 6
+188aa 6 1019 6
+188b0 4 1020 6
+188b4 4 1019 6
+188b8 4 1021 6
+188bc 2 1020 6
+188be 2 1021 6
+188c0 2 1019 6
+188c2 4 1020 6
+188c6 8 1021 6
+188ce 8 1022 6
+188d6 2 1023 6
+188d8 2 1022 6
+188da 8 1023 6
+188e2 1c 1023 6
+188fe 6 1023 6
+18904 6 1024 6
+1890a 2 1139 87
+1890c 4 277 82
+18910 4 1139 87
+18914 2 1024 6
+18916 16 1024 6
+1892c 14 1024 6
+18940 6 256 82
+18946 a 1027 6
+18950 2 1623 82
+18952 2 1027 6
+18954 2 1028 6
+18956 2 1623 82
+18958 8 1623 82
+18960 1a 1623 82
+1897a 6 1028 6
+18980 6 302 82
+18986 12 1028 6
+18998 6 256 82
+1899e 6 1031 6
+189a4 2 1139 87
+189a6 4 277 82
+189aa 2 1139 87
+189ac 2 1031 6
+189ae 16 1031 6
+189c4 12 1031 6
+189d6 2 1031 6
+189d8 4 1031 6
+189dc 6 1031 6
+189e2 8 1031 6
+189ea 6 85 79
+189f0 6 1031 6
+189f6 8 156 137
+189fe 6 256 82
+18a04 a 1032 6
+18a0e 2 1623 82
+18a10 2 1032 6
+18a12 2 1033 6
+18a14 2 1623 82
+18a16 8 1623 82
+18a1e 1a 1623 82
+18a38 6 1033 6
+18a3e 6 302 82
+18a44 10 1033 6
+18a54 2 1033 6
+18a56 4 1033 6
+18a5a 6 1033 6
+18a60 8 1033 6
+18a68 6 85 79
+18a6e 6 1033 6
+18a74 c 256 82
+18a80 c 156 137
+18a8c 58 1034 6
+FUNC 18ae4 6c 0 testing::PrintToString<void*>
+18ae4 e 883 80
+18af2 2 883 80
+18af4 4 884 80
+18af8 2 883 80
+18afa 4 884 80
+18afe 2 883 80
+18b00 8 884 80
+18b08 2 310 80
+18b0a c 333 127
+18b16 6 318 80
+18b1c 8 291 126
+18b24 8 75 132
+18b2c 6 886 80
+18b32 1e 887 80
+FUNC 18b50 d4 0 testing::internal::CmpHelperOpFailure<void*, void*>
+18b50 8 1579 82
+18b58 8 1579 82
+18b60 2 1583 82
+18b62 6 1579 82
+18b68 2 1583 82
+18b6a a 1579 82
+18b74 4 1583 82
+18b78 a 1583 82
+18b82 6 1583 82
+18b88 2 1583 82
+18b8a 2 1382 82
+18b8c 6 1583 82
+18b92 6 1583 82
+18b98 8 1583 82
+18ba0 6 1583 82
+18ba6 a 1584 82
+18bb0 8 1382 82
+18bb8 8 1584 82
+18bc0 2 1585 82
+18bc2 2 1382 82
+18bc4 8 1585 82
+18bcc 8 1382 82
+18bd4 a 1585 82
+18bde 6 1585 82
+18be4 c 156 137
+18bf0 6 256 82
+18bf6 2e 1586 82
+FUNC 18c24 d8 0 testing::PrintToString<unsigned int>
+18c24 e 883 80
+18c32 2 883 80
+18c34 6 884 80
+18c3a 2 181 127
+18c3c 2 883 80
+18c3e 2 884 80
+18c40 2 883 80
+18c42 4 884 80
+18c46 10 181 127
+18c56 2 199 126
+18c58 10 211 126
+18c68 2 202 126
+18c6a 2 145 115
+18c6c 4 202 126
+18c70 2 145 115
+18c72 2 202 126
+18c74 6 145 115
+18c7a 6 202 126
+18c80 2 202 126
+18c82 2 202 126
+18c84 c 202 126
+18c90 18 57 128
+18ca8 1c 72 125
+18cc4 6 202 126
+18cca 6 210 126
+18cd0 6 212 126
+18cd6 8 75 132
+18cde 6 886 80
+18ce4 18 887 80
+FUNC 18cfc e8 0 testing::internal::CmpHelperLT<unsigned int, unsigned int>
+18cfc e 1619 82
+18d0a 14 1619 82
+18d1e 4 1619 82
+18d22 4 1619 82
+18d26 10 1583 82
+18d36 a 1583 82
+18d40 6 1583 82
+18d46 2 1583 82
+18d48 2 1382 82
+18d4a 6 1583 82
+18d50 6 1583 82
+18d56 8 1583 82
+18d5e 6 1583 82
+18d64 a 1584 82
+18d6e 8 1382 82
+18d76 8 1584 82
+18d7e 2 1585 82
+18d80 2 1382 82
+18d82 8 1585 82
+18d8a 8 1382 82
+18d92 a 1585 82
+18d9c 6 1585 82
+18da2 c 156 137
+18dae 6 256 82
+18db4 30 1619 82
+FUNC 18de4 74 0 testing::internal::CmpHelperEQ<unsigned int, unsigned int>
+18de4 8 1476 82
+18dec c 1476 82
+18df8 2 1481 82
+18dfa 2 1476 82
+18dfc 4 1481 82
+18e00 2 1476 82
+18e02 2 1481 82
+18e04 2 1476 82
+18e06 2 1481 82
+18e08 6 1482 82
+18e0e 14 1382 82
+18e22 12 1471 82
+18e34 c 156 137
+18e40 18 1488 82
+FUNC 18e58 11c 0 testing::internal::CmpHelperEQ<unsigned int, long long unsigned int>
+18e58 e 1476 82
+18e66 2 1481 82
+18e68 2 1476 82
+18e6a 4 1476 82
+18e6e 2 1481 82
+18e70 4 1476 82
+18e74 a 1481 82
+18e7e 2 1476 82
+18e80 2 1481 82
+18e82 6 1482 82
+18e88 6 1382 82
+18e8e 4 181 127
+18e92 c 884 80
+18e9e e 181 127
+18eac 2 199 126
+18eae 12 211 126
+18ec0 2 202 126
+18ec2 2 145 115
+18ec4 4 202 126
+18ec8 2 145 115
+18eca 2 202 126
+18ecc 6 145 115
+18ed2 6 202 126
+18ed8 2 202 126
+18eda 2 202 126
+18edc c 202 126
+18ee8 18 57 128
+18f00 1a 83 125
+18f1a 6 202 126
+18f20 4 210 126
+18f24 2 75 132
+18f26 6 212 126
+18f2c 8 75 132
+18f34 6 886 80
+18f3a 14 1471 82
+18f4e c 156 137
+18f5a 1a 1488 82
+FUNC 18f74 96 0 std::priv::__put_num<char, std::char_traits<char>, long long int>
+18f74 4 194 126
+18f78 6 194 126
+18f7e a 181 127
+18f88 2 199 126
+18f8a 10 211 126
+18f9a 2 202 126
+18f9c 2 145 115
+18f9e 4 202 126
+18fa2 2 145 115
+18fa4 2 202 126
+18fa6 6 145 115
+18fac 6 202 126
+18fb2 2 202 126
+18fb4 2 202 126
+18fb6 c 202 126
+18fc2 18 57 128
+18fda 1a 78 125
+18ff4 6 202 126
+18ffa 4 210 126
+18ffe 6 212 126
+19004 6 213 126
+FUNC 1900c 110 0 testing::internal::CmpHelperGT<long long int, int>
+1900c 12 1623 82
+1901e 1e 1623 82
+1903c 4 1623 82
+19040 4 1623 82
+19044 10 1583 82
+19054 a 1583 82
+1905e 6 1583 82
+19064 2 1583 82
+19066 2 884 80
+19068 6 1583 82
+1906e 6 1583 82
+19074 8 1583 82
+1907c 6 1583 82
+19082 a 1584 82
+1908c 8 884 80
+19094 6 268 126
+1909a 2 75 132
+1909c 4 268 126
+190a0 8 75 132
+190a8 6 886 80
+190ae 8 1584 82
+190b6 a 1585 82
+190c0 8 1382 82
+190c8 a 1585 82
+190d2 6 1585 82
+190d8 c 156 137
+190e4 6 256 82
+190ea 32 1623 82
+FUNC 1911c 94 0 testing::internal::CmpHelperEQ<MDExceptionCodeLinux, unsigned int>
+1911c e 1476 82
+1912a 8 1476 82
+19132 6 1481 82
+19138 2 1476 82
+1913a 2 1481 82
+1913c 2 1476 82
+1913e 2 1481 82
+19140 6 1482 82
+19146 4 173 80
+1914a a 884 80
+19154 6 268 126
+1915a 4 75 132
+1915e 6 268 126
+19164 8 75 132
+1916c 6 886 80
+19172 8 1382 82
+1917a 10 1471 82
+1918a c 156 137
+19196 1a 1488 82
+FUNC 191b0 62 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_reserve
+191b0 2 170 135
+191b2 2 170 135
+191b4 4 346 106
+191b8 2 158 106
+191ba 2 347 106
+191bc 2 158 106
+191be 8 134 124
+191c6 8 158 106
+191ce 4 352 106
+191d2 4 356 106
+191d6 12 86 142
+191e8 8 86 142
+191f0 6 146 108
+191f6 8 101 108
+191fe 8 174 135
+19206 2 175 135
+19208 2 160 137
+1920a 2 164 137
+1920c 2 165 137
+1920e 4 176 135
+FUNC 19212 30 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back
+19212 2 534 136
+19214 4 534 136
+19218 a 535 136
+19222 8 536 136
+1922a 6 536 136
+19230 8 101 108
+19238 2 232 145
+1923a 8 539 136
+FUNC 19242 5e 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow
+19242 2 142 131
+19244 2 142 131
+19246 2 144 131
+19248 2 142 131
+1924a 2 144 131
+1924c 6 145 131
+19252 c 146 131
+1925e 4 147 131
+19262 6 115 134
+19268 4 149 131
+1926c 6 150 131
+19272 8 151 131
+1927a 2 153 131
+1927c 2 93 134
+1927e 2 94 134
+19280 4 95 134
+19284 6 157 131
+1928a 4 117 134
+1928e 2 119 134
+19290 6 115 134
+19296 4 182 145
+1929a 4 163 131
+1929e 2 166 131
+FUNC 192a0 64 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+192a0 2 180 135
+192a2 4 180 135
+192a6 4 181 135
+192aa 6 400 136
+192b0 a 182 135
+192ba 8 600 135
+192c2 8 184 135
+192ca a 185 135
+192d4 8 185 135
+192dc 2 186 135
+192de 4 249 142
+192e2 4 146 108
+192e6 4 249 142
+192ea 8 101 108
+192f2 2 232 145
+192f4 6 189 135
+192fa a 192 135
+FUNC 19304 90 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_xsputnc
+19304 4 213 131
+19308 2 213 131
+1930a 2 217 131
+1930c 2 213 131
+1930e 4 217 131
+19312 2 213 131
+19314 2 217 131
+19316 4 217 131
+1931a a 220 131
+19324 4 221 131
+19328 4 222 131
+1932c 4 235 145
+19330 2 115 134
+19332 2 225 131
+19334 4 115 134
+19338 4 225 131
+1933c 6 235 145
+19342 4 230 131
+19346 2 215 131
+19348 c 238 131
+19354 4 239 131
+19358 4 240 131
+1935c 2 239 131
+1935e 8 240 131
+19366 2 242 131
+19368 2 93 134
+1936a 2 94 134
+1936c 4 95 134
+19370 c 244 131
+1937c 2 400 136
+1937e 2 117 134
+19380 2 400 136
+19382 2 115 134
+19384 2 119 134
+19386 2 115 134
+19388 6 250 131
+1938e 2 215 131
+19390 4 254 131
+FUNC 19394 84 0 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::setbuf
+19394 2 263 131
+19396 4 262 131
+1939a 2 262 131
+1939c 6 263 131
+193a2 2 279 131
+193a4 2 269 131
+193a6 4 267 131
+193aa c 271 131
+193b6 2 270 131
+193b8 2 265 131
+193ba 2 274 131
+193bc 4 266 131
+193c0 2 400 136
+193c2 6 276 131
+193c8 4 400 136
+193cc 4 276 131
+193d0 4 275 131
+193d4 8 264 131
+193dc 2 72 137
+193de 4 72 137
+193e2 4 162 135
+193e6 6 72 137
+193ec 4 163 135
+193f0 6 166 135
+193f6 8 284 131
+193fe 2 285 131
+19400 2 93 134
+19402 2 94 134
+19404 2 95 134
+19406 4 288 131
+1940a 2 115 134
+1940c 2 117 134
+1940e 2 119 134
+19410 2 115 134
+19412 6 295 131
+FUNC 19418 2f4 0 ChildCrash
+19418 8 210 6
+19420 4 210 6
+19424 2 211 6
+19426 4 210 6
+1942a 2 211 6
+1942c 2 210 6
+1942e 4 211 6
+19432 2 212 6
+19434 a 214 6
+1943e 4 212 6
+19442 8 214 6
+1944a 6 215 6
+19450 c 216 6
+1945c a 218 6
+19466 8 218 6
+1946e 2 218 6
+19470 a 218 6
+1947a 2 218 6
+1947c 4 218 6
+19480 a 218 6
+1948a 6 302 82
+19490 10 218 6
+194a0 6 218 6
+194a6 8 218 6
+194ae 6 85 79
+194b4 6 218 6
+194ba a 256 82
+194c4 2 213 6
+194c6 4 221 6
+194ca 8 222 6
+194d2 6 225 6
+194d8 8 227 6
+194e0 6 227 6
+194e6 8 227 6
+194ee 2 227 6
+194f0 e 227 6
+194fe 6 229 6
+19504 2 230 6
+19506 4 233 6
+1950a 2 230 6
+1950c 4 233 6
+19510 6 233 6
+19516 2 233 6
+19518 2 233 6
+1951a 18 233 6
+19532 2 233 6
+19534 4 108 57
+19538 4 233 6
+1953c a 207 6
+19546 4 98 57
+1954a 6 98 57
+19550 6 98 57
+19556 6 239 6
+1955c 6 240 6
+19562 6 242 6
+19568 6 242 6
+1956e 4 242 6
+19572 2 242 6
+19574 8 242 6
+1957c 8 242 6
+19584 4 242 6
+19588 c 244 6
+19594 12 242 6
+195a6 6 245 6
+195ac 6 245 6
+195b2 4 245 6
+195b6 2 245 6
+195b8 8 245 6
+195c0 8 245 6
+195c8 a 245 6
+195d2 14 245 6
+195e6 6 245 6
+195ec 8 245 6
+195f4 6 85 79
+195fa 6 245 6
+19600 2 245 6
+19602 4 248 6
+19606 4 248 6
+1960a 4 248 6
+1960e 4 248 6
+19612 c 1552 82
+1961e 2 248 6
+19620 e 1552 82
+1962e a 248 6
+19638 6 302 82
+1963e e 248 6
+1964c 6 256 82
+19652 1a 249 6
+1966c 6 302 82
+19672 10 249 6
+19682 6 249 6
+19688 8 249 6
+19690 6 85 79
+19696 6 249 6
+1969c e 256 82
+196aa 6 250 6
+196b0 c 156 137
+196bc 50 251 6
+FUNC 1970c 6c 0 ExceptionHandlerTest_ChildCrashWithPath_Test::TestBody
+1970c 4 253 6
+19710 8 254 6
+19718 6 254 6
+1971e 4 254 6
+19722 2 254 6
+19724 6 254 6
+1972a 8 254 6
+19732 a 254 6
+1973c 16 254 6
+19752 6 254 6
+19758 8 254 6
+19760 6 85 79
+19766 6 254 6
+1976c c 255 6
+FUNC 19778 70 0 ExceptionHandlerTest_ChildCrashWithFD_Test::TestBody
+19778 4 257 6
+1977c 8 258 6
+19784 6 258 6
+1978a 4 258 6
+1978e 2 258 6
+19790 6 258 6
+19796 8 258 6
+1979e a 258 6
+197a8 18 258 6
+197c0 6 258 6
+197c6 8 258 6
+197ce 6 85 79
+197d4 6 258 6
+197da e 259 6
+FUNC 197e8 148 0 ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test::TestBody
+197e8 8 315 6
+197f0 4 315 6
+197f4 4 316 6
+197f8 2 315 6
+197fa 2 316 6
+197fc 2 315 6
+197fe 4 316 6
+19802 6 318 6
+19808 8 319 6
+19810 6 320 6
+19816 4 277 82
+1981a 6 1139 87
+19820 2 320 6
+19822 16 320 6
+19838 8 320 6
+19840 2 320 6
+19842 e 320 6
+19850 6 320 6
+19856 8 320 6
+1985e 6 85 79
+19864 6 320 6
+1986a 6 156 137
+19870 e 256 82
+1987e 8 321 6
+19886 c 321 6
+19892 6 156 137
+19898 6 324 6
+1989e 6 324 6
+198a4 4 324 6
+198a8 2 324 6
+198aa 8 324 6
+198b2 8 324 6
+198ba a 324 6
+198c4 18 324 6
+198dc 6 324 6
+198e2 8 324 6
+198ea 6 85 79
+198f0 c 324 6
+198fc 34 325 6
+FUNC 19930 148 0 ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test::TestBody
+19930 8 327 6
+19938 4 327 6
+1993c 4 328 6
+19940 2 327 6
+19942 2 328 6
+19944 2 327 6
+19946 4 328 6
+1994a 6 330 6
+19950 8 331 6
+19958 6 332 6
+1995e 4 277 82
+19962 6 1139 87
+19968 2 332 6
+1996a 16 332 6
+19980 8 332 6
+19988 2 332 6
+1998a e 332 6
+19998 6 332 6
+1999e 8 332 6
+199a6 6 85 79
+199ac 6 332 6
+199b2 6 156 137
+199b8 e 256 82
+199c6 8 333 6
+199ce c 333 6
+199da 6 156 137
+199e0 6 336 6
+199e6 6 336 6
+199ec 4 336 6
+199f0 2 336 6
+199f2 8 336 6
+199fa 8 336 6
+19a02 a 336 6
+19a0c 18 336 6
+19a24 6 336 6
+19a2a 8 336 6
+19a32 6 85 79
+19a38 c 336 6
+19a44 34 337 6
+FUNC 19a78 148 0 ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test::TestBody
+19a78 8 339 6
+19a80 4 339 6
+19a84 4 340 6
+19a88 2 339 6
+19a8a 2 340 6
+19a8c 2 339 6
+19a8e 4 340 6
+19a92 6 342 6
+19a98 8 343 6
+19aa0 6 344 6
+19aa6 4 277 82
+19aaa 6 1139 87
+19ab0 2 344 6
+19ab2 16 344 6
+19ac8 8 344 6
+19ad0 2 344 6
+19ad2 e 344 6
+19ae0 6 344 6
+19ae6 8 344 6
+19aee 6 85 79
+19af4 6 344 6
+19afa 6 156 137
+19b00 e 256 82
+19b0e 8 345 6
+19b16 c 345 6
+19b22 6 156 137
+19b28 6 348 6
+19b2e 6 348 6
+19b34 4 348 6
+19b38 2 348 6
+19b3a 8 348 6
+19b42 8 348 6
+19b4a a 348 6
+19b54 18 348 6
+19b6c 6 348 6
+19b72 8 348 6
+19b7a 6 85 79
+19b80 c 348 6
+19b8c 34 349 6
+FUNC 19bc0 148 0 ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test::TestBody
+19bc0 8 351 6
+19bc8 4 351 6
+19bcc 4 352 6
+19bd0 2 351 6
+19bd2 2 352 6
+19bd4 2 351 6
+19bd6 4 352 6
+19bda 6 354 6
+19be0 8 355 6
+19be8 6 356 6
+19bee 4 277 82
+19bf2 6 1139 87
+19bf8 2 356 6
+19bfa 16 356 6
+19c10 8 356 6
+19c18 2 356 6
+19c1a e 356 6
+19c28 6 356 6
+19c2e 8 356 6
+19c36 6 85 79
+19c3c 6 356 6
+19c42 6 156 137
+19c48 e 256 82
+19c56 8 357 6
+19c5e c 357 6
+19c6a 6 156 137
+19c70 6 360 6
+19c76 6 360 6
+19c7c 4 360 6
+19c80 2 360 6
+19c82 8 360 6
+19c8a 8 360 6
+19c92 a 360 6
+19c9c 18 360 6
+19cb4 6 360 6
+19cba 8 360 6
+19cc2 6 85 79
+19cc8 c 360 6
+19cd4 34 361 6
+FUNC 19d08 c4 0 ExceptionHandlerTest_RedeliveryToDefaultHandler_Test::TestBody
+19d08 6 363 6
+19d0e 4 363 6
+19d12 2 364 6
+19d14 2 363 6
+19d16 2 364 6
+19d18 2 363 6
+19d1a 4 364 6
+19d1e 6 366 6
+19d24 4 367 6
+19d28 a 368 6
+19d32 c 368 6
+19d3e 6 156 137
+19d44 8 373 6
+19d4c 6 373 6
+19d52 4 373 6
+19d56 2 373 6
+19d58 8 373 6
+19d60 8 373 6
+19d68 a 373 6
+19d72 18 373 6
+19d8a 6 373 6
+19d90 8 373 6
+19d98 6 85 79
+19d9e 6 373 6
+19da4 6 373 6
+19daa 22 374 6
+FUNC 19dcc 270 0 ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test::TestBody
+19dcc 8 380 6
+19dd4 4 380 6
+19dd8 4 381 6
+19ddc 2 380 6
+19dde 2 381 6
+19de0 2 380 6
+19de2 4 381 6
+19de6 6 382 6
+19dec 8 383 6
+19df4 6 385 6
+19dfa 4 277 82
+19dfe 2 1139 87
+19e00 2 385 6
+19e02 16 385 6
+19e18 8 385 6
+19e20 2 385 6
+19e22 e 385 6
+19e30 6 385 6
+19e36 8 385 6
+19e3e 6 85 79
+19e44 6 385 6
+19e4a 6 156 137
+19e50 c 256 82
+19e5c 4 391 6
+19e60 6 256 82
+19e66 8 391 6
+19e6e 1c 391 6
+19e8a 6 391 6
+19e90 8 113 100
+19e98 2 1615 82
+19e9a 2 113 100
+19e9c 6 397 6
+19ea2 2 1615 82
+19ea4 8 1615 82
+19eac 1a 1615 82
+19ec6 6 397 6
+19ecc 6 302 82
+19ed2 12 397 6
+19ee4 6 256 82
+19eea 8 113 100
+19ef2 4 399 6
+19ef6 2 1615 82
+19ef8 4 399 6
+19efc 2 1615 82
+19efe 8 1615 82
+19f06 1a 1615 82
+19f20 6 399 6
+19f26 6 302 82
+19f2c 10 399 6
+19f3c 2 399 6
+19f3e 4 399 6
+19f42 6 399 6
+19f48 8 399 6
+19f50 6 85 79
+19f56 6 399 6
+19f5c 14 256 82
+19f70 4 207 6
+19f74 2 403 6
+19f76 6 207 6
+19f7c 4 403 6
+19f80 6 406 6
+19f86 6 406 6
+19f8c 4 406 6
+19f90 2 406 6
+19f92 8 406 6
+19f9a 8 406 6
+19fa2 a 406 6
+19fac 18 406 6
+19fc4 6 406 6
+19fca 8 406 6
+19fd2 6 85 79
+19fd8 c 406 6
+19fe4 58 407 6
+FUNC 1a03c f8 0 ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test::TestBody
+1a03c 8 409 6
+1a044 4 409 6
+1a048 4 410 6
+1a04c 2 409 6
+1a04e 2 410 6
+1a050 2 409 6
+1a052 4 410 6
+1a056 6 412 6
+1a05c 4 413 6
+1a060 a 419 6
+1a06a 1a 419 6
+1a084 6 419 6
+1a08a 8 420 6
+1a092 c 420 6
+1a09e 6 156 137
+1a0a4 6 420 6
+1a0aa 8 422 6
+1a0b2 6 422 6
+1a0b8 4 422 6
+1a0bc 2 422 6
+1a0be 8 422 6
+1a0c6 8 422 6
+1a0ce a 422 6
+1a0d8 18 422 6
+1a0f0 6 422 6
+1a0f6 8 422 6
+1a0fe 6 85 79
+1a104 6 422 6
+1a10a 6 422 6
+1a110 24 423 6
+FUNC 1a134 f8 0 ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test::TestBody
+1a134 8 425 6
+1a13c 4 425 6
+1a140 4 426 6
+1a144 2 425 6
+1a146 2 426 6
+1a148 2 425 6
+1a14a 4 426 6
+1a14e 6 428 6
+1a154 4 429 6
+1a158 a 435 6
+1a162 1c 435 6
+1a17e 6 435 6
+1a184 8 436 6
+1a18c a 436 6
+1a196 6 156 137
+1a19c 6 436 6
+1a1a2 8 438 6
+1a1aa 6 438 6
+1a1b0 4 438 6
+1a1b4 2 438 6
+1a1b6 8 438 6
+1a1be 8 438 6
+1a1c6 a 438 6
+1a1d0 18 438 6
+1a1e8 6 438 6
+1a1ee 8 438 6
+1a1f6 6 85 79
+1a1fc 6 438 6
+1a202 6 438 6
+1a208 24 439 6
+FUNC 1a22c fc 0 ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test::TestBody
+1a22c 8 441 6
+1a234 4 441 6
+1a238 4 442 6
+1a23c 2 441 6
+1a23e 2 442 6
+1a240 2 441 6
+1a242 4 442 6
+1a246 6 444 6
+1a24c 4 445 6
+1a250 a 451 6
+1a25a 1c 451 6
+1a276 6 451 6
+1a27c 8 452 6
+1a284 c 452 6
+1a290 6 156 137
+1a296 6 452 6
+1a29c 8 454 6
+1a2a4 6 454 6
+1a2aa 4 454 6
+1a2ae 2 454 6
+1a2b0 8 454 6
+1a2b8 8 454 6
+1a2c0 a 454 6
+1a2ca 18 454 6
+1a2e2 6 454 6
+1a2e8 8 454 6
+1a2f0 6 85 79
+1a2f6 6 454 6
+1a2fc 6 454 6
+1a302 26 455 6
+FUNC 1a328 fc 0 ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test::TestBody
+1a328 8 457 6
+1a330 4 457 6
+1a334 4 458 6
+1a338 2 457 6
+1a33a 2 458 6
+1a33c 2 457 6
+1a33e 4 458 6
+1a342 6 460 6
+1a348 4 461 6
+1a34c a 467 6
+1a356 1c 467 6
+1a372 6 467 6
+1a378 8 468 6
+1a380 c 468 6
+1a38c 6 156 137
+1a392 6 468 6
+1a398 8 470 6
+1a3a0 6 470 6
+1a3a6 4 470 6
+1a3aa 2 470 6
+1a3ac 8 470 6
+1a3b4 8 470 6
+1a3bc a 470 6
+1a3c6 18 470 6
+1a3de 6 470 6
+1a3e4 8 470 6
+1a3ec 6 85 79
+1a3f2 6 470 6
+1a3f8 6 470 6
+1a3fe 26 471 6
+FUNC 1a424 748 0 ExceptionHandlerTest_ExternalDumper_Test::TestBody
+1a424 c 926 6
+1a430 6 926 6
+1a436 4 928 6
+1a43a 4 926 6
+1a43e 10 928 6
+1a44e 8 928 6
+1a456 4 928 6
+1a45a 4 928 6
+1a45e 4 928 6
+1a462 e 928 6
+1a470 a 928 6
+1a47a 6 302 82
+1a480 14 928 6
+1a494 6 928 6
+1a49a 8 928 6
+1a4a2 6 85 79
+1a4a8 4 928 6
+1a4ac 4 930 6
+1a4b0 2 256 82
+1a4b2 4 930 6
+1a4b6 4 256 82
+1a4ba 14 930 6
+1a4ce 12 931 6
+1a4e0 4 933 6
+1a4e4 4 934 6
+1a4e8 4 937 6
+1a4ec 8 935 6
+1a4f4 a 937 6
+1a4fe 4 937 6
+1a502 6 937 6
+1a508 8 937 6
+1a510 20 937 6
+1a530 6 156 137
+1a536 4 144 5
+1a53a 2 939 6
+1a53c 4 144 5
+1a540 c 207 6
+1a54c 4 939 6
+1a550 4 942 6
+1a554 8 941 6
+1a55c a 942 6
+1a566 4 948 6
+1a56a 6 949 6
+1a570 6 951 6
+1a576 6 952 6
+1a57c 2 953 6
+1a57e 4 950 6
+1a582 4 953 6
+1a586 12 955 6
+1a598 4 955 6
+1a59c 6 955 6
+1a5a2 4 956 6
+1a5a6 2 955 6
+1a5a8 4 956 6
+1a5ac 8 1512 82
+1a5b4 2 955 6
+1a5b6 e 1512 82
+1a5c4 a 956 6
+1a5ce 6 302 82
+1a5d4 10 956 6
+1a5e4 4 959 6
+1a5e8 6 959 6
+1a5ee 8 959 6
+1a5f6 6 85 79
+1a5fc 6 959 6
+1a602 a 256 82
+1a60c 4 961 6
+1a610 2 962 6
+1a612 4 961 6
+1a616 2 962 6
+1a618 4 963 6
+1a61c 2 962 6
+1a61e 2 963 6
+1a620 4 1512 82
+1a624 4 963 6
+1a628 6 1512 82
+1a62e 6 963 6
+1a634 4 969 6
+1a638 4 1512 82
+1a63c 6 963 6
+1a642 8 965 6
+1a64a 8 967 6
+1a652 2 968 6
+1a654 2 970 6
+1a656 2 968 6
+1a658 4 969 6
+1a65c 2 970 6
+1a65e 4 1512 82
+1a662 2 970 6
+1a664 c 1512 82
+1a670 a 970 6
+1a67a 6 302 82
+1a680 14 970 6
+1a694 6 970 6
+1a69a 8 970 6
+1a6a2 6 85 79
+1a6a8 6 970 6
+1a6ae e 256 82
+1a6bc 1c 1512 82
+1a6d8 4 957 6
+1a6dc 6 302 82
+1a6e2 12 957 6
+1a6f4 4 958 6
+1a6f8 6 256 82
+1a6fe 6 1552 82
+1a704 4 958 6
+1a708 e 1552 82
+1a716 6 958 6
+1a71c 6 302 82
+1a722 10 958 6
+1a732 6 256 82
+1a738 c 959 6
+1a744 4 1552 82
+1a748 2 959 6
+1a74a e 1552 82
+1a758 8 959 6
+1a760 6 302 82
+1a766 10 959 6
+1a776 6 256 82
+1a77c 8 971 6
+1a784 2 972 6
+1a786 6 975 6
+1a78c 2 89 99
+1a78e 2 90 99
+1a790 8 89 99
+1a798 8 90 99
+1a7a0 8 91 99
+1a7a8 2e 979 6
+1a7d6 6 302 82
+1a7dc 10 979 6
+1a7ec 6 256 82
+1a7f2 1a 980 6
+1a80c 6 302 82
+1a812 12 980 6
+1a824 6 980 6
+1a82a 8 980 6
+1a832 6 85 79
+1a838 6 980 6
+1a83e 4 256 82
+1a842 4 982 6
+1a846 6 256 82
+1a84c 6 982 6
+1a852 10 983 6
+1a862 12 984 6
+1a874 2 1139 87
+1a876 4 277 82
+1a87a 2 984 6
+1a87c 18 984 6
+1a894 14 984 6
+1a8a8 6 984 6
+1a8ae 8 984 6
+1a8b6 6 85 79
+1a8bc 6 984 6
+1a8c2 6 156 137
+1a8c8 a 256 82
+1a8d2 2 987 6
+1a8d4 6 987 6
+1a8da 2 987 6
+1a8dc 12 987 6
+1a8ee 4 987 6
+1a8f2 6 987 6
+1a8f8 4 1512 82
+1a8fc 4 987 6
+1a900 e 1512 82
+1a90e 8 987 6
+1a916 6 302 82
+1a91c e 987 6
+1a92a 4 994 6
+1a92e 6 994 6
+1a934 8 994 6
+1a93c 6 85 79
+1a942 6 994 6
+1a948 e 256 82
+1a956 8 990 6
+1a95e 16 990 6
+1a974 6 990 6
+1a97a 8 990 6
+1a982 6 85 79
+1a988 6 990 6
+1a98e e 156 137
+1a99c 6 256 82
+1a9a2 c 988 6
+1a9ae 4 1552 82
+1a9b2 2 988 6
+1a9b4 e 1552 82
+1a9c2 6 988 6
+1a9c8 6 302 82
+1a9ce 10 988 6
+1a9de 6 990 6
+1a9e4 4 990 6
+1a9e8 2 990 6
+1a9ea 8 990 6
+1a9f2 c 990 6
+1a9fe 4 990 6
+1aa02 6 993 6
+1aa08 4 993 6
+1aa0c 4 993 6
+1aa10 6 1552 82
+1aa16 2 993 6
+1aa18 2 1552 82
+1aa1a 2 993 6
+1aa1c e 1552 82
+1aa2a 6 993 6
+1aa30 6 302 82
+1aa36 16 993 6
+1aa4c 6 256 82
+1aa52 18 994 6
+1aa6a 6 302 82
+1aa70 10 994 6
+1aa80 6 256 82
+1aa86 8 995 6
+1aa8e 4 156 137
+1aa92 da 996 6
+FUNC 1ab6c 884 0 ExceptionHandlerTest_InstructionPointerMemory_Test::TestBody
+1ab6c c 487 6
+1ab78 6 487 6
+1ab7e 2 490 6
+1ab80 2 487 6
+1ab82 a 488 6
+1ab8c a 490 6
+1ab96 8 490 6
+1ab9e 4 490 6
+1aba2 4 490 6
+1aba6 6 490 6
+1abac e 490 6
+1abba a 490 6
+1abc4 6 302 82
+1abca 14 490 6
+1abde 6 490 6
+1abe4 8 490 6
+1abec 6 85 79
+1abf2 6 490 6
+1abf8 8 256 82
+1ac00 4 494 6
+1ac04 6 256 82
+1ac0a 4 494 6
+1ac0e 4 497 6
+1ac12 6 498 6
+1ac18 4 502 6
+1ac1c 6 499 6
+1ac22 8 502 6
+1ac2a 20 502 6
+1ac4a 6 502 6
+1ac50 12 510 6
+1ac62 4 511 6
+1ac66 4 512 6
+1ac6a c 517 6
+1ac76 4 68 6
+1ac7a 4 517 6
+1ac7e 8 68 6
+1ac86 2 524 6
+1ac88 6 524 6
+1ac8e 6 526 6
+1ac94 a 528 6
+1ac9e 6 528 6
+1aca4 4 528 6
+1aca8 2 528 6
+1acaa 8 528 6
+1acb2 8 528 6
+1acba 2 530 6
+1acbc 4 528 6
+1acc0 8 530 6
+1acc8 c 531 6
+1acd4 1a 528 6
+1acee 6 528 6
+1acf4 8 528 6
+1acfc 6 85 79
+1ad02 6 528 6
+1ad08 2 528 6
+1ad0a 6 531 6
+1ad10 4 531 6
+1ad14 2 531 6
+1ad16 8 531 6
+1ad1e c 531 6
+1ad2a 4 531 6
+1ad2e 6 534 6
+1ad34 2 534 6
+1ad36 4 534 6
+1ad3a 8 1552 82
+1ad42 2 534 6
+1ad44 2 1552 82
+1ad46 2 534 6
+1ad48 e 1552 82
+1ad56 8 534 6
+1ad5e 6 302 82
+1ad64 16 534 6
+1ad7a 1a 531 6
+1ad94 6 531 6
+1ad9a 8 531 6
+1ada2 6 85 79
+1ada8 6 531 6
+1adae 2 531 6
+1adb0 6 256 82
+1adb6 1a 535 6
+1add0 6 302 82
+1add6 14 535 6
+1adea 6 535 6
+1adf0 8 535 6
+1adf8 6 85 79
+1adfe 6 535 6
+1ae04 8 256 82
+1ae0c 4 541 6
+1ae10 6 256 82
+1ae16 8 541 6
+1ae1e 6 542 6
+1ae24 4 1139 87
+1ae28 4 277 82
+1ae2c 2 542 6
+1ae2e 1e 542 6
+1ae4c 14 542 6
+1ae60 6 256 82
+1ae66 8 544 6
+1ae6e 6 545 6
+1ae74 8 277 82
+1ae7c 2 545 6
+1ae7e 4 277 82
+1ae82 4 1139 87
+1ae86 2 546 6
+1ae88 1e 546 6
+1aea6 14 546 6
+1aeba 6 256 82
+1aec0 8 277 82
+1aec8 4 1139 87
+1aecc 4 277 82
+1aed0 2 547 6
+1aed2 1e 547 6
+1aef0 16 547 6
+1af06 6 547 6
+1af0c 8 547 6
+1af14 6 85 79
+1af1a 6 547 6
+1af20 4 156 137
+1af24 6 256 82
+1af2a 2 548 6
+1af2c 6 545 65
+1af32 4 545 65
+1af36 a 548 6
+1af40 2 548 6
+1af42 e 548 6
+1af50 6 548 6
+1af56 6 302 82
+1af5c 14 548 6
+1af70 6 548 6
+1af76 8 548 6
+1af7e 6 85 79
+1af84 8 548 6
+1af8c 6 256 82
+1af92 6 550 6
+1af98 6 277 82
+1af9e 4 1139 87
+1afa2 4 277 82
+1afa6 8 1139 87
+1afae 2 551 6
+1afb0 16 551 6
+1afc6 14 551 6
+1afda 6 551 6
+1afe0 8 551 6
+1afe8 6 85 79
+1afee 4 551 6
+1aff2 6 256 82
+1aff8 8 554 6
+1b000 4 1139 87
+1b004 2 277 82
+1b006 2 554 6
+1b008 16 554 6
+1b01e 14 554 6
+1b032 6 256 82
+1b038 e 557 6
+1b046 a 277 82
+1b050 4 1139 87
+1b054 2 558 6
+1b056 16 558 6
+1b06c 14 558 6
+1b080 6 256 82
+1b086 8 560 6
+1b08e 4 1512 82
+1b092 2 560 6
+1b094 e 1512 82
+1b0a2 4 560 6
+1b0a6 6 302 82
+1b0ac 16 560 6
+1b0c2 6 560 6
+1b0c8 8 560 6
+1b0d0 6 85 79
+1b0d6 6 560 6
+1b0dc 6 256 82
+1b0e2 6 561 6
+1b0e8 6 277 82
+1b0ee 2 1139 87
+1b0f0 4 277 82
+1b0f4 2 1139 87
+1b0f6 2 562 6
+1b0f8 16 562 6
+1b10e 16 562 6
+1b124 6 562 6
+1b12a 8 562 6
+1b132 6 85 79
+1b138 6 562 6
+1b13e 6 156 137
+1b144 14 256 82
+1b158 4 567 6
+1b15c a 566 6
+1b166 a 567 6
+1b170 10 568 6
+1b180 2 277 82
+1b182 2 1139 87
+1b184 2 568 6
+1b186 1a 568 6
+1b1a0 18 568 6
+1b1b8 6 568 6
+1b1be 8 568 6
+1b1c6 6 85 79
+1b1cc 6 568 6
+1b1d2 6 156 137
+1b1d8 6 256 82
+1b1de 12 569 6
+1b1f0 2 1139 87
+1b1f2 2 569 6
+1b1f4 2 277 82
+1b1f6 2 1139 87
+1b1f8 2 569 6
+1b1fa 1a 569 6
+1b214 18 569 6
+1b22c 6 569 6
+1b232 8 570 6
+1b23a 6 85 79
+1b240 6 569 6
+1b246 6 156 137
+1b24c 6 256 82
+1b252 10 571 6
+1b262 2 1139 87
+1b264 2 571 6
+1b266 2 277 82
+1b268 2 1139 87
+1b26a 2 571 6
+1b26c 1a 571 6
+1b286 18 571 6
+1b29e 6 571 6
+1b2a4 8 572 6
+1b2ac 6 85 79
+1b2b2 6 571 6
+1b2b8 6 156 137
+1b2be 6 256 82
+1b2c4 8 574 6
+1b2cc 6 574 6
+1b2d2 10 156 137
+1b2e2 10e 575 6
+FUNC 1b3f0 7f8 0 ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test::TestBody
+1b3f0 a 579 6
+1b3fa 4 579 6
+1b3fe 4 580 6
+1b402 2 579 6
+1b404 2 580 6
+1b406 4 582 6
+1b40a 2 579 6
+1b40c 4 580 6
+1b410 a 582 6
+1b41a 8 582 6
+1b422 4 582 6
+1b426 4 582 6
+1b42a 4 582 6
+1b42e e 582 6
+1b43c a 582 6
+1b446 6 302 82
+1b44c 14 582 6
+1b460 6 582 6
+1b466 8 582 6
+1b46e 6 85 79
+1b474 6 582 6
+1b47a e 256 82
+1b488 4 589 6
+1b48c 4 590 6
+1b490 4 594 6
+1b494 8 591 6
+1b49c 8 594 6
+1b4a4 20 594 6
+1b4c4 6 594 6
+1b4ca 12 602 6
+1b4dc 4 603 6
+1b4e0 4 604 6
+1b4e4 4 609 6
+1b4e8 4 68 6
+1b4ec 4 609 6
+1b4f0 2 68 6
+1b4f2 2 609 6
+1b4f4 6 68 6
+1b4fa 2 616 6
+1b4fc 6 616 6
+1b502 8 618 6
+1b50a 8 620 6
+1b512 6 620 6
+1b518 4 620 6
+1b51c 2 620 6
+1b51e 8 620 6
+1b526 6 620 6
+1b52c 2 622 6
+1b52e 4 620 6
+1b532 8 622 6
+1b53a c 623 6
+1b546 1a 620 6
+1b560 6 620 6
+1b566 8 620 6
+1b56e 6 85 79
+1b574 6 620 6
+1b57a 2 620 6
+1b57c 6 623 6
+1b582 4 623 6
+1b586 2 623 6
+1b588 a 623 6
+1b592 e 623 6
+1b5a0 4 623 6
+1b5a4 4 626 6
+1b5a8 4 626 6
+1b5ac 4 626 6
+1b5b0 8 1552 82
+1b5b8 2 626 6
+1b5ba 2 1552 82
+1b5bc 2 626 6
+1b5be e 1552 82
+1b5cc 8 626 6
+1b5d4 6 302 82
+1b5da 16 626 6
+1b5f0 1a 623 6
+1b60a 6 623 6
+1b610 8 623 6
+1b618 6 85 79
+1b61e 6 623 6
+1b624 2 623 6
+1b626 6 256 82
+1b62c 1a 627 6
+1b646 6 302 82
+1b64c 14 627 6
+1b660 6 627 6
+1b666 8 627 6
+1b66e 6 85 79
+1b674 6 627 6
+1b67a 8 256 82
+1b682 4 633 6
+1b686 6 256 82
+1b68c 8 633 6
+1b694 6 634 6
+1b69a 4 1139 87
+1b69e 2 277 82
+1b6a0 2 634 6
+1b6a2 1e 634 6
+1b6c0 14 634 6
+1b6d4 6 256 82
+1b6da 8 636 6
+1b6e2 6 637 6
+1b6e8 6 277 82
+1b6ee 2 637 6
+1b6f0 2 277 82
+1b6f2 4 1139 87
+1b6f6 2 638 6
+1b6f8 1e 638 6
+1b716 14 638 6
+1b72a 6 256 82
+1b730 8 277 82
+1b738 4 1139 87
+1b73c 2 277 82
+1b73e 2 639 6
+1b740 1e 639 6
+1b75e 14 639 6
+1b772 6 639 6
+1b778 8 639 6
+1b780 6 85 79
+1b786 6 639 6
+1b78c 6 156 137
+1b792 a 256 82
+1b79c 4 640 6
+1b7a0 6 545 65
+1b7a6 4 545 65
+1b7aa 6 640 6
+1b7b0 2 640 6
+1b7b2 e 640 6
+1b7c0 8 640 6
+1b7c8 6 302 82
+1b7ce 12 640 6
+1b7e0 6 640 6
+1b7e6 8 640 6
+1b7ee 6 85 79
+1b7f4 8 640 6
+1b7fc 6 256 82
+1b802 6 642 6
+1b808 6 277 82
+1b80e 2 1139 87
+1b810 4 277 82
+1b814 6 1139 87
+1b81a 2 643 6
+1b81c 16 643 6
+1b832 14 643 6
+1b846 6 643 6
+1b84c 8 643 6
+1b854 6 85 79
+1b85a 4 643 6
+1b85e 6 256 82
+1b864 8 646 6
+1b86c 2 1139 87
+1b86e 2 277 82
+1b870 4 1139 87
+1b874 2 646 6
+1b876 16 646 6
+1b88c 12 646 6
+1b89e 6 256 82
+1b8a4 e 649 6
+1b8b2 6 277 82
+1b8b8 2 1139 87
+1b8ba 4 277 82
+1b8be 2 1139 87
+1b8c0 2 650 6
+1b8c2 16 650 6
+1b8d8 14 650 6
+1b8ec 6 650 6
+1b8f2 8 650 6
+1b8fa 6 85 79
+1b900 6 650 6
+1b906 4 156 137
+1b90a 6 256 82
+1b910 c 652 6
+1b91c 4 1512 82
+1b920 2 652 6
+1b922 e 1512 82
+1b930 4 652 6
+1b934 6 302 82
+1b93a 12 652 6
+1b94c 6 652 6
+1b952 8 652 6
+1b95a 6 85 79
+1b960 6 652 6
+1b966 6 256 82
+1b96c 6 653 6
+1b972 6 277 82
+1b978 4 1139 87
+1b97c 4 277 82
+1b980 8 1139 87
+1b988 2 654 6
+1b98a 16 654 6
+1b9a0 14 654 6
+1b9b4 6 654 6
+1b9ba 8 654 6
+1b9c2 6 85 79
+1b9c8 6 654 6
+1b9ce 6 156 137
+1b9d4 14 256 82
+1b9e8 a 657 6
+1b9f2 12 658 6
+1ba04 2 277 82
+1ba06 4 1139 87
+1ba0a 2 658 6
+1ba0c 1a 658 6
+1ba26 16 658 6
+1ba3c 6 658 6
+1ba42 8 659 6
+1ba4a 6 85 79
+1ba50 6 658 6
+1ba56 6 156 137
+1ba5c 6 256 82
+1ba62 e 660 6
+1ba70 2 1139 87
+1ba72 2 660 6
+1ba74 2 277 82
+1ba76 2 1139 87
+1ba78 2 660 6
+1ba7a 18 660 6
+1ba92 14 660 6
+1baa6 6 660 6
+1baac 8 661 6
+1bab4 6 85 79
+1baba 6 660 6
+1bac0 6 156 137
+1bac6 6 256 82
+1bacc 8 662 6
+1bad4 6 662 6
+1bada 10 156 137
+1baea fe 663 6
+FUNC 1bbe8 7f8 0 ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test::TestBody
+1bbe8 a 667 6
+1bbf2 4 667 6
+1bbf6 4 668 6
+1bbfa 2 667 6
+1bbfc 2 668 6
+1bbfe 4 670 6
+1bc02 2 667 6
+1bc04 4 668 6
+1bc08 a 670 6
+1bc12 8 670 6
+1bc1a 4 670 6
+1bc1e 4 670 6
+1bc22 4 670 6
+1bc26 e 670 6
+1bc34 a 670 6
+1bc3e 6 302 82
+1bc44 14 670 6
+1bc58 6 670 6
+1bc5e 8 670 6
+1bc66 6 85 79
+1bc6c 6 670 6
+1bc72 e 256 82
+1bc80 4 680 6
+1bc84 4 681 6
+1bc88 4 685 6
+1bc8c 8 682 6
+1bc94 8 685 6
+1bc9c 20 685 6
+1bcbc 6 685 6
+1bcc2 12 693 6
+1bcd4 4 694 6
+1bcd8 4 695 6
+1bcdc c 700 6
+1bce8 4 68 6
+1bcec 4 700 6
+1bcf0 8 68 6
+1bcf8 2 707 6
+1bcfa 6 707 6
+1bd00 8 709 6
+1bd08 8 711 6
+1bd10 6 711 6
+1bd16 4 711 6
+1bd1a 2 711 6
+1bd1c 8 711 6
+1bd24 6 711 6
+1bd2a 2 713 6
+1bd2c 4 711 6
+1bd30 8 713 6
+1bd38 c 714 6
+1bd44 1a 711 6
+1bd5e 6 711 6
+1bd64 8 711 6
+1bd6c 6 85 79
+1bd72 6 711 6
+1bd78 2 711 6
+1bd7a 6 714 6
+1bd80 4 714 6
+1bd84 2 714 6
+1bd86 a 714 6
+1bd90 e 714 6
+1bd9e 4 714 6
+1bda2 4 717 6
+1bda6 4 717 6
+1bdaa 4 717 6
+1bdae 8 1552 82
+1bdb6 2 717 6
+1bdb8 2 1552 82
+1bdba 2 717 6
+1bdbc e 1552 82
+1bdca 8 717 6
+1bdd2 6 302 82
+1bdd8 16 717 6
+1bdee 1a 714 6
+1be08 6 714 6
+1be0e 8 714 6
+1be16 6 85 79
+1be1c 6 714 6
+1be22 2 714 6
+1be24 6 256 82
+1be2a 1a 718 6
+1be44 6 302 82
+1be4a 14 718 6
+1be5e 6 718 6
+1be64 8 718 6
+1be6c 6 85 79
+1be72 6 718 6
+1be78 8 256 82
+1be80 4 723 6
+1be84 6 256 82
+1be8a 8 723 6
+1be92 6 724 6
+1be98 4 1139 87
+1be9c 2 277 82
+1be9e 2 724 6
+1bea0 1e 724 6
+1bebe 14 724 6
+1bed2 6 256 82
+1bed8 8 726 6
+1bee0 6 727 6
+1bee6 6 277 82
+1beec 2 727 6
+1beee 2 277 82
+1bef0 4 1139 87
+1bef4 2 728 6
+1bef6 1e 728 6
+1bf14 14 728 6
+1bf28 6 256 82
+1bf2e 8 277 82
+1bf36 4 1139 87
+1bf3a 2 277 82
+1bf3c 2 729 6
+1bf3e 1e 729 6
+1bf5c 14 729 6
+1bf70 6 729 6
+1bf76 8 729 6
+1bf7e 6 85 79
+1bf84 6 729 6
+1bf8a 6 156 137
+1bf90 a 256 82
+1bf9a 4 730 6
+1bf9e 6 545 65
+1bfa4 4 545 65
+1bfa8 6 730 6
+1bfae 2 730 6
+1bfb0 e 730 6
+1bfbe 8 730 6
+1bfc6 6 302 82
+1bfcc 12 730 6
+1bfde 6 730 6
+1bfe4 8 730 6
+1bfec 6 85 79
+1bff2 8 730 6
+1bffa 6 256 82
+1c000 6 732 6
+1c006 6 277 82
+1c00c 2 1139 87
+1c00e 4 277 82
+1c012 6 1139 87
+1c018 2 733 6
+1c01a 16 733 6
+1c030 14 733 6
+1c044 6 733 6
+1c04a 8 733 6
+1c052 6 85 79
+1c058 4 733 6
+1c05c 6 256 82
+1c062 8 736 6
+1c06a 2 1139 87
+1c06c 2 277 82
+1c06e 4 1139 87
+1c072 2 736 6
+1c074 16 736 6
+1c08a 12 736 6
+1c09c 6 256 82
+1c0a2 e 739 6
+1c0b0 6 277 82
+1c0b6 2 1139 87
+1c0b8 4 277 82
+1c0bc 2 1139 87
+1c0be 2 740 6
+1c0c0 16 740 6
+1c0d6 14 740 6
+1c0ea 6 740 6
+1c0f0 8 740 6
+1c0f8 6 85 79
+1c0fe 6 740 6
+1c104 4 156 137
+1c108 6 256 82
+1c10e c 743 6
+1c11a 4 1512 82
+1c11e 2 743 6
+1c120 e 1512 82
+1c12e 4 743 6
+1c132 6 302 82
+1c138 12 743 6
+1c14a 6 743 6
+1c150 8 743 6
+1c158 6 85 79
+1c15e 6 743 6
+1c164 6 256 82
+1c16a 6 744 6
+1c170 6 277 82
+1c176 4 1139 87
+1c17a 4 277 82
+1c17e 6 1139 87
+1c184 2 745 6
+1c186 16 745 6
+1c19c 14 745 6
+1c1b0 6 745 6
+1c1b6 8 745 6
+1c1be 6 85 79
+1c1c4 6 745 6
+1c1ca 6 156 137
+1c1d0 14 256 82
+1c1e4 a 748 6
+1c1ee 10 749 6
+1c1fe 2 277 82
+1c200 4 1139 87
+1c204 2 749 6
+1c206 18 749 6
+1c21e 14 749 6
+1c232 6 749 6
+1c238 8 749 6
+1c240 6 85 79
+1c246 6 749 6
+1c24c 6 156 137
+1c252 6 256 82
+1c258 12 750 6
+1c26a 2 1139 87
+1c26c 2 750 6
+1c26e 2 277 82
+1c270 2 1139 87
+1c272 2 750 6
+1c274 18 750 6
+1c28c 14 750 6
+1c2a0 6 750 6
+1c2a6 8 751 6
+1c2ae 6 85 79
+1c2b4 6 750 6
+1c2ba 6 156 137
+1c2c0 6 256 82
+1c2c6 8 753 6
+1c2ce 6 753 6
+1c2d4 10 156 137
+1c2e4 fc 754 6
+FUNC 1c3e0 458 0 ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test::TestBody
+1c3e0 a 760 6
+1c3ea 6 760 6
+1c3f0 4 761 6
+1c3f4 4 760 6
+1c3f8 2 761 6
+1c3fa 2 763 6
+1c3fc 2 760 6
+1c3fe 4 761 6
+1c402 a 763 6
+1c40c 4 763 6
+1c410 4 763 6
+1c414 2 763 6
+1c416 6 763 6
+1c41c e 763 6
+1c42a c 763 6
+1c436 6 302 82
+1c43c 12 763 6
+1c44e 6 763 6
+1c454 8 763 6
+1c45c 6 85 79
+1c462 6 763 6
+1c468 e 256 82
+1c476 4 765 6
+1c47a 4 766 6
+1c47e 4 770 6
+1c482 6 767 6
+1c488 8 770 6
+1c490 1e 770 6
+1c4ae 6 770 6
+1c4b4 2 774 6
+1c4b6 6 774 6
+1c4bc 6 776 6
+1c4c2 6 778 6
+1c4c8 6 778 6
+1c4ce 4 778 6
+1c4d2 2 778 6
+1c4d4 8 778 6
+1c4dc 6 778 6
+1c4e2 4 780 6
+1c4e6 4 778 6
+1c4ea 8 780 6
+1c4f2 c 781 6
+1c4fe 16 778 6
+1c514 6 778 6
+1c51a 8 778 6
+1c522 6 85 79
+1c528 6 778 6
+1c52e 2 778 6
+1c530 6 781 6
+1c536 4 781 6
+1c53a 2 781 6
+1c53c 8 781 6
+1c544 c 781 6
+1c550 4 781 6
+1c554 4 784 6
+1c558 4 784 6
+1c55c 4 784 6
+1c560 8 1552 82
+1c568 2 784 6
+1c56a e 1552 82
+1c578 6 784 6
+1c57e 6 302 82
+1c584 14 784 6
+1c598 16 781 6
+1c5ae 6 781 6
+1c5b4 8 781 6
+1c5bc 6 85 79
+1c5c2 6 781 6
+1c5c8 2 781 6
+1c5ca 6 256 82
+1c5d0 18 785 6
+1c5e8 6 302 82
+1c5ee 12 785 6
+1c600 6 785 6
+1c606 8 785 6
+1c60e 6 85 79
+1c614 6 785 6
+1c61a 8 256 82
+1c622 4 791 6
+1c626 6 256 82
+1c62c 8 791 6
+1c634 6 792 6
+1c63a 4 1139 87
+1c63e 2 277 82
+1c640 2 792 6
+1c642 1a 792 6
+1c65c 12 792 6
+1c66e 6 256 82
+1c674 8 794 6
+1c67c 6 795 6
+1c682 2 277 82
+1c684 2 795 6
+1c686 6 277 82
+1c68c 4 1139 87
+1c690 2 277 82
+1c692 2 796 6
+1c694 1a 796 6
+1c6ae 12 796 6
+1c6c0 6 256 82
+1c6c6 8 277 82
+1c6ce 4 1139 87
+1c6d2 2 277 82
+1c6d4 2 797 6
+1c6d6 1a 797 6
+1c6f0 14 797 6
+1c704 6 797 6
+1c70a 8 797 6
+1c712 6 85 79
+1c718 6 797 6
+1c71e 6 156 137
+1c724 a 256 82
+1c72e 4 798 6
+1c732 6 545 65
+1c738 4 545 65
+1c73c 6 1512 82
+1c742 2 798 6
+1c744 e 1512 82
+1c752 4 798 6
+1c756 6 302 82
+1c75c 12 798 6
+1c76e 6 798 6
+1c774 8 798 6
+1c77c 6 85 79
+1c782 6 798 6
+1c788 e 256 82
+1c796 c 800 6
+1c7a2 c 156 137
+1c7ae 8a 801 6
+FUNC 1c838 690 0 ExceptionHandlerTest_ModuleInfo_Test::TestBody
+1c838 c 806 6
+1c844 6 806 6
+1c84a 2 809 6
+1c84c 2 806 6
+1c84e 2 814 6
+1c850 4 809 6
+1c854 6 814 6
+1c85a 4 809 6
+1c85e 2 814 6
+1c860 4 809 6
+1c864 16 814 6
+1c87a 8 818 6
+1c882 4 819 6
+1c886 4 818 6
+1c88a e 819 6
+1c898 4 440 135
+1c89c 6 162 104
+1c8a2 4 164 104
+1c8a6 6 165 104
+1c8ac 6 168 104
+1c8b2 4 166 104
+1c8b6 6 171 104
+1c8bc 4 169 104
+1c8c0 6 174 104
+1c8c6 6 172 104
+1c8cc 4 164 104
+1c8d0 4 178 104
+1c8d4 2 164 104
+1c8d6 c 178 104
+1c8e2 6 180 104
+1c8e8 2 181 104
+1c8ea 6 183 104
+1c8f0 2 184 104
+1c8f2 c 186 104
+1c8fe 4 190 104
+1c902 2 183 104
+1c904 4 447 135
+1c908 4 447 135
+1c90c 4 822 6
+1c910 4 400 136
+1c914 4 789 136
+1c918 a 604 135
+1c922 8 791 136
+1c92a c 791 136
+1c936 6 836 6
+1c93c e 530 136
+1c94a 14 836 6
+1c95e 8 837 6
+1c966 6 277 82
+1c96c 2 1139 87
+1c96e 8 277 82
+1c976 2 838 6
+1c978 1c 838 6
+1c994 a 838 6
+1c99e 2 838 6
+1c9a0 e 838 6
+1c9ae 6 838 6
+1c9b4 8 838 6
+1c9bc 6 85 79
+1c9c2 6 838 6
+1c9c8 6 156 137
+1c9ce 8 256 82
+1c9d6 2 840 6
+1c9d8 6 256 82
+1c9de 6 840 6
+1c9e4 a 842 6
+1c9ee 18 842 6
+1ca06 6 842 6
+1ca0c e 849 6
+1ca1a 16 849 6
+1ca30 6 156 137
+1ca36 6 850 6
+1ca3c 2 1139 87
+1ca3e 2 277 82
+1ca40 2 850 6
+1ca42 1c 850 6
+1ca5e 8 850 6
+1ca66 2 850 6
+1ca68 e 850 6
+1ca76 6 850 6
+1ca7c 8 850 6
+1ca84 6 85 79
+1ca8a 6 850 6
+1ca90 6 156 137
+1ca96 e 256 82
+1caa4 4 855 6
+1caa8 a 855 6
+1cab2 8 855 6
+1caba 6 156 137
+1cac0 8 856 6
+1cac8 2 277 82
+1caca 2 1139 87
+1cacc 2 856 6
+1cace 16 856 6
+1cae4 14 856 6
+1caf8 6 256 82
+1cafe 6 858 6
+1cb04 a 277 82
+1cb0e 2 1139 87
+1cb10 2 859 6
+1cb12 16 859 6
+1cb28 14 859 6
+1cb3c 6 256 82
+1cb42 10 861 6
+1cb52 a 277 82
+1cb5c 2 1139 87
+1cb5e 2 862 6
+1cb60 16 862 6
+1cb76 16 862 6
+1cb8c 6 862 6
+1cb92 8 862 6
+1cb9a 6 85 79
+1cba0 6 862 6
+1cba6 6 156 137
+1cbac 14 256 82
+1cbc0 a 864 6
+1cbca 2 1512 82
+1cbcc 4 864 6
+1cbd0 10 1512 82
+1cbe0 4 864 6
+1cbe4 6 302 82
+1cbea 14 864 6
+1cbfe 6 864 6
+1cc04 8 864 6
+1cc0c 6 85 79
+1cc12 6 864 6
+1cc18 a 256 82
+1cc22 a 865 6
+1cc2c 2 1512 82
+1cc2e 4 865 6
+1cc32 2 1512 82
+1cc34 2 256 82
+1cc36 e 1512 82
+1cc44 4 865 6
+1cc48 6 302 82
+1cc4e 16 865 6
+1cc64 6 865 6
+1cc6a 8 865 6
+1cc72 6 85 79
+1cc78 6 865 6
+1cc7e 6 256 82
+1cc84 10 866 6
+1cc94 4 400 136
+1cc98 6 315 139
+1cc9e 8 226 145
+1cca6 4 315 139
+1ccaa 6 1482 82
+1ccb0 6 156 137
+1ccb6 4 866 6
+1ccba 6 302 82
+1ccc0 c 866 6
+1cccc 2 866 6
+1ccce 8 866 6
+1ccd6 6 866 6
+1ccdc 8 866 6
+1cce4 6 85 79
+1ccea 6 866 6
+1ccf0 a 256 82
+1ccfa c 867 6
+1cd06 16 1512 82
+1cd1c 6 156 137
+1cd22 4 867 6
+1cd26 6 302 82
+1cd2c c 867 6
+1cd38 2 867 6
+1cd3a 8 867 6
+1cd42 6 867 6
+1cd48 8 867 6
+1cd50 6 85 79
+1cd56 6 867 6
+1cd5c 6 256 82
+1cd62 8 869 6
+1cd6a 6 869 6
+1cd70 6 842 6
+1cd76 6 869 6
+1cd7c 16 156 137
+1cd92 e 870 6
+1cda0 8 884 80
+1cda8 6 711 80
+1cdae 4 469 80
+1cdb2 8 711 80
+1cdba 8 469 80
+1cdc2 4 75 132
+1cdc6 6 156 137
+1cdcc 8 75 132
+1cdd4 6 886 80
+1cdda 8 884 80
+1cde2 4 469 80
+1cde6 4 75 132
+1cdea 4 469 80
+1cdee 8 75 132
+1cdf6 6 886 80
+1cdfc 18 1471 82
+1ce14 e 156 137
+1ce22 a6 870 6
+FUNC 1cec8 2dc 0 ExceptionHandlerTest_WriteMinidumpExceptionStream_Test::TestBody
+1cec8 8 1000 6
+1ced0 4 1000 6
+1ced4 4 1001 6
+1ced8 2 1000 6
+1ceda 2 1003 6
+1cedc 2 1001 6
+1cede 2 1000 6
+1cee0 4 1001 6
+1cee4 8 1003 6
+1ceec 22 1003 6
+1cf0e 6 1003 6
+1cf14 6 1004 6
+1cf1a 6 277 82
+1cf20 8 1139 87
+1cf28 2 1004 6
+1cf2a 16 1004 6
+1cf40 16 1004 6
+1cf56 6 1004 6
+1cf5c 8 1004 6
+1cf64 6 85 79
+1cf6a 6 1004 6
+1cf70 6 156 137
+1cf76 e 256 82
+1cf84 e 1006 6
+1cf92 8 1009 6
+1cf9a 6 1010 6
+1cfa0 4 1139 87
+1cfa4 2 277 82
+1cfa6 2 1010 6
+1cfa8 1a 1010 6
+1cfc2 14 1010 6
+1cfd6 6 256 82
+1cfdc 6 1011 6
+1cfe2 a 277 82
+1cfec 4 1139 87
+1cff0 2 1012 6
+1cff2 1a 1012 6
+1d00c 16 1012 6
+1d022 6 1012 6
+1d028 8 1012 6
+1d030 6 85 79
+1d036 6 1012 6
+1d03c 6 156 137
+1d042 a 256 82
+1d04c 6 600 65
+1d052 6 600 65
+1d058 2 600 65
+1d05a 8 277 82
+1d062 2 1139 87
+1d064 2 277 82
+1d066 2 1139 87
+1d068 2 1014 6
+1d06a 18 1014 6
+1d082 16 1014 6
+1d098 6 1014 6
+1d09e 8 1014 6
+1d0a6 6 85 79
+1d0ac 6 1014 6
+1d0b2 6 156 137
+1d0b8 c 256 82
+1d0c4 4 156 137
+1d0c8 6 256 82
+1d0ce 4 1015 6
+1d0d2 4 1512 82
+1d0d6 6 1015 6
+1d0dc e 1512 82
+1d0ea 4 1015 6
+1d0ee 6 302 82
+1d0f4 14 1015 6
+1d108 6 1015 6
+1d10e 8 1016 6
+1d116 6 85 79
+1d11c 6 1015 6
+1d122 6 256 82
+1d128 6 1009 6
+1d12e 12 156 137
+1d140 64 1017 6
+FUNC 1d1a4 468 0 ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test::TestBody
+1d1a4 a 1036 6
+1d1ae 6 1036 6
+1d1b4 4 1039 6
+1d1b8 2 1036 6
+1d1ba a 1037 6
+1d1c4 8 1039 6
+1d1cc 22 1039 6
+1d1ee 6 1039 6
+1d1f4 6 1040 6
+1d1fa 4 277 82
+1d1fe a 1139 87
+1d208 2 1040 6
+1d20a 16 1040 6
+1d220 4 1040 6
+1d224 2 1040 6
+1d226 10 1040 6
+1d236 6 1040 6
+1d23c 8 1040 6
+1d244 6 85 79
+1d24a 6 1040 6
+1d250 8 156 137
+1d258 6 256 82
+1d25e 4 1044 6
+1d262 4 1044 6
+1d266 4 1044 6
+1d26a 6 1552 82
+1d270 2 1044 6
+1d272 2 1552 82
+1d274 2 1044 6
+1d276 e 1552 82
+1d284 4 1044 6
+1d288 6 302 82
+1d28e 12 1044 6
+1d2a0 6 1044 6
+1d2a6 8 1044 6
+1d2ae 6 85 79
+1d2b4 6 1044 6
+1d2ba e 256 82
+1d2c8 1e 1045 6
+1d2e6 6 302 82
+1d2ec 10 1045 6
+1d2fc 4 1046 6
+1d300 6 256 82
+1d306 a 1046 6
+1d310 c 1048 6
+1d31c 6 1049 6
+1d322 4 1139 87
+1d326 2 277 82
+1d328 2 1049 6
+1d32a 1a 1049 6
+1d344 14 1049 6
+1d358 6 256 82
+1d35e 6 1050 6
+1d364 6 1053 6
+1d36a 4 1139 87
+1d36e 2 277 82
+1d370 2 1053 6
+1d372 1a 1053 6
+1d38c 16 1053 6
+1d3a2 6 1053 6
+1d3a8 8 1053 6
+1d3b0 6 85 79
+1d3b6 6 1053 6
+1d3bc 6 156 137
+1d3c2 e 256 82
+1d3d0 4 1055 6
+1d3d4 4 1055 6
+1d3d8 4 1055 6
+1d3dc 2 1552 82
+1d3de 2 1055 6
+1d3e0 e 1552 82
+1d3ee 4 1055 6
+1d3f2 6 302 82
+1d3f8 10 1055 6
+1d408 6 256 82
+1d40e 16 1056 6
+1d424 6 302 82
+1d42a 12 1056 6
+1d43c 6 1056 6
+1d442 8 1056 6
+1d44a 6 85 79
+1d450 8 1056 6
+1d458 4 1057 6
+1d45c 6 256 82
+1d462 4 1059 6
+1d466 a 1057 6
+1d470 8 1059 6
+1d478 6 1060 6
+1d47e 4 1139 87
+1d482 2 277 82
+1d484 2 1060 6
+1d486 1a 1060 6
+1d4a0 16 1060 6
+1d4b6 6 1060 6
+1d4bc 8 1060 6
+1d4c4 6 85 79
+1d4ca 6 1060 6
+1d4d0 8 156 137
+1d4d8 6 256 82
+1d4de 6 1061 6
+1d4e4 18 1064 6
+1d4fc 4 1064 6
+1d500 6 302 82
+1d506 12 1064 6
+1d518 6 1064 6
+1d51e 8 1064 6
+1d526 6 85 79
+1d52c 6 1064 6
+1d532 c 256 82
+1d53e 8 156 137
+1d546 6 256 82
+1d54c 6 1059 6
+1d552 6 156 137
+1d558 6 1048 6
+1d55e 6 156 137
+1d564 6 1039 6
+1d56a a 1064 6
+1d574 12 156 137
+1d586 86 1065 6
+FUNC 1d60c 370 0 ExceptionHandlerTest_AdditionalMemory_Test::TestBody
+1d60c 8 1068 6
+1d614 6 1068 6
+1d61a 2 1069 6
+1d61c 2 1068 6
+1d61e c 1069 6
+1d62a 4 1072 6
+1d62e 6 1073 6
+1d634 6 277 82
+1d63a 8 1139 87
+1d642 2 1072 6
+1d644 2 1073 6
+1d646 6 256 82
+1d64c 8 1077 6
+1d654 8 1077 6
+1d65c c 1078 6
+1d668 2 1081 6
+1d66a 4 1083 6
+1d66e 6 1081 6
+1d674 8 1083 6
+1d67c 20 1083 6
+1d69c 6 1083 6
+1d6a2 c 1086 6
+1d6ae 4 1092 6
+1d6b2 2 1087 6
+1d6b4 2 1092 6
+1d6b6 4 1087 6
+1d6ba a 1092 6
+1d6c4 8 1092 6
+1d6cc 6 156 137
+1d6d2 8 1093 6
+1d6da 4 277 82
+1d6de 6 1139 87
+1d6e4 2 1093 6
+1d6e6 16 1093 6
+1d6fc 12 1093 6
+1d70e 6 256 82
+1d714 6 1095 6
+1d71a c 277 82
+1d726 4 1139 87
+1d72a 2 1096 6
+1d72c 16 1096 6
+1d742 12 1096 6
+1d754 6 256 82
+1d75a 10 1098 6
+1d76a c 277 82
+1d776 4 1139 87
+1d77a 2 1099 6
+1d77c 16 1099 6
+1d792 14 1099 6
+1d7a6 6 1099 6
+1d7ac 8 1099 6
+1d7b4 6 85 79
+1d7ba 6 1099 6
+1d7c0 6 156 137
+1d7c6 e 256 82
+1d7d4 a 1101 6
+1d7de 2 1512 82
+1d7e0 4 1101 6
+1d7e4 10 1512 82
+1d7f4 6 1101 6
+1d7fa 6 302 82
+1d800 12 1101 6
+1d812 6 1101 6
+1d818 8 1101 6
+1d820 6 85 79
+1d826 6 1101 6
+1d82c 6 256 82
+1d832 a 1102 6
+1d83c 4 1512 82
+1d840 4 1102 6
+1d844 e 1512 82
+1d852 6 1102 6
+1d858 6 302 82
+1d85e 12 1102 6
+1d870 6 1102 6
+1d876 8 1102 6
+1d87e 6 85 79
+1d884 6 1102 6
+1d88a 6 256 82
+1d890 a 1105 6
+1d89a a 1105 6
+1d8a4 4 1552 82
+1d8a8 4 1105 6
+1d8ac e 1552 82
+1d8ba 6 1105 6
+1d8c0 6 302 82
+1d8c6 12 1105 6
+1d8d8 6 1105 6
+1d8de 8 1105 6
+1d8e6 6 85 79
+1d8ec 6 1105 6
+1d8f2 6 256 82
+1d8f8 18 1107 6
+1d910 6c 1108 6
+FUNC 1d97c 22c 0 ExceptionHandlerTest_AdditionalMemoryRemove_Test::TestBody
+1d97c a 1112 6
+1d986 a 1112 6
+1d990 2 1113 6
+1d992 2 1112 6
+1d994 6 1113 6
+1d99a 4 1116 6
+1d99e 2 1139 87
+1d9a0 2 277 82
+1d9a2 4 256 82
+1d9a6 2 1116 6
+1d9a8 4 1120 6
+1d9ac 2 256 82
+1d9ae 2 1122 6
+1d9b0 4 277 82
+1d9b4 2 1139 87
+1d9b6 4 256 82
+1d9ba 6 1120 6
+1d9c0 8 1122 6
+1d9c8 1a 1122 6
+1d9e2 6 1122 6
+1d9e8 a 1125 6
+1d9f2 8 1128 6
+1d9fa 2 1134 6
+1d9fc 4 256 82
+1da00 6 1129 6
+1da06 a 1134 6
+1da10 8 1134 6
+1da18 6 156 137
+1da1e 6 1135 6
+1da24 2 1139 87
+1da26 8 277 82
+1da2e 2 1135 6
+1da30 16 1135 6
+1da46 14 1135 6
+1da5a 6 256 82
+1da60 6 1137 6
+1da66 c 277 82
+1da72 2 1139 87
+1da74 2 1138 6
+1da76 16 1138 6
+1da8c 12 1138 6
+1da9e 4 1138 6
+1daa2 4 1138 6
+1daa6 6 1138 6
+1daac 8 1138 6
+1dab4 6 85 79
+1daba 6 1138 6
+1dac0 6 156 137
+1dac6 e 256 82
+1dad4 e 1140 6
+1dae2 6 1141 6
+1dae8 4 277 82
+1daec 2 1139 87
+1daee 2 1141 6
+1daf0 16 1141 6
+1db06 a 1141 6
+1db10 4 1141 6
+1db14 c 1141 6
+1db20 6 1141 6
+1db26 8 1141 6
+1db2e 6 85 79
+1db34 6 1141 6
+1db3a 6 156 137
+1db40 6 256 82
+1db46 18 1143 6
+1db5e 4a 1144 6
+FUNC 1dba8 41c 0 ExceptionHandlerTest_WriteMinidumpForChild_Test::TestBody
+1dba8 8 1154 6
+1dbb0 6 1154 6
+1dbb6 2 1156 6
+1dbb8 2 1154 6
+1dbba a 1156 6
+1dbc4 a 1156 6
+1dbce 2 1156 6
+1dbd0 e 1156 6
+1dbde a 1156 6
+1dbe8 6 302 82
+1dbee 12 1156 6
+1dc00 6 1156 6
+1dc06 8 1156 6
+1dc0e 6 85 79
+1dc14 6 1156 6
+1dc1a e 256 82
+1dc28 6 1158 6
+1dc2e 2 1159 6
+1dc30 6 1160 6
+1dc36 e 1162 6
+1dc44 4 1162 6
+1dc48 6 1162 6
+1dc4e 6 1163 6
+1dc54 6 1164 6
+1dc5a 4 1168 6
+1dc5e 6 1166 6
+1dc64 4 1169 6
+1dc68 6 1168 6
+1dc6e 8 1169 6
+1dc76 12 1170 6
+1dc88 4 1139 87
+1dc8c 4 277 82
+1dc90 8 1139 87
+1dc98 2 1170 6
+1dc9a 16 1170 6
+1dcb0 14 1170 6
+1dcc4 6 1170 6
+1dcca 8 1170 6
+1dcd2 6 85 79
+1dcd8 6 1170 6
+1dcde 6 156 137
+1dce4 e 256 82
+1dcf2 8 1175 6
+1dcfa 6 1176 6
+1dd00 4 1139 87
+1dd04 4 277 82
+1dd08 2 1176 6
+1dd0a 1a 1176 6
+1dd24 12 1176 6
+1dd36 6 256 82
+1dd3c 6 1178 6
+1dd42 c 277 82
+1dd4e 4 1139 87
+1dd52 2 1179 6
+1dd54 18 1179 6
+1dd6c 8 1179 6
+1dd74 2 1179 6
+1dd76 c 1179 6
+1dd82 6 1179 6
+1dd88 8 1179 6
+1dd90 6 85 79
+1dd96 6 1179 6
+1dd9c 4 156 137
+1dda0 6 256 82
+1dda6 8 1181 6
+1ddae 4 1139 87
+1ddb2 4 277 82
+1ddb6 2 1181 6
+1ddb8 1a 1181 6
+1ddd2 12 1181 6
+1dde4 6 256 82
+1ddea 2 1182 6
+1ddec 4 1512 82
+1ddf0 2 1182 6
+1ddf2 e 1512 82
+1de00 6 1182 6
+1de06 6 302 82
+1de0c 12 1182 6
+1de1e 6 1182 6
+1de24 8 1182 6
+1de2c 6 85 79
+1de32 6 1182 6
+1de38 6 256 82
+1de3e 6 600 65
+1de44 6 600 65
+1de4a 2 600 65
+1de4c 8 277 82
+1de54 2 1139 87
+1de56 4 277 82
+1de5a 2 1139 87
+1de5c 2 1185 6
+1de5e 1a 1185 6
+1de78 14 1185 6
+1de8c 6 1185 6
+1de92 8 1185 6
+1de9a 6 85 79
+1dea0 6 1185 6
+1dea6 6 156 137
+1deac e 256 82
+1deba 4 1186 6
+1debe 4 1512 82
+1dec2 6 1186 6
+1dec8 e 1512 82
+1ded6 6 1186 6
+1dedc 6 302 82
+1dee2 12 1186 6
+1def4 6 1186 6
+1defa 8 1187 6
+1df02 6 85 79
+1df08 6 1186 6
+1df0e 6 256 82
+1df14 6 1189 6
+1df1a c 1190 6
+1df26 c 156 137
+1df32 92 1191 6
+FUNC 1dfc4 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MicrodumpWriterTest_Setup_Test>::CreateTest
+1dfc4 2 486 85
+1dfc6 8 486 85
+1dfce 6 56 11
+1dfd4 2 486 85
+1dfd6 6 56 11
+1dfdc 8 486 85
+FUNC 1dfe4 18 0 MicrodumpWriterTest_Setup_Test::~MicrodumpWriterTest_Setup_Test
+1dfe4 2 56 11
+1dfe6 16 56 11
+FUNC 1dffc 12 0 MicrodumpWriterTest_Setup_Test::~MicrodumpWriterTest_Setup_Test
+1dffc 2 56 11
+1dffe 6 56 11
+1e004 6 56 11
+1e00a 4 56 11
+FUNC 1e00e 10 0 std::__node_alloc::allocate
+1e00e 6 158 106
+1e014 6 134 124
+1e01a 4 158 106
+FUNC 1e020 6c 0 testing::PrintToString<void const*>
+1e020 e 883 80
+1e02e 2 883 80
+1e030 4 884 80
+1e034 2 883 80
+1e036 4 884 80
+1e03a 2 883 80
+1e03c 8 884 80
+1e044 2 310 80
+1e046 c 333 127
+1e052 6 318 80
+1e058 8 291 126
+1e060 8 75 132
+1e068 6 886 80
+1e06e 1e 887 80
+FUNC 1e08c 108 0 testing::internal::CmpHelperNE<char*, char*>
+1e08c e 1615 82
+1e09a 12 1615 82
+1e0ac 4 1615 82
+1e0b0 4 1615 82
+1e0b4 10 1583 82
+1e0c4 a 1583 82
+1e0ce 6 1583 82
+1e0d4 2 1583 82
+1e0d6 2 1407 82
+1e0d8 6 1583 82
+1e0de 6 1583 82
+1e0e4 8 1583 82
+1e0ec 6 1583 82
+1e0f2 a 1584 82
+1e0fc e 1407 82
+1e10a a 1584 82
+1e114 6 306 82
+1e11a c 333 127
+1e126 8 306 82
+1e12e 6 85 79
+1e134 e 1407 82
+1e142 a 1585 82
+1e14c 6 1585 82
+1e152 c 156 137
+1e15e 6 256 82
+1e164 30 1615 82
+FUNC 1e194 6e4 0 MicrodumpWriterTest_Setup_Test::TestBody
+1e194 c 56 11
+1e1a0 6 56 11
+1e1a6 4 58 11
+1e1aa 4 56 11
+1e1ae e 58 11
+1e1bc 8 58 11
+1e1c4 2 58 11
+1e1c6 4 58 11
+1e1ca 2 58 11
+1e1cc e 58 11
+1e1da 8 58 11
+1e1e2 2 1144 87
+1e1e4 6 298 82
+1e1ea 6 298 82
+1e1f0 12 58 11
+1e202 6 58 11
+1e208 8 58 11
+1e210 6 85 79
+1e216 6 58 11
+1e21c 8 256 82
+1e224 4 60 11
+1e228 6 256 82
+1e22e 6 60 11
+1e234 12 61 11
+1e246 e 62 11
+1e254 a 63 11
+1e25e 4 62 11
+1e262 12 63 11
+1e274 2 1144 87
+1e276 6 298 82
+1e27c 6 298 82
+1e282 8 63 11
+1e28a 2 63 11
+1e28c a 63 11
+1e296 6 63 11
+1e29c 8 63 11
+1e2a4 4 85 79
+1e2a8 6 256 82
+1e2ae 6 65 11
+1e2b4 4 66 11
+1e2b8 8 67 11
+1e2c0 10 69 11
+1e2d0 4 69 11
+1e2d4 6 69 11
+1e2da 8 70 11
+1e2e2 6 71 11
+1e2e8 8 73 11
+1e2f0 c 76 11
+1e2fc a 77 11
+1e306 2 1481 82
+1e308 2 77 11
+1e30a 2 1481 82
+1e30c 2 77 11
+1e30e 2 1481 82
+1e310 8 1482 82
+1e318 18 1382 82
+1e330 1c 1471 82
+1e34c c 156 137
+1e358 6 77 11
+1e35e 4 1144 87
+1e362 6 298 82
+1e368 6 298 82
+1e36e 12 77 11
+1e380 6 77 11
+1e386 8 77 11
+1e38e 6 85 79
+1e394 6 77 11
+1e39a e 256 82
+1e3a8 2 83 11
+1e3aa 4 80 11
+1e3ae 4 83 11
+1e3b2 2 88 11
+1e3b4 2 83 11
+1e3b6 1c 88 11
+1e3d2 2 93 11
+1e3d4 a 94 11
+1e3de 4 91 11
+1e3e2 4 92 11
+1e3e6 2 93 11
+1e3e8 4 94 11
+1e3ec a 188 121
+1e3f6 8 481 106
+1e3fe 4 91 11
+1e402 2 98 11
+1e404 4 481 106
+1e408 6 98 11
+1e40e 2 99 11
+1e410 4 211 121
+1e414 4 212 121
+1e418 6 98 11
+1e41e 8 99 11
+1e426 4 306 106
+1e42a 2 307 106
+1e42c 2 306 106
+1e42e 6 307 106
+1e434 4 119 108
+1e438 a 119 108
+1e442 4 427 121
+1e446 2 103 11
+1e448 2 429 121
+1e44a 4 428 121
+1e44e 2 430 121
+1e450 4 431 121
+1e454 4 103 11
+1e458 a 104 11
+1e462 4 103 11
+1e466 2 104 11
+1e468 4 103 11
+1e46c 1e 104 11
+1e48a 2 1144 87
+1e48c 6 298 82
+1e492 4 298 82
+1e496 10 104 11
+1e4a6 6 104 11
+1e4ac 8 104 11
+1e4b4 4 85 79
+1e4b8 6 256 82
+1e4be 12 105 11
+1e4d0 2 105 11
+1e4d2 2 105 11
+1e4d4 e 105 11
+1e4e2 4 105 11
+1e4e6 2 1144 87
+1e4e8 6 298 82
+1e4ee 4 298 82
+1e4f2 6 105 11
+1e4f8 2 105 11
+1e4fa a 105 11
+1e504 6 105 11
+1e50a 8 105 11
+1e512 6 85 79
+1e518 6 105 11
+1e51e e 256 82
+1e52c e 107 11
+1e53a 4 1139 87
+1e53e 2 277 82
+1e540 4 1139 87
+1e544 2 107 11
+1e546 1a 107 11
+1e560 14 107 11
+1e574 6 107 11
+1e57a 8 107 11
+1e582 6 85 79
+1e588 6 107 11
+1e58e 8 156 137
+1e596 6 256 82
+1e59c a 110 11
+1e5a6 8 111 11
+1e5ae 8 114 11
+1e5b6 c 115 11
+1e5c2 a 117 11
+1e5cc e 118 11
+1e5da 2 1623 82
+1e5dc 6 118 11
+1e5e2 2 1623 82
+1e5e4 8 1623 82
+1e5ec 1a 1623 82
+1e606 4 118 11
+1e60a 2 1144 87
+1e60c 6 298 82
+1e612 4 298 82
+1e616 6 118 11
+1e61c 2 118 11
+1e61e a 118 11
+1e628 6 118 11
+1e62e 8 118 11
+1e636 6 85 79
+1e63c 6 118 11
+1e642 4 256 82
+1e646 4 120 11
+1e64a 6 256 82
+1e650 6 120 11
+1e656 4 120 11
+1e65a 4 120 11
+1e65e 6 120 11
+1e664 2 120 11
+1e666 2 120 11
+1e668 2 120 11
+1e66a e 120 11
+1e678 4 120 11
+1e67c 2 1144 87
+1e67e 6 298 82
+1e684 4 298 82
+1e688 10 120 11
+1e698 6 120 11
+1e69e 8 120 11
+1e6a6 4 85 79
+1e6aa 6 256 82
+1e6b0 6 122 11
+1e6b6 4 122 11
+1e6ba 4 122 11
+1e6be 2 122 11
+1e6c0 2 122 11
+1e6c2 e 122 11
+1e6d0 4 122 11
+1e6d4 2 1144 87
+1e6d6 6 298 82
+1e6dc 4 298 82
+1e6e0 e 122 11
+1e6ee 6 256 82
+1e6f4 6 124 11
+1e6fa 4 124 11
+1e6fe 4 124 11
+1e702 2 124 11
+1e704 2 124 11
+1e706 e 124 11
+1e714 4 124 11
+1e718 2 1144 87
+1e71a 6 298 82
+1e720 4 298 82
+1e724 c 124 11
+1e730 2 124 11
+1e732 4 124 11
+1e736 6 124 11
+1e73c 8 124 11
+1e744 6 85 79
+1e74a 6 124 11
+1e750 6 256 82
+1e756 8 203 57
+1e75e 6 256 82
+1e764 6 128 11
+1e76a 6 129 11
+1e770 2 67 120
+1e772 6 203 57
+1e778 2 67 120
+1e77a 4 68 120
+1e77e 2 74 120
+1e780 8 135 124
+1e788 4 67 120
+1e78c 4 68 120
+1e790 2 74 120
+1e792 8 135 124
+1e79a 2 61 63
+1e79c 6 156 137
+1e7a2 8 61 63
+1e7aa 6 156 137
+1e7b0 c8 130 11
+FUNC 1e878 18 0 CpuSetTest_EmptyIntersection_Test::~CpuSetTest_EmptyIntersection_Test
+1e878 2 146 13
+1e87a 16 146 13
+FUNC 1e890 12 0 CpuSetTest_EmptyIntersection_Test::~CpuSetTest_EmptyIntersection_Test
+1e890 2 146 13
+1e892 6 146 13
+1e898 6 146 13
+1e89e 4 146 13
+FUNC 1e8a4 18 0 CpuSetTest_SelfIntersection_Test::~CpuSetTest_SelfIntersection_Test
+1e8a4 2 135 13
+1e8a6 16 135 13
+FUNC 1e8bc 12 0 CpuSetTest_SelfIntersection_Test::~CpuSetTest_SelfIntersection_Test
+1e8bc 2 135 13
+1e8be 6 135 13
+1e8c4 6 135 13
+1e8ca 4 135 13
+FUNC 1e8d0 18 0 CpuSetTest_IntersectWith_Test::~CpuSetTest_IntersectWith_Test
+1e8d0 2 117 13
+1e8d2 16 117 13
+FUNC 1e8e8 12 0 CpuSetTest_IntersectWith_Test::~CpuSetTest_IntersectWith_Test
+1e8e8 2 117 13
+1e8ea 6 117 13
+1e8f0 6 117 13
+1e8f6 4 117 13
+FUNC 1e8fc 18 0 CpuSetTest_MultiItems_Test::~CpuSetTest_MultiItems_Test
+1e8fc 2 108 13
+1e8fe 16 108 13
+FUNC 1e914 12 0 CpuSetTest_MultiItems_Test::~CpuSetTest_MultiItems_Test
+1e914 2 108 13
+1e916 6 108 13
+1e91c 6 108 13
+1e922 4 108 13
+FUNC 1e928 18 0 CpuSetTest_TenCpusWithRange_Test::~CpuSetTest_TenCpusWithRange_Test
+1e928 2 99 13
+1e92a 16 99 13
+FUNC 1e940 12 0 CpuSetTest_TenCpusWithRange_Test::~CpuSetTest_TenCpusWithRange_Test
+1e940 2 99 13
+1e942 6 99 13
+1e948 6 99 13
+1e94e 4 99 13
+FUNC 1e954 18 0 CpuSetTest_TwoCpusWithRange_Test::~CpuSetTest_TwoCpusWithRange_Test
+1e954 2 90 13
+1e956 16 90 13
+FUNC 1e96c 12 0 CpuSetTest_TwoCpusWithRange_Test::~CpuSetTest_TwoCpusWithRange_Test
+1e96c 2 90 13
+1e96e 6 90 13
+1e974 6 90 13
+1e97a 4 90 13
+FUNC 1e980 18 0 CpuSetTest_TwoCpusWithComma_Test::~CpuSetTest_TwoCpusWithComma_Test
+1e980 2 81 13
+1e982 16 81 13
+FUNC 1e998 12 0 CpuSetTest_TwoCpusWithComma_Test::~CpuSetTest_TwoCpusWithComma_Test
+1e998 2 81 13
+1e99a 6 81 13
+1e9a0 6 81 13
+1e9a6 4 81 13
+FUNC 1e9ac 18 0 CpuSetTest_OneCpuTerminated_Test::~CpuSetTest_OneCpuTerminated_Test
+1e9ac 2 72 13
+1e9ae 16 72 13
+FUNC 1e9c4 12 0 CpuSetTest_OneCpuTerminated_Test::~CpuSetTest_OneCpuTerminated_Test
+1e9c4 2 72 13
+1e9c6 6 72 13
+1e9cc 6 72 13
+1e9d2 4 72 13
+FUNC 1e9d8 18 0 CpuSetTest_OneCpu_Test::~CpuSetTest_OneCpu_Test
+1e9d8 2 63 13
+1e9da 16 63 13
+FUNC 1e9f0 12 0 CpuSetTest_OneCpu_Test::~CpuSetTest_OneCpu_Test
+1e9f0 2 63 13
+1e9f2 6 63 13
+1e9f8 6 63 13
+1e9fe 4 63 13
+FUNC 1ea04 18 0 CpuSetTest_EmptyCount_Test::~CpuSetTest_EmptyCount_Test
+1ea04 2 58 13
+1ea06 16 58 13
+FUNC 1ea1c 12 0 CpuSetTest_EmptyCount_Test::~CpuSetTest_EmptyCount_Test
+1ea1c 2 58 13
+1ea1e 6 58 13
+1ea24 6 58 13
+1ea2a 4 58 13
+FUNC 1ea30 20 0 testing::internal::TestFactoryImpl<CpuSetTest_IntersectWith_Test>::CreateTest
+1ea30 2 486 85
+1ea32 8 486 85
+1ea3a 6 117 13
+1ea40 2 486 85
+1ea42 6 117 13
+1ea48 8 486 85
+FUNC 1ea50 20 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyIntersection_Test>::CreateTest
+1ea50 2 486 85
+1ea52 8 486 85
+1ea5a 6 146 13
+1ea60 2 486 85
+1ea62 6 146 13
+1ea68 8 486 85
+FUNC 1ea70 20 0 testing::internal::TestFactoryImpl<CpuSetTest_SelfIntersection_Test>::CreateTest
+1ea70 2 486 85
+1ea72 8 486 85
+1ea7a 6 135 13
+1ea80 2 486 85
+1ea82 6 135 13
+1ea88 8 486 85
+FUNC 1ea90 20 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithComma_Test>::CreateTest
+1ea90 2 486 85
+1ea92 8 486 85
+1ea9a 6 81 13
+1eaa0 2 486 85
+1eaa2 6 81 13
+1eaa8 8 486 85
+FUNC 1eab0 20 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpuTerminated_Test>::CreateTest
+1eab0 2 486 85
+1eab2 8 486 85
+1eaba 6 72 13
+1eac0 2 486 85
+1eac2 6 72 13
+1eac8 8 486 85
+FUNC 1ead0 20 0 testing::internal::TestFactoryImpl<CpuSetTest_OneCpu_Test>::CreateTest
+1ead0 2 486 85
+1ead2 8 486 85
+1eada 6 63 13
+1eae0 2 486 85
+1eae2 6 63 13
+1eae8 8 486 85
+FUNC 1eaf0 20 0 testing::internal::TestFactoryImpl<CpuSetTest_EmptyCount_Test>::CreateTest
+1eaf0 2 486 85
+1eaf2 8 486 85
+1eafa 6 58 13
+1eb00 2 486 85
+1eb02 6 58 13
+1eb08 8 486 85
+FUNC 1eb10 20 0 testing::internal::TestFactoryImpl<CpuSetTest_TenCpusWithRange_Test>::CreateTest
+1eb10 2 486 85
+1eb12 8 486 85
+1eb1a 6 99 13
+1eb20 2 486 85
+1eb22 6 99 13
+1eb28 8 486 85
+FUNC 1eb30 20 0 testing::internal::TestFactoryImpl<CpuSetTest_TwoCpusWithRange_Test>::CreateTest
+1eb30 2 486 85
+1eb32 8 486 85
+1eb3a 6 90 13
+1eb40 2 486 85
+1eb42 6 90 13
+1eb48 8 486 85
+FUNC 1eb50 20 0 testing::internal::TestFactoryImpl<CpuSetTest_MultiItems_Test>::CreateTest
+1eb50 2 486 85
+1eb52 8 486 85
+1eb5a 6 108 13
+1eb60 2 486 85
+1eb62 6 108 13
+1eb68 8 486 85
+FUNC 1eb70 10 0 google_breakpad::CpuSet::CpuSet
+1eb70 2 50 12
+1eb72 2 50 12
+1eb74 8 51 12
+1eb7c 4 52 12
+FUNC 1eb80 108 0 google_breakpad::CpuSet::ParseSysFile
+1eb80 a 55 12
+1eb8a a 55 12
+1eb94 1a 3104 97
+1ebae 4 3104 97
+1ebb2 4 3104 97
+1ebb6 4 59 12
+1ebba 8 58 12
+1ebc2 2 71 12
+1ebc4 2 61 12
+1ebc6 4 102 12
+1ebca 2 72 12
+1ebcc 6 73 12
+1ebd2 a 75 12
+1ebdc 2 75 12
+1ebde 2 75 12
+1ebe0 2 76 12
+1ebe2 4 75 12
+1ebe6 2 109 12
+1ebe8 c 110 12
+1ebf4 c 82 12
+1ec00 2 83 12
+1ec02 4 84 12
+1ec06 6 92 12
+1ec0c 8 92 12
+1ec14 c 92 12
+1ec20 4 96 12
+1ec24 4 100 12
+1ec28 4 101 12
+1ec2c 2 100 12
+1ec2e 4 101 12
+1ec32 2 102 12
+1ec34 2 101 12
+1ec36 4 102 12
+1ec3a 6 103 12
+1ec40 8 104 12
+1ec48 4 131 12
+1ec4c a 106 12
+1ec56 4 130 12
+1ec5a 4 131 12
+1ec5e 4 107 12
+1ec62 16 131 12
+1ec78 4 130 12
+1ec7c c 110 12
+FUNC 1ec88 1c 0 google_breakpad::CpuSet::GetCount
+1ec88 2 119 12
+1ec8a 8 120 12
+1ec92 8 122 12
+1ec9a 2 121 12
+1ec9c 2 122 12
+1ec9e 2 121 12
+1eca0 4 125 12
+FUNC 1eca4 12 0 google_breakpad::AutoTestFile::~AutoTestFile
+1eca4 2 72 52
+1eca6 2 72 52
+1eca8 6 73 52
+1ecae 4 74 52
+1ecb2 4 77 52
+FUNC 1ecb8 6c 0 google_breakpad::AutoTestFile::Init
+1ecb8 e 92 52
+1ecc6 c 92 52
+1ecd2 6 93 52
+1ecd8 4 97 52
+1ecdc 2 92 52
+1ecde c 97 52
+1ecea 6 98 52
+1ecf0 6 101 52
+1ecf6 2 102 52
+1ecf8 2 101 52
+1ecfa 2 102 52
+1ecfc 6 105 52
+1ed02 22 106 52
+FUNC 1ed24 5c 0 ScopedTestFile::ScopedTestFile
+1ed24 2 51 13
+1ed26 4 51 13
+1ed2a 8 60 52
+1ed32 6 61 52
+1ed38 8 62 52
+1ed40 10 109 52
+1ed50 4 109 52
+1ed54 6 109 52
+1ed5a 4 110 52
+1ed5e 6 111 52
+1ed64 8 112 52
+1ed6c a 116 52
+1ed76 a 53 13
+FUNC 1ed80 dc 0 testing::internal::CmpHelperEQFailure<int, int>
+1ed80 e 1464 82
+1ed8e 2 1464 82
+1ed90 2 884 80
+1ed92 2 1464 82
+1ed94 2 240 126
+1ed96 2 1464 82
+1ed98 4 884 80
+1ed9c 8 1464 82
+1eda4 4 884 80
+1eda8 10 240 126
+1edb8 2 112 137
+1edba 4 378 136
+1edbe 4 379 136
+1edc2 2 112 137
+1edc4 2 481 106
+1edc6 4 379 136
+1edca a 148 142
+1edd4 4 101 108
+1edd8 2 380 136
+1edda 4 101 108
+1edde 6 886 80
+1ede4 8 884 80
+1edec 12 240 126
+1edfe 2 112 137
+1ee00 4 378 136
+1ee04 4 379 136
+1ee08 2 112 137
+1ee0a 2 481 106
+1ee0c 4 379 136
+1ee10 a 148 142
+1ee1a 2 380 136
+1ee1c 4 101 108
+1ee20 6 886 80
+1ee26 10 1471 82
+1ee36 c 156 137
+1ee42 1a 1472 82
+FUNC 1ee5c 80 0 CpuSetTest_EmptyCount_Test::TestBody
+1ee5c 4 58 13
+1ee60 8 59 13
+1ee68 a 60 13
+1ee72 a 1552 82
+1ee7c 2 60 13
+1ee7e e 1552 82
+1ee8c 8 60 13
+1ee94 6 302 82
+1ee9a 10 60 13
+1eeaa 6 60 13
+1eeb0 8 60 13
+1eeb8 6 85 79
+1eebe 6 60 13
+1eec4 6 256 82
+1eeca 12 61 13
+FUNC 1eedc 1ac 0 CpuSetTest_OneCpu_Test::TestBody
+1eedc 8 63 13
+1eee4 4 63 13
+1eee8 2 64 13
+1eeea 2 63 13
+1eeec 8 64 13
+1eef4 2 63 13
+1eef6 4 64 13
+1eefa 2 82 52
+1eefc 4 1139 87
+1ef00 4 82 52
+1ef04 4 277 82
+1ef08 10 1139 87
+1ef18 2 65 13
+1ef1a 18 65 13
+1ef32 12 65 13
+1ef44 6 65 13
+1ef4a 8 65 13
+1ef52 6 85 79
+1ef58 6 65 13
+1ef5e 6 156 137
+1ef64 a 256 82
+1ef6e 6 67 13
+1ef74 8 68 13
+1ef7c 2 1139 87
+1ef7e 4 277 82
+1ef82 4 1139 87
+1ef86 2 68 13
+1ef88 1a 68 13
+1efa2 14 68 13
+1efb6 6 68 13
+1efbc 8 68 13
+1efc4 6 85 79
+1efca 6 68 13
+1efd0 8 156 137
+1efd8 6 256 82
+1efde a 69 13
+1efe8 8 1512 82
+1eff0 2 69 13
+1eff2 e 1512 82
+1f000 6 69 13
+1f006 6 302 82
+1f00c 10 69 13
+1f01c 6 69 13
+1f022 8 69 13
+1f02a 6 85 79
+1f030 6 69 13
+1f036 6 256 82
+1f03c 6 49 13
+1f042 46 70 13
+FUNC 1f088 1ac 0 CpuSetTest_OneCpuTerminated_Test::TestBody
+1f088 8 72 13
+1f090 4 72 13
+1f094 2 73 13
+1f096 2 72 13
+1f098 8 73 13
+1f0a0 2 72 13
+1f0a2 4 73 13
+1f0a6 2 82 52
+1f0a8 4 1139 87
+1f0ac 4 82 52
+1f0b0 4 277 82
+1f0b4 10 1139 87
+1f0c4 2 74 13
+1f0c6 18 74 13
+1f0de 12 74 13
+1f0f0 6 74 13
+1f0f6 8 74 13
+1f0fe 6 85 79
+1f104 6 74 13
+1f10a 6 156 137
+1f110 a 256 82
+1f11a 6 76 13
+1f120 8 77 13
+1f128 2 1139 87
+1f12a 4 277 82
+1f12e 4 1139 87
+1f132 2 77 13
+1f134 1a 77 13
+1f14e 14 77 13
+1f162 6 77 13
+1f168 8 77 13
+1f170 6 85 79
+1f176 6 77 13
+1f17c 8 156 137
+1f184 6 256 82
+1f18a a 78 13
+1f194 8 1512 82
+1f19c 2 78 13
+1f19e e 1512 82
+1f1ac 6 78 13
+1f1b2 6 302 82
+1f1b8 10 78 13
+1f1c8 6 78 13
+1f1ce 8 78 13
+1f1d6 6 85 79
+1f1dc 6 78 13
+1f1e2 6 256 82
+1f1e8 6 49 13
+1f1ee 46 79 13
+FUNC 1f234 1b0 0 CpuSetTest_TwoCpusWithComma_Test::TestBody
+1f234 8 81 13
+1f23c 4 81 13
+1f240 2 82 13
+1f242 2 81 13
+1f244 8 82 13
+1f24c 2 81 13
+1f24e 4 82 13
+1f252 2 82 52
+1f254 4 1139 87
+1f258 4 82 52
+1f25c 4 277 82
+1f260 10 1139 87
+1f270 2 83 13
+1f272 18 83 13
+1f28a 12 83 13
+1f29c 6 83 13
+1f2a2 8 83 13
+1f2aa 6 85 79
+1f2b0 6 83 13
+1f2b6 6 156 137
+1f2bc a 256 82
+1f2c6 6 85 13
+1f2cc 8 86 13
+1f2d4 2 1139 87
+1f2d6 4 277 82
+1f2da 4 1139 87
+1f2de 2 86 13
+1f2e0 1a 86 13
+1f2fa 14 86 13
+1f30e 6 86 13
+1f314 8 86 13
+1f31c 6 85 79
+1f322 6 86 13
+1f328 8 156 137
+1f330 4 87 13
+1f334 6 256 82
+1f33a a 87 13
+1f344 8 1512 82
+1f34c 2 87 13
+1f34e e 1512 82
+1f35c 6 87 13
+1f362 6 302 82
+1f368 10 87 13
+1f378 6 87 13
+1f37e 8 87 13
+1f386 6 85 79
+1f38c 6 87 13
+1f392 6 256 82
+1f398 6 49 13
+1f39e 46 88 13
+FUNC 1f3e4 1b0 0 CpuSetTest_TwoCpusWithRange_Test::TestBody
+1f3e4 8 90 13
+1f3ec 4 90 13
+1f3f0 2 91 13
+1f3f2 2 90 13
+1f3f4 8 91 13
+1f3fc 2 90 13
+1f3fe 4 91 13
+1f402 2 82 52
+1f404 4 1139 87
+1f408 4 82 52
+1f40c 4 277 82
+1f410 10 1139 87
+1f420 2 92 13
+1f422 18 92 13
+1f43a 12 92 13
+1f44c 6 92 13
+1f452 8 92 13
+1f45a 6 85 79
+1f460 6 92 13
+1f466 6 156 137
+1f46c a 256 82
+1f476 6 94 13
+1f47c 8 95 13
+1f484 2 1139 87
+1f486 4 277 82
+1f48a 4 1139 87
+1f48e 2 95 13
+1f490 1a 95 13
+1f4aa 14 95 13
+1f4be 6 95 13
+1f4c4 8 95 13
+1f4cc 6 85 79
+1f4d2 6 95 13
+1f4d8 8 156 137
+1f4e0 4 96 13
+1f4e4 6 256 82
+1f4ea a 96 13
+1f4f4 8 1512 82
+1f4fc 2 96 13
+1f4fe e 1512 82
+1f50c 6 96 13
+1f512 6 302 82
+1f518 10 96 13
+1f528 6 96 13
+1f52e 8 96 13
+1f536 6 85 79
+1f53c 6 96 13
+1f542 6 256 82
+1f548 6 49 13
+1f54e 46 97 13
+FUNC 1f594 1ac 0 CpuSetTest_TenCpusWithRange_Test::TestBody
+1f594 8 99 13
+1f59c 4 99 13
+1f5a0 2 100 13
+1f5a2 2 99 13
+1f5a4 8 100 13
+1f5ac 2 99 13
+1f5ae 4 100 13
+1f5b2 2 82 52
+1f5b4 4 1139 87
+1f5b8 4 82 52
+1f5bc 4 277 82
+1f5c0 10 1139 87
+1f5d0 2 101 13
+1f5d2 18 101 13
+1f5ea 12 101 13
+1f5fc 6 101 13
+1f602 8 101 13
+1f60a 6 85 79
+1f610 6 101 13
+1f616 6 156 137
+1f61c a 256 82
+1f626 6 103 13
+1f62c 8 104 13
+1f634 2 1139 87
+1f636 4 277 82
+1f63a 4 1139 87
+1f63e 2 104 13
+1f640 1a 104 13
+1f65a 14 104 13
+1f66e 6 104 13
+1f674 8 104 13
+1f67c 6 85 79
+1f682 6 104 13
+1f688 8 156 137
+1f690 6 256 82
+1f696 a 105 13
+1f6a0 8 1512 82
+1f6a8 2 105 13
+1f6aa e 1512 82
+1f6b8 6 105 13
+1f6be 6 302 82
+1f6c4 10 105 13
+1f6d4 6 105 13
+1f6da 8 105 13
+1f6e2 6 85 79
+1f6e8 6 105 13
+1f6ee 6 256 82
+1f6f4 6 49 13
+1f6fa 46 106 13
+FUNC 1f740 1ac 0 CpuSetTest_MultiItems_Test::TestBody
+1f740 8 108 13
+1f748 4 108 13
+1f74c 2 109 13
+1f74e 2 108 13
+1f750 8 109 13
+1f758 2 108 13
+1f75a 4 109 13
+1f75e 2 82 52
+1f760 4 1139 87
+1f764 4 82 52
+1f768 4 277 82
+1f76c 10 1139 87
+1f77c 2 110 13
+1f77e 18 110 13
+1f796 12 110 13
+1f7a8 6 110 13
+1f7ae 8 110 13
+1f7b6 6 85 79
+1f7bc 6 110 13
+1f7c2 6 156 137
+1f7c8 a 256 82
+1f7d2 6 112 13
+1f7d8 8 113 13
+1f7e0 2 1139 87
+1f7e2 4 277 82
+1f7e6 4 1139 87
+1f7ea 2 113 13
+1f7ec 1a 113 13
+1f806 14 113 13
+1f81a 6 113 13
+1f820 8 113 13
+1f828 6 85 79
+1f82e 6 113 13
+1f834 8 156 137
+1f83c 6 256 82
+1f842 a 114 13
+1f84c 8 1512 82
+1f854 2 114 13
+1f856 e 1512 82
+1f864 6 114 13
+1f86a 6 302 82
+1f870 10 114 13
+1f880 6 114 13
+1f886 8 114 13
+1f88e 6 85 79
+1f894 6 114 13
+1f89a 6 256 82
+1f8a0 6 49 13
+1f8a6 46 115 13
+FUNC 1f8ec 3e8 0 CpuSetTest_IntersectWith_Test::TestBody
+1f8ec 8 117 13
+1f8f4 4 117 13
+1f8f8 2 118 13
+1f8fa 2 117 13
+1f8fc 8 118 13
+1f904 2 117 13
+1f906 4 118 13
+1f90a 4 82 52
+1f90e 4 1139 87
+1f912 6 82 52
+1f918 4 277 82
+1f91c e 1139 87
+1f92a 2 119 13
+1f92c 18 119 13
+1f944 12 119 13
+1f956 6 119 13
+1f95c 8 119 13
+1f964 6 85 79
+1f96a 6 119 13
+1f970 4 156 137
+1f974 6 256 82
+1f97a 6 120 13
+1f980 c 121 13
+1f98c 4 277 82
+1f990 4 1139 87
+1f994 2 121 13
+1f996 18 121 13
+1f9ae 12 121 13
+1f9c0 6 121 13
+1f9c6 8 121 13
+1f9ce 6 85 79
+1f9d4 6 121 13
+1f9da 6 156 137
+1f9e0 e 256 82
+1f9ee a 122 13
+1f9f8 4 1512 82
+1f9fc 2 122 13
+1f9fe e 1512 82
+1fa0c 6 122 13
+1fa12 6 302 82
+1fa18 10 122 13
+1fa28 6 122 13
+1fa2e 8 122 13
+1fa36 6 85 79
+1fa3c 8 122 13
+1fa44 6 256 82
+1fa4a e 124 13
+1fa58 4 82 52
+1fa5c 4 1139 87
+1fa60 4 82 52
+1fa64 4 277 82
+1fa68 2 125 13
+1fa6a 18 125 13
+1fa82 12 125 13
+1fa94 6 125 13
+1fa9a 8 125 13
+1faa2 6 85 79
+1faa8 6 125 13
+1faae 6 156 137
+1fab4 a 256 82
+1fabe 6 126 13
+1fac4 c 127 13
+1fad0 2 277 82
+1fad2 8 1139 87
+1fada 2 127 13
+1fadc 18 127 13
+1faf4 12 127 13
+1fb06 6 127 13
+1fb0c 8 127 13
+1fb14 6 85 79
+1fb1a 6 127 13
+1fb20 8 156 137
+1fb28 6 256 82
+1fb2e a 128 13
+1fb38 4 1512 82
+1fb3c 2 128 13
+1fb3e e 1512 82
+1fb4c 4 128 13
+1fb50 6 302 82
+1fb56 10 128 13
+1fb66 6 128 13
+1fb6c 8 128 13
+1fb74 6 85 79
+1fb7a 6 128 13
+1fb80 a 256 82
+1fb8a 2 114 12
+1fb8c 10 115 12
+1fb9c 2 114 12
+1fb9e 4 114 12
+1fba2 8 131 13
+1fbaa 4 1512 82
+1fbae 4 131 13
+1fbb2 e 1512 82
+1fbc0 6 131 13
+1fbc6 6 302 82
+1fbcc e 131 13
+1fbda 6 256 82
+1fbe0 a 132 13
+1fbea 4 1512 82
+1fbee 2 132 13
+1fbf0 e 1512 82
+1fbfe 4 132 13
+1fc02 6 302 82
+1fc08 10 132 13
+1fc18 6 132 13
+1fc1e 8 132 13
+1fc26 6 85 79
+1fc2c 6 132 13
+1fc32 6 256 82
+1fc38 c 49 13
+1fc44 90 133 13
+FUNC 1fcd4 1fc 0 CpuSetTest_SelfIntersection_Test::TestBody
+1fcd4 8 135 13
+1fcdc 4 135 13
+1fce0 2 136 13
+1fce2 2 135 13
+1fce4 8 136 13
+1fcec 2 135 13
+1fcee 4 136 13
+1fcf2 2 82 52
+1fcf4 2 1139 87
+1fcf6 6 82 52
+1fcfc 4 277 82
+1fd00 e 1139 87
+1fd0e 2 137 13
+1fd10 18 137 13
+1fd28 12 137 13
+1fd3a 6 137 13
+1fd40 8 137 13
+1fd48 6 85 79
+1fd4e 6 137 13
+1fd54 6 156 137
+1fd5a a 256 82
+1fd64 6 138 13
+1fd6a 8 139 13
+1fd72 2 1139 87
+1fd74 4 277 82
+1fd78 4 1139 87
+1fd7c 2 139 13
+1fd7e 1a 139 13
+1fd98 14 139 13
+1fdac 6 139 13
+1fdb2 8 139 13
+1fdba 6 85 79
+1fdc0 6 139 13
+1fdc6 8 156 137
+1fdce 6 256 82
+1fdd4 a 140 13
+1fdde e 1512 82
+1fdec 2 140 13
+1fdee e 1512 82
+1fdfc 6 140 13
+1fe02 6 302 82
+1fe08 e 140 13
+1fe16 6 256 82
+1fe1c a 143 13
+1fe26 2 1512 82
+1fe28 2 143 13
+1fe2a c 1512 82
+1fe36 6 143 13
+1fe3c 6 302 82
+1fe42 10 143 13
+1fe52 6 143 13
+1fe58 8 143 13
+1fe60 6 85 79
+1fe66 6 143 13
+1fe6c 6 256 82
+1fe72 4 49 13
+1fe76 6 256 82
+1fe7c 6 49 13
+1fe82 4e 144 13
+FUNC 1fed0 3ec 0 CpuSetTest_EmptyIntersection_Test::TestBody
+1fed0 8 146 13
+1fed8 4 146 13
+1fedc 2 147 13
+1fede 2 146 13
+1fee0 8 147 13
+1fee8 2 146 13
+1feea 4 147 13
+1feee 4 82 52
+1fef2 2 1139 87
+1fef4 6 82 52
+1fefa 4 277 82
+1fefe c 1139 87
+1ff0a 2 148 13
+1ff0c 18 148 13
+1ff24 12 148 13
+1ff36 6 148 13
+1ff3c 8 148 13
+1ff44 6 85 79
+1ff4a 6 148 13
+1ff50 4 156 137
+1ff54 6 256 82
+1ff5a 6 149 13
+1ff60 a 150 13
+1ff6a 2 1139 87
+1ff6c 4 277 82
+1ff70 4 1139 87
+1ff74 2 150 13
+1ff76 18 150 13
+1ff8e 12 150 13
+1ffa0 6 150 13
+1ffa6 8 150 13
+1ffae 6 85 79
+1ffb4 6 150 13
+1ffba 6 156 137
+1ffc0 e 256 82
+1ffce a 151 13
+1ffd8 6 1512 82
+1ffde 2 151 13
+1ffe0 10 1512 82
+1fff0 8 151 13
+1fff8 6 302 82
+1fffe 10 151 13
+2000e 6 151 13
+20014 8 151 13
+2001c 6 85 79
+20022 8 151 13
+2002a 6 256 82
+20030 e 153 13
+2003e 4 82 52
+20042 2 1139 87
+20044 4 82 52
+20048 4 277 82
+2004c 2 1139 87
+2004e 2 154 13
+20050 18 154 13
+20068 12 154 13
+2007a 6 154 13
+20080 8 154 13
+20088 6 85 79
+2008e 6 154 13
+20094 6 156 137
+2009a a 256 82
+200a4 6 155 13
+200aa a 156 13
+200b4 6 1139 87
+200ba 6 277 82
+200c0 2 156 13
+200c2 18 156 13
+200da 12 156 13
+200ec 6 156 13
+200f2 8 156 13
+200fa 6 85 79
+20100 6 156 13
+20106 8 156 137
+2010e 6 256 82
+20114 a 157 13
+2011e 2 1512 82
+20120 2 157 13
+20122 e 1512 82
+20130 4 157 13
+20134 6 302 82
+2013a 10 157 13
+2014a 6 157 13
+20150 8 157 13
+20158 6 85 79
+2015e 6 157 13
+20164 a 256 82
+2016e 2 114 12
+20170 12 115 12
+20182 2 114 12
+20184 4 114 12
+20188 8 160 13
+20190 4 1552 82
+20194 4 160 13
+20198 e 1552 82
+201a6 8 160 13
+201ae 6 302 82
+201b4 e 160 13
+201c2 6 256 82
+201c8 a 162 13
+201d2 4 1512 82
+201d6 2 162 13
+201d8 e 1512 82
+201e6 6 162 13
+201ec 6 302 82
+201f2 10 162 13
+20202 6 162 13
+20208 8 162 13
+20210 6 85 79
+20216 6 162 13
+2021c 6 256 82
+20222 c 49 13
+2022e 8e 163 13
+FUNC 202bc 18 0 DirectoryReaderTest_CompareResults_Test::~DirectoryReaderTest_CompareResults_Test
+202bc 2 47 15
+202be 16 47 15
+FUNC 202d4 12 0 DirectoryReaderTest_CompareResults_Test::~DirectoryReaderTest_CompareResults_Test
+202d4 2 47 15
+202d6 6 47 15
+202dc 6 47 15
+202e2 4 47 15
+FUNC 202e8 20 0 testing::internal::TestFactoryImpl<DirectoryReaderTest_CompareResults_Test>::CreateTest
+202e8 2 486 85
+202ea 8 486 85
+202f2 6 47 15
+202f8 2 486 85
+202fa 6 47 15
+20300 8 486 85
+FUNC 20308 28 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_node
+20308 2 315 141
+2030a 2 306 106
+2030c 2 315 141
+2030e 6 306 106
+20314 6 307 106
+2031a 4 119 108
+2031e 6 119 108
+20324 2 321 141
+20326 2 324 141
+20328 2 321 141
+2032a 2 322 141
+2032c 4 324 141
+FUNC 20330 98 0 std::priv::__put_num<char, std::char_traits<char>, long unsigned int>
+20330 4 194 126
+20334 4 194 126
+20338 a 181 127
+20342 2 199 126
+20344 10 211 126
+20354 2 202 126
+20356 2 145 115
+20358 4 202 126
+2035c 2 145 115
+2035e 2 202 126
+20360 6 145 115
+20366 8 351 122
+2036e 6 351 122
+20374 2 202 126
+20376 2 351 122
+20378 c 202 126
+20384 18 57 128
+2039c 16 72 125
+203b2 6 202 126
+203b8 4 210 126
+203bc 6 212 126
+203c2 6 213 126
+FUNC 203c8 28 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_erase
+203c8 6 655 140
+203ce 2 657 140
+203d0 8 658 140
+203d8 4 156 137
+203dc 2 659 140
+203de 4 156 137
+203e2 c 161 106
+203ee 2 664 140
+FUNC 203f0 34 0 std::operator< <char, std::char_traits<char>, std::allocator<char> >
+203f0 6 351 139
+203f6 2 1073 136
+203f8 2 1074 136
+203fa 2 1073 136
+203fc 2 1074 136
+203fe 10 226 145
+2040e 2 1076 136
+20410 4 1076 136
+20414 8 1076 136
+2041c 4 1076 136
+20420 4 355 139
+FUNC 20424 2c 0 std::priv::_Rb_global<bool>::_Rotate_left
+20424 2 62 140
+20426 4 63 140
+2042a 4 64 140
+2042e 2 65 140
+20430 4 66 140
+20434 6 68 140
+2043a 4 69 140
+2043e 6 70 140
+20444 4 71 140
+20448 2 73 140
+2044a 2 74 140
+2044c 4 75 140
+FUNC 20450 2c 0 std::priv::_Rb_global<bool>::_Rotate_right
+20450 2 81 140
+20452 4 82 140
+20456 4 83 140
+2045a 2 84 140
+2045c 4 85 140
+20460 6 87 140
+20466 4 88 140
+2046a 6 89 140
+20470 4 90 140
+20474 2 92 140
+20476 2 93 140
+20478 4 94 140
+FUNC 2047c 9e 0 std::priv::_Rb_global<bool>::_Rebalance
+2047c 4 98 140
+20480 4 100 140
+20484 4 98 140
+20488 2 133 140
+2048a 4 100 140
+2048e 6 101 140
+20494 8 139 140
+2049c 8 101 140
+204a4 8 102 140
+204ac 2 103 140
+204ae 2 104 140
+204b0 4 104 140
+204b4 6 111 140
+204ba a 113 140
+204c4 2 115 140
+204c6 2 117 140
+204c8 2 115 140
+204ca 8 116 140
+204d2 a 117 140
+204dc 2 122 140
+204de 4 122 140
+204e2 2 123 140
+204e4 2 124 140
+204e6 6 125 140
+204ec 6 126 140
+204f2 6 129 140
+204f8 a 131 140
+20502 2 133 140
+20504 2 135 140
+20506 2 133 140
+20508 8 134 140
+20510 a 135 140
+FUNC 2051a 6e 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::priv::_Identity<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::priv::_SetTraitsT<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_insert
+2051a 2 358 140
+2051c 2 350 140
+2051e 8 350 140
+20526 2 358 140
+20528 8 359 140
+20530 2 360 140
+20532 2 361 140
+20534 4 362 140
+20538 4 364 140
+2053c 4 364 140
+20540 a 79 111
+2054a 2 364 140
+2054c 6 367 140
+20552 2 368 140
+20554 2 369 140
+20556 2 367 140
+20558 4 369 140
+2055c 4 370 140
+20560 6 373 140
+20566 2 374 140
+20568 2 375 140
+2056a 2 373 140
+2056c 4 375 140
+20570 2 376 140
+20572 2 379 140
+20574 2 378 140
+20576 6 379 140
+2057c 2 380 140
+2057e 2 382 140
+20580 4 380 140
+20584 2 142 141
+20586 2 382 140
+FUNC 20588 70c 0 DirectoryReaderTest_CompareResults_Test::TestBody
+20588 8 47 15
+20590 2 263 141
+20592 8 47 15
+2059a 2 250 141
+2059c 2 47 15
+2059e 8 250 141
+205a6 2 47 15
+205a8 8 250 141
+205b0 a 481 106
+205ba 4 50 15
+205be 2 263 141
+205c0 2 50 15
+205c2 2 265 141
+205c4 2 391 141
+205c6 2 266 141
+205c8 2 267 141
+205ca 4 50 15
+205ce 6 51 15
+205d4 2 277 82
+205d6 2 1139 87
+205d8 2 51 15
+205da 6 277 82
+205e0 2 51 15
+205e2 1e 51 15
+20600 c 51 15
+2060c 4 51 15
+20610 a 51 15
+2061a 6 51 15
+20620 8 51 15
+20628 6 85 79
+2062e 6 51 15
+20634 4 156 137
+20638 6 256 82
+2063e 4 55 15
+20642 4 142 141
+20646 c 54 15
+20652 c 55 15
+2065e 2 408 140
+20660 2 406 140
+20662 2 407 140
+20664 2 409 140
+20666 a 79 111
+20670 2 412 140
+20672 4 412 140
+20676 2 412 140
+20678 6 47 15
+2067e 2 409 140
+20680 4 142 141
+20684 2 415 140
+20686 6 416 140
+2068c a 417 140
+20696 4 279 140
+2069a 8 279 140
+206a2 4 280 140
+206a6 4 281 140
+206aa 8 99 141
+206b2 2 285 140
+206b4 6 286 140
+206ba 6 288 140
+206c0 4 187 141
+206c4 4 356 141
+206c8 8 79 111
+206d0 2 421 140
+206d2 12 422 140
+206e4 8 156 137
+206ec 6 57 15
+206f2 12 59 15
+20704 2 60 15
+20706 2 1621 82
+20708 4 59 15
+2070c 4 60 15
+20710 2 1621 82
+20712 8 1621 82
+2071a 1e 1621 82
+20738 4 60 15
+2073c 2 1144 87
+2073e 6 298 82
+20744 6 298 82
+2074a 16 60 15
+20760 6 256 82
+20766 12 51 14
+20778 2 63 15
+2077a 4 3016 97
+2077e 4 553 141
+20782 6 65 14
+20788 1c 3016 97
+207a4 4 3016 97
+207a8 8 3016 97
+207b0 4 68 14
+207b4 4 71 14
+207b8 4 73 14
+207bc 4 71 14
+207c0 8 73 14
+207c8 8 77 14
+207d0 2 549 141
+207d2 a 553 141
+207dc 6 552 141
+207e2 a 553 141
+207ec c 79 111
+207f8 6 156 137
+207fe 4 553 141
+20802 6 554 141
+20808 c 556 141
+20814 4 558 141
+20818 c 559 141
+20824 c 79 111
+20830 6 156 137
+20836 8 560 141
+2083e 8 200 141
+20846 2 1139 87
+20848 2 277 82
+2084a 2 1139 87
+2084c 2 67 15
+2084e 1a 67 15
+20868 14 67 15
+2087c 6 256 82
+20882 2 68 15
+20884 4 87 14
+20888 4 68 15
+2088c 6 87 14
+20892 4 93 14
+20896 2 94 14
+20898 2 93 14
+2089a 4 94 14
+2089e 4 93 14
+208a2 6 94 14
+208a8 8 77 14
+208b0 2 549 141
+208b2 e 553 141
+208c0 6 552 141
+208c6 a 553 141
+208d0 c 79 111
+208dc 6 156 137
+208e2 4 553 141
+208e6 6 554 141
+208ec c 556 141
+208f8 4 558 141
+208fc 10 559 141
+2090c c 79 111
+20918 6 156 137
+2091e 8 560 141
+20926 8 200 141
+2092e 2 1139 87
+20930 2 277 82
+20932 2 1139 87
+20934 2 72 15
+20936 1a 72 15
+20950 14 72 15
+20964 2 549 141
+20966 2 256 82
+20968 4 553 141
+2096c 8 256 82
+20974 6 553 141
+2097a 6 552 141
+20980 a 553 141
+2098a c 79 111
+20996 6 156 137
+2099c 4 553 141
+209a0 6 554 141
+209a6 c 556 141
+209b2 4 558 141
+209b6 10 559 141
+209c6 c 79 111
+209d2 6 156 137
+209d8 8 560 141
+209e0 8 200 141
+209e8 2 1139 87
+209ea 2 277 82
+209ec 2 1139 87
+209ee 2 73 15
+209f0 1a 73 15
+20a0a 14 73 15
+20a1e 2 549 141
+20a20 2 256 82
+20a22 4 553 141
+20a26 8 256 82
+20a2e 6 553 141
+20a34 6 552 141
+20a3a a 553 141
+20a44 c 79 111
+20a50 6 156 137
+20a56 4 553 141
+20a5a 6 554 141
+20a60 c 556 141
+20a6c 4 558 141
+20a70 10 559 141
+20a80 c 79 111
+20a8c 6 156 137
+20a92 8 560 141
+20a9a 8 200 141
+20aa2 4 1139 87
+20aa6 2 277 82
+20aa8 4 1139 87
+20aac 2 74 15
+20aae 1a 74 15
+20ac8 16 74 15
+20ade 6 74 15
+20ae4 8 74 15
+20aec 6 85 79
+20af2 6 74 15
+20af8 8 156 137
+20b00 8 256 82
+20b08 6 1481 82
+20b0e 8 1482 82
+20b16 4 884 80
+20b1a 4 254 126
+20b1e 8 884 80
+20b26 4 75 132
+20b2a 4 254 126
+20b2e 2 75 132
+20b30 4 254 126
+20b34 8 75 132
+20b3c 6 886 80
+20b42 8 884 80
+20b4a 4 254 126
+20b4e 4 75 132
+20b52 4 254 126
+20b56 8 75 132
+20b5e 6 886 80
+20b64 18 1471 82
+20b7c c 156 137
+20b88 4 76 15
+20b8c 2 1144 87
+20b8e 6 298 82
+20b94 4 298 82
+20b98 12 76 15
+20baa 8 76 15
+20bb2 8 76 15
+20bba 6 85 79
+20bc0 6 76 15
+20bc6 e 256 82
+20bd4 6 77 15
+20bda 4 531 141
+20bde 8 532 141
+20be6 ae 78 15
+FUNC 20c94 18 0 LineReaderTest_TooLong_Test::~LineReaderTest_TooLong_Test
+20c94 2 158 17
+20c96 16 158 17
+FUNC 20cac 12 0 LineReaderTest_TooLong_Test::~LineReaderTest_TooLong_Test
+20cac 2 158 17
+20cae 6 158 17
+20cb4 6 158 17
+20cba 4 158 17
+FUNC 20cc0 18 0 LineReaderTest_MaxLength_Test::~LineReaderTest_MaxLength_Test
+20cc0 2 143 17
+20cc2 16 143 17
+FUNC 20cd8 12 0 LineReaderTest_MaxLength_Test::~LineReaderTest_MaxLength_Test
+20cd8 2 143 17
+20cda 6 143 17
+20ce0 6 143 17
+20ce6 4 143 17
+FUNC 20cec 18 0 LineReaderTest_TwoLines_Test::~LineReaderTest_TwoLines_Test
+20cec 2 121 17
+20cee 16 121 17
+FUNC 20d04 12 0 LineReaderTest_TwoLines_Test::~LineReaderTest_TwoLines_Test
+20d04 2 121 17
+20d06 6 121 17
+20d0c 6 121 17
+20d12 4 121 17
+FUNC 20d18 18 0 LineReaderTest_TwoLinesTerminated_Test::~LineReaderTest_TwoLinesTerminated_Test
+20d18 2 99 17
+20d1a 16 99 17
+FUNC 20d30 12 0 LineReaderTest_TwoLinesTerminated_Test::~LineReaderTest_TwoLinesTerminated_Test
+20d30 2 99 17
+20d32 6 99 17
+20d38 6 99 17
+20d3e 4 99 17
+FUNC 20d44 18 0 LineReaderTest_OneLine_Test::~LineReaderTest_OneLine_Test
+20d44 2 83 17
+20d46 16 83 17
+FUNC 20d5c 12 0 LineReaderTest_OneLine_Test::~LineReaderTest_OneLine_Test
+20d5c 2 83 17
+20d5e 6 83 17
+20d64 6 83 17
+20d6a 4 83 17
+FUNC 20d70 18 0 LineReaderTest_OneLineTerminated_Test::~LineReaderTest_OneLineTerminated_Test
+20d70 2 67 17
+20d72 16 67 17
+FUNC 20d88 12 0 LineReaderTest_OneLineTerminated_Test::~LineReaderTest_OneLineTerminated_Test
+20d88 2 67 17
+20d8a 6 67 17
+20d90 6 67 17
+20d96 4 67 17
+FUNC 20d9c 18 0 LineReaderTest_EmptyFile_Test::~LineReaderTest_EmptyFile_Test
+20d9c 2 57 17
+20d9e 16 57 17
+FUNC 20db4 12 0 LineReaderTest_EmptyFile_Test::~LineReaderTest_EmptyFile_Test
+20db4 2 57 17
+20db6 6 57 17
+20dbc 6 57 17
+20dc2 4 57 17
+FUNC 20dc8 20 0 testing::internal::TestFactoryImpl<LineReaderTest_TooLong_Test>::CreateTest
+20dc8 2 486 85
+20dca 8 486 85
+20dd2 6 158 17
+20dd8 2 486 85
+20dda 6 158 17
+20de0 8 486 85
+FUNC 20de8 20 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLinesTerminated_Test>::CreateTest
+20de8 2 486 85
+20dea 8 486 85
+20df2 6 99 17
+20df8 2 486 85
+20dfa 6 99 17
+20e00 8 486 85
+FUNC 20e08 20 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLine_Test>::CreateTest
+20e08 2 486 85
+20e0a 8 486 85
+20e12 6 83 17
+20e18 2 486 85
+20e1a 6 83 17
+20e20 8 486 85
+FUNC 20e28 20 0 testing::internal::TestFactoryImpl<LineReaderTest_OneLineTerminated_Test>::CreateTest
+20e28 2 486 85
+20e2a 8 486 85
+20e32 6 67 17
+20e38 2 486 85
+20e3a 6 67 17
+20e40 8 486 85
+FUNC 20e48 20 0 testing::internal::TestFactoryImpl<LineReaderTest_EmptyFile_Test>::CreateTest
+20e48 2 486 85
+20e4a 8 486 85
+20e52 6 57 17
+20e58 2 486 85
+20e5a 6 57 17
+20e60 8 486 85
+FUNC 20e68 20 0 testing::internal::TestFactoryImpl<LineReaderTest_MaxLength_Test>::CreateTest
+20e68 2 486 85
+20e6a 8 486 85
+20e72 6 143 17
+20e78 2 486 85
+20e7a 6 143 17
+20e80 8 486 85
+FUNC 20e88 20 0 testing::internal::TestFactoryImpl<LineReaderTest_TwoLines_Test>::CreateTest
+20e88 2 486 85
+20e8a 8 486 85
+20e92 6 121 17
+20e98 2 486 85
+20e9a 6 121 17
+20ea0 8 486 85
+FUNC 20ea8 9e 0 google_breakpad::LineReader::GetNextLine
+20ea8 2 64 16
+20eaa 4 103 16
+20eae 6 64 16
+20eb4 4 66 16
+20eb8 6 66 16
+20ebe 6 64 16
+20ec4 4 69 16
+20ec8 8 70 16
+20ed0 4 71 16
+20ed4 2 73 16
+20ed6 2 71 16
+20ed8 2 74 16
+20eda 2 72 16
+20edc 2 73 16
+20ede 2 74 16
+20ee0 4 70 16
+20ee4 4 69 16
+20ee8 6 78 16
+20eee 4 86 16
+20ef2 6 90 16
+20ef8 2 91 16
+20efa 2 92 16
+20efc 2 93 16
+20efe 6 92 16
+20f04 2 93 16
+20f06 2 94 16
+20f08 2 98 16
+20f0a 2 3104 97
+20f0c 2 98 16
+20f0e 4 99 16
+20f12 12 3104 97
+20f24 4 3104 97
+20f28 6 3104 97
+20f2e 4 100 16
+20f32 4 105 16
+20f36 4 103 16
+20f3a 6 105 16
+20f40 2 67 16
+20f42 4 111 16
+FUNC 20f46 12 0 google_breakpad::LineReader::PopLine
+20f46 4 113 16
+20f4a 2 117 16
+20f4c 2 118 16
+20f4e 2 117 16
+20f50 8 118 16
+FUNC 20f58 42 0 google_breakpad::AutoTestFile::WriteText
+20f58 8 108 52
+20f60 10 109 52
+20f70 4 109 52
+20f74 6 109 52
+20f7a 4 110 52
+20f7e 6 111 52
+20f84 6 112 52
+20f8a 2 113 52
+20f8c 4 116 52
+20f90 4 117 52
+20f94 6 116 52
+FUNC 20f9c 2c 0 ScopedTestFile::ScopedTestFile
+20f9c 2 46 17
+20f9e 4 46 17
+20fa2 8 60 52
+20faa 6 61 52
+20fb0 6 62 52
+20fb6 2 62 52
+20fb8 2 62 52
+20fba 6 62 52
+20fc0 8 48 17
+FUNC 20fc8 148 0 LineReaderTest_EmptyFile_Test::TestBody
+20fc8 a 57 17
+20fd2 4 57 17
+20fd6 2 58 17
+20fd8 2 57 17
+20fda 6 58 17
+20fe0 2 57 17
+20fe2 4 58 17
+20fe6 2 82 52
+20fe8 4 1139 87
+20fec 2 82 52
+20fee 2 277 82
+20ff0 2 82 52
+20ff2 2 277 82
+20ff4 a 1139 87
+20ffe 2 59 17
+21000 16 59 17
+21016 a 59 17
+21020 4 59 17
+21024 a 59 17
+2102e 6 59 17
+21034 8 59 17
+2103c 6 85 79
+21042 6 59 17
+21048 4 156 137
+2104c 6 256 82
+21052 2 49 16
+21054 6 64 17
+2105a a 49 16
+21064 a 64 17
+2106e 2 277 82
+21070 4 1139 87
+21074 2 64 17
+21076 1a 64 17
+21090 c 64 17
+2109c 2 64 17
+2109e a 64 17
+210a8 6 64 17
+210ae 8 64 17
+210b6 6 85 79
+210bc 6 64 17
+210c2 6 156 137
+210c8 6 256 82
+210ce 6 44 17
+210d4 3c 65 17
+FUNC 21110 16c 0 LineReaderTest_TooLong_Test::TestBody
+21110 a 158 17
+2111a 4 158 17
+2111e 2 161 17
+21120 2 158 17
+21122 8 161 17
+2112a 4 158 17
+2112e 4 161 17
+21132 c 66 52
+2113e 6 67 52
+21144 c 68 52
+21150 2 82 52
+21152 4 1139 87
+21156 2 82 52
+21158 2 277 82
+2115a 2 82 52
+2115c 2 277 82
+2115e a 1139 87
+21168 2 163 17
+2116a 16 163 17
+21180 a 163 17
+2118a 4 163 17
+2118e a 163 17
+21198 6 163 17
+2119e 8 163 17
+211a6 6 85 79
+211ac 6 163 17
+211b2 4 156 137
+211b6 6 256 82
+211bc 2 49 16
+211be 6 168 17
+211c4 a 49 16
+211ce a 168 17
+211d8 2 277 82
+211da 4 1139 87
+211de 2 168 17
+211e0 1a 168 17
+211fa c 168 17
+21206 2 168 17
+21208 a 168 17
+21212 6 168 17
+21218 8 168 17
+21220 6 85 79
+21226 6 168 17
+2122c 6 156 137
+21232 6 256 82
+21238 6 44 17
+2123e 3e 169 17
+FUNC 2127c a0 0 testing::internal::CmpHelperEQFailure<unsigned int, unsigned int>
+2127c e 1464 82
+2128a 2 1464 82
+2128c 2 884 80
+2128e 6 1464 82
+21294 4 254 126
+21298 2 1464 82
+2129a 4 884 80
+2129e 4 1464 82
+212a2 2 75 132
+212a4 4 884 80
+212a8 4 254 126
+212ac 2 75 132
+212ae 4 254 126
+212b2 8 75 132
+212ba 6 886 80
+212c0 8 884 80
+212c8 6 254 126
+212ce 4 75 132
+212d2 4 254 126
+212d6 8 75 132
+212de 6 886 80
+212e4 14 1471 82
+212f8 c 156 137
+21304 18 1472 82
+FUNC 2131c a0 0 testing::internal::CmpHelperEQFailure<char, char>
+2131c e 1464 82
+2132a 2 1464 82
+2132c 2 884 80
+2132e 6 1464 82
+21334 4 394 80
+21338 2 1464 82
+2133a 4 884 80
+2133e 4 1464 82
+21342 2 75 132
+21344 4 884 80
+21348 4 394 80
+2134c 2 75 132
+2134e 4 394 80
+21352 8 75 132
+2135a 6 886 80
+21360 8 884 80
+21368 6 394 80
+2136e 4 75 132
+21372 4 394 80
+21376 8 75 132
+2137e 6 886 80
+21384 14 1471 82
+21398 c 156 137
+213a4 18 1472 82
+FUNC 213bc 20 0 testing::internal::CmpHelperEQ<char, char>
+213bc 2 1476 82
+213be 2 1476 82
+213c0 4 1481 82
+213c4 2 1476 82
+213c6 4 1481 82
+213ca 6 1482 82
+213d0 6 1487 82
+213d6 6 1488 82
+FUNC 213dc 288 0 LineReaderTest_OneLineTerminated_Test::TestBody
+213dc a 67 17
+213e6 4 67 17
+213ea 2 68 17
+213ec 2 67 17
+213ee 8 68 17
+213f6 2 67 17
+213f8 4 68 17
+213fc 4 82 52
+21400 4 1139 87
+21404 2 82 52
+21406 2 277 82
+21408 4 82 52
+2140c 2 277 82
+2140e a 1139 87
+21418 2 69 17
+2141a 16 69 17
+21430 12 69 17
+21442 6 256 82
+21448 4 74 17
+2144c 4 49 16
+21450 a 74 17
+2145a a 49 16
+21464 4 74 17
+21468 4 1139 87
+2146c 2 277 82
+2146e 2 74 17
+21470 18 74 17
+21488 12 74 17
+2149a 6 256 82
+214a0 2 75 17
+214a2 4 1512 82
+214a6 2 75 17
+214a8 10 1512 82
+214b8 4 75 17
+214bc 6 302 82
+214c2 10 75 17
+214d2 6 256 82
+214d8 2 76 17
+214da 2 1512 82
+214dc 2 76 17
+214de 14 1512 82
+214f2 4 76 17
+214f6 6 302 82
+214fc 10 76 17
+2150c 6 256 82
+21512 4 77 17
+21516 4 1552 82
+2151a 6 77 17
+21520 e 1552 82
+2152e 4 77 17
+21532 6 302 82
+21538 12 77 17
+2154a 6 77 17
+21550 8 77 17
+21558 6 85 79
+2155e 8 77 17
+21566 6 256 82
+2156c a 78 17
+21576 10 80 17
+21586 2 277 82
+21588 4 1139 87
+2158c 2 80 17
+2158e 18 80 17
+215a6 14 80 17
+215ba 6 80 17
+215c0 8 80 17
+215c8 6 85 79
+215ce 6 80 17
+215d4 6 156 137
+215da 6 256 82
+215e0 4 44 17
+215e4 6 256 82
+215ea 6 44 17
+215f0 74 81 17
+FUNC 21664 288 0 LineReaderTest_OneLine_Test::TestBody
+21664 a 83 17
+2166e 4 83 17
+21672 2 84 17
+21674 2 83 17
+21676 8 84 17
+2167e 2 83 17
+21680 4 84 17
+21684 4 82 52
+21688 4 1139 87
+2168c 2 82 52
+2168e 2 277 82
+21690 4 82 52
+21694 2 277 82
+21696 a 1139 87
+216a0 2 85 17
+216a2 16 85 17
+216b8 12 85 17
+216ca 6 256 82
+216d0 4 90 17
+216d4 4 49 16
+216d8 a 90 17
+216e2 a 49 16
+216ec 4 90 17
+216f0 4 1139 87
+216f4 2 277 82
+216f6 2 90 17
+216f8 18 90 17
+21710 12 90 17
+21722 6 256 82
+21728 2 91 17
+2172a 4 1512 82
+2172e 2 91 17
+21730 10 1512 82
+21740 4 91 17
+21744 6 302 82
+2174a 10 91 17
+2175a 6 256 82
+21760 2 92 17
+21762 2 1512 82
+21764 2 92 17
+21766 14 1512 82
+2177a 4 92 17
+2177e 6 302 82
+21784 10 92 17
+21794 6 256 82
+2179a 4 93 17
+2179e 4 1552 82
+217a2 6 93 17
+217a8 e 1552 82
+217b6 4 93 17
+217ba 6 302 82
+217c0 12 93 17
+217d2 6 93 17
+217d8 8 93 17
+217e0 6 85 79
+217e6 8 93 17
+217ee 6 256 82
+217f4 a 94 17
+217fe 10 96 17
+2180e 2 277 82
+21810 4 1139 87
+21814 2 96 17
+21816 18 96 17
+2182e 14 96 17
+21842 6 96 17
+21848 8 96 17
+21850 6 85 79
+21856 6 96 17
+2185c 6 156 137
+21862 6 256 82
+21868 4 44 17
+2186c 6 256 82
+21872 6 44 17
+21878 74 97 17
+FUNC 218ec 3c4 0 LineReaderTest_TwoLinesTerminated_Test::TestBody
+218ec a 99 17
+218f6 4 99 17
+218fa 2 100 17
+218fc 2 99 17
+218fe 8 100 17
+21906 2 99 17
+21908 4 100 17
+2190c 4 82 52
+21910 4 1139 87
+21914 2 82 52
+21916 2 277 82
+21918 4 82 52
+2191c 2 277 82
+2191e a 1139 87
+21928 2 101 17
+2192a 16 101 17
+21940 12 101 17
+21952 6 256 82
+21958 4 106 17
+2195c 4 49 16
+21960 a 106 17
+2196a a 49 16
+21974 4 106 17
+21978 4 1139 87
+2197c 2 277 82
+2197e 2 106 17
+21980 18 106 17
+21998 12 106 17
+219aa 6 256 82
+219b0 4 107 17
+219b4 1c 1512 82
+219d0 4 107 17
+219d4 6 302 82
+219da 10 107 17
+219ea 6 256 82
+219f0 4 108 17
+219f4 1a 1512 82
+21a0e 4 108 17
+21a12 6 302 82
+21a18 10 108 17
+21a28 6 256 82
+21a2e a 1552 82
+21a38 4 109 17
+21a3c 2 1552 82
+21a3e 6 109 17
+21a44 e 1552 82
+21a52 4 109 17
+21a56 6 302 82
+21a5c 10 109 17
+21a6c 6 256 82
+21a72 a 110 17
+21a7c a 112 17
+21a86 4 1139 87
+21a8a 2 277 82
+21a8c 2 112 17
+21a8e 18 112 17
+21aa6 14 112 17
+21aba 6 112 17
+21ac0 8 112 17
+21ac8 6 85 79
+21ace 6 112 17
+21ad4 4 156 137
+21ad8 6 256 82
+21ade 2 113 17
+21ae0 2 1512 82
+21ae2 2 113 17
+21ae4 e 1512 82
+21af2 4 113 17
+21af6 6 302 82
+21afc 10 113 17
+21b0c 6 256 82
+21b12 2 114 17
+21b14 2 1512 82
+21b16 2 114 17
+21b18 12 1512 82
+21b2a 4 114 17
+21b2e 6 302 82
+21b34 10 114 17
+21b44 6 256 82
+21b4a a 115 17
+21b54 e 1552 82
+21b62 4 115 17
+21b66 6 302 82
+21b6c 12 115 17
+21b7e 6 115 17
+21b84 8 115 17
+21b8c 6 85 79
+21b92 8 115 17
+21b9a 6 256 82
+21ba0 a 116 17
+21baa 10 118 17
+21bba 2 277 82
+21bbc 4 1139 87
+21bc0 2 118 17
+21bc2 18 118 17
+21bda a 118 17
+21be4 2 118 17
+21be6 a 118 17
+21bf0 6 118 17
+21bf6 8 118 17
+21bfe 6 85 79
+21c04 6 118 17
+21c0a 6 156 137
+21c10 6 256 82
+21c16 6 44 17
+21c1c 94 119 17
+FUNC 21cb0 3c4 0 LineReaderTest_TwoLines_Test::TestBody
+21cb0 a 121 17
+21cba 4 121 17
+21cbe 2 122 17
+21cc0 2 121 17
+21cc2 8 122 17
+21cca 2 121 17
+21ccc 4 122 17
+21cd0 4 82 52
+21cd4 4 1139 87
+21cd8 2 82 52
+21cda 2 277 82
+21cdc 4 82 52
+21ce0 2 277 82
+21ce2 a 1139 87
+21cec 2 123 17
+21cee 16 123 17
+21d04 12 123 17
+21d16 6 256 82
+21d1c 4 128 17
+21d20 4 49 16
+21d24 a 128 17
+21d2e a 49 16
+21d38 4 128 17
+21d3c 4 1139 87
+21d40 2 277 82
+21d42 2 128 17
+21d44 18 128 17
+21d5c 12 128 17
+21d6e 6 256 82
+21d74 4 129 17
+21d78 1c 1512 82
+21d94 4 129 17
+21d98 6 302 82
+21d9e 10 129 17
+21dae 6 256 82
+21db4 4 130 17
+21db8 1a 1512 82
+21dd2 4 130 17
+21dd6 6 302 82
+21ddc 10 130 17
+21dec 6 256 82
+21df2 a 1552 82
+21dfc 4 131 17
+21e00 2 1552 82
+21e02 6 131 17
+21e08 e 1552 82
+21e16 4 131 17
+21e1a 6 302 82
+21e20 10 131 17
+21e30 6 256 82
+21e36 a 132 17
+21e40 a 134 17
+21e4a 4 1139 87
+21e4e 2 277 82
+21e50 2 134 17
+21e52 18 134 17
+21e6a 14 134 17
+21e7e 6 134 17
+21e84 8 134 17
+21e8c 6 85 79
+21e92 6 134 17
+21e98 4 156 137
+21e9c 6 256 82
+21ea2 2 135 17
+21ea4 2 1512 82
+21ea6 2 135 17
+21ea8 e 1512 82
+21eb6 4 135 17
+21eba 6 302 82
+21ec0 10 135 17
+21ed0 6 256 82
+21ed6 2 136 17
+21ed8 2 1512 82
+21eda 2 136 17
+21edc 12 1512 82
+21eee 4 136 17
+21ef2 6 302 82
+21ef8 10 136 17
+21f08 6 256 82
+21f0e a 137 17
+21f18 e 1552 82
+21f26 4 137 17
+21f2a 6 302 82
+21f30 12 137 17
+21f42 6 137 17
+21f48 8 137 17
+21f50 6 85 79
+21f56 8 137 17
+21f5e 6 256 82
+21f64 a 138 17
+21f6e 10 140 17
+21f7e 2 277 82
+21f80 4 1139 87
+21f84 2 140 17
+21f86 18 140 17
+21f9e a 140 17
+21fa8 2 140 17
+21faa a 140 17
+21fb4 6 140 17
+21fba 8 140 17
+21fc2 6 85 79
+21fc8 6 140 17
+21fce 6 156 137
+21fd4 6 256 82
+21fda 6 44 17
+21fe0 94 141 17
+FUNC 22074 268 0 LineReaderTest_MaxLength_Test::TestBody
+22074 a 143 17
+2207e 4 143 17
+22082 4 145 17
+22086 2 143 17
+22088 8 145 17
+22090 4 143 17
+22094 4 145 17
+22098 e 66 52
+220a6 a 67 52
+220b0 c 68 52
+220bc 4 82 52
+220c0 4 1139 87
+220c4 2 82 52
+220c6 2 277 82
+220c8 2 82 52
+220ca 2 277 82
+220cc a 1139 87
+220d6 2 147 17
+220d8 16 147 17
+220ee 12 147 17
+22100 6 256 82
+22106 4 49 16
+2210a 4 152 17
+2210e 2 49 16
+22110 8 152 17
+22118 8 49 16
+22120 6 152 17
+22126 4 1139 87
+2212a 2 277 82
+2212c 2 152 17
+2212e 18 152 17
+22146 12 152 17
+22158 4 153 17
+2215c 6 256 82
+22162 6 1512 82
+22168 2 153 17
+2216a e 1512 82
+22178 4 153 17
+2217c 6 302 82
+22182 10 153 17
+22192 6 256 82
+22198 12 154 17
+221aa 2 277 82
+221ac 4 1139 87
+221b0 2 154 17
+221b2 18 154 17
+221ca 14 154 17
+221de 6 154 17
+221e4 8 154 17
+221ec 6 85 79
+221f2 6 154 17
+221f8 8 156 137
+22200 6 256 82
+22206 8 155 17
+2220e 2 1552 82
+22210 2 155 17
+22212 2 1552 82
+22214 4 155 17
+22218 e 1552 82
+22226 4 155 17
+2222a 6 302 82
+22230 12 155 17
+22242 6 155 17
+22248 8 155 17
+22250 6 85 79
+22256 6 155 17
+2225c 6 256 82
+22262 4 44 17
+22266 6 256 82
+2226c 6 44 17
+22272 6a 156 17
+FUNC 222dc 18 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::~LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test
+222dc 2 65 20
+222de 16 65 20
+FUNC 222f4 12 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::~LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test
+222f4 2 65 20
+222f6 6 65 20
+222fc 6 65 20
+22302 4 65 20
+FUNC 22308 18 0 LinuxCoreDumperTest_BuildProcPath_Test::~LinuxCoreDumperTest_BuildProcPath_Test
+22308 2 42 20
+2230a 16 42 20
+FUNC 22320 12 0 LinuxCoreDumperTest_BuildProcPath_Test::~LinuxCoreDumperTest_BuildProcPath_Test
+22320 2 42 20
+22322 6 42 20
+22328 6 42 20
+2232e 4 42 20
+FUNC 22334 20 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test>::CreateTest
+22334 2 486 85
+22336 8 486 85
+2233e 6 65 20
+22344 2 486 85
+22346 6 65 20
+2234c 8 486 85
+FUNC 22354 20 0 testing::internal::TestFactoryImpl<LinuxCoreDumperTest_BuildProcPath_Test>::CreateTest
+22354 2 486 85
+22356 8 486 85
+2235e 6 42 20
+22364 2 486 85
+22366 6 42 20
+2236c 8 486 85
+FUNC 22374 24 0 google_breakpad::LinuxCoreDumper::~LinuxCoreDumper
+22374 4 43 19
+22378 c 43 19
+22384 4 43 19
+22388 6 43 19
+2238e a 43 19
+FUNC 22398 3b8 0 LinuxCoreDumperTest_BuildProcPath_Test::TestBody
+22398 a 42 20
+223a2 6 42 20
+223a8 4 44 20
+223ac 2 42 20
+223ae 4 43 20
+223b2 2 44 20
+223b4 2 43 20
+223b6 22 44 20
+223d8 4 45 20
+223dc 2 47 20
+223de 4 45 20
+223e2 2 45 20
+223e4 a 45 20
+223ee e 47 20
+223fc 12 50 20
+2240e e 51 20
+2241c 2 277 82
+2241e 2 1139 87
+22420 4 277 82
+22424 2 51 20
+22426 16 51 20
+2243c c 51 20
+22448 4 51 20
+2244c a 51 20
+22456 6 51 20
+2245c 8 51 20
+22464 6 85 79
+2246a 6 51 20
+22470 6 156 137
+22476 a 256 82
+22480 16 52 20
+22496 2 1144 87
+22498 6 298 82
+2249e 4 298 82
+224a2 a 52 20
+224ac 4 52 20
+224b0 a 52 20
+224ba 6 52 20
+224c0 8 52 20
+224c8 6 85 79
+224ce 6 52 20
+224d4 6 256 82
+224da e 54 20
+224e8 2 1139 87
+224ea 6 54 20
+224f0 2 277 82
+224f2 2 1139 87
+224f4 2 54 20
+224f6 16 54 20
+2250c c 54 20
+22518 4 54 20
+2251c a 54 20
+22526 6 54 20
+2252c 8 54 20
+22534 6 85 79
+2253a 6 54 20
+22540 6 156 137
+22546 6 256 82
+2254c e 55 20
+2255a 2 1139 87
+2255c 6 55 20
+22562 2 277 82
+22564 2 1139 87
+22566 2 55 20
+22568 16 55 20
+2257e c 55 20
+2258a 4 55 20
+2258e a 55 20
+22598 6 55 20
+2259e 8 55 20
+225a6 6 85 79
+225ac 6 55 20
+225b2 6 156 137
+225b8 6 256 82
+225be c 56 20
+225ca 2 1139 87
+225cc 6 56 20
+225d2 2 277 82
+225d4 2 1139 87
+225d6 2 56 20
+225d8 16 56 20
+225ee c 56 20
+225fa 4 56 20
+225fe a 56 20
+22608 6 56 20
+2260e 8 56 20
+22616 6 85 79
+2261c 6 56 20
+22622 6 156 137
+22628 6 256 82
+2262e 6 59 20
+22634 2 61 20
+22636 4 59 20
+2263a e 60 20
+22648 8 62 20
+22650 4 61 20
+22654 a 62 20
+2265e 2 277 82
+22660 2 1139 87
+22662 2 62 20
+22664 18 62 20
+2267c a 62 20
+22686 2 62 20
+22688 a 62 20
+22692 6 62 20
+22698 8 62 20
+226a0 6 85 79
+226a6 6 62 20
+226ac 6 156 137
+226b2 6 256 82
+226b8 6 62 20
+226be 92 63 20
+FUNC 22750 70c 0 LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test::TestBody
+22750 14 65 20
+22764 2 65 20
+22766 4 66 20
+2276a 2 65 20
+2276c 4 66 20
+22770 a 67 20
+2277a 12 69 20
+2278c 2 70 20
+2278e 2 75 20
+22790 6 73 20
+22796 4 75 20
+2279a 4 77 20
+2279e 4 75 20
+227a2 4 73 20
+227a6 c 77 20
+227b2 2 1139 87
+227b4 4 277 82
+227b8 4 1139 87
+227bc 2 77 20
+227be 20 77 20
+227de a 77 20
+227e8 2 77 20
+227ea c 77 20
+227f6 6 77 20
+227fc 8 77 20
+22804 6 85 79
+2280a 6 77 20
+22810 6 156 137
+22816 e 256 82
+22824 c 80 20
+22830 c 81 20
+2283c a 85 20
+22846 4 85 20
+2284a 14 87 20
+2285e 12 92 20
+22870 6 94 20
+22876 4 277 82
+2287a 2 1139 87
+2287c 2 94 20
+2287e 1c 94 20
+2289a c 94 20
+228a6 4 94 20
+228aa a 94 20
+228b4 6 94 20
+228ba 8 94 20
+228c2 6 85 79
+228c8 6 94 20
+228ce 6 156 137
+228d4 6 256 82
+228da 6 96 20
+228e0 2 1139 87
+228e2 2 256 82
+228e4 2 277 82
+228e6 2 1139 87
+228e8 2 96 20
+228ea 1e 96 20
+22908 c 96 20
+22914 4 96 20
+22918 a 96 20
+22922 6 96 20
+22928 8 96 20
+22930 6 85 79
+22936 6 96 20
+2293c 6 156 137
+22942 6 256 82
+22948 6 99 20
+2294e 2 1139 87
+22950 2 256 82
+22952 2 277 82
+22954 2 1139 87
+22956 2 99 20
+22958 1e 99 20
+22976 c 99 20
+22982 4 99 20
+22986 a 99 20
+22990 6 99 20
+22996 8 99 20
+2299e 6 85 79
+229a4 6 99 20
+229aa 6 156 137
+229b0 6 256 82
+229b6 6 100 20
+229bc 2 1139 87
+229be 2 256 82
+229c0 2 277 82
+229c2 2 1139 87
+229c4 2 100 20
+229c6 1e 100 20
+229e4 c 100 20
+229f0 4 100 20
+229f4 a 100 20
+229fe 6 100 20
+22a04 8 100 20
+22a0c 6 85 79
+22a12 6 100 20
+22a18 6 156 137
+22a1e 6 256 82
+22a24 a 104 20
+22a2e 2 256 82
+22a30 2 104 20
+22a32 2 1481 82
+22a34 8 1482 82
+22a3c 10 1487 82
+22a4c 6 104 20
+22a52 2 1144 87
+22a54 6 298 82
+22a5a 4 298 82
+22a5e a 104 20
+22a68 4 104 20
+22a6c a 104 20
+22a76 6 104 20
+22a7c 8 104 20
+22a84 6 85 79
+22a8a 6 104 20
+22a90 8 256 82
+22a98 4 1481 82
+22a9c 4 256 82
+22aa0 2 1481 82
+22aa2 2 105 20
+22aa4 2 1481 82
+22aa6 8 1482 82
+22aae 12 1487 82
+22ac0 6 105 20
+22ac6 4 1144 87
+22aca 6 298 82
+22ad0 4 298 82
+22ad4 14 105 20
+22ae8 6 105 20
+22aee 8 105 20
+22af6 6 85 79
+22afc 6 105 20
+22b02 6 256 82
+22b08 c 106 20
+22b14 2 1481 82
+22b16 4 106 20
+22b1a 2 1481 82
+22b1c 8 1482 82
+22b24 10 1487 82
+22b34 6 106 20
+22b3a 2 1144 87
+22b3c 6 298 82
+22b42 4 298 82
+22b46 14 106 20
+22b5a 6 106 20
+22b60 8 107 20
+22b68 6 85 79
+22b6e 6 106 20
+22b74 a 256 82
+22b7e 6 192 144
+22b84 4 1481 82
+22b88 2 192 144
+22b8a 2 1481 82
+22b8c 2 109 20
+22b8e 2 1481 82
+22b90 8 1482 82
+22b98 12 1487 82
+22baa 6 109 20
+22bb0 2 1144 87
+22bb2 6 298 82
+22bb8 4 298 82
+22bbc 12 109 20
+22bce 6 109 20
+22bd4 8 109 20
+22bdc 6 85 79
+22be2 6 109 20
+22be8 2 256 82
+22bea 4 110 20
+22bee 4 256 82
+22bf2 2 112 20
+22bf4 4 115 20
+22bf8 6 112 20
+22bfe 4 115 20
+22c02 6 112 20
+22c08 2 115 20
+22c0a 4 112 20
+22c0e 2 112 20
+22c10 2 115 20
+22c12 4 112 20
+22c16 a 112 20
+22c20 2 1139 87
+22c22 4 277 82
+22c26 2 1139 87
+22c28 2 112 20
+22c2a 12 112 20
+22c3c 14 112 20
+22c50 6 112 20
+22c56 8 112 20
+22c5e 6 85 79
+22c64 6 112 20
+22c6a 6 156 137
+22c70 6 256 82
+22c76 c 115 20
+22c82 2 1139 87
+22c84 2 256 82
+22c86 2 277 82
+22c88 2 1139 87
+22c8a 2 115 20
+22c8c 16 115 20
+22ca2 16 115 20
+22cb8 6 115 20
+22cbe 8 115 20
+22cc6 6 85 79
+22ccc 6 115 20
+22cd2 6 156 137
+22cd8 a 256 82
+22ce2 4 116 20
+22ce6 2 1481 82
+22ce8 2 256 82
+22cea 2 1481 82
+22cec 2 116 20
+22cee 2 1481 82
+22cf0 8 1482 82
+22cf8 14 1487 82
+22d0c 4 116 20
+22d10 2 1144 87
+22d12 6 298 82
+22d18 4 298 82
+22d1c 12 116 20
+22d2e 6 116 20
+22d34 8 116 20
+22d3c 6 85 79
+22d42 6 116 20
+22d48 2 256 82
+22d4a 4 110 20
+22d4e 4 256 82
+22d52 8 110 20
+22d5a 6 92 20
+22d60 c 156 137
+22d6c 6 70 20
+22d72 ea 118 20
+FUNC 22e5c 12 0 google_breakpad::LinuxCoreDumper::~LinuxCoreDumper
+22e5c 2 43 19
+22e5e 6 43 19
+22e64 6 43 19
+22e6a 4 43 19
+FUNC 22e6e c 0 LinuxPtraceDumperChildTest::SetUp
+22e6e 2 74 25
+22e70 2 74 25
+22e72 8 75 25
+FUNC 22e7c 18 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::~LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test
+22e7c 2 364 25
+22e7e 16 364 25
+FUNC 22e94 12 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::~LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test
+22e94 2 364 25
+22e96 6 364 25
+22e9c 6 364 25
+22ea2 4 364 25
+FUNC 22ea8 18 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::~LinuxPtraceDumperChildTest_BuildProcPath_Test
+FUNC 22ea8 18 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::~LinuxPtraceDumperChildTest_FileIDsMatch_Test
+FUNC 22ea8 18 0 LinuxPtraceDumperChildTest_FindMappings_Test::~LinuxPtraceDumperChildTest_FindMappings_Test
+22ea8 2 125 25
+22eaa 2 125 25
+22eac c 72 25
+22eb8 8 134 25
+FUNC 22ea8 18 0 LinuxPtraceDumperChildTest_Setup_Test::~LinuxPtraceDumperChildTest_Setup_Test
+FUNC 22ea8 18 0 LinuxPtraceDumperChildTest_ThreadList_Test::~LinuxPtraceDumperChildTest_ThreadList_Test
+FUNC 22ec0 12 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::~LinuxPtraceDumperChildTest_BuildProcPath_Test
+FUNC 22ec0 12 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::~LinuxPtraceDumperChildTest_FileIDsMatch_Test
+22ec0 2 246 25
+22ec2 6 125 25
+22ec8 6 125 25
+22ece 4 246 25
+FUNC 22ec0 12 0 LinuxPtraceDumperChildTest_FindMappings_Test::~LinuxPtraceDumperChildTest_FindMappings_Test
+FUNC 22ec0 12 0 LinuxPtraceDumperChildTest_Setup_Test::~LinuxPtraceDumperChildTest_Setup_Test
+FUNC 22ec0 12 0 LinuxPtraceDumperChildTest_ThreadList_Test::~LinuxPtraceDumperChildTest_ThreadList_Test
+FUNC 22ed4 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FileIDsMatch_Test>::CreateTest
+22ed4 2 486 85
+22ed6 8 486 85
+22ede 4 72 25
+22ee2 2 325 25
+22ee4 2 486 85
+22ee6 6 325 25
+22eec 8 486 85
+FUNC 22ef4 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_ThreadList_Test>::CreateTest
+22ef4 2 486 85
+22ef6 8 486 85
+22efe 4 72 25
+22f02 2 134 25
+22f04 2 486 85
+22f06 6 134 25
+22f0c 8 486 85
+FUNC 22f14 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_FindMappings_Test>::CreateTest
+22f14 2 486 85
+22f16 8 486 85
+22f1e 4 72 25
+22f22 2 125 25
+22f24 2 486 85
+22f26 6 125 25
+22f2c 8 486 85
+FUNC 22f34 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_BuildProcPath_Test>::CreateTest
+22f34 2 486 85
+22f36 8 486 85
+22f3e 4 72 25
+22f42 2 246 25
+22f44 2 486 85
+22f46 6 246 25
+22f4c 8 486 85
+FUNC 22f54 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperChildTest_Setup_Test>::CreateTest
+22f54 2 486 85
+22f56 8 486 85
+22f5e 4 72 25
+22f62 2 121 25
+22f64 2 486 85
+22f66 6 121 25
+22f6c 8 486 85
+FUNC 22f74 20 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test>::CreateTest
+22f74 2 486 85
+22f76 8 486 85
+22f7e 6 364 25
+22f84 2 486 85
+22f86 6 364 25
+22f8c 8 486 85
+FUNC 22f94 144 0 LinuxPtraceDumperChildTest::TestBody
+22f94 e 85 25
+22fa2 2 85 25
+22fa4 2 86 25
+22fa6 2 85 25
+22fa8 6 86 25
+22fae 6 88 25
+22fb4 4 89 25
+22fb8 2 90 25
+22fba 4 90 25
+22fbe a 90 25
+22fc8 2 90 25
+22fca 6 90 25
+22fd0 6 93 25
+22fd6 4 1139 87
+22fda 4 277 82
+22fde c 1139 87
+22fea 2 93 25
+22fec 18 93 25
+23004 4 93 25
+23008 2 93 25
+2300a e 93 25
+23018 6 93 25
+2301e 8 93 25
+23026 6 85 79
+2302c 6 93 25
+23032 6 156 137
+23038 e 256 82
+23046 a 95 25
+23050 8 96 25
+23058 14 97 25
+2306c 4 98 25
+23070 16 99 25
+23086 6 99 25
+2308c 8 99 25
+23094 6 85 79
+2309a 6 99 25
+230a0 38 101 25
+FUNC 230d8 44 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::~LinuxPtraceDumperMappingsTest_MergedMappings_Test
+230d8 2 226 25
+230da 2 176 25
+230dc 2 156 25
+230de 4 176 25
+230e2 2 226 25
+230e4 2 176 25
+230e6 2 156 25
+230e8 6 157 25
+230ee 6 158 25
+230f4 4 159 25
+230f8 8 156 137
+23100 e 72 25
+2310e e 226 25
+FUNC 2311c 12 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::~LinuxPtraceDumperMappingsTest_MergedMappings_Test
+2311c 2 226 25
+2311e 6 226 25
+23124 6 226 25
+2312a 4 226 25
+FUNC 23130 48 0 testing::internal::TestFactoryImpl<LinuxPtraceDumperMappingsTest_MergedMappings_Test>::CreateTest
+23130 2 486 85
+23132 8 486 85
+2313a 4 72 25
+2313e 4 176 25
+23142 2 124 137
+23144 8 176 25
+2314c 2 120 137
+2314e 2 481 106
+23150 4 124 137
+23154 4 101 108
+23158 2 486 85
+2315a 2 101 108
+2315c 8 154 25
+23164 2 226 25
+23166 2 154 25
+23168 6 226 25
+2316e a 486 85
+FUNC 23178 2b8 0 LinuxPtraceDumperMappingsTest::SetUp
+23178 8 185 25
+23180 4 185 25
+23184 2 186 25
+23186 2 185 25
+23188 4 186 25
+2318c 2 185 25
+2318e 2 186 25
+23190 2 185 25
+23192 4 186 25
+23196 e 348 136
+231a4 2 400 136
+231a6 4 243 135
+231aa 2 400 136
+231ac 4 244 135
+231b0 2 168 145
+231b2 8 168 145
+231ba 6 246 135
+231c0 4 803 136
+231c4 2 168 145
+231c6 2 806 136
+231c8 2 168 145
+231ca 8 806 136
+231d2 2 168 145
+231d4 6 168 145
+231da 4 400 136
+231de 2 250 135
+231e0 2 400 136
+231e2 8 250 135
+231ea 6 156 137
+231f0 c 187 25
+231fc 14 188 25
+23210 6 188 25
+23216 c 333 127
+23222 8 188 25
+2322a 6 85 79
+23230 6 188 25
+23236 2 188 25
+23238 6 194 25
+2323e 2 196 25
+23240 4 194 25
+23244 6 196 25
+2324a c 197 25
+23256 2 196 25
+23258 1a 197 25
+23272 6 302 82
+23278 12 197 25
+2328a 6 197 25
+23290 c 333 127
+2329c a 131 79
+232a6 c 333 127
+232b2 4 198 25
+232b6 2 198 25
+232b8 4 198 25
+232bc 4 150 79
+232c0 2 333 127
+232c2 2 150 79
+232c4 8 333 127
+232cc 8 198 25
+232d4 6 85 79
+232da 8 197 25
+232e2 6 256 82
+232e8 8 205 25
+232f0 4 195 25
+232f4 10 205 25
+23304 e 277 82
+23312 4 1139 87
+23316 2 206 25
+23318 16 206 25
+2332e 12 206 25
+23340 6 256 82
+23346 2 209 25
+23348 2 220 25
+2334a 2 162 25
+2334c 4 163 25
+23350 4 164 25
+23354 10 220 25
+23364 6 277 82
+2336a 4 1139 87
+2336e 4 277 82
+23372 2 221 25
+23374 16 221 25
+2338a 14 221 25
+2339e 6 221 25
+233a4 8 221 25
+233ac 6 85 79
+233b2 6 221 25
+233b8 6 156 137
+233be e 256 82
+233cc 6 223 25
+233d2 5e 224 25
+FUNC 23430 1c 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper
+23430 4 42 24
+23434 18 42 24
+FUNC 2344c 1a 0 LinuxPtraceDumperChildTest_Setup_Test::RealTestBody
+2344c 4 121 25
+23450 6 122 25
+23456 6 122 25
+2345c 6 122 25
+23462 4 123 25
+FUNC 23468 1d0 0 LinuxPtraceDumperChildTest_FindMappings_Test::RealTestBody
+23468 8 125 25
+23470 6 125 25
+23476 2 126 25
+23478 2 125 25
+2347a 6 126 25
+23480 6 126 25
+23486 6 127 25
+2348c 2 1139 87
+2348e 4 277 82
+23492 8 1139 87
+2349a 2 127 25
+2349c 1a 127 25
+234b6 12 127 25
+234c8 6 256 82
+234ce c 129 25
+234da 6 277 82
+234e0 2 1139 87
+234e2 4 277 82
+234e6 2 129 25
+234e8 1a 129 25
+23502 12 129 25
+23514 6 256 82
+2351a c 130 25
+23526 6 277 82
+2352c 2 1139 87
+2352e 4 277 82
+23532 2 130 25
+23534 1a 130 25
+2354e 12 130 25
+23560 6 256 82
+23566 e 131 25
+23574 4 277 82
+23578 2 1139 87
+2357a 2 131 25
+2357c 1a 131 25
+23596 10 131 25
+235a6 4 131 25
+235aa 4 131 25
+235ae 6 131 25
+235b4 8 131 25
+235bc 6 85 79
+235c2 6 131 25
+235c8 6 156 137
+235ce c 256 82
+235da 5e 132 25
+FUNC 23638 400 0 LinuxPtraceDumperChildTest_BuildProcPath_Test::RealTestBody
+23638 a 246 25
+23642 6 246 25
+23648 2 250 25
+2364a 2 246 25
+2364c 6 247 25
+23652 a 248 25
+2365c 12 250 25
+2366e 12 253 25
+23680 e 254 25
+2368e 6 277 82
+23694 4 1139 87
+23698 2 254 25
+2369a 16 254 25
+236b0 a 254 25
+236ba 4 254 25
+236be a 254 25
+236c8 6 254 25
+236ce 8 254 25
+236d6 6 85 79
+236dc 6 254 25
+236e2 6 156 137
+236e8 8 256 82
+236f0 18 255 25
+23708 6 302 82
+2370e c 255 25
+2371a 4 255 25
+2371e 8 255 25
+23726 6 255 25
+2372c 8 255 25
+23734 6 85 79
+2373a 6 255 25
+23740 6 256 82
+23746 e 257 25
+23754 2 1139 87
+23756 6 257 25
+2375c 2 277 82
+2375e 2 1139 87
+23760 2 257 25
+23762 16 257 25
+23778 c 257 25
+23784 4 257 25
+23788 c 257 25
+23794 6 257 25
+2379a 8 257 25
+237a2 6 85 79
+237a8 6 257 25
+237ae 6 156 137
+237b4 6 256 82
+237ba e 258 25
+237c8 2 1139 87
+237ca 6 258 25
+237d0 2 277 82
+237d2 2 1139 87
+237d4 2 258 25
+237d6 16 258 25
+237ec c 258 25
+237f8 4 258 25
+237fc c 258 25
+23808 6 258 25
+2380e 8 258 25
+23816 6 85 79
+2381c 6 258 25
+23822 6 156 137
+23828 6 256 82
+2382e e 259 25
+2383c 2 1139 87
+2383e 6 259 25
+23844 2 277 82
+23846 2 1139 87
+23848 2 259 25
+2384a 16 259 25
+23860 c 259 25
+2386c 4 259 25
+23870 c 259 25
+2387c 6 259 25
+23882 8 259 25
+2388a 6 85 79
+23890 6 259 25
+23896 6 156 137
+2389c 6 256 82
+238a2 c 260 25
+238ae 2 1139 87
+238b0 6 260 25
+238b6 2 277 82
+238b8 2 1139 87
+238ba 2 260 25
+238bc 16 260 25
+238d2 c 260 25
+238de 4 260 25
+238e2 c 260 25
+238ee 6 260 25
+238f4 8 260 25
+238fc 6 85 79
+23902 6 260 25
+23908 6 156 137
+2390e 4 265 25
+23912 6 256 82
+23918 a 264 25
+23922 8 266 25
+2392a 4 265 25
+2392e a 266 25
+23938 2 277 82
+2393a 4 1139 87
+2393e 2 266 25
+23940 18 266 25
+23958 a 266 25
+23962 4 266 25
+23966 c 266 25
+23972 6 266 25
+23978 8 266 25
+23980 6 85 79
+23986 6 266 25
+2398c 6 156 137
+23992 6 256 82
+23998 6 266 25
+2399e 9a 267 25
+FUNC 23a38 46c 0 LinuxPtraceDumperChildTest_FileIDsMatch_Test::RealTestBody
+23a38 12 325 25
+23a4a 8 325 25
+23a52 2 60 49
+23a54 2 325 25
+23a56 2 60 49
+23a58 2 277 82
+23a5a a 60 49
+23a64 2 277 82
+23a66 4 60 49
+23a6a 2 1139 87
+23a6c 6 277 82
+23a72 8 1139 87
+23a7a 2 330 25
+23a7c 18 330 25
+23a94 18 330 25
+23aac 6 330 25
+23ab2 8 330 25
+23aba 6 85 79
+23ac0 6 330 25
+23ac6 6 156 137
+23acc e 256 82
+23ada 6 332 25
+23ae0 6 332 25
+23ae6 a 333 25
+23af0 4 277 82
+23af4 4 1139 87
+23af8 2 333 25
+23afa 18 333 25
+23b12 c 333 25
+23b1e 2 333 25
+23b20 c 333 25
+23b2c 6 333 25
+23b32 8 333 25
+23b3a 6 85 79
+23b40 6 333 25
+23b46 6 156 137
+23b4c a 256 82
+23b56 8 192 144
+23b5e 6 75 54
+23b64 4 76 54
+23b68 a 78 54
+23b72 a 78 54
+23b7c 2 79 54
+23b7e 2 80 54
+23b80 2 81 54
+23b82 6 82 54
+23b88 4 83 54
+23b8c 4 80 54
+23b90 4 86 54
+23b94 10 90 54
+23ba4 2 3454 97
+23ba6 4 122 54
+23baa 1c 3454 97
+23bc6 4 3454 97
+23bca 6 3454 97
+23bd0 4 124 54
+23bd4 4 134 54
+23bd8 4 135 54
+23bdc 4 96 54
+23be0 4 136 54
+23be4 12 96 54
+23bf6 4 97 54
+23bfa 2 98 54
+23bfc 8 98 54
+23c04 4 98 54
+23c08 4 100 54
+23c0c a 120 142
+23c16 4 337 25
+23c1a 4 192 144
+23c1e 4 337 25
+23c22 e 339 25
+23c30 6 337 25
+23c36 4 335 25
+23c3a 2 340 25
+23c3c 4 1139 87
+23c40 6 277 82
+23c46 8 1139 87
+23c4e 2 344 25
+23c50 16 344 25
+23c66 c 344 25
+23c72 2 344 25
+23c74 c 344 25
+23c80 6 344 25
+23c86 8 344 25
+23c8e 6 85 79
+23c94 6 344 25
+23c9a 6 156 137
+23ca0 e 256 82
+23cae 14 348 25
+23cc2 4 277 82
+23cc6 4 1139 87
+23cca 2 348 25
+23ccc 16 348 25
+23ce2 c 348 25
+23cee 4 348 25
+23cf2 c 348 25
+23cfe 6 348 25
+23d04 8 349 25
+23d0c 6 85 79
+23d12 6 348 25
+23d18 6 156 137
+23d1e 4 350 25
+23d22 4 256 82
+23d26 2 350 25
+23d28 4 256 82
+23d2c 4 351 25
+23d30 8 350 25
+23d38 8 351 25
+23d40 2 1139 87
+23d42 4 277 82
+23d46 4 1139 87
+23d4a 2 351 25
+23d4c 16 351 25
+23d62 c 351 25
+23d6e 4 351 25
+23d72 c 351 25
+23d7e 6 351 25
+23d84 8 351 25
+23d8c 6 85 79
+23d92 6 351 25
+23d98 6 156 137
+23d9e 2 355 25
+23da0 8 256 82
+23da8 a 355 25
+23db2 a 357 25
+23dbc 18 358 25
+23dd4 6 302 82
+23dda e 358 25
+23de8 4 358 25
+23dec 8 358 25
+23df4 6 358 25
+23dfa 8 358 25
+23e02 6 85 79
+23e08 6 358 25
+23e0e 8 256 82
+23e16 c 156 137
+23e22 82 359 25
+FUNC 23ea4 2b0 0 LinuxPtraceDumperChildTest_ThreadList_Test::RealTestBody
+23ea4 8 134 25
+23eac 6 134 25
+23eb2 4 135 25
+23eb6 2 134 25
+23eb8 6 135 25
+23ebe 6 135 25
+23ec4 6 136 25
+23eca 4 1139 87
+23ece 4 277 82
+23ed2 8 1139 87
+23eda 2 136 25
+23edc 1a 136 25
+23ef6 12 136 25
+23f08 6 256 82
+23f0e 6 192 144
+23f14 2 138 25
+23f16 2 192 144
+23f18 4 138 25
+23f1c 2 1621 82
+23f1e a 1621 82
+23f28 8 1583 82
+23f30 c 1382 82
+23f3c 4 1583 82
+23f40 a 1583 82
+23f4a 6 1583 82
+23f50 8 1583 82
+23f58 6 1583 82
+23f5e 8 1583 82
+23f66 6 1583 82
+23f6c a 1584 82
+23f76 8 1382 82
+23f7e a 1584 82
+23f88 6 306 82
+23f8e c 333 127
+23f9a 8 306 82
+23fa2 4 1382 82
+23fa6 6 85 79
+23fac 8 1382 82
+23fb4 a 1585 82
+23fbe 6 1585 82
+23fc4 c 156 137
+23fd0 6 256 82
+23fd6 8 138 25
+23fde 6 302 82
+23fe4 12 138 25
+23ff6 6 138 25
+23ffc 8 138 25
+24004 6 85 79
+2400a 6 138 25
+24010 6 256 82
+24016 2 139 25
+24018 4 256 82
+2401c 2 140 25
+2401e 2 1139 87
+24020 6 192 144
+24026 6 140 25
+2402c 6 141 25
+24032 4 141 25
+24036 6 141 25
+2403c 4 142 25
+24040 4 277 82
+24044 4 1139 87
+24048 2 142 25
+2404a 1a 142 25
+24064 12 142 25
+24076 6 256 82
+2407c 2 143 25
+2407e 6 140 25
+24084 2 1139 87
+24086 4 277 82
+2408a 2 1139 87
+2408c 2 146 25
+2408e 1a 146 25
+240a8 14 146 25
+240bc 6 146 25
+240c2 8 146 25
+240ca 6 85 79
+240d0 6 146 25
+240d6 6 156 137
+240dc c 256 82
+240e8 6c 147 25
+FUNC 24154 2a8 0 LinuxPtraceDumperMappingsTest_MergedMappings_Test::RealTestBody
+24154 8 226 25
+2415c a 226 25
+24166 4 228 25
+2416a 4 228 25
+2416e 2 228 25
+24170 6 228 25
+24176 6 229 25
+2417c 4 1139 87
+24180 6 277 82
+24186 4 1139 87
+2418a 2 229 25
+2418c 18 229 25
+241a4 8 229 25
+241ac 2 229 25
+241ae c 229 25
+241ba 6 229 25
+241c0 8 229 25
+241c8 6 85 79
+241ce 6 229 25
+241d4 8 156 137
+241dc 6 256 82
+241e2 2 1512 82
+241e4 2 230 25
+241e6 16 1512 82
+241fc c 1552 82
+24208 6 192 144
+2420e 8 231 25
+24216 4 232 25
+2421a c 233 25
+24226 6 233 25
+2422c 4 236 25
+24230 6 1512 82
+24236 2 236 25
+24238 e 1512 82
+24246 6 236 25
+2424c 6 302 82
+24252 14 236 25
+24266 6 236 25
+2426c 8 237 25
+24274 6 85 79
+2427a 6 236 25
+24280 6 256 82
+24286 e 238 25
+24294 e 1512 82
+242a2 6 238 25
+242a8 6 302 82
+242ae 14 238 25
+242c2 6 238 25
+242c8 8 238 25
+242d0 6 85 79
+242d6 6 238 25
+242dc 6 256 82
+242e2 c 239 25
+242ee e 1552 82
+242fc 6 239 25
+24302 6 302 82
+24308 12 239 25
+2431a 6 239 25
+24320 8 239 25
+24328 6 85 79
+2432e 6 239 25
+24334 6 256 82
+2433a 6 240 25
+24340 4 231 25
+24344 2 243 25
+24346 14 1512 82
+2435a 2 243 25
+2435c 4 1512 82
+24360 6 243 25
+24366 6 302 82
+2436c 12 243 25
+2437e 6 243 25
+24384 8 243 25
+2438c 6 85 79
+24392 6 243 25
+24398 6 256 82
+2439e 6 243 25
+243a4 58 244 25
+FUNC 243fc 8b4 0 LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test::TestBody
+243fc 8 364 25
+24404 4 367 25
+24408 8 364 25
+24410 4 364 25
+24414 c 367 25
+24420 2 364 25
+24422 4 367 25
+24426 e 370 25
+24434 8 370 25
+2443c 2 370 25
+2443e 2 370 25
+24440 4 370 25
+24444 e 370 25
+24452 c 370 25
+2445e 6 302 82
+24464 14 370 25
+24478 6 370 25
+2447e 8 370 25
+24486 6 85 79
+2448c 6 370 25
+24492 a 256 82
+2449c 4 372 25
+244a0 6 373 25
+244a6 2 375 25
+244a8 2 377 25
+244aa 4 375 25
+244ae 6 377 25
+244b4 8 378 25
+244bc 1a 379 25
+244d6 6 379 25
+244dc 2 131 79
+244de a 333 127
+244e8 e 385 25
+244f6 14 390 25
+2450a 6 392 25
+24510 a 392 25
+2451a 1a 393 25
+24534 6 393 25
+2453a 2 131 79
+2453c c 333 127
+24548 2 131 79
+2454a 8 131 79
+24552 2 131 79
+24554 c 333 127
+24560 4 393 25
+24564 2 393 25
+24566 4 393 25
+2456a 4 150 79
+2456e 2 333 127
+24570 2 150 79
+24572 a 333 127
+2457c 8 393 25
+24584 6 85 79
+2458a 6 393 25
+24590 8 156 137
+24598 a 396 25
+245a2 20 1512 82
+245c2 6 401 25
+245c8 8 402 25
+245d0 4 403 25
+245d4 12 405 25
+245e6 4 405 25
+245ea 8 405 25
+245f2 6 256 82
+245f8 2 1139 87
+245fa 8 407 25
+24602 4 1139 87
+24606 4 407 25
+2460a 4 277 82
+2460e 4 407 25
+24612 1e 407 25
+24630 16 407 25
+24646 6 407 25
+2464c 8 407 25
+24654 6 85 79
+2465a 6 407 25
+24660 6 156 137
+24666 8 256 82
+2466e 2 406 25
+24670 2 405 25
+24672 2 406 25
+24674 4 1512 82
+24678 2 406 25
+2467a a 1512 82
+24684 2 405 25
+24686 4 1512 82
+2468a e 406 25
+24698 6 302 82
+2469e 10 406 25
+246ae 6 256 82
+246b4 12 409 25
+246c6 e 1512 82
+246d4 8 409 25
+246dc 6 302 82
+246e2 12 409 25
+246f4 6 409 25
+246fa 8 409 25
+24702 6 85 79
+24708 8 409 25
+24710 6 256 82
+24716 a 399 25
+24720 c 412 25
+2472c 6 417 25
+24732 8 420 25
+2473a 6 421 25
+24740 2 1139 87
+24742 4 277 82
+24746 4 1139 87
+2474a 2 421 25
+2474c 18 421 25
+24764 14 421 25
+24778 6 421 25
+2477e 8 421 25
+24786 6 85 79
+2478c 6 421 25
+24792 6 156 137
+24798 a 256 82
+247a2 2 422 25
+247a4 4 192 144
+247a8 2 422 25
+247aa 4 192 144
+247ae 2 1512 82
+247b0 2 192 144
+247b2 2 1512 82
+247b4 2 192 144
+247b6 2 422 25
+247b8 e 1512 82
+247c6 6 422 25
+247cc 6 302 82
+247d2 12 422 25
+247e4 6 422 25
+247ea 8 422 25
+247f2 6 85 79
+247f8 6 422 25
+247fe 6 256 82
+24804 6 423 25
+2480a 2 1139 87
+2480c 2 256 82
+2480e 2 277 82
+24810 2 1139 87
+24812 2 423 25
+24814 18 423 25
+2482c 8 423 25
+24834 2 423 25
+24836 c 423 25
+24842 6 423 25
+24848 8 423 25
+24850 6 85 79
+24856 6 423 25
+2485c 6 156 137
+24862 4 426 25
+24866 6 256 82
+2486c 12 427 25
+2487e 6 427 25
+24884 c 430 25
+24890 6 192 144
+24896 2 427 25
+24898 2 192 144
+2489a a 426 25
+248a4 8 427 25
+248ac 2 1139 87
+248ae 2 277 82
+248b0 2 1139 87
+248b2 2 427 25
+248b4 14 427 25
+248c8 a 427 25
+248d2 4 427 25
+248d6 c 427 25
+248e2 6 427 25
+248e8 8 427 25
+248f0 6 85 79
+248f6 6 427 25
+248fc 6 156 137
+24902 a 256 82
+2490c c 430 25
+24918 2 1139 87
+2491a 2 277 82
+2491c 2 1139 87
+2491e 2 430 25
+24920 14 430 25
+24934 a 430 25
+2493e 4 430 25
+24942 c 430 25
+2494e 6 430 25
+24954 8 431 25
+2495c 6 85 79
+24962 6 430 25
+24968 6 156 137
+2496e 6 256 82
+24974 1a 452 25
+2498e 16 1512 82
+249a4 4 453 25
+249a8 6 302 82
+249ae c 453 25
+249ba 2 453 25
+249bc 8 453 25
+249c4 6 453 25
+249ca 8 453 25
+249d2 6 85 79
+249d8 6 453 25
+249de 6 256 82
+249e4 c8 426 25
+24aac 4 455 25
+24ab0 2 1139 87
+24ab2 2 277 82
+24ab4 4 1139 87
+24ab8 2 455 25
+24aba 18 455 25
+24ad2 8 455 25
+24ada 4 455 25
+24ade c 455 25
+24aea 6 455 25
+24af0 8 455 25
+24af8 6 85 79
+24afe 6 455 25
+24b04 6 156 137
+24b0a 8 256 82
+24b12 8 456 25
+24b1a 4 460 25
+24b1e 4 460 25
+24b22 2 460 25
+24b24 12 460 25
+24b36 4 460 25
+24b3a 8 460 25
+24b42 6 256 82
+24b48 4 461 25
+24b4c 2 1139 87
+24b4e e 461 25
+24b5c 2 1139 87
+24b5e 2 277 82
+24b60 4 461 25
+24b64 18 461 25
+24b7c 14 461 25
+24b90 6 461 25
+24b96 8 461 25
+24b9e 6 85 79
+24ba4 6 461 25
+24baa 6 156 137
+24bb0 10 256 82
+24bc0 8 462 25
+24bc8 4 460 25
+24bcc 8 460 25
+24bd4 10 460 25
+24be4 6 460 25
+24bea 6 302 82
+24bf0 10 460 25
+24c00 6 256 82
+24c06 8 462 25
+24c0e 4 1512 82
+24c12 8 462 25
+24c1a 10 1512 82
+24c2a 6 462 25
+24c30 6 302 82
+24c36 12 462 25
+24c48 6 462 25
+24c4e 8 462 25
+24c56 6 85 79
+24c5c 8 462 25
+24c64 4c 463 25
+FUNC 24cb0 12 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper
+24cb0 2 42 24
+24cb2 6 42 24
+24cb8 6 42 24
+24cbe 4 42 24
+FUNC 24cc4 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithPath_Test>::CreateTest
+24cc4 2 486 85
+24cc6 8 486 85
+24cce 6 67 27
+24cd4 2 486 85
+24cd6 6 67 27
+24cdc 8 486 85
+FUNC 24ce4 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_SetupWithFD_Test>::CreateTest
+24ce4 2 486 85
+24ce6 8 486 85
+24cee 6 96 27
+24cf4 2 486 85
+24cf6 6 96 27
+24cfc 8 486 85
+FUNC 24d04 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfo_Test>::CreateTest
+24d04 2 486 85
+24d06 8 486 85
+24d0e 6 128 27
+24d14 2 486 85
+24d16 6 128 27
+24d1c 8 486 85
+FUNC 24d24 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MappingInfoContained_Test>::CreateTest
+24d24 2 486 85
+24d26 8 486 85
+24d2e 6 236 27
+24d34 2 486 85
+24d36 6 236 27
+24d3c 8 486 85
+FUNC 24d44 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_DeletedBinary_Test>::CreateTest
+24d44 2 486 85
+24d46 8 486 85
+24d4e 6 338 27
+24d54 2 486 85
+24d56 6 338 27
+24d5c 8 486 85
+FUNC 24d64 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_AdditionalMemory_Test>::CreateTest
+24d64 2 486 85
+24d66 8 486 85
+24d6e 6 432 27
+24d74 2 486 85
+24d76 6 432 27
+24d7c 8 486 85
+FUNC 24d84 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_InvalidStackPointer_Test>::CreateTest
+24d84 2 486 85
+24d86 8 486 85
+24d8e 6 504 27
+24d94 2 486 85
+24d96 6 504 27
+24d9c 8 486 85
+FUNC 24da4 20 0 testing::internal::TestFactoryImpl<(anonymous namespace)::MinidumpWriterTest_MinidumpSizeLimit_Test>::CreateTest
+24da4 2 486 85
+24da6 8 486 85
+24dae 6 583 27
+24db4 2 486 85
+24db6 6 583 27
+24dbc 8 486 85
+FUNC 24dc4 18 0 MinidumpWriterTest_SetupWithPath_Test::~MinidumpWriterTest_SetupWithPath_Test
+24dc4 2 67 27
+24dc6 16 67 27
+FUNC 24ddc 12 0 MinidumpWriterTest_SetupWithPath_Test::~MinidumpWriterTest_SetupWithPath_Test
+24ddc 2 67 27
+24dde 6 67 27
+24de4 6 67 27
+24dea 4 67 27
+FUNC 24df0 18 0 MinidumpWriterTest_SetupWithFD_Test::~MinidumpWriterTest_SetupWithFD_Test
+24df0 2 96 27
+24df2 16 96 27
+FUNC 24e08 12 0 MinidumpWriterTest_SetupWithFD_Test::~MinidumpWriterTest_SetupWithFD_Test
+24e08 2 96 27
+24e0a 6 96 27
+24e10 6 96 27
+24e16 4 96 27
+FUNC 24e1c 18 0 MinidumpWriterTest_MappingInfo_Test::~MinidumpWriterTest_MappingInfo_Test
+24e1c 2 128 27
+24e1e 16 128 27
+FUNC 24e34 12 0 MinidumpWriterTest_MappingInfo_Test::~MinidumpWriterTest_MappingInfo_Test
+24e34 2 128 27
+24e36 6 128 27
+24e3c 6 128 27
+24e42 4 128 27
+FUNC 24e48 18 0 MinidumpWriterTest_MappingInfoContained_Test::~MinidumpWriterTest_MappingInfoContained_Test
+24e48 2 236 27
+24e4a 16 236 27
+FUNC 24e60 12 0 MinidumpWriterTest_MappingInfoContained_Test::~MinidumpWriterTest_MappingInfoContained_Test
+24e60 2 236 27
+24e62 6 236 27
+24e68 6 236 27
+24e6e 4 236 27
+FUNC 24e74 18 0 MinidumpWriterTest_DeletedBinary_Test::~MinidumpWriterTest_DeletedBinary_Test
+24e74 2 338 27
+24e76 16 338 27
+FUNC 24e8c 12 0 MinidumpWriterTest_DeletedBinary_Test::~MinidumpWriterTest_DeletedBinary_Test
+24e8c 2 338 27
+24e8e 6 338 27
+24e94 6 338 27
+24e9a 4 338 27
+FUNC 24ea0 18 0 MinidumpWriterTest_AdditionalMemory_Test::~MinidumpWriterTest_AdditionalMemory_Test
+24ea0 2 432 27
+24ea2 16 432 27
+FUNC 24eb8 12 0 MinidumpWriterTest_AdditionalMemory_Test::~MinidumpWriterTest_AdditionalMemory_Test
+24eb8 2 432 27
+24eba 6 432 27
+24ec0 6 432 27
+24ec6 4 432 27
+FUNC 24ecc 18 0 MinidumpWriterTest_InvalidStackPointer_Test::~MinidumpWriterTest_InvalidStackPointer_Test
+24ecc 2 504 27
+24ece 16 504 27
+FUNC 24ee4 12 0 MinidumpWriterTest_InvalidStackPointer_Test::~MinidumpWriterTest_InvalidStackPointer_Test
+24ee4 2 504 27
+24ee6 6 504 27
+24eec 6 504 27
+24ef2 4 504 27
+FUNC 24ef8 18 0 MinidumpWriterTest_MinidumpSizeLimit_Test::~MinidumpWriterTest_MinidumpSizeLimit_Test
+24ef8 2 583 27
+24efa 16 583 27
+FUNC 24f10 12 0 MinidumpWriterTest_MinidumpSizeLimit_Test::~MinidumpWriterTest_MinidumpSizeLimit_Test
+24f10 2 583 27
+24f12 6 583 27
+24f18 6 583 27
+24f1e 4 583 27
+FUNC 24f22 7a 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find
+24f22 6 438 135
+24f28 2 400 136
+24f2a 4 440 135
+24f2e 6 441 135
+24f34 2 446 135
+24f36 4 162 104
+24f3a 4 164 104
+24f3e 6 165 104
+24f44 6 168 104
+24f4a 4 166 104
+24f4e 6 171 104
+24f54 4 169 104
+24f58 6 174 104
+24f5e 6 172 104
+24f64 4 164 104
+24f68 10 178 104
+24f78 6 180 104
+24f7e 2 181 104
+24f80 6 183 104
+24f86 2 184 104
+24f88 a 186 104
+24f92 2 190 104
+24f94 4 447 135
+24f98 2 447 135
+24f9a 2 448 135
+FUNC 24f9c 30 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase
+24f9c 4 788 136
+24fa0 2 400 136
+24fa2 2 788 136
+24fa4 2 400 136
+24fa6 4 789 136
+24faa 8 604 135
+24fb2 a 791 136
+24fbc 8 791 136
+24fc4 8 793 136
+FUNC 24fcc 32 0 std::priv::_Impl_list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::push_back
+24fcc 4 306 106
+24fd0 2 509 121
+24fd2 2 509 121
+24fd4 6 306 106
+24fda 2 509 121
+24fdc 6 307 106
+24fe2 4 119 108
+24fe6 a 119 108
+24ff0 2 427 121
+24ff2 2 428 121
+24ff4 2 429 121
+24ff6 2 430 121
+24ff8 2 431 121
+24ffa 4 509 121
+FUNC 24ffe 1a 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+24ffe 2 529 136
+25000 2 529 136
+25002 2 229 145
+25004 2 529 136
+25006 4 229 145
+2500a 2 530 136
+2500c 2 530 136
+2500e 2 530 136
+25010 4 530 136
+25014 4 530 136
+FUNC 25018 22 0 std::priv::_List_base<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> >::_List_base
+FUNC 25018 22 0 std::priv::_List_base<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::_List_base
+25018 6 188 121
+2501e a 188 121
+25028 8 481 106
+25030 2 189 121
+25032 2 211 121
+25034 2 212 121
+25036 4 189 121
+FUNC 25018 22 0 std::priv::_List_base<std::pair<char, char const*>, std::allocator<std::pair<char, char const*> > >::_List_base
+25018 6 188 121
+2501e a 188 121
+25028 8 481 106
+25030 2 189 121
+25032 2 211 121
+25034 2 212 121
+25036 4 189 121
+FUNC 2503a 1a 0 std::priv::_List_base<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::clear
+2503a 2 66 120
+2503c 2 66 120
+2503e 2 67 120
+25040 4 68 120
+25044 2 74 120
+25046 8 135 124
+2504e 2 78 120
+25050 4 79 120
+FUNC 25054 1c 0 std::priv::_List_base<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> >::clear
+25054 2 66 120
+25056 2 66 120
+25058 2 67 120
+2505a 4 68 120
+2505e 2 74 120
+25060 a 161 106
+2506a 2 78 120
+2506c 4 79 120
+FUNC 25054 1c 0 std::priv::_List_base<std::pair<char, char const*>, std::allocator<std::pair<char, char const*> > >::clear
+25054 2 66 120
+25056 2 66 120
+25058 2 67 120
+2505a 4 68 120
+2505e 2 74 120
+25060 a 161 106
+2506a 2 78 120
+2506c 4 79 120
+FUNC 25070 c0 0 testing::internal::CmpHelperEQFailure<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+25070 8 1464 82
+25078 c 1464 82
+25084 2 884 80
+25086 6 1464 82
+2508c 4 884 80
+25090 6 1464 82
+25096 8 884 80
+2509e 2 708 80
+250a0 c 333 127
+250ac a 711 80
+250b6 8 469 80
+250be 6 156 137
+250c4 c 75 132
+250d0 6 886 80
+250d6 8 884 80
+250de 8 469 80
+250e6 8 75 132
+250ee 6 886 80
+250f4 12 1471 82
+25106 c 156 137
+25112 1e 1472 82
+FUNC 25130 4a 0 testing::internal::CmpHelperEQ<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+25130 4 1476 82
+25134 4 1481 82
+25138 2 1476 82
+2513a 2 229 145
+2513c 6 1476 82
+25142 4 229 145
+25146 2 1476 82
+25148 4 229 145
+2514c 4 400 136
+25150 4 315 139
+25154 6 226 145
+2515a 2 315 139
+2515c 10 1487 82
+2516c 6 1482 82
+25172 8 1488 82
+FUNC 2517c a0 0 testing::internal::CmpHelperEQFailure<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+2517c e 1464 82
+2518a 2 1464 82
+2518c 2 884 80
+2518e 6 1464 82
+25194 4 469 80
+25198 2 1464 82
+2519a 4 884 80
+2519e 4 1464 82
+251a2 2 75 132
+251a4 4 884 80
+251a8 4 469 80
+251ac 2 75 132
+251ae 4 469 80
+251b2 8 75 132
+251ba 6 886 80
+251c0 8 884 80
+251c8 4 469 80
+251cc 4 75 132
+251d0 4 469 80
+251d4 8 75 132
+251dc 6 886 80
+251e2 14 1471 82
+251f6 c 156 137
+25202 1a 1472 82
+FUNC 2521c d8 0 testing::PrintToString<long long int>
+2521c e 883 80
+2522a 2 883 80
+2522c 6 884 80
+25232 4 181 127
+25236 2 883 80
+25238 2 884 80
+2523a 2 883 80
+2523c 8 884 80
+25244 e 181 127
+25252 2 199 126
+25254 10 211 126
+25264 2 202 126
+25266 2 145 115
+25268 4 202 126
+2526c 2 145 115
+2526e 2 202 126
+25270 6 145 115
+25276 6 202 126
+2527c 2 202 126
+2527e 2 202 126
+25280 c 202 126
+2528c 18 57 128
+252a4 1a 78 125
+252be 6 202 126
+252c4 4 210 126
+252c8 6 212 126
+252ce 8 75 132
+252d6 6 886 80
+252dc 18 887 80
+FUNC 252f4 26c 0 MinidumpWriterTest_SetupWithPath_Test::TestBody
+252f4 c 67 27
+25300 a 67 27
+2530a 2 69 27
+2530c 4 67 27
+25310 e 69 27
+2531e 4 69 27
+25322 2 69 27
+25324 2 69 27
+25326 2 69 27
+25328 e 69 27
+25336 c 69 27
+25342 6 302 82
+25348 10 69 27
+25358 6 69 27
+2535e 8 69 27
+25366 6 85 79
+2536c 6 69 27
+25372 e 256 82
+25380 4 71 27
+25384 4 72 27
+25388 6 73 27
+2538e e 75 27
+2539c 4 75 27
+253a0 6 75 27
+253a6 6 76 27
+253ac 6 77 27
+253b2 4 82 27
+253b6 6 79 27
+253bc 4 84 27
+253c0 c 82 27
+253cc 6 84 27
+253d2 10 85 27
+253e2 c 88 27
+253ee 4 87 27
+253f2 4 88 27
+253f6 4 1139 87
+253fa 2 277 82
+253fc 8 1139 87
+25404 2 88 27
+25406 18 88 27
+2541e 12 88 27
+25430 6 88 27
+25436 8 88 27
+2543e 6 85 79
+25444 6 88 27
+2544a 8 156 137
+25452 6 256 82
+25458 6 90 27
+2545e 4 90 27
+25462 4 90 27
+25466 6 1552 82
+2546c 4 90 27
+25470 10 1552 82
+25480 4 90 27
+25484 6 302 82
+2548a e 90 27
+25498 6 256 82
+2549e 18 91 27
+254b6 6 302 82
+254bc 10 91 27
+254cc 6 91 27
+254d2 8 91 27
+254da 6 85 79
+254e0 6 91 27
+254e6 6 256 82
+254ec a 156 137
+254f6 6 256 82
+254fc 6 93 27
+25502 6 156 137
+25508 6 93 27
+2550e 52 94 27
+FUNC 25560 274 0 MinidumpWriterTest_SetupWithFD_Test::TestBody
+25560 c 96 27
+2556c a 96 27
+25576 2 98 27
+25578 4 96 27
+2557c e 98 27
+2558a 4 98 27
+2558e 2 98 27
+25590 2 98 27
+25592 2 98 27
+25594 e 98 27
+255a2 c 98 27
+255ae 6 302 82
+255b4 10 98 27
+255c4 6 98 27
+255ca 8 98 27
+255d2 6 85 79
+255d8 6 98 27
+255de e 256 82
+255ec 4 100 27
+255f0 4 101 27
+255f4 6 102 27
+255fa e 104 27
+25608 4 104 27
+2560c 6 104 27
+25612 6 105 27
+25618 6 106 27
+2561e 4 111 27
+25622 6 108 27
+25628 4 113 27
+2562c c 111 27
+25638 6 113 27
+2563e 10 114 27
+2564e e 115 27
+2565c 8 118 27
+25664 4 117 27
+25668 4 118 27
+2566c 4 1139 87
+25670 2 277 82
+25672 8 1139 87
+2567a 2 118 27
+2567c 18 118 27
+25694 12 118 27
+256a6 6 118 27
+256ac 8 118 27
+256b4 6 85 79
+256ba 6 118 27
+256c0 8 156 137
+256c8 6 256 82
+256ce 6 120 27
+256d4 4 120 27
+256d8 4 120 27
+256dc 6 1552 82
+256e2 4 120 27
+256e6 10 1552 82
+256f6 4 120 27
+256fa 6 302 82
+25700 e 120 27
+2570e 6 256 82
+25714 18 121 27
+2572c 6 302 82
+25732 10 121 27
+25742 6 121 27
+25748 8 121 27
+25750 6 85 79
+25756 6 121 27
+2575c 6 256 82
+25762 a 156 137
+2576c 6 256 82
+25772 6 123 27
+25778 6 156 137
+2577e 6 123 27
+25784 50 124 27
+FUNC 257d4 c70 0 MinidumpWriterTest_MappingInfo_Test::TestBody
+257d4 c 128 27
+257e0 a 128 27
+257ea 2 130 27
+257ec 4 128 27
+257f0 e 130 27
+257fe 8 130 27
+25806 2 130 27
+25808 2 130 27
+2580a 2 130 27
+2580c e 130 27
+2581a c 130 27
+25826 6 302 82
+2582c 12 130 27
+2583e 6 130 27
+25844 8 130 27
+2584c 6 85 79
+25852 6 130 27
+25858 10 256 82
+25868 6 134 27
+2586e 6 139 27
+25874 4 135 27
+25878 4 134 27
+2587c 4 135 27
+25880 4 139 27
+25884 4 134 27
+25888 16 139 27
+2589e a 143 27
+258a8 4 144 27
+258ac 4 143 27
+258b0 a 144 27
+258ba c 962 136
+258c6 4 147 27
+258ca 2 148 27
+258cc 2 147 27
+258ce a 148 27
+258d8 4 161 27
+258dc a 452 136
+258e6 16 161 27
+258fc 2 162 27
+258fe 8 277 82
+25906 4 1139 87
+2590a 2 277 82
+2590c 2 163 27
+2590e 1e 163 27
+2592c 14 163 27
+25940 6 163 27
+25946 8 163 27
+2594e 6 85 79
+25954 6 163 27
+2595a 6 156 137
+25960 a 256 82
+2596a 4 165 27
+2596e 4 166 27
+25972 6 167 27
+25978 e 169 27
+25986 4 169 27
+2598a 6 169 27
+25990 6 170 27
+25996 6 171 27
+2599c 4 177 27
+259a0 2 173 27
+259a2 4 176 27
+259a6 4 173 27
+259aa c 176 27
+259b6 a 177 27
+259c0 8 1552 82
+259c8 2 177 27
+259ca 2 1552 82
+259cc 4 177 27
+259d0 e 1552 82
+259de 6 177 27
+259e4 6 302 82
+259ea 12 177 27
+259fc 6 177 27
+25a02 8 177 27
+25a0a 6 85 79
+25a10 6 177 27
+25a16 10 256 82
+25a26 2 180 27
+25a28 2 178 27
+25a2a 2 180 27
+25a2c 4 178 27
+25a30 4 180 27
+25a34 12 181 27
+25a46 6 185 27
+25a4c 4 188 27
+25a50 2 185 27
+25a52 6 186 27
+25a58 4 187 27
+25a5c 2 186 27
+25a5e a 188 27
+25a68 8 353 121
+25a70 4 193 27
+25a74 2 185 27
+25a76 8 353 121
+25a7e c 193 27
+25a8a a 194 27
+25a94 8 229 146
+25a9c 1a 196 27
+25ab6 2 277 82
+25ab8 6 1139 87
+25abe 2 196 27
+25ac0 1c 196 27
+25adc 18 196 27
+25af4 6 196 27
+25afa 8 196 27
+25b02 6 85 79
+25b08 6 196 27
+25b0e 6 156 137
+25b14 e 256 82
+25b22 8 202 27
+25b2a a 203 27
+25b34 2 277 82
+25b36 4 1139 87
+25b3a 2 203 27
+25b3c 1c 203 27
+25b58 16 203 27
+25b6e 6 256 82
+25b74 6 205 27
+25b7a a 277 82
+25b84 4 1139 87
+25b88 2 206 27
+25b8a 1c 206 27
+25ba6 16 206 27
+25bbc 6 256 82
+25bc2 10 208 27
+25bd2 a 277 82
+25bdc 4 1139 87
+25be0 2 209 27
+25be2 1c 209 27
+25bfe 18 209 27
+25c16 6 209 27
+25c1c 8 209 27
+25c24 6 85 79
+25c2a 6 209 27
+25c30 6 156 137
+25c36 10 256 82
+25c46 a 211 27
+25c50 4 1512 82
+25c54 4 211 27
+25c58 12 1512 82
+25c6a 4 211 27
+25c6e 6 302 82
+25c74 14 211 27
+25c88 6 211 27
+25c8e 8 211 27
+25c96 6 85 79
+25c9c 6 211 27
+25ca2 6 256 82
+25ca8 a 212 27
+25cb2 4 1512 82
+25cb6 4 212 27
+25cba 4 1512 82
+25cbe 2 256 82
+25cc0 2 212 27
+25cc2 e 1512 82
+25cd0 4 212 27
+25cd4 6 302 82
+25cda 14 212 27
+25cee 6 212 27
+25cf4 8 212 27
+25cfc 6 85 79
+25d02 6 212 27
+25d08 8 256 82
+25d10 e 213 27
+25d1e 16 1512 82
+25d34 6 156 137
+25d3a 4 213 27
+25d3e 6 302 82
+25d44 e 213 27
+25d52 4 213 27
+25d56 8 213 27
+25d5e 6 213 27
+25d64 8 213 27
+25d6c 6 85 79
+25d72 6 213 27
+25d78 6 256 82
+25d7e c 214 27
+25d8a 16 1512 82
+25da0 6 156 137
+25da6 4 214 27
+25daa 6 302 82
+25db0 e 214 27
+25dbe 4 214 27
+25dc2 8 214 27
+25dca 6 214 27
+25dd0 8 214 27
+25dd8 6 85 79
+25dde 6 214 27
+25de4 6 256 82
+25dea a 218 27
+25df4 2 1139 87
+25df6 2 277 82
+25df8 2 1139 87
+25dfa 2 218 27
+25dfc 1c 218 27
+25e18 e 218 27
+25e26 4 218 27
+25e2a a 218 27
+25e34 6 218 27
+25e3a 8 218 27
+25e42 6 85 79
+25e48 6 218 27
+25e4e 6 156 137
+25e54 6 256 82
+25e5a a 219 27
+25e64 2 1139 87
+25e66 2 277 82
+25e68 2 1139 87
+25e6a 2 219 27
+25e6c 1c 219 27
+25e88 e 219 27
+25e96 4 219 27
+25e9a a 219 27
+25ea4 6 219 27
+25eaa 8 219 27
+25eb2 6 85 79
+25eb8 6 219 27
+25ebe 6 156 137
+25ec4 6 256 82
+25eca a 220 27
+25ed4 2 1139 87
+25ed6 2 277 82
+25ed8 2 1139 87
+25eda 2 220 27
+25edc 1c 220 27
+25ef8 e 220 27
+25f06 4 220 27
+25f0a a 220 27
+25f14 6 220 27
+25f1a 8 220 27
+25f22 6 85 79
+25f28 6 220 27
+25f2e 6 156 137
+25f34 6 256 82
+25f3a a 221 27
+25f44 2 1139 87
+25f46 2 277 82
+25f48 2 1139 87
+25f4a 2 221 27
+25f4c 1c 221 27
+25f68 e 221 27
+25f76 4 221 27
+25f7a a 221 27
+25f84 6 221 27
+25f8a 8 221 27
+25f92 6 85 79
+25f98 6 221 27
+25f9e 6 156 137
+25fa4 6 256 82
+25faa a 222 27
+25fb4 2 1139 87
+25fb6 2 277 82
+25fb8 2 1139 87
+25fba 2 222 27
+25fbc 1c 222 27
+25fd8 e 222 27
+25fe6 4 222 27
+25fea a 222 27
+25ff4 6 222 27
+25ffa 8 222 27
+26002 6 85 79
+26008 6 222 27
+2600e 6 156 137
+26014 6 256 82
+2601a a 223 27
+26024 2 1139 87
+26026 2 277 82
+26028 2 1139 87
+2602a 2 223 27
+2602c 16 223 27
+26042 c 223 27
+2604e 4 223 27
+26052 a 223 27
+2605c 6 223 27
+26062 8 223 27
+2606a 6 85 79
+26070 6 223 27
+26076 6 156 137
+2607c 6 256 82
+26082 a 224 27
+2608c 2 1139 87
+2608e 2 277 82
+26090 2 1139 87
+26092 2 224 27
+26094 16 224 27
+260aa c 224 27
+260b6 4 224 27
+260ba a 224 27
+260c4 6 224 27
+260ca 8 224 27
+260d2 6 85 79
+260d8 6 224 27
+260de 6 156 137
+260e4 6 256 82
+260ea a 225 27
+260f4 2 1139 87
+260f6 2 277 82
+260f8 2 1139 87
+260fa 2 225 27
+260fc 16 225 27
+26112 c 225 27
+2611e 4 225 27
+26122 a 225 27
+2612c 6 225 27
+26132 8 225 27
+2613a 6 85 79
+26140 6 225 27
+26146 6 156 137
+2614c 6 256 82
+26152 a 226 27
+2615c 2 1139 87
+2615e 2 277 82
+26160 2 1139 87
+26162 2 226 27
+26164 16 226 27
+2617a c 226 27
+26186 4 226 27
+2618a a 226 27
+26194 6 226 27
+2619a 8 226 27
+261a2 6 85 79
+261a8 6 226 27
+261ae 6 156 137
+261b4 6 256 82
+261ba a 227 27
+261c4 2 1139 87
+261c6 2 277 82
+261c8 2 1139 87
+261ca 2 227 27
+261cc 16 227 27
+261e2 c 227 27
+261ee 4 227 27
+261f2 a 227 27
+261fc 6 227 27
+26202 8 227 27
+2620a 6 85 79
+26210 6 227 27
+26216 6 156 137
+2621c 6 256 82
+26222 a 228 27
+2622c 2 1139 87
+2622e 2 277 82
+26230 2 1139 87
+26232 2 228 27
+26234 16 228 27
+2624a a 228 27
+26254 4 228 27
+26258 a 228 27
+26262 6 228 27
+26268 8 228 27
+26270 6 85 79
+26276 6 228 27
+2627c 6 156 137
+26282 6 256 82
+26288 6 230 27
+2628e 6 230 27
+26294 c 205 121
+262a0 12 156 137
+262b2 192 231 27
+FUNC 26444 7d0 0 MinidumpWriterTest_MappingInfoContained_Test::TestBody
+26444 c 236 27
+26450 6 236 27
+26456 4 238 27
+2645a 4 236 27
+2645e e 238 27
+2646c 8 238 27
+26474 2 238 27
+26476 2 238 27
+26478 2 238 27
+2647a e 238 27
+26488 8 238 27
+26490 6 302 82
+26496 12 238 27
+264a8 6 238 27
+264ae 8 238 27
+264b6 6 85 79
+264bc 6 238 27
+264c2 e 256 82
+264d0 6 242 27
+264d6 6 247 27
+264dc 4 243 27
+264e0 2 242 27
+264e2 4 243 27
+264e6 1a 247 27
+26500 a 251 27
+2650a 2 252 27
+2650c 4 251 27
+26510 a 252 27
+2651a c 962 136
+26526 4 255 27
+2652a 2 256 27
+2652c 2 255 27
+2652e a 256 27
+26538 4 452 136
+2653c 2 263 27
+2653e 6 452 136
+26544 6 263 27
+2654a 12 264 27
+2655c c 265 27
+26568 8 266 27
+26570 4 265 27
+26574 1a 266 27
+2658e 6 302 82
+26594 14 266 27
+265a8 6 266 27
+265ae 8 266 27
+265b6 6 85 79
+265bc 6 266 27
+265c2 e 256 82
+265d0 4 269 27
+265d4 8 267 27
+265dc 8 269 27
+265e4 6 270 27
+265ea 2 269 27
+265ec 2 197 57
+265ee 4 270 27
+265f2 c 271 27
+265fe 8 1512 82
+26606 2 271 27
+26608 e 1512 82
+26616 4 271 27
+2661a 6 302 82
+26620 14 271 27
+26634 6 271 27
+2663a 8 271 27
+26642 6 85 79
+26648 8 271 27
+26650 6 256 82
+26656 2 272 27
+26658 4 280 27
+2665c 8 272 27
+26664 16 280 27
+2667a c 277 82
+26686 4 1139 87
+2668a 2 282 27
+2668c 1e 282 27
+266aa 16 282 27
+266c0 6 282 27
+266c6 8 282 27
+266ce 6 85 79
+266d4 6 282 27
+266da 6 156 137
+266e0 e 256 82
+266ee 6 283 27
+266f4 4 285 27
+266f8 4 286 27
+266fc 8 287 27
+26704 10 289 27
+26714 4 289 27
+26718 6 289 27
+2671e 8 290 27
+26726 6 291 27
+2672c 2 296 27
+2672e 8 293 27
+26736 c 296 27
+26742 2 297 27
+26744 4 306 27
+26748 e 299 27
+26756 4 297 27
+2675a 4 299 27
+2675e a 304 27
+26768 2 353 121
+2676a 4 305 27
+2676e 4 353 121
+26772 6 307 27
+26778 4 304 27
+2677c 4 305 27
+26780 4 306 27
+26784 4 307 27
+26788 c 353 121
+26794 2 312 27
+26796 8 353 121
+2679e c 312 27
+267aa c 313 27
+267b6 8 229 146
+267be 1a 315 27
+267d8 2 277 82
+267da 8 1139 87
+267e2 2 315 27
+267e4 16 315 27
+267fa 16 315 27
+26810 6 315 27
+26816 8 315 27
+2681e 6 85 79
+26824 6 315 27
+2682a 6 156 137
+26830 e 256 82
+2683e 8 321 27
+26846 a 322 27
+26850 2 277 82
+26852 4 1139 87
+26856 2 322 27
+26858 16 322 27
+2686e 16 322 27
+26884 6 256 82
+2688a 6 324 27
+26890 a 277 82
+2689a 4 1139 87
+2689e 2 325 27
+268a0 16 325 27
+268b6 16 325 27
+268cc 6 256 82
+268d2 c 327 27
+268de a 277 82
+268e8 4 1139 87
+268ec 2 328 27
+268ee 16 328 27
+26904 18 328 27
+2691c 6 328 27
+26922 8 328 27
+2692a 6 85 79
+26930 6 328 27
+26936 6 156 137
+2693c 14 256 82
+26950 8 330 27
+26958 2 1512 82
+2695a 4 330 27
+2695e 10 1512 82
+2696e 4 330 27
+26972 6 302 82
+26978 16 330 27
+2698e 6 330 27
+26994 8 330 27
+2699c 6 85 79
+269a2 6 330 27
+269a8 6 256 82
+269ae 8 331 27
+269b6 2 1512 82
+269b8 4 331 27
+269bc 2 1512 82
+269be 4 331 27
+269c2 10 1512 82
+269d2 4 331 27
+269d6 6 302 82
+269dc 14 331 27
+269f0 6 331 27
+269f6 8 331 27
+269fe 6 85 79
+26a04 6 331 27
+26a0a a 256 82
+26a14 c 332 27
+26a20 12 1512 82
+26a32 6 156 137
+26a38 4 332 27
+26a3c 6 302 82
+26a42 c 332 27
+26a4e 4 332 27
+26a52 8 332 27
+26a5a 6 332 27
+26a60 8 332 27
+26a68 6 85 79
+26a6e 6 332 27
+26a74 6 256 82
+26a7a c 333 27
+26a86 14 1512 82
+26a9a 6 156 137
+26aa0 4 333 27
+26aa4 6 302 82
+26aaa c 333 27
+26ab6 2 333 27
+26ab8 8 333 27
+26ac0 6 333 27
+26ac6 8 333 27
+26ace 6 85 79
+26ad4 6 333 27
+26ada 6 256 82
+26ae0 6 335 27
+26ae6 6 335 27
+26aec c 205 121
+26af8 6 156 137
+26afe 6 203 57
+26b04 6 156 137
+26b0a 6 263 27
+26b10 4 156 137
+26b14 c 205 121
+26b20 6 156 137
+26b26 4 203 57
+26b2a 4 203 57
+26b2e 12 156 137
+26b40 d4 336 27
+FUNC 26c14 8a8 0 MinidumpWriterTest_DeletedBinary_Test::TestBody
+26c14 c 338 27
+26c20 4 338 27
+26c24 4 339 27
+26c28 2 338 27
+26c2a 8 339 27
+26c32 2 340 27
+26c34 4 339 27
+26c38 4 338 27
+26c3c 4 339 27
+26c40 6 340 27
+26c46 c 341 27
+26c52 1a 342 27
+26c6c 6 342 27
+26c72 2 131 79
+26c74 c 333 127
+26c80 8 342 27
+26c88 6 85 79
+26c8e 6 342 27
+26c94 2 342 27
+26c96 8 347 27
+26c9e 12 348 27
+26cb0 a 349 27
+26cba 4 1139 87
+26cbe 2 277 82
+26cc0 a 1139 87
+26cca 4 349 27
+26cce 20 349 27
+26cee 18 349 27
+26d06 6 350 27
+26d0c 2 131 79
+26d0e c 333 127
+26d1a 2 131 79
+26d1c 8 131 79
+26d24 2 131 79
+26d26 c 333 127
+26d32 2 131 79
+26d34 8 131 79
+26d3c 8 350 27
+26d44 6 85 79
+26d4a 6 349 27
+26d50 8 156 137
+26d58 6 256 82
+26d5e 8 351 27
+26d66 4 351 27
+26d6a 4 351 27
+26d6e 8 1552 82
+26d76 2 351 27
+26d78 e 1552 82
+26d86 4 351 27
+26d8a 6 302 82
+26d90 14 351 27
+26da4 6 351 27
+26daa 8 351 27
+26db2 6 85 79
+26db8 6 351 27
+26dbe e 256 82
+26dcc e 354 27
+26dda 8 354 27
+26de2 2 354 27
+26de4 e 354 27
+26df2 4 354 27
+26df6 6 302 82
+26dfc 14 354 27
+26e10 6 354 27
+26e16 8 354 27
+26e1e 6 85 79
+26e24 4 354 27
+26e28 6 256 82
+26e2e 4 356 27
+26e32 4 357 27
+26e36 6 359 27
+26e3c 14 363 27
+26e50 10 368 27
+26e60 c 370 27
+26e6c 6 373 27
+26e72 6 374 27
+26e78 4 375 27
+26e7c 12 377 27
+26e8e 4 377 27
+26e92 8 377 27
+26e9a 6 256 82
+26ea0 a 383 27
+26eaa 2 387 27
+26eac 6 390 27
+26eb2 4 387 27
+26eb6 c 390 27
+26ec2 12 392 27
+26ed4 c 395 27
+26ee0 4 394 27
+26ee4 4 395 27
+26ee8 4 1139 87
+26eec 2 277 82
+26eee 4 1139 87
+26ef2 6 395 27
+26ef8 20 395 27
+26f18 18 395 27
+26f30 6 395 27
+26f36 8 395 27
+26f3e 6 85 79
+26f44 6 395 27
+26f4a 6 156 137
+26f50 6 256 82
+26f56 1e 156 137
+26f74 12 429 27
+26f86 2 378 27
+26f88 4 1512 82
+26f8c 2 378 27
+26f8e 4 1512 82
+26f92 2 377 27
+26f94 a 1512 82
+26f9e 2 377 27
+26fa0 4 1512 82
+26fa4 6 378 27
+26faa 6 302 82
+26fb0 16 378 27
+26fc6 6 378 27
+26fcc 8 378 27
+26fd4 6 85 79
+26fda 4 378 27
+26fde 6 256 82
+26fe4 2 1139 87
+26fe6 2 379 27
+26fe8 2 1139 87
+26fea 4 379 27
+26fee 2 277 82
+26ff0 2 379 27
+26ff2 1e 379 27
+27010 18 379 27
+27028 6 379 27
+2702e 8 379 27
+27036 6 85 79
+2703c 6 379 27
+27042 8 156 137
+2704a 6 256 82
+27050 16 381 27
+27066 4 381 27
+2706a 6 381 27
+27070 2 382 27
+27072 2 1512 82
+27074 2 382 27
+27076 2 1512 82
+27078 2 381 27
+2707a a 1512 82
+27084 2 381 27
+27086 4 1512 82
+2708a a 382 27
+27094 6 302 82
+2709a 12 382 27
+270ac 6 382 27
+270b2 8 382 27
+270ba 6 85 79
+270c0 6 382 27
+270c6 a 256 82
+270d0 8 397 27
+270d8 6 400 27
+270de 4 400 27
+270e2 4 400 27
+270e6 8 1552 82
+270ee 2 400 27
+270f0 e 1552 82
+270fe 6 400 27
+27104 6 302 82
+2710a 12 400 27
+2711c 6 400 27
+27122 8 400 27
+2712a 6 85 79
+27130 8 400 27
+27138 6 256 82
+2713e 18 401 27
+27156 6 302 82
+2715c 10 401 27
+2716c 4 403 27
+27170 6 256 82
+27176 8 403 27
+2717e a 404 27
+27188 2 277 82
+2718a 4 1139 87
+2718e 2 404 27
+27190 16 404 27
+271a6 14 404 27
+271ba 6 256 82
+271c0 6 407 27
+271c6 a 277 82
+271d0 4 1139 87
+271d4 2 408 27
+271d6 16 408 27
+271ec 16 408 27
+27202 6 408 27
+27208 8 408 27
+27210 6 85 79
+27216 6 408 27
+2721c 6 156 137
+27222 e 256 82
+27230 e 409 27
+2723e 6 410 27
+27244 2 410 27
+27246 6 410 27
+2724c 16 410 27
+27262 6 156 137
+27268 4 410 27
+2726c 6 302 82
+27272 12 410 27
+27284 6 410 27
+2728a 8 410 27
+27292 6 85 79
+27298 6 410 27
+2729e 4 256 82
+272a2 2 412 27
+272a4 6 256 82
+272aa 4 414 27
+272ae 8 412 27
+272b6 8 414 27
+272be 2 1139 87
+272c0 2 256 82
+272c2 2 277 82
+272c4 2 1139 87
+272c6 2 414 27
+272c8 16 414 27
+272de a 414 27
+272e8 2 414 27
+272ea c 414 27
+272f6 6 414 27
+272fc 8 414 27
+27304 6 85 79
+2730a 6 414 27
+27310 6 156 137
+27316 6 256 82
+2731c 2 419 27
+2731e a 418 27
+27328 a 419 27
+27332 c 962 136
+2733e 2 422 27
+27340 2 423 27
+27342 2 422 27
+27344 8 423 27
+2734c 2 452 136
+2734e 2 428 27
+27350 6 452 136
+27356 a 428 27
+27360 12 1512 82
+27372 6 156 137
+27378 4 428 27
+2737c 6 302 82
+27382 a 428 27
+2738c 2 428 27
+2738e 8 428 27
+27396 6 428 27
+2739c 8 428 27
+273a4 6 85 79
+273aa 6 428 27
+273b0 6 256 82
+273b6 14 156 137
+273ca f2 429 27
+FUNC 274bc 298 0 MinidumpWriterTest_InvalidStackPointer_Test::TestBody
+274bc c 504 27
+274c8 a 504 27
+274d2 2 506 27
+274d4 4 504 27
+274d8 e 506 27
+274e6 6 506 27
+274ec 4 506 27
+274f0 e 506 27
+274fe c 506 27
+2750a 6 302 82
+27510 10 506 27
+27520 6 256 82
+27526 4 508 27
+2752a 4 509 27
+2752e 6 510 27
+27534 e 512 27
+27542 4 512 27
+27546 6 512 27
+2754c 6 513 27
+27552 6 514 27
+27558 6 516 27
+2755e a 523 27
+27568 4 1552 82
+2756c 2 523 27
+2756e 2 1552 82
+27570 2 523 27
+27572 e 1552 82
+27580 c 523 27
+2758c 6 302 82
+27592 12 523 27
+275a4 6 523 27
+275aa 8 523 27
+275b2 6 85 79
+275b8 6 523 27
+275be e 256 82
+275cc 2 524 27
+275ce 4 546 27
+275d2 4 524 27
+275d6 2 546 27
+275d8 4 530 27
+275dc 4 536 27
+275e0 4 546 27
+275e4 10 547 27
+275f4 10 550 27
+27604 2 1139 87
+27606 2 277 82
+27608 6 1139 87
+2760e 2 550 27
+27610 16 550 27
+27626 16 550 27
+2763c 6 550 27
+27642 8 550 27
+2764a 6 85 79
+27650 6 550 27
+27656 6 156 137
+2765c e 256 82
+2766a 8 553 27
+27672 6 554 27
+27678 2 1139 87
+2767a 2 277 82
+2767c 2 1139 87
+2767e 2 554 27
+27680 18 554 27
+27698 14 554 27
+276ac 6 554 27
+276b2 8 554 27
+276ba 6 85 79
+276c0 6 554 27
+276c6 6 156 137
+276cc 14 256 82
+276e0 6 579 27
+276e6 6 579 27
+276ec 10 156 137
+276fc 58 580 27
+FUNC 27754 5a4 0 MinidumpWriterTest_AdditionalMemory_Test::TestBody
+27754 c 432 27
+27760 6 432 27
+27766 2 434 27
+27768 4 432 27
+2776c 10 434 27
+2777c c 434 27
+27788 4 434 27
+2778c e 434 27
+2779a a 434 27
+277a4 6 302 82
+277aa 14 434 27
+277be 6 434 27
+277c4 8 434 27
+277cc 6 85 79
+277d2 6 434 27
+277d8 a 256 82
+277e2 a 438 27
+277ec 4 441 27
+277f0 6 277 82
+277f6 2 1139 87
+277f8 2 441 27
+277fa 2 442 27
+277fc 2 256 82
+277fe 4 1139 87
+27802 4 256 82
+27806 6 446 27
+2780c 6 446 27
+27812 c 447 27
+2781e 4 450 27
+27822 4 451 27
+27826 8 452 27
+2782e 10 454 27
+2783e 4 454 27
+27842 6 454 27
+27848 8 455 27
+27850 6 456 27
+27856 2 458 27
+27858 2 465 27
+2785a 6 458 27
+27860 a 465 27
+2786a a 1552 82
+27874 2 465 27
+27876 e 1552 82
+27884 8 465 27
+2788c 6 302 82
+27892 12 465 27
+278a4 6 465 27
+278aa 8 465 27
+278b2 6 85 79
+278b8 6 465 27
+278be a 256 82
+278c8 4 468 27
+278cc 4 256 82
+278d0 2 468 27
+278d2 2 466 27
+278d4 4 468 27
+278d8 10 469 27
+278e8 4 353 121
+278ec 8 470 27
+278f4 10 353 121
+27904 2 477 27
+27906 2 307 106
+27908 2 477 27
+2790a c 478 27
+27916 4 306 106
+2791a 6 307 106
+27920 4 119 108
+27924 a 119 108
+2792e 2 427 121
+27930 2 428 121
+27932 2 429 121
+27934 2 430 121
+27936 2 431 121
+27938 16 480 27
+2794e 2 1139 87
+27950 4 277 82
+27954 a 1139 87
+2795e 2 480 27
+27960 16 480 27
+27976 16 480 27
+2798c 6 480 27
+27992 8 480 27
+2799a 6 85 79
+279a0 6 480 27
+279a6 6 156 137
+279ac e 256 82
+279ba 8 484 27
+279c2 6 485 27
+279c8 2 1139 87
+279ca 2 277 82
+279cc 2 1139 87
+279ce 2 485 27
+279d0 1a 485 27
+279ea 14 485 27
+279fe 6 256 82
+27a04 6 487 27
+27a0a 6 277 82
+27a10 2 1139 87
+27a12 4 277 82
+27a16 2 1139 87
+27a18 2 488 27
+27a1a 1a 488 27
+27a34 14 488 27
+27a48 6 256 82
+27a4e 14 490 27
+27a62 6 277 82
+27a68 2 1139 87
+27a6a 4 277 82
+27a6e 2 1139 87
+27a70 2 491 27
+27a72 1a 491 27
+27a8c 16 491 27
+27aa2 6 491 27
+27aa8 8 491 27
+27ab0 6 85 79
+27ab6 6 491 27
+27abc 6 156 137
+27ac2 e 256 82
+27ad0 a 493 27
+27ada 2 1512 82
+27adc 4 493 27
+27ae0 10 1512 82
+27af0 4 493 27
+27af4 6 302 82
+27afa 12 493 27
+27b0c 6 493 27
+27b12 8 493 27
+27b1a 6 85 79
+27b20 6 493 27
+27b26 6 256 82
+27b2c a 494 27
+27b36 4 1481 82
+27b3a 4 494 27
+27b3e 2 1481 82
+27b40 2 256 82
+27b42 4 494 27
+27b46 2 1481 82
+27b48 8 1482 82
+27b50 12 1382 82
+27b62 16 1471 82
+27b78 e 156 137
+27b86 4 494 27
+27b8a 4 302 82
+27b8e c 494 27
+27b9a 2 494 27
+27b9c 8 494 27
+27ba4 6 494 27
+27baa 8 494 27
+27bb2 6 85 79
+27bb8 6 494 27
+27bbe 8 256 82
+27bc6 a 497 27
+27bd0 a 497 27
+27bda 4 1552 82
+27bde 6 497 27
+27be4 e 1552 82
+27bf2 6 497 27
+27bf8 6 302 82
+27bfe 12 497 27
+27c10 6 497 27
+27c16 8 497 27
+27c1e 6 85 79
+27c24 6 497 27
+27c2a 6 256 82
+27c30 6 499 27
+27c36 e 500 27
+27c44 c 205 121
+27c50 c 156 137
+27c5c 9c 501 27
+FUNC 27cf8 dec 0 MinidumpWriterTest_MinidumpSizeLimit_Test::TestBody
+27cf8 8 583 27
+27d00 4 587 27
+27d04 6 583 27
+27d0a 2 583 27
+27d0c 8 587 27
+27d14 2 589 27
+27d16 4 587 27
+27d1a 2 583 27
+27d1c 4 587 27
+27d20 6 589 27
+27d26 c 590 27
+27d32 c 591 27
+27d3e 2 591 27
+27d40 e 591 27
+27d4e 6 591 27
+27d54 2 131 79
+27d56 c 333 127
+27d62 8 591 27
+27d6a 6 85 79
+27d70 6 591 27
+27d76 2 591 27
+27d78 e 596 27
+27d86 c 596 27
+27d92 4 596 27
+27d96 e 596 27
+27da4 a 596 27
+27dae 6 302 82
+27db4 14 596 27
+27dc8 6 596 27
+27dce 8 596 27
+27dd6 6 85 79
+27ddc 6 596 27
+27de2 a 256 82
+27dec 4 598 27
+27df0 4 599 27
+27df4 2 605 27
+27df6 6 601 27
+27dfc c 605 27
+27e08 e 610 27
+27e16 a 612 27
+27e20 20 1512 82
+27e40 4 617 27
+27e44 4 618 27
+27e48 2 617 27
+27e4a 6 618 27
+27e50 4 619 27
+27e54 14 621 27
+27e68 4 621 27
+27e6c a 621 27
+27e76 6 256 82
+27e7c 2 1139 87
+27e7e 2 623 27
+27e80 2 1139 87
+27e82 4 623 27
+27e86 2 277 82
+27e88 6 623 27
+27e8e 1e 623 27
+27eac 16 623 27
+27ec2 6 623 27
+27ec8 8 623 27
+27ed0 6 85 79
+27ed6 6 623 27
+27edc 6 156 137
+27ee2 a 256 82
+27eec 4 725 27
+27ef0 4 256 82
+27ef4 4 725 27
+27ef8 4 726 27
+27efc 6 726 27
+27f02 6 726 27
+27f08 6 748 27
+27f0e 4 1619 82
+27f12 2 748 27
+27f14 6 1619 82
+27f1a 6 1619 82
+27f20 4 748 27
+27f24 6 302 82
+27f2a 16 748 27
+27f40 6 748 27
+27f46 8 749 27
+27f4e 6 85 79
+27f54 6 748 27
+27f5a 6 256 82
+27f60 6 749 27
+27f66 6 156 137
+27f6c e 753 27
+27f7a 6 156 137
+27f80 10 754 27
+27f90 4 622 27
+27f94 4 621 27
+27f98 2 622 27
+27f9a 2 1512 82
+27f9c 2 621 27
+27f9e 4 622 27
+27fa2 e 1512 82
+27fb0 e 622 27
+27fbe 6 302 82
+27fc4 10 622 27
+27fd4 6 256 82
+27fda 14 625 27
+27fee e 1512 82
+27ffc 4 625 27
+28000 6 302 82
+28006 12 625 27
+28018 6 625 27
+2801e 8 625 27
+28026 6 85 79
+2802c 8 625 27
+28034 6 256 82
+2803a 8 615 27
+28042 8 628 27
+2804a 4 640 27
+2804e 6 633 27
+28054 6 640 27
+2805a 14 645 27
+2806e 10 353 121
+2807e 16 646 27
+28094 4 1139 87
+28098 2 277 82
+2809a c 205 121
+280a6 8 646 27
+280ae 18 646 27
+280c6 14 646 27
+280da 6 646 27
+280e0 8 646 27
+280e8 6 85 79
+280ee 6 646 27
+280f4 6 156 137
+280fa a 256 82
+28104 6 650 27
+2810a 4 650 27
+2810e 4 650 27
+28112 8 1552 82
+2811a 2 650 27
+2811c e 1552 82
+2812a 4 650 27
+2812e 6 302 82
+28134 12 650 27
+28146 6 650 27
+2814c 8 650 27
+28154 6 85 79
+2815a 4 650 27
+2815e 6 256 82
+28164 18 651 27
+2817c 6 302 82
+28182 10 651 27
+28192 4 654 27
+28196 6 256 82
+2819c 4 654 27
+281a0 4 652 27
+281a4 4 654 27
+281a8 6 655 27
+281ae 4 1139 87
+281b2 2 277 82
+281b4 2 655 27
+281b6 1a 655 27
+281d0 14 655 27
+281e4 6 256 82
+281ea 6 656 27
+281f0 a 277 82
+281fa 4 1139 87
+281fe 2 657 27
+28200 1a 657 27
+2821a 16 657 27
+28230 6 657 27
+28236 8 657 27
+2823e 6 85 79
+28244 6 657 27
+2824a 4 156 137
+2824e 6 256 82
+28254 2 271 65
+28256 4 639 27
+2825a 2 658 27
+2825c 6 256 82
+28262 a 664 27
+2826c 4 658 27
+28270 4 664 27
+28274 4 658 27
+28278 6 658 27
+2827e 6 658 27
+28284 c 659 27
+28290 2 271 65
+28292 2 659 27
+28294 2 271 65
+28296 4 271 65
+2829a 6 660 27
+282a0 2 1139 87
+282a2 2 277 82
+282a4 2 660 27
+282a6 18 660 27
+282be 12 660 27
+282d0 2 663 27
+282d2 4 663 27
+282d6 6 663 27
+282dc 8 663 27
+282e4 6 85 79
+282ea 6 663 27
+282f0 6 156 137
+282f6 14 256 82
+2830a 8 662 27
+28312 8 663 27
+2831a 2 277 82
+2831c 2 1139 87
+2831e 4 663 27
+28322 18 663 27
+2833a ce 663 27
+28408 2 677 27
+2840a 4 156 137
+2840e 6 665 27
+28414 6 156 137
+2841a 4 676 27
+2841e 2 353 121
+28420 a 676 27
+2842a 16 353 121
+28440 14 677 27
+28454 4 277 82
+28458 2 1139 87
+2845a c 205 121
+28466 8 677 27
+2846e 1e 677 27
+2848c 16 677 27
+284a2 6 677 27
+284a8 8 677 27
+284b0 6 85 79
+284b6 6 677 27
+284bc 6 156 137
+284c2 a 256 82
+284cc 6 681 27
+284d2 2 681 27
+284d4 4 681 27
+284d8 8 1552 82
+284e0 2 681 27
+284e2 e 1552 82
+284f0 8 681 27
+284f8 6 302 82
+284fe 14 681 27
+28512 6 681 27
+28518 8 681 27
+28520 6 85 79
+28526 6 681 27
+2852c a 256 82
+28536 18 1481 82
+2854e 8 1482 82
+28556 a 884 80
+28560 4 75 132
+28564 8 259 126
+2856c 8 75 132
+28574 6 886 80
+2857a 8 1382 82
+28582 18 1471 82
+2859a e 156 137
+285a8 6 686 27
+285ae 6 302 82
+285b4 c 686 27
+285c0 2 686 27
+285c2 8 686 27
+285ca 6 686 27
+285d0 8 686 27
+285d8 6 85 79
+285de 6 686 27
+285e4 e 256 82
+285f2 a 156 137
+285fc 6 699 27
+28602 4 710 27
+28606 6 699 27
+2860c 12 709 27
+2861e 1e 353 121
+2863c 14 710 27
+28650 4 277 82
+28654 4 1139 87
+28658 c 205 121
+28664 8 710 27
+2866c 18 710 27
+28684 14 710 27
+28698 6 710 27
+2869e 8 710 27
+286a6 6 85 79
+286ac 6 710 27
+286b2 6 156 137
+286b8 4 256 82
+286bc 4 156 137
+286c0 6 256 82
+286c6 a 714 27
+286d0 4 714 27
+286d4 4 714 27
+286d8 8 1552 82
+286e0 2 714 27
+286e2 e 1552 82
+286f0 6 714 27
+286f6 6 302 82
+286fc 12 714 27
+2870e 6 714 27
+28714 8 714 27
+2871c 6 85 79
+28722 6 714 27
+28728 8 256 82
+28730 4 715 27
+28734 6 256 82
+2873a 1c 715 27
+28756 6 302 82
+2875c 10 715 27
+2876c 6 256 82
+28772 10 1619 82
+28782 12 1619 82
+28794 10 1583 82
+287a4 a 1583 82
+287ae 6 1583 82
+287b4 2 1583 82
+287b6 2 1382 82
+287b8 6 1583 82
+287be 6 1583 82
+287c4 8 1583 82
+287cc 6 1583 82
+287d2 a 1584 82
+287dc 8 1382 82
+287e4 8 1584 82
+287ec 2 1585 82
+287ee 2 884 80
+287f0 8 1585 82
+287f8 8 884 80
+28800 8 259 126
+28808 8 75 132
+28810 6 886 80
+28816 a 1585 82
+28820 6 1585 82
+28826 c 156 137
+28832 8 256 82
+2883a 6 719 27
+28840 6 302 82
+28846 14 719 27
+2885a 6 719 27
+28860 8 719 27
+28868 6 85 79
+2886e 6 719 27
+28874 4 721 27
+28878 6 256 82
+2887e 8 721 27
+28886 6 722 27
+2888c 2 1139 87
+2888e 2 277 82
+28890 4 1139 87
+28894 2 722 27
+28896 18 722 27
+288ae 14 722 27
+288c2 6 256 82
+288c8 6 723 27
+288ce a 277 82
+288d8 2 1139 87
+288da 6 724 27
+288e0 18 724 27
+288f8 14 724 27
+2890c c 727 27
+28918 2 271 65
+2891a 2 727 27
+2891c 2 271 65
+2891e 4 271 65
+28922 6 728 27
+28928 2 1139 87
+2892a 2 277 82
+2892c 2 1139 87
+2892e 2 728 27
+28930 18 728 27
+28948 12 728 27
+2895a 4 731 27
+2895e 6 731 27
+28964 8 731 27
+2896c 6 85 79
+28972 6 731 27
+28978 6 156 137
+2897e 14 256 82
+28992 a 730 27
+2899c 6 731 27
+289a2 2 1139 87
+289a4 2 731 27
+289a6 2 277 82
+289a8 2 1139 87
+289aa 2 731 27
+289ac 18 731 27
+289c4 14 731 27
+289d8 6 256 82
+289de e 732 27
+289ec 2 726 27
+289ee a 732 27
+289f8 1a 1619 82
+28a12 a 156 137
+28a1c c8 754 27
+FUNC 28ae4 2a0 0 google_breakpad::GetHelperBinary
+28ae4 6 42 28
+28aea 4 101 108
+28aee a 42 28
+28af8 4 120 137
+28afc 2 42 28
+28afe 4 120 137
+28b02 6 42 28
+28b08 2 124 137
+28b0a 2 42 28
+28b0c 2 120 137
+28b0e 2 124 137
+28b10 2 481 106
+28b12 2 42 28
+28b14 6 124 137
+28b1a 2 44 28
+28b1c 4 101 108
+28b20 a 44 28
+28b2a 8 45 28
+28b32 e 46 28
+28b40 8 400 136
+28b48 2 124 137
+28b4a 2 400 136
+28b4c 2 124 137
+28b4e 2 120 137
+28b50 2 481 106
+28b52 6 124 137
+28b58 2 517 136
+28b5a 4 101 108
+28b5e c 517 136
+28b6a 4 74 137
+28b6e 4 74 137
+28b72 6 74 137
+28b78 6 74 137
+28b7e 2 74 137
+28b80 4 472 136
+28b84 8 473 136
+28b8c 4 346 106
+28b90 4 347 106
+28b94 8 348 106
+28b9c 4 352 106
+28ba0 4 353 106
+28ba4 2 356 106
+28ba6 c 120 142
+28bb2 a 148 142
+28bbc 2 101 108
+28bbe 2 148 142
+28bc0 2 101 108
+28bc2 6 478 136
+28bc8 4 479 136
+28bcc 4 160 137
+28bd0 4 164 137
+28bd4 6 165 137
+28bda 2 232 145
+28bdc 2 482 136
+28bde 2 148 142
+28be0 2 232 145
+28be2 2 483 136
+28be4 c 148 142
+28bf0 6 101 108
+28bf6 6 485 136
+28bfc a 349 136
+28c06 e 156 137
+28c14 12 60 49
+28c26 2 50 28
+28c28 8 51 28
+28c30 c 53 28
+28c3c a 349 136
+28c46 a 156 137
+28c50 6 471 135
+28c56 2 162 104
+28c58 4 164 104
+28c5c 8 165 104
+28c64 8 168 104
+28c6c 2 81 118
+28c6e 6 65 118
+28c74 8 171 104
+28c7c 4 81 118
+28c80 8 174 104
+28c88 4 81 118
+28c8c 6 164 104
+28c92 2 152 118
+28c94 12 178 104
+28ca6 8 180 104
+28cae 6 81 118
+28cb4 4 76 118
+28cb8 8 183 104
+28cc0 6 81 118
+28cc6 4 76 118
+28cca 8 186 104
+28cd2 4 65 118
+28cd6 4 74 118
+28cda 4 478 135
+28cde 4 478 135
+28ce2 4 55 28
+28ce6 e 56 28
+28cf4 2 58 28
+28cf6 4 789 136
+28cfa 8 604 135
+28d02 8 791 136
+28d0a 12 530 136
+28d1c 2 379 136
+28d1e 2 378 136
+28d20 2 379 136
+28d22 2 112 137
+28d24 2 481 106
+28d26 4 379 136
+28d2a a 148 142
+28d34 2 101 108
+28d36 2 380 136
+28d38 2 101 108
+28d3a 6 156 137
+28d40 44 64 28
+FUNC 28d84 18 0 ProcCpuInfoReaderTest_EmptyValue_Test::~ProcCpuInfoReaderTest_EmptyValue_Test
+28d84 2 186 30
+28d86 16 186 30
+FUNC 28d9c 12 0 ProcCpuInfoReaderTest_EmptyValue_Test::~ProcCpuInfoReaderTest_EmptyValue_Test
+28d9c 2 186 30
+28d9e 6 186 30
+28da4 6 186 30
+28daa 4 186 30
+FUNC 28db0 18 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::~ProcCpuInfoReaderTest_FieldWithSpaces_Test
+28db0 2 173 30
+28db2 16 173 30
+FUNC 28dc8 12 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::~ProcCpuInfoReaderTest_FieldWithSpaces_Test
+28dc8 2 173 30
+28dca 6 173 30
+28dd0 6 173 30
+28dd6 4 173 30
+FUNC 28ddc 18 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::~ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test
+28ddc 2 156 30
+28dde 16 156 30
+FUNC 28df4 12 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::~ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test
+28df4 2 156 30
+28df6 6 156 30
+28dfc 6 156 30
+28e02 4 156 30
+FUNC 28e08 18 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::~ProcCpuInfoReaderTest_SkipEmptyField_Test
+28e08 2 143 30
+28e0a 16 143 30
+FUNC 28e20 12 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::~ProcCpuInfoReaderTest_SkipEmptyField_Test
+28e20 2 143 30
+28e22 6 143 30
+28e28 6 143 30
+28e2e 4 143 30
+FUNC 28e34 18 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::~ProcCpuInfoReaderTest_SkipOneEmptyLine_Test
+28e34 2 130 30
+28e36 16 130 30
+FUNC 28e4c 12 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::~ProcCpuInfoReaderTest_SkipOneEmptyLine_Test
+28e4c 2 130 30
+28e4e 6 130 30
+28e54 6 130 30
+28e5a 4 130 30
+FUNC 28e60 18 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::~ProcCpuInfoReaderTest_SkipMalformedLine_Test
+28e60 2 117 30
+28e62 16 117 30
+FUNC 28e78 12 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::~ProcCpuInfoReaderTest_SkipMalformedLine_Test
+28e78 2 117 30
+28e7a 6 117 30
+28e80 6 117 30
+28e86 4 117 30
+FUNC 28e8c 18 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::~ProcCpuInfoReaderTest_TwoLinesTerminated_Test
+28e8c 2 100 30
+28e8e 16 100 30
+FUNC 28ea4 12 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::~ProcCpuInfoReaderTest_TwoLinesTerminated_Test
+28ea4 2 100 30
+28ea6 6 100 30
+28eac 6 100 30
+28eb2 4 100 30
+FUNC 28eb8 18 0 ProcCpuInfoReaderTest_OneLine_Test::~ProcCpuInfoReaderTest_OneLine_Test
+28eb8 2 85 30
+28eba 16 85 30
+FUNC 28ed0 12 0 ProcCpuInfoReaderTest_OneLine_Test::~ProcCpuInfoReaderTest_OneLine_Test
+28ed0 2 85 30
+28ed2 6 85 30
+28ed8 6 85 30
+28ede 4 85 30
+FUNC 28ee4 18 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::~ProcCpuInfoReaderTest_OneLineTerminated_Test
+28ee4 2 72 30
+28ee6 16 72 30
+FUNC 28efc 12 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::~ProcCpuInfoReaderTest_OneLineTerminated_Test
+28efc 2 72 30
+28efe 6 72 30
+28f04 6 72 30
+28f0a 4 72 30
+FUNC 28f10 18 0 ProcCpuInfoReaderTest_EmptyFile_Test::~ProcCpuInfoReaderTest_EmptyFile_Test
+28f10 2 63 30
+28f12 16 63 30
+FUNC 28f28 12 0 ProcCpuInfoReaderTest_EmptyFile_Test::~ProcCpuInfoReaderTest_EmptyFile_Test
+28f28 2 63 30
+28f2a 6 63 30
+28f30 6 63 30
+28f36 4 63 30
+FUNC 28f3c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test>::CreateTest
+28f3c 2 486 85
+28f3e 8 486 85
+28f46 6 156 30
+28f4c 2 486 85
+28f4e 6 156 30
+28f54 8 486 85
+FUNC 28f5c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyValue_Test>::CreateTest
+28f5c 2 486 85
+28f5e 8 486 85
+28f66 6 186 30
+28f6c 2 486 85
+28f6e 6 186 30
+28f74 8 486 85
+FUNC 28f7c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_FieldWithSpaces_Test>::CreateTest
+28f7c 2 486 85
+28f7e 8 486 85
+28f86 6 173 30
+28f8c 2 486 85
+28f8e 6 173 30
+28f94 8 486 85
+FUNC 28f9c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_TwoLinesTerminated_Test>::CreateTest
+28f9c 2 486 85
+28f9e 8 486 85
+28fa6 6 100 30
+28fac 2 486 85
+28fae 6 100 30
+28fb4 8 486 85
+FUNC 28fbc 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLine_Test>::CreateTest
+28fbc 2 486 85
+28fbe 8 486 85
+28fc6 6 85 30
+28fcc 2 486 85
+28fce 6 85 30
+28fd4 8 486 85
+FUNC 28fdc 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_OneLineTerminated_Test>::CreateTest
+28fdc 2 486 85
+28fde 8 486 85
+28fe6 6 72 30
+28fec 2 486 85
+28fee 6 72 30
+28ff4 8 486 85
+FUNC 28ffc 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_EmptyFile_Test>::CreateTest
+28ffc 2 486 85
+28ffe 8 486 85
+29006 6 63 30
+2900c 2 486 85
+2900e 6 63 30
+29014 8 486 85
+FUNC 2901c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipOneEmptyLine_Test>::CreateTest
+2901c 2 486 85
+2901e 8 486 85
+29026 6 130 30
+2902c 2 486 85
+2902e 6 130 30
+29034 8 486 85
+FUNC 2903c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipMalformedLine_Test>::CreateTest
+2903c 2 486 85
+2903e 8 486 85
+29046 6 117 30
+2904c 2 486 85
+2904e 6 117 30
+29054 8 486 85
+FUNC 2905c 20 0 testing::internal::TestFactoryImpl<ProcCpuInfoReaderTest_SkipEmptyField_Test>::CreateTest
+2905c 2 486 85
+2905e 8 486 85
+29066 6 143 30
+2906c 2 486 85
+2906e 6 143 30
+29074 8 486 85
+FUNC 2907c 116 0 google_breakpad::ProcCpuInfoReader::GetNextField
+2907c 4 54 29
+29080 4 54 29
+29084 4 70 16
+29088 a 60 29
+29092 6 118 16
+29098 2 117 16
+2909a 2 118 16
+2909c 2 117 16
+2909e 6 118 16
+290a4 8 62 29
+290ac 8 66 16
+290b4 4 70 16
+290b8 8 66 16
+290c0 8 70 16
+290c8 2 70 16
+290ca 2 69 16
+290cc 6 69 16
+290d2 8 71 16
+290da 6 78 16
+290e0 4 86 16
+290e4 6 90 16
+290ea 4 92 16
+290ee 4 93 16
+290f2 4 68 29
+290f6 4 77 29
+290fa 2 70 29
+290fc 4 77 29
+29100 6 78 29
+29106 4 83 29
+2910a 2 84 29
+2910c 2 98 16
+2910e 2 3104 97
+29110 2 98 16
+29112 4 99 16
+29116 12 3104 97
+29128 4 3104 97
+2912c 6 3104 97
+29132 4 100 16
+29136 4 103 16
+2913a 2 105 16
+2913c 2 103 16
+2913e 8 105 16
+29146 c 84 29
+29152 2 84 29
+29154 8 84 29
+2915c 4 66 29
+29160 4 88 29
+29164 4 87 29
+29168 4 88 29
+2916c 6 92 29
+29172 8 92 29
+2917a 4 92 29
+2917e 4 95 29
+29182 4 99 29
+29186 4 101 29
+2918a 2 102 29
+2918c 6 104 29
+FUNC 29194 5c 0 ScopedTestFile::ScopedTestFile
+29194 2 56 30
+29196 4 56 30
+2919a 8 60 52
+291a2 6 61 52
+291a8 8 62 52
+291b0 10 109 52
+291c0 4 109 52
+291c4 6 109 52
+291ca 4 110 52
+291ce 6 111 52
+291d4 8 112 52
+291dc a 116 52
+291e6 a 58 30
+FUNC 291f0 150 0 ProcCpuInfoReaderTest_EmptyFile_Test::TestBody
+291f0 a 63 30
+291fa 4 63 30
+291fe 2 64 30
+29200 2 63 30
+29202 6 64 30
+29208 2 63 30
+2920a 4 64 30
+2920e 2 82 52
+29210 4 1139 87
+29214 2 82 52
+29216 2 277 82
+29218 2 82 52
+2921a 2 277 82
+2921c a 1139 87
+29226 2 65 30
+29228 16 65 30
+2923e a 65 30
+29248 4 65 30
+2924c a 65 30
+29256 6 65 30
+2925c 8 65 30
+29264 6 85 79
+2926a 6 65 30
+29270 4 156 137
+29274 6 256 82
+2927a 2 49 16
+2927c 2 69 30
+2927e 2 49 16
+29280 4 48 29
+29284 2 69 30
+29286 8 49 16
+2928e 4 48 29
+29292 a 69 30
+2929c 2 277 82
+2929e 4 1139 87
+292a2 2 69 30
+292a4 1a 69 30
+292be c 69 30
+292ca 2 69 30
+292cc a 69 30
+292d6 6 69 30
+292dc 8 69 30
+292e4 6 85 79
+292ea 6 69 30
+292f0 6 156 137
+292f6 6 256 82
+292fc 6 54 30
+29302 3e 70 30
+FUNC 29340 230 0 ProcCpuInfoReaderTest_OneLineTerminated_Test::TestBody
+29340 a 72 30
+2934a 4 72 30
+2934e 2 73 30
+29350 2 72 30
+29352 8 73 30
+2935a 2 72 30
+2935c 4 73 30
+29360 4 82 52
+29364 4 1139 87
+29368 2 82 52
+2936a 2 277 82
+2936c 2 82 52
+2936e 2 277 82
+29370 8 1139 87
+29378 2 74 30
+2937a 16 74 30
+29390 12 74 30
+293a2 6 256 82
+293a8 4 49 16
+293ac 4 78 30
+293b0 2 49 16
+293b2 4 48 29
+293b6 4 78 30
+293ba 8 49 16
+293c2 4 48 29
+293c6 4 78 30
+293ca 4 1139 87
+293ce 2 277 82
+293d0 2 78 30
+293d2 18 78 30
+293ea 12 78 30
+293fc 6 256 82
+29402 1c 79 30
+2941e 6 302 82
+29424 10 79 30
+29434 6 256 82
+2943a 18 80 30
+29452 4 80 30
+29456 6 302 82
+2945c e 80 30
+2946a 2 80 30
+2946c 4 80 30
+29470 6 80 30
+29476 8 80 30
+2947e 6 85 79
+29484 8 80 30
+2948c 6 256 82
+29492 e 82 30
+294a0 2 277 82
+294a2 4 1139 87
+294a6 2 82 30
+294a8 18 82 30
+294c0 10 82 30
+294d0 4 82 30
+294d4 4 82 30
+294d8 6 82 30
+294de 8 82 30
+294e6 6 85 79
+294ec 6 82 30
+294f2 6 156 137
+294f8 6 256 82
+294fe 6 54 30
+29504 6c 83 30
+FUNC 29570 30c 0 ProcCpuInfoReaderTest_TwoLinesTerminated_Test::TestBody
+29570 a 100 30
+2957a 4 100 30
+2957e 2 101 30
+29580 2 100 30
+29582 8 101 30
+2958a 2 100 30
+2958c 4 101 30
+29590 4 82 52
+29594 2 1139 87
+29596 2 82 52
+29598 2 277 82
+2959a 4 82 52
+2959e 2 277 82
+295a0 6 1139 87
+295a6 2 102 30
+295a8 16 102 30
+295be 12 102 30
+295d0 6 256 82
+295d6 4 49 16
+295da 4 106 30
+295de 2 49 16
+295e0 4 48 29
+295e4 4 106 30
+295e8 4 49 16
+295ec 4 48 29
+295f0 4 106 30
+295f4 2 1139 87
+295f6 2 277 82
+295f8 2 106 30
+295fa 18 106 30
+29612 12 106 30
+29624 6 256 82
+2962a 20 107 30
+2964a 6 302 82
+29650 10 107 30
+29660 6 256 82
+29666 1c 108 30
+29682 4 108 30
+29686 6 302 82
+2968c 10 108 30
+2969c 6 256 82
+296a2 8 110 30
+296aa 2 1139 87
+296ac 2 277 82
+296ae 2 110 30
+296b0 18 110 30
+296c8 12 110 30
+296da 6 256 82
+296e0 1a 111 30
+296fa 6 302 82
+29700 10 111 30
+29710 6 256 82
+29716 16 112 30
+2972c 4 112 30
+29730 6 302 82
+29736 e 112 30
+29744 2 112 30
+29746 4 112 30
+2974a 6 112 30
+29750 8 112 30
+29758 6 85 79
+2975e 8 112 30
+29766 6 256 82
+2976c e 114 30
+2977a 2 277 82
+2977c 2 1139 87
+2977e 2 114 30
+29780 18 114 30
+29798 10 114 30
+297a8 2 114 30
+297aa 4 114 30
+297ae 6 114 30
+297b4 8 114 30
+297bc 6 85 79
+297c2 6 114 30
+297c8 6 156 137
+297ce 6 256 82
+297d4 4 54 30
+297d8 6 256 82
+297de 6 54 30
+297e4 98 115 30
+FUNC 2987c 230 0 ProcCpuInfoReaderTest_SkipMalformedLine_Test::TestBody
+2987c a 117 30
+29886 4 117 30
+2988a 2 118 30
+2988c 2 117 30
+2988e 8 118 30
+29896 2 117 30
+29898 4 118 30
+2989c 4 82 52
+298a0 4 1139 87
+298a4 2 82 52
+298a6 2 277 82
+298a8 2 82 52
+298aa 2 277 82
+298ac 8 1139 87
+298b4 2 119 30
+298b6 16 119 30
+298cc 12 119 30
+298de 6 256 82
+298e4 4 49 16
+298e8 4 123 30
+298ec 2 49 16
+298ee 4 48 29
+298f2 4 123 30
+298f6 8 49 16
+298fe 4 48 29
+29902 4 123 30
+29906 4 1139 87
+2990a 2 277 82
+2990c 2 123 30
+2990e 18 123 30
+29926 12 123 30
+29938 6 256 82
+2993e 1c 124 30
+2995a 6 302 82
+29960 10 124 30
+29970 6 256 82
+29976 18 125 30
+2998e 4 125 30
+29992 6 302 82
+29998 e 125 30
+299a6 2 125 30
+299a8 4 125 30
+299ac 6 125 30
+299b2 8 125 30
+299ba 6 85 79
+299c0 8 125 30
+299c8 6 256 82
+299ce e 127 30
+299dc 2 277 82
+299de 4 1139 87
+299e2 2 127 30
+299e4 18 127 30
+299fc 10 127 30
+29a0c 4 127 30
+29a10 4 127 30
+29a14 6 127 30
+29a1a 8 127 30
+29a22 6 85 79
+29a28 6 127 30
+29a2e 6 156 137
+29a34 6 256 82
+29a3a 6 54 30
+29a40 6c 128 30
+FUNC 29aac 230 0 ProcCpuInfoReaderTest_SkipOneEmptyLine_Test::TestBody
+29aac a 130 30
+29ab6 4 130 30
+29aba 2 131 30
+29abc 2 130 30
+29abe 8 131 30
+29ac6 2 130 30
+29ac8 4 131 30
+29acc 4 82 52
+29ad0 4 1139 87
+29ad4 2 82 52
+29ad6 2 277 82
+29ad8 2 82 52
+29ada 2 277 82
+29adc 8 1139 87
+29ae4 2 132 30
+29ae6 16 132 30
+29afc 12 132 30
+29b0e 6 256 82
+29b14 4 49 16
+29b18 4 136 30
+29b1c 2 49 16
+29b1e 4 48 29
+29b22 4 136 30
+29b26 8 49 16
+29b2e 4 48 29
+29b32 4 136 30
+29b36 4 1139 87
+29b3a 2 277 82
+29b3c 2 136 30
+29b3e 18 136 30
+29b56 12 136 30
+29b68 6 256 82
+29b6e 1c 137 30
+29b8a 6 302 82
+29b90 10 137 30
+29ba0 6 256 82
+29ba6 18 138 30
+29bbe 4 138 30
+29bc2 6 302 82
+29bc8 e 138 30
+29bd6 2 138 30
+29bd8 4 138 30
+29bdc 6 138 30
+29be2 8 138 30
+29bea 6 85 79
+29bf0 8 138 30
+29bf8 6 256 82
+29bfe e 140 30
+29c0c 2 277 82
+29c0e 4 1139 87
+29c12 2 140 30
+29c14 18 140 30
+29c2c 10 140 30
+29c3c 4 140 30
+29c40 4 140 30
+29c44 6 140 30
+29c4a 8 140 30
+29c52 6 85 79
+29c58 6 140 30
+29c5e 6 156 137
+29c64 6 256 82
+29c6a 6 54 30
+29c70 6c 141 30
+FUNC 29cdc 230 0 ProcCpuInfoReaderTest_SkipEmptyField_Test::TestBody
+29cdc a 143 30
+29ce6 4 143 30
+29cea 2 144 30
+29cec 2 143 30
+29cee 8 144 30
+29cf6 2 143 30
+29cf8 4 144 30
+29cfc 4 82 52
+29d00 4 1139 87
+29d04 2 82 52
+29d06 2 277 82
+29d08 2 82 52
+29d0a 2 277 82
+29d0c 8 1139 87
+29d14 2 145 30
+29d16 16 145 30
+29d2c 12 145 30
+29d3e 6 256 82
+29d44 4 49 16
+29d48 4 149 30
+29d4c 2 49 16
+29d4e 4 48 29
+29d52 4 149 30
+29d56 8 49 16
+29d5e 4 48 29
+29d62 4 149 30
+29d66 4 1139 87
+29d6a 2 277 82
+29d6c 2 149 30
+29d6e 18 149 30
+29d86 12 149 30
+29d98 6 256 82
+29d9e 1c 150 30
+29dba 6 302 82
+29dc0 10 150 30
+29dd0 6 256 82
+29dd6 18 151 30
+29dee 4 151 30
+29df2 6 302 82
+29df8 e 151 30
+29e06 2 151 30
+29e08 4 151 30
+29e0c 6 151 30
+29e12 8 151 30
+29e1a 6 85 79
+29e20 8 151 30
+29e28 6 256 82
+29e2e e 153 30
+29e3c 2 277 82
+29e3e 4 1139 87
+29e42 2 153 30
+29e44 18 153 30
+29e5c 10 153 30
+29e6c 4 153 30
+29e70 4 153 30
+29e74 6 153 30
+29e7a 8 153 30
+29e82 6 85 79
+29e88 6 153 30
+29e8e 6 156 137
+29e94 6 256 82
+29e9a 6 54 30
+29ea0 6c 154 30
+FUNC 29f0c 300 0 ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test::TestBody
+29f0c a 156 30
+29f16 4 156 30
+29f1a 2 157 30
+29f1c 2 156 30
+29f1e 8 157 30
+29f26 2 156 30
+29f28 4 157 30
+29f2c 4 82 52
+29f30 2 1139 87
+29f32 2 82 52
+29f34 2 277 82
+29f36 4 82 52
+29f3a 2 277 82
+29f3c 6 1139 87
+29f42 2 158 30
+29f44 16 158 30
+29f5a 12 158 30
+29f6c 6 256 82
+29f72 4 49 16
+29f76 4 162 30
+29f7a 2 49 16
+29f7c 4 48 29
+29f80 4 162 30
+29f84 4 49 16
+29f88 4 48 29
+29f8c 4 162 30
+29f90 2 1139 87
+29f92 2 277 82
+29f94 2 162 30
+29f96 18 162 30
+29fae 12 162 30
+29fc0 6 256 82
+29fc6 28 163 30
+29fee 6 302 82
+29ff4 10 163 30
+2a004 6 256 82
+2a00a 22 164 30
+2a02c 4 164 30
+2a030 6 302 82
+2a036 10 164 30
+2a046 6 256 82
+2a04c 8 166 30
+2a054 2 1139 87
+2a056 2 277 82
+2a058 2 166 30
+2a05a 18 166 30
+2a072 12 166 30
+2a084 6 256 82
+2a08a 16 167 30
+2a0a0 6 302 82
+2a0a6 10 167 30
+2a0b6 6 256 82
+2a0bc 10 168 30
+2a0cc 4 168 30
+2a0d0 6 302 82
+2a0d6 e 168 30
+2a0e4 2 168 30
+2a0e6 4 168 30
+2a0ea 6 168 30
+2a0f0 8 168 30
+2a0f8 6 85 79
+2a0fe 8 168 30
+2a106 6 256 82
+2a10c e 170 30
+2a11a 2 277 82
+2a11c 2 1139 87
+2a11e 2 170 30
+2a120 18 170 30
+2a138 10 170 30
+2a148 2 170 30
+2a14a 4 170 30
+2a14e 6 170 30
+2a154 8 170 30
+2a15c 6 85 79
+2a162 6 170 30
+2a168 6 156 137
+2a16e 6 256 82
+2a174 4 54 30
+2a178 6 256 82
+2a17e 6 54 30
+2a184 88 171 30
+FUNC 2a20c 230 0 ProcCpuInfoReaderTest_FieldWithSpaces_Test::TestBody
+2a20c a 173 30
+2a216 4 173 30
+2a21a 2 174 30
+2a21c 2 173 30
+2a21e 8 174 30
+2a226 2 173 30
+2a228 4 174 30
+2a22c 4 82 52
+2a230 4 1139 87
+2a234 2 82 52
+2a236 2 277 82
+2a238 2 82 52
+2a23a 2 277 82
+2a23c 8 1139 87
+2a244 2 175 30
+2a246 16 175 30
+2a25c 12 175 30
+2a26e 6 256 82
+2a274 4 49 16
+2a278 4 179 30
+2a27c 2 49 16
+2a27e 4 48 29
+2a282 4 179 30
+2a286 8 49 16
+2a28e 4 48 29
+2a292 4 179 30
+2a296 4 1139 87
+2a29a 2 277 82
+2a29c 2 179 30
+2a29e 18 179 30
+2a2b6 12 179 30
+2a2c8 6 256 82
+2a2ce 1c 180 30
+2a2ea 6 302 82
+2a2f0 10 180 30
+2a300 6 256 82
+2a306 18 181 30
+2a31e 4 181 30
+2a322 6 302 82
+2a328 e 181 30
+2a336 2 181 30
+2a338 4 181 30
+2a33c 6 181 30
+2a342 8 181 30
+2a34a 6 85 79
+2a350 8 181 30
+2a358 6 256 82
+2a35e e 183 30
+2a36c 2 277 82
+2a36e 4 1139 87
+2a372 2 183 30
+2a374 18 183 30
+2a38c 10 183 30
+2a39c 4 183 30
+2a3a0 4 183 30
+2a3a4 6 183 30
+2a3aa 8 183 30
+2a3b2 6 85 79
+2a3b8 6 183 30
+2a3be 6 156 137
+2a3c4 6 256 82
+2a3ca 6 54 30
+2a3d0 6c 184 30
+FUNC 2a43c 294 0 ProcCpuInfoReaderTest_EmptyValue_Test::TestBody
+2a43c c 186 30
+2a448 6 186 30
+2a44e 2 187 30
+2a450 4 186 30
+2a454 8 187 30
+2a45c 2 186 30
+2a45e 4 187 30
+2a462 4 82 52
+2a466 4 1139 87
+2a46a 2 82 52
+2a46c 2 277 82
+2a46e 2 82 52
+2a470 2 277 82
+2a472 a 1139 87
+2a47c 2 188 30
+2a47e 16 188 30
+2a494 12 188 30
+2a4a6 6 256 82
+2a4ac 4 49 16
+2a4b0 4 192 30
+2a4b4 2 49 16
+2a4b6 4 48 29
+2a4ba 4 192 30
+2a4be 8 49 16
+2a4c6 4 48 29
+2a4ca 4 192 30
+2a4ce 4 1139 87
+2a4d2 2 277 82
+2a4d4 2 192 30
+2a4d6 18 192 30
+2a4ee 12 192 30
+2a500 6 256 82
+2a506 1c 193 30
+2a522 6 302 82
+2a528 10 193 30
+2a538 6 256 82
+2a53e c 117 29
+2a54a 18 195 30
+2a562 4 195 30
+2a566 6 302 82
+2a56c 10 195 30
+2a57c 6 256 82
+2a582 4 1481 82
+2a586 4 196 30
+2a58a 2 1481 82
+2a58c 8 1482 82
+2a594 14 1487 82
+2a5a8 6 196 30
+2a5ae 6 302 82
+2a5b4 12 196 30
+2a5c6 6 196 30
+2a5cc 8 196 30
+2a5d4 6 85 79
+2a5da 8 196 30
+2a5e2 6 256 82
+2a5e8 8 198 30
+2a5f0 2 1139 87
+2a5f2 6 198 30
+2a5f8 2 277 82
+2a5fa 2 1139 87
+2a5fc 2 198 30
+2a5fe 18 198 30
+2a616 14 198 30
+2a62a 6 198 30
+2a630 8 198 30
+2a638 6 85 79
+2a63e 6 198 30
+2a644 6 156 137
+2a64a 6 256 82
+2a650 6 54 30
+2a656 7a 199 30
+FUNC 2a6d0 294 0 ProcCpuInfoReaderTest_OneLine_Test::TestBody
+2a6d0 c 85 30
+2a6dc 6 85 30
+2a6e2 2 86 30
+2a6e4 4 85 30
+2a6e8 8 86 30
+2a6f0 2 85 30
+2a6f2 4 86 30
+2a6f6 4 82 52
+2a6fa 4 1139 87
+2a6fe 2 82 52
+2a700 2 277 82
+2a702 2 82 52
+2a704 2 277 82
+2a706 a 1139 87
+2a710 2 87 30
+2a712 16 87 30
+2a728 12 87 30
+2a73a 6 256 82
+2a740 4 49 16
+2a744 4 92 30
+2a748 2 49 16
+2a74a 4 48 29
+2a74e 8 49 16
+2a756 4 92 30
+2a75a 4 48 29
+2a75e 4 92 30
+2a762 4 1139 87
+2a766 2 277 82
+2a768 2 92 30
+2a76a 18 92 30
+2a782 12 92 30
+2a794 6 256 82
+2a79a 1c 93 30
+2a7b6 6 302 82
+2a7bc 10 93 30
+2a7cc 6 256 82
+2a7d2 c 117 29
+2a7de 18 94 30
+2a7f6 4 94 30
+2a7fa 6 302 82
+2a800 10 94 30
+2a810 6 256 82
+2a816 4 95 30
+2a81a 8 1481 82
+2a822 8 1482 82
+2a82a 14 1487 82
+2a83e 4 95 30
+2a842 6 302 82
+2a848 12 95 30
+2a85a 6 95 30
+2a860 8 95 30
+2a868 6 85 79
+2a86e 8 95 30
+2a876 6 256 82
+2a87c 8 97 30
+2a884 2 1139 87
+2a886 6 97 30
+2a88c 2 277 82
+2a88e 2 1139 87
+2a890 2 97 30
+2a892 18 97 30
+2a8aa 14 97 30
+2a8be 6 97 30
+2a8c4 8 97 30
+2a8cc 6 85 79
+2a8d2 6 97 30
+2a8d8 6 156 137
+2a8de 6 256 82
+2a8e4 6 54 30
+2a8ea 7a 98 30
+FUNC 2a964 18 0 ElfCoreDumpTest_ValidCoreFile_Test::~ElfCoreDumpTest_ValidCoreFile_Test
+2a964 2 130 39
+2a966 16 130 39
+FUNC 2a97c 12 0 ElfCoreDumpTest_ValidCoreFile_Test::~ElfCoreDumpTest_ValidCoreFile_Test
+2a97c 2 130 39
+2a97e 6 130 39
+2a984 6 130 39
+2a98a 4 130 39
+FUNC 2a990 18 0 ElfCoreDumpTest_TestElfHeader_Test::~ElfCoreDumpTest_TestElfHeader_Test
+2a990 2 62 39
+2a992 16 62 39
+FUNC 2a9a8 12 0 ElfCoreDumpTest_TestElfHeader_Test::~ElfCoreDumpTest_TestElfHeader_Test
+2a9a8 2 62 39
+2a9aa 6 62 39
+2a9b0 6 62 39
+2a9b6 4 62 39
+FUNC 2a9bc 18 0 ElfCoreDumpTest_DefaultConstructor_Test::~ElfCoreDumpTest_DefaultConstructor_Test
+2a9bc 2 52 39
+2a9be 16 52 39
+FUNC 2a9d4 12 0 ElfCoreDumpTest_DefaultConstructor_Test::~ElfCoreDumpTest_DefaultConstructor_Test
+2a9d4 2 52 39
+2a9d6 6 52 39
+2a9dc 6 52 39
+2a9e2 4 52 39
+FUNC 2a9e8 20 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_DefaultConstructor_Test>::CreateTest
+2a9e8 2 486 85
+2a9ea 8 486 85
+2a9f2 6 52 39
+2a9f8 2 486 85
+2a9fa 6 52 39
+2aa00 8 486 85
+FUNC 2aa08 20 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_ValidCoreFile_Test>::CreateTest
+2aa08 2 486 85
+2aa0a 8 486 85
+2aa12 6 130 39
+2aa18 2 486 85
+2aa1a 6 130 39
+2aa20 8 486 85
+FUNC 2aa28 20 0 testing::internal::TestFactoryImpl<ElfCoreDumpTest_TestElfHeader_Test>::CreateTest
+2aa28 2 486 85
+2aa2a 8 486 85
+2aa32 6 62 39
+2aa38 2 486 85
+2aa3a 6 62 39
+2aa40 8 486 85
+FUNC 2aa48 30 0 std::map<long long unsigned int, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range, std::less<long long unsigned int>, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::map
+2aa48 6 99 123
+2aa4e 10 250 141
+2aa5e 8 481 106
+2aa66 2 263 141
+2aa68 2 99 123
+2aa6a 2 263 141
+2aa6c 2 265 141
+2aa6e 2 266 141
+2aa70 2 267 141
+2aa72 2 391 141
+2aa74 4 99 123
+FUNC 2aa48 30 0 std::map<long long unsigned int, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range, std::less<long long unsigned int>, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> > >::map
+2aa48 6 99 123
+2aa4e 10 250 141
+2aa5e 8 481 106
+2aa66 2 263 141
+2aa68 2 99 123
+2aa6a 2 263 141
+2aa6c 2 265 141
+2aa6e 2 266 141
+2aa70 2 267 141
+2aa72 2 391 141
+2aa74 4 99 123
+FUNC 2aa48 30 0 std::map<unsigned int, google_breakpad::Minidump::MinidumpStreamInfo, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::map
+FUNC 2aa48 30 0 std::set<int, std::less<int>, std::allocator<int> >::set
+2aa48 6 129 147
+2aa4e 10 250 141
+2aa5e 8 481 106
+2aa66 2 263 141
+2aa68 2 129 147
+2aa6a 2 263 141
+2aa6c 2 265 141
+2aa6e 2 266 141
+2aa70 2 267 141
+2aa72 2 391 141
+2aa74 4 129 147
+FUNC 2aa78 74 0 std::operator==<int, std::less<int>, std::allocator<int> >
+2aa78 2 7 130
+2aa7a 8 10 130
+2aa82 8 10 130
+2aa8a 2 555 105
+2aa8c 2 200 141
+2aa8e 2 555 105
+2aa90 4 556 105
+2aa94 2 171 141
+2aa96 4 556 105
+2aa9a 4 297 140
+2aa9e a 94 141
+2aaa8 2 301 140
+2aaaa 6 302 140
+2aab0 6 304 140
+2aab6 8 309 140
+2aabe 2 177 141
+2aac0 4 297 140
+2aac4 a 94 141
+2aace 2 301 140
+2aad0 6 302 140
+2aad6 6 304 140
+2aadc 8 309 140
+2aae4 4 177 141
+2aae8 2 10 130
+2aaea 2 11 130
+FUNC 2aaec 2c 0 testing::internal::DefaultPrintTo<const Elf32_Phdr>
+2aaec 2 307 80
+2aaee 2 307 80
+2aaf0 4 310 80
+2aaf4 4 334 80
+2aaf8 a 333 127
+2ab02 6 318 80
+2ab08 4 291 126
+2ab0c 4 334 80
+2ab10 8 291 126
+FUNC 2aaec 2c 0 testing::internal::DefaultPrintTo<const elfhdr>
+FUNC 2ab18 a0 0 testing::internal::CmpHelperEQFailure<const Elf32_Phdr*, const Elf32_Phdr*>
+FUNC 2ab18 a0 0 testing::internal::CmpHelperEQFailure<const elfhdr*, const elfhdr*>
+2ab18 e 1464 82
+2ab26 2 1464 82
+2ab28 2 884 80
+2ab2a 6 1464 82
+2ab30 4 380 80
+2ab34 2 1464 82
+2ab36 4 884 80
+2ab3a 4 1464 82
+2ab3e 2 75 132
+2ab40 4 884 80
+2ab44 4 380 80
+2ab48 2 75 132
+2ab4a 4 380 80
+2ab4e 8 75 132
+2ab56 6 886 80
+2ab5c 8 884 80
+2ab64 6 380 80
+2ab6a 4 75 132
+2ab6e 4 380 80
+2ab72 8 75 132
+2ab7a 6 886 80
+2ab80 14 1471 82
+2ab94 c 156 137
+2aba0 18 1472 82
+FUNC 2abb8 2fc 0 ElfCoreDumpTest_DefaultConstructor_Test::TestBody
+2abb8 a 52 39
+2abc2 6 52 39
+2abc8 2 53 39
+2abca 4 52 39
+2abce 2 53 39
+2abd0 2 52 39
+2abd2 4 53 39
+2abd6 6 54 39
+2abdc 2 1139 87
+2abde 6 54 39
+2abe4 4 277 82
+2abe8 6 1139 87
+2abee 2 54 39
+2abf0 1a 54 39
+2ac0a 14 54 39
+2ac1e 6 54 39
+2ac24 8 54 39
+2ac2c 6 85 79
+2ac32 6 54 39
+2ac38 6 156 137
+2ac3e a 256 82
+2ac48 6 55 39
+2ac4e 6 1571 82
+2ac54 2 1481 82
+2ac56 8 1482 82
+2ac5e 14 1487 82
+2ac72 8 55 39
+2ac7a 6 302 82
+2ac80 10 55 39
+2ac90 6 55 39
+2ac96 8 55 39
+2ac9e 6 85 79
+2aca4 6 55 39
+2acaa 6 256 82
+2acb0 a 56 39
+2acba 4 1552 82
+2acbe 2 56 39
+2acc0 e 1552 82
+2acce 6 56 39
+2acd4 6 302 82
+2acda 10 56 39
+2acea 6 56 39
+2acf0 8 56 39
+2acf8 6 85 79
+2acfe 6 56 39
+2ad04 6 256 82
+2ad0a 8 57 39
+2ad12 6 1571 82
+2ad18 2 1481 82
+2ad1a 8 1482 82
+2ad22 14 1487 82
+2ad36 6 57 39
+2ad3c 6 302 82
+2ad42 10 57 39
+2ad52 6 57 39
+2ad58 8 57 39
+2ad60 6 85 79
+2ad66 6 57 39
+2ad6c 6 256 82
+2ad72 8 58 39
+2ad7a 6 1571 82
+2ad80 2 1481 82
+2ad82 8 1482 82
+2ad8a 12 1487 82
+2ad9c 6 58 39
+2ada2 6 302 82
+2ada8 12 58 39
+2adba 6 58 39
+2adc0 8 58 39
+2adc8 6 85 79
+2adce 6 58 39
+2add4 6 256 82
+2adda 8 59 39
+2ade2 6 59 39
+2ade8 2 1139 87
+2adea 6 59 39
+2adf0 4 277 82
+2adf4 2 1139 87
+2adf6 2 59 39
+2adf8 18 59 39
+2ae10 14 59 39
+2ae24 6 59 39
+2ae2a 8 59 39
+2ae32 6 85 79
+2ae38 6 59 39
+2ae3e 6 156 137
+2ae44 6 256 82
+2ae4a 6a 60 39
+FUNC 2aeb4 20 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::_M_erase
+2aeb4 6 655 140
+2aeba 2 657 140
+2aebc 8 658 140
+2aec4 2 659 140
+2aec6 c 161 106
+2aed2 2 664 140
+FUNC 2aed4 1a 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::clear
+2aed4 2 531 141
+2aed6 2 530 141
+2aed8 2 530 141
+2aeda 2 531 141
+2aedc 6 532 141
+2aee2 2 534 141
+2aee4 2 533 141
+2aee6 2 534 141
+2aee8 2 535 141
+2aeea 4 536 141
+FUNC 2aef0 f5c 0 ElfCoreDumpTest_TestElfHeader_Test::TestBody
+2aef0 a 62 39
+2aefa 4 62 39
+2aefe 2 64 39
+2af00 2 62 39
+2af02 4 64 39
+2af06 4 66 39
+2af0a 2 64 39
+2af0c 2 62 39
+2af0e 4 64 39
+2af12 6 66 39
+2af18 12 67 39
+2af2a c 69 39
+2af36 a 70 39
+2af40 a 72 39
+2af4a 6 1139 87
+2af50 4 277 82
+2af54 10 1139 87
+2af64 2 72 39
+2af66 1e 72 39
+2af84 12 72 39
+2af96 6 256 82
+2af9c a 73 39
+2afa6 4 1139 87
+2afaa 4 277 82
+2afae 2 73 39
+2afb0 1e 73 39
+2afce 14 73 39
+2afe2 6 73 39
+2afe8 8 73 39
+2aff0 6 85 79
+2aff6 6 73 39
+2affc 6 156 137
+2b002 c 256 82
+2b00e 8 74 39
+2b016 c 75 39
+2b022 4 277 82
+2b026 4 1139 87
+2b02a 2 75 39
+2b02c 20 75 39
+2b04c 14 75 39
+2b060 6 75 39
+2b066 8 75 39
+2b06e 6 85 79
+2b074 6 75 39
+2b07a 6 156 137
+2b080 6 256 82
+2b086 6 76 39
+2b08c 6 1571 82
+2b092 2 1481 82
+2b094 8 1482 82
+2b09c 18 1487 82
+2b0b4 6 76 39
+2b0ba 6 302 82
+2b0c0 a 76 39
+2b0ca 2 76 39
+2b0cc 8 76 39
+2b0d4 6 76 39
+2b0da 8 76 39
+2b0e2 6 85 79
+2b0e8 6 76 39
+2b0ee 6 256 82
+2b0f4 c 77 39
+2b100 8 1552 82
+2b108 4 256 82
+2b10c 6 1552 82
+2b112 2 77 39
+2b114 10 1552 82
+2b124 6 77 39
+2b12a 6 302 82
+2b130 12 77 39
+2b142 6 77 39
+2b148 8 77 39
+2b150 6 85 79
+2b156 6 77 39
+2b15c 6 256 82
+2b162 8 78 39
+2b16a 2 1571 82
+2b16c 4 256 82
+2b170 2 1571 82
+2b172 2 1481 82
+2b174 8 1482 82
+2b17c 18 1487 82
+2b194 6 78 39
+2b19a 6 302 82
+2b1a0 c 78 39
+2b1ac 4 78 39
+2b1b0 8 78 39
+2b1b8 6 78 39
+2b1be 8 78 39
+2b1c6 6 85 79
+2b1cc 6 78 39
+2b1d2 6 256 82
+2b1d8 8 79 39
+2b1e0 2 1571 82
+2b1e2 4 256 82
+2b1e6 2 1571 82
+2b1e8 2 1481 82
+2b1ea 8 1482 82
+2b1f2 18 1487 82
+2b20a 6 79 39
+2b210 6 302 82
+2b216 c 79 39
+2b222 4 79 39
+2b226 8 79 39
+2b22e 6 79 39
+2b234 8 79 39
+2b23c 6 85 79
+2b242 6 79 39
+2b248 6 256 82
+2b24e 8 80 39
+2b256 6 80 39
+2b25c 2 1139 87
+2b25e 6 80 39
+2b264 4 277 82
+2b268 2 1139 87
+2b26a 2 80 39
+2b26c 1e 80 39
+2b28a 16 80 39
+2b2a0 6 80 39
+2b2a6 8 80 39
+2b2ae 6 85 79
+2b2b4 6 80 39
+2b2ba 6 156 137
+2b2c0 6 256 82
+2b2c6 a 82 39
+2b2d0 6 1139 87
+2b2d6 4 277 82
+2b2da 2 256 82
+2b2dc 4 1139 87
+2b2e0 2 82 39
+2b2e2 1e 82 39
+2b300 14 82 39
+2b314 2 256 82
+2b316 4 83 39
+2b31a 4 256 82
+2b31e a 83 39
+2b328 4 256 82
+2b32c 4 277 82
+2b330 4 1139 87
+2b334 2 83 39
+2b336 1e 83 39
+2b354 16 83 39
+2b36a 6 83 39
+2b370 8 83 39
+2b378 6 85 79
+2b37e 6 83 39
+2b384 6 156 137
+2b38a 8 256 82
+2b392 2 84 39
+2b394 4 256 82
+2b398 8 84 39
+2b3a0 c 85 39
+2b3ac 4 277 82
+2b3b0 4 1139 87
+2b3b4 2 85 39
+2b3b6 1e 85 39
+2b3d4 18 85 39
+2b3ec 6 85 39
+2b3f2 8 85 39
+2b3fa 6 85 79
+2b400 6 85 39
+2b406 6 156 137
+2b40c 8 256 82
+2b414 2 87 39
+2b416 6 88 39
+2b41c 4 87 39
+2b420 4 1139 87
+2b424 4 88 39
+2b428 2 256 82
+2b42a 4 277 82
+2b42e 4 1139 87
+2b432 2 88 39
+2b434 1e 88 39
+2b452 14 88 39
+2b466 2 256 82
+2b468 4 89 39
+2b46c 4 256 82
+2b470 a 89 39
+2b47a 4 1139 87
+2b47e 4 277 82
+2b482 2 89 39
+2b484 1e 89 39
+2b4a2 14 89 39
+2b4b6 2 256 82
+2b4b8 2 90 39
+2b4ba 4 256 82
+2b4be 8 90 39
+2b4c6 c 91 39
+2b4d2 4 277 82
+2b4d6 4 1139 87
+2b4da 2 91 39
+2b4dc 20 91 39
+2b4fc c 91 39
+2b508 4 91 39
+2b50c a 91 39
+2b516 6 91 39
+2b51c 8 91 39
+2b524 6 85 79
+2b52a 6 91 39
+2b530 6 156 137
+2b536 8 256 82
+2b53e 2 93 39
+2b540 6 94 39
+2b546 4 93 39
+2b54a 4 1139 87
+2b54e 4 94 39
+2b552 4 1139 87
+2b556 4 277 82
+2b55a 2 94 39
+2b55c 1e 94 39
+2b57a 14 94 39
+2b58e 2 256 82
+2b590 4 95 39
+2b594 4 256 82
+2b598 a 95 39
+2b5a2 4 1139 87
+2b5a6 4 277 82
+2b5aa 2 95 39
+2b5ac 1e 95 39
+2b5ca 14 95 39
+2b5de 4 96 39
+2b5e2 6 256 82
+2b5e8 8 96 39
+2b5f0 c 97 39
+2b5fc 4 277 82
+2b600 4 1139 87
+2b604 2 97 39
+2b606 20 97 39
+2b626 c 97 39
+2b632 4 97 39
+2b636 a 97 39
+2b640 6 97 39
+2b646 8 97 39
+2b64e 6 85 79
+2b654 6 97 39
+2b65a 6 156 137
+2b660 6 256 82
+2b666 2 99 39
+2b668 6 100 39
+2b66e 4 99 39
+2b672 4 1139 87
+2b676 4 100 39
+2b67a 2 256 82
+2b67c 4 277 82
+2b680 4 1139 87
+2b684 2 100 39
+2b686 1e 100 39
+2b6a4 14 100 39
+2b6b8 2 256 82
+2b6ba 4 101 39
+2b6be 4 256 82
+2b6c2 a 101 39
+2b6cc 4 1139 87
+2b6d0 4 277 82
+2b6d4 2 101 39
+2b6d6 1e 101 39
+2b6f4 14 101 39
+2b708 2 256 82
+2b70a 2 102 39
+2b70c 4 256 82
+2b710 8 102 39
+2b718 c 103 39
+2b724 4 277 82
+2b728 4 1139 87
+2b72c 2 103 39
+2b72e 20 103 39
+2b74e c 103 39
+2b75a 4 103 39
+2b75e a 103 39
+2b768 6 103 39
+2b76e 8 103 39
+2b776 6 85 79
+2b77c 6 103 39
+2b782 6 156 137
+2b788 8 256 82
+2b790 2 105 39
+2b792 6 106 39
+2b798 4 105 39
+2b79c 4 1139 87
+2b7a0 4 106 39
+2b7a4 4 1139 87
+2b7a8 4 277 82
+2b7ac 2 106 39
+2b7ae 1e 106 39
+2b7cc 14 106 39
+2b7e0 2 256 82
+2b7e2 4 107 39
+2b7e6 4 256 82
+2b7ea a 107 39
+2b7f4 4 1139 87
+2b7f8 4 277 82
+2b7fc 2 107 39
+2b7fe 1e 107 39
+2b81c 14 107 39
+2b830 4 108 39
+2b834 6 256 82
+2b83a 8 108 39
+2b842 c 109 39
+2b84e 4 277 82
+2b852 4 1139 87
+2b856 2 109 39
+2b858 20 109 39
+2b878 c 109 39
+2b884 4 109 39
+2b888 a 109 39
+2b892 6 109 39
+2b898 8 109 39
+2b8a0 6 85 79
+2b8a6 6 109 39
+2b8ac 6 156 137
+2b8b2 4 111 39
+2b8b6 6 256 82
+2b8bc 6 112 39
+2b8c2 4 111 39
+2b8c6 4 1139 87
+2b8ca 4 112 39
+2b8ce 2 256 82
+2b8d0 4 277 82
+2b8d4 4 1139 87
+2b8d8 2 112 39
+2b8da 1e 112 39
+2b8f8 14 112 39
+2b90c 2 256 82
+2b90e 4 113 39
+2b912 4 256 82
+2b916 a 113 39
+2b920 4 1139 87
+2b924 4 277 82
+2b928 2 113 39
+2b92a 18 113 39
+2b942 12 113 39
+2b954 2 256 82
+2b956 2 114 39
+2b958 4 256 82
+2b95c 8 114 39
+2b964 c 115 39
+2b970 4 277 82
+2b974 4 1139 87
+2b978 2 115 39
+2b97a 1a 115 39
+2b994 c 115 39
+2b9a0 4 115 39
+2b9a4 8 115 39
+2b9ac 6 115 39
+2b9b2 8 115 39
+2b9ba 6 85 79
+2b9c0 6 115 39
+2b9c6 6 156 137
+2b9cc 4 117 39
+2b9d0 8 256 82
+2b9d8 6 118 39
+2b9de 4 117 39
+2b9e2 2 1139 87
+2b9e4 4 118 39
+2b9e8 2 1139 87
+2b9ea 4 277 82
+2b9ee 2 118 39
+2b9f0 18 118 39
+2ba08 12 118 39
+2ba1a 2 256 82
+2ba1c 4 119 39
+2ba20 4 256 82
+2ba24 a 119 39
+2ba2e 2 1139 87
+2ba30 4 277 82
+2ba34 2 119 39
+2ba36 18 119 39
+2ba4e 12 119 39
+2ba60 4 120 39
+2ba64 6 256 82
+2ba6a 8 120 39
+2ba72 c 121 39
+2ba7e 4 277 82
+2ba82 2 1139 87
+2ba84 2 121 39
+2ba86 1a 121 39
+2baa0 c 121 39
+2baac 4 121 39
+2bab0 8 121 39
+2bab8 6 121 39
+2babe 8 121 39
+2bac6 6 85 79
+2bacc 6 121 39
+2bad2 6 156 137
+2bad8 6 256 82
+2bade 2 123 39
+2bae0 6 124 39
+2bae6 4 123 39
+2baea 2 1139 87
+2baec 4 124 39
+2baf0 2 1139 87
+2baf2 4 277 82
+2baf6 2 124 39
+2baf8 18 124 39
+2bb10 12 124 39
+2bb22 2 256 82
+2bb24 4 125 39
+2bb28 4 256 82
+2bb2c a 125 39
+2bb36 2 1139 87
+2bb38 4 277 82
+2bb3c 6 125 39
+2bb42 18 125 39
+2bb5a 10 125 39
+2bb6a 2 125 39
+2bb6c 4 125 39
+2bb70 6 125 39
+2bb76 8 125 39
+2bb7e 6 85 79
+2bb84 6 125 39
+2bb8a 6 156 137
+2bb90 c 256 82
+2bb9c 6 156 137
+2bba2 8 61 63
+2bbaa 1ee 156 137
+2bd98 2 126 39
+2bd9a 6 256 82
+2bda0 8 126 39
+2bda8 6 127 39
+2bdae 2 1139 87
+2bdb0 4 277 82
+2bdb4 2 127 39
+2bdb6 18 127 39
+2bdce a 127 39
+2bdd8 2 127 39
+2bdda a 127 39
+2bde4 6 127 39
+2bdea 8 127 39
+2bdf2 6 85 79
+2bdf8 6 127 39
+2bdfe 6 156 137
+2be04 6 256 82
+2be0a 6 69 39
+2be10 2 61 63
+2be12 6 156 137
+2be18 8 61 63
+2be20 6 156 137
+2be26 26 128 39
+FUNC 2be4c 98 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::_M_insert
+2be4c 4 350 140
+2be50 2 358 140
+2be52 a 350 140
+2be5c 2 358 140
+2be5e 4 306 106
+2be62 8 307 106
+2be6a 2 126 108
+2be6c 4 321 141
+2be70 2 322 141
+2be72 2 360 140
+2be74 2 361 140
+2be76 4 362 140
+2be7a 4 364 140
+2be7e 4 364 140
+2be82 8 364 140
+2be8a 4 306 106
+2be8e 8 307 106
+2be96 2 126 108
+2be98 4 321 141
+2be9c 2 322 141
+2be9e 2 368 140
+2bea0 6 369 140
+2bea6 4 370 140
+2beaa 4 306 106
+2beae 8 307 106
+2beb6 2 126 108
+2beb8 4 321 141
+2bebc 2 322 141
+2bebe 2 374 140
+2bec0 6 375 140
+2bec6 2 376 140
+2bec8 2 379 140
+2beca 2 378 140
+2becc 6 379 140
+2bed2 2 382 140
+2bed4 6 380 140
+2beda 4 142 141
+2bede 6 382 140
+FUNC 2bee4 8e 0 std::priv::_Rb_tree<int, std::less<int>, int, std::priv::_Identity<int>, std::priv::_SetTraitsT<int>, std::allocator<int> >::insert_unique
+2bee4 2 405 140
+2bee6 2 405 140
+2bee8 2 408 140
+2beea 2 406 140
+2beec 2 405 140
+2beee 2 407 140
+2bef0 2 409 140
+2bef2 6 412 140
+2bef8 4 412 140
+2befc 10 412 140
+2bf0c 2 142 141
+2bf0e 2 415 140
+2bf10 6 416 140
+2bf16 4 417 140
+2bf1a 4 279 140
+2bf1e 8 279 140
+2bf26 4 280 140
+2bf2a 4 281 140
+2bf2e 8 99 141
+2bf36 2 285 140
+2bf38 6 286 140
+2bf3e 6 288 140
+2bf44 2 187 141
+2bf46 e 421 140
+2bf54 a 422 140
+2bf5e 4 142 141
+2bf62 6 62 129
+2bf68 2 142 141
+2bf6a 2 62 129
+2bf6c 6 425 140
+FUNC 2bf74 858 0 ElfCoreDumpTest_ValidCoreFile_Test::TestBody
+2bf74 14 130 39
+2bf88 2 130 39
+2bf8a 4 131 39
+2bf8e 2 130 39
+2bf90 4 131 39
+2bf94 a 132 39
+2bf9e 14 134 39
+2bfb2 2 135 39
+2bfb4 8 138 39
+2bfbc 2 141 39
+2bfbe a 140 39
+2bfc8 e 141 39
+2bfd6 4 277 82
+2bfda a 1139 87
+2bfe4 2 141 39
+2bfe6 1e 141 39
+2c004 14 141 39
+2c018 6 141 39
+2c01e 8 141 39
+2c026 6 85 79
+2c02c 6 141 39
+2c032 6 156 137
+2c038 e 256 82
+2c046 a 143 39
+2c050 6 144 39
+2c056 8 146 39
+2c05e 2 145 39
+2c060 2 146 39
+2c062 a 229 147
+2c06c 4 145 39
+2c070 a 151 39
+2c07a a 151 39
+2c084 6 156 137
+2c08a 2 151 39
+2c08c 14 153 39
+2c0a0 2 154 39
+2c0a2 a 158 39
+2c0ac 8 159 39
+2c0b4 a 159 39
+2c0be 4 277 82
+2c0c2 2 156 137
+2c0c4 2 1139 87
+2c0c6 4 156 137
+2c0ca a 159 39
+2c0d4 1c 159 39
+2c0f0 16 159 39
+2c106 6 159 39
+2c10c 8 159 39
+2c114 6 85 79
+2c11a 6 159 39
+2c120 6 156 137
+2c126 c 256 82
+2c132 4 162 39
+2c136 4 256 82
+2c13a 6 162 39
+2c140 8 163 39
+2c148 6 164 39
+2c14e 2 1139 87
+2c150 4 277 82
+2c154 2 164 39
+2c156 1c 164 39
+2c172 16 164 39
+2c188 6 164 39
+2c18e 8 164 39
+2c196 6 85 79
+2c19c 6 164 39
+2c1a2 6 156 137
+2c1a8 6 256 82
+2c1ae 2 187 39
+2c1b0 2 196 39
+2c1b2 2 187 39
+2c1b4 2 188 39
+2c1b6 4 196 39
+2c1ba 8 197 39
+2c1c2 18 201 39
+2c1da 8 201 39
+2c1e2 10 202 39
+2c1f2 16 198 39
+2c208 8 199 39
+2c210 8 200 39
+2c218 2 201 39
+2c21a 2 1139 87
+2c21c 6 201 39
+2c222 2 1139 87
+2c224 4 277 82
+2c228 2 201 39
+2c22a 14 201 39
+2c23e 8 201 39
+2c246 4 201 39
+2c24a a 201 39
+2c254 6 201 39
+2c25a 8 201 39
+2c262 6 85 79
+2c268 6 201 39
+2c26e 6 156 137
+2c274 a 256 82
+2c27e 2 1139 87
+2c280 8 202 39
+2c288 2 1139 87
+2c28a 4 277 82
+2c28e 2 202 39
+2c290 16 202 39
+2c2a6 c 202 39
+2c2b2 4 202 39
+2c2b6 a 202 39
+2c2c0 6 202 39
+2c2c6 8 202 39
+2c2ce 6 85 79
+2c2d4 6 202 39
+2c2da 6 156 137
+2c2e0 8 256 82
+2c2e8 8 204 39
+2c2f0 2 256 82
+2c2f2 a 204 39
+2c2fc 2 206 39
+2c2fe 2 1139 87
+2c300 6 206 39
+2c306 2 1139 87
+2c308 4 277 82
+2c30c 2 206 39
+2c30e 20 206 39
+2c32e c 206 39
+2c33a 4 206 39
+2c33e a 206 39
+2c348 6 206 39
+2c34e 8 206 39
+2c356 6 85 79
+2c35c 6 206 39
+2c362 6 156 137
+2c368 6 256 82
+2c36e 2 207 39
+2c370 4 1512 82
+2c374 8 207 39
+2c37c c 1512 82
+2c388 4 207 39
+2c38c 4 1512 82
+2c390 6 207 39
+2c396 6 302 82
+2c39c 10 207 39
+2c3ac 6 207 39
+2c3b2 8 207 39
+2c3ba 6 85 79
+2c3c0 6 207 39
+2c3c6 6 256 82
+2c3cc 6 208 39
+2c3d2 4 209 39
+2c3d6 2 1139 87
+2c3d8 6 212 39
+2c3de 2 1139 87
+2c3e0 4 277 82
+2c3e4 2 212 39
+2c3e6 1a 212 39
+2c400 c 212 39
+2c40c 4 212 39
+2c410 8 212 39
+2c418 6 212 39
+2c41e 8 212 39
+2c426 6 85 79
+2c42c 6 212 39
+2c432 6 156 137
+2c438 6 256 82
+2c43e 2 213 39
+2c440 4 1512 82
+2c444 2 213 39
+2c446 4 256 82
+2c44a 6 213 39
+2c450 c 1512 82
+2c45c 4 213 39
+2c460 4 1512 82
+2c464 6 213 39
+2c46a 6 302 82
+2c470 10 213 39
+2c480 6 213 39
+2c486 8 213 39
+2c48e 6 85 79
+2c494 6 213 39
+2c49a 6 256 82
+2c4a0 8 91 55
+2c4a8 4 229 147
+2c4ac 4 215 39
+2c4b0 a 229 147
+2c4ba 6 216 39
+2c4c0 a 1481 82
+2c4ca 8 1482 82
+2c4d2 12 1487 82
+2c4e4 6 217 39
+2c4ea 6 302 82
+2c4f0 8 217 39
+2c4f8 4 217 39
+2c4fc 8 217 39
+2c504 6 217 39
+2c50a 8 217 39
+2c512 6 85 79
+2c518 6 217 39
+2c51e a 256 82
+2c528 6 1481 82
+2c52e 4 256 82
+2c532 4 1481 82
+2c536 8 1482 82
+2c53e 12 1487 82
+2c550 6 218 39
+2c556 6 302 82
+2c55c 8 218 39
+2c564 2 218 39
+2c566 8 218 39
+2c56e 6 218 39
+2c574 8 218 39
+2c57c 6 85 79
+2c582 6 218 39
+2c588 6 256 82
+2c58e 6 220 39
+2c594 16 244 39
+2c5aa c 247 39
+2c5b6 4 1139 87
+2c5ba 4 277 82
+2c5be 2 247 39
+2c5c0 1a 247 39
+2c5da 16 247 39
+2c5f0 6 247 39
+2c5f6 8 247 39
+2c5fe 6 85 79
+2c604 6 247 39
+2c60a 6 156 137
+2c610 4 248 39
+2c614 6 256 82
+2c61a 10 1512 82
+2c62a 4 248 39
+2c62e 4 1512 82
+2c632 6 248 39
+2c638 6 302 82
+2c63e 14 248 39
+2c652 6 248 39
+2c658 8 248 39
+2c660 6 85 79
+2c666 6 248 39
+2c66c 6 256 82
+2c672 14 1512 82
+2c686 6 249 39
+2c68c 6 302 82
+2c692 12 249 39
+2c6a4 6 249 39
+2c6aa 8 249 39
+2c6b2 6 85 79
+2c6b8 6 249 39
+2c6be 6 256 82
+2c6c4 6 414 141
+2c6ca 6 158 39
+2c6d0 6 414 141
+2c6d6 6 135 39
+2c6dc f0 256 39
+FUNC 2c7cc 28 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass32> >::CreateTest
+2c7cc 2 486 85
+2c7ce 8 486 85
+2c7d6 4 107 43
+2c7da 6 67 144
+2c7e0 4 481 106
+2c7e4 2 486 85
+2c7e6 8 151 43
+2c7ee 6 486 85
+FUNC 2c7f4 28 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32> >::CreateTest
+2c7f4 2 486 85
+2c7f6 8 486 85
+2c7fe 4 107 43
+2c802 6 67 144
+2c808 4 481 106
+2c80c 2 486 85
+2c80e 8 220 43
+2c816 6 486 85
+FUNC 2c81c 28 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32> >::CreateTest
+2c81c 2 486 85
+2c81e 8 486 85
+2c826 4 107 43
+2c82a 6 67 144
+2c830 4 481 106
+2c834 2 486 85
+2c836 8 183 43
+2c83e 6 486 85
+FUNC 2c844 28 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass32> >::CreateTest
+2c844 2 486 85
+2c846 8 486 85
+2c84e 4 107 43
+2c852 6 67 144
+2c858 4 481 106
+2c85c 2 486 85
+2c85e 8 127 43
+2c866 6 486 85
+FUNC 2c86c 28 0 testing::internal::TestFactoryImpl<FileIDTest_BuildID_Test<google_breakpad::ElfClass64> >::CreateTest
+2c86c 2 486 85
+2c86e 8 486 85
+2c876 4 107 43
+2c87a 6 67 144
+2c880 4 481 106
+2c884 2 486 85
+2c886 8 151 43
+2c88e 6 486 85
+FUNC 2c894 28 0 testing::internal::TestFactoryImpl<FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64> >::CreateTest
+2c894 2 486 85
+2c896 8 486 85
+2c89e 4 107 43
+2c8a2 6 67 144
+2c8a8 4 481 106
+2c8ac 2 486 85
+2c8ae 8 183 43
+2c8b6 6 486 85
+FUNC 2c8bc 28 0 testing::internal::TestFactoryImpl<FileIDTest_ElfClass_Test<google_breakpad::ElfClass64> >::CreateTest
+2c8bc 2 486 85
+2c8be 8 486 85
+2c8c6 4 107 43
+2c8ca 6 67 144
+2c8d0 4 481 106
+2c8d4 2 486 85
+2c8d6 8 127 43
+2c8de 6 486 85
+FUNC 2c8e4 28 0 testing::internal::TestFactoryImpl<FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64> >::CreateTest
+2c8e4 2 486 85
+2c8e6 8 486 85
+2c8ee 4 107 43
+2c8f2 6 67 144
+2c8f8 4 481 106
+2c8fc 2 486 85
+2c8fe 8 220 43
+2c906 6 486 85
+FUNC 2c90c 18 0 std::priv::__copy_trivial
+2c90c 4 222 105
+2c910 2 224 105
+2c912 2 224 105
+2c914 2 224 105
+2c916 8 224 105
+2c91e 4 224 105
+2c922 2 225 105
+FUNC 2c924 c 0 std::__node_alloc::deallocate
+2c924 4 161 106
+2c928 4 135 124
+2c92c 4 161 106
+FUNC 2c930 f8 0 std::priv::_Impl_vector<unsigned char, std::allocator<unsigned char> >::_M_range_insert<char*>
+2c930 2 546 144
+2c932 4 532 144
+2c936 8 532 144
+2c93e 2 546 144
+2c940 2 355 119
+2c942 a 549 144
+2c94c 4 476 144
+2c950 4 478 144
+2c954 4 479 144
+2c958 a 120 142
+2c962 2 480 144
+2c964 4 255 105
+2c968 2 480 144
+2c96a 2 256 105
+2c96c 2 480 144
+2c96e 2 256 105
+2c970 8 256 105
+2c978 6 269 105
+2c97e 4 510 119
+2c982 a 120 142
+2c98c 8 492 144
+2c994 2 120 142
+2c996 2 492 144
+2c998 6 120 142
+2c99e 4 269 105
+2c9a2 6 494 144
+2c9a8 8 269 105
+2c9b0 4 192 144
+2c9b4 6 173 144
+2c9ba 8 41 143
+2c9c2 8 175 144
+2c9ca 4 176 144
+2c9ce 4 346 106
+2c9d2 4 177 144
+2c9d6 6 347 106
+2c9dc 4 348 106
+2c9e0 2 352 106
+2c9e2 4 353 106
+2c9e6 2 356 106
+2c9e8 1e 120 142
+2ca06 2 662 144
+2ca08 4 120 142
+2ca0c 2 662 144
+2ca0e 2 319 106
+2ca10 4 323 106
+2ca14 4 667 144
+2ca18 2 443 144
+2ca1a 2 668 144
+2ca1c c 556 144
+FUNC 2ca28 4c 0 google_breakpad::test_assembler::Section::~Section
+2ca28 4 277 62
+2ca2c 10 277 62
+2ca3c 6 65 118
+2ca42 2 74 118
+2ca44 4 191 108
+2ca48 a 449 62
+2ca52 4 81 118
+2ca56 4 87 144
+2ca5a 2 88 144
+2ca5c 6 323 106
+2ca62 8 156 137
+2ca6a a 277 62
+FUNC 2ca74 12 0 google_breakpad::test_assembler::Section::~Section
+2ca74 2 277 62
+2ca76 6 277 62
+2ca7c 6 277 62
+2ca82 4 277 62
+FUNC 2ca88 1c 0 google_breakpad::synth_elf::Notes::~Notes
+2ca88 4 181 51
+2ca8c 18 181 51
+FUNC 2caa4 12 0 google_breakpad::synth_elf::Notes::~Notes
+2caa4 2 181 51
+2caa6 6 181 51
+2caac 6 181 51
+2cab2 4 181 51
+FUNC 2cab8 40 0 PopulateSection
+2cab8 2 62 43
+2caba 4 62 43
+2cabe 2 63 43
+2cac0 4 303 62
+2cac4 4 63 43
+2cac8 a 64 43
+2cad2 2 303 62
+2cad4 10 64 43
+2cae4 8 303 62
+2caec 4 63 43
+2caf0 8 65 43
+FUNC 2caf8 34 0 google_breakpad::test_assembler::Section::Section
+2caf8 4 272 62
+2cafc 6 273 62
+2cb02 2 272 62
+2cb04 4 273 62
+2cb08 8 273 62
+2cb10 2 67 144
+2cb12 4 273 62
+2cb16 4 67 144
+2cb1a 2 481 106
+2cb1c 4 273 62
+2cb20 c 273 62
+FUNC 2cb2c 42 0 testing::internal::GetPrefixUntilComma
+2cb2c 2 585 85
+2cb2e 4 585 85
+2cb32 8 586 85
+2cb3a 4 587 85
+2cb3e c 587 85
+2cb4a 2 355 119
+2cb4c 4 324 136
+2cb50 2 112 137
+2cb52 2 481 106
+2cb54 4 324 136
+2cb58 a 148 142
+2cb62 2 101 108
+2cb64 2 325 136
+2cb66 2 101 108
+2cb68 6 588 85
+FUNC 2cb70 4c 0 testing::internal::StripTrailingSpaces
+2cb70 2 2214 87
+2cb72 6 2214 87
+2cb78 6 2216 87
+2cb7e c 144 98
+2cb8a 2 2216 87
+2cb8c 4 144 98
+2cb90 4 2216 87
+2cb94 2 797 136
+2cb96 4 168 145
+2cb9a 6 168 145
+2cba0 a 798 136
+2cbaa 8 2218 87
+2cbb2 a 2219 87
+FUNC 2cbbc 3e 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+2cbbc 2 29 139
+2cbbe 4 29 139
+2cbc2 4 400 136
+2cbc6 2 29 139
+2cbc8 a 400 136
+2cbd2 2 120 137
+2cbd4 2 481 106
+2cbd6 6 124 137
+2cbdc 4 101 108
+2cbe0 2 517 136
+2cbe2 2 101 108
+2cbe4 12 517 136
+2cbf6 4 42 139
+FUNC 2cbfa 32 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_erase
+2cbfa 6 655 140
+2cc00 2 657 140
+2cc02 8 658 140
+2cc0a 8 51 129
+2cc12 2 659 140
+2cc14 4 51 129
+2cc18 6 156 137
+2cc1e c 161 106
+2cc2a 2 664 140
+FUNC 2cc2c 30 0 google_breakpad::synth_elf::StringTable::~StringTable
+2cc2c 4 64 51
+2cc30 8 64 51
+2cc38 2 531 141
+2cc3a 2 64 51
+2cc3c 2 531 141
+2cc3e 8 532 141
+2cc46 8 64 51
+2cc4e 6 64 51
+2cc54 8 64 51
+FUNC 2cc5c 12 0 google_breakpad::synth_elf::StringTable::~StringTable
+2cc5c 2 64 51
+2cc5e 6 64 51
+2cc64 6 64 51
+2cc6a 4 64 51
+FUNC 2cc70 90 0 google_breakpad::synth_elf::ELF::~ELF
+2cc70 4 94 51
+2cc74 a 94 51
+2cc7e a 65 118
+2cc88 2 74 118
+2cc8a 4 191 108
+2cc8e 4 77 118
+2cc92 a 57 108
+2cc9c 4 81 118
+2cca0 6 87 144
+2cca6 4 88 144
+2ccaa 6 323 106
+2ccb0 8 94 51
+2ccb8 8 94 51
+2ccc0 8 94 51
+2ccc8 8 94 51
+2ccd0 8 94 51
+2ccd8 8 94 51
+2cce0 8 94 51
+2cce8 8 94 51
+2ccf0 6 94 51
+2ccf6 a 94 51
+FUNC 2cd00 12 0 google_breakpad::synth_elf::ELF::~ELF
+2cd00 2 94 51
+2cd02 6 94 51
+2cd08 6 94 51
+2cd0e 4 94 51
+FUNC 2cd12 c6 0 testing::internal::StreamableToString<int>
+2cd12 8 243 79
+2cd1a 2 244 79
+2cd1c 2 243 79
+2cd1e 6 244 79
+2cd24 6 1142 87
+2cd2a 4 131 79
+2cd2e c 181 127
+2cd3a 2 199 126
+2cd3c 10 211 126
+2cd4c 2 202 126
+2cd4e 2 145 115
+2cd50 4 202 126
+2cd54 2 145 115
+2cd56 2 202 126
+2cd58 6 145 115
+2cd5e 8 351 122
+2cd66 6 351 122
+2cd6c 2 202 126
+2cd6e 2 351 122
+2cd70 c 202 126
+2cd7c 18 57 128
+2cd94 1c 67 125
+2cdb0 6 202 126
+2cdb6 6 210 126
+2cdbc 6 212 126
+2cdc2 8 244 79
+2cdca 6 85 79
+2cdd0 8 245 79
+FUNC 2cdd8 148 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_ElfClass_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+2cdd8 e 604 85
+2cde6 2 604 85
+2cde8 2 621 85
+2cdea 6 604 85
+2cdf0 6 621 85
+2cdf6 2 604 85
+2cdf8 4 621 85
+2cdfc 6 621 85
+2ce02 6 621 85
+2ce08 4 621 85
+2ce0c 2 621 85
+2ce0e 2 621 85
+2ce10 8 621 85
+2ce18 a 621 85
+2ce22 6 621 85
+2ce28 4 621 85
+2ce2c 8 621 85
+2ce34 8 621 85
+2ce3c 8 621 85
+2ce44 4 621 85
+2ce48 8 621 85
+2ce50 4 621 85
+2ce54 6 621 85
+2ce5a 4 621 85
+2ce5e 8 621 85
+2ce66 16 85 88
+2ce7c a 621 85
+2ce86 2 612 85
+2ce88 a 484 85
+2ce92 1e 612 85
+2ceb0 36 156 137
+2cee6 3a 626 85
+FUNC 2cf20 158 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_ElfClass_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+2cf20 e 604 85
+2cf2e 2 604 85
+2cf30 2 621 85
+2cf32 6 604 85
+2cf38 6 621 85
+2cf3e 2 604 85
+2cf40 4 621 85
+2cf44 6 621 85
+2cf4a 6 621 85
+2cf50 4 621 85
+2cf54 2 621 85
+2cf56 2 621 85
+2cf58 8 621 85
+2cf60 a 621 85
+2cf6a 8 621 85
+2cf72 4 621 85
+2cf76 8 621 85
+2cf7e 8 621 85
+2cf86 8 621 85
+2cf8e 4 621 85
+2cf92 8 621 85
+2cf9a a 621 85
+2cfa4 c 621 85
+2cfb0 16 85 88
+2cfc6 a 621 85
+2cfd0 2 612 85
+2cfd2 a 484 85
+2cfdc 1e 612 85
+2cffa 36 156 137
+2d030 e 625 85
+2d03e 3a 626 85
+FUNC 2d078 148 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildID_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+2d078 e 604 85
+2d086 2 604 85
+2d088 2 621 85
+2d08a 6 604 85
+2d090 6 621 85
+2d096 2 604 85
+2d098 4 621 85
+2d09c 6 621 85
+2d0a2 6 621 85
+2d0a8 4 621 85
+2d0ac 2 621 85
+2d0ae 2 621 85
+2d0b0 8 621 85
+2d0b8 a 621 85
+2d0c2 6 621 85
+2d0c8 4 621 85
+2d0cc 8 621 85
+2d0d4 8 621 85
+2d0dc 8 621 85
+2d0e4 4 621 85
+2d0e8 8 621 85
+2d0f0 4 621 85
+2d0f4 6 621 85
+2d0fa 4 621 85
+2d0fe 8 621 85
+2d106 16 85 88
+2d11c a 621 85
+2d126 2 612 85
+2d128 a 484 85
+2d132 1e 612 85
+2d150 36 156 137
+2d186 3a 626 85
+FUNC 2d1c0 158 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildID_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+2d1c0 e 604 85
+2d1ce 2 604 85
+2d1d0 2 621 85
+2d1d2 6 604 85
+2d1d8 6 621 85
+2d1de 2 604 85
+2d1e0 4 621 85
+2d1e4 6 621 85
+2d1ea 6 621 85
+2d1f0 4 621 85
+2d1f4 2 621 85
+2d1f6 2 621 85
+2d1f8 8 621 85
+2d200 a 621 85
+2d20a 8 621 85
+2d212 4 621 85
+2d216 8 621 85
+2d21e 8 621 85
+2d226 8 621 85
+2d22e 4 621 85
+2d232 8 621 85
+2d23a a 621 85
+2d244 c 621 85
+2d250 16 85 88
+2d266 a 621 85
+2d270 2 612 85
+2d272 a 484 85
+2d27c 1e 612 85
+2d29a 36 156 137
+2d2d0 e 625 85
+2d2de 3a 626 85
+FUNC 2d318 148 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildIDPH_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+2d318 e 604 85
+2d326 2 604 85
+2d328 2 621 85
+2d32a 6 604 85
+2d330 6 621 85
+2d336 2 604 85
+2d338 4 621 85
+2d33c 6 621 85
+2d342 6 621 85
+2d348 4 621 85
+2d34c 2 621 85
+2d34e 2 621 85
+2d350 8 621 85
+2d358 a 621 85
+2d362 6 621 85
+2d368 4 621 85
+2d36c 8 621 85
+2d374 8 621 85
+2d37c 8 621 85
+2d384 4 621 85
+2d388 8 621 85
+2d390 4 621 85
+2d394 6 621 85
+2d39a 4 621 85
+2d39e 8 621 85
+2d3a6 16 85 88
+2d3bc a 621 85
+2d3c6 2 612 85
+2d3c8 a 484 85
+2d3d2 1e 612 85
+2d3f0 36 156 137
+2d426 3a 626 85
+FUNC 2d460 158 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_BuildIDPH_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+2d460 e 604 85
+2d46e 2 604 85
+2d470 2 621 85
+2d472 6 604 85
+2d478 6 621 85
+2d47e 2 604 85
+2d480 4 621 85
+2d484 6 621 85
+2d48a 6 621 85
+2d490 4 621 85
+2d494 2 621 85
+2d496 2 621 85
+2d498 8 621 85
+2d4a0 a 621 85
+2d4aa 8 621 85
+2d4b2 4 621 85
+2d4b6 8 621 85
+2d4be 8 621 85
+2d4c6 8 621 85
+2d4ce 4 621 85
+2d4d2 8 621 85
+2d4da a 621 85
+2d4e4 c 621 85
+2d4f0 16 85 88
+2d506 a 621 85
+2d510 2 612 85
+2d512 a 484 85
+2d51c 1e 612 85
+2d53a 36 156 137
+2d570 e 625 85
+2d57e 3a 626 85
+FUNC 2d5b8 148 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_UniqueHashes_Test>, testing::internal::Types1<google_breakpad::ElfClass64> >::Register
+2d5b8 e 604 85
+2d5c6 2 604 85
+2d5c8 2 621 85
+2d5ca 6 604 85
+2d5d0 6 621 85
+2d5d6 2 604 85
+2d5d8 4 621 85
+2d5dc 6 621 85
+2d5e2 6 621 85
+2d5e8 4 621 85
+2d5ec 2 621 85
+2d5ee 2 621 85
+2d5f0 8 621 85
+2d5f8 a 621 85
+2d602 6 621 85
+2d608 4 621 85
+2d60c 8 621 85
+2d614 8 621 85
+2d61c 8 621 85
+2d624 4 621 85
+2d628 8 621 85
+2d630 4 621 85
+2d634 6 621 85
+2d63a 4 621 85
+2d63e 8 621 85
+2d646 16 85 88
+2d65c a 621 85
+2d666 2 612 85
+2d668 a 484 85
+2d672 1e 612 85
+2d690 36 156 137
+2d6c6 3a 626 85
+FUNC 2d700 158 0 testing::internal::TypeParameterizedTest<FileIDTest, testing::internal::TemplateSel<FileIDTest_UniqueHashes_Test>, testing::internal::Types2<google_breakpad::ElfClass32, google_breakpad::ElfClass64> >::Register
+2d700 e 604 85
+2d70e 2 604 85
+2d710 2 621 85
+2d712 6 604 85
+2d718 6 621 85
+2d71e 2 604 85
+2d720 4 621 85
+2d724 6 621 85
+2d72a 6 621 85
+2d730 4 621 85
+2d734 2 621 85
+2d736 2 621 85
+2d738 8 621 85
+2d740 a 621 85
+2d74a 8 621 85
+2d752 4 621 85
+2d756 8 621 85
+2d75e 8 621 85
+2d766 8 621 85
+2d76e 4 621 85
+2d772 8 621 85
+2d77a a 621 85
+2d784 c 621 85
+2d790 16 85 88
+2d7a6 a 621 85
+2d7b0 2 612 85
+2d7b2 a 484 85
+2d7bc 1e 612 85
+2d7da 36 156 137
+2d810 e 625 85
+2d81e 3a 626 85
+FUNC 2d858 28 0 FileIDTest<google_breakpad::ElfClass64>::~FileIDTest
+2d858 4 107 43
+2d85c a 107 43
+2d866 4 87 144
+2d86a 2 88 144
+2d86c 6 323 106
+2d872 6 107 43
+2d878 8 107 43
+FUNC 2d880 1c 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::~FileIDTest_ElfClass_Test
+2d880 4 127 43
+2d884 18 127 43
+FUNC 2d89c 12 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::~FileIDTest_ElfClass_Test
+2d89c 2 127 43
+2d89e 6 127 43
+2d8a4 6 127 43
+2d8aa 4 127 43
+FUNC 2d8b0 1c 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildID_Test
+2d8b0 4 151 43
+2d8b4 18 151 43
+FUNC 2d8cc 12 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildID_Test
+2d8cc 2 151 43
+2d8ce 6 151 43
+2d8d4 6 151 43
+2d8da 4 151 43
+FUNC 2d8e0 1c 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildIDPH_Test
+2d8e0 4 183 43
+2d8e4 18 183 43
+FUNC 2d8fc 12 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::~FileIDTest_BuildIDPH_Test
+2d8fc 2 183 43
+2d8fe 6 183 43
+2d904 6 183 43
+2d90a 4 183 43
+FUNC 2d910 1c 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::~FileIDTest_UniqueHashes_Test
+2d910 4 220 43
+2d914 18 220 43
+FUNC 2d92c 12 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::~FileIDTest_UniqueHashes_Test
+2d92c 2 220 43
+2d92e 6 220 43
+2d934 6 220 43
+2d93a 4 220 43
+FUNC 2d940 28 0 FileIDTest<google_breakpad::ElfClass32>::~FileIDTest
+2d940 4 107 43
+2d944 a 107 43
+2d94e 4 87 144
+2d952 2 88 144
+2d954 6 323 106
+2d95a 6 107 43
+2d960 8 107 43
+FUNC 2d968 1c 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::~FileIDTest_ElfClass_Test
+2d968 4 127 43
+2d96c 18 127 43
+FUNC 2d984 12 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::~FileIDTest_ElfClass_Test
+2d984 2 127 43
+2d986 6 127 43
+2d98c 6 127 43
+2d992 4 127 43
+FUNC 2d998 1c 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildID_Test
+2d998 4 151 43
+2d99c 18 151 43
+FUNC 2d9b4 12 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildID_Test
+2d9b4 2 151 43
+2d9b6 6 151 43
+2d9bc 6 151 43
+2d9c2 4 151 43
+FUNC 2d9c8 1c 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildIDPH_Test
+2d9c8 4 183 43
+2d9cc 18 183 43
+FUNC 2d9e4 12 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::~FileIDTest_BuildIDPH_Test
+2d9e4 2 183 43
+2d9e6 6 183 43
+2d9ec 6 183 43
+2d9f2 4 183 43
+FUNC 2d9f8 1c 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::~FileIDTest_UniqueHashes_Test
+2d9f8 4 220 43
+2d9fc 18 220 43
+FUNC 2da14 12 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::~FileIDTest_UniqueHashes_Test
+2da14 2 220 43
+2da16 6 220 43
+2da1c 6 220 43
+2da22 4 220 43
+FUNC 2da28 180 0 testing::internal::CmpHelperOpFailure<unsigned int, unsigned int>
+2da28 8 1579 82
+2da30 8 1579 82
+2da38 2 1583 82
+2da3a 4 1579 82
+2da3e 2 306 82
+2da40 2 1579 82
+2da42 2 1583 82
+2da44 a 1579 82
+2da4e 4 1583 82
+2da52 6 306 82
+2da58 c 333 127
+2da64 8 306 82
+2da6c 6 85 79
+2da72 a 1583 82
+2da7c 6 306 82
+2da82 c 333 127
+2da8e 8 306 82
+2da96 6 85 79
+2da9c a 1583 82
+2daa6 6 306 82
+2daac c 333 127
+2dab8 8 306 82
+2dac0 6 85 79
+2dac6 a 1583 82
+2dad0 6 306 82
+2dad6 c 333 127
+2dae2 8 306 82
+2daea 2 1382 82
+2daec 6 85 79
+2daf2 8 1382 82
+2dafa 6 306 82
+2db00 a 131 79
+2db0a 8 306 82
+2db12 6 85 79
+2db18 6 306 82
+2db1e c 333 127
+2db2a 8 306 82
+2db32 4 1382 82
+2db36 6 85 79
+2db3c 8 1382 82
+2db44 6 306 82
+2db4a a 131 79
+2db54 8 306 82
+2db5c 6 85 79
+2db62 8 1585 82
+2db6a c 156 137
+2db76 6 256 82
+2db7c 2c 1586 82
+FUNC 2dba8 178 0 FileIDTest<google_breakpad::ElfClass32>::GetElfContents
+2dba8 e 109 43
+2dbb6 2 109 43
+2dbb8 8 110 43
+2dbc0 2 109 43
+2dbc2 2 110 43
+2dbc4 2 109 43
+2dbc6 4 110 43
+2dbca 8 111 43
+2dbd2 6 1139 87
+2dbd8 4 277 82
+2dbdc 4 1139 87
+2dbe0 2 111 43
+2dbe2 1a 111 43
+2dbfc 8 111 43
+2dc04 4 111 43
+2dc08 c 111 43
+2dc14 6 111 43
+2dc1a 8 111 43
+2dc22 6 85 79
+2dc28 6 111 43
+2dc2e 8 156 137
+2dc36 6 256 82
+2dc3c 4 400 136
+2dc40 4 112 43
+2dc44 2 400 136
+2dc46 2 112 43
+2dc48 2 1619 82
+2dc4a 8 1619 82
+2dc52 1a 1619 82
+2dc6c 6 112 43
+2dc72 2 1144 87
+2dc74 6 298 82
+2dc7a 4 298 82
+2dc7e 8 112 43
+2dc86 4 112 43
+2dc8a a 112 43
+2dc94 6 112 43
+2dc9a 8 112 43
+2dca2 6 85 79
+2dca8 6 112 43
+2dcae 12 256 82
+2dcc0 4 228 148
+2dcc4 4 630 144
+2dcc8 6 269 105
+2dcce 2 615 144
+2dcd0 c 510 144
+2dcdc 4 116 43
+2dce0 6 156 137
+2dce6 3a 117 43
+FUNC 2dba8 178 0 FileIDTest<google_breakpad::ElfClass64>::GetElfContents
+FUNC 2dd20 1c4 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass32>::TestBody
+2dd20 c 127 43
+2dd2c 4 130 43
+2dd30 2 127 43
+2dd32 2 130 43
+2dd34 6 127 43
+2dd3a 18 130 43
+2dd52 2 134 43
+2dd54 4 130 43
+2dd58 2 134 43
+2dd5a 4 130 43
+2dd5e 6 134 43
+2dd64 4 135 43
+2dd68 4 134 43
+2dd6c a 135 43
+2dd76 e 453 136
+2dd84 4 136 43
+2dd88 10 139 43
+2dd98 22 139 43
+2ddba 6 156 137
+2ddc0 6 140 43
+2ddc6 4 143 43
+2ddca 8 141 43
+2ddd2 a 143 43
+2dddc 2 1139 87
+2ddde 2 277 82
+2dde0 2 143 43
+2dde2 16 143 43
+2ddf8 a 143 43
+2de02 4 143 43
+2de06 a 143 43
+2de10 6 143 43
+2de16 8 143 43
+2de1e 6 85 79
+2de24 6 143 43
+2de2a 6 156 137
+2de30 8 256 82
+2de38 a 146 43
+2de42 16 148 43
+2de58 2 1144 87
+2de5a 6 298 82
+2de60 4 298 82
+2de64 8 148 43
+2de6c 2 148 43
+2de6e a 148 43
+2de78 6 148 43
+2de7e 8 148 43
+2de86 6 85 79
+2de8c 6 148 43
+2de92 6 256 82
+2de98 6 135 43
+2de9e 6 148 43
+2dea4 40 149 43
+FUNC 2dee4 274 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass32>::TestBody
+2dee4 12 151 43
+2def6 2 151 43
+2def8 1c 154 43
+2df14 1e 156 43
+2df32 4 157 43
+2df36 2 156 43
+2df38 2 157 43
+2df3a 2 156 43
+2df3c c 157 43
+2df48 8 164 43
+2df50 4 165 43
+2df54 6 164 43
+2df5a 8 165 43
+2df62 c 303 62
+2df6e 10 167 43
+2df7e 28 167 43
+2dfa6 6 156 137
+2dfac a 184 51
+2dfb6 2 170 43
+2dfb8 4 184 51
+2dfbc 2 170 43
+2dfbe 2 184 51
+2dfc0 6 170 43
+2dfc6 2 184 51
+2dfc8 4 170 43
+2dfcc 10 169 43
+2dfdc 6 156 137
+2dfe2 c 171 43
+2dfee 24 171 43
+2e012 6 156 137
+2e018 6 172 43
+2e01e 8 173 43
+2e026 a 175 43
+2e030 4 1139 87
+2e034 2 277 82
+2e036 2 175 43
+2e038 16 175 43
+2e04e c 175 43
+2e05a 4 175 43
+2e05e a 175 43
+2e068 6 175 43
+2e06e 8 175 43
+2e076 6 85 79
+2e07c 6 175 43
+2e082 6 156 137
+2e088 a 256 82
+2e092 a 178 43
+2e09c 16 180 43
+2e0b2 2 1144 87
+2e0b4 6 298 82
+2e0ba 4 298 82
+2e0be 8 180 43
+2e0c6 2 180 43
+2e0c8 a 180 43
+2e0d2 6 180 43
+2e0d8 8 180 43
+2e0e0 6 85 79
+2e0e6 6 180 43
+2e0ec 6 256 82
+2e0f2 6 168 43
+2e0f8 6 165 43
+2e0fe 6 180 43
+2e104 54 181 43
+FUNC 2e158 2a8 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass32>::TestBody
+2e158 10 183 43
+2e168 2 183 43
+2e16a 2 186 43
+2e16c 2 183 43
+2e16e 1a 186 43
+2e188 1e 188 43
+2e1a6 8 189 43
+2e1ae 4 188 43
+2e1b2 a 189 43
+2e1bc c 196 43
+2e1c8 4 197 43
+2e1cc 4 196 43
+2e1d0 8 197 43
+2e1d8 c 303 62
+2e1e4 10 199 43
+2e1f4 22 199 43
+2e216 6 156 137
+2e21c a 184 51
+2e226 2 202 43
+2e228 4 184 51
+2e22c 2 202 43
+2e22e 2 184 51
+2e230 6 202 43
+2e236 2 184 51
+2e238 4 202 43
+2e23c 14 201 43
+2e250 6 156 137
+2e256 c 204 43
+2e262 10 203 43
+2e272 6 156 137
+2e278 c 205 43
+2e284 22 205 43
+2e2a6 6 156 137
+2e2ac e 206 43
+2e2ba 6 207 43
+2e2c0 8 208 43
+2e2c8 e 210 43
+2e2d6 2 1139 87
+2e2d8 2 277 82
+2e2da 2 210 43
+2e2dc 16 210 43
+2e2f2 a 210 43
+2e2fc 4 210 43
+2e300 a 210 43
+2e30a 6 210 43
+2e310 8 210 43
+2e318 6 85 79
+2e31e 6 210 43
+2e324 6 156 137
+2e32a 8 256 82
+2e332 a 213 43
+2e33c 16 215 43
+2e352 2 1144 87
+2e354 6 298 82
+2e35a 4 298 82
+2e35e 8 215 43
+2e366 2 215 43
+2e368 a 215 43
+2e372 6 215 43
+2e378 8 215 43
+2e380 6 85 79
+2e386 6 215 43
+2e38c 6 256 82
+2e392 6 200 43
+2e398 6 197 43
+2e39e 6 215 43
+2e3a4 5c 216 43
+FUNC 2e400 390 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass32>::TestBody
+2e400 10 220 43
+2e410 2 220 43
+2e412 2 222 43
+2e414 2 220 43
+2e416 22 222 43
+2e438 1a 224 43
+2e452 2 229 43
+2e454 a 232 43
+2e45e 4 224 43
+2e462 2 229 43
+2e464 4 224 43
+2e468 4 230 43
+2e46c a 229 43
+2e476 8 230 43
+2e47e a 231 43
+2e488 10 232 43
+2e498 1c 232 43
+2e4b4 6 156 137
+2e4ba 8 233 43
+2e4c2 c 234 43
+2e4ce 10 235 43
+2e4de 1c 235 43
+2e4fa 6 156 137
+2e500 6 236 43
+2e506 8 237 43
+2e50e 6 233 43
+2e514 6 230 43
+2e51a 6 237 43
+2e520 a 240 43
+2e52a 2 1139 87
+2e52c 2 277 82
+2e52e 2 240 43
+2e530 16 240 43
+2e546 a 240 43
+2e550 2 240 43
+2e552 a 240 43
+2e55c 6 240 43
+2e562 8 240 43
+2e56a 6 85 79
+2e570 6 240 43
+2e576 6 156 137
+2e57c 6 256 82
+2e582 4 242 43
+2e586 4 256 82
+2e58a a 242 43
+2e594 6 246 43
+2e59a 4 247 43
+2e59e 8 246 43
+2e5a6 2 248 43
+2e5a8 8 247 43
+2e5b0 8 248 43
+2e5b8 a 249 43
+2e5c2 e 250 43
+2e5d0 28 250 43
+2e5f8 6 156 137
+2e5fe c 251 43
+2e60a c 252 43
+2e616 24 252 43
+2e63a 6 156 137
+2e640 6 253 43
+2e646 8 254 43
+2e64e 6 248 43
+2e654 6 247 43
+2e65a 6 254 43
+2e660 a 257 43
+2e66a 4 1139 87
+2e66e 2 277 82
+2e670 2 257 43
+2e672 16 257 43
+2e688 a 257 43
+2e692 2 257 43
+2e694 c 257 43
+2e6a0 6 257 43
+2e6a6 8 257 43
+2e6ae 6 85 79
+2e6b4 6 257 43
+2e6ba 6 156 137
+2e6c0 2 259 43
+2e6c2 6 256 82
+2e6c8 a 259 43
+2e6d2 4 262 43
+2e6d6 2 256 82
+2e6d8 12 262 43
+2e6ea 2 1144 87
+2e6ec 6 298 82
+2e6f2 4 298 82
+2e6f6 8 262 43
+2e6fe 2 262 43
+2e700 c 262 43
+2e70c 6 262 43
+2e712 8 262 43
+2e71a 6 85 79
+2e720 6 262 43
+2e726 6 256 82
+2e72c 64 263 43
+FUNC 2e790 1c4 0 FileIDTest_ElfClass_Test<google_breakpad::ElfClass64>::TestBody
+2e790 c 127 43
+2e79c 4 130 43
+2e7a0 2 127 43
+2e7a2 2 130 43
+2e7a4 6 127 43
+2e7aa 1c 130 43
+2e7c6 2 134 43
+2e7c8 4 130 43
+2e7cc 8 134 43
+2e7d4 4 135 43
+2e7d8 4 134 43
+2e7dc a 135 43
+2e7e6 e 453 136
+2e7f4 4 136 43
+2e7f8 10 139 43
+2e808 22 139 43
+2e82a 6 156 137
+2e830 6 140 43
+2e836 4 143 43
+2e83a 8 141 43
+2e842 a 143 43
+2e84c 2 1139 87
+2e84e 2 277 82
+2e850 2 143 43
+2e852 16 143 43
+2e868 a 143 43
+2e872 4 143 43
+2e876 a 143 43
+2e880 6 143 43
+2e886 8 143 43
+2e88e 6 85 79
+2e894 6 143 43
+2e89a 6 156 137
+2e8a0 8 256 82
+2e8a8 a 146 43
+2e8b2 16 148 43
+2e8c8 2 1144 87
+2e8ca 6 298 82
+2e8d0 4 298 82
+2e8d4 8 148 43
+2e8dc 2 148 43
+2e8de a 148 43
+2e8e8 6 148 43
+2e8ee 8 148 43
+2e8f6 6 85 79
+2e8fc 6 148 43
+2e902 6 256 82
+2e908 6 135 43
+2e90e 6 148 43
+2e914 40 149 43
+FUNC 2e954 274 0 FileIDTest_BuildID_Test<google_breakpad::ElfClass64>::TestBody
+2e954 12 151 43
+2e966 2 151 43
+2e968 1c 154 43
+2e984 1e 156 43
+2e9a2 4 157 43
+2e9a6 2 156 43
+2e9a8 2 157 43
+2e9aa 2 164 43
+2e9ac 2 156 43
+2e9ae 8 157 43
+2e9b6 4 165 43
+2e9ba 4 157 43
+2e9be c 164 43
+2e9ca 8 165 43
+2e9d2 c 303 62
+2e9de 10 167 43
+2e9ee 28 167 43
+2ea16 6 156 137
+2ea1c a 184 51
+2ea26 2 170 43
+2ea28 4 184 51
+2ea2c 2 170 43
+2ea2e 2 184 51
+2ea30 6 170 43
+2ea36 2 184 51
+2ea38 4 170 43
+2ea3c 10 169 43
+2ea4c 6 156 137
+2ea52 c 171 43
+2ea5e 24 171 43
+2ea82 6 156 137
+2ea88 6 172 43
+2ea8e 8 173 43
+2ea96 a 175 43
+2eaa0 4 1139 87
+2eaa4 2 277 82
+2eaa6 2 175 43
+2eaa8 16 175 43
+2eabe c 175 43
+2eaca 4 175 43
+2eace a 175 43
+2ead8 6 175 43
+2eade 8 175 43
+2eae6 6 85 79
+2eaec 6 175 43
+2eaf2 6 156 137
+2eaf8 a 256 82
+2eb02 a 178 43
+2eb0c 16 180 43
+2eb22 2 1144 87
+2eb24 6 298 82
+2eb2a 4 298 82
+2eb2e 8 180 43
+2eb36 2 180 43
+2eb38 a 180 43
+2eb42 6 180 43
+2eb48 8 180 43
+2eb50 6 85 79
+2eb56 6 180 43
+2eb5c 6 256 82
+2eb62 6 168 43
+2eb68 6 165 43
+2eb6e 6 180 43
+2eb74 54 181 43
+FUNC 2ebc8 2a8 0 FileIDTest_BuildIDPH_Test<google_breakpad::ElfClass64>::TestBody
+2ebc8 10 183 43
+2ebd8 2 183 43
+2ebda 2 186 43
+2ebdc 2 183 43
+2ebde 1a 186 43
+2ebf8 1e 188 43
+2ec16 8 189 43
+2ec1e 4 196 43
+2ec22 4 188 43
+2ec26 a 189 43
+2ec30 4 197 43
+2ec34 c 196 43
+2ec40 8 197 43
+2ec48 c 303 62
+2ec54 10 199 43
+2ec64 22 199 43
+2ec86 6 156 137
+2ec8c a 184 51
+2ec96 2 202 43
+2ec98 4 184 51
+2ec9c 2 202 43
+2ec9e 2 184 51
+2eca0 6 202 43
+2eca6 2 184 51
+2eca8 4 202 43
+2ecac 14 201 43
+2ecc0 6 156 137
+2ecc6 c 204 43
+2ecd2 10 203 43
+2ece2 6 156 137
+2ece8 c 205 43
+2ecf4 22 205 43
+2ed16 6 156 137
+2ed1c e 206 43
+2ed2a 6 207 43
+2ed30 8 208 43
+2ed38 e 210 43
+2ed46 2 1139 87
+2ed48 2 277 82
+2ed4a 2 210 43
+2ed4c 16 210 43
+2ed62 a 210 43
+2ed6c 4 210 43
+2ed70 a 210 43
+2ed7a 6 210 43
+2ed80 8 210 43
+2ed88 6 85 79
+2ed8e 6 210 43
+2ed94 6 156 137
+2ed9a 8 256 82
+2eda2 a 213 43
+2edac 16 215 43
+2edc2 2 1144 87
+2edc4 6 298 82
+2edca 4 298 82
+2edce 8 215 43
+2edd6 2 215 43
+2edd8 a 215 43
+2ede2 6 215 43
+2ede8 8 215 43
+2edf0 6 85 79
+2edf6 6 215 43
+2edfc 6 256 82
+2ee02 6 200 43
+2ee08 6 197 43
+2ee0e 6 215 43
+2ee14 5c 216 43
+FUNC 2ee70 390 0 FileIDTest_UniqueHashes_Test<google_breakpad::ElfClass64>::TestBody
+2ee70 10 220 43
+2ee80 2 220 43
+2ee82 2 222 43
+2ee84 2 220 43
+2ee86 22 222 43
+2eea8 1a 224 43
+2eec2 a 232 43
+2eecc 4 224 43
+2eed0 2 229 43
+2eed2 4 224 43
+2eed6 4 230 43
+2eeda c 229 43
+2eee6 8 230 43
+2eeee a 231 43
+2eef8 10 232 43
+2ef08 1c 232 43
+2ef24 6 156 137
+2ef2a 8 233 43
+2ef32 c 234 43
+2ef3e 10 235 43
+2ef4e 1c 235 43
+2ef6a 6 156 137
+2ef70 6 236 43
+2ef76 8 237 43
+2ef7e 6 233 43
+2ef84 6 230 43
+2ef8a 6 237 43
+2ef90 a 240 43
+2ef9a 2 1139 87
+2ef9c 2 277 82
+2ef9e 2 240 43
+2efa0 16 240 43
+2efb6 a 240 43
+2efc0 2 240 43
+2efc2 a 240 43
+2efcc 6 240 43
+2efd2 8 240 43
+2efda 6 85 79
+2efe0 6 240 43
+2efe6 6 156 137
+2efec 6 256 82
+2eff2 4 242 43
+2eff6 2 246 43
+2eff8 4 256 82
+2effc a 242 43
+2f006 4 247 43
+2f00a c 246 43
+2f016 2 248 43
+2f018 8 247 43
+2f020 8 248 43
+2f028 a 249 43
+2f032 e 250 43
+2f040 28 250 43
+2f068 6 156 137
+2f06e c 251 43
+2f07a c 252 43
+2f086 24 252 43
+2f0aa 6 156 137
+2f0b0 6 253 43
+2f0b6 8 254 43
+2f0be 6 248 43
+2f0c4 6 247 43
+2f0ca 6 254 43
+2f0d0 a 257 43
+2f0da 4 1139 87
+2f0de 2 277 82
+2f0e0 2 257 43
+2f0e2 16 257 43
+2f0f8 a 257 43
+2f102 2 257 43
+2f104 c 257 43
+2f110 6 257 43
+2f116 8 257 43
+2f11e 6 85 79
+2f124 6 257 43
+2f12a 6 156 137
+2f130 2 259 43
+2f132 6 256 82
+2f138 a 259 43
+2f142 4 262 43
+2f146 2 256 82
+2f148 12 262 43
+2f15a 2 1144 87
+2f15c 6 298 82
+2f162 4 298 82
+2f166 8 262 43
+2f16e 2 262 43
+2f170 c 262 43
+2f17c 6 262 43
+2f182 8 262 43
+2f18a 6 85 79
+2f190 6 262 43
+2f196 6 256 82
+2f19c 64 263 43
+FUNC 2f200 18 0 LinuxLibcSupportTest_read_decimal_ptr_Test::~LinuxLibcSupportTest_read_decimal_ptr_Test
+2f200 2 194 46
+2f202 16 194 46
+FUNC 2f218 12 0 LinuxLibcSupportTest_read_decimal_ptr_Test::~LinuxLibcSupportTest_read_decimal_ptr_Test
+2f218 2 194 46
+2f21a 6 194 46
+2f220 6 194 46
+2f226 4 194 46
+FUNC 2f22c 18 0 LinuxLibcSupportTest_read_hex_ptr_Test::~LinuxLibcSupportTest_read_hex_ptr_Test
+2f22c 2 169 46
+2f22e 16 169 46
+FUNC 2f244 12 0 LinuxLibcSupportTest_read_hex_ptr_Test::~LinuxLibcSupportTest_read_hex_ptr_Test
+2f244 2 169 46
+2f246 6 169 46
+2f24c 6 169 46
+2f252 4 169 46
+FUNC 2f258 18 0 LinuxLibcSupportTest_memchr_Test::~LinuxLibcSupportTest_memchr_Test
+2f258 2 157 46
+2f25a 16 157 46
+FUNC 2f270 12 0 LinuxLibcSupportTest_memchr_Test::~LinuxLibcSupportTest_memchr_Test
+2f270 2 157 46
+2f272 6 157 46
+2f278 6 157 46
+2f27e 4 157 46
+FUNC 2f284 18 0 LinuxLibcSupportTest_strrchr_Test::~LinuxLibcSupportTest_strrchr_Test
+2f284 2 143 46
+2f286 16 143 46
+FUNC 2f29c 12 0 LinuxLibcSupportTest_strrchr_Test::~LinuxLibcSupportTest_strrchr_Test
+2f29c 2 143 46
+2f29e 6 143 46
+2f2a4 6 143 46
+2f2aa 4 143 46
+FUNC 2f2b0 18 0 LinuxLibcSupportTest_strchr_Test::~LinuxLibcSupportTest_strchr_Test
+2f2b0 2 129 46
+2f2b2 16 129 46
+FUNC 2f2c8 12 0 LinuxLibcSupportTest_strchr_Test::~LinuxLibcSupportTest_strchr_Test
+2f2c8 2 129 46
+2f2ca 6 129 46
+2f2d0 6 129 46
+2f2d6 4 129 46
+FUNC 2f2dc 18 0 LinuxLibcSupportTest_uitos_Test::~LinuxLibcSupportTest_uitos_Test
+2f2dc 2 106 46
+2f2de 16 106 46
+FUNC 2f2f4 12 0 LinuxLibcSupportTest_uitos_Test::~LinuxLibcSupportTest_uitos_Test
+2f2f4 2 106 46
+2f2f6 6 106 46
+2f2fc 6 106 46
+2f302 4 106 46
+FUNC 2f308 18 0 LinuxLibcSupportTest_uint_len_Test::~LinuxLibcSupportTest_uint_len_Test
+2f308 2 92 46
+2f30a 16 92 46
+FUNC 2f320 12 0 LinuxLibcSupportTest_uint_len_Test::~LinuxLibcSupportTest_uint_len_Test
+2f320 2 92 46
+2f322 6 92 46
+2f328 6 92 46
+2f32e 4 92 46
+FUNC 2f334 18 0 LinuxLibcSupportTest_strtoui_Test::~LinuxLibcSupportTest_strtoui_Test
+2f334 2 71 46
+2f336 16 71 46
+FUNC 2f34c 12 0 LinuxLibcSupportTest_strtoui_Test::~LinuxLibcSupportTest_strtoui_Test
+2f34c 2 71 46
+2f34e 6 71 46
+2f354 6 71 46
+2f35a 4 71 46
+FUNC 2f360 18 0 LinuxLibcSupportTest_strcmp_Test::~LinuxLibcSupportTest_strcmp_Test
+2f360 2 46 46
+2f362 16 46 46
+FUNC 2f378 12 0 LinuxLibcSupportTest_strcmp_Test::~LinuxLibcSupportTest_strcmp_Test
+2f378 2 46 46
+2f37a 6 46 46
+2f380 6 46 46
+2f386 4 46 46
+FUNC 2f38c 18 0 LinuxLibcSupportTest_strlen_Test::~LinuxLibcSupportTest_strlen_Test
+2f38c 2 37 46
+2f38e 16 37 46
+FUNC 2f3a4 12 0 LinuxLibcSupportTest_strlen_Test::~LinuxLibcSupportTest_strlen_Test
+2f3a4 2 37 46
+2f3a6 6 37 46
+2f3ac 6 37 46
+2f3b2 4 37 46
+FUNC 2f3b8 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_decimal_ptr_Test>::CreateTest
+2f3b8 2 486 85
+2f3ba 8 486 85
+2f3c2 6 194 46
+2f3c8 2 486 85
+2f3ca 6 194 46
+2f3d0 8 486 85
+FUNC 2f3d8 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_read_hex_ptr_Test>::CreateTest
+2f3d8 2 486 85
+2f3da 8 486 85
+2f3e2 6 169 46
+2f3e8 2 486 85
+2f3ea 6 169 46
+2f3f0 8 486 85
+FUNC 2f3f8 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_memchr_Test>::CreateTest
+2f3f8 2 486 85
+2f3fa 8 486 85
+2f402 6 157 46
+2f408 2 486 85
+2f40a 6 157 46
+2f410 8 486 85
+FUNC 2f418 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strrchr_Test>::CreateTest
+2f418 2 486 85
+2f41a 8 486 85
+2f422 6 143 46
+2f428 2 486 85
+2f42a 6 143 46
+2f430 8 486 85
+FUNC 2f438 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strchr_Test>::CreateTest
+2f438 2 486 85
+2f43a 8 486 85
+2f442 6 129 46
+2f448 2 486 85
+2f44a 6 129 46
+2f450 8 486 85
+FUNC 2f458 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uitos_Test>::CreateTest
+2f458 2 486 85
+2f45a 8 486 85
+2f462 6 106 46
+2f468 2 486 85
+2f46a 6 106 46
+2f470 8 486 85
+FUNC 2f478 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_uint_len_Test>::CreateTest
+2f478 2 486 85
+2f47a 8 486 85
+2f482 6 92 46
+2f488 2 486 85
+2f48a 6 92 46
+2f490 8 486 85
+FUNC 2f498 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strtoui_Test>::CreateTest
+2f498 2 486 85
+2f49a 8 486 85
+2f4a2 6 71 46
+2f4a8 2 486 85
+2f4aa 6 71 46
+2f4b0 8 486 85
+FUNC 2f4b8 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strcmp_Test>::CreateTest
+2f4b8 2 486 85
+2f4ba 8 486 85
+2f4c2 6 46 46
+2f4c8 2 486 85
+2f4ca 6 46 46
+2f4d0 8 486 85
+FUNC 2f4d8 20 0 testing::internal::TestFactoryImpl<LinuxLibcSupportTest_strlen_Test>::CreateTest
+2f4d8 2 486 85
+2f4da 8 486 85
+2f4e2 6 37 46
+2f4e8 2 486 85
+2f4ea 6 37 46
+2f4f0 8 486 85
+FUNC 2f4f8 a4 0 LinuxLibcSupportTest_strlen_Test::TestBody
+2f4f8 6 37 46
+2f4fe 8 1512 82
+2f506 6 37 46
+2f50c 8 1512 82
+2f514 6 40 46
+2f51a 8 42 46
+2f522 6 42 46
+2f528 4 1512 82
+2f52c 2 42 46
+2f52e e 1512 82
+2f53c 8 42 46
+2f544 6 302 82
+2f54a 10 42 46
+2f55a 6 42 46
+2f560 8 42 46
+2f568 6 85 79
+2f56e 6 42 46
+2f574 e 256 82
+2f582 2 43 46
+2f584 18 44 46
+FUNC 2f59c 328 0 LinuxLibcSupportTest_uint_len_Test::TestBody
+2f59c 4 92 46
+2f5a0 2 93 46
+2f5a2 2 92 46
+2f5a4 a 93 46
+2f5ae e 1512 82
+2f5bc 2 93 46
+2f5be a 1512 82
+2f5c8 4 93 46
+2f5cc 4 1512 82
+2f5d0 8 93 46
+2f5d8 6 302 82
+2f5de e 93 46
+2f5ec 6 256 82
+2f5f2 8 94 46
+2f5fa 2 1512 82
+2f5fc 2 94 46
+2f5fe a 1512 82
+2f608 4 94 46
+2f60c 4 1512 82
+2f610 6 94 46
+2f616 6 302 82
+2f61c e 94 46
+2f62a 6 256 82
+2f630 8 95 46
+2f638 2 1512 82
+2f63a 2 95 46
+2f63c a 1512 82
+2f646 4 95 46
+2f64a 4 1512 82
+2f64e 6 95 46
+2f654 6 302 82
+2f65a e 95 46
+2f668 6 256 82
+2f66e 8 96 46
+2f676 2 1512 82
+2f678 2 96 46
+2f67a a 1512 82
+2f684 4 96 46
+2f688 4 1512 82
+2f68c 6 96 46
+2f692 6 302 82
+2f698 e 96 46
+2f6a6 6 256 82
+2f6ac c 97 46
+2f6b8 8 1512 82
+2f6c0 2 97 46
+2f6c2 a 1512 82
+2f6cc 4 97 46
+2f6d0 4 1512 82
+2f6d4 6 97 46
+2f6da 6 302 82
+2f6e0 e 97 46
+2f6ee 6 256 82
+2f6f4 8 98 46
+2f6fc 2 1512 82
+2f6fe 2 98 46
+2f700 a 1512 82
+2f70a 4 98 46
+2f70e 4 1512 82
+2f712 6 98 46
+2f718 6 302 82
+2f71e e 98 46
+2f72c 6 256 82
+2f732 c 99 46
+2f73e 8 1512 82
+2f746 2 99 46
+2f748 a 1512 82
+2f752 4 99 46
+2f756 4 1512 82
+2f75a 6 99 46
+2f760 6 302 82
+2f766 e 99 46
+2f774 6 256 82
+2f77a 8 100 46
+2f782 2 1512 82
+2f784 2 100 46
+2f786 a 1512 82
+2f790 4 100 46
+2f794 4 1512 82
+2f798 6 100 46
+2f79e 6 302 82
+2f7a4 e 100 46
+2f7b2 6 256 82
+2f7b8 c 101 46
+2f7c4 4 1512 82
+2f7c8 4 101 46
+2f7cc e 1512 82
+2f7da 6 101 46
+2f7e0 6 302 82
+2f7e6 e 101 46
+2f7f4 6 256 82
+2f7fa e 103 46
+2f808 4 1512 82
+2f80c 4 103 46
+2f810 e 1512 82
+2f81e 6 103 46
+2f824 6 302 82
+2f82a 10 103 46
+2f83a 6 103 46
+2f840 8 103 46
+2f848 6 85 79
+2f84e 6 103 46
+2f854 6 256 82
+2f85a 6a 104 46
+FUNC 2f8c4 c4 0 LinuxLibcSupportTest_strcmp_Test::TestBody
+2f8c4 4 46 46
+2f8c8 6 66 46
+2f8ce 8 1512 82
+2f8d6 4 46 46
+2f8da 4 1512 82
+2f8de 8 60 46
+2f8e6 c 62 46
+2f8f2 4 63 46
+2f8f6 4 64 46
+2f8fa 2 65 46
+2f8fc 6 62 46
+2f902 4 67 46
+2f906 2 62 46
+2f908 4 67 46
+2f90c 8 1512 82
+2f914 2 67 46
+2f916 e 1512 82
+2f924 a 67 46
+2f92e 6 302 82
+2f934 12 67 46
+2f946 6 67 46
+2f94c 8 67 46
+2f954 6 85 79
+2f95a 6 67 46
+2f960 10 256 82
+2f970 2 68 46
+2f972 16 69 46
+FUNC 2f988 558 0 LinuxLibcSupportTest_strtoui_Test::TestBody
+2f988 a 71 46
+2f992 4 71 46
+2f996 4 74 46
+2f99a 2 71 46
+2f99c 6 74 46
+2f9a2 2 71 46
+2f9a4 4 74 46
+2f9a8 4 1139 87
+2f9ac 8 74 46
+2f9b4 4 277 82
+2f9b8 a 1139 87
+2f9c2 2 74 46
+2f9c4 1e 74 46
+2f9e2 14 74 46
+2f9f6 6 256 82
+2f9fc 12 75 46
+2fa0e 4 277 82
+2fa12 4 1139 87
+2fa16 2 75 46
+2fa18 18 75 46
+2fa30 12 75 46
+2fa42 6 256 82
+2fa48 10 76 46
+2fa58 4 277 82
+2fa5c 4 1139 87
+2fa60 2 76 46
+2fa62 18 76 46
+2fa7a 12 76 46
+2fa8c 6 256 82
+2fa92 10 77 46
+2faa2 4 277 82
+2faa6 4 1139 87
+2faaa 2 77 46
+2faac 18 77 46
+2fac4 12 77 46
+2fad6 6 256 82
+2fadc 10 78 46
+2faec 4 277 82
+2faf0 4 1139 87
+2faf4 2 78 46
+2faf6 18 78 46
+2fb0e 12 78 46
+2fb20 4 80 46
+2fb24 2 256 82
+2fb26 2 80 46
+2fb28 4 256 82
+2fb2c 8 80 46
+2fb34 4 1139 87
+2fb38 4 277 82
+2fb3c 2 80 46
+2fb3e 18 80 46
+2fb56 12 80 46
+2fb68 4 1512 82
+2fb6c 2 256 82
+2fb6e 2 1512 82
+2fb70 4 256 82
+2fb74 a 1512 82
+2fb7e 4 81 46
+2fb82 4 1512 82
+2fb86 6 81 46
+2fb8c 6 302 82
+2fb92 10 81 46
+2fba2 4 82 46
+2fba6 2 256 82
+2fba8 2 82 46
+2fbaa 4 256 82
+2fbae 8 82 46
+2fbb6 4 1139 87
+2fbba 4 277 82
+2fbbe 2 82 46
+2fbc0 18 82 46
+2fbd8 12 82 46
+2fbea 6 256 82
+2fbf0 2 83 46
+2fbf2 2 1512 82
+2fbf4 2 83 46
+2fbf6 c 1512 82
+2fc02 6 83 46
+2fc08 6 302 82
+2fc0e 10 83 46
+2fc1e 6 256 82
+2fc24 a 84 46
+2fc2e 4 1139 87
+2fc32 4 277 82
+2fc36 2 84 46
+2fc38 18 84 46
+2fc50 12 84 46
+2fc62 6 256 82
+2fc68 2 85 46
+2fc6a 8 1512 82
+2fc72 2 85 46
+2fc74 e 1512 82
+2fc82 6 85 46
+2fc88 6 302 82
+2fc8e 10 85 46
+2fc9e 4 86 46
+2fca2 2 256 82
+2fca4 2 86 46
+2fca6 4 256 82
+2fcaa 8 86 46
+2fcb2 4 1139 87
+2fcb6 4 277 82
+2fcba 4 1139 87
+2fcbe 2 86 46
+2fcc0 18 86 46
+2fcd8 12 86 46
+2fcea 4 87 46
+2fcee 6 256 82
+2fcf4 a 1512 82
+2fcfe 4 87 46
+2fd02 4 1512 82
+2fd06 6 87 46
+2fd0c 6 302 82
+2fd12 10 87 46
+2fd22 6 256 82
+2fd28 a 88 46
+2fd32 4 1139 87
+2fd36 4 277 82
+2fd3a 2 88 46
+2fd3c 18 88 46
+2fd54 14 88 46
+2fd68 6 88 46
+2fd6e 8 88 46
+2fd76 6 85 79
+2fd7c 6 88 46
+2fd82 8 156 137
+2fd8a 6 256 82
+2fd90 a 1512 82
+2fd9a 4 89 46
+2fd9e 4 1512 82
+2fda2 6 89 46
+2fda8 6 302 82
+2fdae 12 89 46
+2fdc0 6 89 46
+2fdc6 8 89 46
+2fdce 6 85 79
+2fdd4 6 89 46
+2fdda 6 256 82
+2fde0 100 90 46
+FUNC 2fee0 280 0 LinuxLibcSupportTest_uitos_Test::TestBody
+2fee0 6 106 46
+2fee6 4 109 46
+2feea 4 106 46
+2feee 4 110 46
+2fef2 2 106 46
+2fef4 2 106 46
+2fef6 4 109 46
+2fefa 2 106 46
+2fefc e 109 46
+2ff0a 4 1552 82
+2ff0e 4 110 46
+2ff12 2 1552 82
+2ff14 2 110 46
+2ff16 8 1552 82
+2ff1e 2 110 46
+2ff20 a 1552 82
+2ff2a 4 110 46
+2ff2e 4 1552 82
+2ff32 a 110 46
+2ff3c 6 302 82
+2ff42 e 110 46
+2ff50 6 256 82
+2ff56 e 112 46
+2ff64 4 113 46
+2ff68 2 1552 82
+2ff6a 4 113 46
+2ff6e a 1552 82
+2ff78 4 113 46
+2ff7c 4 1552 82
+2ff80 6 113 46
+2ff86 6 302 82
+2ff8c e 113 46
+2ff9a 4 115 46
+2ff9e 6 256 82
+2ffa4 e 115 46
+2ffb2 10 116 46
+2ffc2 2 1552 82
+2ffc4 2 116 46
+2ffc6 e 1552 82
+2ffd4 6 116 46
+2ffda 6 302 82
+2ffe0 e 116 46
+2ffee 6 256 82
+2fff4 e 118 46
+30002 10 119 46
+30012 2 1552 82
+30014 2 119 46
+30016 e 1552 82
+30024 6 119 46
+3002a 6 302 82
+30030 e 119 46
+3003e 6 256 82
+30044 e 121 46
+30052 10 122 46
+30062 2 1552 82
+30064 2 122 46
+30066 e 1552 82
+30074 6 122 46
+3007a 6 302 82
+30080 e 122 46
+3008e 6 256 82
+30094 12 125 46
+300a6 10 126 46
+300b6 2 1552 82
+300b8 2 126 46
+300ba e 1552 82
+300c8 6 126 46
+300ce 6 302 82
+300d4 10 126 46
+300e4 6 126 46
+300ea 8 126 46
+300f2 6 85 79
+300f8 6 126 46
+300fe 6 256 82
+30104 5c 127 46
+FUNC 30160 7c 0 testing::internal::CmpHelperEQ<char const*, char const*>
+30160 8 1476 82
+30168 a 1476 82
+30172 2 1481 82
+30174 2 1476 82
+30176 2 1481 82
+30178 2 1476 82
+3017a 2 1481 82
+3017c 4 1476 82
+30180 2 1481 82
+30182 6 1482 82
+30188 1c 1408 82
+301a4 12 1471 82
+301b6 c 156 137
+301c2 1a 1488 82
+FUNC 301dc 338 0 LinuxLibcSupportTest_strrchr_Test::TestBody
+301dc 8 143 46
+301e4 4 144 46
+301e8 6 143 46
+301ee 2 144 46
+301f0 6 143 46
+301f6 4 144 46
+301fa 2 143 46
+301fc 4 144 46
+30200 26 1571 82
+30226 a 144 46
+30230 6 302 82
+30236 e 144 46
+30244 6 256 82
+3024a a 145 46
+30254 18 1571 82
+3026c 6 145 46
+30272 6 302 82
+30278 e 145 46
+30286 6 256 82
+3028c a 146 46
+30296 16 1571 82
+302ac 8 146 46
+302b4 6 302 82
+302ba e 146 46
+302c8 6 256 82
+302ce a 148 46
+302d8 6 277 82
+302de 4 1139 87
+302e2 4 277 82
+302e6 2 148 46
+302e8 1a 148 46
+30302 10 148 46
+30312 6 256 82
+30318 8 149 46
+30320 6 277 82
+30326 4 1139 87
+3032a 4 277 82
+3032e 2 149 46
+30330 1a 149 46
+3034a 10 149 46
+3035a 6 256 82
+30360 a 150 46
+3036a 6 277 82
+30370 4 1139 87
+30374 4 277 82
+30378 2 150 46
+3037a 1a 150 46
+30394 10 150 46
+303a4 6 256 82
+303aa a 151 46
+303b4 6 277 82
+303ba 4 1139 87
+303be 4 277 82
+303c2 2 151 46
+303c4 1a 151 46
+303de 12 151 46
+303f0 6 151 46
+303f6 8 151 46
+303fe 6 85 79
+30404 6 151 46
+3040a 8 156 137
+30412 6 256 82
+30418 e 154 46
+30426 4 1512 82
+3042a 2 154 46
+3042c e 1512 82
+3043a 6 154 46
+30440 6 302 82
+30446 10 154 46
+30456 6 154 46
+3045c 8 154 46
+30464 6 85 79
+3046a 6 154 46
+30470 6 256 82
+30476 9e 155 46
+FUNC 30514 380 0 LinuxLibcSupportTest_strchr_Test::TestBody
+30514 8 129 46
+3051c 4 130 46
+30520 6 129 46
+30526 2 130 46
+30528 6 129 46
+3052e 4 130 46
+30532 2 129 46
+30534 4 130 46
+30538 22 1571 82
+3055a c 130 46
+30566 6 302 82
+3056c e 130 46
+3057a 6 256 82
+30580 a 131 46
+3058a 16 1571 82
+305a0 6 131 46
+305a6 6 302 82
+305ac 10 131 46
+305bc 6 131 46
+305c2 8 131 46
+305ca 6 85 79
+305d0 4 131 46
+305d4 6 256 82
+305da a 132 46
+305e4 16 1571 82
+305fa 6 132 46
+30600 6 302 82
+30606 10 132 46
+30616 6 256 82
+3061c a 134 46
+30626 6 277 82
+3062c 2 1139 87
+3062e 4 277 82
+30632 2 134 46
+30634 18 134 46
+3064c 12 134 46
+3065e 6 256 82
+30664 8 135 46
+3066c 6 277 82
+30672 2 1139 87
+30674 4 277 82
+30678 2 135 46
+3067a 18 135 46
+30692 12 135 46
+306a4 6 256 82
+306aa a 136 46
+306b4 6 277 82
+306ba 2 1139 87
+306bc 4 277 82
+306c0 2 136 46
+306c2 18 136 46
+306da 12 136 46
+306ec 6 256 82
+306f2 a 137 46
+306fc 6 277 82
+30702 2 1139 87
+30704 4 277 82
+30708 2 137 46
+3070a 18 137 46
+30722 14 137 46
+30736 6 137 46
+3073c 8 137 46
+30744 6 85 79
+3074a 6 137 46
+30750 8 156 137
+30758 2 256 82
+3075a 2 140 46
+3075c 4 256 82
+30760 a 140 46
+3076a 2 1481 82
+3076c 2 140 46
+3076e 2 1481 82
+30770 8 1482 82
+30778 1c 1408 82
+30794 16 1471 82
+307aa c 156 137
+307b6 8 140 46
+307be 6 302 82
+307c4 12 140 46
+307d6 6 140 46
+307dc 8 140 46
+307e4 6 85 79
+307ea 6 140 46
+307f0 6 256 82
+307f6 9e 141 46
+FUNC 30894 64 0 testing::internal::CmpHelperEQFailure<void*, void*>
+30894 8 1464 82
+3089c 4 1464 82
+308a0 2 1382 82
+308a2 a 1464 82
+308ac 2 1382 82
+308ae 2 1464 82
+308b0 4 1382 82
+308b4 2 1464 82
+308b6 c 1382 82
+308c2 12 1471 82
+308d4 c 156 137
+308e0 18 1472 82
+FUNC 308f8 74 0 testing::internal::CmpHelperEQ<char [10], void*>
+308f8 8 1476 82
+30900 10 1476 82
+30910 4 1481 82
+30914 2 1476 82
+30916 4 1481 82
+3091a 6 1482 82
+30920 2 1408 82
+30922 2 1382 82
+30924 a 1408 82
+3092e 8 1382 82
+30936 12 1471 82
+30948 c 156 137
+30954 18 1488 82
+FUNC 3096c 78 0 testing::internal::CmpHelperEQ<char const*, void*>
+3096c 8 1476 82
+30974 c 1476 82
+30980 2 1481 82
+30982 2 1476 82
+30984 4 1481 82
+30988 2 1476 82
+3098a 2 1481 82
+3098c 2 1476 82
+3098e 2 1481 82
+30990 6 1482 82
+30996 2 1408 82
+30998 2 1382 82
+3099a a 1408 82
+309a4 8 1382 82
+309ac 12 1471 82
+309be c 156 137
+309ca 1a 1488 82
+FUNC 309e4 290 0 LinuxLibcSupportTest_memchr_Test::TestBody
+309e4 4 157 46
+309e8 2 158 46
+309ea 2 157 46
+309ec a 158 46
+309f6 a 1571 82
+30a00 2 1481 82
+30a02 8 1482 82
+30a0a 14 1487 82
+30a1e 8 158 46
+30a26 6 302 82
+30a2c 10 158 46
+30a3c 6 256 82
+30a42 c 159 46
+30a4e 6 1571 82
+30a54 2 1481 82
+30a56 8 1482 82
+30a5e 14 1487 82
+30a72 6 159 46
+30a78 6 302 82
+30a7e 10 159 46
+30a8e 6 256 82
+30a94 c 160 46
+30aa0 6 1571 82
+30aa6 2 1481 82
+30aa8 8 1482 82
+30ab0 14 1487 82
+30ac4 8 160 46
+30acc 6 302 82
+30ad2 e 160 46
+30ae0 4 163 46
+30ae4 2 256 82
+30ae6 2 163 46
+30ae8 4 256 82
+30aec a 163 46
+30af6 8 1512 82
+30afe 2 163 46
+30b00 e 1512 82
+30b0e 6 163 46
+30b14 6 302 82
+30b1a e 163 46
+30b28 6 256 82
+30b2e a 164 46
+30b38 2 1512 82
+30b3a 2 164 46
+30b3c e 1512 82
+30b4a 6 164 46
+30b50 6 302 82
+30b56 e 164 46
+30b64 6 256 82
+30b6a 10 165 46
+30b7a 4 1512 82
+30b7e 2 165 46
+30b80 e 1512 82
+30b8e 6 165 46
+30b94 6 302 82
+30b9a e 165 46
+30ba8 6 256 82
+30bae 10 166 46
+30bbe 4 1512 82
+30bc2 2 166 46
+30bc4 e 1512 82
+30bd2 6 166 46
+30bd8 6 302 82
+30bde 10 166 46
+30bee 6 166 46
+30bf4 8 166 46
+30bfc 6 85 79
+30c02 6 166 46
+30c08 6 256 82
+30c0e 66 167 46
+FUNC 30c74 48 0 testing::PrintToString<char>
+30c74 e 883 80
+30c82 2 883 80
+30c84 6 884 80
+30c8a 2 883 80
+30c8c 4 884 80
+30c90 8 394 80
+30c98 8 75 132
+30ca0 6 886 80
+30ca6 16 887 80
+FUNC 30cbc 74 0 testing::internal::CmpHelperEQ<char, int>
+30cbc 8 1476 82
+30cc4 10 1476 82
+30cd4 6 1481 82
+30cda 2 1476 82
+30cdc 4 1481 82
+30ce0 6 1482 82
+30ce6 14 1382 82
+30cfa 12 1471 82
+30d0c c 156 137
+30d18 18 1488 82
+FUNC 30d30 30c 0 LinuxLibcSupportTest_read_hex_ptr_Test::TestBody
+30d30 4 169 46
+30d34 2 173 46
+30d36 2 169 46
+30d38 a 173 46
+30d42 2 174 46
+30d44 10 1512 82
+30d54 2 174 46
+30d56 2 173 46
+30d58 e 1512 82
+30d66 8 174 46
+30d6e 6 302 82
+30d74 10 174 46
+30d84 6 256 82
+30d8a 2 175 46
+30d8c 4 1512 82
+30d90 2 175 46
+30d92 16 1512 82
+30da8 6 175 46
+30dae 6 302 82
+30db4 10 175 46
+30dc4 6 256 82
+30dca 8 177 46
+30dd2 2 178 46
+30dd4 2 177 46
+30dd6 2 178 46
+30dd8 e 1512 82
+30de6 6 178 46
+30dec 6 302 82
+30df2 10 178 46
+30e02 6 256 82
+30e08 2 179 46
+30e0a 2 1512 82
+30e0c 2 179 46
+30e0e c 1512 82
+30e1a 6 179 46
+30e20 6 302 82
+30e26 10 179 46
+30e36 6 256 82
+30e3c a 181 46
+30e46 4 182 46
+30e4a 2 1512 82
+30e4c 2 182 46
+30e4e 2 181 46
+30e50 e 1512 82
+30e5e 6 182 46
+30e64 6 302 82
+30e6a 10 182 46
+30e7a 6 256 82
+30e80 2 183 46
+30e82 2 1512 82
+30e84 2 183 46
+30e86 c 1512 82
+30e92 6 183 46
+30e98 6 302 82
+30e9e 10 183 46
+30eae 6 256 82
+30eb4 a 185 46
+30ebe 4 186 46
+30ec2 4 1512 82
+30ec6 2 186 46
+30ec8 4 1512 82
+30ecc 2 185 46
+30ece c 1512 82
+30eda 6 186 46
+30ee0 6 302 82
+30ee6 10 186 46
+30ef6 6 256 82
+30efc 2 187 46
+30efe 2 1512 82
+30f00 2 187 46
+30f02 c 1512 82
+30f0e 6 187 46
+30f14 6 302 82
+30f1a 10 187 46
+30f2a 6 256 82
+30f30 a 189 46
+30f3a 4 190 46
+30f3e 2 189 46
+30f40 2 190 46
+30f42 e 1512 82
+30f50 6 190 46
+30f56 6 302 82
+30f5c 12 190 46
+30f6e 6 190 46
+30f74 8 190 46
+30f7c 6 85 79
+30f82 4 190 46
+30f86 6 256 82
+30f8c 2 191 46
+30f8e 2 1512 82
+30f90 4 191 46
+30f94 e 1512 82
+30fa2 6 191 46
+30fa8 6 302 82
+30fae a 191 46
+30fb8 2 191 46
+30fba 8 191 46
+30fc2 6 191 46
+30fc8 8 191 46
+30fd0 6 85 79
+30fd6 6 191 46
+30fdc 6 256 82
+30fe2 5a 192 46
+FUNC 3103c 26c 0 LinuxLibcSupportTest_read_decimal_ptr_Test::TestBody
+3103c 4 194 46
+31040 4 198 46
+31044 2 194 46
+31046 c 198 46
+31052 2 199 46
+31054 c 1512 82
+31060 2 199 46
+31062 2 198 46
+31064 e 1512 82
+31072 8 199 46
+3107a 6 302 82
+31080 10 199 46
+31090 6 256 82
+31096 2 200 46
+31098 4 1512 82
+3109c 2 200 46
+3109e 10 1512 82
+310ae 6 200 46
+310b4 6 302 82
+310ba 10 200 46
+310ca 6 256 82
+310d0 a 202 46
+310da 2 203 46
+310dc 2 1512 82
+310de 2 203 46
+310e0 2 202 46
+310e2 e 1512 82
+310f0 6 203 46
+310f6 6 302 82
+310fc 10 203 46
+3110c 6 256 82
+31112 2 204 46
+31114 2 1512 82
+31116 2 204 46
+31118 c 1512 82
+31124 6 204 46
+3112a 6 302 82
+31130 10 204 46
+31140 6 256 82
+31146 a 206 46
+31150 4 207 46
+31154 4 1512 82
+31158 2 206 46
+3115a 2 1512 82
+3115c 2 207 46
+3115e e 1512 82
+3116c 6 207 46
+31172 6 302 82
+31178 10 207 46
+31188 6 256 82
+3118e 2 208 46
+31190 2 1512 82
+31192 2 208 46
+31194 c 1512 82
+311a0 6 208 46
+311a6 6 302 82
+311ac 10 208 46
+311bc 6 256 82
+311c2 a 210 46
+311cc 4 211 46
+311d0 2 210 46
+311d2 2 211 46
+311d4 e 1512 82
+311e2 6 211 46
+311e8 6 302 82
+311ee 10 211 46
+311fe 6 256 82
+31204 2 212 46
+31206 2 1512 82
+31208 4 212 46
+3120c e 1512 82
+3121a 6 212 46
+31220 6 302 82
+31226 12 212 46
+31238 6 212 46
+3123e 8 212 46
+31246 6 85 79
+3124c 6 212 46
+31252 6 256 82
+31258 50 213 46
+FUNC 312a8 2e 0 google_breakpad::test_assembler::Section::Mark
+312a8 2 439 62
+312aa 4 439 62
+312ae 4 400 136
+312b2 10 436 62
+312c2 8 439 62
+312ca 6 439 62
+312d0 6 439 62
+FUNC 312d6 3e 0 google_breakpad::synth_elf::ELF::AppendSection
+312d6 2 121 50
+312d8 2 124 50
+312da 6 121 50
+312e0 2 124 50
+312e2 6 125 50
+312e8 4 126 50
+312ec 6 127 50
+312f2 4 133 50
+312f6 4 127 50
+312fa 4 129 50
+312fe 8 130 50
+31306 2 131 50
+31308 4 133 50
+3130c 8 131 50
+FUNC 31314 d6 0 google_breakpad::synth_elf::ELF::AddSegment
+31314 4 135 50
+31318 4 135 50
+3131c 2 140 50
+3131e 4 143 50
+31322 4 140 50
+31326 2 135 50
+31328 8 143 50
+31330 6 145 50
+31336 a 147 50
+31340 6 151 50
+31346 2 150 50
+31348 2 153 50
+3134a 8 153 50
+31352 2 202 144
+31354 2 154 50
+31356 2 155 50
+31358 4 153 50
+3135c 2 155 50
+3135e 8 158 50
+31366 2 159 50
+31368 6 163 50
+3136e 4 170 50
+31372 2 202 144
+31374 c 168 50
+31380 4 170 50
+31384 2 170 50
+31386 4 170 50
+3138a 2 170 50
+3138c 4 170 50
+31390 4 170 50
+31394 4 172 50
+31398 2 172 50
+3139a 4 172 50
+3139e 2 172 50
+313a0 4 172 50
+313a4 4 172 50
+313a8 4 174 50
+313ac 8 174 50
+313b4 4 174 50
+313b8 4 176 50
+313bc 8 176 50
+313c4 6 178 50
+313ca 8 180 50
+313d2 12 184 50
+313e4 6 185 50
+FUNC 313ec 24 0 google_breakpad::synth_elf::ELF::ElfSection::~ElfSection
+313ec 4 141 51
+313f0 10 141 51
+31400 6 141 51
+31406 a 141 51
+FUNC 31410 12 0 google_breakpad::synth_elf::ELF::ElfSection::~ElfSection
+31410 2 141 51
+31412 6 141 51
+31418 6 141 51
+3141e 4 141 51
+FUNC 31424 1c 0 google_breakpad::synth_elf::SymbolTable::~SymbolTable
+31424 4 161 51
+31428 18 161 51
+FUNC 31440 12 0 google_breakpad::synth_elf::SymbolTable::~SymbolTable
+31440 2 161 51
+31442 6 161 51
+31448 6 161 51
+3144e 4 161 51
+FUNC 31452 70 0 google_breakpad::synth_elf::Notes::AddNote
+31452 4 244 50
+31456 8 244 50
+3145e a 247 50
+31468 2 244 50
+3146a 4 247 50
+3146e 4 400 136
+31472 2 528 136
+31474 2 400 136
+31476 4 248 50
+3147a 4 292 62
+3147e 4 528 136
+31482 2 249 50
+31484 4 250 50
+31488 4 528 136
+3148c a 517 136
+31496 8 453 136
+3149e a 255 50
+314a8 a 528 136
+314b2 a 257 50
+314bc 6 258 50
+FUNC 314c4 a8 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::_Impl_vector
+314c4 4 246 144
+314c8 2 246 144
+314ca 4 192 144
+314ce 2 70 144
+314d0 4 192 144
+314d4 4 342 106
+314d8 2 246 144
+314da 4 70 144
+314de 2 481 106
+314e0 2 342 106
+314e2 8 343 106
+314ea 4 343 106
+314ee 2 346 106
+314f0 6 347 106
+314f6 4 348 106
+314fa 2 352 106
+314fc 2 348 106
+314fe 4 352 106
+31502 2 356 106
+31504 4 73 144
+31508 2 71 144
+3150a 2 72 144
+3150c 4 73 144
+31510 10 86 142
+31520 4 86 142
+31524 6 139 108
+3152a 20 449 62
+3154a a 86 142
+31554 a 250 144
+3155e 2 249 144
+31560 c 250 144
+FUNC 3156c 34 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_create_node
+3156c 2 315 141
+3156e 2 306 106
+31570 2 315 141
+31572 6 306 106
+31578 6 307 106
+3157e 4 119 108
+31582 6 68 129
+31588 c 68 129
+31594 2 321 141
+31596 2 324 141
+31598 2 321 141
+3159a 2 322 141
+3159c 4 324 141
+FUNC 315a0 24 0 google_breakpad::synth_elf::SymbolTable::SymbolTable
+315a0 2 213 50
+315a2 6 213 50
+315a8 12 217 50
+315ba a 219 50
+FUNC 315c4 68 0 google_breakpad::synth_elf::ELF::ElfSection::ElfSection
+315c4 4 141 51
+315c8 2 141 51
+315ca 4 270 62
+315ce 2 141 51
+315d0 12 270 62
+315e2 c 124 148
+315ee e 270 62
+315fc 4 141 51
+31600 a 141 51
+3160a 4 141 51
+3160e a 141 51
+31618 4 141 51
+3161c 10 141 51
+FUNC 3162c 170 0 std::priv::_Impl_vector<google_breakpad::synth_elf::ELF::ElfSection, std::allocator<google_breakpad::synth_elf::ELF::ElfSection> >::_M_insert_overflow_aux
+3162c 6 81 143
+31632 4 81 143
+31636 c 192 144
+31642 4 173 144
+31646 2 81 143
+31648 8 173 144
+31650 8 41 143
+31658 a 175 144
+31662 4 176 144
+31666 6 176 144
+3166c 2 176 144
+3166e a 347 106
+31678 6 348 106
+3167e 8 352 106
+31686 4 91 143
+3168a 2 84 142
+3168c e 86 142
+3169a 4 86 142
+3169e 6 139 108
+316a4 8 139 108
+316ac 4 88 142
+316b0 4 89 142
+316b4 e 86 142
+316c2 a 93 143
+316cc 2 119 108
+316ce 8 119 108
+316d6 6 95 143
+316dc a 314 142
+316e6 8 249 142
+316ee 6 249 142
+316f4 2 139 108
+316f6 8 139 108
+316fe 8 249 142
+31706 6 98 143
+3170c 2 86 142
+3170e 2 84 142
+31710 c 86 142
+3171c 6 86 142
+31722 6 139 108
+31728 8 139 108
+31730 4 88 142
+31734 4 89 142
+31738 10 86 142
+31748 8 65 118
+31750 2 74 118
+31752 4 191 108
+31756 4 77 118
+3175a a 57 108
+31764 4 81 118
+31768 6 662 144
+3176e 2 319 106
+31770 4 323 106
+31774 6 104 143
+3177a 4 667 144
+3177e 2 668 144
+31780 6 105 143
+31786 6 346 106
+3178c 10 356 106
+FUNC 3179c 2e 0 std::priv::_Rb_global<bool>::_M_decrement
+3179c 4 279 140
+317a0 8 279 140
+317a8 4 280 140
+317ac 4 281 140
+317b0 8 99 141
+317b8 2 285 140
+317ba 6 286 140
+317c0 6 288 140
+317c6 4 293 140
+FUNC 317ca 6e 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::_M_insert
+317ca 2 358 140
+317cc 2 350 140
+317ce 8 350 140
+317d6 2 358 140
+317d8 8 359 140
+317e0 2 360 140
+317e2 2 361 140
+317e4 4 362 140
+317e8 4 364 140
+317ec 4 364 140
+317f0 a 79 111
+317fa 2 364 140
+317fc 6 367 140
+31802 2 368 140
+31804 2 369 140
+31806 2 367 140
+31808 4 369 140
+3180c 4 370 140
+31810 6 373 140
+31816 2 374 140
+31818 2 375 140
+3181a 2 373 140
+3181c 4 375 140
+31820 2 376 140
+31822 2 379 140
+31824 2 378 140
+31826 6 379 140
+3182c 2 380 140
+3182e 2 382 140
+31830 4 380 140
+31834 2 142 141
+31836 2 382 140
+FUNC 31838 78 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::insert_unique
+31838 4 405 140
+3183c 6 405 140
+31842 2 406 140
+31844 2 408 140
+31846 2 407 140
+31848 2 409 140
+3184a a 79 111
+31854 2 412 140
+31856 4 412 140
+3185a 2 412 140
+3185c 6 405 140
+31862 2 142 141
+31864 2 415 140
+31866 6 416 140
+3186c 6 417 140
+31872 8 187 141
+3187a 2 421 140
+3187c a 79 111
+31886 2 421 140
+31888 12 422 140
+3189a 4 142 141
+3189e 6 62 129
+318a4 2 142 141
+318a6 2 62 129
+318a8 8 425 140
+FUNC 318b0 174 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::insert_unique
+318b0 6 432 140
+318b6 4 434 140
+318ba 2 432 140
+318bc 2 434 140
+318be 4 432 140
+318c2 2 434 140
+318c4 4 437 140
+318c8 4 438 140
+318cc 4 143 111
+318d0 8 79 111
+318d8 4 440 140
+318dc 8 79 111
+318e4 4 447 140
+318e8 c 297 140
+318f4 a 94 141
+318fe 4 301 140
+31902 6 302 140
+31908 6 304 140
+3190e a 309 140
+31918 4 458 140
+3191c c 462 140
+31928 a 309 140
+31932 6 513 140
+31938 a 475 140
+31942 6 142 141
+31948 4 479 140
+3194c 2 480 140
+3194e a 79 111
+31958 2 480 140
+3195a e 483 140
+31968 6 486 140
+3196e 6 187 141
+31974 4 143 111
+31978 2 187 141
+3197a 8 79 111
+31982 4 494 140
+31986 a 79 111
+31990 4 494 140
+31994 8 500 140
+3199c 8 79 111
+319a4 2 517 140
+319a6 4 517 140
+319aa a 79 111
+319b4 4 517 140
+319b8 6 521 140
+319be e 522 140
+319cc 8 497 140
+319d4 4 498 140
+319d8 e 524 140
+319e6 4 142 141
+319ea c 297 140
+319f6 c 94 141
+31a02 4 301 140
+31a06 6 302 140
+31a0c 6 304 140
+31a12 a 524 140
+31a1c 8 534 140
+FUNC 31a24 ac 0 std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, google_breakpad::test_assembler::Label> > >::operator[]<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+31a24 e 175 123
+31a32 4 568 141
+31a36 6 175 123
+31a3c 2 175 123
+31a3e 2 571 141
+31a40 a 79 111
+31a4a 2 572 141
+31a4c 4 573 141
+31a50 a 575 141
+31a5a 2 178 123
+31a5c 2 142 141
+31a5e 2 178 123
+31a60 a 79 111
+31a6a 2 178 123
+31a6c 12 181 123
+31a7e 2 179 123
+31a80 4 62 129
+31a84 6 179 123
+31a8a 4 62 129
+31a8e 4 62 129
+31a92 4 62 129
+31a96 8 62 129
+31a9e 8 191 123
+31aa6 2 142 141
+31aa8 4 191 123
+31aac 2 179 123
+31aae 2 51 129
+31ab0 2 179 123
+31ab2 4 51 129
+31ab6 6 156 137
+31abc 8 179 123
+31ac4 c 181 123
+FUNC 31ad0 a4 0 google_breakpad::synth_elf::StringTable::Add
+31ad0 4 75 51
+31ad4 4 549 141
+31ad8 6 75 51
+31ade 4 549 141
+31ae2 2 552 141
+31ae4 a 79 111
+31aee 2 553 141
+31af0 4 554 141
+31af4 a 556 141
+31afe 4 558 141
+31b02 a 79 111
+31b0c 6 559 141
+31b12 4 76 51
+31b16 a 77 51
+31b20 6 77 51
+31b26 2 77 51
+31b28 4 400 136
+31b2c c 436 62
+31b38 2 296 62
+31b3a 4 436 62
+31b3e a 517 136
+31b48 8 453 136
+31b50 8 81 51
+31b58 6 81 51
+31b5e 8 82 51
+31b66 6 82 51
+31b6c 8 83 51
+FUNC 31b74 58 0 google_breakpad::synth_elf::SymbolTable::AddSymbol
+31b74 2 222 50
+31b76 8 222 50
+31b7e c 224 50
+31b8a 8 224 50
+31b92 6 224 50
+31b98 8 225 50
+31ba0 4 357 62
+31ba4 8 226 50
+31bac 12 453 136
+31bbe a 229 50
+31bc8 4 230 50
+FUNC 31bcc 5c 0 google_breakpad::synth_elf::SymbolTable::AddSymbol
+31bcc 2 233 50
+31bce 8 233 50
+31bd6 c 235 50
+31be2 8 235 50
+31bea 2 235 50
+31bec 4 357 62
+31bf0 4 235 50
+31bf4 12 453 136
+31c06 a 238 50
+31c10 a 239 50
+31c1a a 240 50
+31c24 4 241 50
+FUNC 31c28 18c 0 google_breakpad::synth_elf::ELF::AddSection
+31c28 12 86 50
+31c3a 4 86 50
+31c3e 2 87 50
+31c40 4 86 50
+31c44 2 87 50
+31c46 a 86 50
+31c50 4 87 50
+31c54 2 88 50
+31c56 4 100 50
+31c5a e 88 50
+31c68 4 400 136
+31c6c 2 96 50
+31c6e 4 400 136
+31c72 2 91 50
+31c74 4 96 50
+31c78 2 91 50
+31c7a 4 92 50
+31c7e 4 96 50
+31c82 6 98 50
+31c88 2 100 50
+31c8a 2 100 50
+31c8c 4 100 50
+31c90 6 100 50
+31c96 e 102 50
+31ca4 a 104 50
+31cae 2 106 50
+31cb0 2 106 50
+31cb2 4 106 50
+31cb6 6 106 50
+31cbc 6 108 50
+31cc2 6 110 50
+31cc8 10 112 50
+31cd8 a 114 50
+31ce2 4 117 50
+31ce6 6 114 50
+31cec a 117 50
+31cf6 16 270 62
+31d0c a 124 148
+31d16 c 270 62
+31d22 2 145 51
+31d24 8 145 51
+31d2c 2 117 50
+31d2e 2 145 51
+31d30 4 117 50
+31d34 4 145 51
+31d38 2 117 50
+31d3a 4 145 51
+31d3e 2 145 51
+31d40 4 380 144
+31d44 2 145 51
+31d46 4 380 144
+31d4a 4 270 62
+31d4e 4 380 144
+31d52 2 119 108
+31d54 8 119 108
+31d5c c 382 144
+31d68 12 162 144
+31d7a 6 117 50
+31d80 6 117 50
+31d86 6 88 50
+31d8c 6 118 50
+31d92 22 119 50
+FUNC 31db4 dc 0 google_breakpad::synth_elf::ELF::Finish
+31db4 6 187 50
+31dba 2 189 50
+31dbc 8 187 50
+31dc4 4 187 50
+31dc8 8 189 50
+31dd0 e 191 50
+31dde 28 191 50
+31e06 6 156 137
+31e0c a 194 50
+31e16 6 195 50
+31e1c c 196 50
+31e28 e 198 50
+31e36 8 201 50
+31e3e 8 203 50
+31e46 4 201 50
+31e4a c 205 50
+31e56 c 206 50
+31e62 a 209 50
+31e6c a 210 50
+31e76 1a 211 50
+FUNC 31e90 30c 0 google_breakpad::synth_elf::ELF::ELF
+31e90 e 14 50
+31e9e 4 14 50
+31ea2 2 23 50
+31ea4 6 14 50
+31eaa 6 23 50
+31eb0 4 23 50
+31eb4 a 23 50
+31ebe 8 23 50
+31ec6 8 23 50
+31ece 2 23 50
+31ed0 2 23 50
+31ed2 4 23 50
+31ed6 4 23 50
+31eda 2 23 50
+31edc 4 23 50
+31ee0 4 23 50
+31ee4 a 23 50
+31eee 4 23 50
+31ef2 2 23 50
+31ef4 2 23 50
+31ef6 4 23 50
+31efa 4 23 50
+31efe 2 23 50
+31f00 4 23 50
+31f04 4 23 50
+31f08 a 23 50
+31f12 4 23 50
+31f16 2 23 50
+31f18 6 23 50
+31f1e 4 23 50
+31f22 18 67 51
+31f3a 2 250 141
+31f3c 6 67 51
+31f42 10 250 141
+31f52 8 481 106
+31f5a 2 432 62
+31f5c 4 481 106
+31f60 4 266 141
+31f64 4 267 141
+31f68 4 432 62
+31f6c 4 263 141
+31f70 4 265 141
+31f74 4 391 141
+31f78 6 432 62
+31f7e a 68 51
+31f88 6 68 51
+31f8e 10 69 51
+31f9e a 69 51
+31fa8 8 69 51
+31fb0 6 69 51
+31fb6 6 156 137
+31fbc 4 432 62
+31fc0 8 67 144
+31fc8 4 481 106
+31fcc 6 432 62
+31fd2 a 30 50
+31fdc 4 357 62
+31fe0 6 30 50
+31fe6 28 453 136
+3200e 2 41 50
+32010 24 453 136
+32034 4 182 135
+32038 6 400 136
+3203e 6 182 135
+32044 8 600 135
+3204c 2 74 137
+3204e 4 74 137
+32052 6 74 137
+32058 2 74 137
+3205a 4 184 135
+3205e a 185 135
+32068 6 185 135
+3206e 2 186 135
+32070 c 249 142
+3207c 8 249 142
+32084 6 146 108
+3208a 8 59 50
+32092 2 187 135
+32094 2 53 50
+32096 4 101 108
+3209a 2 53 50
+3209c 2 232 145
+3209e 6 189 135
+320a4 4 53 50
+320a8 8 55 50
+320b0 8 57 50
+320b8 e 59 50
+320c6 c 61 50
+320d2 c 63 50
+320de 8 65 50
+320e6 2 67 50
+320e8 2 67 50
+320ea 2 67 50
+320ec a 67 50
+320f6 2 69 50
+320f8 2 69 50
+320fa 2 69 50
+320fc a 69 50
+32106 8 71 50
+3210e 2 73 50
+32110 2 73 50
+32112 2 73 50
+32114 a 73 50
+3211e 8 75 50
+32126 8 77 50
+3212e 8 80 50
+32136 e 81 50
+32144 1c 81 50
+32160 6 156 137
+32166 6 81 50
+3216c 30 82 50
+FUNC 3219c 40 0 pthread_barrier_wait
+3219c 2 62 36
+3219e 2 62 36
+321a0 4 64 36
+321a4 a 67 36
+321ae 6 69 36
+321b4 6 70 36
+321ba 4 71 36
+321be 8 76 36
+321c6 6 75 36
+321cc 6 79 36
+321d2 2 80 36
+321d4 8 81 36
+FUNC 321dc 3c 0 thread_function
+321dc 2 81 53
+321de 2 81 53
+321e0 6 70 53
+321e6 2 83 53
+321e8 6 84 53
+321ee 6 85 53
+321f4 2 86 53
+321f6 6 86 53
+321fc 8 87 53
+32204 6 88 53
+3220a e 93 36
+FUNC 32218 5c 0 google_breakpad::CrashGenerator::HasDefaultCorePattern
+32218 6 108 53
+3221e 6 108 53
+32224 2 111 53
+32226 2 108 53
+32228 2 110 53
+3222a 8 111 53
+32232 2 110 53
+32234 4 111 53
+32238 2 112 53
+3223a 6 111 53
+32240 14 112 53
+32254 2 112 53
+32256 1e 113 53
+FUNC 32274 8 0 google_breakpad::CrashGenerator::GetThreadId
+32274 2 124 53
+32276 6 125 53
+FUNC 3227c 8 0 google_breakpad::CrashGenerator::GetThreadIdPointer
+3227c 2 128 53
+3227e 6 129 53
+FUNC 32284 2c 0 google_breakpad::CrashGenerator::UnmapSharedMemory
+32284 2 148 53
+32286 2 148 53
+32288 4 149 53
+3228c 8 152 53
+32294 2 153 53
+32296 4 154 53
+3229a 8 158 53
+322a2 4 159 53
+322a6 2 150 53
+322a8 8 160 53
+FUNC 322b0 54 0 google_breakpad::CrashGenerator::MapSharedMemory
+322b0 4 131 53
+322b4 4 131 53
+322b8 8 132 53
+322c0 16 136 53
+322d6 4 137 53
+322da 2 136 53
+322dc 2 137 53
+322de 2 138 53
+322e0 2 139 53
+322e2 8 138 53
+322ea 8 142 53
+322f2 4 143 53
+322f6 2 144 53
+322f8 c 146 53
+FUNC 32304 2c 0 google_breakpad::CrashGenerator::SetCoreFileSizeLimit
+32304 2 162 53
+32306 2 164 53
+32308 4 163 53
+3230c a 164 53
+32316 8 165 53
+3231e 4 166 53
+32322 2 168 53
+32324 c 169 53
+FUNC 32330 b4 0 google_breakpad::CrashGenerator::CopyProcFiles
+32330 a 256 53
+3233a 2 258 53
+3233c 6 256 53
+32342 6 256 53
+32348 2 260 53
+3234a 2 256 53
+3234c 4 260 53
+32350 4 256 53
+32354 4 265 53
+32358 2 256 53
+3235a 2 260 53
+3235c 2 256 53
+3235e 4 260 53
+32362 2 265 53
+32364 18 260 53
+3237c 6 261 53
+32382 4 262 53
+32386 16 265 53
+3239c 6 266 53
+323a2 c 269 53
+323ae 2 258 53
+323b0 4 258 53
+323b4 30 273 53
+FUNC 323e4 114 0 google_breakpad::CrashGenerator::CreateThreadsInChildProcess
+323e4 8 275 53
+323ec 2 128 53
+323ee 2 275 53
+323f0 4 276 53
+323f4 4 275 53
+323f8 2 278 53
+323fa 2 275 53
+323fc 2 276 53
+323fe 2 278 53
+32400 4 283 53
+32404 4 283 53
+32408 4 283 53
+3240c 2 283 53
+3240e 4 283 53
+32412 4 288 53
+32416 2 283 53
+32418 8 288 53
+32420 8 290 53
+32428 4 288 53
+3242c a 291 53
+32436 6 313 53
+3243c 6 314 53
+32442 2 58 36
+32444 6 57 36
+3244a 2 56 36
+3244c 4 57 36
+32450 c 58 36
+3245c a 305 53
+32466 2 302 53
+32468 4 128 53
+3246c 2 305 53
+3246e 4 128 53
+32472 2 303 53
+32474 a 305 53
+3247e 2 304 53
+32480 14 306 53
+32494 2 301 53
+32496 8 301 53
+3249e 6 311 53
+324a4 2 312 53
+324a6 6 312 53
+324ac c 313 53
+324b8 2 84 36
+324ba 2 85 36
+324bc 2 84 36
+324be 4 85 36
+324c2 6 86 36
+324c8 6 318 53
+324ce 6 319 53
+324d4 24 320 53
+FUNC 324f8 22 0 testing::internal::scoped_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset
+324f8 2 1152 87
+324fa 2 1153 87
+324fc 2 1152 87
+324fe 2 1153 87
+32500 2 1152 87
+32502 2 1153 87
+32504 8 1154 87
+3250c 4 1155 87
+32510 6 1155 87
+32516 4 1157 87
+FUNC 3251a 12 0 google_breakpad::CrashGenerator::CrashGenerator
+3251a 2 99 53
+3251c 2 99 53
+3251e a 101 53
+32528 4 102 53
+FUNC 3252c 1a 0 google_breakpad::CrashGenerator::~CrashGenerator
+3252c 2 104 53
+3252e 2 104 53
+32530 4 105 53
+32534 8 61 63
+3253c 6 156 137
+32542 4 106 53
+FUNC 32548 14 0 google_breakpad::CrashGenerator::GetCoreFilePath
+32548 2 115 53
+3254a 2 115 53
+3254c 8 116 53
+32554 8 117 53
+FUNC 3255c 14 0 google_breakpad::CrashGenerator::GetDirectoryOfProcFilesCopy
+3255c 2 119 53
+3255e 2 119 53
+32560 8 120 53
+32568 8 121 53
+FUNC 32570 1c4 0 google_breakpad::CrashGenerator::CreateChildCrash
+32570 14 173 53
+32584 8 173 53
+3258c 6 174 53
+32592 4 174 53
+32596 14 176 53
+325aa a 180 53
+325b4 8 181 53
+325bc 2 182 53
+325be 4 185 53
+325c2 6 186 53
+325c8 6 187 53
+325ce 4 187 53
+325d2 6 188 53
+325d8 e 191 53
+325e6 4 192 53
+325ea 2 193 53
+325ec 4 192 53
+325f0 8 193 53
+325f8 a 194 53
+32602 4 194 53
+32606 8 195 53
+3260e 6 196 53
+32614 4 198 53
+32618 2 198 53
+3261a 2 198 53
+3261c 6 198 53
+32622 2 198 53
+32624 10 199 53
+32634 2 128 53
+32636 2 215 53
+32638 4 128 53
+3263c 2 215 53
+3263e 2 214 53
+32640 c 75 53
+3264c 4 214 53
+32650 8 215 53
+32658 6 226 53
+3265e 4 213 53
+32662 8 156 137
+3266a 6 230 53
+32670 4 233 53
+32674 6 234 53
+3267a 10 239 53
+3268a 4 239 53
+3268e 6 239 53
+32694 6 240 53
+3269a 10 243 53
+326aa 4 243 53
+326ae 4 247 53
+326b2 14 247 53
+326c6 4 248 53
+326ca 6 251 53
+326d0 4 252 53
+326d4 10 254 53
+326e4 6 240 53
+326ea 6 247 53
+326f0 44 254 53
+FUNC 32734 18 0 WastefulVectorTest_UsesPageAllocator_Test::~WastefulVectorTest_UsesPageAllocator_Test
+32734 2 91 56
+32736 16 91 56
+FUNC 3274c 12 0 WastefulVectorTest_UsesPageAllocator_Test::~WastefulVectorTest_UsesPageAllocator_Test
+3274c 2 91 56
+3274e 6 91 56
+32754 6 91 56
+3275a 4 91 56
+FUNC 32760 18 0 WastefulVectorTest_Simple_Test::~WastefulVectorTest_Simple_Test
+32760 2 76 56
+32762 16 76 56
+FUNC 32778 12 0 WastefulVectorTest_Simple_Test::~WastefulVectorTest_Simple_Test
+32778 2 76 56
+3277a 6 76 56
+32780 6 76 56
+32786 4 76 56
+FUNC 3278c 18 0 WastefulVectorTest_Setup_Test::~WastefulVectorTest_Setup_Test
+3278c 2 69 56
+3278e 16 69 56
+FUNC 327a4 12 0 WastefulVectorTest_Setup_Test::~WastefulVectorTest_Setup_Test
+327a4 2 69 56
+327a6 6 69 56
+327ac 6 69 56
+327b2 4 69 56
+FUNC 327b8 18 0 PageAllocatorTest_LargeObject_Test::~PageAllocatorTest_LargeObject_Test
+327b8 2 53 56
+327ba 16 53 56
+FUNC 327d0 12 0 PageAllocatorTest_LargeObject_Test::~PageAllocatorTest_LargeObject_Test
+327d0 2 53 56
+327d2 6 53 56
+327d8 6 53 56
+327de 4 53 56
+FUNC 327e4 18 0 PageAllocatorTest_SmallObjects_Test::~PageAllocatorTest_SmallObjects_Test
+327e4 2 43 56
+327e6 16 43 56
+FUNC 327fc 12 0 PageAllocatorTest_SmallObjects_Test::~PageAllocatorTest_SmallObjects_Test
+327fc 2 43 56
+327fe 6 43 56
+32804 6 43 56
+3280a 4 43 56
+FUNC 32810 18 0 PageAllocatorTest_Setup_Test::~PageAllocatorTest_Setup_Test
+32810 2 39 56
+32812 16 39 56
+FUNC 32828 12 0 PageAllocatorTest_Setup_Test::~PageAllocatorTest_Setup_Test
+32828 2 39 56
+3282a 6 39 56
+32830 6 39 56
+32836 4 39 56
+FUNC 3283c 20 0 testing::internal::TestFactoryImpl<WastefulVectorTest_UsesPageAllocator_Test>::CreateTest
+3283c 2 486 85
+3283e 8 486 85
+32846 6 91 56
+3284c 2 486 85
+3284e 6 91 56
+32854 8 486 85
+FUNC 3285c 20 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Simple_Test>::CreateTest
+3285c 2 486 85
+3285e 8 486 85
+32866 6 76 56
+3286c 2 486 85
+3286e 6 76 56
+32874 8 486 85
+FUNC 3287c 20 0 testing::internal::TestFactoryImpl<WastefulVectorTest_Setup_Test>::CreateTest
+3287c 2 486 85
+3287e 8 486 85
+32886 6 69 56
+3288c 2 486 85
+3288e 6 69 56
+32894 8 486 85
+FUNC 3289c 20 0 testing::internal::TestFactoryImpl<PageAllocatorTest_LargeObject_Test>::CreateTest
+3289c 2 486 85
+3289e 8 486 85
+328a6 6 53 56
+328ac 2 486 85
+328ae 6 53 56
+328b4 8 486 85
+FUNC 328bc 20 0 testing::internal::TestFactoryImpl<PageAllocatorTest_SmallObjects_Test>::CreateTest
+328bc 2 486 85
+328be 8 486 85
+328c6 6 43 56
+328cc 2 486 85
+328ce 6 43 56
+328d4 8 486 85
+FUNC 328dc 20 0 testing::internal::TestFactoryImpl<PageAllocatorTest_Setup_Test>::CreateTest
+328dc 2 486 85
+328de 8 486 85
+328e6 6 39 56
+328ec 2 486 85
+328ee 6 39 56
+328f4 8 486 85
+FUNC 328fc a2 0 google_breakpad::PageAllocator::Alloc
+328fc 4 74 54
+32900 2 74 54
+32902 2 75 54
+32904 6 76 54
+3290a 6 78 54
+32910 8 78 54
+32918 2 79 54
+3291a 2 80 54
+3291c 2 81 54
+3291e 4 82 54
+32922 2 80 54
+32924 2 82 54
+32926 2 83 54
+32928 6 86 54
+3292e 10 90 54
+3293e 2 3454 97
+32940 4 122 54
+32944 1c 3454 97
+32960 4 3454 97
+32964 6 3454 97
+3296a 4 124 54
+3296e 2 134 54
+32970 4 135 54
+32974 2 96 54
+32976 2 136 54
+32978 10 96 54
+32988 2 97 54
+3298a 2 98 54
+3298c 8 98 54
+32994 2 98 54
+32996 4 100 54
+3299a 4 101 54
+FUNC 3299e 30 0 google_breakpad::PageAllocator::FreeAll
+3299e 2 141 54
+329a0 2 141 54
+329a2 2 144 54
+329a4 2 144 54
+329a6 4 146 54
+329aa 2 145 54
+329ac 14 3074 97
+329c0 4 3074 97
+329c4 4 3074 97
+329c8 4 141 54
+329cc 2 148 54
+FUNC 329d0 24 0 PageAllocatorTest_Setup_Test::TestBody
+329d0 4 39 56
+329d4 2 71 54
+329d6 4 176 102
+329da c 67 54
+329e6 4 71 54
+329ea a 41 56
+FUNC 329f4 e8 0 PageAllocatorTest_SmallObjects_Test::TestBody
+329f4 e 43 56
+32a02 4 43 56
+32a06 2 46 56
+32a08 4 176 102
+32a0c 8 67 54
+32a14 2 1139 87
+32a16 6 67 54
+32a1c e 47 56
+32a2a 8 48 56
+32a32 4 277 82
+32a36 2 1139 87
+32a38 2 48 56
+32a3a 18 48 56
+32a52 8 48 56
+32a5a 4 48 56
+32a5e c 48 56
+32a6a 6 48 56
+32a70 8 48 56
+32a78 6 85 79
+32a7e 6 48 56
+32a84 6 156 137
+32a8a e 256 82
+32a98 6 49 56
+32a9e 2 46 56
+32aa0 4 49 56
+32aa4 6 46 56
+32aaa 6 71 54
+32ab0 2c 51 56
+FUNC 32adc 13c 0 PageAllocatorTest_LargeObject_Test::TestBody
+32adc 8 53 56
+32ae4 6 53 56
+32aea 2 67 54
+32aec 4 53 56
+32af0 4 56 56
+32af4 4 176 102
+32af8 2 67 54
+32afa 6 56 56
+32b00 8 67 54
+32b08 4 56 56
+32b0c 6 57 56
+32b12 2 1139 87
+32b14 4 277 82
+32b18 4 1139 87
+32b1c 2 57 56
+32b1e 18 57 56
+32b36 12 57 56
+32b48 6 256 82
+32b4e 2 58 56
+32b50 8 59 56
+32b58 8 60 56
+32b60 4 277 82
+32b64 2 1139 87
+32b66 2 60 56
+32b68 18 60 56
+32b80 10 60 56
+32b90 4 60 56
+32b94 4 60 56
+32b98 6 60 56
+32b9e 8 60 56
+32ba6 6 85 79
+32bac 6 60 56
+32bb2 6 156 137
+32bb8 e 256 82
+32bc6 6 61 56
+32bcc 2 58 56
+32bce 4 61 56
+32bd2 4 58 56
+32bd6 6 71 54
+32bdc 3c 63 56
+FUNC 32c18 72 0 std::priv::_Impl_vector<unsigned int, google_breakpad::PageStdAllocator<unsigned int> >::push_back
+32c18 4 376 144
+32c1c 4 380 144
+32c20 2 376 144
+32c22 2 380 144
+32c24 2 376 144
+32c26 4 380 144
+32c2a 2 126 108
+32c2c a 382 144
+32c36 6 192 144
+32c3c 8 175 144
+32c44 6 176 144
+32c4a 2 176 144
+32c4c c 177 144
+32c58 a 172 54
+32c62 2 112 143
+32c64 2 172 54
+32c66 4 224 105
+32c6a 6 224 105
+32c70 2 224 105
+32c72 4 481 105
+32c76 4 118 143
+32c7a 4 481 105
+32c7e 2 667 144
+32c80 4 666 144
+32c84 6 668 144
+FUNC 32c8c 2c 0 testing::internal::DefaultPrintTo<unsigned int>
+32c8c 2 307 80
+32c8e 2 307 80
+32c90 4 310 80
+32c94 4 334 80
+32c98 a 333 127
+32ca2 6 318 80
+32ca8 4 291 126
+32cac 4 334 80
+32cb0 8 291 126
+FUNC 32cb8 ac 0 WastefulVectorTest_Setup_Test::TestBody
+32cb8 4 69 56
+32cbc 4 176 102
+32cc0 2 67 54
+32cc2 2 69 56
+32cc4 2 67 54
+32cc6 6 172 54
+32ccc 8 67 54
+32cd4 4 172 54
+32cd8 2 277 82
+32cda 4 256 82
+32cde 4 277 82
+32ce2 2 1139 87
+32ce4 4 256 82
+32ce8 4 1512 82
+32cec 4 73 56
+32cf0 12 1512 82
+32d02 6 73 56
+32d08 2 1144 87
+32d0a 6 298 82
+32d10 4 298 82
+32d14 10 73 56
+32d24 6 73 56
+32d2a 8 73 56
+32d32 6 85 79
+32d38 6 73 56
+32d3e 6 256 82
+32d44 6 71 54
+32d4a 1a 74 56
+FUNC 32d64 5c 0 std::priv::_Impl_vector<unsigned int, google_breakpad::PageStdAllocator<unsigned int> >::reserve
+32d64 4 62 143
+32d68 4 199 144
+32d6c 2 62 143
+32d6e 2 199 144
+32d70 6 63 143
+32d76 6 64 143
+32d7c 8 41 143
+32d84 a 192 144
+32d8e 4 172 54
+32d92 2 70 143
+32d94 6 172 54
+32d9a c 120 142
+32da6 6 172 54
+32dac 6 76 143
+32db2 2 666 144
+32db4 2 667 144
+32db6 a 668 144
+FUNC 32dc0 32c 0 WastefulVectorTest_Simple_Test::TestBody
+32dc0 8 76 56
+32dc8 6 76 56
+32dce 2 67 54
+32dd0 4 76 56
+32dd4 4 153 148
+32dd8 4 176 102
+32ddc 2 67 54
+32dde 4 163 54
+32de2 4 153 148
+32de6 8 67 54
+32dee 4 67 144
+32df2 4 163 54
+32df6 2 481 106
+32df8 4 153 148
+32dfc 2 1512 82
+32dfe 2 80 56
+32e00 6 1512 82
+32e06 2 80 56
+32e08 4 1512 82
+32e0c e 1471 82
+32e1a c 80 56
+32e26 8 173 148
+32e2e 2 207 144
+32e30 2 1512 82
+32e32 2 207 144
+32e34 c 1512 82
+32e40 6 82 56
+32e46 2 1144 87
+32e48 6 298 82
+32e4e 4 298 82
+32e52 10 82 56
+32e62 6 256 82
+32e68 2 207 144
+32e6a 4 202 144
+32e6e 2 207 144
+32e70 4 202 144
+32e74 4 1481 82
+32e78 8 1482 82
+32e80 c 884 80
+32e8c 6 380 80
+32e92 2 75 132
+32e94 6 380 80
+32e9a c 75 132
+32ea6 6 886 80
+32eac 8 884 80
+32eb4 4 380 80
+32eb8 4 75 132
+32ebc 4 380 80
+32ec0 8 75 132
+32ec8 6 886 80
+32ece 14 1471 82
+32ee2 c 156 137
+32eee 6 83 56
+32ef4 2 1144 87
+32ef6 6 298 82
+32efc 4 298 82
+32f00 e 83 56
+32f0e 2 83 56
+32f10 4 83 56
+32f14 6 83 56
+32f1a 8 83 56
+32f22 6 85 79
+32f28 6 83 56
+32f2e e 256 82
+32f3c 8 80 56
+32f44 4 85 56
+32f48 4 1139 87
+32f4c 6 85 56
+32f52 4 1139 87
+32f56 6 277 82
+32f5c 2 85 56
+32f5e 18 85 56
+32f76 4 85 56
+32f7a 2 85 56
+32f7c e 85 56
+32f8a 6 85 56
+32f90 8 85 56
+32f98 6 85 79
+32f9e 6 85 56
+32fa4 8 156 137
+32fac 6 256 82
+32fb2 4 192 144
+32fb6 4 86 56
+32fba 4 192 144
+32fbe 6 86 56
+32fc4 4 1512 82
+32fc8 4 86 56
+32fcc 10 1512 82
+32fdc 6 86 56
+32fe2 2 1144 87
+32fe4 6 298 82
+32fea 4 298 82
+32fee e 86 56
+32ffc 6 256 82
+33002 4 1512 82
+33006 4 87 56
+3300a 8 1512 82
+33012 2 87 56
+33014 6 256 82
+3301a 6 87 56
+33020 a 87 56
+3302a 12 1512 82
+3303c 8 88 56
+33044 2 1144 87
+33046 4 298 82
+3304a 10 88 56
+3305a 6 88 56
+33060 8 88 56
+33068 6 85 79
+3306e 4 88 56
+33072 6 298 82
+33078 6 71 54
+3307e 6e 89 56
+FUNC 330ec fc 0 WastefulVectorTest_UsesPageAllocator_Test::TestBody
+330ec 8 91 56
+330f4 6 91 56
+330fa 2 153 148
+330fc 4 91 56
+33100 2 153 148
+33102 4 176 102
+33106 2 67 54
+33108 2 153 148
+3310a 4 67 54
+3310e 2 163 54
+33110 6 67 54
+33116 4 67 144
+3311a 2 481 106
+3311c 2 163 54
+3311e 4 153 148
+33122 a 95 56
+3312c a 173 148
+33136 2 106 54
+33138 2 108 54
+3313a 2 106 54
+3313c 4 108 54
+33140 a 108 54
+3314a 4 106 54
+3314e 2 109 54
+33150 4 1139 87
+33154 4 277 82
+33158 4 1139 87
+3315c 2 96 56
+3315e 18 96 56
+33176 a 96 56
+33180 4 96 56
+33184 a 96 56
+3318e 6 96 56
+33194 8 96 56
+3319c 6 85 79
+331a2 6 96 56
+331a8 6 156 137
+331ae 6 256 82
+331b4 6 71 54
+331ba 2e 97 56
+FUNC 331e8 18 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::~NonAllocatingMapTest_OutOfSpace_Test
+331e8 2 282 59
+331ea 16 282 59
+FUNC 33200 12 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::~NonAllocatingMapTest_OutOfSpace_Test
+33200 2 282 59
+33202 6 282 59
+33208 6 282 59
+3320e 4 282 59
+FUNC 33214 18 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::~NonAllocatingMapTest_Serialize_Test
+33214 2 253 59
+33216 16 253 59
+FUNC 3322c 12 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::~NonAllocatingMapTest_Serialize_Test
+3322c 2 253 59
+3322e 6 253 59
+33234 6 253 59
+3323a 4 253 59
+FUNC 33240 18 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::~NonAllocatingMapTest_AddRemove_Test
+33240 2 228 59
+33242 16 228 59
+FUNC 33258 12 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::~NonAllocatingMapTest_AddRemove_Test
+33258 2 228 59
+3325a 6 228 59
+33260 6 228 59
+33266 4 228 59
+FUNC 3326c 18 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::~NonAllocatingMapTest_Iterator_Test
+3326c 2 127 59
+3326e 16 127 59
+FUNC 33284 12 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::~NonAllocatingMapTest_Iterator_Test
+33284 2 127 59
+33286 6 127 59
+3328c 6 127 59
+33292 4 127 59
+FUNC 33298 18 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::~NonAllocatingMapTest_CopyAndAssign_Test
+33298 2 92 59
+3329a 16 92 59
+FUNC 332b0 12 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::~NonAllocatingMapTest_CopyAndAssign_Test
+332b0 2 92 59
+332b2 6 92 59
+332b8 6 92 59
+332be 4 92 59
+FUNC 332c4 18 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::~NonAllocatingMapTest_SimpleStringDictionary_Test
+332c4 2 63 59
+332c6 16 63 59
+FUNC 332dc 12 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::~NonAllocatingMapTest_SimpleStringDictionary_Test
+332dc 2 63 59
+332de 6 63 59
+332e4 6 63 59
+332ea 4 63 59
+FUNC 332f0 18 0 google_breakpad::NonAllocatingMapTest_Entry_Test::~NonAllocatingMapTest_Entry_Test
+332f0 2 35 59
+332f2 16 35 59
+FUNC 33308 12 0 google_breakpad::NonAllocatingMapTest_Entry_Test::~NonAllocatingMapTest_Entry_Test
+33308 2 35 59
+3330a 6 35 59
+33310 6 35 59
+33316 4 35 59
+FUNC 3331a 66 0 google_breakpad::NonAllocatingMap<3u, 2u, 2u>::SetKeyValue
+3331a 4 161 58
+3331e 6 161 58
+33324 1a 240 58
+3333e 4 239 58
+33342 2 239 58
+33344 4 241 58
+33348 4 179 58
+3334c 8 181 58
+33354 2 180 58
+33356 2 181 58
+33358 10 184 58
+33368 2 185 58
+3336a 2 182 58
+3336c 2 185 58
+3336e a 206 58
+33378 8 207 58
+FUNC 33380 5e 0 google_breakpad::NonAllocatingMap<5u, 9u, 15u>::SetKeyValue
+33380 4 161 58
+33384 a 161 58
+3338e e 240 58
+3339c 8 239 58
+333a4 6 181 58
+333aa a 184 58
+333b4 a 185 58
+333be 2 180 58
+333c0 c 180 58
+333cc a 206 58
+333d6 8 207 58
+FUNC 333e0 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_OutOfSpace_Test>::CreateTest
+333e0 2 486 85
+333e2 8 486 85
+333ea 6 282 59
+333f0 2 486 85
+333f2 6 282 59
+333f8 8 486 85
+FUNC 33400 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Serialize_Test>::CreateTest
+33400 2 486 85
+33402 8 486 85
+3340a 6 253 59
+33410 2 486 85
+33412 6 253 59
+33418 8 486 85
+FUNC 33420 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_AddRemove_Test>::CreateTest
+33420 2 486 85
+33422 8 486 85
+3342a 6 228 59
+33430 2 486 85
+33432 6 228 59
+33438 8 486 85
+FUNC 33440 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Iterator_Test>::CreateTest
+33440 2 486 85
+33442 8 486 85
+3344a 6 127 59
+33450 2 486 85
+33452 6 127 59
+33458 8 486 85
+FUNC 33460 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test>::CreateTest
+33460 2 486 85
+33462 8 486 85
+3346a 6 92 59
+33470 2 486 85
+33472 6 92 59
+33478 8 486 85
+FUNC 33480 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test>::CreateTest
+33480 2 486 85
+33482 8 486 85
+3348a 6 63 59
+33490 2 486 85
+33492 6 63 59
+33498 8 486 85
+FUNC 334a0 20 0 testing::internal::TestFactoryImpl<google_breakpad::NonAllocatingMapTest_Entry_Test>::CreateTest
+334a0 2 486 85
+334a2 8 486 85
+334aa 6 35 59
+334b0 2 486 85
+334b2 6 35 59
+334b8 8 486 85
+FUNC 334c0 16 0 google_breakpad::NonAllocatingMap<5u, 7u, 6u>::GetCount
+334c0 2 133 58
+334c2 c 134 58
+334ce 4 135 58
+334d2 4 141 58
+FUNC 334d6 2a 0 google_breakpad::NonAllocatingMap<256u, 256u, 64u>::GetConstEntryForKey
+334d6 2 238 58
+334d8 8 238 58
+334e0 12 240 58
+334f2 6 239 58
+334f8 6 244 58
+334fe 2 245 58
+FUNC 33500 14 0 google_breakpad::NonAllocatingMap<256u, 256u, 64u>::RemoveKey
+33500 2 212 58
+33502 2 214 58
+33504 4 248 58
+33508 2 218 58
+3350a 4 219 58
+3350e 6 220 58
+FUNC 33514 6e 0 google_breakpad::NonAllocatingMap<256u, 256u, 64u>::SetKeyValue
+33514 4 161 58
+33518 4 161 58
+3351c 4 162 58
+33520 4 208 58
+33524 4 163 58
+33528 2 168 58
+3352a 4 173 58
+3352e 4 248 58
+33532 8 179 58
+3353a a 181 58
+33544 8 184 58
+3354c 4 185 58
+33550 2 181 58
+33552 4 184 58
+33556 6 185 58
+3355c 2 180 58
+3355e c 180 58
+3356a e 206 58
+33578 a 207 58
+FUNC 33582 24 0 google_breakpad::NonAllocatingMap<10u, 10u, 10u>::GetConstEntryForKey
+33582 2 238 58
+33584 8 238 58
+3358c e 240 58
+3359a 4 239 58
+3359e 6 244 58
+335a4 2 245 58
+FUNC 335a6 12 0 google_breakpad::NonAllocatingMap<10u, 10u, 10u>::RemoveKey
+335a6 2 212 58
+335a8 2 214 58
+335aa 4 248 58
+335ae 2 218 58
+335b0 4 219 58
+335b4 4 220 58
+FUNC 335b8 6a 0 google_breakpad::NonAllocatingMap<10u, 10u, 10u>::SetKeyValue
+335b8 4 161 58
+335bc 4 161 58
+335c0 4 162 58
+335c4 4 208 58
+335c8 4 163 58
+335cc 2 168 58
+335ce 4 173 58
+335d2 4 248 58
+335d6 8 179 58
+335de a 181 58
+335e8 6 184 58
+335ee 2 181 58
+335f0 4 184 58
+335f4 c 185 58
+33600 2 180 58
+33602 c 180 58
+3360e c 206 58
+3361a 8 207 58
+FUNC 33622 12 0 google_breakpad::NonAllocatingMap<10u, 10u, 10u>::GetValueForKey
+33622 2 145 58
+33624 2 147 58
+33626 4 150 58
+3362a 2 151 58
+3362c 4 154 58
+33630 2 148 58
+33632 2 155 58
+FUNC 33634 24 0 google_breakpad::NonAllocatingMap<5u, 7u, 6u>::GetConstEntryForKey
+33634 2 238 58
+33636 8 238 58
+3363e e 240 58
+3364c 4 239 58
+33650 6 244 58
+33656 2 245 58
+FUNC 33658 12 0 google_breakpad::NonAllocatingMap<5u, 7u, 6u>::RemoveKey
+33658 2 212 58
+3365a 2 214 58
+3365c 4 248 58
+33660 2 218 58
+33662 4 219 58
+33666 4 220 58
+FUNC 3366a 68 0 google_breakpad::NonAllocatingMap<5u, 7u, 6u>::SetKeyValue
+3366a 4 161 58
+3366e 4 161 58
+33672 4 162 58
+33676 4 208 58
+3367a 4 163 58
+3367e 2 168 58
+33680 4 173 58
+33684 4 248 58
+33688 8 179 58
+33690 a 181 58
+3369a 6 184 58
+336a0 2 181 58
+336a2 4 184 58
+336a6 c 185 58
+336b2 2 180 58
+336b4 c 180 58
+336c0 a 206 58
+336ca 8 207 58
+FUNC 336d2 24 0 google_breakpad::NonAllocatingMap<4u, 5u, 7u>::GetConstEntryForKey
+336d2 2 238 58
+336d4 8 238 58
+336dc e 240 58
+336ea 4 239 58
+336ee 6 244 58
+336f4 2 245 58
+FUNC 336f6 50 0 google_breakpad::NonAllocatingMap<4u, 5u, 7u>::SetKeyValue
+336f6 4 161 58
+336fa 6 161 58
+33700 4 248 58
+33704 8 179 58
+3370c 4 181 58
+33710 4 185 58
+33714 6 184 58
+3371a 2 185 58
+3371c 2 181 58
+3371e 4 184 58
+33722 4 185 58
+33726 2 180 58
+33728 c 180 58
+33734 a 206 58
+3373e 8 207 58
+FUNC 33748 49c 0 google_breakpad::NonAllocatingMapTest_Entry_Test::TestBody
+33748 10 35 59
+33758 4 35 59
+3375c 10 104 58
+3376c c 104 58
+33778 2 89 58
+3377a 8 90 58
+33782 4 88 58
+33786 2 94 58
+33788 4 40 59
+3378c 2 1139 87
+3378e 2 40 59
+33790 4 277 82
+33794 2 1139 87
+33796 2 40 59
+33798 18 40 59
+337b0 a 40 59
+337ba 2 40 59
+337bc a 40 59
+337c6 6 40 59
+337cc 8 40 59
+337d4 6 85 79
+337da 6 40 59
+337e0 6 156 137
+337e6 18 256 82
+337fe 2 89 58
+33800 8 90 58
+33808 6 88 58
+3380e 2 90 58
+33810 6 277 82
+33816 2 1139 87
+33818 4 277 82
+3381c 4 1139 87
+33820 2 45 59
+33822 18 45 59
+3383a 8 45 59
+33842 2 45 59
+33844 c 45 59
+33850 6 45 59
+33856 8 45 59
+3385e 6 85 79
+33864 6 45 59
+3386a 8 156 137
+33872 6 256 82
+33878 1c 46 59
+33894 6 302 82
+3389a a 46 59
+338a4 4 46 59
+338a8 8 46 59
+338b0 6 46 59
+338b6 8 46 59
+338be 6 85 79
+338c4 6 46 59
+338ca 6 256 82
+338d0 20 47 59
+338f0 6 302 82
+338f6 a 47 59
+33900 4 47 59
+33904 8 47 59
+3390c 6 47 59
+33912 8 47 59
+3391a 6 85 79
+33920 6 47 59
+33926 16 256 82
+3393c 18 51 59
+33954 6 302 82
+3395a a 51 59
+33964 4 51 59
+33968 8 51 59
+33970 6 51 59
+33976 8 51 59
+3397e 6 85 79
+33984 6 51 59
+3398a 6 256 82
+33990 1c 54 59
+339ac 6 302 82
+339b2 a 54 59
+339bc 4 54 59
+339c0 8 54 59
+339c8 6 54 59
+339ce 8 54 59
+339d6 6 85 79
+339dc 6 54 59
+339e2 8 256 82
+339ea 16 240 58
+33a00 4 219 58
+33a04 8 220 58
+33a0c 4 239 58
+33a10 2 58 59
+33a12 2 1139 87
+33a14 6 58 59
+33a1a 4 277 82
+33a1e 8 1139 87
+33a26 2 58 59
+33a28 1a 58 59
+33a42 12 58 59
+33a54 6 58 59
+33a5a 8 58 59
+33a62 6 85 79
+33a68 6 58 59
+33a6e 6 156 137
+33a74 6 256 82
+33a7a 8 59 59
+33a82 4 1512 82
+33a86 4 59 59
+33a8a 10 1512 82
+33a9a 6 59 59
+33aa0 6 302 82
+33aa6 10 59 59
+33ab6 6 59 59
+33abc 8 59 59
+33ac4 6 85 79
+33aca 6 59 59
+33ad0 6 256 82
+33ad6 8 60 59
+33ade 4 1512 82
+33ae2 4 60 59
+33ae6 10 1512 82
+33af6 6 60 59
+33afc 6 302 82
+33b02 10 60 59
+33b12 6 60 59
+33b18 8 60 59
+33b20 6 85 79
+33b26 6 60 59
+33b2c 6 256 82
+33b32 b2 61 59
+FUNC 33be4 7a0 0 google_breakpad::NonAllocatingMapTest_CopyAndAssign_Test::TestBody
+33be4 14 92 59
+33bf8 4 92 59
+33bfc 12 104 58
+33c0e 4 104 58
+33c12 e 94 59
+33c20 4 95 59
+33c24 4 94 59
+33c28 10 95 59
+33c38 12 96 59
+33c4a 8 97 59
+33c52 8 98 59
+33c5a e 134 58
+33c68 4 135 58
+33c6c 4 98 59
+33c70 18 1512 82
+33c88 6 98 59
+33c8e 6 302 82
+33c94 12 98 59
+33ca6 6 98 59
+33cac 8 98 59
+33cb4 6 85 79
+33cba 6 98 59
+33cc0 a 256 82
+33cca a 117 58
+33cd4 8 102 59
+33cdc c 134 58
+33ce8 4 135 58
+33cec 2 102 59
+33cee 1a 1512 82
+33d08 6 102 59
+33d0e 6 302 82
+33d14 12 102 59
+33d26 6 102 59
+33d2c 8 102 59
+33d34 6 85 79
+33d3a 6 102 59
+33d40 6 256 82
+33d46 c 103 59
+33d52 1a 103 59
+33d6c 6 103 59
+33d72 6 302 82
+33d78 12 103 59
+33d8a 6 103 59
+33d90 8 103 59
+33d98 6 85 79
+33d9e 6 103 59
+33da4 6 256 82
+33daa c 104 59
+33db6 1a 104 59
+33dd0 6 104 59
+33dd6 6 302 82
+33ddc 12 104 59
+33dee 6 104 59
+33df4 8 104 59
+33dfc 6 85 79
+33e02 6 104 59
+33e08 c 105 59
+33e14 6 256 82
+33e1a a 105 59
+33e24 8 106 59
+33e2c 16 106 59
+33e42 6 106 59
+33e48 6 302 82
+33e4e 14 106 59
+33e62 6 106 59
+33e68 8 106 59
+33e70 6 85 79
+33e76 6 106 59
+33e7c 6 256 82
+33e82 10 107 59
+33e92 2 1139 87
+33e94 2 107 59
+33e96 4 277 82
+33e9a 2 1139 87
+33e9c 2 107 59
+33e9e 20 107 59
+33ebe 16 107 59
+33ed4 6 107 59
+33eda 8 107 59
+33ee2 6 85 79
+33ee8 6 107 59
+33eee 6 156 137
+33ef4 8 256 82
+33efc 10 104 58
+33f0c 4 104 58
+33f10 a 117 58
+33f1a 8 112 59
+33f22 c 134 58
+33f2e 4 135 58
+33f32 8 112 59
+33f3a 14 1512 82
+33f4e 4 112 59
+33f52 6 302 82
+33f58 10 112 59
+33f68 6 112 59
+33f6e 8 112 59
+33f76 6 85 79
+33f7c 6 112 59
+33f82 a 256 82
+33f8c a 113 59
+33f96 6 113 59
+33f9c 4 256 82
+33fa0 e 113 59
+33fae 6 113 59
+33fb4 6 302 82
+33fba 10 113 59
+33fca 6 113 59
+33fd0 8 113 59
+33fd8 6 85 79
+33fde 6 113 59
+33fe4 6 256 82
+33fea a 114 59
+33ff4 14 114 59
+34008 4 114 59
+3400c 6 302 82
+34012 10 114 59
+34022 6 114 59
+34028 8 114 59
+34030 6 85 79
+34036 6 114 59
+3403c 2 256 82
+3403e c 115 59
+3404a 4 256 82
+3404e a 115 59
+34058 8 116 59
+34060 12 116 59
+34072 4 116 59
+34076 6 302 82
+3407c 8 116 59
+34084 4 116 59
+34088 8 116 59
+34090 6 116 59
+34096 8 116 59
+3409e 6 85 79
+340a4 6 116 59
+340aa a 256 82
+340b4 e 117 59
+340c2 2 1139 87
+340c4 2 117 59
+340c6 2 277 82
+340c8 2 1139 87
+340ca 2 117 59
+340cc 1a 117 59
+340e6 8 117 59
+340ee 4 117 59
+340f2 a 117 59
+340fc 6 117 59
+34102 8 117 59
+3410a 6 85 79
+34110 6 117 59
+34116 6 156 137
+3411c 4 119 59
+34120 2 256 82
+34122 2 119 59
+34124 4 256 82
+34128 8 119 59
+34130 c 120 59
+3413c 2 1139 87
+3413e 2 120 59
+34140 2 277 82
+34142 2 1139 87
+34144 2 120 59
+34146 1a 120 59
+34160 8 120 59
+34168 4 120 59
+3416c a 120 59
+34176 6 120 59
+3417c 8 120 59
+34184 6 85 79
+3418a 6 120 59
+34190 6 156 137
+34196 6 256 82
+3419c a 121 59
+341a6 14 121 59
+341ba 4 121 59
+341be 6 302 82
+341c4 8 121 59
+341cc 2 121 59
+341ce 8 121 59
+341d6 6 121 59
+341dc 8 121 59
+341e4 6 85 79
+341ea 6 121 59
+341f0 6 256 82
+341f6 a 122 59
+34200 14 122 59
+34214 4 122 59
+34218 6 302 82
+3421e 8 122 59
+34226 2 122 59
+34228 8 122 59
+34230 6 122 59
+34236 8 122 59
+3423e 6 85 79
+34244 6 122 59
+3424a 6 256 82
+34250 134 123 59
+FUNC 34384 544 0 google_breakpad::NonAllocatingMapTest_AddRemove_Test::TestBody
+34384 16 228 59
+3439a 2 228 59
+3439c 10 104 58
+343ac 4 104 58
+343b0 14 230 59
+343c4 12 231 59
+343d6 12 232 59
+343e8 a 234 59
+343f2 e 1512 82
+34400 2 234 59
+34402 e 1512 82
+34410 6 234 59
+34416 6 302 82
+3441c 10 234 59
+3442c 6 234 59
+34432 8 234 59
+3443a 6 85 79
+34440 6 234 59
+34446 a 256 82
+34450 a 150 58
+3445a 2 151 58
+3445c 2 154 58
+3445e 14 235 59
+34472 6 235 59
+34478 6 302 82
+3447e 10 235 59
+3448e 6 235 59
+34494 8 235 59
+3449c 6 85 79
+344a2 6 235 59
+344a8 6 256 82
+344ae a 150 58
+344b8 2 151 58
+344ba 2 154 58
+344bc 14 236 59
+344d0 6 236 59
+344d6 6 302 82
+344dc 10 236 59
+344ec 6 236 59
+344f2 8 236 59
+344fa 6 85 79
+34500 6 236 59
+34506 6 256 82
+3450c a 150 58
+34516 2 151 58
+34518 2 154 58
+3451a 14 237 59
+3452e 6 237 59
+34534 6 302 82
+3453a 10 237 59
+3454a 6 237 59
+34550 8 237 59
+34558 6 85 79
+3455e 6 237 59
+34564 6 256 82
+3456a a 239 59
+34574 a 241 59
+3457e 4 1512 82
+34582 2 241 59
+34584 e 1512 82
+34592 6 241 59
+34598 6 302 82
+3459e 10 241 59
+345ae 6 241 59
+345b4 8 241 59
+345bc 6 85 79
+345c2 6 241 59
+345c8 6 256 82
+345ce a 150 58
+345d8 2 151 58
+345da 2 154 58
+345dc 4 242 59
+345e0 2 1139 87
+345e2 2 242 59
+345e4 4 277 82
+345e8 2 1139 87
+345ea 2 242 59
+345ec 1a 242 59
+34606 12 242 59
+34618 6 242 59
+3461e 8 242 59
+34626 6 85 79
+3462c 6 242 59
+34632 6 156 137
+34638 6 256 82
+3463e e 244 59
+3464c a 245 59
+34656 4 1512 82
+3465a 2 245 59
+3465c e 1512 82
+3466a 6 245 59
+34670 6 302 82
+34676 10 245 59
+34686 6 245 59
+3468c 8 245 59
+34694 6 85 79
+3469a 6 245 59
+346a0 6 256 82
+346a6 a 150 58
+346b0 2 151 58
+346b2 2 154 58
+346b4 14 246 59
+346c8 6 246 59
+346ce 6 302 82
+346d4 10 246 59
+346e4 6 246 59
+346ea 8 246 59
+346f2 6 85 79
+346f8 6 246 59
+346fe 4 249 59
+34702 6 256 82
+34708 a 248 59
+34712 a 249 59
+3471c 4 1512 82
+34720 2 249 59
+34722 e 1512 82
+34730 6 249 59
+34736 6 302 82
+3473c 10 249 59
+3474c 6 249 59
+34752 8 249 59
+3475a 6 85 79
+34760 6 249 59
+34766 6 256 82
+3476c a 150 58
+34776 2 151 58
+34778 4 154 58
+3477c 2 152 58
+3477e 4 250 59
+34782 2 1139 87
+34784 2 250 59
+34786 4 277 82
+3478a 2 1139 87
+3478c 2 250 59
+3478e 18 250 59
+347a6 12 250 59
+347b8 6 250 59
+347be 8 250 59
+347c6 6 85 79
+347cc 6 250 59
+347d2 6 156 137
+347d8 6 256 82
+347de ea 251 59
+FUNC 348c8 498 0 google_breakpad::NonAllocatingMapTest_Serialize_Test::TestBody
+348c8 16 253 59
+348de 2 253 59
+348e0 10 104 58
+348f0 32 104 58
+34922 8 150 58
+3492a 2 151 58
+3492c 2 154 58
+3492e 16 260 59
+34944 6 260 59
+3494a 6 302 82
+34950 c 260 59
+3495c 2 260 59
+3495e 8 260 59
+34966 6 260 59
+3496c 8 260 59
+34974 6 85 79
+3497a 6 260 59
+34980 8 256 82
+34988 a 150 58
+34992 2 151 58
+34994 2 154 58
+34996 14 261 59
+349aa 6 261 59
+349b0 6 302 82
+349b6 c 261 59
+349c2 4 261 59
+349c6 8 261 59
+349ce 6 261 59
+349d4 8 261 59
+349dc 6 85 79
+349e2 6 261 59
+349e8 6 256 82
+349ee a 150 58
+349f8 2 151 58
+349fa 4 154 58
+349fe 2 152 58
+34a00 14 262 59
+34a14 6 262 59
+34a1a 6 302 82
+34a20 c 262 59
+34a2c 4 262 59
+34a30 8 262 59
+34a38 6 262 59
+34a3e 8 262 59
+34a46 6 85 79
+34a4c 6 262 59
+34a52 6 256 82
+34a58 6 268 59
+34a5e 6 277 82
+34a64 2 1139 87
+34a66 6 277 82
+34a6c 2 1139 87
+34a6e 2 269 59
+34a70 18 269 59
+34a88 a 269 59
+34a92 2 269 59
+34a94 c 269 59
+34aa0 6 269 59
+34aa6 8 269 59
+34aae 6 85 79
+34ab4 6 269 59
+34aba 6 156 137
+34ac0 6 256 82
+34ac6 2 270 59
+34ac8 4 256 82
+34acc 1a 270 59
+34ae6 1e 127 58
+34b04 6 273 59
+34b0a 4 275 59
+34b0e c 134 58
+34b1a 4 135 58
+34b1e a 1512 82
+34b28 2 275 59
+34b2a e 1512 82
+34b38 6 275 59
+34b3e 6 302 82
+34b44 12 275 59
+34b56 6 275 59
+34b5c 8 275 59
+34b64 6 85 79
+34b6a 6 275 59
+34b70 a 256 82
+34b7a a 150 58
+34b84 2 151 58
+34b86 2 154 58
+34b88 14 276 59
+34b9c 6 276 59
+34ba2 6 302 82
+34ba8 12 276 59
+34bba 6 276 59
+34bc0 8 276 59
+34bc8 6 85 79
+34bce 6 276 59
+34bd4 6 256 82
+34bda a 150 58
+34be4 2 151 58
+34be6 2 154 58
+34be8 14 277 59
+34bfc 6 277 59
+34c02 6 302 82
+34c08 12 277 59
+34c1a 6 277 59
+34c20 8 277 59
+34c28 6 85 79
+34c2e 6 277 59
+34c34 6 256 82
+34c3a a 150 58
+34c44 2 151 58
+34c46 4 154 58
+34c4a 2 152 58
+34c4c 14 278 59
+34c60 6 278 59
+34c66 6 302 82
+34c6c 12 278 59
+34c7e 6 278 59
+34c84 8 278 59
+34c8c 6 85 79
+34c92 6 278 59
+34c98 6 256 82
+34c9e c2 279 59
+FUNC 34d60 1a4 0 google_breakpad::NonAllocatingMapTest_OutOfSpace_Test::TestBody
+34d60 6 282 59
+34d66 2 104 58
+34d68 6 282 59
+34d6e 2 282 59
+34d70 8 104 58
+34d78 2 282 59
+34d7a 38 104 58
+34db2 4 287 59
+34db6 10 136 58
+34dc6 2 137 58
+34dc8 c 1512 82
+34dd4 2 287 59
+34dd6 e 1512 82
+34de4 6 287 59
+34dea 6 302 82
+34df0 12 287 59
+34e02 6 287 59
+34e08 8 287 59
+34e10 6 85 79
+34e16 6 287 59
+34e1c 2 240 58
+34e1e 6 256 82
+34e24 2 240 58
+34e26 4 256 82
+34e2a 18 240 58
+34e42 4 239 58
+34e46 2 239 58
+34e48 a 154 58
+34e52 2 152 58
+34e54 4 288 59
+34e58 2 1139 87
+34e5a 2 288 59
+34e5c 4 277 82
+34e60 2 1139 87
+34e62 2 288 59
+34e64 18 288 59
+34e7c 14 288 59
+34e90 6 288 59
+34e96 8 288 59
+34e9e 6 85 79
+34ea4 6 288 59
+34eaa 6 156 137
+34eb0 6 256 82
+34eb6 4e 289 59
+FUNC 34f04 104 0 testing::internal::CmpHelperNE<char const*, char [7]>
+34f04 10 1615 82
+34f14 e 1615 82
+34f22 4 1615 82
+34f26 4 1615 82
+34f2a 10 1583 82
+34f3a a 1583 82
+34f44 6 1583 82
+34f4a 2 1583 82
+34f4c 2 1408 82
+34f4e 6 1583 82
+34f54 6 1583 82
+34f5a 8 1583 82
+34f62 6 1583 82
+34f68 a 1584 82
+34f72 e 1408 82
+34f80 a 1584 82
+34f8a 6 306 82
+34f90 c 333 127
+34f9c 8 306 82
+34fa4 6 85 79
+34faa c 1408 82
+34fb6 a 1585 82
+34fc0 6 1585 82
+34fc6 c 156 137
+34fd2 6 256 82
+34fd8 30 1615 82
+FUNC 35008 478 0 google_breakpad::NonAllocatingMapTest_SimpleStringDictionary_Test::TestBody
+35008 16 63 59
+3501e a 63 59
+35028 2 104 58
+3502a 2 63 59
+3502c 16 104 58
+35042 6 104 58
+35048 10 68 59
+35058 e 69 59
+35066 e 70 59
+35074 8 150 58
+3507c 2 151 58
+3507e 4 154 58
+35082 8 72 59
+3508a 4 72 59
+3508e 4 72 59
+35092 4 72 59
+35096 e 72 59
+350a4 6 72 59
+350aa 6 302 82
+350b0 14 72 59
+350c4 6 72 59
+350ca 8 72 59
+350d2 6 85 79
+350d8 6 72 59
+350de 8 256 82
+350e6 a 150 58
+350f0 2 151 58
+350f2 4 154 58
+350f6 8 73 59
+350fe 4 73 59
+35102 e 73 59
+35110 6 73 59
+35116 6 302 82
+3511c 14 73 59
+35130 6 73 59
+35136 8 73 59
+3513e 6 85 79
+35144 6 73 59
+3514a 8 256 82
+35152 a 150 58
+3515c 2 151 58
+3515e 4 154 58
+35162 8 74 59
+3516a 4 74 59
+3516e e 74 59
+3517c 6 74 59
+35182 6 302 82
+35188 14 74 59
+3519c 6 74 59
+351a2 8 74 59
+351aa 6 85 79
+351b0 6 74 59
+351b6 a 256 82
+351c0 10 134 58
+351d0 6 135 58
+351d6 6 75 59
+351dc 4 1512 82
+351e0 8 75 59
+351e8 e 1512 82
+351f6 6 75 59
+351fc 6 302 82
+35202 10 75 59
+35212 6 75 59
+35218 8 75 59
+35220 6 85 79
+35226 6 75 59
+3522c 8 256 82
+35234 a 150 58
+3523e 2 151 58
+35240 4 154 58
+35244 4 77 59
+35248 2 1139 87
+3524a 2 77 59
+3524c 4 277 82
+35250 2 1139 87
+35252 2 77 59
+35254 1e 77 59
+35272 18 77 59
+3528a 6 77 59
+35290 8 77 59
+35298 6 85 79
+3529e 6 77 59
+352a4 6 156 137
+352aa 4 80 59
+352ae 4 256 82
+352b2 2 80 59
+352b4 4 256 82
+352b8 8 80 59
+352c0 8 150 58
+352c8 2 151 58
+352ca 4 154 58
+352ce 4 83 59
+352d2 2 1139 87
+352d4 2 83 59
+352d6 4 277 82
+352da 2 1139 87
+352dc 2 83 59
+352de 1e 83 59
+352fc 18 83 59
+35314 6 83 59
+3531a 8 83 59
+35322 6 85 79
+35328 6 83 59
+3532e 6 156 137
+35334 4 163 58
+35338 4 256 82
+3533c 2 163 58
+3533e 4 256 82
+35342 8 163 58
+3534a 8 150 58
+35352 2 151 58
+35354 4 154 58
+35358 4 89 59
+3535c 2 1139 87
+3535e 2 89 59
+35360 4 277 82
+35364 2 1139 87
+35366 2 89 59
+35368 1e 89 59
+35386 18 89 59
+3539e 6 89 59
+353a4 8 89 59
+353ac 6 85 79
+353b2 6 89 59
+353b8 6 156 137
+353be 8 256 82
+353c6 ba 90 59
+FUNC 35480 4a8 0 google_breakpad::NonAllocatingMapTest_Iterator_Test::TestBody
+35480 c 127 59
+3548c 6 127 59
+35492 4 128 59
+35496 2 127 59
+35498 e 128 59
+354a6 10 104 58
+354b6 4 104 58
+354ba 2 1139 87
+354bc 4 277 82
+354c0 2 256 82
+354c2 2 1139 87
+354c4 2 256 82
+354c6 2 277 82
+354c8 4 256 82
+354cc 6 1621 82
+354d2 4 138 59
+354d6 6 302 82
+354dc a 138 59
+354e6 2 138 59
+354e8 8 138 59
+354f0 6 138 59
+354f6 8 138 59
+354fe 6 85 79
+35504 6 138 59
+3550a 4 256 82
+3550e 4 146 59
+35512 4 147 59
+35516 2 256 82
+35518 4 142 59
+3551c 4 256 82
+35520 4 146 59
+35524 4 142 59
+35528 2 146 59
+3552a 2 147 59
+3552c 4 146 59
+35530 2 147 59
+35532 6 146 59
+35538 a 147 59
+35542 2 145 59
+35544 a 148 59
+3554e 4 145 59
+35552 a 153 59
+3555c 4 150 59
+35560 4 153 59
+35564 e 154 59
+35572 e 155 59
+35580 a 158 59
+3558a a 159 59
+35594 a 160 59
+3559e a 161 59
+355a8 a 162 59
+355b2 a 166 59
+355bc a 167 59
+355c6 2 165 59
+355c8 a 168 59
+355d2 4 165 59
+355d6 2 82 58
+355d8 4 170 59
+355dc 2 181 59
+355de 6 170 59
+355e4 2 181 59
+355e6 2 82 58
+355e8 4 181 59
+355ec 4 82 58
+355f0 4 181 59
+355f4 6 183 59
+355fa 6 191 59
+35600 6 195 59
+35606 c 1512 82
+35612 6 198 59
+35618 e 206 59
+35626 6 88 58
+3562c a 89 58
+35636 2 90 58
+35638 2 89 58
+3563a 6 90 58
+35640 4 191 59
+35644 6 187 59
+3564a 2 191 59
+3564c 4 187 59
+35650 8 191 59
+35658 a 195 59
+35662 4 1512 82
+35666 4 195 59
+3566a e 1512 82
+35678 6 198 59
+3567e 6 302 82
+35684 8 198 59
+3568c 4 198 59
+35690 8 198 59
+35698 6 198 59
+3569e 8 198 59
+356a6 6 85 79
+356ac 6 198 59
+356b2 6 256 82
+356b8 2 203 59
+356ba 2 1139 87
+356bc 8 203 59
+356c4 2 205 59
+356c6 4 277 82
+356ca 8 205 59
+356d2 4 1139 87
+356d6 2 206 59
+356d8 18 206 59
+356f0 e 206 59
+356fe 4 206 59
+35702 a 206 59
+3570c 6 206 59
+35712 8 206 59
+3571a 6 85 79
+35720 6 206 59
+35726 6 156 137
+3572c 6 256 82
+35732 2 1139 87
+35734 4 256 82
+35738 4 277 82
+3573c 4 1139 87
+35740 2 207 59
+35742 1a 207 59
+3575c e 207 59
+3576a 4 207 59
+3576e a 207 59
+35778 6 207 59
+3577e 8 207 59
+35786 6 85 79
+3578c 6 207 59
+35792 6 156 137
+35798 6 256 82
+3579e 6 209 59
+357a4 6 209 59
+357aa e 210 59
+357b8 2 88 58
+357ba 2 219 59
+357bc 8 1512 82
+357c4 2 219 59
+357c6 4 1512 82
+357ca 2 219 59
+357cc 8 218 59
+357d4 4 218 59
+357d8 4 218 59
+357dc 6 219 59
+357e2 2 1512 82
+357e4 4 219 59
+357e8 10 1512 82
+357f8 4 219 59
+357fc 6 302 82
+35802 10 219 59
+35812 6 219 59
+35818 8 219 59
+35820 6 85 79
+35826 6 219 59
+3582c 6 256 82
+35832 2 216 59
+35834 4 216 59
+35838 16 1512 82
+3584e 4 224 59
+35852 6 302 82
+35858 a 224 59
+35862 2 224 59
+35864 8 224 59
+3586c 6 224 59
+35872 8 224 59
+3587a 6 85 79
+35880 6 224 59
+35886 6 256 82
+3588c 9c 225 59
+FUNC 35928 20 0 google_breakpad::test_assembler::Label::Label
+35928 2 47 61
+3592a a 47 61
+35934 e 127 61
+35942 6 47 61
+FUNC 35948 20 0 google_breakpad::test_assembler::Label::Label
+35948 2 48 61
+3594a c 48 61
+35956 c 130 61
+35962 6 48 61
+FUNC 35968 c 0 google_breakpad::test_assembler::Label::Label
+35968 4 50 61
+3596c 6 180 62
+35972 2 52 61
+FUNC 35974 14 0 google_breakpad::test_assembler::Label::Binding::Binding
+35974 2 127 61
+35976 12 127 61
+FUNC 35988 10 0 google_breakpad::test_assembler::Label::Binding::Binding
+35988 2 129 61
+3598a e 130 61
+FUNC 35998 28 0 google_breakpad::test_assembler::Label::Binding::~Binding
+35998 2 132 61
+3599a 2 134 61
+3599c 2 132 61
+3599e 2 134 61
+359a0 4 134 61
+359a4 6 182 62
+359aa 2 134 61
+359ac 4 135 61
+359b0 6 135 61
+359b6 6 135 61
+359bc 4 136 61
+FUNC 359c0 22 0 google_breakpad::test_assembler::Label::~Label
+359c0 2 53 61
+359c2 2 54 61
+359c4 2 53 61
+359c6 6 182 62
+359cc 2 54 61
+359ce 4 54 61
+359d2 6 54 61
+359d8 6 54 61
+359de 4 55 61
+FUNC 359e2 66 0 google_breakpad::test_assembler::Label::Binding::Get
+359e2 4 186 61
+359e6 2 186 61
+359e8 2 187 61
+359ea 4 186 61
+359ee 2 187 61
+359f0 4 187 61
+359f4 8 194 61
+359fc 4 195 61
+35a00 6 180 62
+35a06 2 196 61
+35a08 6 182 62
+35a0e 2 196 61
+35a10 4 196 61
+35a14 6 196 61
+35a1a 6 196 61
+35a20 c 198 61
+35a2c 2 197 61
+35a2e 4 198 61
+35a32 2 197 61
+35a34 6 200 61
+35a3a 8 201 61
+35a42 6 202 61
+FUNC 35a48 28 0 google_breakpad::test_assembler::Label::IsKnownConstant
+35a48 2 104 61
+35a4a 2 104 61
+35a4c a 107 61
+35a56 4 108 61
+35a5a 2 109 61
+35a5c a 109 61
+35a66 4 108 61
+35a6a 2 110 61
+35a6c 4 111 61
+FUNC 35a70 1a 0 google_breakpad::test_assembler::Label::Value
+35a70 2 98 61
+35a72 a 99 61
+35a7c 4 100 61
+35a80 a 102 61
+FUNC 35a8a 44 0 google_breakpad::test_assembler::Label::IsKnownOffsetFrom
+35a8a 6 114 61
+35a90 2 117 61
+35a92 2 114 61
+35a94 8 117 61
+35a9c a 118 61
+35aa6 8 122 61
+35aae 2 123 61
+35ab0 14 123 61
+35ac4 4 122 61
+35ac8 2 124 61
+35aca 4 125 61
+FUNC 35ace 12 0 google_breakpad::test_assembler::Label::operator-
+35ace 2 92 61
+35ad0 6 94 61
+35ad6 a 96 61
+FUNC 35ae0 80 0 google_breakpad::test_assembler::Label::Binding::Set
+35ae0 4 138 61
+35ae4 2 139 61
+35ae6 2 138 61
+35ae8 6 138 61
+35aee 2 139 61
+35af0 4 139 61
+35af4 14 145 61
+35b08 2 147 61
+35b0a a 154 61
+35b14 8 155 61
+35b1c 6 163 61
+35b22 10 169 61
+35b32 2 171 61
+35b34 6 182 62
+35b3a 2 171 61
+35b3c 4 171 61
+35b40 6 171 61
+35b46 6 171 61
+35b4c 4 180 61
+35b50 6 180 62
+35b56 4 182 61
+35b5a 2 181 61
+35b5c 4 184 61
+FUNC 35b60 10 0 google_breakpad::test_assembler::Label::operator=
+35b60 2 57 61
+35b62 2 57 61
+35b64 8 58 61
+35b6c 4 60 61
+FUNC 35b70 14 0 google_breakpad::test_assembler::Label::operator=
+35b70 2 62 61
+35b72 2 62 61
+35b74 c 63 61
+35b80 4 65 61
+FUNC 35b84 1e 0 google_breakpad::test_assembler::Label::operator+
+35b84 2 67 61
+35b86 8 67 61
+35b8e 4 68 61
+35b92 c 69 61
+35b9e 4 71 61
+FUNC 35ba2 20 0 google_breakpad::test_assembler::Label::operator-
+35ba2 2 73 61
+35ba4 8 73 61
+35bac 4 74 61
+35bb0 e 75 61
+35bbe 4 77 61
+FUNC 35bc2 20 0 google_breakpad::test_assembler::Section::Align
+35bc2 2 324 61
+35bc4 2 324 61
+35bc6 8 400 136
+35bce 6 327 61
+35bd4 a 328 61
+35bde 4 331 61
+FUNC 35be2 44 0 google_breakpad::test_assembler::Section::LEB128
+35be2 2 303 61
+35be4 a 303 61
+35bee 10 304 61
+35bfe 4 305 61
+35c02 e 453 136
+35c10 8 307 61
+35c18 a 453 136
+35c22 4 313 61
+FUNC 35c26 3a 0 google_breakpad::test_assembler::Section::ULEB128
+35c26 2 315 61
+35c28 a 315 61
+35c32 8 316 61
+35c3a 4 317 61
+35c3e 8 453 136
+35c46 e 318 61
+35c54 8 453 136
+35c5c 4 322 61
+FUNC 35c60 5a 0 google_breakpad::test_assembler::InsertEndian<std::back_insert_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >
+35c60 2 208 61
+35c62 4 205 61
+35c66 6 205 61
+35c6c 4 208 61
+35c70 4 209 61
+35c74 4 178 118
+35c78 6 211 61
+35c7e 4 178 118
+35c82 2 211 61
+35c84 e 209 61
+35c92 6 216 61
+35c98 4 216 61
+35c9c a 217 61
+35ca6 8 178 118
+35cae c 216 61
+FUNC 35cba 1c 0 google_breakpad::test_assembler::Section::Append
+35cba 2 221 61
+35cbc 2 221 61
+35cbe 4 223 61
+35cc2 e 223 61
+35cd0 6 225 61
+FUNC 35cd6 1a 0 google_breakpad::test_assembler::Section::L16
+35cd6 2 267 61
+35cd8 6 267 61
+35cde 2 267 61
+35ce0 2 267 61
+35ce2 8 267 61
+35cea 6 267 61
+FUNC 35cf0 1c 0 google_breakpad::test_assembler::Section::L32
+35cf0 2 268 61
+35cf2 8 268 61
+35cfa c 268 61
+35d06 6 268 61
+FUNC 35d0c 18 0 google_breakpad::test_assembler::Section::L64
+35d0c 2 269 61
+35d0e 6 269 61
+35d14 a 269 61
+35d1e 6 269 61
+FUNC 35d24 1a 0 google_breakpad::test_assembler::Section::B16
+35d24 2 270 61
+35d26 6 270 61
+35d2c 2 270 61
+35d2e 2 270 61
+35d30 8 270 61
+35d38 6 270 61
+FUNC 35d3e 1c 0 google_breakpad::test_assembler::Section::B32
+35d3e 2 271 61
+35d40 6 271 61
+35d46 2 271 61
+35d48 2 271 61
+35d4a a 271 61
+35d54 6 271 61
+FUNC 35d5a 18 0 google_breakpad::test_assembler::Section::B64
+35d5a 2 272 61
+35d5c 6 272 61
+35d62 a 272 61
+35d6c 6 272 61
+FUNC 35d72 1a 0 google_breakpad::test_assembler::Section::D16
+35d72 2 289 61
+35d74 6 289 61
+35d7a 2 289 61
+35d7c 2 289 61
+35d7e 8 289 61
+35d86 6 289 61
+FUNC 35d8c 1c 0 google_breakpad::test_assembler::Section::D32
+35d8c 2 290 61
+35d8e 6 290 61
+35d94 2 290 61
+35d96 2 290 61
+35d98 a 290 61
+35da2 6 290 61
+FUNC 35da8 18 0 google_breakpad::test_assembler::Section::D64
+35da8 2 291 61
+35daa 6 291 61
+35db0 a 291 61
+35dba 6 291 61
+FUNC 35dc0 20 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::clear
+35dc0 6 650 144
+35dc6 2 630 144
+35dc8 2 650 144
+35dca 4 630 144
+35dce 4 449 62
+35dd2 2 191 108
+35dd4 4 449 62
+35dd8 4 191 108
+35ddc 4 615 144
+FUNC 35de0 1a 0 google_breakpad::test_assembler::Section::Clear
+35de0 2 333 61
+35de2 2 422 136
+35de4 2 228 148
+35de6 2 422 136
+35de8 6 232 145
+35dee 8 424 136
+35df6 4 228 148
+FUNC 35dfc b4 0 std::priv::_String_base<char, std::allocator<char> >::_M_swap
+35dfc 10 168 137
+35e0c 2 168 137
+35e0e 2 64 137
+35e10 4 170 137
+35e14 2 171 137
+35e16 2 64 137
+35e18 a 171 137
+35e22 a 91 105
+35e2c 8 92 105
+35e34 8 93 105
+35e3c 4 174 137
+35e40 2 173 137
+35e42 2 174 137
+35e44 2 175 137
+35e46 4 174 137
+35e4a 2 175 137
+35e4c 2 174 137
+35e4e 2 175 137
+35e50 2 178 137
+35e52 4 179 137
+35e56 2 64 137
+35e58 4 185 137
+35e5c 4 189 137
+35e60 4 188 137
+35e64 4 189 137
+35e68 2 192 137
+35e6a 2 193 137
+35e6c 4 187 137
+35e70 6 193 137
+35e76 4 194 137
+35e7a 2 195 137
+35e7c 6 196 137
+35e82 2 91 105
+35e84 4 92 105
+35e88 2 93 105
+35e8a 2 91 105
+35e8c 4 92 105
+35e90 2 93 105
+35e92 2 91 105
+35e94 4 92 105
+35e98 2 93 105
+35e9a 16 208 137
+FUNC 35eb0 ec 0 google_breakpad::test_assembler::Section::GetContents
+35eb0 8 338 61
+35eb8 4 341 61
+35ebc 2 338 61
+35ebe 4 344 61
+35ec2 a 192 144
+35ecc a 341 61
+35ed6 2 202 144
+35ed8 12 344 61
+35eea 14 345 61
+35efe c 350 61
+35f0a 2 208 61
+35f0c 2 350 61
+35f0e 2 208 61
+35f10 4 350 61
+35f14 4 208 61
+35f18 4 209 61
+35f1c 4 210 61
+35f20 10 211 61
+35f30 a 216 61
+35f3a 6 216 61
+35f40 a 217 61
+35f4a 2 216 61
+35f4c 4 217 61
+35f50 8 216 61
+35f58 a 341 61
+35f62 4 422 136
+35f66 4 942 136
+35f6a 2 422 136
+35f6c 6 232 145
+35f72 4 424 136
+35f76 2 942 136
+35f78 6 424 136
+35f7e 4 942 136
+35f82 8 228 148
+35f8a 2 355 61
+35f8c 10 356 61
+FUNC 35f9c 1bc 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::_M_insert_overflow_aux
+35f9c 6 81 143
+35fa2 6 192 144
+35fa8 4 173 144
+35fac 2 81 143
+35fae 2 81 143
+35fb0 2 192 144
+35fb2 6 173 144
+35fb8 2 81 143
+35fba 2 173 144
+35fbc 8 41 143
+35fc4 a 175 144
+35fce 6 176 144
+35fd4 6 176 144
+35fda 4 176 144
+35fde 8 347 106
+35fe6 6 348 106
+35fec 4 352 106
+35ff0 6 91 143
+35ff6 a 86 142
+36000 6 86 142
+36006 6 139 108
+3600c 20 449 62
+3602c 12 86 142
+3603e a 93 143
+36048 2 119 108
+3604a 1e 449 62
+36068 6 95 143
+3606e 8 314 142
+36076 4 249 142
+3607a 8 449 62
+36082 6 249 142
+36088 4 139 108
+3608c 20 449 62
+360ac 8 249 142
+360b4 6 98 143
+360ba e 86 142
+360c8 6 86 142
+360ce 6 139 108
+360d4 20 449 62
+360f4 14 86 142
+36108 6 65 118
+3610e 2 74 118
+36110 4 191 108
+36114 a 449 62
+3611e 4 81 118
+36122 6 662 144
+36128 2 319 106
+3612a 4 161 106
+3612e 6 135 124
+36134 4 161 106
+36138 4 104 143
+3613c 4 667 144
+36140 2 668 144
+36142 6 105 143
+36148 6 346 106
+3614e a 356 106
+FUNC 36158 42 0 std::priv::_Impl_vector<google_breakpad::test_assembler::Section::Reference, std::allocator<google_breakpad::test_assembler::Section::Reference> >::push_back
+36158 2 376 144
+3615a 2 376 144
+3615c 4 380 144
+36160 2 376 144
+36162 4 380 144
+36166 2 119 108
+36168 18 449 62
+36180 8 382 144
+36188 e 162 144
+36196 4 388 144
+FUNC 3619a 6a 0 google_breakpad::test_assembler::Section::Append
+3619a 6 228 61
+361a0 4 228 61
+361a4 4 232 61
+361a8 4 228 61
+361ac c 232 61
+361b8 10 223 61
+361c8 2 233 61
+361ca 4 400 136
+361ce 2 453 62
+361d0 2 400 136
+361d2 10 453 62
+361e2 a 173 148
+361ec 6 449 62
+361f2 a 240 61
+361fc 8 242 61
+FUNC 36204 a 0 google_breakpad::test_assembler::Section::L8
+36204 a 265 61
+FUNC 3620e a 0 google_breakpad::test_assembler::Section::B8
+3620e a 266 61
+FUNC 36218 a 0 google_breakpad::test_assembler::Section::L16
+36218 a 267 61
+FUNC 36222 a 0 google_breakpad::test_assembler::Section::L32
+36222 a 268 61
+FUNC 3622c a 0 google_breakpad::test_assembler::Section::L64
+3622c a 269 61
+FUNC 36236 a 0 google_breakpad::test_assembler::Section::B16
+36236 a 270 61
+FUNC 36240 a 0 google_breakpad::test_assembler::Section::B32
+36240 a 271 61
+FUNC 3624a a 0 google_breakpad::test_assembler::Section::B64
+3624a a 272 61
+FUNC 36254 a 0 google_breakpad::test_assembler::Section::D8
+36254 a 288 61
+FUNC 3625e a 0 google_breakpad::test_assembler::Section::D16
+3625e a 289 61
+FUNC 36268 a 0 google_breakpad::test_assembler::Section::D32
+36268 a 290 61
+FUNC 36272 a 0 google_breakpad::test_assembler::Section::D64
+36272 a 291 61
+FUNC 3627c 130 0 google_breakpad::test_assembler::Section::Append
+3627c e 293 61
+3628a 2 197 135
+3628c 2 293 61
+3628e 2 293 61
+36290 4 400 136
+36294 4 295 61
+36298 2 197 135
+3629a 2 74 137
+3629c 4 74 137
+362a0 4 74 137
+362a4 4 198 135
+362a8 4 74 137
+362ac 2 74 137
+362ae 4 199 135
+362b2 8 200 135
+362ba 4 346 106
+362be 6 347 106
+362c4 4 348 106
+362c8 4 352 106
+362cc 4 348 106
+362d0 4 356 106
+362d4 14 86 142
+362e8 8 86 142
+362f0 1e 146 108
+3630e 8 86 142
+36316 6 146 108
+3631c 8 101 108
+36324 8 205 135
+3632c 4 206 135
+36330 2 160 137
+36332 2 164 137
+36334 8 165 137
+3633c 2 210 135
+3633e 6 86 142
+36344 8 86 142
+3634c 6 146 108
+36352 a 101 108
+3635c 2 232 145
+3635e 6 214 135
+36364 8 453 62
+3636c 4 173 148
+36370 a 296 61
+3637a 8 299 61
+36382 2 453 62
+36384 2 299 61
+36386 c 453 62
+36392 8 173 148
+3639a a 449 62
+363a4 8 301 61
+FUNC 363ac 158 0 google_breakpad::CopyFile
+363ac 16 44 64
+363c2 4 44 64
+363c6 e 45 64
+363d4 4 45 64
+363d8 6 45 64
+363de 6 47 64
+363e4 4 46 64
+363e8 10 51 64
+363f8 4 51 64
+363fc 6 51 64
+36402 8 53 64
+3640a a 54 64
+36414 4 54 64
+36418 6 54 64
+3641e 8 55 64
+36426 4 57 64
+3642a 4 65 64
+3642e 4 70 64
+36432 10 74 64
+36442 4 78 64
+36446 2 83 64
+36448 4 73 64
+3644c 12 64 64
+3645e 4 64 64
+36462 6 64 64
+36468 4 66 64
+3646c 6 79 64
+36472 a 87 64
+3647c c 91 64
+36488 10 97 64
+36498 4 52 64
+3649c 6 64 64
+364a2 4 87 64
+364a6 8 87 64
+364ae 4 91 64
+364b2 8 91 64
+364ba 6 54 64
+364c0 4 74 64
+364c4 6 74 64
+364ca a 79 64
+364d4 2 88 64
+364d6 2 89 64
+364d8 8 88 64
+364e0 24 97 64
+FUNC 36504 9c 0 google_breakpad::ReadFile
+36504 8 99 64
+3650c e 100 64
+3651a 4 100 64
+3651e 6 100 64
+36524 6 102 64
+3652a 2 107 64
+3652c 4 106 64
+36530 4 107 64
+36534 6 107 64
+3653a a 108 64
+36544 10 109 64
+36554 4 109 64
+36558 6 109 64
+3655e 2 109 64
+36560 4 110 64
+36564 2 111 64
+36566 2 112 64
+36568 6 111 64
+3656e a 115 64
+36578 4 115 64
+3657c a 115 64
+36586 8 116 64
+3658e 2 117 64
+36590 10 120 64
+FUNC 365a0 a0 0 google_breakpad::WriteFile
+365a0 a 122 64
+365aa 14 123 64
+365be 4 123 64
+365c2 6 123 64
+365c8 6 125 64
+365ce 2 130 64
+365d0 6 129 64
+365d6 4 134 64
+365da 16 136 64
+365f0 4 136 64
+365f4 6 136 64
+365fa 2 139 64
+365fc 2 140 64
+365fe 6 139 64
+36604 a 146 64
+3660e 4 146 64
+36612 c 146 64
+3661e 4 138 64
+36622 4 143 64
+36626 8 147 64
+3662e 2 148 64
+36630 10 151 64
+FUNC 36640 18 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::~MinidumpMemoryRangeTest_GetAsciiMDString_Test
+36640 2 224 78
+36642 16 224 78
+FUNC 36658 12 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::~MinidumpMemoryRangeTest_GetAsciiMDString_Test
+36658 2 224 78
+3665a 6 224 78
+36660 6 224 78
+36666 4 224 78
+FUNC 3666c 18 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::~MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test
+3666c 2 216 78
+3666e 16 216 78
+FUNC 36684 12 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::~MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test
+36684 2 216 78
+36686 6 216 78
+3668c 6 216 78
+36692 4 216 78
+FUNC 36698 18 0 MinidumpMemoryRangeTest_GetArrayElement_Test::~MinidumpMemoryRangeTest_GetArrayElement_Test
+36698 2 201 78
+3669a 16 201 78
+FUNC 366b0 12 0 MinidumpMemoryRangeTest_GetArrayElement_Test::~MinidumpMemoryRangeTest_GetArrayElement_Test
+366b0 2 201 78
+366b2 6 201 78
+366b8 6 201 78
+366be 4 201 78
+FUNC 366c4 18 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::~MinidumpMemoryRangeTest_GetDataWithTemplateType_Test
+366c4 2 193 78
+366c6 16 193 78
+FUNC 366dc 12 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::~MinidumpMemoryRangeTest_GetDataWithTemplateType_Test
+366dc 2 193 78
+366de 6 193 78
+366e4 6 193 78
+366ea 4 193 78
+FUNC 366f0 18 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::~MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test
+366f0 2 165 78
+366f2 16 165 78
+FUNC 36708 12 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::~MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test
+36708 2 165 78
+3670a 6 165 78
+36710 6 165 78
+36716 4 165 78
+FUNC 3671c 18 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::~MinidumpMemoryRangeTest_SubrangeAndGetData_Test
+3671c 2 140 78
+3671e 16 140 78
+FUNC 36734 12 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::~MinidumpMemoryRangeTest_SubrangeAndGetData_Test
+36734 2 140 78
+36736 6 140 78
+3673c 6 140 78
+36742 4 140 78
+FUNC 36748 18 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::~MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test
+36748 2 133 78
+3674a 16 133 78
+FUNC 36760 12 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::~MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test
+36760 2 133 78
+36762 6 133 78
+36768 6 133 78
+3676e 4 133 78
+FUNC 36774 18 0 MinidumpMemoryRangeTest_Set_Test::~MinidumpMemoryRangeTest_Set_Test
+36774 2 122 78
+36776 16 122 78
+FUNC 3678c 12 0 MinidumpMemoryRangeTest_Set_Test::~MinidumpMemoryRangeTest_Set_Test
+3678c 2 122 78
+3678e 6 122 78
+36794 6 122 78
+3679a 4 122 78
+FUNC 367a0 18 0 MinidumpMemoryRangeTest_Reset_Test::~MinidumpMemoryRangeTest_Reset_Test
+367a0 2 107 78
+367a2 16 107 78
+FUNC 367b8 12 0 MinidumpMemoryRangeTest_Reset_Test::~MinidumpMemoryRangeTest_Reset_Test
+367b8 2 107 78
+367ba 6 107 78
+367c0 6 107 78
+367c6 4 107 78
+FUNC 367cc 18 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::~MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test
+367cc 2 101 78
+367ce 16 101 78
+FUNC 367e4 12 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::~MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test
+367e4 2 101 78
+367e6 6 101 78
+367ec 6 101 78
+367f2 4 101 78
+FUNC 367f8 18 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::~MinidumpMemoryRangeTest_DefaultConstructor_Test
+367f8 2 95 78
+367fa 16 95 78
+FUNC 36810 12 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::~MinidumpMemoryRangeTest_DefaultConstructor_Test
+36810 2 95 78
+36812 6 95 78
+36818 6 95 78
+3681e 4 95 78
+FUNC 36824 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetAsciiMDString_Test>::CreateTest
+36824 2 486 85
+36826 8 486 85
+3682e 6 224 78
+36834 2 486 85
+36836 6 224 78
+3683c 8 486 85
+FUNC 36844 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test>::CreateTest
+36844 2 486 85
+36846 8 486 85
+3684e 6 216 78
+36854 2 486 85
+36856 6 216 78
+3685c 8 486 85
+FUNC 36864 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetArrayElement_Test>::CreateTest
+36864 2 486 85
+36866 8 486 85
+3686e 6 201 78
+36874 2 486 85
+36876 6 201 78
+3687c 8 486 85
+FUNC 36884 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_GetDataWithTemplateType_Test>::CreateTest
+36884 2 486 85
+36886 8 486 85
+3688e 6 193 78
+36894 2 486 85
+36896 6 193 78
+3689c 8 486 85
+FUNC 368a4 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test>::CreateTest
+368a4 2 486 85
+368a6 8 486 85
+368ae 6 165 78
+368b4 2 486 85
+368b6 6 165 78
+368bc 8 486 85
+FUNC 368c4 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeAndGetData_Test>::CreateTest
+368c4 2 486 85
+368c6 8 486 85
+368ce 6 140 78
+368d4 2 486 85
+368d6 6 140 78
+368dc 8 486 85
+FUNC 368e4 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test>::CreateTest
+368e4 2 486 85
+368e6 8 486 85
+368ee 6 133 78
+368f4 2 486 85
+368f6 6 133 78
+368fc 8 486 85
+FUNC 36904 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Set_Test>::CreateTest
+36904 2 486 85
+36906 8 486 85
+3690e 6 122 78
+36914 2 486 85
+36916 6 122 78
+3691c 8 486 85
+FUNC 36924 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_Reset_Test>::CreateTest
+36924 2 486 85
+36926 8 486 85
+3692e 6 107 78
+36934 2 486 85
+36936 6 107 78
+3693c 8 486 85
+FUNC 36944 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test>::CreateTest
+36944 2 486 85
+36946 8 486 85
+3694e 6 101 78
+36954 2 486 85
+36956 6 101 78
+3695c 8 486 85
+FUNC 36964 20 0 testing::internal::TestFactoryImpl<MinidumpMemoryRangeTest_DefaultConstructor_Test>::CreateTest
+36964 2 486 85
+36966 8 486 85
+3696e 6 95 78
+36974 2 486 85
+36976 6 95 78
+3697c 8 486 85
+FUNC 36984 18 0 google_breakpad::MemoryRange::GetData
+36984 2 90 55
+36986 4 83 55
+3698a 4 82 55
+3698e 4 83 55
+36992 4 91 55
+36996 4 91 55
+3699a 2 92 55
+FUNC 3699c 26 0 google_breakpad::MemoryRange::Subrange
+3699c 4 124 55
+369a0 4 83 55
+369a4 4 82 55
+369a8 4 83 55
+369ac 4 126 55
+369b0 2 72 55
+369b2 2 70 55
+369b4 6 72 55
+369ba 6 50 55
+369c0 2 127 55
+FUNC 3699c 26 0 google_breakpad::MinidumpMemoryRange::Subrange
+3699c 4 59 77
+369a0 4 83 55
+369a4 4 82 55
+369a8 4 83 55
+369ac 4 61 77
+369b0 2 72 55
+369b2 2 70 55
+369b4 6 72 55
+369ba 6 50 55
+369c0 2 63 77
+FUNC 369c2 44 0 google_breakpad::MinidumpMemoryRange::GetAsciiMDString
+369c2 2 74 77
+369c4 6 74 77
+369ca 2 101 108
+369cc 2 120 137
+369ce 2 481 106
+369d0 8 124 137
+369d8 2 99 55
+369da 2 101 108
+369dc 8 99 55
+369e4 4 77 77
+369e8 2 78 77
+369ea 6 79 77
+369f0 6 79 77
+369f6 8 80 77
+369fe 4 79 77
+36a02 4 84 77
+FUNC 36a08 98 0 testing::PrintToString<char const*>
+36a08 e 883 80
+36a16 2 883 80
+36a18 4 884 80
+36a1c 2 883 80
+36a1e 4 884 80
+36a22 2 883 80
+36a24 4 884 80
+36a28 8 885 80
+36a30 2 708 80
+36a32 c 333 127
+36a3e 2 112 137
+36a40 2 229 145
+36a42 2 112 137
+36a44 2 481 106
+36a46 6 229 145
+36a4c 4 643 135
+36a50 8 379 136
+36a58 a 148 142
+36a62 2 101 108
+36a64 2 380 136
+36a66 2 469 80
+36a68 2 101 108
+36a6a 6 469 80
+36a70 6 156 137
+36a76 8 75 132
+36a7e 6 886 80
+36a84 1c 887 80
+FUNC 36aa0 2c 0 testing::internal::DefaultPrintTo<int const>
+36aa0 2 307 80
+36aa2 2 307 80
+36aa4 4 310 80
+36aa8 4 334 80
+36aac a 333 127
+36ab6 6 318 80
+36abc 4 291 126
+36ac0 4 334 80
+36ac4 8 291 126
+FUNC 36aa0 2c 0 testing::internal::DefaultPrintTo<void const>
+FUNC 36acc c8 0 testing::operator<<
+36acc e 232 79
+36ada 2 232 79
+36adc 6 233 79
+36ae2 2 232 79
+36ae4 4 233 79
+36ae8 c 181 127
+36af4 2 41 138
+36af6 10 62 138
+36b06 2 139 115
+36b08 6 400 136
+36b0e e 44 138
+36b1c 2 138 115
+36b1e 2 139 115
+36b20 2 46 138
+36b22 e 49 138
+36b30 6 52 138
+36b36 a 55 138
+36b40 6 55 138
+36b46 a 53 138
+36b50 6 55 138
+36b56 6 57 138
+36b5c a 58 138
+36b66 4 58 138
+36b6a 6 64 138
+36b70 6 156 137
+36b76 e 234 79
+36b84 4 50 138
+36b88 c 234 79
+FUNC 36b94 a0 0 testing::internal::CmpHelperEQFailure<int const*, int const*>
+36b94 e 1464 82
+36ba2 2 1464 82
+36ba4 2 884 80
+36ba6 6 1464 82
+36bac 4 380 80
+36bb0 2 1464 82
+36bb2 4 884 80
+36bb6 4 1464 82
+36bba 2 75 132
+36bbc 4 884 80
+36bc0 4 380 80
+36bc4 2 75 132
+36bc6 4 380 80
+36bca 8 75 132
+36bd2 6 886 80
+36bd8 8 884 80
+36be0 6 380 80
+36be6 4 75 132
+36bea 4 380 80
+36bee 8 75 132
+36bf6 6 886 80
+36bfc 14 1471 82
+36c10 c 156 137
+36c1c 18 1472 82
+FUNC 36c34 28 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+36c34 2 311 139
+36c36 4 311 139
+36c3a 6 229 145
+36c40 2 400 136
+36c42 2 229 145
+36c44 2 400 136
+36c46 4 315 139
+36c4a 6 226 145
+36c50 8 315 139
+36c58 2 315 139
+36c5a 2 316 139
+FUNC 36c5c 98 0 testing::internal::CmpHelperEQ<char [1], std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+36c5c e 1476 82
+36c6a a 1476 82
+36c74 4 1481 82
+36c78 4 1476 82
+36c7c 8 1481 82
+36c84 a 1482 82
+36c8e 6 1427 82
+36c94 4 884 80
+36c98 4 1427 82
+36c9c 8 884 80
+36ca4 4 469 80
+36ca8 4 75 132
+36cac 4 469 80
+36cb0 8 75 132
+36cb8 6 886 80
+36cbe 12 1471 82
+36cd0 c 156 137
+36cdc 18 1488 82
+FUNC 36cf4 308 0 MinidumpMemoryRangeTest_GetAsciiMDString_Test::TestBody
+36cf4 6 224 78
+36cfa 2 225 78
+36cfc 6 224 78
+36d02 2 225 78
+36d04 2 224 78
+36d06 6 225 78
+36d0c 2 224 78
+36d0e 4 225 78
+36d12 4 228 78
+36d16 4 229 78
+36d1a 4 230 78
+36d1e 4 231 78
+36d22 4 232 78
+36d26 2 241 78
+36d28 4 242 78
+36d2c 4 243 78
+36d30 4 244 78
+36d34 2 245 78
+36d36 2 239 78
+36d38 2 245 78
+36d3a 2 247 78
+36d3c 2 239 78
+36d3e 2 240 78
+36d40 2 239 78
+36d42 2 247 78
+36d44 2 248 78
+36d46 2 70 55
+36d48 4 1481 82
+36d4c 4 72 55
+36d50 2 251 78
+36d52 2 240 78
+36d54 4 251 78
+36d58 2 1481 82
+36d5a 2 239 78
+36d5c 2 248 78
+36d5e 4 251 78
+36d62 12 1481 82
+36d74 e 1482 82
+36d82 a 1427 82
+36d8c 8 884 80
+36d94 4 75 132
+36d98 8 469 80
+36da0 8 75 132
+36da8 6 886 80
+36dae 18 1471 82
+36dc6 12 156 137
+36dd8 4 251 78
+36ddc 6 302 82
+36de2 c 251 78
+36dee 4 251 78
+36df2 8 251 78
+36dfa 6 251 78
+36e00 8 251 78
+36e08 6 85 79
+36e0e 6 251 78
+36e14 4 256 82
+36e18 4 1481 82
+36e1c 6 256 82
+36e22 2 1481 82
+36e24 a 252 78
+36e2e c 1481 82
+36e3a e 1482 82
+36e48 a 1427 82
+36e52 8 884 80
+36e5a 4 75 132
+36e5e 8 469 80
+36e66 8 75 132
+36e6e 6 886 80
+36e74 14 1471 82
+36e88 12 156 137
+36e9a 4 252 78
+36e9e 6 302 82
+36ea4 a 252 78
+36eae 4 252 78
+36eb2 8 252 78
+36eba 6 252 78
+36ec0 8 252 78
+36ec8 6 85 79
+36ece 6 252 78
+36ed4 6 256 82
+36eda a 255 78
+36ee4 14 1512 82
+36ef8 6 156 137
+36efe 4 255 78
+36f02 6 302 82
+36f08 c 255 78
+36f14 4 255 78
+36f18 8 255 78
+36f20 6 255 78
+36f26 8 256 78
+36f2e 6 85 79
+36f34 6 255 78
+36f3a 6 256 82
+36f40 a 257 78
+36f4a 14 1512 82
+36f5e 6 156 137
+36f64 4 257 78
+36f68 6 302 82
+36f6e c 257 78
+36f7a 2 257 78
+36f7c 8 257 78
+36f84 6 257 78
+36f8a 8 257 78
+36f92 6 85 79
+36f98 6 257 78
+36f9e 6 256 82
+36fa4 58 258 78
+FUNC 36ffc 48 0 testing::PrintToString<unsigned char const*>
+36ffc e 883 80
+3700a 2 883 80
+3700c 6 884 80
+37012 2 883 80
+37014 4 884 80
+37018 8 380 80
+37020 8 75 132
+37028 6 886 80
+3702e 16 887 80
+FUNC 37044 74 0 testing::internal::CmpHelperEQ<unsigned char const*, unsigned char const*>
+37044 8 1476 82
+3704c c 1476 82
+37058 2 1481 82
+3705a 2 1476 82
+3705c 4 1481 82
+37060 2 1476 82
+37062 2 1481 82
+37064 2 1476 82
+37066 2 1481 82
+37068 6 1482 82
+3706e 14 1382 82
+37082 12 1471 82
+37094 c 156 137
+370a0 18 1488 82
+FUNC 370b8 e0 0 MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test::TestBody
+370b8 2 101 78
+370ba 2 103 78
+370bc 2 101 78
+370be 4 103 78
+370c2 18 1512 82
+370da 6 103 78
+370e0 6 302 82
+370e6 12 103 78
+370f8 6 103 78
+370fe 8 103 78
+37106 6 85 79
+3710c 6 103 78
+37112 8 256 82
+3711a 2 104 78
+3711c 2 1512 82
+3711e 2 104 78
+37120 12 1512 82
+37132 6 104 78
+37138 6 302 82
+3713e 12 104 78
+37150 6 104 78
+37156 8 104 78
+3715e 6 85 79
+37164 6 104 78
+3716a 6 256 82
+37170 28 105 78
+FUNC 37198 d4 0 MinidumpMemoryRangeTest_DefaultConstructor_Test::TestBody
+37198 4 95 78
+3719c 2 1571 82
+3719e 2 95 78
+371a0 1a 1571 82
+371ba 8 97 78
+371c2 6 302 82
+371c8 10 97 78
+371d8 6 97 78
+371de 8 97 78
+371e6 6 85 79
+371ec 6 97 78
+371f2 8 256 82
+371fa 2 98 78
+371fc 4 1552 82
+37200 4 98 78
+37204 e 1552 82
+37212 6 98 78
+37218 6 302 82
+3721e 10 98 78
+3722e 6 98 78
+37234 8 98 78
+3723c 6 85 79
+37242 6 98 78
+37248 6 256 82
+3724e 1e 99 78
+FUNC 3726c e8 0 MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test::TestBody
+3726c 2 133 78
+3726e 2 50 55
+37270 2 133 78
+37272 8 135 78
+3727a 4 50 55
+3727e 6 135 78
+37284 1c 1571 82
+372a0 8 136 78
+372a8 6 302 82
+372ae 10 136 78
+372be 6 136 78
+372c4 8 136 78
+372cc 6 85 79
+372d2 6 136 78
+372d8 8 256 82
+372e0 2 137 78
+372e2 2 1552 82
+372e4 2 137 78
+372e6 2 1552 82
+372e8 2 137 78
+372ea 2 1552 82
+372ec 2 137 78
+372ee c 1552 82
+372fa 6 137 78
+37300 6 302 82
+37306 10 137 78
+37316 6 137 78
+3731c 8 137 78
+37324 6 85 79
+3732a 6 137 78
+37330 6 256 82
+37336 1e 138 78
+FUNC 37354 1a0 0 MinidumpMemoryRangeTest_Set_Test::TestBody
+37354 2 122 78
+37356 2 125 78
+37358 2 122 78
+3735a 4 125 78
+3735e 18 1512 82
+37376 8 125 78
+3737e 6 302 82
+37384 10 125 78
+37394 6 125 78
+3739a 8 125 78
+373a2 6 85 79
+373a8 6 125 78
+373ae 8 256 82
+373b6 2 126 78
+373b8 2 1512 82
+373ba 2 126 78
+373bc 12 1512 82
+373ce 6 126 78
+373d4 6 302 82
+373da 10 126 78
+373ea 6 126 78
+373f0 8 126 78
+373f8 6 85 79
+373fe 6 126 78
+37404 8 256 82
+3740c 16 1571 82
+37422 8 129 78
+3742a 6 302 82
+37430 10 129 78
+37440 6 129 78
+37446 8 129 78
+3744e 6 85 79
+37454 6 129 78
+3745a 6 256 82
+37460 2 130 78
+37462 4 1552 82
+37466 4 130 78
+3746a e 1552 82
+37478 6 130 78
+3747e 6 302 82
+37484 10 130 78
+37494 6 130 78
+3749a 8 130 78
+374a2 6 85 79
+374a8 6 130 78
+374ae 6 256 82
+374b4 40 131 78
+FUNC 374f4 264 0 MinidumpMemoryRangeTest_Reset_Test::TestBody
+374f4 4 107 78
+374f8 2 1571 82
+374fa 2 107 78
+374fc 1a 1571 82
+37516 8 110 78
+3751e 6 302 82
+37524 10 110 78
+37534 6 110 78
+3753a 8 110 78
+37542 6 85 79
+37548 6 110 78
+3754e 8 256 82
+37556 2 111 78
+37558 4 1552 82
+3755c 4 111 78
+37560 e 1552 82
+3756e 6 111 78
+37574 6 302 82
+3757a 10 111 78
+3758a 6 111 78
+37590 8 111 78
+37598 6 85 79
+3759e 6 111 78
+375a4 6 256 82
+375aa 2 114 78
+375ac 2 1512 82
+375ae 4 114 78
+375b2 12 1512 82
+375c4 6 114 78
+375ca 6 302 82
+375d0 10 114 78
+375e0 6 114 78
+375e6 8 114 78
+375ee 6 85 79
+375f4 6 114 78
+375fa 6 256 82
+37600 2 115 78
+37602 2 1512 82
+37604 2 115 78
+37606 12 1512 82
+37618 6 115 78
+3761e 6 302 82
+37624 10 115 78
+37634 6 115 78
+3763a 8 115 78
+37642 6 85 79
+37648 6 115 78
+3764e 8 256 82
+37656 16 1571 82
+3766c 8 118 78
+37674 6 302 82
+3767a 10 118 78
+3768a 6 118 78
+37690 8 118 78
+37698 6 85 79
+3769e 6 118 78
+376a4 6 256 82
+376aa 2 119 78
+376ac 4 1552 82
+376b0 4 119 78
+376b4 e 1552 82
+376c2 6 119 78
+376c8 6 302 82
+376ce 10 119 78
+376de 6 119 78
+376e4 8 119 78
+376ec 6 85 79
+376f2 6 119 78
+376f8 6 256 82
+376fe 5a 120 78
+FUNC 37758 74 0 testing::internal::CmpHelperEQ<unsigned char const*, void const*>
+37758 8 1476 82
+37760 c 1476 82
+3776c 2 1481 82
+3776e 2 1476 82
+37770 4 1481 82
+37774 2 1476 82
+37776 2 1481 82
+37778 2 1476 82
+3777a 2 1481 82
+3777c 6 1482 82
+37782 14 1382 82
+37796 12 1471 82
+377a8 c 156 137
+377b4 18 1488 82
+FUNC 377cc 74 0 testing::internal::CmpHelperEQ<void const*, void const*>
+377cc 8 1476 82
+377d4 c 1476 82
+377e0 2 1481 82
+377e2 2 1476 82
+377e4 4 1481 82
+377e8 2 1476 82
+377ea 2 1481 82
+377ec 2 1476 82
+377ee 2 1481 82
+377f0 6 1482 82
+377f6 14 1382 82
+3780a 12 1471 82
+3781c c 156 137
+37828 18 1488 82
+FUNC 37840 148 0 MinidumpMemoryRangeTest_GetArrayElement_Test::TestBody
+37840 4 201 78
+37844 2 70 55
+37846 2 201 78
+37848 4 70 55
+3784c 6 72 55
+37852 c 208 78
+3785e 2 333 127
+37860 2 208 78
+37862 10 333 127
+37872 c 1512 82
+3787e 2 207 78
+37880 4 206 78
+37884 2 208 78
+37886 2 208 78
+37888 2 208 78
+3788a 2 207 78
+3788c 4 204 78
+37890 4 208 78
+37894 6 208 78
+3789a a 333 127
+378a4 a 254 126
+378ae a 333 127
+378b8 a 254 126
+378c2 a 333 127
+378cc a 254 126
+378d6 6 131 79
+378dc 4 208 78
+378e0 4 131 79
+378e4 c 208 78
+378f0 c 85 79
+378fc c 109 55
+37908 2 1512 82
+3790a 2 211 78
+3790c c 1512 82
+37918 6 211 78
+3791e 6 302 82
+37924 10 211 78
+37934 6 211 78
+3793a 8 212 78
+37942 6 85 79
+37948 6 211 78
+3794e 6 256 82
+37954 6 213 78
+3795a 8 203 78
+37962 26 214 78
+FUNC 37988 490 0 MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test::TestBody
+37988 10 165 78
+37998 2 165 78
+3799a 2 70 55
+3799c 2 72 55
+3799e 4 70 55
+379a2 4 72 55
+379a6 2 168 78
+379a8 2 72 55
+379aa 4 168 78
+379ae c 333 127
+379ba 6 171 78
+379c0 c 1571 82
+379cc 2 168 78
+379ce 2 171 78
+379d0 6 168 78
+379d6 2 169 78
+379d8 2 170 78
+379da 2 171 78
+379dc 2 171 78
+379de 2 170 78
+379e0 4 171 78
+379e4 6 171 78
+379ea a 333 127
+379f4 a 254 126
+379fe a 333 127
+37a08 a 254 126
+37a12 6 131 79
+37a18 4 171 78
+37a1c 4 131 79
+37a20 c 171 78
+37a2c 6 85 79
+37a32 4 68 77
+37a36 6 85 79
+37a3c 12 68 77
+37a4e 8 178 78
+37a56 4 83 55
+37a5a 4 82 55
+37a5e a 83 55
+37a68 2 83 55
+37a6a 2 1139 87
+37a6c 4 277 82
+37a70 2 1139 87
+37a72 2 179 78
+37a74 1a 179 78
+37a8e 8 179 78
+37a96 4 179 78
+37a9a a 179 78
+37aa4 6 179 78
+37aaa 8 179 78
+37ab2 6 85 79
+37ab8 6 179 78
+37abe 6 156 137
+37ac4 6 256 82
+37aca 14 180 78
+37ade a 1512 82
+37ae8 2 180 78
+37aea e 1512 82
+37af8 6 180 78
+37afe 6 302 82
+37b04 10 180 78
+37b14 6 180 78
+37b1a 8 181 78
+37b22 6 85 79
+37b28 6 180 78
+37b2e a 256 82
+37b38 2 182 78
+37b3a 2 1512 82
+37b3c 4 182 78
+37b40 2 1512 82
+37b42 4 182 78
+37b46 2 1512 82
+37b48 2 182 78
+37b4a 8 1512 82
+37b52 2 182 78
+37b54 4 1512 82
+37b58 6 182 78
+37b5e 6 302 82
+37b64 10 182 78
+37b74 6 182 78
+37b7a 8 182 78
+37b82 6 85 79
+37b88 6 182 78
+37b8e 6 256 82
+37b94 2 183 78
+37b96 4 1512 82
+37b9a 2 183 78
+37b9c e 1512 82
+37baa 6 183 78
+37bb0 6 302 82
+37bb6 10 183 78
+37bc6 6 183 78
+37bcc 8 183 78
+37bd4 6 85 79
+37bda 6 183 78
+37be0 4 256 82
+37be4 4 83 55
+37be8 4 82 55
+37bec c 83 55
+37bf8 2 1139 87
+37bfa 4 185 78
+37bfe 4 277 82
+37c02 2 1139 87
+37c04 2 185 78
+37c06 1a 185 78
+37c20 8 185 78
+37c28 4 185 78
+37c2c a 185 78
+37c36 6 185 78
+37c3c 8 185 78
+37c44 6 85 79
+37c4a 6 185 78
+37c50 6 156 137
+37c56 a 256 82
+37c60 a 186 78
+37c6a 1a 1571 82
+37c84 6 186 78
+37c8a 6 302 82
+37c90 10 186 78
+37ca0 6 186 78
+37ca6 8 186 78
+37cae 6 85 79
+37cb4 6 186 78
+37cba 8 256 82
+37cc2 1a 1571 82
+37cdc 6 187 78
+37ce2 6 302 82
+37ce8 10 187 78
+37cf8 6 187 78
+37cfe 8 187 78
+37d06 6 85 79
+37d0c 6 187 78
+37d12 6 256 82
+37d18 2 188 78
+37d1a 2 1552 82
+37d1c 2 188 78
+37d1e 2 1552 82
+37d20 2 188 78
+37d22 2 1552 82
+37d24 2 188 78
+37d26 c 1552 82
+37d32 6 188 78
+37d38 6 302 82
+37d3e 10 188 78
+37d4e 6 188 78
+37d54 8 188 78
+37d5c 6 85 79
+37d62 6 188 78
+37d68 8 256 82
+37d70 6 190 78
+37d76 6 167 78
+37d7c 9c 191 78
+FUNC 37e18 490 0 MinidumpMemoryRangeTest_SubrangeAndGetData_Test::TestBody
+37e18 10 140 78
+37e28 2 140 78
+37e2a 2 70 55
+37e2c 2 72 55
+37e2e 4 70 55
+37e32 4 72 55
+37e36 2 143 78
+37e38 2 72 55
+37e3a 4 143 78
+37e3e c 333 127
+37e4a 6 146 78
+37e50 c 1571 82
+37e5c 2 143 78
+37e5e 2 146 78
+37e60 6 143 78
+37e66 2 144 78
+37e68 2 145 78
+37e6a 2 146 78
+37e6c 2 146 78
+37e6e 2 145 78
+37e70 4 146 78
+37e74 6 146 78
+37e7a a 333 127
+37e84 a 254 126
+37e8e a 333 127
+37e98 a 254 126
+37ea2 6 131 79
+37ea8 4 146 78
+37eac 4 131 79
+37eb0 c 146 78
+37ebc 6 85 79
+37ec2 4 149 78
+37ec6 6 85 79
+37ecc 12 149 78
+37ede 8 150 78
+37ee6 4 83 55
+37eea 4 82 55
+37eee a 83 55
+37ef8 2 83 55
+37efa 2 1139 87
+37efc 4 277 82
+37f00 2 1139 87
+37f02 2 151 78
+37f04 1a 151 78
+37f1e 8 151 78
+37f26 4 151 78
+37f2a a 151 78
+37f34 6 151 78
+37f3a 8 151 78
+37f42 6 85 79
+37f48 6 151 78
+37f4e 6 156 137
+37f54 6 256 82
+37f5a 14 152 78
+37f6e a 1512 82
+37f78 2 152 78
+37f7a e 1512 82
+37f88 6 152 78
+37f8e 6 302 82
+37f94 10 152 78
+37fa4 6 152 78
+37faa 8 153 78
+37fb2 6 85 79
+37fb8 6 152 78
+37fbe a 256 82
+37fc8 2 154 78
+37fca 2 1512 82
+37fcc 4 154 78
+37fd0 2 1512 82
+37fd2 4 154 78
+37fd6 2 1512 82
+37fd8 2 154 78
+37fda 8 1512 82
+37fe2 2 154 78
+37fe4 4 1512 82
+37fe8 6 154 78
+37fee 6 302 82
+37ff4 10 154 78
+38004 6 154 78
+3800a 8 154 78
+38012 6 85 79
+38018 6 154 78
+3801e 6 256 82
+38024 2 155 78
+38026 4 1512 82
+3802a 2 155 78
+3802c e 1512 82
+3803a 6 155 78
+38040 6 302 82
+38046 10 155 78
+38056 6 155 78
+3805c 8 155 78
+38064 6 85 79
+3806a 6 155 78
+38070 4 256 82
+38074 4 83 55
+38078 4 82 55
+3807c c 83 55
+38088 2 1139 87
+3808a 4 157 78
+3808e 4 277 82
+38092 2 1139 87
+38094 2 157 78
+38096 1a 157 78
+380b0 8 157 78
+380b8 4 157 78
+380bc a 157 78
+380c6 6 157 78
+380cc 8 157 78
+380d4 6 85 79
+380da 6 157 78
+380e0 6 156 137
+380e6 a 256 82
+380f0 a 158 78
+380fa 1a 1571 82
+38114 6 158 78
+3811a 6 302 82
+38120 10 158 78
+38130 6 158 78
+38136 8 158 78
+3813e 6 85 79
+38144 6 158 78
+3814a 8 256 82
+38152 1a 1571 82
+3816c 6 159 78
+38172 6 302 82
+38178 10 159 78
+38188 6 159 78
+3818e 8 159 78
+38196 6 85 79
+3819c 6 159 78
+381a2 6 256 82
+381a8 2 160 78
+381aa 2 1552 82
+381ac 2 160 78
+381ae 2 1552 82
+381b0 2 160 78
+381b2 2 1552 82
+381b4 2 160 78
+381b6 c 1552 82
+381c2 6 160 78
+381c8 6 302 82
+381ce 10 160 78
+381de 6 160 78
+381e4 8 160 78
+381ec 6 85 79
+381f2 6 160 78
+381f8 8 256 82
+38200 6 162 78
+38206 6 142 78
+3820c 9c 163 78
+FUNC 382a8 6c 0 testing::internal::CmpHelperEQFailure<char const*, char const*>
+382a8 8 1464 82
+382b0 6 1464 82
+382b6 4 1408 82
+382ba 2 1464 82
+382bc 2 1408 82
+382be 6 1464 82
+382c4 4 1408 82
+382c8 2 1464 82
+382ca 14 1408 82
+382de 12 1471 82
+382f0 c 156 137
+382fc 18 1472 82
+FUNC 38314 124 0 MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test::TestBody
+38314 2 216 78
+38316 2 70 55
+38318 2 216 78
+3831a 4 70 55
+3831e 2 72 55
+38320 8 109 55
+38328 2 72 55
+3832a 4 109 55
+3832e 2 219 78
+38330 2 218 78
+38332 6 219 78
+38338 2 1481 82
+3833a 2 219 78
+3833c 2 1481 82
+3833e 8 1482 82
+38346 14 1487 82
+3835a 6 219 78
+38360 6 302 82
+38366 a 219 78
+38370 2 219 78
+38372 8 219 78
+3837a 6 219 78
+38380 8 219 78
+38388 6 85 79
+3838e 6 219 78
+38394 8 256 82
+3839c a 109 55
+383a6 2 221 78
+383a8 2 220 78
+383aa 4 221 78
+383ae 2 1481 82
+383b0 2 221 78
+383b2 2 1481 82
+383b4 8 1482 82
+383bc 14 1487 82
+383d0 6 221 78
+383d6 6 302 82
+383dc a 221 78
+383e6 2 221 78
+383e8 8 221 78
+383f0 6 221 78
+383f6 8 221 78
+383fe 6 85 79
+38404 6 221 78
+3840a 6 256 82
+38410 28 222 78
+FUNC 38438 124 0 MinidumpMemoryRangeTest_GetDataWithTemplateType_Test::TestBody
+38438 2 193 78
+3843a 2 70 55
+3843c 2 193 78
+3843e 4 70 55
+38442 2 72 55
+38444 8 99 55
+3844c 2 72 55
+3844e 4 99 55
+38452 2 196 78
+38454 2 195 78
+38456 6 196 78
+3845c 2 1481 82
+3845e 2 196 78
+38460 2 1481 82
+38462 8 1482 82
+3846a 14 1487 82
+3847e 6 196 78
+38484 6 302 82
+3848a a 196 78
+38494 2 196 78
+38496 8 196 78
+3849e 6 196 78
+384a4 8 196 78
+384ac 6 85 79
+384b2 6 196 78
+384b8 8 256 82
+384c0 a 99 55
+384ca 2 198 78
+384cc 2 197 78
+384ce 4 198 78
+384d2 2 1481 82
+384d4 2 198 78
+384d6 2 1481 82
+384d8 8 1482 82
+384e0 14 1487 82
+384f4 6 198 78
+384fa 6 302 82
+38500 a 198 78
+3850a 2 198 78
+3850c 8 198 78
+38514 6 198 78
+3851a 8 198 78
+38522 6 85 79
+38528 6 198 78
+3852e 6 256 82
+38534 28 199 78
+FUNC 3855c 18 0 AndroidUContext_SigmakOffset_Test::~AndroidUContext_SigmakOffset_Test
+3855c 2 183 34
+3855e 16 183 34
+FUNC 38574 12 0 AndroidUContext_SigmakOffset_Test::~AndroidUContext_SigmakOffset_Test
+38574 2 183 34
+38576 6 183 34
+3857c 6 183 34
+38582 4 183 34
+FUNC 38588 18 0 AndroidUContext_GRegsOffset_Test::~AndroidUContext_GRegsOffset_Test
+38588 2 50 34
+3858a 16 50 34
+FUNC 385a0 12 0 AndroidUContext_GRegsOffset_Test::~AndroidUContext_GRegsOffset_Test
+385a0 2 50 34
+385a2 6 50 34
+385a8 6 50 34
+385ae 4 50 34
+FUNC 385b4 20 0 testing::internal::TestFactoryImpl<AndroidUContext_SigmakOffset_Test>::CreateTest
+385b4 2 486 85
+385b6 8 486 85
+385be 6 183 34
+385c4 2 486 85
+385c6 6 183 34
+385cc 8 486 85
+FUNC 385d4 20 0 testing::internal::TestFactoryImpl<AndroidUContext_GRegsOffset_Test>::CreateTest
+385d4 2 486 85
+385d6 8 486 85
+385de 6 50 34
+385e4 2 486 85
+385e6 6 50 34
+385ec 8 486 85
+FUNC 385f4 60 0 AndroidUContext_GRegsOffset_Test::TestBody
+385f4 4 50 34
+385f8 6 1482 82
+385fe 8 54 34
+38606 2 1144 87
+38608 6 298 82
+3860e 4 298 82
+38612 8 54 34
+3861a 2 54 34
+3861c a 54 34
+38626 6 54 34
+3862c 8 54 34
+38634 6 85 79
+3863a 6 54 34
+38640 6 256 82
+38646 e 181 34
+FUNC 38654 60 0 AndroidUContext_SigmakOffset_Test::TestBody
+38654 4 183 34
+38658 6 1482 82
+3865e 8 184 34
+38666 2 1144 87
+38668 6 298 82
+3866e 4 298 82
+38672 8 184 34
+3867a 2 184 34
+3867c a 184 34
+38686 6 184 34
+3868c 8 184 34
+38694 6 85 79
+3869a 6 184 34
+386a0 6 256 82
+386a6 e 186 34
+FUNC 386b4 6 0 std::basic_streambuf<char, std::char_traits<char> >::_M_sputnc
+386b4 6 209 134
+FUNC 386ba 20 0 std::basic_streambuf<char, std::char_traits<char> >::sputc
+386ba 2 198 134
+386bc 4 200 134
+386c0 2 198 134
+386c2 4 200 134
+386c6 4 201 134
+386ca 2 199 134
+386cc 4 200 134
+386d0 6 199 134
+386d6 4 201 134
+FUNC 386da a6 0 std::basic_ostream<char, std::char_traits<char> >::_M_put_char
+386da 2 300 126
+386dc 4 300 126
+386e0 a 181 127
+386ea 4 302 126
+386ee e 305 126
+386fc 4 307 126
+38700 2 309 126
+38702 2 310 126
+38704 8 309 126
+3870c 6 310 126
+38712 4 311 126
+38716 4 311 126
+3871a 2 312 126
+3871c 2 312 126
+3871e 6 312 126
+38724 a 312 126
+3872e 8 311 126
+38736 a 315 126
+38740 4 316 126
+38744 8 316 126
+3874c 8 316 126
+38754 6 316 126
+3875a 2 139 115
+3875c 2 319 126
+3875e 8 139 115
+38766 2 325 126
+38768 e 326 126
+38776 6 327 126
+3877c 4 328 126
+FUNC 38780 1bc 0 std::operator+<char, std::char_traits<char>, std::allocator<char> >
+38780 4 46 139
+38784 4 46 139
+38788 2 229 145
+3878a 2 46 139
+3878c 4 229 145
+38790 4 400 136
+38794 2 229 145
+38796 4 400 136
+3879a 2 608 135
+3879c 2 120 137
+3879e 2 481 106
+387a0 2 608 135
+387a2 8 600 135
+387aa 4 610 135
+387ae 6 347 106
+387b4 4 348 106
+387b8 2 613 135
+387ba 2 611 135
+387bc 2 613 135
+387be 2 612 135
+387c0 2 613 135
+387c2 6 101 108
+387c8 2 57 139
+387ca 4 470 136
+387ce 2 64 137
+387d0 4 74 137
+387d4 4 74 137
+387d8 4 74 137
+387dc 2 74 137
+387de 4 472 136
+387e2 8 473 136
+387ea 4 346 106
+387ee 6 347 106
+387f4 4 348 106
+387f8 4 352 106
+387fc 4 353 106
+38800 6 356 106
+38806 4 107 142
+3880a c 106 142
+38816 4 107 142
+3881a 2 107 142
+3881c 8 106 142
+38824 2 101 108
+38826 2 107 142
+38828 2 101 108
+3882a 6 478 136
+38830 4 479 136
+38834 2 160 137
+38836 2 164 137
+38838 8 165 137
+38840 4 482 136
+38844 2 232 145
+38846 2 483 136
+38848 2 107 142
+3884a 4 483 136
+3884e 2 107 142
+38850 6 106 142
+38856 6 101 108
+3885c a 485 136
+38866 4 197 135
+3886a 2 64 137
+3886c 2 198 135
+3886e 4 74 137
+38872 4 74 137
+38876 4 74 137
+3887a 2 74 137
+3887c 4 199 135
+38880 8 200 135
+38888 4 346 106
+3888c 6 347 106
+38892 4 348 106
+38896 4 352 106
+3889a 4 348 106
+3889e 4 356 106
+388a2 14 86 142
+388b6 8 86 142
+388be 1c 146 108
+388da 8 86 142
+388e2 6 146 108
+388e8 8 101 108
+388f0 8 205 135
+388f8 4 206 135
+388fc 2 160 137
+388fe 2 164 137
+38900 6 165 137
+38906 4 210 135
+3890a 6 86 142
+38910 8 86 142
+38918 6 146 108
+3891e a 101 108
+38928 2 232 145
+3892a 6 214 135
+38930 c 60 139
+FUNC 3893c 194 0 testing::internal::PrintCharAndCodeTo<unsigned char, unsigned char>
+3893c c 217 93
+38948 2 333 127
+3894a 2 217 93
+3894c 2 333 127
+3894e 4 217 93
+38952 2 333 127
+38954 2 217 93
+38956 4 333 127
+3895a 12 147 93
+3896c 8 333 127
+38974 8 147 93
+3897c 8 333 127
+38984 e 147 93
+38992 8 333 127
+3899a 8 147 93
+389a2 12 333 127
+389b4 4 187 93
+389b8 28 333 127
+389e0 4 138 93
+389e4 4 179 93
+389e8 8 305 127
+389f0 4 181 93
+389f4 a 183 93
+389fe 10 183 93
+38a0e 8 183 93
+38a16 c 156 137
+38a22 2 184 93
+38a24 a 333 127
+38a2e 2 226 93
+38a30 a 333 127
+38a3a 8 240 126
+38a42 4 233 93
+38a46 6 233 93
+38a4c 2 333 127
+38a4e 2 236 93
+38a50 8 333 127
+38a58 8 236 93
+38a60 8 236 93
+38a68 6 156 137
+38a6e a 333 127
+38a78 58 239 93
+FUNC 38ad0 4 0 testing::internal::PrintTo
+38ad0 4 242 93
+FUNC 38ad4 11c 0 testing::internal::PrintAsCharLiteralTo<wchar_t, wchar_t>
+38ad4 e 146 93
+38ae2 2 147 93
+38ae4 6 146 93
+38aea e 147 93
+38af8 8 333 127
+38b00 8 147 93
+38b08 8 333 127
+38b10 e 147 93
+38b1e 8 333 127
+38b26 8 147 93
+38b2e 3a 333 127
+38b68 4 187 93
+38b6c 4 138 93
+38b70 4 179 93
+38b74 8 305 127
+38b7c 4 181 93
+38b80 a 183 93
+38b8a e 183 93
+38b98 8 183 93
+38ba0 c 156 137
+38bac 2 184 93
+38bae 42 188 93
+FUNC 38bf0 bc 0 testing::internal::PrintCharsAsStringTo<char>
+38bf0 4 262 93
+38bf4 2 262 93
+38bf6 2 333 127
+38bf8 2 262 93
+38bfa 4 333 127
+38bfe 2 262 93
+38c00 4 333 127
+38c04 2 266 93
+38c06 18 333 127
+38c1e 4 267 93
+38c22 4 268 93
+38c26 4 269 93
+38c2a a 154 98
+38c34 6 269 93
+38c3a c 193 93
+38c46 8 333 127
+38c4e 4 196 93
+38c52 8 333 127
+38c5a 4 199 93
+38c5e 8 201 93
+38c66 8 275 93
+38c6e 4 333 127
+38c72 4 278 93
+38c76 36 333 127
+FUNC 38cac e 0 testing::internal::PrintStringTo
+38cac 6 354 93
+38cb2 2 400 136
+38cb4 6 355 93
+FUNC 38cba 12 0 testing::internal::HasNewFatalFailureHelper::ReportTestPartResult
+38cba 4 103 94
+38cbe 6 104 94
+38cc4 8 105 94
+FUNC 38ccc 20 0 testing::internal::HasNewFatalFailureHelper::~HasNewFatalFailureHelper
+38ccc 4 96 94
+38cd0 8 96 94
+38cd8 4 937 91
+38cdc 8 98 94
+38ce4 8 99 94
+FUNC 38cec 12 0 testing::internal::HasNewFatalFailureHelper::~HasNewFatalFailureHelper
+38cec 2 96 94
+38cee 2 96 94
+38cf0 4 99 94
+38cf4 6 99 94
+38cfa 4 99 94
+FUNC 38d00 30 0 testing::internal::HasNewFatalFailureHelper::HasNewFatalFailureHelper
+38d00 2 92 94
+38d02 2 89 94
+38d04 a 92 94
+38d0e 2 89 94
+38d10 4 937 91
+38d14 6 92 94
+38d1a 2 92 94
+38d1c 4 937 91
+38d20 8 93 94
+38d28 8 94 94
+FUNC 38d30 58 0 testing::TestPartResult::ExtractSummary
+38d30 2 51 94
+38d32 4 51 94
+38d36 c 52 94
+38d42 2 112 137
+38d44 2 54 94
+38d46 2 481 106
+38d48 2 54 94
+38d4a 8 229 145
+38d52 a 379 136
+38d5c 4 107 142
+38d60 2 355 119
+38d62 8 324 136
+38d6a 6 107 142
+38d70 8 106 142
+38d78 2 107 142
+38d7a 2 101 108
+38d7c 2 325 136
+38d7e 2 101 108
+38d80 8 55 94
+FUNC 38d88 32 0 testing::TestPartResult::TestPartResult
+38d88 2 47 81
+38d8a 12 47 81
+38d9c 4 47 81
+38da0 2 47 81
+38da2 8 47 81
+38daa c 47 81
+38db6 4 47 81
+FUNC 38dbc 190 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::_M_insert_overflow_aux
+38dbc 6 81 143
+38dc2 4 81 143
+38dc6 c 192 144
+38dd2 4 173 144
+38dd6 2 81 143
+38dd8 8 173 144
+38de0 8 41 143
+38de8 a 175 144
+38df2 4 176 144
+38df6 6 176 144
+38dfc 2 176 144
+38dfe 4 347 106
+38e02 2 158 106
+38e04 2 347 106
+38e06 2 158 106
+38e08 6 134 124
+38e0e 8 158 106
+38e16 8 352 106
+38e1e 4 91 143
+38e22 2 84 142
+38e24 e 86 142
+38e32 4 86 142
+38e36 6 139 108
+38e3c 8 139 108
+38e44 4 88 142
+38e48 4 89 142
+38e4c e 86 142
+38e5a a 93 143
+38e64 2 119 108
+38e66 8 119 108
+38e6e 6 95 143
+38e74 a 314 142
+38e7e 8 249 142
+38e86 6 249 142
+38e8c 2 139 108
+38e8e 8 139 108
+38e96 8 249 142
+38e9e 6 98 143
+38ea4 2 86 142
+38ea6 2 84 142
+38ea8 c 86 142
+38eb4 6 86 142
+38eba 6 139 108
+38ec0 8 139 108
+38ec8 4 88 142
+38ecc 4 89 142
+38ed0 10 86 142
+38ee0 8 65 118
+38ee8 2 74 118
+38eea 4 191 108
+38eee 14 156 137
+38f02 2 81 118
+38f04 4 156 137
+38f08 4 81 118
+38f0c 6 662 144
+38f12 2 319 106
+38f14 4 161 106
+38f18 6 135 124
+38f1e 4 161 106
+38f22 6 104 143
+38f28 4 667 144
+38f2c 2 668 144
+38f2e 6 105 143
+38f34 6 346 106
+38f3a 12 356 106
+FUNC 38f4c 8 0 std::ios_base::precision
+38f4c 2 130 115
+38f4e 2 131 115
+38f50 2 132 115
+38f52 2 134 115
+FUNC 38f54 8 0 std::ios_base::width
+38f54 2 137 115
+38f56 2 138 115
+38f58 2 139 115
+38f5a 2 141 115
+FUNC 38f5c a 0 testing::internal::DeleteThreadLocalValue
+38f5c 2 1989 87
+38f5e 8 1989 87
+FUNC 38f66 a 0 testing::Test::DeleteSelf_
+38f66 2 453 82
+38f68 2 453 82
+38f6a 6 453 82
+FUNC 38f70 4 0 testing::TestCase::RunSetUpTestCase
+38f70 4 879 82
+FUNC 38f74 4 0 testing::TestCase::RunTearDownTestCase
+38f74 4 883 82
+FUNC 38f78 e 0 testing::TestCase::TestReportableDisabled
+38f78 4 696 82
+38f7c 2 898 82
+38f7e 4 898 82
+38f82 4 899 82
+FUNC 38f86 6 0 testing::TestCase::TestReportable
+38f86 6 909 82
+FUNC 38f8c 6 0 testing::TestCase::ShouldRunTest
+38f8c 6 914 82
+FUNC 38f92 2 0 testing::EmptyTestEventListener::OnTestProgramStart
+38f92 2 1038 82
+FUNC 38f94 2 0 testing::EmptyTestEventListener::OnTestIterationStart
+38f94 2 1039 82
+FUNC 38f96 2 0 testing::EmptyTestEventListener::OnEnvironmentsSetUpStart
+38f96 2 1041 82
+FUNC 38f98 2 0 testing::EmptyTestEventListener::OnEnvironmentsSetUpEnd
+38f98 2 1042 82
+FUNC 38f9a 2 0 testing::EmptyTestEventListener::OnTestCaseStart
+38f9a 2 1043 82
+FUNC 38f9c 2 0 testing::EmptyTestEventListener::OnTestStart
+38f9c 2 1044 82
+FUNC 38f9e 2 0 testing::EmptyTestEventListener::OnTestPartResult
+38f9e 2 1045 82
+FUNC 38fa0 2 0 testing::EmptyTestEventListener::OnTestEnd
+38fa0 2 1046 82
+FUNC 38fa2 2 0 testing::EmptyTestEventListener::OnTestCaseEnd
+38fa2 2 1047 82
+FUNC 38fa4 2 0 testing::EmptyTestEventListener::OnEnvironmentsTearDownStart
+38fa4 2 1048 82
+FUNC 38fa6 2 0 testing::EmptyTestEventListener::OnEnvironmentsTearDownEnd
+38fa6 2 1049 82
+FUNC 38fa8 2 0 testing::EmptyTestEventListener::OnTestProgramEnd
+38fa8 2 1052 82
+FUNC 38faa 6 0 testing::internal::ShouldRunTestCase
+38faa 6 348 95
+FUNC 38fb0 2 0 testing::internal::OsStackTraceGetter::UponLeavingGTest
+38fb0 2 3802 95
+FUNC 38fb2 6 0 testing::internal::SetUpEnvironment
+38fb2 6 4486 95
+FUNC 38fb8 6 0 testing::internal::TearDownEnvironment
+38fb8 6 4487 95
+FUNC 38fbe a 0 testing::internal::Delete<testing::Environment>
+FUNC 38fbe a 0 testing::internal::Delete<testing::TestCase>
+38fbe 2 340 91
+38fc0 8 340 91
+FUNC 38fbe a 0 testing::internal::Delete<testing::TestEventListener>
+FUNC 38fc8 2c 0 testing::internal::TestEventRepeater::OnTestProgramStart
+38fc8 2 3263 95
+38fca c 3263 95
+38fd6 6 192 144
+38fdc 6 3263 95
+38fe2 12 3263 95
+FUNC 38ff4 2c 0 testing::internal::TestEventRepeater::OnEnvironmentsSetUpStart
+38ff4 2 3264 95
+38ff6 c 3264 95
+39002 6 192 144
+39008 6 3264 95
+3900e 12 3264 95
+FUNC 39020 2c 0 testing::internal::TestEventRepeater::OnTestCaseStart
+39020 2 3265 95
+39022 c 3265 95
+3902e 6 192 144
+39034 6 3265 95
+3903a 12 3265 95
+FUNC 3904c 2c 0 testing::internal::TestEventRepeater::OnTestStart
+3904c 2 3266 95
+3904e c 3266 95
+3905a 6 192 144
+39060 6 3266 95
+39066 12 3266 95
+FUNC 39078 2c 0 testing::internal::TestEventRepeater::OnTestPartResult
+39078 2 3267 95
+3907a c 3267 95
+39086 6 192 144
+3908c 6 3267 95
+39092 12 3267 95
+FUNC 390a4 2c 0 testing::internal::TestEventRepeater::OnEnvironmentsTearDownStart
+390a4 2 3268 95
+390a6 c 3268 95
+390b2 6 192 144
+390b8 6 3268 95
+390be 12 3268 95
+FUNC 390d0 2e 0 testing::internal::TestEventRepeater::OnEnvironmentsSetUpEnd
+390d0 2 3269 95
+390d2 8 3269 95
+390da 8 192 144
+390e2 4 3269 95
+390e6 4 3269 95
+390ea 2 202 144
+390ec 12 3269 95
+FUNC 390fe 2e 0 testing::internal::TestEventRepeater::OnEnvironmentsTearDownEnd
+390fe 2 3270 95
+39100 8 3270 95
+39108 8 192 144
+39110 4 3270 95
+39114 4 3270 95
+39118 2 202 144
+3911a 12 3270 95
+FUNC 3912c 2e 0 testing::internal::TestEventRepeater::OnTestEnd
+3912c 2 3271 95
+3912e 8 3271 95
+39136 8 192 144
+3913e 4 3271 95
+39142 4 3271 95
+39146 2 202 144
+39148 12 3271 95
+FUNC 3915a 2e 0 testing::internal::TestEventRepeater::OnTestCaseEnd
+3915a 2 3272 95
+3915c 8 3272 95
+39164 8 192 144
+3916c 4 3272 95
+39170 4 3272 95
+39174 2 202 144
+39176 12 3272 95
+FUNC 39188 2e 0 testing::internal::TestEventRepeater::OnTestProgramEnd
+39188 2 3273 95
+3918a 8 3273 95
+39192 8 192 144
+3919a 4 3273 95
+3919e 4 3273 95
+391a2 2 202 144
+391a4 12 3273 95
+FUNC 391b6 30 0 testing::internal::TestEventRepeater::OnTestIterationStart
+391b6 2 3279 95
+391b8 2 3280 95
+391ba 6 3279 95
+391c0 6 3280 95
+391c6 6 192 144
+391cc 6 3281 95
+391d2 4 3282 95
+391d6 2 3282 95
+391d8 2 3282 95
+391da 6 3282 95
+391e0 6 3281 95
+FUNC 391e6 36 0 testing::internal::TestEventRepeater::OnTestIterationEnd
+391e6 4 3288 95
+391ea 2 3289 95
+391ec 6 3288 95
+391f2 2 3289 95
+391f4 8 192 144
+391fc 4 3290 95
+39200 4 3290 95
+39204 2 202 144
+39206 2 3291 95
+39208 2 3291 95
+3920a 2 3291 95
+3920c 2 3291 95
+3920e 2 3290 95
+39210 c 3291 95
+FUNC 3921c 44 0 testing::internal::PrintOnOneLine
+3921c 2 4788 95
+3921e 4 4789 95
+39222 6 4796 95
+39228 6 4790 95
+3922e 4 4791 95
+39232 2 4792 95
+39234 4 4804 95
+39238 6 4792 95
+3923e 4 4795 95
+39242 6 4796 95
+39248 4 4797 95
+3924c 4 4799 95
+39250 10 4800 95
+FUNC 39260 2e 0 testing::internal::SumOverTestCaseList
+39260 2 325 95
+39262 2 328 95
+39264 2 325 95
+39266 2 327 95
+39268 6 325 95
+3926e 6 192 144
+39274 6 328 95
+3927a 8 329 95
+39282 2 328 95
+39284 4 329 95
+39288 6 332 95
+FUNC 39290 20 0 testing::internal::StreamingListener::~StreamingListener
+39290 2 1044 91
+39292 a 1044 91
+3929c 4 1153 87
+392a0 6 1155 87
+392a6 a 1044 91
+FUNC 392b0 12 0 testing::internal::StreamingListener::~StreamingListener
+392b0 2 1044 91
+392b2 6 1044 91
+392b8 6 1044 91
+392be 4 1044 91
+FUNC 392c4 34 0 std::allocator<testing::internal::edit_distance::EditType>::_M_allocate
+392c4 4 342 106
+392c8 2 341 106
+392ca 2 341 106
+392cc 2 342 106
+392ce 8 343 106
+392d6 4 343 106
+392da 2 346 106
+392dc 8 347 106
+392e4 4 348 106
+392e8 6 352 106
+392ee a 357 106
+FUNC 392f8 2c 0 std::setprecision
+392f8 2 119 112
+392fa 2 120 112
+392fc 2 119 112
+392fe a 120 112
+39308 a 119 112
+39312 4 39 112
+39316 2 122 112
+39318 2 39 112
+3931a a 122 112
+FUNC 39324 54 0 testing::internal::UnitTestOptions::PatternMatchesString
+39324 2 445 95
+39326 6 445 95
+3932c 18 446 95
+39344 a 449 95
+3934e 6 451 95
+39354 6 453 95
+3935a 6 453 95
+39360 6 453 95
+39366 6 456 95
+3936c 4 457 95
+39370 6 451 95
+39376 2 459 95
+FUNC 39378 24 0 testing::internal::UnitTestOptions::MatchesFilter
+39378 2 462 95
+3937a 4 462 95
+3937e 8 465 95
+39386 4 465 95
+3938a 8 470 95
+39392 2 473 95
+39394 2 478 95
+39396 2 479 95
+39398 4 480 95
+FUNC 3939c c 0 testing::internal::GetTestTypeId
+3939c c 604 95
+FUNC 393a8 24 0 testing::internal::UnitTestImpl::successful_test_count
+393a8 2 733 95
+393aa 16 734 95
+393c0 c 735 95
+FUNC 393cc 24 0 testing::internal::UnitTestImpl::failed_test_count
+393cc 2 738 95
+393ce 16 739 95
+393e4 c 740 95
+FUNC 393f0 24 0 testing::internal::UnitTestImpl::reportable_disabled_test_count
+393f0 2 743 95
+393f2 16 745 95
+39408 c 746 95
+FUNC 39414 24 0 testing::internal::UnitTestImpl::reportable_test_count
+39414 2 754 95
+39416 16 755 95
+3942c c 756 95
+FUNC 39438 24 0 testing::internal::UnitTestImpl::test_to_run_count
+39438 2 764 95
+3943a 16 765 95
+39450 c 766 95
+FUNC 3945c 24 0 testing::internal::GetTimeInMillis
+3945c 2 784 95
+3945e 8 820 95
+39466 16 821 95
+3947c 4 825 95
+FUNC 39480 1c 0 testing::internal::String::CStringEquals
+39480 2 872 95
+39482 2 873 95
+39484 6 873 95
+3948a 2 875 95
+3948c c 877 95
+39498 2 875 95
+3949a 2 878 95
+FUNC 3949c a 0 testing::AssertionSuccess
+3949c 4 277 82
+394a0 4 1139 87
+394a4 2 973 95
+FUNC 394a6 8 0 testing::AssertionFailure
+394a6 4 277 82
+394aa 2 1139 87
+394ac 2 978 95
+FUNC 394ae 1c 0 testing::internal::String::CaseInsensitiveCStringEquals
+394ae 2 1866 95
+394b0 2 1867 95
+394b2 6 1868 95
+394b8 2 1869 95
+394ba 4 2274 87
+394be 8 1871 95
+394c6 2 1870 95
+394c8 2 1872 95
+FUNC 394cc 34 0 testing::TestResult::GetTestPartResult
+394cc 2 1991 95
+394ce 2 1990 95
+394d0 2 1991 95
+394d2 c 192 144
+394de 4 1991 95
+394e2 2 167 144
+394e4 8 45 143
+394ec 4 2340 87
+394f0 6 203 144
+394f6 a 1994 95
+FUNC 39500 34 0 testing::TestResult::GetTestProperty
+39500 2 2000 95
+39502 2 1999 95
+39504 2 2000 95
+39506 c 192 144
+39512 4 2000 95
+39516 2 167 144
+39518 8 45 143
+39520 4 2340 87
+39524 6 203 144
+3952a a 2003 95
+FUNC 39534 34 0 testing::TestResult::Failed
+39534 2 2131 95
+39536 2 2131 95
+39538 2 2132 95
+3953a c 192 144
+39546 4 2132 95
+3954a c 2133 95
+39556 4 2132 95
+3955a 4 2136 95
+3955e 2 2134 95
+39560 8 2137 95
+FUNC 39568 10 0 testing::TestCase::TestFailed
+39568 4 689 82
+3956c 2 892 82
+3956e 6 892 82
+39574 4 893 82
+FUNC 39578 18 0 testing::TestCase::TestPassed
+39578 2 886 82
+3957a 4 689 82
+3957e 2 887 82
+39580 6 540 82
+39586 6 887 82
+3958c 4 888 82
+FUNC 39590 20 0 testing::TestResult::HasFatalFailure
+39590 4 2145 95
+39594 2 285 91
+39596 4 286 91
+3959a 2 287 91
+3959c 2 286 91
+3959e 2 287 91
+395a0 6 288 91
+395a6 a 2147 95
+FUNC 395b0 20 0 testing::TestResult::HasNonfatalFailure
+395b0 4 2155 95
+395b4 2 285 91
+395b6 4 286 91
+395ba 2 287 91
+395bc 2 286 91
+395be 2 287 91
+395c0 6 288 91
+395c6 a 2157 95
+FUNC 395d0 26 0 testing::internal::UnitTestImpl::RegisterParameterizedTests
+395d0 2 2571 95
+395d2 4 2573 95
+395d6 2 2571 95
+395d8 4 2573 95
+395dc 6 600 86
+395e2 c 602 86
+395ee 8 2575 95
+FUNC 395f6 18 0 testing::TestCase::UnshuffleTests
+395f6 2 2753 95
+395f8 6 192 144
+395fe 6 2753 95
+39604 4 2754 95
+39608 4 2753 95
+3960c 2 2756 95
+FUNC 39610 30 0 testing::internal::GetAnsiColorCode
+39610 c 2859 95
+3961c 4 2863 95
+39620 6 2861 95
+39626 6 2862 95
+3962c 4 2860 95
+39630 10 2865 95
+FUNC 39640 f8 0 testing::internal::ShouldUseColor
+39640 4 2870 95
+39644 6 2873 95
+3964a 2 2870 95
+3964c c 2873 95
+39658 8 2328 87
+39660 2 2882 95
+39662 2 2328 87
+39664 6 2882 95
+3966a 4 2887 95
+3966e a 2883 95
+39678 4 2882 95
+3967c a 2884 95
+39686 4 2883 95
+3968a a 2885 95
+39694 2 2884 95
+39696 a 2886 95
+396a0 2 2885 95
+396a2 a 2887 95
+396ac 2 2886 95
+396ae a 2888 95
+396b8 4 2887 95
+396bc a 2893 95
+396c6 2 2895 95
+396c8 4 2895 95
+396cc a 2894 95
+396d6 4 2893 95
+396da a 2895 95
+396e4 4 2894 95
+396e8 4 2896 95
+396ec 4 2900 95
+396f0 6 2896 95
+396f6 4 2889 95
+396fa 2 2889 95
+396fc 3c 2900 95
+FUNC 39738 90 0 testing::internal::ColoredPrintf
+39738 4 2906 95
+3973c 2 2915 95
+3973e 6 2906 95
+39744 2 2915 95
+39746 2 2908 95
+39748 2 2915 95
+3974a 2 2906 95
+3974c a 2915 95
+39756 8 2271 87
+3975e a 2915 95
+39768 a 2915 95
+39772 8 2916 95
+3977a 2 2916 95
+3977c a 2921 95
+39786 8 2947 95
+3978e 8 2947 95
+39796 8 2948 95
+3979e 8 2949 95
+397a6 22 2952 95
+FUNC 397c8 30 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart
+397c8 2 3043 95
+397ca 2 3042 95
+397cc 8 3043 95
+397d4 8 3044 95
+397dc 4 3046 95
+397e0 2 3044 95
+397e2 16 3045 95
+FUNC 397f8 3c 0 testing::internal::PrettyUnitTestResultPrinter::OnTestStart
+397f8 2 3061 95
+397fa 2 3061 95
+397fc a 3062 95
+39806 c 2983 95
+39812 6 3064 95
+39818 4 3066 95
+3981c 2 3064 95
+3981e 16 3065 95
+FUNC 39834 30 0 testing::internal::PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart
+39834 2 3113 95
+39836 2 3112 95
+39838 8 3113 95
+39840 8 3114 95
+39848 4 3116 95
+3984c 2 3114 95
+3984e 16 3115 95
+FUNC 39864 68 0 testing::internal::PrintFullTestCommentIfPresent
+39864 2 2959 95
+39866 2 1144 87
+39868 4 660 82
+3986c 2 1144 87
+3986e 4 668 82
+39872 2 2963 95
+39874 2 2963 95
+39876 8 2964 95
+3987e 2 2965 95
+39880 e 2966 95
+3988e 2 2967 95
+39890 a 2968 95
+3989a 2 2970 95
+3989c 6 2971 95
+398a2 4 2974 95
+398a6 8 2971 95
+398ae 1e 2963 95
+FUNC 398cc 3a 0 testing::internal::TestEventRepeater::Release
+398cc 2 3231 95
+398ce 2 3232 95
+398d0 2 3231 95
+398d2 4 192 144
+398d6 2 3231 95
+398d8 4 192 144
+398dc 4 3232 95
+398e0 2 202 144
+398e2 8 3233 95
+398ea 6 580 144
+398f0 4 269 105
+398f4 8 584 144
+398fc 4 3232 95
+39900 2 3239 95
+39902 4 3240 95
+FUNC 39908 2c 0 testing::TestEventListeners::TestEventListeners
+39908 2 3842 95
+3990a 2 3842 95
+3990c 6 3845 95
+39912 c 3188 95
+3991e 6 67 144
+39924 2 481 106
+39926 6 3845 95
+3992c 8 3846 95
+FUNC 39934 12 0 google_breakpad::scoped_ptr<google_breakpad::MinidumpContext>::~scoped_ptr
+39934 2 96 57
+39936 2 96 57
+39938 4 98 57
+3993c 6 98 57
+39942 4 99 57
+FUNC 39934 12 0 testing::TestEventListeners::~TestEventListeners
+39934 2 3848 95
+39936 6 3848 95
+3993c 2 3848 95
+3993e 4 3848 95
+39942 4 3848 95
+FUNC 39946 1c 0 testing::TestEventListeners::Release
+39946 6 3862 95
+3994c 6 3863 95
+39952 4 3864 95
+39956 6 3865 95
+3995c 6 3866 95
+FUNC 39962 8 0 testing::TestEventListeners::SuppressEventForwarding
+39962 2 3196 95
+39964 2 3912 95
+39966 4 3196 95
+FUNC 3996a c 0 testing::UnitTest::total_test_case_count
+3996a 2 1280 82
+3996c 6 192 144
+39972 4 3958 95
+FUNC 39976 6 0 testing::UnitTest::successful_test_count
+39976 6 3968 95
+FUNC 3997c 6 0 testing::UnitTest::failed_test_count
+3997c 6 3972 95
+FUNC 39982 6 0 testing::UnitTest::reportable_disabled_test_count
+39982 6 3976 95
+FUNC 39988 6 0 testing::UnitTest::reportable_test_count
+39988 6 3986 95
+FUNC 3998e 6 0 testing::UnitTest::test_to_run_count
+3998e 6 3993 95
+FUNC 39994 6 0 testing::UnitTest::original_working_dir
+39994 2 4217 95
+39996 4 4219 95
+FUNC 3999a 10 0 testing::internal::UnitTestImpl::SuppressTestEventsIfInSubprocess
+3999a 6 4345 95
+399a0 2 3196 95
+399a2 4 3912 95
+399a6 4 3196 95
+FUNC 399aa 1a 0 testing::internal::TestCaseNameIs::operator()
+399aa 2 4429 95
+399ac 2 4429 95
+399ae 2 4430 95
+399b0 8 4430 95
+399b8 8 4430 95
+399c0 2 4430 95
+399c2 2 4431 95
+FUNC 399c4 54 0 testing::internal::WriteToShardStatusFileIfNeeded
+399c4 2 4635 95
+399c6 a 2328 87
+399d0 4 4637 95
+399d4 8 2298 87
+399dc 2 4639 95
+399de 10 4643 95
+399ee a 4644 95
+399f8 6 4645 95
+399fe 4 4649 95
+39a02 16 4647 95
+FUNC 39a18 f0 0 testing::internal::UnitTestImpl::ListTestsMatchingFilter
+39a18 6 4807 95
+39a1e 2 4811 95
+39a20 2 4830 95
+39a22 2 4807 95
+39a24 4 4830 95
+39a28 2 4832 95
+39a2a 4 4823 95
+39a2e 6 4832 95
+39a34 2 4823 95
+39a36 4 4832 95
+39a3a 6 4821 95
+39a40 a 192 144
+39a4a 6 4811 95
+39a50 2 4815 95
+39a52 2 4813 95
+39a54 4 4823 95
+39a58 4 4812 95
+39a5c 2 4823 95
+39a5e 6 192 144
+39a64 6 4815 95
+39a6a 4 4817 95
+39a6e 6 4818 95
+39a74 2 4819 95
+39a76 8 4821 95
+39a7e 2 1144 87
+39a80 2 797 82
+39a82 4 4822 95
+39a86 8 4823 95
+39a8e 2 1144 87
+39a90 6 797 82
+39a96 2 799 82
+39a98 4 4826 95
+39a9c 6 4828 95
+39aa2 a 4830 95
+39aac 4 1144 87
+39ab0 2 668 82
+39ab2 4 4831 95
+39ab6 8 4832 95
+39abe 4 1144 87
+39ac2 4 668 82
+39ac6 4 4835 95
+39aca 8 4837 95
+39ad2 4 4815 95
+39ad6 6 4811 95
+39adc 6 4841 95
+39ae2 6 4842 95
+39ae8 20 4841 95
+FUNC 39b08 26 0 testing::internal::UnitTestImpl::UnshuffleTests
+39b08 2 4892 95
+39b0a 2 4892 95
+39b0c 2 4893 95
+39b0e 6 192 144
+39b14 6 4893 95
+39b1a 8 4895 95
+39b22 2 202 144
+39b24 4 4897 95
+39b28 4 4893 95
+39b2c 2 4899 95
+FUNC 39b2e 4 0 __cxxabiv1::__si_class_type_info::code() const
+39b2e 4 174 160
+FUNC 39b2e 4 0 google_breakpad::LinuxCoreDumper::IsPostMortem
+39b2e 4 116 18
+FUNC 39b2e 4 0 google_breakpad::LinuxCoreDumper::ThreadsResume
+FUNC 39b2e 4 0 google_breakpad::LinuxCoreDumper::ThreadsSuspend
+FUNC 39b2e 4 0 std::codecvt<char, char, mbstate_t>::do_always_noconv() const
+FUNC 39b2e 4 0 std::codecvt<char, char, mbstate_t>::do_encoding() const
+FUNC 39b2e 4 0 std::codecvt<char, char, mbstate_t>::do_max_length() const
+39b2e 4 37 177
+FUNC 39b2e 4 0 std::codecvt<wchar_t, char, mbstate_t>::do_always_noconv() const
+FUNC 39b2e 4 0 std::codecvt<wchar_t, char, mbstate_t>::do_encoding() const
+FUNC 39b2e 4 0 std::codecvt<wchar_t, char, mbstate_t>::do_max_length() const
+FUNC 39b2e 4 0 testing::internal::AlwaysTrue
+39b2e 4 4934 95
+FUNC 39b32 26 0 testing::internal::SkipPrefix
+39b32 2 4939 95
+39b34 4 4939 95
+39b38 6 4940 95
+39b3e e 4941 95
+39b4c 4 4942 95
+39b50 4 4943 95
+39b54 2 4945 95
+39b56 2 4946 95
+FUNC 39b58 74 0 testing::internal::HasGoogleTestFlagPrefix
+39b58 2 5043 95
+39b5a 6 5043 95
+39b60 a 5044 95
+39b6a 2 5047 95
+39b6c a 5047 95
+39b76 4 5046 95
+39b7a a 5045 95
+39b84 4 5044 95
+39b88 a 5046 95
+39b92 4 5045 95
+39b96 4 5047 95
+39b9a a 5048 95
+39ba4 2 5047 95
+39ba6 a 5049 95
+39bb0 1c 5050 95
+FUNC 39bcc 1c 0 testing::internal::GetElementOr<int>
+39bcc 2 303 91
+39bce 2 302 91
+39bd0 2 303 91
+39bd2 6 192 144
+39bd8 6 303 91
+39bde 6 303 91
+39be4 2 303 91
+39be6 2 304 91
+FUNC 39be8 1c 0 testing::TestCase::GetMutableTestInfo
+FUNC 39be8 1c 0 testing::TestCase::GetTestInfo
+39be8 2 2693 95
+39bea 4 2694 95
+39bee 2 2693 95
+39bf0 6 2701 95
+39bf6 2 2702 95
+39bf8 8 2695 95
+39c00 2 2695 95
+39c02 2 2696 95
+FUNC 39c04 20 0 testing::UnitTest::GetTestCase
+39c04 2 4015 95
+39c06 2 1280 82
+39c08 8 587 91
+39c10 2 4015 95
+39c12 4 587 91
+39c16 2 588 91
+39c18 8 588 91
+39c20 2 588 91
+39c22 2 4017 95
+FUNC 39c24 24 0 testing::internal::CountIf<std::vector<testing::TestCase*>, bool (*)(const testing::TestCase*)>
+39c24 2 282 91
+39c26 4 282 91
+39c2a 4 285 91
+39c2e 8 286 91
+39c36 a 287 91
+39c40 4 288 91
+39c44 4 291 91
+FUNC 39c24 24 0 testing::internal::CountIf<std::vector<testing::TestInfo*>, bool (*)(const testing::TestInfo*)>
+FUNC 39c48 10 0 testing::internal::UnitTestImpl::failed_test_case_count
+39c48 10 718 95
+FUNC 39c58 1c 0 testing::internal::UnitTestImpl::Failed
+39c58 2 580 91
+39c5a 2 580 91
+39c5c 8 581 91
+39c64 4 581 91
+39c68 4 582 91
+39c6c 4 581 91
+39c70 4 582 91
+FUNC 39c74 10 0 testing::UnitTest::Passed
+39c74 2 4007 95
+39c76 a 576 91
+39c80 4 4007 95
+FUNC 39c84 10 0 testing::internal::UnitTestImpl::test_case_to_run_count
+39c84 10 729 95
+FUNC 39c94 6 0 testing::UnitTest::test_case_to_run_count
+39c94 6 3963 95
+FUNC 39c9a 2a 0 std::operator<< <char, std::char_traits<char>, int>
+39c9a 2 80 112
+39c9c 2 80 112
+39c9e 2 82 112
+39ca0 2 42 112
+39ca2 4 82 112
+39ca6 4 42 112
+39caa 8 82 112
+39cb2 4 42 112
+39cb6 2 42 112
+39cb8 4 42 112
+39cbc 4 42 112
+39cc0 4 84 112
+FUNC 39cc4 14 0 std::priv::_Impl_vector<MDMemoryDescriptor, std::allocator<MDMemoryDescriptor> >::~_Impl_vector
+FUNC 39cc4 14 0 std::priv::_Impl_vector<MDRawDirectory, std::allocator<MDRawDirectory> >::~_Impl_vector
+FUNC 39cc4 14 0 std::priv::_Impl_vector<testing::internal::edit_distance::EditType, std::allocator<testing::internal::edit_distance::EditType> >::~_Impl_vector
+FUNC 39cc4 14 0 std::priv::_Vector_base<double, std::allocator<double> >::~_Vector_base
+FUNC 39cc4 14 0 std::priv::_Vector_base<short unsigned int, std::allocator<short unsigned int> >::~_Vector_base
+39cc4 2 86 144
+39cc6 4 304 144
+39cca 2 87 144
+39ccc 2 88 144
+39cce 6 323 106
+39cd4 4 304 144
+FUNC 39cc4 14 0 std::priv::_Vector_base<unsigned char, std::allocator<unsigned char> >::~_Vector_base
+FUNC 39cc4 14 0 std::priv::_Vector_base<unsigned int, std::allocator<unsigned int> >::~_Vector_base
+FUNC 39cc4 14 0 std::priv::_Vector_base<void*, std::allocator<void*> >::~_Vector_base
+39cc4 2 86 144
+39cc6 2 86 144
+39cc8 2 304 144
+39cca 2 87 144
+39ccc 2 88 144
+39cce 6 323 106
+39cd4 4 89 144
+FUNC 39cd8 2a 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+39cd8 2 320 139
+39cda 2 320 139
+39cdc 2 229 145
+39cde 2 320 139
+39ce0 6 229 145
+39ce6 4 400 136
+39cea 4 324 139
+39cee 8 226 145
+39cf6 8 324 139
+39cfe 2 324 139
+39d00 2 325 139
+FUNC 39d04 10 0 testing::TestCase::successful_test_count
+39d04 10 2632 95
+FUNC 39d14 10 0 testing::TestCase::failed_test_count
+39d14 10 2637 95
+FUNC 39d24 18 0 testing::internal::TestCaseFailed
+39d24 2 340 95
+39d26 4 803 82
+39d2a 2 341 95
+39d2c 4 830 82
+39d30 8 341 95
+39d38 4 342 95
+FUNC 39d3c 98 0 testing::internal::PrettyUnitTestResultPrinter::PrintFailedTests
+39d3c 4 3119 95
+39d40 2 3119 95
+39d42 4 3120 95
+39d46 8 3121 95
+39d4e 4 3135 95
+39d52 4 3136 95
+39d56 2 3135 95
+39d58 2 3136 95
+39d5a 6 3125 95
+39d60 4 3125 95
+39d64 8 3126 95
+39d6c 4 3127 95
+39d70 2 3126 95
+39d72 2 3127 95
+39d74 4 3127 95
+39d78 4 3127 95
+39d7c 6 192 144
+39d82 6 3130 95
+39d88 8 3131 95
+39d90 4 3132 95
+39d94 2 3131 95
+39d96 2 3132 95
+39d98 6 540 82
+39d9e 2 3132 95
+39da0 4 3130 95
+39da4 8 3125 95
+39dac 8 3135 95
+39db4 a 3136 95
+39dbe 6 3137 95
+39dc4 10 3138 95
+FUNC 39dd4 10 0 testing::TestCase::reportable_disabled_test_count
+39dd4 10 2642 95
+FUNC 39de4 10 0 testing::TestCase::reportable_test_count
+39de4 10 2652 95
+FUNC 39df4 10 0 testing::TestCase::test_to_run_count
+39df4 10 2657 95
+FUNC 39e04 c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
+39e04 2 121 136
+39e06 2 121 136
+39e08 4 156 137
+39e0c 4 121 136
+FUNC 39e10 18 0 testing::internal::AssertHelper::~AssertHelper
+39e10 2 358 95
+39e12 2 358 95
+39e14 4 359 95
+39e18 6 156 137
+39e1e 6 359 95
+39e24 4 360 95
+FUNC 39e28 1c 0 testing::TestPartResult::~TestPartResult
+39e28 2 47 81
+39e2a 2 47 81
+39e2c 14 156 137
+39e40 4 47 81
+FUNC 39e44 1c 0 testing::internal::XmlUnitTestResultPrinter::~XmlUnitTestResultPrinter
+39e44 2 3299 95
+39e46 c 3299 95
+39e52 4 156 137
+39e56 a 3299 95
+FUNC 39e60 12 0 testing::internal::XmlUnitTestResultPrinter::~XmlUnitTestResultPrinter
+39e60 2 3299 95
+39e62 6 3299 95
+39e68 6 3299 95
+39e6e 4 3299 95
+FUNC 39e72 2e 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~_Impl_vector
+39e72 2 304 144
+39e74 2 304 144
+39e76 6 65 118
+39e7c 2 74 118
+39e7e 4 191 108
+39e82 2 121 136
+39e84 6 156 137
+39e8a 4 81 118
+39e8e 4 87 144
+39e92 2 88 144
+39e94 6 323 106
+39e9a 6 304 144
+FUNC 39ea0 28 0 testing::internal::scoped_ptr<testing::internal::InternalRunDeathTestFlag>::reset
+39ea0 2 1152 87
+39ea2 2 1153 87
+39ea4 2 1152 87
+39ea6 2 1153 87
+39ea8 2 1152 87
+39eaa 2 1153 87
+39eac 2 1155 87
+39eae 6 244 83
+39eb4 4 2314 87
+39eb8 6 156 137
+39ebe 6 1155 87
+39ec4 4 1157 87
+FUNC 39ec8 30 0 testing::internal::TestEventRepeater::~TestEventRepeater
+39ec8 2 3222 95
+39eca e 3222 95
+39ed8 4 60 103
+39edc a 61 103
+39ee6 8 304 144
+39eee a 3224 95
+FUNC 39ef8 12 0 testing::internal::TestEventRepeater::~TestEventRepeater
+39ef8 2 3222 95
+39efa 2 3222 95
+39efc 4 3224 95
+39f00 6 3224 95
+39f06 4 3224 95
+FUNC 39f0a 84 0 std::priv::_Impl_vector<int, std::allocator<int> >::push_back
+39f0a 4 376 144
+39f0e 4 380 144
+39f12 2 376 144
+39f14 2 380 144
+39f16 2 376 144
+39f18 4 380 144
+39f1c 2 126 108
+39f1e 8 382 144
+39f26 6 192 144
+39f2c 8 175 144
+39f34 6 176 144
+39f3a 4 176 144
+39f3e 4 176 144
+39f42 8 347 106
+39f4a 4 348 106
+39f4e 2 353 106
+39f50 4 352 106
+39f54 a 112 143
+39f5e c 481 105
+39f6a 4 657 144
+39f6e 2 319 106
+39f70 4 323 106
+39f74 4 118 143
+39f78 4 667 144
+39f7c 4 668 144
+39f80 4 346 106
+39f84 4 356 106
+39f88 6 388 144
+FUNC 39f0a 84 0 std::priv::_Impl_vector<unsigned int, std::allocator<unsigned int> >::push_back
+FUNC 39f90 3c 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve
+39f90 2 158 135
+39f92 4 159 135
+39f96 a 600 135
+39fa0 a 400 136
+39faa 2 72 137
+39fac 4 72 137
+39fb0 2 72 137
+39fb2 4 162 135
+39fb6 4 72 137
+39fba 4 163 135
+39fbe 4 167 135
+39fc2 a 166 135
+FUNC 39fcc 16 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=
+39fcc 2 348 136
+39fce 2 347 136
+39fd0 4 347 136
+39fd4 2 348 136
+39fd6 8 349 136
+39fde 4 351 136
+FUNC 39fe2 1e 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::clear
+39fe2 6 650 144
+39fe8 2 630 144
+39fea 2 650 144
+39fec 4 630 144
+39ff0 2 57 108
+39ff2 2 191 108
+39ff4 4 57 108
+39ff8 4 191 108
+39ffc 4 615 144
+FUNC 3a000 38 0 testing::TestResult::Clear
+3a000 2 2123 95
+3a002 2 2123 95
+3a004 a 228 148
+3a00e 6 630 144
+3a014 a 156 137
+3a01e 2 191 108
+3a020 4 156 137
+3a024 4 191 108
+3a028 2 615 144
+3a02a 2 2126 95
+3a02c 2 2127 95
+3a02e 2 2126 95
+3a030 8 2127 95
+FUNC 3a038 22 0 testing::TestCase::ClearResult
+3a038 2 2741 95
+3a03a 2 2741 95
+3a03c a 2742 95
+3a046 6 60 103
+3a04c c 740 82
+3a058 2 2744 95
+FUNC 3a05c 14c 0 testing::Test::~Test
+3a05c 4 2180 95
+3a060 2 2180 95
+3a062 2 2181 95
+3a064 8 2180 95
+3a06c 4 2181 95
+3a070 8 186 91
+3a078 8 187 91
+3a080 2 189 91
+3a082 4 188 91
+3a086 2 189 91
+3a088 2 188 91
+3a08a 4 189 91
+3a08e 2 188 91
+3a090 4 189 91
+3a094 12 190 91
+3a0a6 2 192 91
+3a0a8 8 191 91
+3a0b0 8 192 91
+3a0b8 2 191 91
+3a0ba 4 192 91
+3a0be 10 193 91
+3a0ce 2 194 91
+3a0d0 2 195 91
+3a0d2 4 194 91
+3a0d6 4 195 91
+3a0da 2 194 91
+3a0dc 4 195 91
+3a0e0 2 194 91
+3a0e2 4 195 91
+3a0e6 a 196 91
+3a0f0 a 197 91
+3a0fa a 198 91
+3a104 a 199 91
+3a10e 2 201 91
+3a110 6 200 91
+3a116 6 201 91
+3a11c 2 200 91
+3a11e 2 201 91
+3a120 2 200 91
+3a122 4 201 91
+3a126 8 202 91
+3a12e 2 156 137
+3a130 2 202 91
+3a132 22 156 137
+3a154 6 2181 95
+3a15a 4e 2182 95
+FUNC 3a1a8 a 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append
+3a1a8 2 516 136
+3a1aa 8 517 136
+FUNC 3a1b2 ac 0 std::priv::__find_if<testing::TestCase**, testing::internal::TestCaseNameIs>
+3a1b2 4 159 104
+3a1b6 6 159 104
+3a1bc 4 162 104
+3a1c0 4 164 104
+3a1c4 c 165 104
+3a1d0 a 168 104
+3a1da 2 166 104
+3a1dc 4 168 104
+3a1e0 a 171 104
+3a1ea 4 169 104
+3a1ee 4 171 104
+3a1f2 a 174 104
+3a1fc 4 172 104
+3a200 6 174 104
+3a206 4 164 104
+3a20a 16 178 104
+3a220 a 180 104
+3a22a 2 181 104
+3a22c a 183 104
+3a236 2 184 104
+3a238 14 186 104
+3a24c e 190 104
+3a25a 4 192 104
+FUNC 3a25e 22 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_range_initialize
+3a25e 2 376 136
+3a260 6 376 136
+3a266 2 378 136
+3a268 6 379 136
+3a26e a 148 142
+3a278 2 101 108
+3a27a 2 380 136
+3a27c 4 101 108
+FUNC 3a280 30 0 testing::internal::AssertHelper::AssertHelper
+3a280 4 351 95
+3a284 2 351 95
+3a286 2 355 95
+3a288 6 351 95
+3a28e 4 355 95
+3a292 2 1784 82
+3a294 2 355 95
+3a296 8 1784 82
+3a29e 8 1784 82
+3a2a6 2 356 95
+3a2a8 2 355 95
+3a2aa 6 356 95
+FUNC 3a2b0 18 0 testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop
+3a2b0 2 778 95
+3a2b2 2 778 95
+3a2b4 a 780 95
+3a2be a 781 95
+FUNC 3a2c8 50 0 testing::internal::XmlUnitTestResultPrinter::XmlUnitTestResultPrinter
+3a2c8 2 3372 95
+3a2ca 2 3372 95
+3a2cc 2 3373 95
+3a2ce 2 3373 95
+3a2d0 8 3373 95
+3a2d8 6 3373 95
+3a2de 2 3374 95
+3a2e0 6 3374 95
+3a2e6 14 3375 95
+3a2fa 6 3376 95
+3a300 6 3377 95
+3a306 12 3379 95
+FUNC 3a318 18 0 testing::internal::OsStackTraceGetter::CurrentStackTrace
+3a318 2 3797 95
+3a31a 2 3797 95
+3a31c a 3798 95
+3a326 a 3799 95
+FUNC 3a330 88 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_range_initialize<char const* const*>
+3a330 4 699 144
+3a334 2 342 106
+3a336 4 355 119
+3a33a 2 342 106
+3a33c 6 699 144
+3a342 2 342 106
+3a344 8 343 106
+3a34c 4 343 106
+3a350 2 346 106
+3a352 a 347 106
+3a35c 4 348 106
+3a360 4 352 106
+3a364 2 348 106
+3a366 8 352 106
+3a36e 2 346 106
+3a370 2 356 106
+3a372 2 703 144
+3a374 2 84 142
+3a376 4 703 144
+3a37a 4 702 144
+3a37e 4 703 144
+3a382 4 139 108
+3a386 4 86 142
+3a38a 2 139 108
+3a38c a 139 108
+3a396 2 88 142
+3a398 a 89 142
+3a3a2 4 704 144
+3a3a6 12 705 144
+FUNC 3a3b8 12 0 testing::internal::FilePath::FilePath
+3a3b8 2 64 84
+3a3ba 6 64 84
+3a3c0 6 65 84
+3a3c6 4 66 84
+FUNC 3a3cc 64 0 testing::internal::GetCurrentExecutableName
+3a3cc c 381 95
+3a3d8 2 61 84
+3a3da 2 381 95
+3a3dc 8 61 84
+3a3e4 2 381 95
+3a3e6 4 61 84
+3a3ea c 387 95
+3a3f6 8 74 84
+3a3fe 6 156 137
+3a404 8 390 95
+3a40c 6 156 137
+3a412 1e 391 95
+FUNC 3a430 22 0 testing::AssertionResult::AssertionResult
+3a430 2 948 95
+3a432 2 952 95
+3a434 2 948 95
+3a436 2 952 95
+3a438 2 1144 87
+3a43a 2 952 95
+3a43c 8 952 95
+3a444 6 951 95
+3a44a 2 952 95
+3a44c 2 1139 87
+3a44e 4 953 95
+FUNC 3a452 2c 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::_M_create_node
+3a452 2 315 141
+3a454 2 306 106
+3a456 2 315 141
+3a458 6 306 106
+3a45e 6 307 106
+3a464 4 119 108
+3a468 a 68 129
+3a472 2 321 141
+3a474 2 324 141
+3a476 2 321 141
+3a478 2 322 141
+3a47a 4 324 141
+FUNC 3a480 34 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+3a480 2 183 136
+3a482 2 183 136
+3a484 2 112 137
+3a486 4 481 106
+3a48a 4 400 136
+3a48e 4 205 136
+3a492 8 604 135
+3a49a a 209 136
+3a4a4 8 208 136
+3a4ac 8 210 136
+FUNC 3a4b4 44 0 testing::internal::UnitTestOptions::GetOutputFormat
+3a4b4 4 396 95
+3a4b8 6 396 95
+3a4be 2 398 95
+3a4c0 6 398 95
+3a4c6 8 400 95
+3a4ce 4 403 95
+3a4d2 c 403 95
+3a4de 2 112 137
+3a4e0 2 481 106
+3a4e2 8 225 136
+3a4ea e 404 95
+FUNC 3a4f8 44 0 testing::internal::XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters
+3a4f8 2 3473 95
+3a4fa 4 3473 95
+3a4fe 6 3474 95
+3a504 4 400 136
+3a508 a 3475 95
+3a512 6 3476 95
+3a518 4 3477 95
+3a51c 8 3309 95
+3a524 4 3309 95
+3a528 8 3478 95
+3a530 6 3314 95
+3a536 6 3481 95
+FUNC 3a53c 80 0 testing::internal::StringStreamToString
+3a53c e 1943 95
+3a54a 2 1943 95
+3a54c 6 75 132
+3a552 2 1943 95
+3a554 a 75 132
+3a55e 2 1948 95
+3a560 4 400 136
+3a564 6 1948 95
+3a56a a 1949 95
+3a574 a 530 136
+3a57e 4 1950 95
+3a582 4 1951 95
+3a586 2 530 136
+3a588 2 1951 95
+3a58a a 530 136
+3a594 6 453 136
+3a59a 6 156 137
+3a5a0 1c 1959 95
+FUNC 3a5bc e 0 testing::Message::GetString
+3a5bc 2 942 95
+3a5be 2 942 95
+3a5c0 6 943 95
+3a5c6 4 944 95
+FUNC 3a5ca 2e 0 testing::Message::Message
+3a5ca 2 907 95
+3a5cc a 907 95
+3a5d6 2 910 95
+3a5d8 6 907 95
+3a5de 2 910 95
+3a5e0 2 1139 87
+3a5e2 6 910 95
+3a5e8 a 910 95
+3a5f2 6 911 95
+FUNC 3a5f8 160 0 testing::Test::Test
+3a5f8 4 2175 95
+3a5fc 2 2176 95
+3a5fe 2 2175 95
+3a600 6 2176 95
+3a606 2 2175 95
+3a608 8 2176 95
+3a610 2 164 91
+3a612 4 164 91
+3a616 2 164 91
+3a618 4 164 91
+3a61c 6 164 91
+3a622 4 164 91
+3a626 8 164 91
+3a62e 4 164 91
+3a632 8 164 91
+3a63a 4 164 91
+3a63e 8 164 91
+3a646 8 164 91
+3a64e 4 164 91
+3a652 4 164 91
+3a656 2 164 91
+3a658 4 164 91
+3a65c 2 165 91
+3a65e 2 168 91
+3a660 4 165 91
+3a664 2 168 91
+3a666 2 165 91
+3a668 2 166 91
+3a66a 2 168 91
+3a66c 6 166 91
+3a672 8 167 91
+3a67a 4 168 91
+3a67e e 169 91
+3a68c 2 171 91
+3a68e 6 170 91
+3a694 2 171 91
+3a696 4 170 91
+3a69a 6 171 91
+3a6a0 c 172 91
+3a6ac 2 173 91
+3a6ae 2 174 91
+3a6b0 4 173 91
+3a6b4 2 174 91
+3a6b6 4 173 91
+3a6ba 6 174 91
+3a6c0 2 175 91
+3a6c2 2 180 91
+3a6c4 4 175 91
+3a6c8 2 180 91
+3a6ca 4 175 91
+3a6ce 2 176 91
+3a6d0 2 180 91
+3a6d2 8 176 91
+3a6da a 177 91
+3a6e4 a 178 91
+3a6ee a 179 91
+3a6f8 4 180 91
+3a6fc 2 2177 95
+3a6fe a 181 91
+3a708 2 2176 95
+3a70a 4e 2177 95
+FUNC 3a758 d0 0 testing::internal::PrintColorEncoded
+3a758 6 5063 95
+3a75e 2 5064 95
+3a760 4 5063 95
+3a764 2 5064 95
+3a766 2 5063 95
+3a768 4 5077 95
+3a76c 4 5082 95
+3a770 2 5063 95
+3a772 2 5063 95
+3a774 2 5064 95
+3a776 2 5077 95
+3a778 2 5082 95
+3a77a 8 5071 95
+3a782 4 5072 95
+3a786 c 5073 95
+3a792 c 5095 95
+3a79e 4 112 137
+3a7a2 2 355 119
+3a7a4 4 324 136
+3a7a8 4 112 137
+3a7ac 4 481 106
+3a7b0 4 324 136
+3a7b4 a 148 142
+3a7be 4 101 108
+3a7c2 2 325 136
+3a7c4 4 101 108
+3a7c8 a 5077 95
+3a7d2 6 156 137
+3a7d8 2 5079 95
+3a7da 2 5080 95
+3a7dc 4 5081 95
+3a7e0 a 5082 95
+3a7ea 4 5083 95
+3a7ee 4 5084 95
+3a7f2 4 5085 95
+3a7f6 4 5086 95
+3a7fa 4 5087 95
+3a7fe 4 5088 95
+3a802 4 5089 95
+3a806 4 5090 95
+3a80a 4 5092 95
+3a80e 1a 5095 95
+FUNC 3a828 a4 0 testing::internal::String::FormatByte
+3a828 6 1934 95
+3a82e 4 1934 95
+3a832 2 1935 95
+3a834 6 1934 95
+3a83a 4 1935 95
+3a83e 2 1934 95
+3a840 4 1935 95
+3a844 2 147 112
+3a846 e 84 114
+3a854 2 126 112
+3a856 2 39 112
+3a858 12 126 112
+3a86a 6 39 112
+3a870 4 1936 95
+3a874 2 39 112
+3a876 4 1936 95
+3a87a 8 79 127
+3a882 6 123 115
+3a888 6 124 115
+3a88e 2 79 127
+3a890 2 254 126
+3a892 6 79 127
+3a898 8 118 115
+3a8a0 4 254 126
+3a8a4 8 75 132
+3a8ac 6 1938 95
+3a8b2 1a 1939 95
+FUNC 3a8cc e8 0 testing::internal::Random::Generate
+3a8cc 2 295 95
+3a8ce 4 297 95
+3a8d2 2 295 95
+3a8d4 e 297 95
+3a8e2 4 299 95
+3a8e6 14 299 95
+3a8fa 16 333 127
+3a910 6 301 95
+3a916 14 301 95
+3a92a 18 333 127
+3a942 a 254 126
+3a94c 12 333 127
+3a95e a 254 126
+3a968 8 333 127
+3a970 6 301 95
+3a976 8 308 95
+3a97e 36 309 95
+FUNC 3a9b4 1c 0 testing::Message::operator<< <char const>
+3a9b4 2 149 79
+3a9b6 4 149 79
+3a9ba 2 333 127
+3a9bc 2 150 79
+3a9be 8 333 127
+3a9c6 a 156 79
+FUNC 3a9d0 5c 0 testing::internal::StreamingListener::SocketWriter::CloseConnection
+3a9d0 2 1094 91
+3a9d2 2 1095 91
+3a9d4 2 1094 91
+3a9d6 4 1095 91
+3a9da 14 1095 91
+3a9ee 18 333 127
+3aa06 6 1095 91
+3aa0c 6 1098 91
+3aa12 6 1099 91
+3aa18 14 1100 91
+FUNC 3aa2c 30 0 testing::internal::StreamingListener::SocketWriter::~SocketWriter
+3aa2c 2 1071 91
+3aa2e a 1071 91
+3aa38 6 1072 91
+3aa3e 4 1073 91
+3aa42 10 156 137
+3aa52 a 1074 91
+FUNC 3aa5c 12 0 testing::internal::StreamingListener::SocketWriter::~SocketWriter
+3aa5c 2 1071 91
+3aa5e 2 1071 91
+3aa60 4 1074 91
+3aa64 6 1074 91
+3aa6a 4 1074 91
+FUNC 3aa70 38 0 testing::internal::StreamableToString<char*>
+3aa70 2 243 79
+3aa72 2 243 79
+3aa74 2 244 79
+3aa76 2 243 79
+3aa78 a 244 79
+3aa82 2 333 127
+3aa84 2 150 79
+3aa86 8 333 127
+3aa8e 8 244 79
+3aa96 6 85 79
+3aa9c c 245 79
+FUNC 3aaa8 50 0 testing::internal::Int32FromEnvOrDie
+3aaa8 2 4702 95
+3aaaa 4 4702 95
+3aaae 4 2328 87
+3aab2 4 4704 95
+3aab6 8 4709 95
+3aabe c 333 127
+3aaca 8 4709 95
+3aad2 a 4710 95
+3aadc 6 85 79
+3aae2 2 4709 95
+3aae4 6 4711 95
+3aaea 4 4713 95
+3aaee 2 4705 95
+3aaf0 8 4714 95
+FUNC 3aaf8 b0 0 testing::internal::CmpHelperSTRNE
+3aaf8 4 1483 95
+3aafc 4 1483 95
+3ab00 4 1484 95
+3ab04 4 1483 95
+3ab08 6 1484 95
+3ab0e 2 277 82
+3ab10 2 1139 87
+3ab12 6 277 82
+3ab18 6 1487 95
+3ab1e 4 277 82
+3ab22 2 1139 87
+3ab24 4 1487 95
+3ab28 6 1487 95
+3ab2e 2 1487 95
+3ab30 2 306 82
+3ab32 6 1487 95
+3ab38 8 1488 95
+3ab40 6 306 82
+3ab46 c 333 127
+3ab52 8 306 82
+3ab5a 6 85 79
+3ab60 8 1489 95
+3ab68 8 1489 95
+3ab70 6 1489 95
+3ab76 a 1489 95
+3ab80 6 1489 95
+3ab86 6 256 82
+3ab8c 1c 1491 95
+FUNC 3aba8 b0 0 testing::internal::GetBoolAssertionFailureMessage
+3aba8 4 1311 95
+3abac 2 1311 95
+3abae 2 1144 87
+3abb0 4 1311 95
+3abb4 6 298 82
+3abba 4 298 82
+3abbe 8 1313 95
+3abc6 c 333 127
+3abd2 a 1314 95
+3abdc 2 333 127
+3abde 2 131 79
+3abe0 8 333 127
+3abe8 8 1315 95
+3abf0 4 1316 95
+3abf4 c 333 127
+3ac00 8 1317 95
+3ac08 2 333 127
+3ac0a 2 131 79
+3ac0c 14 333 127
+3ac20 8 1318 95
+3ac28 8 1319 95
+3ac30 6 85 79
+3ac36 22 1320 95
+FUNC 3ac58 4 0 std::basic_ostream<char, std::char_traits<char> >::operator<<
+3ac58 4 240 126
+FUNC 3ac5c 64 0 testing::internal::MutexBase::Lock
+3ac5c 2 1886 87
+3ac5e 2 1886 87
+3ac60 8 1887 87
+3ac68 14 1887 87
+3ac7c 18 333 127
+3ac94 8 1887 87
+3ac9c 6 1887 87
+3aca2 4 1888 87
+3aca6 2 1889 87
+3aca8 2 1888 87
+3acaa 2 1889 87
+3acac 14 1890 87
+FUNC 3acc0 64 0 testing::internal::GTestMutexLock::~GTestMutexLock
+3acc0 2 1898 87
+3acc2 2 1965 87
+3acc4 4 1965 87
+3acc8 2 1898 87
+3acca 8 1899 87
+3acd2 14 1899 87
+3ace6 18 333 127
+3acfe 8 1899 87
+3ad06 6 1899 87
+3ad0c 18 1965 87
+FUNC 3ad24 1e 0 testing::internal::UnitTestImpl::GetGlobalTestPartResultReporter
+3ad24 2 687 95
+3ad26 2 687 95
+3ad28 2 1963 87
+3ad2a 2 688 95
+3ad2c 8 1963 87
+3ad34 2 689 95
+3ad36 6 689 95
+3ad3c 6 690 95
+FUNC 3ad42 16 0 testing::internal::DefaultPerThreadTestPartResultReporter::ReportTestPartResult
+3ad42 2 681 95
+3ad44 2 682 95
+3ad46 2 681 95
+3ad48 6 682 95
+3ad4e 2 682 95
+3ad50 4 683 95
+3ad54 4 682 95
+FUNC 3ad58 64 0 testing::internal::Mutex::Mutex
+3ad58 2 1943 87
+3ad5a 2 1944 87
+3ad5c 2 1943 87
+3ad5e 8 1944 87
+3ad66 14 1944 87
+3ad7a 18 333 127
+3ad92 8 1944 87
+3ad9a 6 1944 87
+3ada0 2 1945 87
+3ada2 2 1946 87
+3ada4 2 1945 87
+3ada6 16 1946 87
+FUNC 3adbc 24 0 testing::TestResult::TestResult
+3adbc 2 1978 95
+3adbe 2 1978 95
+3adc0 4 1980 95
+3adc4 2 67 144
+3adc6 2 1980 95
+3adc8 4 67 144
+3adcc 2 481 106
+3adce 4 67 144
+3add2 2 481 106
+3add4 8 1980 95
+3addc 4 1981 95
+FUNC 3ade0 68 0 testing::TestInfo::TestInfo
+3ade0 2 2461 95
+3ade2 8 2461 95
+3adea 4 2476 95
+3adee a 2476 95
+3adf8 2 2476 95
+3adfa 8 2476 95
+3ae02 8 2469 95
+3ae0a 2 2476 95
+3ae0c 2 1139 87
+3ae0e 2 2476 95
+3ae10 8 2476 95
+3ae18 8 2470 95
+3ae20 2 2476 95
+3ae22 2 2476 95
+3ae24 2 1139 87
+3ae26 12 2476 95
+3ae38 4 2476 95
+3ae3c 2 2476 95
+3ae3e 4 2476 95
+3ae42 6 2476 95
+FUNC 3ae48 68 0 testing::TestCase::TestCase
+3ae48 4 2674 95
+3ae4c 2 2674 95
+3ae4e 2 2682 95
+3ae50 2 2682 95
+3ae52 4 2682 95
+3ae56 2 2674 95
+3ae58 4 2682 95
+3ae5c 2 2682 95
+3ae5e 2 2674 95
+3ae60 4 2682 95
+3ae64 2 2682 95
+3ae66 8 2682 95
+3ae6e 8 2678 95
+3ae76 2 2682 95
+3ae78 2 67 144
+3ae7a 2 2682 95
+3ae7c 4 67 144
+3ae80 2 481 106
+3ae82 4 67 144
+3ae86 2 481 106
+3ae88 a 2682 95
+3ae92 2 1139 87
+3ae94 6 2682 95
+3ae9a 8 2682 95
+3aea2 e 2683 95
+FUNC 3aeb0 30 0 testing::internal::UnitTestImpl::os_stack_trace_getter
+3aeb0 2 4860 95
+3aeb2 4 4861 95
+3aeb6 2 4860 95
+3aeb8 2 4861 95
+3aeba 8 4862 95
+3aec2 a 442 91
+3aecc 4 442 91
+3aed0 2 442 91
+3aed2 4 4862 95
+3aed6 a 4866 95
+FUNC 3aee0 5c 0 testing::internal::Mutex::~Mutex
+3aee0 2 1947 87
+3aee2 2 1947 87
+3aee4 8 1948 87
+3aeec 14 1948 87
+3af00 18 333 127
+3af18 8 1948 87
+3af20 6 1948 87
+3af26 16 1949 87
+FUNC 3af3c 24 0 testing::UnitTest::~UnitTest
+3af3c 2 4256 95
+3af3e a 4256 95
+3af48 4 4257 95
+3af4c 6 4257 95
+3af52 6 4256 95
+3af58 8 4258 95
+FUNC 3af60 12 0 testing::UnitTest::~UnitTest
+3af60 2 4256 95
+3af62 2 4256 95
+3af64 4 4258 95
+3af68 6 4258 95
+3af6e 4 4258 95
+FUNC 3af74 1c 0 testing::internal::OsStackTraceGetter::~OsStackTraceGetter
+3af74 2 440 91
+3af76 1a 440 91
+FUNC 3af90 12 0 testing::internal::OsStackTraceGetter::~OsStackTraceGetter
+3af90 2 440 91
+3af92 6 440 91
+3af98 6 440 91
+3af9e 4 440 91
+FUNC 3afa2 60 0 testing::TestResult::~TestResult
+3afa2 2 1984 95
+3afa4 2 1984 95
+3afa6 6 65 118
+3afac 2 74 118
+3afae 4 191 108
+3afb2 4 156 137
+3afb6 2 121 136
+3afb8 a 156 137
+3afc2 4 81 118
+3afc6 4 87 144
+3afca 2 88 144
+3afcc 6 323 106
+3afd2 6 65 118
+3afd8 2 74 118
+3afda 4 191 108
+3afde 2 77 118
+3afe0 6 57 108
+3afe6 4 81 118
+3afea 4 87 144
+3afee 2 88 144
+3aff0 6 323 106
+3aff6 6 1984 95
+3affc 6 1985 95
+FUNC 3b002 48 0 testing::TestInfo::~TestInfo
+3b002 2 2479 95
+3b004 6 2479 95
+3b00a 2 2479 95
+3b00c 4 2479 95
+3b010 8 2479 95
+3b018 4 1153 87
+3b01c 6 156 137
+3b022 6 1155 87
+3b028 4 1153 87
+3b02c 6 156 137
+3b032 6 1155 87
+3b038 e 156 137
+3b046 4 2479 95
+FUNC 3b04a 16 0 testing::internal::Delete<testing::TestInfo>
+3b04a 2 339 91
+3b04c 4 340 91
+3b050 4 340 91
+3b054 2 340 91
+3b056 4 341 91
+3b05a 6 340 91
+FUNC 3b060 58 0 testing::TestCase::~TestCase
+3b060 2 2686 95
+3b062 e 2686 95
+3b070 4 60 103
+3b074 a 61 103
+3b07e 8 2686 95
+3b086 4 87 144
+3b08a 2 88 144
+3b08c 6 323 106
+3b092 8 304 144
+3b09a 4 1153 87
+3b09e 6 156 137
+3b0a4 6 1155 87
+3b0aa 6 156 137
+3b0b0 8 2689 95
+FUNC 3b0b8 12 0 testing::TestCase::~TestCase
+3b0b8 2 2686 95
+3b0ba 2 2686 95
+3b0bc 4 2689 95
+3b0c0 6 2689 95
+3b0c6 4 2689 95
+FUNC 3b0cc 80 0 testing::internal::String::FormatIntWidth2
+3b0cc 6 1920 95
+3b0d2 4 1920 95
+3b0d6 2 1921 95
+3b0d8 6 1920 95
+3b0de 4 1921 95
+3b0e2 2 1920 95
+3b0e4 4 1921 95
+3b0e8 2 147 112
+3b0ea e 84 114
+3b0f8 2 126 112
+3b0fa 2 39 112
+3b0fc 12 126 112
+3b10e 6 39 112
+3b114 4 1922 95
+3b118 2 39 112
+3b11a 4 1922 95
+3b11e 6 1922 95
+3b124 8 75 132
+3b12c 6 1923 95
+3b132 1a 1924 95
+FUNC 3b14c 6c 0 testing::internal::String::FormatHexInt
+3b14c e 1927 95
+3b15a 2 1927 95
+3b15c 6 1928 95
+3b162 2 1927 95
+3b164 4 1928 95
+3b168 a 79 127
+3b172 6 123 115
+3b178 6 124 115
+3b17e 8 79 127
+3b186 8 118 115
+3b18e 6 1929 95
+3b194 8 75 132
+3b19c 6 1930 95
+3b1a2 16 1931 95
+FUNC 3b1b8 118 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::GetOrCreateValue
+3b1b8 4 2037 87
+3b1bc 2 2037 87
+3b1be 6 2039 87
+3b1c4 4 2040 87
+3b1c8 2 2021 87
+3b1ca 2 2041 87
+3b1cc 6 2044 87
+3b1d2 2 2019 87
+3b1d4 2 2044 87
+3b1d6 6 2019 87
+3b1dc 4 192 144
+3b1e0 2 70 144
+3b1e2 4 192 144
+3b1e6 4 342 106
+3b1ea 2 70 144
+3b1ec 2 481 106
+3b1ee 2 342 106
+3b1f0 8 343 106
+3b1f8 4 343 106
+3b1fc 2 346 106
+3b1fe 6 347 106
+3b204 4 348 106
+3b208 2 352 106
+3b20a 2 348 106
+3b20c 4 352 106
+3b210 2 356 106
+3b212 4 73 144
+3b216 2 71 144
+3b218 2 72 144
+3b21a 4 73 144
+3b21e 10 86 142
+3b22e 6 86 142
+3b234 6 139 108
+3b23a 18 466 91
+3b252 16 86 142
+3b268 2 249 144
+3b26a c 2046 87
+3b276 14 2046 87
+3b28a 18 333 127
+3b2a2 8 2046 87
+3b2aa 6 2046 87
+3b2b0 2 2021 87
+3b2b2 1e 2048 87
+FUNC 3b2d0 32 0 testing::UnitTest::PopGTestTrace
+3b2d0 2 4270 95
+3b2d2 2 4270 95
+3b2d4 2 1963 87
+3b2d6 2 4271 95
+3b2d8 8 1963 87
+3b2e0 2 752 91
+3b2e2 6 2010 87
+3b2e8 8 563 144
+3b2f0 8 156 137
+3b2f8 6 4272 95
+3b2fe 4 4273 95
+FUNC 3b304 150 0 testing::internal::ShuffleRange<int>
+3b304 4 311 91
+3b308 2 311 91
+3b30a 6 192 144
+3b310 2 314 91
+3b312 4 192 144
+3b316 4 311 91
+3b31a 4 192 144
+3b31e 2 314 91
+3b320 4 314 91
+3b324 4 317 91
+3b328 4 317 91
+3b32c 6 323 91
+3b332 4 323 91
+3b336 e 325 91
+3b344 2 92 105
+3b346 4 91 105
+3b34a 2 323 91
+3b34c 4 92 105
+3b350 6 93 105
+3b356 16 314 91
+3b36c 18 333 127
+3b384 a 240 126
+3b38e 8 333 127
+3b396 8 240 126
+3b39e 8 333 127
+3b3a6 8 314 91
+3b3ae 16 317 91
+3b3c4 18 333 127
+3b3dc a 240 126
+3b3e6 8 333 127
+3b3ee a 240 126
+3b3f8 8 333 127
+3b400 8 240 126
+3b408 8 333 127
+3b410 8 317 91
+3b418 3c 328 91
+FUNC 3b454 58 0 testing::internal::UnitTestImpl::ShuffleTests
+3b454 2 4877 95
+3b456 2 4877 95
+3b458 6 4879 95
+3b45e 4 801 91
+3b462 c 4879 95
+3b46e 4 192 144
+3b472 2 4883 95
+3b474 2 192 144
+3b476 c 4883 95
+3b482 2 4886 95
+3b484 6 192 144
+3b48a 6 4886 95
+3b490 4 4887 95
+3b494 2 333 91
+3b496 6 192 144
+3b49c 2 4886 95
+3b49e 2 192 144
+3b4a0 a 333 91
+3b4aa 2 4889 95
+FUNC 3b4ac 96 0 std::priv::__put_num<char, std::char_traits<char>, double>
+3b4ac 4 194 126
+3b4b0 6 194 126
+3b4b6 a 181 127
+3b4c0 2 199 126
+3b4c2 10 211 126
+3b4d2 2 202 126
+3b4d4 2 145 115
+3b4d6 4 202 126
+3b4da 2 145 115
+3b4dc 2 202 126
+3b4de 6 145 115
+3b4e4 6 202 126
+3b4ea 2 202 126
+3b4ec 2 202 126
+3b4ee c 202 126
+3b4fa 18 57 128
+3b512 1a 89 125
+3b52c 6 202 126
+3b532 4 210 126
+3b536 6 212 126
+3b53c 6 213 126
+FUNC 3b548 74 0 testing::internal::FormatTimeInMillisAsSeconds
+3b548 10 3500 95
+3b558 2 3500 95
+3b55a 4 3501 95
+3b55e 2 3500 95
+3b560 4 3501 95
+3b564 2 3500 95
+3b566 4 3501 95
+3b56a 14 3502 95
+3b57e a 281 126
+3b588 8 75 132
+3b590 6 3503 95
+3b596 26 3504 95
+FUNC 3b5c0 94 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlCDataSection
+3b5c0 4 3530 95
+3b5c4 2 3530 95
+3b5c6 2 333 127
+3b5c8 2 3530 95
+3b5ca 6 333 127
+3b5d0 2 3534 95
+3b5d2 4 333 127
+3b5d6 2 3534 95
+3b5d8 2 333 127
+3b5da 8 3534 95
+3b5e2 4 3535 95
+3b5e6 c 181 127
+3b5f2 2 434 126
+3b5f4 10 444 126
+3b604 2 436 126
+3b606 8 3537 95
+3b60e c 436 126
+3b61a 4 443 126
+3b61e 6 446 126
+3b624 8 333 127
+3b62c 2 3539 95
+3b62e 2 3544 95
+3b630 10 333 127
+3b640 14 3546 95
+FUNC 3b654 bc 0 testing::internal::StreamingListener::SocketWriter::Send
+3b654 2 1077 91
+3b656 2 1078 91
+3b658 2 1077 91
+3b65a 2 1078 91
+3b65c 2 1077 91
+3b65e 2 1078 91
+3b660 14 1078 91
+3b674 18 333 127
+3b68c 8 1078 91
+3b694 2 400 136
+3b696 2 1082 91
+3b698 2 400 136
+3b69a 6 1082 91
+3b6a0 4 1082 91
+3b6a4 14 1083 91
+3b6b8 e 333 127
+3b6c6 c 1085 91
+3b6d2 8 333 127
+3b6da a 1085 91
+3b6e4 6 1083 91
+3b6ea 26 1087 91
+FUNC 3b710 154 0 testing::internal::StreamingListener::SocketWriter::MakeConnection
+3b710 4 3721 95
+3b714 2 3722 95
+3b716 4 3721 95
+3b71a 2 3722 95
+3b71c 6 3721 95
+3b722 2 3722 95
+3b724 10 3722 95
+3b734 1a 333 127
+3b74e 6 3722 95
+3b754 a 3726 95
+3b75e 2 3729 95
+3b760 4 3728 95
+3b764 6 3729 95
+3b76a 6 3734 95
+3b770 4 3728 95
+3b774 4 3734 95
+3b778 4 3735 95
+3b77c 12 3736 95
+3b78e 10 333 127
+3b79e 8 3737 95
+3b7a6 6 333 127
+3b7ac 6 3736 95
+3b7b2 2 3741 95
+3b7b4 6 3741 95
+3b7ba 2 3741 95
+3b7bc 8 3744 95
+3b7c4 2 3745 95
+3b7c6 2 3744 95
+3b7c8 2 3745 95
+3b7ca e 3747 95
+3b7d8 6 3748 95
+3b7de 2 3749 95
+3b7e0 4 3741 95
+3b7e4 6 3754 95
+3b7ea 6 3756 95
+3b7f0 12 3757 95
+3b802 10 333 127
+3b812 c 3758 95
+3b81e 8 333 127
+3b826 a 3758 95
+3b830 6 3757 95
+3b836 2e 3760 95
+FUNC 3b864 5c 0 testing::AssertionResult::operator<< <testing::Message>
+3b864 10 305 82
+3b874 2 305 82
+3b876 2 306 82
+3b878 2 305 82
+3b87a 4 306 82
+3b87e 2 131 79
+3b880 6 233 79
+3b886 2 131 79
+3b888 4 233 79
+3b88c 8 233 79
+3b894 6 156 137
+3b89a 8 306 82
+3b8a2 6 85 79
+3b8a8 18 308 82
+FUNC 3b8c0 d4 0 testing::internal::PrettyUnitTestResultPrinter::OnTestPartResult
+3b8c0 e 3070 95
+3b8ce 2 3070 95
+3b8d0 2 3072 95
+3b8d2 4 3070 95
+3b8d6 4 3072 95
+3b8da 6 2808 95
+3b8e0 4 77 81
+3b8e4 10 2808 95
+3b8f4 a 131 79
+3b8fe c 333 127
+3b90a 2 2785 95
+3b90c 2 2808 95
+3b90e 6 2785 95
+3b914 6 2794 95
+3b91a 6 2797 95
+3b920 4 2787 95
+3b924 6 2809 95
+3b92a 6 2810 95
+3b930 4 2810 95
+3b934 2 2810 95
+3b936 6 2810 95
+3b93c 6 156 137
+3b942 6 85 79
+3b948 8 2817 95
+3b950 e 2818 95
+3b95e 6 156 137
+3b964 6 3077 95
+3b96a 2a 3078 95
+FUNC 3b994 138 0 testing::internal::XmlUnitTestResultPrinter::EscapeXml
+3b994 6 3427 95
+3b99a 2 3430 95
+3b99c 6 3427 95
+3b9a2 2 3427 95
+3b9a4 2 3428 95
+3b9a6 2 3427 95
+3b9a8 2 3428 95
+3b9aa 6 3427 95
+3b9b0 4 3428 95
+3b9b4 2a 333 127
+3b9de 6 400 136
+3b9e4 4 3430 95
+3b9e8 2 3431 95
+3b9ea e 3432 95
+3b9f8 a 333 127
+3ba02 8 3432 95
+3ba0a 14 333 127
+3ba1e 2 3443 95
+3ba20 c 333 127
+3ba2c 2 3449 95
+3ba2e 4 333 127
+3ba32 8 3309 95
+3ba3a 4 3309 95
+3ba3e 4 3314 95
+3ba42 a 305 127
+3ba4c 4 3430 95
+3ba50 8 3466 95
+3ba58 6 85 79
+3ba5e 10 3467 95
+3ba6e 4 3456 95
+3ba72 2 333 127
+3ba74 4 3457 95
+3ba78 8 333 127
+3ba80 8 3457 95
+3ba88 a 131 79
+3ba92 a 333 127
+3ba9c 8 156 137
+3baa4 28 3467 95
+FUNC 3bacc f0 0 testing::internal::XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes
+3bacc 6 3683 95
+3bad2 2 3685 95
+3bad4 6 3683 95
+3bada 2 3683 95
+3badc 2 3684 95
+3bade 2 3683 95
+3bae0 2 3684 95
+3bae2 4 3683 95
+3bae6 4 3684 95
+3baea 14 333 127
+3bafe c 192 144
+3bb0a 4 3685 95
+3bb0e a 3686 95
+3bb18 a 333 127
+3bb22 c 3687 95
+3bb2e 2 131 79
+3bb30 8 333 127
+3bb38 2 131 79
+3bb3a 4 3688 95
+3bb3e 8 333 127
+3bb46 6 3688 95
+3bb4c 4 3328 95
+3bb50 6 3688 95
+3bb56 a 3328 95
+3bb60 2 131 79
+3bb62 8 131 79
+3bb6a 2 131 79
+3bb6c 8 333 127
+3bb74 c 156 137
+3bb80 4 3685 95
+3bb84 8 3690 95
+3bb8c 6 85 79
+3bb92 2a 3691 95
+FUNC 3bbbc 58 0 testing::Message::Message
+3bbbc 8 96 79
+3bbc4 14 96 79
+3bbd8 2 97 79
+3bbda 6 96 79
+3bbe0 4 97 79
+3bbe4 2 1139 87
+3bbe6 4 97 79
+3bbea a 97 79
+3bbf4 6 156 137
+3bbfa 1a 98 79
+FUNC 3bc14 270 0 testing::internal::ShouldShard
+3bc14 e 4657 95
+3bc22 4 4657 95
+3bc26 4 4664 95
+3bc2a 2 4657 95
+3bc2c 4 4664 95
+3bc30 4 4665 95
+3bc34 2 4664 95
+3bc36 6 4665 95
+3bc3c 2 4667 95
+3bc3e 2 4665 95
+3bc40 2 4667 95
+3bc42 6 4667 95
+3bc48 8 4671 95
+3bc50 24 333 127
+3bc74 a 131 79
+3bc7e 20 333 127
+3bc9e 2 4673 95
+3bca0 4 333 127
+3bca4 8 4673 95
+3bcac 4 85 79
+3bcb0 4 4677 95
+3bcb4 8 4679 95
+3bcbc 24 333 127
+3bce0 a 131 79
+3bcea 20 333 127
+3bd0a 2 4681 95
+3bd0c 4 333 127
+3bd10 8 4681 95
+3bd18 2 4682 95
+3bd1a 6 85 79
+3bd20 8 4682 95
+3bd28 8 4682 95
+3bd30 6 156 137
+3bd36 a 4683 95
+3bd40 6 4684 95
+3bd46 4 4685 95
+3bd4a 4 4685 95
+3bd4e a 4687 95
+3bd58 5a 333 127
+3bdb2 a 131 79
+3bdbc 20 333 127
+3bddc a 131 79
+3bde6 8 333 127
+3bdee 2 4690 95
+3bdf0 4 333 127
+3bdf4 8 4690 95
+3bdfc 2 85 79
+3bdfe 2 4691 95
+3be00 4 85 79
+3be04 6 4691 95
+3be0a a 4696 95
+3be14 2 4668 95
+3be16 6e 4697 95
+FUNC 3be84 a 0 testing::internal::ShouldShard
+3be84 6 4660 95
+3be8a 4 4697 95
+FUNC 3be90 dc 0 testing::GetReservedAttributesForElement
+3be90 4 2074 95
+3be94 4 2074 95
+3be98 e 2075 95
+3bea6 2 67 144
+3bea8 2 272 144
+3beaa 2 67 144
+3beac 2 272 144
+3beae 2 67 144
+3beb0 2 481 106
+3beb2 8 272 144
+3beba e 2077 95
+3bec8 2 272 144
+3beca 4 67 144
+3bece 2 481 106
+3bed0 6 272 144
+3bed6 e 2079 95
+3bee4 4 272 144
+3bee8 4 67 144
+3beec 2 481 106
+3beee c 272 144
+3befa 16 2082 95
+3bf10 18 333 127
+3bf28 8 2082 95
+3bf30 6 2082 95
+3bf36 4 67 144
+3bf3a 2 481 106
+3bf3c 30 2086 95
+FUNC 3bf6c 84 0 testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::GetOrCreateValue
+3bf6c 2 2037 87
+3bf6e 2 2037 87
+3bf70 6 2039 87
+3bf76 2 2040 87
+3bf78 2 2021 87
+3bf7a 2 2041 87
+3bf7c 8 2044 87
+3bf84 2 2019 87
+3bf86 2 2046 87
+3bf88 a 2019 87
+3bf92 a 2046 87
+3bf9c 14 2046 87
+3bfb0 18 333 127
+3bfc8 8 2046 87
+3bfd0 6 2046 87
+3bfd6 2 2021 87
+3bfd8 18 2048 87
+FUNC 3bff0 c 0 testing::internal::UnitTestImpl::GetTestPartResultReporterForCurrentThread
+3bff0 2 701 95
+3bff2 6 2011 87
+3bff8 4 703 95
+FUNC 3bffc 1d4 0 testing::UnitTest::AddTestPartResult
+3bffc e 4065 95
+3c00a 4 4065 95
+3c00e 2 4066 95
+3c010 2 4065 95
+3c012 2 4066 95
+3c014 8 4065 95
+3c01c 4 4066 95
+3c020 a 131 79
+3c02a 2 4069 95
+3c02c 6 1963 87
+3c032 2 752 91
+3c034 6 2010 87
+3c03a 6 192 144
+3c040 8 4070 95
+3c048 6 4081 95
+3c04e 24 333 127
+3c072 2 752 91
+3c074 4 4076 95
+3c078 6 2010 87
+3c07e 6 192 144
+3c084 2 333 127
+3c086 2 192 144
+3c088 a 333 127
+3c092 4 4073 95
+3c096 2 752 91
+3c098 2 4075 95
+3c09a 6 2010 87
+3c0a0 4 202 144
+3c0a4 6 333 127
+3c0aa 4 202 144
+3c0ae 8 333 127
+3c0b6 e 4076 95
+3c0c4 a 131 79
+3c0ce a 333 127
+3c0d8 c 131 79
+3c0e4 8 156 137
+3c0ec 6 4081 95
+3c0f2 a 4087 95
+3c0fc 10 68 81
+3c10c 4 68 81
+3c110 a 68 81
+3c11a 2 68 81
+3c11c 4 68 81
+3c120 2 68 81
+3c122 4 68 81
+3c126 a 68 81
+3c130 6 156 137
+3c136 6 4088 95
+3c13c 2 4089 95
+3c13e 4 68 81
+3c142 6 4089 95
+3c148 4 4091 95
+3c14c 8 4097 95
+3c154 6 4108 95
+3c15a 8 4110 95
+3c162 6 4116 95
+3c168 6 4087 95
+3c16e 6 4069 95
+3c174 6 85 79
+3c17a e 4120 95
+3c188 c 333 127
+3c194 c 131 79
+3c1a0 30 4120 95
+FUNC 3c1d0 e 0 testing::internal::UnitTestImpl::SetTestPartResultReporterForCurrentThread
+3c1d0 2 707 95
+3c1d2 2 2010 87
+3c1d4 2 707 95
+3c1d6 4 2010 87
+3c1da 4 2013 87
+FUNC 3c1de 42 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::_M_find<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+3c1de 4 548 141
+3c1e2 4 548 141
+3c1e6 6 549 141
+3c1ec 2 552 141
+3c1ee a 79 111
+3c1f8 4 553 141
+3c1fc 4 554 141
+3c200 4 556 141
+3c204 4 558 141
+3c208 12 79 111
+3c21a 6 564 141
+FUNC 3c220 28 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::_M_erase
+3c220 6 655 140
+3c226 2 657 140
+3c228 8 658 140
+3c230 4 156 137
+3c234 2 659 140
+3c236 4 156 137
+3c23a c 161 106
+3c246 2 664 140
+FUNC 3c248 20 0 std::priv::_List_global<bool>::_Transfer
+3c248 2 50 120
+3c24a 2 48 120
+3c24c 2 50 120
+3c24e 4 52 120
+3c252 4 53 120
+3c256 4 54 120
+3c25a 2 58 120
+3c25c 2 57 120
+3c25e 2 58 120
+3c260 4 59 120
+3c264 4 60 120
+FUNC 3c268 56 0 testing::internal::edit_distance::::Hunk::PushLine
+3c268 2 208 121
+3c26a 2 1096 95
+3c26c 2 1099 95
+3c26e 2 1096 95
+3c270 4 1099 95
+3c274 4 208 121
+3c278 2 1096 95
+3c27a 2 600 121
+3c27c 4 370 121
+3c280 2 600 121
+3c282 6 602 121
+3c288 6 208 121
+3c28e 4 600 121
+3c292 6 602 121
+3c298 8 306 106
+3c2a0 4 307 106
+3c2a4 4 119 108
+3c2a8 8 68 129
+3c2b0 2 427 121
+3c2b2 2 428 121
+3c2b4 2 429 121
+3c2b6 2 430 121
+3c2b8 2 431 121
+3c2ba 4 1112 95
+FUNC 3c2be 26 0 std::operator==<char, std::char_traits<char>, std::allocator<char> >
+3c2be 2 287 139
+3c2c0 6 287 139
+3c2c6 a 400 136
+3c2d0 4 289 139
+3c2d4 4 226 145
+3c2d8 8 289 139
+3c2e0 2 289 139
+3c2e2 2 290 139
+FUNC 3c2e4 a8 0 std::priv::__find<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+3c2e4 4 112 104
+3c2e8 2 115 104
+3c2ea 8 112 104
+3c2f2 8 115 104
+3c2fa 4 117 104
+3c2fe a 118 104
+3c308 4 119 104
+3c30c e 121 104
+3c31a e 124 104
+3c328 c 127 104
+3c334 4 117 104
+3c338 18 131 104
+3c350 a 133 104
+3c35a 2 134 104
+3c35c a 136 104
+3c366 2 137 104
+3c368 8 139 104
+3c370 a 139 104
+3c37a 4 143 104
+3c37e 2 136 104
+3c380 c 145 104
+FUNC 3c38c 10c 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlAttribute
+3c38c e 3552 95
+3c39a 2 3552 95
+3c39c 2 3554 95
+3c39e 4 3552 95
+3c3a2 2 3554 95
+3c3a4 4 3552 95
+3c3a8 8 3554 95
+3c3b0 e 223 104
+3c3be 6 3556 95
+3c3c4 12 3556 95
+3c3d6 18 333 127
+3c3ee a 3558 95
+3c3f8 8 333 127
+3c400 8 3558 95
+3c408 8 333 127
+3c410 6 3556 95
+3c416 a 333 127
+3c420 a 3561 95
+3c42a 2 333 127
+3c42c 2 3328 95
+3c42e 6 333 127
+3c434 a 3328 95
+3c43e 8 3561 95
+3c446 8 333 127
+3c44e 6 156 137
+3c454 6 42 148
+3c45a 3e 3562 95
+FUNC 3c498 ac 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_insert_overflow
+3c498 4 108 143
+3c49c 2 108 143
+3c49e 6 192 144
+3c4a4 4 173 144
+3c4a8 2 108 143
+3c4aa 2 192 144
+3c4ac 4 173 144
+3c4b0 4 108 143
+3c4b4 2 173 144
+3c4b6 8 41 143
+3c4be 8 175 144
+3c4c6 6 176 144
+3c4cc 4 176 144
+3c4d0 4 176 144
+3c4d4 8 347 106
+3c4dc 4 348 106
+3c4e0 2 353 106
+3c4e2 4 352 106
+3c4e6 e 112 143
+3c4f4 2 480 105
+3c4f6 4 481 105
+3c4fa 2 480 105
+3c4fc 6 481 105
+3c502 a 115 143
+3c50c e 116 143
+3c51a 4 657 144
+3c51e 2 319 106
+3c520 4 323 106
+3c524 4 118 143
+3c528 4 666 144
+3c52c 2 667 144
+3c52e 2 668 144
+3c530 6 119 143
+3c536 4 346 106
+3c53a a 356 106
+FUNC 3c544 28 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::push_back
+3c544 2 376 144
+3c546 2 376 144
+3c548 a 380 144
+3c552 2 126 108
+3c554 8 382 144
+3c55c c 386 144
+3c568 4 388 144
+FUNC 3c56c 18 0 testing::TestEventListeners::Append
+3c56c 4 3854 95
+3c570 6 3855 95
+3c576 8 173 148
+3c57e 6 3856 95
+FUNC 3c584 2a 0 testing::TestEventListeners::SetDefaultResultPrinter
+3c584 2 3878 95
+3c586 2 3878 95
+3c588 2 3879 95
+3c58a 2 3878 95
+3c58c 4 3879 95
+3c590 6 3882 95
+3c596 2 3882 95
+3c598 4 3882 95
+3c59c 2 3883 95
+3c59e 2 3884 95
+3c5a0 4 3885 95
+3c5a4 4 3887 95
+3c5a8 6 3885 95
+FUNC 3c5b0 1c8 0 testing::internal::UnitTestImpl::UnitTestImpl
+3c5b0 6 4277 95
+3c5b6 2 4305 95
+3c5b8 2 4277 95
+3c5ba 4 4305 95
+3c5be 2 61 84
+3c5c0 2 4305 95
+3c5c2 2 61 84
+3c5c4 2 4305 95
+3c5c6 a 61 84
+3c5d0 a 669 95
+3c5da a 678 95
+3c5e4 6 4305 95
+3c5ea 8 4305 95
+3c5f2 e 2032 87
+3c600 2 4277 95
+3c602 4 4305 95
+3c606 2 4277 95
+3c608 4 2032 87
+3c60c 10 2032 87
+3c61c 1a 333 127
+3c636 8 2032 87
+3c63e 6 2032 87
+3c644 2 2034 87
+3c646 2 67 144
+3c648 2 1999 87
+3c64a 4 4305 95
+3c64e 4 1999 87
+3c652 2 4305 95
+3c654 4 67 144
+3c658 2 481 106
+3c65a 4 67 144
+3c65e 2 481 106
+3c660 4 67 144
+3c664 2 481 106
+3c666 4 67 144
+3c66a 2 481 106
+3c66c c 4305 95
+3c678 4 4305 95
+3c67c 4 4305 95
+3c680 4 4305 95
+3c684 6 4305 95
+3c68a 18 4305 95
+3c6a2 4 712 85
+3c6a6 4 1139 87
+3c6aa 6 4305 95
+3c6b0 2 148 83
+3c6b2 2 2032 87
+3c6b4 2 148 83
+3c6b6 2 2032 87
+3c6b8 4 148 83
+3c6bc 4 1139 87
+3c6c0 a 2032 87
+3c6ca 10 2032 87
+3c6da 1a 333 127
+3c6f4 8 2032 87
+3c6fc 6 2032 87
+3c702 2 2034 87
+3c704 2 4306 95
+3c706 4 1997 87
+3c70a a 67 144
+3c714 4 481 106
+3c718 4 4305 95
+3c71c 4 4306 95
+3c720 2 2981 95
+3c722 2 4306 95
+3c724 6 2981 95
+3c72a 6 4306 95
+3c730 48 4307 95
+FUNC 3c778 2c 0 testing::UnitTest::UnitTest
+3c778 2 4251 95
+3c77a 10 4251 95
+3c78a a 4252 95
+3c794 6 4252 95
+3c79a 2 4252 95
+3c79c 8 4253 95
+FUNC 3c7a4 44 0 testing::UnitTest::GetInstance
+3c7a4 2 3924 95
+3c7a6 a 3940 95
+3c7b0 c 3940 95
+3c7bc a 3940 95
+3c7c6 2 3940 95
+3c7c8 4 3940 95
+3c7cc 1c 3943 95
+FUNC 3c7e8 194 0 testing::internal::UnitTestOptions::GetAbsolutePathToOutputFile
+3c7e8 e 408 95
+3c7f6 10 408 95
+3c806 2 410 95
+3c808 c 411 95
+3c814 a 413 95
+3c81e 2 414 95
+3c820 6 418 95
+3c826 6 418 95
+3c82c 2 418 95
+3c82e 6 418 95
+3c834 8 418 95
+3c83c 8 418 95
+3c844 4 418 95
+3c848 6 418 95
+3c84e 8 418 95
+3c856 a 418 95
+3c860 8 418 95
+3c868 14 156 137
+3c87c 2 420 95
+3c87e 4 420 95
+3c882 2 420 95
+3c884 6 420 95
+3c88a 8 420 95
+3c892 6 156 137
+3c898 8 421 95
+3c8a0 6 426 95
+3c8a6 6 426 95
+3c8ac 4 426 95
+3c8b0 6 426 95
+3c8b6 4 426 95
+3c8ba 8 426 95
+3c8c2 4 426 95
+3c8c6 2 426 95
+3c8c8 6 426 95
+3c8ce 8 426 95
+3c8d6 a 426 95
+3c8e0 8 74 84
+3c8e8 1e 156 137
+3c906 8 430 95
+3c90e 8 431 95
+3c916 2 431 95
+3c918 8 435 95
+3c920 2 435 95
+3c922 6 435 95
+3c928 c 435 95
+3c934 c 156 137
+3c940 8 436 95
+3c948 c 156 137
+3c954 28 437 95
+FUNC 3c97c a 0 testing::internal::GetUnitTestImpl
+3c97c 2 936 91
+3c97e 4 937 91
+3c982 4 938 91
+FUNC 3c986 46 0 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>
+3c986 4 2370 95
+3c98a 6 2370 95
+3c990 14 2395 95
+3c9a4 a 2362 95
+3c9ae c 2418 95
+3c9ba 4 2418 95
+3c9be 2 2418 95
+3c9c0 4 2418 95
+3c9c4 6 2420 95
+3c9ca 2 2418 95
+FUNC 3c986 46 0 testing::internal::HandleExceptionsInMethodIfSupported<testing::TestCase, void>
+FUNC 3c9cc 1c 0 testing::Test::HasFatalFailure
+3c9cc 2 2447 95
+3c9ce 4 2448 95
+3c9d2 6 4872 95
+3c9d8 6 4872 95
+3c9de 2 4872 95
+3c9e0 4 2449 95
+3c9e4 4 2448 95
+FUNC 3c9e8 1c 0 testing::Test::HasNonfatalFailure
+3c9e8 2 2452 95
+3c9ea 4 2454 95
+3c9ee 6 4872 95
+3c9f4 6 4872 95
+3c9fa 2 4872 95
+3c9fc 4 2455 95
+3ca00 4 2454 95
+FUNC 3ca04 88 0 testing::UnitTest::Run
+3ca04 8 4137 95
+3ca0c 4 4164 95
+3ca10 2 4137 95
+3ca12 4 4164 95
+3ca16 8 2328 87
+3ca1e 4 3816 95
+3ca22 4 3816 95
+3ca26 8 2298 87
+3ca2e 2 3821 95
+3ca30 2 2298 87
+3ca32 c 3821 95
+3ca3e 8 3822 95
+3ca46 2 4164 95
+3ca48 2 4168 95
+3ca4a 2 1279 82
+3ca4c 2 4168 95
+3ca4e 6 819 91
+3ca54 2 1279 82
+3ca56 4 2395 95
+3ca5a 6 2418 95
+3ca60 4 4212 95
+3ca64 2 4212 95
+3ca66 2 3827 95
+3ca68 4 3827 95
+3ca6c 6 3828 95
+3ca72 1a 4213 95
+FUNC 3ca8c 10 0 testing::internal::ScopedTrace::~ScopedTrace
+3ca8c 2 3780 95
+3ca8e 2 3780 95
+3ca90 4 3782 95
+3ca94 4 3782 95
+3ca98 4 3783 95
+FUNC 3ca9c 2a 0 testing::TestEventListeners::SetDefaultXmlGenerator
+3ca9c 2 3894 95
+3ca9e 2 3894 95
+3caa0 2 3895 95
+3caa2 2 3894 95
+3caa4 4 3895 95
+3caa8 6 3898 95
+3caae 2 3898 95
+3cab0 4 3898 95
+3cab4 2 3899 95
+3cab6 2 3900 95
+3cab8 4 3901 95
+3cabc 4 3903 95
+3cac0 6 3901 95
+FUNC 3cac8 a0 0 testing::internal::UnitTestImpl::ConfigureXmlOutput
+3cac8 8 4352 95
+3cad0 4 4352 95
+3cad4 2 4353 95
+3cad6 4 4352 95
+3cada 2 4353 95
+3cadc 2 4352 95
+3cade 4 4353 95
+3cae2 c 4354 95
+3caee 8 4356 95
+3caf6 c 4356 95
+3cb02 6 4356 95
+3cb08 a 4356 95
+3cb12 8 156 137
+3cb1a a 476 139
+3cb24 2 4357 95
+3cb26 c 4359 95
+3cb32 a 4360 95
+3cb3c 6 156 137
+3cb42 26 4362 95
+FUNC 3cb68 2c 0 testing::TestCase::AddTestInfo
+3cb68 2 2707 95
+3cb6a 8 2707 95
+3cb72 8 173 148
+3cb7a 8 192 144
+3cb82 2 2709 95
+3cb84 4 192 144
+3cb88 4 2709 95
+3cb8c 4 173 148
+3cb90 4 2710 95
+FUNC 3cb94 20 0 std::_Destroy_Range<std::reverse_iterator<testing::internal::TraceInfo*> >
+3cb94 2 219 108
+3cb96 6 65 118
+3cb9c 2 74 118
+3cb9e 4 191 108
+3cba2 4 156 137
+3cba6 2 81 118
+3cba8 4 156 137
+3cbac 4 81 118
+3cbb0 4 221 108
+FUNC 3cbb4 34 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::ValueHolder::~ValueHolder
+3cbb4 2 2017 87
+3cbb6 4 2017 87
+3cbba 2 304 144
+3cbbc 6 2017 87
+3cbc2 6 64 118
+3cbc8 2 304 144
+3cbca 2 64 118
+3cbcc 4 304 144
+3cbd0 4 87 144
+3cbd4 2 88 144
+3cbd6 6 323 106
+3cbdc c 2017 87
+FUNC 3cbe8 12 0 testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::ValueHolder::~ValueHolder
+3cbe8 2 2017 87
+3cbea 6 2017 87
+3cbf0 6 2017 87
+3cbf6 4 2017 87
+FUNC 3cbfc 19c 0 testing::internal::UnitTestImpl::~UnitTestImpl
+3cbfc 2 4309 95
+3cbfe e 4309 95
+3cc0c 4 60 103
+3cc10 e 61 103
+3cc1e 4 60 103
+3cc22 a 61 103
+3cc2c 6 4316 95
+3cc32 6 4316 95
+3cc38 8 2003 87
+3cc40 4 2003 87
+3cc44 e 2007 87
+3cc52 12 2007 87
+3cc64 18 333 127
+3cc7c 8 2007 87
+3cc84 6 2007 87
+3cc8a c 64 118
+3cc96 2 304 144
+3cc98 4 64 118
+3cc9c 4 304 144
+3cca0 6 87 144
+3cca6 4 88 144
+3ccaa 6 323 106
+3ccb0 6 1153 87
+3ccb6 6 1155 87
+3ccbc a 1140 87
+3ccc6 8 4309 95
+3ccce a 4309 95
+3ccd8 6 560 86
+3ccde 8 562 86
+3cce6 8 562 86
+3ccee 8 304 144
+3ccf6 4 87 144
+3ccfa 2 88 144
+3ccfc 6 323 106
+3cd02 10 304 144
+3cd12 6 2003 87
+3cd18 4 2003 87
+3cd1c a 2007 87
+3cd26 12 2007 87
+3cd38 18 333 127
+3cd50 8 2007 87
+3cd58 6 2007 87
+3cd5e 8 4309 95
+3cd66 8 156 137
+3cd6e 2a 4317 95
+FUNC 3cd98 12 0 testing::internal::UnitTestImpl::~UnitTestImpl
+3cd98 2 4309 95
+3cd9a 2 4309 95
+3cd9c 4 4317 95
+3cda0 6 4317 95
+3cda6 4 4317 95
+FUNC 3cdac 98 0 testing::internal::StreamingListener::UrlEncode
+3cdac e 3702 95
+3cdba 2 3702 95
+3cdbc 2 3703 95
+3cdbe 4 3702 95
+3cdc2 4 3703 95
+3cdc6 6 3704 95
+3cdcc 4 3711 95
+3cdd0 2 3704 95
+3cdd2 6 3704 95
+3cdd8 2 3705 95
+3cdda 2 3711 95
+3cddc 6 3711 95
+3cde2 2 3705 95
+3cde4 10 3706 95
+3cdf4 6 3711 95
+3cdfa a 3711 95
+3ce04 8 3711 95
+3ce0c c 156 137
+3ce18 2 3712 95
+3ce1a 6 3714 95
+3ce20 6 3705 95
+3ce26 1e 3719 95
+FUNC 3ce44 130 0 testing::internal::UnitTestOptions::FilterMatchesTest
+3ce44 18 485 95
+3ce5c 2 485 95
+3ce5e a 486 95
+3ce68 2 486 95
+3ce6a 4 486 95
+3ce6e a 486 95
+3ce78 8 156 137
+3ce80 12 491 95
+3ce92 a 492 95
+3ce9c 2 493 95
+3ce9e 4 492 95
+3cea2 8 493 95
+3ceaa 6 494 95
+3ceb0 a 495 95
+3ceba 8 496 95
+3cec2 4 355 119
+3cec6 4 324 136
+3ceca 2 112 137
+3cecc 2 481 106
+3cece 4 324 136
+3ced2 a 148 142
+3cedc 2 101 108
+3cede 2 325 136
+3cee0 2 498 95
+3cee2 2 101 108
+3cee4 6 498 95
+3ceea 6 156 137
+3cef0 c 499 95
+3cefc 8 499 95
+3cf04 6 156 137
+3cf0a 8 500 95
+3cf12 a 502 95
+3cf1c 8 508 95
+3cf24 4 508 95
+3cf28 8 509 95
+3cf30 6 508 95
+3cf36 12 156 137
+3cf48 2c 510 95
+FUNC 3cf74 148 0 testing::internal::UnitTestImpl::FilterTests
+3cf74 e 4731 95
+3cf82 4 4731 95
+3cf86 6 4733 95
+3cf8c e 4733 95
+3cf9a 10 4735 95
+3cfaa 6 4733 95
+3cfb0 2 4735 95
+3cfb2 2 4743 95
+3cfb4 2 4755 95
+3cfb6 2 4742 95
+3cfb8 4 4755 95
+3cfbc 2 4766 95
+3cfbe 2 4741 95
+3cfc0 4 4766 95
+3cfc4 a 192 144
+3cfce 6 4743 95
+3cfd4 2 860 82
+3cfd6 4 4744 95
+3cfda a 4745 95
+3cfe4 4 4750 95
+3cfe8 4 860 82
+3cfec 6 192 144
+3cff2 6 4748 95
+3cff8 4 4749 95
+3cffc a 4750 95
+3d006 c 4755 95
+3d012 a 4757 95
+3d01c 4 4758 95
+3d020 8 4762 95
+3d028 2 4766 95
+3d02a 4 4763 95
+3d02e 4 4766 95
+3d032 6 4766 95
+3d038 4 4766 95
+3d03c 4 4769 95
+3d040 6 4769 95
+3d046 8 4721 95
+3d04e 4 4770 95
+3d052 4 4766 95
+3d056 2 4770 95
+3d058 2 4769 95
+3d05a 2 4774 95
+3d05c 4 4777 95
+3d060 2 4774 95
+3d062 2 4775 95
+3d064 2 156 137
+3d066 4 4775 95
+3d06a 4 803 82
+3d06e 2 4774 95
+3d070 6 4778 95
+3d076 4 860 82
+3d07a 4 156 137
+3d07e 4 4748 95
+3d082 6 156 137
+3d088 4 4743 95
+3d08c 10 4782 95
+3d09c 2 4766 95
+3d09e 4 4769 95
+3d0a2 1a 4782 95
+FUNC 3d0bc 44 0 testing::internal::StreamingListener::SendLn
+3d0bc 4 1174 91
+3d0c0 2 1143 87
+3d0c2 8 1174 91
+3d0ca 4 1059 91
+3d0ce 2 1174 91
+3d0d0 c 1059 91
+3d0dc 6 1059 91
+3d0e2 6 156 137
+3d0e8 18 1174 91
+FUNC 3d100 44 0 testing::internal::StreamingListener::OnTestProgramStart
+3d100 c 1118 91
+3d10c 2 1119 91
+3d10e 2 1118 91
+3d110 8 1119 91
+3d118 2 1118 91
+3d11a 4 1119 91
+3d11e 8 1119 91
+3d126 6 156 137
+3d12c 18 1120 91
+FUNC 3d144 78 0 testing::internal::StreamingListener::OnTestProgramEnd
+3d144 6 1122 91
+3d14a 8 1122 91
+3d152 2 1125 91
+3d154 2 1122 91
+3d156 4 1125 91
+3d15a 2 1180 91
+3d15c 6 1180 91
+3d162 4 1180 91
+3d166 a 1180 91
+3d170 e 1125 91
+3d17e 8 1125 91
+3d186 c 156 137
+3d192 2 1143 87
+3d194 2 1128 91
+3d196 4 1128 91
+3d19a 22 1129 91
+FUNC 3d1bc 58 0 testing::internal::StreamingListener::OnTestIterationStart
+3d1bc c 1131 91
+3d1c8 2 1131 91
+3d1ca 6 1132 91
+3d1d0 4 1131 91
+3d1d4 4 1132 91
+3d1d8 e 1132 91
+3d1e6 8 1133 91
+3d1ee c 156 137
+3d1fa 1a 1134 91
+FUNC 3d214 180 0 testing::internal::UnitTestImpl::ConfigureStreamingOutput
+3d214 8 4367 95
+3d21c 12 4367 95
+3d22e 6 4369 95
+3d234 6 440 135
+3d23a 6 162 104
+3d240 4 164 104
+3d244 6 165 104
+3d24a 6 168 104
+3d250 4 166 104
+3d254 6 171 104
+3d25a 4 169 104
+3d25e 6 174 104
+3d264 6 172 104
+3d26a 4 164 104
+3d26e 10 178 104
+3d27e 6 180 104
+3d284 2 181 104
+3d286 6 183 104
+3d28c 2 184 104
+3d28e a 186 104
+3d298 2 178 104
+3d29a 4 447 135
+3d29e 2 447 135
+3d2a0 4 4371 95
+3d2a4 32 1023 136
+3d2d6 6 4373 95
+3d2dc 2 1113 91
+3d2de 2 4373 95
+3d2e0 6 1113 91
+3d2e6 6 1113 91
+3d2ec 2 1067 91
+3d2ee 2 1113 91
+3d2f0 a 1067 91
+3d2fa 2 1067 91
+3d2fc 2 1067 91
+3d2fe 6 1067 91
+3d304 a 1067 91
+3d30e 6 1068 91
+3d314 2 1178 91
+3d316 4 1139 87
+3d31a c 1178 91
+3d326 8 1178 91
+3d32e 6 156 137
+3d334 a 4373 95
+3d33e e 156 137
+3d34c a 4376 95
+3d356 a 4377 95
+3d360 34 4380 95
+FUNC 3d394 3c 0 testing::internal::UnitTestImpl::PostFlagParsingInit
+3d394 2 4388 95
+3d396 4 4390 95
+3d39a 2 4388 95
+3d39c 2 4390 95
+3d39e 6 4391 95
+3d3a4 6 760 91
+3d3aa 8 760 91
+3d3b2 6 4395 95
+3d3b8 6 4401 95
+3d3be 6 4405 95
+3d3c4 2 4409 95
+3d3c6 4 4412 95
+3d3ca 6 4409 95
+FUNC 3d3d0 70 0 testing::internal::AppendUserMessage
+3d3d0 8 1963 95
+3d3d8 4 1963 95
+3d3dc 2 1965 95
+3d3de 6 1963 95
+3d3e4 4 1965 95
+3d3e8 2 1963 95
+3d3ea 4 1965 95
+3d3ee 8 1966 95
+3d3f6 a 1967 95
+3d400 e 1970 95
+3d40e a 1970 95
+3d418 c 156 137
+3d424 1c 1971 95
+FUNC 3d440 78 0 testing::internal::AssertHelper::operator=
+3d440 10 363 95
+3d450 4 363 95
+3d454 6 370 95
+3d45a 2 370 95
+3d45c a 370 95
+3d466 4 370 95
+3d46a 2 370 95
+3d46c 6 370 95
+3d472 6 370 95
+3d478 c 370 95
+3d484 10 370 95
+3d494 c 156 137
+3d4a0 18 371 95
+FUNC 3d4b8 224 0 testing::Test::HasSameFixtureClass
+3d4b8 6 2229 95
+3d4be 8 2230 95
+3d4c6 4 743 91
+3d4ca 2 2234 95
+3d4cc 2 2240 95
+3d4ce 6 2234 95
+3d4d4 4 2235 95
+3d4d8 6 2243 95
+3d4de c 2249 95
+3d4ea 4 2249 95
+3d4ee 4 2257 95
+3d4f2 2 2257 95
+3d4f4 2 2259 95
+3d4f6 16 2261 95
+3d50c 6 2262 95
+3d512 24 333 127
+3d536 a 2264 95
+3d540 2 333 127
+3d542 2 131 79
+3d544 a 333 127
+3d54e 4 131 79
+3d552 a 333 127
+3d55c a 2266 95
+3d566 2 333 127
+3d568 2 131 79
+3d56a 8 333 127
+3d572 2 131 79
+3d574 8 333 127
+3d57c a 2267 95
+3d586 2 333 127
+3d588 2 131 79
+3d58a 8 333 127
+3d592 2 131 79
+3d594 a 333 127
+3d59e 2 131 79
+3d5a0 8 333 127
+3d5a8 16 2273 95
+3d5be 6 2274 95
+3d5c4 18 333 127
+3d5dc a 2276 95
+3d5e6 2 333 127
+3d5e8 2 131 79
+3d5ea 8 333 127
+3d5f2 2 131 79
+3d5f4 a 333 127
+3d5fe a 2277 95
+3d608 2 333 127
+3d60a 2 131 79
+3d60c 8 333 127
+3d614 a 2278 95
+3d61e 2 333 127
+3d620 2 131 79
+3d622 8 333 127
+3d62a 2 131 79
+3d62c a 333 127
+3d636 2 131 79
+3d638 a 333 127
+3d642 2 131 79
+3d644 a 333 127
+3d64e 2 131 79
+3d650 a 333 127
+3d65a 8 2282 95
+3d662 6 85 79
+3d668 6 2273 95
+3d66e 4 2284 95
+3d672 2 2287 95
+3d674 68 2288 95
+FUNC 3d6dc a8 0 testing::Test::Run
+3d6dc 4 2425 95
+3d6e0 2 2425 95
+3d6e2 8 2426 95
+3d6ea 6 2428 95
+3d6f0 4 2429 95
+3d6f4 2 2430 95
+3d6f6 2 2429 95
+3d6f8 2 2430 95
+3d6fa 4 2429 95
+3d6fe 16 2430 95
+3d714 6 2432 95
+3d71a 8 2433 95
+3d722 2 2435 95
+3d724 4 2433 95
+3d728 18 2435 95
+3d740 8 2441 95
+3d748 4 2441 95
+3d74c 1e 2443 95
+3d76a 1a 2444 95
+FUNC 3d784 104 0 testing::TestInfo::Run
+3d784 4 2584 95
+3d788 4 2585 95
+3d78c 2 2584 95
+3d78e 2 2584 95
+3d790 4 2585 95
+3d794 4 2588 95
+3d798 4 693 91
+3d79c 2 2588 95
+3d79e 4 2591 95
+3d7a2 2 3871 95
+3d7a4 2 2594 95
+3d7a6 8 3871 95
+3d7ae a 2594 95
+3d7b8 6 2596 95
+3d7be 2 2598 95
+3d7c0 2 2596 95
+3d7c2 6 2598 95
+3d7c8 4 2598 95
+3d7cc 16 2603 95
+3d7e2 14 2395 95
+3d7f6 a 2362 95
+3d800 c 2418 95
+3d80c 6 2418 95
+3d812 2 2418 95
+3d814 4 2418 95
+3d818 4 2418 95
+3d81c 2 2607 95
+3d81e 4 2607 95
+3d822 2 2607 95
+3d824 6 2614 95
+3d82a 4 2616 95
+3d82e 2 2614 95
+3d830 4 2614 95
+3d834 1a 2616 95
+3d84e a 2618 95
+3d858 4 585 82
+3d85c c 2621 95
+3d868 6 693 91
+3d86e 8 2610 95
+3d876 12 2626 95
+FUNC 3d888 d4 0 testing::TestCase::Run
+3d888 4 2713 95
+3d88c 4 2714 95
+3d890 2 2713 95
+3d892 2 2713 95
+3d894 4 2714 95
+3d898 4 2716 95
+3d89c 4 686 91
+3d8a0 2 2716 95
+3d8a2 4 2719 95
+3d8a6 2 3871 95
+3d8a8 2 2721 95
+3d8aa 4 3871 95
+3d8ae 2 2724 95
+3d8b0 a 2721 95
+3d8ba 8 2722 95
+3d8c2 4 2722 95
+3d8c6 16 2724 95
+3d8dc 8 2726 95
+3d8e4 6 192 144
+3d8ea 6 2727 95
+3d8f0 8 2728 95
+3d8f8 4 2728 95
+3d8fc 4 2727 95
+3d900 e 2730 95
+3d90e 6 2732 95
+3d914 2 2734 95
+3d916 2 2732 95
+3d918 4 2732 95
+3d91c 18 2734 95
+3d934 c 2736 95
+3d940 4 686 91
+3d944 18 2738 95
+FUNC 3d95c 2d4 0 testing::internal::UnitTestImpl::RunAllTests
+3d95c 4 4498 95
+3d960 2 320 95
+3d962 2 4498 95
+3d964 2 320 95
+3d966 2 4500 95
+3d968 2 4498 95
+3d96a 2 4500 95
+3d96c 8 4503 95
+3d974 2 4504 95
+3d976 c 4508 95
+3d982 4 4513 95
+3d986 4 4518 95
+3d98a 4 4525 95
+3d98e 2 4529 95
+3d990 6 4525 95
+3d996 c 4529 95
+3d9a2 4 4535 95
+3d9a6 12 4535 95
+3d9b8 8 4538 95
+3d9c0 8 4540 95
+3d9c8 8 4545 95
+3d9d0 6 4545 95
+3d9d6 2 138 91
+3d9d8 4 137 91
+3d9dc 8 143 91
+3d9e4 2 144 91
+3d9e6 4 4545 95
+3d9ea 4 3871 95
+3d9ee 8 4552 95
+3d9f6 a 4553 95
+3da00 2 4557 95
+3da02 a 4557 95
+3da0c 4 4557 95
+3da10 4 4560 95
+3da14 2 4548 95
+3da16 6 4568 95
+3da1c 6 4620 95
+3da22 6 152 91
+3da28 12 333 127
+3da3a e 4560 95
+3da48 6 60 103
+3da4e a 871 82
+3da58 4 4565 95
+3da5c 2 4568 95
+3da5e 4 4565 95
+3da62 2 4568 95
+3da64 6 4568 95
+3da6a 4 714 85
+3da6e 2 4573 95
+3da70 4 714 85
+3da74 4 4573 95
+3da78 c 4577 95
+3da84 6 4580 95
+3da8a 10 4582 95
+3da9a 4 60 103
+3da9e a 61 103
+3daa8 a 4584 95
+3dab2 6 4588 95
+3dab8 a 4596 95
+3dac2 a 64 118
+3dacc 2 4588 95
+3dace 4 594 91
+3dad2 a 192 144
+3dadc 6 4589 95
+3dae2 c 594 91
+3daee 2 595 91
+3daf0 6 595 91
+3daf6 2 595 91
+3daf8 4 4591 95
+3dafc 4 4589 95
+3db00 2 74 118
+3db02 4 60 103
+3db06 8 61 103
+3db0e 4 81 118
+3db12 a 4599 95
+3db1c 16 4602 95
+3db32 c 4605 95
+3db3e 6 576 91
+3db44 2 4609 95
+3db46 2 4618 95
+3db48 4 4609 95
+3db4c 4 4618 95
+3db50 6 4620 95
+3db56 4 4622 95
+3db5a 8 152 91
+3db62 14 152 91
+3db76 16 333 127
+3db8c a 240 126
+3db96 6 333 127
+3db9c 8 240 126
+3dba4 8 333 127
+3dbac 6 152 91
+3dbb2 2 156 91
+3dbb4 2 155 91
+3dbb6 6 156 91
+3dbbc 4 4622 95
+3dbc0 6 4560 95
+3dbc6 6 4560 95
+3dbcc a 4626 95
+3dbd6 6 4628 95
+3dbdc 54 4629 95
+FUNC 3dc30 60 0 testing::internal::StreamingListener::OnTestStart
+3dc30 10 1152 91
+3dc40 2 1153 91
+3dc42 2 1152 91
+3dc44 2 1153 91
+3dc46 2 1153 91
+3dc48 6 1153 91
+3dc4e 2 1152 91
+3dc50 4 1153 91
+3dc54 c 1153 91
+3dc60 8 1153 91
+3dc68 c 156 137
+3dc74 1c 1154 91
+FUNC 3dc90 60 0 testing::internal::StreamingListener::OnTestCaseStart
+3dc90 10 1142 91
+3dca0 2 1143 91
+3dca2 2 1142 91
+3dca4 2 1143 91
+3dca6 2 1143 91
+3dca8 6 1143 91
+3dcae 2 1142 91
+3dcb0 4 1143 91
+3dcb4 c 1143 91
+3dcc0 8 1143 91
+3dcc8 c 156 137
+3dcd4 1c 1144 91
+FUNC 3dcf0 6c 0 testing::FormatCountableNoun
+3dcf0 12 2765 95
+3dd02 2 2765 95
+3dd04 2 2766 95
+3dd06 2 2765 95
+3dd08 4 2766 95
+3dd0c 2 2765 95
+3dd0e 4 2766 95
+3dd12 e 2766 95
+3dd20 12 2767 95
+3dd32 c 156 137
+3dd3e 1e 2768 95
+FUNC 3dd5c 9c 0 testing::internal::PrettyUnitTestResultPrinter::OnTestCaseStart
+3dd5c 6 3048 95
+3dd62 6 3048 95
+3dd68 2 3050 95
+3dd6a 4 3048 95
+3dd6e 4 3050 95
+3dd72 8 3050 95
+3dd7a 2 3050 95
+3dd7c 8 3050 95
+3dd84 a 3051 95
+3dd8e c 3052 95
+3dd9a 2 1144 87
+3dd9c 4 797 82
+3dda0 2 3053 95
+3dda2 8 3054 95
+3ddaa e 3056 95
+3ddb8 a 3058 95
+3ddc2 6 156 137
+3ddc8 30 3059 95
+FUNC 3ddf8 150 0 testing::internal::PrettyUnitTestResultPrinter::OnTestIterationStart
+3ddf8 e 3007 95
+3de06 2 3007 95
+3de08 c 3008 95
+3de14 c 3009 95
+3de20 10 3015 95
+3de30 20 3017 95
+3de50 2 3020 95
+3de52 c 3021 95
+3de5e 6 2328 87
+3de64 2 3025 95
+3de66 2 2328 87
+3de68 a 3025 95
+3de72 8 3028 95
+3de7a 2 798 91
+3de7c e 3031 95
+3de8a a 3034 95
+3de94 6 3037 95
+3de9a 6 2772 95
+3dea0 2 3037 95
+3dea2 a 2772 95
+3deac 8 3037 95
+3deb4 8 2777 95
+3debc 2 3037 95
+3debe 8 2777 95
+3dec6 c 3037 95
+3ded2 e 156 137
+3dee0 a 3038 95
+3deea 5e 3039 95
+FUNC 3df48 1a4 0 testing::internal::FormatEpochTimeInMillisAsIso8601
+3df48 8 3508 95
+3df50 a 3508 95
+3df5a e 3509 95
+3df68 2 3515 95
+3df6a 4 3509 95
+3df6e e 3515 95
+3df7c c 3516 95
+3df88 2 3520 95
+3df8a 2 3520 95
+3df8c c 3520 95
+3df98 2 3520 95
+3df9a 6 3520 95
+3dfa0 e 3520 95
+3dfae 2 3520 95
+3dfb0 c 3520 95
+3dfbc e 3520 95
+3dfca 8 3521 95
+3dfd2 2 3521 95
+3dfd4 6 3521 95
+3dfda 8 3521 95
+3dfe2 e 3521 95
+3dff0 10 3522 95
+3e000 4 3522 95
+3e004 4 3522 95
+3e008 2 3522 95
+3e00a 2 3523 95
+3e00c 6 3522 95
+3e012 a 3522 95
+3e01c 8 3523 95
+3e024 4 3523 95
+3e028 4 3523 95
+3e02c 4 3523 95
+3e030 4 3523 95
+3e034 8 3523 95
+3e03c 4 3524 95
+3e040 a 3523 95
+3e04a 4 3524 95
+3e04e 2 3525 95
+3e050 6 3524 95
+3e056 8 3525 95
+3e05e a 3525 95
+3e068 5a 156 137
+3e0c2 2a 3526 95
+FUNC 3e0ec a4 0 testing::internal::ParseFlagValue
+3e0ec 8 4955 95
+3e0f4 c 4955 95
+3e100 4 4957 95
+3e104 2 4957 95
+3e106 e 4960 95
+3e114 c 4960 95
+3e120 4 4960 95
+3e124 4 4960 95
+3e128 a 4960 95
+3e132 e 156 137
+3e140 2 400 136
+3e142 2 4962 95
+3e144 2 400 136
+3e146 6 4962 95
+3e14c 2 4962 95
+3e14e 4 4965 95
+3e152 6 4968 95
+3e158 2 4968 95
+3e15a 4 4975 95
+3e15e 4 4978 95
+3e162 2 4962 95
+3e164 8 156 137
+3e16c 2 4957 95
+3e16e 22 4979 95
+FUNC 3e190 26 0 testing::internal::ParseBoolFlag
+3e190 2 4991 95
+3e192 2 4991 95
+3e194 6 4993 95
+3e19a 2 4996 95
+3e19c 6 4999 95
+3e1a2 c 4999 95
+3e1ae 2 4999 95
+3e1b0 2 5000 95
+3e1b2 2 4999 95
+3e1b4 2 5001 95
+FUNC 3e1b8 48 0 testing::internal::ParseInt32Flag
+3e1b8 2 5008 95
+3e1ba 2 5008 95
+3e1bc 2 5010 95
+3e1be 2 5008 95
+3e1c0 4 5010 95
+3e1c4 4 5013 95
+3e1c8 8 5016 95
+3e1d0 c 333 127
+3e1dc 8 5016 95
+3e1e4 a 5017 95
+3e1ee 6 85 79
+3e1f4 c 5018 95
+FUNC 3e200 1a 0 testing::internal::ParseStringFlag
+3e200 2 5025 95
+3e202 2 5025 95
+3e204 6 5027 95
+3e20a 4 5030 95
+3e20e 6 5033 95
+3e214 4 5034 95
+3e218 2 5035 95
+FUNC 3e21c 2b8 0 testing::internal::ParseGoogleTestFlagsOnlyImpl<char>
+3e21c e 5165 95
+3e22a 2 5166 95
+3e22c 2 5165 95
+3e22e 4 5165 95
+3e232 2 5176 95
+3e234 4 5180 95
+3e238 6 5176 95
+3e23e 4 5180 95
+3e242 4 5176 95
+3e246 2 5178 95
+3e248 2 5165 95
+3e24a 6 5178 95
+3e250 2 5180 95
+3e252 4 5178 95
+3e256 2 5180 95
+3e258 a 5166 95
+3e262 10 5167 95
+3e272 a 5176 95
+3e27c 6 5175 95
+3e282 a 5178 95
+3e28c 6 5175 95
+3e292 a 5180 95
+3e29c 6 5175 95
+3e2a2 e 5181 95
+3e2b0 4 5175 95
+3e2b4 10 5183 95
+3e2c4 4 5175 95
+3e2c8 10 5185 95
+3e2d8 4 5175 95
+3e2dc e 5186 95
+3e2ea 4 5175 95
+3e2ee 10 5188 95
+3e2fe 4 5175 95
+3e302 e 5189 95
+3e310 4 5175 95
+3e314 e 5190 95
+3e322 4 5175 95
+3e326 e 5191 95
+3e334 4 5175 95
+3e338 e 5192 95
+3e346 2 5175 95
+3e348 e 5193 95
+3e356 2 5175 95
+3e358 e 5194 95
+3e366 2 5175 95
+3e368 e 5196 95
+3e376 2 5175 95
+3e378 e 5198 95
+3e386 2 5175 95
+3e388 e 5200 95
+3e396 4 5175 95
+3e39a a 5225 95
+3e3a4 6 5229 95
+3e3aa 2 5165 95
+3e3ac 8 5206 95
+3e3b4 4 5207 95
+3e3b8 2 5206 95
+3e3ba 6 5207 95
+3e3c0 6 5211 95
+3e3c6 4 5215 95
+3e3ca c 5216 95
+3e3d6 a 5216 95
+3e3e0 2 5216 95
+3e3e2 8 5221 95
+3e3ea 6 156 137
+3e3f0 4 5166 95
+3e3f4 a 5217 95
+3e3fe 4 5216 95
+3e402 a 5217 95
+3e40c 4 5216 95
+3e410 6 5218 95
+3e416 6 5216 95
+3e41c b8 5231 95
+FUNC 3e4d4 f8 0 testing::internal::StreamingListener::OnTestPartResult
+3e4d4 10 1163 91
+3e4e4 4 1163 91
+3e4e8 2 77 81
+3e4ea 2 1163 91
+3e4ec 6 77 81
+3e4f2 2 1165 91
+3e4f4 a 1166 91
+3e4fe 8 1167 91
+3e506 e 1167 91
+3e514 e 1167 91
+3e522 4 1168 91
+3e526 2 1168 91
+3e528 4 1168 91
+3e52c 4 1168 91
+3e530 2 1168 91
+3e532 4 1168 91
+3e536 a 1168 91
+3e540 8 1168 91
+3e548 4 1169 91
+3e54c 8 1168 91
+3e554 4 1169 91
+3e558 2 1169 91
+3e55a 4 1169 91
+3e55e a 1169 91
+3e568 8 1169 91
+3e570 30 156 137
+3e5a0 2c 1170 91
+FUNC 3e5cc 348 0 testing::internal::XmlUnitTestResultPrinter::OutputXmlTestInfo
+3e5cc 14 3568 95
+3e5e0 6 3568 95
+3e5e6 6 3570 95
+3e5ec 2 3568 95
+3e5ee 2 3570 95
+3e5f0 4 700 82
+3e5f4 4 3570 95
+3e5f8 2 700 82
+3e5fa 4 3570 95
+3e5fe a 333 127
+3e608 a 3573 95
+3e612 2 3573 95
+3e614 a 3573 95
+3e61e c 3573 95
+3e62a c 3573 95
+3e636 c 156 137
+3e642 8 1144 87
+3e64a 2 668 82
+3e64c 4 3575 95
+3e650 c 3577 95
+3e65c 4 1144 87
+3e660 4 668 82
+3e664 2 3577 95
+3e666 4 3577 95
+3e66a 6 3577 95
+3e670 c 3577 95
+3e67c c 156 137
+3e688 4 1144 87
+3e68c 2 660 82
+3e68e 4 3579 95
+3e692 c 3580 95
+3e69e 4 1144 87
+3e6a2 4 660 82
+3e6a6 a 3580 95
+3e6b0 e 3580 95
+3e6be c 156 137
+3e6ca c 3584 95
+3e6d6 6 3584 95
+3e6dc 6 3584 95
+3e6e2 4 3584 95
+3e6e6 2 3584 95
+3e6e8 6 3584 95
+3e6ee 8 3584 95
+3e6f6 c 3584 95
+3e702 c 156 137
+3e70e c 3586 95
+3e71a a 3586 95
+3e724 c 3586 95
+3e730 c 156 137
+3e73c c 3587 95
+3e748 a 3587 95
+3e752 2 3587 95
+3e754 4 3591 95
+3e758 2 3590 95
+3e75a a 3587 95
+3e764 c 156 137
+3e770 8 3588 95
+3e778 8 3588 95
+3e780 6 156 137
+3e786 6 3599 95
+3e78c 18 333 127
+3e7a4 10 192 144
+3e7b4 4 3591 95
+3e7b8 8 3592 95
+3e7c0 2 3593 95
+3e7c2 2 3592 95
+3e7c4 4 3593 95
+3e7c8 a 3594 95
+3e7d2 8 333 127
+3e7da 4 77 81
+3e7de 4 3598 95
+3e7e2 2 3599 95
+3e7e4 e 3598 95
+3e7f2 a 3599 95
+3e7fc e 3599 95
+3e80a 2 156 137
+3e80c 2 3601 95
+3e80e 4 156 137
+3e812 8 333 127
+3e81a a 3601 95
+3e824 a 3328 95
+3e82e 8 3601 95
+3e836 6 333 127
+3e83c c 156 137
+3e848 a 3603 95
+3e852 a 3603 95
+3e85c 6 156 137
+3e862 8 3604 95
+3e86a 8 3604 95
+3e872 6 156 137
+3e878 8 333 127
+3e880 12 156 137
+3e892 6 3591 95
+3e898 2 333 127
+3e89a 6 3609 95
+3e8a0 e 333 127
+3e8ae 6 156 137
+3e8b4 60 3613 95
+FUNC 3e914 228 0 testing::internal::XmlUnitTestResultPrinter::PrintXmlTestCase
+3e914 14 3617 95
+3e928 4 3618 95
+3e92c 4 3617 95
+3e930 a 3618 95
+3e93a 2 3617 95
+3e93c 4 3618 95
+3e940 a 333 127
+3e94a 8 3619 95
+3e952 8 3620 95
+3e95a 2 3620 95
+3e95c a 3620 95
+3e966 c 3620 95
+3e972 c 3620 95
+3e97e c 156 137
+3e98a c 3622 95
+3e996 6 3622 95
+3e99c 2 3622 95
+3e99e 2 3622 95
+3e9a0 6 3622 95
+3e9a6 c 3622 95
+3e9b2 c 156 137
+3e9be c 3624 95
+3e9ca 6 3624 95
+3e9d0 2 3624 95
+3e9d2 2 3624 95
+3e9d4 6 3624 95
+3e9da c 3624 95
+3e9e6 c 156 137
+3e9f2 c 3627 95
+3e9fe 6 3627 95
+3ea04 2 3627 95
+3ea06 2 3627 95
+3ea08 6 3627 95
+3ea0e c 3627 95
+3ea1a c 156 137
+3ea26 c 3628 95
+3ea32 c 3628 95
+3ea3e c 3628 95
+3ea4a c 156 137
+3ea56 c 3630 95
+3ea62 a 3630 95
+3ea6c c 3630 95
+3ea78 c 156 137
+3ea84 a 3631 95
+3ea8e 8 3631 95
+3ea96 8 333 127
+3ea9e 6 156 137
+3eaa4 2 3634 95
+3eaa6 a 192 144
+3eab0 6 3634 95
+3eab6 10 3635 95
+3eac6 a 3636 95
+3ead0 4 3634 95
+3ead4 a 333 127
+3eade 8 3638 95
+3eae6 8 333 127
+3eaee 6 156 137
+3eaf4 48 3639 95
+FUNC 3eb3c 2c0 0 testing::internal::XmlUnitTestResultPrinter::PrintXmlUnitTest
+3eb3c 14 3643 95
+3eb50 2 3644 95
+3eb52 4 3643 95
+3eb56 c 3644 95
+3eb62 2 3643 95
+3eb64 4 3644 95
+3eb68 14 333 127
+3eb7c 8 3647 95
+3eb84 12 3650 95
+3eb96 6 3650 95
+3eb9c 2 3650 95
+3eb9e 2 3650 95
+3eba0 8 3650 95
+3eba8 c 3650 95
+3ebb4 c 156 137
+3ebc0 c 3652 95
+3ebcc 6 3652 95
+3ebd2 2 3652 95
+3ebd4 2 3652 95
+3ebd6 6 3652 95
+3ebdc c 3652 95
+3ebe8 c 156 137
+3ebf4 c 3655 95
+3ec00 6 3655 95
+3ec06 2 3655 95
+3ec08 2 3655 95
+3ec0a 6 3655 95
+3ec10 c 3655 95
+3ec1c c 156 137
+3ec28 c 3656 95
+3ec34 c 3656 95
+3ec40 c 3656 95
+3ec4c c 156 137
+3ec58 c 3659 95
+3ec64 4 570 91
+3ec68 a 3659 95
+3ec72 c 3659 95
+3ec7e c 156 137
+3ec8a c 3661 95
+3ec96 4 573 91
+3ec9a a 3661 95
+3eca4 c 3661 95
+3ecb0 c 156 137
+3ecbc 8 3663 95
+3ecc4 c 3665 95
+3ecd0 4 798 91
+3ecd4 2 3665 95
+3ecd6 4 3665 95
+3ecda 2 3665 95
+3ecdc 2 3665 95
+3ecde 4 3665 95
+3ece2 c 3665 95
+3ecee c 156 137
+3ecfa 4 606 91
+3ecfe 8 3668 95
+3ed06 8 3668 95
+3ed0e 6 156 137
+3ed14 e 3670 95
+3ed22 c 3670 95
+3ed2e c 3670 95
+3ed3a c 156 137
+3ed46 a 333 127
+3ed50 2 3673 95
+3ed52 6 3673 95
+3ed58 4 3673 95
+3ed5c 8 3674 95
+3ed64 4 3674 95
+3ed68 4 3674 95
+3ed6c a 3675 95
+3ed76 6 3675 95
+3ed7c 4 3673 95
+3ed80 a 333 127
+3ed8a 8 3677 95
+3ed92 8 333 127
+3ed9a 6 156 137
+3eda0 5c 3678 95
+FUNC 3edfc c8 0 testing::internal::XmlUnitTestResultPrinter::OnTestIterationEnd
+3edfc e 3383 95
+3ee0a 2 3383 95
+3ee0c 2 3385 95
+3ee0e 2 3386 95
+3ee10 2 3383 95
+3ee12 4 3385 95
+3ee16 2 3383 95
+3ee18 4 3385 95
+3ee1c 8 3386 95
+3ee24 a 3388 95
+3ee2e 14 3404 95
+3ee42 6 3405 95
+3ee48 6 3406 95
+3ee4e a 2298 87
+3ee58 6 3391 95
+3ee5e a 3408 95
+3ee68 4 3409 95
+3ee6c 4 3410 95
+3ee70 4 3409 95
+3ee74 8 3410 95
+3ee7c 8 3410 95
+3ee84 6 156 137
+3ee8a 6 3411 95
+3ee90 6 3408 95
+3ee96 c 156 137
+3eea2 22 3412 95
+FUNC 3eec4 2e 0 testing::internal::StreamableToString<long long int>
+3eec4 2 243 79
+3eec6 4 243 79
+3eeca 8 244 79
+3eed2 c 268 126
+3eede 8 244 79
+3eee6 6 85 79
+3eeec 6 245 79
+FUNC 3eef4 b4 0 testing::internal::PrettyUnitTestResultPrinter::OnTestEnd
+3eef4 4 3080 95
+3eef8 4 700 82
+3eefc 8 3080 95
+3ef04 2 540 82
+3ef06 4 3080 95
+3ef0a 4 540 82
+3ef0e 2 3081 95
+3ef10 8 3082 95
+3ef18 a 3084 95
+3ef22 c 2983 95
+3ef2e 6 3087 95
+3ef34 2 3087 95
+3ef36 6 3088 95
+3ef3c 8 3090 95
+3ef44 4 3092 95
+3ef48 6 3092 95
+3ef4e 4 3092 95
+3ef52 4 3092 95
+3ef56 a 3092 95
+3ef60 8 156 137
+3ef68 8 3094 95
+3ef70 a 3096 95
+3ef7a 2e 3097 95
+FUNC 3efa8 1dc 0 testing::internal::PrettyUnitTestResultPrinter::OnTestIterationEnd
+3efa8 c 3144 95
+3efb4 2 3145 95
+3efb6 4 3144 95
+3efba 4 3145 95
+3efbe 2 3144 95
+3efc0 4 3145 95
+3efc4 6 3148 95
+3efca 6 2772 95
+3efd0 2 3148 95
+3efd2 a 2772 95
+3efdc a 3148 95
+3efe6 8 2777 95
+3efee 2 3148 95
+3eff0 8 2777 95
+3eff8 c 3148 95
+3f004 c 156 137
+3f010 8 3149 95
+3f018 2 573 91
+3f01a 6 3151 95
+3f020 2 3151 95
+3f022 4 3151 95
+3f026 4 3151 95
+3f02a a 3151 95
+3f034 6 156 137
+3f03a 6 3153 95
+3f040 a 3154 95
+3f04a 6 3155 95
+3f050 10 2772 95
+3f060 2 3155 95
+3f062 6 2772 95
+3f068 a 3155 95
+3f072 6 156 137
+3f078 8 3157 95
+3f080 8 3158 95
+3f088 8 3159 95
+3f090 a 3160 95
+3f09a c 2772 95
+3f0a6 a 3161 95
+3f0b0 6 156 137
+3f0b6 6 3162 95
+3f0bc 4 3164 95
+3f0c0 6 3164 95
+3f0c6 4 3164 95
+3f0ca a 3164 95
+3f0d4 6 3167 95
+3f0da 4 3168 95
+3f0de 8 3168 95
+3f0e6 2 3169 95
+3f0e8 6 3170 95
+3f0ee 4 3175 95
+3f0f2 6 3175 95
+3f0f8 4 3175 95
+3f0fc e 3175 95
+3f10a a 3178 95
+3f114 70 3179 95
+FUNC 3f184 ac 0 testing::internal::PrettyUnitTestResultPrinter::OnTestCaseEnd
+3f184 e 3099 95
+3f192 2 3099 95
+3f194 2 3100 95
+3f196 2 3099 95
+3f198 8 3100 95
+3f1a0 6 3103 95
+3f1a6 6 3103 95
+3f1ac 2 3103 95
+3f1ae a 3103 95
+3f1b8 a 3104 95
+3f1c2 6 3107 95
+3f1c8 6 3107 95
+3f1ce 8 3107 95
+3f1d6 4 3107 95
+3f1da e 3107 95
+3f1e8 8 156 137
+3f1f0 a 3108 95
+3f1fa 6 156 137
+3f200 30 3109 95
+FUNC 3f230 d8 0 testing::internal::StreamingListener::OnTestEnd
+3f230 8 1156 91
+3f238 8 1156 91
+3f240 4 540 82
+3f244 4 1156 91
+3f248 6 540 82
+3f24e 2 1180 91
+3f250 6 1180 91
+3f256 4 1180 91
+3f25a a 1180 91
+3f264 e 1157 91
+3f272 10 1158 91
+3f282 8 1159 91
+3f28a 2 1159 91
+3f28c c 1159 91
+3f298 a 1159 91
+3f2a2 10 1160 91
+3f2b2 8 1160 91
+3f2ba 24 156 137
+3f2de 2a 1161 91
+FUNC 3f308 d8 0 testing::internal::StreamingListener::OnTestCaseEnd
+3f308 8 1146 91
+3f310 8 1146 91
+3f318 2 830 82
+3f31a 4 1146 91
+3f31e 4 830 82
+3f322 6 1180 91
+3f328 6 1180 91
+3f32e 4 1180 91
+3f332 a 1180 91
+3f33c e 1147 91
+3f34a 14 1148 91
+3f35e 4 1148 91
+3f362 2 1148 91
+3f364 4 1148 91
+3f368 4 1148 91
+3f36c 4 1148 91
+3f370 a 1148 91
+3f37a 10 1149 91
+3f38a 8 1149 91
+3f392 24 156 137
+3f3b6 2a 1150 91
+FUNC 3f3e0 dc 0 testing::internal::StreamingListener::OnTestIterationEnd
+3f3e0 8 1136 91
+3f3e8 8 1136 91
+3f3f0 2 1137 91
+3f3f2 4 1136 91
+3f3f6 6 1137 91
+3f3fc 2 1180 91
+3f3fe 6 1180 91
+3f404 4 1180 91
+3f408 a 1180 91
+3f412 e 1137 91
+3f420 10 1138 91
+3f430 4 573 91
+3f434 4 1138 91
+3f438 2 1138 91
+3f43a 4 1138 91
+3f43e 4 1138 91
+3f442 4 1138 91
+3f446 4 1138 91
+3f44a a 1138 91
+3f454 10 1139 91
+3f464 8 1139 91
+3f46c 24 156 137
+3f490 2c 1140 91
+FUNC 3f4bc f0 0 std::priv::_Impl_vector<testing::internal::edit_distance::EditType, std::allocator<testing::internal::edit_distance::EditType> >::_M_insert_overflow_aux
+3f4bc 4 81 143
+3f4c0 2 81 143
+3f4c2 6 192 144
+3f4c8 4 173 144
+3f4cc 2 81 143
+3f4ce 2 192 144
+3f4d0 4 173 144
+3f4d4 4 81 143
+3f4d8 2 173 144
+3f4da 8 41 143
+3f4e2 8 175 144
+3f4ea 6 176 144
+3f4f0 e 177 144
+3f4fe 6 87 143
+3f504 4 551 106
+3f508 2 91 143
+3f50a 2 551 106
+3f50c 6 86 142
+3f512 2 84 142
+3f514 6 86 142
+3f51a 2 139 108
+3f51c 4 139 108
+3f520 2 88 142
+3f522 2 89 142
+3f524 a 86 142
+3f52e 8 93 143
+3f536 2 119 108
+3f538 8 119 108
+3f540 6 95 143
+3f546 6 314 142
+3f54c 2 249 142
+3f54e 4 249 142
+3f552 2 139 108
+3f554 6 139 108
+3f55a 6 249 142
+3f560 6 98 143
+3f566 2 86 142
+3f568 2 84 142
+3f56a 6 86 142
+3f570 4 86 142
+3f574 2 139 108
+3f576 4 139 108
+3f57a 2 88 142
+3f57c 2 89 142
+3f57e e 86 142
+3f58c 4 662 144
+3f590 2 319 106
+3f592 4 323 106
+3f596 2 104 143
+3f598 4 667 144
+3f59c 4 104 143
+3f5a0 2 668 144
+3f5a2 a 105 143
+FUNC 3f5b0 48e 0 testing::internal::edit_distance::CalculateOptimalEdits
+3f5b0 4 990 95
+3f5b4 4 192 144
+3f5b8 2 990 95
+3f5ba 2 192 144
+3f5bc 2 990 95
+3f5be 8 192 144
+3f5c6 2 70 144
+3f5c8 2 192 144
+3f5ca 2 992 95
+3f5cc 4 342 106
+3f5d0 4 990 95
+3f5d4 4 992 95
+3f5d8 4 70 144
+3f5dc 2 481 106
+3f5de 2 342 106
+3f5e0 8 343 106
+3f5e8 6 343 106
+3f5ee 2 346 106
+3f5f0 6 347 106
+3f5f6 4 348 106
+3f5fa 6 352 106
+3f600 2 356 106
+3f602 4 146 108
+3f606 6 73 144
+3f60c 2 71 144
+3f60e 2 314 142
+3f610 2 249 142
+3f612 4 249 142
+3f616 4 146 108
+3f61a 4 249 142
+3f61e 2 342 106
+3f620 2 244 144
+3f622 8 342 106
+3f62a 2 346 106
+3f62c a 347 106
+3f636 4 348 106
+3f63a 2 352 106
+3f63c 2 348 106
+3f63e 8 352 106
+3f646 2 346 106
+3f648 2 356 106
+3f64a 2 73 144
+3f64c 4 70 144
+3f650 4 314 142
+3f654 2 249 142
+3f656 4 73 144
+3f65a 8 249 142
+3f662 2 348 106
+3f664 2 71 144
+3f666 6 73 144
+3f66c 2 348 106
+3f66e 6 249 142
+3f674 4 139 108
+3f678 4 192 144
+3f67c 4 70 144
+3f680 4 192 144
+3f684 4 342 106
+3f688 4 70 144
+3f68c 4 481 106
+3f690 2 342 106
+3f692 2 346 106
+3f694 2 348 106
+3f696 2 347 106
+3f698 4 348 106
+3f69c 2 352 106
+3f69e 2 353 106
+3f6a0 4 352 106
+3f6a4 2 356 106
+3f6a6 4 73 144
+3f6aa 4 71 144
+3f6ae 4 72 144
+3f6b2 4 73 144
+3f6b6 8 120 142
+3f6be 4 249 144
+3f6c2 8 249 142
+3f6ca 4 70 144
+3f6ce 2 244 144
+3f6d0 8 304 144
+3f6d8 10 192 144
+3f6e8 2 551 106
+3f6ea 4 192 144
+3f6ee 2 994 95
+3f6f0 4 551 106
+3f6f4 8 70 144
+3f6fc 4 481 106
+3f700 4 551 106
+3f704 2 73 144
+3f706 2 314 142
+3f708 6 73 144
+3f70e 2 139 108
+3f710 4 192 144
+3f714 2 314 142
+3f716 4 994 95
+3f71a 2 71 144
+3f71c 2 249 142
+3f71e 4 249 142
+3f722 2 139 108
+3f724 2 139 108
+3f726 6 249 142
+3f72c 2 342 106
+3f72e 2 244 144
+3f730 6 342 106
+3f736 6 346 106
+3f73c 6 347 106
+3f742 2 348 106
+3f744 2 347 106
+3f746 4 348 106
+3f74a 2 352 106
+3f74c 2 348 106
+3f74e 8 352 106
+3f756 2 346 106
+3f758 2 356 106
+3f75a 2 73 144
+3f75c 4 314 142
+3f760 4 73 144
+3f764 4 314 142
+3f768 8 249 142
+3f770 4 70 144
+3f774 2 71 144
+3f776 2 73 144
+3f778 6 314 142
+3f77e 4 551 106
+3f782 4 249 142
+3f786 4 139 108
+3f78a 4 192 144
+3f78e 2 551 106
+3f790 6 192 144
+3f796 8 70 144
+3f79e 4 481 106
+3f7a2 6 551 106
+3f7a8 4 71 144
+3f7ac 4 72 144
+3f7b0 2 73 144
+3f7b2 2 84 142
+3f7b4 a 73 144
+3f7be a 86 142
+3f7c8 6 86 142
+3f7ce 2 139 108
+3f7d0 4 139 108
+3f7d4 2 88 142
+3f7d6 2 89 142
+3f7d8 e 86 142
+3f7e6 4 249 144
+3f7ea 6 249 142
+3f7f0 2 244 144
+3f7f2 2 999 95
+3f7f4 2 244 144
+3f7f6 a 42 148
+3f800 4 997 95
+3f804 6 997 95
+3f80a e 998 95
+3f818 2 997 95
+3f81a 6 998 95
+3f820 6 999 95
+3f826 2 1004 95
+3f828 6 192 144
+3f82e 6 1002 95
+3f834 10 1003 95
+3f844 2 202 144
+3f846 4 1004 95
+3f84a 4 1002 95
+3f84e 2 1002 95
+3f850 4 1028 95
+3f854 2 1002 95
+3f856 12 1023 95
+3f868 6 192 144
+3f86e 18 1007 95
+3f886 8 192 144
+3f88e 6 1008 95
+3f894 14 1009 95
+3f8a8 e 1011 95
+3f8b6 2 1012 95
+3f8b8 8 1011 95
+3f8c0 8 1012 95
+3f8c8 4 1017 95
+3f8cc 8 1016 95
+3f8d4 2 202 144
+3f8d6 8 1017 95
+3f8de 8 1019 95
+3f8e6 8 1018 95
+3f8ee 2 1019 95
+3f8f0 a 1019 95
+3f8fa 8 1020 95
+3f902 1a 1021 95
+3f91c a 1022 95
+3f926 a 1022 95
+3f930 8 1023 95
+3f938 6 1024 95
+3f93e 8 1028 95
+3f946 6 1029 95
+3f94c 8 1008 95
+3f954 c 1007 95
+3f960 2 162 144
+3f962 8 67 144
+3f96a 4 481 106
+3f96e 18 192 144
+3f986 4 162 144
+3f98a 6 1036 95
+3f990 2 1037 95
+3f992 4 380 144
+3f996 2 1037 95
+3f998 4 380 144
+3f99c 4 1037 95
+3f9a0 2 380 144
+3f9a2 2 1037 95
+3f9a4 2 380 144
+3f9a6 2 119 108
+3f9a8 2 119 108
+3f9aa c 382 144
+3f9b6 e 162 144
+3f9c4 8 1039 95
+3f9cc 8 1040 95
+3f9d4 8 1036 95
+3f9dc 4 324 103
+3f9e0 2 91 105
+3f9e2 8 92 105
+3f9ea 4 93 105
+3f9ee 6 65 118
+3f9f4 2 74 118
+3f9f6 4 191 108
+3f9fa 8 42 148
+3fa02 4 81 118
+3fa06 2 87 144
+3fa08 a 323 106
+3fa12 6 65 118
+3fa18 2 74 118
+3fa1a 4 191 108
+3fa1e 2 304 144
+3fa20 6 304 144
+3fa26 4 81 118
+3fa2a 2 87 144
+3fa2c a 323 106
+3fa36 8 1044 95
+FUNC 3fa40 32 0 std::priv::_Impl_vector<testing::TestPartResult, std::allocator<testing::TestPartResult> >::push_back
+3fa40 2 376 144
+3fa42 4 380 144
+3fa46 2 376 144
+3fa48 2 380 144
+3fa4a 4 376 144
+3fa4e 2 380 144
+3fa50 2 119 108
+3fa52 6 119 108
+3fa58 8 382 144
+3fa60 e 162 144
+3fa6e 4 388 144
+FUNC 3fa72 30 0 testing::internal::DefaultGlobalTestPartResultReporter::ReportTestPartResult
+3fa72 2 672 95
+3fa74 2 673 95
+3fa76 2 672 95
+3fa78 4 4872 95
+3fa7c 2 672 95
+3fa7e 2 4872 95
+3fa80 4 4872 95
+3fa84 4 4872 95
+3fa88 8 173 148
+3fa90 2 3871 95
+3fa92 2 674 95
+3fa94 4 675 95
+3fa98 4 3871 95
+3fa9c 2 674 95
+3fa9e 4 674 95
+FUNC 3faa4 194 0 std::priv::_Impl_vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> >::_M_insert_overflow_aux
+3faa4 6 81 143
+3faaa 6 192 144
+3fab0 4 173 144
+3fab4 2 81 143
+3fab6 2 81 143
+3fab8 2 192 144
+3faba 6 173 144
+3fac0 2 81 143
+3fac2 2 173 144
+3fac4 8 41 143
+3facc a 175 144
+3fad6 6 176 144
+3fadc 6 176 144
+3fae2 4 176 144
+3fae6 8 347 106
+3faee 6 348 106
+3faf4 4 352 106
+3faf8 6 91 143
+3fafe a 86 142
+3fb08 6 86 142
+3fb0e 6 139 108
+3fb14 18 466 91
+3fb2c 12 86 142
+3fb3e a 93 143
+3fb48 2 119 108
+3fb4a 18 466 91
+3fb62 6 95 143
+3fb68 8 314 142
+3fb70 4 249 142
+3fb74 8 466 91
+3fb7c 6 249 142
+3fb82 4 139 108
+3fb86 18 466 91
+3fb9e 8 249 142
+3fba6 6 98 143
+3fbac e 86 142
+3fbba 6 86 142
+3fbc0 6 139 108
+3fbc6 18 466 91
+3fbde 14 86 142
+3fbf2 6 65 118
+3fbf8 2 74 118
+3fbfa 4 191 108
+3fbfe 4 156 137
+3fc02 2 81 118
+3fc04 4 156 137
+3fc08 4 81 118
+3fc0c 6 662 144
+3fc12 2 319 106
+3fc14 4 323 106
+3fc18 4 104 143
+3fc1c 4 667 144
+3fc20 2 668 144
+3fc22 6 105 143
+3fc28 6 346 106
+3fc2e a 356 106
+FUNC 3fc38 58 0 testing::UnitTest::PushGTestTrace
+3fc38 6 4263 95
+3fc3e 2 4264 95
+3fc40 2 4263 95
+3fc42 6 1963 87
+3fc48 2 752 91
+3fc4a 6 2010 87
+3fc50 4 380 144
+3fc54 2 2010 87
+3fc56 4 380 144
+3fc5a 2 119 108
+3fc5c 14 466 91
+3fc70 8 382 144
+3fc78 e 162 144
+3fc86 6 4265 95
+3fc8c 4 4266 95
+FUNC 3fc90 68 0 testing::internal::ScopedTrace::ScopedTrace
+3fc90 14 3769 95
+3fca4 2 3769 95
+3fca6 6 466 91
+3fcac 2 3769 95
+3fcae 4 466 91
+3fcb2 2 3773 95
+3fcb4 6 3774 95
+3fcba 4 3772 95
+3fcbe 4 3774 95
+3fcc2 8 3774 95
+3fcca 6 156 137
+3fcd0 4 3776 95
+3fcd4 6 3776 95
+3fcda 6 156 137
+3fce0 18 3777 95
+FUNC 3fcf8 b4 0 std::priv::_Impl_vector<unsigned int, google_breakpad::PageStdAllocator<unsigned int> >::_M_fill_insert_aux
+FUNC 3fcf8 b4 0 std::priv::_Impl_vector<void*, google_breakpad::PageStdAllocator<void*> >::_M_fill_insert_aux
+3fcf8 4 140 143
+3fcfc 2 140 143
+3fcfe 2 416 144
+3fd00 2 140 143
+3fd02 2 416 144
+3fd04 6 140 143
+3fd0a 2 416 144
+3fd0c 4 416 144
+3fd10 8 150 143
+3fd18 4 152 143
+3fd1c 6 153 143
+3fd22 a 120 142
+3fd2c 2 154 143
+3fd2e 4 255 105
+3fd32 2 154 143
+3fd34 2 256 105
+3fd36 2 154 143
+3fd38 2 256 105
+3fd3a 8 256 105
+3fd42 2 442 105
+3fd44 4 442 105
+3fd48 4 443 105
+3fd4c 2 442 105
+3fd4e 6 443 105
+3fd54 4 158 143
+3fd58 6 314 142
+3fd5e 2 249 142
+3fd60 8 249 142
+3fd68 2 249 142
+3fd6a 6 146 108
+3fd70 2 158 143
+3fd72 8 120 142
+3fd7a 6 160 143
+3fd80 6 442 105
+3fd86 4 443 105
+3fd8a 4 442 105
+3fd8e 6 443 105
+3fd94 a 146 143
+3fd9e 8 147 143
+3fda6 6 163 143
+FUNC 3fcf8 b4 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_fill_insert_aux
+3fcf8 4 140 143
+3fcfc 2 140 143
+3fcfe 2 416 144
+3fd00 2 140 143
+3fd02 2 416 144
+3fd04 6 140 143
+3fd0a 2 416 144
+3fd0c 4 416 144
+3fd10 8 150 143
+3fd18 4 152 143
+3fd1c 6 153 143
+3fd22 a 120 142
+3fd2c 2 154 143
+3fd2e 4 255 105
+3fd32 2 154 143
+3fd34 2 256 105
+3fd36 2 154 143
+3fd38 2 256 105
+3fd3a 8 256 105
+3fd42 2 442 105
+3fd44 4 442 105
+3fd48 4 443 105
+3fd4c 2 442 105
+3fd4e 6 443 105
+3fd54 4 158 143
+3fd58 6 314 142
+3fd5e 2 249 142
+3fd60 8 249 142
+3fd68 2 249 142
+3fd6a 6 146 108
+3fd70 2 158 143
+3fd72 8 120 142
+3fd7a 6 160 143
+3fd80 6 442 105
+3fd86 4 443 105
+3fd8a 4 442 105
+3fd8e 6 443 105
+3fd94 a 146 143
+3fd9e 8 147 143
+3fda6 6 163 143
+FUNC 3fdac 120 0 testing::internal::UnitTestImpl::GetTestCase
+3fdac 8 4452 95
+3fdb4 8 4452 95
+3fdbc 4 4456 95
+3fdc0 4 4452 95
+3fdc4 4 4456 95
+3fdc8 8 4452 95
+3fdd0 4 4426 95
+3fdd4 4 4452 95
+3fdd8 6 4456 95
+3fdde 2 4422 95
+3fde0 2 4452 95
+3fde2 4 4456 95
+3fde6 8 4426 95
+3fdee 2 217 104
+3fdf0 8 4422 95
+3fdf8 e 217 104
+3fe06 12 156 137
+3fe18 6 4458 95
+3fe1e 6 4459 95
+3fe24 8 4463 95
+3fe2c e 4463 95
+3fe3a 6 4467 95
+3fe40 4 4463 95
+3fe44 4 4467 95
+3fe48 c 4466 95
+3fe54 a 156 137
+3fe5e 6 4466 95
+3fe64 2 4472 95
+3fe66 2 4474 95
+3fe68 4 4472 95
+3fe6c 2 172 143
+3fe6e 4 4474 95
+3fe72 8 172 143
+3fe7a c 173 143
+3fe86 10 176 143
+3fe96 6 173 148
+3fe9c 8 192 144
+3fea4 2 173 148
+3fea6 4 192 144
+3feaa 2 4480 95
+3feac 4 173 148
+3feb0 2 4481 95
+3feb2 1a 4482 95
+FUNC 3fecc 110 0 testing::internal::MakeAndRegisterTestInfo
+3fecc 10 2508 95
+3fedc 4 2508 95
+3fee0 4 2511 95
+3fee4 4 2508 95
+3fee8 2 2511 95
+3feea 4 2508 95
+3feee 2 2511 95
+3fef0 6 2508 95
+3fef6 4 2511 95
+3fefa 2 2511 95
+3fefc 6 2508 95
+3ff02 4 2511 95
+3ff06 a 2511 95
+3ff10 6 2511 95
+3ff16 12 2511 95
+3ff28 2 2511 95
+3ff2a 4 2511 95
+3ff2e c 156 137
+3ff3a 4 2512 95
+3ff3e 4 664 91
+3ff42 2 2512 95
+3ff44 4 664 91
+3ff48 6 665 91
+3ff4e a 74 84
+3ff58 6 156 137
+3ff5e c 666 91
+3ff6a 12 666 91
+3ff7c 18 333 127
+3ff94 6 666 91
+3ff9a 4 1144 87
+3ff9e 4 660 82
+3ffa2 c 673 91
+3ffae 6 673 91
+3ffb4 28 2514 95
+FUNC 3ffdc 6e 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::_M_insert
+3ffdc 2 358 140
+3ffde 2 350 140
+3ffe0 8 350 140
+3ffe8 2 358 140
+3ffea 8 359 140
+3fff2 2 360 140
+3fff4 2 361 140
+3fff6 4 362 140
+3fffa 4 364 140
+3fffe 4 364 140
+40002 a 79 111
+4000c 2 364 140
+4000e 6 367 140
+40014 2 368 140
+40016 2 369 140
+40018 2 367 140
+4001a 4 369 140
+4001e 4 370 140
+40022 6 373 140
+40028 2 374 140
+4002a 2 375 140
+4002c 2 373 140
+4002e 4 375 140
+40032 2 376 140
+40034 2 379 140
+40036 2 378 140
+40038 6 379 140
+4003e 2 380 140
+40040 2 382 140
+40042 4 380 140
+40046 2 142 141
+40048 2 382 140
+FUNC 4004a 78 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::insert_unique
+4004a 4 405 140
+4004e 6 405 140
+40054 2 406 140
+40056 2 408 140
+40058 2 407 140
+4005a 2 409 140
+4005c a 79 111
+40066 2 412 140
+40068 4 412 140
+4006c 2 412 140
+4006e 6 405 140
+40074 2 142 141
+40076 2 415 140
+40078 6 416 140
+4007e 6 417 140
+40084 8 187 141
+4008c 2 421 140
+4008e a 79 111
+40098 2 421 140
+4009a 12 422 140
+400ac 4 142 141
+400b0 6 62 129
+400b6 2 142 141
+400b8 2 62 129
+400ba 8 425 140
+FUNC 400c2 174 0 std::priv::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::priv::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::priv::_MapTraitsT<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::insert_unique
+400c2 6 432 140
+400c8 4 434 140
+400cc 2 432 140
+400ce 2 434 140
+400d0 4 432 140
+400d4 2 434 140
+400d6 4 437 140
+400da 4 438 140
+400de 4 143 111
+400e2 8 79 111
+400ea 4 440 140
+400ee 8 79 111
+400f6 4 447 140
+400fa c 297 140
+40106 a 94 141
+40110 4 301 140
+40114 6 302 140
+4011a 6 304 140
+40120 a 309 140
+4012a 4 458 140
+4012e c 462 140
+4013a a 309 140
+40144 6 513 140
+4014a a 475 140
+40154 6 142 141
+4015a 4 479 140
+4015e 2 480 140
+40160 a 79 111
+4016a 2 480 140
+4016c e 483 140
+4017a 6 486 140
+40180 6 187 141
+40186 4 143 111
+4018a 2 187 141
+4018c 8 79 111
+40194 4 494 140
+40198 a 79 111
+401a2 4 494 140
+401a6 8 500 140
+401ae 8 79 111
+401b6 2 517 140
+401b8 4 517 140
+401bc a 79 111
+401c6 4 517 140
+401ca 6 521 140
+401d0 e 522 140
+401de 8 497 140
+401e6 4 498 140
+401ea e 524 140
+401f8 4 142 141
+401fc c 297 140
+40208 c 94 141
+40214 4 301 140
+40218 6 302 140
+4021e 6 304 140
+40224 a 524 140
+4022e 8 534 140
+FUNC 40238 8c 0 std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > >::operator[]<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
+40238 e 175 123
+40246 4 568 141
+4024a 6 175 123
+40250 2 175 123
+40252 2 571 141
+40254 a 79 111
+4025e 2 572 141
+40260 4 573 141
+40264 a 575 141
+4026e 2 178 123
+40270 2 142 141
+40272 2 178 123
+40274 a 79 111
+4027e 2 178 123
+40280 12 181 123
+40292 c 62 129
+4029e 2 191 123
+402a0 2 62 129
+402a2 6 191 123
+402a8 2 142 141
+402aa 4 191 123
+402ae 2 179 123
+402b0 2 156 137
+402b2 2 179 123
+402b4 6 156 137
+402ba a 181 123
+FUNC 402c4 104 0 testing::internal::edit_distance::CalculateOptimalEdits
+402c4 4 1067 95
+402c8 6 67 144
+402ce 2 1067 95
+402d0 2 250 141
+402d2 4 1067 95
+402d6 4 250 141
+402da 4 1067 95
+402de 2 250 141
+402e0 4 67 144
+402e4 2 481 106
+402e6 4 67 144
+402ea 2 481 106
+402ec c 250 141
+402f8 6 481 106
+402fe 4 263 141
+40302 2 265 141
+40304 2 266 141
+40306 2 267 141
+40308 2 391 141
+4030a 10 192 144
+4031a 4 1071 95
+4031e 4 203 144
+40322 8 543 141
+4032a 4 1053 95
+4032e 4 1053 95
+40332 a 1055 95
+4033c 4 173 148
+40340 2 1072 95
+40342 2 1071 95
+40344 10 173 148
+40354 10 192 144
+40364 4 1074 95
+40368 6 203 144
+4036e 8 543 141
+40376 4 1053 95
+4037a 4 1053 95
+4037e a 1055 95
+40388 4 173 148
+4038c 2 1075 95
+4038e 2 1074 95
+40390 6 173 148
+40396 4 531 141
+4039a 8 532 141
+403a2 c 1078 95
+403ae c 304 144
+403ba e 1079 95
+FUNC 403c8 36c 0 testing::internal::edit_distance::CreateUnifiedDiff
+403c8 4 1166 95
+403cc 6 1169 95
+403d2 4 1166 95
+403d6 2 1169 95
+403d8 2 1166 95
+403da 6 1166 95
+403e0 2 1167 95
+403e2 6 1166 95
+403e8 4 1167 95
+403ec 8 1170 95
+403f4 20 333 127
+40414 8 192 144
+4041c 4 1171 95
+40420 8 1173 95
+40428 2 1176 95
+4042a 2 1173 95
+4042c 4 1174 95
+40430 4 1175 95
+40434 4 1173 95
+40438 6 1182 95
+4043e a 192 144
+40448 6 1189 95
+4044e 6 1190 95
+40454 4 1192 95
+40458 6 1193 95
+4045e 10 1124 95
+4046e 8 1124 95
+40476 12 205 121
+40488 8 75 132
+40490 6 1170 95
+40496 6 42 148
+4049c 14 1224 95
+404b0 c 1094 95
+404bc 4 1181 95
+404c0 4 353 121
+404c4 4 1094 95
+404c8 4 1181 95
+404cc 4 353 121
+404d0 8 1094 95
+404d8 20 353 121
+404f8 1c 1182 95
+40514 8 1193 95
+4051c c 1194 95
+40528 4 1200 95
+4052c 6 1202 95
+40532 2 1202 95
+40534 6 1205 95
+4053a a 1204 95
+40544 2 1202 95
+40546 8 1205 95
+4054e 26 1097 95
+40574 2 1104 95
+40576 2 306 106
+40578 4 1104 95
+4057c 6 306 106
+40582 4 307 106
+40586 4 119 108
+4058a a 68 129
+40594 2 427 121
+40596 2 428 121
+40598 4 429 121
+4059c 2 430 121
+4059e 4 431 121
+405a2 2 1108 95
+405a4 2 306 106
+405a6 4 1108 95
+405aa 6 306 106
+405b0 4 307 106
+405b4 4 119 108
+405b8 a 68 129
+405c2 2 427 121
+405c4 2 428 121
+405c6 4 429 121
+405ca 2 430 121
+405cc 2 431 121
+405ce c 1207 95
+405da c 306 106
+405e6 6 1108 95
+405ec 6 306 106
+405f2 4 307 106
+405f6 4 119 108
+405fa a 68 129
+40604 2 427 121
+40606 2 428 121
+40608 4 429 121
+4060c 2 430 121
+4060e 2 431 121
+40610 8 1212 95
+40618 8 1213 95
+40620 8 1189 95
+40628 a 333 127
+40632 4 1138 95
+40636 8 333 127
+4063e a 254 126
+40648 6 333 127
+4064e c 254 126
+4065a 6 1141 95
+40660 4 1141 95
+40664 8 333 127
+4066c 4 1144 95
+40670 a 333 127
+4067a a 254 126
+40684 8 333 127
+4068c c 254 126
+40698 a 333 127
+406a2 4 208 121
+406a6 4 600 121
+406aa 8 602 121
+406b2 2 208 121
+406b4 4 600 121
+406b8 8 602 121
+406c0 8 89 121
+406c8 4 305 127
+406cc 4 1117 95
+406d0 8 305 127
+406d8 10 333 127
+406e8 4 91 121
+406ec 14 205 121
+40700 2 1202 95
+40702 6 1207 95
+40708 2c 1224 95
+FUNC 40734 36 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+40734 2 253 136
+40736 2 486 106
+40738 2 253 136
+4073a 2 486 106
+4073c 2 64 137
+4073e 4 129 137
+40742 8 130 137
+4074a 4 131 137
+4074e 2 132 137
+40750 8 131 137
+40758 2 135 137
+4075a 4 136 137
+4075e 4 137 137
+40762 4 138 137
+40766 4 254 136
+FUNC 4076a 5a 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_erase
+4076a 4 588 144
+4076e 6 588 144
+40774 2 591 144
+40776 6 589 144
+4077c 4 591 144
+40780 4 591 144
+40784 6 156 137
+4078a 8 160 108
+40792 8 591 144
+4079a 2 156 137
+4079c 2 191 108
+4079e 4 156 137
+407a2 6 191 108
+407a8 2 160 108
+407aa 8 160 108
+407b2 4 602 144
+407b6 4 602 144
+407ba 4 608 144
+407be 6 610 144
+FUNC 407c4 14c 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_insert_overflow_aux
+407c4 6 81 143
+407ca 4 81 143
+407ce c 192 144
+407da 4 173 144
+407de 2 81 143
+407e0 8 173 144
+407e8 8 41 143
+407f0 a 175 144
+407fa 4 176 144
+407fe 4 176 144
+40802 2 176 144
+40804 a 347 106
+4080e 6 348 106
+40814 8 352 106
+4081c 4 91 143
+40820 10 428 142
+40830 4 428 142
+40834 6 160 108
+4083a 8 160 108
+40842 8 430 142
+4084a e 428 142
+40858 a 93 143
+40862 2 119 108
+40864 8 119 108
+4086c 6 95 143
+40872 a 314 142
+4087c 8 249 142
+40884 6 249 142
+4088a 2 139 108
+4088c 8 139 108
+40894 8 249 142
+4089c 6 98 143
+408a2 10 428 142
+408b2 6 428 142
+408b8 6 160 108
+408be 8 160 108
+408c6 8 430 142
+408ce 12 428 142
+408e0 4 662 144
+408e4 2 319 106
+408e6 4 323 106
+408ea 6 104 143
+408f0 4 667 144
+408f4 2 668 144
+408f6 6 105 143
+408fc 4 346 106
+40900 10 356 106
+FUNC 40910 84 0 std::priv::_Impl_vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back
+40910 10 376 144
+40920 2 376 144
+40922 4 380 144
+40926 2 376 144
+40928 6 380 144
+4092e 2 119 108
+40930 6 119 108
+40936 8 382 144
+4093e a 416 144
+40948 4 416 144
+4094c 8 150 144
+40954 12 151 144
+40966 8 156 137
+4096e 10 154 144
+4097e 16 388 144
+FUNC 40994 c4 0 testing::internal::::SplitEscapedString
+40994 6 1233 95
+4099a 2 67 144
+4099c 6 1233 95
+409a2 4 67 144
+409a6 2 481 106
+409a8 2 1233 95
+409aa 2 1233 95
+409ac 4 400 136
+409b0 2 1233 95
+409b2 2 400 136
+409b4 2 1236 95
+409b6 2 1233 95
+409b8 2 1236 95
+409ba 6 1236 95
+409c0 4 1236 95
+409c4 a 1238 95
+409ce 2 1241 95
+409d0 2 1240 95
+409d2 8 1023 136
+409da a 1241 95
+409e4 2 1242 95
+409e6 8 1244 95
+409ee e 1023 136
+409fc 8 173 148
+40a04 a 156 137
+40a0e c 1249 95
+40a1a 6 1243 95
+40a20 12 1023 136
+40a32 8 173 148
+40a3a 6 156 137
+40a40 18 1254 95
+FUNC 40a58 180 0 testing::internal::EqFailure
+40a58 e 1277 95
+40a66 6 1277 95
+40a6c 2 1278 95
+40a6e 8 1277 95
+40a76 4 1278 95
+40a7a c 333 127
+40a86 8 1279 95
+40a8e 4 476 139
+40a92 2 1278 95
+40a94 4 476 139
+40a98 2 1280 95
+40a9a c 333 127
+40aa6 a 131 79
+40ab0 c 333 127
+40abc 8 1284 95
+40ac4 6 1285 95
+40aca c 333 127
+40ad6 8 476 139
+40ade 2 1288 95
+40ae0 c 333 127
+40aec a 131 79
+40af6 e 1292 95
+40b04 c 1292 95
+40b10 a 1294 95
+40b1a 8 1296 95
+40b22 c 192 144
+40b2e 4 1297 95
+40b32 a 192 144
+40b3c 4 1297 95
+40b40 c 42 148
+40b4c 2 277 82
+40b4e 2 1139 87
+40b50 4 277 82
+40b54 2 1303 95
+40b56 4 1139 87
+40b5a 8 1303 95
+40b62 6 1303 95
+40b68 6 256 82
+40b6e 6 85 79
+40b74 e 1304 95
+40b82 4 333 127
+40b86 4 1299 95
+40b8a 8 333 127
+40b92 c 1299 95
+40b9e a 131 79
+40ba8 8 156 137
+40bb0 28 1304 95
+FUNC 40bd8 78 0 testing::internal::CmpHelperSTREQ
+40bd8 8 1451 95
+40be0 e 1451 95
+40bee 2 1452 95
+40bf0 6 1451 95
+40bf6 8 1452 95
+40bfe 4 277 82
+40c02 6 1139 87
+40c08 2 1460 95
+40c0a 2 1460 95
+40c0c 8 1460 95
+40c14 8 1460 95
+40c1c 10 1460 95
+40c2c c 156 137
+40c38 18 1461 95
+FUNC 40c50 b4 0 testing::InitGoogleTest
+40c50 c 5281 95
+40c5c 2 5248 95
+40c5e 2 5281 95
+40c60 2 5248 95
+40c62 2 5281 95
+40c64 2 5281 95
+40c66 2 5248 95
+40c68 2 5281 95
+40c6a 2 5248 95
+40c6c 2 5251 95
+40c6e 4 5248 95
+40c72 2 5251 95
+40c74 8 5253 95
+40c7c 8 5255 95
+40c84 a 5255 95
+40c8e 10 156 137
+40c9e 6 630 144
+40ca4 8 632 144
+40cac 2 5281 95
+40cae 8 5260 95
+40cb6 a 5261 95
+40cc0 8 173 148
+40cc8 6 156 137
+40cce 4 5260 95
+40cd2 8 5236 95
+40cda 4 5267 95
+40cde 4 5267 95
+40ce2 22 5283 95
+FUNC 40d04 e 0 testing::internal::AlwaysFalse
+40d04 2 692 85
+40d06 c 692 85
+FUNC 40d14 5c 0 testing::internal::DeathTestAbort
+40d14 2 251 89
+40d16 2 251 89
+40d18 4 937 91
+40d1c 6 1144 87
+40d22 2 257 89
+40d24 c 2304 87
+40d30 8 259 89
+40d38 8 260 89
+40d40 6 261 89
+40d46 8 262 89
+40d4e 10 264 89
+40d5e 6 265 89
+40d64 c 2340 87
+FUNC 40d70 12 0 testing::internal::StackLowerThanAddress
+40d70 2 983 89
+40d72 c 985 89
+40d7e 4 986 89
+FUNC 40d82 16 0 testing::internal::StackGrowsDown
+40d82 2 990 89
+40d84 a 993 89
+40d8e a 995 89
+FUNC 40d98 30 0 testing::internal::GetLastErrnoDescription
+40d98 2 304 89
+40d9a 2 304 89
+40d9c 8 305 89
+40da4 4 305 89
+40da8 2 305 89
+40daa 8 2315 87
+40db2 4 305 89
+40db6 8 305 89
+40dbe a 306 89
+FUNC 40dc8 58 0 testing::internal::DeathTest::DeathTest
+40dc8 6 335 89
+40dce 12 335 89
+40de0 4 937 91
+40de4 2 743 91
+40de6 6 337 89
+40dec e 339 89
+40dfa 6 339 89
+40e00 20 341 89
+FUNC 40e20 34 0 testing::internal::ForkingDeathTest::ForkingDeathTest
+40e20 2 792 89
+40e22 6 792 89
+40e28 e 371 89
+40e36 2 794 89
+40e38 2 371 89
+40e3a 4 794 89
+40e3e 8 371 89
+40e46 e 794 89
+FUNC 40e54 98 0 testing::internal::ParseNaturalNumber<int>
+40e54 6 976 91
+40e5a 2 980 91
+40e5c 2 976 91
+40e5e 2 980 91
+40e60 2 976 91
+40e62 2 980 91
+40e64 6 2188 87
+40e6a 4 980 91
+40e6e 6 983 91
+40e74 a 998 91
+40e7e 2 1002 91
+40e80 2 998 91
+40e82 2 1002 91
+40e84 2 998 91
+40e86 2 1002 91
+40e88 4 1002 91
+40e8c 8 1002 91
+40e94 8 1006 91
+40e9c 12 1006 91
+40eae e 333 127
+40ebc 6 1006 91
+40ec2 2 1009 91
+40ec4 a 1009 91
+40ece 6 1010 91
+40ed4 2 981 91
+40ed6 16 1014 91
+FUNC 40eec 6c 0 testing::internal::DeathTest::set_last_death_test_message
+40eec 2 348 136
+40eee 2 355 89
+40ef0 c 348 136
+40efc 2 400 136
+40efe 2 243 135
+40f00 2 400 136
+40f02 4 244 135
+40f06 2 168 145
+40f08 c 168 145
+40f14 6 246 135
+40f1a 4 803 136
+40f1e 2 168 145
+40f20 2 806 136
+40f22 2 168 145
+40f24 8 806 136
+40f2c 2 168 145
+40f2e 6 168 145
+40f34 6 250 135
+40f3a 6 400 136
+40f40 2 250 135
+40f42 4 357 89
+40f46 12 250 135
+FUNC 40f58 a8 0 testing::internal::FormatDeathTestOutput
+40f58 c 493 89
+40f64 2 101 108
+40f66 4 493 89
+40f6a 2 493 89
+40f6c 2 120 137
+40f6e 2 481 106
+40f70 2 124 137
+40f72 4 530 136
+40f76 2 493 89
+40f78 6 124 137
+40f7e 2 530 136
+40f80 2 101 108
+40f82 4 530 136
+40f86 c 496 89
+40f92 a 530 136
+40f9c a 498 89
+40fa6 e 1023 136
+40fb4 8 451 136
+40fbc 6 156 137
+40fc2 10 506 89
+40fd2 e 1023 136
+40fe0 8 451 136
+40fe8 6 156 137
+40fee 2 503 89
+40ff0 2 504 89
+40ff2 e 506 89
+FUNC 41000 2ac 0 testing::internal::DeathTestImpl::Passed
+41000 6 530 89
+41006 2 531 89
+41008 8 530 89
+41010 6 530 89
+41016 6 531 89
+4101c 4 534 89
+41020 4 537 89
+41024 4 534 89
+41028 6 537 89
+4102e 14 333 127
+41042 2 150 79
+41044 14 333 127
+41058 16 540 89
+4106e 2e 333 127
+4109c 8 547 89
+410a4 a 131 79
+410ae 4 156 137
+410b2 16 333 127
+410c8 6 554 89
+410ce a 555 89
+410d8 6 556 89
+410de 22 333 127
+41100 2 150 79
+41102 3a 333 127
+4113c a 183 89
+41146 6 191 89
+4114c c 333 127
+41158 a 240 126
+41162 a 193 89
+4116c c 333 127
+41178 a 240 126
+41182 4 197 89
+41186 c 333 127
+41192 a 203 89
+4119c 8 1140 87
+411a4 a 131 79
+411ae 18 333 127
+411c6 8 566 89
+411ce a 131 79
+411d8 e 156 137
+411e6 12 571 89
+411f8 e 333 127
+41206 6 571 89
+4120c 4 536 89
+41210 2 557 89
+41212 8 575 89
+4121a 6 575 89
+41220 6 156 137
+41226 8 1140 87
+4122e 6 156 137
+41234 4 577 89
+41238 2 532 89
+4123a 72 577 89
+FUNC 412ac 2c8 0 testing::internal::DeathTestImpl::ReadAndInterpretStatusByte
+412ac 10 425 89
+412bc 2 425 89
+412be 4 2309 87
+412c2 2 425 89
+412c4 a 2309 87
+412ce 4 435 89
+412d2 4 435 89
+412d6 8 435 89
+412de 4 439 89
+412e2 12 459 89
+412f4 a 333 127
+412fe 2 460 89
+41300 6 333 127
+41306 6 460 89
+4130c 8 460 89
+41314 6 156 137
+4131a 6 459 89
+41320 6 2314 87
+41326 4 462 89
+4132a 4 462 89
+4132e 6 462 89
+41334 e 462 89
+41342 e 462 89
+41350 e 462 89
+4135e 4 462 89
+41362 2 462 89
+41364 2 462 89
+41366 2 462 89
+41368 2 462 89
+4136a 2 462 89
+4136c 4 462 89
+41370 a 462 89
+4137a e 462 89
+41388 e 462 89
+41396 e 462 89
+413a4 6 462 89
+413aa 4 462 89
+413ae 4 462 89
+413b2 4 388 89
+413b6 2 464 89
+413b8 2 388 89
+413ba c 464 89
+413c6 4 437 89
+413ca 4 386 89
+413ce 18 440 89
+413e6 e 386 89
+413f4 8 313 89
+413fc 4 319 89
+41400 4 313 89
+41404 e 2309 87
+41412 4 318 89
+41416 4 319 89
+4141a 2 131 79
+4141c a 333 127
+41426 4 322 89
+4142a 4 322 89
+4142e 6 322 89
+41434 4 327 89
+41438 8 328 89
+41440 4 327 89
+41444 c 328 89
+41450 a 333 127
+4145a 2 329 89
+4145c 6 333 127
+41462 6 329 89
+41468 a 329 89
+41472 8 333 127
+4147a 8 240 126
+41482 8 333 127
+4148a 6 156 137
+41490 6 328 89
+41496 a 1140 87
+414a0 14 454 89
+414b4 1a 333 127
+414ce 8 254 126
+414d6 8 333 127
+414de 4 454 89
+414e2 4 324 89
+414e6 c 325 89
+414f2 4 325 89
+414f6 8 325 89
+414fe 8 325 89
+41506 e 325 89
+41514 6 156 137
+4151a 4 325 89
+4151e 56 464 89
+FUNC 41574 e0 0 testing::internal::DeathTestImpl::Abort
+41574 c 470 89
+41580 2 476 89
+41582 4 470 89
+41586 2 476 89
+41588 a 476 89
+41592 2 476 89
+41594 6 476 89
+4159a a 2312 87
+415a4 4 478 89
+415a8 4 478 89
+415ac 6 478 89
+415b2 e 478 89
+415c0 e 478 89
+415ce e 478 89
+415dc 4 478 89
+415e0 4 478 89
+415e4 2 478 89
+415e6 2 478 89
+415e8 2 478 89
+415ea 4 478 89
+415ee a 478 89
+415f8 e 478 89
+41606 e 478 89
+41614 e 478 89
+41622 6 478 89
+41628 4 478 89
+4162c 4 478 89
+41630 24 487 89
+FUNC 41654 e8 0 testing::internal::ForkingDeathTest::Wait
+41654 c 799 89
+41660 2 799 89
+41662 2 800 89
+41664 4 799 89
+41668 4 800 89
+4166c 4 803 89
+41670 10 806 89
+41680 4 806 89
+41684 6 806 89
+4168a e 806 89
+41698 e 806 89
+416a6 e 806 89
+416b4 4 806 89
+416b8 4 806 89
+416bc 2 806 89
+416be 2 806 89
+416c0 2 806 89
+416c2 4 806 89
+416c6 a 806 89
+416d0 e 806 89
+416de e 806 89
+416ec e 806 89
+416fa 6 806 89
+41700 4 806 89
+41704 4 806 89
+41708 2 807 89
+4170a 2 384 89
+4170c 2 808 89
+4170e 2 801 89
+41710 2c 809 89
+FUNC 4173c 3bc 0 testing::internal::NoExecDeathTest::AssumeRole
+4173c 8 822 89
+41744 a 822 89
+4174e 4 823 89
+41752 4 824 89
+41756 4 823 89
+4175a 2 824 89
+4175c 14 825 89
+41770 6 218 89
+41776 34 333 127
+417aa 2 221 89
+417ac e 333 127
+417ba a 254 126
+417c4 8 333 127
+417cc 2 225 89
+417ce 4 333 127
+417d2 8 225 89
+417da 8 1140 87
+417e2 c 825 89
+417ee 6 156 137
+417f4 6 825 89
+417fa 12 829 89
+4180c e 829 89
+4181a e 829 89
+41828 e 829 89
+41836 4 829 89
+4183a 4 829 89
+4183e 2 829 89
+41840 2 829 89
+41842 2 829 89
+41844 4 829 89
+41848 a 829 89
+41852 e 829 89
+41860 c 829 89
+4186c 4 829 89
+41870 6 829 89
+41876 10 831 89
+41886 6 831 89
+4188c 6 156 137
+41892 4 832 89
+41896 6 1294 87
+4189c 6 842 89
+418a2 e 843 89
+418b0 e 843 89
+418be e 843 89
+418cc 10 843 89
+418dc 4 843 89
+418e0 6 843 89
+418e6 2 843 89
+418e8 2 843 89
+418ea 4 843 89
+418ee a 843 89
+418f8 e 843 89
+41906 c 843 89
+41912 6 843 89
+41918 4 843 89
+4191c 4 843 89
+41920 4 784 89
+41924 6 845 89
+4192a a 846 89
+41934 4 846 89
+41938 6 846 89
+4193e e 846 89
+4194c e 846 89
+4195a e 846 89
+41968 4 846 89
+4196c 6 846 89
+41972 2 846 89
+41974 2 846 89
+41976 4 846 89
+4197a a 846 89
+41984 e 846 89
+41992 e 846 89
+419a0 a 846 89
+419aa 4 846 89
+419ae 4 846 89
+419b2 4 390 89
+419b6 4 937 91
+419ba 2 599 91
+419bc 6 854 89
+419c2 8 855 89
+419ca 2 856 89
+419cc a 858 89
+419d6 4 858 89
+419da 6 858 89
+419e0 e 858 89
+419ee e 858 89
+419fc e 858 89
+41a0a 4 858 89
+41a0e 6 858 89
+41a14 2 858 89
+41a16 2 858 89
+41a18 4 858 89
+41a1c a 858 89
+41a26 e 858 89
+41a34 e 858 89
+41a42 a 858 89
+41a4c 4 858 89
+41a50 4 858 89
+41a54 4 388 89
+41a58 4 382 89
+41a5c 9c 863 89
+FUNC 41af8 184 0 testing::internal::ExecDeathTestChildMain
+41af8 10 944 89
+41b08 2 944 89
+41b0a c 946 89
+41b16 4 946 89
+41b1a 6 946 89
+41b20 e 946 89
+41b2e e 946 89
+41b3c e 946 89
+41b4a 4 946 89
+41b4e 2 946 89
+41b50 2 946 89
+41b52 4 946 89
+41b56 2 946 89
+41b58 4 946 89
+41b5c a 946 89
+41b66 e 946 89
+41b74 e 946 89
+41b82 10 946 89
+41b92 4 946 89
+41b96 4 946 89
+41b9a 4 952 89
+41b9e 6 952 89
+41ba4 16 954 89
+41bba c 955 89
+41bc6 a 955 89
+41bd0 a 955 89
+41bda 6 965 89
+41be0 4 937 89
+41be4 8 965 89
+41bec 10 966 89
+41bfc 4 966 89
+41c00 e 966 89
+41c0e c 966 89
+41c1a a 966 89
+41c24 c 967 89
+41c30 6 967 89
+41c36 a 967 89
+41c40 3c 968 89
+FUNC 41c7c c8 0 testing::internal::DeathTestImpl::~DeathTestImpl
+41c7c 10 374 89
+41c8c a 374 89
+41c96 10 374 89
+41ca6 e 374 89
+41cb4 e 374 89
+41cc2 e 374 89
+41cd0 4 374 89
+41cd4 4 374 89
+41cd8 2 374 89
+41cda 2 374 89
+41cdc 2 374 89
+41cde 4 374 89
+41ce2 a 374 89
+41cec e 374 89
+41cfa e 374 89
+41d08 6 374 89
+41d0e 4 374 89
+41d12 4 374 89
+41d16 2e 374 89
+FUNC 41d44 18 0 testing::internal::ExecDeathTest::~ExecDeathTest
+41d44 2 868 89
+41d46 2 813 89
+41d48 c 776 89
+41d54 8 813 89
+FUNC 41d44 18 0 testing::internal::NoExecDeathTest::~NoExecDeathTest
+FUNC 41d5c 12 0 testing::internal::ExecDeathTest::~ExecDeathTest
+41d5c 2 813 89
+41d5e 6 813 89
+41d64 6 813 89
+41d6a 4 813 89
+FUNC 41d5c 12 0 testing::internal::NoExecDeathTest::~NoExecDeathTest
+FUNC 41d70 1a8 0 testing::internal::DefaultDeathTestFactory::Create
+41d70 10 1157 89
+41d80 8 1157 89
+41d88 4 937 91
+41d8c 2 1279 82
+41d8e 4 1144 87
+41d92 4 743 91
+41d96 6 609 82
+41d9c 2 1162 89
+41d9e 8 1164 89
+41da6 4 1165 89
+41daa a 1167 89
+41db4 e 1167 89
+41dc2 10 1168 89
+41dd2 2 1169 89
+41dd4 2 1169 89
+41dd6 4 1169 89
+41dda 4 1169 89
+41dde 2 1169 89
+41de0 4 1169 89
+41de4 a 1169 89
+41dee 10 1169 89
+41dfe 6 1169 89
+41e04 24 156 137
+41e28 4 1170 89
+41e2c 8 1173 89
+41e34 4 1174 89
+41e38 8 1173 89
+41e40 4 1174 89
+41e44 12 1189 89
+41e56 8 1190 89
+41e5e 1a 872 89
+41e78 e 1191 89
+41e86 8 1192 89
+41e8e 10 816 89
+41e9e 4 1192 89
+41ea2 e 1199 89
+41eb0 e 1200 89
+41ebe 6 1200 89
+41ec4 c 156 137
+41ed0 e 1205 89
+41ede 2 1175 89
+41ee0 2 1176 89
+41ee2 2 1175 89
+41ee4 2 1176 89
+41ee6 32 1205 89
+FUNC 41f18 30 0 std::priv::_Impl_vector<void*, std::allocator<void*> >::_M_fill_insert
+41f18 6 166 143
+41f1e 2 171 143
+41f20 e 172 143
+41f2e 8 173 143
+41f36 e 176 143
+41f44 4 179 143
+FUNC 41f48 22 0 testing::internal::Arguments::AddArgument
+41f48 2 899 89
+41f4a 2 900 89
+41f4c 2 899 89
+41f4e 2 2276 87
+41f50 2 900 89
+41f52 4 2276 87
+41f56 6 900 89
+41f5c a 225 143
+41f66 4 901 89
+FUNC 41f6c 98c 0 testing::internal::ExecDeathTest::AssumeRole
+41f6c a 1102 89
+41f76 a 1102 89
+41f80 4 937 91
+41f84 4 1279 82
+41f88 4 744 91
+41f8c 4 1144 87
+41f90 6 1107 89
+41f96 2 1109 89
+41f98 6 1115 89
+41f9e 2 390 89
+41fa0 2 1111 89
+41fa2 2 390 89
+41fa4 4 1111 89
+41fa8 4 1115 89
+41fac 4 1115 89
+41fb0 14 1115 89
+41fc4 10 1115 89
+41fd4 10 1115 89
+41fe4 10 1115 89
+41ff4 4 1115 89
+41ff8 2 1115 89
+41ffa 2 1115 89
+41ffc 2 1115 89
+41ffe 2 1115 89
+42000 2 1115 89
+42002 4 1115 89
+42006 a 1115 89
+42010 10 1115 89
+42020 e 1115 89
+4202e 4 1118 89
+42032 6 1118 89
+42038 18 1118 89
+42050 10 1118 89
+42060 10 1118 89
+42070 10 1118 89
+42080 4 1118 89
+42084 2 1118 89
+42086 2 1118 89
+42088 2 1118 89
+4208a 2 1118 89
+4208c 2 1118 89
+4208e 4 1118 89
+42092 a 1118 89
+4209c c 1118 89
+420a8 2 1118 89
+420aa 4 1118 89
+420ae e 1118 89
+420bc 6 1118 89
+420c2 4 1121 89
+420c6 4 1121 89
+420ca 8 1121 89
+420d2 4 1121 89
+420d6 2 1121 89
+420d8 2 1121 89
+420da 8 1121 89
+420e2 a 1121 89
+420ec 6 1121 89
+420f2 4 1121 89
+420f6 6 1121 89
+420fc 2 1121 89
+420fe 6 1121 89
+42104 e 1121 89
+42112 10 1122 89
+42122 12 1122 89
+42134 c 1122 89
+42140 24 156 137
+42164 e 1124 89
+42172 e 1124 89
+42180 8 1124 89
+42188 4 1124 89
+4218c a 1124 89
+42196 a 1124 89
+421a0 6 1125 89
+421a6 4 1125 89
+421aa a 1125 89
+421b4 10 1125 89
+421c4 e 1125 89
+421d2 a 1125 89
+421dc a 1125 89
+421e6 8 1126 89
+421ee a 1126 89
+421f8 a 1126 89
+42202 8 1127 89
+4220a a 1127 89
+42214 4e 156 137
+42262 2 386 144
+42264 2 67 144
+42266 2 386 144
+42268 4 67 144
+4226c 2 481 106
+4226e 4 890 89
+42272 e 386 144
+42280 4 877 89
+42284 c 192 144
+42290 2 877 89
+42292 2 342 106
+42294 4 70 144
+42298 2 342 106
+4229a 4 70 144
+4229e 6 481 106
+422a4 2 342 106
+422a6 8 343 106
+422ae 4 343 106
+422b2 2 346 106
+422b4 2 348 106
+422b6 2 347 106
+422b8 4 348 106
+422bc 4 352 106
+422c0 2 348 106
+422c2 8 352 106
+422ca 2 356 106
+422cc 6 73 144
+422d2 4 71 144
+422d6 4 72 144
+422da 8 73 144
+422e2 10 86 142
+422f2 2 84 142
+422f4 4 86 142
+422f8 6 86 142
+422fe 2 139 108
+42300 8 139 108
+42308 2 88 142
+4230a 2 89 142
+4230c 4 88 142
+42310 12 86 142
+42322 c 249 144
+4232e 8 905 89
+42336 4 908 89
+4233a 2 2276 87
+4233c 4 908 89
+42340 4 2276 87
+42344 2 225 143
+42346 2 908 89
+42348 a 225 143
+42352 4 905 89
+42356 6 42 148
+4235c 8 1130 89
+42364 8 1131 89
+4236c e 1133 89
+4237a 6 1133 89
+42380 6 156 137
+42386 4 1135 89
+4238a 6 1294 87
+42390 2 1140 89
+42392 c 1005 89
+4239e a 1045 89
+423a8 6 1047 89
+423ae e 1048 89
+423bc 4 1048 89
+423c0 6 1048 89
+423c6 c 1048 89
+423d2 c 1048 89
+423de c 1048 89
+423ea 4 1048 89
+423ee 2 1048 89
+423f0 2 1048 89
+423f2 2 1048 89
+423f4 2 1048 89
+423f6 2 1048 89
+423f8 4 1048 89
+423fc a 1048 89
+42406 e 1048 89
+42414 e 1048 89
+42422 c 1048 89
+4242e 4 1048 89
+42432 4 1048 89
+42436 4 1048 89
+4243a 4 1053 89
+4243e 8 1055 89
+42446 a 1056 89
+42450 10 1056 89
+42460 2 1060 89
+42462 8 176 102
+4246a 14 1060 89
+4247e e 1061 89
+4248c c 1061 89
+42498 c 1061 89
+424a4 e 1061 89
+424b2 6 1061 89
+424b8 2 1061 89
+424ba 2 1061 89
+424bc 2 1061 89
+424be 4 1061 89
+424c2 a 1061 89
+424cc e 1061 89
+424da c 1061 89
+424e6 4 1061 89
+424ea 4 1061 89
+424ee 8 1071 89
+424f6 4 1071 89
+424fa 2 1072 89
+424fc 6 1073 89
+42502 4 1073 89
+42506 4 1073 89
+4250a 2 1073 89
+4250c 6 1073 89
+42512 a 1073 89
+4251c c 1073 89
+42528 c 1073 89
+42534 e 1073 89
+42542 6 1073 89
+42548 2 1073 89
+4254a 2 1073 89
+4254c 2 1073 89
+4254e 4 1073 89
+42552 a 1073 89
+4255c e 1073 89
+4256a ba 1073 89
+42624 4 1073 89
+42628 6 1073 89
+4262e 10 1076 89
+4263e 14 1078 89
+42652 c 1078 89
+4265e c 1078 89
+4266a e 1078 89
+42678 6 1078 89
+4267e 2 1078 89
+42680 2 1078 89
+42682 2 1078 89
+42684 4 1078 89
+42688 a 1078 89
+42692 e 1078 89
+426a0 c 1078 89
+426ac 4 1078 89
+426b0 6 1078 89
+426b6 4 1090 89
+426ba 4 1090 89
+426be e 1090 89
+426cc 4 1090 89
+426d0 6 1090 89
+426d6 c 1090 89
+426e2 c 1090 89
+426ee c 1090 89
+426fa 4 1090 89
+426fe 2 1090 89
+42700 2 1090 89
+42702 2 1090 89
+42704 2 1090 89
+42706 2 1090 89
+42708 4 1090 89
+4270c a 1090 89
+42716 e 1090 89
+42724 e 1090 89
+42732 c 1090 89
+4273e c 1094 89
+4274a c 1094 89
+42756 c 1094 89
+42762 e 1094 89
+42770 6 1094 89
+42776 2 1094 89
+42778 2 1094 89
+4277a 2 1094 89
+4277c 4 1094 89
+42780 a 1094 89
+4278a e 1094 89
+42798 c 1094 89
+427a4 4 1094 89
+427a8 4 1094 89
+427ac 10 1141 89
+427bc 4 1141 89
+427c0 6 1141 89
+427c6 c 1141 89
+427d2 c 1141 89
+427de c 1141 89
+427ea 4 1141 89
+427ee 2 1141 89
+427f0 4 1141 89
+427f4 4 1141 89
+427f8 4 1141 89
+427fc a 1141 89
+42806 e 1141 89
+42814 e 1141 89
+42822 c 1141 89
+4282e 4 1141 89
+42832 4 1141 89
+42836 2 784 89
+42838 2 388 89
+4283a 2 784 89
+4283c 8 388 89
+42844 6 382 89
+4284a 6 894 89
+42850 a 896 89
+4285a 4 87 144
+4285e 2 88 144
+42860 6 323 106
+42866 c 156 137
+42872 2 1145 89
+42874 e 1146 89
+42882 4 1084 89
+42886 8 1084 89
+4288e 6 1085 89
+42894 64 1146 89
+FUNC 428f8 16c 0 testing::internal::ParseInternalRunDeathTestFlag
+428f8 6 1298 89
+428fe 2 1299 89
+42900 4 1298 89
+42904 2 1299 89
+42906 2 1298 89
+42908 2 1299 89
+4290a 2 1298 89
+4290c 4 1299 89
+42910 2 1298 89
+42912 a 1299 89
+4291c 4 1303 89
+42920 2 1306 89
+42922 4 67 144
+42926 2 481 106
+42928 6 1306 89
+4292e 2 1303 89
+42930 6 1304 89
+42936 6 1306 89
+4293c 4 67 144
+42940 2 481 106
+42942 6 1214 89
+42948 c 1215 89
+42954 4 1216 89
+42958 2 1215 89
+4295a 8 1023 136
+42962 2 1216 89
+42964 6 1023 136
+4296a 8 173 148
+42972 8 156 137
+4297a 8 1023 136
+42982 8 173 148
+4298a 6 156 137
+42990 6 1221 89
+42996 2 91 105
+42998 2 92 105
+4299a 2 93 105
+4299c 2 92 105
+4299e 2 91 105
+429a0 2 92 105
+429a2 2 93 105
+429a4 2 92 105
+429a6 2 91 105
+429a8 2 92 105
+429aa 2 42 148
+429ac 2 92 105
+429ae 2 93 105
+429b0 4 42 148
+429b4 6 156 137
+429ba 4 1307 89
+429be 2 192 144
+429c0 2 1307 89
+429c2 a 192 144
+429cc 4 1332 89
+429d0 8 1330 89
+429d8 2 1330 89
+429da a 1331 89
+429e4 2 1331 89
+429e6 e 1332 89
+429f4 2 1299 89
+429f6 c 1340 89
+42a02 10 1334 89
+42a12 6 1334 89
+42a18 c 1339 89
+42a24 8 1339 89
+42a2c e 241 83
+42a3a a 42 148
+42a44 20 1340 89
+FUNC 42a64 8 0 testing::internal::FilePath::FindLastPathSeparator
+42a64 8 137 90
+FUNC 42a6c 30 0 testing::internal::FilePath::FileOrDirectoryExists
+42a6c 6 209 90
+42a72 6 209 90
+42a78 4 2272 87
+42a7c 2 209 90
+42a7e 4 2272 87
+42a82 1a 219 90
+FUNC 42a9c 40 0 testing::internal::FilePath::DirectoryExists
+42a9c 6 223 90
+42aa2 6 223 90
+42aa8 4 2272 87
+42aac 2 223 90
+42aae 4 2272 87
+42ab2 2 244 90
+42ab4 6 2278 87
+42aba a 244 90
+42ac4 2 244 90
+42ac6 16 249 90
+FUNC 42adc e 0 testing::internal::FilePath::IsAbsolutePath
+42adc 2 274 90
+42ade 2 94 90
+42ae0 a 276 90
+FUNC 42aea 1a 0 testing::internal::FilePath::IsDirectory
+42aea 4 300 90
+42aee 4 301 90
+42af2 e 301 90
+42b00 2 301 90
+42b02 2 303 90
+FUNC 42b04 20 0 testing::internal::FilePath::CreateFolder
+42b04 2 325 90
+42b06 4 334 90
+42b0a 2 325 90
+42b0c 6 334 90
+42b12 4 337 90
+42b16 2 338 90
+42b18 4 341 90
+42b1c 4 338 90
+42b20 4 341 90
+FUNC 42b24 6c 0 testing::internal::FilePath::Normalize
+42b24 4 356 90
+42b28 2 356 90
+42b2a 2 357 90
+42b2c 4 384 90
+42b30 8 358 90
+42b38 4 400 136
+42b3c 8 362 90
+42b44 4 400 136
+42b48 2 364 90
+42b4a 2 400 136
+42b4c 8 364 90
+42b54 4 366 90
+42b58 4 367 90
+42b5c a 368 90
+42b66 6 369 90
+42b6c a 376 90
+42b76 4 382 90
+42b7a 2 381 90
+42b7c 4 382 90
+42b80 2 383 90
+42b82 4 384 90
+42b86 a 383 90
+FUNC 42b90 78 0 testing::internal::FilePath::GetCurrentDir
+42b90 e 99 90
+42b9e 8 99 90
+42ba6 2 108 90
+42ba8 2 99 90
+42baa 2 108 90
+42bac 2 99 90
+42bae a 108 90
+42bb8 a 109 90
+42bc2 2 116 90
+42bc4 6 116 90
+42bca 2 116 90
+42bcc a 116 90
+42bd6 8 116 90
+42bde 6 156 137
+42be4 24 118 90
+FUNC 42c08 58 0 testing::internal::FilePath::RemoveDirectoryName
+42c08 6 155 90
+42c0e 8 155 90
+42c16 2 156 90
+42c18 4 155 90
+42c1c 4 156 90
+42c20 4 157 90
+42c24 c 157 90
+42c30 8 157 90
+42c38 8 156 137
+42c40 8 62 84
+42c48 18 158 90
+FUNC 42c60 64 0 testing::internal::FilePath::RemoveTrailingPathSeparator
+42c60 6 346 90
+42c66 8 346 90
+42c6e 2 347 90
+42c70 4 346 90
+42c74 6 347 90
+42c7a 2 349 90
+42c7c 4 400 136
+42c80 2 1023 136
+42c82 2 400 136
+42c84 10 1023 136
+42c94 8 349 90
+42c9c 8 156 137
+42ca4 8 62 84
+42cac 18 350 90
+FUNC 42cc4 14c 0 testing::internal::FilePath::ConcatPaths
+42cc4 10 200 90
+42cd4 2 200 90
+42cd6 4 201 90
+42cda 2 200 90
+42cdc 4 201 90
+42ce0 8 62 84
+42ce8 8 203 90
+42cf0 4 400 136
+42cf4 2 120 137
+42cf6 2 400 136
+42cf8 4 124 137
+42cfc 2 120 137
+42cfe 2 481 106
+42d00 4 124 137
+42d04 4 101 108
+42d08 2 107 139
+42d0a 2 101 108
+42d0c 6 107 139
+42d12 6 74 137
+42d18 4 74 137
+42d1c 4 74 137
+42d20 2 74 137
+42d22 4 535 136
+42d26 6 536 136
+42d2c 4 346 106
+42d30 2 158 106
+42d32 2 347 106
+42d34 2 158 106
+42d36 6 134 124
+42d3c 8 158 106
+42d44 6 352 106
+42d4a 4 356 106
+42d4e 14 86 142
+42d62 8 86 142
+42d6a 6 146 108
+42d70 a 101 108
+42d7a a 174 135
+42d84 4 175 135
+42d88 2 160 137
+42d8a 4 164 137
+42d8e 4 165 137
+42d92 4 101 108
+42d96 2 232 145
+42d98 2 101 108
+42d9a 4 120 137
+42d9e 4 101 108
+42da2 2 232 145
+42da4 2 124 137
+42da6 2 232 145
+42da8 2 539 136
+42daa 2 400 136
+42dac 2 539 136
+42dae 2 400 136
+42db0 2 539 136
+42db2 8 400 136
+42dba 2 124 137
+42dbc 4 120 137
+42dc0 4 481 106
+42dc4 6 124 137
+42dca 2 39 139
+42dcc 4 101 108
+42dd0 6 39 139
+42dd6 8 40 139
+42dde 8 204 90
+42de6 12 156 137
+42df8 18 205 90
+FUNC 42e10 90 0 testing::internal::FilePath::RemoveFileName
+42e10 8 166 90
+42e18 8 166 90
+42e20 2 167 90
+42e22 4 166 90
+42e26 4 167 90
+42e2a 2 120 137
+42e2c 2 167 90
+42e2e 4 124 137
+42e32 2 120 137
+42e34 2 481 106
+42e36 4 124 137
+42e3a 6 101 108
+42e40 8 169 90
+42e48 2 112 137
+42e4a 6 225 136
+42e50 2 112 137
+42e52 2 481 106
+42e54 4 225 136
+42e58 a 349 136
+42e62 8 156 137
+42e6a a 172 90
+42e74 8 174 90
+42e7c 6 156 137
+42e82 1e 175 90
+FUNC 42ea0 70 0 testing::internal::FilePath::CreateDirectoriesRecursively
+42ea0 6 308 90
+42ea6 a 308 90
+42eb0 8 309 90
+42eb8 8 313 90
+42ec0 6 313 90
+42ec6 2 313 90
+42ec8 6 317 90
+42ece 2 317 90
+42ed0 4 317 90
+42ed4 8 317 90
+42edc 6 156 137
+42ee2 a 318 90
+42eec 8 318 90
+42ef4 6 156 137
+42efa 16 319 90
+FUNC 42f10 160 0 testing::internal::FilePath::MakeFileName
+42f10 8 186 90
+42f18 4 186 90
+42f1c 2 120 137
+42f1e 8 186 90
+42f26 4 124 137
+42f2a 8 186 90
+42f32 2 120 137
+42f34 2 481 106
+42f36 4 124 137
+42f3a c 101 108
+42f46 6 188 90
+42f4c c 189 90
+42f58 a 189 90
+42f62 a 349 136
+42f6c a 156 137
+42f76 8 191 90
+42f7e 2 244 79
+42f80 4 191 90
+42f84 6 244 79
+42f8a a 240 126
+42f94 8 244 79
+42f9c 4 1153 87
+42fa0 8 1154 87
+42fa8 4 1155 87
+42fac 6 1155 87
+42fb2 4 400 136
+42fb6 2 120 137
+42fb8 6 400 136
+42fbe 2 124 137
+42fc0 2 400 136
+42fc2 2 35 139
+42fc4 2 124 137
+42fc6 2 120 137
+42fc8 2 481 106
+42fca 4 124 137
+42fce 4 101 108
+42fd2 4 39 139
+42fd6 2 101 108
+42fd8 2 39 139
+42fda 4 40 139
+42fde 6 39 139
+42fe4 8 40 139
+42fec c 192 90
+42ff8 a 192 90
+43002 a 349 136
+4300c 1e 156 137
+4302a 8 194 90
+43032 a 194 90
+4303c c 156 137
+43048 28 195 90
+FUNC 43070 74 0 testing::internal::FilePath::GenerateUniqueFileName
+43070 c 288 90
+4307c 2 61 84
+4307e 2 288 90
+43080 6 288 90
+43086 4 61 84
+4308a 4 288 90
+4308e 4 61 84
+43092 2 290 90
+43094 14 292 90
+430a8 4 348 136
+430ac a 349 136
+430b6 6 156 137
+430bc 6 291 90
+430c2 2 292 90
+430c4 4 291 90
+430c8 1c 295 90
+FUNC 430e4 18 0 testing::internal::IsInSet
+430e4 2 587 92
+430e6 2 587 92
+430e8 4 588 92
+430ec 6 588 92
+430f2 8 588 92
+430fa 2 589 92
+FUNC 430fc c 0 testing::internal::IsAsciiPunct
+430fc c 596 92
+FUNC 43108 c 0 testing::internal::IsRepeat
+43108 c 598 92
+FUNC 43114 c 0 testing::internal::IsAsciiWhiteSpace
+43114 c 599 92
+FUNC 43120 20 0 testing::internal::IsAsciiWordChar
+43120 a 601 92
+4312a 8 601 92
+43132 a 602 92
+4313c 2 602 92
+4313e 2 603 92
+FUNC 43140 b8 0 testing::internal::AtomMatchesChar
+43140 2 612 92
+43142 4 612 92
+43146 4 613 92
+4314a 14 614 92
+4315e 8 621 92
+43166 8 614 92
+4316e 4 617 92
+43172 e 614 92
+43180 4 631 92
+43184 6 620 92
+4318a 8 614 92
+43192 4 631 92
+43196 6 624 92
+4319c e 594 92
+431aa e 616 92
+431b8 4 618 92
+431bc 4 619 92
+431c0 4 622 92
+431c4 4 623 92
+431c8 e 625 92
+431d6 a 627 92
+431e0 4 630 92
+431e4 a 630 92
+431ee 8 630 92
+431f6 2 631 92
+FUNC 431f8 5a 0 testing::internal::MatchRegexAtHead
+431f8 6 731 92
+431fe 4 732 92
+43202 4 737 92
+43206 a 738 92
+43210 8 741 92
+43218 2 742 92
+4321a 2 743 92
+4321c a 744 92
+43226 12 749 92
+43238 6 754 92
+4323e 8 754 92
+43246 2 754 92
+43248 4 755 92
+4324c 2 733 92
+4324e 4 757 92
+FUNC 43252 60 0 testing::internal::MatchRepetitionAndRegexAtHead
+43252 2 707 92
+43254 4 706 92
+43258 6 706 92
+4325e 2 707 92
+43260 10 707 92
+43270 2 707 92
+43272 4 709 92
+43276 4 713 92
+4327a 4 715 92
+4327e 8 715 92
+43286 6 715 92
+4328c 6 722 92
+43292 e 722 92
+432a0 6 723 92
+432a6 2 713 92
+432a8 4 713 92
+432ac 2 723 92
+432ae 4 726 92
+FUNC 432b2 34 0 testing::internal::MatchRegexAnywhere
+432b2 2 767 92
+432b4 2 767 92
+432b6 4 768 92
+432ba 2 768 92
+432bc 6 771 92
+432c2 2 772 92
+432c4 4 780 92
+432c8 4 772 92
+432cc a 776 92
+432d6 c 775 92
+432e2 2 769 92
+432e4 2 780 92
+FUNC 432e6 16 0 testing::internal::RE::PartialMatch
+432e6 2 796 92
+432e8 2 796 92
+432ea 4 797 92
+432ee 4 797 92
+432f2 4 798 92
+432f6 4 797 92
+432fa 2 798 92
+FUNC 432fc 16 0 testing::internal::CapturedStream::GetFileSize
+432fc 2 980 92
+432fe 2 980 92
+43300 8 981 92
+43308 2 982 92
+4330a 4 983 92
+4330e 4 982 92
+FUNC 43314 18 0 testing::internal::GetInjectableArgvs
+43314 8 1069 92
+4331c 4 1072 92
+43320 c 1073 92
+FUNC 4332c 1e 0 std::_Destroy_Range<std::reverse_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*> >
+4332c 2 219 108
+4332e 6 65 118
+43334 2 74 118
+43336 4 191 108
+4333a 2 121 136
+4333c 6 156 137
+43342 4 81 118
+43346 4 221 108
+FUNC 4334a 30 0 std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector
+4334a 2 42 148
+4334c 2 42 148
+4334e 2 64 118
+43350 2 304 144
+43352 4 64 118
+43356 2 304 144
+43358 2 64 118
+4335a 4 304 144
+4335e 4 87 144
+43362 4 88 144
+43366 4 161 106
+4336a 6 135 124
+43370 4 161 106
+43374 6 42 148
+FUNC 4337a 52 0 testing::internal::CapturedStream::ReadEntireFile
+4337a 4 986 92
+4337e 2 986 92
+43380 2 987 92
+43382 2 986 92
+43384 6 987 92
+4338a 4 988 92
+4338e 2 993 92
+43390 2 988 92
+43392 8 993 92
+4339a 2 991 92
+4339c e 998 92
+433aa 2 999 92
+433ac 2 997 92
+433ae 4 1000 92
+433b2 6 225 136
+433b8 2 112 137
+433ba 2 481 106
+433bc 4 225 136
+433c0 6 1003 92
+433c6 6 1006 92
+FUNC 433cc 68 0 testing::internal::GetCapturedStream
+433cc 2 1023 92
+433ce 2 1024 92
+433d0 2 1023 92
+433d2 2 950 92
+433d4 2 1023 92
+433d6 4 950 92
+433da 6 952 92
+433e0 8 953 92
+433e8 6 954 92
+433ee 6 955 92
+433f4 c 2298 87
+43400 8 959 92
+43408 6 2306 87
+4340e 4 1026 92
+43412 6 946 92
+43418 8 156 137
+43420 6 1026 92
+43426 4 1027 92
+4342a a 1030 92
+FUNC 43434 14 0 testing::internal::GetCapturedStderr
+43434 2 1048 92
+43436 2 1048 92
+43438 8 1049 92
+43440 8 1050 92
+FUNC 43448 1c 0 testing::Message::operator<< <char const>
+43448 2 149 79
+4344a 4 149 79
+4344e 2 333 127
+43450 2 150 79
+43452 8 333 127
+4345a a 156 79
+FUNC 43464 46 0 std::endl<char, std::char_traits<char> >
+43464 2 357 127
+43466 2 357 127
+43468 a 181 127
+43472 2 412 126
+43474 10 422 126
+43484 2 414 126
+43486 e 414 126
+43494 4 421 126
+43498 6 424 126
+4349e 6 359 127
+434a4 6 361 127
+FUNC 434ac 30 0 testing::internal::GTestLog::~GTestLog
+434ac 2 880 92
+434ae 2 880 92
+434b0 a 78 127
+434ba 8 882 92
+434c2 a 883 92
+434cc 4 2340 87
+434d0 c 886 92
+FUNC 434dc 17c 0 testing::internal::ParseInt32
+434dc 6 1103 92
+434e2 2 1105 92
+434e4 a 1103 92
+434ee 2 1103 92
+434f0 2 1105 92
+434f2 4 1103 92
+434f6 4 1105 92
+434fa 4 1106 92
+434fe 2 1103 92
+43500 4 1106 92
+43504 8 1109 92
+4350c 8 1111 92
+43514 c 333 127
+43520 a 131 79
+4352a 18 333 127
+43542 8 1114 92
+4354a 2 333 127
+4354c 2 131 79
+4354e 4 333 127
+43552 4 1115 92
+43556 4 333 127
+4355a 8 1115 92
+43562 a 1115 92
+4356c 6 156 137
+43572 a 1116 92
+4357c 6 85 79
+43582 4 1117 92
+43586 a 1122 92
+43590 8 1128 92
+43598 c 333 127
+435a4 a 131 79
+435ae 18 333 127
+435c6 8 1131 92
+435ce 2 333 127
+435d0 2 131 79
+435d2 4 333 127
+435d6 4 1132 92
+435da 4 333 127
+435de 8 1132 92
+435e6 a 1132 92
+435f0 6 156 137
+435f6 a 1133 92
+43600 6 85 79
+43606 4 1134 92
+4360a 4 1137 92
+4360e 2 1138 92
+43610 48 1139 92
+FUNC 43658 e0 0 testing::internal::FormatFileLocation
+43658 8 840 92
+43660 c 840 92
+4366c 6 841 92
+43672 4 841 92
+43676 2 112 137
+43678 2 229 145
+4367a 2 112 137
+4367c 2 481 106
+4367e 4 229 145
+43682 2 643 135
+43684 2 643 135
+43686 6 643 135
+4368c 6 843 92
+43692 e 844 92
+436a0 a 849 92
+436aa 4 849 92
+436ae 8 849 92
+436b6 8 849 92
+436be 4 400 136
+436c2 2 120 137
+436c4 6 400 136
+436ca 2 124 137
+436cc 2 400 136
+436ce 2 35 139
+436d0 2 124 137
+436d2 2 120 137
+436d4 2 481 106
+436d6 4 124 137
+436da 4 101 108
+436de 2 39 139
+436e0 2 101 108
+436e2 6 39 139
+436e8 8 40 139
+436f0 a 849 92
+436fa 18 156 137
+43712 26 851 92
+FUNC 43738 b0 0 testing::internal::GTestLog::GTestLog
+43738 10 869 92
+43748 6 869 92
+4374e 4 870 92
+43752 2 874 92
+43754 4 874 92
+43758 4 874 92
+4375c 6 874 92
+43762 6 874 92
+43768 6 874 92
+4376e 4 874 92
+43772 c 78 127
+4377e c 333 127
+4378a 2 876 92
+4378c 4 333 127
+43790 a 876 92
+4379a 12 333 127
+437ac 6 156 137
+437b2 36 877 92
+FUNC 437e8 140 0 testing::internal::CaptureStream
+437e8 8 1014 92
+437f0 a 1014 92
+437fa 2 1015 92
+437fc 4 1014 92
+43800 2 1015 92
+43802 12 1016 92
+43814 20 333 127
+43834 6 1016 92
+4383a 8 1019 92
+43842 e 897 92
+43850 4 120 137
+43854 4 481 106
+43858 8 124 137
+43860 2 101 108
+43862 6 933 92
+43868 2 101 108
+4386a 20 933 92
+4388a 8 937 92
+43892 6 229 145
+43898 2 400 136
+4389a 6 355 136
+438a0 4 243 135
+438a4 2 400 136
+438a6 4 244 135
+438aa 2 168 145
+438ac 8 168 145
+438b4 6 246 135
+438ba 4 803 136
+438be 2 168 145
+438c0 2 806 136
+438c2 2 168 145
+438c4 8 806 136
+438cc 2 168 145
+438ce 6 168 145
+438d4 4 400 136
+438d8 2 250 135
+438da 2 400 136
+438dc 8 250 135
+438e4 6 940 92
+438ea 8 941 92
+438f2 6 942 92
+438f8 4 1019 92
+438fc 2c 1020 92
+FUNC 43928 18 0 testing::internal::CaptureStderr
+43928 18 1039 92
+FUNC 43940 c8 0 testing::internal::FormatCompilerIndependentFileLocation
+43940 c 859 92
+4394c a 859 92
+43956 6 860 92
+4395c 4 860 92
+43960 2 112 137
+43962 2 229 145
+43964 2 112 137
+43966 2 481 106
+43968 4 229 145
+4396c 2 643 135
+4396e 2 643 135
+43970 6 643 135
+43976 6 862 92
+4397c 2 112 137
+4397e 2 481 106
+43980 c 649 135
+4398c 6 865 92
+43992 4 865 92
+43996 8 865 92
+4399e 8 865 92
+439a6 a 400 136
+439b0 2 124 137
+439b2 2 400 136
+439b4 2 35 139
+439b6 2 124 137
+439b8 2 120 137
+439ba 2 481 106
+439bc 4 124 137
+439c0 4 101 108
+439c4 2 39 139
+439c6 2 101 108
+439c8 6 39 139
+439ce 8 40 139
+439d6 12 156 137
+439e8 20 866 92
+FUNC 43a08 a4 0 testing::internal::FlagToEnvVar
+43a08 e 1088 92
+43a16 4 1088 92
+43a1a 2 1090 92
+43a1c 2 1088 92
+43a1e 4 1090 92
+43a22 c 333 127
+43a2e 8 1090 92
+43a36 4 1090 92
+43a3a 2 1090 92
+43a3c 6 1090 92
+43a42 6 85 79
+43a48 2 1092 92
+43a4a 2 1090 92
+43a4c 4 1092 92
+43a50 4 1093 92
+43a54 4 400 136
+43a58 4 1093 92
+43a5c 2 166 98
+43a5e 2 168 98
+43a60 2 305 127
+43a62 8 168 98
+43a6a a 305 127
+43a74 4 1093 92
+43a78 8 1097 92
+43a80 6 85 79
+43a86 6 156 137
+43a8c 20 1098 92
+FUNC 43aac 54 0 testing::internal::BoolFromGTestEnv
+43aac c 1145 92
+43ab8 2 1145 92
+43aba 4 1146 92
+43abe 2 1145 92
+43ac0 2 1146 92
+43ac2 2 1145 92
+43ac4 4 1146 92
+43ac8 6 2328 87
+43ace 2 1149 92
+43ad0 8 1149 92
+43ad8 6 1149 92
+43ade 6 156 137
+43ae4 1c 1150 92
+FUNC 43b00 d0 0 testing::internal::Int32FromGTestEnv
+43b00 e 1155 92
+43b0e 2 1155 92
+43b10 4 1156 92
+43b14 2 1155 92
+43b16 2 1156 92
+43b18 2 1155 92
+43b1a 4 1156 92
+43b1e 8 2328 87
+43b26 6 1158 92
+43b2c 4 1164 92
+43b30 2 1163 92
+43b32 4 1164 92
+43b36 c 333 127
+43b42 a 131 79
+43b4c c 1165 92
+43b58 6 85 79
+43b5e 6 1164 92
+43b64 6 1167 92
+43b6a 4 240 126
+43b6e 4 1167 92
+43b72 6 240 126
+43b78 8 1167 92
+43b80 a 1167 92
+43b8a 6 156 137
+43b90 8 85 79
+43b98 a 1168 92
+43ba2 2 1169 92
+43ba4 2 1172 92
+43ba6 6 156 137
+43bac 24 1173 92
+FUNC 43bd0 44 0 testing::internal::StringFromGTestEnv
+43bd0 c 1177 92
+43bdc 2 1177 92
+43bde 2 1178 92
+43be0 2 1177 92
+43be2 4 1178 92
+43be6 2 1177 92
+43be8 4 1178 92
+43bec 6 2328 87
+43bf2 6 1180 92
+43bf8 6 156 137
+43bfe 16 1181 92
+FUNC 43c14 24 0 sys_sigaltstack
+43c14 2 3142 97
+43c16 12 3142 97
+43c28 4 3142 97
+43c2c 8 3142 97
+43c34 4 3142 97
+FUNC 43c38 24 0 sys_close
+43c38 2 2979 97
+43c3a 12 2979 97
+43c4c 4 2979 97
+43c50 8 2979 97
+43c58 4 2979 97
+FUNC 43c5c 2a 0 sys_prctl
+43c5c 4 3092 97
+43c60 16 3092 97
+43c76 4 3092 97
+43c7a 8 3092 97
+43c82 4 3092 97
+FUNC 43c88 d0 0 google_breakpad::ExceptionHandler::InstallHandlersLocked
+43c88 2 246 4
+43c8a 2 247 4
+43c8c 2 246 4
+43c8e 6 247 4
+43c94 4 248 4
+43c98 1a 252 4
+43cb2 2 251 4
+43cb4 4 251 4
+43cb8 2 257 4
+43cba 2 261 4
+43cbc 2 75 100
+43cbe 2 262 4
+43cc0 a 257 4
+43cca 2 262 4
+43ccc 2 75 100
+43cce 4 74 100
+43cd2 2 261 4
+43cd4 2 74 100
+43cd6 28 75 100
+43cfe 2 261 4
+43d00 4 75 100
+43d04 2 261 4
+43d06 2 267 4
+43d08 2 264 4
+43d0a 2 268 4
+43d0c 4 264 4
+43d10 2 265 4
+43d12 2 268 4
+43d14 2 265 4
+43d16 8 268 4
+43d1e 2 267 4
+43d20 4 268 4
+43d24 4 267 4
+43d28 8 273 4
+43d30 28 275 4
+FUNC 43d58 214 0 google_breakpad::ExceptionHandler::ExceptionHandler
+43d58 4 200 4
+43d5c 2 92 57
+43d5e 4 200 4
+43d62 c 210 4
+43d6e 2 92 57
+43d70 2 210 4
+43d72 2 200 4
+43d74 6 210 4
+43d7a a 188 121
+43d84 8 481 106
+43d8c 6 188 121
+43d92 2 210 4
+43d94 2 211 4
+43d96 8 481 106
+43d9e 2 211 121
+43da0 4 212 121
+43da4 c 481 106
+43db0 2 211 121
+43db2 2 212 121
+43db4 2 211 4
+43db6 8 212 4
+43dbe 6 105 57
+43dc4 2 107 57
+43dc6 6 107 57
+43dcc 2 108 57
+43dce 4 214 4
+43dd2 a 214 4
+43ddc 2 218 4
+43dde 2 219 4
+43de0 2 218 4
+43de2 2 219 4
+43de4 4 218 4
+43de8 4 219 4
+43dec 6 220 4
+43df2 4 67 144
+43df6 2 481 106
+43df8 2 220 4
+43dfa 8 221 4
+43e02 a 138 4
+43e0c c 141 4
+43e18 c 142 4
+43e24 a 147 4
+43e2e e 147 4
+43e3c 10 151 4
+43e4c 4 151 4
+43e50 c 151 4
+43e5c 14 153 4
+43e70 4 156 4
+43e74 2 154 4
+43e76 8 156 4
+43e7e 6 157 4
+43e84 4 223 4
+43e88 6 225 4
+43e8e 8 380 144
+43e96 2 126 108
+43e98 8 382 144
+43ea0 6 192 144
+43ea6 8 175 144
+43eae 6 176 144
+43eb4 4 176 144
+43eb8 4 176 144
+43ebc 8 347 106
+43ec4 4 348 106
+43ec8 2 353 106
+43eca 4 352 106
+43ece 2 112 143
+43ed0 2 224 105
+43ed2 4 224 105
+43ed6 6 224 105
+43edc 2 224 105
+43ede 8 481 105
+43ee6 4 657 144
+43eea 2 319 106
+43eec 4 161 106
+43ef0 6 135 124
+43ef6 4 161 106
+43efa 4 118 143
+43efe 4 666 144
+43f02 2 667 144
+43f04 4 668 144
+43f08 8 216 4
+43f10 a 160 4
+43f1a 4 346 106
+43f1e 4 356 106
+43f22 8 226 4
+43f2a 42 227 4
+FUNC 43f6c 50 0 google_breakpad::ExceptionHandler::RestoreHandlersLocked
+43f6c 2 280 4
+43f6e a 281 4
+43f78 1c 285 4
+43f94 8 113 100
+43f9c 2 284 4
+43f9e 4 284 4
+43fa2 1a 289 4
+FUNC 43fbc 7c 0 google_breakpad::ExceptionHandler::SendContinueSignalToChild
+43fbc 2 521 4
+43fbe 2 521 4
+43fc0 1c 3162 97
+43fdc 4 3162 97
+43fe0 4 3162 97
+43fe4 4 524 4
+43fe8 6 524 4
+43fee a 528 4
+43ff8 6 529 4
+43ffe 6 529 4
+44004 4 529 4
+44008 2 529 4
+4400a 4 529 4
+4400e 6 529 4
+44014 6 529 4
+4401a 4 532 4
+4401e 1a 530 4
+FUNC 44038 268 0 google_breakpad::ExceptionHandler::GenerateDump
+44038 4 449 4
+4403c 2 122 57
+4403e 2 449 4
+44040 4 449 4
+44044 2 450 4
+44046 2 451 4
+44048 c 451 4
+44054 4 451 4
+44058 2 67 54
+4405a 6 176 102
+44060 8 90 54
+44068 2 67 54
+4406a 6 90 54
+44070 2 3454 97
+44072 4 122 54
+44076 1c 3454 97
+44092 4 3454 97
+44096 6 3454 97
+4409c 4 124 54
+440a0 4 459 4
+440a4 2 134 54
+440a6 4 458 4
+440aa 4 135 54
+440ae 2 136 54
+440b0 2 458 4
+440b2 a 462 4
+440bc 4 466 4
+440c0 4 462 4
+440c4 2 465 4
+440c6 2 466 4
+440c8 4 467 4
+440cc 4 469 4
+440d0 4 461 4
+440d4 2 467 4
+440d6 4 461 4
+440da 4 468 4
+440de 2 469 4
+440e0 4 475 4
+440e4 12 3761 97
+440f6 4 3761 97
+440fa 4 3761 97
+440fe a 481 4
+44108 6 482 4
+4410e 6 482 4
+44114 4 482 4
+44118 2 482 4
+4411a 4 482 4
+4411e 6 482 4
+44124 6 482 4
+4412a a 483 4
+44134 8 486 4
+4413c 2 2367 97
+4413e 4 2440 97
+44142 2 2365 97
+44144 2 2366 97
+44146 2 2368 97
+44148 2 2369 97
+4414a 36 2440 97
+44180 6 2445 97
+44186 4 2445 97
+4418a 4 2445 97
+4418e 6 493 4
+44194 8 494 4
+4419c 6 514 4
+441a2 a 514 4
+441ac 6 515 4
+441b2 8 516 4
+441ba 2 144 54
+441bc 4 144 54
+441c0 2 146 54
+441c2 2 3074 97
+441c4 2 145 54
+441c6 14 3074 97
+441da 4 3074 97
+441de 4 3074 97
+441e2 4 514 4
+441e6 8 499 4
+441ee 6 500 4
+441f4 1e 3272 97
+44212 4 3272 97
+44216 4 3272 97
+4421a 4 502 4
+4421e 6 502 4
+44224 4 3272 97
+44228 6 504 4
+4422e 6 505 4
+44234 4 507 4
+44238 a 509 4
+44242 6 510 4
+44248 6 510 4
+4424e 4 510 4
+44252 2 510 4
+44254 4 510 4
+44258 6 510 4
+4425e 6 510 4
+44264 c 511 4
+44270 4 514 4
+44274 4 514 4
+44278 28 518 4
+FUNC 442a0 a0 0 google_breakpad::ExceptionHandler::HandleSignal
+442a0 e 392 4
+442ae 2 397 4
+442b0 6 392 4
+442b6 6 392 4
+442bc 2 398 4
+442be 4 398 4
+442c2 6 400 4
+442c8 2 400 4
+442ca 4 400 4
+442ce 4 400 4
+442d2 c 405 4
+442de a 406 4
+442e8 c 407 4
+442f4 6 426 4
+442fa 2 427 4
+442fc 2 405 4
+442fe 2 426 4
+44300 2 427 4
+44302 a 432 4
+4430c 10 428 4
+4431c c 433 4
+44328 a 401 4
+44332 e 433 4
+FUNC 44340 22 0 google_breakpad::ExceptionHandler::HandleSignal
+44340 2 392 4
+44342 2 393 4
+44344 6 392 4
+4434a 2 393 4
+4434c 4 393 4
+44350 8 393 4
+44358 a 433 4
+FUNC 44364 134 0 google_breakpad::ExceptionHandler::SignalHandler
+44364 6 299 4
+4436a 2 301 4
+4436c 2 299 4
+4436e 2 301 4
+44370 4 299 4
+44374 4 301 4
+44378 c 314 4
+44384 2 315 4
+44386 6 314 4
+4438c 2 333 4
+4438e 4 334 4
+44392 4 333 4
+44396 2 334 4
+44398 6 192 144
+4439e c 333 4
+443aa a 333 4
+443b4 2 334 4
+443b6 2 334 4
+443b8 a 334 4
+443c2 6 333 4
+443c8 4 333 4
+443cc 8 113 100
+443d4 8 348 4
+443dc 4 350 4
+443e0 4 350 4
+443e4 6 355 4
+443ea 6 355 4
+443f0 2 110 4
+443f2 2 355 4
+443f4 a 110 4
+443fe 4 355 4
+44402 6 359 4
+44408 2 91 100
+4440a 2 74 100
+4440c 4 91 100
+44410 32 75 100
+44442 2 320 4
+44444 2 323 4
+44446 4 320 4
+4444a 2 321 4
+4444c 4 323 4
+44450 2 321 4
+44452 8 323 4
+4445a 8 113 100
+44462 a 328 4
+4446c 6 345 4
+44472 26 366 4
+FUNC 44498 74 0 google_breakpad::ExceptionHandler::WaitForContinueSignal
+44498 2 536 4
+4449a 2 536 4
+4449c 1c 3104 97
+444b8 4 3104 97
+444bc 4 3104 97
+444c0 4 539 4
+444c4 6 539 4
+444ca a 543 4
+444d4 6 544 4
+444da 6 544 4
+444e0 4 544 4
+444e4 2 544 4
+444e6 4 544 4
+444ea 6 544 4
+444f0 6 544 4
+444f6 a 545 4
+44500 c 547 4
+FUNC 4450c 4e 0 google_breakpad::ExceptionHandler::DoDump
+4450c 2 552 4
+4450e 6 552 4
+44514 2 553 4
+44516 8 552 4
+4451e 2 553 4
+44520 4 557 4
+44524 6 575 4
+4452a 4 557 4
+4452e 6 559 4
+44534 6 566 4
+4453a 2 559 4
+4453c e 566 4
+4454a c 574 4
+44556 4 575 4
+FUNC 4455a 1e 0 google_breakpad::ExceptionHandler::ThreadEntry
+4455a 2 379 4
+4455c 2 379 4
+4455e 6 384 4
+44564 10 387 4
+44574 4 388 4
+FUNC 44578 c0 0 google_breakpad::ExceptionHandler::WriteMinidump
+44578 e 593 4
+44586 2 593 4
+44588 4 594 4
+4458c 4 593 4
+44590 4 594 4
+44594 6 594 4
+4459a 6 600 4
+445a0 8 609 4
+445a8 6 612 4
+445ae 2 613 4
+445b0 12 3039 97
+445c2 4 3039 97
+445c6 4 3039 97
+445ca 12 3026 97
+445dc 4 3026 97
+445e0 8 3026 97
+445e8 6 646 4
+445ee 2 643 4
+445f0 4 646 4
+445f4 6 647 4
+445fa 2 656 4
+445fc 4 667 4
+44600 2 656 4
+44602 6 667 4
+44608 2 614 4
+4460a c 668 4
+44616 4 601 4
+4461a a 604 4
+44624 a 605 4
+4462e a 668 4
+FUNC 44638 a4 0 google_breakpad::ExceptionHandler::AddMappingInfo
+44638 c 674 4
+44644 6 674 4
+4464a 2 676 4
+4464c 2 677 4
+4464e 6 674 4
+44654 2 677 4
+44656 2 678 4
+44658 2 674 4
+4465a 4 679 4
+4465e 2 674 4
+44660 4 679 4
+44664 2 678 4
+44666 4 679 4
+4466a 2 680 4
+4466c 2 676 4
+4466e a 683 4
+44678 4 680 4
+4467c 4 683 4
+44680 18 684 4
+44698 8 306 106
+446a0 6 307 106
+446a6 2 119 108
+446a8 4 370 121
+446ac 2 119 108
+446ae a 119 108
+446b8 2 427 121
+446ba 2 428 121
+446bc 2 429 121
+446be 2 430 121
+446c0 6 686 4
+446c6 2 431 121
+446c8 14 686 4
+FUNC 446dc 50 0 google_breakpad::ExceptionHandler::RegisterAppMemory
+446dc 2 688 4
+446de 4 370 121
+446e2 2 89 121
+446e4 2 91 121
+446e6 2 144 121
+446e8 4 198 104
+446ec 6 198 104
+446f2 4 91 121
+446f6 2 198 104
+446f8 4 691 4
+446fc 8 306 106
+44704 2 697 4
+44706 2 698 4
+44708 6 307 106
+4470e 4 119 108
+44712 c 119 108
+4471e 2 427 121
+44720 2 428 121
+44722 2 429 121
+44724 2 430 121
+44726 2 431 121
+44728 4 700 4
+FUNC 4472c 34 0 google_breakpad::ExceptionHandler::UnregisterAppMemory
+4472c 2 89 121
+4472e 2 702 4
+44730 4 370 121
+44734 2 91 121
+44736 2 144 121
+44738 4 198 104
+4473c 6 198 104
+44742 4 91 121
+44746 2 198 104
+44748 4 705 4
+4474c 2 161 106
+4474e 2 519 121
+44750 2 520 121
+44752 2 522 121
+44754 2 523 121
+44756 2 708 4
+44758 4 161 106
+4475c 4 708 4
+FUNC 44760 184 0 google_breakpad::ExceptionHandler::~ExceptionHandler
+44760 4 230 4
+44764 2 231 4
+44766 2 230 4
+44768 6 231 4
+4476e a 233 4
+44778 4 115 104
+4477c 4 117 104
+44780 6 118 104
+44786 6 121 104
+4478c 4 119 104
+44790 6 124 104
+44796 6 122 104
+4479c 6 127 104
+447a2 8 125 104
+447aa 4 117 104
+447ae 12 131 104
+447c0 6 133 104
+447c6 2 134 104
+447c8 6 136 104
+447ce 2 137 104
+447d0 c 139 104
+447dc 4 143 104
+447e0 2 136 104
+447e2 6 580 144
+447e8 4 224 105
+447ec 4 224 105
+447f0 2 584 144
+447f2 2 200 144
+447f4 2 584 144
+447f6 2 235 4
+447f8 2 584 144
+447fa 2 235 4
+447fc 2 87 144
+447fe 4 88 144
+44802 4 161 106
+44806 6 135 124
+4480c 4 161 106
+44810 2 236 4
+44812 2 237 4
+44814 4 236 4
+44818 6 237 4
+4481e 8 166 4
+44826 c 170 4
+44832 c 175 4
+4483e 8 176 4
+44846 4 177 4
+4484a 2 181 4
+4484c 2 182 4
+4484e 2 181 4
+44850 8 182 4
+44858 a 187 4
+44862 8 188 4
+4486a 4 239 4
+4486e 2 67 120
+44870 8 241 4
+44878 4 67 120
+4487c 4 68 120
+44880 2 74 120
+44882 a 161 106
+4488c 6 67 120
+44892 4 68 120
+44896 2 74 120
+44898 8 135 124
+448a0 10 156 137
+448b0 4 98 57
+448b4 6 98 57
+448ba 2a 242 4
+FUNC 448e4 98 0 google_breakpad::ExceptionHandler::WriteMinidumpForChild
+448e4 6 715 4
+448ea 4 61 8
+448ee 4 715 4
+448f2 4 61 8
+448f6 2 715 4
+448f8 4 715 4
+448fc 2 61 8
+448fe 4 715 4
+44902 2 120 137
+44904 4 715 4
+44908 4 61 8
+4490c 2 715 4
+4490e c 61 8
+4491a 4 124 137
+4491e 2 120 137
+44920 2 481 106
+44922 4 124 137
+44926 4 101 108
+4492a 4 61 8
+4492e 2 101 108
+44930 2 718 4
+44932 6 61 8
+44938 4 718 4
+4493c a 721 4
+44946 4 719 4
+4494a 2 724 4
+4494c a 724 4
+44956 c 156 137
+44962 1a 725 4
+FUNC 4497c 50 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+4497c 2 41 7
+4497e 2 41 7
+44980 2 46 7
+44982 2 112 137
+44984 6 46 7
+4498a 2 41 7
+4498c 4 46 7
+44990 2 112 137
+44992 6 481 106
+44998 2 378 136
+4499a 6 379 136
+449a0 a 148 142
+449aa 2 101 108
+449ac 2 380 136
+449ae 2 101 108
+449b0 4 165 136
+449b4 2 120 137
+449b6 2 481 106
+449b8 8 124 137
+449c0 2 51 7
+449c2 2 101 108
+449c4 6 46 7
+449ca 2 51 7
+FUNC 449cc b0 0 google_breakpad::MinidumpDescriptor::UpdatePath
+449cc 8 70 7
+449d4 4 70 7
+449d8 2 75 7
+449da 4 70 7
+449de 2 75 7
+449e0 2 70 7
+449e2 a 75 7
+449ec c 75 7
+449f8 2 422 136
+449fa 2 80 7
+449fc 2 422 136
+449fe 6 232 145
+44a04 2 424 136
+44a06 2 80 7
+44a08 4 424 136
+44a0c 8 80 7
+44a14 2 80 7
+44a16 4 80 7
+44a1a a 80 7
+44a24 6 80 7
+44a2a 4 79 7
+44a2e a 80 7
+44a38 4 348 136
+44a3c a 349 136
+44a46 12 156 137
+44a58 2 81 7
+44a5a 2 82 7
+44a5c 2 81 7
+44a5e 1e 82 7
+FUNC 44a7c 48 0 google_breakpad::MinidumpDescriptor::operator=
+44a7c 2 54 7
+44a7e 2 57 7
+44a80 2 54 7
+44a82 2 57 7
+44a84 2 58 7
+44a86 2 59 7
+44a88 4 58 7
+44a8c 4 59 7
+44a90 2 348 136
+44a92 2 54 7
+44a94 2 348 136
+44a96 a 349 136
+44aa0 4 422 136
+44aa4 6 232 145
+44aaa 4 424 136
+44aae 4 61 7
+44ab2 2 63 7
+44ab4 2 64 7
+44ab6 2 63 7
+44ab8 4 64 7
+44abc 2 66 7
+44abe 2 68 7
+44ac0 2 66 7
+44ac2 2 68 7
+FUNC 44ac4 10 0 logger::write
+44ac4 2 42 9
+44ac6 2 40 9
+44ac8 c 42 9
+FUNC 44ad4 a 0 MicrodumpWriter::LogAppend
+44ad4 a 108 10
+FUNC 44ae0 30 0 MicrodumpWriter::LogAppend<unsigned char>
+44ae0 2 118 10
+44ae2 8 124 10
+44aea 2 123 10
+44aec 4 124 10
+44af0 2 113 10
+44af2 4 124 10
+44af6 2 125 10
+44af8 4 124 10
+44afc 4 125 10
+44b00 4 113 10
+44b04 c 127 10
+FUNC 44b10 4c 0 MicrodumpWriter::LogAppend<unsigned int>
+44b10 4 118 10
+44b14 2 124 10
+44b16 a 118 10
+44b20 2 123 10
+44b22 a 124 10
+44b2c 2 123 10
+44b2e 2 124 10
+44b30 2 123 10
+44b32 4 123 10
+44b36 2 125 10
+44b38 2 113 10
+44b3a 4 125 10
+44b3e 4 113 10
+44b42 1a 127 10
+FUNC 44b5c 2c 0 MicrodumpWriter::LogCommitLine
+44b5c 2 137 10
+44b5e 2 228 57
+44b60 2 137 10
+44b62 8 100 10
+44b6a 6 100 10
+44b70 4 139 10
+44b74 4 140 10
+44b78 10 139 10
+FUNC 44b88 16c 0 MicrodumpWriter::DumpModule
+44b88 a 291 10
+44b92 10 291 10
+44ba2 2 296 10
+44ba4 1a 298 10
+44bbe 8 304 10
+44bc6 12 310 10
+44bd8 2 312 10
+44bda 2 314 10
+44bdc 8 312 10
+44be4 2 314 10
+44be6 a 313 10
+44bf0 8 314 10
+44bf8 a 315 10
+44c02 8 316 10
+44c0a a 317 10
+44c14 8 318 10
+44c1c 8 319 10
+44c24 2 123 10
+44c26 2 124 10
+44c28 2 320 10
+44c2a a 124 10
+44c34 2 123 10
+44c36 2 124 10
+44c38 2 123 10
+44c3a 4 123 10
+44c3e 2 125 10
+44c40 4 113 10
+44c44 2 125 10
+44c46 4 113 10
+44c4a 2 123 10
+44c4c 2 124 10
+44c4e 2 321 10
+44c50 8 124 10
+44c58 2 123 10
+44c5a 2 124 10
+44c5c 2 123 10
+44c5e 4 123 10
+44c62 2 125 10
+44c64 4 113 10
+44c68 2 125 10
+44c6a 4 113 10
+44c6e 8 322 10
+44c76 8 323 10
+44c7e 8 324 10
+44c86 8 325 10
+44c8e 8 326 10
+44c96 8 327 10
+44c9e 8 328 10
+44ca6 8 329 10
+44cae a 330 10
+44cb8 8 113 10
+44cc0 6 332 10
+44cc6 2e 333 10
+FUNC 44cf4 444 0 google_breakpad::WriteMicrodump
+44cf4 12 375 10
+44d06 2 375 10
+44d08 2 376 10
+44d0a 2 375 10
+44d0c 4 376 10
+44d10 4 375 10
+44d14 6 376 10
+44d1a 2 378 10
+44d1c 8 379 10
+44d24 2 123 22
+44d26 2 72 10
+44d28 2 123 22
+44d2a 6 127 22
+44d30 6 130 22
+44d36 e 72 10
+44d44 2 73 10
+44d46 2 197 57
+44d48 2 73 10
+44d4a a 79 10
+44d54 4 389 10
+44d58 8 81 10
+44d60 4 388 10
+44d64 c 100 10
+44d70 6 100 10
+44d76 e 144 10
+44d84 6 146 10
+44d8a 2 149 10
+44d8c 2 146 10
+44d8e 2 170 10
+44d90 4 149 10
+44d94 2 159 10
+44d96 2 149 10
+44d98 4 170 10
+44d9c 2 159 10
+44d9e 4 170 10
+44da2 2 171 10
+44da4 2 172 10
+44da6 2 171 10
+44da8 2 172 10
+44daa 4 171 10
+44dae 2 159 10
+44db0 8 172 10
+44db8 8 173 10
+44dc0 8 174 10
+44dc8 a 175 10
+44dd2 8 176 10
+44dda 8 113 10
+44de2 8 178 10
+44dea a 113 10
+44df4 8 180 10
+44dfc a 113 10
+44e06 6 182 10
+44e0c 2 233 10
+44e0e 2 235 10
+44e10 a 192 144
+44e1a 6 267 10
+44e20 6 200 10
+44e26 6 202 10
+44e2c 6 221 10
+44e32 6 223 10
+44e38 c 235 10
+44e44 c 237 10
+44e50 6 238 10
+44e56 2 241 10
+44e58 4 238 10
+44e5c 2 241 10
+44e5e 2 238 10
+44e60 4 241 10
+44e64 8 248 10
+44e6c 2 249 10
+44e6e 6 194 10
+44e74 2 249 10
+44e76 12 194 10
+44e88 8 200 10
+44e90 8 201 10
+44e98 8 202 10
+44ea0 a 203 10
+44eaa 8 204 10
+44eb2 8 205 10
+44eba 6 206 10
+44ec0 6 213 10
+44ec6 2 75 54
+44ec8 4 76 54
+44ecc a 78 54
+44ed6 a 78 54
+44ee0 2 80 54
+44ee2 2 81 54
+44ee4 2 79 54
+44ee6 4 82 54
+44eea 4 80 54
+44eee 4 82 54
+44ef2 6 83 54
+44ef8 e 90 54
+44f06 2 3454 97
+44f08 4 122 54
+44f0c 1c 3454 97
+44f28 4 3454 97
+44f2c 6 3454 97
+44f32 4 124 54
+44f36 4 134 54
+44f3a 4 135 54
+44f3e 4 96 54
+44f42 4 136 54
+44f46 10 96 54
+44f56 4 97 54
+44f5a 2 98 54
+44f5c 8 98 54
+44f64 4 98 54
+44f68 4 100 54
+44f6c 1e 214 10
+44f8a 2 219 10
+44f8c 8 219 10
+44f94 8 221 10
+44f9c c 222 10
+44fa8 8 223 10
+44fb0 16 225 10
+44fc6 2 132 10
+44fc8 2 133 10
+44fca 2 132 10
+44fcc a 133 10
+44fd6 4 226 10
+44fda 6 219 10
+44fe0 2 190 10
+44fe2 a 253 10
+44fec 2 257 10
+44fee 4 253 10
+44ff2 8 257 10
+44ffa 2 259 10
+44ffc a 260 10
+45006 a 267 10
+45010 a 133 10
+4501a 6 132 10
+45020 6 269 10
+45026 8 235 10
+4502e 2 235 10
+45030 2 347 10
+45032 2 338 10
+45034 6 192 144
+4503a 6 338 10
+45040 4 339 10
+45044 4 342 10
+45048 4 340 10
+4504c 4 342 10
+45050 6 341 10
+45056 2 275 10
+45058 2 89 121
+4505a 4 275 10
+4505e 8 280 10
+45066 2 282 10
+45068 2 281 10
+4506a 2 282 10
+4506c 4 280 10
+45070 4 91 121
+45074 e 347 10
+45082 30 338 10
+450b2 2 89 121
+450b4 6 350 10
+450ba 2 353 10
+450bc 4 353 10
+450c0 e 353 10
+450ce 4 91 121
+450d2 4 91 10
+450d6 2 88 10
+450d8 c 100 10
+450e4 6 100 10
+450ea 8 93 10
+450f2 a 76 10
+450fc 4 203 57
+45100 6 203 57
+45106 2 380 10
+45108 10 42 24
+45118 20 391 10
+FUNC 45138 5a 0 google_breakpad::LinuxCoreDumper::BuildProcPath
+45138 4 57 18
+4513c 4 57 18
+45140 4 58 18
+45144 6 59 18
+4514a 4 58 18
+4514e 6 61 18
+45154 6 62 18
+4515a a 65 18
+45164 2 66 18
+45166 2 67 18
+45168 2 65 18
+4516a 2 67 18
+4516c c 70 18
+45178 2 71 18
+4517a 2 72 18
+4517c 2 71 18
+4517e a 72 18
+45188 4 73 18
+4518c 2 74 18
+4518e 4 75 18
+FUNC 45194 38 0 google_breakpad::LinuxCoreDumper::GetThreadInfoByIndex
+45194 2 90 18
+45196 4 192 144
+4519a 2 90 18
+4519c 8 192 144
+451a4 4 91 18
+451a8 c 94 18
+451b4 4 101 18
+451b8 2 110 18
+451ba 2 111 18
+451bc 2 110 18
+451be 2 111 18
+451c0 2 92 18
+451c2 a 112 18
+FUNC 451cc 22 0 google_breakpad::LinuxCoreDumper::CopyFromProcess
+451cc 2 78 18
+451ce 2 78 18
+451d0 6 83 18
+451d6 2 78 18
+451d8 6 83 18
+451de 4 86 18
+451e2 4 88 18
+451e6 8 86 18
+FUNC 451f0 40 0 std::priv::__ucopy<google_breakpad::ThreadInfo*, google_breakpad::ThreadInfo*, int>
+451f0 4 86 142
+451f4 4 82 142
+451f8 4 86 142
+451fc 4 82 142
+45200 4 86 142
+45204 4 86 142
+45208 4 139 108
+4520c a 139 108
+45216 6 86 142
+4521c 14 95 142
+FUNC 45230 50 0 google_breakpad::LinuxCoreDumper::LinuxCoreDumper
+45230 2 46 18
+45232 6 46 18
+45238 10 52 18
+45248 8 52 18
+45250 8 52 18
+45258 2 67 144
+4525a 4 52 18
+4525e 4 67 144
+45262 2 163 54
+45264 2 481 106
+45266 8 172 54
+4526e 2 666 144
+45270 2 667 144
+45272 4 76 143
+45276 2 668 144
+45278 8 54 18
+FUNC 45280 d0 0 std::priv::_Impl_vector<google_breakpad::ThreadInfo, google_breakpad::PageStdAllocator<google_breakpad::ThreadInfo> >::_M_insert_overflow_aux
+45280 4 81 143
+45284 2 192 144
+45286 2 81 143
+45288 a 192 144
+45292 2 173 144
+45294 6 81 143
+4529a 4 173 144
+4529e 4 81 143
+452a2 2 173 144
+452a4 8 41 143
+452ac a 175 144
+452b6 4 176 144
+452ba a 177 144
+452c4 e 172 54
+452d2 a 113 142
+452dc 4 93 143
+452e0 2 113 142
+452e2 2 93 143
+452e4 2 119 108
+452e6 8 119 108
+452ee 6 95 143
+452f4 4 314 142
+452f8 2 249 142
+452fa 4 314 142
+452fe 8 249 142
+45306 6 249 142
+4530c 2 139 108
+4530e a 139 108
+45318 8 249 142
+45320 6 98 143
+45326 c 113 142
+45332 2 104 143
+45334 4 666 144
+45338 2 667 144
+4533a 2 668 144
+4533c 14 105 143
+FUNC 45350 1f4 0 google_breakpad::LinuxCoreDumper::EnumerateThreads
+45350 12 126 18
+45362 4 127 18
+45366 4 126 18
+4536a 6 127 18
+45370 2 126 18
+45372 a 127 18
+4537c c 128 18
+45388 4 132 18
+4538c 8 132 18
+45394 a 133 18
+4539e c 134 18
+453aa a 138 18
+453b4 a 139 18
+453be 12 140 18
+453d0 2 139 18
+453d2 4 147 18
+453d6 4 148 18
+453da 4 188 18
+453de 8 146 18
+453e6 8 147 18
+453ee 8 148 18
+453f6 4 150 18
+453fa 8 150 18
+45402 8 150 18
+4540a 2 188 18
+4540c 2 186 18
+4540e 4 188 18
+45412 2 186 18
+45414 4 188 18
+45418 2 189 18
+4541a 2 202 18
+4541c 2 189 18
+4541e 2 190 18
+45420 6 202 18
+45426 2 190 18
+45428 4 202 18
+4542c 2 204 18
+4542e 4 205 18
+45432 4 206 18
+45436 8 380 144
+4543e 4 126 108
+45442 6 382 144
+45448 8 380 144
+45450 2 119 108
+45452 a 119 108
+4545c 6 382 144
+45462 2 208 18
+45464 12 244 18
+45476 a 145 18
+45480 10 248 18
+45490 10 151 18
+454a0 6 152 18
+454a6 4 177 18
+454aa 4 179 18
+454ae c 180 18
+454ba 6 192 144
+454c0 8 175 144
+454c8 6 176 144
+454ce e 177 144
+454dc a 172 54
+454e6 2 112 143
+454e8 2 172 54
+454ea 4 224 105
+454ee 6 224 105
+454f4 2 224 105
+454f6 4 481 105
+454fa 2 118 143
+454fc 4 481 105
+45500 2 667 144
+45502 4 666 144
+45506 4 668 144
+4550a 14 162 144
+4551e 26 248 18
+FUNC 45544 114 0 google_breakpad::::ElfFileSoName
+45544 8 193 21
+4554c 6 193 21
+45552 2 67 21
+45554 2 193 21
+45556 4 67 21
+4555a 4 193 21
+4555e 6 67 21
+45564 2 193 21
+45566 6 67 21
+4556c 2 194 21
+4556e 4 196 21
+45572 6 200 21
+45578 2 201 21
+4557a 2 200 21
+4557c 2 201 21
+4557e 2 208 21
+45580 6 207 21
+45586 2 210 21
+45588 6 207 21
+4558e 8 210 21
+45596 2 208 21
+45598 6 210 21
+4559e 2 211 21
+455a0 6 211 21
+455a6 2 213 21
+455a8 6 216 21
+455ae 10 217 21
+455be 8 146 21
+455c6 22 155 21
+455e8 2 154 21
+455ea 4 157 21
+455ee 16 163 21
+45604 6 162 21
+4560a 4 169 21
+4560e 4 168 21
+45612 a 170 21
+4561c 6 171 21
+45622 4 173 21
+45626 2 172 21
+45628 4 173 21
+4562c 2 178 21
+4562e 10 179 21
+4563e 4 170 21
+45642 16 217 21
+FUNC 45658 c4 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping
+45658 a 438 21
+45662 6 438 21
+45668 2 454 21
+4566a 2 438 21
+4566c 6 454 21
+45672 2 438 21
+45674 c 454 21
+45680 6 455 21
+45686 e 60 49
+45694 6 456 21
+4569a c 458 21
+456a6 16 3149 97
+456bc 2 466 21
+456be 16 3149 97
+456d4 4 3149 97
+456d8 6 3149 97
+456de 2 464 21
+456e0 a 465 21
+456ea 8 466 21
+456f2 a 471 21
+456fc 20 473 21
+FUNC 4571c 40 0 google_breakpad::LinuxDumper::~LinuxDumper
+4571c 2 88 21
+4571e a 88 21
+45728 2 144 54
+4572a 2 144 54
+4572c 4 146 54
+45730 2 145 54
+45732 14 3074 97
+45746 4 3074 97
+4574a 4 3074 97
+4574e 4 88 21
+45752 a 89 21
+FUNC 4575c 80 0 google_breakpad::LinuxDumper::GetMappingEffectiveNameAndPath
+4575c 4 227 21
+45760 4 227 21
+45764 6 228 21
+4576a 8 227 21
+45772 4 228 21
+45776 4 235 21
+4577a 4 235 21
+4577e a 236 21
+45788 2 238 21
+4578a 8 243 21
+45792 6 243 21
+45798 8 243 21
+457a0 c 244 21
+457ac 6 245 21
+457b2 4 255 21
+457b6 4 245 21
+457ba 8 251 21
+457c2 2 252 21
+457c4 2 252 21
+457c6 6 253 21
+457cc 4 255 21
+457d0 c 253 21
+FUNC 457dc b8 0 google_breakpad::LinuxDumper::ReadAuxv
+457dc 8 257 21
+457e4 6 257 21
+457ea 2 259 21
+457ec 2 257 21
+457ee c 259 21
+457fa 2 257 21
+457fc 6 259 21
+45802 18 3087 97
+4581a 4 3087 97
+4581e 4 3087 97
+45822 4 265 21
+45826 6 264 21
+4582c 1c 3104 97
+45848 4 3104 97
+4584c 6 3104 97
+45852 4 272 21
+45856 4 273 21
+4585a 2 272 21
+4585c 2 274 21
+4585e a 275 21
+45868 2 276 21
+4586a 6 275 21
+45870 6 279 21
+45876 2 280 21
+45878 1c 281 21
+FUNC 45894 24 0 google_breakpad::LinuxDumper::Init
+45894 2 91 21
+45896 2 91 21
+45898 6 92 21
+4589e 2 92 21
+458a0 6 92 21
+458a6 2 92 21
+458a8 2 92 21
+458aa 2 92 21
+458ac 4 93 21
+458b0 4 92 21
+458b4 4 93 21
+FUNC 458b8 2a 0 google_breakpad::LinuxDumper::FindMapping
+458b8 2 429 21
+458ba 2 426 21
+458bc 8 192 144
+458c4 4 429 21
+458c8 6 430 21
+458ce 4 431 21
+458d2 8 431 21
+458da 4 429 21
+458de 2 435 21
+458e0 2 436 21
+FUNC 458e4 38 0 google_breakpad::LinuxDumper::GetStackInfo
+458e4 2 402 21
+458e6 6 402 21
+458ec 4 176 102
+458f0 6 407 21
+458f6 6 412 21
+458fc 2 413 21
+458fe 2 416 21
+45900 2 418 21
+45902 2 416 21
+45904 2 418 21
+45906 a 420 21
+45910 2 422 21
+45912 2 420 21
+45914 2 421 21
+45916 6 423 21
+FUNC 4591c 34 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping
+4591c 2 438 21
+4591e 2 438 21
+45920 2 443 21
+45922 2 438 21
+45924 4 443 21
+45928 4 444 21
+4592c 2 447 21
+4592e 2 446 21
+45930 a 447 21
+4593a 6 446 21
+45940 10 473 21
+FUNC 45950 130 0 google_breakpad::LinuxDumper::ElfFileIdentifierForMapping
+45950 e 99 21
+4595e a 99 21
+45968 4 101 21
+4596c 2 99 21
+4596e 2 101 21
+45970 2 99 21
+45972 4 101 21
+45976 12 67 21
+45988 2 102 21
+4598a 4 103 21
+4598e c 106 21
+4599a 2 108 21
+4599c 12 3026 97
+459ae 4 3026 97
+459b2 8 3026 97
+459ba 4 108 21
+459be 4 109 21
+459c2 c 111 21
+459ce 12 114 21
+459e0 c 116 21
+459ec 6 120 21
+459f2 2 121 21
+459f4 2 120 21
+459f6 2 121 21
+459f8 4 126 21
+459fc e 125 21
+45a0a 4 127 21
+45a0e 4 126 21
+45a12 4 127 21
+45a16 2 129 21
+45a18 2 127 21
+45a1a c 129 21
+45a26 2 130 21
+45a28 4 131 21
+45a2c 6 130 21
+45a32 6 134 21
+45a38 4 135 21
+45a3c 6 135 21
+45a42 6 140 21
+45a48 10 141 21
+45a58 6 135 21
+45a5e 10 137 21
+45a6e 12 141 21
+FUNC 45a80 94 0 std::priv::_Impl_vector<void*, google_breakpad::PageStdAllocator<void*> >::_M_insert_overflow
+45a80 4 108 143
+45a84 2 108 143
+45a86 6 192 144
+45a8c 4 173 144
+45a90 2 108 143
+45a92 2 192 144
+45a94 4 173 144
+45a98 4 108 143
+45a9c 2 173 144
+45a9e 8 41 143
+45aa6 8 175 144
+45aae 6 176 144
+45ab4 e 177 144
+45ac2 e 172 54
+45ad0 e 112 143
+45ade 2 480 105
+45ae0 2 481 105
+45ae2 2 480 105
+45ae4 6 481 105
+45aea a 115 143
+45af4 a 116 143
+45afe 4 118 143
+45b02 4 666 144
+45b06 2 667 144
+45b08 c 668 144
+FUNC 45b14 98 0 google_breakpad::LinuxDumper::LinuxDumper
+45b14 2 75 21
+45b16 10 82 21
+45b26 4 176 102
+45b2a 2 67 54
+45b2c 2 75 21
+45b2e 2 67 54
+45b30 8 82 21
+45b38 6 67 54
+45b3e 4 67 144
+45b42 2 163 54
+45b44 2 481 106
+45b46 8 172 54
+45b4e 2 666 144
+45b50 2 667 144
+45b52 2 76 143
+45b54 2 668 144
+45b56 4 67 144
+45b5a 2 163 54
+45b5c 2 481 106
+45b5e 8 172 54
+45b66 2 666 144
+45b68 2 667 144
+45b6a 2 76 143
+45b6c 2 668 144
+45b6e 4 67 144
+45b72 2 163 54
+45b74 2 481 106
+45b76 8 172 54
+45b7e 4 76 143
+45b82 2 668 144
+45b84 2 173 143
+45b86 2 85 21
+45b88 2 172 54
+45b8a 2 666 144
+45b8c 2 667 144
+45b8e 4 85 21
+45b92 c 173 143
+45b9e e 86 21
+FUNC 45bac 374 0 google_breakpad::LinuxDumper::EnumerateMappings
+45bac 8 283 21
+45bb4 6 283 21
+45bba 2 285 21
+45bbc 2 283 21
+45bbe c 285 21
+45bca 2 283 21
+45bcc 6 285 21
+45bd2 6 3087 97
+45bd8 4 296 21
+45bdc 2 300 21
+45bde 2 296 21
+45be0 2 300 21
+45be2 14 3087 97
+45bf6 4 3087 97
+45bfa 6 3087 97
+45c00 4 304 21
+45c04 4 303 21
+45c08 4 305 21
+45c0c 6 208 54
+45c12 2 305 21
+45c14 4 208 54
+45c18 2 49 16
+45c1a 2 208 54
+45c1c 4 49 16
+45c20 2 70 16
+45c22 2 351 21
+45c24 4 49 16
+45c28 4 351 21
+45c2c 6 325 21
+45c32 2 103 16
+45c34 8 66 16
+45c3c 4 70 16
+45c40 8 66 16
+45c48 8 70 16
+45c50 2 70 16
+45c52 2 69 16
+45c54 6 69 16
+45c5a 4 71 16
+45c5e 2 70 16
+45c60 6 71 16
+45c66 8 78 16
+45c6e 8 86 16
+45c76 8 90 16
+45c7e 4 92 16
+45c82 4 93 16
+45c86 c 312 21
+45c92 2 313 21
+45c94 2 312 21
+45c96 6 313 21
+45c9c 8 314 21
+45ca4 2 315 21
+45ca6 2 314 21
+45ca8 4 315 21
+45cac 2 316 21
+45cae a 317 21
+45cb8 2 316 21
+45cba 4 317 21
+45cbe 6 318 21
+45cc4 c 323 21
+45cd0 4 322 21
+45cd4 a 323 21
+45cde 2 325 21
+45ce0 4 326 21
+45ce4 2 200 144
+45ce6 6 330 21
+45cec 2 344 21
+45cee 2 200 144
+45cf0 a 344 21
+45cfa 4 331 21
+45cfe 6 332 21
+45d04 6 333 21
+45d0a 6 333 21
+45d10 4 333 21
+45d14 2 333 21
+45d16 6 333 21
+45d1c 4 332 21
+45d20 a 208 54
+45d2a 4 357 21
+45d2e 6 358 21
+45d34 4 357 21
+45d38 4 358 21
+45d3c 8 359 21
+45d44 c 360 21
+45d50 4 361 21
+45d54 c 316 21
+45d60 2 363 21
+45d62 6 364 21
+45d68 2 365 21
+45d6a 2 364 21
+45d6c 2 365 21
+45d6e c 366 21
+45d7a 8 377 21
+45d82 4 374 21
+45d86 2 373 21
+45d88 2 374 21
+45d8a 4 373 21
+45d8e 4 377 21
+45d92 4 375 21
+45d96 2 200 144
+45d98 6 377 21
+45d9e 4 383 21
+45da2 a 390 21
+45dac 2 98 16
+45dae 2 3104 97
+45db0 2 98 16
+45db2 4 99 16
+45db6 12 3104 97
+45dc8 4 3104 97
+45dcc 6 3104 97
+45dd2 4 100 16
+45dd6 4 105 16
+45dda 2 103 16
+45ddc 6 105 16
+45de2 6 393 21
+45de8 a 395 21
+45df2 10 396 21
+45e02 6 334 21
+45e08 2 334 21
+45e0a 2 334 21
+45e0c 6 334 21
+45e12 4 333 21
+45e16 e 335 21
+45e24 4 345 21
+45e28 6 346 21
+45e2e 8 349 21
+45e36 a 346 21
+45e40 a 347 21
+45e4a 8 348 21
+45e52 a 351 21
+45e5c 6 349 21
+45e62 e 352 21
+45e70 a 380 144
+45e7a 2 126 108
+45e7c 8 382 144
+45e84 14 386 144
+45e98 2 192 144
+45e9a 2 380 21
+45e9c 2 192 144
+45e9e 2 380 21
+45ea0 2 640 144
+45ea2 2 380 21
+45ea4 4 222 148
+45ea8 2 640 144
+45eaa 4 641 144
+45eae 4 630 144
+45eb2 6 269 105
+45eb8 4 615 144
+45ebc a 172 143
+45ec6 a 173 143
+45ed0 12 176 143
+45ee2 8 192 144
+45eea c 381 21
+45ef6 6 381 21
+45efc 2 202 144
+45efe a 382 21
+45f08 18 396 21
+FUNC 45f20 24 0 sys_ptrace
+45f20 2 3097 97
+45f22 12 3097 97
+45f34 4 3097 97
+45f38 8 3097 97
+45f40 4 3097 97
+FUNC 45f44 52 0 google_breakpad::LinuxPtraceDumper::CopyFromProcess
+45f44 4 134 23
+45f48 2 136 23
+45f4a 2 134 23
+45f4c 2 135 23
+45f4e 4 134 23
+45f52 2 144 23
+45f54 2 135 23
+45f56 2 134 23
+45f58 4 135 23
+45f5c 4 141 23
+45f60 4 142 23
+45f64 c 143 23
+45f70 4 142 23
+45f74 4 143 23
+45f78 2 146 23
+45f7a 2 143 23
+45f7c 6 146 23
+45f82 6 144 23
+45f88 2 147 23
+45f8a 6 146 23
+45f90 6 149 23
+FUNC 45f98 78 0 google_breakpad::LinuxPtraceDumper::BuildProcPath
+45f98 4 112 23
+45f9c 4 112 23
+45fa0 4 113 23
+45fa4 4 114 23
+45fa8 4 113 23
+45fac 4 113 23
+45fb0 6 116 23
+45fb6 6 117 23
+45fbc e 120 23
+45fca 2 121 23
+45fcc 4 122 23
+45fd0 2 120 23
+45fd2 2 122 23
+45fd4 c 125 23
+45fe0 c 126 23
+45fec 4 127 23
+45ff0 2 128 23
+45ff2 2 127 23
+45ff4 a 128 23
+45ffe 2 129 23
+46000 2 130 23
+46002 4 129 23
+46006 a 131 23
+FUNC 46010 42 0 google_breakpad::LinuxPtraceDumper::ThreadsResume
+46010 2 295 23
+46012 2 295 23
+46014 c 296 23
+46020 6 192 144
+46026 6 299 23
+4602c e 101 23
+4603a 2 299 23
+4603c c 300 23
+46048 8 301 23
+46050 2 303 23
+FUNC 46054 1b0 0 google_breakpad::LinuxPtraceDumper::GetThreadInfoByIndex
+46054 10 155 23
+46064 2 155 23
+46066 4 192 144
+4606a 2 155 23
+4606c 2 192 144
+4606e 8 156 23
+46076 2 163 23
+46078 4 159 23
+4607c 12 163 23
+4608e 18 3087 97
+460a6 4 3087 97
+460aa 4 3087 97
+460ae 6 168 23
+460b4 4 167 23
+460b8 c 208 54
+460c4 2 49 16
+460c6 4 174 23
+460ca 2 208 54
+460cc 4 49 16
+460d0 2 70 16
+460d2 2 177 23
+460d4 2 49 16
+460d6 4 177 23
+460da 2 179 23
+460dc 2 174 23
+460de 2 179 23
+460e0 2 174 23
+460e2 2 179 23
+460e4 2 103 16
+460e6 8 66 16
+460ee 4 70 16
+460f2 8 66 16
+460fa 8 70 16
+46102 2 70 16
+46104 2 69 16
+46106 6 69 16
+4610c 8 71 16
+46114 6 78 16
+4611a 4 86 16
+4611e 6 90 16
+46124 4 92 16
+46128 4 93 16
+4612c c 177 23
+46138 4 178 23
+4613c c 179 23
+46148 c 180 23
+46154 4 118 16
+46158 4 117 16
+4615c a 118 16
+46166 2 98 16
+46168 2 3104 97
+4616a 2 98 16
+4616c 4 99 16
+46170 12 3104 97
+46182 4 3104 97
+46186 6 3104 97
+4618c 4 100 16
+46190 4 105 16
+46194 2 103 16
+46196 6 105 16
+4619c 6 185 23
+461a2 6 187 23
+461a8 8 187 23
+461b0 12 204 23
+461c2 14 208 23
+461d6 4 259 23
+461da 4 268 23
+461de 26 271 23
+FUNC 46204 20 0 google_breakpad::LinuxPtraceDumper::LinuxPtraceDumper
+46204 2 106 23
+46206 2 106 23
+46208 6 108 23
+4620e 2 109 23
+46210 c 108 23
+4621c 8 109 23
+FUNC 46224 a0 0 std::priv::_Impl_vector<int, google_breakpad::PageStdAllocator<int> >::_M_insert_overflow
+46224 4 108 143
+46228 2 108 143
+4622a 6 192 144
+46230 4 173 144
+46234 4 108 143
+46238 2 192 144
+4623a 4 173 144
+4623e 4 108 143
+46242 2 173 144
+46244 8 41 143
+4624c a 175 144
+46256 6 176 144
+4625c e 177 144
+4626a a 172 54
+46274 2 112 143
+46276 2 172 54
+46278 4 224 105
+4627c 6 224 105
+46282 2 224 105
+46284 4 172 54
+46288 2 480 105
+4628a 4 481 105
+4628e 2 480 105
+46290 6 481 105
+46296 a 115 143
+462a0 2 223 105
+462a2 4 224 105
+462a6 8 224 105
+462ae 2 224 105
+462b0 2 118 143
+462b2 4 666 144
+462b6 2 667 144
+462b8 c 668 144
+FUNC 462c4 164 0 google_breakpad::LinuxPtraceDumper::EnumerateThreads
+462c4 8 307 23
+462cc 6 307 23
+462d2 2 309 23
+462d4 2 307 23
+462d6 c 309 23
+462e2 2 307 23
+462e4 8 309 23
+462ec 1a 3087 97
+46306 4 3087 97
+4630a 4 3087 97
+4630e 6 314 23
+46314 4 313 23
+46318 c 208 54
+46324 2 51 14
+46326 2 208 54
+46328 4 319 23
+4632c 2 51 14
+4632e 2 322 23
+46330 2 51 14
+46332 4 322 23
+46336 2 323 23
+46338 4 63 14
+4633c 4 323 23
+46340 4 65 14
+46344 1a 3016 97
+4635e 4 3016 97
+46362 6 3016 97
+46368 4 68 14
+4636c 4 71 14
+46370 2 73 14
+46372 2 71 14
+46374 6 73 14
+4637a 4 77 14
+4637e 4 77 14
+46382 4 82 14
+46386 a 322 23
+46390 8 323 23
+46398 2 322 23
+4639a 6 324 23
+463a0 4 325 23
+463a4 4 324 23
+463a8 6 325 23
+463ae 4 326 23
+463b2 6 325 23
+463b8 6 87 14
+463be 2 93 14
+463c0 2 94 14
+463c2 2 93 14
+463c4 2 94 14
+463c6 2 93 14
+463c8 8 94 14
+463d0 6 334 23
+463d6 14 336 23
+463ea 8 380 144
+463f2 2 126 108
+463f4 8 382 144
+463fc 14 386 144
+46410 18 336 23
+FUNC 46428 be 0 std::priv::_Impl_vector<int, google_breakpad::PageStdAllocator<int> >::_M_fill_insert_aux
+46428 4 140 143
+4642c 2 140 143
+4642e 2 416 144
+46430 2 140 143
+46432 2 416 144
+46434 6 140 143
+4643a 2 416 144
+4643c 4 416 144
+46440 8 150 143
+46448 4 152 143
+4644c 6 153 143
+46452 4 107 142
+46456 c 106 142
+46462 2 154 143
+46464 4 255 105
+46468 2 154 143
+4646a 2 256 105
+4646c 2 154 143
+4646e 2 256 105
+46470 8 256 105
+46478 2 442 105
+4647a 4 442 105
+4647e 4 443 105
+46482 2 442 105
+46484 6 443 105
+4648a 4 158 143
+4648e 6 314 142
+46494 2 249 142
+46496 8 249 142
+4649e 2 249 142
+464a0 6 146 108
+464a6 2 107 142
+464a8 2 158 143
+464aa 2 107 142
+464ac 8 106 142
+464b4 6 160 143
+464ba 6 442 105
+464c0 4 443 105
+464c4 4 442 105
+464c8 6 443 105
+464ce a 146 143
+464d8 8 147 143
+464e0 6 163 143
+FUNC 464e6 fe 0 google_breakpad::LinuxPtraceDumper::ThreadsSuspend
+464e6 6 277 23
+464ec 4 278 23
+464f0 2 277 23
+464f2 6 278 23
+464f8 2 65 23
+464fa 8 192 144
+46502 4 280 23
+46506 4 281 23
+4650a 4 65 23
+4650e 2 66 23
+46510 2 65 23
+46512 6 66 23
+46518 4 202 144
+4651c 6 66 23
+46522 6 67 23
+46528 2 66 23
+4652a 1c 3272 97
+46546 4 3272 97
+4654a 4 3272 97
+4654e a 71 23
+46558 e 72 23
+46566 a 70 23
+46570 2 192 144
+46572 4 202 144
+46576 2 192 144
+46578 4 286 23
+4657c c 286 23
+46588 4 192 144
+4658c 2 287 23
+4658e 4 192 144
+46592 4 640 144
+46596 4 641 144
+4659a 4 630 144
+4659e 4 615 144
+465a2 2 172 143
+465a4 4 222 148
+465a8 c 172 143
+465b4 a 173 143
+465be e 176 143
+465cc 2 288 23
+465ce 4 280 23
+465d2 2 291 23
+465d4 6 292 23
+465da 4 291 23
+465de 6 293 23
+FUNC 465e4 24 0 sys_read
+465e4 2 3104 97
+465e6 12 3104 97
+465f8 4 3104 97
+465fc 8 3104 97
+46604 4 3104 97
+FUNC 46608 e4 0 MinidumpWriter::WriteOSInformation
+46608 a 1162 26
+46612 6 1162 26
+46618 2 1170 26
+4661a 2 1162 26
+4661c 4 1164 26
+46620 2 1162 26
+46622 2 1164 26
+46624 2 1170 26
+46626 2 1162 26
+46628 a 1170 26
+46632 4 1171 26
+46636 2 1174 26
+46638 2 1182 26
+4663a c 1174 26
+46646 1c 1182 26
+46662 2 1183 26
+46664 4 1175 26
+46668 a 1195 26
+46672 6 1184 26
+46678 6 1187 26
+4667e 6 1188 26
+46684 4 1191 26
+46688 6 1191 26
+4668e 14 1205 26
+466a2 6 1207 26
+466a8 2 1209 26
+466aa 2 1194 26
+466ac c 1195 26
+466b8 2 1196 26
+466ba c 1200 26
+466c6 4 1201 26
+466ca 4 1199 26
+466ce 1e 1210 26
+FUNC 466ec 36 0 MinidumpWriter::Init
+466ec 2 144 26
+466ee 2 144 26
+466f0 a 145 26
+466fa a 148 26
+46704 6 149 26
+4670a 8 150 26
+46712 2 153 26
+46714 4 154 26
+46718 6 153 26
+4671e 4 154 26
+FUNC 46722 2a 0 MinidumpWriter::HaveMappingInfo
+46722 2 462 26
+46724 2 463 26
+46726 2 89 121
+46728 4 463 26
+4672c 8 468 26
+46734 4 469 26
+46738 4 470 26
+4673c 4 468 26
+46740 4 91 121
+46744 4 474 26
+46748 2 471 26
+4674a 2 475 26
+FUNC 4674c 36 0 std::priv::__ucopy<MDMemoryDescriptor*, MDMemoryDescriptor*, int>
+4674c 2 86 142
+4674e 2 82 142
+46750 2 86 142
+46752 4 82 142
+46756 4 86 142
+4675a 6 86 142
+46760 2 139 108
+46762 8 139 108
+4676a 4 86 142
+4676e e 139 108
+4677c 6 95 142
+FUNC 46782 28 0 sys_open
+46782 4 3087 97
+46786 14 3087 97
+4679a 4 3087 97
+4679e 8 3087 97
+467a6 4 3087 97
+FUNC 467ac 128 0 MinidumpWriter::FillRawModule
+467ac 14 534 26
+467c0 c 534 26
+467cc 6 539 26
+467d2 4 534 26
+467d6 4 539 26
+467da 2 541 26
+467dc 4 548 26
+467e0 6 541 26
+467e6 8 542 26
+467ee 8 548 26
+467f6 2 552 26
+467f8 18 554 26
+46810 10 558 26
+46820 a 560 26
+4682a 12 566 26
+4683c 6 568 26
+46842 a 161 33
+4684c 4 569 26
+46850 4 570 26
+46854 2 568 26
+46856 4 570 26
+4685a 6 161 33
+46860 6 570 26
+46866 4 571 26
+4686a c 574 26
+46876 c 186 33
+46882 8 176 33
+4688a 2 580 26
+4688c 2 176 33
+4688e c 577 26
+4689a 6 580 26
+468a0 2 580 26
+468a2 2 580 26
+468a4 8 580 26
+468ac 4 580 26
+468b0 4 582 26
+468b4 20 584 26
+FUNC 468d4 26 0 MinidumpWriter::~MinidumpWriter
+468d4 2 156 26
+468d6 6 159 26
+468dc 2 156 26
+468de 4 159 26
+468e2 6 160 26
+468e8 8 161 26
+468f0 6 156 26
+468f6 4 162 26
+FUNC 468fc 340 0 MinidumpWriter::WriteSystemInfoStream
+468fc 4 628 26
+46900 2 161 33
+46902 4 46 31
+46906 4 628 26
+4690a 2 161 33
+4690c 4 629 26
+46910 2 161 33
+46912 2 212 33
+46914 2 161 33
+46916 2 212 33
+46918 4 628 26
+4691c 4 212 33
+46920 4 161 33
+46924 4 212 33
+46928 4 47 31
+4692c 4 46 31
+46930 4 47 31
+46934 8 630 26
+4693c a 632 26
+46946 4 896 26
+4694a 2 634 26
+4694c 2 896 26
+4694e 2 634 26
+46950 2 896 26
+46952 2 176 33
+46954 4 634 26
+46958 8 176 33
+46960 2 896 26
+46962 8 635 26
+4696a c 896 26
+46976 10 928 26
+46986 4 935 26
+4698a 2 947 26
+4698c a 51 12
+46996 2 947 26
+46998 4 946 26
+4699c 2 945 26
+4699e 2 948 26
+469a0 2 949 26
+469a2 e 51 12
+469b0 8 959 26
+469b8 6 960 26
+469be 8 961 26
+469c6 6 962 26
+469cc 8 964 26
+469d4 6 965 26
+469da 8 966 26
+469e2 6 967 26
+469e8 e 115 12
+469f6 2 114 12
+469f8 8 114 12
+46a00 8 122 12
+46a08 4 121 12
+46a0c 4 121 12
+46a10 2 122 12
+46a12 8 121 12
+46a1a 2 973 26
+46a1c 8 983 26
+46a24 a 984 26
+46a2e 2 67 54
+46a30 4 176 102
+46a34 2 67 54
+46a36 6 208 54
+46a3c 8 67 54
+46a44 4 208 54
+46a48 2 49 16
+46a4a 2 208 54
+46a4c 2 49 16
+46a4e 8 48 29
+46a56 2 1026 26
+46a58 2 49 16
+46a5a 4 1026 26
+46a5e 2 1061 26
+46a60 2 49 16
+46a62 4 1061 26
+46a66 1a 995 26
+46a80 e 1000 26
+46a8e 6 1002 26
+46a94 8 1005 26
+46a9c 8 1005 26
+46aa4 8 1006 26
+46aac 4 1007 26
+46ab0 2 1008 26
+46ab2 2 1007 26
+46ab4 2 1008 26
+46ab6 2 1007 26
+46ab8 6 1008 26
+46abe 4 1010 26
+46ac2 4 1012 26
+46ac6 e 1015 26
+46ad4 6 1016 26
+46ada 8 1018 26
+46ae2 4 996 26
+46ae6 c 1026 26
+46af2 c 118 29
+46afe 8 1034 26
+46b06 8 1034 26
+46b0e 6 1034 26
+46b14 8 1038 26
+46b1c 8 1038 26
+46b24 e 1061 26
+46b32 4 117 29
+46b36 4 118 29
+46b3a 6 1066 26
+46b40 8 1069 26
+46b48 4 1070 26
+46b4c c 1072 26
+46b58 6 1073 26
+46b5e 6 1075 26
+46b64 2 1076 26
+46b66 6 1075 26
+46b6c 2 1078 26
+46b6e 12 1083 26
+46b80 a 1084 26
+46b8a 2 1083 26
+46b8c 12 1085 26
+46b9e 2 1078 26
+46ba0 4 1078 26
+46ba4 6 1078 26
+46baa 2 1092 26
+46bac 2 144 54
+46bae 4 1092 26
+46bb2 2 144 54
+46bb4 2 144 54
+46bb6 4 146 54
+46bba 2 145 54
+46bbc 14 3074 97
+46bd0 4 3074 97
+46bd4 4 3074 97
+46bd8 4 1078 26
+46bdc 8 638 26
+46be4 6 216 33
+46bea 12 92 31
+46bfc 6 1040 26
+46c02 2 1041 26
+46c04 6 1042 26
+46c0a 2 1041 26
+46c0c 4 1042 26
+46c10 6 1043 26
+46c16 26 641 26
+FUNC 46c3c 12 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex
+46c3c 2 76 31
+46c3e 2 72 31
+46c40 6 76 31
+46c46 4 77 31
+46c4a 4 76 31
+FUNC 46c4e 1e 0 google_breakpad::TypedMDRVA<MDRawContextARM>::~TypedMDRVA
+46c4e 2 214 33
+46c50 4 216 33
+46c54 2 214 33
+46c56 4 216 33
+46c5a e 92 31
+46c68 4 218 33
+FUNC 46c6c 14 0 google_breakpad::TypedMDRVA<MDString>::CopyIndexAfterObject
+46c6c 2 80 31
+46c6e a 87 31
+46c78 4 88 31
+46c7c 4 87 31
+FUNC 46c6c 14 0 google_breakpad::TypedMDRVA<unsigned int>::CopyIndexAfterObject
+46c6c 2 80 31
+46c6e a 87 31
+46c78 4 88 31
+46c7c 4 87 31
+FUNC 46c80 1a 0 google_breakpad::TypedMDRVA<MDRawLinkMap>::~TypedMDRVA
+46c80 2 214 33
+46c82 2 216 33
+46c84 2 214 33
+46c86 4 216 33
+46c8a c 92 31
+46c96 4 218 33
+FUNC 46c9c 5c 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::reserve
+46c9c 4 62 143
+46ca0 4 199 144
+46ca4 2 62 143
+46ca6 2 199 144
+46ca8 6 63 143
+46cae 6 64 143
+46cb4 8 41 143
+46cbc a 192 144
+46cc6 4 172 54
+46cca 2 70 143
+46ccc 6 172 54
+46cd2 c 113 142
+46cde 6 172 54
+46ce4 6 76 143
+46cea 2 666 144
+46cec 2 667 144
+46cee a 668 144
+FUNC 46cf8 ac 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::_M_insert_overflow_aux
+46cf8 4 81 143
+46cfc 2 81 143
+46cfe 6 192 144
+46d04 4 173 144
+46d08 2 81 143
+46d0a 2 192 144
+46d0c 4 173 144
+46d10 4 81 143
+46d14 2 173 144
+46d16 8 41 143
+46d1e 8 175 144
+46d26 6 176 144
+46d2c e 177 144
+46d3a c 172 54
+46d46 a 113 142
+46d50 2 93 143
+46d52 2 113 142
+46d54 2 93 143
+46d56 2 119 108
+46d58 8 119 108
+46d60 6 95 143
+46d66 6 314 142
+46d6c 2 249 142
+46d6e 4 249 142
+46d72 2 139 108
+46d74 8 139 108
+46d7c 6 249 142
+46d82 6 98 143
+46d88 c 113 142
+46d94 4 667 144
+46d98 2 104 143
+46d9a a 668 144
+FUNC 46da4 32 0 std::priv::_Impl_vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::push_back
+46da4 2 376 144
+46da6 4 380 144
+46daa 2 376 144
+46dac 2 380 144
+46dae 4 376 144
+46db2 2 380 144
+46db4 2 119 108
+46db6 6 119 108
+46dbc 8 382 144
+46dc4 e 162 144
+46dd2 4 388 144
+FUNC 46dd6 c2 0 MinidumpWriter::FillThreadStack
+46dd6 4 256 26
+46dda 4 258 26
+46dde 4 256 26
+46de2 4 256 26
+46de6 4 258 26
+46dea 4 256 26
+46dee 10 261 26
+46dfe 4 262 26
+46e02 4 161 33
+46e06 2 263 26
+46e08 6 161 33
+46e0e 2 263 26
+46e10 4 263 26
+46e14 4 265 26
+46e18 12 267 26
+46e2a 2 100 22
+46e2c 8 772 26
+46e34 2 269 26
+46e36 2 772 26
+46e38 12 271 26
+46e4a c 186 33
+46e56 2 274 26
+46e58 2 275 26
+46e5a 6 274 26
+46e60 8 176 33
+46e68 c 275 26
+46e74 e 173 148
+46e82 2 282 26
+46e84 6 278 26
+46e8a 4 279 26
+46e8e 2 280 26
+46e90 8 283 26
+FUNC 46e98 388 0 MinidumpWriter::WriteThreadListStream
+46e98 8 286 26
+46ea0 2 287 26
+46ea2 e 286 26
+46eb0 2 286 26
+46eb2 4 192 144
+46eb6 2 286 26
+46eb8 6 192 144
+46ebe 6 289 26
+46ec4 4 161 33
+46ec8 2 68 31
+46eca 4 161 33
+46ece 2 67 31
+46ed0 2 161 33
+46ed2 2 212 33
+46ed4 2 68 31
+46ed6 2 161 33
+46ed8 2 68 31
+46eda 2 286 26
+46edc 4 68 31
+46ee0 2 67 31
+46ee2 8 68 31
+46eea 6 290 26
+46ef0 2 293 26
+46ef2 2 176 33
+46ef4 4 293 26
+46ef8 8 176 33
+46f00 8 294 26
+46f08 2 304 26
+46f0a 2 296 26
+46f0c 2 304 26
+46f0e 2 296 26
+46f10 4 304 26
+46f14 a 308 26
+46f1e e 310 26
+46f2c 4 303 26
+46f30 2 313 26
+46f32 2 303 26
+46f34 2 315 26
+46f36 6 313 26
+46f3c a 315 26
+46f46 2 316 26
+46f48 4 203 144
+46f4c 2 316 26
+46f4e 2 323 26
+46f50 4 316 26
+46f54 2 323 26
+46f56 2 316 26
+46f58 2 323 26
+46f5a 4 322 26
+46f5e 6 324 26
+46f64 8 323 26
+46f6c e 388 26
+46f7a 6 393 26
+46f80 a 394 26
+46f8a 12 396 26
+46f9c 6 395 26
+46fa2 6 216 33
+46fa8 c 92 31
+46fb4 12 422 26
+46fc6 6 392 26
+46fcc 2 161 33
+46fce 4 212 33
+46fd2 4 161 33
+46fd6 2 212 33
+46fd8 4 161 33
+46fdc 6 212 33
+46fe2 2 161 33
+46fe4 4 212 33
+46fe8 2 46 31
+46fea 2 161 33
+46fec 6 47 31
+46ff2 4 46 31
+46ff6 4 47 31
+46ffa 2 400 26
+46ffc 8 401 26
+47004 c 402 26
+47010 8 403 26
+47018 6 404 26
+4701e 8 405 26
+47026 10 176 33
+47036 a 406 26
+47040 e 407 26
+4704e 4 176 33
+47052 4 408 26
+47056 4 176 33
+4705a 6 408 26
+47060 a 409 26
+4706a a 413 26
+47074 4 123 22
+47078 6 415 26
+4707e c 418 26
+4708a 4 313 26
+4708e 6 326 26
+47094 2 327 26
+47096 2 326 26
+47098 14 327 26
+470ac a 332 26
+470b6 2 338 26
+470b8 2 332 26
+470ba 8 192 144
+470c2 2 338 26
+470c4 4 192 144
+470c8 4 338 26
+470cc 4 340 26
+470d0 4 339 26
+470d4 c 340 26
+470e0 6 341 26
+470e6 2 340 26
+470e8 2 341 26
+470ea 6 340 26
+470f0 14 347 26
+47104 6 350 26
+4710a c 352 26
+47116 c 161 33
+47122 2 359 26
+47124 6 161 33
+4712a 2 352 26
+4712c 4 161 33
+47130 a 359 26
+4713a 2 100 22
+4713c a 772 26
+47146 14 367 26
+4715a e 186 33
+47168 e 176 33
+47176 a 369 26
+47180 c 173 148
+4718c 4 338 26
+47190 8 161 33
+47198 4 212 33
+4719c 4 161 33
+471a0 4 212 33
+471a4 2 161 33
+471a6 8 212 33
+471ae 2 46 31
+471b0 6 47 31
+471b6 4 46 31
+471ba 4 47 31
+471be 6 374 26
+471c4 c 376 26
+471d0 8 380 26
+471d8 4 382 26
+471dc 8 383 26
+471e4 12 176 33
+471f6 a 384 26
+47200 4 385 26
+47204 8 176 33
+4720c 6 385 26
+47212 e 422 26
+FUNC 47220 8a 0 MinidumpWriter::WriteAppMemory
+47220 6 425 26
+47226 4 161 33
+4722a 2 425 26
+4722c 2 89 121
+4722e 4 434 26
+47232 2 435 26
+47234 6 426 26
+4723a 2 100 22
+4723c a 430 26
+47246 2 432 26
+47248 2 432 26
+4724a 2 432 26
+4724c e 432 26
+4725a 2 161 33
+4725c 4 435 26
+47260 8 161 33
+47268 4 435 26
+4726c 2 435 26
+4726e c 186 33
+4727a 6 440 26
+47280 8 176 33
+47288 c 441 26
+47294 a 173 148
+4729e 4 91 121
+472a2 2 445 26
+472a4 6 446 26
+FUNC 472aa b0 0 std::priv::_Impl_vector<char, google_breakpad::PageStdAllocator<char> >::_M_fill_insert_aux
+472aa 6 140 143
+472b0 2 416 144
+472b2 2 140 143
+472b4 2 416 144
+472b6 8 140 143
+472be 2 416 144
+472c0 4 416 144
+472c4 2 150 143
+472c6 4 152 143
+472ca 2 153 143
+472cc 4 107 142
+472d0 a 106 142
+472da 4 154 143
+472de 2 255 105
+472e0 2 154 143
+472e2 2 256 105
+472e4 4 154 143
+472e8 2 256 105
+472ea 8 256 105
+472f2 a 471 105
+472fc 2 158 143
+472fe a 314 142
+47308 8 249 142
+47310 6 146 108
+47316 2 107 142
+47318 4 158 143
+4731c 2 107 142
+4731e 8 106 142
+47326 4 471 105
+4732a a 160 143
+47334 4 471 105
+47338 6 163 143
+4733e 4 471 105
+47342 a 146 143
+4734c 8 147 143
+47354 6 163 143
+FUNC 4735c ac 0 std::priv::_Impl_vector<char, google_breakpad::PageStdAllocator<char> >::resize
+4735c 4 636 144
+47360 2 636 144
+47362 8 192 144
+4736a 2 640 144
+4736c 4 636 144
+47370 2 640 144
+47372 2 641 144
+47374 4 630 144
+47378 4 615 144
+4737c 4 171 143
+47380 a 172 143
+4738a 10 173 143
+4739a 6 173 144
+473a0 8 41 143
+473a8 8 175 144
+473b0 8 177 144
+473b8 8 172 54
+473c0 2 112 143
+473c2 2 172 54
+473c4 6 224 105
+473ca 6 224 105
+473d0 2 224 105
+473d2 6 471 105
+473d8 2 503 105
+473da 4 471 105
+473de 2 223 105
+473e0 2 224 105
+473e2 6 224 105
+473e8 8 224 105
+473f0 2 224 105
+473f2 2 118 143
+473f4 4 666 144
+473f8 2 667 144
+473fa 2 668 144
+473fc c 644 144
+FUNC 47408 800 0 MinidumpWriter::Dump
+47408 6 164 26
+4740e 2 161 33
+47410 e 164 26
+4741e 2 161 33
+47420 2 164 26
+47422 4 212 33
+47426 4 169 26
+4742a 2 161 33
+4742c 4 212 33
+47430 2 164 26
+47432 6 161 33
+47438 2 212 33
+4743a 2 169 26
+4743c 4 212 33
+47440 8 161 33
+47448 2 46 31
+4744a 2 161 33
+4744c 4 47 31
+47450 8 212 33
+47458 2 46 31
+4745a 6 47 31
+47460 2 171 26
+47462 6 172 26
+47468 2 59 31
+4746a 4 60 31
+4746e 2 59 31
+47470 4 60 31
+47474 4 173 26
+47478 a 175 26
+47482 2 177 26
+47484 2 179 26
+47486 2 177 26
+47488 6 178 26
+4748e 4 179 26
+47492 4 180 26
+47496 2 181 26
+47498 2 179 26
+4749a 2 181 26
+4749c 10 186 26
+474ac a 188 26
+474b6 4 482 26
+474ba 4 483 26
+474be 8 192 144
+474c6 2 89 121
+474c8 4 319 119
+474cc 2 91 121
+474ce 4 320 119
+474d2 8 485 26
+474da 4 485 26
+474de 6 192 144
+474e4 6 485 26
+474ea 4 486 26
+474ee 4 449 26
+474f2 4 449 26
+474f6 4 452 26
+474fa 8 452 26
+47502 6 487 26
+47508 2 487 26
+4750a 2 488 26
+4750c 6 485 26
+47512 10 161 33
+47522 2 212 33
+47524 2 492 26
+47526 2 68 31
+47528 2 67 31
+4752a 2 68 31
+4752c 2 67 31
+4752e 6 68 31
+47534 2 493 26
+47536 2 502 26
+47538 4 508 26
+4753c 2 176 33
+4753e 2 502 26
+47540 8 176 33
+47548 a 503 26
+47552 2 192 144
+47554 2 504 26
+47556 e 192 144
+47564 4 507 26
+47568 6 514 26
+4756e 4 494 26
+47572 2 46 31
+47574 2 47 31
+47576 8 46 31
+4757e 6 509 26
+47584 6 449 26
+4758a 4 508 26
+4758e 8 508 26
+47596 6 449 26
+4759c 8 452 26
+475a4 12 452 26
+475b6 4 523 26
+475ba 4 89 121
+475be 4 525 26
+475c2 8 519 26
+475ca 2 523 26
+475cc 4 523 26
+475d0 12 523 26
+475e2 2 523 26
+475e4 4 524 26
+475e8 12 525 26
+475fa 6 91 121
+47600 6 216 33
+47606 c 92 31
+47612 6 190 26
+47618 a 192 26
+47622 e 194 26
+47630 a 161 33
+4763a 4 192 144
+4763e 6 161 33
+47644 2 212 33
+47646 6 192 144
+4764c 4 588 26
+47650 2 67 31
+47652 2 68 31
+47654 2 67 31
+47656 6 68 31
+4765c 2 589 26
+4765e 2 599 26
+47660 2 176 33
+47662 2 599 26
+47664 8 176 33
+4766c a 600 26
+47676 8 192 144
+4767e 4 604 26
+47682 4 192 144
+47686 4 602 26
+4768a 4 591 26
+4768e 2 46 31
+47690 2 47 31
+47692 2 46 31
+47694 4 47 31
+47698 a 192 144
+476a2 6 604 26
+476a8 e 606 26
+476b6 e 604 26
+476c4 6 216 33
+476ca c 92 31
+476d6 6 197 26
+476dc 2 161 33
+476de a 199 26
+476e8 2 161 33
+476ea 4 212 33
+476ee 6 161 33
+476f4 2 212 33
+476f6 2 161 33
+476f8 2 212 33
+476fa 2 161 33
+476fc 6 212 33
+47702 2 46 31
+47704 4 47 31
+47708 4 46 31
+4770c 4 47 31
+47710 4 613 26
+47714 a 615 26
+4771e 2 617 26
+47720 2 176 33
+47722 2 617 26
+47724 8 176 33
+4772c e 618 26
+4773a 4 620 26
+4773e 4 621 26
+47742 6 622 26
+47748 e 623 26
+47756 8 216 33
+4775e c 92 31
+4776a 8 201 26
+47772 a 203 26
+4777c 10 205 26
+4778c a 207 26
+47796 2 210 26
+47798 2 209 26
+4779a 8 210 26
+477a2 2 209 26
+477a4 6 210 26
+477aa 2 780 26
+477ac 2 781 26
+477ae 2 782 26
+477b0 a 212 26
+477ba 2 214 26
+477bc 2 215 26
+477be 6 214 26
+477c4 c 215 26
+477d0 2 215 26
+477d2 2 780 26
+477d4 2 781 26
+477d6 2 782 26
+477d8 a 217 26
+477e2 2 220 26
+477e4 2 219 26
+477e6 6 220 26
+477ec 2 219 26
+477ee 6 220 26
+477f4 2 780 26
+477f6 2 781 26
+477f8 2 782 26
+477fa a 222 26
+47804 2 224 26
+47806 2 225 26
+47808 6 224 26
+4780e c 225 26
+4781a 2 225 26
+4781c 2 780 26
+4781e 2 781 26
+47820 2 782 26
+47822 a 227 26
+4782c 2 229 26
+4782e 2 230 26
+47830 6 229 26
+47836 c 230 26
+47842 2 230 26
+47844 2 780 26
+47846 2 781 26
+47848 2 782 26
+4784a a 232 26
+47854 2 234 26
+47856 2 235 26
+47858 6 234 26
+4785e c 235 26
+4786a 2 235 26
+4786c 2 780 26
+4786e 2 781 26
+47870 2 782 26
+47872 a 237 26
+4787c 2 239 26
+4787e 2 240 26
+47880 6 239 26
+47886 c 240 26
+47892 2 240 26
+47894 2 780 26
+47896 2 781 26
+47898 2 782 26
+4789a e 242 26
+478a8 6 244 26
+478ae 2 646 26
+478b0 4 644 26
+478b4 6 647 26
+478ba 6 647 26
+478c0 4 654 26
+478c4 4 657 26
+478c8 8 651 26
+478d0 2 657 26
+478d2 4 655 26
+478d6 4 657 26
+478da 2 657 26
+478dc 2 657 26
+478de e 657 26
+478ec 6 660 26
+478f2 4 660 26
+478f6 6 661 26
+478fc 2 663 26
+478fe 6 664 26
+47904 6 655 26
+4790a 8 667 26
+47912 6 670 26
+47918 2 676 26
+4791a 4 682 26
+4791e 2 675 26
+47920 2 682 26
+47922 4 682 26
+47926 2 682 26
+47928 2 682 26
+4792a 6 682 26
+47930 4 680 26
+47934 8 682 26
+4793c 6 683 26
+47942 4 684 26
+47946 4 680 26
+4794a 4 686 26
+4794e 2 703 26
+47950 4 703 26
+47954 4 703 26
+47958 2 703 26
+4795a e 703 26
+47968 4 704 26
+4796c 2 706 26
+4796e 6 704 26
+47974 4 706 26
+47978 2 706 26
+4797a 8 706 26
+47982 6 706 26
+47988 2 708 26
+4798a 8 707 26
+47992 8 711 26
+4799a 6 712 26
+479a0 2 161 33
+479a2 2 60 31
+479a4 c 161 33
+479b0 2 59 31
+479b2 4 60 31
+479b6 c 212 33
+479c2 2 59 31
+479c4 4 60 31
+479c8 4 716 26
+479cc 2 176 33
+479ce 2 722 26
+479d0 2 176 33
+479d2 2 724 26
+479d4 4 726 26
+479d8 4 722 26
+479dc 2 724 26
+479de 4 724 26
+479e2 2 724 26
+479e4 2 724 26
+479e6 c 724 26
+479f2 8 726 26
+479fa 2 725 26
+479fc 4 726 26
+47a00 4 727 26
+47a04 4 729 26
+47a08 6 729 26
+47a0e c 729 26
+47a1a 14 732 26
+47a2e 8 735 26
+47a36 2 736 26
+47a38 2 76 31
+47a3a 2 736 26
+47a3c 2 737 26
+47a3e 2 76 31
+47a40 2 737 26
+47a42 e 76 31
+47a50 48 739 26
+47a98 a 717 26
+47aa2 6 161 33
+47aa8 4 212 33
+47aac 6 161 33
+47ab2 6 212 33
+47ab8 6 161 33
+47abe 4 212 33
+47ac2 2 67 31
+47ac4 2 161 33
+47ac6 6 68 31
+47acc 2 67 31
+47ace 4 68 31
+47ad2 6 744 26
+47ad8 a 746 26
+47ae2 2 747 26
+47ae4 2 176 33
+47ae6 2 747 26
+47ae8 2 176 33
+47aea 2 752 26
+47aec 4 176 33
+47af0 2 67 144
+47af2 2 176 33
+47af4 2 750 26
+47af6 a 748 26
+47b00 2 750 26
+47b02 2 754 26
+47b04 2 751 26
+47b06 4 100 22
+47b0a 2 751 26
+47b0c 2 754 26
+47b0e 2 753 26
+47b10 2 755 26
+47b12 2 100 22
+47b14 2 753 26
+47b16 2 755 26
+47b18 8 67 144
+47b20 2 163 54
+47b22 4 481 106
+47b26 2 63 143
+47b28 6 172 54
+47b2e 2 666 144
+47b30 2 667 144
+47b32 2 76 143
+47b34 2 668 144
+47b36 4 760 26
+47b3a 4 222 148
+47b3e 2 760 26
+47b40 4 222 148
+47b44 6 762 26
+47b4a c 762 26
+47b56 e 87 31
+47b64 6 216 33
+47b6a c 92 31
+47b76 2 245 26
+47b78 2 780 26
+47b7a 2 781 26
+47b7c 2 782 26
+47b7e a 247 26
+47b88 a 252 26
+47b92 6 216 33
+47b98 c 92 31
+47ba4 6 216 33
+47baa c 92 31
+47bb6 10 254 26
+47bc6 8 510 26
+47bce 6 510 26
+47bd4 18 514 26
+47bec 14 516 26
+47c00 8 254 26
+FUNC 47c08 a8 0 WriteMinidumpImpl
+47c08 6 1250 26
+47c0e 2 1250 26
+47c10 2 1251 26
+47c12 4 1250 26
+47c16 4 1251 26
+47c1a 2 1250 26
+47c1c 4 1251 26
+47c20 2 1253 26
+47c22 8 1254 26
+47c2a 4 123 22
+47c2e 4 127 22
+47c32 6 130 22
+47c38 8 138 26
+47c40 2 138 26
+47c42 10 138 26
+47c52 2 100 22
+47c54 2 153 148
+47c56 4 100 22
+47c5a 2 67 144
+47c5c 2 163 54
+47c5e 2 153 148
+47c60 4 67 144
+47c64 2 481 106
+47c66 4 153 148
+47c6a 8 138 26
+47c72 2 1266 26
+47c74 2 138 26
+47c76 2 768 26
+47c78 8 1266 26
+47c80 8 1268 26
+47c88 8 1263 26
+47c90 4 1255 26
+47c94 e 42 24
+47ca2 e 1269 26
+FUNC 47cb0 52 0 google_breakpad::WriteMinidump
+47cb0 6 1276 26
+47cb6 4 353 121
+47cba 4 1276 26
+47cbe 4 353 121
+47cc2 4 1276 26
+47cc6 c 353 121
+47cd2 1c 1279 26
+47cee c 205 121
+47cfa 8 1280 26
+FUNC 47d02 52 0 google_breakpad::WriteMinidump
+47d02 e 1283 26
+47d10 14 353 121
+47d24 1c 1286 26
+47d40 c 205 121
+47d4c 8 1287 26
+FUNC 47d54 20 0 google_breakpad::WriteMinidump
+47d54 2 1305 26
+47d56 2 1305 26
+47d58 18 1308 26
+47d70 4 1309 26
+FUNC 47d74 26 0 google_breakpad::WriteMinidump
+47d74 8 1324 26
+47d7c 1a 1327 26
+47d96 4 1328 26
+FUNC 47d9a 26 0 google_breakpad::WriteMinidump
+47d9a 2 1334 26
+47d9c 6 1334 26
+47da2 1a 1337 26
+47dbc 4 1338 26
+FUNC 47dc0 a4 0 google_breakpad::WriteMinidump
+47dc0 6 1290 26
+47dc6 4 127 22
+47dca 4 1290 26
+47dce 2 1291 26
+47dd0 2 353 121
+47dd2 6 1291 26
+47dd8 8 353 121
+47de0 2 130 22
+47de2 4 127 22
+47de6 c 353 121
+47df2 2 138 26
+47df4 6 138 26
+47dfa 4 138 26
+47dfe 6 138 26
+47e04 2 100 22
+47e06 2 153 148
+47e08 2 100 22
+47e0a 2 153 148
+47e0c 2 163 54
+47e0e 4 67 144
+47e12 2 481 106
+47e14 4 138 26
+47e18 4 153 148
+47e1c 2 205 121
+47e1e 8 138 26
+47e26 a 205 121
+47e30 a 1297 26
+47e3a 8 1299 26
+47e42 8 1296 26
+47e4a e 42 24
+47e58 c 1300 26
+FUNC 47e64 12 0 google_breakpad::MinidumpFileWriter::MinidumpFileWriter
+47e64 10 55 32
+47e74 2 56 32
+FUNC 47e76 34 0 google_breakpad::MinidumpFileWriter::Open
+47e76 2 63 32
+47e78 4 3087 97
+47e7c 2 63 32
+47e7e 16 3087 97
+47e94 4 3087 97
+47e98 8 3087 97
+47ea0 2 72 32
+47ea2 2 66 32
+47ea4 6 72 32
+FUNC 47eaa 8 0 google_breakpad::MinidumpFileWriter::SetFile
+47eaa 2 77 32
+47eac 2 76 32
+47eae 4 77 32
+FUNC 47eb2 4a 0 google_breakpad::MinidumpFileWriter::Close
+47eb2 2 80 32
+47eb4 2 80 32
+47eb6 6 83 32
+47ebc a 84 32
+47ec6 14 2979 97
+47eda 4 2979 97
+47ede 8 2979 97
+47ee6 4 92 32
+47eea 4 88 32
+47eee 2 92 32
+47ef0 4 88 32
+47ef4 4 81 32
+47ef8 2 85 32
+47efa 2 96 32
+FUNC 47efc 10 0 google_breakpad::MinidumpFileWriter::~MinidumpFileWriter
+47efc 2 58 32
+47efe 2 59 32
+47f00 2 58 32
+47f02 2 59 32
+47f04 4 60 32
+47f08 4 61 32
+FUNC 47f0c 44 0 google_breakpad::MinidumpFileWriter::Allocate
+47f0c 2 220 32
+47f0e 2 223 32
+47f10 2 225 32
+47f12 4 223 32
+47f16 6 225 32
+47f1c 2 220 32
+47f1e 4 225 32
+47f22 2 234 32
+47f24 6 176 102
+47f2a 8 233 32
+47f32 8 234 32
+47f3a 2 237 32
+47f3c 2 240 32
+47f3e 4 241 32
+47f42 4 243 32
+47f46 4 235 32
+47f4a 6 244 32
+FUNC 47f50 6e 0 google_breakpad::MinidumpFileWriter::Copy
+47f50 4 246 32
+47f54 4 246 32
+47f58 4 252 32
+47f5c 2 246 32
+47f5e 2 252 32
+47f60 2 246 32
+47f62 2 252 32
+47f64 6 253 32
+47f6a 16 3071 97
+47f80 4 3071 97
+47f84 8 3071 97
+47f8c 4 257 32
+47f90 18 3162 97
+47fa8 4 3162 97
+47fac 8 3162 97
+47fb4 6 258 32
+47fba 4 268 32
+FUNC 47fbe 16 0 google_breakpad::UntypedMDRVA::Allocate
+47fbe 2 270 32
+47fc0 2 270 32
+47fc2 2 272 32
+47fc4 8 273 32
+47fcc 8 275 32
+FUNC 47fd4 6 0 google_breakpad::UntypedMDRVA::Copy
+47fd4 6 281 32
+FUNC 47fda 4c 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString
+47fda 4 133 32
+47fde 6 133 32
+47fe4 2 136 32
+47fe6 2 134 32
+47fe8 2 140 32
+47fea 2 139 32
+47fec 2 139 32
+47fee a 140 32
+47ff8 2 141 32
+47ffa 4 149 32
+47ffe 2 151 32
+48000 c 149 32
+4800c 2 145 32
+4800e 2 146 32
+48010 c 151 32
+4801c 4 152 32
+48020 6 155 32
+FUNC 48026 aa 0 google_breakpad::MinidumpFileWriter::WriteString
+48026 4 199 32
+4802a 2 167 32
+4802c 6 199 32
+48032 6 167 32
+48038 2 168 32
+4803a 2 199 32
+4803c 6 168 32
+48042 2 168 32
+48044 4 168 32
+48048 8 161 33
+48050 2 67 31
+48052 2 173 32
+48054 2 68 31
+48056 8 68 31
+4805e 6 161 33
+48064 8 212 33
+4806c 2 67 31
+4806e 4 68 31
+48072 4 173 32
+48076 4 168 32
+4807a 2 177 32
+4807c 8 179 32
+48084 2 177 32
+48086 4 179 32
+4808a 2 182 32
+4808c 4 174 32
+48090 2 183 32
+48092 2 184 32
+48094 4 183 32
+48098 8 184 32
+480a0 4 186 32
+480a4 8 176 33
+480ac a 187 32
+480b6 6 216 33
+480bc c 92 31
+480c8 8 201 32
+FUNC 480d0 8 0 google_breakpad::ElfCoreDump::Note::GetHeader
+480d0 8 99 55
+FUNC 480d8 e 0 google_breakpad::ElfCoreDump::Note::IsValid
+480d8 2 46 38
+480da 4 47 38
+480de 8 48 38
+FUNC 480e6 c 0 google_breakpad::ElfCoreDump::Note::GetType
+480e6 2 54 38
+480e8 4 55 38
+480ec 2 57 38
+480ee 2 57 38
+480f0 2 58 38
+FUNC 480f2 26 0 google_breakpad::ElfCoreDump::Note::GetName
+480f2 2 60 38
+480f4 2 60 38
+480f6 2 61 38
+480f8 2 60 38
+480fa 4 61 38
+480fe 4 62 38
+48102 e 63 38
+48110 4 50 55
+48114 4 66 38
+FUNC 48118 2c 0 google_breakpad::ElfCoreDump::Note::GetDescription
+48118 2 68 38
+4811a 2 68 38
+4811c 2 69 38
+4811e 2 68 38
+48120 4 69 38
+48124 4 70 38
+48128 2 92 38
+4812a 2 72 38
+4812c 2 92 38
+4812e c 72 38
+4813a 2 72 38
+4813c 4 50 55
+48140 4 75 38
+FUNC 48144 42 0 google_breakpad::ElfCoreDump::Note::GetNextNote
+48144 2 50 55
+48146 2 77 38
+48148 2 77 38
+4814a 2 79 38
+4814c 2 77 38
+4814e 4 50 55
+48152 6 79 38
+48158 2 80 38
+4815a e 92 38
+48168 2 84 38
+4816a 4 92 38
+4816e a 84 38
+48178 8 44 38
+48180 6 87 38
+FUNC 48186 8 0 google_breakpad::ElfCoreDump::ElfCoreDump
+48186 6 50 55
+4818c 2 98 38
+FUNC 48186 8 0 google_breakpad::MemoryMappedFile::MemoryMappedFile
+48186 6 50 55
+4818c 2 47 47
+FUNC 4818e a 0 google_breakpad::ElfCoreDump::SetContent
+4818e 2 104 38
+48190 8 105 38
+FUNC 48198 8 0 google_breakpad::ElfCoreDump::GetHeader
+48198 8 99 55
+FUNC 481a0 30 0 google_breakpad::ElfCoreDump::IsValid
+481a0 2 108 38
+481a2 4 109 38
+481a6 2 116 38
+481a8 8 113 38
+481b0 6 114 38
+481b6 6 115 38
+481bc a 116 38
+481c6 2 116 38
+481c8 8 118 38
+FUNC 481d0 20 0 google_breakpad::ElfCoreDump::GetProgramHeader
+481d0 2 124 38
+481d2 4 124 38
+481d6 4 125 38
+481da 2 126 38
+481dc 2 128 38
+481de 2 108 55
+481e0 6 109 55
+481e6 4 131 38
+481ea 4 109 55
+481ee 2 131 38
+FUNC 481f0 c 0 google_breakpad::ElfCoreDump::GetProgramHeaderCount
+481f0 2 144 38
+481f2 4 145 38
+481f6 2 146 38
+481f8 2 146 38
+481fa 2 147 38
+FUNC 481fc 28 0 google_breakpad::ElfCoreDump::GetFirstProgramHeaderOfType
+481fc 2 134 38
+481fe 4 134 38
+48202 8 135 38
+4820a 4 135 38
+4820e 8 136 38
+48216 6 137 38
+4821c 4 135 38
+48220 2 141 38
+48222 2 142 38
+FUNC 48224 5e 0 google_breakpad::ElfCoreDump::CopyData
+48224 4 149 38
+48228 8 149 38
+48230 8 150 38
+48238 4 150 38
+4823c 8 151 38
+48244 6 152 38
+4824a 2 155 38
+4824c 4 156 38
+48250 2 156 38
+48252 4 155 38
+48256 4 156 38
+4825a c 159 38
+48266 4 160 38
+4826a 8 161 38
+48272 6 162 38
+48278 4 150 38
+4827c 2 166 38
+4827e 4 167 38
+FUNC 48282 34 0 google_breakpad::ElfCoreDump::GetFirstNote
+48282 2 50 55
+48284 2 169 38
+48286 4 169 38
+4828a 4 171 38
+4828e 4 50 55
+48292 6 171 38
+48298 4 172 38
+4829c c 174 38
+482a8 8 44 38
+482b0 6 177 38
+FUNC 482b8 18 0 google_breakpad::IsValidElf
+482b8 2 111 41
+482ba 2 109 41
+482bc 8 111 41
+482c4 c 112 41
+FUNC 482d0 104 0 google_breakpad::FindElfSection
+482d0 4 126 41
+482d4 2 126 41
+482d6 2 131 41
+482d8 2 126 41
+482da 2 132 41
+482dc 2 131 41
+482de 2 132 41
+482e0 6 126 41
+482e6 6 134 41
+482ec 4 135 41
+482f0 2 118 41
+482f2 2 138 41
+482f4 2 139 41
+482f6 4 145 41
+482fa 2 62 41
+482fc 2 42 40
+482fe 2 62 41
+48300 2 42 40
+48302 4 62 41
+48306 2 42 40
+48308 2 65 41
+4830a 4 42 40
+4830e 4 65 41
+48312 2 70 41
+48314 2 57 40
+48316 2 70 41
+48318 4 57 40
+4831c a 58 40
+48326 6 61 40
+4832c 8 63 40
+48334 2 63 40
+48336 2 62 40
+48338 6 63 40
+4833e 6 65 40
+48344 2 63 40
+48346 8 61 40
+4834e 4 149 41
+48352 2 42 40
+48354 2 62 41
+48356 2 42 40
+48358 4 62 41
+4835c 2 42 40
+4835e 2 65 41
+48360 4 42 40
+48364 4 65 41
+48368 2 70 41
+4836a 2 57 40
+4836c 2 70 41
+4836e 4 57 40
+48372 8 58 40
+4837a 6 61 40
+48380 8 63 40
+48388 2 63 40
+4838a 2 62 40
+4838c 6 63 40
+48392 6 65 40
+48398 2 63 40
+4839a 8 61 40
+483a2 4 72 41
+483a6 6 73 41
+483ac 6 74 41
+483b2 a 152 41
+483bc 8 72 41
+483c4 6 73 41
+483ca 4 74 41
+483ce 6 156 41
+FUNC 483d4 8a 0 google_breakpad::FindElfSegment
+483d4 4 162 41
+483d8 2 162 41
+483da 4 167 41
+483de 2 168 41
+483e0 a 162 41
+483ea 6 170 41
+483f0 6 171 41
+483f6 2 118 41
+483f8 6 174 41
+483fe 4 175 41
+48402 4 181 41
+48406 2 98 41
+48408 2 42 40
+4840a 8 98 41
+48412 a 99 41
+4841c 6 100 41
+48422 4 101 41
+48426 4 98 41
+4842a 4 185 41
+4842e 2 42 40
+48430 2 98 41
+48432 2 42 40
+48434 4 98 41
+48438 2 98 41
+4843a 4 98 41
+4843e a 99 41
+48448 6 100 41
+4844e 4 101 41
+48452 8 188 41
+4845a 4 192 41
+FUNC 48460 5c 0 google_breakpad::FileID::FileID
+48460 2 51 42
+48462 2 51 42
+48464 2 112 137
+48466 2 481 106
+48468 2 229 145
+4846a 2 51 42
+4846c 6 229 145
+48472 4 608 135
+48476 8 600 135
+4847e 4 610 135
+48482 2 158 106
+48484 2 347 106
+48486 2 158 106
+48488 6 134 124
+4848e 6 158 106
+48494 2 613 135
+48496 2 611 135
+48498 2 613 135
+4849a 2 612 135
+4849c 4 613 135
+484a0 2 107 142
+484a2 8 106 142
+484aa 2 107 142
+484ac 2 101 108
+484ae 2 380 136
+484b0 2 101 108
+484b2 a 51 42
+FUNC 484bc 138 0 google_breakpad::FileID::ElfFileIdentifierFromMappedFile
+484bc 6 142 42
+484c2 6 98 42
+484c8 2 142 42
+484ca 8 98 42
+484d2 2 142 42
+484d4 4 98 42
+484d8 2 99 42
+484da 4 98 42
+484de 12 101 42
+484f0 2 99 42
+484f2 2 103 42
+484f4 18 124 42
+4850c 8 101 42
+48514 4 124 42
+48518 2 126 42
+4851a 4 148 42
+4851e 6 106 42
+48524 2 108 42
+48526 4 64 42
+4852a 4 66 42
+4852e 6 67 42
+48534 8 70 42
+4853c c 71 42
+48548 4 69 42
+4854c 4 109 42
+48550 2 111 42
+48552 4 64 42
+48556 4 66 42
+4855a 6 67 42
+48560 8 70 42
+48568 c 71 42
+48574 4 69 42
+48578 a 129 42
+48582 2 130 42
+48584 12 131 42
+48596 8 132 42
+4859e 8 134 42
+485a6 2 133 42
+485a8 6 134 42
+485ae 2 133 42
+485b0 4 135 42
+485b4 6 74 42
+485ba 2 80 42
+485bc 6 83 42
+485c2 2 80 42
+485c4 4 83 42
+485c8 4 80 42
+485cc 2 85 42
+485ce 4 80 42
+485d2 e 84 42
+485e0 2 87 42
+485e2 12 149 42
+FUNC 485f4 2a 0 google_breakpad::FileID::ElfFileIdentifier
+485f4 4 151 42
+485f8 2 151 42
+485fa e 152 42
+48608 2 153 42
+4860a 6 156 42
+48610 2 154 42
+48612 6 156 42
+48618 6 157 42
+FUNC 48620 b4 0 google_breakpad::FileID::ConvertIdentifierToString
+48620 8 161 42
+48628 6 161 42
+4862e 2 165 42
+48630 4 161 42
+48634 18 165 42
+4864c 4 167 42
+48650 2 167 42
+48652 4 169 42
+48656 2 169 42
+48658 4 169 42
+4865c 4 171 42
+48660 2 171 42
+48662 2 174 42
+48664 4 171 42
+48668 4 181 42
+4866c 2 173 42
+4866e 4 174 42
+48672 4 175 42
+48676 4 177 42
+4867a 6 180 42
+48680 4 177 42
+48684 4 178 42
+48688 2 180 42
+4868a 4 180 42
+4868e 6 181 42
+48694 2 183 42
+48696 4 183 42
+4869a 2 183 42
+4869c 2 184 42
+4869e 8 183 42
+486a6 4 184 42
+486aa 2 184 42
+486ac 4 183 42
+486b0 2 184 42
+486b2 2 184 42
+486b4 4 174 42
+486b8 2 188 42
+486ba 4 188 42
+486be 16 189 42
+FUNC 486d4 10 0 GUIDGenerator::InitOnceImpl
+486d4 2 78 44
+486d6 6 79 44
+486dc 4 80 44
+486e0 4 132 101
+FUNC 486e4 54 0 CreateGUID
+486e4 2 87 44
+486e6 2 75 44
+486e8 2 87 44
+486ea a 75 44
+486f4 4 128 101
+486f8 2 65 44
+486fa 4 128 101
+486fe 2 66 44
+48700 4 128 101
+48704 2 67 44
+48706 4 128 101
+4870a 2 58 44
+4870c 2 57 44
+4870e 2 58 44
+48710 2 59 44
+48712 2 60 44
+48714 2 59 44
+48716 2 60 44
+48718 4 128 101
+4871c 2 58 44
+4871e 2 57 44
+48720 2 58 44
+48722 2 59 44
+48724 4 60 44
+48728 2 59 44
+4872a e 89 44
+FUNC 48738 60 0 GUIDToString
+48738 2 92 44
+4873a 4 92 44
+4873e 8 98 44
+48746 2 52 44
+48748 2 51 44
+4874a 6 52 44
+48750 2 51 44
+48752 2 52 44
+48754 6 53 44
+4875a 2 98 44
+4875c 2 52 44
+4875e 4 51 44
+48762 6 52 44
+48768 2 53 44
+4876a 2 52 44
+4876c 4 53 44
+48770 10 98 44
+48780 6 99 44
+48786 6 102 44
+4878c 2 103 44
+4878e a 104 44
+FUNC 48798 10 0 my_strlen
+48798 2 40 45
+4879a 4 42 45
+4879e 8 42 45
+487a6 2 44 45
+FUNC 487a8 22 0 my_strcmp
+487a8 4 46 45
+487ac c 48 45
+487b8 2 50 45
+487ba 6 52 45
+487c0 6 49 45
+487c6 2 51 45
+487c8 2 57 45
+FUNC 487ca 26 0 my_strncmp
+487ca 2 59 45
+487cc 2 60 45
+487ce 4 60 45
+487d2 8 61 45
+487da 2 63 45
+487dc 2 65 45
+487de 4 60 45
+487e2 4 66 45
+487e6 6 62 45
+487ec 4 64 45
+FUNC 487f0 32 0 my_strtoui
+487f0 2 78 45
+487f2 6 79 45
+487f8 4 86 45
+487fc 6 83 45
+48802 6 87 45
+48808 4 86 45
+4880c 2 87 45
+4880e 2 89 45
+48810 8 90 45
+48818 2 94 45
+4881a 4 95 45
+4881e 2 80 45
+48820 2 96 45
+FUNC 48822 24 0 my_uint_len
+48822 4 100 45
+48826 2 99 45
+48828 4 100 45
+4882c 8 106 45
+48834 4 104 45
+48838 4 105 45
+4883c 2 104 45
+4883e 4 109 45
+48842 2 101 45
+48844 2 110 45
+FUNC 48846 36 0 my_uitos
+48846 2 118 45
+48848 a 118 45
+48852 4 119 45
+48856 12 120 45
+48868 12 119 45
+4887a 2 121 45
+FUNC 4887c 1a 0 my_strchr
+4887c 2 123 45
+4887e 6 124 45
+48884 8 124 45
+4888c 8 126 45
+48894 2 129 45
+FUNC 48896 18 0 my_strrchr
+48896 2 132 45
+48898 4 131 45
+4889c 6 133 45
+488a2 8 134 45
+488aa 4 139 45
+FUNC 488ae 1a 0 my_memchr
+488ae 4 141 45
+488b2 2 143 45
+488b4 6 144 45
+488ba a 145 45
+488c4 2 148 45
+488c6 2 149 45
+FUNC 488c8 40 0 my_read_hex_ptr
+488c8 2 155 45
+488ca 2 156 45
+488cc 4 155 45
+488d0 10 159 45
+488e0 4 161 45
+488e4 c 162 45
+488f0 4 164 45
+488f4 c 165 45
+48900 2 167 45
+48902 2 174 45
+48904 2 173 45
+48906 2 175 45
+FUNC 48908 22 0 my_read_decimal_ptr
+48908 2 177 45
+4890a 2 178 45
+4890c 2 177 45
+4890e 4 182 45
+48912 10 181 45
+48922 2 183 45
+48924 2 189 45
+48926 2 188 45
+48928 2 190 45
+FUNC 4892a e 0 my_memset
+4892a 2 192 45
+4892c 4 194 45
+48930 6 195 45
+48936 2 196 45
+FUNC 48938 22 0 my_strlcpy
+48938 2 198 45
+4893a 2 199 45
+4893c a 202 45
+48946 4 203 45
+4894a 8 204 45
+48952 2 209 45
+48954 2 210 45
+48956 4 213 45
+FUNC 4895a 20 0 my_strlcat
+4895a 2 215 45
+4895c 2 216 45
+4895e 4 218 45
+48962 4 218 45
+48966 8 219 45
+4896e a 224 45
+48978 2 225 45
+FUNC 4897c 48 0 my_isspace
+4897c 4 227 45
+48980 2 229 45
+48982 4 227 45
+48986 2 229 45
+48988 4 227 45
+4898c 4 229 45
+48990 2 227 45
+48992 4 229 45
+48996 4 230 45
+4899a 6 231 45
+489a0 2 230 45
+489a2 4 230 45
+489a6 4 234 45
+489aa 2 232 45
+489ac 18 235 45
+FUNC 489c4 2c 0 google_breakpad::MemoryMappedFile::Unmap
+489c4 2 106 47
+489c6 4 106 47
+489ca 2 107 47
+489cc 14 3074 97
+489e0 4 3074 97
+489e4 4 3074 97
+489e8 4 70 55
+489ec 4 72 55
+FUNC 489f0 c 0 google_breakpad::MemoryMappedFile::~MemoryMappedFile
+489f0 2 53 47
+489f2 2 53 47
+489f4 4 54 47
+489f8 4 55 47
+FUNC 489fc e4 0 google_breakpad::MemoryMappedFile::Map
+489fc 8 57 47
+48a04 e 57 47
+48a12 4 58 47
+48a16 18 3087 97
+48a2e 4 3087 97
+48a32 6 3087 97
+48a38 14 3446 97
+48a4c 4 3446 97
+48a50 4 3446 97
+48a54 6 91 47
+48a5a 2 99 47
+48a5c c 104 47
+48a68 e 70 47
+48a76 4 81 47
+48a7a 8 82 47
+48a82 8 89 47
+48a8a 8 3454 97
+48a92 4 95 47
+48a96 12 3454 97
+48aa8 4 3454 97
+48aac 8 3454 97
+48ab4 6 97 47
+48aba 4 98 47
+48abe 2 72 55
+48ac0 4 102 47
+48ac4 6 72 55
+48aca 4 70 55
+48ace 4 72 55
+48ad2 4 103 47
+48ad6 a 104 47
+FUNC 48ae0 12 0 google_breakpad::MemoryMappedFile::MemoryMappedFile
+48ae0 2 50 55
+48ae2 2 49 47
+48ae4 2 49 47
+48ae6 4 50 55
+48aea 4 50 47
+48aee 4 51 47
+FUNC 48af2 32 0 google_breakpad::SafeReadLink
+48af2 2 39 48
+48af4 12 3108 97
+48b06 4 3108 97
+48b0a 4 3108 97
+48b0e 4 50 48
+48b12 8 46 48
+48b1a 2 46 48
+48b1c 4 47 48
+48b20 2 48 48
+48b22 2 51 48
+FUNC 48b24 48 0 google_breakpad::UTF8ToUTF16Char
+48b24 4 58 60
+48b28 2 63 60
+48b2a 4 58 60
+48b2e 2 59 60
+48b30 2 60 60
+48b32 2 61 60
+48b34 4 62 60
+48b38 4 63 60
+48b3c 16 69 60
+48b52 2 71 60
+48b54 6 72 60
+48b5a 2 76 60
+48b5c 4 78 60
+48b60 2 75 60
+48b62 2 78 60
+48b64 2 82 60
+48b66 6 83 60
+FUNC 48ba8 f8 0 google_breakpad::::CrashGenerationClientImpl::RequestDump
+48ba8 6 51 0
+48bae a 51 0
+48bb8 14 3761 97
+48bcc 4 3761 97
+48bd0 6 3761 97
+48bd6 4 53 0
+48bda 2 63 0
+48bdc 2 61 0
+48bde 2 58 0
+48be0 2 59 0
+48be2 a 61 0
+48bec 2 62 0
+48bee 6 64 0
+48bf4 2 62 0
+48bf6 2 63 0
+48bf8 4 64 0
+48bfc 4 65 0
+48c00 2 66 0
+48c02 2 69 0
+48c04 2 70 0
+48c06 2 3671 97
+48c08 2 66 0
+48c0a 2 71 0
+48c0c 4 73 0
+48c10 18 3671 97
+48c28 4 3671 97
+48c2c 4 3671 97
+48c30 4 75 0
+48c34 6 75 0
+48c3a 4 3671 97
+48c3e 6 76 0
+48c44 4 77 0
+48c48 6 78 0
+48c4e 2 54 0
+48c50 c 88 0
+48c5c 1c 3104 97
+48c78 6 85 0
+48c7e 4 87 0
+48c82 4 3104 97
+48c86 4 3104 97
+48c8a 4 84 0
+48c8e 8 84 0
+48c96 a 88 0
+FUNC 48ca0 20 0 google_breakpad::CrashGenerationClient::TryCreate
+48ca0 2 99 0
+48ca2 4 100 0
+48ca6 6 102 0
+48cac a 48 0
+48cb6 2 102 0
+48cb8 2 101 0
+48cba 6 103 0
+FUNC 48cc0 4 0 google_breakpad::ThreadInfo::GetInstructionPointer
+48cc0 4 195 2
+FUNC 48cc4 24 0 google_breakpad::ThreadInfo::FillCPUContext
+48cc4 4 197 2
+48cc8 a 198 2
+48cd2 4 201 2
+48cd6 2 200 2
+48cd8 4 201 2
+48cdc 2 200 2
+48cde a 203 2
+FUNC 48ce8 4 0 google_breakpad::UContextReader::GetStackPointer
+48ce8 4 150 3
+FUNC 48cec 4 0 google_breakpad::UContextReader::GetInstructionPointer
+48cec 4 154 3
+FUNC 48cf0 94 0 google_breakpad::UContextReader::FillCPUContext
+48cf0 2 156 3
+48cf2 2 157 3
+48cf4 2 180 3
+48cf6 2 157 3
+48cf8 2 159 3
+48cfa 2 156 3
+48cfc 2 159 3
+48cfe 2 160 3
+48d00 2 181 3
+48d02 4 160 3
+48d06 6 161 3
+48d0c 6 162 3
+48d12 6 163 3
+48d18 6 164 3
+48d1e 6 165 3
+48d24 6 166 3
+48d2a 6 167 3
+48d30 6 168 3
+48d36 6 169 3
+48d3c 6 171 3
+48d42 6 172 3
+48d48 6 173 3
+48d4e 6 174 3
+48d54 6 175 3
+48d5a 2 177 3
+48d5c 2 181 3
+48d5e 4 177 3
+48d62 6 180 3
+48d68 8 181 3
+48d70 4 182 3
+48d74 4 183 3
+48d78 c 182 3
+FUNC 48d84 7a 0 isLegalUTF8
+48d84 2 299 37
+48d86 e 300 37
+48d94 e 303 37
+48da2 e 304 37
+48db0 8 305 37
+48db8 c 307 37
+48dc4 4 309 37
+48dc8 8 307 37
+48dd0 4 312 37
+48dd4 4 310 37
+48dd8 6 311 37
+48dde 4 312 37
+48de2 4 313 37
+48de6 a 316 37
+48df0 a 301 37
+48dfa 2 303 37
+48dfc 2 320 37
+FUNC 48e00 118 0 ConvertUTF8toUTF16
+48e00 8 339 37
+48e08 4 390 37
+48e0c 2 339 37
+48e0e 2 339 37
+48e10 2 345 37
+48e12 4 365 37
+48e16 2 345 37
+48e18 2 341 37
+48e1a 2 342 37
+48e1c 2 339 37
+48e1e 2 345 37
+48e20 2 365 37
+48e22 4 343 37
+48e26 6 345 37
+48e2c 6 346 37
+48e32 c 350 37
+48e3e e 357 37
+48e4c 6 358 37
+48e52 2 344 37
+48e54 a 359 37
+48e5e 2 344 37
+48e60 a 360 37
+48e6a 2 344 37
+48e6c a 361 37
+48e76 2 344 37
+48e78 a 362 37
+48e82 2 344 37
+48e84 8 363 37
+48e8c 2 344 37
+48e8e 6 365 37
+48e94 6 367 37
+48e9a 6 371 37
+48ea0 a 373 37
+48eaa 4 382 37
+48eae 6 384 37
+48eb4 4 385 37
+48eb8 6 387 37
+48ebe 8 390 37
+48ec6 8 394 37
+48ece 2 395 37
+48ed0 2 396 37
+48ed2 2 395 37
+48ed4 2 396 37
+48ed6 2 399 37
+48ed8 4 398 37
+48edc 6 399 37
+48ee2 4 400 37
+48ee6 4 399 37
+48eea a 400 37
+48ef4 4 340 37
+48ef8 4 347 37
+48efc 2 351 37
+48efe 2 404 37
+48f00 4 403 37
+48f04 2 404 37
+48f06 12 406 37
+FUNC 48f18 20 0 google_breakpad::DumpContext::DumpContext
+48f18 2 53 68
+48f1a 2 53 68
+48f1c 1c 54 68
+FUNC 48f38 10 0 google_breakpad::DumpContext::GetContextCPU
+48f38 4 61 68
+48f3c 8 67 68
+48f44 2 64 68
+48f46 2 68 68
+FUNC 48f48 4 0 google_breakpad::DumpContext::GetContextFlags
+48f48 4 72 68
+FUNC 48f4c 4 0 google_breakpad::DumpContext::SetContextFlags
+48f4c 4 190 68
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextAMD64
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextARM
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextARM64
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextMIPS
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextPPC
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextPPC64
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextSPARC
+FUNC 48f50 4 0 google_breakpad::DumpContext::SetContextX86
+48f50 4 194 68
+FUNC 48f54 4a 0 google_breakpad::DumpContext::FreeContext
+48f54 2 225 68
+48f56 2 225 68
+48f58 38 226 68
+48f90 6 256 68
+48f96 4 266 68
+48f9a 4 267 68
+FUNC 48fa0 18 0 google_breakpad::DumpContext::~DumpContext
+48fa0 2 56 68
+48fa2 a 56 68
+48fac 4 57 68
+48fb0 8 58 68
+FUNC 48fb8 12 0 google_breakpad::DumpContext::~DumpContext
+48fb8 2 56 68
+48fba 2 56 68
+48fbc 4 58 68
+48fc0 6 58 68
+48fc6 4 58 68
+FUNC 48fcc 4c 0 google_breakpad::DumpContext::GetContextX86
+48fcc 2 74 68
+48fce 2 74 68
+48fd0 a 75 68
+48fda 18 76 68
+48ff2 a 333 127
+48ffc 6 76 68
+49002 4 76 68
+49006 2 80 68
+49008 10 81 68
+FUNC 49018 4c 0 google_breakpad::DumpContext::GetContextPPC
+49018 2 83 68
+4901a 2 83 68
+4901c a 84 68
+49026 18 85 68
+4903e a 333 127
+49048 6 85 68
+4904e 4 85 68
+49052 2 89 68
+49054 10 90 68
+FUNC 49064 4c 0 google_breakpad::DumpContext::GetContextARM
+49064 2 119 68
+49066 2 119 68
+49068 a 120 68
+49072 18 121 68
+4908a a 333 127
+49094 6 121 68
+4909a 4 121 68
+4909e 2 125 68
+490a0 10 126 68
+FUNC 490b0 4c 0 google_breakpad::DumpContext::GetContextPPC64
+490b0 2 92 68
+490b2 2 92 68
+490b4 a 93 68
+490be 18 94 68
+490d6 a 333 127
+490e0 6 94 68
+490e6 4 94 68
+490ea 2 98 68
+490ec 10 99 68
+FUNC 490fc 4c 0 google_breakpad::DumpContext::GetContextAMD64
+490fc 2 101 68
+490fe 2 101 68
+49100 a 102 68
+4910a 18 103 68
+49122 a 333 127
+4912c 6 103 68
+49132 4 103 68
+49136 2 107 68
+49138 10 108 68
+FUNC 49148 4c 0 google_breakpad::DumpContext::GetContextSPARC
+49148 2 110 68
+4914a 2 110 68
+4914c a 111 68
+49156 18 112 68
+4916e a 333 127
+49178 6 112 68
+4917e 4 112 68
+49182 2 116 68
+49184 10 117 68
+FUNC 49194 4c 0 google_breakpad::DumpContext::GetContextARM64
+49194 2 128 68
+49196 2 128 68
+49198 a 129 68
+491a2 18 130 68
+491ba a 333 127
+491c4 6 130 68
+491ca 4 130 68
+491ce 2 134 68
+491d0 10 135 68
+FUNC 491e0 4c 0 google_breakpad::DumpContext::GetContextMIPS
+491e0 2 137 68
+491e2 2 137 68
+491e4 a 138 68
+491ee 18 139 68
+49206 a 333 127
+49210 6 139 68
+49216 4 139 68
+4921a 2 143 68
+4921c 10 144 68
+FUNC 4922c 170 0 google_breakpad::DumpContext::GetInstructionPointer
+4922c 6 146 68
+49232 4 146 68
+49236 4 147 68
+4923a 1a 147 68
+49254 a 333 127
+4925e 6 147 68
+49264 8 149 68
+4926c 4 151 68
+49270 1a 152 68
+4928a a 333 127
+49294 6 152 68
+4929a 2 153 68
+4929c 20 156 68
+492bc c 176 68
+492c8 e 156 68
+492d6 c 173 68
+492e2 c 156 68
+492ee 12 164 68
+49300 c 158 68
+4930c a 161 68
+49316 a 167 68
+49320 c 170 68
+4932c 6 176 68
+49332 2 177 68
+49334 12 179 68
+49346 2 180 68
+49348 1a 183 68
+49362 a 333 127
+4936c 6 183 68
+49372 2 184 68
+49374 28 187 68
+FUNC 4939c 6 0 google_breakpad::DumpObject::DumpObject
+4939c 4 36 69
+493a0 2 37 69
+FUNC 493a4 44 0 google_breakpad::HexString
+493a4 e 86 71
+493b2 2 86 71
+493b4 4 88 71
+493b8 2 86 71
+493ba a 88 71
+493c4 a 89 71
+493ce 1a 90 71
+FUNC 493e8 48 0 google_breakpad::HexString
+493e8 c 92 71
+493f4 2 92 71
+493f6 8 94 71
+493fe 2 92 71
+49400 a 94 71
+4940a a 95 71
+49414 1c 96 71
+FUNC 49430 44 0 google_breakpad::HexString
+49430 e 98 71
+4943e 2 98 71
+49440 4 100 71
+49444 2 98 71
+49446 a 100 71
+49450 a 101 71
+4945a 1a 102 71
+FUNC 49474 4a 0 google_breakpad::LogStream::~LogStream
+49474 2 82 71
+49476 2 83 71
+49478 2 82 71
+4947a c 181 127
+49486 2 412 126
+49488 10 422 126
+49498 2 414 126
+4949a e 414 126
+494a8 4 421 126
+494ac 6 424 126
+494b2 6 359 127
+494b8 6 84 71
+FUNC 494c0 18c 0 google_breakpad::LogStream::LogStream
+494c0 e 54 71
+494ce 2 58 71
+494d0 6 54 71
+494d6 2 56 71
+494d8 2 58 71
+494da 2 54 71
+494dc 4 58 71
+494e0 a 63 71
+494ea 12 66 71
+494fc c 69 71
+49508 6 74 71
+4950e 2 75 71
+49510 8 71 71
+49518 6 68 71
+4951e 2 78 71
+49520 e 333 127
+4952e 4 78 71
+49532 4 333 127
+49536 6 78 71
+4953c 2 78 71
+4953e 4 78 71
+49542 8 78 71
+4954a a 78 71
+49554 8 333 127
+4955c c 181 127
+49568 2 199 126
+4956a 10 211 126
+4957a 2 202 126
+4957c 2 145 115
+4957e 4 202 126
+49582 2 145 115
+49584 2 202 126
+49586 6 145 115
+4958c 8 351 122
+49594 6 351 122
+4959a 2 202 126
+4959c 2 351 122
+4959e c 202 126
+495aa 18 57 128
+495c2 1c 67 125
+495de 6 202 126
+495e4 6 210 126
+495ea 2 333 127
+495ec 2 212 126
+495ee 2 333 127
+495f0 4 212 126
+495f4 18 333 127
+4960c c 156 137
+49618 34 80 71
+FUNC 4964c 62 0 google_breakpad::ErrnoString
+4964c 2 104 71
+4964e 2 104 71
+49650 6 111 71
+49656 6 111 71
+4965c 6 229 145
+49662 6 400 136
+49668 4 244 135
+4966c 2 168 145
+4966e 8 168 145
+49676 6 246 135
+4967c 4 803 136
+49680 2 168 145
+49682 2 806 136
+49684 2 168 145
+49686 8 806 136
+4968e 2 168 145
+49690 6 168 145
+49696 4 400 136
+4969a 2 250 135
+4969c 2 400 136
+4969e 8 250 135
+496a6 6 112 71
+496ac 2 113 71
+FUNC 496ae c 0 google_breakpad::MinidumpThreadList::thread_count
+496ae 4 322 65
+496b2 4 322 65
+496b6 2 322 65
+496b8 2 323 65
+FUNC 496ba 14 0 google_breakpad::MinidumpModule::base_address
+496ba 4 383 65
+496be 6 383 65
+496c4 8 383 65
+496cc 2 384 65
+FUNC 496d6 e 0 google_breakpad::MinidumpModule::size
+496d6 4 385 65
+496da 4 385 65
+496de 2 385 65
+496e0 4 385 65
+FUNC 496ec c 0 google_breakpad::MinidumpModuleList::module_count
+496ec 4 491 65
+496f0 4 491 65
+496f4 2 491 65
+496f6 2 492 65
+FUNC 49700 e 0 google_breakpad::Minidump::header
+49700 6 882 65
+49706 4 882 65
+4970a 2 882 65
+4970c 2 882 65
+FUNC 4970e 6 0 google_breakpad::BasicCodeModule::base_address
+4970e 6 84 66
+FUNC 49714 6 0 google_breakpad::BasicCodeModule::size
+49714 6 85 66
+FUNC 4971a e 0 google_breakpad::Swap
+4971a a 125 73
+49724 4 127 73
+FUNC 49728 8 0 google_breakpad::Swap
+49728 4 131 73
+4972c 4 135 73
+FUNC 49730 18 0 google_breakpad::Swap
+49730 2 139 73
+49732 2 139 73
+49734 4 141 73
+49738 6 142 73
+4973e 2 143 73
+49740 2 144 73
+49742 6 145 73
+FUNC 49748 12 0 google_breakpad::Swap
+49748 2 182 73
+4974a 2 182 73
+4974c 4 183 73
+49750 2 184 73
+49752 4 185 73
+49756 4 184 73
+FUNC 4975c 28 0 google_breakpad::MinidumpThread::~MinidumpThread
+4975c 2 1380 73
+4975e a 1380 73
+49768 4 1381 73
+4976c 6 1381 73
+49772 4 1382 73
+49776 6 1382 73
+4977c 8 1383 73
+FUNC 49784 20 0 google_breakpad::MinidumpException::~MinidumpException
+49784 2 2883 73
+49786 a 2883 73
+49790 6 2884 73
+49796 6 2884 73
+4979c 8 2885 73
+FUNC 497a4 84 0 std::basic_filebuf<char, std::char_traits<char> >::pbackfail
+497a4 2 157 109
+497a6 a 161 109
+497b0 4 166 109
+497b4 4 166 109
+497b8 a 166 109
+497c2 6 166 109
+497c8 4 175 109
+497cc 4 178 109
+497d0 4 177 109
+497d4 2 178 109
+497d6 8 180 109
+497de 2 181 109
+497e0 2 95 134
+497e2 2 181 109
+497e4 2 93 134
+497e6 4 94 134
+497ea 2 187 109
+497ec 2 188 109
+497ee 2 186 109
+497f0 2 188 109
+497f2 4 189 109
+497f6 2 93 134
+497f8 2 94 134
+497fa 2 190 109
+497fc 2 95 134
+497fe 6 190 109
+49804 4 220 145
+49808 a 162 109
+49812 4 91 134
+49816 8 171 109
+4981e 6 171 109
+49824 2 223 145
+49826 2 199 109
+FUNC 49828 12 0 google_breakpad::MinidumpThread::~MinidumpThread
+49828 2 1380 73
+4982a 2 1380 73
+4982c 4 1383 73
+49830 6 1383 73
+49836 4 1383 73
+FUNC 4983a 12 0 google_breakpad::MinidumpException::~MinidumpException
+4983a 2 2883 73
+4983c 2 2883 73
+4983e 4 2885 73
+49842 6 2885 73
+49848 4 2885 73
+FUNC 4984c 18 0 google_breakpad::MinidumpContext::~MinidumpContext
+4984c 2 420 73
+4984e e 420 73
+4985c 8 421 73
+FUNC 49864 12 0 google_breakpad::MinidumpContext::~MinidumpContext
+49864 2 420 73
+49866 2 420 73
+49868 4 421 73
+4986c 6 421 73
+49872 4 421 73
+FUNC 49876 18 0 google_breakpad::MinidumpModuleList::Copy
+49876 2 2640 73
+49878 2 2640 73
+4987a 8 2641 73
+49882 8 2641 73
+4988a 4 2642 73
+FUNC 49896 4 0 std::basic_filebuf<char, std::char_traits<char> >::underflow
+49896 4 76 109
+FUNC 49896 4 0 std::basic_filebuf<char, std::char_traits<char> >::underflow()
+49896 4 76 207
+FUNC 4989a 22 0 std::basic_filebuf<char, std::char_traits<char> >::sync
+4989a 2 402 109
+4989c 6 403 109
+498a2 2 405 109
+498a4 8 405 109
+498ac c 405 109
+498b8 2 406 109
+498ba 2 407 109
+FUNC 498bc 4a 0 std::basic_filebuf<char, std::char_traits<char> >::showmanyc
+498bc 2 132 109
+498be 6 134 109
+498c4 4 134 109
+498c8 6 135 109
+498ce 6 136 109
+498d4 8 137 109
+498dc 6 138 109
+498e2 4 144 109
+498e6 e 139 109
+498f4 6 140 109
+498fa 4 141 109
+498fe 4 141 109
+49902 4 141 109
+FUNC 49906 54 0 std::basic_filebuf<char, std::char_traits<char> >::_M_unshift
+49906 4 593 109
+4990a 2 593 109
+4990c 4 598 109
+49910 2 199 107
+49912 4 322 110
+49916 2 597 109
+49918 2 598 109
+4991a 2 597 109
+4991c c 199 107
+49928 2 600 109
+4992a 2 199 107
+4992c 2 600 109
+4992e 8 600 109
+49936 2 600 109
+49938 4 603 109
+4993c 4 604 109
+49940 8 322 110
+49948 4 605 109
+4994c 6 596 109
+49952 2 602 109
+49954 6 611 109
+FUNC 4995c 4c 0 std::basic_filebuf<char, std::char_traits<char> >::_M_setup_codecvt
+4995c 2 735 109
+4995e 2 735 109
+49960 c 351 122
+4996c 2 737 109
+4996e 6 216 107
+49974 8 141 105
+4997c 2 216 107
+4997e 2 741 109
+49980 2 740 109
+49982 6 227 107
+49988 8 742 109
+49990 2 741 109
+49992 2 743 109
+49994 4 742 109
+49998 6 218 107
+4999e a 743 109
+FUNC 499a8 50 0 std::basic_filebuf<char, std::char_traits<char> >::imbue
+499a8 2 413 109
+499aa 4 414 109
+499ae 4 413 109
+499b2 2 414 109
+499b4 6 414 109
+499ba c 347 122
+499c6 6 736 109
+499cc 8 417 109
+499d4 2 747 109
+499d6 2 746 109
+499d8 8 748 109
+499e0 4 747 109
+499e4 4 351 122
+499e8 4 417 109
+499ec c 351 122
+FUNC 499f8 38 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_create_node
+499f8 2 306 106
+499fa 2 315 141
+499fc 2 315 141
+499fe 6 306 106
+49a04 4 307 106
+49a08 4 119 108
+49a0c 2 307 106
+49a0e 16 68 129
+49a24 2 321 141
+49a26 2 324 141
+49a28 2 321 141
+49a2a 2 322 141
+49a2c 4 324 141
+FUNC 49a30 38 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> > >::_M_create_node
+49a30 2 306 106
+49a32 2 315 141
+49a34 2 315 141
+49a36 6 306 106
+49a3c 4 307 106
+49a40 4 119 108
+49a44 2 307 106
+49a46 2 119 108
+49a48 14 68 129
+49a5c 2 321 141
+49a5e 2 324 141
+49a60 2 321 141
+49a62 2 322 141
+49a64 4 324 141
+FUNC 49a68 28 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_create_node
+49a68 2 306 106
+49a6a 2 315 141
+49a6c 2 315 141
+49a6e 6 306 106
+49a74 4 307 106
+49a78 4 119 108
+49a7c a 68 129
+49a86 4 321 141
+49a8a 2 322 141
+49a8c 4 324 141
+FUNC 49a90 12 0 google_breakpad::Minidump::MinidumpStreamInfo::~MinidumpStreamInfo
+49a90 2 969 65
+49a92 6 969 65
+49a98 2 969 65
+49a9a 4 969 65
+49a9e 4 969 65
+FUNC 49aa4 6c 0 google_breakpad::BasicCodeModule::BasicCodeModule
+49aa4 2 57 66
+49aa6 2 64 66
+49aa8 2 57 66
+49aaa 6 64 66
+49ab0 6 58 66
+49ab6 2 57 66
+49ab8 2 58 66
+49aba 4 64 66
+49abe 8 59 66
+49ac6 4 64 66
+49aca 2 60 66
+49acc a 64 66
+49ad6 2 61 66
+49ad8 a 64 66
+49ae2 2 62 66
+49ae4 a 64 66
+49aee 2 63 66
+49af0 a 64 66
+49afa 2 64 66
+49afc a 64 66
+49b06 a 64 66
+FUNC 49b10 18 0 google_breakpad::MinidumpModule::Copy
+49b10 2 2071 73
+49b12 2 2071 73
+49b14 8 2072 73
+49b1c 8 2072 73
+49b24 4 2073 73
+FUNC 49b30 16 0 google_breakpad::BasicCodeModule::Copy
+49b30 2 91 66
+49b32 a 91 66
+49b3c 6 91 66
+49b42 4 91 66
+FUNC 49b48 20 0 google_breakpad::MinidumpStream::MinidumpStream
+49b48 2 405 73
+49b4a 4 405 73
+49b4e 6 396 73
+49b54 2 406 73
+49b56 2 396 73
+49b58 6 406 73
+49b5e a 407 73
+FUNC 49b68 2c 0 google_breakpad::MinidumpMemoryRegion::MinidumpMemoryRegion
+49b68 2 1192 73
+49b6a 2 1192 73
+49b6c 2 396 73
+49b6e 2 1192 73
+49b70 4 396 73
+49b74 2 1195 73
+49b76 2 396 73
+49b78 12 1195 73
+49b8a a 1196 73
+FUNC 49b94 22 0 google_breakpad::MinidumpMemoryRegion::SetDescriptor
+49b94 2 1204 73
+49b96 2 1205 73
+49b98 2 1206 73
+49b9a 4 1208 73
+49b9e 2 1207 73
+49ba0 4 1208 73
+49ba4 2 1207 73
+49ba6 c 1206 73
+49bb2 4 1209 73
+FUNC 49bb8 30 0 google_breakpad::MinidumpThread::MinidumpThread
+49bb8 2 1372 73
+49bba 2 1372 73
+49bbc 2 396 73
+49bbe 2 1372 73
+49bc0 4 396 73
+49bc4 4 1376 73
+49bc8 2 396 73
+49bca 16 1376 73
+49be0 8 1377 73
+FUNC 49be8 48 0 google_breakpad::MinidumpThreadList::MinidumpThreadList
+49be8 4 1540 73
+49bec 2 1544 73
+49bee 2 1540 73
+49bf0 6 1544 73
+49bf6 2 250 141
+49bf8 8 1544 73
+49c00 e 250 141
+49c0e 8 481 106
+49c16 2 263 141
+49c18 2 1545 73
+49c1a 2 263 141
+49c1c 2 265 141
+49c1e 2 266 141
+49c20 2 267 141
+49c22 2 391 141
+49c24 4 1544 73
+49c28 8 1545 73
+FUNC 49c30 4c 0 google_breakpad::MinidumpModule::MinidumpModule
+49c30 2 1704 73
+49c32 4 1704 73
+49c36 8 396 73
+49c3e 34 1712 73
+49c72 a 1713 73
+FUNC 49c7c 2c 0 google_breakpad::MinidumpException::MinidumpException
+49c7c 2 2876 73
+49c7e 2 2876 73
+49c80 1e 2879 73
+49c9e a 2880 73
+FUNC 49ca8 2c 0 google_breakpad::MinidumpSystemInfo::MinidumpSystemInfo
+49ca8 2 3092 73
+49caa 2 3092 73
+49cac 1e 3096 73
+49cca a 3097 73
+FUNC 49cd4 34 0 std::priv::_Impl_vector<google_breakpad::MinidumpThread, std::allocator<google_breakpad::MinidumpThread> >::~_Impl_vector
+49cd4 2 304 144
+49cd6 2 304 144
+49cd8 6 65 118
+49cde 2 74 118
+49ce0 4 191 108
+49ce4 4 77 118
+49ce8 a 57 108
+49cf2 4 81 118
+49cf6 4 87 144
+49cfa 2 88 144
+49cfc 6 323 106
+49d02 6 304 144
+FUNC 49d08 34 0 std::priv::_Impl_vector<google_breakpad::MinidumpModule, std::allocator<google_breakpad::MinidumpModule> >::~_Impl_vector
+49d08 2 304 144
+49d0a 2 304 144
+49d0c 6 65 118
+49d12 2 74 118
+49d14 4 191 108
+49d18 4 77 118
+49d1c a 57 108
+49d26 4 81 118
+49d2a 4 87 144
+49d2e 2 88 144
+49d30 6 323 106
+49d36 6 304 144
+FUNC 49d3c 34 0 std::priv::_Impl_vector<google_breakpad::MinidumpMemoryRegion, std::allocator<google_breakpad::MinidumpMemoryRegion> >::~_Impl_vector
+49d3c 2 304 144
+49d3e 2 304 144
+49d40 6 65 118
+49d46 2 74 118
+49d48 4 191 108
+49d4c 4 77 118
+49d50 a 57 108
+49d5a 4 81 118
+49d5e 4 87 144
+49d62 2 88 144
+49d64 6 323 106
+49d6a 6 304 144
+FUNC 49d70 18 0 google_breakpad::scoped_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr
+49d70 2 96 57
+49d72 2 98 57
+49d74 2 96 57
+49d76 2 98 57
+49d78 6 156 137
+49d7e 6 98 57
+49d84 4 99 57
+FUNC 49d88 3c 0 google_breakpad::BasicCodeModule::~BasicCodeModule
+49d88 2 80 66
+49d8a c 80 66
+49d96 24 156 137
+49dba a 80 66
+FUNC 49dc4 12 0 google_breakpad::BasicCodeModule::~BasicCodeModule
+49dc4 2 80 66
+49dc6 6 80 66
+49dcc 6 80 66
+49dd2 4 80 66
+FUNC 49dd8 34 0 google_breakpad::MinidumpSystemInfo::~MinidumpSystemInfo
+49dd8 2 3100 73
+49dda 2 3100 73
+49ddc 2 3101 73
+49dde 8 3100 73
+49de6 2 3101 73
+49de8 6 156 137
+49dee 6 3101 73
+49df4 4 3102 73
+49df8 6 156 137
+49dfe 6 3102 73
+49e04 8 3103 73
+FUNC 49e0c 12 0 google_breakpad::MinidumpSystemInfo::~MinidumpSystemInfo
+49e0c 2 3100 73
+49e0e 2 3100 73
+49e10 4 3103 73
+49e14 6 3103 73
+49e1a 4 3103 73
+FUNC 49e20 60 0 std::priv::_Impl_vector<short unsigned int, std::allocator<short unsigned int> >::_Impl_vector
+49e20 2 70 144
+49e22 4 342 106
+49e26 2 233 144
+49e28 4 233 144
+49e2c 4 70 144
+49e30 2 481 106
+49e32 2 342 106
+49e34 8 343 106
+49e3c 6 343 106
+49e42 2 346 106
+49e44 6 347 106
+49e4a 4 348 106
+49e4e 6 352 106
+49e54 2 356 106
+49e56 4 73 144
+49e5a 2 314 142
+49e5c 2 71 144
+49e5e 2 72 144
+49e60 2 73 144
+49e62 4 249 142
+49e66 6 249 142
+49e6c 2 249 142
+49e6e 6 146 108
+49e74 c 244 144
+FUNC 49e80 2c 0 google_breakpad::MinidumpMemoryRegion::~MinidumpMemoryRegion
+49e80 2 1199 73
+49e82 2 1199 73
+49e84 2 1200 73
+49e86 e 1199 73
+49e94 2 1200 73
+49e96 6 304 144
+49e9c 6 1200 73
+49ea2 a 1201 73
+FUNC 49eb4 12 0 google_breakpad::MinidumpMemoryRegion::~MinidumpMemoryRegion
+49eb4 2 1199 73
+49eb6 2 1199 73
+49eb8 4 1201 73
+49ebc 6 1201 73
+49ec2 4 1201 73
+FUNC 49ece 18 0 google_breakpad::scoped_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >::~scoped_ptr
+49ece 2 96 57
+49ed0 2 98 57
+49ed2 2 96 57
+49ed4 2 98 57
+49ed6 6 304 144
+49edc 6 98 57
+49ee2 4 99 57
+FUNC 49ee8 50 0 google_breakpad::MinidumpModule::~MinidumpModule
+49ee8 2 1716 73
+49eea 2 1716 73
+49eec 4 1717 73
+49ef0 e 1716 73
+49efe 2 1717 73
+49f00 6 156 137
+49f06 6 1717 73
+49f0c 6 1718 73
+49f12 6 304 144
+49f18 6 1718 73
+49f1e 6 1719 73
+49f24 6 304 144
+49f2a 6 1719 73
+49f30 8 1720 73
+FUNC 49f40 12 0 google_breakpad::MinidumpModule::~MinidumpModule
+49f40 2 1716 73
+49f42 2 1716 73
+49f44 4 1720 73
+49f48 6 1720 73
+49f4e 4 1720 73
+FUNC 49f5a 4a 0 std::priv::_Impl_vector<unsigned char, std::allocator<unsigned char> >::_Impl_vector
+49f5a 2 70 144
+49f5c 2 233 144
+49f5e 4 233 144
+49f62 4 70 144
+49f66 2 481 106
+49f68 4 346 106
+49f6c 6 347 106
+49f72 4 348 106
+49f76 4 352 106
+49f7a 2 346 106
+49f7c 2 356 106
+49f7e 2 73 144
+49f80 2 314 142
+49f82 2 71 144
+49f84 2 72 144
+49f86 a 73 144
+49f90 6 249 142
+49f96 6 146 108
+49f9c 8 244 144
+FUNC 49fa4 34 0 google_breakpad::MinidumpModuleList::MinidumpModuleList
+49fa4 2 2431 73
+49fa6 2 2431 73
+49fa8 6 2435 73
+49fae 2 2435 73
+49fb0 c 2435 73
+49fbc 6 2435 73
+49fc2 4 55 76
+49fc6 8 2435 73
+49fce a 2436 73
+FUNC 49fd8 30 0 google_breakpad::MinidumpMemoryList::MinidumpMemoryList
+49fd8 2 2673 73
+49fda 2 2673 73
+49fdc 6 2678 73
+49fe2 2 2678 73
+49fe4 6 2678 73
+49fea 6 2678 73
+49ff0 4 55 76
+49ff4 a 2678 73
+49ffe a 2679 73
+FUNC 4a008 32 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::find<unsigned int>
+4a008 2 543 141
+4a00a 6 549 141
+4a010 2 552 141
+4a012 6 553 141
+4a018 6 556 141
+4a01e 2 554 141
+4a020 6 556 141
+4a026 4 558 141
+4a02a c 559 141
+4a036 2 142 141
+4a038 2 543 141
+FUNC 4a03a 26 0 std::priv::_Rb_global<bool>::_M_increment
+4a03a 4 297 140
+4a03e a 94 141
+4a048 2 301 140
+4a04a 6 302 140
+4a050 6 304 140
+4a056 8 309 140
+4a05e 2 313 140
+FUNC 4a060 e6 0 std::priv::__read_unbuffered<char, std::char_traits<char>, std::priv::_Constant_unary_fun<bool, int> >
+4a060 10 579 116
+4a070 e 579 116
+4a07e 4 603 116
+4a082 4 579 116
+4a086 2 603 116
+4a088 a 592 116
+4a092 8 593 116
+4a09a 8 229 134
+4a0a2 4 228 134
+4a0a6 4 223 145
+4a0aa 2 228 134
+4a0ac 6 229 134
+4a0b2 4 599 116
+4a0b6 6 600 116
+4a0bc 8 600 116
+4a0c4 6 603 116
+4a0ca 6 604 116
+4a0d0 4 605 116
+4a0d4 a 244 134
+4a0de 8 244 134
+4a0e6 2 243 134
+4a0e8 2 244 134
+4a0ea a 622 116
+4a0f4 2 243 134
+4a0f6 6 244 134
+4a0fc 6 606 116
+4a102 4 612 116
+4a106 4 591 116
+4a10a a 622 116
+4a114 6 623 116
+4a11a 2 624 116
+4a11c 14 625 116
+4a130 4 594 116
+4a134 2 601 116
+4a136 8 622 116
+4a13e 8 627 116
+FUNC 4a146 e 0 google_breakpad::BasicCodeModule::code_file
+4a146 2 86 66
+4a148 c 86 66
+FUNC 4a154 e 0 google_breakpad::BasicCodeModule::code_identifier
+4a154 2 87 66
+4a156 c 87 66
+FUNC 4a162 e 0 google_breakpad::BasicCodeModule::debug_file
+4a162 2 88 66
+4a164 c 88 66
+FUNC 4a170 e 0 google_breakpad::BasicCodeModule::debug_identifier
+4a170 2 89 66
+4a172 c 89 66
+FUNC 4a17e e 0 google_breakpad::BasicCodeModule::version
+4a17e 2 90 66
+4a180 c 90 66
+FUNC 4a18c e 0 google_breakpad::Minidump::path
+4a18c 2 869 65
+4a18e 2 869 65
+4a190 6 870 65
+4a196 4 871 65
+FUNC 4a19c 48 0 google_breakpad::Minidump::Minidump
+4a19c 2 3972 73
+4a19e 2 3972 73
+4a1a0 e 3979 73
+4a1ae 2 3972 73
+4a1b0 10 3979 73
+4a1c0 4 3979 73
+4a1c4 2 3979 73
+4a1c6 a 3979 73
+4a1d0 a 3979 73
+4a1da a 3980 73
+FUNC 4a1e4 50 0 google_breakpad::MinidumpModuleList::GetMainModule
+4a1e4 2 2588 73
+4a1e6 2 2589 73
+4a1e8 2 2588 73
+4a1ea 2 2589 73
+4a1ec 1a 2590 73
+4a206 a 333 127
+4a210 6 2590 73
+4a216 4 2590 73
+4a21a 8 2596 73
+4a222 12 2597 73
+FUNC 4a248 48 0 google_breakpad::MinidumpThread::GetMemory
+4a248 2 1438 73
+4a24a 2 1439 73
+4a24c 2 1438 73
+4a24e 2 1439 73
+4a250 1a 1440 73
+4a26a a 333 127
+4a274 6 1440 73
+4a27a 4 1440 73
+4a27e 2 1444 73
+4a280 10 1445 73
+FUNC 4a290 50 0 google_breakpad::MinidumpMemoryRegion::GetBase
+4a290 2 1252 73
+4a292 4 1253 73
+4a296 1a 1254 73
+4a2b0 a 333 127
+4a2ba 6 1254 73
+4a2c0 a 1254 73
+4a2ca 6 1258 73
+4a2d0 10 1259 73
+FUNC 4a2e8 4c 0 google_breakpad::MinidumpMemoryRegion::GetSize
+4a2e8 2 1262 73
+4a2ea 2 1263 73
+4a2ec 2 1262 73
+4a2ee 2 1263 73
+4a2f0 1a 1264 73
+4a30a a 333 127
+4a314 6 1264 73
+4a31a 4 1264 73
+4a31e 4 1268 73
+4a322 12 1269 73
+FUNC 4a33c 4c 0 google_breakpad::MinidumpThread::GetStartOfStackMemoryRange
+4a33c 2 1429 73
+4a33e 4 1430 73
+4a342 1a 1431 73
+4a35c a 333 127
+4a366 6 1431 73
+4a36c 6 1431 73
+4a372 4 1435 73
+4a376 12 1436 73
+FUNC 4a388 8c 0 google_breakpad::MinidumpThread::GetThreadID
+4a388 6 1474 73
+4a38e 4 1476 73
+4a392 1a 1476 73
+4a3ac a 333 127
+4a3b6 6 1476 73
+4a3bc 4 1478 73
+4a3c0 4 1480 73
+4a3c4 1a 1481 73
+4a3de a 333 127
+4a3e8 8 1481 73
+4a3f0 4 1485 73
+4a3f4 20 1487 73
+FUNC 4a414 8c 0 google_breakpad::MinidumpException::GetThreadID
+4a414 6 2930 73
+4a41a 4 2932 73
+4a41e 1a 2932 73
+4a438 a 333 127
+4a442 6 2932 73
+4a448 4 2934 73
+4a44c 4 2936 73
+4a450 1a 2937 73
+4a46a a 333 127
+4a474 6 2937 73
+4a47a 2 2938 73
+4a47c 4 2941 73
+4a480 20 2943 73
+FUNC 4a4a0 60 0 google_breakpad::MinidumpModule::code_file
+4a4a0 2 1817 73
+4a4a2 2 1818 73
+4a4a4 2 1817 73
+4a4a6 2 1817 73
+4a4a8 2 1818 73
+4a4aa 1a 1819 73
+4a4c4 a 333 127
+4a4ce 6 1819 73
+4a4d4 e 1820 73
+4a4e2 8 1823 73
+4a4ea 16 1824 73
+FUNC 4a508 b4 0 google_breakpad::RangeMap<long long unsigned int, unsigned int>::RetrieveRange
+4a508 4 118 75
+4a50c a 118 75
+4a516 4 121 75
+4a51a 18 121 75
+4a532 a 333 127
+4a53c 6 121 75
+4a542 4 568 141
+4a546 2 571 141
+4a548 e 572 141
+4a556 6 575 141
+4a55c 2 573 141
+4a55e 6 575 141
+4a564 4 125 75
+4a568 12 133 75
+4a57a 4 136 75
+4a57e 2 137 75
+4a580 4 107 76
+4a584 4 138 75
+4a588 a 139 75
+4a592 14 140 75
+4a5a6 2 142 75
+4a5a8 14 143 75
+FUNC 4a5bc 19c 0 google_breakpad::MinidumpContext::CheckAgainstSystemInfo
+4a5bc c 1106 73
+4a5c8 2 1109 73
+4a5ca 4 1106 73
+4a5ce 2 1106 73
+4a5d0 2 1109 73
+4a5d2 2 1106 73
+4a5d4 6 1109 73
+4a5da 4 1110 73
+4a5de 1a 1112 73
+4a5f8 a 333 127
+4a602 6 1112 73
+4a608 4 1113 73
+4a60c 4 675 65
+4a610 4 1130 73
+4a614 2 1125 73
+4a616 26 1130 73
+4a63c 6 1155 73
+4a642 c 1130 73
+4a64e 6 1165 73
+4a654 2 1132 73
+4a656 a 1133 73
+4a660 4 1140 73
+4a664 6 1145 73
+4a66a 4 1150 73
+4a66e 4 1160 73
+4a672 4 1165 73
+4a676 4 1170 73
+4a67a 10 1181 73
+4a68a 1c 1120 73
+4a6a6 a 333 127
+4a6b0 6 1120 73
+4a6b6 2 1121 73
+4a6b8 1c 1175 73
+4a6d4 4 110 72
+4a6d8 4 333 127
+4a6dc 2 1176 73
+4a6de 6 333 127
+4a6e4 8 1176 73
+4a6ec a 1176 73
+4a6f6 2 333 127
+4a6f8 2 1178 73
+4a6fa 6 333 127
+4a700 8 1178 73
+4a708 8 1178 73
+4a710 c 156 137
+4a71c 6 1175 73
+4a722 4 1175 73
+4a726 32 1181 73
+FUNC 4a758 d8 0 google_breakpad::MinidumpModuleList::GetModuleForAddress
+4a758 6 2571 73
+4a75e 6 2571 73
+4a764 2 2572 73
+4a766 c 2571 73
+4a772 2 2572 73
+4a774 1a 2573 73
+4a78e c 333 127
+4a79a 12 2578 73
+4a7ac 1a 2579 73
+4a7c6 4 110 72
+4a7ca 2 333 127
+4a7cc 2 2580 73
+4a7ce 8 333 127
+4a7d6 a 2580 73
+4a7e0 8 2580 73
+4a7e8 6 156 137
+4a7ee 6 2579 73
+4a7f4 4 2581 73
+4a7f8 a 2584 73
+4a802 2e 2585 73
+FUNC 4a844 b0 0 google_breakpad::MinidumpThreadList::GetThreadAtIndex
+4a844 2 1652 73
+4a846 2 1653 73
+4a848 2 1652 73
+4a84a 4 1652 73
+4a84e 2 1653 73
+4a850 1a 1654 73
+4a86a a 333 127
+4a874 4 1654 73
+4a878 6 1658 73
+4a87e 1a 1659 73
+4a898 2 110 72
+4a89a a 333 127
+4a8a4 a 254 126
+4a8ae 8 333 127
+4a8b6 8 254 126
+4a8be 6 1659 73
+4a8c4 6 1659 73
+4a8ca 8 202 144
+4a8d2 22 1665 73
+FUNC 4a8f4 b0 0 google_breakpad::MinidumpModuleList::GetModuleAtIndex
+4a8f4 2 2624 73
+4a8f6 2 2625 73
+4a8f8 2 2624 73
+4a8fa 4 2624 73
+4a8fe 2 2625 73
+4a900 1a 2626 73
+4a91a a 333 127
+4a924 4 2626 73
+4a928 6 2630 73
+4a92e 1a 2631 73
+4a948 2 110 72
+4a94a a 333 127
+4a954 a 254 126
+4a95e 8 333 127
+4a966 8 254 126
+4a96e 6 2631 73
+4a974 6 2631 73
+4a97a 8 202 144
+4a982 22 2637 73
+FUNC 4a9b8 b0 0 google_breakpad::MinidumpMemoryList::GetMemoryRegionAtIndex
+4a9b8 2 2805 73
+4a9ba 2 2806 73
+4a9bc 2 2805 73
+4a9be 4 2805 73
+4a9c2 2 2806 73
+4a9c4 1a 2807 73
+4a9de a 333 127
+4a9e8 4 2807 73
+4a9ec 6 2811 73
+4a9f2 1a 2812 73
+4aa0c 2 110 72
+4aa0e a 333 127
+4aa18 a 254 126
+4aa22 8 333 127
+4aa2a 8 254 126
+4aa32 6 2812 73
+4aa38 6 2812 73
+4aa3e 8 202 144
+4aa46 22 2818 73
+FUNC 4aa68 d8 0 google_breakpad::MinidumpMemoryList::GetMemoryRegionForAddress
+4aa68 6 2822 73
+4aa6e 6 2822 73
+4aa74 2 2823 73
+4aa76 c 2822 73
+4aa82 2 2823 73
+4aa84 1a 2824 73
+4aa9e c 333 127
+4aaaa 12 2829 73
+4aabc 1a 2830 73
+4aad6 4 110 72
+4aada 2 333 127
+4aadc 2 2831 73
+4aade 8 333 127
+4aae6 a 2831 73
+4aaf0 8 2831 73
+4aaf8 6 156 137
+4aafe 6 2830 73
+4ab04 4 2832 73
+4ab08 8 2835 73
+4ab10 30 2836 73
+FUNC 4ab40 16c 0 google_breakpad::MinidumpModuleList::GetModuleAtSequence
+4ab40 6 2601 73
+4ab46 2 2602 73
+4ab48 4 2601 73
+4ab4c 4 2601 73
+4ab50 2 2602 73
+4ab52 1c 2603 73
+4ab6e a 333 127
+4ab78 4 2603 73
+4ab7c 6 2607 73
+4ab82 1c 2608 73
+4ab9e 2 110 72
+4aba0 a 333 127
+4abaa a 254 126
+4abb4 8 333 127
+4abbc 8 254 126
+4abc4 6 2608 73
+4abca 4 2610 73
+4abce 4 2614 73
+4abd2 8 184 75
+4abda 1a 185 75
+4abf4 2 110 72
+4abf6 a 333 127
+4ac00 a 240 126
+4ac0a 8 333 127
+4ac12 a 240 126
+4ac1c 8 185 75
+4ac24 4 142 141
+4ac28 4 192 75
+4ac2c 4 192 75
+4ac30 4 177 141
+4ac34 8 192 75
+4ac3c 2 2614 73
+4ac3e 1c 2615 73
+4ac5a 2 110 72
+4ac5c a 333 127
+4ac66 6 254 126
+4ac6c 8 2619 73
+4ac74 38 2620 73
+FUNC 4acc0 29c 0 google_breakpad::UTF16ToUTF8
+4acc0 a 234 73
+4acca e 234 73
+4acd8 2 235 73
+4acda 2 234 73
+4acdc 6 235 73
+4ace2 8 235 73
+4acea 8 192 144
+4acf2 2 159 135
+4acf4 4 92 57
+4acf8 2 159 135
+4acfa a 600 135
+4ad04 a 400 136
+4ad0e 2 72 137
+4ad10 4 162 135
+4ad14 4 72 137
+4ad18 4 72 137
+4ad1c 4 163 135
+4ad20 6 166 135
+4ad26 a 248 73
+4ad30 a 242 73
+4ad3a 6 246 73
+4ad40 4 247 73
+4ad44 6 248 73
+4ad4a e 252 73
+4ad58 1a 253 73
+4ad72 2 110 72
+4ad74 6 333 127
+4ad7a 2 254 73
+4ad7c 4 333 127
+4ad80 a 254 73
+4ad8a 8 254 73
+4ad92 6 333 127
+4ad98 c 256 73
+4ada4 4 259 73
+4ada8 4 258 73
+4adac 2 259 73
+4adae 2 258 73
+4adb0 2 259 73
+4adb2 4 258 73
+4adb6 2 259 73
+4adb8 1c 260 73
+4add4 2 110 72
+4add6 6 333 127
+4addc 2 261 73
+4adde 4 333 127
+4ade2 a 261 73
+4adec 8 261 73
+4adf4 a 333 127
+4adfe 2 265 73
+4ae00 8 266 73
+4ae08 4 265 73
+4ae0c 2 266 73
+4ae0e 1c 267 73
+4ae2a 2 110 72
+4ae2c 6 333 127
+4ae32 2 268 73
+4ae34 4 333 127
+4ae38 8 268 73
+4ae40 a 268 73
+4ae4a 2 333 127
+4ae4c 2 269 73
+4ae4e 6 333 127
+4ae54 a 269 73
+4ae5e 8 269 73
+4ae66 c 156 137
+4ae72 6 267 73
+4ae78 4 255 73
+4ae7c a 272 73
+4ae86 2 281 73
+4ae88 2 276 73
+4ae8a 2 281 73
+4ae8c 6 453 136
+4ae92 6 283 73
+4ae98 4 284 73
+4ae9c a 453 136
+4aea6 4 285 73
+4aeaa 8 453 136
+4aeb2 12 286 73
+4aec4 4 287 73
+4aec8 6 453 136
+4aece 4 291 73
+4aed2 a 453 136
+4aedc 4 292 73
+4aee0 a 453 136
+4aeea 4 293 73
+4aeee 14 453 136
+4af02 4 242 73
+4af06 2 144 57
+4af08 2 143 57
+4af0a 2 144 57
+4af0c 6 302 73
+4af12 4a 303 73
+FUNC 4af5c 1dc 0 google_breakpad::MinidumpModule::code_identifier
+4af5c e 1827 73
+4af6a 6 1827 73
+4af70 2 1828 73
+4af72 6 1827 73
+4af78 2 1828 73
+4af7a 1a 1829 73
+4af94 a 333 127
+4af9e 6 1829 73
+4afa4 8 1830 73
+4afac 4 1833 73
+4afb0 6 1834 73
+4afb6 8 1836 73
+4afbe 4 1837 73
+4afc2 1a 1839 73
+4afdc a 333 127
+4afe6 6 1839 73
+4afec 8 1840 73
+4aff4 6 675 65
+4affa a 1849 73
+4b004 18 1851 73
+4b01c 18 1858 73
+4b034 6 1859 73
+4b03a a 1851 73
+4b044 a 1873 73
+4b04e 2 1874 73
+4b050 1a 1881 73
+4b06a 4 110 72
+4b06e 2 333 127
+4b070 2 1881 73
+4b072 8 333 127
+4b07a a 1881 73
+4b084 8 1881 73
+4b08c 6 156 137
+4b092 6 1881 73
+4b098 8 1886 73
+4b0a0 8 156 137
+4b0a8 1a 1845 73
+4b0c2 a 333 127
+4b0cc 6 1845 73
+4b0d2 c 1846 73
+4b0de 5a 1887 73
+FUNC 4b140 170 0 google_breakpad::MinidumpModule::debug_identifier
+4b140 e 1970 73
+4b14e 2 1970 73
+4b150 2 1971 73
+4b152 8 1970 73
+4b15a 2 1971 73
+4b15c 18 1972 73
+4b174 a 333 127
+4b17e 6 1972 73
+4b184 8 1973 73
+4b18c 4 1976 73
+4b190 c 1977 73
+4b19c c 1979 73
+4b1a8 8 1982 73
+4b1b0 c 1983 73
+4b1bc 3e 2005 73
+4b1fa 8 2007 73
+4b202 14 2017 73
+4b216 8 2018 73
+4b21e 8 2033 73
+4b226 18 2033 73
+4b23e 2 110 72
+4b240 a 333 127
+4b24a a 2033 73
+4b254 6 2033 73
+4b25a 8 2035 73
+4b262 6 156 137
+4b268 48 2036 73
+FUNC 4b2b8 11c 0 google_breakpad::MinidumpModule::version
+4b2b8 e 2039 73
+4b2c6 2 2039 73
+4b2c8 2 2040 73
+4b2ca 8 2039 73
+4b2d2 2 2040 73
+4b2d4 18 2041 73
+4b2ec a 333 127
+4b2f6 6 2041 73
+4b2fc e 2042 73
+4b30a c 2045 73
+4b316 8 2047 73
+4b31e 2 2048 73
+4b320 4 2047 73
+4b324 20 2054 73
+4b344 8 2055 73
+4b34c 8 2065 73
+4b354 18 2065 73
+4b36c 2 110 72
+4b36e a 333 127
+4b378 a 2065 73
+4b382 6 2065 73
+4b388 8 2067 73
+4b390 6 156 137
+4b396 3e 2068 73
+FUNC 4b3dc 1b4 0 google_breakpad::MinidumpModule::debug_file
+4b3dc e 1890 73
+4b3ea 2 1890 73
+4b3ec 2 1891 73
+4b3ee 8 1890 73
+4b3f6 2 1891 73
+4b3f8 18 1892 73
+4b410 a 333 127
+4b41a 6 1892 73
+4b420 8 1893 73
+4b428 4 1896 73
+4b42c c 1897 73
+4b438 a 1899 73
+4b442 6 1901 73
+4b448 a 1902 73
+4b452 8 1909 73
+4b45a 6 1910 73
+4b460 a 1917 73
+4b46a 8 1924 73
+4b472 e 1926 73
+4b480 6 1929 73
+4b486 2 112 137
+4b488 8 225 136
+4b490 2 112 137
+4b492 2 481 106
+4b494 4 225 136
+4b498 a 349 136
+4b4a2 8 156 137
+4b4aa 4 1943 73
+4b4ae 6 1944 73
+4b4b4 4 1949 73
+4b4b8 4 1945 73
+4b4bc 4 1949 73
+4b4c0 c 116 148
+4b4cc 6 1950 73
+4b4d2 c 1951 73
+4b4de 8 1955 73
+4b4e6 2 348 136
+4b4e8 2 1955 73
+4b4ea 2 92 57
+4b4ec 2 348 136
+4b4ee a 349 136
+4b4f8 6 1955 73
+4b4fe 6 304 144
+4b504 8 1964 73
+4b50c 18 1964 73
+4b524 2 110 72
+4b526 a 333 127
+4b530 a 1964 73
+4b53a 6 1964 73
+4b540 8 1966 73
+4b548 6 156 137
+4b54e 42 1967 73
+FUNC 4b598 20 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_erase
+4b598 6 655 140
+4b59e 2 657 140
+4b5a0 8 658 140
+4b5a8 2 659 140
+4b5aa c 161 106
+4b5b6 2 664 140
+FUNC 4b5b8 34 0 google_breakpad::MinidumpThreadList::~MinidumpThreadList
+4b5b8 2 1548 73
+4b5ba 2 1548 73
+4b5bc 2 1549 73
+4b5be 8 1548 73
+4b5c6 2 1549 73
+4b5c8 6 42 148
+4b5ce 6 1549 73
+4b5d4 4 531 141
+4b5d8 a 532 141
+4b5e2 a 1550 73
+FUNC 4b5ec 12 0 google_breakpad::MinidumpThreadList::~MinidumpThreadList
+4b5ec 2 1548 73
+4b5ee 2 1548 73
+4b5f0 4 1550 73
+4b5f4 6 1550 73
+4b5fa 4 1550 73
+FUNC 4b5fe 20 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> > >::_M_erase
+4b5fe 6 655 140
+4b604 2 657 140
+4b606 8 658 140
+4b60e 2 659 140
+4b610 c 161 106
+4b61c 2 664 140
+FUNC 4b61e 1a 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> > >::clear
+4b61e 2 531 141
+4b620 2 530 141
+4b622 2 530 141
+4b624 2 531 141
+4b626 6 532 141
+4b62c 2 534 141
+4b62e 2 533 141
+4b630 2 534 141
+4b632 2 535 141
+4b634 4 536 141
+FUNC 4b638 3c 0 google_breakpad::MinidumpModuleList::~MinidumpModuleList
+4b638 2 2439 73
+4b63a 2 2439 73
+4b63c 2 2440 73
+4b63e e 2439 73
+4b64c 2 2440 73
+4b64e 6 414 141
+4b654 6 2440 73
+4b65a 4 2441 73
+4b65e 6 42 148
+4b664 6 2441 73
+4b66a a 2442 73
+FUNC 4b67c 12 0 google_breakpad::MinidumpModuleList::~MinidumpModuleList
+4b67c 2 2439 73
+4b67e 2 2439 73
+4b680 4 2442 73
+4b684 6 2442 73
+4b68a 4 2442 73
+FUNC 4b698 44 0 google_breakpad::MinidumpMemoryList::~MinidumpMemoryList
+4b698 2 2682 73
+4b69a 2 2682 73
+4b69c 2 2683 73
+4b69e 8 2682 73
+4b6a6 2 2683 73
+4b6a8 6 414 141
+4b6ae 6 2683 73
+4b6b4 4 2684 73
+4b6b8 6 42 148
+4b6be 6 2684 73
+4b6c4 4 2685 73
+4b6c8 6 42 148
+4b6ce 6 2685 73
+4b6d4 8 2686 73
+FUNC 4b6dc 12 0 google_breakpad::MinidumpMemoryList::~MinidumpMemoryList
+4b6dc 2 2682 73
+4b6de 2 2682 73
+4b6e0 4 2686 73
+4b6e4 6 2686 73
+4b6ea 4 2686 73
+FUNC 4b6ee 28 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_erase
+4b6ee 6 655 140
+4b6f4 2 657 140
+4b6f6 8 658 140
+4b6fe 2 659 140
+4b700 8 51 129
+4b708 c 161 106
+4b714 2 664 140
+FUNC 4b718 94 0 google_breakpad::Minidump::~Minidump
+4b718 6 3992 73
+4b71e 6 3992 73
+4b724 2 3993 73
+4b726 2 3992 73
+4b728 2 3993 73
+4b72a 1a 3994 73
+4b744 a 333 127
+4b74e 6 3994 73
+4b754 8 3996 73
+4b75c 4 3997 73
+4b760 6 3997 73
+4b766 4 3999 73
+4b76a 6 42 148
+4b770 6 3999 73
+4b776 4 4000 73
+4b77a 4 531 141
+4b77e 8 532 141
+4b786 6 4000 73
+4b78c 8 156 137
+4b794 18 4001 73
+FUNC 4b7ac 12 0 google_breakpad::Minidump::~Minidump
+4b7ac 2 3992 73
+4b7ae 2 3992 73
+4b7b0 4 4001 73
+4b7b4 6 4001 73
+4b7ba 4 4001 73
+FUNC 4b7be 40 0 std::_M_init_noskip<char, std::char_traits<char> >
+4b7be 2 310 117
+4b7c0 2 310 117
+4b7c2 e 311 117
+4b7d0 2 312 117
+4b7d2 4 313 117
+4b7d6 c 315 117
+4b7e2 4 316 117
+4b7e6 6 319 117
+4b7ec 8 320 117
+4b7f4 2 174 115
+4b7f6 8 321 117
+FUNC 4b800 e4 0 google_breakpad::Minidump::SeekSet
+4b800 a 4445 73
+4b80a 2 4448 73
+4b80c 4 4445 73
+4b810 8 4445 73
+4b818 2 4449 73
+4b81a 4 4448 73
+4b81e 4 207 117
+4b822 8 521 116
+4b82a 4 176 115
+4b82e 6 522 116
+4b834 4 522 116
+4b838 e 4452 73
+4b846 c 4453 73
+4b852 6 4454 73
+4b858 4 4455 73
+4b85c 4 4454 73
+4b860 12 4455 73
+4b872 2 110 72
+4b874 a 333 127
+4b87e a 240 126
+4b888 8 333 127
+4b890 8 4455 73
+4b898 6 4455 73
+4b89e a 156 137
+4b8a8 2 4458 73
+4b8aa c 4459 73
+4b8b6 14 147 134
+4b8ca 1a 4459 73
+FUNC 4b8e4 1e4 0 google_breakpad::Minidump::SeekToStreamType
+4b8e4 8 4526 73
+4b8ec 6 4526 73
+4b8f2 6 4528 73
+4b8f8 1a 4528 73
+4b912 a 333 127
+4b91c 6 4528 73
+4b922 8 4530 73
+4b92a 6 4532 73
+4b930 1a 4533 73
+4b94a a 333 127
+4b954 6 4533 73
+4b95a 2 4534 73
+4b95c a 210 123
+4b966 2 168 141
+4b968 6 4538 73
+4b96e 1a 4540 73
+4b988 2 110 72
+4b98a a 333 127
+4b994 8 254 126
+4b99c 2 333 127
+4b99e 2 4541 73
+4b9a0 6 333 127
+4b9a6 6 4540 73
+4b9ac 2 4541 73
+4b9ae a 4544 73
+4b9b8 8 4545 73
+4b9c0 1c 4546 73
+4b9dc 2 110 72
+4b9de a 333 127
+4b9e8 a 254 126
+4b9f2 8 333 127
+4b9fa a 254 126
+4ba04 8 333 127
+4ba0c 8 254 126
+4ba14 6 4546 73
+4ba1a 4 4549 73
+4ba1e 6 202 144
+4ba24 2 4553 73
+4ba26 6 202 144
+4ba2c c 4553 73
+4ba38 1c 4554 73
+4ba54 2 110 72
+4ba56 a 333 127
+4ba60 8 254 126
+4ba68 6 4554 73
+4ba6e 2 4556 73
+4ba70 8 4559 73
+4ba78 6 4561 73
+4ba7e 4a 4562 73
+FUNC 4bac8 1f4 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpException>
+4bac8 4 4566 73
+4bacc 2 4570 73
+4bace 4 4566 73
+4bad2 4 4566 73
+4bad6 2 4570 73
+4bad8 4 4572 73
+4badc 1c 4572 73
+4baf8 4 110 72
+4bafc a 333 127
+4bb06 8 254 126
+4bb0e 8 333 127
+4bb16 6 4572 73
+4bb1c 4 4575 73
+4bb20 6 4577 73
+4bb26 1c 4578 73
+4bb42 2 110 72
+4bb44 a 333 127
+4bb4e 8 254 126
+4bb56 6 4578 73
+4bb5c 4 4579 73
+4bb60 c 210 123
+4bb6c 4 197 141
+4bb70 8 4583 73
+4bb78 1c 4585 73
+4bb94 2 110 72
+4bb96 a 333 127
+4bba0 8 254 126
+4bba8 a 333 127
+4bbb2 a 4592 73
+4bbbc 4 4595 73
+4bbc0 4 4596 73
+4bbc4 e 4600 73
+4bbd2 1c 4601 73
+4bbee 2 110 72
+4bbf0 a 333 127
+4bbfa 8 254 126
+4bc02 6 4601 73
+4bc08 2 4602 73
+4bc0a 8 4605 73
+4bc12 6 4605 73
+4bc18 2 4607 73
+4bc1a 2 92 57
+4bc1c 8 4607 73
+4bc24 4 4607 73
+4bc28 1c 4608 73
+4bc44 2 110 72
+4bc46 a 333 127
+4bc50 8 254 126
+4bc58 6 4608 73
+4bc5e 2 4609 73
+4bc60 2 4612 73
+4bc62 4 4613 73
+4bc66 2 4614 73
+4bc68 4 144 57
+4bc6c 4 98 57
+4bc70 6 98 57
+4bc76 46 4615 73
+FUNC 4bcbc e 0 google_breakpad::Minidump::GetException
+4bcbc 2 4249 73
+4bcbe 6 4251 73
+4bcc4 6 4252 73
+FUNC 4bccc 1f4 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpSystemInfo>
+4bccc 4 4566 73
+4bcd0 2 4570 73
+4bcd2 4 4566 73
+4bcd6 4 4566 73
+4bcda 2 4570 73
+4bcdc 4 4572 73
+4bce0 1c 4572 73
+4bcfc 4 110 72
+4bd00 a 333 127
+4bd0a 8 254 126
+4bd12 8 333 127
+4bd1a 6 4572 73
+4bd20 4 4575 73
+4bd24 6 4577 73
+4bd2a 1c 4578 73
+4bd46 2 110 72
+4bd48 a 333 127
+4bd52 8 254 126
+4bd5a 6 4578 73
+4bd60 4 4579 73
+4bd64 c 210 123
+4bd70 4 197 141
+4bd74 8 4583 73
+4bd7c 1c 4585 73
+4bd98 2 110 72
+4bd9a a 333 127
+4bda4 8 254 126
+4bdac a 333 127
+4bdb6 a 4592 73
+4bdc0 4 4595 73
+4bdc4 4 4596 73
+4bdc8 e 4600 73
+4bdd6 1c 4601 73
+4bdf2 2 110 72
+4bdf4 a 333 127
+4bdfe 8 254 126
+4be06 6 4601 73
+4be0c 2 4602 73
+4be0e 8 4605 73
+4be16 6 4605 73
+4be1c 2 4607 73
+4be1e 2 92 57
+4be20 8 4607 73
+4be28 4 4607 73
+4be2c 1c 4608 73
+4be48 2 110 72
+4be4a a 333 127
+4be54 8 254 126
+4be5c 6 4608 73
+4be62 2 4609 73
+4be64 2 4612 73
+4be66 4 4613 73
+4be6a 2 4614 73
+4be6c 4 144 57
+4be70 4 98 57
+4be74 6 98 57
+4be7a 46 4615 73
+FUNC 4bec0 e 0 google_breakpad::Minidump::GetSystemInfo
+4bec0 2 4260 73
+4bec2 6 4262 73
+4bec8 6 4263 73
+FUNC 4bed0 1f4 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpThreadList>
+4bed0 4 4566 73
+4bed4 2 4570 73
+4bed6 4 4566 73
+4beda 4 4566 73
+4bede 2 4570 73
+4bee0 4 4572 73
+4bee4 1c 4572 73
+4bf00 4 110 72
+4bf04 a 333 127
+4bf0e 8 254 126
+4bf16 8 333 127
+4bf1e 6 4572 73
+4bf24 4 4575 73
+4bf28 6 4577 73
+4bf2e 1c 4578 73
+4bf4a 2 110 72
+4bf4c a 333 127
+4bf56 8 254 126
+4bf5e 6 4578 73
+4bf64 4 4579 73
+4bf68 c 210 123
+4bf74 4 197 141
+4bf78 8 4583 73
+4bf80 1c 4585 73
+4bf9c 2 110 72
+4bf9e a 333 127
+4bfa8 8 254 126
+4bfb0 a 333 127
+4bfba a 4592 73
+4bfc4 4 4595 73
+4bfc8 4 4596 73
+4bfcc e 4600 73
+4bfda 1c 4601 73
+4bff6 2 110 72
+4bff8 a 333 127
+4c002 8 254 126
+4c00a 6 4601 73
+4c010 2 4602 73
+4c012 8 4605 73
+4c01a 6 4605 73
+4c020 2 4607 73
+4c022 2 92 57
+4c024 8 4607 73
+4c02c 4 4607 73
+4c030 1c 4608 73
+4c04c 2 110 72
+4c04e a 333 127
+4c058 8 254 126
+4c060 6 4608 73
+4c066 2 4609 73
+4c068 2 4612 73
+4c06a 4 4613 73
+4c06e 2 4614 73
+4c070 4 144 57
+4c074 4 98 57
+4c078 6 98 57
+4c07e 46 4615 73
+FUNC 4c0c4 e 0 google_breakpad::Minidump::GetThreadList
+4c0c4 2 4231 73
+4c0c6 6 4233 73
+4c0cc 6 4234 73
+FUNC 4c0d4 1f4 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpModuleList>
+4c0d4 4 4566 73
+4c0d8 2 4570 73
+4c0da 4 4566 73
+4c0de 4 4566 73
+4c0e2 2 4570 73
+4c0e4 4 4572 73
+4c0e8 1c 4572 73
+4c104 4 110 72
+4c108 a 333 127
+4c112 8 254 126
+4c11a 8 333 127
+4c122 6 4572 73
+4c128 4 4575 73
+4c12c 6 4577 73
+4c132 1c 4578 73
+4c14e 2 110 72
+4c150 a 333 127
+4c15a 8 254 126
+4c162 6 4578 73
+4c168 4 4579 73
+4c16c c 210 123
+4c178 4 197 141
+4c17c 8 4583 73
+4c184 1c 4585 73
+4c1a0 2 110 72
+4c1a2 a 333 127
+4c1ac 8 254 126
+4c1b4 a 333 127
+4c1be a 4592 73
+4c1c8 4 4595 73
+4c1cc 4 4596 73
+4c1d0 e 4600 73
+4c1de 1c 4601 73
+4c1fa 2 110 72
+4c1fc a 333 127
+4c206 8 254 126
+4c20e 6 4601 73
+4c214 2 4602 73
+4c216 8 4605 73
+4c21e 6 4605 73
+4c224 2 4607 73
+4c226 2 92 57
+4c228 8 4607 73
+4c230 4 4607 73
+4c234 1c 4608 73
+4c250 2 110 72
+4c252 a 333 127
+4c25c 8 254 126
+4c264 6 4608 73
+4c26a 2 4609 73
+4c26c 2 4612 73
+4c26e 4 4613 73
+4c272 2 4614 73
+4c274 4 144 57
+4c278 4 98 57
+4c27c 6 98 57
+4c282 46 4615 73
+FUNC 4c2c8 e 0 google_breakpad::Minidump::GetModuleList
+4c2c8 2 4237 73
+4c2ca 6 4239 73
+4c2d0 6 4240 73
+FUNC 4c2d8 1f4 0 google_breakpad::Minidump::GetStream<google_breakpad::MinidumpMemoryList>
+4c2d8 4 4566 73
+4c2dc 2 4570 73
+4c2de 4 4566 73
+4c2e2 4 4566 73
+4c2e6 2 4570 73
+4c2e8 4 4572 73
+4c2ec 1c 4572 73
+4c308 4 110 72
+4c30c a 333 127
+4c316 8 254 126
+4c31e 8 333 127
+4c326 6 4572 73
+4c32c 4 4575 73
+4c330 6 4577 73
+4c336 1c 4578 73
+4c352 2 110 72
+4c354 a 333 127
+4c35e 8 254 126
+4c366 6 4578 73
+4c36c 4 4579 73
+4c370 c 210 123
+4c37c 4 197 141
+4c380 8 4583 73
+4c388 1c 4585 73
+4c3a4 2 110 72
+4c3a6 a 333 127
+4c3b0 8 254 126
+4c3b8 a 333 127
+4c3c2 a 4592 73
+4c3cc 4 4595 73
+4c3d0 4 4596 73
+4c3d4 e 4600 73
+4c3e2 1c 4601 73
+4c3fe 2 110 72
+4c400 a 333 127
+4c40a 8 254 126
+4c412 6 4601 73
+4c418 2 4602 73
+4c41a 8 4605 73
+4c422 6 4605 73
+4c428 2 4607 73
+4c42a 2 92 57
+4c42c 8 4607 73
+4c434 4 4607 73
+4c438 1c 4608 73
+4c454 2 110 72
+4c456 a 333 127
+4c460 8 254 126
+4c468 6 4608 73
+4c46e 2 4609 73
+4c470 2 4612 73
+4c472 4 4613 73
+4c476 2 4614 73
+4c478 4 144 57
+4c47c 4 98 57
+4c480 6 98 57
+4c486 46 4615 73
+FUNC 4c4cc e 0 google_breakpad::Minidump::GetMemoryList
+4c4cc 2 4243 73
+4c4ce 6 4245 73
+4c4d4 6 4246 73
+FUNC 4c4dc 284 0 google_breakpad::Minidump::Open
+4c4dc c 4004 73
+4c4e8 2 4005 73
+4c4ea 4 4004 73
+4c4ee c 4004 73
+4c4fa 2 4005 73
+4c4fc 1a 4006 73
+4c516 2 110 72
+4c518 a 333 127
+4c522 8 4006 73
+4c52a 6 4006 73
+4c530 c 4010 73
+4c53c a 4013 73
+4c546 a 92 113
+4c550 2 87 117
+4c552 2 88 117
+4c554 6 87 117
+4c55a 2 87 117
+4c55c c 92 113
+4c568 2 87 117
+4c56a 6 87 117
+4c570 6 88 117
+4c576 2 464 110
+4c578 2 34 133
+4c57a 6 464 110
+4c580 c 464 110
+4c58c 2 34 133
+4c58e 2 464 110
+4c590 18 34 133
+4c5a8 c 61 109
+4c5b4 6 61 109
+4c5ba 3a 61 109
+4c5f4 2 63 109
+4c5f6 4 61 109
+4c5fa 4 63 109
+4c5fe e 347 122
+4c60c c 736 109
+4c618 2 746 109
+4c61a 4 747 109
+4c61e 8 748 109
+4c626 6 63 109
+4c62c 8 465 110
+4c634 e 169 110
+4c642 4 4013 73
+4c646 e 4014 73
+4c654 a 4015 73
+4c65e 6 4016 73
+4c664 6 4017 73
+4c66a 2 4016 73
+4c66c 14 4017 73
+4c680 2 110 72
+4c682 a 333 127
+4c68c a 4017 73
+4c696 8 333 127
+4c69e a 240 126
+4c6a8 8 333 127
+4c6b0 8 4018 73
+4c6b8 6 4017 73
+4c6be 6 156 137
+4c6c4 2 4019 73
+4c6c6 e 4024 73
+4c6d4 a 467 110
+4c6de 18 4022 73
+4c6f6 2 110 72
+4c6f8 a 333 127
+4c702 8 4022 73
+4c70a 6 4022 73
+4c710 4 4023 73
+4c714 4c 4024 73
+FUNC 4c760 48 0 google_breakpad::Minidump::Tell
+4c760 2 4461 73
+4c762 6 4462 73
+4c768 4 4462 73
+4c76c 6 207 117
+4c772 a 497 116
+4c77c 2 499 116
+4c77e 2 176 115
+4c780 6 499 116
+4c786 10 147 134
+4c796 8 89 145
+4c79e 2 4470 73
+4c7a0 4 4463 73
+4c7a4 4 4475 73
+FUNC 4c7a8 bc 0 google_breakpad::Minidump::GetContextCPUFlagsFromSystemInfo
+4c7a8 2 4026 73
+4c7aa 4 4028 73
+4c7ae 4 4026 73
+4c7b2 4 4031 73
+4c7b6 2 4032 73
+4c7b8 2 4031 73
+4c7ba 2 4032 73
+4c7bc c 4039 73
+4c7c8 2 4039 73
+4c7ca 6 4039 73
+4c7d0 6 675 65
+4c7d6 14 4042 73
+4c7ea 6 4044 73
+4c7f0 6 4042 73
+4c7f6 4 4059 73
+4c7fa 1c 4042 73
+4c816 6 4056 73
+4c81c 6 4047 73
+4c822 6 4050 73
+4c828 6 4053 73
+4c82e 6 4062 73
+4c834 6 4065 73
+4c83a 6 4068 73
+4c840 2 4074 73
+4c842 2 4075 73
+4c844 6 4077 73
+4c84a 6 4083 73
+4c850 4 4089 73
+4c854 4 4095 73
+4c858 4 4096 73
+4c85c 4 4095 73
+4c860 4 4096 73
+FUNC 4c864 116 0 std::basic_istream<char, std::char_traits<char> >::read
+4c864 6 783 116
+4c86a 6 783 116
+4c870 4 207 117
+4c874 6 785 116
+4c87a 2 787 116
+4c87c 6 787 116
+4c882 2 175 115
+4c884 6 787 116
+4c88a c 802 116
+4c896 8 804 116
+4c89e 2 175 115
+4c8a0 4 804 116
+4c8a4 a 805 116
+4c8ae 8 789 116
+4c8b6 2 642 116
+4c8b8 2 640 116
+4c8ba 6 641 116
+4c8c0 4 645 116
+4c8c4 6 645 116
+4c8ca 4 703 116
+4c8ce e 704 116
+4c8dc 4 640 116
+4c8e0 16 799 116
+4c8f6 4 796 116
+4c8fa 4 652 116
+4c8fe 8 655 116
+4c906 6 172 145
+4c90c 8 172 145
+4c914 2 91 134
+4c916 2 658 116
+4c918 2 91 134
+4c91a 2 671 116
+4c91c 2 657 116
+4c91e 2 91 134
+4c920 2 671 116
+4c922 6 235 134
+4c928 2 234 134
+4c92a 6 235 134
+4c930 14 690 116
+4c944 6 682 116
+4c94a 6 700 116
+4c950 22 714 116
+4c972 8 808 116
+FUNC 4c97c 114 0 google_breakpad::Minidump::ReadBytes
+4c97c 10 4413 73
+4c98c 2 4416 73
+4c98e 2 4413 73
+4c990 4 4413 73
+4c994 4 4416 73
+4c998 8 4419 73
+4c9a0 4 4421 73
+4c9a4 c 4422 73
+4c9b0 6 4423 73
+4c9b6 2 4424 73
+4c9b8 2 4423 73
+4c9ba 18 4424 73
+4c9d2 2 110 72
+4c9d4 a 333 127
+4c9de a 240 126
+4c9e8 8 333 127
+4c9f0 8 4424 73
+4c9f8 6 4424 73
+4c9fe 8 156 137
+4ca06 4 4436 73
+4ca0a 1c 4437 73
+4ca26 2 110 72
+4ca28 a 333 127
+4ca32 a 254 126
+4ca3c 8 333 127
+4ca44 8 254 126
+4ca4c 6 4437 73
+4ca52 4 4438 73
+4ca56 2 4441 73
+4ca58 38 4442 73
+FUNC 4ca90 11a8 0 google_breakpad::MinidumpContext::Read
+4ca90 4 423 73
+4ca94 4 424 73
+4ca98 10 423 73
+4caa8 2 423 73
+4caaa 4 424 73
+4caae 4 423 73
+4cab2 4 443 73
+4cab6 a 448 73
+4cac0 24 449 73
+4cae4 c 333 127
+4caf0 6 449 73
+4caf6 10 451 73
+4cb06 a 453 73
+4cb10 2 452 73
+4cb12 1a 454 73
+4cb2c a 333 127
+4cb36 6 458 73
+4cb3c 6 958 65
+4cb42 2 458 73
+4cb44 8 459 73
+4cb4c 8 461 73
+4cb54 2 462 73
+4cb56 a 463 73
+4cb60 a 464 73
+4cb6a 1e 466 73
+4cb88 a 333 127
+4cb92 8 471 73
+4cb9a 1e 474 73
+4cbb8 a 333 127
+4cbc2 8 480 73
+4cbca 1e 481 73
+4cbe8 c 333 127
+4cbf4 a 481 73
+4cbfe 6 480 73
+4cc04 4 155 73
+4cc08 4 156 73
+4cc0c 4 157 73
+4cc10 8 156 73
+4cc18 4 487 73
+4cc1c 6 492 73
+4cc22 a 958 65
+4cc2c 6 492 73
+4cc32 6 493 73
+4cc38 8 494 73
+4cc40 8 495 73
+4cc48 8 496 73
+4cc50 8 497 73
+4cc58 8 498 73
+4cc60 8 500 73
+4cc68 8 501 73
+4cc70 8 502 73
+4cc78 8 503 73
+4cc80 8 504 73
+4cc88 8 505 73
+4cc90 8 506 73
+4cc98 8 507 73
+4cca0 8 508 73
+4cca8 8 509 73
+4ccb0 8 510 73
+4ccb8 8 511 73
+4ccc0 8 512 73
+4ccc8 8 513 73
+4ccd0 8 514 73
+4ccd8 8 515 73
+4cce0 8 516 73
+4cce8 8 517 73
+4ccf0 8 518 73
+4ccf8 8 519 73
+4cd00 8 520 73
+4cd08 8 521 73
+4cd10 8 522 73
+4cd18 8 523 73
+4cd20 8 524 73
+4cd28 8 525 73
+4cd30 8 526 73
+4cd38 8 527 73
+4cd40 8 528 73
+4cd48 8 529 73
+4cd50 6 164 73
+4cd56 a 165 73
+4cd60 4 535 73
+4cd64 8 539 73
+4cd6c 6 540 73
+4cd72 8 541 73
+4cd7a 8 542 73
+4cd82 8 543 73
+4cd8a 8 544 73
+4cd92 8 547 73
+4cd9a a 549 73
+4cda4 8 550 73
+4cdac e 554 73
+4cdba 20 555 73
+4cdda a 333 127
+4cde4 6 558 73
+4cdea 6 958 65
+4cdf0 2 558 73
+4cdf2 6 559 73
+4cdf8 2 561 73
+4cdfa 4 562 73
+4cdfe 6 561 73
+4ce04 10 562 73
+4ce14 4 564 73
+4ce18 a 565 73
+4ce22 12 566 73
+4ce34 20 568 73
+4ce54 c 333 127
+4ce60 8 573 73
+4ce68 20 576 73
+4ce88 c 333 127
+4ce94 a 583 73
+4ce9e c 589 73
+4ceaa 2 588 73
+4ceac 20 590 73
+4cecc c 333 127
+4ced8 a 596 73
+4cee2 20 597 73
+4cf02 c 333 127
+4cf0e 6 600 73
+4cf14 8 958 65
+4cf1c 4 600 73
+4cf20 6 602 73
+4cf26 10 603 73
+4cf36 8 607 73
+4cf3e 4 604 73
+4cf42 6 609 73
+4cf48 8 610 73
+4cf50 8 611 73
+4cf58 8 612 73
+4cf60 10 613 73
+4cf70 8 617 73
+4cf78 4 614 73
+4cf7c 10 621 73
+4cf8c 6 164 73
+4cf92 a 165 73
+4cf9c 4 622 73
+4cfa0 a 164 73
+4cfaa 6 165 73
+4cfb0 8 630 73
+4cfb8 8 633 73
+4cfc0 14 637 73
+4cfd4 20 639 73
+4cff4 c 333 127
+4d000 a 643 73
+4d00a 8 644 73
+4d012 22 649 73
+4d034 c 333 127
+4d040 6 649 73
+4d046 c 651 73
+4d052 1c 652 73
+4d06e a 333 127
+4d078 6 655 73
+4d07e 6 958 65
+4d084 2 655 73
+4d086 6 656 73
+4d08c 14 658 73
+4d0a0 8 660 73
+4d0a8 2 661 73
+4d0aa a 662 73
+4d0b4 12 663 73
+4d0c6 20 665 73
+4d0e6 c 333 127
+4d0f2 8 670 73
+4d0fa 20 673 73
+4d11a c 333 127
+4d126 4 680 73
+4d12a 4 684 73
+4d12e 4 680 73
+4d132 c 686 73
+4d13e 2 685 73
+4d140 20 687 73
+4d160 c 333 127
+4d16c a 693 73
+4d176 20 694 73
+4d196 c 333 127
+4d1a2 6 698 73
+4d1a8 6 958 65
+4d1ae 8 718 73
+4d1b6 14 722 73
+4d1ca 20 724 73
+4d1ea c 333 127
+4d1f6 8 698 73
+4d1fe 8 703 73
+4d206 4 700 73
+4d20a 6 705 73
+4d210 8 706 73
+4d218 8 707 73
+4d220 a 708 73
+4d22a 10 156 73
+4d23a 2 164 73
+4d23c 8 157 73
+4d244 4 164 73
+4d248 2 708 73
+4d24a 8 165 73
+4d252 a 708 73
+4d25c 8 728 73
+4d264 a 98 57
+4d26e e 731 73
+4d27c 20 732 73
+4d29c a 333 127
+4d2a6 6 735 73
+4d2ac 6 958 65
+4d2b2 2 735 73
+4d2b4 6 736 73
+4d2ba 8 738 73
+4d2c2 2 739 73
+4d2c4 2 744 73
+4d2c6 c 746 73
+4d2d2 8 747 73
+4d2da 4 751 73
+4d2de a 752 73
+4d2e8 a 753 73
+4d2f2 20 755 73
+4d312 10 333 127
+4d322 32 764 73
+4d354 6 766 73
+4d35a 1e 767 73
+4d378 2 110 72
+4d37a c 333 127
+4d386 a 254 126
+4d390 a 333 127
+4d39a 8 254 126
+4d3a2 a 772 73
+4d3ac 2 777 73
+4d3ae 6 772 73
+4d3b4 2 777 73
+4d3b6 4 783 73
+4d3ba 4 777 73
+4d3be 8 783 73
+4d3c6 2 782 73
+4d3c8 1e 784 73
+4d3e6 a 333 127
+4d3f0 a 790 73
+4d3fa 1c 791 73
+4d416 8 333 127
+4d41e 6 795 73
+4d424 8 958 65
+4d42c 4 795 73
+4d430 6 797 73
+4d436 8 798 73
+4d43e 8 799 73
+4d446 8 800 73
+4d44e 8 801 73
+4d456 8 802 73
+4d45e 8 803 73
+4d466 8 804 73
+4d46e 8 805 73
+4d476 8 806 73
+4d47e 8 807 73
+4d486 8 808 73
+4d48e 8 809 73
+4d496 8 812 73
+4d49e 8 813 73
+4d4a6 8 814 73
+4d4ae 8 815 73
+4d4b6 8 816 73
+4d4be 8 817 73
+4d4c6 8 818 73
+4d4ce 8 819 73
+4d4d6 8 820 73
+4d4de 8 821 73
+4d4e6 8 822 73
+4d4ee 8 823 73
+4d4f6 8 824 73
+4d4fe 8 825 73
+4d506 8 826 73
+4d50e 8 827 73
+4d516 8 828 73
+4d51e a 833 73
+4d528 6 839 73
+4d52e 1c 840 73
+4d54a 2 110 72
+4d54c a 333 127
+4d556 a 254 126
+4d560 8 333 127
+4d568 8 254 126
+4d570 a 845 73
+4d57a 2 850 73
+4d57c 6 845 73
+4d582 2 850 73
+4d584 4 856 73
+4d588 4 850 73
+4d58c 8 856 73
+4d594 2 855 73
+4d596 1c 857 73
+4d5b2 8 333 127
+4d5ba a 863 73
+4d5c4 1c 864 73
+4d5e0 8 333 127
+4d5e8 6 876 73
+4d5ee 8 958 65
+4d5f6 4 876 73
+4d5fa 6 878 73
+4d600 10 879 73
+4d610 8 883 73
+4d618 4 880 73
+4d61c 6 885 73
+4d622 8 886 73
+4d62a 8 887 73
+4d632 8 888 73
+4d63a 8 889 73
+4d642 10 890 73
+4d652 8 894 73
+4d65a 4 891 73
+4d65e 10 898 73
+4d66e 6 164 73
+4d674 a 165 73
+4d67e 4 899 73
+4d682 a 164 73
+4d68c 6 165 73
+4d692 8 906 73
+4d69a a 909 73
+4d6a4 6 915 73
+4d6aa 1c 916 73
+4d6c6 2 110 72
+4d6c8 a 333 127
+4d6d2 a 254 126
+4d6dc 8 333 127
+4d6e4 8 254 126
+4d6ec 10 921 73
+4d6fc 4 926 73
+4d700 4 932 73
+4d704 4 926 73
+4d708 6 932 73
+4d70e 6 931 73
+4d714 1c 933 73
+4d730 fc 333 127
+4d82c a 939 73
+4d836 1c 940 73
+4d852 8 333 127
+4d85a 6 944 73
+4d860 6 958 65
+4d866 a 944 73
+4d870 8 949 73
+4d878 4 946 73
+4d87c 6 951 73
+4d882 8 952 73
+4d88a 8 953 73
+4d892 8 954 73
+4d89a 8 955 73
+4d8a2 10 956 73
+4d8b2 8 960 73
+4d8ba 4 957 73
+4d8be 6 962 73
+4d8c4 8 963 73
+4d8cc a 965 73
+4d8d6 6 971 73
+4d8dc 1c 972 73
+4d8f8 2 110 72
+4d8fa a 333 127
+4d904 a 254 126
+4d90e 8 333 127
+4d916 8 254 126
+4d91e 8 977 73
+4d926 2 982 73
+4d928 8 977 73
+4d930 2 982 73
+4d932 4 988 73
+4d936 4 982 73
+4d93a 8 988 73
+4d942 2 987 73
+4d944 1c 989 73
+4d960 8 333 127
+4d968 a 995 73
+4d972 1c 996 73
+4d98e a 333 127
+4d998 6 996 73
+4d99e 4 98 57
+4d9a2 6 1000 73
+4d9a8 6 958 65
+4d9ae a 1020 73
+4d9b8 8 1000 73
+4d9c0 8 1005 73
+4d9c8 4 1002 73
+4d9cc 6 1007 73
+4d9d2 10 1008 73
+4d9e2 8 1012 73
+4d9ea 8 1009 73
+4d9f2 8 1017 73
+4d9fa 6 1014 73
+4da00 6 1026 73
+4da06 1c 1027 73
+4da22 2 110 72
+4da24 a 333 127
+4da2e a 254 126
+4da38 8 333 127
+4da40 c 254 126
+4da4c 10 1034 73
+4da5c 4 1039 73
+4da60 4 1045 73
+4da64 4 1039 73
+4da68 6 1045 73
+4da6e 2 1044 73
+4da70 1c 1046 73
+4da8c 8 333 127
+4da94 a 1052 73
+4da9e 1c 1053 73
+4daba a 333 127
+4dac4 6 1053 73
+4daca 4 98 57
+4dace 6 1057 73
+4dad4 8 958 65
+4dadc c 1057 73
+4dae8 8 1062 73
+4daf0 4 1059 73
+4daf4 6 1064 73
+4dafa 10 1065 73
+4db0a 6 1069 73
+4db10 a 1070 73
+4db1a 4 1066 73
+4db1e 8 1072 73
+4db26 8 1073 73
+4db2e 8 1074 73
+4db36 8 1075 73
+4db3e 10 1076 73
+4db4e 8 1080 73
+4db56 4 1077 73
+4db5a 6 1082 73
+4db60 8 1083 73
+4db68 8 1085 73
+4db70 6 98 57
+4db76 a 1099 73
+4db80 6 98 57
+4db86 1c 1093 73
+4dba2 2 110 72
+4dba4 2 333 127
+4dba6 2 1094 73
+4dba8 8 333 127
+4dbb0 8 1094 73
+4dbb8 8 1094 73
+4dbc0 6 156 137
+4dbc6 6 1093 73
+4dbcc 4 733 73
+4dbd0 4 1102 73
+4dbd4 64 1104 73
+FUNC 4dc38 10c 0 google_breakpad::MinidumpThread::GetContext
+4dc38 6 1448 73
+4dc3e 2 1449 73
+4dc40 4 1448 73
+4dc44 2 1448 73
+4dc46 2 1449 73
+4dc48 1c 1450 73
+4dc64 8 333 127
+4dc6c 6 1454 73
+4dc72 a 1455 73
+4dc7c 1c 1456 73
+4dc98 a 333 127
+4dca2 6 1456 73
+4dca8 2 1457 73
+4dcaa a 1460 73
+4dcb4 12 417 73
+4dcc6 2 92 57
+4dcc8 4 1462 73
+4dccc 4 92 57
+4dcd0 4 1462 73
+4dcd4 2 1462 73
+4dcd6 1c 1463 73
+4dcf2 a 333 127
+4dcfc 6 1463 73
+4dd02 8 1464 73
+4dd0a 2 143 57
+4dd0c 2 1467 73
+4dd0e 2 1467 73
+4dd10 2 144 57
+4dd12 4 1467 73
+4dd16 2 1470 73
+4dd18 2c 1471 73
+FUNC 4dd44 11c 0 google_breakpad::MinidumpException::GetContext
+4dd44 6 2946 73
+4dd4a 2 2947 73
+4dd4c 4 2946 73
+4dd50 2 2946 73
+4dd52 2 2947 73
+4dd54 1c 2948 73
+4dd70 8 333 127
+4dd78 8 2952 73
+4dd80 c 2953 73
+4dd8c 1c 2954 73
+4dda8 a 333 127
+4ddb2 6 2954 73
+4ddb8 2 2955 73
+4ddba a 2958 73
+4ddc4 12 417 73
+4ddd6 2 92 57
+4ddd8 6 2962 73
+4ddde 4 92 57
+4dde2 4 2962 73
+4dde6 2 2962 73
+4dde8 1c 2963 73
+4de04 a 333 127
+4de0e 6 2963 73
+4de14 8 2964 73
+4de1c 2 143 57
+4de1e 2 2967 73
+4de20 4 2967 73
+4de24 2 144 57
+4de26 4 2967 73
+4de2a 4 2970 73
+4de2e 32 2971 73
+FUNC 4de60 1c4 0 google_breakpad::MinidumpThread::Read
+4de60 10 1386 73
+4de70 2 1388 73
+4de72 2 1386 73
+4de74 2 1386 73
+4de76 2 1388 73
+4de78 6 1388 73
+4de7e 2 1389 73
+4de80 2 1390 73
+4de82 2 1389 73
+4de84 2 1390 73
+4de86 6 1390 73
+4de8c 2 1391 73
+4de8e 4 1395 73
+4de92 2 1391 73
+4de94 2 1393 73
+4de96 e 1395 73
+4dea4 1c 1396 73
+4dec0 a 333 127
+4deca 6 1396 73
+4ded0 2 1397 73
+4ded2 6 1400 73
+4ded8 6 958 65
+4dede 2 1400 73
+4dee0 6 1401 73
+4dee6 8 1402 73
+4deee 8 1403 73
+4def6 8 1404 73
+4defe 8 1405 73
+4df06 8 189 73
+4df0e 8 190 73
+4df16 8 1407 73
+4df1e 4 1412 73
+4df22 2 1412 73
+4df24 2 1411 73
+4df26 a 1413 73
+4df30 8 1412 73
+4df38 1c 1416 73
+4df54 4 110 72
+4df58 6 333 127
+4df5e 4 1417 73
+4df62 4 333 127
+4df66 a 1417 73
+4df70 a 1417 73
+4df7a 2 333 127
+4df7c 4 1418 73
+4df80 6 333 127
+4df86 8 1418 73
+4df8e a 1418 73
+4df98 2 333 127
+4df9a 4 1419 73
+4df9e 6 333 127
+4dfa4 8 1419 73
+4dfac 8 1419 73
+4dfb4 12 156 137
+4dfc6 6 1416 73
+4dfcc 4 1425 73
+4dfd0 e 1427 73
+4dfde 8 1421 73
+4dfe6 6 1421 73
+4dfec 2 1421 73
+4dfee c 1422 73
+4dffa 2a 1427 73
+FUNC 4e024 220 0 google_breakpad::MinidumpModule::Read
+4e024 c 1723 73
+4e030 4 1725 73
+4e034 4 1723 73
+4e038 4 1723 73
+4e03c 2 1725 73
+4e03e 6 156 137
+4e044 6 1725 73
+4e04a 2 1726 73
+4e04c 4 1727 73
+4e050 4 1726 73
+4e054 2 1727 73
+4e056 6 304 144
+4e05c 6 1727 73
+4e062 6 1728 73
+4e068 4 1729 73
+4e06c 4 1730 73
+4e070 4 1729 73
+4e074 2 1730 73
+4e076 6 304 144
+4e07c 6 1730 73
+4e082 2 1731 73
+4e084 4 1737 73
+4e088 4 1731 73
+4e08c 2 1733 73
+4e08e 2 1734 73
+4e090 2 1735 73
+4e092 e 1737 73
+4e0a0 1c 1738 73
+4e0bc a 333 127
+4e0c6 6 1738 73
+4e0cc 2 1739 73
+4e0ce 6 1742 73
+4e0d4 8 958 65
+4e0dc 4 1742 73
+4e0e0 6 1743 73
+4e0e6 8 1744 73
+4e0ee 8 1745 73
+4e0f6 8 1746 73
+4e0fe 8 1747 73
+4e106 8 1748 73
+4e10e 8 1749 73
+4e116 8 1750 73
+4e11e 8 1751 73
+4e126 8 1752 73
+4e12e 8 1753 73
+4e136 8 1754 73
+4e13e 8 1755 73
+4e146 8 1756 73
+4e14e 8 1757 73
+4e156 8 1758 73
+4e15e 8 1759 73
+4e166 8 1760 73
+4e16e 8 1761 73
+4e176 8 1762 73
+4e17e 4 1768 73
+4e182 2 1769 73
+4e184 4 1770 73
+4e188 4 1769 73
+4e18c 4 1770 73
+4e190 8 1768 73
+4e198 1c 1771 73
+4e1b4 4 110 72
+4e1b8 2 333 127
+4e1ba 2 1772 73
+4e1bc 8 333 127
+4e1c4 a 1772 73
+4e1ce a 1772 73
+4e1d8 2 333 127
+4e1da 4 1773 73
+4e1de 6 333 127
+4e1e4 8 1773 73
+4e1ec 8 1773 73
+4e1f4 c 156 137
+4e200 6 1771 73
+4e206 2 1774 73
+4e208 e 1779 73
+4e216 4 1777 73
+4e21a 2 1778 73
+4e21c 28 1779 73
+FUNC 4e244 11c 0 google_breakpad::MinidumpException::Read
+4e244 4 2888 73
+4e248 4 2890 73
+4e24c 2 2888 73
+4e24e 2 2888 73
+4e250 2 2890 73
+4e252 6 2890 73
+4e258 2 2891 73
+4e25a 2 2895 73
+4e25c 4 2891 73
+4e260 2 2893 73
+4e262 2 2895 73
+4e264 1a 2896 73
+4e27e 2 110 72
+4e280 a 333 127
+4e28a a 254 126
+4e294 8 333 127
+4e29c a 254 126
+4e2a6 12 2901 73
+4e2b8 1a 2902 73
+4e2d2 a 333 127
+4e2dc 6 2902 73
+4e2e2 2 2903 73
+4e2e4 6 2906 73
+4e2ea 6 958 65
+4e2f0 2 2906 73
+4e2f2 6 2907 73
+4e2f8 8 2910 73
+4e300 8 2911 73
+4e308 8 2912 73
+4e310 8 2913 73
+4e318 10 2914 73
+4e328 8 2920 73
+4e330 4 2917 73
+4e334 6 2922 73
+4e33a 4 2925 73
+4e33e 22 2927 73
+FUNC 4e360 17c 0 google_breakpad::MinidumpSystemInfo::Read
+4e360 2 3106 73
+4e362 2 3108 73
+4e364 2 3106 73
+4e366 4 3106 73
+4e36a 2 3108 73
+4e36c 6 156 137
+4e372 6 3108 73
+4e378 2 3109 73
+4e37a 2 3110 73
+4e37c 2 3109 73
+4e37e 2 3110 73
+4e380 6 156 137
+4e386 6 3110 73
+4e38c 2 3111 73
+4e38e 2 3115 73
+4e390 2 3111 73
+4e392 2 3113 73
+4e394 2 3115 73
+4e396 1a 3116 73
+4e3b0 2 110 72
+4e3b2 a 333 127
+4e3bc a 254 126
+4e3c6 8 333 127
+4e3ce a 254 126
+4e3d8 12 3121 73
+4e3ea 1a 3122 73
+4e404 a 333 127
+4e40e 6 3122 73
+4e414 2 3123 73
+4e416 6 3126 73
+4e41c 8 958 65
+4e424 4 3126 73
+4e428 6 3127 73
+4e42e 8 3128 73
+4e436 8 3129 73
+4e43e 8 3132 73
+4e446 8 3133 73
+4e44e 8 3134 73
+4e456 8 3135 73
+4e45e 8 3136 73
+4e466 8 3137 73
+4e46e c 3140 73
+4e47a 12 3143 73
+4e48c 8 3144 73
+4e494 8 3145 73
+4e49c a 3146 73
+4e4a6 4 3140 73
+4e4aa a 3149 73
+4e4b4 4 3153 73
+4e4b8 24 3155 73
+FUNC 4e4dc 240 0 google_breakpad::Minidump::ReadString
+4e4dc 6 4478 73
+4e4e2 4 4479 73
+4e4e6 2 4478 73
+4e4e8 8 4478 73
+4e4f0 2 4479 73
+4e4f2 1a 4480 73
+4e50c c 333 127
+4e518 8 4483 73
+4e520 1a 4484 73
+4e53a 2 110 72
+4e53c a 333 127
+4e546 8 259 126
+4e54e 6 4484 73
+4e554 2 4485 73
+4e556 12 4489 73
+4e568 1a 4490 73
+4e582 2 110 72
+4e584 8 333 127
+4e58c 6 4494 73
+4e592 6 4495 73
+4e598 8 4497 73
+4e5a0 1a 4498 73
+4e5ba 2 110 72
+4e5bc a 333 127
+4e5c6 a 254 126
+4e5d0 8 333 127
+4e5d8 8 259 126
+4e5e0 6 4498 73
+4e5e6 4 4500 73
+4e5ea 4 4504 73
+4e5ee 4 4502 73
+4e5f2 a 4504 73
+4e5fc 1a 4505 73
+4e616 2 110 72
+4e618 a 333 127
+4e622 a 254 126
+4e62c 8 333 127
+4e634 a 254 126
+4e63e 2 333 127
+4e640 2 254 126
+4e642 4 333 127
+4e646 8 4511 73
+4e64e c 116 148
+4e65a 6 4513 73
+4e660 a 4514 73
+4e66a 4 4514 73
+4e66e 1a 4515 73
+4e688 2 110 72
+4e68a a 333 127
+4e694 a 254 126
+4e69e 8 333 127
+4e6a6 8 259 126
+4e6ae 6 4515 73
+4e6b4 2 4517 73
+4e6b6 c 4521 73
+4e6c2 6 304 144
+4e6c8 54 4522 73
+FUNC 4e71c 1b0 0 google_breakpad::MinidumpMemoryRegion::GetMemory
+4e71c 6 1213 73
+4e722 2 1214 73
+4e724 4 1213 73
+4e728 2 1213 73
+4e72a 2 1214 73
+4e72c 1c 1215 73
+4e748 a 333 127
+4e752 4 1215 73
+4e756 c 1219 73
+4e762 8 1220 73
+4e76a 1a 1221 73
+4e784 8 333 127
+4e78c a 1225 73
+4e796 1a 1226 73
+4e7b0 c 333 127
+4e7bc e 1230 73
+4e7ca 1a 1231 73
+4e7e4 2 110 72
+4e7e6 a 333 127
+4e7f0 2 1232 73
+4e7f2 a 254 126
+4e7fc 8 333 127
+4e804 8 254 126
+4e80c 6 1231 73
+4e812 2 1234 73
+4e814 2 1238 73
+4e816 4 1238 73
+4e81a 6 1238 73
+4e820 2 1238 73
+4e822 a 116 148
+4e82c 2 92 57
+4e82e 2 1240 73
+4e830 4 92 57
+4e834 c 1240 73
+4e840 2 1240 73
+4e842 1a 1241 73
+4e85c a 333 127
+4e866 6 1241 73
+4e86c 8 1242 73
+4e874 2 143 57
+4e876 2 1245 73
+4e878 2 1245 73
+4e87a 4 144 57
+4e87e 6 1245 73
+4e884 8 1222 73
+4e88c 40 1249 73
+FUNC 4e8cc 1d0 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<unsigned char>
+4e8cc 10 1279 73
+4e8dc e 1279 73
+4e8ea 6 1281 73
+4e8f0 1e 1281 73
+4e90e a 333 127
+4e918 6 1281 73
+4e91e 6 1284 73
+4e924 a 1286 73
+4e92e 1c 1287 73
+4e94a a 333 127
+4e954 6 1287 73
+4e95a 2 1289 73
+4e95c 10 1293 73
+4e96c a 1293 73
+4e976 1a 1293 73
+4e990 6 1304 73
+4e996 2 1305 73
+4e998 c 1312 73
+4e9a4 10 1319 73
+4e9b4 4 1307 73
+4e9b8 1e 1297 73
+4e9d6 2 110 72
+4e9d8 6 333 127
+4e9de 4 1297 73
+4e9e2 4 333 127
+4e9e6 a 1297 73
+4e9f0 a 1297 73
+4e9fa a 333 127
+4ea04 a 254 126
+4ea0e 2 333 127
+4ea10 2 1298 73
+4ea12 6 333 127
+4ea18 2 1298 73
+4ea1a a 1298 73
+4ea24 a 1298 73
+4ea2e 6 333 127
+4ea34 2 1299 73
+4ea36 a 1299 73
+4ea40 8 1299 73
+4ea48 12 156 137
+4ea5a 6 1297 73
+4ea60 6 1301 73
+4ea66 36 1319 73
+FUNC 4ea9c 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+4ea9c 4 1324 73
+FUNC 4eaa8 1f0 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<short unsigned int>
+4eaa8 10 1279 73
+4eab8 e 1279 73
+4eac6 6 1281 73
+4eacc 1e 1281 73
+4eaea a 333 127
+4eaf4 6 1281 73
+4eafa 6 1284 73
+4eb00 a 1286 73
+4eb0a 1c 1287 73
+4eb26 a 333 127
+4eb30 6 1287 73
+4eb36 2 1289 73
+4eb38 10 1293 73
+4eb48 10 1293 73
+4eb58 1a 1293 73
+4eb72 6 1304 73
+4eb78 2 1305 73
+4eb7a c 1312 73
+4eb86 6 1315 73
+4eb8c 6 958 65
+4eb92 10 1319 73
+4eba2 4 1315 73
+4eba6 8 1316 73
+4ebae 4 1307 73
+4ebb2 1e 1297 73
+4ebd0 2 110 72
+4ebd2 6 333 127
+4ebd8 4 1297 73
+4ebdc 4 333 127
+4ebe0 a 1297 73
+4ebea a 1297 73
+4ebf4 a 333 127
+4ebfe a 254 126
+4ec08 2 333 127
+4ec0a 2 1298 73
+4ec0c 6 333 127
+4ec12 2 1298 73
+4ec14 a 1298 73
+4ec1e a 1298 73
+4ec28 6 333 127
+4ec2e 2 1299 73
+4ec30 a 1299 73
+4ec3a 8 1299 73
+4ec42 12 156 137
+4ec54 6 1297 73
+4ec5a 6 1301 73
+4ec60 38 1319 73
+FUNC 4ec98 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+4ec98 4 1330 73
+FUNC 4eca4 1f0 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<unsigned int>
+4eca4 10 1279 73
+4ecb4 e 1279 73
+4ecc2 6 1281 73
+4ecc8 1e 1281 73
+4ece6 a 333 127
+4ecf0 6 1281 73
+4ecf6 6 1284 73
+4ecfc a 1286 73
+4ed06 1c 1287 73
+4ed22 a 333 127
+4ed2c 6 1287 73
+4ed32 2 1289 73
+4ed34 10 1293 73
+4ed44 10 1293 73
+4ed54 1a 1293 73
+4ed6e 6 1304 73
+4ed74 2 1305 73
+4ed76 c 1312 73
+4ed82 6 1315 73
+4ed88 6 958 65
+4ed8e 10 1319 73
+4ed9e 4 1315 73
+4eda2 8 1316 73
+4edaa 4 1307 73
+4edae 1e 1297 73
+4edcc 2 110 72
+4edce 6 333 127
+4edd4 4 1297 73
+4edd8 4 333 127
+4eddc a 1297 73
+4ede6 a 1297 73
+4edf0 a 333 127
+4edfa a 254 126
+4ee04 2 333 127
+4ee06 2 1298 73
+4ee08 6 333 127
+4ee0e 2 1298 73
+4ee10 a 1298 73
+4ee1a a 1298 73
+4ee24 6 333 127
+4ee2a 2 1299 73
+4ee2c a 1299 73
+4ee36 8 1299 73
+4ee3e 12 156 137
+4ee50 6 1297 73
+4ee56 6 1301 73
+4ee5c 38 1319 73
+FUNC 4ee94 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+4ee94 4 1336 73
+FUNC 4eea0 1f8 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddressInternal<long long unsigned int>
+4eea0 10 1279 73
+4eeb0 e 1279 73
+4eebe 6 1281 73
+4eec4 1e 1281 73
+4eee2 a 333 127
+4eeec 6 1281 73
+4eef2 8 1284 73
+4eefa a 1286 73
+4ef04 1c 1287 73
+4ef20 a 333 127
+4ef2a 6 1287 73
+4ef30 2 1289 73
+4ef32 10 1293 73
+4ef42 10 1293 73
+4ef52 1c 1293 73
+4ef6e 6 1304 73
+4ef74 2 1305 73
+4ef76 10 1312 73
+4ef86 6 1315 73
+4ef8c 6 958 65
+4ef92 10 1319 73
+4efa2 4 1315 73
+4efa6 8 1316 73
+4efae 4 1307 73
+4efb2 1e 1297 73
+4efd0 2 110 72
+4efd2 6 333 127
+4efd8 4 1297 73
+4efdc 4 333 127
+4efe0 a 1297 73
+4efea a 1297 73
+4eff4 a 333 127
+4effe a 254 126
+4f008 2 333 127
+4f00a 2 1298 73
+4f00c 6 333 127
+4f012 2 1298 73
+4f014 a 1298 73
+4f01e a 1298 73
+4f028 6 333 127
+4f02e 2 1299 73
+4f030 a 1299 73
+4f03a 8 1299 73
+4f042 12 156 137
+4f054 6 1297 73
+4f05a 6 1301 73
+4f060 38 1319 73
+FUNC 4f098 4 0 google_breakpad::MinidumpMemoryRegion::GetMemoryAtAddress
+4f098 4 1342 73
+FUNC 4f0a4 90 0 google_breakpad::MinidumpMemoryRegion::Print
+4f0a4 2 1346 73
+4f0a6 2 1347 73
+4f0a8 2 1346 73
+4f0aa 2 1346 73
+4f0ac 2 1347 73
+4f0ae 1a 1348 73
+4f0c8 a 333 127
+4f0d2 8 1348 73
+4f0da 4 1352 73
+4f0de 4 1353 73
+4f0e2 2 1354 73
+4f0e4 2 1355 73
+4f0e6 6 1354 73
+4f0ec 4 1358 73
+4f0f0 4 1356 73
+4f0f4 6 1355 73
+4f0fa c 1358 73
+4f106 8 1360 73
+4f10e 8 1362 73
+4f116 1e 1364 73
+FUNC 4f13c 358 0 google_breakpad::MinidumpModule::GetCVRecord
+4f13c 6 2076 73
+4f142 2 2077 73
+4f144 4 2076 73
+4f148 4 2076 73
+4f14c 2 2077 73
+4f14e 1c 2078 73
+4f16a a 333 127
+4f174 4 2078 73
+4f178 a 2082 73
+4f182 8 2085 73
+4f18a c 2089 73
+4f196 1a 2090 73
+4f1b0 c 333 127
+4f1bc 10 2094 73
+4f1cc 1a 2095 73
+4f1e6 2 110 72
+4f1e8 a 333 127
+4f1f2 a 254 126
+4f1fc 8 333 127
+4f204 a 254 126
+4f20e 6 2095 73
+4f214 2 2098 73
+4f216 2 2109 73
+4f218 4 2109 73
+4f21c 6 2109 73
+4f222 a 116 148
+4f22c 2 92 57
+4f22e 4 116 148
+4f232 4 92 57
+4f236 c 2111 73
+4f242 2 2111 73
+4f244 1a 2112 73
+4f25e 8 333 127
+4f266 6 2116 73
+4f26c 8 2117 73
+4f274 6 2120 73
+4f27a 6 2121 73
+4f280 6 958 65
+4f286 2 2121 73
+4f288 6 2122 73
+4f28e 8 2125 73
+4f296 6 2127 73
+4f29c 1a 2128 73
+4f2b6 2 110 72
+4f2b8 a 333 127
+4f2c2 8 254 126
+4f2ca 2 333 127
+4f2cc 2 254 126
+4f2ce 4 333 127
+4f2d2 6 2134 73
+4f2d8 6 958 65
+4f2de 8 2134 73
+4f2e6 2 2137 73
+4f2e8 4 195 73
+4f2ec 4 2137 73
+4f2f0 6 195 73
+4f2f6 8 196 73
+4f2fe 8 197 73
+4f306 a 2139 73
+4f310 e 2146 73
+4f31e 1a 2148 73
+4f338 8 333 127
+4f340 6 2151 73
+4f346 6 2153 73
+4f34c 1a 2154 73
+4f366 2 110 72
+4f368 a 333 127
+4f372 a 254 126
+4f37c 8 333 127
+4f384 a 254 126
+4f38e 6 2159 73
+4f394 6 958 65
+4f39a 8 2159 73
+4f3a2 6 2162 73
+4f3a8 8 2163 73
+4f3b0 8 2164 73
+4f3b8 a 2165 73
+4f3c2 c 2172 73
+4f3ce 1a 2174 73
+4f3e8 a 333 127
+4f3f2 6 2174 73
+4f3f8 8 2113 73
+4f400 2 144 57
+4f402 2 143 57
+4f404 2 2188 73
+4f406 4 2187 73
+4f40a 2 2188 73
+4f40c 2 144 57
+4f40e a 2188 73
+4f418 4 2086 73
+4f41c 6 2191 73
+4f422 c 2192 73
+4f42e 66 2195 73
+FUNC 4f494 27c 0 google_breakpad::MinidumpModule::GetMiscRecord
+4f494 6 2198 73
+4f49a 2 2199 73
+4f49c 4 2198 73
+4f4a0 4 2198 73
+4f4a4 2 2199 73
+4f4a6 1c 2200 73
+4f4c2 a 333 127
+4f4cc 4 2200 73
+4f4d0 a 2204 73
+4f4da 8 2205 73
+4f4e2 6 2209 73
+4f4e8 1a 2211 73
+4f502 2 110 72
+4f504 a 333 127
+4f50e a 254 126
+4f518 8 333 127
+4f520 6 254 126
+4f526 a 2216 73
+4f530 1a 2218 73
+4f54a a 333 127
+4f554 6 2218 73
+4f55a 2 2219 73
+4f55c 10 2222 73
+4f56c 1a 2223 73
+4f586 2 110 72
+4f588 a 333 127
+4f592 a 254 126
+4f59c 8 333 127
+4f5a4 c 254 126
+4f5b0 2 2236 73
+4f5b2 4 2236 73
+4f5b6 6 2236 73
+4f5bc a 116 148
+4f5c6 4 92 57
+4f5ca c 2240 73
+4f5d6 1a 2242 73
+4f5f0 c 333 127
+4f5fc 6 2246 73
+4f602 6 958 65
+4f608 8 2262 73
+4f610 1a 2264 73
+4f62a 2 110 72
+4f62c a 333 127
+4f636 a 254 126
+4f640 8 333 127
+4f648 a 254 126
+4f652 4 2246 73
+4f656 6 2247 73
+4f65c 6 2248 73
+4f662 6 2252 73
+4f668 2 2257 73
+4f66a 4 2255 73
+4f66e a 2257 73
+4f678 4 214 73
+4f67c c 215 73
+4f688 6 2264 73
+4f68e 8 2243 73
+4f696 2 144 57
+4f698 2 143 57
+4f69a 6 144 57
+4f6a0 4 2271 73
+4f6a4 6 2271 73
+4f6aa 4 2206 73
+4f6ae 6 2274 73
+4f6b4 c 2275 73
+4f6c0 50 2278 73
+FUNC 4f710 124 0 google_breakpad::MinidumpModule::ReadAuxiliaryData
+4f710 6 1782 73
+4f716 2 1783 73
+4f718 4 1782 73
+4f71c 2 1782 73
+4f71e 2 1783 73
+4f720 1c 1784 73
+4f73c a 333 127
+4f746 6 1784 73
+4f74c 2 1785 73
+4f74e e 1789 73
+4f75c 2 1790 73
+4f75e 1c 1791 73
+4f77a 8 333 127
+4f782 4 1796 73
+4f786 2 1800 73
+4f788 4 1796 73
+4f78c 2 1800 73
+4f78e 8 1800 73
+4f796 4 1800 73
+4f79a 1c 1802 73
+4f7b6 8 333 127
+4f7be 4 1806 73
+4f7c2 8 1806 73
+4f7ca 4 1806 73
+4f7ce 1c 1808 73
+4f7ea a 333 127
+4f7f4 6 1808 73
+4f7fa 4 1809 73
+4f7fe 4 1812 73
+4f802 32 1814 73
+FUNC 4f834 64 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::_M_insert
+4f834 2 358 140
+4f836 2 350 140
+4f838 8 350 140
+4f840 2 358 140
+4f842 6 359 140
+4f848 2 360 140
+4f84a 2 361 140
+4f84c 4 362 140
+4f850 4 364 140
+4f854 4 364 140
+4f858 8 364 140
+4f860 4 367 140
+4f864 2 368 140
+4f866 2 369 140
+4f868 2 367 140
+4f86a 4 369 140
+4f86e 4 370 140
+4f872 4 373 140
+4f876 2 374 140
+4f878 2 375 140
+4f87a 2 373 140
+4f87c 4 375 140
+4f880 2 376 140
+4f882 2 379 140
+4f884 2 378 140
+4f886 6 379 140
+4f88c 2 380 140
+4f88e 2 382 140
+4f890 4 380 140
+4f894 2 142 141
+4f896 2 382 140
+FUNC 4f898 70 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::insert_unique
+4f898 2 405 140
+4f89a 2 408 140
+4f89c 4 405 140
+4f8a0 2 406 140
+4f8a2 2 405 140
+4f8a4 2 407 140
+4f8a6 2 405 140
+4f8a8 2 409 140
+4f8aa 4 412 140
+4f8ae 2 412 140
+4f8b0 2 412 140
+4f8b2 4 412 140
+4f8b6 a 412 140
+4f8c0 2 142 141
+4f8c2 2 415 140
+4f8c4 6 416 140
+4f8ca 6 417 140
+4f8d0 8 187 141
+4f8d8 e 421 140
+4f8e6 10 422 140
+4f8f6 4 142 141
+4f8fa 4 62 129
+4f8fe 2 142 141
+4f900 2 425 140
+4f902 2 62 129
+4f904 4 425 140
+FUNC 4f908 f4 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::MinidumpThread*>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::MinidumpThread*> >, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::insert_unique
+4f908 4 432 140
+4f90c 4 434 140
+4f910 2 432 140
+4f912 2 434 140
+4f914 4 432 140
+4f918 2 434 140
+4f91a a 437 140
+4f924 4 440 140
+4f928 a 441 140
+4f932 4 447 140
+4f936 6 177 141
+4f93c 2 458 140
+4f93e 2 177 141
+4f940 2 458 140
+4f942 c 462 140
+4f94e 8 479 140
+4f956 8 480 140
+4f95e 8 483 140
+4f966 2 486 140
+4f968 6 475 140
+4f96e 6 142 141
+4f974 c 187 141
+4f980 c 79 111
+4f98c 6 494 140
+4f992 6 494 140
+4f998 8 177 141
+4f9a0 6 513 140
+4f9a6 4 517 140
+4f9aa 4 517 140
+4f9ae 6 517 140
+4f9b4 6 475 140
+4f9ba 6 500 140
+4f9c0 8 522 140
+4f9c8 6 497 140
+4f9ce 4 498 140
+4f9d2 c 524 140
+4f9de 4 142 141
+4f9e2 4 521 140
+4f9e6 6 522 140
+4f9ec 8 524 140
+4f9f4 8 534 140
+FUNC 4f9fc 4c 0 std::map<unsigned int, google_breakpad::MinidumpThread*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, google_breakpad::MinidumpThread*> > >::operator[]<unsigned int>
+4f9fc 2 175 123
+4f9fe 2 568 141
+4fa00 8 175 123
+4fa08 2 571 141
+4fa0a 4 572 141
+4fa0e 6 575 141
+4fa14 2 573 141
+4fa16 6 575 141
+4fa1c 2 178 123
+4fa1e 2 142 141
+4fa20 2 178 123
+4fa22 6 178 123
+4fa28 6 62 129
+4fa2e 2 142 141
+4fa30 c 191 123
+4fa3c 4 179 123
+4fa40 4 180 123
+4fa44 4 181 123
+FUNC 4fa48 18 0 google_breakpad::MinidumpThreadList::GetThreadByID
+4fa48 2 1668 73
+4fa4a 6 1668 73
+4fa50 8 1671 73
+4fa58 8 1672 73
+FUNC 4fa60 50c 0 google_breakpad::MinidumpThreadList::Read
+4fa60 e 1553 73
+4fa6e 6 1553 73
+4fa74 6 206 123
+4fa7a 2 531 141
+4fa7c 4 1553 73
+4fa80 2 531 141
+4fa82 8 532 141
+4fa8a 2 533 141
+4fa8c 2 535 141
+4fa8e 2 533 141
+4fa90 2 534 141
+4fa92 2 535 141
+4fa94 2 534 141
+4fa96 2 536 141
+4fa98 4 1556 73
+4fa9c 6 42 148
+4faa2 6 1556 73
+4faa8 2 1557 73
+4faaa 2 1563 73
+4faac 2 1557 73
+4faae 2 1558 73
+4fab0 2 1560 73
+4fab2 2 1563 73
+4fab4 1c 1564 73
+4fad0 2 110 72
+4fad2 a 333 127
+4fadc a 254 126
+4fae6 2 333 127
+4fae8 2 1566 73
+4faea 6 333 127
+4faf0 8 254 126
+4faf8 6 1564 73
+4fafe 2 1566 73
+4fb00 10 1568 73
+4fb10 1c 1569 73
+4fb2c a 333 127
+4fb36 6 1569 73
+4fb3c 2 1570 73
+4fb3e 6 1573 73
+4fb44 6 958 65
+4fb4a 2 1573 73
+4fb4c 6 1574 73
+4fb52 8 1576 73
+4fb5a 1c 1577 73
+4fb76 2 110 72
+4fb78 a 333 127
+4fb82 8 254 126
+4fb8a a 333 127
+4fb94 4 1583 73
+4fb98 6 1582 73
+4fb9e 6 1585 73
+4fba4 10 1588 73
+4fbb4 1c 1590 73
+4fbd0 a 333 127
+4fbda 6 1590 73
+4fbe0 4 1591 73
+4fbe4 1c 1594 73
+4fc00 2 110 72
+4fc02 a 333 127
+4fc0c a 254 126
+4fc16 8 333 127
+4fc1e 2 254 126
+4fc20 4 1596 73
+4fc24 6 254 126
+4fc2a 6 1594 73
+4fc30 6 1597 73
+4fc36 c 1602 73
+4fc42 1c 1603 73
+4fc5e 2 110 72
+4fc60 a 333 127
+4fc6a a 254 126
+4fc74 8 333 127
+4fc7c 6 254 126
+4fc82 6 1608 73
+4fc88 c 1610 73
+4fc94 6 1610 73
+4fc9a 2 70 144
+4fc9c 4 1610 73
+4fca0 4 70 144
+4fca4 2 481 106
+4fca6 2 342 106
+4fca8 2 1610 73
+4fcaa 4 342 106
+4fcae 8 343 106
+4fcb6 6 343 106
+4fcbc 6 346 106
+4fcc2 c 347 106
+4fcce 4 348 106
+4fcd2 a 352 106
+4fcdc 2 346 106
+4fcde 2 356 106
+4fce0 2 73 144
+4fce2 4 314 142
+4fce6 4 73 144
+4fcea 6 314 142
+4fcf0 2 112 65
+4fcf2 4 267 65
+4fcf6 2 112 65
+4fcf8 4 249 142
+4fcfc 2 112 65
+4fcfe 2 267 65
+4fd00 4 249 142
+4fd04 2 71 144
+4fd06 2 72 144
+4fd08 6 73 144
+4fd0e 2 112 65
+4fd10 4 267 65
+4fd14 6 249 142
+4fd1a 4 139 108
+4fd1e 4 112 65
+4fd22 4 267 65
+4fd26 6 112 65
+4fd2c 4 267 65
+4fd30 6 112 65
+4fd36 4 267 65
+4fd3a 4 112 65
+4fd3e 24 267 65
+4fd62 8 249 142
+4fd6a 2 1612 73
+4fd6c 2 244 144
+4fd6e 2 1610 73
+4fd70 2 244 144
+4fd72 4 1610 73
+4fd76 4 1625 73
+4fd7a 8 1612 73
+4fd82 c 202 144
+4fd8e 2 1618 73
+4fd90 2 202 144
+4fd92 6 1618 73
+4fd98 1a 1619 73
+4fdb2 2 110 72
+4fdb4 a 333 127
+4fdbe 8 254 126
+4fdc6 2 333 127
+4fdc8 2 254 126
+4fdca 4 333 127
+4fdce 12 1625 73
+4fde0 1a 1626 73
+4fdfa 2 110 72
+4fdfc a 333 127
+4fe06 a 254 126
+4fe10 8 333 127
+4fe18 8c 254 126
+4fea4 c 1631 73
+4feb0 1a 1633 73
+4feca 2 110 72
+4fecc 4 333 127
+4fed0 2 1634 73
+4fed2 6 333 127
+4fed8 8 1634 73
+4fee0 a 1634 73
+4feea 8 333 127
+4fef2 a 254 126
+4fefc 8 333 127
+4ff04 8 254 126
+4ff0c 6 156 137
+4ff12 6 1633 73
+4ff18 6 42 148
+4ff1e 8 98 57
+4ff26 8 1638 73
+4ff2e 2 1612 73
+4ff30 6 1638 73
+4ff36 2 1641 73
+4ff38 4 1644 73
+4ff3c 4 1646 73
+4ff40 2c 1648 73
+FUNC 4ff6c 80 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, unsigned int>::Range> > >::_M_insert
+4ff6c 2 358 140
+4ff6e 4 350 140
+4ff72 8 350 140
+4ff7a 2 358 140
+4ff7c 6 359 140
+4ff82 2 360 140
+4ff84 2 361 140
+4ff86 4 362 140
+4ff8a 4 364 140
+4ff8e 4 364 140
+4ff92 10 364 140
+4ffa2 4 367 140
+4ffa6 2 368 140
+4ffa8 4 369 140
+4ffac 2 367 140
+4ffae 4 369 140
+4ffb2 6 370 140
+4ffb8 4 373 140
+4ffbc 2 374 140
+4ffbe 4 375 140
+4ffc2 2 373 140
+4ffc4 4 375 140
+4ffc8 4 376 140
+4ffcc 2 379 140
+4ffce 2 378 140
+4ffd0 8 379 140
+4ffd8 4 380 140
+4ffdc 2 382 140
+4ffde 6 380 140
+4ffe4 4 142 141
+4ffe8 4 382 140
+FUNC 4ffec 1e8 0 google_breakpad::RangeMap<long long unsigned int, unsigned int>::StoreRange
+4ffec 8 50 75
+4fff4 4 53 75
+4fff8 e 50 75
+50006 2 50 75
+50008 4 56 75
+5000c 4 50 75
+50010 4 53 75
+50014 2 50 75
+50016 a 56 75
+50020 6 53 75
+50026 6 56 75
+5002c 4 53 75
+50030 2 56 75
+50032 18 60 75
+5004a 4 110 72
+5004e 6 333 127
+50054 4 60 75
+50058 4 333 127
+5005c a 60 75
+50066 a 60 75
+50070 2 333 127
+50072 4 61 75
+50076 6 333 127
+5007c a 61 75
+50086 a 61 75
+50090 2 333 127
+50092 2 61 75
+50094 6 333 127
+5009a a 61 75
+500a4 8 61 75
+500ac 12 156 137
+500be 6 60 75
+500c4 6 63 75
+500ca 2 568 141
+500cc 2 569 141
+500ce 2 571 141
+500d0 a 572 141
+500da 6 575 141
+500e0 2 573 141
+500e2 6 575 141
+500e8 2 569 141
+500ea 2 568 141
+500ec 2 571 141
+500ee e 572 141
+500fc 6 575 141
+50102 2 573 141
+50104 6 575 141
+5010a 4 71 75
+5010e 4 90 75
+50112 10 91 75
+50122 a 105 76
+5012c 10 62 129
+5013c 2 568 141
+5013e 4 62 129
+50142 2 408 140
+50144 2 409 140
+50146 e 412 140
+50154 4 412 140
+50158 4 412 140
+5015c 4 412 140
+50160 6 412 140
+50166 4 142 141
+5016a 2 415 140
+5016c 6 416 140
+50172 8 417 140
+5017a a 187 141
+50184 10 421 140
+50194 12 422 140
+501a6 2 113 75
+501a8 2c 114 75
+FUNC 501d4 630 0 google_breakpad::MinidumpModuleList::Read
+501d4 14 2445 73
+501e8 2 2445 73
+501ea 2 206 123
+501ec 4 2445 73
+501f0 4 206 123
+501f4 6 2448 73
+501fa 6 42 148
+50200 6 2448 73
+50206 2 2449 73
+50208 2 2455 73
+5020a 2 2449 73
+5020c 2 2450 73
+5020e 2 2452 73
+50210 2 2455 73
+50212 1e 2456 73
+50230 2 110 72
+50232 a 333 127
+5023c a 254 126
+50246 8 333 127
+5024e 8 254 126
+50256 4 2456 73
+5025a 10 2460 73
+5026a 1e 2461 73
+50288 a 333 127
+50292 6 2461 73
+50298 2 2462 73
+5029a 6 2465 73
+502a0 6 958 65
+502a6 2 2465 73
+502a8 6 2466 73
+502ae 8 2468 73
+502b6 1e 2469 73
+502d4 2 110 72
+502d6 a 333 127
+502e0 8 254 126
+502e8 a 333 127
+502f2 8 2475 73
+502fa 6 2474 73
+50300 6 2477 73
+50306 10 2480 73
+50316 1e 2482 73
+50334 a 333 127
+5033e 6 2482 73
+50344 4 2483 73
+50348 1e 2486 73
+50366 2 110 72
+50368 a 333 127
+50372 a 254 126
+5037c 8 333 127
+50384 2 2488 73
+50386 2 254 126
+50388 4 2488 73
+5038c 6 254 126
+50392 4 2486 73
+50396 10 2493 73
+503a6 1e 2494 73
+503c4 2 110 72
+503c6 a 333 127
+503d0 a 254 126
+503da 8 333 127
+503e2 a 254 126
+503ec 8 2494 73
+503f4 6 2499 73
+503fa c 2501 73
+50406 6 2501 73
+5040c 2 70 144
+5040e 4 2501 73
+50412 4 70 144
+50416 2 481 106
+50418 2 342 106
+5041a 2 2501 73
+5041c 4 342 106
+50420 8 343 106
+50428 4 343 106
+5042c 6 346 106
+50432 c 347 106
+5043e 4 348 106
+50442 a 352 106
+5044c 2 348 106
+5044e 4 352 106
+50452 2 346 106
+50454 2 356 106
+50456 2 73 144
+50458 4 314 142
+5045c 4 73 144
+50460 6 314 142
+50466 a 249 142
+50470 2 112 65
+50472 4 364 65
+50476 4 112 65
+5047a 4 71 144
+5047e 4 72 144
+50482 4 73 144
+50486 2 112 65
+50488 2 364 65
+5048a 6 249 142
+50490 2 139 108
+50492 4 112 65
+50496 4 364 65
+5049a 4 112 65
+5049e 2 364 65
+504a0 4 112 65
+504a4 2 364 65
+504a6 2 112 65
+504a8 34 364 65
+504dc 8 249 142
+504e4 2 244 144
+504e6 2 2501 73
+504e8 4 244 144
+504ec 4 92 57
+504f0 2 2503 73
+504f2 4 2501 73
+504f6 4 202 144
+504fa 6 2503 73
+50500 4 202 144
+50504 a 2509 73
+5050e 1c 2510 73
+5052a 2 110 72
+5052c a 333 127
+50536 8 254 126
+5053e 2 333 127
+50540 2 254 126
+50542 4 333 127
+50546 7e 2503 73
+505c4 4 2521 73
+505c8 8 2550 73
+505d0 2 2522 73
+505d2 6 2521 73
+505d8 e 202 144
+505e6 8 2531 73
+505ee 4 2531 73
+505f2 1c 2533 73
+5060e 2 110 72
+50610 a 333 127
+5061a 8 254 126
+50622 2 333 127
+50624 2 254 126
+50626 4 333 127
+5062a 6 2560 73
+50630 e 2541 73
+5063e a 2542 73
+50648 c 2543 73
+50654 4 2542 73
+50658 2 2543 73
+5065a 1e 2545 73
+50678 2 110 72
+5067a a 333 127
+50684 a 254 126
+5068e 8 333 127
+50696 a 254 126
+506a0 2 333 127
+506a2 2 2546 73
+506a4 6 333 127
+506aa 2 2546 73
+506ac 8 2546 73
+506b4 8 2546 73
+506bc 6 156 137
+506c2 6 2551 73
+506c8 4 98 57
+506cc 6 42 148
+506d2 a 98 57
+506dc 4 2563 73
+506e0 4 2565 73
+506e4 10 2567 73
+506f4 4 333 127
+506f8 8 254 126
+50700 4 2533 73
+50704 10 2550 73
+50714 1e 2551 73
+50732 2 110 72
+50734 a 333 127
+5073e a 254 126
+50748 8 333 127
+50750 a 254 126
+5075a 2 333 127
+5075c 2 2553 73
+5075e 8 333 127
+50766 a 2553 73
+50770 a 2553 73
+5077a 2 333 127
+5077c 2 2554 73
+5077e 4 333 127
+50782 a 2554 73
+5078c a 2554 73
+50796 2 333 127
+50798 2 2555 73
+5079a 6 333 127
+507a0 a 2555 73
+507aa 8 2555 73
+507b2 e 156 137
+507c0 8 2521 73
+507c8 3c 2567 73
+FUNC 50804 61c 0 google_breakpad::MinidumpMemoryList::Read
+50804 10 2689 73
+50814 2 2691 73
+50816 4 2689 73
+5081a 8 2689 73
+50822 2 2691 73
+50824 6 42 148
+5082a 6 2691 73
+50830 2 2692 73
+50832 2 2693 73
+50834 2 2692 73
+50836 2 2693 73
+50838 6 42 148
+5083e 6 2693 73
+50844 2 2694 73
+50846 2 206 123
+50848 2 2694 73
+5084a 4 206 123
+5084e 2 2701 73
+50850 2 2696 73
+50852 2 2698 73
+50854 2 2701 73
+50856 20 2702 73
+50876 2 110 72
+50878 c 333 127
+50884 a 254 126
+5088e a 333 127
+50898 a 254 126
+508a2 12 2706 73
+508b4 20 2707 73
+508d4 c 333 127
+508e0 6 2707 73
+508e6 2 2708 73
+508e8 6 2711 73
+508ee 6 958 65
+508f4 2 2711 73
+508f6 6 2712 73
+508fc 8 2714 73
+50904 20 2716 73
+50924 2 110 72
+50926 c 333 127
+50932 8 254 126
+5093a c 333 127
+50946 2 2722 73
+50948 6 2721 73
+5094e 6 2724 73
+50954 10 2727 73
+50964 20 2729 73
+50984 c 333 127
+50990 6 2729 73
+50996 4 2730 73
+5099a 1e 2733 73
+509b8 2 110 72
+509ba c 333 127
+509c6 a 254 126
+509d0 8 333 127
+509d8 2 2735 73
+509da 2 254 126
+509dc 2 2735 73
+509de 4 254 126
+509e2 c 2740 73
+509ee 1c 2741 73
+50a0a 2 110 72
+50a0c a 333 127
+50a16 a 254 126
+50a20 8 333 127
+50a28 8 254 126
+50a30 8 2741 73
+50a38 6 2746 73
+50a3e 6 2748 73
+50a44 2 2748 73
+50a46 8 2748 73
+50a4e 4 2748 73
+50a52 2 2748 73
+50a54 2 2748 73
+50a56 4 342 106
+50a5a 4 70 144
+50a5e 2 481 106
+50a60 2 342 106
+50a62 8 343 106
+50a6a 8 343 106
+50a72 2 346 106
+50a74 6 347 106
+50a7a 4 348 106
+50a7e 2 352 106
+50a80 2 348 106
+50a82 4 352 106
+50a86 2 356 106
+50a88 4 73 144
+50a8c 4 314 142
+50a90 4 71 144
+50a94 4 72 144
+50a98 4 73 144
+50a9c 4 249 142
+50aa0 6 249 142
+50aa6 2 139 108
+50aa8 8 139 108
+50ab0 8 249 142
+50ab8 2 2753 73
+50aba 4 244 144
+50abe 8 2753 73
+50ac6 4 92 57
+50aca 8 2753 73
+50ad2 2 2752 73
+50ad4 1a 2754 73
+50aee a 333 127
+50af8 6 2754 73
+50afe 2 2755 73
+50b00 8 2759 73
+50b08 6 2759 73
+50b0e 2 70 144
+50b10 4 2759 73
+50b14 4 70 144
+50b18 2 481 106
+50b1a 2 342 106
+50b1c 2 2759 73
+50b1e 8 342 106
+50b26 6 346 106
+50b2c c 347 106
+50b38 4 348 106
+50b3c a 352 106
+50b46 2 346 106
+50b48 2 356 106
+50b4a 2 73 144
+50b4c 4 314 142
+50b50 4 73 144
+50b54 4 314 142
+50b58 4 249 142
+50b5c 2 71 144
+50b5e 2 72 144
+50b60 4 112 65
+50b64 4 249 142
+50b68 2 201 65
+50b6a 2 112 65
+50b6c 6 201 65
+50b72 2 73 144
+50b74 2 112 65
+50b76 2 201 65
+50b78 6 249 142
+50b7e 4 139 108
+50b82 e 112 65
+50b90 4 201 65
+50b94 4 112 65
+50b98 10 201 65
+50ba8 8 249 142
+50bb0 4 244 144
+50bb4 6 2759 73
+50bba 4 2761 73
+50bbe 8 2782 73
+50bc6 2 2762 73
+50bc8 6 2761 73
+50bce 8 202 144
+50bd6 6 2766 73
+50bdc 6 958 65
+50be2 2 2766 73
+50be4 6 189 73
+50bea 8 190 73
+50bf2 8 2769 73
+50bfa 4 2770 73
+50bfe 6 2773 73
+50c04 6 2774 73
+50c0a 6 2773 73
+50c10 2 2774 73
+50c12 4 2773 73
+50c16 4 2793 73
+50c1a 4 2794 73
+50c1e 16 2782 73
+50c34 1a 2783 73
+50c4e 2 110 72
+50c50 a 333 127
+50c5a a 254 126
+50c64 8 333 127
+50c6c a 254 126
+50c76 2 333 127
+50c78 2 2785 73
+50c7a 6 333 127
+50c80 a 2785 73
+50c8a a 2785 73
+50c94 4 333 127
+50c98 2 2778 73
+50c9a 4 333 127
+50c9e 8 2778 73
+50ca6 8 2778 73
+50cae c 156 137
+50cba 6 2775 73
+50cc0 6 42 148
+50cc6 6 98 57
+50ccc 4 98 57
+50cd0 6 42 148
+50cd6 a 98 57
+50ce0 4 2797 73
+50ce4 4 2799 73
+50ce8 10 2801 73
+50cf8 1a 2775 73
+50d12 2 110 72
+50d14 14 333 127
+50d28 a 254 126
+50d32 8 333 127
+50d3a a 254 126
+50d44 2 333 127
+50d46 2 2777 73
+50d48 6 333 127
+50d4e a 2777 73
+50d58 8 2777 73
+50d60 2 333 127
+50d62 2 2777 73
+50d64 4 333 127
+50d68 2 2790 73
+50d6a 2 202 144
+50d6c c 2790 73
+50d78 8 2761 73
+50d80 a0 2801 73
+FUNC 50e20 64 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::_M_insert
+50e20 2 358 140
+50e22 2 350 140
+50e24 8 350 140
+50e2c 2 358 140
+50e2e 6 359 140
+50e34 2 360 140
+50e36 2 361 140
+50e38 4 362 140
+50e3c 4 364 140
+50e40 4 364 140
+50e44 8 364 140
+50e4c 4 367 140
+50e50 2 368 140
+50e52 2 369 140
+50e54 2 367 140
+50e56 4 369 140
+50e5a 4 370 140
+50e5e 4 373 140
+50e62 2 374 140
+50e64 2 375 140
+50e66 2 373 140
+50e68 4 375 140
+50e6c 2 376 140
+50e6e 2 379 140
+50e70 2 378 140
+50e72 6 379 140
+50e78 2 380 140
+50e7a 2 382 140
+50e7c 4 380 140
+50e80 2 142 141
+50e82 2 382 140
+FUNC 50e84 70 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::insert_unique
+50e84 2 405 140
+50e86 2 408 140
+50e88 4 405 140
+50e8c 2 406 140
+50e8e 2 405 140
+50e90 2 407 140
+50e92 2 405 140
+50e94 2 409 140
+50e96 4 412 140
+50e9a 2 412 140
+50e9c 2 412 140
+50e9e 4 412 140
+50ea2 a 412 140
+50eac 2 142 141
+50eae 2 415 140
+50eb0 6 416 140
+50eb6 6 417 140
+50ebc 8 187 141
+50ec4 e 421 140
+50ed2 10 422 140
+50ee2 4 142 141
+50ee6 4 62 129
+50eea 2 142 141
+50eec 2 425 140
+50eee 2 62 129
+50ef0 4 425 140
+FUNC 50ef4 f4 0 std::priv::_Rb_tree<unsigned int, std::less<unsigned int>, std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo>, std::priv::_Select1st<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::priv::_MapTraitsT<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> >, std::allocator<std::pair<unsigned int const, google_breakpad::Minidump::MinidumpStreamInfo> > >::insert_unique
+50ef4 4 432 140
+50ef8 4 434 140
+50efc 2 432 140
+50efe 2 434 140
+50f00 4 432 140
+50f04 2 434 140
+50f06 a 437 140
+50f10 4 440 140
+50f14 a 441 140
+50f1e 4 447 140
+50f22 6 177 141
+50f28 2 458 140
+50f2a 2 177 141
+50f2c 2 458 140
+50f2e c 462 140
+50f3a 8 479 140
+50f42 8 480 140
+50f4a 8 483 140
+50f52 2 486 140
+50f54 6 475 140
+50f5a 6 142 141
+50f60 c 187 141
+50f6c c 79 111
+50f78 6 494 140
+50f7e 6 494 140
+50f84 8 177 141
+50f8c 6 513 140
+50f92 4 517 140
+50f96 4 517 140
+50f9a 6 517 140
+50fa0 6 475 140
+50fa6 6 500 140
+50fac 8 522 140
+50fb4 6 497 140
+50fba 4 498 140
+50fbe c 524 140
+50fca 4 142 141
+50fce 4 521 140
+50fd2 6 522 140
+50fd8 8 524 140
+50fe0 8 534 140
+FUNC 50fe8 5a8 0 google_breakpad::Minidump::Read
+50fe8 10 4099 73
+50ff8 2 4101 73
+50ffa 4 4099 73
+50ffe 6 4099 73
+51004 2 4101 73
+51006 6 42 148
+5100c 6 4101 73
+51012 2 4102 73
+51014 2 4103 73
+51016 2 4102 73
+51018 4 531 141
+5101c 8 532 141
+51024 2 533 141
+51026 2 534 141
+51028 2 535 141
+5102a 2 536 141
+5102c 2 4105 73
+5102e 2 4107 73
+51030 4 4105 73
+51034 a 4107 73
+5103e 1e 4108 73
+5105c a 333 127
+51066 12 4112 73
+51078 1e 4113 73
+51096 c 333 127
+510a2 6 4113 73
+510a8 2 4114 73
+510aa a 4117 73
+510b4 6 4122 73
+510ba 4 4123 73
+510be 6 4124 73
+510c4 1e 4126 73
+510e2 4 110 72
+510e6 6 333 127
+510ec 2 4127 73
+510ee 6 333 127
+510f4 8 4127 73
+510fc a 4127 73
+51106 4 333 127
+5110a 2 4128 73
+5110c 6 333 127
+51112 8 4128 73
+5111a a 4128 73
+51124 4 333 127
+51128 4 4129 73
+5112c 6 333 127
+51132 8 4129 73
+5113a 8 4129 73
+51142 12 156 137
+51154 6 4126 73
+5115a 4 4130 73
+5115e 8 4132 73
+51166 4 4136 73
+5116a 1a 4139 73
+51184 2 110 72
+51186 a 333 127
+51190 6 4139 73
+51196 6 4139 73
+5119c 4 4139 73
+511a0 10 333 127
+511b0 6 4139 73
+511b6 6 4142 73
+511bc 6 4143 73
+511c2 8 4144 73
+511ca 8 4145 73
+511d2 8 4146 73
+511da 8 4147 73
+511e2 8 4148 73
+511ea 8 4149 73
+511f2 a 4154 73
+511fc 1a 4155 73
+51216 2 110 72
+51218 2 333 127
+5121a 2 4156 73
+5121c 8 333 127
+51224 8 4156 73
+5122c a 4156 73
+51236 2 333 127
+51238 2 4157 73
+5123a 6 333 127
+51240 8 4157 73
+51248 8 4157 73
+51250 e 156 137
+5125e c 4161 73
+5126a 1a 4162 73
+51284 8 333 127
+5128c c 4166 73
+51298 1a 4167 73
+512b2 2 110 72
+512b4 a 333 127
+512be a 254 126
+512c8 8 333 127
+512d0 8 254 126
+512d8 8 4167 73
+512e0 6 4172 73
+512e6 4 4174 73
+512ea 2 4174 73
+512ec c 4174 73
+512f8 4 4174 73
+512fc 4 4174 73
+51300 2 342 106
+51302 2 4174 73
+51304 2 342 106
+51306 8 70 144
+5130e 4 481 106
+51312 2 342 106
+51314 8 343 106
+5131c 8 343 106
+51324 6 346 106
+5132a c 347 106
+51336 6 348 106
+5133c a 352 106
+51346 2 346 106
+51348 2 356 106
+5134a 2 73 144
+5134c 4 314 142
+51350 4 73 144
+51354 4 314 142
+51358 8 249 142
+51360 2 71 144
+51362 2 72 144
+51364 2 73 144
+51366 6 249 142
+5136c 2 139 108
+5136e 8 139 108
+51376 8 249 142
+5137e 4 4179 73
+51382 4 244 144
+51386 e 4179 73
+51394 4 4178 73
+51398 1a 4180 73
+513b2 8 333 127
+513ba 2 178 123
+513bc 2 142 141
+513be 2 178 123
+513c0 6 178 123
+513c6 2 171 141
+513c8 4 4218 73
+513cc 4 4184 73
+513d0 6 4184 73
+513d6 e 202 144
+513e4 6 4189 73
+513ea 6 4190 73
+513f0 8 4191 73
+513f8 6 4196 73
+513fe 2 4197 73
+51400 2 4196 73
+51402 2 4197 73
+51404 a 210 123
+5140e 2 423 141
+51410 2 200 141
+51412 4 4205 73
+51416 1a 4208 73
+51430 2 110 72
+51432 a 333 127
+5143c 8 254 126
+51444 8 333 127
+5144c 6 4208 73
+51452 6 42 148
+51458 8 98 57
+51460 6 210 123
+51466 4 202 144
+5146a 4 210 123
+5146e 10 4197 73
+5147e 6 4218 73
+51484 6 568 141
+5148a 4 571 141
+5148e 4 572 141
+51492 6 575 141
+51498 2 573 141
+5149a 6 575 141
+514a0 4 4223 73
+514a4 6 98 57
+514aa 6 4226 73
+514b0 10 4228 73
+514c0 2 968 65
+514c2 4 62 129
+514c6 4 968 65
+514ca a 62 129
+514d4 2 142 141
+514d6 4 62 129
+514da c 191 123
+514e6 2 179 123
+514e8 2 51 129
+514ea 2 179 123
+514ec 4 51 129
+514f0 8 179 123
+514f8 98 4228 73
+FUNC 51590 66 0 std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_buffers
+51590 2 630 109
+51592 4 630 109
+51596 2 637 109
+51598 8 644 109
+515a0 2 645 109
+515a2 4 647 109
+515a6 2 651 109
+515a8 2 650 109
+515aa 2 655 109
+515ac 4 651 109
+515b0 2 227 107
+515b2 2 655 109
+515b4 4 227 107
+515b8 8 655 109
+515c0 8 661 109
+515c8 2 664 109
+515ca 6 686 109
+515d0 6 687 109
+515d6 6 688 109
+515dc 4 689 109
+515e0 2 690 109
+515e2 2 691 109
+515e4 4 692 109
+515e8 2 670 109
+515ea 2 671 109
+515ec 2 669 109
+515ee 2 670 109
+515f0 4 669 109
+515f4 2 672 109
+FUNC 515f6 26 0 std::basic_filebuf<char, std::char_traits<char> >::setbuf
+515f6 2 268 109
+515f8 4 269 109
+515fc 2 268 109
+515fe 2 269 109
+51600 4 269 109
+51604 4 269 109
+51608 2 271 109
+5160a 2 271 109
+5160c 4 272 109
+51610 4 273 109
+51614 4 274 109
+51618 4 277 109
+FUNC 5161c 140 0 std::basic_filebuf<char, std::char_traits<char> >::overflow
+5161c 4 208 109
+51620 4 210 109
+51624 2 208 109
+51626 4 208 109
+5162a 4 210 109
+5162e a 453 109
+51638 8 453 109
+51640 a 453 109
+5164a 8 453 109
+51652 6 456 109
+51658 6 128 110
+5165e a 680 109
+51668 2 681 109
+5166a 4 680 109
+5166e 6 681 109
+51674 4 456 109
+51678 4 462 109
+5167c 6 463 109
+51682 4 118 134
+51686 6 466 109
+5168c 2 216 109
+5168e 4 214 109
+51692 2 219 109
+51694 4 216 109
+51698 2 117 134
+5169a 2 118 134
+5169c 2 119 134
+5169e 4 228 109
+516a2 4 220 145
+516a6 4 193 107
+516aa 4 220 109
+516ae 4 193 107
+516b2 4 223 109
+516b6 2 225 109
+516b8 2 228 109
+516ba 2 225 109
+516bc 2 224 109
+516be 1c 193 107
+516da 4 229 109
+516de c 322 110
+516ea 4 232 109
+516ee 4 240 109
+516f2 2 580 109
+516f4 2 582 109
+516f6 4 580 109
+516fa 4 581 109
+516fe 4 582 109
+51702 2 117 134
+51704 2 118 134
+51706 4 119 134
+5170a 6 240 109
+51710 10 240 109
+51720 8 240 109
+51728 4 240 109
+5172c e 322 110
+5173a 4 246 109
+5173e 4 247 109
+51742 a 182 145
+5174c 4 212 109
+51750 c 256 109
+FUNC 5175c c0 0 std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf
+5175c 2 67 109
+5175e 2 70 109
+51760 4 84 109
+51764 6 70 109
+5176a a 67 109
+51774 2 84 109
+51776 2 85 109
+51778 8 86 109
+51780 6 85 109
+51786 6 89 109
+5178c 4 119 109
+51790 8 120 109
+51798 2 121 109
+5179a 2 122 109
+5179c 6 124 109
+517a2 6 93 109
+517a8 6 97 109
+517ae 4 98 109
+517b2 2 100 109
+517b4 2 101 109
+517b6 2 93 134
+517b8 2 94 134
+517ba 2 95 134
+517bc 2 117 134
+517be 2 118 134
+517c0 2 119 134
+517c2 6 106 109
+517c8 10 108 109
+517d8 6 686 109
+517de 8 687 109
+517e6 8 594 109
+517ee 10 594 109
+517fe 6 688 109
+51804 2 689 109
+51806 2 70 109
+51808 2 689 109
+5180a 2 690 109
+5180c 2 691 109
+5180e 2 692 109
+51810 c 70 109
+FUNC 5181c 12 0 std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf
+5181c 2 67 109
+5181e 2 67 109
+51820 4 70 109
+51824 6 70 109
+5182a 4 70 109
+FUNC 51830 6c 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+51830 2 495 110
+51832 8 495 110
+5183a 4 495 110
+5183e 6 495 110
+51844 4 495 110
+51848 6 495 110
+5184e 2 495 110
+51850 4 495 110
+51854 4 495 110
+51858 6 495 110
+5185e c 495 110
+5186a 6 495 110
+51870 6 495 110
+51876 4 495 110
+5187a 8 495 110
+51882 4 495 110
+51886 6 495 110
+5188c 10 495 110
+FUNC 5189c 8 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+5189c 8 495 110
+FUNC 518b0 12 0 std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream
+518b0 2 495 110
+518b2 6 495 110
+518b8 6 495 110
+518be 4 495 110
+FUNC 518ce 70 0 std::basic_filebuf<char, std::char_traits<char> >::_M_seek_init
+518ce 2 700 109
+518d0 6 702 109
+518d6 4 706 109
+518da 4 700 109
+518de 2 706 109
+518e0 2 708 109
+518e2 8 708 109
+518ea 6 708 109
+518f0 2 709 109
+518f2 2 710 109
+518f4 6 594 109
+518fa c 594 109
+51906 2 711 109
+51908 2 712 109
+5190a 2 713 109
+5190c 4 712 109
+51910 4 713 109
+51914 2 117 134
+51916 2 118 134
+51918 2 119 134
+5191a 2 715 109
+5191c 6 720 109
+51922 6 720 109
+51928 6 93 134
+5192e 2 95 134
+51930 2 221 110
+51932 2 93 134
+51934 2 94 134
+51936 4 221 110
+5193a 2 723 109
+5193c 2 724 109
+FUNC 5193e 4e 0 std::basic_filebuf<char, std::char_traits<char> >::_M_seek_return
+5193e 2 238 110
+51940 2 238 110
+51942 2 239 110
+51944 6 238 110
+5194a 2 239 110
+5194c 6 240 110
+51952 4 119 109
+51956 a 120 109
+51960 4 121 109
+51964 2 122 109
+51966 6 242 110
+5196c 4 243 110
+51970 4 244 110
+51974 4 245 110
+51978 2 93 134
+5197a 2 94 134
+5197c 2 95 134
+5197e 2 117 134
+51980 2 118 134
+51982 2 119 134
+51984 4 121 145
+51988 4 253 110
+FUNC 5198c 52 0 std::basic_filebuf<char, std::char_traits<char> >::seekpos
+5198c 2 384 109
+5198e 8 384 109
+51996 4 386 109
+5199a 2 384 109
+5199c 2 386 109
+5199e a 387 109
+519a8 e 89 145
+519b6 4 391 109
+519ba c 391 109
+519c6 6 391 109
+519cc 2 393 109
+519ce 2 392 109
+519d0 8 393 109
+519d8 6 398 109
+FUNC 519de 12c 0 std::basic_filebuf<char, std::char_traits<char> >::seekoff
+519de 6 291 109
+519e4 4 294 109
+519e8 2 291 109
+519ea 6 291 109
+519f0 2 294 109
+519f2 c 89 145
+519fe 6 297 109
+51a04 4 297 109
+51a08 2 300 109
+51a0a 8 300 109
+51a12 2 300 109
+51a14 a 300 109
+51a1e 4 304 109
+51a22 4 304 109
+51a26 c 306 109
+51a32 a 310 109
+51a3c c 312 109
+51a48 c 314 109
+51a54 c 317 109
+51a60 2 321 109
+51a62 8 321 109
+51a6a 2 321 109
+51a6c 2 321 109
+51a6e 8 321 109
+51a76 4 324 109
+51a7a 2 325 109
+51a7c 6 324 109
+51a82 2 325 109
+51a84 2 332 109
+51a86 2 325 109
+51a88 8 332 109
+51a90 2 333 109
+51a92 6 87 110
+51a98 2 336 109
+51a9a 8 335 109
+51aa2 2 336 109
+51aa4 4 89 145
+51aa8 8 336 109
+51ab0 2 336 109
+51ab2 2 336 109
+51ab4 6 336 109
+51aba 4 344 109
+51abe 2 346 109
+51ac0 4 344 109
+51ac4 c 224 107
+51ad0 4 370 109
+51ad4 2 224 107
+51ad6 a 370 109
+51ae0 2 373 109
+51ae2 2 371 109
+51ae4 2 372 109
+51ae6 2 373 109
+51ae8 2 87 110
+51aea 2 372 109
+51aec 4 373 109
+51af0 2 375 109
+51af2 6 89 145
+51af8 a 375 109
+51b02 8 379 109
+FUNC 51b0a a0 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind
+51b0a 4 468 135
+51b0e 2 400 136
+51b10 4 471 135
+51b14 6 472 135
+51b1a a 474 135
+51b24 2 162 104
+51b26 2 474 135
+51b28 4 164 104
+51b2c 8 165 104
+51b34 8 168 104
+51b3c 2 81 118
+51b3e 4 65 118
+51b42 8 171 104
+51b4a 4 81 118
+51b4e 8 174 104
+51b56 4 81 118
+51b5a 6 164 104
+51b60 2 152 118
+51b62 10 178 104
+51b72 8 180 104
+51b7a 4 81 118
+51b7e 2 76 118
+51b80 8 183 104
+51b88 4 81 118
+51b8c 2 76 118
+51b8e 8 186 104
+51b96 6 65 118
+51b9c 2 74 118
+51b9e 4 478 135
+51ba2 4 478 135
+51ba6 4 479 135
+FUNC 51bac a8 0 google_breakpad::PathnameStripper::File
+51bac 2 41 74
+51bae 2 41 74
+51bb0 4 42 74
+51bb4 2 41 74
+51bb6 a 42 74
+51bc0 c 43 74
+51bcc 4 46 74
+51bd0 4 46 74
+51bd4 4 47 74
+51bd8 4 48 74
+51bdc 4 49 74
+51be0 4 50 74
+51be4 2 45 74
+51be6 2 112 137
+51be8 6 481 106
+51bee 2 400 136
+51bf0 4 205 136
+51bf4 8 604 135
+51bfc 2 209 136
+51bfe 2 378 136
+51c00 4 608 135
+51c04 4 610 135
+51c08 2 158 106
+51c0a 2 347 106
+51c0c 2 158 106
+51c0e 6 134 124
+51c14 6 158 106
+51c1a 2 613 135
+51c1c 2 611 135
+51c1e 2 612 135
+51c20 4 613 135
+51c24 6 107 142
+51c2a 8 106 142
+51c32 4 107 142
+51c36 8 600 135
+51c3e 2 101 108
+51c40 2 380 136
+51c42 2 101 108
+51c44 10 54 74
+FUNC 51c54 6 0 google_breakpad::BasicCodeModules::module_count
+51c54 2 85 67
+51c56 4 87 67
+FUNC 51c5a a 0 google_breakpad::BasicCodeModules::GetMainModule
+51c5a a 101 67
+FUNC 51c64 6 0 google_breakpad::BasicCodeModules::GetModuleAtIndex
+51c64 6 121 67
+FUNC 51c6a 24 0 google_breakpad::linked_ptr<const google_breakpad::CodeModule>::depart
+51c6a 2 83 70
+51c6c 2 156 70
+51c6e 6 83 70
+51c74 a 85 70
+51c7e 4 86 70
+51c82 4 156 70
+51c86 2 156 70
+51c88 6 156 70
+FUNC 51c8e 28 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_erase
+51c8e 6 655 140
+51c94 2 657 140
+51c96 8 658 140
+51c9e 4 102 70
+51ca2 2 659 140
+51ca4 4 102 70
+51ca8 c 161 106
+51cb4 2 664 140
+FUNC 51cb8 2c 0 google_breakpad::BasicCodeModules::~BasicCodeModules
+51cb8 2 81 67
+51cba 2 81 67
+51cbc 2 82 67
+51cbe 8 81 67
+51cc6 2 82 67
+51cc8 4 531 141
+51ccc 8 532 141
+51cd4 6 82 67
+51cda a 83 67
+FUNC 51ce4 12 0 google_breakpad::BasicCodeModules::~BasicCodeModules
+51ce4 2 81 67
+51ce6 2 81 67
+51ce8 4 83 67
+51cec 6 83 67
+51cf2 4 83 67
+FUNC 51cf6 24 0 google_breakpad::linked_ptr<const google_breakpad::CodeModule>::copy<const google_breakpad::CodeModule>
+51cf6 2 165 70
+51cf8 4 164 70
+51cfc 4 165 70
+51d00 2 166 70
+51d02 4 167 70
+51d06 a 75 70
+51d10 2 76 70
+51d12 4 77 70
+51d16 4 69 70
+FUNC 51d1c e8 0 google_breakpad::BasicCodeModules::GetModuleForAddress
+51d1c 10 90 67
+51d2c 2 90 67
+51d2e 2 160 70
+51d30 2 92 67
+51d32 4 90 67
+51d36 2 568 141
+51d38 2 160 70
+51d3a 6 69 70
+51d40 2 571 141
+51d42 a 572 141
+51d4c 6 575 141
+51d52 2 573 141
+51d54 6 575 141
+51d5a a 125 75
+51d64 c 133 75
+51d70 a 106 70
+51d7a 6 117 70
+51d80 8 118 70
+51d88 8 102 70
+51d90 2 97 67
+51d92 16 93 67
+51da8 4 110 72
+51dac 2 333 127
+51dae 4 93 67
+51db2 8 333 127
+51dba a 93 67
+51dc4 8 93 67
+51dcc 6 156 137
+51dd2 6 93 67
+51dd8 2 94 67
+51dda 6 102 70
+51de0 24 98 67
+FUNC 51e04 3e 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_create_node
+51e04 2 306 106
+51e06 2 315 141
+51e08 2 315 141
+51e0a 6 306 106
+51e10 4 158 106
+51e14 4 119 108
+51e18 2 158 106
+51e1a 2 119 108
+51e1c 4 68 129
+51e20 2 102 76
+51e22 4 68 129
+51e26 2 106 70
+51e28 8 102 76
+51e30 6 106 70
+51e36 2 321 141
+51e38 2 324 141
+51e3a 2 321 141
+51e3c 2 322 141
+51e3e 4 324 141
+FUNC 51e44 194 0 google_breakpad::BasicCodeModules::GetModuleAtSequence
+51e44 4 105 67
+51e48 2 160 70
+51e4a 2 105 67
+51e4c 2 107 67
+51e4e 4 69 70
+51e52 2 184 75
+51e54 2 105 67
+51e56 2 184 75
+51e58 2 160 70
+51e5a 2 184 75
+51e5c 1a 185 75
+51e76 4 110 72
+51e7a a 333 127
+51e84 a 240 126
+51e8e 8 333 127
+51e96 8 240 126
+51e9e 6 185 75
+51ea4 16 108 67
+51eba 2 110 72
+51ebc a 333 127
+51ec6 c 181 127
+51ed2 6 199 126
+51ed8 2 142 141
+51eda 4 192 75
+51ede 4 297 140
+51ee2 a 94 141
+51eec 2 301 140
+51eee 6 302 140
+51ef4 6 304 140
+51efa 8 309 140
+51f02 4 192 75
+51f06 6 106 70
+51f0c 2 117 70
+51f0e 4 106 70
+51f12 6 117 70
+51f18 8 118 70
+51f20 8 102 70
+51f28 2 112 67
+51f2a 2 202 126
+51f2c 2 145 115
+51f2e 4 202 126
+51f32 2 145 115
+51f34 2 202 126
+51f36 6 145 115
+51f3c 8 351 122
+51f44 6 351 122
+51f4a 2 202 126
+51f4c 2 351 122
+51f4e c 202 126
+51f5a 16 57 128
+51f70 1c 72 125
+51f8c 6 202 126
+51f92 2 210 126
+51f94 e 211 126
+51fa2 6 212 126
+51fa8 6 108 67
+51fae 2 109 67
+51fb0 6 102 70
+51fb6 22 113 67
+FUNC 51fd8 80 0 std::priv::_Rb_tree<long long unsigned int, std::less<long long unsigned int>, std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range>, std::priv::_Select1st<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::priv::_MapTraitsT<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> >, std::allocator<std::pair<long long unsigned int const, google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::Range> > >::_M_insert
+51fd8 2 358 140
+51fda 4 350 140
+51fde 8 350 140
+51fe6 2 358 140
+51fe8 6 359 140
+51fee 2 360 140
+51ff0 2 361 140
+51ff2 4 362 140
+51ff6 4 364 140
+51ffa 4 364 140
+51ffe 10 364 140
+5200e 4 367 140
+52012 2 368 140
+52014 4 369 140
+52018 2 367 140
+5201a 4 369 140
+5201e 6 370 140
+52024 4 373 140
+52028 2 374 140
+5202a 4 375 140
+5202e 2 373 140
+52030 4 375 140
+52034 4 376 140
+52038 2 379 140
+5203a 2 378 140
+5203c 8 379 140
+52044 4 380 140
+52048 2 382 140
+5204a 6 380 140
+52050 4 142 141
+52054 4 382 140
+FUNC 52058 218 0 google_breakpad::RangeMap<long long unsigned int, google_breakpad::linked_ptr<const google_breakpad::CodeModule> >::StoreRange
+52058 8 50 75
+52060 4 53 75
+52064 e 50 75
+52072 2 50 75
+52074 4 56 75
+52078 4 50 75
+5207c 4 53 75
+52080 2 50 75
+52082 a 56 75
+5208c 4 53 75
+52090 8 56 75
+52098 18 60 75
+520b0 4 110 72
+520b4 6 333 127
+520ba 4 60 75
+520be 4 333 127
+520c2 a 60 75
+520cc a 60 75
+520d6 2 333 127
+520d8 4 61 75
+520dc 6 333 127
+520e2 a 61 75
+520ec a 61 75
+520f6 2 333 127
+520f8 2 61 75
+520fa 6 333 127
+52100 a 61 75
+5210a 8 61 75
+52112 12 156 137
+52124 6 60 75
+5212a 6 63 75
+52130 2 568 141
+52132 2 569 141
+52134 2 571 141
+52136 a 572 141
+52140 6 575 141
+52146 2 573 141
+52148 6 575 141
+5214e 2 568 141
+52150 2 571 141
+52152 a 572 141
+5215c 6 575 141
+52162 2 573 141
+52164 6 575 141
+5216a 4 71 75
+5216e 4 90 75
+52172 c 91 75
+5217e 2 106 70
+52180 4 105 76
+52184 8 106 70
+5218c 4 102 76
+52190 4 62 129
+52194 6 106 70
+5219a 4 102 76
+5219e 8 106 70
+521a6 2 568 141
+521a8 2 408 140
+521aa 2 407 140
+521ac 2 409 140
+521ae a 412 140
+521b8 4 412 140
+521bc 4 412 140
+521c0 4 412 140
+521c4 6 412 140
+521ca 2 409 140
+521cc 4 142 141
+521d0 2 415 140
+521d2 6 416 140
+521d8 8 417 140
+521e0 6 279 140
+521e6 a 279 140
+521f0 6 280 140
+521f6 6 281 140
+521fc 8 99 141
+52204 4 285 140
+52208 6 286 140
+5220e 6 288 140
+52214 4 187 141
+52218 c 421 140
+52224 10 422 140
+52234 c 102 70
+52240 2 113 75
+52242 2e 114 75
+FUNC 52270 174 0 google_breakpad::BasicCodeModules::BasicCodeModules
+52270 12 48 67
+52282 2 48 67
+52284 2 50 67
+52286 2 48 67
+52288 2 50 67
+5228a 2 48 67
+5228c c 50 67
+52298 2 50 67
+5229a 2 48 67
+5229c 6 50 67
+522a2 4 55 76
+522a6 4 50 67
+522aa 2 52 67
+522ac 1c 52 67
+522c8 a 333 127
+522d2 6 52 67
+522d8 8 55 67
+522e0 2 56 67
+522e2 a 57 67
+522ec 8 59 67
+522f4 2 60 67
+522f6 2 70 67
+522f8 2 59 67
+522fa 4 70 67
+522fe c 333 127
+5230a 6 60 67
+52310 c 68 67
+5231c 4 160 70
+52320 4 68 67
+52324 2 69 70
+52326 4 160 70
+5232a 2 69 70
+5232c 4 69 67
+52330 4 69 67
+52334 6 69 67
+5233a 4 69 67
+5233e 2 69 67
+52340 4 69 67
+52344 2 69 67
+52346 4 69 67
+5234a a 69 67
+52354 2 69 67
+52356 18 70 67
+5236e 4 110 72
+52372 a 333 127
+5237c 2 70 67
+5237e 2 70 67
+52380 6 70 67
+52386 8 70 67
+5238e 6 333 127
+52394 6 156 137
+5239a 6 70 67
+523a0 6 102 70
+523a6 4 60 67
+523aa 3a 74 67
+FUNC 523e4 16 0 google_breakpad::BasicCodeModules::Copy
+523e4 2 124 67
+523e6 2 124 67
+523e8 8 125 67
+523f0 6 125 67
+523f6 4 126 67
+FUNC 523fc 2c 0 CxaThreadKey::freeObject
+523fc 2 251 159
+523fe 2 251 159
+52400 2 141 159
+52402 8 144 159
+5240a 6 68 159
+52410 2 146 159
+52412 2 72 159
+52414 2 146 159
+52416 2 147 159
+52418 4 253 159
+5241c c 72 159
+FUNC 52428 58 0 CxaThreadKey::~CxaThreadKey
+52428 2 217 159
+5242a 2 217 159
+5242c c 116 159
+52438 4 117 159
+5243c 2 119 159
+5243e 6 121 159
+52444 2 119 159
+52446 2 120 159
+52448 4 121 159
+5244c 6 117 159
+52452 c 123 159
+5245e 6 124 159
+52464 a 219 159
+5246e 12 220 159
+FUNC 52480 18 0 __cxxabiv1::__shim_type_info::~__shim_type_info
+52480 4 278 159
+52484 8 278 159
+5248c c 279 159
+FUNC 52498 12 0 __cxxabiv1::__shim_type_info::~__shim_type_info
+52498 2 278 159
+5249a 2 278 159
+5249c 4 279 159
+524a0 6 279 159
+524a6 4 279 159
+FUNC 524ac 10 0 __cxxabiv1::__cxa_pure_virtual
+524ac 2 282 159
+524ae 2 281 159
+524b0 c 282 159
+FUNC 524bc f8 0 __cxxabiv1::__cxa_get_globals
+524bc 2 228 159
+524be 2 289 159
+524c0 4 228 159
+524c4 2 289 159
+524c6 6 228 159
+524cc 2 229 159
+524ce 6 291 159
+524d4 6 129 159
+524da 4 68 159
+524de a 131 159
+524e8 2 135 159
+524ea 2 136 159
+524ec 6 135 159
+524f2 6 136 159
+524f8 6 129 159
+524fe 4 72 159
+52502 4 239 159
+52506 e 244 159
+52514 16 156 159
+5252a 4 157 159
+5252e 8 161 159
+52536 2 167 159
+52538 2 161 159
+5253a 2 162 159
+5253c 6 167 159
+52542 2 167 159
+52544 2 167 159
+52546 2 168 159
+52548 2 167 159
+5254a 2 169 159
+5254c 2 170 159
+5254e 2 167 159
+52550 c 172 159
+5255c 6 167 159
+52562 c 129 159
+5256e 8 72 159
+52576 a 290 159
+52580 8 242 159
+52588 2c 289 159
+FUNC 525b4 2c 0 throwException
+525b4 2 262 159
+525b6 2 262 159
+525b8 4 263 159
+525bc 4 268 159
+525c0 2 263 159
+525c2 6 264 159
+525c8 4 265 159
+525cc 4 266 159
+525d0 2 265 159
+525d2 2 268 159
+525d4 2 266 159
+525d6 4 268 159
+525da 6 271 159
+FUNC 525e0 20 0 __cxxabiv1::__cxa_get_globals_fast
+525e0 2 223 159
+525e2 2 293 159
+525e4 8 223 159
+525ec 2 295 159
+525ee 8 294 159
+525f6 a 293 159
+FUNC 52600 34 0 __cxxabiv1::__cxa_allocate_exception
+52600 2 297 159
+52602 2 298 159
+52604 6 299 159
+5260a 2 300 159
+5260c 8 307 159
+52614 4 308 159
+52618 2 309 159
+5261a 8 304 159
+52622 8 308 159
+5262a a 297 159
+FUNC 52634 40 0 __cxxabiv1::__cxa_free_exception
+52634 2 311 159
+52636 2 311 159
+52638 6 314 159
+5263e 2 316 159
+52640 4 312 159
+52644 4 323 159
+52648 4 322 159
+5264c 4 317 159
+52650 c 318 159
+5265c 8 317 159
+52664 4 318 159
+52668 c 311 159
+FUNC 52674 8 0 defaultExceptionCleanupFunc
+52674 4 51 159
+52678 4 51 159
+FUNC 52680 34 0 __cxxabiv1::__cxa_throw
+52680 2 327 159
+52682 2 327 159
+52684 6 332 159
+5268a 4 328 159
+5268e 2 333 159
+52690 4 329 159
+52694 2 333 159
+52696 4 332 159
+5269a 4 330 159
+5269e 4 333 159
+526a2 12 335 159
+FUNC 526b8 44 0 __cxxabiv1::__cxa_rethrow
+526b8 2 338 159
+526ba 4 339 159
+526be 2 340 159
+526c0 2 342 159
+526c2 14 347 159
+526d6 4 350 159
+526da 6 353 159
+526e0 8 348 159
+526e8 14 344 159
+FUNC 52700 74 0 __cxxabiv1::__cxa_begin_catch
+52700 2 356 159
+52702 2 356 159
+52704 4 359 159
+52708 12 361 159
+5271a 2 362 159
+5271c 2 361 159
+5271e 2 362 159
+52720 4 369 159
+52724 4 358 159
+52728 2 369 159
+5272a 6 369 159
+52730 2 369 159
+52732 4 369 159
+52736 4 377 159
+5273a 2 371 159
+5273c 6 372 159
+52742 2 373 159
+52744 6 375 159
+5274a 4 378 159
+5274e 8 363 159
+52756 8 377 159
+5275e 16 356 159
+FUNC 52778 7c 0 __cxxabiv1::__cxa_end_catch
+52778 2 380 159
+5277a 4 381 159
+5277e 2 382 159
+52780 2 385 159
+52782 14 389 159
+52796 2 383 159
+52798 4 390 159
+5279c a 391 159
+527a6 2 395 159
+527a8 4 396 159
+527ac 4 400 159
+527b0 4 404 159
+527b4 4 408 159
+527b8 4 397 159
+527bc 6 398 159
+527c2 2 401 159
+527c4 2 402 159
+527c6 2 401 159
+527c8 2 402 159
+527ca 4 409 159
+527ce 4 402 159
+527d2 8 405 159
+527da 8 408 159
+527e2 12 380 159
+FUNC 527f8 8 0 operator delete(void*)
+527f8 2 37 161
+527fa 6 38 161
+FUNC 52800 4 0 operator delete[](void*)
+52800 4 44 161
+FUNC 52804 10 0 std::bad_exception::~bad_exception
+FUNC 52804 10 0 std::exception::exception
+FUNC 52804 10 0 std::exception::~exception
+52804 8 36 164
+5280c 8 41 164
+FUNC 52814 c 0 std::exception::what() const
+52814 4 44 164
+52818 8 45 164
+FUNC 52820 c 0 std::bad_exception::what() const
+52820 4 56 164
+52824 8 57 164
+FUNC 5282c 18 0 std::bad_exception::~bad_exception
+5282c 2 40 164
+5282e 2 40 164
+52830 2 40 164
+52832 6 40 164
+52838 4 53 164
+5283c 8 53 164
+FUNC 5282c 18 0 std::exception::~exception
+FUNC 52844 10 0 std::bad_exception::bad_exception
+52844 8 48 164
+5284c 8 49 164
+FUNC 52854 10 0 std::uncaught_exception()
+52854 2 60 164
+52856 4 63 164
+5285a 2 64 164
+5285c 6 64 164
+52862 2 65 164
+FUNC 52864 5c 0 __gabixx::__fatal_error(char const*)
+52864 2 36 165
+52866 2 41 165
+52868 4 36 165
+5286c 10 41 165
+5287c c 65 165
+52888 2 67 165
+5288a a 68 165
+52894 2 69 165
+52896 a 70 165
+528a0 6 72 165
+528a6 1a 75 165
+FUNC 528c0 a 0 __cxxabiv1::call_terminate(_Unwind_Control_Block*)
+528c0 2 52 166
+528c2 4 53 166
+528c6 4 54 166
+FUNC 528cc a 0 __cxxabiv1::decodeRelocTarget2
+528cc 2 292 166
+528ce 2 293 166
+528d0 2 298 166
+528d2 4 300 166
+FUNC 528d8 1a 0 __cxxabiv1::getTypePtr(unsigned long long, unsigned char const*, unsigned char, _Unwind_Control_Block*)
+528d8 2 305 166
+528da 2 306 166
+528dc 4 309 166
+528e0 2 292 166
+528e2 2 293 166
+528e4 4 298 166
+528e8 2 293 166
+528ea 2 311 166
+528ec 6 307 166
+FUNC 528f4 3c 0 __cxxabiv1::canExceptionSpecCatch(long long, unsigned char const*, unsigned char, std::type_info const*, void*, _Unwind_Control_Block*)
+528f4 2 324 166
+528f6 4 318 166
+528fa 4 325 166
+528fe 2 318 166
+52900 2 313 166
+52902 2 318 166
+52904 4 319 166
+52908 2 334 166
+5290a 2 336 166
+5290c 2 335 166
+5290e 2 336 166
+52910 2 337 166
+52912 6 336 166
+52918 4 328 166
+5291c 4 329 166
+52920 2 341 166
+52922 4 342 166
+52926 4 338 166
+5292a 6 320 166
+FUNC 52930 2b4 0 __cxxabiv1::scanEHTable(__cxxabiv1::ScanResultInternal&, int, bool, _Unwind_Control_Block*, _Unwind_Context*)
+52930 6 62 166
+52936 2 62 166
+52938 2 64 166
+5293a 2 65 166
+5293c 2 64 166
+5293e 2 62 166
+52940 2 69 166
+52942 4 64 166
+52946 4 72 166
+5294a 2 65 166
+5294c 2 62 166
+5294e 2 66 166
+52950 2 67 166
+52952 2 62 166
+52954 2 68 166
+52956 2 69 166
+52958 2 62 166
+5295a 6 72 166
+52960 8 73 166
+52968 8 89 166
+52970 6 90 166
+52976 4 150 156
+5297a 2 95 166
+5297c c 150 156
+52988 2 159 156
+5298a 2 97 166
+5298c 2 100 166
+5298e 4 159 156
+52992 4 97 166
+52996 2 100 166
+52998 4 96 166
+5299c 8 100 166
+529a4 2 97 166
+529a6 4 98 166
+529aa 6 101 166
+529b0 2 105 166
+529b2 8 103 166
+529ba 4 105 166
+529be 2 103 166
+529c0 2 106 166
+529c2 4 105 166
+529c6 4 106 166
+529ca 6 107 166
+529d0 6 108 166
+529d6 4 110 166
+529da 2 111 166
+529dc 2 115 166
+529de 2 110 166
+529e0 4 111 166
+529e4 2 112 166
+529e6 4 115 166
+529ea 2 113 166
+529ec 4 118 166
+529f0 8 119 166
+529f8 2 120 166
+529fa 2 119 166
+529fc 6 120 166
+52a02 2 121 166
+52a04 2 120 166
+52a06 8 121 166
+52a0e 6 122 166
+52a14 6 123 166
+52a1a 6 279 166
+52a20 8 124 166
+52a28 8 130 166
+52a30 6 131 166
+52a36 2 251 166
+52a38 4 144 166
+52a3c 2 58 166
+52a3e 2 144 166
+52a40 4 251 166
+52a44 2 144 166
+52a46 4 58 166
+52a4a 4 144 166
+52a4e 2 251 166
+52a50 2 58 166
+52a52 8 144 166
+52a5a 10 153 166
+52a6a 4 154 166
+52a6e 4 172 166
+52a72 4 176 166
+52a76 6 174 166
+52a7c 18 177 166
+52a94 12 183 166
+52aa6 6 184 166
+52aac e 188 166
+52aba 8 189 166
+52ac2 6 243 166
+52ac8 8 262 166
+52ad0 4 263 166
+52ad4 4 264 166
+52ad8 6 271 166
+52ade 6 147 166
+52ae4 4 148 166
+52ae8 4 147 166
+52aec 6 148 166
+52af2 6 204 166
+52af8 8 251 166
+52b00 4 255 166
+52b04 4 252 166
+52b08 2 254 166
+52b0a 2 255 166
+52b0c 2 256 166
+52b0e 2 253 166
+52b10 2 254 166
+52b12 2 256 166
+52b14 6 280 166
+52b1a 6 77 166
+52b20 a 78 166
+52b2a 4 79 166
+52b2e 4 80 166
+52b32 4 266 166
+52b36 2 267 166
+52b38 8 123 166
+52b40 4 275 166
+52b44 6 99 166
+52b4a a 132 166
+52b54 2 135 166
+52b56 8 134 166
+52b5e 4 136 166
+52b62 2 135 166
+52b64 2 137 166
+52b66 8 235 166
+52b6e 6 206 166
+52b74 4 210 166
+52b78 4 209 166
+52b7c 18 210 166
+52b94 16 216 166
+52baa 8 219 166
+52bb2 2 225 166
+52bb4 4 221 166
+52bb8 2 223 166
+52bba 2 222 166
+52bbc 4 224 166
+52bc0 2 223 166
+52bc2 2 225 166
+52bc4 4 226 166
+52bc8 2 194 166
+52bca 4 191 166
+52bce 2 193 166
+52bd0 2 194 166
+52bd2 2 195 166
+52bd4 2 192 166
+52bd6 2 193 166
+52bd8 2 195 166
+52bda a 196 166
+FUNC 52be4 5c 0 __cxxabiv1::setRegisters(_Unwind_Control_Block*, _Unwind_Context*, __cxxabiv1::ScanResultInternal const&)
+52be4 6 350 166
+52bea 2 155 156
+52bec 6 350 166
+52bf2 6 155 156
+52bf8 4 350 166
+52bfc 6 155 156
+52c02 2 352 166
+52c04 a 155 156
+52c0e 2 352 166
+52c10 4 155 156
+52c14 6 150 156
+52c1a 2 353 166
+52c1c 8 150 156
+52c24 2 163 156
+52c26 4 155 156
+52c2a 4 163 156
+52c2e 2 155 156
+52c30 2 164 156
+52c32 4 155 156
+52c36 2 150 156
+52c38 4 155 156
+52c3c 4 354 166
+FUNC 52c40 10 0 __cxxabiv1::continueUnwinding(_Unwind_Control_Block*, _Unwind_Context*)
+52c40 2 357 166
+52c42 4 358 166
+52c46 8 359 166
+52c4e 2 362 166
+FUNC 52c50 2c 0 __cxxabiv1::saveDataToBarrierCache(_Unwind_Control_Block*, _Unwind_Context*, __cxxabiv1::ScanResultInternal const&)
+52c50 4 366 166
+52c54 4 150 156
+52c58 2 366 166
+52c5a 2 366 166
+52c5c c 150 156
+52c68 2 368 166
+52c6a 2 369 166
+52c6c 2 370 166
+52c6e 2 368 166
+52c70 2 367 166
+52c72 2 369 166
+52c74 2 370 166
+52c76 2 367 166
+52c78 4 371 166
+FUNC 52c7c 16 0 __cxxabiv1::loadDataFromBarrierCache(_Unwind_Control_Block*, __cxxabiv1::ScanResultInternal&)
+52c7c 2 376 166
+52c7e 2 377 166
+52c80 2 374 166
+52c82 2 375 166
+52c84 4 376 166
+52c88 2 377 166
+52c8a 2 375 166
+52c8c 2 376 166
+52c8e 4 378 166
+FUNC 52c94 4 0 __cxxabiv1::prepareBeginCleanup(_Unwind_Control_Block*)
+52c94 4 381 166
+FUNC 52c98 6e 0 __cxxabiv1::saveUnexpectedDataToBarrierCache(_Unwind_Control_Block*, _Unwind_Context*, __cxxabiv1::ScanResultInternal const&)
+52c98 6 386 166
+52c9e 4 386 166
+52ca2 4 387 166
+52ca6 2 389 166
+52ca8 2 391 166
+52caa 4 389 166
+52cae 2 391 166
+52cb0 2 389 166
+52cb2 8 391 166
+52cba 6 393 166
+52cc0 6 395 166
+52cc6 2 396 166
+52cc8 2 390 166
+52cca 4 396 166
+52cce 2 397 166
+52cd0 2 396 166
+52cd2 2 397 166
+52cd4 6 398 166
+52cda 4 399 166
+52cde 4 402 166
+52ce2 4 404 166
+52ce6 4 402 166
+52cea 2 404 166
+52cec 2 403 166
+52cee 6 404 166
+52cf4 2 405 166
+52cf6 4 404 166
+52cfa 2 408 166
+52cfc 2 409 166
+52cfe 2 410 166
+52d00 2 409 166
+52d02 4 411 166
+FUNC 52d08 c 0 std::bad_alloc::what() const
+52d08 4 51 167
+52d0c 8 52 167
+FUNC 52d14 18 0 std::bad_alloc::~bad_alloc
+52d14 4 47 167
+52d18 8 47 167
+52d20 c 48 167
+FUNC 52d2c 12 0 std::bad_alloc::~bad_alloc
+52d2c 2 47 167
+52d2e 2 47 167
+52d30 4 48 167
+52d34 6 48 167
+52d3a 4 48 167
+FUNC 52d40 18 0 std::bad_alloc::bad_alloc
+52d40 2 44 167
+52d42 8 44 167
+52d4a 2 45 167
+52d4c 6 44 167
+52d52 6 45 167
+FUNC 52d58 2c 0 std::get_new_handler()
+52d58 24 90 167
+52d7c 8 91 167
+FUNC 52d84 48 0 operator new(unsigned int)
+52d84 2 96 167
+52d86 4 96 167
+52d8a 4 103 167
+52d8e 2 104 167
+52d90 2 107 167
+52d92 6 99 167
+52d98 4 100 167
+52d9c 2 110 167
+52d9e 1a 105 167
+52db8 8 107 167
+52dc0 c 96 167
+FUNC 52dcc 14 0 operator new[](unsigned int)
+52dcc 2 123 167
+52dce 4 124 167
+52dd2 2 125 167
+52dd4 8 124 167
+52ddc 4 123 167
+FUNC 52de0 168 0 __cxxabiv1::__gxx_personality_v0
+52de0 e 56 169
+52dee c 56 169
+52dfa 2 56 169
+52dfc 6 155 156
+52e02 2 56 169
+52e04 8 155 156
+52e0c 4 57 169
+52e10 18 61 169
+52e28 4 67 169
+52e2c 4 88 169
+52e30 4 89 169
+52e34 4 90 169
+52e38 4 97 169
+52e3c 4 98 169
+52e40 4 93 169
+52e44 4 94 169
+52e48 2 95 169
+52e4a 2 98 169
+52e4c 2 96 169
+52e4e 2 98 169
+52e50 6 93 169
+52e56 2 94 169
+52e58 2 97 169
+52e5a 4 98 169
+52e5e a 106 169
+52e68 a 109 169
+52e72 4 110 169
+52e76 4 56 169
+52e7a 2 56 169
+52e7c 6 126 169
+52e82 e 68 169
+52e90 6 69 169
+52e96 a 121 169
+52ea0 4 125 169
+52ea4 6 150 156
+52eaa 2 56 169
+52eac a 150 156
+52eb6 c 56 169
+52ec2 2 80 169
+52ec4 4 71 169
+52ec8 2 73 169
+52eca 6 78 169
+52ed0 4 73 169
+52ed4 6 74 169
+52eda 6 75 169
+52ee0 6 76 169
+52ee6 6 77 169
+52eec 4 78 169
+52ef0 4 80 169
+52ef4 e 114 169
+52f02 6 115 169
+52f08 a 117 169
+52f12 6 118 169
+52f18 4 119 169
+52f1c 12 100 169
+52f2e 6 102 169
+52f34 14 103 169
+FUNC 52f48 18 0 __cxxabiv1::__si_class_type_info::~__si_class_type_info
+52f48 4 34 170
+52f4c 8 34 170
+52f54 c 36 170
+FUNC 52f60 12 0 __cxxabiv1::__si_class_type_info::~__si_class_type_info
+52f60 2 34 170
+52f62 2 34 170
+52f64 4 36 170
+52f68 6 36 170
+52f6e 4 36 170
+FUNC 52f74 24 0 __cxxabiv1::__si_class_type_info::walk_to(__cxxabiv1::__class_type_info const*, void*&, __cxxabiv1::__UpcastInfo&) const
+52f74 2 40 170
+52f76 8 40 170
+52f7e 6 41 170
+52f84 2 42 170
+52f86 2 46 170
+52f88 10 45 170
+FUNC 52f98 12 0 __gabixx::__default_terminate()
+52f98 2 68 171
+52f9a c 72 171
+52fa6 4 75 171
+FUNC 52fac 24 0 __gabixx::__terminate(void (*)())
+52fac 2 78 171
+52fae 2 79 171
+52fb0 2 84 171
+52fb2 4 91 171
+52fb6 4 80 171
+52fba 4 84 171
+52fbe 8 85 171
+52fc6 a 91 171
+FUNC 52fd0 2c 0 std::get_terminate()
+52fd0 24 99 171
+52ff4 8 100 171
+FUNC 52ffc a 0 std::terminate()
+52ffc 2 109 171
+52ffe 8 110 171
+FUNC 53008 6 0 __gabixx::__default_unexpected()
+53008 2 46 171
+5300a 4 47 171
+FUNC 53010 2c 0 std::get_unexpected()
+53010 24 114 171
+53034 8 115 171
+FUNC 5303c e 0 std::unexpected()
+5303c 2 124 171
+5303e 4 125 171
+53042 2 126 171
+53044 2 127 171
+53046 4 130 171
+FUNC 5304c 10 0 std::type_info::~type_info
+5304c 8 42 172
+53054 8 44 172
+FUNC 5305c c 0 std::bad_cast::what() const
+5305c 4 85 172
+53060 8 86 172
+FUNC 53068 18 0 std::type_info::~type_info
+53068 4 42 172
+5306c 8 42 172
+53074 4 44 172
+53078 8 44 172
+FUNC 53080 18 0 std::bad_cast::~bad_cast
+53080 4 81 172
+53084 8 81 172
+5308c c 82 172
+FUNC 53098 12 0 std::bad_cast::~bad_cast
+53098 2 81 172
+5309a 2 81 172
+5309c 4 82 172
+530a0 6 82 172
+530a6 4 82 172
+FUNC 530ac 14 0 std::type_info::operator==(std::type_info const&) const
+530ac 2 49 172
+530ae 8 53 172
+530b6 8 53 172
+530be 2 57 172
+FUNC 530c0 e 0 std::type_info::operator!=(std::type_info const&) const
+530c0 2 61 172
+530c2 8 62 172
+530ca 2 62 172
+530cc 2 63 172
+FUNC 530d0 18 0 std::bad_cast::bad_cast
+530d0 2 78 172
+530d2 8 78 172
+530da 2 79 172
+530dc 6 78 172
+530e2 6 79 172
+FUNC 530e8 6 0 std::__Named_exception::what() const
+530e8 4 95 233
+530ec 2 95 233
+FUNC 530f0 2c 0 std::__Named_exception::~__Named_exception
+530f0 4 89 233
+530f4 2 89 233
+530f6 6 90 233
+530fc 6 89 233
+53102 2 90 233
+53104 2 89 233
+53106 2 90 233
+53108 4 91 233
+5310c 10 92 233
+FUNC 5311c 1c 0 std::logic_error::~logic_error
+5311c 4 76 181
+53120 18 76 181
+FUNC 53138 1c 0 std::out_of_range::~out_of_range
+53138 4 81 181
+5313c 18 81 181
+FUNC 53154 12 0 std::out_of_range::~out_of_range
+53154 2 81 181
+53156 6 81 181
+5315c 6 81 181
+53162 4 81 181
+FUNC 53168 1c 0 std::length_error::~length_error
+53168 4 80 181
+5316c 18 80 181
+FUNC 53184 12 0 std::length_error::~length_error
+53184 2 80 181
+53186 6 80 181
+5318c 6 80 181
+53192 4 80 181
+FUNC 53198 12 0 std::logic_error::~logic_error
+53198 2 76 181
+5319a 6 76 181
+531a0 6 76 181
+531a6 4 76 181
+FUNC 531ac 12 0 std::__Named_exception::~__Named_exception
+531ac 2 89 233
+531ae 2 89 233
+531b0 4 92 233
+531b4 6 92 233
+531ba 4 92 233
+FUNC 531c0 74 0 std::__Named_exception::__Named_exception
+531c0 4 19 233
+531c4 8 19 233
+531cc 4 20 233
+531d0 6 19 233
+531d6 2 20 233
+531d8 4 19 233
+531dc 8 20 233
+531e4 6 21 233
+531ea 8 32 233
+531f2 8 35 233
+531fa 6 36 233
+53200 2 40 233
+53202 2 36 233
+53204 4 40 233
+53208 a 22 233
+53212 2 23 233
+53214 a 28 233
+5321e 16 25 233
+FUNC 53234 24 0 std::priv::_String_base<char, std::allocator<char> >::~_String_base
+53234 2 156 238
+53236 2 156 238
+53238 2 64 238
+5323a 4 96 238
+5323e 2 96 238
+53240 4 97 238
+53244 4 161 201
+53248 4 161 201
+5324c 4 156 238
+53250 4 135 222
+53254 4 156 238
+FUNC 53258 40 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+53258 2 639 236
+5325a 2 639 236
+5325c 2 112 238
+5325e 2 229 246
+53260 2 481 201
+53262 2 639 236
+53264 4 229 246
+53268 2 643 236
+5326a 2 379 237
+5326c 2 378 237
+5326e 6 379 237
+53274 2 107 243
+53276 2 66 238
+53278 2 107 243
+5327a 8 106 243
+53282 2 107 243
+53284 2 380 237
+53286 4 101 205
+5328a 4 644 236
+5328e a 643 236
+FUNC 53298 60 0 std::__stl_throw_out_of_range(char const*)
+53298 6 70 231
+5329e 12 70 231
+532b0 a 34 232
+532ba 2 121 237
+532bc 8 74 232
+532c4 6 121 237
+532ca 10 70 231
+532da a 70 231
+532e4 14 121 237
+FUNC 532f8 60 0 std::__stl_throw_length_error(char const*)
+532f8 6 73 231
+532fe 12 73 231
+53310 a 34 232
+5331a 2 121 237
+5331c 8 66 232
+53324 6 121 237
+5332a 10 73 231
+5333a a 73 231
+53344 14 121 237
+FUNC 53358 10 0 std::_Filebuf_base::_Filebuf_base
+53358 e 128 180
+53366 2 129 180
+FUNC 53368 18 0 std::_Filebuf_base::_S_initialize()
+53368 2 132 180
+5336a e 144 180
+53378 8 146 180
+FUNC 53380 32 0 std::_Filebuf_base::_M_file_size()
+53380 4 151 180
+53384 a 114 180
+5338e c 114 180
+5339a 4 153 180
+5339e 4 111 180
+533a2 10 115 180
+FUNC 533b4 e0 0 std::_Filebuf_base::_M_open(char const*, int, long)
+533b4 4 157 180
+533b8 2 160 180
+533ba 2 157 180
+533bc 4 157 180
+533c0 2 160 180
+533c2 46 166 180
+53408 2 196 180
+5340a 4 212 180
+5340e 4 183 180
+53412 6 193 180
+53418 2 195 180
+5341a 2 193 180
+5341c 2 195 180
+5341e 2 198 180
+53420 2 200 180
+53422 2 198 180
+53424 2 200 180
+53426 2 204 180
+53428 2 205 180
+5342a 2 206 180
+5342c 2 208 180
+5342e 8 211 180
+53436 6 173 180
+5343c 2 176 180
+5343e 2 177 180
+53440 2 178 180
+53442 4 187 180
+53446 2 188 180
+53448 6 169 180
+5344e 2 180 180
+53450 2 181 180
+53452 c 106 180
+5345e 6 106 180
+53464 a 106 180
+5346e 6 209 180
+53474 12 200 180
+53486 2 201 180
+53488 2 204 180
+5348a 2 201 180
+5348c 2 206 180
+5348e 2 205 180
+53490 4 206 180
+FUNC 53494 8 0 std::_Filebuf_base::_M_open(char const*, int)
+53494 4 221 180
+53498 4 221 180
+FUNC 5349c 78 0 std::_Filebuf_base::_M_open(int, int)
+5349c 4 228 180
+534a0 2 229 180
+534a2 2 228 180
+534a4 2 228 180
+534a6 c 229 180
+534b2 2 230 180
+534b4 4 244 180
+534b8 8 232 180
+534c0 2 234 180
+534c2 4 235 180
+534c6 2 234 180
+534c8 4 82 180
+534cc 4 234 180
+534d0 2 94 180
+534d2 2 106 180
+534d4 6 95 180
+534da 2 106 180
+534dc 4 238 180
+534e0 2 240 180
+534e2 2 241 180
+534e4 2 240 180
+534e6 2 241 180
+534e8 6 106 180
+534ee 6 106 180
+534f4 a 106 180
+534fe 2 242 180
+53500 4 243 180
+53504 10 234 180
+FUNC 53514 28 0 std::_Filebuf_base::_M_close()
+53514 2 247 180
+53516 2 247 180
+53518 4 248 180
+5351c 2 251 180
+5351e 2 251 180
+53520 2 251 180
+53522 6 253 180
+53528 2 254 180
+5352a 2 256 180
+5352c 6 251 180
+53532 a 251 180
+FUNC 5353c 6 0 std::_Filebuf_base::_M_read(char*, int)
+5353c 2 262 180
+5353e 4 262 180
+FUNC 53544 34 0 std::_Filebuf_base::_M_write(char*, int)
+53544 2 268 180
+53546 8 268 180
+5354e c 276 180
+5355a a 270 180
+53564 2 272 180
+53566 2 278 180
+53568 6 276 180
+5356e 4 277 180
+53572 2 272 180
+53574 2 273 180
+53576 2 283 180
+FUNC 53578 42 0 std::_Filebuf_base::_M_seek(long, int)
+53578 2 290 180
+5357a 6 287 180
+53580 a 290 180
+5358a 8 309 180
+53592 2 294 180
+53594 4 292 180
+53598 2 308 180
+5359a 6 309 180
+535a0 4 308 180
+535a4 8 300 180
+535ac 2 302 180
+535ae 8 300 180
+535b6 4 297 180
+FUNC 535bc 8 0 std::_Filebuf_base::_M_unmap(void*, long)
+535bc 4 340 180
+535c0 4 340 180
+FUNC 535c4 48 0 std::_Filebuf_base::_M_mmap(long, long)
+535c4 4 317 180
+535c8 2 320 180
+535ca 2 317 180
+535cc 4 320 180
+535d0 4 317 180
+535d4 c 320 180
+535e0 2 321 180
+535e2 2 320 180
+535e4 2 321 180
+535e6 e 322 180
+535f4 6 334 180
+535fa 4 327 180
+535fe 6 323 180
+53604 2 324 180
+53606 6 323 180
+FUNC 5360c 128 0 std::basic_filebuf<char, std::char_traits<char> >::_M_underflow_aux()
+5360c 2 498 207
+5360e 6 495 207
+53614 2 502 207
+53616 2 495 207
+53618 2 502 207
+5361a 2 498 207
+5361c 2 504 207
+5361e 8 502 207
+53626 2 509 207
+53628 2 502 207
+5362a 8 224 200
+53632 2 504 207
+53634 4 537 207
+53638 8 213 203
+53640 c 515 207
+5364c 2 516 207
+5364e 2 515 207
+53650 2 516 207
+53652 2 522 207
+53654 2 525 207
+53656 4 522 207
+5365a 4 525 207
+5365e 2 537 207
+53660 18 213 203
+53678 4 547 207
+5367c 4 549 207
+53680 8 549 207
+53688 8 549 207
+53690 8 549 207
+53698 4 549 207
+5369c 2 555 207
+5369e 2 93 235
+536a0 2 555 207
+536a2 2 94 235
+536a4 2 95 235
+536a6 2 223 246
+536a8 6 568 207
+536ae 10 549 207
+536be 4 119 207
+536c2 8 120 207
+536ca 4 121 207
+536ce 2 122 207
+536d0 2 124 207
+536d2 2 488 207
+536d4 4 124 207
+536d8 4 553 207
+536dc 4 487 207
+536e0 4 488 207
+536e4 2 93 235
+536e6 2 94 235
+536e8 2 95 235
+536ea 2 553 207
+536ec 6 549 207
+536f2 6 549 207
+536f8 6 563 207
+536fe 4 565 207
+53702 2 93 235
+53704 2 94 235
+53706 2 95 235
+53708 2 565 207
+5370a c 224 200
+53716 2 93 235
+53718 4 527 207
+5371c 2 93 235
+5371e 2 94 235
+53720 2 95 235
+53722 2 527 207
+53724 2 328 208
+53726 2 327 208
+53728 2 93 235
+5372a 2 327 208
+5372c 2 94 235
+5372e 2 95 235
+53730 2 223 246
+53732 2 548 207
+FUNC 53734 5c 0 std::basic_filebuf<char, std::char_traits<char> >::_M_switch_to_input_mode()
+53734 2 429 207
+53736 2 429 207
+53738 6 430 207
+5373e 8 430 207
+53746 2 430 207
+53748 2 444 207
+5374a 2 430 207
+5374c 4 432 207
+53750 2 435 207
+53752 2 440 207
+53754 2 438 207
+53756 2 441 207
+53758 4 440 207
+5375c 2 435 207
+5375e 2 436 207
+53760 2 438 207
+53762 2 441 207
+53764 4 445 207
+53768 6 128 208
+5376e c 680 207
+5377a 2 681 207
+5377c 4 680 207
+53780 6 681 207
+53786 a 432 207
+FUNC 53790 ec 0 std::_Underflow<char, std::char_traits<char> >::_M_doit(std::basic_filebuf<char, std::char_traits<char> >*)
+53790 4 38 182
+53794 2 38 182
+53796 6 42 182
+5379c 6 46 182
+537a2 2 93 235
+537a4 4 220 208
+537a8 2 93 235
+537aa 2 221 208
+537ac 2 48 182
+537ae 2 94 235
+537b0 2 95 235
+537b2 4 221 208
+537b6 2 48 182
+537b8 2 223 246
+537ba 4 50 182
+537be 8 43 182
+537c6 8 57 182
+537ce 8 57 182
+537d6 8 61 182
+537de c 62 182
+537ea c 66 182
+537f6 6 67 182
+537fc 2 68 182
+537fe 2 67 182
+53800 12 68 182
+53812 6 68 182
+53818 2 69 182
+5381a 6 128 208
+53820 a 69 182
+5382a 2 77 182
+5382c 6 72 182
+53832 4 74 182
+53836 2 77 182
+53838 8 75 182
+53840 8 77 182
+53848 2 70 182
+5384a 4 80 182
+5384e 2 93 235
+53850 2 80 182
+53852 2 94 235
+53854 2 95 235
+53856 2 223 246
+53858 4 81 182
+5385c 4 87 182
+53860 2 88 182
+53862 2 92 182
+53864 4 93 182
+53868 4 92 182
+5386c 4 44 182
+53870 4 93 182
+53874 8 84 182
+FUNC 5387c 1c 0 std::ios_base::failure::~failure
+5387c 4 41 183
+53880 18 41 183
+FUNC 53898 12 0 std::ios_base::failure::~failure
+53898 2 41 183
+5389a 6 41 183
+538a0 6 41 183
+538a6 4 41 183
+FUNC 538ac 1c 0 std::ios_base::failure::failure
+538ac 2 37 183
+538ae 2 37 183
+538b0 6 38 183
+538b6 2 39 183
+538b8 8 38 183
+538c0 8 39 183
+FUNC 538c8 28 0 std::ios_base::_M_invoke_callbacks(std::ios_base::event)
+538c8 2 199 183
+538ca 2 199 183
+538cc 2 200 183
+538ce 2 199 183
+538d0 2 200 183
+538d2 2 199 183
+538d4 6 200 183
+538da 2 201 183
+538dc 4 203 183
+538e0 2 201 183
+538e2 2 203 183
+538e4 2 200 183
+538e6 4 203 183
+538ea 6 200 183
+FUNC 538f0 44 0 std::ios_base::~ios_base
+538f0 2 299 183
+538f2 2 300 183
+538f4 2 299 183
+538f6 a 299 183
+53900 4 300 183
+53904 6 301 183
+5390a 6 302 183
+53910 6 303 183
+53916 4 299 183
+5391a 8 304 183
+53922 4 299 183
+53926 e 304 183
+FUNC 53934 12 0 std::ios_base::~ios_base
+53934 2 299 183
+53936 2 299 183
+53938 4 304 183
+5393c 6 304 183
+53942 4 304 183
+FUNC 53948 60 0 std::ios_base::imbue(std::locale const&)
+53948 2 124 183
+5394a 4 125 183
+5394e 6 124 183
+53954 4 125 183
+53958 2 124 183
+5395a 6 125 183
+53960 8 126 183
+53968 8 127 183
+53970 8 128 183
+53978 e 129 183
+53986 6 135 183
+5398c 8 132 183
+53994 a 133 183
+5399e a 129 183
+FUNC 539a8 3c 0 std::ios_base::ios_base
+539a8 2 287 183
+539aa 4 287 183
+539ae 24 295 183
+539d2 2 296 183
+539d4 a 295 183
+539de 6 296 183
+FUNC 539e4 78 0 std::ios_base::_M_throw_failure()
+539e4 2 209 183
+539e6 4 227 183
+539ea 2 209 183
+539ec 4 227 183
+539f0 2 379 237
+539f2 4 112 238
+539f6 2 481 201
+539f8 2 227 183
+539fa 6 379 237
+53a00 c 106 243
+53a0c 2 227 183
+53a0e 4 107 243
+53a12 2 380 237
+53a14 4 101 205
+53a18 6 227 183
+53a1e 8 121 237
+53a26 10 227 183
+53a36 6 643 236
+53a3c a 227 183
+53a46 16 121 237
+FUNC 53a5c 2 0 _Locale_final
+53a5c 2 80 176
+FUNC 53a5c 2 0 std::_Locale_impl::_S_uninitialize()
+53a5c 2 113 186
+FUNC 53a5c 2 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::imbue(std::locale const&)
+FUNC 53a5c 2 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::setbuf(wchar_t*, int)
+53a5c 2 180 234
+FUNC 53a5c 2 0 std::messages<char>::do_close(int) const
+53a5c 2 82 219
+FUNC 53a5c 2 0 std::messages<wchar_t>::do_close(int) const
+FUNC 53a60 c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::seekoff(long, int, int)
+53a60 a 89 246
+53a6a 2 195 234
+FUNC 53a6c 16 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::seekpos(std::fpos<mbstate_t>, int)
+53a6c 2 188 234
+53a6e 6 188 234
+53a74 a 89 246
+53a7e 4 189 234
+FUNC 53a84 6 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::overflow(unsigned int)
+53a84 6 171 234
+FUNC 53a84 6 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::pbackfail(unsigned int)
+FUNC 53a84 6 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::underflow()
+FUNC 53a84 6 0 std::messages<char>::do_open(std::string const&, std::locale const&) const
+53a84 6 110 219
+FUNC 53a84 6 0 std::messages<wchar_t>::do_open(std::string const&, std::locale const&) const
+FUNC 53a84 6 0 std::priv::stdio_ostreambuf::showmanyc()
+53a84 6 201 195
+FUNC 53a8c 5c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::_M_xsputnc(wchar_t, int)
+53a8c 4 112 234
+53a90 4 117 234
+53a94 6 112 234
+53a9a 4 117 234
+53a9e 6 120 234
+53aa4 2 122 234
+53aa6 6 261 246
+53aac 2 123 234
+53aae 2 117 234
+53ab0 6 123 234
+53ab6 2 117 234
+53ab8 2 118 234
+53aba 2 120 234
+53abc 2 118 234
+53abe 2 261 246
+53ac0 4 120 234
+53ac4 2 118 234
+53ac6 2 261 246
+53ac8 4 120 234
+53acc 2 118 234
+53ace e 126 234
+53adc 2 128 234
+53ade 4 117 234
+53ae2 6 133 234
+FUNC 53ae8 62 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::xsputn(wchar_t const*, int)
+53ae8 4 84 234
+53aec 4 89 234
+53af0 6 84 234
+53af6 4 89 234
+53afa 6 92 234
+53b00 2 94 234
+53b02 2 253 246
+53b04 2 95 234
+53b06 4 253 246
+53b0a 2 96 234
+53b0c 2 89 234
+53b0e 2 95 234
+53b10 4 96 234
+53b14 2 89 234
+53b16 2 90 234
+53b18 4 92 234
+53b1c 2 90 234
+53b1e 2 253 246
+53b20 4 92 234
+53b24 2 90 234
+53b26 2 253 246
+53b28 4 92 234
+53b2c 2 90 234
+53b2e 6 99 234
+53b34 2 102 234
+53b36 8 99 234
+53b3e 2 101 234
+53b40 4 89 234
+53b44 6 108 234
+FUNC 53b4c 64 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::xsgetn(wchar_t*, int)
+53b4c 4 54 234
+53b50 4 58 234
+53b54 6 54 234
+53b5a 4 58 234
+53b5e 8 229 235
+53b66 4 69 234
+53b6a 2 71 234
+53b6c 4 70 234
+53b70 4 58 234
+53b74 2 59 234
+53b76 4 61 234
+53b7a 2 59 234
+53b7c 2 253 246
+53b7e 4 61 234
+53b82 2 59 234
+53b84 2 253 246
+53b86 4 61 234
+53b8a 2 59 234
+53b8c 6 61 234
+53b92 2 63 234
+53b94 2 253 246
+53b96 4 64 234
+53b9a 4 253 246
+53b9e 2 65 234
+53ba0 2 58 234
+53ba2 2 64 234
+53ba4 4 65 234
+53ba8 2 58 234
+53baa 6 80 234
+FUNC 53bb0 18 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::~basic_ios
+53bb0 4 59 211
+53bb4 14 59 211
+FUNC 53bc8 1c 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::~basic_streambuf
+53bc8 2 41 234
+53bca 2 40 234
+53bcc 2 41 234
+53bce 2 40 234
+53bd0 14 41 234
+FUNC 53be4 12 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::~basic_streambuf
+53be4 2 40 234
+53be6 2 40 234
+53be8 4 41 234
+53bec 6 41 234
+53bf2 4 41 234
+FUNC 53bf8 1e 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::sync()
+53bf8 2 402 207
+53bfa 6 403 207
+53c00 2 406 207
+53c02 2 407 207
+53c04 c 405 207
+53c10 6 405 207
+FUNC 53c18 6a 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_unshift()
+53c18 c 593 207
+53c24 4 322 208
+53c28 2 593 207
+53c2a 2 598 207
+53c2c 2 296 203
+53c2e 2 597 207
+53c30 a 296 203
+53c3a 2 597 207
+53c3c 8 296 203
+53c44 2 600 207
+53c46 2 322 208
+53c48 2 600 207
+53c4a 8 600 207
+53c52 2 605 207
+53c54 14 600 207
+53c68 4 603 207
+53c6c 4 322 208
+53c70 2 605 207
+53c72 4 596 207
+53c76 2 602 207
+53c78 6 611 207
+53c7e 4 604 207
+FUNC 53c84 58 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::showmanyc()
+53c84 2 132 207
+53c86 6 134 207
+53c8c 4 134 207
+53c90 6 135 207
+53c96 6 136 207
+53c9c 6 138 207
+53ca2 2 144 207
+53ca4 2 145 207
+53ca6 a 137 207
+53cb0 e 139 207
+53cbe 6 140 207
+53cc4 10 141 207
+53cd4 4 141 207
+53cd8 4 141 207
+FUNC 53cdc 18 0 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::uflow()
+53cdc 2 165 234
+53cde 2 162 234
+53ce0 2 162 234
+53ce2 8 165 234
+53cea 6 165 234
+53cf0 2 350 184
+53cf2 2 166 234
+FUNC 53cf4 8a 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::pbackfail(unsigned int)
+53cf4 2 157 207
+53cf6 2 157 207
+53cf8 6 161 207
+53cfe 4 162 207
+53d02 6 199 207
+53d08 2 88 235
+53d0a 2 87 235
+53d0c 4 166 207
+53d10 6 166 207
+53d16 8 166 207
+53d1e 4 166 207
+53d22 4 178 207
+53d26 4 177 207
+53d2a 2 178 207
+53d2c 8 180 207
+53d34 2 181 207
+53d36 2 95 235
+53d38 2 181 207
+53d3a 2 93 235
+53d3c 2 94 235
+53d3e 4 197 207
+53d42 10 91 235
+53d52 2 188 207
+53d54 4 189 207
+53d58 2 187 207
+53d5a 2 190 207
+53d5c 2 186 207
+53d5e 2 188 207
+53d60 2 93 235
+53d62 2 94 235
+53d64 2 95 235
+53d66 4 190 207
+53d6a 4 197 207
+53d6e 4 91 235
+53d72 4 197 207
+53d76 8 175 207
+FUNC 53d8c 2c 0 std::basic_istream<wchar_t, std::char_traits<wchar_t> >::~basic_istream
+53d8c 2 90 214
+53d8e 2 59 211
+53d90 2 90 214
+53d92 2 90 214
+53d94 2 90 214
+53d96 2 59 211
+53d98 2 90 214
+53d9a 2 59 211
+53d9c 2 90 214
+53d9e 8 59 211
+53da6 6 90 214
+53dac c 90 214
+FUNC 53dc4 28 0 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::~basic_ostream
+53dc4 2 44 228
+53dc6 2 59 211
+53dc8 2 43 228
+53dca 2 44 228
+53dcc 2 43 228
+53dce 2 59 211
+53dd0 2 44 228
+53dd2 2 59 211
+53dd4 2 44 228
+53dd6 8 59 211
+53dde e 44 228
+FUNC 53df8 12 0 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::~basic_ostream
+53df8 2 43 228
+53dfa 2 43 228
+53dfc 4 44 228
+53e00 6 44 228
+53e06 4 44 228
+FUNC 53e0c 20 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::~basic_ios
+53e0c 4 59 211
+53e10 c 59 211
+53e1c 6 59 211
+53e22 a 59 211
+FUNC 53e38 28 0 std::basic_istream<wchar_t, std::char_traits<wchar_t> >::~basic_istream
+53e38 2 90 214
+53e3a 2 59 211
+53e3c 2 90 214
+53e3e 2 90 214
+53e40 2 90 214
+53e42 2 59 211
+53e44 2 90 214
+53e46 2 59 211
+53e48 2 90 214
+53e4a 8 59 211
+53e52 e 90 214
+FUNC 53e60 1e 0 std::auto_ptr<std::basic_filebuf<wchar_t, std::char_traits<wchar_t> > >::~auto_ptr
+53e60 2 107 202
+53e62 2 107 202
+53e64 2 68 202
+53e66 2 107 202
+53e68 6 107 202
+53e6e 4 107 202
+53e72 8 107 202
+53e7a 4 107 202
+FUNC 53e60 1e 0 std::auto_ptr<std::basic_streambuf<char, std::char_traits<char> > >::~auto_ptr
+FUNC 53e80 1e 0 std::basic_ios<char, std::char_traits<char> >::rdbuf(std::basic_streambuf<char, std::char_traits<char> >*)
+53e80 2 48 210
+53e82 2 49 210
+53e84 2 50 210
+53e86 2 92 211
+53e88 4 188 212
+53e8c 4 53 210
+53e90 2 192 212
+53e92 4 188 212
+53e96 4 192 212
+53e9a 4 193 212
+FUNC 53ea0 1e 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::rdbuf(std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >*)
+53ea0 2 48 210
+53ea2 2 49 210
+53ea4 2 50 210
+53ea6 2 92 211
+53ea8 4 188 212
+53eac 4 53 210
+53eb0 2 192 212
+53eb2 4 188 212
+53eb6 4 192 212
+53eba 4 193 212
+FUNC 53ec0 22c 0 std::ios_base::_S_uninitialize()
+53ec0 4 248 184
+53ec4 2 190 212
+53ec6 2 248 184
+53ec8 2 256 184
+53eca 2 248 184
+53ecc e 256 184
+53eda 2 92 211
+53edc 2 190 212
+53ede 2 172 212
+53ee0 6 92 211
+53ee6 2 188 212
+53ee8 2 190 212
+53eea c 257 184
+53ef6 2 92 211
+53ef8 2 190 212
+53efa 2 172 212
+53efc 6 92 211
+53f02 2 188 212
+53f04 2 190 212
+53f06 c 258 184
+53f12 2 92 211
+53f14 2 190 212
+53f16 2 172 212
+53f18 6 92 211
+53f1e 2 188 212
+53f20 2 190 212
+53f22 c 259 184
+53f2e 2 92 211
+53f30 2 190 212
+53f32 2 172 212
+53f34 6 92 211
+53f3a 2 188 212
+53f3c e 261 184
+53f4a 6 261 184
+53f50 10 262 184
+53f60 6 262 184
+53f66 10 263 184
+53f76 6 263 184
+53f7c 10 264 184
+53f8c 6 264 184
+53f92 22 57 205
+53fb4 2 278 184
+53fb6 2 190 212
+53fb8 a 278 184
+53fc2 2 92 211
+53fc4 2 190 212
+53fc6 2 172 212
+53fc8 4 92 211
+53fcc 2 188 212
+53fce 2 190 212
+53fd0 c 279 184
+53fdc 2 92 211
+53fde 2 190 212
+53fe0 2 172 212
+53fe2 4 92 211
+53fe6 2 188 212
+53fe8 2 190 212
+53fea c 280 184
+53ff6 2 92 211
+53ff8 2 190 212
+53ffa 2 172 212
+53ffc 4 92 211
+54000 2 188 212
+54002 2 190 212
+54004 c 281 184
+54010 2 92 211
+54012 2 190 212
+54014 2 172 212
+54016 4 92 211
+5401a 2 188 212
+5401c e 283 184
+5402a 6 283 184
+54030 10 284 184
+54040 6 284 184
+54046 10 285 184
+54056 6 285 184
+5405c 10 286 184
+5406c 6 286 184
+54072 20 57 205
+54092 4 293 184
+54096 56 92 211
+FUNC 540ec 28 0 std::ios_base::Init::~Init
+540ec 4 151 184
+540f0 4 152 184
+540f4 2 151 184
+540f6 8 152 184
+540fe 6 153 184
+54104 6 154 184
+5410a a 156 184
+FUNC 54114 90 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_setup_codecvt(std::locale const&, bool)
+54114 2 735 207
+54116 6 735 207
+5411c 2 347 218
+5411e 2 735 207
+54120 a 347 218
+5412a 4 736 207
+5412e 8 351 218
+54136 2 313 203
+54138 2 351 218
+5413a 2 737 207
+5413c 6 313 203
+54142 2 741 207
+54144 8 141 200
+5414c 2 740 207
+5414e 6 324 203
+54154 2 743 207
+54156 c 742 207
+54162 4 315 203
+54166 2 741 207
+54168 4 315 203
+5416c 6 743 207
+54172 2 747 207
+54174 2 746 207
+54176 4 747 207
+5417a 8 748 207
+54182 4 749 207
+54186 4 351 218
+5418a 4 754 207
+5418e 4 351 218
+54192 8 736 207
+5419a a 346 218
+FUNC 541a4 12 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::imbue(std::locale const&)
+541a4 6 414 207
+541aa 6 414 207
+541b0 2 415 207
+541b2 4 415 207
+FUNC 541b8 ac 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::basic_filebuf
+541b8 4 34 234
+541bc 2 47 207
+541be 2 34 234
+541c0 2 47 207
+541c2 4 34 234
+541c6 2 47 207
+541c8 14 34 234
+541dc 10 61 207
+541ec 8 61 207
+541f4 2 63 207
+541f6 38 61 207
+5422e e 63 207
+5423c 6 63 207
+54242 6 64 207
+54248 1c 63 207
+FUNC 54264 56 0 std::_Stl_create_wfilebuf
+54264 6 180 184
+5426a 2 181 184
+5426c 2 180 184
+5426e a 181 184
+54278 4 107 174
+5427c 6 194 208
+54282 2 28 202
+54284 4 194 208
+54288 2 68 202
+5428a 6 184 184
+54290 4 188 184
+54294 6 107 202
+5429a 4 187 184
+5429e a 181 184
+542a8 4 107 202
+542ac 4 107 202
+542b0 a 187 184
+FUNC 542bc 90 0 std::basic_filebuf<char, std::char_traits<char> >::_M_setup_codecvt(std::locale const&, bool)
+542bc 2 735 207
+542be 6 735 207
+542c4 2 347 218
+542c6 2 735 207
+542c8 a 347 218
+542d2 4 736 207
+542d6 8 351 218
+542de 2 216 203
+542e0 2 351 218
+542e2 2 737 207
+542e4 6 216 203
+542ea 2 741 207
+542ec 8 141 200
+542f4 2 740 207
+542f6 6 227 203
+542fc 2 743 207
+542fe c 742 207
+5430a 4 218 203
+5430e 2 741 207
+54310 4 218 203
+54314 6 743 207
+5431a 2 747 207
+5431c 2 746 207
+5431e 4 747 207
+54322 8 748 207
+5432a 4 749 207
+5432e 4 351 218
+54332 4 754 207
+54336 4 351 218
+5433a 8 736 207
+54342 a 346 218
+FUNC 5434c ac 0 std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf
+5434c 4 34 234
+54350 2 47 207
+54352 2 34 234
+54354 2 47 207
+54356 4 34 234
+5435a 2 47 207
+5435c 14 34 234
+54370 10 61 207
+54380 8 61 207
+54388 2 63 207
+5438a 38 61 207
+543c2 e 63 207
+543d0 6 63 207
+543d6 6 64 207
+543dc 1c 63 207
+FUNC 543f8 5a 0 std::_Stl_create_filebuf<__sFILE*>
+543f8 2 168 184
+543fa 2 168 184
+543fc 2 169 184
+543fe 2 168 184
+54400 a 169 184
+5440a 4 107 174
+5440e a 194 208
+54418 6 172 184
+5441e 4 176 184
+54422 8 107 202
+5442a 2 175 184
+5442c 4 176 184
+54430 a 169 184
+5443a 4 107 202
+5443e 8 107 202
+54446 c 107 202
+FUNC 54454 40 0 std::basic_ostream<char, std::char_traits<char> >::basic_ostream
+54454 2 37 228
+54456 2 92 210
+54458 4 37 228
+5445c 6 92 210
+54462 2 38 228
+54464 2 92 210
+54466 2 39 228
+54468 2 38 228
+5446a 4 92 210
+5446e 4 38 228
+54472 2 92 210
+54474 2 38 228
+54476 2 92 210
+54478 4 38 228
+5447c 6 39 228
+54482 4 40 228
+54486 e 38 228
+FUNC 54494 90 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::imbue(std::locale const&)
+54494 6 69 210
+5449a 4 69 210
+5449e 4 70 210
+544a2 4 72 210
+544a6 a 46 234
+544b0 a 47 234
+544ba 8 48 234
+544c2 8 73 210
+544ca a 351 218
+544d4 2 76 210
+544d6 6 83 210
+544dc 4 78 210
+544e0 a 79 210
+544ea e 79 210
+544f8 2 117 210
+544fa 2 187 212
+544fc 2 117 210
+544fe 6 187 212
+54504 2 117 210
+54506 a 78 210
+54510 c 82 210
+5451c 8 118 210
+FUNC 54524 5e 0 std::basic_ios<wchar_t, std::char_traits<wchar_t> >::init(std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >*)
+54524 4 97 210
+54528 4 97 210
+5452c 4 99 210
+54530 10 100 210
+54540 c 100 210
+5454c 2 68 211
+5454e 2 121 211
+54550 4 103 210
+54554 2 68 211
+54556 4 103 210
+5455a 4 206 206
+5455e 2 190 212
+54560 2 188 212
+54562 4 112 212
+54566 2 139 212
+54568 2 132 212
+5456a 2 112 212
+5456c 2 132 212
+5456e 4 206 206
+54572 2 84 211
+54574 4 110 210
+54578 a 100 210
+FUNC 54584 40 0 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::basic_ostream
+54584 2 37 228
+54586 2 92 210
+54588 4 37 228
+5458c 6 92 210
+54592 2 38 228
+54594 2 92 210
+54596 2 39 228
+54598 2 38 228
+5459a 2 92 210
+5459c 4 38 228
+545a0 2 92 210
+545a2 2 38 228
+545a4 2 92 210
+545a6 4 38 228
+545aa 6 39 228
+545b0 4 40 228
+545b4 10 38 228
+FUNC 545c4 388 0 std::ios_base::_S_initialize()
+545c4 6 191 184
+545ca 2 191 184
+545cc 6 28 202
+545d2 2 191 184
+545d4 4 28 202
+545d8 c 202 184
+545e4 6 203 184
+545ea 2 75 196
+545ec 2 203 184
+545ee a 75 196
+545f8 2 68 202
+545fa 4 75 196
+545fe 2 61 202
+54600 2 75 196
+54602 2 61 202
+54604 2 62 202
+54606 6 62 202
+5460c 2 207 184
+5460e 2 28 202
+54610 6 207 184
+54616 6 213 184
+5461c 4 87 196
+54620 2 213 184
+54622 6 87 196
+54628 2 68 202
+5462a 2 87 196
+5462c 2 61 202
+5462e 6 87 196
+54634 2 61 202
+54636 2 62 202
+54638 6 62 202
+5463e 2 214 184
+54640 2 28 202
+54642 4 214 184
+54646 4 87 196
+5464a 2 214 184
+5464c 4 87 196
+54650 2 68 202
+54652 6 87 196
+54658 4 61 202
+5465c 2 62 202
+5465e 6 62 202
+54664 2 215 184
+54666 2 28 202
+54668 4 215 184
+5466c 4 87 196
+54670 2 215 184
+54672 4 87 196
+54676 2 68 202
+54678 4 87 196
+5467c 4 61 202
+54680 2 62 202
+54682 6 62 202
+54688 2 92 210
+5468a 2 28 202
+5468c 2 68 202
+5468e a 92 210
+54698 2 87 214
+5469a 2 92 210
+5469c 4 88 214
+546a0 4 92 210
+546a4 2 87 214
+546a6 2 92 210
+546a8 4 87 214
+546ac 2 92 210
+546ae 2 87 214
+546b0 2 87 214
+546b2 2 87 214
+546b4 2 88 214
+546b6 2 87 214
+546b8 4 88 214
+546bc 4 55 202
+546c0 e 225 184
+546ce 4 55 202
+546d2 c 226 184
+546de 4 55 202
+546e2 a 227 184
+546ec 2 229 184
+546ee 2 55 202
+546f0 2 228 184
+546f2 2 232 184
+546f4 2 55 202
+546f6 2 232 184
+546f8 4 229 184
+546fc 4 68 211
+54700 2 229 184
+54702 2 68 211
+54704 2 118 212
+54706 4 68 211
+5470a 6 118 212
+54710 4 232 184
+54714 4 233 184
+54718 2 28 202
+5471a 8 233 184
+54722 4 234 184
+54726 2 28 202
+54728 8 234 184
+54730 2 235 184
+54732 2 28 202
+54734 8 235 184
+5473c 2 92 210
+5473e 2 28 202
+54740 2 68 202
+54742 a 92 210
+5474c 2 87 214
+5474e 2 92 210
+54750 4 88 214
+54754 2 92 210
+54756 2 87 214
+54758 2 92 210
+5475a 4 87 214
+5475e 2 92 210
+54760 2 87 214
+54762 2 87 214
+54764 2 87 214
+54766 2 88 214
+54768 2 87 214
+5476a 4 88 214
+5476e 4 55 202
+54772 c 239 184
+5477e 4 55 202
+54782 c 240 184
+5478e 4 55 202
+54792 a 241 184
+5479c 2 244 184
+5479e 2 243 184
+547a0 2 68 202
+547a2 4 244 184
+547a6 4 68 211
+547aa 2 244 184
+547ac 2 55 202
+547ae 2 68 211
+547b0 2 55 202
+547b2 2 118 212
+547b4 2 68 211
+547b6 6 118 212
+547bc 2 107 202
+547be 6 107 202
+547c4 2 68 202
+547c6 2 107 202
+547c8 6 107 202
+547ce 2 68 202
+547d0 2 107 202
+547d2 6 107 202
+547d8 2 68 202
+547da 2 107 202
+547dc 6 107 202
+547e2 2 68 202
+547e4 2 107 202
+547e6 6 107 202
+547ec 2 68 202
+547ee 2 107 202
+547f0 6 107 202
+547f6 2 68 202
+547f8 2 107 202
+547fa 6 107 202
+54800 6 246 184
+54806 c 219 184
+54812 2 68 202
+54814 4 61 202
+54818 2 62 202
+5481a 6 62 202
+54820 6 220 184
+54826 2 28 202
+54828 6 220 184
+5482e 2 68 202
+54830 4 61 202
+54834 2 62 202
+54836 6 62 202
+5483c 6 221 184
+54842 2 28 202
+54844 6 221 184
+5484a 2 68 202
+5484c 6 61 202
+54852 6 62 202
+54858 8 62 202
+54860 e 205 184
+5486e 2 68 202
+54870 6 61 202
+54876 6 62 202
+5487c 8 62 202
+54884 4 246 184
+54888 6 244 184
+5488e 10 107 202
+5489e 8 87 214
+548a6 1a 244 184
+548c0 c 215 184
+548cc 16 203 184
+548e2 12 244 184
+548f4 8 87 214
+548fc 50 244 184
+FUNC 5494c 2c 0 std::ios_base::Init::Init
+5494c 4 143 184
+54950 4 144 184
+54954 2 143 184
+54956 8 144 184
+5495e 6 145 184
+54964 4 146 184
+54968 6 147 184
+5496e a 149 184
+FUNC 54978 20 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_exit_input_mode()
+54978 2 119 207
+5497a 2 118 207
+5497c 2 118 207
+5497e 2 119 207
+54980 a 120 207
+5498a 4 121 207
+5498e 2 122 207
+54990 6 124 207
+54996 2 125 207
+FUNC 54998 9e 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::close()
+54998 2 81 207
+5499a 2 81 207
+5499c 4 130 208
+549a0 4 84 207
+549a4 6 130 208
+549aa 4 84 207
+549ae 4 85 207
+549b2 2 87 207
+549b4 8 93 207
+549bc 6 97 207
+549c2 4 98 207
+549c6 2 100 207
+549c8 2 101 207
+549ca 2 93 235
+549cc 2 94 235
+549ce 2 95 235
+549d0 2 117 235
+549d2 2 118 235
+549d4 2 119 235
+549d6 6 106 207
+549dc 10 108 207
+549ec 6 93 207
+549f2 8 111 207
+549fa 2 112 207
+549fc 8 89 207
+54a04 6 90 207
+54a0a e 85 207
+54a18 8 594 207
+54a20 e 594 207
+54a2e 8 87 207
+FUNC 54a38 48 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::~basic_filebuf
+54a38 2 70 207
+54a3a 2 67 207
+54a3c 6 70 207
+54a42 2 67 207
+54a44 4 68 207
+54a48 6 686 207
+54a4e 6 688 207
+54a54 2 689 207
+54a56 2 69 207
+54a58 2 689 207
+54a5a 2 690 207
+54a5c 2 691 207
+54a5e 2 692 207
+54a60 4 69 207
+54a64 4 70 207
+54a68 8 687 207
+54a70 10 69 207
+FUNC 54a80 12 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::~basic_filebuf
+54a80 2 67 207
+54a82 2 67 207
+54a84 4 70 207
+54a88 6 70 207
+54a8e 4 70 207
+FUNC 54a94 74 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_allocate_buffers(wchar_t*, int)
+54a94 2 630 207
+54a96 4 630 207
+54a9a 4 637 207
+54a9e 2 651 207
+54aa0 2 650 207
+54aa2 4 651 207
+54aa6 4 655 207
+54aaa 2 324 203
+54aac 4 655 207
+54ab0 4 324 203
+54ab4 e 661 207
+54ac2 2 664 207
+54ac4 2 670 207
+54ac6 2 669 207
+54ac8 2 671 207
+54aca 2 670 207
+54acc 6 669 207
+54ad2 2 672 207
+54ad4 6 686 207
+54ada 8 687 207
+54ae2 4 688 207
+54ae6 4 689 207
+54aea 2 666 207
+54aec 2 690 207
+54aee 2 691 207
+54af0 2 692 207
+54af2 2 666 207
+54af4 2 638 207
+54af6 6 644 207
+54afc 4 645 207
+54b00 8 647 207
+FUNC 54b08 2c 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_allocate_buffers()
+54b08 2 676 207
+54b0a 4 676 207
+54b0e 6 128 208
+54b14 c 680 207
+54b20 2 681 207
+54b22 4 680 207
+54b26 2 681 207
+54b28 4 682 207
+54b2c 8 681 207
+FUNC 54b34 52 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_switch_to_output_mode()
+54b34 2 452 207
+54b36 2 452 207
+54b38 6 453 207
+54b3e 2 129 208
+54b40 6 453 207
+54b46 6 453 207
+54b4c 6 453 207
+54b52 4 456 207
+54b56 4 462 207
+54b5a 4 463 207
+54b5e 2 466 207
+54b60 2 465 207
+54b62 2 117 235
+54b64 2 465 207
+54b66 2 467 207
+54b68 2 118 235
+54b6a 2 119 235
+54b6c 4 466 207
+54b70 2 467 207
+54b72 2 470 207
+54b74 2 471 207
+54b76 10 456 207
+FUNC 54b88 11c 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::overflow(unsigned int)
+54b88 6 208 207
+54b8e 4 210 207
+54b92 4 208 207
+54b96 4 210 207
+54b9a 2 214 207
+54b9c 2 112 235
+54b9e 2 219 207
+54ba0 2 216 207
+54ba2 2 117 235
+54ba4 2 216 207
+54ba6 2 118 235
+54ba8 2 219 207
+54baa 2 119 235
+54bac 6 220 207
+54bb2 4 223 207
+54bb6 16 322 208
+54bcc 8 240 207
+54bd4 a 240 207
+54bde 4 322 208
+54be2 4 246 207
+54be6 a 247 207
+54bf0 4 223 207
+54bf4 2 228 207
+54bf6 2 290 203
+54bf8 4 225 207
+54bfc 12 290 203
+54c0e 2 224 207
+54c10 4 225 207
+54c14 6 290 203
+54c1a 2 229 207
+54c1c 2 322 208
+54c1e 2 229 207
+54c20 4 240 207
+54c24 6 240 207
+54c2a 14 240 207
+54c3e 8 240 207
+54c46 2 580 207
+54c48 4 252 207
+54c4c 4 580 207
+54c50 2 252 207
+54c52 2 582 207
+54c54 4 581 207
+54c58 4 582 207
+54c5c 2 117 235
+54c5e 2 118 235
+54c60 2 119 235
+54c62 8 256 207
+54c6a 8 211 207
+54c72 8 212 207
+54c7a e 182 246
+54c88 4 249 207
+54c8c 4 580 207
+54c90 2 249 207
+54c92 2 582 207
+54c94 4 581 207
+54c98 4 582 207
+54c9c 2 117 235
+54c9e 2 118 235
+54ca0 2 119 235
+54ca2 2 249 207
+FUNC 54ca4 52 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::setbuf(wchar_t*, int)
+54ca4 2 268 207
+54ca6 2 268 207
+54ca8 6 269 207
+54cae 4 269 207
+54cb2 4 269 207
+54cb6 4 277 207
+54cba 14 271 207
+54cce 14 273 207
+54ce2 8 274 207
+54cea c 272 207
+FUNC 54cf8 86 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_seek_init(bool)
+54cf8 2 700 207
+54cfa 2 702 207
+54cfc 4 706 207
+54d00 4 700 207
+54d04 4 702 207
+54d08 2 706 207
+54d0a 6 720 207
+54d10 6 720 207
+54d16 2 93 235
+54d18 2 723 207
+54d1a 4 220 208
+54d1e 2 93 235
+54d20 2 221 208
+54d22 2 94 235
+54d24 2 95 235
+54d26 6 221 208
+54d2c 2 723 207
+54d2e 2 724 207
+54d30 4 723 207
+54d34 10 708 207
+54d44 2 709 207
+54d46 2 710 207
+54d48 8 594 207
+54d50 e 594 207
+54d5e 4 710 207
+54d62 2 712 207
+54d64 2 713 207
+54d66 4 712 207
+54d6a 2 715 207
+54d6c 4 713 207
+54d70 2 117 235
+54d72 2 118 235
+54d74 2 119 235
+54d76 2 715 207
+54d78 6 711 207
+FUNC 54d80 84 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::seekpos(std::fpos<mbstate_t>, int)
+54d80 4 384 207
+54d84 4 384 207
+54d88 4 386 207
+54d8c 6 384 207
+54d92 2 386 207
+54d94 a 89 246
+54d9e 6 398 207
+54da4 a 387 207
+54dae 2 92 246
+54db0 4 391 207
+54db4 10 391 207
+54dc4 2 120 246
+54dc6 4 240 208
+54dca 2 392 207
+54dcc 2 240 208
+54dce 2 242 208
+54dd0 2 89 246
+54dd2 4 242 208
+54dd6 4 243 208
+54dda 4 244 208
+54dde 4 245 208
+54de2 2 93 235
+54de4 2 94 235
+54de6 2 95 235
+54de8 2 117 235
+54dea 2 118 235
+54dec 2 119 235
+54dee 4 121 246
+54df2 a 89 246
+54dfc 8 241 208
+FUNC 54e04 1b4 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::seekoff(long, int, int)
+54e04 6 291 207
+54e0a 4 294 207
+54e0e 2 291 207
+54e10 6 291 207
+54e16 4 294 207
+54e1a 16 297 207
+54e30 a 89 246
+54e3a 8 379 207
+54e42 10 300 207
+54e52 14 304 207
+54e66 6 310 207
+54e6c 6 314 207
+54e72 2 317 207
+54e74 4 321 207
+54e78 8 317 207
+54e80 4 321 207
+54e84 8 336 207
+54e8c 2 89 246
+54e8e 2 336 207
+54e90 18 89 246
+54ea8 10 312 207
+54eb8 2 239 208
+54eba 2 312 207
+54ebc 2 239 208
+54ebe 8 240 208
+54ec6 6 242 208
+54ecc 4 243 208
+54ed0 4 244 208
+54ed4 4 245 208
+54ed8 2 93 235
+54eda 2 94 235
+54edc 2 95 235
+54ede 2 117 235
+54ee0 2 118 235
+54ee2 2 119 235
+54ee4 8 89 246
+54eec a 324 207
+54ef6 8 325 207
+54efe 4 332 207
+54f02 2 325 207
+54f04 2 332 207
+54f06 4 325 207
+54f0a 4 332 207
+54f0e 2 333 207
+54f10 4 336 207
+54f14 2 87 208
+54f16 4 336 207
+54f1a a 336 207
+54f24 6 239 208
+54f2a 8 241 208
+54f32 2 346 207
+54f34 2 344 207
+54f36 4 341 207
+54f3a 4 344 207
+54f3e 2 321 203
+54f40 4 341 207
+54f44 2 321 203
+54f46 4 344 207
+54f4a 4 341 207
+54f4e a 321 203
+54f58 4 370 207
+54f5c 2 321 203
+54f5e 8 370 207
+54f66 4 372 207
+54f6a 6 373 207
+54f70 2 87 208
+54f72 2 372 207
+54f74 6 373 207
+54f7a 2 375 207
+54f7c 8 89 246
+54f84 4 240 208
+54f88 2 89 246
+54f8a 2 240 208
+54f8c 2 242 208
+54f8e 2 89 246
+54f90 4 242 208
+54f94 4 243 208
+54f98 4 244 208
+54f9c 4 245 208
+54fa0 2 93 235
+54fa2 2 94 235
+54fa4 2 95 235
+54fa6 2 117 235
+54fa8 2 118 235
+54faa 2 119 235
+54fac 4 121 246
+54fb0 8 241 208
+FUNC 54fb8 112 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::_M_underflow_aux()
+54fb8 2 498 207
+54fba 6 495 207
+54fc0 2 502 207
+54fc2 2 495 207
+54fc4 2 502 207
+54fc6 2 498 207
+54fc8 2 504 207
+54fca 8 502 207
+54fd2 2 509 207
+54fd4 2 502 207
+54fd6 8 224 200
+54fde 2 504 207
+54fe0 4 537 207
+54fe4 8 310 203
+54fec c 515 207
+54ff8 2 516 207
+54ffa 2 515 207
+54ffc 2 516 207
+54ffe 2 522 207
+55000 2 525 207
+55002 4 522 207
+55006 4 525 207
+5500a 2 537 207
+5500c 18 310 203
+55024 4 547 207
+55028 4 549 207
+5502c 8 549 207
+55034 8 549 207
+5503c 8 549 207
+55044 4 549 207
+55048 4 555 207
+5504c 2 350 184
+5504e 2 93 235
+55050 2 94 235
+55052 2 95 235
+55054 6 568 207
+5505a 14 549 207
+5506e 6 486 207
+55074 2 487 207
+55076 2 488 207
+55078 4 487 207
+5507c 4 488 207
+55080 4 553 207
+55084 2 93 235
+55086 2 94 235
+55088 2 95 235
+5508a 2 553 207
+5508c 6 549 207
+55092 6 549 207
+55098 6 563 207
+5509e 2 93 235
+550a0 4 565 207
+550a4 2 94 235
+550a6 2 95 235
+550a8 2 565 207
+550aa c 224 200
+550b6 2 93 235
+550b8 4 527 207
+550bc 2 93 235
+550be 2 94 235
+550c0 2 95 235
+550c2 2 527 207
+550c4 6 548 207
+FUNC 550cc 76 0 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::underflow()
+550cc 2 75 207
+550ce 2 75 207
+550d0 6 408 208
+550d6 8 430 207
+550de 6 430 207
+550e4 6 430 207
+550ea 6 432 207
+550f0 2 435 207
+550f2 2 440 207
+550f4 2 438 207
+550f6 4 440 207
+550fa 2 435 207
+550fc 2 436 207
+550fe 2 438 207
+55100 2 420 208
+55102 4 77 207
+55106 4 420 208
+5510a 8 412 208
+55112 2 93 235
+55114 4 220 208
+55118 2 93 235
+5511a 2 221 208
+5511c 2 414 208
+5511e 2 94 235
+55120 2 95 235
+55122 4 221 208
+55126 2 414 208
+55128 4 350 184
+5512c 6 410 208
+55132 a 432 207
+5513c 4 410 208
+55140 2 77 207
+FUNC 55144 1c 0 std::locale::facet::~facet
+55144 4 43 185
+55148 c 43 185
+55154 4 342 240
+55158 8 43 185
+FUNC 55160 12 0 std::locale::facet::~facet
+55160 2 43 185
+55162 6 43 185
+55168 6 43 185
+5516e 4 43 185
+FUNC 55174 20 0 std::locale::locale
+55174 2 119 185
+55176 2 119 185
+55178 4 120 185
+5517c 6 120 185
+55182 2 120 185
+55184 4 121 185
+55188 8 121 185
+55190 4 119 185
+FUNC 55194 1c 0 std::locale::locale
+55194 2 124 185
+55196 2 124 185
+55198 6 125 185
+5519e 2 125 185
+551a0 4 126 185
+551a4 8 126 185
+551ac 4 124 185
+FUNC 551b0 10 0 std::locale::locale
+551b0 2 133 185
+551b2 2 133 185
+551b4 8 134 185
+551bc 4 135 185
+FUNC 551c0 1c 0 std::locale::~locale
+551c0 2 363 185
+551c2 2 362 185
+551c4 2 362 185
+551c6 2 363 185
+551c8 4 364 185
+551cc 4 365 185
+551d0 8 365 185
+551d8 4 362 185
+FUNC 551dc 2e 0 std::locale::operator=(std::locale const&)
+551dc 2 369 185
+551de 2 369 185
+551e0 2 370 185
+551e2 2 369 185
+551e4 6 370 185
+551ea 2 371 185
+551ec 8 372 185
+551f4 4 373 185
+551f8 2 373 185
+551fa 4 376 185
+551fe 8 375 185
+55206 4 369 185
+FUNC 5520c 18 0 std::locale::_M_get_facet(std::locale::id const&) const
+5520c 4 379 185
+55210 6 192 245
+55216 4 379 185
+5521a 6 379 185
+55220 2 379 185
+55222 2 380 185
+FUNC 55224 1e 0 std::locale::_M_use_facet(std::locale::id const&) const
+55224 2 382 185
+55226 4 383 185
+5522a 6 192 245
+55230 6 383 185
+55236 4 383 185
+5523a 2 384 185
+5523c 2 387 185
+5523e 4 385 185
+FUNC 55244 10 0 std::locale::name() const
+55244 2 390 185
+55246 2 389 185
+55248 2 390 185
+5524a 2 389 185
+5524c 4 390 185
+55250 4 391 185
+FUNC 55254 ce 0 std::locale::operator==(std::locale const&) const
+55254 4 396 185
+55258 2 394 185
+5525a 2 396 185
+5525c 2 394 185
+5525e 4 394 185
+55262 2 396 185
+55264 a 396 185
+5526e a 396 185
+55278 4 65 238
+5527c 8 400 237
+55284 4 289 239
+55288 2 396 185
+5528a 2 64 238
+5528c 4 96 238
+55290 2 96 238
+55292 4 97 238
+55296 4 161 201
+5529a 4 161 201
+5529e 2 64 238
+552a0 4 96 238
+552a4 2 96 238
+552a6 4 97 238
+552aa 4 161 201
+552ae 6 161 201
+552b4 2 396 185
+552b6 6 397 185
+552bc 4 226 246
+552c0 4 289 239
+552c4 a 396 185
+552ce 2 65 238
+552d0 2 396 185
+552d2 4 400 237
+552d6 4 324 239
+552da 4 96 238
+552de 4 96 238
+552e2 4 97 238
+552e6 4 161 201
+552ea 6 161 201
+552f0 12 135 222
+55302 a 394 185
+5530c 16 156 238
+FUNC 55324 e 0 std::locale::operator!=(std::locale const&) const
+55324 2 399 185
+55326 8 400 185
+5532e 2 400 185
+55330 2 401 185
+FUNC 55334 6 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_date_order() const
+55334 4 168 242
+55338 2 168 242
+FUNC 5533c 6 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_date_order() const
+5533c 4 168 242
+55340 2 168 242
+FUNC 55344 18 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~num_put
+55344 4 107 226
+55348 14 107 226
+FUNC 5535c 18 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~num_get
+5535c 4 126 224
+55360 14 126 224
+FUNC 55374 18 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_get
+55374 4 126 224
+55378 14 126 224
+FUNC 5538c 18 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_put
+5538c 4 107 226
+55390 14 107 226
+FUNC 553a4 18 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~money_get
+553a4 4 73 221
+553a8 14 73 221
+FUNC 553bc 18 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~money_put
+553bc 4 406 221
+553c0 14 406 221
+FUNC 553d4 18 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_get
+553d4 4 73 221
+553d8 14 73 221
+FUNC 553ec 18 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_put
+553ec 4 406 221
+553f0 14 406 221
+FUNC 55404 e 0 std::_Refcount_Base::~_Refcount_Base
+55404 2 441 240
+55406 2 441 240
+55408 6 342 240
+5540e 4 441 240
+FUNC 55414 10a 0 std::priv::__write_integer_backward<long int>
+55414 4 304 225
+55418 6 314 225
+5541e 6 304 225
+55424 6 314 225
+5542a 2 278 225
+5542c 4 279 225
+55430 2 278 225
+55432 2 279 225
+55434 8 281 225
+5543c c 282 225
+55448 6 281 225
+5544e 6 282 225
+55454 2 281 225
+55456 4 282 225
+5545a 8 281 225
+55462 6 281 225
+55468 6 284 225
+5546e 6 286 225
+55474 8 287 225
+5547c 6 368 225
+55482 4 322 225
+55486 8 322 225
+5548e 8 323 225
+55496 4 322 225
+5549a 4 322 225
+5549e 4 323 225
+554a2 2 322 225
+554a4 6 326 225
+554aa 8 327 225
+554b2 6 368 225
+554b8 6 333 225
+554be 4 333 225
+554c2 8 339 225
+554ca 2 339 225
+554cc 4 340 225
+554d0 6 339 225
+554d6 4 340 225
+554da 4 339 225
+554de 4 339 225
+554e2 4 340 225
+554e6 2 339 225
+554e8 6 342 225
+554ee 2 343 225
+554f0 6 344 225
+554f6 4 343 225
+554fa 2 344 225
+554fc 6 368 225
+55502 6 333 225
+55508 8 279 225
+55510 8 285 225
+55518 6 368 225
+FUNC 55520 de 0 std::priv::__write_integer_backward<long unsigned int>
+55520 6 314 225
+55526 4 304 225
+5552a 6 304 225
+55530 6 314 225
+55536 4 295 225
+5553a 2 344 225
+5553c 4 295 225
+55540 2 294 225
+55542 10 295 225
+55552 2 294 225
+55554 8 295 225
+5555c 4 294 225
+55560 6 297 225
+55566 8 298 225
+5556e 6 368 225
+55574 8 322 225
+5557c 8 322 225
+55584 8 323 225
+5558c 4 322 225
+55590 4 322 225
+55594 4 323 225
+55598 2 322 225
+5559a 6 326 225
+555a0 8 327 225
+555a8 6 368 225
+555ae 6 333 225
+555b4 4 333 225
+555b8 8 339 225
+555c0 4 340 225
+555c4 8 339 225
+555cc 4 340 225
+555d0 4 339 225
+555d4 4 340 225
+555d8 6 339 225
+555de 6 342 225
+555e4 2 343 225
+555e6 6 344 225
+555ec 4 343 225
+555f0 2 344 225
+555f2 6 368 225
+555f8 6 333 225
+FUNC 55600 10c 0 std::priv::__write_integer_backward<long long int>
+55600 4 304 225
+55604 2 304 225
+55606 4 314 225
+5560a 2 304 225
+5560c 2 314 225
+5560e 4 304 225
+55612 6 314 225
+55618 6 279 225
+5561e 8 281 225
+55626 c 282 225
+55632 6 281 225
+55638 6 282 225
+5563e 2 281 225
+55640 4 282 225
+55644 8 281 225
+5564c 6 281 225
+55652 6 284 225
+55658 6 286 225
+5565e 8 287 225
+55666 6 368 225
+5566c 8 322 225
+55674 8 322 225
+5567c 8 323 225
+55684 4 322 225
+55688 4 322 225
+5568c 4 323 225
+55690 2 322 225
+55692 6 326 225
+55698 8 327 225
+556a0 6 368 225
+556a6 6 333 225
+556ac 4 333 225
+556b0 8 339 225
+556b8 2 339 225
+556ba 4 340 225
+556be 6 339 225
+556c4 4 340 225
+556c8 4 339 225
+556cc 4 339 225
+556d0 4 340 225
+556d4 2 339 225
+556d6 6 342 225
+556dc 2 343 225
+556de 6 344 225
+556e4 4 343 225
+556e8 2 344 225
+556ea 6 368 225
+556f0 6 333 225
+556f6 8 279 225
+556fe 8 285 225
+55706 6 368 225
+FUNC 5570c ee 0 std::priv::__write_integer_backward<long long unsigned int>
+5570c 4 304 225
+55710 2 304 225
+55712 4 314 225
+55716 2 304 225
+55718 2 314 225
+5571a 4 304 225
+5571e 6 314 225
+55724 4 294 225
+55728 4 344 225
+5572c 2 294 225
+5572e c 295 225
+5573a 6 294 225
+55740 6 295 225
+55746 2 294 225
+55748 4 295 225
+5574c 8 294 225
+55754 6 294 225
+5575a 6 297 225
+55760 8 298 225
+55768 6 368 225
+5576e 4 322 225
+55772 4 294 225
+55776 2 322 225
+55778 8 322 225
+55780 8 323 225
+55788 4 322 225
+5578c 4 322 225
+55790 4 323 225
+55794 2 322 225
+55796 6 326 225
+5579c 8 327 225
+557a4 6 368 225
+557aa 6 333 225
+557b0 4 333 225
+557b4 8 339 225
+557bc 2 339 225
+557be 4 340 225
+557c2 6 339 225
+557c8 4 340 225
+557cc 4 339 225
+557d0 4 339 225
+557d4 4 340 225
+557d8 2 339 225
+557da 6 342 225
+557e0 2 343 225
+557e2 6 344 225
+557e8 4 343 225
+557ec 2 344 225
+557ee 6 368 225
+557f4 6 333 225
+FUNC 557fc 20 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_put
+557fc 4 406 221
+55800 c 406 221
+5580c 6 406 221
+55812 a 406 221
+FUNC 5581c 20 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~money_get
+5581c 4 73 221
+55820 c 73 221
+5582c 6 73 221
+55832 a 73 221
+FUNC 5583c 20 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~money_put
+5583c 4 406 221
+55840 c 406 221
+5584c 6 406 221
+55852 a 406 221
+FUNC 5585c 20 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~money_get
+5585c 4 73 221
+55860 c 73 221
+5586c 6 73 221
+55872 a 73 221
+FUNC 5587c 20 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_get
+5587c 4 126 224
+55880 c 126 224
+5588c 6 126 224
+55892 a 126 224
+FUNC 5589c 20 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~num_put
+5589c 4 107 226
+558a0 c 107 226
+558ac 6 107 226
+558b2 a 107 226
+FUNC 558bc 20 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~num_put
+558bc 4 107 226
+558c0 c 107 226
+558cc 6 107 226
+558d2 a 107 226
+FUNC 558dc 20 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~num_get
+558dc 4 126 224
+558e0 c 126 224
+558ec 6 126 224
+558f2 a 126 224
+FUNC 558fc 6a 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::operator++(int)
+558fc 2 144 215
+558fe 2 144 215
+55900 2 90 215
+55902 2 144 215
+55904 8 90 215
+5590c 4 148 215
+55910 2 229 235
+55912 4 148 215
+55916 2 229 235
+55918 2 229 235
+5591a 2 152 215
+5591c 2 229 235
+5591e 4 150 215
+55922 2 152 215
+55924 8 229 235
+5592c 2 150 215
+5592e 2 152 215
+55930 2 150 215
+55932 2 152 215
+55934 2 92 215
+55936 6 235 235
+5593c 4 764 186
+55940 2 235 235
+55942 4 191 246
+55946 2 93 215
+55948 8 191 246
+55950 6 95 215
+55956 10 235 235
+FUNC 55968 66 0 std::istreambuf_iterator<char, std::char_traits<char> >::operator++(int)
+55968 2 90 215
+5596a 2 144 215
+5596c 4 144 215
+55970 4 90 215
+55974 4 229 235
+55978 4 148 215
+5597c 2 229 235
+5597e 4 148 215
+55982 2 229 235
+55984 2 229 235
+55986 2 152 215
+55988 2 229 235
+5598a 4 150 215
+5598e 2 152 215
+55990 8 229 235
+55998 2 150 215
+5599a 2 152 215
+5599c 2 150 215
+5599e 2 152 215
+559a0 2 92 215
+559a2 6 235 235
+559a8 4 223 246
+559ac 2 235 235
+559ae 4 191 246
+559b2 2 220 246
+559b4 8 191 246
+559bc 6 95 215
+559c2 c 235 235
+FUNC 559d0 30 0 std::_release_facet
+559d0 2 44 186
+559d2 2 44 186
+559d4 4 45 186
+559d8 a 347 240
+559e2 2 475 240
+559e4 2 349 240
+559e6 4 475 240
+559ea 4 349 240
+559ee 2 45 186
+559f0 4 46 186
+559f4 6 46 186
+559fa 6 47 186
+FUNC 55a00 74 0 std::_Locale_impl::Init::_M_count() const
+55a00 2 70 186
+55a02 2 69 186
+55a04 a 70 186
+55a0e 4 71 186
+55a12 2 72 186
+55a14 8 70 186
+55a1c 2 457 240
+55a1e 2 340 240
+55a20 6 457 240
+55a26 4 340 240
+55a2a 4 70 186
+55a2e 1a 70 186
+55a48 4 70 186
+55a4c 28 70 186
+FUNC 55a74 28 0 std::_Locale_impl::Init::~Init
+55a74 2 63 186
+55a76 2 63 186
+55a78 4 64 186
+55a7c 2 347 240
+55a7e 2 64 186
+55a80 6 347 240
+55a86 2 475 240
+55a88 2 349 240
+55a8a 4 475 240
+55a8e 4 349 240
+55a92 2 64 186
+55a94 4 65 186
+55a98 4 67 186
+FUNC 55a9c 28 0 std::_Locale_impl::_M_throw_bad_cast()
+55a9c 2 116 186
+55a9e 26 117 186
+FUNC 55ac4 1c 0 std::_get_Locale_impl(std::_Locale_impl*)
+55ac4 2 696 186
+55ac6 2 347 240
+55ac8 2 696 186
+55aca 6 347 240
+55ad0 2 471 240
+55ad2 2 349 240
+55ad4 4 471 240
+55ad8 4 349 240
+55adc 4 700 186
+FUNC 55ae0 c 0 std::priv::_GetFacetId(std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > const*)
+55ae0 4 745 186
+55ae4 8 745 186
+FUNC 55aec 24 0 std::vector<std::locale::facet*, std::allocator<std::locale::facet*> >::~vector
+55aec 2 304 245
+55aee 2 304 245
+55af0 4 87 245
+55af4 4 88 245
+55af8 4 323 201
+55afc 4 161 201
+55b00 4 161 201
+55b04 4 304 245
+55b08 4 135 222
+55b0c 4 304 245
+FUNC 55b10 c4 0 std::vector<std::locale::facet*, std::allocator<std::locale::facet*> >::reserve(unsigned int)
+55b10 6 62 244
+55b16 4 199 245
+55b1a 2 62 244
+55b1c 6 199 245
+55b22 6 63 244
+55b28 6 64 244
+55b2e c 192 245
+55b3a 6 70 244
+55b40 2 346 201
+55b42 2 356 201
+55b44 2 346 201
+55b46 4 347 201
+55b4a 4 158 201
+55b4e 8 158 201
+55b56 2 352 201
+55b58 6 158 201
+55b5e 4 107 243
+55b62 a 106 243
+55b6c 4 657 245
+55b70 2 319 201
+55b72 2 657 245
+55b74 4 323 201
+55b78 4 161 201
+55b7c 4 161 201
+55b80 4 76 244
+55b84 2 668 245
+55b86 4 667 245
+55b8a 6 78 244
+55b90 6 135 222
+55b96 8 134 222
+55b9e 2 346 201
+55ba0 2 356 201
+55ba2 4 346 201
+55ba6 4 347 201
+55baa 4 158 201
+55bae 8 158 201
+55bb6 2 352 201
+55bb8 8 158 201
+55bc0 8 134 222
+55bc8 c 41 244
+FUNC 55bd4 56 0 std::priv::_Time_Info_Base::~_Time_Info_Base
+55bd4 2 63 242
+55bd6 2 63 242
+55bd8 4 121 237
+55bdc 4 156 238
+55be0 4 121 237
+55be4 4 156 238
+55be8 4 121 237
+55bec 4 156 238
+55bf0 4 121 237
+55bf4 a 156 238
+55bfe 4 63 242
+55c02 4 121 237
+55c06 4 156 238
+55c0a 4 121 237
+55c0e 4 156 238
+55c12 4 121 237
+55c16 14 156 238
+FUNC 55c2c 74 0 std::_Locale_impl::~_Locale_impl
+55c2c 2 93 186
+55c2e 2 92 186
+55c30 2 93 186
+55c32 2 92 186
+55c34 6 93 186
+55c3a 2 182 245
+55c3c 2 184 245
+55c3e 4 60 198
+55c42 6 61 198
+55c48 2 60 198
+55c4a 6 60 198
+55c50 2 87 245
+55c52 2 88 245
+55c54 2 135 222
+55c56 2 88 245
+55c58 4 323 201
+55c5c 4 161 201
+55c60 4 161 201
+55c64 4 121 237
+55c68 4 156 238
+55c6c 6 342 240
+55c72 4 95 186
+55c76 6 135 222
+55c7c 4 121 237
+55c80 4 156 238
+55c84 a 342 240
+55c8e 4 92 186
+55c92 e 95 186
+FUNC 55ca0 4c 0 std::_release_Locale_impl(std::_Locale_impl*&)
+55ca0 2 703 186
+55ca2 2 703 186
+55ca4 2 705 186
+55ca6 8 347 240
+55cae 2 475 240
+55cb0 2 349 240
+55cb2 4 475 240
+55cb6 4 349 240
+55cba 2 705 186
+55cbc 2 109 187
+55cbe 2 706 186
+55cc0 4 109 187
+55cc4 6 706 186
+55cca 2 707 186
+55ccc c 707 186
+55cd8 6 710 186
+55cde e 709 186
+FUNC 55cec f0 0 std::priv::time_init<char>::~time_init
+55cec 4 101 242
+55cf0 4 72 242
+55cf4 2 101 242
+55cf6 6 72 242
+55cfc 2 72 242
+55cfe 2 121 237
+55d00 6 156 238
+55d06 4 72 242
+55d0a 6 72 242
+55d10 2 121 237
+55d12 6 156 238
+55d18 4 72 242
+55d1c a 72 242
+55d26 2 72 242
+55d28 4 72 242
+55d2c 4 161 201
+55d30 4 72 242
+55d34 2 101 242
+55d36 2 64 238
+55d38 2 101 242
+55d3a 2 64 238
+55d3c 4 96 238
+55d40 4 96 238
+55d44 4 97 238
+55d48 4 161 201
+55d4c 4 135 222
+55d50 4 72 242
+55d54 4 121 237
+55d58 4 156 238
+55d5c 4 121 237
+55d60 4 156 238
+55d64 4 121 237
+55d68 4 156 238
+55d6c 4 121 237
+55d70 a 156 238
+55d7a 6 101 242
+55d80 6 72 242
+55d86 2 121 237
+55d88 6 156 238
+55d8e 4 72 242
+55d92 6 72 242
+55d98 2 72 242
+55d9a 2 121 237
+55d9c 6 156 238
+55da2 6 72 242
+55da8 a 156 238
+55db2 4 121 237
+55db6 6 156 238
+55dbc 4 121 237
+55dc0 6 156 238
+55dc6 a 72 242
+55dd0 4 121 237
+55dd4 8 156 238
+FUNC 55ddc 2c 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~time_get
+55ddc 4 166 242
+55de0 e 166 242
+55dee 6 166 242
+55df4 14 166 242
+FUNC 55e08 2c 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~time_put
+55e08 4 273 242
+55e0c e 273 242
+55e1a 6 273 242
+55e20 14 273 242
+FUNC 55e34 30 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::~time_get
+55e34 4 166 242
+55e38 e 166 242
+55e46 c 166 242
+55e52 12 166 242
+FUNC 55e64 30 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::~time_put
+55e64 4 273 242
+55e68 e 273 242
+55e76 c 273 242
+55e82 12 273 242
+FUNC 55e94 20 0 std::priv::_String_base<wchar_t, std::allocator<wchar_t> >::_M_deallocate_block()
+55e94 2 64 238
+55e96 4 96 238
+55e9a 2 96 238
+55e9c 2 97 238
+55e9e 2 135 222
+55ea0 2 97 238
+55ea2 4 323 201
+55ea6 4 161 201
+55eaa 4 161 201
+55eae 6 135 222
+FUNC 55eb4 14a 0 std::priv::time_init<wchar_t>::~time_init
+55eb4 4 115 242
+55eb8 6 80 242
+55ebe 2 115 242
+55ec0 2 80 242
+55ec2 e 80 242
+55ed0 4 161 201
+55ed4 4 80 242
+55ed8 2 115 242
+55eda 2 64 238
+55edc 2 115 242
+55ede 2 64 238
+55ee0 4 96 238
+55ee4 4 96 238
+55ee8 4 97 238
+55eec 4 323 201
+55ef0 4 161 201
+55ef4 4 135 222
+55ef8 4 80 242
+55efc a 80 242
+55f06 2 80 242
+55f08 4 80 242
+55f0c 4 161 201
+55f10 4 80 242
+55f14 2 115 242
+55f16 2 64 238
+55f18 2 115 242
+55f1a 2 64 238
+55f1c 4 96 238
+55f20 4 96 238
+55f24 4 97 238
+55f28 4 323 201
+55f2c 4 161 201
+55f30 4 135 222
+55f34 4 80 242
+55f38 a 80 242
+55f42 2 80 242
+55f44 4 80 242
+55f48 4 161 201
+55f4c 4 80 242
+55f50 2 115 242
+55f52 2 64 238
+55f54 2 115 242
+55f56 2 64 238
+55f58 4 96 238
+55f5c 4 96 238
+55f60 4 97 238
+55f64 4 323 201
+55f68 4 161 201
+55f6c 4 135 222
+55f70 4 80 242
+55f74 4 121 237
+55f78 4 156 238
+55f7c 4 121 237
+55f80 4 156 238
+55f84 4 121 237
+55f88 4 156 238
+55f8c 4 121 237
+55f90 a 156 238
+55f9a 6 115 242
+55fa0 6 80 242
+55fa6 2 80 242
+55fa8 2 121 237
+55faa 6 156 238
+55fb0 4 80 242
+55fb4 6 80 242
+55fba 2 80 242
+55fbc 2 121 237
+55fbe 6 156 238
+55fc4 6 80 242
+55fca a 156 238
+55fd4 4 121 237
+55fd8 6 156 238
+55fde 4 121 237
+55fe2 6 156 238
+55fe8 a 80 242
+55ff2 4 121 237
+55ff6 8 156 238
+FUNC 56000 2c 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_get
+56000 4 166 242
+56004 e 166 242
+56012 6 166 242
+56018 14 166 242
+FUNC 5602c 2c 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_put
+5602c 4 273 242
+56030 e 273 242
+5603e 6 273 242
+56044 14 273 242
+FUNC 56058 30 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_get
+56058 4 166 242
+5605c e 166 242
+5606a c 166 242
+56076 12 166 242
+FUNC 56088 30 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::~time_put
+56088 4 273 242
+5608c e 273 242
+5609a c 273 242
+560a6 12 273 242
+FUNC 560b8 24 0 std::priv::_String_base<char, std::priv::__iostring_allocator<char> >::_M_deallocate_block()
+560b8 4 64 238
+560bc 4 96 238
+560c0 2 96 238
+560c2 4 97 238
+560c6 4 70 213
+560ca 2 97 238
+560cc 2 135 222
+560ce 4 161 201
+560d2 6 161 201
+560d8 4 135 222
+FUNC 560dc 40 0 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+560dc 2 639 236
+560de 2 639 236
+560e0 2 112 238
+560e2 2 229 246
+560e4 2 481 201
+560e6 2 639 236
+560e8 4 229 246
+560ec 2 643 236
+560ee 2 379 237
+560f0 2 378 237
+560f2 6 379 237
+560f8 2 107 243
+560fa 2 66 238
+560fc 2 107 243
+560fe 8 106 243
+56106 2 107 243
+56108 2 380 237
+5610a 4 101 205
+5610e 4 644 236
+56112 a 156 238
+FUNC 5611c 68 0 std::_Locale_impl::_Locale_impl
+5611c 2 74 186
+5611e 4 457 240
+56122 4 75 186
+56126 2 74 186
+56128 4 457 240
+5612c 2 340 240
+5612e 2 74 186
+56130 6 340 240
+56136 8 75 186
+5613e 6 76 186
+56144 4 67 245
+56148 4 76 186
+5614c 2 67 245
+5614e 2 481 201
+56150 8 76 186
+56158 4 77 186
+5615c 4 77 186
+56160 4 78 186
+56164 a 342 240
+5616e 6 78 186
+56174 10 156 238
+FUNC 56184 59c 0 std::_Locale_impl::make_classic_locale()
+56184 6 623 186
+5618a 4 628 186
+5618e 2 661 186
+56190 4 628 186
+56194 2 628 186
+56196 4 623 186
+5619a 6 628 186
+561a0 10 661 186
+561b0 2 457 240
+561b2 2 340 240
+561b4 2 623 186
+561b6 2 661 186
+561b8 4 340 240
+561bc 2 457 240
+561be 4 340 240
+561c2 4 48 204
+561c6 2 661 186
+561c8 4 86 218
+561cc 2 48 204
+561ce 2 86 218
+561d0 4 48 204
+561d4 6 661 186
+561da 6 633 186
+561e0 2 661 186
+561e2 4 633 186
+561e6 8 661 186
+561ee 2 457 240
+561f0 2 340 240
+561f2 2 661 186
+561f4 4 340 240
+561f8 2 457 240
+561fa 4 340 240
+561fe 4 180 203
+56202 2 661 186
+56204 2 180 203
+56206 2 661 186
+56208 4 180 203
+5620c 4 661 186
+56210 2 635 186
+56212 2 661 186
+56214 4 635 186
+56218 8 661 186
+56220 2 636 186
+56222 2 661 186
+56224 4 636 186
+56228 8 661 186
+56230 2 457 240
+56232 2 340 240
+56234 2 661 186
+56236 4 340 240
+5623a 2 457 240
+5623c 4 340 240
+56240 4 54 227
+56244 2 661 186
+56246 2 54 227
+56248 2 661 186
+5624a 4 54 227
+5624e 4 661 186
+56252 2 638 186
+56254 2 661 186
+56256 4 638 186
+5625a 8 661 186
+56262 2 457 240
+56264 2 340 240
+56266 2 661 186
+56268 4 340 240
+5626c 2 457 240
+5626e 4 340 240
+56272 4 60 221
+56276 4 661 186
+5627a 6 60 221
+56280 4 661 186
+56284 2 457 240
+56286 2 340 240
+56288 2 661 186
+5628a 4 340 240
+5628e 2 457 240
+56290 4 340 240
+56294 2 394 221
+56296 4 661 186
+5629a 6 394 221
+562a0 4 661 186
+562a4 2 457 240
+562a6 2 340 240
+562a8 2 661 186
+562aa 4 340 240
+562ae 2 457 240
+562b0 4 340 240
+562b4 2 61 224
+562b6 4 661 186
+562ba 6 61 224
+562c0 4 661 186
+562c4 2 457 240
+562c6 2 340 240
+562c8 2 661 186
+562ca 4 340 240
+562ce 2 457 240
+562d0 4 340 240
+562d4 2 57 226
+562d6 6 661 186
+562dc 6 57 226
+562e2 4 661 186
+562e6 2 457 240
+562e8 2 340 240
+562ea 2 661 186
+562ec 4 340 240
+562f0 2 457 240
+562f2 4 340 240
+562f6 a 86 218
+56300 4 136 242
+56304 2 136 242
+56306 6 661 186
+5630c 6 136 242
+56312 4 661 186
+56316 2 457 240
+56318 2 340 240
+5631a 2 661 186
+5631c 4 340 240
+56320 2 457 240
+56322 4 340 240
+56326 a 86 218
+56330 4 253 242
+56334 2 253 242
+56336 4 661 186
+5633a 6 253 242
+56340 4 661 186
+56344 2 457 240
+56346 2 340 240
+56348 2 661 186
+5634a 4 340 240
+5634e 2 457 240
+56350 4 340 240
+56354 2 84 204
+56356 2 661 186
+56358 2 84 204
+5635a 2 661 186
+5635c 4 84 204
+56360 4 661 186
+56364 2 457 240
+56366 2 340 240
+56368 2 661 186
+5636a 4 340 240
+5636e 2 457 240
+56370 4 340 240
+56374 2 181 206
+56376 2 661 186
+56378 2 181 206
+5637a 2 661 186
+5637c 4 181 206
+56380 4 661 186
+56384 2 457 240
+56386 2 340 240
+56388 2 661 186
+5638a 4 340 240
+5638e 2 457 240
+56390 4 340 240
+56394 2 277 203
+56396 2 661 186
+56398 2 277 203
+5639a 2 661 186
+5639c 4 277 203
+563a0 4 661 186
+563a4 2 649 186
+563a6 2 661 186
+563a8 4 649 186
+563ac 8 661 186
+563b4 2 650 186
+563b6 2 661 186
+563b8 4 650 186
+563bc 8 661 186
+563c4 2 457 240
+563c6 2 340 240
+563c8 2 661 186
+563ca 4 340 240
+563ce 2 457 240
+563d0 4 340 240
+563d4 2 83 227
+563d6 2 661 186
+563d8 2 83 227
+563da 2 661 186
+563dc 4 83 227
+563e0 4 661 186
+563e4 2 652 186
+563e6 2 661 186
+563e8 4 652 186
+563ec 8 661 186
+563f4 2 457 240
+563f6 2 340 240
+563f8 2 661 186
+563fa 4 340 240
+563fe 2 457 240
+56400 4 340 240
+56404 2 60 221
+56406 4 661 186
+5640a 6 60 221
+56410 4 661 186
+56414 2 457 240
+56416 2 340 240
+56418 2 661 186
+5641a 4 340 240
+5641e 2 457 240
+56420 4 340 240
+56424 2 394 221
+56426 4 661 186
+5642a 6 394 221
+56430 4 661 186
+56434 2 457 240
+56436 2 340 240
+56438 2 661 186
+5643a 4 340 240
+5643e 2 457 240
+56440 4 340 240
+56444 2 61 224
+56446 4 661 186
+5644a 6 61 224
+56450 4 661 186
+56454 2 457 240
+56456 2 340 240
+56458 2 661 186
+5645a 4 340 240
+5645e 2 457 240
+56460 4 340 240
+56464 2 57 226
+56466 6 661 186
+5646c 6 57 226
+56472 4 661 186
+56476 2 457 240
+56478 2 340 240
+5647a 2 661 186
+5647c 4 340 240
+56480 2 457 240
+56482 4 340 240
+56486 a 86 218
+56490 4 136 242
+56494 2 136 242
+56496 6 661 186
+5649c 6 136 242
+564a2 4 661 186
+564a6 2 457 240
+564a8 2 340 240
+564aa 2 661 186
+564ac 4 340 240
+564b0 2 457 240
+564b2 4 340 240
+564b6 8 86 218
+564be 4 253 242
+564c2 4 664 186
+564c6 2 253 242
+564c8 2 664 186
+564ca 2 661 186
+564cc 2 253 242
+564ce 4 664 186
+564d2 4 253 242
+564d6 4 664 186
+564da 6 199 245
+564e0 4 326 245
+564e4 6 192 245
+564ea 4 332 245
+564ee a 224 200
+564f8 2 335 245
+564fa a 667 186
+56504 2 670 186
+56506 2 668 186
+56508 2 670 186
+5650a 4 668 186
+5650e 2 670 186
+56510 4 668 186
+56514 4 670 186
+56518 a 671 186
+56522 6 672 186
+56528 4 510 216
+5652c 4 224 200
+56530 8 224 200
+56538 6 107 243
+5653e c 106 243
+5654a 2 107 243
+5654c 8 341 245
+56554 8 670 186
+5655c 2 670 186
+5655e 2 628 186
+56560 2 670 186
+56562 2 628 186
+56564 4 670 186
+56568 4 670 186
+5656c 16 670 186
+56582 a 347 201
+5658c 4 158 201
+56590 4 106 243
+56594 4 352 201
+56598 2 158 201
+5659a 4 106 243
+5659e 4 657 245
+565a2 2 319 201
+565a4 2 657 245
+565a6 4 323 201
+565aa 4 161 201
+565ae 4 161 201
+565b2 2 666 245
+565b4 8 330 245
+565bc 4 666 245
+565c0 2 667 245
+565c2 4 668 245
+565c6 8 667 186
+565ce 2 667 186
+565d0 2 628 186
+565d2 2 667 186
+565d4 2 628 186
+565d6 4 667 186
+565da 4 667 186
+565de 16 667 186
+565f4 6 135 222
+565fa 4 670 186
+565fe 8 670 186
+56606 22 633 186
+56628 8 136 242
+56630 14 253 242
+56644 1e 136 242
+56662 4 667 186
+56666 ba 667 186
+FUNC 56720 b8 0 std::_Locale_impl::_S_initialize()
+56720 4 100 186
+56724 8 575 186
+5672c 4 576 186
+56730 4 577 186
+56734 2 575 186
+56736 4 578 186
+5673a 2 576 186
+5673c 2 579 186
+5673e 2 577 186
+56740 2 580 186
+56742 2 578 186
+56744 2 583 186
+56746 2 579 186
+56748 2 584 186
+5674a 2 580 186
+5674c 2 585 186
+5674e 2 583 186
+56750 2 586 186
+56752 2 584 186
+56754 2 587 186
+56756 2 585 186
+56758 2 588 186
+5675a 2 586 186
+5675c 2 587 186
+5675e 4 575 186
+56762 2 588 186
+56764 8 576 186
+5676c 8 577 186
+56774 8 578 186
+5677c 8 579 186
+56784 4 580 186
+56788 4 583 186
+5678c 4 584 186
+56790 4 585 186
+56794 4 586 186
+56798 4 587 186
+5679c 4 588 186
+567a0 4 103 186
+567a4 34 102 186
+FUNC 567d8 2e 0 std::_Locale_impl::Init::Init
+567d8 2 57 186
+567da 2 57 186
+567dc 4 58 186
+567e0 2 347 240
+567e2 2 58 186
+567e4 6 347 240
+567ea 2 471 240
+567ec 2 349 240
+567ee 4 471 240
+567f2 4 349 240
+567f6 4 58 186
+567fa 4 61 186
+567fe 4 59 186
+56802 4 61 186
+FUNC 56808 70 0 std::_Stl_get_global_locale()
+56808 2 604 186
+5680a 2 603 186
+5680c 8 604 186
+56814 6 605 186
+5681a 2 606 186
+5681c 8 604 186
+56824 4 604 186
+56828 4 604 186
+5682c 4 604 186
+56830 1a 604 186
+5684a 4 604 186
+5684e 2a 604 186
+FUNC 56878 48 0 std::priv::_String_base<wchar_t, std::allocator<wchar_t> >::_M_allocate_block(unsigned int)
+56878 4 608 236
+5687c 6 607 236
+56882 2 608 236
+56884 2 608 236
+56886 4 610 236
+5688a 4 623 236
+5688e 8 600 236
+56896 4 347 201
+5689a 4 158 201
+5689e 6 158 201
+568a4 2 613 236
+568a6 2 611 236
+568a8 4 613 236
+568ac 2 612 236
+568ae 6 613 236
+568b4 c 134 222
+FUNC 568c0 3c 0 std::priv::_String_base<char, std::priv::__iostring_allocator<char> >::_M_allocate_block(unsigned int)
+568c0 6 607 236
+568c6 2 608 236
+568c8 4 610 236
+568cc 4 64 213
+568d0 4 67 213
+568d4 2 64 213
+568d6 2 613 236
+568d8 4 611 236
+568dc 2 612 236
+568de 2 613 236
+568e0 4 623 236
+568e4 8 600 236
+568ec 10 134 222
+FUNC 568fc 144 0 std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, tm const*, char, char) const
+568fc 8 425 241
+56904 4 425 241
+56908 2 145 212
+5690a 2 425 241
+5690c 2 145 212
+5690e 4 425 241
+56912 a 145 212
+5691c c 351 218
+56928 4 41 213
+5692c 2 428 241
+5692e 4 120 238
+56932 4 428 241
+56936 c 108 213
+56942 8 41 213
+5694a 4 120 238
+5694e 4 41 213
+56952 6 124 238
+56958 4 481 201
+5695c 4 124 238
+56960 4 90 238
+56964 2 101 205
+56966 6 430 241
+5696c 2 101 205
+5696e 12 430 241
+56980 a 90 238
+5698a 4 66 238
+5698e 18 90 238
+569a6 2 213 200
+569a8 2 90 238
+569aa 2 213 200
+569ac 8 90 238
+569b4 8 213 200
+569bc 4 214 200
+569c0 4 62 229
+569c4 6 200 235
+569ca 8 200 235
+569d2 2 200 235
+569d4 8 200 235
+569dc 8 62 229
+569e4 8 213 200
+569ec 4 218 200
+569f0 2 96 238
+569f2 c 218 200
+569fe 2 96 238
+56a00 2 96 238
+56a02 2 70 213
+56a04 4 97 238
+56a08 2 70 213
+56a0a 2 97 238
+56a0c 2 135 222
+56a0e 4 161 201
+56a12 4 161 201
+56a16 a 432 241
+56a20 6 135 222
+56a26 a 428 241
+56a30 10 156 238
+FUNC 56a40 32 0 std::priv::__basic_iostring<wchar_t>::~__basic_iostring
+56a40 2 97 213
+56a42 2 97 213
+56a44 4 64 238
+56a48 4 96 238
+56a4c 2 96 238
+56a4e 6 97 238
+56a54 4 70 213
+56a58 2 97 238
+56a5a 4 323 201
+56a5e 4 161 201
+56a62 4 161 201
+56a66 4 97 213
+56a6a 4 135 222
+56a6e 4 97 213
+FUNC 56a74 8e 0 std::copy<wchar_t const*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+56a74 8 291 200
+56a7c 2 213 200
+56a7e 2 291 200
+56a80 4 213 200
+56a84 4 291 200
+56a88 8 213 200
+56a90 2 213 200
+56a92 4 213 200
+56a96 2 213 200
+56a98 16 213 200
+56aae 8 62 229
+56ab6 4 213 200
+56aba 4 214 200
+56abe 4 62 229
+56ac2 a 200 235
+56acc c 200 235
+56ad8 2 200 235
+56ada e 200 235
+56ae8 8 218 200
+56af0 2 294 200
+56af2 6 218 200
+56af8 a 294 200
+FUNC 56a74 8e 0 std::copy<wchar_t*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
+FUNC 56b04 8e 0 std::copy<char const*, std::ostreambuf_iterator<char, std::char_traits<char> > >
+FUNC 56b04 8e 0 std::copy<char*, std::ostreambuf_iterator<char, std::char_traits<char> > >
+56b04 8 291 200
+56b0c 2 213 200
+56b0e 6 291 200
+56b14 a 213 200
+56b1e 4 213 200
+56b22 22 213 200
+56b44 4 214 200
+56b48 6 62 229
+56b4e 6 200 235
+56b54 a 200 235
+56b5e 2 200 235
+56b60 8 200 235
+56b68 a 62 229
+56b72 6 213 200
+56b78 8 218 200
+56b80 2 294 200
+56b82 6 218 200
+56b88 a 294 200
+FUNC 56b94 28c 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_put_bool<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, bool)
+56b94 6 386 225
+56b9a 6 386 225
+56ba0 4 145 212
+56ba4 6 386 225
+56baa 4 145 212
+56bae 4 386 225
+56bb2 6 145 212
+56bb8 c 351 218
+56bc4 6 387 225
+56bca a 389 225
+56bd4 e 88 227
+56be2 2 89 238
+56be4 2 65 238
+56be6 2 139 212
+56be8 2 138 212
+56bea 2 400 237
+56bec 2 139 212
+56bee 2 400 237
+56bf0 6 392 225
+56bf6 2 396 225
+56bf8 2 395 225
+56bfa 4 396 225
+56bfe 6 398 225
+56c04 8 482 200
+56c0c 2 480 200
+56c0e a 482 200
+56c18 2 480 200
+56c1a 2 62 229
+56c1c 6 200 235
+56c22 a 200 235
+56c2c 2 200 235
+56c2e 8 62 229
+56c36 c 480 200
+56c42 6 482 200
+56c48 8 403 225
+56c50 2 213 200
+56c52 a 482 200
+56c5c 32 403 225
+56c8e 6 213 200
+56c94 8 62 229
+56c9c 4 213 200
+56ca0 4 214 200
+56ca4 4 62 229
+56ca8 6 200 235
+56cae 8 200 235
+56cb6 2 200 235
+56cb8 c 200 235
+56cc4 2 213 200
+56cc6 10 218 200
+56cd6 6 96 238
+56cdc 2 96 238
+56cde 2 97 238
+56ce0 2 135 222
+56ce2 2 97 238
+56ce4 4 323 201
+56ce8 4 161 201
+56cec 4 161 201
+56cf0 8 407 225
+56cf8 c 200 235
+56d04 e 89 227
+56d12 2 89 238
+56d14 2 65 238
+56d16 2 139 212
+56d18 2 138 212
+56d1a 2 400 237
+56d1c 2 139 212
+56d1e 2 400 237
+56d20 1c 392 225
+56d3c 2 213 200
+56d3e 1a 392 225
+56d58 6 213 200
+56d5e 8 62 229
+56d66 4 213 200
+56d6a 4 214 200
+56d6e 4 62 229
+56d72 6 200 235
+56d78 8 200 235
+56d80 2 200 235
+56d82 c 200 235
+56d8e 6 135 222
+56d94 12 399 225
+56da6 8 399 225
+56dae 2 480 200
+56db0 14 399 225
+56dc4 2 480 200
+56dc6 2 62 229
+56dc8 6 200 235
+56dce a 200 235
+56dd8 2 200 235
+56dda 8 62 229
+56de2 4 480 200
+56de6 14 482 200
+56dfa c 200 235
+56e06 a 156 238
+56e10 10 387 225
+FUNC 56e20 44 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, bool) const
+56e20 4 420 225
+56e24 c 420 225
+56e30 2 422 225
+56e32 4 420 225
+56e36 4 422 225
+56e3a 10 426 225
+56e4a 6 427 225
+56e50 14 424 225
+FUNC 56e64 2dc 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__do_put_bool<char, std::ostreambuf_iterator<char, std::char_traits<char> > >(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, bool)
+56e64 6 386 225
+56e6a 6 386 225
+56e70 4 145 212
+56e74 6 386 225
+56e7a 4 145 212
+56e7e 4 386 225
+56e82 6 145 212
+56e88 c 351 218
+56e94 6 387 225
+56e9a a 389 225
+56ea4 e 59 227
+56eb2 2 65 238
+56eb4 2 400 237
+56eb6 2 139 212
+56eb8 2 138 212
+56eba 2 400 237
+56ebc 2 139 212
+56ebe 6 392 225
+56ec4 2 396 225
+56ec6 2 395 225
+56ec8 4 398 225
+56ecc 4 396 225
+56ed0 6 398 225
+56ed6 4 482 200
+56eda 2 480 200
+56edc e 482 200
+56eea 2 480 200
+56eec 2 62 229
+56eee 6 200 235
+56ef4 8 200 235
+56efc 2 200 235
+56efe a 480 200
+56f08 4 482 200
+56f0c 4 403 225
+56f10 2 213 200
+56f12 4 482 200
+56f16 2 403 225
+56f18 a 482 200
+56f22 36 403 225
+56f58 a 213 200
+56f62 4 214 200
+56f66 4 62 229
+56f6a 6 200 235
+56f70 8 200 235
+56f78 2 200 235
+56f7a 8 200 235
+56f82 8 62 229
+56f8a 4 213 200
+56f8e 12 218 200
+56fa0 6 156 238
+56fa6 8 407 225
+56fae a 200 235
+56fb8 a 62 229
+56fc2 12 60 227
+56fd4 2 65 238
+56fd6 2 400 237
+56fd8 2 139 212
+56fda 2 138 212
+56fdc 2 400 237
+56fde 2 139 212
+56fe0 1c 392 225
+56ffc 2 213 200
+56ffe 1e 392 225
+5701c a 213 200
+57026 4 214 200
+5702a 4 62 229
+5702e 6 200 235
+57034 8 200 235
+5703c 2 200 235
+5703e 8 200 235
+57046 a 62 229
+57050 16 398 225
+57066 2 213 200
+57068 1a 398 225
+57082 a 213 200
+5708c 4 214 200
+57090 6 62 229
+57096 6 200 235
+5709c 8 200 235
+570a4 2 200 235
+570a6 8 200 235
+570ae a 62 229
+570b8 4 213 200
+570bc 4 218 200
+570c0 2 480 200
+570c2 2 399 225
+570c4 e 218 200
+570d2 16 399 225
+570e8 2 480 200
+570ea 2 62 229
+570ec 6 200 235
+570f2 8 200 235
+570fa 2 200 235
+570fc 4 480 200
+57100 14 482 200
+57114 a 200 235
+5711e a 62 229
+57128 a 156 238
+57132 e 387 225
+FUNC 57140 46 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, bool) const
+57140 4 420 225
+57144 e 420 225
+57152 2 422 225
+57154 4 420 225
+57158 4 422 225
+5715c 10 426 225
+5716c 6 427 225
+57172 14 424 225
+FUNC 57188 154 0 std::pair<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool> std::priv::__get_string<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t*>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t*, wchar_t*)
+57188 6 51 220
+5718e a 51 220
+57198 2 53 220
+5719a 4 51 220
+5719e 16 53 220
+571b4 2 69 215
+571b6 2 75 215
+571b8 4 90 215
+571bc 4 77 215
+571c0 4 90 215
+571c4 4 53 220
+571c8 4 53 220
+571cc 6 90 215
+571d2 a 53 220
+571dc 6 57 220
+571e2 c 57 220
+571ee 10 57 220
+571fe 4 62 230
+57202 4 57 220
+57206 4 62 230
+5720a 8 58 220
+57212 6 235 235
+57218 4 764 186
+5721c 2 235 235
+5721e a 191 246
+57228 4 95 215
+5722c 6 235 235
+57232 4 764 186
+57236 2 235 235
+57238 c 191 246
+57244 4 95 215
+57248 6 235 235
+5724e 4 764 186
+57252 2 235 235
+57254 4 191 246
+57258 4 53 220
+5725c 8 191 246
+57264 2 95 215
+57266 4 53 220
+5726a 8 229 235
+57272 2 229 235
+57274 2 69 215
+57276 4 229 235
+5727a 10 235 235
+5728a 4 229 235
+5728e 2 69 215
+57290 16 229 235
+572a6 36 235 235
+FUNC 572e0 168 0 bool std::priv::__get_integer<wchar_t*, long double, wchar_t>(wchar_t*&, wchar_t*&, int, long double&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+572e0 a 178 223
+572ea 8 188 223
+572f2 a 178 223
+572fc 6 190 223
+57302 2 183 223
+57304 4 188 223
+57308 2 183 223
+5730a 6 190 223
+57310 4 183 223
+57314 4 178 223
+57318 2 190 223
+5731a 4 188 223
+5731e 6 183 223
+57324 2 190 223
+57326 4 178 223
+5732a 12 190 223
+5733c 8 211 223
+57344 4 212 223
+57348 4 211 223
+5734c 6 212 223
+57352 4 213 223
+57356 a 213 223
+57360 6 214 223
+57366 2 213 223
+57368 4 190 223
+5736c 6 190 223
+57372 2 192 223
+57374 2 194 223
+57376 2 194 223
+57378 6 195 223
+5737e 4 196 223
+57382 2 194 223
+57384 4 52 223
+57388 2 52 223
+5738a 4 202 223
+5738e 4 208 223
+57392 4 206 223
+57396 4 205 223
+5739a 4 206 223
+5739e 8 208 223
+573a6 2 209 223
+573a8 4 190 223
+573ac c 190 223
+573b8 6 218 223
+573be 4 218 223
+573c2 6 219 223
+573c8 6 223 223
+573ce 2 224 223
+573d0 12 224 223
+573e2 2 233 223
+573e4 a 234 223
+573ee 8 214 223
+573f6 c 52 223
+57402 6 214 223
+57408 6 224 223
+5740e 4 224 223
+57412 6 224 223
+57418 2 233 223
+5741a 6 233 223
+57420 2 65 238
+57422 a 233 223
+5742c 1c 224 223
+FUNC 57448 134 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >& std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::assign<char const*>(char const*, char const*)
+57448 4 595 237
+5744c 2 595 237
+5744e 2 579 237
+57450 4 595 237
+57454 4 66 238
+57458 2 579 237
+5745a 2 90 238
+5745c a 579 237
+57466 4 764 186
+5746a 2 579 237
+5746c 4 232 246
+57470 2 581 237
+57472 2 582 237
+57474 2 579 237
+57476 2 90 238
+57478 8 579 237
+57480 2 74 238
+57482 4 355 216
+57486 2 74 238
+57488 4 74 238
+5748c 4 472 237
+57490 2 764 186
+57492 2 482 237
+57494 2 107 243
+57496 2 232 246
+57498 2 90 238
+5749a 2 107 243
+5749c 2 483 237
+5749e 8 106 243
+574a6 4 101 205
+574aa 6 485 237
+574b0 6 598 237
+574b6 2 400 237
+574b8 e 304 237
+574c6 a 306 237
+574d0 4 307 237
+574d4 4 307 237
+574d8 e 134 222
+574e6 2 107 243
+574e8 4 107 243
+574ec 2 107 243
+574ee c 106 243
+574fa 2 107 243
+574fc 8 106 243
+57504 4 101 205
+57508 2 107 243
+5750a 4 64 238
+5750e 4 96 238
+57512 2 96 238
+57514 6 97 238
+5751a 4 70 213
+5751e 2 97 238
+57520 2 135 222
+57522 4 161 201
+57526 4 161 201
+5752a 2 479 237
+5752c 2 164 238
+5752e 2 160 238
+57530 2 598 237
+57532 4 165 238
+57536 4 598 237
+5753a 4 307 237
+5753e 4 64 213
+57542 6 67 213
+57548 4 64 213
+5754c 6 135 222
+57552 6 74 238
+57558 2 90 238
+5755a 4 803 237
+5755e 2 168 246
+57560 2 806 237
+57562 2 598 237
+57564 2 168 246
+57566 6 806 237
+5756c 4 598 237
+57570 c 600 236
+FUNC 5757c 8c4 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__money_do_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >, std::string, std::string>(std::ostreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, char, std::string const&, bool, std::string*)
+5757c 8 316 220
+57584 c 316 220
+57590 4 145 212
+57594 6 316 220
+5759a 4 145 212
+5759e 8 316 220
+575a6 8 145 212
+575ae 2a 351 218
+575d8 2 101 206
+575da 2 351 218
+575dc 2c 101 206
+57608 2 336 220
+5760a 2 101 206
+5760c 4 336 220
+57610 8 92 221
+57618 2 93 221
+5761a 2 92 221
+5761c 6 93 221
+57622 6 94 221
+57628 2 93 221
+5762a c 94 221
+57636 8 98 221
+5763e 4 95 221
+57642 2 98 221
+57644 a 95 221
+5764e 4 65 238
+57652 4 89 238
+57656 4 354 220
+5765a 12 360 220
+5766c 2 361 220
+5766e 2 362 220
+57670 2 368 220
+57672 2 368 220
+57674 6 368 220
+5767a 2 137 221
+5767c 6 368 220
+57682 10 137 221
+57692 8 385 220
+5769a 4 387 220
+5769e 8 79 206
+576a6 6 387 220
+576ac 2 316 220
+576ae 2 387 220
+576b0 a 390 220
+576ba 12 156 238
+576cc 6 498 220
+576d2 a 499 220
+576dc 8 132 221
+576e4 2 133 221
+576e6 2 132 221
+576e8 6 133 221
+576ee 6 134 221
+576f4 2 133 221
+576f6 c 134 221
+57702 8 138 221
+5770a 4 135 221
+5770e 2 138 221
+57710 a 135 221
+5771a 4 65 238
+5771e 4 89 238
+57722 4 354 220
+57726 c 355 220
+57732 2 388 220
+57734 4 387 220
+57738 8 79 206
+57740 4 387 220
+57744 8 389 220
+5774c 4 120 238
+57750 8 108 213
+57758 4 41 213
+5775c 4 108 213
+57760 8 41 213
+57768 4 120 238
+5776c 4 41 213
+57770 6 124 238
+57776 4 481 201
+5777a 4 124 238
+5777e 4 90 238
+57782 2 101 205
+57784 4 397 220
+57788 2 101 205
+5778a c 397 220
+57796 a 398 220
+577a0 4 400 237
+577a4 2 399 220
+577a6 4 400 237
+577aa 2 399 220
+577ac 2 400 237
+577ae 1a 399 220
+577c8 4 66 238
+577cc 4 90 238
+577d0 2 400 237
+577d2 6 413 220
+577d8 4 400 237
+577dc 4 136 212
+577e0 2 400 237
+577e2 2 416 220
+577e4 2 418 220
+577e6 2 136 212
+577e8 2 418 220
+577ea 2 419 220
+577ec a 421 220
+577f6 2 422 220
+577f8 8 400 237
+57800 2 423 220
+57802 2 427 220
+57804 2 427 220
+57806 4 427 220
+5780a 2 100 221
+5780c 6 427 220
+57812 1a 100 221
+5782c 2 427 220
+5782e 4 100 221
+57832 2 427 220
+57834 6 100 221
+5783a 4 427 220
+5783e 2 437 220
+57840 4 100 221
+57844 4 427 220
+57848 6 437 220
+5784e 2 444 220
+57850 2 439 220
+57852 2 444 220
+57854 4 446 220
+57858 2 444 220
+5785a 2 444 220
+5785c 4 446 220
+57860 2 444 220
+57862 4 446 220
+57866 2 97 221
+57868 4 368 220
+5786c 12 97 221
+5787e 2 140 221
+57880 6 427 220
+57886 1a 139 221
+578a0 2 427 220
+578a2 a 139 221
+578ac 2 427 220
+578ae 4 139 221
+578b2 2 427 220
+578b4 8 437 220
+578bc 6 437 220
+578c2 4 444 220
+578c6 4 446 220
+578ca 2 444 220
+578cc 2 448 220
+578ce 8 446 220
+578d6 6 448 220
+578dc 8 448 220
+578e4 2 480 220
+578e6 2 444 220
+578e8 2 477 220
+578ea 4 480 220
+578ee 2 477 220
+578f0 8 480 220
+578f8 2 477 220
+578fa 2 480 220
+578fc 2 477 220
+578fe 1a 454 220
+57918 e 136 221
+57926 e 96 221
+57934 4 462 220
+57938 1e 463 220
+57956 c 471 220
+57962 2 452 220
+57964 4 452 220
+57968 4 400 237
+5796c 2 65 238
+5796e 2 400 237
+57970 1c 492 220
+5798c 2 493 220
+5798e 2 213 200
+57990 4 492 220
+57994 2 213 200
+57996 12 492 220
+579a8 8 213 200
+579b0 4 214 200
+579b4 4 62 229
+579b8 6 200 235
+579be 8 200 235
+579c6 2 200 235
+579c8 8 200 235
+579d0 8 62 229
+579d8 4 213 200
+579dc 10 218 200
+579ec c 493 220
+579f8 4 494 220
+579fc c 494 220
+57a08 4 64 238
+57a0c 8 498 220
+57a14 2 96 238
+57a16 4 498 220
+57a1a 4 96 238
+57a1e 6 96 238
+57a24 2 70 213
+57a26 4 97 238
+57a2a 6 70 213
+57a30 2 97 238
+57a32 2 135 222
+57a34 6 161 201
+57a3a 6 161 201
+57a40 6 62 229
+57a46 4 62 229
+57a4a a 200 235
+57a54 4 200 235
+57a58 2 62 229
+57a5a 6 200 235
+57a60 4 62 229
+57a64 1a 458 220
+57a7e 4 480 200
+57a82 6 458 220
+57a88 4 480 200
+57a8c c 458 220
+57a98 4 480 200
+57a9c 6 62 229
+57aa2 a 200 235
+57aac 8 200 235
+57ab4 4 480 200
+57ab8 12 482 200
+57aca e 459 220
+57ad8 8 470 220
+57ae0 c 473 220
+57aec a 62 229
+57af6 4 62 229
+57afa a 200 235
+57b04 8 200 235
+57b0c 4 62 229
+57b10 8 62 229
+57b18 a 200 235
+57b22 8 200 235
+57b2a 4 62 229
+57b2e 10 477 220
+57b3e 2 480 200
+57b40 6 62 229
+57b46 8 200 235
+57b4e 8 200 235
+57b56 4 480 200
+57b5a 2 482 200
+57b5c 2 477 220
+57b5e 8 478 220
+57b66 10 482 200
+57b76 8 477 220
+57b7e 6 478 220
+57b84 4 477 220
+57b88 a 478 220
+57b92 e 478 220
+57ba0 4 65 238
+57ba4 8 466 220
+57bac 4 62 229
+57bb0 2 467 220
+57bb2 2 62 229
+57bb4 4 62 229
+57bb8 a 200 235
+57bc2 2 62 229
+57bc4 6 200 235
+57bca 6 62 229
+57bd0 16 140 221
+57be6 2 427 220
+57be8 4 140 221
+57bec 2 427 220
+57bee a 140 221
+57bf8 4 427 220
+57bfc 4 140 221
+57c00 6 427 220
+57c06 1a 99 221
+57c20 2 427 220
+57c22 a 99 221
+57c2c 2 427 220
+57c2e 4 99 221
+57c32 4 427 220
+57c36 a 200 235
+57c40 c 62 229
+57c4c a 200 235
+57c56 c 62 229
+57c62 14 480 220
+57c76 8 480 220
+57c7e 2 62 229
+57c80 6 480 220
+57c86 2 62 229
+57c88 a 200 235
+57c92 4 200 235
+57c96 2 62 229
+57c98 6 200 235
+57c9e 4 62 229
+57ca2 16 483 220
+57cb8 c 483 220
+57cc4 6 494 220
+57cca 2 480 200
+57ccc c 494 220
+57cd8 2 480 200
+57cda 2 62 229
+57cdc 8 200 235
+57ce4 a 200 235
+57cee 8 480 200
+57cf6 10 482 200
+57d06 e 496 220
+57d14 a 200 235
+57d1e a 62 229
+57d28 18 471 220
+57d40 6 135 222
+57d46 2 480 200
+57d48 6 448 220
+57d4e 2 480 200
+57d50 c 448 220
+57d5c 4 480 200
+57d60 2 62 229
+57d62 8 200 235
+57d6a a 200 235
+57d74 4 480 200
+57d78 10 482 200
+57d88 e 450 220
+57d96 a 200 235
+57da0 a 62 229
+57daa 8 200 235
+57db2 6 62 229
+57db8 6 62 229
+57dbe 8 200 235
+57dc6 6 62 229
+57dcc 6 62 229
+57dd2 6 200 235
+57dd8 6 62 229
+57dde 6 62 229
+57de4 8 200 235
+57dec 8 62 229
+57df4 8 200 235
+57dfc c 62 229
+57e08 6 156 238
+57e0e c 498 220
+57e1a 26 156 238
+FUNC 57e40 32 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, char, std::string const&) const
+57e40 4 515 220
+57e44 8 515 220
+57e4c 20 518 220
+57e6c 6 519 220
+FUNC 57e74 8c4 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__money_do_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >, std::string, std::priv::__basic_iostring<char> >(std::ostreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, char, std::priv::__basic_iostring<char> const&, bool, std::string*)
+57e74 8 316 220
+57e7c c 316 220
+57e88 4 145 212
+57e8c 6 316 220
+57e92 4 145 212
+57e96 8 316 220
+57e9e 8 145 212
+57ea6 2a 351 218
+57ed0 2 101 206
+57ed2 2 351 218
+57ed4 2c 101 206
+57f00 2 336 220
+57f02 2 101 206
+57f04 4 336 220
+57f08 8 92 221
+57f10 2 93 221
+57f12 2 92 221
+57f14 6 93 221
+57f1a 6 94 221
+57f20 2 93 221
+57f22 c 94 221
+57f2e 8 98 221
+57f36 4 95 221
+57f3a 2 98 221
+57f3c a 95 221
+57f46 4 65 238
+57f4a 4 89 238
+57f4e 4 354 220
+57f52 12 360 220
+57f64 2 361 220
+57f66 2 362 220
+57f68 2 368 220
+57f6a 2 368 220
+57f6c 6 368 220
+57f72 2 137 221
+57f74 6 368 220
+57f7a 10 137 221
+57f8a 8 385 220
+57f92 4 387 220
+57f96 8 79 206
+57f9e 6 387 220
+57fa4 2 316 220
+57fa6 2 387 220
+57fa8 a 390 220
+57fb2 12 156 238
+57fc4 6 498 220
+57fca a 499 220
+57fd4 8 132 221
+57fdc 2 133 221
+57fde 2 132 221
+57fe0 6 133 221
+57fe6 6 134 221
+57fec 2 133 221
+57fee c 134 221
+57ffa 8 138 221
+58002 4 135 221
+58006 2 138 221
+58008 a 135 221
+58012 4 65 238
+58016 4 89 238
+5801a 4 354 220
+5801e c 355 220
+5802a 2 388 220
+5802c 4 387 220
+58030 8 79 206
+58038 4 387 220
+5803c 8 389 220
+58044 4 120 238
+58048 8 108 213
+58050 4 41 213
+58054 4 108 213
+58058 8 41 213
+58060 4 120 238
+58064 4 41 213
+58068 6 124 238
+5806e 4 481 201
+58072 4 124 238
+58076 4 90 238
+5807a 2 101 205
+5807c 4 397 220
+58080 2 101 205
+58082 c 397 220
+5808e a 398 220
+58098 4 400 237
+5809c 2 399 220
+5809e 4 400 237
+580a2 2 399 220
+580a4 2 400 237
+580a6 1a 399 220
+580c0 4 66 238
+580c4 4 90 238
+580c8 2 400 237
+580ca 6 413 220
+580d0 4 400 237
+580d4 4 136 212
+580d8 2 400 237
+580da 2 416 220
+580dc 2 418 220
+580de 2 136 212
+580e0 2 418 220
+580e2 2 419 220
+580e4 a 421 220
+580ee 2 422 220
+580f0 8 400 237
+580f8 2 423 220
+580fa 2 427 220
+580fc 2 427 220
+580fe 4 427 220
+58102 2 100 221
+58104 6 427 220
+5810a 1a 100 221
+58124 2 427 220
+58126 4 100 221
+5812a 2 427 220
+5812c 6 100 221
+58132 4 427 220
+58136 2 437 220
+58138 4 100 221
+5813c 4 427 220
+58140 6 437 220
+58146 2 444 220
+58148 2 439 220
+5814a 2 444 220
+5814c 4 446 220
+58150 2 444 220
+58152 2 444 220
+58154 4 446 220
+58158 2 444 220
+5815a 4 446 220
+5815e 2 97 221
+58160 4 368 220
+58164 12 97 221
+58176 2 140 221
+58178 6 427 220
+5817e 1a 139 221
+58198 2 427 220
+5819a a 139 221
+581a4 2 427 220
+581a6 4 139 221
+581aa 2 427 220
+581ac 8 437 220
+581b4 6 437 220
+581ba 4 444 220
+581be 4 446 220
+581c2 2 444 220
+581c4 2 448 220
+581c6 8 446 220
+581ce 6 448 220
+581d4 8 448 220
+581dc 2 480 220
+581de 2 444 220
+581e0 2 477 220
+581e2 4 480 220
+581e6 2 477 220
+581e8 8 480 220
+581f0 2 477 220
+581f2 2 480 220
+581f4 2 477 220
+581f6 1a 454 220
+58210 e 136 221
+5821e e 96 221
+5822c 4 462 220
+58230 1e 463 220
+5824e c 471 220
+5825a 2 452 220
+5825c 4 452 220
+58260 4 400 237
+58264 2 65 238
+58266 2 400 237
+58268 1c 492 220
+58284 2 493 220
+58286 2 213 200
+58288 4 492 220
+5828c 2 213 200
+5828e 12 492 220
+582a0 8 213 200
+582a8 4 214 200
+582ac 4 62 229
+582b0 6 200 235
+582b6 8 200 235
+582be 2 200 235
+582c0 8 200 235
+582c8 8 62 229
+582d0 4 213 200
+582d4 10 218 200
+582e4 c 493 220
+582f0 4 494 220
+582f4 c 494 220
+58300 4 64 238
+58304 8 498 220
+5830c 2 96 238
+5830e 4 498 220
+58312 4 96 238
+58316 6 96 238
+5831c 2 70 213
+5831e 4 97 238
+58322 6 70 213
+58328 2 97 238
+5832a 2 135 222
+5832c 6 161 201
+58332 6 161 201
+58338 6 62 229
+5833e 4 62 229
+58342 a 200 235
+5834c 4 200 235
+58350 2 62 229
+58352 6 200 235
+58358 4 62 229
+5835c 1a 458 220
+58376 4 480 200
+5837a 6 458 220
+58380 4 480 200
+58384 c 458 220
+58390 4 480 200
+58394 6 62 229
+5839a a 200 235
+583a4 8 200 235
+583ac 4 480 200
+583b0 12 482 200
+583c2 e 459 220
+583d0 8 470 220
+583d8 c 473 220
+583e4 a 62 229
+583ee 4 62 229
+583f2 a 200 235
+583fc 8 200 235
+58404 4 62 229
+58408 8 62 229
+58410 a 200 235
+5841a 8 200 235
+58422 4 62 229
+58426 10 477 220
+58436 2 480 200
+58438 6 62 229
+5843e 8 200 235
+58446 8 200 235
+5844e 4 480 200
+58452 2 482 200
+58454 2 477 220
+58456 8 478 220
+5845e 10 482 200
+5846e 8 477 220
+58476 6 478 220
+5847c 4 477 220
+58480 a 478 220
+5848a e 478 220
+58498 4 65 238
+5849c 8 466 220
+584a4 4 62 229
+584a8 2 467 220
+584aa 2 62 229
+584ac 4 62 229
+584b0 a 200 235
+584ba 2 62 229
+584bc 6 200 235
+584c2 6 62 229
+584c8 16 140 221
+584de 2 427 220
+584e0 4 140 221
+584e4 2 427 220
+584e6 a 140 221
+584f0 4 427 220
+584f4 4 140 221
+584f8 6 427 220
+584fe 1a 99 221
+58518 2 427 220
+5851a a 99 221
+58524 2 427 220
+58526 4 99 221
+5852a 4 427 220
+5852e a 200 235
+58538 c 62 229
+58544 a 200 235
+5854e c 62 229
+5855a 14 480 220
+5856e 8 480 220
+58576 2 62 229
+58578 6 480 220
+5857e 2 62 229
+58580 a 200 235
+5858a 4 200 235
+5858e 2 62 229
+58590 6 200 235
+58596 4 62 229
+5859a 16 483 220
+585b0 c 483 220
+585bc 6 494 220
+585c2 2 480 200
+585c4 c 494 220
+585d0 2 480 200
+585d2 2 62 229
+585d4 8 200 235
+585dc a 200 235
+585e6 8 480 200
+585ee 10 482 200
+585fe e 496 220
+5860c a 200 235
+58616 a 62 229
+58620 18 471 220
+58638 6 135 222
+5863e 2 480 200
+58640 6 448 220
+58646 2 480 200
+58648 c 448 220
+58654 4 480 200
+58658 2 62 229
+5865a 8 200 235
+58662 a 200 235
+5866c 4 480 200
+58670 10 482 200
+58680 e 450 220
+5868e a 200 235
+58698 a 62 229
+586a2 8 200 235
+586aa 6 62 229
+586b0 6 62 229
+586b6 8 200 235
+586be 6 62 229
+586c4 6 62 229
+586ca 6 200 235
+586d0 6 62 229
+586d6 6 62 229
+586dc 8 200 235
+586e4 8 62 229
+586ec 8 200 235
+586f4 c 62 229
+58700 6 156 238
+58706 c 498 220
+58712 26 156 238
+FUNC 58738 9c 0 std::money_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, char, long double) const
+58738 6 505 220
+5873e 2 505 220
+58740 2 41 213
+58742 2 120 238
+58744 2 108 213
+58746 6 505 220
+5874c a 108 213
+58756 8 41 213
+5875e 2 120 238
+58760 4 41 213
+58764 6 124 238
+5876a 4 481 201
+5876e 4 124 238
+58772 2 90 238
+58774 2 101 205
+58776 2 128 225
+58778 2 101 205
+5877a 8 128 225
+58782 20 510 220
+587a2 4 64 238
+587a6 4 96 238
+587aa 2 96 238
+587ac 2 70 213
+587ae 2 97 238
+587b0 2 70 213
+587b2 2 97 238
+587b4 4 161 201
+587b8 4 161 201
+587bc 8 511 220
+587c4 6 135 222
+587ca a 156 238
+FUNC 587d8 168 0 bool std::priv::__get_integer<char*, long double, char>(char*&, char*&, int, long double&, int, bool, char, std::string const&, std::__false_type const&)
+587d8 a 178 223
+587e2 8 188 223
+587ea a 178 223
+587f4 6 190 223
+587fa 2 183 223
+587fc 4 188 223
+58800 2 183 223
+58802 6 190 223
+58808 4 183 223
+5880c 4 178 223
+58810 2 190 223
+58812 4 188 223
+58816 6 183 223
+5881c 2 190 223
+5881e 4 178 223
+58822 12 190 223
+58834 8 211 223
+5883c 4 212 223
+58840 4 211 223
+58844 6 212 223
+5884a 4 213 223
+5884e a 213 223
+58858 6 214 223
+5885e 2 213 223
+58860 4 190 223
+58864 6 190 223
+5886a 2 192 223
+5886c 2 194 223
+5886e 2 194 223
+58870 6 195 223
+58876 4 196 223
+5887a 2 194 223
+5887c 4 52 223
+58880 2 52 223
+58882 4 202 223
+58886 4 208 223
+5888a 4 206 223
+5888e 4 205 223
+58892 4 206 223
+58896 8 208 223
+5889e 2 209 223
+588a0 4 190 223
+588a4 c 190 223
+588b0 6 218 223
+588b6 4 218 223
+588ba 6 219 223
+588c0 6 223 223
+588c6 2 224 223
+588c8 12 224 223
+588da 2 233 223
+588dc a 234 223
+588e6 8 214 223
+588ee c 52 223
+588fa 6 214 223
+58900 6 224 223
+58906 4 224 223
+5890a 6 224 223
+58910 2 233 223
+58912 6 233 223
+58918 2 65 238
+5891a a 233 223
+58924 1c 224 223
+FUNC 58940 1e8 0 unsigned int std::priv::__match<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const*>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const*)
+58940 6 78 241
+58946 2 78 241
+58948 2 87 241
+5894a 2 78 241
+5894c 2 80 241
+5894e 2 87 241
+58950 4 95 215
+58954 2 80 241
+58956 2 78 241
+58958 2 82 241
+5895a 2 81 241
+5895c 4 80 241
+58960 4 87 241
+58964 4 80 241
+58968 4 87 241
+5896c 4 80 241
+58970 4 87 241
+58974 8 80 241
+5897c 4 85 241
+58980 2 83 241
+58982 2 75 215
+58984 8 90 215
+5898c a 77 215
+58996 a 90 215
+589a0 6 89 241
+589a6 6 91 241
+589ac 18 78 241
+589c4 6 92 241
+589ca 2 115 241
+589cc c 115 241
+589d8 4 91 241
+589dc 2 68 215
+589de 8 229 235
+589e6 4 229 235
+589ea 2 69 215
+589ec 8 120 241
+589f4 4 69 215
+589f8 4 90 215
+589fc 2 65 238
+589fe 2 90 215
+58a00 6 93 241
+58a06 2 107 241
+58a08 6 108 241
+58a0e 4 110 241
+58a12 4 107 241
+58a16 2 110 241
+58a18 8 124 241
+58a20 2 92 215
+58a22 6 235 235
+58a28 4 764 186
+58a2c 2 235 235
+58a2e 4 191 246
+58a32 2 93 215
+58a34 2 191 246
+58a36 4 95 215
+58a3a 6 191 246
+58a40 2 65 238
+58a42 6 93 241
+58a48 6 400 237
+58a4e 6 94 241
+58a54 6 104 241
+58a5a 14 235 235
+58a6e 2 96 241
+58a70 6 97 241
+58a76 4 99 241
+58a7a 4 96 241
+58a7e 2 99 241
+58a80 4 93 241
+58a84 6 235 235
+58a8a 4 764 186
+58a8e 2 235 235
+58a90 2 93 215
+58a92 a 191 246
+58a9c 2 93 215
+58a9e 4 95 215
+58aa2 4 94 215
+58aa6 6 235 235
+58aac 4 764 186
+58ab0 2 235 235
+58ab2 4 191 246
+58ab6 2 93 215
+58ab8 2 191 246
+58aba 4 95 215
+58abe 6 191 246
+58ac4 e 77 215
+58ad2 12 229 235
+58ae4 20 235 235
+58b04 6 91 241
+58b0a 2 68 215
+58b0c 8 229 235
+58b14 4 229 235
+58b18 2 69 215
+58b1a 2 93 241
+58b1c 2 69 215
+58b1e 2 101 241
+58b20 8 229 235
+FUNC 58b28 84 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >::equal(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > const&) const
+58b28 4 74 215
+58b2c 2 75 215
+58b2e 2 74 215
+58b30 2 75 215
+58b32 4 90 215
+58b36 4 77 215
+58b3a 6 90 215
+58b40 2 79 215
+58b42 c 79 215
+58b4e 4 80 215
+58b52 6 235 235
+58b58 4 764 186
+58b5c 2 235 235
+58b5e 4 191 246
+58b62 2 93 215
+58b64 6 191 246
+58b6a 2 95 215
+58b6c 2 94 215
+58b6e 4 95 215
+58b72 6 235 235
+58b78 4 764 186
+58b7c 2 235 235
+58b7e 4 191 246
+58b82 2 93 215
+58b84 a 191 246
+58b8e 6 95 215
+58b94 18 235 235
+FUNC 58bac 78 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_monthname(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, tm*) const
+58bac 4 384 241
+58bb0 8 292 241
+58bb8 2 384 241
+58bba 6 292 241
+58bc0 6 384 241
+58bc6 8 292 241
+58bce 2 384 241
+58bd0 4 292 241
+58bd4 4 293 241
+58bd8 18 294 241
+58bf0 2 390 241
+58bf2 2 294 241
+58bf4 2 390 241
+58bf6 a 396 241
+58c00 a 397 241
+58c0a 2 392 241
+58c0c 2 112 215
+58c0e 2 392 241
+58c10 6 112 215
+58c16 4 393 241
+58c1a a 394 241
+FUNC 58c24 76 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_weekday(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, tm*) const
+58c24 4 367 241
+58c28 8 281 241
+58c30 6 367 241
+58c36 4 281 241
+58c3a 2 367 241
+58c3c 4 281 241
+58c40 2 367 241
+58c42 4 281 241
+58c46 4 282 241
+58c4a 1c 283 241
+58c66 2 373 241
+58c68 2 283 241
+58c6a 2 373 241
+58c6c a 379 241
+58c76 a 380 241
+58c80 2 375 241
+58c82 2 112 215
+58c84 2 375 241
+58c86 6 112 215
+58c8c 4 376 241
+58c90 a 377 241
+FUNC 58c9c 284 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_alphabool<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, bool&, wchar_t*)
+58c9c 4 449 223
+58ca0 2 145 212
+58ca2 2 449 223
+58ca4 2 449 223
+58ca6 2 145 212
+58ca8 4 449 223
+58cac 8 145 212
+58cb4 c 351 218
+58cc0 6 451 223
+58cc6 a 88 227
+58cd0 2 89 227
+58cd2 2 88 227
+58cd4 2 89 227
+58cd6 2 88 227
+58cd8 16 89 227
+58cee 2 95 215
+58cf0 2 69 215
+58cf2 2 75 215
+58cf4 8 90 215
+58cfc 4 77 215
+58d00 a 90 215
+58d0a 6 458 223
+58d10 10 90 215
+58d20 6 460 223
+58d26 4 460 223
+58d2a 10 449 223
+58d3a 6 461 223
+58d40 4 461 223
+58d44 10 449 223
+58d54 2 462 223
+58d56 6 464 223
+58d5c a 400 237
+58d66 6 464 223
+58d6c 4 229 235
+58d70 4 229 235
+58d74 4 69 215
+58d78 6 471 223
+58d7e 6 400 237
+58d84 e 449 223
+58d92 6 472 223
+58d98 6 400 237
+58d9e e 449 223
+58dac 6 474 223
+58db2 8 474 223
+58dba 6 475 223
+58dc0 6 476 223
+58dc6 8 112 215
+58dce 2 481 223
+58dd0 a 482 223
+58dda 6 484 223
+58de0 2 64 238
+58de2 4 484 223
+58de6 6 96 238
+58dec 2 96 238
+58dee 2 97 238
+58df0 2 135 222
+58df2 2 97 238
+58df4 4 323 201
+58df8 4 161 201
+58dfc 4 161 201
+58e00 2 64 238
+58e02 6 96 238
+58e08 2 96 238
+58e0a 4 97 238
+58e0e 4 323 201
+58e12 4 161 201
+58e16 4 161 201
+58e1a 8 485 223
+58e22 6 235 235
+58e28 4 764 186
+58e2c 2 235 235
+58e2e 4 191 246
+58e32 2 93 215
+58e34 2 191 246
+58e36 4 95 215
+58e3a 4 191 246
+58e3e 4 94 215
+58e42 6 464 223
+58e48 a 400 237
+58e52 6 464 223
+58e58 2 229 235
+58e5a 4 464 223
+58e5e 2 229 235
+58e60 8 229 235
+58e68 6 464 223
+58e6e 4 229 235
+58e72 4 229 235
+58e76 8 69 215
+58e7e 6 235 235
+58e84 4 764 186
+58e88 2 235 235
+58e8a 4 191 246
+58e8e 2 93 215
+58e90 4 191 246
+58e94 4 95 215
+58e98 a 191 246
+58ea2 a 229 235
+58eac 6 235 235
+58eb2 4 764 186
+58eb6 2 235 235
+58eb8 4 191 246
+58ebc 2 93 215
+58ebe 2 191 246
+58ec0 4 95 215
+58ec4 8 191 246
+58ecc 20 235 235
+58eec c 135 222
+58ef8 8 479 223
+58f00 a 451 223
+58f0a 16 156 238
+FUNC 58f20 1ce 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, int&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+58f20 6 178 223
+58f26 4 178 223
+58f2a 2 183 223
+58f2c 4 186 223
+58f30 2 185 223
+58f32 2 178 223
+58f34 4 188 223
+58f38 2 183 223
+58f3a 4 95 215
+58f3e 4 183 223
+58f42 2 188 223
+58f44 2 178 223
+58f46 4 183 223
+58f4a 4 178 223
+58f4e 6 183 223
+58f54 a 188 223
+58f5e 2 186 223
+58f60 2 181 223
+58f62 2 186 223
+58f64 4 188 223
+58f68 2 75 215
+58f6a 8 90 215
+58f72 4 77 215
+58f76 8 90 215
+58f7e 6 190 223
+58f84 8 90 215
+58f8c 6 194 223
+58f92 6 194 223
+58f98 6 52 223
+58f9e 2 52 223
+58fa0 4 202 223
+58fa4 2 208 223
+58fa6 2 206 223
+58fa8 4 205 223
+58fac 2 208 223
+58fae 2 206 223
+58fb0 2 208 223
+58fb2 4 211 223
+58fb6 4 212 223
+58fba 6 213 223
+58fc0 6 213 223
+58fc6 4 213 223
+58fca 2 68 215
+58fcc 8 229 235
+58fd4 4 229 235
+58fd8 6 69 215
+58fde 6 235 235
+58fe4 4 764 186
+58fe8 2 235 235
+58fea 4 191 246
+58fee 2 93 215
+58ff0 2 191 246
+58ff2 4 95 215
+58ff6 4 191 246
+58ffa 2 94 215
+58ffc 8 190 223
+59004 6 218 223
+5900a 6 218 223
+59010 8 219 223
+59018 2 233 223
+5901a 6 223 223
+59020 6 224 223
+59026 2 224 223
+59028 2 233 223
+5902a 6 224 223
+59030 6 234 223
+59036 2 92 215
+59038 6 235 235
+5903e 4 764 186
+59042 2 235 235
+59044 4 191 246
+59048 2 93 215
+5904a 4 191 246
+5904e 4 95 215
+59052 8 191 246
+5905a 2 68 215
+5905c 4 209 223
+59060 8 229 235
+59068 a 229 235
+59072 4 211 223
+59076 6 235 235
+5907c 4 764 186
+59080 2 235 235
+59082 4 191 246
+59086 2 93 215
+59088 2 191 246
+5908a 4 95 215
+5908e 8 191 246
+59096 6 195 223
+5909c 2 196 223
+5909e 2 195 223
+590a0 2 197 223
+590a2 6 52 223
+590a8 18 235 235
+590c0 6 224 223
+590c6 2 224 223
+590c8 4 224 223
+590cc 2 224 223
+590ce 2 233 223
+590d0 6 233 223
+590d6 2 65 238
+590d8 4 233 223
+590dc 2 65 238
+590de 8 233 223
+590e6 8 224 223
+FUNC 590f0 4e 0 std::priv::__get_decimal_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int, wchar_t>
+590f0 4 239 223
+590f4 2 120 238
+590f6 4 239 223
+590fa 4 124 238
+590fe 2 239 223
+59100 2 120 238
+59102 2 481 201
+59104 4 124 238
+59108 4 101 205
+5910c 4 242 223
+59110 2 101 205
+59112 16 242 223
+59128 6 156 238
+5912e 6 243 223
+59134 a 156 238
+FUNC 59140 350 0 char const* std::priv::__get_formatted_time<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t, std::priv::_WTime_Info>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, char const*, char const*, wchar_t*, std::priv::_WTime_Info const&, std::ios_base const&, int&, tm*)
+59140 8 149 241
+59148 4 149 241
+5914c 2 145 212
+5914e 4 149 241
+59152 4 145 212
+59156 2 149 241
+59158 2 145 212
+5915a c 149 241
+59166 6 145 212
+5916c c 351 218
+59178 2 153 241
+5917a 4 231 241
+5917e 2 95 215
+59180 2 231 241
+59182 4 153 241
+59186 6 231 241
+5918c 4 75 215
+59190 a 90 215
+5919a 4 77 215
+5919e a 90 215
+591a8 8 156 241
+591b0 c 276 241
+591bc 6 235 235
+591c2 4 764 186
+591c6 4 235 235
+591ca 4 191 246
+591ce 2 93 215
+591d0 2 191 246
+591d2 4 95 215
+591d6 4 191 246
+591da 4 156 241
+591de 4 94 215
+591e2 4 156 241
+591e6 4 156 241
+591ea 8 158 241
+591f2 2 160 241
+591f4 6 161 241
+591fa 2 159 241
+591fc 7e 166 241
+5927a 2 157 241
+5927c 1c 171 241
+59298 4 172 241
+5929c 4 174 241
+592a0 4 272 241
+592a4 c 250 241
+592b0 6 251 241
+592b6 4 272 241
+592ba 10 231 241
+592ca 6 232 241
+592d0 6 235 241
+592d6 4 237 241
+592da 6 237 241
+592e0 6 238 241
+592e6 4 272 241
+592ea c 213 241
+592f6 a 214 241
+59300 2 215 241
+59302 4 215 241
+59306 4 215 241
+5930a a 216 241
+59314 2 217 241
+59316 c 206 241
+59322 6 207 241
+59328 4 272 241
+5932c c 190 241
+59338 2 191 241
+5933a 8 191 241
+59342 4 191 241
+59346 a 192 241
+59350 2 193 241
+59352 2 166 241
+59354 2 157 241
+59356 20 182 241
+59376 6 183 241
+5937c 4 185 241
+59380 4 272 241
+59384 c 257 241
+59390 e 258 241
+5939e 6 259 241
+593a4 4 272 241
+593a8 a 243 241
+593b2 6 244 241
+593b8 4 272 241
+593bc c 223 241
+593c8 6 224 241
+593ce 4 272 241
+593d2 c 199 241
+593de 6 200 241
+593e4 4 272 241
+593e8 2 166 241
+593ea 4 179 241
+593ee 2 166 241
+593f0 4 168 241
+593f4 8 269 241
+593fc 4 90 215
+59400 4 269 241
+59404 2 90 215
+59406 a 206 206
+59410 6 269 241
+59416 4 272 241
+5941a 6 235 235
+59420 4 764 186
+59424 2 235 235
+59426 4 191 246
+5942a 2 93 215
+5942c 2 191 246
+5942e 4 95 215
+59432 a 191 246
+5943c 2 92 215
+5943e 6 235 235
+59444 6 764 186
+5944a 2 235 235
+5944c a 235 235
+59456 2 163 241
+59458 4 162 241
+5945c 10 235 235
+5946c a 235 241
+59476 2 236 241
+59478 2 272 241
+5947a 6 236 241
+59480 10 153 241
+FUNC 59490 8a 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_date(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, tm*) const
+59490 8 304 241
+59498 2 315 241
+5949a 2 304 241
+5949c 4 89 238
+594a0 4 315 241
+594a4 2 304 241
+594a6 8 315 241
+594ae 6 304 241
+594b4 2 315 241
+594b6 4 304 241
+594ba 2c 315 241
+594e6 2 316 241
+594e8 4 317 241
+594ec 2 316 241
+594ee 2 319 241
+594f0 2 112 215
+594f2 2 319 241
+594f4 6 112 215
+594fa 2 320 241
+594fc 8 321 241
+59504 a 323 241
+5950e c 324 241
+FUNC 5951c 78 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_time(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, tm*) const
+5951c 6 328 241
+59522 2 338 241
+59524 4 328 241
+59528 8 338 241
+59530 4 328 241
+59534 2 89 238
+59536 2 338 241
+59538 4 328 241
+5953c 10 338 241
+5954c 2 328 241
+5954e 14 338 241
+59562 2 112 215
+59564 8 339 241
+5956c 2 112 215
+5956e 2 339 241
+59570 4 112 215
+59574 2 341 241
+59576 8 342 241
+5957e a 343 241
+59588 c 344 241
+FUNC 59594 6e 0 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get_year(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, tm*) const
+59594 4 348 241
+59598 2 348 241
+5959a 4 112 215
+5959e 8 348 241
+595a6 4 112 215
+595aa 2 351 241
+595ac 6 353 241
+595b2 4 352 241
+595b6 4 353 241
+595ba a 363 241
+595c4 c 356 241
+595d0 2 357 241
+595d2 2 112 215
+595d4 8 357 241
+595dc 8 358 241
+595e4 2 112 215
+595e6 2 358 241
+595e8 4 112 215
+595ec 2 359 241
+595ee 8 360 241
+595f6 c 362 241
+FUNC 59604 84 0 std::istreambuf_iterator<char, std::char_traits<char> >::equal(std::istreambuf_iterator<char, std::char_traits<char> > const&) const
+59604 4 74 215
+59608 2 75 215
+5960a 2 74 215
+5960c 2 75 215
+5960e 4 90 215
+59612 4 77 215
+59616 6 90 215
+5961c 2 79 215
+5961e c 79 215
+5962a 4 80 215
+5962e 6 235 235
+59634 4 223 246
+59638 2 235 235
+5963a 4 191 246
+5963e 2 220 246
+59640 6 191 246
+59646 2 95 215
+59648 2 94 215
+5964a 4 95 215
+5964e 6 235 235
+59654 4 223 246
+59658 2 235 235
+5965a 4 191 246
+5965e 2 220 246
+59660 a 191 246
+5966a 6 95 215
+59670 18 235 235
+FUNC 59688 178 0 unsigned int std::priv::__match<std::istreambuf_iterator<char, std::char_traits<char> >, std::string const*>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::string const*, std::string const*)
+59688 6 78 241
+5968e 2 78 241
+59690 4 107 241
+59694 2 78 241
+59696 2 80 241
+59698 2 78 241
+5969a 2 87 241
+5969c 2 80 241
+5969e 4 120 215
+596a2 2 82 241
+596a4 4 80 241
+596a8 2 87 241
+596aa 2 81 241
+596ac 2 87 241
+596ae 4 80 241
+596b2 4 87 241
+596b6 4 80 241
+596ba 4 87 241
+596be 8 80 241
+596c6 2 85 241
+596c8 2 83 241
+596ca 4 120 215
+596ce 4 89 241
+596d2 6 91 241
+596d8 10 78 241
+596e8 c 91 241
+596f4 a 92 241
+596fe 2 115 241
+59700 8 115 241
+59708 2 91 241
+5970a 8 115 241
+59712 6 91 241
+59718 2 68 215
+5971a 8 229 235
+59722 4 229 235
+59726 2 69 215
+59728 2 120 215
+5972a 2 69 215
+5972c 4 120 241
+59730 2 120 215
+59732 2 120 241
+59734 4 120 215
+59738 4 89 241
+5973c 8 124 241
+59744 4 90 215
+59748 2 65 238
+5974a 2 90 215
+5974c 6 93 241
+59752 2 107 241
+59754 6 108 241
+5975a 4 110 241
+5975e 4 107 241
+59762 4 110 241
+59766 2 92 215
+59768 6 235 235
+5976e 4 223 246
+59772 2 235 235
+59774 4 191 246
+59778 2 220 246
+5977a 2 191 246
+5977c 2 93 215
+5977e 4 191 246
+59782 4 95 215
+59786 2 191 246
+59788 2 65 238
+5978a 6 93 241
+59790 4 400 237
+59794 6 94 241
+5979a 6 104 241
+597a0 14 235 235
+597b4 2 96 241
+597b6 6 97 241
+597bc 4 99 241
+597c0 4 96 241
+597c4 2 99 241
+597c6 6 93 241
+597cc 10 229 235
+597dc 4 91 241
+597e0 2 68 215
+597e2 8 229 235
+597ea 4 229 235
+597ee 2 69 215
+597f0 4 93 241
+597f4 2 69 215
+597f6 2 101 241
+597f8 8 229 235
+FUNC 59800 6e 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_monthname(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, tm*) const
+59800 2 384 241
+59802 4 292 241
+59806 2 384 241
+59808 6 292 241
+5980e 6 384 241
+59814 8 292 241
+5981c 2 384 241
+5981e 4 292 241
+59822 2 384 241
+59824 4 293 241
+59828 18 294 241
+59840 2 390 241
+59842 2 294 241
+59844 2 390 241
+59846 8 396 241
+5984e 6 397 241
+59854 2 392 241
+59856 2 112 215
+59858 2 392 241
+5985a 6 112 215
+59860 4 393 241
+59864 a 394 241
+FUNC 59870 70 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_weekday(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, tm*) const
+59870 2 367 241
+59872 4 281 241
+59876 2 367 241
+59878 4 281 241
+5987c 2 367 241
+5987e 2 281 241
+59880 4 367 241
+59884 6 281 241
+5988a 2 367 241
+5988c 4 281 241
+59890 2 367 241
+59892 4 282 241
+59896 1c 283 241
+598b2 2 373 241
+598b4 2 283 241
+598b6 2 373 241
+598b8 8 379 241
+598c0 6 380 241
+598c6 2 375 241
+598c8 2 112 215
+598ca 2 375 241
+598cc 6 112 215
+598d2 4 376 241
+598d6 a 377 241
+FUNC 598e0 c0 0 std::pair<std::istreambuf_iterator<char, std::char_traits<char> >, bool> std::priv::__get_string<std::istreambuf_iterator<char, std::char_traits<char> >, char*>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, char*, char*)
+598e0 8 51 220
+598e8 2 51 220
+598ea 4 95 215
+598ee 8 51 220
+598f6 4 69 215
+598fa 6 51 220
+59900 8 120 215
+59908 2 69 215
+5990a 2 53 220
+5990c 4 53 220
+59910 a 90 215
+5991a 2 95 215
+5991c 6 53 220
+59922 4 57 220
+59926 4 57 220
+5992a 2 57 220
+5992c a 57 220
+59936 4 57 220
+5993a 4 62 230
+5993e c 58 220
+5994a 2 92 215
+5994c 6 235 235
+59952 4 223 246
+59956 2 235 235
+59958 4 191 246
+5995c 2 220 246
+5995e 2 191 246
+59960 4 93 215
+59964 4 191 246
+59968 2 53 220
+5996a 2 95 215
+5996c 4 191 246
+59970 2 53 220
+59972 4 95 215
+59976 2 53 220
+59978 2 68 215
+5997a 8 229 235
+59982 2 229 235
+59984 4 69 215
+59988 4 229 235
+5998c 6 229 235
+59992 6 69 215
+59998 8 235 235
+FUNC 599a0 198 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_alphabool<std::istreambuf_iterator<char, std::char_traits<char> >, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, bool&, char*)
+599a0 2 145 212
+599a2 6 449 223
+599a8 4 449 223
+599ac 4 145 212
+599b0 2 449 223
+599b2 6 145 212
+599b8 c 351 218
+599c4 6 451 223
+599ca a 59 227
+599d4 10 60 227
+599e4 2 95 215
+599e6 2 69 215
+599e8 8 120 215
+599f0 2 458 223
+599f2 a 90 215
+599fc 2 460 223
+599fe 2 460 223
+59a00 e 449 223
+59a0e 2 461 223
+59a10 2 461 223
+59a12 a 449 223
+59a1c 2 462 223
+59a1e 4 464 223
+59a22 6 400 237
+59a28 4 464 223
+59a2c 8 229 235
+59a34 4 229 235
+59a38 4 69 215
+59a3c 2 471 223
+59a3e 6 400 237
+59a44 8 449 223
+59a4c 2 472 223
+59a4e 6 400 237
+59a54 8 449 223
+59a5c 2 474 223
+59a5e 4 474 223
+59a62 6 475 223
+59a68 4 476 223
+59a6c 8 112 215
+59a74 2 481 223
+59a76 a 482 223
+59a80 8 484 223
+59a88 c 156 238
+59a94 8 485 223
+59a9c 4 464 223
+59aa0 6 400 237
+59aa6 4 464 223
+59aaa 2 229 235
+59aac 2 464 223
+59aae 6 229 235
+59ab4 8 229 235
+59abc 4 464 223
+59ac0 8 229 235
+59ac8 4 229 235
+59acc 6 69 215
+59ad2 2 92 215
+59ad4 6 235 235
+59ada 4 223 246
+59ade 2 235 235
+59ae0 4 191 246
+59ae4 2 220 246
+59ae6 4 191 246
+59aea 2 93 215
+59aec 4 191 246
+59af0 4 95 215
+59af4 4 191 246
+59af8 6 229 235
+59afe 6 69 215
+59b04 c 235 235
+59b10 8 479 223
+59b18 a 451 223
+59b22 16 156 238
+FUNC 59b38 158 0 std::priv::__copy_digits<std::istreambuf_iterator<char, std::char_traits<char> >, char>
+59b38 6 314 223
+59b3e 2 314 223
+59b40 2 316 223
+59b42 4 314 223
+59b46 4 70 213
+59b4a 4 314 223
+59b4e 2 101 205
+59b50 4 70 213
+59b54 4 90 215
+59b58 4 39 223
+59b5c 6 320 223
+59b62 2 74 238
+59b64 4 64 238
+59b68 4 74 238
+59b6c 2 74 238
+59b6e 8 74 238
+59b76 4 535 237
+59b7a 4 101 205
+59b7e 2 90 238
+59b80 4 232 246
+59b84 2 68 215
+59b86 2 539 237
+59b88 2 229 235
+59b8a 2 539 237
+59b8c 2 229 235
+59b8e 2 539 237
+59b90 4 229 235
+59b94 4 229 235
+59b98 2 322 223
+59b9a 4 69 215
+59b9e 8 120 215
+59ba6 2 318 223
+59ba8 6 90 215
+59bae 2 92 215
+59bb0 6 235 235
+59bb6 4 223 246
+59bba 2 235 235
+59bbc 4 191 246
+59bc0 4 220 246
+59bc4 2 191 246
+59bc6 4 93 215
+59bca 4 191 246
+59bce 4 95 215
+59bd2 4 39 223
+59bd6 2 191 246
+59bd8 6 320 223
+59bde 8 328 223
+59be6 8 229 235
+59bee 2 400 237
+59bf0 4 304 237
+59bf4 e 306 237
+59c02 6 307 237
+59c08 4 307 237
+59c0c 4 64 213
+59c10 6 67 213
+59c16 2 64 213
+59c18 2 86 243
+59c1a 4 84 243
+59c1e 2 86 243
+59c20 4 314 223
+59c24 2 84 243
+59c26 4 764 186
+59c2a 4 146 205
+59c2e 4 86 243
+59c32 4 101 205
+59c36 4 64 238
+59c3a 4 96 238
+59c3e 2 96 238
+59c40 2 70 213
+59c42 2 97 238
+59c44 4 70 213
+59c48 2 97 238
+59c4a 4 161 201
+59c4e 4 161 201
+59c52 4 175 236
+59c56 2 164 238
+59c58 2 160 238
+59c5a 6 165 238
+59c60 4 307 237
+59c64 12 134 222
+59c76 8 235 235
+59c7e 6 135 222
+59c84 c 600 236
+FUNC 59c90 17a 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, int, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, int&, int, bool, char, std::string const&, std::__false_type const&)
+59c90 6 178 223
+59c96 4 178 223
+59c9a 2 183 223
+59c9c 4 186 223
+59ca0 2 185 223
+59ca2 2 178 223
+59ca4 4 188 223
+59ca8 2 183 223
+59caa 2 196 223
+59cac 4 183 223
+59cb0 2 188 223
+59cb2 2 178 223
+59cb4 4 183 223
+59cb8 4 178 223
+59cbc 6 183 223
+59cc2 4 188 223
+59cc6 4 178 223
+59cca 2 186 223
+59ccc 2 120 215
+59cce 4 186 223
+59cd2 2 181 223
+59cd4 6 178 223
+59cda 2 188 223
+59cdc 6 120 215
+59ce2 4 190 223
+59ce6 8 90 215
+59cee 6 194 223
+59cf4 6 194 223
+59cfa 4 52 223
+59cfe 2 52 223
+59d00 4 202 223
+59d04 2 208 223
+59d06 2 206 223
+59d08 4 205 223
+59d0c 2 208 223
+59d0e 2 206 223
+59d10 2 208 223
+59d12 4 211 223
+59d16 4 212 223
+59d1a 6 213 223
+59d20 6 213 223
+59d26 4 213 223
+59d2a 2 68 215
+59d2c 8 229 235
+59d34 4 229 235
+59d38 4 69 215
+59d3c 8 120 215
+59d44 6 190 223
+59d4a 6 218 223
+59d50 6 218 223
+59d56 8 219 223
+59d5e 2 233 223
+59d60 6 223 223
+59d66 6 224 223
+59d6c 2 224 223
+59d6e 2 233 223
+59d70 6 224 223
+59d76 6 234 223
+59d7c 2 92 215
+59d7e 6 235 235
+59d84 4 223 246
+59d88 2 235 235
+59d8a 4 191 246
+59d8e 2 220 246
+59d90 4 191 246
+59d94 2 93 215
+59d96 4 191 246
+59d9a 2 95 215
+59d9c 2 191 246
+59d9e 4 95 215
+59da2 2 68 215
+59da4 4 209 223
+59da8 8 229 235
+59db0 6 229 235
+59db6 6 69 215
+59dbc 4 211 223
+59dc0 6 195 223
+59dc6 2 196 223
+59dc8 2 195 223
+59dca 2 197 223
+59dcc 6 52 223
+59dd2 a 235 235
+59ddc 6 224 223
+59de2 2 224 223
+59de4 4 224 223
+59de8 2 224 223
+59dea 2 233 223
+59dec 6 233 223
+59df2 2 65 238
+59df4 4 233 223
+59df8 2 65 238
+59dfa 8 233 223
+59e02 8 224 223
+FUNC 59e0c 4e 0 std::priv::__get_decimal_integer<std::istreambuf_iterator<char, std::char_traits<char> >, int, char>
+59e0c 4 239 223
+59e10 2 120 238
+59e12 4 239 223
+59e16 4 124 238
+59e1a 2 239 223
+59e1c 2 120 238
+59e1e 2 481 201
+59e20 4 124 238
+59e24 4 101 205
+59e28 4 242 223
+59e2c 2 101 205
+59e2e 16 242 223
+59e44 6 156 238
+59e4a 6 243 223
+59e50 a 156 238
+FUNC 59e5c 2d0 0 char const* std::priv::__get_formatted_time<std::istreambuf_iterator<char, std::char_traits<char> >, char, std::priv::_Time_Info>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, char const*, char const*, char*, std::priv::_Time_Info const&, std::ios_base const&, int&, tm*)
+59e5c 6 149 241
+59e62 4 149 241
+59e66 2 145 212
+59e68 4 149 241
+59e6c 4 145 212
+59e70 8 149 241
+59e78 2 145 212
+59e7a a 149 241
+59e84 6 145 212
+59e8a c 351 218
+59e96 6 153 241
+59e9c 4 257 241
+59ea0 4 231 241
+59ea4 2 257 241
+59ea6 2 231 241
+59ea8 8 120 215
+59eb0 2 156 241
+59eb2 8 276 241
+59eba 4 156 241
+59ebe 8 158 241
+59ec6 2 160 241
+59ec8 6 161 241
+59ece 2 159 241
+59ed0 7e 166 241
+59f4e 2 157 241
+59f50 1c 171 241
+59f6c 4 172 241
+59f70 4 174 241
+59f74 4 272 241
+59f78 a 250 241
+59f82 4 251 241
+59f86 4 272 241
+59f8a e 231 241
+59f98 4 232 241
+59f9c 6 235 241
+59fa2 4 237 241
+59fa6 6 237 241
+59fac 6 238 241
+59fb2 4 272 241
+59fb6 c 213 241
+59fc2 a 214 241
+59fcc 2 215 241
+59fce 4 215 241
+59fd2 4 215 241
+59fd6 a 216 241
+59fe0 2 217 241
+59fe2 c 206 241
+59fee 6 207 241
+59ff4 4 272 241
+59ff8 c 190 241
+5a004 2 191 241
+5a006 8 191 241
+5a00e 4 191 241
+5a012 a 192 241
+5a01c 2 193 241
+5a01e 2 166 241
+5a020 2 157 241
+5a022 20 182 241
+5a042 6 183 241
+5a048 4 185 241
+5a04c 4 272 241
+5a050 a 257 241
+5a05a e 258 241
+5a068 6 259 241
+5a06e 4 272 241
+5a072 a 243 241
+5a07c 6 244 241
+5a082 4 272 241
+5a086 c 223 241
+5a092 6 224 241
+5a098 4 272 241
+5a09c c 199 241
+5a0a8 6 200 241
+5a0ae 4 272 241
+5a0b2 2 166 241
+5a0b4 4 179 241
+5a0b8 2 166 241
+5a0ba 4 168 241
+5a0be 8 269 241
+5a0c6 4 90 215
+5a0ca 4 269 241
+5a0ce 2 90 215
+5a0d0 a 101 206
+5a0da 6 269 241
+5a0e0 4 272 241
+5a0e4 2 92 215
+5a0e6 6 235 235
+5a0ec 4 223 246
+5a0f0 2 235 235
+5a0f2 6 220 246
+5a0f8 6 235 235
+5a0fe 6 220 246
+5a104 2 163 241
+5a106 4 162 241
+5a10a a 235 241
+5a114 2 236 241
+5a116 2 272 241
+5a118 6 236 241
+5a11e e 153 241
+FUNC 5a12c 7c 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_date(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, tm*) const
+5a12c 6 304 241
+5a132 2 89 238
+5a134 8 315 241
+5a13c 2 304 241
+5a13e 2 315 241
+5a140 6 304 241
+5a146 14 315 241
+5a15a 2 304 241
+5a15c 1c 315 241
+5a178 2 316 241
+5a17a 6 317 241
+5a180 2 316 241
+5a182 2 319 241
+5a184 2 112 215
+5a186 2 319 241
+5a188 6 112 215
+5a18e 2 320 241
+5a190 8 321 241
+5a198 8 323 241
+5a1a0 8 324 241
+FUNC 5a1a8 74 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_time(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, tm*) const
+5a1a8 4 328 241
+5a1ac 2 89 238
+5a1ae 2 328 241
+5a1b0 a 338 241
+5a1ba 8 328 241
+5a1c2 30 338 241
+5a1f2 2 112 215
+5a1f4 8 339 241
+5a1fc 2 112 215
+5a1fe 2 339 241
+5a200 4 112 215
+5a204 2 341 241
+5a206 8 342 241
+5a20e 8 343 241
+5a216 6 344 241
+FUNC 5a21c 68 0 std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get_year(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, tm*) const
+5a21c 4 348 241
+5a220 2 348 241
+5a222 4 112 215
+5a226 a 348 241
+5a230 4 112 215
+5a234 2 351 241
+5a236 4 353 241
+5a23a 4 352 241
+5a23e 4 353 241
+5a242 6 363 241
+5a248 c 356 241
+5a254 2 357 241
+5a256 2 112 215
+5a258 8 357 241
+5a260 8 358 241
+5a268 2 112 215
+5a26a 2 358 241
+5a26c 4 112 215
+5a270 2 359 241
+5a272 8 360 241
+5a27a a 362 241
+FUNC 5a284 2b2 0 int std::priv::__get_base_or_zero<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, std::ctype<wchar_t> const&)
+5a284 6 56 223
+5a28a 8 56 223
+5a292 a 59 223
+5a29c 4 209 206
+5a2a0 2 59 223
+5a2a2 8 209 206
+5a2aa 8 90 215
+5a2b2 6 64 223
+5a2b8 8 68 223
+5a2c0 4 74 223
+5a2c4 c 76 223
+5a2d0 8 120 215
+5a2d8 4 95 223
+5a2dc 2 95 223
+5a2de 2 72 223
+5a2e0 4 112 223
+5a2e4 6 113 223
+5a2ea 2 92 215
+5a2ec 6 235 235
+5a2f2 4 764 186
+5a2f6 2 235 235
+5a2f8 4 191 246
+5a2fc 2 93 215
+5a2fe 8 191 246
+5a306 4 95 215
+5a30a 6 64 223
+5a310 2 68 215
+5a312 8 229 235
+5a31a 4 229 235
+5a31e 4 74 223
+5a322 4 69 215
+5a326 2 76 223
+5a328 2 69 215
+5a32a 2 76 223
+5a32c 8 120 215
+5a334 2 85 223
+5a336 2 85 223
+5a338 4 72 223
+5a33c 2 68 215
+5a33e 8 229 235
+5a346 4 229 235
+5a34a 6 69 215
+5a350 8 229 235
+5a358 8 90 215
+5a360 6 85 223
+5a366 2 68 215
+5a368 8 229 235
+5a370 4 229 235
+5a374 2 69 215
+5a376 2 120 215
+5a378 2 69 215
+5a37a 6 120 215
+5a380 4 87 223
+5a384 2 87 223
+5a386 4 91 223
+5a38a 8 90 215
+5a392 6 95 223
+5a398 2 68 215
+5a39a 8 229 235
+5a3a2 4 229 235
+5a3a6 2 69 215
+5a3a8 2 120 215
+5a3aa 2 69 215
+5a3ac 6 120 215
+5a3b2 2 97 223
+5a3b4 2 97 223
+5a3b6 4 105 223
+5a3ba 8 229 235
+5a3c2 8 235 235
+5a3ca 8 90 215
+5a3d2 6 97 223
+5a3d8 2 68 215
+5a3da 8 229 235
+5a3e2 4 229 235
+5a3e6 8 69 215
+5a3ee 8 90 215
+5a3f6 6 87 223
+5a3fc 6 90 215
+5a402 8 87 223
+5a40a 4 91 223
+5a40e 2 92 215
+5a410 6 235 235
+5a416 4 764 186
+5a41a 2 235 235
+5a41c 4 191 246
+5a420 2 93 215
+5a422 8 191 246
+5a42a 6 95 215
+5a430 2 92 215
+5a432 6 235 235
+5a438 4 764 186
+5a43c 2 235 235
+5a43e 4 191 246
+5a442 2 93 215
+5a444 8 191 246
+5a44c 6 95 215
+5a452 18 229 235
+5a46a 6 90 215
+5a470 8 97 223
+5a478 4 105 223
+5a47c 2 92 215
+5a47e 6 235 235
+5a484 4 764 186
+5a488 2 235 235
+5a48a 4 191 246
+5a48e 2 93 215
+5a490 8 191 246
+5a498 6 95 215
+5a49e 2 92 215
+5a4a0 6 235 235
+5a4a6 4 764 186
+5a4aa 2 235 235
+5a4ac 4 191 246
+5a4b0 2 93 215
+5a4b2 8 191 246
+5a4ba 6 95 215
+5a4c0 2 92 215
+5a4c2 6 235 235
+5a4c8 4 764 186
+5a4cc 2 235 235
+5a4ce 4 191 246
+5a4d2 2 93 215
+5a4d4 8 191 246
+5a4dc 6 95 215
+5a4e2 2 92 215
+5a4e4 6 235 235
+5a4ea 4 764 186
+5a4ee 2 235 235
+5a4f0 4 191 246
+5a4f4 2 93 215
+5a4f6 a 191 246
+5a500 6 95 215
+5a506 30 235 235
+FUNC 5a538 1e8 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, long&, int, bool, wchar_t, std::string const&, std::__true_type const&)
+5a538 6 118 223
+5a53e 4 118 223
+5a542 2 123 223
+5a544 4 126 223
+5a548 2 125 223
+5a54a 2 118 223
+5a54c 4 128 223
+5a550 2 123 223
+5a552 4 95 215
+5a556 4 123 223
+5a55a 2 128 223
+5a55c 2 118 223
+5a55e 4 123 223
+5a562 8 118 223
+5a56a 6 123 223
+5a570 2 118 223
+5a572 4 128 223
+5a576 a 126 223
+5a580 2 121 223
+5a582 4 128 223
+5a586 2 75 215
+5a588 8 90 215
+5a590 4 77 215
+5a594 8 90 215
+5a59c 6 130 223
+5a5a2 8 90 215
+5a5aa 6 134 223
+5a5b0 8 134 223
+5a5b8 6 52 223
+5a5be 2 52 223
+5a5c0 4 142 223
+5a5c4 2 148 223
+5a5c6 2 146 223
+5a5c8 4 145 223
+5a5cc 2 148 223
+5a5ce 2 146 223
+5a5d0 2 148 223
+5a5d2 6 151 223
+5a5d8 4 152 223
+5a5dc 6 153 223
+5a5e2 6 153 223
+5a5e8 4 153 223
+5a5ec 2 68 215
+5a5ee 8 229 235
+5a5f6 4 229 235
+5a5fa 6 69 215
+5a600 6 235 235
+5a606 4 764 186
+5a60a 2 235 235
+5a60c 4 191 246
+5a610 2 93 215
+5a612 4 191 246
+5a616 4 95 215
+5a61a 4 191 246
+5a61e 2 94 215
+5a620 8 130 223
+5a628 6 158 223
+5a62e 6 158 223
+5a634 8 159 223
+5a63c 2 173 223
+5a63e 6 163 223
+5a644 6 164 223
+5a64a 6 164 223
+5a650 2 164 223
+5a652 2 173 223
+5a654 6 164 223
+5a65a 6 174 223
+5a660 2 92 215
+5a662 6 235 235
+5a668 4 764 186
+5a66c 2 235 235
+5a66e 4 191 246
+5a672 2 93 215
+5a674 2 191 246
+5a676 4 95 215
+5a67a 8 191 246
+5a682 2 68 215
+5a684 4 149 223
+5a688 8 229 235
+5a690 a 229 235
+5a69a 4 151 223
+5a69e 6 235 235
+5a6a4 4 764 186
+5a6a8 2 235 235
+5a6aa 4 191 246
+5a6ae 2 93 215
+5a6b0 2 191 246
+5a6b2 4 95 215
+5a6b6 8 191 246
+5a6be 6 135 223
+5a6c4 2 136 223
+5a6c6 2 135 223
+5a6c8 2 137 223
+5a6ca 6 52 223
+5a6d0 18 235 235
+5a6e8 4 164 223
+5a6ec 6 164 223
+5a6f2 2 173 223
+5a6f4 6 173 223
+5a6fa 2 65 238
+5a6fc 4 173 223
+5a700 2 65 238
+5a702 8 173 223
+5a70a 6 164 223
+5a710 2 173 223
+5a712 6 164 223
+5a718 4 164 223
+5a71c 4 164 223
+FUNC 5a720 f8 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, long&, wchar_t*)
+5a720 6 247 223
+5a726 4 145 212
+5a72a 2 247 223
+5a72c 4 247 223
+5a730 4 145 212
+5a734 6 247 223
+5a73a 6 145 212
+5a740 c 351 218
+5a74c c 258 223
+5a758 8 112 215
+5a760 4 259 223
+5a764 2 263 223
+5a766 6 265 223
+5a76c 6 266 223
+5a772 4 287 223
+5a776 8 112 215
+5a77e 2 289 223
+5a780 c 290 223
+5a78c e 291 223
+5a79a a 292 223
+5a7a4 a 351 218
+5a7ae 2 86 227
+5a7b0 2 351 218
+5a7b2 4 86 227
+5a7b6 8 87 227
+5a7be 2 86 227
+5a7c0 8 87 227
+5a7c8 2 283 223
+5a7ca 2 275 223
+5a7cc 20 283 223
+5a7ec 6 156 238
+5a7f2 2 287 223
+5a7f4 4 287 223
+5a7f8 4 287 223
+5a7fc 6 156 238
+5a802 16 291 223
+FUNC 5a818 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, long&) const
+5a818 6 537 223
+5a81e 8 537 223
+5a826 20 539 223
+FUNC 5a848 80 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, bool&) const
+5a848 6 499 223
+5a84e e 499 223
+5a85c 4 501 223
+5a860 2 499 223
+5a862 6 501 223
+5a868 1c 506 223
+5a884 6 507 223
+5a88a 8 515 223
+5a892 c 517 223
+5a89e 4 508 223
+5a8a2 4 511 223
+5a8a6 12 502 223
+5a8b8 2 510 223
+5a8ba 8 513 223
+5a8c2 2 510 223
+5a8c4 4 511 223
+FUNC 5a8c8 1d4 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned short, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, unsigned short&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+5a8c8 6 178 223
+5a8ce 2 178 223
+5a8d0 2 188 223
+5a8d2 2 183 223
+5a8d4 2 178 223
+5a8d6 2 188 223
+5a8d8 2 178 223
+5a8da 4 188 223
+5a8de 2 178 223
+5a8e0 2 183 223
+5a8e2 4 95 215
+5a8e6 4 183 223
+5a8ea 4 186 223
+5a8ee 2 185 223
+5a8f0 a 183 223
+5a8fa 4 188 223
+5a8fe a 178 223
+5a908 2 186 223
+5a90a 2 181 223
+5a90c 2 186 223
+5a90e 6 188 223
+5a914 2 75 215
+5a916 8 90 215
+5a91e 4 77 215
+5a922 8 90 215
+5a92a 6 190 223
+5a930 8 90 215
+5a938 6 194 223
+5a93e 6 194 223
+5a944 6 52 223
+5a94a 2 52 223
+5a94c 4 202 223
+5a950 2 208 223
+5a952 2 206 223
+5a954 4 205 223
+5a958 2 208 223
+5a95a 2 206 223
+5a95c 2 208 223
+5a95e 6 211 223
+5a964 4 212 223
+5a968 6 213 223
+5a96e 6 213 223
+5a974 4 213 223
+5a978 2 68 215
+5a97a 8 229 235
+5a982 4 229 235
+5a986 6 69 215
+5a98c 6 235 235
+5a992 4 764 186
+5a996 2 235 235
+5a998 4 191 246
+5a99c 2 93 215
+5a99e 4 191 246
+5a9a2 4 95 215
+5a9a6 4 191 246
+5a9aa 2 94 215
+5a9ac 8 190 223
+5a9b4 6 218 223
+5a9ba 6 218 223
+5a9c0 8 219 223
+5a9c8 6 223 223
+5a9ce 6 224 223
+5a9d4 8 224 223
+5a9dc 2 233 223
+5a9de 6 234 223
+5a9e4 2 92 215
+5a9e6 6 235 235
+5a9ec 4 764 186
+5a9f0 2 235 235
+5a9f2 4 191 246
+5a9f6 2 93 215
+5a9f8 2 191 246
+5a9fa 4 95 215
+5a9fe 8 191 246
+5aa06 2 68 215
+5aa08 4 209 223
+5aa0c 8 229 235
+5aa14 a 229 235
+5aa1e 4 211 223
+5aa22 6 235 235
+5aa28 4 764 186
+5aa2c 2 235 235
+5aa2e 4 191 246
+5aa32 2 93 215
+5aa34 2 191 246
+5aa36 4 95 215
+5aa3a 8 191 246
+5aa42 6 195 223
+5aa48 2 196 223
+5aa4a 2 195 223
+5aa4c 2 197 223
+5aa4e 6 52 223
+5aa54 18 235 235
+5aa6c 6 224 223
+5aa72 2 224 223
+5aa74 4 224 223
+5aa78 4 224 223
+5aa7c 2 233 223
+5aa7e 6 233 223
+5aa84 2 65 238
+5aa86 4 233 223
+5aa8a 2 65 238
+5aa8c 8 233 223
+5aa94 8 224 223
+FUNC 5aa9c f8 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned short, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, unsigned short&, wchar_t*)
+5aa9c 6 247 223
+5aaa2 4 145 212
+5aaa6 2 247 223
+5aaa8 4 247 223
+5aaac 4 145 212
+5aab0 6 247 223
+5aab6 6 145 212
+5aabc c 351 218
+5aac8 c 258 223
+5aad4 8 112 215
+5aadc 4 259 223
+5aae0 2 263 223
+5aae2 6 265 223
+5aae8 6 266 223
+5aaee 2 287 223
+5aaf0 4 287 223
+5aaf4 8 112 215
+5aafc 2 289 223
+5aafe c 290 223
+5ab0a e 291 223
+5ab18 a 292 223
+5ab22 a 351 218
+5ab2c 2 86 227
+5ab2e 2 351 218
+5ab30 4 86 227
+5ab34 8 87 227
+5ab3c 2 86 227
+5ab3e 8 87 227
+5ab46 2 283 223
+5ab48 2 275 223
+5ab4a 20 283 223
+5ab6a 6 156 238
+5ab70 2 287 223
+5ab72 4 287 223
+5ab76 4 287 223
+5ab7a 6 156 238
+5ab80 14 291 223
+FUNC 5ab94 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, unsigned short&) const
+5ab94 6 543 223
+5ab9a 8 543 223
+5aba2 20 546 223
+FUNC 5abc4 1ce 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned int, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, unsigned int&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+5abc4 6 178 223
+5abca 4 178 223
+5abce 2 183 223
+5abd0 4 186 223
+5abd4 2 185 223
+5abd6 2 178 223
+5abd8 4 188 223
+5abdc 2 183 223
+5abde 4 95 215
+5abe2 4 183 223
+5abe6 2 188 223
+5abe8 2 178 223
+5abea 4 183 223
+5abee 4 178 223
+5abf2 6 183 223
+5abf8 a 188 223
+5ac02 2 186 223
+5ac04 2 181 223
+5ac06 2 186 223
+5ac08 4 188 223
+5ac0c 2 75 215
+5ac0e 8 90 215
+5ac16 4 77 215
+5ac1a 8 90 215
+5ac22 6 190 223
+5ac28 8 90 215
+5ac30 6 194 223
+5ac36 6 194 223
+5ac3c 6 52 223
+5ac42 2 52 223
+5ac44 4 202 223
+5ac48 2 208 223
+5ac4a 2 206 223
+5ac4c 4 205 223
+5ac50 2 208 223
+5ac52 2 206 223
+5ac54 2 208 223
+5ac56 4 211 223
+5ac5a 4 212 223
+5ac5e 6 213 223
+5ac64 6 213 223
+5ac6a 4 213 223
+5ac6e 2 68 215
+5ac70 8 229 235
+5ac78 4 229 235
+5ac7c 6 69 215
+5ac82 6 235 235
+5ac88 4 764 186
+5ac8c 2 235 235
+5ac8e 4 191 246
+5ac92 2 93 215
+5ac94 4 191 246
+5ac98 4 95 215
+5ac9c 4 191 246
+5aca0 2 94 215
+5aca2 8 190 223
+5acaa 6 218 223
+5acb0 6 218 223
+5acb6 8 219 223
+5acbe 2 233 223
+5acc0 6 223 223
+5acc6 6 224 223
+5accc 2 224 223
+5acce 2 233 223
+5acd0 6 224 223
+5acd6 6 234 223
+5acdc 2 92 215
+5acde 6 235 235
+5ace4 4 764 186
+5ace8 2 235 235
+5acea 4 191 246
+5acee 2 93 215
+5acf0 2 191 246
+5acf2 4 95 215
+5acf6 8 191 246
+5acfe 2 68 215
+5ad00 4 209 223
+5ad04 8 229 235
+5ad0c a 229 235
+5ad16 4 211 223
+5ad1a 6 235 235
+5ad20 4 764 186
+5ad24 2 235 235
+5ad26 4 191 246
+5ad2a 2 93 215
+5ad2c 2 191 246
+5ad2e 4 95 215
+5ad32 8 191 246
+5ad3a 6 195 223
+5ad40 2 196 223
+5ad42 2 195 223
+5ad44 2 197 223
+5ad46 6 52 223
+5ad4c 18 235 235
+5ad64 6 224 223
+5ad6a 2 224 223
+5ad6c 4 224 223
+5ad70 2 224 223
+5ad72 2 233 223
+5ad74 6 233 223
+5ad7a 2 65 238
+5ad7c 4 233 223
+5ad80 2 65 238
+5ad82 8 233 223
+5ad8a 8 224 223
+FUNC 5abc4 1ce 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, unsigned long&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+FUNC 5ad94 f8 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned int, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, unsigned int&, wchar_t*)
+5ad94 6 247 223
+5ad9a 4 145 212
+5ad9e 2 247 223
+5ada0 4 247 223
+5ada4 4 145 212
+5ada8 6 247 223
+5adae 6 145 212
+5adb4 c 351 218
+5adc0 c 258 223
+5adcc 8 112 215
+5add4 4 259 223
+5add8 2 263 223
+5adda 6 265 223
+5ade0 6 266 223
+5ade6 4 287 223
+5adea 8 112 215
+5adf2 2 289 223
+5adf4 c 290 223
+5ae00 e 291 223
+5ae0e a 292 223
+5ae18 a 351 218
+5ae22 2 86 227
+5ae24 2 351 218
+5ae26 4 86 227
+5ae2a 8 87 227
+5ae32 2 86 227
+5ae34 8 87 227
+5ae3c 2 283 223
+5ae3e 2 275 223
+5ae40 20 283 223
+5ae60 6 156 238
+5ae66 2 287 223
+5ae68 4 287 223
+5ae6c 4 287 223
+5ae70 6 156 238
+5ae76 16 291 223
+FUNC 5ad94 f8 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, unsigned long&, wchar_t*)
+FUNC 5ae8c 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, unsigned int&) const
+FUNC 5ae8c 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, unsigned long&) const
+5ae8c 6 557 223
+5ae92 8 557 223
+5ae9a 20 560 223
+FUNC 5aebc 246 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned long long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, unsigned long long&, int, bool, wchar_t, std::string const&, std::__false_type const&)
+5aebc 6 178 223
+5aec2 4 188 223
+5aec6 2 178 223
+5aec8 4 183 223
+5aecc 2 178 223
+5aece 6 188 223
+5aed4 2 178 223
+5aed6 4 188 223
+5aeda 4 183 223
+5aede 2 188 223
+5aee0 4 183 223
+5aee4 4 186 223
+5aee8 2 188 223
+5aeea 4 95 215
+5aeee 4 183 223
+5aef2 2 178 223
+5aef4 4 186 223
+5aef8 6 183 223
+5aefe 4 188 223
+5af02 2 178 223
+5af04 2 185 223
+5af06 4 182 223
+5af0a 2 181 223
+5af0c 8 182 223
+5af14 6 188 223
+5af1a 4 186 223
+5af1e 2 75 215
+5af20 8 90 215
+5af28 4 77 215
+5af2c 8 90 215
+5af34 6 190 223
+5af3a 8 90 215
+5af42 6 194 223
+5af48 8 194 223
+5af50 6 52 223
+5af56 2 52 223
+5af58 8 202 223
+5af60 4 208 223
+5af64 2 206 223
+5af66 4 208 223
+5af6a 2 205 223
+5af6c 2 206 223
+5af6e 8 208 223
+5af76 20 211 223
+5af96 4 212 223
+5af9a 8 211 223
+5afa2 6 212 223
+5afa8 6 213 223
+5afae e 213 223
+5afbc a 213 223
+5afc6 2 68 215
+5afc8 8 229 235
+5afd0 4 229 235
+5afd4 6 69 215
+5afda 6 235 235
+5afe0 4 764 186
+5afe4 2 235 235
+5afe6 4 191 246
+5afea 2 93 215
+5afec 4 191 246
+5aff0 4 95 215
+5aff4 4 191 246
+5aff8 2 94 215
+5affa 6 190 223
+5b000 6 218 223
+5b006 8 218 223
+5b00e 8 219 223
+5b016 4 223 223
+5b01a 6 224 223
+5b020 10 224 223
+5b030 2 233 223
+5b032 6 234 223
+5b038 2 92 215
+5b03a 6 235 235
+5b040 4 764 186
+5b044 2 235 235
+5b046 4 191 246
+5b04a 2 93 215
+5b04c 2 191 246
+5b04e 4 95 215
+5b052 8 191 246
+5b05a 2 68 215
+5b05c 4 209 223
+5b060 8 229 235
+5b068 a 229 235
+5b072 6 211 223
+5b078 6 235 235
+5b07e 4 764 186
+5b082 2 235 235
+5b084 4 191 246
+5b088 2 93 215
+5b08a 2 191 246
+5b08c 4 95 215
+5b090 8 191 246
+5b098 8 195 223
+5b0a0 2 196 223
+5b0a2 4 195 223
+5b0a6 2 197 223
+5b0a8 6 52 223
+5b0ae 18 235 235
+5b0c6 6 224 223
+5b0cc 2 224 223
+5b0ce a 224 223
+5b0d8 4 224 223
+5b0dc 2 233 223
+5b0de 6 233 223
+5b0e4 2 65 238
+5b0e6 4 233 223
+5b0ea 2 65 238
+5b0ec 8 233 223
+5b0f4 e 224 223
+FUNC 5b104 fc 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned long long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, unsigned long long&, wchar_t*)
+5b104 6 247 223
+5b10a 4 145 212
+5b10e 2 247 223
+5b110 4 247 223
+5b114 4 145 212
+5b118 6 247 223
+5b11e 6 145 212
+5b124 c 351 218
+5b130 c 258 223
+5b13c 8 112 215
+5b144 4 259 223
+5b148 2 263 223
+5b14a 6 265 223
+5b150 a 266 223
+5b15a 2 287 223
+5b15c 4 287 223
+5b160 8 112 215
+5b168 2 289 223
+5b16a c 290 223
+5b176 e 291 223
+5b184 a 292 223
+5b18e a 351 218
+5b198 2 86 227
+5b19a 2 351 218
+5b19c 4 86 227
+5b1a0 8 87 227
+5b1a8 2 86 227
+5b1aa 8 87 227
+5b1b2 2 283 223
+5b1b4 2 275 223
+5b1b6 20 283 223
+5b1d6 6 156 238
+5b1dc 2 287 223
+5b1de 4 287 223
+5b1e2 4 287 223
+5b1e6 6 156 238
+5b1ec 14 291 223
+FUNC 5b200 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, unsigned long long&) const
+5b200 6 611 223
+5b206 8 611 223
+5b20e 20 614 223
+FUNC 5b230 3a 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, void*&) const
+5b230 6 587 223
+5b236 6 587 223
+5b23c 2 595 223
+5b23e 4 587 223
+5b242 10 595 223
+5b252 4 596 223
+5b256 2 599 223
+5b258 8 597 223
+5b260 a 599 223
+FUNC 5b26c 202 0 bool std::priv::__get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, int, long long&, int, bool, wchar_t, std::string const&, std::__true_type const&)
+5b26c 6 118 223
+5b272 4 128 223
+5b276 2 118 223
+5b278 4 123 223
+5b27c 2 118 223
+5b27e 4 128 223
+5b282 2 118 223
+5b284 2 128 223
+5b286 4 123 223
+5b28a 2 128 223
+5b28c 4 123 223
+5b290 4 128 223
+5b294 2 118 223
+5b296 4 123 223
+5b29a 2 128 223
+5b29c 4 126 223
+5b2a0 6 123 223
+5b2a6 4 128 223
+5b2aa 2 126 223
+5b2ac 2 122 223
+5b2ae 4 118 223
+5b2b2 2 125 223
+5b2b4 2 126 223
+5b2b6 c 122 223
+5b2c2 2 118 223
+5b2c4 2 136 223
+5b2c6 4 118 223
+5b2ca 6 121 223
+5b2d0 2 128 223
+5b2d2 2 120 215
+5b2d4 2 128 223
+5b2d6 6 120 215
+5b2dc 4 130 223
+5b2e0 8 90 215
+5b2e8 2 134 223
+5b2ea a 134 223
+5b2f4 6 52 223
+5b2fa 2 52 223
+5b2fc 8 142 223
+5b304 4 148 223
+5b308 2 146 223
+5b30a 4 148 223
+5b30e 2 145 223
+5b310 2 146 223
+5b312 8 148 223
+5b31a 16 151 223
+5b330 4 152 223
+5b334 8 151 223
+5b33c 6 152 223
+5b342 6 153 223
+5b348 e 153 223
+5b356 a 153 223
+5b360 2 68 215
+5b362 8 229 235
+5b36a 4 229 235
+5b36e 4 69 215
+5b372 8 120 215
+5b37a 6 130 223
+5b380 2 158 223
+5b382 8 158 223
+5b38a 8 159 223
+5b392 2 173 223
+5b394 4 163 223
+5b398 6 164 223
+5b39e 6 164 223
+5b3a4 c 164 223
+5b3b0 2 173 223
+5b3b2 6 174 223
+5b3b8 2 92 215
+5b3ba 6 235 235
+5b3c0 4 764 186
+5b3c4 2 235 235
+5b3c6 4 191 246
+5b3ca 2 93 215
+5b3cc a 191 246
+5b3d6 6 95 215
+5b3dc 2 68 215
+5b3de 4 149 223
+5b3e2 8 229 235
+5b3ea 6 229 235
+5b3f0 6 69 215
+5b3f6 6 151 223
+5b3fc 8 135 223
+5b404 2 136 223
+5b406 4 135 223
+5b40a 2 137 223
+5b40c 6 52 223
+5b412 8 235 235
+5b41a 4 164 223
+5b41e c 164 223
+5b42a 2 173 223
+5b42c 6 173 223
+5b432 4 65 238
+5b436 4 173 223
+5b43a 4 65 238
+5b43e a 173 223
+5b448 e 164 223
+5b456 4 173 223
+5b45a 4 164 223
+5b45e a 164 223
+5b468 6 164 223
+FUNC 5b470 fc 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_integer<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long long, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, long long&, wchar_t*)
+5b470 6 247 223
+5b476 4 145 212
+5b47a 2 247 223
+5b47c 4 247 223
+5b480 4 145 212
+5b484 6 247 223
+5b48a 6 145 212
+5b490 c 351 218
+5b49c c 258 223
+5b4a8 8 112 215
+5b4b0 4 259 223
+5b4b4 2 263 223
+5b4b6 6 265 223
+5b4bc a 266 223
+5b4c6 2 287 223
+5b4c8 4 287 223
+5b4cc 8 112 215
+5b4d4 2 289 223
+5b4d6 c 290 223
+5b4e2 e 291 223
+5b4f0 a 292 223
+5b4fa a 351 218
+5b504 2 86 227
+5b506 2 351 218
+5b508 4 86 227
+5b50c 8 87 227
+5b514 2 86 227
+5b516 8 87 227
+5b51e 2 283 223
+5b520 2 275 223
+5b522 20 283 223
+5b542 6 156 238
+5b548 2 287 223
+5b54a 4 287 223
+5b54e 4 287 223
+5b552 6 156 238
+5b558 14 291 223
+FUNC 5b56c 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, long long&) const
+5b56c 6 604 223
+5b572 8 604 223
+5b57a 20 607 223
+FUNC 5b59c 2d2 0 int std::priv::__get_base_or_zero<std::istreambuf_iterator<char, std::char_traits<char> >, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, std::ctype<char> const&)
+5b59c 6 56 223
+5b5a2 8 56 223
+5b5aa a 59 223
+5b5b4 4 103 206
+5b5b8 2 59 223
+5b5ba 8 103 206
+5b5c2 8 90 215
+5b5ca 8 64 223
+5b5d2 a 68 223
+5b5dc 4 74 223
+5b5e0 c 76 223
+5b5ec 8 120 215
+5b5f4 4 95 223
+5b5f8 2 95 223
+5b5fa 2 72 223
+5b5fc 4 112 223
+5b600 6 113 223
+5b606 2 92 215
+5b608 6 235 235
+5b60e 4 223 246
+5b612 2 235 235
+5b614 4 191 246
+5b618 2 220 246
+5b61a 2 191 246
+5b61c 2 93 215
+5b61e 4 191 246
+5b622 4 95 215
+5b626 4 64 223
+5b62a 2 191 246
+5b62c 4 64 223
+5b630 2 68 215
+5b632 8 229 235
+5b63a 4 229 235
+5b63e 4 74 223
+5b642 4 69 215
+5b646 2 76 223
+5b648 2 69 215
+5b64a 2 76 223
+5b64c 8 120 215
+5b654 2 85 223
+5b656 2 85 223
+5b658 4 72 223
+5b65c 2 68 215
+5b65e 8 229 235
+5b666 4 229 235
+5b66a 6 69 215
+5b670 8 229 235
+5b678 8 90 215
+5b680 8 85 223
+5b688 2 68 215
+5b68a 8 229 235
+5b692 4 229 235
+5b696 2 69 215
+5b698 2 120 215
+5b69a 2 69 215
+5b69c 6 120 215
+5b6a2 4 87 223
+5b6a6 2 87 223
+5b6a8 4 91 223
+5b6ac 8 90 215
+5b6b4 8 95 223
+5b6bc 2 68 215
+5b6be 8 229 235
+5b6c6 4 229 235
+5b6ca 2 69 215
+5b6cc 2 120 215
+5b6ce 2 69 215
+5b6d0 6 120 215
+5b6d6 2 97 223
+5b6d8 2 97 223
+5b6da 4 105 223
+5b6de 8 229 235
+5b6e6 8 235 235
+5b6ee 8 90 215
+5b6f6 8 97 223
+5b6fe 2 68 215
+5b700 8 229 235
+5b708 4 229 235
+5b70c 8 69 215
+5b714 8 90 215
+5b71c 8 87 223
+5b724 6 90 215
+5b72a a 87 223
+5b734 4 91 223
+5b738 2 92 215
+5b73a 6 235 235
+5b740 4 223 246
+5b744 2 235 235
+5b746 4 191 246
+5b74a 2 220 246
+5b74c 2 191 246
+5b74e 2 93 215
+5b750 4 191 246
+5b754 2 95 215
+5b756 2 191 246
+5b758 4 95 215
+5b75c 2 92 215
+5b75e 6 235 235
+5b764 4 223 246
+5b768 2 235 235
+5b76a 4 191 246
+5b76e 2 220 246
+5b770 2 191 246
+5b772 2 93 215
+5b774 4 191 246
+5b778 2 95 215
+5b77a 2 191 246
+5b77c 4 95 215
+5b780 18 229 235
+5b798 6 90 215
+5b79e a 97 223
+5b7a8 4 105 223
+5b7ac 2 92 215
+5b7ae 6 235 235
+5b7b4 4 223 246
+5b7b8 2 235 235
+5b7ba 4 191 246
+5b7be 2 220 246
+5b7c0 2 191 246
+5b7c2 2 93 215
+5b7c4 4 191 246
+5b7c8 2 95 215
+5b7ca 2 191 246
+5b7cc 4 95 215
+5b7d0 2 92 215
+5b7d2 6 235 235
+5b7d8 4 223 246
+5b7dc 2 235 235
+5b7de 4 191 246
+5b7e2 2 220 246
+5b7e4 2 191 246
+5b7e6 2 93 215
+5b7e8 4 191 246
+5b7ec 2 95 215
+5b7ee 2 191 246
+5b7f0 4 95 215
+5b7f4 2 92 215
+5b7f6 6 235 235
+5b7fc 4 223 246
+5b800 2 235 235
+5b802 4 191 246
+5b806 2 220 246
+5b808 2 191 246
+5b80a 2 93 215
+5b80c 4 191 246
+5b810 2 95 215
+5b812 2 191 246
+5b814 4 95 215
+5b818 2 92 215
+5b81a 6 235 235
+5b820 4 223 246
+5b824 2 235 235
+5b826 4 191 246
+5b82a 2 220 246
+5b82c 4 191 246
+5b830 2 93 215
+5b832 4 191 246
+5b836 2 95 215
+5b838 2 191 246
+5b83a 4 95 215
+5b83e 30 235 235
+FUNC 5b870 192 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, long&, int, bool, char, std::string const&, std::__true_type const&)
+5b870 6 118 223
+5b876 4 118 223
+5b87a 2 123 223
+5b87c 4 126 223
+5b880 2 125 223
+5b882 2 118 223
+5b884 4 128 223
+5b888 2 123 223
+5b88a 2 136 223
+5b88c 4 123 223
+5b890 2 128 223
+5b892 2 118 223
+5b894 4 123 223
+5b898 8 118 223
+5b8a0 6 123 223
+5b8a6 2 118 223
+5b8a8 4 128 223
+5b8ac 4 118 223
+5b8b0 2 120 215
+5b8b2 2 126 223
+5b8b4 2 121 223
+5b8b6 2 126 223
+5b8b8 8 118 223
+5b8c0 2 128 223
+5b8c2 6 120 215
+5b8c8 4 130 223
+5b8cc 8 90 215
+5b8d4 6 134 223
+5b8da 6 134 223
+5b8e0 4 52 223
+5b8e4 2 52 223
+5b8e6 4 142 223
+5b8ea 2 148 223
+5b8ec 2 146 223
+5b8ee 4 145 223
+5b8f2 2 148 223
+5b8f4 2 146 223
+5b8f6 2 148 223
+5b8f8 6 151 223
+5b8fe 4 152 223
+5b902 6 153 223
+5b908 6 153 223
+5b90e 4 153 223
+5b912 2 68 215
+5b914 8 229 235
+5b91c 4 229 235
+5b920 4 69 215
+5b924 8 120 215
+5b92c 6 130 223
+5b932 6 158 223
+5b938 6 158 223
+5b93e 8 159 223
+5b946 2 173 223
+5b948 6 163 223
+5b94e 6 164 223
+5b954 6 164 223
+5b95a 2 164 223
+5b95c 2 173 223
+5b95e 6 164 223
+5b964 6 174 223
+5b96a 2 92 215
+5b96c 6 235 235
+5b972 4 223 246
+5b976 2 235 235
+5b978 4 191 246
+5b97c 2 220 246
+5b97e 4 191 246
+5b982 2 93 215
+5b984 6 191 246
+5b98a 6 95 215
+5b990 2 68 215
+5b992 4 149 223
+5b996 8 229 235
+5b99e 6 229 235
+5b9a4 6 69 215
+5b9aa 4 151 223
+5b9ae 6 135 223
+5b9b4 2 136 223
+5b9b6 2 135 223
+5b9b8 2 137 223
+5b9ba 6 52 223
+5b9c0 a 235 235
+5b9ca 4 164 223
+5b9ce 6 164 223
+5b9d4 2 173 223
+5b9d6 6 173 223
+5b9dc 2 65 238
+5b9de 4 173 223
+5b9e2 2 65 238
+5b9e4 8 173 223
+5b9ec 6 164 223
+5b9f2 2 173 223
+5b9f4 6 164 223
+5b9fa 4 164 223
+5b9fe 4 164 223
+FUNC 5ba04 f8 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, long&, char*)
+5ba04 6 247 223
+5ba0a 4 145 212
+5ba0e 2 247 223
+5ba10 4 247 223
+5ba14 4 145 212
+5ba18 6 247 223
+5ba1e 6 145 212
+5ba24 c 351 218
+5ba30 c 258 223
+5ba3c 8 112 215
+5ba44 4 259 223
+5ba48 2 263 223
+5ba4a 6 265 223
+5ba50 6 266 223
+5ba56 4 287 223
+5ba5a 8 112 215
+5ba62 2 289 223
+5ba64 c 290 223
+5ba70 e 291 223
+5ba7e a 292 223
+5ba88 a 351 218
+5ba92 2 57 227
+5ba94 2 351 218
+5ba96 4 57 227
+5ba9a 8 58 227
+5baa2 2 57 227
+5baa4 8 58 227
+5baac 2 283 223
+5baae 2 275 223
+5bab0 20 283 223
+5bad0 6 156 238
+5bad6 2 287 223
+5bad8 4 287 223
+5badc 4 287 223
+5bae0 6 156 238
+5bae6 16 291 223
+FUNC 5bafc 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, long&) const
+5bafc 4 537 223
+5bb00 8 537 223
+5bb08 1a 539 223
+FUNC 5bb24 76 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, bool&) const
+5bb24 4 499 223
+5bb28 e 499 223
+5bb36 4 501 223
+5bb3a 2 499 223
+5bb3c 6 501 223
+5bb42 1a 506 223
+5bb5c 6 507 223
+5bb62 8 515 223
+5bb6a 6 517 223
+5bb70 4 508 223
+5bb74 4 511 223
+5bb78 12 502 223
+5bb8a 2 510 223
+5bb8c 8 513 223
+5bb94 2 510 223
+5bb96 4 511 223
+FUNC 5bb9c 17e 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned short, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, unsigned short&, int, bool, char, std::string const&, std::__false_type const&)
+5bb9c 6 178 223
+5bba2 2 178 223
+5bba4 2 188 223
+5bba6 2 183 223
+5bba8 2 178 223
+5bbaa 2 188 223
+5bbac 2 178 223
+5bbae 4 188 223
+5bbb2 2 178 223
+5bbb4 6 183 223
+5bbba 4 186 223
+5bbbe 2 185 223
+5bbc0 4 183 223
+5bbc4 2 196 223
+5bbc6 6 183 223
+5bbcc 4 188 223
+5bbd0 4 178 223
+5bbd4 2 186 223
+5bbd6 2 120 215
+5bbd8 4 186 223
+5bbdc 8 178 223
+5bbe4 4 181 223
+5bbe8 4 188 223
+5bbec 6 120 215
+5bbf2 4 190 223
+5bbf6 8 90 215
+5bbfe 6 194 223
+5bc04 6 194 223
+5bc0a 4 52 223
+5bc0e 2 52 223
+5bc10 4 202 223
+5bc14 2 208 223
+5bc16 2 206 223
+5bc18 4 205 223
+5bc1c 2 208 223
+5bc1e 2 206 223
+5bc20 2 208 223
+5bc22 6 211 223
+5bc28 4 212 223
+5bc2c 6 213 223
+5bc32 6 213 223
+5bc38 4 213 223
+5bc3c 2 68 215
+5bc3e 8 229 235
+5bc46 4 229 235
+5bc4a 4 69 215
+5bc4e 8 120 215
+5bc56 6 190 223
+5bc5c 6 218 223
+5bc62 6 218 223
+5bc68 8 219 223
+5bc70 6 223 223
+5bc76 6 224 223
+5bc7c 8 224 223
+5bc84 2 233 223
+5bc86 6 234 223
+5bc8c 2 92 215
+5bc8e 6 235 235
+5bc94 4 223 246
+5bc98 2 235 235
+5bc9a 4 191 246
+5bc9e 2 220 246
+5bca0 2 191 246
+5bca2 2 93 215
+5bca4 4 191 246
+5bca8 2 95 215
+5bcaa 2 191 246
+5bcac 4 95 215
+5bcb0 2 68 215
+5bcb2 4 209 223
+5bcb6 8 229 235
+5bcbe 6 229 235
+5bcc4 6 69 215
+5bcca 4 211 223
+5bcce 6 195 223
+5bcd4 2 196 223
+5bcd6 2 195 223
+5bcd8 2 197 223
+5bcda 6 52 223
+5bce0 a 235 235
+5bcea 6 224 223
+5bcf0 2 224 223
+5bcf2 4 224 223
+5bcf6 4 224 223
+5bcfa 2 233 223
+5bcfc 6 233 223
+5bd02 2 65 238
+5bd04 4 233 223
+5bd08 2 65 238
+5bd0a 8 233 223
+5bd12 8 224 223
+FUNC 5bd1c f8 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned short, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, unsigned short&, char*)
+5bd1c 6 247 223
+5bd22 4 145 212
+5bd26 2 247 223
+5bd28 4 247 223
+5bd2c 4 145 212
+5bd30 6 247 223
+5bd36 6 145 212
+5bd3c c 351 218
+5bd48 c 258 223
+5bd54 8 112 215
+5bd5c 4 259 223
+5bd60 2 263 223
+5bd62 6 265 223
+5bd68 6 266 223
+5bd6e 2 287 223
+5bd70 4 287 223
+5bd74 8 112 215
+5bd7c 2 289 223
+5bd7e c 290 223
+5bd8a e 291 223
+5bd98 a 292 223
+5bda2 a 351 218
+5bdac 2 57 227
+5bdae 2 351 218
+5bdb0 4 57 227
+5bdb4 8 58 227
+5bdbc 2 57 227
+5bdbe 8 58 227
+5bdc6 2 283 223
+5bdc8 2 275 223
+5bdca 20 283 223
+5bdea 6 156 238
+5bdf0 2 287 223
+5bdf2 4 287 223
+5bdf6 4 287 223
+5bdfa 6 156 238
+5be00 14 291 223
+FUNC 5be14 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, unsigned short&) const
+5be14 4 543 223
+5be18 8 543 223
+5be20 1a 546 223
+FUNC 5be3c 17a 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned int, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, unsigned int&, int, bool, char, std::string const&, std::__false_type const&)
+5be3c 6 178 223
+5be42 4 178 223
+5be46 2 183 223
+5be48 4 186 223
+5be4c 2 185 223
+5be4e 2 178 223
+5be50 4 188 223
+5be54 2 183 223
+5be56 2 196 223
+5be58 4 183 223
+5be5c 2 188 223
+5be5e 2 178 223
+5be60 4 183 223
+5be64 4 178 223
+5be68 6 183 223
+5be6e 4 188 223
+5be72 4 178 223
+5be76 2 186 223
+5be78 2 120 215
+5be7a 4 186 223
+5be7e 2 181 223
+5be80 6 178 223
+5be86 2 188 223
+5be88 6 120 215
+5be8e 4 190 223
+5be92 8 90 215
+5be9a 6 194 223
+5bea0 6 194 223
+5bea6 4 52 223
+5beaa 2 52 223
+5beac 4 202 223
+5beb0 2 208 223
+5beb2 2 206 223
+5beb4 4 205 223
+5beb8 2 208 223
+5beba 2 206 223
+5bebc 2 208 223
+5bebe 4 211 223
+5bec2 4 212 223
+5bec6 6 213 223
+5becc 6 213 223
+5bed2 4 213 223
+5bed6 2 68 215
+5bed8 8 229 235
+5bee0 4 229 235
+5bee4 4 69 215
+5bee8 8 120 215
+5bef0 6 190 223
+5bef6 6 218 223
+5befc 6 218 223
+5bf02 8 219 223
+5bf0a 2 233 223
+5bf0c 6 223 223
+5bf12 6 224 223
+5bf18 2 224 223
+5bf1a 2 233 223
+5bf1c 6 224 223
+5bf22 6 234 223
+5bf28 2 92 215
+5bf2a 6 235 235
+5bf30 4 223 246
+5bf34 2 235 235
+5bf36 4 191 246
+5bf3a 2 220 246
+5bf3c 4 191 246
+5bf40 2 93 215
+5bf42 4 191 246
+5bf46 2 95 215
+5bf48 2 191 246
+5bf4a 4 95 215
+5bf4e 2 68 215
+5bf50 4 209 223
+5bf54 8 229 235
+5bf5c 6 229 235
+5bf62 6 69 215
+5bf68 4 211 223
+5bf6c 6 195 223
+5bf72 2 196 223
+5bf74 2 195 223
+5bf76 2 197 223
+5bf78 6 52 223
+5bf7e a 235 235
+5bf88 6 224 223
+5bf8e 2 224 223
+5bf90 4 224 223
+5bf94 2 224 223
+5bf96 2 233 223
+5bf98 6 233 223
+5bf9e 2 65 238
+5bfa0 4 233 223
+5bfa4 2 65 238
+5bfa6 8 233 223
+5bfae 8 224 223
+FUNC 5bfb8 f8 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned int, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, unsigned int&, char*)
+5bfb8 6 247 223
+5bfbe 4 145 212
+5bfc2 2 247 223
+5bfc4 4 247 223
+5bfc8 4 145 212
+5bfcc 6 247 223
+5bfd2 6 145 212
+5bfd8 c 351 218
+5bfe4 c 258 223
+5bff0 8 112 215
+5bff8 4 259 223
+5bffc 2 263 223
+5bffe 6 265 223
+5c004 6 266 223
+5c00a 4 287 223
+5c00e 8 112 215
+5c016 2 289 223
+5c018 c 290 223
+5c024 e 291 223
+5c032 a 292 223
+5c03c a 351 218
+5c046 2 57 227
+5c048 2 351 218
+5c04a 4 57 227
+5c04e 8 58 227
+5c056 2 57 227
+5c058 8 58 227
+5c060 2 283 223
+5c062 2 275 223
+5c064 20 283 223
+5c084 6 156 238
+5c08a 2 287 223
+5c08c 4 287 223
+5c090 4 287 223
+5c094 6 156 238
+5c09a 16 291 223
+FUNC 5c0b0 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, unsigned int&) const
+5c0b0 4 550 223
+5c0b4 8 550 223
+5c0bc 1a 553 223
+FUNC 5c0d8 178 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, unsigned long&, int, bool, char, std::string const&, std::__false_type const&)
+5c0d8 6 178 223
+5c0de 4 178 223
+5c0e2 2 183 223
+5c0e4 4 186 223
+5c0e8 2 185 223
+5c0ea 2 178 223
+5c0ec 4 188 223
+5c0f0 2 183 223
+5c0f2 2 196 223
+5c0f4 4 183 223
+5c0f8 2 188 223
+5c0fa 2 178 223
+5c0fc 4 183 223
+5c100 4 178 223
+5c104 6 183 223
+5c10a 4 188 223
+5c10e 4 178 223
+5c112 2 186 223
+5c114 2 120 215
+5c116 4 186 223
+5c11a 2 181 223
+5c11c 6 178 223
+5c122 2 188 223
+5c124 6 120 215
+5c12a 4 190 223
+5c12e 8 90 215
+5c136 6 194 223
+5c13c 6 194 223
+5c142 4 52 223
+5c146 2 52 223
+5c148 4 202 223
+5c14c 2 208 223
+5c14e 2 206 223
+5c150 4 205 223
+5c154 2 208 223
+5c156 2 206 223
+5c158 2 208 223
+5c15a 4 211 223
+5c15e 4 212 223
+5c162 6 213 223
+5c168 6 213 223
+5c16e 4 213 223
+5c172 2 68 215
+5c174 8 229 235
+5c17c 4 229 235
+5c180 4 69 215
+5c184 8 120 215
+5c18c 6 190 223
+5c192 6 218 223
+5c198 6 218 223
+5c19e 8 219 223
+5c1a6 2 233 223
+5c1a8 6 223 223
+5c1ae 6 224 223
+5c1b4 2 224 223
+5c1b6 2 233 223
+5c1b8 6 224 223
+5c1be 6 234 223
+5c1c4 2 92 215
+5c1c6 6 235 235
+5c1cc 4 223 246
+5c1d0 2 235 235
+5c1d2 4 191 246
+5c1d6 2 220 246
+5c1d8 2 191 246
+5c1da 2 93 215
+5c1dc 4 191 246
+5c1e0 2 95 215
+5c1e2 2 191 246
+5c1e4 4 95 215
+5c1e8 2 68 215
+5c1ea 4 209 223
+5c1ee 8 229 235
+5c1f6 6 229 235
+5c1fc 6 69 215
+5c202 4 211 223
+5c206 6 195 223
+5c20c 2 196 223
+5c20e 2 195 223
+5c210 2 197 223
+5c212 6 52 223
+5c218 a 235 235
+5c222 6 224 223
+5c228 2 224 223
+5c22a 4 224 223
+5c22e 2 224 223
+5c230 2 233 223
+5c232 6 233 223
+5c238 2 65 238
+5c23a 4 233 223
+5c23e 2 65 238
+5c240 8 233 223
+5c248 8 224 223
+FUNC 5c250 f8 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, unsigned long&, char*)
+5c250 6 247 223
+5c256 4 145 212
+5c25a 2 247 223
+5c25c 4 247 223
+5c260 4 145 212
+5c264 6 247 223
+5c26a 6 145 212
+5c270 c 351 218
+5c27c c 258 223
+5c288 8 112 215
+5c290 4 259 223
+5c294 2 263 223
+5c296 6 265 223
+5c29c 6 266 223
+5c2a2 4 287 223
+5c2a6 8 112 215
+5c2ae 2 289 223
+5c2b0 c 290 223
+5c2bc e 291 223
+5c2ca a 292 223
+5c2d4 a 351 218
+5c2de 2 57 227
+5c2e0 2 351 218
+5c2e2 4 57 227
+5c2e6 8 58 227
+5c2ee 2 57 227
+5c2f0 8 58 227
+5c2f8 2 283 223
+5c2fa 2 275 223
+5c2fc 20 283 223
+5c31c 6 156 238
+5c322 2 287 223
+5c324 4 287 223
+5c328 4 287 223
+5c32c 6 156 238
+5c332 16 291 223
+FUNC 5c348 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, unsigned long&) const
+5c348 4 557 223
+5c34c 8 557 223
+5c354 1a 560 223
+FUNC 5c370 1f4 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned long long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, unsigned long long&, int, bool, char, std::string const&, std::__false_type const&)
+5c370 6 178 223
+5c376 4 188 223
+5c37a 2 178 223
+5c37c 4 183 223
+5c380 2 178 223
+5c382 4 188 223
+5c386 4 178 223
+5c38a 4 183 223
+5c38e 2 188 223
+5c390 4 183 223
+5c394 a 188 223
+5c39e 4 183 223
+5c3a2 4 186 223
+5c3a6 6 183 223
+5c3ac 4 188 223
+5c3b0 2 186 223
+5c3b2 2 182 223
+5c3b4 4 178 223
+5c3b8 2 185 223
+5c3ba 2 186 223
+5c3bc c 182 223
+5c3c8 2 178 223
+5c3ca 2 196 223
+5c3cc 4 178 223
+5c3d0 6 181 223
+5c3d6 2 188 223
+5c3d8 2 120 215
+5c3da 2 188 223
+5c3dc 6 120 215
+5c3e2 4 190 223
+5c3e6 8 90 215
+5c3ee 2 194 223
+5c3f0 a 194 223
+5c3fa 6 52 223
+5c400 2 52 223
+5c402 8 202 223
+5c40a 4 208 223
+5c40e 2 206 223
+5c410 4 208 223
+5c414 2 205 223
+5c416 2 206 223
+5c418 8 208 223
+5c420 1c 211 223
+5c43c 4 212 223
+5c440 c 211 223
+5c44c 6 212 223
+5c452 6 213 223
+5c458 e 213 223
+5c466 a 213 223
+5c470 2 68 215
+5c472 8 229 235
+5c47a 4 229 235
+5c47e 4 69 215
+5c482 8 120 215
+5c48a 6 190 223
+5c490 2 218 223
+5c492 8 218 223
+5c49a 8 219 223
+5c4a2 4 223 223
+5c4a6 6 224 223
+5c4ac 10 224 223
+5c4bc 2 233 223
+5c4be 6 234 223
+5c4c4 2 92 215
+5c4c6 6 235 235
+5c4cc 4 223 246
+5c4d0 2 235 235
+5c4d2 4 191 246
+5c4d6 2 220 246
+5c4d8 2 191 246
+5c4da 2 93 215
+5c4dc 6 191 246
+5c4e2 6 95 215
+5c4e8 2 68 215
+5c4ea 4 209 223
+5c4ee 8 229 235
+5c4f6 6 229 235
+5c4fc 6 69 215
+5c502 6 211 223
+5c508 8 195 223
+5c510 2 196 223
+5c512 4 195 223
+5c516 2 197 223
+5c518 6 52 223
+5c51e a 235 235
+5c528 6 224 223
+5c52e 2 224 223
+5c530 a 224 223
+5c53a 4 224 223
+5c53e 2 233 223
+5c540 6 233 223
+5c546 2 65 238
+5c548 4 233 223
+5c54c 2 65 238
+5c54e 8 233 223
+5c556 e 224 223
+FUNC 5c564 fc 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, unsigned long long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, unsigned long long&, char*)
+5c564 6 247 223
+5c56a 4 145 212
+5c56e 2 247 223
+5c570 4 247 223
+5c574 4 145 212
+5c578 6 247 223
+5c57e 6 145 212
+5c584 c 351 218
+5c590 c 258 223
+5c59c 8 112 215
+5c5a4 4 259 223
+5c5a8 2 263 223
+5c5aa 6 265 223
+5c5b0 a 266 223
+5c5ba 2 287 223
+5c5bc 4 287 223
+5c5c0 8 112 215
+5c5c8 2 289 223
+5c5ca c 290 223
+5c5d6 e 291 223
+5c5e4 a 292 223
+5c5ee a 351 218
+5c5f8 2 57 227
+5c5fa 2 351 218
+5c5fc 4 57 227
+5c600 8 58 227
+5c608 2 57 227
+5c60a 8 58 227
+5c612 2 283 223
+5c614 2 275 223
+5c616 20 283 223
+5c636 6 156 238
+5c63c 2 287 223
+5c63e 4 287 223
+5c642 4 287 223
+5c646 6 156 238
+5c64c 14 291 223
+FUNC 5c660 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, unsigned long long&) const
+5c660 4 611 223
+5c664 8 611 223
+5c66c 1a 614 223
+FUNC 5c688 32 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, void*&) const
+5c688 4 587 223
+5c68c 6 587 223
+5c692 2 595 223
+5c694 4 587 223
+5c698 10 595 223
+5c6a8 4 596 223
+5c6ac 2 599 223
+5c6ae 8 597 223
+5c6b6 4 599 223
+FUNC 5c6bc 210 0 bool std::priv::__get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, int, long long&, int, bool, char, std::string const&, std::__true_type const&)
+5c6bc 6 118 223
+5c6c2 4 128 223
+5c6c6 2 118 223
+5c6c8 4 123 223
+5c6cc 2 118 223
+5c6ce 4 128 223
+5c6d2 4 118 223
+5c6d6 4 123 223
+5c6da 2 128 223
+5c6dc 4 123 223
+5c6e0 8 128 223
+5c6e8 4 123 223
+5c6ec 4 126 223
+5c6f0 6 123 223
+5c6f6 4 128 223
+5c6fa 4 118 223
+5c6fe 2 126 223
+5c700 4 118 223
+5c704 2 125 223
+5c706 2 126 223
+5c708 2 122 223
+5c70a 2 118 223
+5c70c c 122 223
+5c718 2 118 223
+5c71a 2 136 223
+5c71c 4 118 223
+5c720 a 121 223
+5c72a 2 128 223
+5c72c 2 120 215
+5c72e 2 128 223
+5c730 6 120 215
+5c736 4 130 223
+5c73a 8 90 215
+5c742 2 134 223
+5c744 a 134 223
+5c74e 6 52 223
+5c754 2 52 223
+5c756 8 142 223
+5c75e 4 148 223
+5c762 2 146 223
+5c764 4 148 223
+5c768 2 145 223
+5c76a 2 146 223
+5c76c 8 148 223
+5c774 16 151 223
+5c78a 4 152 223
+5c78e 8 151 223
+5c796 6 152 223
+5c79c 6 153 223
+5c7a2 e 153 223
+5c7b0 a 153 223
+5c7ba 2 68 215
+5c7bc 8 229 235
+5c7c4 4 229 235
+5c7c8 4 69 215
+5c7cc 8 120 215
+5c7d4 6 130 223
+5c7da 2 158 223
+5c7dc 8 158 223
+5c7e4 8 159 223
+5c7ec 2 173 223
+5c7ee 4 163 223
+5c7f2 6 164 223
+5c7f8 6 164 223
+5c7fe c 164 223
+5c80a 2 173 223
+5c80c 6 174 223
+5c812 2 92 215
+5c814 6 235 235
+5c81a 4 223 246
+5c81e 2 235 235
+5c820 4 191 246
+5c824 2 220 246
+5c826 4 191 246
+5c82a 2 93 215
+5c82c 6 191 246
+5c832 6 95 215
+5c838 2 68 215
+5c83a 4 149 223
+5c83e 8 229 235
+5c846 6 229 235
+5c84c 6 69 215
+5c852 6 151 223
+5c858 8 135 223
+5c860 2 136 223
+5c862 4 135 223
+5c866 2 137 223
+5c868 6 52 223
+5c86e a 235 235
+5c878 4 164 223
+5c87c c 164 223
+5c888 2 173 223
+5c88a 6 173 223
+5c890 4 65 238
+5c894 4 173 223
+5c898 4 65 238
+5c89c a 173 223
+5c8a6 e 164 223
+5c8b4 4 173 223
+5c8b8 4 164 223
+5c8bc a 164 223
+5c8c6 6 164 223
+FUNC 5c8cc fc 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_integer<std::istreambuf_iterator<char, std::char_traits<char> >, long long, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, long long&, char*)
+5c8cc 6 247 223
+5c8d2 4 145 212
+5c8d6 2 247 223
+5c8d8 4 247 223
+5c8dc 4 145 212
+5c8e0 6 247 223
+5c8e6 6 145 212
+5c8ec c 351 218
+5c8f8 c 258 223
+5c904 8 112 215
+5c90c 4 259 223
+5c910 2 263 223
+5c912 6 265 223
+5c918 a 266 223
+5c922 2 287 223
+5c924 4 287 223
+5c928 8 112 215
+5c930 2 289 223
+5c932 c 290 223
+5c93e e 291 223
+5c94c a 292 223
+5c956 a 351 218
+5c960 2 57 227
+5c962 2 351 218
+5c964 4 57 227
+5c968 8 58 227
+5c970 2 57 227
+5c972 8 58 227
+5c97a 2 283 223
+5c97c 2 275 223
+5c97e 20 283 223
+5c99e 6 156 238
+5c9a4 2 287 223
+5c9a6 4 287 223
+5c9aa 4 287 223
+5c9ae 6 156 238
+5c9b4 14 291 223
+FUNC 5c9c8 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, long long&) const
+5c9c8 4 604 223
+5c9cc 8 604 223
+5c9d4 1a 607 223
+FUNC 5c9f0 3b4 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__copy_integer_and_fill<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >(wchar_t const*, int, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int, int, wchar_t, wchar_t, wchar_t)
+5c9f0 a 148 225
+5c9fa 8 148 225
+5ca02 2 152 225
+5ca04 4 148 225
+5ca08 4 152 225
+5ca0c 4 159 225
+5ca10 4 161 225
+5ca14 a 153 225
+5ca1e 6 163 225
+5ca24 1a 167 225
+5ca3e c 167 225
+5ca4a 8 167 225
+5ca52 e 173 225
+5ca60 c 173 225
+5ca6c 8 179 225
+5ca74 2 480 200
+5ca76 10 179 225
+5ca86 2 480 200
+5ca88 2 62 229
+5ca8a 4 200 235
+5ca8e 2 200 235
+5ca90 6 200 235
+5ca96 c 200 235
+5caa2 2 200 235
+5caa4 8 62 229
+5caac 4 480 200
+5cab0 6 482 200
+5cab6 4 182 225
+5caba 4 213 200
+5cabe 4 482 200
+5cac2 4 213 200
+5cac6 8 482 200
+5cace 2e 182 225
+5cafc 4 213 200
+5cb00 4 182 225
+5cb04 8 213 200
+5cb0c 8 62 229
+5cb14 6 213 200
+5cb1a 4 214 200
+5cb1e 4 62 229
+5cb22 6 200 235
+5cb28 a 200 235
+5cb32 2 200 235
+5cb34 22 200 235
+5cb56 c 218 200
+5cb62 c 186 225
+5cb6e 10 153 225
+5cb7e 6 62 229
+5cb84 2 62 229
+5cb86 6 200 235
+5cb8c 8 200 235
+5cb94 4 200 235
+5cb98 6 62 229
+5cb9e c 62 229
+5cbaa 2 480 200
+5cbac c 62 229
+5cbb8 2 480 200
+5cbba 2 62 229
+5cbbc 4 200 235
+5cbc0 2 200 235
+5cbc2 6 200 235
+5cbc8 c 200 235
+5cbd4 2 200 235
+5cbd6 8 62 229
+5cbde 4 480 200
+5cbe2 6 482 200
+5cbe8 8 171 225
+5cbf0 c 482 200
+5cbfc a 178 225
+5cc06 2 179 225
+5cc08 2 178 225
+5cc0a c 179 225
+5cc16 16 200 235
+5cc2c 26 164 225
+5cc52 2 480 200
+5cc54 14 164 225
+5cc68 2 480 200
+5cc6a 2 62 229
+5cc6c 4 200 235
+5cc70 2 200 235
+5cc72 6 200 235
+5cc78 c 200 235
+5cc84 2 200 235
+5cc86 8 62 229
+5cc8e 4 480 200
+5cc92 10 482 200
+5cca2 e 200 235
+5ccb0 4 62 229
+5ccb4 4 176 225
+5ccb8 4 62 229
+5ccbc 2 62 229
+5ccbe 6 200 235
+5ccc4 8 200 235
+5cccc 2 200 235
+5ccce 4 62 229
+5ccd2 2 200 235
+5ccd4 2 62 229
+5ccd6 2 200 235
+5ccd8 4 62 229
+5ccdc 4 177 225
+5cce0 2 200 235
+5cce2 8 200 235
+5ccea 2 200 235
+5ccec 12 200 235
+5ccfe a 62 229
+5cd08 c 62 229
+5cd14 2 480 200
+5cd16 a 62 229
+5cd20 2 480 200
+5cd22 6 62 229
+5cd28 2 200 235
+5cd2a 2 200 235
+5cd2c 4 200 235
+5cd30 a 200 235
+5cd3a 2 200 235
+5cd3c a 62 229
+5cd46 4 480 200
+5cd4a 6 482 200
+5cd50 8 179 225
+5cd58 c 482 200
+5cd64 26 200 235
+5cd8a 6 62 229
+5cd90 14 200 235
+FUNC 5cda4 114 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__put_integer<std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >(char*, char*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int, wchar_t)
+5cda4 8 192 225
+5cdac 8 192 225
+5cdb4 2 145 212
+5cdb6 4 192 225
+5cdba a 145 212
+5cdc4 a 351 218
+5cdce 4 206 206
+5cdd2 2 351 218
+5cdd4 10 206 206
+5cde4 2 209 206
+5cde6 2 206 206
+5cde8 e 209 206
+5cdf6 a 351 218
+5ce00 2 87 227
+5ce02 2 351 218
+5ce04 8 87 227
+5ce0c 2 209 225
+5ce0e 2 203 225
+5ce10 6 209 225
+5ce16 8 211 225
+5ce1e 8 86 227
+5ce26 2 204 225
+5ce28 2 86 227
+5ce2a 4 204 225
+5ce2e 10 220 225
+5ce3e 4 138 212
+5ce42 6 139 212
+5ce48 22 225 225
+5ce6a 6 156 238
+5ce70 6 225 225
+5ce76 c 226 225
+5ce82 6 212 225
+5ce88 10 211 225
+5ce98 a 225 225
+5cea2 16 156 238
+FUNC 5ceb8 70 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_put_integer<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, unsigned long>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, unsigned long)
+5ceb8 4 372 225
+5cebc e 372 225
+5ceca 2 109 212
+5cecc 6 307 225
+5ced2 4 309 225
+5ced6 2 308 225
+5ced8 4 309 225
+5cedc e 308 225
+5ceea 2 309 225
+5ceec 16 381 225
+5cf02 6 382 225
+5cf08 4 380 225
+5cf0c 1c 310 225
+FUNC 5cf28 13c 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, void const*) const
+5cf28 6 475 225
+5cf2e 6 475 225
+5cf34 2 145 212
+5cf36 4 475 225
+5cf3a 2 62 229
+5cf3c 4 145 212
+5cf40 4 475 225
+5cf44 4 62 229
+5cf48 6 145 212
+5cf4e c 351 218
+5cf5a 6 477 225
+5cf60 2 109 212
+5cf62 4 139 212
+5cf66 8 123 212
+5cf6e 6 124 212
+5cf74 6 484 225
+5cf7a c 206 206
+5cf86 12 506 225
+5cf98 2 206 206
+5cf9a a 506 225
+5cfa4 2 112 212
+5cfa6 8 514 225
+5cfae 4 488 225
+5cfb2 6 488 225
+5cfb8 e 206 206
+5cfc6 6 62 229
+5cfcc a 200 235
+5cfd6 a 200 235
+5cfe0 2 200 235
+5cfe2 4 62 229
+5cfe6 e 206 206
+5cff4 a 200 235
+5cffe 2 206 206
+5d000 a 200 235
+5d00a 2 200 235
+5d00c a 62 229
+5d016 6 139 212
+5d01c 8 488 225
+5d024 8 206 206
+5d02c 4 62 229
+5d030 8 206 206
+5d038 1c 200 235
+5d054 10 477 225
+FUNC 5d064 22 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, unsigned long) const
+5d064 4 438 225
+5d068 8 438 225
+5d070 16 440 225
+FUNC 5d088 76 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, unsigned long long) const
+5d088 4 465 225
+5d08c 4 465 225
+5d090 2 310 225
+5d092 6 465 225
+5d098 2 310 225
+5d09a 4 465 225
+5d09e 4 310 225
+5d0a2 4 307 225
+5d0a6 2 109 212
+5d0a8 2 307 225
+5d0aa 4 309 225
+5d0ae 2 308 225
+5d0b0 4 309 225
+5d0b4 e 308 225
+5d0c2 2 309 225
+5d0c4 16 381 225
+5d0da 6 467 225
+5d0e0 4 380 225
+5d0e4 1a 310 225
+FUNC 5d100 76 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long long) const
+5d100 4 459 225
+5d104 4 459 225
+5d108 2 310 225
+5d10a 6 459 225
+5d110 2 310 225
+5d112 4 459 225
+5d116 4 310 225
+5d11a 4 307 225
+5d11e 2 109 212
+5d120 2 307 225
+5d122 4 309 225
+5d126 2 308 225
+5d128 4 309 225
+5d12c e 308 225
+5d13a 2 309 225
+5d13c 16 381 225
+5d152 6 461 225
+5d158 4 380 225
+5d15c 1a 310 225
+FUNC 5d178 72 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long) const
+5d178 4 432 225
+5d17c 6 432 225
+5d182 2 310 225
+5d184 4 432 225
+5d188 2 310 225
+5d18a 2 432 225
+5d18c 2 109 212
+5d18e 4 310 225
+5d192 2 307 225
+5d194 4 309 225
+5d198 2 308 225
+5d19a 4 309 225
+5d19e e 308 225
+5d1ac 2 309 225
+5d1ae 16 381 225
+5d1c4 6 434 225
+5d1ca 4 380 225
+5d1ce 1c 310 225
+FUNC 5d1ec 29a 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__copy_float_and_fill<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >(wchar_t const*, wchar_t const*, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int, int, wchar_t, wchar_t, wchar_t)
+5d1ec 8 42 225
+5d1f4 4 47 225
+5d1f8 6 42 225
+5d1fe 4 47 225
+5d202 2 42 225
+5d204 2 47 225
+5d206 2 42 225
+5d208 4 47 225
+5d20c 2 51 225
+5d20e 4 50 225
+5d212 4 51 225
+5d216 6 53 225
+5d21c 12 57 225
+5d22e a 57 225
+5d238 8 57 225
+5d240 8 61 225
+5d248 2 480 200
+5d24a 10 61 225
+5d25a 2 480 200
+5d25c 6 62 229
+5d262 4 200 235
+5d266 2 200 235
+5d268 6 200 235
+5d26e c 200 235
+5d27a 2 200 235
+5d27c a 62 229
+5d286 4 480 200
+5d28a 6 482 200
+5d290 4 64 225
+5d294 4 213 200
+5d298 c 482 200
+5d2a4 2e 64 225
+5d2d2 2 213 200
+5d2d4 4 64 225
+5d2d8 4 213 200
+5d2dc 8 62 229
+5d2e4 6 213 200
+5d2ea 4 214 200
+5d2ee 4 62 229
+5d2f2 6 200 235
+5d2f8 a 200 235
+5d302 2 200 235
+5d304 22 200 235
+5d326 c 218 200
+5d332 c 68 225
+5d33e c 48 225
+5d34a 4 62 229
+5d34e 4 59 225
+5d352 2 62 229
+5d354 2 62 229
+5d356 2 62 229
+5d358 6 200 235
+5d35e 8 200 235
+5d366 4 200 235
+5d36a 6 62 229
+5d370 c 62 229
+5d37c 2 480 200
+5d37e c 62 229
+5d38a 2 480 200
+5d38c 2 62 229
+5d38e 4 200 235
+5d392 2 200 235
+5d394 6 200 235
+5d39a c 200 235
+5d3a6 2 200 235
+5d3a8 8 62 229
+5d3b0 4 480 200
+5d3b4 12 482 200
+5d3c6 a 60 225
+5d3d0 2 61 225
+5d3d2 2 60 225
+5d3d4 c 61 225
+5d3e0 1a 200 235
+5d3fa 1e 54 225
+5d418 2 480 200
+5d41a 16 54 225
+5d430 2 480 200
+5d432 2 62 229
+5d434 4 200 235
+5d438 2 200 235
+5d43a 6 200 235
+5d440 c 200 235
+5d44c 2 200 235
+5d44e 8 62 229
+5d456 4 480 200
+5d45a 10 482 200
+5d46a 1c 200 235
+FUNC 5d488 1dc 0 bool std::priv::__copy_grouped_digits<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::priv::__basic_iostring<char>&, wchar_t const*, wchar_t, std::string const&, bool&)
+5d488 6 332 223
+5d48e 2 332 223
+5d490 2 338 223
+5d492 2 339 223
+5d494 2 338 223
+5d496 2 332 223
+5d498 4 338 223
+5d49c 4 332 223
+5d4a0 4 120 215
+5d4a4 2 332 223
+5d4a6 2 336 223
+5d4a8 2 101 205
+5d4aa 8 332 223
+5d4b2 4 120 215
+5d4b6 2 341 223
+5d4b8 8 90 215
+5d4c0 6 343 223
+5d4c6 2 342 223
+5d4c8 4 343 223
+5d4cc 2 344 223
+5d4ce 6 345 223
+5d4d4 4 346 223
+5d4d8 2 347 223
+5d4da 2 68 215
+5d4dc 8 229 235
+5d4e4 4 229 235
+5d4e8 4 69 215
+5d4ec 8 120 215
+5d4f4 4 341 223
+5d4f8 2 359 223
+5d4fa 2 361 223
+5d4fc 2 65 238
+5d4fe 6 359 223
+5d504 6 360 223
+5d50a 2 65 238
+5d50c a 361 223
+5d516 8 363 223
+5d51e 2 74 238
+5d520 4 64 238
+5d524 4 74 238
+5d528 2 74 238
+5d52a 8 74 238
+5d532 4 535 237
+5d536 4 101 205
+5d53a 2 350 223
+5d53c 2 90 238
+5d53e 2 352 223
+5d540 2 350 223
+5d542 2 352 223
+5d544 2 351 223
+5d546 2 68 215
+5d548 2 539 237
+5d54a 2 229 235
+5d54c 4 539 237
+5d550 6 229 235
+5d556 6 229 235
+5d55c 6 69 215
+5d562 2 92 215
+5d564 6 235 235
+5d56a 4 764 186
+5d56e 2 235 235
+5d570 4 191 246
+5d574 2 93 215
+5d576 8 191 246
+5d57e 2 95 215
+5d580 2 191 246
+5d582 4 95 215
+5d586 a 235 235
+5d590 2 400 237
+5d592 4 304 237
+5d596 e 306 237
+5d5a4 6 307 237
+5d5aa 8 307 237
+5d5b2 1c 134 222
+5d5ce 2 86 243
+5d5d0 4 84 243
+5d5d4 2 86 243
+5d5d6 6 332 223
+5d5dc 2 84 243
+5d5de 4 764 186
+5d5e2 4 146 205
+5d5e6 4 86 243
+5d5ea 4 101 205
+5d5ee 4 64 238
+5d5f2 4 96 238
+5d5f6 2 96 238
+5d5f8 6 97 238
+5d5fe 4 70 213
+5d602 2 97 238
+5d604 2 135 222
+5d606 2 161 201
+5d608 6 135 222
+5d60e 2 161 201
+5d610 c 161 201
+5d61c 2 175 236
+5d61e 2 164 238
+5d620 4 175 236
+5d624 2 160 238
+5d626 6 165 238
+5d62c 4 64 213
+5d630 8 67 213
+5d638 4 64 213
+5d63c 6 135 222
+5d642 c 175 236
+5d64e 2 164 238
+5d650 2 160 238
+5d652 6 165 238
+5d658 c 600 236
+FUNC 5d664 164 0 bool std::priv::__copy_digits<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::priv::__basic_iostring<char>&, wchar_t const*)
+5d664 6 314 223
+5d66a 2 314 223
+5d66c 2 316 223
+5d66e 8 314 223
+5d676 2 101 205
+5d678 4 314 223
+5d67c 2 318 223
+5d67e 2 90 215
+5d680 4 320 223
+5d684 2 319 223
+5d686 8 320 223
+5d68e 2 74 238
+5d690 4 64 238
+5d694 2 74 238
+5d696 4 321 223
+5d69a 2 74 238
+5d69c 2 74 238
+5d69e 8 74 238
+5d6a6 4 535 237
+5d6aa 4 101 205
+5d6ae 2 90 238
+5d6b0 4 321 223
+5d6b4 2 68 215
+5d6b6 2 539 237
+5d6b8 2 229 235
+5d6ba 2 539 237
+5d6bc 2 229 235
+5d6be 2 539 237
+5d6c0 4 229 235
+5d6c4 4 229 235
+5d6c8 2 322 223
+5d6ca 4 69 215
+5d6ce 8 120 215
+5d6d6 2 318 223
+5d6d8 6 90 215
+5d6de 2 92 215
+5d6e0 6 235 235
+5d6e6 4 764 186
+5d6ea 2 235 235
+5d6ec 4 191 246
+5d6f0 2 93 215
+5d6f2 2 191 246
+5d6f4 2 320 223
+5d6f6 4 191 246
+5d6fa 2 320 223
+5d6fc 2 191 246
+5d6fe 4 95 215
+5d702 2 319 223
+5d704 8 320 223
+5d70c 8 328 223
+5d714 8 229 235
+5d71c 2 400 237
+5d71e 4 304 237
+5d722 e 306 237
+5d730 6 307 237
+5d736 4 307 237
+5d73a 4 64 213
+5d73e 6 67 213
+5d744 2 64 213
+5d746 2 86 243
+5d748 4 84 243
+5d74c 2 86 243
+5d74e 2 314 223
+5d750 2 84 243
+5d752 4 764 186
+5d756 4 146 205
+5d75a 4 86 243
+5d75e 4 101 205
+5d762 4 64 238
+5d766 4 96 238
+5d76a 2 96 238
+5d76c 6 97 238
+5d772 4 70 213
+5d776 2 97 238
+5d778 2 135 222
+5d77a 4 161 201
+5d77e 6 161 201
+5d784 4 175 236
+5d788 2 164 238
+5d78a 2 160 238
+5d78c 6 165 238
+5d792 4 307 237
+5d796 12 134 222
+5d7a8 a 235 235
+5d7b2 8 135 222
+5d7ba e 600 236
+FUNC 5d7c8 c8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::push_back(char)
+5d7c8 4 64 238
+5d7cc 4 534 237
+5d7d0 2 74 238
+5d7d2 4 534 237
+5d7d6 2 74 238
+5d7d8 6 74 238
+5d7de 4 535 237
+5d7e2 4 101 205
+5d7e6 2 90 238
+5d7e8 2 232 246
+5d7ea 6 539 237
+5d7f0 4 540 237
+5d7f4 2 400 237
+5d7f6 4 304 237
+5d7fa a 306 237
+5d804 4 307 237
+5d808 4 307 237
+5d80c 4 64 213
+5d810 6 67 213
+5d816 2 64 213
+5d818 2 86 243
+5d81a 4 84 243
+5d81e 2 86 243
+5d820 4 534 237
+5d824 2 84 243
+5d826 4 764 186
+5d82a 4 146 205
+5d82e 4 86 243
+5d832 4 101 205
+5d836 4 64 238
+5d83a 4 96 238
+5d83e 2 96 238
+5d840 6 97 238
+5d846 4 70 213
+5d84a 2 97 238
+5d84c 4 161 201
+5d850 4 161 201
+5d854 2 175 236
+5d856 2 164 238
+5d858 2 160 238
+5d85a 6 165 238
+5d860 4 307 237
+5d864 12 134 222
+5d876 8 74 238
+5d87e 6 135 222
+5d884 c 600 236
+FUNC 5d890 8e 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__copy_sign<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::priv::__basic_iostring<char>&, wchar_t, wchar_t)
+5d890 4 297 223
+5d894 8 297 223
+5d89c 8 120 215
+5d8a4 2 299 223
+5d8a6 8 308 223
+5d8ae 6 309 223
+5d8b4 8 90 215
+5d8bc 6 301 223
+5d8c2 6 303 223
+5d8c8 8 304 223
+5d8d0 2 68 215
+5d8d2 8 229 235
+5d8da 4 229 235
+5d8de 8 69 215
+5d8e6 2 92 215
+5d8e8 6 235 235
+5d8ee 4 764 186
+5d8f2 2 235 235
+5d8f4 4 191 246
+5d8f8 2 93 215
+5d8fa c 191 246
+5d906 8 95 215
+5d90e 8 229 235
+5d916 8 235 235
+FUNC 5d920 a0 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__copy_sign<std::istreambuf_iterator<char, std::char_traits<char> >, char>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::priv::__basic_iostring<char>&, char, char)
+5d920 6 297 223
+5d926 6 297 223
+5d92c 4 120 215
+5d930 4 297 223
+5d934 4 120 215
+5d938 2 299 223
+5d93a 8 308 223
+5d942 c 309 223
+5d94e a 90 215
+5d958 8 301 223
+5d960 8 303 223
+5d968 8 304 223
+5d970 2 68 215
+5d972 8 229 235
+5d97a 4 229 235
+5d97e 8 69 215
+5d986 2 92 215
+5d988 6 235 235
+5d98e 4 223 246
+5d992 2 235 235
+5d994 4 191 246
+5d998 2 220 246
+5d99a 2 191 246
+5d99c 4 93 215
+5d9a0 4 191 246
+5d9a4 2 95 215
+5d9a6 4 191 246
+5d9aa 6 95 215
+5d9b0 8 229 235
+5d9b8 8 235 235
+FUNC 5d9c0 1b4 0 bool std::priv::__copy_grouped_digits<std::istreambuf_iterator<char, std::char_traits<char> >, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >, std::priv::__basic_iostring<char>&, char const*, char, std::string const&, bool&)
+5d9c0 6 332 223
+5d9c6 4 332 223
+5d9ca 2 338 223
+5d9cc 2 332 223
+5d9ce 2 338 223
+5d9d0 2 339 223
+5d9d2 4 332 223
+5d9d6 4 120 215
+5d9da 4 70 213
+5d9de 6 332 223
+5d9e4 4 338 223
+5d9e8 2 336 223
+5d9ea 2 347 223
+5d9ec 2 70 213
+5d9ee 4 120 215
+5d9f2 4 341 223
+5d9f6 8 90 215
+5d9fe 4 42 223
+5da02 4 39 223
+5da06 6 344 223
+5da0c 2 74 238
+5da0e 4 64 238
+5da12 4 74 238
+5da16 2 74 238
+5da18 8 74 238
+5da20 4 535 237
+5da24 4 101 205
+5da28 2 350 223
+5da2a 2 90 238
+5da2c 2 352 223
+5da2e 2 350 223
+5da30 2 352 223
+5da32 2 232 246
+5da34 2 68 215
+5da36 4 539 237
+5da3a 2 229 235
+5da3c 2 539 237
+5da3e 6 229 235
+5da44 4 229 235
+5da48 4 69 215
+5da4c 8 120 215
+5da54 4 341 223
+5da58 2 359 223
+5da5a 2 361 223
+5da5c 6 359 223
+5da62 6 360 223
+5da68 2 65 238
+5da6a 2 361 223
+5da6c 2 65 238
+5da6e 8 361 223
+5da76 8 363 223
+5da7e 4 346 223
+5da82 2 347 223
+5da84 2 68 215
+5da86 8 229 235
+5da8e 6 229 235
+5da94 6 69 215
+5da9a 2 92 215
+5da9c 6 235 235
+5daa2 4 223 246
+5daa6 2 235 235
+5daa8 4 191 246
+5daac 2 220 246
+5daae 2 191 246
+5dab0 2 93 215
+5dab2 4 191 246
+5dab6 2 95 215
+5dab8 2 191 246
+5daba 4 95 215
+5dabe 8 235 235
+5dac6 2 400 237
+5dac8 4 304 237
+5dacc a 306 237
+5dad6 4 307 237
+5dada 8 307 237
+5dae2 14 134 222
+5daf6 2 86 243
+5daf8 4 84 243
+5dafc 2 86 243
+5dafe 4 332 223
+5db02 2 84 243
+5db04 4 764 186
+5db08 4 146 205
+5db0c 4 86 243
+5db10 4 101 205
+5db14 4 64 238
+5db18 4 96 238
+5db1c 2 96 238
+5db1e 4 70 213
+5db22 2 97 238
+5db24 4 70 213
+5db28 2 97 238
+5db2a 2 161 201
+5db2c 4 135 222
+5db30 2 161 201
+5db32 8 161 201
+5db3a 2 175 236
+5db3c 2 164 238
+5db3e 2 160 238
+5db40 6 165 238
+5db46 4 64 213
+5db4a 6 67 213
+5db50 4 64 213
+5db54 8 135 222
+5db5c 2 175 236
+5db5e 2 160 238
+5db60 2 164 238
+5db62 6 165 238
+5db68 c 600 236
+FUNC 5db74 3a2 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__copy_integer_and_fill<char, std::ostreambuf_iterator<char, std::char_traits<char> > >(char const*, int, std::ostreambuf_iterator<char, std::char_traits<char> >, int, int, char, char, char)
+5db74 a 148 225
+5db7e 8 148 225
+5db86 2 152 225
+5db88 6 148 225
+5db8e 4 152 225
+5db92 4 159 225
+5db96 4 161 225
+5db9a a 153 225
+5dba4 6 163 225
+5dbaa 18 167 225
+5dbc2 e 167 225
+5dbd0 a 167 225
+5dbda e 173 225
+5dbe8 c 173 225
+5dbf4 8 179 225
+5dbfc 2 480 200
+5dbfe e 179 225
+5dc0c 2 480 200
+5dc0e 6 62 229
+5dc14 6 200 235
+5dc1a a 200 235
+5dc24 2 200 235
+5dc26 4 480 200
+5dc2a 6 482 200
+5dc30 4 182 225
+5dc34 4 213 200
+5dc38 a 482 200
+5dc42 14 182 225
+5dc56 4 213 200
+5dc5a 1e 182 225
+5dc78 e 213 200
+5dc86 4 214 200
+5dc8a 4 62 229
+5dc8e 6 200 235
+5dc94 a 200 235
+5dc9e 2 200 235
+5dca0 8 200 235
+5dca8 8 62 229
+5dcb0 6 213 200
+5dcb6 c 218 200
+5dcc2 c 186 225
+5dcce e 200 235
+5dcdc 10 62 229
+5dcec 10 153 225
+5dcfc 4 62 229
+5dd00 2 62 229
+5dd02 2 62 229
+5dd04 2 62 229
+5dd06 6 200 235
+5dd0c 8 200 235
+5dd14 4 62 229
+5dd18 4 200 235
+5dd1c c 62 229
+5dd28 2 480 200
+5dd2a 8 62 229
+5dd32 2 480 200
+5dd34 6 62 229
+5dd3a 6 200 235
+5dd40 a 200 235
+5dd4a 2 200 235
+5dd4c 4 480 200
+5dd50 6 482 200
+5dd56 8 171 225
+5dd5e a 482 200
+5dd68 a 178 225
+5dd72 2 179 225
+5dd74 2 178 225
+5dd76 c 179 225
+5dd82 e 200 235
+5dd90 10 62 229
+5dda0 26 164 225
+5ddc6 2 480 200
+5ddc8 12 164 225
+5ddda 2 480 200
+5dddc 6 62 229
+5dde2 6 200 235
+5dde8 a 200 235
+5ddf2 2 200 235
+5ddf4 4 480 200
+5ddf8 10 482 200
+5de08 a 200 235
+5de12 c 62 229
+5de1e 4 62 229
+5de22 4 176 225
+5de26 2 62 229
+5de28 4 62 229
+5de2c 6 200 235
+5de32 8 200 235
+5de3a 4 200 235
+5de3e 4 62 229
+5de42 4 177 225
+5de46 2 200 235
+5de48 4 62 229
+5de4c 8 200 235
+5de54 2 200 235
+5de56 c 200 235
+5de62 e 62 229
+5de70 c 62 229
+5de7c 2 480 200
+5de7e 8 62 229
+5de86 2 480 200
+5de88 6 62 229
+5de8e 6 200 235
+5de94 a 200 235
+5de9e 2 200 235
+5dea0 4 480 200
+5dea4 6 482 200
+5deaa 8 179 225
+5deb2 c 482 200
+5debe c 200 235
+5deca 10 62 229
+5deda e 200 235
+5dee8 16 62 229
+5defe c 200 235
+5df0a 8 62 229
+5df12 4 218 200
+FUNC 5df18 f8 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__put_integer<std::ostreambuf_iterator<char, std::char_traits<char> > >(char*, char*, std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int, char)
+5df18 8 232 225
+5df20 6 232 225
+5df26 2 145 212
+5df28 4 232 225
+5df2c 4 145 212
+5df30 4 232 225
+5df34 6 145 212
+5df3a c 351 218
+5df46 6 237 225
+5df4c 8 58 227
+5df54 2 235 225
+5df56 4 58 227
+5df5a 8 240 225
+5df62 6 242 225
+5df68 2 224 200
+5df6a a 224 200
+5df74 a 57 227
+5df7e 2 255 225
+5df80 2 57 227
+5df82 2 255 225
+5df84 14 256 225
+5df98 2 254 225
+5df9a 2 256 225
+5df9c 2 138 212
+5df9e 4 139 212
+5dfa2 24 260 225
+5dfc6 6 156 238
+5dfcc c 261 225
+5dfd8 4 243 225
+5dfdc 4 242 225
+5dfe0 6 243 225
+5dfe6 c 242 225
+5dff2 a 237 225
+5dffc 14 156 238
+FUNC 5e010 72 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__do_put_integer<char, std::ostreambuf_iterator<char, std::char_traits<char> >, unsigned long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, unsigned long)
+5e010 4 372 225
+5e014 e 372 225
+5e022 2 109 212
+5e024 6 307 225
+5e02a 4 309 225
+5e02e 2 308 225
+5e030 4 309 225
+5e034 e 308 225
+5e042 2 309 225
+5e044 18 381 225
+5e05c 6 382 225
+5e062 4 380 225
+5e066 1c 310 225
+FUNC 5e084 134 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, void const*) const
+5e084 6 475 225
+5e08a 6 475 225
+5e090 2 145 212
+5e092 4 475 225
+5e096 2 62 229
+5e098 4 145 212
+5e09c 4 475 225
+5e0a0 4 62 229
+5e0a4 6 145 212
+5e0aa c 351 218
+5e0b6 6 477 225
+5e0bc 2 109 212
+5e0be 4 139 212
+5e0c2 8 123 212
+5e0ca 6 124 212
+5e0d0 6 484 225
+5e0d6 c 101 206
+5e0e2 12 506 225
+5e0f4 2 101 206
+5e0f6 a 506 225
+5e100 2 112 212
+5e102 8 514 225
+5e10a 4 488 225
+5e10e 6 488 225
+5e114 e 101 206
+5e122 6 62 229
+5e128 a 200 235
+5e132 a 200 235
+5e13c 2 200 235
+5e13e e 101 206
+5e14c a 200 235
+5e156 2 101 206
+5e158 a 200 235
+5e162 2 200 235
+5e164 6 139 212
+5e16a 8 488 225
+5e172 a 200 235
+5e17c 4 62 229
+5e180 8 101 206
+5e188 4 62 229
+5e18c 8 101 206
+5e194 a 200 235
+5e19e c 62 229
+5e1aa e 477 225
+FUNC 5e1b8 24 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, unsigned long) const
+5e1b8 4 438 225
+5e1bc 8 438 225
+5e1c4 18 440 225
+FUNC 5e1dc 78 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, unsigned long long) const
+5e1dc 4 465 225
+5e1e0 4 465 225
+5e1e4 2 310 225
+5e1e6 6 465 225
+5e1ec 2 310 225
+5e1ee 4 465 225
+5e1f2 4 310 225
+5e1f6 4 307 225
+5e1fa 2 109 212
+5e1fc 2 307 225
+5e1fe 4 309 225
+5e202 2 308 225
+5e204 4 309 225
+5e208 e 308 225
+5e216 2 309 225
+5e218 18 381 225
+5e230 6 467 225
+5e236 4 380 225
+5e23a 1a 310 225
+FUNC 5e254 78 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long long) const
+5e254 4 459 225
+5e258 4 459 225
+5e25c 2 310 225
+5e25e 6 459 225
+5e264 2 310 225
+5e266 4 459 225
+5e26a 4 310 225
+5e26e 4 307 225
+5e272 2 109 212
+5e274 2 307 225
+5e276 4 309 225
+5e27a 2 308 225
+5e27c 4 309 225
+5e280 e 308 225
+5e28e 2 309 225
+5e290 18 381 225
+5e2a8 6 461 225
+5e2ae 4 380 225
+5e2b2 1a 310 225
+FUNC 5e2cc 74 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const
+5e2cc 4 432 225
+5e2d0 6 432 225
+5e2d6 2 310 225
+5e2d8 4 432 225
+5e2dc 2 310 225
+5e2de 2 432 225
+5e2e0 2 109 212
+5e2e2 4 310 225
+5e2e6 2 307 225
+5e2e8 4 309 225
+5e2ec 2 308 225
+5e2ee 4 309 225
+5e2f2 e 308 225
+5e300 2 309 225
+5e302 18 381 225
+5e31a 6 434 225
+5e320 4 380 225
+5e324 1c 310 225
+FUNC 5e340 294 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__copy_float_and_fill<char, std::ostreambuf_iterator<char, std::char_traits<char> > >(char const*, char const*, std::ostreambuf_iterator<char, std::char_traits<char> >, int, int, char, char, char)
+5e340 8 42 225
+5e348 4 47 225
+5e34c 8 42 225
+5e354 2 47 225
+5e356 4 42 225
+5e35a 4 47 225
+5e35e 2 51 225
+5e360 4 50 225
+5e364 4 51 225
+5e368 6 53 225
+5e36e 12 57 225
+5e380 c 57 225
+5e38c a 57 225
+5e396 8 61 225
+5e39e 2 480 200
+5e3a0 10 61 225
+5e3b0 2 480 200
+5e3b2 6 62 229
+5e3b8 a 200 235
+5e3c2 c 200 235
+5e3ce 2 200 235
+5e3d0 4 480 200
+5e3d4 6 482 200
+5e3da 4 64 225
+5e3de 4 213 200
+5e3e2 c 482 200
+5e3ee 2e 64 225
+5e41c 2 213 200
+5e41e 4 64 225
+5e422 a 213 200
+5e42c 4 214 200
+5e430 4 62 229
+5e434 6 200 235
+5e43a a 200 235
+5e444 2 200 235
+5e446 8 200 235
+5e44e 8 62 229
+5e456 6 213 200
+5e45c c 218 200
+5e468 c 68 225
+5e474 10 200 235
+5e484 10 62 229
+5e494 c 48 225
+5e4a0 4 62 229
+5e4a4 4 59 225
+5e4a8 2 62 229
+5e4aa 2 62 229
+5e4ac 2 62 229
+5e4ae 6 200 235
+5e4b4 8 200 235
+5e4bc 4 62 229
+5e4c0 2 200 235
+5e4c2 c 62 229
+5e4ce 2 480 200
+5e4d0 8 62 229
+5e4d8 2 480 200
+5e4da 6 62 229
+5e4e0 6 200 235
+5e4e6 a 200 235
+5e4f0 2 200 235
+5e4f2 4 480 200
+5e4f6 10 482 200
+5e506 a 60 225
+5e510 2 61 225
+5e512 2 60 225
+5e514 c 61 225
+5e520 10 200 235
+5e530 12 62 229
+5e542 20 54 225
+5e562 2 480 200
+5e564 14 54 225
+5e578 2 480 200
+5e57a 6 62 229
+5e580 6 200 235
+5e586 a 200 235
+5e590 2 200 235
+5e592 4 480 200
+5e596 10 482 200
+5e5a6 a 200 235
+5e5b0 c 62 229
+5e5bc a 200 235
+5e5c6 e 62 229
+FUNC 5e5d4 7c 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__put_float<std::ostreambuf_iterator<char, std::char_traits<char> > >(std::priv::__basic_iostring<char>&, std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, char, unsigned int, std::string const&)
+5e5d4 6 96 225
+5e5da 4 65 238
+5e5de 2 96 225
+5e5e0 2 400 237
+5e5e2 4 96 225
+5e5e6 2 400 237
+5e5e8 2 100 225
+5e5ea 8 96 225
+5e5f2 2 100 225
+5e5f4 4 100 225
+5e5f8 8 101 225
+5e600 8 104 225
+5e608 16 105 225
+5e61e 2 138 212
+5e620 4 65 238
+5e624 2 110 225
+5e626 2 139 212
+5e628 2 109 212
+5e62a 2 139 212
+5e62c 1e 110 225
+5e64a 6 111 225
+FUNC 5e650 10c 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__do_put_float<char, std::ostreambuf_iterator<char, std::char_traits<char> >, long double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long double)
+5e650 8 115 225
+5e658 4 115 225
+5e65c 4 41 213
+5e660 2 120 238
+5e662 6 115 225
+5e668 8 108 213
+5e670 2 115 225
+5e672 4 108 213
+5e676 8 41 213
+5e67e 2 120 238
+5e680 4 41 213
+5e684 6 124 238
+5e68a 4 481 201
+5e68e 4 124 238
+5e692 2 90 238
+5e694 2 101 205
+5e696 2 119 225
+5e698 2 101 205
+5e69a 14 119 225
+5e6ae c 145 212
+5e6ba c 351 218
+5e6c6 6 121 225
+5e6cc 8 56 227
+5e6d4 2 57 227
+5e6d6 2 56 227
+5e6d8 6 57 227
+5e6de 4 58 227
+5e6e2 2 57 227
+5e6e4 8 58 227
+5e6ec 22 124 225
+5e70e 6 156 238
+5e714 4 64 238
+5e718 4 96 238
+5e71c 2 96 238
+5e71e 2 70 213
+5e720 2 97 238
+5e722 2 70 213
+5e724 2 97 238
+5e726 4 161 201
+5e72a 4 161 201
+5e72e a 125 225
+5e738 6 135 222
+5e73e 12 156 238
+5e750 c 121 225
+FUNC 5e75c 28 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long double) const
+5e75c 4 451 225
+5e760 8 451 225
+5e768 1c 453 225
+FUNC 5e784 10c 0 std::ostreambuf_iterator<char, std::char_traits<char> > std::priv::__do_put_float<char, std::ostreambuf_iterator<char, std::char_traits<char> >, double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double)
+5e784 8 115 225
+5e78c 4 115 225
+5e790 4 41 213
+5e794 2 120 238
+5e796 6 115 225
+5e79c 8 108 213
+5e7a4 2 115 225
+5e7a6 4 108 213
+5e7aa 8 41 213
+5e7b2 2 120 238
+5e7b4 4 41 213
+5e7b8 6 124 238
+5e7be 4 481 201
+5e7c2 4 124 238
+5e7c6 2 90 238
+5e7c8 2 101 205
+5e7ca 2 119 225
+5e7cc 2 101 205
+5e7ce 14 119 225
+5e7e2 c 145 212
+5e7ee c 351 218
+5e7fa 6 121 225
+5e800 8 56 227
+5e808 2 57 227
+5e80a 2 56 227
+5e80c 6 57 227
+5e812 4 58 227
+5e816 2 57 227
+5e818 8 58 227
+5e820 22 124 225
+5e842 6 156 238
+5e848 4 64 238
+5e84c 4 96 238
+5e850 2 96 238
+5e852 2 70 213
+5e854 2 97 238
+5e856 2 70 213
+5e858 2 97 238
+5e85a 4 161 201
+5e85e 4 161 201
+5e862 a 125 225
+5e86c 6 135 222
+5e872 12 156 238
+5e884 c 121 225
+FUNC 5e890 28 0 std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const
+5e890 4 444 225
+5e894 8 444 225
+5e89c 1c 446 225
+FUNC 5e8b8 40 0 std::priv::_String_base<wchar_t, std::priv::__iostring_allocator<wchar_t> >::_M_allocate_block(unsigned int)
+5e8b8 4 608 236
+5e8bc 2 607 236
+5e8be 2 607 236
+5e8c0 2 608 236
+5e8c2 2 608 236
+5e8c4 4 610 236
+5e8c8 2 67 213
+5e8ca 4 64 213
+5e8ce 4 67 213
+5e8d2 2 64 213
+5e8d4 2 306 201
+5e8d6 6 134 222
+5e8dc 2 613 236
+5e8de 4 611 236
+5e8e2 2 612 236
+5e8e4 4 613 236
+5e8e8 10 600 236
+FUNC 5e8f8 164 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__put_float<std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >(std::priv::__basic_iostring<char>&, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, wchar_t, wchar_t, unsigned int, std::string const&)
+5e8f8 a 74 225
+5e902 a 74 225
+5e90c 2 145 212
+5e90e 4 74 225
+5e912 4 145 212
+5e916 4 74 225
+5e91a 8 145 212
+5e922 c 351 218
+5e92e 6 78 225
+5e934 c 108 213
+5e940 8 120 238
+5e948 a 41 213
+5e952 2 120 238
+5e954 4 41 213
+5e958 6 124 238
+5e95e 4 481 201
+5e962 4 124 238
+5e966 4 101 205
+5e96a 4 81 225
+5e96e 2 101 205
+5e970 e 81 225
+5e97e 8 83 225
+5e986 16 206 206
+5e99c 1a 84 225
+5e9b6 4 138 212
+5e9ba 6 206 206
+5e9c0 4 65 238
+5e9c4 2 138 212
+5e9c6 2 139 212
+5e9c8 2 206 206
+5e9ca 4 139 212
+5e9ce 4 89 238
+5e9d2 4 109 212
+5e9d6 e 206 206
+5e9e4 2 89 225
+5e9e6 4 400 237
+5e9ea 2 89 225
+5e9ec 4 89 225
+5e9f0 2 89 225
+5e9f2 2 89 225
+5e9f4 1c 89 225
+5ea10 4 64 238
+5ea14 4 96 238
+5ea18 2 96 238
+5ea1a 4 70 213
+5ea1e 2 97 238
+5ea20 4 70 213
+5ea24 2 97 238
+5ea26 4 323 201
+5ea2a 4 161 201
+5ea2e 4 161 201
+5ea32 c 90 225
+5ea3e 6 135 222
+5ea44 a 78 225
+5ea4e e 89 225
+FUNC 5ea5c 10c 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_put_float<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long double>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long double)
+5ea5c 8 115 225
+5ea64 4 115 225
+5ea68 4 41 213
+5ea6c 2 120 238
+5ea6e 6 115 225
+5ea74 8 108 213
+5ea7c 2 115 225
+5ea7e 4 108 213
+5ea82 8 41 213
+5ea8a 2 120 238
+5ea8c 4 41 213
+5ea90 6 124 238
+5ea96 4 481 201
+5ea9a 4 124 238
+5ea9e 2 90 238
+5eaa0 2 101 205
+5eaa2 2 119 225
+5eaa4 2 101 205
+5eaa6 14 119 225
+5eaba c 145 212
+5eac6 c 351 218
+5ead2 6 121 225
+5ead8 8 85 227
+5eae0 2 86 227
+5eae2 2 85 227
+5eae4 6 86 227
+5eaea 4 87 227
+5eaee 2 86 227
+5eaf0 8 87 227
+5eaf8 20 124 225
+5eb18 6 156 238
+5eb1e 4 64 238
+5eb22 4 96 238
+5eb26 2 96 238
+5eb28 2 70 213
+5eb2a 2 97 238
+5eb2c 2 70 213
+5eb2e 2 97 238
+5eb30 4 161 201
+5eb34 4 161 201
+5eb38 a 125 225
+5eb42 6 135 222
+5eb48 12 156 238
+5eb5a e 121 225
+FUNC 5eb68 26 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long double) const
+5eb68 4 451 225
+5eb6c 8 451 225
+5eb74 1a 453 225
+FUNC 5eb90 10c 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_put_float<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, double>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, double)
+5eb90 8 115 225
+5eb98 4 115 225
+5eb9c 4 41 213
+5eba0 2 120 238
+5eba2 6 115 225
+5eba8 8 108 213
+5ebb0 2 115 225
+5ebb2 4 108 213
+5ebb6 8 41 213
+5ebbe 2 120 238
+5ebc0 4 41 213
+5ebc4 6 124 238
+5ebca 4 481 201
+5ebce 4 124 238
+5ebd2 2 90 238
+5ebd4 2 101 205
+5ebd6 2 119 225
+5ebd8 2 101 205
+5ebda 14 119 225
+5ebee c 145 212
+5ebfa c 351 218
+5ec06 6 121 225
+5ec0c 8 85 227
+5ec14 2 86 227
+5ec16 2 85 227
+5ec18 6 86 227
+5ec1e 4 87 227
+5ec22 2 86 227
+5ec24 8 87 227
+5ec2c 20 124 225
+5ec4c 6 156 238
+5ec52 4 64 238
+5ec56 4 96 238
+5ec5a 2 96 238
+5ec5c 2 70 213
+5ec5e 2 97 238
+5ec60 2 70 213
+5ec62 2 97 238
+5ec64 4 161 201
+5ec68 4 161 201
+5ec6c a 125 225
+5ec76 6 135 222
+5ec7c 12 156 238
+5ec8e e 121 225
+FUNC 5ec9c 26 0 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, double) const
+5ec9c 4 444 225
+5eca0 8 444 225
+5eca8 1a 446 225
+FUNC 5ecc4 15c 0 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, tm const*, char, char) const
+5ecc4 a 425 241
+5ecce 6 425 241
+5ecd4 6 145 212
+5ecda 8 425 241
+5ece2 a 145 212
+5ecec c 351 218
+5ecf8 6 428 241
+5ecfe c 108 213
+5ed0a 8 120 238
+5ed12 a 41 213
+5ed1c 4 120 238
+5ed20 2 430 241
+5ed22 4 41 213
+5ed26 6 124 238
+5ed2c 4 481 201
+5ed30 4 124 238
+5ed34 6 101 205
+5ed3a 4 430 241
+5ed3e 2 101 205
+5ed40 14 430 241
+5ed54 e 90 238
+5ed62 4 66 238
+5ed66 c 90 238
+5ed72 2 213 200
+5ed74 4 90 238
+5ed78 2 213 200
+5ed7a 2 213 200
+5ed7c 10 90 238
+5ed8c 4 213 200
+5ed90 8 62 229
+5ed98 4 213 200
+5ed9c 4 214 200
+5eda0 4 62 229
+5eda4 6 200 235
+5edaa 8 200 235
+5edb2 2 200 235
+5edb4 c 200 235
+5edc0 4 213 200
+5edc4 4 218 200
+5edc8 2 96 238
+5edca c 218 200
+5edd6 2 96 238
+5edd8 2 96 238
+5edda 4 70 213
+5edde 4 97 238
+5ede2 4 70 213
+5ede6 2 97 238
+5ede8 2 135 222
+5edea 4 323 201
+5edee 4 161 201
+5edf2 4 161 201
+5edf6 c 432 241
+5ee02 6 135 222
+5ee08 a 428 241
+5ee12 e 431 241
+FUNC 5ee20 11c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >& std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::_M_appendT<wchar_t const*>(wchar_t const*, wchar_t const*, std::forward_iterator_tag const&)
+5ee20 2 470 237
+5ee22 4 468 237
+5ee26 4 468 237
+5ee2a 2 470 237
+5ee2c 2 355 216
+5ee2e 4 64 238
+5ee32 2 355 216
+5ee34 4 74 238
+5ee38 8 74 238
+5ee40 4 472 237
+5ee44 2 400 237
+5ee46 c 304 237
+5ee52 2 400 237
+5ee54 a 304 237
+5ee5e c 306 237
+5ee6a 4 307 237
+5ee6e 4 307 237
+5ee72 10 134 222
+5ee82 2 764 186
+5ee84 2 482 237
+5ee86 2 107 243
+5ee88 2 267 246
+5ee8a 2 107 243
+5ee8c 2 483 237
+5ee8e 8 106 243
+5ee96 4 484 237
+5ee9a 6 101 205
+5eea0 2 485 237
+5eea2 6 489 237
+5eea8 4 307 237
+5eeac c 64 213
+5eeb8 8 67 213
+5eec0 2 107 243
+5eec2 4 107 243
+5eec6 2 107 243
+5eec8 c 106 243
+5eed4 2 107 243
+5eed6 8 106 243
+5eede 4 64 238
+5eee2 2 101 205
+5eee4 2 96 238
+5eee6 4 107 243
+5eeea 2 101 205
+5eeec 2 96 238
+5eeee 2 96 238
+5eef0 6 97 238
+5eef6 4 70 213
+5eefa 2 97 238
+5eefc 2 135 222
+5eefe 4 323 201
+5ef02 4 161 201
+5ef06 4 161 201
+5ef0a 4 479 237
+5ef0e 2 164 238
+5ef10 2 160 238
+5ef12 2 489 237
+5ef14 4 165 238
+5ef18 4 489 237
+5ef1c 6 135 222
+5ef22 c 74 238
+5ef2e e 600 236
+FUNC 5ef3c 950 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__money_do_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::priv::__basic_iostring<wchar_t> >(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, wchar_t, std::priv::__basic_iostring<wchar_t> const&, bool, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >*)
+5ef3c a 316 220
+5ef46 2 316 220
+5ef48 6 145 212
+5ef4e 4 316 220
+5ef52 6 145 212
+5ef58 6 316 220
+5ef5e 4 145 212
+5ef62 6 316 220
+5ef68 8 145 212
+5ef70 2a 351 218
+5ef9a 2 206 206
+5ef9c 2 351 218
+5ef9e 2c 206 206
+5efca 2 336 220
+5efcc 2 206 206
+5efce 6 336 220
+5efd4 a 173 221
+5efde 4 174 221
+5efe2 2 173 221
+5efe4 6 174 221
+5efea a 175 221
+5eff4 2 174 221
+5eff6 a 175 221
+5f000 a 179 221
+5f00a 6 176 221
+5f010 2 179 221
+5f012 6 176 221
+5f018 4 65 238
+5f01c 4 89 238
+5f020 6 354 220
+5f026 12 360 220
+5f038 2 361 220
+5f03a 2 362 220
+5f03c 8 368 220
+5f044 2 368 220
+5f046 8 217 221
+5f04e 6 368 220
+5f054 8 217 221
+5f05c 6 385 220
+5f062 8 387 220
+5f06a 8 184 206
+5f072 4 387 220
+5f076 4 184 206
+5f07a 6 387 220
+5f080 4 387 220
+5f084 4 481 201
+5f088 6 108 213
+5f08e 2 481 201
+5f090 2 108 213
+5f092 8 120 238
+5f09a 4 108 213
+5f09e a 41 213
+5f0a8 a 120 238
+5f0b2 4 41 213
+5f0b6 6 124 238
+5f0bc 4 481 201
+5f0c0 4 124 238
+5f0c4 2 397 220
+5f0c6 2 101 205
+5f0c8 4 90 238
+5f0cc 4 397 220
+5f0d0 2 101 205
+5f0d2 4 397 220
+5f0d6 2 579 237
+5f0d8 4 66 238
+5f0dc 4 579 237
+5f0e0 a 579 237
+5f0ea 4 764 186
+5f0ee 2 579 237
+5f0f0 4 267 246
+5f0f4 2 581 237
+5f0f6 2 582 237
+5f0f8 4 579 237
+5f0fc 4 579 237
+5f100 18 587 237
+5f118 2 400 237
+5f11a 20 399 220
+5f13a 4 66 238
+5f13e 4 90 238
+5f142 2 400 237
+5f144 8 413 220
+5f14c 4 400 237
+5f150 4 136 212
+5f154 2 400 237
+5f156 2 136 212
+5f158 4 416 220
+5f15c 4 418 220
+5f160 2 419 220
+5f162 c 421 220
+5f16e 2 422 220
+5f170 8 400 237
+5f178 4 423 220
+5f17c 8 427 220
+5f184 2 427 220
+5f186 4 181 221
+5f18a 6 427 220
+5f190 28 181 221
+5f1b8 2 427 220
+5f1ba a 437 220
+5f1c4 2 439 220
+5f1c6 6 444 220
+5f1cc 4 446 220
+5f1d0 4 444 220
+5f1d4 a 446 220
+5f1de a 212 221
+5f1e8 4 213 221
+5f1ec 2 212 221
+5f1ee 6 213 221
+5f1f4 a 214 221
+5f1fe 2 213 221
+5f200 a 214 221
+5f20a a 218 221
+5f214 6 215 221
+5f21a 2 218 221
+5f21c 6 215 221
+5f222 4 65 238
+5f226 4 89 238
+5f22a 6 354 220
+5f230 c 355 220
+5f23c 2 368 220
+5f23e 8 178 221
+5f246 6 368 220
+5f24c a 178 221
+5f256 a 389 220
+5f260 a 390 220
+5f26a 4 64 238
+5f26e 4 96 238
+5f272 2 96 238
+5f274 4 97 238
+5f278 4 323 201
+5f27c 6 161 201
+5f282 4 161 201
+5f286 4 64 238
+5f28a 4 96 238
+5f28e 2 96 238
+5f290 4 97 238
+5f294 4 323 201
+5f298 6 161 201
+5f29e 4 161 201
+5f2a2 6 156 238
+5f2a8 6 498 220
+5f2ae c 499 220
+5f2ba 2 427 220
+5f2bc 4 220 221
+5f2c0 6 427 220
+5f2c6 28 219 221
+5f2ee 2 427 220
+5f2f0 a 437 220
+5f2fa a 437 220
+5f304 6 444 220
+5f30a 4 446 220
+5f30e 4 448 220
+5f312 8 446 220
+5f31a 2 448 220
+5f31c 8 448 220
+5f324 2 480 220
+5f326 2 483 220
+5f328 2 477 220
+5f32a 2 483 220
+5f32c 8 480 220
+5f334 6 477 220
+5f33a 16 454 220
+5f350 a 216 221
+5f35a a 177 221
+5f364 4 462 220
+5f368 18 463 220
+5f380 c 483 220
+5f38c 2 452 220
+5f38e 4 452 220
+5f392 4 400 237
+5f396 2 65 238
+5f398 2 400 237
+5f39a 18 492 220
+5f3b2 2 493 220
+5f3b4 4 492 220
+5f3b8 2 213 200
+5f3ba 6 492 220
+5f3c0 2 213 200
+5f3c2 4 492 220
+5f3c6 2 213 200
+5f3c8 12 492 220
+5f3da 6 213 200
+5f3e0 8 62 229
+5f3e8 6 213 200
+5f3ee 4 214 200
+5f3f2 4 62 229
+5f3f6 6 200 235
+5f3fc 8 200 235
+5f404 2 200 235
+5f406 c 200 235
+5f412 6 62 229
+5f418 4 62 229
+5f41c a 200 235
+5f426 8 200 235
+5f42e 6 62 229
+5f434 4 62 229
+5f438 20 458 220
+5f458 4 480 200
+5f45c c 458 220
+5f468 4 480 200
+5f46c 2 62 229
+5f46e a 200 235
+5f478 a 200 235
+5f482 8 62 229
+5f48a 6 480 200
+5f490 10 482 200
+5f4a0 e 459 220
+5f4ae 8 470 220
+5f4b6 a 473 220
+5f4c0 4 62 229
+5f4c4 4 62 229
+5f4c8 6 62 229
+5f4ce a 200 235
+5f4d8 8 200 235
+5f4e0 6 62 229
+5f4e6 2 200 235
+5f4e8 2 62 229
+5f4ea 2 200 235
+5f4ec 4 62 229
+5f4f0 6 200 235
+5f4f6 8 200 235
+5f4fe 6 62 229
+5f504 4 477 220
+5f508 4 62 229
+5f50c a 477 220
+5f516 2 480 200
+5f518 4 477 220
+5f51c 2 480 200
+5f51e 2 62 229
+5f520 a 200 235
+5f52a 8 200 235
+5f532 8 62 229
+5f53a 6 480 200
+5f540 4 482 200
+5f544 4 478 220
+5f548 c 482 200
+5f554 a 477 220
+5f55e 6 478 220
+5f564 4 477 220
+5f568 a 478 220
+5f572 e 478 220
+5f580 4 65 238
+5f584 8 466 220
+5f58c 4 62 229
+5f590 2 467 220
+5f592 2 62 229
+5f594 4 62 229
+5f598 6 200 235
+5f59e 8 200 235
+5f5a6 4 200 235
+5f5aa 6 62 229
+5f5b0 6 62 229
+5f5b6 28 220 221
+5f5de 4 427 220
+5f5e2 28 180 221
+5f60a 4 427 220
+5f60e 10 218 200
+5f61e a 493 220
+5f628 6 494 220
+5f62e 8 494 220
+5f636 4 64 238
+5f63a 2 96 238
+5f63c 6 498 220
+5f642 2 96 238
+5f644 4 498 220
+5f648 4 96 238
+5f64c 6 96 238
+5f652 4 70 213
+5f656 4 97 238
+5f65a 6 70 213
+5f660 2 97 238
+5f662 2 135 222
+5f664 4 323 201
+5f668 6 161 201
+5f66e 6 161 201
+5f674 1a 200 235
+5f68e c 135 222
+5f69a 16 480 220
+5f6b0 4 480 220
+5f6b4 2 62 229
+5f6b6 8 480 220
+5f6be 2 62 229
+5f6c0 2 200 235
+5f6c2 2 62 229
+5f6c4 8 200 235
+5f6cc 8 200 235
+5f6d4 6 62 229
+5f6da 4 62 229
+5f6de 14 483 220
+5f6f2 4 483 220
+5f6f6 8 494 220
+5f6fe 4 480 200
+5f702 c 494 220
+5f70e 2 480 200
+5f710 2 62 229
+5f712 8 200 235
+5f71a a 200 235
+5f724 8 62 229
+5f72c 6 480 200
+5f732 14 482 200
+5f746 c 496 220
+5f752 e 200 235
+5f760 18 471 220
+5f778 8 448 220
+5f780 4 480 200
+5f784 c 448 220
+5f790 4 480 200
+5f794 2 62 229
+5f796 8 200 235
+5f79e a 200 235
+5f7a8 8 62 229
+5f7b0 4 480 200
+5f7b4 12 482 200
+5f7c6 c 450 220
+5f7d2 e 200 235
+5f7e0 6 135 222
+5f7e6 c 200 235
+5f7f2 4 62 229
+5f7f6 34 200 235
+5f82a 6 156 238
+5f830 c 498 220
+5f83c 10 156 238
+5f84c 2 66 238
+5f84e 6 803 237
+5f854 6 249 246
+5f85a 2 806 237
+5f85c 4 249 246
+5f860 14 806 237
+5f874 18 498 220
+FUNC 5f88c 154 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, wchar_t, long double) const
+5f88c a 505 220
+5f896 2 108 213
+5f898 4 505 220
+5f89c 2 108 213
+5f89e 8 505 220
+5f8a6 8 120 238
+5f8ae 8 108 213
+5f8b6 6 41 213
+5f8bc 2 120 238
+5f8be 4 41 213
+5f8c2 2 120 238
+5f8c4 4 41 213
+5f8c8 6 124 238
+5f8ce 4 481 201
+5f8d2 4 124 238
+5f8d6 6 101 205
+5f8dc 8 108 213
+5f8e4 4 101 205
+5f8e8 4 108 213
+5f8ec 8 41 213
+5f8f4 2 120 238
+5f8f6 4 41 213
+5f8fa 6 124 238
+5f900 4 481 201
+5f904 4 124 238
+5f908 2 90 238
+5f90a 6 133 225
+5f910 2 101 205
+5f912 2 133 225
+5f914 2 101 205
+5f916 8 133 225
+5f91e c 145 212
+5f92a c 351 218
+5f936 6 135 225
+5f93c e 136 225
+5f94a 4 64 238
+5f94e 4 96 238
+5f952 2 96 238
+5f954 2 70 213
+5f956 2 97 238
+5f958 4 70 213
+5f95c 2 97 238
+5f95e 4 161 201
+5f962 4 161 201
+5f966 20 510 220
+5f986 4 64 238
+5f98a 4 96 238
+5f98e 2 96 238
+5f990 4 70 213
+5f994 2 97 238
+5f996 4 70 213
+5f99a 2 97 238
+5f99c 4 323 201
+5f9a0 4 161 201
+5f9a4 4 161 201
+5f9a8 e 511 220
+5f9b6 c 135 222
+5f9c2 a 510 220
+5f9cc 6 135 225
+5f9d2 e 156 238
+FUNC 5f9e0 948 0 std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__money_do_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, wchar_t, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >*)
+5f9e0 a 316 220
+5f9ea 2 316 220
+5f9ec 6 145 212
+5f9f2 4 316 220
+5f9f6 6 145 212
+5f9fc 6 316 220
+5fa02 4 145 212
+5fa06 6 316 220
+5fa0c 8 145 212
+5fa14 2a 351 218
+5fa3e 2 206 206
+5fa40 2 351 218
+5fa42 2c 206 206
+5fa6e 2 336 220
+5fa70 2 206 206
+5fa72 6 336 220
+5fa78 a 173 221
+5fa82 4 174 221
+5fa86 2 173 221
+5fa88 6 174 221
+5fa8e a 175 221
+5fa98 2 174 221
+5fa9a a 175 221
+5faa4 a 179 221
+5faae 6 176 221
+5fab4 2 179 221
+5fab6 6 176 221
+5fabc 2 65 238
+5fabe 4 89 238
+5fac2 6 354 220
+5fac8 e 360 220
+5fad6 2 361 220
+5fad8 2 362 220
+5fada 8 368 220
+5fae2 2 368 220
+5fae4 8 217 221
+5faec 6 368 220
+5faf2 8 217 221
+5fafa 6 385 220
+5fb00 8 387 220
+5fb08 8 184 206
+5fb10 4 387 220
+5fb14 4 184 206
+5fb18 6 387 220
+5fb1e 4 387 220
+5fb22 4 481 201
+5fb26 6 108 213
+5fb2c 2 481 201
+5fb2e 2 108 213
+5fb30 8 120 238
+5fb38 4 108 213
+5fb3c a 41 213
+5fb46 a 120 238
+5fb50 4 41 213
+5fb54 6 124 238
+5fb5a 4 481 201
+5fb5e 4 124 238
+5fb62 2 397 220
+5fb64 2 101 205
+5fb66 4 90 238
+5fb6a 4 397 220
+5fb6e 2 101 205
+5fb70 4 397 220
+5fb74 2 579 237
+5fb76 4 66 238
+5fb7a 4 579 237
+5fb7e a 579 237
+5fb88 4 764 186
+5fb8c 2 579 237
+5fb8e 4 267 246
+5fb92 2 581 237
+5fb94 2 582 237
+5fb96 4 579 237
+5fb9a 4 579 237
+5fb9e 18 587 237
+5fbb6 2 400 237
+5fbb8 20 399 220
+5fbd8 4 66 238
+5fbdc 4 90 238
+5fbe0 2 400 237
+5fbe2 8 413 220
+5fbea 4 400 237
+5fbee 4 136 212
+5fbf2 2 400 237
+5fbf4 2 136 212
+5fbf6 4 416 220
+5fbfa 4 418 220
+5fbfe 2 419 220
+5fc00 c 421 220
+5fc0c 2 422 220
+5fc0e 8 400 237
+5fc16 4 423 220
+5fc1a 8 427 220
+5fc22 2 427 220
+5fc24 4 181 221
+5fc28 6 427 220
+5fc2e 28 181 221
+5fc56 2 427 220
+5fc58 a 437 220
+5fc62 2 439 220
+5fc64 6 444 220
+5fc6a 4 446 220
+5fc6e 4 444 220
+5fc72 a 446 220
+5fc7c a 212 221
+5fc86 4 213 221
+5fc8a 2 212 221
+5fc8c 6 213 221
+5fc92 a 214 221
+5fc9c 2 213 221
+5fc9e a 214 221
+5fca8 a 218 221
+5fcb2 6 215 221
+5fcb8 2 218 221
+5fcba 6 215 221
+5fcc0 2 65 238
+5fcc2 4 89 238
+5fcc6 6 354 220
+5fccc c 355 220
+5fcd8 2 368 220
+5fcda 8 178 221
+5fce2 6 368 220
+5fce8 a 178 221
+5fcf2 a 389 220
+5fcfc a 390 220
+5fd06 4 64 238
+5fd0a 4 96 238
+5fd0e 2 96 238
+5fd10 4 97 238
+5fd14 4 323 201
+5fd18 6 161 201
+5fd1e 4 161 201
+5fd22 4 64 238
+5fd26 4 96 238
+5fd2a 2 96 238
+5fd2c 4 97 238
+5fd30 4 323 201
+5fd34 6 161 201
+5fd3a 4 161 201
+5fd3e 6 156 238
+5fd44 6 498 220
+5fd4a c 499 220
+5fd56 2 427 220
+5fd58 4 220 221
+5fd5c 6 427 220
+5fd62 28 219 221
+5fd8a 2 427 220
+5fd8c a 437 220
+5fd96 a 437 220
+5fda0 6 444 220
+5fda6 4 446 220
+5fdaa 4 448 220
+5fdae 8 446 220
+5fdb6 2 448 220
+5fdb8 8 448 220
+5fdc0 2 480 220
+5fdc2 2 483 220
+5fdc4 2 477 220
+5fdc6 2 483 220
+5fdc8 8 480 220
+5fdd0 6 477 220
+5fdd6 16 454 220
+5fdec a 216 221
+5fdf6 a 177 221
+5fe00 4 462 220
+5fe04 18 463 220
+5fe1c c 483 220
+5fe28 2 452 220
+5fe2a 4 452 220
+5fe2e 4 400 237
+5fe32 2 65 238
+5fe34 2 400 237
+5fe36 18 492 220
+5fe4e 2 493 220
+5fe50 4 492 220
+5fe54 2 213 200
+5fe56 6 492 220
+5fe5c 2 213 200
+5fe5e 4 492 220
+5fe62 2 213 200
+5fe64 12 492 220
+5fe76 6 213 200
+5fe7c 8 62 229
+5fe84 6 213 200
+5fe8a 4 214 200
+5fe8e 4 62 229
+5fe92 6 200 235
+5fe98 8 200 235
+5fea0 2 200 235
+5fea2 c 200 235
+5feae 6 62 229
+5feb4 4 62 229
+5feb8 a 200 235
+5fec2 8 200 235
+5feca 6 62 229
+5fed0 4 62 229
+5fed4 20 458 220
+5fef4 4 480 200
+5fef8 c 458 220
+5ff04 4 480 200
+5ff08 2 62 229
+5ff0a a 200 235
+5ff14 a 200 235
+5ff1e 8 62 229
+5ff26 6 480 200
+5ff2c 10 482 200
+5ff3c e 459 220
+5ff4a 8 470 220
+5ff52 a 473 220
+5ff5c 4 62 229
+5ff60 4 62 229
+5ff64 6 62 229
+5ff6a a 200 235
+5ff74 8 200 235
+5ff7c 6 62 229
+5ff82 2 200 235
+5ff84 2 62 229
+5ff86 2 200 235
+5ff88 4 62 229
+5ff8c 6 200 235
+5ff92 8 200 235
+5ff9a 6 62 229
+5ffa0 4 477 220
+5ffa4 4 62 229
+5ffa8 a 477 220
+5ffb2 2 480 200
+5ffb4 4 477 220
+5ffb8 2 480 200
+5ffba 2 62 229
+5ffbc a 200 235
+5ffc6 8 200 235
+5ffce 8 62 229
+5ffd6 6 480 200
+5ffdc 4 482 200
+5ffe0 4 478 220
+5ffe4 c 482 200
+5fff0 a 477 220
+5fffa 6 478 220
+60000 4 477 220
+60004 a 478 220
+6000e e 478 220
+6001c 4 65 238
+60020 8 466 220
+60028 4 62 229
+6002c 2 467 220
+6002e 2 62 229
+60030 4 62 229
+60034 6 200 235
+6003a 8 200 235
+60042 4 200 235
+60046 6 62 229
+6004c 6 62 229
+60052 28 220 221
+6007a 4 427 220
+6007e 28 180 221
+600a6 4 427 220
+600aa 10 218 200
+600ba a 493 220
+600c4 6 494 220
+600ca 8 494 220
+600d2 4 64 238
+600d6 2 96 238
+600d8 6 498 220
+600de 2 96 238
+600e0 4 498 220
+600e4 4 96 238
+600e8 6 96 238
+600ee 4 70 213
+600f2 4 97 238
+600f6 6 70 213
+600fc 2 97 238
+600fe 2 135 222
+60100 4 323 201
+60104 6 161 201
+6010a 6 161 201
+60110 1a 200 235
+6012a c 135 222
+60136 16 480 220
+6014c 4 480 220
+60150 2 62 229
+60152 8 480 220
+6015a 2 62 229
+6015c 2 200 235
+6015e 2 62 229
+60160 8 200 235
+60168 8 200 235
+60170 6 62 229
+60176 4 62 229
+6017a 14 483 220
+6018e 4 483 220
+60192 8 494 220
+6019a 4 480 200
+6019e c 494 220
+601aa 2 480 200
+601ac 2 62 229
+601ae 8 200 235
+601b6 a 200 235
+601c0 8 62 229
+601c8 6 480 200
+601ce 14 482 200
+601e2 c 496 220
+601ee e 200 235
+601fc 18 471 220
+60214 8 448 220
+6021c 4 480 200
+60220 c 448 220
+6022c 4 480 200
+60230 2 62 229
+60232 8 200 235
+6023a a 200 235
+60244 8 62 229
+6024c 4 480 200
+60250 12 482 200
+60262 c 450 220
+6026e e 200 235
+6027c 6 135 222
+60282 c 200 235
+6028e 4 62 229
+60292 34 200 235
+602c6 6 156 238
+602cc c 498 220
+602d8 10 156 238
+602e8 2 66 238
+602ea 6 803 237
+602f0 6 249 246
+602f6 2 806 237
+602f8 4 249 246
+602fc 14 806 237
+60310 18 498 220
+FUNC 60328 30 0 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, wchar_t, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) const
+60328 4 515 220
+6032c 8 515 220
+60334 1e 518 220
+60352 6 519 220
+FUNC 60358 14c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_append(wchar_t const*, wchar_t const*)
+60358 2 197 236
+6035a 8 196 236
+60362 2 197 236
+60364 4 198 236
+60368 2 64 238
+6036a 4 198 236
+6036e 2 74 238
+60370 2 198 236
+60372 4 74 238
+60376 8 74 238
+6037e 4 199 236
+60382 2 210 236
+60384 4 86 243
+60388 8 86 243
+60390 4 764 186
+60394 2 86 243
+60396 4 146 205
+6039a 2 86 243
+6039c 6 101 205
+603a2 2 764 186
+603a4 4 212 236
+603a8 2 267 246
+603aa 2 214 236
+603ac 8 218 236
+603b4 2 400 237
+603b6 c 304 237
+603c2 4 400 237
+603c6 c 304 237
+603d2 c 306 237
+603de 4 307 237
+603e2 6 347 201
+603e8 c 134 222
+603f4 14 158 201
+60408 4 86 243
+6040c 4 84 243
+60410 6 86 243
+60416 2 84 243
+60418 4 764 186
+6041c 2 86 243
+6041e 4 146 205
+60422 e 86 243
+60430 4 764 186
+60434 4 86 243
+60438 4 146 205
+6043c 6 86 243
+60442 2 101 205
+60444 2 96 238
+60446 2 101 205
+60448 2 96 238
+6044a 2 96 238
+6044c 4 97 238
+60450 4 323 201
+60454 4 161 201
+60458 4 161 201
+6045c 2 160 238
+6045e 2 164 238
+60460 4 165 238
+60464 4 307 237
+60468 2 356 201
+6046a 6 346 201
+60470 2 347 201
+60472 4 158 201
+60476 e 158 201
+60484 c 74 238
+60490 6 135 222
+60496 e 600 236
+FUNC 604a4 60 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_assign(wchar_t const*, wchar_t const*)
+604a4 2 242 236
+604a6 4 242 236
+604aa 2 65 238
+604ac 2 400 237
+604ae 2 243 236
+604b0 2 242 236
+604b2 2 400 237
+604b4 2 243 236
+604b6 2 400 237
+604b8 4 244 236
+604bc 4 249 246
+604c0 4 400 237
+604c4 4 250 236
+604c8 2 400 237
+604ca a 250 236
+604d4 4 253 236
+604d8 6 249 246
+604de 2 246 236
+604e0 2 90 238
+604e2 4 246 236
+604e6 4 803 237
+604ea 6 249 246
+604f0 2 806 237
+604f2 4 249 246
+604f6 6 806 237
+604fc 2 253 236
+604fe 4 806 237
+60502 2 253 236
+FUNC 60504 44 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_compute_next_size(unsigned int)
+60504 2 302 237
+60506 4 304 237
+6050a 2 400 237
+6050c 4 304 237
+60510 6 400 237
+60516 6 304 237
+6051c a 306 237
+60526 8 307 237
+6052e 2 310 237
+60530 a 307 237
+6053a e 600 236
+FUNC 60548 360 0 bool std::priv::__read_float<std::istreambuf_iterator<char, std::char_traits<char> >, char>(std::priv::__basic_iostring<char>&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ctype<char> const&, std::numpunct<char> const&)
+60548 6 368 223
+6054e 6 368 223
+60554 2 58 227
+60556 2 368 223
+60558 8 58 227
+60560 2 56 227
+60562 2 378 223
+60564 2 56 227
+60566 4 378 223
+6056a 4 56 227
+6056e 2 57 227
+60570 2 56 227
+60572 6 57 227
+60578 6 393 223
+6057e 2 57 227
+60580 14 393 223
+60594 a 393 223
+6059e a 396 223
+605a8 1c 397 223
+605c4 2 400 223
+605c6 8 120 215
+605ce 2 403 223
+605d0 2 375 223
+605d2 2 410 223
+605d4 8 120 215
+605dc 4 413 223
+605e0 4 413 223
+605e4 4 410 223
+605e8 2 417 223
+605ea 6 156 238
+605f0 8 423 223
+605f8 6 90 215
+605fe 4 403 223
+60602 4 64 238
+60606 6 74 238
+6060c 6 74 238
+60612 8 535 237
+6061a 6 101 205
+60620 2 90 238
+60622 4 232 246
+60626 2 68 215
+60628 2 539 237
+6062a 2 229 235
+6062c 2 539 237
+6062e 2 229 235
+60630 2 539 237
+60632 4 229 235
+60636 4 229 235
+6063a 2 69 215
+6063c 2 406 223
+6063e 2 69 215
+60640 c 406 223
+6064c 2 92 215
+6064e 6 235 235
+60654 4 223 246
+60658 4 235 235
+6065c 4 191 246
+60660 2 220 246
+60662 2 191 246
+60664 2 93 215
+60666 4 191 246
+6066a 2 95 215
+6066c 2 191 246
+6066e 4 95 215
+60672 a 90 215
+6067c 4 413 223
+60680 8 90 215
+60688 4 413 223
+6068c 2 74 238
+6068e 4 64 238
+60692 4 74 238
+60696 2 74 238
+60698 8 74 238
+606a0 4 535 237
+606a4 4 101 205
+606a8 2 90 238
+606aa 4 232 246
+606ae 2 68 215
+606b0 2 539 237
+606b2 2 229 235
+606b4 2 539 237
+606b6 2 229 235
+606b8 2 539 237
+606ba 4 229 235
+606be 4 229 235
+606c2 4 69 215
+606c6 1a 416 223
+606e0 a 416 223
+606ea e 417 223
+606f8 e 400 223
+60706 8 229 235
+6070e 6 536 237
+60714 4 64 213
+60718 2 536 237
+6071a 6 67 213
+60720 2 64 213
+60722 4 66 238
+60726 6 86 243
+6072c 4 86 243
+60730 4 84 243
+60734 2 86 243
+60736 4 368 223
+6073a 2 84 243
+6073c 4 764 186
+60740 2 86 243
+60742 4 146 205
+60746 4 86 243
+6074a 6 101 205
+60750 4 64 238
+60754 4 96 238
+60758 2 96 238
+6075a 6 97 238
+60760 4 70 213
+60764 2 97 238
+60766 6 161 201
+6076c 4 161 201
+60770 4 175 236
+60774 4 164 238
+60778 2 160 238
+6077a 6 165 238
+60780 8 134 222
+60788 8 229 235
+60790 2 400 237
+60792 4 304 237
+60796 e 306 237
+607a4 6 307 237
+607aa 4 307 237
+607ae 4 64 213
+607b2 6 67 213
+607b8 2 64 213
+607ba 2 86 243
+607bc 4 84 243
+607c0 2 86 243
+607c2 4 368 223
+607c6 2 84 243
+607c8 4 764 186
+607cc 4 146 205
+607d0 4 86 243
+607d4 4 101 205
+607d8 4 64 238
+607dc 4 96 238
+607e0 2 96 238
+607e2 6 97 238
+607e8 4 70 213
+607ec 2 97 238
+607ee 4 161 201
+607f2 4 161 201
+607f6 4 175 236
+607fa 2 164 238
+607fc 2 160 238
+607fe 6 165 238
+60804 4 307 237
+60808 12 134 222
+6081a 8 74 238
+60822 2 92 215
+60824 6 235 235
+6082a 4 223 246
+6082e 2 235 235
+60830 4 191 246
+60834 2 220 246
+60836 4 191 246
+6083a 2 93 215
+6083c 4 191 246
+60840 2 95 215
+60842 2 191 246
+60844 4 95 215
+60848 8 235 235
+60850 6 135 222
+60856 2 92 215
+60858 6 235 235
+6085e 4 223 246
+60862 2 235 235
+60864 4 191 246
+60868 2 220 246
+6086a 4 191 246
+6086e 2 93 215
+60870 4 191 246
+60874 2 95 215
+60876 2 191 246
+60878 4 95 215
+6087c 6 135 222
+60882 10 235 235
+60892 8 600 236
+6089a e 156 238
+FUNC 608a8 100 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, long double, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, long double&, char*)
+608a8 2 145 212
+608aa 8 427 223
+608b2 4 427 223
+608b6 4 145 212
+608ba 6 427 223
+608c0 6 145 212
+608c6 18 351 218
+608de 4 41 213
+608e2 2 120 238
+608e4 6 108 213
+608ea 2 351 218
+608ec 6 108 213
+608f2 8 41 213
+608fa 2 120 238
+608fc 4 41 213
+60900 6 124 238
+60906 4 481 201
+6090a 4 124 238
+6090e 2 90 238
+60910 2 101 205
+60912 4 434 223
+60916 2 101 205
+60918 c 434 223
+60924 4 435 223
+60928 6 440 223
+6092e 8 112 215
+60936 2 442 223
+60938 c 443 223
+60944 4 64 238
+60948 4 444 223
+6094c 2 96 238
+6094e 4 444 223
+60952 2 96 238
+60954 2 96 238
+60956 2 70 213
+60958 2 97 238
+6095a 2 70 213
+6095c 2 97 238
+6095e 2 135 222
+60960 4 161 201
+60964 4 161 201
+60968 6 444 223
+6096e a 445 223
+60978 8 436 223
+60980 8 437 223
+60988 6 135 222
+6098e a 444 223
+60998 10 156 238
+FUNC 609a8 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, long double&) const
+609a8 4 579 223
+609ac 8 579 223
+609b4 1a 582 223
+FUNC 609d0 100 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, double, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, double&, char*)
+609d0 2 145 212
+609d2 8 427 223
+609da 4 427 223
+609de 4 145 212
+609e2 6 427 223
+609e8 6 145 212
+609ee 18 351 218
+60a06 4 41 213
+60a0a 2 120 238
+60a0c 6 108 213
+60a12 2 351 218
+60a14 6 108 213
+60a1a 8 41 213
+60a22 2 120 238
+60a24 4 41 213
+60a28 6 124 238
+60a2e 4 481 201
+60a32 4 124 238
+60a36 2 90 238
+60a38 2 101 205
+60a3a 4 434 223
+60a3e 2 101 205
+60a40 c 434 223
+60a4c 4 435 223
+60a50 6 440 223
+60a56 8 112 215
+60a5e 2 442 223
+60a60 c 443 223
+60a6c 4 64 238
+60a70 4 444 223
+60a74 2 96 238
+60a76 4 444 223
+60a7a 2 96 238
+60a7c 2 96 238
+60a7e 2 70 213
+60a80 2 97 238
+60a82 2 70 213
+60a84 2 97 238
+60a86 2 135 222
+60a88 4 161 201
+60a8c 4 161 201
+60a90 6 444 223
+60a96 a 445 223
+60aa0 8 436 223
+60aa8 8 437 223
+60ab0 6 135 222
+60ab6 a 444 223
+60ac0 10 156 238
+FUNC 60ad0 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, double&) const
+60ad0 4 571 223
+60ad4 8 571 223
+60adc 1a 574 223
+FUNC 60af8 100 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__do_get_float<std::istreambuf_iterator<char, std::char_traits<char> >, float, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >&, std::ios_base&, int&, float&, char*)
+60af8 2 145 212
+60afa 8 427 223
+60b02 4 427 223
+60b06 4 145 212
+60b0a 6 427 223
+60b10 6 145 212
+60b16 18 351 218
+60b2e 4 41 213
+60b32 2 120 238
+60b34 6 108 213
+60b3a 2 351 218
+60b3c 6 108 213
+60b42 8 41 213
+60b4a 2 120 238
+60b4c 4 41 213
+60b50 6 124 238
+60b56 4 481 201
+60b5a 4 124 238
+60b5e 2 90 238
+60b60 2 101 205
+60b62 4 434 223
+60b66 2 101 205
+60b68 c 434 223
+60b74 4 435 223
+60b78 6 440 223
+60b7e 8 112 215
+60b86 2 442 223
+60b88 c 443 223
+60b94 4 64 238
+60b98 4 444 223
+60b9c 2 96 238
+60b9e 4 444 223
+60ba2 2 96 238
+60ba4 2 96 238
+60ba6 2 70 213
+60ba8 2 97 238
+60baa 2 70 213
+60bac 2 97 238
+60bae 2 135 222
+60bb0 4 161 201
+60bb4 4 161 201
+60bb8 6 444 223
+60bbe a 445 223
+60bc8 8 436 223
+60bd0 8 437 223
+60bd8 6 135 222
+60bde a 444 223
+60be8 10 156 238
+FUNC 60bf8 26 0 std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, int&, float&) const
+60bf8 4 564 223
+60bfc 8 564 223
+60c04 1a 567 223
+FUNC 60c20 398 0 bool std::priv::__read_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, wchar_t>(std::priv::__basic_iostring<char>&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ctype<wchar_t> const&, std::numpunct<wchar_t> const&)
+60c20 6 368 223
+60c26 6 368 223
+60c2c 2 87 227
+60c2e 4 368 223
+60c32 8 87 227
+60c3a 2 85 227
+60c3c 2 378 223
+60c3e 2 85 227
+60c40 4 378 223
+60c44 4 85 227
+60c48 2 86 227
+60c4a 2 85 227
+60c4c 6 86 227
+60c52 2 390 223
+60c54 2 86 227
+60c56 12 390 223
+60c68 1c 393 223
+60c84 a 393 223
+60c8e 4 396 223
+60c92 4 397 223
+60c96 6 396 223
+60c9c 18 397 223
+60cb4 2 400 223
+60cb6 8 120 215
+60cbe 2 403 223
+60cc0 2 375 223
+60cc2 6 410 223
+60cc8 8 120 215
+60cd0 4 413 223
+60cd4 4 413 223
+60cd8 4 410 223
+60cdc 2 417 223
+60cde 6 156 238
+60ce4 8 423 223
+60cec 8 90 215
+60cf4 4 403 223
+60cf8 4 64 238
+60cfc 6 74 238
+60d02 6 74 238
+60d08 a 535 237
+60d12 6 101 205
+60d18 2 90 238
+60d1a 4 232 246
+60d1e 2 68 215
+60d20 2 539 237
+60d22 2 229 235
+60d24 2 539 237
+60d26 2 229 235
+60d28 2 539 237
+60d2a 4 229 235
+60d2e 4 229 235
+60d32 2 406 223
+60d34 2 69 215
+60d36 2 406 223
+60d38 2 69 215
+60d3a c 406 223
+60d46 2 92 215
+60d48 6 235 235
+60d4e 4 764 186
+60d52 4 235 235
+60d56 4 191 246
+60d5a 2 93 215
+60d5c a 191 246
+60d66 6 95 215
+60d6c a 90 215
+60d76 6 413 223
+60d7c 8 90 215
+60d84 6 413 223
+60d8a 4 74 238
+60d8e 4 64 238
+60d92 6 74 238
+60d98 2 74 238
+60d9a 8 74 238
+60da2 4 535 237
+60da6 6 101 205
+60dac 2 90 238
+60dae 4 232 246
+60db2 2 68 215
+60db4 2 539 237
+60db6 2 229 235
+60db8 2 539 237
+60dba 2 229 235
+60dbc 2 539 237
+60dbe 4 229 235
+60dc2 4 229 235
+60dc6 4 69 215
+60dca 1c 416 223
+60de6 a 416 223
+60df0 10 417 223
+60e00 c 400 223
+60e0c 8 229 235
+60e14 6 536 237
+60e1a 4 64 213
+60e1e 2 536 237
+60e20 6 67 213
+60e26 2 64 213
+60e28 4 66 238
+60e2c 6 86 243
+60e32 4 86 243
+60e36 4 84 243
+60e3a 2 86 243
+60e3c 4 368 223
+60e40 2 84 243
+60e42 4 764 186
+60e46 2 86 243
+60e48 4 146 205
+60e4c 4 86 243
+60e50 6 101 205
+60e56 4 64 238
+60e5a 4 96 238
+60e5e 2 96 238
+60e60 6 97 238
+60e66 4 70 213
+60e6a 2 97 238
+60e6c 6 161 201
+60e72 4 161 201
+60e76 4 175 236
+60e7a 4 164 238
+60e7e 2 160 238
+60e80 6 165 238
+60e86 8 134 222
+60e8e 8 229 235
+60e96 4 400 237
+60e9a 6 304 237
+60ea0 10 306 237
+60eb0 6 307 237
+60eb6 4 307 237
+60eba 4 64 213
+60ebe 6 67 213
+60ec4 2 64 213
+60ec6 4 86 243
+60eca 4 84 243
+60ece 2 86 243
+60ed0 4 368 223
+60ed4 2 84 243
+60ed6 4 764 186
+60eda 4 146 205
+60ede 4 86 243
+60ee2 6 101 205
+60ee8 4 64 238
+60eec 4 96 238
+60ef0 2 96 238
+60ef2 6 97 238
+60ef8 4 70 213
+60efc 2 97 238
+60efe 4 161 201
+60f02 4 161 201
+60f06 4 175 236
+60f0a 4 164 238
+60f0e 2 160 238
+60f10 6 165 238
+60f16 4 307 237
+60f1a 14 134 222
+60f2e 8 74 238
+60f36 2 92 215
+60f38 6 235 235
+60f3e 4 764 186
+60f42 2 235 235
+60f44 4 191 246
+60f48 2 93 215
+60f4a a 191 246
+60f54 6 95 215
+60f5a 8 235 235
+60f62 6 135 222
+60f68 2 92 215
+60f6a 6 235 235
+60f70 4 764 186
+60f74 2 235 235
+60f76 4 191 246
+60f7a 2 93 215
+60f7c 8 191 246
+60f84 6 95 215
+60f8a 6 135 222
+60f90 10 235 235
+60fa0 8 600 236
+60fa8 10 156 238
+FUNC 60fb8 100 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, long double, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, long double&, wchar_t*)
+60fb8 2 145 212
+60fba 8 427 223
+60fc2 4 427 223
+60fc6 4 145 212
+60fca 6 427 223
+60fd0 6 145 212
+60fd6 18 351 218
+60fee 4 41 213
+60ff2 2 120 238
+60ff4 6 108 213
+60ffa 2 351 218
+60ffc 6 108 213
+61002 8 41 213
+6100a 2 120 238
+6100c 4 41 213
+61010 6 124 238
+61016 4 481 201
+6101a 4 124 238
+6101e 2 90 238
+61020 2 101 205
+61022 4 434 223
+61026 2 101 205
+61028 c 434 223
+61034 4 435 223
+61038 6 440 223
+6103e 8 112 215
+61046 2 442 223
+61048 c 443 223
+61054 4 444 223
+61058 4 64 238
+6105c 2 96 238
+6105e 4 444 223
+61062 2 96 238
+61064 2 96 238
+61066 2 70 213
+61068 2 97 238
+6106a 2 70 213
+6106c 2 97 238
+6106e 2 135 222
+61070 4 161 201
+61074 4 161 201
+61078 6 444 223
+6107e a 445 223
+61088 8 436 223
+61090 8 437 223
+61098 6 135 222
+6109e a 444 223
+610a8 10 156 238
+FUNC 610b8 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, long double&) const
+610b8 6 579 223
+610be 8 579 223
+610c6 20 582 223
+FUNC 610e8 100 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, double, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, double&, wchar_t*)
+610e8 2 145 212
+610ea 8 427 223
+610f2 4 427 223
+610f6 4 145 212
+610fa 6 427 223
+61100 6 145 212
+61106 18 351 218
+6111e 4 41 213
+61122 2 120 238
+61124 6 108 213
+6112a 2 351 218
+6112c 6 108 213
+61132 8 41 213
+6113a 2 120 238
+6113c 4 41 213
+61140 6 124 238
+61146 4 481 201
+6114a 4 124 238
+6114e 2 90 238
+61150 2 101 205
+61152 4 434 223
+61156 2 101 205
+61158 c 434 223
+61164 4 435 223
+61168 6 440 223
+6116e 8 112 215
+61176 2 442 223
+61178 c 443 223
+61184 4 444 223
+61188 4 64 238
+6118c 2 96 238
+6118e 4 444 223
+61192 2 96 238
+61194 2 96 238
+61196 2 70 213
+61198 2 97 238
+6119a 2 70 213
+6119c 2 97 238
+6119e 2 135 222
+611a0 4 161 201
+611a4 4 161 201
+611a8 6 444 223
+611ae a 445 223
+611b8 8 436 223
+611c0 8 437 223
+611c8 6 135 222
+611ce a 444 223
+611d8 10 156 238
+FUNC 611e8 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, double&) const
+611e8 6 571 223
+611ee 8 571 223
+611f6 20 574 223
+FUNC 61218 100 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__do_get_float<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, float, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::ios_base&, int&, float&, wchar_t*)
+61218 2 145 212
+6121a 8 427 223
+61222 4 427 223
+61226 4 145 212
+6122a 6 427 223
+61230 6 145 212
+61236 18 351 218
+6124e 4 41 213
+61252 2 120 238
+61254 6 108 213
+6125a 2 351 218
+6125c 6 108 213
+61262 8 41 213
+6126a 2 120 238
+6126c 4 41 213
+61270 6 124 238
+61276 4 481 201
+6127a 4 124 238
+6127e 2 90 238
+61280 2 101 205
+61282 4 434 223
+61286 2 101 205
+61288 c 434 223
+61294 4 435 223
+61298 6 440 223
+6129e 8 112 215
+612a6 2 442 223
+612a8 c 443 223
+612b4 4 444 223
+612b8 4 64 238
+612bc 2 96 238
+612be 4 444 223
+612c2 2 96 238
+612c4 2 96 238
+612c6 2 70 213
+612c8 2 97 238
+612ca 2 70 213
+612cc 2 97 238
+612ce 2 135 222
+612d0 4 161 201
+612d4 4 161 201
+612d8 6 444 223
+612de a 445 223
+612e8 8 436 223
+612f0 8 437 223
+612f8 6 135 222
+612fe a 444 223
+61308 10 156 238
+FUNC 61318 2e 0 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, int&, float&) const
+61318 6 564 223
+6131e 8 564 223
+61326 20 567 223
+FUNC 61348 8c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_reserve(unsigned int)
+61348 4 342 201
+6134c 6 170 236
+61352 2 342 201
+61354 2 346 201
+61356 2 356 201
+61358 2 346 201
+6135a 4 347 201
+6135e 4 158 201
+61362 8 158 201
+6136a 2 352 201
+6136c 6 158 201
+61372 2 86 243
+61374 2 66 238
+61376 8 86 243
+6137e 4 86 243
+61382 4 84 243
+61386 6 86 243
+6138c 2 84 243
+6138e 4 764 186
+61392 2 86 243
+61394 4 146 205
+61398 6 86 243
+6139e 2 101 205
+613a0 2 96 238
+613a2 2 101 205
+613a4 2 96 238
+613a6 2 96 238
+613a8 4 97 238
+613ac 4 323 201
+613b0 4 161 201
+613b4 4 161 201
+613b8 2 160 238
+613ba 2 164 238
+613bc 2 165 238
+613be 4 176 236
+613c2 8 134 222
+613ca 6 135 222
+613d0 4 342 201
+FUNC 613d4 9c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::append(unsigned int, wchar_t)
+613d4 6 180 236
+613da 2 180 236
+613dc 2 181 236
+613de 2 89 238
+613e0 4 182 236
+613e4 2 65 238
+613e6 4 182 236
+613ea 4 400 237
+613ee 6 182 236
+613f4 2 74 238
+613f6 6 74 238
+613fc 8 74 238
+61404 4 184 236
+61408 a 249 243
+61412 8 249 243
+6141a 4 146 205
+6141e 2 249 243
+61420 4 187 236
+61424 6 101 205
+6142a 2 267 246
+6142c 2 189 236
+6142e 6 192 236
+61434 2 306 237
+61436 4 307 237
+6143a 8 306 237
+61442 c 307 237
+6144e 6 307 237
+61454 e 185 236
+61462 e 600 236
+FUNC 61470 1d6 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::assign(unsigned int, wchar_t)
+61470 8 222 236
+61478 2 65 238
+6147a 4 400 237
+6147e 2 222 236
+61480 2 222 236
+61482 4 400 237
+61486 6 223 236
+6148c 6 72 238
+61492 8 72 238
+6149a 2 72 238
+6149c 6 228 236
+614a2 2 120 238
+614a4 2 247 237
+614a6 2 120 238
+614a8 2 124 238
+614aa 2 120 238
+614ac 2 481 201
+614ae 4 124 238
+614b2 4 249 243
+614b6 4 66 238
+614ba 2 249 243
+614bc 4 249 243
+614c0 6 249 243
+614c6 4 146 205
+614ca 2 249 243
+614cc 2 248 237
+614ce 2 101 205
+614d0 6 942 237
+614d6 2 101 205
+614d8 4 942 237
+614dc 8 171 238
+614e4 2 170 238
+614e6 2 171 238
+614e8 2 170 238
+614ea 4 171 238
+614ee 6 91 200
+614f4 2 93 200
+614f6 4 92 200
+614fa 2 93 200
+614fc 12 91 200
+6150e 14 92 200
+61522 20 93 200
+61542 4 174 238
+61546 4 173 238
+6154a 8 174 238
+61552 6 175 238
+61558 4 178 238
+6155c 2 174 238
+6155e 2 175 238
+61560 4 174 238
+61564 4 179 238
+61568 6 174 238
+6156e 4 175 238
+61572 2 64 238
+61574 6 96 238
+6157a 2 96 238
+6157c 4 97 238
+61580 4 323 201
+61584 4 161 201
+61588 4 161 201
+6158c 8 238 236
+61594 8 261 246
+6159c 4 225 236
+615a0 4 90 238
+615a4 4 225 236
+615a8 4 803 237
+615ac 6 249 246
+615b2 2 806 237
+615b4 4 249 246
+615b8 10 806 237
+615c8 6 261 246
+615ce 8 400 237
+615d6 4 230 236
+615da 2 400 237
+615dc a 230 236
+615e6 4 185 238
+615ea 2 91 200
+615ec 4 92 200
+615f0 2 93 200
+615f2 2 92 200
+615f4 2 91 200
+615f6 2 92 200
+615f8 2 93 200
+615fa 2 92 200
+615fc 2 91 200
+615fe 2 92 200
+61600 4 93 200
+61604 6 135 222
+6160a 6 189 238
+61610 4 188 238
+61614 4 187 238
+61618 12 189 238
+6162a 2 193 238
+6162c 2 192 238
+6162e 2 193 238
+61630 4 194 238
+61634 4 193 238
+61638 4 195 238
+6163c 4 193 238
+61640 6 196 238
+FUNC 61648 486 0 bool std::priv::__get_monetary_value<std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::back_insert_iterator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, wchar_t>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >&, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::back_insert_iterator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::ctype<wchar_t> const&, wchar_t, int, wchar_t, std::string const&, bool&)
+61648 6 62 220
+6164e c 62 220
+6165a 2 112 215
+6165c 6 62 220
+61662 4 112 215
+61666 2 66 220
+61668 2 67 220
+6166a 6 118 220
+61670 a 90 215
+6167a a 184 206
+61684 4 66 220
+61688 2 70 220
+6168a 2 70 220
+6168c 8 70 220
+61694 2 70 220
+61696 4 81 220
+6169a 4 307 237
+6169e 2 69 215
+616a0 6 307 237
+616a6 8 120 215
+616ae 2 73 220
+616b0 8 90 215
+616b8 4 184 206
+616bc 2 90 215
+616be 6 184 206
+616c4 6 74 220
+616ca 2 78 220
+616cc a 90 215
+616d6 4 79 220
+616da 2 68 215
+616dc 4 80 220
+616e0 a 229 235
+616ea 4 229 235
+616ee 4 69 215
+616f2 4 120 215
+616f6 4 81 220
+616fa 4 120 215
+616fe 4 73 220
+61702 4 65 238
+61706 2 89 238
+61708 6 90 220
+6170e 4 93 220
+61712 4 94 220
+61716 2 93 220
+61718 4 94 220
+6171c 6 96 220
+61722 2 112 215
+61724 2 96 220
+61726 6 112 215
+6172c 6 99 220
+61732 8 100 220
+6173a 4 307 237
+6173e 2 100 220
+61740 4 307 237
+61744 8 101 205
+6174c 2 100 220
+6174e 2 267 246
+61750 2 100 220
+61752 2 101 205
+61754 4 267 246
+61758 2 539 237
+6175a 2 100 220
+6175c 2 64 238
+6175e 6 74 238
+61764 6 74 238
+6176a 4 535 237
+6176e 2 400 237
+61770 8 307 237
+61778 2 400 237
+6177a a 306 237
+61784 e 307 237
+61792 6 307 237
+61798 2 536 237
+6179a 2 100 220
+6179c 6 536 237
+617a2 2 267 246
+617a4 2 100 220
+617a6 2 101 205
+617a8 4 267 246
+617ac 2 539 237
+617ae 2 100 220
+617b0 4 102 220
+617b4 2 92 215
+617b6 6 235 235
+617bc 4 764 186
+617c0 4 235 235
+617c4 4 191 246
+617c8 2 93 215
+617ca 8 191 246
+617d2 6 95 215
+617d8 2 92 215
+617da 6 235 235
+617e0 4 764 186
+617e4 2 235 235
+617e6 4 191 246
+617ea 2 93 215
+617ec 2 191 246
+617ee 2 184 206
+617f0 6 191 246
+617f6 4 95 215
+617fa 8 184 206
+61802 6 74 220
+61808 8 76 220
+61810 4 90 215
+61814 2 76 220
+61816 4 90 215
+6181a 2 64 238
+6181c 2 74 238
+6181e 4 74 238
+61822 6 74 238
+61828 4 535 237
+6182c 4 75 220
+61830 2 267 246
+61832 4 101 205
+61836 4 75 220
+6183a 4 267 246
+6183e 4 539 237
+61842 2 92 215
+61844 6 235 235
+6184a 4 764 186
+6184e 2 235 235
+61850 4 191 246
+61854 2 93 215
+61856 a 191 246
+61860 6 95 215
+61866 8 229 235
+6186e a 235 235
+61878 2 92 215
+6187a 6 235 235
+61880 4 764 186
+61884 2 235 235
+61886 6 235 235
+6188c 2 64 238
+6188e 2 74 238
+61890 2 74 238
+61892 2 235 235
+61894 2 74 238
+61896 8 74 238
+6189e 4 535 237
+618a2 2 400 237
+618a4 2 307 237
+618a6 2 400 237
+618a8 a 306 237
+618b2 e 307 237
+618c0 e 307 237
+618ce e 536 237
+618dc 8 235 235
+618e4 a 74 238
+618ee a 90 215
+618f8 8 99 220
+61900 2 68 215
+61902 a 229 235
+6190c 4 229 235
+61910 8 307 237
+61918 4 95 215
+6191c 4 69 215
+61920 2 75 215
+61922 8 90 215
+6192a 4 77 215
+6192e a 90 215
+61938 6 110 220
+6193e 6 115 220
+61944 a 62 220
+6194e 2 115 220
+61950 2 117 220
+61952 2 115 220
+61954 2 117 220
+61956 6 235 235
+6195c 4 764 186
+61960 4 235 235
+61964 4 191 246
+61968 2 110 220
+6196a 4 191 246
+6196e 2 93 215
+61970 4 191 246
+61974 4 95 215
+61978 2 110 220
+6197a 4 94 215
+6197e 2 110 220
+61980 8 90 215
+61988 a 184 206
+61992 4 110 220
+61996 8 111 220
+6199e 4 90 215
+619a2 4 111 220
+619a6 2 90 215
+619a8 2 64 238
+619aa 2 74 238
+619ac 4 74 238
+619b0 6 74 238
+619b6 4 535 237
+619ba 2 267 246
+619bc 2 112 220
+619be 2 101 205
+619c0 2 112 220
+619c2 2 101 205
+619c4 4 267 246
+619c8 4 539 237
+619cc 2 92 215
+619ce 6 235 235
+619d4 6 764 186
+619da 2 235 235
+619dc 6 235 235
+619e2 2 64 238
+619e4 2 74 238
+619e6 2 74 238
+619e8 2 235 235
+619ea 2 74 238
+619ec 8 74 238
+619f4 4 535 237
+619f8 4 400 237
+619fc a 306 237
+61a06 e 307 237
+61a14 e 307 237
+61a22 a 536 237
+61a2c 6 235 235
+61a32 4 764 186
+61a36 2 235 235
+61a38 4 191 246
+61a3c 2 93 215
+61a3e 2 191 246
+61a40 4 95 215
+61a44 8 191 246
+61a4c 2 92 215
+61a4e 6 235 235
+61a54 4 764 186
+61a58 2 235 235
+61a5a 4 191 246
+61a5e 2 93 215
+61a60 2 191 246
+61a62 4 95 215
+61a66 8 191 246
+61a6e 1a 235 235
+61a88 a 229 235
+61a92 8 91 220
+61a9a 2 92 215
+61a9c 6 235 235
+61aa2 4 764 186
+61aa6 2 235 235
+61aa8 4 191 246
+61aac 2 93 215
+61aae 8 191 246
+61ab6 6 95 215
+61abc 12 235 235
+FUNC 61ad0 6bc 0 std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::priv::__money_do_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, int&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, bool&, wchar_t*)
+61ad0 6 122 220
+61ad6 c 122 220
+61ae2 4 112 215
+61ae6 4 122 220
+61aea 4 112 215
+61aee 2 125 220
+61af0 2 126 220
+61af2 4 127 220
+61af6 8 126 220
+61afe 4 127 220
+61b02 8 272 220
+61b0a e 145 212
+61b18 2a 351 218
+61b42 2 143 220
+61b44 2 351 218
+61b46 6 143 220
+61b4c 26 220 221
+61b72 2 143 220
+61b74 2 220 221
+61b76 2 217 221
+61b78 2 143 220
+61b7a 4 217 221
+61b7e 2 220 221
+61b80 2 143 220
+61b82 4 217 221
+61b86 2 220 221
+61b88 2 143 220
+61b8a 6 217 221
+61b90 10 216 221
+61ba0 2 120 238
+61ba2 2 149 220
+61ba4 2 124 238
+61ba6 2 120 238
+61ba8 2 124 238
+61baa 4 149 220
+61bae 2 120 238
+61bb0 2 149 220
+61bb2 2 481 201
+61bb4 4 124 238
+61bb8 4 101 205
+61bbc 4 95 215
+61bc0 2 153 220
+61bc2 2 69 215
+61bc4 2 101 205
+61bc6 1a 154 220
+61be0 a 90 215
+61bea a 184 206
+61bf4 6 156 220
+61bfa 2 68 215
+61bfc a 229 235
+61c06 4 229 235
+61c0a 2 69 215
+61c0c 8 120 215
+61c14 6 162 220
+61c1a 2 153 220
+61c1c 4 153 220
+61c20 a 244 220
+61c2a 2 89 238
+61c2c 2 65 238
+61c2e 2 400 237
+61c30 a 245 220
+61c3a 6 252 220
+61c40 8 112 215
+61c48 2 268 220
+61c4a a 269 220
+61c54 8 271 220
+61c5c 2 64 238
+61c5e 6 96 238
+61c64 2 96 238
+61c66 4 97 238
+61c6a 4 323 201
+61c6e 6 161 201
+61c74 4 161 201
+61c78 2 64 238
+61c7a 6 96 238
+61c80 2 96 238
+61c82 4 97 238
+61c86 4 323 201
+61c8a 6 161 201
+61c90 4 161 201
+61c94 4 64 238
+61c98 4 96 238
+61c9c 2 96 238
+61c9e 4 97 238
+61ca2 4 323 201
+61ca6 6 161 201
+61cac 4 161 201
+61cb0 8 271 220
+61cb8 8 215 220
+61cc0 a 173 221
+61cca 4 179 221
+61cce 2 173 221
+61cd0 6 179 221
+61cd6 6 175 221
+61cdc 2 179 221
+61cde a 175 221
+61ce8 2 225 220
+61cea 4 220 220
+61cee a 225 220
+61cf8 8 225 220
+61d00 a 174 221
+61d0a 28 227 220
+61d32 6 232 220
+61d38 a 233 220
+61d42 6 234 220
+61d48 8 156 238
+61d50 8 112 215
+61d58 6 176 220
+61d5e a 177 220
+61d68 c 179 220
+61d74 4 180 220
+61d78 2 181 220
+61d7a 8 167 220
+61d82 10 176 221
+61d92 24 169 220
+61db6 6 170 220
+61dbc 4 170 220
+61dc0 6 171 220
+61dc6 2 172 220
+61dc8 4 64 238
+61dcc 8 172 220
+61dd4 2 96 238
+61dd6 2 172 220
+61dd8 6 96 238
+61dde 8 96 238
+61de6 2 97 238
+61de8 2 135 222
+61dea 4 97 238
+61dee 4 323 201
+61df2 6 161 201
+61df8 6 161 201
+61dfe 26 181 221
+61e24 2 143 220
+61e26 2 181 221
+61e28 2 178 221
+61e2a 2 143 220
+61e2c 4 178 221
+61e30 2 181 221
+61e32 2 143 220
+61e34 4 178 221
+61e38 2 181 221
+61e3a 2 143 220
+61e3c 6 178 221
+61e42 12 177 221
+61e54 6 90 215
+61e5a a 184 206
+61e64 6 162 220
+61e6a 2 68 215
+61e6c a 229 235
+61e76 6 229 235
+61e7c 4 69 215
+61e80 2 92 215
+61e82 6 235 235
+61e88 4 764 186
+61e8c 2 235 235
+61e8e 4 191 246
+61e92 2 93 215
+61e94 2 191 246
+61e96 4 95 215
+61e9a 8 191 246
+61ea2 a 235 235
+61eac 4 89 238
+61eb0 2 65 238
+61eb2 2 400 237
+61eb4 8 256 220
+61ebc 6 263 220
+61ec2 c 206 206
+61ece 8 359 237
+61ed6 c 517 237
+61ee2 a 212 221
+61eec 4 218 221
+61ef0 2 212 221
+61ef2 6 218 221
+61ef8 8 214 221
+61f00 2 218 221
+61f02 e 214 221
+61f10 12 215 221
+61f22 2 65 238
+61f24 8 187 220
+61f2c a 90 215
+61f36 8 197 220
+61f3e 8 65 238
+61f46 a 201 220
+61f50 8 90 215
+61f58 8 203 220
+61f60 2 68 215
+61f62 a 229 235
+61f6c 4 229 235
+61f70 2 205 220
+61f72 2 69 215
+61f74 2 205 220
+61f76 2 206 220
+61f78 c 213 221
+61f84 20 258 220
+61fa4 6 259 220
+61faa 2 260 220
+61fac 2 261 220
+61fae 4 259 220
+61fb2 2 261 220
+61fb4 4 260 220
+61fb8 8 261 220
+61fc0 1e 247 220
+61fde 6 248 220
+61fe4 2 249 220
+61fe6 4 248 220
+61fea 8 249 220
+61ff2 2 92 215
+61ff4 6 235 235
+61ffa 4 764 186
+61ffe 2 235 235
+62000 4 191 246
+62004 2 93 215
+62006 2 191 246
+62008 4 95 215
+6200c 8 191 246
+62014 12 135 222
+62026 c 349 237
+62032 6 135 222
+62038 c 250 220
+62044 8 65 238
+6204c a 188 220
+62056 8 90 215
+6205e a 190 220
+62068 2 92 215
+6206a 6 235 235
+62070 4 764 186
+62074 2 235 235
+62076 4 191 246
+6207a 2 93 215
+6207c 4 191 246
+62080 4 95 215
+62084 8 191 246
+6208c a 235 235
+62096 2 68 215
+62098 8 229 235
+620a0 4 229 235
+620a4 4 69 215
+620a8 2 92 215
+620aa 6 235 235
+620b0 4 764 186
+620b4 2 235 235
+620b6 4 191 246
+620ba 2 93 215
+620bc 2 191 246
+620be 4 95 215
+620c2 8 191 246
+620ca 4 225 220
+620ce 8 229 235
+620d6 2 92 215
+620d8 6 235 235
+620de 4 764 186
+620e2 2 235 235
+620e4 4 191 246
+620e8 2 93 215
+620ea 4 191 246
+620ee 4 95 215
+620f2 8 191 246
+620fa a 235 235
+62104 6 229 235
+6210a 4 69 215
+6210e 4 211 220
+62112 4 208 220
+62116 4 211 220
+6211a 4 208 220
+6211e 4 236 220
+62122 4 235 220
+62126 4 236 220
+6212a 2 235 220
+6212c 8 156 238
+62134 18 235 235
+6214c 18 156 238
+62164 a 271 220
+6216e 1e 156 238
+FUNC 6218c 4e 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, int&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&) const
+6218c 6 304 220
+62192 2 304 220
+62194 2 308 220
+62196 2 307 220
+62198 6 304 220
+6219e 2 308 220
+621a0 6 307 220
+621a6 28 308 220
+621ce c 309 220
+FUNC 621dc 12a 0 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, int&, long double&) const
+621dc 2 279 220
+621de 2 124 238
+621e0 6 279 220
+621e6 2 120 238
+621e8 a 279 220
+621f2 2 284 220
+621f4 4 279 220
+621f8 2 124 238
+621fa 2 120 238
+621fc 2 481 201
+621fe 4 124 238
+62202 2 284 220
+62204 6 101 205
+6220a 2 284 220
+6220c 4 101 205
+62210 8 283 220
+62218 2a 284 220
+62242 6 284 220
+62248 6 286 220
+6224e 2 284 220
+62250 e 286 220
+6225e 2 284 220
+62260 2 286 220
+62262 2 66 238
+62264 2 287 220
+62266 4 289 220
+6226a 4 287 220
+6226e 4 289 220
+62272 2 120 238
+62274 2 124 238
+62276 2 120 238
+62278 2 124 238
+6227a 2 481 201
+6227c 4 124 238
+62280 4 101 205
+62284 4 242 223
+62288 2 101 205
+6228a 14 242 223
+6229e 6 156 238
+622a4 6 294 220
+622aa 6 299 220
+622b0 2 64 238
+622b2 2 96 238
+622b4 4 299 220
+622b8 2 96 238
+622ba 2 96 238
+622bc 2 97 238
+622be 2 135 222
+622c0 2 97 238
+622c2 4 323 201
+622c6 4 161 201
+622ca 4 161 201
+622ce c 300 220
+622da e 295 220
+622e8 6 289 220
+622ee 6 135 222
+622f4 12 156 238
+FUNC 62308 144 0 std::string::assign(unsigned int, char)
+62308 8 222 236
+62310 2 65 238
+62312 2 400 237
+62314 2 222 236
+62316 2 222 236
+62318 2 400 237
+6231a 4 223 236
+6231e 4 72 238
+62322 8 72 238
+6232a 2 72 238
+6232c 4 228 236
+62330 2 120 238
+62332 2 247 237
+62334 2 120 238
+62336 2 124 238
+62338 2 481 201
+6233a 4 124 238
+6233e 2 66 238
+62340 2 314 243
+62342 2 249 243
+62344 4 249 243
+62348 2 222 236
+6234a 4 146 205
+6234e 4 249 243
+62352 2 248 237
+62354 4 101 205
+62358 a 942 237
+62362 8 171 238
+6236a 2 170 238
+6236c 2 171 238
+6236e 2 170 238
+62370 4 171 238
+62374 8 91 200
+6237c 8 92 200
+62384 4 93 200
+62388 8 174 238
+62390 4 93 200
+62394 6 174 238
+6239a 2 173 238
+6239c 4 174 238
+623a0 2 178 238
+623a2 2 175 238
+623a4 2 174 238
+623a6 2 175 238
+623a8 2 179 238
+623aa 2 175 238
+623ac 6 156 238
+623b2 8 238 236
+623ba 8 235 246
+623c2 2 225 236
+623c4 2 90 238
+623c6 2 225 236
+623c8 4 803 237
+623cc 2 168 246
+623ce 2 806 237
+623d0 2 168 246
+623d2 8 806 237
+623da 6 235 246
+623e0 4 400 237
+623e4 4 230 236
+623e8 2 400 237
+623ea 8 230 236
+623f2 4 185 238
+623f6 4 91 200
+623fa 6 92 200
+62400 2 93 200
+62402 2 92 200
+62404 4 91 200
+62408 4 92 200
+6240c 2 93 200
+6240e 2 92 200
+62410 4 91 200
+62414 4 92 200
+62418 4 93 200
+6241c 4 189 238
+62420 4 193 238
+62424 4 187 238
+62428 4 188 238
+6242c 4 193 238
+62430 4 189 238
+62434 4 193 238
+62438 4 192 238
+6243c 4 193 238
+62440 4 194 238
+62444 2 195 238
+62446 6 196 238
+FUNC 6244c 408 0 bool std::priv::__get_monetary_value<std::istreambuf_iterator<char, std::char_traits<char> >, std::back_insert_iterator<std::string>, char>(std::istreambuf_iterator<char, std::char_traits<char> >&, std::istreambuf_iterator<char, std::char_traits<char> >, std::back_insert_iterator<std::string>, std::ctype<char> const&, char, int, char, std::string const&, bool&)
+6244c 6 62 220
+62452 c 62 220
+6245e 2 112 215
+62460 4 62 220
+62464 4 112 215
+62468 2 66 220
+6246a 2 67 220
+6246c 6 118 220
+62472 a 90 215
+6247c 6 79 206
+62482 6 66 220
+62488 8 70 220
+62490 6 70 220
+62496 2 70 220
+62498 4 70 220
+6249c 4 81 220
+624a0 2 69 215
+624a2 8 120 215
+624aa 2 73 220
+624ac a 90 215
+624b6 6 79 206
+624bc 6 74 220
+624c2 6 78 220
+624c8 8 90 215
+624d0 4 79 220
+624d4 2 68 215
+624d6 4 80 220
+624da a 229 235
+624e4 4 229 235
+624e8 4 69 215
+624ec 4 120 215
+624f0 4 81 220
+624f4 4 120 215
+624f8 4 73 220
+624fc 4 65 238
+62500 2 89 238
+62502 6 90 220
+62508 4 93 220
+6250c 4 94 220
+62510 2 93 220
+62512 4 94 220
+62516 6 96 220
+6251c 2 112 215
+6251e 2 96 220
+62520 6 112 215
+62526 6 99 220
+6252c a 100 220
+62536 6 232 246
+6253c 6 101 205
+62542 2 100 220
+62544 2 90 238
+62546 2 232 246
+62548 4 539 237
+6254c 2 100 220
+6254e 2 539 237
+62550 2 100 220
+62552 2 64 238
+62554 4 74 238
+62558 2 74 238
+6255a 8 74 238
+62562 4 535 237
+62566 2 400 237
+62568 6 304 237
+6256e a 306 237
+62578 a 307 237
+62582 8 307 237
+6258a 2 536 237
+6258c 2 100 220
+6258e 6 536 237
+62594 2 101 205
+62596 2 90 238
+62598 2 232 246
+6259a 4 539 237
+6259e 2 100 220
+625a0 2 539 237
+625a2 2 100 220
+625a4 4 102 220
+625a8 2 92 215
+625aa 6 235 235
+625b0 4 223 246
+625b4 4 235 235
+625b8 4 191 246
+625bc 2 220 246
+625be 4 191 246
+625c2 2 93 215
+625c4 4 191 246
+625c8 2 95 215
+625ca 2 191 246
+625cc 4 95 215
+625d0 2 92 215
+625d2 6 235 235
+625d8 4 223 246
+625dc 2 235 235
+625de 2 220 246
+625e0 2 93 215
+625e2 2 79 206
+625e4 c 191 246
+625f0 2 95 215
+625f2 4 79 206
+625f6 2 191 246
+625f8 2 74 220
+625fa 2 95 215
+625fc 4 74 220
+62600 8 76 220
+62608 4 90 215
+6260c 4 76 220
+62610 4 90 215
+62614 2 74 238
+62616 2 64 238
+62618 4 74 238
+6261c 2 74 238
+6261e 8 74 238
+62626 4 535 237
+6262a 4 101 205
+6262e 4 75 220
+62632 2 90 238
+62634 4 75 220
+62638 2 232 246
+6263a 8 539 237
+62642 2 92 215
+62644 6 235 235
+6264a 4 223 246
+6264e 2 235 235
+62650 4 191 246
+62654 2 220 246
+62656 4 191 246
+6265a 2 93 215
+6265c 4 191 246
+62660 2 95 215
+62662 2 191 246
+62664 4 95 215
+62668 8 229 235
+62670 8 235 235
+62678 2 92 215
+6267a 6 235 235
+62680 4 223 246
+62684 2 235 235
+62686 4 220 246
+6268a 6 235 235
+62690 4 220 246
+62694 8 235 235
+6269c 2 400 237
+6269e 6 304 237
+626a4 a 306 237
+626ae a 307 237
+626b8 8 307 237
+626c0 e 536 237
+626ce a 90 215
+626d8 a 99 220
+626e2 2 68 215
+626e4 8 229 235
+626ec 4 229 235
+626f0 4 95 215
+626f4 8 69 215
+626fc 8 120 215
+62704 2 110 220
+62706 6 115 220
+6270c c 62 220
+62718 2 115 220
+6271a 2 117 220
+6271c 2 115 220
+6271e 2 117 220
+62720 8 90 215
+62728 6 79 206
+6272e 4 110 220
+62732 8 111 220
+6273a 4 90 215
+6273e 4 111 220
+62742 2 90 215
+62744 2 74 238
+62746 2 64 238
+62748 4 74 238
+6274c 2 74 238
+6274e 8 74 238
+62756 4 535 237
+6275a 4 101 205
+6275e 2 90 238
+62760 4 112 220
+62764 4 232 246
+62768 8 539 237
+62770 2 92 215
+62772 6 235 235
+62778 4 223 246
+6277c 2 235 235
+6277e 6 220 246
+62784 6 235 235
+6278a 6 220 246
+62790 2 400 237
+62792 4 304 237
+62796 a 306 237
+627a0 a 307 237
+627aa 8 307 237
+627b2 a 536 237
+627bc 2 92 215
+627be 6 235 235
+627c4 4 223 246
+627c8 2 235 235
+627ca 4 191 246
+627ce 2 220 246
+627d0 4 191 246
+627d4 2 93 215
+627d6 4 191 246
+627da 4 95 215
+627de 4 191 246
+627e2 8 235 235
+627ea 8 229 235
+627f2 8 91 220
+627fa 2 92 215
+627fc 6 235 235
+62802 4 223 246
+62806 2 235 235
+62808 4 191 246
+6280c 2 220 246
+6280e 2 191 246
+62810 2 93 215
+62812 4 191 246
+62816 2 95 215
+62818 2 191 246
+6281a 4 95 215
+6281e 10 235 235
+6282e 26 600 236
+FUNC 62854 670 0 std::istreambuf_iterator<char, std::char_traits<char> > std::priv::__money_do_get<char, std::istreambuf_iterator<char, std::char_traits<char> >, std::string>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, int&, std::string&, bool&, char*)
+62854 8 122 220
+6285c 2 122 220
+6285e 2 112 215
+62860 8 122 220
+62868 2 112 215
+6286a 4 122 220
+6286e 2 112 215
+62870 4 122 220
+62874 4 112 215
+62878 2 125 220
+6287a 2 126 220
+6287c 4 127 220
+62880 2 126 220
+62882 4 127 220
+62886 6 126 220
+6288c c 272 220
+62898 e 145 212
+628a6 2a 351 218
+628d0 2 143 220
+628d2 2 351 218
+628d4 6 143 220
+628da 26 140 221
+62900 2 137 221
+62902 2 140 221
+62904 8 137 221
+6290c 4 140 221
+62910 2 143 220
+62912 6 137 221
+62918 10 136 221
+62928 2 120 238
+6292a 2 149 220
+6292c 2 124 238
+6292e 2 120 238
+62930 2 124 238
+62932 4 149 220
+62936 2 481 201
+62938 2 149 220
+6293a 4 124 238
+6293e 4 101 205
+62942 2 153 220
+62944 2 69 215
+62946 2 101 205
+62948 18 154 220
+62960 e 90 215
+6296e 6 79 206
+62974 6 156 220
+6297a 2 68 215
+6297c a 229 235
+62986 4 229 235
+6298a 4 69 215
+6298e 8 120 215
+62996 6 162 220
+6299c 4 153 220
+629a0 6 153 220
+629a6 a 244 220
+629b0 2 89 238
+629b2 2 65 238
+629b4 2 400 237
+629b6 a 245 220
+629c0 6 252 220
+629c6 8 112 215
+629ce 2 268 220
+629d0 a 269 220
+629da 8 271 220
+629e2 12 156 238
+629f4 8 271 220
+629fc 8 215 220
+62a04 a 92 221
+62a0e 4 98 221
+62a12 2 92 221
+62a14 6 98 221
+62a1a 6 94 221
+62a20 2 98 221
+62a22 a 94 221
+62a2c 2 220 220
+62a2e 2 225 220
+62a30 4 220 220
+62a34 8 225 220
+62a3c 8 225 220
+62a44 a 93 221
+62a4e 22 227 220
+62a70 6 232 220
+62a76 a 233 220
+62a80 6 234 220
+62a86 8 156 238
+62a8e 8 112 215
+62a96 6 176 220
+62a9c a 177 220
+62aa6 a 179 220
+62ab0 6 192 220
+62ab6 8 167 220
+62abe 10 95 221
+62ace 1c 169 220
+62aea 6 170 220
+62af0 4 170 220
+62af4 6 171 220
+62afa e 172 220
+62b08 2 156 238
+62b0a 4 172 220
+62b0e 6 156 238
+62b14 26 100 221
+62b3a 2 97 221
+62b3c 2 100 221
+62b3e a 97 221
+62b48 4 100 221
+62b4c 2 143 220
+62b4e 4 97 221
+62b52 12 96 221
+62b64 a 90 215
+62b6e 6 79 206
+62b74 6 162 220
+62b7a 2 68 215
+62b7c a 229 235
+62b86 6 229 235
+62b8c 6 69 215
+62b92 2 92 215
+62b94 6 235 235
+62b9a 4 223 246
+62b9e 2 235 235
+62ba0 4 191 246
+62ba4 2 220 246
+62ba6 2 191 246
+62ba8 4 93 215
+62bac 4 191 246
+62bb0 2 95 215
+62bb2 4 191 246
+62bb6 6 95 215
+62bbc 8 235 235
+62bc4 2 89 238
+62bc6 2 65 238
+62bc8 2 400 237
+62bca 4 256 220
+62bce 6 258 220
+62bd4 2 258 220
+62bd6 12 258 220
+62be8 2 259 220
+62bea 4 260 220
+62bee 10 259 220
+62bfe 2 260 220
+62c00 a 261 220
+62c0a 6 263 220
+62c10 c 101 206
+62c1c 8 359 237
+62c24 c 517 237
+62c30 6 260 220
+62c36 12 135 221
+62c48 a 132 221
+62c52 4 138 221
+62c56 2 132 221
+62c58 6 138 221
+62c5e 6 134 221
+62c64 2 138 221
+62c66 c 134 221
+62c72 2 65 238
+62c74 6 187 220
+62c7a c 90 215
+62c86 8 197 220
+62c8e 2 65 238
+62c90 8 201 220
+62c98 a 90 215
+62ca2 8 203 220
+62caa 2 68 215
+62cac a 229 235
+62cb6 4 229 235
+62cba 2 205 220
+62cbc 4 69 215
+62cc0 2 205 220
+62cc2 2 206 220
+62cc4 c 133 221
+62cd0 6 247 220
+62cd6 2 247 220
+62cd8 12 247 220
+62cea 2 248 220
+62cec 4 249 220
+62cf0 10 248 220
+62d00 8 249 220
+62d08 2 92 215
+62d0a 6 235 235
+62d10 4 223 246
+62d14 2 235 235
+62d16 4 191 246
+62d1a 2 220 246
+62d1c 4 191 246
+62d20 4 93 215
+62d24 4 191 246
+62d28 2 95 215
+62d2a 4 191 246
+62d2e 6 95 215
+62d34 c 349 237
+62d40 c 250 220
+62d4c 2 65 238
+62d4e 8 188 220
+62d56 c 90 215
+62d62 8 190 220
+62d6a 2 68 215
+62d6c 8 229 235
+62d74 2 229 235
+62d76 4 69 215
+62d7a 4 229 235
+62d7e 2 92 215
+62d80 6 235 235
+62d86 4 223 246
+62d8a 2 235 235
+62d8c 4 191 246
+62d90 2 220 246
+62d92 4 191 246
+62d96 4 93 215
+62d9a 4 191 246
+62d9e 2 95 215
+62da0 4 191 246
+62da4 6 95 215
+62daa 8 235 235
+62db2 2 68 215
+62db4 8 229 235
+62dbc 2 229 235
+62dbe 4 69 215
+62dc2 4 229 235
+62dc6 2 92 215
+62dc8 6 235 235
+62dce 4 223 246
+62dd2 2 235 235
+62dd4 4 191 246
+62dd8 2 220 246
+62dda 4 191 246
+62dde 4 93 215
+62de2 4 191 246
+62de6 2 95 215
+62de8 4 191 246
+62dec 6 95 215
+62df2 4 225 220
+62df6 8 229 235
+62dfe 2 92 215
+62e00 6 235 235
+62e06 4 223 246
+62e0a 2 235 235
+62e0c 4 191 246
+62e10 2 220 246
+62e12 2 191 246
+62e14 4 93 215
+62e18 4 191 246
+62e1c 2 95 215
+62e1e 4 191 246
+62e22 6 95 215
+62e28 a 235 235
+62e32 6 229 235
+62e38 6 69 215
+62e3e 4 211 220
+62e42 4 208 220
+62e46 4 211 220
+62e4a 4 208 220
+62e4e 4 236 220
+62e52 4 235 220
+62e56 4 236 220
+62e5a 2 235 220
+62e5c 8 156 238
+62e64 a 235 235
+62e6e 6 229 235
+62e74 6 69 215
+62e7a a 235 235
+62e84 18 156 238
+62e9c c 271 220
+62ea8 1c 156 238
+FUNC 62ec4 40 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, int&, std::string&) const
+62ec4 4 304 220
+62ec8 4 304 220
+62ecc 2 307 220
+62ece 4 304 220
+62ed2 6 307 220
+62ed8 26 308 220
+62efe 6 309 220
+FUNC 62f04 104 0 std::money_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, int&, long double&) const
+62f04 6 279 220
+62f0a 2 120 238
+62f0c 2 279 220
+62f0e 2 124 238
+62f10 2 279 220
+62f12 2 124 238
+62f14 8 279 220
+62f1c 2 284 220
+62f1e 4 279 220
+62f22 2 120 238
+62f24 2 481 201
+62f26 4 124 238
+62f2a 4 101 205
+62f2e 2 284 220
+62f30 2 101 205
+62f32 6 283 220
+62f38 26 284 220
+62f5e 4 286 220
+62f62 4 284 220
+62f66 12 286 220
+62f78 c 284 220
+62f84 2 286 220
+62f86 2 66 238
+62f88 2 287 220
+62f8a 4 289 220
+62f8e 2 287 220
+62f90 2 287 220
+62f92 4 289 220
+62f96 2 120 238
+62f98 2 124 238
+62f9a 2 120 238
+62f9c 2 124 238
+62f9e 2 481 201
+62fa0 4 124 238
+62fa4 4 101 205
+62fa8 4 242 223
+62fac 2 101 205
+62fae 14 242 223
+62fc2 6 156 238
+62fc8 6 294 220
+62fce c 295 220
+62fda 8 299 220
+62fe2 6 156 238
+62fe8 8 300 220
+62ff0 6 289 220
+62ff6 12 156 238
+FUNC 63008 28 0 std::priv::_String_base<wchar_t, std::allocator<wchar_t> >::~_String_base
+63008 2 156 238
+6300a 2 156 238
+6300c 2 64 238
+6300e 4 96 238
+63012 2 96 238
+63014 4 97 238
+63018 4 323 201
+6301c 4 161 201
+63020 4 161 201
+63024 4 156 238
+63028 4 135 222
+6302c 4 156 238
+FUNC 63030 c 0 std::_STLP_mutex::~_STLP_mutex
+63030 2 411 240
+63032 2 411 240
+63034 4 342 240
+63038 4 411 240
+FUNC 6303c 34 0 std::__node_alloc_impl::_M_deallocate(void*, unsigned int)
+6303c 2 340 175
+6303e 2 340 175
+63040 2 347 240
+63042 2 341 175
+63044 2 347 240
+63046 2 341 175
+63048 6 347 240
+6304e 2 346 175
+63050 2 349 240
+63052 8 346 175
+6305a 4 347 175
+6305e 4 353 175
+63062 e 349 240
+FUNC 63070 18c 0 std::__node_alloc_impl::_S_chunk_alloc(unsigned int, int&)
+63070 4 365 175
+63074 4 405 175
+63078 2 387 175
+6307a 2 365 175
+6307c 2 407 175
+6307e 2 365 175
+63080 4 406 175
+63084 4 405 175
+63088 6 407 175
+6308e 4 388 175
+63092 2 387 175
+63094 4 407 175
+63098 2 406 175
+6309a 4 365 175
+6309e 4 377 175
+630a2 2 386 175
+630a4 4 388 175
+630a8 2 389 175
+630aa 2 386 175
+630ac 2 389 175
+630ae 4 388 175
+630b2 2 389 175
+630b4 8 387 175
+630bc 4 388 175
+630c0 4 389 175
+630c4 c 248 175
+630d0 4 392 175
+630d4 6 134 222
+630da 2 395 175
+630dc 2 134 222
+630de 4 395 175
+630e2 2 421 175
+630e4 4 426 175
+630e8 2 421 175
+630ea 2 426 175
+630ec 2 421 175
+630ee 2 426 175
+630f0 6 421 175
+630f6 2 367 175
+630f8 2 370 175
+630fa 4 367 175
+630fe 2 370 175
+63100 4 371 175
+63104 8 373 175
+6310c 8 429 175
+63114 a 378 175
+6311e a 381 175
+63128 2 378 175
+6312a 2 381 175
+6312c 2 382 175
+6312e c 398 175
+6313a 6 404 175
+63140 8 406 175
+63148 6 407 175
+6314e 4 404 175
+63152 4 404 175
+63156 4 405 175
+6315a 4 406 175
+6315e 6 407 175
+63164 6 134 222
+6316a 2 417 175
+6316c 2 367 175
+6316e 4 417 175
+63172 c 398 175
+6317e 2 405 175
+63180 2 408 175
+63182 2 410 175
+63184 2 409 175
+63186 2 410 175
+63188 4 408 175
+6318c 2 409 175
+6318e 2 410 175
+63190 2 409 175
+63192 4 408 175
+63196 2 411 175
+63198 2 410 175
+6319a 6 411 175
+631a0 a 398 175
+631aa 4 407 175
+631ae 4e 398 175
+FUNC 631fc 48 0 std::__node_alloc_impl::_S_refill(unsigned int)
+631fc 4 434 175
+63200 4 435 175
+63204 2 434 175
+63206 4 435 175
+6320a 4 436 175
+6320e 6 438 175
+63214 2 440 175
+63216 4 447 175
+6321a 2 440 175
+6321c 2 447 175
+6321e 2 448 175
+63220 4 447 175
+63224 4 448 175
+63228 2 447 175
+6322a 2 450 175
+6322c 2 448 175
+6322e 2 451 175
+63230 2 450 175
+63232 6 448 175
+63238 4 453 175
+6323c 8 455 175
+FUNC 63244 5c 0 std::__node_alloc_impl::_M_allocate(unsigned int&)
+63244 2 318 175
+63246 2 318 175
+63248 2 248 175
+6324a 2 347 240
+6324c 6 248 175
+63252 2 347 240
+63254 2 319 175
+63256 2 320 175
+63258 4 347 240
+6325c 2 328 175
+6325e 2 320 175
+63260 8 328 175
+63268 6 329 175
+6326e 8 349 240
+63276 4 338 175
+6327a a 331 175
+63284 1c 349 240
+FUNC 632a0 4 0 std::__node_alloc::_M_allocate(unsigned int&)
+632a0 4 743 175
+FUNC 632a4 4 0 std::__node_alloc::_M_deallocate(void*, unsigned int)
+632a4 4 746 175
+FUNC 632a8 114 0 _Locale_init
+632a8 4 58 176
+632ac 2 58 176
+632ae 4 63 176
+632b2 4 64 176
+632b6 2 58 176
+632b8 2 65 176
+632ba 2 63 176
+632bc 2 66 176
+632be 2 64 176
+632c0 4 67 176
+632c4 2 65 176
+632c6 2 66 176
+632c8 8 63 176
+632d0 c 63 176
+632dc 8 64 176
+632e4 c 64 176
+632f0 4 65 176
+632f4 2 66 176
+632f6 2 65 176
+632f8 a 65 176
+63302 6 66 176
+63308 8 66 176
+63310 8 67 176
+63318 c 67 176
+63324 8 68 176
+6332c c 68 176
+63338 8 69 176
+63340 c 69 176
+6334c 8 70 176
+63354 c 70 176
+63360 8 71 176
+63368 10 71 176
+63378 4 72 176
+6337c e 76 176
+6338a 4 77 176
+6338e 2e 76 176
+FUNC 633cc 74 0 __cxxabiv1::__cxa_type_match
+633cc 4 87 157
+633d0 4 93 157
+633d4 4 92 157
+633d8 6 87 157
+633de 2 92 157
+633e0 6 93 157
+633e6 14 93 157
+633fa 2 94 157
+633fc 2 95 157
+633fe 2 94 157
+63400 12 101 157
+63412 2 102 157
+63414 6 111 157
+6341a e 105 157
+63428 4 106 157
+6342c 2 107 157
+6342e 4 90 157
+63432 e 110 157
+FUNC 63440 50 0 __cxxabiv1::__cxa_begin_cleanup
+63440 2 134 157
+63442 2 134 157
+63444 4 135 157
+63448 4 139 157
+6344c 4 136 157
+63450 e 139 157
+6345e 4 146 157
+63462 2 139 157
+63464 4 150 157
+63468 a 140 157
+63472 2 141 157
+63474 8 142 157
+6347c 2 143 157
+6347e 12 150 157
+FUNC 63490 50 0 __cxxabiv1::helper_end_cleanup
+63490 2 152 157
+63492 4 153 157
+63496 2 154 157
+63498 2 156 157
+6349a 14 160 157
+634ae 4 167 157
+634b2 4 170 157
+634b6 2 171 157
+634b8 6 161 157
+634be 4 162 157
+634c2 4 163 157
+634c6 4 170 157
+634ca 2 164 157
+634cc 2 171 157
+634ce 12 157 157
+FUNC 634e0 104 0 __cxxabiv1::__cxa_call_unexpected
+634e0 6 187 157
+634e6 6 192 157
+634ec 2 187 157
+634ee 4 192 157
+634f2 2 187 157
+634f4 8 192 157
+634fc 2 187 157
+634fe 2 193 157
+63500 2 192 157
+63502 4 193 157
+63506 4 195 157
+6350a 4 204 157
+6350e 2 205 157
+63510 2 207 157
+63512 4 209 157
+63516 6 126 157
+6351c 4 127 157
+63520 4 196 157
+63524 4 197 157
+63528 4 212 157
+6352c 4 216 157
+63530 4 217 157
+63534 2 214 157
+63536 4 216 157
+6353a 8 218 157
+63542 4 221 157
+63546 4 226 157
+6354a 2 221 157
+6354c 4 226 157
+63550 4 222 157
+63554 6 226 157
+6355a 2 223 157
+6355c 4 233 157
+63560 2 230 157
+63562 a 233 157
+6356c 4 216 157
+63570 8 234 157
+63578 4 216 157
+6357c 8 196 157
+63584 4 227 157
+63588 8 212 157
+63590 6 239 157
+63596 4 240 157
+6359a 4 241 157
+6359e 1a 242 157
+635b8 6 118 157
+635be 4 119 157
+635c2 4 120 157
+635c6 4 121 157
+635ca 1a 120 157
+FUNC 635e8 18 0 __cxxabiv1::__class_type_info::~__class_type_info
+635e8 4 34 158
+635ec 8 34 158
+635f4 c 36 158
+FUNC 63600 12 0 __cxxabiv1::__class_type_info::~__class_type_info
+63600 2 34 158
+63602 2 34 158
+63604 4 36 158
+63608 6 36 158
+6360e 4 36 158
+FUNC 63614 1e 0 __cxxabiv1::__class_type_info::self_class_type_match(__cxxabiv1::__class_type_info const*, void*&, __cxxabiv1::__UpcastInfo&) const
+63614 2 69 158
+63616 6 69 158
+6361c 6 70 158
+63622 2 71 158
+63624 2 72 158
+63626 2 73 158
+63628 2 75 158
+6362a 2 71 158
+6362c 2 74 158
+6362e 2 73 158
+63630 2 79 158
+FUNC 63634 4 0 __cxxabiv1::__class_type_info::walk_to(__cxxabiv1::__class_type_info const*, void*&, __cxxabiv1::__UpcastInfo&) const
+63634 4 64 158
+FUNC 63638 38 0 __cxxabiv1::__UpcastInfo::__UpcastInfo
+63638 2 82 158
+6363a 4 84 158
+6363e 2 82 158
+63640 a 84 158
+6364a 4 87 158
+6364e 2 87 158
+63650 4 87 158
+63654 a 87 158
+6365e 2 86 158
+63660 4 88 158
+63664 c 90 158
+FUNC 63670 68 0 __cxxabiv1::__class_type_info::can_catch(__cxxabiv1::__shim_type_info const*, void*&) const
+63670 6 39 158
+63676 6 39 158
+6367c 6 40 158
+63682 2 41 158
+63684 2 40 158
+63686 2 47 158
+63688 4 45 158
+6368c 2 45 158
+6368e 2 45 158
+63690 6 45 158
+63696 2 45 158
+63698 6 45 158
+6369e 6 46 158
+636a4 8 50 158
+636ac 10 51 158
+636bc 4 53 158
+636c0 4 57 158
+636c4 2 54 158
+636c6 2 57 158
+636c8 10 59 158
+FUNC 636d8 24 0 __cxxabiv1::readULEB128
+636d8 2 56 162
+636da 2 58 162
+636dc 4 57 162
+636e0 4 62 162
+636e4 6 63 162
+636ea 2 64 162
+636ec 2 61 162
+636ee 4 63 162
+636f2 2 61 162
+636f4 2 66 162
+636f6 6 68 162
+FUNC 636fc 3e 0 __cxxabiv1::readSLEB128(unsigned char const**)
+636fc 2 70 162
+636fe 2 72 162
+63700 2 77 162
+63702 2 71 162
+63704 4 76 162
+63708 6 77 162
+6370e 2 78 162
+63710 4 75 162
+63714 4 77 162
+63718 2 75 162
+6371a 2 81 162
+6371c 2 80 162
+6371e c 81 162
+6372a a 82 162
+63734 6 85 162
+FUNC 6373c 19a 0 __cxxabiv1::readEncodedPointer(unsigned char const**, unsigned char)
+6373c 2 146 162
+6373e 8 144 162
+63746 2 144 162
+63748 4 146 162
+6374c 2 149 162
+6374e 4 151 162
+63752 2 149 162
+63754 16 151 162
+6376a 2 102 162
+6376c 2 183 162
+6376e e 102 162
+6377c 2 183 162
+6377e 6 102 162
+63784 a 191 162
+6378e 4 193 162
+63792 2 198 162
+63794 4 208 162
+63798 6 210 162
+6379e 4 199 162
+637a2 10 205 162
+637b2 4 206 162
+637b6 58 120 162
+6380e 2 175 162
+63810 c 120 162
+6381c 2 174 162
+6381e 2 175 162
+63820 2 176 162
+63822 6 163 162
+63828 2 164 162
+6382a a 90 162
+63834 2 179 162
+63836 2 178 162
+63838 2 180 162
+6383a 4 151 162
+6383e 4 62 162
+63842 6 63 162
+63848 2 64 162
+6384a 2 61 162
+6384c 4 63 162
+63850 2 61 162
+63852 2 187 162
+63854 2 188 162
+63856 8 90 162
+6385e 4 166 162
+63862 2 167 162
+63864 2 168 162
+63866 58 120 162
+638be 2 187 162
+638c0 c 120 162
+638cc 2 186 162
+638ce 4 187 162
+638d2 4 147 162
+FUNC 638d8 dc 0 walk_object
+638d8 c 119 163
+638e4 a 120 163
+638ee 2 123 163
+638f0 4 120 163
+638f4 10 123 163
+63904 2 158 163
+63906 6 176 163
+6390c 6 173 163
+63912 2 175 163
+63914 c 173 163
+63920 6 176 163
+63926 2 146 163
+63928 4 57 163
+6392c 6 146 163
+63932 2 145 163
+63934 6 107 160
+6393a 4 148 163
+6393e 2 113 160
+63940 2 103 163
+63942 4 155 163
+63946 6 107 163
+6394c 2 155 163
+6394e 2 48 163
+63950 4 155 163
+63954 4 157 163
+63958 2 159 163
+6395a 6 161 163
+63960 6 165 163
+63966 4 146 163
+6396a 6 146 163
+63970 8 176 163
+63978 4 161 163
+6397c 4 135 163
+63980 6 166 163
+63986 12 121 163
+63998 a 121 163
+639a2 12 145 163
+FUNC 639b4 dc 0 base_to_derived_cast
+639b4 4 200 163
+639b8 4 200 163
+639bc 4 205 163
+639c0 2 200 163
+639c2 2 204 163
+639c4 4 205 163
+639c8 2 206 163
+639ca 4 207 163
+639ce 6 209 163
+639d4 12 221 163
+639e6 14 261 163
+639fa 6 263 163
+63a00 2 243 163
+63a02 4 57 163
+63a06 4 243 163
+63a0a 2 243 163
+63a0c 2 243 163
+63a0e 4 107 160
+63a12 2 243 163
+63a14 2 251 163
+63a16 2 107 160
+63a18 4 245 163
+63a1c 4 113 160
+63a20 2 245 163
+63a22 2 103 163
+63a24 4 251 163
+63a28 6 107 163
+63a2e 2 48 163
+63a30 4 251 163
+63a34 8 254 163
+63a3c 2 243 163
+63a3e 4 243 163
+63a42 4 243 163
+63a46 6 209 163
+63a4c 8 211 163
+63a54 4 209 163
+63a58 4 213 163
+63a5c 2 215 163
+63a5e 2 263 163
+63a60 2 215 163
+63a62 c 216 163
+63a6e 2 214 163
+63a70 2 263 163
+63a72 6 214 163
+63a78 18 232 163
+FUNC 63a90 96 0 __cxxabiv1::__dynamic_cast
+63a90 6 293 163
+63a96 2 77 163
+63a98 6 293 163
+63a9e 2 293 163
+63aa0 2 303 163
+63aa2 4 48 163
+63aa6 2 303 163
+63aa8 4 48 163
+63aac 2 66 163
+63aae 2 303 163
+63ab0 4 66 163
+63ab4 8 303 163
+63abc 4 304 163
+63ac0 4 318 163
+63ac4 2 322 163
+63ac6 4 48 163
+63aca 10 322 163
+63ada c 193 163
+63ae6 2 329 163
+63ae8 a 330 163
+63af2 8 335 163
+63afa 2 349 163
+63afc 4 348 163
+63b00 c 353 163
+63b0c 8 354 163
+63b14 6 355 163
+63b1a c 333 163
+FUNC 63b28 64 0 __cxa_guard_acquire
+63b28 2 60 168
+63b2a 2 60 168
+63b2c a 61 168
+63b36 2 66 168
+63b38 4 67 168
+63b3c 6 76 168
+63b42 4 88 168
+63b46 4 76 168
+63b4a 4 87 168
+63b4e 2 88 168
+63b50 2 87 168
+63b52 6 88 168
+63b58 2 66 168
+63b5a 4 67 168
+63b5e 8 69 168
+63b66 4 70 168
+63b6a 2 80 168
+63b6c 6 79 168
+63b72 6 80 168
+63b78 14 81 168
+FUNC 63b8c 38 0 __cxa_guard_release
+63b8c 2 94 168
+63b8e 2 93 168
+63b90 2 94 168
+63b92 2 93 168
+63b94 6 94 168
+63b9a 2 96 168
+63b9c 4 98 168
+63ba0 4 99 168
+63ba4 8 100 168
+63bac 4 102 168
+63bb0 4 103 168
+63bb4 10 102 168
+FUNC 63bc4 38 0 __cxa_guard_abort
+63bc4 2 107 168
+63bc6 2 106 168
+63bc8 2 107 168
+63bca 2 106 168
+63bcc 6 107 168
+63bd2 2 109 168
+63bd4 4 110 168
+63bd8 4 111 168
+63bdc 8 112 168
+63be4 4 114 168
+63be8 4 115 168
+63bec 10 114 168
+FUNC 63bfc 4 0 __cxxabiv1::__vmi_class_type_info::code() const
+63bfc 4 198 160
+FUNC 63c00 18 0 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info
+63c00 4 35 173
+63c04 8 35 173
+63c0c c 37 173
+FUNC 63c18 12 0 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info
+63c18 2 35 173
+63c1a 2 35 173
+63c1c 4 37 173
+63c20 6 37 173
+63c26 4 37 173
+FUNC 63c2c 1a8 0 __cxxabiv1::__vmi_class_type_info::walk_to(__cxxabiv1::__class_type_info const*, void*&, __cxxabiv1::__UpcastInfo&) const
+63c2c 6 41 173
+63c32 8 41 173
+63c3a a 42 173
+63c44 4 46 173
+63c48 4 46 173
+63c4c 2 143 173
+63c4e 2 46 173
+63c50 2 46 173
+63c52 1e 143 173
+63c70 8 47 173
+63c78 4 113 160
+63c7c 4 48 173
+63c80 2 113 160
+63c82 4 49 173
+63c86 2 48 173
+63c88 4 103 160
+63c8c 4 107 160
+63c90 2 55 173
+63c92 2 113 160
+63c94 6 56 173
+63c9a 4 59 173
+63c9e 4 61 173
+63ca2 6 65 173
+63ca8 6 65 173
+63cae 10 74 173
+63cbe 6 82 173
+63cc4 4 83 173
+63cc8 6 86 173
+63cce 6 92 173
+63cd4 6 111 173
+63cda 6 114 173
+63ce0 6 120 173
+63ce6 c 138 173
+63cf2 6 143 173
+63cf8 6 143 173
+63cfe 4 146 173
+63d02 2 148 173
+63d04 4 147 173
+63d08 6 157 173
+63d0e 6 92 173
+63d14 a 93 173
+63d1e 6 94 173
+63d24 2 46 173
+63d26 6 46 173
+63d2c 4 46 173
+63d30 a 156 173
+63d3a 8 88 173
+63d42 6 120 173
+63d48 6 121 173
+63d4e 8 121 173
+63d56 e 126 173
+63d64 4 43 173
+63d68 14 138 173
+63d7c 18 111 173
+63d94 12 143 173
+63da6 2e 94 173
+FUNC 63dd4 12 0 std::priv::stdio_streambuf_base::sync()
+63dd4 2 144 195
+63dd6 8 145 195
+63dde 6 145 195
+63de4 2 146 195
+FUNC 63de8 2c 0 std::priv::stdio_streambuf_base::~stdio_streambuf_base
+63de8 4 60 195
+63dec 6 60 195
+63df2 2 61 195
+63df4 2 60 195
+63df6 4 61 195
+63dfa 1a 62 195
+FUNC 63e14 18 0 std::priv::stdio_ostreambuf::~stdio_ostreambuf
+63e14 4 198 195
+63e18 14 198 195
+FUNC 63e2c 12 0 std::priv::stdio_ostreambuf::~stdio_ostreambuf
+63e2c 2 198 195
+63e2e 6 198 195
+63e34 6 198 195
+63e3a 4 198 195
+FUNC 63e40 18 0 std::priv::stdio_istreambuf::~stdio_istreambuf
+63e40 4 151 195
+63e44 14 151 195
+FUNC 63e58 12 0 std::priv::stdio_istreambuf::~stdio_istreambuf
+63e58 2 151 195
+63e5a 6 151 195
+63e60 6 151 195
+63e66 4 151 195
+FUNC 63e6c 12 0 std::priv::stdio_streambuf_base::~stdio_streambuf_base
+63e6c 2 60 195
+63e6e 2 60 195
+63e70 4 62 195
+63e74 6 62 195
+63e7a 4 62 195
+FUNC 63e80 6 0 std::priv::stdio_istreambuf::uflow()
+63e80 2 175 195
+63e82 4 175 195
+FUNC 63e88 1a 0 std::priv::stdio_istreambuf::underflow()
+63e88 2 157 195
+63e8a 2 157 195
+63e8c 6 161 195
+63e92 2 163 195
+63e94 2 161 195
+63e96 2 163 195
+63e98 6 164 195
+63e9e 4 169 195
+FUNC 63ea4 36 0 std::priv::stdio_streambuf_base::seekpos(std::fpos<mbstate_t>, int)
+63ea4 4 114 195
+63ea8 2 141 195
+63eaa 2 138 195
+63eac 4 114 195
+63eb0 4 138 195
+63eb4 2 141 195
+63eb6 4 114 195
+63eba 6 141 195
+63ec0 a 89 246
+63eca 6 142 195
+63ed0 a 141 195
+FUNC 63edc 1c 0 std::priv::stdio_streambuf_base::setbuf(char*, int)
+63edc 2 64 195
+63ede 4 64 195
+63ee2 8 70 195
+63eea 4 70 195
+63eee 2 70 195
+63ef0 4 70 195
+63ef4 4 73 195
+FUNC 63ef8 4c 0 std::priv::stdio_streambuf_base::seekoff(long, int, int)
+63ef8 2 79 195
+63efa 6 77 195
+63f00 4 77 195
+63f04 a 79 195
+63f0e a 89 246
+63f18 6 110 195
+63f1e 2 81 195
+63f20 c 93 195
+63f2c 8 95 195
+63f34 8 89 246
+63f3c 2 87 195
+63f3e 2 88 195
+63f40 4 84 195
+FUNC 63f44 40 0 std::priv::stdio_ostreambuf::overflow(int)
+63f44 2 203 195
+63f46 2 205 195
+63f48 2 203 195
+63f4a 2 205 195
+63f4c 6 227 195
+63f52 4 231 195
+63f56 4 227 195
+63f5a 4 207 195
+63f5e 2 208 195
+63f60 4 182 246
+63f64 2 208 195
+63f66 4 231 195
+63f6a 6 209 195
+63f70 6 211 195
+63f76 a 182 246
+63f80 4 231 195
+FUNC 63f84 24 0 std::priv::stdio_istreambuf::pbackfail(int)
+63f84 2 181 195
+63f86 2 180 195
+63f88 2 181 195
+63f8a 6 182 195
+63f90 4 182 195
+63f94 2 88 235
+63f96 6 186 195
+63f9c 8 91 235
+63fa4 2 191 195
+63fa6 2 193 195
+FUNC 63fa8 3c 0 std::priv::stdio_streambuf_base::stdio_streambuf_base
+63fa8 2 34 234
+63faa 2 55 195
+63fac 2 34 234
+63fae 2 55 195
+63fb0 e 34 234
+63fbe 2 55 195
+63fc0 c 34 234
+63fcc 4 57 195
+63fd0 2 58 195
+63fd2 6 57 195
+63fd8 c 58 195
+FUNC 63fe4 e 0 std::codecvt<char, char, mbstate_t>::do_length(mbstate_t&, char const*, char const*, unsigned int) const
+FUNC 63fe4 e 0 std::codecvt<wchar_t, char, mbstate_t>::do_length(mbstate_t&, char const*, char const*, unsigned int) const
+63fe4 e 132 177
+FUNC 63ff4 8 0 std::codecvt<char, char, mbstate_t>::do_unshift(mbstate_t&, char*, char*, char*&) const
+FUNC 63ff4 8 0 std::codecvt<wchar_t, char, mbstate_t>::do_unshift(mbstate_t&, char*, char*, char*&) const
+63ff4 2 118 177
+63ff6 6 52 177
+FUNC 63ffc e 0 std::codecvt<char, char, mbstate_t>::do_in(mbstate_t&, char const*, char const*, char const*&, char*, char*, char*&) const
+FUNC 63ffc e 0 std::codecvt<char, char, mbstate_t>::do_out(mbstate_t&, char const*, char const*, char const*&, char*, char*, char*&) const
+63ffc e 72 177
+FUNC 6400c 3e 0 std::codecvt<wchar_t, char, mbstate_t>::do_out(mbstate_t&, wchar_t const*, wchar_t const*, wchar_t const*&, char*, char*, char*&) const
+6400c 2 89 177
+6400e 2 90 177
+64010 2 89 177
+64012 6 90 177
+64018 6 91 177
+6401e 4 213 200
+64022 2 213 200
+64024 4 213 200
+64028 2 213 200
+6402a 4 83 177
+6402e 8 214 200
+64036 4 213 200
+6403a 2 92 177
+6403c 2 93 177
+6403e 2 95 177
+64040 2 92 177
+64042 4 93 177
+64046 4 95 177
+FUNC 6404c 3c 0 std::codecvt<wchar_t, char, mbstate_t>::do_in(mbstate_t&, char const*, char const*, char const*&, wchar_t*, wchar_t*, wchar_t*&) const
+6404c 2 104 177
+6404e 2 105 177
+64050 2 104 177
+64052 6 105 177
+64058 8 107 177
+64060 2 213 200
+64062 4 213 200
+64066 4 98 177
+6406a 4 214 200
+6406e 2 213 200
+64070 4 214 200
+64074 2 213 200
+64076 2 108 177
+64078 4 109 177
+6407c 2 111 177
+6407e 2 108 177
+64080 4 109 177
+64084 4 111 177
+FUNC 64088 1c 0 std::codecvt<wchar_t, char, mbstate_t>::~codecvt
+64088 4 79 177
+6408c 18 79 177
+FUNC 640a4 12 0 std::codecvt<wchar_t, char, mbstate_t>::~codecvt
+640a4 2 79 177
+640a6 6 79 177
+640ac 6 79 177
+640b2 4 79 177
+FUNC 640b8 1c 0 std::codecvt<char, char, mbstate_t>::~codecvt
+640b8 4 28 177
+640bc 18 28 177
+FUNC 640d4 12 0 std::codecvt<char, char, mbstate_t>::~codecvt
+640d4 2 28 177
+640d6 6 28 177
+640dc 6 28 177
+640e2 4 28 177
+FUNC 640e8 18 0 std::collate<char>::do_hash(char const*, char const*) const
+640e8 6 37 178
+640ee 8 38 178
+640f6 2 37 178
+640f8 2 38 178
+640fa 4 37 178
+640fe 2 40 178
+FUNC 64100 66 0 std::collate<wchar_t>::do_compare(wchar_t const*, wchar_t const*, wchar_t const*, wchar_t const*) const
+64100 2 50 178
+64102 2 80 199
+64104 2 50 178
+64106 10 80 199
+64116 8 81 199
+6411e a 85 199
+64128 c 81 199
+64134 2 85 199
+64136 2 87 199
+64138 2 88 199
+6413a 14 80 199
+6414e 4 90 199
+64152 6 91 199
+64158 4 50 178
+6415c 6 94 199
+64162 4 86 199
+FUNC 64168 18 0 std::collate<wchar_t>::do_hash(wchar_t const*, wchar_t const*) const
+64168 6 57 178
+6416e 8 58 178
+64176 2 57 178
+64178 2 58 178
+6417a 4 57 178
+6417e 2 60 178
+FUNC 64180 1c 0 std::collate<wchar_t>::~collate
+64180 4 45 178
+64184 18 45 178
+FUNC 6419c 12 0 std::collate<wchar_t>::~collate
+6419c 2 45 178
+6419e 6 45 178
+641a4 6 45 178
+641aa 4 45 178
+FUNC 641b0 1c 0 std::collate<char>::~collate
+641b0 4 26 178
+641b4 18 26 178
+FUNC 641cc 12 0 std::collate<char>::~collate
+641cc 2 26 178
+641ce 6 26 178
+641d4 6 26 178
+641da 4 26 178
+FUNC 641e0 2a 0 std::collate<char>::do_compare(char const*, char const*, char const*, char const*) const
+641e0 2 30 178
+641e2 2 625 200
+641e4 2 626 200
+641e6 4 627 200
+641ea 2 626 200
+641ec c 627 200
+641f8 2 629 200
+641fa 4 629 200
+641fe 2 629 200
+64200 2 629 200
+64202 2 30 178
+64204 6 629 200
+FUNC 6420c 4c 0 std::collate<char>::do_transform(char const*, char const*) const
+6420c 2 33 178
+6420e 2 33 178
+64210 2 355 216
+64212 2 112 238
+64214 2 324 237
+64216 2 481 201
+64218 4 33 178
+6421c 4 324 237
+64220 2 107 243
+64222 2 66 238
+64224 2 107 243
+64226 8 106 243
+6422e 2 107 243
+64230 2 325 237
+64232 4 101 205
+64236 4 33 178
+6423a 2 64 238
+6423c 4 96 238
+64240 2 96 238
+64242 4 97 238
+64246 4 161 201
+6424a 4 135 222
+6424e a 161 201
+FUNC 64258 52 0 std::collate<wchar_t>::do_transform(wchar_t const*, wchar_t const*) const
+64258 2 53 178
+6425a 2 355 216
+6425c 4 53 178
+64260 2 355 216
+64262 2 112 238
+64264 2 481 201
+64266 2 324 237
+64268 2 53 178
+6426a 4 324 237
+6426e 2 107 243
+64270 2 66 238
+64272 2 107 243
+64274 8 106 243
+6427c 2 107 243
+6427e 2 325 237
+64280 4 101 205
+64284 4 53 178
+64288 2 64 238
+6428a 4 96 238
+6428e 2 96 238
+64290 4 97 238
+64294 4 323 201
+64298 4 161 201
+6429c 4 135 222
+642a0 a 161 201
+FUNC 642ac c 0 std::ctype<char>::do_toupper(char) const
+642ac 4 342 179
+642b0 2 342 179
+642b2 6 342 179
+FUNC 642b8 c 0 std::ctype<char>::do_tolower(char) const
+642b8 4 344 179
+642bc 2 344 179
+642be 6 344 179
+FUNC 642c4 1c 0 std::ctype<char>::do_toupper(char*, char const*) const
+642c4 6 347 179
+642ca a 348 179
+642d4 4 347 179
+642d8 8 350 179
+FUNC 642e0 1c 0 std::ctype<char>::do_tolower(char*, char const*) const
+642e0 6 352 179
+642e6 a 353 179
+642f0 4 352 179
+642f4 8 355 179
+FUNC 642fc 4 0 std::ctype<char>::do_narrow(char, char) const
+FUNC 642fc 4 0 std::ctype<char>::do_widen(char) const
+642fc 4 456 179
+FUNC 642fc 4 0 std::ctype<wchar_t>::do_widen(char) const
+FUNC 64300 14 0 std::ctype<wchar_t>::do_toupper(wchar_t) const
+64300 4 426 179
+64304 6 425 179
+6430a a 427 179
+FUNC 64314 24 0 std::ctype<wchar_t>::do_toupper(wchar_t*, wchar_t const*) const
+64314 4 431 179
+64318 4 433 179
+6431c 4 432 179
+64320 2 434 179
+64322 4 433 179
+64326 2 431 179
+64328 4 434 179
+6432c 2 431 179
+6432e a 437 179
+FUNC 64338 14 0 std::ctype<wchar_t>::do_tolower(wchar_t) const
+64338 4 441 179
+6433c 6 440 179
+64342 a 442 179
+FUNC 6434c 24 0 std::ctype<wchar_t>::do_tolower(wchar_t*, wchar_t const*) const
+6434c 4 446 179
+64350 4 448 179
+64354 4 447 179
+64358 2 449 179
+6435a 4 448 179
+6435e 2 446 179
+64360 4 449 179
+64364 2 446 179
+64366 a 452 179
+FUNC 64370 12 0 std::ctype<wchar_t>::do_widen(char const*, char const*, wchar_t*) const
+64370 2 460 179
+64372 8 462 179
+6437a 4 461 179
+6437e 4 464 179
+FUNC 64384 c 0 std::ctype<wchar_t>::do_narrow(wchar_t, char) const
+64384 2 467 179
+64386 8 467 179
+6438e 2 467 179
+FUNC 64390 24 0 std::ctype<wchar_t>::do_narrow(wchar_t const*, wchar_t const*, char, char*) const
+64390 2 472 179
+64392 2 471 179
+64394 2 471 179
+64396 2 472 179
+64398 4 473 179
+6439c 2 474 179
+6439e 8 474 179
+643a6 2 472 179
+643a8 4 474 179
+643ac 2 472 179
+643ae 6 478 179
+FUNC 643b4 1c 0 std::ctype<wchar_t>::~ctype
+643b4 4 391 179
+643b8 18 391 179
+FUNC 643d0 12 0 std::ctype<wchar_t>::~ctype
+643d0 2 391 179
+643d2 6 391 179
+643d8 6 391 179
+643de 4 391 179
+FUNC 643e4 12 0 std::ctype<char>::do_narrow(char const*, char const*, char, char*) const
+643e4 2 370 179
+643e6 2 370 179
+643e8 4 224 200
+643ec 6 224 200
+643f2 4 373 179
+FUNC 643f8 12 0 std::ctype<char>::do_widen(char const*, char const*, char*) const
+643f8 2 362 179
+643fa 2 362 179
+643fc 4 224 200
+64400 6 224 200
+64406 4 365 179
+FUNC 6440c 28 0 std::ctype<char>::~ctype
+6440c 2 322 179
+6440e 2 323 179
+64410 6 322 179
+64416 6 322 179
+6441c 2 323 179
+6441e 4 324 179
+64422 4 324 179
+64426 e 325 179
+FUNC 64434 12 0 std::ctype<char>::~ctype
+64434 2 322 179
+64436 2 322 179
+64438 4 325 179
+6443c 6 325 179
+64442 4 325 179
+FUNC 64448 c 0 std::ctype<char>::classic_table()
+64448 4 192 179
+6444c 8 193 179
+FUNC 64454 2a 0 std::ctype<wchar_t>::do_is(wchar_t const*, wchar_t const*, std::ctype_base::mask*) const
+64454 2 400 179
+64456 6 400 179
+6445c 4 402 179
+64460 4 404 179
+64464 4 405 179
+64468 2 406 179
+6446a 2 406 179
+6446c 6 406 179
+64472 2 404 179
+64474 4 406 179
+64478 2 404 179
+6447a 4 409 179
+FUNC 64480 20 0 std::ctype<wchar_t>::do_is(std::ctype_base::mask, wchar_t) const
+64480 2 394 179
+64482 4 394 179
+64486 4 395 179
+6448a 4 396 179
+6448e 4 396 179
+64492 a 394 179
+6449c 2 396 179
+6449e 2 397 179
+FUNC 644a0 44 0 std::ctype<char>::ctype
+644a0 2 86 218
+644a2 2 316 179
+644a4 2 316 179
+644a6 4 86 218
+644aa 4 340 240
+644ae 2 457 240
+644b0 2 316 179
+644b2 2 340 240
+644b4 2 316 179
+644b6 4 340 240
+644ba 2 86 218
+644bc a 319 179
+644c6 2 319 179
+644c8 2 319 179
+644ca 2 319 179
+644cc 2 319 179
+644ce 4 320 179
+644d2 4 319 179
+644d6 2 319 179
+644d8 2 319 179
+644da 2 320 179
+644dc 2 319 179
+644de 6 320 179
+FUNC 644e4 aa 0 wchar_t const* std::find_if<wchar_t const*, std::_Ctype_w_is_mask>(wchar_t const*, wchar_t const*, std::_Ctype_w_is_mask)
+644e4 2 162 199
+644e6 2 214 199
+644e8 4 162 199
+644ec 2 164 199
+644ee 4 217 199
+644f2 2 164 199
+644f4 2 165 199
+644f6 4 385 179
+644fa 8 385 179
+64502 4 218 199
+64506 2 168 199
+64508 2 214 199
+6450a 4 385 179
+6450e 8 385 179
+64516 4 166 199
+6451a 2 171 199
+6451c 4 385 179
+64520 8 385 179
+64528 4 171 199
+6452c 2 174 199
+6452e 4 385 179
+64532 8 385 179
+6453a 4 174 199
+6453e 2 214 199
+64540 8 164 199
+64548 c 178 199
+64554 4 190 199
+64558 2 180 199
+6455a 4 385 179
+6455e 2 181 199
+64560 2 183 199
+64562 4 385 179
+64566 2 184 199
+64568 2 186 199
+6456a 4 385 179
+6456e 4 385 179
+64572 8 190 199
+6457a 14 385 179
+FUNC 64590 22 0 std::ctype<wchar_t>::do_scan_is(std::ctype_base::mask, wchar_t const*, wchar_t const*) const
+64590 4 413 179
+64594 6 413 179
+6459a c 414 179
+645a6 4 383 179
+645aa 4 414 179
+645ae 4 415 179
+FUNC 645b4 ce 0 wchar_t const* std::find_if<wchar_t const*, std::unary_negate<std::_Ctype_w_is_mask> >(wchar_t const*, wchar_t const*, std::unary_negate<std::_Ctype_w_is_mask>)
+645b4 2 162 199
+645b6 2 214 199
+645b8 4 162 199
+645bc 2 164 199
+645be 4 217 199
+645c2 2 164 199
+645c4 2 481 179
+645c6 4 385 179
+645ca 8 385 179
+645d2 2 481 179
+645d4 2 166 199
+645d6 6 385 179
+645dc 2 166 199
+645de 2 385 179
+645e0 8 385 179
+645e8 2 481 179
+645ea 4 385 179
+645ee 8 385 179
+645f6 2 481 179
+645f8 4 385 179
+645fc 4 385 179
+64600 4 214 199
+64604 4 385 179
+64608 4 164 199
+6460c 2 481 179
+6460e 4 385 179
+64612 4 385 179
+64616 4 214 199
+6461a 4 385 179
+6461e 2 481 179
+64620 2 385 179
+64622 2 166 199
+64624 4 385 179
+64628 2 166 199
+6462a 4 218 199
+6462e 4 164 199
+64632 a 178 199
+6463c 4 190 199
+64640 2 178 199
+64642 2 481 179
+64644 4 385 179
+64648 4 385 179
+6464c 8 190 199
+64654 6 171 199
+6465a 6 174 199
+64660 2 481 179
+64662 4 385 179
+64666 8 385 179
+6466e 2 181 199
+64670 2 481 179
+64672 4 385 179
+64676 8 385 179
+6467e 4 184 199
+FUNC 64684 22 0 std::ctype<wchar_t>::do_scan_not(std::ctype_base::mask, wchar_t const*, wchar_t const*) const
+64684 4 420 179
+64688 6 420 179
+6468e 4 421 179
+64692 4 421 179
+64696 2 146 209
+64698 2 421 179
+6469a 2 421 179
+6469c 2 146 209
+6469e 4 421 179
+646a2 4 422 179
+FUNC 646a8 4 0 std::moneypunct<char, false>::do_decimal_point() const
+FUNC 646a8 4 0 std::moneypunct<char, false>::do_thousands_sep() const
+FUNC 646a8 4 0 std::moneypunct<char, true>::do_decimal_point() const
+646a8 4 53 189
+FUNC 646a8 4 0 std::moneypunct<char, true>::do_thousands_sep() const
+FUNC 646a8 4 0 std::moneypunct<wchar_t, false>::do_decimal_point() const
+FUNC 646a8 4 0 std::moneypunct<wchar_t, false>::do_thousands_sep() const
+FUNC 646a8 4 0 std::moneypunct<wchar_t, true>::do_decimal_point() const
+FUNC 646a8 4 0 std::moneypunct<wchar_t, true>::do_thousands_sep() const
+FUNC 646ac 2c 0 std::moneypunct<char, false>::do_pos_format() const
+646ac 2 73 189
+646ae 2 114 189
+646b0 4 114 189
+646b4 1c 114 189
+646d0 8 94 189
+FUNC 646ac 2c 0 std::moneypunct<char, true>::do_pos_format() const
+FUNC 646ac 2c 0 std::moneypunct<wchar_t, false>::do_pos_format() const
+FUNC 646ac 2c 0 std::moneypunct<wchar_t, true>::do_pos_format() const
+FUNC 646d8 2c 0 std::moneypunct<char, false>::do_neg_format() const
+646d8 2 59 189
+646da 2 59 189
+646dc 4 96 189
+646e0 1c 116 189
+646fc 8 59 189
+FUNC 646d8 2c 0 std::moneypunct<char, true>::do_neg_format() const
+FUNC 646d8 2c 0 std::moneypunct<wchar_t, false>::do_neg_format() const
+FUNC 646d8 2c 0 std::moneypunct<wchar_t, true>::do_neg_format() const
+FUNC 64704 1c 0 std::moneypunct<wchar_t, false>::~moneypunct
+64704 4 100 189
+64708 18 100 189
+FUNC 64720 12 0 std::moneypunct<wchar_t, false>::~moneypunct
+64720 2 100 189
+64722 6 100 189
+64728 6 100 189
+6472e 4 100 189
+FUNC 64734 1c 0 std::moneypunct<wchar_t, true>::~moneypunct
+64734 4 80 189
+64738 18 80 189
+FUNC 64750 12 0 std::moneypunct<wchar_t, true>::~moneypunct
+64750 2 80 189
+64752 6 80 189
+64758 6 80 189
+6475e 4 80 189
+FUNC 64764 1c 0 std::moneypunct<char, false>::~moneypunct
+64764 4 64 189
+64768 18 64 189
+FUNC 64780 12 0 std::moneypunct<char, false>::~moneypunct
+64780 2 64 189
+64782 6 64 189
+64788 6 64 189
+6478e 4 64 189
+FUNC 64794 1c 0 std::moneypunct<char, true>::~moneypunct
+64794 4 50 189
+64798 18 50 189
+FUNC 647b0 12 0 std::moneypunct<char, true>::~moneypunct
+647b0 2 50 189
+647b2 6 50 189
+647b8 6 50 189
+647be 4 50 189
+FUNC 647c4 44 0 std::moneypunct<char, true>::moneypunct
+647c4 2 48 189
+647c6 2 48 189
+647c8 2 340 240
+647ca 2 48 189
+647cc 2 86 218
+647ce 4 340 240
+647d2 4 86 218
+647d6 2 457 240
+647d8 4 340 240
+647dc 2 86 218
+647de 2 28 189
+647e0 2 27 189
+647e2 4 48 189
+647e6 2 29 189
+647e8 2 30 189
+647ea 2 48 189
+647ec 2 28 189
+647ee 2 33 189
+647f0 2 49 189
+647f2 2 27 189
+647f4 2 48 189
+647f6 2 29 189
+647f8 2 30 189
+647fa 2 32 189
+647fc 2 34 189
+647fe 2 35 189
+64800 8 49 189
+FUNC 64808 44 0 std::moneypunct<char, false>::moneypunct
+64808 2 62 189
+6480a 2 62 189
+6480c 2 340 240
+6480e 2 62 189
+64810 2 86 218
+64812 4 340 240
+64816 4 86 218
+6481a 2 457 240
+6481c 4 340 240
+64820 2 86 218
+64822 2 28 189
+64824 2 27 189
+64826 4 62 189
+6482a 2 29 189
+6482c 2 30 189
+6482e 2 62 189
+64830 2 28 189
+64832 2 33 189
+64834 2 63 189
+64836 2 27 189
+64838 2 62 189
+6483a 2 29 189
+6483c 2 30 189
+6483e 2 32 189
+64840 2 34 189
+64842 2 35 189
+64844 8 63 189
+FUNC 6484c 44 0 std::moneypunct<wchar_t, true>::moneypunct
+6484c 2 78 189
+6484e 2 78 189
+64850 2 340 240
+64852 2 78 189
+64854 2 86 218
+64856 4 340 240
+6485a 4 86 218
+6485e 2 457 240
+64860 4 340 240
+64864 2 86 218
+64866 2 28 189
+64868 2 27 189
+6486a 4 78 189
+6486e 2 29 189
+64870 2 30 189
+64872 2 78 189
+64874 2 28 189
+64876 2 33 189
+64878 2 79 189
+6487a 2 27 189
+6487c 2 78 189
+6487e 2 29 189
+64880 2 30 189
+64882 2 32 189
+64884 2 34 189
+64886 2 35 189
+64888 8 79 189
+FUNC 64890 44 0 std::moneypunct<wchar_t, false>::moneypunct
+64890 2 98 189
+64892 2 98 189
+64894 2 340 240
+64896 2 98 189
+64898 2 86 218
+6489a 4 340 240
+6489e 4 86 218
+648a2 2 457 240
+648a4 4 340 240
+648a8 2 86 218
+648aa 2 28 189
+648ac 2 27 189
+648ae 4 98 189
+648b2 2 29 189
+648b4 2 30 189
+648b6 2 98 189
+648b8 2 28 189
+648ba 2 33 189
+648bc 2 99 189
+648be 2 27 189
+648c0 2 98 189
+648c2 2 29 189
+648c4 2 30 189
+648c6 2 32 189
+648c8 2 34 189
+648ca 2 35 189
+648cc 8 99 189
+FUNC 648d4 1c 0 std::moneypunct<char, false>::do_curr_symbol() const
+FUNC 648d4 1c 0 std::moneypunct<char, false>::do_grouping() const
+648d4 6 56 189
+648da 16 104 189
+FUNC 648d4 1c 0 std::moneypunct<char, false>::do_negative_sign() const
+FUNC 648d4 1c 0 std::moneypunct<char, false>::do_positive_sign() const
+FUNC 648d4 1c 0 std::moneypunct<char, true>::do_curr_symbol() const
+FUNC 648d4 1c 0 std::moneypunct<char, true>::do_grouping() const
+FUNC 648d4 1c 0 std::moneypunct<char, true>::do_negative_sign() const
+FUNC 648d4 1c 0 std::moneypunct<char, true>::do_positive_sign() const
+FUNC 648d4 1c 0 std::moneypunct<wchar_t, false>::do_grouping() const
+FUNC 648d4 1c 0 std::moneypunct<wchar_t, true>::do_grouping() const
+FUNC 648f0 5c 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string
+648f0 2 639 236
+648f2 2 639 236
+648f4 2 112 238
+648f6 2 264 246
+648f8 2 481 201
+648fa 2 639 236
+648fc 4 264 246
+64900 4 643 236
+64904 2 379 237
+64906 4 378 237
+6490a 6 379 237
+64910 2 107 243
+64912 2 66 238
+64914 2 107 243
+64916 8 106 243
+6491e 2 107 243
+64920 2 380 237
+64922 4 101 205
+64926 4 644 236
+6492a 2 64 238
+6492c 4 96 238
+64930 2 96 238
+64932 4 97 238
+64936 4 323 201
+6493a 4 161 201
+6493e 4 135 222
+64942 a 161 201
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, false>::do_curr_symbol() const
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, false>::do_negative_sign() const
+6494c 6 110 189
+64952 16 110 189
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, false>::do_positive_sign() const
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, true>::do_curr_symbol() const
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, true>::do_negative_sign() const
+FUNC 6494c 1c 0 std::moneypunct<wchar_t, true>::do_positive_sign() const
+FUNC 64968 64 0 std::priv::__valid_grouping(char const*, char const*, char const*, char const*)
+64968 4 40 190
+6496c 2 39 190
+6496e 14 40 190
+64982 4 42 190
+64986 4 44 190
+6498a 8 45 190
+64992 4 38 190
+64996 e 45 190
+649a4 2 47 190
+649a6 2 48 190
+649a8 4 48 190
+649ac 4 44 190
+649b0 c 51 190
+649bc 4 52 190
+649c0 4 40 190
+649c4 8 46 190
+FUNC 649cc c 0 std::priv::__digit_val_table(unsigned int)
+649cc 4 66 190
+649d0 2 66 190
+649d2 6 67 190
+FUNC 649d8 c 0 std::priv::__narrow_atoms()
+649d8 4 70 190
+649dc 8 70 190
+FUNC 649e4 9c 0 wchar_t const* std::find<wchar_t const*, wchar_t>(wchar_t const*, wchar_t const*, wchar_t const&)
+649e4 2 115 199
+649e6 2 221 199
+649e8 4 115 199
+649ec 4 117 199
+649f0 8 118 199
+649f8 6 121 199
+649fe 6 124 199
+64a04 4 127 199
+64a08 4 127 199
+64a0c 4 127 199
+64a10 6 118 199
+64a16 6 121 199
+64a1c 2 124 199
+64a1e 2 124 199
+64a20 4 124 199
+64a24 6 127 199
+64a2a 2 221 199
+64a2c 2 117 199
+64a2e 4 221 199
+64a32 6 117 199
+64a38 a 131 199
+64a42 4 143 199
+64a46 2 131 199
+64a48 4 224 199
+64a4c 2 131 199
+64a4e 6 136 199
+64a54 2 137 199
+64a56 2 139 199
+64a58 8 143 199
+64a60 4 131 199
+64a64 4 124 199
+64a68 4 127 199
+64a6c 4 119 199
+64a70 8 133 199
+64a78 4 134 199
+64a7c 4 119 199
+FUNC 64a80 2a 0 std::priv::__get_fdigit(wchar_t&, wchar_t const*)
+64a80 2 78 190
+64a82 4 79 190
+64a86 4 78 190
+64a8a a 79 190
+64a94 4 80 190
+64a98 2 81 190
+64a9a 2 82 190
+64a9c 8 81 190
+64aa4 2 82 190
+64aa6 2 85 190
+64aa8 2 86 190
+FUNC 64aac 14 0 std::priv::__get_fdigit_or_sep(wchar_t&, wchar_t, wchar_t const*)
+64aac 6 90 190
+64ab2 2 95 190
+64ab4 4 95 190
+64ab8 4 91 190
+64abc 4 96 190
+FUNC 64ac0 c 0 std::priv::__hex_char_table_lo()
+64ac0 4 119 192
+64ac4 8 119 192
+FUNC 64acc c 0 std::priv::__hex_char_table_hi()
+64acc 4 122 192
+64ad0 8 122 192
+FUNC 64ad8 9a 0 std::priv::__insert_grouping(char*, char*, std::string const&, char, char, char, int)
+64ad8 4 136 192
+64adc 2 36 192
+64ade 2 136 192
+64ae0 a 136 192
+64aea 2 36 192
+64aec a 41 192
+64af6 8 41 192
+64afe 4 39 192
+64b02 4 52 192
+64b06 6 46 192
+64b0c 2 49 192
+64b0e 2 65 238
+64b10 4 57 192
+64b14 4 400 237
+64b18 2 53 192
+64b1a a 54 192
+64b24 2 57 192
+64b26 4 62 192
+64b2a e 57 192
+64b38 2 57 192
+64b3a 2 57 192
+64b3c 2 63 192
+64b3e 2 255 200
+64b40 2 135 192
+64b42 2 256 200
+64b44 4 256 200
+64b48 2 256 200
+64b4a 6 256 200
+64b50 6 65 192
+64b56 2 42 192
+64b58 2 43 192
+64b5a 4 42 192
+64b5e a 68 192
+64b68 6 139 192
+64b6e 4 37 192
+FUNC 64b74 b4 0 std::priv::__insert_grouping(wchar_t*, wchar_t*, std::string const&, wchar_t, wchar_t, wchar_t, int)
+64b74 4 151 192
+64b78 2 36 192
+64b7a 2 151 192
+64b7c a 151 192
+64b86 2 36 192
+64b88 8 41 192
+64b90 6 41 192
+64b96 4 39 192
+64b9a 4 43 192
+64b9e 2 52 192
+64ba0 4 43 192
+64ba4 4 46 192
+64ba8 2 49 192
+64baa 6 46 192
+64bb0 4 57 192
+64bb4 2 53 192
+64bb6 6 54 192
+64bbc 2 57 192
+64bbe 4 57 192
+64bc2 4 62 192
+64bc6 10 57 192
+64bd6 2 63 192
+64bd8 2 256 200
+64bda 2 255 200
+64bdc 2 149 192
+64bde 2 256 200
+64be0 4 256 200
+64be4 2 256 200
+64be6 10 256 200
+64bf6 2 53 192
+64bf8 4 65 192
+64bfc 4 57 192
+64c00 6 54 192
+64c06 4 57 192
+64c0a c 68 192
+64c16 6 154 192
+64c1c 2 42 192
+64c1e 2 43 192
+64c20 4 42 192
+64c24 4 37 192
+FUNC 64c28 126 0 char* std::priv::__write_integer_backward<long>(char*, int, long)
+64c28 8 304 225
+64c30 2 304 225
+64c32 2 307 225
+64c34 4 309 225
+64c38 4 308 225
+64c3c 4 309 225
+64c40 4 308 225
+64c44 2 309 225
+64c46 8 368 225
+64c4e c 314 225
+64c5a 2 278 225
+64c5c 4 279 225
+64c60 2 278 225
+64c62 2 279 225
+64c64 2 304 225
+64c66 c 282 225
+64c72 6 281 225
+64c78 6 282 225
+64c7e 2 281 225
+64c80 4 282 225
+64c84 8 281 225
+64c8c 6 281 225
+64c92 2 282 225
+64c94 6 284 225
+64c9a a 285 225
+64ca4 4 333 225
+64ca8 2 333 225
+64caa 2 333 225
+64cac 6 333 225
+64cb2 4 339 225
+64cb6 2 304 225
+64cb8 2 339 225
+64cba 2 339 225
+64cbc 4 340 225
+64cc0 6 339 225
+64cc6 4 340 225
+64cca 4 339 225
+64cce 4 339 225
+64cd2 4 340 225
+64cd6 2 339 225
+64cd8 6 342 225
+64cde 2 343 225
+64ce0 6 344 225
+64ce6 4 343 225
+64cea 4 344 225
+64cee a 310 225
+64cf8 8 279 225
+64d00 4 322 225
+64d04 2 304 225
+64d06 2 322 225
+64d08 8 322 225
+64d10 8 323 225
+64d18 4 322 225
+64d1c 4 322 225
+64d20 4 323 225
+64d24 2 322 225
+64d26 6 326 225
+64d2c a 327 225
+64d36 6 286 225
+64d3c a 287 225
+64d46 8 333 225
+FUNC 64d50 24 0 std::priv::__write_integer(char*, int, long)
+64d50 4 125 192
+64d54 2 125 192
+64d56 6 128 192
+64d5c 4 224 200
+64d60 2 128 192
+64d62 2 224 200
+64d64 a 224 200
+64d6e 6 130 192
+FUNC 64d74 10c 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_insert_aux(char*, char)
+64d74 4 64 238
+64d78 4 256 236
+64d7c 2 74 238
+64d7e 6 256 236
+64d84 2 74 238
+64d86 6 74 238
+64d8c 4 259 236
+64d90 4 101 205
+64d94 2 261 236
+64d96 4 168 246
+64d9a 2 261 236
+64d9c 6 168 246
+64da2 2 232 246
+64da4 4 263 236
+64da8 2 277 236
+64daa 4 263 236
+64dae 4 277 236
+64db2 6 74 238
+64db8 4 259 236
+64dbc 2 400 237
+64dbe 4 304 237
+64dc2 e 306 237
+64dd0 6 307 237
+64dd6 4 307 237
+64dda 4 64 213
+64dde 6 67 213
+64de4 2 64 213
+64de6 2 86 243
+64de8 2 86 243
+64dea 4 84 243
+64dee 2 86 243
+64df0 2 256 236
+64df2 2 84 243
+64df4 4 179 192
+64df8 2 86 243
+64dfa 4 146 205
+64dfe 4 86 243
+64e02 6 232 246
+64e08 4 86 243
+64e0c 4 86 243
+64e10 2 256 236
+64e12 2 86 243
+64e14 4 179 192
+64e18 4 146 205
+64e1c 6 86 243
+64e22 6 101 205
+64e28 4 64 238
+64e2c 4 96 238
+64e30 2 96 238
+64e32 6 97 238
+64e38 4 70 213
+64e3c 2 97 238
+64e3e 4 161 201
+64e42 4 135 222
+64e46 4 274 236
+64e4a 4 164 238
+64e4e 2 160 238
+64e50 2 277 236
+64e52 4 165 238
+64e56 4 277 236
+64e5a 4 307 237
+64e5e e 134 222
+64e6c 6 161 201
+64e72 e 600 236
+FUNC 64e80 12a 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::_M_insert_aux(wchar_t*, wchar_t)
+64e80 4 256 236
+64e84 2 256 236
+64e86 4 64 238
+64e8a 4 256 236
+64e8e 6 74 238
+64e94 a 74 238
+64e9e 4 259 236
+64ea2 2 261 236
+64ea4 2 101 205
+64ea6 2 261 236
+64ea8 2 101 205
+64eaa 2 249 246
+64eac 2 261 236
+64eae 4 249 246
+64eb2 4 263 236
+64eb6 2 267 246
+64eb8 2 263 236
+64eba 2 277 236
+64ebc 2 263 236
+64ebe 4 277 236
+64ec2 2 400 237
+64ec4 8 307 237
+64ecc 2 400 237
+64ece e 306 237
+64edc 4 307 237
+64ee0 4 307 237
+64ee4 c 64 213
+64ef0 8 67 213
+64ef8 8 86 243
+64f00 4 86 243
+64f04 4 84 243
+64f08 6 86 243
+64f0e 2 84 243
+64f10 4 179 192
+64f14 2 86 243
+64f16 4 146 205
+64f1a 6 86 243
+64f20 4 86 243
+64f24 6 267 246
+64f2a 4 86 243
+64f2e a 86 243
+64f38 4 179 192
+64f3c 2 86 243
+64f3e 4 146 205
+64f42 6 86 243
+64f48 2 101 205
+64f4a 2 96 238
+64f4c 4 101 205
+64f50 2 96 238
+64f52 2 96 238
+64f54 6 97 238
+64f5a 4 70 213
+64f5e 2 97 238
+64f60 4 323 201
+64f64 4 161 201
+64f68 4 161 201
+64f6c 4 274 236
+64f70 4 164 238
+64f74 2 160 238
+64f76 2 277 236
+64f78 4 165 238
+64f7c 4 277 236
+64f80 4 307 237
+64f84 12 134 222
+64f96 e 74 238
+64fa4 6 135 222
+FUNC 64fac 78 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_reserve(unsigned int)
+64fac 4 64 213
+64fb0 2 170 236
+64fb2 4 170 236
+64fb6 6 67 213
+64fbc 2 64 213
+64fbe 8 134 222
+64fc6 4 66 238
+64fca 4 86 243
+64fce 2 86 243
+64fd0 4 84 243
+64fd4 2 86 243
+64fd6 2 170 236
+64fd8 2 84 243
+64fda 4 179 192
+64fde 4 146 205
+64fe2 4 86 243
+64fe6 4 101 205
+64fea 4 64 238
+64fee 4 96 238
+64ff2 2 96 238
+64ff4 6 97 238
+64ffa 4 70 213
+64ffe 2 97 238
+65000 4 161 201
+65004 4 161 201
+65008 2 175 236
+6500a 2 164 238
+6500c 2 160 238
+6500e 4 165 238
+65012 2 176 236
+65014 4 135 222
+65018 2 175 236
+6501a 2 164 238
+6501c 2 160 238
+6501e 4 165 238
+65022 2 176 236
+FUNC 65024 e4 0 std::priv::__insert_grouping(std::priv::__basic_iostring<char>&, unsigned int, std::string const&, char, char, char, int)
+65024 4 143 192
+65028 4 143 192
+6502c 4 65 238
+65030 2 400 237
+65032 2 143 192
+65034 2 400 237
+65036 4 80 192
+6503a 2 84 192
+6503c 2 92 192
+6503e 4 86 192
+65042 2 97 192
+65044 4 83 192
+65048 2 86 192
+6504a 2 94 192
+6504c 2 86 192
+6504e 2 101 205
+65050 4 86 192
+65054 a 83 192
+6505e 6 90 192
+65064 2 65 238
+65066 4 400 237
+6506a 2 98 192
+6506c 6 99 192
+65072 2 102 192
+65074 4 66 238
+65078 e 102 192
+65086 4 102 192
+6508a 2 90 238
+6508c 2 108 192
+6508e 4 660 237
+65092 a 665 237
+6509c 4 74 238
+650a0 2 74 238
+650a2 8 74 238
+650aa 4 535 237
+650ae 4 101 205
+650b2 2 90 238
+650b4 4 232 246
+650b8 c 539 237
+650c4 2 400 237
+650c6 4 304 237
+650ca a 306 237
+650d4 a 307 237
+650de a 536 237
+650e8 2 307 237
+650ea 2 536 237
+650ec 6 307 237
+650f2 8 536 237
+650fa e 600 236
+FUNC 65108 b4 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::_M_reserve(unsigned int)
+65108 2 170 236
+6510a 2 67 213
+6510c 4 64 213
+65110 2 170 236
+65112 4 67 213
+65116 2 64 213
+65118 6 302 201
+6511e 2 306 201
+65120 8 134 222
+65128 2 86 243
+6512a 4 66 238
+6512e 8 86 243
+65136 4 86 243
+6513a 4 84 243
+6513e 6 86 243
+65144 2 84 243
+65146 4 179 192
+6514a 2 86 243
+6514c 4 146 205
+65150 6 86 243
+65156 2 101 205
+65158 2 96 238
+6515a 2 101 205
+6515c 2 96 238
+6515e 2 96 238
+65160 6 97 238
+65166 4 70 213
+6516a 2 97 238
+6516c 4 323 201
+65170 4 161 201
+65174 4 161 201
+65178 2 175 236
+6517a 2 164 238
+6517c 2 160 238
+6517e 4 165 238
+65182 2 176 236
+65184 4 135 222
+65188 2 175 236
+6518a 2 164 238
+6518c 2 160 238
+6518e 4 165 238
+65192 2 176 236
+65194 28 303 201
+FUNC 651bc 10c 0 std::priv::__insert_grouping(std::priv::__basic_iostring<wchar_t>&, unsigned int, std::string const&, wchar_t, wchar_t, wchar_t, int)
+651bc 4 159 192
+651c0 4 159 192
+651c4 4 65 238
+651c8 2 400 237
+651ca 2 159 192
+651cc 2 400 237
+651ce 6 80 192
+651d4 2 84 192
+651d6 2 97 192
+651d8 2 86 192
+651da 4 92 192
+651de 4 83 192
+651e2 4 307 237
+651e6 4 86 192
+651ea 2 90 192
+651ec e 86 192
+651fa a 83 192
+65204 4 307 237
+65208 4 90 192
+6520c 2 94 192
+6520e 4 400 237
+65212 2 98 192
+65214 6 99 192
+6521a 2 102 192
+6521c 4 66 238
+65220 e 102 192
+6522e 4 102 192
+65232 4 90 238
+65236 4 108 192
+6523a 4 660 237
+6523e 12 665 237
+65250 4 74 238
+65254 6 74 238
+6525a 4 535 237
+6525e 2 267 246
+65260 4 101 205
+65264 4 267 246
+65268 8 539 237
+65270 8 74 238
+65278 4 535 237
+6527c 6 400 237
+65282 a 306 237
+6528c e 307 237
+6529a 10 536 237
+652aa e 307 237
+652b8 10 536 237
+FUNC 652c8 400 0 std::priv::_Stl_tenscale
+652c8 4 269 191
+652cc 2 280 191
+652ce 2 269 191
+652d0 6 269 191
+652d6 4 280 191
+652da 8 281 191
+652e2 4 282 191
+652e6 4 276 191
+652ea 2 285 191
+652ec 2 284 191
+652ee 6 283 191
+652f4 2 288 191
+652f6 4 289 191
+652fa 6 303 191
+65300 6 291 191
+65306 4 309 191
+6530a 2 291 191
+6530c 2 307 191
+6530e 2 309 191
+65310 2 291 191
+65312 2 307 191
+65314 2 291 191
+65316 4 309 191
+6531a 18 238 191
+65332 8 246 191
+6533a 6 248 191
+65340 a 246 191
+6534a 2 247 191
+6534c 6 254 191
+65352 10 246 191
+65362 2 254 191
+65364 14 309 191
+65378 8 303 191
+65380 2 307 191
+65382 4 122 191
+65386 2 291 191
+65388 4 122 191
+6538c 4 306 191
+65390 4 124 191
+65394 4 307 191
+65398 6 291 191
+6539e 2 306 191
+653a0 4 305 191
+653a4 4 122 191
+653a8 4 307 191
+653ac 4 122 191
+653b0 4 306 191
+653b4 4 307 191
+653b8 4 124 191
+653bc 4 307 191
+653c0 8 124 191
+653c8 2 125 191
+653ca 4 127 191
+653ce 4 130 191
+653d2 e 127 191
+653e0 4 130 191
+653e4 2 127 191
+653e6 6 130 191
+653ec 4 134 191
+653f0 4 130 191
+653f4 2 132 191
+653f6 8 130 191
+653fe 4 132 191
+65402 4 136 191
+65406 4 134 191
+6540a 4 136 191
+6540e 8 134 191
+65416 c 136 191
+65422 2 135 191
+65424 4 136 191
+65428 2 135 191
+6542a 2 136 191
+6542c 4 135 191
+65430 4 136 191
+65434 6 135 191
+6543a 2 136 191
+6543c 8 135 191
+65444 a 234 191
+6544e 4 251 191
+65452 6 254 191
+65458 2 233 191
+6545a 4 251 191
+6545e 2 254 191
+65460 1c 255 191
+6547c 18 255 191
+65494 c 258 191
+654a0 4 259 191
+654a4 4 258 191
+654a8 4 259 191
+654ac 2 309 191
+654ae 2 260 191
+654b0 2 309 191
+654b2 8 260 191
+654ba 10 309 191
+654ca e 303 191
+654d8 6 312 191
+654de 2 313 191
+654e0 2 314 191
+654e2 4 313 191
+654e6 4 314 191
+654ea 4 122 191
+654ee 8 314 191
+654f6 2 122 191
+654f8 4 314 191
+654fc 8 122 191
+65504 4 124 191
+65508 2 125 191
+6550a 4 127 191
+6550e 4 130 191
+65512 e 127 191
+65520 4 134 191
+65524 2 127 191
+65526 e 130 191
+65534 4 132 191
+65538 4 130 191
+6553c 2 136 191
+6553e 4 130 191
+65542 4 132 191
+65546 4 134 191
+6554a 4 136 191
+6554e 4 135 191
+65552 4 136 191
+65556 8 134 191
+6555e 6 136 191
+65564 6 135 191
+6556a 8 136 191
+65572 a 135 191
+6557c 8 234 191
+65584 12 238 191
+65596 a 246 191
+655a0 2 247 191
+655a2 4 248 191
+655a6 2 246 191
+655a8 4 248 191
+655ac 2 246 191
+655ae 8 254 191
+655b6 c 246 191
+655c2 2 254 191
+655c4 12 316 191
+655d6 8 320 191
+655de 2 289 191
+655e0 2 276 191
+655e2 2 289 191
+655e4 4 288 191
+655e8 28 238 191
+65610 8 243 191
+65618 2 233 191
+6561a 6 243 191
+65620 4 276 191
+65624 6 291 191
+6562a 2 292 191
+6562c 6 291 191
+65632 2 296 191
+65634 2 295 191
+65636 4 296 191
+6563a 2 251 191
+6563c 8 254 191
+65644 2 233 191
+65646 4 251 191
+6564a 2 254 191
+6564c 16 255 191
+65662 14 255 191
+65676 c 258 191
+65682 4 259 191
+65686 4 258 191
+6568a 2 259 191
+6568c 6 260 191
+65692 16 238 191
+656a8 8 243 191
+656b0 2 233 191
+656b2 16 243 191
+FUNC 656c8 4a8 0 std::priv::_Stl_string_to_double
+656c8 6 645 191
+656ce 2 655 191
+656d0 4 659 191
+656d4 2 655 191
+656d6 2 661 191
+656d8 4 658 191
+656dc 2 661 191
+656de 2 672 191
+656e0 2 669 191
+656e2 2 666 191
+656e4 2 673 191
+656e6 2 668 191
+656e8 4 674 191
+656ec 2 666 191
+656ee 4 685 191
+656f2 2 673 191
+656f4 2 674 191
+656f6 6 676 191
+656fc 2 674 191
+656fe 2 678 191
+65700 4 678 191
+65704 4 681 191
+65708 2 683 191
+6570a 4 690 191
+6570e 4 685 191
+65712 2 672 191
+65714 4 673 191
+65718 8 685 191
+65720 2 686 191
+65722 4 685 191
+65726 6 694 191
+6572c 18 698 191
+65744 2 701 191
+65746 18 702 191
+6575e 4 703 191
+65762 8 708 191
+6576a 4 710 191
+6576e 4 711 191
+65772 4 710 191
+65776 8 709 191
+6577e 2 714 191
+65780 2 715 191
+65782 2 717 191
+65784 2 722 191
+65786 8 723 191
+6578e 6 726 191
+65794 2 165 217
+65796 4 166 217
+6579a 4 165 217
+6579e 4 166 217
+657a2 4 167 217
+657a6 6 736 191
+657ac 4 737 191
+657b0 a 741 191
+657ba 4 724 191
+657be 8 736 191
+657c6 4 660 191
+657ca 6 658 191
+657d0 4 704 191
+657d4 2 701 191
+657d6 4 699 191
+657da 4 663 191
+657de 6 662 191
+657e4 2 706 191
+657e6 2 705 191
+657e8 4 706 191
+657ec 2 354 191
+657ee 8 357 191
+657f6 a 358 191
+65800 2 359 191
+65802 4 358 191
+65806 a 359 191
+65810 4 357 191
+65814 6 363 191
+6581a 14 372 191
+6582e 2c 373 191
+6585a 3c 374 191
+65896 3a 375 191
+658d0 3a 376 191
+6590a 3a 377 191
+65944 2c 378 191
+65970 4 381 191
+65974 2 270 191
+65976 26 381 191
+6599c 2 270 191
+6599e 4 272 191
+659a2 4 429 191
+659a6 8 430 191
+659ae 4 431 191
+659b2 c 432 191
+659be 2 441 191
+659c0 12 442 191
+659d2 a 429 191
+659dc 6 442 191
+659e2 c 443 191
+659ee 2 444 191
+659f0 4 443 191
+659f4 8 444 191
+659fc 2 446 191
+659fe a 445 191
+65a08 8 464 191
+65a10 4 469 191
+65a14 4 150 191
+65a18 2 469 191
+65a1a 14 150 191
+65a2e 4 167 217
+65a32 a 736 191
+65a3c 6 695 191
+65a42 4 377 191
+65a46 8 272 191
+65a4e 4 390 191
+65a52 8 392 191
+65a5a e 394 191
+65a68 a 398 191
+65a72 6 401 191
+65a78 4 406 191
+65a7c 16 412 191
+65a92 8 413 191
+65a9a c 412 191
+65aa6 e 413 191
+65ab4 e 412 191
+65ac2 2 413 191
+65ac4 8 412 191
+65acc 6 413 191
+65ad2 4 414 191
+65ad6 2 418 191
+65ad8 12 418 191
+65aea 8 418 191
+65af2 6 419 191
+65af8 4 420 191
+65afc 4 419 191
+65b00 18 420 191
+65b18 a 736 191
+65b22 2 165 217
+65b24 4 166 217
+65b28 4 165 217
+65b2c 4 166 217
+65b30 4 167 217
+65b34 a 736 191
+65b3e 4 418 191
+65b42 a 736 191
+65b4c 4 407 191
+65b50 8 409 191
+65b58 8 407 191
+65b60 2 408 191
+65b62 e 407 191
+FUNC 65b70 78 0 std::priv::_Initialize_get_float(std::ctype<wchar_t> const&, wchar_t&, wchar_t&, wchar_t&, wchar_t&, wchar_t*)
+65b70 6 86 191
+65b76 2 87 191
+65b78 2 86 191
+65b7a 4 206 206
+65b7e 2 86 191
+65b80 2 87 191
+65b82 2 86 191
+65b84 2 87 191
+65b86 2 86 191
+65b88 4 87 191
+65b8c 4 206 206
+65b90 4 87 191
+65b94 2 206 206
+65b96 4 87 191
+65b9a 2 206 206
+65b9c 2 87 191
+65b9e 8 206 206
+65ba6 2 88 191
+65ba8 a 206 206
+65bb2 4 89 191
+65bb6 a 206 206
+65bc0 4 90 191
+65bc4 4 206 206
+65bc8 2 209 206
+65bca 2 91 191
+65bcc 6 209 206
+65bd2 2 91 191
+65bd4 8 209 206
+65bdc c 93 191
+FUNC 65be8 16 0 std::priv::__string_to_float(std::priv::__basic_iostring<char> const&, float&)
+65be8 2 847 191
+65bea 2 847 191
+65bec 10 849 191
+65bfc 2 853 191
+FUNC 65c00 12 0 std::priv::__string_to_float(std::priv::__basic_iostring<char> const&, double&)
+65c00 2 857 191
+65c02 2 857 191
+65c04 c 859 191
+65c10 2 863 191
+FUNC 65c14 348 0 long double std::priv::_Stl_atodT<long double, ieee854_long_double, 16, 16383>(char*, int, int)
+65c14 2 488 191
+65c16 4 483 191
+65c1a 2 492 191
+65c1c 2 483 191
+65c1e 2 483 191
+65c20 8 492 191
+65c28 6 493 191
+65c2e 4 494 191
+65c32 4 493 191
+65c36 8 494 191
+65c3e 4 492 191
+65c42 8 497 191
+65c4a 4 507 191
+65c4e 2 508 191
+65c50 2 507 191
+65c52 2 508 191
+65c54 2 507 191
+65c56 4 511 191
+65c5a 12 507 191
+65c6c 2a 508 191
+65c96 30 509 191
+65cc6 2e 510 191
+65cf4 38 511 191
+65d2c 32 512 191
+65d5e 2a 513 191
+65d88 4 516 191
+65d8c 2 270 191
+65d8e 1c 517 191
+65daa 2 272 191
+65dac 8 517 191
+65db4 2 270 191
+65db6 4 272 191
+65dba 4 532 191
+65dbe 8 533 191
+65dc6 4 534 191
+65dca 8 535 191
+65dd2 2 545 191
+65dd4 12 546 191
+65de6 a 532 191
+65df0 6 546 191
+65df6 c 547 191
+65e02 4 571 191
+65e06 14 555 191
+65e1a 2 571 191
+65e1c 2 165 217
+65e1e 4 166 217
+65e22 4 165 217
+65e26 4 166 217
+65e2a 4 167 217
+65e2e 2 572 191
+65e30 4 512 191
+65e34 4 498 191
+65e38 6 641 191
+65e3e 4 579 191
+65e42 4 580 191
+65e46 6 584 191
+65e4c a 272 191
+65e56 4 527 191
+65e5a 8 529 191
+65e62 c 589 191
+65e6e 8 590 191
+65e76 4 635 191
+65e7a 4 636 191
+65e7e 6 640 191
+65e84 a 598 191
+65e8e 4 604 191
+65e92 a 607 191
+65e9c 2 608 191
+65e9e 16 613 191
+65eb4 8 614 191
+65ebc c 613 191
+65ec8 e 614 191
+65ed6 e 613 191
+65ee4 2 614 191
+65ee6 8 613 191
+65eee 6 614 191
+65ef4 4 615 191
+65ef8 4 619 191
+65efc 12 619 191
+65f0e 6 620 191
+65f14 4 621 191
+65f18 4 620 191
+65f1c 6 621 191
+65f22 4 620 191
+65f26 6 621 191
+65f2c 4 624 191
+65f30 2 625 191
+65f32 6 628 191
+65f38 8 619 191
+65f40 4 609 191
+65f44 8 611 191
+65f4c 8 609 191
+65f54 2 610 191
+65f56 6 609 191
+FUNC 65f5c 11c 0 long double std::priv::_Stl_string_to_doubleT<long double, ieee854_long_double, 16, 16383>(char const*)
+65f5c 6 749 191
+65f62 2 761 191
+65f64 4 765 191
+65f68 2 761 191
+65f6a 2 764 191
+65f6c 4 767 191
+65f70 2 778 191
+65f72 2 775 191
+65f74 2 779 191
+65f76 2 772 191
+65f78 2 774 191
+65f7a 4 780 191
+65f7e 2 772 191
+65f80 4 791 191
+65f84 2 779 191
+65f86 2 780 191
+65f88 6 782 191
+65f8e 2 780 191
+65f90 2 784 191
+65f92 4 784 191
+65f96 4 787 191
+65f9a 2 789 191
+65f9c 4 796 191
+65fa0 4 791 191
+65fa4 2 778 191
+65fa6 4 779 191
+65faa c 791 191
+65fb6 2 792 191
+65fb8 6 791 191
+65fbe 4 799 191
+65fc2 18 803 191
+65fda 2 806 191
+65fdc 18 807 191
+65ff4 4 808 191
+65ff8 8 813 191
+66000 4 815 191
+66004 4 816 191
+66008 4 815 191
+6600c 8 814 191
+66014 2 819 191
+66016 2 820 191
+66018 2 822 191
+6601a 2 826 191
+6601c 8 827 191
+66024 6 829 191
+6602a 6 165 217
+66030 8 166 217
+66038 4 167 217
+6603c 2 840 191
+6603e 4 840 191
+66042 6 841 191
+66048 6 828 191
+6604e 4 766 191
+66052 4 764 191
+66056 4 809 191
+6605a 2 806 191
+6605c 4 804 191
+66060 4 769 191
+66064 4 768 191
+66068 8 837 191
+66070 2 811 191
+66072 2 810 191
+66074 4 811 191
+FUNC 66078 12 0 std::priv::__string_to_float(std::priv::__basic_iostring<char> const&, long double&)
+66078 2 867 191
+6607a 2 867 191
+6607c c 874 191
+66088 2 876 191
+FUNC 6608c 88 0 std::priv::__fill_fmtbuf
+6608c 4 711 193
+66090 2 714 193
+66092 2 710 193
+66094 2 714 193
+66096 8 715 193
+6609e 2 712 193
+660a0 4 717 193
+660a4 2 715 193
+660a6 2 717 193
+660a8 a 718 193
+660b2 4 720 193
+660b6 6 721 193
+660bc 2 723 193
+660be 4 724 193
+660c2 c 726 193
+660ce 2 739 193
+660d0 4 739 193
+660d4 6 739 193
+660da 2 739 193
+660dc 4 743 193
+660e0 4 744 193
+660e4 4 714 193
+660e8 2 715 193
+660ea 2 714 193
+660ec 4 715 193
+660f0 4 735 193
+660f4 4 735 193
+660f8 6 735 193
+660fe 2 735 193
+66100 2 737 193
+66102 4 729 193
+66106 4 729 193
+6610a 6 729 193
+66110 2 729 193
+66112 2 730 193
+FUNC 66114 16a 0 char* std::find_if<char*, std::priv::GroupPos>(char*, char*, std::priv::GroupPos)
+66114 2 162 199
+66116 2 214 199
+66118 2 162 199
+6611a 4 164 199
+6611e 2 165 199
+66120 18 705 193
+66138 4 705 193
+6613c 2 168 199
+6613e 2 166 199
+66140 18 705 193
+66158 8 705 193
+66160 2 171 199
+66162 18 705 193
+6617a 4 705 193
+6617e 2 174 199
+66180 18 705 193
+66198 4 705 193
+6619c 2 214 199
+6619e 2 164 199
+661a0 2 214 199
+661a2 2 164 199
+661a4 2 165 199
+661a6 16 705 193
+661bc 4 705 193
+661c0 2 168 199
+661c2 2 214 199
+661c4 16 705 193
+661da 6 705 193
+661e0 2 171 199
+661e2 18 705 193
+661fa 2 171 199
+661fc 4 218 199
+66200 4 166 199
+66204 2 164 199
+66206 a 178 199
+66210 4 190 199
+66214 2 178 199
+66216 2 186 199
+66218 18 705 193
+66230 8 190 199
+66238 4 174 199
+6623c 2 180 199
+6623e 18 705 193
+66256 4 705 193
+6625a 2 181 199
+6625c 2 183 199
+6625e 18 705 193
+66276 4 705 193
+6627a 4 184 199
+FUNC 66280 11c 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_append(char const*, char const*)
+66280 2 197 236
+66282 8 196 236
+6628a 2 197 236
+6628c 4 64 238
+66290 4 198 236
+66294 4 74 238
+66298 6 74 238
+6629e 4 199 236
+662a2 2 210 236
+662a4 2 86 243
+662a6 4 86 243
+662aa 2 196 236
+662ac 4 86 243
+662b0 4 915 193
+662b4 2 86 243
+662b6 4 146 205
+662ba 4 86 243
+662be 6 101 205
+662c4 2 90 238
+662c6 2 915 193
+662c8 2 232 246
+662ca 6 214 236
+662d0 8 218 236
+662d8 2 400 237
+662da e 304 237
+662e8 a 306 237
+662f2 4 307 237
+662f6 4 307 237
+662fa 4 64 213
+662fe 6 67 213
+66304 2 64 213
+66306 2 86 243
+66308 4 84 243
+6630c 2 86 243
+6630e 2 196 236
+66310 2 84 243
+66312 4 915 193
+66316 4 146 205
+6631a a 86 243
+66324 6 196 236
+6632a 4 915 193
+6632e 2 86 243
+66330 4 146 205
+66334 4 86 243
+66338 4 101 205
+6633c 4 64 238
+66340 4 96 238
+66344 2 96 238
+66346 6 97 238
+6634c 4 70 213
+66350 2 97 238
+66352 4 161 201
+66356 4 135 222
+6635a 2 206 236
+6635c 2 164 238
+6635e 2 160 238
+66360 6 165 238
+66366 4 307 237
+6636a 16 134 222
+66380 8 74 238
+66388 6 161 201
+6638e e 600 236
+FUNC 6639c 138 0 std::priv::__get_floor_digits(std::priv::__basic_iostring<char>&, long double)
+6639c 6 844 193
+663a2 e 849 193
+663b0 2 844 193
+663b2 8 849 193
+663ba 8 853 193
+663c2 4 854 193
+663c6 4 470 237
+663ca 4 64 238
+663ce 2 355 216
+663d0 4 74 238
+663d4 6 74 238
+663da 4 472 237
+663de 2 400 237
+663e0 e 304 237
+663ee a 306 237
+663f8 4 307 237
+663fc 8 307 237
+66404 e 134 222
+66412 2 107 243
+66414 4 107 243
+66418 2 107 243
+6641a c 106 243
+66426 2 107 243
+66428 8 106 243
+66430 4 101 205
+66434 2 107 243
+66436 4 64 238
+6643a 4 96 238
+6643e 2 96 238
+66440 6 97 238
+66446 4 70 213
+6644a 2 97 238
+6644c 2 135 222
+6644e 4 161 201
+66452 4 135 222
+66456 2 479 237
+66458 2 164 238
+6645a 2 160 238
+6645c 4 165 238
+66460 6 870 193
+66466 6 915 193
+6646c 2 107 243
+6646e 2 232 246
+66470 2 90 238
+66472 2 107 243
+66474 2 483 237
+66476 a 106 243
+66480 4 101 205
+66484 8 485 237
+6648c 4 64 213
+66490 6 67 213
+66496 4 64 213
+6649a 4 161 201
+6649e 2 479 237
+664a0 2 164 238
+664a2 2 160 238
+664a4 6 165 238
+664aa 8 74 238
+664b2 6 229 246
+664b8 c 530 237
+664c4 10 600 236
+FUNC 664d4 220 0 std::priv::__convert_float_buffer(std::priv::__basic_iostring<char> const&, std::priv::__basic_iostring<wchar_t>&, std::ctype<wchar_t> const&, wchar_t, bool)
+664d4 6 875 193
+664da 6 875 193
+664e0 4 879 193
+664e4 4 65 238
+664e8 4 89 238
+664ec 4 879 193
+664f0 4 880 193
+664f4 c 881 193
+66500 4 307 237
+66504 2 874 193
+66506 4 307 237
+6650a 6 101 205
+66510 2 880 193
+66512 2 267 246
+66514 4 101 205
+66518 2 882 193
+6651a 4 267 246
+6651e 2 539 237
+66520 2 880 193
+66522 a 881 193
+6652c 8 206 206
+66534 4 64 238
+66538 2 74 238
+6653a 2 74 238
+6653c 2 206 206
+6653e 4 74 238
+66542 6 74 238
+66548 4 535 237
+6654c 2 400 237
+6654e 8 308 237
+66556 2 400 237
+66558 a 306 237
+66562 2 307 237
+66564 a 308 237
+6656e 2 307 237
+66570 6 308 237
+66576 2 536 237
+66578 2 882 193
+6657a 6 536 237
+66580 2 880 193
+66582 2 267 246
+66584 4 101 205
+66588 4 267 246
+6658c 2 539 237
+6658e 2 880 193
+66590 6 900 193
+66596 4 889 193
+6659a a 206 206
+665a4 4 64 238
+665a8 2 74 238
+665aa 2 206 206
+665ac 4 74 238
+665b0 8 74 238
+665b8 4 535 237
+665bc 2 267 246
+665be 4 101 205
+665c2 4 267 246
+665c6 2 539 237
+665c8 6 896 193
+665ce 4 307 237
+665d2 4 101 205
+665d6 6 307 237
+665dc 2 896 193
+665de 2 267 246
+665e0 2 896 193
+665e2 4 101 205
+665e6 2 896 193
+665e8 4 267 246
+665ec 2 896 193
+665ee 2 539 237
+665f0 2 896 193
+665f2 a 206 206
+665fc 4 64 238
+66600 2 74 238
+66602 2 74 238
+66604 2 206 206
+66606 2 74 238
+66608 6 74 238
+6660e 4 535 237
+66612 2 400 237
+66614 8 308 237
+6661c 2 400 237
+6661e a 306 237
+66628 2 307 237
+6662a a 308 237
+66634 2 307 237
+66636 6 308 237
+6663c a 536 237
+66646 14 74 238
+6665a 4 64 238
+6665e 4 74 238
+66662 6 74 238
+66668 4 535 237
+6666c 2 267 246
+6666e 4 101 205
+66672 2 894 193
+66674 6 267 246
+6667a 2 539 237
+6667c 4 894 193
+66680 2 400 237
+66682 8 307 237
+6668a 2 400 237
+6668c a 306 237
+66696 2 307 237
+66698 4 308 237
+6669c 2 307 237
+6669e a 536 237
+666a8 2 400 237
+666aa 8 307 237
+666b2 2 400 237
+666b4 a 306 237
+666be 2 307 237
+666c0 4 308 237
+666c4 2 307 237
+666c6 6 308 237
+666cc a 536 237
+666d6 c 74 238
+666e2 8 308 237
+666ea a 74 238
+FUNC 666f4 6a 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::_M_assign(char const*, char const*)
+666f4 2 242 236
+666f6 2 242 236
+666f8 2 89 238
+666fa 2 243 236
+666fc 4 65 238
+66700 4 242 236
+66704 2 400 237
+66706 4 244 236
+6670a 2 168 246
+6670c 2 246 236
+6670e 4 803 237
+66712 2 168 246
+66714 2 806 237
+66716 2 168 246
+66718 6 806 237
+6671e 4 253 236
+66722 2 168 246
+66724 a 250 236
+6672e 4 253 236
+66732 c 168 246
+6673e 2 246 236
+66740 6 803 237
+66746 a 168 246
+66750 2 250 236
+66752 2 168 246
+66754 a 250 236
+FUNC 66760 54 0 std::priv::__write_floatT<long double>
+66760 c 749 193
+6676c 4 749 193
+66770 8 760 193
+66778 12 761 193
+6678a 6 229 246
+66790 c 355 237
+6679c 4 66 238
+667a0 c 763 193
+667ac 8 820 193
+FUNC 667b4 8 0 std::priv::__write_float(std::priv::__basic_iostring<char>&, int, int, long double)
+667b4 4 840 193
+667b8 4 840 193
+FUNC 667bc 54 0 std::priv::__write_floatT<double>
+667bc c 749 193
+667c8 4 749 193
+667cc 8 760 193
+667d4 12 761 193
+667e6 6 229 246
+667ec c 355 237
+667f8 4 66 238
+667fc c 763 193
+66808 8 820 193
+FUNC 66810 8 0 std::priv::__write_float(std::priv::__basic_iostring<char>&, int, int, double)
+66810 4 829 193
+66814 4 829 193
+FUNC 66818 4 0 std::numpunct<char>::do_decimal_point() const
+66818 4 34 194
+FUNC 66818 4 0 std::numpunct<wchar_t>::do_decimal_point() const
+FUNC 6681c 4 0 std::numpunct<char>::do_thousands_sep() const
+6681c 4 27 194
+FUNC 6681c 4 0 std::numpunct<wchar_t>::do_thousands_sep() const
+FUNC 66820 1c 0 std::numpunct<wchar_t>::~numpunct
+66820 4 39 194
+66824 18 39 194
+FUNC 6683c 12 0 std::numpunct<wchar_t>::~numpunct
+6683c 2 39 194
+6683e 6 39 194
+66844 6 39 194
+6684a 4 39 194
+FUNC 66850 1c 0 std::numpunct<char>::~numpunct
+66850 4 31 194
+66854 18 31 194
+FUNC 6686c 12 0 std::numpunct<char>::~numpunct
+6686c 2 31 194
+6686e 6 31 194
+66874 6 31 194
+6687a 4 31 194
+FUNC 66880 18 0 std::numpunct<char>::do_grouping() const
+FUNC 66880 18 0 std::numpunct<wchar_t>::do_grouping() const
+66880 2 28 194
+66882 2 28 194
+66884 2 120 238
+66886 2 124 238
+66888 2 481 201
+6688a 4 124 238
+6688e 2 90 238
+66890 2 101 205
+66892 2 36 194
+66894 2 101 205
+66896 2 28 194
+FUNC 66898 1c 0 std::numpunct<char>::do_falsename() const
+66898 6 30 194
+6689e 16 30 194
+FUNC 668b4 1c 0 std::numpunct<char>::do_truename() const
+668b4 6 29 194
+668ba 16 29 194
+FUNC 668d0 1c 0 std::numpunct<wchar_t>::do_falsename() const
+668d0 6 38 194
+668d6 16 38 194
+FUNC 668ec 1c 0 std::numpunct<wchar_t>::do_truename() const
+668ec 6 37 194
+668f2 16 37 194
+FUNC 66908 c8 0 std::basic_string<char, std::char_traits<char>, std::priv::__iostring_allocator<char> >::append(unsigned int, char)
+66908 4 180 236
+6690c 2 180 236
+6690e 2 89 238
+66910 2 180 236
+66912 4 65 238
+66916 2 400 237
+66918 4 182 236
+6691c 4 74 238
+66920 2 74 238
+66922 8 74 238
+6692a 4 184 236
+6692e 4 101 205
+66932 2 90 238
+66934 2 232 246
+66936 6 189 236
+6693c 4 192 236
+66940 a 306 237
+6694a 4 307 237
+6694e 4 307 237
+66952 10 134 222
+66962 2 86 243
+66964 4 84 243
+66968 2 86 243
+6696a 4 180 236
+6696e 2 84 243
+66970 4 565 197
+66974 4 146 205
+66978 4 86 243
+6697c 4 101 205
+66980 4 64 238
+66984 4 96 238
+66988 2 96 238
+6698a 6 97 238
+66990 4 70 213
+66994 2 97 238
+66996 4 161 201
+6699a 4 161 201
+6699e 2 175 236
+669a0 2 164 238
+669a2 2 160 238
+669a4 6 165 238
+669aa 4 307 237
+669ae 4 64 213
+669b2 6 67 213
+669b8 4 64 213
+669bc 6 135 222
+669c2 e 600 236
+FUNC 669d0 f0 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::priv::__iostring_allocator<wchar_t> >::append(unsigned int, wchar_t)
+669d0 4 180 236
+669d4 2 180 236
+669d6 2 89 238
+669d8 2 180 236
+669da 4 65 238
+669de 2 74 238
+669e0 4 400 237
+669e4 4 74 238
+669e8 4 400 237
+669ec 6 74 238
+669f2 6 74 238
+669f8 4 184 236
+669fc 2 267 246
+669fe 4 101 205
+66a02 4 267 246
+66a06 2 189 236
+66a08 4 192 236
+66a0c 4 306 237
+66a10 4 307 237
+66a14 c 306 237
+66a20 8 307 237
+66a28 4 307 237
+66a2c c 64 213
+66a38 8 67 213
+66a40 4 86 243
+66a44 4 84 243
+66a48 6 86 243
+66a4e 2 84 243
+66a50 4 565 197
+66a54 2 86 243
+66a56 4 146 205
+66a5a 6 86 243
+66a60 2 101 205
+66a62 2 96 238
+66a64 2 101 205
+66a66 2 96 238
+66a68 2 96 238
+66a6a 6 97 238
+66a70 4 70 213
+66a74 2 97 238
+66a76 4 323 201
+66a7a 4 161 201
+66a7e 4 161 201
+66a82 4 175 236
+66a86 2 160 238
+66a88 2 267 246
+66a8a 2 164 238
+66a8c 4 165 238
+66a90 4 101 205
+66a94 4 267 246
+66a98 2 189 236
+66a9a 4 192 236
+66a9e 4 307 237
+66aa2 18 134 222
+66aba 6 135 222
+FUNC 66ac0 f4 0 std::priv::__append
+66ac0 2 470 237
+66ac2 4 171 197
+66ac6 4 171 197
+66aca 2 470 237
+66acc 4 64 238
+66ad0 2 355 216
+66ad2 4 74 238
+66ad6 6 74 238
+66adc 4 472 237
+66ae0 2 400 237
+66ae2 e 304 237
+66af0 a 306 237
+66afa 4 307 237
+66afe 8 307 237
+66b06 e 134 222
+66b14 2 107 243
+66b16 4 107 243
+66b1a 2 107 243
+66b1c c 106 243
+66b28 2 107 243
+66b2a 8 106 243
+66b32 4 101 205
+66b36 2 107 243
+66b38 4 64 238
+66b3c 4 96 238
+66b40 2 96 238
+66b42 6 97 238
+66b48 4 70 213
+66b4c 2 97 238
+66b4e 2 135 222
+66b50 4 161 201
+66b54 4 161 201
+66b58 2 479 237
+66b5a 2 164 238
+66b5c 2 160 238
+66b5e 8 165 238
+66b66 2 565 197
+66b68 2 482 237
+66b6a 2 107 243
+66b6c 2 232 246
+66b6e 2 90 238
+66b70 2 107 243
+66b72 2 483 237
+66b74 8 106 243
+66b7c 4 101 205
+66b80 a 485 237
+66b8a 4 64 213
+66b8e 6 67 213
+66b94 4 64 213
+66b98 6 135 222
+66b9e 8 74 238
+66ba6 e 600 236
+FUNC 66bb4 f4 0 std::priv::__append
+66bb4 4 166 197
+66bb8 2 166 197
+66bba 2 65 238
+66bbc 2 166 197
+66bbe 4 470 237
+66bc2 4 64 238
+66bc6 2 355 216
+66bc8 4 74 238
+66bcc 6 74 238
+66bd2 4 472 237
+66bd6 2 400 237
+66bd8 e 304 237
+66be6 a 306 237
+66bf0 4 307 237
+66bf4 8 307 237
+66bfc e 134 222
+66c0a 2 107 243
+66c0c 4 107 243
+66c10 2 107 243
+66c12 c 106 243
+66c1e 2 107 243
+66c20 8 106 243
+66c28 4 101 205
+66c2c 2 107 243
+66c2e 4 64 238
+66c32 4 96 238
+66c36 2 96 238
+66c38 6 97 238
+66c3e 4 70 213
+66c42 2 97 238
+66c44 2 135 222
+66c46 4 161 201
+66c4a 4 161 201
+66c4e 2 479 237
+66c50 2 164 238
+66c52 2 160 238
+66c54 8 165 238
+66c5c 2 565 197
+66c5e 2 482 237
+66c60 2 107 243
+66c62 2 232 246
+66c64 2 90 238
+66c66 2 107 243
+66c68 2 483 237
+66c6a 8 106 243
+66c72 4 101 205
+66c76 a 485 237
+66c80 4 64 213
+66c84 6 67 213
+66c8a 4 64 213
+66c8e 6 135 222
+66c94 8 74 238
+66c9c c 600 236
+FUNC 66ca8 12c 0 std::priv::__append
+66ca8 6 174 197
+66cae 2 209 206
+66cb0 2 174 197
+66cb2 4 209 206
+66cb6 4 174 197
+66cba 6 209 206
+66cc0 8 177 197
+66cc8 4 470 237
+66ccc 4 64 238
+66cd0 4 355 216
+66cd4 2 74 238
+66cd6 4 355 216
+66cda 2 74 238
+66cdc 8 74 238
+66ce4 4 472 237
+66ce8 2 565 197
+66cea 2 482 237
+66cec 2 107 243
+66cee 2 267 246
+66cf0 2 107 243
+66cf2 2 483 237
+66cf4 8 106 243
+66cfc 4 484 237
+66d00 6 101 205
+66d06 2 485 237
+66d08 6 178 197
+66d0e 2 400 237
+66d10 c 304 237
+66d1c 2 400 237
+66d1e a 304 237
+66d28 a 306 237
+66d32 4 307 237
+66d36 4 307 237
+66d3a 6 64 213
+66d40 6 67 213
+66d46 2 107 243
+66d48 4 107 243
+66d4c 2 107 243
+66d4e c 106 243
+66d5a 2 107 243
+66d5c 8 106 243
+66d64 4 64 238
+66d68 2 101 205
+66d6a 2 96 238
+66d6c 4 107 243
+66d70 4 101 205
+66d74 2 96 238
+66d76 2 96 238
+66d78 6 97 238
+66d7e 4 70 213
+66d82 2 97 238
+66d84 2 135 222
+66d86 4 323 201
+66d8a 4 161 201
+66d8e 4 161 201
+66d92 2 479 237
+66d94 2 164 238
+66d96 2 160 238
+66d98 6 165 238
+66d9e 4 307 237
+66da2 10 134 222
+66db2 6 135 222
+66db8 c 74 238
+66dc4 8 600 236
+66dcc 8 64 213
+FUNC 66dd4 120 0 std::priv::__append
+66dd4 4 169 197
+66dd8 2 169 197
+66dda 2 65 238
+66ddc 4 400 237
+66de0 6 169 197
+66de6 4 470 237
+66dea 2 355 216
+66dec 4 64 238
+66df0 2 355 216
+66df2 4 74 238
+66df6 8 74 238
+66dfe 4 472 237
+66e02 2 565 197
+66e04 2 482 237
+66e06 2 107 243
+66e08 2 267 246
+66e0a 2 107 243
+66e0c 2 483 237
+66e0e 8 106 243
+66e16 4 484 237
+66e1a 6 101 205
+66e20 6 485 237
+66e26 2 400 237
+66e28 c 304 237
+66e34 2 400 237
+66e36 a 304 237
+66e40 c 306 237
+66e4c 4 307 237
+66e50 4 307 237
+66e54 c 64 213
+66e60 8 67 213
+66e68 2 107 243
+66e6a 4 107 243
+66e6e 2 107 243
+66e70 c 106 243
+66e7c 2 107 243
+66e7e 8 106 243
+66e86 4 64 238
+66e8a 2 101 205
+66e8c 2 96 238
+66e8e 4 107 243
+66e92 2 101 205
+66e94 2 96 238
+66e96 2 96 238
+66e98 6 97 238
+66e9e 4 70 213
+66ea2 2 97 238
+66ea4 2 135 222
+66ea6 4 323 201
+66eaa 4 161 201
+66eae 4 161 201
+66eb2 4 479 237
+66eb6 2 164 238
+66eb8 2 160 238
+66eba 8 165 238
+66ec2 4 307 237
+66ec6 10 134 222
+66ed6 6 135 222
+66edc c 74 238
+66ee8 c 600 236
+FUNC 66ef4 1c2 0 std::priv::_Time_Info::~_Time_Info
+66ef4 4 72 242
+66ef8 4 72 242
+66efc 6 72 242
+66f02 8 72 242
+66f0a 2 72 242
+66f0c 4 72 242
+66f10 4 161 201
+66f14 4 72 242
+66f18 2 72 242
+66f1a 2 64 238
+66f1c 2 72 242
+66f1e 2 64 238
+66f20 4 96 238
+66f24 4 96 238
+66f28 4 97 238
+66f2c 4 161 201
+66f30 4 135 222
+66f34 4 72 242
+66f38 a 72 242
+66f42 2 72 242
+66f44 4 72 242
+66f48 4 161 201
+66f4c 4 72 242
+66f50 2 72 242
+66f52 2 64 238
+66f54 2 72 242
+66f56 2 64 238
+66f58 4 96 238
+66f5c 4 96 238
+66f60 4 97 238
+66f64 4 161 201
+66f68 4 135 222
+66f6c 4 72 242
+66f70 a 72 242
+66f7a 2 72 242
+66f7c 4 72 242
+66f80 4 161 201
+66f84 4 72 242
+66f88 2 72 242
+66f8a 2 64 238
+66f8c 2 72 242
+66f8e 2 64 238
+66f90 4 96 238
+66f94 4 96 238
+66f98 4 97 238
+66f9c 4 161 201
+66fa0 4 135 222
+66fa4 4 72 242
+66fa8 8 64 238
+66fb0 4 96 238
+66fb4 2 96 238
+66fb6 6 97 238
+66fbc 4 161 201
+66fc0 4 161 201
+66fc4 8 64 238
+66fcc 4 96 238
+66fd0 2 96 238
+66fd2 6 97 238
+66fd8 4 161 201
+66fdc 4 161 201
+66fe0 8 64 238
+66fe8 4 96 238
+66fec 2 96 238
+66fee 6 97 238
+66ff4 4 161 201
+66ff8 4 161 201
+66ffc 8 64 238
+67004 4 96 238
+67008 2 96 238
+6700a 6 97 238
+67010 4 161 201
+67014 4 161 201
+67018 4 64 238
+6701c 4 96 238
+67020 2 96 238
+67022 6 97 238
+67028 4 161 201
+6702c 4 161 201
+67030 6 72 242
+67036 10 135 222
+67046 6 72 242
+6704c c 135 222
+67058 28 121 237
+67080 10 72 242
+67090 2 72 242
+67092 8 121 237
+6709a 6 72 242
+670a0 6 72 242
+670a6 2 72 242
+670a8 8 121 237
+670b0 6 72 242
+FUNC 670b8 1ce 0 std::priv::_WTime_Info::~_WTime_Info
+670b8 4 80 242
+670bc a 80 242
+670c6 e 80 242
+670d4 4 161 201
+670d8 4 80 242
+670dc 2 80 242
+670de 2 64 238
+670e0 2 80 242
+670e2 2 64 238
+670e4 4 96 238
+670e8 4 96 238
+670ec 4 97 238
+670f0 4 323 201
+670f4 4 161 201
+670f8 4 135 222
+670fc 4 80 242
+67100 a 80 242
+6710a 2 80 242
+6710c 4 80 242
+67110 4 161 201
+67114 4 80 242
+67118 2 80 242
+6711a 2 64 238
+6711c 2 80 242
+6711e 2 64 238
+67120 4 96 238
+67124 4 96 238
+67128 4 97 238
+6712c 4 323 201
+67130 4 161 201
+67134 4 135 222
+67138 4 80 242
+6713c a 80 242
+67146 2 80 242
+67148 4 80 242
+6714c 4 161 201
+67150 4 80 242
+67154 2 80 242
+67156 2 64 238
+67158 2 80 242
+6715a 2 64 238
+6715c 4 96 238
+67160 4 96 238
+67164 4 97 238
+67168 4 323 201
+6716c 4 161 201
+67170 4 135 222
+67174 4 80 242
+67178 8 64 238
+67180 4 96 238
+67184 2 96 238
+67186 6 97 238
+6718c 4 161 201
+67190 4 161 201
+67194 8 64 238
+6719c 4 96 238
+671a0 2 96 238
+671a2 6 97 238
+671a8 4 161 201
+671ac 4 161 201
+671b0 8 64 238
+671b8 4 96 238
+671bc 2 96 238
+671be 6 97 238
+671c4 4 161 201
+671c8 4 161 201
+671cc 8 64 238
+671d4 4 96 238
+671d8 2 96 238
+671da 6 97 238
+671e0 4 161 201
+671e4 4 161 201
+671e8 4 64 238
+671ec 4 96 238
+671f0 2 96 238
+671f2 6 97 238
+671f8 4 161 201
+671fc 4 161 201
+67200 6 80 242
+67206 10 135 222
+67216 6 80 242
+6721c c 135 222
+67228 28 121 237
+67250 10 80 242
+67260 2 80 242
+67262 8 121 237
+6726a 6 80 242
+67270 6 80 242
+67276 2 80 242
+67278 8 121 237
+67280 6 80 242
+FUNC 67288 6f4 0 void std::priv::__write_formatted_timeT<wchar_t, std::priv::_WTime_Info>(std::priv::__basic_iostring<wchar_t>&, std::ctype<wchar_t> const&, char, char, std::priv::_WTime_Info const&, tm const*)
+67288 6 213 197
+6728e 4 220 197
+67292 a 213 197
+6729c b2 220 197
+6734e 12 206 206
+67360 24 381 197
+67384 4 420 197
+67388 4 421 197
+6738c 2 420 197
+6738e 6 421 197
+67394 6 452 197
+6739a 2 338 197
+6739c 12 234 197
+673ae 2 235 197
+673b0 2 304 197
+673b2 6 304 197
+673b8 2 304 197
+673ba 10 348 197
+673ca 2 349 197
+673cc 22 287 197
+673ee 8 248 197
+673f6 6 342 197
+673fc e 343 197
+6740a 2 344 197
+6740c 8 292 197
+67414 a 342 197
+6741e 6 234 197
+67424 14 226 197
+67438 2 227 197
+6743a 14 206 206
+6744e 6 386 197
+67454 2 387 197
+67456 2 386 197
+67458 4 387 197
+6745c e 370 197
+6746a e 370 197
+67478 2 64 238
+6747a 4 96 238
+6747e 4 96 238
+67482 4 97 238
+67486 6 161 201
+6748c 6 161 201
+67492 28 278 197
+674ba 2 279 197
+674bc 2 268 197
+674be 4 268 197
+674c2 4 268 197
+674c6 e 268 197
+674d4 4 283 197
+674d8 a 283 197
+674e2 2 284 197
+674e4 26 357 197
+6750a 8 206 206
+67512 c 352 197
+6751e 6 273 197
+67524 12 273 197
+67536 6 243 197
+6753c 12 243 197
+6754e 2 238 197
+67550 6 238 197
+67556 6 238 197
+6755c 26 313 197
+67582 4 222 197
+67586 e 318 197
+67594 e 309 197
+675a2 2 310 197
+675a4 8 297 197
+675ac 18 297 197
+675c4 6 420 197
+675ca 6 253 197
+675d0 10 253 197
+675e0 c 366 197
+675ec e 366 197
+675fa 2 64 238
+675fc 6 96 238
+67602 6 96 238
+67608 4 97 238
+6760c 6 161 201
+67612 6 135 222
+67618 c 374 197
+67624 e 374 197
+67632 2 64 238
+67634 6 96 238
+6763a 6 96 238
+67640 4 97 238
+67644 4 161 201
+67648 6 161 201
+6764e 6 258 197
+67654 4 258 197
+67658 c 258 197
+67664 4 258 197
+67668 8 258 197
+67670 2 258 197
+67672 8 258 197
+6767a 8 258 197
+67682 4 258 197
+67686 30 259 197
+676b6 6 259 197
+676bc 6 283 197
+676c2 6 282 197
+676c8 10 282 197
+676d8 2 394 197
+676da 4 195 197
+676de 2 394 197
+676e0 4 195 197
+676e4 2 393 197
+676e6 1c 195 197
+67702 6 395 197
+67708 8 393 197
+67710 a 401 197
+6771a 24 401 197
+6773e 1e 401 197
+6775c 2 401 197
+6775e 24 195 197
+67782 2 402 197
+67784 8 404 197
+6778c 2 409 197
+6778e 4 414 197
+67792 8 409 197
+6779a 16 417 197
+677b0 2 418 197
+677b2 a 263 197
+677bc 1c 297 197
+677d8 28 411 197
+67800 2 412 197
+67802 e 253 197
+67810 8 254 197
+67818 6 283 197
+6781e e 282 197
+6782c e 283 197
+6783a 6 258 197
+67840 c 268 197
+6784c 8 269 197
+67854 6 283 197
+6785a e 273 197
+67868 8 274 197
+67870 6 283 197
+67876 e 243 197
+67884 8 244 197
+6788c 6 283 197
+67892 6 397 197
+67898 a 398 197
+678a2 20 398 197
+678c2 18 398 197
+678da 2 398 197
+678dc 26 195 197
+67902 a 401 197
+6790c 6 398 197
+67912 6a 121 237
+FUNC 6797c a 0 std::priv::__write_formatted_time(std::priv::__basic_iostring<wchar_t>&, std::ctype<wchar_t> const&, char, char, std::priv::_WTime_Info const&, tm const*)
+6797c 2 462 197
+6797e 8 462 197
+FUNC 67988 52 0 void std::priv::__subformat<wchar_t, std::priv::_WTime_Info>(std::priv::__basic_iostring<wchar_t>&, std::ctype<wchar_t> const&, std::string const&, std::priv::_WTime_Info const&, tm const*)
+67988 6 148 197
+6798e 2 65 238
+67990 2 148 197
+67992 2 151 197
+67994 8 148 197
+6799c 4 152 197
+679a0 6 153 197
+679a6 2 156 197
+679a8 2 155 197
+679aa 2 154 197
+679ac 4 156 197
+679b0 e 159 197
+679be 4 152 197
+679c2 6 163 197
+679c8 a 161 197
+679d2 8 157 197
+FUNC 679dc 6e0 0 void std::priv::__write_formatted_timeT<char, std::priv::_Time_Info>(std::priv::__basic_iostring<char>&, std::ctype<char> const&, char, char, std::priv::_Time_Info const&, tm const*)
+679dc 6 213 197
+679e2 4 220 197
+679e6 a 213 197
+679f0 b2 220 197
+67aa2 12 101 206
+67ab4 24 381 197
+67ad8 4 420 197
+67adc 2 421 197
+67ade 2 420 197
+67ae0 6 421 197
+67ae6 6 452 197
+67aec 2 338 197
+67aee 12 234 197
+67b00 2 235 197
+67b02 2 304 197
+67b04 6 304 197
+67b0a 2 304 197
+67b0c 10 348 197
+67b1c 2 349 197
+67b1e 22 287 197
+67b40 8 248 197
+67b48 6 342 197
+67b4e c 343 197
+67b5a 2 344 197
+67b5c 8 292 197
+67b64 a 342 197
+67b6e 6 234 197
+67b74 14 226 197
+67b88 2 227 197
+67b8a 14 101 206
+67b9e 6 386 197
+67ba4 2 387 197
+67ba6 2 386 197
+67ba8 4 387 197
+67bac e 370 197
+67bba e 370 197
+67bc8 2 64 238
+67bca 4 96 238
+67bce 4 96 238
+67bd2 4 97 238
+67bd6 6 161 201
+67bdc 6 161 201
+67be2 26 278 197
+67c08 2 279 197
+67c0a 2 268 197
+67c0c 4 268 197
+67c10 4 268 197
+67c14 e 268 197
+67c22 4 283 197
+67c26 8 283 197
+67c2e 2 284 197
+67c30 26 357 197
+67c56 8 101 206
+67c5e c 352 197
+67c6a 6 273 197
+67c70 12 273 197
+67c82 6 243 197
+67c88 12 243 197
+67c9a 2 238 197
+67c9c 6 238 197
+67ca2 6 238 197
+67ca8 26 313 197
+67cce 4 222 197
+67cd2 e 318 197
+67ce0 e 309 197
+67cee 2 310 197
+67cf0 8 297 197
+67cf8 18 297 197
+67d10 6 420 197
+67d16 6 253 197
+67d1c 10 253 197
+67d2c c 366 197
+67d38 e 366 197
+67d46 2 64 238
+67d48 6 96 238
+67d4e 6 96 238
+67d54 4 97 238
+67d58 6 161 201
+67d5e 6 135 222
+67d64 c 374 197
+67d70 e 374 197
+67d7e 2 64 238
+67d80 6 96 238
+67d86 6 96 238
+67d8c 4 97 238
+67d90 4 161 201
+67d94 6 161 201
+67d9a 6 258 197
+67da0 4 258 197
+67da4 c 258 197
+67db0 4 258 197
+67db4 8 258 197
+67dbc 2 258 197
+67dbe 8 258 197
+67dc6 8 258 197
+67dce 4 258 197
+67dd2 2c 259 197
+67dfe 6 259 197
+67e04 6 283 197
+67e0a 6 282 197
+67e10 10 282 197
+67e20 2 394 197
+67e22 4 195 197
+67e26 2 394 197
+67e28 4 195 197
+67e2c 2 393 197
+67e2e 1c 195 197
+67e4a 6 395 197
+67e50 8 393 197
+67e58 a 401 197
+67e62 22 401 197
+67e84 1c 401 197
+67ea0 2 401 197
+67ea2 24 195 197
+67ec6 2 402 197
+67ec8 8 404 197
+67ed0 2 409 197
+67ed2 4 414 197
+67ed6 8 409 197
+67ede 16 417 197
+67ef4 2 418 197
+67ef6 a 263 197
+67f00 1c 297 197
+67f1c 28 411 197
+67f44 2 412 197
+67f46 e 253 197
+67f54 8 254 197
+67f5c 6 283 197
+67f62 e 282 197
+67f70 e 283 197
+67f7e 6 258 197
+67f84 c 268 197
+67f90 8 269 197
+67f98 6 283 197
+67f9e e 273 197
+67fac 8 274 197
+67fb4 6 283 197
+67fba e 243 197
+67fc8 8 244 197
+67fd0 6 283 197
+67fd6 6 397 197
+67fdc a 398 197
+67fe6 1c 398 197
+68002 18 398 197
+6801a 2 398 197
+6801c 26 195 197
+68042 a 401 197
+6804c 6 398 197
+68052 6a 121 237
+FUNC 680bc a 0 std::priv::__write_formatted_time(std::priv::__basic_iostring<char>&, std::ctype<char> const&, char, char, std::priv::_Time_Info const&, tm const*)
+680bc 2 457 197
+680be 8 457 197
+FUNC 680c8 52 0 void std::priv::__subformat<char, std::priv::_Time_Info>(std::priv::__basic_iostring<char>&, std::ctype<char> const&, std::string const&, std::priv::_Time_Info const&, tm const*)
+680c8 6 148 197
+680ce 2 65 238
+680d0 2 148 197
+680d2 2 151 197
+680d4 8 148 197
+680dc 4 152 197
+680e0 6 153 197
+680e6 2 156 197
+680e8 2 155 197
+680ea 2 154 197
+680ec 4 156 197
+680f0 e 159 197
+680fe 4 152 197
+68102 6 163 197
+68108 a 161 197
+68112 8 157 197
+FUNC 6811c 284 0 std::priv::time_init<char>::time_init
+6811c 8 502 197
+68124 2 124 238
+68126 2 120 238
+68128 4 165 237
+6812c 2 481 201
+6812e 2 165 237
+68130 4 124 238
+68134 2 90 238
+68136 2 101 205
+68138 2 124 238
+6813a 2 101 205
+6813c 4 120 238
+68140 2 124 238
+68142 2 481 201
+68144 4 124 238
+68148 2 90 238
+6814a 6 165 237
+68150 2 101 205
+68152 2 124 238
+68154 2 101 205
+68156 4 120 238
+6815a 2 124 238
+6815c 2 481 201
+6815e 4 124 238
+68162 2 90 238
+68164 4 165 237
+68168 2 101 205
+6816a 4 124 238
+6816e 2 101 205
+68170 2 120 238
+68172 2 481 201
+68174 4 124 238
+68178 2 90 238
+6817a 4 165 237
+6817e 2 101 205
+68180 2 124 238
+68182 2 101 205
+68184 2 120 238
+68186 2 481 201
+68188 4 124 238
+6818c 2 90 238
+6818e c 72 242
+6819a 8 101 205
+681a2 4 502 197
+681a6 2 120 238
+681a8 4 124 238
+681ac 2 481 201
+681ae 4 124 238
+681b2 2 90 238
+681b4 4 72 242
+681b8 2 72 242
+681ba 4 101 205
+681be 2 72 242
+681c0 4 72 242
+681c4 c 502 197
+681d0 4 101 205
+681d4 2 502 197
+681d6 2 120 238
+681d8 4 124 238
+681dc 4 481 201
+681e0 4 124 238
+681e4 2 90 238
+681e6 4 101 205
+681ea 2 72 242
+681ec 4 101 205
+681f0 2 72 242
+681f2 4 120 238
+681f6 2 124 238
+681f8 4 481 201
+681fc 6 124 238
+68202 4 90 238
+68206 4 120 238
+6820a 2 101 205
+6820c 4 124 238
+68210 2 101 205
+68212 4 120 238
+68216 4 481 201
+6821a 6 124 238
+68220 2 101 205
+68222 4 90 238
+68226 2 78 197
+68228 2 77 197
+6822a 2 101 205
+6822c 4 503 197
+68230 8 78 197
+68238 6 229 246
+6823e 4 78 197
+68242 4 355 237
+68246 6 78 197
+6824c 4 355 237
+68250 2 77 197
+68252 8 77 197
+6825a 12 80 197
+6826c 6 229 246
+68272 4 355 237
+68276 4 80 197
+6827a 4 355 237
+6827e 2 79 197
+68280 4 79 197
+68284 42 355 237
+682c6 8 504 197
+682ce a 121 237
+682d8 a 504 197
+682e2 2 124 238
+682e4 c 72 242
+682f0 4 72 242
+682f4 8 121 237
+682fc 4 72 242
+68300 2 72 242
+68302 8 121 237
+6830a 4 72 242
+6830e 2 72 242
+68310 8 121 237
+68318 4 72 242
+6831c a 72 242
+68326 4 124 238
+6832a 10 72 242
+6833a 4 72 242
+6833e 8 121 237
+68346 6 72 242
+6834c e 72 242
+6835a 4 72 242
+6835e 8 121 237
+68366 6 72 242
+6836c 34 121 237
+FUNC 683a0 2b0 0 std::priv::time_init<wchar_t>::time_init
+683a0 8 527 197
+683a8 2 124 238
+683aa 2 120 238
+683ac 4 165 237
+683b0 2 481 201
+683b2 2 165 237
+683b4 4 124 238
+683b8 2 90 238
+683ba 2 101 205
+683bc 2 124 238
+683be 2 101 205
+683c0 4 120 238
+683c4 2 124 238
+683c6 2 481 201
+683c8 4 124 238
+683cc 2 90 238
+683ce 6 165 237
+683d4 2 101 205
+683d6 2 124 238
+683d8 2 101 205
+683da 4 120 238
+683de 2 124 238
+683e0 2 481 201
+683e2 4 124 238
+683e6 2 90 238
+683e8 4 165 237
+683ec 2 101 205
+683ee 4 124 238
+683f2 2 101 205
+683f4 2 120 238
+683f6 2 481 201
+683f8 4 124 238
+683fc 2 90 238
+683fe 4 165 237
+68402 2 101 205
+68404 2 124 238
+68406 2 101 205
+68408 2 120 238
+6840a 2 481 201
+6840c 4 124 238
+68410 2 90 238
+68412 c 80 242
+6841e 8 101 205
+68426 4 527 197
+6842a 2 120 238
+6842c 4 124 238
+68430 2 481 201
+68432 4 124 238
+68436 2 90 238
+68438 4 80 242
+6843c 2 80 242
+6843e 4 101 205
+68442 2 80 242
+68444 4 80 242
+68448 c 527 197
+68454 4 101 205
+68458 2 527 197
+6845a 2 120 238
+6845c 4 124 238
+68460 4 481 201
+68464 4 124 238
+68468 2 90 238
+6846a 4 101 205
+6846e 2 80 242
+68470 4 101 205
+68474 2 80 242
+68476 4 120 238
+6847a 2 124 238
+6847c 8 120 238
+68484 4 481 201
+68488 6 124 238
+6848e 4 101 205
+68492 4 120 238
+68496 2 101 205
+68498 4 124 238
+6849c 2 101 205
+6849e 4 120 238
+684a2 4 481 201
+684a6 6 124 238
+684ac 6 101 205
+684b2 2 90 197
+684b4 2 89 197
+684b6 2 101 205
+684b8 4 528 197
+684bc 16 90 197
+684d2 6 264 246
+684d8 c 355 237
+684e4 2 89 197
+684e6 8 89 197
+684ee 16 92 197
+68504 6 264 246
+6850a c 355 237
+68516 2 91 197
+68518 4 91 197
+6851c a 264 246
+68526 c 355 237
+68532 a 264 246
+6853c 36 355 237
+68572 8 529 197
+6857a a 121 237
+68584 a 529 197
+6858e 2 124 238
+68590 e 80 242
+6859e 6 80 242
+685a4 8 121 237
+685ac 4 80 242
+685b0 2 80 242
+685b2 8 121 237
+685ba 4 80 242
+685be 2 80 242
+685c0 8 121 237
+685c8 4 80 242
+685cc a 80 242
+685d6 4 124 238
+685da 10 80 242
+685ea 4 80 242
+685ee 8 121 237
+685f6 6 80 242
+685fc e 80 242
+6860a 4 80 242
+6860e 8 121 237
+68616 6 80 242
+6861c 34 121 237
+FUNC 68650 1c 0 std::messages<wchar_t>::~messages
+68650 4 107 219
+68654 18 107 219
+FUNC 6866c 1c 0 std::messages<char>::~messages
+6866c 4 74 219
+68670 18 74 219
+FUNC 68688 20 0 std::messages<wchar_t>::~messages
+68688 4 107 219
+6868c e 107 219
+6869a 6 107 219
+686a0 8 107 219
+FUNC 686a8 20 0 std::messages<char>::~messages
+686a8 4 74 219
+686ac e 74 219
+686ba 6 74 219
+686c0 8 74 219
+FUNC 686c8 2c 0 std::messages<char>::messages
+686c8 2 188 188
+686ca 2 340 240
+686cc 2 86 218
+686ce 2 188 188
+686d0 2 188 188
+686d2 4 86 218
+686d6 4 340 240
+686da 2 457 240
+686dc 4 340 240
+686e0 2 86 218
+686e2 12 189 188
+FUNC 686f4 2c 0 std::messages<wchar_t>::messages
+686f4 2 217 188
+686f6 2 340 240
+686f8 2 86 218
+686fa 2 217 188
+686fc 2 217 188
+686fe 4 86 218
+68702 4 340 240
+68706 2 457 240
+68708 4 340 240
+6870c 2 86 218
+6870e 12 218 188
+FUNC 68720 e 0 std::messages<char>::do_get(int, int, int, std::string const&) const
+68720 2 78 219
+68722 2 78 219
+68724 a 80 219
+FUNC 68730 3a 0 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string
+68730 2 647 236
+68732 2 647 236
+68734 2 112 238
+68736 2 481 201
+68738 2 89 238
+6873a 2 65 238
+6873c 4 378 237
+68740 6 379 237
+68746 2 107 243
+68748 2 66 238
+6874a 2 107 243
+6874c 8 106 243
+68754 2 107 243
+68756 2 380 237
+68758 4 101 205
+6875c e 649 236
+FUNC 6876c e 0 std::messages<wchar_t>::do_get(int, int, int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) const
+6876c 2 111 219
+6876e 2 111 219
+68770 a 113 219
+FUNC 68d20 34 0 __popcountsi2
+68d20 8 846 154
+68d28 c 847 154
+68d34 8 848 154
+68d3c a 849 154
+68d46 e 858 154
+FUNC 68d54 34 0 __gnu_ldivmod_helper
+68d54 2 38 151
+68d56 8 38 151
+68d5e 8 41 151
+68d66 16 42 151
+68d7c 2 44 151
+68d7e 4 42 151
+68d82 6 44 151
+FUNC 68d88 30 0 __gnu_uldivmod_helper
+68d88 2 50 151
+68d8a 8 50 151
+68d92 4 53 151
+68d96 4 54 151
+68d9a 4 53 151
+68d9e e 54 151
+68dac 2 56 151
+68dae 4 54 151
+68db2 6 56 151
+FUNC 68db8 16 0 selfrel_offset31
+68db8 2 458 153
+68dba 4 460 153
+68dbe 8 461 153
+68dc6 4 463 153
+68dca 2 465 153
+68dcc 2 466 153
+FUNC 68dce 6e 0 search_EIT_table
+68dce 2 158 155
+68dd0 2 164 155
+68dd2 2 158 155
+68dd4 4 163 155
+68dd8 2 167 155
+68dda 6 166 155
+68de0 4 167 155
+68de4 a 171 155
+68dee c 172 155
+68dfa 2 173 155
+68dfc 2 172 155
+68dfe 4 173 155
+68e02 a 174 155
+68e0c 8 178 155
+68e14 4 180 155
+68e18 6 182 155
+68e1e 2 184 155
+68e20 2 174 155
+68e22 4 184 155
+68e26 4 187 155
+68e2a 4 164 155
+68e2e 8 178 155
+68e36 6 189 155
+FUNC 68e3c 30 0 __gnu_unwind_get_pr_addr
+68e3c 1c 471 153
+68e58 4 480 153
+68e5c 2 483 153
+68e5e e 485 153
+FUNC 68e6c a4 0 get_eit_entry
+68e6c 2 206 155
+68e6e 2 197 155
+68e70 2 206 155
+68e72 2 208 155
+68e74 2 197 155
+68e76 2 206 155
+68e78 4 208 155
+68e7c 8 210 155
+68e84 4 212 155
+68e88 4 214 155
+68e8c 6 215 155
+68e92 a 221 155
+68e9c 2 220 155
+68e9e 6 221 155
+68ea4 a 224 155
+68eae 2 226 155
+68eb0 4 231 155
+68eb4 2 234 155
+68eb6 2 231 155
+68eb8 4 234 155
+68ebc 4 236 155
+68ec0 6 237 155
+68ec6 4 242 155
+68eca 2 245 155
+68ecc 4 246 155
+68ed0 4 253 155
+68ed4 2 254 155
+68ed6 2 252 155
+68ed8 2 258 155
+68eda 2 254 155
+68edc 6 258 155
+68ee2 4 261 155
+68ee6 4 262 155
+68eea 2 266 155
+68eec 2 262 155
+68eee a 274 155
+68ef8 4 272 155
+68efc 2 274 155
+68efe 2 272 155
+68f00 10 275 155
+FUNC 68f10 4a 0 restore_non_core_regs
+68f10 2 126 153
+68f12 2 125 153
+68f14 2 125 153
+68f16 6 126 153
+68f1c 4 128 153
+68f20 6 129 153
+68f26 4 131 153
+68f2a 6 134 153
+68f30 8 135 153
+68f38 6 137 153
+68f3e a 138 153
+68f48 6 139 153
+68f4e a 140 153
+68f58 2 141 153
+FUNC 68f5a e 0 _Unwind_decode_typeinfo_ptr
+68f5a 2 46 149
+68f5c 2 49 149
+68f5e 4 48 149
+68f62 2 55 149
+68f64 4 65 149
+FUNC 68f68 4 0 __gnu_unwind_24bit
+68f68 4 73 149
+FUNC 68f6c 2 0 _Unwind_DebugHook
+68f6c 2 134 155
+FUNC 68f6e 3a 0 unwind_phase2
+68f6e 6 282 155
+68f74 c 288 155
+68f80 4 289 155
+68f84 4 291 155
+68f88 a 294 155
+68f92 4 297 155
+68f96 4 299 155
+68f9a 8 302 155
+68fa2 2 302 155
+68fa4 4 302 155
+FUNC 68fa8 bc 0 unwind_phase2_forced
+68fa8 4 310 155
+68fac 2 311 155
+68fae 2 310 155
+68fb0 2 311 155
+68fb2 2 322 155
+68fb4 2 312 155
+68fb6 4 310 155
+68fba 6 319 155
+68fc0 2 312 155
+68fc2 4 319 155
+68fc6 2 322 155
+68fc8 2 313 155
+68fca a 332 155
+68fd4 a 336 155
+68fde 2 332 155
+68fe0 2 342 155
+68fe2 2 344 155
+68fe4 4 346 155
+68fe8 2 344 155
+68fea a 346 155
+68ff4 a 349 155
+68ffe 2 352 155
+69000 4 349 155
+69004 6 363 155
+6900a 2 365 155
+6900c 2 363 155
+6900e 2 365 155
+69010 14 368 155
+69024 4 370 155
+69028 4 373 155
+6902c c 376 155
+69038 8 378 155
+69040 4 380 155
+69044 2 387 155
+69046 2 387 155
+69048 4 387 155
+6904c 6 387 155
+69052 6 371 155
+69058 c 388 155
+FUNC 69064 4 0 _Unwind_GetCFA
+69064 2 400 155
+69066 2 401 155
+FUNC 69068 4e 0 __gnu_Unwind_RaiseException
+69068 2 412 155
+6906a 2 417 155
+6906c 2 412 155
+6906e 2 417 155
+69070 4 412 155
+69074 a 420 155
+6907e 6 422 155
+69084 8 428 155
+6908c 4 428 155
+69090 a 432 155
+6909a 4 435 155
+6909e 6 439 155
+690a4 4 440 155
+690a8 8 447 155
+690b0 6 448 155
+FUNC 690b6 14 0 __gnu_Unwind_ForcedUnwind
+690b6 2 461 155
+690b8 2 463 155
+690ba 2 466 155
+690bc 2 462 155
+690be 2 466 155
+690c0 8 468 155
+690c8 2 469 155
+FUNC 690ca 44 0 __gnu_Unwind_Resume
+690ca 2 476 155
+690cc 2 482 155
+690ce 2 480 155
+690d0 4 476 155
+690d4 2 480 155
+690d6 4 482 155
+690da 8 484 155
+690e2 a 491 155
+690ec 8 494 155
+690f4 8 502 155
+690fc 8 498 155
+69104 2 498 155
+69106 4 498 155
+6910a 4 505 155
+FUNC 6910e 1a 0 __gnu_Unwind_Resume_or_Rethrow
+6910e 2 515 155
+69110 6 516 155
+69116 6 517 155
+6911c 4 520 155
+69120 6 522 155
+69126 2 523 155
+FUNC 69128 2 0 _Unwind_Complete
+69128 2 529 155
+FUNC 6912a 10 0 _Unwind_DeleteException
+6912a 2 536 155
+6912c 8 537 155
+69134 4 538 155
+69138 2 539 155
+FUNC 6913a 34 0 _Unwind_VRS_Get
+6913a 2 160 153
+6913c 2 160 153
+6913e 10 163 153
+6914e 4 178 153
+69152 2 168 153
+69154 4 166 153
+69158 4 167 153
+6915c 8 169 153
+69164 2 170 153
+69166 2 169 153
+69168 2 170 153
+6916a 2 175 153
+6916c 2 180 153
+FUNC 6916e 16 0 _Unwind_GetGR
+6916e 2 221 150
+69170 2 221 150
+69172 c 223 150
+6917e 6 225 150
+FUNC 69184 34 0 _Unwind_VRS_Set
+69184 2 190 153
+69186 2 190 153
+69188 10 193 153
+69198 4 209 153
+6919c 2 198 153
+6919e 4 196 153
+691a2 4 197 153
+691a6 a 200 153
+691b0 4 201 153
+691b4 2 206 153
+691b6 2 211 153
+FUNC 691b8 18 0 _Unwind_SetGR
+691b8 2 232 150
+691ba 4 232 150
+691be e 233 150
+691cc 4 234 150
+FUNC 691d0 70 0 __gnu_Unwind_Backtrace
+691d0 4 549 155
+691d4 2 557 155
+691d6 2 549 155
+691d8 2 557 155
+691da 4 549 155
+691de a 560 155
+691e8 6 562 155
+691ee a 567 155
+691f8 4 567 155
+691fc 4 569 155
+69200 a 578 155
+6920a 6 581 155
+69210 4 581 155
+69214 c 589 155
+69220 4 594 155
+69224 6 594 155
+6922a 6 596 155
+69230 10 598 155
+FUNC 69240 280 0 __gnu_unwind_pr_common
+69240 4 610 155
+69244 4 610 155
+69248 8 620 155
+69250 2 622 155
+69252 2 610 155
+69254 2 625 155
+69256 2 610 155
+69258 8 623 155
+69260 2 624 155
+69262 4 625 155
+69266 4 627 155
+6926a 6 628 155
+69270 4 629 155
+69274 6 631 155
+6927a 4 633 155
+6927e 2 634 155
+69280 2 636 155
+69282 2 634 155
+69284 2 636 155
+69286 2 635 155
+69288 4 636 155
+6928c 2 635 155
+6928e 6 640 155
+69294 2 641 155
+69296 c 643 155
+692a2 8 646 155
+692aa 6 651 155
+692b0 4 654 155
+692b4 4 655 155
+692b8 2 660 155
+692ba 2 659 155
+692bc 2 661 155
+692be 2 660 155
+692c0 8 664 155
+692c8 2 665 155
+692ca 2 664 155
+692cc 2 665 155
+692ce 2 664 155
+692d0 4 665 155
+692d4 4 666 155
+692d8 2 666 155
+692da 4 666 155
+692de c 666 155
+692ea 18 668 155
+69302 8 672 155
+6930a 4 673 155
+6930e 6 679 155
+69314 2 682 155
+69316 2 679 155
+69318 6 683 155
+6931e 6 683 155
+69324 8 686 155
+6932c 2 690 155
+6932e 2 691 155
+69330 6 695 155
+69336 4 697 155
+6933a 4 701 155
+6933e 8 706 155
+69346 6 710 155
+6934c 4 711 155
+69350 2 715 155
+69352 4 714 155
+69356 4 716 155
+6935a 2 714 155
+6935c 8 716 155
+69364 4 724 155
+69368 2 722 155
+6936a a 727 155
+69374 2 726 155
+69376 6 732 155
+6937c 2 735 155
+6937e 6 737 155
+69384 a 747 155
+6938e 4 747 155
+69392 6 748 155
+69398 6 754 155
+6939e 2 755 155
+693a0 2 754 155
+693a2 6 755 155
+693a8 6 756 155
+693ae 2 760 155
+693b0 2 761 155
+693b2 8 764 155
+693ba 6 766 155
+693c0 4 768 155
+693c4 6 768 155
+693ca 8 768 155
+693d2 6 775 155
+693d8 2 779 155
+693da a 777 155
+693e4 4 778 155
+693e8 4 780 155
+693ec 2 778 155
+693ee 6 780 155
+693f4 6 780 155
+693fa a 797 155
+69404 4 797 155
+69408 6 798 155
+6940e 4 803 155
+69412 4 805 155
+69416 2 804 155
+69418 2 806 155
+6941a 2 804 155
+6941c 2 806 155
+6941e 6 808 155
+69424 8 810 155
+6942c 4 812 155
+69430 2 814 155
+69432 2 812 155
+69434 6 814 155
+6943a 8 815 155
+69442 4 819 155
+69446 6 821 155
+6944c 2 822 155
+6944e 8 823 155
+69456 2 824 155
+69458 4 616 155
+6945c 6 834 155
+69462 6 837 155
+69468 8 842 155
+69470 4 842 155
+69474 2 846 155
+69476 2 854 155
+69478 4 846 155
+6947c 8 849 155
+69484 2 849 155
+69486 2 849 155
+69488 8 849 155
+69490 2 850 155
+69492 2 849 155
+69494 8 850 155
+6949c 4 851 155
+694a0 4 828 155
+694a4 8 789 155
+694ac 2 790 155
+694ae 2 788 155
+694b0 2 792 155
+694b2 2 790 155
+694b4 2 791 155
+694b6 a 855 155
+FUNC 694c0 a 0 __aeabi_unwind_cpp_pr0
+694c0 2 493 153
+694c2 6 494 153
+694c8 2 495 153
+FUNC 694ca a 0 __aeabi_unwind_cpp_pr1
+694ca 2 501 153
+694cc 6 502 153
+694d2 2 503 153
+FUNC 694d4 a 0 __aeabi_unwind_cpp_pr2
+694d4 2 509 153
+694d6 6 510 153
+694dc 2 511 153
+FUNC 694de 24c 0 _Unwind_VRS_Pop
+694de 4 220 153
+694e2 18 223 153
+694fa 2 232 153
+694fc 6 231 153
+69502 2 234 153
+69504 2 235 153
+69506 4 234 153
+6950a a 239 153
+69514 6 240 153
+6951a 4 237 153
+6951e 4 237 153
+69522 2 246 153
+69524 6 243 153
+6952a 4 244 153
+6952e a 262 153
+69538 2 250 153
+6953a 4 251 153
+6953e 2 250 153
+69540 8 263 153
+69548 4 378 153
+6954c 2 373 153
+6954e 2 372 153
+69550 2 373 153
+69552 6 378 153
+69558 8 381 153
+69560 2 385 153
+69562 2 384 153
+69564 2 385 153
+69566 2 384 153
+69568 6 385 153
+6956e 4 391 153
+69572 2 396 153
+69574 4 391 153
+69578 2 397 153
+6957a 2 396 153
+6957c 2 395 153
+6957e 2 398 153
+69580 2 397 153
+69582 6 398 153
+69588 a 399 153
+69592 2 402 153
+69594 6 405 153
+6959a 4 407 153
+6959e 4 415 153
+695a2 4 415 153
+695a6 8 418 153
+695ae 2 422 153
+695b0 2 421 153
+695b2 2 422 153
+695b4 2 421 153
+695b6 6 422 153
+695bc 8 428 153
+695c4 2 430 153
+695c6 2 431 153
+695c8 a 432 153
+695d2 8 433 153
+695da 2 431 153
+695dc 4 431 153
+695e0 2 436 153
+695e2 8 439 153
+695ea 4 263 153
+695ee 8 264 153
+695f6 4 444 153
+695fa 4 263 153
+695fe 6 269 153
+69604 2 270 153
+69606 4 274 153
+6960a 6 271 153
+69610 4 274 153
+69614 2 272 153
+69616 8 278 153
+6961e 4 296 153
+69622 4 307 153
+69626 6 308 153
+6962c 2 321 153
+6962e 4 326 153
+69632 4 327 153
+69636 4 329 153
+6963a 8 330 153
+69642 2 331 153
+69644 2 329 153
+69646 6 331 153
+6964c c 332 153
+69658 4 336 153
+6965c 8 340 153
+69664 a 342 153
+6966e 6 343 153
+69674 a 344 153
+6967e 4 348 153
+69682 2 349 153
+69684 2 352 153
+69686 4 355 153
+6968a 8 356 153
+69692 6 360 153
+69698 6 361 153
+6969e 6 364 153
+696a4 8 365 153
+696ac 4 274 153
+696b0 8 297 153
+696b8 2 299 153
+696ba 2 300 153
+696bc 2 299 153
+696be 6 300 153
+696c4 4 307 153
+696c8 6 312 153
+696ce 6 313 153
+696d4 4 316 153
+696d8 6 317 153
+696de 8 321 153
+696e6 8 308 153
+696ee c 280 153
+696fa 4 282 153
+696fe 6 285 153
+69704 4 286 153
+69708 6 296 153
+6970e 6 291 153
+69714 6 292 153
+6971a 4 257 153
+6971e 8 312 153
+69726 4 446 153
+FUNC 698fc 30 0 next_unwind_byte
+698fc 2 84 152
+698fe 2 81 152
+69900 4 84 152
+69904 2 87 152
+69906 2 88 152
+69908 4 87 152
+6990c 4 89 152
+69910 a 90 152
+6991a 4 91 152
+6991e 2 94 152
+69920 2 97 152
+69922 2 94 152
+69924 2 98 152
+69926 2 99 152
+69928 2 98 152
+6992a 2 100 152
+FUNC 6992c 16 0 _Unwind_GetGR
+6992c 2 220 150
+6992e e 223 150
+6993c 6 225 150
+FUNC 69942 8 0 unwind_UCB_from_context
+69942 2 338 152
+69944 4 339 152
+69948 2 340 152
+FUNC 6994a 286 0 __gnu_unwind_execute
+6994a 2 105 152
+6994c 2 110 152
+6994e 2 105 152
+69950 4 105 152
+69954 2 110 152
+69956 8 113 152
+6995e 4 114 152
+69962 2 117 152
+69964 2 308 152
+69966 6 117 152
+6996c 10 119 152
+6997c 10 121 152
+6998c c 128 152
+69998 6 133 152
+6999e 12 134 152
+699b0 2 133 152
+699b2 2 138 152
+699b4 4 135 152
+699b8 4 136 152
+699bc 6 139 152
+699c2 e 143 152
+699d0 8 145 152
+699d8 4 146 152
+699dc 2 145 152
+699de 4 146 152
+699e2 4 149 152
+699e6 2 152 152
+699e8 2 153 152
+699ea 4 152 152
+699ee 8 153 152
+699f6 4 153 152
+699fa 4 156 152
+699fe 4 157 152
+69a02 4 160 152
+69a06 8 163 152
+69a0e 4 162 152
+69a12 e 167 152
+69a20 e 168 152
+69a2e 2 169 152
+69a30 4 171 152
+69a34 10 176 152
+69a44 4 177 152
+69a48 6 178 152
+69a4e 6 179 152
+69a54 4 184 152
+69a58 4 187 152
+69a5c 8 189 152
+69a64 2 190 152
+69a66 a 190 152
+69a70 6 194 152
+69a76 4 199 152
+69a7a 10 204 152
+69a8a 6 206 152
+69a90 2 207 152
+69a92 c 208 152
+69a9e 8 210 152
+69aa6 2 212 152
+69aa8 2 210 152
+69aaa 2 211 152
+69aac c 212 152
+69ab8 a 214 152
+69ac2 a 215 152
+69acc 4 219 152
+69ad0 6 222 152
+69ad6 12 223 152
+69ae8 a 229 152
+69af2 c 234 152
+69afe 6 235 152
+69b04 4 240 152
+69b08 4 242 152
+69b0c 6 245 152
+69b12 12 246 152
+69b24 4 252 152
+69b28 8 254 152
+69b30 4 255 152
+69b34 8 255 152
+69b3c 6 259 152
+69b42 8 264 152
+69b4a c 267 152
+69b56 8 268 152
+69b5e 4 273 152
+69b62 6 276 152
+69b68 16 277 152
+69b7e 6 283 152
+69b84 6 286 152
+69b8a 14 287 152
+69b9e 10 296 152
+69bae a 299 152
+69bb8 a 300 152
+69bc2 8 300 152
+69bca 6 309 152
+FUNC 69bd0 26 0 __gnu_unwind_frame
+69bd0 2 318 152
+69bd2 2 322 152
+69bd4 6 326 152
+69bda 6 327 152
+69be0 4 328 152
+69be4 2 331 152
+69be6 2 329 152
+69be8 2 331 152
+69bea 2 326 152
+69bec 2 329 152
+69bee 4 331 152
+69bf2 4 332 152
+FUNC 69bf6 a 0 _Unwind_GetRegionStart
+69bf6 2 346 152
+69bf8 4 349 152
+69bfc 2 350 152
+69bfe 2 351 152
+FUNC 69c00 12 0 _Unwind_GetLanguageSpecificData
+69c00 2 357 152
+69c02 4 362 152
+69c06 2 363 152
+69c08 8 367 152
+69c10 2 370 152
+FUNC 69c12 6 0 _Unwind_GetDataRelBase
+69c12 2 377 152
+69c14 4 378 152
+FUNC 69c18 6 0 _Unwind_GetTextRelBase
+69c18 2 383 152
+69c1a 4 384 152
+FUNC 69c34 4c 0 __muldi3
+69c34 2 548 154
+69c36 12 551 154
+69c48 2 548 154
+69c4a 14 551 154
+69c5e 6 551 154
+69c64 2 553 154
+69c66 2 554 154
+69c68 2 553 154
+69c6a c 551 154
+69c76 2 554 154
+69c78 2 553 154
+69c7a 6 557 154
+FUNC 69c80 12a 0 __divdi3
+69c80 2 1228 154
+69c82 2 1229 154
+69c84 2 1228 154
+69c86 4 1230 154
+69c8a 4 1231 154
+69c8e 2 1229 154
+69c90 4 1234 154
+69c94 6 1236 154
+69c9a 4 1235 154
+69c9e 4 1236 154
+69ca2 2 1235 154
+69ca4 4 1237 154
+69ca8 6 1238 154
+69cae a 1239 154
+69cb8 4 1241 154
+69cbc a 957 154
+69cc6 8 959 154
+69cce 2 960 154
+69cd0 2 959 154
+69cd2 6 960 154
+69cd8 2 962 154
+69cda 2 963 154
+69cdc 2 962 154
+69cde 4 963 154
+69ce2 2 962 154
+69ce4 a 963 154
+69cee c 970 154
+69cfa a 973 154
+69d04 4 972 154
+69d08 6 973 154
+69d0e 8 946 154
+69d16 6 976 154
+69d1c 8 978 154
+69d24 18 986 154
+69d3c 16 988 154
+69d52 a 989 154
+69d5c 4 990 154
+69d60 4 994 154
+69d64 2 995 154
+69d66 4 994 154
+69d6a 4 995 154
+69d6e 10 996 154
+69d7e 28 946 154
+69da6 4 1246 154
+FUNC 69daa f0 0 __udivdi3
+69daa 6 1287 154
+69db0 6 1287 154
+69db6 c 957 154
+69dc2 8 959 154
+69dca 2 960 154
+69dcc 2 959 154
+69dce 6 960 154
+69dd4 2 962 154
+69dd6 2 963 154
+69dd8 2 962 154
+69dda 4 963 154
+69dde 2 962 154
+69de0 a 963 154
+69dea c 970 154
+69df6 a 973 154
+69e00 4 972 154
+69e04 6 973 154
+69e0a 8 946 154
+69e12 6 976 154
+69e18 c 978 154
+69e24 1a 986 154
+69e3e 18 988 154
+69e56 a 989 154
+69e60 4 990 154
+69e64 a 994 154
+69e6e 2 995 154
+69e70 2 994 154
+69e72 4 995 154
+69e76 14 996 154
+69e8a 8 946 154
+69e92 8 1289 154
+PUBLIC 172dd 0 _ZN7testing8internal11CmpHelperEQISsSsEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 17f2d 0 _ZN38ExceptionHandlerTest_SimpleWithFD_Test8TestBodyEv
+PUBLIC 17fb5 0 _ZN40ExceptionHandlerTest_SimpleWithPath_Test8TestBodyEv
+PUBLIC 181d9 0 _ZN7testing13PrintToStringIiEESsRKT_
+PUBLIC 18221 0 _ZN7testing8internal18CmpHelperOpFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_S4_
+PUBLIC 182f5 0 _ZN7testing8internal11CmpHelperNEIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 18321 0 _ZN7testing8internal11CmpHelperEQIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 187b9 0 _ZN7testing8internal18CmpHelperOpFailureIliEENS_15AssertionResultEPKcS4_RKT_RKT0_S4_
+PUBLIC 188a1 0 _ZN53ExceptionHandlerTest_GenerateMultipleDumpsWithFD_Test8TestBodyEv
+PUBLIC 18ae5 0 _ZN7testing13PrintToStringIPvEESsRKT_
+PUBLIC 18b51 0 _ZN7testing8internal18CmpHelperOpFailureIPvS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_S5_
+PUBLIC 18c25 0 _ZN7testing13PrintToStringIjEESsRKT_
+PUBLIC 18cfd 0 _ZN7testing8internal11CmpHelperLTIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 18de5 0 _ZN7testing8internal11CmpHelperEQIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 18e59 0 _ZN7testing8internal11CmpHelperEQIjyEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 1900d 0 _ZN7testing8internal11CmpHelperGTIxiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 1911d 0 _ZN7testing8internal11CmpHelperEQI20MDExceptionCodeLinuxjEENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 19419 0 _Z10ChildCrashb
+PUBLIC 1970d 0 _ZN44ExceptionHandlerTest_ChildCrashWithPath_Test8TestBodyEv
+PUBLIC 19779 0 _ZN42ExceptionHandlerTest_ChildCrashWithFD_Test8TestBodyEv
+PUBLIC 197e9 0 _ZN57ExceptionHandlerTest_RedeliveryOnFilterCallbackFalse_Test8TestBodyEv
+PUBLIC 19931 0 _ZN55ExceptionHandlerTest_RedeliveryOnDoneCallbackFalse_Test8TestBodyEv
+PUBLIC 19a79 0 _ZN56ExceptionHandlerTest_NoRedeliveryOnDoneCallbackTrue_Test8TestBodyEv
+PUBLIC 19bc1 0 _ZN58ExceptionHandlerTest_NoRedeliveryOnFilterCallbackTrue_Test8TestBodyEv
+PUBLIC 19d09 0 _ZN52ExceptionHandlerTest_RedeliveryToDefaultHandler_Test8TestBodyEv
+PUBLIC 19dcd 0 _ZN58ExceptionHandlerTest_RedeliveryOnBadSignalHandlerFlag_Test8TestBodyEv
+PUBLIC 1a03d 0 _ZN55ExceptionHandlerTest_StackedHandlersDeliveredToTop_Test8TestBodyEv
+PUBLIC 1a135 0 _ZN61ExceptionHandlerTest_StackedHandlersNotDeliveredToBottom_Test8TestBodyEv
+PUBLIC 1a22d 0 _ZN57ExceptionHandlerTest_StackedHandlersFilteredToBottom_Test8TestBodyEv
+PUBLIC 1a329 0 _ZN58ExceptionHandlerTest_StackedHandlersUnhandledToBottom_Test8TestBodyEv
+PUBLIC 1a425 0 _ZN40ExceptionHandlerTest_ExternalDumper_Test8TestBodyEv
+PUBLIC 1ab6d 0 _ZN50ExceptionHandlerTest_InstructionPointerMemory_Test8TestBodyEv
+PUBLIC 1b3f1 0 _ZN58ExceptionHandlerTest_InstructionPointerMemoryMinBound_Test8TestBodyEv
+PUBLIC 1bbe9 0 _ZN58ExceptionHandlerTest_InstructionPointerMemoryMaxBound_Test8TestBodyEv
+PUBLIC 1c3e1 0 _ZN61ExceptionHandlerTest_InstructionPointerMemoryNullPointer_Test8TestBodyEv
+PUBLIC 1c839 0 _ZN36ExceptionHandlerTest_ModuleInfo_Test8TestBodyEv
+PUBLIC 1cec9 0 _ZN54ExceptionHandlerTest_WriteMinidumpExceptionStream_Test8TestBodyEv
+PUBLIC 1d1a5 0 _ZN55ExceptionHandlerTest_GenerateMultipleDumpsWithPath_Test8TestBodyEv
+PUBLIC 1d60d 0 _ZN42ExceptionHandlerTest_AdditionalMemory_Test8TestBodyEv
+PUBLIC 1d97d 0 _ZN48ExceptionHandlerTest_AdditionalMemoryRemove_Test8TestBodyEv
+PUBLIC 1dba9 0 _ZN47ExceptionHandlerTest_WriteMinidumpForChild_Test8TestBodyEv
+PUBLIC 1e021 0 _ZN7testing13PrintToStringIPKvEESsRKT_
+PUBLIC 1e08d 0 _ZN7testing8internal11CmpHelperNEIPcS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 1ed81 0 _ZN7testing8internal18CmpHelperEQFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 1ee5d 0 _ZN26CpuSetTest_EmptyCount_Test8TestBodyEv
+PUBLIC 1eedd 0 _ZN22CpuSetTest_OneCpu_Test8TestBodyEv
+PUBLIC 1f089 0 _ZN32CpuSetTest_OneCpuTerminated_Test8TestBodyEv
+PUBLIC 1f235 0 _ZN32CpuSetTest_TwoCpusWithComma_Test8TestBodyEv
+PUBLIC 1f3e5 0 _ZN32CpuSetTest_TwoCpusWithRange_Test8TestBodyEv
+PUBLIC 1f595 0 _ZN32CpuSetTest_TenCpusWithRange_Test8TestBodyEv
+PUBLIC 1f741 0 _ZN26CpuSetTest_MultiItems_Test8TestBodyEv
+PUBLIC 1f8ed 0 _ZN29CpuSetTest_IntersectWith_Test8TestBodyEv
+PUBLIC 1fcd5 0 _ZN32CpuSetTest_SelfIntersection_Test8TestBodyEv
+PUBLIC 1fed1 0 _ZN33CpuSetTest_EmptyIntersection_Test8TestBodyEv
+PUBLIC 203c9 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESsNS_9_IdentityISsEENS_11_SetTraitsTISsEESaISsEE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 2051b 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESsNS_9_IdentityISsEENS_11_SetTraitsTISsEESaISsEE9_M_insertEPNS_18_Rb_tree_node_baseERKSsSA_SA_
+PUBLIC 20589 0 _ZN39DirectoryReaderTest_CompareResults_Test8TestBodyEv
+PUBLIC 20fc9 0 _ZN29LineReaderTest_EmptyFile_Test8TestBodyEv
+PUBLIC 21111 0 _ZN27LineReaderTest_TooLong_Test8TestBodyEv
+PUBLIC 2127d 0 _ZN7testing8internal18CmpHelperEQFailureIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 2131d 0 _ZN7testing8internal18CmpHelperEQFailureIccEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 213bd 0 _ZN7testing8internal11CmpHelperEQIccEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 213dd 0 _ZN37LineReaderTest_OneLineTerminated_Test8TestBodyEv
+PUBLIC 21665 0 _ZN27LineReaderTest_OneLine_Test8TestBodyEv
+PUBLIC 218ed 0 _ZN38LineReaderTest_TwoLinesTerminated_Test8TestBodyEv
+PUBLIC 21cb1 0 _ZN28LineReaderTest_TwoLines_Test8TestBodyEv
+PUBLIC 22075 0 _ZN29LineReaderTest_MaxLength_Test8TestBodyEv
+PUBLIC 22399 0 _ZN38LinuxCoreDumperTest_BuildProcPath_Test8TestBodyEv
+PUBLIC 22751 0 _ZN54LinuxCoreDumperTest_VerifyDumpWithMultipleThreads_Test8TestBodyEv
+PUBLIC 23179 0 _ZN29LinuxPtraceDumperMappingsTest5SetUpEv
+PUBLIC 2344d 0 _ZN37LinuxPtraceDumperChildTest_Setup_Test12RealTestBodyEv
+PUBLIC 23469 0 _ZN44LinuxPtraceDumperChildTest_FindMappings_Test12RealTestBodyEv
+PUBLIC 23639 0 _ZN45LinuxPtraceDumperChildTest_BuildProcPath_Test12RealTestBodyEv
+PUBLIC 23a39 0 _ZN44LinuxPtraceDumperChildTest_FileIDsMatch_Test12RealTestBodyEv
+PUBLIC 23ea5 0 _ZN42LinuxPtraceDumperChildTest_ThreadList_Test12RealTestBodyEv
+PUBLIC 24155 0 _ZN49LinuxPtraceDumperMappingsTest_MergedMappings_Test12RealTestBodyEv
+PUBLIC 243fd 0 _ZN61LinuxPtraceDumperTest_VerifyStackReadWithMultipleThreads_Test8TestBodyEv
+PUBLIC 25071 0 _ZN7testing8internal18CmpHelperEQFailureIPKcSsEENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 25131 0 _ZN7testing8internal11CmpHelperEQIPKcSsEENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 2517d 0 _ZN7testing8internal18CmpHelperEQFailureISsSsEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 28ae5 0 _ZN15google_breakpad15GetHelperBinaryEv
+PUBLIC 291f1 0 _ZN36ProcCpuInfoReaderTest_EmptyFile_Test8TestBodyEv
+PUBLIC 29341 0 _ZN44ProcCpuInfoReaderTest_OneLineTerminated_Test8TestBodyEv
+PUBLIC 29571 0 _ZN45ProcCpuInfoReaderTest_TwoLinesTerminated_Test8TestBodyEv
+PUBLIC 2987d 0 _ZN44ProcCpuInfoReaderTest_SkipMalformedLine_Test8TestBodyEv
+PUBLIC 29aad 0 _ZN43ProcCpuInfoReaderTest_SkipOneEmptyLine_Test8TestBodyEv
+PUBLIC 29cdd 0 _ZN41ProcCpuInfoReaderTest_SkipEmptyField_Test8TestBodyEv
+PUBLIC 29f0d 0 _ZN44ProcCpuInfoReaderTest_SkipTwoEmptyLines_Test8TestBodyEv
+PUBLIC 2a20d 0 _ZN42ProcCpuInfoReaderTest_FieldWithSpaces_Test8TestBodyEv
+PUBLIC 2a43d 0 _ZN37ProcCpuInfoReaderTest_EmptyValue_Test8TestBodyEv
+PUBLIC 2a6d1 0 _ZN34ProcCpuInfoReaderTest_OneLine_Test8TestBodyEv
+PUBLIC 2ab19 0 _ZN7testing8internal18CmpHelperEQFailureIPK6elfhdrS4_EENS_15AssertionResultEPKcS7_RKT_RKT0_
+PUBLIC 2abb9 0 _ZN39ElfCoreDumpTest_DefaultConstructor_Test8TestBodyEv
+PUBLIC 2aeb5 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 2aef1 0 _ZN34ElfCoreDumpTest_TestElfHeader_Test8TestBodyEv
+PUBLIC 2be4d 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE9_M_insertEPNS_18_Rb_tree_node_baseERKiSA_SA_
+PUBLIC 2bee5 0 _ZNSt4priv8_Rb_treeIiSt4lessIiEiNS_9_IdentityIiEENS_11_SetTraitsTIiEESaIiEE13insert_uniqueERKi
+PUBLIC 2bf75 0 _ZN34ElfCoreDumpTest_ValidCoreFile_Test8TestBodyEv
+PUBLIC 2cbfb 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE8_M_eraseEPNS_18_Rb_tree_node_baseE
+PUBLIC 2da29 0 _ZN7testing8internal18CmpHelperOpFailureIjjEENS_15AssertionResultEPKcS4_RKT_RKT0_S4_
+PUBLIC 2dd21 0 _ZN24FileIDTest_ElfClass_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 2dee5 0 _ZN23FileIDTest_BuildID_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 2e159 0 _ZN25FileIDTest_BuildIDPH_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 2e401 0 _ZN28FileIDTest_UniqueHashes_TestIN15google_breakpad10ElfClass32EE8TestBodyEv
+PUBLIC 2e791 0 _ZN24FileIDTest_ElfClass_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 2e955 0 _ZN23FileIDTest_BuildID_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 2ebc9 0 _ZN25FileIDTest_BuildIDPH_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 2ee71 0 _ZN28FileIDTest_UniqueHashes_TestIN15google_breakpad10ElfClass64EE8TestBodyEv
+PUBLIC 2f4f9 0 _ZN32LinuxLibcSupportTest_strlen_Test8TestBodyEv
+PUBLIC 2f59d 0 _ZN34LinuxLibcSupportTest_uint_len_Test8TestBodyEv
+PUBLIC 2f8c5 0 _ZN32LinuxLibcSupportTest_strcmp_Test8TestBodyEv
+PUBLIC 2f989 0 _ZN33LinuxLibcSupportTest_strtoui_Test8TestBodyEv
+PUBLIC 2fee1 0 _ZN31LinuxLibcSupportTest_uitos_Test8TestBodyEv
+PUBLIC 30161 0 _ZN7testing8internal11CmpHelperEQIPKcS3_EENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 301dd 0 _ZN33LinuxLibcSupportTest_strrchr_Test8TestBodyEv
+PUBLIC 30515 0 _ZN32LinuxLibcSupportTest_strchr_Test8TestBodyEv
+PUBLIC 30895 0 _ZN7testing8internal18CmpHelperEQFailureIPvS2_EENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 308f9 0 _ZN7testing8internal11CmpHelperEQIA10_cPvEENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 3096d 0 _ZN7testing8internal11CmpHelperEQIPKcPvEENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 309e5 0 _ZN32LinuxLibcSupportTest_memchr_Test8TestBodyEv
+PUBLIC 30c75 0 _ZN7testing13PrintToStringIcEESsRKT_
+PUBLIC 30cbd 0 _ZN7testing8internal11CmpHelperEQIciEENS_15AssertionResultEPKcS4_RKT_RKT0_
+PUBLIC 30d31 0 _ZN38LinuxLibcSupportTest_read_hex_ptr_Test8TestBodyEv
+PUBLIC 3103d 0 _ZN42LinuxLibcSupportTest_read_decimal_ptr_Test8TestBodyEv
+PUBLIC 312d7 0 _ZN15google_breakpad9synth_elf3ELF13AppendSectionERNS1_10ElfSectionE
+PUBLIC 31315 0 _ZN15google_breakpad9synth_elf3ELF10AddSegmentEiijj
+PUBLIC 31453 0 _ZN15google_breakpad9synth_elf5Notes7AddNoteEiRKSsPKhj
+PUBLIC 315a1 0 _ZN15google_breakpad9synth_elf11SymbolTableC2ENS_14test_assembler10EndiannessEjRNS0_11StringTableE
+PUBLIC 3162d 0 _ZNSt4priv12_Impl_vectorIN15google_breakpad9synth_elf3ELF10ElfSectionESaIS4_EE22_M_insert_overflow_auxEPS4_RKS4_RKSt12__false_typejb
+PUBLIC 317cb 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE9_M_insertEPNS_18_Rb_tree_node_baseERKS8_SG_SG_
+PUBLIC 31839 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE13insert_uniqueERKS8_
+PUBLIC 318b1 0 _ZNSt4priv8_Rb_treeISsSt4lessISsESt4pairIKSsN15google_breakpad14test_assembler5LabelEENS_10_Select1stIS8_EENS_11_MapTraitsTIS8_EESaIS8_EE13insert_uniqueENS_17_Rb_tree_iteratorIS8_SC_EERKS8_
+PUBLIC 31b75 0 _ZN15google_breakpad9synth_elf11SymbolTable9AddSymbolERKSsjjjt
+PUBLIC 31bcd 0 _ZN15google_breakpad9synth_elf11SymbolTable9AddSymbolERKSsyyjt
+PUBLIC 31c29 0 _ZN15google_breakpad9synth_elf3ELF10AddSectionERKSsRKNS_14test_assembler7SectionEjjyjyy
+PUBLIC 31db5 0 _ZN15google_breakpad9synth_elf3ELF6FinishEv
+PUBLIC 31e91 0 _ZN15google_breakpad9synth_elf3ELFC1EthNS_14test_assembler10EndiannessE
+PUBLIC 32219 0 _ZNK15google_breakpad14CrashGenerator21HasDefaultCorePatternEv
+PUBLIC 32275 0 _ZNK15google_breakpad14CrashGenerator11GetThreadIdEj
+PUBLIC 3227d 0 _ZN15google_breakpad14CrashGenerator18GetThreadIdPointerEj
+PUBLIC 32285 0 _ZN15google_breakpad14CrashGenerator17UnmapSharedMemoryEv
+PUBLIC 322b1 0 _ZN15google_breakpad14CrashGenerator15MapSharedMemoryEj
+PUBLIC 32305 0 _ZNK15google_breakpad14CrashGenerator20SetCoreFileSizeLimitEm
+PUBLIC 32331 0 _ZNK15google_breakpad14CrashGenerator13CopyProcFilesEiPKc
+PUBLIC 323e5 0 _ZN15google_breakpad14CrashGenerator27CreateThreadsInChildProcessEj
+PUBLIC 3251b 0 _ZN15google_breakpad14CrashGeneratorC1Ev
+PUBLIC 3252d 0 _ZN15google_breakpad14CrashGeneratorD1Ev
+PUBLIC 32549 0 _ZNK15google_breakpad14CrashGenerator15GetCoreFilePathEv
+PUBLIC 3255d 0 _ZNK15google_breakpad14CrashGenerator27GetDirectoryOfProcFilesCopyEv
+PUBLIC 32571 0 _ZN15google_breakpad14CrashGenerator16CreateChildCrashEjjiPi
+PUBLIC 329d1 0 _ZN28PageAllocatorTest_Setup_Test8TestBodyEv
+PUBLIC 329f5 0 _ZN35PageAllocatorTest_SmallObjects_Test8TestBodyEv
+PUBLIC 32add 0 _ZN34PageAllocatorTest_LargeObject_Test8TestBodyEv
+PUBLIC 32cb9 0 _ZN29WastefulVectorTest_Setup_Test8TestBodyEv
+PUBLIC 32d65 0 _ZNSt4priv12_Impl_vectorIjN15google_breakpad16PageStdAllocatorIjEEE7reserveEj
+PUBLIC 32dc1 0 _ZN30WastefulVectorTest_Simple_Test8TestBodyEv
+PUBLIC 330ed 0 _ZN41WastefulVectorTest_UsesPageAllocator_Test8TestBodyEv
+PUBLIC 33749 0 _ZN15google_breakpad31NonAllocatingMapTest_Entry_Test8TestBodyEv
+PUBLIC 33be5 0 _ZN15google_breakpad39NonAllocatingMapTest_CopyAndAssign_Test8TestBodyEv
+PUBLIC 34385 0 _ZN15google_breakpad35NonAllocatingMapTest_AddRemove_Test8TestBodyEv
+PUBLIC 348c9 0 _ZN15google_breakpad35NonAllocatingMapTest_Serialize_Test8TestBodyEv
+PUBLIC 34d61 0 _ZN15google_breakpad36NonAllocatingMapTest_OutOfSpace_Test8TestBodyEv
+PUBLIC 34f05 0 _ZN7testing8internal11CmpHelperNEIPKcA7_cEENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 35009 0 _ZN15google_breakpad48NonAllocatingMapTest_SimpleStringDictionary_Test8TestBodyEv
+PUBLIC 35481 0 _ZN15google_breakpad34NonAllocatingMapTest_Iterator_Test8TestBodyEv
+PUBLIC 35929 0 _ZN15google_breakpad14test_assembler5LabelC1Ev
+PUBLIC 35949 0 _ZN15google_breakpad14test_assembler5LabelC2Ey
+PUBLIC 35969 0 _ZN15google_breakpad14test_assembler5LabelC1ERKS1_
+PUBLIC 35975 0 _ZN15google_breakpad14test_assembler5Label7BindingC2Ev
+PUBLIC 35989 0 _ZN15google_breakpad14test_assembler5Label7BindingC2Ey
+PUBLIC 35999 0 _ZN15google_breakpad14test_assembler5Label7BindingD2Ev
+PUBLIC 359c1 0 _ZN15google_breakpad14test_assembler5LabelD1Ev
+PUBLIC 359e3 0 _ZN15google_breakpad14test_assembler5Label7Binding3GetEPPS2_Py
+PUBLIC 35a49 0 _ZNK15google_breakpad14test_assembler5Label15IsKnownConstantEPy
+PUBLIC 35a71 0 _ZNK15google_breakpad14test_assembler5Label5ValueEv
+PUBLIC 35a8b 0 _ZNK15google_breakpad14test_assembler5Label17IsKnownOffsetFromERKS1_Py
+PUBLIC 35acf 0 _ZNK15google_breakpad14test_assembler5LabelmiERKS1_
+PUBLIC 35ae1 0 _ZN15google_breakpad14test_assembler5Label7Binding3SetEPS2_y
+PUBLIC 35b61 0 _ZN15google_breakpad14test_assembler5LabelaSEy
+PUBLIC 35b71 0 _ZN15google_breakpad14test_assembler5LabelaSERKS1_
+PUBLIC 35b85 0 _ZNK15google_breakpad14test_assembler5LabelplEy
+PUBLIC 35ba3 0 _ZNK15google_breakpad14test_assembler5LabelmiEy
+PUBLIC 35bc3 0 _ZN15google_breakpad14test_assembler7Section5AlignEjh
+PUBLIC 35be3 0 _ZN15google_breakpad14test_assembler7Section6LEB128Ex
+PUBLIC 35c27 0 _ZN15google_breakpad14test_assembler7Section7ULEB128Ey
+PUBLIC 35cbb 0 _ZN15google_breakpad14test_assembler7Section6AppendENS0_10EndiannessEjy
+PUBLIC 35cd7 0 _ZN15google_breakpad14test_assembler7Section3L16Et
+PUBLIC 35cf1 0 _ZN15google_breakpad14test_assembler7Section3L32Ej
+PUBLIC 35d0d 0 _ZN15google_breakpad14test_assembler7Section3L64Ey
+PUBLIC 35d25 0 _ZN15google_breakpad14test_assembler7Section3B16Et
+PUBLIC 35d3f 0 _ZN15google_breakpad14test_assembler7Section3B32Ej
+PUBLIC 35d5b 0 _ZN15google_breakpad14test_assembler7Section3B64Ey
+PUBLIC 35d73 0 _ZN15google_breakpad14test_assembler7Section3D16Et
+PUBLIC 35d8d 0 _ZN15google_breakpad14test_assembler7Section3D32Ej
+PUBLIC 35da9 0 _ZN15google_breakpad14test_assembler7Section3D64Ey
+PUBLIC 35de1 0 _ZN15google_breakpad14test_assembler7Section5ClearEv
+PUBLIC 35eb1 0 _ZN15google_breakpad14test_assembler7Section11GetContentsEPSs
+PUBLIC 35f9d 0 _ZNSt4priv12_Impl_vectorIN15google_breakpad14test_assembler7Section9ReferenceESaIS4_EE22_M_insert_overflow_auxEPS4_RKS4_RKSt12__false_typejb
+PUBLIC 3619b 0 _ZN15google_breakpad14test_assembler7Section6AppendENS0_10EndiannessEjRKNS0_5LabelE
+PUBLIC 36205 0 _ZN15google_breakpad14test_assembler7Section2L8ERKNS0_5LabelE
+PUBLIC 3620f 0 _ZN15google_breakpad14test_assembler7Section2B8ERKNS0_5LabelE
+PUBLIC 36219 0 _ZN15google_breakpad14test_assembler7Section3L16ERKNS0_5LabelE
+PUBLIC 36223 0 _ZN15google_breakpad14test_assembler7Section3L32ERKNS0_5LabelE
+PUBLIC 3622d 0 _ZN15google_breakpad14test_assembler7Section3L64ERKNS0_5LabelE
+PUBLIC 36237 0 _ZN15google_breakpad14test_assembler7Section3B16ERKNS0_5LabelE
+PUBLIC 36241 0 _ZN15google_breakpad14test_assembler7Section3B32ERKNS0_5LabelE
+PUBLIC 3624b 0 _ZN15google_breakpad14test_assembler7Section3B64ERKNS0_5LabelE
+PUBLIC 36255 0 _ZN15google_breakpad14test_assembler7Section2D8ERKNS0_5LabelE
+PUBLIC 3625f 0 _ZN15google_breakpad14test_assembler7Section3D16ERKNS0_5LabelE
+PUBLIC 36269 0 _ZN15google_breakpad14test_assembler7Section3D32ERKNS0_5LabelE
+PUBLIC 36273 0 _ZN15google_breakpad14test_assembler7Section3D64ERKNS0_5LabelE
+PUBLIC 3627d 0 _ZN15google_breakpad14test_assembler7Section6AppendERKS1_
+PUBLIC 363ad 0 _ZN15google_breakpad8CopyFileEPKcS1_
+PUBLIC 36505 0 _ZN15google_breakpad8ReadFileEPKcPvPi
+PUBLIC 365a1 0 _ZN15google_breakpad9WriteFileEPKcPKvj
+PUBLIC 36b95 0 _ZN7testing8internal18CmpHelperEQFailureIPKiS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 36c5d 0 _ZN7testing8internal11CmpHelperEQIA1_cSsEENS_15AssertionResultEPKcS5_RKT_RKT0_
+PUBLIC 36cf5 0 _ZN45MinidumpMemoryRangeTest_GetAsciiMDString_Test8TestBodyEv
+PUBLIC 36ffd 0 _ZN7testing13PrintToStringIPKhEESsRKT_
+PUBLIC 37045 0 _ZN7testing8internal11CmpHelperEQIPKhS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 370b9 0 _ZN57MinidumpMemoryRangeTest_ConstructorWithDataAndLength_Test8TestBodyEv
+PUBLIC 37199 0 _ZN47MinidumpMemoryRangeTest_DefaultConstructor_Test8TestBodyEv
+PUBLIC 3726d 0 _ZN55MinidumpMemoryRangeTest_SubrangeOfEmptyMemoryRange_Test8TestBodyEv
+PUBLIC 37355 0 _ZN32MinidumpMemoryRangeTest_Set_Test8TestBodyEv
+PUBLIC 374f5 0 _ZN34MinidumpMemoryRangeTest_Reset_Test8TestBodyEv
+PUBLIC 37759 0 _ZN7testing8internal11CmpHelperEQIPKhPKvEENS_15AssertionResultEPKcS8_RKT_RKT0_
+PUBLIC 377cd 0 _ZN7testing8internal11CmpHelperEQIPKvS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_
+PUBLIC 37841 0 _ZN44MinidumpMemoryRangeTest_GetArrayElement_Test8TestBodyEv
+PUBLIC 37989 0 _ZN61MinidumpMemoryRangeTest_SubrangeWithMDLocationDescriptor_Test8TestBodyEv
+PUBLIC 37e19 0 _ZN47MinidumpMemoryRangeTest_SubrangeAndGetData_Test8TestBodyEv
+PUBLIC 382a9 0 _ZN7testing8internal18CmpHelperEQFailureIPKcS3_EENS_15AssertionResultES3_S3_RKT_RKT0_
+PUBLIC 38315 0 _ZN59MinidumpMemoryRangeTest_GetArrayElmentWithTemplateType_Test8TestBodyEv
+PUBLIC 38439 0 _ZN52MinidumpMemoryRangeTest_GetDataWithTemplateType_Test8TestBodyEv
+PUBLIC 385f5 0 _ZN32AndroidUContext_GRegsOffset_Test8TestBodyEv
+PUBLIC 38655 0 _ZN33AndroidUContext_SigmakOffset_Test8TestBodyEv
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dcc 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dd0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dd4 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dd8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160dc 2c .cfa: sp 0 + .ra: lr
+STACK CFI 160de .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16100 .cfa: sp 8 +
+STACK CFI INIT 16108 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1610e c .cfa: sp 0 + .ra: lr
+STACK CFI 16110 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1611c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1611e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16134 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16136 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16148 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1614a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16160 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16162 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16174 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16176 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1618c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1618e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 161a0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 161a2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 161b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 161ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 161cc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 161ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 161e4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 161e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 161f8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 161fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16210 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16212 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16224 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16226 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1623c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1623e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16250 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16252 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16268 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1626a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1627c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1627e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16294 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16296 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 162a8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 162aa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 162c0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 162c2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 162d4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 162d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 162ec 12 .cfa: sp 0 + .ra: lr
+STACK CFI 162ee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16300 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16302 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16318 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1631a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1632c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1632e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16344 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16346 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16358 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1635a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16370 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16372 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16384 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16386 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1639c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1639e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 163b0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 163b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 163c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 163ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 163dc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 163de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 163f4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 163f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16408 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1640a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16420 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16422 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16434 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16436 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1644c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1644e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16460 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16462 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16478 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1647a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1648c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1648e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 164a4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 164a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 164b8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 164ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 164d0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 164d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 164e4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 164e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 164fc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 164fe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16510 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16512 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16528 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1652a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1653c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1653e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16554 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16556 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16568 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1656a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16580 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16582 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16592 80 .cfa: sp 0 + .ra: lr
+STACK CFI 16594 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 16610 .cfa: sp 20 +
+STACK CFI INIT 16614 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16616 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16634 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16636 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16654 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16656 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16674 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16676 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16694 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16696 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 166b4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 166b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 166d4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 166d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 166f4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 166f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16714 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16716 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16734 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16736 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16754 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16756 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16774 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16776 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16794 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16796 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 167b4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 167b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 167d4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 167d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 167f4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 167f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16814 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16816 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16834 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16836 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16854 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16856 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16874 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16876 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16894 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16896 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 168b4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 168b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 168d4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 168d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 168f4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 168f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16914 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16916 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16934 20 .cfa: sp 0 + .ra: lr
+STACK CFI 16936 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16954 118 .cfa: sp 0 + .ra: lr
+STACK CFI 16958 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 1695c .cfa: sp 128 +
+STACK CFI 16a62 .cfa: sp 28 +
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b28 16 .cfa: sp 0 + .ra: lr
+STACK CFI 16b2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 16d8a 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16d8e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 16dec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16dee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16e04 2e .cfa: sp 0 + .ra: lr
+STACK CFI 16e08 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 16e30 .cfa: sp 12 +
+STACK CFI INIT 16e34 ac .cfa: sp 0 + .ra: lr
+STACK CFI 16e38 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 16ec4 .cfa: sp 24 +
+STACK CFI INIT 16ee0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16ee2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 16f4c .cfa: sp 16 +
+STACK CFI INIT 16f58 30 .cfa: sp 0 + .ra: lr
+STACK CFI 16f5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16fb0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 16fb2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 16fd8 .cfa: sp 12 +
+STACK CFI INIT 16fdc 68 .cfa: sp 0 + .ra: lr
+STACK CFI 16fe0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16fe4 .cfa: sp 224 +
+STACK CFI 17038 .cfa: sp 28 +
+STACK CFI INIT 17044 16 .cfa: sp 0 + .ra: lr
+STACK CFI 17046 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 17056 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172dc c0 .cfa: sp 0 + .ra: lr
+STACK CFI 172e0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 172e6 .cfa: sp 264 +
+STACK CFI 17392 .cfa: sp 36 +
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 17522 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17524 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17526 .cfa: sp 80 +
+STACK CFI 175b0 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 1764a 90 .cfa: sp 0 + .ra: lr
+STACK CFI 1764c .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1764e .cfa: sp 80 +
+STACK CFI 176d8 .cfa: sp 20 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 17804 44 .cfa: sp 0 + .ra: lr
+STACK CFI 17806 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17848 1a4 .cfa: sp 0 + .ra: lr
+STACK CFI 1784c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17850 .cfa: sp 216 +
+STACK CFI 179c4 .cfa: sp 36 +
+STACK CFI INIT 179ec 1a .cfa: sp 0 + .ra: lr
+STACK CFI 179ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 17a02 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 17a06 10 .cfa: sp 0 + .ra: lr
+STACK CFI 17a08 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 17a18 6c .cfa: sp 0 + .ra: lr
+STACK CFI 17a1e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17a26 .cfa: sp 56 +
+STACK CFI 17a7a .cfa: sp 24 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17b14 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17b1a .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17ba0 .cfa: sp 24 +
+STACK CFI INIT 17ba4 46 .cfa: sp 0 + .ra: lr
+STACK CFI 17ba6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17be8 .cfa: sp 20 +
+STACK CFI INIT 17bec 2c8 .cfa: sp 0 + .ra: lr
+STACK CFI 17bf0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17bf4 .cfa: sp 256 +
+STACK CFI 17e60 .cfa: sp 36 +
+STACK CFI INIT 17eb4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 17eb6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17ec8 64 .cfa: sp 0 + .ra: lr
+STACK CFI 17ecc .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17ed8 .cfa: sp 56 +
+STACK CFI 17f1e .cfa: sp 24 +
+STACK CFI INIT 17f2c 88 .cfa: sp 0 + .ra: lr
+STACK CFI 17f30 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17f34 .cfa: sp 280 +
+STACK CFI 17faa .cfa: sp 28 +
+STACK CFI INIT 17fb4 180 .cfa: sp 0 + .ra: lr
+STACK CFI 17fb8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17fbc .cfa: sp 296 +
+STACK CFI 1810e .cfa: sp 36 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 181d8 48 .cfa: sp 0 + .ra: lr
+STACK CFI 181da .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 181e6 .cfa: sp 184 +
+STACK CFI 1821a .cfa: sp 20 +
+STACK CFI INIT 18220 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 18224 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18228 .cfa: sp 112 +
+STACK CFI 182d6 .cfa: sp 28 +
+STACK CFI INIT 182f4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 182f6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 18318 .cfa: sp 20 +
+STACK CFI INIT 18320 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18324 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18328 .cfa: sp 96 +
+STACK CFI 1838c .cfa: sp 32 +
+STACK CFI INIT 18394 178 .cfa: sp 0 + .ra: lr
+STACK CFI 18398 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 183a4 .cfa: sp 96 +
+STACK CFI 184da .cfa: sp 28 +
+STACK CFI INIT 1850c 2ac .cfa: sp 0 + .ra: lr
+STACK CFI 18510 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 18516 .cfa: sp 112 +
+STACK CFI 1875c .cfa: sp 36 +
+STACK CFI 18760 .cfa: sp 0 + .ra: .ra r10: r10 r11: r11 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 18764 .cfa: sp 112 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1876a .cfa: sp 36 +
+STACK CFI INIT 187b8 e8 .cfa: sp 0 + .ra: lr
+STACK CFI 187bc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 187c0 .cfa: sp 240 +
+STACK CFI 18884 .cfa: sp 28 +
+STACK CFI INIT 188a0 244 .cfa: sp 0 + .ra: lr
+STACK CFI 188a4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 188aa .cfa: sp 312 +
+STACK CFI 18a9c .cfa: sp 36 +
+STACK CFI INIT 18ae4 6c .cfa: sp 0 + .ra: lr
+STACK CFI 18ae8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 18af2 .cfa: sp 184 +
+STACK CFI 18b42 .cfa: sp 24 +
+STACK CFI INIT 18b50 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 18b54 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18b58 .cfa: sp 112 +
+STACK CFI 18c06 .cfa: sp 28 +
+STACK CFI INIT 18c24 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 18c28 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18c32 .cfa: sp 240 +
+STACK CFI 18cf4 .cfa: sp 28 +
+STACK CFI INIT 18cfc e8 .cfa: sp 0 + .ra: lr
+STACK CFI 18d00 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18d0a .cfa: sp 104 +
+STACK CFI 18dc4 .cfa: sp 28 +
+STACK CFI INIT 18de4 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18de8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18dec .cfa: sp 96 +
+STACK CFI 18e50 .cfa: sp 32 +
+STACK CFI INIT 18e58 11c .cfa: sp 0 + .ra: lr
+STACK CFI 18e5c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 18e6a .cfa: sp 296 +
+STACK CFI 18f6a .cfa: sp 36 +
+STACK CFI INIT 18f74 96 .cfa: sp 0 + .ra: lr
+STACK CFI 18f76 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 18f78 .cfa: sp 80 +
+STACK CFI 19008 .cfa: sp 20 +
+STACK CFI INIT 1900c 110 .cfa: sp 0 + .ra: lr
+STACK CFI 19010 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 1901e .cfa: sp 232 +
+STACK CFI 190fa .cfa: sp 32 +
+STACK CFI INIT 1911c 94 .cfa: sp 0 + .ra: lr
+STACK CFI 19120 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1912a .cfa: sp 232 +
+STACK CFI 191a6 .cfa: sp 36 +
+STACK CFI INIT 191b0 62 .cfa: sp 0 + .ra: lr
+STACK CFI 191b2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 19210 .cfa: sp 20 +
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 13b88 6ac .cfa: sp 0 + .ra: lr
+STACK CFI 13b8c .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 140e6 .cfa: sp 24 +
+STACK CFI INIT 19418 2f4 .cfa: sp 0 + .ra: lr
+STACK CFI 1941c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 19420 .cfa: sp 256 +
+STACK CFI 196cc .cfa: sp 36 +
+STACK CFI INIT 1970c 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1970e .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 19710 .cfa: sp 40 +
+STACK CFI 1976e .cfa: sp 12 +
+STACK CFI INIT 19778 70 .cfa: sp 0 + .ra: lr
+STACK CFI 1977a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 1977c .cfa: sp 40 +
+STACK CFI 197dc .cfa: sp 12 +
+STACK CFI INIT 197e8 148 .cfa: sp 0 + .ra: lr
+STACK CFI 197ec .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 197f0 .cfa: sp 112 +
+STACK CFI 1990a .cfa: sp 28 +
+STACK CFI INIT 19930 148 .cfa: sp 0 + .ra: lr
+STACK CFI 19934 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 19938 .cfa: sp 112 +
+STACK CFI 19a52 .cfa: sp 28 +
+STACK CFI INIT 19a78 148 .cfa: sp 0 + .ra: lr
+STACK CFI 19a7c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 19a80 .cfa: sp 112 +
+STACK CFI 19b9a .cfa: sp 28 +
+STACK CFI INIT 19bc0 148 .cfa: sp 0 + .ra: lr
+STACK CFI 19bc4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 19bc8 .cfa: sp 112 +
+STACK CFI 19ce2 .cfa: sp 28 +
+STACK CFI INIT 19d08 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 19d0a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 19d0e .cfa: sp 104 +
+STACK CFI 19db8 .cfa: sp 20 +
+STACK CFI INIT 19dcc 270 .cfa: sp 0 + .ra: lr
+STACK CFI 19dd0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 19dd4 .cfa: sp 280 +
+STACK CFI 19ff2 .cfa: sp 36 +
+STACK CFI INIT 1a03c f8 .cfa: sp 0 + .ra: lr
+STACK CFI 1a040 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1a044 .cfa: sp 256 +
+STACK CFI 1a11e .cfa: sp 24 +
+STACK CFI INIT 1a134 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 1a138 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1a13c .cfa: sp 256 +
+STACK CFI 1a216 .cfa: sp 24 +
+STACK CFI INIT 1a22c fc .cfa: sp 0 + .ra: lr
+STACK CFI 1a230 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1a234 .cfa: sp 256 +
+STACK CFI 1a310 .cfa: sp 24 +
+STACK CFI INIT 1a328 fc .cfa: sp 0 + .ra: lr
+STACK CFI 1a32c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1a330 .cfa: sp 256 +
+STACK CFI 1a40c .cfa: sp 24 +
+STACK CFI INIT 1a424 748 .cfa: sp 0 + .ra: lr
+STACK CFI 1a428 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1a430 .cfa: sp 1232 +
+STACK CFI 1aaa6 .cfa: sp 36 +
+STACK CFI INIT 1ab6c 884 .cfa: sp 0 + .ra: lr
+STACK CFI 1ab70 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1ab78 .cfa: sp 624 +
+STACK CFI 1b2f4 .cfa: sp 36 +
+STACK CFI INIT 1b3f0 7f8 .cfa: sp 0 + .ra: lr
+STACK CFI 1b3f4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1b3fa .cfa: sp 488 +
+STACK CFI 1bafa .cfa: sp 36 +
+STACK CFI INIT 1bbe8 7f8 .cfa: sp 0 + .ra: lr
+STACK CFI 1bbec .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1bbf2 .cfa: sp 496 +
+STACK CFI 1c2f4 .cfa: sp 36 +
+STACK CFI INIT 1c3e0 458 .cfa: sp 0 + .ra: lr
+STACK CFI 1c3e4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1c3ea .cfa: sp 360 +
+STACK CFI 1c7be .cfa: sp 36 +
+STACK CFI INIT 1c838 690 .cfa: sp 0 + .ra: lr
+STACK CFI 1c83c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1c844 .cfa: sp 616 +
+STACK CFI 1ce26 .cfa: sp 36 +
+STACK CFI INIT 1cec8 2dc .cfa: sp 0 + .ra: lr
+STACK CFI 1cecc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1ced0 .cfa: sp 344 +
+STACK CFI 1d150 .cfa: sp 36 +
+STACK CFI INIT 1d1a4 468 .cfa: sp 0 + .ra: lr
+STACK CFI 1d1a8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1d1ae .cfa: sp 568 +
+STACK CFI 1d598 .cfa: sp 36 +
+STACK CFI INIT 1d60c 370 .cfa: sp 0 + .ra: lr
+STACK CFI 1d610 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1d614 .cfa: sp 344 +
+STACK CFI 1d920 .cfa: sp 36 +
+STACK CFI INIT 1d97c 22c .cfa: sp 0 + .ra: lr
+STACK CFI 1d980 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1d986 .cfa: sp 320 +
+STACK CFI 1db6e .cfa: sp 36 +
+STACK CFI INIT 1dba8 41c .cfa: sp 0 + .ra: lr
+STACK CFI 1dbac .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1dbb0 .cfa: sp 248 +
+STACK CFI 1df42 .cfa: sp 36 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1dfc4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1dfc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1dfe4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1dfe6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1dffc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1dffe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI cc .cfa: sp 24 +
+STACK CFI INIT 0 1ec .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 208 +
+STACK CFI 1c2 .cfa: sp 32 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 56 +
+STACK CFI 6a .cfa: sp 24 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 17ba4 46 .cfa: sp 0 + .ra: lr
+STACK CFI 17ba6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17be8 .cfa: sp 20 +
+STACK CFI INIT 17bec 2c8 .cfa: sp 0 + .ra: lr
+STACK CFI 17bf0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17bf4 .cfa: sp 256 +
+STACK CFI 17e60 .cfa: sp 36 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 240 +
+STACK CFI d8 .cfa: sp 28 +
+STACK CFI INIT 0 ec .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 112 +
+STACK CFI d0 .cfa: sp 28 +
+STACK CFI INIT 182f4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 182f6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 18318 .cfa: sp 20 +
+STACK CFI INIT 1e020 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1e024 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1e02e .cfa: sp 184 +
+STACK CFI 1e07e .cfa: sp 24 +
+STACK CFI INIT 1e08c 108 .cfa: sp 0 + .ra: lr
+STACK CFI 1e090 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 1e09a .cfa: sp 112 +
+STACK CFI 1e174 .cfa: sp 28 +
+STACK CFI INIT 1e194 6e4 .cfa: sp 0 + .ra: lr
+STACK CFI 1e198 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1e1a0 .cfa: sp 1640 +
+STACK CFI 1e7c4 .cfa: sp 36 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 14234 58 .cfa: sp 0 + .ra: lr
+STACK CFI 14236 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 14272 .cfa: sp 8 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e878 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e87a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e890 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e892 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e8a4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e8a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e8bc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e8be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e8d0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e8d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e8e8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e8ea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e8fc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e8fe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e914 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e916 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e928 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e92a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e940 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e942 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e954 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e956 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e96c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e96e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e980 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e982 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e998 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e99a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e9ac 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e9ae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e9c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e9c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e9d8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1e9da .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e9f0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1e9f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea04 18 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea1c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea1e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea30 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea32 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea50 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea52 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea70 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea72 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ea90 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1ea92 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eab0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1eab2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ead0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1ead2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eaf0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1eaf2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eb10 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1eb12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eb30 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1eb32 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eb50 20 .cfa: sp 0 + .ra: lr
+STACK CFI 1eb52 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1eb70 10 .cfa: sp 0 + .ra: lr
+STACK CFI 1eb72 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1eb80 108 .cfa: sp 0 + .ra: lr
+STACK CFI 1eb84 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1eb8a .cfa: sp 568 +
+STACK CFI 1ec80 .cfa: sp 36 +
+STACK CFI INIT 1ec88 1c .cfa: sp 0 + .ra: lr
+STACK CFI 1ec8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 1eca4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1eca6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ecb8 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1ecba .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1ecc0 .cfa: sp 4112 +
+STACK CFI 1ecc6 .cfa: sp 4120 +
+STACK CFI 1ed1a .cfa: sp 16 +
+STACK CFI INIT 1ed24 5c .cfa: sp 0 + .ra: lr
+STACK CFI 1ed26 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI da .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1ed80 dc .cfa: sp 0 + .ra: lr
+STACK CFI 1ed84 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1ed8e .cfa: sp 264 +
+STACK CFI 1ee52 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 1ee5c 80 .cfa: sp 0 + .ra: lr
+STACK CFI 1ee5e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1ee60 .cfa: sp 176 +
+STACK CFI 1eecc .cfa: sp 20 +
+STACK CFI INIT 1eedc 1ac .cfa: sp 0 + .ra: lr
+STACK CFI 1eee0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1eee4 .cfa: sp 224 +
+STACK CFI 1f050 .cfa: sp 36 +
+STACK CFI INIT 1f088 1ac .cfa: sp 0 + .ra: lr
+STACK CFI 1f08c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f090 .cfa: sp 224 +
+STACK CFI 1f1fc .cfa: sp 36 +
+STACK CFI INIT 1f234 1b0 .cfa: sp 0 + .ra: lr
+STACK CFI 1f238 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f23c .cfa: sp 224 +
+STACK CFI 1f3ac .cfa: sp 36 +
+STACK CFI INIT 1f3e4 1b0 .cfa: sp 0 + .ra: lr
+STACK CFI 1f3e8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f3ec .cfa: sp 224 +
+STACK CFI 1f55c .cfa: sp 36 +
+STACK CFI INIT 1f594 1ac .cfa: sp 0 + .ra: lr
+STACK CFI 1f598 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f59c .cfa: sp 224 +
+STACK CFI 1f708 .cfa: sp 36 +
+STACK CFI INIT 1f740 1ac .cfa: sp 0 + .ra: lr
+STACK CFI 1f744 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f748 .cfa: sp 224 +
+STACK CFI 1f8b4 .cfa: sp 36 +
+STACK CFI INIT 1f8ec 3e8 .cfa: sp 0 + .ra: lr
+STACK CFI 1f8f0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1f8f4 .cfa: sp 368 +
+STACK CFI 1fc54 .cfa: sp 36 +
+STACK CFI INIT 1fcd4 1fc .cfa: sp 0 + .ra: lr
+STACK CFI 1fcd8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1fcdc .cfa: sp 232 +
+STACK CFI 1fe92 .cfa: sp 36 +
+STACK CFI INIT 1fed0 3ec .cfa: sp 0 + .ra: lr
+STACK CFI 1fed4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1fed8 .cfa: sp 376 +
+STACK CFI 2023e .cfa: sp 36 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1428c 294 .cfa: sp 0 + .ra: lr
+STACK CFI 14290 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 14494 .cfa: sp 24 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 202bc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 202be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 202d4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 202d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 202e8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 202ea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f58 30 .cfa: sp 0 + .ra: lr
+STACK CFI 16f5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 20308 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2030a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2032e .cfa: sp 12 +
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 64 +
+STACK CFI 12a .cfa: sp 32 +
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 203c8 28 .cfa: sp 0 + .ra: lr
+STACK CFI 203ca .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 1bc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 272 +
+STACK CFI 19e .cfa: sp 36 +
+STACK CFI INIT 203f0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 203f2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 2051a 6e .cfa: sp 0 + .ra: lr
+STACK CFI 2051e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 20588 70c .cfa: sp 0 + .ra: lr
+STACK CFI 2058c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2059a .cfa: sp 888 +
+STACK CFI 20bf8 .cfa: sp 36 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 14520 5c .cfa: sp 0 + .ra: lr
+STACK CFI 14522 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 14560 .cfa: sp 8 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20c94 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20c96 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20cac 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20cae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20cc0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20cc2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20cd8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20cda .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20cec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20cee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d04 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20d06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d18 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20d1a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d30 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20d32 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d44 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20d46 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20d5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d70 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20d72 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d88 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20d8a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20d9c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 20d9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20db4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 20db6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20dc8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20dca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20de8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20dea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20e08 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20e0a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20e28 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20e2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20e48 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20e4a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20e68 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20e6a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 20e88 20 .cfa: sp 0 + .ra: lr
+STACK CFI 20e8a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 20ea8 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20eaa .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 20f46 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1eca4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1eca6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ecb8 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1ecba .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1ecc0 .cfa: sp 4112 +
+STACK CFI 1ecc6 .cfa: sp 4120 +
+STACK CFI 1ed1a .cfa: sp 16 +
+STACK CFI INIT 20f58 42 .cfa: sp 0 + .ra: lr
+STACK CFI 20f5a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20f94 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7
+STACK CFI INIT 20f9c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 20f9e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 20fc8 148 .cfa: sp 0 + .ra: lr
+STACK CFI 20fcc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 20fd2 .cfa: sp 624 +
+STACK CFI 210e4 .cfa: sp 28 +
+STACK CFI INIT 21110 16c .cfa: sp 0 + .ra: lr
+STACK CFI 21114 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 2111a .cfa: sp 1136 +
+STACK CFI 21250 .cfa: sp 28 +
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI da .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 2131c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21320 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2132a .cfa: sp 264 +
+STACK CFI 213b4 .cfa: sp 36 +
+STACK CFI INIT 213bc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 213be .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 213da .cfa: sp 20 +
+STACK CFI INIT 213dc 288 .cfa: sp 0 + .ra: lr
+STACK CFI 213e0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 213e6 .cfa: sp 640 +
+STACK CFI 21602 .cfa: sp 36 +
+STACK CFI INIT 21664 288 .cfa: sp 0 + .ra: lr
+STACK CFI 21668 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2166e .cfa: sp 640 +
+STACK CFI 2188a .cfa: sp 36 +
+STACK CFI INIT 218ec 3c4 .cfa: sp 0 + .ra: lr
+STACK CFI 218f0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 218f6 .cfa: sp 656 +
+STACK CFI 21c2e .cfa: sp 36 +
+STACK CFI INIT 21cb0 3c4 .cfa: sp 0 + .ra: lr
+STACK CFI 21cb4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 21cba .cfa: sp 656 +
+STACK CFI 21ff2 .cfa: sp 36 +
+STACK CFI INIT 22074 268 .cfa: sp 0 + .ra: lr
+STACK CFI 22078 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2207e .cfa: sp 1152 +
+STACK CFI 22286 .cfa: sp 36 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1457c 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 14580 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 146ee .cfa: sp 24 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 222dc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 222de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 222f4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 222f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22308 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2230a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22320 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22322 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22334 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22336 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22354 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22356 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI 8c .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 42 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 9e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 9c .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 9e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 9c .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 264 +
+STACK CFI 98 .cfa: sp 36 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 22374 24 .cfa: sp 0 + .ra: lr
+STACK CFI 22378 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22398 3b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2239c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 223a2 .cfa: sp 1008 +
+STACK CFI 226d0 .cfa: sp 36 +
+STACK CFI INIT 22750 70c .cfa: sp 0 + .ra: lr
+STACK CFI 22754 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 22764 .cfa: sp 656 +
+STACK CFI 22d84 .cfa: sp 36 +
+STACK CFI INIT 22e5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22e5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 14758 9c .cfa: sp 0 + .ra: lr
+STACK CFI 1475a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1475c .cfa: sp 40 +
+STACK CFI 147ce .cfa: sp 20 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22e6e c .cfa: sp 0 + .ra: lr
+STACK CFI 22e70 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22e7c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22e7e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22e94 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22e96 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ea8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22eaa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ec0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22ec2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ea8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22eaa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ec0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22ec2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ea8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22eaa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ec0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22ec2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ea8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22eaa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ec0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22ec2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ea8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 22eaa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ec0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22ec2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ed4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22ed6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22ef4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22ef6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22f14 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22f16 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22f34 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22f36 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22f54 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22f74 20 .cfa: sp 0 + .ra: lr
+STACK CFI 22f76 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22f94 144 .cfa: sp 0 + .ra: lr
+STACK CFI 22f9a .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 22fa2 .cfa: sp 88 +
+STACK CFI 230ae .cfa: sp 28 +
+STACK CFI INIT 230d8 44 .cfa: sp 0 + .ra: lr
+STACK CFI 230da .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2311c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2311e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 23130 48 .cfa: sp 0 + .ra: lr
+STACK CFI 23132 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 56 +
+STACK CFI 6a .cfa: sp 24 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 240 +
+STACK CFI d8 .cfa: sp 28 +
+STACK CFI INIT 18de4 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18de8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18dec .cfa: sp 96 +
+STACK CFI 18e50 .cfa: sp 32 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 240 +
+STACK CFI d8 .cfa: sp 28 +
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 112 +
+STACK CFI e2 .cfa: sp 28 +
+STACK CFI INIT 23178 2b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2317c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 23180 .cfa: sp 104 +
+STACK CFI 233e2 .cfa: sp 36 +
+STACK CFI INIT 18320 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18324 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18328 .cfa: sp 96 +
+STACK CFI 1838c .cfa: sp 32 +
+STACK CFI INIT 23430 1c .cfa: sp 0 + .ra: lr
+STACK CFI 23434 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2344c 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2344e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 23450 .cfa: sp 96 +
+STACK CFI 23464 .cfa: sp 8 +
+STACK CFI INIT 23468 1d0 .cfa: sp 0 + .ra: lr
+STACK CFI 2346c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 23470 .cfa: sp 176 +
+STACK CFI 235e8 .cfa: sp 28 +
+STACK CFI INIT 23638 400 .cfa: sp 0 + .ra: lr
+STACK CFI 2363c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 23642 .cfa: sp 960 +
+STACK CFI 239b0 .cfa: sp 36 +
+STACK CFI INIT 23a38 46c .cfa: sp 0 + .ra: lr
+STACK CFI 23a3c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 23a44 .cfa: sp 4388 +
+STACK CFI 23a4a .cfa: sp 4408 +
+STACK CFI 23e3c .cfa: sp 36 +
+STACK CFI INIT 23ea4 2b0 .cfa: sp 0 + .ra: lr
+STACK CFI 23ea8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 23eac .cfa: sp 232 +
+STACK CFI 240f8 .cfa: sp 36 +
+STACK CFI INIT 24154 2a8 .cfa: sp 0 + .ra: lr
+STACK CFI 24158 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2415c .cfa: sp 216 +
+STACK CFI 243b4 .cfa: sp 36 +
+STACK CFI INIT 243fc 8b4 .cfa: sp 0 + .ra: lr
+STACK CFI 24400 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 24410 .cfa: sp 440 +
+STACK CFI 24c74 .cfa: sp 36 +
+STACK CFI INIT 24cb0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24cb2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 191b0 62 .cfa: sp 0 + .ra: lr
+STACK CFI 191b2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 19210 .cfa: sp 20 +
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 17b14 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17b1a .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17ba0 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 147f4 1d4 .cfa: sp 0 + .ra: lr
+STACK CFI 147f8 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1494e .cfa: sp 24 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 24cc4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ce4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24ce6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24d04 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24d06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24d24 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24d26 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24d44 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24d46 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24d64 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24d66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24d84 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24d86 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24da4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 24da6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24dc4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24dc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ddc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24dde .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24df0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24df2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e08 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24e0a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e1c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24e1e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e34 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24e36 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e48 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24e4a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e60 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24e62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e74 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24e76 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24e8c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24e8e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ea0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24ea2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24eb8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24eba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ecc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24ece .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ee4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24ee6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24ef8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 24efa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24f10 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24f12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 24f22 7a .cfa: sp 0 + .ra: lr
+STACK CFI 24f24 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16d8a 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16d8e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 24f9c 30 .cfa: sp 0 + .ra: lr
+STACK CFI 24f9e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 24fcc 32 .cfa: sp 0 + .ra: lr
+STACK CFI 24fd2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 24ffc .cfa: sp 16 +
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f58 30 .cfa: sp 0 + .ra: lr
+STACK CFI 16f5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17044 16 .cfa: sp 0 + .ra: lr
+STACK CFI 17046 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 17056 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 17522 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17524 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17526 .cfa: sp 80 +
+STACK CFI 175b0 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI cc .cfa: sp 24 +
+STACK CFI INIT 24ffe 1a .cfa: sp 0 + .ra: lr
+STACK CFI 25000 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 25014 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 0 1e8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 208 +
+STACK CFI 1be .cfa: sp 32 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 56 +
+STACK CFI 6a .cfa: sp 24 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 25018 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2501e .cfa: sp 16 +
+STACK CFI 25038 .cfa: sp 0 +
+STACK CFI INIT 2503a 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2503c .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 25018 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2501e .cfa: sp 16 +
+STACK CFI 25038 .cfa: sp 0 +
+STACK CFI INIT 25054 1c .cfa: sp 0 + .ra: lr
+STACK CFI 25056 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 25070 c0 .cfa: sp 0 + .ra: lr
+STACK CFI 25074 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 25078 .cfa: sp 264 +
+STACK CFI 25124 .cfa: sp 36 +
+STACK CFI INIT 25130 4a .cfa: sp 0 + .ra: lr
+STACK CFI 25134 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 25176 .cfa: sp 32 +
+STACK CFI INIT 2517c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 25180 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2518a .cfa: sp 264 +
+STACK CFI 25212 .cfa: sp 36 +
+STACK CFI INIT 0 42 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3e .cfa: sp 28 +
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 17ba4 46 .cfa: sp 0 + .ra: lr
+STACK CFI 17ba6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17be8 .cfa: sp 20 +
+STACK CFI INIT 17bec 2c8 .cfa: sp 0 + .ra: lr
+STACK CFI 17bf0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17bf4 .cfa: sp 256 +
+STACK CFI 17e60 .cfa: sp 36 +
+STACK CFI INIT 17eb4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 17eb6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 181d8 48 .cfa: sp 0 + .ra: lr
+STACK CFI 181da .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 181e6 .cfa: sp 184 +
+STACK CFI 1821a .cfa: sp 20 +
+STACK CFI INIT 18220 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 18224 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18228 .cfa: sp 112 +
+STACK CFI 182d6 .cfa: sp 28 +
+STACK CFI INIT 182f4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 182f6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 18318 .cfa: sp 20 +
+STACK CFI INIT 18320 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18324 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18328 .cfa: sp 96 +
+STACK CFI 1838c .cfa: sp 32 +
+STACK CFI INIT 2521c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 25220 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2522a .cfa: sp 240 +
+STACK CFI 252ec .cfa: sp 32 +
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 12 .cfa: sp 104 +
+STACK CFI d4 .cfa: sp 32 +
+STACK CFI INIT 252f4 26c .cfa: sp 0 + .ra: lr
+STACK CFI 252f8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 25300 .cfa: sp 1120 +
+STACK CFI 25522 .cfa: sp 36 +
+STACK CFI INIT 25560 274 .cfa: sp 0 + .ra: lr
+STACK CFI 25564 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2556c .cfa: sp 1120 +
+STACK CFI 25798 .cfa: sp 36 +
+STACK CFI INIT 18c24 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 18c28 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 18c32 .cfa: sp 240 +
+STACK CFI 18cf4 .cfa: sp 28 +
+STACK CFI INIT 18e58 11c .cfa: sp 0 + .ra: lr
+STACK CFI 18e5c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 18e6a .cfa: sp 296 +
+STACK CFI 18f6a .cfa: sp 36 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 149c8 200 .cfa: sp 0 + .ra: lr
+STACK CFI 149ca .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 149cc .cfa: sp 40 +
+STACK CFI 14b5a .cfa: sp 20 +
+STACK CFI INIT 257d4 c70 .cfa: sp 0 + .ra: lr
+STACK CFI 257d8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 257e0 .cfa: sp 1808 +
+STACK CFI 262c6 .cfa: sp 36 +
+STACK CFI INIT 26444 7d0 .cfa: sp 0 + .ra: lr
+STACK CFI 26448 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 26450 .cfa: sp 1824 +
+STACK CFI 26b54 .cfa: sp 36 +
+STACK CFI INIT 26c14 8a8 .cfa: sp 0 + .ra: lr
+STACK CFI 26c18 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 26c20 .cfa: sp 1424 +
+STACK CFI 273ce .cfa: sp 36 +
+STACK CFI INIT 274bc 298 .cfa: sp 0 + .ra: lr
+STACK CFI 274c0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 274c8 .cfa: sp 1120 +
+STACK CFI 27710 .cfa: sp 36 +
+STACK CFI INIT 27754 5a4 .cfa: sp 0 + .ra: lr
+STACK CFI 27758 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 27760 .cfa: sp 1192 +
+STACK CFI 27c70 .cfa: sp 36 +
+STACK CFI INIT 27cf8 dec .cfa: sp 0 + .ra: lr
+STACK CFI 27cfc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 27d0a .cfa: sp 536 +
+STACK CFI 28a1e .cfa: sp 36 +
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d8a 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16d8e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f58 30 .cfa: sp 0 + .ra: lr
+STACK CFI 16f5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 17804 44 .cfa: sp 0 + .ra: lr
+STACK CFI 17806 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 28ae4 2a0 .cfa: sp 0 + .ra: lr
+STACK CFI 28ae8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 28af6 .cfa: sp 4196 +
+STACK CFI 28af8 .cfa: sp 4208 +
+STACK CFI 28d5c .cfa: sp 36 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28d84 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28d86 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28d9c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28d9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28db0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28db2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28dc8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28dca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28ddc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28dde .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28df4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28df6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e08 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28e0a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e20 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28e22 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e34 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28e36 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e4c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28e4e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e60 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28e62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e78 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28e7a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28e8c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28e8e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28ea4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28ea6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28eb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28eba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28ed0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28ed2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28ee4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28ee6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28efc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28efe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f10 18 .cfa: sp 0 + .ra: lr
+STACK CFI 28f12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f28 12 .cfa: sp 0 + .ra: lr
+STACK CFI 28f2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f3c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28f3e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f5c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28f5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f7c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28f7e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28f9c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28f9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28fbc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28fbe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28fdc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28fde .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 28ffc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 28ffe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2901c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2901e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2903c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2903e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2905c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2905e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 2907c 116 .cfa: sp 0 + .ra: lr
+STACK CFI 29080 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1eca4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1eca6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1ecb8 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1ecba .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1ecc0 .cfa: sp 4112 +
+STACK CFI 1ecc6 .cfa: sp 4120 +
+STACK CFI 1ed1a .cfa: sp 16 +
+STACK CFI INIT 29194 5c .cfa: sp 0 + .ra: lr
+STACK CFI 29196 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 291f0 150 .cfa: sp 0 + .ra: lr
+STACK CFI 291f4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 291fa .cfa: sp 632 +
+STACK CFI 29312 .cfa: sp 28 +
+STACK CFI INIT 29340 230 .cfa: sp 0 + .ra: lr
+STACK CFI 29344 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2934a .cfa: sp 632 +
+STACK CFI 29514 .cfa: sp 32 +
+STACK CFI INIT 29570 30c .cfa: sp 0 + .ra: lr
+STACK CFI 29574 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2957a .cfa: sp 648 +
+STACK CFI 297f6 .cfa: sp 36 +
+STACK CFI INIT 2987c 230 .cfa: sp 0 + .ra: lr
+STACK CFI 29880 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 29886 .cfa: sp 632 +
+STACK CFI 29a50 .cfa: sp 32 +
+STACK CFI INIT 29aac 230 .cfa: sp 0 + .ra: lr
+STACK CFI 29ab0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 29ab6 .cfa: sp 632 +
+STACK CFI 29c80 .cfa: sp 32 +
+STACK CFI INIT 29cdc 230 .cfa: sp 0 + .ra: lr
+STACK CFI 29ce0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 29ce6 .cfa: sp 632 +
+STACK CFI 29eb0 .cfa: sp 32 +
+STACK CFI INIT 29f0c 300 .cfa: sp 0 + .ra: lr
+STACK CFI 29f10 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 29f16 .cfa: sp 664 +
+STACK CFI 2a196 .cfa: sp 36 +
+STACK CFI INIT 2a20c 230 .cfa: sp 0 + .ra: lr
+STACK CFI 2a210 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2a216 .cfa: sp 632 +
+STACK CFI 2a3e0 .cfa: sp 32 +
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI da .cfa: sp 20 +
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 264 +
+STACK CFI d2 .cfa: sp 36 +
+STACK CFI INIT 2a43c 294 .cfa: sp 0 + .ra: lr
+STACK CFI 2a440 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2a448 .cfa: sp 640 +
+STACK CFI 2a668 .cfa: sp 36 +
+STACK CFI INIT 2a6d0 294 .cfa: sp 0 + .ra: lr
+STACK CFI 2a6d4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2a6dc .cfa: sp 640 +
+STACK CFI 2a8fc .cfa: sp 36 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 14bc8 294 .cfa: sp 0 + .ra: lr
+STACK CFI 14bcc .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 14dd0 .cfa: sp 24 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a964 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2a966 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a97c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2a97e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a990 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2a992 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a9a8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2a9aa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a9bc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2a9be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a9d4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2a9d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2a9e8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2a9ea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2aa08 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa0a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2aa28 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2aa48 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa4a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aa4e .cfa: sp 48 +
+STACK CFI 2aa76 .cfa: sp 12 +
+STACK CFI INIT 2aa78 74 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa7a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI b6 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 2aaec 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2aaee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aaf8 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 2ab02 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2ab10 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 2aaec 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2aaee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aaf8 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 2ab02 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2ab10 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI cc .cfa: sp 24 +
+STACK CFI INIT 0 1ec .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 208 +
+STACK CFI 1c2 .cfa: sp 32 +
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 2ab18 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 2ab1c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2ab26 .cfa: sp 264 +
+STACK CFI 2abb0 .cfa: sp 36 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 2ab18 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 2ab1c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2ab26 .cfa: sp 264 +
+STACK CFI 2abb0 .cfa: sp 36 +
+STACK CFI INIT 2abb8 2fc .cfa: sp 0 + .ra: lr
+STACK CFI 2abbc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 2abc2 .cfa: sp 112 +
+STACK CFI 2ae5a .cfa: sp 28 +
+STACK CFI INIT 2aeb4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2aeb6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2aed4 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2aed8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 264 +
+STACK CFI 98 .cfa: sp 36 +
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 17ba4 46 .cfa: sp 0 + .ra: lr
+STACK CFI 17ba6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17be8 .cfa: sp 20 +
+STACK CFI INIT 17bec 2c8 .cfa: sp 0 + .ra: lr
+STACK CFI 17bf0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 17bf4 .cfa: sp 256 +
+STACK CFI 17e60 .cfa: sp 36 +
+STACK CFI INIT 2aef0 f5c .cfa: sp 0 + .ra: lr
+STACK CFI 2aef4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2aefa .cfa: sp 240 +
+STACK CFI 2be36 .cfa: sp 36 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 2be4c 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2be50 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 2bee0 .cfa: sp 24 +
+STACK CFI INIT 2bee4 8e .cfa: sp 0 + .ra: lr
+STACK CFI 2bee6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2bf70 .cfa: sp 16 +
+STACK CFI INIT 2bf74 858 .cfa: sp 0 + .ra: lr
+STACK CFI 2bf78 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2bf88 .cfa: sp 384 +
+STACK CFI 2c6ec .cfa: sp 36 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 14e5c dc .cfa: sp 0 + .ra: lr
+STACK CFI 14e5e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 14e60 .cfa: sp 40 +
+STACK CFI 14f04 .cfa: sp 20 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c7cc 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c7ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c7f4 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c7f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c81c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c81e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c844 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c846 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c86c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c86e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c894 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c896 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c8bc 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c8be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c8e4 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2c8e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 2c90c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2c910 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2c924 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2c930 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 2c936 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2ca1e .cfa: sp 36 +
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2ca28 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2ca2c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2ca6e .cfa: sp 16 +
+STACK CFI INIT 2ca74 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2ca76 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2ca88 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2ca8c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2caa4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2caa6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI cc .cfa: sp 24 +
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2cab8 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2caba .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f58 30 .cfa: sp 0 + .ra: lr
+STACK CFI 16f5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16dec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16dee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2caf8 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2cafc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 2cb24 .cfa: sp 8 +
+STACK CFI INIT 17a18 6c .cfa: sp 0 + .ra: lr
+STACK CFI 17a1e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17a26 .cfa: sp 56 +
+STACK CFI 17a7a .cfa: sp 24 +
+STACK CFI INIT 2cb2c 42 .cfa: sp 0 + .ra: lr
+STACK CFI 2cb2e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2cb6c .cfa: sp 16 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2cb70 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2cb72 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2cbbc 3e .cfa: sp 0 + .ra: lr
+STACK CFI 2cbbe .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2cbfa 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2cbfc .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 2cc2c 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc30 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2cc5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2cc70 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc74 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2ccfa .cfa: sp 16 +
+STACK CFI INIT 2cd00 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2cd02 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2cd12 c6 .cfa: sp 0 + .ra: lr
+STACK CFI 2cd16 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 2cd1a .cfa: sp 88 +
+STACK CFI 2cdd4 .cfa: sp 28 +
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 17ba4 46 .cfa: sp 0 + .ra: lr
+STACK CFI 17ba6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17be8 .cfa: sp 20 +
+STACK CFI INIT 2cdd8 148 .cfa: sp 0 + .ra: lr
+STACK CFI 2cddc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2cde6 .cfa: sp 312 +
+STACK CFI 2cef8 .cfa: sp 36 +
+STACK CFI INIT 2cf20 158 .cfa: sp 0 + .ra: lr
+STACK CFI 2cf24 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2cf2e .cfa: sp 328 +
+STACK CFI 2d04e .cfa: sp 36 +
+STACK CFI INIT 2d078 148 .cfa: sp 0 + .ra: lr
+STACK CFI 2d07c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d086 .cfa: sp 312 +
+STACK CFI 2d198 .cfa: sp 36 +
+STACK CFI INIT 2d1c0 158 .cfa: sp 0 + .ra: lr
+STACK CFI 2d1c4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d1ce .cfa: sp 328 +
+STACK CFI 2d2ee .cfa: sp 36 +
+STACK CFI INIT 2d318 148 .cfa: sp 0 + .ra: lr
+STACK CFI 2d31c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d326 .cfa: sp 312 +
+STACK CFI 2d438 .cfa: sp 36 +
+STACK CFI INIT 2d460 158 .cfa: sp 0 + .ra: lr
+STACK CFI 2d464 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d46e .cfa: sp 328 +
+STACK CFI 2d58e .cfa: sp 36 +
+STACK CFI INIT 2d5b8 148 .cfa: sp 0 + .ra: lr
+STACK CFI 2d5bc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d5c6 .cfa: sp 312 +
+STACK CFI 2d6d8 .cfa: sp 36 +
+STACK CFI INIT 2d700 158 .cfa: sp 0 + .ra: lr
+STACK CFI 2d704 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2d70e .cfa: sp 328 +
+STACK CFI 2d82e .cfa: sp 36 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 2d858 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2d85c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d880 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d884 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d89c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d89e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d8b0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d8b4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d8cc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d8ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d8e0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d8e4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d8fc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d8fe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d910 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d914 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d92c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d92e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d940 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2d944 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d968 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d96c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d984 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d986 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d998 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d99c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d9b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d9b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d9c8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d9cc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d9e4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2d9e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2d9f8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2d9fc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2da14 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2da16 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 1a0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 248 +
+STACK CFI 17e .cfa: sp 36 +
+STACK CFI INIT 2da28 180 .cfa: sp 0 + .ra: lr
+STACK CFI 2da2c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2da30 .cfa: sp 112 +
+STACK CFI 2db8c .cfa: sp 32 +
+STACK CFI INIT 2dba8 178 .cfa: sp 0 + .ra: lr
+STACK CFI 2dbac .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 2dbb6 .cfa: sp 112 +
+STACK CFI 2dcf4 .cfa: sp 28 +
+STACK CFI INIT 2dd20 1c4 .cfa: sp 0 + .ra: lr
+STACK CFI 2dd26 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2dd2c .cfa: sp 520 +
+STACK CFI 2deb4 .cfa: sp 36 +
+STACK CFI INIT 2dee4 274 .cfa: sp 0 + .ra: lr
+STACK CFI 2deea .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2def6 .cfa: sp 584 +
+STACK CFI 2e116 .cfa: sp 36 +
+STACK CFI INIT 2e158 2a8 .cfa: sp 0 + .ra: lr
+STACK CFI 2e15e .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2e168 .cfa: sp 584 +
+STACK CFI 2e3b6 .cfa: sp 36 +
+STACK CFI INIT 2e400 390 .cfa: sp 0 + .ra: lr
+STACK CFI 2e406 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2e410 .cfa: sp 592 +
+STACK CFI 2e73e .cfa: sp 36 +
+STACK CFI INIT 2dba8 178 .cfa: sp 0 + .ra: lr
+STACK CFI 2dbac .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 2dbb6 .cfa: sp 112 +
+STACK CFI 2dcf4 .cfa: sp 28 +
+STACK CFI INIT 2e790 1c4 .cfa: sp 0 + .ra: lr
+STACK CFI 2e796 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2e79c .cfa: sp 520 +
+STACK CFI 2e924 .cfa: sp 36 +
+STACK CFI INIT 2e954 274 .cfa: sp 0 + .ra: lr
+STACK CFI 2e95a .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2e966 .cfa: sp 584 +
+STACK CFI 2eb86 .cfa: sp 36 +
+STACK CFI INIT 2ebc8 2a8 .cfa: sp 0 + .ra: lr
+STACK CFI 2ebce .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2ebd8 .cfa: sp 584 +
+STACK CFI 2ee26 .cfa: sp 36 +
+STACK CFI INIT 2ee70 390 .cfa: sp 0 + .ra: lr
+STACK CFI 2ee76 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2ee80 .cfa: sp 592 +
+STACK CFI 2f1ae .cfa: sp 36 +
+STACK CFI INIT 14f38 84 .cfa: sp 0 + .ra: lr
+STACK CFI 14f3a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f200 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f202 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f218 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f21a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f22c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f22e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f244 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f246 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f258 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f25a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f270 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f272 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f284 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f286 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f29c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f29e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f2b0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f2b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f2c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f2ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f2dc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f2de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f2f4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f2f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f308 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f30a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f320 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f322 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f334 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f336 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f34c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f34e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f360 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f362 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f378 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f37a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f38c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2f38e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f3a4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2f3a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f3b8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f3ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f3d8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f3da .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f3f8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f3fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f418 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f41a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f438 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f43a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f458 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f45a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f478 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f47a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f498 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f49a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f4b8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f4ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2f4d8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2f4da .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI b6 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 2f4f8 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 2f4fc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2f508 .cfa: sp 56 +
+STACK CFI 2f586 .cfa: sp 32 +
+STACK CFI INIT 2f59c 328 .cfa: sp 0 + .ra: lr
+STACK CFI 2f5a0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2f5a4 .cfa: sp 56 +
+STACK CFI 2f85c .cfa: sp 32 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 240 +
+STACK CFI d8 .cfa: sp 28 +
+STACK CFI INIT 18320 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18324 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18328 .cfa: sp 96 +
+STACK CFI 1838c .cfa: sp 32 +
+STACK CFI INIT 2f8c4 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 2f8c8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 2f8d8 .cfa: sp 64 +
+STACK CFI 2f974 .cfa: sp 32 +
+STACK CFI INIT 2f988 558 .cfa: sp 0 + .ra: lr
+STACK CFI 2f98c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2f992 .cfa: sp 104 +
+STACK CFI 2fdf0 .cfa: sp 36 +
+STACK CFI INIT 2fee0 280 .cfa: sp 0 + .ra: lr
+STACK CFI 2fee4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2fef4 .cfa: sp 112 +
+STACK CFI 30114 .cfa: sp 36 +
+STACK CFI INIT 1e020 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1e024 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1e02e .cfa: sp 184 +
+STACK CFI 1e07e .cfa: sp 24 +
+STACK CFI INIT 30160 7c .cfa: sp 0 + .ra: lr
+STACK CFI 30164 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 30168 .cfa: sp 96 +
+STACK CFI 301d2 .cfa: sp 32 +
+STACK CFI INIT 301dc 338 .cfa: sp 0 + .ra: lr
+STACK CFI 301e0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 301f6 .cfa: sp 104 +
+STACK CFI 30486 .cfa: sp 36 +
+STACK CFI INIT 30514 380 .cfa: sp 0 + .ra: lr
+STACK CFI 30518 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3052e .cfa: sp 128 +
+STACK CFI 30806 .cfa: sp 36 +
+STACK CFI INIT 18ae4 6c .cfa: sp 0 + .ra: lr
+STACK CFI 18ae8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 18af2 .cfa: sp 184 +
+STACK CFI 18b42 .cfa: sp 24 +
+STACK CFI INIT 30894 64 .cfa: sp 0 + .ra: lr
+STACK CFI 30898 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3089c .cfa: sp 96 +
+STACK CFI 308f0 .cfa: sp 32 +
+STACK CFI INIT 308f8 74 .cfa: sp 0 + .ra: lr
+STACK CFI 308fc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 30900 .cfa: sp 96 +
+STACK CFI 30964 .cfa: sp 32 +
+STACK CFI INIT 3096c 78 .cfa: sp 0 + .ra: lr
+STACK CFI 30970 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 30974 .cfa: sp 96 +
+STACK CFI 309da .cfa: sp 32 +
+STACK CFI INIT 309e4 290 .cfa: sp 0 + .ra: lr
+STACK CFI 309e8 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 309ec .cfa: sp 72 +
+STACK CFI 30c10 .cfa: sp 28 +
+STACK CFI INIT 30c74 48 .cfa: sp 0 + .ra: lr
+STACK CFI 30c76 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 30c82 .cfa: sp 184 +
+STACK CFI 30cb6 .cfa: sp 20 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 8 .cfa: sp 96 +
+STACK CFI 6c .cfa: sp 32 +
+STACK CFI INIT 30cbc 74 .cfa: sp 0 + .ra: lr
+STACK CFI 30cc0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 30cc4 .cfa: sp 96 +
+STACK CFI 30d28 .cfa: sp 32 +
+STACK CFI INIT 30d30 30c .cfa: sp 0 + .ra: lr
+STACK CFI 30d34 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 30d38 .cfa: sp 80 +
+STACK CFI 30fe4 .cfa: sp 36 +
+STACK CFI INIT 3103c 26c .cfa: sp 0 + .ra: lr
+STACK CFI 31040 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 31046 .cfa: sp 80 +
+STACK CFI 3125a .cfa: sp 36 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 14fbc 294 .cfa: sp 0 + .ra: lr
+STACK CFI 14fc0 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 151c4 .cfa: sp 24 +
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2c924 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 312a8 2e .cfa: sp 0 + .ra: lr
+STACK CFI 312aa .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 312d4 .cfa: sp 16 +
+STACK CFI INIT 312d6 3e .cfa: sp 0 + .ra: lr
+STACK CFI 312d8 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 312f6 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 312fa .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3130c .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI INIT 31314 d6 .cfa: sp 0 + .ra: lr
+STACK CFI 31318 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 313e6 .cfa: sp 32 +
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2ca28 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2ca2c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2ca6e .cfa: sp 16 +
+STACK CFI INIT 2ca74 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2ca76 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 313ec 24 .cfa: sp 0 + .ra: lr
+STACK CFI 313f0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 31410 12 .cfa: sp 0 + .ra: lr
+STACK CFI 31412 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 31424 1c .cfa: sp 0 + .ra: lr
+STACK CFI 31428 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 31440 12 .cfa: sp 0 + .ra: lr
+STACK CFI 31442 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 31452 70 .cfa: sp 0 + .ra: lr
+STACK CFI 31456 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 314be .cfa: sp 32 +
+STACK CFI INIT 314c4 a8 .cfa: sp 0 + .ra: lr
+STACK CFI 314c8 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 31562 .cfa: sp 28 +
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 3156c 34 .cfa: sp 0 + .ra: lr
+STACK CFI 3156e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3159e .cfa: sp 12 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 315a0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 315a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 2cbfa 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2cbfc .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 2cc2c 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc30 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2cc5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 2cc70 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2cc74 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2ccfa .cfa: sp 16 +
+STACK CFI INIT 2cd00 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2cd02 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 203f0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 203f2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 315c4 68 .cfa: sp 0 + .ra: lr
+STACK CFI 315c6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3162c 170 .cfa: sp 0 + .ra: lr
+STACK CFI 31630 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 31632 .cfa: sp 56 +
+STACK CFI 31782 .cfa: sp 36 +
+STACK CFI 31786 .cfa: sp 56 +
+STACK CFI INIT 3179c 2e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 317ca 6e .cfa: sp 0 + .ra: lr
+STACK CFI 317ce .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 31838 78 .cfa: sp 0 + .ra: lr
+STACK CFI 3183c .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 318ac .cfa: sp 24 +
+STACK CFI INIT 318b0 174 .cfa: sp 0 + .ra: lr
+STACK CFI 318b4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 318bc .cfa: sp 56 +
+STACK CFI 31a20 .cfa: sp 36 +
+STACK CFI INIT 31a24 ac .cfa: sp 0 + .ra: lr
+STACK CFI 31a2a .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 31a3a .cfa: sp 80 +
+STACK CFI 31ac6 .cfa: sp 28 +
+STACK CFI INIT 31ad0 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 31ad4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 31b70 .cfa: sp 28 +
+STACK CFI INIT 31b74 58 .cfa: sp 0 + .ra: lr
+STACK CFI 31b76 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 31bca .cfa: sp 20 +
+STACK CFI INIT 31bcc 5c .cfa: sp 0 + .ra: lr
+STACK CFI 31bce .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 31c26 .cfa: sp 20 +
+STACK CFI INIT 31c28 18c .cfa: sp 0 + .ra: lr
+STACK CFI 31c2c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 31c3a .cfa: sp 152 +
+STACK CFI 31da2 .cfa: sp 36 +
+STACK CFI INIT 31db4 dc .cfa: sp 0 + .ra: lr
+STACK CFI 31db8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 31dc4 .cfa: sp 96 +
+STACK CFI 31e84 .cfa: sp 24 +
+STACK CFI INIT 31e90 30c .cfa: sp 0 + .ra: lr
+STACK CFI 31e94 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 31e9e .cfa: sp 232 +
+STACK CFI 3217e .cfa: sp 36 +
+STACK CFI INIT 3219c 40 .cfa: sp 0 + .ra: lr
+STACK CFI 3219e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 321dc 3c .cfa: sp 0 + .ra: lr
+STACK CFI 321de .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 32218 5c .cfa: sp 0 + .ra: lr
+STACK CFI 3221a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3221e .cfa: sp 32 +
+STACK CFI 32264 .cfa: sp 12 +
+STACK CFI INIT 32274 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3227c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 32284 2c .cfa: sp 0 + .ra: lr
+STACK CFI 32286 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 322b0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 322b4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 322fc .cfa: sp 24 +
+STACK CFI INIT 32304 2c .cfa: sp 0 + .ra: lr
+STACK CFI 32306 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 32326 .cfa: sp 4 +
+STACK CFI INIT 32330 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 32336 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 32340 .cfa: sp 8228 +
+STACK CFI 32342 .cfa: sp 8256 +
+STACK CFI 323ce .cfa: sp 36 +
+STACK CFI INIT 323e4 114 .cfa: sp 0 + .ra: lr
+STACK CFI 323e8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 323ec .cfa: sp 88 +
+STACK CFI 324d6 .cfa: sp 36 +
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 324f8 22 .cfa: sp 0 + .ra: lr
+STACK CFI 324fa .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 0 1f0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 208 +
+STACK CFI 1c6 .cfa: sp 32 +
+STACK CFI INIT 3251a 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3251c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI d4 .cfa: sp 28 +
+STACK CFI INIT 0 2d4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 256 +
+STACK CFI 27e .cfa: sp 36 +
+STACK CFI INIT 3252c 1a .cfa: sp 0 + .ra: lr
+STACK CFI 3252e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32548 14 .cfa: sp 0 + .ra: lr
+STACK CFI 3254a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3255c 14 .cfa: sp 0 + .ra: lr
+STACK CFI 3255e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32570 1c4 .cfa: sp 0 + .ra: lr
+STACK CFI 32574 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 32584 .cfa: sp 96 +
+STACK CFI 326f2 .cfa: sp 36 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32734 18 .cfa: sp 0 + .ra: lr
+STACK CFI 32736 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3274c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3274e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32760 18 .cfa: sp 0 + .ra: lr
+STACK CFI 32762 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32778 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3277a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3278c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3278e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 327a4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 327a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 327b8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 327ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 327d0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 327d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 327e4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 327e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 327fc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 327fe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32810 18 .cfa: sp 0 + .ra: lr
+STACK CFI 32812 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 32828 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3282a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3283c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3283e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3285c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3285e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3287c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3287e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3289c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3289e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 328bc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 328be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 328dc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 328de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 328fc a2 .cfa: sp 0 + .ra: lr
+STACK CFI 32900 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 3299e 30 .cfa: sp 0 + .ra: lr
+STACK CFI 329a0 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 329d0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 329d2 .cfa: sp 24 + .ra: .cfa -4 + ^
+STACK CFI 329ec .cfa: sp 4 +
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 329f4 e8 .cfa: sp 0 + .ra: lr
+STACK CFI 329fa .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 32a02 .cfa: sp 104 +
+STACK CFI 32abe .cfa: sp 28 +
+STACK CFI INIT 32adc 13c .cfa: sp 0 + .ra: lr
+STACK CFI 32ae0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 32ae4 .cfa: sp 104 +
+STACK CFI 32bea .cfa: sp 28 +
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 32c18 72 .cfa: sp 0 + .ra: lr
+STACK CFI 32c1c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI b6 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 32c8c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 32c8e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 32c98 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 32ca2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 32cb0 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 32cb8 ac .cfa: sp 0 + .ra: lr
+STACK CFI 32cbc .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 32cc4 .cfa: sp 64 +
+STACK CFI 32d4c .cfa: sp 20 +
+STACK CFI INIT 32d64 5c .cfa: sp 0 + .ra: lr
+STACK CFI 32d68 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 32dc0 32c .cfa: sp 0 + .ra: lr
+STACK CFI 32dc4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 32dc8 .cfa: sp 336 +
+STACK CFI 3308e .cfa: sp 36 +
+STACK CFI INIT 330ec fc .cfa: sp 0 + .ra: lr
+STACK CFI 330f0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 330f4 .cfa: sp 120 +
+STACK CFI 331ca .cfa: sp 28 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 15250 1a4 .cfa: sp 0 + .ra: lr
+STACK CFI 15254 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 15256 .cfa: sp 48 +
+STACK CFI 15398 .cfa: sp 28 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 331e8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 331ea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33200 12 .cfa: sp 0 + .ra: lr
+STACK CFI 33202 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33214 18 .cfa: sp 0 + .ra: lr
+STACK CFI 33216 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3322c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3322e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33240 18 .cfa: sp 0 + .ra: lr
+STACK CFI 33242 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33258 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3325a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3326c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3326e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33284 12 .cfa: sp 0 + .ra: lr
+STACK CFI 33286 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33298 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3329a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 332b0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 332b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 332c4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 332c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 332dc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 332de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 332f0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 332f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33308 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3330a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3331a 66 .cfa: sp 0 + .ra: lr
+STACK CFI 3331e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 33380 5e .cfa: sp 0 + .ra: lr
+STACK CFI 33384 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 333e0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 333e2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33400 20 .cfa: sp 0 + .ra: lr
+STACK CFI 33402 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33420 20 .cfa: sp 0 + .ra: lr
+STACK CFI 33422 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33440 20 .cfa: sp 0 + .ra: lr
+STACK CFI 33442 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33460 20 .cfa: sp 0 + .ra: lr
+STACK CFI 33462 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 33480 20 .cfa: sp 0 + .ra: lr
+STACK CFI 33482 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 334a0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 334a2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 334c0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b76 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16b78 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16b9e e .cfa: sp 0 + .ra: lr
+STACK CFI 16ba0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 334d6 2a .cfa: sp 0 + .ra: lr
+STACK CFI 334d8 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 33500 14 .cfa: sp 0 + .ra: lr
+STACK CFI 33502 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 33514 6e .cfa: sp 0 + .ra: lr
+STACK CFI 33518 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 33524 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 33528 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 33582 24 .cfa: sp 0 + .ra: lr
+STACK CFI 33584 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 335a6 12 .cfa: sp 0 + .ra: lr
+STACK CFI 335a8 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 335b8 6a .cfa: sp 0 + .ra: lr
+STACK CFI 335bc .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 335c8 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 335cc .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 33622 12 .cfa: sp 0 + .ra: lr
+STACK CFI 33624 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 33634 24 .cfa: sp 0 + .ra: lr
+STACK CFI 33636 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 33658 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3365a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 3366a 68 .cfa: sp 0 + .ra: lr
+STACK CFI 3366e .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3367a .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 3367e .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 336d2 24 .cfa: sp 0 + .ra: lr
+STACK CFI 336d4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 336f6 50 .cfa: sp 0 + .ra: lr
+STACK CFI 336fa .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 13c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 64 +
+STACK CFI 132 .cfa: sp 32 +
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 33748 49c .cfa: sp 0 + .ra: lr
+STACK CFI 3374e .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 33758 .cfa: sp 312 +
+STACK CFI 33b42 .cfa: sp 36 +
+STACK CFI INIT 33be4 7a0 .cfa: sp 0 + .ra: lr
+STACK CFI 33bec .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 33bf8 .cfa: sp 704 +
+STACK CFI 34262 .cfa: sp 36 +
+STACK CFI INIT 34384 544 .cfa: sp 0 + .ra: lr
+STACK CFI 34388 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3439a .cfa: sp 160 +
+STACK CFI 347ee .cfa: sp 32 +
+STACK CFI INIT 348c8 498 .cfa: sp 0 + .ra: lr
+STACK CFI 348cc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 348de .cfa: sp 216 +
+STACK CFI 34cae .cfa: sp 28 +
+STACK CFI INIT 34d60 1a4 .cfa: sp 0 + .ra: lr
+STACK CFI 34d64 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 34d6e .cfa: sp 104 +
+STACK CFI 34ec4 .cfa: sp 36 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 17ab0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 17ab2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17ae0 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 1e020 6c .cfa: sp 0 + .ra: lr
+STACK CFI 1e024 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 1e02e .cfa: sp 184 +
+STACK CFI 1e07e .cfa: sp 24 +
+STACK CFI INIT 34f04 104 .cfa: sp 0 + .ra: lr
+STACK CFI 34f08 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 34f14 .cfa: sp 112 +
+STACK CFI 34fe8 .cfa: sp 28 +
+STACK CFI INIT 35008 478 .cfa: sp 0 + .ra: lr
+STACK CFI 3500c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3501c .cfa: sp 32800 +
+STACK CFI 3501e .cfa: sp 32856 +
+STACK CFI 353e0 .cfa: sp 32 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 240 +
+STACK CFI d8 .cfa: sp 28 +
+STACK CFI INIT 18320 74 .cfa: sp 0 + .ra: lr
+STACK CFI 18324 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18328 .cfa: sp 96 +
+STACK CFI 1838c .cfa: sp 32 +
+STACK CFI INIT 35480 4a8 .cfa: sp 0 + .ra: lr
+STACK CFI 35484 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3548c .cfa: sp 928 +
+STACK CFI 3589e .cfa: sp 36 +
+STACK CFI INIT 191b0 62 .cfa: sp 0 + .ra: lr
+STACK CFI 191b2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 19210 .cfa: sp 20 +
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 17b14 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17b1a .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17ba0 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 153f4 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 153f8 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 15566 .cfa: sp 24 +
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 35928 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3592a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 35948 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3594a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 35968 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 35974 14 .cfa: sp 0 + .ra: lr
+STACK CFI 35976 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 35988 10 .cfa: sp 0 + .ra: lr
+STACK CFI 3598a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 35998 28 .cfa: sp 0 + .ra: lr
+STACK CFI 3599a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 359c0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 359c2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 359e2 66 .cfa: sp 0 + .ra: lr
+STACK CFI 359e6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 35a44 .cfa: sp 24 +
+STACK CFI INIT 35a48 28 .cfa: sp 0 + .ra: lr
+STACK CFI 35a4a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35a6e .cfa: sp 8 +
+STACK CFI INIT 35a70 1a .cfa: sp 0 + .ra: lr
+STACK CFI 35a72 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 35a86 .cfa: sp 4 +
+STACK CFI INIT 35a8a 44 .cfa: sp 0 + .ra: lr
+STACK CFI 35a8c .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 35a90 .cfa: sp 40 +
+STACK CFI 35acc .cfa: sp 12 +
+STACK CFI INIT 35ace 12 .cfa: sp 0 + .ra: lr
+STACK CFI 35ad0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 35adc .cfa: sp 4 +
+STACK CFI INIT 35ae0 80 .cfa: sp 0 + .ra: lr
+STACK CFI 35ae2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 35ae8 .cfa: sp 40 +
+STACK CFI 35b5e .cfa: sp 20 +
+STACK CFI INIT 35b60 10 .cfa: sp 0 + .ra: lr
+STACK CFI 35b62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 35b70 14 .cfa: sp 0 + .ra: lr
+STACK CFI 35b72 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 35b84 1e .cfa: sp 0 + .ra: lr
+STACK CFI 35b86 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 35ba2 20 .cfa: sp 0 + .ra: lr
+STACK CFI 35ba4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 35bc2 20 .cfa: sp 0 + .ra: lr
+STACK CFI 35bc4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 35be2 44 .cfa: sp 0 + .ra: lr
+STACK CFI 35be4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 35c26 3a .cfa: sp 0 + .ra: lr
+STACK CFI 35c28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 35c60 5a .cfa: sp 0 + .ra: lr
+STACK CFI 35c66 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 35cba 1c .cfa: sp 0 + .ra: lr
+STACK CFI 35cbc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35cd4 .cfa: sp 8 +
+STACK CFI INIT 35cd6 1a .cfa: sp 0 + .ra: lr
+STACK CFI 35cd8 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35cee .cfa: sp 8 +
+STACK CFI INIT 35cf0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 35cf2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d0a .cfa: sp 8 +
+STACK CFI INIT 35d0c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 35d0e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d22 .cfa: sp 8 +
+STACK CFI INIT 35d24 1a .cfa: sp 0 + .ra: lr
+STACK CFI 35d26 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d3c .cfa: sp 8 +
+STACK CFI INIT 35d3e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 35d40 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d58 .cfa: sp 8 +
+STACK CFI INIT 35d5a 18 .cfa: sp 0 + .ra: lr
+STACK CFI 35d5c .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d70 .cfa: sp 8 +
+STACK CFI INIT 35d72 1a .cfa: sp 0 + .ra: lr
+STACK CFI 35d74 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35d8a .cfa: sp 8 +
+STACK CFI INIT 35d8c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 35d8e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35da6 .cfa: sp 8 +
+STACK CFI INIT 35da8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 35daa .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 35dbe .cfa: sp 8 +
+STACK CFI INIT 35dc0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 35dc2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 35de0 1a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 35dfc b4 .cfa: sp 0 + .ra: lr
+STACK CFI 35dfe .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 35e0c .cfa: sp 48 +
+STACK CFI 35ea8 .cfa: sp 20 +
+STACK CFI INIT 35eb0 ec .cfa: sp 0 + .ra: lr
+STACK CFI 35eb4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 35ebe .cfa: sp 56 +
+STACK CFI 35f90 .cfa: sp 36 +
+STACK CFI INIT 35f9c 1bc .cfa: sp 0 + .ra: lr
+STACK CFI 35fa0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 35fae .cfa: sp 56 +
+STACK CFI 36144 .cfa: sp 36 +
+STACK CFI 36148 .cfa: sp 56 +
+STACK CFI INIT 36158 42 .cfa: sp 0 + .ra: lr
+STACK CFI 3615a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 36198 .cfa: sp 8 +
+STACK CFI INIT 3619a 6a .cfa: sp 0 + .ra: lr
+STACK CFI 3619e .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 361a0 .cfa: sp 64 +
+STACK CFI 36200 .cfa: sp 32 +
+STACK CFI INIT 36204 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3620e a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36218 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36222 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3622c a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36236 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36240 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3624a a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36254 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3625e a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36268 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36272 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3627c 130 .cfa: sp 0 + .ra: lr
+STACK CFI 36280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3628e .cfa: sp 56 +
+STACK CFI 363a8 .cfa: sp 36 +
+STACK CFI INIT 363ac 158 .cfa: sp 0 + .ra: lr
+STACK CFI 363b2 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 363c2 .cfa: sp 1064 +
+STACK CFI 364e4 .cfa: sp 28 +
+STACK CFI INIT 36504 9c .cfa: sp 0 + .ra: lr
+STACK CFI 36506 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 365a0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 365a4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36640 18 .cfa: sp 0 + .ra: lr
+STACK CFI 36642 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36658 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3665a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3666c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3666e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36684 12 .cfa: sp 0 + .ra: lr
+STACK CFI 36686 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36698 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3669a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 366b0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 366b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 366c4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 366c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 366dc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 366de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 366f0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 366f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36708 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3670a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3671c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3671e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36734 12 .cfa: sp 0 + .ra: lr
+STACK CFI 36736 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36748 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3674a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36760 12 .cfa: sp 0 + .ra: lr
+STACK CFI 36762 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36774 18 .cfa: sp 0 + .ra: lr
+STACK CFI 36776 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3678c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3678e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 367a0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 367a2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 367b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 367ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 367cc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 367ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 367e4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 367e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 367f8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 367fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36810 12 .cfa: sp 0 + .ra: lr
+STACK CFI 36812 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36824 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36826 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36844 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36846 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36864 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36866 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36884 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36886 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 368a4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 368a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 368c4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 368c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 368e4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 368e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36904 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36906 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36924 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36926 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36944 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36946 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 36964 20 .cfa: sp 0 + .ra: lr
+STACK CFI 36966 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ad8 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 36984 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3699c 26 .cfa: sp 0 + .ra: lr
+STACK CFI 3699e .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16f88 28 .cfa: sp 0 + .ra: lr
+STACK CFI 16f8a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 369c2 44 .cfa: sp 0 + .ra: lr
+STACK CFI 369c4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 36a08 98 .cfa: sp 0 + .ra: lr
+STACK CFI 36a0c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 36a16 .cfa: sp 216 +
+STACK CFI 36a94 .cfa: sp 32 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 36aa0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 36aa2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 36aac .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 36ab6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 36ac4 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 36aa0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 36aa2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 36aac .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 36ab6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 36ac4 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 36acc c8 .cfa: sp 0 + .ra: lr
+STACK CFI 36ad0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 36ada .cfa: sp 72 +
+STACK CFI 36b8a .cfa: sp 32 +
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 2127c a0 .cfa: sp 0 + .ra: lr
+STACK CFI 21280 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 2128a .cfa: sp 264 +
+STACK CFI 21314 .cfa: sp 36 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 20 +
+STACK CFI INIT 36b94 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 36b98 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 36ba2 .cfa: sp 264 +
+STACK CFI 36c2c .cfa: sp 36 +
+STACK CFI INIT 36c34 28 .cfa: sp 0 + .ra: lr
+STACK CFI 36c36 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 36c5c 98 .cfa: sp 0 + .ra: lr
+STACK CFI 36c60 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 36c6a .cfa: sp 256 +
+STACK CFI 36cec .cfa: sp 36 +
+STACK CFI INIT 36cf4 308 .cfa: sp 0 + .ra: lr
+STACK CFI 36cf8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 36d02 .cfa: sp 416 +
+STACK CFI 36fb4 .cfa: sp 36 +
+STACK CFI INIT 36ffc 48 .cfa: sp 0 + .ra: lr
+STACK CFI 36ffe .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3700a .cfa: sp 184 +
+STACK CFI 3703e .cfa: sp 20 +
+STACK CFI INIT 37044 74 .cfa: sp 0 + .ra: lr
+STACK CFI 37048 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3704c .cfa: sp 96 +
+STACK CFI 370b0 .cfa: sp 32 +
+STACK CFI INIT 370b8 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 370ba .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 370be .cfa: sp 48 +
+STACK CFI 37172 .cfa: sp 20 +
+STACK CFI INIT 37198 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 3719c .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 371a0 .cfa: sp 56 +
+STACK CFI 37250 .cfa: sp 20 +
+STACK CFI INIT 3726c e8 .cfa: sp 0 + .ra: lr
+STACK CFI 3726e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 37272 .cfa: sp 72 +
+STACK CFI 37338 .cfa: sp 20 +
+STACK CFI INIT 37354 1a0 .cfa: sp 0 + .ra: lr
+STACK CFI 37356 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3735a .cfa: sp 56 +
+STACK CFI 374b6 .cfa: sp 20 +
+STACK CFI INIT 374f4 264 .cfa: sp 0 + .ra: lr
+STACK CFI 374f8 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 374fc .cfa: sp 56 +
+STACK CFI 37700 .cfa: sp 20 +
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI e .cfa: sp 184 +
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 37758 74 .cfa: sp 0 + .ra: lr
+STACK CFI 3775c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 37760 .cfa: sp 96 +
+STACK CFI 377c4 .cfa: sp 32 +
+STACK CFI INIT 377cc 74 .cfa: sp 0 + .ra: lr
+STACK CFI 377d0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 377d4 .cfa: sp 96 +
+STACK CFI 37838 .cfa: sp 32 +
+STACK CFI INIT 37840 148 .cfa: sp 0 + .ra: lr
+STACK CFI 37844 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 37848 .cfa: sp 104 +
+STACK CFI 37964 .cfa: sp 36 +
+STACK CFI INIT 37988 490 .cfa: sp 0 + .ra: lr
+STACK CFI 37990 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 37998 .cfa: sp 160 +
+STACK CFI 37d8c .cfa: sp 36 +
+STACK CFI INIT 37e18 490 .cfa: sp 0 + .ra: lr
+STACK CFI 37e20 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 37e28 .cfa: sp 160 +
+STACK CFI 3821c .cfa: sp 36 +
+STACK CFI INIT 382a8 6c .cfa: sp 0 + .ra: lr
+STACK CFI 382ac .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 382b0 .cfa: sp 96 +
+STACK CFI 3830c .cfa: sp 32 +
+STACK CFI INIT 38314 124 .cfa: sp 0 + .ra: lr
+STACK CFI 38316 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3831a .cfa: sp 64 +
+STACK CFI 38412 .cfa: sp 20 +
+STACK CFI INIT 38438 124 .cfa: sp 0 + .ra: lr
+STACK CFI 3843a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3843e .cfa: sp 64 +
+STACK CFI 38536 .cfa: sp 20 +
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 155d0 300 .cfa: sp 0 + .ra: lr
+STACK CFI 155d4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 15830 .cfa: sp 24 +
+STACK CFI INIT 15dc4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 160b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3855c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3855e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 38574 12 .cfa: sp 0 + .ra: lr
+STACK CFI 38576 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 38588 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3858a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 385a0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 385a2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 385b4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 385b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 385d4 20 .cfa: sp 0 + .ra: lr
+STACK CFI 385d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b40 24 .cfa: sp 0 + .ra: lr
+STACK CFI 16b44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 16c48 78 .cfa: sp 0 + .ra: lr
+STACK CFI 16c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 1705c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 1705e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170ec 54 .cfa: sp 0 + .ra: lr
+STACK CFI 170ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1717c 8c .cfa: sp 0 + .ra: lr
+STACK CFI 1717e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI da .cfa: sp 20 +
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 264 +
+STACK CFI d2 .cfa: sp 36 +
+STACK CFI INIT 385f4 60 .cfa: sp 0 + .ra: lr
+STACK CFI 385f6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 385f8 .cfa: sp 40 +
+STACK CFI 38648 .cfa: sp 16 +
+STACK CFI INIT 38654 60 .cfa: sp 0 + .ra: lr
+STACK CFI 38656 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 38658 .cfa: sp 40 +
+STACK CFI 386a8 .cfa: sp 16 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 19394 84 .cfa: sp 0 + .ra: lr
+STACK CFI 1939a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 158d0 9c .cfa: sp 0 + .ra: lr
+STACK CFI 158d2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 158d4 .cfa: sp 40 +
+STACK CFI 15946 .cfa: sp 20 +
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 386b4 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 ae .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI ac .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 386ba 20 .cfa: sp 0 + .ra: lr
+STACK CFI 386bc .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 386ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI 386d0 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 386da a6 .cfa: sp 0 + .ra: lr
+STACK CFI 386dc .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3877e .cfa: sp 16 +
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 1c .cfa: sp 56 +
+STACK CFI 6a .cfa: sp 36 +
+STACK CFI INIT 0 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 80 +
+STACK CFI e6 .cfa: sp 24 +
+STACK CFI INIT 0 b6 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI b2 .cfa: sp 36 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 38780 1bc .cfa: sp 0 + .ra: lr
+STACK CFI 38784 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 38934 .cfa: sp 32 +
+STACK CFI INIT 3893c 194 .cfa: sp 0 + .ra: lr
+STACK CFI 38940 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 38952 .cfa: sp 80 +
+STACK CFI 38a86 .cfa: sp 24 +
+STACK CFI INIT 38ad0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 194 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 16 .cfa: sp 80 +
+STACK CFI 14a .cfa: sp 24 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38ad4 11c .cfa: sp 0 + .ra: lr
+STACK CFI 38ad8 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 38ae2 .cfa: sp 80 +
+STACK CFI 38bbc .cfa: sp 20 +
+STACK CFI INIT 0 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 14 .cfa: sp 56 +
+STACK CFI 88 .cfa: sp 20 +
+STACK CFI INIT 38bf0 bc .cfa: sp 0 + .ra: lr
+STACK CFI 38bf4 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 38c76 .cfa: sp 0 + .ra: .ra r10: r10 r11: r11 r3: r3 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 38c7c .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 14 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 18 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI e .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 16 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 34 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 38cac e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 9c .cfa: sp 36 +
+STACK CFI a0 .cfa: sp 0 + .ra: .ra r10: r10 r11: r11 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 18 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 1e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2e .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI e .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 16 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 34 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 38cba 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38ccc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 38cd0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 38cec 12 .cfa: sp 0 + .ra: lr
+STACK CFI 38cee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38d00 30 .cfa: sp 0 + .ra: lr
+STACK CFI 38d04 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 38d30 58 .cfa: sp 0 + .ra: lr
+STACK CFI 38d32 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI b6 .cfa: sp 20 +
+STACK CFI INIT 0 168 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI e .cfa: sp 80 +
+STACK CFI 14c .cfa: sp 24 +
+STACK CFI INIT 38d88 32 .cfa: sp 0 + .ra: lr
+STACK CFI 38d8a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 38dbc 190 .cfa: sp 0 + .ra: lr
+STACK CFI 38dc0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 38dc2 .cfa: sp 56 +
+STACK CFI 38f30 .cfa: sp 36 +
+STACK CFI 38f34 .cfa: sp 56 +
+STACK CFI INIT 0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI 30 .cfa: sp 12 +
+STACK CFI INIT 38f4c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f54 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f5c a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f66 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f70 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f74 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f78 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f86 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f8c 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f92 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f94 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f96 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f98 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f9a 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f9c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38f9e 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fa0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fa2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fa4 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fa6 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fa8 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38faa 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fb0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fb2 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fb8 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fbe a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fbe a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 38fbe a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de4 ac .cfa: sp 0 + .ra: lr
+STACK CFI 15de6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15e90 9e .cfa: sp 0 + .ra: lr
+STACK CFI 15e92 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15e94 .cfa: sp 40 +
+STACK CFI 15f2c .cfa: sp 20 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f2e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f3e 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f54 3e .cfa: sp 0 + .ra: lr
+STACK CFI 15f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 1607e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 38fc8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 38fca .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 38ff4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 38ff6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 39020 2c .cfa: sp 0 + .ra: lr
+STACK CFI 39022 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3904c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3904e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 39078 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3907a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 390a4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 390a6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 390d0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 390d2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 390fe 2e .cfa: sp 0 + .ra: lr
+STACK CFI 39100 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 3912c 2e .cfa: sp 0 + .ra: lr
+STACK CFI 3912e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 3915a 2e .cfa: sp 0 + .ra: lr
+STACK CFI 3915c .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 39188 2e .cfa: sp 0 + .ra: lr
+STACK CFI 3918a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 391b6 30 .cfa: sp 0 + .ra: lr
+STACK CFI 391b8 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 391e6 36 .cfa: sp 0 + .ra: lr
+STACK CFI 391ea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 3921c 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3921e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 39238 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 3923e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 39260 2e .cfa: sp 0 + .ra: lr
+STACK CFI 39262 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3928c .cfa: sp 16 +
+STACK CFI INIT 39290 20 .cfa: sp 0 + .ra: lr
+STACK CFI 39292 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 392b0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 392b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 2c90c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2c910 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 392c4 34 .cfa: sp 0 + .ra: lr
+STACK CFI 392ca .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 392f0 .cfa: sp 8 +
+STACK CFI INIT 2c924 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 392f8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 392fa .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3931c .cfa: sp 8 +
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39324 54 .cfa: sp 0 + .ra: lr
+STACK CFI 39326 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39378 24 .cfa: sp 0 + .ra: lr
+STACK CFI 3937a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3939c c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 393a8 24 .cfa: sp 0 + .ra: lr
+STACK CFI 393aa .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 393c2 .cfa: sp 4 +
+STACK CFI INIT 393cc 24 .cfa: sp 0 + .ra: lr
+STACK CFI 393ce .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 393e6 .cfa: sp 4 +
+STACK CFI INIT 393f0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 393f2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 3940a .cfa: sp 4 +
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 1a .cfa: sp 4 +
+STACK CFI INIT 39414 24 .cfa: sp 0 + .ra: lr
+STACK CFI 39416 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 3942e .cfa: sp 4 +
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 1a .cfa: sp 4 +
+STACK CFI INIT 39438 24 .cfa: sp 0 + .ra: lr
+STACK CFI 3943a .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 39452 .cfa: sp 4 +
+STACK CFI INIT 3945c 24 .cfa: sp 0 + .ra: lr
+STACK CFI 3945e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3947e .cfa: sp 8 +
+STACK CFI INIT 39480 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39482 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3949c a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 394a6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 394ae 1c .cfa: sp 0 + .ra: lr
+STACK CFI 394b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 36 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 1c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 20 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 394cc 34 .cfa: sp 0 + .ra: lr
+STACK CFI 394d0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39500 34 .cfa: sp 0 + .ra: lr
+STACK CFI 39504 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39534 34 .cfa: sp 0 + .ra: lr
+STACK CFI 39536 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 39568 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39578 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3957a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 39590 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 395b0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 395d0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 395d2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 395f6 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39610 30 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39640 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 39642 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 396f0 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 396f6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39738 90 .cfa: sp 0 + .ra: lr
+STACK CFI 3973a .cfa: sp 12 + r1: .cfa -12 + ^ r2: .cfa -8 + ^ r3: .cfa -4 + ^
+STACK CFI 3973c .cfa: sp 40 + .ra: .cfa -16 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^
+STACK CFI 397a8 .cfa: sp 28 +
+STACK CFI 397ac .cfa: sp 12 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 397ae .cfa: sp 0 + r1: r1 r2: r2 r3: r3
+STACK CFI INIT 397c8 30 .cfa: sp 0 + .ra: lr
+STACK CFI 397cc .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 397e0 .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI INIT 397f8 3c .cfa: sp 0 + .ra: lr
+STACK CFI 397fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3981c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 39834 30 .cfa: sp 0 + .ra: lr
+STACK CFI 39838 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 3984c .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI INIT 39864 68 .cfa: sp 0 + .ra: lr
+STACK CFI 39866 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 398a6 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 398ae .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 398cc 3a .cfa: sp 0 + .ra: lr
+STACK CFI 398ce .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 39908 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3990a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39934 12 .cfa: sp 0 + .ra: lr
+STACK CFI 39936 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39946 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39962 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3996a c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39976 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3997c 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39982 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39988 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3998e 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39994 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3999a 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 399aa 1a .cfa: sp 0 + .ra: lr
+STACK CFI 399ac .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 399c4 54 .cfa: sp 0 + .ra: lr
+STACK CFI 399c6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 39a02 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 39a06 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39a18 f0 .cfa: sp 0 + .ra: lr
+STACK CFI 39a1c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 39a24 .cfa: sp 56 +
+STACK CFI 39ae4 .cfa: sp 36 +
+STACK CFI 39ae8 .cfa: sp 0 + .ra: .ra r10: r10 r11: r11 r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b08 26 .cfa: sp 0 + .ra: lr
+STACK CFI 39b0a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b32 26 .cfa: sp 0 + .ra: lr
+STACK CFI 39b34 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 39b58 74 .cfa: sp 0 + .ra: lr
+STACK CFI 39b5a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 39bb2 .cfa: sp 8 +
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39bcc 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39bd0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39be8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39bea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39be8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39bea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39c04 20 .cfa: sp 0 + .ra: lr
+STACK CFI 39c06 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39c24 24 .cfa: sp 0 + .ra: lr
+STACK CFI 39c26 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39c48 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39c58 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39c5a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 39c6c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 39c70 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39c74 10 .cfa: sp 0 + .ra: lr
+STACK CFI 39c76 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39c84 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39c94 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39c9a 2a .cfa: sp 0 + .ra: lr
+STACK CFI 39c9c .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39cd8 2a .cfa: sp 0 + .ra: lr
+STACK CFI 39cda .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39c24 24 .cfa: sp 0 + .ra: lr
+STACK CFI 39c26 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 39d04 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39d14 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39d24 18 .cfa: sp 0 + .ra: lr
+STACK CFI 39d26 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 39d3c 98 .cfa: sp 0 + .ra: lr
+STACK CFI 39d40 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 39dd4 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39de4 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39df4 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39e04 c .cfa: sp 0 + .ra: lr
+STACK CFI 39e06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e10 18 .cfa: sp 0 + .ra: lr
+STACK CFI 39e12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b64 12 .cfa: sp 0 + .ra: lr
+STACK CFI 16b66 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e28 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39e2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e44 1c .cfa: sp 0 + .ra: lr
+STACK CFI 39e46 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e60 12 .cfa: sp 0 + .ra: lr
+STACK CFI 39e62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e72 2e .cfa: sp 0 + .ra: lr
+STACK CFI 39e74 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 39e9e .cfa: sp 16 +
+STACK CFI INIT 39ea0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 39ea2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16cc0 66 .cfa: sp 0 + .ra: lr
+STACK CFI 16cc2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39ec8 30 .cfa: sp 0 + .ra: lr
+STACK CFI 39eca .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 39ef8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 39efa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39f0a 84 .cfa: sp 0 + .ra: lr
+STACK CFI 39f0e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 39f8a .cfa: sp 24 +
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 39f90 3c .cfa: sp 0 + .ra: lr
+STACK CFI 39f92 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 39fc2 .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI 39fc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 62 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 39f0a 84 .cfa: sp 0 + .ra: lr
+STACK CFI 39f0e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 39f8a .cfa: sp 24 +
+STACK CFI INIT 176da 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 19212 30 .cfa: sp 0 + .ra: lr
+STACK CFI 19214 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 19242 5e .cfa: sp 0 + .ra: lr
+STACK CFI 19244 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI cc .cfa: sp 24 +
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 39fcc 16 .cfa: sp 0 + .ra: lr
+STACK CFI 39fd0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39fe2 1e .cfa: sp 0 + .ra: lr
+STACK CFI 39fe4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3a000 38 .cfa: sp 0 + .ra: lr
+STACK CFI 3a002 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3a038 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a03a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3a05c 14c .cfa: sp 0 + .ra: lr
+STACK CFI 3a060 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 179ec 1a .cfa: sp 0 + .ra: lr
+STACK CFI 179ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 17a02 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 3a1a8 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3a1b2 ac .cfa: sp 0 + .ra: lr
+STACK CFI 3a1b6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 3a25e 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a260 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3a280 30 .cfa: sp 0 + .ra: lr
+STACK CFI 3a284 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3a2ac .cfa: sp 24 +
+STACK CFI INIT 3a2b0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3a2b2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3a2c2 .cfa: sp 8 +
+STACK CFI INIT 3a2c8 50 .cfa: sp 0 + .ra: lr
+STACK CFI 3a2ca .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3a30a .cfa: sp 8 +
+STACK CFI INIT 3a318 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3a31a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3a32a .cfa: sp 8 +
+STACK CFI INIT 3a330 88 .cfa: sp 0 + .ra: lr
+STACK CFI 3a334 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3a3a8 .cfa: sp 32 +
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3a3b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3a3ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3a3cc 64 .cfa: sp 0 + .ra: lr
+STACK CFI 3a3ce .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3a3d8 .cfa: sp 80 +
+STACK CFI 3a422 .cfa: sp 20 +
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3a430 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a432 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3a452 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3a454 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3a47c .cfa: sp 12 +
+STACK CFI INIT 3a480 34 .cfa: sp 0 + .ra: lr
+STACK CFI 3a482 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3a4b4 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3a4b6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3a4ee .cfa: sp 12 +
+STACK CFI INIT 16dec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16dee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3a4f8 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3a4fa .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3a53a .cfa: sp 16 +
+STACK CFI INIT 3a53c 80 .cfa: sp 0 + .ra: lr
+STACK CFI 3a540 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3a54a .cfa: sp 64 +
+STACK CFI 3a5b0 .cfa: sp 32 +
+STACK CFI INIT 3a5bc e .cfa: sp 0 + .ra: lr
+STACK CFI 3a5be .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI e .cfa: sp 56 +
+STACK CFI 70 .cfa: sp 24 +
+STACK CFI INIT 0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 88 .cfa: sp 20 +
+STACK CFI INIT 3a5ca 2e .cfa: sp 0 + .ra: lr
+STACK CFI 3a5cc .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3a5f6 .cfa: sp 16 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 68 .cfa: sp 16 +
+STACK CFI INIT 3a5f8 160 .cfa: sp 0 + .ra: lr
+STACK CFI 3a5fc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3a600 .cfa: sp 56 +
+STACK CFI 3a70c .cfa: sp 36 +
+STACK CFI INIT 3a758 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 3a75c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3a772 .cfa: sp 72 +
+STACK CFI 3a810 .cfa: sp 36 +
+STACK CFI INIT 0 3a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 386b4 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17044 16 .cfa: sp 0 + .ra: lr
+STACK CFI 17046 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 17056 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 17140 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17148 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 17156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 17166 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17172 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 17208 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17210 80 .cfa: sp 0 + .ra: lr
+STACK CFI 17212 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 17290 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 17298 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172a8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172b4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 172b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 172c6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 172ce c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI e .cfa: sp 184 +
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 1739c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173a4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 173ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173ca 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173d2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 8e .cfa: sp 20 +
+STACK CFI INIT 3a828 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 3a82a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3a82e .cfa: sp 208 +
+STACK CFI 3a8c2 .cfa: sp 20 +
+STACK CFI INIT 0 ae .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI ac .cfa: sp 20 +
+STACK CFI INIT 3a8cc e8 .cfa: sp 0 + .ra: lr
+STACK CFI 3a8ce .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3a982 .cfa: sp 20 +
+STACK CFI INIT 3a9b4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 3a9b6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 16 +
+STACK CFI INIT 3a9d0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 3a9d2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3aa1a .cfa: sp 16 +
+STACK CFI INIT 3aa2c 30 .cfa: sp 0 + .ra: lr
+STACK CFI 3aa2e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3aa5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3aa5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3aa70 38 .cfa: sp 0 + .ra: lr
+STACK CFI 3aa72 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3aaa0 .cfa: sp 16 +
+STACK CFI INIT 0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI e .cfa: sp 208 +
+STACK CFI 68 .cfa: sp 24 +
+STACK CFI INIT 3aaa8 50 .cfa: sp 0 + .ra: lr
+STACK CFI 3aaaa .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3aaf2 .cfa: sp 16 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 17a84 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17a86 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17aae .cfa: sp 16 +
+STACK CFI INIT 3aaf8 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 3aafa .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3aafc .cfa: sp 48 +
+STACK CFI 3ab90 .cfa: sp 16 +
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 48 +
+STACK CFI 98 .cfa: sp 16 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI e2 .cfa: sp 24 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI 24 .cfa: sp 20 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI 24 .cfa: sp 20 +
+STACK CFI INIT 0 130 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 88 +
+STACK CFI f6 .cfa: sp 28 +
+STACK CFI INIT 3aba8 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 3abac .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3ac3a .cfa: sp 24 +
+STACK CFI INIT 17522 90 .cfa: sp 0 + .ra: lr
+STACK CFI 17524 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17526 .cfa: sp 80 +
+STACK CFI 175b0 .cfa: sp 20 +
+STACK CFI INIT 3ac58 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3ac5c 64 .cfa: sp 0 + .ra: lr
+STACK CFI 3ac5e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3acae .cfa: sp 20 +
+STACK CFI INIT 3acc0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 3acc4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3ad10 .cfa: sp 20 +
+STACK CFI INIT 3ad24 1e .cfa: sp 0 + .ra: lr
+STACK CFI 3ad26 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3ad40 .cfa: sp 12 +
+STACK CFI INIT 3ad42 16 .cfa: sp 0 + .ra: lr
+STACK CFI 3ad44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3ad54 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1c .cfa: sp 16 +
+STACK CFI INIT 0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 20 .cfa: sp 12 +
+STACK CFI INIT 0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 20 .cfa: sp 12 +
+STACK CFI INIT 3ad58 64 .cfa: sp 0 + .ra: lr
+STACK CFI 3ad5a .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3ada8 .cfa: sp 20 +
+STACK CFI INIT 3adbc 24 .cfa: sp 0 + .ra: lr
+STACK CFI 3adbe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3ade0 68 .cfa: sp 0 + .ra: lr
+STACK CFI 3ade2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3ae46 .cfa: sp 20 +
+STACK CFI INIT 3ae48 68 .cfa: sp 0 + .ra: lr
+STACK CFI 3ae4c .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3aea6 .cfa: sp 24 +
+STACK CFI INIT 3aeb0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 3aeb2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3aee0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 3aee2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3af2a .cfa: sp 20 +
+STACK CFI INIT 3af3c 24 .cfa: sp 0 + .ra: lr
+STACK CFI 3af3e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3af60 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3af62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3af74 1c .cfa: sp 0 + .ra: lr
+STACK CFI 3af76 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3af90 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3af92 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3afa2 60 .cfa: sp 0 + .ra: lr
+STACK CFI 3afa4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3b000 .cfa: sp 16 +
+STACK CFI INIT 3b002 48 .cfa: sp 0 + .ra: lr
+STACK CFI 3b004 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3b04a 16 .cfa: sp 0 + .ra: lr
+STACK CFI 3b04c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3b05a .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 3b05e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3b060 58 .cfa: sp 0 + .ra: lr
+STACK CFI 3b062 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3b0b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3b0ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3b0cc 80 .cfa: sp 0 + .ra: lr
+STACK CFI 3b0ce .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3b0d2 .cfa: sp 208 +
+STACK CFI 3b142 .cfa: sp 20 +
+STACK CFI INIT 3b14c 6c .cfa: sp 0 + .ra: lr
+STACK CFI 3b14e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3b15a .cfa: sp 184 +
+STACK CFI 3b1b2 .cfa: sp 20 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 3b1b8 118 .cfa: sp 0 + .ra: lr
+STACK CFI 3b1bc .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3b2b4 .cfa: sp 32 +
+STACK CFI INIT 3b2d0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 3b2d2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3b300 .cfa: sp 12 +
+STACK CFI INIT 3b304 150 .cfa: sp 0 + .ra: lr
+STACK CFI 3b308 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3b41a .cfa: sp 32 +
+STACK CFI INIT 3b454 58 .cfa: sp 0 + .ra: lr
+STACK CFI 3b456 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3b4ac 96 .cfa: sp 0 + .ra: lr
+STACK CFI 3b4ae .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3b4b0 .cfa: sp 80 +
+STACK CFI 3b540 .cfa: sp 20 +
+STACK CFI INIT 0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2c .cfa: sp 16 +
+STACK CFI INIT 0 16c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 72 +
+STACK CFI 144 .cfa: sp 28 +
+STACK CFI INIT 3b548 74 .cfa: sp 0 + .ra: lr
+STACK CFI 3b54c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3b558 .cfa: sp 184 +
+STACK CFI 3b5a6 .cfa: sp 24 +
+STACK CFI INIT 3b5c0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 3b5c4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3b642 .cfa: sp 28 +
+STACK CFI INIT 386ba 20 .cfa: sp 0 + .ra: lr
+STACK CFI 386bc .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 386ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI 386d0 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 386da a6 .cfa: sp 0 + .ra: lr
+STACK CFI 386dc .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3877e .cfa: sp 16 +
+STACK CFI INIT 0 b6 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI b2 .cfa: sp 36 +
+STACK CFI INIT 3b654 bc .cfa: sp 0 + .ra: lr
+STACK CFI 3b656 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3b6ec .cfa: sp 20 +
+STACK CFI INIT 3b710 154 .cfa: sp 0 + .ra: lr
+STACK CFI 3b714 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3b71a .cfa: sp 72 +
+STACK CFI 3b838 .cfa: sp 24 +
+STACK CFI INIT 3b864 5c .cfa: sp 0 + .ra: lr
+STACK CFI 3b868 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3b874 .cfa: sp 64 +
+STACK CFI 3b8b8 .cfa: sp 28 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 24 .cfa: sp 8 +
+STACK CFI INIT 17ae8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 17aea .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 17b12 .cfa: sp 16 +
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 104 +
+STACK CFI b4 .cfa: sp 24 +
+STACK CFI INIT 0 19c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 8 .cfa: sp 40 + s16: .cfa -40 + ^ s17: .cfa -36 + ^
+STACK CFI a .cfa: sp 416 +
+STACK CFI 17c .cfa: sp 40 +
+STACK CFI 180 .cfa: sp 32 + s16: s16 s17: s17
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 12 +
+STACK CFI INIT 0 1f8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 440 +
+STACK CFI 1d2 .cfa: sp 36 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 1c .cfa: sp 16 +
+STACK CFI INIT 0 194 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 64 +
+STACK CFI 15e .cfa: sp 36 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1c .cfa: sp 16 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 1c .cfa: sp 16 +
+STACK CFI INIT 0 224 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 88 +
+STACK CFI 1e2 .cfa: sp 36 +
+STACK CFI INIT 3b8c0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 3b8c6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3b8ce .cfa: sp 80 +
+STACK CFI 3b978 .cfa: sp 24 +
+STACK CFI INIT 3b994 138 .cfa: sp 0 + .ra: lr
+STACK CFI 3b998 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3b9a2 .cfa: sp 96 +
+STACK CFI 3baa6 .cfa: sp 36 +
+STACK CFI INIT 3bacc f0 .cfa: sp 0 + .ra: lr
+STACK CFI 3bad0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3bada .cfa: sp 120 +
+STACK CFI 3bba4 .cfa: sp 36 +
+STACK CFI INIT 3bbbc 58 .cfa: sp 0 + .ra: lr
+STACK CFI 3bbc0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3bbc4 .cfa: sp 56 +
+STACK CFI 3bc0a .cfa: sp 24 +
+STACK CFI INIT 3bc14 270 .cfa: sp 0 + .ra: lr
+STACK CFI 3bc18 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3bc22 .cfa: sp 72 +
+STACK CFI 3be24 .cfa: sp 28 +
+STACK CFI INIT 3be84 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3be90 dc .cfa: sp 0 + .ra: lr
+STACK CFI 3be94 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3bf40 .cfa: sp 24 +
+STACK CFI INIT 3bf6c 84 .cfa: sp 0 + .ra: lr
+STACK CFI 3bf6e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3bfda .cfa: sp 20 +
+STACK CFI INIT 3bff0 c .cfa: sp 0 + .ra: lr
+STACK CFI 3bff2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 3bffc 1d4 .cfa: sp 0 + .ra: lr
+STACK CFI 3c000 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3c00a .cfa: sp 184 +
+STACK CFI 3c1a2 .cfa: sp 36 +
+STACK CFI INIT 3c1d0 e .cfa: sp 0 + .ra: lr
+STACK CFI 3c1d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 203f0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 203f2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3c1de 42 .cfa: sp 0 + .ra: lr
+STACK CFI 3c1e2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 3c220 28 .cfa: sp 0 + .ra: lr
+STACK CFI 3c222 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 25018 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2501e .cfa: sp 16 +
+STACK CFI 25038 .cfa: sp 0 +
+STACK CFI INIT 25054 1c .cfa: sp 0 + .ra: lr
+STACK CFI 25056 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3c248 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3c24c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3c268 56 .cfa: sp 0 + .ra: lr
+STACK CFI 3c26c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3c2bc .cfa: sp 16 +
+STACK CFI INIT 3c2be 26 .cfa: sp 0 + .ra: lr
+STACK CFI 3c2c0 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 3c2e4 a8 .cfa: sp 0 + .ra: lr
+STACK CFI 3c2e8 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 3c38c 10c .cfa: sp 0 + .ra: lr
+STACK CFI 3c390 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3c39a .cfa: sp 88 +
+STACK CFI 3c46a .cfa: sp 36 +
+STACK CFI INIT 3c498 ac .cfa: sp 0 + .ra: lr
+STACK CFI 3c49c .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3c532 .cfa: sp 28 +
+STACK CFI 3c536 .cfa: sp 40 +
+STACK CFI INIT 3c544 28 .cfa: sp 0 + .ra: lr
+STACK CFI 3c546 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3c56a .cfa: sp 8 +
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 12 .cfa: sp 4 +
+STACK CFI INIT 3c56c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 3c56e .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 3c580 .cfa: sp 4 +
+STACK CFI INIT 3c584 2a .cfa: sp 0 + .ra: lr
+STACK CFI 3c586 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3c5a8 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 3c5ac .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3c5b0 1c8 .cfa: sp 0 + .ra: lr
+STACK CFI 3c5b4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3c5ba .cfa: sp 48 +
+STACK CFI 3c734 .cfa: sp 28 +
+STACK CFI INIT 3c778 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3c77a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3c7a4 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3c7a6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3c7e8 194 .cfa: sp 0 + .ra: lr
+STACK CFI 3c7ee .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3c7f6 .cfa: sp 208 +
+STACK CFI 3c966 .cfa: sp 36 +
+STACK CFI INIT 3c97c a .cfa: sp 0 + .ra: lr
+STACK CFI 3c97e .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 22 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3c986 46 .cfa: sp 0 + .ra: lr
+STACK CFI 3c988 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3c98a .cfa: sp 32 +
+STACK CFI 3c9c6 .cfa: sp 12 +
+STACK CFI 3c9ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI INIT 3c9cc 1c .cfa: sp 0 + .ra: lr
+STACK CFI 3c9ce .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 3c9e4 .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI INIT 3c9e8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 3c9ea .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 3ca00 .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI INIT 3c986 46 .cfa: sp 0 + .ra: lr
+STACK CFI 3c988 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3c98a .cfa: sp 32 +
+STACK CFI 3c9c6 .cfa: sp 12 +
+STACK CFI 3c9ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI INIT 3ca04 88 .cfa: sp 0 + .ra: lr
+STACK CFI 3ca08 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 64 +
+STACK CFI 50 .cfa: sp 24 +
+STACK CFI INIT 3ca8c 10 .cfa: sp 0 + .ra: lr
+STACK CFI 3ca8e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3ca9c 2a .cfa: sp 0 + .ra: lr
+STACK CFI 3ca9e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3cac0 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 3cac4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 3cac8 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 3cacc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3cad0 .cfa: sp 88 +
+STACK CFI 3cb50 .cfa: sp 28 +
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 16 .cfa: sp 4 +
+STACK CFI INIT 3cb68 2c .cfa: sp 0 + .ra: lr
+STACK CFI 3cb6a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3cb92 .cfa: sp 8 +
+STACK CFI INIT 3cb94 20 .cfa: sp 0 + .ra: lr
+STACK CFI 3cb96 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3cbb2 .cfa: sp 12 +
+STACK CFI INIT 3cbb4 34 .cfa: sp 0 + .ra: lr
+STACK CFI 3cbb6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3cbe0 .cfa: sp 8 +
+STACK CFI INIT 3cbe8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3cbea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3cbfc 19c .cfa: sp 0 + .ra: lr
+STACK CFI 3cbfe .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3cd72 .cfa: sp 20 +
+STACK CFI INIT 3cd98 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3cd9a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3179c 2e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8a .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 86 .cfa: sp 24 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 3cdac 98 .cfa: sp 0 + .ra: lr
+STACK CFI 3cdb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3cdba .cfa: sp 88 +
+STACK CFI 3ce36 .cfa: sp 28 +
+STACK CFI INIT 18134 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 18138 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 181d4 .cfa: sp 24 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 3ce44 130 .cfa: sp 0 + .ra: lr
+STACK CFI 3ce48 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3ce5c .cfa: sp 152 +
+STACK CFI 3cf5a .cfa: sp 36 +
+STACK CFI INIT 3cf74 148 .cfa: sp 0 + .ra: lr
+STACK CFI 3cf7a .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3cf82 .cfa: sp 128 +
+STACK CFI 3d0a4 .cfa: sp 36 +
+STACK CFI INIT 3d0bc 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3d0be .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3d0ca .cfa: sp 56 +
+STACK CFI 3d0f6 .cfa: sp 20 +
+STACK CFI INIT 3d100 44 .cfa: sp 0 + .ra: lr
+STACK CFI 3d102 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3d10c .cfa: sp 48 +
+STACK CFI 3d13a .cfa: sp 16 +
+STACK CFI INIT 3d144 78 .cfa: sp 0 + .ra: lr
+STACK CFI 3d146 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3d14a .cfa: sp 80 +
+STACK CFI 3d1a8 .cfa: sp 20 +
+STACK CFI INIT 3d1bc 58 .cfa: sp 0 + .ra: lr
+STACK CFI 3d1be .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3d1c8 .cfa: sp 88 +
+STACK CFI 3d208 .cfa: sp 20 +
+STACK CFI INIT 3d214 180 .cfa: sp 0 + .ra: lr
+STACK CFI 3d218 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3d21c .cfa: sp 120 +
+STACK CFI 3d36e .cfa: sp 32 +
+STACK CFI INIT 3d394 3c .cfa: sp 0 + .ra: lr
+STACK CFI 3d396 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3d3ca .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 3d3ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3d3d0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 3d3d4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3d3d8 .cfa: sp 80 +
+STACK CFI 3d434 .cfa: sp 24 +
+STACK CFI INIT 3d440 78 .cfa: sp 0 + .ra: lr
+STACK CFI 3d444 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3d450 .cfa: sp 104 +
+STACK CFI 3d4ae .cfa: sp 36 +
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 56 +
+STACK CFI 78 .cfa: sp 20 +
+STACK CFI INIT 0 194 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 96 +
+STACK CFI 160 .cfa: sp 36 +
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI c .cfa: sp 72 +
+STACK CFI 4c .cfa: sp 20 +
+STACK CFI INIT 3d4b8 224 .cfa: sp 0 + .ra: lr
+STACK CFI 3d4bc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3d4be .cfa: sp 48 +
+STACK CFI 3d676 .cfa: sp 28 +
+STACK CFI INIT 3d6dc a8 .cfa: sp 0 + .ra: lr
+STACK CFI 3d6de .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3d6e0 .cfa: sp 40 +
+STACK CFI 3d76c .cfa: sp 16 +
+STACK CFI INIT 3d784 104 .cfa: sp 0 + .ra: lr
+STACK CFI 3d788 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3d78e .cfa: sp 64 +
+STACK CFI 3d878 .cfa: sp 32 +
+STACK CFI INIT 3d888 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 3d88c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3d892 .cfa: sp 48 +
+STACK CFI 3d946 .cfa: sp 28 +
+STACK CFI INIT 3d95c 2d4 .cfa: sp 0 + .ra: lr
+STACK CFI 3d960 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3d964 .cfa: sp 88 +
+STACK CFI 3dbe0 .cfa: sp 36 +
+STACK CFI INIT 3dc30 60 .cfa: sp 0 + .ra: lr
+STACK CFI 3dc34 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3dc40 .cfa: sp 80 +
+STACK CFI 3dc82 .cfa: sp 24 +
+STACK CFI INIT 3dc90 60 .cfa: sp 0 + .ra: lr
+STACK CFI 3dc94 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3dca0 .cfa: sp 80 +
+STACK CFI 3dce2 .cfa: sp 24 +
+STACK CFI INIT 3dcf0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 3dcf4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3dd02 .cfa: sp 96 +
+STACK CFI 3dd4e .cfa: sp 28 +
+STACK CFI INIT 3dd5c 9c .cfa: sp 0 + .ra: lr
+STACK CFI 3dd5e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3dd62 .cfa: sp 48 +
+STACK CFI 3ddd6 .cfa: sp 16 +
+STACK CFI INIT 3ddf8 150 .cfa: sp 0 + .ra: lr
+STACK CFI 3ddfc .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3de06 .cfa: sp 80 +
+STACK CFI 3def8 .cfa: sp 20 +
+STACK CFI INIT 3df48 1a4 .cfa: sp 0 + .ra: lr
+STACK CFI 3df4c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3df50 .cfa: sp 496 +
+STACK CFI 3e0d4 .cfa: sp 36 +
+STACK CFI INIT 3e0ec a4 .cfa: sp 0 + .ra: lr
+STACK CFI 3e0f0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3e0f4 .cfa: sp 112 +
+STACK CFI 3e17e .cfa: sp 32 +
+STACK CFI INIT 3e190 26 .cfa: sp 0 + .ra: lr
+STACK CFI 3e192 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3e1b8 48 .cfa: sp 0 + .ra: lr
+STACK CFI 3e1ba .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 3e1f8 .cfa: sp 20 +
+STACK CFI INIT 3e200 1a .cfa: sp 0 + .ra: lr
+STACK CFI 3e202 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3e21c 2b8 .cfa: sp 0 + .ra: lr
+STACK CFI 3e222 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3e22e .cfa: sp 96 +
+STACK CFI 3e42c .cfa: sp 36 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 80 +
+STACK CFI ee .cfa: sp 20 +
+STACK CFI INIT 0 80 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 10 .cfa: sp 224 +
+STACK CFI 78 .cfa: sp 36 +
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 1e .cfa: sp 8 +
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI 38 .cfa: sp 16 +
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 6 .cfa: sp 64 +
+STACK CFI 11e .cfa: sp 32 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI 24 .cfa: sp 20 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI 24 .cfa: sp 20 +
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI 38 .cfa: sp 16 +
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 16 +
+STACK CFI INIT 0 2b8 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 12 .cfa: sp 96 +
+STACK CFI 210 .cfa: sp 36 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3e4d4 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 3e4da .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3e4e4 .cfa: sp 248 +
+STACK CFI 3e5b0 .cfa: sp 36 +
+STACK CFI INIT 3e5cc 348 .cfa: sp 0 + .ra: lr
+STACK CFI 3e5d0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3e5e0 .cfa: sp 208 +
+STACK CFI 3e8c4 .cfa: sp 36 +
+STACK CFI INIT 3e914 228 .cfa: sp 0 + .ra: lr
+STACK CFI 3e918 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3e928 .cfa: sp 128 +
+STACK CFI 3eb04 .cfa: sp 36 +
+STACK CFI INIT 3eb3c 2c0 .cfa: sp 0 + .ra: lr
+STACK CFI 3eb40 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3eb50 .cfa: sp 128 +
+STACK CFI 3edb0 .cfa: sp 36 +
+STACK CFI INIT 3edfc c8 .cfa: sp 0 + .ra: lr
+STACK CFI 3ee00 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3ee0a .cfa: sp 264 +
+STACK CFI 3eeb0 .cfa: sp 28 +
+STACK CFI INIT 18f74 96 .cfa: sp 0 + .ra: lr
+STACK CFI 18f76 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 18f78 .cfa: sp 80 +
+STACK CFI 19008 .cfa: sp 20 +
+STACK CFI INIT 3eec4 2e .cfa: sp 0 + .ra: lr
+STACK CFI 3eec6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3eef0 .cfa: sp 16 +
+STACK CFI INIT 3eef4 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 3eef6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3ef04 .cfa: sp 56 +
+STACK CFI 3ef88 .cfa: sp 16 +
+STACK CFI INIT 3efa8 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 3efac .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3efba .cfa: sp 96 +
+STACK CFI 3f122 .cfa: sp 32 +
+STACK CFI INIT 3f184 ac .cfa: sp 0 + .ra: lr
+STACK CFI 3f18a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 3f192 .cfa: sp 88 +
+STACK CFI 3f20e .cfa: sp 24 +
+STACK CFI INIT 3f230 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 3f234 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3f238 .cfa: sp 200 +
+STACK CFI 3f2ec .cfa: sp 36 +
+STACK CFI INIT 3f308 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 3f30c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3f310 .cfa: sp 200 +
+STACK CFI 3f3c4 .cfa: sp 36 +
+STACK CFI INIT 3f3e0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 3f3e4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3f3e8 .cfa: sp 200 +
+STACK CFI 3f49e .cfa: sp 36 +
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI e .cfa: sp 184 +
+STACK CFI 44 .cfa: sp 20 +
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI ba .cfa: sp 24 +
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI ba .cfa: sp 24 +
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI ba .cfa: sp 24 +
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI ba .cfa: sp 24 +
+STACK CFI INIT 0 d4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI ba .cfa: sp 24 +
+STACK CFI INIT 3f4bc f0 .cfa: sp 0 + .ra: lr
+STACK CFI 3f4c0 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3f5a4 .cfa: sp 28 +
+STACK CFI INIT 3f5b0 48e .cfa: sp 0 + .ra: lr
+STACK CFI 3f5b4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3f5ba .cfa: sp 120 +
+STACK CFI 3fa3a .cfa: sp 36 +
+STACK CFI INIT 38d88 32 .cfa: sp 0 + .ra: lr
+STACK CFI 38d8a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 16c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 56 +
+STACK CFI 150 .cfa: sp 36 +
+STACK CFI 154 .cfa: sp 56 +
+STACK CFI INIT 3fa40 32 .cfa: sp 0 + .ra: lr
+STACK CFI 3fa42 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3fa48 .cfa: sp 32 +
+STACK CFI 3fa70 .cfa: sp 12 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3fa72 30 .cfa: sp 0 + .ra: lr
+STACK CFI 3fa74 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3fa98 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 174 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 56 +
+STACK CFI 158 .cfa: sp 36 +
+STACK CFI 15c .cfa: sp 56 +
+STACK CFI INIT 0 17c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 160 +
+STACK CFI 16e .cfa: sp 36 +
+STACK CFI INIT 0 8c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI c .cfa: sp 56 +
+STACK CFI 78 .cfa: sp 20 +
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI e .cfa: sp 80 +
+STACK CFI 48 .cfa: sp 24 +
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 12 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 0 6c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 88 +
+STACK CFI 64 .cfa: sp 24 +
+STACK CFI INIT 3faa4 194 .cfa: sp 0 + .ra: lr
+STACK CFI 3faa8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3fab6 .cfa: sp 56 +
+STACK CFI 3fc24 .cfa: sp 36 +
+STACK CFI 3fc28 .cfa: sp 56 +
+STACK CFI INIT 3fc38 58 .cfa: sp 0 + .ra: lr
+STACK CFI 3fc3a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 3fc3e .cfa: sp 32 +
+STACK CFI 3fc8e .cfa: sp 12 +
+STACK CFI INIT 3fc90 68 .cfa: sp 0 + .ra: lr
+STACK CFI 3fc94 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 3fca4 .cfa: sp 96 +
+STACK CFI 3fcf0 .cfa: sp 28 +
+STACK CFI INIT 3fcf8 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 3fcfc .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3fda8 .cfa: sp 32 +
+STACK CFI INIT 3fdac 120 .cfa: sp 0 + .ra: lr
+STACK CFI 3fdb0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3fdb4 .cfa: sp 160 +
+STACK CFI 3fec0 .cfa: sp 36 +
+STACK CFI INIT 3fecc 110 .cfa: sp 0 + .ra: lr
+STACK CFI 3fed0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 3fedc .cfa: sp 136 +
+STACK CFI 3ffc4 .cfa: sp 36 +
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 3ffdc 6e .cfa: sp 0 + .ra: lr
+STACK CFI 3ffe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 4004a 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4004e .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 400be .cfa: sp 24 +
+STACK CFI INIT 400c2 174 .cfa: sp 0 + .ra: lr
+STACK CFI 400c6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 400ce .cfa: sp 56 +
+STACK CFI 40232 .cfa: sp 36 +
+STACK CFI INIT 40238 8c .cfa: sp 0 + .ra: lr
+STACK CFI 4023e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4024e .cfa: sp 72 +
+STACK CFI 402bc .cfa: sp 24 +
+STACK CFI INIT 402c4 104 .cfa: sp 0 + .ra: lr
+STACK CFI 402c8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 402d0 .cfa: sp 128 +
+STACK CFI 403be .cfa: sp 36 +
+STACK CFI INIT 403c8 36c .cfa: sp 0 + .ra: lr
+STACK CFI 403cc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 403da .cfa: sp 296 +
+STACK CFI 4070a .cfa: sp 36 +
+STACK CFI INIT 40734 36 .cfa: sp 0 + .ra: lr
+STACK CFI 40736 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4076a 5a .cfa: sp 0 + .ra: lr
+STACK CFI 4076e .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 407c4 14c .cfa: sp 0 + .ra: lr
+STACK CFI 407c8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 407ca .cfa: sp 56 +
+STACK CFI 408f8 .cfa: sp 36 +
+STACK CFI 408fc .cfa: sp 56 +
+STACK CFI INIT 40910 84 .cfa: sp 0 + .ra: lr
+STACK CFI 40916 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 40920 .cfa: sp 64 +
+STACK CFI 4098c .cfa: sp 24 +
+STACK CFI INIT 40994 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 40998 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 409aa .cfa: sp 72 +
+STACK CFI 40a50 .cfa: sp 32 +
+STACK CFI INIT 40a58 180 .cfa: sp 0 + .ra: lr
+STACK CFI 40a5c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 40a66 .cfa: sp 88 +
+STACK CFI 40bb2 .cfa: sp 32 +
+STACK CFI INIT 40bd8 78 .cfa: sp 0 + .ra: lr
+STACK CFI 40bdc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 40be0 .cfa: sp 104 +
+STACK CFI 40c48 .cfa: sp 32 +
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 104 +
+STACK CFI 70 .cfa: sp 28 +
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 8 .cfa: sp 104 +
+STACK CFI 70 .cfa: sp 32 +
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI c .cfa: sp 96 +
+STACK CFI 74 .cfa: sp 32 +
+STACK CFI INIT 40c50 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 40c56 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 40c64 .cfa: sp 64 +
+STACK CFI 40cf0 .cfa: sp 28 +
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 14 .cfa: sp 64 +
+STACK CFI a0 .cfa: sp 28 +
+STACK CFI INIT 192a0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 192a2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 19304 90 .cfa: sp 0 + .ra: lr
+STACK CFI 19308 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1596c 1e0 .cfa: sp 0 + .ra: lr
+STACK CFI 15970 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 15abe .cfa: sp 24 +
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2c924 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 40d04 e .cfa: sp 0 + .ra: lr
+STACK CFI 40d06 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 18 .cfa: sp 4 +
+STACK CFI INIT 40d14 5c .cfa: sp 0 + .ra: lr
+STACK CFI 40d16 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 20 +
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 40d70 12 .cfa: sp 0 + .ra: lr
+STACK CFI 40d72 .cfa: sp 8 +
+STACK CFI 40d80 .cfa: sp 0 +
+STACK CFI INIT 40d82 16 .cfa: sp 0 + .ra: lr
+STACK CFI 40d84 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 40d94 .cfa: sp 4 +
+STACK CFI INIT 39cd8 2a .cfa: sp 0 + .ra: lr
+STACK CFI 39cda .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 24f22 7a .cfa: sp 0 + .ra: lr
+STACK CFI 24f24 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39e04 c .cfa: sp 0 + .ra: lr
+STACK CFI 39e06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39e72 2e .cfa: sp 0 + .ra: lr
+STACK CFI 39e74 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 39e9e .cfa: sp 16 +
+STACK CFI INIT 324f8 22 .cfa: sp 0 + .ra: lr
+STACK CFI 324fa .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 3a25e 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a260 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 40d98 30 .cfa: sp 0 + .ra: lr
+STACK CFI 40d9a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 40dc2 .cfa: sp 8 +
+STACK CFI INIT 40dc8 58 .cfa: sp 0 + .ra: lr
+STACK CFI 40dca .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 40dce .cfa: sp 48 +
+STACK CFI 40e10 .cfa: sp 12 +
+STACK CFI INIT 40e20 34 .cfa: sp 0 + .ra: lr
+STACK CFI 40e22 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3a480 34 .cfa: sp 0 + .ra: lr
+STACK CFI 3a482 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2c .cfa: sp 16 +
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 40e54 98 .cfa: sp 0 + .ra: lr
+STACK CFI 40e58 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 40eda .cfa: sp 24 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 40eec 6c .cfa: sp 0 + .ra: lr
+STACK CFI 40ef0 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 40f46 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 40f4a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 3a1a8 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 3a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 40f58 a8 .cfa: sp 0 + .ra: lr
+STACK CFI 40f5c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 40f6a .cfa: sp 80 +
+STACK CFI 40ff4 .cfa: sp 36 +
+STACK CFI INIT 41000 2ac .cfa: sp 0 + .ra: lr
+STACK CFI 41004 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 41010 .cfa: sp 120 +
+STACK CFI 41244 .cfa: sp 32 +
+STACK CFI INIT 0 bc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI ac .cfa: sp 32 +
+STACK CFI b0 .cfa: sp 40 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 90 .cfa: sp 24 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 412ac 2c8 .cfa: sp 0 + .ra: lr
+STACK CFI 412b0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 412bc .cfa: sp 480 +
+STACK CFI 41520 .cfa: sp 32 +
+STACK CFI INIT 41574 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 41578 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 41580 .cfa: sp 224 +
+STACK CFI INIT 41654 e8 .cfa: sp 0 + .ra: lr
+STACK CFI 41658 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 41660 .cfa: sp 224 +
+STACK CFI 4171e .cfa: sp 16 +
+STACK CFI INIT 4173c 3bc .cfa: sp 0 + .ra: lr
+STACK CFI 41740 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 41744 .cfa: sp 240 +
+STACK CFI 41a6a .cfa: sp 24 +
+STACK CFI INIT 41af8 184 .cfa: sp 0 + .ra: lr
+STACK CFI 41afe .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 41b08 .cfa: sp 256 +
+STACK CFI INIT 41c7c c8 .cfa: sp 0 + .ra: lr
+STACK CFI 41c80 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 41c8c .cfa: sp 200 +
+STACK CFI 41d26 .cfa: sp 16 +
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 41d44 18 .cfa: sp 0 + .ra: lr
+STACK CFI 41d46 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 41d5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 41d5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 41d44 18 .cfa: sp 0 + .ra: lr
+STACK CFI 41d46 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 41d5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 41d5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 41d70 1a8 .cfa: sp 0 + .ra: lr
+STACK CFI 41d74 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 41d80 .cfa: sp 200 +
+STACK CFI 41ee8 .cfa: sp 36 +
+STACK CFI INIT 3fcf8 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 3fcfc .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3fda8 .cfa: sp 32 +
+STACK CFI INIT 41f18 30 .cfa: sp 0 + .ra: lr
+STACK CFI 41f1a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 41f1e .cfa: sp 40 +
+STACK CFI 41f46 .cfa: sp 20 +
+STACK CFI INIT 41f48 22 .cfa: sp 0 + .ra: lr
+STACK CFI 41f4a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 41f68 .cfa: sp 12 +
+STACK CFI INIT 41f6c 98c .cfa: sp 0 + .ra: lr
+STACK CFI 41f70 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 41f76 .cfa: sp 528 +
+STACK CFI 42896 .cfa: sp 36 +
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI c4 .cfa: sp 36 +
+STACK CFI c8 .cfa: sp 48 +
+STACK CFI INIT 40910 84 .cfa: sp 0 + .ra: lr
+STACK CFI 40916 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 40920 .cfa: sp 64 +
+STACK CFI 4098c .cfa: sp 24 +
+STACK CFI INIT 428f8 16c .cfa: sp 0 + .ra: lr
+STACK CFI 428fc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4290c .cfa: sp 136 +
+STACK CFI 42a46 .cfa: sp 28 +
+STACK CFI INIT 15b4c a8 .cfa: sp 0 + .ra: lr
+STACK CFI 15b4e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 15bc8 .cfa: sp 20 +
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 42a64 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 42a6c 30 .cfa: sp 0 + .ra: lr
+STACK CFI 42a6e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 42a72 .cfa: sp 120 +
+STACK CFI 42a96 .cfa: sp 8 +
+STACK CFI INIT 42a9c 40 .cfa: sp 0 + .ra: lr
+STACK CFI 42a9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 42aa2 .cfa: sp 120 +
+STACK CFI 42ad4 .cfa: sp 8 +
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 42adc e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 42aea 1a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 42b04 20 .cfa: sp 0 + .ra: lr
+STACK CFI 42b06 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 42b1c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 42b20 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 3a25e 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a260 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 3a480 34 .cfa: sp 0 + .ra: lr
+STACK CFI 3a482 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI da .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI dc .cfa: sp 24 +
+STACK CFI INIT 3a1a8 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 179ec 1a .cfa: sp 0 + .ra: lr
+STACK CFI 179ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 17a02 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 42b24 6c .cfa: sp 0 + .ra: lr
+STACK CFI 42b26 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 42b30 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 42b38 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 42b86 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI INIT 3a3b8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 3a3ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 42b90 78 .cfa: sp 0 + .ra: lr
+STACK CFI 42b92 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 42b98 .cfa: sp 4144 +
+STACK CFI 42b9e .cfa: sp 4152 +
+STACK CFI 42bfe .cfa: sp 16 +
+STACK CFI INIT 42c08 58 .cfa: sp 0 + .ra: lr
+STACK CFI 42c0a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 42c0e .cfa: sp 48 +
+STACK CFI 42c58 .cfa: sp 16 +
+STACK CFI INIT 42c60 64 .cfa: sp 0 + .ra: lr
+STACK CFI 42c62 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42c66 .cfa: sp 64 +
+STACK CFI 42cbc .cfa: sp 20 +
+STACK CFI INIT 42cc4 14c .cfa: sp 0 + .ra: lr
+STACK CFI 42cc8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 42cd4 .cfa: sp 120 +
+STACK CFI 42e08 .cfa: sp 36 +
+STACK CFI INIT 42e10 90 .cfa: sp 0 + .ra: lr
+STACK CFI 42e14 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 42e18 .cfa: sp 80 +
+STACK CFI 42e92 .cfa: sp 24 +
+STACK CFI INIT 42ea0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 42ea2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42ea6 .cfa: sp 80 +
+STACK CFI 42f0a .cfa: sp 20 +
+STACK CFI INIT 0 ca .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c6 .cfa: sp 24 +
+STACK CFI INIT 0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 10 .cfa: sp 96 +
+STACK CFI 94 .cfa: sp 32 +
+STACK CFI INIT 42f10 160 .cfa: sp 0 + .ra: lr
+STACK CFI 42f14 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 42f18 .cfa: sp 200 +
+STACK CFI 4305a .cfa: sp 36 +
+STACK CFI INIT 43070 74 .cfa: sp 0 + .ra: lr
+STACK CFI 43074 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 43080 .cfa: sp 72 +
+STACK CFI 430d8 .cfa: sp 32 +
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 430e4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 430e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 430fc c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43108 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43114 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43120 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 12 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 18 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 43140 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 43142 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 43184 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 4318a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 43196 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 4319c .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 431f8 5a .cfa: sp 0 + .ra: lr
+STACK CFI 431fa .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 43250 .cfa: sp 20 +
+STACK CFI INIT 43252 60 .cfa: sp 0 + .ra: lr
+STACK CFI 43258 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 432b2 34 .cfa: sp 0 + .ra: lr
+STACK CFI 432b4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 432c8 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 432cc .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 14 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 432e6 16 .cfa: sp 0 + .ra: lr
+STACK CFI 432e8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 432f6 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 432fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 432fc 16 .cfa: sp 0 + .ra: lr
+STACK CFI 432fe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4330e .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 43314 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16aec 1e .cfa: sp 0 + .ra: lr
+STACK CFI 16aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4332c 1e .cfa: sp 0 + .ra: lr
+STACK CFI 4332e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 43348 .cfa: sp 12 +
+STACK CFI INIT 4334a 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4334c .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 43378 .cfa: sp 8 +
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 44 .cfa: sp 12 +
+STACK CFI INIT 16db4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 16db6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 16de6 .cfa: sp 8 +
+STACK CFI INIT 3a25e 22 .cfa: sp 0 + .ra: lr
+STACK CFI 3a260 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4337a 52 .cfa: sp 0 + .ra: lr
+STACK CFI 4337e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 433cc 68 .cfa: sp 0 + .ra: lr
+STACK CFI 433ce .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 43434 14 .cfa: sp 0 + .ra: lr
+STACK CFI 43436 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 386b4 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 2a .cfa: sp 16 +
+STACK CFI INIT 0 ae .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI ac .cfa: sp 20 +
+STACK CFI INIT 43448 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4344a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5a .cfa: sp 20 +
+STACK CFI INIT 386ba 20 .cfa: sp 0 + .ra: lr
+STACK CFI 386bc .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 386ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI 386d0 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 43464 46 .cfa: sp 0 + .ra: lr
+STACK CFI 43466 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 434a8 .cfa: sp 8 +
+STACK CFI INIT 434ac 30 .cfa: sp 0 + .ra: lr
+STACK CFI 434ae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b6 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI b2 .cfa: sp 36 +
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI 38 .cfa: sp 16 +
+STACK CFI INIT 434dc 17c .cfa: sp 0 + .ra: lr
+STACK CFI 434e0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 434ee .cfa: sp 72 +
+STACK CFI 4361e .cfa: sp 32 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI dc .cfa: sp 24 +
+STACK CFI INIT 3a1a8 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 ca .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI c6 .cfa: sp 24 +
+STACK CFI INIT 43658 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4365c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 43660 .cfa: sp 144 +
+STACK CFI 43722 .cfa: sp 32 +
+STACK CFI INIT 43738 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4373c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 43748 .cfa: sp 64 +
+STACK CFI 437c2 .cfa: sp 28 +
+STACK CFI INIT 437e8 140 .cfa: sp 0 + .ra: lr
+STACK CFI 437ec .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 437f0 .cfa: sp 88 +
+STACK CFI 4390a .cfa: sp 36 +
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43928 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43940 c8 .cfa: sp 0 + .ra: lr
+STACK CFI 43946 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4394c .cfa: sp 112 +
+STACK CFI 439f8 .cfa: sp 24 +
+STACK CFI INIT 386da a6 .cfa: sp 0 + .ra: lr
+STACK CFI 386dc .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 3877e .cfa: sp 16 +
+STACK CFI INIT 43a08 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 43a0c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 43a16 .cfa: sp 56 +
+STACK CFI 43a9c .cfa: sp 24 +
+STACK CFI INIT 43aac 54 .cfa: sp 0 + .ra: lr
+STACK CFI 43aae .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 43ab8 .cfa: sp 48 +
+STACK CFI 43af4 .cfa: sp 16 +
+STACK CFI INIT 43b00 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 43b04 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 43b0e .cfa: sp 88 +
+STACK CFI 43bbc .cfa: sp 24 +
+STACK CFI INIT 43bd0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 43bd2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 43bdc .cfa: sp 48 +
+STACK CFI 43c0e .cfa: sp 16 +
+STACK CFI INIT 0 3bc .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 120 +
+STACK CFI 34a .cfa: sp 36 +
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 15bf4 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15c18 2c .cfa: sp 0 + .ra: lr
+STACK CFI 15c1a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 15c3c .cfa: sp 12 +
+STACK CFI INIT 43c14 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c16 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 43c5c 2a .cfa: sp 0 + .ra: lr
+STACK CFI 43c60 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43c88 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 43c8a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 43c8e .cfa: sp 40 +
+STACK CFI 43d32 .cfa: sp 20 +
+STACK CFI INIT 43d58 214 .cfa: sp 0 + .ra: lr
+STACK CFI 43d5c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 43d62 .cfa: sp 64 +
+STACK CFI 43f2e .cfa: sp 24 +
+STACK CFI INIT 43f6c 50 .cfa: sp 0 + .ra: lr
+STACK CFI 43f6e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 43fbc 7c .cfa: sp 0 + .ra: lr
+STACK CFI 43fbe .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 4401e .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 44028 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 44038 268 .cfa: sp 0 + .ra: lr
+STACK CFI 4403c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 44040 .cfa: sp 72 +
+STACK CFI 4427c .cfa: sp 28 +
+STACK CFI INIT 442a0 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 442a6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 442b6 .cfa: sp 912 +
+STACK CFI 44336 .cfa: sp 24 +
+STACK CFI INIT 44340 22 .cfa: sp 0 + .ra: lr
+STACK CFI 44342 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4435c .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7
+STACK CFI 44360 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI a .cfa: sp 904 +
+STACK CFI 4a .cfa: sp 24 +
+STACK CFI INIT 44364 134 .cfa: sp 0 + .ra: lr
+STACK CFI 44368 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4436e .cfa: sp 48 +
+STACK CFI 44474 .cfa: sp 28 +
+STACK CFI INIT 44498 74 .cfa: sp 0 + .ra: lr
+STACK CFI 4449a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 44502 .cfa: sp 16 +
+STACK CFI INIT 4450c 4e .cfa: sp 0 + .ra: lr
+STACK CFI 4450e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 44526 .cfa: sp 16 +
+STACK CFI 4452a .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 4452e .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 44558 .cfa: sp 16 +
+STACK CFI INIT 4455a 1e .cfa: sp 0 + .ra: lr
+STACK CFI 4455c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 44578 c0 .cfa: sp 0 + .ra: lr
+STACK CFI 4457c .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 44586 .cfa: sp 912 +
+STACK CFI 44632 .cfa: sp 20 +
+STACK CFI INIT 44638 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 4463c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 44644 .cfa: sp 584 +
+STACK CFI 446d4 .cfa: sp 24 +
+STACK CFI INIT 446dc 50 .cfa: sp 0 + .ra: lr
+STACK CFI 446de .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4472a .cfa: sp 8 +
+STACK CFI INIT 4472c 34 .cfa: sp 0 + .ra: lr
+STACK CFI 44730 .cfa: sp 8 +
+STACK CFI 44758 .cfa: sp 0 +
+STACK CFI 4475c .cfa: sp 8 +
+STACK CFI 4475e .cfa: sp 0 +
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 44760 184 .cfa: sp 0 + .ra: lr
+STACK CFI 44762 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 44768 .cfa: sp 40 +
+STACK CFI 448be .cfa: sp 16 +
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 0 2e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 448e4 98 .cfa: sp 0 + .ra: lr
+STACK CFI 448e8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 448f8 .cfa: sp 120 +
+STACK CFI 44972 .cfa: sp 36 +
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 224 +
+STACK CFI 80 .cfa: sp 28 +
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 4497c 50 .cfa: sp 0 + .ra: lr
+STACK CFI 4497e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 1772c d8 .cfa: sp 0 + .ra: lr
+STACK CFI 17732 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 17800 .cfa: sp 24 +
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 c2 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI be .cfa: sp 24 +
+STACK CFI INIT 449cc b0 .cfa: sp 0 + .ra: lr
+STACK CFI 449d0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 449d4 .cfa: sp 168 +
+STACK CFI 44a6a .cfa: sp 28 +
+STACK CFI INIT 44a7c 48 .cfa: sp 0 + .ra: lr
+STACK CFI 44a7e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 44ac4 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 44ad4 a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 44ae0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 44ae2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 44b06 .cfa: sp 4 +
+STACK CFI INIT 44b10 4c .cfa: sp 0 + .ra: lr
+STACK CFI 44b12 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 44b50 .cfa: sp 16 +
+STACK CFI INIT 44b5c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 44b5e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 44b78 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 44b88 16c .cfa: sp 0 + .ra: lr
+STACK CFI 44b8c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 44b92 .cfa: sp 584 +
+STACK CFI 44cd6 .cfa: sp 28 +
+STACK CFI INIT 44cf4 444 .cfa: sp 0 + .ra: lr
+STACK CFI 44cf8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 44d06 .cfa: sp 1016 +
+STACK CFI 4512c .cfa: sp 36 +
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 45138 5a .cfa: sp 0 + .ra: lr
+STACK CFI 4513c .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 45194 38 .cfa: sp 0 + .ra: lr
+STACK CFI 45196 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 451c4 .cfa: sp 12 +
+STACK CFI INIT 451cc 22 .cfa: sp 0 + .ra: lr
+STACK CFI 451ce .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 451e6 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 451ec .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 451f0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 451f8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 22e5c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 22e5e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 328fc a2 .cfa: sp 0 + .ra: lr
+STACK CFI 32900 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 45230 50 .cfa: sp 0 + .ra: lr
+STACK CFI 45232 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 45280 d0 .cfa: sp 0 + .ra: lr
+STACK CFI 45284 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4533e .cfa: sp 36 +
+STACK CFI INIT 45350 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 45354 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4536a .cfa: sp 304 +
+STACK CFI 45520 .cfa: sp 36 +
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 45544 114 .cfa: sp 0 + .ra: lr
+STACK CFI 45548 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4554c .cfa: sp 344 +
+STACK CFI 45644 .cfa: sp 36 +
+STACK CFI INIT 45658 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 4565c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 45662 .cfa: sp 680 +
+STACK CFI 4570e .cfa: sp 28 +
+STACK CFI INIT 2c90c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2c910 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16ac0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16ac6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 328fc a2 .cfa: sp 0 + .ra: lr
+STACK CFI 32900 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 20f46 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4571c 40 .cfa: sp 0 + .ra: lr
+STACK CFI 4571e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4575c 80 .cfa: sp 0 + .ra: lr
+STACK CFI 45760 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 457b6 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6 r7: r7 r8: r8
+STACK CFI 457ba .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 457d0 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6 r7: r7 r8: r8
+STACK CFI 457d4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 457dc b8 .cfa: sp 0 + .ra: lr
+STACK CFI 457e0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 457e4 .cfa: sp 296 +
+STACK CFI 45886 .cfa: sp 24 +
+STACK CFI INIT 45894 24 .cfa: sp 0 + .ra: lr
+STACK CFI 45896 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 458b0 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 458b4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 458b8 2a .cfa: sp 0 + .ra: lr
+STACK CFI 458bc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 458e4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 458e6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4591c 34 .cfa: sp 0 + .ra: lr
+STACK CFI 4591e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 45944 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 45948 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 45950 130 .cfa: sp 0 + .ra: lr
+STACK CFI 45954 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4595e .cfa: sp 336 +
+STACK CFI 45a70 .cfa: sp 36 +
+STACK CFI INIT 45a80 94 .cfa: sp 0 + .ra: lr
+STACK CFI 45a84 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 3fcf8 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 3fcfc .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3fda8 .cfa: sp 32 +
+STACK CFI INIT 45b14 98 .cfa: sp 0 + .ra: lr
+STACK CFI 45b16 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 45ba2 .cfa: sp 16 +
+STACK CFI INIT 3fcf8 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 3fcfc .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 3fda8 .cfa: sp 32 +
+STACK CFI INIT 45bac 374 .cfa: sp 0 + .ra: lr
+STACK CFI 45bb0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 45bb4 .cfa: sp 368 +
+STACK CFI 45f0a .cfa: sp 36 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 45f20 24 .cfa: sp 0 + .ra: lr
+STACK CFI 45f22 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 45f44 52 .cfa: sp 0 + .ra: lr
+STACK CFI 45f48 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 45f92 .cfa: sp 36 +
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 24cb0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 24cb2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 45f98 78 .cfa: sp 0 + .ra: lr
+STACK CFI 45f9c .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 46008 .cfa: sp 32 +
+STACK CFI INIT 46010 42 .cfa: sp 0 + .ra: lr
+STACK CFI 46012 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 328fc a2 .cfa: sp 0 + .ra: lr
+STACK CFI 32900 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 46054 1b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4605a .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 46064 .cfa: sp 320 +
+STACK CFI 461f0 .cfa: sp 36 +
+STACK CFI INIT 46204 20 .cfa: sp 0 + .ra: lr
+STACK CFI 46206 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 46224 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 46228 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 462c4 164 .cfa: sp 0 + .ra: lr
+STACK CFI 462c8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 462cc .cfa: sp 336 +
+STACK CFI 46412 .cfa: sp 36 +
+STACK CFI INIT 46428 be .cfa: sp 0 + .ra: lr
+STACK CFI 4642c .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 464e2 .cfa: sp 32 +
+STACK CFI INIT 464e6 fe .cfa: sp 0 + .ra: lr
+STACK CFI 464ea .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 464f2 .cfa: sp 48 +
+STACK CFI 465e0 .cfa: sp 28 +
+STACK CFI INIT 465e4 24 .cfa: sp 0 + .ra: lr
+STACK CFI 465e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 46608 e4 .cfa: sp 0 + .ra: lr
+STACK CFI 4660c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 46612 .cfa: sp 984 +
+STACK CFI 466e0 .cfa: sp 36 +
+STACK CFI INIT 466ec 36 .cfa: sp 0 + .ra: lr
+STACK CFI 466ee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 46718 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 4671e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 46722 2a .cfa: sp 0 + .ra: lr
+STACK CFI 46724 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4674c 36 .cfa: sp 0 + .ra: lr
+STACK CFI 46750 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 46782 28 .cfa: sp 0 + .ra: lr
+STACK CFI 46786 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 467ac 128 .cfa: sp 0 + .ra: lr
+STACK CFI 467b0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 467c0 .cfa: sp 880 +
+STACK CFI 468c6 .cfa: sp 36 +
+STACK CFI INIT 468d4 26 .cfa: sp 0 + .ra: lr
+STACK CFI 468d6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 328fc a2 .cfa: sp 0 + .ra: lr
+STACK CFI 32900 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 13a40 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 13a44 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 13a48 .cfa: sp 56 +
+STACK CFI 13b1c .cfa: sp 32 +
+STACK CFI INIT 13b20 40 .cfa: sp 0 + .ra: lr
+STACK CFI 13b22 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 13b32 .cfa: sp 288 +
+STACK CFI 13b5a .cfa: sp 20 +
+STACK CFI INIT 0 f0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI a .cfa: sp 568 +
+STACK CFI e6 .cfa: sp 36 +
+STACK CFI INIT 0 100 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 468fc 340 .cfa: sp 0 + .ra: lr
+STACK CFI 46900 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4690a .cfa: sp 616 +
+STACK CFI 46c1c .cfa: sp 36 +
+STACK CFI INIT 46c3c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 46c40 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 46c4a .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 46c4e 1e .cfa: sp 0 + .ra: lr
+STACK CFI 46c50 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 46c6c 14 .cfa: sp 0 + .ra: lr
+STACK CFI 46c6e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 46c7c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 46c80 1a .cfa: sp 0 + .ra: lr
+STACK CFI 46c82 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 46c9c 5c .cfa: sp 0 + .ra: lr
+STACK CFI 46ca0 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 25018 22 .cfa: sp 0 + .ra: lr
+STACK CFI 2501e .cfa: sp 16 +
+STACK CFI 25038 .cfa: sp 0 +
+STACK CFI INIT 2503a 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2503c .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI 20 .cfa: sp 0 +
+STACK CFI INIT 25054 1c .cfa: sp 0 + .ra: lr
+STACK CFI 25056 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 46cf8 ac .cfa: sp 0 + .ra: lr
+STACK CFI 46cfc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 46da4 32 .cfa: sp 0 + .ra: lr
+STACK CFI 46da6 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 46dac .cfa: sp 32 +
+STACK CFI 46dd4 .cfa: sp 12 +
+STACK CFI INIT 46dd6 c2 .cfa: sp 0 + .ra: lr
+STACK CFI 46dda .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 46de2 .cfa: sp 72 +
+STACK CFI 46e94 .cfa: sp 28 +
+STACK CFI INIT 46e98 388 .cfa: sp 0 + .ra: lr
+STACK CFI 46e9c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 46eb0 .cfa: sp 816 +
+STACK CFI 47216 .cfa: sp 36 +
+STACK CFI INIT 47220 8a .cfa: sp 0 + .ra: lr
+STACK CFI 47224 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4722c .cfa: sp 80 +
+STACK CFI 472a6 .cfa: sp 28 +
+STACK CFI INIT 472aa b0 .cfa: sp 0 + .ra: lr
+STACK CFI 472ae .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 472b4 .cfa: sp 48 +
+STACK CFI 4733a .cfa: sp 28 +
+STACK CFI 4733e .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6 r7: r7 r8: r8 r9: r9
+STACK CFI 47342 .cfa: sp 48 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 47356 .cfa: sp 28 +
+STACK CFI INIT 4735c ac .cfa: sp 0 + .ra: lr
+STACK CFI 47360 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 473fe .cfa: sp 32 +
+STACK CFI INIT 47408 800 .cfa: sp 0 + .ra: lr
+STACK CFI 4740c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4741a .cfa: sp 712 +
+STACK CFI 47c04 .cfa: sp 36 +
+STACK CFI INIT 47c08 a8 .cfa: sp 0 + .ra: lr
+STACK CFI 47c0c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 47c0e .cfa: sp 184 +
+STACK CFI 47ca6 .cfa: sp 24 +
+STACK CFI INIT 47cb0 52 .cfa: sp 0 + .ra: lr
+STACK CFI 47cb4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 47cb6 .cfa: sp 72 +
+STACK CFI 47cfe .cfa: sp 28 +
+STACK CFI INIT 47d02 52 .cfa: sp 0 + .ra: lr
+STACK CFI 47d06 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 47d10 .cfa: sp 72 +
+STACK CFI 47d50 .cfa: sp 28 +
+STACK CFI INIT 47d54 20 .cfa: sp 0 + .ra: lr
+STACK CFI 47d56 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 47d72 .cfa: sp 8 +
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI 24 .cfa: sp 12 +
+STACK CFI INIT 47d74 26 .cfa: sp 0 + .ra: lr
+STACK CFI 47d76 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 47d7c .cfa: sp 32 +
+STACK CFI 47d98 .cfa: sp 12 +
+STACK CFI INIT 47d9a 26 .cfa: sp 0 + .ra: lr
+STACK CFI 47d9c .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 47dbe .cfa: sp 16 +
+STACK CFI INIT 47dc0 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 47dc4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 47dce .cfa: sp 216 +
+STACK CFI 47e5c .cfa: sp 28 +
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 96 +
+STACK CFI 58 .cfa: sp 24 +
+STACK CFI INIT 47e64 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 47e76 34 .cfa: sp 0 + .ra: lr
+STACK CFI 47e78 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 47eaa 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 47eb2 4a .cfa: sp 0 + .ra: lr
+STACK CFI 47eb4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 47efc 10 .cfa: sp 0 + .ra: lr
+STACK CFI 47efe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 47f0c 44 .cfa: sp 0 + .ra: lr
+STACK CFI 47f0e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 47f50 6e .cfa: sp 0 + .ra: lr
+STACK CFI 47f54 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 47fbe 16 .cfa: sp 0 + .ra: lr
+STACK CFI 47fc0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 47fd4 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 52 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 48 +
+STACK CFI 50 .cfa: sp 20 +
+STACK CFI INIT 46c6c 14 .cfa: sp 0 + .ra: lr
+STACK CFI 46c6e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 46c7c .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4a .cfa: sp 28 +
+STACK CFI INIT 47fda 4c .cfa: sp 0 + .ra: lr
+STACK CFI 47fde .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 48022 .cfa: sp 28 +
+STACK CFI INIT 0 aa .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 16 .cfa: sp 72 +
+STACK CFI a6 .cfa: sp 32 +
+STACK CFI INIT 48026 aa .cfa: sp 0 + .ra: lr
+STACK CFI 4802a .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4803c .cfa: sp 72 +
+STACK CFI 480cc .cfa: sp 32 +
+STACK CFI INIT 36984 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 3699c 26 .cfa: sp 0 + .ra: lr
+STACK CFI 3699e .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 480d0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 480d8 e .cfa: sp 0 + .ra: lr
+STACK CFI 480da .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 480e6 c .cfa: sp 0 + .ra: lr
+STACK CFI 480e8 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 480f2 26 .cfa: sp 0 + .ra: lr
+STACK CFI 480f4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 48118 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4811a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 48144 42 .cfa: sp 0 + .ra: lr
+STACK CFI 48148 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 48184 .cfa: sp 16 +
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48186 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4818e a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48198 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 481a0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 481a2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 481d0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 481d2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 481ea .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI 481ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 481f0 c .cfa: sp 0 + .ra: lr
+STACK CFI 481f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 481fc 28 .cfa: sp 0 + .ra: lr
+STACK CFI 481fe .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 48224 5e .cfa: sp 0 + .ra: lr
+STACK CFI 48228 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 48282 34 .cfa: sp 0 + .ra: lr
+STACK CFI 48286 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 482b4 .cfa: sp 16 +
+STACK CFI INIT 482b8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 482bc .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 482d0 104 .cfa: sp 0 + .ra: lr
+STACK CFI 482d4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 483d0 .cfa: sp 36 +
+STACK CFI INIT 483d4 8a .cfa: sp 0 + .ra: lr
+STACK CFI 483d8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 48460 5c .cfa: sp 0 + .ra: lr
+STACK CFI 48462 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 484b6 .cfa: sp 16 +
+STACK CFI INIT 484bc 138 .cfa: sp 0 + .ra: lr
+STACK CFI 484c0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 484c2 .cfa: sp 48 +
+STACK CFI 485e6 .cfa: sp 24 +
+STACK CFI INIT 485f4 2a .cfa: sp 0 + .ra: lr
+STACK CFI 485f8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4861c .cfa: sp 12 +
+STACK CFI INIT 48620 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 48624 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 48628 .cfa: sp 48 +
+STACK CFI 486cc .cfa: sp 24 +
+STACK CFI INIT 486d4 10 .cfa: sp 0 + .ra: lr
+STACK CFI 486d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI 486e0 .cfa: sp 0 + .ra: .ra r3: r3
+STACK CFI INIT 486e4 54 .cfa: sp 0 + .ra: lr
+STACK CFI 486e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48738 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4873a .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 48790 .cfa: sp 16 +
+STACK CFI INIT 48798 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 487a8 22 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 487ca 26 .cfa: sp 0 + .ra: lr
+STACK CFI 487cc .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 487f0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 487f2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 48822 24 .cfa: sp 0 + .ra: lr
+STACK CFI 48828 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48846 36 .cfa: sp 0 + .ra: lr
+STACK CFI 48848 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 4887c 1a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48896 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4889a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 488ae 1a .cfa: sp 0 + .ra: lr
+STACK CFI 488b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 488c8 40 .cfa: sp 0 + .ra: lr
+STACK CFI 488ca .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 48908 22 .cfa: sp 0 + .ra: lr
+STACK CFI 4890a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4892a e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48938 22 .cfa: sp 0 + .ra: lr
+STACK CFI 4893a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4895a 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4895c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4897c 48 .cfa: sp 0 + .ra: lr
+STACK CFI 4897e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 489ba .cfa: sp 8 +
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48186 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 489c4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 489c6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 489f0 c .cfa: sp 0 + .ra: lr
+STACK CFI 489f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 489fc e4 .cfa: sp 0 + .ra: lr
+STACK CFI 48a00 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 48a04 .cfa: sp 152 +
+STACK CFI 48ad8 .cfa: sp 36 +
+STACK CFI INIT 48ae0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 48ae4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48af2 32 .cfa: sp 0 + .ra: lr
+STACK CFI 48af4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 48b24 48 .cfa: sp 0 + .ra: lr
+STACK CFI 48b28 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 48b68 .cfa: sp 32 +
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI 2e .cfa: sp 12 +
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 16 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 48 +
+STACK CFI 90 .cfa: sp 20 +
+STACK CFI INIT 0 be .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI ba .cfa: sp 32 +
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e8 .cfa: sp 32 +
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 24 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6 r7: r7
+STACK CFI 28 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI 66 .cfa: sp 20 +
+STACK CFI INIT 0 6a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI 68 .cfa: sp 20 +
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 43c38 24 .cfa: sp 0 + .ra: lr
+STACK CFI 43c3a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48ba8 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 48baa .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 48bae .cfa: sp 96 +
+STACK CFI 48c98 .cfa: sp 20 +
+STACK CFI INIT 48ca0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 48ca2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48cc0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48cc4 24 .cfa: sp 0 + .ra: lr
+STACK CFI 48cc8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48ce8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48cec 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48cf0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 48cf2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 48d78 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 48d84 7a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 0 72 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 ec .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 18 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI 1e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48e00 118 .cfa: sp 0 + .ra: lr
+STACK CFI 48e04 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 48e0e .cfa: sp 56 +
+STACK CFI 48f08 .cfa: sp 36 +
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 10 .cfa: sp 56 +
+STACK CFI ec .cfa: sp 36 +
+STACK CFI INIT 48f18 20 .cfa: sp 0 + .ra: lr
+STACK CFI 48f1a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48f38 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f48 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f4c 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f50 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 48f54 4a .cfa: sp 0 + .ra: lr
+STACK CFI 48f56 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48fa0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 48fa2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 48fb8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 48fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 10e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 100 .cfa: sp 24 +
+STACK CFI 104 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6 r7: r7 r8: r8
+STACK CFI 108 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10a .cfa: sp 24 +
+STACK CFI INIT 48fcc 4c .cfa: sp 0 + .ra: lr
+STACK CFI 48fce .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4900a .cfa: sp 8 +
+STACK CFI INIT 49018 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4901a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 49056 .cfa: sp 8 +
+STACK CFI INIT 49064 4c .cfa: sp 0 + .ra: lr
+STACK CFI 49066 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 490a2 .cfa: sp 8 +
+STACK CFI INIT 490b0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 490b2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 490ee .cfa: sp 8 +
+STACK CFI INIT 490fc 4c .cfa: sp 0 + .ra: lr
+STACK CFI 490fe .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4913a .cfa: sp 8 +
+STACK CFI INIT 49148 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4914a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 49186 .cfa: sp 8 +
+STACK CFI INIT 49194 4c .cfa: sp 0 + .ra: lr
+STACK CFI 49196 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 491d2 .cfa: sp 8 +
+STACK CFI INIT 491e0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 491e2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4921e .cfa: sp 8 +
+STACK CFI INIT 4922c 170 .cfa: sp 0 + .ra: lr
+STACK CFI 4922e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 49232 .cfa: sp 48 +
+STACK CFI 49378 .cfa: sp 20 +
+STACK CFI INIT 0 bb4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 48 +
+STACK CFI 966 .cfa: sp 24 +
+STACK CFI INIT 4939c 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 16 +
+STACK CFI INIT 493a4 44 .cfa: sp 0 + .ra: lr
+STACK CFI 493a6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 493b2 .cfa: sp 40 +
+STACK CFI 493de .cfa: sp 16 +
+STACK CFI INIT 493e8 48 .cfa: sp 0 + .ra: lr
+STACK CFI 493ea .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 493f4 .cfa: sp 56 +
+STACK CFI 49424 .cfa: sp 16 +
+STACK CFI INIT 49430 44 .cfa: sp 0 + .ra: lr
+STACK CFI 49432 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 4943e .cfa: sp 48 +
+STACK CFI 4946a .cfa: sp 16 +
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 386ba 20 .cfa: sp 0 + .ra: lr
+STACK CFI 386bc .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 386ca .cfa: sp 0 + .ra: .ra r4: r4 r5: r5
+STACK CFI 386d0 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49474 4a .cfa: sp 0 + .ra: lr
+STACK CFI 49476 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 494bc .cfa: sp 12 +
+STACK CFI INIT 0 b6 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI b2 .cfa: sp 36 +
+STACK CFI INIT 494c0 18c .cfa: sp 0 + .ra: lr
+STACK CFI 494c4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 494ce .cfa: sp 208 +
+STACK CFI 49628 .cfa: sp 32 +
+STACK CFI INIT 0 110 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 108 .cfa: sp 24 +
+STACK CFI INIT 4964c 62 .cfa: sp 0 + .ra: lr
+STACK CFI 4964e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496ae c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496ba 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496ce 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496d6 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496e4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496ec c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 496f8 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49700 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4970e 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49714 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4971a e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49728 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49730 18 .cfa: sp 0 + .ra: lr
+STACK CFI 49732 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49748 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4974a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 49756 .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 0 3e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 3a .cfa: sp 0 + .ra: .ra r4: r4
+STACK CFI INIT 4975c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 4975e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49784 20 .cfa: sp 0 + .ra: lr
+STACK CFI 49786 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c0 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ddc 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15de2 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 497a4 84 .cfa: sp 0 + .ra: lr
+STACK CFI 497a6 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f9e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 15fa0 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 15fb4 .cfa: sp 4 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fd0 c .cfa: sp 0 + .ra: lr
+STACK CFI 15fd2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49828 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4982a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4983a 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4983c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4984c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4984e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49864 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49866 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16030 4c .cfa: sp 0 + .ra: lr
+STACK CFI 16034 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 1607e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 16098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 1609a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49876 18 .cfa: sp 0 + .ra: lr
+STACK CFI 49878 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4988e 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49896 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 160c8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 160ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4989a 22 .cfa: sp 0 + .ra: lr
+STACK CFI 4989c .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 498bc 4a .cfa: sp 0 + .ra: lr
+STACK CFI 498be .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49906 54 .cfa: sp 0 + .ra: lr
+STACK CFI 4990a .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 49956 .cfa: sp 24 +
+STACK CFI INIT 4995c 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4995e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16a6c 54 .cfa: sp 0 + .ra: lr
+STACK CFI 16a70 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 15fdc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 15fe0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 499a8 50 .cfa: sp 0 + .ra: lr
+STACK CFI 499aa .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 499d0 .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 499d4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 499ec .cfa: sp 0 + .ra: .ra r4: r4 r5: r5 r6: r6
+STACK CFI 499f0 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 1e00e 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 499f8 38 .cfa: sp 0 + .ra: lr
+STACK CFI 499fc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 49a2e .cfa: sp 8 +
+STACK CFI INIT 49a30 38 .cfa: sp 0 + .ra: lr
+STACK CFI 49a34 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 49a66 .cfa: sp 12 +
+STACK CFI INIT 49a68 28 .cfa: sp 0 + .ra: lr
+STACK CFI 49a6c .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 49a8e .cfa: sp 8 +
+STACK CFI INIT 2c924 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49a90 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49a92 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49aa4 6c .cfa: sp 0 + .ra: lr
+STACK CFI 49aa6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49b10 18 .cfa: sp 0 + .ra: lr
+STACK CFI 49b12 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49b28 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49b30 16 .cfa: sp 0 + .ra: lr
+STACK CFI 49b32 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49b48 20 .cfa: sp 0 + .ra: lr
+STACK CFI 49b4a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49b68 2c .cfa: sp 0 + .ra: lr
+STACK CFI 49b6a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49b94 22 .cfa: sp 0 + .ra: lr
+STACK CFI 49b96 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49bb8 30 .cfa: sp 0 + .ra: lr
+STACK CFI 49bba .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49be8 48 .cfa: sp 0 + .ra: lr
+STACK CFI 49bea .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49bf0 .cfa: sp 48 +
+STACK CFI 49c2a .cfa: sp 16 +
+STACK CFI INIT 49c30 4c .cfa: sp 0 + .ra: lr
+STACK CFI 49c32 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49c7c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 49c7e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49ca8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 49caa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39934 12 .cfa: sp 0 + .ra: lr
+STACK CFI 39936 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49cd4 34 .cfa: sp 0 + .ra: lr
+STACK CFI 49cd6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49d06 .cfa: sp 16 +
+STACK CFI INIT 49d08 34 .cfa: sp 0 + .ra: lr
+STACK CFI 49d0a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49d3a .cfa: sp 16 +
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49d3c 34 .cfa: sp 0 + .ra: lr
+STACK CFI 49d3e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49d6e .cfa: sp 16 +
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 32 .cfa: sp 16 +
+STACK CFI INIT 2aa48 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa4a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aa4e .cfa: sp 48 +
+STACK CFI 2aa76 .cfa: sp 12 +
+STACK CFI INIT 0 50 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 170b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170c4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 170c6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 170d6 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 170e2 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49d70 18 .cfa: sp 0 + .ra: lr
+STACK CFI 49d72 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49d88 3c .cfa: sp 0 + .ra: lr
+STACK CFI 49d8a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49dc4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49dc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49dd8 34 .cfa: sp 0 + .ra: lr
+STACK CFI 49dda .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49e0c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49e0e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 56 .cfa: sp 20 +
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 49e20 60 .cfa: sp 0 + .ra: lr
+STACK CFI 49e28 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49e7a .cfa: sp 16 +
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 39cc4 14 .cfa: sp 0 + .ra: lr
+STACK CFI 39cc6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49e80 2c .cfa: sp 0 + .ra: lr
+STACK CFI 49e82 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49eac 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49eb4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49eb6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49ec6 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49ece 18 .cfa: sp 0 + .ra: lr
+STACK CFI 49ed0 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49ee8 50 .cfa: sp 0 + .ra: lr
+STACK CFI 49eea .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49f38 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49f40 12 .cfa: sp 0 + .ra: lr
+STACK CFI 49f42 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 49f52 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 49f5a 4a .cfa: sp 0 + .ra: lr
+STACK CFI 49f5e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 49fa2 .cfa: sp 16 +
+STACK CFI INIT 2aa48 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa4a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aa4e .cfa: sp 48 +
+STACK CFI 2aa76 .cfa: sp 12 +
+STACK CFI INIT 49fa4 34 .cfa: sp 0 + .ra: lr
+STACK CFI 49fa6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 49fd8 30 .cfa: sp 0 + .ra: lr
+STACK CFI 49fda .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 16bac 9c .cfa: sp 0 + .ra: lr
+STACK CFI 16bb0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 16bbc .cfa: sp 48 +
+STACK CFI 16c3e .cfa: sp 28 +
+STACK CFI INIT 4a008 32 .cfa: sp 0 + .ra: lr
+STACK CFI 4a00a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 4a03a 26 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4a060 e6 .cfa: sp 0 + .ra: lr
+STACK CFI 4a064 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4a070 .cfa: sp 56 +
+STACK CFI 4a142 .cfa: sp 36 +
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 28 .cfa: sp 8 +
+STACK CFI INIT 16dec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 16dee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 12 +
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4c .cfa: sp 12 +
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 42 .cfa: sp 20 +
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 104 +
+STACK CFI 52 .cfa: sp 20 +
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a146 e .cfa: sp 0 + .ra: lr
+STACK CFI 4a148 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a154 e .cfa: sp 0 + .ra: lr
+STACK CFI 4a156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a162 e .cfa: sp 0 + .ra: lr
+STACK CFI 4a164 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a170 e .cfa: sp 0 + .ra: lr
+STACK CFI 4a172 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a17e e .cfa: sp 0 + .ra: lr
+STACK CFI 4a180 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a18c e .cfa: sp 0 + .ra: lr
+STACK CFI 4a18e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4a19c 48 .cfa: sp 0 + .ra: lr
+STACK CFI 4a19e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 4a1e4 50 .cfa: sp 0 + .ra: lr
+STACK CFI 4a1e6 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4a1ea .cfa: sp 32 +
+STACK CFI 4a224 .cfa: sp 12 +
+STACK CFI INIT 4a234 c .cfa: sp 0 + .ra: lr
+STACK CFI 4a236 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 4a240 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8a .cfa: sp 8 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 78 .cfa: sp 16 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 7a .cfa: sp 8 +
+STACK CFI INIT 4a248 48 .cfa: sp 0 + .ra: lr
+STACK CFI 4a24a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4a24e .cfa: sp 32 +
+STACK CFI 4a282 .cfa: sp 12 +
+STACK CFI INIT 0 a8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 80 .cfa: sp 8 +
+STACK CFI INIT 4a290 50 .cfa: sp 0 + .ra: lr
+STACK CFI 4a292 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4a2d2 .cfa: sp 8 +
+STACK CFI INIT 4a2e0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4a2e8 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4a2ea .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4a2ee .cfa: sp 32 +
+STACK CFI 4a324 .cfa: sp 12 +
+STACK CFI INIT 4a334 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 144 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 32 +
+STACK CFI fc .cfa: sp 12 +
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI 76 .cfa: sp 20 +
+STACK CFI INIT 4a33c 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4a33e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4a378 .cfa: sp 8 +
+STACK CFI INIT 4a388 8c .cfa: sp 0 + .ra: lr
+STACK CFI 4a38a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4a38e .cfa: sp 40 +
+STACK CFI 4a3f8 .cfa: sp 20 +
+STACK CFI INIT 4a414 8c .cfa: sp 0 + .ra: lr
+STACK CFI 4a416 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4a41a .cfa: sp 40 +
+STACK CFI 4a484 .cfa: sp 20 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 48 +
+STACK CFI b8 .cfa: sp 24 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 48 +
+STACK CFI b8 .cfa: sp 24 +
+STACK CFI INIT 0 368 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI c .cfa: sp 80 +
+STACK CFI 2ca .cfa: sp 20 +
+STACK CFI INIT 0 1d0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 104 +
+STACK CFI 180 .cfa: sp 36 +
+STACK CFI INIT 0 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI e .cfa: sp 96 +
+STACK CFI c0 .cfa: sp 20 +
+STACK CFI INIT 4a4a0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4a4a2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4a4a6 .cfa: sp 32 +
+STACK CFI 4a4ee .cfa: sp 12 +
+STACK CFI INIT 4a500 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4a508 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4a50c .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^
+STACK CFI 4a5aa .cfa: sp 32 +
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 4a5bc 19c .cfa: sp 0 + .ra: lr
+STACK CFI 4a5c0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4a5ce .cfa: sp 104 +
+STACK CFI 4a728 .cfa: sp 28 +
+STACK CFI INIT 4a758 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 4a75c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4a75e .cfa: sp 80 +
+STACK CFI 4a810 .cfa: sp 24 +
+STACK CFI INIT 4a830 c .cfa: sp 0 + .ra: lr
+STACK CFI 4a832 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 4a83c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20330 98 .cfa: sp 0 + .ra: lr
+STACK CFI 20332 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 20334 .cfa: sp 80 +
+STACK CFI 203c6 .cfa: sp 20 +
+STACK CFI INIT 4a844 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4a846 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4a84a .cfa: sp 40 +
+STACK CFI 4a8d4 .cfa: sp 20 +
+STACK CFI INIT 4a8f4 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4a8f6 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4a8fa .cfa: sp 40 +
+STACK CFI 4a984 .cfa: sp 20 +
+STACK CFI INIT 4a9a4 c .cfa: sp 0 + .ra: lr
+STACK CFI 4a9a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 4a9b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4a9b8 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4a9ba .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4a9be .cfa: sp 40 +
+STACK CFI 4aa48 .cfa: sp 20 +
+STACK CFI INIT 0 110 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 64 +
+STACK CFI da .cfa: sp 36 +
+STACK CFI INIT 4aa68 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 4aa6c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4aa6e .cfa: sp 80 +
+STACK CFI 4ab1e .cfa: sp 24 +
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI 8e .cfa: sp 20 +
+STACK CFI INIT 0 d8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 80 +
+STACK CFI b6 .cfa: sp 24 +
+STACK CFI INIT 0 b0 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 40 +
+STACK CFI 92 .cfa: sp 20 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 4ab40 16c .cfa: sp 0 + .ra: lr
+STACK CFI 4ab44 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4ab4c .cfa: sp 48 +
+STACK CFI 4ac76 .cfa: sp 24 +
+STACK CFI INIT 4acac c .cfa: sp 0 + .ra: lr
+STACK CFI 4acae .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 4acb8 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 9e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 9c .cfa: sp 20 +
+STACK CFI INIT 176f0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 176f2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4acc0 29c .cfa: sp 0 + .ra: lr
+STACK CFI 4acc4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4acca .cfa: sp 120 +
+STACK CFI 4af24 .cfa: sp 36 +
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 114 .cfa: sp 24 +
+STACK CFI INIT 179ec 1a .cfa: sp 0 + .ra: lr
+STACK CFI 179ee .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 17a02 .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5
+STACK CFI INIT 4af5c 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 4af60 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4af6a .cfa: sp 104 +
+STACK CFI 4b0f0 .cfa: sp 32 +
+STACK CFI INIT 4b138 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4b140 170 .cfa: sp 0 + .ra: lr
+STACK CFI 4b146 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4b14e .cfa: sp 160 +
+STACK CFI 4b278 .cfa: sp 28 +
+STACK CFI INIT 4b2b0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4b2b8 11c .cfa: sp 0 + .ra: lr
+STACK CFI 4b2be .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4b2c6 .cfa: sp 104 +
+STACK CFI 4b3a6 .cfa: sp 28 +
+STACK CFI INIT 4b3d4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 168 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 80 +
+STACK CFI 126 .cfa: sp 28 +
+STACK CFI INIT 0 178 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e .cfa: sp 104 +
+STACK CFI 136 .cfa: sp 32 +
+STACK CFI INIT 0 7e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 56 +
+STACK CFI 7a .cfa: sp 28 +
+STACK CFI INIT 4b3dc 1b4 .cfa: sp 0 + .ra: lr
+STACK CFI 4b3e2 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4b3ea .cfa: sp 128 +
+STACK CFI 4b560 .cfa: sp 36 +
+STACK CFI INIT 4b590 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4b598 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4b59a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4b5b8 34 .cfa: sp 0 + .ra: lr
+STACK CFI 4b5ba .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4b5ec 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4b5ee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b5fe 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4b600 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4b61e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 4b622 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b638 3c .cfa: sp 0 + .ra: lr
+STACK CFI 4b63a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4b674 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4b67c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4b67e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b68e 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4b698 44 .cfa: sp 0 + .ra: lr
+STACK CFI 4b69a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 4b6dc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4b6de .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b6ee 28 .cfa: sp 0 + .ra: lr
+STACK CFI 4b6f0 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 4b718 94 .cfa: sp 0 + .ra: lr
+STACK CFI 4b71a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4b71e .cfa: sp 32 +
+STACK CFI 4b798 .cfa: sp 12 +
+STACK CFI INIT 4b7ac 12 .cfa: sp 0 + .ra: lr
+STACK CFI 4b7ae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b7be 40 .cfa: sp 0 + .ra: lr
+STACK CFI 4b7c0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 4b800 e4 .cfa: sp 0 + .ra: lr
+STACK CFI 4b806 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4b810 .cfa: sp 72 +
+STACK CFI 4b8cc .cfa: sp 24 +
+STACK CFI INIT 4b8e4 1e4 .cfa: sp 0 + .ra: lr
+STACK CFI 4b8e8 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4b8ec .cfa: sp 64 +
+STACK CFI 4ba82 .cfa: sp 28 +
+STACK CFI INIT 4bac8 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4bacc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4bad2 .cfa: sp 72 +
+STACK CFI 4bc7a .cfa: sp 32 +
+STACK CFI INIT 4bcbc e .cfa: sp 0 + .ra: lr
+STACK CFI 4bcbe .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4bcc6 .cfa: sp 4 +
+STACK CFI INIT 0 1f8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 72 +
+STACK CFI 1b4 .cfa: sp 32 +
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI a .cfa: sp 4 +
+STACK CFI INIT 4bccc 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4bcd0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4bcd6 .cfa: sp 72 +
+STACK CFI 4be7e .cfa: sp 32 +
+STACK CFI INIT 4bec0 e .cfa: sp 0 + .ra: lr
+STACK CFI 4bec2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4beca .cfa: sp 4 +
+STACK CFI INIT 0 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 72 +
+STACK CFI 1b4 .cfa: sp 32 +
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI a .cfa: sp 4 +
+STACK CFI INIT 0 1f8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 72 +
+STACK CFI 1b2 .cfa: sp 32 +
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI a .cfa: sp 4 +
+STACK CFI INIT 4bed0 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4bed4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4beda .cfa: sp 72 +
+STACK CFI 4c082 .cfa: sp 32 +
+STACK CFI INIT 4c0c4 e .cfa: sp 0 + .ra: lr
+STACK CFI 4c0c6 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4c0ce .cfa: sp 4 +
+STACK CFI INIT 4c0d4 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4c0d8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4c0de .cfa: sp 72 +
+STACK CFI 4c286 .cfa: sp 32 +
+STACK CFI INIT 4c2c8 e .cfa: sp 0 + .ra: lr
+STACK CFI 4c2ca .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4c2d2 .cfa: sp 4 +
+STACK CFI INIT 4c2d8 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4c2dc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4c2e2 .cfa: sp 72 +
+STACK CFI 4c48a .cfa: sp 32 +
+STACK CFI INIT 4c4cc e .cfa: sp 0 + .ra: lr
+STACK CFI 4c4ce .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4c4d6 .cfa: sp 4 +
+STACK CFI INIT 0 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 72 +
+STACK CFI 1b2 .cfa: sp 32 +
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI a .cfa: sp 4 +
+STACK CFI INIT 4c4dc 284 .cfa: sp 0 + .ra: lr
+STACK CFI 4c4e0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4c4ee .cfa: sp 96 +
+STACK CFI 4c716 .cfa: sp 36 +
+STACK CFI INIT 4c760 48 .cfa: sp 0 + .ra: lr
+STACK CFI 4c762 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4c7a6 .cfa: sp 8 +
+STACK CFI INIT 4c7a8 bc .cfa: sp 0 + .ra: lr
+STACK CFI 4c7aa .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4c85c .cfa: sp 0 + .ra: .ra r3: r3 r4: r4 r5: r5 r6: r6 r7: r7
+STACK CFI 4c860 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 4c864 116 .cfa: sp 0 + .ra: lr
+STACK CFI 4c868 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4c86a .cfa: sp 64 +
+STACK CFI 4c976 .cfa: sp 36 +
+STACK CFI INIT 4c97c 114 .cfa: sp 0 + .ra: lr
+STACK CFI 4c980 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4c990 .cfa: sp 72 +
+STACK CFI 4ca66 .cfa: sp 24 +
+STACK CFI INIT 4ca90 11a8 .cfa: sp 0 + .ra: lr
+STACK CFI 4ca94 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4caa8 .cfa: sp 104 +
+STACK CFI 4dbe4 .cfa: sp 36 +
+STACK CFI INIT 4dc38 10c .cfa: sp 0 + .ra: lr
+STACK CFI 4dc3c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4dc44 .cfa: sp 48 +
+STACK CFI 4dd1c .cfa: sp 24 +
+STACK CFI INIT 4dd44 11c .cfa: sp 0 + .ra: lr
+STACK CFI 4dd48 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4dd50 .cfa: sp 48 +
+STACK CFI 4de32 .cfa: sp 24 +
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI de .cfa: sp 20 +
+STACK CFI INIT 4de60 1c4 .cfa: sp 0 + .ra: lr
+STACK CFI 4de64 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4de74 .cfa: sp 136 +
+STACK CFI 4dffc .cfa: sp 36 +
+STACK CFI INIT 4e024 220 .cfa: sp 0 + .ra: lr
+STACK CFI 4e028 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4e038 .cfa: sp 104 +
+STACK CFI 4e21e .cfa: sp 28 +
+STACK CFI INIT 4e244 11c .cfa: sp 0 + .ra: lr
+STACK CFI 4e246 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4e24e .cfa: sp 40 +
+STACK CFI 4e342 .cfa: sp 20 +
+STACK CFI INIT 4e360 17c .cfa: sp 0 + .ra: lr
+STACK CFI 4e362 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4e366 .cfa: sp 40 +
+STACK CFI 4e4bc .cfa: sp 20 +
+STACK CFI INIT 0 dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 40 +
+STACK CFI bc .cfa: sp 20 +
+STACK CFI INIT 0 164 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI e .cfa: sp 104 +
+STACK CFI 13e .cfa: sp 28 +
+STACK CFI INIT 0 138 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI 118 .cfa: sp 20 +
+STACK CFI INIT 0 2b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI e .cfa: sp 48 +
+STACK CFI 27c .cfa: sp 24 +
+STACK CFI INIT 4e4dc 240 .cfa: sp 0 + .ra: lr
+STACK CFI 4e4e0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4e4e8 .cfa: sp 72 +
+STACK CFI 4e6cc .cfa: sp 32 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 32 +
+STACK CFI 78 .cfa: sp 12 +
+STACK CFI INIT 0 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI 16c .cfa: sp 20 +
+STACK CFI INIT 4e71c 1b0 .cfa: sp 0 + .ra: lr
+STACK CFI 4e720 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 4e728 .cfa: sp 64 +
+STACK CFI 4e88e .cfa: sp 28 +
+STACK CFI INIT 4e8cc 1d0 .cfa: sp 0 + .ra: lr
+STACK CFI 4e8d0 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4e8dc .cfa: sp 128 +
+STACK CFI 4ea68 .cfa: sp 32 +
+STACK CFI INIT 4ea9c 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4eaa0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4eaa8 1f0 .cfa: sp 0 + .ra: lr
+STACK CFI 4eaac .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4eab8 .cfa: sp 128 +
+STACK CFI 4ec62 .cfa: sp 32 +
+STACK CFI INIT 4ec98 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4ec9c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4eca4 1f0 .cfa: sp 0 + .ra: lr
+STACK CFI 4eca8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4ecb4 .cfa: sp 128 +
+STACK CFI 4ee5e .cfa: sp 32 +
+STACK CFI INIT 4ee94 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4ee98 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4eea0 1f8 .cfa: sp 0 + .ra: lr
+STACK CFI 4eea4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4eeb0 .cfa: sp 128 +
+STACK CFI 4f062 .cfa: sp 32 +
+STACK CFI INIT 4f098 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4f09c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4f0a4 90 .cfa: sp 0 + .ra: lr
+STACK CFI 4f0a6 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4f0aa .cfa: sp 40 +
+STACK CFI 4f118 .cfa: sp 20 +
+STACK CFI INIT 4f134 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 4f13c 358 .cfa: sp 0 + .ra: lr
+STACK CFI 4f140 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4f148 .cfa: sp 64 +
+STACK CFI 4f430 .cfa: sp 32 +
+STACK CFI INIT 4f494 27c .cfa: sp 0 + .ra: lr
+STACK CFI 4f498 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4f4a0 .cfa: sp 64 +
+STACK CFI 4f6c2 .cfa: sp 32 +
+STACK CFI INIT 4f710 124 .cfa: sp 0 + .ra: lr
+STACK CFI 4f714 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 4f71c .cfa: sp 48 +
+STACK CFI 4f806 .cfa: sp 24 +
+STACK CFI INIT 0 3ec .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e .cfa: sp 80 +
+STACK CFI 320 .cfa: sp 32 +
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI 76 .cfa: sp 20 +
+STACK CFI INIT 3179c 2e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 4f834 64 .cfa: sp 0 + .ra: lr
+STACK CFI 4f838 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 4f898 70 .cfa: sp 0 + .ra: lr
+STACK CFI 4f89a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4f8a8 .cfa: sp 40 +
+STACK CFI 4f906 .cfa: sp 20 +
+STACK CFI INIT 4f908 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4f90c .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 4f9f8 .cfa: sp 32 +
+STACK CFI INIT 4f9fc 4c .cfa: sp 0 + .ra: lr
+STACK CFI 4f9fe .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4fa06 .cfa: sp 40 +
+STACK CFI 4fa46 .cfa: sp 12 +
+STACK CFI INIT 4fa48 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4fa4a .cfa: sp 16 + .ra: .cfa -4 + ^
+STACK CFI 4fa5c .cfa: sp 4 +
+STACK CFI INIT 4fa60 50c .cfa: sp 0 + .ra: lr
+STACK CFI 4fa64 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 4fa6e .cfa: sp 176 +
+STACK CFI 4ff52 .cfa: sp 36 +
+STACK CFI INIT 4ff6c 80 .cfa: sp 0 + .ra: lr
+STACK CFI 4ff72 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 4ffec 1e8 .cfa: sp 0 + .ra: lr
+STACK CFI 4fff0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 50006 .cfa: sp 184 +
+STACK CFI 501b8 .cfa: sp 36 +
+STACK CFI INIT 501d4 630 .cfa: sp 0 + .ra: lr
+STACK CFI 501d8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 501e8 .cfa: sp 320 +
+STACK CFI 507ca .cfa: sp 36 +
+STACK CFI INIT 50804 61c .cfa: sp 0 + .ra: lr
+STACK CFI 50808 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5081a .cfa: sp 176 +
+STACK CFI 50d82 .cfa: sp 36 +
+STACK CFI INIT 0 52a .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 18 .cfa: sp 224 +
+STACK CFI 526 .cfa: sp 36 +
+STACK CFI INIT 50e20 64 .cfa: sp 0 + .ra: lr
+STACK CFI 50e24 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 50e84 70 .cfa: sp 0 + .ra: lr
+STACK CFI 50e86 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 50e94 .cfa: sp 40 +
+STACK CFI 50ef2 .cfa: sp 20 +
+STACK CFI INIT 50ef4 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 50ef8 .cfa: sp 48 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 50fe4 .cfa: sp 32 +
+STACK CFI INIT 50fe8 5a8 .cfa: sp 0 + .ra: lr
+STACK CFI 50fec .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 50ffe .cfa: sp 176 +
+STACK CFI 514fa .cfa: sp 36 +
+STACK CFI INIT 51590 66 .cfa: sp 0 + .ra: lr
+STACK CFI 51592 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 515f6 26 .cfa: sp 0 + .ra: lr
+STACK CFI 515f8 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 5161c 140 .cfa: sp 0 + .ra: lr
+STACK CFI 51620 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 51626 .cfa: sp 56 +
+STACK CFI 51752 .cfa: sp 32 +
+STACK CFI INIT 5175c c0 .cfa: sp 0 + .ra: lr
+STACK CFI 5175e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 5181c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 5181e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 51830 6c .cfa: sp 0 + .ra: lr
+STACK CFI 51832 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 5189c 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 518a4 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 518b0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 518b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 518c2 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 518ce 70 .cfa: sp 0 + .ra: lr
+STACK CFI 518d0 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 5193e 4e .cfa: sp 0 + .ra: lr
+STACK CFI 51940 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 5198c 52 .cfa: sp 0 + .ra: lr
+STACK CFI 5198e .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 519dc .cfa: sp 16 +
+STACK CFI INIT 519de 12c .cfa: sp 0 + .ra: lr
+STACK CFI 519e2 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 519ea .cfa: sp 48 +
+STACK CFI 51b06 .cfa: sp 28 +
+STACK CFI INIT 51b0a a0 .cfa: sp 0 + .ra: lr
+STACK CFI 51b0c .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 51ba8 .cfa: sp 8 +
+STACK CFI INIT 51bac a8 .cfa: sp 0 + .ra: lr
+STACK CFI 51bae .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 51c48 .cfa: sp 20 +
+STACK CFI INIT 51c54 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 51c5a a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 51c64 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16b0a 1e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2aa48 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2aa4a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 2aa4e .cfa: sp 48 +
+STACK CFI 2aa76 .cfa: sp 12 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 51c6a 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d26 42 .cfa: sp 0 + .ra: lr
+STACK CFI 16d28 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 16d68 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 16d6e 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16d70 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 173de 2c .cfa: sp 0 + .ra: lr
+STACK CFI 173e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1740a 40 .cfa: sp 0 + .ra: lr
+STACK CFI 1740c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1744a 24 .cfa: sp 0 + .ra: lr
+STACK CFI 1744c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 175b2 98 .cfa: sp 0 + .ra: lr
+STACK CFI 175b6 .cfa: sp 40 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 17646 .cfa: sp 28 +
+STACK CFI INIT 1746e b4 .cfa: sp 0 + .ra: lr
+STACK CFI 17470 .cfa: sp 32 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 17520 .cfa: sp 20 +
+STACK CFI INIT 51c8e 28 .cfa: sp 0 + .ra: lr
+STACK CFI 51c90 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 51cb8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 51cba .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 51ce4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 51ce6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 51cf6 24 .cfa: sp 0 + .ra: lr
+STACK CFI 51cfa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 51d1c e8 .cfa: sp 0 + .ra: lr
+STACK CFI 51d22 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 51d2c .cfa: sp 88 +
+STACK CFI 51df0 .cfa: sp 32 +
+STACK CFI INIT 51e04 3e .cfa: sp 0 + .ra: lr
+STACK CFI 51e08 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 51e40 .cfa: sp 12 +
+STACK CFI INIT 0 98 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 80 +
+STACK CFI 96 .cfa: sp 20 +
+STACK CFI INIT 51e44 194 .cfa: sp 0 + .ra: lr
+STACK CFI 51e48 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 51e4c .cfa: sp 96 +
+STACK CFI 51fba .cfa: sp 28 +
+STACK CFI INIT 20424 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 20450 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 2047c 9e .cfa: sp 0 + .ra: lr
+STACK CFI 20480 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 51fd8 80 .cfa: sp 0 + .ra: lr
+STACK CFI 51fde .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 52058 218 .cfa: sp 0 + .ra: lr
+STACK CFI 5205c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 52072 .cfa: sp 176 +
+STACK CFI 52252 .cfa: sp 36 +
+STACK CFI INIT 52270 174 .cfa: sp 0 + .ra: lr
+STACK CFI 52274 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 52282 .cfa: sp 128 +
+STACK CFI 523bc .cfa: sp 36 +
+STACK CFI INIT 523e4 16 .cfa: sp 0 + .ra: lr
+STACK CFI 523e6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 523fc 2c .cfa: sp 0 + .ra: lr
+STACK CFI 523fe .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 52428 58 .cfa: sp 0 + .ra: lr
+STACK CFI 5242a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 52480 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52484 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52498 12 .cfa: sp 0 + .ra: lr
+STACK CFI 5249a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 524ac 10 .cfa: sp 0 + .ra: lr
+STACK CFI 524b0 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 524bc f8 .cfa: sp 0 + .ra: lr
+STACK CFI 524c0 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 524c6 .cfa: sp 24 +
+STACK CFI INIT 525b4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 525b6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 525e0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 525e4 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52600 34 .cfa: sp 0 + .ra: lr
+STACK CFI 52602 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52634 40 .cfa: sp 0 + .ra: lr
+STACK CFI 52636 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 52674 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52680 34 .cfa: sp 0 + .ra: lr
+STACK CFI 52682 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 526b8 44 .cfa: sp 0 + .ra: lr
+STACK CFI 526ba .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 52700 74 .cfa: sp 0 + .ra: lr
+STACK CFI 52702 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 52778 7c .cfa: sp 0 + .ra: lr
+STACK CFI 5277a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15c44 70 .cfa: sp 0 + .ra: lr
+STACK CFI 15c4a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 527f8 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52800 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52804 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52814 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52804 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52820 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5282c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52830 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5282c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52830 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52804 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52844 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52854 10 .cfa: sp 0 + .ra: lr
+STACK CFI 52856 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52864 5c .cfa: sp 0 + .ra: lr
+STACK CFI 52866 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 528c0 a .cfa: sp 0 + .ra: lr
+STACK CFI 528c2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 528cc a .cfa: sp 0 + .ra: lr
+STACK CFI INIT 528d8 1a .cfa: sp 0 + .ra: lr
+STACK CFI 528da .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 528f4 3c .cfa: sp 0 + .ra: lr
+STACK CFI 528f8 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 528fa .cfa: sp 24 +
+STACK CFI INIT 52930 2b4 .cfa: sp 0 + .ra: lr
+STACK CFI 52934 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 52936 .cfa: sp 112 +
+STACK CFI INIT 52be4 5c .cfa: sp 0 + .ra: lr
+STACK CFI 52be6 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 52bea .cfa: sp 40 +
+STACK CFI INIT 52c40 10 .cfa: sp 0 + .ra: lr
+STACK CFI 52c42 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52c50 2c .cfa: sp 0 + .ra: lr
+STACK CFI 52c52 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 52c5a .cfa: sp 32 +
+STACK CFI INIT 52c7c 16 .cfa: sp 0 + .ra: lr
+STACK CFI 52c82 .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 52c94 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52c98 6e .cfa: sp 0 + .ra: lr
+STACK CFI 52c9a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 52c9e .cfa: sp 32 +
+STACK CFI INIT 52d08 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52d14 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52d18 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52d2c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 52d2e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52d40 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52d42 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52d58 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52d84 48 .cfa: sp 0 + .ra: lr
+STACK CFI 52d86 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52dcc 14 .cfa: sp 0 + .ra: lr
+STACK CFI 52dce .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52de0 168 .cfa: sp 0 + .ra: lr
+STACK CFI 52dea .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 52dee .cfa: sp 80 +
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52f48 18 .cfa: sp 0 + .ra: lr
+STACK CFI 52f4c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52f60 12 .cfa: sp 0 + .ra: lr
+STACK CFI 52f62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 52f74 24 .cfa: sp 0 + .ra: lr
+STACK CFI 52f76 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 52f98 12 .cfa: sp 0 + .ra: lr
+STACK CFI 52f9a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52fac 24 .cfa: sp 0 + .ra: lr
+STACK CFI 52fae .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 52fd0 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 52ffc a .cfa: sp 0 + .ra: lr
+STACK CFI 52ffe .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53008 6 .cfa: sp 0 + .ra: lr
+STACK CFI 5300a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53010 2c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5303c e .cfa: sp 0 + .ra: lr
+STACK CFI 5303e .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 5304c 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5305c c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53068 18 .cfa: sp 0 + .ra: lr
+STACK CFI 5306c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53080 18 .cfa: sp 0 + .ra: lr
+STACK CFI 53084 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53098 12 .cfa: sp 0 + .ra: lr
+STACK CFI 5309a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 530ac 14 .cfa: sp 0 + .ra: lr
+STACK CFI 530ae .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 530c0 e .cfa: sp 0 + .ra: lr
+STACK CFI 530c2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 530d0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 530d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 530e8 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 530f0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 530f4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5311c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 53120 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53138 1c .cfa: sp 0 + .ra: lr
+STACK CFI 5313c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53154 12 .cfa: sp 0 + .ra: lr
+STACK CFI 53156 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53168 1c .cfa: sp 0 + .ra: lr
+STACK CFI 5316c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53184 12 .cfa: sp 0 + .ra: lr
+STACK CFI 53186 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53198 12 .cfa: sp 0 + .ra: lr
+STACK CFI 5319a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 531ac 12 .cfa: sp 0 + .ra: lr
+STACK CFI 531ae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 531c0 74 .cfa: sp 0 + .ra: lr
+STACK CFI 531c4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 68 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 53234 24 .cfa: sp 0 + .ra: lr
+STACK CFI 53236 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 53258 40 .cfa: sp 0 + .ra: lr
+STACK CFI 5325a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 53298 60 .cfa: sp 0 + .ra: lr
+STACK CFI 5329a .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 5329e .cfa: sp 40 +
+STACK CFI INIT 532f8 60 .cfa: sp 0 + .ra: lr
+STACK CFI 532fa .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 532fe .cfa: sp 40 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 53358 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53368 18 .cfa: sp 0 + .ra: lr
+STACK CFI 5336a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53380 32 .cfa: sp 0 + .ra: lr
+STACK CFI 53382 .cfa: sp 4 + .ra: .cfa -4 + ^
+STACK CFI 53384 .cfa: sp 112 +
+STACK CFI INIT 533b4 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 533b6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 533bc .cfa: sp 120 +
+STACK CFI INIT 53494 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5349c 78 .cfa: sp 0 + .ra: lr
+STACK CFI 5349e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 534a4 .cfa: sp 120 +
+STACK CFI INIT 53514 28 .cfa: sp 0 + .ra: lr
+STACK CFI 53516 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5353c 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53544 34 .cfa: sp 0 + .ra: lr
+STACK CFI 53546 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 53578 42 .cfa: sp 0 + .ra: lr
+STACK CFI 5357c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 53580 .cfa: sp 16 +
+STACK CFI INIT 535bc 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 535c4 48 .cfa: sp 0 + .ra: lr
+STACK CFI 535c6 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 535c8 .cfa: sp 32 +
+STACK CFI INIT 5360c 128 .cfa: sp 0 + .ra: lr
+STACK CFI 53612 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 53618 .cfa: sp 56 +
+STACK CFI INIT 0 72 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 53734 5c .cfa: sp 0 + .ra: lr
+STACK CFI 53736 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 53790 ec .cfa: sp 0 + .ra: lr
+STACK CFI 53794 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 5387c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 53880 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53898 12 .cfa: sp 0 + .ra: lr
+STACK CFI 5389a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 538ac 1c .cfa: sp 0 + .ra: lr
+STACK CFI 538ae .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 538c8 28 .cfa: sp 0 + .ra: lr
+STACK CFI 538ca .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 538f0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 538f6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53934 12 .cfa: sp 0 + .ra: lr
+STACK CFI 53936 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53948 60 .cfa: sp 0 + .ra: lr
+STACK CFI 5394a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 53954 .cfa: sp 32 +
+STACK CFI INIT 539a8 3c .cfa: sp 0 + .ra: lr
+STACK CFI 539aa .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 53234 24 .cfa: sp 0 + .ra: lr
+STACK CFI 53236 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 539e4 78 .cfa: sp 0 + .ra: lr
+STACK CFI 539e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 539ec .cfa: sp 32 +
+STACK CFI INIT 0 88 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a60 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a6c 16 .cfa: sp 0 + .ra: lr
+STACK CFI 53a6e .cfa: sp 8 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fbc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 92 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 5e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 5e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 49896 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a8c 5c .cfa: sp 0 + .ra: lr
+STACK CFI 53a90 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 53ae8 62 .cfa: sp 0 + .ra: lr
+STACK CFI 53aec .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 53b4c 64 .cfa: sp 0 + .ra: lr
+STACK CFI 53b50 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 53bb0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 53bb4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53bc8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 53bcc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53be4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 53be6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53bf8 1e .cfa: sp 0 + .ra: lr
+STACK CFI 53bfa .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53c18 6a .cfa: sp 0 + .ra: lr
+STACK CFI 53c1c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 53c1e .cfa: sp 40 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 6a .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 53c84 58 .cfa: sp 0 + .ra: lr
+STACK CFI 53c86 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 53cdc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 53ce0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53cf4 8a .cfa: sp 0 + .ra: lr
+STACK CFI 53cf6 .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 0 56 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT c 12 .cfa: sp 0 + .ra: lr
+STACK CFI e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 12 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53d80 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53d8c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 53d92 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53db8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53dc4 28 .cfa: sp 0 + .ra: lr
+STACK CFI 53dca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53dec c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53df8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 53dfa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53e0c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 53e10 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53e2c c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53e38 28 .cfa: sp 0 + .ra: lr
+STACK CFI 53e3e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53e60 1e .cfa: sp 0 + .ra: lr
+STACK CFI 53e62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53e60 1e .cfa: sp 0 + .ra: lr
+STACK CFI 53e62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53e80 1e .cfa: sp 0 + .ra: lr
+STACK CFI 53e82 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53ea0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 53ea2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 53ec0 22c .cfa: sp 0 + .ra: lr
+STACK CFI 53ec4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 540ec 28 .cfa: sp 0 + .ra: lr
+STACK CFI 540f0 .cfa: sp 4 + .ra: .cfa -4 + ^
+STACK CFI 540f6 .cfa: sp 16 +
+STACK CFI INIT 54114 90 .cfa: sp 0 + .ra: lr
+STACK CFI 54116 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 541a4 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 541b8 ac .cfa: sp 0 + .ra: lr
+STACK CFI 541be .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 541c8 .cfa: sp 24 +
+STACK CFI INIT 54264 56 .cfa: sp 0 + .ra: lr
+STACK CFI 54266 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 5426a .cfa: sp 24 +
+STACK CFI INIT 542bc 90 .cfa: sp 0 + .ra: lr
+STACK CFI 542be .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5434c ac .cfa: sp 0 + .ra: lr
+STACK CFI 54352 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 5435c .cfa: sp 24 +
+STACK CFI INIT 543f8 5a .cfa: sp 0 + .ra: lr
+STACK CFI 543fa .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 298 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI a .cfa: sp 48 +
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 32 +
+STACK CFI INIT 0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 24 +
+STACK CFI INIT 54454 40 .cfa: sp 0 + .ra: lr
+STACK CFI 54456 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 54494 90 .cfa: sp 0 + .ra: lr
+STACK CFI 54496 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5449a .cfa: sp 32 +
+STACK CFI INIT 54524 5e .cfa: sp 0 + .ra: lr
+STACK CFI 54526 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 54528 .cfa: sp 24 +
+STACK CFI INIT 54584 40 .cfa: sp 0 + .ra: lr
+STACK CFI 54586 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 545c4 388 .cfa: sp 0 + .ra: lr
+STACK CFI 545c8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 545ca .cfa: sp 56 +
+STACK CFI INIT 5494c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 54950 .cfa: sp 4 + .ra: .cfa -4 + ^
+STACK CFI 54956 .cfa: sp 16 +
+STACK CFI INIT 54978 20 .cfa: sp 0 + .ra: lr
+STACK CFI 5497c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 54998 9e .cfa: sp 0 + .ra: lr
+STACK CFI 5499a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 54a38 48 .cfa: sp 0 + .ra: lr
+STACK CFI 54a3c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 54a80 12 .cfa: sp 0 + .ra: lr
+STACK CFI 54a82 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 be .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 54a94 74 .cfa: sp 0 + .ra: lr
+STACK CFI 54a96 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 54b08 2c .cfa: sp 0 + .ra: lr
+STACK CFI 54b0a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 54b34 52 .cfa: sp 0 + .ra: lr
+STACK CFI 54b36 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 54b88 11c .cfa: sp 0 + .ra: lr
+STACK CFI 54b8c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 54b8e .cfa: sp 72 +
+STACK CFI INIT 54ca4 52 .cfa: sp 0 + .ra: lr
+STACK CFI 54ca6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 72 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 52 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 136 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 72 +
+STACK CFI INIT 54cf8 86 .cfa: sp 0 + .ra: lr
+STACK CFI 54cfa .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 54d80 84 .cfa: sp 0 + .ra: lr
+STACK CFI 54d82 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 54d84 .cfa: sp 32 +
+STACK CFI INIT 54e04 1b4 .cfa: sp 0 + .ra: lr
+STACK CFI 54e08 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 54e10 .cfa: sp 40 +
+STACK CFI INIT 0 86 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 96 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 220 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI INIT 54fb8 112 .cfa: sp 0 + .ra: lr
+STACK CFI 54fbe .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 54fc4 .cfa: sp 56 +
+STACK CFI INIT 550cc 76 .cfa: sp 0 + .ra: lr
+STACK CFI 550ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55144 1c .cfa: sp 0 + .ra: lr
+STACK CFI 55148 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55160 12 .cfa: sp 0 + .ra: lr
+STACK CFI 55162 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55174 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55176 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55194 1c .cfa: sp 0 + .ra: lr
+STACK CFI 55196 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 24 +
+STACK CFI INIT 551b0 10 .cfa: sp 0 + .ra: lr
+STACK CFI 551b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 551c0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 551c4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 551dc 2e .cfa: sp 0 + .ra: lr
+STACK CFI 551de .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 5520c 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55224 1e .cfa: sp 0 + .ra: lr
+STACK CFI 55226 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 55244 10 .cfa: sp 0 + .ra: lr
+STACK CFI 55248 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 72 +
+STACK CFI INIT 55254 ce .cfa: sp 0 + .ra: lr
+STACK CFI 5525a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5525e .cfa: sp 96 +
+STACK CFI INIT 55324 e .cfa: sp 0 + .ra: lr
+STACK CFI 55326 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 2f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI a .cfa: sp 96 +
+STACK CFI INIT 0 138 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 1576 +
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 16c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 72 +
+STACK CFI INIT 0 ac .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 56 +
+STACK CFI INIT 0 1104 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 720 +
+STACK CFI INIT 0 26c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 1652 +
+STACK CFI c .cfa: sp 1664 +
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55334 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 5533c 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55344 18 .cfa: sp 0 + .ra: lr
+STACK CFI 55348 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5535c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 55360 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55374 18 .cfa: sp 0 + .ra: lr
+STACK CFI 55378 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5538c 18 .cfa: sp 0 + .ra: lr
+STACK CFI 55390 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 553a4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 553a8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 553bc 18 .cfa: sp 0 + .ra: lr
+STACK CFI 553c0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 553d4 18 .cfa: sp 0 + .ra: lr
+STACK CFI 553d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 553ec 18 .cfa: sp 0 + .ra: lr
+STACK CFI 553f0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55404 e .cfa: sp 0 + .ra: lr
+STACK CFI 55406 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 13b60 28 .cfa: sp 0 + .ra: lr
+STACK CFI 13b62 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55414 10a .cfa: sp 0 + .ra: lr
+STACK CFI 55418 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 55520 de .cfa: sp 0 + .ra: lr
+STACK CFI 5552a .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 55600 10c .cfa: sp 0 + .ra: lr
+STACK CFI 55604 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 5570c ee .cfa: sp 0 + .ra: lr
+STACK CFI 55710 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 557fc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55800 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5581c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55820 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5583c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55840 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5585c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55860 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5587c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 55880 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5589c 20 .cfa: sp 0 + .ra: lr
+STACK CFI 558a0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 558bc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 558c0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 558dc 20 .cfa: sp 0 + .ra: lr
+STACK CFI 558e0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 558fc 6a .cfa: sp 0 + .ra: lr
+STACK CFI 558fe .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 55968 66 .cfa: sp 0 + .ra: lr
+STACK CFI 5596c .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 559d0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 559d2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 55a00 74 .cfa: sp 0 + .ra: lr
+STACK CFI 55a04 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55a74 28 .cfa: sp 0 + .ra: lr
+STACK CFI 55a76 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 55a9c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 55a9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55ac4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 55ac6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55ae0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55aec 24 .cfa: sp 0 + .ra: lr
+STACK CFI 55aee .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55b10 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 55b14 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 55b1c .cfa: sp 40 +
+STACK CFI INIT 0 f0 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55bd4 56 .cfa: sp 0 + .ra: lr
+STACK CFI 55bd6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55c2c 74 .cfa: sp 0 + .ra: lr
+STACK CFI 55c30 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 55ca0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 55ca2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 55cec f0 .cfa: sp 0 + .ra: lr
+STACK CFI 55cf0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 55ddc 2c .cfa: sp 0 + .ra: lr
+STACK CFI 55de0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55e08 2c .cfa: sp 0 + .ra: lr
+STACK CFI 55e0c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55e34 30 .cfa: sp 0 + .ra: lr
+STACK CFI 55e38 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55e64 30 .cfa: sp 0 + .ra: lr
+STACK CFI 55e68 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 55e94 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 55eb4 14a .cfa: sp 0 + .ra: lr
+STACK CFI 55eb8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 56000 2c .cfa: sp 0 + .ra: lr
+STACK CFI 56004 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 5602c 2c .cfa: sp 0 + .ra: lr
+STACK CFI 56030 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 56058 30 .cfa: sp 0 + .ra: lr
+STACK CFI 5605c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 56088 30 .cfa: sp 0 + .ra: lr
+STACK CFI 5608c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 560b8 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 560dc 40 .cfa: sp 0 + .ra: lr
+STACK CFI 560de .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 5611c 68 .cfa: sp 0 + .ra: lr
+STACK CFI 5611e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 56184 59c .cfa: sp 0 + .ra: lr
+STACK CFI 56188 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 5618a .cfa: sp 144 +
+STACK CFI INIT 56720 b8 .cfa: sp 0 + .ra: lr
+STACK CFI 56724 .cfa: sp 32 + r10: .cfa -8 + ^ r11: .cfa -4 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 567d8 2e .cfa: sp 0 + .ra: lr
+STACK CFI 567da .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 56808 70 .cfa: sp 0 + .ra: lr
+STACK CFI 5680c .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 14 .cfa: sp 32 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 84 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 56878 48 .cfa: sp 0 + .ra: lr
+STACK CFI 5687e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 56882 .cfa: sp 16 +
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 568c0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 568c2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 568c6 .cfa: sp 16 +
+STACK CFI INIT 568fc 144 .cfa: sp 0 + .ra: lr
+STACK CFI 56900 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56904 .cfa: sp 632 +
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI a .cfa: sp 48 +
+STACK CFI INIT 0 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI INIT 0 9a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 0 184 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e .cfa: sp 40 +
+STACK CFI INIT 0 314 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 56 +
+STACK CFI INIT 0 19c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e .cfa: sp 40 +
+STACK CFI INIT 0 2c0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI INIT 0 1c0 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI e .cfa: sp 40 +
+STACK CFI INIT 0 2a8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI e .cfa: sp 56 +
+STACK CFI INIT 56a40 32 .cfa: sp 0 + .ra: lr
+STACK CFI 56a42 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 56a74 8e .cfa: sp 0 + .ra: lr
+STACK CFI 56a76 .cfa: sp 8 +
+STACK CFI 56a7a .cfa: sp 36 + .ra: .cfa -12 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56a7c .cfa: sp 56 +
+STACK CFI INIT 56b04 8e .cfa: sp 0 + .ra: lr
+STACK CFI 56b06 .cfa: sp 8 +
+STACK CFI 56b0a .cfa: sp 36 + .ra: .cfa -12 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56b0c .cfa: sp 56 +
+STACK CFI INIT 56b94 28c .cfa: sp 0 + .ra: lr
+STACK CFI 56b98 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56b9a .cfa: sp 184 +
+STACK CFI INIT 56e20 44 .cfa: sp 0 + .ra: lr
+STACK CFI 56e22 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 56e24 .cfa: sp 40 +
+STACK CFI INIT 56e64 2dc .cfa: sp 0 + .ra: lr
+STACK CFI 56e68 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56e6a .cfa: sp 128 +
+STACK CFI INIT 57140 46 .cfa: sp 0 + .ra: lr
+STACK CFI 57142 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 57144 .cfa: sp 40 +
+STACK CFI INIT 56a74 8e .cfa: sp 0 + .ra: lr
+STACK CFI 56a76 .cfa: sp 8 +
+STACK CFI 56a7a .cfa: sp 36 + .ra: .cfa -12 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56a7c .cfa: sp 56 +
+STACK CFI INIT 57188 154 .cfa: sp 0 + .ra: lr
+STACK CFI 5718c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5718e .cfa: sp 80 +
+STACK CFI INIT 572e0 168 .cfa: sp 0 + .ra: lr
+STACK CFI 572e4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 572e8 .cfa: sp 60 + s16: .cfa -60 + ^ s18: .cfa -52 + ^ s20: .cfa -44 + ^
+STACK CFI 572ea .cfa: sp 144 +
+STACK CFI INIT 57448 134 .cfa: sp 0 + .ra: lr
+STACK CFI 5744c .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 56b04 8e .cfa: sp 0 + .ra: lr
+STACK CFI 56b06 .cfa: sp 8 +
+STACK CFI 56b0a .cfa: sp 36 + .ra: .cfa -12 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 56b0c .cfa: sp 56 +
+STACK CFI INIT 5757c 8c4 .cfa: sp 0 + .ra: lr
+STACK CFI 57580 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 57584 .cfa: sp 904 +
+STACK CFI INIT 57e40 32 .cfa: sp 0 + .ra: lr
+STACK CFI 57e42 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 57e44 .cfa: sp 40 +
+STACK CFI INIT 57e74 8c4 .cfa: sp 0 + .ra: lr
+STACK CFI 57e78 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 57e7c .cfa: sp 904 +
+STACK CFI INIT 58738 9c .cfa: sp 0 + .ra: lr
+STACK CFI 5873a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5873e .cfa: sp 600 +
+STACK CFI INIT 587d8 168 .cfa: sp 0 + .ra: lr
+STACK CFI 587dc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 587e0 .cfa: sp 60 + s16: .cfa -60 + ^ s18: .cfa -52 + ^ s20: .cfa -44 + ^
+STACK CFI 587e2 .cfa: sp 144 +
+STACK CFI INIT 58940 1e8 .cfa: sp 0 + .ra: lr
+STACK CFI 58944 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 58946 .cfa: sp 88 +
+STACK CFI INIT 58b28 84 .cfa: sp 0 + .ra: lr
+STACK CFI 58b2a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 58b30 .cfa: sp 16 +
+STACK CFI INIT 58bac 78 .cfa: sp 0 + .ra: lr
+STACK CFI 58bae .cfa: sp 8 +
+STACK CFI 58bb0 .cfa: sp 24 + .ra: .cfa -12 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^
+STACK CFI INIT 58c24 76 .cfa: sp 0 + .ra: lr
+STACK CFI 58c26 .cfa: sp 8 +
+STACK CFI 58c28 .cfa: sp 24 + .ra: .cfa -12 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^
+STACK CFI INIT 58c9c 284 .cfa: sp 0 + .ra: lr
+STACK CFI 58ca0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 58ca4 .cfa: sp 208 +
+STACK CFI INIT 58f20 1ce .cfa: sp 0 + .ra: lr
+STACK CFI 58f24 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 58f26 .cfa: sp 128 +
+STACK CFI INIT 590f0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 590f2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 590f4 .cfa: sp 80 +
+STACK CFI INIT 59140 350 .cfa: sp 0 + .ra: lr
+STACK CFI 59142 .cfa: sp 8 +
+STACK CFI 59146 .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 59148 .cfa: sp 80 +
+STACK CFI INIT 59490 8a .cfa: sp 0 + .ra: lr
+STACK CFI 59492 .cfa: sp 8 +
+STACK CFI 59496 .cfa: sp 32 + .ra: .cfa -12 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^
+STACK CFI 59498 .cfa: sp 72 +
+STACK CFI INIT 5951c 78 .cfa: sp 0 + .ra: lr
+STACK CFI 5951e .cfa: sp 8 +
+STACK CFI 59520 .cfa: sp 28 + .ra: .cfa -12 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^
+STACK CFI 59522 .cfa: sp 72 +
+STACK CFI INIT 59594 6e .cfa: sp 0 + .ra: lr
+STACK CFI 59596 .cfa: sp 8 +
+STACK CFI 59598 .cfa: sp 24 + .ra: .cfa -12 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^
+STACK CFI INIT 59604 84 .cfa: sp 0 + .ra: lr
+STACK CFI 59606 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5960c .cfa: sp 16 +
+STACK CFI INIT 59688 178 .cfa: sp 0 + .ra: lr
+STACK CFI 5968c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5968e .cfa: sp 88 +
+STACK CFI INIT 59800 6e .cfa: sp 0 + .ra: lr
+STACK CFI 59802 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 59808 .cfa: sp 32 +
+STACK CFI INIT 59870 70 .cfa: sp 0 + .ra: lr
+STACK CFI 59872 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 59878 .cfa: sp 32 +
+STACK CFI INIT 598e0 c0 .cfa: sp 0 + .ra: lr
+STACK CFI 598e2 .cfa: sp 8 +
+STACK CFI 598e6 .cfa: sp 40 + .ra: .cfa -12 + ^ r10: .cfa -16 + ^ r4: .cfa -40 + ^ r5: .cfa -36 + ^ r6: .cfa -32 + ^ r7: .cfa -28 + ^ r8: .cfa -24 + ^ r9: .cfa -20 + ^
+STACK CFI 598e8 .cfa: sp 56 +
+STACK CFI INIT 599a0 198 .cfa: sp 0 + .ra: lr
+STACK CFI 599a6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 599a8 .cfa: sp 96 +
+STACK CFI INIT 59b38 158 .cfa: sp 0 + .ra: lr
+STACK CFI 59b3c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 59b3e .cfa: sp 56 +
+STACK CFI INIT 59c90 17a .cfa: sp 0 + .ra: lr
+STACK CFI 59c94 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 59c96 .cfa: sp 128 +
+STACK CFI INIT 59e0c 4e .cfa: sp 0 + .ra: lr
+STACK CFI 59e0e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 59e10 .cfa: sp 80 +
+STACK CFI INIT 59e5c 2d0 .cfa: sp 0 + .ra: lr
+STACK CFI 59e60 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 59e62 .cfa: sp 80 +
+STACK CFI INIT 5a12c 7c .cfa: sp 0 + .ra: lr
+STACK CFI 5a130 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 5a132 .cfa: sp 64 +
+STACK CFI INIT 5a1a8 74 .cfa: sp 0 + .ra: lr
+STACK CFI 5a1aa .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5a1ac .cfa: sp 64 +
+STACK CFI INIT 5a21c 68 .cfa: sp 0 + .ra: lr
+STACK CFI 5a21e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5a220 .cfa: sp 32 +
+STACK CFI INIT 5a284 2b2 .cfa: sp 0 + .ra: lr
+STACK CFI 5a288 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 5a28a .cfa: sp 48 +
+STACK CFI INIT 5a538 1e8 .cfa: sp 0 + .ra: lr
+STACK CFI 5a53c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5a53e .cfa: sp 128 +
+STACK CFI INIT 5a720 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5a724 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5a72c .cfa: sp 104 +
+STACK CFI INIT 5a818 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5a81a .cfa: sp 8 +
+STACK CFI 5a81c .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5a81e .cfa: sp 32 +
+STACK CFI INIT 5a848 80 .cfa: sp 0 + .ra: lr
+STACK CFI 5a84a .cfa: sp 8 +
+STACK CFI 5a84c .cfa: sp 28 + .ra: .cfa -12 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^
+STACK CFI 5a84e .cfa: sp 64 +
+STACK CFI INIT 5a8c8 1d4 .cfa: sp 0 + .ra: lr
+STACK CFI 5a8cc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5a8ce .cfa: sp 128 +
+STACK CFI INIT 5aa9c f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5aaa0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5aaa8 .cfa: sp 104 +
+STACK CFI INIT 5ab94 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5ab96 .cfa: sp 8 +
+STACK CFI 5ab98 .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5ab9a .cfa: sp 32 +
+STACK CFI INIT 5abc4 1ce .cfa: sp 0 + .ra: lr
+STACK CFI 5abc8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5abca .cfa: sp 128 +
+STACK CFI INIT 5ad94 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5ad98 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5ada0 .cfa: sp 104 +
+STACK CFI INIT 5ae8c 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5ae8e .cfa: sp 8 +
+STACK CFI 5ae90 .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5ae92 .cfa: sp 32 +
+STACK CFI INIT 5abc4 1ce .cfa: sp 0 + .ra: lr
+STACK CFI 5abc8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5abca .cfa: sp 128 +
+STACK CFI INIT 5ad94 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5ad98 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5ada0 .cfa: sp 104 +
+STACK CFI INIT 5ae8c 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5ae8e .cfa: sp 8 +
+STACK CFI 5ae90 .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5ae92 .cfa: sp 32 +
+STACK CFI INIT 5aebc 246 .cfa: sp 0 + .ra: lr
+STACK CFI 5aec0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5aec2 .cfa: sp 152 +
+STACK CFI INIT 5b104 fc .cfa: sp 0 + .ra: lr
+STACK CFI 5b108 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5b110 .cfa: sp 104 +
+STACK CFI INIT 5b200 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5b202 .cfa: sp 8 +
+STACK CFI 5b204 .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5b206 .cfa: sp 32 +
+STACK CFI INIT 5b230 3a .cfa: sp 0 + .ra: lr
+STACK CFI 5b232 .cfa: sp 8 +
+STACK CFI 5b234 .cfa: sp 24 + .ra: .cfa -12 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^
+STACK CFI 5b236 .cfa: sp 48 +
+STACK CFI INIT 5b26c 202 .cfa: sp 0 + .ra: lr
+STACK CFI 5b270 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5b272 .cfa: sp 152 +
+STACK CFI INIT 5b470 fc .cfa: sp 0 + .ra: lr
+STACK CFI 5b474 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5b47c .cfa: sp 104 +
+STACK CFI INIT 5b56c 2e .cfa: sp 0 + .ra: lr
+STACK CFI 5b56e .cfa: sp 8 +
+STACK CFI 5b570 .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 5b572 .cfa: sp 32 +
+STACK CFI INIT 5b59c 2d2 .cfa: sp 0 + .ra: lr
+STACK CFI 5b5a0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 5b5a2 .cfa: sp 32 +
+STACK CFI INIT 5b870 192 .cfa: sp 0 + .ra: lr
+STACK CFI 5b874 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5b876 .cfa: sp 136 +
+STACK CFI INIT 5ba04 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5ba08 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5ba10 .cfa: sp 104 +
+STACK CFI INIT 5bafc 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5bafe .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5bb00 .cfa: sp 32 +
+STACK CFI INIT 5bb24 76 .cfa: sp 0 + .ra: lr
+STACK CFI 5bb26 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5bb28 .cfa: sp 64 +
+STACK CFI INIT 5bb9c 17e .cfa: sp 0 + .ra: lr
+STACK CFI 5bba0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5bba2 .cfa: sp 128 +
+STACK CFI INIT 5bd1c f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5bd20 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5bd28 .cfa: sp 104 +
+STACK CFI INIT 5be14 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5be16 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5be18 .cfa: sp 32 +
+STACK CFI INIT 5be3c 17a .cfa: sp 0 + .ra: lr
+STACK CFI 5be40 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5be42 .cfa: sp 128 +
+STACK CFI INIT 5bfb8 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5bfbc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5bfc4 .cfa: sp 104 +
+STACK CFI INIT 5c0b0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5c0b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5c0b4 .cfa: sp 32 +
+STACK CFI INIT 5c0d8 178 .cfa: sp 0 + .ra: lr
+STACK CFI 5c0dc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c0de .cfa: sp 128 +
+STACK CFI INIT 5c250 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5c254 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c25c .cfa: sp 104 +
+STACK CFI INIT 5c348 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5c34a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5c34c .cfa: sp 32 +
+STACK CFI INIT 5c370 1f4 .cfa: sp 0 + .ra: lr
+STACK CFI 5c374 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c376 .cfa: sp 152 +
+STACK CFI INIT 5c564 fc .cfa: sp 0 + .ra: lr
+STACK CFI 5c568 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c570 .cfa: sp 104 +
+STACK CFI INIT 5c660 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5c662 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5c664 .cfa: sp 32 +
+STACK CFI INIT 5c688 32 .cfa: sp 0 + .ra: lr
+STACK CFI 5c68a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 5c68c .cfa: sp 48 +
+STACK CFI INIT 5c6bc 210 .cfa: sp 0 + .ra: lr
+STACK CFI 5c6c0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c6c2 .cfa: sp 160 +
+STACK CFI INIT 5c8cc fc .cfa: sp 0 + .ra: lr
+STACK CFI 5c8d0 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5c8d8 .cfa: sp 104 +
+STACK CFI INIT 5c9c8 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5c9ca .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5c9cc .cfa: sp 32 +
+STACK CFI INIT 5c9f0 3b4 .cfa: sp 0 + .ra: lr
+STACK CFI 5c9f2 .cfa: sp 8 +
+STACK CFI 5c9f8 .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 5c9fa .cfa: sp 120 +
+STACK CFI INIT 5cda4 114 .cfa: sp 0 + .ra: lr
+STACK CFI 5cda6 .cfa: sp 8 +
+STACK CFI 5cdaa .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 5cdac .cfa: sp 360 +
+STACK CFI INIT 5ceb8 70 .cfa: sp 0 + .ra: lr
+STACK CFI 5ceba .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5cebc .cfa: sp 64 +
+STACK CFI INIT 5cf28 13c .cfa: sp 0 + .ra: lr
+STACK CFI 5cf2c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5cf2e .cfa: sp 72 +
+STACK CFI INIT 5d064 22 .cfa: sp 0 + .ra: lr
+STACK CFI 5d066 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5d068 .cfa: sp 24 +
+STACK CFI INIT 5d088 76 .cfa: sp 0 + .ra: lr
+STACK CFI 5d08a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5d08c .cfa: sp 88 +
+STACK CFI INIT 5d100 76 .cfa: sp 0 + .ra: lr
+STACK CFI 5d102 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5d104 .cfa: sp 88 +
+STACK CFI INIT 5d178 72 .cfa: sp 0 + .ra: lr
+STACK CFI 5d17a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5d17c .cfa: sp 72 +
+STACK CFI INIT 5d1ec 29a .cfa: sp 0 + .ra: lr
+STACK CFI 5d1ee .cfa: sp 8 +
+STACK CFI 5d1f2 .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 5d1f4 .cfa: sp 112 +
+STACK CFI INIT 5d488 1dc .cfa: sp 0 + .ra: lr
+STACK CFI 5d48c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5d48e .cfa: sp 144 +
+STACK CFI INIT 5d664 164 .cfa: sp 0 + .ra: lr
+STACK CFI 5d668 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5d66a .cfa: sp 64 +
+STACK CFI INIT 5d7c8 c8 .cfa: sp 0 + .ra: lr
+STACK CFI 5d7d0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 5d890 8e .cfa: sp 0 + .ra: lr
+STACK CFI 5d892 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 5d894 .cfa: sp 32 +
+STACK CFI INIT 5d920 a0 .cfa: sp 0 + .ra: lr
+STACK CFI 5d922 .cfa: sp 8 +
+STACK CFI 5d924 .cfa: sp 20 + .ra: .cfa -12 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^
+STACK CFI 5d926 .cfa: sp 32 +
+STACK CFI INIT 5d9c0 1b4 .cfa: sp 0 + .ra: lr
+STACK CFI 5d9c4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5d9c6 .cfa: sp 136 +
+STACK CFI INIT 5db74 3a2 .cfa: sp 0 + .ra: lr
+STACK CFI 5db76 .cfa: sp 8 +
+STACK CFI 5db7c .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 5db7e .cfa: sp 120 +
+STACK CFI INIT 5df18 f8 .cfa: sp 0 + .ra: lr
+STACK CFI 5df1a .cfa: sp 8 +
+STACK CFI 5df1e .cfa: sp 40 + .ra: .cfa -12 + ^ r10: .cfa -16 + ^ r4: .cfa -40 + ^ r5: .cfa -36 + ^ r6: .cfa -32 + ^ r7: .cfa -28 + ^ r8: .cfa -24 + ^ r9: .cfa -20 + ^
+STACK CFI 5df20 .cfa: sp 160 +
+STACK CFI INIT 5e010 72 .cfa: sp 0 + .ra: lr
+STACK CFI 5e012 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5e014 .cfa: sp 64 +
+STACK CFI INIT 5e084 134 .cfa: sp 0 + .ra: lr
+STACK CFI 5e088 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5e08a .cfa: sp 72 +
+STACK CFI INIT 5e1b8 24 .cfa: sp 0 + .ra: lr
+STACK CFI 5e1ba .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5e1bc .cfa: sp 24 +
+STACK CFI INIT 5e1dc 78 .cfa: sp 0 + .ra: lr
+STACK CFI 5e1de .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5e1e0 .cfa: sp 88 +
+STACK CFI INIT 5e254 78 .cfa: sp 0 + .ra: lr
+STACK CFI 5e256 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5e258 .cfa: sp 88 +
+STACK CFI INIT 5e2cc 74 .cfa: sp 0 + .ra: lr
+STACK CFI 5e2ce .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5e2d0 .cfa: sp 72 +
+STACK CFI INIT 5e340 294 .cfa: sp 0 + .ra: lr
+STACK CFI 5e342 .cfa: sp 8 +
+STACK CFI 5e346 .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 5e348 .cfa: sp 112 +
+STACK CFI INIT 5e5d4 7c .cfa: sp 0 + .ra: lr
+STACK CFI 5e5d6 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 5e5da .cfa: sp 56 +
+STACK CFI INIT 5e650 10c .cfa: sp 0 + .ra: lr
+STACK CFI 5e654 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5e658 .cfa: sp 656 +
+STACK CFI INIT 5e75c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 5e75e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5e760 .cfa: sp 32 +
+STACK CFI INIT 5e784 10c .cfa: sp 0 + .ra: lr
+STACK CFI 5e788 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5e78c .cfa: sp 656 +
+STACK CFI INIT 5e890 28 .cfa: sp 0 + .ra: lr
+STACK CFI 5e892 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5e894 .cfa: sp 32 +
+STACK CFI INIT 5e8b8 40 .cfa: sp 0 + .ra: lr
+STACK CFI 5e8be .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 5e8f8 164 .cfa: sp 0 + .ra: lr
+STACK CFI 5e8fc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5e900 .cfa: sp 2212 +
+STACK CFI 5e902 .cfa: sp 2216 +
+STACK CFI INIT 5ea5c 10c .cfa: sp 0 + .ra: lr
+STACK CFI 5ea60 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5ea64 .cfa: sp 656 +
+STACK CFI INIT 5eb68 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5eb6a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5eb6c .cfa: sp 32 +
+STACK CFI INIT 5eb90 10c .cfa: sp 0 + .ra: lr
+STACK CFI 5eb94 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5eb98 .cfa: sp 656 +
+STACK CFI INIT 5ec9c 26 .cfa: sp 0 + .ra: lr
+STACK CFI 5ec9e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 5eca0 .cfa: sp 32 +
+STACK CFI INIT 5ecc4 15c .cfa: sp 0 + .ra: lr
+STACK CFI 5ecc8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5eccc .cfa: sp 2212 +
+STACK CFI 5ecce .cfa: sp 2216 +
+STACK CFI INIT 5ee20 11c .cfa: sp 0 + .ra: lr
+STACK CFI 5ee26 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 5ef3c 950 .cfa: sp 0 + .ra: lr
+STACK CFI 5ef40 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5ef44 .cfa: sp 2564 +
+STACK CFI 5ef46 .cfa: sp 2568 +
+STACK CFI INIT 5f88c 154 .cfa: sp 0 + .ra: lr
+STACK CFI 5f890 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 5f894 .cfa: sp 2716 +
+STACK CFI 5f896 .cfa: sp 2744 +
+STACK CFI INIT 5f9e0 948 .cfa: sp 0 + .ra: lr
+STACK CFI 5f9e4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 5f9e8 .cfa: sp 2564 +
+STACK CFI 5f9ea .cfa: sp 2568 +
+STACK CFI INIT 60328 30 .cfa: sp 0 + .ra: lr
+STACK CFI 6032a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6032c .cfa: sp 40 +
+STACK CFI INIT 60358 14c .cfa: sp 0 + .ra: lr
+STACK CFI 6035e .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 60362 .cfa: sp 48 +
+STACK CFI INIT 604a4 60 .cfa: sp 0 + .ra: lr
+STACK CFI 604a6 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 60504 44 .cfa: sp 0 + .ra: lr
+STACK CFI 60506 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 60548 360 .cfa: sp 0 + .ra: lr
+STACK CFI 6054c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 6054e .cfa: sp 104 +
+STACK CFI INIT 608a8 100 .cfa: sp 0 + .ra: lr
+STACK CFI 608ae .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 608b2 .cfa: sp 600 +
+STACK CFI INIT 609a8 26 .cfa: sp 0 + .ra: lr
+STACK CFI 609aa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 609ac .cfa: sp 32 +
+STACK CFI INIT 609d0 100 .cfa: sp 0 + .ra: lr
+STACK CFI 609d6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 609da .cfa: sp 600 +
+STACK CFI INIT 60ad0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 60ad2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 60ad4 .cfa: sp 32 +
+STACK CFI INIT 60af8 100 .cfa: sp 0 + .ra: lr
+STACK CFI 60afe .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 60b02 .cfa: sp 600 +
+STACK CFI INIT 60bf8 26 .cfa: sp 0 + .ra: lr
+STACK CFI 60bfa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 60bfc .cfa: sp 32 +
+STACK CFI INIT 60c20 398 .cfa: sp 0 + .ra: lr
+STACK CFI 60c24 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 60c26 .cfa: sp 176 +
+STACK CFI INIT 60fb8 100 .cfa: sp 0 + .ra: lr
+STACK CFI 60fbe .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 60fc2 .cfa: sp 600 +
+STACK CFI INIT 610b8 2e .cfa: sp 0 + .ra: lr
+STACK CFI 610ba .cfa: sp 8 +
+STACK CFI 610bc .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 610be .cfa: sp 32 +
+STACK CFI INIT 610e8 100 .cfa: sp 0 + .ra: lr
+STACK CFI 610ee .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 610f2 .cfa: sp 600 +
+STACK CFI INIT 611e8 2e .cfa: sp 0 + .ra: lr
+STACK CFI 611ea .cfa: sp 8 +
+STACK CFI 611ec .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 611ee .cfa: sp 32 +
+STACK CFI INIT 61218 100 .cfa: sp 0 + .ra: lr
+STACK CFI 6121e .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 61222 .cfa: sp 600 +
+STACK CFI INIT 61318 2e .cfa: sp 0 + .ra: lr
+STACK CFI 6131a .cfa: sp 8 +
+STACK CFI 6131c .cfa: sp 16 + .ra: .cfa -12 + ^ r4: .cfa -16 + ^
+STACK CFI 6131e .cfa: sp 32 +
+STACK CFI INIT 61348 8c .cfa: sp 0 + .ra: lr
+STACK CFI 6134e .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 61352 .cfa: sp 32 +
+STACK CFI INIT 613d4 9c .cfa: sp 0 + .ra: lr
+STACK CFI 613d6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 613da .cfa: sp 24 +
+STACK CFI INIT 61470 1d6 .cfa: sp 0 + .ra: lr
+STACK CFI 61474 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 61480 .cfa: sp 184 +
+STACK CFI INIT 61648 486 .cfa: sp 0 + .ra: lr
+STACK CFI 6164c .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6164e .cfa: sp 216 +
+STACK CFI INIT 61ad0 6bc .cfa: sp 0 + .ra: lr
+STACK CFI 61ad4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 61ad6 .cfa: sp 488 +
+STACK CFI INIT 6218c 4e .cfa: sp 0 + .ra: lr
+STACK CFI 6218e .cfa: sp 8 +
+STACK CFI 62190 .cfa: sp 20 + .ra: .cfa -12 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^
+STACK CFI 62192 .cfa: sp 72 +
+STACK CFI INIT 621dc 12a .cfa: sp 0 + .ra: lr
+STACK CFI 621de .cfa: sp 8 +
+STACK CFI 621e4 .cfa: sp 32 + .ra: .cfa -12 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^
+STACK CFI 621e6 .cfa: sp 192 +
+STACK CFI INIT 0 5e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 32 +
+STACK CFI INIT 0 90 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 24 +
+STACK CFI INIT 62308 144 .cfa: sp 0 + .ra: lr
+STACK CFI 6230c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 62316 .cfa: sp 72 +
+STACK CFI INIT 6244c 408 .cfa: sp 0 + .ra: lr
+STACK CFI 62450 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 62452 .cfa: sp 200 +
+STACK CFI INIT 62854 670 .cfa: sp 0 + .ra: lr
+STACK CFI 62856 .cfa: sp 8 +
+STACK CFI 6285a .cfa: sp 44 + .ra: .cfa -12 + ^ r10: .cfa -20 + ^ r11: .cfa -16 + ^ r4: .cfa -44 + ^ r5: .cfa -40 + ^ r6: .cfa -36 + ^ r7: .cfa -32 + ^ r8: .cfa -28 + ^ r9: .cfa -24 + ^
+STACK CFI 6285c .cfa: sp 280 +
+STACK CFI INIT 62ec4 40 .cfa: sp 0 + .ra: lr
+STACK CFI 62ec6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 62ec8 .cfa: sp 56 +
+STACK CFI INIT 62f04 104 .cfa: sp 0 + .ra: lr
+STACK CFI 62f08 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 62f0a .cfa: sp 144 +
+STACK CFI INIT 15cb4 30 .cfa: sp 0 + .ra: lr
+STACK CFI 15cb6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 53234 24 .cfa: sp 0 + .ra: lr
+STACK CFI 53236 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 d6 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 14 .cfa: sp 48 +
+STACK CFI INIT 0 fc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI c .cfa: sp 40 +
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 0 1b8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 80 +
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 12 .cfa: sp 24 +
+STACK CFI INIT 0 128 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 134 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 352 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 e2 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 1a4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 6 .cfa: sp 112 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 40 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 ea .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 212 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 4a .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 48 +
+STACK CFI INIT 0 86 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 32 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 24 +
+STACK CFI INIT 0 8c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 22 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 cc .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 60 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 280 +
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 280 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 280 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 280 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 280 +
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 53234 24 .cfa: sp 0 + .ra: lr
+STACK CFI 53236 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63008 28 .cfa: sp 0 + .ra: lr
+STACK CFI 6300a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c8 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 32 +
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 0 da .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 64 +
+STACK CFI INIT 0 40 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 30 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 0 e6 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 112 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 72 +
+STACK CFI INIT 63030 c .cfa: sp 0 + .ra: lr
+STACK CFI 63032 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 2c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 6303c 34 .cfa: sp 0 + .ra: lr
+STACK CFI 6303e .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 63070 18c .cfa: sp 0 + .ra: lr
+STACK CFI 63074 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6307c .cfa: sp 48 +
+STACK CFI INIT 631fc 48 .cfa: sp 0 + .ra: lr
+STACK CFI 631fe .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 63200 .cfa: sp 24 +
+STACK CFI INIT 63244 5c .cfa: sp 0 + .ra: lr
+STACK CFI 63246 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 632a0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 632a4 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 e8 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 100 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 56 +
+STACK CFI INIT 0 52 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 24 +
+STACK CFI INIT 0 3e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 38 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 4e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15ce4 30 .cfa: sp 0 + .ra: lr
+STACK CFI 15ce6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 632a8 114 .cfa: sp 0 + .ra: lr
+STACK CFI 632ac .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 7e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 6 .cfa: sp 160 +
+STACK CFI INIT 0 7c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 8 .cfa: sp 552 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 10 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 633cc 74 .cfa: sp 0 + .ra: lr
+STACK CFI 633ce .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 633d0 .cfa: sp 32 +
+STACK CFI INIT 63440 50 .cfa: sp 0 + .ra: lr
+STACK CFI 63442 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 63490 50 .cfa: sp 0 + .ra: lr
+STACK CFI 63492 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 634e0 104 .cfa: sp 0 + .ra: lr
+STACK CFI 634e4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 634ee .cfa: sp 48 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 635e8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 635ec .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63600 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63602 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63614 1e .cfa: sp 0 + .ra: lr
+STACK CFI 63616 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 63634 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63638 38 .cfa: sp 0 + .ra: lr
+STACK CFI 6363a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 63670 68 .cfa: sp 0 + .ra: lr
+STACK CFI 63674 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 63676 .cfa: sp 48 +
+STACK CFI INIT 636d8 24 .cfa: sp 0 + .ra: lr
+STACK CFI 636da .cfa: sp 8 + r4: .cfa -8 + ^ r5: .cfa -4 + ^
+STACK CFI INIT 636fc 3e .cfa: sp 0 + .ra: lr
+STACK CFI 636fe .cfa: sp 8 + r4: .cfa -8 + ^ r5: .cfa -4 + ^
+STACK CFI INIT 6373c 19a .cfa: sp 0 + .ra: lr
+STACK CFI 63742 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 63746 .cfa: sp 72 +
+STACK CFI INIT 638d8 dc .cfa: sp 0 + .ra: lr
+STACK CFI 638dc .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 639b4 dc .cfa: sp 0 + .ra: lr
+STACK CFI 639b8 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 63a90 96 .cfa: sp 0 + .ra: lr
+STACK CFI 63a94 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 63a9e .cfa: sp 56 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63b28 64 .cfa: sp 0 + .ra: lr
+STACK CFI 63b2a .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 63b8c 38 .cfa: sp 0 + .ra: lr
+STACK CFI 63b90 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63bc4 38 .cfa: sp 0 + .ra: lr
+STACK CFI 63bc8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 18 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 40 +
+STACK CFI INIT 0 78 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 63bfc 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63c00 18 .cfa: sp 0 + .ra: lr
+STACK CFI 63c04 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63c18 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63c1a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63c2c 1a8 .cfa: sp 0 + .ra: lr
+STACK CFI 63c30 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 63c32 .cfa: sp 88 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15fb8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 15fbc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15f92 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 16 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 +
+STACK CFI INIT 0 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 58 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 5e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 5e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 1607c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 16080 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63dd4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63dd6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 63de8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 63dec .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e14 18 .cfa: sp 0 + .ra: lr
+STACK CFI 63e18 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e2c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63e2e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e40 18 .cfa: sp 0 + .ra: lr
+STACK CFI 63e44 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e58 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63e5a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e6c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 63e6e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63e80 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63e88 1a .cfa: sp 0 + .ra: lr
+STACK CFI 63e8a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 63ea4 36 .cfa: sp 0 + .ra: lr
+STACK CFI 63ea6 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 63ea8 .cfa: sp 32 +
+STACK CFI INIT 63edc 1c .cfa: sp 0 + .ra: lr
+STACK CFI 63ede .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 63ef8 4c .cfa: sp 0 + .ra: lr
+STACK CFI 63efc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 63f00 .cfa: sp 24 +
+STACK CFI INIT 63f44 40 .cfa: sp 0 + .ra: lr
+STACK CFI 63f46 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 63f84 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63fa8 3c .cfa: sp 0 + .ra: lr
+STACK CFI 63fac .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 63fe4 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63ff4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63ffc e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63ffc e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6400c 3e .cfa: sp 0 + .ra: lr
+STACK CFI 6400e .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 6404c 3c .cfa: sp 0 + .ra: lr
+STACK CFI 6404e .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 63ff4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 63fe4 e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 39b2e 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64088 1c .cfa: sp 0 + .ra: lr
+STACK CFI 6408c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 640a4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 640a6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 640b8 1c .cfa: sp 0 + .ra: lr
+STACK CFI 640bc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 640d4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 640d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 640e8 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64100 66 .cfa: sp 0 + .ra: lr
+STACK CFI 64102 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 64168 18 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64180 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64184 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6419c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 6419e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 641b0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 641b4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 641cc 12 .cfa: sp 0 + .ra: lr
+STACK CFI 641ce .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 641e0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 641e2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 6420c 4c .cfa: sp 0 + .ra: lr
+STACK CFI 6420e .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 64258 52 .cfa: sp 0 + .ra: lr
+STACK CFI 6425a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 642ac c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642b8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642c4 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642e0 1c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642fc 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642fc 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64300 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64314 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64338 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6434c 24 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 642fc 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64370 12 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64384 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64390 24 .cfa: sp 0 + .ra: lr
+STACK CFI 64394 .cfa: sp 8 + r4: .cfa -8 + ^ r5: .cfa -4 + ^
+STACK CFI INIT 643b4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 643b8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 643d0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 643d2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 643e4 12 .cfa: sp 0 + .ra: lr
+STACK CFI 643e6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 643f8 12 .cfa: sp 0 + .ra: lr
+STACK CFI 643fa .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6440c 28 .cfa: sp 0 + .ra: lr
+STACK CFI 64416 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64434 12 .cfa: sp 0 + .ra: lr
+STACK CFI 64436 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64448 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64454 2a .cfa: sp 0 + .ra: lr
+STACK CFI 64456 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 64480 20 .cfa: sp 0 + .ra: lr
+STACK CFI 64482 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 644a0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 644a4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 24 +
+STACK CFI INIT 0 a4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 0 1a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 24 +
+STACK CFI INIT 644e4 aa .cfa: sp 0 + .ra: lr
+STACK CFI 644e8 .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 64590 22 .cfa: sp 0 + .ra: lr
+STACK CFI 64592 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 64594 .cfa: sp 32 +
+STACK CFI INIT 645b4 ce .cfa: sp 0 + .ra: lr
+STACK CFI 645b8 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 64684 22 .cfa: sp 0 + .ra: lr
+STACK CFI 64686 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 64688 .cfa: sp 40 +
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646ac 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646ae .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646b4 .cfa: sp 16 +
+STACK CFI INIT 646d8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646da .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646e0 .cfa: sp 16 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646ac 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646ae .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646b4 .cfa: sp 16 +
+STACK CFI INIT 646d8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646da .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646e0 .cfa: sp 16 +
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646ac 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646ae .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646b4 .cfa: sp 16 +
+STACK CFI INIT 646d8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646da .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646e0 .cfa: sp 16 +
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646a8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 15dc8 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 646ac 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646ae .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646b4 .cfa: sp 16 +
+STACK CFI INIT 646d8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 646da .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI 646e0 .cfa: sp 16 +
+STACK CFI INIT 64704 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64708 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64720 12 .cfa: sp 0 + .ra: lr
+STACK CFI 64722 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64734 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64738 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64750 12 .cfa: sp 0 + .ra: lr
+STACK CFI 64752 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64764 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64768 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64780 12 .cfa: sp 0 + .ra: lr
+STACK CFI 64782 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 64794 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64798 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 647b0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 647b2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 647c4 44 .cfa: sp 0 + .ra: lr
+STACK CFI 647c6 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 64808 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6480a .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 6484c 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6484e .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 64890 44 .cfa: sp 0 + .ra: lr
+STACK CFI 64892 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 648d4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 648d8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 648da .cfa: sp 16 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 648f0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 648f2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 6494c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 64950 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 64952 .cfa: sp 16 +
+STACK CFI INIT 64968 64 .cfa: sp 0 + .ra: lr
+STACK CFI 6496e .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 649cc c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 649d8 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 649e4 9c .cfa: sp 0 + .ra: lr
+STACK CFI 649e8 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 64a80 2a .cfa: sp 0 + .ra: lr
+STACK CFI 64a82 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 64aac 14 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64ac0 c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64acc c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 64ad8 9a .cfa: sp 0 + .ra: lr
+STACK CFI 64adc .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 64ae0 .cfa: sp 48 +
+STACK CFI INIT 64b74 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 64b78 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 64b7c .cfa: sp 48 +
+STACK CFI INIT 64c28 126 .cfa: sp 0 + .ra: lr
+STACK CFI 64c2c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 64c30 .cfa: sp 40 +
+STACK CFI INIT 64d50 24 .cfa: sp 0 + .ra: lr
+STACK CFI 64d52 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 64d54 .cfa: sp 80 +
+STACK CFI INIT 64d74 10c .cfa: sp 0 + .ra: lr
+STACK CFI 64d7c .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 64e80 12a .cfa: sp 0 + .ra: lr
+STACK CFI 64e84 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 64fac 78 .cfa: sp 0 + .ra: lr
+STACK CFI 64fb2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 65024 e4 .cfa: sp 0 + .ra: lr
+STACK CFI 65028 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI INIT 65108 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 6510a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 651bc 10c .cfa: sp 0 + .ra: lr
+STACK CFI 651c0 .cfa: sp 40 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r3: .cfa -40 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI INIT 652c8 400 .cfa: sp 0 + .ra: lr
+STACK CFI 652cc .cfa: sp 32 + r10: .cfa -8 + ^ r11: .cfa -4 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 652d0 .cfa: sp 128 +
+STACK CFI INIT 656c8 4a8 .cfa: sp 0 + .ra: lr
+STACK CFI 656cc .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^
+STACK CFI 656ce .cfa: sp 136 +
+STACK CFI INIT 65b70 78 .cfa: sp 0 + .ra: lr
+STACK CFI 65b74 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 65b84 .cfa: sp 48 +
+STACK CFI INIT 65be8 16 .cfa: sp 0 + .ra: lr
+STACK CFI 65bea .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 65c00 12 .cfa: sp 0 + .ra: lr
+STACK CFI 65c02 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 65c14 348 .cfa: sp 0 + .ra: lr
+STACK CFI 65c1a .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 65c1e .cfa: sp 144 +
+STACK CFI INIT 65f5c 11c .cfa: sp 0 + .ra: lr
+STACK CFI 65f60 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 65f62 .cfa: sp 56 +
+STACK CFI INIT 66078 12 .cfa: sp 0 + .ra: lr
+STACK CFI 6607a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6608c 88 .cfa: sp 0 + .ra: lr
+STACK CFI 66094 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 66114 16a .cfa: sp 0 + .ra: lr
+STACK CFI 66118 .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 66280 11c .cfa: sp 0 + .ra: lr
+STACK CFI 66286 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 6628a .cfa: sp 32 +
+STACK CFI INIT 6639c 138 .cfa: sp 0 + .ra: lr
+STACK CFI 663a0 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 663a2 .cfa: sp 360 +
+STACK CFI INIT 65108 b4 .cfa: sp 0 + .ra: lr
+STACK CFI 6510a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 664d4 220 .cfa: sp 0 + .ra: lr
+STACK CFI 664d8 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 664da .cfa: sp 48 +
+STACK CFI INIT 0 8e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 12 + r4: .cfa -12 + ^ r5: .cfa -8 + ^ r6: .cfa -4 + ^
+STACK CFI INIT 0 34 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 24 +
+STACK CFI INIT 666f4 6a .cfa: sp 0 + .ra: lr
+STACK CFI 666f6 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 66760 54 .cfa: sp 0 + .ra: lr
+STACK CFI 66762 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 66766 .cfa: sp 20 + s16: .cfa -20 + ^
+STACK CFI 6676c .cfa: sp 384 +
+STACK CFI INIT 667b4 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 667bc 54 .cfa: sp 0 + .ra: lr
+STACK CFI 667be .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 667c2 .cfa: sp 20 + s16: .cfa -20 + ^
+STACK CFI 667c8 .cfa: sp 384 +
+STACK CFI INIT 66810 8 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 66818 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6681c 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 66818 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6681c 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 66820 1c .cfa: sp 0 + .ra: lr
+STACK CFI 66824 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6683c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 6683e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 66850 1c .cfa: sp 0 + .ra: lr
+STACK CFI 66854 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6686c 12 .cfa: sp 0 + .ra: lr
+STACK CFI 6686e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 66880 18 .cfa: sp 0 + .ra: lr
+STACK CFI 66882 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 66880 18 .cfa: sp 0 + .ra: lr
+STACK CFI 66882 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 66898 1c .cfa: sp 0 + .ra: lr
+STACK CFI 6689c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6689e .cfa: sp 16 +
+STACK CFI INIT 668b4 1c .cfa: sp 0 + .ra: lr
+STACK CFI 668b8 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 668ba .cfa: sp 16 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 648f0 5c .cfa: sp 0 + .ra: lr
+STACK CFI 648f2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 668d0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 668d4 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 668d6 .cfa: sp 16 +
+STACK CFI INIT 668ec 1c .cfa: sp 0 + .ra: lr
+STACK CFI 668f0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 668f2 .cfa: sp 16 +
+STACK CFI INIT 0 118 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 66908 c8 .cfa: sp 0 + .ra: lr
+STACK CFI 6690c .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 669d0 f0 .cfa: sp 0 + .ra: lr
+STACK CFI 669d4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 66ac0 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 66ac6 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 66bb4 f4 .cfa: sp 0 + .ra: lr
+STACK CFI 66bb8 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 66ca8 12c .cfa: sp 0 + .ra: lr
+STACK CFI 66cac .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 66cae .cfa: sp 288 +
+STACK CFI INIT 66dd4 120 .cfa: sp 0 + .ra: lr
+STACK CFI 66dd8 .cfa: sp 32 + .ra: .cfa -4 + ^ r3: .cfa -32 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI INIT 53234 24 .cfa: sp 0 + .ra: lr
+STACK CFI 53236 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 66ef4 1c2 .cfa: sp 0 + .ra: lr
+STACK CFI 66ef8 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 63008 28 .cfa: sp 0 + .ra: lr
+STACK CFI 6300a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 670b8 1ce .cfa: sp 0 + .ra: lr
+STACK CFI 670bc .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 53258 40 .cfa: sp 0 + .ra: lr
+STACK CFI 5325a .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 67288 6f4 .cfa: sp 0 + .ra: lr
+STACK CFI 6728c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 6728e .cfa: sp 184 +
+STACK CFI INIT 6797c a .cfa: sp 0 + .ra: lr
+STACK CFI 6797e .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 67988 52 .cfa: sp 0 + .ra: lr
+STACK CFI 6798c .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 6798e .cfa: sp 40 +
+STACK CFI INIT 679dc 6e0 .cfa: sp 0 + .ra: lr
+STACK CFI 679e0 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 679e2 .cfa: sp 176 +
+STACK CFI INIT 680bc a .cfa: sp 0 + .ra: lr
+STACK CFI 680be .cfa: sp 4 + r4: .cfa -4 + ^
+STACK CFI INIT 680c8 52 .cfa: sp 0 + .ra: lr
+STACK CFI 680cc .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI 680ce .cfa: sp 40 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 0 124 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI a .cfa: sp 40 +
+STACK CFI INIT 0 64 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 6811c 284 .cfa: sp 0 + .ra: lr
+STACK CFI 68120 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 68124 .cfa: sp 48 +
+STACK CFI INIT 0 104 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 102 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI INIT 0 1d4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI INIT 0 204 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 312 +
+STACK CFI INIT 0 154 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI a .cfa: sp 48 +
+STACK CFI INIT 604a4 60 .cfa: sp 0 + .ra: lr
+STACK CFI 604a6 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 126 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI a .cfa: sp 536 +
+STACK CFI INIT 0 1da .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 48 +
+STACK CFI INIT 0 208 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 6 .cfa: sp 312 +
+STACK CFI INIT 683a0 2b0 .cfa: sp 0 + .ra: lr
+STACK CFI 683a4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI 683a8 .cfa: sp 48 +
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a84 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 53a5c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68650 1c .cfa: sp 0 + .ra: lr
+STACK CFI 68654 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6866c 1c .cfa: sp 0 + .ra: lr
+STACK CFI 68670 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 68688 20 .cfa: sp 0 + .ra: lr
+STACK CFI 6868c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 686a8 20 .cfa: sp 0 + .ra: lr
+STACK CFI 686ac .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 48 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 288 +
+STACK CFI INIT 0 20 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 686c8 2c .cfa: sp 0 + .ra: lr
+STACK CFI 686d0 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 686f4 2c .cfa: sp 0 + .ra: lr
+STACK CFI 686fc .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 63008 28 .cfa: sp 0 + .ra: lr
+STACK CFI 6300a .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 24 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 3c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 6 .cfa: sp 16 +
+STACK CFI INIT 0 54 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 4c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 16 +
+STACK CFI INIT 68720 e .cfa: sp 0 + .ra: lr
+STACK CFI 68722 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI a .cfa: sp 16 +
+STACK CFI INIT 68730 3a .cfa: sp 0 + .ra: lr
+STACK CFI 68732 .cfa: sp 24 + .ra: .cfa -4 + ^ r3: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 6876c e .cfa: sp 0 + .ra: lr
+STACK CFI 6876e .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 10c .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 6 .cfa: sp 120 +
+STACK CFI INIT 0 1c .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI 4 .cfa: sp 16 +
+STACK CFI INIT 0 e2 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 94 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 8 .cfa: sp 32 +
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 44 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 12 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 c4 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI c .cfa: sp 40 +
+STACK CFI INIT 0 162 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI a .cfa: sp 56 +
+STACK CFI INIT 0 be .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 32 + .ra: .cfa -4 + ^ r10: .cfa -8 + ^ r4: .cfa -32 + ^ r5: .cfa -28 + ^ r6: .cfa -24 + ^ r7: .cfa -20 + ^ r8: .cfa -16 + ^ r9: .cfa -12 + ^
+STACK CFI 18 .cfa: sp 48 +
+STACK CFI INIT 0 a2 .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 28 + .ra: .cfa -4 + ^ r4: .cfa -28 + ^ r5: .cfa -24 + ^ r6: .cfa -20 + ^ r7: .cfa -16 + ^ r8: .cfa -12 + ^ r9: .cfa -8 + ^
+STACK CFI c .cfa: sp 40 +
+STACK CFI INIT 0 158 .cfa: sp 0 + .ra: lr
+STACK CFI 6 .cfa: sp 24 + .ra: .cfa -4 + ^ r4: .cfa -24 + ^ r5: .cfa -20 + ^ r6: .cfa -16 + ^ r7: .cfa -12 + ^ r8: .cfa -8 + ^
+STACK CFI 10 .cfa: sp 48 +
+STACK CFI INIT 0 2a .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^ r7: .cfa -4 + ^
+STACK CFI INIT 0 e0 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 12 + .ra: .cfa -4 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI 12 .cfa: sp 24 +
+STACK CFI INIT 0 13e .cfa: sp 0 + .ra: lr
+STACK CFI 4 .cfa: sp 36 + .ra: .cfa -4 + ^ r10: .cfa -12 + ^ r11: .cfa -8 + ^ r4: .cfa -36 + ^ r5: .cfa -32 + ^ r6: .cfa -28 + ^ r7: .cfa -24 + ^ r8: .cfa -20 + ^ r9: .cfa -16 + ^
+STACK CFI c .cfa: sp 48 +
+STACK CFI INIT 0 14 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 4 + .ra: .cfa -4 + ^
+STACK CFI 4 .cfa: sp 16 +
+STACK CFI INIT 0 1e .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 16 + .ra: .cfa -4 + ^ r3: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 6 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 0 28 .cfa: sp 0 + .ra: lr
+STACK CFI 2 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6877d 80 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68811 9c .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68c90 44 .cfa: sp 0 + .ra: lr
+STACK CFI 68cc0 .cfa: sp 16 + .ra: .cfa -12 + ^
+STACK CFI INIT 68cd4 3c .cfa: sp 0 + .ra: lr
+STACK CFI 68cfc .cfa: sp 16 + .ra: .cfa -12 + ^
+STACK CFI INIT 68d20 34 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68d54 34 .cfa: sp 0 + .ra: lr
+STACK CFI 68d56 .cfa: sp 32 + .ra: .cfa -4 + ^ r0: .cfa -32 + ^ r1: .cfa -28 + ^ r2: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 68d88 30 .cfa: sp 0 + .ra: lr
+STACK CFI 68d8a .cfa: sp 32 + .ra: .cfa -4 + ^ r0: .cfa -32 + ^ r1: .cfa -28 + ^ r2: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 68db8 16 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68dce 6e .cfa: sp 0 + .ra: lr
+STACK CFI 68dd0 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 68dd4 .cfa: sp 48 +
+STACK CFI INIT 68e3c 30 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68e6c a4 .cfa: sp 0 + .ra: lr
+STACK CFI 68e70 .cfa: sp 24 + .ra: .cfa -4 + ^ r0: .cfa -24 + ^ r1: .cfa -20 + ^ r2: .cfa -16 + ^ r4: .cfa -12 + ^ r5: .cfa -8 + ^
+STACK CFI INIT 68f10 4a .cfa: sp 0 + .ra: lr
+STACK CFI 68f14 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 68f5a e .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68f68 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68f6c 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 68f6e 3a .cfa: sp 0 + .ra: lr
+STACK CFI 68f70 .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 68fa8 bc .cfa: sp 0 + .ra: lr
+STACK CFI 68faa .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 68fb0 .cfa: sp 1008 +
+STACK CFI INIT 69064 4 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 69068 4e .cfa: sp 0 + .ra: lr
+STACK CFI 6906a .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 6906e .cfa: sp 504 +
+STACK CFI INIT 690b6 14 .cfa: sp 0 + .ra: lr
+STACK CFI 690b8 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 690ca 44 .cfa: sp 0 + .ra: lr
+STACK CFI 690cc .cfa: sp 16 + .ra: .cfa -4 + ^ r4: .cfa -16 + ^ r5: .cfa -12 + ^ r6: .cfa -8 + ^
+STACK CFI INIT 6910e 1a .cfa: sp 0 + .ra: lr
+STACK CFI 69110 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 69128 2 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6912a 10 .cfa: sp 0 + .ra: lr
+STACK CFI 6912c .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 6913a 34 .cfa: sp 0 + .ra: lr
+STACK CFI 6913c .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 6916e 16 .cfa: sp 0 + .ra: lr
+STACK CFI 69170 .cfa: sp 24 + .ra: .cfa -4 + ^ r0: .cfa -24 + ^ r1: .cfa -20 + ^ r2: .cfa -16 + ^ r3: .cfa -12 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 69184 34 .cfa: sp 0 + .ra: lr
+STACK CFI 69186 .cfa: sp 8 + .ra: .cfa -4 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 691b8 18 .cfa: sp 0 + .ra: lr
+STACK CFI 691ba .cfa: sp 24 + .ra: .cfa -4 + ^ r0: .cfa -24 + ^ r1: .cfa -20 + ^ r2: .cfa -16 + ^ r3: .cfa -12 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 691d0 70 .cfa: sp 0 + .ra: lr
+STACK CFI 691d2 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 691d8 .cfa: sp 592 +
+STACK CFI INIT 69240 280 .cfa: sp 0 + .ra: lr
+STACK CFI 69242 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 69244 .cfa: sp 64 +
+STACK CFI INIT 694c0 a .cfa: sp 0 + .ra: lr
+STACK CFI 694c2 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 694ca a .cfa: sp 0 + .ra: lr
+STACK CFI 694cc .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 694d4 a .cfa: sp 0 + .ra: lr
+STACK CFI 694d6 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 694de 24c .cfa: sp 0 + .ra: lr
+STACK CFI 694e0 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 694e2 .cfa: sp 296 +
+STACK CFI INIT 698fc 30 .cfa: sp 0 + .ra: lr
+STACK CFI INIT 6992c 16 .cfa: sp 0 + .ra: lr
+STACK CFI 6992e .cfa: sp 24 + .ra: .cfa -4 + ^ r0: .cfa -24 + ^ r1: .cfa -20 + ^ r2: .cfa -16 + ^ r3: .cfa -12 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 69942 8 .cfa: sp 0 + .ra: lr
+STACK CFI 69944 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 6994a 286 .cfa: sp 0 + .ra: lr
+STACK CFI 6994c .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 69950 .cfa: sp 48 +
+STACK CFI INIT 69bd0 26 .cfa: sp 0 + .ra: lr
+STACK CFI 69bd2 .cfa: sp 24 + .ra: .cfa -4 + ^ r0: .cfa -24 + ^ r1: .cfa -20 + ^ r2: .cfa -16 + ^ r3: .cfa -12 + ^ r4: .cfa -8 + ^
+STACK CFI INIT 69bf6 a .cfa: sp 0 + .ra: lr
+STACK CFI 69bf8 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 69c00 12 .cfa: sp 0 + .ra: lr
+STACK CFI 69c02 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 69c12 6 .cfa: sp 0 + .ra: lr
+STACK CFI 69c14 .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 69c18 6 .cfa: sp 0 + .ra: lr
+STACK CFI 69c1a .cfa: sp 8 + .ra: .cfa -4 + ^ r3: .cfa -8 + ^
+STACK CFI INIT 69c34 4c .cfa: sp 0 + .ra: lr
+STACK CFI 69c36 .cfa: sp 32 + .ra: .cfa -4 + ^ r0: .cfa -32 + ^ r1: .cfa -28 + ^ r2: .cfa -24 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI INIT 69c80 12a .cfa: sp 0 + .ra: lr
+STACK CFI 69c82 .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 69c86 .cfa: sp 48 +
+STACK CFI INIT 69daa f0 .cfa: sp 0 + .ra: lr
+STACK CFI 69dac .cfa: sp 20 + .ra: .cfa -4 + ^ r4: .cfa -20 + ^ r5: .cfa -16 + ^ r6: .cfa -12 + ^ r7: .cfa -8 + ^
+STACK CFI 69db0 .cfa: sp 48 +
diff --git a/src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym b/src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym
new file mode 100644
index 0000000..a5e31a0
--- /dev/null
+++ b/src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym
@@ -0,0 +1,56 @@
+MODULE Linux mips 6E72E2F1A5F59AB3D51356FDFE394D490 crash_example
+FILE 0 /s/breakpad/src/tools/linux/crash_example.cc
+FUNC 80a8 9c 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+80a8 20 75 8
+80c8 38 78 8
+8100 10 78 8
+8110 14 78 8
+8124 10 78 8
+8134 10 78 8
+FUNC 815c a0 0 DumpCallback
+815c 2c 13 37
+8188 1c 14 37
+81a4 14 15 37
+81b8 1c 15 37
+81d4 14 17 37
+81e8 4 18 37
+81ec 10 19 37
+FUNC 81fc 2c 0 Leaf
+81fc 10 21 37
+820c 8 22 37
+8214 8 23 37
+821c 4 25 37
+8220 8 26 37
+FUNC 8228 58 0 blaTest
+8228 1c 28 37
+8244 c 29 37
+8250 20 30 37
+8270 10 31 37
+FUNC 8280 40 0 Crash
+8280 18 33 37
+8298 4 34 37
+829c 14 35 37
+82b0 10 36 37
+FUNC 831c f4 0 main
+831c 2c 40 37
+8348 c 40 37
+8354 18 41 37
+836c 34 43 37
+83a0 10 44 37
+83b0 4 45 37
+83b4 14 43 37
+83c8 18 45 37
+83e0 30 46 37
+PUBLIC 831c 0 main
+STACK CFI INIT 8228 58 .cfa: $sp 0 + .ra: $ra
+STACK CFI 822c .cfa: $sp 32 +
+STACK CFI 8234 $gp: .cfa -16 + ^ .ra: .cfa -8 + ^
+STACK CFI 827c $gp: $gp .cfa: $sp 0 + .ra: .ra
+STACK CFI INIT 8280 40 .cfa: $sp 0 + .ra: $ra
+STACK CFI 8284 .cfa: $sp 32 +
+STACK CFI 828c $gp: .cfa -16 + ^ .ra: .cfa -8 + ^
+STACK CFI 82bc $gp: $gp .cfa: $sp 0 + .ra: .ra
+STACK CFI INIT 831c f4 .cfa: $sp 0 + .ra: $ra
+STACK CFI 8320 .cfa: $sp 352 +
+STACK CFI 832c $gp: .cfa -16 + ^ $s0: .cfa -24 + ^ .ra: .cfa -8 + ^
+STACK CFI 840c $gp: $gp $s0: $s0 .cfa: $sp 0 + .ra: .ra
diff --git a/src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym b/src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym
new file mode 100644
index 0000000..407d230
--- /dev/null
+++ b/src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym
@@ -0,0 +1,48 @@
+MODULE Linux mips 8F36148CC4647A8116CAF2A25F591F570 crash_example
+FILE 0 /home/rtrk/chromium_mips/chromium/src/out-android-mips/Debug/../../breakpad/src/tools/linux/crash_example.cc
+FUNC 2ea4 b4 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor
+2ea4 20 75 6
+2ec4 40 78 6
+2f04 18 78 6
+2f1c 14 78 6
+2f30 18 78 6
+2f48 10 78 6
+FUNC 2f6c c4 0 DumpCallback
+2f6c 28 13 33
+2f94 28 14 33
+2fbc 1c 15 33
+2fd8 28 15 33
+3000 1c 17 33
+301c 4 18 33
+3020 10 19 33
+FUNC 3030 28 0 Leaf
+3030 4 21 33
+3034 c 22 33
+3040 c 23 33
+304c 4 25 33
+3050 8 26 33
+FUNC 3058 60 0 blaTest
+3058 1c 28 33
+3074 c 29 33
+3080 28 30 33
+30a8 10 31 33
+FUNC 30b8 48 0 Crash
+30b8 18 33 33
+30d0 4 34 33
+30d4 1c 35 33
+30f0 10 36 33
+FUNC 316c 120 0 main
+316c 24 40 33
+3190 c 40 33
+319c 20 41 33
+31bc 40 43 33
+31fc 18 44 33
+3214 4 45 33
+3218 1c 43 33
+3234 20 45 33
+3254 38 46 33
+PUBLIC 316c 0 main
+STACK CFI INIT 30b8 48 .cfa: $sp 39792944 + .ra: $ra
+STACK CFI 30c8 .cfa: $sp 40 +
+STACK CFI 30d0 .ra: .cfa -4 + ^
+STACK CFI 30f8 .cfa: $sp 0 + .ra: .ra
diff --git a/src/processor/testdata/symbols/null_read_av/7B7D1968FF0D47AE4366E9C3A7E1B6750/null_read_av.sym b/src/processor/testdata/symbols/null_read_av/7B7D1968FF0D47AE4366E9C3A7E1B6750/null_read_av.sym
new file mode 100644
index 0000000..eaf5888
--- /dev/null
+++ b/src/processor/testdata/symbols/null_read_av/7B7D1968FF0D47AE4366E9C3A7E1B6750/null_read_av.sym
@@ -0,0 +1,6614 @@
+MODULE Linux x86_64 7B7D1968FF0D47AE4366E9C3A7E1B6750 null_read_av
+FILE 0 /home/mattdr/crashing-programs/null_read_av.cc
+FILE 1 /home/mattdr/google-breakpad/./src/client/linux/crash_generation/crash_generation_client.h
+FILE 2 /home/mattdr/google-breakpad/./src/client/linux/handler/minidump_descriptor.h
+FILE 3 /home/mattdr/google-breakpad/./src/client/linux/minidump_writer/directory_reader.h
+FILE 4 /home/mattdr/google-breakpad/./src/client/linux/minidump_writer/line_reader.h
+FILE 5 /home/mattdr/google-breakpad/./src/client/linux/minidump_writer/linux_dumper.h
+FILE 6 /home/mattdr/google-breakpad/./src/client/linux/minidump_writer/linux_ptrace_dumper.h
+FILE 7 /home/mattdr/google-breakpad/./src/client/linux/minidump_writer/proc_cpuinfo_reader.h
+FILE 8 /home/mattdr/google-breakpad/./src/client/minidump_file_writer-inl.h
+FILE 9 /home/mattdr/google-breakpad/./src/client/minidump_file_writer.h
+FILE 10 /home/mattdr/google-breakpad/./src/common/linux/elfutils-inl.h
+FILE 11 /home/mattdr/google-breakpad/./src/common/linux/safe_readlink.h
+FILE 12 /home/mattdr/google-breakpad/./src/common/memory.h
+FILE 13 /home/mattdr/google-breakpad/./src/common/memory_range.h
+FILE 14 /home/mattdr/google-breakpad/./src/common/scoped_ptr.h
+FILE 15 /home/mattdr/google-breakpad/./src/third_party/lss/linux_syscall_support.h
+FILE 16 /home/mattdr/google-breakpad/src/client/linux/crash_generation/crash_generation_client.cc
+FILE 17 /home/mattdr/google-breakpad/src/client/linux/handler/exception_handler.cc
+FILE 18 /home/mattdr/google-breakpad/src/client/linux/handler/minidump_descriptor.cc
+FILE 19 /home/mattdr/google-breakpad/src/client/linux/handler/minidump_descriptor.h
+FILE 20 /home/mattdr/google-breakpad/src/client/linux/log/log.cc
+FILE 21 /home/mattdr/google-breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+FILE 22 /home/mattdr/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+FILE 23 /home/mattdr/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+FILE 24 /home/mattdr/google-breakpad/src/client/minidump_file_writer.cc
+FILE 25 /home/mattdr/google-breakpad/src/common/convert_UTF.c
+FILE 26 /home/mattdr/google-breakpad/src/common/linux/elfutils.cc
+FILE 27 /home/mattdr/google-breakpad/src/common/linux/file_id.cc
+FILE 28 /home/mattdr/google-breakpad/src/common/linux/guid_creator.cc
+FILE 29 /home/mattdr/google-breakpad/src/common/linux/linux_libc_support.cc
+FILE 30 /home/mattdr/google-breakpad/src/common/linux/memory_mapped_file.cc
+FILE 31 /home/mattdr/google-breakpad/src/common/linux/safe_readlink.cc
+FILE 32 /home/mattdr/google-breakpad/src/common/string_conversion.cc
+FILE 33 /usr/include/c++/4.7/bits/basic_string.h
+FILE 34 /usr/include/c++/4.7/bits/char_traits.h
+FILE 35 /usr/include/c++/4.7/bits/list.tcc
+FILE 36 /usr/include/c++/4.7/bits/stl_algo.h
+FILE 37 /usr/include/c++/4.7/bits/stl_algobase.h
+FILE 38 /usr/include/c++/4.7/bits/stl_iterator.h
+FILE 39 /usr/include/c++/4.7/bits/stl_iterator_base_funcs.h
+FILE 40 /usr/include/c++/4.7/bits/stl_list.h
+FILE 41 /usr/include/c++/4.7/bits/stl_uninitialized.h
+FILE 42 /usr/include/c++/4.7/bits/stl_vector.h
+FILE 43 /usr/include/c++/4.7/bits/vector.tcc
+FILE 44 /usr/include/c++/4.7/ext/atomicity.h
+FILE 45 /usr/include/c++/4.7/ext/new_allocator.h
+FILE 46 /usr/include/x86_64-linux-gnu/bits/stdio2.h
+FUNC 1c10 1a 0 __gnu_cxx::__exchange_and_add_dispatch
+1c10 a 80 44
+1c1a 8 48 44
+1c22 2 66 44
+1c24 5 67 44
+1c29 1 87 44
+FUNC 1c2a 1a 0 __gnu_cxx::__exchange_and_add_dispatch
+1c2a a 80 44
+1c34 8 48 44
+1c3c 2 66 44
+1c3e 5 67 44
+1c43 1 87 44
+FUNC 1c44 27 0 sys_close
+1c44 1 2725 15
+1c45 15 2725 15
+1c5a d 2725 15
+1c67 4 2725 15
+FUNC 1c6c 20 0 google_breakpad::ProcCpuInfoReader::GetValueAndLen(unsigned long*)
+1c6c 7 116 7
+1c73 1 115 7
+1c74 18 116 7
+FUNC 1c8c 20 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex(unsigned int, MDRawDirectory*)
+1c8c 7 73 8
+1c93 1 72 8
+1c94 18 73 8
+FUNC 1cac 20 0 google_breakpad::TypedMDRVA<unsigned int>::AllocateObjectAndArray(unsigned long, unsigned long)
+1cac 7 66 8
+1cb3 1 64 8
+1cb4 18 66 8
+FUNC 1ccc 20 0 google_breakpad::TypedMDRVA<unsigned int>::CopyIndexAfterObject(unsigned int, void const*, unsigned long)
+1ccc 7 83 8
+1cd3 1 80 8
+1cd4 18 83 8
+FUNC 1cec 1ac 0 MinidumpWriter::WriteFile
+1cec 2 1584 23
+1cee 5 2822 15
+1cf3 12 1584 23
+1d05 5 1584 23
+1d0a 1f 2822 15
+1d29 2 1586 23
+1d2b 3 2822 15
+1d2e 2 1586 23
+1d30 7 1587 23
+1d37 a 1227 23
+1d41 2 1601 23
+1d43 3 2838 15
+1d46 c 1227 23
+1d52 7 1598 23
+1d59 b 1599 23
+1d64 9 1605 23
+1d6d 5 2838 15
+1d72 8 1605 23
+1d7a d 2838 15
+1d87 f 2838 15
+1d96 3 1604 23
+1d99 2 2838 15
+1d9b 4 1604 23
+1d9f 5 1608 23
+1da4 4 1612 23
+1da8 3 1611 23
+1dab 7 1613 23
+1db2 4 1612 23
+1db6 2 1613 23
+1db8 13 1227 23
+1dcb 3 1614 23
+1dce b 1617 23
+1dd9 9 1616 23
+1de2 8 1620 23
+1dea 9 1622 23
+1df3 5 1625 23
+1df8 3 1626 23
+1dfb 9 161 9
+1e04 5 1625 23
+1e09 5 161 9
+1e0e 8 1626 23
+1e16 4 161 9
+1e1a d 1626 23
+1e27 4 1628 23
+1e2b 9 1633 23
+1e34 26 1635 23
+1e5a e 1638 23
+1e68 3 1639 23
+1e6b 9 1628 23
+1e74 c 176 9
+1e80 7 1641 23
+1e87 2 1642 23
+1e89 f 1643 23
+FUNC 1e98 3f 0 MinidumpWriter::WriteProcFile
+1e98 f 1712 23
+1ea7 e 1715 23
+1eb5 2 1716 23
+1eb7 4 1715 23
+1ebb 10 1717 23
+1ecb c 1718 23
+FUNC 1ed8 20 0 google_breakpad::TypedMDRVA<MDString>::CopyIndexAfterObject(unsigned int, void const*, unsigned long)
+1ed8 7 83 8
+1edf 1 80 8
+1ee0 18 83 8
+FUNC 1ef8 20 0 google_breakpad::TypedMDRVA<MDString>::AllocateObjectAndArray(unsigned long, unsigned long)
+1ef8 7 66 8
+1eff 1 64 8
+1f00 18 66 8
+FUNC 1f18 20 0 google_breakpad::LineReader::PopLine(unsigned int)
+1f18 7 116 4
+1f1f 1 113 4
+1f20 18 116 4
+FUNC 1f40 f3 0 main
+1f40 1 21 0
+1f41 5 22 0
+1f46 7 21 0
+1f4d f 22 0
+1f5c 17 54 19
+1f73 5 713 33
+1f78 9 272 33
+1f81 12 54 19
+1f93 7 55 19
+1f9a a 22 0
+1fa4 26 25 0
+1fca 1b 27 0
+1fe5 b 28 0
+1ff0 19 55 19
+2009 15 22 0
+201e 15 27 0
+FUNC 2140 2c 0 MinidumpCallback(google_breakpad::MinidumpDescriptor const&, void*, bool)
+2140 1 8 0
+2141 2 8 0
+2143 4 28 0
+2147 10 11 0
+2157 11 105 46
+2168 4 13 0
+FUNC 2170 8 0 crash()
+2170 7 18 0
+2177 1 19 0
+FUNC 2180 90 0 google_breakpad::MinidumpDescriptor::~MinidumpDescriptor()
+2180 8 46 19
+2188 4 290 33
+218c 4 536 33
+2190 9 237 33
+2199 4 290 33
+219d 4 536 33
+21a1 9 237 33
+21aa 6 46 19
+21b0 5 80 44
+21b5 4 242 33
+21b9 5 80 44
+21be 7 48 44
+21c5 4 242 33
+21c9 c 246 33
+21d5 5 80 44
+21da 4 242 33
+21de 5 80 44
+21e3 7 48 44
+21ea 4 242 33
+21ee c 246 33
+21fa 3 66 44
+21fd 8 67 44
+2205 3 66 44
+2208 8 67 44
+FUNC 2210 f5 0 google_breakpad::ExceptionHandler::InstallHandlersLocked()
+2210 d 241 17
+221d 16 240 17
+2233 2 241 17
+2235 7 240 17
+223c 28 246 17
+2264 6 245 17
+226a c 252 17
+2276 a 251 17
+2280 7 240 17
+2287 3 251 17
+228a 3 240 17
+228d 8 252 17
+2295 f 256 17
+22a4 5 255 17
+22a9 7 258 17
+22b0 b 259 17
+22bb 4 258 17
+22bf 10 262 17
+22cf 5 261 17
+22d4 7 267 17
+22db 7 269 17
+22e2 5 268 17
+22e7 10 269 17
+22f7 2 242 17
+22f9 9 269 17
+2302 2 242 17
+2304 1 269 17
+FUNC 2310 8b 0 google_breakpad::ExceptionHandler::RestoreHandlersLocked()
+2310 9 275 17
+2319 22 274 17
+233b 2 275 17
+233d 4 274 17
+2341 26 279 17
+2367 6 278 17
+236d 7 283 17
+2374 1c 284 17
+2390 b 280 17
+FUNC 23a0 104 0 google_breakpad::ExceptionHandler::SendContinueSignalToChild()
+23a0 22 497 17
+23c2 a 2887 15
+23cc 18 2887 15
+23e4 5 501 17
+23e9 1f 508 17
+2408 8 497 17
+2410 11 504 17
+2421 28 505 17
+2449 a 508 17
+2453 7 506 17
+245a a 508 17
+2464 5 506 17
+2469 4 508 17
+246d b 506 17
+2478 10 2887 15
+2488 3 500 17
+248b 5 2887 15
+2490 14 500 17
+FUNC 24b0 477 0 google_breakpad::ExceptionHandler::GenerateDump(google_breakpad::ExceptionHandler::CrashContext*)
+24b0 2b 433 17
+24db 4 106 14
+24df 5 434 17
+24e4 d 435 17
+24f1 37 494 17
+2528 5 60 12
+252d d 2936 15
+253a 5 60 12
+253f 2 86 12
+2541 3 60 12
+2544 9 86 12
+254d 3 115 12
+2550 5 2936 15
+2555 3 86 12
+2558 5 2936 15
+255d 3 86 12
+2560 3 115 12
+2563 24 2936 15
+2587 9 441 17
+2590 6 120 12
+2596 4 440 17
+259a 7 124 12
+25a1 4 125 12
+25a5 6 440 17
+25ab e 444 17
+25b9 7 443 17
+25c0 5 444 17
+25c5 4 448 17
+25c9 5 447 17
+25ce a 448 17
+25d8 5 449 17
+25dd 5 450 17
+25e2 4 449 17
+25e6 4 457 17
+25ea 9 451 17
+25f3 21 3484 15
+2614 11 463 17
+2625 2e 464 17
+2653 11 465 17
+2664 57 2010 15
+26bb 6 2012 15
+26c1 3 2010 15
+26c4 18 2012 15
+26dc 2d 2829 15
+2709 8 475 17
+2711 5 477 17
+2716 3 2998 15
+2719 5 477 17
+271e 26 2998 15
+2744 c 2998 15
+2750 5 476 17
+2755 5 476 17
+275a 57 2725 15
+27b1 9 483 17
+27ba c 490 17
+27c6 b 490 17
+27d1 f 490 17
+27e0 9 491 17
+27e9 12 492 17
+27fb d 2812 15
+2808 3 136 12
+280b 3 135 12
+280e 3 2812 15
+2811 4 136 12
+2815 19 2812 15
+282e 12 134 12
+2840 3 476 17
+2843 2 2998 15
+2845 b 476 17
+2850 10 433 17
+2860 11 485 17
+2871 2e 486 17
+289f 11 487 17
+28b0 20 490 17
+28d0 10 457 17
+28e0 b 441 17
+28eb 6 2812 15
+28f1 3 136 12
+28f4 3 135 12
+28f7 3 2812 15
+28fa 4 136 12
+28fe 19 2812 15
+2917 10 134 12
+FUNC 2930 19c 0 google_breakpad::ExceptionHandler::HandleSignal(int, siginfo*, void*)
+2930 16 385 17
+2946 3 390 17
+2949 8 393 17
+2951 2f 2829 15
+2980 3 397 17
+2983 10 398 17
+2993 8b 397 17
+2a1e 3 398 17
+2a21 c 404 17
+2a2d 10 407 17
+2a3d 13 410 17
+2a50 a 411 17
+2a5a 13 412 17
+2a6d b 416 17
+2a78 1f 417 17
+2a97 5 413 17
+2a9c c 417 17
+2aa8 24 393 17
+FUNC 2ad0 68 0 google_breakpad::ExceptionHandler::HandleSignal(int, siginfo*, void*)
+2ad0 16 385 17
+2ae6 3 386 17
+2ae9 6 385 17
+2aef 5 386 17
+2af4 a 386 17
+2afe 3a 417 17
+FUNC 2b40 56 0 google_breakpad::ExceptionHandler::SimulateSignalDelivery(int)
+2b40 7 421 17
+2b47 7 422 17
+2b4e 4 421 17
+2b52 5 422 17
+2b57 4 421 17
+2b5b 3 422 17
+2b5e 5 426 17
+2b63 8 428 17
+2b6b 4 426 17
+2b6f 5 428 17
+2b74 1a 429 17
+2b8e 8 430 17
+FUNC 2ba0 18b 0 google_breakpad::ExceptionHandler::SignalHandler(int, siginfo*, void*)
+2ba0 19 293 17
+2bb9 c 295 17
+2bc5 10 308 17
+2bd5 e 308 17
+2be3 b 327 17
+2bee 3 693 17
+2bf1 b 626 42
+2bfc 9 327 17
+2c05 1a 293 17
+2c1f 15 328 17
+2c34 18 327 17
+2c4c 4 336 17
+2c50 9 337 17
+2c59 c 342 17
+2c65 7 344 17
+2c6c 14 359 17
+2c80 10 339 17
+2c90 d 311 17
+2c9d a 312 17
+2ca7 7 314 17
+2cae 7 317 17
+2cb5 b 315 17
+2cc0 4 314 17
+2cc4 a 317 17
+2cce 12 322 17
+2ce0 14 348 17
+2cf4 12 107 17
+2d06 8 348 17
+2d0e 12 352 17
+2d20 b 320 17
+FUNC 2d30 e0 0 google_breakpad::ExceptionHandler::WaitForContinueSignal()
+2d30 a 512 17
+2d3a 2 2838 15
+2d3c 13 512 17
+2d4f 3 512 17
+2d52 5 2838 15
+2d57 14 2838 15
+2d6b 5 516 17
+2d70 20 523 17
+2d90 8 512 17
+2d98 11 519 17
+2da9 28 520 17
+2dd1 17 521 17
+2de8 10 2838 15
+2df8 3 515 17
+2dfb 5 2838 15
+2e00 10 515 17
+FUNC 2e10 58 0 google_breakpad::ExceptionHandler::DoDump(int, void const*, unsigned long)
+2e10 4 528 17
+2e14 3 528 17
+2e17 3 693 17
+2e1a 6 528 17
+2e20 4 536 17
+2e24 5 529 17
+2e29 17 536 17
+2e40 8 545 17
+2e48 1b 544 17
+2e63 5 545 17
+FUNC 2e70 28 0 google_breakpad::ExceptionHandler::ThreadEntry(void*)
+2e70 1 372 17
+2e71 3 372 17
+2e74 9 377 17
+2e7d 19 380 17
+2e96 2 381 17
+FUNC 2ea0 163 0 google_breakpad::ExceptionHandler::WriteMinidump()
+2ea0 8 563 17
+2ea8 5 564 17
+2ead 5 563 17
+2eb2 2 564 17
+2eb4 8 693 17
+2ebc 5 570 17
+2ec1 2d 2829 15
+2eee f 581 17
+2efd 2 583 17
+2eff 4 582 17
+2f03 d 634 17
+2f10 3 693 17
+2f13 9 564 17
+2f1c 9 573 17
+2f25 1b 574 17
+2f40 18 610 17
+2f58 5 2776 15
+2f5d 3 610 17
+2f60 16 2776 15
+2f76 20 2763 15
+2f96 c 615 17
+2fa2 7 612 17
+2fa9 6 615 17
+2faf 8 622 17
+2fb7 5 633 17
+2fbc 8 616 17
+2fc4 5 622 17
+2fc9 5 633 17
+2fce 12 634 17
+2fe0 10 3512 15
+2ff0 13 569 17
+FUNC 3010 cf 0 google_breakpad::ExceptionHandler::AddMappingInfo(std::string const&, unsigned char const*, unsigned long, unsigned long, unsigned long)
+3010 1b 640 17
+302b 3 645 17
+302e 3 640 17
+3031 8 649 17
+3039 5 645 17
+303e 3 640 17
+3041 5 645 17
+3046 4 642 17
+304a 5 643 17
+304f 4 758 40
+3053 5 644 17
+3058 5 645 17
+305d 8 646 17
+3065 e 649 17
+3073 5 94 45
+3078 19 650 17
+3091 5 94 45
+3096 17 120 45
+30ad 3 1526 40
+30b0 20 652 17
+30d0 3 1526 40
+30d3 7 652 17
+30da 5 1526 40
+FUNC 30e0 5d 0 google_breakpad::ExceptionHandler::RegisterAppMemory(void*, unsigned long)
+30e0 6 654 17
+30e6 4 758 40
+30ea 1 654 17
+30eb 4 693 17
+30ef 3 654 17
+30f2 14 135 36
+3106 3 156 40
+3109 5 135 36
+310e a 94 45
+3118 e 120 45
+3126 1 666 17
+3127 6 1526 40
+312d 3 666 17
+3130 8 1526 40
+3138 5 666 17
+FUNC 3140 31 0 google_breakpad::ExceptionHandler::UnregisterAppMemory(void*)
+3140 1 668 17
+3141 4 693 17
+3145 4 758 40
+3149 d 135 36
+3156 3 156 40
+3159 5 135 36
+315e 2 674 17
+3160 8 1542 40
+3168 3 100 45
+316b 1 674 17
+316c 5 100 45
+FUNC 3180 179 0 google_breakpad::ExceptionHandler::WriteMinidumpForChild(int, int, std::string const&, bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*)
+3180 28 681 17
+31a8 5 54 2
+31ad 3 681 17
+31b0 3 54 2
+31b3 6 681 17
+31b9 d 54 2
+31c6 7 272 33
+31cd 12 54 2
+31df 9 272 33
+31e8 4 713 33
+31ec b 55 2
+31f7 a 684 17
+3201 10 687 17
+3211 4 685 17
+3215 5 690 17
+321a 12 690 17
+322c 9 536 33
+3235 9 237 33
+323e 9 536 33
+3247 5 237 33
+324c 2c 691 17
+3278 8 690 17
+3280 4 688 17
+3284 1f 55 2
+32a3 e 242 33
+32b1 f 246 33
+32c0 12 242 33
+32d2 12 246 33
+32e4 15 690 17
+FUNC 3300 336 0 google_breakpad::ExceptionHandler::~ExceptionHandler()
+3300 d 226 17
+330d f 227 17
+331c b 229 17
+3327 8 728 38
+332f 9 900 38
+3338 4 158 36
+333c 4 900 38
+3340 9 160 36
+3349 9 162 36
+3352 a 166 36
+335c a 170 36
+3366 12 174 36
+3378 6 162 36
+337e a 166 36
+3388 a 170 36
+3392 a 174 36
+339c 3 750 38
+339f 4 226 17
+33a3 4 160 36
+33a7 3 226 17
+33aa c 160 36
+33b6 1e 179 36
+33d4 c 728 38
+33e0 4 781 38
+33e4 8 138 43
+33ec a 364 37
+33f6 5 365 37
+33fb 8 140 43
+3403 d 231 17
+3410 8 235 17
+3418 4 436 40
+341c 5 379 40
+3421 4 436 40
+3425 5 379 40
+342a 4 536 33
+342e 7 237 33
+3435 4 536 33
+3439 9 237 33
+3442 8 536 33
+344a 9 237 33
+3453 e 75 14
+3461 f 236 17
+3470 20 366 37
+3490 9 163 17
+3499 a 233 17
+34a3 8 2873 15
+34ab 5 167 17
+34b0 20 2873 15
+34d0 29 750 38
+34f9 9 182 36
+3502 4 750 38
+3506 9 186 36
+350f 4 750 38
+3513 c 728 38
+351f 9 167 17
+3528 e 172 17
+3536 5 184 17
+353b c 185 17
+3547 8 728 38
+354f 8 162 36
+3557 1b 750 38
+3572 8 173 17
+357a 7 2873 15
+3581 2 173 17
+3583 16 2873 15
+3599 12 179 17
+35ab 8 178 17
+35b3 7 179 17
+35ba 7 436 40
+35c1 5 379 40
+35c6 4 436 40
+35ca 5 379 40
+35cf 9 226 17
+35d8 16 75 14
+35ee 12 242 33
+3600 12 246 33
+3612 12 242 33
+3624 12 246 33
+FUNC 3640 31c 0 google_breakpad::ExceptionHandler::ExceptionHandler(google_breakpad::MinidumpDescriptor const&, bool (*)(void*), bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*, bool, int)
+3640 5 197 17
+3645 4 207 17
+3649 20 197 17
+3669 7 207 17
+3670 3 197 17
+3673 4 207 17
+3677 8 71 14
+367f 3 207 17
+3682 4 197 17
+3686 5 207 17
+368b 8 387 40
+3693 2 208 17
+3695 8 207 17
+369d 4 387 40
+36a1 4 388 40
+36a5 4 387 40
+36a9 4 388 40
+36ad 6 208 17
+36b3 7 209 17
+36ba 4 81 14
+36be 3 209 17
+36c1 5 81 14
+36c6 a 82 14
+36d0 4 83 14
+36d4 9 211 17
+36dd c 214 17
+36e9 12 215 17
+36fb 5 217 17
+3700 d 135 17
+370d 5 219 17
+3712 9 221 17
+371b e 883 42
+3729 10 120 45
+3739 8 887 42
+3741 c 222 17
+374d 27 223 17
+3774 9 211 17
+377d a 211 17
+3787 11 212 17
+3798 7 144 17
+379f 21 138 17
+37c0 21 139 17
+37e1 6 144 17
+37e7 2d 2873 15
+3814 8 150 17
+381c 7 151 17
+3823 7 150 17
+382a 2a 2873 15
+3854 14 154 17
+3868 8 120 45
+3870 28 148 17
+3898 18 893 42
+38b0 a 216 17
+38ba 17 88 42
+38d1 f 216 17
+38e0 30 144 17
+3910 a 153 17
+391a f 157 17
+3929 16 75 14
+393f 13 379 40
+3952 a 207 17
+FUNC 3960 167 0 google_breakpad::ExceptionHandler::WriteMinidump(std::string const&, bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*)
+3960 1e 550 17
+397e 5 54 2
+3983 3 550 17
+3986 3 54 2
+3989 3 550 17
+398c d 54 2
+3999 7 272 33
+39a0 12 54 2
+39b2 9 272 33
+39bb 4 713 33
+39bf 7 55 2
+39c6 21 552 17
+39e7 16 553 17
+39fd 9 536 33
+3a06 5 237 33
+3a0b 9 536 33
+3a14 5 237 33
+3a19 2a 554 17
+3a43 1f 55 2
+3a62 e 242 33
+3a70 f 246 33
+3a7f 12 242 33
+3a91 12 246 33
+3aa3 24 553 17
+FUNC 3ad0 2f 0 std::_List_base<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::_M_clear()
+3ad0 9 66 35
+3ad9 3 70 35
+3adc c 71 35
+3ae8 3 74 35
+3aeb 5 100 45
+3af0 3 71 35
+3af3 3 74 35
+3af6 2 71 35
+3af8 7 82 35
+FUNC 3b00 2f 0 std::_List_base<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> >::_M_clear()
+3b00 9 66 35
+3b09 3 70 35
+3b0c c 71 35
+3b18 3 74 35
+3b1b 5 100 45
+3b20 3 71 35
+3b23 3 74 35
+3b26 2 71 35
+3b28 7 82 35
+FUNC 3b30 1ba 0 std::vector<google_breakpad::ExceptionHandler*, std::allocator<google_breakpad::ExceptionHandler*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpad::ExceptionHandler**, std::vector<google_breakpad::ExceptionHandler*, std::allocator<google_breakpad::ExceptionHandler*> > >, google_breakpad::ExceptionHandler* const&)
+3b30 28 316 43
+3b58 a 320 43
+3b62 10 120 45
+3b72 8 325 43
+3b7a 3 327 43
+3b7d 4 329 43
+3b81 7 559 37
+3b88 5 560 37
+3b8d f 561 37
+3b9c 4 333 43
+3ba0 28 391 43
+3bc8 8 120 45
+3bd0 a 626 42
+3bda 9 215 37
+3be3 4 1308 42
+3be7 9 1309 42
+3bf0 3 900 38
+3bf3 7 342 43
+3bfa 3 900 38
+3bfd 4 342 43
+3c01 15 94 45
+3c16 4 351 43
+3c1a b 120 45
+3c25 3 360 43
+3c28 3 364 37
+3c2b 3 365 37
+3c2e 7 364 37
+3c35 5 365 37
+3c3a 13 366 37
+3c4d 4 364 37
+3c51 5 365 43
+3c56 3 365 37
+3c59 7 364 37
+3c60 5 365 37
+3c65 16 366 37
+3c7b 3 384 43
+3c7e 3 367 37
+3c81 5 174 42
+3c86 5 100 45
+3c8b 3 387 43
+3c8e 3 389 43
+3c91 4 388 43
+3c95 b 389 43
+3ca0 3 900 38
+3ca3 6 342 43
+3ca9 3 900 38
+3cac 9 342 43
+3cb5 13 1309 42
+3cc8 6 900 38
+3cce 3 169 42
+3cd1 7 900 38
+3cd8 4 342 43
+3cdc e 169 42
+FUNC 3cf0 7d 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor(google_breakpad::MinidumpDescriptor const&)
+3cf0 e 38 18
+3cfe 2 42 18
+3d00 6 38 18
+3d06 f 42 18
+3d15 7 272 33
+3d1c 8 42 18
+3d24 8 272 33
+3d2c 8 42 18
+3d34 4 713 33
+3d38 7 46 18
+3d3f f 47 18
+3d4e 1f 46 18
+FUNC 3d70 232 0 google_breakpad::MinidumpDescriptor::UpdatePath()
+3d70 b 65 18
+3d7b 9 66 18
+3d84 4 713 33
+3d88 b 66 18
+3d93 e 70 18
+3da1 1f 71 18
+3dc0 1b 70 18
+3ddb 4 713 33
+3ddf 4 74 18
+3de3 10 801 33
+3df3 4 75 18
+3df7 a 2402 33
+3e01 16 1006 33
+3e17 f 2402 33
+3e26 1c 261 34
+3e42 8 1006 33
+3e4a 1c 261 34
+3e66 5 1006 33
+3e6b f 2402 33
+3e7a 16 1006 33
+3e90 d 544 33
+3e9d 5 536 33
+3ea2 7 237 33
+3ea9 4 536 33
+3ead 9 237 33
+3eb6 9 536 33
+3ebf 5 237 33
+3ec4 9 536 33
+3ecd 5 237 33
+3ed2 8 76 18
+3eda 9 77 18
+3ee3 1f 66 18
+3f02 e 242 33
+3f10 f 246 33
+3f1f e 242 33
+3f2d f 246 33
+3f3c 12 242 33
+3f4e 12 246 33
+3f60 42 75 18
+FUNC 3fb0 85 0 google_breakpad::MinidumpDescriptor::operator=(google_breakpad::MinidumpDescriptor const&)
+3fb0 9 50 18
+3fb9 4 713 33
+3fbd 7 51 18
+3fc4 5 53 18
+3fc9 4 54 18
+3fcd 2 53 18
+3fcf 4 54 18
+3fd3 5 544 33
+3fd8 4 713 33
+3fdc 4 55 18
+3fe0 d 801 33
+3fed 7 56 18
+3ff4 8 58 18
+3ffc 8 59 18
+4004 8 61 18
+400c a 63 18
+4016 1f 51 18
+FUNC 4040 38 0 logger::write(char const*, unsigned long)
+4040 7 40 20
+4047 1a 2887 15
+4061 7 46 20
+4068 e 2887 15
+4076 2 46 20
+FUNC 4080 5d 0 MinidumpWriter::~MinidumpWriter
+4080 e 497 23
+408e 3 500 23
+4091 3 497 23
+4094 4 501 23
+4098 2 500 23
+409a a 502 23
+40a4 3 497 23
+40a7 e 503 23
+40b5 b 497 23
+40c0 d 501 23
+40cd 10 497 23
+FUNC 40e0 1e 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex(unsigned int, MDRawDirectory*)
+40e0 5 73 8
+40e5 13 76 8
+40f8 6 72 8
+FUNC 4100 15e5 0 MinidumpWriter::WriteThreadListStream
+4100 6 744 23
+4106 4 747 23
+410a e 744 23
+4118 4 745 23
+411c 5 747 23
+4121 14 161 9
+4135 b 212 9
+4140 8 626 42
+4148 3 161 9
+414b b 212 9
+4156 4 626 42
+415a 7 161 9
+4161 4 745 23
+4165 2 748 23
+4167 9 66 8
+4170 f 68 8
+417f b 67 8
+418a d 68 8
+4197 8 748 23
+419f 8 176 9
+41a7 5 754 23
+41ac 7 751 23
+41b3 3 176 9
+41b6 7 752 23
+41bd 8 754 23
+41c5 3 752 23
+41c8 9 762 23
+41d1 4 764 23
+41d5 3 766 23
+41d8 3 764 23
+41db 7 766 23
+41e2 9 767 23
+41eb 8 761 23
+41f3 e 771 23
+4201 10 223 9
+4211 5 771 23
+4216 a 223 9
+4220 14 773 23
+4234 4 774 23
+4238 8 766 42
+4240 7 774 23
+4247 3 780 23
+424a 7 774 23
+4251 6 780 23
+4257 19 841 23
+4270 5 846 23
+4275 6 845 23
+427b 2 846 23
+427d 9 847 23
+4286 8 849 23
+428e 1e 719 23
+42ac 8 161 9
+42b4 4 721 23
+42b8 20 161 9
+42d8 f 721 23
+42e7 8 723 23
+42ef 16 725 23
+4305 2 749 23
+4307 a 216 9
+4311 21 92 8
+4332 1e 875 23
+4350 5 727 23
+4355 4 42 6
+4359 3 71 12
+435c 3 727 23
+435f 4 42 6
+4363 6 71 12
+4369 20 74 12
+4389 3 75 12
+438c 2 76 12
+438e 4 78 12
+4392 3 75 12
+4395 8 77 12
+439d 3 76 12
+43a0 19 729 23
+43b9 19 186 9
+43d2 8 176 9
+43da 8 883 42
+43e2 5 732 23
+43e7 7 176 9
+43ee 7 733 23
+43f5 8 732 23
+43fd 7 733 23
+4404 6 883 42
+440a 14 120 45
+441e 12 887 42
+4430 b 780 23
+443b 6 782 23
+4441 17 780 23
+4458 4 738 23
+445c 8 736 23
+4464 3 716 23
+4467 b 737 23
+4472 8 738 23
+447a 8 212 9
+4482 5 161 9
+4487 7 212 9
+448e 5 47 8
+4493 8 161 9
+449b 3 212 9
+449e 8 47 8
+44a6 14 161 9
+44ba b 46 8
+44c5 5 47 8
+44ca 8 853 23
+44d2 11 855 23
+44e3 8 226 23
+44eb b 224 23
+44f6 3 857 23
+44f9 15 277 23
+450e 8 226 23
+4516 10 228 23
+4526 10 229 23
+4536 10 230 23
+4546 10 231 23
+4556 10 233 23
+4566 f 234 23
+4575 10 236 23
+4585 10 237 23
+4595 10 238 23
+45a5 10 239 23
+45b5 10 242 23
+45c5 10 243 23
+45d5 10 245 23
+45e5 10 246 23
+45f5 10 247 23
+4605 10 248 23
+4615 8 253 23
+461d 8 250 23
+4625 8 253 23
+462d 8 254 23
+4635 8 250 23
+463d 8 252 23
+4645 8 254 23
+464d 8 255 23
+4655 8 252 23
+465d 8 255 23
+4665 10 256 23
+4675 10 257 23
+4685 10 258 23
+4695 10 259 23
+46a5 10 260 23
+46b5 10 261 23
+46c5 10 262 23
+46d5 10 264 23
+46e5 10 266 23
+46f5 10 267 23
+4705 f 268 23
+4714 10 269 23
+4724 8 270 23
+472c a 271 23
+4736 a 273 23
+4740 7 270 23
+4747 f 272 23
+4756 e 274 23
+4764 e 275 23
+4772 100 276 23
+4872 3 277 23
+4875 2 857 23
+4877 8 42 6
+487f a 606 23
+4889 a 616 23
+4893 3 604 23
+4896 15 606 23
+48ab 9 614 23
+48b4 3 615 23
+48b7 9 616 23
+48c0 8 605 23
+48c8 3 615 23
+48cb 5 606 23
+48d0 4 860 23
+48d4 7 859 23
+48db 8 176 9
+48e3 4 860 23
+48e7 e 859 23
+48f5 e 860 23
+4903 a 216 9
+490d 1e 92 8
+492b 8 83 8
+4933 f 871 23
+4942 6 83 8
+4948 1f 87 8
+4967 a 771 23
+4971 f 874 23
+4980 3 861 23
+4983 3 862 23
+4986 3 861 23
+4989 b 862 23
+4994 1c 163 5
+49b0 4 1248 23
+49b4 e 719 23
+49c2 7 1248 23
+49c9 10 719 23
+49d9 8 161 9
+49e1 d 725 23
+49ee 1b 161 9
+4a09 d 725 23
+4a16 5 727 23
+4a1b 4 42 6
+4a1f 3 71 12
+4a22 3 727 23
+4a25 6 71 12
+4a2b 25 74 12
+4a50 3 75 12
+4a53 2 76 12
+4a55 3 75 12
+4a58 2 77 12
+4a5a 4 75 12
+4a5e 6 77 12
+4a64 5 76 12
+4a69 1a 729 23
+4a83 1d 186 9
+4aa0 8 176 9
+4aa8 8 883 42
+4ab0 5 732 23
+4ab5 7 176 9
+4abc 7 733 23
+4ac3 8 732 23
+4acb 7 733 23
+4ad2 6 883 42
+4ad8 14 120 45
+4aec e 887 42
+4afa 4 738 23
+4afe 8 736 23
+4b06 b 737 23
+4b11 8 716 23
+4b19 8 738 23
+4b21 4 1252 23
+4b25 6 795 23
+4b2b 7 1252 23
+4b32 4 795 23
+4b36 4 42 6
+4b3a 4 626 42
+4b3e 2 795 23
+4b40 7 626 42
+4b47 9 795 23
+4b50 4 796 23
+4b54 8 797 23
+4b5c 10 797 23
+4b6c e 795 23
+4b7a 8 212 9
+4b82 5 161 9
+4b87 7 212 9
+4b8e 5 47 8
+4b93 8 161 9
+4b9b 3 212 9
+4b9e 8 47 8
+4ba6 14 161 9
+4bba b 46 8
+4bc5 5 47 8
+4bca 8 831 23
+4bd2 11 833 23
+4be3 8 834 23
+4beb b 284 23
+4bf6 f 286 23
+4c05 3 288 23
+4c08 c 289 23
+4c14 7 291 23
+4c1b c 288 23
+4c27 7 291 23
+4c2e f 293 23
+4c3d f 294 23
+4c4c f 295 23
+4c5b f 296 23
+4c6a f 298 23
+4c79 c 299 23
+4c85 c 300 23
+4c91 c 301 23
+4c9d c 302 23
+4ca9 c 303 23
+4cb5 c 304 23
+4cc1 c 305 23
+4ccd c 306 23
+4cd9 c 307 23
+4ce5 c 308 23
+4cf1 c 309 23
+4cfd f 311 23
+4d0c b 313 23
+4d17 c 314 23
+4d23 b 315 23
+4d2e c 316 23
+4d3a b 317 23
+4d45 4 318 23
+4d49 a 319 23
+4d53 a 320 23
+4d5d 7 318 23
+4d64 a 321 23
+4d6e a 322 23
+4d78 4 323 23
+4d7c 8 324 23
+4d84 c0 323 23
+4e44 a 324 23
+4e4e 8 323 23
+4e56 8 324 23
+4e5e 7 835 23
+4e65 8 42 6
+4e6d a 606 23
+4e77 e 616 23
+4e85 3 604 23
+4e88 15 606 23
+4e9d 9 614 23
+4ea6 3 615 23
+4ea9 9 616 23
+4eb2 8 605 23
+4eba 3 615 23
+4ebd b 606 23
+4ec8 8 216 9
+4ed0 7 837 23
+4ed7 8 176 9
+4edf 7 837 23
+4ee6 3 838 23
+4ee9 7 837 23
+4ef0 3 838 23
+4ef3 6 216 9
+4ef9 1f 92 8
+4f18 4 804 23
+4f1c 5 161 9
+4f21 c 816 23
+4f2d 8 161 9
+4f35 3 804 23
+4f38 c 161 9
+4f44 5 816 23
+4f49 4 804 23
+4f4d 4 807 23
+4f51 8 161 9
+4f59 3 809 23
+4f5c 8 804 23
+4f64 6 809 23
+4f6a 2 816 23
+4f6c 7 809 23
+4f73 d 816 23
+4f80 8 819 23
+4f88 4 42 6
+4f8c 9 71 12
+4f95 25 74 12
+4fba 3 75 12
+4fbd 3 76 12
+4fc0 3 75 12
+4fc3 8 77 12
+4fcb 5 76 12
+4fd0 1c 824 23
+4fec 7 825 23
+4ff3 14 186 9
+5007 8 176 9
+500f 8 883 42
+5017 7 176 9
+501e e 826 23
+502c 6 883 42
+5032 1c 120 45
+504e 12 887 42
+5060 e 86 12
+506e f 2936 15
+507d 3 86 12
+5080 5 2936 15
+5085 9 86 12
+508e 3 115 12
+5091 31 2936 15
+50c2 1e 89 12
+50e0 1a 637 23
+50fa 8 645 23
+5102 6 652 23
+5108 48 645 23
+5150 8 652 23
+5158 8 656 23
+5160 5 658 23
+5165 5 657 23
+516a 8 651 23
+5172 8 653 23
+517a 8 646 23
+5182 8 647 23
+518a 8 648 23
+5192 8 649 23
+519a 8 650 23
+51a2 8 654 23
+51aa 8 655 23
+51b2 8 657 23
+51ba 8 658 23
+51c2 5 659 23
+51c7 5 660 23
+51cc 8 661 23
+51d4 8 659 23
+51dc 14 660 23
+51f0 1a 637 23
+520a 8 645 23
+5212 6 652 23
+5218 4d 645 23
+5265 8 654 23
+526d 8 655 23
+5275 5 656 23
+527a 5 657 23
+527f 8 651 23
+5287 8 652 23
+528f 8 653 23
+5297 8 646 23
+529f 8 647 23
+52a7 8 648 23
+52af 8 649 23
+52b7 8 650 23
+52bf 8 656 23
+52c7 8 657 23
+52cf 5 658 23
+52d4 5 659 23
+52d9 5 660 23
+52de 8 661 23
+52e6 8 658 23
+52ee 8 659 23
+52f6 d 660 23
+5303 11 86 12
+5314 f 2936 15
+5323 3 86 12
+5326 5 2936 15
+532b 9 86 12
+5334 3 115 12
+5337 37 2936 15
+536e 1d 89 12
+538b 11 86 12
+539c f 2936 15
+53ab 3 86 12
+53ae 5 2936 15
+53b3 9 86 12
+53bc 3 115 12
+53bf 35 2936 15
+53f4 14 89 12
+5408 d 768 23
+5415 c 120 12
+5421 a 124 12
+542b 4 125 12
+542f a 93 12
+5439 3 124 12
+543c 3 125 12
+543f 5 126 12
+5444 16 93 12
+545a 5 94 12
+545f 5 93 12
+5464 11 94 12
+5475 5 96 12
+547a 11 94 12
+548b 9 96 12
+5494 9 78 12
+549d e 79 12
+54ab 8 72 12
+54b3 4 827 23
+54b7 16 893 42
+54cd c 120 12
+54d9 9 124 12
+54e2 5 125 12
+54e7 4 93 12
+54eb 4 124 12
+54ef 3 93 12
+54f2 4 125 12
+54f6 4 124 12
+54fa 4 126 12
+54fe 17 93 12
+5515 5 94 12
+551a 3 93 12
+551d 15 94 12
+5532 a 96 12
+553c 8 94 12
+5544 d 96 12
+5551 a 120 12
+555b 5 124 12
+5560 e 93 12
+556e 3 124 12
+5571 4 125 12
+5575 5 93 12
+557a 3 125 12
+557d 5 93 12
+5582 5 126 12
+5587 8 93 12
+558f 5 94 12
+5594 5 93 12
+5599 f 94 12
+55a8 4 96 12
+55ac a 94 12
+55b6 d 96 12
+55c3 9 78 12
+55cc e 79 12
+55da 7 78 12
+55e1 d 79 12
+55ee e 216 9
+55fc 26 92 8
+5622 e 216 9
+5630 26 92 8
+5656 15 72 12
+566b c 734 23
+5677 e 893 42
+5685 c 734 23
+5691 13 893 42
+56a4 10 868 23
+56b4 1a 874 23
+56ce 17 838 23
+FUNC 56f0 1d12 0 MinidumpWriter::Dump
+56f0 2 505 23
+56f2 4 510 23
+56f6 5 47 8
+56fb 12 505 23
+570d 3 42 6
+5710 8 47 8
+5718 14 161 9
+572c 18 212 9
+5744 7 161 9
+574b 18 212 9
+5763 1b 161 9
+577e 2c 212 9
+57aa b 46 8
+57b5 5 47 8
+57ba 8 512 23
+57c2 d 60 8
+57cf b 59 8
+57da 5 60 8
+57df 2 515 23
+57e1 4 514 23
+57e5 a 216 9
+57ef 21 92 8
+5810 a 216 9
+581a 21 92 8
+583b 15 595 23
+5850 8 513 23
+5858 8 223 9
+5860 c 516 23
+586c 2 520 23
+586e b 518 23
+5879 b 519 23
+5884 c 520 23
+5890 7 522 23
+5897 b 527 23
+58a2 b 521 23
+58ad 7 522 23
+58b4 d 527 23
+58c1 8 73 8
+58c9 f 529 23
+58d8 6 73 8
+58de 12 76 8
+58f0 4 933 23
+58f4 4 934 23
+58f8 4 42 6
+58fc 4 626 42
+5900 3 42 6
+5903 7 626 42
+590a 16 80 39
+5920 3 236 40
+5923 4 83 39
+5927 5 80 39
+592c 14 936 23
+5940 9 919 23
+5949 c 936 23
+5955 4 937 23
+5959 11 902 23
+596a 9 938 23
+5973 b 914 23
+597e c 919 23
+598a 3 236 40
+598d 5 914 23
+5992 5 939 23
+5997 4 161 9
+599b 2 943 23
+599d 14 161 9
+59b1 b 212 9
+59bc 7 161 9
+59c3 6 943 23
+59c9 2 944 23
+59cb 8 68 8
+59d3 b 67 8
+59de 1a 68 8
+59f8 8 949 23
+5a00 c 176 9
+5a0c 2 959 23
+5a0e 4 933 23
+5a12 b 953 23
+5a1d 7 955 23
+5a24 7 176 9
+5a2b 11 954 23
+5a3c 6 959 23
+5a42 8 1015 23
+5a4a 3 959 23
+5a4d 8 958 23
+5a55 b 1015 23
+5a60 d 919 23
+5a6d b 959 23
+5a78 9 42 6
+5a81 8 960 23
+5a89 11 902 23
+5a9a 9 961 23
+5aa3 b 914 23
+5aae 13 919 23
+5ac1 3 236 40
+5ac4 5 914 23
+5ac9 14 990 23
+5add 3 992 23
+5ae0 7 994 23
+5ae7 8 992 23
+5aef b 993 23
+5afa 8 994 23
+5b02 5 997 23
+5b07 5 998 23
+5b0c 19 999 23
+5b25 4 1001 23
+5b29 5 998 23
+5b2e 4 1003 23
+5b32 14 161 9
+5b46 5 1003 23
+5b4b 12 1005 23
+5b5d 5 1010 23
+5b62 4 161 9
+5b66 14 1010 23
+5b7a 7 161 9
+5b81 d 1010 23
+5b8e 15 1023 23
+5ba3 b 1014 23
+5bae 5 1023 23
+5bb3 8 1017 23
+5bbb c 1025 23
+5bc7 a 1029 23
+5bd1 8 1026 23
+5bd9 9 1029 23
+5be2 21 186 9
+5c03 8 176 9
+5c0b e 1035 23
+5c19 7 176 9
+5c20 e 1032 23
+5c2e 9 1035 23
+5c37 4 967 23
+5c3b 4 1037 23
+5c3f b 967 23
+5c4a 8 83 8
+5c52 7 1037 23
+5c59 7 967 23
+5c60 6 83 8
+5c66 28 87 8
+5c8e 12 967 23
+5ca0 2 975 23
+5ca2 a 216 9
+5cac 22 92 8
+5cce 8 531 23
+5cd6 8 73 8
+5cde f 533 23
+5ced 6 73 8
+5cf3 15 76 8
+5d08 4 879 23
+5d0c 3 42 6
+5d0f 9 879 23
+5d18 18 895 23
+5d30 2 76 12
+5d32 6 75 12
+5d38 2 77 12
+5d3a 3 76 12
+5d3d 2 77 12
+5d3f 7 78 12
+5d46 a 79 12
+5d50 13 885 23
+5d63 4 161 9
+5d67 c 888 23
+5d73 1b 161 9
+5d8e d 888 23
+5d9b 1b 186 9
+5db6 8 176 9
+5dbe 8 883 42
+5dc6 4 893 23
+5dca 7 176 9
+5dd1 7 894 23
+5dd8 8 893 23
+5de0 7 894 23
+5de7 6 883 42
+5ded 14 120 45
+5e01 8 887 42
+5e09 4 236 40
+5e0d a 879 23
+5e17 8 883 23
+5e1f 3 71 12
+5e22 3 883 23
+5e25 6 71 12
+5e2b 1c 74 12
+5e47 11 86 12
+5e58 f 2936 15
+5e67 3 86 12
+5e6a 5 2936 15
+5e6f 3 115 12
+5e72 9 86 12
+5e7b 5 2936 15
+5e80 5 115 12
+5e85 2b 2936 15
+5eb0 15 89 12
+5ec5 8 120 12
+5ecd 9 124 12
+5ed6 4 125 12
+5eda 8 93 12
+5ee2 3 124 12
+5ee5 3 125 12
+5ee8 4 126 12
+5eec 16 93 12
+5f02 5 94 12
+5f07 3 93 12
+5f0a 11 94 12
+5f1b 5 96 12
+5f20 4 94 12
+5f24 6 96 12
+5f2a d 47 8
+5f37 b 46 8
+5f42 f 47 8
+5f51 8 958 23
+5f59 2a 970 23
+5f83 d 1017 23
+5f90 11 990 23
+5fa1 4 992 23
+5fa5 7 994 23
+5fac 8 992 23
+5fb4 b 993 23
+5fbf 5 994 23
+5fc4 4 997 23
+5fc8 3 994 23
+5fcb 5 997 23
+5fd0 5 998 23
+5fd5 10 999 23
+5fe5 4 1001 23
+5fe9 5 998 23
+5fee 5 1005 23
+5ff3 4 1003 23
+5ff7 8 1010 23
+5fff 5 1003 23
+6004 8 161 9
+600c 3 1005 23
+600f 10 161 9
+601f 7 1010 23
+6026 7 161 9
+602d 12 1010 23
+603f b 1014 23
+604a 7 1020 23
+6051 c 1025 23
+605d 17 1020 23
+6074 5 1025 23
+6079 5 1029 23
+607e 8 1026 23
+6086 9 1029 23
+608f 21 186 9
+60b0 8 176 9
+60b8 e 1035 23
+60c6 7 176 9
+60cd e 1032 23
+60db d 1035 23
+60e8 8 83 8
+60f0 4 1037 23
+60f4 8 976 23
+60fc 7 1037 23
+6103 7 976 23
+610a 6 83 8
+6110 1d 87 8
+612d 4 236 40
+6131 f 970 23
+6140 a 979 23
+614a 8 72 12
+6152 17 893 42
+6169 18 161 9
+6181 b 212 9
+618c 7 161 9
+6193 c 626 42
+619f 9 1043 23
+61a8 c 68 8
+61b4 b 67 8
+61bf c 68 8
+61cb 8 1050 23
+61d3 8 176 9
+61db 4 626 42
+61df 7 1055 23
+61e6 b 1054 23
+61f1 7 176 9
+61f8 4 42 6
+61fc 7 1055 23
+6203 7 626 42
+620a 3 1059 23
+620d 7 1057 23
+6214 2 1059 23
+6216 8 83 8
+621e 8 1061 23
+6226 12 83 8
+6238 3 505 23
+623b a 1061 23
+6245 4 505 23
+6249 3 751 42
+624c 8 83 8
+6254 7 1061 23
+625b 6 83 8
+6261 11 87 8
+6272 4 42 6
+6276 4 626 42
+627a 4 1059 23
+627e 7 626 42
+6285 5 1059 23
+628a 5 1063 23
+628f a 216 9
+6299 1d 92 8
+62b6 8 538 23
+62be 28 540 23
+62e6 4 161 9
+62ea d 212 9
+62f7 5 47 8
+62fc 14 161 9
+6310 b 46 8
+631b 7 161 9
+6322 5 212 9
+6327 d 47 8
+6334 8 1068 23
+633c 8 223 9
+6344 c 1070 23
+6350 8 176 9
+6358 b 1072 23
+6363 5 1080 23
+6368 7 176 9
+636f e 1073 23
+637d 4 42 6
+6381 a 1075 23
+638b 3 1076 23
+638e 4 1077 23
+6392 7 1076 23
+6399 8 1077 23
+63a1 c 1078 23
+63ad a 216 9
+63b7 21 92 8
+63d8 8 542 23
+63e0 28 544 23
+6408 4 161 9
+640c d 212 9
+6419 5 47 8
+641e 14 161 9
+6432 b 46 8
+643d 7 161 9
+6444 4 212 9
+6448 d 47 8
+6455 8 1085 23
+645d 8 223 9
+6465 c 1087 23
+6471 8 176 9
+6479 10 1294 23
+6489 e 1308 23
+6497 5 1294 23
+649c 7 1308 23
+64a3 b 1089 23
+64ae 7 176 9
+64b5 7 1090 23
+64bc 26 1308 23
+64e2 7 1090 23
+64e9 2 1294 23
+64eb 8 1308 23
+64f3 2 1294 23
+64f5 2a 1308 23
+651f 5 2822 15
+6524 13 1308 23
+6537 7 2822 15
+653e 8 1308 23
+6546 a 1317 23
+6550 3 1294 23
+6553 1d 2822 15
+6570 8 1653 23
+6578 b 1649 23
+6583 12 1653 23
+6595 f 1657 23
+65a4 8 1667 23
+65ac 5 1658 23
+65b1 8 1657 23
+65b9 a 1665 23
+65c3 5 1667 23
+65c8 6 1666 23
+65ce 3b 1665 23
+6609 9 1677 23
+6612 12 1683 23
+6624 3 1684 23
+6627 3 1682 23
+662a 14 1667 23
+663e 8 1670 23
+6646 3 1671 23
+6649 3 1670 23
+664c 2 1671 23
+664e 11 1674 23
+665f 18 1705 23
+6677 b 1707 23
+6682 e 1095 23
+6690 7 80 39
+6697 d 47 8
+66a4 b 46 8
+66af d 47 8
+66bc 7 1051 23
+66c3 12 1069 23
+66d5 2 1086 23
+66d7 a 216 9
+66e1 21 92 8
+6702 8 546 23
+670a 28 548 23
+6732 12 551 23
+6744 b 550 23
+674f 9 551 23
+6758 b 1287 23
+6763 b 1288 23
+676e b 1289 23
+6779 28 553 23
+67a1 4 42 6
+67a5 12 556 23
+67b7 b 555 23
+67c2 c 556 23
+67ce b 1287 23
+67d9 b 1288 23
+67e4 b 1289 23
+67ef 28 558 23
+6817 12 561 23
+6829 b 560 23
+6834 9 561 23
+683d b 1287 23
+6848 b 1288 23
+6853 b 1289 23
+685e 28 563 23
+6886 4 42 6
+688a 12 566 23
+689c b 565 23
+68a7 c 566 23
+68b3 b 1287 23
+68be b 1288 23
+68c9 b 1289 23
+68d4 28 568 23
+68fc 4 42 6
+6900 12 571 23
+6912 b 570 23
+691d c 571 23
+6929 b 1287 23
+6934 b 1288 23
+693f b 1289 23
+694a 28 573 23
+6972 4 42 6
+6976 12 576 23
+6988 b 575 23
+6993 c 576 23
+699f b 1287 23
+69aa b 1288 23
+69b5 b 1289 23
+69c0 28 578 23
+69e8 4 42 6
+69ec 12 581 23
+69fe b 580 23
+6a09 c 581 23
+6a15 b 1287 23
+6a20 b 1288 23
+6a2b b 1289 23
+6a36 28 583 23
+6a5e 4 42 6
+6a62 b 585 23
+6a6d 7 42 6
+6a74 4 1099 23
+6a78 4 1101 23
+6a7c 3 1102 23
+6a7f 5 1101 23
+6a84 e 1102 23
+6a92 6 1106 23
+6a98 2 1109 23
+6a9a 9 1106 23
+6aa3 1e 1112 23
+6ac1 10 1115 23
+6ad1 9 1118 23
+6ada f 1110 23
+6ae9 9 1122 23
+6af2 3 1125 23
+6af5 6 505 23
+6afb 3 1130 23
+6afe 3 1125 23
+6b01 5 505 23
+6b06 d 1141 23
+6b13 4 1137 23
+6b17 4 505 23
+6b1b 11 1137 23
+6b2c 4 505 23
+6b30 9 1137 23
+6b39 e 1138 23
+6b47 d 1139 23
+6b54 a 216 9
+6b5e 21 92 8
+6b7f a 216 9
+6b89 21 92 8
+6baa a 216 9
+6bb4 29 92 8
+6bdd d 1119 23
+6bea f 1115 23
+6bf9 d 1116 23
+6c06 d 1194 23
+6c13 b 1287 23
+6c1e b 1288 23
+6c29 b 1289 23
+6c34 28 588 23
+6c5c a 593 23
+6c66 a 594 23
+6c70 1e 1158 23
+6c8e 8 1159 23
+6c96 4 1155 23
+6c9a 1b 1161 23
+6cb5 8 1162 23
+6cbd 3 1163 23
+6cc0 5 1159 23
+6cc5 7 1166 23
+6ccc 2 1167 23
+6cce 6 1166 23
+6cd4 6 1167 23
+6cda 3 1171 23
+6cdd 4 161 9
+6ce1 c 60 8
+6ced 14 161 9
+6d01 17 212 9
+6d18 7 161 9
+6d1f c 212 9
+6d2b b 59 8
+6d36 5 60 8
+6d3b 8 1171 23
+6d43 8 1173 23
+6d4b 8 1181 23
+6d53 3 1177 23
+6d56 5 1181 23
+6d5b 5 1173 23
+6d60 d 1177 23
+6d6d 1e 1179 23
+6d8b c 1181 23
+6d97 8 1180 23
+6d9f 3 1181 23
+6da2 b 1182 23
+6dad 1 1181 23
+6dae 2 1182 23
+6db0 1b 1184 23
+6dcb 1f 1187 23
+6dea 4 1190 23
+6dee 8 73 8
+6df6 f 1193 23
+6e05 7 1190 23
+6e0c 10 1191 23
+6e1c 10 1192 23
+6e2c 6 73 8
+6e32 19 76 8
+6e4b 9 1177 23
+6e54 d 1194 23
+6e61 5 1199 23
+6e66 18 161 9
+6e7e 16 212 9
+6e94 7 161 9
+6e9b b 212 9
+6ea6 3 66 8
+6ea9 2f 212 9
+6ed8 6 66 8
+6ede d 68 8
+6eeb b 67 8
+6ef6 5 68 8
+6efb 8 1199 23
+6f03 8 223 9
+6f0b c 1201 23
+6f17 8 176 9
+6f1f 5 1206 23
+6f24 f 76 43
+6f33 b 1202 23
+6f3e 7 1207 23
+6f45 7 176 9
+6f4c 7 1203 23
+6f53 8 1206 23
+6f5b 8 1210 23
+6f63 18 92 42
+6f7b 7 1203 23
+6f82 7 1205 23
+6f89 c 92 42
+6f95 7 1205 23
+6f9c 10 1208 23
+6fac 10 1209 23
+6fbc 10 1212 23
+6fcc 5 76 43
+6fd1 4 84 43
+6fd5 13 1004 42
+6fe8 8 82 43
+6ff0 8 83 43
+6ff8 8 84 43
+7000 10 1004 42
+7010 1b 1217 23
+702b 8 83 8
+7033 17 1218 23
+704a 6 83 8
+7050 b 87 8
+705b 12 1220 23
+706d d 586 23
+707a 15 1194 23
+708f 1f 73 8
+70ae 16 1678 23
+70c4 9 1679 23
+70cd 2 1321 23
+70cf 4 2822 15
+70d3 6 1321 23
+70d9 5 60 12
+70de d 198 12
+70eb 2a 63 12
+7115 8 198 12
+711d d 49 4
+712a a 48 7
+7134 1a 1328 23
+714e 12 1332 23
+7160 b 1333 23
+716b 15 1337 23
+7180 8 42 6
+7188 9 116 7
+7191 b 1340 23
+719c a 1329 23
+71a6 1c 1353 23
+71c2 8 42 6
+71ca 5 116 7
+71cf f 1356 23
+71de 17 1357 23
+71f5 15 1344 23
+720a 8 1347 23
+7212 4 1348 23
+7216 a 1347 23
+7220 9 1360 23
+7229 8 42 6
+7231 5 134 12
+7236 5 2812 15
+723b 7 136 12
+7242 3 135 12
+7245 2 2812 15
+7247 4 136 12
+724b 16 2812 15
+7261 a 134 12
+726b 12 1367 23
+727d 6 1364 23
+7283 11 1374 23
+7294 7 1376 23
+729b f 1378 23
+72aa 11 1380 23
+72bb 8 1383 23
+72c3 8 1380 23
+72cb 6 1383 23
+72d1 23 1385 23
+72f4 b 42 6
+72ff 6 2812 15
+7305 9 134 12
+730e 7 136 12
+7315 3 135 12
+7318 3 2812 15
+731b 4 136 12
+731f 2b 2812 15
+734a 10 1063 23
+735a 11 216 9
+736b 2b 92 8
+7396 12 979 23
+73a8 1f 83 8
+73c7 7 1200 23
+73ce 15 1220 23
+73e3 1f 66 8
+FUNC 7410 1ac 0 google_breakpad::WriteMinidump(char const*, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&, google_breakpad::LinuxDumper*)
+7410 11 1841 23
+7421 32 479 23
+7453 a 190 12
+745d 9 479 23
+7466 1b 92 42
+7481 9 479 23
+748a 5 190 12
+748f 4 481 23
+7493 a 479 23
+749d 6 481 23
+74a3 9 482 23
+74ac f 486 23
+74bb 3 489 23
+74be 5 490 23
+74c3 5 489 23
+74c8 5 490 23
+74cd b 494 23
+74d8 4 1843 23
+74dc 8 1845 23
+74e4 4 500 23
+74e8 2 1845 23
+74ea 2 500 23
+74ec b 502 23
+74f7 a 497 23
+7501 f 1846 23
+7510 10 491 23
+7520 2 1844 23
+7522 6 500 23
+7528 10 501 23
+7538 28 481 23
+7560 1f 482 23
+757f 15 497 23
+7594 18 479 23
+75ac 10 1845 23
+FUNC 75c0 2ce 0 WriteMinidumpImpl
+75c0 2b 1748 23
+75eb 8 1749 23
+75f3 3 1748 23
+75f6 2 1749 23
+75f8 6 1748 23
+75fe 5 1749 23
+7603 9 1751 23
+760c 2 1753 23
+760e 9 1752 23
+7617 20 42 6
+7637 41 1767 23
+7678 4 163 5
+767c 9 479 23
+7685 8 163 5
+768d 9 167 5
+7696 d 170 5
+76a3 34 479 23
+76d7 a 190 12
+76e1 9 479 23
+76ea 1b 92 42
+7705 9 479 23
+770e 5 190 12
+7713 8 479 23
+771b 4 481 23
+771f 12 479 23
+7731 6 481 23
+7737 9 482 23
+7740 5 486 23
+7745 5 1223 23
+774a a 486 23
+7754 3 489 23
+7757 5 490 23
+775c 5 489 23
+7761 5 490 23
+7766 b 494 23
+7771 4 1764 23
+7775 8 1766 23
+777d 4 500 23
+7781 2 1766 23
+7783 2 500 23
+7785 13 501 23
+7798 18 491 23
+77b0 2 1765 23
+77b2 6 500 23
+77b8 b 502 23
+77c3 15 497 23
+77d8 28 481 23
+7800 19 479 23
+7819 22 482 23
+783b 28 42 6
+7863 f 479 23
+7872 d 1766 23
+787f f 497 23
+FUNC 7890 2b 0 google_breakpad::WriteMinidump(int, long, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7890 4 1832 23
+7894 22 1835 23
+78b6 5 1836 23
+FUNC 78c0 2c 0 google_breakpad::WriteMinidump(char const*, long, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+78c0 4 1822 23
+78c4 23 1825 23
+78e7 5 1826 23
+FUNC 78f0 2a 0 google_breakpad::WriteMinidump(int, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+78f0 4 1812 23
+78f4 21 1815 23
+7915 5 1816 23
+FUNC 7920 2b 0 google_breakpad::WriteMinidump(char const*, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7920 4 1803 23
+7924 22 1806 23
+7946 5 1807 23
+FUNC 7950 9a 0 google_breakpad::WriteMinidump(int, int, void const*, unsigned long)
+7950 16 1781 23
+7966 3 1781 23
+7969 a 387 40
+7973 16 1784 23
+7989 5 387 40
+798e 5 388 40
+7993 5 387 40
+7998 5 388 40
+799d 5 1784 23
+79a2 19 379 40
+79bb 14 1785 23
+79cf 1b 379 40
+FUNC 79f0 9b 0 google_breakpad::WriteMinidump(char const*, int, void const*, unsigned long)
+79f0 16 1774 23
+7a06 3 1774 23
+7a09 a 387 40
+7a13 17 1777 23
+7a2a 5 387 40
+7a2f 5 388 40
+7a34 5 387 40
+7a39 5 388 40
+7a3e 5 1777 23
+7a43 19 379 40
+7a5c 14 1778 23
+7a70 1b 379 40
+FUNC 7a90 26a 0 google_breakpad::WriteMinidump(char const*, int, int)
+7a90 10 1788 23
+7aa0 10 1789 23
+7ab0 4 387 40
+7ab4 7 170 5
+7abb 5 479 23
+7ac0 5 387 40
+7ac5 b 167 5
+7ad0 8 479 23
+7ad8 4 387 40
+7adc 5 388 40
+7ae1 5 387 40
+7ae6 5 388 40
+7aeb 26 479 23
+7b11 a 190 12
+7b1b 9 479 23
+7b24 21 92 42
+7b45 9 479 23
+7b4e 5 190 12
+7b53 5 481 23
+7b58 14 479 23
+7b6c 6 481 23
+7b72 9 482 23
+7b7b 10 379 40
+7b8b 13 486 23
+7b9e 4 489 23
+7ba2 5 490 23
+7ba7 5 489 23
+7bac 5 490 23
+7bb1 b 494 23
+7bbc 4 1795 23
+7bc0 a 1797 23
+7bca 5 500 23
+7bcf 2 1797 23
+7bd1 2 500 23
+7bd3 b 502 23
+7bde a 497 23
+7be8 1b 42 6
+7c03 15 1798 23
+7c18 18 491 23
+7c30 2 1796 23
+7c32 7 500 23
+7c39 f 501 23
+7c48 28 481 23
+7c70 22 482 23
+7c92 23 42 6
+7cb5 f 1797 23
+7cc4 d 479 23
+7cd1 1a 379 40
+7ceb f 497 23
+FUNC 7d00 153 0 google_breakpad::PageAllocator::Alloc(unsigned int)
+7d00 8 71 12
+7d08 25 70 12
+7d2d b 74 12
+7d38 b 74 12
+7d43 2 75 12
+7d45 2 76 12
+7d47 3 75 12
+7d4a 8 77 12
+7d52 3 76 12
+7d55 2b 97 12
+7d80 c 86 12
+7d8c f 2936 15
+7d9b 3 86 12
+7d9e 5 2936 15
+7da3 6 86 12
+7da9 5 2936 15
+7dae 6 115 12
+7db4 1f 2936 15
+7dd3 d 89 12
+7de0 6 120 12
+7de6 2 93 12
+7de8 4 124 12
+7dec 3 93 12
+7def 4 125 12
+7df3 5 93 12
+7df8 4 124 12
+7dfc 5 93 12
+7e01 4 126 12
+7e05 8 93 12
+7e0d 5 94 12
+7e12 3 93 12
+7e15 13 94 12
+7e28 10 96 12
+7e38 7 78 12
+7e3f 11 79 12
+7e50 2 72 12
+7e52 1 97 12
+FUNC 7e60 248 0 google_breakpad::ProcCpuInfoReader::GetNextField(char const**)
+7e60 4 54 7
+7e64 4 118 4
+7e68 10 54 7
+7e78 b 60 7
+7e83 e 116 4
+7e91 2 117 4
+7e93 8 118 4
+7e9b 7 117 4
+7ea2 5 118 4
+7ea7 e 62 7
+7eb5 6 99 4
+7ebb f 66 4
+7eca 3 99 4
+7ecd 3 2838 15
+7ed0 5 98 4
+7ed5 3 99 4
+7ed8 13 2838 15
+7eeb a 100 4
+7ef5 a 102 4
+7eff 4 103 4
+7f03 5 66 4
+7f08 14 70 4
+7f1c c 54 7
+7f28 10 70 4
+7f38 8 69 4
+7f40 b 78 4
+7f4b a 86 4
+7f55 8 87 4
+7f5d 3 92 4
+7f60 7 90 4
+7f67 e 92 4
+7f75 5 71 4
+7f7a 6 68 7
+7f80 8 77 7
+7f88 4 70 7
+7f8c 5 77 7
+7f91 3 78 7
+7f94 3 77 7
+7f97 6 78 7
+7f9d 5 83 7
+7fa2 5 84 7
+7fa7 3 88 7
+7faa 7 87 7
+7fb1 3 88 7
+7fb4 3 92 7
+7fb7 7 88 7
+7fbe 2 92 7
+7fc0 9 95 7
+7fc9 5 99 7
+7fce 4 101 7
+7fd2 c 104 7
+7fde 5 102 7
+7fe3 d 104 7
+7ff0 e 84 7
+7ffe 4 85 7
+8002 e 84 7
+8010 f 92 7
+801f 4 93 7
+8023 d 92 7
+8030 10 105 4
+8040 e 2838 15
+804e 4 104 7
+8052 2 66 7
+8054 b 104 7
+805f b 70 4
+806a 1f 116 4
+8089 1f 87 4
+FUNC 80b0 22 0 google_breakpad::TypedMDRVA<unsigned int>::~TypedMDRVA()
+80b0 6 216 9
+80b6 1c 92 8
+FUNC 80e0 22 0 google_breakpad::TypedMDRVA<MDRawContextAMD64>::~TypedMDRVA()
+80e0 9 216 9
+80e9 19 92 8
+FUNC 8110 22 0 google_breakpad::TypedMDRVA<MDRawLinkMap>::~TypedMDRVA()
+8110 6 216 9
+8116 1c 92 8
+FUNC 8140 22 0 google_breakpad::TypedMDRVA<MDRawDebug>::~TypedMDRVA()
+8140 6 216 9
+8146 1c 92 8
+FUNC 8170 229 0 std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::reserve(unsigned long)
+8170 a 69 43
+817a 25 66 43
+819f 9 69 43
+81a8 4 42 6
+81ac e 707 42
+81ba 5 71 43
+81bf 29 86 43
+81e8 4 42 6
+81ec 2 169 42
+81ee 4 42 6
+81f2 7 626 42
+81f9 3 169 42
+81fc 5 626 42
+8201 2 169 42
+8203 8 162 12
+820b 4 71 12
+820f 1c 74 12
+822b 2 75 12
+822d 2 76 12
+822f 3 75 12
+8232 8 77 12
+823a 4 76 12
+823e 12 245 41
+8250 13 120 45
+8263 d 245 41
+8270 5 83 43
+8275 4 84 43
+8279 5 82 43
+827e 7 83 43
+8285 3 84 43
+8288 5 83 43
+828d 13 84 43
+82a0 e 86 12
+82ae e 2936 15
+82bc 3 86 12
+82bf 5 2936 15
+82c4 9 86 12
+82cd 3 115 12
+82d0 2d 2936 15
+82fd b 89 12
+8308 8 120 12
+8310 9 124 12
+8319 4 125 12
+831d 5 93 12
+8322 3 124 12
+8325 3 125 12
+8328 3 93 12
+832b 4 126 12
+832f 16 93 12
+8345 5 94 12
+834a 4 93 12
+834e 11 94 12
+835f 5 96 12
+8364 4 94 12
+8368 10 96 12
+8378 8 78 12
+8380 d 79 12
+838d c 70 43
+FUNC 83a0 357 0 std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MDMemoryDescriptor*, std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> > >, MDMemoryDescriptor const&)
+83a0 28 316 43
+83c8 8 320 43
+83d0 3 316 43
+83d3 2 320 43
+83d5 14 120 45
+83e9 4 329 43
+83ed 4 325 43
+83f1 7 327 43
+83f8 3 559 37
+83fb 4 325 43
+83ff 4 327 43
+8403 4 559 37
+8407 5 560 37
+840c f 561 37
+841b a 333 43
+8425 2b 391 43
+8450 4 42 6
+8454 a 626 42
+845e 9 215 37
+8467 4 1308 42
+846b 9 1309 42
+8474 3 900 38
+8477 d 162 12
+8484 3 900 38
+8487 4 162 12
+848b 8 342 43
+8493 23 74 12
+84b6 3 75 12
+84b9 2 76 12
+84bb 3 75 12
+84be 8 77 12
+84c6 8 76 12
+84ce 8 351 43
+84d6 13 120 45
+84e9 f 245 41
+84f8 13 120 45
+850b d 245 41
+8518 13 316 43
+852b 15 245 41
+8540 13 120 45
+8553 d 245 41
+8560 10 316 43
+8570 4 387 43
+8574 5 389 43
+8579 4 388 43
+857d 13 389 43
+8590 3 900 38
+8593 d 162 12
+85a0 3 900 38
+85a3 5 162 12
+85a8 10 342 43
+85b8 7 86 12
+85bf 2 2936 15
+85c1 7 86 12
+85c8 d 2936 15
+85d5 3 86 12
+85d8 5 2936 15
+85dd 9 86 12
+85e6 3 115 12
+85e9 2d 2936 15
+8616 17 89 12
+862d 8 120 12
+8635 9 124 12
+863e 4 125 12
+8642 5 93 12
+8647 3 124 12
+864a 3 125 12
+864d 3 93 12
+8650 4 126 12
+8654 16 93 12
+866a 5 94 12
+866f 4 93 12
+8673 15 94 12
+8688 b 96 12
+8693 8 78 12
+869b d 79 12
+86a8 13 1309 42
+86bb 7 900 38
+86c2 6 169 42
+86c8 8 900 38
+86d0 2 169 42
+86d2 4 342 43
+86d6 3 169 42
+86d9 4 342 43
+86dd 6 169 42
+86e3 7 162 12
+86ea d 71 12
+FUNC 8700 17f 0 char* std::vector<char, google_breakpad::PageStdAllocator<char> >::_M_allocate_and_copy<char*>(unsigned long, char*, char*)
+8700 2 1106 42
+8702 2 169 42
+8704 12 1106 42
+8716 5 169 42
+871b 2 71 12
+871d 5 162 12
+8722 2 71 12
+8724 1e 74 12
+8742 2 75 12
+8744 2 76 12
+8746 3 75 12
+8749 8 77 12
+8751 5 76 12
+8756 a 245 41
+8760 a 120 45
+876a d 245 41
+8777 19 1121 42
+8790 c 86 12
+879c f 2936 15
+87ab 3 86 12
+87ae 5 2936 15
+87b3 3 115 12
+87b6 9 86 12
+87bf 5 2936 15
+87c4 5 115 12
+87c9 31 2936 15
+87fa e 89 12
+8808 6 120 12
+880e 5 124 12
+8813 8 93 12
+881b 3 124 12
+881e 4 125 12
+8822 5 93 12
+8827 3 125 12
+882a 5 93 12
+882f 5 126 12
+8834 8 93 12
+883c 5 94 12
+8841 5 93 12
+8846 14 94 12
+885a e 96 12
+8868 9 78 12
+8871 e 79 12
+FUNC 8880 3cd 0 std::vector<char, google_breakpad::PageStdAllocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, google_breakpad::PageStdAllocator<char> > >, unsigned long, char const&)
+8880 11 439 43
+8891 c 442 43
+889d 1b 444 43
+88b8 3 900 38
+88bb 4 447 43
+88bf 3 900 38
+88c2 9 450 43
+88cb 6 452 43
+88d1 f 245 41
+88e0 b 120 45
+88eb 12 245 41
+88fd 3 456 43
+8900 3 560 37
+8903 5 456 43
+8908 2 560 37
+890a b 561 37
+8915 b 697 37
+8920 9 86 12
+8929 9 2936 15
+8932 a 86 12
+893c 6 2936 15
+8942 3 86 12
+8945 5 2936 15
+894a 9 86 12
+8953 3 115 12
+8956 21 2936 15
+8977 c 120 12
+8983 9 124 12
+898c 4 93 12
+8990 4 124 12
+8994 3 93 12
+8997 3 124 12
+899a 4 125 12
+899e 5 93 12
+89a3 4 125 12
+89a7 4 126 12
+89ab 16 93 12
+89c1 5 94 12
+89c6 4 93 12
+89ca 15 94 12
+89df 5 96 12
+89e4 4 94 12
+89e8 4 96 12
+89ec 8 486 43
+89f4 c 439 43
+8a00 c 120 45
+8a0c 9 321 41
+8a15 5 491 43
+8a1a 16 245 41
+8a30 a 120 45
+8a3a d 245 41
+8a47 9 439 43
+8a50 5 498 43
+8a55 3 496 43
+8a58 10 245 41
+8a68 a 120 45
+8a72 d 245 41
+8a7f 6 439 43
+8a85 5 520 43
+8a8a 5 522 43
+8a8f 5 521 43
+8a94 5 522 43
+8a99 17 525 43
+8ab0 9 321 41
+8ab9 4 439 43
+8abd 3 444 43
+8ac0 8 120 45
+8ac8 e 321 41
+8ad6 3 468 43
+8ad9 3 245 41
+8adc 5 468 43
+8ae1 f 245 41
+8af0 b 120 45
+8afb 12 245 41
+8b0d 8 472 43
+8b15 4 525 43
+8b19 7 697 37
+8b20 a 525 43
+8b2a 6 697 37
+8b30 8 626 42
+8b38 f 1305 42
+8b47 a 1308 42
+8b51 5 1309 42
+8b56 3 900 38
+8b59 4 162 12
+8b5d 9 1309 42
+8b66 3 900 38
+8b69 4 162 12
+8b6d 5 900 38
+8b72 4 162 12
+8b76 28 74 12
+8b9e 3 75 12
+8ba1 2 76 12
+8ba3 3 75 12
+8ba6 4 77 12
+8baa e 76 12
+8bb8 3 900 38
+8bbb c 169 42
+8bc7 3 900 38
+8bca 3 169 42
+8bcd 5 900 38
+8bd2 6 169 42
+8bd8 4 162 12
+8bdc 2 71 12
+8bde 2 162 12
+8be0 5 71 12
+8be5 4 162 12
+8be9 f 71 12
+8bf8 10 2936 15
+8c08 8 89 12
+8c10 c 78 12
+8c1c d 79 12
+8c29 8 245 41
+8c31 8 444 43
+8c39 8 241 41
+8c41 c 1306 42
+FUNC 8c50 1a 0 google_breakpad::MinidumpFileWriter::MinidumpFileWriter()
+8c50 1a 55 24
+FUNC 8c70 87 0 google_breakpad::MinidumpFileWriter::Open(char const*)
+8c70 e 63 24
+8c7e 3 64 24
+8c81 3 63 24
+8c84 5 64 24
+8c89 2c 2822 15
+8cb5 2 66 24
+8cb7 21 72 24
+8cd8 1f 64 24
+FUNC 8d00 2c 0 google_breakpad::MinidumpFileWriter::SetFile(int)
+8d00 5 75 24
+8d05 2 76 24
+8d07 5 77 24
+8d0c 7 75 24
+8d13 1 74 24
+8d14 18 75 24
+FUNC 8d30 78 0 google_breakpad::MinidumpFileWriter::Close()
+8d30 16 80 24
+8d46 2 83 24
+8d48 5 81 24
+8d4d 5 83 24
+8d52 3 84 24
+8d55 2 85 24
+8d57 a 84 24
+8d61 20 2725 15
+8d81 6 92 24
+8d87 21 96 24
+FUNC 8db0 15 0 google_breakpad::MinidumpFileWriter::~MinidumpFileWriter()
+8db0 10 59 24
+8dc0 5 60 24
+FUNC 8dd0 d6 0 google_breakpad::MinidumpFileWriter::Allocate(unsigned long)
+8dd0 18 220 24
+8de8 5 221 24
+8ded 10 222 24
+8dfd 3 225 24
+8e00 4 223 24
+8e04 4 225 24
+8e08 4 223 24
+8e0c a 225 24
+8e16 5 241 24
+8e1b 1d 244 24
+8e38 7 227 24
+8e3f 3 234 24
+8e42 a 233 24
+8e4c a 234 24
+8e56 5 235 24
+8e5b 4 234 24
+8e5f 9 237 24
+8e68 1f 221 24
+8e87 1f 222 24
+FUNC 8eb0 fa 0 google_breakpad::MinidumpFileWriter::Copy(unsigned int, void const*, long)
+8eb0 9 246 24
+8eb9 9 247 24
+8ec2 f 248 24
+8ed1 8 249 24
+8ed9 c 252 24
+8ee5 2 267 24
+8ee7 9 268 24
+8ef0 14 2805 15
+8f04 5 257 24
+8f09 1b 2887 15
+8f24 c 258 24
+8f30 b 2805 15
+8f3b 12 2887 15
+8f4d 1f 249 24
+8f6c 1f 248 24
+8f8b 1f 247 24
+FUNC 8fb0 a8 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString(wchar_t const*, unsigned int, google_breakpad::TypedMDRVA<MDString>*)
+8fb0 e 100 24
+8fbe 1a 110 24
+8fd8 3 116 24
+8fdb 4 117 24
+8fdf 6 122 24
+8fe5 8 284 24
+8fed 16 122 24
+9003 7 83 8
+900a 3 87 8
+900d 3 125 24
+9010 12 87 8
+9022 8 110 24
+902a c 111 24
+9036 7 112 24
+903d 2 113 24
+903f d 129 24
+904c 5 101 24
+9051 7 128 24
+FUNC 9060 aa 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString(char const*, unsigned int, google_breakpad::TypedMDRVA<MDString>*)
+9060 e 133 24
+906e 1a 139 24
+9088 2 145 24
+908a 2 146 24
+908c 4 284 24
+9090 3 146 24
+9093 6 149 24
+9099 5 284 24
+909e 18 149 24
+90b6 8 83 8
+90be 3 87 8
+90c1 3 152 24
+90c4 12 87 8
+90d6 8 139 24
+90de d 140 24
+90eb 4 141 24
+90ef 2 142 24
+90f1 d 155 24
+90fe c 134 24
+FUNC 9110 41 0 google_breakpad::UntypedMDRVA::Allocate(unsigned long)
+9110 1 270 24
+9111 5 271 24
+9116 3 270 24
+9119 2 271 24
+911b 4 272 24
+911f 8 273 24
+9127 3 274 24
+912a 3 273 24
+912d 3 274 24
+9130 2 275 24
+9132 1f 271 24
+FUNC 9160 88 0 google_breakpad::UntypedMDRVA::Copy(unsigned int, void const*, unsigned long)
+9160 4 277 24
+9164 5 278 24
+9169 5 279 24
+916e 12 280 24
+9180 3 281 24
+9183 4 282 24
+9187 5 281 24
+918c 1e 278 24
+91aa 1f 280 24
+91c9 1f 279 24
+FUNC 91f0 c4 0 google_breakpad::MinidumpFileWriter::WriteMemory(void const*, unsigned long, MDMemoryDescriptor*)
+91f0 9 204 24
+91f9 9 205 24
+9202 8 206 24
+920a 7 161 9
+9211 6 209 24
+9217 d 161 9
+9224 9 209 24
+922d 4 218 24
+9231 2 210 24
+9233 d 218 24
+9240 14 186 9
+9254 4 211 24
+9258 5 176 9
+925d 3 214 24
+9260 3 176 9
+9263 7 215 24
+926a 4 218 24
+926e 5 217 24
+9273 3 218 24
+9276 1f 206 24
+9295 1f 205 24
+FUNC 92c0 5 0 google_breakpad::MinidumpFileWriter::WriteString(char const*, unsigned int, MDLocationDescriptor*)
+92c0 5 200 24
+FUNC 92d0 5 0 google_breakpad::MinidumpFileWriter::WriteString(wchar_t const*, unsigned int, MDLocationDescriptor*)
+92d0 5 195 24
+FUNC 92e0 22 0 google_breakpad::TypedMDRVA<MDString>::~TypedMDRVA()
+92e0 6 216 9
+92e6 1c 92 8
+FUNC 9310 1e8 0 bool google_breakpad::MinidumpFileWriter::WriteStringCore<char>(char const*, unsigned int, MDLocationDescriptor*)
+9310 f 158 24
+931f 9 161 24
+9328 c 162 24
+9334 d 167 24
+9341 9 168 24
+934a 8 161 9
+9352 5 212 9
+9357 9 161 9
+9360 11 212 9
+9371 4 161 9
+9375 5 68 8
+937a 8 67 8
+9382 5 68 8
+9387 4 173 24
+938b 4 177 24
+938f d 179 24
+939c 5 177 24
+93a1 5 179 24
+93a6 8 182 24
+93ae 2 174 24
+93b0 7 216 9
+93b7 18 92 8
+93cf 11 191 24
+93e0 10 158 24
+93f0 7 168 24
+93f7 11 161 9
+9408 17 212 9
+941f 4 161 9
+9423 3 173 24
+9426 1e 66 8
+9444 c 168 24
+9450 5 83 8
+9455 7 183 24
+945c 9 184 24
+9465 2 83 8
+9467 14 87 8
+947b 2 186 24
+947d 2 87 8
+947f 6 186 24
+9485 9 176 9
+948e 12 187 24
+94a0 15 190 24
+94b5 1f 162 24
+94d4 24 161 24
+FUNC 9500 1e8 0 bool google_breakpad::MinidumpFileWriter::WriteStringCore<wchar_t>(wchar_t const*, unsigned int, MDLocationDescriptor*)
+9500 f 158 24
+950f 9 161 24
+9518 f 162 24
+9527 2 168 24
+9529 a 167 24
+9533 8 168 24
+953b 8 161 9
+9543 5 212 9
+9548 9 161 9
+9551 11 212 9
+9562 4 161 9
+9566 5 68 8
+956b 8 67 8
+9573 5 68 8
+9578 4 173 24
+957c 4 177 24
+9580 d 179 24
+958d 5 177 24
+9592 5 179 24
+9597 8 182 24
+959f 2 174 24
+95a1 7 216 9
+95a8 18 92 8
+95c0 10 191 24
+95d0 10 158 24
+95e0 7 168 24
+95e7 11 161 9
+95f8 17 212 9
+960f 4 161 9
+9613 3 173 24
+9616 1e 66 8
+9634 c 168 24
+9640 5 83 8
+9645 7 183 24
+964c 9 184 24
+9655 2 83 8
+9657 14 87 8
+966b 2 186 24
+966d 2 87 8
+966f 6 186 24
+9675 9 176 9
+967e 12 187 24
+9690 15 190 24
+96a5 1f 162 24
+96c4 24 161 24
+FUNC 96f0 78 0 google_breakpad::UTF8ToUTF16Char(char const*, int, unsigned short*)
+96f0 2 58 32
+96f2 6 78 32
+96f8 2 58 32
+96fa 4 62 32
+96fe 5 58 32
+9703 4 60 32
+9707 4 58 32
+970b b 63 32
+9716 4 59 32
+971a 6 61 32
+9720 16 69 32
+9736 4 71 32
+973a 4 76 32
+973e 4 75 32
+9742 5 78 32
+9747 4 83 32
+974b 2 82 32
+974d b 83 32
+9758 3 72 32
+975b 5 83 32
+9760 2 72 32
+9762 6 83 32
+FUNC 9770 56 0 google_breakpad::UTF32ToUTF16Char(wchar_t, unsigned short*)
+9770 4 102 32
+9774 3 110 32
+9777 4 106 32
+977b 4 102 32
+977f b 107 32
+978a 5 103 32
+978f 4 102 32
+9793 a 110 32
+979d 5 105 32
+97a2 5 103 32
+97a7 5 104 32
+97ac 5 110 32
+97b1 4 112 32
+97b5 b 113 32
+97c0 6 115 32
+FUNC 97d0 147 0 google_breakpad::UTF16ToUTF8(std::vector<unsigned short, std::allocator<unsigned short> > const&, bool)
+97d0 12 121 32
+97e2 3 155 32
+97e5 2 126 32
+97e7 4 626 42
+97eb 5 122 32
+97f0 9 126 32
+97f9 2 71 14
+97fb 6 626 42
+9801 8 139 32
+9809 4 138 32
+980d 8 140 32
+9815 4 142 32
+9819 10 145 32
+9829 3 140 32
+982c 5 141 32
+9831 5 145 32
+9836 2 147 32
+9838 5 149 32
+983d 2 147 32
+983f b 149 32
+984a d 164 14
+9857 8 75 14
+985f 11 153 32
+9870 18 152 32
+9888 3 626 42
+988b 9 128 32
+9894 3 81 14
+9897 3 128 32
+989a 2 81 14
+989c 7 82 14
+98a3 c 155 32
+98af 11 130 32
+98c0 7 132 32
+98c7 f 118 32
+98d6 5 130 32
+98db 5 134 32
+98e0 3 155 32
+98e3 b 134 32
+98ee 2 71 14
+98f0 10 75 14
+9900 17 164 14
+FUNC 9920 e3 0 google_breakpad::UTF8ToUTF16(char const*, std::vector<unsigned short, std::allocator<unsigned short> >*)
+9920 c 41 32
+992c 5 42 32
+9931 3 1097 42
+9934 b 1004 42
+993f 5 43 32
+9944 7 47 32
+994b 3 44 32
+994e 4 1320 42
+9952 5 1004 42
+9957 3 155 32
+995a 4 707 42
+995e b 52 32
+9969 3 707 42
+996c 5 48 32
+9971 3 707 42
+9974 4 49 32
+9978 a 52 32
+9982 2 55 32
+9984 3 155 32
+9987 2 55 32
+9989 5 55 32
+998e b 155 32
+9999 3 55 32
+999c 3 626 42
+999f 3 55 32
+99a2 6 626 42
+99a8 4 55 32
+99ac 3 686 42
+99af 3 626 42
+99b2 2 686 42
+99b4 5 688 42
+99b9 8 689 42
+99c1 f 56 32
+99d0 3 687 42
+99d3 d 1004 42
+99e0 10 56 32
+99f0 4 626 42
+99f4 2 55 32
+99f6 6 626 42
+99fc 7 688 42
+FUNC 9a10 e3 0 google_breakpad::UTF32ToUTF16(wchar_t const*, std::vector<unsigned short, std::allocator<unsigned short> >*)
+9a10 c 85 32
+9a1c 5 86 32
+9a21 3 1097 42
+9a24 b 1004 42
+9a2f 5 87 32
+9a34 7 91 32
+9a3b 5 88 32
+9a40 4 1320 42
+9a44 5 1004 42
+9a49 3 155 32
+9a4c 4 707 42
+9a50 b 96 32
+9a5b 3 707 42
+9a5e 5 92 32
+9a63 3 707 42
+9a66 4 93 32
+9a6a a 96 32
+9a74 2 99 32
+9a76 3 155 32
+9a79 2 99 32
+9a7b 5 99 32
+9a80 b 155 32
+9a8b 3 99 32
+9a8e 3 626 42
+9a91 3 99 32
+9a94 6 626 42
+9a9a 4 99 32
+9a9e 3 686 42
+9aa1 3 626 42
+9aa4 2 686 42
+9aa6 5 688 42
+9aab 8 689 42
+9ab3 d 100 32
+9ac0 3 687 42
+9ac3 d 1004 42
+9ad0 10 100 32
+9ae0 4 626 42
+9ae4 2 99 32
+9ae6 6 626 42
+9aec 7 688 42
+FUNC 9b00 295 0 std::vector<unsigned short, std::allocator<unsigned short> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned short*, std::vector<unsigned short, std::allocator<unsigned short> > >, unsigned long, unsigned short const&)
+9b00 25 439 43
+9b25 9 442 43
+9b2e 1d 444 43
+9b4b 3 900 38
+9b4e 3 447 43
+9b51 6 900 38
+9b57 9 450 43
+9b60 3 464 43
+9b63 d 743 37
+9b70 3 745 37
+9b73 a 743 37
+9b7d 8 468 43
+9b85 3 365 37
+9b88 4 468 43
+9b8c 6 365 37
+9b92 3 472 43
+9b95 3 686 37
+9b98 4 472 43
+9b9c c 686 37
+9ba8 7 687 37
+9baf 5 686 37
+9bb4 2c 525 43
+9be0 3 155 32
+9be3 d 1305 42
+9bf0 6 626 42
+9bf6 c 1305 42
+9c02 6 1308 42
+9c08 3 900 38
+9c0b 4 1308 42
+9c0f 3 900 38
+9c12 3 480 43
+9c15 9 1309 42
+9c1e 7 480 43
+9c25 19 94 45
+9c3e 5 486 43
+9c43 d 155 32
+9c50 4 745 37
+9c54 a 743 37
+9c5e 3 364 37
+9c61 3 365 37
+9c64 3 364 37
+9c67 5 365 37
+9c6c f 366 37
+9c7b 4 364 37
+9c7f 3 367 37
+9c82 4 496 43
+9c86 3 365 37
+9c89 3 364 37
+9c8c 5 365 37
+9c91 12 366 37
+9ca3 4 517 43
+9ca7 3 367 37
+9caa 5 174 42
+9caf 5 100 45
+9cb4 3 522 43
+9cb7 4 520 43
+9cbb 4 521 43
+9cbf 11 522 43
+9cd0 20 366 37
+9cf0 3 452 43
+9cf3 3 364 37
+9cf6 3 444 43
+9cf9 3 365 37
+9cfc 3 364 37
+9cff 5 365 37
+9d04 12 366 37
+9d16 3 559 37
+9d19 3 456 43
+9d1c 3 559 37
+9d1f 4 456 43
+9d23 5 560 37
+9d28 12 561 37
+9d3a 3 459 43
+9d3d 13 686 37
+9d50 7 687 37
+9d57 11 686 37
+9d68 9 1309 42
+9d71 e 169 42
+9d7f 16 1306 42
+FUNC 9da0 73 0 CreateGUID(MDGUID*)
+9da0 1 87 28
+9da1 7 75 28
+9da8 3 87 28
+9dab c 75 28
+9db7 7 65 28
+9dbe 9 66 28
+9dc7 9 67 28
+9dd0 7 68 28
+9dd7 3 57 28
+9dda 6 58 28
+9de0 2 59 28
+9de2 3 60 28
+9de5 3 59 28
+9de8 3 60 28
+9deb 3 59 28
+9dee 7 69 28
+9df5 3 57 28
+9df8 6 58 28
+9dfe 2 59 28
+9e00 3 60 28
+9e03 3 59 28
+9e06 3 60 28
+9e09 3 59 28
+9e0c 7 89 28
+FUNC 9e20 ad 0 GUIDToString(MDGUID const*, char*, int)
+9e20 5 92 28
+9e25 9 94 28
+9e2e b 53 28
+9e39 3 98 28
+9e3c 4 53 28
+9e40 a 98 28
+9e4a 13 53 28
+9e5d 4 98 28
+9e61 1a 53 28
+9e7b 7 98 28
+9e82 5 53 28
+9e87 f 98 28
+9e96 2 100 28
+9e98 5 99 28
+9e9d 4 102 28
+9ea1 5 103 28
+9ea6 8 104 28
+9eae 1f 94 28
+FUNC 9ed0 16 0 GUIDGenerator::InitOnceImpl()
+9ed0 4 78 28
+9ed4 7 79 28
+9edb 4 80 28
+9edf 7 79 28
+FUNC 9ef0 1e 0 my_strlen
+9ef0 10 42 29
+9f00 c 42 29
+9f0c 2 44 29
+FUNC 9f10 33 0 my_strcmp
+9f10 8 46 29
+9f18 2 50 29
+9f1a 4 52 29
+9f1e 4 54 29
+9f22 4 55 29
+9f26 7 48 29
+9f2d b 49 29
+9f38 8 51 29
+9f40 2 53 29
+9f42 1 57 29
+FUNC 9f50 56 0 my_strncmp
+9f50 5 60 29
+9f55 7 61 29
+9f5c 2 63 29
+9f5e 12 65 29
+9f70 9 61 29
+9f79 2 63 29
+9f7b 4 65 29
+9f7f 9 60 29
+9f88 2 71 29
+9f8a 6 72 29
+9f90 10 62 29
+9fa0 6 64 29
+FUNC 9fb0 54 0 my_strtoui
+9fb0 3 79 29
+9fb3 2 80 29
+9fb5 4 79 29
+9fb9 8 87 29
+9fc1 f 89 29
+9fd0 7 86 29
+9fd7 8 87 29
+9fdf 5 89 29
+9fe4 4 90 29
+9fe8 2 89 29
+9fea 4 82 29
+9fee 7 83 29
+9ff5 2 94 29
+9ff7 9 95 29
+a000 2 80 29
+a002 2 96 29
+FUNC a010 36 0 my_uint_len
+a010 3 100 29
+a013 3 99 29
+a016 5 101 29
+a01b 4 100 29
+a01f 14 106 29
+a033 3 105 29
+a036 7 106 29
+a03d 5 104 29
+a042 2 109 29
+a044 2 110 29
+FUNC a050 43 0 my_uitos
+a050 5 119 29
+a055 a 120 29
+a05f 9 119 29
+a068 1d 120 29
+a085 3 119 29
+a088 4 120 29
+a08c 7 119 29
+FUNC a0a0 42 0 my_strchr
+a0a0 3 124 29
+a0a3 3 123 29
+a0a6 4 124 29
+a0aa 16 128 29
+a0c0 8 124 29
+a0c8 4 125 29
+a0cc 7 124 29
+a0d3 f 124 29
+FUNC a0f0 26 0 my_strrchr
+a0f0 10 133 29
+a100 7 134 29
+a107 4 136 29
+a10b 9 133 29
+a114 2 139 29
+FUNC a120 32 0 my_memchr
+a120 3 143 29
+a123 5 144 29
+a128 17 145 29
+a13f 9 144 29
+a148 8 148 29
+a150 2 149 29
+FUNC a160 64 0 my_read_hex_ptr
+a160 3 155 29
+a163 d 156 29
+a170 3 161 29
+a173 4 160 29
+a177 6 161 29
+a17d 4 158 29
+a181 b 159 29
+a18c 8 162 29
+a194 3 164 29
+a197 4 163 29
+a19b d 164 29
+a1a8 8 165 29
+a1b0 3 167 29
+a1b3 4 166 29
+a1b7 9 167 29
+a1c0 3 173 29
+a1c3 1 175 29
+FUNC a1d0 3a 0 my_read_decimal_ptr
+a1d0 3 181 29
+a1d3 3 177 29
+a1d6 12 181 29
+a1e8 3 183 29
+a1eb 4 182 29
+a1ef 4 180 29
+a1f3 7 183 29
+a1fa c 181 29
+a206 3 188 29
+a209 1 190 29
+FUNC a210 1e 0 my_memset
+a210 3 194 29
+a213 4 192 29
+a217 9 194 29
+a220 7 195 29
+a227 7 194 29
+FUNC a230 38 0 my_strlcpy
+a230 10 202 29
+a240 9 203 29
+a249 7 204 29
+a250 4 207 29
+a254 8 202 29
+a25c 5 209 29
+a261 5 210 29
+a266 2 213 29
+FUNC a270 3e 0 my_strlcat
+a270 1 215 29
+a271 2 216 29
+a273 d 218 29
+a280 4 219 29
+a284 5 218 29
+a289 7 225 29
+a290 6 218 29
+a296 5 221 29
+a29b e 224 29
+a2a9 5 225 29
+FUNC a2b0 4e 0 my_isspace
+a2b0 a 229 29
+a2ba a 227 29
+a2c4 a 229 29
+a2ce 19 227 29
+a2e7 4 231 29
+a2eb 5 230 29
+a2f0 2 234 29
+a2f2 6 235 29
+a2f8 6 232 29
+FUNC a300 1aa 0 google_breakpad::CrashGenerationClient::RequestDump(void const*, unsigned long)
+a300 5 46 16
+a305 a 2909 15
+a30f 5 46 16
+a314 3 2909 15
+a317 5 46 16
+a31c 2 2909 15
+a31e 9 46 16
+a327 1e 2909 15
+a345 c 52 16
+a351 5 60 16
+a356 8 52 16
+a35e 5 57 16
+a363 a 60 16
+a36d 5 54 16
+a372 5 55 16
+a377 5 57 16
+a37c 9 58 16
+a385 6 2899 15
+a38b 5 60 16
+a390 4 69 16
+a394 8 61 16
+a39c 3 2899 15
+a39f c 62 16
+a3ab 8 65 16
+a3b3 8 66 16
+a3bb 9 67 16
+a3c4 4 69 16
+a3c8 19 2899 15
+a3e1 9 2899 15
+a3ea 5 71 16
+a3ef 5 71 16
+a3f4 24 2725 15
+a418 9 73 16
+a421 7 2838 15
+a428 14 2838 15
+a43c 7 81 16
+a443 5 80 16
+a448 10 81 16
+a458 5 71 16
+a45d 13 45 16
+a470 10 2838 15
+a480 3 78 16
+a483 2 2838 15
+a485 13 78 16
+a498 7 81 16
+a49f 2 74 16
+a4a1 9 81 16
+FUNC a4b0 1c 0 google_breakpad::CrashGenerationClient::TryCreate(int)
+a4b0 2 87 16
+a4b2 1 86 16
+a4b3 2 86 16
+a4b5 2 87 16
+a4b7 a 89 16
+a4c1 2 56 1
+a4c3 5 90 16
+a4c8 2 88 16
+a4ca 2 90 16
+FUNC a4d0 67 0 google_breakpad::LinuxDumper::~LinuxDumper()
+a4d0 8 85 21
+a4d8 6 2812 15
+a4de 6 85 21
+a4e4 e 85 21
+a4f2 4 338 21
+a4f6 a 134 12
+a500 4 136 12
+a504 3 135 12
+a507 3 2812 15
+a50a 4 136 12
+a50e 16 2812 15
+a524 8 134 12
+a52c b 86 21
+FUNC a540 12 0 google_breakpad::LinuxDumper::~LinuxDumper()
+a540 1 85 21
+a541 3 85 21
+a544 e 86 21
+FUNC a560 105 0 google_breakpad::LinuxDumper::ReadAuxv()
+a560 2 139 21
+a562 7 141 21
+a569 c 139 21
+a575 15 141 21
+a58a 2 147 21
+a58c 14 163 21
+a5a0 28 2822 15
+a5c8 4 146 21
+a5cc 8 154 21
+a5d4 2 146 21
+a5d6 a 2838 15
+a5e0 10 2838 15
+a5f0 6 152 21
+a5f6 1b 2725 15
+a611 f 163 21
+a620 a 152 21
+a62a 6 156 21
+a630 d 157 21
+a63d 5 158 21
+a642 e 157 21
+a650 15 2838 15
+FUNC a670 32 0 google_breakpad::LinuxDumper::Init()
+a670 1 88 21
+a671 3 88 21
+a674 9 89 21
+a67d b 90 21
+a688 d 89 21
+a695 6 89 21
+a69b 1 90 21
+a69c 6 89 21
+FUNC a6b0 4c 0 google_breakpad::LinuxDumper::FindMapping(void const*) const
+a6b0 4 338 21
+a6b4 b 626 42
+a6bf 11 292 21
+a6d0 7 293 21
+a6d7 5 294 21
+a6dc 14 294 21
+a6f0 9 292 21
+a6f9 2 298 21
+a6fb 1 299 21
+FUNC a700 94 0 google_breakpad::LinuxDumper::GetStackInfo(void const**, unsigned long*, unsigned long)
+a700 23 265 21
+a723 6 265 21
+a729 8 267 21
+a731 3 275 21
+a734 6 270 21
+a73a 8 275 21
+a742 5 276 21
+a747 6 279 21
+a74d 4 281 21
+a751 5 283 21
+a756 3 281 21
+a759 a 283 21
+a763 5 285 21
+a768 4 283 21
+a76c 4 284 21
+a770 20 286 21
+a790 4 277 21
+FUNC a7a0 1fd 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping(char*) const
+a7a0 17 301 21
+a7b7 3 306 21
+a7ba 7 301 21
+a7c1 3 301 21
+a7c4 5 306 21
+a7c9 6 307 21
+a7cf 2 308 21
+a7d1 2f 336 21
+a800 5 309 21
+a805 11 310 21
+a816 4 309 21
+a81a 23 317 21
+a83d 8 319 21
+a845 10 60 11
+a855 8 319 21
+a85d 13 321 21
+a870 5 2878 15
+a875 3 327 21
+a878 1d 2878 15
+a895 5a 334 21
+a8ef a 335 21
+a8f9 4 327 21
+a8fd 8 328 21
+a905 20 2878 15
+a925 8 327 21
+a92d 12 327 21
+a93f 18 327 21
+a957 46 334 21
+FUNC a9a0 35d 0 google_breakpad::LinuxDumper::ElfFileIdentifierForMapping(google_breakpad::MappingInfo const&, bool, unsigned int, unsigned char*)
+a9a0 2b 96 21
+a9cb 2 97 21
+a9cd 9 96 21
+a9d6 2 97 21
+a9d8 8 626 42
+a9e0 3 97 21
+a9e3 4 626 42
+a9e7 9 97 21
+a9f0 a 98 21
+a9fa 4 64 21
+a9fe 5 98 21
+aa03 14 64 21
+aa17 2 100 21
+aa19 4 99 21
+aa1d 43 137 21
+aa60 1c 103 21
+aa7c 4 105 21
+aa80 20 2763 15
+aaa0 9 105 21
+aaa9 3 106 21
+aaac 14 113 21
+aac0 c 117 21
+aacc 6 118 21
+aad2 3 117 21
+aad5 b 118 21
+aae0 14 121 21
+aaf4 8 123 21
+aafc 6 122 21
+ab02 5 123 21
+ab07 a 125 21
+ab11 3 123 21
+ab14 5 125 21
+ab19 5 338 21
+ab1e a 126 21
+ab28 8 130 21
+ab30 2 131 21
+ab32 2 130 21
+ab34 2 131 21
+ab36 5 131 21
+ab3b 5 131 21
+ab40 10 133 21
+ab50 20 136 21
+ab70 4 108 21
+ab74 3 71 12
+ab77 3 108 21
+ab7a 6 71 12
+ab80 1c 74 12
+ab9c c 86 12
+aba8 f 2936 15
+abb7 3 86 12
+abba 5 2936 15
+abbf 9 86 12
+abc8 3 115 12
+abcb 33 2936 15
+abfe e 89 12
+ac0c 1c 111 21
+ac28 3 75 12
+ac2b 2 76 12
+ac2d 3 75 12
+ac30 4 77 12
+ac34 5 76 12
+ac39 6 120 12
+ac3f 4 124 12
+ac43 7 93 12
+ac4a 3 124 12
+ac4d 4 125 12
+ac51 5 93 12
+ac56 3 125 12
+ac59 5 93 12
+ac5e 4 126 12
+ac62 8 93 12
+ac6a 5 94 12
+ac6f 3 93 12
+ac72 13 94 12
+ac85 9 96 12
+ac8e 7 78 12
+ac95 d 79 12
+aca2 8 72 12
+acaa 1f 97 21
+acc9 1f 118 21
+ace8 15 136 21
+FUNC ad00 1a9 0 google_breakpad::LinuxDumper::LinuxDumper(int)
+ad00 17 72 21
+ad17 4 79 21
+ad1b 9 72 21
+ad24 23 79 21
+ad47 5 60 12
+ad4c 4 190 12
+ad50 1a 63 12
+ad6a 5 190 12
+ad6f 4 153 12
+ad73 18 92 42
+ad8b 5 190 12
+ad90 4 190 12
+ad94 4 153 12
+ad98 18 92 42
+adb0 a 190 12
+adba 7 190 12
+adc1 7 153 12
+adc8 21 92 42
+ade9 d 190 12
+adf6 17 338 21
+ae0d a 626 42
+ae17 6 686 42
+ae1d 6 688 42
+ae23 e 689 42
+ae31 1f 83 21
+ae50 5 687 42
+ae55 8 1004 42
+ae5d 3 687 42
+ae60 7 1004 42
+ae67 7 338 21
+ae6e 6 2812 15
+ae74 5 134 12
+ae79 3 136 12
+ae7c 3 135 12
+ae7f 3 2812 15
+ae82 4 136 12
+ae86 16 2812 15
+ae9c d 72 21
+FUNC aeb0 7b2 0 google_breakpad::LinuxDumper::EnumerateMappings()
+aeb0 2 165 21
+aeb2 7 167 21
+aeb9 12 165 21
+aecb 18 167 21
+aee3 2 186 21
+aee5 12 259 21
+aef7 7 338 21
+aefe 8 2822 15
+af06 7 178 21
+af0d 4 182 21
+af11 5 178 21
+af16 5 182 21
+af1b 1d 2822 15
+af38 2 185 21
+af3a 4 2822 15
+af3e 2 185 21
+af40 4 74 12
+af44 4 187 21
+af48 4 74 12
+af4c 5 187 21
+af51 1d 74 12
+af6e 2 75 12
+af70 5 76 12
+af75 3 75 12
+af78 8 77 12
+af80 4 76 12
+af84 3 82 12
+af87 9 49 4
+af90 2 191 21
+af92 16 49 4
+afa8 f 66 4
+afb7 5 99 4
+afbc 3 2838 15
+afbf 5 98 4
+afc4 3 99 4
+afc7 10 2838 15
+afd7 6 100 4
+afdd a 102 4
+afe7 5 103 4
+afec 4 66 4
+aff0 15 70 4
+b005 13 165 21
+b018 10 70 4
+b028 7 69 4
+b02f 16 78 4
+b045 20 2725 15
+b065 21 258 21
+b086 3 71 4
+b089 4 73 4
+b08d 6 71 4
+b093 d 194 21
+b0a0 5 195 21
+b0a5 e 116 4
+b0b3 2 117 4
+b0b5 8 118 4
+b0bd 7 117 4
+b0c4 14 118 4
+b0d8 18 105 4
+b0f0 e 196 21
+b0fe 5 197 21
+b103 e 198 21
+b111 5 199 21
+b116 1b 203 21
+b131 9 338 21
+b13a 6 211 21
+b140 4 212 21
+b144 12 213 21
+b156 28 74 12
+b17e 2 75 12
+b180 5 76 12
+b185 2 77 12
+b187 3 76 12
+b18a 4 82 12
+b18e 6 77 12
+b194 7 222 21
+b19b 8 221 21
+b1a3 5 222 21
+b1a8 5 223 21
+b1ad 5 224 21
+b1b2 8 223 21
+b1ba 3 224 21
+b1bd 6 226 21
+b1c3 4 224 21
+b1c7 5 225 21
+b1cc 3 223 21
+b1cf 4 225 21
+b1d3 2 226 21
+b1d5 a 227 21
+b1df b 228 21
+b1ea c 236 21
+b1f6 16 236 21
+b20c 4 236 21
+b210 5 338 21
+b215 5 236 21
+b21a 4 338 21
+b21e 6 236 21
+b224 4 338 21
+b228 9 236 21
+b231 3 626 42
+b234 11 243 21
+b245 7 626 42
+b24c 8 243 21
+b254 9 686 42
+b25d 2 688 42
+b25f 5 1320 42
+b264 4 689 42
+b268 b 1320 42
+b273 20 244 21
+b293 d 245 21
+b2a0 13 244 21
+b2b3 15 246 21
+b2c8 4 86 12
+b2cc 2 2936 15
+b2ce 7 86 12
+b2d5 c 2936 15
+b2e1 3 86 12
+b2e4 5 2936 15
+b2e9 3 86 12
+b2ec 3 115 12
+b2ef 24 2936 15
+b313 d 89 12
+b320 17 70 4
+b337 e 2838 15
+b345 6 120 12
+b34b 4 93 12
+b34f 4 124 12
+b353 3 93 12
+b356 4 125 12
+b35a 5 93 12
+b35f 4 124 12
+b363 7 93 12
+b36a 4 126 12
+b36e 8 93 12
+b376 5 94 12
+b37b 4 93 12
+b37f 10 94 12
+b38f 9 96 12
+b398 8 78 12
+b3a0 8 79 12
+b3a8 8 82 12
+b3b0 b 86 4
+b3bb 8 87 4
+b3c3 4 92 4
+b3c7 3 90 4
+b3ca 4 93 4
+b3ce 6 90 4
+b3d4 17 92 4
+b3eb f 883 42
+b3fa 1d 120 45
+b417 1a 887 42
+b431 4 86 12
+b435 2 2936 15
+b437 7 86 12
+b43e c 2936 15
+b44a 3 86 12
+b44d 5 2936 15
+b452 9 86 12
+b45b 3 115 12
+b45e 2e 2936 15
+b48c c 89 12
+b498 23 214 21
+b4bb 9 213 21
+b4c4 1a 215 21
+b4de d 213 21
+b4eb c 216 21
+b4f7 a 116 4
+b501 2 117 4
+b503 8 118 4
+b50b 6 117 4
+b511 c 118 4
+b51d c 203 21
+b529 10 203 21
+b539 7 206 21
+b540 9 207 21
+b549 a 206 21
+b553 1d 229 21
+b570 7 120 45
+b577 5 248 21
+b57c 8 893 42
+b584 4 248 21
+b588 a 893 42
+b592 2b 1004 42
+b5bd 1f 87 4
+b5dc 7 78 12
+b5e3 d 79 12
+b5f0 c 120 12
+b5fc a 124 12
+b606 4 93 12
+b60a 4 124 12
+b60e 3 93 12
+b611 3 124 12
+b614 4 125 12
+b618 5 93 12
+b61d 4 125 12
+b621 7 93 12
+b628 4 126 12
+b62c 8 93 12
+b634 5 94 12
+b639 3 93 12
+b63c 14 94 12
+b650 5 96 12
+b655 4 94 12
+b659 9 96 12
+FUNC b670 221 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::reserve(unsigned long)
+b670 a 69 43
+b67a 25 66 43
+b69f 9 69 43
+b6a8 4 338 21
+b6ac e 707 42
+b6ba 5 71 43
+b6bf 29 86 43
+b6e8 4 338 21
+b6ec 2 169 42
+b6ee 5 338 21
+b6f3 7 626 42
+b6fa 3 169 42
+b6fd 5 626 42
+b702 2 169 42
+b704 a 162 12
+b70e 4 71 12
+b712 18 74 12
+b72a 2 75 12
+b72c 2 76 12
+b72e 3 75 12
+b731 8 77 12
+b739 4 76 12
+b73d 1b 245 41
+b758 9 120 45
+b761 12 245 41
+b773 5 83 43
+b778 5 82 43
+b77d 9 83 43
+b786 12 84 43
+b798 e 86 12
+b7a6 e 2936 15
+b7b4 3 86 12
+b7b7 5 2936 15
+b7bc 9 86 12
+b7c5 3 115 12
+b7c8 2d 2936 15
+b7f5 b 89 12
+b800 8 120 12
+b808 9 124 12
+b811 4 125 12
+b815 5 93 12
+b81a 3 124 12
+b81d 3 125 12
+b820 3 93 12
+b823 4 126 12
+b827 16 93 12
+b83d 5 94 12
+b842 4 93 12
+b846 11 94 12
+b857 5 96 12
+b85c 4 94 12
+b860 10 96 12
+b870 8 78 12
+b878 d 79 12
+b885 c 70 43
+FUNC b8a0 229 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::reserve(unsigned long)
+b8a0 a 69 43
+b8aa 25 66 43
+b8cf 9 69 43
+b8d8 4 338 21
+b8dc e 707 42
+b8ea 5 71 43
+b8ef 29 86 43
+b918 4 338 21
+b91c 2 169 42
+b91e 5 338 21
+b923 7 626 42
+b92a 3 169 42
+b92d 5 626 42
+b932 2 169 42
+b934 a 162 12
+b93e 4 71 12
+b942 1c 74 12
+b95e 2 75 12
+b960 2 76 12
+b962 3 75 12
+b965 8 77 12
+b96d 4 76 12
+b971 17 245 41
+b988 b 120 45
+b993 12 245 41
+b9a5 5 83 43
+b9aa 5 82 43
+b9af 9 83 43
+b9b8 18 84 43
+b9d0 e 86 12
+b9de e 2936 15
+b9ec 3 86 12
+b9ef 5 2936 15
+b9f4 9 86 12
+b9fd 3 115 12
+ba00 2d 2936 15
+ba2d b 89 12
+ba38 8 120 12
+ba40 9 124 12
+ba49 4 125 12
+ba4d 5 93 12
+ba52 3 124 12
+ba55 3 125 12
+ba58 3 93 12
+ba5b 4 126 12
+ba5f 16 93 12
+ba75 5 94 12
+ba7a 4 93 12
+ba7e 11 94 12
+ba8f 5 96 12
+ba94 4 94 12
+ba98 10 96 12
+baa8 8 78 12
+bab0 d 79 12
+babd c 70 43
+FUNC bad0 229 0 std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> >::reserve(unsigned long)
+bad0 a 69 43
+bada 25 66 43
+baff 9 69 43
+bb08 4 338 21
+bb0c e 707 42
+bb1a 5 71 43
+bb1f 29 86 43
+bb48 4 338 21
+bb4c 2 169 42
+bb4e 5 338 21
+bb53 7 626 42
+bb5a 3 169 42
+bb5d 5 626 42
+bb62 2 169 42
+bb64 a 162 12
+bb6e 4 71 12
+bb72 1c 74 12
+bb8e 2 75 12
+bb90 2 76 12
+bb92 3 75 12
+bb95 8 77 12
+bb9d 4 76 12
+bba1 17 245 41
+bbb8 b 120 45
+bbc3 12 245 41
+bbd5 5 83 43
+bbda 5 82 43
+bbdf 9 83 43
+bbe8 18 84 43
+bc00 e 86 12
+bc0e e 2936 15
+bc1c 3 86 12
+bc1f 5 2936 15
+bc24 9 86 12
+bc2d 3 115 12
+bc30 2d 2936 15
+bc5d b 89 12
+bc68 8 120 12
+bc70 9 124 12
+bc79 4 125 12
+bc7d 5 93 12
+bc82 3 124 12
+bc85 3 125 12
+bc88 3 93 12
+bc8b 4 126 12
+bc8f 16 93 12
+bca5 5 94 12
+bcaa 4 93 12
+bcae 11 94 12
+bcbf 5 96 12
+bcc4 4 94 12
+bcc8 10 96 12
+bcd8 8 78 12
+bce0 d 79 12
+bced c 70 43
+FUNC bd00 320 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpad::MappingInfo**, std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> > >, google_breakpad::MappingInfo* const&)
+bd00 28 316 43
+bd28 8 320 43
+bd30 3 316 43
+bd33 2 320 43
+bd35 10 120 45
+bd45 4 329 43
+bd49 4 325 43
+bd4d 3 559 37
+bd50 4 325 43
+bd54 3 327 43
+bd57 4 559 37
+bd5b 5 560 37
+bd60 f 561 37
+bd6f 4 333 43
+bd73 2d 391 43
+bda0 8 120 45
+bda8 b 626 42
+bdb3 9 215 37
+bdbc 4 1308 42
+bdc0 9 1309 42
+bdc9 3 900 38
+bdcc c 162 12
+bdd8 3 900 38
+bddb 4 162 12
+bddf 8 342 43
+bde7 20 74 12
+be07 2 75 12
+be09 2 76 12
+be0b 3 75 12
+be0e 8 77 12
+be16 8 76 12
+be1e 8 351 43
+be26 b 120 45
+be31 4 360 43
+be35 b 245 41
+be40 b 120 45
+be4b d 245 41
+be58 13 316 43
+be6b 4 367 43
+be6f 11 245 41
+be80 b 120 45
+be8b d 245 41
+be98 10 316 43
+bea8 4 387 43
+beac 5 389 43
+beb1 4 388 43
+beb5 b 389 43
+bec0 3 900 38
+bec3 c 162 12
+becf 3 900 38
+bed2 5 162 12
+bed7 11 342 43
+bee8 7 86 12
+beef 2 2936 15
+bef1 7 86 12
+bef8 d 2936 15
+bf05 3 86 12
+bf08 5 2936 15
+bf0d 9 86 12
+bf16 3 115 12
+bf19 2d 2936 15
+bf46 a 89 12
+bf50 8 120 12
+bf58 9 124 12
+bf61 4 125 12
+bf65 8 93 12
+bf6d 3 124 12
+bf70 3 125 12
+bf73 4 126 12
+bf77 16 93 12
+bf8d 5 94 12
+bf92 4 93 12
+bf96 15 94 12
+bfab e 96 12
+bfb9 8 78 12
+bfc1 d 79 12
+bfce 13 1309 42
+bfe1 7 900 38
+bfe8 6 169 42
+bfee 8 900 38
+bff6 2 169 42
+bff8 4 342 43
+bffc 3 169 42
+bfff 4 342 43
+c003 6 169 42
+c009 a 162 12
+c013 d 71 12
+FUNC c020 460 0 std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> > >, unsigned long, unsigned long const&)
+c020 11 439 43
+c031 c 442 43
+c03d 1f 444 43
+c05c 3 900 38
+c05f 3 447 43
+c062 7 900 38
+c069 5 450 43
+c06e 7 452 43
+c075 3 245 41
+c078 3 452 43
+c07b d 245 41
+c088 b 120 45
+c093 d 245 41
+c0a0 3 559 37
+c0a3 4 456 43
+c0a7 7 559 37
+c0ae 5 456 43
+c0b3 9 560 37
+c0bc 3 459 43
+c0bf 9 686 37
+c0c8 7 687 37
+c0cf 5 686 37
+c0d4 14 525 43
+c0e8 3 464 43
+c0eb 15 321 41
+c100 8 120 45
+c108 a 321 41
+c112 4 468 43
+c116 6 245 41
+c11c 5 468 43
+c121 f 245 41
+c130 b 120 45
+c13b d 245 41
+c148 10 472 43
+c158 7 687 37
+c15f 5 686 37
+c164 14 525 43
+c178 5 338 21
+c17d 3 626 42
+c180 d 1305 42
+c18d 7 626 42
+c194 c 1305 42
+c1a0 6 1308 42
+c1a6 3 900 38
+c1a9 4 1308 42
+c1ad 3 900 38
+c1b0 4 480 43
+c1b4 3 1309 42
+c1b7 5 480 43
+c1bc 6 1309 42
+c1c2 15 162 12
+c1d7 23 74 12
+c1fa 3 75 12
+c1fd 2 76 12
+c1ff 3 75 12
+c202 8 77 12
+c20a e 76 12
+c218 18 561 37
+c230 e 86 12
+c23e 9 2936 15
+c247 5 86 12
+c24c 6 2936 15
+c252 3 86 12
+c255 5 2936 15
+c25a 9 86 12
+c263 3 115 12
+c266 31 2936 15
+c297 13 89 12
+c2aa 16 486 43
+c2c0 c 120 45
+c2cc a 321 41
+c2d6 12 245 41
+c2e8 b 120 45
+c2f3 d 245 41
+c300 13 439 43
+c313 3 245 41
+c316 4 496 43
+c31a e 245 41
+c328 b 120 45
+c333 d 245 41
+c340 10 439 43
+c350 5 520 43
+c355 5 522 43
+c35a 5 521 43
+c35f 5 522 43
+c364 14 525 43
+c378 9 1309 42
+c381 1f 169 42
+c3a0 c 120 12
+c3ac 9 124 12
+c3b5 4 93 12
+c3b9 4 124 12
+c3bd 3 93 12
+c3c0 3 124 12
+c3c3 4 125 12
+c3c7 5 93 12
+c3cc 4 125 12
+c3d0 4 126 12
+c3d4 16 93 12
+c3ea 5 94 12
+c3ef 4 93 12
+c3f3 15 94 12
+c408 5 96 12
+c40d 4 94 12
+c411 f 96 12
+c420 c 78 12
+c42c d 79 12
+c439 e 472 43
+c447 8 241 41
+c44f 14 162 12
+c463 2 71 12
+c465 4 162 12
+c469 b 71 12
+c474 c 1306 42
+FUNC c480 43f 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<google_breakpad::MappingInfo**, std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> > >, unsigned long, google_breakpad::MappingInfo* const&)
+c480 11 439 43
+c491 c 442 43
+c49d 1e 444 43
+c4bb 3 900 38
+c4be 3 447 43
+c4c1 7 900 38
+c4c8 9 450 43
+c4d1 a 452 43
+c4db 15 245 41
+c4f0 b 120 45
+c4fb 11 245 41
+c50c 3 559 37
+c50f 3 456 43
+c512 3 559 37
+c515 4 456 43
+c519 4 559 37
+c51d 5 560 37
+c522 f 561 37
+c531 3 459 43
+c534 c 686 37
+c540 7 687 37
+c547 5 686 37
+c54c 14 525 43
+c560 10 321 41
+c570 8 120 45
+c578 e 321 41
+c586 4 468 43
+c58a 3 245 41
+c58d 4 468 43
+c591 f 245 41
+c5a0 b 120 45
+c5ab d 245 41
+c5b8 8 472 43
+c5c0 7 687 37
+c5c7 5 686 37
+c5cc 14 525 43
+c5e0 4 626 42
+c5e4 d 1305 42
+c5f1 7 626 42
+c5f8 c 1305 42
+c604 6 1308 42
+c60a 3 900 38
+c60d 4 1308 42
+c611 3 900 38
+c614 4 480 43
+c618 3 1309 42
+c61b 5 480 43
+c620 6 1309 42
+c626 15 162 12
+c63b 20 74 12
+c65b 2 75 12
+c65d 2 76 12
+c65f 3 75 12
+c662 8 77 12
+c66a e 76 12
+c678 7 86 12
+c67f 2 2936 15
+c681 7 86 12
+c688 d 2936 15
+c695 3 86 12
+c698 5 2936 15
+c69d 9 86 12
+c6a6 3 115 12
+c6a9 31 2936 15
+c6da 6 169 42
+c6e0 10 486 43
+c6f0 c 120 45
+c6fc a 321 41
+c706 4 491 43
+c70a 16 245 41
+c720 b 120 45
+c72b d 245 41
+c738 13 439 43
+c74b 4 498 43
+c74f 4 496 43
+c753 d 245 41
+c760 b 120 45
+c76b d 245 41
+c778 10 439 43
+c788 4 520 43
+c78c 5 522 43
+c791 4 521 43
+c795 4 522 43
+c799 17 525 43
+c7b0 9 1309 42
+c7b9 17 169 42
+c7d0 c 120 12
+c7dc 9 124 12
+c7e5 4 93 12
+c7e9 4 124 12
+c7ed 3 93 12
+c7f0 3 124 12
+c7f3 4 125 12
+c7f7 5 93 12
+c7fc 4 125 12
+c800 4 126 12
+c804 16 93 12
+c81a 5 94 12
+c81f 4 93 12
+c823 15 94 12
+c838 5 96 12
+c83d 4 94 12
+c841 f 96 12
+c850 c 78 12
+c85c d 79 12
+c869 8 245 41
+c871 8 444 43
+c879 d 472 43
+c886 8 241 41
+c88e c 1306 42
+c89a 14 162 12
+c8ae 2 71 12
+c8b0 4 162 12
+c8b4 b 71 12
+FUNC c8c0 3 0 google_breakpad::LinuxPtraceDumper::IsPostMortem() const
+c8c0 3 242 22
+FUNC c8d0 d8 0 google_breakpad::LinuxPtraceDumper::BuildProcPath(char*, int, char const*) const
+c8d0 a 107 22
+c8da 2 109 22
+c8dc 1b 107 22
+c8f7 3 108 22
+c8fa 3 107 22
+c8fd a 108 22
+c907 5 108 22
+c90c 8 111 22
+c914 3 112 22
+c917 3 111 22
+c91a 2 112 22
+c91c 2 113 22
+c91e 2a 126 22
+c948 b 115 22
+c953 7 116 22
+c95a 9 117 22
+c963 a 121 22
+c96d d 120 22
+c97a 5 121 22
+c97f 4 122 22
+c983 b 123 22
+c98e 5 122 22
+c993 5 123 22
+c998 6 124 22
+c99e a 125 22
+FUNC c9b0 ac 0 google_breakpad::LinuxPtraceDumper::CopyFromProcess(void*, int, void const*, unsigned long)
+c9b0 11 129 22
+c9c1 3 136 22
+c9c4 9 130 22
+c9cd 5 136 22
+c9d2 10 138 22
+c9e2 6 131 22
+c9e8 8 137 22
+c9f0 5 138 22
+c9f5 3 137 22
+c9f8 a 2831 15
+ca02 8 137 22
+ca0a f 2831 15
+ca19 a 141 22
+ca23 3 142 22
+ca26 5 141 22
+ca2b 5 136 22
+ca30 10 144 22
+ca40 d 2831 15
+ca4d 9 139 22
+ca56 6 2831 15
+FUNC ca60 c2 0 google_breakpad::LinuxPtraceDumper::ThreadsResume()
+ca60 2 262 22
+ca62 3 264 22
+ca65 b 262 22
+ca70 9 263 22
+ca79 4 305 22
+ca7d 4 626 42
+ca81 6 266 22
+ca87 7 626 42
+ca8e 7 266 22
+ca95 37 2831 15
+cacc 4 305 22
+cad0 4 626 42
+cad4 4 266 22
+cad8 7 626 42
+cadf 5 266 22
+cae4 7 268 22
+caeb 15 270 22
+cb00 22 2831 15
+FUNC cb30 49f 0 google_breakpad::LinuxPtraceDumper::GetThreadInfoByIndex(unsigned long, google_breakpad::ThreadInfo*)
+cb30 17 150 22
+cb47 4 305 22
+cb4b b 626 42
+cb56 5 151 22
+cb5b 3 154 22
+cb5e 3 156 22
+cb61 3 154 22
+cb64 6 156 22
+cb6a 1c 158 22
+cb86 2 206 22
+cb88 12 238 22
+cb9a 23 2822 15
+cbbd 4 163 22
+cbc1 2 162 22
+cbc3 4 2822 15
+cbc7 2 162 22
+cbc9 23 74 12
+cbec 3 75 12
+cbef 5 76 12
+cbf4 3 75 12
+cbf7 8 77 12
+cbff 3 76 12
+cc02 3 82 12
+cc05 4 49 4
+cc09 5 175 22
+cc0e d 49 4
+cc1b 5 175 22
+cc20 3 49 4
+cc23 19 169 22
+cc3c 6 99 4
+cc42 f 66 4
+cc51 5 99 4
+cc56 3 2838 15
+cc59 5 98 4
+cc5e 3 99 4
+cc61 10 2838 15
+cc71 6 100 4
+cc77 a 102 4
+cc81 5 103 4
+cc86 4 66 4
+cc8a 15 70 4
+cc9f 11 150 22
+ccb0 18 70 4
+ccc8 7 69 4
+cccf c 78 4
+ccdb 20 2725 15
+ccfb c 182 22
+cd07 b 182 22
+cd12 c 2831 15
+cd1e 5 185 22
+cd23 1c 2831 15
+cd3f 8 189 22
+cd47 2c 2831 15
+cd73 b 205 22
+cd7e 13 2831 15
+cd91 e 199 22
+cd9f d 235 22
+cdac a 237 22
+cdb6 4 86 12
+cdba 2 2936 15
+cdbc 7 86 12
+cdc3 c 2936 15
+cdcf 3 86 12
+cdd2 5 2936 15
+cdd7 3 86 12
+cdda 3 115 12
+cddd 28 2936 15
+ce05 f 89 12
+ce14 3 71 4
+ce17 4 73 4
+ce1b 6 71 4
+ce21 18 172 22
+ce39 c 173 22
+ce45 d 116 4
+ce52 2 117 4
+ce54 8 118 4
+ce5c 7 117 4
+ce63 d 118 4
+ce70 10 105 4
+ce80 18 174 22
+ce98 10 175 22
+cea8 10 70 4
+ceb8 10 2838 15
+cec8 7 78 12
+cecf 8 79 12
+ced7 8 82 12
+cedf b 86 4
+ceea 8 87 4
+cef2 4 92 4
+cef6 3 90 4
+cef9 4 93 4
+cefd 6 90 4
+cf03 9 92 4
+cf0c a 120 12
+cf16 3 93 12
+cf19 4 124 12
+cf1d 3 93 12
+cf20 4 125 12
+cf24 5 93 12
+cf29 4 124 12
+cf2d 7 93 12
+cf34 4 126 12
+cf38 8 93 12
+cf40 5 94 12
+cf45 3 93 12
+cf48 10 94 12
+cf58 c 96 12
+cf64 e 2831 15
+cf72 1f 87 4
+cf91 1f 116 4
+cfb0 1f 156 22
+FUNC cfd0 20 0 google_breakpad::LinuxPtraceDumper::LinuxPtraceDumper(int)
+cfd0 1 101 22
+cfd1 3 101 22
+cfd4 1a 103 22
+cfee 2 104 22
+FUNC cff0 36d 0 google_breakpad::LinuxPtraceDumper::EnumerateThreads()
+cff0 17 274 22
+d007 7 276 22
+d00e 11 274 22
+d01f 15 276 22
+d034 2 281 22
+d036 3a 303 22
+d070 30 2822 15
+d0a0 4 280 22
+d0a4 23 74 12
+d0c7 3 75 12
+d0ca 5 76 12
+d0cf 2 77 12
+d0d1 4 75 12
+d0d5 6 77 12
+d0db 3 76 12
+d0de 8 295 22
+d0e6 4 82 3
+d0ea b 51 3
+d0f5 2 288 22
+d0f7 8 286 22
+d0ff 5 295 22
+d104 4 65 3
+d108 17 289 22
+d11f 8 87 3
+d127 2d 2757 15
+d154 22 2725 15
+d176 a 302 22
+d180 5 93 3
+d185 3 94 3
+d188 3 93 3
+d18b 5 94 3
+d190 6 93 3
+d196 12 94 3
+d1a8 f 290 22
+d1b7 8 289 22
+d1bf 8 292 22
+d1c7 8 291 22
+d1cf d 292 22
+d1dc 10 292 22
+d1ec e 883 42
+d1fa 8 120 45
+d202 16 887 42
+d218 10 302 22
+d228 9 68 3
+d231 6 70 3
+d237 5 71 3
+d23c 13 77 3
+d24f 21 80 3
+d270 10 73 3
+d280 4 86 12
+d284 2 2936 15
+d286 7 86 12
+d28d d 2936 15
+d29a 3 86 12
+d29d 5 2936 15
+d2a2 3 86 12
+d2a5 3 115 12
+d2a8 24 2936 15
+d2cc c 89 12
+d2d8 6 120 12
+d2de 3 93 12
+d2e1 4 124 12
+d2e5 3 93 12
+d2e8 4 125 12
+d2ec 5 93 12
+d2f1 4 124 12
+d2f5 7 93 12
+d2fc 4 126 12
+d300 8 93 12
+d308 5 94 12
+d30d 3 93 12
+d310 10 94 12
+d320 10 96 12
+d330 7 78 12
+d337 d 79 12
+d344 19 893 42
+FUNC d360 235 0 google_breakpad::LinuxPtraceDumper::ThreadsSuspend()
+d360 2 244 22
+d362 5 246 22
+d367 12 244 22
+d379 d 245 22
+d386 4 305 22
+d38a b 626 42
+d395 9 247 22
+d39e 4 244 22
+d3a2 5 80 22
+d3a7 7 244 22
+d3ae 4 254 22
+d3b2 3 244 22
+d3b5 5 254 22
+d3ba 6 2831 15
+d3c0 8 254 22
+d3c8 4 248 22
+d3cc 8 751 42
+d3d4 7 60 22
+d3db 1e 2831 15
+d3f9 c 61 22
+d405 15 2998 15
+d41a 3 66 22
+d41d 3 2998 15
+d420 2 66 22
+d422 13 2998 15
+d435 b 65 22
+d440 5 66 22
+d445 1e 2831 15
+d463 5 305 22
+d468 8 626 42
+d470 8 751 42
+d478 4 626 42
+d47c 10 253 22
+d48c 12 305 22
+d49e a 626 42
+d4a8 4 254 22
+d4ac 3 626 42
+d4af 9 686 42
+d4b8 2 688 42
+d4ba 4 689 42
+d4be f 1320 42
+d4cd 4 255 22
+d4d1 d 247 22
+d4de 3 259 22
+d4e1 9 258 22
+d4ea 3 259 22
+d4ed 13 260 22
+d500 1a 2831 15
+d51a 26 80 22
+d540 30 1004 42
+d570 14 2831 15
+d584 7 247 22
+d58b a 2831 15
+FUNC d5a0 13 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper()
+d5a0 13 42 6
+FUNC d5c0 20 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper()
+d5c0 8 42 6
+d5c8 18 42 6
+FUNC d5e0 306 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::_M_insert_aux(__gnu_cxx::__normal_iterator<int*, std::vector<int, google_breakpad::PageStdAllocator<int> > >, int const&)
+d5e0 28 316 43
+d608 8 320 43
+d610 3 316 43
+d613 2 320 43
+d615 a 120 45
+d61f 4 329 43
+d623 4 325 43
+d627 3 559 37
+d62a 4 325 43
+d62e 3 327 43
+d631 4 559 37
+d635 5 560 37
+d63a f 561 37
+d649 3 333 43
+d64c 24 391 43
+d670 4 305 22
+d674 a 626 42
+d67e 9 215 37
+d687 4 1308 42
+d68b 9 1309 42
+d694 3 900 38
+d697 d 162 12
+d6a4 3 900 38
+d6a7 3 162 12
+d6aa 8 342 43
+d6b2 23 74 12
+d6d5 3 75 12
+d6d8 2 76 12
+d6da 3 75 12
+d6dd 8 77 12
+d6e5 8 76 12
+d6ed 8 351 43
+d6f5 a 120 45
+d6ff 11 245 41
+d710 9 120 45
+d719 d 245 41
+d726 13 316 43
+d739 f 245 41
+d748 9 120 45
+d751 d 245 41
+d75e 10 316 43
+d76e 4 387 43
+d772 5 389 43
+d777 4 388 43
+d77b d 389 43
+d788 3 900 38
+d78b c 162 12
+d797 3 900 38
+d79a 5 162 12
+d79f 11 342 43
+d7b0 7 86 12
+d7b7 2 2936 15
+d7b9 7 86 12
+d7c0 d 2936 15
+d7cd 3 86 12
+d7d0 5 2936 15
+d7d5 9 86 12
+d7de 3 115 12
+d7e1 2d 2936 15
+d80e f 89 12
+d81d 8 120 12
+d825 9 124 12
+d82e 4 125 12
+d832 8 93 12
+d83a 3 124 12
+d83d 3 125 12
+d840 4 126 12
+d844 16 93 12
+d85a 5 94 12
+d85f 4 93 12
+d863 15 94 12
+d878 b 96 12
+d883 8 78 12
+d88b d 79 12
+d898 13 1309 42
+d8ab 7 900 38
+d8b2 6 169 42
+d8b8 8 900 38
+d8c0 2 169 42
+d8c2 4 342 43
+d8c6 3 169 42
+d8c9 4 342 43
+d8cd 6 169 42
+d8d3 6 162 12
+d8d9 d 71 12
+FUNC d8f0 458 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::_M_fill_insert(__gnu_cxx::__normal_iterator<int*, std::vector<int, google_breakpad::PageStdAllocator<int> > >, unsigned long, int const&)
+d8f0 11 439 43
+d901 c 442 43
+d90d 1f 444 43
+d92c 3 900 38
+d92f 3 447 43
+d932 7 900 38
+d939 5 450 43
+d93e 7 452 43
+d945 3 245 41
+d948 3 452 43
+d94b d 245 41
+d958 9 120 45
+d961 d 245 41
+d96e 3 559 37
+d971 4 456 43
+d975 7 559 37
+d97c 5 456 43
+d981 9 560 37
+d98a 3 459 43
+d98d b 686 37
+d998 7 687 37
+d99f 5 686 37
+d9a4 14 525 43
+d9b8 3 464 43
+d9bb 15 321 41
+d9d0 8 120 45
+d9d8 a 321 41
+d9e2 4 468 43
+d9e6 6 245 41
+d9ec 5 468 43
+d9f1 f 245 41
+da00 9 120 45
+da09 d 245 41
+da16 a 472 43
+da20 7 687 37
+da27 5 686 37
+da2c 14 525 43
+da40 5 305 22
+da45 3 626 42
+da48 d 1305 42
+da55 7 626 42
+da5c c 1305 42
+da68 6 1308 42
+da6e 3 900 38
+da71 4 1308 42
+da75 3 900 38
+da78 4 480 43
+da7c 3 1309 42
+da7f 5 480 43
+da84 6 1309 42
+da8a 15 162 12
+da9f 23 74 12
+dac2 3 75 12
+dac5 2 76 12
+dac7 3 75 12
+daca 8 77 12
+dad2 e 76 12
+dae0 20 561 37
+db00 e 86 12
+db0e 9 2936 15
+db17 5 86 12
+db1c 6 2936 15
+db22 3 86 12
+db25 5 2936 15
+db2a 9 86 12
+db33 3 115 12
+db36 31 2936 15
+db67 13 89 12
+db7a 16 486 43
+db90 b 120 45
+db9b a 321 41
+dba5 13 245 41
+dbb8 9 120 45
+dbc1 d 245 41
+dbce 13 439 43
+dbe1 3 245 41
+dbe4 4 496 43
+dbe8 8 245 41
+dbf0 9 120 45
+dbf9 d 245 41
+dc06 10 439 43
+dc16 5 520 43
+dc1b 5 522 43
+dc20 5 521 43
+dc25 5 522 43
+dc2a 16 525 43
+dc40 9 1309 42
+dc49 1f 169 42
+dc68 c 120 12
+dc74 9 124 12
+dc7d 4 93 12
+dc81 4 124 12
+dc85 3 93 12
+dc88 3 124 12
+dc8b 4 125 12
+dc8f 5 93 12
+dc94 4 125 12
+dc98 4 126 12
+dc9c 16 93 12
+dcb2 5 94 12
+dcb7 4 93 12
+dcbb 15 94 12
+dcd0 5 96 12
+dcd5 4 94 12
+dcd9 f 96 12
+dce8 c 78 12
+dcf4 d 79 12
+dd01 e 472 43
+dd0f 8 241 41
+dd17 14 162 12
+dd2b 2 71 12
+dd2d 4 162 12
+dd31 b 71 12
+dd3c c 1306 42
+FUNC dd50 e3 0 isLegalUTF8
+dd50 3 294 25
+dd53 3 295 25
+dd56 4 294 25
+dd5a e 295 25
+dd68 2 296 25
+dd6a 6 315 25
+dd70 8 295 25
+dd78 3 311 25
+dd7b 2 298 25
+dd7d 5 311 25
+dd82 e 313 25
+dd90 a 298 25
+dd9a 5 298 25
+dd9f 4 298 25
+dda3 4 299 25
+dda7 2 298 25
+dda9 4 299 25
+ddad 5 299 25
+ddb2 e 299 25
+ddc0 4 300 25
+ddc4 2 298 25
+ddc6 5 300 25
+ddcb f 302 25
+ddda e 304 25
+dde8 a 302 25
+ddf2 2 298 25
+ddf4 4 308 25
+ddf8 8 315 25
+de00 18 306 25
+de18 10 305 25
+de28 b 307 25
+FUNC de40 fe 0 ConvertUTF32toUTF16
+de40 3 64 25
+de43 1 62 25
+de44 3 65 25
+de47 1 62 25
+de48 9 66 25
+de51 f 68 25
+de60 10 74 25
+de70 9 75 25
+de79 a 89 25
+de83 5 66 25
+de88 c 68 25
+de94 7 71 25
+de9b 9 72 25
+dea4 9 85 25
+dead 5 86 25
+deb2 3 66 25
+deb5 5 87 25
+deba 6 66 25
+dec0 3 102 25
+dec3 3 103 25
+dec6 a 105 25
+ded0 10 83 25
+dee0 9 93 25
+dee9 7 97 25
+def0 3 98 25
+def3 7 99 25
+defa 4 98 25
+defe 6 99 25
+df04 6 98 25
+df0a 5 99 25
+df0f 4 98 25
+df13 9 99 25
+df1c 3 93 25
+df1f 3 102 25
+df22 5 95 25
+df27 3 103 25
+df2a 3 105 25
+df2d 3 75 25
+df30 7 77 25
+df37 3 66 25
+df3a 4 63 25
+FUNC df40 e6 0 ConvertUTF16toUTF32
+df40 3 112 25
+df43 3 113 25
+df46 9 115 25
+df4f 9 110 25
+df58 9 121 25
+df61 5 122 25
+df66 10 124 25
+df76 4 125 25
+df7a 4 127 25
+df7e 8 125 25
+df86 5 146 25
+df8b 7 150 25
+df92 8 115 25
+df9a 8 117 25
+dfa2 10 119 25
+dfb2 5 138 25
+dfb7 10 140 25
+dfc7 2 161 25
+dfc9 5 142 25
+dfce 3 152 25
+dfd1 3 153 25
+dfd4 c 161 25
+dfe0 5 128 25
+dfe5 5 146 25
+dfea 2 161 25
+dfec 5 148 25
+dff1 3 152 25
+dff4 3 153 25
+dff7 b 161 25
+e002 2 111 25
+e004 3 152 25
+e007 3 153 25
+e00a 5 161 25
+e00f 5 135 25
+e014 3 152 25
+e017 3 153 25
+e01a 3 161 25
+e01d 3 152 25
+e020 2 111 25
+e022 3 153 25
+e025 1 161 25
+FUNC e030 216 0 ConvertUTF16toUTF8
+e030 2 213 25
+e032 3 215 25
+e035 2 213 25
+e037 3 217 25
+e03a 1 213 25
+e03b 3 216 25
+e03e 1 213 25
+e03f 9 217 25
+e048 8 223 25
+e050 10 225 25
+e060 9 227 25
+e069 5 228 25
+e06e 14 230 25
+e082 4 231 25
+e086 4 233 25
+e08a 8 231 25
+e092 6 253 25
+e098 4 261 25
+e09c 12 262 25
+e0ae 12 261 25
+e0c0 5 244 25
+e0c5 10 246 25
+e0d5 1 277 25
+e0d6 3 274 25
+e0d9 3 275 25
+e0dc 5 248 25
+e0e1 f 277 25
+e0f0 8 254 25
+e0f8 4 261 25
+e0fc 12 262 25
+e10e 12 261 25
+e120 5 234 25
+e125 8 255 25
+e12d 4 261 25
+e131 f 262 25
+e140 10 261 25
+e150 c 256 25
+e15c 4 261 25
+e160 9 262 25
+e169 15 267 25
+e17e 6 261 25
+e184 8 267 25
+e18c 1a 268 25
+e1a6 14 269 25
+e1ba e 270 25
+e1c8 3 217 25
+e1cb 5 272 25
+e1d0 4 270 25
+e1d4 6 217 25
+e1da 1 277 25
+e1db 3 274 25
+e1de 3 275 25
+e1e1 2 214 25
+e1e3 d 277 25
+e1f0 a 258 25
+e1fa 1 277 25
+e1fb 3 274 25
+e1fe 3 275 25
+e201 5 241 25
+e206 6 277 25
+e20c 7 262 25
+e213 1 277 25
+e214 3 264 25
+e217 3 274 25
+e21a 5 264 25
+e21f 3 275 25
+e222 6 277 25
+e228 9 262 25
+e231 3 261 25
+e234 12 262 25
+FUNC e250 2b 0 isLegalUTF8Sequence
+e250 11 324 25
+e261 b 325 25
+e26c c 328 25
+e278 3 329 25
+FUNC e280 265 0 ConvertUTF8toUTF16
+e280 e 334 25
+e28e 3 336 25
+e291 3 337 25
+e294 13 334 25
+e2a7 3 338 25
+e2aa 5 334 25
+e2af 6 338 25
+e2b5 14 340 25
+e2c9 17 341 25
+e2e0 17 345 25
+e2f7 2 339 25
+e2f9 17 352 25
+e310 2 339 25
+e312 f 354 25
+e321 f 355 25
+e330 f 356 25
+e33f f 357 25
+e34e b 358 25
+e359 e 360 25
+e367 b 362 25
+e372 c 366 25
+e37e 14 368 25
+e392 8 377 25
+e39a a 338 25
+e3a4 14 340 25
+e3b8 12 341 25
+e3ca 5 342 25
+e3cf 8 398 25
+e3d7 8 399 25
+e3df 11 401 25
+e3f0 30 339 25
+e420 10 353 25
+e430 10 339 25
+e440 c 380 25
+e44c a 385 25
+e456 a 338 25
+e460 10 335 25
+e470 8 379 25
+e478 b 389 25
+e483 6 393 25
+e489 3 394 25
+e48c 5 395 25
+e491 4 394 25
+e495 4 395 25
+e499 5 394 25
+e49e 5 395 25
+e4a3 4 394 25
+e4a7 9 395 25
+e4b0 3 390 25
+e4b3 5 391 25
+e4b8 6 390 25
+e4be a 391 25
+e4c8 a 346 25
+e4d2 3 382 25
+e4d5 5 381 25
+e4da 6 382 25
+e4e0 5 383 25
+FUNC e4f0 1c0 0 ConvertUTF32toUTF8
+e4f0 2 406 25
+e4f2 3 408 25
+e4f5 2 410 25
+e4f7 2 406 25
+e4f9 3 410 25
+e4fc 3 406 25
+e4ff 3 409 25
+e502 1 406 25
+e503 d 410 25
+e510 3 416 25
+e513 7 415 25
+e51a 2 416 25
+e51c 14 418 25
+e530 6 428 25
+e536 4 437 25
+e53a f 438 25
+e549 f 437 25
+e558 9 429 25
+e561 4 437 25
+e565 f 438 25
+e574 c 437 25
+e580 9 430 25
+e589 4 437 25
+e58d f 438 25
+e59c c 437 25
+e5a8 d 431 25
+e5b5 4 437 25
+e5b9 9 438 25
+e5c2 15 443 25
+e5d7 6 437 25
+e5dd 8 443 25
+e5e5 17 444 25
+e5fc 17 445 25
+e613 f 446 25
+e622 3 410 25
+e625 5 448 25
+e62a 3 415 25
+e62d 4 446 25
+e631 6 410 25
+e637 1 453 25
+e638 3 450 25
+e63b 3 451 25
+e63e 12 453 25
+e650 6 433 25
+e656 a 434 25
+e660 1 453 25
+e661 3 450 25
+e664 3 451 25
+e667 5 420 25
+e66c 8 453 25
+e674 7 438 25
+e67b 1 453 25
+e67c 3 440 25
+e67f 3 450 25
+e682 5 440 25
+e687 3 451 25
+e68a 8 453 25
+e692 9 438 25
+e69b 3 437 25
+e69e 12 438 25
+FUNC e6b0 29f 0 ConvertUTF8toUTF32
+e6b0 e 458 25
+e6be 3 460 25
+e6c1 3 461 25
+e6c4 14 458 25
+e6d8 3 462 25
+e6db 5 458 25
+e6e0 6 462 25
+e6e6 14 464 25
+e6fa 12 465 25
+e70c 4 457 25
+e710 18 459 25
+e728 7 469 25
+e72f 4 457 25
+e733 19 469 25
+e74c 2 463 25
+e74e 1a 476 25
+e768 2 463 25
+e76a 10 478 25
+e77a 10 479 25
+e78a 10 480 25
+e79a 10 481 25
+e7aa c 482 25
+e7b6 b 484 25
+e7c1 b 486 25
+e7cc c 490 25
+e7d8 14 495 25
+e7ec c 496 25
+e7f8 3 457 25
+e7fb 8 501 25
+e803 b 462 25
+e80e 19 464 25
+e827 17 465 25
+e83e 8 466 25
+e846 5 511 25
+e84b 5 512 25
+e850 3 511 25
+e853 3 512 25
+e856 1a 514 25
+e870 30 463 25
+e8a0 10 477 25
+e8b0 10 463 25
+e8c0 5 462 25
+e8c5 3 457 25
+e8c8 8 508 25
+e8d0 8 507 25
+e8d8 18 462 25
+e8f0 3 457 25
+e8f3 10 504 25
+e903 d 470 25
+e910 6 487 25
+e916 8 488 25
+e91e 6 487 25
+e924 5 488 25
+e929 6 497 25
+e92f 8 498 25
+e937 6 497 25
+e93d 5 499 25
+e942 d 459 25
+FUNC e950 a 0 google_breakpad::FileID::FileID(char const*)
+e950 a 52 27
+FUNC e960 1ee 0 google_breakpad::FileID::ElfFileIdentifierFromMappedFile(void const*, unsigned char*)
+e960 a 143 27
+e96a 5 99 27
+e96f 4 143 27
+e973 12 99 27
+e985 f 98 27
+e994 21 102 27
+e9b5 8 98 27
+e9bd 23 125 27
+e9e0 2 127 27
+e9e2 c 124 27
+e9ee f 130 27
+e9fd d 132 27
+ea0a 5 131 27
+ea0f b 132 27
+ea1a 6 133 27
+ea20 8 78 27
+ea28 b 135 27
+ea33 6 134 27
+ea39 4 136 27
+ea3d 5 133 27
+ea42 5 146 27
+ea47 9 150 27
+ea50 b 98 27
+ea5b d 107 27
+ea68 9 110 27
+ea71 4 66 27
+ea75 5 112 27
+ea7a 3 66 27
+ea7d 13 68 27
+ea90 1a 71 27
+eaaa 9 68 27
+eab3 6 69 27
+eab9 b 76 27
+eac4 3 82 27
+eac7 a 85 27
+ead1 b 82 27
+eadc 5 85 27
+eae1 3 87 27
+eae4 5 194 37
+eae9 6 87 27
+eaef 8 194 37
+eaf7 a 87 27
+eb01 4 66 27
+eb05 5 109 27
+eb0a 3 66 27
+eb0d 13 68 27
+eb20 1a 71 27
+eb3a 9 68 27
+eb43 b 69 27
+FUNC eb50 59 0 google_breakpad::FileID::ElfFileIdentifier(unsigned char*)
+eb50 4 152 27
+eb54 3 153 27
+eb57 4 152 27
+eb5b a 153 27
+eb65 5 192 27
+eb6a 5 154 27
+eb6f 1b 157 27
+eb8a 6 158 27
+eb90 4 155 27
+eb94 15 157 27
+FUNC ebb0 e5 0 google_breakpad::FileID::ConvertIdentifierToString(unsigned char const*, char*, int)
+ebb0 2 162 27
+ebb2 c 166 27
+ebbe 8 168 27
+ebc6 3 170 27
+ebc9 4 172 27
+ebcd 4 170 27
+ebd1 4 172 27
+ebd5 4 170 27
+ebd9 2 175 27
+ebdb 5 170 27
+ebe0 5 172 27
+ebe5 13 175 27
+ebf8 a 175 27
+ec02 6 178 27
+ec08 8 181 27
+ec10 3 178 27
+ec13 4 179 27
+ec17 3 178 27
+ec1a 3 181 27
+ec1d 4 179 27
+ec21 6 178 27
+ec27 2 181 27
+ec29 5 181 27
+ec2e a 182 27
+ec38 1a 184 27
+ec52 1a 185 27
+ec6c 2 175 27
+ec6e 4 185 27
+ec72 2 175 27
+ec74 7 189 27
+ec7b 1 190 27
+ec7c 4 189 27
+ec80 2 190 27
+ec82 6 174 27
+ec88 6 189 27
+ec8e 1 190 27
+ec8f 4 189 27
+ec93 2 190 27
+FUNC eca0 10 0 google_breakpad::MemoryMappedFile::MemoryMappedFile()
+eca0 10 50 13
+FUNC ecb0 56 0 google_breakpad::MemoryMappedFile::Unmap()
+ecb0 11 98 30
+ecc1 3 105 30
+ecc4 5 99 30
+ecc9 1f 2812 15
+ece8 7 70 13
+ecef 8 72 13
+ecf7 f 103 30
+FUNC ed10 193 0 google_breakpad::MemoryMappedFile::Map(char const*)
+ed10 a 57 30
+ed1a 2 2822 15
+ed1c 14 57 30
+ed30 3 57 30
+ed33 5 58 30
+ed38 1b 2822 15
+ed53 9 2725 15
+ed5c 34 96 30
+ed90 5 61 30
+ed95 3 2741 15
+ed98 3 67 30
+ed9b 20 2741 15
+edbb 1e 2725 15
+edd9 7 73 30
+ede0 5 67 30
+ede5 b 67 30
+edf0 6 79 30
+edf6 39 2936 15
+ee2f 1e 2725 15
+ee4d 6 90 30
+ee53 5 94 30
+ee58 8 72 13
+ee60 4 70 13
+ee64 5 95 30
+ee69 17 72 13
+ee80 13 2725 15
+ee93 5 81 30
+ee98 b 2725 15
+FUNC eeb0 14 0 google_breakpad::MemoryMappedFile::MemoryMappedFile(char const*)
+eeb0 f 50 13
+eebf 5 50 30
+FUNC eed0 5 0 google_breakpad::MemoryMappedFile::~MemoryMappedFile()
+eed0 5 54 30
+FUNC eee0 3a 0 google_breakpad::SafeReadLink(char const*, char*, unsigned long)
+eee0 1 39 31
+eee1 1b 2840 15
+eefc 2 50 31
+eefe 2 51 31
+ef00 b 46 31
+ef0b 4 47 31
+ef0f 5 48 31
+ef14 2 51 31
+ef16 2 50 31
+ef18 2 51 31
+FUNC ef20 1f 0 google_breakpad::IsValidElf(void const*)
+ef20 7 111 26
+ef27 4 109 26
+ef2b f 111 26
+ef3a 5 112 26
+FUNC ef40 5 0 google_breakpad::ElfClass(void const*)
+ef40 4 118 26
+ef44 1 119 26
+FUNC ef50 466 0 google_breakpad::FindElfSection(void const*, char const*, unsigned int, void const**, int*, int*)
+ef50 25 126 26
+ef75 3 127 26
+ef78 5 126 26
+ef7d 6 127 26
+ef83 c 128 26
+ef8f c 129 26
+ef9b 7 131 26
+efa2 d 132 26
+efaf 9 134 26
+efb8 2 135 26
+efba 26 156 26
+efe0 8 137 26
+efe8 5 138 26
+efed 3 139 26
+eff0 9 145 26
+eff9 5 149 26
+effe 1c 55 26
+f01a a 58 26
+f024 4 62 26
+f028 a 42 10
+f032 4 70 26
+f036 7 62 26
+f03d 4 42 10
+f041 7 65 26
+f048 6 53 10
+f04e 5 65 26
+f053 6 53 10
+f059 9 54 10
+f062 9 55 10
+f06b e 57 10
+f079 8 58 10
+f081 3 121 26
+f084 3 63 10
+f087 3 121 26
+f08a 3 63 10
+f08d 17 121 26
+f0a4 5 61 10
+f0a9 4 63 10
+f0ad 3 62 10
+f0b0 7 63 10
+f0b7 4 62 10
+f0bb 2a 63 10
+f0e5 9 72 26
+f0ee 8 73 26
+f0f6 e 74 26
+f104 b 152 26
+f10f 1c 55 26
+f12b a 58 26
+f135 4 62 26
+f139 3 42 10
+f13c 4 70 26
+f140 4 62 26
+f144 3 42 10
+f147 4 62 26
+f14b 4 42 10
+f14f 4 65 26
+f153 3 42 10
+f156 3 65 26
+f159 c 53 10
+f165 9 54 10
+f16e 9 55 10
+f177 13 57 10
+f18a 11 58 10
+f19b 3 121 26
+f19e 3 63 10
+f1a1 3 121 26
+f1a4 3 63 10
+f1a7 15 121 26
+f1bc 9 61 10
+f1c5 4 63 10
+f1c9 2 62 10
+f1cb 2 63 10
+f1cd 4 62 10
+f1d1 37 63 10
+f208 b 72 26
+f213 a 73 26
+f21d 9 74 26
+f226 1f 127 26
+f245 1f 129 26
+f264 1f 128 26
+f283 3e 55 10
+f2c1 1c 54 10
+f2dd 1f 53 10
+f2fc 1f 58 26
+f31b 1f 55 26
+f33a 1f 54 10
+f359 1f 53 10
+f378 1f 58 26
+f397 1f 55 26
+FUNC f3c0 29c 0 google_breakpad::FindElfSegment(void const*, unsigned int, void const**, int*, int*)
+f3c0 20 162 26
+f3e0 9 163 26
+f3e9 c 164 26
+f3f5 c 165 26
+f401 7 167 26
+f408 c 168 26
+f414 9 170 26
+f41d 2 171 26
+f41f 21 192 26
+f440 8 173 26
+f448 5 174 26
+f44d 3 175 26
+f450 9 181 26
+f459 5 185 26
+f45e 1c 90 26
+f47a a 93 26
+f484 4 98 26
+f488 7 42 10
+f48f 3 98 26
+f492 3 42 10
+f495 2 98 26
+f497 9 99 26
+f4a0 20 158 26
+f4c0 11 99 26
+f4d1 9 98 26
+f4da b 188 26
+f4e5 1c 90 26
+f501 a 93 26
+f50b 3 42 10
+f50e 4 98 26
+f512 3 42 10
+f515 3 98 26
+f518 3 42 10
+f51b 2 98 26
+f51d 5 99 26
+f522 1e 158 26
+f540 d 99 26
+f54d b 98 26
+f558 4 100 26
+f55c 4 101 26
+f560 4 100 26
+f564 9 101 26
+f56d 6 100 26
+f573 3 101 26
+f576 4 100 26
+f57a 9 101 26
+f583 1f 165 26
+f5a2 1f 164 26
+f5c1 1f 163 26
+f5e0 1f 93 26
+f5ff 1f 90 26
+f61e 1f 93 26
+f63d 1f 90 26
+STACK CFI INIT 18c0 350 .cfa: $rsp 16 + .ra: .cfa -8 + ^
+STACK CFI 18c6 .cfa: $rsp 24 +
+STACK CFI INIT 2140 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2141 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 216b .cfa: $rsp 8 +
+STACK CFI INIT 2170 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2180 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2181 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2188 .cfa: $rsp 32 +
+STACK CFI 21ae .cfa: $rsp 16 +
+STACK CFI 21af .cfa: $rsp 8 +
+STACK CFI 21b0 .cfa: $rsp 32 +
+STACK CFI INIT 1f40 f3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f41 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1f4d .cfa: $rsp 240 +
+STACK CFI 1fec .cfa: $rsp 16 +
+STACK CFI 1fef .cfa: $rsp 8 +
+STACK CFI 1ff0 .cfa: $rsp 240 +
+STACK CFI INIT 1c10 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2210 f5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 221f $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2221 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2223 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 222b $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 2233 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 223c .cfa: $rsp 208 +
+STACK CFI 22e2 .cfa: $rsp 48 +
+STACK CFI 22e8 $rbx: $rbx .cfa: $rsp 40 +
+STACK CFI 22e9 $rbp: $rbp .cfa: $rsp 32 +
+STACK CFI 22eb $r12: $r12 .cfa: $rsp 24 +
+STACK CFI 22ed $r13: $r13 .cfa: $rsp 16 +
+STACK CFI 22ef $r14: $r14 .cfa: $rsp 8 +
+STACK CFI 22f0 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^ .cfa: $rsp 208 +
+STACK CFI 22f7 .cfa: $rsp 48 +
+STACK CFI 22fa $rbx: $rbx .cfa: $rsp 40 +
+STACK CFI 22fb $rbp: $rbp .cfa: $rsp 32 +
+STACK CFI 22fd $r12: $r12 .cfa: $rsp 24 +
+STACK CFI 22ff $r13: $r13 .cfa: $rsp 16 +
+STACK CFI 2301 $r14: $r14 .cfa: $rsp 8 +
+STACK CFI INIT 2310 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2323 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 233b $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 2341 .cfa: $rsp 48 +
+STACK CFI 238c $r12: $r12 $r13: $r13 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI 2390 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 23a0 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 23bb $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 23c2 .cfa: $rsp 64 +
+STACK CFI 2401 .cfa: $rsp 8 +
+STACK CFI 2408 .cfa: $rsp 64 +
+STACK CFI 246d .cfa: $rsp 8 +
+STACK CFI 2478 .cfa: $rsp 64 +
+STACK CFI INIT 24b0 477 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 24ba $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 24db $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 160 +
+STACK CFI 2522 .cfa: $rsp 8 +
+STACK CFI 2528 .cfa: $rsp 160 +
+STACK CFI INIT 2930 19c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2932 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2934 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2938 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 293c $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 2946 .cfa: $rsp 1632 +
+STACK CFI 2a7f .cfa: $rsp 40 +
+STACK CFI 2a80 .cfa: $rsp 32 +
+STACK CFI 2a81 .cfa: $rsp 24 +
+STACK CFI 2a83 .cfa: $rsp 16 +
+STACK CFI 2a85 .cfa: $rsp 8 +
+STACK CFI 2a90 .cfa: $rsp 1632 +
+STACK CFI 2a97 .cfa: $rsp 40 +
+STACK CFI 2a9d .cfa: $rsp 32 +
+STACK CFI 2a9e .cfa: $rsp 24 +
+STACK CFI 2aa0 .cfa: $rsp 16 +
+STACK CFI 2aa2 .cfa: $rsp 8 +
+STACK CFI 2aa8 .cfa: $rsp 1632 +
+STACK CFI INIT 2ad0 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2ada $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 2ae6 $r12: .cfa -16 + ^ .cfa: $rsp 32 +
+STACK CFI 2b12 .cfa: $rsp 8 +
+STACK CFI 2b18 .cfa: $rsp 32 +
+STACK CFI 2b33 .cfa: $rsp 8 +
+STACK CFI INIT 2b40 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2b47 .cfa: $rsp 1104 +
+STACK CFI 2b95 .cfa: $rsp 8 +
+STACK CFI INIT 2ba0 18b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2ba2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2ba4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2ba6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 2ba8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 2bac $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 2bb0 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 2bb9 .cfa: $rsp 224 +
+STACK CFI 2c73 .cfa: $rsp 56 +
+STACK CFI 2c74 .cfa: $rsp 48 +
+STACK CFI 2c75 .cfa: $rsp 40 +
+STACK CFI 2c77 .cfa: $rsp 32 +
+STACK CFI 2c79 .cfa: $rsp 24 +
+STACK CFI 2c7b .cfa: $rsp 16 +
+STACK CFI 2c7d .cfa: $rsp 8 +
+STACK CFI 2c80 .cfa: $rsp 224 +
+STACK CFI INIT 2d30 e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2d3a $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 2d4a $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 80 +
+STACK CFI 2d88 .cfa: $rsp 8 +
+STACK CFI 2d90 .cfa: $rsp 80 +
+STACK CFI INIT 2e10 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2e14 .cfa: $rsp 32 +
+STACK CFI 2e44 .cfa: $rsp 8 +
+STACK CFI 2e48 .cfa: $rsp 32 +
+STACK CFI 2e67 .cfa: $rsp 8 +
+STACK CFI INIT 2e70 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2e71 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2e97 .cfa: $rsp 8 +
+STACK CFI INIT 2ea0 163 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2ea1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2ea8 .cfa: $rsp 1616 +
+STACK CFI 2f0a .cfa: $rsp 16 +
+STACK CFI 2f0b .cfa: $rsp 8 +
+STACK CFI 2f10 .cfa: $rsp 1616 +
+STACK CFI 2fd5 .cfa: $rsp 16 +
+STACK CFI 2fd6 .cfa: $rsp 8 +
+STACK CFI 2fe0 .cfa: $rsp 1616 +
+STACK CFI INIT 3010 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 302b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 640 +
+STACK CFI 30da .cfa: $rsp 8 +
+STACK CFI INIT 30e0 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30e2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 30e6 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 30eb $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3127 .cfa: $rsp 24 +
+STACK CFI 312e .cfa: $rsp 16 +
+STACK CFI 3130 .cfa: $rsp 8 +
+STACK CFI 3138 .cfa: $rsp 32 +
+STACK CFI 3139 .cfa: $rsp 24 +
+STACK CFI 313a .cfa: $rsp 16 +
+STACK CFI 313c .cfa: $rsp 8 +
+STACK CFI INIT 3140 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3141 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 315f .cfa: $rsp 8 +
+STACK CFI 3160 .cfa: $rsp 16 +
+STACK CFI 316c .cfa: $rsp 8 +
+STACK CFI INIT 3180 179 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 318a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 3197 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 31a8 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 3270 .cfa: $rsp 8 +
+STACK CFI 3278 .cfa: $rsp 128 +
+STACK CFI INIT 3ad0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3ad1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3ad5 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3ad9 .cfa: $rsp 32 +
+STACK CFI 3afc .cfa: $rsp 24 +
+STACK CFI 3afd .cfa: $rsp 16 +
+STACK CFI 3afe .cfa: $rsp 8 +
+STACK CFI INIT 3b00 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3b01 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3b05 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3b09 .cfa: $rsp 32 +
+STACK CFI 3b2c .cfa: $rsp 24 +
+STACK CFI 3b2d .cfa: $rsp 16 +
+STACK CFI 3b2e .cfa: $rsp 8 +
+STACK CFI INIT 3300 336 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3302 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3304 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3305 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3306 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 330d .cfa: $rsp 128 +
+STACK CFI 3465 .cfa: $rsp 40 +
+STACK CFI 3466 .cfa: $rsp 32 +
+STACK CFI 3467 .cfa: $rsp 24 +
+STACK CFI 3469 .cfa: $rsp 16 +
+STACK CFI 346b .cfa: $rsp 8 +
+STACK CFI 3470 .cfa: $rsp 128 +
+STACK CFI INIT 3b30 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3b3a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 3b58 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 80 +
+STACK CFI 3bc2 .cfa: $rsp 8 +
+STACK CFI 3bc8 .cfa: $rsp 80 +
+STACK CFI INIT 3640 31c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3645 $r14: .cfa -24 + ^
+STACK CFI 3658 $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 3669 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ .cfa: $rsp 80 +
+STACK CFI 376f .cfa: $rsp 8 +
+STACK CFI 3770 .cfa: $rsp 80 +
+STACK CFI INIT 3960 167 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 396a $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 397e $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 256 +
+STACK CFI 3a42 .cfa: $rsp 8 +
+STACK CFI 3a43 .cfa: $rsp 256 +
+STACK CFI INIT 1c2a 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 3cf0 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3cfe $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 3d4d .cfa: $rsp 8 +
+STACK CFI 3d4e .cfa: $rsp 32 +
+STACK CFI INIT 3d70 232 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3d72 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3d73 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3d74 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3d7b .cfa: $rsp 160 +
+STACK CFI 3ede .cfa: $rsp 32 +
+STACK CFI 3edf .cfa: $rsp 24 +
+STACK CFI 3ee0 .cfa: $rsp 16 +
+STACK CFI 3ee2 .cfa: $rsp 8 +
+STACK CFI 3ee3 .cfa: $rsp 160 +
+STACK CFI INIT 3fb0 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3fb1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3fb5 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3fb9 .cfa: $rsp 32 +
+STACK CFI 4010 .cfa: $rsp 24 +
+STACK CFI 4014 .cfa: $rsp 16 +
+STACK CFI 4015 .cfa: $rsp 8 +
+STACK CFI 4016 .cfa: $rsp 32 +
+STACK CFI INIT 4040 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4047 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4062 .cfa: $rsp 8 +
+STACK CFI 4068 .cfa: $rsp 16 +
+STACK CFI 4077 .cfa: $rsp 8 +
+STACK CFI INIT 1c44 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1c45 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1c6a .cfa: $rsp 8 +
+STACK CFI INIT 4080 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 408e $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 40b5 .cfa: $rsp 8 +
+STACK CFI 40c0 .cfa: $rsp 32 +
+STACK CFI INIT 1c6c 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1c74 .cfa: $rsp 16 +
+STACK CFI INIT 1c8c 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1c94 .cfa: $rsp 16 +
+STACK CFI INIT 40e0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 40f9 .cfa: $rsp 16 +
+STACK CFI INIT 1cac 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1cb4 .cfa: $rsp 16 +
+STACK CFI INIT 1ccc 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1cd4 .cfa: $rsp 16 +
+STACK CFI INIT 7d00 153 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7d12 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7d2d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI 7d77 $r12: $r12 $r13: $r13 $r14: $r14 $r15: $r15 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI 7d80 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
+STACK CFI 7e50 $r12: $r12 $r13: $r13 $r14: $r14 $r15: $r15 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI INIT 1cec 1ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1cee $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1cf5 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1cf7 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 1cf9 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 1d00 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 1d01 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 1d05 .cfa: $rsp 112 +
+STACK CFI 1e8d .cfa: $rsp 56 +
+STACK CFI 1e8e .cfa: $rsp 48 +
+STACK CFI 1e8f .cfa: $rsp 40 +
+STACK CFI 1e91 .cfa: $rsp 32 +
+STACK CFI 1e93 .cfa: $rsp 24 +
+STACK CFI 1e95 .cfa: $rsp 16 +
+STACK CFI 1e97 .cfa: $rsp 8 +
+STACK CFI INIT 1e98 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1e99 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1e9d $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1ea7 .cfa: $rsp 288 +
+STACK CFI 1ed2 .cfa: $rsp 24 +
+STACK CFI 1ed5 .cfa: $rsp 16 +
+STACK CFI 1ed6 .cfa: $rsp 8 +
+STACK CFI INIT 7e60 248 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e62 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7e64 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 7e6a $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 7e6c $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 7e6d $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 7e71 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 7e78 .cfa: $rsp 64 +
+STACK CFI 7fd6 .cfa: $rsp 56 +
+STACK CFI 7fd7 .cfa: $rsp 48 +
+STACK CFI 7fd8 .cfa: $rsp 40 +
+STACK CFI 7fda .cfa: $rsp 32 +
+STACK CFI 7fdc .cfa: $rsp 24 +
+STACK CFI 7fde .cfa: $rsp 16 +
+STACK CFI 7fe5 .cfa: $rsp 8 +
+STACK CFI 7ff0 .cfa: $rsp 64 +
+STACK CFI 8052 .cfa: $rsp 56 +
+STACK CFI 8055 .cfa: $rsp 48 +
+STACK CFI 8056 .cfa: $rsp 40 +
+STACK CFI 8058 .cfa: $rsp 32 +
+STACK CFI 805a .cfa: $rsp 24 +
+STACK CFI 805c .cfa: $rsp 16 +
+STACK CFI 805e .cfa: $rsp 8 +
+STACK CFI 805f .cfa: $rsp 64 +
+STACK CFI INIT 80b0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 80e0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8110 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8140 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8170 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 818e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 819f $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 81e1 .cfa: $rsp 8 +
+STACK CFI 81e8 .cfa: $rsp 128 +
+STACK CFI INIT 83a0 357 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 83a5 $rbp: .cfa -48 + ^
+STACK CFI 83b7 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI 83c8 $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 8447 .cfa: $rsp 8 +
+STACK CFI 8450 .cfa: $rsp 128 +
+STACK CFI INIT 4100 15e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4102 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4104 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 4106 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 410c $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 410d $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 410e $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 4118 .cfa: $rsp 3696 +
+STACK CFI 4339 .cfa: $rsp 56 +
+STACK CFI 433c .cfa: $rsp 48 +
+STACK CFI 433d .cfa: $rsp 40 +
+STACK CFI 433f .cfa: $rsp 32 +
+STACK CFI 4341 .cfa: $rsp 24 +
+STACK CFI 4343 .cfa: $rsp 16 +
+STACK CFI 4345 .cfa: $rsp 8 +
+STACK CFI 4350 .cfa: $rsp 3696 +
+STACK CFI INIT 8700 17f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8702 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8706 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8708 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 870a $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 870b $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 870f $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 8716 .cfa: $rsp 96 +
+STACK CFI 877b .cfa: $rsp 56 +
+STACK CFI 877c .cfa: $rsp 48 +
+STACK CFI 877d .cfa: $rsp 40 +
+STACK CFI 877f .cfa: $rsp 32 +
+STACK CFI 8781 .cfa: $rsp 24 +
+STACK CFI 8783 .cfa: $rsp 16 +
+STACK CFI 8785 .cfa: $rsp 8 +
+STACK CFI 8790 .cfa: $rsp 96 +
+STACK CFI INIT 8880 3cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8882 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8884 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8886 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8888 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 8889 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 888d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 8891 .cfa: $rsp 128 +
+STACK CFI 8a9d .cfa: $rsp 56 +
+STACK CFI 8a9e .cfa: $rsp 48 +
+STACK CFI 8a9f .cfa: $rsp 40 +
+STACK CFI 8aa1 .cfa: $rsp 32 +
+STACK CFI 8aa3 .cfa: $rsp 24 +
+STACK CFI 8aa5 .cfa: $rsp 16 +
+STACK CFI 8aa7 .cfa: $rsp 8 +
+STACK CFI 8ab0 .cfa: $rsp 128 +
+STACK CFI 8b19 .cfa: $rsp 56 +
+STACK CFI 8b21 .cfa: $rsp 48 +
+STACK CFI 8b22 .cfa: $rsp 40 +
+STACK CFI 8b24 .cfa: $rsp 32 +
+STACK CFI 8b26 .cfa: $rsp 24 +
+STACK CFI 8b28 .cfa: $rsp 16 +
+STACK CFI 8b2a .cfa: $rsp 8 +
+STACK CFI 8b30 .cfa: $rsp 128 +
+STACK CFI INIT 56f0 1d12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 56f2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 56fd $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 5702 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 5704 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 5705 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 5706 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 570d .cfa: $rsp 2832 +
+STACK CFI 5842 .cfa: $rsp 56 +
+STACK CFI 5845 .cfa: $rsp 48 +
+STACK CFI 5846 .cfa: $rsp 40 +
+STACK CFI 5848 .cfa: $rsp 32 +
+STACK CFI 584a .cfa: $rsp 24 +
+STACK CFI 584c .cfa: $rsp 16 +
+STACK CFI 584e .cfa: $rsp 8 +
+STACK CFI 5850 .cfa: $rsp 2832 +
+STACK CFI INIT 7410 1ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7412 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7416 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 741a $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 7421 .cfa: $rsp 160 +
+STACK CFI 7505 .cfa: $rsp 32 +
+STACK CFI 7508 .cfa: $rsp 24 +
+STACK CFI 7509 .cfa: $rsp 16 +
+STACK CFI 750b .cfa: $rsp 8 +
+STACK CFI 7510 .cfa: $rsp 160 +
+STACK CFI INIT 75c0 2ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 75ca $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 75eb $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ .cfa: $rsp 368 +
+STACK CFI 7670 .cfa: $rsp 8 +
+STACK CFI 7678 .cfa: $rsp 368 +
+STACK CFI INIT 7890 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7894 .cfa: $rsp 32 +
+STACK CFI 78ba .cfa: $rsp 8 +
+STACK CFI INIT 78c0 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78c4 .cfa: $rsp 32 +
+STACK CFI 78eb .cfa: $rsp 8 +
+STACK CFI INIT 78f0 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 78f4 .cfa: $rsp 32 +
+STACK CFI 7919 .cfa: $rsp 8 +
+STACK CFI INIT 7920 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7924 .cfa: $rsp 32 +
+STACK CFI 794a .cfa: $rsp 8 +
+STACK CFI INIT 7950 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7966 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 96 +
+STACK CFI 79ce .cfa: $rsp 8 +
+STACK CFI 79cf .cfa: $rsp 96 +
+STACK CFI INIT 79f0 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7a06 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 96 +
+STACK CFI 7a6f .cfa: $rsp 8 +
+STACK CFI 7a70 .cfa: $rsp 96 +
+STACK CFI INIT 7a90 26a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7a92 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7a96 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 7a97 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 7aa0 .cfa: $rsp 368 +
+STACK CFI 7c0a .cfa: $rsp 32 +
+STACK CFI 7c0d .cfa: $rsp 24 +
+STACK CFI 7c0e .cfa: $rsp 16 +
+STACK CFI 7c10 .cfa: $rsp 8 +
+STACK CFI 7c18 .cfa: $rsp 368 +
+STACK CFI INIT 1ed8 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1ee0 .cfa: $rsp 16 +
+STACK CFI INIT 1ef8 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f00 .cfa: $rsp 16 +
+STACK CFI INIT 8c50 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8c70 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8c7e $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 8cc5 .cfa: $rsp 8 +
+STACK CFI 8cd0 .cfa: $rsp 32 +
+STACK CFI INIT 8d00 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d14 .cfa: $rsp 16 +
+STACK CFI INIT 8d30 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8d3a $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 8d46 $r12: .cfa -16 + ^ .cfa: $rsp 32 +
+STACK CFI 8d9b .cfa: $rsp 8 +
+STACK CFI 8da0 .cfa: $rsp 32 +
+STACK CFI INIT 8db0 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8dd0 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8de8 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
+STACK CFI 8e33 .cfa: $rsp 8 +
+STACK CFI 8e38 .cfa: $rsp 48 +
+STACK CFI INIT 8eb0 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8eb1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8eb5 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8eb9 .cfa: $rsp 32 +
+STACK CFI 8eeb .cfa: $rsp 24 +
+STACK CFI 8eec .cfa: $rsp 16 +
+STACK CFI 8eed .cfa: $rsp 8 +
+STACK CFI 8ef0 .cfa: $rsp 32 +
+STACK CFI INIT 8fb0 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8fb2 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8fb4 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8fb6 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8fb7 $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 8fba $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 8fbe .cfa: $rsp 64 +
+STACK CFI 9043 .cfa: $rsp 48 +
+STACK CFI 9044 .cfa: $rsp 40 +
+STACK CFI 9045 .cfa: $rsp 32 +
+STACK CFI 9047 .cfa: $rsp 24 +
+STACK CFI 9049 .cfa: $rsp 16 +
+STACK CFI 904b .cfa: $rsp 8 +
+STACK CFI 904c .cfa: $rsp 64 +
+STACK CFI INIT 9060 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9062 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9064 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9066 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9067 $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 9068 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 906e .cfa: $rsp 64 +
+STACK CFI 90f5 .cfa: $rsp 48 +
+STACK CFI 90f6 .cfa: $rsp 40 +
+STACK CFI 90f7 .cfa: $rsp 32 +
+STACK CFI 90f9 .cfa: $rsp 24 +
+STACK CFI 90fb .cfa: $rsp 16 +
+STACK CFI 90fd .cfa: $rsp 8 +
+STACK CFI 90fe .cfa: $rsp 64 +
+STACK CFI INIT 9110 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9111 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9131 .cfa: $rsp 8 +
+STACK CFI 9132 .cfa: $rsp 16 +
+STACK CFI INIT 9160 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9164 .cfa: $rsp 16 +
+STACK CFI 9187 .cfa: $rsp 8 +
+STACK CFI 918c .cfa: $rsp 16 +
+STACK CFI INIT 91f0 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91f1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 91f5 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 91f9 .cfa: $rsp 64 +
+STACK CFI 9231 .cfa: $rsp 24 +
+STACK CFI 9234 .cfa: $rsp 16 +
+STACK CFI 9235 .cfa: $rsp 8 +
+STACK CFI 9240 .cfa: $rsp 64 +
+STACK CFI 926e .cfa: $rsp 24 +
+STACK CFI 9274 .cfa: $rsp 16 +
+STACK CFI 9275 .cfa: $rsp 8 +
+STACK CFI 9276 .cfa: $rsp 64 +
+STACK CFI INIT 92e0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9310 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9312 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9314 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9316 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 931a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 931b $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 931f .cfa: $rsp 112 +
+STACK CFI 93d3 .cfa: $rsp 48 +
+STACK CFI 93d6 .cfa: $rsp 40 +
+STACK CFI 93d7 .cfa: $rsp 32 +
+STACK CFI 93d9 .cfa: $rsp 24 +
+STACK CFI 93db .cfa: $rsp 16 +
+STACK CFI 93dd .cfa: $rsp 8 +
+STACK CFI 93e0 .cfa: $rsp 112 +
+STACK CFI INIT 92c0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9500 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9502 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9504 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9506 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 950a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 950b $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 950f .cfa: $rsp 112 +
+STACK CFI 95c4 .cfa: $rsp 48 +
+STACK CFI 95c7 .cfa: $rsp 40 +
+STACK CFI 95c8 .cfa: $rsp 32 +
+STACK CFI 95ca .cfa: $rsp 24 +
+STACK CFI 95cc .cfa: $rsp 16 +
+STACK CFI 95ce .cfa: $rsp 8 +
+STACK CFI 95d0 .cfa: $rsp 112 +
+STACK CFI INIT 92d0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 96f0 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 96f2 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 96fa $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 96ff $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9703 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 970b .cfa: $rsp 64 +
+STACK CFI 974b .cfa: $rsp 40 +
+STACK CFI 974e .cfa: $rsp 32 +
+STACK CFI 974f .cfa: $rsp 24 +
+STACK CFI 9751 .cfa: $rsp 16 +
+STACK CFI 9753 .cfa: $rsp 8 +
+STACK CFI 9758 .cfa: $rsp 64 +
+STACK CFI 975f .cfa: $rsp 40 +
+STACK CFI 9760 .cfa: $rsp 32 +
+STACK CFI 9763 .cfa: $rsp 24 +
+STACK CFI 9765 .cfa: $rsp 16 +
+STACK CFI 9767 .cfa: $rsp 8 +
+STACK CFI INIT 9770 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9771 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 977f .cfa: $rsp 48 +
+STACK CFI 97c4 .cfa: $rsp 16 +
+STACK CFI 97c5 .cfa: $rsp 8 +
+STACK CFI INIT 97d0 147 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 97d2 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 97d4 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 97d6 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 97da $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 97de $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 97e2 .cfa: $rsp 80 +
+STACK CFI 9863 .cfa: $rsp 48 +
+STACK CFI 9867 .cfa: $rsp 40 +
+STACK CFI 9868 .cfa: $rsp 32 +
+STACK CFI 986a .cfa: $rsp 24 +
+STACK CFI 986c .cfa: $rsp 16 +
+STACK CFI 986e .cfa: $rsp 8 +
+STACK CFI 9870 .cfa: $rsp 80 +
+STACK CFI INIT 9b00 295 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9b0a $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 9b25 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ .cfa: $rsp 80 +
+STACK CFI 9bd6 .cfa: $rsp 8 +
+STACK CFI 9be0 .cfa: $rsp 80 +
+STACK CFI INIT 9920 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9921 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9925 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 992c .cfa: $rsp 64 +
+STACK CFI 99c5 .cfa: $rsp 24 +
+STACK CFI 99c6 .cfa: $rsp 16 +
+STACK CFI 99c7 .cfa: $rsp 8 +
+STACK CFI 99d0 .cfa: $rsp 64 +
+STACK CFI 99e4 .cfa: $rsp 24 +
+STACK CFI 99e5 .cfa: $rsp 16 +
+STACK CFI 99e6 .cfa: $rsp 8 +
+STACK CFI 99f0 .cfa: $rsp 64 +
+STACK CFI INIT 9a10 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9a11 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9a15 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9a1c .cfa: $rsp 64 +
+STACK CFI 9ab7 .cfa: $rsp 24 +
+STACK CFI 9ab8 .cfa: $rsp 16 +
+STACK CFI 9ab9 .cfa: $rsp 8 +
+STACK CFI 9ac0 .cfa: $rsp 64 +
+STACK CFI 9ad4 .cfa: $rsp 24 +
+STACK CFI 9ad5 .cfa: $rsp 16 +
+STACK CFI 9ad6 .cfa: $rsp 8 +
+STACK CFI 9ae0 .cfa: $rsp 64 +
+STACK CFI INIT 9ed0 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9ed4 .cfa: $rsp 16 +
+STACK CFI 9edf .cfa: $rsp 8 +
+STACK CFI INIT 9da0 73 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9da1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9e12 .cfa: $rsp 8 +
+STACK CFI INIT 9e20 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e21 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9e25 .cfa: $rsp 32 +
+STACK CFI 9eaa .cfa: $rsp 16 +
+STACK CFI 9ead .cfa: $rsp 8 +
+STACK CFI 9eae .cfa: $rsp 32 +
+STACK CFI INIT 9ef0 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9f10 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9f50 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9fb0 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a010 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a050 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a0a0 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a0f0 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a120 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a160 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a1d0 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a210 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a230 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a270 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a271 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a28d .cfa: $rsp 8 +
+STACK CFI a290 .cfa: $rsp 16 +
+STACK CFI a2ad .cfa: $rsp 8 +
+STACK CFI INIT a2b0 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a300 1aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a302 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a311 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI a319 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI a31f $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI a320 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI a327 .cfa: $rsp 208 +
+STACK CFI a443 .cfa: $rsp 48 +
+STACK CFI a449 .cfa: $rsp 40 +
+STACK CFI a44a .cfa: $rsp 32 +
+STACK CFI a44c .cfa: $rsp 24 +
+STACK CFI a44e .cfa: $rsp 16 +
+STACK CFI a450 .cfa: $rsp 8 +
+STACK CFI a458 .cfa: $rsp 208 +
+STACK CFI a49f .cfa: $rsp 48 +
+STACK CFI a4a2 .cfa: $rsp 40 +
+STACK CFI a4a3 .cfa: $rsp 32 +
+STACK CFI a4a5 .cfa: $rsp 24 +
+STACK CFI a4a7 .cfa: $rsp 16 +
+STACK CFI a4a9 .cfa: $rsp 8 +
+STACK CFI INIT a4b0 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a4b3 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a4c4 .cfa: $rsp 8 +
+STACK CFI a4c8 .cfa: $rsp 16 +
+STACK CFI a4cb .cfa: $rsp 8 +
+STACK CFI INIT 1f18 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1f20 .cfa: $rsp 16 +
+STACK CFI INIT a4d0 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a4d2 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a4d8 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI a4df $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI a4e0 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI a4e4 .cfa: $rsp 48 +
+STACK CFI a530 .cfa: $rsp 40 +
+STACK CFI a531 .cfa: $rsp 32 +
+STACK CFI a532 .cfa: $rsp 24 +
+STACK CFI a534 .cfa: $rsp 16 +
+STACK CFI a536 .cfa: $rsp 8 +
+STACK CFI INIT a540 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a541 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a54d .cfa: $rsp 8 +
+STACK CFI INIT a560 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a562 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a56d $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI a56e $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI a575 .cfa: $rsp 320 +
+STACK CFI a593 .cfa: $rsp 32 +
+STACK CFI a596 .cfa: $rsp 24 +
+STACK CFI a597 .cfa: $rsp 16 +
+STACK CFI a599 .cfa: $rsp 8 +
+STACK CFI a5a0 .cfa: $rsp 320 +
+STACK CFI a618 .cfa: $rsp 32 +
+STACK CFI a61b .cfa: $rsp 24 +
+STACK CFI a61c .cfa: $rsp 16 +
+STACK CFI a61e .cfa: $rsp 8 +
+STACK CFI a620 .cfa: $rsp 320 +
+STACK CFI INIT a670 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a671 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a680 .cfa: $rsp 8 +
+STACK CFI a688 .cfa: $rsp 16 +
+STACK CFI a69c .cfa: $rsp 8 +
+STACK CFI INIT a6b0 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a700 94 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a70a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI a717 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI a723 $r14: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI a78c .cfa: $rsp 8 +
+STACK CFI a790 .cfa: $rsp 48 +
+STACK CFI INIT a7a0 1fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7aa $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI a7c1 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 848 +
+STACK CFI a7f8 .cfa: $rsp 8 +
+STACK CFI a800 .cfa: $rsp 848 +
+STACK CFI INIT a9a0 35d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a9aa $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI a9cb $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 368 +
+STACK CFI aa56 .cfa: $rsp 8 +
+STACK CFI aa60 .cfa: $rsp 368 +
+STACK CFI INIT b670 221 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b68e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b69f $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI b6e1 .cfa: $rsp 8 +
+STACK CFI b6e8 .cfa: $rsp 128 +
+STACK CFI INIT b8a0 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b8be $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI b8cf $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI b911 .cfa: $rsp 8 +
+STACK CFI b918 .cfa: $rsp 128 +
+STACK CFI INIT bad0 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI baee $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI baff $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI bb41 .cfa: $rsp 8 +
+STACK CFI bb48 .cfa: $rsp 128 +
+STACK CFI INIT bd00 320 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bd0a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI bd28 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI bd95 .cfa: $rsp 8 +
+STACK CFI bda0 .cfa: $rsp 128 +
+STACK CFI INIT c020 460 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c022 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c024 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI c026 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI c028 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI c029 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI c02d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI c031 .cfa: $rsp 128 +
+STACK CFI c0d8 .cfa: $rsp 56 +
+STACK CFI c0d9 .cfa: $rsp 48 +
+STACK CFI c0da .cfa: $rsp 40 +
+STACK CFI c0dc .cfa: $rsp 32 +
+STACK CFI c0de .cfa: $rsp 24 +
+STACK CFI c0e0 .cfa: $rsp 16 +
+STACK CFI c0e2 .cfa: $rsp 8 +
+STACK CFI c0e8 .cfa: $rsp 128 +
+STACK CFI c168 .cfa: $rsp 56 +
+STACK CFI c169 .cfa: $rsp 48 +
+STACK CFI c16a .cfa: $rsp 40 +
+STACK CFI c16c .cfa: $rsp 32 +
+STACK CFI c16e .cfa: $rsp 24 +
+STACK CFI c170 .cfa: $rsp 16 +
+STACK CFI c172 .cfa: $rsp 8 +
+STACK CFI c178 .cfa: $rsp 128 +
+STACK CFI c368 .cfa: $rsp 56 +
+STACK CFI c369 .cfa: $rsp 48 +
+STACK CFI c36a .cfa: $rsp 40 +
+STACK CFI c36c .cfa: $rsp 32 +
+STACK CFI c36e .cfa: $rsp 24 +
+STACK CFI c370 .cfa: $rsp 16 +
+STACK CFI c372 .cfa: $rsp 8 +
+STACK CFI c378 .cfa: $rsp 128 +
+STACK CFI INIT ad00 1a9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad0a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI ad24 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI ae4e .cfa: $rsp 8 +
+STACK CFI ae50 .cfa: $rsp 64 +
+STACK CFI INIT c480 43f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c482 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c484 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI c486 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI c488 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI c48c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI c48d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI c491 .cfa: $rsp 128 +
+STACK CFI c550 .cfa: $rsp 56 +
+STACK CFI c551 .cfa: $rsp 48 +
+STACK CFI c552 .cfa: $rsp 40 +
+STACK CFI c554 .cfa: $rsp 32 +
+STACK CFI c556 .cfa: $rsp 24 +
+STACK CFI c558 .cfa: $rsp 16 +
+STACK CFI c55a .cfa: $rsp 8 +
+STACK CFI c560 .cfa: $rsp 128 +
+STACK CFI c5d0 .cfa: $rsp 56 +
+STACK CFI c5d1 .cfa: $rsp 48 +
+STACK CFI c5d2 .cfa: $rsp 40 +
+STACK CFI c5d4 .cfa: $rsp 32 +
+STACK CFI c5d6 .cfa: $rsp 24 +
+STACK CFI c5d8 .cfa: $rsp 16 +
+STACK CFI c5da .cfa: $rsp 8 +
+STACK CFI c5e0 .cfa: $rsp 128 +
+STACK CFI c79d .cfa: $rsp 56 +
+STACK CFI c79e .cfa: $rsp 48 +
+STACK CFI c79f .cfa: $rsp 40 +
+STACK CFI c7a1 .cfa: $rsp 32 +
+STACK CFI c7a3 .cfa: $rsp 24 +
+STACK CFI c7a5 .cfa: $rsp 16 +
+STACK CFI c7a7 .cfa: $rsp 8 +
+STACK CFI c7b0 .cfa: $rsp 128 +
+STACK CFI INIT aeb0 7b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aeb2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aebe $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI aec0 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI aec2 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI aec3 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI aec4 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI aecb .cfa: $rsp 464 +
+STACK CFI aeec .cfa: $rsp 56 +
+STACK CFI aeed .cfa: $rsp 48 +
+STACK CFI aeee .cfa: $rsp 40 +
+STACK CFI aef0 .cfa: $rsp 32 +
+STACK CFI aef2 .cfa: $rsp 24 +
+STACK CFI aef4 .cfa: $rsp 16 +
+STACK CFI aef6 .cfa: $rsp 8 +
+STACK CFI aef7 .cfa: $rsp 464 +
+STACK CFI INIT c8c0 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT d5a0 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT c8d0 d8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c8e6 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c8f7 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI c940 .cfa: $rsp 8 +
+STACK CFI c948 .cfa: $rsp 64 +
+STACK CFI INIT c9b0 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9b2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c9b7 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI c9b9 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI c9bb $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI c9bc $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI c9bd $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI c9c1 .cfa: $rsp 96 +
+STACK CFI ca34 .cfa: $rsp 56 +
+STACK CFI ca35 .cfa: $rsp 48 +
+STACK CFI ca36 .cfa: $rsp 40 +
+STACK CFI ca38 .cfa: $rsp 32 +
+STACK CFI ca3a .cfa: $rsp 24 +
+STACK CFI ca3c .cfa: $rsp 16 +
+STACK CFI ca3e .cfa: $rsp 8 +
+STACK CFI ca40 .cfa: $rsp 96 +
+STACK CFI INIT ca60 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ca62 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI ca67 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI ca68 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI ca6c $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI ca70 .cfa: $rsp 64 +
+STACK CFI caef .cfa: $rsp 40 +
+STACK CFI caf3 .cfa: $rsp 32 +
+STACK CFI caf4 .cfa: $rsp 24 +
+STACK CFI caf6 .cfa: $rsp 16 +
+STACK CFI caf8 .cfa: $rsp 8 +
+STACK CFI cb00 .cfa: $rsp 64 +
+STACK CFI INIT d5c0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5c8 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d5db .cfa: $rsp 8 +
+STACK CFI INIT cb30 49f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cb32 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cb34 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI cb36 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI cb38 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI cb3c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI cb3d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI cb47 .cfa: $rsp 336 +
+STACK CFI cb8f .cfa: $rsp 56 +
+STACK CFI cb90 .cfa: $rsp 48 +
+STACK CFI cb91 .cfa: $rsp 40 +
+STACK CFI cb93 .cfa: $rsp 32 +
+STACK CFI cb95 .cfa: $rsp 24 +
+STACK CFI cb97 .cfa: $rsp 16 +
+STACK CFI cb99 .cfa: $rsp 8 +
+STACK CFI cb9a .cfa: $rsp 336 +
+STACK CFI INIT cfd0 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cfd1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cfef .cfa: $rsp 8 +
+STACK CFI INIT d5e0 306 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d5e5 $rbx: .cfa -56 + ^
+STACK CFI d5f7 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI d608 $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI d66e .cfa: $rsp 8 +
+STACK CFI d670 .cfa: $rsp 128 +
+STACK CFI INIT cff0 36d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cffa $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d01f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 352 +
+STACK CFI d06d .cfa: $rsp 8 +
+STACK CFI d070 .cfa: $rsp 352 +
+STACK CFI INIT d8f0 458 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8f2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d8f4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI d8f6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI d8f8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI d8f9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI d8fd $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI d901 .cfa: $rsp 128 +
+STACK CFI d9a8 .cfa: $rsp 56 +
+STACK CFI d9a9 .cfa: $rsp 48 +
+STACK CFI d9aa .cfa: $rsp 40 +
+STACK CFI d9ac .cfa: $rsp 32 +
+STACK CFI d9ae .cfa: $rsp 24 +
+STACK CFI d9b0 .cfa: $rsp 16 +
+STACK CFI d9b2 .cfa: $rsp 8 +
+STACK CFI d9b8 .cfa: $rsp 128 +
+STACK CFI da30 .cfa: $rsp 56 +
+STACK CFI da31 .cfa: $rsp 48 +
+STACK CFI da32 .cfa: $rsp 40 +
+STACK CFI da34 .cfa: $rsp 32 +
+STACK CFI da36 .cfa: $rsp 24 +
+STACK CFI da38 .cfa: $rsp 16 +
+STACK CFI da3a .cfa: $rsp 8 +
+STACK CFI da40 .cfa: $rsp 128 +
+STACK CFI dc2e .cfa: $rsp 56 +
+STACK CFI dc2f .cfa: $rsp 48 +
+STACK CFI dc30 .cfa: $rsp 40 +
+STACK CFI dc32 .cfa: $rsp 32 +
+STACK CFI dc34 .cfa: $rsp 24 +
+STACK CFI dc36 .cfa: $rsp 16 +
+STACK CFI dc38 .cfa: $rsp 8 +
+STACK CFI dc40 .cfa: $rsp 128 +
+STACK CFI INIT d360 235 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d362 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d369 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI d36b $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI d36d $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI d371 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI d372 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI d379 .cfa: $rsp 320 +
+STACK CFI d4f4 .cfa: $rsp 56 +
+STACK CFI d4f5 .cfa: $rsp 48 +
+STACK CFI d4f6 .cfa: $rsp 40 +
+STACK CFI d4f8 .cfa: $rsp 32 +
+STACK CFI d4fa .cfa: $rsp 24 +
+STACK CFI d4fc .cfa: $rsp 16 +
+STACK CFI d4fe .cfa: $rsp 8 +
+STACK CFI d500 .cfa: $rsp 320 +
+STACK CFI INIT dd50 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT de40 fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de44 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI de48 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI dec7 .cfa: $rsp 16 +
+STACK CFI dec8 .cfa: $rsp 8 +
+STACK CFI ded0 .cfa: $rsp 24 +
+STACK CFI df2b .cfa: $rsp 16 +
+STACK CFI df2c .cfa: $rsp 8 +
+STACK CFI df2d .cfa: $rsp 24 +
+STACK CFI INIT df40 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI df51 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI df52 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI df53 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI dfc8 $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI dfc9 $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI dfd6 $r12: $r12 .cfa: $rsp 8 +
+STACK CFI dfe0 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI dfeb $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI dfec $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI dff9 $r12: $r12 .cfa: $rsp 8 +
+STACK CFI e000 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e001 $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e002 $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e00c $r12: $r12 .cfa: $rsp 8 +
+STACK CFI e00d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e00e $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e00f $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e01c $r12: $r12 .cfa: $rsp 8 +
+STACK CFI INIT e030 216 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e032 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e037 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e03b $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e03f $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e0d6 .cfa: $rsp 32 +
+STACK CFI e0e2 .cfa: $rsp 24 +
+STACK CFI e0e4 .cfa: $rsp 16 +
+STACK CFI e0e6 .cfa: $rsp 8 +
+STACK CFI e0f0 .cfa: $rsp 40 +
+STACK CFI e1db .cfa: $rsp 32 +
+STACK CFI e1e4 .cfa: $rsp 24 +
+STACK CFI e1e6 .cfa: $rsp 16 +
+STACK CFI e1e8 .cfa: $rsp 8 +
+STACK CFI e1f0 .cfa: $rsp 40 +
+STACK CFI e1fb .cfa: $rsp 32 +
+STACK CFI e207 .cfa: $rsp 24 +
+STACK CFI e209 .cfa: $rsp 16 +
+STACK CFI e20b .cfa: $rsp 8 +
+STACK CFI e20c .cfa: $rsp 40 +
+STACK CFI e214 .cfa: $rsp 32 +
+STACK CFI e223 .cfa: $rsp 24 +
+STACK CFI e225 .cfa: $rsp 16 +
+STACK CFI e227 .cfa: $rsp 8 +
+STACK CFI e228 .cfa: $rsp 40 +
+STACK CFI INIT e250 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e280 265 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e282 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e284 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e286 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e288 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e289 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e28a $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI e28e .cfa: $rsp 96 +
+STACK CFI e3e3 .cfa: $rsp 56 +
+STACK CFI e3e4 .cfa: $rsp 48 +
+STACK CFI e3e5 .cfa: $rsp 40 +
+STACK CFI e3e7 .cfa: $rsp 32 +
+STACK CFI e3e9 .cfa: $rsp 24 +
+STACK CFI e3eb .cfa: $rsp 16 +
+STACK CFI e3ed .cfa: $rsp 8 +
+STACK CFI e3f0 .cfa: $rsp 96 +
+STACK CFI INIT e4f0 1c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e4f2 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e4f9 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e4fe $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e4ff $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e503 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e638 .cfa: $rsp 40 +
+STACK CFI e63f .cfa: $rsp 32 +
+STACK CFI e641 .cfa: $rsp 24 +
+STACK CFI e643 .cfa: $rsp 16 +
+STACK CFI e645 .cfa: $rsp 8 +
+STACK CFI e650 .cfa: $rsp 48 +
+STACK CFI e661 .cfa: $rsp 40 +
+STACK CFI e66d .cfa: $rsp 32 +
+STACK CFI e66f .cfa: $rsp 24 +
+STACK CFI e671 .cfa: $rsp 16 +
+STACK CFI e673 .cfa: $rsp 8 +
+STACK CFI e674 .cfa: $rsp 48 +
+STACK CFI e67c .cfa: $rsp 40 +
+STACK CFI e68b .cfa: $rsp 32 +
+STACK CFI e68d .cfa: $rsp 24 +
+STACK CFI e68f .cfa: $rsp 16 +
+STACK CFI e691 .cfa: $rsp 8 +
+STACK CFI e692 .cfa: $rsp 48 +
+STACK CFI INIT e6b0 29f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e6b2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e6b4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e6b6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e6b8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e6b9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e6ba $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI e6be .cfa: $rsp 104 +
+STACK CFI e85e .cfa: $rsp 56 +
+STACK CFI e85f .cfa: $rsp 48 +
+STACK CFI e860 .cfa: $rsp 40 +
+STACK CFI e862 .cfa: $rsp 32 +
+STACK CFI e864 .cfa: $rsp 24 +
+STACK CFI e866 .cfa: $rsp 16 +
+STACK CFI e868 .cfa: $rsp 8 +
+STACK CFI e870 .cfa: $rsp 104 +
+STACK CFI INIT e950 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e960 1ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e962 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e966 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e967 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e973 .cfa: $rsp 48 +
+STACK CFI ea4b .cfa: $rsp 32 +
+STACK CFI ea4c .cfa: $rsp 24 +
+STACK CFI ea4d .cfa: $rsp 16 +
+STACK CFI ea4f .cfa: $rsp 8 +
+STACK CFI ea50 .cfa: $rsp 48 +
+STACK CFI INIT eb50 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eb51 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI eb5b .cfa: $rsp 48 +
+STACK CFI eb8e .cfa: $rsp 16 +
+STACK CFI eb8f .cfa: $rsp 8 +
+STACK CFI eb90 .cfa: $rsp 48 +
+STACK CFI INIT ebb0 e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ebb1 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI ebb2 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI ec7c .cfa: $rsp 16 +
+STACK CFI ec81 .cfa: $rsp 8 +
+STACK CFI ec82 .cfa: $rsp 24 +
+STACK CFI ec8f .cfa: $rsp 16 +
+STACK CFI ec94 .cfa: $rsp 8 +
+STACK CFI INIT eca0 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ecb0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ecba $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI ecc1 .cfa: $rsp 32 +
+STACK CFI ed05 .cfa: $rsp 8 +
+STACK CFI INIT ed10 193 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ed1a $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ed26 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI ed30 .cfa: $rsp 192 +
+STACK CFI ed85 .cfa: $rsp 8 +
+STACK CFI ed90 .cfa: $rsp 192 +
+STACK CFI INIT eeb0 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT eed0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT eee0 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eee1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI eeff .cfa: $rsp 8 +
+STACK CFI ef00 .cfa: $rsp 16 +
+STACK CFI ef15 .cfa: $rsp 8 +
+STACK CFI ef16 .cfa: $rsp 16 +
+STACK CFI ef19 .cfa: $rsp 8 +
+STACK CFI INIT ef20 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef2b .cfa: $rsp 16 +
+STACK CFI ef3e .cfa: $rsp 8 +
+STACK CFI INIT ef40 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ef50 466 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ef5a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ef75 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 112 +
+STACK CFI efdc .cfa: $rsp 8 +
+STACK CFI efe0 .cfa: $rsp 112 +
+STACK CFI INIT f3c0 29c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f3ca $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI f3e0 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI f43b .cfa: $rsp 8 +
+STACK CFI f440 .cfa: $rsp 48 +
+STACK CFI INIT f660 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f670 89 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f681 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI f6a0 .cfa: $rsp 64 +
+STACK CFI f6a6 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
diff --git a/src/processor/testdata/symbols/overflow/B0E1FC01EF48E39CAF5C881D2DF0C3840/overflow.sym b/src/processor/testdata/symbols/overflow/B0E1FC01EF48E39CAF5C881D2DF0C3840/overflow.sym
new file mode 100644
index 0000000..8299b3f
--- /dev/null
+++ b/src/processor/testdata/symbols/overflow/B0E1FC01EF48E39CAF5C881D2DF0C3840/overflow.sym
@@ -0,0 +1,6709 @@
+MODULE Linux x86_64 B0E1FC01EF48E39CAF5C881D2DF0C3840 overflow
+FILE 0 /home/mattdr/exploitable-crashes/overflow.cc
+FILE 1 /home/mattdr/google-breakpad-read-only/./src/client/linux/crash_generation/crash_generation_client.h
+FILE 2 /home/mattdr/google-breakpad-read-only/./src/client/linux/handler/minidump_descriptor.h
+FILE 3 /home/mattdr/google-breakpad-read-only/./src/client/linux/minidump_writer/directory_reader.h
+FILE 4 /home/mattdr/google-breakpad-read-only/./src/client/linux/minidump_writer/line_reader.h
+FILE 5 /home/mattdr/google-breakpad-read-only/./src/client/linux/minidump_writer/linux_dumper.h
+FILE 6 /home/mattdr/google-breakpad-read-only/./src/client/linux/minidump_writer/linux_ptrace_dumper.h
+FILE 7 /home/mattdr/google-breakpad-read-only/./src/client/linux/minidump_writer/proc_cpuinfo_reader.h
+FILE 8 /home/mattdr/google-breakpad-read-only/./src/client/minidump_file_writer-inl.h
+FILE 9 /home/mattdr/google-breakpad-read-only/./src/client/minidump_file_writer.h
+FILE 10 /home/mattdr/google-breakpad-read-only/./src/common/linux/elfutils-inl.h
+FILE 11 /home/mattdr/google-breakpad-read-only/./src/common/linux/safe_readlink.h
+FILE 12 /home/mattdr/google-breakpad-read-only/./src/common/memory.h
+FILE 13 /home/mattdr/google-breakpad-read-only/./src/common/memory_range.h
+FILE 14 /home/mattdr/google-breakpad-read-only/./src/common/scoped_ptr.h
+FILE 15 /home/mattdr/google-breakpad-read-only/./src/third_party/lss/linux_syscall_support.h
+FILE 16 /home/mattdr/google-breakpad-read-only/src/client/linux/crash_generation/crash_generation_client.cc
+FILE 17 /home/mattdr/google-breakpad-read-only/src/client/linux/handler/exception_handler.cc
+FILE 18 /home/mattdr/google-breakpad-read-only/src/client/linux/handler/minidump_descriptor.cc
+FILE 19 /home/mattdr/google-breakpad-read-only/src/client/linux/handler/minidump_descriptor.h
+FILE 20 /home/mattdr/google-breakpad-read-only/src/client/linux/log/log.cc
+FILE 21 /home/mattdr/google-breakpad-read-only/src/client/linux/minidump_writer/linux_dumper.cc
+FILE 22 /home/mattdr/google-breakpad-read-only/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+FILE 23 /home/mattdr/google-breakpad-read-only/src/client/linux/minidump_writer/minidump_writer.cc
+FILE 24 /home/mattdr/google-breakpad-read-only/src/client/minidump_file_writer.cc
+FILE 25 /home/mattdr/google-breakpad-read-only/src/common/convert_UTF.c
+FILE 26 /home/mattdr/google-breakpad-read-only/src/common/linux/elfutils.cc
+FILE 27 /home/mattdr/google-breakpad-read-only/src/common/linux/file_id.cc
+FILE 28 /home/mattdr/google-breakpad-read-only/src/common/linux/guid_creator.cc
+FILE 29 /home/mattdr/google-breakpad-read-only/src/common/linux/linux_libc_support.cc
+FILE 30 /home/mattdr/google-breakpad-read-only/src/common/linux/memory_mapped_file.cc
+FILE 31 /home/mattdr/google-breakpad-read-only/src/common/linux/safe_readlink.cc
+FILE 32 /home/mattdr/google-breakpad-read-only/src/common/string_conversion.cc
+FILE 33 /usr/include/c++/4.7/bits/basic_string.h
+FILE 34 /usr/include/c++/4.7/bits/char_traits.h
+FILE 35 /usr/include/c++/4.7/bits/list.tcc
+FILE 36 /usr/include/c++/4.7/bits/shared_ptr_base.h
+FILE 37 /usr/include/c++/4.7/bits/stl_algo.h
+FILE 38 /usr/include/c++/4.7/bits/stl_algobase.h
+FILE 39 /usr/include/c++/4.7/bits/stl_iterator.h
+FILE 40 /usr/include/c++/4.7/bits/stl_iterator_base_funcs.h
+FILE 41 /usr/include/c++/4.7/bits/stl_list.h
+FILE 42 /usr/include/c++/4.7/bits/stl_uninitialized.h
+FILE 43 /usr/include/c++/4.7/bits/stl_vector.h
+FILE 44 /usr/include/c++/4.7/bits/vector.tcc
+FILE 45 /usr/include/c++/4.7/ext/atomicity.h
+FILE 46 /usr/include/c++/4.7/ext/new_allocator.h
+FILE 47 /usr/include/c++/4.7/typeinfo
+FILE 48 /usr/include/x86_64-linux-gnu/bits/stdio2.h
+FILE 49 /usr/include/x86_64-linux-gnu/bits/string3.h
+FUNC 1e20 1a 0 __gnu_cxx::__exchange_and_add_dispatch
+1e20 a 80 45
+1e2a 8 48 45
+1e32 2 66 45
+1e34 5 67 45
+1e39 1 87 45
+FUNC 1e3a 1a 0 __gnu_cxx::__exchange_and_add_dispatch
+1e3a a 80 45
+1e44 8 48 45
+1e4c 2 66 45
+1e4e 5 67 45
+1e53 1 87 45
+FUNC 1e54 27 0 sys_close
+1e54 1 2629 15
+1e55 15 2629 15
+1e6a d 2629 15
+1e77 4 2629 15
+FUNC 1e7c 20 0 google_breakpad::ProcCpuInfoReader::GetValueAndLen(unsigned long*)
+1e7c 7 116 7
+1e83 1 115 7
+1e84 18 116 7
+FUNC 1e9c 20 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex(unsigned int, MDRawDirectory*)
+1e9c 7 73 8
+1ea3 1 72 8
+1ea4 18 73 8
+FUNC 1ebc 20 0 google_breakpad::TypedMDRVA<unsigned int>::AllocateObjectAndArray(unsigned long, unsigned long)
+1ebc 7 66 8
+1ec3 1 64 8
+1ec4 18 66 8
+FUNC 1edc 20 0 google_breakpad::TypedMDRVA<unsigned int>::CopyIndexAfterObject(unsigned int, void const*, unsigned long)
+1edc 7 83 8
+1ee3 1 80 8
+1ee4 18 83 8
+FUNC 1efc 1ac 0 MinidumpWriter::WriteFile
+1efc 2 1505 23
+1efe 5 2711 15
+1f03 12 1505 23
+1f15 5 1505 23
+1f1a 1f 2711 15
+1f39 2 1507 23
+1f3b 3 2711 15
+1f3e 2 1507 23
+1f40 7 1508 23
+1f47 a 1166 23
+1f51 2 1522 23
+1f53 3 2724 15
+1f56 c 1166 23
+1f62 7 1519 23
+1f69 b 1520 23
+1f74 9 1526 23
+1f7d 5 2724 15
+1f82 8 1526 23
+1f8a d 2724 15
+1f97 f 2724 15
+1fa6 3 1525 23
+1fa9 2 2724 15
+1fab 4 1525 23
+1faf 5 1529 23
+1fb4 4 1533 23
+1fb8 3 1532 23
+1fbb 7 1534 23
+1fc2 4 1533 23
+1fc6 2 1534 23
+1fc8 13 1166 23
+1fdb 3 1535 23
+1fde b 1538 23
+1fe9 9 1537 23
+1ff2 8 1541 23
+1ffa 9 1543 23
+2003 5 1546 23
+2008 3 1547 23
+200b 9 161 9
+2014 5 1546 23
+2019 5 161 9
+201e 8 1547 23
+2026 4 161 9
+202a d 1547 23
+2037 4 1549 23
+203b 9 1554 23
+2044 26 1556 23
+206a e 1559 23
+2078 3 1560 23
+207b 9 1549 23
+2084 c 176 9
+2090 7 1562 23
+2097 2 1563 23
+2099 f 1564 23
+FUNC 20a8 3f 0 MinidumpWriter::WriteProcFile
+20a8 f 1633 23
+20b7 e 1636 23
+20c5 2 1637 23
+20c7 4 1636 23
+20cb 10 1638 23
+20db c 1639 23
+FUNC 20e8 20 0 google_breakpad::TypedMDRVA<MDString>::CopyIndexAfterObject(unsigned int, void const*, unsigned long)
+20e8 7 83 8
+20ef 1 80 8
+20f0 18 83 8
+FUNC 2108 20 0 google_breakpad::TypedMDRVA<MDString>::AllocateObjectAndArray(unsigned long, unsigned long)
+2108 7 66 8
+210f 1 64 8
+2110 18 66 8
+FUNC 2128 20 0 google_breakpad::LineReader::PopLine(unsigned int)
+2128 7 116 4
+212f 1 113 4
+2130 18 116 4
+FUNC 2150 279 0 main
+2150 a 32 0
+215a 5 33 0
+215f 9 32 0
+2168 a 33 0
+2172 13 32 0
+2185 5 33 0
+218a 17 54 19
+21a1 5 713 33
+21a6 9 272 33
+21af 12 54 19
+21c1 b 55 19
+21cc a 33 0
+21d6 a 94 46
+21e0 3 110 46
+21e3 3 94 46
+21e6 2 110 46
+21e8 4 397 36
+21ec e 113 36
+21fa 11 397 36
+220b 4 399 36
+220f 15 110 46
+2224 4 399 36
+2228 c 110 46
+2234 e 601 36
+2242 f 42 0
+2251 4 44 0
+2255 a 42 0
+225f 2 44 0
+2261 13 45 0
+2274 11 46 0
+2285 15 105 48
+229a 5 557 36
+229f 5 80 45
+22a4 4 144 36
+22a8 9 80 45
+22b1 b 48 45
+22bc 5 144 36
+22c1 a 52 0
+22cb 23 53 0
+22ee a 45 0
+22f8 a 46 0
+2302 9 147 36
+230b 3 80 45
+230e 4 160 36
+2312 2 80 45
+2314 9 48 45
+231d 5 160 36
+2322 b 164 36
+232d 5 53 0
+2332 19 55 19
+234b 3 66 45
+234e b 67 45
+2359 3 66 45
+235c b 67 45
+2367 12 52 0
+2379 15 33 0
+238e 8 557 36
+2396 d 558 36
+23a3 7 117 36
+23aa 8 529 36
+23b2 8 100 46
+23ba 8 532 36
+23c2 7 529 36
+FUNC 24d0 2c 0 MinidumpCallback(google_breakpad::MinidumpDescriptor const&, void*, bool)
+24d0 1 8 0
+24d1 2 8 0
+24d3 4 53 0
+24d7 10 11 0
+24e7 11 105 48
+24f8 4 13 0
+FUNC 2500 3e 0 overflow(char const*)
+2500 4 17 0
+2504 3 17 0
+2507 8 105 49
+250f 10 17 0
+251f 5 105 49
+2524 1a 20 0
+FUNC 2540 49 0 stack_smash(char const*)
+2540 4 24 0
+2544 3 27 0
+2547 10 24 0
+2557 9 27 0
+2560 7 28 0
+2567 8 27 0
+256f 1a 30 0
+FUNC 2590 12 0 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_destroy()
+2590 5 127 36
+2595 d 127 36
+FUNC 25b0 8 0 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::~_Sp_counted_base()
+25b0 8 117 36
+FUNC 25c0 8 0 std::_Sp_counted_ptr_inplace<google_breakpad::ExceptionHandler, std::allocator<google_breakpad::ExceptionHandler>, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr_inplace()
+25c0 8 117 36
+FUNC 25d0 c 0 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::~_Sp_counted_base()
+25d0 c 117 36
+FUNC 25e0 c 0 std::_Sp_counted_ptr_inplace<google_breakpad::ExceptionHandler, std::allocator<google_breakpad::ExceptionHandler>, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr_inplace()
+25e0 7 117 36
+25e7 5 406 36
+FUNC 25f0 c 0 std::_Sp_counted_ptr_inplace<google_breakpad::ExceptionHandler, std::allocator<google_breakpad::ExceptionHandler>, (__gnu_cxx::_Lock_policy)2>::_M_destroy()
+25f0 7 117 36
+25f7 5 100 46
+FUNC 2600 9 0 std::_Sp_counted_ptr_inplace<google_breakpad::ExceptionHandler, std::allocator<google_breakpad::ExceptionHandler>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()
+2600 9 114 46
+FUNC 2610 35 0 std::_Sp_counted_ptr_inplace<google_breakpad::ExceptionHandler, std::allocator<google_breakpad::ExceptionHandler>, (__gnu_cxx::_Lock_policy)2>::_M_get_deleter(std::type_info const&)
+2610 4 53 0
+2614 3 425 36
+2617 9 126 47
+2620 2 430 36
+2622 13 126 47
+2635 b 434 36
+2640 4 430 36
+2644 1 434 36
+FUNC 2650 90 0 google_breakpad::MinidumpDescriptor::~MinidumpDescriptor()
+2650 8 46 19
+2658 4 290 33
+265c 4 536 33
+2660 9 237 33
+2669 4 290 33
+266d 4 536 33
+2671 9 237 33
+267a 6 46 19
+2680 5 80 45
+2685 4 242 33
+2689 5 80 45
+268e 7 48 45
+2695 4 242 33
+2699 c 246 33
+26a5 5 80 45
+26aa 4 242 33
+26ae 5 80 45
+26b3 7 48 45
+26ba 4 242 33
+26be c 246 33
+26ca 3 66 45
+26cd 8 67 45
+26d5 3 66 45
+26d8 8 67 45
+FUNC 26e0 92 0 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
+26e0 5 140 36
+26e5 5 80 45
+26ea 9 140 36
+26f3 3 80 45
+26f6 3 140 36
+26f9 4 144 36
+26fd 2 80 45
+26ff b 48 45
+270a 5 144 36
+270f 11 167 36
+2720 9 147 36
+2729 3 80 45
+272c 4 160 36
+2730 2 80 45
+2732 b 48 45
+273d 5 160 36
+2742 6 164 36
+2748 a 167 36
+2752 4 164 36
+2756 4 167 36
+275a 2 164 36
+275c 3 66 45
+275f 8 67 45
+2767 3 66 45
+276a 8 67 45
+FUNC 2780 f5 0 google_breakpad::ExceptionHandler::InstallHandlersLocked()
+2780 d 241 17
+278d 16 240 17
+27a3 2 241 17
+27a5 7 240 17
+27ac 28 246 17
+27d4 6 245 17
+27da c 252 17
+27e6 a 251 17
+27f0 7 240 17
+27f7 3 251 17
+27fa 3 240 17
+27fd 8 252 17
+2805 f 256 17
+2814 5 255 17
+2819 7 258 17
+2820 b 259 17
+282b 4 258 17
+282f 10 262 17
+283f 5 261 17
+2844 7 267 17
+284b 7 269 17
+2852 5 268 17
+2857 10 269 17
+2867 2 242 17
+2869 9 269 17
+2872 2 242 17
+2874 1 269 17
+FUNC 2880 8b 0 google_breakpad::ExceptionHandler::RestoreHandlersLocked()
+2880 9 275 17
+2889 22 274 17
+28ab 2 275 17
+28ad 4 274 17
+28b1 26 279 17
+28d7 6 278 17
+28dd 7 283 17
+28e4 1c 284 17
+2900 b 280 17
+FUNC 2910 104 0 google_breakpad::ExceptionHandler::SendContinueSignalToChild()
+2910 22 495 17
+2932 a 2773 15
+293c 18 2773 15
+2954 5 499 17
+2959 1f 506 17
+2978 8 495 17
+2980 11 502 17
+2991 28 503 17
+29b9 a 506 17
+29c3 7 504 17
+29ca a 506 17
+29d4 5 504 17
+29d9 4 506 17
+29dd b 504 17
+29e8 10 2773 15
+29f8 3 498 17
+29fb 5 2773 15
+2a00 14 498 17
+FUNC 2a20 467 0 google_breakpad::ExceptionHandler::GenerateDump(google_breakpad::ExceptionHandler::CrashContext*)
+2a20 2b 431 17
+2a4b 4 106 14
+2a4f 5 432 17
+2a54 d 433 17
+2a61 37 492 17
+2a98 5 60 12
+2a9d d 2816 15
+2aaa 5 60 12
+2aaf 2 86 12
+2ab1 3 60 12
+2ab4 9 86 12
+2abd 8 2816 15
+2ac5 3 86 12
+2ac8 5 2816 15
+2acd 3 86 12
+2ad0 27 2816 15
+2af7 9 439 17
+2b00 6 120 12
+2b06 4 438 17
+2b0a 7 124 12
+2b11 4 125 12
+2b15 6 438 17
+2b1b e 442 17
+2b29 7 441 17
+2b30 5 442 17
+2b35 4 446 17
+2b39 5 445 17
+2b3e a 446 17
+2b48 5 447 17
+2b4d 5 448 17
+2b52 4 447 17
+2b56 4 455 17
+2b5a 9 449 17
+2b63 21 3363 15
+2b84 11 461 17
+2b95 2e 462 17
+2bc3 11 463 17
+2bd4 57 1928 15
+2c2b 6 1930 15
+2c31 3 1928 15
+2c34 18 1930 15
+2c4c 25 2715 15
+2c71 8 473 17
+2c79 5 475 17
+2c7e 3 2877 15
+2c81 5 475 17
+2c86 26 2877 15
+2cac c 2877 15
+2cb8 5 474 17
+2cbd 5 474 17
+2cc2 57 2629 15
+2d19 9 481 17
+2d22 c 488 17
+2d2e b 488 17
+2d39 7 488 17
+2d40 9 489 17
+2d49 12 490 17
+2d5b 10 2701 15
+2d6b 3 135 12
+2d6e 20 2701 15
+2d8e 12 134 12
+2da0 3 474 17
+2da3 2 2877 15
+2da5 b 474 17
+2db0 10 431 17
+2dc0 11 483 17
+2dd1 2e 484 17
+2dff 11 485 17
+2e10 20 488 17
+2e30 10 455 17
+2e40 b 439 17
+2e4b 9 2701 15
+2e54 3 135 12
+2e57 20 2701 15
+2e77 10 134 12
+FUNC 2e90 1a6 0 google_breakpad::ExceptionHandler::HandleSignal(int, siginfo*, void*)
+2e90 11 385 17
+2ea1 3 390 17
+2ea4 8 393 17
+2eac 31 2715 15
+2edd 3 397 17
+2ee0 10 398 17
+2ef0 92 397 17
+2f82 3 398 17
+2f85 c 402 17
+2f91 10 405 17
+2fa1 13 408 17
+2fb4 9 409 17
+2fbd 14 410 17
+2fd1 d 414 17
+2fde 19 415 17
+2ff7 5 411 17
+2ffc c 415 17
+3008 2e 393 17
+FUNC 3040 68 0 google_breakpad::ExceptionHandler::HandleSignal(int, siginfo*, void*)
+3040 16 385 17
+3056 3 386 17
+3059 6 385 17
+305f 5 386 17
+3064 a 386 17
+306e 3a 415 17
+FUNC 30b0 56 0 google_breakpad::ExceptionHandler::SimulateSignalDelivery(int)
+30b0 7 419 17
+30b7 7 420 17
+30be 4 419 17
+30c2 5 420 17
+30c7 4 419 17
+30cb 3 420 17
+30ce 5 424 17
+30d3 8 426 17
+30db 4 424 17
+30df 5 426 17
+30e4 1a 427 17
+30fe 8 428 17
+FUNC 3110 18b 0 google_breakpad::ExceptionHandler::SignalHandler(int, siginfo*, void*)
+3110 19 293 17
+3129 c 295 17
+3135 10 308 17
+3145 e 308 17
+3153 b 327 17
+315e 3 688 17
+3161 b 626 43
+316c 9 327 17
+3175 1a 293 17
+318f 15 328 17
+31a4 18 327 17
+31bc 4 336 17
+31c0 9 337 17
+31c9 c 342 17
+31d5 7 344 17
+31dc 14 359 17
+31f0 10 339 17
+3200 d 311 17
+320d a 312 17
+3217 7 314 17
+321e 7 317 17
+3225 b 315 17
+3230 4 314 17
+3234 a 317 17
+323e 12 322 17
+3250 14 348 17
+3264 12 107 17
+3276 8 348 17
+327e 12 352 17
+3290 b 320 17
+FUNC 32a0 e0 0 google_breakpad::ExceptionHandler::WaitForContinueSignal()
+32a0 a 510 17
+32aa 2 2724 15
+32ac 13 510 17
+32bf 3 510 17
+32c2 5 2724 15
+32c7 14 2724 15
+32db 5 514 17
+32e0 20 521 17
+3300 8 510 17
+3308 11 517 17
+3319 28 518 17
+3341 17 519 17
+3358 10 2724 15
+3368 3 513 17
+336b 5 2724 15
+3370 10 513 17
+FUNC 3380 58 0 google_breakpad::ExceptionHandler::DoDump(int, void const*, unsigned long)
+3380 4 526 17
+3384 3 526 17
+3387 3 688 17
+338a 6 526 17
+3390 4 534 17
+3394 5 527 17
+3399 17 534 17
+33b0 8 543 17
+33b8 1b 542 17
+33d3 5 543 17
+FUNC 33e0 28 0 google_breakpad::ExceptionHandler::ThreadEntry(void*)
+33e0 1 372 17
+33e1 3 372 17
+33e4 9 377 17
+33ed 19 380 17
+3406 2 381 17
+FUNC 3410 153 0 google_breakpad::ExceptionHandler::WriteMinidump()
+3410 8 561 17
+3418 5 562 17
+341d 5 561 17
+3422 2 562 17
+3424 8 688 17
+342c 5 568 17
+3431 25 2715 15
+3456 f 579 17
+3465 2 581 17
+3467 4 580 17
+346b d 629 17
+3478 3 688 17
+347b 9 562 17
+3484 9 571 17
+348d 13 572 17
+34a0 18 608 17
+34b8 5 2673 15
+34bd 3 608 17
+34c0 16 2673 15
+34d6 20 2660 15
+34f6 c 613 17
+3502 7 610 17
+3509 6 613 17
+350f 8 620 17
+3517 5 628 17
+351c 8 614 17
+3524 5 620 17
+3529 5 628 17
+352e 12 629 17
+3540 10 3391 15
+3550 13 567 17
+FUNC 3570 cf 0 google_breakpad::ExceptionHandler::AddMappingInfo(std::string const&, unsigned char const*, unsigned long, unsigned long, unsigned long)
+3570 1b 635 17
+358b 3 640 17
+358e 3 635 17
+3591 8 644 17
+3599 5 640 17
+359e 3 635 17
+35a1 5 640 17
+35a6 4 637 17
+35aa 5 638 17
+35af 4 758 41
+35b3 5 639 17
+35b8 5 640 17
+35bd 8 641 17
+35c5 e 644 17
+35d3 5 94 46
+35d8 19 645 17
+35f1 5 94 46
+35f6 17 120 46
+360d 3 1526 41
+3610 20 647 17
+3630 3 1526 41
+3633 7 647 17
+363a 5 1526 41
+FUNC 3640 5d 0 google_breakpad::ExceptionHandler::RegisterAppMemory(void*, unsigned long)
+3640 6 649 17
+3646 4 758 41
+364a 1 649 17
+364b 4 688 17
+364f 3 649 17
+3652 14 135 37
+3666 3 156 41
+3669 5 135 37
+366e a 94 46
+3678 e 120 46
+3686 1 661 17
+3687 6 1526 41
+368d 3 661 17
+3690 8 1526 41
+3698 5 661 17
+FUNC 36a0 31 0 google_breakpad::ExceptionHandler::UnregisterAppMemory(void*)
+36a0 1 663 17
+36a1 4 688 17
+36a5 4 758 41
+36a9 d 135 37
+36b6 3 156 41
+36b9 5 135 37
+36be 2 669 17
+36c0 8 1542 41
+36c8 3 100 46
+36cb 1 669 17
+36cc 5 100 46
+FUNC 36e0 179 0 google_breakpad::ExceptionHandler::WriteMinidumpForChild(int, int, std::string const&, bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*)
+36e0 28 676 17
+3708 5 54 2
+370d 3 676 17
+3710 3 54 2
+3713 6 676 17
+3719 d 54 2
+3726 7 272 33
+372d 12 54 2
+373f 9 272 33
+3748 4 713 33
+374c b 55 2
+3757 a 679 17
+3761 10 682 17
+3771 4 680 17
+3775 5 685 17
+377a 12 685 17
+378c 9 536 33
+3795 9 237 33
+379e 9 536 33
+37a7 5 237 33
+37ac 2c 686 17
+37d8 8 685 17
+37e0 4 683 17
+37e4 1f 55 2
+3803 e 242 33
+3811 f 246 33
+3820 12 242 33
+3832 12 246 33
+3844 15 685 17
+FUNC 3860 336 0 google_breakpad::ExceptionHandler::~ExceptionHandler()
+3860 d 226 17
+386d f 227 17
+387c b 229 17
+3887 8 728 39
+388f 9 900 39
+3898 4 158 37
+389c 4 900 39
+38a0 9 160 37
+38a9 9 162 37
+38b2 a 166 37
+38bc a 170 37
+38c6 12 174 37
+38d8 6 162 37
+38de a 166 37
+38e8 a 170 37
+38f2 a 174 37
+38fc 3 750 39
+38ff 4 226 17
+3903 4 160 37
+3907 3 226 17
+390a c 160 37
+3916 1e 179 37
+3934 c 728 39
+3940 4 781 39
+3944 8 138 44
+394c a 364 38
+3956 5 365 38
+395b 8 140 44
+3963 d 231 17
+3970 8 235 17
+3978 4 436 41
+397c 5 379 41
+3981 4 436 41
+3985 5 379 41
+398a 4 536 33
+398e 7 237 33
+3995 4 536 33
+3999 9 237 33
+39a2 8 536 33
+39aa 9 237 33
+39b3 e 75 14
+39c1 f 236 17
+39d0 20 366 38
+39f0 9 163 17
+39f9 a 233 17
+3a03 8 2759 15
+3a0b 5 167 17
+3a10 20 2759 15
+3a30 29 750 39
+3a59 9 182 37
+3a62 4 750 39
+3a66 9 186 37
+3a6f 4 750 39
+3a73 c 728 39
+3a7f 9 167 17
+3a88 e 172 17
+3a96 5 184 17
+3a9b c 185 17
+3aa7 8 728 39
+3aaf 8 162 37
+3ab7 1b 750 39
+3ad2 8 173 17
+3ada 7 2759 15
+3ae1 2 173 17
+3ae3 16 2759 15
+3af9 12 179 17
+3b0b 8 178 17
+3b13 7 179 17
+3b1a 7 436 41
+3b21 5 379 41
+3b26 4 436 41
+3b2a 5 379 41
+3b2f 9 226 17
+3b38 16 75 14
+3b4e 12 242 33
+3b60 12 246 33
+3b72 12 242 33
+3b84 12 246 33
+FUNC 3ba0 31c 0 google_breakpad::ExceptionHandler::ExceptionHandler(google_breakpad::MinidumpDescriptor const&, bool (*)(void*), bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*, bool, int)
+3ba0 5 197 17
+3ba5 4 207 17
+3ba9 20 197 17
+3bc9 7 207 17
+3bd0 3 197 17
+3bd3 4 207 17
+3bd7 8 71 14
+3bdf 3 207 17
+3be2 4 197 17
+3be6 5 207 17
+3beb 8 387 41
+3bf3 2 208 17
+3bf5 8 207 17
+3bfd 4 387 41
+3c01 4 388 41
+3c05 4 387 41
+3c09 4 388 41
+3c0d 6 208 17
+3c13 7 209 17
+3c1a 4 81 14
+3c1e 3 209 17
+3c21 5 81 14
+3c26 a 82 14
+3c30 4 83 14
+3c34 9 211 17
+3c3d c 214 17
+3c49 12 215 17
+3c5b 5 217 17
+3c60 d 135 17
+3c6d 5 219 17
+3c72 9 221 17
+3c7b e 883 43
+3c89 10 120 46
+3c99 8 887 43
+3ca1 c 222 17
+3cad 27 223 17
+3cd4 9 211 17
+3cdd a 211 17
+3ce7 11 212 17
+3cf8 7 144 17
+3cff 21 138 17
+3d20 21 139 17
+3d41 6 144 17
+3d47 2d 2759 15
+3d74 8 150 17
+3d7c 7 151 17
+3d83 7 150 17
+3d8a 2a 2759 15
+3db4 14 154 17
+3dc8 8 120 46
+3dd0 28 148 17
+3df8 18 893 43
+3e10 a 216 17
+3e1a 17 88 43
+3e31 f 216 17
+3e40 30 144 17
+3e70 a 153 17
+3e7a f 157 17
+3e89 16 75 14
+3e9f 13 379 41
+3eb2 a 207 17
+FUNC 3ec0 167 0 google_breakpad::ExceptionHandler::WriteMinidump(std::string const&, bool (*)(google_breakpad::MinidumpDescriptor const&, void*, bool), void*)
+3ec0 1e 548 17
+3ede 5 54 2
+3ee3 3 548 17
+3ee6 3 54 2
+3ee9 3 548 17
+3eec d 54 2
+3ef9 7 272 33
+3f00 12 54 2
+3f12 9 272 33
+3f1b 4 713 33
+3f1f 7 55 2
+3f26 21 550 17
+3f47 16 551 17
+3f5d 9 536 33
+3f66 5 237 33
+3f6b 9 536 33
+3f74 5 237 33
+3f79 2a 552 17
+3fa3 1f 55 2
+3fc2 e 242 33
+3fd0 f 246 33
+3fdf 12 242 33
+3ff1 12 246 33
+4003 24 551 17
+FUNC 4030 2f 0 std::_List_base<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> >::_M_clear()
+4030 9 66 35
+4039 3 70 35
+403c c 71 35
+4048 3 74 35
+404b 5 100 46
+4050 3 71 35
+4053 3 74 35
+4056 2 71 35
+4058 7 82 35
+FUNC 4060 2f 0 std::_List_base<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> >::_M_clear()
+4060 9 66 35
+4069 3 70 35
+406c c 71 35
+4078 3 74 35
+407b 5 100 46
+4080 3 71 35
+4083 3 74 35
+4086 2 71 35
+4088 7 82 35
+FUNC 4090 1ba 0 std::vector<google_breakpad::ExceptionHandler*, std::allocator<google_breakpad::ExceptionHandler*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpad::ExceptionHandler**, std::vector<google_breakpad::ExceptionHandler*, std::allocator<google_breakpad::ExceptionHandler*> > >, google_breakpad::ExceptionHandler* const&)
+4090 28 316 44
+40b8 a 320 44
+40c2 10 120 46
+40d2 8 325 44
+40da 3 327 44
+40dd 4 329 44
+40e1 7 559 38
+40e8 5 560 38
+40ed f 561 38
+40fc 4 333 44
+4100 28 391 44
+4128 8 120 46
+4130 a 626 43
+413a 9 215 38
+4143 4 1308 43
+4147 9 1309 43
+4150 3 900 39
+4153 7 342 44
+415a 3 900 39
+415d 4 342 44
+4161 15 94 46
+4176 4 351 44
+417a b 120 46
+4185 3 360 44
+4188 3 364 38
+418b 3 365 38
+418e 7 364 38
+4195 5 365 38
+419a 13 366 38
+41ad 4 364 38
+41b1 5 365 44
+41b6 3 365 38
+41b9 7 364 38
+41c0 5 365 38
+41c5 16 366 38
+41db 3 384 44
+41de 3 367 38
+41e1 5 174 43
+41e6 5 100 46
+41eb 3 387 44
+41ee 3 389 44
+41f1 4 388 44
+41f5 b 389 44
+4200 3 900 39
+4203 6 342 44
+4209 3 900 39
+420c 9 342 44
+4215 13 1309 43
+4228 6 900 39
+422e 3 169 43
+4231 7 900 39
+4238 4 342 44
+423c e 169 43
+FUNC 4250 7d 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor(google_breakpad::MinidumpDescriptor const&)
+4250 e 38 18
+425e 2 42 18
+4260 6 38 18
+4266 f 42 18
+4275 7 272 33
+427c 8 42 18
+4284 8 272 33
+428c 8 42 18
+4294 4 713 33
+4298 7 46 18
+429f f 47 18
+42ae 1f 46 18
+FUNC 42d0 232 0 google_breakpad::MinidumpDescriptor::UpdatePath()
+42d0 b 65 18
+42db 9 66 18
+42e4 4 713 33
+42e8 b 66 18
+42f3 e 70 18
+4301 1f 71 18
+4320 1b 70 18
+433b 4 713 33
+433f 4 74 18
+4343 10 801 33
+4353 4 75 18
+4357 a 2402 33
+4361 16 1006 33
+4377 f 2402 33
+4386 1c 261 34
+43a2 8 1006 33
+43aa 1c 261 34
+43c6 5 1006 33
+43cb f 2402 33
+43da 16 1006 33
+43f0 d 544 33
+43fd 5 536 33
+4402 7 237 33
+4409 4 536 33
+440d 9 237 33
+4416 9 536 33
+441f 5 237 33
+4424 9 536 33
+442d 5 237 33
+4432 8 76 18
+443a 9 77 18
+4443 1f 66 18
+4462 e 242 33
+4470 f 246 33
+447f e 242 33
+448d f 246 33
+449c 12 242 33
+44ae 12 246 33
+44c0 42 75 18
+FUNC 4510 85 0 google_breakpad::MinidumpDescriptor::operator=(google_breakpad::MinidumpDescriptor const&)
+4510 9 50 18
+4519 4 713 33
+451d 7 51 18
+4524 5 53 18
+4529 4 54 18
+452d 2 53 18
+452f 4 54 18
+4533 5 544 33
+4538 4 713 33
+453c 4 55 18
+4540 d 801 33
+454d 7 56 18
+4554 8 58 18
+455c 8 59 18
+4564 8 61 18
+456c a 63 18
+4576 1f 51 18
+FUNC 45a0 38 0 logger::write(char const*, unsigned long)
+45a0 7 40 20
+45a7 1a 2773 15
+45c1 7 46 20
+45c8 e 2773 15
+45d6 2 46 20
+FUNC 45e0 5d 0 MinidumpWriter::~MinidumpWriter
+45e0 e 436 23
+45ee 3 439 23
+45f1 3 436 23
+45f4 4 440 23
+45f8 2 439 23
+45fa a 441 23
+4604 3 436 23
+4607 e 442 23
+4615 b 436 23
+4620 d 440 23
+462d 10 436 23
+FUNC 4640 1e 0 google_breakpad::TypedMDRVA<MDRawDirectory>::CopyIndex(unsigned int, MDRawDirectory*)
+4640 5 73 8
+4645 13 76 8
+4658 6 72 8
+FUNC 4660 15e5 0 MinidumpWriter::WriteThreadListStream
+4660 6 683 23
+4666 4 686 23
+466a e 683 23
+4678 4 684 23
+467c 5 686 23
+4681 14 161 9
+4695 b 212 9
+46a0 8 626 43
+46a8 3 161 9
+46ab b 212 9
+46b6 4 626 43
+46ba 7 161 9
+46c1 4 684 23
+46c5 2 687 23
+46c7 9 66 8
+46d0 f 68 8
+46df b 67 8
+46ea d 68 8
+46f7 8 687 23
+46ff 8 176 9
+4707 5 693 23
+470c 7 690 23
+4713 3 176 9
+4716 7 691 23
+471d 8 693 23
+4725 3 691 23
+4728 9 701 23
+4731 4 703 23
+4735 3 705 23
+4738 3 703 23
+473b 7 705 23
+4742 9 706 23
+474b 8 700 23
+4753 e 710 23
+4761 10 223 9
+4771 5 710 23
+4776 a 223 9
+4780 14 712 23
+4794 4 713 23
+4798 8 766 43
+47a0 7 713 23
+47a7 3 719 23
+47aa 7 713 23
+47b1 6 719 23
+47b7 19 780 23
+47d0 5 785 23
+47d5 6 784 23
+47db 2 785 23
+47dd 9 786 23
+47e6 8 788 23
+47ee 1e 658 23
+480c 8 161 9
+4814 4 660 23
+4818 20 161 9
+4838 f 660 23
+4847 8 662 23
+484f 16 664 23
+4865 2 688 23
+4867 a 216 9
+4871 21 92 8
+4892 1e 814 23
+48b0 5 666 23
+48b5 4 42 6
+48b9 3 71 12
+48bc 3 666 23
+48bf 4 42 6
+48c3 6 71 12
+48c9 20 74 12
+48e9 3 75 12
+48ec 2 76 12
+48ee 4 78 12
+48f2 3 75 12
+48f5 8 77 12
+48fd 3 76 12
+4900 19 668 23
+4919 19 186 9
+4932 8 176 9
+493a 8 883 43
+4942 5 671 23
+4947 7 176 9
+494e 7 672 23
+4955 8 671 23
+495d 7 672 23
+4964 6 883 43
+496a 14 120 46
+497e 12 887 43
+4990 b 719 23
+499b 6 721 23
+49a1 17 719 23
+49b8 4 677 23
+49bc 8 675 23
+49c4 3 655 23
+49c7 b 676 23
+49d2 8 677 23
+49da 8 212 9
+49e2 5 161 9
+49e7 7 212 9
+49ee 5 47 8
+49f3 8 161 9
+49fb 3 212 9
+49fe 8 47 8
+4a06 14 161 9
+4a1a b 46 8
+4a25 5 47 8
+4a2a 8 792 23
+4a32 11 794 23
+4a43 8 226 23
+4a4b b 224 23
+4a56 3 796 23
+4a59 15 277 23
+4a6e 8 226 23
+4a76 10 228 23
+4a86 10 229 23
+4a96 10 230 23
+4aa6 10 231 23
+4ab6 10 233 23
+4ac6 f 234 23
+4ad5 10 236 23
+4ae5 10 237 23
+4af5 10 238 23
+4b05 10 239 23
+4b15 10 242 23
+4b25 10 243 23
+4b35 10 245 23
+4b45 10 246 23
+4b55 10 247 23
+4b65 10 248 23
+4b75 8 253 23
+4b7d 8 250 23
+4b85 8 253 23
+4b8d 8 254 23
+4b95 8 250 23
+4b9d 8 252 23
+4ba5 8 254 23
+4bad 8 255 23
+4bb5 8 252 23
+4bbd 8 255 23
+4bc5 10 256 23
+4bd5 10 257 23
+4be5 10 258 23
+4bf5 10 259 23
+4c05 10 260 23
+4c15 10 261 23
+4c25 10 262 23
+4c35 10 264 23
+4c45 10 266 23
+4c55 10 267 23
+4c65 f 268 23
+4c74 10 269 23
+4c84 8 270 23
+4c8c a 271 23
+4c96 a 273 23
+4ca0 7 270 23
+4ca7 f 272 23
+4cb6 e 274 23
+4cc4 e 275 23
+4cd2 100 276 23
+4dd2 3 277 23
+4dd5 2 796 23
+4dd7 8 42 6
+4ddf a 545 23
+4de9 a 555 23
+4df3 3 543 23
+4df6 15 545 23
+4e0b 9 553 23
+4e14 3 554 23
+4e17 9 555 23
+4e20 8 544 23
+4e28 3 554 23
+4e2b 5 545 23
+4e30 4 799 23
+4e34 7 798 23
+4e3b 8 176 9
+4e43 4 799 23
+4e47 e 798 23
+4e55 e 799 23
+4e63 a 216 9
+4e6d 1e 92 8
+4e8b 8 83 8
+4e93 f 810 23
+4ea2 6 83 8
+4ea8 1f 87 8
+4ec7 a 710 23
+4ed1 f 813 23
+4ee0 3 800 23
+4ee3 3 801 23
+4ee6 3 800 23
+4ee9 b 801 23
+4ef4 1c 157 5
+4f10 4 1187 23
+4f14 e 658 23
+4f22 7 1187 23
+4f29 10 658 23
+4f39 8 161 9
+4f41 d 664 23
+4f4e 1b 161 9
+4f69 d 664 23
+4f76 5 666 23
+4f7b 4 42 6
+4f7f 3 71 12
+4f82 3 666 23
+4f85 6 71 12
+4f8b 25 74 12
+4fb0 3 75 12
+4fb3 2 76 12
+4fb5 3 75 12
+4fb8 2 77 12
+4fba 4 75 12
+4fbe 6 77 12
+4fc4 5 76 12
+4fc9 1a 668 23
+4fe3 1d 186 9
+5000 8 176 9
+5008 8 883 43
+5010 5 671 23
+5015 7 176 9
+501c 7 672 23
+5023 8 671 23
+502b 7 672 23
+5032 6 883 43
+5038 14 120 46
+504c e 887 43
+505a 4 677 23
+505e 8 675 23
+5066 b 676 23
+5071 8 655 23
+5079 8 677 23
+5081 4 1191 23
+5085 6 734 23
+508b 7 1191 23
+5092 4 734 23
+5096 4 42 6
+509a 4 626 43
+509e 2 734 23
+50a0 7 626 43
+50a7 9 734 23
+50b0 4 735 23
+50b4 8 736 23
+50bc 10 736 23
+50cc e 734 23
+50da 8 212 9
+50e2 5 161 9
+50e7 7 212 9
+50ee 5 47 8
+50f3 8 161 9
+50fb 3 212 9
+50fe 8 47 8
+5106 14 161 9
+511a b 46 8
+5125 5 47 8
+512a 8 770 23
+5132 11 772 23
+5143 8 773 23
+514b b 284 23
+5156 f 286 23
+5165 3 288 23
+5168 c 289 23
+5174 7 291 23
+517b c 288 23
+5187 7 291 23
+518e f 293 23
+519d f 294 23
+51ac f 295 23
+51bb f 296 23
+51ca f 298 23
+51d9 c 299 23
+51e5 c 300 23
+51f1 c 301 23
+51fd c 302 23
+5209 c 303 23
+5215 c 304 23
+5221 c 305 23
+522d c 306 23
+5239 c 307 23
+5245 c 308 23
+5251 c 309 23
+525d f 311 23
+526c b 313 23
+5277 c 314 23
+5283 b 315 23
+528e c 316 23
+529a b 317 23
+52a5 4 318 23
+52a9 a 319 23
+52b3 a 320 23
+52bd 7 318 23
+52c4 a 321 23
+52ce a 322 23
+52d8 4 323 23
+52dc 8 324 23
+52e4 c0 323 23
+53a4 a 324 23
+53ae 8 323 23
+53b6 8 324 23
+53be 7 774 23
+53c5 8 42 6
+53cd a 545 23
+53d7 e 555 23
+53e5 3 543 23
+53e8 15 545 23
+53fd 9 553 23
+5406 3 554 23
+5409 9 555 23
+5412 8 544 23
+541a 3 554 23
+541d b 545 23
+5428 8 216 9
+5430 7 776 23
+5437 8 176 9
+543f 7 776 23
+5446 3 777 23
+5449 7 776 23
+5450 3 777 23
+5453 6 216 9
+5459 1f 92 8
+5478 4 743 23
+547c 5 161 9
+5481 c 755 23
+548d 8 161 9
+5495 3 743 23
+5498 c 161 9
+54a4 5 755 23
+54a9 4 743 23
+54ad 4 746 23
+54b1 8 161 9
+54b9 3 748 23
+54bc 8 743 23
+54c4 6 748 23
+54ca 2 755 23
+54cc 7 748 23
+54d3 d 755 23
+54e0 8 758 23
+54e8 4 42 6
+54ec 9 71 12
+54f5 25 74 12
+551a 3 75 12
+551d 3 76 12
+5520 3 75 12
+5523 8 77 12
+552b 5 76 12
+5530 1c 763 23
+554c 7 764 23
+5553 14 186 9
+5567 8 176 9
+556f 8 883 43
+5577 7 176 9
+557e e 765 23
+558c 6 883 43
+5592 1c 120 46
+55ae 12 887 43
+55c0 e 86 12
+55ce f 2816 15
+55dd 3 86 12
+55e0 5 2816 15
+55e5 9 86 12
+55ee 34 2816 15
+5622 1e 89 12
+5640 1a 576 23
+565a 8 584 23
+5662 6 591 23
+5668 48 584 23
+56b0 8 591 23
+56b8 8 595 23
+56c0 5 597 23
+56c5 5 596 23
+56ca 8 590 23
+56d2 8 592 23
+56da 8 585 23
+56e2 8 586 23
+56ea 8 587 23
+56f2 8 588 23
+56fa 8 589 23
+5702 8 593 23
+570a 8 594 23
+5712 8 596 23
+571a 8 597 23
+5722 5 598 23
+5727 5 599 23
+572c 8 600 23
+5734 8 598 23
+573c 14 599 23
+5750 1a 576 23
+576a 8 584 23
+5772 6 591 23
+5778 4d 584 23
+57c5 8 593 23
+57cd 8 594 23
+57d5 5 595 23
+57da 5 596 23
+57df 8 590 23
+57e7 8 591 23
+57ef 8 592 23
+57f7 8 585 23
+57ff 8 586 23
+5807 8 587 23
+580f 8 588 23
+5817 8 589 23
+581f 8 595 23
+5827 8 596 23
+582f 5 597 23
+5834 5 598 23
+5839 5 599 23
+583e 8 600 23
+5846 8 597 23
+584e 8 598 23
+5856 d 599 23
+5863 11 86 12
+5874 f 2816 15
+5883 3 86 12
+5886 5 2816 15
+588b 9 86 12
+5894 3a 2816 15
+58ce 1d 89 12
+58eb 11 86 12
+58fc f 2816 15
+590b 3 86 12
+590e 5 2816 15
+5913 9 86 12
+591c 38 2816 15
+5954 14 89 12
+5968 d 707 23
+5975 c 120 12
+5981 a 124 12
+598b 4 125 12
+598f a 93 12
+5999 3 124 12
+599c 3 125 12
+599f 5 126 12
+59a4 16 93 12
+59ba 5 94 12
+59bf 5 93 12
+59c4 11 94 12
+59d5 5 96 12
+59da 11 94 12
+59eb 9 96 12
+59f4 9 78 12
+59fd e 79 12
+5a0b 8 72 12
+5a13 4 766 23
+5a17 16 893 43
+5a2d c 120 12
+5a39 9 124 12
+5a42 5 125 12
+5a47 4 93 12
+5a4b 4 124 12
+5a4f 3 93 12
+5a52 4 125 12
+5a56 4 124 12
+5a5a 4 126 12
+5a5e 17 93 12
+5a75 5 94 12
+5a7a 3 93 12
+5a7d 15 94 12
+5a92 a 96 12
+5a9c 8 94 12
+5aa4 d 96 12
+5ab1 a 120 12
+5abb 5 124 12
+5ac0 e 93 12
+5ace 3 124 12
+5ad1 4 125 12
+5ad5 5 93 12
+5ada 3 125 12
+5add 5 93 12
+5ae2 5 126 12
+5ae7 8 93 12
+5aef 5 94 12
+5af4 5 93 12
+5af9 f 94 12
+5b08 4 96 12
+5b0c a 94 12
+5b16 d 96 12
+5b23 9 78 12
+5b2c e 79 12
+5b3a 7 78 12
+5b41 d 79 12
+5b4e e 216 9
+5b5c 26 92 8
+5b82 e 216 9
+5b90 26 92 8
+5bb6 15 72 12
+5bcb c 673 23
+5bd7 e 893 43
+5be5 c 673 23
+5bf1 13 893 43
+5c04 10 807 23
+5c14 1a 813 23
+5c2e 17 777 23
+FUNC 5c50 1d12 0 MinidumpWriter::Dump
+5c50 2 444 23
+5c52 4 449 23
+5c56 5 47 8
+5c5b 12 444 23
+5c6d 3 42 6
+5c70 8 47 8
+5c78 14 161 9
+5c8c 18 212 9
+5ca4 7 161 9
+5cab 18 212 9
+5cc3 1b 161 9
+5cde 2c 212 9
+5d0a b 46 8
+5d15 5 47 8
+5d1a 8 451 23
+5d22 d 60 8
+5d2f b 59 8
+5d3a 5 60 8
+5d3f 2 454 23
+5d41 4 453 23
+5d45 a 216 9
+5d4f 21 92 8
+5d70 a 216 9
+5d7a 21 92 8
+5d9b 15 534 23
+5db0 8 452 23
+5db8 8 223 9
+5dc0 c 455 23
+5dcc 2 459 23
+5dce b 457 23
+5dd9 b 458 23
+5de4 c 459 23
+5df0 7 461 23
+5df7 b 466 23
+5e02 b 460 23
+5e0d 7 461 23
+5e14 d 466 23
+5e21 8 73 8
+5e29 f 468 23
+5e38 6 73 8
+5e3e 12 76 8
+5e50 4 872 23
+5e54 4 873 23
+5e58 4 42 6
+5e5c 4 626 43
+5e60 3 42 6
+5e63 7 626 43
+5e6a 16 80 40
+5e80 3 236 41
+5e83 4 83 40
+5e87 5 80 40
+5e8c 14 875 23
+5ea0 9 858 23
+5ea9 c 875 23
+5eb5 4 876 23
+5eb9 11 841 23
+5eca 9 877 23
+5ed3 b 853 23
+5ede c 858 23
+5eea 3 236 41
+5eed 5 853 23
+5ef2 5 878 23
+5ef7 4 161 9
+5efb 2 882 23
+5efd 14 161 9
+5f11 b 212 9
+5f1c 7 161 9
+5f23 6 882 23
+5f29 2 883 23
+5f2b 8 68 8
+5f33 b 67 8
+5f3e 1a 68 8
+5f58 8 888 23
+5f60 c 176 9
+5f6c 2 898 23
+5f6e 4 872 23
+5f72 b 892 23
+5f7d 7 894 23
+5f84 7 176 9
+5f8b 11 893 23
+5f9c 6 898 23
+5fa2 8 954 23
+5faa 3 898 23
+5fad 8 897 23
+5fb5 b 954 23
+5fc0 d 858 23
+5fcd b 898 23
+5fd8 9 42 6
+5fe1 8 899 23
+5fe9 11 841 23
+5ffa 9 900 23
+6003 b 853 23
+600e 13 858 23
+6021 3 236 41
+6024 5 853 23
+6029 14 929 23
+603d 3 931 23
+6040 7 933 23
+6047 8 931 23
+604f b 932 23
+605a 8 933 23
+6062 5 936 23
+6067 5 937 23
+606c 19 938 23
+6085 4 940 23
+6089 5 937 23
+608e 4 942 23
+6092 14 161 9
+60a6 5 942 23
+60ab 12 944 23
+60bd 5 949 23
+60c2 4 161 9
+60c6 14 949 23
+60da 7 161 9
+60e1 d 949 23
+60ee 15 962 23
+6103 b 953 23
+610e 5 962 23
+6113 8 956 23
+611b c 964 23
+6127 a 968 23
+6131 8 965 23
+6139 9 968 23
+6142 21 186 9
+6163 8 176 9
+616b e 974 23
+6179 7 176 9
+6180 e 971 23
+618e 9 974 23
+6197 4 906 23
+619b 4 976 23
+619f b 906 23
+61aa 8 83 8
+61b2 7 976 23
+61b9 7 906 23
+61c0 6 83 8
+61c6 28 87 8
+61ee 12 906 23
+6200 2 914 23
+6202 a 216 9
+620c 22 92 8
+622e 8 470 23
+6236 8 73 8
+623e f 472 23
+624d 6 73 8
+6253 15 76 8
+6268 4 818 23
+626c 3 42 6
+626f 9 818 23
+6278 18 834 23
+6290 2 76 12
+6292 6 75 12
+6298 2 77 12
+629a 3 76 12
+629d 2 77 12
+629f 7 78 12
+62a6 a 79 12
+62b0 13 824 23
+62c3 4 161 9
+62c7 c 827 23
+62d3 1b 161 9
+62ee d 827 23
+62fb 1b 186 9
+6316 8 176 9
+631e 8 883 43
+6326 4 832 23
+632a 7 176 9
+6331 7 833 23
+6338 8 832 23
+6340 7 833 23
+6347 6 883 43
+634d 14 120 46
+6361 8 887 43
+6369 4 236 41
+636d a 818 23
+6377 8 822 23
+637f 3 71 12
+6382 3 822 23
+6385 6 71 12
+638b 1c 74 12
+63a7 11 86 12
+63b8 f 2816 15
+63c7 3 86 12
+63ca 8 2816 15
+63d2 9 86 12
+63db 35 2816 15
+6410 15 89 12
+6425 8 120 12
+642d 9 124 12
+6436 4 125 12
+643a 8 93 12
+6442 3 124 12
+6445 3 125 12
+6448 4 126 12
+644c 16 93 12
+6462 5 94 12
+6467 3 93 12
+646a 11 94 12
+647b 5 96 12
+6480 4 94 12
+6484 6 96 12
+648a d 47 8
+6497 b 46 8
+64a2 f 47 8
+64b1 8 897 23
+64b9 2a 909 23
+64e3 d 956 23
+64f0 11 929 23
+6501 4 931 23
+6505 7 933 23
+650c 8 931 23
+6514 b 932 23
+651f 5 933 23
+6524 4 936 23
+6528 3 933 23
+652b 5 936 23
+6530 5 937 23
+6535 10 938 23
+6545 4 940 23
+6549 5 937 23
+654e 5 944 23
+6553 4 942 23
+6557 8 949 23
+655f 5 942 23
+6564 8 161 9
+656c 3 944 23
+656f 10 161 9
+657f 7 949 23
+6586 7 161 9
+658d 12 949 23
+659f b 953 23
+65aa 7 959 23
+65b1 c 964 23
+65bd 17 959 23
+65d4 5 964 23
+65d9 5 968 23
+65de 8 965 23
+65e6 9 968 23
+65ef 21 186 9
+6610 8 176 9
+6618 e 974 23
+6626 7 176 9
+662d e 971 23
+663b d 974 23
+6648 8 83 8
+6650 4 976 23
+6654 8 915 23
+665c 7 976 23
+6663 7 915 23
+666a 6 83 8
+6670 1d 87 8
+668d 4 236 41
+6691 f 909 23
+66a0 a 918 23
+66aa 8 72 12
+66b2 17 893 43
+66c9 18 161 9
+66e1 b 212 9
+66ec 7 161 9
+66f3 c 626 43
+66ff 9 982 23
+6708 c 68 8
+6714 b 67 8
+671f c 68 8
+672b 8 989 23
+6733 8 176 9
+673b 4 626 43
+673f 7 994 23
+6746 b 993 23
+6751 7 176 9
+6758 4 42 6
+675c 7 994 23
+6763 7 626 43
+676a 3 998 23
+676d 7 996 23
+6774 2 998 23
+6776 8 83 8
+677e 8 1000 23
+6786 12 83 8
+6798 3 444 23
+679b a 1000 23
+67a5 4 444 23
+67a9 3 751 43
+67ac 8 83 8
+67b4 7 1000 23
+67bb 6 83 8
+67c1 11 87 8
+67d2 4 42 6
+67d6 4 626 43
+67da 4 998 23
+67de 7 626 43
+67e5 5 998 23
+67ea 5 1002 23
+67ef a 216 9
+67f9 1d 92 8
+6816 8 477 23
+681e 28 479 23
+6846 4 161 9
+684a d 212 9
+6857 5 47 8
+685c 14 161 9
+6870 b 46 8
+687b 7 161 9
+6882 5 212 9
+6887 d 47 8
+6894 8 1007 23
+689c 8 223 9
+68a4 c 1009 23
+68b0 8 176 9
+68b8 b 1011 23
+68c3 5 1019 23
+68c8 7 176 9
+68cf e 1012 23
+68dd 4 42 6
+68e1 a 1014 23
+68eb 3 1015 23
+68ee 4 1016 23
+68f2 7 1015 23
+68f9 8 1016 23
+6901 c 1017 23
+690d a 216 9
+6917 21 92 8
+6938 8 481 23
+6940 28 483 23
+6968 4 161 9
+696c d 212 9
+6979 5 47 8
+697e 14 161 9
+6992 b 46 8
+699d 7 161 9
+69a4 4 212 9
+69a8 d 47 8
+69b5 8 1024 23
+69bd 8 223 9
+69c5 c 1026 23
+69d1 8 176 9
+69d9 10 1221 23
+69e9 e 1233 23
+69f7 5 1221 23
+69fc 7 1233 23
+6a03 b 1028 23
+6a0e 7 176 9
+6a15 7 1029 23
+6a1c 26 1233 23
+6a42 7 1029 23
+6a49 2 1221 23
+6a4b 8 1233 23
+6a53 2 1221 23
+6a55 2a 1233 23
+6a7f 5 2711 15
+6a84 13 1233 23
+6a97 7 2711 15
+6a9e 8 1233 23
+6aa6 a 1240 23
+6ab0 3 1221 23
+6ab3 1d 2711 15
+6ad0 8 1574 23
+6ad8 b 1570 23
+6ae3 12 1574 23
+6af5 f 1578 23
+6b04 8 1588 23
+6b0c 5 1579 23
+6b11 8 1578 23
+6b19 a 1586 23
+6b23 5 1588 23
+6b28 6 1587 23
+6b2e 3b 1586 23
+6b69 9 1598 23
+6b72 12 1604 23
+6b84 3 1605 23
+6b87 3 1603 23
+6b8a 14 1588 23
+6b9e 8 1591 23
+6ba6 3 1592 23
+6ba9 3 1591 23
+6bac 2 1592 23
+6bae 11 1595 23
+6bbf 18 1626 23
+6bd7 b 1628 23
+6be2 e 1034 23
+6bf0 7 80 40
+6bf7 d 47 8
+6c04 b 46 8
+6c0f d 47 8
+6c1c 7 990 23
+6c23 12 1008 23
+6c35 2 1025 23
+6c37 a 216 9
+6c41 21 92 8
+6c62 8 485 23
+6c6a 28 487 23
+6c92 12 490 23
+6ca4 b 489 23
+6caf 9 490 23
+6cb8 b 1214 23
+6cc3 b 1215 23
+6cce b 1216 23
+6cd9 28 492 23
+6d01 4 42 6
+6d05 12 495 23
+6d17 b 494 23
+6d22 c 495 23
+6d2e b 1214 23
+6d39 b 1215 23
+6d44 b 1216 23
+6d4f 28 497 23
+6d77 12 500 23
+6d89 b 499 23
+6d94 9 500 23
+6d9d b 1214 23
+6da8 b 1215 23
+6db3 b 1216 23
+6dbe 28 502 23
+6de6 4 42 6
+6dea 12 505 23
+6dfc b 504 23
+6e07 c 505 23
+6e13 b 1214 23
+6e1e b 1215 23
+6e29 b 1216 23
+6e34 28 507 23
+6e5c 4 42 6
+6e60 12 510 23
+6e72 b 509 23
+6e7d c 510 23
+6e89 b 1214 23
+6e94 b 1215 23
+6e9f b 1216 23
+6eaa 28 512 23
+6ed2 4 42 6
+6ed6 12 515 23
+6ee8 b 514 23
+6ef3 c 515 23
+6eff b 1214 23
+6f0a b 1215 23
+6f15 b 1216 23
+6f20 28 517 23
+6f48 4 42 6
+6f4c 12 520 23
+6f5e b 519 23
+6f69 c 520 23
+6f75 b 1214 23
+6f80 b 1215 23
+6f8b b 1216 23
+6f96 28 522 23
+6fbe 4 42 6
+6fc2 b 524 23
+6fcd 7 42 6
+6fd4 4 1038 23
+6fd8 4 1040 23
+6fdc 3 1041 23
+6fdf 5 1040 23
+6fe4 e 1041 23
+6ff2 6 1045 23
+6ff8 2 1048 23
+6ffa 9 1045 23
+7003 1e 1051 23
+7021 10 1054 23
+7031 9 1057 23
+703a f 1049 23
+7049 9 1061 23
+7052 3 1064 23
+7055 6 444 23
+705b 3 1069 23
+705e 3 1064 23
+7061 5 444 23
+7066 d 1080 23
+7073 4 1076 23
+7077 4 444 23
+707b 11 1076 23
+708c 4 444 23
+7090 9 1076 23
+7099 e 1077 23
+70a7 d 1078 23
+70b4 a 216 9
+70be 21 92 8
+70df a 216 9
+70e9 21 92 8
+710a a 216 9
+7114 29 92 8
+713d d 1058 23
+714a f 1054 23
+7159 d 1055 23
+7166 d 1133 23
+7173 b 1214 23
+717e b 1215 23
+7189 b 1216 23
+7194 28 527 23
+71bc a 532 23
+71c6 a 533 23
+71d0 1e 1097 23
+71ee 8 1098 23
+71f6 4 1094 23
+71fa 1b 1100 23
+7215 8 1101 23
+721d 3 1102 23
+7220 5 1098 23
+7225 7 1105 23
+722c 2 1106 23
+722e 6 1105 23
+7234 6 1106 23
+723a 3 1110 23
+723d 4 161 9
+7241 c 60 8
+724d 14 161 9
+7261 17 212 9
+7278 7 161 9
+727f c 212 9
+728b b 59 8
+7296 5 60 8
+729b 8 1110 23
+72a3 8 1112 23
+72ab 8 1120 23
+72b3 3 1116 23
+72b6 5 1120 23
+72bb 5 1112 23
+72c0 d 1116 23
+72cd 1e 1118 23
+72eb c 1120 23
+72f7 8 1119 23
+72ff 3 1120 23
+7302 b 1121 23
+730d 1 1120 23
+730e 2 1121 23
+7310 1b 1123 23
+732b 1f 1126 23
+734a 4 1129 23
+734e 8 73 8
+7356 f 1132 23
+7365 7 1129 23
+736c 10 1130 23
+737c 10 1131 23
+738c 6 73 8
+7392 19 76 8
+73ab 9 1116 23
+73b4 d 1133 23
+73c1 5 1138 23
+73c6 18 161 9
+73de 16 212 9
+73f4 7 161 9
+73fb b 212 9
+7406 3 66 8
+7409 2f 212 9
+7438 6 66 8
+743e d 68 8
+744b b 67 8
+7456 5 68 8
+745b 8 1138 23
+7463 8 223 9
+746b c 1140 23
+7477 8 176 9
+747f 5 1145 23
+7484 f 76 44
+7493 b 1141 23
+749e 7 1146 23
+74a5 7 176 9
+74ac 7 1142 23
+74b3 8 1145 23
+74bb 8 1149 23
+74c3 18 92 43
+74db 7 1142 23
+74e2 7 1144 23
+74e9 c 92 43
+74f5 7 1144 23
+74fc 10 1147 23
+750c 10 1148 23
+751c 10 1151 23
+752c 5 76 44
+7531 4 84 44
+7535 13 1004 43
+7548 8 82 44
+7550 8 83 44
+7558 8 84 44
+7560 10 1004 43
+7570 1b 1156 23
+758b 8 83 8
+7593 17 1157 23
+75aa 6 83 8
+75b0 b 87 8
+75bb 12 1159 23
+75cd d 525 23
+75da 15 1133 23
+75ef 1f 73 8
+760e 16 1599 23
+7624 9 1600 23
+762d 2 1244 23
+762f 4 2711 15
+7633 6 1244 23
+7639 5 60 12
+763e d 198 12
+764b 2a 63 12
+7675 8 198 12
+767d d 49 4
+768a a 48 7
+7694 1a 1251 23
+76ae 12 1255 23
+76c0 b 1256 23
+76cb 15 1260 23
+76e0 8 42 6
+76e8 9 116 7
+76f1 b 1263 23
+76fc a 1252 23
+7706 1c 1276 23
+7722 8 42 6
+772a 5 116 7
+772f f 1279 23
+773e 17 1280 23
+7755 15 1267 23
+776a 8 1270 23
+7772 4 1271 23
+7776 a 1270 23
+7780 9 1283 23
+7789 8 42 6
+7791 5 134 12
+7796 c 2701 15
+77a2 3 135 12
+77a5 1c 2701 15
+77c1 a 134 12
+77cb 12 1290 23
+77dd 6 1287 23
+77e3 11 1297 23
+77f4 7 1299 23
+77fb f 1300 23
+780a 11 1302 23
+781b 8 1304 23
+7823 8 1302 23
+782b 6 1304 23
+7831 23 1306 23
+7854 b 42 6
+785f 6 2701 15
+7865 9 134 12
+786e 7 2701 15
+7875 3 135 12
+7878 32 2701 15
+78aa 10 1002 23
+78ba 11 216 9
+78cb 2b 92 8
+78f6 12 918 23
+7908 1f 83 8
+7927 7 1139 23
+792e 15 1159 23
+7943 1f 66 8
+FUNC 7970 1ac 0 google_breakpad::WriteMinidump(char const*, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&, google_breakpad::LinuxDumper*)
+7970 11 1762 23
+7981 32 418 23
+79b3 a 190 12
+79bd 9 418 23
+79c6 1b 92 43
+79e1 9 418 23
+79ea 5 190 12
+79ef 4 420 23
+79f3 a 418 23
+79fd 6 420 23
+7a03 9 421 23
+7a0c f 425 23
+7a1b 3 428 23
+7a1e 5 429 23
+7a23 5 428 23
+7a28 5 429 23
+7a2d b 433 23
+7a38 4 1764 23
+7a3c 8 1766 23
+7a44 4 439 23
+7a48 2 1766 23
+7a4a 2 439 23
+7a4c b 441 23
+7a57 a 436 23
+7a61 f 1767 23
+7a70 10 430 23
+7a80 2 1765 23
+7a82 6 439 23
+7a88 10 440 23
+7a98 28 420 23
+7ac0 1f 421 23
+7adf 15 436 23
+7af4 18 418 23
+7b0c 10 1766 23
+FUNC 7b20 2ce 0 WriteMinidumpImpl
+7b20 2b 1669 23
+7b4b 8 1670 23
+7b53 3 1669 23
+7b56 2 1670 23
+7b58 6 1669 23
+7b5e 5 1670 23
+7b63 9 1672 23
+7b6c 2 1674 23
+7b6e 9 1673 23
+7b77 20 42 6
+7b97 41 1688 23
+7bd8 4 157 5
+7bdc 9 418 23
+7be5 8 157 5
+7bed 9 161 5
+7bf6 d 164 5
+7c03 34 418 23
+7c37 a 190 12
+7c41 9 418 23
+7c4a 1b 92 43
+7c65 9 418 23
+7c6e 5 190 12
+7c73 8 418 23
+7c7b 4 420 23
+7c7f 12 418 23
+7c91 6 420 23
+7c97 9 421 23
+7ca0 5 425 23
+7ca5 5 1162 23
+7caa a 425 23
+7cb4 3 428 23
+7cb7 5 429 23
+7cbc 5 428 23
+7cc1 5 429 23
+7cc6 b 433 23
+7cd1 4 1685 23
+7cd5 8 1687 23
+7cdd 4 439 23
+7ce1 2 1687 23
+7ce3 2 439 23
+7ce5 13 440 23
+7cf8 18 430 23
+7d10 2 1686 23
+7d12 6 439 23
+7d18 b 441 23
+7d23 15 436 23
+7d38 28 420 23
+7d60 19 418 23
+7d79 22 421 23
+7d9b 28 42 6
+7dc3 f 418 23
+7dd2 d 1687 23
+7ddf f 436 23
+FUNC 7df0 2b 0 google_breakpad::WriteMinidump(int, long, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7df0 4 1753 23
+7df4 22 1756 23
+7e16 5 1757 23
+FUNC 7e20 2c 0 google_breakpad::WriteMinidump(char const*, long, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7e20 4 1743 23
+7e24 23 1746 23
+7e47 5 1747 23
+FUNC 7e50 2a 0 google_breakpad::WriteMinidump(int, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7e50 4 1733 23
+7e54 21 1736 23
+7e75 5 1737 23
+FUNC 7e80 2b 0 google_breakpad::WriteMinidump(char const*, int, void const*, unsigned long, std::list<google_breakpad::MappingEntry, std::allocator<google_breakpad::MappingEntry> > const&, std::list<google_breakpad::AppMemory, std::allocator<google_breakpad::AppMemory> > const&)
+7e80 4 1724 23
+7e84 22 1727 23
+7ea6 5 1728 23
+FUNC 7eb0 9a 0 google_breakpad::WriteMinidump(int, int, void const*, unsigned long)
+7eb0 16 1702 23
+7ec6 3 1702 23
+7ec9 a 387 41
+7ed3 16 1705 23
+7ee9 5 387 41
+7eee 5 388 41
+7ef3 5 387 41
+7ef8 5 388 41
+7efd 5 1705 23
+7f02 19 379 41
+7f1b 14 1706 23
+7f2f 1b 379 41
+FUNC 7f50 9b 0 google_breakpad::WriteMinidump(char const*, int, void const*, unsigned long)
+7f50 16 1695 23
+7f66 3 1695 23
+7f69 a 387 41
+7f73 17 1698 23
+7f8a 5 387 41
+7f8f 5 388 41
+7f94 5 387 41
+7f99 5 388 41
+7f9e 5 1698 23
+7fa3 19 379 41
+7fbc 14 1699 23
+7fd0 1b 379 41
+FUNC 7ff0 26a 0 google_breakpad::WriteMinidump(char const*, int, int)
+7ff0 10 1709 23
+8000 10 1710 23
+8010 4 387 41
+8014 7 164 5
+801b 5 418 23
+8020 5 387 41
+8025 b 161 5
+8030 8 418 23
+8038 4 387 41
+803c 5 388 41
+8041 5 387 41
+8046 5 388 41
+804b 26 418 23
+8071 a 190 12
+807b 9 418 23
+8084 21 92 43
+80a5 9 418 23
+80ae 5 190 12
+80b3 5 420 23
+80b8 14 418 23
+80cc 6 420 23
+80d2 9 421 23
+80db 10 379 41
+80eb 13 425 23
+80fe 4 428 23
+8102 5 429 23
+8107 5 428 23
+810c 5 429 23
+8111 b 433 23
+811c 4 1716 23
+8120 a 1718 23
+812a 5 439 23
+812f 2 1718 23
+8131 2 439 23
+8133 b 441 23
+813e a 436 23
+8148 1b 42 6
+8163 15 1719 23
+8178 18 430 23
+8190 2 1717 23
+8192 7 439 23
+8199 f 440 23
+81a8 28 420 23
+81d0 22 421 23
+81f2 23 42 6
+8215 f 1718 23
+8224 d 418 23
+8231 1a 379 41
+824b f 436 23
+FUNC 8260 153 0 google_breakpad::PageAllocator::Alloc(unsigned int)
+8260 8 71 12
+8268 25 70 12
+828d b 74 12
+8298 b 74 12
+82a3 2 75 12
+82a5 2 76 12
+82a7 3 75 12
+82aa 8 77 12
+82b2 3 76 12
+82b5 2b 97 12
+82e0 c 86 12
+82ec f 2816 15
+82fb 3 86 12
+82fe 5 2816 15
+8303 6 86 12
+8309 2a 2816 15
+8333 d 89 12
+8340 6 120 12
+8346 2 93 12
+8348 4 124 12
+834c 3 93 12
+834f 4 125 12
+8353 5 93 12
+8358 4 124 12
+835c 5 93 12
+8361 4 126 12
+8365 8 93 12
+836d 5 94 12
+8372 3 93 12
+8375 13 94 12
+8388 10 96 12
+8398 7 78 12
+839f 11 79 12
+83b0 2 72 12
+83b2 1 97 12
+FUNC 83c0 248 0 google_breakpad::ProcCpuInfoReader::GetNextField(char const**)
+83c0 4 54 7
+83c4 4 118 4
+83c8 10 54 7
+83d8 b 60 7
+83e3 e 116 4
+83f1 2 117 4
+83f3 8 118 4
+83fb 7 117 4
+8402 5 118 4
+8407 e 62 7
+8415 6 99 4
+841b f 66 4
+842a 3 99 4
+842d 3 2724 15
+8430 5 98 4
+8435 3 99 4
+8438 13 2724 15
+844b a 100 4
+8455 a 102 4
+845f 4 103 4
+8463 5 66 4
+8468 14 70 4
+847c c 54 7
+8488 10 70 4
+8498 8 69 4
+84a0 b 78 4
+84ab a 86 4
+84b5 8 87 4
+84bd 3 92 4
+84c0 7 90 4
+84c7 e 92 4
+84d5 5 71 4
+84da 6 68 7
+84e0 8 77 7
+84e8 4 70 7
+84ec 5 77 7
+84f1 3 78 7
+84f4 3 77 7
+84f7 6 78 7
+84fd 5 83 7
+8502 5 84 7
+8507 3 88 7
+850a 7 87 7
+8511 3 88 7
+8514 3 92 7
+8517 7 88 7
+851e 2 92 7
+8520 9 95 7
+8529 5 99 7
+852e 4 101 7
+8532 c 104 7
+853e 5 102 7
+8543 d 104 7
+8550 e 84 7
+855e 4 85 7
+8562 e 84 7
+8570 f 92 7
+857f 4 93 7
+8583 d 92 7
+8590 10 105 4
+85a0 e 2724 15
+85ae 4 104 7
+85b2 2 66 7
+85b4 b 104 7
+85bf b 70 4
+85ca 1f 116 4
+85e9 1f 87 4
+FUNC 8610 22 0 google_breakpad::TypedMDRVA<unsigned int>::~TypedMDRVA()
+8610 6 216 9
+8616 1c 92 8
+FUNC 8640 22 0 google_breakpad::TypedMDRVA<MDRawContextAMD64>::~TypedMDRVA()
+8640 9 216 9
+8649 19 92 8
+FUNC 8670 22 0 google_breakpad::TypedMDRVA<MDRawLinkMap>::~TypedMDRVA()
+8670 6 216 9
+8676 1c 92 8
+FUNC 86a0 22 0 google_breakpad::TypedMDRVA<MDRawDebug>::~TypedMDRVA()
+86a0 6 216 9
+86a6 1c 92 8
+FUNC 86d0 229 0 std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::reserve(unsigned long)
+86d0 a 69 44
+86da 25 66 44
+86ff 9 69 44
+8708 4 42 6
+870c e 707 43
+871a 5 71 44
+871f 29 86 44
+8748 4 42 6
+874c 2 169 43
+874e 4 42 6
+8752 7 626 43
+8759 3 169 43
+875c 5 626 43
+8761 2 169 43
+8763 8 162 12
+876b 4 71 12
+876f 1c 74 12
+878b 2 75 12
+878d 2 76 12
+878f 3 75 12
+8792 8 77 12
+879a 4 76 12
+879e 12 245 42
+87b0 13 120 46
+87c3 d 245 42
+87d0 5 83 44
+87d5 4 84 44
+87d9 5 82 44
+87de 7 83 44
+87e5 3 84 44
+87e8 5 83 44
+87ed 13 84 44
+8800 e 86 12
+880e e 2816 15
+881c 3 86 12
+881f 5 2816 15
+8824 9 86 12
+882d 30 2816 15
+885d b 89 12
+8868 8 120 12
+8870 9 124 12
+8879 4 125 12
+887d 5 93 12
+8882 3 124 12
+8885 3 125 12
+8888 3 93 12
+888b 4 126 12
+888f 16 93 12
+88a5 5 94 12
+88aa 4 93 12
+88ae 11 94 12
+88bf 5 96 12
+88c4 4 94 12
+88c8 10 96 12
+88d8 8 78 12
+88e0 d 79 12
+88ed c 70 44
+FUNC 8900 357 0 std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MDMemoryDescriptor*, std::vector<MDMemoryDescriptor, google_breakpad::PageStdAllocator<MDMemoryDescriptor> > >, MDMemoryDescriptor const&)
+8900 28 316 44
+8928 8 320 44
+8930 3 316 44
+8933 2 320 44
+8935 14 120 46
+8949 4 329 44
+894d 4 325 44
+8951 7 327 44
+8958 3 559 38
+895b 4 325 44
+895f 4 327 44
+8963 4 559 38
+8967 5 560 38
+896c f 561 38
+897b a 333 44
+8985 2b 391 44
+89b0 4 42 6
+89b4 a 626 43
+89be 9 215 38
+89c7 4 1308 43
+89cb 9 1309 43
+89d4 3 900 39
+89d7 d 162 12
+89e4 3 900 39
+89e7 4 162 12
+89eb 8 342 44
+89f3 23 74 12
+8a16 3 75 12
+8a19 2 76 12
+8a1b 3 75 12
+8a1e 8 77 12
+8a26 8 76 12
+8a2e 8 351 44
+8a36 13 120 46
+8a49 f 245 42
+8a58 13 120 46
+8a6b d 245 42
+8a78 13 316 44
+8a8b 15 245 42
+8aa0 13 120 46
+8ab3 d 245 42
+8ac0 10 316 44
+8ad0 4 387 44
+8ad4 5 389 44
+8ad9 4 388 44
+8add 13 389 44
+8af0 3 900 39
+8af3 d 162 12
+8b00 3 900 39
+8b03 5 162 12
+8b08 10 342 44
+8b18 7 86 12
+8b1f 2 2816 15
+8b21 7 86 12
+8b28 d 2816 15
+8b35 3 86 12
+8b38 5 2816 15
+8b3d 9 86 12
+8b46 30 2816 15
+8b76 17 89 12
+8b8d 8 120 12
+8b95 9 124 12
+8b9e 4 125 12
+8ba2 5 93 12
+8ba7 3 124 12
+8baa 3 125 12
+8bad 3 93 12
+8bb0 4 126 12
+8bb4 16 93 12
+8bca 5 94 12
+8bcf 4 93 12
+8bd3 15 94 12
+8be8 b 96 12
+8bf3 8 78 12
+8bfb d 79 12
+8c08 13 1309 43
+8c1b 7 900 39
+8c22 6 169 43
+8c28 8 900 39
+8c30 2 169 43
+8c32 4 342 44
+8c36 3 169 43
+8c39 4 342 44
+8c3d 6 169 43
+8c43 7 162 12
+8c4a d 71 12
+FUNC 8c60 17f 0 char* std::vector<char, google_breakpad::PageStdAllocator<char> >::_M_allocate_and_copy<char*>(unsigned long, char*, char*)
+8c60 2 1106 43
+8c62 2 169 43
+8c64 12 1106 43
+8c76 5 169 43
+8c7b 2 71 12
+8c7d 5 162 12
+8c82 2 71 12
+8c84 1e 74 12
+8ca2 2 75 12
+8ca4 2 76 12
+8ca6 3 75 12
+8ca9 8 77 12
+8cb1 5 76 12
+8cb6 a 245 42
+8cc0 a 120 46
+8cca d 245 42
+8cd7 19 1121 43
+8cf0 c 86 12
+8cfc f 2816 15
+8d0b 3 86 12
+8d0e 8 2816 15
+8d16 9 86 12
+8d1f 3b 2816 15
+8d5a e 89 12
+8d68 6 120 12
+8d6e 5 124 12
+8d73 8 93 12
+8d7b 3 124 12
+8d7e 4 125 12
+8d82 5 93 12
+8d87 3 125 12
+8d8a 5 93 12
+8d8f 5 126 12
+8d94 8 93 12
+8d9c 5 94 12
+8da1 5 93 12
+8da6 14 94 12
+8dba e 96 12
+8dc8 9 78 12
+8dd1 e 79 12
+FUNC 8de0 3cd 0 std::vector<char, google_breakpad::PageStdAllocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, google_breakpad::PageStdAllocator<char> > >, unsigned long, char const&)
+8de0 11 439 44
+8df1 c 442 44
+8dfd 1b 444 44
+8e18 3 900 39
+8e1b 4 447 44
+8e1f 3 900 39
+8e22 9 450 44
+8e2b 6 452 44
+8e31 f 245 42
+8e40 b 120 46
+8e4b 12 245 42
+8e5d 3 456 44
+8e60 3 560 38
+8e63 5 456 44
+8e68 2 560 38
+8e6a b 561 38
+8e75 b 697 38
+8e80 9 86 12
+8e89 9 2816 15
+8e92 a 86 12
+8e9c 6 2816 15
+8ea2 3 86 12
+8ea5 5 2816 15
+8eaa 9 86 12
+8eb3 24 2816 15
+8ed7 c 120 12
+8ee3 9 124 12
+8eec 4 93 12
+8ef0 4 124 12
+8ef4 3 93 12
+8ef7 3 124 12
+8efa 4 125 12
+8efe 5 93 12
+8f03 4 125 12
+8f07 4 126 12
+8f0b 16 93 12
+8f21 5 94 12
+8f26 4 93 12
+8f2a 15 94 12
+8f3f 5 96 12
+8f44 4 94 12
+8f48 4 96 12
+8f4c 8 486 44
+8f54 c 439 44
+8f60 c 120 46
+8f6c 9 321 42
+8f75 5 491 44
+8f7a 16 245 42
+8f90 a 120 46
+8f9a d 245 42
+8fa7 9 439 44
+8fb0 5 498 44
+8fb5 3 496 44
+8fb8 10 245 42
+8fc8 a 120 46
+8fd2 d 245 42
+8fdf 6 439 44
+8fe5 5 520 44
+8fea 5 522 44
+8fef 5 521 44
+8ff4 5 522 44
+8ff9 17 525 44
+9010 9 321 42
+9019 4 439 44
+901d 3 444 44
+9020 8 120 46
+9028 e 321 42
+9036 3 468 44
+9039 3 245 42
+903c 5 468 44
+9041 f 245 42
+9050 b 120 46
+905b 12 245 42
+906d 8 472 44
+9075 4 525 44
+9079 7 697 38
+9080 a 525 44
+908a 6 697 38
+9090 8 626 43
+9098 f 1305 43
+90a7 a 1308 43
+90b1 5 1309 43
+90b6 3 900 39
+90b9 4 162 12
+90bd 9 1309 43
+90c6 3 900 39
+90c9 4 162 12
+90cd 5 900 39
+90d2 4 162 12
+90d6 28 74 12
+90fe 3 75 12
+9101 2 76 12
+9103 3 75 12
+9106 4 77 12
+910a e 76 12
+9118 3 900 39
+911b c 169 43
+9127 3 900 39
+912a 3 169 43
+912d 5 900 39
+9132 6 169 43
+9138 4 162 12
+913c 2 71 12
+913e 2 162 12
+9140 5 71 12
+9145 4 162 12
+9149 f 71 12
+9158 10 2816 15
+9168 8 89 12
+9170 c 78 12
+917c d 79 12
+9189 8 245 42
+9191 8 444 44
+9199 8 241 42
+91a1 c 1306 43
+FUNC 91b0 1a 0 google_breakpad::MinidumpFileWriter::MinidumpFileWriter()
+91b0 1a 55 24
+FUNC 91d0 87 0 google_breakpad::MinidumpFileWriter::Open(char const*)
+91d0 e 63 24
+91de 3 64 24
+91e1 3 63 24
+91e4 5 64 24
+91e9 2c 2711 15
+9215 2 66 24
+9217 21 72 24
+9238 1f 64 24
+FUNC 9260 2c 0 google_breakpad::MinidumpFileWriter::SetFile(int)
+9260 5 75 24
+9265 2 76 24
+9267 5 77 24
+926c 7 75 24
+9273 1 74 24
+9274 18 75 24
+FUNC 9290 78 0 google_breakpad::MinidumpFileWriter::Close()
+9290 16 80 24
+92a6 2 83 24
+92a8 5 81 24
+92ad 5 83 24
+92b2 3 84 24
+92b5 2 85 24
+92b7 a 84 24
+92c1 20 2629 15
+92e1 6 92 24
+92e7 21 96 24
+FUNC 9310 15 0 google_breakpad::MinidumpFileWriter::~MinidumpFileWriter()
+9310 10 59 24
+9320 5 60 24
+FUNC 9330 d6 0 google_breakpad::MinidumpFileWriter::Allocate(unsigned long)
+9330 18 220 24
+9348 5 221 24
+934d 10 222 24
+935d 3 225 24
+9360 4 223 24
+9364 4 225 24
+9368 4 223 24
+936c a 225 24
+9376 5 241 24
+937b 1d 244 24
+9398 7 227 24
+939f 3 234 24
+93a2 a 233 24
+93ac a 234 24
+93b6 5 235 24
+93bb 4 234 24
+93bf 9 237 24
+93c8 1f 221 24
+93e7 1f 222 24
+FUNC 9410 fa 0 google_breakpad::MinidumpFileWriter::Copy(unsigned int, void const*, long)
+9410 9 246 24
+9419 9 247 24
+9422 f 248 24
+9431 8 249 24
+9439 c 252 24
+9445 2 267 24
+9447 9 268 24
+9450 14 2699 15
+9464 5 257 24
+9469 1b 2773 15
+9484 c 258 24
+9490 b 2699 15
+949b 12 2773 15
+94ad 1f 249 24
+94cc 1f 248 24
+94eb 1f 247 24
+FUNC 9510 a8 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString(wchar_t const*, unsigned int, google_breakpad::TypedMDRVA<MDString>*)
+9510 e 100 24
+951e 1a 110 24
+9538 3 116 24
+953b 4 117 24
+953f 6 122 24
+9545 8 284 24
+954d 16 122 24
+9563 7 83 8
+956a 3 87 8
+956d 3 125 24
+9570 12 87 8
+9582 8 110 24
+958a c 111 24
+9596 7 112 24
+959d 2 113 24
+959f d 129 24
+95ac 5 101 24
+95b1 7 128 24
+FUNC 95c0 aa 0 google_breakpad::MinidumpFileWriter::CopyStringToMDString(char const*, unsigned int, google_breakpad::TypedMDRVA<MDString>*)
+95c0 e 133 24
+95ce 1a 139 24
+95e8 2 145 24
+95ea 2 146 24
+95ec 4 284 24
+95f0 3 146 24
+95f3 6 149 24
+95f9 5 284 24
+95fe 18 149 24
+9616 8 83 8
+961e 3 87 8
+9621 3 152 24
+9624 12 87 8
+9636 8 139 24
+963e d 140 24
+964b 4 141 24
+964f 2 142 24
+9651 d 155 24
+965e c 134 24
+FUNC 9670 41 0 google_breakpad::UntypedMDRVA::Allocate(unsigned long)
+9670 1 270 24
+9671 5 271 24
+9676 3 270 24
+9679 2 271 24
+967b 4 272 24
+967f 8 273 24
+9687 3 274 24
+968a 3 273 24
+968d 3 274 24
+9690 2 275 24
+9692 1f 271 24
+FUNC 96c0 88 0 google_breakpad::UntypedMDRVA::Copy(unsigned int, void const*, unsigned long)
+96c0 4 277 24
+96c4 5 278 24
+96c9 5 279 24
+96ce 12 280 24
+96e0 3 281 24
+96e3 4 282 24
+96e7 5 281 24
+96ec 1e 278 24
+970a 1f 280 24
+9729 1f 279 24
+FUNC 9750 c4 0 google_breakpad::MinidumpFileWriter::WriteMemory(void const*, unsigned long, MDMemoryDescriptor*)
+9750 9 204 24
+9759 9 205 24
+9762 8 206 24
+976a 7 161 9
+9771 6 209 24
+9777 d 161 9
+9784 9 209 24
+978d 4 218 24
+9791 2 210 24
+9793 d 218 24
+97a0 14 186 9
+97b4 4 211 24
+97b8 5 176 9
+97bd 3 214 24
+97c0 3 176 9
+97c3 7 215 24
+97ca 4 218 24
+97ce 5 217 24
+97d3 3 218 24
+97d6 1f 206 24
+97f5 1f 205 24
+FUNC 9820 5 0 google_breakpad::MinidumpFileWriter::WriteString(char const*, unsigned int, MDLocationDescriptor*)
+9820 5 200 24
+FUNC 9830 5 0 google_breakpad::MinidumpFileWriter::WriteString(wchar_t const*, unsigned int, MDLocationDescriptor*)
+9830 5 195 24
+FUNC 9840 22 0 google_breakpad::TypedMDRVA<MDString>::~TypedMDRVA()
+9840 6 216 9
+9846 1c 92 8
+FUNC 9870 1e8 0 bool google_breakpad::MinidumpFileWriter::WriteStringCore<char>(char const*, unsigned int, MDLocationDescriptor*)
+9870 f 158 24
+987f 9 161 24
+9888 c 162 24
+9894 d 167 24
+98a1 9 168 24
+98aa 8 161 9
+98b2 5 212 9
+98b7 9 161 9
+98c0 11 212 9
+98d1 4 161 9
+98d5 5 68 8
+98da 8 67 8
+98e2 5 68 8
+98e7 4 173 24
+98eb 4 177 24
+98ef d 179 24
+98fc 5 177 24
+9901 5 179 24
+9906 8 182 24
+990e 2 174 24
+9910 7 216 9
+9917 18 92 8
+992f 11 191 24
+9940 10 158 24
+9950 7 168 24
+9957 11 161 9
+9968 17 212 9
+997f 4 161 9
+9983 3 173 24
+9986 1e 66 8
+99a4 c 168 24
+99b0 5 83 8
+99b5 7 183 24
+99bc 9 184 24
+99c5 2 83 8
+99c7 14 87 8
+99db 2 186 24
+99dd 2 87 8
+99df 6 186 24
+99e5 9 176 9
+99ee 12 187 24
+9a00 15 190 24
+9a15 1f 162 24
+9a34 24 161 24
+FUNC 9a60 1e8 0 bool google_breakpad::MinidumpFileWriter::WriteStringCore<wchar_t>(wchar_t const*, unsigned int, MDLocationDescriptor*)
+9a60 f 158 24
+9a6f 9 161 24
+9a78 f 162 24
+9a87 2 168 24
+9a89 a 167 24
+9a93 8 168 24
+9a9b 8 161 9
+9aa3 5 212 9
+9aa8 9 161 9
+9ab1 11 212 9
+9ac2 4 161 9
+9ac6 5 68 8
+9acb 8 67 8
+9ad3 5 68 8
+9ad8 4 173 24
+9adc 4 177 24
+9ae0 d 179 24
+9aed 5 177 24
+9af2 5 179 24
+9af7 8 182 24
+9aff 2 174 24
+9b01 7 216 9
+9b08 18 92 8
+9b20 10 191 24
+9b30 10 158 24
+9b40 7 168 24
+9b47 11 161 9
+9b58 17 212 9
+9b6f 4 161 9
+9b73 3 173 24
+9b76 1e 66 8
+9b94 c 168 24
+9ba0 5 83 8
+9ba5 7 183 24
+9bac 9 184 24
+9bb5 2 83 8
+9bb7 14 87 8
+9bcb 2 186 24
+9bcd 2 87 8
+9bcf 6 186 24
+9bd5 9 176 9
+9bde 12 187 24
+9bf0 15 190 24
+9c05 1f 162 24
+9c24 24 161 24
+FUNC 9c50 78 0 google_breakpad::UTF8ToUTF16Char(char const*, int, unsigned short*)
+9c50 2 58 32
+9c52 6 78 32
+9c58 2 58 32
+9c5a 4 62 32
+9c5e 5 58 32
+9c63 4 60 32
+9c67 4 58 32
+9c6b b 63 32
+9c76 4 59 32
+9c7a 6 61 32
+9c80 16 69 32
+9c96 4 71 32
+9c9a 4 76 32
+9c9e 4 75 32
+9ca2 5 78 32
+9ca7 4 83 32
+9cab 2 82 32
+9cad b 83 32
+9cb8 3 72 32
+9cbb 5 83 32
+9cc0 2 72 32
+9cc2 6 83 32
+FUNC 9cd0 56 0 google_breakpad::UTF32ToUTF16Char(wchar_t, unsigned short*)
+9cd0 4 102 32
+9cd4 3 110 32
+9cd7 4 106 32
+9cdb 4 102 32
+9cdf b 107 32
+9cea 5 103 32
+9cef 4 102 32
+9cf3 a 110 32
+9cfd 5 105 32
+9d02 5 103 32
+9d07 5 104 32
+9d0c 5 110 32
+9d11 4 112 32
+9d15 b 113 32
+9d20 6 115 32
+FUNC 9d30 147 0 google_breakpad::UTF16ToUTF8(std::vector<unsigned short, std::allocator<unsigned short> > const&, bool)
+9d30 12 121 32
+9d42 3 155 32
+9d45 2 126 32
+9d47 4 626 43
+9d4b 5 122 32
+9d50 9 126 32
+9d59 2 71 14
+9d5b 6 626 43
+9d61 8 139 32
+9d69 4 138 32
+9d6d 8 140 32
+9d75 4 142 32
+9d79 10 145 32
+9d89 3 140 32
+9d8c 5 141 32
+9d91 5 145 32
+9d96 2 147 32
+9d98 5 149 32
+9d9d 2 147 32
+9d9f b 149 32
+9daa d 164 14
+9db7 8 75 14
+9dbf 11 153 32
+9dd0 18 152 32
+9de8 3 626 43
+9deb 9 128 32
+9df4 3 81 14
+9df7 3 128 32
+9dfa 2 81 14
+9dfc 7 82 14
+9e03 c 155 32
+9e0f 11 130 32
+9e20 7 132 32
+9e27 f 118 32
+9e36 5 130 32
+9e3b 5 134 32
+9e40 3 155 32
+9e43 b 134 32
+9e4e 2 71 14
+9e50 10 75 14
+9e60 17 164 14
+FUNC 9e80 e3 0 google_breakpad::UTF8ToUTF16(char const*, std::vector<unsigned short, std::allocator<unsigned short> >*)
+9e80 c 41 32
+9e8c 5 42 32
+9e91 3 1097 43
+9e94 b 1004 43
+9e9f 5 43 32
+9ea4 7 47 32
+9eab 3 44 32
+9eae 4 1320 43
+9eb2 5 1004 43
+9eb7 3 155 32
+9eba 4 707 43
+9ebe b 52 32
+9ec9 3 707 43
+9ecc 5 48 32
+9ed1 3 707 43
+9ed4 4 49 32
+9ed8 a 52 32
+9ee2 2 55 32
+9ee4 3 155 32
+9ee7 2 55 32
+9ee9 5 55 32
+9eee b 155 32
+9ef9 3 55 32
+9efc 3 626 43
+9eff 3 55 32
+9f02 6 626 43
+9f08 4 55 32
+9f0c 3 686 43
+9f0f 3 626 43
+9f12 2 686 43
+9f14 5 688 43
+9f19 8 689 43
+9f21 f 56 32
+9f30 3 687 43
+9f33 d 1004 43
+9f40 10 56 32
+9f50 4 626 43
+9f54 2 55 32
+9f56 6 626 43
+9f5c 7 688 43
+FUNC 9f70 e3 0 google_breakpad::UTF32ToUTF16(wchar_t const*, std::vector<unsigned short, std::allocator<unsigned short> >*)
+9f70 c 85 32
+9f7c 5 86 32
+9f81 3 1097 43
+9f84 b 1004 43
+9f8f 5 87 32
+9f94 7 91 32
+9f9b 5 88 32
+9fa0 4 1320 43
+9fa4 5 1004 43
+9fa9 3 155 32
+9fac 4 707 43
+9fb0 b 96 32
+9fbb 3 707 43
+9fbe 5 92 32
+9fc3 3 707 43
+9fc6 4 93 32
+9fca a 96 32
+9fd4 2 99 32
+9fd6 3 155 32
+9fd9 2 99 32
+9fdb 5 99 32
+9fe0 b 155 32
+9feb 3 99 32
+9fee 3 626 43
+9ff1 3 99 32
+9ff4 6 626 43
+9ffa 4 99 32
+9ffe 3 686 43
+a001 3 626 43
+a004 2 686 43
+a006 5 688 43
+a00b 8 689 43
+a013 d 100 32
+a020 3 687 43
+a023 d 1004 43
+a030 10 100 32
+a040 4 626 43
+a044 2 99 32
+a046 6 626 43
+a04c 7 688 43
+FUNC a060 295 0 std::vector<unsigned short, std::allocator<unsigned short> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned short*, std::vector<unsigned short, std::allocator<unsigned short> > >, unsigned long, unsigned short const&)
+a060 25 439 44
+a085 9 442 44
+a08e 1d 444 44
+a0ab 3 900 39
+a0ae 3 447 44
+a0b1 6 900 39
+a0b7 9 450 44
+a0c0 3 464 44
+a0c3 d 743 38
+a0d0 3 745 38
+a0d3 a 743 38
+a0dd 8 468 44
+a0e5 3 365 38
+a0e8 4 468 44
+a0ec 6 365 38
+a0f2 3 472 44
+a0f5 3 686 38
+a0f8 4 472 44
+a0fc c 686 38
+a108 7 687 38
+a10f 5 686 38
+a114 2c 525 44
+a140 3 155 32
+a143 d 1305 43
+a150 6 626 43
+a156 c 1305 43
+a162 6 1308 43
+a168 3 900 39
+a16b 4 1308 43
+a16f 3 900 39
+a172 3 480 44
+a175 9 1309 43
+a17e 7 480 44
+a185 19 94 46
+a19e 5 486 44
+a1a3 d 155 32
+a1b0 4 745 38
+a1b4 a 743 38
+a1be 3 364 38
+a1c1 3 365 38
+a1c4 3 364 38
+a1c7 5 365 38
+a1cc f 366 38
+a1db 4 364 38
+a1df 3 367 38
+a1e2 4 496 44
+a1e6 3 365 38
+a1e9 3 364 38
+a1ec 5 365 38
+a1f1 12 366 38
+a203 4 517 44
+a207 3 367 38
+a20a 5 174 43
+a20f 5 100 46
+a214 3 522 44
+a217 4 520 44
+a21b 4 521 44
+a21f 11 522 44
+a230 20 366 38
+a250 3 452 44
+a253 3 364 38
+a256 3 444 44
+a259 3 365 38
+a25c 3 364 38
+a25f 5 365 38
+a264 12 366 38
+a276 3 559 38
+a279 3 456 44
+a27c 3 559 38
+a27f 4 456 44
+a283 5 560 38
+a288 12 561 38
+a29a 3 459 44
+a29d 13 686 38
+a2b0 7 687 38
+a2b7 11 686 38
+a2c8 9 1309 43
+a2d1 e 169 43
+a2df 16 1306 43
+FUNC a300 73 0 CreateGUID(MDGUID*)
+a300 1 87 28
+a301 7 75 28
+a308 3 87 28
+a30b c 75 28
+a317 7 65 28
+a31e 9 66 28
+a327 9 67 28
+a330 7 68 28
+a337 3 57 28
+a33a 6 58 28
+a340 2 59 28
+a342 3 60 28
+a345 3 59 28
+a348 3 60 28
+a34b 3 59 28
+a34e 7 69 28
+a355 3 57 28
+a358 6 58 28
+a35e 2 59 28
+a360 3 60 28
+a363 3 59 28
+a366 3 60 28
+a369 3 59 28
+a36c 7 89 28
+FUNC a380 ad 0 GUIDToString(MDGUID const*, char*, int)
+a380 5 92 28
+a385 9 94 28
+a38e b 53 28
+a399 3 98 28
+a39c 4 53 28
+a3a0 a 98 28
+a3aa 13 53 28
+a3bd 4 98 28
+a3c1 1a 53 28
+a3db 7 98 28
+a3e2 5 53 28
+a3e7 f 98 28
+a3f6 2 100 28
+a3f8 5 99 28
+a3fd 4 102 28
+a401 5 103 28
+a406 8 104 28
+a40e 1f 94 28
+FUNC a430 16 0 GUIDGenerator::InitOnceImpl()
+a430 4 78 28
+a434 7 79 28
+a43b 4 80 28
+a43f 7 79 28
+FUNC a450 1e 0 my_strlen
+a450 10 42 29
+a460 c 42 29
+a46c 2 44 29
+FUNC a470 33 0 my_strcmp
+a470 8 46 29
+a478 2 50 29
+a47a 4 52 29
+a47e 4 54 29
+a482 4 55 29
+a486 7 48 29
+a48d b 49 29
+a498 8 51 29
+a4a0 2 53 29
+a4a2 1 57 29
+FUNC a4b0 56 0 my_strncmp
+a4b0 5 60 29
+a4b5 7 61 29
+a4bc 2 63 29
+a4be 12 65 29
+a4d0 9 61 29
+a4d9 2 63 29
+a4db 4 65 29
+a4df 9 60 29
+a4e8 2 71 29
+a4ea 6 72 29
+a4f0 10 62 29
+a500 6 64 29
+FUNC a510 54 0 my_strtoui
+a510 3 79 29
+a513 2 80 29
+a515 4 79 29
+a519 8 87 29
+a521 f 89 29
+a530 7 86 29
+a537 8 87 29
+a53f 5 89 29
+a544 4 90 29
+a548 2 89 29
+a54a 4 82 29
+a54e 7 83 29
+a555 2 94 29
+a557 9 95 29
+a560 2 80 29
+a562 2 96 29
+FUNC a570 36 0 my_uint_len
+a570 3 100 29
+a573 3 99 29
+a576 5 101 29
+a57b 4 100 29
+a57f 14 106 29
+a593 3 105 29
+a596 7 106 29
+a59d 5 104 29
+a5a2 2 109 29
+a5a4 2 110 29
+FUNC a5b0 43 0 my_uitos
+a5b0 5 119 29
+a5b5 a 120 29
+a5bf 9 119 29
+a5c8 1d 120 29
+a5e5 3 119 29
+a5e8 4 120 29
+a5ec 7 119 29
+FUNC a600 42 0 my_strchr
+a600 3 124 29
+a603 3 123 29
+a606 4 124 29
+a60a 16 128 29
+a620 8 124 29
+a628 4 125 29
+a62c 7 124 29
+a633 f 124 29
+FUNC a650 26 0 my_strrchr
+a650 10 133 29
+a660 7 134 29
+a667 4 136 29
+a66b 9 133 29
+a674 2 139 29
+FUNC a680 32 0 my_memchr
+a680 3 143 29
+a683 5 144 29
+a688 17 145 29
+a69f 9 144 29
+a6a8 8 148 29
+a6b0 2 149 29
+FUNC a6c0 64 0 my_read_hex_ptr
+a6c0 3 155 29
+a6c3 d 156 29
+a6d0 3 161 29
+a6d3 4 160 29
+a6d7 6 161 29
+a6dd 4 158 29
+a6e1 b 159 29
+a6ec 8 162 29
+a6f4 3 164 29
+a6f7 4 163 29
+a6fb d 164 29
+a708 8 165 29
+a710 3 167 29
+a713 4 166 29
+a717 9 167 29
+a720 3 173 29
+a723 1 175 29
+FUNC a730 3a 0 my_read_decimal_ptr
+a730 3 181 29
+a733 3 177 29
+a736 12 181 29
+a748 3 183 29
+a74b 4 182 29
+a74f 4 180 29
+a753 7 183 29
+a75a c 181 29
+a766 3 188 29
+a769 1 190 29
+FUNC a770 1e 0 my_memset
+a770 3 194 29
+a773 4 192 29
+a777 9 194 29
+a780 7 195 29
+a787 7 194 29
+FUNC a790 38 0 my_strlcpy
+a790 10 202 29
+a7a0 9 203 29
+a7a9 7 204 29
+a7b0 4 207 29
+a7b4 8 202 29
+a7bc 5 209 29
+a7c1 5 210 29
+a7c6 2 213 29
+FUNC a7d0 3e 0 my_strlcat
+a7d0 1 215 29
+a7d1 2 216 29
+a7d3 d 218 29
+a7e0 4 219 29
+a7e4 5 218 29
+a7e9 7 225 29
+a7f0 6 218 29
+a7f6 5 221 29
+a7fb e 224 29
+a809 5 225 29
+FUNC a810 4e 0 my_isspace
+a810 a 229 29
+a81a a 227 29
+a824 a 229 29
+a82e 19 227 29
+a847 4 231 29
+a84b 5 230 29
+a850 2 234 29
+a852 6 235 29
+a858 6 232 29
+FUNC a860 1aa 0 google_breakpad::CrashGenerationClient::RequestDump(void const*, unsigned long)
+a860 5 46 16
+a865 a 2795 15
+a86f 5 46 16
+a874 3 2795 15
+a877 5 46 16
+a87c 2 2795 15
+a87e 9 46 16
+a887 1e 2795 15
+a8a5 c 52 16
+a8b1 5 60 16
+a8b6 8 52 16
+a8be 5 57 16
+a8c3 a 60 16
+a8cd 5 54 16
+a8d2 5 55 16
+a8d7 5 57 16
+a8dc 9 58 16
+a8e5 6 2785 15
+a8eb 5 60 16
+a8f0 4 69 16
+a8f4 8 61 16
+a8fc 3 2785 15
+a8ff c 62 16
+a90b 8 65 16
+a913 8 66 16
+a91b 9 67 16
+a924 4 69 16
+a928 19 2785 15
+a941 9 2785 15
+a94a 5 71 16
+a94f 5 71 16
+a954 24 2629 15
+a978 9 73 16
+a981 7 2724 15
+a988 14 2724 15
+a99c 7 81 16
+a9a3 5 80 16
+a9a8 10 81 16
+a9b8 5 71 16
+a9bd 13 45 16
+a9d0 10 2724 15
+a9e0 3 78 16
+a9e3 2 2724 15
+a9e5 13 78 16
+a9f8 7 81 16
+a9ff 2 74 16
+aa01 9 81 16
+FUNC aa10 1c 0 google_breakpad::CrashGenerationClient::TryCreate(int)
+aa10 2 87 16
+aa12 1 86 16
+aa13 2 86 16
+aa15 2 87 16
+aa17 a 89 16
+aa21 2 56 1
+aa23 5 90 16
+aa28 2 88 16
+aa2a 2 90 16
+FUNC aa30 67 0 google_breakpad::LinuxDumper::~LinuxDumper()
+aa30 8 85 21
+aa38 6 2701 15
+aa3e 6 85 21
+aa44 e 85 21
+aa52 4 338 21
+aa56 a 134 12
+aa60 4 136 12
+aa64 3 135 12
+aa67 1d 2701 15
+aa84 8 134 12
+aa8c b 86 21
+FUNC aaa0 12 0 google_breakpad::LinuxDumper::~LinuxDumper()
+aaa0 1 85 21
+aaa1 3 85 21
+aaa4 e 86 21
+FUNC aac0 105 0 google_breakpad::LinuxDumper::ReadAuxv()
+aac0 2 139 21
+aac2 7 141 21
+aac9 c 139 21
+aad5 15 141 21
+aaea 2 147 21
+aaec 14 163 21
+ab00 28 2711 15
+ab28 4 146 21
+ab2c 8 154 21
+ab34 2 146 21
+ab36 a 2724 15
+ab40 10 2724 15
+ab50 6 152 21
+ab56 1b 2629 15
+ab71 f 163 21
+ab80 a 152 21
+ab8a 6 156 21
+ab90 d 157 21
+ab9d 5 158 21
+aba2 e 157 21
+abb0 15 2724 15
+FUNC abd0 32 0 google_breakpad::LinuxDumper::Init()
+abd0 1 88 21
+abd1 3 88 21
+abd4 9 89 21
+abdd b 90 21
+abe8 d 89 21
+abf5 6 89 21
+abfb 1 90 21
+abfc 6 89 21
+FUNC ac10 4c 0 google_breakpad::LinuxDumper::FindMapping(void const*) const
+ac10 4 338 21
+ac14 b 626 43
+ac1f 11 292 21
+ac30 7 293 21
+ac37 5 294 21
+ac3c 14 294 21
+ac50 9 292 21
+ac59 2 298 21
+ac5b 1 299 21
+FUNC ac60 94 0 google_breakpad::LinuxDumper::GetStackInfo(void const**, unsigned long*, unsigned long)
+ac60 23 265 21
+ac83 6 265 21
+ac89 8 267 21
+ac91 3 275 21
+ac94 6 270 21
+ac9a 8 275 21
+aca2 5 276 21
+aca7 6 279 21
+acad 4 281 21
+acb1 5 283 21
+acb6 3 281 21
+acb9 a 283 21
+acc3 5 285 21
+acc8 4 283 21
+accc 4 284 21
+acd0 20 286 21
+acf0 4 277 21
+FUNC ad00 1fd 0 google_breakpad::LinuxDumper::HandleDeletedFileInMapping(char*) const
+ad00 17 301 21
+ad17 3 306 21
+ad1a 7 301 21
+ad21 3 301 21
+ad24 5 306 21
+ad29 6 307 21
+ad2f 2 308 21
+ad31 2f 336 21
+ad60 5 309 21
+ad65 11 310 21
+ad76 4 309 21
+ad7a 23 317 21
+ad9d 8 319 21
+ada5 10 60 11
+adb5 8 319 21
+adbd 13 321 21
+add0 5 2764 15
+add5 3 327 21
+add8 1d 2764 15
+adf5 5a 334 21
+ae4f a 335 21
+ae59 4 327 21
+ae5d 8 328 21
+ae65 20 2764 15
+ae85 8 327 21
+ae8d 12 327 21
+ae9f 18 327 21
+aeb7 46 334 21
+FUNC af00 35d 0 google_breakpad::LinuxDumper::ElfFileIdentifierForMapping(google_breakpad::MappingInfo const&, bool, unsigned int, unsigned char*)
+af00 2b 96 21
+af2b 2 97 21
+af2d 9 96 21
+af36 2 97 21
+af38 8 626 43
+af40 3 97 21
+af43 4 626 43
+af47 9 97 21
+af50 a 98 21
+af5a 4 64 21
+af5e 5 98 21
+af63 14 64 21
+af77 2 100 21
+af79 4 99 21
+af7d 43 137 21
+afc0 1c 103 21
+afdc 4 105 21
+afe0 20 2660 15
+b000 9 105 21
+b009 3 106 21
+b00c 14 113 21
+b020 c 117 21
+b02c 6 118 21
+b032 3 117 21
+b035 b 118 21
+b040 14 121 21
+b054 8 123 21
+b05c 6 122 21
+b062 5 123 21
+b067 a 125 21
+b071 3 123 21
+b074 5 125 21
+b079 5 338 21
+b07e a 126 21
+b088 8 130 21
+b090 2 131 21
+b092 2 130 21
+b094 2 131 21
+b096 5 131 21
+b09b 5 131 21
+b0a0 10 133 21
+b0b0 20 136 21
+b0d0 4 108 21
+b0d4 3 71 12
+b0d7 3 108 21
+b0da 6 71 12
+b0e0 1c 74 12
+b0fc c 86 12
+b108 f 2816 15
+b117 3 86 12
+b11a 5 2816 15
+b11f 9 86 12
+b128 36 2816 15
+b15e e 89 12
+b16c 1c 111 21
+b188 3 75 12
+b18b 2 76 12
+b18d 3 75 12
+b190 4 77 12
+b194 5 76 12
+b199 6 120 12
+b19f 4 124 12
+b1a3 7 93 12
+b1aa 3 124 12
+b1ad 4 125 12
+b1b1 5 93 12
+b1b6 3 125 12
+b1b9 5 93 12
+b1be 4 126 12
+b1c2 8 93 12
+b1ca 5 94 12
+b1cf 3 93 12
+b1d2 13 94 12
+b1e5 9 96 12
+b1ee 7 78 12
+b1f5 d 79 12
+b202 8 72 12
+b20a 1f 97 21
+b229 1f 118 21
+b248 15 136 21
+FUNC b260 1a9 0 google_breakpad::LinuxDumper::LinuxDumper(int)
+b260 17 72 21
+b277 4 79 21
+b27b 9 72 21
+b284 23 79 21
+b2a7 5 60 12
+b2ac 4 190 12
+b2b0 1a 63 12
+b2ca 5 190 12
+b2cf 4 153 12
+b2d3 18 92 43
+b2eb 5 190 12
+b2f0 4 190 12
+b2f4 4 153 12
+b2f8 18 92 43
+b310 a 190 12
+b31a 7 190 12
+b321 7 153 12
+b328 21 92 43
+b349 d 190 12
+b356 17 338 21
+b36d a 626 43
+b377 6 686 43
+b37d 6 688 43
+b383 e 689 43
+b391 1f 83 21
+b3b0 5 687 43
+b3b5 8 1004 43
+b3bd 3 687 43
+b3c0 7 1004 43
+b3c7 7 338 21
+b3ce 6 2701 15
+b3d4 5 134 12
+b3d9 3 136 12
+b3dc 3 135 12
+b3df 1d 2701 15
+b3fc d 72 21
+FUNC b410 7b2 0 google_breakpad::LinuxDumper::EnumerateMappings()
+b410 2 165 21
+b412 7 167 21
+b419 12 165 21
+b42b 18 167 21
+b443 2 186 21
+b445 12 259 21
+b457 7 338 21
+b45e 8 2711 15
+b466 7 178 21
+b46d 4 182 21
+b471 5 178 21
+b476 5 182 21
+b47b 1d 2711 15
+b498 2 185 21
+b49a 4 2711 15
+b49e 2 185 21
+b4a0 4 74 12
+b4a4 4 187 21
+b4a8 4 74 12
+b4ac 5 187 21
+b4b1 1d 74 12
+b4ce 2 75 12
+b4d0 5 76 12
+b4d5 3 75 12
+b4d8 8 77 12
+b4e0 4 76 12
+b4e4 3 82 12
+b4e7 9 49 4
+b4f0 2 191 21
+b4f2 16 49 4
+b508 f 66 4
+b517 5 99 4
+b51c 3 2724 15
+b51f 5 98 4
+b524 3 99 4
+b527 10 2724 15
+b537 6 100 4
+b53d a 102 4
+b547 5 103 4
+b54c 4 66 4
+b550 15 70 4
+b565 13 165 21
+b578 10 70 4
+b588 7 69 4
+b58f 16 78 4
+b5a5 20 2629 15
+b5c5 21 258 21
+b5e6 3 71 4
+b5e9 4 73 4
+b5ed 6 71 4
+b5f3 d 194 21
+b600 5 195 21
+b605 e 116 4
+b613 2 117 4
+b615 8 118 4
+b61d 7 117 4
+b624 14 118 4
+b638 18 105 4
+b650 e 196 21
+b65e 5 197 21
+b663 e 198 21
+b671 5 199 21
+b676 1b 203 21
+b691 9 338 21
+b69a 6 211 21
+b6a0 4 212 21
+b6a4 12 213 21
+b6b6 28 74 12
+b6de 2 75 12
+b6e0 5 76 12
+b6e5 2 77 12
+b6e7 3 76 12
+b6ea 4 82 12
+b6ee 6 77 12
+b6f4 7 222 21
+b6fb 8 221 21
+b703 5 222 21
+b708 5 223 21
+b70d 5 224 21
+b712 8 223 21
+b71a 3 224 21
+b71d 6 226 21
+b723 4 224 21
+b727 5 225 21
+b72c 3 223 21
+b72f 4 225 21
+b733 2 226 21
+b735 a 227 21
+b73f b 228 21
+b74a c 236 21
+b756 16 236 21
+b76c 4 236 21
+b770 5 338 21
+b775 5 236 21
+b77a 4 338 21
+b77e 6 236 21
+b784 4 338 21
+b788 9 236 21
+b791 3 626 43
+b794 11 243 21
+b7a5 7 626 43
+b7ac 8 243 21
+b7b4 9 686 43
+b7bd 2 688 43
+b7bf 5 1320 43
+b7c4 4 689 43
+b7c8 b 1320 43
+b7d3 20 244 21
+b7f3 d 245 21
+b800 13 244 21
+b813 15 246 21
+b828 4 86 12
+b82c 2 2816 15
+b82e 7 86 12
+b835 c 2816 15
+b841 3 86 12
+b844 5 2816 15
+b849 3 86 12
+b84c 27 2816 15
+b873 d 89 12
+b880 17 70 4
+b897 e 2724 15
+b8a5 6 120 12
+b8ab 4 93 12
+b8af 4 124 12
+b8b3 3 93 12
+b8b6 4 125 12
+b8ba 5 93 12
+b8bf 4 124 12
+b8c3 7 93 12
+b8ca 4 126 12
+b8ce 8 93 12
+b8d6 5 94 12
+b8db 4 93 12
+b8df 10 94 12
+b8ef 9 96 12
+b8f8 8 78 12
+b900 8 79 12
+b908 8 82 12
+b910 b 86 4
+b91b 8 87 4
+b923 4 92 4
+b927 3 90 4
+b92a 4 93 4
+b92e 6 90 4
+b934 17 92 4
+b94b f 883 43
+b95a 1d 120 46
+b977 1a 887 43
+b991 4 86 12
+b995 2 2816 15
+b997 7 86 12
+b99e c 2816 15
+b9aa 3 86 12
+b9ad 5 2816 15
+b9b2 9 86 12
+b9bb 31 2816 15
+b9ec c 89 12
+b9f8 23 214 21
+ba1b 9 213 21
+ba24 1a 215 21
+ba3e d 213 21
+ba4b c 216 21
+ba57 a 116 4
+ba61 2 117 4
+ba63 8 118 4
+ba6b 6 117 4
+ba71 c 118 4
+ba7d c 203 21
+ba89 10 203 21
+ba99 7 206 21
+baa0 9 207 21
+baa9 a 206 21
+bab3 1d 229 21
+bad0 7 120 46
+bad7 5 248 21
+badc 8 893 43
+bae4 4 248 21
+bae8 a 893 43
+baf2 2b 1004 43
+bb1d 1f 87 4
+bb3c 7 78 12
+bb43 d 79 12
+bb50 c 120 12
+bb5c a 124 12
+bb66 4 93 12
+bb6a 4 124 12
+bb6e 3 93 12
+bb71 3 124 12
+bb74 4 125 12
+bb78 5 93 12
+bb7d 4 125 12
+bb81 7 93 12
+bb88 4 126 12
+bb8c 8 93 12
+bb94 5 94 12
+bb99 3 93 12
+bb9c 14 94 12
+bbb0 5 96 12
+bbb5 4 94 12
+bbb9 9 96 12
+FUNC bbd0 221 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::reserve(unsigned long)
+bbd0 a 69 44
+bbda 25 66 44
+bbff 9 69 44
+bc08 4 338 21
+bc0c e 707 43
+bc1a 5 71 44
+bc1f 29 86 44
+bc48 4 338 21
+bc4c 2 169 43
+bc4e 5 338 21
+bc53 7 626 43
+bc5a 3 169 43
+bc5d 5 626 43
+bc62 2 169 43
+bc64 a 162 12
+bc6e 4 71 12
+bc72 18 74 12
+bc8a 2 75 12
+bc8c 2 76 12
+bc8e 3 75 12
+bc91 8 77 12
+bc99 4 76 12
+bc9d 1b 245 42
+bcb8 9 120 46
+bcc1 12 245 42
+bcd3 5 83 44
+bcd8 5 82 44
+bcdd 9 83 44
+bce6 12 84 44
+bcf8 e 86 12
+bd06 e 2816 15
+bd14 3 86 12
+bd17 5 2816 15
+bd1c 9 86 12
+bd25 30 2816 15
+bd55 b 89 12
+bd60 8 120 12
+bd68 9 124 12
+bd71 4 125 12
+bd75 5 93 12
+bd7a 3 124 12
+bd7d 3 125 12
+bd80 3 93 12
+bd83 4 126 12
+bd87 16 93 12
+bd9d 5 94 12
+bda2 4 93 12
+bda6 11 94 12
+bdb7 5 96 12
+bdbc 4 94 12
+bdc0 10 96 12
+bdd0 8 78 12
+bdd8 d 79 12
+bde5 c 70 44
+FUNC be00 229 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::reserve(unsigned long)
+be00 a 69 44
+be0a 25 66 44
+be2f 9 69 44
+be38 4 338 21
+be3c e 707 43
+be4a 5 71 44
+be4f 29 86 44
+be78 4 338 21
+be7c 2 169 43
+be7e 5 338 21
+be83 7 626 43
+be8a 3 169 43
+be8d 5 626 43
+be92 2 169 43
+be94 a 162 12
+be9e 4 71 12
+bea2 1c 74 12
+bebe 2 75 12
+bec0 2 76 12
+bec2 3 75 12
+bec5 8 77 12
+becd 4 76 12
+bed1 17 245 42
+bee8 b 120 46
+bef3 12 245 42
+bf05 5 83 44
+bf0a 5 82 44
+bf0f 9 83 44
+bf18 18 84 44
+bf30 e 86 12
+bf3e e 2816 15
+bf4c 3 86 12
+bf4f 5 2816 15
+bf54 9 86 12
+bf5d 30 2816 15
+bf8d b 89 12
+bf98 8 120 12
+bfa0 9 124 12
+bfa9 4 125 12
+bfad 5 93 12
+bfb2 3 124 12
+bfb5 3 125 12
+bfb8 3 93 12
+bfbb 4 126 12
+bfbf 16 93 12
+bfd5 5 94 12
+bfda 4 93 12
+bfde 11 94 12
+bfef 5 96 12
+bff4 4 94 12
+bff8 10 96 12
+c008 8 78 12
+c010 d 79 12
+c01d c 70 44
+FUNC c030 229 0 std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> >::reserve(unsigned long)
+c030 a 69 44
+c03a 25 66 44
+c05f 9 69 44
+c068 4 338 21
+c06c e 707 43
+c07a 5 71 44
+c07f 29 86 44
+c0a8 4 338 21
+c0ac 2 169 43
+c0ae 5 338 21
+c0b3 7 626 43
+c0ba 3 169 43
+c0bd 5 626 43
+c0c2 2 169 43
+c0c4 a 162 12
+c0ce 4 71 12
+c0d2 1c 74 12
+c0ee 2 75 12
+c0f0 2 76 12
+c0f2 3 75 12
+c0f5 8 77 12
+c0fd 4 76 12
+c101 17 245 42
+c118 b 120 46
+c123 12 245 42
+c135 5 83 44
+c13a 5 82 44
+c13f 9 83 44
+c148 18 84 44
+c160 e 86 12
+c16e e 2816 15
+c17c 3 86 12
+c17f 5 2816 15
+c184 9 86 12
+c18d 30 2816 15
+c1bd b 89 12
+c1c8 8 120 12
+c1d0 9 124 12
+c1d9 4 125 12
+c1dd 5 93 12
+c1e2 3 124 12
+c1e5 3 125 12
+c1e8 3 93 12
+c1eb 4 126 12
+c1ef 16 93 12
+c205 5 94 12
+c20a 4 93 12
+c20e 11 94 12
+c21f 5 96 12
+c224 4 94 12
+c228 10 96 12
+c238 8 78 12
+c240 d 79 12
+c24d c 70 44
+FUNC c260 320 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpad::MappingInfo**, std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> > >, google_breakpad::MappingInfo* const&)
+c260 28 316 44
+c288 8 320 44
+c290 3 316 44
+c293 2 320 44
+c295 10 120 46
+c2a5 4 329 44
+c2a9 4 325 44
+c2ad 3 559 38
+c2b0 4 325 44
+c2b4 3 327 44
+c2b7 4 559 38
+c2bb 5 560 38
+c2c0 f 561 38
+c2cf 4 333 44
+c2d3 2d 391 44
+c300 8 120 46
+c308 b 626 43
+c313 9 215 38
+c31c 4 1308 43
+c320 9 1309 43
+c329 3 900 39
+c32c c 162 12
+c338 3 900 39
+c33b 4 162 12
+c33f 8 342 44
+c347 20 74 12
+c367 2 75 12
+c369 2 76 12
+c36b 3 75 12
+c36e 8 77 12
+c376 8 76 12
+c37e 8 351 44
+c386 b 120 46
+c391 4 360 44
+c395 b 245 42
+c3a0 b 120 46
+c3ab d 245 42
+c3b8 13 316 44
+c3cb 4 367 44
+c3cf 11 245 42
+c3e0 b 120 46
+c3eb d 245 42
+c3f8 10 316 44
+c408 4 387 44
+c40c 5 389 44
+c411 4 388 44
+c415 b 389 44
+c420 3 900 39
+c423 c 162 12
+c42f 3 900 39
+c432 5 162 12
+c437 11 342 44
+c448 7 86 12
+c44f 2 2816 15
+c451 7 86 12
+c458 d 2816 15
+c465 3 86 12
+c468 5 2816 15
+c46d 9 86 12
+c476 30 2816 15
+c4a6 a 89 12
+c4b0 8 120 12
+c4b8 9 124 12
+c4c1 4 125 12
+c4c5 8 93 12
+c4cd 3 124 12
+c4d0 3 125 12
+c4d3 4 126 12
+c4d7 16 93 12
+c4ed 5 94 12
+c4f2 4 93 12
+c4f6 15 94 12
+c50b e 96 12
+c519 8 78 12
+c521 d 79 12
+c52e 13 1309 43
+c541 7 900 39
+c548 6 169 43
+c54e 8 900 39
+c556 2 169 43
+c558 4 342 44
+c55c 3 169 43
+c55f 4 342 44
+c563 6 169 43
+c569 a 162 12
+c573 d 71 12
+FUNC c580 460 0 std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, google_breakpad::PageStdAllocator<unsigned long> > >, unsigned long, unsigned long const&)
+c580 11 439 44
+c591 c 442 44
+c59d 1f 444 44
+c5bc 3 900 39
+c5bf 3 447 44
+c5c2 7 900 39
+c5c9 5 450 44
+c5ce 7 452 44
+c5d5 3 245 42
+c5d8 3 452 44
+c5db d 245 42
+c5e8 b 120 46
+c5f3 d 245 42
+c600 3 559 38
+c603 4 456 44
+c607 7 559 38
+c60e 5 456 44
+c613 9 560 38
+c61c 3 459 44
+c61f 9 686 38
+c628 7 687 38
+c62f 5 686 38
+c634 14 525 44
+c648 3 464 44
+c64b 15 321 42
+c660 8 120 46
+c668 a 321 42
+c672 4 468 44
+c676 6 245 42
+c67c 5 468 44
+c681 f 245 42
+c690 b 120 46
+c69b d 245 42
+c6a8 10 472 44
+c6b8 7 687 38
+c6bf 5 686 38
+c6c4 14 525 44
+c6d8 5 338 21
+c6dd 3 626 43
+c6e0 d 1305 43
+c6ed 7 626 43
+c6f4 c 1305 43
+c700 6 1308 43
+c706 3 900 39
+c709 4 1308 43
+c70d 3 900 39
+c710 4 480 44
+c714 3 1309 43
+c717 5 480 44
+c71c 6 1309 43
+c722 15 162 12
+c737 23 74 12
+c75a 3 75 12
+c75d 2 76 12
+c75f 3 75 12
+c762 8 77 12
+c76a e 76 12
+c778 18 561 38
+c790 e 86 12
+c79e 9 2816 15
+c7a7 5 86 12
+c7ac 6 2816 15
+c7b2 3 86 12
+c7b5 5 2816 15
+c7ba 9 86 12
+c7c3 34 2816 15
+c7f7 13 89 12
+c80a 16 486 44
+c820 c 120 46
+c82c a 321 42
+c836 12 245 42
+c848 b 120 46
+c853 d 245 42
+c860 13 439 44
+c873 3 245 42
+c876 4 496 44
+c87a e 245 42
+c888 b 120 46
+c893 d 245 42
+c8a0 10 439 44
+c8b0 5 520 44
+c8b5 5 522 44
+c8ba 5 521 44
+c8bf 5 522 44
+c8c4 14 525 44
+c8d8 9 1309 43
+c8e1 1f 169 43
+c900 c 120 12
+c90c 9 124 12
+c915 4 93 12
+c919 4 124 12
+c91d 3 93 12
+c920 3 124 12
+c923 4 125 12
+c927 5 93 12
+c92c 4 125 12
+c930 4 126 12
+c934 16 93 12
+c94a 5 94 12
+c94f 4 93 12
+c953 15 94 12
+c968 5 96 12
+c96d 4 94 12
+c971 f 96 12
+c980 c 78 12
+c98c d 79 12
+c999 e 472 44
+c9a7 8 241 42
+c9af 14 162 12
+c9c3 2 71 12
+c9c5 4 162 12
+c9c9 b 71 12
+c9d4 c 1306 43
+FUNC c9e0 43f 0 std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<google_breakpad::MappingInfo**, std::vector<google_breakpad::MappingInfo*, google_breakpad::PageStdAllocator<google_breakpad::MappingInfo*> > >, unsigned long, google_breakpad::MappingInfo* const&)
+c9e0 11 439 44
+c9f1 c 442 44
+c9fd 1e 444 44
+ca1b 3 900 39
+ca1e 3 447 44
+ca21 7 900 39
+ca28 9 450 44
+ca31 a 452 44
+ca3b 15 245 42
+ca50 b 120 46
+ca5b 11 245 42
+ca6c 3 559 38
+ca6f 3 456 44
+ca72 3 559 38
+ca75 4 456 44
+ca79 4 559 38
+ca7d 5 560 38
+ca82 f 561 38
+ca91 3 459 44
+ca94 c 686 38
+caa0 7 687 38
+caa7 5 686 38
+caac 14 525 44
+cac0 10 321 42
+cad0 8 120 46
+cad8 e 321 42
+cae6 4 468 44
+caea 3 245 42
+caed 4 468 44
+caf1 f 245 42
+cb00 b 120 46
+cb0b d 245 42
+cb18 8 472 44
+cb20 7 687 38
+cb27 5 686 38
+cb2c 14 525 44
+cb40 4 626 43
+cb44 d 1305 43
+cb51 7 626 43
+cb58 c 1305 43
+cb64 6 1308 43
+cb6a 3 900 39
+cb6d 4 1308 43
+cb71 3 900 39
+cb74 4 480 44
+cb78 3 1309 43
+cb7b 5 480 44
+cb80 6 1309 43
+cb86 15 162 12
+cb9b 20 74 12
+cbbb 2 75 12
+cbbd 2 76 12
+cbbf 3 75 12
+cbc2 8 77 12
+cbca e 76 12
+cbd8 7 86 12
+cbdf 2 2816 15
+cbe1 7 86 12
+cbe8 d 2816 15
+cbf5 3 86 12
+cbf8 5 2816 15
+cbfd 9 86 12
+cc06 34 2816 15
+cc3a 6 169 43
+cc40 10 486 44
+cc50 c 120 46
+cc5c a 321 42
+cc66 4 491 44
+cc6a 16 245 42
+cc80 b 120 46
+cc8b d 245 42
+cc98 13 439 44
+ccab 4 498 44
+ccaf 4 496 44
+ccb3 d 245 42
+ccc0 b 120 46
+cccb d 245 42
+ccd8 10 439 44
+cce8 4 520 44
+ccec 5 522 44
+ccf1 4 521 44
+ccf5 4 522 44
+ccf9 17 525 44
+cd10 9 1309 43
+cd19 17 169 43
+cd30 c 120 12
+cd3c 9 124 12
+cd45 4 93 12
+cd49 4 124 12
+cd4d 3 93 12
+cd50 3 124 12
+cd53 4 125 12
+cd57 5 93 12
+cd5c 4 125 12
+cd60 4 126 12
+cd64 16 93 12
+cd7a 5 94 12
+cd7f 4 93 12
+cd83 15 94 12
+cd98 5 96 12
+cd9d 4 94 12
+cda1 f 96 12
+cdb0 c 78 12
+cdbc d 79 12
+cdc9 8 245 42
+cdd1 8 444 44
+cdd9 d 472 44
+cde6 8 241 42
+cdee c 1306 43
+cdfa 14 162 12
+ce0e 2 71 12
+ce10 4 162 12
+ce14 b 71 12
+FUNC ce20 3 0 google_breakpad::LinuxPtraceDumper::IsPostMortem() const
+ce20 3 228 22
+FUNC ce30 d8 0 google_breakpad::LinuxPtraceDumper::BuildProcPath(char*, int, char const*) const
+ce30 a 107 22
+ce3a 2 109 22
+ce3c 1b 107 22
+ce57 3 108 22
+ce5a 3 107 22
+ce5d a 108 22
+ce67 5 108 22
+ce6c 8 111 22
+ce74 3 112 22
+ce77 3 111 22
+ce7a 2 112 22
+ce7c 2 113 22
+ce7e 2a 126 22
+cea8 b 115 22
+ceb3 7 116 22
+ceba 9 117 22
+cec3 a 121 22
+cecd d 120 22
+ceda 5 121 22
+cedf 4 122 22
+cee3 b 123 22
+ceee 5 122 22
+cef3 5 123 22
+cef8 6 124 22
+cefe a 125 22
+FUNC cf10 ac 0 google_breakpad::LinuxPtraceDumper::CopyFromProcess(void*, int, void const*, unsigned long)
+cf10 11 129 22
+cf21 3 136 22
+cf24 9 130 22
+cf2d 5 136 22
+cf32 10 138 22
+cf42 6 131 22
+cf48 8 137 22
+cf50 5 138 22
+cf55 3 137 22
+cf58 a 2717 15
+cf62 8 137 22
+cf6a f 2717 15
+cf79 a 141 22
+cf83 3 142 22
+cf86 5 141 22
+cf8b 5 136 22
+cf90 10 144 22
+cfa0 d 2717 15
+cfad 9 139 22
+cfb6 6 2717 15
+FUNC cfc0 c2 0 google_breakpad::LinuxPtraceDumper::ThreadsResume()
+cfc0 2 248 22
+cfc2 3 250 22
+cfc5 b 248 22
+cfd0 9 249 22
+cfd9 4 291 22
+cfdd 4 626 43
+cfe1 6 252 22
+cfe7 7 626 43
+cfee 7 252 22
+cff5 37 2717 15
+d02c 4 291 22
+d030 4 626 43
+d034 4 252 22
+d038 7 626 43
+d03f 5 252 22
+d044 7 254 22
+d04b 15 256 22
+d060 22 2717 15
+FUNC d090 49f 0 google_breakpad::LinuxPtraceDumper::GetThreadInfoByIndex(unsigned long, google_breakpad::ThreadInfo*)
+d090 17 150 22
+d0a7 4 291 22
+d0ab b 626 43
+d0b6 5 151 22
+d0bb 3 154 22
+d0be 3 156 22
+d0c1 3 154 22
+d0c4 6 156 22
+d0ca 1c 158 22
+d0e6 2 206 22
+d0e8 12 224 22
+d0fa 23 2711 15
+d11d 4 163 22
+d121 2 162 22
+d123 4 2711 15
+d127 2 162 22
+d129 23 74 12
+d14c 3 75 12
+d14f 5 76 12
+d154 3 75 12
+d157 8 77 12
+d15f 3 76 12
+d162 3 82 12
+d165 4 49 4
+d169 5 175 22
+d16e d 49 4
+d17b 5 175 22
+d180 3 49 4
+d183 19 169 22
+d19c 6 99 4
+d1a2 f 66 4
+d1b1 5 99 4
+d1b6 3 2724 15
+d1b9 5 98 4
+d1be 3 99 4
+d1c1 10 2724 15
+d1d1 6 100 4
+d1d7 a 102 4
+d1e1 5 103 4
+d1e6 4 66 4
+d1ea 15 70 4
+d1ff 11 150 22
+d210 18 70 4
+d228 7 69 4
+d22f c 78 4
+d23b 20 2629 15
+d25b c 182 22
+d267 b 182 22
+d272 c 2717 15
+d27e 5 185 22
+d283 1c 2717 15
+d29f 8 189 22
+d2a7 2c 2717 15
+d2d3 b 205 22
+d2de 13 2717 15
+d2f1 e 199 22
+d2ff d 221 22
+d30c a 223 22
+d316 4 86 12
+d31a 2 2816 15
+d31c 7 86 12
+d323 c 2816 15
+d32f 3 86 12
+d332 5 2816 15
+d337 3 86 12
+d33a 2b 2816 15
+d365 f 89 12
+d374 3 71 4
+d377 4 73 4
+d37b 6 71 4
+d381 18 172 22
+d399 c 173 22
+d3a5 d 116 4
+d3b2 2 117 4
+d3b4 8 118 4
+d3bc 7 117 4
+d3c3 d 118 4
+d3d0 10 105 4
+d3e0 18 174 22
+d3f8 10 175 22
+d408 10 70 4
+d418 10 2724 15
+d428 7 78 12
+d42f 8 79 12
+d437 8 82 12
+d43f b 86 4
+d44a 8 87 4
+d452 4 92 4
+d456 3 90 4
+d459 4 93 4
+d45d 6 90 4
+d463 9 92 4
+d46c a 120 12
+d476 3 93 12
+d479 4 124 12
+d47d 3 93 12
+d480 4 125 12
+d484 5 93 12
+d489 4 124 12
+d48d 7 93 12
+d494 4 126 12
+d498 8 93 12
+d4a0 5 94 12
+d4a5 3 93 12
+d4a8 10 94 12
+d4b8 c 96 12
+d4c4 e 2717 15
+d4d2 1f 87 4
+d4f1 1f 116 4
+d510 1f 156 22
+FUNC d530 20 0 google_breakpad::LinuxPtraceDumper::LinuxPtraceDumper(int)
+d530 1 101 22
+d531 3 101 22
+d534 1a 103 22
+d54e 2 104 22
+FUNC d550 36d 0 google_breakpad::LinuxPtraceDumper::EnumerateThreads()
+d550 17 260 22
+d567 7 262 22
+d56e 11 260 22
+d57f 15 262 22
+d594 2 267 22
+d596 3a 289 22
+d5d0 30 2711 15
+d600 4 266 22
+d604 23 74 12
+d627 3 75 12
+d62a 5 76 12
+d62f 2 77 12
+d631 4 75 12
+d635 6 77 12
+d63b 3 76 12
+d63e 8 281 22
+d646 4 82 3
+d64a b 51 3
+d655 2 274 22
+d657 8 272 22
+d65f 5 281 22
+d664 4 65 3
+d668 17 275 22
+d67f 8 87 3
+d687 2d 2654 15
+d6b4 22 2629 15
+d6d6 a 288 22
+d6e0 5 93 3
+d6e5 3 94 3
+d6e8 3 93 3
+d6eb 5 94 3
+d6f0 6 93 3
+d6f6 12 94 3
+d708 f 276 22
+d717 8 275 22
+d71f 8 278 22
+d727 8 277 22
+d72f d 278 22
+d73c 10 278 22
+d74c e 883 43
+d75a 8 120 46
+d762 16 887 43
+d778 10 288 22
+d788 9 68 3
+d791 6 70 3
+d797 5 71 3
+d79c 13 77 3
+d7af 21 80 3
+d7d0 10 73 3
+d7e0 4 86 12
+d7e4 2 2816 15
+d7e6 7 86 12
+d7ed d 2816 15
+d7fa 3 86 12
+d7fd 5 2816 15
+d802 3 86 12
+d805 27 2816 15
+d82c c 89 12
+d838 6 120 12
+d83e 3 93 12
+d841 4 124 12
+d845 3 93 12
+d848 4 125 12
+d84c 5 93 12
+d851 4 124 12
+d855 7 93 12
+d85c 4 126 12
+d860 8 93 12
+d868 5 94 12
+d86d 3 93 12
+d870 10 94 12
+d880 10 96 12
+d890 7 78 12
+d897 d 79 12
+d8a4 19 893 43
+FUNC d8c0 235 0 google_breakpad::LinuxPtraceDumper::ThreadsSuspend()
+d8c0 2 230 22
+d8c2 5 232 22
+d8c7 12 230 22
+d8d9 d 231 22
+d8e6 4 291 22
+d8ea b 626 43
+d8f5 9 233 22
+d8fe 4 230 22
+d902 5 80 22
+d907 7 230 22
+d90e 4 240 22
+d912 3 230 22
+d915 5 240 22
+d91a 6 2717 15
+d920 8 240 22
+d928 4 234 22
+d92c 8 751 43
+d934 7 60 22
+d93b 1e 2717 15
+d959 c 61 22
+d965 15 2877 15
+d97a 3 66 22
+d97d 3 2877 15
+d980 2 66 22
+d982 13 2877 15
+d995 b 65 22
+d9a0 5 66 22
+d9a5 1e 2717 15
+d9c3 5 291 22
+d9c8 8 626 43
+d9d0 8 751 43
+d9d8 4 626 43
+d9dc 10 239 22
+d9ec 12 291 22
+d9fe a 626 43
+da08 4 240 22
+da0c 3 626 43
+da0f 9 686 43
+da18 2 688 43
+da1a 4 689 43
+da1e f 1320 43
+da2d 4 241 22
+da31 d 233 22
+da3e 3 245 22
+da41 9 244 22
+da4a 3 245 22
+da4d 13 246 22
+da60 1a 2717 15
+da7a 26 80 22
+daa0 30 1004 43
+dad0 14 2717 15
+dae4 7 233 22
+daeb a 2717 15
+FUNC db00 13 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper()
+db00 13 42 6
+FUNC db20 20 0 google_breakpad::LinuxPtraceDumper::~LinuxPtraceDumper()
+db20 8 42 6
+db28 18 42 6
+FUNC db40 306 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::_M_insert_aux(__gnu_cxx::__normal_iterator<int*, std::vector<int, google_breakpad::PageStdAllocator<int> > >, int const&)
+db40 28 316 44
+db68 8 320 44
+db70 3 316 44
+db73 2 320 44
+db75 a 120 46
+db7f 4 329 44
+db83 4 325 44
+db87 3 559 38
+db8a 4 325 44
+db8e 3 327 44
+db91 4 559 38
+db95 5 560 38
+db9a f 561 38
+dba9 3 333 44
+dbac 24 391 44
+dbd0 4 291 22
+dbd4 a 626 43
+dbde 9 215 38
+dbe7 4 1308 43
+dbeb 9 1309 43
+dbf4 3 900 39
+dbf7 d 162 12
+dc04 3 900 39
+dc07 3 162 12
+dc0a 8 342 44
+dc12 23 74 12
+dc35 3 75 12
+dc38 2 76 12
+dc3a 3 75 12
+dc3d 8 77 12
+dc45 8 76 12
+dc4d 8 351 44
+dc55 a 120 46
+dc5f 11 245 42
+dc70 9 120 46
+dc79 d 245 42
+dc86 13 316 44
+dc99 f 245 42
+dca8 9 120 46
+dcb1 d 245 42
+dcbe 10 316 44
+dcce 4 387 44
+dcd2 5 389 44
+dcd7 4 388 44
+dcdb d 389 44
+dce8 3 900 39
+dceb c 162 12
+dcf7 3 900 39
+dcfa 5 162 12
+dcff 11 342 44
+dd10 7 86 12
+dd17 2 2816 15
+dd19 7 86 12
+dd20 d 2816 15
+dd2d 3 86 12
+dd30 5 2816 15
+dd35 9 86 12
+dd3e 30 2816 15
+dd6e f 89 12
+dd7d 8 120 12
+dd85 9 124 12
+dd8e 4 125 12
+dd92 8 93 12
+dd9a 3 124 12
+dd9d 3 125 12
+dda0 4 126 12
+dda4 16 93 12
+ddba 5 94 12
+ddbf 4 93 12
+ddc3 15 94 12
+ddd8 b 96 12
+dde3 8 78 12
+ddeb d 79 12
+ddf8 13 1309 43
+de0b 7 900 39
+de12 6 169 43
+de18 8 900 39
+de20 2 169 43
+de22 4 342 44
+de26 3 169 43
+de29 4 342 44
+de2d 6 169 43
+de33 6 162 12
+de39 d 71 12
+FUNC de50 458 0 std::vector<int, google_breakpad::PageStdAllocator<int> >::_M_fill_insert(__gnu_cxx::__normal_iterator<int*, std::vector<int, google_breakpad::PageStdAllocator<int> > >, unsigned long, int const&)
+de50 11 439 44
+de61 c 442 44
+de6d 1f 444 44
+de8c 3 900 39
+de8f 3 447 44
+de92 7 900 39
+de99 5 450 44
+de9e 7 452 44
+dea5 3 245 42
+dea8 3 452 44
+deab d 245 42
+deb8 9 120 46
+dec1 d 245 42
+dece 3 559 38
+ded1 4 456 44
+ded5 7 559 38
+dedc 5 456 44
+dee1 9 560 38
+deea 3 459 44
+deed b 686 38
+def8 7 687 38
+deff 5 686 38
+df04 14 525 44
+df18 3 464 44
+df1b 15 321 42
+df30 8 120 46
+df38 a 321 42
+df42 4 468 44
+df46 6 245 42
+df4c 5 468 44
+df51 f 245 42
+df60 9 120 46
+df69 d 245 42
+df76 a 472 44
+df80 7 687 38
+df87 5 686 38
+df8c 14 525 44
+dfa0 5 291 22
+dfa5 3 626 43
+dfa8 d 1305 43
+dfb5 7 626 43
+dfbc c 1305 43
+dfc8 6 1308 43
+dfce 3 900 39
+dfd1 4 1308 43
+dfd5 3 900 39
+dfd8 4 480 44
+dfdc 3 1309 43
+dfdf 5 480 44
+dfe4 6 1309 43
+dfea 15 162 12
+dfff 23 74 12
+e022 3 75 12
+e025 2 76 12
+e027 3 75 12
+e02a 8 77 12
+e032 e 76 12
+e040 20 561 38
+e060 e 86 12
+e06e 9 2816 15
+e077 5 86 12
+e07c 6 2816 15
+e082 3 86 12
+e085 5 2816 15
+e08a 9 86 12
+e093 34 2816 15
+e0c7 13 89 12
+e0da 16 486 44
+e0f0 b 120 46
+e0fb a 321 42
+e105 13 245 42
+e118 9 120 46
+e121 d 245 42
+e12e 13 439 44
+e141 3 245 42
+e144 4 496 44
+e148 8 245 42
+e150 9 120 46
+e159 d 245 42
+e166 10 439 44
+e176 5 520 44
+e17b 5 522 44
+e180 5 521 44
+e185 5 522 44
+e18a 16 525 44
+e1a0 9 1309 43
+e1a9 1f 169 43
+e1c8 c 120 12
+e1d4 9 124 12
+e1dd 4 93 12
+e1e1 4 124 12
+e1e5 3 93 12
+e1e8 3 124 12
+e1eb 4 125 12
+e1ef 5 93 12
+e1f4 4 125 12
+e1f8 4 126 12
+e1fc 16 93 12
+e212 5 94 12
+e217 4 93 12
+e21b 15 94 12
+e230 5 96 12
+e235 4 94 12
+e239 f 96 12
+e248 c 78 12
+e254 d 79 12
+e261 e 472 44
+e26f 8 241 42
+e277 14 162 12
+e28b 2 71 12
+e28d 4 162 12
+e291 b 71 12
+e29c c 1306 43
+FUNC e2b0 e3 0 isLegalUTF8
+e2b0 3 294 25
+e2b3 3 295 25
+e2b6 4 294 25
+e2ba e 295 25
+e2c8 2 296 25
+e2ca 6 315 25
+e2d0 8 295 25
+e2d8 3 311 25
+e2db 2 298 25
+e2dd 5 311 25
+e2e2 e 313 25
+e2f0 a 298 25
+e2fa 5 298 25
+e2ff 4 298 25
+e303 4 299 25
+e307 2 298 25
+e309 4 299 25
+e30d 5 299 25
+e312 e 299 25
+e320 4 300 25
+e324 2 298 25
+e326 5 300 25
+e32b f 302 25
+e33a e 304 25
+e348 a 302 25
+e352 2 298 25
+e354 4 308 25
+e358 8 315 25
+e360 18 306 25
+e378 10 305 25
+e388 b 307 25
+FUNC e3a0 fe 0 ConvertUTF32toUTF16
+e3a0 3 64 25
+e3a3 1 62 25
+e3a4 3 65 25
+e3a7 1 62 25
+e3a8 9 66 25
+e3b1 f 68 25
+e3c0 10 74 25
+e3d0 9 75 25
+e3d9 a 89 25
+e3e3 5 66 25
+e3e8 c 68 25
+e3f4 7 71 25
+e3fb 9 72 25
+e404 9 85 25
+e40d 5 86 25
+e412 3 66 25
+e415 5 87 25
+e41a 6 66 25
+e420 3 102 25
+e423 3 103 25
+e426 a 105 25
+e430 10 83 25
+e440 9 93 25
+e449 7 97 25
+e450 3 98 25
+e453 7 99 25
+e45a 4 98 25
+e45e 6 99 25
+e464 6 98 25
+e46a 5 99 25
+e46f 4 98 25
+e473 9 99 25
+e47c 3 93 25
+e47f 3 102 25
+e482 5 95 25
+e487 3 103 25
+e48a 3 105 25
+e48d 3 75 25
+e490 7 77 25
+e497 3 66 25
+e49a 4 63 25
+FUNC e4a0 e6 0 ConvertUTF16toUTF32
+e4a0 3 112 25
+e4a3 3 113 25
+e4a6 9 115 25
+e4af 9 110 25
+e4b8 9 121 25
+e4c1 5 122 25
+e4c6 10 124 25
+e4d6 4 125 25
+e4da 4 127 25
+e4de 8 125 25
+e4e6 5 146 25
+e4eb 7 150 25
+e4f2 8 115 25
+e4fa 8 117 25
+e502 10 119 25
+e512 5 138 25
+e517 10 140 25
+e527 2 161 25
+e529 5 142 25
+e52e 3 152 25
+e531 3 153 25
+e534 c 161 25
+e540 5 128 25
+e545 5 146 25
+e54a 2 161 25
+e54c 5 148 25
+e551 3 152 25
+e554 3 153 25
+e557 b 161 25
+e562 2 111 25
+e564 3 152 25
+e567 3 153 25
+e56a 5 161 25
+e56f 5 135 25
+e574 3 152 25
+e577 3 153 25
+e57a 3 161 25
+e57d 3 152 25
+e580 2 111 25
+e582 3 153 25
+e585 1 161 25
+FUNC e590 216 0 ConvertUTF16toUTF8
+e590 2 213 25
+e592 3 215 25
+e595 2 213 25
+e597 3 217 25
+e59a 1 213 25
+e59b 3 216 25
+e59e 1 213 25
+e59f 9 217 25
+e5a8 8 223 25
+e5b0 10 225 25
+e5c0 9 227 25
+e5c9 5 228 25
+e5ce 14 230 25
+e5e2 4 231 25
+e5e6 4 233 25
+e5ea 8 231 25
+e5f2 6 253 25
+e5f8 4 261 25
+e5fc 12 262 25
+e60e 12 261 25
+e620 5 244 25
+e625 10 246 25
+e635 1 277 25
+e636 3 274 25
+e639 3 275 25
+e63c 5 248 25
+e641 f 277 25
+e650 8 254 25
+e658 4 261 25
+e65c 12 262 25
+e66e 12 261 25
+e680 5 234 25
+e685 8 255 25
+e68d 4 261 25
+e691 f 262 25
+e6a0 10 261 25
+e6b0 c 256 25
+e6bc 4 261 25
+e6c0 9 262 25
+e6c9 15 267 25
+e6de 6 261 25
+e6e4 8 267 25
+e6ec 1a 268 25
+e706 14 269 25
+e71a e 270 25
+e728 3 217 25
+e72b 5 272 25
+e730 4 270 25
+e734 6 217 25
+e73a 1 277 25
+e73b 3 274 25
+e73e 3 275 25
+e741 2 214 25
+e743 d 277 25
+e750 a 258 25
+e75a 1 277 25
+e75b 3 274 25
+e75e 3 275 25
+e761 5 241 25
+e766 6 277 25
+e76c 7 262 25
+e773 1 277 25
+e774 3 264 25
+e777 3 274 25
+e77a 5 264 25
+e77f 3 275 25
+e782 6 277 25
+e788 9 262 25
+e791 3 261 25
+e794 12 262 25
+FUNC e7b0 2b 0 isLegalUTF8Sequence
+e7b0 11 324 25
+e7c1 b 325 25
+e7cc c 328 25
+e7d8 3 329 25
+FUNC e7e0 265 0 ConvertUTF8toUTF16
+e7e0 e 334 25
+e7ee 3 336 25
+e7f1 3 337 25
+e7f4 13 334 25
+e807 3 338 25
+e80a 5 334 25
+e80f 6 338 25
+e815 14 340 25
+e829 17 341 25
+e840 17 345 25
+e857 2 339 25
+e859 17 352 25
+e870 2 339 25
+e872 f 354 25
+e881 f 355 25
+e890 f 356 25
+e89f f 357 25
+e8ae b 358 25
+e8b9 e 360 25
+e8c7 b 362 25
+e8d2 c 366 25
+e8de 14 368 25
+e8f2 8 377 25
+e8fa a 338 25
+e904 14 340 25
+e918 12 341 25
+e92a 5 342 25
+e92f 8 398 25
+e937 8 399 25
+e93f 11 401 25
+e950 30 339 25
+e980 10 353 25
+e990 10 339 25
+e9a0 c 380 25
+e9ac a 385 25
+e9b6 a 338 25
+e9c0 10 335 25
+e9d0 8 379 25
+e9d8 b 389 25
+e9e3 6 393 25
+e9e9 3 394 25
+e9ec 5 395 25
+e9f1 4 394 25
+e9f5 4 395 25
+e9f9 5 394 25
+e9fe 5 395 25
+ea03 4 394 25
+ea07 9 395 25
+ea10 3 390 25
+ea13 5 391 25
+ea18 6 390 25
+ea1e a 391 25
+ea28 a 346 25
+ea32 3 382 25
+ea35 5 381 25
+ea3a 6 382 25
+ea40 5 383 25
+FUNC ea50 1c0 0 ConvertUTF32toUTF8
+ea50 2 406 25
+ea52 3 408 25
+ea55 2 410 25
+ea57 2 406 25
+ea59 3 410 25
+ea5c 3 406 25
+ea5f 3 409 25
+ea62 1 406 25
+ea63 d 410 25
+ea70 3 416 25
+ea73 7 415 25
+ea7a 2 416 25
+ea7c 14 418 25
+ea90 6 428 25
+ea96 4 437 25
+ea9a f 438 25
+eaa9 f 437 25
+eab8 9 429 25
+eac1 4 437 25
+eac5 f 438 25
+ead4 c 437 25
+eae0 9 430 25
+eae9 4 437 25
+eaed f 438 25
+eafc c 437 25
+eb08 d 431 25
+eb15 4 437 25
+eb19 9 438 25
+eb22 15 443 25
+eb37 6 437 25
+eb3d 8 443 25
+eb45 17 444 25
+eb5c 17 445 25
+eb73 f 446 25
+eb82 3 410 25
+eb85 5 448 25
+eb8a 3 415 25
+eb8d 4 446 25
+eb91 6 410 25
+eb97 1 453 25
+eb98 3 450 25
+eb9b 3 451 25
+eb9e 12 453 25
+ebb0 6 433 25
+ebb6 a 434 25
+ebc0 1 453 25
+ebc1 3 450 25
+ebc4 3 451 25
+ebc7 5 420 25
+ebcc 8 453 25
+ebd4 7 438 25
+ebdb 1 453 25
+ebdc 3 440 25
+ebdf 3 450 25
+ebe2 5 440 25
+ebe7 3 451 25
+ebea 8 453 25
+ebf2 9 438 25
+ebfb 3 437 25
+ebfe 12 438 25
+FUNC ec10 29f 0 ConvertUTF8toUTF32
+ec10 e 458 25
+ec1e 3 460 25
+ec21 3 461 25
+ec24 14 458 25
+ec38 3 462 25
+ec3b 5 458 25
+ec40 6 462 25
+ec46 14 464 25
+ec5a 12 465 25
+ec6c 4 457 25
+ec70 18 459 25
+ec88 7 469 25
+ec8f 4 457 25
+ec93 19 469 25
+ecac 2 463 25
+ecae 1a 476 25
+ecc8 2 463 25
+ecca 10 478 25
+ecda 10 479 25
+ecea 10 480 25
+ecfa 10 481 25
+ed0a c 482 25
+ed16 b 484 25
+ed21 b 486 25
+ed2c c 490 25
+ed38 14 495 25
+ed4c c 496 25
+ed58 3 457 25
+ed5b 8 501 25
+ed63 b 462 25
+ed6e 19 464 25
+ed87 17 465 25
+ed9e 8 466 25
+eda6 5 511 25
+edab 5 512 25
+edb0 3 511 25
+edb3 3 512 25
+edb6 1a 514 25
+edd0 30 463 25
+ee00 10 477 25
+ee10 10 463 25
+ee20 5 462 25
+ee25 3 457 25
+ee28 8 508 25
+ee30 8 507 25
+ee38 18 462 25
+ee50 3 457 25
+ee53 10 504 25
+ee63 d 470 25
+ee70 6 487 25
+ee76 8 488 25
+ee7e 6 487 25
+ee84 5 488 25
+ee89 6 497 25
+ee8f 8 498 25
+ee97 6 497 25
+ee9d 5 499 25
+eea2 d 459 25
+FUNC eeb0 a 0 google_breakpad::FileID::FileID(char const*)
+eeb0 a 52 27
+FUNC eec0 1ee 0 google_breakpad::FileID::ElfFileIdentifierFromMappedFile(void const*, unsigned char*)
+eec0 a 143 27
+eeca 5 99 27
+eecf 4 143 27
+eed3 12 99 27
+eee5 f 98 27
+eef4 21 102 27
+ef15 8 98 27
+ef1d 23 125 27
+ef40 2 127 27
+ef42 c 124 27
+ef4e f 130 27
+ef5d d 132 27
+ef6a 5 131 27
+ef6f b 132 27
+ef7a 6 133 27
+ef80 8 78 27
+ef88 b 135 27
+ef93 6 134 27
+ef99 4 136 27
+ef9d 5 133 27
+efa2 5 146 27
+efa7 9 150 27
+efb0 b 98 27
+efbb d 107 27
+efc8 9 110 27
+efd1 4 66 27
+efd5 5 112 27
+efda 3 66 27
+efdd 13 68 27
+eff0 1a 71 27
+f00a 9 68 27
+f013 6 69 27
+f019 b 76 27
+f024 3 82 27
+f027 a 85 27
+f031 b 82 27
+f03c 5 85 27
+f041 3 87 27
+f044 5 194 38
+f049 6 87 27
+f04f 8 194 38
+f057 a 87 27
+f061 4 66 27
+f065 5 109 27
+f06a 3 66 27
+f06d 13 68 27
+f080 1a 71 27
+f09a 9 68 27
+f0a3 b 69 27
+FUNC f0b0 59 0 google_breakpad::FileID::ElfFileIdentifier(unsigned char*)
+f0b0 4 152 27
+f0b4 3 153 27
+f0b7 4 152 27
+f0bb a 153 27
+f0c5 5 192 27
+f0ca 5 154 27
+f0cf 1b 157 27
+f0ea 6 158 27
+f0f0 4 155 27
+f0f4 15 157 27
+FUNC f110 e5 0 google_breakpad::FileID::ConvertIdentifierToString(unsigned char const*, char*, int)
+f110 2 162 27
+f112 c 166 27
+f11e 8 168 27
+f126 3 170 27
+f129 4 172 27
+f12d 4 170 27
+f131 4 172 27
+f135 4 170 27
+f139 2 175 27
+f13b 5 170 27
+f140 5 172 27
+f145 13 175 27
+f158 a 175 27
+f162 6 178 27
+f168 8 181 27
+f170 3 178 27
+f173 4 179 27
+f177 3 178 27
+f17a 3 181 27
+f17d 4 179 27
+f181 6 178 27
+f187 2 181 27
+f189 5 181 27
+f18e a 182 27
+f198 1a 184 27
+f1b2 1a 185 27
+f1cc 2 175 27
+f1ce 4 185 27
+f1d2 2 175 27
+f1d4 7 189 27
+f1db 1 190 27
+f1dc 4 189 27
+f1e0 2 190 27
+f1e2 6 174 27
+f1e8 6 189 27
+f1ee 1 190 27
+f1ef 4 189 27
+f1f3 2 190 27
+FUNC f200 10 0 google_breakpad::MemoryMappedFile::MemoryMappedFile()
+f200 10 50 13
+FUNC f210 56 0 google_breakpad::MemoryMappedFile::Unmap()
+f210 11 98 30
+f221 3 105 30
+f224 5 99 30
+f229 1f 2701 15
+f248 7 70 13
+f24f 8 72 13
+f257 f 103 30
+FUNC f270 193 0 google_breakpad::MemoryMappedFile::Map(char const*)
+f270 a 57 30
+f27a 2 2711 15
+f27c 14 57 30
+f290 3 57 30
+f293 5 58 30
+f298 1b 2711 15
+f2b3 9 2629 15
+f2bc 34 96 30
+f2f0 5 61 30
+f2f5 3 2645 15
+f2f8 3 67 30
+f2fb 20 2645 15
+f31b 1e 2629 15
+f339 7 73 30
+f340 5 67 30
+f345 b 67 30
+f350 6 79 30
+f356 39 2816 15
+f38f 1e 2629 15
+f3ad 6 90 30
+f3b3 5 94 30
+f3b8 8 72 13
+f3c0 4 70 13
+f3c4 5 95 30
+f3c9 17 72 13
+f3e0 13 2629 15
+f3f3 5 81 30
+f3f8 b 2629 15
+FUNC f410 14 0 google_breakpad::MemoryMappedFile::MemoryMappedFile(char const*)
+f410 f 50 13
+f41f 5 50 30
+FUNC f430 5 0 google_breakpad::MemoryMappedFile::~MemoryMappedFile()
+f430 5 54 30
+FUNC f440 3a 0 google_breakpad::SafeReadLink(char const*, char*, unsigned long)
+f440 1 39 31
+f441 1b 2726 15
+f45c 2 50 31
+f45e 2 51 31
+f460 b 46 31
+f46b 4 47 31
+f46f 5 48 31
+f474 2 51 31
+f476 2 50 31
+f478 2 51 31
+FUNC f480 1f 0 google_breakpad::IsValidElf(void const*)
+f480 7 111 26
+f487 4 109 26
+f48b f 111 26
+f49a 5 112 26
+FUNC f4a0 5 0 google_breakpad::ElfClass(void const*)
+f4a0 4 118 26
+f4a4 1 119 26
+FUNC f4b0 466 0 google_breakpad::FindElfSection(void const*, char const*, unsigned int, void const**, int*, int*)
+f4b0 25 126 26
+f4d5 3 127 26
+f4d8 5 126 26
+f4dd 6 127 26
+f4e3 c 128 26
+f4ef c 129 26
+f4fb 7 131 26
+f502 d 132 26
+f50f 9 134 26
+f518 2 135 26
+f51a 26 156 26
+f540 8 137 26
+f548 5 138 26
+f54d 3 139 26
+f550 9 145 26
+f559 5 149 26
+f55e 1c 55 26
+f57a a 58 26
+f584 4 62 26
+f588 a 42 10
+f592 4 70 26
+f596 7 62 26
+f59d 4 42 10
+f5a1 7 65 26
+f5a8 6 53 10
+f5ae 5 65 26
+f5b3 6 53 10
+f5b9 9 54 10
+f5c2 9 55 10
+f5cb e 57 10
+f5d9 8 58 10
+f5e1 3 121 26
+f5e4 3 63 10
+f5e7 3 121 26
+f5ea 3 63 10
+f5ed 17 121 26
+f604 5 61 10
+f609 4 63 10
+f60d 3 62 10
+f610 7 63 10
+f617 4 62 10
+f61b 2a 63 10
+f645 9 72 26
+f64e 8 73 26
+f656 e 74 26
+f664 b 152 26
+f66f 1c 55 26
+f68b a 58 26
+f695 4 62 26
+f699 3 42 10
+f69c 4 70 26
+f6a0 4 62 26
+f6a4 3 42 10
+f6a7 4 62 26
+f6ab 4 42 10
+f6af 4 65 26
+f6b3 3 42 10
+f6b6 3 65 26
+f6b9 c 53 10
+f6c5 9 54 10
+f6ce 9 55 10
+f6d7 13 57 10
+f6ea 11 58 10
+f6fb 3 121 26
+f6fe 3 63 10
+f701 3 121 26
+f704 3 63 10
+f707 15 121 26
+f71c 9 61 10
+f725 4 63 10
+f729 2 62 10
+f72b 2 63 10
+f72d 4 62 10
+f731 37 63 10
+f768 b 72 26
+f773 a 73 26
+f77d 9 74 26
+f786 1f 127 26
+f7a5 1f 129 26
+f7c4 1f 128 26
+f7e3 3e 55 10
+f821 1c 54 10
+f83d 1f 53 10
+f85c 1f 58 26
+f87b 1f 55 26
+f89a 1f 54 10
+f8b9 1f 53 10
+f8d8 1f 58 26
+f8f7 1f 55 26
+FUNC f920 29c 0 google_breakpad::FindElfSegment(void const*, unsigned int, void const**, int*, int*)
+f920 20 162 26
+f940 9 163 26
+f949 c 164 26
+f955 c 165 26
+f961 7 167 26
+f968 c 168 26
+f974 9 170 26
+f97d 2 171 26
+f97f 21 192 26
+f9a0 8 173 26
+f9a8 5 174 26
+f9ad 3 175 26
+f9b0 9 181 26
+f9b9 5 185 26
+f9be 1c 90 26
+f9da a 93 26
+f9e4 4 98 26
+f9e8 7 42 10
+f9ef 3 98 26
+f9f2 3 42 10
+f9f5 2 98 26
+f9f7 9 99 26
+fa00 20 158 26
+fa20 11 99 26
+fa31 9 98 26
+fa3a b 188 26
+fa45 1c 90 26
+fa61 a 93 26
+fa6b 3 42 10
+fa6e 4 98 26
+fa72 3 42 10
+fa75 3 98 26
+fa78 3 42 10
+fa7b 2 98 26
+fa7d 5 99 26
+fa82 1e 158 26
+faa0 d 99 26
+faad b 98 26
+fab8 4 100 26
+fabc 4 101 26
+fac0 4 100 26
+fac4 9 101 26
+facd 6 100 26
+fad3 3 101 26
+fad6 4 100 26
+fada 9 101 26
+fae3 1f 165 26
+fb02 1f 164 26
+fb21 1f 163 26
+fb40 1f 93 26
+fb5f 1f 90 26
+fb7e 1f 93 26
+fb9d 1f 90 26
+STACK CFI INIT 1a70 3b0 .cfa: $rsp 16 + .ra: .cfa -8 + ^
+STACK CFI 1a76 .cfa: $rsp 24 +
+STACK CFI INIT 2590 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 25b0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 25c0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 25d0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 25e0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 25f0 c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2600 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 24d0 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 24d1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 24fb .cfa: $rsp 8 +
+STACK CFI INIT 2610 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2500 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2504 .cfa: $rsp 32 +
+STACK CFI 2538 .cfa: $rsp 8 +
+STACK CFI 2539 .cfa: $rsp 32 +
+STACK CFI INIT 2540 49 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2544 .cfa: $rsp 32 +
+STACK CFI 2583 .cfa: $rsp 8 +
+STACK CFI 2584 .cfa: $rsp 32 +
+STACK CFI INIT 2650 90 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2651 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2658 .cfa: $rsp 32 +
+STACK CFI 267e .cfa: $rsp 16 +
+STACK CFI 267f .cfa: $rsp 8 +
+STACK CFI 2680 .cfa: $rsp 32 +
+STACK CFI INIT 26e0 92 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 26e5 $rbp: .cfa -16 + ^
+STACK CFI 26f3 $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 271d .cfa: $rsp 8 +
+STACK CFI 2720 .cfa: $rsp 32 +
+STACK CFI 275a .cfa: $rsp 8 +
+STACK CFI 275c .cfa: $rsp 32 +
+STACK CFI INIT 2150 279 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2152 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2157 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2160 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 2161 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 2168 .cfa: $rsp 336 +
+STACK CFI 22e7 .cfa: $rsp 40 +
+STACK CFI 22e8 .cfa: $rsp 32 +
+STACK CFI 22e9 .cfa: $rsp 24 +
+STACK CFI 22eb .cfa: $rsp 16 +
+STACK CFI 22ed .cfa: $rsp 8 +
+STACK CFI 22ee .cfa: $rsp 336 +
+STACK CFI INIT 1e20 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 2780 f5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 278f $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2791 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2793 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 279b $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 27a3 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 27ac .cfa: $rsp 208 +
+STACK CFI 2852 .cfa: $rsp 48 +
+STACK CFI 2858 $rbx: $rbx .cfa: $rsp 40 +
+STACK CFI 2859 $rbp: $rbp .cfa: $rsp 32 +
+STACK CFI 285b $r12: $r12 .cfa: $rsp 24 +
+STACK CFI 285d $r13: $r13 .cfa: $rsp 16 +
+STACK CFI 285f $r14: $r14 .cfa: $rsp 8 +
+STACK CFI 2860 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^ .cfa: $rsp 208 +
+STACK CFI 2867 .cfa: $rsp 48 +
+STACK CFI 286a $rbx: $rbx .cfa: $rsp 40 +
+STACK CFI 286b $rbp: $rbp .cfa: $rsp 32 +
+STACK CFI 286d $r12: $r12 .cfa: $rsp 24 +
+STACK CFI 286f $r13: $r13 .cfa: $rsp 16 +
+STACK CFI 2871 $r14: $r14 .cfa: $rsp 8 +
+STACK CFI INIT 2880 8b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2893 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI 28ab $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 28b1 .cfa: $rsp 48 +
+STACK CFI 28fc $r12: $r12 $r13: $r13 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI 2900 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
+STACK CFI INIT 2910 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 292b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 2932 .cfa: $rsp 64 +
+STACK CFI 2971 .cfa: $rsp 8 +
+STACK CFI 2978 .cfa: $rsp 64 +
+STACK CFI 29dd .cfa: $rsp 8 +
+STACK CFI 29e8 .cfa: $rsp 64 +
+STACK CFI INIT 2a20 467 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2a2a $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^
+STACK CFI 2a4b $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 160 +
+STACK CFI 2a92 .cfa: $rsp 8 +
+STACK CFI 2a98 .cfa: $rsp 160 +
+STACK CFI INIT 2e90 1a6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2e92 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 2e93 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 2e97 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 2ea1 .cfa: $rsp 1632 +
+STACK CFI 2fe5 .cfa: $rsp 32 +
+STACK CFI 2fe6 .cfa: $rsp 24 +
+STACK CFI 2fe7 .cfa: $rsp 16 +
+STACK CFI 2fe9 .cfa: $rsp 8 +
+STACK CFI 2ff0 .cfa: $rsp 1632 +
+STACK CFI 2ff7 .cfa: $rsp 32 +
+STACK CFI 2ffd .cfa: $rsp 24 +
+STACK CFI 2ffe .cfa: $rsp 16 +
+STACK CFI 3000 .cfa: $rsp 8 +
+STACK CFI 3008 .cfa: $rsp 1632 +
+STACK CFI INIT 3040 68 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 304a $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 3056 $r12: .cfa -16 + ^ .cfa: $rsp 32 +
+STACK CFI 3082 .cfa: $rsp 8 +
+STACK CFI 3088 .cfa: $rsp 32 +
+STACK CFI 30a3 .cfa: $rsp 8 +
+STACK CFI INIT 30b0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 30b7 .cfa: $rsp 1104 +
+STACK CFI 3105 .cfa: $rsp 8 +
+STACK CFI INIT 3110 18b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3112 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3114 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3116 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3118 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 311c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 3120 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 3129 .cfa: $rsp 224 +
+STACK CFI 31e3 .cfa: $rsp 56 +
+STACK CFI 31e4 .cfa: $rsp 48 +
+STACK CFI 31e5 .cfa: $rsp 40 +
+STACK CFI 31e7 .cfa: $rsp 32 +
+STACK CFI 31e9 .cfa: $rsp 24 +
+STACK CFI 31eb .cfa: $rsp 16 +
+STACK CFI 31ed .cfa: $rsp 8 +
+STACK CFI 31f0 .cfa: $rsp 224 +
+STACK CFI INIT 32a0 e0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 32aa $r12: .cfa -24 + ^ $rbp: .cfa -32 + ^
+STACK CFI 32ba $r13: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 80 +
+STACK CFI 32f8 .cfa: $rsp 8 +
+STACK CFI 3300 .cfa: $rsp 80 +
+STACK CFI INIT 3380 58 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3384 .cfa: $rsp 32 +
+STACK CFI 33b4 .cfa: $rsp 8 +
+STACK CFI 33b8 .cfa: $rsp 32 +
+STACK CFI 33d7 .cfa: $rsp 8 +
+STACK CFI INIT 33e0 28 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 33e1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3407 .cfa: $rsp 8 +
+STACK CFI INIT 3410 153 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3411 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3418 .cfa: $rsp 1616 +
+STACK CFI 3472 .cfa: $rsp 16 +
+STACK CFI 3473 .cfa: $rsp 8 +
+STACK CFI 3478 .cfa: $rsp 1616 +
+STACK CFI 3535 .cfa: $rsp 16 +
+STACK CFI 3536 .cfa: $rsp 8 +
+STACK CFI 3540 .cfa: $rsp 1616 +
+STACK CFI INIT 3570 cf .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 358b $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 640 +
+STACK CFI 363a .cfa: $rsp 8 +
+STACK CFI INIT 3640 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3642 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3646 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 364b $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3687 .cfa: $rsp 24 +
+STACK CFI 368e .cfa: $rsp 16 +
+STACK CFI 3690 .cfa: $rsp 8 +
+STACK CFI 3698 .cfa: $rsp 32 +
+STACK CFI 3699 .cfa: $rsp 24 +
+STACK CFI 369a .cfa: $rsp 16 +
+STACK CFI 369c .cfa: $rsp 8 +
+STACK CFI INIT 36a0 31 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36a1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 36bf .cfa: $rsp 8 +
+STACK CFI 36c0 .cfa: $rsp 16 +
+STACK CFI 36cc .cfa: $rsp 8 +
+STACK CFI INIT 36e0 179 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 36ea $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 36f7 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^
+STACK CFI 3708 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 37d0 .cfa: $rsp 8 +
+STACK CFI 37d8 .cfa: $rsp 128 +
+STACK CFI INIT 4030 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4031 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4035 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 4039 .cfa: $rsp 32 +
+STACK CFI 405c .cfa: $rsp 24 +
+STACK CFI 405d .cfa: $rsp 16 +
+STACK CFI 405e .cfa: $rsp 8 +
+STACK CFI INIT 4060 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4061 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4065 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 4069 .cfa: $rsp 32 +
+STACK CFI 408c .cfa: $rsp 24 +
+STACK CFI 408d .cfa: $rsp 16 +
+STACK CFI 408e .cfa: $rsp 8 +
+STACK CFI INIT 3860 336 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3862 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 3864 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 3865 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 3866 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 386d .cfa: $rsp 128 +
+STACK CFI 39c5 .cfa: $rsp 40 +
+STACK CFI 39c6 .cfa: $rsp 32 +
+STACK CFI 39c7 .cfa: $rsp 24 +
+STACK CFI 39c9 .cfa: $rsp 16 +
+STACK CFI 39cb .cfa: $rsp 8 +
+STACK CFI 39d0 .cfa: $rsp 128 +
+STACK CFI INIT 4090 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 409a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 40b8 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 80 +
+STACK CFI 4122 .cfa: $rsp 8 +
+STACK CFI 4128 .cfa: $rsp 80 +
+STACK CFI INIT 3ba0 31c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3ba5 $r14: .cfa -24 + ^
+STACK CFI 3bb8 $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 3bc9 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ .cfa: $rsp 80 +
+STACK CFI 3ccf .cfa: $rsp 8 +
+STACK CFI 3cd0 .cfa: $rsp 80 +
+STACK CFI INIT 3ec0 167 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 3eca $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI 3ede $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 256 +
+STACK CFI 3fa2 .cfa: $rsp 8 +
+STACK CFI 3fa3 .cfa: $rsp 256 +
+STACK CFI INIT 1e3a 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 4250 7d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 425e $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 42ad .cfa: $rsp 8 +
+STACK CFI 42ae .cfa: $rsp 32 +
+STACK CFI INIT 42d0 232 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 42d2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 42d3 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 42d4 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 42db .cfa: $rsp 160 +
+STACK CFI 443e .cfa: $rsp 32 +
+STACK CFI 443f .cfa: $rsp 24 +
+STACK CFI 4440 .cfa: $rsp 16 +
+STACK CFI 4442 .cfa: $rsp 8 +
+STACK CFI 4443 .cfa: $rsp 160 +
+STACK CFI INIT 4510 85 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4511 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4515 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 4519 .cfa: $rsp 32 +
+STACK CFI 4570 .cfa: $rsp 24 +
+STACK CFI 4574 .cfa: $rsp 16 +
+STACK CFI 4575 .cfa: $rsp 8 +
+STACK CFI 4576 .cfa: $rsp 32 +
+STACK CFI INIT 45a0 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 45a7 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 45c2 .cfa: $rsp 8 +
+STACK CFI 45c8 .cfa: $rsp 16 +
+STACK CFI 45d7 .cfa: $rsp 8 +
+STACK CFI INIT 1e54 27 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1e55 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1e7a .cfa: $rsp 8 +
+STACK CFI INIT 45e0 5d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 45ee $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 4615 .cfa: $rsp 8 +
+STACK CFI 4620 .cfa: $rsp 32 +
+STACK CFI INIT 1e7c 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1e84 .cfa: $rsp 16 +
+STACK CFI INIT 1e9c 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1ea4 .cfa: $rsp 16 +
+STACK CFI INIT 4640 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4659 .cfa: $rsp 16 +
+STACK CFI INIT 1ebc 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1ec4 .cfa: $rsp 16 +
+STACK CFI INIT 1edc 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1ee4 .cfa: $rsp 16 +
+STACK CFI INIT 8260 153 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8272 $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 828d $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI 82d7 $r12: $r12 $r13: $r13 $r14: $r14 $r15: $r15 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI 82e0 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
+STACK CFI 83b0 $r12: $r12 $r13: $r13 $r14: $r14 $r15: $r15 $rbp: $rbp $rbx: $rbx .cfa: $rsp 8 +
+STACK CFI INIT 1efc 1ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 1efe $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 1f05 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 1f07 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 1f09 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 1f10 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 1f11 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 1f15 .cfa: $rsp 112 +
+STACK CFI 209d .cfa: $rsp 56 +
+STACK CFI 209e .cfa: $rsp 48 +
+STACK CFI 209f .cfa: $rsp 40 +
+STACK CFI 20a1 .cfa: $rsp 32 +
+STACK CFI 20a3 .cfa: $rsp 24 +
+STACK CFI 20a5 .cfa: $rsp 16 +
+STACK CFI 20a7 .cfa: $rsp 8 +
+STACK CFI INIT 20a8 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20a9 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 20ad $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 20b7 .cfa: $rsp 288 +
+STACK CFI 20e2 .cfa: $rsp 24 +
+STACK CFI 20e5 .cfa: $rsp 16 +
+STACK CFI 20e6 .cfa: $rsp 8 +
+STACK CFI INIT 83c0 248 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 83c2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 83c4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 83ca $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 83cc $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 83cd $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 83d1 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 83d8 .cfa: $rsp 64 +
+STACK CFI 8536 .cfa: $rsp 56 +
+STACK CFI 8537 .cfa: $rsp 48 +
+STACK CFI 8538 .cfa: $rsp 40 +
+STACK CFI 853a .cfa: $rsp 32 +
+STACK CFI 853c .cfa: $rsp 24 +
+STACK CFI 853e .cfa: $rsp 16 +
+STACK CFI 8545 .cfa: $rsp 8 +
+STACK CFI 8550 .cfa: $rsp 64 +
+STACK CFI 85b2 .cfa: $rsp 56 +
+STACK CFI 85b5 .cfa: $rsp 48 +
+STACK CFI 85b6 .cfa: $rsp 40 +
+STACK CFI 85b8 .cfa: $rsp 32 +
+STACK CFI 85ba .cfa: $rsp 24 +
+STACK CFI 85bc .cfa: $rsp 16 +
+STACK CFI 85be .cfa: $rsp 8 +
+STACK CFI 85bf .cfa: $rsp 64 +
+STACK CFI INIT 8610 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8640 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 8670 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86a0 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 86d0 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 86ee $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI 86ff $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 8741 .cfa: $rsp 8 +
+STACK CFI 8748 .cfa: $rsp 128 +
+STACK CFI INIT 8900 357 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8905 $rbp: .cfa -48 + ^
+STACK CFI 8917 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbx: .cfa -56 + ^
+STACK CFI 8928 $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI 89a7 .cfa: $rsp 8 +
+STACK CFI 89b0 .cfa: $rsp 128 +
+STACK CFI INIT 4660 15e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 4662 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 4664 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 4666 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 466c $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 466d $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 466e $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 4678 .cfa: $rsp 3696 +
+STACK CFI 4899 .cfa: $rsp 56 +
+STACK CFI 489c .cfa: $rsp 48 +
+STACK CFI 489d .cfa: $rsp 40 +
+STACK CFI 489f .cfa: $rsp 32 +
+STACK CFI 48a1 .cfa: $rsp 24 +
+STACK CFI 48a3 .cfa: $rsp 16 +
+STACK CFI 48a5 .cfa: $rsp 8 +
+STACK CFI 48b0 .cfa: $rsp 3696 +
+STACK CFI INIT 8c60 17f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8c62 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8c66 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8c68 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8c6a $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 8c6b $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 8c6f $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 8c76 .cfa: $rsp 96 +
+STACK CFI 8cdb .cfa: $rsp 56 +
+STACK CFI 8cdc .cfa: $rsp 48 +
+STACK CFI 8cdd .cfa: $rsp 40 +
+STACK CFI 8cdf .cfa: $rsp 32 +
+STACK CFI 8ce1 .cfa: $rsp 24 +
+STACK CFI 8ce3 .cfa: $rsp 16 +
+STACK CFI 8ce5 .cfa: $rsp 8 +
+STACK CFI 8cf0 .cfa: $rsp 96 +
+STACK CFI INIT 8de0 3cd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 8de2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 8de4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 8de6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8de8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 8de9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 8ded $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 8df1 .cfa: $rsp 128 +
+STACK CFI 8ffd .cfa: $rsp 56 +
+STACK CFI 8ffe .cfa: $rsp 48 +
+STACK CFI 8fff .cfa: $rsp 40 +
+STACK CFI 9001 .cfa: $rsp 32 +
+STACK CFI 9003 .cfa: $rsp 24 +
+STACK CFI 9005 .cfa: $rsp 16 +
+STACK CFI 9007 .cfa: $rsp 8 +
+STACK CFI 9010 .cfa: $rsp 128 +
+STACK CFI 9079 .cfa: $rsp 56 +
+STACK CFI 9081 .cfa: $rsp 48 +
+STACK CFI 9082 .cfa: $rsp 40 +
+STACK CFI 9084 .cfa: $rsp 32 +
+STACK CFI 9086 .cfa: $rsp 24 +
+STACK CFI 9088 .cfa: $rsp 16 +
+STACK CFI 908a .cfa: $rsp 8 +
+STACK CFI 9090 .cfa: $rsp 128 +
+STACK CFI INIT 5c50 1d12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 5c52 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 5c5d $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 5c62 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 5c64 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 5c65 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 5c66 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI 5c6d .cfa: $rsp 2832 +
+STACK CFI 5da2 .cfa: $rsp 56 +
+STACK CFI 5da5 .cfa: $rsp 48 +
+STACK CFI 5da6 .cfa: $rsp 40 +
+STACK CFI 5da8 .cfa: $rsp 32 +
+STACK CFI 5daa .cfa: $rsp 24 +
+STACK CFI 5dac .cfa: $rsp 16 +
+STACK CFI 5dae .cfa: $rsp 8 +
+STACK CFI 5db0 .cfa: $rsp 2832 +
+STACK CFI INIT 7970 1ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7972 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7976 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 797a $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 7981 .cfa: $rsp 160 +
+STACK CFI 7a65 .cfa: $rsp 32 +
+STACK CFI 7a68 .cfa: $rsp 24 +
+STACK CFI 7a69 .cfa: $rsp 16 +
+STACK CFI 7a6b .cfa: $rsp 8 +
+STACK CFI 7a70 .cfa: $rsp 160 +
+STACK CFI INIT 7b20 2ce .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7b2a $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI 7b4b $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ .cfa: $rsp 368 +
+STACK CFI 7bd0 .cfa: $rsp 8 +
+STACK CFI 7bd8 .cfa: $rsp 368 +
+STACK CFI INIT 7df0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7df4 .cfa: $rsp 32 +
+STACK CFI 7e1a .cfa: $rsp 8 +
+STACK CFI INIT 7e20 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e24 .cfa: $rsp 32 +
+STACK CFI 7e4b .cfa: $rsp 8 +
+STACK CFI INIT 7e50 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e54 .cfa: $rsp 32 +
+STACK CFI 7e79 .cfa: $rsp 8 +
+STACK CFI INIT 7e80 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7e84 .cfa: $rsp 32 +
+STACK CFI 7eaa .cfa: $rsp 8 +
+STACK CFI INIT 7eb0 9a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7ec6 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 96 +
+STACK CFI 7f2e .cfa: $rsp 8 +
+STACK CFI 7f2f .cfa: $rsp 96 +
+STACK CFI INIT 7f50 9b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7f66 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 96 +
+STACK CFI 7fcf .cfa: $rsp 8 +
+STACK CFI 7fd0 .cfa: $rsp 96 +
+STACK CFI INIT 7ff0 26a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 7ff2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 7ff6 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 7ff7 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 8000 .cfa: $rsp 368 +
+STACK CFI 816a .cfa: $rsp 32 +
+STACK CFI 816d .cfa: $rsp 24 +
+STACK CFI 816e .cfa: $rsp 16 +
+STACK CFI 8170 .cfa: $rsp 8 +
+STACK CFI 8178 .cfa: $rsp 368 +
+STACK CFI INIT 20e8 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 20f0 .cfa: $rsp 16 +
+STACK CFI INIT 2108 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2110 .cfa: $rsp 16 +
+STACK CFI INIT 91b0 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 91d0 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 91de $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
+STACK CFI 9225 .cfa: $rsp 8 +
+STACK CFI 9230 .cfa: $rsp 32 +
+STACK CFI INIT 9260 2c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9274 .cfa: $rsp 16 +
+STACK CFI INIT 9290 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 929a $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^
+STACK CFI 92a6 $r12: .cfa -16 + ^ .cfa: $rsp 32 +
+STACK CFI 92fb .cfa: $rsp 8 +
+STACK CFI 9300 .cfa: $rsp 32 +
+STACK CFI INIT 9310 15 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9330 d6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9348 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
+STACK CFI 9393 .cfa: $rsp 8 +
+STACK CFI 9398 .cfa: $rsp 48 +
+STACK CFI INIT 9410 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9411 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9415 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9419 .cfa: $rsp 32 +
+STACK CFI 944b .cfa: $rsp 24 +
+STACK CFI 944c .cfa: $rsp 16 +
+STACK CFI 944d .cfa: $rsp 8 +
+STACK CFI 9450 .cfa: $rsp 32 +
+STACK CFI INIT 9510 a8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9512 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9514 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9516 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9517 $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 951a $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 951e .cfa: $rsp 64 +
+STACK CFI 95a3 .cfa: $rsp 48 +
+STACK CFI 95a4 .cfa: $rsp 40 +
+STACK CFI 95a5 .cfa: $rsp 32 +
+STACK CFI 95a7 .cfa: $rsp 24 +
+STACK CFI 95a9 .cfa: $rsp 16 +
+STACK CFI 95ab .cfa: $rsp 8 +
+STACK CFI 95ac .cfa: $rsp 64 +
+STACK CFI INIT 95c0 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 95c2 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 95c4 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 95c6 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 95c7 $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 95c8 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 95ce .cfa: $rsp 64 +
+STACK CFI 9655 .cfa: $rsp 48 +
+STACK CFI 9656 .cfa: $rsp 40 +
+STACK CFI 9657 .cfa: $rsp 32 +
+STACK CFI 9659 .cfa: $rsp 24 +
+STACK CFI 965b .cfa: $rsp 16 +
+STACK CFI 965d .cfa: $rsp 8 +
+STACK CFI 965e .cfa: $rsp 64 +
+STACK CFI INIT 9670 41 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9671 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9691 .cfa: $rsp 8 +
+STACK CFI 9692 .cfa: $rsp 16 +
+STACK CFI INIT 96c0 88 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 96c4 .cfa: $rsp 16 +
+STACK CFI 96e7 .cfa: $rsp 8 +
+STACK CFI 96ec .cfa: $rsp 16 +
+STACK CFI INIT 9750 c4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9751 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9755 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9759 .cfa: $rsp 64 +
+STACK CFI 9791 .cfa: $rsp 24 +
+STACK CFI 9794 .cfa: $rsp 16 +
+STACK CFI 9795 .cfa: $rsp 8 +
+STACK CFI 97a0 .cfa: $rsp 64 +
+STACK CFI 97ce .cfa: $rsp 24 +
+STACK CFI 97d4 .cfa: $rsp 16 +
+STACK CFI 97d5 .cfa: $rsp 8 +
+STACK CFI 97d6 .cfa: $rsp 64 +
+STACK CFI INIT 9840 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9870 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9872 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9874 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9876 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 987a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 987b $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 987f .cfa: $rsp 112 +
+STACK CFI 9933 .cfa: $rsp 48 +
+STACK CFI 9936 .cfa: $rsp 40 +
+STACK CFI 9937 .cfa: $rsp 32 +
+STACK CFI 9939 .cfa: $rsp 24 +
+STACK CFI 993b .cfa: $rsp 16 +
+STACK CFI 993d .cfa: $rsp 8 +
+STACK CFI 9940 .cfa: $rsp 112 +
+STACK CFI INIT 9820 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9a60 1e8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9a62 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9a64 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9a66 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9a6a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 9a6b $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 9a6f .cfa: $rsp 112 +
+STACK CFI 9b24 .cfa: $rsp 48 +
+STACK CFI 9b27 .cfa: $rsp 40 +
+STACK CFI 9b28 .cfa: $rsp 32 +
+STACK CFI 9b2a .cfa: $rsp 24 +
+STACK CFI 9b2c .cfa: $rsp 16 +
+STACK CFI 9b2e .cfa: $rsp 8 +
+STACK CFI 9b30 .cfa: $rsp 112 +
+STACK CFI INIT 9830 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT 9c50 78 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9c52 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9c5a $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9c5f $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9c63 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 9c6b .cfa: $rsp 64 +
+STACK CFI 9cab .cfa: $rsp 40 +
+STACK CFI 9cae .cfa: $rsp 32 +
+STACK CFI 9caf .cfa: $rsp 24 +
+STACK CFI 9cb1 .cfa: $rsp 16 +
+STACK CFI 9cb3 .cfa: $rsp 8 +
+STACK CFI 9cb8 .cfa: $rsp 64 +
+STACK CFI 9cbf .cfa: $rsp 40 +
+STACK CFI 9cc0 .cfa: $rsp 32 +
+STACK CFI 9cc3 .cfa: $rsp 24 +
+STACK CFI 9cc5 .cfa: $rsp 16 +
+STACK CFI 9cc7 .cfa: $rsp 8 +
+STACK CFI INIT 9cd0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9cd1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9cdf .cfa: $rsp 48 +
+STACK CFI 9d24 .cfa: $rsp 16 +
+STACK CFI 9d25 .cfa: $rsp 8 +
+STACK CFI INIT 9d30 147 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9d32 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9d34 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9d36 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI 9d3a $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI 9d3e $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI 9d42 .cfa: $rsp 80 +
+STACK CFI 9dc3 .cfa: $rsp 48 +
+STACK CFI 9dc7 .cfa: $rsp 40 +
+STACK CFI 9dc8 .cfa: $rsp 32 +
+STACK CFI 9dca .cfa: $rsp 24 +
+STACK CFI 9dcc .cfa: $rsp 16 +
+STACK CFI 9dce .cfa: $rsp 8 +
+STACK CFI 9dd0 .cfa: $rsp 80 +
+STACK CFI INIT a060 295 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a06a $r12: .cfa -40 + ^ $rbx: .cfa -56 + ^
+STACK CFI a085 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbp: .cfa -48 + ^ .cfa: $rsp 80 +
+STACK CFI a136 .cfa: $rsp 8 +
+STACK CFI a140 .cfa: $rsp 80 +
+STACK CFI INIT 9e80 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9e81 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9e85 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9e8c .cfa: $rsp 64 +
+STACK CFI 9f25 .cfa: $rsp 24 +
+STACK CFI 9f26 .cfa: $rsp 16 +
+STACK CFI 9f27 .cfa: $rsp 8 +
+STACK CFI 9f30 .cfa: $rsp 64 +
+STACK CFI 9f44 .cfa: $rsp 24 +
+STACK CFI 9f45 .cfa: $rsp 16 +
+STACK CFI 9f46 .cfa: $rsp 8 +
+STACK CFI 9f50 .cfa: $rsp 64 +
+STACK CFI INIT 9f70 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 9f71 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI 9f75 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI 9f7c .cfa: $rsp 64 +
+STACK CFI a017 .cfa: $rsp 24 +
+STACK CFI a018 .cfa: $rsp 16 +
+STACK CFI a019 .cfa: $rsp 8 +
+STACK CFI a020 .cfa: $rsp 64 +
+STACK CFI a034 .cfa: $rsp 24 +
+STACK CFI a035 .cfa: $rsp 16 +
+STACK CFI a036 .cfa: $rsp 8 +
+STACK CFI a040 .cfa: $rsp 64 +
+STACK CFI INIT a430 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a434 .cfa: $rsp 16 +
+STACK CFI a43f .cfa: $rsp 8 +
+STACK CFI INIT a300 73 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a301 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a372 .cfa: $rsp 8 +
+STACK CFI INIT a380 ad .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a381 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a385 .cfa: $rsp 32 +
+STACK CFI a40a .cfa: $rsp 16 +
+STACK CFI a40d .cfa: $rsp 8 +
+STACK CFI a40e .cfa: $rsp 32 +
+STACK CFI INIT a450 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a470 33 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a4b0 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a510 54 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a570 36 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a5b0 43 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a600 42 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a650 26 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a680 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a6c0 64 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a730 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a770 1e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a790 38 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a7d0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a7d1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a7ed .cfa: $rsp 8 +
+STACK CFI a7f0 .cfa: $rsp 16 +
+STACK CFI a80d .cfa: $rsp 8 +
+STACK CFI INIT a810 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT a860 1aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI a862 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI a871 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI a879 $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI a87f $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI a880 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI a887 .cfa: $rsp 208 +
+STACK CFI a9a3 .cfa: $rsp 48 +
+STACK CFI a9a9 .cfa: $rsp 40 +
+STACK CFI a9aa .cfa: $rsp 32 +
+STACK CFI a9ac .cfa: $rsp 24 +
+STACK CFI a9ae .cfa: $rsp 16 +
+STACK CFI a9b0 .cfa: $rsp 8 +
+STACK CFI a9b8 .cfa: $rsp 208 +
+STACK CFI a9ff .cfa: $rsp 48 +
+STACK CFI aa02 .cfa: $rsp 40 +
+STACK CFI aa03 .cfa: $rsp 32 +
+STACK CFI aa05 .cfa: $rsp 24 +
+STACK CFI aa07 .cfa: $rsp 16 +
+STACK CFI aa09 .cfa: $rsp 8 +
+STACK CFI INIT aa10 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa13 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aa24 .cfa: $rsp 8 +
+STACK CFI aa28 .cfa: $rsp 16 +
+STACK CFI aa2b .cfa: $rsp 8 +
+STACK CFI INIT 2128 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI 2130 .cfa: $rsp 16 +
+STACK CFI INIT aa30 67 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aa32 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aa38 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI aa3f $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI aa40 $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI aa44 .cfa: $rsp 48 +
+STACK CFI aa90 .cfa: $rsp 40 +
+STACK CFI aa91 .cfa: $rsp 32 +
+STACK CFI aa92 .cfa: $rsp 24 +
+STACK CFI aa94 .cfa: $rsp 16 +
+STACK CFI aa96 .cfa: $rsp 8 +
+STACK CFI INIT aaa0 12 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aaa1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aaad .cfa: $rsp 8 +
+STACK CFI INIT aac0 105 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI aac2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI aacd $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI aace $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI aad5 .cfa: $rsp 320 +
+STACK CFI aaf3 .cfa: $rsp 32 +
+STACK CFI aaf6 .cfa: $rsp 24 +
+STACK CFI aaf7 .cfa: $rsp 16 +
+STACK CFI aaf9 .cfa: $rsp 8 +
+STACK CFI ab00 .cfa: $rsp 320 +
+STACK CFI ab78 .cfa: $rsp 32 +
+STACK CFI ab7b .cfa: $rsp 24 +
+STACK CFI ab7c .cfa: $rsp 16 +
+STACK CFI ab7e .cfa: $rsp 8 +
+STACK CFI ab80 .cfa: $rsp 320 +
+STACK CFI INIT abd0 32 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI abd1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI abe0 .cfa: $rsp 8 +
+STACK CFI abe8 .cfa: $rsp 16 +
+STACK CFI abfc .cfa: $rsp 8 +
+STACK CFI INIT ac10 4c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ac60 94 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ac6a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI ac77 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^
+STACK CFI ac83 $r14: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI acec .cfa: $rsp 8 +
+STACK CFI acf0 .cfa: $rsp 48 +
+STACK CFI INIT ad00 1fd .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ad0a $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI ad21 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^ .cfa: $rsp 848 +
+STACK CFI ad58 .cfa: $rsp 8 +
+STACK CFI ad60 .cfa: $rsp 848 +
+STACK CFI INIT af00 35d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI af0a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI af2b $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 368 +
+STACK CFI afb6 .cfa: $rsp 8 +
+STACK CFI afc0 .cfa: $rsp 368 +
+STACK CFI INIT bbd0 221 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI bbee $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI bbff $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI bc41 .cfa: $rsp 8 +
+STACK CFI bc48 .cfa: $rsp 128 +
+STACK CFI INIT be00 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI be1e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI be2f $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI be71 .cfa: $rsp 8 +
+STACK CFI be78 .cfa: $rsp 128 +
+STACK CFI INIT c030 229 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c04e $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c05f $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI c0a1 .cfa: $rsp 8 +
+STACK CFI c0a8 .cfa: $rsp 128 +
+STACK CFI INIT c260 320 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c26a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI c288 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI c2f5 .cfa: $rsp 8 +
+STACK CFI c300 .cfa: $rsp 128 +
+STACK CFI INIT c580 460 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c582 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c584 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI c586 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI c588 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI c589 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI c58d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI c591 .cfa: $rsp 128 +
+STACK CFI c638 .cfa: $rsp 56 +
+STACK CFI c639 .cfa: $rsp 48 +
+STACK CFI c63a .cfa: $rsp 40 +
+STACK CFI c63c .cfa: $rsp 32 +
+STACK CFI c63e .cfa: $rsp 24 +
+STACK CFI c640 .cfa: $rsp 16 +
+STACK CFI c642 .cfa: $rsp 8 +
+STACK CFI c648 .cfa: $rsp 128 +
+STACK CFI c6c8 .cfa: $rsp 56 +
+STACK CFI c6c9 .cfa: $rsp 48 +
+STACK CFI c6ca .cfa: $rsp 40 +
+STACK CFI c6cc .cfa: $rsp 32 +
+STACK CFI c6ce .cfa: $rsp 24 +
+STACK CFI c6d0 .cfa: $rsp 16 +
+STACK CFI c6d2 .cfa: $rsp 8 +
+STACK CFI c6d8 .cfa: $rsp 128 +
+STACK CFI c8c8 .cfa: $rsp 56 +
+STACK CFI c8c9 .cfa: $rsp 48 +
+STACK CFI c8ca .cfa: $rsp 40 +
+STACK CFI c8cc .cfa: $rsp 32 +
+STACK CFI c8ce .cfa: $rsp 24 +
+STACK CFI c8d0 .cfa: $rsp 16 +
+STACK CFI c8d2 .cfa: $rsp 8 +
+STACK CFI c8d8 .cfa: $rsp 128 +
+STACK CFI INIT b260 1a9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b26a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI b284 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI b3ae .cfa: $rsp 8 +
+STACK CFI b3b0 .cfa: $rsp 64 +
+STACK CFI INIT c9e0 43f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI c9e2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI c9e4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI c9e6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI c9e8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI c9ec $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI c9ed $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI c9f1 .cfa: $rsp 128 +
+STACK CFI cab0 .cfa: $rsp 56 +
+STACK CFI cab1 .cfa: $rsp 48 +
+STACK CFI cab2 .cfa: $rsp 40 +
+STACK CFI cab4 .cfa: $rsp 32 +
+STACK CFI cab6 .cfa: $rsp 24 +
+STACK CFI cab8 .cfa: $rsp 16 +
+STACK CFI caba .cfa: $rsp 8 +
+STACK CFI cac0 .cfa: $rsp 128 +
+STACK CFI cb30 .cfa: $rsp 56 +
+STACK CFI cb31 .cfa: $rsp 48 +
+STACK CFI cb32 .cfa: $rsp 40 +
+STACK CFI cb34 .cfa: $rsp 32 +
+STACK CFI cb36 .cfa: $rsp 24 +
+STACK CFI cb38 .cfa: $rsp 16 +
+STACK CFI cb3a .cfa: $rsp 8 +
+STACK CFI cb40 .cfa: $rsp 128 +
+STACK CFI ccfd .cfa: $rsp 56 +
+STACK CFI ccfe .cfa: $rsp 48 +
+STACK CFI ccff .cfa: $rsp 40 +
+STACK CFI cd01 .cfa: $rsp 32 +
+STACK CFI cd03 .cfa: $rsp 24 +
+STACK CFI cd05 .cfa: $rsp 16 +
+STACK CFI cd07 .cfa: $rsp 8 +
+STACK CFI cd10 .cfa: $rsp 128 +
+STACK CFI INIT b410 7b2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI b412 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI b41e $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI b420 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI b422 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI b423 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI b424 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI b42b .cfa: $rsp 464 +
+STACK CFI b44c .cfa: $rsp 56 +
+STACK CFI b44d .cfa: $rsp 48 +
+STACK CFI b44e .cfa: $rsp 40 +
+STACK CFI b450 .cfa: $rsp 32 +
+STACK CFI b452 .cfa: $rsp 24 +
+STACK CFI b454 .cfa: $rsp 16 +
+STACK CFI b456 .cfa: $rsp 8 +
+STACK CFI b457 .cfa: $rsp 464 +
+STACK CFI INIT ce20 3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT db00 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT ce30 d8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ce46 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI ce57 $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 64 +
+STACK CFI cea0 .cfa: $rsp 8 +
+STACK CFI cea8 .cfa: $rsp 64 +
+STACK CFI INIT cf10 ac .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cf12 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cf17 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI cf19 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI cf1b $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI cf1c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI cf1d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI cf21 .cfa: $rsp 96 +
+STACK CFI cf94 .cfa: $rsp 56 +
+STACK CFI cf95 .cfa: $rsp 48 +
+STACK CFI cf96 .cfa: $rsp 40 +
+STACK CFI cf98 .cfa: $rsp 32 +
+STACK CFI cf9a .cfa: $rsp 24 +
+STACK CFI cf9c .cfa: $rsp 16 +
+STACK CFI cf9e .cfa: $rsp 8 +
+STACK CFI cfa0 .cfa: $rsp 96 +
+STACK CFI INIT cfc0 c2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI cfc2 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI cfc7 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI cfc8 $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI cfcc $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI cfd0 .cfa: $rsp 64 +
+STACK CFI d04f .cfa: $rsp 40 +
+STACK CFI d053 .cfa: $rsp 32 +
+STACK CFI d054 .cfa: $rsp 24 +
+STACK CFI d056 .cfa: $rsp 16 +
+STACK CFI d058 .cfa: $rsp 8 +
+STACK CFI d060 .cfa: $rsp 64 +
+STACK CFI INIT db20 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db28 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI db3b .cfa: $rsp 8 +
+STACK CFI INIT d090 49f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d092 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d094 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI d096 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI d098 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI d09c $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI d09d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI d0a7 .cfa: $rsp 336 +
+STACK CFI d0ef .cfa: $rsp 56 +
+STACK CFI d0f0 .cfa: $rsp 48 +
+STACK CFI d0f1 .cfa: $rsp 40 +
+STACK CFI d0f3 .cfa: $rsp 32 +
+STACK CFI d0f5 .cfa: $rsp 24 +
+STACK CFI d0f7 .cfa: $rsp 16 +
+STACK CFI d0f9 .cfa: $rsp 8 +
+STACK CFI d0fa .cfa: $rsp 336 +
+STACK CFI INIT d530 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d531 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d54f .cfa: $rsp 8 +
+STACK CFI INIT db40 306 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI db45 $rbx: .cfa -56 + ^
+STACK CFI db57 $r12: .cfa -40 + ^ $r14: .cfa -24 + ^ $rbp: .cfa -48 + ^
+STACK CFI db68 $r13: .cfa -32 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 128 +
+STACK CFI dbce .cfa: $rsp 8 +
+STACK CFI dbd0 .cfa: $rsp 128 +
+STACK CFI INIT d550 36d .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d55a $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI d57f $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 352 +
+STACK CFI d5cd .cfa: $rsp 8 +
+STACK CFI d5d0 .cfa: $rsp 352 +
+STACK CFI INIT de50 458 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI de52 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI de54 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI de56 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI de58 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI de59 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI de5d $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI de61 .cfa: $rsp 128 +
+STACK CFI df08 .cfa: $rsp 56 +
+STACK CFI df09 .cfa: $rsp 48 +
+STACK CFI df0a .cfa: $rsp 40 +
+STACK CFI df0c .cfa: $rsp 32 +
+STACK CFI df0e .cfa: $rsp 24 +
+STACK CFI df10 .cfa: $rsp 16 +
+STACK CFI df12 .cfa: $rsp 8 +
+STACK CFI df18 .cfa: $rsp 128 +
+STACK CFI df90 .cfa: $rsp 56 +
+STACK CFI df91 .cfa: $rsp 48 +
+STACK CFI df92 .cfa: $rsp 40 +
+STACK CFI df94 .cfa: $rsp 32 +
+STACK CFI df96 .cfa: $rsp 24 +
+STACK CFI df98 .cfa: $rsp 16 +
+STACK CFI df9a .cfa: $rsp 8 +
+STACK CFI dfa0 .cfa: $rsp 128 +
+STACK CFI e18e .cfa: $rsp 56 +
+STACK CFI e18f .cfa: $rsp 48 +
+STACK CFI e190 .cfa: $rsp 40 +
+STACK CFI e192 .cfa: $rsp 32 +
+STACK CFI e194 .cfa: $rsp 24 +
+STACK CFI e196 .cfa: $rsp 16 +
+STACK CFI e198 .cfa: $rsp 8 +
+STACK CFI e1a0 .cfa: $rsp 128 +
+STACK CFI INIT d8c0 235 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI d8c2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI d8c9 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI d8cb $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI d8cd $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI d8d1 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI d8d2 $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI d8d9 .cfa: $rsp 320 +
+STACK CFI da54 .cfa: $rsp 56 +
+STACK CFI da55 .cfa: $rsp 48 +
+STACK CFI da56 .cfa: $rsp 40 +
+STACK CFI da58 .cfa: $rsp 32 +
+STACK CFI da5a .cfa: $rsp 24 +
+STACK CFI da5c .cfa: $rsp 16 +
+STACK CFI da5e .cfa: $rsp 8 +
+STACK CFI da60 .cfa: $rsp 320 +
+STACK CFI INIT e2b0 e3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e3a0 fe .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e3a4 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e3a8 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e427 .cfa: $rsp 16 +
+STACK CFI e428 .cfa: $rsp 8 +
+STACK CFI e430 .cfa: $rsp 24 +
+STACK CFI e48b .cfa: $rsp 16 +
+STACK CFI e48c .cfa: $rsp 8 +
+STACK CFI e48d .cfa: $rsp 24 +
+STACK CFI INIT e4a0 e6 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e4b1 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e4b2 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e4b3 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e528 $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e529 $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e536 $r12: $r12 .cfa: $rsp 8 +
+STACK CFI e540 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e54b $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e54c $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e559 $r12: $r12 .cfa: $rsp 8 +
+STACK CFI e560 $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e561 $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e562 $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e56c $r12: $r12 .cfa: $rsp 8 +
+STACK CFI e56d $r12: .cfa -16 + ^ $rbp: .cfa -24 + ^ $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e56e $rbx: $rbx .cfa: $rsp 24 +
+STACK CFI e56f $rbp: $rbp .cfa: $rsp 16 +
+STACK CFI e57c $r12: $r12 .cfa: $rsp 8 +
+STACK CFI INIT e590 216 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e592 $r13: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e597 $r12: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e59b $rbp: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e59f $rbx: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e636 .cfa: $rsp 32 +
+STACK CFI e642 .cfa: $rsp 24 +
+STACK CFI e644 .cfa: $rsp 16 +
+STACK CFI e646 .cfa: $rsp 8 +
+STACK CFI e650 .cfa: $rsp 40 +
+STACK CFI e73b .cfa: $rsp 32 +
+STACK CFI e744 .cfa: $rsp 24 +
+STACK CFI e746 .cfa: $rsp 16 +
+STACK CFI e748 .cfa: $rsp 8 +
+STACK CFI e750 .cfa: $rsp 40 +
+STACK CFI e75b .cfa: $rsp 32 +
+STACK CFI e767 .cfa: $rsp 24 +
+STACK CFI e769 .cfa: $rsp 16 +
+STACK CFI e76b .cfa: $rsp 8 +
+STACK CFI e76c .cfa: $rsp 40 +
+STACK CFI e774 .cfa: $rsp 32 +
+STACK CFI e783 .cfa: $rsp 24 +
+STACK CFI e785 .cfa: $rsp 16 +
+STACK CFI e787 .cfa: $rsp 8 +
+STACK CFI e788 .cfa: $rsp 40 +
+STACK CFI INIT e7b0 2b .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT e7e0 265 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI e7e2 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI e7e4 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI e7e6 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI e7e8 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI e7e9 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI e7ea $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI e7ee .cfa: $rsp 96 +
+STACK CFI e943 .cfa: $rsp 56 +
+STACK CFI e944 .cfa: $rsp 48 +
+STACK CFI e945 .cfa: $rsp 40 +
+STACK CFI e947 .cfa: $rsp 32 +
+STACK CFI e949 .cfa: $rsp 24 +
+STACK CFI e94b .cfa: $rsp 16 +
+STACK CFI e94d .cfa: $rsp 8 +
+STACK CFI e950 .cfa: $rsp 96 +
+STACK CFI INIT ea50 1c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ea52 $r14: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI ea59 $r13: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI ea5e $r12: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI ea5f $rbp: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI ea63 $rbx: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI eb98 .cfa: $rsp 40 +
+STACK CFI eb9f .cfa: $rsp 32 +
+STACK CFI eba1 .cfa: $rsp 24 +
+STACK CFI eba3 .cfa: $rsp 16 +
+STACK CFI eba5 .cfa: $rsp 8 +
+STACK CFI ebb0 .cfa: $rsp 48 +
+STACK CFI ebc1 .cfa: $rsp 40 +
+STACK CFI ebcd .cfa: $rsp 32 +
+STACK CFI ebcf .cfa: $rsp 24 +
+STACK CFI ebd1 .cfa: $rsp 16 +
+STACK CFI ebd3 .cfa: $rsp 8 +
+STACK CFI ebd4 .cfa: $rsp 48 +
+STACK CFI ebdc .cfa: $rsp 40 +
+STACK CFI ebeb .cfa: $rsp 32 +
+STACK CFI ebed .cfa: $rsp 24 +
+STACK CFI ebef .cfa: $rsp 16 +
+STACK CFI ebf1 .cfa: $rsp 8 +
+STACK CFI ebf2 .cfa: $rsp 48 +
+STACK CFI INIT ec10 29f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI ec12 $r15: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI ec14 $r14: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI ec16 $r13: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI ec18 $r12: .cfa -40 + ^ .cfa: $rsp 40 +
+STACK CFI ec19 $rbp: .cfa -48 + ^ .cfa: $rsp 48 +
+STACK CFI ec1a $rbx: .cfa -56 + ^ .cfa: $rsp 56 +
+STACK CFI ec1e .cfa: $rsp 104 +
+STACK CFI edbe .cfa: $rsp 56 +
+STACK CFI edbf .cfa: $rsp 48 +
+STACK CFI edc0 .cfa: $rsp 40 +
+STACK CFI edc2 .cfa: $rsp 32 +
+STACK CFI edc4 .cfa: $rsp 24 +
+STACK CFI edc6 .cfa: $rsp 16 +
+STACK CFI edc8 .cfa: $rsp 8 +
+STACK CFI edd0 .cfa: $rsp 104 +
+STACK CFI INIT eeb0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT eec0 1ee .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI eec2 $r12: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI eec6 $rbp: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI eec7 $rbx: .cfa -32 + ^ .cfa: $rsp 32 +
+STACK CFI eed3 .cfa: $rsp 48 +
+STACK CFI efab .cfa: $rsp 32 +
+STACK CFI efac .cfa: $rsp 24 +
+STACK CFI efad .cfa: $rsp 16 +
+STACK CFI efaf .cfa: $rsp 8 +
+STACK CFI efb0 .cfa: $rsp 48 +
+STACK CFI INIT f0b0 59 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f0b1 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI f0bb .cfa: $rsp 48 +
+STACK CFI f0ee .cfa: $rsp 16 +
+STACK CFI f0ef .cfa: $rsp 8 +
+STACK CFI f0f0 .cfa: $rsp 48 +
+STACK CFI INIT f110 e5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f111 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI f112 $rbx: .cfa -24 + ^ .cfa: $rsp 24 +
+STACK CFI f1dc .cfa: $rsp 16 +
+STACK CFI f1e1 .cfa: $rsp 8 +
+STACK CFI f1e2 .cfa: $rsp 24 +
+STACK CFI f1ef .cfa: $rsp 16 +
+STACK CFI f1f4 .cfa: $rsp 8 +
+STACK CFI INIT f200 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f210 56 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f21a $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^
+STACK CFI f221 .cfa: $rsp 32 +
+STACK CFI f265 .cfa: $rsp 8 +
+STACK CFI INIT f270 193 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f27a $rbp: .cfa -32 + ^ $rbx: .cfa -40 + ^
+STACK CFI f286 $r12: .cfa -24 + ^ $r13: .cfa -16 + ^
+STACK CFI f290 .cfa: $rsp 192 +
+STACK CFI f2e5 .cfa: $rsp 8 +
+STACK CFI f2f0 .cfa: $rsp 192 +
+STACK CFI INIT f410 14 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f430 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f440 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f441 $rbx: .cfa -16 + ^ .cfa: $rsp 16 +
+STACK CFI f45f .cfa: $rsp 8 +
+STACK CFI f460 .cfa: $rsp 16 +
+STACK CFI f475 .cfa: $rsp 8 +
+STACK CFI f476 .cfa: $rsp 16 +
+STACK CFI f479 .cfa: $rsp 8 +
+STACK CFI INIT f480 1f .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f48b .cfa: $rsp 16 +
+STACK CFI f49e .cfa: $rsp 8 +
+STACK CFI INIT f4a0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT f4b0 466 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f4ba $rbp: .cfa -48 + ^ $rbx: .cfa -56 + ^
+STACK CFI f4d5 $r12: .cfa -40 + ^ $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ .cfa: $rsp 112 +
+STACK CFI f53c .cfa: $rsp 8 +
+STACK CFI f540 .cfa: $rsp 112 +
+STACK CFI INIT f920 29c .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI f92a $rbp: .cfa -40 + ^ $rbx: .cfa -48 + ^
+STACK CFI f940 $r12: .cfa -32 + ^ $r13: .cfa -24 + ^ $r14: .cfa -16 + ^ .cfa: $rsp 48 +
+STACK CFI f99b .cfa: $rsp 8 +
+STACK CFI f9a0 .cfa: $rsp 48 +
+STACK CFI INIT fbc0 2 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI INIT fbd0 89 .cfa: $rsp 8 + .ra: .cfa -8 + ^
+STACK CFI fbe1 $r12: .cfa -40 + ^ $rbp: .cfa -48 + ^
+STACK CFI fc00 .cfa: $rsp 64 +
+STACK CFI fc06 $r13: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -56 + ^
diff --git a/src/processor/testdata/symbols/test_app.pdb/5A9832E5287241C1838ED98914E9B7FF1/test_app.sym b/src/processor/testdata/symbols/test_app.pdb/5A9832E5287241C1838ED98914E9B7FF1/test_app.sym
new file mode 100644
index 0000000..72fb4da
--- /dev/null
+++ b/src/processor/testdata/symbols/test_app.pdb/5A9832E5287241C1838ED98914E9B7FF1/test_app.sym
@@ -0,0 +1,22151 @@
+MODULE windows x86 5A9832E5287241C1838ED98914E9B7FF1 test_app.pdb
+FILE 1 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winbase.h
+FILE 2 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 3 c:\breakpad\trunk\src\common\windows\guid_string.h
+FILE 4 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdce.h
+FILE 5 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winreg.h
+FILE 6 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objidl.h
+FILE 7 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wtypes.h
+FILE 8 c:\program files\microsoft visual studio 8\vc\platformsdk\include\tvout.h
+FILE 9 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 10 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack2.h
+FILE 11 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h
+FILE 12 c:\breakpad\trunk\src\client\windows\handler\exception_handler.cc
+FILE 13 c:\program files\microsoft visual studio 8\vc\platformsdk\include\urlmon.h
+FILE 14 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincon.h
+FILE 15 c:\program files\microsoft visual studio 8\vc\platformsdk\include\imm.h
+FILE 16 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdcep.h
+FILE 17 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 18 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winver.h
+FILE 19 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 20 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 21 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack4.h
+FILE 22 c:\program files\microsoft visual studio 8\vc\platformsdk\include\reason.h
+FILE 23 c:\program files\microsoft visual studio 8\vc\include\vector
+FILE 24 c:\program files\microsoft visual studio 8\vc\include\memory
+FILE 25 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 26 c:\program files\microsoft visual studio 8\vc\include\iterator
+FILE 27 c:\program files\microsoft visual studio 8\vc\platformsdk\include\propidl.h
+FILE 28 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack1.h
+FILE 29 c:\program files\microsoft visual studio 8\vc\platformsdk\include\specstrings.h
+FILE 30 c:\program files\microsoft visual studio 8\vc\platformsdk\include\basetsd.h
+FILE 31 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winerror.h
+FILE 32 c:\program files\microsoft visual studio 8\vc\include\assert.h
+FILE 33 c:\program files\microsoft visual studio 8\vc\platformsdk\include\poppack.h
+FILE 34 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 35 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 36 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnterr.h
+FILE 37 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcasync.h
+FILE 38 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsi.h
+FILE 39 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 40 c:\program files\microsoft visual studio 8\vc\platformsdk\include\servprov.h
+FILE 41 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 42 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h
+FILE 43 c:\breakpad\trunk\src\client\windows\handler\exception_handler.h
+FILE 44 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h
+FILE 45 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dbghelp.h
+FILE 46 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnetwk.h
+FILE 47 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 48 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack8.h
+FILE 49 c:\program files\microsoft visual studio 8\vc\platformsdk\include\stralign.h
+FILE 50 c:\breakpad\trunk\src\google_breakpad\common\minidump_format.h
+FILE 51 c:\breakpad\trunk\src\google_breakpad\common\breakpad_types.h
+FILE 52 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 53 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 54 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windef.h
+FILE 55 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsvc.h
+FILE 56 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h
+FILE 57 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 58 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 59 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleidl.h
+FILE 60 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 61 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 62 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 63 c:\breakpad\trunk\src\common\windows\string_utils-inl.h
+FILE 64 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 65 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 66 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 67 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 68 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 69 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 70 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 71 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 72 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 73 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 74 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 75 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 76 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 77 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 78 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 79 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 80 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 81 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mcx.h
+FILE 82 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 83 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 84 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 85 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objbase.h
+FILE 86 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 87 c:\program files\microsoft visual studio 8\vc\platformsdk\include\unknwn.h
+FILE 88 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpc.h
+FILE 89 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 90 c:\program files\microsoft visual studio 8\vc\include\cassert
+FILE 91 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ole2.h
+FILE 92 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windows.h
+FILE 93 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 94 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleauto.h
+FILE 95 c:\program files\microsoft visual studio 8\vc\include\excpt.h
+FILE 96 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 97 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cguid.h
+FILE 98 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 99 c:\program files\microsoft visual studio 8\vc\platformsdk\include\msxml.h
+FILE 100 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oaidl.h
+FILE 101 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 102 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 103 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h
+FILE 104 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 105 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 106 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnls.h
+FILE 107 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 108 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 109 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 110 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 111 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 112 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 113 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 114 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 115 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 116 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 117 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 118 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 119 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 120 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 121 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 122 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 123 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 124 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 125 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 126 c:\breakpad\trunk\src\common\windows\guid_string.cc
+FILE 127 c:\breakpad\trunk\src\common\windows\string_utils-inl.h
+FILE 128 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 129 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 130 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 131 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 132 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 133 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 134 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 135 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 136 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 137 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 138 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 139 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 140 c:\breakpad\trunk\src\common\windows\guid_string.h
+FILE 141 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 142 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 143 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 144 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 145 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 146 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 147 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 148 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 149 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 150 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 151 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 152 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 153 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 154 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 155 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 156 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 157 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 158 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 159 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnetwk.h
+FILE 160 c:\program files\microsoft visual studio 8\vc\platformsdk\include\urlmon.h
+FILE 161 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack8.h
+FILE 162 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cderr.h
+FILE 163 c:\program files\microsoft visual studio 8\vc\platformsdk\include\shellapi.h
+FILE 164 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dde.h
+FILE 165 c:\program files\microsoft visual studio 8\vc\include\vector
+FILE 166 c:\program files\microsoft visual studio 8\vc\include\stdio.h
+FILE 167 c:\program files\microsoft visual studio 8\vc\include\memory
+FILE 168 c:\program files\microsoft visual studio 8\vc\include\iterator
+FILE 169 c:\program files\microsoft visual studio 8\vc\include\malloc.h
+FILE 170 c:\program files\microsoft visual studio 8\vc\include\stdarg.h
+FILE 171 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windef.h
+FILE 172 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h
+FILE 173 c:\program files\microsoft visual studio 8\vc\platformsdk\include\imm.h
+FILE 174 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mmsystem.h
+FILE 175 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winioctl.h
+FILE 176 c:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h
+FILE 177 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsmcrd.h
+FILE 178 c:\test_app.cc
+FILE 179 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oaidl.h
+FILE 180 c:\program files\microsoft visual studio 8\vc\platformsdk\include\nb30.h
+FILE 181 c:\program files\microsoft visual studio 8\vc\include\xstring
+FILE 182 c:\program files\microsoft visual studio 8\vc\include\xmemory
+FILE 183 c:\program files\microsoft visual studio 8\vc\include\new
+FILE 184 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleidl.h
+FILE 185 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnls.h
+FILE 186 c:\breakpad\trunk\src\google_breakpad\common\minidump_format.h
+FILE 187 c:\program files\microsoft visual studio 8\vc\include\string.h
+FILE 188 c:\breakpad\trunk\src\google_breakpad\common\breakpad_types.h
+FILE 189 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h
+FILE 190 c:\program files\microsoft visual studio 8\vc\include\ctype.h
+FILE 191 c:\program files\microsoft visual studio 8\vc\include\wtime.inl
+FILE 192 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winbase.h
+FILE 193 c:\program files\microsoft visual studio 8\vc\platformsdk\include\propidl.h
+FILE 194 c:\breakpad\trunk\src\client\windows\handler\exception_handler.h
+FILE 195 c:\program files\microsoft visual studio 8\vc\include\stdlib.h
+FILE 196 c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
+FILE 197 c:\program files\microsoft visual studio 8\vc\include\limits.h
+FILE 198 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winreg.h
+FILE 199 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpc.h
+FILE 200 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ole2.h
+FILE 201 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winscard.h
+FILE 202 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objbase.h
+FILE 203 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wtypes.h
+FILE 204 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcndr.h
+FILE 205 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdce.h
+FILE 206 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsip.h
+FILE 207 c:\program files\microsoft visual studio 8\vc\include\share.h
+FILE 208 c:\program files\microsoft visual studio 8\vc\platformsdk\include\tvout.h
+FILE 209 c:\program files\microsoft visual studio 8\vc\include\use_ansi.h
+FILE 210 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winefs.h
+FILE 211 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack2.h
+FILE 212 c:\program files\microsoft visual studio 8\vc\platformsdk\include\commdlg.h
+FILE 213 c:\program files\microsoft visual studio 8\vc\platformsdk\include\unknwn.h
+FILE 214 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h
+FILE 215 c:\program files\microsoft visual studio 8\vc\platformsdk\include\stralign.h
+FILE 216 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h
+FILE 217 c:\program files\microsoft visual studio 8\vc\platformsdk\include\servprov.h
+FILE 218 c:\program files\microsoft visual studio 8\vc\include\xdebug
+FILE 219 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsvc.h
+FILE 220 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincon.h
+FILE 221 c:\program files\microsoft visual studio 8\vc\include\xlocinfo
+FILE 222 c:\program files\microsoft visual studio 8\vc\include\xlocinfo.h
+FILE 223 c:\program files\microsoft visual studio 8\vc\include\locale.h
+FILE 224 c:\program files\microsoft visual studio 8\vc\platformsdk\include\cguid.h
+FILE 225 c:\program files\microsoft visual studio 8\vc\include\string
+FILE 226 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winver.h
+FILE 227 c:\program files\microsoft visual studio 8\vc\include\istream
+FILE 228 c:\program files\microsoft visual studio 8\vc\include\ostream
+FILE 229 c:\program files\microsoft visual studio 8\vc\include\xutility
+FILE 230 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winperf.h
+FILE 231 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack4.h
+FILE 232 c:\program files\microsoft visual studio 8\vc\include\utility
+FILE 233 c:\program files\microsoft visual studio 8\vc\include\ios
+FILE 234 c:\program files\microsoft visual studio 8\vc\include\xlocnum
+FILE 235 c:\program files\microsoft visual studio 8\vc\include\crtdbg.h
+FILE 236 c:\program files\microsoft visual studio 8\vc\include\iosfwd
+FILE 237 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcdcep.h
+FILE 238 c:\program files\microsoft visual studio 8\vc\include\cwchar
+FILE 239 c:\program files\microsoft visual studio 8\vc\include\climits
+FILE 240 c:\program files\microsoft visual studio 8\vc\include\wchar.h
+FILE 241 c:\program files\microsoft visual studio 8\vc\include\cstdlib
+FILE 242 c:\program files\microsoft visual studio 8\vc\platformsdk\include\mcx.h
+FILE 243 c:\program files\microsoft visual studio 8\vc\include\streambuf
+FILE 244 c:\program files\microsoft visual studio 8\vc\include\xiosbase
+FILE 245 c:\program files\microsoft visual studio 8\vc\platformsdk\include\reason.h
+FILE 246 c:\program files\microsoft visual studio 8\vc\include\xlocale
+FILE 247 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dlgs.h
+FILE 248 c:\program files\microsoft visual studio 8\vc\include\cstring
+FILE 249 c:\program files\microsoft visual studio 8\vc\include\stdexcept
+FILE 250 c:\program files\microsoft visual studio 8\vc\platformsdk\include\pshpack1.h
+FILE 251 c:\program files\microsoft visual studio 8\vc\include\exception
+FILE 252 c:\program files\microsoft visual studio 8\vc\include\xstddef
+FILE 253 c:\program files\microsoft visual studio 8\vc\platformsdk\include\specstrings.h
+FILE 254 c:\program files\microsoft visual studio 8\vc\include\cstddef
+FILE 255 c:\program files\microsoft visual studio 8\vc\platformsdk\include\basetsd.h
+FILE 256 c:\program files\microsoft visual studio 8\vc\include\stddef.h
+FILE 257 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winerror.h
+FILE 258 c:\program files\microsoft visual studio 8\vc\platformsdk\include\wincrypt.h
+FILE 259 c:\program files\microsoft visual studio 8\vc\platformsdk\include\poppack.h
+FILE 260 c:\program files\microsoft visual studio 8\vc\platformsdk\include\winspool.h
+FILE 261 c:\program files\microsoft visual studio 8\vc\platformsdk\include\oleauto.h
+FILE 262 c:\program files\microsoft visual studio 8\vc\platformsdk\include\prsht.h
+FILE 263 c:\program files\microsoft visual studio 8\vc\platformsdk\include\objidl.h
+FILE 264 c:\program files\microsoft visual studio 8\vc\include\cstdio
+FILE 265 c:\program files\microsoft visual studio 8\vc\include\yvals.h
+FILE 266 c:\program files\microsoft visual studio 8\vc\include\eh.h
+FILE 267 c:\program files\microsoft visual studio 8\vc\platformsdk\include\lzexpand.h
+FILE 268 c:\program files\microsoft visual studio 8\vc\platformsdk\include\ddeml.h
+FILE 269 c:\program files\microsoft visual studio 8\vc\include\crtdefs.h
+FILE 270 c:\program files\microsoft visual studio 8\vc\include\sal.h
+FILE 271 c:\program files\microsoft visual studio 8\vc\include\vadefs.h
+FILE 272 c:\program files\microsoft visual studio 8\vc\platformsdk\include\dbghelp.h
+FILE 273 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnterr.h
+FILE 274 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcasync.h
+FILE 275 c:\program files\microsoft visual studio 8\vc\platformsdk\include\rpcnsi.h
+FILE 276 c:\program files\microsoft visual studio 8\vc\include\typeinfo
+FILE 277 c:\program files\microsoft visual studio 8\vc\platformsdk\include\windows.h
+FILE 278 c:\program files\microsoft visual studio 8\vc\include\excpt.h
+FILE 279 c:\program files\microsoft visual studio 8\vc\platformsdk\include\msxml.h
+FILE 280 f:\sp\vctools\crt_bld\self_x86\crt\src\xdebug
+FILE 281 f:\sp\vctools\crt_bld\self_x86\crt\src\streambuf
+FILE 282 f:\sp\vctools\crt_bld\self_x86\crt\src\xiosbase
+FILE 283 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocale
+FILE 284 f:\sp\vctools\crt_bld\self_x86\crt\src\cstring
+FILE 285 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 286 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocinfo
+FILE 287 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocinfo.h
+FILE 288 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 289 f:\sp\vctools\crt_bld\self_x86\crt\src\share.h
+FILE 290 f:\sp\vctools\crt_bld\self_x86\crt\src\use_ansi.h
+FILE 291 f:\sp\vctools\crt_bld\self_x86\crt\src\string.cpp
+FILE 292 f:\sp\vctools\crt_bld\self_x86\crt\src\typeinfo
+FILE 293 f:\sp\vctools\crt_bld\self_x86\crt\src\xutility
+FILE 294 f:\sp\vctools\crt_bld\self_x86\crt\src\utility
+FILE 295 f:\sp\vctools\crt_bld\self_x86\crt\src\iosfwd
+FILE 296 f:\sp\vctools\crt_bld\self_x86\crt\src\cwchar
+FILE 297 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 298 f:\sp\vctools\crt_bld\self_x86\crt\src\stdexcept
+FILE 299 f:\sp\vctools\crt_bld\self_x86\crt\src\exception
+FILE 300 f:\sp\vctools\crt_bld\self_x86\crt\src\xstddef
+FILE 301 f:\sp\vctools\crt_bld\self_x86\crt\src\cstddef
+FILE 302 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 303 f:\sp\vctools\crt_bld\self_x86\crt\src\istream
+FILE 304 f:\sp\vctools\crt_bld\self_x86\crt\src\ostream
+FILE 305 f:\sp\vctools\crt_bld\self_x86\crt\src\ios
+FILE 306 f:\sp\vctools\crt_bld\self_x86\crt\src\xlocnum
+FILE 307 f:\sp\vctools\crt_bld\self_x86\crt\src\eh.h
+FILE 308 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdlib
+FILE 309 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 310 f:\sp\vctools\crt_bld\self_x86\crt\src\climits
+FILE 311 f:\sp\vctools\crt_bld\self_x86\crt\src\yvals.h
+FILE 312 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 313 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 314 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 315 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 316 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 317 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdio
+FILE 318 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 319 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 320 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 321 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 322 f:\sp\public\sdk\inc\ddbanned.h
+FILE 323 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 324 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 325 f:\sp\vctools\crt_bld\self_x86\crt\src\xstring
+FILE 326 f:\sp\vctools\crt_bld\self_x86\crt\src\xmemory
+FILE 327 f:\sp\vctools\crt_bld\self_x86\crt\src\new
+FILE 328 f:\sp\public\sdk\inc\reason.h
+FILE 329 f:\sp\public\sdk\inc\wincon.h
+FILE 330 f:\sp\public\sdk\inc\pshpack2.h
+FILE 331 f:\sp\public\sdk\inc\mcx.h
+FILE 332 f:\sp\public\sdk\inc\winuser.h
+FILE 333 f:\sp\public\sdk\inc\winnls.h
+FILE 334 f:\sp\public\sdk\inc\guiddef.h
+FILE 335 f:\sp\public\sdk\inc\specstrings.h
+FILE 336 f:\sp\public\sdk\inc\basetsd.h
+FILE 337 f:\sp\public\sdk\inc\stralign.h
+FILE 338 f:\sp\public\sdk\inc\tvout.h
+FILE 339 f:\sp\public\sdk\inc\winsvc.h
+FILE 340 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 341 f:\sp\public\sdk\inc\wingdi.h
+FILE 342 f:\sp\public\sdk\inc\pshpack4.h
+FILE 343 f:\sp\public\sdk\inc\poppack.h
+FILE 344 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 346 f:\sp\public\sdk\inc\imm.h
+FILE 347 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 348 f:\sp\public\sdk\inc\windef.h
+FILE 349 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 350 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 351 f:\sp\public\sdk\inc\pshpack1.h
+FILE 352 f:\sp\public\sdk\inc\winver.h
+FILE 353 f:\sp\public\sdk\inc\windows.h
+FILE 354 f:\sp\public\sdk\inc\winnt.h
+FILE 355 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 356 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 357 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 358 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 359 f:\sp\public\sdk\inc\ddbanned.h
+FILE 360 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 361 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 362 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 363 f:\sp\public\sdk\inc\winreg.h
+FILE 364 f:\sp\public\sdk\inc\winbase.h
+FILE 365 f:\sp\public\sdk\inc\winerror.h
+FILE 366 f:\sp\public\sdk\inc\pshpack8.h
+FILE 367 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 368 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 369 f:\sp\public\sdk\inc\reason.h
+FILE 370 f:\sp\public\sdk\inc\wincon.h
+FILE 371 f:\sp\public\sdk\inc\pshpack2.h
+FILE 372 f:\sp\public\sdk\inc\mcx.h
+FILE 373 f:\sp\public\sdk\inc\winuser.h
+FILE 374 f:\sp\public\sdk\inc\winnls.h
+FILE 375 f:\sp\public\sdk\inc\guiddef.h
+FILE 376 f:\sp\public\sdk\inc\specstrings.h
+FILE 377 f:\sp\public\sdk\inc\basetsd.h
+FILE 378 f:\sp\public\sdk\inc\stralign.h
+FILE 379 f:\sp\public\sdk\inc\tvout.h
+FILE 380 f:\sp\public\sdk\inc\winsvc.h
+FILE 381 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 382 f:\sp\public\sdk\inc\wingdi.h
+FILE 383 f:\sp\public\sdk\inc\pshpack4.h
+FILE 384 f:\sp\public\sdk\inc\poppack.h
+FILE 385 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 386 f:\sp\public\sdk\inc\winnetwk.h
+FILE 387 f:\sp\public\sdk\inc\imm.h
+FILE 388 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 389 f:\sp\public\sdk\inc\windef.h
+FILE 390 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 391 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\mathfcns.c
+FILE 392 f:\sp\public\sdk\inc\pshpack1.h
+FILE 393 f:\sp\public\sdk\inc\winver.h
+FILE 394 f:\sp\public\sdk\inc\windows.h
+FILE 395 f:\sp\public\sdk\inc\winnt.h
+FILE 396 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 397 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 398 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 399 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 400 f:\sp\public\sdk\inc\ddbanned.h
+FILE 401 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 402 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 403 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 404 f:\sp\public\sdk\inc\winreg.h
+FILE 405 f:\sp\public\sdk\inc\winbase.h
+FILE 406 f:\sp\public\sdk\inc\winerror.h
+FILE 407 f:\sp\public\sdk\inc\pshpack8.h
+FILE 408 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 409 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 410 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 411 f:\sp\public\sdk\inc\winreg.h
+FILE 412 f:\sp\public\sdk\inc\winbase.h
+FILE 413 f:\sp\public\sdk\inc\winerror.h
+FILE 414 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 415 f:\sp\public\sdk\inc\windef.h
+FILE 416 f:\sp\vctools\crt_bld\self_x86\crt\src\ctime.h
+FILE 417 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 418 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 419 f:\sp\public\sdk\inc\pshpack8.h
+FILE 420 f:\sp\public\sdk\inc\reason.h
+FILE 421 f:\sp\public\sdk\inc\wincon.h
+FILE 422 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 423 f:\sp\public\sdk\inc\pshpack2.h
+FILE 424 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 425 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 426 f:\sp\public\sdk\inc\mcx.h
+FILE 427 f:\sp\public\sdk\inc\winuser.h
+FILE 428 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 429 f:\sp\public\sdk\inc\winnls.h
+FILE 430 f:\sp\public\sdk\inc\guiddef.h
+FILE 431 f:\sp\public\sdk\inc\stralign.h
+FILE 432 f:\sp\public\sdk\inc\winnt.h
+FILE 433 f:\sp\public\sdk\inc\specstrings.h
+FILE 434 f:\sp\public\sdk\inc\basetsd.h
+FILE 435 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 436 f:\sp\public\sdk\inc\tvout.h
+FILE 437 f:\sp\public\sdk\inc\winsvc.h
+FILE 438 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 439 f:\sp\public\sdk\inc\wingdi.h
+FILE 440 f:\sp\vctools\crt_bld\self_x86\crt\src\tzset.c
+FILE 441 f:\sp\public\sdk\inc\pshpack4.h
+FILE 442 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 443 f:\sp\public\sdk\inc\poppack.h
+FILE 444 f:\sp\public\sdk\inc\winnetwk.h
+FILE 445 f:\sp\public\sdk\inc\imm.h
+FILE 446 f:\sp\public\sdk\inc\ddbanned.h
+FILE 447 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 448 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 449 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 450 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 451 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 452 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 453 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 454 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 455 f:\sp\public\sdk\inc\windows.h
+FILE 456 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 457 f:\sp\public\sdk\inc\pshpack1.h
+FILE 458 f:\sp\public\sdk\inc\winver.h
+FILE 459 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 460 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 461 f:\sp\public\sdk\inc\winnt.h
+FILE 462 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 463 f:\sp\public\sdk\inc\winreg.h
+FILE 464 f:\sp\public\sdk\inc\winbase.h
+FILE 465 f:\sp\public\sdk\inc\winerror.h
+FILE 466 f:\sp\public\sdk\inc\pshpack8.h
+FILE 467 f:\sp\public\sdk\inc\reason.h
+FILE 468 f:\sp\public\sdk\inc\wincon.h
+FILE 469 f:\sp\public\sdk\inc\pshpack2.h
+FILE 470 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 471 f:\sp\public\sdk\inc\mcx.h
+FILE 472 f:\sp\public\sdk\inc\winuser.h
+FILE 473 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 474 f:\sp\public\sdk\inc\winnls.h
+FILE 475 f:\sp\public\sdk\inc\guiddef.h
+FILE 476 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 477 f:\sp\public\sdk\inc\stralign.h
+FILE 478 f:\sp\public\sdk\inc\specstrings.h
+FILE 479 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 480 f:\sp\public\sdk\inc\basetsd.h
+FILE 481 f:\sp\public\sdk\inc\windows.h
+FILE 482 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 483 f:\sp\public\sdk\inc\tvout.h
+FILE 484 f:\sp\public\sdk\inc\winsvc.h
+FILE 485 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 486 f:\sp\public\sdk\inc\wingdi.h
+FILE 487 f:\sp\vctools\crt_bld\self_x86\crt\src\timeset.c
+FILE 488 f:\sp\public\sdk\inc\pshpack4.h
+FILE 489 f:\sp\public\sdk\inc\poppack.h
+FILE 490 f:\sp\public\sdk\inc\winnetwk.h
+FILE 491 f:\sp\public\sdk\inc\imm.h
+FILE 492 f:\sp\public\sdk\inc\ddbanned.h
+FILE 493 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 494 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 495 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 496 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 498 f:\sp\public\sdk\inc\windef.h
+FILE 499 f:\sp\public\sdk\inc\pshpack1.h
+FILE 500 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 501 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 502 f:\sp\public\sdk\inc\winver.h
+FILE 503 f:\sp\public\sdk\inc\wincon.h
+FILE 504 f:\sp\vctools\crt_bld\self_x86\crt\src\time.h
+FILE 505 f:\sp\public\sdk\inc\imm.h
+FILE 506 f:\sp\public\sdk\inc\winbase.h
+FILE 507 f:\sp\public\sdk\inc\wingdi.h
+FILE 508 f:\sp\public\sdk\inc\winver.h
+FILE 509 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 510 f:\sp\public\sdk\inc\windows.h
+FILE 511 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 513 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 514 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 515 f:\sp\public\sdk\inc\reason.h
+FILE 516 f:\sp\vctools\crt_bld\self_x86\crt\src\strftime.c
+FILE 517 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 518 f:\sp\public\sdk\inc\specstrings.h
+FILE 519 f:\sp\public\sdk\inc\basetsd.h
+FILE 520 f:\sp\public\sdk\inc\pshpack4.h
+FILE 521 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 522 f:\sp\public\sdk\inc\winnetwk.h
+FILE 523 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 524 f:\sp\public\sdk\inc\stralign.h
+FILE 525 f:\sp\vctools\crt_bld\self_x86\crt\src\time.inl
+FILE 526 f:\sp\public\sdk\inc\poppack.h
+FILE 527 f:\sp\public\sdk\inc\winsvc.h
+FILE 528 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 529 f:\sp\public\sdk\inc\windef.h
+FILE 530 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 531 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 532 f:\sp\public\sdk\inc\winuser.h
+FILE 533 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 534 f:\sp\public\sdk\inc\mcx.h
+FILE 535 f:\sp\public\sdk\inc\pshpack8.h
+FILE 536 f:\sp\public\sdk\inc\guiddef.h
+FILE 537 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 538 f:\sp\public\sdk\inc\winnt.h
+FILE 539 f:\sp\public\sdk\inc\winnls.h
+FILE 540 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 541 f:\sp\public\sdk\inc\pshpack1.h
+FILE 542 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 543 f:\sp\public\sdk\inc\winerror.h
+FILE 544 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 545 f:\sp\public\sdk\inc\winreg.h
+FILE 546 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 547 f:\sp\public\sdk\inc\ddbanned.h
+FILE 548 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 549 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 550 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 551 f:\sp\public\sdk\inc\tvout.h
+FILE 552 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 553 f:\sp\public\sdk\inc\poppack.h
+FILE 554 f:\sp\public\sdk\inc\winnetwk.h
+FILE 555 f:\sp\public\sdk\inc\imm.h
+FILE 556 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 557 f:\sp\public\sdk\inc\windef.h
+FILE 558 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 559 f:\sp\public\sdk\inc\pshpack1.h
+FILE 560 f:\sp\public\sdk\inc\winver.h
+FILE 561 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 562 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 563 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 564 f:\sp\public\sdk\inc\winnt.h
+FILE 565 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 566 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 567 f:\sp\public\sdk\inc\winreg.h
+FILE 568 f:\sp\vctools\crt_bld\self_x86\crt\src\days.c
+FILE 569 f:\sp\public\sdk\inc\winbase.h
+FILE 570 f:\sp\public\sdk\inc\winerror.h
+FILE 571 f:\sp\public\sdk\inc\pshpack8.h
+FILE 572 f:\sp\public\sdk\inc\reason.h
+FILE 573 f:\sp\public\sdk\inc\wincon.h
+FILE 574 f:\sp\public\sdk\inc\ddbanned.h
+FILE 575 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 576 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 577 f:\sp\public\sdk\inc\pshpack2.h
+FILE 578 f:\sp\public\sdk\inc\mcx.h
+FILE 579 f:\sp\public\sdk\inc\winuser.h
+FILE 580 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 581 f:\sp\public\sdk\inc\winnls.h
+FILE 582 f:\sp\public\sdk\inc\guiddef.h
+FILE 583 f:\sp\public\sdk\inc\windows.h
+FILE 584 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 585 f:\sp\public\sdk\inc\specstrings.h
+FILE 586 f:\sp\public\sdk\inc\basetsd.h
+FILE 587 f:\sp\public\sdk\inc\stralign.h
+FILE 588 f:\sp\public\sdk\inc\tvout.h
+FILE 589 f:\sp\public\sdk\inc\winsvc.h
+FILE 590 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 591 f:\sp\public\sdk\inc\wingdi.h
+FILE 592 f:\sp\public\sdk\inc\pshpack4.h
+FILE 593 f:\sp\public\sdk\inc\wincon.h
+FILE 594 f:\sp\public\sdk\inc\imm.h
+FILE 595 f:\sp\public\sdk\inc\winbase.h
+FILE 596 f:\sp\public\sdk\inc\wingdi.h
+FILE 597 f:\sp\public\sdk\inc\winver.h
+FILE 598 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 599 f:\sp\public\sdk\inc\windows.h
+FILE 600 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 601 f:\sp\public\sdk\inc\pshpack2.h
+FILE 602 f:\sp\public\sdk\inc\reason.h
+FILE 603 f:\sp\vctools\crt_bld\self_x86\crt\src\strnicol.c
+FILE 604 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 605 f:\sp\public\sdk\inc\specstrings.h
+FILE 606 f:\sp\public\sdk\inc\basetsd.h
+FILE 607 f:\sp\public\sdk\inc\pshpack4.h
+FILE 608 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 609 f:\sp\public\sdk\inc\winnetwk.h
+FILE 610 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 611 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 612 f:\sp\public\sdk\inc\stralign.h
+FILE 613 f:\sp\public\sdk\inc\poppack.h
+FILE 614 f:\sp\public\sdk\inc\winsvc.h
+FILE 615 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 616 f:\sp\public\sdk\inc\windef.h
+FILE 617 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 618 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 619 f:\sp\public\sdk\inc\winuser.h
+FILE 620 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 621 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 622 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 623 f:\sp\public\sdk\inc\mcx.h
+FILE 624 f:\sp\public\sdk\inc\pshpack8.h
+FILE 625 f:\sp\public\sdk\inc\guiddef.h
+FILE 626 f:\sp\public\sdk\inc\winnt.h
+FILE 627 f:\sp\public\sdk\inc\winnls.h
+FILE 628 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 629 f:\sp\public\sdk\inc\pshpack1.h
+FILE 630 f:\sp\public\sdk\inc\winerror.h
+FILE 631 f:\sp\public\sdk\inc\winreg.h
+FILE 632 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 633 f:\sp\public\sdk\inc\ddbanned.h
+FILE 634 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 635 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 636 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 637 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 638 f:\sp\public\sdk\inc\tvout.h
+FILE 639 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 640 f:\sp\public\sdk\inc\mcx.h
+FILE 641 f:\sp\public\sdk\inc\pshpack8.h
+FILE 642 f:\sp\public\sdk\inc\winnt.h
+FILE 643 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 644 f:\sp\public\sdk\inc\specstrings.h
+FILE 645 f:\sp\public\sdk\inc\basetsd.h
+FILE 646 f:\sp\public\sdk\inc\winnls.h
+FILE 647 f:\sp\public\sdk\inc\pshpack1.h
+FILE 648 f:\sp\public\sdk\inc\winerror.h
+FILE 649 f:\sp\public\sdk\inc\winreg.h
+FILE 650 f:\sp\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 651 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 652 f:\sp\public\sdk\inc\tvout.h
+FILE 653 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 654 f:\sp\public\sdk\inc\wincon.h
+FILE 655 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 656 f:\sp\public\sdk\inc\imm.h
+FILE 657 f:\sp\public\sdk\inc\guiddef.h
+FILE 658 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 659 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 660 f:\sp\public\sdk\inc\winbase.h
+FILE 661 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 662 f:\sp\public\sdk\inc\wingdi.h
+FILE 663 f:\sp\public\sdk\inc\windows.h
+FILE 664 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 665 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 666 f:\sp\public\sdk\inc\winver.h
+FILE 667 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 668 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 669 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 670 f:\sp\public\sdk\inc\pshpack2.h
+FILE 671 f:\sp\public\sdk\inc\reason.h
+FILE 672 f:\sp\public\sdk\inc\pshpack4.h
+FILE 673 f:\sp\public\sdk\inc\winnetwk.h
+FILE 674 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 675 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 676 f:\sp\public\sdk\inc\stralign.h
+FILE 677 f:\sp\public\sdk\inc\windef.h
+FILE 678 f:\sp\public\sdk\inc\poppack.h
+FILE 679 f:\sp\public\sdk\inc\winsvc.h
+FILE 680 f:\sp\public\sdk\inc\ddbanned.h
+FILE 681 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 682 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 683 f:\sp\public\sdk\inc\winuser.h
+FILE 684 f:\sp\public\sdk\inc\mcx.h
+FILE 685 f:\sp\public\sdk\inc\pshpack8.h
+FILE 686 f:\sp\public\sdk\inc\winnt.h
+FILE 687 f:\sp\public\sdk\inc\specstrings.h
+FILE 688 f:\sp\public\sdk\inc\basetsd.h
+FILE 689 f:\sp\public\sdk\inc\winnls.h
+FILE 690 f:\sp\public\sdk\inc\pshpack1.h
+FILE 691 f:\sp\public\sdk\inc\winerror.h
+FILE 692 f:\sp\public\sdk\inc\winreg.h
+FILE 693 f:\sp\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 694 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 695 f:\sp\public\sdk\inc\tvout.h
+FILE 696 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 697 f:\sp\public\sdk\inc\wincon.h
+FILE 698 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 699 f:\sp\public\sdk\inc\imm.h
+FILE 700 f:\sp\public\sdk\inc\guiddef.h
+FILE 701 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 702 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 703 f:\sp\public\sdk\inc\winbase.h
+FILE 704 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 705 f:\sp\public\sdk\inc\wingdi.h
+FILE 706 f:\sp\public\sdk\inc\windows.h
+FILE 707 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 708 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 709 f:\sp\public\sdk\inc\winver.h
+FILE 710 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 711 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 712 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 713 f:\sp\public\sdk\inc\pshpack2.h
+FILE 714 f:\sp\public\sdk\inc\reason.h
+FILE 715 f:\sp\public\sdk\inc\pshpack4.h
+FILE 716 f:\sp\public\sdk\inc\winnetwk.h
+FILE 717 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 718 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 719 f:\sp\public\sdk\inc\stralign.h
+FILE 720 f:\sp\public\sdk\inc\windef.h
+FILE 721 f:\sp\public\sdk\inc\poppack.h
+FILE 722 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 723 f:\sp\public\sdk\inc\winsvc.h
+FILE 724 f:\sp\public\sdk\inc\ddbanned.h
+FILE 725 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 726 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 727 f:\sp\public\sdk\inc\winuser.h
+FILE 728 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 729 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 730 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 731 f:\sp\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 732 f:\sp\public\sdk\inc\ddbanned.h
+FILE 733 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 734 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 735 f:\sp\public\sdk\inc\winnt.h
+FILE 736 f:\sp\public\sdk\inc\pshpack4.h
+FILE 737 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 738 f:\sp\public\sdk\inc\poppack.h
+FILE 739 f:\sp\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 740 f:\sp\public\sdk\inc\winnetwk.h
+FILE 741 f:\sp\public\sdk\inc\imm.h
+FILE 742 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 743 f:\sp\public\sdk\inc\pshpack1.h
+FILE 744 f:\sp\public\sdk\inc\winver.h
+FILE 745 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 746 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 747 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 748 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 749 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 750 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 751 f:\sp\public\sdk\inc\guiddef.h
+FILE 752 f:\sp\public\sdk\inc\windows.h
+FILE 753 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 754 f:\sp\public\sdk\inc\specstrings.h
+FILE 755 f:\sp\public\sdk\inc\basetsd.h
+FILE 756 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 757 f:\sp\public\sdk\inc\winreg.h
+FILE 758 f:\sp\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 759 f:\sp\public\sdk\inc\winbase.h
+FILE 760 f:\sp\public\sdk\inc\winerror.h
+FILE 761 f:\sp\public\sdk\inc\pshpack8.h
+FILE 762 f:\sp\public\sdk\inc\reason.h
+FILE 763 f:\sp\public\sdk\inc\wincon.h
+FILE 764 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 765 f:\sp\public\sdk\inc\ddbanned.h
+FILE 766 f:\sp\public\sdk\inc\windef.h
+FILE 767 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 768 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 769 f:\sp\public\sdk\inc\pshpack2.h
+FILE 770 f:\sp\public\sdk\inc\mcx.h
+FILE 771 f:\sp\public\sdk\inc\winuser.h
+FILE 772 f:\sp\public\sdk\inc\winnls.h
+FILE 773 f:\sp\public\sdk\inc\stralign.h
+FILE 774 f:\sp\public\sdk\inc\tvout.h
+FILE 775 f:\sp\public\sdk\inc\winsvc.h
+FILE 776 f:\sp\public\sdk\inc\wingdi.h
+FILE 777 f:\sp\public\sdk\inc\winnt.h
+FILE 778 f:\sp\public\sdk\inc\pshpack4.h
+FILE 779 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 780 f:\sp\public\sdk\inc\poppack.h
+FILE 781 f:\sp\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 782 f:\sp\public\sdk\inc\winnetwk.h
+FILE 783 f:\sp\public\sdk\inc\imm.h
+FILE 784 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 785 f:\sp\public\sdk\inc\pshpack1.h
+FILE 786 f:\sp\public\sdk\inc\winver.h
+FILE 787 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 788 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 789 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 790 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 791 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 792 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 793 f:\sp\public\sdk\inc\guiddef.h
+FILE 794 f:\sp\public\sdk\inc\windows.h
+FILE 795 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 796 f:\sp\public\sdk\inc\specstrings.h
+FILE 797 f:\sp\public\sdk\inc\basetsd.h
+FILE 798 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 799 f:\sp\public\sdk\inc\winreg.h
+FILE 800 f:\sp\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 801 f:\sp\public\sdk\inc\winbase.h
+FILE 802 f:\sp\public\sdk\inc\winerror.h
+FILE 803 f:\sp\public\sdk\inc\pshpack8.h
+FILE 804 f:\sp\public\sdk\inc\reason.h
+FILE 805 f:\sp\public\sdk\inc\wincon.h
+FILE 806 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 807 f:\sp\public\sdk\inc\ddbanned.h
+FILE 808 f:\sp\public\sdk\inc\windef.h
+FILE 809 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 810 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 811 f:\sp\public\sdk\inc\pshpack2.h
+FILE 812 f:\sp\public\sdk\inc\mcx.h
+FILE 813 f:\sp\public\sdk\inc\winuser.h
+FILE 814 f:\sp\public\sdk\inc\winnls.h
+FILE 815 f:\sp\public\sdk\inc\stralign.h
+FILE 816 f:\sp\public\sdk\inc\tvout.h
+FILE 817 f:\sp\public\sdk\inc\winsvc.h
+FILE 818 f:\sp\public\sdk\inc\wingdi.h
+FILE 819 f:\sp\public\sdk\inc\winnt.h
+FILE 820 f:\sp\public\sdk\inc\pshpack4.h
+FILE 821 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 822 f:\sp\public\sdk\inc\poppack.h
+FILE 823 f:\sp\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 824 f:\sp\public\sdk\inc\winnetwk.h
+FILE 825 f:\sp\public\sdk\inc\imm.h
+FILE 826 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 827 f:\sp\public\sdk\inc\pshpack1.h
+FILE 828 f:\sp\public\sdk\inc\winver.h
+FILE 829 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 830 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 831 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 832 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 833 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 834 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 835 f:\sp\public\sdk\inc\guiddef.h
+FILE 836 f:\sp\public\sdk\inc\windows.h
+FILE 837 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 838 f:\sp\public\sdk\inc\specstrings.h
+FILE 839 f:\sp\public\sdk\inc\basetsd.h
+FILE 840 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 841 f:\sp\public\sdk\inc\winreg.h
+FILE 842 f:\sp\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 843 f:\sp\public\sdk\inc\winbase.h
+FILE 844 f:\sp\public\sdk\inc\winerror.h
+FILE 845 f:\sp\public\sdk\inc\pshpack8.h
+FILE 846 f:\sp\public\sdk\inc\reason.h
+FILE 847 f:\sp\public\sdk\inc\wincon.h
+FILE 848 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 849 f:\sp\public\sdk\inc\ddbanned.h
+FILE 850 f:\sp\public\sdk\inc\windef.h
+FILE 851 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 852 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 853 f:\sp\public\sdk\inc\pshpack2.h
+FILE 854 f:\sp\public\sdk\inc\mcx.h
+FILE 855 f:\sp\public\sdk\inc\winuser.h
+FILE 856 f:\sp\public\sdk\inc\winnls.h
+FILE 857 f:\sp\public\sdk\inc\stralign.h
+FILE 858 f:\sp\public\sdk\inc\tvout.h
+FILE 859 f:\sp\public\sdk\inc\winsvc.h
+FILE 860 f:\sp\public\sdk\inc\wingdi.h
+FILE 861 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 862 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 863 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 864 f:\sp\vctools\crt_bld\self_x86\crt\src\strlen_s.c
+FILE 865 f:\sp\public\sdk\inc\ddbanned.h
+FILE 866 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 867 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 868 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strpbrk.asm
+FILE 869 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 870 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 871 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\_strnicm.asm
+FILE 872 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 873 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 874 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 875 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 876 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 877 f:\sp\public\sdk\inc\ddbanned.h
+FILE 878 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 879 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 880 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strlen.asm
+FILE 881 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 882 f:\sp\public\sdk\inc\pshpack2.h
+FILE 883 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 884 f:\sp\public\sdk\inc\mcx.h
+FILE 885 f:\sp\public\sdk\inc\winuser.h
+FILE 886 f:\sp\public\sdk\inc\winnls.h
+FILE 887 f:\sp\public\sdk\inc\stralign.h
+FILE 888 f:\sp\public\sdk\inc\tvout.h
+FILE 889 f:\sp\public\sdk\inc\winsvc.h
+FILE 890 f:\sp\public\sdk\inc\wingdi.h
+FILE 891 f:\sp\public\sdk\inc\winnt.h
+FILE 892 f:\sp\public\sdk\inc\pshpack4.h
+FILE 893 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 894 f:\sp\public\sdk\inc\poppack.h
+FILE 895 f:\sp\public\sdk\inc\winnetwk.h
+FILE 896 f:\sp\public\sdk\inc\imm.h
+FILE 897 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 898 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 899 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 900 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 901 f:\sp\vctools\crt_bld\self_x86\crt\src\strdup.c
+FILE 902 f:\sp\public\sdk\inc\pshpack1.h
+FILE 903 f:\sp\public\sdk\inc\winver.h
+FILE 904 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 905 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 906 f:\sp\public\sdk\inc\guiddef.h
+FILE 907 f:\sp\public\sdk\inc\windows.h
+FILE 908 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 909 f:\sp\public\sdk\inc\specstrings.h
+FILE 910 f:\sp\public\sdk\inc\basetsd.h
+FILE 911 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 912 f:\sp\public\sdk\inc\winreg.h
+FILE 913 f:\sp\public\sdk\inc\ddbanned.h
+FILE 914 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 915 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 916 f:\sp\public\sdk\inc\winbase.h
+FILE 917 f:\sp\public\sdk\inc\winerror.h
+FILE 918 f:\sp\public\sdk\inc\pshpack8.h
+FILE 919 f:\sp\public\sdk\inc\reason.h
+FILE 920 f:\sp\public\sdk\inc\wincon.h
+FILE 921 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 922 f:\sp\public\sdk\inc\windef.h
+FILE 923 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strcspn.asm
+FILE 924 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 925 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 926 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strcmp.asm
+FILE 927 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 928 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\strchr.asm
+FILE 929 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 930 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 931 f:\sp\public\sdk\inc\ddbanned.h
+FILE 932 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 933 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 934 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memset.asm
+FILE 935 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 936 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 937 f:\sp\public\sdk\inc\poppack.h
+FILE 938 f:\sp\public\sdk\inc\winnetwk.h
+FILE 939 f:\sp\public\sdk\inc\imm.h
+FILE 940 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 941 f:\sp\public\sdk\inc\pshpack1.h
+FILE 942 f:\sp\public\sdk\inc\winver.h
+FILE 943 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 944 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 945 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 946 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 947 f:\sp\public\sdk\inc\guiddef.h
+FILE 948 f:\sp\public\sdk\inc\windows.h
+FILE 949 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 950 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 951 f:\sp\public\sdk\inc\specstrings.h
+FILE 952 f:\sp\public\sdk\inc\basetsd.h
+FILE 953 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 954 f:\sp\public\sdk\inc\winreg.h
+FILE 955 f:\sp\vctools\crt_bld\self_x86\crt\src\memmove_s.c
+FILE 956 f:\sp\public\sdk\inc\winbase.h
+FILE 957 f:\sp\public\sdk\inc\winerror.h
+FILE 958 f:\sp\public\sdk\inc\pshpack8.h
+FILE 959 f:\sp\public\sdk\inc\reason.h
+FILE 960 f:\sp\public\sdk\inc\wincon.h
+FILE 961 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 962 f:\sp\public\sdk\inc\windef.h
+FILE 963 f:\sp\public\sdk\inc\ddbanned.h
+FILE 964 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 965 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 966 f:\sp\public\sdk\inc\pshpack2.h
+FILE 967 f:\sp\public\sdk\inc\mcx.h
+FILE 968 f:\sp\public\sdk\inc\winuser.h
+FILE 969 f:\sp\public\sdk\inc\winnls.h
+FILE 970 f:\sp\public\sdk\inc\stralign.h
+FILE 971 f:\sp\public\sdk\inc\tvout.h
+FILE 972 f:\sp\public\sdk\inc\winsvc.h
+FILE 973 f:\sp\public\sdk\inc\wingdi.h
+FILE 974 f:\sp\public\sdk\inc\winnt.h
+FILE 975 f:\sp\public\sdk\inc\pshpack4.h
+FILE 976 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memmove.asm
+FILE 977 F:\SP\vctools\crt_bld\SELF_X86\crt\src\Intel\MEMCPY.ASM
+FILE 978 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 979 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 980 f:\sp\public\sdk\inc\ddbanned.h
+FILE 981 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 982 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 983 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 984 f:\sp\public\sdk\inc\poppack.h
+FILE 985 f:\sp\public\sdk\inc\winnetwk.h
+FILE 986 f:\sp\public\sdk\inc\imm.h
+FILE 987 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 988 f:\sp\public\sdk\inc\pshpack1.h
+FILE 989 f:\sp\public\sdk\inc\winver.h
+FILE 990 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 991 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 992 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 993 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 994 f:\sp\public\sdk\inc\guiddef.h
+FILE 995 f:\sp\public\sdk\inc\windows.h
+FILE 996 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 997 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 998 f:\sp\public\sdk\inc\specstrings.h
+FILE 999 f:\sp\public\sdk\inc\basetsd.h
+FILE 1000 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1001 f:\sp\public\sdk\inc\winreg.h
+FILE 1002 f:\sp\vctools\crt_bld\self_x86\crt\src\memcpy_s.c
+FILE 1003 f:\sp\public\sdk\inc\winbase.h
+FILE 1004 f:\sp\public\sdk\inc\winerror.h
+FILE 1005 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1006 f:\sp\public\sdk\inc\reason.h
+FILE 1007 f:\sp\public\sdk\inc\wincon.h
+FILE 1008 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1009 f:\sp\public\sdk\inc\windef.h
+FILE 1010 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1011 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1012 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1013 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1014 f:\sp\public\sdk\inc\mcx.h
+FILE 1015 f:\sp\public\sdk\inc\winuser.h
+FILE 1016 f:\sp\public\sdk\inc\winnls.h
+FILE 1017 f:\sp\public\sdk\inc\stralign.h
+FILE 1018 f:\sp\public\sdk\inc\tvout.h
+FILE 1019 f:\sp\public\sdk\inc\winsvc.h
+FILE 1020 f:\sp\public\sdk\inc\wingdi.h
+FILE 1021 f:\sp\public\sdk\inc\winnt.h
+FILE 1022 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1023 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 1024 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1025 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 1026 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 1027 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\memcpy.asm
+FILE 1028 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 1029 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1030 f:\sp\public\sdk\inc\wincon.h
+FILE 1031 f:\sp\public\sdk\inc\imm.h
+FILE 1032 f:\sp\public\sdk\inc\winbase.h
+FILE 1033 f:\sp\public\sdk\inc\wingdi.h
+FILE 1034 f:\sp\public\sdk\inc\winver.h
+FILE 1035 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1036 f:\sp\public\sdk\inc\windows.h
+FILE 1037 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1038 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1039 f:\sp\public\sdk\inc\reason.h
+FILE 1040 f:\sp\vctools\crt_bld\self_x86\crt\src\woutputs.c
+FILE 1041 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1042 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1043 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1044 f:\sp\public\sdk\inc\specstrings.h
+FILE 1045 f:\sp\public\sdk\inc\basetsd.h
+FILE 1046 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1047 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1048 f:\sp\public\sdk\inc\stralign.h
+FILE 1049 f:\sp\public\sdk\inc\poppack.h
+FILE 1050 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1051 f:\sp\public\sdk\inc\winsvc.h
+FILE 1052 f:\sp\public\sdk\inc\windef.h
+FILE 1053 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1054 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1055 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1056 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1057 f:\sp\public\sdk\inc\winuser.h
+FILE 1058 f:\sp\public\sdk\inc\mcx.h
+FILE 1059 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1060 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1061 f:\sp\public\sdk\inc\guiddef.h
+FILE 1062 f:\sp\public\sdk\inc\winnt.h
+FILE 1063 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1064 f:\sp\public\sdk\inc\winnls.h
+FILE 1065 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1066 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1067 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1068 f:\sp\public\sdk\inc\winerror.h
+FILE 1069 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1070 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1071 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1072 f:\sp\public\sdk\inc\winreg.h
+FILE 1073 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1074 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1075 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1076 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1077 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1078 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1079 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1080 f:\sp\public\sdk\inc\tvout.h
+FILE 1081 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1082 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1083 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1084 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1085 f:\sp\public\sdk\inc\wincon.h
+FILE 1086 f:\sp\public\sdk\inc\imm.h
+FILE 1087 f:\sp\public\sdk\inc\winbase.h
+FILE 1088 f:\sp\public\sdk\inc\wingdi.h
+FILE 1089 f:\sp\public\sdk\inc\winver.h
+FILE 1090 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1091 f:\sp\public\sdk\inc\windows.h
+FILE 1092 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1093 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1094 f:\sp\public\sdk\inc\reason.h
+FILE 1095 f:\sp\vctools\crt_bld\self_x86\crt\src\woutputp.c
+FILE 1096 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1097 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1098 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1099 f:\sp\public\sdk\inc\specstrings.h
+FILE 1100 f:\sp\public\sdk\inc\basetsd.h
+FILE 1101 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1102 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1103 f:\sp\public\sdk\inc\stralign.h
+FILE 1104 f:\sp\public\sdk\inc\poppack.h
+FILE 1105 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1106 f:\sp\public\sdk\inc\winsvc.h
+FILE 1107 f:\sp\public\sdk\inc\windef.h
+FILE 1108 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1109 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1110 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1111 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1112 f:\sp\public\sdk\inc\winuser.h
+FILE 1113 f:\sp\public\sdk\inc\mcx.h
+FILE 1114 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1115 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1116 f:\sp\public\sdk\inc\guiddef.h
+FILE 1117 f:\sp\public\sdk\inc\winnt.h
+FILE 1118 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1119 f:\sp\public\sdk\inc\winnls.h
+FILE 1120 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1121 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1122 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1123 f:\sp\public\sdk\inc\winerror.h
+FILE 1124 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1125 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1126 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1127 f:\sp\public\sdk\inc\winreg.h
+FILE 1128 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1129 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1130 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1131 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1132 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1133 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1134 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1135 f:\sp\public\sdk\inc\tvout.h
+FILE 1136 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1137 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1138 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1139 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1140 f:\sp\public\sdk\inc\wincon.h
+FILE 1141 f:\sp\public\sdk\inc\imm.h
+FILE 1142 f:\sp\public\sdk\inc\winbase.h
+FILE 1143 f:\sp\public\sdk\inc\wingdi.h
+FILE 1144 f:\sp\public\sdk\inc\winver.h
+FILE 1145 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1146 f:\sp\public\sdk\inc\windows.h
+FILE 1147 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1148 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1149 f:\sp\public\sdk\inc\reason.h
+FILE 1150 f:\sp\vctools\crt_bld\self_x86\crt\src\woutput.c
+FILE 1151 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1152 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1153 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1154 f:\sp\public\sdk\inc\specstrings.h
+FILE 1155 f:\sp\public\sdk\inc\basetsd.h
+FILE 1156 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1157 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1158 f:\sp\public\sdk\inc\stralign.h
+FILE 1159 f:\sp\public\sdk\inc\poppack.h
+FILE 1160 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1161 f:\sp\public\sdk\inc\winsvc.h
+FILE 1162 f:\sp\public\sdk\inc\windef.h
+FILE 1163 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1164 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1165 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1166 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1167 f:\sp\public\sdk\inc\winuser.h
+FILE 1168 f:\sp\public\sdk\inc\mcx.h
+FILE 1169 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1170 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1171 f:\sp\public\sdk\inc\guiddef.h
+FILE 1172 f:\sp\public\sdk\inc\winnt.h
+FILE 1173 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1174 f:\sp\public\sdk\inc\winnls.h
+FILE 1175 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1176 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1177 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1178 f:\sp\public\sdk\inc\winerror.h
+FILE 1179 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1180 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1181 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1182 f:\sp\public\sdk\inc\winreg.h
+FILE 1183 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1184 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1185 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1186 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1187 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1188 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1189 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1190 f:\sp\public\sdk\inc\tvout.h
+FILE 1191 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1192 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1193 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1194 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1195 f:\sp\public\sdk\inc\wincon.h
+FILE 1196 f:\sp\public\sdk\inc\imm.h
+FILE 1197 f:\sp\public\sdk\inc\winbase.h
+FILE 1198 f:\sp\public\sdk\inc\wingdi.h
+FILE 1199 f:\sp\public\sdk\inc\winver.h
+FILE 1200 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1201 f:\sp\public\sdk\inc\windows.h
+FILE 1202 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1203 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1204 f:\sp\public\sdk\inc\reason.h
+FILE 1205 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1206 f:\sp\vctools\crt_bld\self_x86\crt\src\outputs.c
+FILE 1207 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1208 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1209 f:\sp\public\sdk\inc\specstrings.h
+FILE 1210 f:\sp\public\sdk\inc\basetsd.h
+FILE 1211 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1212 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1213 f:\sp\public\sdk\inc\stralign.h
+FILE 1214 f:\sp\public\sdk\inc\poppack.h
+FILE 1215 f:\sp\public\sdk\inc\winsvc.h
+FILE 1216 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1217 f:\sp\public\sdk\inc\windef.h
+FILE 1218 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1219 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1220 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1221 f:\sp\public\sdk\inc\winuser.h
+FILE 1222 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1223 f:\sp\public\sdk\inc\mcx.h
+FILE 1224 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1225 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1226 f:\sp\public\sdk\inc\guiddef.h
+FILE 1227 f:\sp\public\sdk\inc\winnt.h
+FILE 1228 f:\sp\public\sdk\inc\winnls.h
+FILE 1229 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1230 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1231 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1232 f:\sp\public\sdk\inc\winerror.h
+FILE 1233 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1234 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1235 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1236 f:\sp\public\sdk\inc\winreg.h
+FILE 1237 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1238 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1239 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1240 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1241 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1242 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1243 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1244 f:\sp\public\sdk\inc\tvout.h
+FILE 1245 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1246 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1247 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1248 f:\sp\public\sdk\inc\wincon.h
+FILE 1249 f:\sp\public\sdk\inc\imm.h
+FILE 1250 f:\sp\public\sdk\inc\winbase.h
+FILE 1251 f:\sp\public\sdk\inc\wingdi.h
+FILE 1252 f:\sp\public\sdk\inc\winver.h
+FILE 1253 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1254 f:\sp\public\sdk\inc\windows.h
+FILE 1255 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1256 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1257 f:\sp\public\sdk\inc\reason.h
+FILE 1258 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1259 f:\sp\vctools\crt_bld\self_x86\crt\src\outputp.c
+FILE 1260 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1261 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1262 f:\sp\public\sdk\inc\specstrings.h
+FILE 1263 f:\sp\public\sdk\inc\basetsd.h
+FILE 1264 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1265 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1266 f:\sp\public\sdk\inc\stralign.h
+FILE 1267 f:\sp\public\sdk\inc\poppack.h
+FILE 1268 f:\sp\public\sdk\inc\winsvc.h
+FILE 1269 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1270 f:\sp\public\sdk\inc\windef.h
+FILE 1271 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1272 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1274 f:\sp\public\sdk\inc\winuser.h
+FILE 1275 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1276 f:\sp\public\sdk\inc\mcx.h
+FILE 1277 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1278 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1279 f:\sp\public\sdk\inc\guiddef.h
+FILE 1280 f:\sp\public\sdk\inc\winnt.h
+FILE 1281 f:\sp\public\sdk\inc\winnls.h
+FILE 1282 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1283 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1284 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1285 f:\sp\public\sdk\inc\winerror.h
+FILE 1286 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1287 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1288 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1289 f:\sp\public\sdk\inc\winreg.h
+FILE 1290 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1291 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1292 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1293 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1294 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1295 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1296 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1297 f:\sp\public\sdk\inc\tvout.h
+FILE 1298 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1299 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1300 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1301 f:\sp\public\sdk\inc\wincon.h
+FILE 1302 f:\sp\public\sdk\inc\imm.h
+FILE 1303 f:\sp\public\sdk\inc\winbase.h
+FILE 1304 f:\sp\public\sdk\inc\wingdi.h
+FILE 1305 f:\sp\public\sdk\inc\winver.h
+FILE 1306 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1307 f:\sp\public\sdk\inc\windows.h
+FILE 1308 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1309 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1310 f:\sp\public\sdk\inc\reason.h
+FILE 1311 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 1312 f:\sp\vctools\crt_bld\self_x86\crt\src\output.c
+FILE 1313 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1314 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1315 f:\sp\public\sdk\inc\specstrings.h
+FILE 1316 f:\sp\public\sdk\inc\basetsd.h
+FILE 1317 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1318 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1319 f:\sp\public\sdk\inc\stralign.h
+FILE 1320 f:\sp\public\sdk\inc\poppack.h
+FILE 1321 f:\sp\public\sdk\inc\winsvc.h
+FILE 1322 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1323 f:\sp\public\sdk\inc\windef.h
+FILE 1324 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1325 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1326 f:\sp\public\sdk\inc\winuser.h
+FILE 1327 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1328 f:\sp\public\sdk\inc\mcx.h
+FILE 1329 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1330 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1331 f:\sp\public\sdk\inc\guiddef.h
+FILE 1332 f:\sp\public\sdk\inc\winnt.h
+FILE 1333 f:\sp\public\sdk\inc\winnls.h
+FILE 1334 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1335 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1336 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1337 f:\sp\public\sdk\inc\winerror.h
+FILE 1338 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1339 f:\sp\vctools\crt_bld\self_x86\crt\src\cvt.h
+FILE 1340 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 1341 f:\sp\public\sdk\inc\winreg.h
+FILE 1342 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1343 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 1344 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 1345 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1346 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1347 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1348 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1349 f:\sp\public\sdk\inc\tvout.h
+FILE 1350 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1351 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1352 f:\sp\public\sdk\inc\stralign.h
+FILE 1353 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1354 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1355 f:\sp\public\sdk\inc\tvout.h
+FILE 1356 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1357 f:\sp\public\sdk\inc\windows.h
+FILE 1358 f:\sp\public\sdk\inc\winsvc.h
+FILE 1359 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1360 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1361 f:\sp\public\sdk\inc\wingdi.h
+FILE 1362 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1363 f:\sp\public\sdk\inc\poppack.h
+FILE 1364 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1365 f:\sp\public\sdk\inc\imm.h
+FILE 1366 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1367 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1368 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1369 f:\sp\public\sdk\inc\windef.h
+FILE 1370 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1371 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1372 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1373 f:\sp\public\sdk\inc\winver.h
+FILE 1374 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprnc.c
+FILE 1375 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1376 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1377 f:\sp\public\sdk\inc\winnt.h
+FILE 1378 f:\sp\public\sdk\inc\winreg.h
+FILE 1379 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1380 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprint.c
+FILE 1381 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1382 f:\sp\public\sdk\inc\winbase.h
+FILE 1383 f:\sp\public\sdk\inc\winerror.h
+FILE 1384 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1385 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1386 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1387 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1388 f:\sp\public\sdk\inc\guiddef.h
+FILE 1389 f:\sp\public\sdk\inc\specstrings.h
+FILE 1390 f:\sp\public\sdk\inc\basetsd.h
+FILE 1391 f:\sp\public\sdk\inc\reason.h
+FILE 1392 f:\sp\public\sdk\inc\wincon.h
+FILE 1393 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1394 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1395 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1396 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1397 f:\sp\public\sdk\inc\mcx.h
+FILE 1398 f:\sp\public\sdk\inc\winuser.h
+FILE 1399 f:\sp\public\sdk\inc\winnls.h
+FILE 1400 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1401 f:\sp\public\sdk\inc\winver.h
+FILE 1402 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1403 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1404 f:\sp\public\sdk\inc\winnt.h
+FILE 1405 f:\sp\public\sdk\inc\winreg.h
+FILE 1406 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1407 f:\sp\public\sdk\inc\winbase.h
+FILE 1408 f:\sp\public\sdk\inc\winerror.h
+FILE 1409 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1410 f:\sp\public\sdk\inc\guiddef.h
+FILE 1411 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1412 f:\sp\public\sdk\inc\specstrings.h
+FILE 1413 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1414 f:\sp\public\sdk\inc\basetsd.h
+FILE 1415 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1416 f:\sp\public\sdk\inc\reason.h
+FILE 1417 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1418 f:\sp\public\sdk\inc\wincon.h
+FILE 1419 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1420 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1421 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1422 f:\sp\public\sdk\inc\mcx.h
+FILE 1423 f:\sp\public\sdk\inc\winuser.h
+FILE 1424 f:\sp\public\sdk\inc\winnls.h
+FILE 1425 f:\sp\vctools\crt_bld\self_x86\crt\src\vswprint.c
+FILE 1426 f:\sp\public\sdk\inc\stralign.h
+FILE 1427 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1428 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1429 f:\sp\public\sdk\inc\tvout.h
+FILE 1430 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1431 f:\sp\public\sdk\inc\windows.h
+FILE 1432 f:\sp\public\sdk\inc\winsvc.h
+FILE 1433 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1434 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1435 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1436 f:\sp\public\sdk\inc\wingdi.h
+FILE 1437 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1438 f:\sp\public\sdk\inc\poppack.h
+FILE 1439 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1440 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1441 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1442 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1443 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1444 f:\sp\public\sdk\inc\imm.h
+FILE 1445 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1446 f:\sp\public\sdk\inc\windef.h
+FILE 1447 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1448 f:\sp\public\sdk\inc\windef.h
+FILE 1449 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1450 f:\sp\public\sdk\inc\winver.h
+FILE 1451 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1452 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1453 f:\sp\public\sdk\inc\winnt.h
+FILE 1454 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1455 f:\sp\public\sdk\inc\winreg.h
+FILE 1456 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1457 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1458 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1459 f:\sp\public\sdk\inc\winbase.h
+FILE 1460 f:\sp\public\sdk\inc\winerror.h
+FILE 1461 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1462 f:\sp\vctools\crt_bld\self_x86\crt\src\vfprintf.c
+FILE 1463 f:\sp\public\sdk\inc\reason.h
+FILE 1464 f:\sp\public\sdk\inc\wincon.h
+FILE 1465 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1466 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1467 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1468 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1469 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1470 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1471 f:\sp\public\sdk\inc\mcx.h
+FILE 1472 f:\sp\public\sdk\inc\winuser.h
+FILE 1473 f:\sp\public\sdk\inc\winnls.h
+FILE 1474 f:\sp\public\sdk\inc\guiddef.h
+FILE 1475 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1476 f:\sp\public\sdk\inc\windows.h
+FILE 1477 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1478 f:\sp\public\sdk\inc\specstrings.h
+FILE 1479 f:\sp\public\sdk\inc\basetsd.h
+FILE 1480 f:\sp\public\sdk\inc\stralign.h
+FILE 1481 f:\sp\public\sdk\inc\tvout.h
+FILE 1482 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1483 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1484 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1485 f:\sp\public\sdk\inc\winsvc.h
+FILE 1486 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1487 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1488 f:\sp\public\sdk\inc\wingdi.h
+FILE 1489 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1490 f:\sp\public\sdk\inc\poppack.h
+FILE 1491 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1492 f:\sp\public\sdk\inc\imm.h
+FILE 1493 f:\sp\public\sdk\inc\windef.h
+FILE 1494 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1495 f:\sp\public\sdk\inc\winver.h
+FILE 1496 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1498 f:\sp\public\sdk\inc\winnt.h
+FILE 1499 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1500 f:\sp\public\sdk\inc\winreg.h
+FILE 1501 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1502 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1503 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1504 f:\sp\public\sdk\inc\winbase.h
+FILE 1505 f:\sp\public\sdk\inc\winerror.h
+FILE 1506 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1507 f:\sp\vctools\crt_bld\self_x86\crt\src\vprintf.c
+FILE 1508 f:\sp\public\sdk\inc\reason.h
+FILE 1509 f:\sp\public\sdk\inc\wincon.h
+FILE 1510 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1511 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1513 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1514 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1515 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1516 f:\sp\public\sdk\inc\mcx.h
+FILE 1517 f:\sp\public\sdk\inc\winuser.h
+FILE 1518 f:\sp\public\sdk\inc\winnls.h
+FILE 1519 f:\sp\public\sdk\inc\guiddef.h
+FILE 1520 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1521 f:\sp\public\sdk\inc\windows.h
+FILE 1522 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1523 f:\sp\public\sdk\inc\specstrings.h
+FILE 1524 f:\sp\public\sdk\inc\basetsd.h
+FILE 1525 f:\sp\public\sdk\inc\stralign.h
+FILE 1526 f:\sp\public\sdk\inc\tvout.h
+FILE 1527 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1528 f:\sp\public\sdk\inc\winsvc.h
+FILE 1529 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1530 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1531 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1532 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1533 f:\sp\public\sdk\inc\wingdi.h
+FILE 1534 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1535 f:\sp\public\sdk\inc\poppack.h
+FILE 1536 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1537 f:\sp\public\sdk\inc\imm.h
+FILE 1538 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1539 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1540 f:\sp\public\sdk\inc\winver.h
+FILE 1541 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1542 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1543 f:\sp\public\sdk\inc\winnt.h
+FILE 1544 f:\sp\public\sdk\inc\winreg.h
+FILE 1545 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1546 f:\sp\public\sdk\inc\winbase.h
+FILE 1547 f:\sp\public\sdk\inc\winerror.h
+FILE 1548 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1549 f:\sp\public\sdk\inc\guiddef.h
+FILE 1550 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1551 f:\sp\public\sdk\inc\specstrings.h
+FILE 1552 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1553 f:\sp\public\sdk\inc\basetsd.h
+FILE 1554 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1555 f:\sp\public\sdk\inc\reason.h
+FILE 1556 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1557 f:\sp\public\sdk\inc\wincon.h
+FILE 1558 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1559 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1560 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1561 f:\sp\public\sdk\inc\mcx.h
+FILE 1562 f:\sp\public\sdk\inc\winuser.h
+FILE 1563 f:\sp\public\sdk\inc\winnls.h
+FILE 1564 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.c
+FILE 1565 f:\sp\public\sdk\inc\stralign.h
+FILE 1566 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1567 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1568 f:\sp\public\sdk\inc\tvout.h
+FILE 1569 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1570 f:\sp\public\sdk\inc\windows.h
+FILE 1571 f:\sp\public\sdk\inc\winsvc.h
+FILE 1572 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1573 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1574 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1575 f:\sp\public\sdk\inc\wingdi.h
+FILE 1576 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1577 f:\sp\public\sdk\inc\poppack.h
+FILE 1578 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1579 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1580 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1581 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1582 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1583 f:\sp\public\sdk\inc\imm.h
+FILE 1584 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1585 f:\sp\public\sdk\inc\windef.h
+FILE 1586 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1587 f:\sp\public\sdk\inc\windef.h
+FILE 1588 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1589 f:\sp\public\sdk\inc\winver.h
+FILE 1590 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1591 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1592 f:\sp\public\sdk\inc\winnt.h
+FILE 1593 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1594 f:\sp\public\sdk\inc\winreg.h
+FILE 1595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1596 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1597 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1598 f:\sp\public\sdk\inc\winbase.h
+FILE 1599 f:\sp\public\sdk\inc\winerror.h
+FILE 1600 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1601 f:\sp\vctools\crt_bld\self_x86\crt\src\printf.c
+FILE 1602 f:\sp\public\sdk\inc\reason.h
+FILE 1603 f:\sp\public\sdk\inc\wincon.h
+FILE 1604 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1605 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1606 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1607 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1608 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1609 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1610 f:\sp\public\sdk\inc\mcx.h
+FILE 1611 f:\sp\public\sdk\inc\winuser.h
+FILE 1612 f:\sp\public\sdk\inc\winnls.h
+FILE 1613 f:\sp\public\sdk\inc\guiddef.h
+FILE 1614 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1615 f:\sp\public\sdk\inc\windows.h
+FILE 1616 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1617 f:\sp\public\sdk\inc\specstrings.h
+FILE 1618 f:\sp\public\sdk\inc\basetsd.h
+FILE 1619 f:\sp\public\sdk\inc\stralign.h
+FILE 1620 f:\sp\public\sdk\inc\tvout.h
+FILE 1621 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1622 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1623 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1624 f:\sp\public\sdk\inc\winsvc.h
+FILE 1625 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1626 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1627 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 1628 f:\sp\public\sdk\inc\wingdi.h
+FILE 1629 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1630 f:\sp\public\sdk\inc\poppack.h
+FILE 1631 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1632 f:\sp\public\sdk\inc\imm.h
+FILE 1633 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1634 f:\sp\public\sdk\inc\windef.h
+FILE 1635 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1636 f:\sp\public\sdk\inc\winver.h
+FILE 1637 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1638 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1639 f:\sp\public\sdk\inc\winnt.h
+FILE 1640 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1641 f:\sp\public\sdk\inc\winreg.h
+FILE 1642 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1643 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1644 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1645 f:\sp\public\sdk\inc\winbase.h
+FILE 1646 f:\sp\public\sdk\inc\winerror.h
+FILE 1647 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1648 f:\sp\vctools\crt_bld\self_x86\crt\src\fprintf.c
+FILE 1649 f:\sp\public\sdk\inc\reason.h
+FILE 1650 f:\sp\public\sdk\inc\wincon.h
+FILE 1651 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1652 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1653 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1654 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1655 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1656 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1657 f:\sp\public\sdk\inc\mcx.h
+FILE 1658 f:\sp\public\sdk\inc\winuser.h
+FILE 1659 f:\sp\public\sdk\inc\winnls.h
+FILE 1660 f:\sp\public\sdk\inc\guiddef.h
+FILE 1661 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1662 f:\sp\public\sdk\inc\windows.h
+FILE 1663 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1664 f:\sp\public\sdk\inc\specstrings.h
+FILE 1665 f:\sp\public\sdk\inc\basetsd.h
+FILE 1666 f:\sp\public\sdk\inc\stralign.h
+FILE 1667 f:\sp\public\sdk\inc\tvout.h
+FILE 1668 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1669 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1670 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 1671 f:\sp\public\sdk\inc\winsvc.h
+FILE 1672 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1673 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1674 f:\sp\public\sdk\inc\wingdi.h
+FILE 1675 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1676 f:\sp\public\sdk\inc\poppack.h
+FILE 1677 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1678 f:\sp\public\sdk\inc\imm.h
+FILE 1679 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1680 f:\sp\public\sdk\inc\winver.h
+FILE 1681 f:\sp\public\sdk\inc\winnt.h
+FILE 1682 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1683 f:\sp\public\sdk\inc\winreg.h
+FILE 1684 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1685 f:\sp\public\sdk\inc\winbase.h
+FILE 1686 f:\sp\public\sdk\inc\winerror.h
+FILE 1687 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1688 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1689 f:\sp\public\sdk\inc\reason.h
+FILE 1690 f:\sp\public\sdk\inc\wincon.h
+FILE 1691 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1692 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1693 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1694 f:\sp\public\sdk\inc\mcx.h
+FILE 1695 f:\sp\public\sdk\inc\winuser.h
+FILE 1696 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1697 f:\sp\public\sdk\inc\winnls.h
+FILE 1698 f:\sp\public\sdk\inc\guiddef.h
+FILE 1699 f:\sp\public\sdk\inc\windows.h
+FILE 1700 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1701 f:\sp\public\sdk\inc\specstrings.h
+FILE 1702 f:\sp\public\sdk\inc\basetsd.h
+FILE 1703 f:\sp\public\sdk\inc\stralign.h
+FILE 1704 f:\sp\vctools\crt_bld\self_x86\crt\src\fflush.c
+FILE 1705 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1706 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1707 f:\sp\public\sdk\inc\tvout.h
+FILE 1708 f:\sp\public\sdk\inc\winsvc.h
+FILE 1709 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1710 f:\sp\public\sdk\inc\wingdi.h
+FILE 1711 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1712 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1713 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1714 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1715 f:\sp\public\sdk\inc\poppack.h
+FILE 1716 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1717 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1718 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1719 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1720 f:\sp\public\sdk\inc\imm.h
+FILE 1721 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1722 f:\sp\public\sdk\inc\windef.h
+FILE 1723 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1724 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1725 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1726 f:\sp\public\sdk\inc\reason.h
+FILE 1727 f:\sp\public\sdk\inc\wincon.h
+FILE 1728 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1729 f:\sp\public\sdk\inc\mcx.h
+FILE 1730 f:\sp\public\sdk\inc\winuser.h
+FILE 1731 f:\sp\public\sdk\inc\winnls.h
+FILE 1732 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1733 f:\sp\public\sdk\inc\windef.h
+FILE 1734 f:\sp\public\sdk\inc\stralign.h
+FILE 1735 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1736 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1737 f:\sp\public\sdk\inc\tvout.h
+FILE 1738 f:\sp\public\sdk\inc\winsvc.h
+FILE 1739 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1740 f:\sp\public\sdk\inc\wingdi.h
+FILE 1741 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1742 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1743 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1744 f:\sp\public\sdk\inc\poppack.h
+FILE 1745 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1746 f:\sp\public\sdk\inc\winnt.h
+FILE 1747 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1748 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1749 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1750 f:\sp\public\sdk\inc\imm.h
+FILE 1751 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1752 f:\sp\vctools\crt_bld\self_x86\crt\src\fclose.c
+FILE 1753 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1754 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1755 f:\sp\public\sdk\inc\winver.h
+FILE 1756 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1757 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1758 f:\sp\public\sdk\inc\guiddef.h
+FILE 1759 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1760 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1761 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1762 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1763 f:\sp\public\sdk\inc\specstrings.h
+FILE 1764 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1765 f:\sp\public\sdk\inc\basetsd.h
+FILE 1766 f:\sp\public\sdk\inc\windows.h
+FILE 1767 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1768 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1769 f:\sp\public\sdk\inc\winreg.h
+FILE 1770 f:\sp\public\sdk\inc\winbase.h
+FILE 1771 f:\sp\public\sdk\inc\winerror.h
+FILE 1772 f:\sp\public\sdk\inc\poppack.h
+FILE 1773 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1774 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1775 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1776 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1777 f:\sp\public\sdk\inc\imm.h
+FILE 1778 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1779 f:\sp\public\sdk\inc\windef.h
+FILE 1780 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1781 f:\sp\public\sdk\inc\winver.h
+FILE 1782 f:\sp\public\sdk\inc\windows.h
+FILE 1783 f:\sp\public\sdk\inc\winnt.h
+FILE 1784 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1785 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1786 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1787 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1788 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1789 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1790 f:\sp\public\sdk\inc\winreg.h
+FILE 1791 f:\sp\public\sdk\inc\winbase.h
+FILE 1792 f:\sp\vctools\crt_bld\self_x86\crt\src\closeall.c
+FILE 1793 f:\sp\public\sdk\inc\winerror.h
+FILE 1794 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1795 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1796 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1797 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1798 f:\sp\public\sdk\inc\reason.h
+FILE 1799 f:\sp\public\sdk\inc\wincon.h
+FILE 1800 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1801 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1802 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1803 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1804 f:\sp\public\sdk\inc\mcx.h
+FILE 1805 f:\sp\public\sdk\inc\winuser.h
+FILE 1806 f:\sp\public\sdk\inc\winnls.h
+FILE 1807 f:\sp\public\sdk\inc\guiddef.h
+FILE 1808 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1809 f:\sp\public\sdk\inc\specstrings.h
+FILE 1810 f:\sp\public\sdk\inc\basetsd.h
+FILE 1811 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1812 f:\sp\public\sdk\inc\stralign.h
+FILE 1813 f:\sp\public\sdk\inc\tvout.h
+FILE 1814 f:\sp\public\sdk\inc\winsvc.h
+FILE 1815 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1816 f:\sp\public\sdk\inc\wingdi.h
+FILE 1817 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1818 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1819 f:\sp\public\sdk\inc\reason.h
+FILE 1820 f:\sp\public\sdk\inc\wincon.h
+FILE 1821 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1822 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1823 f:\sp\public\sdk\inc\mcx.h
+FILE 1824 f:\sp\public\sdk\inc\winuser.h
+FILE 1825 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1826 f:\sp\public\sdk\inc\winnls.h
+FILE 1827 f:\sp\public\sdk\inc\guiddef.h
+FILE 1828 f:\sp\public\sdk\inc\windows.h
+FILE 1829 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1830 f:\sp\public\sdk\inc\specstrings.h
+FILE 1831 f:\sp\public\sdk\inc\basetsd.h
+FILE 1832 f:\sp\public\sdk\inc\stralign.h
+FILE 1833 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1834 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1835 f:\sp\public\sdk\inc\tvout.h
+FILE 1836 f:\sp\public\sdk\inc\winsvc.h
+FILE 1837 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1838 f:\sp\public\sdk\inc\wingdi.h
+FILE 1839 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1840 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1841 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1842 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1843 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1844 f:\sp\public\sdk\inc\poppack.h
+FILE 1845 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1846 f:\sp\public\sdk\inc\imm.h
+FILE 1847 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1848 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1849 f:\sp\public\sdk\inc\windef.h
+FILE 1850 f:\sp\vctools\crt_bld\self_x86\crt\src\_sftbuf.c
+FILE 1851 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1852 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1853 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1854 f:\sp\public\sdk\inc\winver.h
+FILE 1855 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1856 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1857 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1858 f:\sp\public\sdk\inc\winnt.h
+FILE 1859 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1860 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1861 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1862 f:\sp\public\sdk\inc\winreg.h
+FILE 1863 f:\sp\public\sdk\inc\winbase.h
+FILE 1864 f:\sp\public\sdk\inc\winerror.h
+FILE 1865 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1866 f:\sp\public\sdk\inc\winver.h
+FILE 1867 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1868 f:\sp\public\sdk\inc\winnt.h
+FILE 1869 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1870 f:\sp\public\sdk\inc\winreg.h
+FILE 1871 f:\sp\public\sdk\inc\winbase.h
+FILE 1872 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1873 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1874 f:\sp\public\sdk\inc\winerror.h
+FILE 1875 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1876 f:\sp\public\sdk\inc\reason.h
+FILE 1877 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1878 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1879 f:\sp\public\sdk\inc\wincon.h
+FILE 1880 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1881 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1882 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1883 f:\sp\public\sdk\inc\mcx.h
+FILE 1884 f:\sp\public\sdk\inc\winuser.h
+FILE 1885 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1886 f:\sp\public\sdk\inc\winnls.h
+FILE 1887 f:\sp\public\sdk\inc\guiddef.h
+FILE 1888 f:\sp\public\sdk\inc\windows.h
+FILE 1889 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1890 f:\sp\public\sdk\inc\specstrings.h
+FILE 1891 f:\sp\public\sdk\inc\basetsd.h
+FILE 1892 f:\sp\public\sdk\inc\stralign.h
+FILE 1893 f:\sp\vctools\crt_bld\self_x86\crt\src\_getbuf.c
+FILE 1894 f:\sp\public\sdk\inc\tvout.h
+FILE 1895 f:\sp\public\sdk\inc\winsvc.h
+FILE 1896 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1897 f:\sp\public\sdk\inc\wingdi.h
+FILE 1898 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1899 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1900 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1901 f:\sp\public\sdk\inc\poppack.h
+FILE 1902 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1903 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1904 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1905 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1906 f:\sp\public\sdk\inc\imm.h
+FILE 1907 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1908 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1909 f:\sp\public\sdk\inc\windef.h
+FILE 1910 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1911 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1912 f:\sp\public\sdk\inc\windef.h
+FILE 1913 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1914 f:\sp\public\sdk\inc\winver.h
+FILE 1915 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1916 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1917 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1918 f:\sp\public\sdk\inc\winnt.h
+FILE 1919 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 1920 f:\sp\public\sdk\inc\winreg.h
+FILE 1921 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1922 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1923 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1924 f:\sp\public\sdk\inc\winbase.h
+FILE 1925 f:\sp\public\sdk\inc\winerror.h
+FILE 1926 f:\sp\public\sdk\inc\pshpack8.h
+FILE 1927 f:\sp\vctools\crt_bld\self_x86\crt\src\_freebuf.c
+FILE 1928 f:\sp\public\sdk\inc\reason.h
+FILE 1929 f:\sp\public\sdk\inc\wincon.h
+FILE 1930 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 1931 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1932 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1933 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1934 f:\sp\public\sdk\inc\mcx.h
+FILE 1935 f:\sp\public\sdk\inc\winuser.h
+FILE 1936 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1937 f:\sp\public\sdk\inc\winnls.h
+FILE 1938 f:\sp\public\sdk\inc\guiddef.h
+FILE 1939 f:\sp\public\sdk\inc\windows.h
+FILE 1940 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1941 f:\sp\public\sdk\inc\specstrings.h
+FILE 1942 f:\sp\public\sdk\inc\basetsd.h
+FILE 1943 f:\sp\public\sdk\inc\stralign.h
+FILE 1944 f:\sp\public\sdk\inc\tvout.h
+FILE 1945 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1946 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1947 f:\sp\public\sdk\inc\winsvc.h
+FILE 1948 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1949 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1950 f:\sp\public\sdk\inc\wingdi.h
+FILE 1951 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1952 f:\sp\public\sdk\inc\poppack.h
+FILE 1953 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1954 f:\sp\public\sdk\inc\imm.h
+FILE 1955 f:\sp\public\sdk\inc\specstrings.h
+FILE 1956 f:\sp\public\sdk\inc\basetsd.h
+FILE 1957 f:\sp\public\sdk\inc\reason.h
+FILE 1958 f:\sp\public\sdk\inc\wincon.h
+FILE 1959 f:\sp\public\sdk\inc\pshpack2.h
+FILE 1960 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 1961 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 1962 f:\sp\public\sdk\inc\mcx.h
+FILE 1963 f:\sp\public\sdk\inc\winuser.h
+FILE 1964 f:\sp\public\sdk\inc\winnls.h
+FILE 1965 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 1966 f:\sp\public\sdk\inc\stralign.h
+FILE 1967 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 1968 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 1969 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 1970 f:\sp\public\sdk\inc\windows.h
+FILE 1971 f:\sp\public\sdk\inc\tvout.h
+FILE 1972 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 1973 f:\sp\public\sdk\inc\winsvc.h
+FILE 1974 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 1975 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 1976 f:\sp\public\sdk\inc\wingdi.h
+FILE 1977 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 1978 f:\sp\public\sdk\inc\pshpack4.h
+FILE 1979 f:\sp\public\sdk\inc\poppack.h
+FILE 1980 f:\sp\vctools\crt_bld\self_x86\crt\src\_flsbuf.c
+FILE 1981 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 1982 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 1983 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 1984 f:\sp\public\sdk\inc\winnetwk.h
+FILE 1985 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1986 f:\sp\public\sdk\inc\imm.h
+FILE 1987 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 1988 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 1989 f:\sp\vctools\crt_bld\self_x86\crt\src\_flswbuf.c
+FILE 1990 f:\sp\public\sdk\inc\windef.h
+FILE 1991 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 1992 f:\sp\public\sdk\inc\pshpack1.h
+FILE 1993 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1994 f:\sp\public\sdk\inc\winver.h
+FILE 1995 f:\sp\public\sdk\inc\ddbanned.h
+FILE 1996 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 1997 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 1998 f:\sp\public\sdk\inc\winnt.h
+FILE 1999 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2000 f:\sp\public\sdk\inc\winreg.h
+FILE 2001 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2002 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2003 f:\sp\public\sdk\inc\winbase.h
+FILE 2004 f:\sp\public\sdk\inc\winerror.h
+FILE 2005 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2006 f:\sp\public\sdk\inc\guiddef.h
+FILE 2007 f:\sp\public\sdk\inc\basetsd.h
+FILE 2008 f:\sp\public\sdk\inc\reason.h
+FILE 2009 f:\sp\public\sdk\inc\wincon.h
+FILE 2010 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2011 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2012 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2013 f:\sp\public\sdk\inc\mcx.h
+FILE 2014 f:\sp\public\sdk\inc\winuser.h
+FILE 2015 f:\sp\public\sdk\inc\winnls.h
+FILE 2016 f:\sp\public\sdk\inc\stralign.h
+FILE 2017 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2018 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2019 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2020 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2021 f:\sp\public\sdk\inc\tvout.h
+FILE 2022 f:\sp\public\sdk\inc\windows.h
+FILE 2023 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2024 f:\sp\public\sdk\inc\winsvc.h
+FILE 2025 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2026 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2027 f:\sp\public\sdk\inc\wingdi.h
+FILE 2028 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2029 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 2030 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2031 f:\sp\public\sdk\inc\poppack.h
+FILE 2032 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2034 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2035 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2036 f:\sp\public\sdk\inc\imm.h
+FILE 2037 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2038 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2039 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2040 f:\sp\public\sdk\inc\windef.h
+FILE 2041 f:\sp\vctools\crt_bld\self_x86\crt\src\_flsbuf.c
+FILE 2042 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2043 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2044 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2045 f:\sp\public\sdk\inc\winver.h
+FILE 2046 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2047 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2048 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2049 f:\sp\public\sdk\inc\winnt.h
+FILE 2050 f:\sp\public\sdk\inc\winreg.h
+FILE 2051 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2052 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2053 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2054 f:\sp\public\sdk\inc\winbase.h
+FILE 2055 f:\sp\public\sdk\inc\winerror.h
+FILE 2056 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2057 f:\sp\public\sdk\inc\guiddef.h
+FILE 2058 f:\sp\public\sdk\inc\specstrings.h
+FILE 2059 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2060 f:\sp\public\sdk\inc\reason.h
+FILE 2061 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2062 f:\sp\public\sdk\inc\wincon.h
+FILE 2063 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2064 f:\sp\public\sdk\inc\mcx.h
+FILE 2065 f:\sp\public\sdk\inc\winuser.h
+FILE 2066 f:\sp\public\sdk\inc\winnls.h
+FILE 2067 f:\sp\public\sdk\inc\guiddef.h
+FILE 2068 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2069 f:\sp\public\sdk\inc\specstrings.h
+FILE 2070 f:\sp\public\sdk\inc\basetsd.h
+FILE 2071 f:\sp\public\sdk\inc\stralign.h
+FILE 2072 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2073 f:\sp\public\sdk\inc\tvout.h
+FILE 2074 f:\sp\public\sdk\inc\winsvc.h
+FILE 2075 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2076 f:\sp\public\sdk\inc\wingdi.h
+FILE 2077 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2078 f:\sp\public\sdk\inc\poppack.h
+FILE 2079 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2080 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2081 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2082 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2083 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2084 f:\sp\public\sdk\inc\imm.h
+FILE 2085 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2086 f:\sp\public\sdk\inc\windef.h
+FILE 2087 f:\sp\vctools\crt_bld\self_x86\crt\src\_file.c
+FILE 2088 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2089 f:\sp\public\sdk\inc\winver.h
+FILE 2090 f:\sp\public\sdk\inc\windows.h
+FILE 2091 f:\sp\public\sdk\inc\winnt.h
+FILE 2092 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2093 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2094 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2095 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2096 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2097 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2098 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2099 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2100 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2101 f:\sp\public\sdk\inc\winreg.h
+FILE 2102 f:\sp\public\sdk\inc\winbase.h
+FILE 2103 f:\sp\public\sdk\inc\winerror.h
+FILE 2104 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2105 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2106 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2108 f:\sp\public\sdk\inc\windef.h
+FILE 2109 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2110 f:\sp\public\sdk\inc\winver.h
+FILE 2111 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2112 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2113 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2114 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2115 f:\sp\public\sdk\inc\winnt.h
+FILE 2116 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2117 f:\sp\public\sdk\inc\winreg.h
+FILE 2118 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2119 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2120 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2121 f:\sp\public\sdk\inc\winbase.h
+FILE 2122 f:\sp\public\sdk\inc\winerror.h
+FILE 2123 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2124 f:\sp\vctools\crt_bld\self_x86\crt\src\fputwc.c
+FILE 2125 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2126 f:\sp\public\sdk\inc\reason.h
+FILE 2127 f:\sp\public\sdk\inc\wincon.h
+FILE 2128 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2129 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2130 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2131 f:\sp\public\sdk\inc\mcx.h
+FILE 2132 f:\sp\public\sdk\inc\winuser.h
+FILE 2133 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2134 f:\sp\public\sdk\inc\winnls.h
+FILE 2135 f:\sp\public\sdk\inc\guiddef.h
+FILE 2136 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2137 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2138 f:\sp\public\sdk\inc\stralign.h
+FILE 2139 f:\sp\public\sdk\inc\specstrings.h
+FILE 2140 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 2141 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2142 f:\sp\public\sdk\inc\basetsd.h
+FILE 2143 f:\sp\public\sdk\inc\windows.h
+FILE 2144 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2145 f:\sp\public\sdk\inc\tvout.h
+FILE 2146 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2147 f:\sp\public\sdk\inc\winsvc.h
+FILE 2148 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2149 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2150 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2151 f:\sp\public\sdk\inc\wingdi.h
+FILE 2152 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2153 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2154 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2155 f:\sp\public\sdk\inc\poppack.h
+FILE 2156 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2157 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2158 f:\sp\public\sdk\inc\imm.h
+FILE 2159 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2160 f:\sp\public\sdk\inc\poppack.h
+FILE 2161 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2162 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2163 f:\sp\public\sdk\inc\imm.h
+FILE 2164 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2165 f:\sp\public\sdk\inc\windef.h
+FILE 2166 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2167 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2168 f:\sp\public\sdk\inc\winver.h
+FILE 2169 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2170 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2171 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2172 f:\sp\public\sdk\inc\winnt.h
+FILE 2173 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2174 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2175 f:\sp\public\sdk\inc\winreg.h
+FILE 2176 f:\sp\vctools\crt_bld\self_x86\crt\src\fileno.c
+FILE 2177 f:\sp\public\sdk\inc\winbase.h
+FILE 2178 f:\sp\public\sdk\inc\winerror.h
+FILE 2179 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2180 f:\sp\public\sdk\inc\reason.h
+FILE 2181 f:\sp\public\sdk\inc\wincon.h
+FILE 2182 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2183 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2184 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2185 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2186 f:\sp\public\sdk\inc\mcx.h
+FILE 2187 f:\sp\public\sdk\inc\winuser.h
+FILE 2188 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2189 f:\sp\public\sdk\inc\winnls.h
+FILE 2190 f:\sp\public\sdk\inc\guiddef.h
+FILE 2191 f:\sp\public\sdk\inc\windows.h
+FILE 2192 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2193 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2194 f:\sp\public\sdk\inc\specstrings.h
+FILE 2195 f:\sp\public\sdk\inc\basetsd.h
+FILE 2196 f:\sp\public\sdk\inc\stralign.h
+FILE 2197 f:\sp\public\sdk\inc\tvout.h
+FILE 2198 f:\sp\public\sdk\inc\winsvc.h
+FILE 2199 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2200 f:\sp\public\sdk\inc\wingdi.h
+FILE 2201 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2202 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2203 f:\sp\public\sdk\inc\winreg.h
+FILE 2204 f:\sp\public\sdk\inc\guiddef.h
+FILE 2205 f:\sp\public\sdk\inc\windows.h
+FILE 2206 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2207 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2208 f:\sp\public\sdk\inc\specstrings.h
+FILE 2209 f:\sp\public\sdk\inc\basetsd.h
+FILE 2210 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2211 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2212 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2213 f:\sp\public\sdk\inc\reason.h
+FILE 2214 f:\sp\public\sdk\inc\wincon.h
+FILE 2215 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2216 f:\sp\public\sdk\inc\poppack.h
+FILE 2217 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2218 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2219 f:\sp\public\sdk\inc\mcx.h
+FILE 2220 f:\sp\public\sdk\inc\winuser.h
+FILE 2221 f:\sp\public\sdk\inc\winnls.h
+FILE 2222 f:\sp\public\sdk\inc\stralign.h
+FILE 2223 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2224 f:\sp\public\sdk\inc\windef.h
+FILE 2225 f:\sp\public\sdk\inc\tvout.h
+FILE 2226 f:\sp\public\sdk\inc\winsvc.h
+FILE 2227 f:\sp\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 2228 f:\sp\public\sdk\inc\wingdi.h
+FILE 2229 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2230 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2231 f:\sp\public\sdk\inc\winnt.h
+FILE 2232 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2233 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2234 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2235 f:\sp\public\sdk\inc\imm.h
+FILE 2236 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2237 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2238 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2239 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2240 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2241 f:\sp\public\sdk\inc\winbase.h
+FILE 2242 f:\sp\public\sdk\inc\winerror.h
+FILE 2243 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2244 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2245 f:\sp\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 2246 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2247 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2248 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2249 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2250 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2251 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2252 f:\sp\public\sdk\inc\winver.h
+FILE 2253 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2254 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2255 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2256 f:\sp\public\sdk\inc\poppack.h
+FILE 2257 f:\sp\public\sdk\inc\winnt.h
+FILE 2258 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2259 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2260 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2261 f:\sp\public\sdk\inc\imm.h
+FILE 2262 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2263 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2264 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2265 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2266 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2267 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2268 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2269 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2270 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2271 f:\sp\public\sdk\inc\winver.h
+FILE 2272 f:\sp\public\sdk\inc\guiddef.h
+FILE 2273 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2274 f:\sp\public\sdk\inc\specstrings.h
+FILE 2275 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2276 f:\sp\public\sdk\inc\basetsd.h
+FILE 2277 f:\sp\public\sdk\inc\windows.h
+FILE 2278 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2279 f:\sp\public\sdk\inc\winreg.h
+FILE 2280 f:\sp\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 2281 f:\sp\public\sdk\inc\winbase.h
+FILE 2282 f:\sp\public\sdk\inc\winerror.h
+FILE 2283 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2284 f:\sp\public\sdk\inc\reason.h
+FILE 2285 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2286 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2287 f:\sp\public\sdk\inc\wincon.h
+FILE 2288 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2289 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2290 f:\sp\public\sdk\inc\mcx.h
+FILE 2291 f:\sp\public\sdk\inc\winuser.h
+FILE 2292 f:\sp\public\sdk\inc\winnls.h
+FILE 2293 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2294 f:\sp\public\sdk\inc\windef.h
+FILE 2295 f:\sp\public\sdk\inc\stralign.h
+FILE 2296 f:\sp\public\sdk\inc\tvout.h
+FILE 2297 f:\sp\public\sdk\inc\winsvc.h
+FILE 2298 f:\sp\public\sdk\inc\wingdi.h
+FILE 2299 f:\sp\public\sdk\inc\poppack.h
+FILE 2300 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2301 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2302 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2303 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2304 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2305 f:\sp\public\sdk\inc\imm.h
+FILE 2306 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2307 f:\sp\public\sdk\inc\windef.h
+FILE 2308 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2309 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2310 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2311 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2312 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2313 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2314 f:\sp\public\sdk\inc\winver.h
+FILE 2315 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2316 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2317 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2318 f:\sp\public\sdk\inc\winnt.h
+FILE 2319 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2320 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2321 f:\sp\public\sdk\inc\winreg.h
+FILE 2322 f:\sp\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 2323 f:\sp\public\sdk\inc\winbase.h
+FILE 2324 f:\sp\public\sdk\inc\winerror.h
+FILE 2325 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2326 f:\sp\public\sdk\inc\reason.h
+FILE 2327 f:\sp\public\sdk\inc\wincon.h
+FILE 2328 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2329 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2330 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2331 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2332 f:\sp\public\sdk\inc\mcx.h
+FILE 2333 f:\sp\public\sdk\inc\winuser.h
+FILE 2334 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2335 f:\sp\public\sdk\inc\winnls.h
+FILE 2336 f:\sp\public\sdk\inc\guiddef.h
+FILE 2337 f:\sp\public\sdk\inc\windows.h
+FILE 2338 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2339 f:\sp\public\sdk\inc\specstrings.h
+FILE 2340 f:\sp\public\sdk\inc\basetsd.h
+FILE 2341 f:\sp\public\sdk\inc\stralign.h
+FILE 2342 f:\sp\public\sdk\inc\tvout.h
+FILE 2343 f:\sp\public\sdk\inc\winsvc.h
+FILE 2344 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2345 f:\sp\public\sdk\inc\wingdi.h
+FILE 2346 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2347 f:\sp\public\sdk\inc\reason.h
+FILE 2348 f:\sp\public\sdk\inc\wincon.h
+FILE 2349 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2350 f:\sp\public\sdk\inc\poppack.h
+FILE 2351 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2352 f:\sp\public\sdk\inc\mcx.h
+FILE 2353 f:\sp\public\sdk\inc\winuser.h
+FILE 2354 f:\sp\public\sdk\inc\winnls.h
+FILE 2355 f:\sp\public\sdk\inc\stralign.h
+FILE 2356 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2357 f:\sp\public\sdk\inc\windef.h
+FILE 2358 f:\sp\public\sdk\inc\tvout.h
+FILE 2359 f:\sp\public\sdk\inc\winsvc.h
+FILE 2360 f:\sp\public\sdk\inc\wingdi.h
+FILE 2361 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2362 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2363 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2364 f:\sp\public\sdk\inc\winnt.h
+FILE 2365 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2366 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2368 f:\sp\public\sdk\inc\imm.h
+FILE 2369 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 2370 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2371 f:\sp\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 2372 f:\sp\public\sdk\inc\winbase.h
+FILE 2373 f:\sp\public\sdk\inc\winerror.h
+FILE 2374 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2375 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2376 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2377 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2378 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2379 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2380 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2381 f:\sp\public\sdk\inc\winver.h
+FILE 2382 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2383 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2384 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2385 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2386 f:\sp\public\sdk\inc\winreg.h
+FILE 2387 f:\sp\public\sdk\inc\guiddef.h
+FILE 2388 f:\sp\public\sdk\inc\windows.h
+FILE 2389 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2390 f:\sp\public\sdk\inc\specstrings.h
+FILE 2391 f:\sp\public\sdk\inc\basetsd.h
+FILE 2392 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2393 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2394 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2395 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2396 f:\sp\public\sdk\inc\poppack.h
+FILE 2397 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2398 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2399 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2400 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2401 f:\sp\public\sdk\inc\imm.h
+FILE 2402 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2403 f:\sp\public\sdk\inc\windef.h
+FILE 2404 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2405 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2406 f:\sp\public\sdk\inc\winver.h
+FILE 2407 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2408 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2409 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2410 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2411 f:\sp\public\sdk\inc\winnt.h
+FILE 2412 f:\sp\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 2413 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2414 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2415 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2416 f:\sp\public\sdk\inc\winreg.h
+FILE 2417 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2418 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 2419 f:\sp\public\sdk\inc\winbase.h
+FILE 2420 f:\sp\public\sdk\inc\winerror.h
+FILE 2421 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2422 f:\sp\public\sdk\inc\reason.h
+FILE 2423 f:\sp\public\sdk\inc\wincon.h
+FILE 2424 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2425 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2426 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2427 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2428 f:\sp\public\sdk\inc\mcx.h
+FILE 2429 f:\sp\public\sdk\inc\winuser.h
+FILE 2430 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2431 f:\sp\public\sdk\inc\winnls.h
+FILE 2432 f:\sp\public\sdk\inc\guiddef.h
+FILE 2433 f:\sp\public\sdk\inc\windows.h
+FILE 2434 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2435 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2436 f:\sp\public\sdk\inc\specstrings.h
+FILE 2437 f:\sp\public\sdk\inc\basetsd.h
+FILE 2438 f:\sp\public\sdk\inc\stralign.h
+FILE 2439 f:\sp\public\sdk\inc\tvout.h
+FILE 2440 f:\sp\public\sdk\inc\winsvc.h
+FILE 2441 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2442 f:\sp\public\sdk\inc\wingdi.h
+FILE 2443 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2444 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2445 f:\sp\public\sdk\inc\winver.h
+FILE 2446 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2447 f:\sp\public\sdk\inc\winnt.h
+FILE 2448 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2449 f:\sp\public\sdk\inc\winreg.h
+FILE 2450 f:\sp\public\sdk\inc\winbase.h
+FILE 2451 f:\sp\public\sdk\inc\winerror.h
+FILE 2452 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2453 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2454 f:\sp\public\sdk\inc\reason.h
+FILE 2455 f:\sp\public\sdk\inc\wincon.h
+FILE 2456 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2457 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 2458 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2459 f:\sp\public\sdk\inc\mcx.h
+FILE 2460 f:\sp\public\sdk\inc\winuser.h
+FILE 2461 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2462 f:\sp\public\sdk\inc\winnls.h
+FILE 2463 f:\sp\public\sdk\inc\guiddef.h
+FILE 2464 f:\sp\public\sdk\inc\windows.h
+FILE 2465 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2466 f:\sp\public\sdk\inc\specstrings.h
+FILE 2467 f:\sp\public\sdk\inc\basetsd.h
+FILE 2468 f:\sp\public\sdk\inc\stralign.h
+FILE 2469 f:\sp\public\sdk\inc\tvout.h
+FILE 2470 f:\sp\public\sdk\inc\winsvc.h
+FILE 2471 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2472 f:\sp\public\sdk\inc\wingdi.h
+FILE 2473 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2474 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2475 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2476 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2477 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2478 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2479 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2480 f:\sp\public\sdk\inc\poppack.h
+FILE 2481 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2482 f:\sp\public\sdk\inc\imm.h
+FILE 2483 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2484 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2485 f:\sp\public\sdk\inc\windef.h
+FILE 2486 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2487 f:\sp\public\sdk\inc\poppack.h
+FILE 2488 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2489 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2490 f:\sp\public\sdk\inc\imm.h
+FILE 2491 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2492 f:\sp\public\sdk\inc\windef.h
+FILE 2493 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2494 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2495 f:\sp\public\sdk\inc\winver.h
+FILE 2496 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2497 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2498 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2499 f:\sp\public\sdk\inc\winnt.h
+FILE 2500 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2501 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2502 f:\sp\public\sdk\inc\winreg.h
+FILE 2503 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 2504 f:\sp\public\sdk\inc\winbase.h
+FILE 2505 f:\sp\public\sdk\inc\winerror.h
+FILE 2506 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2507 f:\sp\public\sdk\inc\reason.h
+FILE 2508 f:\sp\public\sdk\inc\wincon.h
+FILE 2509 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2510 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2511 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2512 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2513 f:\sp\public\sdk\inc\mcx.h
+FILE 2514 f:\sp\public\sdk\inc\winuser.h
+FILE 2515 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2516 f:\sp\public\sdk\inc\winnls.h
+FILE 2517 f:\sp\public\sdk\inc\guiddef.h
+FILE 2518 f:\sp\public\sdk\inc\windows.h
+FILE 2519 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2520 f:\sp\public\sdk\inc\specstrings.h
+FILE 2521 f:\sp\public\sdk\inc\basetsd.h
+FILE 2522 f:\sp\public\sdk\inc\stralign.h
+FILE 2523 f:\sp\public\sdk\inc\tvout.h
+FILE 2524 f:\sp\public\sdk\inc\winsvc.h
+FILE 2525 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2526 f:\sp\public\sdk\inc\wingdi.h
+FILE 2527 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2528 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 2529 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2530 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2531 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2532 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2533 f:\sp\public\sdk\inc\reason.h
+FILE 2534 f:\sp\public\sdk\inc\wincon.h
+FILE 2535 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2536 f:\sp\public\sdk\inc\poppack.h
+FILE 2537 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2538 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2539 f:\sp\public\sdk\inc\mcx.h
+FILE 2540 f:\sp\public\sdk\inc\winuser.h
+FILE 2541 f:\sp\public\sdk\inc\winnls.h
+FILE 2542 f:\sp\public\sdk\inc\stralign.h
+FILE 2543 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2544 f:\sp\public\sdk\inc\windef.h
+FILE 2545 f:\sp\public\sdk\inc\tvout.h
+FILE 2546 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2547 f:\sp\public\sdk\inc\winsvc.h
+FILE 2548 f:\sp\public\sdk\inc\wingdi.h
+FILE 2549 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 2550 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 2551 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2552 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2553 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 2554 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2555 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2556 f:\sp\public\sdk\inc\winnt.h
+FILE 2557 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2558 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2559 f:\sp\public\sdk\inc\imm.h
+FILE 2560 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 2561 f:\sp\public\sdk\inc\winbase.h
+FILE 2562 f:\sp\public\sdk\inc\winerror.h
+FILE 2563 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2564 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 2565 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2566 f:\sp\public\sdk\inc\winver.h
+FILE 2567 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2568 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2569 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2570 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2571 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2572 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2573 f:\sp\public\sdk\inc\winreg.h
+FILE 2574 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2575 f:\sp\public\sdk\inc\guiddef.h
+FILE 2576 f:\sp\public\sdk\inc\windows.h
+FILE 2577 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2578 f:\sp\public\sdk\inc\specstrings.h
+FILE 2579 f:\sp\public\sdk\inc\basetsd.h
+FILE 2580 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2581 f:\sp\public\sdk\inc\tvout.h
+FILE 2582 f:\sp\public\sdk\inc\winsvc.h
+FILE 2583 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2584 f:\sp\public\sdk\inc\wingdi.h
+FILE 2585 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2586 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2587 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2588 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 2589 f:\sp\public\sdk\inc\poppack.h
+FILE 2590 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 2591 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 2592 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 2593 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2594 f:\sp\public\sdk\inc\imm.h
+FILE 2595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2596 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2597 f:\sp\public\sdk\inc\windef.h
+FILE 2598 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2599 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2600 f:\sp\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 2601 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2602 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2603 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2604 f:\sp\public\sdk\inc\winver.h
+FILE 2605 f:\sp\public\sdk\inc\winnt.h
+FILE 2606 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2607 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2608 f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 2609 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2610 f:\sp\public\sdk\inc\winreg.h
+FILE 2611 f:\sp\public\sdk\inc\winbase.h
+FILE 2612 f:\sp\public\sdk\inc\winerror.h
+FILE 2613 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2614 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2615 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2616 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2617 f:\sp\public\sdk\inc\reason.h
+FILE 2618 f:\sp\public\sdk\inc\wincon.h
+FILE 2619 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2620 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2621 f:\sp\public\sdk\inc\mcx.h
+FILE 2622 f:\sp\public\sdk\inc\winuser.h
+FILE 2623 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2624 f:\sp\public\sdk\inc\winnls.h
+FILE 2625 f:\sp\public\sdk\inc\guiddef.h
+FILE 2626 f:\sp\public\sdk\inc\windows.h
+FILE 2627 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2628 f:\sp\public\sdk\inc\specstrings.h
+FILE 2629 f:\sp\public\sdk\inc\basetsd.h
+FILE 2630 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 2631 f:\sp\public\sdk\inc\stralign.h
+FILE 2632 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\alloca16.asm
+FILE 2633 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2634 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\chkstk.asm
+FILE 2635 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2636 f:\sp\public\sdk\inc\wincon.h
+FILE 2637 f:\sp\public\sdk\inc\imm.h
+FILE 2638 f:\sp\public\sdk\inc\winbase.h
+FILE 2639 f:\sp\public\sdk\inc\wingdi.h
+FILE 2640 f:\sp\public\sdk\inc\winver.h
+FILE 2641 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 2642 f:\sp\public\sdk\inc\windows.h
+FILE 2643 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 2644 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2645 f:\sp\public\sdk\inc\reason.h
+FILE 2646 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 2647 f:\sp\public\sdk\inc\specstrings.h
+FILE 2648 f:\sp\public\sdk\inc\basetsd.h
+FILE 2649 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2650 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2651 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 2652 f:\sp\public\sdk\inc\stralign.h
+FILE 2653 f:\sp\public\sdk\inc\poppack.h
+FILE 2654 f:\sp\public\sdk\inc\winsvc.h
+FILE 2655 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 2656 f:\sp\public\sdk\inc\windef.h
+FILE 2657 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 2658 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 2659 f:\sp\public\sdk\inc\winuser.h
+FILE 2660 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 2661 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 2662 f:\sp\public\sdk\inc\mcx.h
+FILE 2663 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2664 f:\sp\public\sdk\inc\guiddef.h
+FILE 2665 f:\sp\public\sdk\inc\winnt.h
+FILE 2666 f:\sp\public\sdk\inc\winnls.h
+FILE 2667 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 2668 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2669 f:\sp\public\sdk\inc\winerror.h
+FILE 2670 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 2671 f:\sp\public\sdk\inc\winreg.h
+FILE 2672 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 2673 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2674 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 2675 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 2676 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FILE 2677 f:\sp\public\sdk\inc\tvout.h
+FILE 2678 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 2679 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 2680 f:\sp\public\sdk\inc\poppack.h
+FILE 2681 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2682 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2683 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2684 f:\sp\public\sdk\inc\imm.h
+FILE 2685 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2686 f:\sp\public\sdk\inc\windef.h
+FILE 2687 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2688 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2689 f:\sp\public\sdk\inc\winver.h
+FILE 2690 f:\sp\public\sdk\inc\windows.h
+FILE 2691 f:\sp\public\sdk\inc\winnt.h
+FILE 2692 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2693 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2694 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2695 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2696 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2697 f:\sp\public\sdk\inc\winreg.h
+FILE 2698 f:\sp\public\sdk\inc\winbase.h
+FILE 2699 f:\sp\vctools\crt_bld\self_x86\crt\src\wtombenv.c
+FILE 2700 f:\sp\public\sdk\inc\winerror.h
+FILE 2701 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2702 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2703 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2704 f:\sp\public\sdk\inc\reason.h
+FILE 2705 f:\sp\public\sdk\inc\wincon.h
+FILE 2706 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2707 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2708 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2709 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2710 f:\sp\public\sdk\inc\mcx.h
+FILE 2711 f:\sp\public\sdk\inc\winuser.h
+FILE 2712 f:\sp\public\sdk\inc\winnls.h
+FILE 2713 f:\sp\public\sdk\inc\guiddef.h
+FILE 2714 f:\sp\public\sdk\inc\specstrings.h
+FILE 2715 f:\sp\public\sdk\inc\basetsd.h
+FILE 2716 f:\sp\public\sdk\inc\stralign.h
+FILE 2717 f:\sp\public\sdk\inc\tvout.h
+FILE 2718 f:\sp\public\sdk\inc\winsvc.h
+FILE 2719 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2720 f:\sp\public\sdk\inc\wingdi.h
+FILE 2721 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2722 f:\sp\public\sdk\inc\winnt.h
+FILE 2723 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2724 f:\sp\public\sdk\inc\winreg.h
+FILE 2725 f:\sp\public\sdk\inc\winbase.h
+FILE 2726 f:\sp\public\sdk\inc\winerror.h
+FILE 2727 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2728 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2729 f:\sp\public\sdk\inc\reason.h
+FILE 2730 f:\sp\public\sdk\inc\wincon.h
+FILE 2731 f:\sp\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2732 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2733 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2734 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2735 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2736 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2737 f:\sp\public\sdk\inc\mcx.h
+FILE 2738 f:\sp\public\sdk\inc\winuser.h
+FILE 2739 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2740 f:\sp\public\sdk\inc\winnls.h
+FILE 2741 f:\sp\public\sdk\inc\guiddef.h
+FILE 2742 f:\sp\public\sdk\inc\windows.h
+FILE 2743 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2744 f:\sp\public\sdk\inc\specstrings.h
+FILE 2745 f:\sp\public\sdk\inc\basetsd.h
+FILE 2746 f:\sp\public\sdk\inc\stralign.h
+FILE 2747 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2748 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 2749 f:\sp\public\sdk\inc\tvout.h
+FILE 2750 f:\sp\public\sdk\inc\winsvc.h
+FILE 2751 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2752 f:\sp\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2753 f:\sp\public\sdk\inc\wingdi.h
+FILE 2754 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2755 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2756 f:\sp\public\sdk\inc\poppack.h
+FILE 2757 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2758 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2759 f:\sp\public\sdk\inc\imm.h
+FILE 2760 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2761 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2762 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2763 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2764 f:\sp\public\sdk\inc\windef.h
+FILE 2765 f:\sp\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2766 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2767 f:\sp\public\sdk\inc\winver.h
+FILE 2768 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2769 f:\sp\public\sdk\inc\imm.h
+FILE 2770 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2771 f:\sp\public\sdk\inc\windef.h
+FILE 2772 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2773 f:\sp\public\sdk\inc\winver.h
+FILE 2774 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2775 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2776 f:\sp\public\sdk\inc\winnt.h
+FILE 2777 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2778 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2779 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2780 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2781 f:\sp\public\sdk\inc\winreg.h
+FILE 2782 f:\sp\public\sdk\inc\winbase.h
+FILE 2783 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2784 f:\sp\public\sdk\inc\winerror.h
+FILE 2785 f:\sp\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2786 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2787 f:\sp\public\sdk\inc\reason.h
+FILE 2788 f:\sp\public\sdk\inc\wincon.h
+FILE 2789 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2790 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2791 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2792 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2793 f:\sp\public\sdk\inc\mcx.h
+FILE 2794 f:\sp\public\sdk\inc\winuser.h
+FILE 2795 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2796 f:\sp\public\sdk\inc\winnls.h
+FILE 2797 f:\sp\public\sdk\inc\guiddef.h
+FILE 2798 f:\sp\public\sdk\inc\windows.h
+FILE 2799 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2800 f:\sp\public\sdk\inc\specstrings.h
+FILE 2801 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2802 f:\sp\public\sdk\inc\basetsd.h
+FILE 2803 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2804 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2805 f:\sp\public\sdk\inc\stralign.h
+FILE 2806 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 2807 f:\sp\public\sdk\inc\tvout.h
+FILE 2808 f:\sp\public\sdk\inc\winsvc.h
+FILE 2809 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2810 f:\sp\public\sdk\inc\wingdi.h
+FILE 2811 f:\sp\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2812 f:\sp\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2813 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2814 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 2815 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2816 f:\sp\public\sdk\inc\poppack.h
+FILE 2817 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2818 f:\sp\public\sdk\inc\wincon.h
+FILE 2819 f:\sp\public\sdk\inc\imm.h
+FILE 2820 f:\sp\public\sdk\inc\winbase.h
+FILE 2821 f:\sp\public\sdk\inc\wingdi.h
+FILE 2822 f:\sp\public\sdk\inc\winver.h
+FILE 2823 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2824 f:\sp\public\sdk\inc\windows.h
+FILE 2825 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2826 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2827 f:\sp\public\sdk\inc\reason.h
+FILE 2828 f:\sp\vctools\crt_bld\self_x86\crt\src\w_str.c
+FILE 2829 f:\sp\public\sdk\inc\specstrings.h
+FILE 2830 f:\sp\public\sdk\inc\basetsd.h
+FILE 2831 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2832 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2833 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2834 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2835 f:\sp\public\sdk\inc\stralign.h
+FILE 2836 f:\sp\public\sdk\inc\poppack.h
+FILE 2837 f:\sp\public\sdk\inc\winsvc.h
+FILE 2838 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2839 f:\sp\public\sdk\inc\windef.h
+FILE 2840 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2841 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2842 f:\sp\public\sdk\inc\winuser.h
+FILE 2843 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2844 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2845 f:\sp\public\sdk\inc\mcx.h
+FILE 2846 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2847 f:\sp\public\sdk\inc\guiddef.h
+FILE 2848 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2849 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2850 f:\sp\public\sdk\inc\winnt.h
+FILE 2851 f:\sp\public\sdk\inc\winnls.h
+FILE 2852 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2853 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2854 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2855 f:\sp\public\sdk\inc\winerror.h
+FILE 2856 f:\sp\public\sdk\inc\winreg.h
+FILE 2857 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2858 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2859 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2860 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2861 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2862 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2863 f:\sp\public\sdk\inc\tvout.h
+FILE 2864 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2865 f:\sp\public\sdk\inc\wincon.h
+FILE 2866 f:\sp\public\sdk\inc\imm.h
+FILE 2867 f:\sp\public\sdk\inc\winbase.h
+FILE 2868 f:\sp\public\sdk\inc\wingdi.h
+FILE 2869 f:\sp\public\sdk\inc\winver.h
+FILE 2870 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2871 f:\sp\public\sdk\inc\windows.h
+FILE 2872 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2873 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2874 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2875 f:\sp\public\sdk\inc\reason.h
+FILE 2876 f:\sp\vctools\crt_bld\self_x86\crt\src\w_loc.c
+FILE 2877 f:\sp\public\sdk\inc\specstrings.h
+FILE 2878 f:\sp\public\sdk\inc\basetsd.h
+FILE 2879 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2880 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2881 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2882 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2883 f:\sp\public\sdk\inc\stralign.h
+FILE 2884 f:\sp\public\sdk\inc\poppack.h
+FILE 2885 f:\sp\public\sdk\inc\winsvc.h
+FILE 2886 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2887 f:\sp\public\sdk\inc\windef.h
+FILE 2888 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2889 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2890 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2891 f:\sp\public\sdk\inc\winuser.h
+FILE 2892 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2893 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2894 f:\sp\public\sdk\inc\mcx.h
+FILE 2895 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2896 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2897 f:\sp\public\sdk\inc\guiddef.h
+FILE 2898 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2899 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2900 f:\sp\public\sdk\inc\winnt.h
+FILE 2901 f:\sp\public\sdk\inc\winnls.h
+FILE 2902 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2903 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2904 f:\sp\public\sdk\inc\winerror.h
+FILE 2905 f:\sp\public\sdk\inc\winreg.h
+FILE 2906 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2907 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2908 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2909 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2910 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2911 f:\sp\public\sdk\inc\tvout.h
+FILE 2912 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2913 f:\sp\public\sdk\inc\poppack.h
+FILE 2914 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2915 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2916 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2917 f:\sp\public\sdk\inc\imm.h
+FILE 2918 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2919 f:\sp\public\sdk\inc\windef.h
+FILE 2920 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 2921 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 2922 f:\sp\public\sdk\inc\pshpack1.h
+FILE 2923 f:\sp\public\sdk\inc\winver.h
+FILE 2924 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2925 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2926 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2927 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2928 f:\sp\public\sdk\inc\winnt.h
+FILE 2929 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 2930 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 2931 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 2932 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 2933 f:\sp\public\sdk\inc\winreg.h
+FILE 2934 f:\sp\vctools\crt_bld\self_x86\crt\src\convrtcp.c
+FILE 2935 f:\sp\public\sdk\inc\winbase.h
+FILE 2936 f:\sp\public\sdk\inc\winerror.h
+FILE 2937 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2938 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2939 f:\sp\public\sdk\inc\reason.h
+FILE 2940 f:\sp\public\sdk\inc\wincon.h
+FILE 2941 f:\sp\public\sdk\inc\ddbanned.h
+FILE 2942 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 2943 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 2944 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2945 f:\sp\public\sdk\inc\mcx.h
+FILE 2946 f:\sp\public\sdk\inc\winuser.h
+FILE 2947 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2948 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 2949 f:\sp\public\sdk\inc\winnls.h
+FILE 2950 f:\sp\public\sdk\inc\guiddef.h
+FILE 2951 f:\sp\public\sdk\inc\windows.h
+FILE 2952 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2953 f:\sp\public\sdk\inc\specstrings.h
+FILE 2954 f:\sp\public\sdk\inc\basetsd.h
+FILE 2955 f:\sp\public\sdk\inc\stralign.h
+FILE 2956 f:\sp\public\sdk\inc\tvout.h
+FILE 2957 f:\sp\public\sdk\inc\winsvc.h
+FILE 2958 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 2959 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2960 f:\sp\public\sdk\inc\wingdi.h
+FILE 2961 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2962 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2963 f:\sp\public\sdk\inc\winerror.h
+FILE 2964 f:\sp\public\sdk\inc\pshpack8.h
+FILE 2965 f:\sp\public\sdk\inc\reason.h
+FILE 2966 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 2967 f:\sp\public\sdk\inc\wincon.h
+FILE 2968 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 2969 f:\sp\public\sdk\inc\pshpack2.h
+FILE 2970 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 2971 f:\sp\public\sdk\inc\mcx.h
+FILE 2972 f:\sp\public\sdk\inc\winuser.h
+FILE 2973 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 2974 f:\sp\public\sdk\inc\winnls.h
+FILE 2975 f:\sp\public\sdk\inc\guiddef.h
+FILE 2976 f:\sp\public\sdk\inc\windows.h
+FILE 2977 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 2978 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 2979 f:\sp\public\sdk\inc\specstrings.h
+FILE 2980 f:\sp\public\sdk\inc\basetsd.h
+FILE 2981 f:\sp\public\sdk\inc\stralign.h
+FILE 2982 f:\sp\public\sdk\inc\tvout.h
+FILE 2983 f:\sp\public\sdk\inc\winsvc.h
+FILE 2984 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 2985 f:\sp\public\sdk\inc\wingdi.h
+FILE 2986 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 2987 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 2988 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 2989 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 2990 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 2991 f:\sp\public\sdk\inc\pshpack4.h
+FILE 2992 f:\sp\public\sdk\inc\poppack.h
+FILE 2993 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 2994 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 2995 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2996 f:\sp\public\sdk\inc\winnetwk.h
+FILE 2997 f:\sp\public\sdk\inc\imm.h
+FILE 2998 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 2999 f:\sp\public\sdk\inc\windef.h
+FILE 3000 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3001 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3002 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3003 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3004 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3005 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3006 f:\sp\public\sdk\inc\winver.h
+FILE 3007 f:\sp\public\sdk\inc\winnt.h
+FILE 3008 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3009 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3010 f:\sp\public\sdk\inc\winreg.h
+FILE 3011 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3012 f:\sp\public\sdk\inc\winbase.h
+FILE 3013 f:\sp\public\sdk\inc\poppack.h
+FILE 3014 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 3015 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 3016 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3017 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3018 f:\sp\public\sdk\inc\imm.h
+FILE 3019 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3020 f:\sp\public\sdk\inc\windef.h
+FILE 3021 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3022 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3023 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3024 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3025 f:\sp\public\sdk\inc\winver.h
+FILE 3026 f:\sp\public\sdk\inc\windows.h
+FILE 3027 f:\sp\public\sdk\inc\winnt.h
+FILE 3028 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3029 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3030 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3031 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3032 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3033 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3034 f:\sp\public\sdk\inc\winreg.h
+FILE 3035 f:\sp\public\sdk\inc\winbase.h
+FILE 3036 f:\sp\vctools\crt_bld\self_x86\crt\src\setenv.c
+FILE 3037 f:\sp\public\sdk\inc\winerror.h
+FILE 3038 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3039 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3040 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3041 f:\sp\public\sdk\inc\reason.h
+FILE 3042 f:\sp\public\sdk\inc\wincon.h
+FILE 3043 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3044 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3045 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3046 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3047 f:\sp\public\sdk\inc\mcx.h
+FILE 3048 f:\sp\public\sdk\inc\winuser.h
+FILE 3049 f:\sp\public\sdk\inc\winnls.h
+FILE 3050 f:\sp\public\sdk\inc\guiddef.h
+FILE 3051 f:\sp\public\sdk\inc\specstrings.h
+FILE 3052 f:\sp\public\sdk\inc\basetsd.h
+FILE 3053 f:\sp\public\sdk\inc\stralign.h
+FILE 3054 f:\sp\public\sdk\inc\tvout.h
+FILE 3055 f:\sp\public\sdk\inc\winsvc.h
+FILE 3056 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3057 f:\sp\public\sdk\inc\wingdi.h
+FILE 3058 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3059 f:\sp\public\sdk\inc\poppack.h
+FILE 3060 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3061 f:\sp\public\sdk\inc\imm.h
+FILE 3062 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3063 f:\sp\public\sdk\inc\windef.h
+FILE 3064 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3065 f:\sp\public\sdk\inc\winver.h
+FILE 3066 f:\sp\public\sdk\inc\windows.h
+FILE 3067 f:\sp\public\sdk\inc\winnt.h
+FILE 3068 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3069 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3070 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3071 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3072 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3073 f:\sp\public\sdk\inc\winreg.h
+FILE 3074 f:\sp\public\sdk\inc\winbase.h
+FILE 3075 f:\sp\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 3076 f:\sp\public\sdk\inc\winerror.h
+FILE 3077 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3078 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3079 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3080 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3081 f:\sp\public\sdk\inc\reason.h
+FILE 3082 f:\sp\public\sdk\inc\wincon.h
+FILE 3083 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3084 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3085 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3086 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3087 f:\sp\public\sdk\inc\mcx.h
+FILE 3088 f:\sp\public\sdk\inc\winuser.h
+FILE 3089 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 3090 f:\sp\public\sdk\inc\winnls.h
+FILE 3091 f:\sp\public\sdk\inc\guiddef.h
+FILE 3092 f:\sp\public\sdk\inc\specstrings.h
+FILE 3093 f:\sp\public\sdk\inc\basetsd.h
+FILE 3094 f:\sp\public\sdk\inc\stralign.h
+FILE 3095 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3096 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3097 f:\sp\public\sdk\inc\tvout.h
+FILE 3098 f:\sp\public\sdk\inc\winsvc.h
+FILE 3099 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3100 f:\sp\public\sdk\inc\wingdi.h
+FILE 3101 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3102 f:\sp\public\sdk\inc\poppack.h
+FILE 3103 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3104 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3105 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3106 f:\sp\public\sdk\inc\imm.h
+FILE 3107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3108 f:\sp\public\sdk\inc\windef.h
+FILE 3109 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3110 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3111 f:\sp\public\sdk\inc\winver.h
+FILE 3112 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3113 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3114 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3115 f:\sp\public\sdk\inc\winnt.h
+FILE 3116 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3117 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3118 f:\sp\public\sdk\inc\winreg.h
+FILE 3119 f:\sp\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 3120 f:\sp\public\sdk\inc\winbase.h
+FILE 3121 f:\sp\public\sdk\inc\winerror.h
+FILE 3122 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3123 f:\sp\public\sdk\inc\reason.h
+FILE 3124 f:\sp\public\sdk\inc\wincon.h
+FILE 3125 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3126 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3127 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3128 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3129 f:\sp\public\sdk\inc\mcx.h
+FILE 3130 f:\sp\public\sdk\inc\winuser.h
+FILE 3131 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3132 f:\sp\public\sdk\inc\winnls.h
+FILE 3133 f:\sp\public\sdk\inc\guiddef.h
+FILE 3134 f:\sp\public\sdk\inc\windows.h
+FILE 3135 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3136 f:\sp\public\sdk\inc\specstrings.h
+FILE 3137 f:\sp\public\sdk\inc\basetsd.h
+FILE 3138 f:\sp\public\sdk\inc\stralign.h
+FILE 3139 f:\sp\public\sdk\inc\tvout.h
+FILE 3140 f:\sp\public\sdk\inc\winsvc.h
+FILE 3141 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3142 f:\sp\public\sdk\inc\wingdi.h
+FILE 3143 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3144 f:\sp\public\sdk\inc\poppack.h
+FILE 3145 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3146 f:\sp\public\sdk\inc\imm.h
+FILE 3147 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3148 f:\sp\public\sdk\inc\windef.h
+FILE 3149 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3150 f:\sp\public\sdk\inc\winver.h
+FILE 3151 f:\sp\public\sdk\inc\windows.h
+FILE 3152 f:\sp\public\sdk\inc\winnt.h
+FILE 3153 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3154 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3155 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3156 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3157 f:\sp\public\sdk\inc\winreg.h
+FILE 3158 f:\sp\public\sdk\inc\winbase.h
+FILE 3159 f:\sp\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 3160 f:\sp\public\sdk\inc\winerror.h
+FILE 3161 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3162 f:\sp\public\sdk\inc\reason.h
+FILE 3163 f:\sp\public\sdk\inc\wincon.h
+FILE 3164 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3165 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3166 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3167 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3168 f:\sp\public\sdk\inc\mcx.h
+FILE 3169 f:\sp\public\sdk\inc\winuser.h
+FILE 3170 f:\sp\public\sdk\inc\winnls.h
+FILE 3171 f:\sp\public\sdk\inc\guiddef.h
+FILE 3172 f:\sp\public\sdk\inc\specstrings.h
+FILE 3173 f:\sp\public\sdk\inc\basetsd.h
+FILE 3174 f:\sp\public\sdk\inc\stralign.h
+FILE 3175 f:\sp\public\sdk\inc\tvout.h
+FILE 3176 f:\sp\public\sdk\inc\winsvc.h
+FILE 3177 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3178 f:\sp\public\sdk\inc\wingdi.h
+FILE 3179 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3180 f:\sp\public\sdk\inc\winerror.h
+FILE 3181 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3182 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3183 f:\sp\public\sdk\inc\winver.h
+FILE 3184 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3185 f:\sp\public\sdk\inc\winreg.h
+FILE 3186 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3187 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3188 f:\sp\public\sdk\inc\guiddef.h
+FILE 3189 f:\sp\public\sdk\inc\windows.h
+FILE 3190 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3191 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 3192 f:\sp\public\sdk\inc\specstrings.h
+FILE 3193 f:\sp\public\sdk\inc\basetsd.h
+FILE 3194 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3195 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3196 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3197 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3198 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3199 f:\sp\public\sdk\inc\reason.h
+FILE 3200 f:\sp\public\sdk\inc\wincon.h
+FILE 3201 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3202 f:\sp\public\sdk\inc\poppack.h
+FILE 3203 f:\sp\public\sdk\inc\mcx.h
+FILE 3204 f:\sp\public\sdk\inc\winuser.h
+FILE 3205 f:\sp\public\sdk\inc\winnls.h
+FILE 3206 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 3207 f:\sp\public\sdk\inc\stralign.h
+FILE 3208 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3209 f:\sp\public\sdk\inc\windef.h
+FILE 3210 f:\sp\public\sdk\inc\tvout.h
+FILE 3211 f:\sp\public\sdk\inc\winsvc.h
+FILE 3212 f:\sp\public\sdk\inc\wingdi.h
+FILE 3213 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3214 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3215 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3216 f:\sp\public\sdk\inc\winnt.h
+FILE 3217 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3218 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3219 f:\sp\public\sdk\inc\imm.h
+FILE 3220 f:\sp\public\sdk\inc\winbase.h
+FILE 3221 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3222 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3223 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3224 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 3225 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3226 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3227 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3228 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3229 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 3230 f:\sp\public\sdk\inc\reason.h
+FILE 3231 f:\sp\public\sdk\inc\wincon.h
+FILE 3232 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3233 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3234 f:\sp\public\sdk\inc\mcx.h
+FILE 3235 f:\sp\public\sdk\inc\winuser.h
+FILE 3236 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3237 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3238 f:\sp\public\sdk\inc\winnls.h
+FILE 3239 f:\sp\public\sdk\inc\guiddef.h
+FILE 3240 f:\sp\public\sdk\inc\windows.h
+FILE 3241 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3242 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3243 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3244 f:\sp\public\sdk\inc\specstrings.h
+FILE 3245 f:\sp\public\sdk\inc\basetsd.h
+FILE 3246 f:\sp\public\sdk\inc\stralign.h
+FILE 3247 f:\sp\public\sdk\inc\tvout.h
+FILE 3248 f:\sp\public\sdk\inc\winsvc.h
+FILE 3249 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3250 f:\sp\public\sdk\inc\wingdi.h
+FILE 3251 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3252 f:\sp\public\sdk\inc\poppack.h
+FILE 3253 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3254 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3255 f:\sp\public\sdk\inc\imm.h
+FILE 3256 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3257 f:\sp\public\sdk\inc\windef.h
+FILE 3258 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3259 f:\sp\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 3260 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3261 f:\sp\public\sdk\inc\winver.h
+FILE 3262 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3263 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3264 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3265 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3266 f:\sp\public\sdk\inc\winnt.h
+FILE 3267 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3268 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3269 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3270 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3271 f:\sp\public\sdk\inc\winreg.h
+FILE 3272 f:\sp\public\sdk\inc\winbase.h
+FILE 3273 f:\sp\public\sdk\inc\winerror.h
+FILE 3274 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3275 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3276 f:\sp\public\sdk\inc\winbase.h
+FILE 3277 f:\sp\public\sdk\inc\winerror.h
+FILE 3278 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3279 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3280 f:\sp\public\sdk\inc\winver.h
+FILE 3281 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3282 f:\sp\public\sdk\inc\winreg.h
+FILE 3283 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3284 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3285 f:\sp\public\sdk\inc\guiddef.h
+FILE 3286 f:\sp\public\sdk\inc\windows.h
+FILE 3287 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3288 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3289 f:\sp\public\sdk\inc\specstrings.h
+FILE 3290 f:\sp\public\sdk\inc\basetsd.h
+FILE 3291 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3292 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3293 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3294 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3295 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3296 f:\sp\public\sdk\inc\reason.h
+FILE 3297 f:\sp\public\sdk\inc\wincon.h
+FILE 3298 f:\sp\public\sdk\inc\poppack.h
+FILE 3299 f:\sp\public\sdk\inc\mcx.h
+FILE 3300 f:\sp\public\sdk\inc\winuser.h
+FILE 3301 f:\sp\public\sdk\inc\winnls.h
+FILE 3302 f:\sp\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 3303 f:\sp\public\sdk\inc\stralign.h
+FILE 3304 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3305 f:\sp\public\sdk\inc\windef.h
+FILE 3306 f:\sp\public\sdk\inc\tvout.h
+FILE 3307 f:\sp\public\sdk\inc\winsvc.h
+FILE 3308 f:\sp\public\sdk\inc\wingdi.h
+FILE 3309 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3310 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3311 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3312 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3313 f:\sp\public\sdk\inc\winnt.h
+FILE 3314 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3315 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3316 f:\sp\public\sdk\inc\imm.h
+FILE 3317 f:\sp\public\sdk\inc\guiddef.h
+FILE 3318 f:\sp\public\sdk\inc\winnt.h
+FILE 3319 f:\sp\public\sdk\inc\winnls.h
+FILE 3320 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3321 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3322 f:\sp\public\sdk\inc\winerror.h
+FILE 3323 f:\sp\public\sdk\inc\winreg.h
+FILE 3324 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3325 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3326 f:\sp\public\sdk\inc\tvout.h
+FILE 3327 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3328 f:\sp\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3329 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3330 f:\sp\public\sdk\inc\wincon.h
+FILE 3331 f:\sp\public\sdk\inc\imm.h
+FILE 3332 f:\sp\public\sdk\inc\winbase.h
+FILE 3333 f:\sp\public\sdk\inc\wingdi.h
+FILE 3334 f:\sp\public\sdk\inc\winver.h
+FILE 3335 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3336 f:\sp\public\sdk\inc\windows.h
+FILE 3337 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3338 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3339 f:\sp\public\sdk\inc\reason.h
+FILE 3340 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3341 f:\sp\public\sdk\inc\specstrings.h
+FILE 3342 f:\sp\public\sdk\inc\basetsd.h
+FILE 3343 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3344 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3346 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3347 f:\sp\public\sdk\inc\stralign.h
+FILE 3348 f:\sp\public\sdk\inc\poppack.h
+FILE 3349 f:\sp\public\sdk\inc\winsvc.h
+FILE 3350 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3351 f:\sp\public\sdk\inc\windef.h
+FILE 3352 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3353 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3354 f:\sp\public\sdk\inc\winuser.h
+FILE 3355 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3356 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3357 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3358 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3359 f:\sp\public\sdk\inc\mcx.h
+FILE 3360 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3361 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3362 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3363 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3364 f:\sp\public\sdk\inc\poppack.h
+FILE 3365 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3366 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3368 f:\sp\public\sdk\inc\imm.h
+FILE 3369 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3370 f:\sp\public\sdk\inc\windef.h
+FILE 3371 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3372 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3373 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3374 f:\sp\public\sdk\inc\winver.h
+FILE 3375 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3376 f:\sp\public\sdk\inc\winnt.h
+FILE 3377 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3378 f:\sp\public\sdk\inc\winreg.h
+FILE 3379 f:\sp\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 3380 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3381 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3382 f:\sp\public\sdk\inc\winbase.h
+FILE 3383 f:\sp\public\sdk\inc\winerror.h
+FILE 3384 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3385 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3386 f:\sp\public\sdk\inc\reason.h
+FILE 3387 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3388 f:\sp\public\sdk\inc\wincon.h
+FILE 3389 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3390 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3391 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3392 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3393 f:\sp\public\sdk\inc\mcx.h
+FILE 3394 f:\sp\public\sdk\inc\winuser.h
+FILE 3395 f:\sp\public\sdk\inc\winnls.h
+FILE 3396 f:\sp\public\sdk\inc\guiddef.h
+FILE 3397 f:\sp\public\sdk\inc\stralign.h
+FILE 3398 f:\sp\public\sdk\inc\specstrings.h
+FILE 3399 f:\sp\public\sdk\inc\basetsd.h
+FILE 3400 f:\sp\public\sdk\inc\windows.h
+FILE 3401 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3402 f:\sp\public\sdk\inc\tvout.h
+FILE 3403 f:\sp\public\sdk\inc\winsvc.h
+FILE 3404 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3405 f:\sp\public\sdk\inc\wingdi.h
+FILE 3406 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3407 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3408 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3409 f:\sp\public\sdk\inc\poppack.h
+FILE 3410 f:\sp\public\sdk\inc\winnt.h
+FILE 3411 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3412 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3413 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3414 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3415 f:\sp\public\sdk\inc\imm.h
+FILE 3416 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3417 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3418 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3419 f:\sp\public\sdk\inc\winver.h
+FILE 3420 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3421 f:\sp\public\sdk\inc\guiddef.h
+FILE 3422 f:\sp\public\sdk\inc\specstrings.h
+FILE 3423 f:\sp\public\sdk\inc\basetsd.h
+FILE 3424 f:\sp\public\sdk\inc\windows.h
+FILE 3425 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3426 f:\sp\public\sdk\inc\winreg.h
+FILE 3427 f:\sp\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 3428 f:\sp\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 3429 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3430 f:\sp\public\sdk\inc\winbase.h
+FILE 3431 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3432 f:\sp\public\sdk\inc\winerror.h
+FILE 3433 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3434 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3435 f:\sp\public\sdk\inc\reason.h
+FILE 3436 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3437 f:\sp\public\sdk\inc\wincon.h
+FILE 3438 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3439 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3440 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3441 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3442 f:\sp\public\sdk\inc\mcx.h
+FILE 3443 f:\sp\public\sdk\inc\winuser.h
+FILE 3444 f:\sp\public\sdk\inc\winnls.h
+FILE 3445 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3446 f:\sp\public\sdk\inc\windef.h
+FILE 3447 f:\sp\public\sdk\inc\stralign.h
+FILE 3448 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3449 f:\sp\public\sdk\inc\tvout.h
+FILE 3450 f:\sp\public\sdk\inc\winsvc.h
+FILE 3451 f:\sp\public\sdk\inc\wingdi.h
+FILE 3452 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3453 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3454 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3455 f:\sp\public\sdk\inc\poppack.h
+FILE 3456 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3457 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3458 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3459 f:\sp\public\sdk\inc\imm.h
+FILE 3460 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3461 f:\sp\public\sdk\inc\windef.h
+FILE 3462 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3463 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3464 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3465 f:\sp\public\sdk\inc\winver.h
+FILE 3466 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3467 f:\sp\public\sdk\inc\winnt.h
+FILE 3468 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3469 f:\sp\public\sdk\inc\winreg.h
+FILE 3470 f:\sp\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 3471 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3472 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3473 f:\sp\public\sdk\inc\winbase.h
+FILE 3474 f:\sp\public\sdk\inc\winerror.h
+FILE 3475 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3476 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3477 f:\sp\public\sdk\inc\reason.h
+FILE 3478 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3479 f:\sp\public\sdk\inc\wincon.h
+FILE 3480 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3481 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3482 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3483 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3484 f:\sp\public\sdk\inc\mcx.h
+FILE 3485 f:\sp\public\sdk\inc\winuser.h
+FILE 3486 f:\sp\public\sdk\inc\winnls.h
+FILE 3487 f:\sp\public\sdk\inc\guiddef.h
+FILE 3488 f:\sp\public\sdk\inc\stralign.h
+FILE 3489 f:\sp\public\sdk\inc\specstrings.h
+FILE 3490 f:\sp\public\sdk\inc\basetsd.h
+FILE 3491 f:\sp\public\sdk\inc\windows.h
+FILE 3492 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3493 f:\sp\public\sdk\inc\tvout.h
+FILE 3494 f:\sp\public\sdk\inc\winsvc.h
+FILE 3495 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3496 f:\sp\public\sdk\inc\wingdi.h
+FILE 3497 f:\sp\public\sdk\inc\winbase.h
+FILE 3498 f:\sp\public\sdk\inc\winerror.h
+FILE 3499 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3500 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3501 f:\sp\public\sdk\inc\winver.h
+FILE 3502 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3503 f:\sp\public\sdk\inc\winreg.h
+FILE 3504 f:\sp\public\sdk\inc\guiddef.h
+FILE 3505 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3506 f:\sp\public\sdk\inc\specstrings.h
+FILE 3507 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3508 f:\sp\public\sdk\inc\basetsd.h
+FILE 3509 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3510 f:\sp\public\sdk\inc\windows.h
+FILE 3511 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3512 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3513 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3514 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3515 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3516 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3517 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3518 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3519 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3520 f:\sp\public\sdk\inc\reason.h
+FILE 3521 f:\sp\public\sdk\inc\wincon.h
+FILE 3522 f:\sp\public\sdk\inc\poppack.h
+FILE 3523 f:\sp\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 3524 f:\sp\public\sdk\inc\mcx.h
+FILE 3525 f:\sp\public\sdk\inc\winuser.h
+FILE 3526 f:\sp\public\sdk\inc\winnls.h
+FILE 3527 f:\sp\public\sdk\inc\stralign.h
+FILE 3528 f:\sp\public\sdk\inc\tvout.h
+FILE 3529 f:\sp\public\sdk\inc\winsvc.h
+FILE 3530 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3531 f:\sp\public\sdk\inc\wingdi.h
+FILE 3532 f:\sp\public\sdk\inc\windef.h
+FILE 3533 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3534 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3535 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3536 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3537 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3538 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3539 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3540 f:\sp\public\sdk\inc\imm.h
+FILE 3541 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3542 f:\sp\public\sdk\inc\winnt.h
+FILE 3543 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3544 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3545 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3546 f:\sp\public\sdk\inc\poppack.h
+FILE 3547 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3548 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3549 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3550 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3551 f:\sp\public\sdk\inc\imm.h
+FILE 3552 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3553 f:\sp\public\sdk\inc\windef.h
+FILE 3554 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3555 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3556 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3557 f:\sp\public\sdk\inc\winver.h
+FILE 3558 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3559 f:\sp\public\sdk\inc\winnt.h
+FILE 3560 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3561 f:\sp\public\sdk\inc\winreg.h
+FILE 3562 f:\sp\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 3563 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3564 f:\sp\public\sdk\inc\winbase.h
+FILE 3565 f:\sp\public\sdk\inc\winerror.h
+FILE 3566 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3567 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3568 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3569 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3570 f:\sp\public\sdk\inc\reason.h
+FILE 3571 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3572 f:\sp\public\sdk\inc\wincon.h
+FILE 3573 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3574 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3575 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3576 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3577 f:\sp\public\sdk\inc\mcx.h
+FILE 3578 f:\sp\public\sdk\inc\winuser.h
+FILE 3579 f:\sp\public\sdk\inc\winnls.h
+FILE 3580 f:\sp\public\sdk\inc\guiddef.h
+FILE 3581 f:\sp\public\sdk\inc\stralign.h
+FILE 3582 f:\sp\public\sdk\inc\specstrings.h
+FILE 3583 f:\sp\public\sdk\inc\basetsd.h
+FILE 3584 f:\sp\public\sdk\inc\windows.h
+FILE 3585 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3586 f:\sp\public\sdk\inc\tvout.h
+FILE 3587 f:\sp\public\sdk\inc\winsvc.h
+FILE 3588 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3589 f:\sp\public\sdk\inc\wingdi.h
+FILE 3590 f:\sp\public\sdk\inc\poppack.h
+FILE 3591 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 3592 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3593 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3594 f:\sp\public\sdk\inc\imm.h
+FILE 3595 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3596 f:\sp\public\sdk\inc\windef.h
+FILE 3597 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3598 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3599 f:\sp\public\sdk\inc\winver.h
+FILE 3600 f:\sp\public\sdk\inc\windows.h
+FILE 3601 f:\sp\public\sdk\inc\winnt.h
+FILE 3602 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3603 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3604 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3605 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3606 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3607 f:\sp\public\sdk\inc\winreg.h
+FILE 3608 f:\sp\public\sdk\inc\winbase.h
+FILE 3609 f:\sp\vctools\crt_bld\self_x86\crt\src\initcrit.c
+FILE 3610 f:\sp\public\sdk\inc\winerror.h
+FILE 3611 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3612 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3613 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3614 f:\sp\public\sdk\inc\reason.h
+FILE 3615 f:\sp\public\sdk\inc\wincon.h
+FILE 3616 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3617 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3618 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3619 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3620 f:\sp\public\sdk\inc\mcx.h
+FILE 3621 f:\sp\public\sdk\inc\winuser.h
+FILE 3622 f:\sp\public\sdk\inc\winnls.h
+FILE 3623 f:\sp\public\sdk\inc\guiddef.h
+FILE 3624 f:\sp\public\sdk\inc\specstrings.h
+FILE 3625 f:\sp\public\sdk\inc\basetsd.h
+FILE 3626 f:\sp\public\sdk\inc\stralign.h
+FILE 3627 f:\sp\public\sdk\inc\tvout.h
+FILE 3628 f:\sp\public\sdk\inc\winsvc.h
+FILE 3629 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3630 f:\sp\public\sdk\inc\wingdi.h
+FILE 3631 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3632 f:\sp\public\sdk\inc\poppack.h
+FILE 3633 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3634 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3635 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3636 f:\sp\public\sdk\inc\imm.h
+FILE 3637 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3638 f:\sp\public\sdk\inc\windef.h
+FILE 3639 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3640 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3641 f:\sp\public\sdk\inc\winver.h
+FILE 3642 f:\sp\public\sdk\inc\windows.h
+FILE 3643 f:\sp\public\sdk\inc\winnt.h
+FILE 3644 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3645 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3646 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3647 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3648 f:\sp\public\sdk\inc\winreg.h
+FILE 3649 f:\sp\public\sdk\inc\winbase.h
+FILE 3650 f:\sp\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 3651 f:\sp\public\sdk\inc\winerror.h
+FILE 3652 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3653 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3654 f:\sp\public\sdk\inc\reason.h
+FILE 3655 f:\sp\public\sdk\inc\wincon.h
+FILE 3656 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3657 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3658 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3659 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3660 f:\sp\public\sdk\inc\mcx.h
+FILE 3661 f:\sp\public\sdk\inc\winuser.h
+FILE 3662 f:\sp\public\sdk\inc\winnls.h
+FILE 3663 f:\sp\public\sdk\inc\guiddef.h
+FILE 3664 f:\sp\public\sdk\inc\specstrings.h
+FILE 3665 f:\sp\public\sdk\inc\basetsd.h
+FILE 3666 f:\sp\public\sdk\inc\stralign.h
+FILE 3667 f:\sp\public\sdk\inc\tvout.h
+FILE 3668 f:\sp\public\sdk\inc\winsvc.h
+FILE 3669 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3670 f:\sp\public\sdk\inc\wingdi.h
+FILE 3671 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3672 f:\sp\public\sdk\inc\poppack.h
+FILE 3673 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3674 f:\sp\public\sdk\inc\imm.h
+FILE 3675 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3676 f:\sp\public\sdk\inc\windef.h
+FILE 3677 f:\binaries.x86ret\vcboot\inc\mm3dnow.h
+FILE 3678 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3679 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 3680 f:\sp\public\sdk\inc\winver.h
+FILE 3681 f:\sp\public\sdk\inc\windows.h
+FILE 3682 f:\sp\public\sdk\inc\winnt.h
+FILE 3683 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3684 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3685 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3686 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3687 f:\sp\public\sdk\inc\winreg.h
+FILE 3688 f:\sp\public\sdk\inc\winbase.h
+FILE 3689 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 3690 f:\sp\public\sdk\inc\winerror.h
+FILE 3691 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3692 f:\sp\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 3693 f:\sp\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 3694 f:\sp\public\sdk\inc\reason.h
+FILE 3695 f:\sp\public\sdk\inc\wincon.h
+FILE 3696 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3697 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3698 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3699 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3700 f:\sp\public\sdk\inc\mcx.h
+FILE 3701 f:\sp\public\sdk\inc\winuser.h
+FILE 3702 f:\sp\public\sdk\inc\winnls.h
+FILE 3703 f:\sp\public\sdk\inc\guiddef.h
+FILE 3704 f:\sp\public\sdk\inc\specstrings.h
+FILE 3705 f:\sp\public\sdk\inc\basetsd.h
+FILE 3706 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 3707 f:\sp\public\sdk\inc\stralign.h
+FILE 3708 f:\sp\public\sdk\inc\tvout.h
+FILE 3709 f:\sp\public\sdk\inc\winsvc.h
+FILE 3710 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3711 f:\sp\public\sdk\inc\wingdi.h
+FILE 3712 f:\binaries.x86ret\vcboot\inc\emmintrin.h
+FILE 3713 f:\binaries.x86ret\vcboot\inc\xmmintrin.h
+FILE 3714 f:\binaries.x86ret\vcboot\inc\mmintrin.h
+FILE 3715 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3716 f:\sp\public\sdk\inc\poppack.h
+FILE 3717 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3718 f:\sp\public\sdk\inc\imm.h
+FILE 3719 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3720 f:\sp\public\sdk\inc\windef.h
+FILE 3721 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3722 f:\sp\public\sdk\inc\winver.h
+FILE 3723 f:\sp\public\sdk\inc\windows.h
+FILE 3724 f:\sp\public\sdk\inc\winnt.h
+FILE 3725 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3726 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3727 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3728 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3729 f:\sp\public\sdk\inc\winreg.h
+FILE 3730 f:\sp\public\sdk\inc\winbase.h
+FILE 3731 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 3732 f:\sp\public\sdk\inc\winerror.h
+FILE 3733 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3734 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3735 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3736 f:\sp\public\sdk\inc\reason.h
+FILE 3737 f:\sp\public\sdk\inc\wincon.h
+FILE 3738 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3739 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3740 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3741 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3742 f:\sp\public\sdk\inc\mcx.h
+FILE 3743 f:\sp\public\sdk\inc\winuser.h
+FILE 3744 f:\sp\public\sdk\inc\winnls.h
+FILE 3745 f:\sp\public\sdk\inc\guiddef.h
+FILE 3746 f:\sp\public\sdk\inc\specstrings.h
+FILE 3747 f:\sp\public\sdk\inc\basetsd.h
+FILE 3748 f:\sp\public\sdk\inc\stralign.h
+FILE 3749 f:\sp\public\sdk\inc\tvout.h
+FILE 3750 f:\sp\public\sdk\inc\winsvc.h
+FILE 3751 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3752 f:\sp\public\sdk\inc\wingdi.h
+FILE 3753 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3754 f:\sp\public\sdk\inc\poppack.h
+FILE 3755 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3756 f:\sp\public\sdk\inc\imm.h
+FILE 3757 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3758 f:\sp\public\sdk\inc\windef.h
+FILE 3759 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3760 f:\sp\public\sdk\inc\winver.h
+FILE 3761 f:\sp\public\sdk\inc\windows.h
+FILE 3762 f:\sp\public\sdk\inc\winnt.h
+FILE 3763 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3764 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3765 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3766 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3767 f:\sp\public\sdk\inc\winreg.h
+FILE 3768 f:\sp\public\sdk\inc\winbase.h
+FILE 3769 f:\sp\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 3770 f:\sp\public\sdk\inc\winerror.h
+FILE 3771 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3772 f:\sp\public\sdk\inc\reason.h
+FILE 3773 f:\sp\public\sdk\inc\wincon.h
+FILE 3774 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3775 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3776 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3777 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3778 f:\sp\public\sdk\inc\mcx.h
+FILE 3779 f:\sp\public\sdk\inc\winuser.h
+FILE 3780 f:\sp\public\sdk\inc\winnls.h
+FILE 3781 f:\sp\public\sdk\inc\guiddef.h
+FILE 3782 f:\sp\public\sdk\inc\specstrings.h
+FILE 3783 f:\sp\public\sdk\inc\basetsd.h
+FILE 3784 f:\sp\public\sdk\inc\stralign.h
+FILE 3785 f:\sp\public\sdk\inc\tvout.h
+FILE 3786 f:\sp\public\sdk\inc\winsvc.h
+FILE 3787 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3788 f:\sp\public\sdk\inc\wingdi.h
+FILE 3789 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3790 f:\sp\public\sdk\inc\winerror.h
+FILE 3791 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3792 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3793 f:\sp\public\sdk\inc\winver.h
+FILE 3794 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3795 f:\sp\public\sdk\inc\winreg.h
+FILE 3796 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3797 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3798 f:\sp\public\sdk\inc\guiddef.h
+FILE 3799 f:\sp\public\sdk\inc\windows.h
+FILE 3800 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3801 f:\sp\public\sdk\inc\specstrings.h
+FILE 3802 f:\sp\public\sdk\inc\basetsd.h
+FILE 3803 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3804 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 3805 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3806 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3807 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3808 f:\sp\public\sdk\inc\reason.h
+FILE 3809 f:\sp\public\sdk\inc\wincon.h
+FILE 3810 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3811 f:\sp\public\sdk\inc\poppack.h
+FILE 3812 f:\sp\public\sdk\inc\mcx.h
+FILE 3813 f:\sp\public\sdk\inc\winuser.h
+FILE 3814 f:\sp\public\sdk\inc\winnls.h
+FILE 3815 f:\sp\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 3816 f:\sp\public\sdk\inc\stralign.h
+FILE 3817 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3818 f:\sp\public\sdk\inc\windef.h
+FILE 3819 f:\sp\public\sdk\inc\tvout.h
+FILE 3820 f:\sp\public\sdk\inc\winsvc.h
+FILE 3821 f:\sp\public\sdk\inc\wingdi.h
+FILE 3822 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3823 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3824 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3825 f:\sp\public\sdk\inc\winnt.h
+FILE 3826 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3827 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3828 f:\sp\public\sdk\inc\imm.h
+FILE 3829 f:\sp\public\sdk\inc\winbase.h
+FILE 3830 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3831 f:\sp\public\sdk\inc\poppack.h
+FILE 3832 f:\sp\public\sdk\inc\winnt.h
+FILE 3833 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3834 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3835 f:\sp\public\sdk\inc\imm.h
+FILE 3836 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3837 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3838 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3839 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3840 f:\sp\public\sdk\inc\winver.h
+FILE 3841 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3842 f:\sp\public\sdk\inc\guiddef.h
+FILE 3843 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3844 f:\sp\public\sdk\inc\specstrings.h
+FILE 3845 f:\sp\public\sdk\inc\basetsd.h
+FILE 3846 f:\sp\public\sdk\inc\windows.h
+FILE 3847 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3848 f:\sp\public\sdk\inc\winreg.h
+FILE 3849 f:\sp\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 3850 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3851 f:\sp\public\sdk\inc\winbase.h
+FILE 3852 f:\sp\public\sdk\inc\winerror.h
+FILE 3853 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3854 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3855 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3856 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3857 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3858 f:\sp\public\sdk\inc\reason.h
+FILE 3859 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3860 f:\sp\public\sdk\inc\wincon.h
+FILE 3861 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3862 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3863 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3864 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3865 f:\sp\public\sdk\inc\mcx.h
+FILE 3866 f:\sp\public\sdk\inc\winuser.h
+FILE 3867 f:\sp\public\sdk\inc\winnls.h
+FILE 3868 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3869 f:\sp\public\sdk\inc\windef.h
+FILE 3870 f:\sp\public\sdk\inc\stralign.h
+FILE 3871 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3872 f:\sp\public\sdk\inc\tvout.h
+FILE 3873 f:\sp\public\sdk\inc\winsvc.h
+FILE 3874 f:\sp\public\sdk\inc\wingdi.h
+FILE 3875 f:\sp\public\sdk\inc\reason.h
+FILE 3876 f:\sp\public\sdk\inc\wincon.h
+FILE 3877 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3878 f:\sp\public\sdk\inc\mcx.h
+FILE 3879 f:\sp\public\sdk\inc\winuser.h
+FILE 3880 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3881 f:\sp\public\sdk\inc\winnls.h
+FILE 3882 f:\sp\public\sdk\inc\guiddef.h
+FILE 3883 f:\sp\public\sdk\inc\windows.h
+FILE 3884 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3885 f:\sp\public\sdk\inc\specstrings.h
+FILE 3886 f:\sp\public\sdk\inc\basetsd.h
+FILE 3887 f:\sp\public\sdk\inc\stralign.h
+FILE 3888 f:\sp\public\sdk\inc\tvout.h
+FILE 3889 f:\sp\public\sdk\inc\winsvc.h
+FILE 3890 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3891 f:\sp\public\sdk\inc\wingdi.h
+FILE 3892 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3893 f:\sp\public\sdk\inc\poppack.h
+FILE 3894 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 3895 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3896 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3897 f:\sp\public\sdk\inc\imm.h
+FILE 3898 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3899 f:\sp\public\sdk\inc\windef.h
+FILE 3900 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 3901 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 3902 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3903 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3904 f:\sp\vctools\crt_bld\self_x86\crt\src\getenv.c
+FILE 3905 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3906 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 3907 f:\sp\public\sdk\inc\winver.h
+FILE 3908 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3909 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3910 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3911 f:\sp\public\sdk\inc\winnt.h
+FILE 3912 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3913 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3914 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3915 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3916 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3917 f:\sp\public\sdk\inc\winreg.h
+FILE 3918 f:\sp\public\sdk\inc\winbase.h
+FILE 3919 f:\sp\public\sdk\inc\winerror.h
+FILE 3920 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3921 f:\sp\public\sdk\inc\poppack.h
+FILE 3922 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 3923 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3924 f:\sp\public\sdk\inc\imm.h
+FILE 3925 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3926 f:\sp\public\sdk\inc\windef.h
+FILE 3927 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3928 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3929 f:\sp\public\sdk\inc\winver.h
+FILE 3930 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 3931 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3932 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3933 f:\sp\public\sdk\inc\winnt.h
+FILE 3934 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3935 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 3936 f:\sp\public\sdk\inc\winreg.h
+FILE 3937 f:\sp\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 3938 f:\sp\public\sdk\inc\winbase.h
+FILE 3939 f:\sp\public\sdk\inc\winerror.h
+FILE 3940 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3941 f:\sp\public\sdk\inc\reason.h
+FILE 3942 f:\sp\public\sdk\inc\wincon.h
+FILE 3943 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3944 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3945 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3946 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3947 f:\sp\public\sdk\inc\mcx.h
+FILE 3948 f:\sp\public\sdk\inc\winuser.h
+FILE 3949 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3950 f:\sp\public\sdk\inc\winnls.h
+FILE 3951 f:\sp\public\sdk\inc\guiddef.h
+FILE 3952 f:\sp\public\sdk\inc\windows.h
+FILE 3953 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3954 f:\sp\public\sdk\inc\specstrings.h
+FILE 3955 f:\sp\public\sdk\inc\basetsd.h
+FILE 3956 f:\sp\public\sdk\inc\stralign.h
+FILE 3957 f:\sp\public\sdk\inc\tvout.h
+FILE 3958 f:\sp\public\sdk\inc\winsvc.h
+FILE 3959 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 3960 f:\sp\public\sdk\inc\wingdi.h
+FILE 3961 f:\sp\public\sdk\inc\pshpack4.h
+FILE 3962 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 3963 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 3964 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3965 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3966 f:\sp\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 3967 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3968 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3969 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 3970 f:\sp\public\sdk\inc\poppack.h
+FILE 3971 f:\sp\public\sdk\inc\winnetwk.h
+FILE 3972 f:\sp\public\sdk\inc\imm.h
+FILE 3973 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 3974 f:\sp\public\sdk\inc\windef.h
+FILE 3975 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 3976 f:\sp\public\sdk\inc\pshpack1.h
+FILE 3977 f:\sp\public\sdk\inc\winver.h
+FILE 3978 f:\sp\public\sdk\inc\windows.h
+FILE 3979 f:\sp\public\sdk\inc\winnt.h
+FILE 3980 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 3981 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 3982 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 3983 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 3984 f:\sp\public\sdk\inc\winreg.h
+FILE 3985 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 3986 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 3987 f:\sp\public\sdk\inc\winbase.h
+FILE 3988 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 3989 f:\sp\public\sdk\inc\winerror.h
+FILE 3990 f:\sp\public\sdk\inc\pshpack8.h
+FILE 3991 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 3992 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 3993 f:\sp\public\sdk\inc\reason.h
+FILE 3994 f:\sp\public\sdk\inc\wincon.h
+FILE 3995 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 3996 f:\sp\public\sdk\inc\ddbanned.h
+FILE 3997 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 3998 f:\sp\public\sdk\inc\pshpack2.h
+FILE 3999 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4000 f:\sp\public\sdk\inc\mcx.h
+FILE 4001 f:\sp\public\sdk\inc\winuser.h
+FILE 4002 f:\sp\public\sdk\inc\winnls.h
+FILE 4003 f:\sp\public\sdk\inc\guiddef.h
+FILE 4004 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4005 f:\sp\public\sdk\inc\specstrings.h
+FILE 4006 f:\sp\public\sdk\inc\basetsd.h
+FILE 4007 f:\sp\public\sdk\inc\stralign.h
+FILE 4008 f:\sp\public\sdk\inc\tvout.h
+FILE 4009 f:\sp\public\sdk\inc\winsvc.h
+FILE 4010 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4011 f:\sp\public\sdk\inc\wingdi.h
+FILE 4012 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4013 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4014 f:\sp\public\sdk\inc\mcx.h
+FILE 4015 f:\sp\public\sdk\inc\winuser.h
+FILE 4016 f:\sp\public\sdk\inc\winnls.h
+FILE 4017 f:\sp\public\sdk\inc\stralign.h
+FILE 4018 f:\sp\public\sdk\inc\tvout.h
+FILE 4019 f:\sp\public\sdk\inc\winsvc.h
+FILE 4020 f:\sp\public\sdk\inc\wingdi.h
+FILE 4021 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4022 f:\sp\public\sdk\inc\winnt.h
+FILE 4023 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4024 f:\sp\public\sdk\inc\poppack.h
+FILE 4025 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4026 f:\sp\public\sdk\inc\imm.h
+FILE 4027 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 4028 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4029 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4030 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4031 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4032 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 4034 f:\sp\public\sdk\inc\winver.h
+FILE 4035 f:\sp\public\sdk\inc\guiddef.h
+FILE 4036 f:\sp\public\sdk\inc\windows.h
+FILE 4037 f:\sp\public\sdk\inc\specstrings.h
+FILE 4038 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4039 f:\sp\public\sdk\inc\basetsd.h
+FILE 4040 f:\sp\public\sdk\inc\winreg.h
+FILE 4041 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4042 f:\sp\public\sdk\inc\winbase.h
+FILE 4043 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4044 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4045 f:\sp\public\sdk\inc\winerror.h
+FILE 4046 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4047 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4048 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4049 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4050 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4051 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4052 f:\sp\public\sdk\inc\reason.h
+FILE 4053 f:\sp\public\sdk\inc\wincon.h
+FILE 4054 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4055 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4056 f:\sp\public\sdk\inc\windef.h
+FILE 4057 f:\sp\public\sdk\inc\poppack.h
+FILE 4058 f:\sp\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 4059 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4060 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4061 f:\sp\public\sdk\inc\imm.h
+FILE 4062 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4063 f:\sp\public\sdk\inc\windef.h
+FILE 4064 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4065 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4066 f:\sp\public\sdk\inc\winver.h
+FILE 4067 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4068 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4069 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4070 f:\sp\public\sdk\inc\winnt.h
+FILE 4071 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4072 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4073 f:\sp\public\sdk\inc\winreg.h
+FILE 4074 f:\sp\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 4075 f:\sp\public\sdk\inc\winbase.h
+FILE 4076 f:\sp\public\sdk\inc\winerror.h
+FILE 4077 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4078 f:\sp\public\sdk\inc\reason.h
+FILE 4079 f:\sp\public\sdk\inc\wincon.h
+FILE 4080 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4081 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4082 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4083 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4084 f:\sp\public\sdk\inc\mcx.h
+FILE 4085 f:\sp\public\sdk\inc\winuser.h
+FILE 4086 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4087 f:\sp\public\sdk\inc\winnls.h
+FILE 4088 f:\sp\public\sdk\inc\guiddef.h
+FILE 4089 f:\sp\public\sdk\inc\windows.h
+FILE 4090 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4091 f:\sp\public\sdk\inc\specstrings.h
+FILE 4092 f:\sp\public\sdk\inc\basetsd.h
+FILE 4093 f:\sp\public\sdk\inc\stralign.h
+FILE 4094 f:\sp\public\sdk\inc\tvout.h
+FILE 4095 f:\sp\public\sdk\inc\winsvc.h
+FILE 4096 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4097 f:\sp\public\sdk\inc\wingdi.h
+FILE 4098 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4099 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4100 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4101 f:\sp\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 4102 f:\sp\public\sdk\inc\poppack.h
+FILE 4103 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4104 f:\sp\public\sdk\inc\imm.h
+FILE 4105 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4106 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4107 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4108 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4109 f:\sp\public\sdk\inc\windef.h
+FILE 4110 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4111 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4112 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4113 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4114 f:\sp\public\sdk\inc\winver.h
+FILE 4115 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4116 f:\sp\public\sdk\inc\winnt.h
+FILE 4117 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4118 f:\sp\public\sdk\inc\winreg.h
+FILE 4119 f:\sp\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 4120 f:\sp\public\sdk\inc\winbase.h
+FILE 4121 f:\sp\public\sdk\inc\winerror.h
+FILE 4122 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4123 f:\sp\public\sdk\inc\reason.h
+FILE 4124 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4125 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4126 f:\sp\public\sdk\inc\wincon.h
+FILE 4127 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4128 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4129 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4130 f:\sp\public\sdk\inc\mcx.h
+FILE 4131 f:\sp\public\sdk\inc\winuser.h
+FILE 4132 f:\sp\public\sdk\inc\winnls.h
+FILE 4133 f:\sp\public\sdk\inc\guiddef.h
+FILE 4134 f:\sp\public\sdk\inc\stralign.h
+FILE 4135 f:\sp\public\sdk\inc\specstrings.h
+FILE 4136 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4137 f:\sp\public\sdk\inc\basetsd.h
+FILE 4138 f:\sp\public\sdk\inc\windows.h
+FILE 4139 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4140 f:\sp\public\sdk\inc\tvout.h
+FILE 4141 f:\sp\public\sdk\inc\winsvc.h
+FILE 4142 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4143 f:\sp\public\sdk\inc\wingdi.h
+FILE 4144 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4145 f:\sp\public\sdk\inc\wincon.h
+FILE 4146 f:\sp\public\sdk\inc\imm.h
+FILE 4147 f:\sp\public\sdk\inc\winbase.h
+FILE 4148 f:\sp\public\sdk\inc\wingdi.h
+FILE 4149 f:\sp\public\sdk\inc\winver.h
+FILE 4150 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4151 f:\sp\public\sdk\inc\windows.h
+FILE 4152 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4153 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4154 f:\sp\public\sdk\inc\reason.h
+FILE 4155 f:\sp\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 4156 f:\sp\public\sdk\inc\specstrings.h
+FILE 4157 f:\sp\public\sdk\inc\basetsd.h
+FILE 4158 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4159 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4160 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4161 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4162 f:\sp\public\sdk\inc\stralign.h
+FILE 4163 f:\sp\public\sdk\inc\poppack.h
+FILE 4164 f:\sp\public\sdk\inc\winsvc.h
+FILE 4165 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4166 f:\sp\public\sdk\inc\windef.h
+FILE 4167 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4168 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4169 f:\sp\public\sdk\inc\winuser.h
+FILE 4170 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4171 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4172 f:\sp\public\sdk\inc\mcx.h
+FILE 4173 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4174 f:\sp\public\sdk\inc\guiddef.h
+FILE 4175 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4176 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4177 f:\sp\public\sdk\inc\winnt.h
+FILE 4178 f:\sp\public\sdk\inc\winnls.h
+FILE 4179 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4180 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4181 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4182 f:\sp\public\sdk\inc\winerror.h
+FILE 4183 f:\sp\public\sdk\inc\winreg.h
+FILE 4184 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4185 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4186 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4187 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4188 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4189 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4190 f:\sp\public\sdk\inc\tvout.h
+FILE 4191 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4192 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4193 f:\sp\public\sdk\inc\wincon.h
+FILE 4194 f:\sp\public\sdk\inc\imm.h
+FILE 4195 f:\sp\public\sdk\inc\winbase.h
+FILE 4196 f:\sp\public\sdk\inc\wingdi.h
+FILE 4197 f:\sp\public\sdk\inc\winver.h
+FILE 4198 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4199 f:\sp\public\sdk\inc\windows.h
+FILE 4200 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4201 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4202 f:\sp\public\sdk\inc\reason.h
+FILE 4203 f:\sp\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 4204 f:\sp\public\sdk\inc\specstrings.h
+FILE 4205 f:\sp\public\sdk\inc\basetsd.h
+FILE 4206 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4207 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4208 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4209 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4210 f:\sp\public\sdk\inc\stralign.h
+FILE 4211 f:\sp\public\sdk\inc\poppack.h
+FILE 4212 f:\sp\public\sdk\inc\winsvc.h
+FILE 4213 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4214 f:\sp\public\sdk\inc\windef.h
+FILE 4215 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4216 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4217 f:\sp\public\sdk\inc\winuser.h
+FILE 4218 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4219 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4220 f:\sp\public\sdk\inc\mcx.h
+FILE 4221 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4222 f:\sp\public\sdk\inc\guiddef.h
+FILE 4223 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4224 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4225 f:\sp\public\sdk\inc\winnt.h
+FILE 4226 f:\sp\public\sdk\inc\winnls.h
+FILE 4227 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4228 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4229 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4230 f:\sp\public\sdk\inc\winerror.h
+FILE 4231 f:\sp\public\sdk\inc\winreg.h
+FILE 4232 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4233 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4234 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4235 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4236 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4237 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4238 f:\sp\public\sdk\inc\tvout.h
+FILE 4239 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4240 f:\sp\public\sdk\inc\wincon.h
+FILE 4241 f:\sp\public\sdk\inc\imm.h
+FILE 4242 f:\sp\public\sdk\inc\winbase.h
+FILE 4243 f:\sp\public\sdk\inc\wingdi.h
+FILE 4244 f:\sp\public\sdk\inc\winver.h
+FILE 4245 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4246 f:\sp\public\sdk\inc\windows.h
+FILE 4247 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4248 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4249 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4250 f:\sp\public\sdk\inc\reason.h
+FILE 4251 f:\sp\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 4252 f:\sp\public\sdk\inc\specstrings.h
+FILE 4253 f:\sp\public\sdk\inc\basetsd.h
+FILE 4254 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4255 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4256 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4257 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4258 f:\sp\public\sdk\inc\stralign.h
+FILE 4259 f:\sp\public\sdk\inc\poppack.h
+FILE 4260 f:\sp\public\sdk\inc\winsvc.h
+FILE 4261 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4262 f:\sp\public\sdk\inc\windef.h
+FILE 4263 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4264 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4265 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4266 f:\sp\public\sdk\inc\winuser.h
+FILE 4267 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4268 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4269 f:\sp\public\sdk\inc\mcx.h
+FILE 4270 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4271 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4272 f:\sp\public\sdk\inc\guiddef.h
+FILE 4273 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4274 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4275 f:\sp\public\sdk\inc\winnt.h
+FILE 4276 f:\sp\public\sdk\inc\winnls.h
+FILE 4277 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4278 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4279 f:\sp\public\sdk\inc\winerror.h
+FILE 4280 f:\sp\public\sdk\inc\winreg.h
+FILE 4281 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4282 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4283 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4284 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4285 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4286 f:\sp\public\sdk\inc\tvout.h
+FILE 4287 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4288 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4289 f:\sp\public\sdk\inc\poppack.h
+FILE 4290 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4291 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4292 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4293 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4294 f:\sp\public\sdk\inc\imm.h
+FILE 4295 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4296 f:\sp\public\sdk\inc\windef.h
+FILE 4297 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4298 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4299 f:\sp\public\sdk\inc\winver.h
+FILE 4300 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4301 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4302 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4303 f:\sp\public\sdk\inc\winnt.h
+FILE 4304 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4305 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4306 f:\sp\public\sdk\inc\winreg.h
+FILE 4307 f:\sp\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 4308 f:\sp\public\sdk\inc\winbase.h
+FILE 4309 f:\sp\public\sdk\inc\winerror.h
+FILE 4310 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4311 f:\sp\public\sdk\inc\reason.h
+FILE 4312 f:\sp\public\sdk\inc\wincon.h
+FILE 4313 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4314 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4315 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4316 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4317 f:\sp\public\sdk\inc\mcx.h
+FILE 4318 f:\sp\public\sdk\inc\winuser.h
+FILE 4319 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4320 f:\sp\public\sdk\inc\winnls.h
+FILE 4321 f:\sp\public\sdk\inc\guiddef.h
+FILE 4322 f:\sp\public\sdk\inc\windows.h
+FILE 4323 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4324 f:\sp\public\sdk\inc\specstrings.h
+FILE 4325 f:\sp\public\sdk\inc\basetsd.h
+FILE 4326 f:\sp\public\sdk\inc\stralign.h
+FILE 4327 f:\sp\public\sdk\inc\tvout.h
+FILE 4328 f:\sp\public\sdk\inc\winsvc.h
+FILE 4329 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4330 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4331 f:\sp\public\sdk\inc\wingdi.h
+FILE 4332 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4333 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4334 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4335 f:\sp\public\sdk\inc\wincon.h
+FILE 4336 f:\sp\public\sdk\inc\imm.h
+FILE 4337 f:\sp\public\sdk\inc\winbase.h
+FILE 4338 f:\sp\public\sdk\inc\wingdi.h
+FILE 4339 f:\sp\public\sdk\inc\winver.h
+FILE 4340 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4341 f:\sp\public\sdk\inc\windows.h
+FILE 4342 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4343 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4344 f:\sp\public\sdk\inc\reason.h
+FILE 4345 f:\sp\vctools\crt_bld\self_x86\crt\src\a_cmp.c
+FILE 4346 f:\sp\public\sdk\inc\specstrings.h
+FILE 4347 f:\sp\public\sdk\inc\basetsd.h
+FILE 4348 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4349 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4350 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4351 f:\sp\public\sdk\inc\stralign.h
+FILE 4352 f:\sp\public\sdk\inc\poppack.h
+FILE 4353 f:\sp\public\sdk\inc\winsvc.h
+FILE 4354 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4355 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4356 f:\sp\public\sdk\inc\windef.h
+FILE 4357 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4358 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4359 f:\sp\public\sdk\inc\winuser.h
+FILE 4360 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4361 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4362 f:\sp\public\sdk\inc\mcx.h
+FILE 4363 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4364 f:\sp\public\sdk\inc\guiddef.h
+FILE 4365 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4366 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4367 f:\sp\public\sdk\inc\winnt.h
+FILE 4368 f:\sp\public\sdk\inc\winnls.h
+FILE 4369 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4370 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4371 f:\sp\public\sdk\inc\winerror.h
+FILE 4372 f:\sp\public\sdk\inc\winreg.h
+FILE 4373 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4374 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4375 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4376 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4377 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4378 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4379 f:\sp\public\sdk\inc\tvout.h
+FILE 4380 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4381 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 4382 f:\sp\public\sdk\inc\poppack.h
+FILE 4383 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4384 f:\sp\public\sdk\inc\imm.h
+FILE 4385 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4386 f:\sp\public\sdk\inc\windef.h
+FILE 4387 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4388 f:\sp\public\sdk\inc\winver.h
+FILE 4389 f:\sp\public\sdk\inc\windows.h
+FILE 4390 f:\sp\public\sdk\inc\winnt.h
+FILE 4391 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4392 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4393 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4394 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4395 f:\sp\public\sdk\inc\winreg.h
+FILE 4396 f:\sp\public\sdk\inc\winbase.h
+FILE 4397 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 4398 f:\sp\public\sdk\inc\winerror.h
+FILE 4399 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4400 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 4401 f:\sp\public\sdk\inc\reason.h
+FILE 4402 f:\sp\public\sdk\inc\wincon.h
+FILE 4403 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4404 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4405 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4406 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4407 f:\sp\public\sdk\inc\mcx.h
+FILE 4408 f:\sp\public\sdk\inc\winuser.h
+FILE 4409 f:\sp\public\sdk\inc\winnls.h
+FILE 4410 f:\sp\public\sdk\inc\guiddef.h
+FILE 4411 f:\sp\public\sdk\inc\specstrings.h
+FILE 4412 f:\sp\public\sdk\inc\basetsd.h
+FILE 4413 f:\sp\public\sdk\inc\stralign.h
+FILE 4414 f:\sp\public\sdk\inc\tvout.h
+FILE 4415 f:\sp\public\sdk\inc\winsvc.h
+FILE 4416 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4417 f:\sp\public\sdk\inc\wingdi.h
+FILE 4418 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4419 f:\sp\public\sdk\inc\poppack.h
+FILE 4420 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4421 f:\sp\public\sdk\inc\imm.h
+FILE 4422 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4423 f:\sp\public\sdk\inc\windef.h
+FILE 4424 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4425 f:\sp\public\sdk\inc\winver.h
+FILE 4426 f:\sp\public\sdk\inc\windows.h
+FILE 4427 f:\sp\public\sdk\inc\winnt.h
+FILE 4428 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4429 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4430 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4431 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4432 f:\sp\public\sdk\inc\winreg.h
+FILE 4433 f:\sp\public\sdk\inc\winbase.h
+FILE 4434 f:\sp\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 4435 f:\sp\public\sdk\inc\winerror.h
+FILE 4436 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4437 f:\sp\public\sdk\inc\reason.h
+FILE 4438 f:\sp\public\sdk\inc\wincon.h
+FILE 4439 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4440 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4441 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4442 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4443 f:\sp\public\sdk\inc\mcx.h
+FILE 4444 f:\sp\public\sdk\inc\winuser.h
+FILE 4445 f:\sp\public\sdk\inc\winnls.h
+FILE 4446 f:\sp\public\sdk\inc\guiddef.h
+FILE 4447 f:\sp\public\sdk\inc\specstrings.h
+FILE 4448 f:\sp\public\sdk\inc\basetsd.h
+FILE 4449 f:\sp\public\sdk\inc\stralign.h
+FILE 4450 f:\sp\public\sdk\inc\tvout.h
+FILE 4451 f:\sp\public\sdk\inc\winsvc.h
+FILE 4452 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4453 f:\sp\public\sdk\inc\wingdi.h
+FILE 4454 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4455 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 4456 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 4457 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 4458 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 4459 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 4460 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 4461 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 4462 f:\sp\public\sdk\inc\ntldr.h
+FILE 4463 f:\sp\public\sdk\inc\ntpoapi.h
+FILE 4464 f:\sp\public\sdk\inc\ntexapi.h
+FILE 4465 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4466 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4467 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 4468 f:\sp\public\sdk\inc\ntdef.h
+FILE 4469 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 4470 f:\sp\public\sdk\inc\mce.h
+FILE 4471 f:\sp\public\sdk\inc\poppack.h
+FILE 4472 f:\sp\public\sdk\inc\ntimage.h
+FILE 4473 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4474 f:\sp\public\sdk\inc\ntpsapi.h
+FILE 4475 f:\sp\public\sdk\inc\nti386.h
+FILE 4476 f:\sp\public\sdk\inc\nt.h
+FILE 4477 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 4478 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 4479 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 4480 f:\sp\public\sdk\inc\specstrings.h
+FILE 4481 f:\sp\public\sdk\inc\basetsd.h
+FILE 4482 f:\sp\public\sdk\inc\ntxcapi.h
+FILE 4483 f:\sp\public\sdk\inc\guiddef.h
+FILE 4484 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 4485 f:\sp\public\sdk\inc\ntstatus.h
+FILE 4486 f:\sp\public\sdk\inc\ntkeapi.h
+FILE 4487 f:\sp\public\sdk\inc\ntconfig.h
+FILE 4488 f:\sp\public\sdk\inc\ntregapi.h
+FILE 4489 f:\sp\public\sdk\inc\ntmmapi.h
+FILE 4490 f:\sp\public\sdk\inc\ntobapi.h
+FILE 4491 f:\sp\public\sdk\inc\nxi386.h
+FILE 4492 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 4493 f:\sp\public\sdk\inc\ntioapi.h
+FILE 4494 f:\sp\public\sdk\inc\devioctl.h
+FILE 4495 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 4496 f:\sp\public\sdk\inc\ntseapi.h
+FILE 4497 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4498 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 4499 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 4500 f:\sp\public\sdk\inc\ntnls.h
+FILE 4501 f:\sp\public\sdk\inc\ntelfapi.h
+FILE 4502 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4503 f:\sp\public\sdk\inc\ntiolog.h
+FILE 4504 f:\sp\public\sdk\inc\ntlpcapi.h
+FILE 4505 f:\sp\public\sdk\inc\ntpnpapi.h
+FILE 4506 f:\sp\public\sdk\inc\cfg.h
+FILE 4507 f:\sp\public\sdk\inc\pebteb.h
+FILE 4508 f:\sp\public\sdk\inc\wincon.h
+FILE 4509 f:\sp\public\sdk\inc\imm.h
+FILE 4510 f:\sp\public\sdk\inc\winbase.h
+FILE 4511 f:\sp\public\sdk\inc\wingdi.h
+FILE 4512 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4513 f:\sp\public\sdk\inc\winver.h
+FILE 4514 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4515 f:\sp\public\sdk\inc\reason.h
+FILE 4516 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4517 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4518 f:\sp\vctools\crt_bld\self_x86\crt\src\mbsnbico.c
+FILE 4519 f:\sp\public\sdk\inc\specstrings.h
+FILE 4520 f:\sp\public\sdk\inc\basetsd.h
+FILE 4521 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4522 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4523 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4524 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4525 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4526 f:\sp\public\sdk\inc\stralign.h
+FILE 4527 f:\sp\public\sdk\inc\poppack.h
+FILE 4528 f:\sp\public\sdk\inc\winsvc.h
+FILE 4529 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4530 f:\sp\public\sdk\inc\windef.h
+FILE 4531 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4532 f:\sp\public\sdk\inc\winuser.h
+FILE 4533 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4534 f:\sp\public\sdk\inc\windows.h
+FILE 4535 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4536 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4537 f:\sp\public\sdk\inc\mcx.h
+FILE 4538 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4539 f:\sp\public\sdk\inc\guiddef.h
+FILE 4540 f:\sp\public\sdk\inc\winnt.h
+FILE 4541 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4542 f:\sp\public\sdk\inc\winnls.h
+FILE 4543 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4544 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4545 f:\sp\public\sdk\inc\winerror.h
+FILE 4546 f:\sp\public\sdk\inc\winreg.h
+FILE 4547 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4548 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4549 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4550 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4551 f:\sp\public\sdk\inc\tvout.h
+FILE 4552 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4553 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4554 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4555 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4556 f:\sp\public\sdk\inc\wincon.h
+FILE 4557 f:\sp\public\sdk\inc\imm.h
+FILE 4558 f:\sp\public\sdk\inc\winbase.h
+FILE 4559 f:\sp\public\sdk\inc\wingdi.h
+FILE 4560 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4561 f:\sp\public\sdk\inc\winver.h
+FILE 4562 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4563 f:\sp\public\sdk\inc\windows.h
+FILE 4564 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4565 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4566 f:\sp\public\sdk\inc\reason.h
+FILE 4567 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4568 f:\sp\vctools\crt_bld\self_x86\crt\src\mbschr.c
+FILE 4569 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4570 f:\sp\public\sdk\inc\specstrings.h
+FILE 4571 f:\sp\public\sdk\inc\basetsd.h
+FILE 4572 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4573 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4574 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4575 f:\sp\public\sdk\inc\stralign.h
+FILE 4576 f:\sp\public\sdk\inc\poppack.h
+FILE 4577 f:\sp\public\sdk\inc\winsvc.h
+FILE 4578 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4579 f:\sp\public\sdk\inc\windef.h
+FILE 4580 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4581 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4582 f:\sp\public\sdk\inc\winuser.h
+FILE 4583 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4584 f:\sp\public\sdk\inc\mcx.h
+FILE 4585 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4586 f:\sp\public\sdk\inc\guiddef.h
+FILE 4587 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4588 f:\sp\public\sdk\inc\winnt.h
+FILE 4589 f:\sp\public\sdk\inc\winnls.h
+FILE 4590 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4591 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4592 f:\sp\public\sdk\inc\winerror.h
+FILE 4593 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 4594 f:\sp\public\sdk\inc\winreg.h
+FILE 4595 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4596 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4597 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4598 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4599 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4600 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4601 f:\sp\public\sdk\inc\tvout.h
+FILE 4602 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4603 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4604 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4605 f:\sp\public\sdk\inc\wincon.h
+FILE 4606 f:\sp\public\sdk\inc\imm.h
+FILE 4607 f:\sp\public\sdk\inc\winbase.h
+FILE 4608 f:\sp\public\sdk\inc\wingdi.h
+FILE 4609 f:\sp\public\sdk\inc\winver.h
+FILE 4610 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4611 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4612 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4613 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4614 f:\sp\public\sdk\inc\reason.h
+FILE 4615 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 4616 f:\sp\public\sdk\inc\specstrings.h
+FILE 4617 f:\sp\public\sdk\inc\basetsd.h
+FILE 4618 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4619 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4620 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4621 f:\sp\public\sdk\inc\stralign.h
+FILE 4622 f:\sp\public\sdk\inc\poppack.h
+FILE 4623 f:\sp\public\sdk\inc\winsvc.h
+FILE 4624 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4625 f:\sp\public\sdk\inc\windef.h
+FILE 4626 f:\sp\public\sdk\inc\winuser.h
+FILE 4627 f:\sp\public\sdk\inc\windows.h
+FILE 4628 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4629 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4630 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4631 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4632 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4633 f:\sp\public\sdk\inc\mcx.h
+FILE 4634 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4635 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4636 f:\sp\public\sdk\inc\guiddef.h
+FILE 4637 f:\sp\public\sdk\inc\winnt.h
+FILE 4638 f:\sp\public\sdk\inc\winnls.h
+FILE 4639 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4640 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4641 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4642 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 4643 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4644 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4645 f:\sp\public\sdk\inc\winerror.h
+FILE 4646 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 4647 f:\sp\public\sdk\inc\winreg.h
+FILE 4648 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4649 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4650 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4651 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4652 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4653 f:\sp\public\sdk\inc\tvout.h
+FILE 4654 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4655 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4656 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4657 f:\sp\public\sdk\inc\wincon.h
+FILE 4658 f:\sp\public\sdk\inc\imm.h
+FILE 4659 f:\sp\public\sdk\inc\winbase.h
+FILE 4660 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4661 f:\sp\public\sdk\inc\wingdi.h
+FILE 4662 f:\sp\public\sdk\inc\windef.h
+FILE 4663 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 4664 f:\sp\public\sdk\inc\winver.h
+FILE 4665 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4666 f:\sp\public\sdk\inc\reason.h
+FILE 4667 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4668 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4669 f:\sp\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 4670 f:\sp\public\sdk\inc\winnt.h
+FILE 4671 f:\sp\public\sdk\inc\specstrings.h
+FILE 4672 f:\sp\public\sdk\inc\basetsd.h
+FILE 4673 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4674 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4675 f:\sp\public\sdk\inc\stralign.h
+FILE 4676 f:\sp\public\sdk\inc\poppack.h
+FILE 4677 f:\sp\public\sdk\inc\winsvc.h
+FILE 4678 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4679 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4680 f:\sp\public\sdk\inc\winuser.h
+FILE 4681 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4682 f:\sp\public\sdk\inc\mcx.h
+FILE 4683 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4684 f:\sp\public\sdk\inc\guiddef.h
+FILE 4685 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4686 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 4687 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4688 f:\sp\public\sdk\inc\windows.h
+FILE 4689 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4690 f:\sp\public\sdk\inc\winnls.h
+FILE 4691 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4692 f:\sp\public\sdk\inc\winerror.h
+FILE 4693 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4694 f:\sp\public\sdk\inc\winreg.h
+FILE 4695 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4696 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4697 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4698 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4699 f:\sp\public\sdk\inc\tvout.h
+FILE 4700 f:\sp\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 4701 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4702 f:\sp\public\sdk\inc\imm.h
+FILE 4703 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4704 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4705 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4706 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4707 f:\sp\public\sdk\inc\windef.h
+FILE 4708 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4709 f:\sp\public\sdk\inc\winver.h
+FILE 4710 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4711 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4712 f:\sp\public\sdk\inc\winnt.h
+FILE 4713 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4714 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4715 f:\sp\public\sdk\inc\winreg.h
+FILE 4716 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4717 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4718 f:\sp\public\sdk\inc\winbase.h
+FILE 4719 f:\sp\public\sdk\inc\winerror.h
+FILE 4720 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4721 f:\sp\vctools\crt_bld\self_x86\crt\src\putwch.c
+FILE 4722 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4723 f:\sp\public\sdk\inc\reason.h
+FILE 4724 f:\sp\public\sdk\inc\wincon.h
+FILE 4725 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4726 f:\sp\public\sdk\inc\mcx.h
+FILE 4727 f:\sp\public\sdk\inc\winuser.h
+FILE 4728 f:\sp\public\sdk\inc\winnls.h
+FILE 4729 f:\sp\public\sdk\inc\guiddef.h
+FILE 4730 f:\sp\public\sdk\inc\stralign.h
+FILE 4731 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4732 f:\sp\public\sdk\inc\specstrings.h
+FILE 4733 f:\sp\vctools\crt_bld\self_x86\crt\src\file2.h
+FILE 4734 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4735 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4736 f:\sp\public\sdk\inc\basetsd.h
+FILE 4737 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4738 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4739 f:\sp\public\sdk\inc\windows.h
+FILE 4740 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4741 f:\sp\public\sdk\inc\tvout.h
+FILE 4742 f:\sp\public\sdk\inc\winsvc.h
+FILE 4743 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4744 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4745 f:\sp\public\sdk\inc\wingdi.h
+FILE 4746 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4747 f:\sp\vctools\crt_bld\self_x86\crt\src\conio.h
+FILE 4748 f:\sp\public\sdk\inc\poppack.h
+FILE 4749 f:\sp\public\sdk\inc\reason.h
+FILE 4750 f:\sp\public\sdk\inc\wincon.h
+FILE 4751 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4752 f:\sp\public\sdk\inc\poppack.h
+FILE 4753 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4754 f:\sp\public\sdk\inc\mcx.h
+FILE 4755 f:\sp\public\sdk\inc\winuser.h
+FILE 4756 f:\sp\public\sdk\inc\winnls.h
+FILE 4757 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4758 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4759 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4760 f:\sp\public\sdk\inc\stralign.h
+FILE 4761 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4762 f:\sp\public\sdk\inc\windef.h
+FILE 4763 f:\sp\public\sdk\inc\tvout.h
+FILE 4764 f:\sp\public\sdk\inc\winsvc.h
+FILE 4765 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 4766 f:\sp\public\sdk\inc\wingdi.h
+FILE 4767 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 4768 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4769 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4770 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4771 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4772 f:\sp\public\sdk\inc\winnt.h
+FILE 4773 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4774 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4775 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4776 f:\sp\public\sdk\inc\imm.h
+FILE 4777 f:\sp\vctools\crt_bld\self_x86\crt\src\write.c
+FILE 4778 f:\sp\public\sdk\inc\winbase.h
+FILE 4779 f:\sp\public\sdk\inc\winerror.h
+FILE 4780 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4781 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 4782 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4783 f:\sp\public\sdk\inc\winver.h
+FILE 4784 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 4785 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4786 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4787 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4788 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4789 f:\sp\public\sdk\inc\winreg.h
+FILE 4790 f:\sp\public\sdk\inc\guiddef.h
+FILE 4791 f:\sp\public\sdk\inc\windows.h
+FILE 4792 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4793 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4794 f:\sp\public\sdk\inc\specstrings.h
+FILE 4795 f:\sp\public\sdk\inc\basetsd.h
+FILE 4796 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4797 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4798 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4799 f:\sp\public\sdk\inc\reason.h
+FILE 4800 f:\sp\public\sdk\inc\wincon.h
+FILE 4801 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4802 f:\sp\public\sdk\inc\poppack.h
+FILE 4803 f:\sp\public\sdk\inc\mcx.h
+FILE 4804 f:\sp\public\sdk\inc\winuser.h
+FILE 4805 f:\sp\public\sdk\inc\winnls.h
+FILE 4806 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4807 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4808 f:\sp\public\sdk\inc\stralign.h
+FILE 4809 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4810 f:\sp\public\sdk\inc\windef.h
+FILE 4811 f:\sp\public\sdk\inc\tvout.h
+FILE 4812 f:\sp\public\sdk\inc\winsvc.h
+FILE 4813 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4814 f:\sp\public\sdk\inc\wingdi.h
+FILE 4815 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4816 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4817 f:\sp\public\sdk\inc\winnt.h
+FILE 4818 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4819 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4820 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4821 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4822 f:\sp\public\sdk\inc\imm.h
+FILE 4823 f:\sp\vctools\crt_bld\self_x86\crt\src\fcntl.h
+FILE 4824 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4825 f:\sp\vctools\crt_bld\self_x86\crt\src\osfinfo.c
+FILE 4826 f:\sp\public\sdk\inc\winbase.h
+FILE 4827 f:\sp\public\sdk\inc\winerror.h
+FILE 4828 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4829 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4830 f:\sp\public\sdk\inc\winver.h
+FILE 4831 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4832 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4833 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4834 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4835 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4836 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4837 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4838 f:\sp\public\sdk\inc\winreg.h
+FILE 4839 f:\sp\public\sdk\inc\guiddef.h
+FILE 4840 f:\sp\public\sdk\inc\windows.h
+FILE 4841 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4842 f:\sp\public\sdk\inc\specstrings.h
+FILE 4843 f:\sp\public\sdk\inc\basetsd.h
+FILE 4844 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4845 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4846 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4847 f:\sp\public\sdk\inc\reason.h
+FILE 4848 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4849 f:\sp\public\sdk\inc\wincon.h
+FILE 4850 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 4851 f:\sp\public\sdk\inc\poppack.h
+FILE 4852 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4853 f:\sp\public\sdk\inc\mcx.h
+FILE 4854 f:\sp\public\sdk\inc\winuser.h
+FILE 4855 f:\sp\public\sdk\inc\winnls.h
+FILE 4856 f:\sp\public\sdk\inc\stralign.h
+FILE 4857 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4858 f:\sp\public\sdk\inc\windef.h
+FILE 4859 f:\sp\public\sdk\inc\tvout.h
+FILE 4860 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4861 f:\sp\public\sdk\inc\winsvc.h
+FILE 4862 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4863 f:\sp\public\sdk\inc\wingdi.h
+FILE 4864 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 4865 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 4866 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4867 f:\sp\public\sdk\inc\winnt.h
+FILE 4868 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4869 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4870 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4871 f:\sp\public\sdk\inc\imm.h
+FILE 4872 f:\sp\vctools\crt_bld\self_x86\crt\src\lseeki64.c
+FILE 4873 f:\sp\public\sdk\inc\winbase.h
+FILE 4874 f:\sp\public\sdk\inc\winerror.h
+FILE 4875 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4876 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4877 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 4878 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4879 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4880 f:\sp\public\sdk\inc\winver.h
+FILE 4881 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4882 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4883 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4884 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4885 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4886 f:\sp\public\sdk\inc\winreg.h
+FILE 4887 f:\sp\public\sdk\inc\guiddef.h
+FILE 4888 f:\sp\public\sdk\inc\windows.h
+FILE 4889 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4890 f:\sp\public\sdk\inc\specstrings.h
+FILE 4891 f:\sp\public\sdk\inc\basetsd.h
+FILE 4892 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4893 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4894 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4895 f:\sp\public\sdk\inc\poppack.h
+FILE 4896 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 4897 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4898 f:\sp\public\sdk\inc\imm.h
+FILE 4899 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4900 f:\sp\public\sdk\inc\windef.h
+FILE 4901 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4902 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4903 f:\sp\public\sdk\inc\winver.h
+FILE 4904 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4905 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4906 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4907 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4908 f:\sp\public\sdk\inc\winnt.h
+FILE 4909 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4910 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4911 f:\sp\public\sdk\inc\winreg.h
+FILE 4912 f:\sp\vctools\crt_bld\self_x86\crt\src\isatty.c
+FILE 4913 f:\sp\public\sdk\inc\winbase.h
+FILE 4914 f:\sp\public\sdk\inc\winerror.h
+FILE 4915 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4916 f:\sp\public\sdk\inc\reason.h
+FILE 4917 f:\sp\public\sdk\inc\wincon.h
+FILE 4918 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4919 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4920 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4921 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4922 f:\sp\public\sdk\inc\mcx.h
+FILE 4923 f:\sp\public\sdk\inc\winuser.h
+FILE 4924 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4925 f:\sp\public\sdk\inc\winnls.h
+FILE 4926 f:\sp\public\sdk\inc\guiddef.h
+FILE 4927 f:\sp\public\sdk\inc\windows.h
+FILE 4928 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4929 f:\sp\public\sdk\inc\specstrings.h
+FILE 4930 f:\sp\public\sdk\inc\basetsd.h
+FILE 4931 f:\sp\public\sdk\inc\stralign.h
+FILE 4932 f:\sp\public\sdk\inc\tvout.h
+FILE 4933 f:\sp\public\sdk\inc\winsvc.h
+FILE 4934 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4935 f:\sp\public\sdk\inc\wingdi.h
+FILE 4936 f:\sp\public\sdk\inc\poppack.h
+FILE 4937 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 4938 f:\sp\public\sdk\inc\winnetwk.h
+FILE 4939 f:\sp\public\sdk\inc\imm.h
+FILE 4940 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 4941 f:\sp\public\sdk\inc\windef.h
+FILE 4942 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 4943 f:\sp\public\sdk\inc\pshpack1.h
+FILE 4944 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 4945 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 4946 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 4947 f:\sp\public\sdk\inc\winver.h
+FILE 4948 f:\sp\public\sdk\inc\windows.h
+FILE 4949 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 4950 f:\sp\public\sdk\inc\winnt.h
+FILE 4951 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4952 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 4953 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 4954 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 4955 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 4956 f:\sp\public\sdk\inc\winreg.h
+FILE 4957 f:\sp\public\sdk\inc\winbase.h
+FILE 4958 f:\sp\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 4959 f:\sp\public\sdk\inc\winerror.h
+FILE 4960 f:\sp\public\sdk\inc\pshpack8.h
+FILE 4961 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 4962 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4963 f:\sp\public\sdk\inc\reason.h
+FILE 4964 f:\sp\public\sdk\inc\wincon.h
+FILE 4965 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 4966 f:\sp\public\sdk\inc\ddbanned.h
+FILE 4967 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 4968 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4969 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 4970 f:\sp\public\sdk\inc\mcx.h
+FILE 4971 f:\sp\public\sdk\inc\winuser.h
+FILE 4972 f:\sp\public\sdk\inc\winnls.h
+FILE 4973 f:\sp\public\sdk\inc\guiddef.h
+FILE 4974 f:\sp\public\sdk\inc\specstrings.h
+FILE 4975 f:\sp\public\sdk\inc\basetsd.h
+FILE 4976 f:\sp\public\sdk\inc\stralign.h
+FILE 4977 f:\sp\public\sdk\inc\tvout.h
+FILE 4978 f:\sp\public\sdk\inc\winsvc.h
+FILE 4979 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4980 f:\sp\public\sdk\inc\wingdi.h
+FILE 4981 f:\sp\public\sdk\inc\pshpack4.h
+FILE 4982 f:\sp\public\sdk\inc\reason.h
+FILE 4983 f:\sp\public\sdk\inc\wincon.h
+FILE 4984 f:\sp\public\sdk\inc\pshpack2.h
+FILE 4985 f:\sp\public\sdk\inc\mcx.h
+FILE 4986 f:\sp\public\sdk\inc\winuser.h
+FILE 4987 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 4988 f:\sp\public\sdk\inc\winnls.h
+FILE 4989 f:\sp\public\sdk\inc\guiddef.h
+FILE 4990 f:\sp\public\sdk\inc\windows.h
+FILE 4991 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 4992 f:\sp\public\sdk\inc\specstrings.h
+FILE 4993 f:\sp\public\sdk\inc\basetsd.h
+FILE 4994 f:\sp\public\sdk\inc\stralign.h
+FILE 4995 f:\sp\public\sdk\inc\tvout.h
+FILE 4996 f:\sp\public\sdk\inc\winsvc.h
+FILE 4997 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 4998 f:\sp\public\sdk\inc\wingdi.h
+FILE 4999 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5000 f:\sp\public\sdk\inc\poppack.h
+FILE 5001 f:\sp\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 5002 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 5003 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5004 f:\sp\public\sdk\inc\imm.h
+FILE 5005 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5006 f:\sp\public\sdk\inc\windef.h
+FILE 5007 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5008 f:\sp\vctools\crt_bld\self_x86\crt\src\initcon.c
+FILE 5009 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5010 f:\sp\public\sdk\inc\winver.h
+FILE 5011 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5012 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5013 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5014 f:\sp\public\sdk\inc\winnt.h
+FILE 5015 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5016 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5017 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5018 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5019 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5020 f:\sp\public\sdk\inc\winreg.h
+FILE 5021 f:\sp\public\sdk\inc\winbase.h
+FILE 5022 f:\sp\public\sdk\inc\winerror.h
+FILE 5023 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5024 f:\sp\public\sdk\inc\poppack.h
+FILE 5025 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 5026 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5027 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5028 f:\sp\public\sdk\inc\imm.h
+FILE 5029 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5030 f:\sp\public\sdk\inc\windef.h
+FILE 5031 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5032 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5033 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5034 f:\sp\public\sdk\inc\winver.h
+FILE 5035 f:\sp\public\sdk\inc\windows.h
+FILE 5036 f:\sp\public\sdk\inc\winnt.h
+FILE 5037 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5038 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5039 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5040 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5041 f:\sp\public\sdk\inc\winreg.h
+FILE 5042 f:\sp\public\sdk\inc\winbase.h
+FILE 5043 f:\sp\vctools\crt_bld\self_x86\crt\src\commit.c
+FILE 5044 f:\sp\public\sdk\inc\winerror.h
+FILE 5045 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5046 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5047 f:\sp\public\sdk\inc\reason.h
+FILE 5048 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 5049 f:\sp\public\sdk\inc\wincon.h
+FILE 5050 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5051 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5052 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5053 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5054 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5055 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5056 f:\sp\public\sdk\inc\mcx.h
+FILE 5057 f:\sp\public\sdk\inc\winuser.h
+FILE 5058 f:\sp\public\sdk\inc\winnls.h
+FILE 5059 f:\sp\public\sdk\inc\guiddef.h
+FILE 5060 f:\sp\public\sdk\inc\specstrings.h
+FILE 5061 f:\sp\public\sdk\inc\basetsd.h
+FILE 5062 f:\sp\public\sdk\inc\stralign.h
+FILE 5063 f:\sp\public\sdk\inc\tvout.h
+FILE 5064 f:\sp\public\sdk\inc\winsvc.h
+FILE 5065 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5066 f:\sp\public\sdk\inc\wingdi.h
+FILE 5067 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5068 f:\sp\public\sdk\inc\reason.h
+FILE 5069 f:\sp\public\sdk\inc\wincon.h
+FILE 5070 f:\sp\vctools\crt_bld\self_x86\crt\src\io.h
+FILE 5071 f:\sp\public\sdk\inc\poppack.h
+FILE 5072 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5073 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5074 f:\sp\public\sdk\inc\mcx.h
+FILE 5075 f:\sp\public\sdk\inc\winuser.h
+FILE 5076 f:\sp\public\sdk\inc\winnls.h
+FILE 5077 f:\sp\public\sdk\inc\stralign.h
+FILE 5078 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5079 f:\sp\public\sdk\inc\windef.h
+FILE 5080 f:\sp\public\sdk\inc\tvout.h
+FILE 5081 f:\sp\public\sdk\inc\winsvc.h
+FILE 5082 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5083 f:\sp\public\sdk\inc\wingdi.h
+FILE 5084 f:\sp\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 5085 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5086 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5087 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 5088 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5089 f:\sp\public\sdk\inc\winnt.h
+FILE 5090 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5091 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5092 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5093 f:\sp\public\sdk\inc\imm.h
+FILE 5094 f:\sp\vctools\crt_bld\self_x86\crt\src\close.c
+FILE 5095 f:\sp\public\sdk\inc\winbase.h
+FILE 5096 f:\sp\public\sdk\inc\winerror.h
+FILE 5097 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5098 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5099 f:\sp\public\sdk\inc\winver.h
+FILE 5100 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5101 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5102 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5103 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5104 f:\sp\public\sdk\inc\winreg.h
+FILE 5105 f:\sp\public\sdk\inc\guiddef.h
+FILE 5106 f:\sp\public\sdk\inc\windows.h
+FILE 5107 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5108 f:\sp\public\sdk\inc\specstrings.h
+FILE 5109 f:\sp\public\sdk\inc\basetsd.h
+FILE 5110 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5111 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5112 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5113 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\ulldvrm.asm
+FILE 5114 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 5115 F:\SP\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 5116 F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\llmul.asm
+FILE 5117 F:\SP\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 5118 F:\SP\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 5119 f:\sp\vctools\crt_bld\self_x86\crt\src\use_ansi.h
+FILE 5120 f:\sp\vctools\crt_bld\self_x86\crt\src\new
+FILE 5121 f:\sp\vctools\crt_bld\self_x86\crt\src\exception
+FILE 5122 f:\sp\vctools\crt_bld\self_x86\crt\src\xstddef
+FILE 5123 f:\sp\vctools\crt_bld\self_x86\crt\src\new.cpp
+FILE 5124 f:\sp\vctools\crt_bld\self_x86\crt\src\cstddef
+FILE 5125 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5126 f:\sp\vctools\crt_bld\self_x86\crt\src\eh.h
+FILE 5127 f:\sp\vctools\crt_bld\self_x86\crt\src\cstdlib
+FILE 5128 f:\sp\vctools\crt_bld\self_x86\crt\src\yvals.h
+FILE 5129 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5130 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5131 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5132 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5133 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5134 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5135 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5136 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5137 f:\sp\public\sdk\inc\poppack.h
+FILE 5138 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5139 f:\sp\public\sdk\inc\imm.h
+FILE 5140 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5141 f:\sp\public\sdk\inc\windef.h
+FILE 5142 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5143 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5144 f:\sp\public\sdk\inc\winver.h
+FILE 5145 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5146 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5147 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5148 f:\sp\public\sdk\inc\winnt.h
+FILE 5149 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5150 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5151 f:\sp\public\sdk\inc\winreg.h
+FILE 5152 f:\sp\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 5153 f:\sp\public\sdk\inc\winbase.h
+FILE 5154 f:\sp\public\sdk\inc\winerror.h
+FILE 5155 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5156 f:\sp\public\sdk\inc\reason.h
+FILE 5157 f:\sp\public\sdk\inc\wincon.h
+FILE 5158 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5159 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5160 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5161 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5162 f:\sp\public\sdk\inc\mcx.h
+FILE 5163 f:\sp\public\sdk\inc\winuser.h
+FILE 5164 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5165 f:\sp\public\sdk\inc\winnls.h
+FILE 5166 f:\sp\public\sdk\inc\guiddef.h
+FILE 5167 f:\sp\public\sdk\inc\windows.h
+FILE 5168 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5169 f:\sp\public\sdk\inc\specstrings.h
+FILE 5170 f:\sp\public\sdk\inc\basetsd.h
+FILE 5171 f:\sp\public\sdk\inc\stralign.h
+FILE 5172 f:\sp\public\sdk\inc\tvout.h
+FILE 5173 f:\sp\public\sdk\inc\winsvc.h
+FILE 5174 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5175 f:\sp\public\sdk\inc\wingdi.h
+FILE 5176 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5177 f:\sp\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 5178 f:\sp\public\sdk\inc\winerror.h
+FILE 5179 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5180 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5181 f:\sp\public\sdk\inc\winreg.h
+FILE 5182 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5183 f:\sp\public\sdk\inc\tvout.h
+FILE 5184 f:\sp\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 5185 f:\sp\public\sdk\inc\wincon.h
+FILE 5186 f:\sp\public\sdk\inc\imm.h
+FILE 5187 f:\sp\public\sdk\inc\winbase.h
+FILE 5188 f:\sp\public\sdk\inc\wingdi.h
+FILE 5189 f:\sp\public\sdk\inc\winver.h
+FILE 5190 f:\sp\public\sdk\inc\windows.h
+FILE 5191 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5192 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5193 f:\sp\public\sdk\inc\reason.h
+FILE 5194 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5195 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5196 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5197 f:\sp\public\sdk\inc\specstrings.h
+FILE 5198 f:\sp\public\sdk\inc\basetsd.h
+FILE 5199 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5200 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5201 f:\sp\public\sdk\inc\stralign.h
+FILE 5202 f:\sp\public\sdk\inc\poppack.h
+FILE 5203 f:\sp\public\sdk\inc\winsvc.h
+FILE 5204 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5205 f:\sp\public\sdk\inc\windef.h
+FILE 5206 f:\sp\public\sdk\inc\winuser.h
+FILE 5207 f:\sp\public\sdk\inc\mcx.h
+FILE 5208 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5209 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5210 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5211 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5212 f:\sp\public\sdk\inc\guiddef.h
+FILE 5213 f:\sp\public\sdk\inc\winnt.h
+FILE 5214 f:\sp\public\sdk\inc\winnls.h
+FILE 5215 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5216 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5217 f:\sp\public\sdk\inc\tvout.h
+FILE 5218 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5219 f:\sp\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 5220 f:\sp\public\sdk\inc\wincon.h
+FILE 5221 f:\sp\public\sdk\inc\imm.h
+FILE 5222 f:\sp\public\sdk\inc\winbase.h
+FILE 5223 f:\sp\public\sdk\inc\wingdi.h
+FILE 5224 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5225 f:\sp\public\sdk\inc\winver.h
+FILE 5226 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5227 f:\sp\public\sdk\inc\windows.h
+FILE 5228 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5229 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5230 f:\sp\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 5231 f:\sp\public\sdk\inc\reason.h
+FILE 5232 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5233 f:\sp\public\sdk\inc\specstrings.h
+FILE 5234 f:\sp\public\sdk\inc\basetsd.h
+FILE 5235 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5236 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5237 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5238 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5239 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5240 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5241 f:\sp\public\sdk\inc\stralign.h
+FILE 5242 f:\sp\public\sdk\inc\poppack.h
+FILE 5243 f:\sp\public\sdk\inc\winsvc.h
+FILE 5244 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5245 f:\sp\public\sdk\inc\windef.h
+FILE 5246 f:\sp\public\sdk\inc\winuser.h
+FILE 5247 f:\sp\public\sdk\inc\mcx.h
+FILE 5248 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5249 f:\sp\public\sdk\inc\guiddef.h
+FILE 5250 f:\sp\public\sdk\inc\winnt.h
+FILE 5251 f:\sp\public\sdk\inc\winnls.h
+FILE 5252 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5253 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5254 f:\sp\public\sdk\inc\winerror.h
+FILE 5255 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5256 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5257 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5258 f:\sp\public\sdk\inc\winreg.h
+FILE 5259 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5260 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5261 f:\sp\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 5262 f:\sp\public\sdk\inc\winsvc.h
+FILE 5263 f:\sp\public\sdk\inc\wingdi.h
+FILE 5264 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5265 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5266 f:\sp\public\sdk\inc\poppack.h
+FILE 5267 f:\sp\public\sdk\inc\winnt.h
+FILE 5268 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5269 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5270 f:\sp\public\sdk\inc\imm.h
+FILE 5271 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5272 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 5273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5274 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5275 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5276 f:\sp\public\sdk\inc\winver.h
+FILE 5277 f:\sp\public\sdk\inc\guiddef.h
+FILE 5278 f:\sp\public\sdk\inc\specstrings.h
+FILE 5279 f:\sp\public\sdk\inc\basetsd.h
+FILE 5280 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5281 f:\sp\vctools\crt_bld\self_x86\crt\src\sbheap.c
+FILE 5282 f:\sp\public\sdk\inc\windows.h
+FILE 5283 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5284 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5285 f:\sp\public\sdk\inc\winreg.h
+FILE 5286 f:\sp\public\sdk\inc\winbase.h
+FILE 5287 f:\sp\public\sdk\inc\winerror.h
+FILE 5288 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5289 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5290 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5291 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5292 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5293 f:\sp\public\sdk\inc\reason.h
+FILE 5294 f:\sp\public\sdk\inc\wincon.h
+FILE 5295 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5296 f:\sp\public\sdk\inc\mcx.h
+FILE 5297 f:\sp\public\sdk\inc\winuser.h
+FILE 5298 f:\sp\public\sdk\inc\winnls.h
+FILE 5299 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5300 f:\sp\public\sdk\inc\windef.h
+FILE 5301 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5302 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5303 f:\sp\public\sdk\inc\stralign.h
+FILE 5304 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5305 f:\sp\public\sdk\inc\tvout.h
+FILE 5306 f:\sp\public\sdk\inc\winver.h
+FILE 5307 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5308 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5309 f:\sp\public\sdk\inc\guiddef.h
+FILE 5310 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5311 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5312 f:\sp\public\sdk\inc\specstrings.h
+FILE 5313 f:\sp\public\sdk\inc\basetsd.h
+FILE 5314 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5315 f:\sp\public\sdk\inc\windows.h
+FILE 5316 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5317 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5318 f:\sp\public\sdk\inc\winreg.h
+FILE 5319 f:\sp\public\sdk\inc\winbase.h
+FILE 5320 f:\sp\public\sdk\inc\winerror.h
+FILE 5321 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5322 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5323 f:\sp\public\sdk\inc\reason.h
+FILE 5324 f:\sp\public\sdk\inc\wincon.h
+FILE 5325 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5326 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5327 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5328 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5329 f:\sp\public\sdk\inc\mcx.h
+FILE 5330 f:\sp\public\sdk\inc\winuser.h
+FILE 5331 f:\sp\public\sdk\inc\winnls.h
+FILE 5332 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5333 f:\sp\public\sdk\inc\windef.h
+FILE 5334 f:\sp\public\sdk\inc\stralign.h
+FILE 5335 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5336 f:\sp\public\sdk\inc\tvout.h
+FILE 5337 f:\sp\public\sdk\inc\winsvc.h
+FILE 5338 f:\sp\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 5339 f:\sp\public\sdk\inc\wingdi.h
+FILE 5340 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5341 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5342 f:\sp\public\sdk\inc\poppack.h
+FILE 5343 f:\sp\public\sdk\inc\winnt.h
+FILE 5344 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5345 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5346 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5347 f:\sp\public\sdk\inc\imm.h
+FILE 5348 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5349 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5350 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5351 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5352 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5353 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5354 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5355 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5356 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5357 f:\sp\public\sdk\inc\mcx.h
+FILE 5358 f:\sp\public\sdk\inc\winuser.h
+FILE 5359 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5360 f:\sp\public\sdk\inc\winnls.h
+FILE 5361 f:\sp\public\sdk\inc\guiddef.h
+FILE 5362 f:\sp\public\sdk\inc\windows.h
+FILE 5363 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5364 f:\sp\public\sdk\inc\specstrings.h
+FILE 5365 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5366 f:\sp\public\sdk\inc\basetsd.h
+FILE 5367 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5368 f:\sp\public\sdk\inc\stralign.h
+FILE 5369 f:\sp\public\sdk\inc\tvout.h
+FILE 5370 f:\sp\public\sdk\inc\winsvc.h
+FILE 5371 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5372 f:\sp\public\sdk\inc\wingdi.h
+FILE 5373 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5374 f:\sp\public\sdk\inc\poppack.h
+FILE 5375 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5376 f:\sp\public\sdk\inc\imm.h
+FILE 5377 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5378 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5379 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5380 f:\sp\public\sdk\inc\windef.h
+FILE 5381 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5382 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5383 f:\sp\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 5384 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5385 f:\sp\public\sdk\inc\winver.h
+FILE 5386 f:\sp\public\sdk\inc\winnt.h
+FILE 5387 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5388 f:\sp\public\sdk\inc\winreg.h
+FILE 5389 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5390 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5391 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5392 f:\sp\public\sdk\inc\winbase.h
+FILE 5393 f:\sp\public\sdk\inc\winerror.h
+FILE 5394 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5395 f:\sp\public\sdk\inc\reason.h
+FILE 5396 f:\sp\public\sdk\inc\wincon.h
+FILE 5397 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5398 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5399 f:\sp\public\sdk\inc\mcx.h
+FILE 5400 f:\sp\public\sdk\inc\winuser.h
+FILE 5401 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5402 f:\sp\public\sdk\inc\winnls.h
+FILE 5403 f:\sp\public\sdk\inc\guiddef.h
+FILE 5404 f:\sp\public\sdk\inc\windows.h
+FILE 5405 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5406 f:\sp\public\sdk\inc\specstrings.h
+FILE 5407 f:\sp\public\sdk\inc\basetsd.h
+FILE 5408 f:\sp\public\sdk\inc\stralign.h
+FILE 5409 f:\sp\public\sdk\inc\tvout.h
+FILE 5410 f:\sp\public\sdk\inc\winsvc.h
+FILE 5411 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5412 f:\sp\public\sdk\inc\wingdi.h
+FILE 5413 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5414 f:\sp\public\sdk\inc\poppack.h
+FILE 5415 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5416 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5417 f:\sp\public\sdk\inc\imm.h
+FILE 5418 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5419 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5420 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5421 f:\sp\public\sdk\inc\windef.h
+FILE 5422 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5423 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5424 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5425 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 5426 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5427 f:\sp\public\sdk\inc\winver.h
+FILE 5428 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5429 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5430 f:\sp\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 5431 f:\sp\public\sdk\inc\winnt.h
+FILE 5432 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5433 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5434 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5435 f:\sp\public\sdk\inc\winreg.h
+FILE 5436 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5437 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5438 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5439 f:\sp\public\sdk\inc\winbase.h
+FILE 5440 f:\sp\public\sdk\inc\winerror.h
+FILE 5441 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5442 f:\sp\public\sdk\inc\reason.h
+FILE 5443 f:\sp\public\sdk\inc\wincon.h
+FILE 5444 f:\sp\public\sdk\inc\winver.h
+FILE 5445 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 5446 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5447 f:\sp\public\sdk\inc\winnt.h
+FILE 5448 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5449 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5450 f:\sp\public\sdk\inc\winreg.h
+FILE 5451 f:\sp\public\sdk\inc\winbase.h
+FILE 5452 f:\sp\public\sdk\inc\winerror.h
+FILE 5453 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5454 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5455 f:\sp\public\sdk\inc\reason.h
+FILE 5456 f:\sp\public\sdk\inc\wincon.h
+FILE 5457 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5458 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5459 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5460 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5461 f:\sp\public\sdk\inc\mcx.h
+FILE 5462 f:\sp\public\sdk\inc\winuser.h
+FILE 5463 f:\sp\public\sdk\inc\winnls.h
+FILE 5464 f:\sp\public\sdk\inc\guiddef.h
+FILE 5465 f:\sp\public\sdk\inc\stralign.h
+FILE 5466 f:\sp\public\sdk\inc\specstrings.h
+FILE 5467 f:\sp\public\sdk\inc\basetsd.h
+FILE 5468 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5469 f:\sp\public\sdk\inc\windows.h
+FILE 5470 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5471 f:\sp\public\sdk\inc\tvout.h
+FILE 5472 f:\sp\public\sdk\inc\winsvc.h
+FILE 5473 f:\sp\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 5474 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5475 f:\sp\public\sdk\inc\wingdi.h
+FILE 5476 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5477 f:\sp\public\sdk\inc\poppack.h
+FILE 5478 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5479 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5480 f:\sp\public\sdk\inc\imm.h
+FILE 5481 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5482 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5483 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5484 f:\sp\public\sdk\inc\windef.h
+FILE 5485 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5486 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5487 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5488 f:\sp\public\sdk\inc\mcx.h
+FILE 5489 f:\sp\public\sdk\inc\winuser.h
+FILE 5490 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5491 f:\sp\public\sdk\inc\winnls.h
+FILE 5492 f:\sp\public\sdk\inc\guiddef.h
+FILE 5493 f:\sp\public\sdk\inc\windows.h
+FILE 5494 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5495 f:\sp\public\sdk\inc\specstrings.h
+FILE 5496 f:\sp\public\sdk\inc\basetsd.h
+FILE 5497 f:\sp\public\sdk\inc\stralign.h
+FILE 5498 f:\sp\public\sdk\inc\tvout.h
+FILE 5499 f:\sp\public\sdk\inc\winsvc.h
+FILE 5500 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5501 f:\sp\public\sdk\inc\wingdi.h
+FILE 5502 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5503 f:\sp\public\sdk\inc\poppack.h
+FILE 5504 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5505 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5506 f:\sp\public\sdk\inc\imm.h
+FILE 5507 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5508 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5509 f:\sp\public\sdk\inc\windef.h
+FILE 5510 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5511 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5512 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5513 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5514 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5515 f:\sp\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 5516 f:\sp\public\sdk\inc\winver.h
+FILE 5517 f:\sp\public\sdk\inc\winnt.h
+FILE 5518 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5519 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5520 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5521 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5522 f:\sp\public\sdk\inc\winreg.h
+FILE 5523 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5524 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5525 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5526 f:\sp\public\sdk\inc\winbase.h
+FILE 5527 f:\sp\public\sdk\inc\winerror.h
+FILE 5528 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5529 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5530 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5531 f:\sp\public\sdk\inc\reason.h
+FILE 5532 f:\sp\public\sdk\inc\wincon.h
+FILE 5533 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5534 f:\sp\public\sdk\inc\mcx.h
+FILE 5535 f:\sp\public\sdk\inc\winuser.h
+FILE 5536 f:\sp\public\sdk\inc\winnls.h
+FILE 5537 f:\sp\public\sdk\inc\guiddef.h
+FILE 5538 f:\sp\public\sdk\inc\windows.h
+FILE 5539 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5540 f:\sp\public\sdk\inc\specstrings.h
+FILE 5541 f:\sp\public\sdk\inc\basetsd.h
+FILE 5542 f:\sp\public\sdk\inc\stralign.h
+FILE 5543 f:\sp\public\sdk\inc\tvout.h
+FILE 5544 f:\sp\public\sdk\inc\winsvc.h
+FILE 5545 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5546 f:\sp\public\sdk\inc\wingdi.h
+FILE 5547 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5548 f:\sp\public\sdk\inc\poppack.h
+FILE 5549 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5550 f:\sp\public\sdk\inc\imm.h
+FILE 5551 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5552 f:\sp\public\sdk\inc\windef.h
+FILE 5553 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5554 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5555 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5556 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5557 f:\sp\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 5558 f:\sp\public\sdk\inc\winver.h
+FILE 5559 f:\sp\public\sdk\inc\winnt.h
+FILE 5560 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5561 f:\sp\public\sdk\inc\winreg.h
+FILE 5562 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5563 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5564 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5565 f:\sp\public\sdk\inc\winbase.h
+FILE 5566 f:\sp\public\sdk\inc\winerror.h
+FILE 5567 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5568 f:\sp\public\sdk\inc\reason.h
+FILE 5569 f:\sp\public\sdk\inc\wincon.h
+FILE 5570 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5571 f:\sp\public\sdk\inc\mcx.h
+FILE 5572 f:\sp\public\sdk\inc\winuser.h
+FILE 5573 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 5574 f:\sp\public\sdk\inc\winnls.h
+FILE 5575 f:\sp\public\sdk\inc\stralign.h
+FILE 5576 f:\sp\public\sdk\inc\tvout.h
+FILE 5577 f:\sp\public\sdk\inc\winsvc.h
+FILE 5578 f:\sp\public\sdk\inc\wingdi.h
+FILE 5579 f:\sp\public\sdk\inc\winnt.h
+FILE 5580 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5581 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 5582 f:\sp\public\sdk\inc\poppack.h
+FILE 5583 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 5584 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5585 f:\sp\public\sdk\inc\imm.h
+FILE 5586 f:\sp\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 5587 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 5588 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 5589 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 5590 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 5591 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5592 f:\sp\vctools\crt_bld\self_x86\crt\src\calloc.c
+FILE 5593 f:\sp\public\sdk\inc\winver.h
+FILE 5594 f:\sp\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 5595 f:\sp\public\sdk\inc\guiddef.h
+FILE 5596 f:\sp\public\sdk\inc\windows.h
+FILE 5597 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 5598 f:\sp\public\sdk\inc\specstrings.h
+FILE 5599 f:\sp\public\sdk\inc\basetsd.h
+FILE 5600 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 5601 f:\sp\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 5602 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 5603 f:\sp\public\sdk\inc\winreg.h
+FILE 5604 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5605 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 5606 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 5607 f:\sp\public\sdk\inc\winbase.h
+FILE 5608 f:\sp\public\sdk\inc\winerror.h
+FILE 5609 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5610 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 5611 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 5612 f:\sp\public\sdk\inc\reason.h
+FILE 5613 f:\sp\public\sdk\inc\wincon.h
+FILE 5614 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 5615 f:\sp\public\sdk\inc\windef.h
+FILE 5616 f:\sp\public\sdk\inc\wincon.h
+FILE 5617 f:\sp\public\sdk\inc\imm.h
+FILE 5618 f:\sp\public\sdk\inc\winbase.h
+FILE 5619 f:\sp\public\sdk\inc\wingdi.h
+FILE 5620 f:\sp\public\sdk\inc\winver.h
+FILE 5621 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5622 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5623 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5624 f:\sp\public\sdk\inc\reason.h
+FILE 5625 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5626 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\setjmp.h
+FILE 5627 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\i386\trnsctrl.cpp
+FILE 5628 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 5629 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5630 f:\sp\public\sdk\inc\specstrings.h
+FILE 5631 f:\sp\public\sdk\inc\basetsd.h
+FILE 5632 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5633 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5634 f:\sp\public\sdk\inc\stralign.h
+FILE 5635 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\trnsctrl.h
+FILE 5636 f:\sp\public\sdk\inc\poppack.h
+FILE 5637 f:\sp\public\sdk\inc\winsvc.h
+FILE 5638 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5639 f:\sp\public\sdk\inc\windef.h
+FILE 5640 f:\sp\public\sdk\inc\winuser.h
+FILE 5641 f:\sp\public\sdk\inc\windows.h
+FILE 5642 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5643 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5644 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5645 f:\sp\public\sdk\inc\mcx.h
+FILE 5646 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5647 f:\sp\public\sdk\inc\guiddef.h
+FILE 5648 f:\sp\public\sdk\inc\winnt.h
+FILE 5649 f:\sp\public\sdk\inc\winnls.h
+FILE 5650 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5651 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5652 f:\sp\public\sdk\inc\winerror.h
+FILE 5653 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5654 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5655 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5656 f:\sp\public\sdk\inc\winreg.h
+FILE 5657 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5658 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5659 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5660 f:\sp\public\sdk\inc\tvout.h
+FILE 5661 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5662 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5663 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5664 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5665 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\eh\i386\lowhelpr.asm
+FILE 5666 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\cruntime.inc
+FILE 5667 F:\SP\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 5668 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 5669 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5670 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5671 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\i386\ehprolg3.c
+FILE 5672 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5673 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5674 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5675 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5676 f:\sp\public\sdk\inc\wincon.h
+FILE 5677 f:\sp\public\sdk\inc\imm.h
+FILE 5678 f:\sp\public\sdk\inc\winbase.h
+FILE 5679 f:\sp\public\sdk\inc\wingdi.h
+FILE 5680 f:\sp\public\sdk\inc\winver.h
+FILE 5681 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5682 f:\sp\public\sdk\inc\reason.h
+FILE 5683 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\validate.cpp
+FILE 5684 f:\sp\public\sdk\inc\specstrings.h
+FILE 5685 f:\sp\public\sdk\inc\basetsd.h
+FILE 5686 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5687 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5688 f:\sp\public\sdk\inc\stralign.h
+FILE 5689 f:\sp\public\sdk\inc\poppack.h
+FILE 5690 f:\sp\public\sdk\inc\winsvc.h
+FILE 5691 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5692 f:\sp\public\sdk\inc\windef.h
+FILE 5693 f:\sp\public\sdk\inc\winuser.h
+FILE 5694 f:\sp\public\sdk\inc\windows.h
+FILE 5695 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5696 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5697 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5698 f:\sp\public\sdk\inc\mcx.h
+FILE 5699 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5700 f:\sp\public\sdk\inc\guiddef.h
+FILE 5701 f:\sp\public\sdk\inc\winnt.h
+FILE 5702 f:\sp\public\sdk\inc\winnls.h
+FILE 5703 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5704 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5705 f:\sp\public\sdk\inc\winerror.h
+FILE 5706 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5707 f:\sp\public\sdk\inc\winreg.h
+FILE 5708 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5709 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5710 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5711 f:\sp\public\sdk\inc\tvout.h
+FILE 5712 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5713 f:\sp\public\sdk\inc\wincon.h
+FILE 5714 f:\sp\public\sdk\inc\imm.h
+FILE 5715 f:\sp\public\sdk\inc\winbase.h
+FILE 5716 f:\sp\public\sdk\inc\wingdi.h
+FILE 5717 f:\sp\public\sdk\inc\winver.h
+FILE 5718 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5719 f:\sp\public\sdk\inc\reason.h
+FILE 5720 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 5721 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 5722 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5723 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5724 f:\sp\public\sdk\inc\specstrings.h
+FILE 5725 f:\sp\public\sdk\inc\basetsd.h
+FILE 5726 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5727 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5728 f:\sp\public\sdk\inc\stralign.h
+FILE 5729 f:\sp\public\sdk\inc\poppack.h
+FILE 5730 f:\sp\public\sdk\inc\winsvc.h
+FILE 5731 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5732 f:\sp\public\sdk\inc\windef.h
+FILE 5733 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5734 f:\sp\public\sdk\inc\winuser.h
+FILE 5735 f:\sp\public\sdk\inc\windows.h
+FILE 5736 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5737 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5738 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5739 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5740 f:\sp\public\sdk\inc\mcx.h
+FILE 5741 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5742 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5743 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5744 f:\sp\public\sdk\inc\guiddef.h
+FILE 5745 f:\sp\public\sdk\inc\winnt.h
+FILE 5746 f:\sp\public\sdk\inc\winnls.h
+FILE 5747 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5748 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5749 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5750 f:\sp\public\sdk\inc\winerror.h
+FILE 5751 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5752 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5753 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5754 f:\sp\public\sdk\inc\winreg.h
+FILE 5755 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5756 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5757 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5758 f:\sp\public\sdk\inc\tvout.h
+FILE 5759 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5760 f:\sp\public\sdk\inc\specstrings.h
+FILE 5761 f:\sp\public\sdk\inc\basetsd.h
+FILE 5762 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5763 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5764 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5765 f:\sp\public\sdk\inc\stralign.h
+FILE 5766 f:\sp\public\sdk\inc\poppack.h
+FILE 5767 f:\sp\public\sdk\inc\winsvc.h
+FILE 5768 f:\sp\public\sdk\inc\winuser.h
+FILE 5769 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5770 f:\sp\public\sdk\inc\windef.h
+FILE 5771 f:\sp\vctools\langapi\undname\undname.cxx
+FILE 5772 f:\sp\public\sdk\inc\mcx.h
+FILE 5773 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5774 f:\sp\public\sdk\inc\guiddef.h
+FILE 5775 f:\sp\vctools\langapi\undname\utf8.h
+FILE 5776 f:\sp\public\sdk\inc\winnls.h
+FILE 5777 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5778 f:\sp\public\sdk\inc\winnt.h
+FILE 5779 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5780 f:\sp\public\sdk\inc\winerror.h
+FILE 5781 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 5782 f:\sp\vctools\langapi\undname\undname.hxx
+FILE 5783 f:\sp\vctools\langapi\undname\undname.h
+FILE 5784 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5785 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5786 f:\sp\public\sdk\inc\winreg.h
+FILE 5787 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5788 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5789 f:\sp\public\sdk\inc\tvout.h
+FILE 5790 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 5791 f:\sp\public\sdk\inc\wincon.h
+FILE 5792 f:\sp\public\sdk\inc\imm.h
+FILE 5793 f:\sp\public\sdk\inc\winbase.h
+FILE 5794 f:\sp\public\sdk\inc\wingdi.h
+FILE 5795 f:\sp\public\sdk\inc\winver.h
+FILE 5796 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5797 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5798 f:\sp\public\sdk\inc\windows.h
+FILE 5799 f:\sp\public\sdk\inc\reason.h
+FILE 5800 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5801 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5802 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5803 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5804 f:\sp\vctools\langapi\undname\undname.inl
+FILE 5805 f:\sp\public\sdk\inc\guiddef.h
+FILE 5806 f:\sp\public\sdk\inc\winnt.h
+FILE 5807 f:\sp\public\sdk\inc\winnls.h
+FILE 5808 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5809 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5810 f:\sp\public\sdk\inc\winerror.h
+FILE 5811 f:\sp\public\sdk\inc\winreg.h
+FILE 5812 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5813 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5814 f:\sp\public\sdk\inc\tvout.h
+FILE 5815 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 5816 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5817 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5818 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5819 f:\sp\public\sdk\inc\wincon.h
+FILE 5820 f:\sp\public\sdk\inc\imm.h
+FILE 5821 f:\sp\public\sdk\inc\winbase.h
+FILE 5822 f:\sp\public\sdk\inc\wingdi.h
+FILE 5823 f:\sp\public\sdk\inc\winver.h
+FILE 5824 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5825 f:\sp\public\sdk\inc\windows.h
+FILE 5826 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5827 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5828 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5829 f:\sp\public\sdk\inc\reason.h
+FILE 5830 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 5831 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 5832 f:\sp\public\sdk\inc\specstrings.h
+FILE 5833 f:\sp\public\sdk\inc\basetsd.h
+FILE 5834 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5835 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 5836 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5837 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5838 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5839 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5840 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5841 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5842 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5843 f:\sp\vctools\langapi\undname\undname.h
+FILE 5844 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5845 f:\sp\public\sdk\inc\stralign.h
+FILE 5846 f:\sp\public\sdk\inc\poppack.h
+FILE 5847 f:\sp\public\sdk\inc\winsvc.h
+FILE 5848 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5849 f:\sp\public\sdk\inc\windef.h
+FILE 5850 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 5851 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5852 f:\sp\public\sdk\inc\winuser.h
+FILE 5853 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5854 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5855 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5856 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5857 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5858 f:\sp\public\sdk\inc\mcx.h
+FILE 5859 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5860 f:\sp\public\sdk\inc\winnls.h
+FILE 5861 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5862 f:\sp\public\sdk\inc\winnt.h
+FILE 5863 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5864 f:\sp\public\sdk\inc\winerror.h
+FILE 5865 f:\sp\public\sdk\inc\winreg.h
+FILE 5866 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5867 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5868 f:\sp\public\sdk\inc\tvout.h
+FILE 5869 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 5870 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 5871 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5872 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5873 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 5874 f:\sp\public\sdk\inc\wincon.h
+FILE 5875 f:\sp\public\sdk\inc\imm.h
+FILE 5876 f:\sp\public\sdk\inc\winbase.h
+FILE 5877 f:\sp\public\sdk\inc\wingdi.h
+FILE 5878 f:\sp\public\sdk\inc\winver.h
+FILE 5879 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5880 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5881 f:\sp\public\sdk\inc\reason.h
+FILE 5882 f:\sp\public\sdk\inc\windows.h
+FILE 5883 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5884 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5885 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5886 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5887 f:\sp\public\sdk\inc\specstrings.h
+FILE 5888 f:\sp\public\sdk\inc\basetsd.h
+FILE 5889 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5890 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5891 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5892 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5893 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5894 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5895 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5896 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5897 f:\sp\public\sdk\inc\stralign.h
+FILE 5898 f:\sp\public\sdk\inc\poppack.h
+FILE 5899 f:\sp\public\sdk\inc\winsvc.h
+FILE 5900 f:\sp\public\sdk\inc\winuser.h
+FILE 5901 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5902 f:\sp\public\sdk\inc\windef.h
+FILE 5903 f:\sp\vctools\langapi\undname\undname.h
+FILE 5904 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5905 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5906 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5907 f:\sp\public\sdk\inc\mcx.h
+FILE 5908 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5909 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5910 f:\sp\public\sdk\inc\guiddef.h
+FILE 5911 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5912 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 5913 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5914 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 5915 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 5916 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\stdexcpt.cpp
+FILE 5917 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 5918 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 5919 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5920 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5921 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5922 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5923 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 5924 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5925 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 5926 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5927 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5928 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5929 f:\sp\vctools\langapi\include\ehdata.h
+FILE 5930 f:\sp\public\sdk\inc\wincon.h
+FILE 5931 f:\sp\public\sdk\inc\imm.h
+FILE 5932 f:\sp\public\sdk\inc\winbase.h
+FILE 5933 f:\sp\public\sdk\inc\wingdi.h
+FILE 5934 f:\sp\public\sdk\inc\winver.h
+FILE 5935 f:\sp\public\sdk\inc\windows.h
+FILE 5936 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 5937 f:\sp\public\sdk\inc\pshpack2.h
+FILE 5938 f:\sp\public\sdk\inc\reason.h
+FILE 5939 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\throw.cpp
+FILE 5940 f:\sp\public\sdk\inc\specstrings.h
+FILE 5941 f:\sp\public\sdk\inc\basetsd.h
+FILE 5942 f:\sp\public\sdk\inc\pshpack4.h
+FILE 5943 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5944 f:\sp\public\sdk\inc\winnetwk.h
+FILE 5945 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5946 f:\sp\public\sdk\inc\stralign.h
+FILE 5947 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5948 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5949 f:\sp\public\sdk\inc\poppack.h
+FILE 5950 f:\sp\public\sdk\inc\winsvc.h
+FILE 5951 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5952 f:\sp\public\sdk\inc\windef.h
+FILE 5953 f:\sp\public\sdk\inc\winuser.h
+FILE 5954 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 5955 f:\sp\public\sdk\inc\mcx.h
+FILE 5956 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 5957 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5958 f:\sp\public\sdk\inc\guiddef.h
+FILE 5959 f:\sp\public\sdk\inc\winnt.h
+FILE 5960 f:\sp\public\sdk\inc\winnls.h
+FILE 5961 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5962 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5963 f:\sp\public\sdk\inc\winerror.h
+FILE 5964 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5965 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5966 f:\sp\public\sdk\inc\ddbanned.h
+FILE 5967 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 5968 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 5969 f:\sp\public\sdk\inc\winreg.h
+FILE 5970 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5971 f:\sp\public\sdk\inc\tvout.h
+FILE 5972 f:\sp\public\sdk\inc\poppack.h
+FILE 5973 f:\sp\public\sdk\inc\winsvc.h
+FILE 5974 f:\sp\public\sdk\inc\windows.h
+FILE 5975 f:\sp\public\sdk\inc\winuser.h
+FILE 5976 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 5977 f:\sp\public\sdk\inc\windef.h
+FILE 5978 f:\sp\public\sdk\inc\mcx.h
+FILE 5979 f:\sp\public\sdk\inc\pshpack8.h
+FILE 5980 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 5981 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 5982 f:\sp\public\sdk\inc\guiddef.h
+FILE 5983 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 5984 f:\sp\public\sdk\inc\winnls.h
+FILE 5985 f:\sp\public\sdk\inc\pshpack1.h
+FILE 5986 f:\sp\public\sdk\inc\winnt.h
+FILE 5987 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 5988 f:\sp\public\sdk\inc\winerror.h
+FILE 5989 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 5990 f:\sp\public\sdk\inc\winreg.h
+FILE 5991 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 5992 f:\sp\public\sdk\inc\tvout.h
+FILE 5993 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 5994 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 5995 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 5996 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 5997 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 5998 f:\sp\public\sdk\inc\wincon.h
+FILE 5999 f:\sp\public\sdk\inc\imm.h
+FILE 6000 f:\sp\public\sdk\inc\winbase.h
+FILE 6001 f:\sp\public\sdk\inc\wingdi.h
+FILE 6002 f:\sp\public\sdk\inc\winver.h
+FILE 6003 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 6004 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6005 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 6006 f:\sp\public\sdk\inc\reason.h
+FILE 6007 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 6008 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 6009 f:\sp\public\sdk\inc\specstrings.h
+FILE 6010 f:\sp\public\sdk\inc\basetsd.h
+FILE 6011 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6012 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6013 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 6014 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 6015 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6016 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 6017 f:\sp\public\sdk\inc\stralign.h
+FILE 6018 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 6019 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 6020 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 6021 f:\sp\public\sdk\inc\wincon.h
+FILE 6022 f:\sp\public\sdk\inc\imm.h
+FILE 6023 f:\sp\public\sdk\inc\guiddef.h
+FILE 6024 f:\sp\public\sdk\inc\winbase.h
+FILE 6025 f:\sp\public\sdk\inc\wingdi.h
+FILE 6026 f:\sp\vctools\langapi\include\ehdata.h
+FILE 6027 f:\sp\public\sdk\inc\winver.h
+FILE 6028 f:\sp\public\sdk\inc\winnt.h
+FILE 6029 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 6030 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 6031 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6032 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 6033 f:\sp\public\sdk\inc\reason.h
+FILE 6034 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\eh\frame.cpp
+FILE 6035 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 6036 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 6037 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 6038 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 6039 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 6040 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 6041 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6042 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6043 f:\sp\public\sdk\inc\stralign.h
+FILE 6044 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 6045 f:\sp\public\sdk\inc\poppack.h
+FILE 6046 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 6047 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 6048 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 6049 f:\sp\public\sdk\inc\winsvc.h
+FILE 6050 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehstate.h
+FILE 6051 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 6052 f:\sp\public\sdk\inc\winuser.h
+FILE 6053 f:\sp\public\sdk\inc\windows.h
+FILE 6054 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 6055 f:\sp\public\sdk\inc\mcx.h
+FILE 6056 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6057 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 6058 f:\sp\public\sdk\inc\specstrings.h
+FILE 6059 f:\sp\public\sdk\inc\basetsd.h
+FILE 6060 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 6061 f:\sp\public\sdk\inc\winnls.h
+FILE 6062 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6063 f:\sp\public\sdk\inc\winerror.h
+FILE 6064 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\trnsctrl.h
+FILE 6065 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 6066 f:\sp\public\sdk\inc\winreg.h
+FILE 6067 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6068 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 6069 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 6070 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 6071 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 6072 f:\sp\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 6073 f:\sp\public\sdk\inc\windef.h
+FILE 6074 f:\sp\public\sdk\inc\tvout.h
+FILE 6075 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6076 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6077 f:\sp\public\sdk\inc\reason.h
+FILE 6078 f:\sp\public\sdk\inc\wincon.h
+FILE 6079 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6080 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6081 f:\sp\public\sdk\inc\poppack.h
+FILE 6082 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6083 f:\sp\public\sdk\inc\mcx.h
+FILE 6084 f:\sp\public\sdk\inc\winuser.h
+FILE 6085 f:\sp\public\sdk\inc\winnls.h
+FILE 6086 f:\sp\public\sdk\inc\stralign.h
+FILE 6087 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6088 f:\sp\public\sdk\inc\windef.h
+FILE 6089 f:\sp\public\sdk\inc\tvout.h
+FILE 6090 f:\sp\public\sdk\inc\winsvc.h
+FILE 6091 f:\sp\public\sdk\inc\wingdi.h
+FILE 6092 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6093 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6094 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6095 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6096 f:\sp\public\sdk\inc\winnt.h
+FILE 6097 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6098 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6099 f:\sp\public\sdk\inc\imm.h
+FILE 6100 f:\sp\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 6101 f:\sp\public\sdk\inc\winbase.h
+FILE 6102 f:\sp\public\sdk\inc\winerror.h
+FILE 6103 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6104 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6105 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6106 f:\sp\public\sdk\inc\winver.h
+FILE 6107 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6108 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6109 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6110 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6111 f:\sp\public\sdk\inc\winreg.h
+FILE 6112 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6113 f:\sp\public\sdk\inc\guiddef.h
+FILE 6114 f:\sp\public\sdk\inc\windows.h
+FILE 6115 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6116 f:\sp\public\sdk\inc\specstrings.h
+FILE 6117 f:\sp\public\sdk\inc\basetsd.h
+FILE 6118 f:\sp\public\sdk\inc\winver.h
+FILE 6119 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6120 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6121 f:\sp\public\sdk\inc\windows.h
+FILE 6122 f:\sp\public\sdk\inc\reason.h
+FILE 6123 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6124 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6125 f:\sp\public\sdk\inc\specstrings.h
+FILE 6126 f:\sp\public\sdk\inc\basetsd.h
+FILE 6127 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6128 f:\sp\vctools\crt_bld\self_x86\crt\src\wctomb.c
+FILE 6129 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6130 f:\sp\public\sdk\inc\stralign.h
+FILE 6131 f:\sp\public\sdk\inc\poppack.h
+FILE 6132 f:\sp\public\sdk\inc\winsvc.h
+FILE 6133 f:\sp\public\sdk\inc\winuser.h
+FILE 6134 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6135 f:\sp\public\sdk\inc\windef.h
+FILE 6136 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6137 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6138 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6139 f:\sp\public\sdk\inc\mcx.h
+FILE 6140 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6141 f:\sp\public\sdk\inc\guiddef.h
+FILE 6142 f:\sp\public\sdk\inc\winnls.h
+FILE 6143 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6144 f:\sp\public\sdk\inc\winnt.h
+FILE 6145 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6146 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6147 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6148 f:\sp\public\sdk\inc\winerror.h
+FILE 6149 f:\sp\public\sdk\inc\winreg.h
+FILE 6150 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6151 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6152 f:\sp\public\sdk\inc\tvout.h
+FILE 6153 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6154 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6155 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6156 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6157 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6158 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6159 f:\sp\public\sdk\inc\wincon.h
+FILE 6160 f:\sp\public\sdk\inc\imm.h
+FILE 6161 f:\sp\public\sdk\inc\winbase.h
+FILE 6162 f:\sp\public\sdk\inc\wingdi.h
+FILE 6163 f:\sp\public\sdk\inc\winsvc.h
+FILE 6164 f:\sp\public\sdk\inc\winuser.h
+FILE 6165 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6166 f:\sp\public\sdk\inc\mcx.h
+FILE 6167 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6168 f:\sp\public\sdk\inc\guiddef.h
+FILE 6169 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6170 f:\sp\public\sdk\inc\windows.h
+FILE 6171 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6172 f:\sp\public\sdk\inc\winnls.h
+FILE 6173 f:\sp\vctools\crt_bld\self_x86\crt\src\wcstol.c
+FILE 6174 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6175 f:\sp\public\sdk\inc\winerror.h
+FILE 6176 f:\sp\public\sdk\inc\winreg.h
+FILE 6177 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6178 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6179 f:\sp\public\sdk\inc\tvout.h
+FILE 6180 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6181 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6182 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6183 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6184 f:\sp\public\sdk\inc\wincon.h
+FILE 6185 f:\sp\public\sdk\inc\imm.h
+FILE 6186 f:\sp\public\sdk\inc\winbase.h
+FILE 6187 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6188 f:\sp\public\sdk\inc\wingdi.h
+FILE 6189 f:\sp\public\sdk\inc\windef.h
+FILE 6190 f:\sp\public\sdk\inc\winver.h
+FILE 6191 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6192 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6193 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6194 f:\sp\public\sdk\inc\reason.h
+FILE 6195 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6196 f:\sp\public\sdk\inc\winnt.h
+FILE 6197 f:\sp\public\sdk\inc\specstrings.h
+FILE 6198 f:\sp\public\sdk\inc\basetsd.h
+FILE 6199 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6200 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6201 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6202 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6203 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6204 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6205 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6206 f:\sp\public\sdk\inc\stralign.h
+FILE 6207 f:\sp\public\sdk\inc\poppack.h
+FILE 6208 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6209 f:\sp\public\sdk\inc\mcx.h
+FILE 6210 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6211 f:\sp\public\sdk\inc\guiddef.h
+FILE 6212 f:\sp\public\sdk\inc\winnt.h
+FILE 6213 f:\sp\public\sdk\inc\winnls.h
+FILE 6214 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6215 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6216 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6217 f:\sp\public\sdk\inc\winerror.h
+FILE 6218 f:\sp\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 6219 f:\sp\public\sdk\inc\winreg.h
+FILE 6220 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6221 f:\sp\public\sdk\inc\tvout.h
+FILE 6222 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6223 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6224 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6225 f:\sp\public\sdk\inc\wincon.h
+FILE 6226 f:\sp\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 6227 f:\sp\public\sdk\inc\imm.h
+FILE 6228 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6229 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6230 f:\sp\public\sdk\inc\winbase.h
+FILE 6231 f:\sp\public\sdk\inc\wingdi.h
+FILE 6232 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6233 f:\sp\public\sdk\inc\winver.h
+FILE 6234 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6235 f:\sp\public\sdk\inc\windows.h
+FILE 6236 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6237 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6238 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6239 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6240 f:\sp\public\sdk\inc\reason.h
+FILE 6241 f:\sp\public\sdk\inc\specstrings.h
+FILE 6242 f:\sp\public\sdk\inc\basetsd.h
+FILE 6243 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6244 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6245 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6246 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6247 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6248 f:\sp\public\sdk\inc\stralign.h
+FILE 6249 f:\sp\public\sdk\inc\poppack.h
+FILE 6250 f:\sp\public\sdk\inc\winsvc.h
+FILE 6251 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6252 f:\sp\public\sdk\inc\windef.h
+FILE 6253 f:\sp\public\sdk\inc\winuser.h
+FILE 6254 f:\sp\public\sdk\inc\winsvc.h
+FILE 6255 f:\sp\public\sdk\inc\winuser.h
+FILE 6256 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6257 f:\sp\public\sdk\inc\mcx.h
+FILE 6258 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6259 f:\sp\public\sdk\inc\guiddef.h
+FILE 6260 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6261 f:\sp\public\sdk\inc\windows.h
+FILE 6262 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6263 f:\sp\public\sdk\inc\winnls.h
+FILE 6264 f:\sp\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 6265 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6266 f:\sp\public\sdk\inc\winerror.h
+FILE 6267 f:\sp\public\sdk\inc\winreg.h
+FILE 6268 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6269 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6270 f:\sp\public\sdk\inc\tvout.h
+FILE 6271 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6272 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6273 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6274 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6275 f:\sp\public\sdk\inc\wincon.h
+FILE 6276 f:\sp\public\sdk\inc\imm.h
+FILE 6277 f:\sp\public\sdk\inc\winbase.h
+FILE 6278 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6279 f:\sp\public\sdk\inc\wingdi.h
+FILE 6280 f:\sp\public\sdk\inc\windef.h
+FILE 6281 f:\sp\public\sdk\inc\winver.h
+FILE 6282 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6283 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6284 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6285 f:\sp\public\sdk\inc\reason.h
+FILE 6286 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6287 f:\sp\public\sdk\inc\winnt.h
+FILE 6288 f:\sp\public\sdk\inc\specstrings.h
+FILE 6289 f:\sp\public\sdk\inc\basetsd.h
+FILE 6290 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6291 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6292 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6293 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6294 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6295 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6296 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6297 f:\sp\public\sdk\inc\stralign.h
+FILE 6298 f:\sp\public\sdk\inc\poppack.h
+FILE 6299 f:\sp\public\sdk\inc\winsvc.h
+FILE 6300 f:\sp\public\sdk\inc\winuser.h
+FILE 6301 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6302 f:\sp\public\sdk\inc\mcx.h
+FILE 6303 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6304 f:\sp\public\sdk\inc\guiddef.h
+FILE 6305 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6306 f:\sp\public\sdk\inc\windows.h
+FILE 6307 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6308 f:\sp\public\sdk\inc\winnls.h
+FILE 6309 f:\sp\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 6310 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6311 f:\sp\public\sdk\inc\winerror.h
+FILE 6312 f:\sp\public\sdk\inc\winreg.h
+FILE 6313 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6314 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6315 f:\sp\public\sdk\inc\tvout.h
+FILE 6316 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6317 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6318 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6319 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6320 f:\sp\public\sdk\inc\wincon.h
+FILE 6321 f:\sp\public\sdk\inc\imm.h
+FILE 6322 f:\sp\public\sdk\inc\winbase.h
+FILE 6323 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6324 f:\sp\public\sdk\inc\wingdi.h
+FILE 6325 f:\sp\public\sdk\inc\windef.h
+FILE 6326 f:\sp\public\sdk\inc\winver.h
+FILE 6327 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6328 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6329 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6330 f:\sp\public\sdk\inc\reason.h
+FILE 6331 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6332 f:\sp\public\sdk\inc\winnt.h
+FILE 6333 f:\sp\public\sdk\inc\specstrings.h
+FILE 6334 f:\sp\public\sdk\inc\basetsd.h
+FILE 6335 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6336 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6337 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6338 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6339 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6340 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6341 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6342 f:\sp\public\sdk\inc\stralign.h
+FILE 6343 f:\sp\public\sdk\inc\poppack.h
+FILE 6344 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6345 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6346 f:\sp\public\sdk\inc\tvout.h
+FILE 6347 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6348 f:\sp\public\sdk\inc\wincon.h
+FILE 6349 f:\sp\public\sdk\inc\imm.h
+FILE 6350 f:\sp\public\sdk\inc\winbase.h
+FILE 6351 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6352 f:\sp\public\sdk\inc\wingdi.h
+FILE 6353 f:\sp\public\sdk\inc\windef.h
+FILE 6354 f:\sp\public\sdk\inc\winver.h
+FILE 6355 f:\sp\vctools\crt_bld\self_x86\crt\src\mbtowc.c
+FILE 6356 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6357 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6358 f:\sp\public\sdk\inc\reason.h
+FILE 6359 f:\sp\public\sdk\inc\winnt.h
+FILE 6360 f:\sp\public\sdk\inc\specstrings.h
+FILE 6361 f:\sp\public\sdk\inc\basetsd.h
+FILE 6362 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6363 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6364 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6365 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6366 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6367 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6368 f:\sp\public\sdk\inc\stralign.h
+FILE 6369 f:\sp\public\sdk\inc\poppack.h
+FILE 6370 f:\sp\public\sdk\inc\winsvc.h
+FILE 6371 f:\sp\public\sdk\inc\winuser.h
+FILE 6372 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6373 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 6374 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6375 f:\sp\public\sdk\inc\mcx.h
+FILE 6376 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6377 f:\sp\public\sdk\inc\guiddef.h
+FILE 6378 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6379 f:\sp\public\sdk\inc\windows.h
+FILE 6380 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6381 f:\sp\public\sdk\inc\winnls.h
+FILE 6382 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6383 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6384 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6385 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6386 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6387 f:\sp\public\sdk\inc\winerror.h
+FILE 6388 f:\sp\public\sdk\inc\winreg.h
+FILE 6389 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6390 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6391 f:\sp\public\sdk\inc\winreg.h
+FILE 6392 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6393 f:\sp\public\sdk\inc\tvout.h
+FILE 6394 f:\sp\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 6395 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6396 f:\sp\public\sdk\inc\wincon.h
+FILE 6397 f:\sp\public\sdk\inc\imm.h
+FILE 6398 f:\sp\public\sdk\inc\winbase.h
+FILE 6399 f:\sp\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 6400 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6401 f:\sp\public\sdk\inc\wingdi.h
+FILE 6402 f:\sp\public\sdk\inc\windef.h
+FILE 6403 f:\sp\public\sdk\inc\winver.h
+FILE 6404 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6405 f:\sp\public\sdk\inc\reason.h
+FILE 6406 f:\sp\public\sdk\inc\winnt.h
+FILE 6407 f:\sp\public\sdk\inc\specstrings.h
+FILE 6408 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6409 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 6410 f:\sp\public\sdk\inc\basetsd.h
+FILE 6411 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6412 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6413 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6414 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6415 f:\sp\public\sdk\inc\stralign.h
+FILE 6416 f:\sp\public\sdk\inc\poppack.h
+FILE 6417 f:\sp\public\sdk\inc\winsvc.h
+FILE 6418 f:\sp\public\sdk\inc\winuser.h
+FILE 6419 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6420 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6421 f:\sp\public\sdk\inc\mcx.h
+FILE 6422 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6423 f:\sp\public\sdk\inc\guiddef.h
+FILE 6424 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6425 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6426 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6427 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6428 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6429 f:\sp\public\sdk\inc\windows.h
+FILE 6430 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6431 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6432 f:\sp\public\sdk\inc\winnls.h
+FILE 6433 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6434 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6435 f:\sp\public\sdk\inc\winerror.h
+FILE 6436 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6437 f:\sp\public\sdk\inc\winreg.h
+FILE 6438 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6439 f:\sp\public\sdk\inc\tvout.h
+FILE 6440 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6441 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6442 f:\sp\public\sdk\inc\wincon.h
+FILE 6443 f:\sp\public\sdk\inc\imm.h
+FILE 6444 f:\sp\public\sdk\inc\winbase.h
+FILE 6445 f:\sp\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 6446 f:\sp\public\sdk\inc\wingdi.h
+FILE 6447 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6448 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6449 f:\sp\public\sdk\inc\winver.h
+FILE 6450 f:\sp\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 6451 f:\sp\public\sdk\inc\windows.h
+FILE 6452 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6453 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6454 f:\sp\public\sdk\inc\reason.h
+FILE 6455 f:\sp\public\sdk\inc\specstrings.h
+FILE 6456 f:\sp\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 6457 f:\sp\public\sdk\inc\basetsd.h
+FILE 6458 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6459 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6460 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6461 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6462 f:\sp\public\sdk\inc\stralign.h
+FILE 6463 f:\sp\public\sdk\inc\poppack.h
+FILE 6464 f:\sp\public\sdk\inc\winsvc.h
+FILE 6465 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6466 f:\sp\public\sdk\inc\windef.h
+FILE 6467 f:\sp\public\sdk\inc\winuser.h
+FILE 6468 f:\sp\public\sdk\inc\mcx.h
+FILE 6469 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6470 f:\sp\public\sdk\inc\guiddef.h
+FILE 6471 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6472 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6473 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6474 f:\sp\public\sdk\inc\winnt.h
+FILE 6475 f:\sp\public\sdk\inc\winnls.h
+FILE 6476 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6477 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6478 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6479 f:\sp\public\sdk\inc\winerror.h
+FILE 6480 f:\sp\public\sdk\inc\winsvc.h
+FILE 6481 f:\sp\public\sdk\inc\winuser.h
+FILE 6482 f:\sp\public\sdk\inc\mcx.h
+FILE 6483 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6484 f:\sp\public\sdk\inc\guiddef.h
+FILE 6485 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6486 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6487 f:\sp\public\sdk\inc\windows.h
+FILE 6488 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6489 f:\sp\public\sdk\inc\winnls.h
+FILE 6490 f:\sp\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 6491 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6492 f:\sp\public\sdk\inc\winerror.h
+FILE 6493 f:\sp\public\sdk\inc\winreg.h
+FILE 6494 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6495 f:\sp\public\sdk\inc\tvout.h
+FILE 6496 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6497 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6498 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6499 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6500 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6501 f:\sp\public\sdk\inc\wincon.h
+FILE 6502 f:\sp\public\sdk\inc\imm.h
+FILE 6503 f:\sp\public\sdk\inc\winbase.h
+FILE 6504 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6505 f:\sp\public\sdk\inc\wingdi.h
+FILE 6506 f:\sp\public\sdk\inc\windef.h
+FILE 6507 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 6508 f:\sp\public\sdk\inc\winver.h
+FILE 6509 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6510 f:\sp\public\sdk\inc\reason.h
+FILE 6511 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6512 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6513 f:\sp\public\sdk\inc\winnt.h
+FILE 6514 f:\sp\public\sdk\inc\specstrings.h
+FILE 6515 f:\sp\public\sdk\inc\basetsd.h
+FILE 6516 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6517 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6518 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6519 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6520 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6521 f:\sp\public\sdk\inc\stralign.h
+FILE 6522 f:\sp\public\sdk\inc\poppack.h
+FILE 6523 f:\sp\public\sdk\inc\mcx.h
+FILE 6524 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6525 f:\sp\public\sdk\inc\guiddef.h
+FILE 6526 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6527 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6528 f:\sp\public\sdk\inc\windows.h
+FILE 6529 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6530 f:\sp\public\sdk\inc\winnls.h
+FILE 6531 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6532 f:\sp\public\sdk\inc\winerror.h
+FILE 6533 f:\sp\public\sdk\inc\winreg.h
+FILE 6534 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6535 f:\sp\vctools\crt_bld\self_x86\crt\src\_ctype.c
+FILE 6536 f:\sp\public\sdk\inc\tvout.h
+FILE 6537 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6538 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6539 f:\sp\public\sdk\inc\wincon.h
+FILE 6540 f:\sp\public\sdk\inc\imm.h
+FILE 6541 f:\sp\public\sdk\inc\winbase.h
+FILE 6542 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6543 f:\sp\public\sdk\inc\wingdi.h
+FILE 6544 f:\sp\public\sdk\inc\windef.h
+FILE 6545 f:\sp\public\sdk\inc\winver.h
+FILE 6546 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6547 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6548 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6549 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6550 f:\sp\public\sdk\inc\reason.h
+FILE 6551 f:\sp\public\sdk\inc\winnt.h
+FILE 6552 f:\sp\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 6553 f:\sp\public\sdk\inc\specstrings.h
+FILE 6554 f:\sp\public\sdk\inc\basetsd.h
+FILE 6555 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6556 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6557 f:\sp\public\sdk\inc\stralign.h
+FILE 6558 f:\sp\public\sdk\inc\poppack.h
+FILE 6559 f:\sp\public\sdk\inc\winsvc.h
+FILE 6560 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6561 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6562 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6563 f:\sp\public\sdk\inc\winuser.h
+FILE 6564 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6565 f:\sp\public\sdk\inc\mcx.h
+FILE 6566 f:\sp\public\sdk\inc\winuser.h
+FILE 6567 f:\sp\public\sdk\inc\winnls.h
+FILE 6568 f:\sp\public\sdk\inc\stralign.h
+FILE 6569 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6570 f:\sp\public\sdk\inc\windef.h
+FILE 6571 f:\sp\public\sdk\inc\tvout.h
+FILE 6572 f:\sp\public\sdk\inc\winsvc.h
+FILE 6573 f:\sp\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 6574 f:\sp\public\sdk\inc\wingdi.h
+FILE 6575 f:\sp\public\sdk\inc\pshpack4.h
+FILE 6576 f:\sp\public\sdk\inc\poppack.h
+FILE 6577 f:\sp\public\sdk\inc\winnt.h
+FILE 6578 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6579 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6580 f:\sp\public\sdk\inc\imm.h
+FILE 6581 f:\sp\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 6582 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6583 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 6584 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6585 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6586 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 6587 f:\sp\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 6588 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6589 f:\sp\public\sdk\inc\winver.h
+FILE 6590 f:\sp\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 6591 f:\sp\public\sdk\inc\guiddef.h
+FILE 6592 f:\sp\public\sdk\inc\specstrings.h
+FILE 6593 f:\sp\public\sdk\inc\basetsd.h
+FILE 6594 f:\sp\public\sdk\inc\winreg.h
+FILE 6595 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6596 f:\sp\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 6597 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6598 f:\sp\public\sdk\inc\windows.h
+FILE 6599 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6600 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6601 f:\sp\public\sdk\inc\winbase.h
+FILE 6602 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6603 f:\sp\public\sdk\inc\winerror.h
+FILE 6604 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6605 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 6606 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6607 f:\sp\public\sdk\inc\reason.h
+FILE 6608 f:\sp\public\sdk\inc\wincon.h
+FILE 6609 f:\sp\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 6610 f:\sp\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 6611 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6612 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6613 f:\sp\vctools\crt_bld\self_x86\crt\src\wchtodig.c
+FILE 6614 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6615 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6616 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6617 f:\sp\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 6618 f:\sp\public\sdk\inc\poppack.h
+FILE 6619 f:\sp\public\sdk\inc\winnetwk.h
+FILE 6620 f:\sp\public\sdk\inc\imm.h
+FILE 6621 f:\sp\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 6622 f:\sp\public\sdk\inc\windef.h
+FILE 6623 f:\sp\public\sdk\inc\pshpack1.h
+FILE 6624 f:\sp\public\sdk\inc\winver.h
+FILE 6625 f:\sp\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 6626 f:\sp\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 6627 f:\sp\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 6628 f:\sp\public\sdk\inc\winnt.h
+FILE 6629 f:\sp\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 6630 f:\sp\public\sdk\inc\winreg.h
+FILE 6631 f:\sp\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 6632 f:\sp\public\sdk\inc\winbase.h
+FILE 6633 f:\sp\public\sdk\inc\winerror.h
+FILE 6634 f:\sp\public\sdk\inc\pshpack8.h
+FILE 6635 f:\sp\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 6636 f:\sp\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 6637 f:\sp\public\sdk\inc\reason.h
+FILE 6638 f:\sp\public\sdk\inc\wincon.h
+FILE 6639 f:\sp\public\sdk\inc\ddbanned.h
+FILE 6640 f:\sp\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 6641 f:\sp\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 6642 f:\sp\public\sdk\inc\pshpack2.h
+FILE 6643 f:\sp\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 6644 f:\sp\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 6645 f:\sp\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 6646 f:\sp\public\sdk\inc\mcx.h
+FILE 6647 f:\sp\public\sdk\inc\winuser.h
+FILE 6648 f:\sp\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 6649 f:\sp\public\sdk\inc\winnls.h
+FILE 6650 f:\sp\public\sdk\inc\guiddef.h
+FILE 6651 f:\sp\public\sdk\inc\windows.h
+FILE 6652 f:\sp\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 6653 f:\sp\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 6654 f:\sp\public\sdk\inc\specstrings.h
+FILE 6655 f:\sp\public\sdk\inc\basetsd.h
+FILE 6656 f:\sp\public\sdk\inc\stralign.h
+FILE 6657 f:\sp\public\sdk\inc\tvout.h
+FILE 6658 f:\sp\public\sdk\inc\winsvc.h
+FILE 6659 f:\sp\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 6660 f:\sp\public\sdk\inc\wingdi.h
+FILE 6661 f:\sp\public\sdk\inc\pshpack4.h
+FUNC 1000 13 4 vswprintf
+1000 0 50 71
+1000 12 51 71
+1012 1 52 71
+FUNC 1020 1b 10 wmemcpy_s
+1020 0 1230 66
+1020 1b 1233 66
+FUNC 1040 1b 10 wmemmove_s
+1040 0 1250 66
+1040 1b 1253 66
+FUNC 1060 19 4 std::bad_alloc::bad_alloc(char const *)
+1060 13 371 83
+1073 6 372 83
+FUNC 1080 b 0 std::bad_alloc::~bad_alloc()
+1080 6 380 83
+1086 5 381 83
+FUNC 1090 24 0 std::bad_alloc::`vector deleting destructor'(unsigned int)
+FUNC 10c0 f 8 std::char_traits<wchar_t>::assign(wchar_t &,wchar_t const &)
+10c0 0 302 70
+10c0 e 303 70
+10ce 1 304 70
+FUNC 10d0 17 4 std::char_traits<wchar_t>::length(wchar_t const *)
+10d0 0 325 70
+10d0 16 327 70
+10e6 1 328 70
+FUNC 10f0 27 10 std::char_traits<wchar_t>::_Copy_s(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+10f0 0 340 70
+10f0 23 343 70
+1113 3 344 70
+1116 1 345 70
+FUNC 1120 27 10 std::char_traits<wchar_t>::_Move_s(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+1120 0 364 70
+1120 23 367 70
+1143 3 368 70
+1146 1 369 70
+FUNC 1150 d 8 std::char_traits<char>::assign(char &,char const &)
+1150 0 417 70
+1150 c 418 70
+115c 1 419 70
+FUNC 1160 13 4 std::char_traits<char>::length(char const *)
+1160 0 440 70
+1160 12 442 70
+1172 1 443 70
+FUNC 1180 21 10 std::char_traits<char>::_Copy_s(char *,unsigned int,char const *,unsigned int)
+1180 0 455 70
+1180 1d 458 70
+119d 3 459 70
+11a0 1 460 70
+FUNC 11b0 21 10 std::char_traits<char>::_Move_s(char *,unsigned int,char const *,unsigned int)
+11b0 0 479 70
+11b0 1d 482 70
+11cd 3 483 70
+11d0 1 484 70
+FUNC 11e0 7 0 std::_Iterator_base::_Iterator_base()
+11e0 6 441 65
+11e6 1 442 65
+FUNC 11f0 6b 4 std::logic_error::logic_error(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+11f0 56 27 82
+1246 15 28 82
+FUNC 1260 32 0 std::logic_error::~logic_error()
+1260 9 31 82
+1269 29 32 82
+FUNC 12a0 e 0 std::logic_error::what()
+12a0 0 35 82
+12a0 9 36 82
+12a9 1 37 82
+12aa 3 36 82
+12ad 1 37 82
+FUNC 12b0 47 0 std::logic_error::`scalar deleting destructor'(unsigned int)
+FUNC 1300 19 4 std::length_error::length_error(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+1300 13 106 82
+1313 6 107 82
+FUNC 1320 32 0 std::length_error::~length_error()
+1320 3 110 82
+1323 2f 111 82
+FUNC 1360 47 0 std::length_error::`vector deleting destructor'(unsigned int)
+FUNC 13b0 19 4 std::out_of_range::out_of_range(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+13b0 13 130 82
+13c3 6 131 82
+FUNC 13d0 32 0 std::out_of_range::~out_of_range()
+13d0 3 134 82
+13d3 2f 135 82
+FUNC 1410 47 0 std::out_of_range::`vector deleting destructor'(unsigned int)
+FUNC 1460 19 4 std::out_of_range::out_of_range(std::out_of_range const &)
+FUNC 1480 71 4 std::logic_error::logic_error(std::logic_error const &)
+FUNC 1500 1b 8 google_breakpad::WindowsStringUtils::safe_swprintf(wchar_t *,unsigned int,wchar_t const *,...)
+1500 0 94 63
+1500 1a 97 63
+151a 1 105 63
+FUNC 1520 35 0 google_breakpad::ExceptionHandler::set_dump_path(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+1520 4 137 43
+1524 f 138 43
+1533 c 139 43
+153f 7 140 43
+1546 1 141 43
+1547 6 139 43
+154d 7 140 43
+1554 1 141 43
+FUNC 1560 20b 14 google_breakpad::ExceptionHandler::ExceptionHandler(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,bool (*)(void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *),bool (*)(wchar_t const *,wchar_t const *,void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *,bool),void *,bool)
+1560 6d 75 12
+15cd 90 78 12
+165d 9 86 12
+1666 d 87 12
+1673 d 88 12
+1680 1e 96 12
+169e 11 98 12
+16af 7 99 12
+16b6 f 101 12
+16c5 a 104 12
+16cf 8 105 12
+16d7 7 106 12
+16de 7 107 12
+16e5 b 110 12
+16f0 8 114 12
+16f8 25 115 12
+171d d 117 12
+172a b 118 12
+1735 10 121 12
+1745 e 124 12
+1753 18 126 12
+FUNC 1770 274 0 google_breakpad::ExceptionHandler::~ExceptionHandler()
+1770 e 128 12
+177e a 129 12
+1788 7 130 12
+178f a 133 12
+1799 b 134 12
+17a4 a 136 12
+17ae 9 139 12
+17b7 63 142 12
+181a 23 143 12
+183d 5 144 12
+1842 13 147 12
+1855 2b 149 12
+1880 2a 151 12
+18aa 17 152 12
+18c1 2c 153 12
+18ed 19 151 12
+1906 11 158 12
+1917 23 161 12
+193a 6 162 12
+1940 d 165 12
+194d f 169 12
+195c d 170 12
+1969 f 171 12
+1978 9 172 12
+1981 63 173 12
+FUNC 19f0 31 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::`scalar deleting destructor'(unsigned int)
+FUNC 1a30 51 4 google_breakpad::ExceptionHandler::ExceptionHandlerThreadMain(void *)
+1a30 13 176 12
+1a43 f 182 12
+1a52 1a 185 12
+1a6c 13 188 12
+1a7f 2 190 12
+FUNC 1a90 c7 4 google_breakpad::AutoExceptionHandler::AutoExceptionHandler()
+1a90 7 204 12
+1a97 b 221 12
+1aa2 82 224 12
+1b24 d 225 12
+1b31 c 229 12
+1b3d e 231 12
+1b4b c 233 12
+FUNC 1b60 36 0 google_breakpad::AutoExceptionHandler::~AutoExceptionHandler()
+1b60 0 235 12
+1b60 b 237 12
+1b6b d 239 12
+1b78 b 242 12
+1b83 7 243 12
+1b8a b 244 12
+1b95 1 245 12
+FUNC 1ba0 3 0 google_breakpad::AutoExceptionHandler::get_handler()
+1ba0 3 247 12
+FUNC 1bb0 c4 4 google_breakpad::ExceptionHandler::HandleException(_EXCEPTION_POINTERS *)
+1bb0 2b 254 12
+1bdb a 255 12
+1be5 f 262 12
+1bf4 1e 265 12
+1c12 5 273 12
+1c17 2 274 12
+1c19 7 283 12
+1c20 5 284 12
+1c25 2 285 12
+1c27 2 286 12
+1c29 37 290 12
+1c60 14 291 12
+FUNC 1c80 121 14 google_breakpad::ExceptionHandler::HandleInvalidParameter(wchar_t const *,wchar_t const *,wchar_t const *,unsigned int,unsigned int)
+1c80 40 299 12
+1cc0 b7 319 12
+1d77 7 320 12
+1d7e 14 323 12
+1d92 2 324 12
+1d94 5 337 12
+1d99 8 345 12
+FUNC 1db0 81 8 google_breakpad::ExceptionHandler::WriteMinidumpOnHandlerThread(_EXCEPTION_POINTERS *,MDRawAssertionInfo *)
+1db0 2 350 12
+1db2 d 351 12
+1dbf 6 354 12
+1dc5 2b 359 12
+1df0 f 362 12
+1dff 6 363 12
+1e05 26 370 12
+1e2b 3 372 12
+1e2e 3 373 12
+FUNC 1e40 1d 0 google_breakpad::ExceptionHandler::WriteMinidump()
+1e40 3 375 12
+1e43 b 376 12
+1e4e b 377 12
+1e59 3 378 12
+1e5c 1 379 12
+FUNC 1e60 a2 4 google_breakpad::ExceptionHandler::WriteMinidump(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,bool (*)(wchar_t const *,wchar_t const *,void *,_EXCEPTION_POINTERS *,MDRawAssertionInfo *,bool),void *)
+1e60 41 384 12
+1ea1 10 385 12
+1eb1 2a 386 12
+1edb 27 387 12
+FUNC 1f10 142 c google_breakpad::ExceptionHandler::WriteMinidumpWithException(unsigned long,_EXCEPTION_POINTERS *,MDRawAssertionInfo *)
+1f10 0 392 12
+1f10 22 399 12
+1f32 7 466 12
+1f39 2 403 12
+1f3b e 404 12
+1f49 1f 411 12
+1f68 9 412 12
+1f71 8 414 12
+1f79 4 415 12
+1f7d 8 416 12
+1f85 8 426 12
+1f8d a 427 12
+1f97 34 440 12
+1fcb 8 441 12
+1fd3 8 442 12
+1fdb 4 443 12
+1fdf 8 444 12
+1fe7 30 454 12
+2017 c 456 12
+2023 7 460 12
+202a 1e 462 12
+2048 4 465 12
+204c 6 466 12
+FUNC 2060 138 0 google_breakpad::ExceptionHandler::UpdateNextID()
+2060 38 468 12
+2098 b 470 12
+20a3 4a 471 12
+20ed 25 472 12
+2112 1c 477 12
+212e 31 478 12
+215f 14 479 12
+2173 25 480 12
+FUNC 21a0 3b 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >(char const *)
+21a0 0 650 17
+21a0 35 652 17
+21d5 6 653 17
+FUNC 21e0 25 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+21e0 1 720 17
+21e1 4 721 17
+21e5 1a 722 17
+21ff 6 723 17
+FUNC 2210 26 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >()
+2210 3 904 17
+2213 22 905 17
+2235 1 906 17
+FUNC 2240 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str()
+2240 0 1621 17
+2240 9 1622 17
+2249 1 1623 17
+224a 3 1622 17
+224d 1 1623 17
+FUNC 2250 4 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size()
+2250 0 1636 17
+2250 3 1637 17
+2253 1 1638 17
+FUNC 2260 11 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >()
+2260 0 564 17
+2260 10 565 17
+2270 1 566 17
+FUNC 2280 27 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >()
+2280 3 904 17
+2283 23 905 17
+22a6 1 906 17
+FUNC 22b0 b 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+22b0 0 914 17
+22b0 a 915 17
+22ba 1 916 17
+FUNC 22c0 24 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=(wchar_t const *)
+22c0 0 919 17
+22c0 21 920 17
+22e1 3 921 17
+FUNC 22f0 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str()
+22f0 0 1621 17
+22f0 9 1622 17
+22f9 1 1623 17
+22fa 3 1622 17
+22fd 1 1623 17
+FUNC 2300 c 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >()
+2300 0 457 23
+2300 b 458 23
+230b 1 459 23
+FUNC 2310 26 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::~vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >()
+2310 0 545 23
+2310 25 546 23
+2335 1 547 23
+FUNC 2340 1d 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::begin()
+2340 1 627 23
+2341 1b 628 23
+235c 1 629 23
+FUNC 2360 1d 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::end()
+2360 1 637 23
+2361 1b 638 23
+237c 1 639 23
+FUNC 2380 13 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::size()
+2380 0 702 23
+2380 9 703 23
+2389 1 704 23
+238a 8 703 23
+2392 1 704 23
+FUNC 23a0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::empty()
+23a0 0 712 23
+23a0 10 713 23
+23b0 1 714 23
+23b1 11 713 23
+23c2 1 714 23
+FUNC 23d0 56 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::at(unsigned int)
+23d0 b 729 23
+23db 15 730 23
+23f0 5 731 23
+23f5 29 732 23
+241e 8 733 23
+FUNC 2430 47 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::back()
+2430 c 776 23
+243c 32 777 23
+246e 9 778 23
+FUNC 2480 68 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::push_back(google_breakpad::ExceptionHandler * const &)
+2480 10 786 23
+2490 24 787 23
+24b4 d 796 23
+24c1 6 801 23
+24c7 1b 800 23
+24e2 6 801 23
+FUNC 24f0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::pop_back()
+24f0 6 818 23
+24f6 15 819 23
+250b 6 822 23
+2511 2 824 23
+FUNC 2520 3f 8 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::erase(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >)
+2520 7 996 23
+2527 24 998 23
+254b 11 1001 23
+255c 3 1002 23
+FUNC 2560 20 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator*()
+2560 0 325 23
+2560 1c 326 23
+257c 1 327 23
+257d 2 326 23
+257f 1 327 23
+FUNC 2580 20 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator++()
+2580 0 335 23
+2580 1d 336 23
+259d 2 337 23
+259f 1 338 23
+FUNC 25a0 1d 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator!=(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+25a0 0 202 23
+25a0 1c 203 23
+25bc 1 204 23
+FUNC 25c0 da c std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,unsigned int,unsigned int)
+25c0 1 1038 17
+25c1 12 1039 17
+25d3 5 1040 17
+25d8 3 1041 17
+25db a 1042 17
+25e5 2 1043 17
+25e7 4 1045 17
+25eb 17 1046 17
+2602 5 1052 17
+2607 3 1053 17
+260a 21 1047 17
+262b b 1049 17
+2636 13 1047 17
+2649 5 1052 17
+264e 3 1053 17
+2651 7 1047 17
+2658 5 1052 17
+265d 3 1053 17
+2660 22 1049 17
+2682 10 1050 17
+2692 5 1052 17
+2697 3 1053 17
+FUNC 26a0 27 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(char const *)
+26a0 1 1069 17
+26a1 23 1070 17
+26c4 3 1071 17
+FUNC 26d0 4a 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy(bool,unsigned int)
+26d0 0 2066 17
+26d0 f 2067 17
+26df 6 2069 17
+26e5 a 2072 17
+26ef d 2073 17
+26fc a 2074 17
+2706 11 2077 17
+2717 3 2078 17
+FUNC 2720 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr()
+2720 0 2092 17
+2720 9 2093 17
+2729 1 2094 17
+272a 3 2093 17
+272d 1 2094 17
+FUNC 2730 5 4 std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >(std::allocator<char>)
+2730 2 471 17
+2732 3 472 17
+FUNC 2740 5 4 std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >(std::_String_val<char,std::allocator<char> > const &)
+2740 2 477 17
+2742 3 484 17
+FUNC 2750 3 0 std::allocator<char>::allocator<char>()
+2750 2 120 19
+2752 1 122 19
+FUNC 2760 b 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &)
+2760 0 1032 17
+2760 a 1033 17
+276a 1 1034 17
+FUNC 2770 ef c std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,unsigned int,unsigned int)
+2770 1 1038 17
+2771 12 1039 17
+2783 5 1040 17
+2788 3 1041 17
+278b a 1042 17
+2795 2 1043 17
+2797 4 1045 17
+279b 17 1046 17
+27b2 5 1052 17
+27b7 3 1053 17
+27ba 24 1047 17
+27de b 1049 17
+27e9 13 1047 17
+27fc 5 1052 17
+2801 3 1053 17
+2804 9 1047 17
+280d 5 1052 17
+2812 3 1053 17
+2815 2f 1049 17
+2844 13 1050 17
+2857 5 1052 17
+285c 3 1053 17
+FUNC 2860 2b 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(wchar_t const *)
+2860 1 1069 17
+2861 27 1070 17
+2888 3 1071 17
+FUNC 2890 4f 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Tidy(bool,unsigned int)
+2890 0 2066 17
+2890 f 2067 17
+289f 6 2069 17
+28a5 a 2072 17
+28af 10 2073 17
+28bf a 2074 17
+28c9 13 2077 17
+28dc 3 2078 17
+FUNC 28e0 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr()
+28e0 0 2092 17
+28e0 9 2093 17
+28e9 1 2094 17
+28ea 3 2093 17
+28ed 1 2094 17
+FUNC 28f0 5 4 std::_String_val<wchar_t,std::allocator<wchar_t> >::_String_val<wchar_t,std::allocator<wchar_t> >(std::allocator<wchar_t>)
+28f0 2 471 17
+28f2 3 472 17
+FUNC 2900 3 0 std::allocator<wchar_t>::allocator<wchar_t>()
+2900 2 120 19
+2902 1 122 19
+FUNC 2910 13 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::capacity()
+2910 0 621 23
+2910 9 622 23
+2919 1 623 23
+291a 8 622 23
+2922 1 623 23
+FUNC 2930 86 c std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::insert(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >,google_breakpad::ExceptionHandler * const &)
+2930 3 852 23
+2933 3e 853 23
+2971 11 854 23
+2982 2a 855 23
+29ac a 856 23
+FUNC 29c0 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Buy(unsigned int)
+29c0 0 1066 23
+29c0 8 1070 23
+29c8 5 1071 23
+29cd a 1074 23
+29d7 3 1075 23
+29da 6 1076 23
+29e0 2 1078 23
+29e2 1 1079 23
+FUNC 29f0 1 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Destroy(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+29f0 0 1082 23
+29f0 1 1084 23
+FUNC 2a00 26 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Tidy()
+2a00 0 1087 23
+2a00 7 1088 23
+2a07 9 1096 23
+2a10 15 1098 23
+2a25 1 1099 23
+FUNC 2a30 23 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Ufill(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &)
+2a30 0 1207 23
+2a30 1f 1208 23
+2a4f 3 1209 23
+2a52 1 1210 23
+FUNC 2a60 76 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Xran()
+2a60 23 1218 23
+2a83 53 1219 23
+FUNC 2ae0 3 4 std::_Vector_val<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_val<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(std::allocator<google_breakpad::ExceptionHandler *>)
+2ae0 0 412 23
+2ae0 3 413 23
+FUNC 2af0 1 0 std::allocator<google_breakpad::ExceptionHandler *>::allocator<google_breakpad::ExceptionHandler *>()
+2af0 0 120 19
+2af0 1 122 19
+FUNC 2b00 21 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,std::_Container_base const *)
+2b00 1e 314 23
+2b1e 3 315 23
+FUNC 2b30 32 4 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+(int)
+2b30 1 367 23
+2b31 2 368 23
+2b33 26 369 23
+2b59 9 370 23
+FUNC 2b70 2f 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(int)
+2b70 1 378 23
+2b71 2 379 23
+2b73 25 380 23
+2b98 7 381 23
+FUNC 2ba0 20 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator*()
+2ba0 0 92 23
+2ba0 a 103 23
+2baa f 104 23
+2bb9 3 107 23
+2bbc 1 108 23
+2bbd 2 107 23
+2bbf 1 108 23
+FUNC 2bc0 20 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator++()
+2bc0 0 116 23
+2bc0 a 117 23
+2bca f 118 23
+2bd9 4 119 23
+2bdd 2 120 23
+2bdf 1 121 23
+FUNC 2be0 1d 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator==(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+2be0 0 190 23
+2be0 f 195 23
+2bef d 198 23
+2bfc 1 199 23
+FUNC 2c00 c1 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(char const *,unsigned int)
+2c00 5 1056 17
+2c05 2d 1057 17
+2c32 1a 1058 17
+2c4c 4 1066 17
+2c50 25 1060 17
+2c75 c 1062 17
+2c81 f 1060 17
+2c90 8 1065 17
+2c98 3 1066 17
+2c9b e 1062 17
+2ca9 10 1063 17
+2cb9 5 1065 17
+2cbe 3 1066 17
+FUNC 2cd0 83 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase(unsigned int,unsigned int)
+2cd0 1 1240 17
+2cd1 d 1241 17
+2cde 5 1242 17
+2ce3 d 1243 17
+2cf0 2 1244 17
+2cf2 4 1245 17
+2cf6 3c 1248 17
+2d32 8 1249 17
+2d3a 12 1250 17
+2d4c 4 1252 17
+2d50 3 1253 17
+FUNC 2d60 1f 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos(unsigned int)
+2d60 0 2030 17
+2d60 14 2031 17
+2d74 3 2032 17
+2d77 5 2031 17
+2d7c 3 2032 17
+FUNC 2d80 bc 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow(unsigned int,bool)
+2d80 1 2036 17
+2d81 c 2037 17
+2d8d 5 2038 17
+2d92 7 2039 17
+2d99 c 2040 17
+2da5 a 2046 17
+2daf 3 2047 17
+2db2 d 2041 17
+2dbf 39 2043 17
+2df8 10 2046 17
+2e08 3 2047 17
+2e0b 4 2044 17
+2e0f b 2045 17
+2e1a c 2046 17
+2e26 3 2047 17
+2e29 6 2045 17
+2e2f a 2046 17
+2e39 3 2047 17
+FUNC 2e40 e 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr()
+2e40 0 2087 17
+2e40 9 2088 17
+2e49 1 2089 17
+2e4a 3 2088 17
+2e4d 1 2089 17
+FUNC 2e50 5 4 std::allocator<char>::allocator<char>(std::allocator<char> const &)
+2e50 2 124 19
+2e52 3 126 19
+FUNC 2e60 e 8 std::allocator<char>::deallocate(char *,unsigned int)
+2e60 0 140 19
+2e60 b 141 19
+2e6b 3 142 19
+FUNC 2e70 da 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(wchar_t const *,unsigned int)
+2e70 4 1056 17
+2e74 31 1057 17
+2ea5 1d 1058 17
+2ec2 3 1066 17
+2ec5 28 1060 17
+2eed d 1062 17
+2efa 10 1060 17
+2f0a a 1065 17
+2f14 3 1066 17
+2f17 18 1062 17
+2f2f 14 1063 17
+2f43 4 1065 17
+2f47 3 1066 17
+FUNC 2f50 97 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::erase(unsigned int,unsigned int)
+2f50 1 1240 17
+2f51 d 1241 17
+2f5e 5 1242 17
+2f63 d 1243 17
+2f70 2 1244 17
+2f72 4 1245 17
+2f76 4d 1248 17
+2fc3 8 1249 17
+2fcb 15 1250 17
+2fe0 4 1252 17
+2fe4 3 1253 17
+FUNC 2ff0 4 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::size()
+2ff0 0 1636 17
+2ff0 3 1637 17
+2ff3 1 1638 17
+FUNC 3000 23 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Eos(unsigned int)
+3000 0 2030 17
+3000 16 2031 17
+3016 3 2032 17
+3019 7 2031 17
+3020 3 2032 17
+FUNC 3030 c7 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Grow(unsigned int,bool)
+3030 1 2036 17
+3031 f 2037 17
+3040 5 2038 17
+3045 7 2039 17
+304c c 2040 17
+3058 a 2046 17
+3062 3 2047 17
+3065 d 2041 17
+3072 3c 2043 17
+30ae 12 2046 17
+30c0 3 2047 17
+30c3 4 2044 17
+30c7 b 2045 17
+30d2 d 2046 17
+30df 3 2047 17
+30e2 8 2045 17
+30ea a 2046 17
+30f4 3 2047 17
+FUNC 3100 e 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr()
+3100 0 2087 17
+3100 9 2088 17
+3109 1 2089 17
+310a 3 2088 17
+310d 1 2089 17
+FUNC 3110 5 4 std::allocator<wchar_t>::allocator<wchar_t>(std::allocator<wchar_t> const &)
+3110 2 124 19
+3112 3 126 19
+FUNC 3120 e 8 std::allocator<wchar_t>::deallocate(wchar_t *,unsigned int)
+3120 0 140 19
+3120 b 141 19
+312b 3 142 19
+FUNC 3130 6 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::max_size()
+3130 0 707 23
+3130 5 708 23
+3135 1 709 23
+FUNC 3140 208 8 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Insert_n(std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >,unsigned int,google_breakpad::ExceptionHandler * const &)
+3140 6 1117 23
+3146 2 1125 23
+3148 1c 1126 23
+3164 1c 1130 23
+3180 5 1131 23
+3185 1b 1132 23
+31a0 23 1135 23
+31c3 17 1136 23
+31da 19 1137 23
+31f3 7 1138 23
+31fa 25 1143 23
+321f 7 1144 23
+3226 1e 1145 23
+3244 13 1152 23
+3257 4 1153 23
+325b 9 1156 23
+3264 7 1163 23
+326b a 1164 23
+3275 3 1165 23
+3278 a 1204 23
+3282 13 1167 23
+3295 17 1170 23
+32ac 1a 1174 23
+32c6 7 1180 23
+32cd 16 1187 23
+32e3 a 1204 23
+32ed 2a 1193 23
+3317 e 1200 23
+3325 19 1202 23
+333e a 1204 23
+FUNC 3350 7c 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Xlen()
+3350 29 1213 23
+3379 53 1214 23
+FUNC 33d0 1 0 std::allocator<google_breakpad::ExceptionHandler *>::allocator<google_breakpad::ExceptionHandler *>(std::allocator<google_breakpad::ExceptionHandler *> const &)
+33d0 0 124 19
+33d0 1 126 19
+FUNC 33e0 8 0 std::allocator<google_breakpad::ExceptionHandler *>::deallocate(google_breakpad::ExceptionHandler * *,unsigned int)
+33e0 0 140 19
+33e0 7 141 19
+33e7 1 142 19
+FUNC 33f0 56 0 std::allocator<google_breakpad::ExceptionHandler *>::allocate(unsigned int)
+33f0 3 145 19
+33f3 16 146 19
+3409 4 147 19
+340d 39 146 19
+FUNC 3450 32 4 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+=(int)
+3450 0 361 23
+3450 2c 362 23
+347c 3 363 23
+347f 3 364 23
+FUNC 3490 28 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-=(int)
+3490 0 373 23
+3490 27 374 23
+34b7 1 375 23
+FUNC 34c0 19 0 std::_Vector_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+34c0 0 384 23
+34c0 18 385 23
+34d8 1 386 23
+FUNC 34e0 21 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,std::_Container_base const *)
+34e0 0 77 23
+34e0 19 79 23
+34f9 2 80 23
+34fb 3 81 23
+34fe 3 82 23
+FUNC 3510 19 4 std::length_error::length_error(std::length_error const &)
+FUNC 3530 7 0 std::_Ranit<google_breakpad::ExceptionHandler *,int,google_breakpad::ExceptionHandler * const *,google_breakpad::ExceptionHandler * const &>::_Ranit<google_breakpad::ExceptionHandler *,int,google_breakpad::ExceptionHandler * const *,google_breakpad::ExceptionHandler * const &>()
+FUNC 3540 6 0 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size()
+3540 0 1641 17
+3540 5 1643 17
+3545 1 1644 17
+FUNC 3550 171 8 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy(unsigned int,unsigned int)
+3550 30 2000 17
+3580 8 2001 17
+3588 5 2002 17
+358d 2 2003 17
+358f 2 2004 17
+3591 1f 2005 17
+35b0 3 2006 17
+35b3 2 2009 17
+35b5 18 2010 17
+35cd 2 2019 17
+35cf 30 2010 17
+35ff 3 2012 17
+3602 19 2014 17
+361b c 2019 17
+3627 7 2021 17
+362e 20 2022 17
+364e 12 2023 17
+3660 1c 2026 17
+367c 14 2027 17
+3690 15 2016 17
+36a5 1c 2017 17
+FUNC 36d0 39 4 std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside(char const *)
+36d0 1 2050 17
+36d1 2b 2052 17
+36fc 3 2055 17
+36ff 4 2056 17
+3703 3 2053 17
+3706 3 2056 17
+FUNC 3710 6 0 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::max_size()
+3710 0 1641 17
+3710 5 1643 17
+3715 1 1644 17
+FUNC 3720 17b 8 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Copy(unsigned int,unsigned int)
+3720 30 2000 17
+3750 8 2001 17
+3758 8 2002 17
+3760 2 2003 17
+3762 2 2004 17
+3764 1f 2005 17
+3783 3 2006 17
+3786 2 2009 17
+3788 1b 2010 17
+37a3 2 2019 17
+37a5 30 2010 17
+37d5 3 2012 17
+37d8 19 2014 17
+37f1 c 2019 17
+37fd 7 2021 17
+3804 24 2022 17
+3828 12 2023 17
+383a 20 2026 17
+385a 14 2027 17
+386e 17 2016 17
+3885 16 2017 17
+FUNC 38a0 3a 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Inside(wchar_t const *)
+38a0 1 2050 17
+38a1 2c 2052 17
+38cd 3 2055 17
+38d0 4 2056 17
+38d4 3 2053 17
+38d7 3 2056 17
+FUNC 38e0 6 0 std::allocator<google_breakpad::ExceptionHandler *>::max_size()
+38e0 0 165 19
+38e0 5 167 19
+38e5 1 168 19
+FUNC 38f0 32 4 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator+=(int)
+38f0 0 146 23
+38f0 a 147 23
+38fa 1a 148 23
+3914 5 150 23
+3919 3 151 23
+391c 3 152 23
+391f 3 153 23
+FUNC 3930 19 0 std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::operator-(std::_Vector_const_iterator<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> > const &)
+3930 0 173 23
+3930 f 178 23
+393f 9 181 23
+3948 1 182 23
+FUNC 3950 56 4 std::allocator<char>::allocate(unsigned int)
+3950 0 145 19
+3950 16 146 19
+3966 6 147 19
+396c 3a 146 19
+FUNC 39b0 4 0 std::allocator<char>::max_size()
+39b0 0 165 19
+39b0 3 167 19
+39b3 1 168 19
+FUNC 39c0 59 4 std::allocator<wchar_t>::allocate(unsigned int)
+39c0 0 145 19
+39c0 19 146 19
+39d9 6 147 19
+39df 3a 146 19
+FUNC 3a20 6 0 std::allocator<wchar_t>::max_size()
+3a20 0 165 19
+3a20 5 167 19
+3a25 1 168 19
+FUNC 3a30 21 10 std::_Traits_helper::copy_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int)
+3a30 0 581 70
+3a30 20 582 70
+3a50 1 583 70
+FUNC 3a60 27 10 std::_Traits_helper::copy_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+3a60 0 581 70
+3a60 26 582 70
+3a86 1 583 70
+FUNC 3a90 24 0 stdext::unchecked_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3a90 0 3407 65
+3a90 23 3409 65
+3ab3 1 3410 65
+FUNC 3ac0 1 0 std::_Destroy_range<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3ac0 0 225 19
+3ac0 1 227 19
+FUNC 3ad0 15 0 stdext::unchecked_uninitialized_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::allocator<google_breakpad::ExceptionHandler *> &)
+3ad0 0 914 24
+3ad0 14 916 24
+3ae4 1 917 24
+FUNC 3af0 21 10 std::_Traits_helper::move_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int)
+3af0 0 608 70
+3af0 20 609 70
+3b10 1 610 70
+FUNC 3b20 27 10 std::_Traits_helper::move_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int)
+3b20 0 608 70
+3b20 26 609 70
+3b46 1 610 70
+FUNC 3b50 22 0 std::vector<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >::_Umove<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3b50 0 1109 23
+3b50 21 1112 23
+3b71 1 1113 23
+FUNC 3b80 10 0 std::fill<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * const &)
+3b80 0 2976 65
+3b80 f 2977 65
+3b8f 1 2978 65
+FUNC 3b90 25 0 stdext::_Unchecked_move_backward<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *)
+3b90 0 3497 65
+3b90 24 3499 65
+3bb4 1 3500 65
+FUNC 3bc0 4f 0 std::_Allocate<google_breakpad::ExceptionHandler *>(unsigned int,google_breakpad::ExceptionHandler * *)
+3bc0 0 37 19
+3bc0 f 40 19
+3bcf 2c 41 19
+3bfb 10 44 19
+3c0b 4 45 19
+FUNC 3c10 54 8 std::_Allocate<char>(unsigned int,char *)
+3c10 0 37 19
+3c10 b 38 19
+3c1b 2 39 19
+3c1d 9 44 19
+3c26 4 45 19
+3c2a c 40 19
+3c36 2e 41 19
+FUNC 3c70 57 8 std::_Allocate<wchar_t>(unsigned int,wchar_t *)
+3c70 0 37 19
+3c70 b 38 19
+3c7b 2 39 19
+3c7d c 44 19
+3c89 4 45 19
+3c8d c 40 19
+3c99 2e 41 19
+FUNC 3cd0 19 4 std::bad_alloc::bad_alloc(std::bad_alloc const &)
+FUNC 3cf0 7 0 std::_Char_traits_cat<std::char_traits<char> >()
+3cf0 1 568 70
+3cf1 4 570 70
+3cf5 2 571 70
+FUNC 3d00 21 14 std::_Traits_helper::copy_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int,std::_Secure_char_traits_tag)
+3d00 0 589 70
+3d00 20 590 70
+3d20 1 591 70
+FUNC 3d30 7 0 std::_Char_traits_cat<std::char_traits<wchar_t> >()
+3d30 1 568 70
+3d31 4 570 70
+3d35 2 571 70
+FUNC 3d40 27 14 std::_Traits_helper::copy_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int,std::_Secure_char_traits_tag)
+3d40 0 589 70
+3d40 26 590 70
+3d66 1 591 70
+FUNC 3d70 3 0 std::_Checked_base<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &)
+3d70 0 1009 65
+3d70 2 1011 65
+3d72 1 1012 65
+FUNC 3d80 1 0 std::_Iter_random<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &,google_breakpad::ExceptionHandler * * const &)
+3d80 0 839 65
+3d80 1 844 65
+FUNC 3d90 7 0 std::_Ptr_cat<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &,google_breakpad::ExceptionHandler * * &)
+3d90 1 1329 65
+3d91 4 1331 65
+3d95 2 1332 65
+FUNC 3da0 15 4 std::_Copy_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3da0 0 2288 65
+3da0 d 2300 65
+3dad 7 2301 65
+3db4 1 2302 65
+FUNC 3dc0 1 4 std::_Destroy_range<google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag)
+3dc0 0 242 19
+3dc0 1 243 19
+FUNC 3dd0 15 8 std::_Uninit_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3dd0 0 415 24
+3dd0 14 416 24
+3de4 1 417 24
+FUNC 3df0 21 14 std::_Traits_helper::move_s<std::char_traits<char> >(char *,unsigned int,char const *,unsigned int,std::_Secure_char_traits_tag)
+3df0 0 616 70
+3df0 20 617 70
+3e10 1 618 70
+FUNC 3e20 27 14 std::_Traits_helper::move_s<std::char_traits<wchar_t> >(wchar_t *,unsigned int,wchar_t const *,unsigned int,std::_Secure_char_traits_tag)
+3e20 0 616 70
+3e20 26 617 70
+3e46 1 618 70
+FUNC 3e50 22 0 stdext::_Unchecked_uninitialized_move<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3e50 0 843 24
+3e50 21 845 24
+3e71 1 846 24
+FUNC 3e80 10 0 std::_Fill<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * const &)
+3e80 0 2946 65
+3e80 6 2948 65
+3e86 9 2949 65
+3e8f 1 2950 65
+FUNC 3e90 7 0 std::_Move_cat<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &)
+3e90 1 1046 65
+3e91 4 1048 65
+3e95 2 1049 65
+FUNC 3ea0 25 c std::_Move_backward_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Undefined_move_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Undefined_move_tag,std::_Range_checked_iterator_tag)
+3ea0 0 2546 65
+3ea0 24 2548 65
+3ec4 1 2549 65
+FUNC 3ed0 3 4 std::_Checked_base<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * &,std::_Unchanged_checked_iterator_base_type_tag)
+3ed0 0 992 65
+3ed0 2 993 65
+3ed2 1 994 65
+FUNC 3ee0 15 0 stdext::unchecked_fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &)
+3ee0 0 3523 65
+3ee0 14 3524 65
+3ef4 1 3525 65
+FUNC 3f00 22 8 std::_Uninit_move<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *>,std::_Undefined_move_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Undefined_move_tag,std::_Range_checked_iterator_tag)
+3f00 0 205 24
+3f00 21 206 24
+3f21 1 207 24
+FUNC 3f30 13 0 std::_Copy_backward_opt<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag>(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::random_access_iterator_tag,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3f30 0 2492 65
+3f30 10 2506 65
+3f40 2 2507 65
+3f42 1 2508 65
+FUNC 3f50 1 0 std::_Iter_cat<google_breakpad::ExceptionHandler * *>(google_breakpad::ExceptionHandler * * const &)
+3f50 0 798 65
+3f50 1 801 65
+FUNC 3f60 15 8 std::_Fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::random_access_iterator_tag,std::_Range_checked_iterator_tag)
+3f60 0 3040 65
+3f60 14 3044 65
+3f74 1 3045 65
+FUNC 3f80 22 0 stdext::unchecked_uninitialized_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &)
+3f80 0 803 24
+3f80 21 805 24
+3fa1 1 806 24
+FUNC 3fb0 15 4 std::_Fill_n<google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler *>(google_breakpad::ExceptionHandler * *,unsigned int,google_breakpad::ExceptionHandler * const &,std::_Range_checked_iterator_tag)
+3fb0 0 2986 65
+3fb0 5 2987 65
+3fb5 f 2988 65
+3fc4 1 2989 65
+FUNC 3fd0 15 4 std::_Uninit_copy<google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> >(google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,google_breakpad::ExceptionHandler * *,std::allocator<google_breakpad::ExceptionHandler *> &,std::_Scalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)
+3fd0 0 144 24
+3fd0 d 150 24
+3fdd 7 151 24
+3fe4 1 152 24
+FUNC 3ff0 13 4 vswprintf
+3ff0 0 50 147
+3ff0 12 51 147
+4002 1 52 147
+FUNC 4010 ae 4 google_breakpad::GUIDString::GUIDToWString(_GUID *)
+4010 12 43 126
+4022 51 51 126
+4073 3a 52 126
+40ad 11 53 126
+FUNC 40c0 ae 4 google_breakpad::GUIDString::GUIDToSymbolServerWString(_GUID *)
+40c0 12 56 126
+40d2 51 64 126
+4123 3a 65 126
+415d 11 66 126
+FUNC 4170 40 4 std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >(wchar_t const *)
+4170 0 650 143
+4170 3a 652 143
+41aa 6 653 143
+FUNC 41b0 86 8 main
+41b0 13 63 178
+41c3 38 64 178
+41fb 5 65 178
+4200 d 66 178
+420d 1b 67 178
+4228 e 68 178
+FUNC 4240 41 18 `anonymous namespace'::callback
+4240 3 45 178
+4243 8 46 178
+424b 11 47 178
+425c 2 48 178
+425e d 49 178
+426b 11 51 178
+427c 3 53 178
+427f 2 54 178
+FUNC 4290 18 0 `anonymous namespace'::CrashFunction
+4290 4 56 178
+4294 7 57 178
+429b 9 58 178
+42a4 4 59 178
+FUNC 42ae 18 4 std::invalid_argument::invalid_argument(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)
+42ae 12 82 298
+42c0 6 83 298
+FUNC 42c6 b 0 std::invalid_argument::~invalid_argument()
+42c6 6 86 298
+42cc 5 87 298
+FUNC 42d1 22 0 std::invalid_argument::`vector deleting destructor'(unsigned int)
+FUNC 42f3 3f 0 std::_String_base::_Xlen()
+42f3 c 12 291
+42ff 33 13 291
+FUNC 4332 3f 0 std::_String_base::_Xran()
+4332 c 17 291
+433e 33 18 291
+FUNC 4371 3f 0 std::_String_base::_Xinvarg()
+4371 c 22 291
+437d 33 23 291
+FUNC 43b0 18 4 std::invalid_argument::invalid_argument(std::invalid_argument const &)
+FUNC 43c8 af 4 printf
+43c8 c 49 1601
+43d4 2b 54 1601
+43ff 14 58 1601
+4413 3 59 1601
+4416 10 61 1601
+4426 18 63 1601
+443e 11 65 1601
+444f c 68 1601
+445b 3 72 1601
+445e 6 73 1601
+4464 13 69 1601
+FUNC 4477 16 8 _printf_l
+4477 0 80 1601
+4477 15 85 1601
+448c 1 86 1601
+FUNC 448d 16 8 _printf_s_l
+448d 0 94 1601
+448d 15 99 1601
+44a2 1 100 1601
+FUNC 44a3 14 4 printf_s
+44a3 0 106 1601
+44a3 13 111 1601
+44b6 1 112 1601
+FUNC 44b7 16 8 _printf_p_l
+44b7 0 119 1601
+44b7 15 124 1601
+44cc 1 125 1601
+FUNC 44cd 14 4 _printf_p
+44cd 0 131 1601
+44cd 13 136 1601
+44e0 1 137 1601
+FUNC 44e1 25 4 _set_printf_count_output
+44e1 0 154 1601
+44e1 6 155 1601
+44e7 1e 156 1601
+4505 1 158 1601
+FUNC 4506 16 0 _get_printf_count_output
+4506 0 167 1601
+4506 15 168 1601
+451b 1 169 1601
+FUNC 451c f 0 __security_check_cookie
+451c 0 52 4397
+451c 6 55 4397
+4522 2 56 4397
+4524 2 57 4397
+4526 5 59 4397
+FUNC 452b 62 4 _flush
+452b 2 142 1704
+452d 25 152 1704
+4552 16 154 1704
+4568 7 158 1704
+456f 6 159 1704
+4575 2 161 1704
+4577 4 162 1704
+457b 4 163 1704
+457f 3 167 1704
+4582 7 168 1704
+4589 3 170 1704
+458c 1 171 1704
+FUNC 458d 42 4 _fflush_nolock
+458d 1 98 1704
+458e 8 102 1704
+4596 8 103 1704
+459e 1 116 1704
+459f b 106 1704
+45aa 4 108 1704
+45ae 1 116 1704
+45af 8 112 1704
+45b7 13 113 1704
+45ca 1 116 1704
+45cb 3 115 1704
+45ce 1 116 1704
+FUNC 45cf da 4 flsall
+45cf c 228 1704
+45db 5 230 1704
+45e0 3 231 1704
+45e3 8 233 1704
+45eb 3 234 1704
+45ee 11 236 1704
+45ff 14 238 1704
+4613 9 246 1704
+461c 6 248 1704
+4622 10 254 1704
+4632 5 256 1704
+4637 c 262 1704
+4643 3 266 1704
+4646 2 268 1704
+4648 a 269 1704
+4652 c 275 1704
+465e 3 276 1704
+4661 8 281 1704
+4669 3 236 1704
+466c 5 281 1704
+4671 11 282 1704
+4682 c 288 1704
+468e 4 292 1704
+4692 3 293 1704
+4695 2 292 1704
+4697 3 295 1704
+469a 6 296 1704
+46a0 9 289 1704
+FUNC 46a9 53 4 fflush
+46a9 c 57 1704
+46b5 7 62 1704
+46bc 9 63 1704
+46c5 9 65 1704
+46ce 3 67 1704
+46d1 c 68 1704
+46dd c 70 1704
+46e9 3 74 1704
+46ec 6 75 1704
+46f2 a 71 1704
+FUNC 46fc 9 0 _flushall
+46fc 0 193 1704
+46fc 8 194 1704
+4704 1 195 1704
+FUNC 4705 6 0 __iob_func
+4705 0 53 2087
+4705 5 54 2087
+470a 1 55 2087
+FUNC 470b b1 0 __initstdio
+470b 0 113 2087
+470b d 122 2087
+4718 7 123 2087
+471f 4 124 2087
+4723 7 125 2087
+472a 13 134 2087
+473d 19 137 2087
+4756 4 138 2087
+475a 1 163 2087
+475b e 145 2087
+4769 11 146 2087
+477a b 148 2087
+4785 24 151 2087
+47a9 2 158 2087
+47ab d 148 2087
+47b8 3 162 2087
+47bb 1 163 2087
+FUNC 47bc 20 0 __endstdio
+47bc 0 191 2087
+47bc 5 193 2087
+47c1 9 196 2087
+47ca 5 197 2087
+47cf c 198 2087
+47db 1 199 2087
+FUNC 47dc 3c 4 _lock_file
+47dc 1 221 2087
+47dd 15 226 2087
+47f2 10 231 2087
+4802 9 233 2087
+480b 1 242 2087
+480c b 241 2087
+4817 1 242 2087
+FUNC 4818 2e 8 _lock_file2
+4818 0 264 2087
+4818 9 269 2087
+4821 9 274 2087
+482a c 276 2087
+4836 1 285 2087
+4837 e 284 2087
+4845 1 285 2087
+FUNC 4846 36 4 _unlock_file
+4846 0 306 2087
+4846 14 311 2087
+485a 7 317 2087
+4861 f 318 2087
+4870 1 327 2087
+4871 a 326 2087
+487b 1 327 2087
+FUNC 487c 2a 8 _unlock_file2
+487c 0 349 2087
+487c 7 354 2087
+4883 d 360 2087
+4890 a 361 2087
+489a 1 370 2087
+489b a 369 2087
+48a5 1 370 2087
+FUNC 48a6 16 4 wcslen
+48a6 0 41 731
+48a6 4 42 731
+48aa a 44 731
+48b4 7 46 731
+48bb 1 47 731
+FUNC 48bc 5 4 operator delete(void *)
+48bc 0 20 5184
+48bc 5 23 5184
+FUNC 48c1 30 8 _JumpToContinuation(void *,EHRegistrationNode *)
+48c1 5 77 5627
+48c6 9 84 5627
+48cf 7 93 5627
+48d6 2 94 5627
+48d8 6 95 5627
+48de 3 100 5627
+48e1 3 101 5627
+48e4 3 102 5627
+48e7 3 103 5627
+48ea 2 104 5627
+48ec 5 106 5627
+FUNC 48f1 7 8 _CallMemberFunction0(void *,void *)
+48f1 0 118 5627
+48f1 1 120 5627
+48f2 1 121 5627
+48f3 3 122 5627
+48f6 2 123 5627
+FUNC 48f8 7 c _CallMemberFunction1(void *,void *,void *)
+48f8 0 139 5627
+48f8 1 141 5627
+48f9 1 142 5627
+48fa 3 143 5627
+48fd 2 144 5627
+FUNC 48ff 7 10 _CallMemberFunction2(void *,void *,void *,int)
+48ff 0 161 5627
+48ff 1 163 5627
+4900 1 164 5627
+4901 3 165 5627
+4904 2 166 5627
+FUNC 4906 52 8 _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord *)
+4906 8 218 5627
+490e 7 232 5627
+4915 3 233 5627
+4918 7 236 5627
+491f 10 237 5627
+492f f 241 5627
+493e 7 247 5627
+4945 3 248 5627
+4948 2 249 5627
+494a 7 250 5627
+4951 7 256 5627
+FUNC 4958 36 10 __CxxFrameHandler
+4958 0 287 5627
+4958 1 295 5627
+4959 2 296 5627
+495b 3 297 5627
+495e 1 298 5627
+495f 1 299 5627
+4960 1 300 5627
+4961 1 301 5627
+4962 3 306 5627
+4965 1f 311 5627
+4984 1 316 5627
+4985 1 317 5627
+4986 1 318 5627
+4987 3 319 5627
+498a 2 320 5627
+498c 1 321 5627
+498d 1 322 5627
+FUNC 498e 36 10 __CxxFrameHandler3
+498e 0 341 5627
+498e 1 349 5627
+498f 2 350 5627
+4991 3 351 5627
+4994 1 352 5627
+4995 1 353 5627
+4996 1 354 5627
+4997 1 355 5627
+4998 3 360 5627
+499b 1f 365 5627
+49ba 1 370 5627
+49bb 1 371 5627
+49bc 1 372 5627
+49bd 3 373 5627
+49c0 2 374 5627
+49c2 1 375 5627
+49c3 1 376 5627
+FUNC 49c4 36 10 __CxxFrameHandler2
+49c4 0 391 5627
+49c4 1 399 5627
+49c5 2 400 5627
+49c7 3 401 5627
+49ca 1 402 5627
+49cb 1 403 5627
+49cc 1 404 5627
+49cd 1 405 5627
+49ce 3 410 5627
+49d1 1f 415 5627
+49f0 1 420 5627
+49f1 1 421 5627
+49f2 1 422 5627
+49f3 3 423 5627
+49f6 2 424 5627
+49f8 1 425 5627
+49f9 1 426 5627
+FUNC 49fa 1a 4 __CxxLongjmpUnwind
+49fa 0 443 5627
+49fa 17 449 5627
+4a11 3 452 5627
+FUNC 4a14 30 10 CatchGuardHandler
+4a14 1 545 5627
+4a15 1 551 5627
+4a16 e 557 5627
+4a24 1f 567 5627
+4a43 1 572 5627
+FUNC 4a44 d5 1c _CallSETranslator(EHExceptionRecord *,EHRegistrationNode *,void *,void *,_s_FuncInfo const *,int,EHRegistrationNode *)
+4a44 7 637 5627
+4a4b 9 642 5627
+4a54 5 644 5627
+4a59 3 645 5627
+4a5c 2 646 5627
+4a5e 8 648 5627
+4a66 4 656 5627
+4a6a 7 657 5627
+4a71 d 658 5627
+4a7e 6 659 5627
+4a84 6 660 5627
+4a8a 6 661 5627
+4a90 6 662 5627
+4a96 4 663 5627
+4a9a 4 664 5627
+4a9e 4 669 5627
+4aa2 3 675 5627
+4aa5 3 676 5627
+4aa8 6 681 5627
+4aae 3 682 5627
+4ab1 3 683 5627
+4ab4 6 684 5627
+4aba 7 690 5627
+4ac1 6 692 5627
+4ac7 6 693 5627
+4acd e 697 5627
+4adb e 701 5627
+4ae9 4 707 5627
+4aed 6 715 5627
+4af3 7 724 5627
+4afa 2 725 5627
+4afc 3 726 5627
+4aff 2 727 5627
+4b01 7 728 5627
+4b08 2 731 5627
+4b0a 3 737 5627
+4b0d 6 738 5627
+4b13 3 744 5627
+4b16 3 745 5627
+FUNC 4b19 9d 10 TranslatorGuardHandler
+4b19 5 770 5627
+4b1e 1 776 5627
+4b1f e 782 5627
+4b2d b 784 5627
+4b38 a 786 5627
+4b42 5 790 5627
+4b47 2 792 5627
+4b49 2a 796 5627
+4b73 9 798 5627
+4b7c b 802 5627
+4b87 1b 811 5627
+4ba2 3 818 5627
+4ba5 3 819 5627
+4ba8 3 820 5627
+4bab 3 821 5627
+4bae 2 822 5627
+4bb0 3 826 5627
+4bb3 3 828 5627
+FUNC 4bb6 73 14 _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,unsigned int *,unsigned int *)
+4bb6 7 848 5627
+4bbd 6 849 5627
+4bc3 6 850 5627
+4bc9 2 851 5627
+4bcb 2 852 5627
+4bcd a 855 5627
+4bd7 1d 859 5627
+4bf4 3 860 5627
+4bf7 3 861 5627
+4bfa 3 862 5627
+4bfd 6 854 5627
+4c03 6 866 5627
+4c09 5 867 5627
+4c0e e 869 5627
+4c1c b 871 5627
+4c27 2 872 5627
+FUNC 4c29 28 8 _CreateFrameInfo
+4c29 0 889 5627
+4c29 b 890 5627
+4c34 e 891 5627
+4c42 b 892 5627
+4c4d 3 893 5627
+4c50 1 894 5627
+FUNC 4c51 21 4 _IsExceptionObjectToBeDestroyed
+4c51 0 907 5627
+4c51 d 910 5627
+4c5e 8 911 5627
+4c66 7 910 5627
+4c6d 1 915 5627
+4c6e 1 916 5627
+4c6f 2 912 5627
+4c71 1 916 5627
+FUNC 4c72 4c 4 _FindAndUnlinkFrame
+4c72 1 926 5627
+4c73 11 927 5627
+4c84 f 928 5627
+4c93 1 944 5627
+4c94 d 931 5627
+4ca1 7 935 5627
+4ca8 9 933 5627
+4cb1 5 943 5627
+4cb6 7 936 5627
+4cbd 1 944 5627
+FUNC 4cbe 5e 14 _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo const *,void *,int,unsigned long)
+4cbe 6 485 5627
+4cc4 e 493 5627
+4cd2 c 495 5627
+4cde 11 500 5627
+4cef 6 503 5627
+4cf5 3 504 5627
+4cf8 3 505 5627
+4cfb 6 506 5627
+4d01 e 512 5627
+4d0f 3 518 5627
+4d12 6 519 5627
+4d18 2 524 5627
+4d1a 2 525 5627
+FUNC 4d1c 4a 8 _CxxThrowException
+4d1c 6 95 5939
+4d22 15 117 5939
+4d37 3 118 5939
+4d3a 9 134 5939
+4d43 5 136 5939
+4d48 7 138 5939
+4d4f 13 159 5939
+4d62 4 161 5939
+FUNC 4d66 19 0 std::bad_alloc::bad_alloc()
+4d66 15 382 5121
+4d7b 4 383 5121
+FUNC 4d7f 6a 4 operator new(unsigned int)
+4d7f 6 57 5123
+4d85 2 59 5123
+4d87 d 60 5123
+4d94 d 59 5123
+4da1 2 67 5123
+4da3 27 62 5123
+4dca 1f 63 5123
+FUNC 4de9 f 4 type_info::name(__type_info_node *)
+4de9 0 44 5873
+4de9 c 45 5873
+4df5 3 46 5873
+FUNC 4df8 e 0 type_info::~type_info()
+4df8 0 49 5873
+4df8 d 50 5873
+4e05 1 51 5873
+FUNC 4e06 1c 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 4e22 f 4 type_info::_name_internal_method(__type_info_node *)
+4e22 0 54 5873
+4e22 c 55 5873
+4e2e 3 56 5873
+FUNC 4e31 8 0 type_info::_type_info_dtor_internal_method()
+4e31 0 59 5873
+4e31 7 60 5873
+4e38 1 61 5873
+FUNC 4e39 1b 4 type_info::operator==(type_info const &)
+4e39 0 89 5873
+4e39 18 90 5873
+4e51 3 91 5873
+FUNC 4e54 1c 4 type_info::operator!=(type_info const &)
+4e54 0 98 5873
+4e54 19 99 5873
+4e6d 3 100 5873
+FUNC 4e70 1f 4 type_info::before(type_info const &)
+4e70 0 103 5873
+4e70 1c 104 5873
+4e8c 3 105 5873
+FUNC 4e8f 4 0 type_info::raw_name()
+4e8f 0 108 5873
+4e8f 3 109 5873
+4e92 1 110 5873
+FUNC 4e93 b 4 type_info::type_info(type_info const &)
+4e93 8 113 5873
+4e9b 3 123 5873
+FUNC 4e9e 5 4 type_info::operator=(type_info const &)
+4e9e 2 127 5873
+4ea0 3 135 5873
+FUNC 4ea3 11 0 std::exception::exception()
+4ea3 2 68 5916
+4ea5 4 69 5916
+4ea9 a 70 5916
+4eb3 1 71 5916
+FUNC 4eb4 4e 4 std::exception::exception(char const * const &)
+4eb4 1 77 5916
+4eb5 14 78 5916
+4ec9 9 80 5916
+4ed2 6 81 5916
+4ed8 9 82 5916
+4ee1 c 84 5916
+4eed 2 87 5916
+4eef 4 89 5916
+4ef3 7 91 5916
+4efa 8 92 5916
+FUNC 4f02 18 8 std::exception::exception(char const * const &,int)
+4f02 2 98 5916
+4f04 c 99 5916
+4f10 7 100 5916
+4f17 3 101 5916
+FUNC 4f1a 58 4 std::exception::exception(std::exception const &)
+4f1a 1 107 5916
+4f1b 13 108 5916
+4f2e 2 109 5916
+4f30 a 111 5916
+4f3a 9 113 5916
+4f43 6 114 5916
+4f49 9 115 5916
+4f52 d 117 5916
+4f5f 2 120 5916
+4f61 4 122 5916
+4f65 2 125 5916
+4f67 4 126 5916
+4f6b 7 127 5916
+FUNC 4f72 56 4 std::exception::operator=(std::exception const &)
+4f72 1 133 5916
+4f73 c 134 5916
+4f7f 6 136 5916
+4f85 2 137 5916
+4f87 9 139 5916
+4f90 9 141 5916
+4f99 6 144 5916
+4f9f 9 146 5916
+4fa8 d 148 5916
+4fb5 2 151 5916
+4fb7 4 153 5916
+4fbb 2 156 5916
+4fbd 3 157 5916
+4fc0 5 159 5916
+4fc5 3 160 5916
+FUNC 4fc8 16 0 std::exception::~exception()
+4fc8 0 167 5916
+4fc8 c 168 5916
+4fd4 9 169 5916
+4fdd 1 170 5916
+FUNC 4fde d 0 std::exception::what()
+4fde 0 180 5916
+4fde 5 181 5916
+4fe3 2 182 5916
+4fe5 5 184 5916
+4fea 1 185 5916
+FUNC 4feb 19 4 std::bad_cast::bad_cast(char const *)
+4feb 13 194 5916
+4ffe 6 195 5916
+FUNC 5004 18 4 std::bad_cast::bad_cast(std::bad_cast const &)
+5004 12 199 5916
+5016 6 200 5916
+FUNC 501c b 0 std::bad_cast::~bad_cast()
+501c 6 203 5916
+5022 5 204 5916
+FUNC 5027 19 4 std::bad_typeid::bad_typeid(char const *)
+5027 13 229 5916
+503a 6 230 5916
+FUNC 5040 18 4 std::bad_typeid::bad_typeid(std::bad_typeid const &)
+5040 12 234 5916
+5052 6 235 5916
+FUNC 5058 b 0 std::bad_typeid::~bad_typeid()
+5058 6 238 5916
+505e 5 239 5916
+FUNC 5063 18 4 std::__non_rtti_object::__non_rtti_object(char const *)
+5063 12 248 5916
+5075 6 249 5916
+FUNC 507b 18 4 std::__non_rtti_object::__non_rtti_object(std::__non_rtti_object const &)
+507b 12 253 5916
+508d 6 254 5916
+FUNC 5093 b 0 std::__non_rtti_object::~__non_rtti_object()
+5093 0 257 5916
+5093 b 258 5916
+FUNC 509e 1c 0 std::exception::`vector deleting destructor'(unsigned int)
+FUNC 50ba 22 0 std::bad_cast::`vector deleting destructor'(unsigned int)
+FUNC 50dc 22 0 std::bad_typeid::`scalar deleting destructor'(unsigned int)
+FUNC 50fe 22 0 std::__non_rtti_object::`scalar deleting destructor'(unsigned int)
+FUNC 5120 7b 10 memcpy_s
+5120 4 47 1002
+5124 a 48 1002
+512e 4 51 1002
+5132 20 55 1002
+5152 a 56 1002
+515c f 67 1002
+516b 2 68 1002
+516d f 59 1002
+517c 5 61 1002
+5181 13 62 1002
+5194 5 64 1002
+5199 2 69 1002
+FUNC 519b 5b 10 memmove_s
+519b 3 46 955
+519e 9 47 955
+51a7 2 50 955
+51a9 20 54 955
+51c9 5 55 955
+51ce 13 56 955
+51e1 f 58 955
+51f0 4 59 955
+51f4 2 60 955
+FUNC 51f6 a 4 _set_osplatform
+51f6 a 385 2595
+FUNC 5200 a 4 _set_osver
+5200 a 386 2595
+FUNC 520a a 4 _set_winver
+520a a 387 2595
+FUNC 5214 a 4 _set_winmajor
+5214 a 388 2595
+FUNC 521e a 4 _set_winminor
+521e a 389 2595
+FUNC 5228 24 4 fast_error_exit
+5228 0 375 2608
+5228 9 384 2608
+5231 5 386 2608
+5236 9 388 2608
+523f c 389 2608
+524b 1 390 2608
+FUNC 524c 41 0 check_managed_app
+524c 0 413 2608
+524c b 418 2608
+5257 5 422 2608
+525c a 424 2608
+5266 2 425 2608
+5268 9 427 2608
+5271 2 428 2608
+5273 7 433 2608
+527a 2 434 2608
+527c d 437 2608
+5289 1 438 2608
+528a 2 419 2608
+528c 1 438 2608
+FUNC 528d 1b6 0 __tmainCRTStartup
+528d c 203 2608
+5299 19 233 2608
+52b2 4 234 2608
+52b6 8 235 2608
+52be a 236 2608
+52c8 2 242 2608
+52ca 7 243 2608
+52d1 3 244 2608
+52d4 4 243 2608
+52d8 9 244 2608
+52e1 2 245 2608
+52e3 6 248 2608
+52e9 6 249 2608
+52ef 6 250 2608
+52f5 9 256 2608
+52fe 9 257 2608
+5307 8 258 2608
+530f 6 259 2608
+5315 d 260 2608
+5322 6 262 2608
+5328 5 263 2608
+532d 6 264 2608
+5333 6 265 2608
+5339 6 266 2608
+533f 8 271 2608
+5347 c 273 2608
+5353 8 274 2608
+535b 9 276 2608
+5364 8 277 2608
+536c 5 286 2608
+5371 4 294 2608
+5375 9 296 2608
+537e 8 297 2608
+5386 b 300 2608
+5391 a 303 2608
+539b 9 305 2608
+53a4 8 306 2608
+53ac 9 307 2608
+53b5 8 308 2608
+53bd 8 310 2608
+53c5 4 311 2608
+53c9 7 312 2608
+53d0 a 326 2608
+53da 18 327 2608
+53f2 6 330 2608
+53f8 6 331 2608
+53fe 5 333 2608
+5403 2 335 2608
+5405 17 336 2608
+541c 6 342 2608
+5422 6 344 2608
+5428 6 345 2608
+542e 5 347 2608
+5433 7 349 2608
+543a 3 351 2608
+543d 6 352 2608
+FUNC 5443 a 0 mainCRTStartup
+5443 0 186 2608
+5443 5 193 2608
+5448 5 195 2608
+FUNC 544d a 4 _initp_misc_invarg
+544d 0 38 3328
+544d 9 39 3328
+5456 1 40 3328
+FUNC 5457 fc 14 _invoke_watson
+5457 1c 111 3328
+5473 6 128 3328
+5479 6 129 3328
+547f 6 130 3328
+5485 3 131 3328
+5488 3 132 3328
+548b 3 133 3328
+548e 7 134 3328
+5495 7 135 3328
+549c 4 136 3328
+54a0 4 137 3328
+54a4 4 138 3328
+54a8 4 139 3328
+54ac 1 140 3328
+54ad 6 141 3328
+54b3 6 147 3328
+54b9 19 148 3328
+54d2 3 150 3328
+54d5 13 163 3328
+54e8 6 168 3328
+54ee 13 169 3328
+5501 6 171 3328
+5507 a 174 3328
+5511 a 176 3328
+551b 8 180 3328
+5523 8 181 3328
+552b 12 184 3328
+553d 16 185 3328
+FUNC 5553 22 4 _set_invalid_parameter_handler
+5553 1 207 3328
+5554 b 211 3328
+555f d 212 3328
+556c 5 214 3328
+5571 3 216 3328
+5574 1 217 3328
+FUNC 5575 d 0 _get_invalid_parameter_handler
+5575 0 221 3328
+5575 c 225 3328
+5581 1 228 3328
+FUNC 5582 9 14 _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)
+5582 3 266 3328
+5585 1 274 3328
+5586 5 273 3328
+FUNC 558b 24 14 _invalid_parameter
+558b 3 70 3328
+558e b 77 3328
+5599 5 78 3328
+559e 1 89 3328
+559f 2 80 3328
+55a1 8 86 3328
+55a9 1 89 3328
+55aa 5 88 3328
+FUNC 55af 10 0 _invalid_parameter_noinfo
+55af 0 98 3328
+55af f 99 3328
+55be 1 100 3328
+FUNC 55bf 9 14 _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)
+55bf 3 249 3328
+55c2 1 257 3328
+55c3 5 256 3328
+FUNC 55c8 96 8 _swprintf
+55c8 7 122 1564
+55cf 24 128 1564
+55f3 8 133 1564
+55fb 6 138 1564
+5601 22 153 1564
+5623 1d 160 1564
+5640 18 161 1564
+5658 4 163 1564
+565c 2 171 1564
+FUNC 565e 1a c __swprintf_l
+565e 0 181 1564
+565e 19 186 1564
+5677 1 188 1564
+FUNC 5678 1c c swprintf_s
+5678 0 238 1564
+5678 1b 243 1564
+5693 1 244 1564
+FUNC 5694 1f 10 _snwprintf_s
+5694 3 253 1564
+5697 1a 258 1564
+56b1 2 259 1564
+FUNC 56b3 1c c _swprintf_p
+56b3 0 267 1564
+56b3 1b 272 1564
+56ce 1 273 1564
+FUNC 56cf 1d 10 _swprintf_s_l
+56cf 3 282 1564
+56d2 18 287 1564
+56ea 2 288 1564
+FUNC 56ec 20 14 _snwprintf_s_l
+56ec 3 298 1564
+56ef 1b 303 1564
+570a 2 304 1564
+FUNC 570c 1d 10 _swprintf_p_l
+570c 3 313 1564
+570f 18 318 1564
+5727 2 319 1564
+FUNC 5729 11 4 _scwprintf
+5729 0 347 1564
+5729 10 352 1564
+5739 1 353 1564
+FUNC 573a 11 4 _scwprintf_p
+573a 0 359 1564
+573a 10 364 1564
+574a 1 365 1564
+FUNC 574b 16 8 _scwprintf_l
+574b 0 372 1564
+574b 15 376 1564
+5760 1 377 1564
+FUNC 5761 16 8 _scwprintf_p_l
+5761 0 384 1564
+5761 15 389 1564
+5776 1 390 1564
+FUNC 5777 14f 8 fprintf
+5777 c 49 1648
+5783 5 53 1648
+5788 2e 55 1648
+57b6 c 56 1648
+57c2 3 61 1648
+57c5 7 63 1648
+57cc 3 64 1648
+57cf b0 66 1648
+587f 5 67 1648
+5884 8 69 1648
+588c 11 70 1648
+589d a 71 1648
+58a7 c 75 1648
+58b3 3 79 1648
+58b6 6 80 1648
+58bc a 76 1648
+FUNC 58c6 1a c _fprintf_l
+58c6 0 88 1648
+58c6 19 93 1648
+58df 1 94 1648
+FUNC 58e0 1a c _fprintf_s_l
+58e0 0 102 1648
+58e0 19 107 1648
+58f9 1 108 1648
+FUNC 58fa 18 8 fprintf_s
+58fa 0 115 1648
+58fa 17 120 1648
+5911 1 121 1648
+FUNC 5912 1a c _fprintf_p_l
+5912 0 129 1648
+5912 19 134 1648
+592b 1 135 1648
+FUNC 592c 18 8 _fprintf_p
+592c 0 142 1648
+592c 17 147 1648
+5943 1 148 1648
+FUNC 5944 f6 18 _vswprintf_helper
+5944 7 125 1380
+594b 28 130 1380
+5973 2f 133 1380
+59a2 15 143 1380
+59b7 7 146 1380
+59be 2 148 1380
+59c0 6 150 1380
+59c6 13 157 1380
+59d9 5 160 1380
+59de 2 162 1380
+59e0 41 171 1380
+5a21 5 172 1380
+5a26 12 175 1380
+5a38 2 183 1380
+FUNC 5a3a 27 10 _vswprintf_c
+5a3a 0 241 1380
+5a3a 1f 242 1380
+5a59 7 243 1380
+5a60 1 244 1380
+FUNC 5a61 28 14 _vswprintf_c_l
+5a61 3 253 1380
+5a64 1c 254 1380
+5a80 7 255 1380
+5a87 2 256 1380
+FUNC 5a89 87 14 _vswprintf_s_l
+5a89 4 265 1380
+5a8d 25 269 1380
+5ab2 19 270 1380
+5acb 1a 272 1380
+5ae5 4 273 1380
+5ae9 3 275 1380
+5aec 5 278 1380
+5af1 1d 280 1380
+5b0e 2 288 1380
+FUNC 5b10 1b 10 vswprintf_s
+5b10 0 296 1380
+5b10 1a 297 1380
+5b2a 1 298 1380
+FUNC 5b2b 107 18 _vsnwprintf_s_l
+5b2b 5 308 1380
+5b30 27 313 1380
+5b57 13 314 1380
+5b6a 7 317 1380
+5b71 1b 319 1380
+5b8c 8 323 1380
+5b94 20 324 1380
+5bb4 5 325 1380
+5bb9 a 329 1380
+5bc3 7 331 1380
+5bca 2 333 1380
+5bcc 2 338 1380
+5bce 12 339 1380
+5be0 10 342 1380
+5bf0 a 344 1380
+5bfa a 346 1380
+5c04 2 348 1380
+5c06 4 352 1380
+5c0a 8 356 1380
+5c12 18 358 1380
+5c2a 6 360 1380
+5c30 2 366 1380
+FUNC 5c32 1e 14 _vsnwprintf_s
+5c32 3 375 1380
+5c35 19 376 1380
+5c4e 2 377 1380
+FUNC 5c50 27 10 _vswprintf_p
+5c50 0 385 1380
+5c50 1f 386 1380
+5c6f 7 387 1380
+5c76 1 388 1380
+FUNC 5c77 28 14 _vswprintf_p_l
+5c77 3 397 1380
+5c7a 1c 398 1380
+5c96 7 399 1380
+5c9d 2 400 1380
+FUNC 5c9f 24 4 _amsg_exit
+5c9f 0 446 2560
+5c9f 5 449 2560
+5ca4 9 450 2560
+5cad b 451 2560
+5cb8 a 452 2560
+5cc2 1 453 2560
+FUNC 5cc3 26 4 __crtCorExitProcess
+5cc3 0 650 2560
+5cc3 b 654 2560
+5cce 4 655 2560
+5cd2 c 656 2560
+5cde 4 657 2560
+5ce2 6 658 2560
+5ce8 1 668 2560
+FUNC 5ce9 15 4 __crtExitProcess
+5ce9 0 673 2560
+5ce9 a 674 2560
+5cf3 b 683 2560
+FUNC 5cfe 9 0 _lockexit
+5cfe 0 733 2560
+5cfe 8 734 2560
+5d06 1 735 2560
+FUNC 5d07 9 0 _unlockexit
+5d07 0 759 2560
+5d07 8 760 2560
+5d0f 1 761 2560
+FUNC 5d10 18 4 _initterm
+5d10 3 841 2560
+5d13 2 855 2560
+5d15 6 853 2560
+5d1b 2 854 2560
+5d1d 3 855 2560
+5d20 7 848 2560
+5d27 1 857 2560
+FUNC 5d28 20 8 _initterm_e
+5d28 1 890 2560
+5d29 c 899 2560
+5d35 6 904 2560
+5d3b 2 905 2560
+5d3d 3 906 2560
+5d40 7 899 2560
+5d47 1 910 2560
+FUNC 5d48 37 4 _get_osplatform
+5d48 0 929 2560
+5d48 27 931 2560
+5d6f 1 939 2560
+5d70 9 934 2560
+5d79 2 936 2560
+5d7b 3 938 2560
+5d7e 1 939 2560
+FUNC 5d7f 3c 4 _get_osver
+5d7f 0 958 2560
+5d7f 27 960 2560
+5da6 1 968 2560
+5da7 8 963 2560
+5daf 8 965 2560
+5db7 3 967 2560
+5dba 1 968 2560
+FUNC 5dbb 3c 4 _get_winver
+5dbb 0 987 2560
+5dbb 27 989 2560
+5de2 1 997 2560
+5de3 8 992 2560
+5deb 8 994 2560
+5df3 3 996 2560
+5df6 1 997 2560
+FUNC 5df7 3c 4 _get_winmajor
+5df7 0 1016 2560
+5df7 27 1018 2560
+5e1e 1 1026 2560
+5e1f 8 1021 2560
+5e27 8 1023 2560
+5e2f 3 1025 2560
+5e32 1 1026 2560
+FUNC 5e33 3c 4 _get_winminor
+5e33 0 1045 2560
+5e33 27 1047 2560
+5e5a 1 1055 2560
+5e5b 8 1050 2560
+5e63 8 1052 2560
+5e6b 3 1054 2560
+5e6e 1 1055 2560
+FUNC 5e6f 37 4 _get_wpgmptr
+5e6f 0 1074 2560
+5e6f 27 1076 2560
+5e96 1 1085 2560
+5e97 9 1080 2560
+5ea0 2 1082 2560
+5ea2 3 1084 2560
+5ea5 1 1085 2560
+FUNC 5ea6 37 4 _get_pgmptr
+5ea6 0 1104 2560
+5ea6 27 1106 2560
+5ecd 1 1115 2560
+5ece 9 1110 2560
+5ed7 2 1112 2560
+5ed9 3 1114 2560
+5edc 1 1115 2560
+FUNC 5edd 92 4 _cinit
+5edd 0 263 2560
+5edd 18 273 2560
+5ef5 b 275 2560
+5f00 5 277 2560
+5f05 f 283 2560
+5f14 4 284 2560
+5f18 4 285 2560
+5f1c a 288 2560
+5f26 20 293 2560
+5f46 1a 306 2560
+5f60 c 308 2560
+5f6c 2 312 2560
+5f6e 1 313 2560
+FUNC 5f6f e2 c doexit
+5f6f c 499 2560
+5f7b 8 517 2560
+5f83 5 518 2560
+5f88 b 520 2560
+5f93 6 521 2560
+5f99 8 524 2560
+5fa1 5 526 2560
+5fa6 e 542 2560
+5fb4 12 543 2560
+5fc6 5 545 2560
+5fcb b 546 2560
+5fd6 10 551 2560
+5fe6 9 552 2560
+5fef 2 553 2560
+5ff1 10 558 2560
+6001 10 566 2560
+6011 c 584 2560
+601d 6 588 2560
+6023 6 592 2560
+6029 8 594 2560
+6031 8 596 2560
+6039 3 584 2560
+603c 6 585 2560
+6042 9 586 2560
+604b 6 597 2560
+FUNC 6051 11 4 exit
+6051 0 397 2560
+6051 10 398 2560
+6061 1 399 2560
+FUNC 6062 11 4 _exit
+6062 0 405 2560
+6062 10 406 2560
+6072 1 407 2560
+FUNC 6073 f 0 _cexit
+6073 0 412 2560
+6073 e 413 2560
+6081 1 414 2560
+FUNC 6082 f 0 _c_exit
+6082 0 419 2560
+6082 e 420 2560
+6090 1 421 2560
+FUNC 6091 4c 0 _init_pointers
+6091 1 786 2560
+6092 7 787 2560
+6099 6 789 2560
+609f 6 790 2560
+60a5 6 791 2560
+60ab 6 792 2560
+60b1 6 793 2560
+60b7 6 794 2560
+60bd 6 795 2560
+60c3 6 796 2560
+60c9 13 799 2560
+60dc 1 800 2560
+FUNC 60e0 8b 4 strlen
+60e0 0 54 880
+60e0 4 63 880
+60e4 6 64 880
+60ea 2 65 880
+60ec 2 69 880
+60ee 3 70 880
+60f1 2 71 880
+60f3 2 72 880
+60f5 6 73 880
+60fb 2 74 880
+60fd 13 76 880
+6110 2 81 880
+6112 5 82 880
+6117 2 83 880
+6119 3 84 880
+611c 2 85 880
+611e 3 86 880
+6121 5 87 880
+6126 2 88 880
+6128 3 90 880
+612b 2 91 880
+612d 2 92 880
+612f 2 93 880
+6131 2 94 880
+6133 5 95 880
+6138 2 96 880
+613a 5 97 880
+613f 2 98 880
+6141 2 99 880
+6143 3 103 880
+6146 4 104 880
+614a 2 105 880
+614c 1 106 880
+614d 3 108 880
+6150 4 109 880
+6154 2 110 880
+6156 1 111 880
+6157 3 113 880
+615a 4 114 880
+615e 2 115 880
+6160 1 116 880
+6161 3 118 880
+6164 4 119 880
+6168 2 120 880
+616a 1 121 880
+FUNC 616b 33 4 _EH_prolog3
+616b 0 93 5671
+616b 1 101 5671
+616c 7 103 5671
+6173 4 112 5671
+6177 4 113 5671
+617b 1 114 5671
+617c 1 115 5671
+617d 1 116 5671
+617e 2 117 5671
+6180 2 118 5671
+6182 5 131 5671
+6187 2 132 5671
+6189 1 133 5671
+618a 3 134 5671
+618d 7 135 5671
+6194 3 150 5671
+6197 6 151 5671
+619d 1 153 5671
+FUNC 619e 36 4 _EH_prolog3_catch
+619e 0 206 5671
+619e 1 214 5671
+619f 7 216 5671
+61a6 4 225 5671
+61aa 4 226 5671
+61ae 1 228 5671
+61af 1 229 5671
+61b0 1 230 5671
+61b1 2 231 5671
+61b3 2 232 5671
+61b5 5 246 5671
+61ba 2 247 5671
+61bc 1 248 5671
+61bd 3 249 5671
+61c0 3 250 5671
+61c3 7 251 5671
+61ca 3 267 5671
+61cd 6 268 5671
+61d3 1 270 5671
+FUNC 61d4 36 4 _EH_prolog3_GS
+61d4 0 322 5671
+61d4 1 330 5671
+61d5 7 332 5671
+61dc 4 341 5671
+61e0 4 342 5671
+61e4 1 344 5671
+61e5 1 345 5671
+61e6 1 346 5671
+61e7 2 347 5671
+61e9 2 348 5671
+61eb 5 362 5671
+61f0 2 363 5671
+61f2 1 364 5671
+61f3 3 365 5671
+61f6 3 366 5671
+61f9 7 367 5671
+6200 3 384 5671
+6203 6 385 5671
+6209 1 387 5671
+FUNC 620a 39 4 _EH_prolog3_catch_GS
+620a 0 441 5671
+620a 1 449 5671
+620b 7 451 5671
+6212 4 460 5671
+6216 4 461 5671
+621a 1 463 5671
+621b 1 464 5671
+621c 1 465 5671
+621d 2 466 5671
+621f 2 467 5671
+6221 5 482 5671
+6226 2 483 5671
+6228 1 484 5671
+6229 3 485 5671
+622c 3 486 5671
+622f 3 487 5671
+6232 7 488 5671
+6239 3 505 5671
+623c 6 506 5671
+6242 1 508 5671
+FUNC 6243 14 0 _EH_epilog3
+6243 0 534 5671
+6243 3 537 5671
+6246 7 538 5671
+624d 1 539 5671
+624e 1 540 5671
+624f 1 541 5671
+6250 1 542 5671
+6251 1 543 5671
+6252 2 544 5671
+6254 1 545 5671
+6255 1 546 5671
+6256 1 547 5671
+FUNC 6257 f 0 _EH_epilog3_GS
+6257 0 575 5671
+6257 3 578 5671
+625a 2 579 5671
+625c 5 580 5671
+6261 5 581 5671
+FUNC 6266 f 0 _EH_epilog3_catch_GS
+6266 0 609 5671
+6266 3 612 5671
+6269 2 613 5671
+626b 5 614 5671
+6270 5 615 5671
+FUNC 6275 96 4 _stbuf
+6275 1 59 1850
+6276 14 69 1850
+628a 2 70 1850
+628c c 73 1850
+6298 4 74 1850
+629c c 75 1850
+62a8 3 76 1850
+62ab 6 82 1850
+62b1 6 86 1850
+62b7 4 87 1850
+62bb 1e 91 1850
+62d9 3 93 1850
+62dc e 94 1850
+62ea 2 96 1850
+62ec 7 98 1850
+62f3 6 99 1850
+62f9 8 102 1850
+6301 5 104 1850
+6306 1 105 1850
+6307 3 78 1850
+630a 1 105 1850
+FUNC 630b 2f 8 _ftbuf
+630b 0 138 1850
+630b 8 146 1850
+6313 c 148 1850
+631f 6 151 1850
+6325 7 152 1850
+632c 4 153 1850
+6330 9 154 1850
+6339 1 166 1850
+FUNC 633a 82 4 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+633a 0 261 1343
+633a f 262 1343
+6349 8 264 1343
+6351 5 265 1343
+6356 6 266 1343
+635c 1c 268 1343
+6378 21 269 1343
+6399 9 270 1343
+63a2 4 272 1343
+63a6 4 273 1343
+63aa 2 276 1343
+63ac a 278 1343
+63b6 6 280 1343
+FUNC 63bc e 0 _LocaleUpdate::~_LocaleUpdate()
+63bc 0 282 1343
+63bc 6 283 1343
+63c2 7 284 1343
+63c9 1 285 1343
+FUNC 63ca 3 0 _LocaleUpdate::GetLocaleT()
+63ca 2 287 1343
+63cc 1 289 1343
+FUNC 63cd 33 0 write_char
+63cd 0 2433 1312
+63cd a 2434 1312
+63d7 2 2437 1312
+63d9 21 2442 1312
+63fa 2 2444 1312
+63fc 1 2447 1312
+63fd 2 2446 1312
+63ff 1 2447 1312
+FUNC 6400 24 c write_multi_char
+6400 6 2498 1312
+6406 2 2501 1312
+6408 e 2500 1312
+6416 5 2501 1312
+641b 7 2499 1312
+6422 2 2504 1312
+FUNC 6424 4a 4 write_string
+6424 0 2563 1312
+6424 12 2564 1312
+6436 6 2566 1312
+643c 2 2567 1312
+643e e 2570 1312
+644c 5 2571 1312
+6451 a 2573 1312
+645b 9 2574 1312
+6464 9 2569 1312
+646d 1 2579 1312
+FUNC 646e d 4 get_int_arg
+646e 0 2602 1312
+646e c 2603 1312
+647a 1 2604 1312
+FUNC 647b 10 4 get_int64_arg
+647b 0 2644 1312
+647b f 2645 1312
+648a 1 2646 1312
+FUNC 648b e 4 get_short_arg
+648b 0 2671 1312
+648b d 2672 1312
+6498 1 2673 1312
+FUNC 6499 994 10 _output_l
+6499 1b 975 1312
+64b4 45 1036 1312
+64f9 2d 1031 1312
+6526 b1 1033 1312
+65d7 8 1036 1312
+65df 26 1073 1312
+6605 1d 1075 1312
+6622 8 1076 1312
+662a 18 1131 1312
+6642 13 1173 1312
+6655 3 1174 1312
+6658 5 1175 1312
+665d 1f 1179 1312
+667c 4 1193 1312
+6680 5 1194 1312
+6685 4 1181 1312
+6689 5 1182 1312
+668e 4 1184 1312
+6692 5 1185 1312
+6697 7 1190 1312
+669e 5 1191 1312
+66a3 4 1187 1312
+66a7 5 1196 1312
+66ac 5 1200 1312
+66b1 9 1206 1312
+66ba b 1233 1312
+66c5 4 1235 1312
+66c9 3 1236 1312
+66cc 5 1239 1312
+66d1 10 1241 1312
+66e1 5 1243 1312
+66e6 3 1248 1312
+66e9 5 1249 1312
+66ee 5 1253 1312
+66f3 9 1259 1312
+66fc b 1284 1312
+6707 4 1285 1312
+670b 5 1287 1312
+6710 10 1289 1312
+6720 5 1291 1312
+6725 18 1295 1312
+673d 7 1362 1312
+6744 5 1363 1312
+6749 5 1301 1312
+674e 1 1303 1312
+674f a 1304 1312
+6759 5 1306 1312
+675e 4 1308 1312
+6762 5 1310 1312
+6767 4 1358 1312
+676b 5 1359 1312
+6770 c 1322 1312
+677c 2 1324 1312
+677e f 1325 1312
+678d a 1327 1312
+6797 2 1329 1312
+6799 a 1330 1312
+67a3 5 1332 1312
+67a8 30 1337 1312
+67d8 3 1352 1312
+67db 13 1158 1312
+67ee 11 1160 1312
+67ff 3 1161 1312
+6802 b 1163 1312
+680d b 1166 1312
+6818 5 1167 1312
+681d 32 1378 1312
+684f d 1716 1312
+685c 4 1724 1312
+6860 17 1749 1312
+6877 c 1750 1312
+6883 8 1381 1312
+688b 9 1385 1312
+6894 8 1561 1312
+689c 7 1562 1312
+68a3 d 1584 1312
+68b0 3 1589 1312
+68b3 15 1635 1312
+68c8 4 1636 1312
+68cc 8 1637 1312
+68d4 f 1639 1312
+68e3 1d 1378 1312
+6900 12 1448 1312
+6912 16 1467 1312
+6928 4 1470 1312
+692c 7 1471 1312
+6933 2 1472 1312
+6935 6 1499 1312
+693b 7 1500 1312
+6942 6 1503 1312
+6948 5 1506 1312
+694d 5 1523 1312
+6952 e 1541 1312
+6960 6 1546 1312
+6966 d 1548 1312
+6973 7 1549 1312
+697a 5 1550 1312
+697f 3 1551 1312
+6982 5 1553 1312
+6987 8 1543 1312
+698f 7 1544 1312
+6996 5 1557 1312
+699b 34 1378 1312
+69cf d 1908 1312
+69dc 9 1910 1312
+69e5 8 1668 1312
+69ed d 1688 1312
+69fa 6 1702 1312
+6a00 7 1703 1312
+6a07 2 1704 1312
+6a09 5 1706 1312
+6a0e 7 1708 1312
+6a15 5 1710 1312
+6a1a 4 1864 1312
+6a1e 7 1869 1312
+6a25 c 1933 1312
+6a31 8 1939 1312
+6a39 5 1958 1312
+6a3e 7 1751 1312
+6a45 9 1752 1312
+6a4e 5 1753 1312
+6a53 3 1754 1312
+6a56 9 1756 1312
+6a5f f 1759 1312
+6a6e 2 1760 1312
+6a70 13 1765 1312
+6a83 9 1767 1312
+6a8c e 1809 1312
+6a9a 27 1828 1312
+6ac1 13 1838 1312
+6ad4 15 1840 1312
+6ae9 a 1844 1312
+6af3 15 1846 1312
+6b08 5 1852 1312
+6b0d 7 1853 1312
+6b14 4 1854 1312
+6b18 1 1857 1312
+6b19 5 1859 1312
+6b1e 7 1877 1312
+6b25 3 1887 1312
+6b28 2 1888 1312
+6b2a 1a 1378 1312
+6b44 7 1892 1312
+6b4b 11 1897 1312
+6b5c c 1900 1312
+6b68 7 1901 1312
+6b6f 5 1903 1312
+6b74 5 1961 1312
+6b79 6 1987 1312
+6b7f 14 2026 1312
+6b93 2 2045 1312
+6b95 5 2051 1312
+6b9a 2 2071 1312
+6b9c 3 2074 1312
+6b9f 6 2080 1312
+6ba5 2 2099 1312
+6ba7 5 2105 1312
+6bac f 2128 1312
+6bbb 7 2129 1312
+6bc2 7 2130 1312
+6bc9 c 2136 1312
+6bd5 2 2142 1312
+6bd7 6 2148 1312
+6bdd 7 2149 1312
+6be4 2 2150 1312
+6be6 4 2151 1312
+6bea a 2152 1312
+6bf4 3 2153 1312
+6bf7 6 2157 1312
+6bfd 3 2158 1312
+6c00 6 2163 1312
+6c06 10 2165 1312
+6c16 10 2166 1312
+6c26 c 2168 1312
+6c32 3 2170 1312
+6c35 3 2172 1312
+6c38 2 2173 1312
+6c3a 8 2175 1312
+6c42 1 2176 1312
+6c43 19 2180 1312
+6c5c 9 2181 1312
+6c65 1 2182 1312
+6c66 2 2185 1312
+6c68 6 1640 1312
+6c6e 2 1641 1312
+6c70 4 1640 1312
+6c74 5 1642 1312
+6c79 2 1644 1312
+6c7b 4 1645 1312
+6c7f 8 1646 1312
+6c87 5 1647 1312
+6c8c 6 1648 1312
+6c92 1 1649 1312
+6c93 4 1648 1312
+6c97 6 1650 1312
+6c9d a 2201 1312
+6ca7 7 2204 1312
+6cae 6 2205 1312
+6cb4 4 2207 1312
+6cb8 2 2208 1312
+6cba 4 2210 1312
+6cbe 4 2212 1312
+6cc2 2 2213 1312
+6cc4 4 2215 1312
+6cc8 4 2217 1312
+6ccc 7 2218 1312
+6cd3 9 2224 1312
+6cdc 6 2228 1312
+6ce2 11 2230 1312
+6cf3 11 2234 1312
+6d04 d 2236 1312
+6d11 f 2238 1312
+6d20 d 2243 1312
+6d2d 3 2249 1312
+6d30 3 2250 1312
+6d33 1e 2252 1312
+6d51 9 2253 1312
+6d5a 18 2257 1312
+6d72 2 1690 1312
+6d74 4 2254 1312
+6d78 2 2259 1312
+6d7a d 2260 1312
+6d87 c 2290 1312
+6d93 f 2292 1312
+6da2 6 2297 1312
+6da8 8 2298 1312
+6db0 1e 2299 1312
+6dce 17 1163 1312
+6de5 10 2376 1312
+6df5 38 2377 1312
+FUNC 6e2d 3b 4 _get_errno_from_oserr
+6e2d 0 119 6100
+6e2d 6 123 6100
+6e33 f 124 6100
+6e42 8 133 6100
+6e4a 3 134 6100
+6e4d 1 139 6100
+6e4e 7 125 6100
+6e55 1 139 6100
+6e56 11 135 6100
+6e67 1 139 6100
+FUNC 6e68 13 0 _errno
+6e68 0 280 6100
+6e68 5 281 6100
+6e6d 4 282 6100
+6e71 5 283 6100
+6e76 1 288 6100
+6e77 3 285 6100
+6e7a 1 288 6100
+FUNC 6e7b 13 0 __doserrno
+6e7b 0 293 6100
+6e7b 5 294 6100
+6e80 4 295 6100
+6e84 5 296 6100
+6e89 1 300 6100
+6e8a 3 298 6100
+6e8d 1 300 6100
+FUNC 6e8e 1e 4 _dosmaperr
+6e8e 1 110 6100
+6e8f 9 111 6100
+6e98 13 113 6100
+6eab 1 114 6100
+FUNC 6eac 1b 4 _set_errno
+6eac 0 157 6100
+6eac 5 158 6100
+6eb1 4 159 6100
+6eb5 3 161 6100
+6eb8 1 168 6100
+6eb9 b 165 6100
+6ec4 2 166 6100
+6ec6 1 168 6100
+FUNC 6ec7 2a 4 _get_errno
+6ec7 1 187 6100
+6ec8 1b 189 6100
+6ee3 1 195 6100
+6ee4 9 193 6100
+6eed 3 194 6100
+6ef0 1 195 6100
+FUNC 6ef1 1b 4 _set_doserrno
+6ef1 0 213 6100
+6ef1 5 214 6100
+6ef6 4 215 6100
+6efa 3 217 6100
+6efd 1 224 6100
+6efe b 221 6100
+6f09 2 222 6100
+6f0b 1 224 6100
+FUNC 6f0c 2a 4 _get_doserrno
+6f0c 1 243 6100
+6f0d 1b 245 6100
+6f28 1 251 6100
+6f29 9 249 6100
+6f32 3 250 6100
+6f35 1 251 6100
+FUNC 6f38 45 0 _SEH_prolog4
+FUNC 6f7d 14 0 _SEH_epilog4
+FUNC 6fa0 24 0 ValidateLocalCookies
+FUNC 6fd0 196 10 _except_handler4
+FUNC 7166 90 10 vprintf_helper
+7166 c 47 1507
+7172 d 48 1507
+717f 2b 52 1507
+71aa 7 55 1507
+71b1 3 56 1507
+71b4 8 58 1507
+71bc 10 59 1507
+71cc a 60 1507
+71d6 c 63 1507
+71e2 3 67 1507
+71e5 6 68 1507
+71eb 3 63 1507
+71ee 8 64 1507
+FUNC 71f6 1a c _vprintf_l
+71f6 0 75 1507
+71f6 19 76 1507
+720f 1 77 1507
+FUNC 7210 1a c _vprintf_s_l
+7210 0 84 1507
+7210 19 85 1507
+7229 1 86 1507
+FUNC 722a 1a c _vprintf_p_l
+722a 0 93 1507
+722a 19 94 1507
+7243 1 95 1507
+FUNC 7244 18 8 vprintf
+7244 0 101 1507
+7244 17 102 1507
+725b 1 103 1507
+FUNC 725c 18 8 vprintf_s
+725c 0 109 1507
+725c 17 110 1507
+7273 1 111 1507
+FUNC 7274 18 8 _vprintf_p
+7274 0 117 1507
+7274 17 118 1507
+728b 1 119 1507
+FUNC 728c 104 0 __report_gsfailure
+728c 9 140 3731
+7295 5 170 3731
+729a 6 171 3731
+72a0 6 172 3731
+72a6 6 173 3731
+72ac 6 174 3731
+72b2 6 175 3731
+72b8 7 176 3731
+72bf 7 177 3731
+72c6 7 178 3731
+72cd 7 179 3731
+72d4 7 180 3731
+72db 7 181 3731
+72e2 1 182 3731
+72e3 6 183 3731
+72e9 3 190 3731
+72ec 5 191 3731
+72f1 3 192 3731
+72f4 5 193 3731
+72f9 3 194 3731
+72fc 5 195 3731
+7301 6 201 3731
+7307 a 204 3731
+7311 a 206 3731
+731b a 285 3731
+7325 a 286 3731
+732f b 293 3731
+733a b 294 3731
+7345 b 297 3731
+7350 8 298 3731
+7358 8 302 3731
+7360 b 304 3731
+736b 9 313 3731
+7374 8 315 3731
+737c 12 319 3731
+738e 2 320 3731
+FUNC 7390 5c6 c _write_nolock
+7390 22 95 4777
+73b2 2 106 4777
+73b4 11 108 4777
+73c5 7 109 4777
+73cc 2b 111 4777
+73f7 27 113 4777
+741e 10 116 4777
+742e 33 119 4777
+7461 6 122 4777
+7467 f 126 4777
+7476 1c 143 4777
+7492 5 146 4777
+7497 8 147 4777
+749f 14 148 4777
+74b3 16 152 4777
+74c9 6 153 4777
+74cf 4 157 4777
+74d3 16 160 4777
+74e9 9 153 4777
+74f2 b 163 4777
+74fd 9 164 4777
+7506 11 170 4777
+7517 18 171 4777
+752f 2 173 4777
+7531 14 174 4777
+7545 18 175 4777
+755d 4 181 4777
+7561 2e 205 4777
+758f 21 212 4777
+75b0 6 213 4777
+75b6 8 214 4777
+75be a 222 4777
+75c8 29 229 4777
+75f1 a 230 4777
+75fb 3 232 4777
+75fe 3 233 4777
+7601 2 238 4777
+7603 8 186 4777
+760b 3 191 4777
+760e 9 192 4777
+7617 f 193 4777
+7626 8 240 4777
+762e 13 242 4777
+7641 3 244 4777
+7644 6 251 4777
+764a 3 254 4777
+764d 14 255 4777
+7661 3 257 4777
+7664 12 258 4777
+7676 5 236 4777
+767b e 268 4777
+7689 12 277 4777
+769b f 278 4777
+76aa d 279 4777
+76b7 8 283 4777
+76bf 9 284 4777
+76c8 5 285 4777
+76cd 3 286 4777
+76d0 7 287 4777
+76d7 f 289 4777
+76e6 25 297 4777
+770b 6 299 4777
+7711 16 300 4777
+7727 f 308 4777
+7736 f 314 4777
+7745 b 315 4777
+7750 8 319 4777
+7758 c 320 4777
+7764 6 321 4777
+776a 4 322 4777
+776e c 323 4777
+777a f 325 4777
+7789 25 333 4777
+77ae 6 335 4777
+77b4 1a 336 4777
+77ce 5 344 4777
+77d3 f 359 4777
+77e2 13 361 4777
+77f5 8 365 4777
+77fd b 366 4777
+7808 6 367 4777
+780e a 369 4777
+7818 11 371 4777
+7829 2f 382 4777
+7858 4 384 4777
+785c 25 406 4777
+7881 3 407 4777
+7884 6 412 4777
+788a 9 409 4777
+7893 4 419 4777
+7897 15 423 4777
+78ac 2 428 4777
+78ae 1b 434 4777
+78c9 a 437 4777
+78d3 2 439 4777
+78d5 9 440 4777
+78de a 443 4777
+78e8 7 447 4777
+78ef 8 449 4777
+78f7 b 452 4777
+7902 2 455 4777
+7904 9 456 4777
+790d 2 457 4777
+790f 11 459 4777
+7920 4 460 4777
+7924 b 462 4777
+792f 7 463 4777
+7936 5 464 4777
+793b 5 469 4777
+7940 16 470 4777
+FUNC 7956 dc c _write
+7956 c 61 4777
+7962 23 66 4777
+7985 2f 67 4777
+79b4 20 68 4777
+79d4 7 70 4777
+79db 3 72 4777
+79de 9 73 4777
+79e7 14 74 4777
+79fb 2 75 4777
+79fd b 76 4777
+7a08 7 77 4777
+7a0f 4 78 4777
+7a13 c 82 4777
+7a1f 3 86 4777
+7a22 6 87 4777
+7a28 a 83 4777
+FUNC 7a32 2d 4 _fileno
+7a32 0 40 2176
+7a32 27 41 2176
+7a59 1 43 2176
+7a5a 4 42 2176
+7a5e 1 43 2176
+FUNC 7a5f e1 4 _commit
+7a5f c 39 5043
+7a6b 1b 43 5043
+7a86 28 44 5043
+7aae 20 45 5043
+7ace 7 47 5043
+7ad5 3 48 5043
+7ad8 9 49 5043
+7ae1 14 51 5043
+7af5 9 52 5043
+7afe 2 54 5043
+7b00 3 55 5043
+7b03 5 59 5043
+7b08 a 62 5043
+7b12 b 66 5043
+7b1d 4 67 5043
+7b21 c 72 5043
+7b2d 3 75 5043
+7b30 6 76 5043
+7b36 a 73 5043
+FUNC 7b40 49 0 _mtinitlocks
+7b40 2 137 2371
+7b42 7 144 2371
+7b49 11 145 2371
+7b5a 2 146 2371
+7b5c 15 148 2371
+7b71 6 144 2371
+7b77 5 157 2371
+7b7c d 158 2371
+FUNC 7b89 55 0 _mtdeletelocks
+7b89 1 188 2371
+7b8a d 194 2371
+7b97 c 196 2371
+7ba3 3 200 2371
+7ba6 6 206 2371
+7bac f 207 2371
+7bbb 6 215 2371
+7bc1 c 217 2371
+7bcd 10 221 2371
+7bdd 1 224 2371
+FUNC 7bde 15 4 _unlock
+7bde 3 371 2371
+7be1 10 375 2371
+7bf1 2 376 2371
+FUNC 7bf3 18 4 _lockerr_exit
+7bf3 0 403 2371
+7bf3 c 404 2371
+7bff b 405 2371
+7c0a 1 406 2371
+FUNC 7c0b c3 4 _mtinitlocknum
+7c0b c 259 2371
+7c17 6 261 2371
+7c1d a 269 2371
+7c27 5 270 2371
+7c2c 7 271 2371
+7c33 c 272 2371
+7c3f e 276 2371
+7c4d 4 277 2371
+7c51 e 279 2371
+7c5f b 280 2371
+7c6a 4 281 2371
+7c6e 8 284 2371
+7c76 3 285 2371
+7c79 4 287 2371
+7c7d 11 288 2371
+7c8e 7 289 2371
+7c95 b 290 2371
+7ca0 3 291 2371
+7ca3 2 292 2371
+7ca5 2 293 2371
+7ca7 2 296 2371
+7ca9 7 297 2371
+7cb0 c 300 2371
+7cbc 3 304 2371
+7cbf 6 305 2371
+7cc5 9 301 2371
+FUNC 7cce 31 4 _lock
+7cce 3 333 2371
+7cd1 10 338 2371
+7ce1 b 340 2371
+7cec 8 341 2371
+7cf4 9 348 2371
+7cfd 2 349 2371
+FUNC 7cff 240 0 _ioinit
+7cff c 111 4958
+7d0b 5 122 4958
+7d10 a 127 4958
+7d1a 7 128 4958
+7d21 f 137 4958
+7d30 6 139 4958
+7d36 5 142 4958
+7d3b 6 143 4958
+7d41 8 145 4958
+7d49 4 146 4958
+7d4d 3 147 4958
+7d50 4 148 4958
+7d54 3 149 4958
+7d57 4 151 4958
+7d5b 4 152 4958
+7d5f 4 153 4958
+7d63 13 145 4958
+7d76 15 161 4958
+7d8b 2 166 4958
+7d8d 3 172 4958
+7d90 6 173 4958
+7d96 b 179 4958
+7da1 5 185 4958
+7da6 f 191 4958
+7db5 9 204 4958
+7dbe 7 205 4958
+7dc5 8 207 4958
+7dcd 4 208 4958
+7dd1 3 209 4958
+7dd4 4 210 4958
+7dd8 4 211 4958
+7ddc 4 212 4958
+7de0 4 213 4958
+7de4 4 214 4958
+7de8 f 207 4958
+7df7 9 185 4958
+7e00 2 284 4958
+7e02 6 197 4958
+7e08 8 221 4958
+7e10 24 234 4958
+7e34 15 236 4958
+7e49 7 237 4958
+7e50 5 238 4958
+7e55 18 241 4958
+7e6d 3 243 4958
+7e70 d 221 4958
+7e7d 2 253 4958
+7e7f b 255 4958
+7e8a c 258 4958
+7e96 6 306 4958
+7e9c 4 262 4958
+7ea0 30 266 4958
+7ed0 2 271 4958
+7ed2 a 277 4958
+7edc 6 278 4958
+7ee2 5 279 4958
+7ee7 4 280 4958
+7eeb 14 284 4958
+7eff 3 286 4958
+7f02 2 288 4958
+7f04 4 297 4958
+7f08 6 298 4958
+7f0e a 253 4958
+7f18 c 313 4958
+7f24 4 315 4958
+7f28 7 128 4958
+7f2f a 129 4958
+7f39 6 316 4958
+FUNC 7f3f 4c 0 _ioterm
+7f3f 2 341 4958
+7f41 5 345 4958
+7f46 6 347 4958
+7f4c 8 353 4958
+7f54 9 355 4958
+7f5d 11 356 4958
+7f6e 4 353 4958
+7f72 7 361 4958
+7f79 11 362 4958
+7f8a 1 365 4958
+FUNC 7f8b 21 4 wait_a_bit
+7f8b 1 18 5557
+7f8c b 19 5557
+7f97 6 20 5557
+7f9d 8 21 5557
+7fa5 3 22 5557
+7fa8 3 23 5557
+7fab 1 24 5557
+FUNC 7fac 10 4 _set_malloc_crt_max_wait
+7fac 0 32 5557
+7fac f 34 5557
+7fbb 1 36 5557
+FUNC 7fbc 40 4 _malloc_crt
+7fbc 2 39 5557
+7fbe 2 40 5557
+7fc0 b 44 5557
+7fcb d 45 5557
+7fd8 18 46 5557
+7ff0 7 47 5557
+7ff7 4 50 5557
+7ffb 1 51 5557
+FUNC 7ffc 48 8 _calloc_crt
+7ffc 2 54 5557
+7ffe 2 55 5557
+8000 14 61 5557
+8014 c 62 5557
+8020 18 63 5557
+8038 7 64 5557
+803f 4 67 5557
+8043 1 68 5557
+FUNC 8044 4b 8 _realloc_crt
+8044 2 71 5557
+8046 2 72 5557
+8048 f 76 5557
+8057 14 77 5557
+806b 18 78 5557
+8083 7 79 5557
+808a 4 82 5557
+808e 1 83 5557
+FUNC 808f 50 c _recalloc_crt
+808f 2 86 5557
+8091 2 87 5557
+8093 16 91 5557
+80a9 12 92 5557
+80bb 18 94 5557
+80d3 7 95 5557
+80da 4 100 5557
+80de 1 101 5557
+FUNC 80df 8 0 _malloc_crt_fastcall
+80df 0 105 5557
+80df 7 106 5557
+80e6 1 107 5557
+FUNC 80e7 a 0 _calloc_crt_fastcall
+80e7 0 110 5557
+80e7 9 111 5557
+80f0 1 112 5557
+FUNC 80f1 a 0 _realloc_crt_fastcall
+80f1 0 115 5557
+80f1 9 116 5557
+80fa 1 117 5557
+FUNC 80fb 8e 4 free
+80fb c 42 5515
+8107 7 47 5515
+810e 9 53 5515
+8117 8 57 5515
+811f 4 58 5515
+8123 e 60 5515
+8131 9 61 5515
+813a c 64 5515
+8146 6 68 5515
+814c 3 70 5515
+814f 2 106 5515
+8151 9 65 5515
+815a f 109 5515
+8169 4 110 5515
+816d 16 112 5515
+8183 6 115 5515
+FUNC 8189 9f 0 _fcloseall
+8189 c 43 1792
+8195 5 44 1792
+819a 8 47 1792
+81a2 3 48 1792
+81a5 e 50 1792
+81b3 10 52 1792
+81c3 14 57 1792
+81d7 3 58 1792
+81da 5 63 1792
+81df 12 65 1792
+81f1 e 66 1792
+81ff 8 67 1792
+8207 3 50 1792
+820a c 73 1792
+8216 3 77 1792
+8219 6 78 1792
+821f 9 74 1792
+FUNC 8228 19 4 std::bad_exception::bad_exception(char const *)
+8228 13 351 6035
+823b 6 352 6035
+FUNC 8241 b 0 std::bad_exception::~bad_exception()
+8241 6 355 6035
+8247 5 356 6035
+FUNC 824c 22 0 std::bad_exception::`vector deleting destructor'(unsigned int)
+FUNC 826e 5c c __TypeMatch
+826e 2 999 6034
+8270 13 1001 6034
+8283 1b 1008 6034
+829e 4 1009 6034
+82a2 22 1023 6034
+82c4 5 1002 6034
+82c9 1 1024 6034
+FUNC 82ca 44 4 __FrameUnwindFilter
+82ca 0 1035 6034
+82ca 6 1038 6034
+82d0 e 1040 6034
+82de 13 1076 6034
+82f1 e 1068 6034
+82ff c 1070 6034
+830b 2 1072 6034
+830d 1 1078 6034
+FUNC 830e e1 10 __FrameUnwindToState
+830e c 1105 6034
+831a 1b 1112 6034
+8335 c 1114 6034
+8341 4 1115 6034
+8345 5 1119 6034
+834a f 1123 6034
+8359 f 1126 6034
+8368 7 1128 6034
+836f 6 1131 6034
+8375 3 1138 6034
+8378 12 1145 6034
+838a 6 1149 6034
+8390 d 1151 6034
+839d d 1153 6034
+83aa 3 1155 6034
+83ad 2 1156 6034
+83af c 1157 6034
+83bb a 1169 6034
+83c5 3 1176 6034
+83c8 6 1180 6034
+83ce 6 1157 6034
+83d4 e 1158 6034
+83e2 d 1159 6034
+FUNC 83ef 45 0 ExFilterRethrow
+83ef 0 1533 6034
+83ef 2 1535 6034
+83f1 2f 1538 6034
+8420 e 1542 6034
+842e 2 1543 6034
+8430 1 1547 6034
+8431 2 1545 6034
+8433 1 1547 6034
+FUNC 8434 54 8 __DestructExceptionObject
+8434 c 1791 6034
+8440 f 1794 6034
+844f e 1801 6034
+845d 4 1803 6034
+8461 9 1810 6034
+846a 7 1814 6034
+8471 6 1824 6034
+8477 c 1815 6034
+8483 5 1819 6034
+FUNC 8488 25 8 __AdjustPointer
+8488 0 1842 6034
+8488 d 1843 6034
+8495 6 1845 6034
+849b 3 1850 6034
+849e e 1852 6034
+84ac 1 1856 6034
+FUNC 84ad 13 0 __uncaught_exception()
+84ad 0 1867 6034
+84ad 12 1868 6034
+84bf 1 1869 6034
+FUNC 84c0 b3 8 __CxxRegisterExceptionObject
+84c0 0 2077 6034
+84c0 14 2085 6034
+84d4 26 2087 6034
+84fa 6 2088 6034
+8500 b 2090 6034
+850b b 2093 6034
+8516 e 2094 6034
+8524 e 2095 6034
+8532 b 2096 6034
+853d 2 2097 6034
+853f 4 2098 6034
+8543 4 2099 6034
+8547 c 2101 6034
+8553 10 2102 6034
+8563 c 2103 6034
+856f 3 2104 6034
+8572 1 2105 6034
+FUNC 8573 4c 4 __CxxDetectRethrow
+8573 0 2117 6034
+8573 6 2119 6034
+8579 2 2120 6034
+857b 2 2121 6034
+857d 2f 2122 6034
+85ac c 2123 6034
+85b8 3 2124 6034
+85bb 1 2127 6034
+85bc 2 2126 6034
+85be 1 2127 6034
+FUNC 85bf 139 8 __CxxUnregisterExceptionObject
+85bf 1 2139 6034
+85c0 4 2143 6034
+85c4 d 2145 6034
+85d1 6 2146 6034
+85d7 85 2149 6034
+865c 14 2150 6034
+8670 5b 2152 6034
+86cb c 2153 6034
+86d7 e 2154 6034
+86e5 12 2155 6034
+86f7 1 2157 6034
+FUNC 86f8 4 0 __CxxQueryExceptionSize
+86f8 0 2167 6034
+86f8 3 2168 6034
+86fb 1 2169 6034
+FUNC 86fc 32 8 __CxxCallUnwindDtor
+86fc c 2189 6034
+8708 4 2190 6034
+870c 6 2192 6034
+8712 2 2193 6034
+8714 d 2194 6034
+8721 7 2197 6034
+8728 6 2198 6034
+FUNC 872e 33 8 __CxxCallUnwindDelDtor
+872e c 2218 6034
+873a 4 2219 6034
+873e 7 2221 6034
+8745 2 2222 6034
+8747 d 2223 6034
+8754 7 2226 6034
+875b 6 2227 6034
+FUNC 8761 32 8 __CxxCallUnwindStdDelDtor
+8761 c 2247 6034
+876d 4 2248 6034
+8771 6 2250 6034
+8777 2 2251 6034
+8779 d 2252 6034
+8786 7 2255 6034
+878d 6 2256 6034
+FUNC 8793 3b 14 __CxxCallUnwindVecDtor
+8793 c 2282 6034
+879f 4 2283 6034
+87a3 f 2285 6034
+87b2 2 2286 6034
+87b4 d 2287 6034
+87c1 7 2290 6034
+87c8 6 2291 6034
+FUNC 87ce 79 4 IsInExceptionSpec
+87ce 6 2302 6034
+87d4 9 2303 6034
+87dd 5 2307 6034
+87e2 f 2323 6034
+87f1 9 2326 6034
+87fa 2 2327 6034
+87fc 10 2328 6034
+880c 26 2335 6034
+8832 4 2337 6034
+8836 c 2323 6034
+8842 3 2343 6034
+8845 2 2344 6034
+FUNC 8847 49 4 CallUnexpected
+8847 c 2379 6034
+8853 13 2380 6034
+8866 4 2383 6034
+886a 5 2384 6034
+886f 4 2391 6034
+8873 5 2392 6034
+8878 8 2388 6034
+8880 10 2390 6034
+FUNC 8890 30 0 Is_bad_exception_allowed
+8890 2 2399 6034
+8892 8 2400 6034
+889a 1d 2402 6034
+88b7 4 2408 6034
+88bb 1 2409 6034
+88bc 4 2404 6034
+FUNC 88c0 82 8 _is_exception_typeof(type_info const &,_EXCEPTION_POINTERS *)
+88c0 1 2416 6034
+88c1 e 2417 6034
+88cf 2 2419 6034
+88d1 9 2422 6034
+88da 2b 2423 6034
+8905 6 2432 6034
+890b 7 2433 6034
+8912 2 2445 6034
+8914 20 2446 6034
+8934 4 2439 6034
+8938 4 2454 6034
+893c 6 2455 6034
+FUNC 8942 19c 18 CallCatchBlock
+8942 14 1431 6034
+8956 3 1437 6034
+8959 4 1439 6034
+895d 6 1443 6034
+8963 11 1447 6034
+8974 e 1451 6034
+8982 e 1452 6034
+8990 b 1454 6034
+899b e 1455 6034
+89a9 a 1457 6034
+89b3 3 1458 6034
+89b6 16 1463 6034
+89cc 12 1464 6034
+89de c 1465 6034
+89ea 3 1470 6034
+89ed 15 1471 6034
+8a02 3 1472 6034
+8a05 c 1474 6034
+8a11 11 1476 6034
+8a22 7 1478 6034
+8a29 d 1482 6034
+8a36 b 1486 6034
+8a41 13 1488 6034
+8a54 3 1517 6034
+8a57 6 1518 6034
+8a5d 5 1474 6034
+8a62 6 1488 6034
+8a68 6 1494 6034
+8a6e 9 1497 6034
+8a77 e 1500 6034
+8a85 e 1501 6034
+8a93 3f 1510 6034
+8ad2 c 1511 6034
+FUNC 8ade 17f 10 __BuildCatchObjectHelper
+8ade c 1575 6034
+8aea 5 1576 6034
+8aef 2a 1582 6034
+8b19 2 1588 6034
+8b1b 3 1590 6034
+8b1e 2 1588 6034
+8b20 2 1592 6034
+8b22 4 1611 6034
+8b26 3 1614 6034
+8b29 4 1622 6034
+8b2d 4 1615 6034
+8b31 26 1622 6034
+8b57 5 1623 6034
+8b5c 11 1625 6034
+8b6d 5 1628 6034
+8b72 3 1629 6034
+8b75 6 1636 6034
+8b7b 4 1629 6034
+8b7f 20 1636 6034
+8b9f 12 1637 6034
+8bb1 10 1639 6034
+8bc1 4 1641 6034
+8bc5 2 1646 6034
+8bc7 5 1649 6034
+8bcc 18 1654 6034
+8be4 1e 1656 6034
+8c02 2 1660 6034
+8c04 25 1668 6034
+8c29 d 1672 6034
+8c36 2 1677 6034
+8c38 5 1678 6034
+8c3d 7 1681 6034
+8c44 5 1688 6034
+8c49 7 1682 6034
+8c50 5 1684 6034
+8c55 2 1584 6034
+8c57 6 1689 6034
+FUNC 8c5d 91 10 __BuildCatchObject
+8c5d c 1712 6034
+8c69 b 1716 6034
+8c74 3 1718 6034
+8c77 2 1720 6034
+8c79 a 1739 6034
+8c83 4 1743 6034
+8c87 1a 1744 6034
+8ca1 1a 1756 6034
+8cbb 2 1757 6034
+8cbd 18 1750 6034
+8cd5 7 1762 6034
+8cdc 6 1769 6034
+8ce2 7 1763 6034
+8ce9 5 1765 6034
+FUNC 8cee 143 10 __CxxExceptionFilter
+8cee 3 1973 6034
+8cf1 a 1985 6034
+8cfb 3 2065 6034
+8cfe 2a 1993 6034
+8d28 32 2008 6034
+8d5a 6 2010 6034
+8d60 c 2011 6034
+8d6c 6 2012 6034
+8d72 b 2013 6034
+8d7d f 2040 6034
+8d8c a 2041 6034
+8d96 2 2047 6034
+8d98 1b 2050 6034
+8db3 4 2042 6034
+8db7 2 2050 6034
+8db9 c 2052 6034
+8dc5 6 2053 6034
+8dcb 13 2054 6034
+8dde 2 2055 6034
+8de0 25 1995 6034
+8e05 6 1997 6034
+8e0b e 1999 6034
+8e19 4 2000 6034
+8e1d c 2004 6034
+8e29 6 2005 6034
+8e2f 2 2065 6034
+FUNC 8e31 6c 20 CatchIt
+8e31 3 1217 6034
+8e34 6 1233 6034
+8e3a 10 1234 6034
+8e4a 4 1253 6034
+8e4e 6 1254 6034
+8e54 2 1255 6034
+8e56 8 1256 6034
+8e5e e 1259 6034
+8e6c 3 1265 6034
+8e6f 21 1273 6034
+8e90 4 1278 6034
+8e94 7 1280 6034
+8e9b 2 1286 6034
+FUNC 8e9d f2 20 FindHandlerForForeignException
+8e9d 6 913 6034
+8ea3 10 920 6034
+8eb3 2a 926 6034
+8edd 23 934 6034
+8f00 e 940 6034
+8f0e 17 945 6034
+8f25 c 948 6034
+8f31 29 954 6034
+8f5a 33 974 6034
+8f8d 2 984 6034
+FUNC 8f8f 356 20 FindHandler
+8f8f 6 569 6034
+8f95 20 632 6034
+8fb5 11 634 6034
+8fc6 42 637 6034
+9008 12 639 6034
+901a e 645 6034
+9028 b 646 6034
+9033 16 652 6034
+9049 2a 653 6034
+9073 12 659 6034
+9085 b 661 6034
+9090 5 662 6034
+9095 15 666 6034
+90aa 23 676 6034
+90cd 5 692 6034
+90d2 c 686 6034
+90de 30 688 6034
+910e 2b 698 6034
+9139 d 707 6034
+9146 19 715 6034
+915f c 718 6034
+916b 10 729 6034
+917b 6 735 6034
+9181 3 736 6034
+9184 7 737 6034
+918b 9 740 6034
+9194 2 741 6034
+9196 7 742 6034
+919d 23 750 6034
+91c0 d 737 6034
+91cd 2 676 6034
+91cf 33 774 6034
+9202 3 718 6034
+9205 6 795 6034
+920b a 804 6034
+9215 27 812 6034
+923c f 814 6034
+924b 5 840 6034
+9250 5 841 6034
+9255 b 843 6034
+9260 5 844 6034
+9265 d 846 6034
+9272 6 847 6034
+9278 2 848 6034
+927a 8 849 6034
+9282 14 851 6034
+9296 b 853 6034
+92a1 6 863 6034
+92a7 a 864 6034
+92b1 1c 866 6034
+92cd 16 877 6034
+92e3 2 880 6034
+FUNC 92e5 18 4 std::bad_exception::bad_exception(std::bad_exception const &)
+FUNC 92fd e4 20 __InternalCxxFrameHandler
+92fd 6 412 6034
+9303 3d 426 6034
+9340 6 432 6034
+9346 6 435 6034
+934c 10 440 6034
+935c 11 479 6034
+936d 2 482 6034
+936f 18 489 6034
+9387 19 499 6034
+93a0 1d 513 6034
+93bd 1c 524 6034
+93d9 6 533 6034
+93df 2 535 6034
+FUNC 93e1 6c 0 _use_encode_pointer
+93e1 7 66 2227
+93e8 2 72 2227
+93ea 12 75 2227
+93fc 7 76 2227
+9403 5 78 2227
+9408 7 82 2227
+940f 5 85 2227
+9414 e 91 2227
+9422 1f 93 2227
+9441 4 95 2227
+9445 6 100 2227
+944b 2 101 2227
+FUNC 944d 6e 4 _encode_pointer
+944d 1 120 2227
+944e 2b 129 2227
+9479 8 145 2227
+9481 d 133 2227
+948e d 135 2227
+949b c 138 2227
+94a7 4 148 2227
+94ab a 150 2227
+94b5 5 153 2227
+94ba 1 154 2227
+FUNC 94bb 9 0 _encoded_null
+94bb 0 173 2227
+94bb 8 174 2227
+94c3 1 175 2227
+FUNC 94c4 6e 4 _decode_pointer
+94c4 1 194 2227
+94c5 2b 203 2227
+94f0 8 219 2227
+94f8 d 207 2227
+9505 d 209 2227
+9512 c 212 2227
+951e 4 222 2227
+9522 a 224 2227
+952c 5 227 2227
+9531 1 228 2227
+FUNC 9532 9 4 __crtTlsAlloc
+9532 0 240 2227
+9532 6 241 2227
+9538 3 242 2227
+FUNC 953b 15 4 __fls_getvalue
+953b 0 258 2227
+953b 12 259 2227
+954d 3 260 2227
+FUNC 9550 6 0 __get_flsindex
+9550 0 272 2227
+9550 5 273 2227
+9555 1 274 2227
+FUNC 9556 32 0 __set_flsgetvalue
+9556 1 286 2227
+9557 e 288 2227
+9565 4 289 2227
+9569 e 291 2227
+9577 d 292 2227
+9584 3 294 2227
+9587 1 298 2227
+FUNC 9588 19 8 __fls_setvalue
+9588 0 315 2227
+9588 16 316 2227
+959e 3 317 2227
+FUNC 95a1 3d 0 _mtterm
+95a1 0 473 2227
+95a1 a 480 2227
+95ab f 481 2227
+95ba 7 482 2227
+95c1 a 485 2227
+95cb 7 486 2227
+95d2 7 487 2227
+95d9 5 494 2227
+FUNC 95de bf 8 _initptd
+95de c 521 2227
+95ea e 522 2227
+95f8 a 524 2227
+9602 6 525 2227
+9608 4 527 2227
+960c 9 529 2227
+9615 16 532 2227
+962b 10 533 2227
+963b 3 540 2227
+963e 7 544 2227
+9645 7 545 2227
+964c 8 546 2227
+9654 7 547 2227
+965b 8 551 2227
+9663 4 552 2227
+9667 6 553 2227
+966d 4 561 2227
+9671 8 562 2227
+9679 9 563 2227
+9682 c 565 2227
+968e 6 568 2227
+9694 9 566 2227
+FUNC 969d 77 0 _getptd_noexit
+969d 2 588 2227
+969f 6 592 2227
+96a5 15 600 2227
+96ba 14 608 2227
+96ce 19 610 2227
+96e7 a 616 2227
+96f1 6 618 2227
+96f7 6 619 2227
+96fd 2 621 2227
+96ff 7 627 2227
+9706 2 628 2227
+9708 8 633 2227
+9710 3 635 2227
+9713 1 636 2227
+FUNC 9714 18 0 _getptd
+9714 1 657 2227
+9715 7 658 2227
+971c 4 659 2227
+9720 8 660 2227
+9728 3 662 2227
+972b 1 663 2227
+FUNC 972c 121 4 _freefls
+972c c 691 2227
+9738 b 702 2227
+9743 7 703 2227
+974a 7 704 2227
+9751 7 706 2227
+9758 7 707 2227
+975f 7 709 2227
+9766 7 710 2227
+976d 7 712 2227
+9774 7 713 2227
+977b 7 715 2227
+9782 7 716 2227
+9789 7 718 2227
+9790 7 719 2227
+9797 a 721 2227
+97a1 7 722 2227
+97a8 8 724 2227
+97b0 4 725 2227
+97b4 1a 728 2227
+97ce 7 729 2227
+97d5 c 731 2227
+97e1 8 735 2227
+97e9 7 737 2227
+97f0 7 738 2227
+97f7 7 740 2227
+97fe 15 743 2227
+9813 7 744 2227
+981a c 747 2227
+9826 7 751 2227
+982d 8 754 2227
+9835 3 731 2227
+9838 9 732 2227
+9841 3 747 2227
+9844 9 748 2227
+FUNC 984d 69 4 _freeptd
+984d 0 778 2227
+984d a 783 2227
+9857 1b 795 2227
+9872 13 796 2227
+9885 16 802 2227
+989b 7 804 2227
+98a2 a 807 2227
+98ac 9 811 2227
+98b5 1 813 2227
+FUNC 98b6 6 0 __threadid
+98b6 0 837 2227
+98b6 6 838 2227
+FUNC 98bc 6 0 __threadhandle
+98bc 0 844 2227
+98bc 6 845 2227
+FUNC 98c2 184 0 _mtinit
+98c2 1 346 2227
+98c3 d 355 2227
+98d0 4 356 2227
+98d4 5 357 2227
+98d9 3 358 2227
+98dc 2 444 2227
+98de e 362 2227
+98ec d 365 2227
+98f9 d 368 2227
+9906 d 371 2227
+9913 2a 372 2227
+993d a 375 2227
+9947 1a 379 2227
+9961 25 388 2227
+9986 5 393 2227
+998b b 400 2227
+9996 10 401 2227
+99a6 10 402 2227
+99b6 18 403 2227
+99ce 7 410 2227
+99d5 2 412 2227
+99d7 1b 418 2227
+99f2 2 420 2227
+99f4 2d 428 2227
+9a21 a 438 2227
+9a2b 6 440 2227
+9a31 6 441 2227
+9a37 5 443 2227
+9a3c 5 430 2227
+9a41 4 389 2227
+9a45 1 444 2227
+FUNC 9a46 39 0 terminate()
+9a46 c 94 5983
+9a52 8 107 5983
+9a5a 4 111 5983
+9a5e 4 116 5983
+9a62 2 120 5983
+9a64 2 121 5983
+9a66 7 122 5983
+9a6d 7 127 5983
+9a74 5 135 5983
+9a79 6 136 5983
+FUNC 9a7f 13 0 unexpected()
+9a7f 0 149 5983
+9a7f 8 159 5983
+9a87 4 163 5983
+9a8b 2 167 5983
+9a8d 5 173 5983
+FUNC 9a92 37 0 _inconsistency()
+9a92 c 187 5983
+9a9e c 196 5983
+9aaa 4 197 5983
+9aae 4 202 5983
+9ab2 2 203 5983
+9ab4 2 204 5983
+9ab6 7 205 5983
+9abd 7 211 5983
+9ac4 5 217 5983
+FUNC 9ac9 11 4 _initp_eh_hooks
+9ac9 0 74 5983
+9ac9 10 80 5983
+9ad9 1 81 5983
+FUNC 9ae0 4c c _CallSettingFrame
+9ae0 3 48 5665
+9ae3 3 57 5665
+9ae6 1 58 5665
+9ae7 1 59 5665
+9ae8 3 60 5665
+9aeb 3 61 5665
+9aee 3 62 5665
+9af1 3 63 5665
+9af4 1 64 5665
+9af5 3 65 5665
+9af8 3 66 5665
+9afb 3 67 5665
+9afe 5 68 5665
+9b03 1 69 5665
+9b04 1 70 5665
+9b05 2 71 5665
+9b07 1 73 5665
+9b08 1 74 5665
+9b09 2 75 5665
+9b0b 1 76 5665
+9b0c 3 77 5665
+9b0f 1 78 5665
+9b10 2 79 5665
+9b12 6 80 5665
+9b18 2 81 5665
+9b1a 5 82 5665
+9b1f 1 84 5665
+9b20 5 85 5665
+9b25 1 86 5665
+9b26 1 87 5665
+9b27 1 88 5665
+9b28 4 89 5665
+PUBLIC 9b07 0 _NLG_Return
+FUNC 9b2c b9 4 _onexit_nolock
+9b2c 5 104 3259
+9b31 b 107 3259
+9b3c 13 108 3259
+9b4f 16 112 3259
+9b65 d 122 3259
+9b72 d 127 3259
+9b7f 14 129 3259
+9b93 3 134 3259
+9b96 14 136 3259
+9baa 3 147 3259
+9bad f 149 3259
+9bbc e 156 3259
+9bca c 157 3259
+9bd6 7 159 3259
+9bdd 6 114 3259
+9be3 2 160 3259
+FUNC 9be5 2f 0 __onexitinit
+9be5 1 205 3259
+9be6 b 208 3259
+9bf1 9 209 3259
+9bfa e 211 3259
+9c08 4 216 3259
+9c0c 1 221 3259
+9c0d 3 218 3259
+9c10 3 220 3259
+9c13 1 221 3259
+FUNC 9c14 3c 4 _onexit
+9c14 c 85 3259
+9c20 5 88 3259
+9c25 4 90 3259
+9c29 c 91 3259
+9c35 c 93 3259
+9c41 3 97 3259
+9c44 6 98 3259
+9c4a 6 94 3259
+FUNC 9c50 12 4 atexit
+9c50 0 165 3259
+9c50 11 166 3259
+9c61 1 167 3259
+FUNC 9c62 4f 4 V6_HeapAlloc
+9c62 c 27 5425
+9c6e 4 28 5425
+9c72 b 29 5425
+9c7d 8 31 5425
+9c85 4 32 5425
+9c89 a 33 5425
+9c93 c 35 5425
+9c9f 3 39 5425
+9ca2 6 40 5425
+9ca8 9 36 5425
+FUNC 9cb1 75 4 _heap_alloc
+9cb1 0 90 5425
+9cb1 9 95 5425
+9cba 5 96 5425
+9cbf 7 97 5425
+9cc6 c 98 5425
+9cd2 a 104 5425
+9cdc 18 105 5425
+9cf4 1 129 5425
+9cf5 a 107 5425
+9cff 9 108 5425
+9d08 2 109 5425
+9d0a 4 121 5425
+9d0e 1 122 5425
+9d0f 6 124 5425
+9d15 10 126 5425
+9d25 1 129 5425
+FUNC 9d26 c3 4 malloc
+9d26 1 155 5425
+9d27 16 159 5425
+9d3d 65 163 5425
+9da2 4 168 5425
+9da6 b 172 5425
+9db1 b 179 5425
+9dbc 2 183 5425
+9dbe 7 174 5425
+9dc5 8 193 5425
+9dcd 5 195 5425
+9dd2 1 196 5425
+9dd3 7 185 5425
+9dda b 186 5425
+9de5 3 187 5425
+9de8 1 196 5425
+FUNC 9de9 a 4 _initp_heap_handler
+9de9 0 31 5230
+9de9 9 32 5230
+9df2 1 33 5230
+FUNC 9df3 31 4 _set_new_handler(int (*)(unsigned int))
+9df3 1 53 5230
+9df4 7 57 5230
+9dfb b 59 5230
+9e06 b 60 5230
+9e11 f 63 5230
+9e20 3 65 5230
+9e23 1 66 5230
+FUNC 9e24 9 4 _set_new_handler(int)
+9e24 0 86 5230
+9e24 8 89 5230
+9e2c 1 90 5230
+FUNC 9e2d d 0 _query_new_handler()
+9e2d 0 110 5230
+9e2d c 111 5230
+9e39 1 112 5230
+FUNC 9e3a 22 4 _callnewh
+9e3a 0 131 5230
+9e3a b 133 5230
+9e45 10 135 5230
+9e55 3 138 5230
+9e58 1 139 5230
+9e59 2 136 5230
+9e5b 1 139 5230
+FUNC 9e5c 22 18 _invoke_watson_if_error
+9e5c 3 754 5850
+9e5f 6 755 5850
+9e65 17 759 5850
+9e7c 2 760 5850
+FUNC 9e7e 70 4 type_info::_Type_info_dtor(type_info *)
+9e7e c 62 5815
+9e8a 8 63 5815
+9e92 4 64 5815
+9e96 a 65 5815
+9ea0 d 70 5815
+9ead 4 72 5815
+9eb1 4 74 5815
+9eb5 6 79 5815
+9ebb 7 80 5815
+9ec2 9 94 5815
+9ecb 4 101 5815
+9ecf c 103 5815
+9edb 6 107 5815
+9ee1 2 83 5815
+9ee3 2 72 5815
+9ee5 9 104 5815
+FUNC 9eee f5 8 type_info::_Name_base(type_info const *,__type_info_node *)
+9eee c 109 5815
+9efa e 113 5815
+9f08 24 124 5815
+9f2c 7 125 5815
+9f33 16 132 5815
+9f49 2 133 5815
+9f4b 5 132 5815
+9f50 b 136 5815
+9f5b 5 142 5815
+9f60 a 149 5815
+9f6a 4 150 5815
+9f6e 11 157 5815
+9f7f 20 158 5815
+9f9f 5 159 5815
+9fa4 9 165 5815
+9fad 3 166 5815
+9fb0 2 167 5815
+9fb2 7 173 5815
+9fb9 9 180 5815
+9fc2 c 181 5815
+9fce 3 188 5815
+9fd1 6 189 5815
+9fd7 3 181 5815
+9fda 9 182 5815
+FUNC 9fe3 70 4 type_info::_Type_info_dtor_internal(type_info *)
+9fe3 c 197 5815
+9fef 8 198 5815
+9ff7 4 199 5815
+9ffb a 200 5815
+a005 d 205 5815
+a012 4 207 5815
+a016 4 209 5815
+a01a 6 214 5815
+a020 7 215 5815
+a027 9 229 5815
+a030 4 236 5815
+a034 c 238 5815
+a040 6 242 5815
+a046 2 218 5815
+a048 2 207 5815
+a04a 9 239 5815
+FUNC a053 31 10 __unDNameHelper
+a053 3 249 5815
+a056 7 250 5815
+a05d 7 252 5815
+a064 1e 260 5815
+a082 2 261 5815
+FUNC a084 eb 8 type_info::_Name_base_internal(type_info const *,__type_info_node *)
+a084 c 265 5815
+a090 e 269 5815
+a09e 1a 273 5815
+a0b8 7 274 5815
+a0bf 16 281 5815
+a0d5 2 282 5815
+a0d7 5 281 5815
+a0dc b 285 5815
+a0e7 5 291 5815
+a0ec a 298 5815
+a0f6 4 299 5815
+a0fa 11 306 5815
+a10b 20 307 5815
+a12b 5 308 5815
+a130 9 314 5815
+a139 3 315 5815
+a13c 2 316 5815
+a13e 7 322 5815
+a145 9 329 5815
+a14e c 330 5815
+a15a 3 337 5815
+a15d 6 338 5815
+a163 3 330 5815
+a166 9 331 5815
+FUNC a16f 53 4 __clean_type_info_names_internal
+a16f c 346 5815
+a17b 8 347 5815
+a183 4 348 5815
+a187 6 352 5815
+a18d 4 354 5815
+a191 3 356 5815
+a194 7 357 5815
+a19b 8 358 5815
+a1a3 4 354 5815
+a1a7 c 359 5815
+a1b3 6 363 5815
+a1b9 9 361 5815
+FUNC a1d0 88 8 strcmp
+a1d0 0 65 926
+a1d0 4 73 926
+a1d4 4 74 926
+a1d8 6 76 926
+a1de 2 77 926
+a1e0 2 81 926
+a1e2 2 83 926
+a1e4 2 84 926
+a1e6 2 85 926
+a1e8 2 86 926
+a1ea 3 87 926
+a1ed 2 88 926
+a1ef 2 89 926
+a1f1 2 90 926
+a1f3 3 92 926
+a1f6 3 94 926
+a1f9 2 95 926
+a1fb 2 96 926
+a1fd 2 97 926
+a1ff 3 98 926
+a202 2 99 926
+a204 3 100 926
+a207 3 101 926
+a20a 2 102 926
+a20c 4 103 926
+a210 2 107 926
+a212 2 108 926
+a214 2 115 926
+a216 2 116 926
+a218 3 117 926
+a21b 1 118 926
+a21c 6 122 926
+a222 2 123 926
+a224 2 125 926
+a226 3 126 926
+a229 2 127 926
+a22b 2 128 926
+a22d 3 129 926
+a230 2 130 926
+a232 2 131 926
+a234 6 133 926
+a23a 2 134 926
+a23c 3 139 926
+a23f 3 140 926
+a242 2 141 926
+a244 2 142 926
+a246 2 143 926
+a248 2 144 926
+a24a 3 145 926
+a24d 2 146 926
+a24f 2 147 926
+a251 2 148 926
+a253 3 149 926
+a256 2 150 926
+FUNC a258 65 c strcpy_s
+a258 0 13 781
+a258 30 18 781
+a288 c 19 781
+a294 2 21 781
+a296 d 23 781
+a2a3 4 27 781
+a2a7 2 29 781
+a2a9 e 30 781
+a2b7 5 33 781
+a2bc 1 34 781
+FUNC a2c0 7a c memset
+a2c0 0 59 934
+a2c0 4 68 934
+a2c4 4 69 934
+a2c8 2 71 934
+a2ca 2 72 934
+a2cc 2 74 934
+a2ce 4 75 934
+a2d2 2 78 934
+a2d4 2 79 934
+a2d6 6 80 934
+a2dc 2 81 934
+a2de 7 82 934
+a2e5 2 83 934
+a2e7 5 85 934
+a2ec 1 91 934
+a2ed 2 92 934
+a2ef 3 94 934
+a2f2 2 95 934
+a2f4 2 97 934
+a2f6 3 98 934
+a2f9 2 99 934
+a2fb 2 101 934
+a2fd 2 103 934
+a2ff 3 104 934
+a302 3 105 934
+a305 2 106 934
+a307 2 110 934
+a309 3 111 934
+a30c 2 113 934
+a30e 2 115 934
+a310 3 117 934
+a313 2 119 934
+a315 2 122 934
+a317 3 123 934
+a31a 3 124 934
+a31d 2 125 934
+a31f 2 127 934
+a321 2 129 934
+a323 2 130 934
+a325 2 134 934
+a327 3 135 934
+a32a 3 137 934
+a32d 2 138 934
+a32f 4 142 934
+a333 1 143 934
+a334 1 145 934
+a335 4 148 934
+a339 1 150 934
+FUNC a340 365 c memcpy
+a340 3 101 1027
+a343 1 113 1027
+a344 1 114 1027
+a345 3 116 1027
+a348 3 117 1027
+a34b 3 119 1027
+a34e 2 129 1027
+a350 2 131 1027
+a352 2 132 1027
+a354 2 134 1027
+a356 2 135 1027
+a358 2 137 1027
+a35a 6 138 1027
+a360 6 147 1027
+a366 2 148 1027
+a368 7 150 1027
+a36f 2 151 1027
+a371 1 153 1027
+a372 1 154 1027
+a373 3 155 1027
+a376 3 156 1027
+a379 2 157 1027
+a37b 1 158 1027
+a37c 1 159 1027
+a37d 2 160 1027
+a37f 1 163 1027
+a380 1 164 1027
+a381 1 165 1027
+a382 5 166 1027
+a387 6 179 1027
+a38d 2 180 1027
+a38f 3 182 1027
+a392 3 183 1027
+a395 3 185 1027
+a398 2 186 1027
+a39a 2 188 1027
+a39c 8 190 1027
+a3a4 2 208 1027
+a3a6 5 209 1027
+a3ab 3 211 1027
+a3ae 2 212 1027
+a3b0 3 214 1027
+a3b3 2 215 1027
+a3b5 7 217 1027
+a3bc 8 221 1027
+a3c4 14 225 1027
+a3d8 2 232 1027
+a3da 2 233 1027
+a3dc 2 235 1027
+a3de 3 236 1027
+a3e1 3 238 1027
+a3e4 3 239 1027
+a3e7 3 241 1027
+a3ea 3 242 1027
+a3ed 3 244 1027
+a3f0 3 245 1027
+a3f3 3 247 1027
+a3f6 2 248 1027
+a3f8 2 250 1027
+a3fa a 252 1027
+a404 2 256 1027
+a406 2 257 1027
+a408 2 259 1027
+a40a 3 260 1027
+a40d 3 262 1027
+a410 3 263 1027
+a413 3 265 1027
+a416 3 266 1027
+a419 3 268 1027
+a41c 2 269 1027
+a41e 2 271 1027
+a420 8 273 1027
+a428 2 277 1027
+a42a 2 278 1027
+a42c 2 280 1027
+a42e 3 281 1027
+a431 3 283 1027
+a434 3 284 1027
+a437 3 286 1027
+a43a 2 287 1027
+a43c 2 289 1027
+a43e 2a 291 1027
+a468 4 298 1027
+a46c 4 300 1027
+a470 4 302 1027
+a474 4 304 1027
+a478 4 306 1027
+a47c 4 308 1027
+a480 4 310 1027
+a484 4 312 1027
+a488 4 314 1027
+a48c 4 316 1027
+a490 4 318 1027
+a494 4 320 1027
+a498 4 322 1027
+a49c 4 324 1027
+a4a0 7 326 1027
+a4a7 2 328 1027
+a4a9 2 329 1027
+a4ab 19 331 1027
+a4c4 3 340 1027
+a4c7 1 341 1027
+a4c8 1 342 1027
+a4c9 3 344 1027
+a4cc 2 348 1027
+a4ce 2 350 1027
+a4d0 3 351 1027
+a4d3 1 352 1027
+a4d4 1 353 1027
+a4d5 3 354 1027
+a4d8 2 358 1027
+a4da 2 360 1027
+a4dc 3 361 1027
+a4df 3 362 1027
+a4e2 3 363 1027
+a4e5 1 364 1027
+a4e6 1 365 1027
+a4e7 5 366 1027
+a4ec 2 370 1027
+a4ee 2 372 1027
+a4f0 3 373 1027
+a4f3 3 374 1027
+a4f6 3 375 1027
+a4f9 3 376 1027
+a4fc 3 377 1027
+a4ff 1 378 1027
+a500 1 379 1027
+a501 3 380 1027
+a504 4 391 1027
+a508 4 392 1027
+a50c 6 397 1027
+a512 2 398 1027
+a514 3 400 1027
+a517 3 401 1027
+a51a 3 403 1027
+a51d 2 404 1027
+a51f 1 406 1027
+a520 2 407 1027
+a522 1 408 1027
+a523 9 410 1027
+a52c 2 414 1027
+a52e a 417 1027
+a538 2 422 1027
+a53a 5 423 1027
+a53f 3 425 1027
+a542 2 426 1027
+a544 3 428 1027
+a547 2 429 1027
+a549 7 431 1027
+a550 14 435 1027
+a564 3 442 1027
+a567 2 443 1027
+a569 3 445 1027
+a56c 3 446 1027
+a56f 3 448 1027
+a572 3 449 1027
+a575 3 451 1027
+a578 2 452 1027
+a57a 1 454 1027
+a57b 2 455 1027
+a57d 1 456 1027
+a57e a 458 1027
+a588 3 462 1027
+a58b 2 463 1027
+a58d 3 465 1027
+a590 3 466 1027
+a593 3 468 1027
+a596 3 469 1027
+a599 3 471 1027
+a59c 3 472 1027
+a59f 3 474 1027
+a5a2 2 475 1027
+a5a4 1 477 1027
+a5a5 2 478 1027
+a5a7 1 479 1027
+a5a8 8 481 1027
+a5b0 3 485 1027
+a5b3 2 486 1027
+a5b5 3 488 1027
+a5b8 3 489 1027
+a5bb 3 491 1027
+a5be 3 492 1027
+a5c1 3 494 1027
+a5c4 3 495 1027
+a5c7 3 497 1027
+a5ca 3 498 1027
+a5cd 3 500 1027
+a5d0 6 501 1027
+a5d6 1 503 1027
+a5d7 2 504 1027
+a5d9 1 505 1027
+a5da 2a 507 1027
+a604 4 516 1027
+a608 4 518 1027
+a60c 4 520 1027
+a610 4 522 1027
+a614 4 524 1027
+a618 4 526 1027
+a61c 4 528 1027
+a620 4 530 1027
+a624 4 532 1027
+a628 4 534 1027
+a62c 4 536 1027
+a630 4 538 1027
+a634 4 540 1027
+a638 4 542 1027
+a63c 7 544 1027
+a643 2 546 1027
+a645 2 547 1027
+a647 19 549 1027
+a660 3 558 1027
+a663 1 560 1027
+a664 1 561 1027
+a665 3 562 1027
+a668 3 566 1027
+a66b 3 568 1027
+a66e 3 569 1027
+a671 1 570 1027
+a672 1 571 1027
+a673 5 572 1027
+a678 3 576 1027
+a67b 3 578 1027
+a67e 3 579 1027
+a681 3 580 1027
+a684 3 581 1027
+a687 1 582 1027
+a688 1 583 1027
+a689 3 584 1027
+a68c 3 588 1027
+a68f 3 590 1027
+a692 3 591 1027
+a695 3 592 1027
+a698 3 593 1027
+a69b 3 594 1027
+a69e 3 595 1027
+a6a1 1 596 1027
+a6a2 1 597 1027
+a6a3 2 598 1027
+FUNC a6b0 365 c memmove
+a6b0 3 101 977
+a6b3 1 113 977
+a6b4 1 114 977
+a6b5 3 116 977
+a6b8 3 117 977
+a6bb 3 119 977
+a6be 2 129 977
+a6c0 2 131 977
+a6c2 2 132 977
+a6c4 2 134 977
+a6c6 2 135 977
+a6c8 2 137 977
+a6ca 6 138 977
+a6d0 6 147 977
+a6d6 2 148 977
+a6d8 7 150 977
+a6df 2 151 977
+a6e1 1 153 977
+a6e2 1 154 977
+a6e3 3 155 977
+a6e6 3 156 977
+a6e9 2 157 977
+a6eb 1 158 977
+a6ec 1 159 977
+a6ed 2 160 977
+a6ef 1 163 977
+a6f0 1 164 977
+a6f1 1 165 977
+a6f2 5 166 977
+a6f7 6 179 977
+a6fd 2 180 977
+a6ff 3 182 977
+a702 3 183 977
+a705 3 185 977
+a708 2 186 977
+a70a 2 188 977
+a70c 8 190 977
+a714 2 208 977
+a716 5 209 977
+a71b 3 211 977
+a71e 2 212 977
+a720 3 214 977
+a723 2 215 977
+a725 7 217 977
+a72c 8 221 977
+a734 14 225 977
+a748 2 232 977
+a74a 2 233 977
+a74c 2 235 977
+a74e 3 236 977
+a751 3 238 977
+a754 3 239 977
+a757 3 241 977
+a75a 3 242 977
+a75d 3 244 977
+a760 3 245 977
+a763 3 247 977
+a766 2 248 977
+a768 2 250 977
+a76a a 252 977
+a774 2 256 977
+a776 2 257 977
+a778 2 259 977
+a77a 3 260 977
+a77d 3 262 977
+a780 3 263 977
+a783 3 265 977
+a786 3 266 977
+a789 3 268 977
+a78c 2 269 977
+a78e 2 271 977
+a790 8 273 977
+a798 2 277 977
+a79a 2 278 977
+a79c 2 280 977
+a79e 3 281 977
+a7a1 3 283 977
+a7a4 3 284 977
+a7a7 3 286 977
+a7aa 2 287 977
+a7ac 2 289 977
+a7ae 2a 291 977
+a7d8 4 298 977
+a7dc 4 300 977
+a7e0 4 302 977
+a7e4 4 304 977
+a7e8 4 306 977
+a7ec 4 308 977
+a7f0 4 310 977
+a7f4 4 312 977
+a7f8 4 314 977
+a7fc 4 316 977
+a800 4 318 977
+a804 4 320 977
+a808 4 322 977
+a80c 4 324 977
+a810 7 326 977
+a817 2 328 977
+a819 2 329 977
+a81b 19 331 977
+a834 3 340 977
+a837 1 341 977
+a838 1 342 977
+a839 3 344 977
+a83c 2 348 977
+a83e 2 350 977
+a840 3 351 977
+a843 1 352 977
+a844 1 353 977
+a845 3 354 977
+a848 2 358 977
+a84a 2 360 977
+a84c 3 361 977
+a84f 3 362 977
+a852 3 363 977
+a855 1 364 977
+a856 1 365 977
+a857 5 366 977
+a85c 2 370 977
+a85e 2 372 977
+a860 3 373 977
+a863 3 374 977
+a866 3 375 977
+a869 3 376 977
+a86c 3 377 977
+a86f 1 378 977
+a870 1 379 977
+a871 3 380 977
+a874 4 391 977
+a878 4 392 977
+a87c 6 397 977
+a882 2 398 977
+a884 3 400 977
+a887 3 401 977
+a88a 3 403 977
+a88d 2 404 977
+a88f 1 406 977
+a890 2 407 977
+a892 1 408 977
+a893 9 410 977
+a89c 2 414 977
+a89e a 417 977
+a8a8 2 422 977
+a8aa 5 423 977
+a8af 3 425 977
+a8b2 2 426 977
+a8b4 3 428 977
+a8b7 2 429 977
+a8b9 7 431 977
+a8c0 14 435 977
+a8d4 3 442 977
+a8d7 2 443 977
+a8d9 3 445 977
+a8dc 3 446 977
+a8df 3 448 977
+a8e2 3 449 977
+a8e5 3 451 977
+a8e8 2 452 977
+a8ea 1 454 977
+a8eb 2 455 977
+a8ed 1 456 977
+a8ee a 458 977
+a8f8 3 462 977
+a8fb 2 463 977
+a8fd 3 465 977
+a900 3 466 977
+a903 3 468 977
+a906 3 469 977
+a909 3 471 977
+a90c 3 472 977
+a90f 3 474 977
+a912 2 475 977
+a914 1 477 977
+a915 2 478 977
+a917 1 479 977
+a918 8 481 977
+a920 3 485 977
+a923 2 486 977
+a925 3 488 977
+a928 3 489 977
+a92b 3 491 977
+a92e 3 492 977
+a931 3 494 977
+a934 3 495 977
+a937 3 497 977
+a93a 3 498 977
+a93d 3 500 977
+a940 6 501 977
+a946 1 503 977
+a947 2 504 977
+a949 1 505 977
+a94a 2a 507 977
+a974 4 516 977
+a978 4 518 977
+a97c 4 520 977
+a980 4 522 977
+a984 4 524 977
+a988 4 526 977
+a98c 4 528 977
+a990 4 530 977
+a994 4 532 977
+a998 4 534 977
+a99c 4 536 977
+a9a0 4 538 977
+a9a4 4 540 977
+a9a8 4 542 977
+a9ac 7 544 977
+a9b3 2 546 977
+a9b5 2 547 977
+a9b7 19 549 977
+a9d0 3 558 977
+a9d3 1 560 977
+a9d4 1 561 977
+a9d5 3 562 977
+a9d8 3 566 977
+a9db 3 568 977
+a9de 3 569 977
+a9e1 1 570 977
+a9e2 1 571 977
+a9e3 5 572 977
+a9e8 3 576 977
+a9eb 3 578 977
+a9ee 3 579 977
+a9f1 3 580 977
+a9f4 3 581 977
+a9f7 1 582 977
+a9f8 1 583 977
+a9f9 3 584 977
+a9fc 3 588 977
+a9ff 3 590 977
+aa02 3 591 977
+aa05 3 592 977
+aa08 3 593 977
+aa0b 3 594 977
+aa0e 3 595 977
+aa11 1 596 977
+aa12 1 597 977
+aa13 2 598 977
+FUNC aa15 3d 4 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+aa15 0 67 5721
+aa15 33 68 5721
+aa48 5 69 5721
+aa4d 2 72 5721
+aa4f 3 73 5721
+FUNC aa52 e 0 __CxxSetUnhandledExceptionFilter
+aa52 0 86 5721
+aa52 b 89 5721
+aa5d 2 90 5721
+aa5f 1 91 5721
+FUNC aa60 1a0 4 _NMSG_WRITE
+aa60 2 174 2418
+aa62 a 178 2418
+aa6c f 179 2418
+aa7b a 182 2418
+aa85 2a 203 2418
+aaaf c 215 2418
+aabb 2a 224 2418
+aae5 1e 227 2418
+ab03 26 228 2418
+ab29 d 231 2418
+ab36 b 233 2418
+ab41 2f 234 2418
+ab70 20 237 2418
+ab90 22 238 2418
+abb2 15 242 2418
+abc7 a 205 2418
+abd1 9 206 2418
+abda 24 212 2418
+abfe 2 245 2418
+FUNC ac00 20 4 _GET_RTERRMSG
+ac00 0 268 2418
+ac00 2 271 2418
+ac02 13 272 2418
+ac15 2 275 2418
+ac17 1 276 2418
+ac18 7 273 2418
+ac1f 1 276 2418
+FUNC ac20 39 0 _FF_MSGBANNER
+ac20 0 141 2418
+ac20 22 145 2418
+ac42 a 147 2418
+ac4c c 148 2418
+ac58 1 150 2418
+FUNC ac59 1 4 _initp_misc_winxfltr
+ac59 0 105 2752
+ac59 1 106 2752
+FUNC ac5a 32 4 xcptlookup
+ac5a 0 410 2752
+ac5a b 411 2752
+ac65 14 418 2752
+ac79 e 425 2752
+ac87 2 428 2752
+ac89 2 426 2752
+ac8b 1 429 2752
+FUNC ac8c 15e 8 _XcptFilter
+ac8c 6 206 2752
+ac92 7 213 2752
+ac99 8 214 2752
+aca1 34 219 2752
+acd5 2 221 2752
+acd7 2 225 2752
+acd9 3 227 2752
+acdc 7 234 2752
+ace3 7 235 2752
+acea 5 243 2752
+acef 4 248 2752
+acf3 8 249 2752
+acfb 3 255 2752
+acfe 6 259 2752
+ad04 6 273 2752
+ad0a 6 274 2752
+ad10 c 283 2752
+ad1c 17 291 2752
+ad33 1e 294 2752
+ad51 3 291 2752
+ad54 c 321 2752
+ad60 9 323 2752
+ad69 7 325 2752
+ad70 9 327 2752
+ad79 7 329 2752
+ad80 9 331 2752
+ad89 7 333 2752
+ad90 9 335 2752
+ad99 7 337 2752
+ada0 9 339 2752
+ada9 7 341 2752
+adb0 9 343 2752
+adb9 7 345 2752
+adc0 7 347 2752
+adc7 8 356 2752
+adcf 3 361 2752
+add2 2 363 2752
+add4 4 368 2752
+add8 3 369 2752
+addb 7 375 2752
+ade2 6 377 2752
+ade8 2 379 2752
+FUNC adea 1b 8 __CppXcptFilter
+adea 0 145 2752
+adea b 146 2752
+adf5 c 147 2752
+ae01 1 151 2752
+ae02 2 149 2752
+ae04 1 151 2752
+FUNC ae05 db 0 _setenvp
+ae05 1 77 2280
+ae06 c 85 2280
+ae12 5 86 2280
+ae17 8 91 2280
+ae1f 4 98 2280
+ae23 8 99 2280
+ae2b 4 110 2280
+ae2f 1 111 2280
+ae30 11 112 2280
+ae41 15 117 2280
+ae56 2 118 2280
+ae58 9 121 2280
+ae61 9 123 2280
+ae6a 6 125 2280
+ae70 10 127 2280
+ae80 1c 133 2280
+ae9c 3 134 2280
+ae9f 6 121 2280
+aea5 b 138 2280
+aeb0 6 139 2280
+aeb6 2 142 2280
+aeb8 a 149 2280
+aec2 7 152 2280
+aec9 17 153 2280
+FUNC aee0 a 4 _set_pgmptr
+aee0 a 334 2303
+FUNC aeea 198 c parse_cmdline
+aeea 4 218 2322
+aeee 6 226 2322
+aef4 8 230 2322
+aefc 14 231 2322
+af10 3 250 2322
+af13 5 252 2322
+af18 5 254 2322
+af1d 9 255 2322
+af26 2 256 2322
+af28 2 258 2322
+af2a 4 259 2322
+af2e 8 260 2322
+af36 2 262 2322
+af38 f 264 2322
+af47 2 265 2322
+af49 6 266 2322
+af4f a 267 2322
+af59 1 268 2322
+af5a 1a 272 2322
+af74 4 277 2322
+af78 4 278 2322
+af7c 4 281 2322
+af80 9 286 2322
+af89 a 287 2322
+af93 3 288 2322
+af96 1 275 2322
+af97 2 276 2322
+af99 9 291 2322
+afa2 6 295 2322
+afa8 9 296 2322
+afb1 2 297 2322
+afb3 3 311 2322
+afb6 4 315 2322
+afba 1 318 2322
+afbb 1 319 2322
+afbc 5 316 2322
+afc1 5 321 2322
+afc6 5 324 2322
+afcb e 325 2322
+afd9 2 326 2322
+afdb 2 327 2322
+afdd d 329 2322
+afea 2 332 2322
+afec 5 336 2322
+aff1 4 337 2322
+aff5 4 338 2322
+aff9 6 339 2322
+afff 3 338 2322
+b002 14 343 2322
+b016 4 348 2322
+b01a 2 349 2322
+b01c 10 350 2322
+b02c b 351 2322
+b037 2 352 2322
+b039 a 354 2322
+b043 2 355 2322
+b045 a 356 2322
+b04f 1 357 2322
+b050 2 358 2322
+b052 5 361 2322
+b057 1 363 2322
+b058 5 372 2322
+b05d 4 376 2322
+b061 7 377 2322
+b068 2 378 2322
+b06a 8 379 2322
+b072 9 382 2322
+b07b 3 383 2322
+b07e 2 384 2322
+b080 2 385 2322
+FUNC b082 b9 0 _setargv
+b082 7 88 2322
+b089 c 97 2322
+b095 5 98 2322
+b09a 18 104 2322
+b0b2 19 120 2322
+b0cb 11 127 2322
+b0dc 15 132 2322
+b0f1 a 136 2322
+b0fb 2 138 2322
+b0fd 8 140 2322
+b105 3 141 2322
+b108 2 142 2322
+b10a 13 149 2322
+b11d c 153 2322
+b129 6 157 2322
+b12f 4 172 2322
+b133 6 134 2322
+b139 2 173 2322
+FUNC b13b 135 0 __crtGetEnvironmentStringsA
+b13b 2 43 4307
+b13d 1a 57 4307
+b157 8 59 4307
+b15f c 60 4307
+b16b b 62 4307
+b176 e 63 4307
+b184 9 68 4307
+b18d 4 71 4307
+b191 8 72 4307
+b199 7 73 4307
+b1a0 7 77 4307
+b1a7 7 78 4307
+b1ae 7 79 4307
+b1b5 1b 93 4307
+b1d0 13 97 4307
+b1e3 11 111 4307
+b1f4 a 113 4307
+b1fe 8 114 4307
+b206 7 99 4307
+b20d 4 100 4307
+b211 6 123 4307
+b217 2 152 4307
+b219 a 126 4307
+b223 6 127 4307
+b229 4 133 4307
+b22d 5 134 4307
+b232 5 135 4307
+b237 5 138 4307
+b23c d 140 4307
+b249 7 141 4307
+b250 5 142 4307
+b255 b 145 4307
+b260 7 147 4307
+b267 6 149 4307
+b26d 3 153 4307
+FUNC b270 24 0 _RTC_Initialize
+FUNC b294 24 0 _RTC_Terminate
+FUNC b2b8 5b 0 __heap_select
+b2b8 6 70 5473
+b2be 23 143 5473
+b2e1 1b 144 5473
+b2fc d 145 5473
+b309 3 146 5473
+b30c 2 164 5473
+b30e 3 161 5473
+b311 2 164 5473
+FUNC b313 5a 4 _heap_init
+b313 0 192 5473
+b313 20 199 5473
+b333 2 200 5473
+b335 1 240 5473
+b336 5 204 5473
+b33b a 206 5473
+b345 f 209 5473
+b354 c 211 5473
+b360 7 212 5473
+b367 2 213 5473
+b369 3 239 5473
+b36c 1 240 5473
+FUNC b36d 74 0 _heap_term
+b36d 1 261 5473
+b36e c 264 5473
+b37a 1b 270 5473
+b395 f 273 5473
+b3a4 b 276 5473
+b3af d 278 5473
+b3bc 11 281 5473
+b3cd c 300 5473
+b3d9 7 301 5473
+b3e0 1 302 5473
+FUNC b3e1 6 0 _get_heap_handle
+b3e1 0 320 5473
+b3e1 5 322 5473
+b3e6 1 323 5473
+FUNC b3e7 94 0 __security_init_cookie
+b3e7 6 97 3689
+b3ed 21 114 3689
+b40e 7 116 3689
+b415 3 117 3689
+b418 a 127 3689
+b422 6 132 3689
+b428 8 135 3689
+b430 8 136 3689
+b438 8 137 3689
+b440 10 139 3689
+b450 2 144 3689
+b452 4 161 3689
+b456 7 163 3689
+b45d 4 166 3689
+b461 7 168 3689
+b468 6 172 3689
+b46e b 173 3689
+b479 2 175 3689
+FUNC b47b 8 4 _crt_debugger_hook
+b47b 0 62 3966
+b47b 7 65 3966
+b482 1 66 3966
+FUNC b483 160 8 _flsbuf
+b483 5 93 2041
+b488 c 104 2041
+b494 8 106 2041
+b49c b 107 2041
+b4a7 4 108 2041
+b4ab 8 109 2041
+b4b3 4 110 2041
+b4b7 b 111 2041
+b4c2 3 113 2041
+b4c5 6 124 2041
+b4cb b 126 2041
+b4d6 3 127 2041
+b4d9 8 128 2041
+b4e1 9 137 2041
+b4ea f 141 2041
+b4f9 25 151 2041
+b51e 7 153 2041
+b525 d 158 2041
+b532 5 162 2041
+b537 5 163 2041
+b53c 6 164 2041
+b542 7 166 2041
+b549 10 167 2041
+b559 2 168 2041
+b55b 6 131 2041
+b561 5 132 2041
+b566 2e 169 2041
+b594 12 171 2041
+b5a6 2 174 2041
+b5a8 8 179 2041
+b5b0 2 186 2041
+b5b2 3 187 2041
+b5b5 13 189 2041
+b5c8 5 201 2041
+b5cd 4 202 2041
+b5d1 5 203 2041
+b5d6 b 207 2041
+b5e1 2 212 2041
+FUNC b5e3 25 4 write_char
+b5e3 0 2433 1163
+b5e3 a 2434 1163
+b5ed 2 2437 1163
+b5ef 12 2440 1163
+b601 3 2444 1163
+b604 1 2447 1163
+b605 2 2446 1163
+b607 1 2447 1163
+FUNC b608 25 c write_multi_char
+b608 6 2498 1163
+b60e 2 2501 1163
+b610 e 2500 1163
+b61e 6 2501 1163
+b624 7 2499 1163
+b62b 2 2504 1163
+FUNC b62d 4f 4 write_string
+b62d 0 2563 1163
+b62d 12 2564 1163
+b63f 6 2566 1163
+b645 2 2567 1163
+b647 11 2570 1163
+b658 6 2571 1163
+b65e a 2573 1163
+b668 a 2574 1163
+b672 9 2569 1163
+b67b 1 2579 1163
+FUNC b67c 910 10 _woutput_l
+b67c 1b 975 1163
+b697 72 1031 1163
+b709 4 1036 1163
+b70d 2c 1073 1163
+b739 1a 1075 1163
+b753 8 1076 1163
+b75b 18 1131 1163
+b773 2 1171 1163
+b775 13 1173 1163
+b788 3 1174 1163
+b78b 5 1175 1163
+b790 1f 1179 1163
+b7af 4 1193 1163
+b7b3 5 1194 1163
+b7b8 4 1181 1163
+b7bc 5 1182 1163
+b7c1 4 1184 1163
+b7c5 5 1185 1163
+b7ca 7 1190 1163
+b7d1 5 1191 1163
+b7d6 3 1187 1163
+b7d9 5 1196 1163
+b7de 6 1200 1163
+b7e4 9 1206 1163
+b7ed b 1233 1163
+b7f8 4 1235 1163
+b7fc 3 1236 1163
+b7ff 5 1239 1163
+b804 10 1241 1163
+b814 5 1243 1163
+b819 4 1248 1163
+b81d 5 1249 1163
+b822 6 1253 1163
+b828 9 1259 1163
+b831 b 1284 1163
+b83c 4 1285 1163
+b840 5 1287 1163
+b845 10 1289 1163
+b855 5 1291 1163
+b85a 1b 1295 1163
+b875 7 1362 1163
+b87c 5 1363 1163
+b881 6 1301 1163
+b887 2 1303 1163
+b889 a 1304 1163
+b893 5 1306 1163
+b898 4 1308 1163
+b89c 5 1310 1163
+b8a1 4 1358 1163
+b8a5 5 1359 1163
+b8aa 10 1322 1163
+b8ba 3 1324 1163
+b8bd f 1325 1163
+b8cc d 1327 1163
+b8d9 3 1329 1163
+b8dc a 1330 1163
+b8e6 5 1332 1163
+b8eb 3c 1337 1163
+b927 4 1352 1163
+b92b 13 1166 1163
+b93e 5 1167 1163
+b943 32 1378 1163
+b975 d 1716 1163
+b982 4 1724 1163
+b986 18 1749 1163
+b99e c 1750 1163
+b9aa c 1381 1163
+b9b6 9 1383 1163
+b9bf 8 1564 1163
+b9c7 4 1565 1163
+b9cb d 1584 1163
+b9d8 3 1589 1163
+b9db 13 1610 1163
+b9ee 4 1611 1163
+b9f2 8 1612 1163
+b9fa 19 1614 1163
+ba13 13 1618 1163
+ba26 1 1620 1163
+ba27 9 1621 1163
+ba30 5 1622 1163
+ba35 1d 1378 1163
+ba52 9 1397 1163
+ba5b f 1415 1163
+ba6a 3 1420 1163
+ba6d 25 1430 1163
+ba92 3 1434 1163
+ba95 2 1436 1163
+ba97 4 1437 1163
+ba9b 6 1439 1163
+baa1 3 1440 1163
+baa4 5 1506 1163
+baa9 5 1523 1163
+baae e 1541 1163
+babc 6 1546 1163
+bac2 b 1548 1163
+bacd 7 1549 1163
+bad4 5 1550 1163
+bad9 4 1551 1163
+badd 5 1553 1163
+bae2 8 1543 1163
+baea 7 1544 1163
+baf1 5 1557 1163
+baf6 34 1378 1163
+bb2a d 1908 1163
+bb37 9 1910 1163
+bb40 8 1668 1163
+bb48 d 1688 1163
+bb55 6 1702 1163
+bb5b 7 1703 1163
+bb62 2 1704 1163
+bb64 5 1706 1163
+bb69 7 1708 1163
+bb70 5 1710 1163
+bb75 4 1864 1163
+bb79 7 1869 1163
+bb80 c 1933 1163
+bb8c 8 1939 1163
+bb94 5 1958 1163
+bb99 8 1751 1163
+bba1 9 1752 1163
+bbaa 5 1753 1163
+bbaf 3 1754 1163
+bbb2 9 1756 1163
+bbbb f 1759 1163
+bbca 2 1760 1163
+bbcc 13 1765 1163
+bbdf 7 1767 1163
+bbe6 e 1809 1163
+bbf4 27 1828 1163
+bc1b 14 1838 1163
+bc2f 15 1840 1163
+bc44 b 1844 1163
+bc4f 15 1846 1163
+bc64 5 1852 1163
+bc69 7 1853 1163
+bc70 4 1854 1163
+bc74 1 1857 1163
+bc75 5 1859 1163
+bc7a 7 1877 1163
+bc81 3 1887 1163
+bc84 2 1888 1163
+bc86 1a 1378 1163
+bca0 7 1892 1163
+bca7 11 1897 1163
+bcb8 10 1900 1163
+bcc8 3 1901 1163
+bccb 5 1903 1163
+bcd0 6 1961 1163
+bcd6 6 1987 1163
+bcdc 16 2026 1163
+bcf2 2 2045 1163
+bcf4 5 2051 1163
+bcf9 2 2071 1163
+bcfb 4 2074 1163
+bcff 6 2080 1163
+bd05 2 2099 1163
+bd07 5 2105 1163
+bd0c 10 2128 1163
+bd1c 7 2129 1163
+bd23 7 2130 1163
+bd2a c 2136 1163
+bd36 2 2142 1163
+bd38 6 2148 1163
+bd3e 7 2149 1163
+bd45 2 2150 1163
+bd47 4 2151 1163
+bd4b a 2152 1163
+bd55 3 2153 1163
+bd58 6 2157 1163
+bd5e 3 2158 1163
+bd61 6 2163 1163
+bd67 10 2165 1163
+bd77 10 2166 1163
+bd87 c 2168 1163
+bd93 3 2170 1163
+bd96 3 2172 1163
+bd99 2 2173 1163
+bd9b 8 2175 1163
+bda3 1 2176 1163
+bda4 19 2180 1163
+bdbd 9 2181 1163
+bdc6 1 2182 1163
+bdc7 2 2185 1163
+bdc9 4 1625 1163
+bdcd 8 1626 1163
+bdd5 c 1628 1163
+bde1 7 1629 1163
+bde8 2 1630 1163
+bdea 4 1629 1163
+bdee 8 1631 1163
+bdf6 a 2201 1163
+be00 7 2204 1163
+be07 6 2205 1163
+be0d 6 2207 1163
+be13 2 2208 1163
+be15 4 2210 1163
+be19 6 2212 1163
+be1f 2 2213 1163
+be21 4 2215 1163
+be25 6 2217 1163
+be2b 7 2218 1163
+be32 b 2224 1163
+be3d 6 2228 1163
+be43 11 2230 1163
+be54 11 2234 1163
+be65 d 2236 1163
+be72 f 2238 1163
+be81 a 2263 1163
+be8b 3 2267 1163
+be8e 3 2268 1163
+be91 3 2269 1163
+be94 1a 2276 1163
+beae 7 2278 1163
+beb5 e 2282 1163
+bec3 a 2283 1163
+becd 2 1690 1163
+becf 4 2279 1163
+bed3 2 2285 1163
+bed5 d 2286 1163
+bee2 c 2290 1163
+beee 11 2292 1163
+beff 6 2297 1163
+bf05 8 2298 1163
+bf0d 4 2299 1163
+bf11 1 2298 1163
+bf12 1b 1073 1163
+bf2d 17 1690 1163
+bf44 10 2376 1163
+bf54 38 2377 1163
+FUNC bf8c 97 10 _vswprintf_l
+bf8c 7 125 1425
+bf93 24 130 1425
+bfb7 8 135 1425
+bfbf 29 155 1425
+bfe8 1d 166 1425
+c005 18 167 1425
+c01d 4 169 1425
+c021 2 183 1425
+FUNC c023 17 c _vswprintf
+c023 0 192 1425
+c023 16 195 1425
+c039 1 197 1425
+FUNC c03a 5 10 __vswprintf_l
+c03a 0 205 1425
+c03a 5 208 1425
+FUNC c03f 55 10 _vscwprintf_helper
+c03f 7 430 1425
+c046 24 435 1425
+c06a 28 441 1425
+c092 2 443 1425
+FUNC c094 18 8 _vscwprintf
+c094 0 449 1425
+c094 17 450 1425
+c0ab 1 451 1425
+FUNC c0ac 1a c _vscwprintf_l
+c0ac 0 458 1425
+c0ac 19 459 1425
+c0c5 1 460 1425
+FUNC c0c6 18 8 _vscwprintf_p
+c0c6 0 466 1425
+c0c6 17 467 1425
+c0dd 1 468 1425
+FUNC c0de 1a c _vscwprintf_p_l
+c0de 0 475 1425
+c0de 19 476 1425
+c0f7 1 477 1425
+FUNC c0f8 14e 14 vfprintf_helper
+c0f8 c 51 1462
+c104 5 54 1462
+c109 2e 56 1462
+c137 c 57 1462
+c143 3 60 1462
+c146 7 62 1462
+c14d 3 63 1462
+c150 b0 65 1462
+c200 5 66 1462
+c205 8 68 1462
+c20d 10 69 1462
+c21d a 70 1462
+c227 c 74 1462
+c233 3 78 1462
+c236 6 79 1462
+c23c a 75 1462
+FUNC c246 1e 10 _vfprintf_l
+c246 0 87 1462
+c246 1d 88 1462
+c263 1 89 1462
+FUNC c264 1e 10 _vfprintf_s_l
+c264 0 97 1462
+c264 1d 98 1462
+c281 1 99 1462
+FUNC c282 1e 10 _vfprintf_p_l
+c282 0 107 1462
+c282 1d 108 1462
+c29f 1 109 1462
+FUNC c2a0 1c c vfprintf
+c2a0 0 116 1462
+c2a0 1b 117 1462
+c2bb 1 118 1462
+FUNC c2bc 1c c vfprintf_s
+c2bc 0 125 1462
+c2bc 1b 126 1462
+c2d7 1 127 1462
+FUNC c2d8 1c c _vfprintf_p
+c2d8 0 134 1462
+c2d8 1b 135 1462
+c2f3 1 136 1462
+FUNC c2f4 25 4 write_char
+c2f4 0 2433 1053
+c2f4 a 2434 1053
+c2fe 2 2437 1053
+c300 12 2440 1053
+c312 3 2444 1053
+c315 1 2447 1053
+c316 2 2446 1053
+c318 1 2447 1053
+FUNC c319 25 c write_multi_char
+c319 6 2498 1053
+c31f 2 2501 1053
+c321 e 2500 1053
+c32f 6 2501 1053
+c335 7 2499 1053
+c33c 2 2504 1053
+FUNC c33e 4f 4 write_string
+c33e 0 2563 1053
+c33e 12 2564 1053
+c350 6 2566 1053
+c356 2 2567 1053
+c358 11 2570 1053
+c369 6 2571 1053
+c36f a 2573 1053
+c379 a 2574 1053
+c383 9 2569 1053
+c38c 1 2579 1053
+FUNC c38d 91c 10 _woutput_s_l
+c38d 29 975 1053
+c3b6 3 976 1053
+c3b9 f 1007 1053
+c3c8 24 2172 1053
+c3ec 2f 1031 1053
+c41b 18 1036 1053
+c433 2e 1073 1053
+c461 16 1078 1053
+c477 e 1079 1053
+c485 11 1124 1053
+c496 10 1131 1053
+c4a6 2 1171 1053
+c4a8 13 1173 1053
+c4bb 3 1174 1053
+c4be 5 1175 1053
+c4c3 1e 1179 1053
+c4e1 3 1193 1053
+c4e4 5 1194 1053
+c4e9 4 1181 1053
+c4ed 5 1182 1053
+c4f2 4 1184 1053
+c4f6 5 1185 1053
+c4fb 7 1190 1053
+c502 5 1191 1053
+c507 3 1187 1053
+c50a 5 1196 1053
+c50f 6 1200 1053
+c515 5 1206 1053
+c51a e 1233 1053
+c528 4 1235 1053
+c52c 3 1236 1053
+c52f 5 1239 1053
+c534 10 1241 1053
+c544 5 1243 1053
+c549 4 1248 1053
+c54d 5 1249 1053
+c552 6 1253 1053
+c558 5 1259 1053
+c55d e 1284 1053
+c56b 4 1285 1053
+c56f 5 1287 1053
+c574 10 1289 1053
+c584 5 1291 1053
+c589 1b 1295 1053
+c5a4 7 1362 1053
+c5ab 5 1363 1053
+c5b0 6 1301 1053
+c5b6 2 1303 1053
+c5b8 7 1304 1053
+c5bf 5 1306 1053
+c5c4 4 1308 1053
+c5c8 5 1310 1053
+c5cd 4 1358 1053
+c5d1 5 1359 1053
+c5d6 10 1322 1053
+c5e6 3 1324 1053
+c5e9 c 1325 1053
+c5f5 d 1327 1053
+c602 3 1329 1053
+c605 7 1330 1053
+c60c 5 1332 1053
+c611 3c 1337 1053
+c64d 4 1352 1053
+c651 14 1166 1053
+c665 5 1167 1053
+c66a 32 1378 1053
+c69c d 1716 1053
+c6a9 4 1724 1053
+c6ad 18 1749 1053
+c6c5 c 1750 1053
+c6d1 c 1381 1053
+c6dd 9 1383 1053
+c6e6 8 1564 1053
+c6ee 4 1565 1053
+c6f2 d 1584 1053
+c6ff 3 1589 1053
+c702 13 1610 1053
+c715 4 1611 1053
+c719 8 1612 1053
+c721 19 1614 1053
+c73a 13 1618 1053
+c74d 1 1620 1053
+c74e 9 1621 1053
+c757 5 1622 1053
+c75c 1e 1378 1053
+c77a 9 1397 1053
+c783 f 1415 1053
+c792 3 1420 1053
+c795 25 1430 1053
+c7ba 3 1434 1053
+c7bd 2 1436 1053
+c7bf 4 1437 1053
+c7c3 6 1439 1053
+c7c9 3 1440 1053
+c7cc 5 1506 1053
+c7d1 5 1523 1053
+c7d6 e 1541 1053
+c7e4 6 1546 1053
+c7ea b 1548 1053
+c7f5 7 1549 1053
+c7fc 5 1550 1053
+c801 4 1551 1053
+c805 5 1553 1053
+c80a 8 1543 1053
+c812 7 1544 1053
+c819 5 1557 1053
+c81e 34 1378 1053
+c852 9 1908 1053
+c85b 9 1910 1053
+c864 8 1668 1053
+c86c d 1688 1053
+c879 6 1702 1053
+c87f 7 1703 1053
+c886 2 1704 1053
+c888 5 1706 1053
+c88d 7 1708 1053
+c894 5 1710 1053
+c899 4 1864 1053
+c89d 7 1869 1053
+c8a4 c 1933 1053
+c8b0 8 1939 1053
+c8b8 5 1958 1053
+c8bd 8 1751 1053
+c8c5 9 1752 1053
+c8ce 5 1753 1053
+c8d3 3 1754 1053
+c8d6 9 1756 1053
+c8df f 1759 1053
+c8ee 3 1760 1053
+c8f1 15 1765 1053
+c906 7 1767 1053
+c90d e 1809 1053
+c91b 27 1828 1053
+c942 14 1838 1053
+c956 15 1840 1053
+c96b b 1844 1053
+c976 15 1846 1053
+c98b 5 1852 1053
+c990 7 1853 1053
+c997 4 1854 1053
+c99b 1 1857 1053
+c99c 5 1859 1053
+c9a1 3 1877 1053
+c9a4 7 1887 1053
+c9ab 2 1888 1053
+c9ad 1a 1378 1053
+c9c7 7 1892 1053
+c9ce 11 1897 1053
+c9df 10 1900 1053
+c9ef 3 1901 1053
+c9f2 5 1903 1053
+c9f7 6 1961 1053
+c9fd 6 1987 1053
+ca03 16 2026 1053
+ca19 2 2045 1053
+ca1b 5 2051 1053
+ca20 2 2071 1053
+ca22 4 2074 1053
+ca26 6 2080 1053
+ca2c 2 2099 1053
+ca2e 5 2105 1053
+ca33 10 2128 1053
+ca43 7 2129 1053
+ca4a 7 2130 1053
+ca51 c 2136 1053
+ca5d 2 2142 1053
+ca5f 6 2148 1053
+ca65 7 2149 1053
+ca6c 2 2150 1053
+ca6e 4 2151 1053
+ca72 a 2152 1053
+ca7c 3 2153 1053
+ca7f 6 2157 1053
+ca85 3 2158 1053
+ca88 6 2163 1053
+ca8e 10 2165 1053
+ca9e 10 2166 1053
+caae c 2168 1053
+caba 3 2170 1053
+cabd 3 2172 1053
+cac0 2 2173 1053
+cac2 8 2175 1053
+caca 1 2176 1053
+cacb 19 2180 1053
+cae4 9 2181 1053
+caed 1 2182 1053
+caee 2 2185 1053
+caf0 4 1625 1053
+caf4 8 1626 1053
+cafc c 1628 1053
+cb08 7 1629 1053
+cb0f 2 1630 1053
+cb11 4 1629 1053
+cb15 8 1631 1053
+cb1d a 2201 1053
+cb27 7 2204 1053
+cb2e 6 2205 1053
+cb34 6 2207 1053
+cb3a 2 2208 1053
+cb3c 4 2210 1053
+cb40 6 2212 1053
+cb46 2 2213 1053
+cb48 4 2215 1053
+cb4c 6 2217 1053
+cb52 7 2218 1053
+cb59 b 2224 1053
+cb64 6 2228 1053
+cb6a 11 2230 1053
+cb7b 11 2234 1053
+cb8c d 2236 1053
+cb99 f 2238 1053
+cba8 a 2263 1053
+cbb2 3 2267 1053
+cbb5 3 2268 1053
+cbb8 3 2269 1053
+cbbb 1a 2276 1053
+cbd5 7 2278 1053
+cbdc e 2282 1053
+cbea a 2283 1053
+cbf4 2 1690 1053
+cbf6 4 2279 1053
+cbfa 2 2285 1053
+cbfc d 2286 1053
+cc09 c 2290 1053
+cc15 11 2292 1053
+cc26 6 2297 1053
+cc2c 8 2298 1053
+cc34 16 2299 1053
+cc4a 7 1073 1053
+cc51 10 2310 1053
+cc61 10 2376 1053
+cc71 38 2377 1053
+FUNC cca9 154 10 _validate_param_reuseW
+cca9 3 606 1108
+ccac 21 610 1108
+cccd 13 617 1108
+cce0 13 618 1108
+ccf3 10 620 1108
+cd03 4a 629 1108
+cd4d 54 632 1108
+cda1 2 633 1108
+cda3 1a 639 1108
+cdbd f 645 1108
+cdcc 23 626 1108
+cdef c 614 1108
+cdfb 2 646 1108
+FUNC cdfd 25 4 write_char
+cdfd 0 2433 1108
+cdfd a 2434 1108
+ce07 2 2437 1108
+ce09 12 2440 1108
+ce1b 3 2444 1108
+ce1e 1 2447 1108
+ce1f 2 2446 1108
+ce21 1 2447 1108
+FUNC ce22 25 c write_multi_char
+ce22 6 2498 1108
+ce28 2 2501 1108
+ce2a e 2500 1108
+ce38 6 2501 1108
+ce3e 7 2499 1108
+ce45 2 2504 1108
+FUNC ce47 4f 4 write_string
+ce47 0 2563 1108
+ce47 12 2564 1108
+ce59 6 2566 1108
+ce5f 2 2567 1108
+ce61 11 2570 1108
+ce72 6 2571 1108
+ce78 a 2573 1108
+ce82 a 2574 1108
+ce8c 9 2569 1108
+ce95 1 2579 1108
+FUNC ce96 f60 10 _woutput_p_l
+ce96 1b 975 1108
+ceb1 20 1013 1108
+ced1 28 2172 1108
+cef9 2c 1031 1108
+cf25 4 1036 1108
+cf29 3 1038 1108
+cf2c 3 1041 1108
+cf2f 3 1043 1108
+cf32 f 1046 1108
+cf41 44 1073 1108
+cf85 1a 1078 1108
+cf9f 11 1079 1108
+cfb0 16 1082 1108
+cfc6 6 1084 1108
+cfcc 1c 1087 1108
+cfe8 6 1089 1108
+cfee 16 1091 1108
+d004 7 1093 1108
+d00b 2 1095 1108
+d00d 7 1097 1108
+d014 6 1101 1108
+d01a c 1103 1108
+d026 7 1104 1108
+d02d f 1106 1108
+d03c 1d 1109 1108
+d059 8 1112 1108
+d061 5 1131 1108
+d066 3 1117 1108
+d069 7 1131 1108
+d070 9 1120 1108
+d079 b 1131 1108
+d084 24 1137 1108
+d0a8 5 1145 1108
+d0ad 2 1171 1108
+d0af 16 1173 1108
+d0c5 3 1174 1108
+d0c8 5 1175 1108
+d0cd 1f 1179 1108
+d0ec 7 1193 1108
+d0f3 5 1194 1108
+d0f8 7 1181 1108
+d0ff 5 1182 1108
+d104 7 1184 1108
+d10b 5 1185 1108
+d110 a 1190 1108
+d11a 5 1191 1108
+d11f 6 1187 1108
+d125 5 1196 1108
+d12a a 1200 1108
+d134 6 1203 1108
+d13a a 1206 1108
+d144 2 1209 1108
+d146 c 1211 1108
+d152 6 1212 1108
+d158 e 1214 1108
+d166 1c 1216 1108
+d182 8 1219 1108
+d18a 12 1221 1108
+d19c a 1274 1108
+d1a6 5 1275 1108
+d1ab c 1228 1108
+d1b7 b 1233 1108
+d1c2 7 1235 1108
+d1c9 3 1236 1108
+d1cc 5 1239 1108
+d1d1 10 1241 1108
+d1e1 5 1243 1108
+d1e6 4 1248 1108
+d1ea 5 1249 1108
+d1ef 6 1253 1108
+d1f5 6 1256 1108
+d1fb a 1259 1108
+d205 2 1262 1108
+d207 c 1264 1108
+d213 6 1265 1108
+d219 12 1267 1108
+d22b c 1280 1108
+d237 b 1284 1108
+d242 4 1285 1108
+d246 5 1287 1108
+d24b 22 1274 1108
+d26d 10 1289 1108
+d27d 5 1291 1108
+d282 1b 1295 1108
+d29d a 1362 1108
+d2a7 5 1363 1108
+d2ac 6 1301 1108
+d2b2 2 1303 1108
+d2b4 d 1304 1108
+d2c1 5 1306 1108
+d2c6 7 1308 1108
+d2cd 5 1310 1108
+d2d2 7 1358 1108
+d2d9 5 1359 1108
+d2de 10 1322 1108
+d2ee 3 1324 1108
+d2f1 12 1325 1108
+d303 d 1327 1108
+d310 3 1329 1108
+d313 d 1330 1108
+d320 5 1332 1108
+d325 24 1337 1108
+d349 4 1352 1108
+d34d 13 1166 1108
+d360 5 1167 1108
+d365 a 1342 1108
+d36f 5 1366 1108
+d374 36 1378 1108
+d3aa d 1716 1108
+d3b7 7 1724 1108
+d3be 14 1726 1108
+d3d2 9 1728 1108
+d3db 2a 1739 1108
+d405 b 1381 1108
+d410 9 1383 1108
+d419 b 1564 1108
+d424 7 1565 1108
+d42b d 1584 1108
+d438 b 1586 1108
+d443 a 1589 1108
+d44d 5 1592 1108
+d452 22 1378 1108
+d474 d 1394 1108
+d481 b 1397 1108
+d48c 2 1400 1108
+d48e 9 1402 1108
+d497 6 1404 1108
+d49d 24 1406 1108
+d4c1 5 1407 1108
+d4c6 d 1411 1108
+d4d3 c 1415 1108
+d4df 3 1420 1108
+d4e2 28 1430 1108
+d50a 7 1434 1108
+d511 2 1436 1108
+d513 7 1437 1108
+d51a 9 1439 1108
+d523 7 1440 1108
+d52a 5 1506 1108
+d52f 6 1520 1108
+d535 a 1523 1108
+d53f 2 1526 1108
+d541 9 1528 1108
+d54a 4 1530 1108
+d54e 6 1533 1108
+d554 c 1537 1108
+d560 b 1541 1108
+d56b 9 1546 1108
+d574 b 1548 1108
+d57f 7 1549 1108
+d586 5 1550 1108
+d58b 4 1551 1108
+d58f 5 1553 1108
+d594 8 1543 1108
+d59c 7 1544 1108
+d5a3 5 1557 1108
+d5a8 38 1378 1108
+d5e0 15 1908 1108
+d5f5 11 1910 1108
+d606 6 1665 1108
+d60c a 1668 1108
+d616 2 1671 1108
+d618 9 1673 1108
+d621 6 1675 1108
+d627 1f 1677 1108
+d646 5 1678 1108
+d64b c 1682 1108
+d657 d 1688 1108
+d664 9 1702 1108
+d66d 7 1703 1108
+d674 2 1704 1108
+d676 5 1706 1108
+d67b 7 1708 1108
+d682 5 1710 1108
+d687 7 1864 1108
+d68e 7 1869 1108
+d695 6 1910 1108
+d69b 9 1933 1108
+d6a4 a 1936 1108
+d6ae f 1939 1108
+d6bd 5 1942 1108
+d6c2 1a 1739 1108
+d6dc 21 1109 1108
+d6fd 17 1749 1108
+d714 9 1750 1108
+d71d 8 1751 1108
+d725 9 1752 1108
+d72e 5 1753 1108
+d733 3 1754 1108
+d736 a 1756 1108
+d740 f 1759 1108
+d74f 2 1760 1108
+d751 13 1765 1108
+d764 3 1767 1108
+d767 7 1806 1108
+d76e 9 1809 1108
+d777 2 1812 1108
+d779 a 1818 1108
+d783 6 1821 1108
+d789 16 1822 1108
+d79f 24 1828 1108
+d7c3 16 1838 1108
+d7d9 15 1840 1108
+d7ee b 1844 1108
+d7f9 15 1846 1108
+d80e 5 1852 1108
+d813 a 1853 1108
+d81d 4 1854 1108
+d821 1 1857 1108
+d822 5 1859 1108
+d827 7 1877 1108
+d82e 7 1887 1108
+d835 2 1888 1108
+d837 1a 1378 1108
+d851 7 1892 1108
+d858 14 1897 1108
+d86c 10 1900 1108
+d87c 3 1901 1108
+d87f 5 1903 1108
+d884 9 1944 1108
+d88d 28 1948 1108
+d8b5 5 1949 1108
+d8ba 7 1961 1108
+d8c1 4 1964 1108
+d8c5 6 1970 1108
+d8cb 9 1972 1108
+d8d4 28 1976 1108
+d8fc 5 1977 1108
+d901 c 1981 1108
+d90d 5 1987 1108
+d912 5 2019 1108
+d917 5 2020 1108
+d91c 6 2023 1108
+d922 b 2026 1108
+d92d 5 2029 1108
+d932 9 2031 1108
+d93b 4 2033 1108
+d93f 2 2036 1108
+d941 d 2040 1108
+d94e 5 2045 1108
+d953 6 2048 1108
+d959 b 2051 1108
+d964 5 2054 1108
+d969 9 2056 1108
+d972 4 2058 1108
+d976 2 2061 1108
+d978 d 2065 1108
+d985 2 2071 1108
+d987 5 2074 1108
+d98c 6 2077 1108
+d992 a 2080 1108
+d99c 2 2083 1108
+d99e 9 2085 1108
+d9a7 6 2087 1108
+d9ad 17 2089 1108
+d9c4 15 2114 1108
+d9d9 5 2115 1108
+d9de d 2094 1108
+d9eb 2 2099 1108
+d9ed 6 2102 1108
+d9f3 a 2105 1108
+d9fd 2 2108 1108
+d9ff 9 2110 1108
+da08 6 2112 1108
+da0e e 2119 1108
+da1c f 2128 1108
+da2b 7 2129 1108
+da32 c 2130 1108
+da3e c 2136 1108
+da4a 4 2142 1108
+da4e 6 2148 1108
+da54 7 2149 1108
+da5b 2 2150 1108
+da5d 1a 2114 1108
+da77 3 2151 1108
+da7a 10 2152 1108
+da8a 3 2153 1108
+da8d 7 2157 1108
+da94 3 2158 1108
+da97 6 2163 1108
+da9d 11 2165 1108
+daae 12 2166 1108
+dac0 d 2168 1108
+dacd 3 2170 1108
+dad0 b 2173 1108
+dadb 8 2175 1108
+dae3 1 2176 1108
+dae4 20 2180 1108
+db04 9 2181 1108
+db0d 1 2182 1108
+db0e 5 2185 1108
+db13 9 1594 1108
+db1c 9 1596 1108
+db25 c 1603 1108
+db31 c 1610 1108
+db3d 4 1611 1108
+db41 8 1612 1108
+db49 11 1614 1108
+db5a 13 1618 1108
+db6d 1 1620 1108
+db6e 9 1621 1108
+db77 2 1622 1108
+db79 19 1598 1108
+db92 5 1625 1108
+db97 8 1626 1108
+db9f c 1628 1108
+dbab 6 1629 1108
+dbb1 2 1630 1108
+dbb3 4 1629 1108
+dbb7 8 1631 1108
+dbbf 10 2189 1108
+dbcf a 2201 1108
+dbd9 a 2204 1108
+dbe3 6 2205 1108
+dbe9 6 2207 1108
+dbef 2 2208 1108
+dbf1 4 2210 1108
+dbf5 6 2212 1108
+dbfb 2 2213 1108
+dbfd 4 2215 1108
+dc01 6 2217 1108
+dc07 7 2218 1108
+dc0e b 2224 1108
+dc19 9 2228 1108
+dc22 11 2230 1108
+dc33 11 2234 1108
+dc44 13 2236 1108
+dc57 f 2238 1108
+dc66 a 2263 1108
+dc70 3 2267 1108
+dc73 3 2268 1108
+dc76 3 2269 1108
+dc79 1a 2276 1108
+dc93 7 2278 1108
+dc9a e 2282 1108
+dca8 a 2283 1108
+dcb2 2 2310 1108
+dcb4 4 2279 1108
+dcb8 2 2285 1108
+dcba d 2286 1108
+dcc7 f 2290 1108
+dcd6 11 2292 1108
+dce7 6 2297 1108
+dced 8 2298 1108
+dcf5 4 2299 1108
+dcf9 1 2298 1108
+dcfa 12 1073 1108
+dd0c c 2310 1108
+dd18 c 2314 1108
+dd24 10 2319 1108
+dd34 16 2321 1108
+dd4a 2 2360 1108
+dd4c 9 2361 1108
+dd55 6 2362 1108
+dd5b 2 2344 1108
+dd5d 3 2345 1108
+dd60 2 2346 1108
+dd62 2 2324 1108
+dd64 6 2325 1108
+dd6a 9 2319 1108
+dd73 13 1043 1108
+dd86 17 1121 1108
+dd9d f 1818 1108
+ddac 10 2376 1108
+ddbc 3a 2377 1108
+FUNC ddf6 1f 0 _initp_misc_cfltcvt_tab
+ddf6 2 54 4074
+ddf8 8 56 4074
+de00 14 58 4074
+de14 1 60 4074
+FUNC de20 29 4 _ValidateImageBase
+de20 0 44 3159
+de20 b 50 3159
+de2b 2 52 3159
+de2d 1 68 3159
+de2e 5 55 3159
+de33 6 56 3159
+de39 2 58 3159
+de3b d 62 3159
+de48 1 68 3159
+FUNC de50 42 8 _FindPESection
+de50 0 92 3159
+de50 9 99 3159
+de59 19 108 3159
+de72 10 111 3159
+de82 a 108 3159
+de8c 5 123 3159
+de91 1 124 3159
+FUNC dea0 bb 4 _IsNonwritableInCurrentImage
+dea0 33 149 3159
+ded3 7 156 3159
+deda f 164 3159
+dee9 2 166 3159
+deeb 8 174 3159
+def3 e 175 3159
+df01 2 176 3159
+df03 2 178 3159
+df05 12 185 3159
+df17 12 195 3159
+df29 17 187 3159
+df40 9 193 3159
+df49 12 195 3159
+FUNC df5b 19 4 _initp_misc_winsig
+df5b 0 57 2785
+df5b 9 58 2785
+df64 5 59 2785
+df69 5 60 2785
+df6e 5 61 2785
+df73 1 62 2785
+FUNC df74 9b 4 ctrlevent_capture
+df74 c 89 2785
+df80 9 94 2785
+df89 3 95 2785
+df8c 5 102 2785
+df91 5 103 2785
+df96 e 104 2785
+dfa4 7 105 2785
+dfab 2 107 2785
+dfad 5 108 2785
+dfb2 e 109 2785
+dfc0 7 110 2785
+dfc7 1 109 2785
+dfc8 9 113 2785
+dfd1 7 117 2785
+dfd8 c 120 2785
+dfe4 5 124 2785
+dfe9 4 128 2785
+dfed 2 120 2785
+dfef 8 121 2785
+dff7 6 130 2785
+dffd 7 131 2785
+e004 3 138 2785
+e007 8 139 2785
+FUNC e00f 34 4 siglookup
+e00f 0 634 2785
+e00f b 635 2785
+e01a 15 645 2785
+e02f f 649 2785
+e03e 2 653 2785
+e040 2 658 2785
+e042 1 659 2785
+FUNC e043 d 0 __get_sigabrt
+e043 0 676 2785
+e043 c 677 2785
+e04f 1 678 2785
+FUNC e050 9 0 __fpecode
+e050 0 699 2785
+e050 8 700 2785
+e058 1 701 2785
+FUNC e059 9 0 __pxcptinfoptrs
+e059 0 721 2785
+e059 8 722 2785
+e061 1 723 2785
+FUNC e062 23d 8 signal
+e062 c 219 2785
+e06e 4 224 2785
+e072 3 230 2785
+e075 3 244 2785
+e078 12 230 2785
+e08a 2f 244 2785
+e0b9 13 327 2785
+e0cc 7 334 2785
+e0d3 8 335 2785
+e0db a 342 2785
+e0e5 17 346 2785
+e0fc 10 352 2785
+e10c 13 367 2785
+e11f 3 380 2785
+e122 e 382 2785
+e130 3 395 2785
+e133 17 401 2785
+e14a 5 390 2785
+e14f 5 401 2785
+e154 8 246 2785
+e15c 4 247 2785
+e160 12 254 2785
+e172 14 257 2785
+e186 6 259 2785
+e18c 2 261 2785
+e18e f 263 2785
+e19d a 264 2785
+e1a7 18 268 2785
+e1bf f 288 2785
+e1ce 4 289 2785
+e1d2 b 291 2785
+e1dd 2 293 2785
+e1df f 279 2785
+e1ee 4 280 2785
+e1f2 b 282 2785
+e1fd 2 284 2785
+e1ff f 296 2785
+e20e 4 297 2785
+e212 b 299 2785
+e21d 2 301 2785
+e21f f 271 2785
+e22e 4 272 2785
+e232 c 274 2785
+e23e c 305 2785
+e24a 9 309 2785
+e253 4 407 2785
+e257 3 305 2785
+e25a 9 306 2785
+e263 19 410 2785
+e27c 1a 419 2785
+e296 3 417 2785
+e299 6 423 2785
+FUNC e29f 1b0 4 raise
+e29f c 452 2785
+e2ab 5 459 2785
+e2b0 3 460 2785
+e2b3 1f 462 2785
+e2d2 a 488 2785
+e2dc 4 489 2785
+e2e0 8 490 2785
+e2e8 a 465 2785
+e2f2 2 467 2785
+e2f4 11 492 2785
+e305 2 493 2785
+e307 f 462 2785
+e316 1c 500 2785
+e332 a 476 2785
+e33c 2 478 2785
+e33e a 470 2785
+e348 2 472 2785
+e34a a 481 2785
+e354 7 482 2785
+e35b a 502 2785
+e365 2 510 2785
+e367 4 509 2785
+e36b 6 510 2785
+e371 5 515 2785
+e376 7 520 2785
+e37d 5 527 2785
+e382 7 528 2785
+e389 5 530 2785
+e38e f 543 2785
+e39d 6 544 2785
+e3a3 3 545 2785
+e3a6 5 551 2785
+e3ab 6 552 2785
+e3b1 7 553 2785
+e3b8 5 561 2785
+e3bd 1c 568 2785
+e3d9 d 571 2785
+e3e6 5 568 2785
+e3eb 7 574 2785
+e3f2 c 577 2785
+e3fe 5 582 2785
+e403 8 588 2785
+e40b 2 589 2785
+e40d 6 577 2785
+e413 6 578 2785
+e419 9 579 2785
+e422 5 590 2785
+e427 f 597 2785
+e436 6 598 2785
+e43c 5 603 2785
+e441 6 604 2785
+e447 2 607 2785
+e449 6 608 2785
+FUNC e44f a 4 _initp_misc_rand_s
+e44f 0 58 3075
+e44f 9 59 3075
+e458 1 60 3075
+FUNC e459 104 4 rand_s
+e459 3 66 3075
+e45c b 67 3075
+e467 2b 68 3075
+e492 c 71 3075
+e49e d 77 3075
+e4ab 4 78 3075
+e4af 1e 80 3075
+e4cd e 83 3075
+e4db 4 84 3075
+e4df 2f 86 3075
+e50e 9 88 3075
+e517 5 89 3075
+e51c 16 94 3075
+e532 7 103 3075
+e539 9 107 3075
+e542 b 109 3075
+e54d 9 110 3075
+e556 6 112 3075
+e55c 1 113 3075
+FUNC e55d 15a 14 __getlocaleinfo
+e55d 1d 70 3523
+e57a 7 76 3523
+e581 87 109 3523
+e608 13 103 3523
+e61b 5 114 3523
+e620 7 115 3523
+e627 3 141 3523
+e62a 12 142 3523
+e63c 20 106 3523
+e65c 5 108 3523
+e661 7 109 3523
+e668 4 111 3523
+e66c 5 118 3523
+e671 1a 126 3523
+e68b 2 127 3523
+e68d 2 129 3523
+e68f 10 134 3523
+e69f 16 135 3523
+e6b5 2 139 3523
+FUNC e6b7 a 4 _initp_misc_purevirt
+e6b7 0 166 3523
+e6b7 9 167 3523
+e6c0 1 168 3523
+FUNC e6c1 a 4 _initp_misc_initcrit
+e6c1 0 47 3609
+e6c1 9 48 3609
+e6ca 1 49 3609
+FUNC e6cb 10 8 __crtInitCritSecNoSpinCount
+e6cb 0 76 3609
+e6cb a 77 3609
+e6d5 3 78 3609
+e6d8 3 79 3609
+FUNC e6db c5 8 __crtInitCritSecAndSpinCount
+e6db c 109 3609
+e6e7 5 111 3609
+e6ec e 112 3609
+e6fa 4 114 3609
+e6fe 1b 120 3609
+e719 4 121 3609
+e71d 2 129 3609
+e71f b 130 3609
+e72a 4 131 3609
+e72e e 134 3609
+e73c 4 136 3609
+e740 5 149 3609
+e745 c 152 3609
+e751 3 155 3609
+e754 b 161 3609
+e75f 2 162 3609
+e761 1a 163 3609
+e77b 9 170 3609
+e784 8 171 3609
+e78c 4 173 3609
+e790 7 174 3609
+e797 3 176 3609
+e79a 6 177 3609
+FUNC e7a0 5e 4 _isatty
+e7a0 0 37 4912
+e7a0 16 44 4912
+e7b6 2 59 4912
+e7b8 29 45 4912
+e7e1 1 59 4912
+e7e2 1b 58 4912
+e7fd 1 59 4912
+FUNC e7fe 2f 0 CPtoLCID
+e7fe 0 329 4615
+e7fe 14 330 4615
+e812 2 345 4615
+e814 1 346 4615
+e815 5 342 4615
+e81a 1 346 4615
+e81b 5 339 4615
+e820 1 346 4615
+e821 5 336 4615
+e826 1 346 4615
+e827 5 333 4615
+e82c 1 346 4615
+FUNC e82d 55 0 setSBCS
+e82d 4 363 4615
+e831 14 368 4615
+e845 3 371 4615
+e848 3 374 4615
+e84b 3 376 4615
+e84e 8 379 4615
+e856 a 381 4615
+e860 9 382 4615
+e869 b 384 4615
+e874 d 385 4615
+e881 1 386 4615
+FUNC e882 18a 0 setSBUpLow
+e882 1d 402 4615
+e89f f 412 4615
+e8ae d 415 4615
+e8bb c 416 4615
+e8c7 e 420 4615
+e8d5 3 419 4615
+e8d8 28 421 4615
+e900 1d 427 4615
+e91d 23 432 4615
+e940 25 437 4615
+e965 2 442 4615
+e967 a 443 4615
+e971 5 445 4615
+e976 9 446 4615
+e97f 5 448 4615
+e984 5 450 4615
+e989 e 451 4615
+e997 2 453 4615
+e999 8 454 4615
+e9a1 5 442 4615
+e9a6 8 456 4615
+e9ae 2c 472 4615
+e9da 5 466 4615
+e9df 5 468 4615
+e9e4 7 469 4615
+e9eb 2 471 4615
+e9ed 3 472 4615
+e9f0 5 460 4615
+e9f5 17 474 4615
+FUNC ea0c a4 0 __updatetmbcinfo
+ea0c c 496 4615
+ea18 7 499 4615
+ea1f 10 500 4615
+ea2f 3 533 4615
+ea32 4 536 4615
+ea36 8 538 4615
+ea3e 2 541 4615
+ea40 6 542 4615
+ea46 8 501 4615
+ea4e 4 503 4615
+ea52 e 506 4615
+ea60 17 512 4615
+ea77 7 517 4615
+ea7e 11 524 4615
+ea8f 7 525 4615
+ea96 11 528 4615
+eaa7 9 530 4615
+FUNC eab0 7a 0 getSystemCP
+eab0 7 282 4615
+eab7 b 284 4615
+eac2 b 289 4615
+eacd a 291 4615
+ead7 14 292 4615
+eaeb 5 295 4615
+eaf0 a 297 4615
+eafa 8 298 4615
+eb02 5 302 4615
+eb07 12 305 4615
+eb19 f 308 4615
+eb28 2 309 4615
+FUNC eb2a 1d9 8 _setmbcp_nolock
+eb2a 15 686 4615
+eb3f b 693 4615
+eb4a 9 696 4615
+eb53 7 698 4615
+eb5a 7 699 4615
+eb61 3 703 4615
+eb64 2 705 4615
+eb66 19 708 4615
+eb7f 2a 743 4615
+eba9 13 751 4615
+ebbc f 756 4615
+ebcb 15 761 4615
+ebe0 17 764 4615
+ebf7 c 766 4615
+ec03 f 712 4615
+ec12 15 715 4615
+ec27 9 720 4615
+ec30 8 723 4615
+ec38 12 724 4615
+ec4a 9 723 4615
+ec53 5 720 4615
+ec58 12 715 4615
+ec6a 20 731 4615
+ec8a d 733 4615
+ec97 7 736 4615
+ec9e 5 737 4615
+eca3 6 767 4615
+eca9 10 766 4615
+ecb9 8 771 4615
+ecc1 7 772 4615
+ecc8 b 775 4615
+ecd3 3 778 4615
+ecd6 2 780 4615
+ecd8 3 782 4615
+ecdb 8 785 4615
+ece3 2 789 4615
+ece5 6 794 4615
+eceb 6 797 4615
+ecf1 3 746 4615
+ecf4 f 802 4615
+FUNC ed03 3c 0 _getmbcp
+ed03 6 819 4615
+ed09 a 821 4615
+ed13 9 822 4615
+ed1c 10 823 4615
+ed2c 2 826 4615
+ed2e f 825 4615
+ed3d 2 826 4615
+FUNC ed3f 19a 4 _setmbcp
+ed3f c 574 4615
+ed4b 4 575 4615
+ed4f a 579 4615
+ed59 5 581 4615
+ed5e 3 582 4615
+ed61 b 585 4615
+ed6c 9 587 4615
+ed75 d 593 4615
+ed82 8 595 4615
+ed8a c 597 4615
+ed96 3 607 4615
+ed99 16 612 4615
+edaf 1a 614 4615
+edc9 7 615 4615
+edd0 3 619 4615
+edd3 9 620 4615
+eddc 17 622 4615
+edf3 8 624 4615
+edfb 4 625 4615
+edff 8 630 4615
+ee07 8 631 4615
+ee0f 8 632 4615
+ee17 a 633 4615
+ee21 d 634 4615
+ee2e 3 633 4615
+ee31 c 635 4615
+ee3d a 636 4615
+ee47 3 635 4615
+ee4a c 637 4615
+ee56 d 638 4615
+ee63 3 637 4615
+ee66 1c 640 4615
+ee82 7 641 4615
+ee89 6 645 4615
+ee8f 3 646 4615
+ee92 e 648 4615
+eea0 9 650 4615
+eea9 2 653 4615
+eeab 5 654 4615
+eeb0 8 660 4615
+eeb8 7 661 4615
+eebf b 662 4615
+eeca 2 668 4615
+eecc 4 673 4615
+eed0 3 682 4615
+eed3 6 683 4615
+FUNC eed9 1e 0 __initmbctable
+eed9 0 843 4615
+eed9 9 853 4615
+eee2 8 854 4615
+eeea a 855 4615
+eef4 2 860 4615
+eef6 1 861 4615
+FUNC eef7 6 0 ___setlc_active_func
+eef7 0 90 2995
+eef7 5 91 2995
+eefc 1 92 2995
+FUNC eefd 6 0 ___unguarded_readlc_active_add_func
+eefd 0 104 2995
+eefd 5 105 2995
+ef02 1 106 2995
+FUNC ef03 140 4 __freetlocinfo
+ef03 3 144 2995
+ef06 26 152 2995
+ef2c e 155 2995
+ef3a 6 157 2995
+ef40 d 158 2995
+ef4d e 162 2995
+ef5b 6 164 2995
+ef61 d 165 2995
+ef6e b 168 2995
+ef79 d 169 2995
+ef86 e 176 2995
+ef94 11 178 2995
+efa5 13 179 2995
+efb8 e 180 2995
+efc6 e 181 2995
+efd4 17 188 2995
+efeb 6 190 2995
+eff1 9 191 2995
+effa 6 194 2995
+f000 13 197 2995
+f013 7 199 2995
+f01a 10 205 2995
+f02a d 207 2995
+f037 b 214 2995
+f042 1 215 2995
+FUNC f043 86 4 __addlocaleref
+f043 3 225 2995
+f046 e 227 2995
+f054 a 228 2995
+f05e 3 229 2995
+f061 a 231 2995
+f06b 3 232 2995
+f06e a 234 2995
+f078 3 235 2995
+f07b a 237 2995
+f085 3 238 2995
+f088 6 240 2995
+f08e f 242 2995
+f09d 3 243 2995
+f0a0 d 245 2995
+f0ad 9 246 2995
+f0b6 12 248 2995
+f0c8 1 249 2995
+FUNC f0c9 8c 4 __removelocaleref
+f0c9 1 259 2995
+f0ca b 261 2995
+f0d5 9 263 2995
+f0de a 265 2995
+f0e8 3 266 2995
+f0eb a 268 2995
+f0f5 3 269 2995
+f0f8 a 271 2995
+f102 3 272 2995
+f105 a 274 2995
+f10f 3 275 2995
+f112 6 277 2995
+f118 f 279 2995
+f127 3 280 2995
+f12a d 282 2995
+f137 9 283 2995
+f140 11 285 2995
+f151 3 287 2995
+f154 1 288 2995
+FUNC f155 24 0 _copytlocinfo_nolock
+f155 3 302 2995
+f158 d 303 2995
+f165 7 304 2995
+f16c 3 305 2995
+f16f 9 306 2995
+f178 1 308 2995
+FUNC f179 3e 0 _updatetlocinfoEx_nolock
+f179 0 321 2995
+f179 9 324 2995
+f182 2 326 2995
+f184 4 327 2995
+f188 8 334 2995
+f190 5 339 2995
+f195 6 341 2995
+f19b e 350 2995
+f1a9 7 351 2995
+f1b0 3 355 2995
+f1b3 1 356 2995
+f1b4 2 325 2995
+f1b6 1 356 2995
+FUNC f1b7 76 0 __updatetlocinfo
+f1b7 c 382 2995
+f1c3 7 384 2995
+f1ca 10 386 2995
+f1da 8 397 2995
+f1e2 4 399 2995
+f1e6 8 401 2995
+f1ee 2 404 2995
+f1f0 6 405 2995
+f1f6 8 387 2995
+f1fe 4 388 2995
+f202 11 390 2995
+f213 e 392 2995
+f221 8 394 2995
+f229 4 395 2995
+FUNC f22d 66 4 _configthreadlocale
+f22d 2 420 2995
+f22f 5 434 2995
+f234 10 435 2995
+f244 19 437 2995
+f25d 1d 456 2995
+f27a 3 444 2995
+f27d 2 445 2995
+f27f 6 440 2995
+f285 2 441 2995
+f287 7 452 2995
+f28e 4 460 2995
+f292 1 462 2995
+FUNC f293 53 0 sync_legacy_variables_lk
+f293 0 489 2995
+f293 e 490 2995
+f2a1 9 491 2995
+f2aa c 492 2995
+f2b6 c 493 2995
+f2c2 c 494 2995
+f2ce c 495 2995
+f2da b 496 2995
+f2e5 1 497 2995
+FUNC f2e6 96 4 _free_locale
+f2e6 c 517 2995
+f2f2 9 518 2995
+f2fb 1c 522 2995
+f317 7 524 2995
+f31e 4 526 2995
+f322 8 534 2995
+f32a 3 535 2995
+f32d 8 537 2995
+f335 11 540 2995
+f346 7 541 2995
+f34d c 543 2995
+f359 7 552 2995
+f360 3 553 2995
+f363 7 554 2995
+f36a 6 556 2995
+f370 3 543 2995
+f373 9 545 2995
+FUNC f37c 5 4 __free_locale
+f37c 0 562 2995
+f37c 5 563 2995
+FUNC f381 88 0 _get_current_locale
+f381 c 687 2995
+f38d 7 689 2995
+f394 14 691 2995
+f3a8 b 693 2995
+f3b3 4 694 2995
+f3b7 5 697 2995
+f3bc 5 698 2995
+f3c1 5 706 2995
+f3c6 6 707 2995
+f3cc 8 708 2995
+f3d4 4 709 2995
+f3d8 8 710 2995
+f3e0 c 712 2995
+f3ec 9 715 2995
+f3f5 2 717 2995
+f3f7 6 718 2995
+f3fd 3 712 2995
+f400 9 713 2995
+FUNC f409 5 0 __get_current_locale
+f409 0 722 2995
+f409 5 723 2995
+FUNC f40e 3 4 __init_dummy
+f40e 0 1283 2995
+f40e 2 1284 2995
+f410 1 1285 2995
+FUNC f411 3e c _strcats
+f411 2 1288 2995
+f413 f 1294 2995
+f422 26 1296 2995
+f448 6 1294 2995
+f44e 1 1299 2995
+FUNC f44f 129 8 __lc_strtolc
+f44f 6 1302 2995
+f455 11 1307 2995
+f466 c 1309 2995
+f472 7 1310 2995
+f479 b 1313 2995
+f484 25 1315 2995
+f4a9 6 1317 2995
+f4af 2 1318 2995
+f4b1 15 1323 2995
+f4c6 1d 1328 2995
+f4e3 9 1329 2995
+f4ec 10 1331 2995
+f4fc c 1332 2995
+f508 14 1334 2995
+f51c 28 1335 2995
+f544 9 1340 2995
+f54d b 1348 2995
+f558 18 1350 2995
+f570 6 1338 2995
+f576 2 1353 2995
+FUNC f578 6b c __lc_lctostr
+f578 5 1356 2995
+f57d 25 1357 2995
+f5a2 7 1358 2995
+f5a9 16 1359 2995
+f5bf c 1360 2995
+f5cb 16 1361 2995
+f5e1 2 1362 2995
+FUNC f5e3 171 0 _setlocale_get_all
+f5e3 4 1124 2995
+f5e7 3 1126 2995
+f5ea 1d 1134 2995
+f607 3 1137 2995
+f60a 3 1139 2995
+f60d 2 1140 2995
+f60f 2f 1143 2995
+f63e 26 1146 2995
+f664 10 1147 2995
+f674 5 1148 2995
+f679 4 1141 2995
+f67d 2f 1143 2995
+f6ac a 1144 2995
+f6b6 8 1152 2995
+f6be 14 1154 2995
+f6d2 9 1156 2995
+f6db e 1159 2995
+f6e9 9 1161 2995
+f6f2 7 1165 2995
+f6f9 7 1166 2995
+f700 9 1168 2995
+f709 15 1170 2995
+f71e 9 1172 2995
+f727 e 1175 2995
+f735 9 1177 2995
+f73e 12 1183 2995
+f750 4 1187 2995
+FUNC f754 1d4 18 _expandlocale
+f754 15 1198 2995
+f769 41 1230 2995
+f7aa 14 1211 2995
+f7be b 1216 2995
+f7c9 26 1219 2995
+f7ef 4 1220 2995
+f7f3 3 1222 2995
+f7f6 4 1223 2995
+f7fa 4 1224 2995
+f7fe 7 1226 2995
+f805 2 1228 2995
+f807 8 1230 2995
+f80f 6 1234 2995
+f815 2f 1236 2995
+f844 4 1241 2995
+f848 e 1243 2995
+f856 6 1244 2995
+f85c 10 1246 2995
+f86c 6 1247 2995
+f872 9 1251 2995
+f87b 10 1253 2995
+f88b a 1255 2995
+f895 2 1260 2995
+f897 8 1263 2995
+f89f 26 1267 2995
+f8c5 5 1271 2995
+f8ca e 1272 2995
+f8d8 5 1273 2995
+f8dd 10 1274 2995
+f8ed 22 1276 2995
+f90f 5 1277 2995
+f914 2 1212 2995
+f916 12 1278 2995
+FUNC f928 2f6 4 _setlocale_set_cat
+f928 19 980 2995
+f941 5 993 2995
+f946 2f 998 2995
+f975 7 1000 2995
+f97c 19 1002 2995
+f995 6 1004 2995
+f99b c 1007 2995
+f9a7 16 1008 2995
+f9bd 2 1010 2995
+f9bf 3 1013 2995
+f9c2 d 1014 2995
+f9cf 2c 1015 2995
+f9fb 3 1016 2995
+f9fe 39 1019 2995
+fa37 6 1020 2995
+fa3d 15 1021 2995
+fa52 17 1022 2995
+fa69 a 1029 2995
+fa73 6 1031 2995
+fa79 18 1037 2995
+fa91 7 1039 2995
+fa98 8 1053 2995
+faa0 14 1054 2995
+fab4 18 1055 2995
+facc 2 1039 2995
+face a 1044 2995
+fad8 d 1046 2995
+fae5 b 1047 2995
+faf0 9 1058 2995
+faf9 26 1066 2995
+fb1f 2 1069 2995
+fb21 10 1071 2995
+fb31 22 1072 2995
+fb53 2 1081 2995
+fb55 4 1082 2995
+fb59 5 1083 2995
+fb5e 9 1085 2995
+fb67 6 1088 2995
+fb6d 9 1089 2995
+fb76 12 1091 2995
+fb88 6 1094 2995
+fb8e e 1095 2995
+fb9c f 1096 2995
+fbab 9 1097 2995
+fbb4 5 1099 2995
+fbb9 24 1106 2995
+fbdd 7 1109 2995
+fbe4 8 1110 2995
+fbec 6 1111 2995
+fbf2 18 1116 2995
+fc0a 3 1118 2995
+fc0d 11 1119 2995
+FUNC fc1e 1ce 4 _setlocale_nolock
+fc1e 1a 873 2995
+fc38 7 877 2995
+fc3f 5 904 2995
+fc44 17 880 2995
+fc5b 5 882 2995
+fc60 12 888 2995
+fc72 1d 890 2995
+fc8f 2 894 2995
+fc91 d 898 2995
+fc9e 1e 900 2995
+fcbc 11 904 2995
+fccd 1d 907 2995
+fcea e 904 2995
+fcf8 1b 913 2995
+fd13 6 916 2995
+fd19 24 918 2995
+fd3d 18 922 2995
+fd55 3 923 2995
+fd58 7 925 2995
+fd5f 1 926 2995
+fd60 9 928 2995
+fd69 c 930 2995
+fd75 4 901 2995
+fd79 19 935 2995
+fd92 3 937 2995
+fd95 4 939 2995
+fd99 11 941 2995
+fdaa c 943 2995
+fdb6 2 947 2995
+fdb8 3 949 2995
+fdbb 2 952 2995
+fdbd 3 953 2995
+fdc0 9 937 2995
+fdc9 5 956 2995
+fdce 2 961 2995
+fdd0 3 962 2995
+fdd3 2 965 2995
+fdd5 5 966 2995
+fdda 12 972 2995
+FUNC fdec f3 8 _create_locale
+fdec 0 605 2995
+fdec 10 609 2995
+fdfc 13 612 2995
+fe0f b 614 2995
+fe1a 4 610 2995
+fe1e c 658 2995
+fe2a 8 617 2995
+fe32 7 619 2995
+fe39 2 621 2995
+fe3b 14 623 2995
+fe4f 7 625 2995
+fe56 7 626 2995
+fe5d 2 628 2995
+fe5f c 630 2995
+fe6b 14 632 2995
+fe7f 7 634 2995
+fe86 7 635 2995
+fe8d 9 637 2995
+fe96 2 640 2995
+fe98 13 642 2995
+feab 8 644 2995
+feb3 7 645 2995
+feba 7 646 2995
+fec1 9 647 2995
+feca 2 648 2995
+fecc 2 650 2995
+fece 5 652 2995
+fed3 5 653 2995
+fed8 7 657 2995
+FUNC fedf 5 8 __create_locale
+fedf 0 665 2995
+fedf 5 666 2995
+FUNC fee4 170 8 setlocale
+fee4 c 791 2995
+fef0 5 792 2995
+fef5 25 797 2995
+ff1a a 799 2995
+ff24 5 801 2995
+ff29 4 806 2995
+ff2d 3 807 2995
+ff30 1b 808 2995
+ff4b 8 818 2995
+ff53 7 819 2995
+ff5a a 820 2995
+ff64 8 822 2995
+ff6c 19 826 2995
+ff85 18 834 2995
+ff9d a 836 2995
+ffa7 8 839 2995
+ffaf 7 840 2995
+ffb6 a 841 2995
+ffc0 7 842 2995
+ffc7 f 846 2995
+ffd6 c 847 2995
+ffe2 18 849 2995
+fffa 5 850 2995
+ffff b 852 2995
+1000a 8 822 2995
+10012 9 823 2995
+1001b 3 852 2995
+1001e 9 853 2995
+10027 2 855 2995
+10029 6 856 2995
+1002f 8 857 2995
+10037 c 860 2995
+10043 3 865 2995
+10046 6 866 2995
+1004c 3 860 2995
+1004f 5 862 2995
+FUNC 10054 15f 14 _wctomb_s_l
+10054 8 56 6128
+1005c 11 57 6128
+1006d 7 60 6128
+10074 2 62 6128
+10076 4 64 6128
+1007a 7 67 6128
+10081 3 69 6128
+10084 23 74 6128
+100a7 b 77 6128
+100b2 c 79 6128
+100be a 81 6128
+100c8 8 83 6128
+100d0 b 85 6128
+100db b 125 6128
+100e6 13 126 6128
+100f9 5 136 6128
+100fe 4 91 6128
+10102 2c 93 6128
+1012e 2 94 6128
+10130 7 96 6128
+10137 6 98 6128
+1013d 15 100 6128
+10152 27 115 6128
+10179 7 129 6128
+10180 2 131 6128
+10182 2 133 6128
+10184 f 117 6128
+10193 10 119 6128
+101a3 b 121 6128
+101ae 5 123 6128
+FUNC 101b3 1b 10 wctomb_s
+101b3 0 144 6128
+101b3 1a 145 6128
+101cd 1 146 6128
+FUNC 101ce 4f c _wctomb_l
+101ce 6 178 6128
+101d4 f 181 6128
+101e3 1f 183 6128
+10202 19 184 6128
+1021b 2 185 6128
+FUNC 1021d 30 8 wctomb
+1021d 4 191 6128
+10221 4 192 6128
+10225 1a 195 6128
+1023f 7 196 6128
+10246 2 197 6128
+10248 3 196 6128
+1024b 2 197 6128
+FUNC 1024d 36 8 _isleadbyte_l
+1024d 6 55 6490
+10253 b 56 6490
+1025e 23 57 6490
+10281 2 58 6490
+FUNC 10283 e 4 isleadbyte
+10283 0 63 6490
+10283 d 64 6490
+10290 1 65 6490
+FUNC 10291 16 8 _iswalpha_l
+10291 0 71 6490
+10291 15 72 6490
+102a6 1 73 6490
+FUNC 102a7 11 4 iswalpha
+102a7 0 78 6490
+102a7 10 79 6490
+102b7 1 80 6490
+FUNC 102b8 13 8 _iswupper_l
+102b8 0 86 6490
+102b8 12 87 6490
+102ca 1 88 6490
+FUNC 102cb e 4 iswupper
+102cb 0 93 6490
+102cb d 94 6490
+102d8 1 95 6490
+FUNC 102d9 13 8 _iswlower_l
+102d9 0 101 6490
+102d9 12 102 6490
+102eb 1 103 6490
+FUNC 102ec e 4 iswlower
+102ec 0 108 6490
+102ec d 109 6490
+102f9 1 110 6490
+FUNC 102fa 13 8 _iswdigit_l
+102fa 0 116 6490
+102fa 12 117 6490
+1030c 1 118 6490
+FUNC 1030d e 4 iswdigit
+1030d 0 123 6490
+1030d d 124 6490
+1031a 1 125 6490
+FUNC 1031b 16 8 _iswxdigit_l
+1031b 0 131 6490
+1031b 15 132 6490
+10330 1 133 6490
+FUNC 10331 11 4 iswxdigit
+10331 0 138 6490
+10331 10 139 6490
+10341 1 140 6490
+FUNC 10342 13 8 _iswspace_l
+10342 0 146 6490
+10342 12 147 6490
+10354 1 148 6490
+FUNC 10355 e 4 iswspace
+10355 0 153 6490
+10355 d 154 6490
+10362 1 155 6490
+FUNC 10363 13 8 _iswpunct_l
+10363 0 161 6490
+10363 12 162 6490
+10375 1 163 6490
+FUNC 10376 e 4 iswpunct
+10376 0 168 6490
+10376 d 169 6490
+10383 1 170 6490
+FUNC 10384 16 8 _iswalnum_l
+10384 0 176 6490
+10384 15 177 6490
+10399 1 178 6490
+FUNC 1039a 11 4 iswalnum
+1039a 0 183 6490
+1039a 10 184 6490
+103aa 1 185 6490
+FUNC 103ab 16 8 _iswprint_l
+103ab 0 191 6490
+103ab 15 192 6490
+103c0 1 193 6490
+FUNC 103c1 11 4 iswprint
+103c1 0 198 6490
+103c1 10 199 6490
+103d1 1 200 6490
+FUNC 103d2 16 8 _iswgraph_l
+103d2 0 206 6490
+103d2 15 207 6490
+103e7 1 208 6490
+FUNC 103e8 11 4 iswgraph
+103e8 0 213 6490
+103e8 10 214 6490
+103f8 1 215 6490
+FUNC 103f9 13 8 _iswcntrl_l
+103f9 0 221 6490
+103f9 12 222 6490
+1040b 1 223 6490
+FUNC 1040c e 4 iswcntrl
+1040c 0 228 6490
+1040c d 229 6490
+10419 1 230 6490
+FUNC 1041a c 4 iswascii
+1041a 0 235 6490
+1041a b 236 6490
+10425 1 237 6490
+FUNC 10426 26 8 _iswcsym_l
+10426 0 243 6490
+10426 21 244 6490
+10447 1 245 6490
+10448 3 244 6490
+1044b 1 245 6490
+FUNC 1044c 21 4 __iswcsym
+1044c 0 250 6490
+1044c 1c 251 6490
+10468 1 252 6490
+10469 3 251 6490
+1046c 1 252 6490
+FUNC 1046d 26 8 _iswcsymf_l
+1046d 0 258 6490
+1046d 21 259 6490
+1048e 1 260 6490
+1048f 3 259 6490
+10492 1 260 6490
+FUNC 10493 21 4 __iswcsymf
+10493 0 265 6490
+10493 1c 266 6490
+104af 1 267 6490
+104b0 3 266 6490
+104b3 1 267 6490
+FUNC 104c0 95 0 _aulldvrm
+104c0 0 45 5113
+104c0 1 47 5113
+104c1 4 79 5113
+104c5 2 80 5113
+104c7 2 81 5113
+104c9 4 82 5113
+104cd 4 83 5113
+104d1 2 84 5113
+104d3 2 85 5113
+104d5 2 86 5113
+104d7 4 87 5113
+104db 2 88 5113
+104dd 2 89 5113
+104df 2 94 5113
+104e1 4 95 5113
+104e5 2 96 5113
+104e7 2 97 5113
+104e9 4 98 5113
+104ed 2 99 5113
+104ef 2 100 5113
+104f1 2 107 5113
+104f3 4 108 5113
+104f7 4 109 5113
+104fb 4 110 5113
+104ff 2 112 5113
+10501 2 113 5113
+10503 2 114 5113
+10505 2 115 5113
+10507 2 116 5113
+10509 2 117 5113
+1050b 2 118 5113
+1050d 2 119 5113
+1050f 4 128 5113
+10513 2 129 5113
+10515 4 130 5113
+10519 2 131 5113
+1051b 2 132 5113
+1051d 2 133 5113
+1051f 4 141 5113
+10523 2 142 5113
+10525 2 143 5113
+10527 4 144 5113
+1052b 2 145 5113
+1052d 1 147 5113
+1052e 4 148 5113
+10532 4 149 5113
+10536 2 151 5113
+10538 4 160 5113
+1053c 4 161 5113
+10540 2 162 5113
+10542 2 163 5113
+10544 3 164 5113
+10547 2 169 5113
+10549 2 170 5113
+1054b 2 171 5113
+1054d 2 172 5113
+1054f 2 173 5113
+10551 1 179 5113
+10552 3 181 5113
+FUNC 10558 90 0 _local_unwind4
+FUNC 105e8 46 0 _unwind_handler4
+FUNC 1062e 1c 4 _seh_longjmp_unwind4
+FUNC 1064a 17 0 _EH4_CallFilterFunc
+FUNC 10661 19 0 _EH4_TransferToHandler
+FUNC 1067a 1a 0 _EH4_GlobalUnwind
+FUNC 10694 17 8 _EH4_LocalUnwind
+FUNC 106ab 33 0 write_char
+106ab 0 2433 1218
+106ab a 2434 1218
+106b5 2 2437 1218
+106b7 21 2442 1218
+106d8 2 2444 1218
+106da 1 2447 1218
+106db 2 2446 1218
+106dd 1 2447 1218
+FUNC 106de 24 c write_multi_char
+106de 6 2498 1218
+106e4 2 2501 1218
+106e6 e 2500 1218
+106f4 5 2501 1218
+106f9 7 2499 1218
+10700 2 2504 1218
+FUNC 10702 4a 4 write_string
+10702 0 2563 1218
+10702 12 2564 1218
+10714 6 2566 1218
+1071a 2 2567 1218
+1071c e 2570 1218
+1072a 5 2571 1218
+1072f a 2573 1218
+10739 9 2574 1218
+10742 9 2569 1218
+1074b 1 2579 1218
+FUNC 1074c 9b0 10 _output_s_l
+1074c 1b 975 1218
+10767 45 1036 1218
+107ac 2d 1031 1218
+107d9 b1 1033 1218
+1088a 8 1036 1218
+10892 28 1073 1218
+108ba 17 1078 1218
+108d1 e 1079 1218
+108df 11 1124 1218
+108f0 12 1131 1218
+10902 2 1171 1218
+10904 13 1173 1218
+10917 3 1174 1218
+1091a 5 1175 1218
+1091f 1e 1179 1218
+1093d 3 1193 1218
+10940 5 1194 1218
+10945 4 1181 1218
+10949 5 1182 1218
+1094e 4 1184 1218
+10952 5 1185 1218
+10957 7 1190 1218
+1095e 5 1191 1218
+10963 4 1187 1218
+10967 5 1196 1218
+1096c 5 1200 1218
+10971 9 1206 1218
+1097a b 1233 1218
+10985 4 1235 1218
+10989 3 1236 1218
+1098c 5 1239 1218
+10991 10 1241 1218
+109a1 5 1243 1218
+109a6 4 1248 1218
+109aa 5 1249 1218
+109af 5 1253 1218
+109b4 9 1259 1218
+109bd b 1284 1218
+109c8 4 1285 1218
+109cc 5 1287 1218
+109d1 10 1289 1218
+109e1 5 1291 1218
+109e6 18 1295 1218
+109fe 7 1362 1218
+10a05 5 1363 1218
+10a0a 5 1301 1218
+10a0f 1 1303 1218
+10a10 a 1304 1218
+10a1a 5 1306 1218
+10a1f 4 1308 1218
+10a23 5 1310 1218
+10a28 4 1358 1218
+10a2c 5 1359 1218
+10a31 c 1322 1218
+10a3d 2 1324 1218
+10a3f f 1325 1218
+10a4e a 1327 1218
+10a58 2 1329 1218
+10a5a a 1330 1218
+10a64 5 1332 1218
+10a69 30 1337 1218
+10a99 4 1352 1218
+10a9d 4 1154 1218
+10aa1 10 1158 1218
+10ab1 11 1160 1218
+10ac2 3 1161 1218
+10ac5 b 1163 1218
+10ad0 b 1166 1218
+10adb 5 1167 1218
+10ae0 32 1378 1218
+10b12 d 1716 1218
+10b1f 4 1724 1218
+10b23 18 1749 1218
+10b3b c 1750 1218
+10b47 8 1381 1218
+10b4f 9 1385 1218
+10b58 8 1561 1218
+10b60 7 1562 1218
+10b67 d 1584 1218
+10b74 3 1589 1218
+10b77 15 1635 1218
+10b8c 4 1636 1218
+10b90 8 1637 1218
+10b98 f 1639 1218
+10ba7 1d 1378 1218
+10bc4 12 1448 1218
+10bd6 16 1467 1218
+10bec 4 1470 1218
+10bf0 7 1471 1218
+10bf7 2 1472 1218
+10bf9 6 1499 1218
+10bff 7 1500 1218
+10c06 6 1503 1218
+10c0c 5 1506 1218
+10c11 5 1523 1218
+10c16 e 1541 1218
+10c24 6 1546 1218
+10c2a d 1548 1218
+10c37 7 1549 1218
+10c3e 5 1550 1218
+10c43 4 1551 1218
+10c47 5 1553 1218
+10c4c 8 1543 1218
+10c54 7 1544 1218
+10c5b 5 1557 1218
+10c60 34 1378 1218
+10c94 9 1908 1218
+10c9d 9 1910 1218
+10ca6 8 1668 1218
+10cae d 1688 1218
+10cbb 6 1702 1218
+10cc1 7 1703 1218
+10cc8 2 1704 1218
+10cca 5 1706 1218
+10ccf 7 1708 1218
+10cd6 5 1710 1218
+10cdb 4 1864 1218
+10cdf 7 1869 1218
+10ce6 c 1933 1218
+10cf2 8 1939 1218
+10cfa 5 1958 1218
+10cff 7 1751 1218
+10d06 9 1752 1218
+10d0f 5 1753 1218
+10d14 3 1754 1218
+10d17 9 1756 1218
+10d20 f 1759 1218
+10d2f 2 1760 1218
+10d31 15 1765 1218
+10d46 8 1767 1218
+10d4e e 1809 1218
+10d5c 27 1828 1218
+10d83 14 1838 1218
+10d97 15 1840 1218
+10dac a 1844 1218
+10db6 15 1846 1218
+10dcb 5 1852 1218
+10dd0 7 1853 1218
+10dd7 4 1854 1218
+10ddb 1 1857 1218
+10ddc 5 1859 1218
+10de1 3 1877 1218
+10de4 3 1887 1218
+10de7 2 1888 1218
+10de9 1a 1378 1218
+10e03 7 1892 1218
+10e0a 11 1897 1218
+10e1b c 1900 1218
+10e27 7 1901 1218
+10e2e 5 1903 1218
+10e33 5 1961 1218
+10e38 6 1987 1218
+10e3e 14 2026 1218
+10e52 2 2045 1218
+10e54 5 2051 1218
+10e59 2 2071 1218
+10e5b 3 2074 1218
+10e5e 6 2080 1218
+10e64 2 2099 1218
+10e66 5 2105 1218
+10e6b f 2128 1218
+10e7a 7 2129 1218
+10e81 7 2130 1218
+10e88 c 2136 1218
+10e94 2 2142 1218
+10e96 6 2148 1218
+10e9c 7 2149 1218
+10ea3 2 2150 1218
+10ea5 4 2151 1218
+10ea9 a 2152 1218
+10eb3 3 2153 1218
+10eb6 6 2157 1218
+10ebc 3 2158 1218
+10ebf 6 2163 1218
+10ec5 10 2165 1218
+10ed5 10 2166 1218
+10ee5 c 2168 1218
+10ef1 3 2170 1218
+10ef4 3 2172 1218
+10ef7 2 2173 1218
+10ef9 8 2175 1218
+10f01 1 2176 1218
+10f02 19 2180 1218
+10f1b 9 2181 1218
+10f24 1 2182 1218
+10f25 2 2185 1218
+10f27 7 1640 1218
+10f2e 2 1641 1218
+10f30 4 1640 1218
+10f34 5 1642 1218
+10f39 2 1644 1218
+10f3b 4 1645 1218
+10f3f 8 1646 1218
+10f47 5 1647 1218
+10f4c 6 1648 1218
+10f52 1 1649 1218
+10f53 4 1648 1218
+10f57 6 1650 1218
+10f5d a 2201 1218
+10f67 7 2204 1218
+10f6e 6 2205 1218
+10f74 4 2207 1218
+10f78 2 2208 1218
+10f7a 4 2210 1218
+10f7e 4 2212 1218
+10f82 2 2213 1218
+10f84 4 2215 1218
+10f88 4 2217 1218
+10f8c 7 2218 1218
+10f93 9 2224 1218
+10f9c 6 2228 1218
+10fa2 11 2230 1218
+10fb3 11 2234 1218
+10fc4 d 2236 1218
+10fd1 f 2238 1218
+10fe0 d 2243 1218
+10fed 3 2249 1218
+10ff0 3 2250 1218
+10ff3 1e 2252 1218
+11011 9 2253 1218
+1101a 18 2257 1218
+11032 2 1690 1218
+11034 4 2254 1218
+11038 2 2259 1218
+1103a d 2260 1218
+11047 c 2290 1218
+11053 f 2292 1218
+11062 6 2297 1218
+11068 8 2298 1218
+11070 1b 2299 1218
+1108b 17 1125 1218
+110a2 2 1690 1218
+110a4 f 2310 1218
+110b3 10 2376 1218
+110c3 39 2377 1218
+FUNC 110fc 129 10 _validate_param_reuseA
+110fc 3 606 1271
+110ff 1c 610 1271
+1111b f 617 1271
+1112a 11 618 1271
+1113b 10 620 1271
+1114b 36 629 1271
+11181 46 632 1271
+111c7 2 633 1271
+111c9 17 639 1271
+111e0 c 645 1271
+111ec 2c 626 1271
+11218 b 614 1271
+11223 2 646 1271
+FUNC 11225 33 0 write_char
+11225 0 2433 1271
+11225 a 2434 1271
+1122f 2 2437 1271
+11231 21 2442 1271
+11252 2 2444 1271
+11254 1 2447 1271
+11255 2 2446 1271
+11257 1 2447 1271
+FUNC 11258 24 c write_multi_char
+11258 6 2498 1271
+1125e 2 2501 1271
+11260 e 2500 1271
+1126e 5 2501 1271
+11273 7 2499 1271
+1127a 2 2504 1271
+FUNC 1127c 4a 4 write_string
+1127c 0 2563 1271
+1127c 12 2564 1271
+1128e 6 2566 1271
+11294 2 2567 1271
+11296 e 2570 1271
+112a4 5 2571 1271
+112a9 a 2573 1271
+112b3 9 2574 1271
+112bc 9 2569 1271
+112c5 1 2579 1271
+FUNC 112c6 10 4 get_crtdouble_arg
+112c6 0 2684 1271
+112c6 f 2685 1271
+112d5 1 2686 1271
+FUNC 112d6 f88 10 _output_p_l
+112d6 1b 975 1271
+112f1 15 986 1271
+11306 b 1007 1271
+11311 2b 2172 1271
+1133c 2c 1031 1271
+11368 9b 1033 1271
+11403 8 1036 1271
+1140b 3 1038 1271
+1140e 3 1041 1271
+11411 3 1043 1271
+11414 11 1046 1271
+11425 7 1061 1271
+1142c 4 1062 1271
+11430 7 1069 1271
+11437 32 1073 1271
+11469 19 1078 1271
+11482 e 1079 1271
+11490 1a 1082 1271
+114aa 6 1084 1271
+114b0 1b 1087 1271
+114cb 5 1089 1271
+114d0 15 1091 1271
+114e5 3 1093 1271
+114e8 2 1095 1271
+114ea 6 1097 1271
+114f0 5 1101 1271
+114f5 c 1103 1271
+11501 7 1104 1271
+11508 e 1106 1271
+11516 1a 1109 1271
+11530 8 1112 1271
+11538 f 1131 1271
+11547 9 1120 1271
+11550 b 1131 1271
+1155b 21 1137 1271
+1157c 5 1145 1271
+11581 16 1173 1271
+11597 3 1174 1271
+1159a 5 1175 1271
+1159f 1f 1179 1271
+115be 7 1193 1271
+115c5 5 1194 1271
+115ca 7 1181 1271
+115d1 5 1182 1271
+115d6 6 1184 1271
+115dc 5 1185 1271
+115e1 a 1190 1271
+115eb 5 1191 1271
+115f0 7 1187 1271
+115f7 5 1196 1271
+115fc 9 1200 1271
+11605 5 1203 1271
+1160a a 1206 1271
+11614 2 1209 1271
+11616 c 1211 1271
+11622 7 1212 1271
+11629 b 1214 1271
+11634 1b 1216 1271
+1164f 8 1219 1271
+11657 12 1221 1271
+11669 9 1274 1271
+11672 5 1275 1271
+11677 c 1228 1271
+11683 b 1233 1271
+1168e 7 1235 1271
+11695 3 1236 1271
+11698 5 1239 1271
+1169d 10 1241 1271
+116ad 5 1243 1271
+116b2 3 1248 1271
+116b5 5 1249 1271
+116ba 5 1253 1271
+116bf 5 1256 1271
+116c4 a 1259 1271
+116ce 2 1262 1271
+116d0 c 1264 1271
+116dc 7 1265 1271
+116e3 f 1267 1271
+116f2 c 1280 1271
+116fe b 1284 1271
+11709 4 1285 1271
+1170d 5 1287 1271
+11712 1c 1274 1271
+1172e 10 1289 1271
+1173e 5 1291 1271
+11743 18 1295 1271
+1175b a 1362 1271
+11765 5 1363 1271
+1176a 5 1301 1271
+1176f 1 1303 1271
+11770 d 1304 1271
+1177d 5 1306 1271
+11782 7 1308 1271
+11789 5 1310 1271
+1178e 7 1358 1271
+11795 5 1359 1271
+1179a c 1322 1271
+117a6 2 1324 1271
+117a8 12 1325 1271
+117ba a 1327 1271
+117c4 2 1329 1271
+117c6 d 1330 1271
+117d3 5 1332 1271
+117d8 18 1337 1271
+117f0 3 1352 1271
+117f3 13 1158 1271
+11806 11 1160 1271
+11817 8 1161 1271
+1181f 8 1163 1271
+11827 b 1166 1271
+11832 5 1167 1271
+11837 a 1342 1271
+11841 5 1366 1271
+11846 39 1378 1271
+1187f 9 1716 1271
+11888 7 1724 1271
+1188f 12 1726 1271
+118a1 a 1728 1271
+118ab 27 1739 1271
+118d2 b 1381 1271
+118dd c 1385 1271
+118e9 b 1561 1271
+118f4 a 1562 1271
+118fe d 1584 1271
+1190b 9 1586 1271
+11914 a 1589 1271
+1191e 5 1592 1271
+11923 25 1378 1271
+11948 b 1442 1271
+11953 5 1445 1271
+11958 b 1448 1271
+11963 2 1451 1271
+11965 a 1453 1271
+1196f 27 1457 1271
+11996 5 1458 1271
+1199b a 1462 1271
+119a5 19 1467 1271
+119be 4 1470 1271
+119c2 3 1471 1271
+119c5 2 1472 1271
+119c7 5 1477 1271
+119cc b 1480 1271
+119d7 2 1483 1271
+119d9 a 1485 1271
+119e3 f 1489 1271
+119f2 a 1494 1271
+119fc 6 1499 1271
+11a02 3 1500 1271
+11a05 9 1503 1271
+11a0e 5 1506 1271
+11a13 5 1520 1271
+11a18 a 1523 1271
+11a22 2 1526 1271
+11a24 a 1528 1271
+11a2e 9 1532 1271
+11a37 6 1533 1271
+11a3d 9 1537 1271
+11a46 b 1541 1271
+11a51 9 1546 1271
+11a5a d 1548 1271
+11a67 3 1549 1271
+11a6a 5 1550 1271
+11a6f 3 1551 1271
+11a72 5 1553 1271
+11a77 8 1543 1271
+11a7f 7 1544 1271
+11a86 5 1557 1271
+11a8b 38 1378 1271
+11ac3 14 1908 1271
+11ad7 f 1910 1271
+11ae6 5 1665 1271
+11aeb a 1668 1271
+11af5 2 1671 1271
+11af7 a 1673 1271
+11b01 25 1677 1271
+11b26 5 1678 1271
+11b2b 9 1682 1271
+11b34 9 1688 1271
+11b3d 9 1702 1271
+11b46 7 1703 1271
+11b4d 2 1704 1271
+11b4f 5 1706 1271
+11b54 3 1708 1271
+11b57 5 1710 1271
+11b5c 7 1864 1271
+11b63 7 1869 1271
+11b6a f 1933 1271
+11b79 9 1936 1271
+11b82 e 1939 1271
+11b90 5 1942 1271
+11b95 1c 1739 1271
+11bb1 21 1109 1271
+11bd2 16 1749 1271
+11be8 9 1750 1271
+11bf1 7 1751 1271
+11bf8 3 1767 1271
+11bfb 5 1806 1271
+11c00 9 1809 1271
+11c09 2 1812 1271
+11c0b 5 1753 1271
+11c10 3 1754 1271
+11c13 a 1756 1271
+11c1d f 1759 1271
+11c2c 2 1760 1271
+11c2e 11 1765 1271
+11c3f a 1818 1271
+11c49 6 1821 1271
+11c4f 16 1822 1271
+11c65 26 1828 1271
+11c8b 16 1838 1271
+11ca1 17 1840 1271
+11cb8 a 1844 1271
+11cc2 17 1846 1271
+11cd9 8 1852 1271
+11ce1 a 1853 1271
+11ceb 3 1854 1271
+11cee 3 1857 1271
+11cf1 5 1859 1271
+11cf6 7 1877 1271
+11cfd 7 1887 1271
+11d04 2 1888 1271
+11d06 1a 1378 1271
+11d20 7 1892 1271
+11d27 14 1897 1271
+11d3b c 1900 1271
+11d47 7 1901 1271
+11d4e 5 1903 1271
+11d53 a 1944 1271
+11d5d 2c 1948 1271
+11d89 5 1949 1271
+11d8e 6 1961 1271
+11d94 3 1964 1271
+11d97 6 1970 1271
+11d9d a 1972 1271
+11da7 2c 1976 1271
+11dd3 5 1977 1271
+11dd8 c 1981 1271
+11de4 5 1987 1271
+11de9 4 2019 1271
+11ded 4 2020 1271
+11df1 5 2023 1271
+11df6 b 2026 1271
+11e01 5 2029 1271
+11e06 a 2031 1271
+11e10 f 2035 1271
+11e1f a 2040 1271
+11e29 2 2045 1271
+11e2b 5 2048 1271
+11e30 b 2051 1271
+11e3b 2 2054 1271
+11e3d a 2056 1271
+11e47 b 2060 1271
+11e52 a 2065 1271
+11e5c 2 2071 1271
+11e5e 4 2074 1271
+11e62 5 2077 1271
+11e67 a 2080 1271
+11e71 2 2083 1271
+11e73 a 2085 1271
+11e7d b 2089 1271
+11e88 a 2094 1271
+11e92 2 2099 1271
+11e94 5 2102 1271
+11e99 a 2105 1271
+11ea3 2 2108 1271
+11ea5 a 2110 1271
+11eaf 38 2114 1271
+11ee7 5 2115 1271
+11eec b 2119 1271
+11ef7 13 2128 1271
+11f0a 7 2129 1271
+11f11 a 2130 1271
+11f1b f 2136 1271
+11f2a 2 2142 1271
+11f2c 6 2148 1271
+11f32 7 2149 1271
+11f39 2 2150 1271
+11f3b 7 2151 1271
+11f42 a 2152 1271
+11f4c 3 2153 1271
+11f4f 6 2157 1271
+11f55 3 2158 1271
+11f58 6 2163 1271
+11f5e 10 2165 1271
+11f6e 10 2166 1271
+11f7e c 2168 1271
+11f8a 3 2170 1271
+11f8d 3 2172 1271
+11f90 2 2173 1271
+11f92 8 2175 1271
+11f9a 1 2176 1271
+11f9b 24 2180 1271
+11fbf 9 2181 1271
+11fc8 1 2182 1271
+11fc9 5 2185 1271
+11fce c 1594 1271
+11fda c 1598 1271
+11fe6 9 1603 1271
+11fef e 1635 1271
+11ffd 4 1636 1271
+12001 8 1637 1271
+12009 8 1639 1271
+12011 1c 1598 1271
+1202d 6 1640 1271
+12033 2 1641 1271
+12035 4 1640 1271
+12039 5 1642 1271
+1203e 2 1644 1271
+12040 5 1645 1271
+12045 8 1646 1271
+1204d 5 1647 1271
+12052 6 1648 1271
+12058 1 1649 1271
+12059 4 1648 1271
+1205d 6 1650 1271
+12063 10 2189 1271
+12073 a 2201 1271
+1207d a 2204 1271
+12087 6 2205 1271
+1208d 4 2207 1271
+12091 2 2208 1271
+12093 4 2210 1271
+12097 4 2212 1271
+1209b 2 2213 1271
+1209d 4 2215 1271
+120a1 4 2217 1271
+120a5 7 2218 1271
+120ac 9 2224 1271
+120b5 4 2228 1271
+120b9 11 2230 1271
+120ca 11 2234 1271
+120db 13 2236 1271
+120ee f 2238 1271
+120fd d 2243 1271
+1210a 3 2249 1271
+1210d 3 2250 1271
+12110 1e 2252 1271
+1212e 9 2253 1271
+12137 18 2257 1271
+1214f 2 2310 1271
+12151 4 2254 1271
+12155 2 2259 1271
+12157 d 2260 1271
+12164 f 2290 1271
+12173 f 2292 1271
+12182 6 2297 1271
+12188 8 2298 1271
+12190 15 2299 1271
+121a5 2 1073 1271
+121a7 f 2310 1271
+121b6 b 2314 1271
+121c1 10 2319 1271
+121d1 1d 2321 1271
+121ee 2 2360 1271
+121f0 3 2361 1271
+121f3 2 2362 1271
+121f5 2 2324 1271
+121f7 f 2325 1271
+12206 10 1043 1271
+12216 10 2376 1271
+12226 38 2377 1271
+FUNC 1225e c2 4 _putwch_nolock
+1225e 11 84 4721
+1226f a 89 4721
+12279 9 91 4721
+12282 5 92 4721
+12287 a 96 4721
+12291 6 97 4721
+12297 16 103 4721
+122ad 14 105 4721
+122c1 6 106 4721
+122c7 1c 123 4721
+122e3 1e 129 4721
+12301 2 131 4721
+12303 4 133 4721
+12307 d 134 4721
+12314 a 110 4721
+1231e 2 113 4721
+FUNC 12320 9b 4 _cputws
+12320 c 151 4721
+1232c 5 153 4721
+12331 30 155 4721
+12361 b 157 4721
+1236c 9 158 4721
+12375 3 159 4721
+12378 a 160 4721
+12382 17 162 4721
+12399 4 164 4721
+1239d c 169 4721
+123a9 3 172 4721
+123ac 6 173 4721
+123b2 9 170 4721
+FUNC 123bb 46 4 _putwch
+123bb c 49 4721
+123c7 8 52 4721
+123cf 4 53 4721
+123d3 f 55 4721
+123e2 c 58 4721
+123ee 4 62 4721
+123f2 6 63 4721
+123f8 9 59 4721
+FUNC 12401 113 10 _mbtowc_l
+12401 8 55 6355
+12409 e 56 6355
+12417 4 61 6355
+1241b 7 64 6355
+12422 3 65 6355
+12425 4 59 6355
+12429 2 116 6355
+1242b b 70 6355
+12436 8 73 6355
+1243e 7 75 6355
+12445 7 76 6355
+1244c 11 77 6355
+1245d 13 80 6355
+12470 33 90 6355
+124a3 10 93 6355
+124b3 1b 99 6355
+124ce b 95 6355
+124d9 14 96 6355
+124ed 25 108 6355
+12512 2 111 6355
+FUNC 12514 17 c mbtowc
+12514 0 123 6355
+12514 16 124 6355
+1252a 1 125 6355
+FUNC 1252b 83 10 _lseeki64_nolock
+1252b 5 120 4872
+12530 4 126 4872
+12534 1b 134 4872
+1254f b 136 4872
+1255a 6 138 4872
+12560 22 146 4872
+12582 7 148 4872
+12589 2 149 4872
+1258b 19 152 4872
+125a4 8 153 4872
+125ac 2 154 4872
+FUNC 125ae 119 10 _lseeki64
+125ae c 73 4872
+125ba 9 74 4872
+125c3 24 77 4872
+125e7 2f 78 4872
+12616 46 79 4872
+1265c 7 81 4872
+12663 3 82 4872
+12666 9 84 4872
+1266f 1a 85 4872
+12689 2 86 4872
+1268b b 87 4872
+12696 7 88 4872
+1269d 8 89 4872
+126a5 c 93 4872
+126b1 6 97 4872
+126b7 6 98 4872
+126bd a 94 4872
+FUNC 126c7 7d 8 _set_osfhnd
+126c7 0 213 4825
+126c7 2e 216 4825
+126f5 e 217 4825
+12703 b 218 4825
+1270e 3 226 4825
+12711 2 227 4825
+12713 3 223 4825
+12716 2 224 4825
+12718 9 220 4825
+12721 5 231 4825
+12726 5 232 4825
+1272b b 234 4825
+12736 8 235 4825
+1273e 5 236 4825
+12743 1 238 4825
+FUNC 12744 81 4 _free_osfhnd
+12744 0 263 4825
+12744 38 266 4825
+1277c 9 268 4825
+12785 a 269 4825
+1278f 3 277 4825
+12792 2 278 4825
+12794 3 274 4825
+12797 2 275 4825
+12799 9 271 4825
+127a2 6 282 4825
+127a8 4 283 4825
+127ac b 285 4825
+127b7 7 286 4825
+127be 6 287 4825
+127c4 1 289 4825
+FUNC 127c5 71 4 _get_osfhandle
+127c5 0 312 4825
+127c5 1f 313 4825
+127e4 2 318 4825
+127e6 e 314 4825
+127f4 3d 315 4825
+12831 1 318 4825
+12832 3 317 4825
+12835 1 318 4825
+FUNC 12836 a0 4 __lock_fhandle
+12836 c 437 4825
+12842 17 438 4825
+12859 7 439 4825
+12860 7 444 4825
+12867 8 446 4825
+1286f 3 447 4825
+12872 5 448 4825
+12877 14 449 4825
+1288b 3 453 4825
+1288e 3 455 4825
+12891 c 457 4825
+1289d 5 462 4825
+128a2 1d 464 4825
+128bf 3 467 4825
+128c2 6 468 4825
+128c8 5 457 4825
+128cd 9 458 4825
+FUNC 128d6 22 4 _unlock_fhandle
+128d6 0 489 4825
+128d6 21 490 4825
+128f7 1 491 4825
+FUNC 128f8 19f 0 _alloc_osfhnd
+128f8 c 52 4825
+12904 4 53 4825
+12908 5 56 4825
+1290d c 58 4825
+12919 8 59 4825
+12921 8 61 4825
+12929 3 62 4825
+1292c c 71 4825
+12938 f 77 4825
+12947 17 83 4825
+1295e 6 85 4825
+12964 6 89 4825
+1296a 8 90 4825
+12972 6 91 4825
+12978 6 92 4825
+1297e 14 93 4825
+12992 3 99 4825
+12995 2 101 4825
+12997 3 103 4825
+1299a 9 106 4825
+129a3 6 111 4825
+129a9 a 113 4825
+129b3 6 119 4825
+129b9 7 120 4825
+129c0 5 83 4825
+129c5 6 106 4825
+129cb 9 107 4825
+129d4 6 124 4825
+129da 4 126 4825
+129de 3 127 4825
+129e1 19 128 4825
+129fa 6 137 4825
+12a00 6 71 4825
+12a06 12 145 4825
+12a18 9 151 4825
+12a21 7 152 4825
+12a28 c 154 4825
+12a34 4 155 4825
+12a38 3 156 4825
+12a3b 4 157 4825
+12a3f 4 158 4825
+12a43 8 154 4825
+12a4b 6 165 4825
+12a51 19 166 4825
+12a6a b 167 4825
+12a75 4 171 4825
+12a79 c 178 4825
+12a85 3 186 4825
+12a88 6 187 4825
+12a8e 9 179 4825
+FUNC 12a97 115 8 _open_osfhandle
+12a97 c 343 4825
+12aa3 5 347 4825
+12aa8 2 351 4825
+12aaa 6 353 4825
+12ab0 3 354 4825
+12ab3 8 356 4825
+12abb 3 357 4825
+12abe 6 359 4825
+12ac4 3 360 4825
+12ac7 9 364 4825
+12ad0 4 365 4825
+12ad4 d 367 4825
+12ae1 3 409 4825
+12ae4 6 410 4825
+12aea 5 372 4825
+12aef 5 373 4825
+12af4 5 374 4825
+12af9 3 375 4825
+12afc f 380 4825
+12b0b b 381 4825
+12b16 7 382 4825
+12b1d 2 383 4825
+12b1f 3 385 4825
+12b22 b 391 4825
+12b2d 3 393 4825
+12b30 1a 395 4825
+12b4a 9 396 4825
+12b53 9 397 4825
+12b5c 7 399 4825
+12b63 c 401 4825
+12b6f 10 409 4825
+12b7f 5 401 4825
+12b84 5 402 4825
+12b89 1b 404 4825
+12ba4 8 406 4825
+FUNC 12bac 11e c _calloc_impl
+12bac c 23 5592
+12bb8 9 28 5592
+12bc1 2e 30 5592
+12bef 9 32 5592
+12bf8 4 36 5592
+12bfc 3 37 5592
+12bff 5 41 5592
+12c04 5 43 5592
+12c09 9 46 5592
+12c12 9 50 5592
+12c1b b 52 5592
+12c26 8 56 5592
+12c2e 3 57 5592
+12c31 c 58 5592
+12c3d c 60 5592
+12c49 7 64 5592
+12c50 d 65 5592
+12c5d 4 93 5592
+12c61 11 94 5592
+12c72 c 97 5592
+12c7e f 109 5592
+12c8d b 111 5592
+12c98 6 112 5592
+12c9e 5 113 5592
+12ca3 5 60 5592
+12ca8 9 61 5592
+12cb1 4 100 5592
+12cb5 7 102 5592
+12cbc 6 103 5592
+12cc2 2 105 5592
+12cc4 6 119 5592
+FUNC 12cca 3f 8 calloc
+12cca 4 145 5592
+12cce 5 146 5592
+12cd3 14 147 5592
+12ce7 15 149 5592
+12cfc 8 151 5592
+12d04 3 153 5592
+12d07 2 154 5592
+FUNC 12d09 21b 8 realloc
+12d09 c 64 5338
+12d15 7 69 5338
+12d1c e 70 5338
+12d2a 7 73 5338
+12d31 7 75 5338
+12d38 5 76 5338
+12d3d d 81 5338
+12d4a 5 88 5338
+12d4f 9 89 5338
+12d58 8 91 5338
+12d60 3 92 5338
+12d63 12 96 5338
+12d75 8 100 5338
+12d7d f 102 5338
+12d8c 5 103 5338
+12d91 e 104 5338
+12d9f 4 107 5338
+12da3 10 108 5338
+12db3 9 110 5338
+12dbc a 111 5338
+12dc6 5 118 5338
+12dcb 4 120 5338
+12dcf 6 121 5338
+12dd5 9 123 5338
+12dde 15 124 5338
+12df3 4 127 5338
+12df7 10 128 5338
+12e07 c 129 5338
+12e13 c 135 5338
+12e1f 6 142 5338
+12e25 4 144 5338
+12e29 1 145 5338
+12e2a 9 147 5338
+12e33 14 148 5338
+12e47 6 135 5338
+12e4d 9 137 5338
+12e56 3 148 5338
+12e59 10 158 5338
+12e69 f 181 5338
+12e78 5 186 5338
+12e7d 5 183 5338
+12e82 11 186 5338
+12e93 2 188 5338
+12e95 8 160 5338
+12e9d 5 170 5338
+12ea2 3 167 5338
+12ea5 2 172 5338
+12ea7 6 174 5338
+12ead 2 155 5338
+12eaf 4 321 5338
+12eb3 1 322 5338
+12eb4 12 323 5338
+12ec6 c 332 5338
+12ed2 b 347 5338
+12edd 5 319 5338
+12ee2 7 327 5338
+12ee9 b 328 5338
+12ef4 2 329 5338
+12ef6 6 356 5338
+12efc 5 349 5338
+12f01 5 350 5338
+12f06 4 334 5338
+12f0a 16 341 5338
+12f20 4 343 5338
+FUNC 12f24 79 c _recalloc
+12f24 3 744 5338
+12f27 a 749 5338
+12f31 28 751 5338
+12f59 4 753 5338
+12f5d 9 754 5338
+12f66 b 755 5338
+12f71 b 756 5338
+12f7c a 757 5338
+12f86 10 759 5338
+12f96 5 761 5338
+12f9b 2 762 5338
+FUNC 12f9d 21 0 _get_sbh_threshold
+12f9d 0 61 5281
+12f9d 9 64 5281
+12fa6 2 66 5281
+12fa8 1 81 5281
+12fa9 14 69 5281
+12fbd 1 81 5281
+FUNC 12fbe 46 4 _set_amblksiz
+12fbe 0 214 5281
+12fbe 2b 216 5281
+12fe9 1 224 5281
+12fea 11 217 5281
+12ffb 5 220 5281
+13000 3 223 5281
+13003 1 224 5281
+FUNC 13004 3c 4 _get_amblksiz
+13004 0 243 5281
+13004 27 245 5281
+1302b 1 253 5281
+1302c 8 246 5281
+13034 8 249 5281
+1303c 3 252 5281
+1303f 1 253 5281
+FUNC 13040 48 4 __sbh_heap_init
+13040 0 274 5281
+13040 1c 275 5281
+1305c 1 285 5281
+1305d 4 278 5281
+13061 7 280 5281
+13068 c 281 5281
+13074 13 284 5281
+13087 1 285 5281
+FUNC 13088 2b 4 __sbh_find_block
+13088 0 306 5281
+13088 12 307 5281
+1309a 7 316 5281
+130a1 8 317 5281
+130a9 3 319 5281
+130ac 4 314 5281
+130b0 2 321 5281
+130b2 1 322 5281
+FUNC 130b3 314 8 __sbh_free_block
+130b3 6 381 5281
+130b9 7 399 5281
+130c0 9 402 5281
+130c9 18 407 5281
+130e1 3 408 5281
+130e4 d 412 5281
+130f1 3 416 5281
+130f4 5 417 5281
+130f9 6 420 5281
+130ff b 424 5281
+1310a 4 429 5281
+1310e 5 430 5281
+13113 3 431 5281
+13116 8 434 5281
+1311e 3 439 5281
+13121 b 441 5281
+1312c e 442 5281
+1313a 5 443 5281
+1313f 2 445 5281
+13141 5 448 5281
+13146 11 449 5281
+13157 9 450 5281
+13160 9 455 5281
+13169 15 459 5281
+1317e 6 463 5281
+13184 5 464 5281
+13189 3 465 5281
+1318c f 468 5281
+1319b 3 474 5281
+1319e 6 477 5281
+131a4 b 478 5281
+131af 2 479 5281
+131b1 3 483 5281
+131b4 6 484 5281
+131ba 7 485 5281
+131c1 2 486 5281
+131c3 4 489 5281
+131c7 b 493 5281
+131d2 3 498 5281
+131d5 11 501 5281
+131e6 6 502 5281
+131ec 5 503 5281
+131f1 2 505 5281
+131f3 e 508 5281
+13201 6 509 5281
+13207 6 511 5281
+1320d c 516 5281
+13219 c 517 5281
+13225 8 520 5281
+1322d e 524 5281
+1323b 6 528 5281
+13241 3 529 5281
+13244 6 530 5281
+1324a 3 531 5281
+1324d 6 532 5281
+13253 8 535 5281
+1325b 18 541 5281
+13273 e 542 5281
+13281 f 543 5281
+13290 2 545 5281
+13292 6 547 5281
+13298 10 548 5281
+132a8 13 550 5281
+132bb 5 556 5281
+132c0 4 558 5281
+132c4 b 561 5281
+132cf d 564 5281
+132dc 6 568 5281
+132e2 1a 569 5281
+132fc 15 573 5281
+13311 16 577 5281
+13327 19 578 5281
+13340 9 579 5281
+13349 6 583 5281
+1334f 8 586 5281
+13357 16 589 5281
+1336d 25 595 5281
+13392 14 599 5281
+133a6 4 600 5281
+133aa a 603 5281
+133b4 8 608 5281
+133bc 9 609 5281
+133c5 2 611 5281
+FUNC 133c7 b0 0 __sbh_alloc_new_region
+133c7 0 891 5281
+133c7 13 897 5281
+133da 1e 900 5281
+133f8 4 901 5281
+133fc 12 905 5281
+1340e 9 909 5281
+13417 18 913 5281
+1342f 2 914 5281
+13431 1a 918 5281
+1344b 10 920 5281
+1345b 2 921 5281
+1345d 9 927 5281
+13466 6 930 5281
+1346c 6 933 5281
+13472 4 935 5281
+13476 1 936 5281
+FUNC 13477 106 4 __sbh_alloc_new_group
+13477 5 958 5281
+1347c 3 959 5281
+1347f 9 972 5281
+13488 4 973 5281
+1348c 2 976 5281
+1348e 1 977 5281
+1348f 4 974 5281
+13493 15 981 5281
+134a8 c 986 5281
+134b4 1f 993 5281
+134d3 8 994 5281
+134db 6 998 5281
+134e1 12 1001 5281
+134f3 4 1004 5281
+134f7 7 1005 5281
+134fe 8 1011 5281
+13506 10 1013 5281
+13516 12 1016 5281
+13528 3 1001 5281
+1352b 8 1021 5281
+13533 6 1023 5281
+13539 3 1024 5281
+1353c 6 1027 5281
+13542 3 1028 5281
+13545 5 1030 5281
+1354a a 1031 5281
+13554 9 1032 5281
+1355d b 1033 5281
+13568 e 1036 5281
+13576 5 1038 5281
+1357b 2 1039 5281
+FUNC 1357d 2df c __sbh_resize_block
+1357d 6 1061 5281
+13583 c 1080 5281
+1358f b 1083 5281
+1359a 3 1084 5281
+1359d 12 1085 5281
+135af 7 1089 5281
+135b6 14 1096 5281
+135ca 13 1099 5281
+135dd 7 1105 5281
+135e4 8 1106 5281
+135ec 6 1107 5281
+135f2 8 1110 5281
+135fa 3 1115 5281
+135fd 9 1117 5281
+13606 11 1118 5281
+13617 5 1119 5281
+1361c 2 1121 5281
+1361e 5 1124 5281
+13623 14 1125 5281
+13637 6 1126 5281
+1363d 9 1131 5281
+13646 9 1132 5281
+1364f 12 1135 5281
+13661 a 1141 5281
+1366b 9 1142 5281
+13674 3 1143 5281
+13677 9 1147 5281
+13680 6 1148 5281
+13686 6 1149 5281
+1368c 3 1150 5281
+1368f 6 1151 5281
+13695 8 1154 5281
+1369d 18 1160 5281
+136b5 e 1161 5281
+136c3 6 1162 5281
+136c9 2 1164 5281
+136cb 6 1166 5281
+136d1 10 1167 5281
+136e1 13 1169 5281
+136f4 c 1174 5281
+13700 9 1176 5281
+13709 6 1180 5281
+1370f 9 1182 5281
+13718 7 1100 5281
+1371f 6 1186 5281
+13725 3 1189 5281
+13728 d 1195 5281
+13735 7 1198 5281
+1373c b 1199 5281
+13747 3 1200 5281
+1374a a 1203 5281
+13754 7 1208 5281
+1375b 5 1209 5281
+13760 3 1210 5281
+13763 8 1213 5281
+1376b 3 1218 5281
+1376e b 1221 5281
+13779 e 1222 5281
+13787 5 1223 5281
+1378c 2 1225 5281
+1378e 5 1228 5281
+13793 11 1229 5281
+137a4 9 1231 5281
+137ad 9 1236 5281
+137b6 9 1237 5281
+137bf 9 1240 5281
+137c8 4 1241 5281
+137cc 5 1242 5281
+137d1 3 1243 5281
+137d4 6 1249 5281
+137da 3 1250 5281
+137dd 6 1251 5281
+137e3 3 1252 5281
+137e6 6 1253 5281
+137ec 8 1256 5281
+137f4 18 1262 5281
+1380c e 1263 5281
+1381a 6 1264 5281
+13820 2 1266 5281
+13822 6 1268 5281
+13828 10 1269 5281
+13838 13 1271 5281
+1384b 5 1276 5281
+13850 4 1278 5281
+13854 6 1281 5281
+1385a 2 1282 5281
+FUNC 1385c cd 0 __sbh_heapmin
+1385c 0 1302 5281
+1385c d 1306 5281
+13869 6 1310 5281
+1386f 17 1311 5281
+13886 15 1314 5281
+1389b 16 1318 5281
+138b1 19 1319 5281
+138ca 9 1320 5281
+138d3 f 1325 5281
+138e2 11 1328 5281
+138f3 28 1333 5281
+1391b 6 1334 5281
+13921 7 1338 5281
+13928 1 1340 5281
+FUNC 13929 2e2 0 __sbh_heap_check
+13929 3 1361 5281
+1392c 12 1391 5281
+1393e 8 1393 5281
+13946 16 1398 5281
+1395c 3 1401 5281
+1395f 8 1402 5281
+13967 6 1406 5281
+1396d 9 1407 5281
+13976 c 1408 5281
+13982 3 1409 5281
+13985 3 1410 5281
+13988 6 1411 5281
+1398e 4 1418 5281
+13992 1b 1421 5281
+139ad 9 1424 5281
+139b6 9 1428 5281
+139bf 1c 1438 5281
+139db 2 1445 5281
+139dd 7 1446 5281
+139e4 1 1449 5281
+139e5 c 1452 5281
+139f1 3 1456 5281
+139f4 2 1458 5281
+139f6 6 1462 5281
+139fc 5 1463 5281
+13a01 3 1464 5281
+13a04 9 1465 5281
+13a0d 1e 1470 5281
+13a2b c 1475 5281
+13a37 2 1479 5281
+13a39 4 1481 5281
+13a3d 6 1484 5281
+13a43 10 1488 5281
+13a53 e 1492 5281
+13a61 2 1498 5281
+13a63 4 1502 5281
+13a67 20 1505 5281
+13a87 19 1509 5281
+13aa0 8 1514 5281
+13aa8 3 1518 5281
+13aab 6 1520 5281
+13ab1 8 1524 5281
+13ab9 4 1527 5281
+13abd e 1532 5281
+13acb 8 1536 5281
+13ad3 6 1541 5281
+13ad9 5 1542 5281
+13ade 3 1543 5281
+13ae1 8 1544 5281
+13ae9 c 1549 5281
+13af5 11 1554 5281
+13b06 6 1559 5281
+13b0c 3 1561 5281
+13b0f e 1563 5281
+13b1d 3 1564 5281
+13b20 2 1566 5281
+13b22 8 1568 5281
+13b2a 3 1569 5281
+13b2d 1c 1575 5281
+13b49 c 1580 5281
+13b55 10 1585 5281
+13b65 17 1591 5281
+13b7c 7 1595 5281
+13b83 7 1596 5281
+13b8a 16 1597 5281
+13ba0 f 1602 5281
+13baf 18 1606 5281
+13bc7 5 1608 5281
+13bcc 2 1609 5281
+13bce 4 1403 5281
+13bd2 4 1425 5281
+13bd6 4 1453 5281
+13bda 4 1485 5281
+13bde 4 1471 5281
+13be2 4 1439 5281
+13be6 4 1493 5281
+13bea 4 1537 5281
+13bee 4 1545 5281
+13bf2 4 1550 5281
+13bf6 4 1510 5281
+13bfa 4 1581 5281
+13bfe 4 1576 5281
+13c02 4 1592 5281
+13c06 5 1603 5281
+FUNC 13c0b a8 4 _set_sbh_threshold
+13c0b 1 102 5281
+13c0c a 104 5281
+13c16 3 106 5281
+13c19 1 195 5281
+13c1a a 109 5281
+13c24 25 112 5281
+13c49 5 113 5281
+13c4e 4 114 5281
+13c52 2 195 5281
+13c54 6 173 5281
+13c5a 2 175 5281
+13c5c 5 179 5281
+13c61 2d 185 5281
+13c8e 6 186 5281
+13c94 a 187 5281
+13c9e 5 188 5281
+13ca3 b 193 5281
+13cae 4 194 5281
+13cb2 1 195 5281
+FUNC 13cb3 2e3 4 __sbh_alloc_block
+13cb3 6 632 5281
+13cb9 5 633 5281
+13cbe 15 650 5281
+13cd3 5 668 5281
+13cd8 7 669 5281
+13cdf 5 671 5281
+13ce4 4 672 5281
+13ce8 2 674 5281
+13cea d 677 5281
+13cf7 a 682 5281
+13d01 e 686 5281
+13d0f 3 688 5281
+13d12 2 683 5281
+13d14 5 688 5281
+13d19 4 692 5281
+13d1d 8 694 5281
+13d25 e 698 5281
+13d33 3 700 5281
+13d36 2 695 5281
+13d38 5 700 5281
+13d3d 6 705 5281
+13d43 6 709 5281
+13d49 6 711 5281
+13d4f 4 707 5281
+13d53 4 715 5281
+13d57 8 717 5281
+13d5f 6 720 5281
+13d65 3 722 5281
+13d68 2 718 5281
+13d6a 5 722 5281
+13d6f 4 726 5281
+13d73 e 727 5281
+13d81 7 728 5281
+13d88 12 733 5281
+13d9a 2 734 5281
+13d9c 6 737 5281
+13da2 3 739 5281
+13da5 2 740 5281
+13da7 1c 745 5281
+13dc3 4 749 5281
+13dc7 14 751 5281
+13ddb e 752 5281
+13de9 3 751 5281
+13dec 12 754 5281
+13dfe a 760 5281
+13e08 d 763 5281
+13e15 2 768 5281
+13e17 2 767 5281
+13e19 1 768 5281
+13e1a 4 765 5281
+13e1e 7 770 5281
+13e25 5 775 5281
+13e2a 6 776 5281
+13e30 8 777 5281
+13e38 3 778 5281
+13e3b 8 781 5281
+13e43 8 784 5281
+13e4b 3 788 5281
+13e4e e 791 5281
+13e5c 15 792 5281
+13e71 8 793 5281
+13e79 2 795 5281
+13e7b f 798 5281
+13e8a f 799 5281
+13e99 e 800 5281
+13ea7 1c 809 5281
+13ec3 6 813 5281
+13ec9 3 814 5281
+13ecc 6 815 5281
+13ed2 3 816 5281
+13ed5 6 817 5281
+13edb 8 820 5281
+13ee3 18 826 5281
+13efb b 827 5281
+13f06 10 829 5281
+13f16 2 831 5281
+13f18 6 833 5281
+13f1e d 835 5281
+13f2b 16 837 5281
+13f41 3 831 5281
+13f44 4 844 5281
+13f48 2 846 5281
+13f4a 9 848 5281
+13f53 a 853 5281
+13f5d 4 855 5281
+13f61 e 858 5281
+13f6f 13 862 5281
+13f82 7 863 5281
+13f89 5 866 5281
+13f8e 6 868 5281
+13f94 2 869 5281
+FUNC 13f96 72 4 _fclose_nolock
+13f96 2 86 1752
+13f98 2a 90 1752
+13fc2 6 96 1752
+13fc8 6 105 1752
+13fce 8 106 1752
+13fd6 13 108 1752
+13fe9 5 109 1752
+13fee 7 111 1752
+13ff5 7 120 1752
+13ffc 3 121 1752
+13fff 3 126 1752
+14002 5 127 1752
+14007 1 128 1752
+FUNC 14008 7c 4 fclose
+14008 c 44 1752
+14014 4 45 1752
+14018 2d 47 1752
+14045 6 50 1752
+1404b 3 51 1752
+1404e 3 64 1752
+14051 6 65 1752
+14057 7 55 1752
+1405e 3 56 1752
+14061 a 57 1752
+1406b 11 59 1752
+1407c 8 60 1752
+FUNC 14084 d 8 _ValidateRead(void const *,unsigned int)
+14084 0 63 5683
+14084 3 64 5683
+14087 7 65 5683
+1408e 2 68 5683
+14090 1 71 5683
+FUNC 14091 d 8 _ValidateWrite(void *,unsigned int)
+14091 0 74 5683
+14091 3 75 5683
+14094 7 76 5683
+1409b 2 79 5683
+1409d 1 82 5683
+FUNC 1409e d 4 _ValidateExecute(int (*)(void))
+1409e 0 85 5683
+1409e 3 86 5683
+140a1 7 87 5683
+140a8 2 90 5683
+140aa 1 93 5683
+FUNC 140ab f3 0 abort
+140ab 1b 53 4119
+140c6 a 56 4119
+140d0 8 59 4119
+140d8 5 68 4119
+140dd 4 69 4119
+140e1 8 71 4119
+140e9 d 78 4119
+140f6 6 87 4119
+140fc 6 88 4119
+14102 6 89 4119
+14108 3 90 4119
+1410b 3 91 4119
+1410e 3 92 4119
+14111 7 93 4119
+14118 7 94 4119
+1411f 4 95 4119
+14123 4 96 4119
+14127 4 97 4119
+1412b 4 98 4119
+1412f 1 99 4119
+14130 6 100 4119
+14136 6 106 4119
+1413c 19 107 4119
+14155 3 109 4119
+14158 13 117 4119
+1416b 9 122 4119
+14174 3 123 4119
+14177 15 126 4119
+1418c a 128 4119
+14196 8 137 4119
+FUNC 1419e 1e 8 _set_abort_behavior
+1419e 0 158 4119
+1419e 1d 160 4119
+141bb 1 162 4119
+FUNC 141bc 20 0 _global_unwind2
+FUNC 141dc 45 0 __unwind_handler
+FUNC 14221 84 0 _local_unwind2
+FUNC 142a5 23 0 _abnormal_termination
+FUNC 142c8 9 0 _NLG_Notify1
+FUNC 142d1 1f 0 _NLG_Notify
+PUBLIC 142e8 0 _NLG_Dispatch2
+FUNC 142f0 3 0 _NLG_Call
+PUBLIC 142f2 0 _NLG_Return2
+FUNC 142f3 a3 4 _msize
+142f3 c 43 5383
+142ff 2d 47 5383
+1432c 9 51 5383
+14335 8 55 5383
+1433d 3 56 5383
+14340 e 57 5383
+1434e e 59 5383
+1435c c 61 5383
+14368 5 64 5383
+1436d 10 88 5383
+1437d 2 91 5383
+1437f 6 93 5383
+14385 8 61 5383
+1438d 9 62 5383
+FUNC 14396 6 0 HeapManager::Block::Block()
+14396 6 90 5771
+FUNC 1439c 1b 8 HeapManager::Constructor(void * (*)(unsigned int),void (*)(void *))
+1439c 6 100 5771
+143a2 7 101 5771
+143a9 5 102 5771
+143ae 3 103 5771
+143b1 3 104 5771
+143b4 3 105 5771
+FUNC 143b7 26 0 HeapManager::Destructor()
+143b7 9 110 5771
+143c0 2 111 5771
+143c2 5 113 5771
+143c7 15 115 5771
+143dc 1 118 5771
+FUNC 143dd 63 0 UnDecorator::getNumberOfDimensions()
+143dd 0 1663 5771
+143dd c 1664 5771
+143e9 2 1665 5771
+143eb 1 1696 5771
+143ec a 1666 5771
+143f6 d 1667 5771
+14403 1 1696 5771
+14404 4 1670 5771
+14408 4 1677 5771
+1440c a 1679 5771
+14416 6 1680 5771
+1441c d 1684 5771
+14429 5 1675 5771
+1442e e 1690 5771
+1443c 3 1691 5771
+1443f 1 1696 5771
+FUNC 14440 474 0 UnDecorator::getTypeEncoding()
+14440 f 2335 5771
+1444f 2 2336 5771
+14451 5 2341 5771
+14456 9 2345 5771
+1445f c 2351 5771
+1446b 9 2423 5771
+14474 2 2426 5771
+14476 2a 2427 5771
+144a0 8 2450 5771
+144a8 2 2451 5771
+144aa 24 2454 5771
+144ce 7 2462 5771
+144d5 5 2463 5771
+144da 6 2353 5771
+144e0 8 2358 5771
+144e8 b 2362 5771
+144f3 5 2363 5771
+144f8 2 2364 5771
+144fa 5 2365 5771
+144ff 9 2369 5771
+14508 1b 2373 5771
+14523 11 2377 5771
+14534 a 2393 5771
+1453e 10 2388 5771
+1454e 2 2389 5771
+14550 18 2384 5771
+14568 2 2385 5771
+1456a 12 2380 5771
+1457c 16 2399 5771
+14592 11 2418 5771
+145a3 a 2406 5771
+145ad 5 2407 5771
+145b2 15 2410 5771
+145c7 5 2422 5771
+145cc 1b 2427 5771
+145e7 a 2430 5771
+145f1 5 2431 5771
+145f6 7 2472 5771
+145fd a 2478 5771
+14607 c 2483 5771
+14613 5 2485 5771
+14618 5 2486 5771
+1461d 5 2487 5771
+14622 5 2490 5771
+14627 5 2505 5771
+1462c 5 2508 5771
+14631 5 2509 5771
+14636 5 2434 5771
+1463b 5 2435 5771
+14640 1a 2427 5771
+1465a 30 2568 5771
+1468a 5 2529 5771
+1468f 4 2530 5771
+14693 a 2531 5771
+1469d 2 2532 5771
+1469f a 2533 5771
+146a9 5 2537 5771
+146ae 5 2538 5771
+146b3 2 2539 5771
+146b5 5 2540 5771
+146ba e 2544 5771
+146c8 6 2560 5771
+146ce 10 2555 5771
+146de 2 2556 5771
+146e0 18 2551 5771
+146f8 2 2552 5771
+146fa 12 2547 5771
+1470c 2 2564 5771
+1470e a 2442 5771
+14718 2 2443 5771
+1471a a 2438 5771
+14724 2 2439 5771
+14726 5 2445 5771
+1472b c 2574 5771
+14737 14 2577 5771
+1474b a 2579 5771
+14755 18 2586 5771
+1476d 1a 2589 5771
+14787 1b 2590 5771
+147a2 5 2591 5771
+147a7 1a 2594 5771
+147c1 1b 2595 5771
+147dc 5 2596 5771
+147e1 1a 2599 5771
+147fb 10 2600 5771
+1480b 2 2601 5771
+1480d 7 2604 5771
+14814 2 2605 5771
+14816 a 2608 5771
+14820 2 2609 5771
+14822 a 2612 5771
+1482c 2 2613 5771
+1482e a 2616 5771
+14838 2 2617 5771
+1483a a 2620 5771
+14844 2 2621 5771
+14846 a 2624 5771
+14850 7 2634 5771
+14857 7 2635 5771
+1485e 7 2637 5771
+14865 10 2639 5771
+14875 3f 2648 5771
+FUNC 148b4 b 0 UnDecorator::doUnderScore()
+148b4 b 4259 5771
+FUNC 148bf d 0 UnDecorator::doMSKeywords()
+148bf d 4260 5771
+FUNC 148cc e 0 UnDecorator::doPtr64()
+148cc e 4261 5771
+FUNC 148da e 0 UnDecorator::doFunctionReturns()
+148da e 4262 5771
+FUNC 148e8 e 0 UnDecorator::doAllocationModel()
+148e8 e 4263 5771
+FUNC 148f6 e 0 UnDecorator::doAllocationLanguage()
+148f6 e 4264 5771
+FUNC 14904 12 0 UnDecorator::doThisTypes()
+14904 12 4271 5771
+FUNC 14916 e 0 UnDecorator::doAccessSpecifiers()
+14916 e 4272 5771
+FUNC 14924 e 0 UnDecorator::doThrowTypes()
+14924 e 4273 5771
+FUNC 14932 e 0 UnDecorator::doMemberTypes()
+14932 e 4274 5771
+FUNC 14940 b 0 UnDecorator::doNameOnly()
+14940 b 4279 5771
+FUNC 1494b b 0 UnDecorator::doTypeOnly()
+1494b b 4280 5771
+FUNC 14956 b 0 UnDecorator::haveTemplateParameters()
+14956 b 4281 5771
+FUNC 14961 e 0 UnDecorator::doEcsu()
+14961 e 4282 5771
+FUNC 1496f b 0 UnDecorator::doNoIdentCharCheck()
+1496f b 4283 5771
+FUNC 1497a e 0 UnDecorator::doEllipsis()
+1497a e 4284 5771
+FUNC 14988 19 4 UnDecorator::UScore(Tokens)
+14988 0 4288 5771
+14988 9 4293 5771
+14991 d 4294 5771
+1499e 2 4296 5771
+149a0 1 4298 5771
+FUNC 149a1 84 8 HeapManager::getMemory(unsigned int,int)
+149a1 2 134 5804
+149a3 a 137 5804
+149ad 9 139 5804
+149b6 6 140 5804
+149bc 4 146 5804
+149c0 3 147 5804
+149c3 8 149 5804
+149cb 7 153 5804
+149d2 2 154 5804
+149d4 1c 159 5804
+149f0 4 164 5804
+149f4 7 168 5804
+149fb 2 169 5804
+149fd 2 170 5804
+149ff 3 171 5804
+14a02 8 175 5804
+14a0a 2 182 5804
+14a0c 4 179 5804
+14a10 5 183 5804
+14a15 d 187 5804
+14a22 3 190 5804
+FUNC 14a25 d 0 DName::DName()
+14a25 2 210 5804
+14a27 3 211 5804
+14a2a 7 220 5804
+14a31 1 221 5804
+FUNC 14a32 12 4 DName::DName(DNameNode *)
+14a32 2 224 5804
+14a34 4 225 5804
+14a38 9 234 5804
+14a41 3 235 5804
+FUNC 14a44 9c 4 DName::DName(DName const &)
+14a44 2 259 5804
+14a46 17 260 5804
+14a5d 10 261 5804
+14a6d d 262 5804
+14a7a d 263 5804
+14a87 10 264 5804
+14a97 4 265 5804
+14a9b e 266 5804
+14aa9 13 267 5804
+14abc 10 268 5804
+14acc 11 269 5804
+14add 3 270 5804
+FUNC 14ae0 a 0 DName::status()
+14ae0 a 481 5804
+FUNC 14aea 5 0 DName::clearStatus()
+14aea 5 482 5804
+FUNC 14aef 7 0 DName::setPtrRef()
+14aef 7 484 5804
+FUNC 14af6 a 0 DName::isPtrRef()
+14af6 a 485 5804
+FUNC 14b00 8 0 DName::setIsArray()
+14b00 8 490 5804
+FUNC 14b08 a 0 DName::isArray()
+14b08 a 491 5804
+FUNC 14b12 a 0 DName::isNoTE()
+14b12 a 492 5804
+FUNC 14b1c 8 0 DName::setIsNoTE()
+14b1c 8 493 5804
+FUNC 14b24 a 0 DName::isPinPtr()
+14b24 a 494 5804
+FUNC 14b2e 8 0 DName::setIsPinPtr()
+14b2e 8 495 5804
+FUNC 14b36 a 0 DName::isComArray()
+14b36 a 496 5804
+FUNC 14b40 8 0 DName::setIsComArray()
+14b40 8 497 5804
+FUNC 14b48 a 0 DName::isVCallThunk()
+14b48 a 498 5804
+FUNC 14b52 8 0 DName::setIsVCallThunk()
+14b52 8 499 5804
+FUNC 14b5a 7b 4 DName::operator=(DName const &)
+14b5a 3 879 5804
+14b5d 12 880 5804
+14b6f 17 882 5804
+14b86 d 883 5804
+14b93 d 884 5804
+14ba0 d 885 5804
+14bad 10 886 5804
+14bbd 10 887 5804
+14bcd 5 889 5804
+14bd2 3 897 5804
+FUNC 14bd5 9 0 Replicator::isFull()
+14bd5 9 1001 5804
+FUNC 14bde 25 4 Replicator::operator[](int)
+14bde 0 1028 5804
+14bde 9 1029 5804
+14be7 b 1031 5804
+14bf2 6 1034 5804
+14bf8 5 1032 5804
+14bfd 3 1030 5804
+14c00 3 1036 5804
+FUNC 14c03 d 0 DNameNode::DNameNode()
+14c03 d 1048 5804
+FUNC 14c10 4 0 DNameNode::nextNode()
+14c10 4 1052 5804
+FUNC 14c14 29 4 DNameNode::operator+=(DNameNode *)
+14c14 2 1131 5804
+14c16 8 1132 5804
+14c1e 8 1134 5804
+14c26 b 1139 5804
+14c31 4 1144 5804
+14c35 2 1147 5804
+14c37 3 1148 5804
+14c3a 3 1156 5804
+FUNC 14c3d 16 4 charNode::charNode(char)
+14c3d 16 1166 5804
+FUNC 14c53 4 0 charNode::length()
+14c53 4 1168 5804
+FUNC 14c57 4 0 charNode::getLastChar()
+14c57 4 1170 5804
+FUNC 14c5b 1b 8 charNode::getString(char *,int)
+14c5b 0 1173 5804
+14c5b f 1174 5804
+14c6a 5 1175 5804
+14c6f 2 1176 5804
+14c71 2 1177 5804
+14c73 3 1183 5804
+FUNC 14c76 4 0 pcharNode::length()
+14c76 4 1189 5804
+FUNC 14c7a 2f 4 pDNameNode::pDNameNode(DName *)
+14c7a 2f 1244 5804
+FUNC 14ca9 25 4 DNameStatusNode::DNameStatusNode(DNameStatus)
+14ca9 25 1261 5804
+FUNC 14cce 4 0 DNameStatusNode::length()
+14cce 4 1263 5804
+FUNC 14cd2 d 0 DNameStatusNode::getLastChar()
+14cd2 d 1266 5804
+FUNC 14cdf e 0 und_strlen
+14cdf 0 1283 5804
+14cdf 6 1286 5804
+14ce5 7 1287 5804
+14cec 1 1291 5804
+FUNC 14ced 20 8 und_strncpy
+14ced 0 1295 5804
+14ced 1b 1296 5804
+14d08 4 1299 5804
+14d0c 1 1301 5804
+FUNC 14d0d 25 4 und_strncmp
+14d0d 0 1304 5804
+14d0d 7 1305 5804
+14d14 2 1306 5804
+14d16 1 1315 5804
+14d17 a 1308 5804
+14d21 1 1310 5804
+14d22 1 1311 5804
+14d23 6 1308 5804
+14d29 8 1314 5804
+14d31 1 1315 5804
+FUNC 14d32 33 0 UnDecorator::getDataIndirectType()
+14d32 33 4033 5771
+FUNC 14d65 34 0 UnDecorator::getThisType()
+14d65 34 4034 5771
+FUNC 14d99 13 c operator new(unsigned int,HeapManager &,int)
+14d99 13 131 5804
+FUNC 14dac 56 4 DName::DName(DName *)
+14dac 0 274 5804
+14dac a 275 5804
+14db6 23 277 5804
+14dd9 13 278 5804
+14dec 2 281 5804
+14dee 4 283 5804
+14df2 3 284 5804
+14df5 7 295 5804
+14dfc 6 296 5804
+FUNC 14e02 61 4 DName::DName(DNameStatus)
+14e02 2 457 5804
+14e04 21 458 5804
+14e25 1e 459 5804
+14e43 7 467 5804
+14e4a 9 469 5804
+14e53 a 470 5804
+14e5d 6 472 5804
+FUNC 14e63 17 0 DName::isValid()
+14e63 17 478 5804
+FUNC 14e7a 15 0 DName::isEmpty()
+14e7a 15 479 5804
+FUNC 14e8f 14 0 DName::isUDC()
+14e8f 14 486 5804
+FUNC 14ea3 e 0 DName::setIsUDC()
+14ea3 e 487 5804
+FUNC 14eb1 14 0 DName::isUDTThunk()
+14eb1 14 488 5804
+FUNC 14ec5 25 0 DName::length()
+14ec5 1 502 5804
+14ec6 2 503 5804
+14ec8 a 506 5804
+14ed2 4 507 5804
+14ed6 b 508 5804
+14ee1 5 507 5804
+14ee6 3 510 5804
+14ee9 1 512 5804
+FUNC 14eea 38 0 DName::getLastChar()
+14eea 2 516 5804
+14eec 2 517 5804
+14eee 9 519 5804
+14ef7 6 520 5804
+14efd a 521 5804
+14f07 2 522 5804
+14f09 7 520 5804
+14f10 11 524 5804
+14f21 1 526 5804
+FUNC 14f22 91 8 DName::getString(char *,int)
+14f22 7 530 5804
+14f29 9 531 5804
+14f32 5 535 5804
+14f37 7 537 5804
+14f3e e 538 5804
+14f4c c 544 5804
+14f58 d 550 5804
+14f65 4 553 5804
+14f69 8 555 5804
+14f71 4 561 5804
+14f75 6 565 5804
+14f7b 2 566 5804
+14f7d b 570 5804
+14f88 4 574 5804
+14f8c 2 578 5804
+14f8e 3 579 5804
+14f91 3 586 5804
+14f94 4 553 5804
+14f98 4 590 5804
+14f9c 2 593 5804
+14f9e 6 594 5804
+14fa4 6 595 5804
+14faa 5 599 5804
+14faf 4 601 5804
+FUNC 14fb3 35 4 DName::operator|=(DName const &)
+14fb3 3 832 5804
+14fb6 19 835 5804
+14fcf 13 836 5804
+14fe2 3 840 5804
+14fe5 3 842 5804
+FUNC 14fe8 81 4 DName::operator=(DNameStatus)
+14fe8 2 928 5804
+14fea 10 929 5804
+14ffa 12 937 5804
+1500c 26 945 5804
+15032 6 947 5804
+15038 e 948 5804
+15046 10 933 5804
+15056 d 934 5804
+15063 3 954 5804
+15066 3 956 5804
+FUNC 15069 1e 0 Replicator::Replicator()
+15069 1e 1004 5804
+FUNC 15087 47 4 Replicator::operator+=(DName const &)
+15087 3 1009 5804
+1508a 12 1010 5804
+1509c 20 1012 5804
+150bc 4 1017 5804
+150c0 8 1018 5804
+150c8 3 1022 5804
+150cb 3 1024 5804
+FUNC 150ce 47 0 DNameNode::clone()
+150ce 3 1055 5804
+150d1 43 1056 5804
+15114 1 1057 5804
+FUNC 15115 65 8 pcharNode::pcharNode(char const *,int)
+15115 1 1197 5804
+15116 1f 1200 5804
+15135 c 1201 5804
+15141 8 1205 5804
+15149 c 1207 5804
+15155 a 1210 5804
+1515f b 1211 5804
+1516a 2 1214 5804
+1516c 3 1216 5804
+1516f 4 1217 5804
+15173 7 1220 5804
+FUNC 1517a 12 0 pcharNode::getLastChar()
+1517a 12 1191 5804
+FUNC 1518c 31 8 pcharNode::getString(char *,int)
+1518c 0 1224 5804
+1518c b 1227 5804
+15197 2 1228 5804
+15199 21 1232 5804
+151ba 3 1234 5804
+FUNC 151bd f 0 pDNameNode::length()
+151bd f 1246 5804
+FUNC 151cc f 0 pDNameNode::getLastChar()
+151cc f 1248 5804
+FUNC 151db 1d 8 pDNameNode::getString(char *,int)
+151db 1d 1251 5804
+FUNC 151f8 33 8 DNameStatusNode::getString(char *,int)
+151f8 0 1269 5804
+151f8 b 1272 5804
+15203 2 1273 5804
+15205 23 1277 5804
+15228 3 1279 5804
+FUNC 1522b 73 14 UnDecorator::UnDecorator(char *,char const *,int,char * (*)(long),unsigned long)
+1522b 16 736 5771
+15241 8 737 5771
+15249 5 738 5771
+1524e 9 740 5771
+15257 a 741 5771
+15261 5 745 5771
+15266 2 747 5771
+15268 6 748 5771
+1526e 6 749 5771
+15274 8 754 5771
+1527c 15 755 5771
+15291 d 758 5771
+FUNC 1529e 2f 4 UnDecorator::getReturnType(DName *)
+1529e 3 2906 5771
+152a1 8 2907 5771
+152a9 15 2911 5771
+152be d 2915 5771
+152cb 2 2917 5771
+FUNC 152cd f 0 UnDecorator::getStorageConvention()
+152cd f 4032 5771
+FUNC 152dc 79 4 DName::operator+=(DNameStatus)
+152dc 4 799 5804
+152e0 17 800 5804
+152f7 20 804 5804
+15317 4 807 5804
+1531b 7 809 5804
+15322 6 811 5804
+15328 8 812 5804
+15330 2 815 5804
+15332 3 816 5804
+15335 5 818 5804
+1533a e 819 5804
+15348 7 801 5804
+1534f 3 825 5804
+15352 3 827 5804
+FUNC 15355 68 4 DName::operator=(DName *)
+15355 3 901 5804
+15358 12 902 5804
+1536a 7 903 5804
+15371 29 911 5804
+1539a 6 913 5804
+153a0 c 914 5804
+153ac 2 917 5804
+153ae 9 918 5804
+153b7 3 922 5804
+153ba 3 924 5804
+FUNC 153bd a6 8 DName::doPchar(char const *,int)
+153bd 3 962 5804
+153c0 1e 963 5804
+153de 6 964 5804
+153e4 c 965 5804
+153f0 10 966 5804
+15400 5 970 5804
+15405 23 984 5804
+15428 6 986 5804
+1542e 9 987 5804
+15437 2 988 5804
+15439 1b 977 5804
+15454 c 993 5804
+15460 3 995 5804
+FUNC 15463 26 4 DName::DName(char)
+15463 3 238 5804
+15466 3 244 5804
+15469 7 248 5804
+15470 7 252 5804
+15477 c 253 5804
+15483 6 255 5804
+FUNC 15489 31 4 DName::DName(char const *)
+15489 0 300 5804
+15489 16 312 5804
+1549f 15 313 5804
+154b4 6 315 5804
+FUNC 154ba d0 8 DName::DName(char const * &,char)
+154ba 7 319 5804
+154c1 d 329 5804
+154ce f 333 5804
+154dd 8 334 5804
+154e5 9 342 5804
+154ee 40 343 5804
+1552e b 344 5804
+15539 9 355 5804
+15542 8 359 5804
+1554a 8 361 5804
+15552 9 363 5804
+1555b 3 364 5804
+1555e 2 367 5804
+15560 3 347 5804
+15563 a 378 5804
+1556d 8 380 5804
+15575 6 368 5804
+1557b 7 371 5804
+15582 6 372 5804
+15588 2 375 5804
+FUNC 1558a 69 8 DName::DName(unsigned __int64)
+1558a 15 384 5804
+1559f 3 390 5804
+155a2 a 398 5804
+155ac 4 402 5804
+155b0 13 406 5804
+155c3 3 407 5804
+155c6 c 409 5804
+155d2 e 411 5804
+155e0 13 413 5804
+FUNC 155f3 96 8 DName::DName(__int64)
+155f3 10 416 5804
+15603 26 436 5804
+15629 15 438 5804
+1563e 10 443 5804
+1564e 5 444 5804
+15653 c 446 5804
+1565f 6 448 5804
+15665 4 449 5804
+15669 e 452 5804
+15677 12 453 5804
+FUNC 15689 2e 4 DName::operator+(DNameStatus)
+15689 1 675 5804
+1568a c 676 5804
+15696 9 679 5804
+1569f b 680 5804
+156aa 2 681 5804
+156ac 5 682 5804
+156b1 3 686 5804
+156b4 3 688 5804
+FUNC 156b7 62 4 DName::operator+=(DName const &)
+156b7 2 739 5804
+156b9 f 740 5804
+156c8 13 741 5804
+156db 2 742 5804
+156dd 9 743 5804
+156e6 6 744 5804
+156ec 2 745 5804
+156ee 7 747 5804
+156f5 6 749 5804
+156fb 9 750 5804
+15704 2 751 5804
+15706 d 752 5804
+15713 3 758 5804
+15716 3 760 5804
+FUNC 15719 8b 4 DName::operator+=(DName *)
+15719 2 764 5804
+1571b a 765 5804
+15725 9 766 5804
+1572e 8 767 5804
+15736 10 768 5804
+15746 8 789 5804
+1574e 20 770 5804
+1576e 4 773 5804
+15772 7 775 5804
+15779 6 777 5804
+1577f 8 778 5804
+15787 2 781 5804
+15789 3 782 5804
+1578c 5 784 5804
+15791 d 785 5804
+1579e 3 793 5804
+157a1 3 795 5804
+FUNC 157a4 1c 4 DName::operator=(char)
+157a4 1 847 5804
+157a5 15 854 5804
+157ba 3 856 5804
+157bd 3 858 5804
+FUNC 157c0 2a 4 DName::operator=(char const *)
+157c0 0 862 5804
+157c0 24 869 5804
+157e4 3 873 5804
+157e7 3 875 5804
+FUNC 157ea a6 0 UnDecorator::getCallingConvention()
+157ea 5 2825 5771
+157ef f 2826 5771
+157fe c 2828 5771
+1580a 5 2835 5771
+1580f 1a 2845 5771
+15829 20 2852 5771
+15849 2 2875 5771
+1584b 2 2876 5771
+1584d 2 2871 5771
+1584f 2 2872 5771
+15851 2 2867 5771
+15853 2 2868 5771
+15855 2 2863 5771
+15857 2 2864 5771
+15859 1 2859 5771
+1585a 2 2860 5771
+1585c 13 2855 5771
+1586f e 2891 5771
+1587d 4 2895 5771
+15881 d 2899 5771
+1588e 2 2901 5771
+FUNC 15890 37 0 UnDecorator::getVCallThunkType()
+15890 3 4057 5771
+15893 9 4059 5771
+1589c 5 4066 5771
+158a1 4 4059 5771
+158a5 4 4066 5771
+158a9 6 4061 5771
+158af c 4062 5771
+158bb a 4064 5771
+158c5 2 4170 5771
+FUNC 158c7 51 4 DName::operator+(DName const &)
+158c7 1 639 5804
+158c8 c 640 5804
+158d4 b 643 5804
+158df b 644 5804
+158ea d 645 5804
+158f7 11 646 5804
+15908 2 647 5804
+1590a 8 648 5804
+15912 3 652 5804
+15915 3 654 5804
+FUNC 15918 2e 4 DName::operator+(DName *)
+15918 1 658 5804
+15919 c 659 5804
+15925 9 662 5804
+1592e b 663 5804
+15939 2 664 5804
+1593b 5 665 5804
+15940 3 669 5804
+15943 3 671 5804
+FUNC 15946 6a 4 DName::operator+=(char)
+15946 1 693 5804
+15947 b 694 5804
+15952 9 695 5804
+1595b 6 696 5804
+15961 2 697 5804
+15963 7 699 5804
+1596a 6 701 5804
+15970 2b 702 5804
+1599b 2 703 5804
+1599d c 704 5804
+159a9 4 710 5804
+159ad 3 712 5804
+FUNC 159b0 6c 4 DName::operator+=(char const *)
+159b0 2 716 5804
+159b2 f 717 5804
+159c1 9 718 5804
+159ca 6 719 5804
+159d0 2 720 5804
+159d2 7 722 5804
+159d9 6 724 5804
+159df 28 725 5804
+15a07 2 726 5804
+15a09 d 727 5804
+15a16 3 733 5804
+15a19 3 735 5804
+FUNC 15a1c e0 0 UnDecorator::getArgumentList()
+15a1c 7 3076 5771
+15a23 12 3078 5771
+15a35 29 3081 5771
+15a5e 6 3085 5771
+15a64 4 3086 5771
+15a68 2 3087 5771
+15a6a e 3088 5771
+15a78 6 3093 5771
+15a7e 6 3095 5771
+15a84 5 3100 5771
+15a89 1 3102 5771
+15a8a 11 3106 5771
+15a9b 2 3109 5771
+15a9d 16 3116 5771
+15ab3 19 3121 5771
+15acc 9 3122 5771
+15ad5 17 3126 5771
+15aec b 3132 5771
+15af7 3 3141 5771
+15afa 2 3143 5771
+FUNC 15afc 4f 4 UnDecorator::getVdispMapType(DName const &)
+15afc 6 4230 5771
+15b02 d 4231 5771
+15b0f c 4232 5771
+15b1b 12 4233 5771
+15b2d 9 4234 5771
+15b36 a 4236 5771
+15b40 6 4237 5771
+15b46 3 4238 5771
+15b49 2 4239 5771
+FUNC 15b4b 22 8 operator+(char,DName const &)
+15b4b 22 198 5804
+FUNC 15b6d 22 8 operator+(DNameStatus,DName const &)
+15b6d 22 201 5804
+FUNC 15b8f 22 8 operator+(char const *,DName const &)
+15b8f 22 204 5804
+FUNC 15bb1 2e 4 DName::operator+(char)
+15bb1 1 605 5804
+15bb2 c 606 5804
+15bbe 9 609 5804
+15bc7 b 610 5804
+15bd2 2 611 5804
+15bd4 5 612 5804
+15bd9 3 616 5804
+15bdc 3 618 5804
+FUNC 15bdf 2e 4 DName::operator+(char const *)
+15bdf 1 622 5804
+15be0 c 623 5804
+15bec 9 626 5804
+15bf5 b 627 5804
+15c00 2 628 5804
+15c02 5 629 5804
+15c07 3 633 5804
+15c0a 3 635 5804
+FUNC 15c0d 141 4 UnDecorator::getDimension(bool)
+15c0d 7 1616 5771
+15c14 10 1618 5771
+15c24 e 1620 5771
+15c32 6 1623 5771
+15c38 f 1624 5771
+15c47 8 1625 5771
+15c4f 47 1626 5771
+15c96 4 1629 5771
+15c9a 4 1636 5771
+15c9e 8 1638 5771
+15ca6 20 1639 5771
+15cc6 d 1643 5771
+15cd3 4 1634 5771
+15cd7 b 1649 5771
+15ce2 2 1650 5771
+15ce4 5 1652 5771
+15ce9 13 1653 5771
+15cfc c 1637 5771
+15d08 4 1641 5771
+15d0c a 1653 5771
+15d16 36 1655 5771
+15d4c 2 1659 5771
+FUNC 15d4e d4 0 UnDecorator::getEnumType()
+15d4e 6 2762 5771
+15d54 1a 2766 5771
+15d6e 12 2770 5771
+15d80 5 2774 5771
+15d85 2 2775 5771
+15d87 5 2779 5771
+15d8c 2 2780 5771
+15d8e 5 2786 5771
+15d93 2 2787 5771
+15d95 d 2791 5771
+15da2 1f 2801 5771
+15dc1 1e 2807 5771
+15ddf e 2814 5771
+15ded 4 2795 5771
+15df1 d 2818 5771
+15dfe 24 2820 5771
+FUNC 15e22 c4 0 UnDecorator::getArgumentTypes()
+15e22 3 3035 5771
+15e25 18 3036 5771
+15e3d 9 3046 5771
+15e46 7 3051 5771
+15e4d 13 3052 5771
+15e60 c 3064 5771
+15e6c 36 3058 5771
+15ea2 b 3061 5771
+15ead 21 3039 5771
+15ece 16 3042 5771
+15ee4 2 3072 5771
+FUNC 15ee6 7e 0 UnDecorator::getThrowTypes()
+15ee6 3 3148 5771
+15ee9 e 3149 5771
+15ef7 2 3150 5771
+15ef9 21 3151 5771
+15f1a 1f 3153 5771
+15f39 29 3155 5771
+15f62 2 3157 5771
+FUNC 15f64 125 c UnDecorator::getExtendedDataIndirectType(char &,bool &,int)
+15f64 6 3636 5771
+15f6a 1a 3641 5771
+15f84 1c 3643 5771
+15fa0 a 3669 5771
+15faa 6 3670 5771
+15fb0 b 3672 5771
+15fbb a 3674 5771
+15fc5 21 3675 5771
+15fe6 17 3678 5771
+15ffd a 3680 5771
+16007 6 3689 5771
+1600d 2 3691 5771
+1600f 17 3693 5771
+16026 1e 3700 5771
+16044 6 3663 5771
+1604a 2 3665 5771
+1604c 3 3656 5771
+1604f d 3657 5771
+1605c 2 3659 5771
+1605e 6 3647 5771
+16064 13 3649 5771
+16077 10 3703 5771
+16087 2 3704 5771
+FUNC 16089 15f 4 UnDecorator::getArrayType(DName const &)
+16089 3 3986 5771
+1608c 12 3987 5771
+1609e 7 3989 5771
+160a5 4 3991 5771
+160a9 2 3992 5771
+160ab 4 3994 5771
+160af 9 3995 5771
+160b8 2a 4026 5771
+160e2 2 4028 5771
+160e4 c 3998 5771
+160f0 9 4000 5771
+160f9 d 4001 5771
+16106 35 4005 5771
+1613b b 4009 5771
+16146 4 4010 5771
+1614a 8 4011 5771
+16152 2 4012 5771
+16154 2c 4013 5771
+16180 d 4017 5771
+1618d 9 4018 5771
+16196 12 4019 5771
+161a8 a 4023 5771
+161b2 36 4024 5771
+FUNC 161e8 31 0 UnDecorator::getLexicalFrame()
+161e8 31 4031 5771
+FUNC 16219 12 0 UnDecorator::getDisplacement()
+16219 12 4048 5771
+FUNC 1622b 12 0 UnDecorator::getCallIndex()
+1622b 12 4049 5771
+FUNC 1623d 12 0 UnDecorator::getGuardNumber()
+1623d 12 4050 5771
+FUNC 1624f 150 4 UnDecorator::getVfTableType(DName const &)
+1624f 7 4174 5771
+16256 d 4175 5771
+16263 1d 4178 5771
+16280 2c 4180 5771
+162ac f 4182 5771
+162bb e 4184 5771
+162c9 5 4186 5771
+162ce 11 4188 5771
+162df 2d 4190 5771
+1630c b 4194 5771
+16317 7 4195 5771
+1631e 10 4199 5771
+1632e a 4200 5771
+16338 b 4188 5771
+16343 b 4204 5771
+1634e a 4206 5771
+16358 7 4207 5771
+1635f 9 4209 5771
+16368 a 4216 5771
+16372 6 4217 5771
+16378 2 4220 5771
+1637a 9 4221 5771
+16383 17 4222 5771
+1639a 3 4224 5771
+1639d 2 4226 5771
+FUNC 1639f a0 8 UnDecorator::getStringEncoding(char *,int)
+1639f 6 1447 5771
+163a5 b 1448 5771
+163b0 22 1451 5771
+163d2 6 1456 5771
+163d8 b 1459 5771
+163e3 b 1462 5771
+163ee 13 1464 5771
+16401 c 1466 5771
+1640d 5 1469 5771
+16412 6 1470 5771
+16418 4 1471 5771
+1641c 14 1477 5771
+16430 d 1452 5771
+1643d 2 1478 5771
+FUNC 1643f 50 0 UnDecorator::getSignedDimension()
+1643f 5 1603 5771
+16444 b 1604 5771
+1644f c 1605 5771
+1645b 2 1606 5771
+1645d 23 1608 5771
+16480 d 1611 5771
+1648d 2 1612 5771
+FUNC 1648f 2bb 0 UnDecorator::getTemplateConstant()
+1648f 15 1877 5771
+164a4 f 1884 5771
+164b3 32 1885 5771
+164e5 9 1921 5771
+164ee b 1922 5771
+164f9 20 1924 5771
+16519 12 1931 5771
+1652b e 1932 5771
+16539 3 1937 5771
+1653c 7 1939 5771
+16543 6 1941 5771
+16549 4 1942 5771
+1654d 2 1944 5771
+1654f 4 1945 5771
+16553 2a 1950 5771
+1657d a 1900 5771
+16587 6 1902 5771
+1658d 11 1903 5771
+1659e 1b 1906 5771
+165b9 b 1892 5771
+165c4 6 2034 5771
+165ca 7 1954 5771
+165d1 26 1885 5771
+165f7 b 1990 5771
+16602 c 1991 5771
+1660e 10 1992 5771
+1661e 9 1966 5771
+16627 c 1968 5771
+16633 e 1971 5771
+16641 10 1973 5771
+16651 6 1975 5771
+16657 6 1976 5771
+1665d 3 1980 5771
+16660 29 1981 5771
+16689 a 1983 5771
+16693 a 2001 5771
+1669d a 2003 5771
+166a7 13 2007 5771
+166ba a 2008 5771
+166c4 11 2012 5771
+166d5 13 2015 5771
+166e8 a 2016 5771
+166f2 13 2021 5771
+16705 a 2022 5771
+1670f 13 2026 5771
+16722 d 2029 5771
+1672f 7 1913 5771
+16736 14 2041 5771
+FUNC 1674a d9 8 UnDecorator::getPtrRefDataType(DName const &,int)
+1674a 3 3937 5771
+1674d 11 3940 5771
+1675e b 3944 5771
+16769 12 3948 5771
+1677b 12 3949 5771
+1678d 10 3951 5771
+1679d 5 3957 5771
+167a2 16 3961 5771
+167b8 d 3967 5771
+167c5 c 3968 5771
+167d1 b 3970 5771
+167dc 6 3972 5771
+167e2 1e 3974 5771
+16800 e 3976 5771
+1680e 13 3980 5771
+16821 2 3982 5771
+FUNC 16823 14 4 UnDecorator::getVbTableType(DName const &)
+16823 14 4053 5771
+FUNC 16837 1b8 0 UnDecorator::getTemplateArgumentList()
+16837 14 1775 5771
+1684b c 1777 5771
+16857 7 1778 5771
+1685e 2a 1781 5771
+16888 6 1785 5771
+1688e 4 1786 5771
+16892 2 1787 5771
+16894 e 1788 5771
+168a2 8 1793 5771
+168aa 5 1798 5771
+168af 1 1800 5771
+168b0 11 1804 5771
+168c1 5 1807 5771
+168c6 7 1810 5771
+168cd 7 1816 5771
+168d4 6 1817 5771
+168da 12 1818 5771
+168ec a 1820 5771
+168f6 5 1821 5771
+168fb e 1822 5771
+16909 5 1824 5771
+1690e 9 1830 5771
+16917 c 1832 5771
+16923 e 1835 5771
+16931 10 1837 5771
+16941 6 1839 5771
+16947 1 1840 5771
+16948 2 1842 5771
+1694a 25 1843 5771
+1696f 2 1846 5771
+16971 10 1847 5771
+16981 2 1850 5771
+16983 1f 1851 5771
+169a2 17 1857 5771
+169b9 9 1858 5771
+169c2 16 1862 5771
+169d8 17 1873 5771
+FUNC 169ef 56f 8 UnDecorator::getOperatorName(bool,bool *)
+169ef b 1095 5771
+169fa 53 1103 5771
+16a4d 13 1183 5771
+16a60 c 1439 5771
+16a6c 1d 1440 5771
+16a89 11 1442 5771
+16a9a 5 1444 5771
+16a9f 3 1124 5771
+16aa2 8 1126 5771
+16aaa 21 1127 5771
+16acb c 1129 5771
+16ad7 a 1130 5771
+16ae1 a 1133 5771
+16aeb 7 1135 5771
+16af2 3 1136 5771
+16af5 9 1144 5771
+16afe 5 1145 5771
+16b03 6 1148 5771
+16b09 2 1154 5771
+16b0b 15 1156 5771
+16b20 18 1160 5771
+16b38 1a 1161 5771
+16b52 10 1166 5771
+16b62 b 1167 5771
+16b6d 5 1170 5771
+16b72 6 1106 5771
+16b78 f 1108 5771
+16b87 21 1103 5771
+16ba8 3d 1220 5771
+16be5 18 1240 5771
+16bfd b 1234 5771
+16c08 5 1235 5771
+16c0d 13 1245 5771
+16c20 7 1247 5771
+16c27 8 1249 5771
+16c2f 18 1220 5771
+16c47 13 1255 5771
+16c5a 7 1256 5771
+16c61 2 1257 5771
+16c63 16 1335 5771
+16c79 7 1356 5771
+16c80 6 1350 5771
+16c86 2 1352 5771
+16c88 25 1220 5771
+16cad 13 1290 5771
+16cc0 17 1291 5771
+16cd7 24 1292 5771
+16cfb 14 1313 5771
+16d0f 6 1316 5771
+16d15 5 1317 5771
+16d1a 10 1302 5771
+16d2a 20 1303 5771
+16d4a 20 1304 5771
+16d6a 20 1305 5771
+16d8a 22 1306 5771
+16dac 12 1307 5771
+16dbe c 1296 5771
+16dca 2b 1297 5771
+16df5 13 1281 5771
+16e08 17 1282 5771
+16e1f 1a 1283 5771
+16e39 5 1284 5771
+16e3e 2d 1220 5771
+16e6b 25 1364 5771
+16e90 10 1373 5771
+16ea0 13 1378 5771
+16eb3 a 1397 5771
+16ebd 13 1399 5771
+16ed0 a 1403 5771
+16eda 6 1405 5771
+16ee0 2 1408 5771
+16ee2 13 1410 5771
+16ef5 d 1413 5771
+16f02 5 1415 5771
+16f07 10 1278 5771
+16f17 b 1330 5771
+16f22 5 1428 5771
+16f27 3 1187 5771
+16f2a 13 1216 5771
+16f3d 8 1437 5771
+16f45 19 1438 5771
+FUNC 16f5e 153 4 UnDecorator::getTemplateName(bool)
+16f5e 5 1700 5771
+16f63 1f 1704 5771
+16f82 16 1714 5771
+16f98 1d 1716 5771
+16fb5 23 1725 5771
+16fd8 e 1729 5771
+16fe6 6 1730 5771
+16fec 12 1732 5771
+16ffe 2 1734 5771
+17000 16 1735 5771
+17016 c 1738 5771
+17022 7 1739 5771
+17029 6 1746 5771
+1702f 21 1747 5771
+17050 c 1749 5771
+1705c a 1750 5771
+17066 a 1753 5771
+17070 6 1755 5771
+17076 6 1756 5771
+1707c 23 1769 5771
+1709f d 1705 5771
+170ac 5 1771 5771
+FUNC 170b1 1ea 4 UnDecorator::getZName(bool)
+170b1 10 1007 5771
+170c1 11 1008 5771
+170d2 3 1013 5771
+170d5 26 1043 5771
+170fb b 1024 5771
+17106 5 1026 5771
+1710b 16 1028 5771
+17121 16 1030 5771
+17137 17 1031 5771
+1714e 7 1033 5771
+17155 25 1040 5771
+1717a 5 1042 5771
+1717f 29 1043 5771
+171a8 8 1045 5771
+171b0 b 1051 5771
+171bb c 1053 5771
+171c7 e 1056 5771
+171d5 10 1058 5771
+171e5 4 1060 5771
+171e9 b 1061 5771
+171f4 2 1063 5771
+171f6 a 1064 5771
+17200 10 1065 5771
+17210 2 1068 5771
+17212 d 1069 5771
+1721f 2a 1070 5771
+17249 2 1073 5771
+1724b 1a 1076 5771
+17265 11 1083 5771
+17276 9 1084 5771
+1727f f 1087 5771
+1728e d 1090 5771
+FUNC 1729b e4 0 UnDecorator::getScopedName()
+1729b 7 2727 5771
+172a2 e 2728 5771
+172b0 15 2733 5771
+172c5 1a 2737 5771
+172df 2a 2738 5771
+17309 b 2742 5771
+17314 8 2743 5771
+1731c 4 2744 5771
+17320 1b 2745 5771
+1733b b 2746 5771
+17346 7 2747 5771
+1734d 2 2748 5771
+1734f 2b 2749 5771
+1737a 3 2753 5771
+1737d 2 2755 5771
+FUNC 1737f f 0 UnDecorator::getECSUName()
+1737f f 2758 5771
+FUNC 1738e 100 0 UnDecorator::getECSUDataType()
+1738e 3 3392 5771
+17391 20 3395 5771
+173b1 37 3399 5771
+173e8 5 3424 5771
+173ed 2 3425 5771
+173ef 5 3420 5771
+173f4 2 3421 5771
+173f6 26 3431 5771
+1741c 2 3432 5771
+1741e 5 3415 5771
+17423 2 3416 5771
+17425 5 3411 5771
+1742a 2 3412 5771
+1742c d 3407 5771
+17439 7 3439 5771
+17440 4 3441 5771
+17444 c 3442 5771
+17450 16 3446 5771
+17466 e 3450 5771
+17474 18 3404 5771
+1748c 2 3452 5771
+FUNC 1748e 46 0 UnDecorator::getSymbolName()
+1748e 3 989 5771
+17491 a 990 5771
+1749b 6 991 5771
+174a1 c 992 5771
+174ad 16 997 5771
+174c3 f 1001 5771
+174d2 2 1003 5771
+FUNC 174d4 92 0 UnDecorator::getBasedType()
+174d4 6 2653 5771
+174da 13 2654 5771
+174ed a 2659 5771
+174f7 17 2661 5771
+1750e c 2707 5771
+1751a 13 2699 5771
+1752d 2 2700 5771
+1752f d 2674 5771
+1753c 2 2711 5771
+1753e a 2712 5771
+17548 d 2716 5771
+17555 f 2720 5771
+17564 2 2722 5771
+FUNC 17566 b42 4 UnDecorator::composeDeclaration(DName const &)
+17566 6 2045 5771
+1756c e 2046 5771
+1757a 5 2047 5771
+1757f a 2048 5771
+17589 b 2053 5771
+17594 f 2054 5771
+175a3 8 2055 5771
+175ab 15 2056 5771
+175c0 8 2057 5771
+175c8 10 2058 5771
+175d8 83 2075 5771
+1765b 7 2081 5771
+17662 19 2082 5771
+1767b 21 2083 5771
+1769c 2 2084 5771
+1769e 15 2085 5771
+176b3 27 2090 5771
+176da 33 2092 5771
+1770d 9 2094 5771
+17716 9 2096 5771
+1771f 2b 2098 5771
+1774a d 2101 5771
+17757 9 2103 5771
+17760 2d 2105 5771
+1778d 2e 2107 5771
+177bb 5 2111 5771
+177c0 3 2114 5771
+177c3 3 2115 5771
+177c6 3 2116 5771
+177c9 3 2117 5771
+177cc 3 2118 5771
+177cf 26 2121 5771
+177f5 12 2123 5771
+17807 19 2125 5771
+17820 19 2126 5771
+17839 2 2127 5771
+1783b 12 2129 5771
+1784d 19 2131 5771
+17866 1b 2134 5771
+17881 13 2141 5771
+17894 a 2142 5771
+1789e 15 2143 5771
+178b3 2 2144 5771
+178b5 f 2145 5771
+178c4 10 2147 5771
+178d4 9 2151 5771
+178dd 22 2152 5771
+178ff 2 2153 5771
+17901 13 2168 5771
+17914 c 2172 5771
+17920 14 2173 5771
+17934 1a 2174 5771
+1794e 2 2175 5771
+17950 b 2176 5771
+1795b 5 2182 5771
+17960 6 2185 5771
+17966 27 2187 5771
+1798d b 2189 5771
+17998 5 2190 5771
+1799d 1b 2194 5771
+179b8 15 2195 5771
+179cd 1d 2202 5771
+179ea 16 2204 5771
+17a00 55 2205 5771
+17a55 12 2206 5771
+17a67 2b 2207 5771
+17a92 2 2208 5771
+17a94 d 2209 5771
+17aa1 1a 2211 5771
+17abb 2e 2218 5771
+17ae9 12 2222 5771
+17afb c 2223 5771
+17b07 c 2227 5771
+17b13 15 2228 5771
+17b28 2 2229 5771
+17b2a f 2230 5771
+17b39 1a 2235 5771
+17b53 b 2237 5771
+17b5e 3 2238 5771
+17b61 5 2243 5771
+17b66 b 2245 5771
+17b71 1c 2250 5771
+17b8d 13 2251 5771
+17ba0 e 2252 5771
+17bae 2 2253 5771
+17bb0 10 2254 5771
+17bc0 3d 2255 5771
+17bfd c 2256 5771
+17c09 e 2257 5771
+17c17 4c 2258 5771
+17c63 a 2259 5771
+17c6d 4b 2260 5771
+17cb8 7 2261 5771
+17cbf 4b 2262 5771
+17d0a f 2263 5771
+17d19 f 2264 5771
+17d28 6 2268 5771
+17d2e 61 2277 5771
+17d8f 15 2281 5771
+17da4 2 2283 5771
+17da6 18 2285 5771
+17dbe 2d 2292 5771
+17deb 12 2294 5771
+17dfd 37 2296 5771
+17e34 23 2297 5771
+17e57 b7 2299 5771
+17f0e 23 2300 5771
+17f31 12 2306 5771
+17f43 37 2307 5771
+17f7a b 2308 5771
+17f85 37 2309 5771
+17fbc b 2310 5771
+17fc7 30 2311 5771
+17ff7 23 2312 5771
+1801a 36 2319 5771
+18050 1e 2320 5771
+1806e 8 2325 5771
+18076 1e 2326 5771
+18094 12 2329 5771
+180a6 2 2331 5771
+FUNC 180a8 211 0 UnDecorator::getDecoratedName()
+180a8 7 861 5771
+180af e 864 5771
+180bd a 868 5771
+180c7 b 873 5771
+180d2 8 874 5771
+180da 11 876 5771
+180eb 10 878 5771
+180fb 6 882 5771
+18101 9 903 5771
+1810a 9 906 5771
+18113 8 910 5771
+1811b 6 912 5771
+18121 5 910 5771
+18126 2 915 5771
+18128 a 918 5771
+18132 19 919 5771
+1814b 6 920 5771
+18151 f 924 5771
+18160 8 925 5771
+18168 17 929 5771
+1817f a 930 5771
+18189 c 932 5771
+18195 8 933 5771
+1819d 5 934 5771
+181a2 18 935 5771
+181ba a 936 5771
+181c4 13 937 5771
+181d7 b 938 5771
+181e2 2 940 5771
+181e4 29 941 5771
+1820d 4 945 5771
+18211 10 946 5771
+18221 9 948 5771
+1822a 3 950 5771
+1822d 1c 955 5771
+18249 f 959 5771
+18258 4 976 5771
+1825c 6 962 5771
+18262 14 964 5771
+18276 19 967 5771
+1828f 5 968 5771
+18294 10 971 5771
+182a4 2 979 5771
+182a6 2 980 5771
+182a8 f 982 5771
+182b7 2 984 5771
+FUNC 182b9 28b 0 UnDecorator::getScope()
+182b9 d 1482 5771
+182c6 f 1483 5771
+182d5 2a 1489 5771
+182ff 14 1492 5771
+18313 b 1495 5771
+1831e 16 1496 5771
+18334 5 1498 5771
+18339 17 1499 5771
+18350 3 1500 5771
+18353 f 1506 5771
+18362 2a 1507 5771
+1838c 10 1566 5771
+1839c 5 1567 5771
+183a1 34 1561 5771
+183d5 4 1562 5771
+183d9 5 1563 5771
+183de e 1510 5771
+183ec 5 1514 5771
+183f1 22 1515 5771
+18413 e 1518 5771
+18421 6 1519 5771
+18427 5 1522 5771
+1842c 2a 1523 5771
+18456 2 1524 5771
+18458 f 1546 5771
+18467 1a 1548 5771
+18481 b 1550 5771
+1848c 9 1551 5771
+18495 2 1554 5771
+18497 f 1530 5771
+184a6 2 1570 5771
+184a8 21 1571 5771
+184c9 a 1489 5771
+184d3 f 1577 5771
+184e2 18 1590 5771
+184fa 2 1591 5771
+184fc b 1580 5771
+18507 7 1581 5771
+1850e 2 1582 5771
+18510 2b 1583 5771
+1853b 4 1597 5771
+1853f 5 1599 5771
+FUNC 18544 341 4 UnDecorator::getFunctionIndirectType(DName const &)
+18544 3 3461 5771
+18547 e 3462 5771
+18555 15 3463 5771
+1856a f 3465 5771
+18579 10 3466 5771
+18589 7 3469 5771
+18590 a 3471 5771
+1859a 6 3473 5771
+185a0 7 3475 5771
+185a7 d 3477 5771
+185b4 17 3482 5771
+185cb 9 3485 5771
+185d4 3 3486 5771
+185d7 5 3490 5771
+185dc f 3491 5771
+185eb 6 3496 5771
+185f1 13 3497 5771
+18604 b 3501 5771
+1860f 1e 3503 5771
+1862d 8 3505 5771
+18635 29 3506 5771
+1865e 2 3507 5771
+18660 17 3508 5771
+18677 f 3510 5771
+18686 4 3511 5771
+1868a 10 3518 5771
+1869a 15 3519 5771
+186af 9 3527 5771
+186b8 d 3528 5771
+186c5 30 3529 5771
+186f5 2 3530 5771
+186f7 11 3521 5771
+18708 7 3514 5771
+1870f 16 3516 5771
+18725 13 3531 5771
+18738 d 3535 5771
+18745 22 3537 5771
+18767 2 3546 5771
+18769 13 3547 5771
+1877c c 3551 5771
+18788 28 3552 5771
+187b0 1e 3557 5771
+187ce c 3558 5771
+187da 2e 3561 5771
+18808 10 3563 5771
+18818 c 3564 5771
+18824 c 3566 5771
+18830 15 3567 5771
+18845 2 3568 5771
+18847 f 3569 5771
+18856 4 3573 5771
+1885a b 3574 5771
+18865 e 3580 5771
+18873 10 3576 5771
+18883 2 3581 5771
+FUNC 18885 4e4 10 UnDecorator::getDataIndirectType(DName const &,char,DName const &,int)
+18885 6 3707 5771
+1888b 23 3711 5771
+188ae 4 3713 5771
+188b2 17 3715 5771
+188c9 c 3717 5771
+188d5 10 3719 5771
+188e5 e 3723 5771
+188f3 6 3725 5771
+188f9 15 3726 5771
+1890e 17 3732 5771
+18925 11 3751 5771
+18936 a 3752 5771
+18940 32 3753 5771
+18972 5 3754 5771
+18977 11 3743 5771
+18988 a 3744 5771
+18992 25 3745 5771
+189b7 2 3746 5771
+189b9 8 3747 5771
+189c1 2 3749 5771
+189c3 19 3735 5771
+189dc a 3736 5771
+189e6 14 3737 5771
+189fa 5 3738 5771
+189ff 11 3739 5771
+18a10 6 3766 5771
+18a16 a 3768 5771
+18a20 17 3770 5771
+18a37 10 3772 5771
+18a47 1a 3778 5771
+18a61 5 3780 5771
+18a66 6 3782 5771
+18a6c 9 3787 5771
+18a75 b 3789 5771
+18a80 19 3791 5771
+18a99 c 3793 5771
+18aa5 24 3794 5771
+18ac9 c 3796 5771
+18ad5 22 3797 5771
+18af7 9 3801 5771
+18b00 5 3805 5771
+18b05 7 3806 5771
+18b0c 6 3810 5771
+18b12 1e 3812 5771
+18b30 8 3814 5771
+18b38 1b 3815 5771
+18b53 2 3816 5771
+18b55 16 3817 5771
+18b6b a 3819 5771
+18b75 13 3828 5771
+18b88 b 3833 5771
+18b93 c 3834 5771
+18b9f 8 3835 5771
+18ba7 6 3836 5771
+18bad b 3842 5771
+18bb8 b 3843 5771
+18bc3 3 3863 5771
+18bc6 6 3864 5771
+18bcc 22 3866 5771
+18bee 9 3871 5771
+18bf7 13 3872 5771
+18c0a 5 3876 5771
+18c0f 1e 3877 5771
+18c2d 5 3879 5771
+18c32 1e 3880 5771
+18c50 5 3884 5771
+18c55 e 3885 5771
+18c63 14 3889 5771
+18c77 28 3895 5771
+18c9f 2 3890 5771
+18ca1 b 3891 5771
+18cac 2 3892 5771
+18cae c 3898 5771
+18cba 17 3899 5771
+18cd1 4 3902 5771
+18cd5 6 3904 5771
+18cdb 7 3906 5771
+18ce2 8 3774 5771
+18cea 13 3918 5771
+18cfd 12 3922 5771
+18d0f 29 3925 5771
+18d38 10 3923 5771
+18d48 c 3928 5771
+18d54 3 3929 5771
+18d57 10 3931 5771
+18d67 2 3933 5771
+FUNC 18d69 14c 0 UnDecorator::operator char *()
+18d69 6 762 5771
+18d6f 4 763 5771
+18d73 f 764 5771
+18d82 9 770 5771
+18d8b c 772 5771
+18d97 7 775 5771
+18d9e 1d 776 5771
+18dbb 4 782 5771
+18dbf 16 783 5771
+18dd5 9 785 5771
+18dde 5 794 5771
+18de3 9 795 5771
+18dec 13 799 5771
+18dff e 808 5771
+18e0d 2 809 5771
+18e0f 2 848 5771
+18e11 1a 810 5771
+18e2b e 813 5771
+18e39 e 811 5771
+18e47 9 817 5771
+18e50 e 819 5771
+18e5e d 820 5771
+18e6b a 824 5771
+18e75 f 825 5771
+18e84 5 828 5771
+18e89 2 829 5771
+18e8b 2 830 5771
+18e8d 5 831 5771
+18e92 1 832 5771
+18e93 5 833 5771
+18e98 1 835 5771
+18e99 5 834 5771
+18e9e 2 838 5771
+18ea0 a 839 5771
+18eaa 9 841 5771
+18eb3 2 848 5771
+FUNC 18eb5 116 c UnDecorator::getPtrRefType(DName const &,DName const &,char)
+18eb5 5 3585 5771
+18eba f 3588 5771
+18ec9 d 3589 5771
+18ed6 b 3591 5771
+18ee1 20 3594 5771
+18f01 b 3595 5771
+18f0c b 3597 5771
+18f17 9 3598 5771
+18f20 14 3600 5771
+18f34 14 3606 5771
+18f48 1b 3608 5771
+18f63 a 3612 5771
+18f6d b 3615 5771
+18f78 c 3617 5771
+18f84 9 3618 5771
+18f8d c 3620 5771
+18f99 c 3622 5771
+18fa5 a 3623 5771
+18faf b 3625 5771
+18fba f 3629 5771
+18fc9 2 3632 5771
+FUNC 18fcb 1b 8 UnDecorator::getPointerType(DName const &,DName const &)
+18fcb 1b 4037 5771
+FUNC 18fe6 1b 8 UnDecorator::getPointerTypeArray(DName const &,DName const &)
+18fe6 1b 4040 5771
+FUNC 19001 1b 8 UnDecorator::getReferenceType(DName const &,DName const &)
+19001 1b 4043 5771
+FUNC 1901c a3 18 __unDName
+1901c f 604 5771
+1902b 9 606 5771
+19034 4 607 5771
+19038 a 612 5771
+19042 2 613 5771
+19044 8 614 5771
+1904c 3 615 5771
+1904f 20 618 5771
+1906f 1a 627 5771
+19089 e 628 5771
+19097 a 633 5771
+190a1 c 636 5771
+190ad 3 643 5771
+190b0 6 645 5771
+190b6 9 637 5771
+FUNC 190bf a3 1c __unDNameEx
+190bf f 684 5771
+190ce 9 687 5771
+190d7 4 688 5771
+190db a 693 5771
+190e5 2 694 5771
+190e7 8 695 5771
+190ef 3 696 5771
+190f2 20 699 5771
+19112 1a 708 5771
+1912c e 709 5771
+1913a a 714 5771
+19144 c 717 5771
+19150 3 724 5771
+19153 6 726 5771
+19159 9 718 5771
+FUNC 19162 387 4 UnDecorator::getBasicDataType(DName const &)
+19162 3 3162 5771
+19165 15 3163 5771
+1917a 6 3165 5771
+19180 4 3168 5771
+19184 35 3173 5771
+191b9 5 3178 5771
+191be 5 3179 5771
+191c3 5 3183 5771
+191c8 5 3184 5771
+191cd 5 3188 5771
+191d2 5 3189 5771
+191d7 5 3193 5771
+191dc 5 3194 5771
+191e1 5 3203 5771
+191e6 5 3204 5771
+191eb 2a 3173 5771
+19215 3c 3222 5771
+19251 5 3231 5771
+19256 5 3232 5771
+1925b 22 3273 5771
+1927d 5 3235 5771
+19282 5 3236 5771
+19287 f 3222 5771
+19296 5 3243 5771
+1929b 5 3244 5771
+192a0 5 3239 5771
+192a5 5 3240 5771
+192aa 5 3247 5771
+192af 5 3248 5771
+192b4 1b 3222 5771
+192cf 3 3264 5771
+192d2 6 3262 5771
+192d8 10 3264 5771
+192e8 10 3266 5771
+192f8 11 3267 5771
+19309 5 3275 5771
+1930e 2 3276 5771
+19310 5 3255 5771
+19315 2 3257 5771
+19317 3 3224 5771
+1931a 12 3343 5771
+1932c 9 3345 5771
+19335 7 3347 5771
+1933c 16 3348 5771
+19352 6 3352 5771
+19358 d 3353 5771
+19365 5 3355 5771
+1936a 5 3227 5771
+1936f 2 3278 5771
+19371 d 3281 5771
+1937e 2 3282 5771
+19380 5 3219 5771
+19385 2 3220 5771
+19387 3 3287 5771
+1938a 5 3290 5771
+1938f d 3207 5771
+1939c d 3212 5771
+193a9 9 3297 5771
+193b2 1f 3301 5771
+193d1 19 3314 5771
+193ea c 3322 5771
+193f6 2 3326 5771
+193f8 c 3307 5771
+19404 2 3308 5771
+19406 1e 3311 5771
+19424 10 3332 5771
+19434 18 3333 5771
+1944c 5 3337 5771
+19451 c 3360 5771
+1945d 5 3367 5771
+19462 d 3369 5771
+1946f 5 3371 5771
+19474 d 3372 5771
+19481 2 3373 5771
+19483 5 3374 5771
+19488 d 3375 5771
+19495 17 3380 5771
+194ac 16 3385 5771
+194c2 27 3387 5771
+FUNC 194e9 13e 4 UnDecorator::getPrimaryDataType(DName const &)
+194e9 7 2962 5771
+194f0 2b 2966 5771
+1951b 12 3027 5771
+1952d d 2972 5771
+1953a c 2974 5771
+19546 a 2975 5771
+19550 b 2981 5771
+1955b 6 2984 5771
+19561 1e 2986 5771
+1957f 7 2996 5771
+19586 2 2997 5771
+19588 6 2998 5771
+1958e f 3000 5771
+1959d 8 3002 5771
+195a5 10 3004 5771
+195b5 2f 3022 5771
+195e4 16 3012 5771
+195fa 17 3008 5771
+19611 14 2969 5771
+19625 2 3030 5771
+FUNC 19627 b1 4 UnDecorator::getDataType(DName *)
+19627 6 2922 5771
+1962d b 2923 5771
+19638 15 2928 5771
+1964d 10 2954 5771
+1965d 6 2934 5771
+19663 c 2936 5771
+1966f f 2937 5771
+1967e 13 2939 5771
+19691 6 2944 5771
+19697 29 2946 5771
+196c0 2 2947 5771
+196c2 14 2931 5771
+196d6 2 2957 5771
+FUNC 196d8 64 4 UnDecorator::getExternalDataType(DName const &)
+196d8 7 4244 5771
+196df 1e 4247 5771
+196fd 9 4248 5771
+19706 30 4253 5771
+19736 4 4255 5771
+1973a 2 4257 5771
+FUNC 1973c 57 8 fastzero_I
+FUNC 19793 8f c _VEC_memzero
+FUNC 19822 14 0 _sse2_mathfcns_init
+FUNC 19836 14 4 _set_SSE2_enable
+FUNC 1984a 87 c fastcopy_I
+FUNC 198d1 e3 c _VEC_memcpy
+FUNC 199b4 1bd c __crtMessageBoxA
+199b4 9 41 4033
+199bd 5 49 4033
+199c2 2 56 4033
+199c4 18 64 4033
+199dc d 66 4033
+199e9 2 67 4033
+199eb 6 69 4033
+199f1 10 76 4033
+19a01 6 78 4033
+19a07 6 80 4033
+19a0d 15 83 4033
+19a22 1a 86 4033
+19a3c 1c 88 4033
+19a58 6 89 4033
+19a5e 8 95 4033
+19a66 6 98 4033
+19a6c a 100 4033
+19a76 14 102 4033
+19a8a 14 116 4033
+19a9e 6 119 4033
+19aa4 d 120 4033
+19ab1 c 122 4033
+19abd 1f 127 4033
+19adc 1b 136 4033
+19af7 6 137 4033
+19afd 7 138 4033
+19b04 2 139 4033
+19b06 7 140 4033
+19b0d 2 142 4033
+19b0f a 144 4033
+19b19 6 146 4033
+19b1f 5 147 4033
+19b24 2 149 4033
+19b26 11 153 4033
+19b37 6 155 4033
+19b3d 5 156 4033
+19b42 8 158 4033
+19b4a b 165 4033
+19b55 5 166 4033
+19b5a 10 168 4033
+19b6a 5 173 4033
+19b6f 2 176 4033
+FUNC 19b71 71 c strcat_s
+19b71 0 13 823
+19b71 30 18 823
+19ba1 c 19 823
+19bad 2 21 823
+19baf 4 23 823
+19bb3 1 25 823
+19bb4 3 26 823
+19bb7 2 29 823
+19bb9 2 32 823
+19bbb d 35 823
+19bc8 4 39 823
+19bcc 2 41 823
+19bce e 42 823
+19bdc 5 45 823
+19be1 1 46 823
+FUNC 19be2 b3 10 strncpy_s
+19be2 5 13 739
+19be7 14 17 739
+19bfb 5 65 739
+19c00 2 66 739
+19c02 26 24 739
+19c28 5 25 739
+19c2d 2 28 739
+19c2f 2 29 739
+19c31 b 31 739
+19c3c 8 35 739
+19c44 d 37 739
+19c51 2 41 739
+19c53 12 45 739
+19c65 5 48 739
+19c6a 2 50 739
+19c6c 4 54 739
+19c70 6 56 739
+19c76 3 58 739
+19c79 c 59 739
+19c85 2 61 739
+19c87 e 62 739
+FUNC 19c95 46 4 _set_error_mode
+19c95 0 43 3937
+19c95 15 50 3937
+19caa 6 58 3937
+19cb0 1 65 3937
+19cb1 5 54 3937
+19cb6 7 55 3937
+19cbd 1 65 3937
+19cbe 1c 61 3937
+19cda 1 65 3937
+FUNC 19cdb a 4 __set_app_type
+19cdb 0 91 3937
+19cdb 9 96 3937
+19ce4 1 97 3937
+FUNC 19ce5 6 0 __get_app_type
+19ce5 0 120 3937
+19ce5 5 125 3937
+19cea 1 126 3937
+FUNC 19ceb 51 10 x_ismbbtype_l
+19ceb 6 213 4669
+19cf1 b 214 4669
+19cfc 4 219 4669
+19d00 3a 222 4669
+19d3a 2 223 4669
+FUNC 19d3c 15 8 _ismbbkalnum_l
+19d3c 0 80 4669
+19d3c 14 81 4669
+19d50 1 82 4669
+FUNC 19d51 13 4 _ismbbkalnum
+19d51 0 85 4669
+19d51 12 86 4669
+19d63 1 87 4669
+FUNC 19d64 15 8 _ismbbkprint_l
+19d64 0 90 4669
+19d64 14 91 4669
+19d78 1 92 4669
+FUNC 19d79 13 4 _ismbbkprint
+19d79 0 95 4669
+19d79 12 96 4669
+19d8b 1 97 4669
+FUNC 19d8c 15 8 _ismbbkpunct_l
+19d8c 0 100 4669
+19d8c 14 101 4669
+19da0 1 102 4669
+FUNC 19da1 13 4 _ismbbkpunct
+19da1 0 105 4669
+19da1 12 106 4669
+19db3 1 107 4669
+FUNC 19db4 18 8 _ismbbalnum_l
+19db4 0 113 4669
+19db4 17 114 4669
+19dcb 1 115 4669
+FUNC 19dcc 16 4 _ismbbalnum
+19dcc 0 118 4669
+19dcc 15 119 4669
+19de1 1 120 4669
+FUNC 19de2 18 8 _ismbbalpha_l
+19de2 0 123 4669
+19de2 17 124 4669
+19df9 1 125 4669
+FUNC 19dfa 16 4 _ismbbalpha
+19dfa 0 128 4669
+19dfa 15 129 4669
+19e0f 1 130 4669
+FUNC 19e10 18 8 _ismbbgraph_l
+19e10 0 133 4669
+19e10 17 134 4669
+19e27 1 135 4669
+FUNC 19e28 16 4 _ismbbgraph
+19e28 0 138 4669
+19e28 15 139 4669
+19e3d 1 140 4669
+FUNC 19e3e 18 8 _ismbbprint_l
+19e3e 0 143 4669
+19e3e 17 144 4669
+19e55 1 145 4669
+FUNC 19e56 16 4 _ismbbprint
+19e56 0 148 4669
+19e56 15 149 4669
+19e6b 1 150 4669
+FUNC 19e6c 15 8 _ismbbpunct_l
+19e6c 0 153 4669
+19e6c 14 154 4669
+19e80 1 155 4669
+FUNC 19e81 13 4 _ismbbpunct
+19e81 0 158 4669
+19e81 12 159 4669
+19e93 1 160 4669
+FUNC 19e94 15 8 _ismbblead_l
+19e94 0 166 4669
+19e94 14 167 4669
+19ea8 1 168 4669
+FUNC 19ea9 13 4 _ismbblead
+19ea9 0 171 4669
+19ea9 12 172 4669
+19ebb 1 173 4669
+FUNC 19ebc 15 8 _ismbbtrail_l
+19ebc 0 176 4669
+19ebc 14 177 4669
+19ed0 1 178 4669
+FUNC 19ed1 13 4 _ismbbtrail
+19ed1 0 181 4669
+19ed1 12 182 4669
+19ee3 1 183 4669
+FUNC 19ee4 53 8 _ismbbkana_l
+19ee4 6 189 4669
+19eea b 190 4669
+19ef5 10 192 4669
+19f05 1f 194 4669
+19f24 2 197 4669
+19f26 f 196 4669
+19f35 2 197 4669
+FUNC 19f37 e 4 _ismbbkana
+19f37 0 200 4669
+19f37 d 201 4669
+19f44 1 202 4669
+FUNC 19f45 44 4 _getbuf
+19f45 0 43 1893
+19f45 6 50 1893
+19f4b 16 58 1893
+19f61 4 61 1893
+19f65 7 62 1893
+19f6c 2 65 1893
+19f6e 4 69 1893
+19f72 6 70 1893
+19f78 7 71 1893
+19f7f 3 75 1893
+19f82 6 76 1893
+19f88 1 79 1893
+FUNC 19f89 1de 8 _fputwc_nolock
+19f89 15 90 2124
+19f9e b 93 2124
+19fa9 48 95 2124
+19ff1 6 101 2124
+19ff7 45 104 2124
+1a03c 27 115 2124
+1a063 9 116 2124
+1a06c 22 120 2124
+1a08e 2 121 2124
+1a090 8 124 2124
+1a098 42 127 2124
+1a0da 17 133 2124
+1a0f1 6 139 2124
+1a0f7 7 141 2124
+1a0fe 34 143 2124
+1a132 6 146 2124
+1a138 6 150 2124
+1a13e d 151 2124
+1a14b d 153 2124
+1a158 f 154 2124
+FUNC 1a167 78 8 fputwc
+1a167 c 48 2124
+1a173 2e 52 2124
+1a1a1 3 55 2124
+1a1a4 7 57 2124
+1a1ab 3 58 2124
+1a1ae 11 60 2124
+1a1bf c 63 2124
+1a1cb 4 67 2124
+1a1cf 6 68 2124
+1a1d5 a 64 2124
+FUNC 1a1df 5 8 putwc
+1a1df 0 162 2124
+1a1df 5 163 2124
+FUNC 1a1e4 1f7 14 wcstoxl
+1a1e4 8 82 6173
+1a1ec b 88 6173
+1a1f7 3 92 6173
+1a1fa b 95 6173
+1a205 2f 97 6173
+1a234 12 98 6173
+1a246 9 103 6173
+1a24f 2 105 6173
+1a251 18 106 6173
+1a269 6 108 6173
+1a26f 4 109 6173
+1a273 2 110 6173
+1a275 6 112 6173
+1a27b 5 113 6173
+1a280 5 115 6173
+1a285 b 118 6173
+1a290 9 119 6173
+1a299 f 120 6173
+1a2a8 9 123 6173
+1a2b1 7 121 6173
+1a2b8 6 126 6173
+1a2be 1a 128 6173
+1a2d8 2 129 6173
+1a2da 5 130 6173
+1a2df d 135 6173
+1a2ec c 141 6173
+1a2f8 15 143 6173
+1a30d 12 144 6173
+1a31f 5 148 6173
+1a324 4 152 6173
+1a328 c 159 6173
+1a334 4 165 6173
+1a338 6 166 6173
+1a33e 9 178 6173
+1a347 6 181 6173
+1a34d 3 183 6173
+1a350 4 184 6173
+1a354 2 186 6173
+1a356 c 161 6173
+1a362 5 173 6173
+1a367 2 174 6173
+1a369 24 189 6173
+1a38d 5 192 6173
+1a392 c 193 6173
+1a39e 6 194 6173
+1a3a4 10 195 6173
+1a3b4 8 201 6173
+1a3bc 2 203 6173
+1a3be 6 205 6173
+1a3c4 3 207 6173
+1a3c7 12 209 6173
+1a3d9 2 210 6173
+FUNC 1a3db 29 c wcstol
+1a3db 3 217 6173
+1a3de 8 218 6173
+1a3e6 13 220 6173
+1a3f9 9 224 6173
+1a402 2 226 6173
+FUNC 1a404 1b 10 _wcstol_l
+1a404 0 234 6173
+1a404 1a 235 6173
+1a41e 1 236 6173
+FUNC 1a41f 2a c wcstoul
+1a41f 3 243 6173
+1a422 7 244 6173
+1a429 14 246 6173
+1a43d a 250 6173
+1a447 2 252 6173
+FUNC 1a449 1b 10 _wcstoul_l
+1a449 0 260 6173
+1a449 1a 261 6173
+1a463 1 262 6173
+FUNC 1a464 9 0 _fptrap
+1a464 0 46 2503
+1a464 8 47 2503
+1a46c 1 48 2503
+FUNC 1a46d 54 8 _isalpha_l
+1a46d 6 57 6535
+1a473 b 58 6535
+1a47e 41 60 6535
+1a4bf 2 61 6535
+FUNC 1a4c1 2b 4 isalpha
+1a4c1 0 66 6535
+1a4c1 9 67 6535
+1a4ca 13 69 6535
+1a4dd 1 75 6535
+1a4de d 73 6535
+1a4eb 1 75 6535
+FUNC 1a4ec 4f 8 _isupper_l
+1a4ec 6 81 6535
+1a4f2 b 82 6535
+1a4fd 3c 84 6535
+1a539 2 85 6535
+FUNC 1a53b 29 4 isupper
+1a53b 0 90 6535
+1a53b 9 91 6535
+1a544 11 93 6535
+1a555 1 99 6535
+1a556 d 97 6535
+1a563 1 99 6535
+FUNC 1a564 4f 8 _islower_l
+1a564 6 105 6535
+1a56a b 106 6535
+1a575 3c 108 6535
+1a5b1 2 109 6535
+FUNC 1a5b3 29 4 islower
+1a5b3 0 114 6535
+1a5b3 9 115 6535
+1a5bc 11 117 6535
+1a5cd 1 123 6535
+1a5ce d 121 6535
+1a5db 1 123 6535
+FUNC 1a5dc 4f 8 _isdigit_l
+1a5dc 6 129 6535
+1a5e2 b 130 6535
+1a5ed 3c 132 6535
+1a629 2 133 6535
+FUNC 1a62b 29 4 isdigit
+1a62b 0 138 6535
+1a62b 9 139 6535
+1a634 11 141 6535
+1a645 1 147 6535
+1a646 d 145 6535
+1a653 1 147 6535
+FUNC 1a654 54 8 _isxdigit_l
+1a654 6 153 6535
+1a65a b 154 6535
+1a665 41 156 6535
+1a6a6 2 157 6535
+FUNC 1a6a8 2b 4 isxdigit
+1a6a8 0 162 6535
+1a6a8 9 163 6535
+1a6b1 13 165 6535
+1a6c4 1 171 6535
+1a6c5 d 169 6535
+1a6d2 1 171 6535
+FUNC 1a6d3 4f 8 _isspace_l
+1a6d3 6 177 6535
+1a6d9 b 178 6535
+1a6e4 3c 180 6535
+1a720 2 181 6535
+FUNC 1a722 29 4 isspace
+1a722 0 186 6535
+1a722 9 187 6535
+1a72b 11 189 6535
+1a73c 1 195 6535
+1a73d d 193 6535
+1a74a 1 195 6535
+FUNC 1a74b 4f 8 _ispunct_l
+1a74b 6 201 6535
+1a751 b 202 6535
+1a75c 3c 204 6535
+1a798 2 205 6535
+FUNC 1a79a 29 4 ispunct
+1a79a 0 210 6535
+1a79a 9 211 6535
+1a7a3 11 213 6535
+1a7b4 1 219 6535
+1a7b5 d 217 6535
+1a7c2 1 219 6535
+FUNC 1a7c3 54 8 _isalnum_l
+1a7c3 6 225 6535
+1a7c9 b 226 6535
+1a7d4 41 228 6535
+1a815 2 229 6535
+FUNC 1a817 2b 4 isalnum
+1a817 0 234 6535
+1a817 9 235 6535
+1a820 13 237 6535
+1a833 1 243 6535
+1a834 d 241 6535
+1a841 1 243 6535
+FUNC 1a842 54 8 _isprint_l
+1a842 6 249 6535
+1a848 b 250 6535
+1a853 41 252 6535
+1a894 2 253 6535
+FUNC 1a896 2b 4 isprint
+1a896 0 258 6535
+1a896 9 259 6535
+1a89f 13 261 6535
+1a8b2 1 267 6535
+1a8b3 d 265 6535
+1a8c0 1 267 6535
+FUNC 1a8c1 54 8 _isgraph_l
+1a8c1 6 273 6535
+1a8c7 b 274 6535
+1a8d2 41 276 6535
+1a913 2 277 6535
+FUNC 1a915 2b 4 isgraph
+1a915 0 282 6535
+1a915 9 283 6535
+1a91e 13 285 6535
+1a931 1 291 6535
+1a932 d 289 6535
+1a93f 1 291 6535
+FUNC 1a940 4f 8 _iscntrl_l
+1a940 6 297 6535
+1a946 b 298 6535
+1a951 3c 300 6535
+1a98d 2 301 6535
+FUNC 1a98f 29 4 iscntrl
+1a98f 0 306 6535
+1a98f 9 307 6535
+1a998 11 309 6535
+1a9a9 1 315 6535
+1a9aa d 313 6535
+1a9b7 1 315 6535
+FUNC 1a9b8 d 4 __isascii
+1a9b8 0 320 6535
+1a9b8 c 321 6535
+1a9c4 1 322 6535
+FUNC 1a9c5 8 4 __toascii
+1a9c5 0 327 6535
+1a9c5 7 328 6535
+1a9cc 1 329 6535
+FUNC 1a9cd 1f 8 _iscsymf_l
+1a9cd 0 335 6535
+1a9cd 1a 336 6535
+1a9e7 1 337 6535
+1a9e8 3 336 6535
+1a9eb 1 337 6535
+FUNC 1a9ec 1a 4 __iscsymf
+1a9ec 0 341 6535
+1a9ec 15 342 6535
+1aa01 1 343 6535
+1aa02 3 342 6535
+1aa05 1 343 6535
+FUNC 1aa06 1f 8 _iscsym_l
+1aa06 0 349 6535
+1aa06 1a 350 6535
+1aa20 1 351 6535
+1aa21 3 350 6535
+1aa24 1 351 6535
+FUNC 1aa25 1c 4 __iscsym
+1aa25 0 356 6535
+1aa25 17 357 6535
+1aa3c 1 358 6535
+1aa3d 3 357 6535
+1aa40 1 358 6535
+FUNC 1aa41 12 8 _MarkAllocaS
+1aa41 0 207 2895
+1aa41 8 208 2895
+1aa49 6 210 2895
+1aa4f 3 211 2895
+1aa52 1 214 2895
+FUNC 1aa53 1b 4 _freea
+1aa53 0 249 2895
+1aa53 8 251 2895
+1aa5b 3 253 2895
+1aa5e 8 255 2895
+1aa66 7 257 2895
+1aa6d 1 266 2895
+FUNC 1aa6e 13b 18 __crtGetLocaleInfoW_stat
+1aa6e f 60 2876
+1aa7d 14 68 2876
+1aa91 d 70 2876
+1aa9e 8 71 2876
+1aaa6 b 73 2876
+1aab1 f 74 2876
+1aac0 5 79 2876
+1aac5 13 81 2876
+1aad8 7 86 2876
+1aadf 2 140 2876
+1aae1 8 96 2876
+1aae9 b 97 2876
+1aaf4 16 100 2876
+1ab0a 7 101 2876
+1ab11 48 104 2876
+1ab59 2 105 2876
+1ab5b 2 106 2876
+1ab5d e 110 2876
+1ab6b 7 113 2876
+1ab72 2 121 2876
+1ab74 2 123 2876
+1ab76 17 130 2876
+1ab8d 6 134 2876
+1ab93 4 136 2876
+1ab97 12 141 2876
+FUNC 1aba9 3b 18 __crtGetLocaleInfoW
+1aba9 6 151 2876
+1abaf b 152 2876
+1abba 28 161 2876
+1abe2 2 162 2876
+FUNC 1abe4 13d 18 __crtGetLocaleInfoA_stat
+1abe4 f 60 4251
+1abf3 17 68 4251
+1ac0a a 70 4251
+1ac14 8 71 4251
+1ac1c b 73 4251
+1ac27 f 74 4251
+1ac36 11 79 4251
+1ac47 4 86 4251
+1ac4b 5 96 4251
+1ac50 b 97 4251
+1ac5b 13 100 4251
+1ac6e 7 101 4251
+1ac75 49 104 4251
+1acbe 2 105 4251
+1acc0 2 106 4251
+1acc2 10 110 4251
+1acd2 3 114 4251
+1acd5 6 124 4251
+1acdb 2 126 4251
+1acdd 15 135 4251
+1acf2 7 139 4251
+1acf9 4 141 4251
+1acfd 12 81 4251
+1ad0f 12 145 4251
+FUNC 1ad21 3b 18 __crtGetLocaleInfoA
+1ad21 6 155 4251
+1ad27 b 156 4251
+1ad32 28 165 4251
+1ad5a 2 166 4251
+FUNC 1ad5c 1a 4 strncnt
+1ad5c 0 48 4203
+1ad5c 6 49 4203
+1ad62 6 52 4203
+1ad68 1 53 4203
+1ad69 5 52 4203
+1ad6e 7 55 4203
+1ad75 1 56 4203
+FUNC 1ad76 3a2 20 __crtLCMapStringA_stat
+1ad76 12 99 4203
+1ad88 d 108 4203
+1ad95 1b 109 4203
+1adb0 8 110 4203
+1adb8 b 111 4203
+1adc3 a 112 4203
+1adcd 5 119 4203
+1add2 19 120 4203
+1adeb 5 124 4203
+1adf0 1 125 4203
+1adf1 3 127 4203
+1adf4 16 133 4203
+1ae0a 9 213 4203
+1ae13 8 235 4203
+1ae1b 8 236 4203
+1ae23 27 247 4203
+1ae4a 6 248 4203
+1ae50 48 251 4203
+1ae98 3 252 4203
+1ae9b 6 253 4203
+1aea1 19 262 4203
+1aeba 21 271 4203
+1aedb 8 274 4203
+1aee3 9 277 4203
+1aeec 9 279 4203
+1aef5 12 288 4203
+1af07 5 292 4203
+1af0c 4b 298 4203
+1af57 4 299 4203
+1af5b 18 309 4203
+1af73 3 312 4203
+1af76 6 322 4203
+1af7c 2 325 4203
+1af7e 17 335 4203
+1af95 7 342 4203
+1af9c 8 344 4203
+1afa4 9 346 4203
+1afad b 141 4203
+1afb8 8 142 4203
+1afc0 5 143 4203
+1afc5 8 144 4203
+1afcd 11 146 4203
+1afde 7 147 4203
+1afe5 9 153 4203
+1afee 15 155 4203
+1b003 5 156 4203
+1b008 2 157 4203
+1b00a 1b 164 4203
+1b025 7 166 4203
+1b02c 41 169 4203
+1b06d 2 170 4203
+1b06f 28 196 4203
+1b097 2 183 4203
+1b099 2 184 4203
+1b09b 25 190 4203
+1b0c0 7 198 4203
+1b0c7 2 199 4203
+1b0c9 1a 202 4203
+1b0e3 5 204 4203
+1b0e8 9 205 4203
+1b0f1 c 206 4203
+1b0fd 7 207 4203
+1b104 2 208 4203
+1b106 12 350 4203
+FUNC 1b118 43 24 __crtLCMapStringA
+1b118 6 363 4203
+1b11e b 364 4203
+1b129 30 376 4203
+1b159 2 377 4203
+FUNC 1b15b 1b8 1c __crtGetStringTypeA_stat
+1b15b f 66 4155
+1b16a 10 75 4155
+1b17a 18 79 4155
+1b192 8 80 4155
+1b19a b 82 4155
+1b1a5 f 83 4155
+1b1b4 11 88 4155
+1b1c5 9 120 4155
+1b1ce 8 141 4155
+1b1d6 8 142 4155
+1b1de 27 153 4155
+1b205 6 154 4155
+1b20b 3e 157 4155
+1b249 2 158 4155
+1b24b 2 159 4155
+1b24d f 161 4155
+1b25c 13 169 4155
+1b26f 11 174 4155
+1b280 6 176 4155
+1b286 6 178 4155
+1b28c 2 90 4155
+1b28e 5 94 4155
+1b293 8 95 4155
+1b29b 5 96 4155
+1b2a0 8 97 4155
+1b2a8 e 99 4155
+1b2b6 4 100 4155
+1b2ba 5 104 4155
+1b2bf 17 106 4155
+1b2d6 2 107 4155
+1b2d8 2 108 4155
+1b2da 3 109 4155
+1b2dd 15 112 4155
+1b2f2 6 113 4155
+1b2f8 7 114 4155
+1b2ff 2 115 4155
+1b301 12 182 4155
+FUNC 1b313 40 20 __crtGetStringTypeA
+1b313 6 194 4155
+1b319 b 195 4155
+1b324 2d 206 4155
+1b351 2 207 4155
+FUNC 1b353 6 0 __pwctype_func
+1b353 0 24 3986
+1b353 5 25 3986
+1b358 1 26 3986
+FUNC 1b359 29 0 __pctype_func
+1b359 0 29 3986
+1b359 7 35 3986
+1b360 3 36 3986
+1b363 18 38 3986
+1b37b 6 39 3986
+1b381 1 40 3986
+FUNC 1b382 419 0 _get_lc_time
+1b382 6 94 3379
+1b388 12 104 3379
+1b39a 3 105 3379
+1b39d 2 170 3379
+1b39f 9 108 3379
+1b3a8 16 112 3379
+1b3be 15 113 3379
+1b3d3 15 114 3379
+1b3e8 18 115 3379
+1b400 15 116 3379
+1b415 13 117 3379
+1b428 14 118 3379
+1b43c 18 120 3379
+1b454 15 121 3379
+1b469 15 122 3379
+1b47e 15 123 3379
+1b493 18 124 3379
+1b4ab 15 125 3379
+1b4c0 15 126 3379
+1b4d5 15 128 3379
+1b4ea 18 129 3379
+1b502 15 130 3379
+1b517 15 131 3379
+1b52c 15 132 3379
+1b541 18 133 3379
+1b559 15 134 3379
+1b56e 15 135 3379
+1b583 15 136 3379
+1b598 18 137 3379
+1b5b0 15 138 3379
+1b5c5 15 139 3379
+1b5da 15 141 3379
+1b5ef 18 142 3379
+1b607 15 143 3379
+1b61c 15 144 3379
+1b631 15 145 3379
+1b646 18 146 3379
+1b65e 18 147 3379
+1b676 18 148 3379
+1b68e 18 149 3379
+1b6a6 1b 150 3379
+1b6c1 18 151 3379
+1b6d9 18 152 3379
+1b6f1 18 154 3379
+1b709 1b 155 3379
+1b724 18 160 3379
+1b73c 18 161 3379
+1b754 1b 163 3379
+1b76f 20 165 3379
+1b78f a 169 3379
+1b799 2 170 3379
+FUNC 1b79b 190 4 __free_lc_time
+1b79b 1 179 3379
+1b79c c 180 3379
+1b7a8 8 183 3379
+1b7b0 8 184 3379
+1b7b8 8 185 3379
+1b7c0 8 186 3379
+1b7c8 8 187 3379
+1b7d0 8 188 3379
+1b7d8 7 189 3379
+1b7df 8 191 3379
+1b7e7 8 192 3379
+1b7ef 8 193 3379
+1b7f7 8 194 3379
+1b7ff 8 195 3379
+1b807 8 196 3379
+1b80f 8 197 3379
+1b817 8 199 3379
+1b81f b 200 3379
+1b82a 8 201 3379
+1b832 8 202 3379
+1b83a 8 203 3379
+1b842 8 204 3379
+1b84a 8 205 3379
+1b852 8 206 3379
+1b85a 8 207 3379
+1b862 8 208 3379
+1b86a 8 209 3379
+1b872 8 210 3379
+1b87a 8 212 3379
+1b882 8 213 3379
+1b88a 8 214 3379
+1b892 8 215 3379
+1b89a 8 216 3379
+1b8a2 b 217 3379
+1b8ad b 218 3379
+1b8b8 b 219 3379
+1b8c3 b 220 3379
+1b8ce b 221 3379
+1b8d9 b 222 3379
+1b8e4 b 223 3379
+1b8ef b 225 3379
+1b8fa b 226 3379
+1b905 b 228 3379
+1b910 b 229 3379
+1b91b f 230 3379
+1b92a 1 232 3379
+FUNC 1b92b 73 4 __init_time
+1b92b 4 56 3379
+1b92f f 60 3379
+1b93e 16 64 3379
+1b954 4 65 3379
+1b958 b 67 3379
+1b963 6 69 3379
+1b969 8 70 3379
+1b971 2 71 3379
+1b973 6 73 3379
+1b979 2 74 3379
+1b97b 2 75 3379
+1b97d 18 78 3379
+1b995 2 82 3379
+1b997 6 83 3379
+1b99d 1 84 3379
+FUNC 1b99e 33 0 fix_grouping
+1b99e 0 32 3427
+1b99e 8 40 3427
+1b9a6 a 43 3427
+1b9b0 4 45 3427
+1b9b4 1 61 3427
+1b9b5 6 40 3427
+1b9bb 1 63 3427
+1b9bc 4 50 3427
+1b9c0 2 52 3427
+1b9c2 7 55 3427
+1b9c9 6 56 3427
+1b9cf 2 60 3427
+FUNC 1b9d1 40 4 __free_lconv_num
+1b9d1 1 211 3427
+1b9d2 8 212 3427
+1b9da a 215 3427
+1b9e4 7 216 3427
+1b9eb b 218 3427
+1b9f6 7 219 3427
+1b9fd b 221 3427
+1ba08 8 222 3427
+1ba10 1 223 3427
+FUNC 1ba11 1c8 4 __init_numeric
+1ba11 7 84 3427
+1ba18 4 92 3427
+1ba1c 2 93 3427
+1ba1e 11 96 3427
+1ba2f 3 177 3427
+1ba32 3 178 3427
+1ba35 c 179 3427
+1ba41 14 102 3427
+1ba55 8 103 3427
+1ba5d 9 108 3427
+1ba66 13 113 3427
+1ba79 9 115 3427
+1ba82 2 116 3427
+1ba84 2 118 3427
+1ba86 9 120 3427
+1ba8f 12 125 3427
+1baa1 8 127 3427
+1baa9 a 128 3427
+1bab3 7 129 3427
+1baba 2 131 3427
+1babc 19 140 3427
+1bad5 15 142 3427
+1baea 1b 144 3427
+1bb05 2 146 3427
+1bb07 c 148 3427
+1bb13 1e 154 3427
+1bb31 2 156 3427
+1bb33 17 154 3427
+1bb4a b 164 3427
+1bb55 9 165 3427
+1bb5e c 166 3427
+1bb6a 8 168 3427
+1bb72 7 169 3427
+1bb79 2 170 3427
+1bb7b 13 186 3427
+1bb8e 11 191 3427
+1bb9f b 193 3427
+1bbaa d 194 3427
+1bbb7 9 197 3427
+1bbc0 9 198 3427
+1bbc9 9 200 3427
+1bbd2 5 201 3427
+1bbd7 2 202 3427
+FUNC 1bbd9 33 0 fix_grouping
+1bbd9 0 214 3470
+1bbd9 8 222 3470
+1bbe1 a 225 3470
+1bbeb 4 227 3470
+1bbef 1 243 3470
+1bbf0 6 222 3470
+1bbf6 1 245 3470
+1bbf7 4 232 3470
+1bbfb 2 234 3470
+1bbfd 7 237 3470
+1bc04 6 238 3470
+1bc0a 2 242 3470
+FUNC 1bc0c 89 4 __free_lconv_mon
+1bc0c 1 255 3470
+1bc0d 8 256 3470
+1bc15 b 259 3470
+1bc20 7 260 3470
+1bc27 b 262 3470
+1bc32 7 263 3470
+1bc39 b 265 3470
+1bc44 7 266 3470
+1bc4b b 268 3470
+1bc56 7 269 3470
+1bc5d b 271 3470
+1bc68 7 272 3470
+1bc6f b 274 3470
+1bc7a 7 275 3470
+1bc81 b 277 3470
+1bc8c 8 278 3470
+1bc94 1 279 3470
+FUNC 1bc95 2c4 4 __init_monetary
+1bc95 8 65 3470
+1bc9d 6 73 3470
+1bca3 13 77 3470
+1bcb6 3 187 3470
+1bcb9 3 188 3470
+1bcbc a 189 3470
+1bcc6 11 83 3470
+1bcd7 8 84 3470
+1bcdf f 89 3470
+1bcee 7 91 3470
+1bcf5 2 92 3470
+1bcf7 2 94 3470
+1bcf9 9 96 3470
+1bd02 f 101 3470
+1bd11 6 103 3470
+1bd17 9 104 3470
+1bd20 2 105 3470
+1bd22 2 107 3470
+1bd24 4 112 3470
+1bd28 14 117 3470
+1bd3c 14 119 3470
+1bd50 14 121 3470
+1bd64 17 123 3470
+1bd7b 14 125 3470
+1bd8f 14 128 3470
+1bda3 14 130 3470
+1bdb7 17 133 3470
+1bdce 14 135 3470
+1bde2 14 137 3470
+1bdf6 14 139 3470
+1be0a 17 141 3470
+1be21 14 143 3470
+1be35 14 145 3470
+1be49 17 147 3470
+1be60 2 149 3470
+1be62 6 150 3470
+1be68 6 151 3470
+1be6e 8 152 3470
+1be76 b 153 3470
+1be81 5 154 3470
+1be86 1c 157 3470
+1bea2 2 159 3470
+1bea4 17 157 3470
+1bebb c 169 3470
+1bec7 3 175 3470
+1beca 32 181 3470
+1befc 11 194 3470
+1bf0d 15 199 3470
+1bf22 b 201 3470
+1bf2d d 202 3470
+1bf3a 9 204 3470
+1bf43 9 205 3470
+1bf4c 6 206 3470
+1bf52 5 208 3470
+1bf57 2 209 3470
+FUNC 1bf59 395 4 __init_ctype
+1bf59 11 59 3562
+1bf6a 6 60 3562
+1bf70 1f 82 3562
+1bf8f 7 84 3562
+1bf96 20 89 3562
+1bfb6 7 94 3562
+1bfbd 10 98 3562
+1bfcd b 100 3562
+1bfd8 b 102 3562
+1bfe3 12 104 3562
+1bff5 2f 106 3562
+1c024 5 109 3562
+1c029 2 112 3562
+1c02b e 113 3562
+1c039 15 115 3562
+1c04e a 118 3562
+1c058 4 121 3562
+1c05c 8 124 3562
+1c064 e 126 3562
+1c072 9 128 3562
+1c07b b 129 3562
+1c086 b 128 3562
+1c091 2c 140 3562
+1c0bd 33 155 3562
+1c0f0 2d 166 3562
+1c11d 37 178 3562
+1c154 11 180 3562
+1c165 17 182 3562
+1c17c 15 183 3562
+1c191 d 180 3562
+1c19e 12 189 3562
+1c1b0 f 190 3562
+1c1bf 12 191 3562
+1c1d1 18 195 3562
+1c1e9 11 198 3562
+1c1fa 13 199 3562
+1c20d e 200 3562
+1c21b e 201 3562
+1c229 9 203 3562
+1c232 6 204 3562
+1c238 9 206 3562
+1c241 9 207 3562
+1c24a 9 208 3562
+1c253 9 209 3562
+1c25c 9 210 3562
+1c265 9 213 3562
+1c26e 4 214 3562
+1c272 8 217 3562
+1c27a 8 218 3562
+1c282 8 219 3562
+1c28a 10 220 3562
+1c29a 13 227 3562
+1c2ad 2 231 3562
+1c2af 6 232 3562
+1c2b5 a 233 3562
+1c2bf a 234 3562
+1c2c9 a 235 3562
+1c2d3 a 236 3562
+1c2dd 2 238 3562
+1c2df f 240 3562
+FUNC 1c2ee 29 0 ___mb_cur_max_func
+1c2ee 0 248 3562
+1c2ee 7 254 3562
+1c2f5 3 255 3562
+1c2f8 18 257 3562
+1c310 6 259 3562
+1c316 1 260 3562
+FUNC 1c317 16 4 ___mb_cur_max_l_func
+1c317 0 263 3562
+1c317 15 264 3562
+1c32c 1 265 3562
+FUNC 1c32d 26 0 ___lc_codepage_func
+1c32d 0 268 3562
+1c32d 7 274 3562
+1c334 3 275 3562
+1c337 18 277 3562
+1c34f 3 279 3562
+1c352 1 280 3562
+FUNC 1c353 26 0 ___lc_collate_cp_func
+1c353 0 284 3562
+1c353 7 290 3562
+1c35a 3 291 3562
+1c35d 18 293 3562
+1c375 3 295 3562
+1c378 1 296 3562
+FUNC 1c379 26 0 ___lc_handle_func
+1c379 0 300 3562
+1c379 7 306 3562
+1c380 3 307 3562
+1c383 18 309 3562
+1c39b 3 311 3562
+1c39e 1 312 3562
+FUNC 1c39f 3 4 __init_collate
+1c39f 0 41 3650
+1c39f 2 42 3650
+1c3a1 1 43 3650
+FUNC 1c3a2 fe 4 _Getdays_l
+1c3a2 9 111 516
+1c3ab d 115 516
+1c3b8 9 117 516
+1c3c1 9 119 516
+1c3ca 28 120 516
+1c3f2 b 121 516
+1c3fd c 123 516
+1c409 4 126 516
+1c40d 30 128 516
+1c43d 8 129 516
+1c445 31 131 516
+1c476 12 132 516
+1c488 3 134 516
+1c48b 13 137 516
+1c49e 2 138 516
+FUNC 1c4a0 9 0 _Getdays
+1c4a0 0 142 516
+1c4a0 8 143 516
+1c4a8 1 144 516
+FUNC 1c4a9 fe 4 _Getmonths_l
+1c4a9 9 150 516
+1c4b2 d 154 516
+1c4bf 16 156 516
+1c4d5 2b 159 516
+1c500 b 160 516
+1c50b 8 162 516
+1c513 a 163 516
+1c51d 2d 167 516
+1c54a 8 168 516
+1c552 2c 170 516
+1c57e 11 171 516
+1c58f 3 173 516
+1c592 13 176 516
+1c5a5 2 177 516
+FUNC 1c5a7 9 0 _Getmonths
+1c5a7 0 181 516
+1c5a7 8 182 516
+1c5af 1 183 516
+FUNC 1c5b0 355 4 _Gettnames_l
+1c5b0 9 189 516
+1c5b9 d 193 516
+1c5c6 9 195 516
+1c5cf 9 197 516
+1c5d8 28 198 516
+1c600 d 199 516
+1c60d 29 200 516
+1c636 18 201 516
+1c64e 11 202 516
+1c65f f 203 516
+1c66e f 204 516
+1c67d 7 205 516
+1c684 e 206 516
+1c692 8 208 516
+1c69a 12 212 516
+1c6ac 13 213 516
+1c6bf 6 214 516
+1c6c5 2a 215 516
+1c6ef 6 216 516
+1c6f5 d 217 516
+1c702 26 218 516
+1c728 1c 219 516
+1c744 18 221 516
+1c75c 6 222 516
+1c762 26 223 516
+1c788 a 224 516
+1c792 5 225 516
+1c797 2a 226 516
+1c7c1 18 227 516
+1c7d9 30 230 516
+1c809 a 231 516
+1c813 30 233 516
+1c843 a 234 516
+1c84d 30 236 516
+1c87d a 237 516
+1c887 30 239 516
+1c8b7 a 240 516
+1c8c1 30 242 516
+1c8f1 12 245 516
+1c903 2 246 516
+FUNC 1c905 9 0 _Gettnames
+1c905 0 250 516
+1c905 8 251 516
+1c90d 1 252 516
+FUNC 1c90e 20 0 _store_str
+1c90e 0 869 516
+1c90e f 871 516
+1c91d 7 872 516
+1c924 9 873 516
+1c92d 1 875 516
+FUNC 1c92e 36 0 _store_number
+1c92e 0 965 516
+1c92e 8 973 516
+1c936 c 976 516
+1c942 2 977 516
+1c944 b 978 516
+1c94f 2 981 516
+1c951 2 982 516
+1c953 1 983 516
+1c954 7 988 516
+1c95b 3 989 516
+1c95e 5 990 516
+1c963 1 991 516
+FUNC 1c964 79 4 _store_num
+1c964 8 909 516
+1c96c 2 910 516
+1c96e 8 912 516
+1c976 33 913 516
+1c9a9 2 914 516
+1c9ab 4 917 516
+1c9af 8 918 516
+1c9b7 b 919 516
+1c9c2 c 921 516
+1c9ce 5 923 516
+1c9d3 2 924 516
+1c9d5 2 926 516
+1c9d7 4 927 516
+1c9db 2 928 516
+FUNC 1c9dd 3e6 10 _expandtime
+1c9dd 5 548 516
+1c9e2 4f 558 516
+1ca31 16 659 516
+1ca47 5 662 516
+1ca4c 16 587 516
+1ca62 7 589 516
+1ca69 5 590 516
+1ca6e 16 571 516
+1ca84 7 573 516
+1ca8b 5 574 516
+1ca90 5 822 516
+1ca95 7 823 516
+1ca9c 5 824 516
+1caa1 16 667 516
+1cab7 10 668 516
+1cac7 2 669 516
+1cac9 5 672 516
+1cace 23 558 516
+1caf1 6 787 516
+1caf7 5 789 516
+1cafc 15 736 516
+1cb11 2 737 516
+1cb13 2 739 516
+1cb15 5 740 516
+1cb1a 15 722 516
+1cb2f 2 723 516
+1cb31 16 742 516
+1cb47 4 743 516
+1cb4b 2 744 516
+1cb4d 5 745 516
+1cb52 6 746 516
+1cb58 8 747 516
+1cb60 1 748 516
+1cb61 5 752 516
+1cb66 f 715 516
+1cb75 5 718 516
+1cb7a 3 696 516
+1cb7d 2 699 516
+1cb7f 1d 804 516
+1cb9c 6 806 516
+1cba2 d 808 516
+1cbaf 2 809 516
+1cbb1 37 558 516
+1cbe8 19 678 516
+1cc01 8 680 516
+1cc09 2 681 516
+1cc0b 15 650 516
+1cc20 13 652 516
+1cc33 5 653 516
+1cc38 1e 601 516
+1cc56 2 603 516
+1cc58 5 606 516
+1cc5d 2 607 516
+1cc5f 2 608 516
+1cc61 25 615 516
+1cc86 2 617 516
+1cc88 1 627 516
+1cc89 2 642 516
+1cc8b e 579 516
+1cc99 7 581 516
+1cca0 5 582 516
+1cca5 2d 562 516
+1ccd2 6 564 516
+1ccd8 5 565 516
+1ccdd e 687 516
+1cceb 3 689 516
+1ccee 5 690 516
+1ccf3 15 558 516
+1cd08 2 834 516
+1cd0a 5 814 516
+1cd0f 19 817 516
+1cd28 5 819 516
+1cd2d d 795 516
+1cd3a b 798 516
+1cd45 5 799 516
+1cd4a 11 762 516
+1cd5b 5 764 516
+1cd60 1 774 516
+1cd61 5 776 516
+1cd66 16 729 516
+1cd7c 6 731 516
+1cd82 5 732 516
+1cd87 16 704 516
+1cd9d 3 705 516
+1cda0 b 706 516
+1cdab 2 707 516
+1cdad e 708 516
+1cdbb 6 839 516
+1cdc1 2 840 516
+FUNC 1cdc3 45d 18 _store_winword
+1cdc3 10 1035 516
+1cdd3 5 1043 516
+1cdd8 a 1053 516
+1cde2 3 1043 516
+1cde5 6 1053 516
+1cdeb 2 1054 516
+1cded 6 1049 516
+1cdf3 2 1050 516
+1cdf5 6 1046 516
+1cdfb 10 1057 516
+1ce0b 4 1066 516
+1ce0f 8 1067 516
+1ce17 6 1069 516
+1ce1d d 1075 516
+1ce2a a 1076 516
+1ce34 8 1077 516
+1ce3c 4 1078 516
+1ce40 2a 1085 516
+1ce6a b 1087 516
+1ce75 31 1092 516
+1cea6 7 1093 516
+1cead 3 1097 516
+1ceb0 13 1100 516
+1cec3 10 1101 516
+1ced3 b 1102 516
+1cede b 1103 516
+1cee9 9 1106 516
+1cef2 3 1291 516
+1cef5 12 1292 516
+1cf07 11 1114 516
+1cf18 5 1117 516
+1cf1d b 1120 516
+1cf28 37 1125 516
+1cf5f 14 1274 516
+1cf73 c 1277 516
+1cf7f 8 1283 516
+1cf87 4 1284 516
+1cf8b 9 1286 516
+1cf94 c 1287 516
+1cfa0 5 1277 516
+1cfa5 e 1128 516
+1cfb3 7 1133 516
+1cfba 7 1132 516
+1cfc1 7 1130 516
+1cfc8 2 1131 516
+1cfca 5 1134 516
+1cfcf a 1156 516
+1cfd9 7 1158 516
+1cfe0 2 1159 516
+1cfe2 5 1160 516
+1cfe7 11 1175 516
+1cff8 5 1176 516
+1cffd 11 1177 516
+1d00e 6 1178 516
+1d014 2 1179 516
+1d016 5 1180 516
+1d01b b 1225 516
+1d026 13 1226 516
+1d039 4 1228 516
+1d03d 1a 1233 516
+1d057 9 1236 516
+1d060 8 1242 516
+1d068 4 1243 516
+1d06c 9 1246 516
+1d075 8 1247 516
+1d07d 5 1277 516
+1d082 1 1230 516
+1d083 5 1250 516
+1d088 12 1136 516
+1d09a 7 1141 516
+1d0a1 7 1140 516
+1d0a8 7 1138 516
+1d0af 2 1139 516
+1d0b1 5 1142 516
+1d0b6 29 1125 516
+1d0df e 1144 516
+1d0ed 7 1147 516
+1d0f4 2 1146 516
+1d0f6 5 1148 516
+1d0fb 7 1182 516
+1d102 b 1183 516
+1d10d 2 1184 516
+1d10f 6 1185 516
+1d115 12 1187 516
+1d127 17 1188 516
+1d13e c 1191 516
+1d14a 8 1197 516
+1d152 4 1198 516
+1d156 8 1201 516
+1d15e 2 1202 516
+1d160 5 1203 516
+1d165 9 1204 516
+1d16e 1a 1205 516
+1d188 9 1207 516
+1d191 8 1212 516
+1d199 4 1213 516
+1d19d 9 1215 516
+1d1a6 8 1216 516
+1d1ae 2 1220 516
+1d1b0 d 1168 516
+1d1bd 7 1170 516
+1d1c4 2 1171 516
+1d1c6 2 1172 516
+1d1c8 d 1162 516
+1d1d5 7 1164 516
+1d1dc 2 1165 516
+1d1de 2 1166 516
+1d1e0 d 1150 516
+1d1ed 7 1152 516
+1d1f4 2 1153 516
+1d1f6 1b 1268 516
+1d211 3 1272 516
+1d214 5 1273 516
+1d219 7 1194 516
+FUNC 1d220 1af 18 _Strftime_l
+1d220 6 356 516
+1d226 4 361 516
+1d22a 13 362 516
+1d23d 33 364 516
+1d270 33 365 516
+1d2a3 d 368 516
+1d2b0 10 375 516
+1d2c0 e 385 516
+1d2ce a 387 516
+1d2d8 1e 435 516
+1d2f6 4 438 516
+1d2fa a 446 516
+1d304 5 447 516
+1d309 b 452 516
+1d314 3 453 516
+1d317 2 454 516
+1d319 7 400 516
+1d320 1 405 516
+1d321 2 408 516
+1d323 5 409 516
+1d328 1 411 516
+1d329 1 412 516
+1d32a 1d 415 516
+1d347 1 428 516
+1d348 5 385 516
+1d34d 5 464 516
+1d352 5 469 516
+1d357 13 470 516
+1d36a 3 441 516
+1d36d f 478 516
+1d37c b 481 516
+1d387 2 483 516
+1d389 b 402 516
+1d394 2 403 516
+1d396 5 421 516
+1d39b 7 423 516
+1d3a2 2 464 516
+1d3a4 18 485 516
+1d3bc 11 488 516
+1d3cd 2 490 516
+FUNC 1d3cf 1e 14 _strftime_l
+1d3cf 3 291 516
+1d3d2 19 292 516
+1d3eb 2 293 516
+FUNC 1d3ed 1d 10 strftime
+1d3ed 0 300 516
+1d3ed 1c 301 516
+1d409 1 302 516
+FUNC 1d40a 1e 14 _Strftime
+1d40a 3 343 516
+1d40d 19 345 516
+1d426 2 346 516
+FUNC 1d428 26 0 localeconv
+1d428 0 69 3302
+1d428 5 75 3302
+1d42d 1b 78 3302
+1d448 5 79 3302
+1d44d 1 80 3302
+FUNC 1d450 46 8 strcspn
+1d450 4 191 924
+1d454 2 198 924
+1d456 1 199 924
+1d457 1 200 924
+1d458 1 201 924
+1d459 1 202 924
+1d45a 1 203 924
+1d45b 1 204 924
+1d45c 1 205 924
+1d45d 1 206 924
+1d45e 6 212 924
+1d464 2 216 924
+1d466 2 217 924
+1d468 2 218 924
+1d46a 3 219 924
+1d46d 4 220 924
+1d471 2 221 924
+1d473 3 227 924
+1d476 6 229 924
+1d47c 3 234 924
+1d47f 2 236 924
+1d481 2 237 924
+1d483 2 238 924
+1d485 3 239 924
+1d488 4 240 924
+1d48c 2 245 924
+1d48e 2 255 924
+1d490 3 257 924
+1d493 3 259 924
+FUNC 1d496 60 c TranslateName
+1d496 3 340 3849
+1d499 3 342 3849
+1d49c 3 343 3849
+1d49f b 346 3849
+1d4aa a 348 3849
+1d4b4 14 349 3849
+1d4c8 6 351 3849
+1d4ce a 352 3849
+1d4d8 2 353 3849
+1d4da 4 354 3849
+1d4de 2 355 3849
+1d4e0 3 356 3849
+1d4e3 7 346 3849
+1d4ea a 359 3849
+1d4f4 2 360 3849
+FUNC 1d4f6 14 0 GetLcidFromDefault
+1d4f6 0 761 3849
+1d4f6 7 762 3849
+1d4fd c 763 3849
+1d509 1 764 3849
+FUNC 1d50a 77 0 ProcessCodePage
+1d50a 13 784 3849
+1d51d 1a 787 3849
+1d537 11 795 3849
+1d548 8 799 3849
+1d550 2 801 3849
+1d552 18 791 3849
+1d56a 3 793 3849
+1d56d 7 805 3849
+1d574 d 806 3849
+FUNC 1d581 1e 4 TestDefaultCountry
+1d581 0 826 3849
+1d581 2 830 3849
+1d583 15 832 3849
+1d598 3 835 3849
+1d59b 1 836 3849
+1d59c 2 833 3849
+1d59e 1 836 3849
+FUNC 1d59f 32 0 LcidFromHexString
+1d59f 1 893 3849
+1d5a0 2 895 3849
+1d5a2 2 897 3849
+1d5a4 9 899 3849
+1d5ad 5 900 3849
+1d5b2 8 901 3849
+1d5ba 3 902 3849
+1d5bd 10 903 3849
+1d5cd 3 906 3849
+1d5d0 1 907 3849
+FUNC 1d5d1 1b 0 GetPrimaryLen
+1d5d1 0 926 3849
+1d5d1 2 927 3849
+1d5d3 3 930 3849
+1d5d6 12 931 3849
+1d5e8 1 933 3849
+1d5e9 2 935 3849
+1d5eb 1 938 3849
+FUNC 1d5ec 96 4 CountryEnumProc
+1d5ec 15 717 3849
+1d601 7 718 3849
+1d608 f 719 3849
+1d617 23 725 3849
+1d63a 3 728 3849
+1d63d 3 729 3849
+1d640 12 731 3849
+1d652 b 734 3849
+1d65d a 738 3849
+1d667 b 741 3849
+1d672 10 742 3849
+FUNC 1d682 72 8 TestDefaultLanguage
+1d682 11 858 3849
+1d693 22 864 3849
+1d6b5 4 865 3849
+1d6b9 d 867 3849
+1d6c6 1c 871 3849
+1d6e2 2 872 3849
+1d6e4 3 874 3849
+1d6e7 d 875 3849
+FUNC 1d6f4 1d0 4 LangCountryEnumProc
+1d6f4 16 435 3849
+1d70a 7 436 3849
+1d711 d 437 3849
+1d71e 27 444 3849
+1d745 4 447 3849
+1d749 8 448 3849
+1d751 16 450 3849
+1d767 1d 456 3849
+1d784 2 460 3849
+1d786 11 462 3849
+1d797 7 467 3849
+1d79e 5 468 3849
+1d7a3 6 472 3849
+1d7a9 1a 475 3849
+1d7c3 14 482 3849
+1d7d7 3 483 3849
+1d7da a 487 3849
+1d7e4 b 490 3849
+1d7ef 6 493 3849
+1d7f5 3 494 3849
+1d7f8 12 501 3849
+1d80a 1d 506 3849
+1d827 6 510 3849
+1d82d c 513 3849
+1d839 16 518 3849
+1d84f 8 522 3849
+1d857 14 528 3849
+1d86b 2 531 3849
+1d86d 2 540 3849
+1d86f 1b 550 3849
+1d88a f 553 3849
+1d899 7 557 3849
+1d8a0 5 558 3849
+1d8a5 3 559 3849
+1d8a8 b 566 3849
+1d8b3 11 567 3849
+FUNC 1d8c4 bf 4 LanguageEnumProc
+1d8c4 15 624 3849
+1d8d9 7 625 3849
+1d8e0 f 626 3849
+1d8ef 23 632 3849
+1d912 3 635 3849
+1d915 3 636 3849
+1d918 11 639 3849
+1d929 7 643 3849
+1d930 2 650 3849
+1d932 1d 651 3849
+1d94f f 654 3849
+1d95e a 658 3849
+1d968 b 662 3849
+1d973 10 663 3849
+FUNC 1d983 2c 0 GetLcidFromCountry
+1d983 0 686 3849
+1d983 10 687 3849
+1d993 11 689 3849
+1d9a4 6 693 3849
+1d9aa 4 694 3849
+1d9ae 1 695 3849
+FUNC 1d9af 65 0 GetLcidFromLangCountry
+1d9af 0 386 3849
+1d9af 7 388 3849
+1d9b6 1a 389 3849
+1d9d0 5 390 3849
+1d9d5 17 392 3849
+1d9ec 10 394 3849
+1d9fc 13 402 3849
+1da0f 4 403 3849
+1da13 1 404 3849
+FUNC 1da14 3c 0 GetLcidFromLanguage
+1da14 0 591 3849
+1da14 13 593 3849
+1da27 e 594 3849
+1da35 10 596 3849
+1da45 6 600 3849
+1da4b 4 601 3849
+1da4f 1 602 3849
+FUNC 1da50 1e3 c __get_qualified_locale
+1da50 4 205 3849
+1da54 5 208 3849
+1da59 12 212 3849
+1da6b 7 215 3849
+1da72 5 217 3849
+1da77 3 222 3849
+1da7a f 223 3849
+1da89 10 226 3849
+1da99 d 230 3849
+1daa6 a 232 3849
+1dab0 5 235 3849
+1dab5 2 237 3849
+1dab7 5 240 3849
+1dabc 5 243 3849
+1dac1 14 248 3849
+1dad5 a 250 3849
+1dadf 5 252 3849
+1dae4 2 254 3849
+1dae6 5 256 3849
+1daeb 2 261 3849
+1daed a 263 3849
+1daf7 28 266 3849
+1db1f 2 268 3849
+1db21 13 271 3849
+1db34 3 277 3849
+1db37 6 278 3849
+1db3d 17 281 3849
+1db54 32 285 3849
+1db86 d 289 3849
+1db93 6 290 3849
+1db99 8 293 3849
+1dba1 7 295 3849
+1dba8 8 296 3849
+1dbb0 4 297 3849
+1dbb4 8 301 3849
+1dbbc d 305 3849
+1dbc9 23 306 3849
+1dbec 2 307 3849
+1dbee f 308 3849
+1dbfd 2 309 3849
+1dbff 12 311 3849
+1dc11 2 312 3849
+1dc13 14 313 3849
+1dc27 5 315 3849
+1dc2c 6 286 3849
+1dc32 1 316 3849
+FUNC 1dc33 12 0 cmpResult
+FUNC 1dc45 18 0 cmpBYTE
+FUNC 1dc5d 40 0 cmpWORD
+FUNC 1dc9d 78 0 cmpDWORD
+FUNC 1dd15 1490 0 unaligned_memcmp
+FUNC 1f1a5 1680 c memcmp
+FUNC 20825 be c strncmp
+20825 4 42 876
+20829 5 43 876
+2082e 7 45 876
+20835 7 46 876
+2083c 6 48 876
+20842 d 51 876
+2084f 11 56 876
+20860 c 61 876
+2086c c 66 876
+20878 15 71 876
+2088d 2 81 876
+2088f a 73 876
+20899 a 68 876
+208a3 a 63 876
+208ad 10 58 876
+208bd 2 79 876
+208bf a 81 876
+208c9 1 85 876
+208ca 4 86 876
+208ce 5 79 876
+208d3 4 89 876
+208d7 2 90 876
+208d9 a 83 876
+FUNC 208f0 40 8 strpbrk
+208f0 4 191 869
+208f4 2 198 869
+208f6 1 199 869
+208f7 1 200 869
+208f8 1 201 869
+208f9 1 202 869
+208fa 1 203 869
+208fb 1 204 869
+208fc 1 205 869
+208fd 1 206 869
+208fe 6 212 869
+20904 2 216 869
+20906 2 217 869
+20908 2 218 869
+2090a 3 219 869
+2090d 4 220 869
+20911 2 221 869
+20913 5 227 869
+20918 2 236 869
+2091a 2 237 869
+2091c 2 238 869
+2091e 3 239 869
+20921 4 240 869
+20925 2 247 869
+20927 3 248 869
+2092a 3 257 869
+2092d 3 259 869
+FUNC 20930 82 c _iswctype_l
+20930 6 66 6445
+20936 8 69 6445
+2093e 6 70 6445
+20944 8 71 6445
+2094c 18 72 6445
+20964 2 73 6445
+20966 b 75 6445
+20971 25 85 6445
+20996 3 86 6445
+20999 d 87 6445
+209a6 a 89 6445
+209b0 2 90 6445
+FUNC 209b2 6e 8 iswctype
+209b2 4 96 6445
+209b6 8 97 6445
+209be 2 99 6445
+209c0 2 122 6445
+209c2 8 101 6445
+209ca 14 103 6445
+209de 2 122 6445
+209e0 9 106 6445
+209e9 25 117 6445
+20a0e 10 121 6445
+20a1e 2 122 6445
+FUNC 20a20 5 8 is_wctype
+20a20 0 148 6445
+20a20 5 149 6445
+FUNC 20a25 22b 14 strtoxl
+20a25 8 80 6309
+20a2d b 86 6309
+20a38 3 89 6309
+20a3b b 92 6309
+20a46 30 94 6309
+20a76 11 95 6309
+20a87 c 100 6309
+20a93 34 101 6309
+20ac7 5 102 6309
+20acc 5 104 6309
+20ad1 4 105 6309
+20ad5 2 106 6309
+20ad7 5 108 6309
+20adc 3 109 6309
+20adf 1d 111 6309
+20afc 4 118 6309
+20b00 5 121 6309
+20b05 9 122 6309
+20b0e a 123 6309
+20b18 9 126 6309
+20b21 7 124 6309
+20b28 2 129 6309
+20b2a 5 140 6309
+20b2f f 142 6309
+20b3e 1 143 6309
+20b3f 9 144 6309
+20b48 8 149 6309
+20b50 c 154 6309
+20b5c 8 155 6309
+20b64 7 156 6309
+20b6b 13 157 6309
+20b7e 5 160 6309
+20b83 4 164 6309
+20b87 b 171 6309
+20b92 4 177 6309
+20b96 6 178 6309
+20b9c 8 190 6309
+20ba4 6 193 6309
+20baa 3 195 6309
+20bad 4 196 6309
+20bb1 2 198 6309
+20bb3 c 173 6309
+20bbf 3 185 6309
+20bc2 2 186 6309
+20bc4 24 201 6309
+20be8 5 204 6309
+20bed c 205 6309
+20bf9 6 206 6309
+20bff 10 207 6309
+20c0f 7 213 6309
+20c16 2 215 6309
+20c18 6 217 6309
+20c1e 3 219 6309
+20c21 12 221 6309
+20c33 7 113 6309
+20c3a 2 115 6309
+20c3c 12 116 6309
+20c4e 2 222 6309
+FUNC 20c50 29 c strtol
+20c50 3 229 6309
+20c53 8 230 6309
+20c5b 13 232 6309
+20c6e 9 236 6309
+20c77 2 238 6309
+FUNC 20c79 1b 10 _strtol_l
+20c79 0 246 6309
+20c79 1a 247 6309
+20c93 1 248 6309
+FUNC 20c94 2a c strtoul
+20c94 3 255 6309
+20c97 7 256 6309
+20c9e 14 258 6309
+20cb2 a 262 6309
+20cbc 2 264 6309
+FUNC 20cbe 1b 10 _strtoul_l
+20cbe 0 272 6309
+20cbe 1a 273 6309
+20cd8 1 274 6309
+FUNC 20cd9 1f 0 __initconin
+20cd9 0 58 5008
+20cd9 1e 65 5008
+20cf7 1 67 5008
+FUNC 20cf8 1f 0 __initconout
+20cf8 0 90 5008
+20cf8 1e 97 5008
+20d16 1 98 5008
+FUNC 20d17 2d 0 __termcon
+20d17 0 120 5008
+20d17 16 121 5008
+20d2d 3 122 5008
+20d30 f 125 5008
+20d3f 4 126 5008
+20d43 1 128 5008
+FUNC 20d44 94 4 _close_nolock
+20d44 1 72 5094
+20d45 54 93 5094
+20d99 a 99 5094
+20da3 2 96 5094
+20da5 6 101 5094
+20dab b 103 5094
+20db6 11 105 5094
+20dc7 7 107 5094
+20dce 5 108 5094
+20dd3 4 111 5094
+20dd7 1 112 5094
+FUNC 20dd8 cd 4 _close
+20dd8 c 42 5094
+20de4 23 46 5094
+20e07 2f 47 5094
+20e36 20 48 5094
+20e56 7 50 5094
+20e5d 3 52 5094
+20e60 9 53 5094
+20e69 c 54 5094
+20e75 2 55 5094
+20e77 b 56 5094
+20e82 4 57 5094
+20e86 c 61 5094
+20e92 3 65 5094
+20e95 6 66 5094
+20e9b a 62 5094
+FUNC 20ea5 2c 4 _freebuf
+20ea5 1 47 1927
+20ea6 f 50 1927
+20eb5 8 52 1927
+20ebd 7 54 1927
+20ec4 8 55 1927
+20ecc 4 56 1927
+20ed0 1 58 1927
+FUNC 20ed1 2a 0 _purecall
+20ed1 0 43 3119
+20ed1 b 44 3119
+20edc 5 45 3119
+20ee1 2 47 3119
+20ee3 7 54 3119
+20eea c 56 3119
+20ef6 5 57 3119
+FUNC 20efb 22 4 _set_purecall_handler
+20efb 1 82 3119
+20efc b 85 3119
+20f07 12 86 3119
+20f19 3 88 3119
+20f1c 1 89 3119
+FUNC 20f1d d 0 _get_purecall_handler
+20f1d 0 92 3119
+20f1d c 93 3119
+20f29 1 94 3119
+FUNC 20f30 34 0 _allmul
+20f30 0 47 5116
+20f30 4 62 5116
+20f34 4 63 5116
+20f38 2 64 5116
+20f3a 4 65 5116
+20f3e 2 66 5116
+20f40 4 68 5116
+20f44 2 69 5116
+20f46 3 71 5116
+20f49 1 74 5116
+20f4a 2 81 5116
+20f4c 2 82 5116
+20f4e 4 84 5116
+20f52 4 85 5116
+20f56 2 86 5116
+20f58 4 88 5116
+20f5c 2 89 5116
+20f5e 2 90 5116
+20f60 1 92 5116
+20f61 3 94 5116
+FUNC 20f64 11 4 atol
+20f64 0 55 6631
+20f64 10 56 6631
+20f74 1 57 6631
+FUNC 20f75 15 8 _atol_l
+20f75 0 64 6631
+20f75 14 65 6631
+20f89 1 66 6631
+FUNC 20f8a 5 4 atoi
+20f8a 0 99 6631
+20f8a 5 100 6631
+FUNC 20f8f 5 8 _atoi_l
+20f8f 0 107 6631
+20f8f 5 108 6631
+FUNC 20f94 11 4 _atoi64
+20f94 0 143 6631
+20f94 10 144 6631
+20fa4 1 145 6631
+FUNC 20fa5 15 8 _atoi64_l
+20fa5 0 151 6631
+20fa5 14 152 6631
+20fb9 1 153 6631
+FUNC 20fba 50 0 has_osfxsr_set
+FUNC 2100a 60 0 _get_sse2_info
+FUNC 2106a d 0 __sse2_available_init
+FUNC 21077 170 8 _flswbuf
+21077 5 93 1980
+2107c c 104 1980
+21088 8 106 1980
+21090 b 107 1980
+2109b 4 108 1980
+2109f a 109 1980
+210a9 4 110 1980
+210ad b 111 1980
+210b8 2 113 1980
+210ba 4 124 1980
+210be 4 125 1980
+210c2 8 126 1980
+210ca 3 127 1980
+210cd 8 128 1980
+210d5 3 137 1980
+210d8 11 138 1980
+210e9 9 141 1980
+210f2 25 151 1980
+21117 7 153 1980
+2111e d 158 1980
+2112b 5 162 1980
+21130 5 163 1980
+21135 7 164 1980
+2113c 7 166 1980
+21143 10 167 1980
+21153 2 168 1980
+21155 6 131 1980
+2115b 5 132 1980
+21160 2e 169 1980
+2118e 13 171 1980
+211a1 2 174 1980
+211a3 9 181 1980
+211ac 2 186 1980
+211ae 1d 195 1980
+211cb 5 201 1980
+211d0 4 202 1980
+211d4 7 203 1980
+211db a 209 1980
+211e5 2 212 1980
+FUNC 211e7 182 4 _wchartodigit
+211e7 0 32 6613
+211e7 1b 41 6613
+21202 1 73 6613
+21203 e 42 6613
+21211 19 44 6613
+2122a 1 73 6613
+2122b 14 45 6613
+2123f 14 46 6613
+21253 14 47 6613
+21267 14 48 6613
+2127b 14 49 6613
+2128f 14 50 6613
+212a3 18 51 6613
+212bb 18 52 6613
+212d3 18 53 6613
+212eb 14 54 6613
+212ff 14 55 6613
+21313 12 56 6613
+21325 14 57 6613
+21339 14 58 6613
+2134d c 59 6613
+21359 2 62 6613
+2135b 4 67 6613
+2135f 6 69 6613
+21365 3 71 6613
+21368 1 73 6613
+FUNC 21369 b6 c _isctype_l
+21369 7 114 6399
+21370 b 118 6399
+2137b d 121 6399
+21388 f 122 6399
+21397 1f 124 6399
+213b6 3 126 6399
+213b9 d 129 6399
+213c6 2 130 6399
+213c8 a 133 6399
+213d2 26 144 6399
+213f8 10 146 6399
+21408 15 149 6399
+2141d 2 150 6399
+FUNC 2141f 2f 8 _isctype
+2141f 0 156 6399
+2141f 9 157 6399
+21428 12 159 6399
+2143a 1 165 6399
+2143b 12 163 6399
+2144d 1 165 6399
+FUNC 21450 2c 0 _alloca_probe_16
+21450 0 44 2632
+21450 1 46 2632
+21451 4 47 2632
+21455 2 48 2632
+21457 3 49 2632
+2145a 2 50 2632
+2145c 2 51 2632
+2145e 2 52 2632
+21460 1 53 2632
+21461 5 54 2632
+21466 1 59 2632
+21467 4 60 2632
+2146b 2 61 2632
+2146d 3 62 2632
+21470 2 63 2632
+21472 2 64 2632
+21474 2 65 2632
+21476 1 66 2632
+21477 5 67 2632
+PUBLIC 21466 0 _alloca_probe_8
+FUNC 2147c 47 4 __ansicp
+2147c 10 39 2934
+2148c 1c 44 2934
+214a8 3 45 2934
+214ab 2 46 2934
+214ad a 47 2934
+214b7 c 49 2934
+FUNC 214c3 1b2 18 __convertcp
+214c3 16 79 2934
+214d9 10 83 2934
+214e9 18 85 2934
+21501 17 90 2934
+21518 13 92 2934
+2152b 6 93 2934
+21531 d 99 2934
+2153e 2 101 2934
+21540 c 103 2934
+2154c 2a 115 2934
+21576 15 111 2934
+2158b 7 112 2934
+21592 1c 115 2934
+215ae 3 116 2934
+215b1 2 117 2934
+215b3 10 119 2934
+215c3 15 127 2934
+215d8 7 129 2934
+215df 18 138 2934
+215f7 3 139 2934
+215fa 2 140 2934
+215fc 1f 149 2934
+2161b 11 151 2934
+2162c 12 160 2934
+2163e 9 162 2934
+21647 3 163 2934
+2164a 2 164 2934
+2164c 6 165 2934
+21652 5 166 2934
+21657 9 174 2934
+21660 3 177 2934
+21663 12 178 2934
+FUNC 21675 34 4 _get_daylight
+21675 0 35 487
+21675 27 36 487
+2169c 1 41 487
+2169d 8 39 487
+216a5 3 40 487
+216a8 1 41 487
+FUNC 216a9 34 4 _get_dstbias
+216a9 0 44 487
+216a9 27 45 487
+216d0 1 50 487
+216d1 8 48 487
+216d9 3 49 487
+216dc 1 50 487
+FUNC 216dd 34 4 _get_timezone
+216dd 0 53 487
+216dd 27 54 487
+21704 1 59 487
+21705 8 57 487
+2170d 3 58 487
+21710 1 59 487
+FUNC 21711 a2 10 _get_tzname
+21711 3 62 487
+21714 10 63 487
+21724 4 64 487
+21728 3 66 487
+2172b 7 68 487
+21732 27 69 487
+21759 20 63 487
+21779 f 72 487
+21788 8 73 487
+21790 4 76 487
+21794 5 78 487
+21799 5 80 487
+2179e 13 82 487
+217b1 2 83 487
+FUNC 217b3 6 0 __daylight
+217b3 0 118 487
+217b3 5 119 487
+217b8 1 120 487
+FUNC 217b9 6 0 __dstbias
+217b9 0 123 487
+217b9 5 124 487
+217be 1 125 487
+FUNC 217bf 6 0 __timezone
+217bf 0 128 487
+217bf 5 129 487
+217c4 1 130 487
+FUNC 217c5 6 0 __tzname
+217c5 0 133 487
+217c5 5 134 487
+217ca 1 135 487
+FUNC 217cb c 4 _set_daylight
+217cb c 189 418
+FUNC 217d7 c 4 _set_dstbias
+217d7 c 190 418
+FUNC 217e3 c 4 _set_timezone
+217e3 c 191 418
+FUNC 217ef 349 0 _tzset_nolock
+217ef c 124 440
+217fb 5 127 440
+21800 3 129 440
+21803 3 130 440
+21806 3 131 440
+21809 3 132 440
+2180c 3 133 440
+2180f 8 135 440
+21817 3 136 440
+2181a 8 139 440
+21822 1b 142 440
+2183d 1b 143 440
+21858 1b 144 440
+21873 8 149 440
+2187b 6 154 440
+21881 f 160 440
+21890 18 165 440
+218a8 14 260 440
+218bc b 268 440
+218c7 4 274 440
+218cb 7 275 440
+218d2 16 277 440
+218e8 6 281 440
+218ee 32 283 440
+21920 9 174 440
+21929 7 175 440
+21930 6 176 440
+21936 13 179 440
+21949 9 183 440
+21952 b 188 440
+2195d 9 190 440
+21966 e 191 440
+21974 12 199 440
+21986 3 201 440
+21989 c 203 440
+21995 2 205 440
+21997 3 206 440
+2199a 3 214 440
+2199d 27 234 440
+219c4 8 235 440
+219cc 2 236 440
+219ce 7 237 440
+219d5 23 247 440
+219f8 9 248 440
+21a01 2 249 440
+21a03 8 250 440
+21a0b 7 256 440
+21a12 a 288 440
+21a1c a 289 440
+21a26 a 290 440
+21a30 c 292 440
+21a3c 9 296 440
+21a45 23 301 440
+21a68 8 310 440
+21a70 7 311 440
+21a77 1 312 440
+21a78 10 318 440
+21a88 11 320 440
+21a99 5 292 440
+21a9e 9 293 440
+21aa7 5 325 440
+21aac e 329 440
+21aba d 330 440
+21ac7 5 335 440
+21acc b 339 440
+21ad7 d 340 440
+21ae4 5 344 440
+21ae9 3 345 440
+21aec 6 350 440
+21af2 4 351 440
+21af6 21 352 440
+21b17 2 354 440
+21b19 5 355 440
+21b1e a 357 440
+21b28 a 358 440
+21b32 6 360 440
+FUNC 21b38 1f5 24 cvtdate
+21b38 6 409 440
+21b3e 4 412 440
+21b42 c 414 440
+21b4e 52 424 440
+21ba0 4c 430 440
+21bec 14 436 440
+21c00 2 437 440
+21c02 2 438 440
+21c04 46 447 440
+21c4a 3 449 440
+21c4d 2 452 440
+21c4f 3c 457 440
+21c8b 3 459 440
+21c8e 27 467 440
+21cb5 6 472 440
+21cbb 2 474 440
+21cbd 29 485 440
+21ce6 11 486 440
+21cf7 a 487 440
+21d01 8 488 440
+21d09 d 490 440
+21d16 6 491 440
+21d1c 6 492 440
+21d22 9 499 440
+21d2b 2 503 440
+FUNC 21d2d 1ae 0 _isindst_nolock
+21d2d 5 554 440
+21d32 20 558 440
+21d52 5 560 440
+21d57 7 561 440
+21d5e 1b 568 440
+21d79 c 569 440
+21d85 7 573 440
+21d8c 34 584 440
+21dc0 2 585 440
+21dc2 19 596 440
+21ddb 40 611 440
+21e1b 2 612 440
+21e1d 1e 623 440
+21e3b 2 626 440
+21e3d 14 641 440
+21e51 1a 653 440
+21e6b d 660 440
+21e78 d 664 440
+21e85 8 666 440
+21e8d 4 674 440
+21e91 2 697 440
+21e93 8 673 440
+21e9b 8 675 440
+21ea3 4 676 440
+21ea7 14 679 440
+21ebb 4 681 440
+21ebf b 682 440
+21eca 2 685 440
+21ecc d 691 440
+21ed9 2 694 440
+FUNC 21edb 4f 0 __tzset
+21edb c 85 440
+21ee7 a 88 440
+21ef1 8 90 440
+21ef9 3 91 440
+21efc 8 93 440
+21f04 5 94 440
+21f09 6 95 440
+21f0f c 98 440
+21f1b 6 103 440
+21f21 9 99 440
+FUNC 21f2a 38 0 _tzset
+21f2a c 109 440
+21f36 8 110 440
+21f3e 4 111 440
+21f42 5 113 440
+21f47 c 115 440
+21f53 6 118 440
+21f59 9 116 440
+FUNC 21f62 41 4 _isindst
+21f62 c 538 440
+21f6e 8 541 440
+21f76 4 542 440
+21f7a b 543 440
+21f85 c 544 440
+21f91 3 548 440
+21f94 6 549 440
+21f9a 9 545 440
+FUNC 21fa3 35 8 __ascii_stricmp
+21fa3 a 75 693
+21fad c 80 693
+21fb9 3 81 693
+21fbc c 82 693
+21fc8 3 83 693
+21fcb 9 85 693
+21fd4 3 87 693
+21fd7 1 88 693
+FUNC 21fd8 d3 c _stricmp_l
+21fd8 7 47 693
+21fdf b 49 693
+21fea 36 52 693
+22020 32 53 693
+22052 8 55 693
+2205a e 57 693
+22068 15 63 693
+2207d 11 64 693
+2208e 8 65 693
+22096 13 68 693
+220a9 2 69 693
+FUNC 220ab 50 8 _stricmp
+220ab 4 94 693
+220af a 95 693
+220b9 24 98 693
+220dd 6 99 693
+220e3 1 107 693
+220e4 5 101 693
+220e9 10 105 693
+220f9 2 107 693
+FUNC 220fb f0 10 _strnicmp_l
+220fb 7 51 650
+22102 d 54 650
+2210f b 56 650
+2211a 33 59 650
+2214d 7 60 650
+22154 32 61 650
+22186 8 63 650
+2218e 1d 65 650
+221ab 15 71 650
+221c0 11 72 650
+221d1 d 74 650
+221de 6 76 650
+221e4 5 79 650
+221e9 2 80 650
+FUNC 221eb 5c c _strnicmp
+221eb 4 125 650
+221ef a 127 650
+221f9 24 130 650
+2221d 5 131 650
+22222 a 132 650
+2222c 1 141 650
+2222d 5 134 650
+22232 13 138 650
+22245 2 141 650
+FUNC 22247 db c xtoa_s
+22247 8 93 6581
+2224f 24 102 6581
+22273 24 103 6581
+22297 19 105 6581
+222b0 b 106 6581
+222bb a 112 6581
+222c5 6 114 6581
+222cb 7 116 6581
+222d2 2 118 6581
+222d4 2 121 6581
+222d6 5 124 6581
+222db 5 128 6581
+222e0 3 129 6581
+222e3 2 130 6581
+222e5 6 131 6581
+222eb 3 135 6581
+222ee e 136 6581
+222fc 8 139 6581
+22304 2 141 6581
+22306 2 142 6581
+22308 3 148 6581
+2230b 6 152 6581
+22311 3 154 6581
+22314 1 155 6581
+22315 4 156 6581
+22319 5 158 6581
+2231e 4 160 6581
+FUNC 22322 28 10 _itoa_s
+22322 3 172 6581
+22325 d 175 6581
+22332 4 176 6581
+22336 2 177 6581
+22338 10 178 6581
+22348 2 181 6581
+FUNC 2234a 25 10 _ltoa_s
+2234a 3 189 6581
+2234d 20 190 6581
+2236d 2 191 6581
+FUNC 2236f 18 10 _ultoa_s
+2236f 0 199 6581
+2236f 17 200 6581
+22386 1 201 6581
+FUNC 22387 f6 14 x64toa_s
+22387 7 309 6581
+2238e 25 318 6581
+223b3 5 319 6581
+223b8 19 321 6581
+223d1 b 322 6581
+223dc 3 327 6581
+223df 20 333 6581
+223ff 3 336 6581
+22402 1e 352 6581
+22420 3 344 6581
+22423 2 345 6581
+22425 5 346 6581
+2242a 5 351 6581
+2242f 13 352 6581
+22442 5 355 6581
+22447 3 357 6581
+2244a 13 358 6581
+2245d 4 364 6581
+22461 9 368 6581
+2246a 3 370 6581
+2246d 1 371 6581
+2246e 7 372 6581
+22475 4 375 6581
+22479 4 377 6581
+FUNC 2247d 33 14 _i64toa_s
+2247d 3 390 6581
+22480 2e 391 6581
+224ae 2 392 6581
+FUNC 224b0 1d 14 _ui64toa_s
+224b0 4 400 6581
+224b4 17 401 6581
+224cb 2 402 6581
+FUNC 224cd 224 1c __crtGetStringTypeW_stat
+224cd 10 64 2828
+224dd 9 72 2828
+224e6 7 73 2828
+224ed 14 75 2828
+22501 11 79 2828
+22512 8 80 2828
+2251a b 82 2828
+22525 f 83 2828
+22534 4 88 2828
+22538 13 90 2828
+2254b 7 95 2828
+22552 2 199 2828
+22554 8 119 2828
+2255c b 120 2828
+22567 5 121 2828
+2256c b 122 2828
+22577 e 128 2828
+22585 5 130 2828
+2258a 3 131 2828
+2258d 1d 142 2828
+225aa 6 143 2828
+225b0 40 146 2828
+225f0 3 147 2828
+225f3 6 148 2828
+225f9 d 150 2828
+22606 1a 160 2828
+22620 4d 164 2828
+2266d 4 165 2828
+22671 5 170 2828
+22676 b 171 2828
+22681 3 174 2828
+22684 23 178 2828
+226a7 12 186 2828
+226b9 f 189 2828
+226c8 4 187 2828
+226cc 7 191 2828
+226d3 8 194 2828
+226db 4 196 2828
+226df 12 200 2828
+FUNC 226f1 3e 1c __crtGetStringTypeW
+226f1 6 211 2828
+226f7 b 212 2828
+22702 2b 222 2828
+2272d 2 223 2828
+FUNC 2272f 294 14 strtoxq
+2272f 8 80 6264
+22737 b 86 6264
+22742 3 89 6264
+22745 b 92 6264
+22750 31 94 6264
+22781 12 95 6264
+22793 c 100 6264
+2279f 37 102 6264
+227d6 2 103 6264
+227d8 9 105 6264
+227e1 4 106 6264
+227e5 2 107 6264
+227e7 6 109 6264
+227ed 9 110 6264
+227f6 8 112 6264
+227fe 6 115 6264
+22804 9 116 6264
+2280d a 117 6264
+22817 9 120 6264
+22820 3 118 6264
+22823 5 123 6264
+22828 10 125 6264
+22838 1 126 6264
+22839 9 127 6264
+22842 26 132 6264
+22868 e 137 6264
+22876 8 138 6264
+2287e 6 139 6264
+22884 11 140 6264
+22895 5 143 6264
+2289a 31 154 6264
+228cb 4 160 6264
+228cf 6 161 6264
+228d5 a 173 6264
+228df 7 176 6264
+228e6 6 178 6264
+228ec 6 179 6264
+228f2 5 181 6264
+228f7 19 156 6264
+22910 b 168 6264
+2291b 5 169 6264
+22920 35 184 6264
+22955 5 187 6264
+2295a c 188 6264
+22966 a 189 6264
+22970 6 190 6264
+22976 7 191 6264
+2297d 2 192 6264
+2297f 7 193 6264
+22986 8 195 6264
+2298e 5 197 6264
+22993 6 199 6264
+22999 13 201 6264
+229ac 15 203 6264
+229c1 2 204 6264
+FUNC 229c3 29 c _strtoi64
+229c3 3 211 6264
+229c6 8 212 6264
+229ce 13 214 6264
+229e1 9 218 6264
+229ea 2 220 6264
+FUNC 229ec 1b 10 _strtoi64_l
+229ec 0 227 6264
+229ec 1a 228 6264
+22a06 1 229 6264
+FUNC 22a07 2a c _strtoui64
+22a07 3 236 6264
+22a0a 7 237 6264
+22a11 14 239 6264
+22a25 a 243 6264
+22a2f 2 245 6264
+FUNC 22a31 1b 10 _strtoui64_l
+22a31 0 253 6264
+22a31 1a 254 6264
+22a4b 1 255 6264
+FUNC 22a50 2b 0 _chkstk
+22a50 0 65 2634
+22a50 1 69 2634
+22a51 4 73 2634
+22a55 2 74 2634
+22a57 2 79 2634
+22a59 2 80 2634
+22a5b 2 81 2634
+22a5d 2 83 2634
+22a5f 5 84 2634
+22a64 2 87 2634
+22a66 2 88 2634
+22a68 2 89 2634
+22a6a 1 90 2634
+22a6b 1 91 2634
+22a6c 2 92 2634
+22a6e 3 93 2634
+22a71 1 94 2634
+22a72 5 98 2634
+22a77 2 99 2634
+22a79 2 100 2634
+FUNC 22a7b 81 4 _getenv_helper_nolock
+22a7b 0 95 3904
+22a7b 10 103 3904
+22a8b 3 104 3904
+22a8e 1 169 3904
+22a8f e 128 3904
+22a9d 7 131 3904
+22aa4 2 132 3904
+22aa6 6 135 3904
+22aac c 140 3904
+22ab8 9 142 3904
+22ac1 2 150 3904
+22ac3 22 154 3904
+22ae5 3 164 3904
+22ae8 6 150 3904
+22aee 5 168 3904
+22af3 9 169 3904
+FUNC 22afc 93 c _getenv_s_helper
+22afc 7 220 3904
+22b03 21 224 3904
+22b24 15 226 3904
+22b39 4 227 3904
+22b3d 3 229 3904
+22b40 a 233 3904
+22b4a 3 234 3904
+22b4d 2 236 3904
+22b4f 7 239 3904
+22b56 6 240 3904
+22b5c 2 243 3904
+22b5e 5 246 3904
+22b63 5 251 3904
+22b68 20 254 3904
+22b88 5 256 3904
+22b8d 2 257 3904
+FUNC 22b8f a2 8 _dupenv_s_helper
+22b8f 6 339 3904
+22b95 21 344 3904
+22bb6 9 346 3904
+22bbf 2 348 3904
+22bc1 5 350 3904
+22bc6 8 352 3904
+22bce 6 353 3904
+22bd4 2 355 3904
+22bd6 9 358 3904
+22bdf b 362 3904
+22bea 6 364 3904
+22bf0 b 366 3904
+22bfb 9 367 3904
+22c04 1e 370 3904
+22c22 7 371 3904
+22c29 2 373 3904
+22c2b 4 375 3904
+22c2f 2 376 3904
+FUNC 22c31 83 4 getenv
+22c31 c 75 3904
+22c3d 2a 78 3904
+22c67 18 79 3904
+22c7f 8 81 3904
+22c87 3 82 3904
+22c8a c 83 3904
+22c96 c 85 3904
+22ca2 3 89 3904
+22ca5 6 90 3904
+22cab 9 86 3904
+FUNC 22cb4 d8 10 getenv_s
+22cb4 c 198 3904
+22cc0 8 201 3904
+22cc8 5 202 3904
+22ccd a1 203 3904
+22d6e c 205 3904
+22d7a 3 209 3904
+22d7d 6 210 3904
+22d83 9 206 3904
+FUNC 22d8c e6 c _dupenv_s
+22d8c c 303 3904
+22d98 8 306 3904
+22da0 5 307 3904
+22da5 af 311 3904
+22e54 c 314 3904
+22e60 3 318 3904
+22e63 6 319 3904
+22e69 9 315 3904
+FUNC 22e72 8 4 _tolower
+22e72 0 48 6218
+22e72 7 49 6218
+22e79 1 50 6218
+FUNC 22e7a 117 8 _tolower_l
+22e7a 8 70 6218
+22e82 b 74 6218
+22e8d c 77 6218
+22e99 31 79 6218
+22eca f 80 6218
+22ed9 14 82 6218
+22eed 2b 86 6218
+22f18 3 88 6218
+22f1b d 91 6218
+22f28 2 92 6218
+22f2a b 94 6218
+22f35 a 97 6218
+22f3f 25 110 6218
+22f64 6 112 6218
+22f6a 5 116 6218
+22f6f 6 117 6218
+22f75 1a 119 6218
+22f8f 2 120 6218
+FUNC 22f91 27 4 tolower
+22f91 0 143 6218
+22f91 9 145 6218
+22f9a f 147 6218
+22fa9 1 153 6218
+22faa d 151 6218
+22fb7 1 153 6218
+FUNC 22fc0 61 c __ascii_strnicmp
+22fc0 6 69 871
+22fc6 3 75 871
+22fc9 2 76 871
+22fcb 2 77 871
+22fcd 3 79 871
+22fd0 3 80 871
+22fd3 2 82 871
+22fd5 2 83 871
+22fd7 5 84 871
+22fdc 2 89 871
+22fde 2 91 871
+22fe0 2 93 871
+22fe2 2 95 871
+22fe4 2 97 871
+22fe6 2 98 871
+22fe8 3 100 871
+22feb 3 101 871
+22fee 2 103 871
+22ff0 2 104 871
+22ff2 2 106 871
+22ff4 2 107 871
+22ff6 2 109 871
+22ff8 2 112 871
+22ffa 2 113 871
+22ffc 2 115 871
+22ffe 2 116 871
+23000 2 118 871
+23002 2 121 871
+23004 2 122 871
+23006 3 124 871
+23009 2 125 871
+2300b 2 128 871
+2300d 2 129 871
+2300f 2 130 871
+23011 5 133 871
+23016 2 134 871
+23018 2 135 871
+2301a 2 138 871
+2301c 5 140 871
+FUNC 23021 ec 10 _mbsnbicoll_l
+23021 7 53 4518
+23028 b 55 4518
+23033 9 57 4518
+2303c 13 58 4518
+2304f 33 61 4518
+23082 6 62 4518
+23088 23 63 4518
+230ab 8 65 4518
+230b3 14 66 4518
+230c7 23 74 4518
+230ea 10 75 4518
+230fa 11 77 4518
+2310b 2 79 4518
+FUNC 2310d 17 c _mbsnbicoll
+2310d 0 85 4518
+2310d 16 86 4518
+23123 1 87 4518
+FUNC 23124 95 0 __wtomb_environ
+23124 7 43 2699
+2312b 3 44 2699
+2312e 9 45 2699
+23137 c 52 2699
+23143 12 57 2699
+23155 11 61 2699
+23166 12 65 2699
+23178 10 72 2699
+23188 5 74 2699
+2318d 9 76 2699
+23196 3 77 2699
+23199 9 81 2699
+231a2 5 84 2699
+231a7 2 85 2699
+231a9 5 58 2699
+231ae 9 67 2699
+231b7 2 68 2699
+FUNC 231b9 1a 8 strnlen
+231b9 0 38 864
+231b9 19 45 864
+231d2 1 49 864
+FUNC 231d3 1a 4 strncnt
+231d3 0 50 4345
+231d3 6 51 4345
+231d9 6 54 4345
+231df 1 55 4345
+231e0 5 54 4345
+231e5 7 57 4345
+231ec 1 58 4345
+FUNC 231ed 389 18 __crtCompareStringA_stat
+231ed 10 96 4345
+231fd 31 280 4345
+2322e c 107 4345
+2323a b 109 4345
+23245 a 110 4345
+2324f 5 118 4345
+23254 1b 119 4345
+2326f 7 122 4345
+23276 1f 123 4345
+23295 6 120 4345
+2329b 7 121 4345
+232a2 3 124 4345
+232a5 2 125 4345
+232a7 17 130 4345
+232be 7 189 4345
+232c5 8 201 4345
+232cd 8 202 4345
+232d5 d 208 4345
+232e2 5 214 4345
+232e7 8 215 4345
+232ef 2 218 4345
+232f1 6 219 4345
+232f7 5 222 4345
+232fc 4 223 4345
+23300 f 231 4345
+2330f 2 232 4345
+23311 5 237 4345
+23316 4 239 4345
+2331a 2 240 4345
+2331c 10 244 4345
+2332c a 246 4345
+23336 7 244 4345
+2333d 2 262 4345
+2333f 5 253 4345
+23344 6 255 4345
+2334a 8 256 4345
+23352 10 260 4345
+23362 11 262 4345
+23373 7 260 4345
+2337a 2 262 4345
+2337c 1a 280 4345
+23396 6 281 4345
+2339c 4d 284 4345
+233e9 4 285 4345
+233ed 6 286 4345
+233f3 19 295 4345
+2340c 17 305 4345
+23423 46 309 4345
+23469 4 310 4345
+2346d 13 320 4345
+23480 17 326 4345
+23497 7 328 4345
+2349e 8 331 4345
+234a6 9 333 4345
+234af 4 132 4345
+234b3 5 137 4345
+234b8 8 138 4345
+234c0 5 139 4345
+234c5 8 140 4345
+234cd e 142 4345
+234db 6 143 4345
+234e1 5 148 4345
+234e6 19 155 4345
+234ff 2 156 4345
+23501 6 157 4345
+23507 19 163 4345
+23520 4 164 4345
+23524 7 166 4345
+2352b 5 167 4345
+23530 3 169 4345
+23533 3 170 4345
+23536 18 178 4345
+2354e 6 179 4345
+23554 6 181 4345
+2355a 8 182 4345
+23562 2 184 4345
+23564 12 337 4345
+FUNC 23576 40 20 __crtCompareStringA
+23576 6 349 4345
+2357c b 350 4345
+23587 2d 361 4345
+235b4 2 362 4345
+FUNC 235b6 f8 10 _strnicoll_l
+235b6 7 55 603
+235bd b 57 603
+235c8 9 59 603
+235d1 13 60 603
+235e4 33 63 603
+23617 6 64 603
+2361d 23 65 603
+23640 a 67 603
+2364a 15 68 603
+2365f 21 78 603
+23680 b 80 603
+2368b 10 81 603
+2369b 11 84 603
+236ac 2 85 603
+FUNC 236ae 27 c _strnicoll
+236ae 3 92 603
+236b1 9 93 603
+236ba 1 101 603
+236bb 5 95 603
+236c0 13 99 603
+236d3 2 101 603
+FUNC 236d5 4d 4 findenv
+236d5 1 387 3036
+236d6 8 390 3036
+236de 12 394 3036
+236f0 d 399 3036
+236fd 9 390 3036
+23706 e 407 3036
+23714 1 408 3036
+23715 c 400 3036
+23721 1 408 3036
+FUNC 23722 5d 0 copy_environ
+23722 4 428 3036
+23726 2 429 3036
+23728 6 434 3036
+2372e 2 464 3036
+23730 7 438 3036
+23737 8 439 3036
+2373f 14 443 3036
+23753 8 444 3036
+2375b 6 448 3036
+23761 11 458 3036
+23772 4 448 3036
+23776 2 461 3036
+23778 5 463 3036
+2377d 2 464 3036
+FUNC 2377f 24c 8 __crtsetenv
+2377f 6 76 3036
+23785 2c 89 3036
+237b1 2 91 3036
+237b3 1c 98 3036
+237cf 5 114 3036
+237d4 13 125 3036
+237e7 c 126 3036
+237f3 4 130 3036
+237f7 d 153 3036
+23804 9 155 3036
+2380d b 100 3036
+23818 6 101 3036
+2381e 2 356 3036
+23820 3 164 3036
+23823 6 165 3036
+23829 f 171 3036
+23838 2 172 3036
+2383a 2 173 3036
+2383c 8 176 3036
+23844 f 178 3036
+23853 2 179 3036
+23855 2 180 3036
+23857 6 196 3036
+2385d 5 197 3036
+23862 2 200 3036
+23864 10 207 3036
+23874 9 210 3036
+2387d a 216 3036
+23887 6 218 3036
+2388d 5 235 3036
+23892 5 238 3036
+23897 5 241 3036
+2389c c 222 3036
+238a8 4 221 3036
+238ac 1d 230 3036
+238c9 2 233 3036
+238cb 9 245 3036
+238d4 4 250 3036
+238d8 2 251 3036
+238da 2f 255 3036
+23909 8 258 3036
+23911 3 259 3036
+23914 5 262 3036
+23919 5 264 3036
+2391e 21 287 3036
+2393f 25 289 3036
+23964 21 338 3036
+23985 4 339 3036
+23989 b 343 3036
+23994 7 346 3036
+2399b 5 349 3036
+239a0 8 351 3036
+239a8 6 352 3036
+239ae 8 355 3036
+239b6 8 271 3036
+239be 6 274 3036
+239c4 7 276 3036
+FUNC 239cb 50 4 _strdup
+239cb 1 66 901
+239cc b 70 901
+239d7 6 71 901
+239dd 9 73 901
+239e6 e 77 901
+239f4 1c 80 901
+23a10 4 81 901
+23a14 6 84 901
+23a1a 1 85 901
+FUNC 23a1b ba c _mbschr_l
+23a1b 7 53 4568
+23a22 b 55 4568
+23a2d 32 58 4568
+23a5f 8 60 4568
+23a67 d 61 4568
+23a74 a 65 4568
+23a7e 7 67 4568
+23a85 10 69 4568
+23a95 3 70 4568
+23a98 8 72 4568
+23aa0 d 63 4568
+23aad 8 76 4568
+23ab5 e 77 4568
+23ac3 10 79 4568
+23ad3 2 80 4568
+FUNC 23ad5 13 8 _mbschr
+23ad5 0 86 4568
+23ad5 12 87 4568
+23ae7 1 88 4568
+FUNC 23b00 be 8 strchr
+23b00 0 60 928
+23b00 2 68 928
+23b02 4 69 928
+23b06 1 73 928
+23b07 2 74 928
+23b09 3 75 928
+23b0c 4 76 928
+23b10 6 77 928
+23b16 2 78 928
+23b18 2 81 928
+23b1a 3 82 928
+23b1d 2 83 928
+23b1f 2 84 928
+23b21 2 85 928
+23b23 2 86 928
+23b25 6 87 928
+23b2b 2 88 928
+23b2d 2 91 928
+23b2f 1 92 928
+23b30 2 93 928
+23b32 3 94 928
+23b35 1 95 928
+23b36 2 96 928
+23b38 2 101 928
+23b3a 5 102 928
+23b3f 2 104 928
+23b41 2 105 928
+23b43 2 107 928
+23b45 2 108 928
+23b47 2 110 928
+23b49 3 111 928
+23b4c 3 113 928
+23b4f 2 114 928
+23b51 2 116 928
+23b53 3 117 928
+23b56 6 119 928
+23b5c 2 120 928
+23b5e 5 124 928
+23b63 2 125 928
+23b65 5 127 928
+23b6a 2 128 928
+23b6c 6 130 928
+23b72 2 131 928
+23b74 1 134 928
+23b75 1 135 928
+23b76 1 137 928
+23b77 2 138 928
+23b79 1 139 928
+23b7a 3 142 928
+23b7d 2 143 928
+23b7f 2 144 928
+23b81 2 145 928
+23b83 2 146 928
+23b85 2 147 928
+23b87 2 148 928
+23b89 2 149 928
+23b8b 2 150 928
+23b8d 3 151 928
+23b90 2 152 928
+23b92 2 153 928
+23b94 2 154 928
+23b96 2 155 928
+23b98 2 156 928
+23b9a 2 157 928
+23b9c 2 158 928
+23b9e 2 159 928
+23ba0 2 160 928
+23ba2 1 163 928
+23ba3 1 164 928
+23ba4 3 165 928
+23ba7 1 166 928
+23ba8 1 167 928
+23ba9 3 170 928
+23bac 1 171 928
+23bad 1 172 928
+23bae 1 173 928
+23baf 1 174 928
+23bb0 3 177 928
+23bb3 1 178 928
+23bb4 1 179 928
+23bb5 1 180 928
+23bb6 1 181 928
+23bb7 3 184 928
+23bba 1 185 928
+23bbb 1 186 928
+23bbc 1 187 928
+23bbd 1 188 928
+PUBLIC 23b06 0 __from_strstr_to_strchr
+FUNC 240b9 14 0 `operator new'::`6'::`dynamic atexit destructor for 'nomem''
+STACK WIN 4 41b0 86 13 0 8 0 e0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4240 41 3 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4290 18 4 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 42ae 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42af 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42c6 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42d1 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42d2 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 42f3 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4332 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4371 3f c 0 0 c 50 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 43b0 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 43b1 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 43c8 af c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4464 12 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 4477 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 448d 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44a3 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44b7 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44cd 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 44e1 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4506 16 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 451c f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 452b 62 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 452c 60 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 452d 5c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 454a 35 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 458d 42 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 458e 40 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 45cf da c 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 466c 15 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46a0 8 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46a9 53 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 46f2 9 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 46fc 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4705 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 470b b1 8 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4713 a8 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4785 33 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47bc 20 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47dc 3c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 47dd 3a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4818 2e 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4846 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 487c 2a 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48a6 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48bc 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48c1 30 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 48c6 2b 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 48f1 7 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48f8 7 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 48ff 7 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4906 52 8 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 490c 4c 2 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 4958 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 498e 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 49c4 36 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 49fa 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a14 30 1 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a15 2e 0 0 10 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4a44 d5 7 0 1c 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4a4b ce 0 0 1c 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 4b19 9d 5 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4b1e 98 0 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bb6 73 7 0 14 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4bbb 6c 2 0 14 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bbc 6a 1 0 14 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4bbd 68 0 0 14 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 4c29 28 5 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c2e 22 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c51 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c72 4c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4c73 4a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4cbe 5e 6 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d1c 4a b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d26 1b 1 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d27 16 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4d66 19 a 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4d67 17 9 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4d7f 6a 6 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 4de9 f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4df8 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e06 1c 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e07 18 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e22 f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e31 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e39 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e54 1c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e70 1f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e8f 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e93 b 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4e9e 5 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4ea3 11 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4eb4 4e 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4eb5 4a 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4eba 44 3 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4ebb 42 2 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f02 18 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f1a 58 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f1b 54 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f20 4e 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f34 37 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f72 56 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4f73 52 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f78 4c 3 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4f79 4a 2 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 4fc8 16 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4fde d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4feb 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 4fec 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5004 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5005 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 501c b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5027 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5028 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5040 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5041 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5058 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5063 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5064 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 507b 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 507c 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5093 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 509e 1c 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 509f 18 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50ba 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50bb 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50dc 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50dd 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50fe 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 50ff 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5120 7b 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5124 75 4 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5128 70 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 519b 5b 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51a2 52 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51a3 50 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 51f6 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5200 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 520a a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5214 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 521e a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5228 24 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 524c 41 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 528d 1b6 c 0 0 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5405 14 0 0 0 c 2c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 5443 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 544d a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5457 fc 1c 0 14 4 328 0 1 $T0 $ebp 680 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5553 22 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5554 20 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5575 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5582 9 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 558b 24 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55af 10 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 55bf 9 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55c8 96 7 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 55cf 8d 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 55fb 60 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 565e 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5678 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5694 1f 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 56b3 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 56cf 1d 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 56ec 20 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 570c 1d 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5729 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 573a 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 574b 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5761 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5777 14f c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 58bc 9 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 58c6 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 58e0 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 58fa 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5912 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 592c 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5944 f6 7 0 18 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 594b ed 0 0 18 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5973 c4 0 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5977 bf 0 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 5a3a 27 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5a61 28 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5a89 87 4 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5a8d 81 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5ab2 5b 0 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5b10 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5b2b 107 5 0 18 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5b30 100 0 0 18 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5b5b d4 0 0 18 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5b5f cf 0 0 18 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 5c32 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5c50 27 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5c77 28 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 5c9f 24 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5cc3 26 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5ce9 15 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5cfe 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d07 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d10 18 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d11 16 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d28 20 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d29 1e 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d48 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d4d 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d7f 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5d84 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dbb 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dc0 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5df7 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5dfc 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e33 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e38 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e6f 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5e74 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5ea6 37 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5eab 31 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5edd 92 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f1b 34 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f1c 32 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 5f6f e2 c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6039 11 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 6051 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6062 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6073 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6082 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6091 4c 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6092 4a 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 616b 33 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 619e 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 61d4 36 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 620a 39 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6243 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6257 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6266 f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6275 96 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6276 94 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 62ba 4a 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 62bb 46 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 630b 2f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6313 26 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 633a 82 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6341 78 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63bc e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63ca 3 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 63cd 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6400 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6404 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 6424 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6429 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 642a 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 646e d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 647b 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 648b e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6499 994 2c 0 10 0 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 64bb 945 a 0 10 4 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 64c2 93b 3 0 10 8 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 64c5 937 0 0 10 c 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 6e2d 3b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e68 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e7b 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e8e 1e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6e8f 1c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6eac 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ec7 2a 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ec8 28 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6ef1 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6f0c 2a 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6f0d 28 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fa0 24 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fd0 196 14 0 10 0 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 6fd4 d3 10 0 10 4 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 24 - ^ =
+STACK WIN 4 6fd9 cd b 0 10 8 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 6fda cb a 0 10 c 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 6fe4 c0 0 0 10 10 14 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 28 - ^ = $ebx $T0 24 - ^ =
+STACK WIN 4 7166 90 c 0 10 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 71eb a 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 71f6 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7210 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 722a 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7244 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 725c 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7274 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 728c 104 9 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7390 5c6 22 0 c 0 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 73b2 597 0 0 c 4 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 73fe 542 0 0 c 8 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1436 - ^ =
+STACK WIN 4 740c 533 0 0 c c 594 0 1 $T0 $ebp 1304 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1436 - ^ =
+STACK WIN 4 7956 dc c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7a28 9 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7a32 2d 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a37 27 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7a5f e1 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7b36 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7b40 49 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b41 3b 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b42 39 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b89 55 8 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7b8a 53 7 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7b91 4b 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7b97 2a 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 7bde 15 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7bf3 18 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7c0b c3 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cc5 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7cce 31 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cd5 28 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7cff 240 c 0 0 c 64 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 7f28 4 0 0 0 c 64 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 7f3f 4c 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f40 4a 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f41 48 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f8b 21 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7f8c 1f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fac 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbc 40 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbd 3e 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7fbe 3c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffc 48 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffd 46 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 7ffe 44 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8044 4b 2 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8045 49 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8046 47 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 808f 50 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8090 4e 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8091 4c 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80df 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80e7 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80f1 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 80fb 8e c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8151 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8189 9f c 0 0 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 821f 8 0 0 0 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8228 19 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8229 15 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8241 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 824c 22 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 824d 1e 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 826e 5c 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 826f 5a 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8270 58 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 82ca 44 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 830e e1 c 0 10 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8390 a 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 83ce 20 0 0 10 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 83ef 45 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8434 54 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8477 9 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8488 25 7 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 848f 1d 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84ad 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c0 b3 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c7 9a 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 84c8 98 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8573 4c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85bf 139 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85c0 137 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 85cf 127 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 85d0 11f 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 85d1 11d 0 0 8 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 86f8 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 86fc 32 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8714 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 872e 33 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8747 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8761 32 c 0 8 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8779 a 0 0 8 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8793 3b c 0 14 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 87b4 a 0 0 14 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 87ce 79 6 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 87f0 52 0 0 4 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 87f1 50 0 0 4 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 8847 49 c 0 4 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8890 30 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8891 2a 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 8892 28 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 88c0 82 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 88c1 7b 7 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 88c8 73 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 8942 19c 14 0 18 c 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 89d2 9 0 0 18 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8a62 7b 0 0 18 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8ade 17f c 0 10 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8c49 4 0 0 10 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8c5d 91 c 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8ce2 4 0 0 10 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 8cee 143 9 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8cfe 131 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8d02 12c 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8d05 128 0 0 10 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 8e31 6c 3 0 1c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8e9d f2 6 0 20 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8ea3 ea 0 0 20 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8eb3 d9 0 0 20 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8f31 5a 0 0 20 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 8f8f 356 17 0 20 0 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 8f99 34a d 0 20 4 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 8fa5 33d 1 0 20 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 8fa6 33b 0 0 20 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 92e5 18 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 92e6 14 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 92fd e4 6 0 20 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9301 de 2 0 20 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 9302 dc 1 0 20 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 9303 da 0 0 20 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 93e1 6c 7 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 93e7 64 1 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 93e8 62 0 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 9408 41 0 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 944d 6e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 944e 6c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94bb 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94c4 6e 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 94c5 6c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9532 9 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 953b 15 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9550 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9556 32 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9557 30 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9588 19 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 95a1 3d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 95de bf c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9694 8 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 969d 77 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 969e 75 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 969f 71 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9714 18 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9715 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 972c 121 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9835 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9841 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 984d 69 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9857 4b 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9860 25 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98b6 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98bc 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98c2 184 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98c3 182 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 98de 166 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9a46 39 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9a66 4 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9a7f 13 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9a92 37 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ab6 4 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9ac9 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9b2c b9 5 0 4 0 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9b2e b5 3 0 4 4 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 9b2f b3 2 0 4 8 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9b30 b1 1 0 4 c 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9b31 af 0 0 4 10 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9be5 2f 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9be6 2d 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9c14 3c c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9c4a 5 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9c50 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9c62 4f c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ca8 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9cb1 75 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9cf9 2c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9d26 c3 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9d27 c1 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 9d35 9c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9d3c 94 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9d3d 90 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 9de9 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9df3 31 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9df4 2f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e24 9 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e2d d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e3a 22 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 9e5c 22 3 0 18 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9e7e 70 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9ee5 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9eee f5 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 9fd7 b 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 9fe3 70 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a04a 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a053 31 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a084 eb c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a163 b 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a16f 53 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 a1b9 8 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 a258 65 b 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 a25d 5f 6 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 a262 59 1 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 a263 57 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 aa15 3d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa52 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa60 1a0 8 0 4 0 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aa62 19c 6 0 4 4 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa67 196 1 0 4 8 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa68 194 0 0 4 c 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 aa85 176 0 0 4 10 4 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 20 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 ac00 20 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac20 39 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac59 1 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac5a 32 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac65 1c 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ac8c 15e 6 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ac92 156 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 acaa 13d 0 0 8 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 acb0 136 0 0 8 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 adea 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ae05 db b 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ae06 c3 a 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae0f b9 1 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae10 b7 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ae5f 67 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 aee0 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 aeea 198 e 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 aef2 187 6 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 aef8 180 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 b082 b9 11 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b089 b0 a 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b092 a6 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b093 a4 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 b13b 135 b 0 0 0 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b143 12a 3 0 0 4 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 b144 128 2 0 0 8 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b145 126 1 0 0 c 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b146 124 0 0 0 10 8 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 16 - ^ = $ebx $T0 12 - ^ =
+STACK WIN 4 b270 24 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b271 22 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b272 20 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b294 24 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b295 22 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b296 20 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b2b8 5b 6 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b2be 43 0 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b313 5a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b36d 74 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b36e 72 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 b37a 53 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b381 4b 0 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b38c 30 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 b3e1 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b3e7 94 15 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b3fb 7e 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b3fc 7c 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b418 5f 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 b47b 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b483 160 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b488 159 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b4c5 11b 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 b52c b3 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 b5e3 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b608 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b60c 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b62d 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 b632 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 b633 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 b67c 910 30 0 10 0 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 b69e 8c1 e 0 10 4 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 b6a5 8b7 7 0 10 8 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 b6ac 8af 0 0 10 c 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 bf8c 97 7 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 bf93 8e 0 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 bfbf 61 0 0 10 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 c023 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c03a 5 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c03f 55 7 0 10 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c046 4c 0 0 10 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c094 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0ac 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0c6 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0de 1a 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c0f8 14e c 0 14 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c23c 9 0 0 14 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 c246 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c264 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c282 1e 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2a0 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2bc 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2d8 1c 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c2f4 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c319 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c31d 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c33e 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 c343 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 c344 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 c38d 91c 2c 0 10 0 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 c3a9 8d3 10 0 10 4 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 c3b0 8c9 9 0 10 8 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 c3b9 8bf 0 0 10 c 474 0 1 $T0 $ebp 1012 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1144 - ^ =
+STACK WIN 4 cca9 154 9 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ccb1 14a 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ccb2 148 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 cdfd 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ce22 25 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ce26 1f 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ce47 4f a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ce4c 49 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ce4d 47 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ce96 f60 2a 0 10 0 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ceb8 f0f 8 0 10 4 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 ceb9 f0b 7 0 10 8 ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 cec0 f03 0 0 10 c ad4 0 1 $T0 $ebp 1160 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2776 - ^ =
+STACK WIN 4 ddf6 1f 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddf7 1d 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ddf8 1b 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de20 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de50 42 18 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 de5e 33 a 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 de5f 31 9 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 de68 27 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 dea0 bb 33 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 deba a1 19 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 df29 14 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 df5b 19 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 df74 9b c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 dfed 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e00f 34 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e01a 1d 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e043 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e050 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e059 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e062 23d c 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e257 b 0 0 8 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e29f 1b0 c 0 4 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e40d 14 0 0 4 c 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e44f a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e459 104 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e45a 102 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e45b 100 1 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e45c fe 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
+STACK WIN 4 e495 c4 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $ebx $T0 16 - ^ =
+STACK WIN 4 e55d 15a 24 0 14 0 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e576 bc b 0 14 4 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e577 b8 a 0 14 8 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e581 ad 0 0 14 c 94 0 1 $T0 $ebp 100 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 152 - ^ =
+STACK WIN 4 e6b7 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6c1 a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6cb 10 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e6db c5 c 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e761 17 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 e7a0 5e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e7b8 45 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e7fe 2f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e82d 55 b 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 e82e 53 a 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 e82f 51 9 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e830 4f 8 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e831 4d 7 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 e882 18a 1d 0 0 0 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 e89e 161 1 0 0 4 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1312 - ^ =
+STACK WIN 4 e89f 15d 0 0 0 8 51c 0 1 $T0 $ebp 1180 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 1312 - ^ =
+STACK WIN 4 ea0c a4 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eaa4 b 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 eab0 7a 7 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eab7 71 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 eb2a 1d9 19 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eb3b 1c1 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 eb3f 1ba 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 eb43 1b5 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 ed03 3c 6 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 ed3f 19a c 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 eea0 8 0 0 4 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 eed9 1e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 eef7 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 eefd 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ef03 140 12 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 ef04 13e 11 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 ef05 13c 10 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 ef06 13a f 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 ef15 12a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f043 86 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f044 84 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f045 82 6 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f046 80 5 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f04b 7a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 f0c9 8c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f0ca 8a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f0d3 7e 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 f0d4 7c 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 f0d5 7a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 12 - ^ = $ebx $T0 8 - ^ =
+STACK WIN 4 f155 24 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f156 22 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f165 12 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f179 3e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f182 31 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f1b7 76 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f221 8 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f22d 66 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f22e 64 1 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f22f 62 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f293 53 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f2e6 96 c 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f370 b 0 0 4 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f37c 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f381 88 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f3fd b 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 f409 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f40e 3 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f411 3e 2 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f412 3c 1 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f413 3a 0 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f41e 2e 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 f44f 129 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f453 123 2 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f454 121 1 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f455 11f 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f578 6b 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f57c 4d 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f57d 4b 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 f5e3 171 4 0 0 0 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 f5e7 169 0 0 0 4 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 20 - ^ =
+STACK WIN 4 f606 149 0 0 0 8 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 24 - ^ = $ebx $T0 20 - ^ =
+STACK WIN 4 f607 141 0 0 0 c 10 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 24 - ^ = $ebx $T0 20 - ^ =
+STACK WIN 4 f754 1d4 1e 0 18 0 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f76d 1b1 5 0 18 4 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f76e 1ad 4 0 18 8 b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f772 1a8 0 0 18 c b4 0 1 $T0 $ebp 96 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 184 - ^ =
+STACK WIN 4 f928 2f6 17 0 4 0 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 f93e 2d6 1 0 4 4 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 456 - ^ =
+STACK WIN 4 f93f 2d2 0 0 4 8 1c4 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 456 - ^ =
+STACK WIN 4 fc1e 1ce 18 0 4 0 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 fc37 1ab 0 0 4 4 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fc38 1a7 0 0 4 8 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fc3f 19f 0 0 4 c 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 fdec f3 7 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fdf2 2c 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fdf3 2a 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fedf 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 fee4 170 c 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1000a 10 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1001b b 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1004c 7 0 0 8 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 10054 15f 10 0 14 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1005b a1 9 0 14 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1005c b2 8 0 14 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 10064 96 0 0 14 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 101b3 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 101ce 4f 6 0 c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1021d 30 4 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1024d 36 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 10283 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10291 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102a7 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102b8 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102cb e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102d9 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102ec e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 102fa 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1030d e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1031b 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10331 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10342 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10355 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10363 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10376 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10384 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1039a 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103ab 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103c1 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103d2 16 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103e8 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 103f9 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1040c e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1041a c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10426 26 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1044c 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1046d 26 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10493 21 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 106ab 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 106de 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 106e2 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 10702 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 10707 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 10708 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1074c 9b0 2c 0 10 0 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1076e 960 a 0 10 4 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 10775 956 3 0 10 8 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 10778 952 0 0 10 c 278 0 1 $T0 $ebp 504 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 636 - ^ =
+STACK WIN 4 110fc 129 8 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11103 120 1 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11104 11e 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 11225 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 11258 24 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1125c 1e 2 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1127c 4a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 11281 44 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 11282 42 4 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 112c6 10 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 112d6 f88 2a 0 10 0 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 112f8 f39 8 0 10 4 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 112f9 f35 7 0 10 8 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 11300 f2d 0 0 10 c 8d0 0 1 $T0 $ebp 656 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 2260 - ^ =
+STACK WIN 4 1225e c2 11 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1226f 9e 0 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12320 9b c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 123b2 8 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 123bb 46 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 123f8 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12401 113 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12408 21 1 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 12409 1f 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 12514 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1252b 83 13 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12534 78 a 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1253e 6d 0 0 10 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 125ae 119 c 0 10 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 126bd 9 0 0 10 c 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 126c7 7d 8 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126ce 75 1 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126cf 73 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 126fd 2c 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 12744 81 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12749 7b 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1274e 75 1 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1274f 73 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 127c5 71 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 127e6 4f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12836 a0 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 128c8 d 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 128d6 22 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 128f8 19f c 0 0 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 129c5 e 0 0 0 c 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12a8e 8 0 0 0 c 28 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12a97 115 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12b7f 2c 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12bac 11e c 0 c c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12ca3 d 0 0 c c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12cca 3f 9 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12cd3 34 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12cec 18 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12d09 21b c 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12e47 e 0 0 8 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 12f24 79 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 12f2b 70 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f61 39 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f62 37 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 12f9d 21 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12fbe 46 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 12fc9 3a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13004 3c 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13009 36 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13040 48 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13088 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 130b3 314 11 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130c0 305 4 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130c4 300 0 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 130f1 2d2 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 133c7 b0 d 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 133cd a9 7 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 133d4 a1 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13477 106 11 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13483 f8 5 0 4 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 13484 f6 4 0 4 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 13488 f1 0 0 4 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1357d 2df 12 0 c 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1358a 2d0 5 0 c 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1358b 2ce 4 0 c 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1358f 2c9 0 0 c c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 1385c cd 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13929 2e2 f 0 0 0 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13938 294 0 0 0 4 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 1394d 27e 0 0 0 8 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 13950 27a 0 0 0 c 138 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 316 - ^ =
+STACK WIN 4 13c0b a8 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13c0c a6 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13c54 5d 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13cb3 2e3 2a 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 13cd7 2bd 6 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13cdc 2b7 1 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13cdd 2b5 0 0 4 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 13f96 72 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 13f97 70 6 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 13f98 6e 5 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 13f9d 68 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 14008 7c c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14079 a 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 14084 d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14091 d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1409e d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 140ab f3 23 0 0 4 328 0 1 $T0 $ebp 680 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1419e 1e 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 142f3 a3 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14385 10 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 14396 6 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1439c 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143b7 26 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143b8 24 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 143dd 63 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14440 474 a 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14447 42e 3 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 14448 42c 2 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 14449 42a 1 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1444a 428 0 0 0 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 148b4 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148bf d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148cc e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148da e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148e8 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 148f6 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14904 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14916 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14924 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14932 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14940 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1494b b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14956 b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14961 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1496f b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1497a e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14988 19 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a1 84 13 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a2 80 12 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149a3 7e 11 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 149c9 57 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 12 - ^ =
+STACK WIN 4 14a25 d 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a32 12 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a44 9c 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14a57 86 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ae0 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14aea 5 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14aef 7 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14af6 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b00 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b08 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b12 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b1c 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b24 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b2e 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b36 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b40 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b48 a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b52 8 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b5a 7b 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14b5d 75 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14bd5 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14bde 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c03 d 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c10 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c14 29 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c26 f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c3d 16 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c53 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c57 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c5b 1b 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c76 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14c7a 2f 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ca9 25 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cce 4 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cd2 d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14cdf e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ced 20 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14d0d 25 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14d32 33 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14d65 34 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14d99 13 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14dac 56 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14db2 4d 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e02 61 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e03 5d a 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e04 59 9 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e63 17 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e7a 15 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14e8f 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ea3 e 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eb1 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ec5 25 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ec6 23 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14ed2 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eea 38 2 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eeb 36 1 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14eec 32 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14f22 91 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f26 89 3 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f27 87 2 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 14f5c 40 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 14fb3 35 2 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fb6 2f 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fe8 81 b 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fe9 7d a 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 14fea 79 9 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15069 1e 3 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1506a 1c 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15087 47 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15088 43 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 150ce 47 7 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 150cf 45 6 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 150d0 43 5 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 150d1 41 4 0 0 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 15115 65 11 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15116 61 10 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1511b 5b b 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1511c 57 a 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1517a 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1518c 31 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151bd f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151cc f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151db 1d 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 151f8 33 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1522b 73 7 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1522f 6b 3 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15230 5b 2 0 14 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1529e 2f 3 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 152cd f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152dc 79 4 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152dd 75 3 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 152de 71 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15355 68 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15356 64 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153bd a6 3 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153be a2 2 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 153de 81 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 153f0 6e 0 0 8 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 15463 26 3 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15464 22 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15489 31 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1548e 29 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 154ba d0 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 154be b3 3 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 154bf b1 2 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 154ce 9f 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1558a 69 13 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1559b 4f 2 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1559c 4b 1 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1559d 49 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 155f3 96 22 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15607 79 e 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15615 66 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1563a 29 0 0 8 c 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 15689 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1568a 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b7 62 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b8 5e 7 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 156b9 5a 6 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15719 8b a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1571a 87 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1571b 83 8 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157a4 1c 9 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157a5 18 8 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157c0 2a 7 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157c5 22 2 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 157ea a6 5 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15890 37 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 158c7 51 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 158c8 4d 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15918 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15919 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15946 6a a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15947 66 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1594e 5e 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 159b0 6c a 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 159b1 68 9 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 159b2 64 8 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15a1c e0 e 0 4 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a23 d7 7 0 4 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a2a cd 0 0 4 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15a45 b1 0 0 4 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 15afc 4f 6 0 8 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b02 47 0 0 8 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b4b 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b6d 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15b8f 22 5 0 c 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15bb1 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15bb2 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15bdf 2e 1 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15be0 2a 0 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 15c0d 141 7 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15c14 138 0 0 8 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15c95 b3 0 0 8 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 15c96 b1 0 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 15d4e d4 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15e22 c4 e 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15ee6 7e d 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15f64 125 11 0 10 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 15f75 112 0 0 10 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16089 15f f 0 8 0 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16098 4a 0 0 8 4 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 160f0 b3 0 0 8 8 28 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 161e8 31 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16219 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1622b 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1623d 12 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1624f 150 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16256 147 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1639f a0 6 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1643f 50 5 0 4 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1648f 2bb 2b 0 4 0 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 164aa 296 10 0 4 4 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 164b3 28a 7 0 4 8 d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 164ba 282 0 0 4 c d0 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 1674a d9 b 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 167b8 17 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16823 14 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 16837 1b8 18 0 4 0 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16848 1a0 7 0 4 4 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1684f 18d 0 0 4 8 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16870 168 0 0 4 c 60 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 108 - ^ =
+STACK WIN 4 169ef 56f 22 0 c 0 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16a03 97 e 0 c 4 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 164 - ^ =
+STACK WIN 4 16a11 88 0 0 c 8 a0 0 1 $T0 $ebp 108 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 164 - ^ =
+STACK WIN 4 16f5e 153 10 0 8 0 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 16f82 11b 0 0 8 4 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 16f89 113 0 0 8 8 d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 16f92 109 0 0 8 c d0 0 1 $T0 $ebp 112 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 212 - ^ =
+STACK WIN 4 170b1 1ea 1b 0 8 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 170cc 1c8 0 0 8 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17154 111 0 0 8 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 17155 10f 0 0 8 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 64 - ^ =
+STACK WIN 4 1729b e4 15 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 172a2 db e 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 172b0 ca 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1737f f 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1738e 100 19 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1739a f2 d 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 173a7 e4 0 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1748e 46 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 174d4 92 6 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17566 b42 14 0 8 0 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 17571 b35 9 0 8 4 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1757a b2b 0 0 8 8 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 175e3 abe 0 0 8 c 6c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 120 - ^ =
+STACK WIN 4 180a8 211 13 0 4 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 180af 208 c 0 4 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 180bb 1fb 0 0 4 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 182b9 28b 1f 0 4 0 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 182c5 27a 13 0 4 4 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 182c6 278 12 0 4 8 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 182d8 263 0 0 4 c 98 0 1 $T0 $ebp 116 + = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 156 - ^ =
+STACK WIN 4 18544 341 d 0 8 0 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18589 2f7 0 0 8 4 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 185f0 28f 0 0 8 8 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 185f1 28d 0 0 8 c 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 52 - ^ =
+STACK WIN 4 18885 4e4 18 0 14 0 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18893 4d4 a 0 14 4 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 18894 4d2 9 0 14 8 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 1889d 4c8 0 0 14 c 54 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 88 - ^ =
+STACK WIN 4 18d69 14c 6 0 0 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18eb5 116 5 0 10 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18ed6 59 0 0 10 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 18fcb 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 18fe6 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19001 1b 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1901c a3 f 0 18 c 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 190b6 8 0 0 18 c 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 190bf a3 f 0 1c c 94 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19159 8 0 0 1c c 94 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 19162 387 12 0 8 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19172 350 2 0 8 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 19173 34e 1 0 8 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 19174 34c 0 0 8 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 194e9 13e 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 194f0 135 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19627 b1 6 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 196d8 64 7 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 196df 5b 0 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1973c 57 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19793 8f 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19822 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19836 14 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1984a 87 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 198d1 e3 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 199b4 1bd 9 0 c 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 199bb 1b4 2 0 c 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 199bc 1b2 1 0 c 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 199bd 1b0 0 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 19b71 71 b 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19b76 6b 6 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19b7b 65 1 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19b7c 63 0 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 19be2 b3 e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19be6 1a a 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19be7 2e 9 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19bf0 e 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 19c95 46 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19c9a 40 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19cdb a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ce5 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ceb 51 6 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19d3c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d51 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d64 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d79 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19d8c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19da1 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19db4 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19dcc 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19de2 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19dfa 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e10 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e28 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e3e 18 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e56 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e6c 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e81 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19e94 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ea9 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ebc 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ed1 13 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19ee4 53 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19f37 e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19f45 44 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 19f89 1de 1a 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 19f9a 1c6 9 0 8 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 19f9b 1c2 8 0 8 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 19fa3 1b9 0 0 8 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1a167 78 c 0 8 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a1d5 9 0 0 8 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 1a1df 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a1e4 1f7 8 0 14 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a1eb 1ee 1 0 14 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a1ec 1ec 0 0 14 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a246 174 0 0 14 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1a3db 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a404 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a41f 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a449 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a464 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a46d 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a4c1 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a4ec 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a53b 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a564 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a5b3 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a5dc 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a62b 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a654 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a6a8 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a6d3 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a722 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a74b 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a79a 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a7c3 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a817 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a842 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a896 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a8c1 54 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a915 2b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a940 4f 6 0 8 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1a98f 29 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9b8 d 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9c5 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9cd 1f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1a9ec 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa06 1f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa25 1c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa41 12 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa53 1b 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1aa6e 13b 1d 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1aa83 126 8 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1aba9 3b 6 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1abe4 13d 1d 0 18 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1abf9 128 8 0 18 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1ad21 3b 6 0 18 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ad5c 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1ad76 3a2 1d 0 20 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ad87 391 c 0 20 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 1b118 43 6 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b15b 1b8 1d 0 1c 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b170 1a3 8 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 1b313 40 6 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b353 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b359 29 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b382 419 6 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1b3a4 3f5 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1b3a5 3ed 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1b79b 190 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b79c 18e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b92b 73 4 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b92c 71 3 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92d 6f 2 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92e 6d 1 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b92f 6b 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1b99e 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b9a5 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b9a6 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1b9d1 40 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1b9d2 3e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1ba11 1c8 11 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1ba18 1bf a 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1ba1c 1ba 6 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1ba22 1b3 0 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1bbd9 33 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bbe0 16 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1bbe1 14 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1bc0c 89 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bc0d 87 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1bc95 2c4 c 0 4 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1bc9c 2bb 5 0 4 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bc9d 2b9 4 0 4 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bca1 2b4 0 0 4 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 1bf59 395 1b 0 4 0 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1bf6a 37d a 0 4 4 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1bf6d 377 7 0 4 8 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1bf74 36f 0 0 4 c 48 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 76 - ^ =
+STACK WIN 4 1c2ee 29 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c317 16 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c32d 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c353 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c379 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c39f 3 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c3a2 fe 9 0 4 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c3a9 e9 2 0 4 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c3aa e7 1 0 4 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c3ab e5 0 0 4 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 1c4a0 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c4a9 fe 9 0 4 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c4b0 e9 2 0 4 4 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c4b1 e7 1 0 4 8 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c4b2 e5 0 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 1c5a7 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c5b0 355 9 0 4 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c5b7 34c 2 0 4 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c5b8 348 1 0 4 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c5b9 346 0 0 4 c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 40 - ^ =
+STACK WIN 4 1c905 9 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c90e 20 6 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c912 1b 2 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c917 15 0 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c92e 36 6 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1c934 2f 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1c964 79 8 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c969 72 3 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c96a 70 2 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9dd 3e6 11 0 10 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1c9e2 3df c 0 10 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9e9 3d7 5 0 10 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1c9ea 3d5 4 0 10 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 1cdc3 45d 1d 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1cdd7 449 9 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d220 1af a 0 18 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d22a 1a3 0 0 18 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d270 15c 0 0 18 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d2a3 128 0 0 18 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 36 - ^ =
+STACK WIN 4 1d3cf 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d3ed 1d 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d40a 1e 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d428 26 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d496 60 6 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d49c 56 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4a5 45 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4a6 43 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 1d4f6 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d50a 77 11 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d51b 5f 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d581 1e 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d59f 32 1 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5a0 30 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5d1 1b 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d5ec 96 12 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d5fd 7c 1 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d5fe 78 0 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d682 72 11 0 8 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d693 5a 0 0 8 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d6cf 13 0 0 8 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d6f4 1d0 13 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d705 1b6 2 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d706 1b2 1 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d707 1b0 0 0 4 c 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 128 - ^ =
+STACK WIN 4 1d8c4 bf 12 0 4 0 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d8d5 a5 1 0 4 4 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d8d6 a1 0 0 4 8 7c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1d983 2c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1d9af 65 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da14 3c 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da50 1e3 4 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1da51 1e1 3 0 c 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 1da52 1df 2 0 c 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1da53 1dd 1 0 c c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1da54 1db 0 0 c 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 1dc33 12 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc45 18 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc5d 40 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dc9d 78 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd15 1490 4 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd16 83f 3 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1dd17 83d 2 0 0 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 1f1a5 1680 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1a9 15f8 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1aa 15f6 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 1f1db 86c 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 20825 be 9 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2082e a9 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 20840 96 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 20930 82 6 0 c 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 209b2 6e 4 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a20 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20a25 22b 8 0 14 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a2c 222 1 0 14 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a2d 220 0 0 14 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20a8b 1c1 0 0 14 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 32 - ^ =
+STACK WIN 4 20c50 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20c79 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20c94 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20cbe 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20cd9 1f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20cf8 1f 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d17 2d 9 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d20 23 0 0 0 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d44 94 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d45 92 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20d4a 8c 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20dd8 cd c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20e9b 9 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 20ea5 2c 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20ea6 2a 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20ed1 2a 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20efb 22 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20efc 20 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f1d d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f64 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f75 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f8a 5 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f8f 5 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20f94 11 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20fa5 15 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 20fba 50 c 0 0 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 20fd7 1c 0 0 0 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 2100a 60 9 0 0 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21013 57 0 0 0 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2106a d 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21077 170 5 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2107c 169 0 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 210e1 103 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21125 be 0 0 8 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 211e7 182 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21369 b6 7 0 c 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21370 ad 0 0 c 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 2141f 2f 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2147c 47 10 0 4 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 214c3 1b2 2a 0 18 8 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 214e0 195 d 0 18 c 34 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 56 - ^ =
+STACK WIN 4 21675 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 2167a 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216a9 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216ae 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216dd 34 5 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 216e2 2e 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21711 a2 c 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21718 99 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 2171d 93 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 2172b 84 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 217b3 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217b9 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217bf 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217c5 6 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217cb c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217d7 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217e3 c 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 217ef 349 c 0 0 c 3c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21a99 d 0 0 0 c 3c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21b38 1f5 14 0 24 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21b47 1e4 5 0 24 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21b48 1e2 4 0 24 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21b49 1e0 3 0 24 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 21d2d 1ae 5 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21d32 15f 0 0 0 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21d62 12e 0 0 0 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 21edb 4f c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f21 8 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21f2a 38 c 0 0 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f59 8 0 0 0 c 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21f62 41 c 0 4 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21f9a 8 0 0 4 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 21fa3 35 a 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fa8 2f 5 0 8 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fad 27 0 0 8 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 21fd8 d3 7 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 21fdf ca 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22020 88 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22068 33 0 0 c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 220ab 50 4 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 220af 4a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 220fb f0 e 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22102 e7 7 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22108 e0 1 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 22109 de 0 0 10 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 221eb 5c 4 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 221ef 56 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22247 db 8 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2224c d2 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2224d d0 2 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 22277 a5 0 0 c c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 22322 28 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2234a 25 3 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2236f 18 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22387 f6 c 0 14 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2238e eb 5 0 14 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 22393 e5 0 0 14 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 16 - ^ =
+STACK WIN 4 2247d 33 3 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22498 16 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224b0 1d 4 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224b4 17 0 0 14 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224cd 224 17 0 1c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 224e2 20f 2 0 1c c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 226f1 3e 6 0 1c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2272f 294 8 0 14 0 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22736 28b 1 0 14 4 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 22737 289 0 0 14 8 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 22793 1f9 0 0 14 c 38 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 60 - ^ =
+STACK WIN 4 229c3 29 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 229ec 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a07 2a 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22a31 1b 0 0 10 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a7b 81 8 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a83 70 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22a92 60 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 22a93 5e 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 8 - ^ =
+STACK WIN 4 22afc 93 7 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b00 8d 3 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b01 8b 2 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b40 4b 0 0 c c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 4 - ^ =
+STACK WIN 4 22b8f a2 6 0 8 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b94 9b 1 0 8 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22b95 99 0 0 8 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22c31 83 c 0 4 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22cab 8 0 0 4 c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22cb4 d8 c 0 10 c 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22d83 8 0 0 10 c 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22d8c e6 c 0 c c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22e69 8 0 0 c c 20 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = $L $T0 .cbSavedRegs - = $P $T1 4 + .cbParams + =
+STACK WIN 4 22e72 8 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 22e7a 117 8 0 8 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 22e81 10e 1 0 8 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 22e82 10c 0 0 8 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 28 - ^ =
+STACK WIN 4 22f91 27 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23021 ec 7 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23028 e3 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23088 82 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2310d 17 0 0 c 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23124 95 a 0 0 0 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2312a 7d 4 0 0 4 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2312b 7b 3 0 0 8 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 2312e 77 0 0 0 c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 12 - ^ =
+STACK WIN 4 231b9 1a 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 231d3 1a 0 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 231ed 389 16 0 18 8 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23201 375 2 0 18 c 2c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 48 - ^ =
+STACK WIN 4 23576 40 6 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 235b6 f8 7 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 235bd ef 0 0 10 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 2361d 8e 0 0 10 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 236ae 27 3 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 236d5 4d 1 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 236d6 48 0 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 23722 5d 4 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 2373e 3f 0 0 0 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2373f 3d 0 0 0 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 8 - ^ =
+STACK WIN 4 2377f 24c f 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23789 95 5 0 8 4 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 2378e 8f 0 0 8 8 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 237b1 6b 0 0 8 c 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 24 - ^ =
+STACK WIN 4 239cb 50 6 0 4 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 239cc 4e 5 0 4 4 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebx $T0 4 - ^ =
+STACK WIN 4 239d1 48 0 0 4 8 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 239dc 3c 0 0 4 c 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 239dd 3a 0 0 4 10 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 8 - ^ = $ebx $T0 4 - ^ =
+STACK WIN 4 23a1b ba 7 0 c 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + =
+STACK WIN 4 23a22 b1 0 0 c 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23a5f 73 0 0 c 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = $L $T0 .cbSavedRegs - = $P $T0 8 + .cbParams + = $ebx $T0 20 - ^ =
+STACK WIN 4 23ad5 13 0 0 8 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 4 240b9 14 0 0 0 0 0 0 1 $T2 $esp .cbLocals + .cbSavedRegs + = $T0 .raSearchStart = $eip $T0 ^ = $esp $T0 4 + =
+STACK WIN 0 1000 13 0 0 4 0 0 0 0 0
+STACK WIN 0 1020 1b 0 0 10 0 0 0 0 0
+STACK WIN 0 1040 1b 0 0 10 0 0 0 0 0
+STACK WIN 0 1060 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1080 b 0 0 0 0 0 0 0 0
+STACK WIN 0 1090 24 3 0 4 0 0 0 0 0
+STACK WIN 0 10c0 f 0 0 8 0 0 0 0 0
+STACK WIN 0 10d0 17 0 0 4 0 0 0 0 0
+STACK WIN 0 10f0 27 9 0 10 0 0 0 0 0
+STACK WIN 0 1120 27 9 0 10 0 0 0 0 0
+STACK WIN 0 1150 d 0 0 8 0 0 0 0 0
+STACK WIN 0 1160 13 0 0 4 0 0 0 0 0
+STACK WIN 0 1180 21 d 0 10 0 0 0 0 0
+STACK WIN 0 11b0 21 d 0 10 0 0 0 0 0
+STACK WIN 0 11e0 7 0 0 0 0 0 0 0 0
+STACK WIN 0 11f0 6b 28 0 4 8 10 0 0 0
+STACK WIN 0 1260 32 3 0 0 0 0 0 0 0
+STACK WIN 0 12a0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 12b0 47 3 0 4 0 0 0 0 0
+STACK WIN 0 1300 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1320 32 3 0 0 0 0 0 0 0
+STACK WIN 0 1360 47 3 0 4 0 0 0 0 0
+STACK WIN 0 13b0 19 8 0 4 0 0 0 0 0
+STACK WIN 0 13d0 32 3 0 0 0 0 0 0 0
+STACK WIN 0 1410 47 3 0 4 0 0 0 0 0
+STACK WIN 0 1460 19 8 0 4 0 0 0 0 0
+STACK WIN 0 1480 71 29 0 4 c 10 0 0 0
+STACK WIN 0 1500 1b 0 0 8 0 0 0 0 0
+STACK WIN 0 1520 35 4 0 0 0 0 0 0 0
+STACK WIN 0 1560 20b 2d 0 14 14 14 0 0 1
+STACK WIN 0 19f0 31 0 0 0 0 0 0 0 0
+STACK WIN 0 1a30 51 d 0 4 c 0 0 0 0
+STACK WIN 0 1a90 c7 7 0 4 10 8 0 0 1
+STACK WIN 0 1b60 36 0 0 0 0 0 0 0 0
+STACK WIN 0 1ba0 3 0 0 0 0 0 0 0 0
+STACK WIN 0 1db0 81 2 0 8 0 0 0 0 0
+STACK WIN 0 1e40 1d 7 0 0 0 0 0 0 0
+STACK WIN 0 1e60 a2 3a 0 4 10 c4 0 0 0
+STACK WIN 0 1f10 142 c 0 c 0 38 0 0 1
+STACK WIN 0 2060 138 38 0 0 8 244 0 0 0
+STACK WIN 0 21a0 3b 7 0 4 0 0 0 0 0
+STACK WIN 0 21e0 25 5 0 4 0 0 0 0 0
+STACK WIN 0 2210 26 3 0 0 0 0 0 0 0
+STACK WIN 0 2240 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2250 4 0 0 0 0 0 0 0 0
+STACK WIN 0 2260 11 0 0 0 0 0 0 0 0
+STACK WIN 0 2280 27 3 0 0 0 0 0 0 0
+STACK WIN 0 22b0 b 0 0 0 0 0 0 0 0
+STACK WIN 0 22c0 24 3 0 4 0 0 0 0 0
+STACK WIN 0 22f0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2300 c 0 0 0 0 0 0 0 0
+STACK WIN 0 2310 26 0 0 0 0 0 0 0 0
+STACK WIN 0 2340 1d 1 0 0 0 0 0 0 0
+STACK WIN 0 2360 1d 1 0 0 0 0 0 0 0
+STACK WIN 0 2380 13 0 0 0 0 0 0 0 0
+STACK WIN 0 23a0 23 0 0 0 0 0 0 0 0
+STACK WIN 0 23d0 56 5 0 0 8 c 0 0 0
+STACK WIN 0 2430 47 c 0 0 c 8 0 0 0
+STACK WIN 0 24f0 23 1 0 0 0 4 0 0 0
+STACK WIN 0 2520 3f b 0 8 0 0 0 0 0
+STACK WIN 0 2560 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2580 20 0 0 0 0 0 0 0 0
+STACK WIN 0 25a0 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 25c0 da 11 0 c 0 0 0 0 1
+STACK WIN 0 26a0 27 8 0 4 0 0 0 0 0
+STACK WIN 0 26d0 4a d 0 8 0 0 0 0 0
+STACK WIN 0 2720 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2730 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2740 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2750 3 2 0 0 0 0 0 0 0
+STACK WIN 0 2760 b 0 0 0 0 0 0 0 0
+STACK WIN 0 2770 ef 11 0 c 0 0 0 0 1
+STACK WIN 0 2860 2b 8 0 4 0 0 0 0 0
+STACK WIN 0 2890 4f d 0 8 0 0 0 0 0
+STACK WIN 0 28e0 e 0 0 0 0 0 0 0 0
+STACK WIN 0 28f0 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2900 3 2 0 0 0 0 0 0 0
+STACK WIN 0 2910 13 0 0 0 0 0 0 0 0
+STACK WIN 0 2930 86 a 0 10 10 4 0 0 1
+STACK WIN 0 29c0 23 0 0 0 0 0 0 0 0
+STACK WIN 0 29f0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 2a00 26 0 0 0 0 0 0 0 0
+STACK WIN 0 2a30 23 0 0 0 0 0 0 0 0
+STACK WIN 0 2a60 76 23 0 0 4 50 0 0 0
+STACK WIN 0 2ae0 3 0 0 4 0 0 0 0 0
+STACK WIN 0 2af0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 2b00 21 0 0 0 0 0 0 0 0
+STACK WIN 0 2b30 32 6 0 4 8 0 0 0 0
+STACK WIN 0 2b70 2f 6 0 0 8 0 0 0 0
+STACK WIN 0 2ba0 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2bc0 20 0 0 0 0 0 0 0 0
+STACK WIN 0 2be0 1d 0 0 0 0 0 0 0 0
+STACK WIN 0 2c00 c1 5 0 8 0 0 0 0 1
+STACK WIN 0 2cd0 83 8 0 8 0 0 0 0 1
+STACK WIN 0 2d60 1f 0 0 4 0 0 0 0 0
+STACK WIN 0 2d80 bc b 0 8 0 0 0 0 1
+STACK WIN 0 2e40 e 0 0 0 0 0 0 0 0
+STACK WIN 0 2e50 5 2 0 4 0 0 0 0 0
+STACK WIN 0 2e60 e 0 0 8 0 0 0 0 0
+STACK WIN 0 2e70 da 4 0 8 0 0 0 0 1
+STACK WIN 0 2f50 97 8 0 8 0 0 0 0 1
+STACK WIN 0 2ff0 4 0 0 0 0 0 0 0 0
+STACK WIN 0 3000 23 0 0 4 0 0 0 0 0
+STACK WIN 0 3030 c7 e 0 8 0 0 0 0 1
+STACK WIN 0 3100 e 0 0 0 0 0 0 0 0
+STACK WIN 0 3110 5 2 0 4 0 0 0 0 0
+STACK WIN 0 3120 e 0 0 8 0 0 0 0 0
+STACK WIN 0 3130 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3140 208 6 0 8 10 8 0 0 1
+STACK WIN 0 33d0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 33e0 8 0 0 0 0 0 0 0 0
+STACK WIN 0 33f0 56 3 0 0 0 10 0 0 0
+STACK WIN 0 3450 32 0 0 4 0 0 0 0 0
+STACK WIN 0 3490 28 0 0 0 0 0 0 0 0
+STACK WIN 0 34c0 19 0 0 0 0 0 0 0 0
+STACK WIN 0 34e0 21 0 0 0 0 0 0 0 0
+STACK WIN 0 3510 19 8 0 4 0 0 0 0 0
+STACK WIN 0 3530 7 0 0 0 0 0 0 0 0
+STACK WIN 0 3540 6 0 0 0 0 0 0 0 0
+STACK WIN 0 36d0 39 8 0 4 0 0 0 0 0
+STACK WIN 0 3710 6 0 0 0 0 0 0 0 0
+STACK WIN 0 38a0 3a 8 0 4 0 0 0 0 0
+STACK WIN 0 38e0 6 0 0 0 0 0 0 0 0
+STACK WIN 0 38f0 32 0 0 4 0 0 0 0 0
+STACK WIN 0 3930 19 0 0 0 0 0 0 0 0
+STACK WIN 0 3950 56 7 0 4 0 c 0 0 0
+STACK WIN 0 39b0 4 0 0 0 0 0 0 0 0
+STACK WIN 0 39c0 59 7 0 4 0 c 0 0 0
+STACK WIN 0 3a20 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3a30 21 d 0 10 0 0 0 0 0
+STACK WIN 0 3a60 27 9 0 10 0 0 0 0 0
+STACK WIN 0 3a90 24 f 0 0 0 0 0 0 0
+STACK WIN 0 3ac0 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3ad0 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3af0 21 d 0 10 0 0 0 0 0
+STACK WIN 0 3b20 27 9 0 10 0 0 0 0 0
+STACK WIN 0 3b50 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3b80 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3b90 25 11 0 0 0 0 0 0 0
+STACK WIN 0 3bc0 4f a 0 0 0 10 0 0 0
+STACK WIN 0 3c10 54 7 0 8 0 c 0 0 0
+STACK WIN 0 3c70 57 7 0 8 0 c 0 0 0
+STACK WIN 0 3cd0 19 8 0 4 0 0 0 0 0
+STACK WIN 0 3cf0 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3d00 21 d 0 14 0 0 0 0 0
+STACK WIN 0 3d30 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3d40 27 9 0 14 0 0 0 0 0
+STACK WIN 0 3d70 3 0 0 0 0 0 0 0 0
+STACK WIN 0 3d80 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3d90 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3da0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3dc0 1 0 0 4 0 0 0 0 0
+STACK WIN 0 3dd0 15 0 0 8 0 0 0 0 0
+STACK WIN 0 3df0 21 d 0 14 0 0 0 0 0
+STACK WIN 0 3e20 27 9 0 14 0 0 0 0 0
+STACK WIN 0 3e50 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3e80 10 0 0 0 0 0 0 0 0
+STACK WIN 0 3e90 7 1 0 0 0 4 0 0 0
+STACK WIN 0 3ea0 25 11 0 c 0 0 0 0 0
+STACK WIN 0 3ed0 3 0 0 4 0 0 0 0 0
+STACK WIN 0 3ee0 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3f00 22 d 0 8 0 0 0 0 0
+STACK WIN 0 3f30 13 0 0 0 0 0 0 0 0
+STACK WIN 0 3f50 1 0 0 0 0 0 0 0 0
+STACK WIN 0 3f60 15 0 0 8 0 0 0 0 0
+STACK WIN 0 3f80 22 d 0 0 0 0 0 0 0
+STACK WIN 0 3fb0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3fd0 15 0 0 4 0 0 0 0 0
+STACK WIN 0 3ff0 13 0 0 4 0 0 0 0 0
+STACK WIN 0 4010 ae e 0 4 0 54 0 0 0
+STACK WIN 0 40c0 ae e 0 4 0 4c 0 0 0
+STACK WIN 0 4170 40 7 0 4 0 0 0 0 0
+STACK WIN 0 4464 13 0 0 0 0 0 0 0 0
+STACK WIN 0 466c 16 0 0 0 0 0 0 0 0
+STACK WIN 0 46a0 9 0 0 0 0 0 0 0 0
+STACK WIN 0 46f2 a 0 0 0 0 0 0 0 0
+STACK WIN 0 5405 14 0 0 0 0 0 0 0 0
+STACK WIN 0 58bc a 0 0 0 0 0 0 0 0
+STACK WIN 0 6039 12 0 0 0 0 0 0 0 0
+STACK WIN 0 60e0 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 71eb b 0 0 0 0 0 0 0 0
+STACK WIN 0 7a28 a 0 0 0 0 0 0 0 0
+STACK WIN 0 7b36 a 0 0 0 0 0 0 0 0
+STACK WIN 0 7cc5 9 0 0 0 0 0 0 0 0
+STACK WIN 0 7f28 4 0 0 0 0 0 0 0 0
+STACK WIN 0 8151 9 0 0 0 0 0 0 0 0
+STACK WIN 0 821f 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8390 a 0 0 0 0 0 0 0 0
+STACK WIN 0 83ce 21 0 0 0 0 0 0 0 0
+STACK WIN 0 8477 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8714 a 0 0 0 0 0 0 0 0
+STACK WIN 0 8747 a 0 0 0 0 0 0 0 0
+STACK WIN 0 8779 a 0 0 0 0 0 0 0 0
+STACK WIN 0 87b4 a 0 0 0 0 0 0 0 0
+STACK WIN 0 89d2 9 0 0 0 0 0 0 0 0
+STACK WIN 0 8a62 7c 0 0 0 0 0 0 0 0
+STACK WIN 0 8c49 4 0 0 0 0 0 0 0 0
+STACK WIN 0 8ce2 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9694 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9835 c 0 0 0 0 0 0 0 0
+STACK WIN 0 9841 c 0 0 0 0 0 0 0 0
+STACK WIN 0 9a66 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9ab6 4 0 0 0 0 0 0 0 0
+STACK WIN 0 9ae0 4c 8 0 c 10 0 0 0 1
+STACK WIN 0 9c4a 6 0 0 0 0 0 0 0 0
+STACK WIN 0 9ca8 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9ee5 9 0 0 0 0 0 0 0 0
+STACK WIN 0 9fd7 c 0 0 0 0 0 0 0 0
+STACK WIN 0 a04a 9 0 0 0 0 0 0 0 0
+STACK WIN 0 a163 c 0 0 0 0 0 0 0 0
+STACK WIN 0 a1b9 9 0 0 0 0 0 0 0 0
+STACK WIN 0 a1d0 88 0 0 8 0 0 0 0 0
+STACK WIN 0 a2c0 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 c23c a 0 0 0 0 0 0 0 0
+STACK WIN 0 df29 14 0 0 0 0 0 0 0 0
+STACK WIN 0 dfed a 0 0 0 0 0 0 0 0
+STACK WIN 0 e257 c 0 0 0 0 0 0 0 0
+STACK WIN 0 e40d 15 0 0 0 0 0 0 0 0
+STACK WIN 0 e761 17 0 0 0 0 0 0 0 0
+STACK WIN 0 eaa4 c 0 0 0 0 0 0 0 0
+STACK WIN 0 eea0 9 0 0 0 0 0 0 0 0
+STACK WIN 0 f221 9 0 0 0 0 0 0 0 0
+STACK WIN 0 f370 c 0 0 0 0 0 0 0 0
+STACK WIN 0 f3fd c 0 0 0 0 0 0 0 0
+STACK WIN 0 1000a 11 0 0 0 0 0 0 0 0
+STACK WIN 0 1001b c 0 0 0 0 0 0 0 0
+STACK WIN 0 1004c 8 0 0 0 0 0 0 0 0
+STACK WIN 0 10558 90 3 0 c c 0 0 0 0
+STACK WIN 0 105e8 46 0 0 10 4 0 0 0 1
+STACK WIN 0 1064a 17 4 0 0 10 0 0 0 1
+STACK WIN 0 10661 19 0 0 0 0 0 0 0 0
+STACK WIN 0 10694 17 1 0 8 4 0 0 0 1
+STACK WIN 0 123b2 9 0 0 0 0 0 0 0 0
+STACK WIN 0 123f8 9 0 0 0 0 0 0 0 0
+STACK WIN 0 126bd a 0 0 0 0 0 0 0 0
+STACK WIN 0 128c8 e 0 0 0 0 0 0 0 0
+STACK WIN 0 129c5 f 0 0 0 0 0 0 0 0
+STACK WIN 0 12a8e 9 0 0 0 0 0 0 0 0
+STACK WIN 0 12b7f 2d 0 0 0 0 0 0 0 0
+STACK WIN 0 12ca3 e 0 0 0 0 0 0 0 0
+STACK WIN 0 12e47 f 0 0 0 0 0 0 0 0
+STACK WIN 0 14079 b 0 0 0 0 0 0 0 0
+STACK WIN 0 14221 84 3 0 8 c 0 0 0 0
+STACK WIN 0 142a5 23 0 0 0 0 0 0 0 0
+STACK WIN 0 142f0 3 0 0 0 0 0 0 0 0
+STACK WIN 0 14385 11 0 0 0 0 0 0 0 0
+STACK WIN 0 190b6 9 0 0 0 0 0 0 0 0
+STACK WIN 0 19159 9 0 0 0 0 0 0 0 0
+STACK WIN 0 1a1d5 a 0 0 0 0 0 0 0 0
+STACK WIN 0 20e9b a 0 0 0 0 0 0 0 0
+STACK WIN 0 20fd7 1c 0 0 0 0 0 0 0 0
+STACK WIN 0 21a99 e 0 0 0 0 0 0 0 0
+STACK WIN 0 21f21 9 0 0 0 0 0 0 0 0
+STACK WIN 0 21f59 9 0 0 0 0 0 0 0 0
+STACK WIN 0 21f9a 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22cab 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22d83 9 0 0 0 0 0 0 0 0
+STACK WIN 0 22e69 9 0 0 0 0 0 0 0 0
+STACK WIN 0 23b00 be 0 0 8 0 0 0 0 0
diff --git a/src/processor/testdata/test_app.cc b/src/processor/testdata/test_app.cc
new file mode 100644
index 0000000..c744a37
--- /dev/null
+++ b/src/processor/testdata/test_app.cc
@@ -0,0 +1,69 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This file is used to generate minidump2.dmp and minidump2.sym.
+// cl /Zi test_app.cc /Fetest_app.exe /I google_breakpad/src \
+//   google_breakpad/src/client/windows/releasestaticcrt/exception_handler.lib
+// Then run test_app to generate a dump, and dump_syms to create the .sym file.
+
+#include <stdio.h>
+
+#include "client/windows/handler/exception_handler.h"
+
+namespace {
+
+static bool callback(const wchar_t* dump_path, const wchar_t* id,
+                     void* context, EXCEPTION_POINTERS* exinfo,
+                     MDRawAssertionInfo* assertion,
+                     bool succeeded) {
+  if (succeeded) {
+    printf("dump guid is %ws\n", id);
+  } else {
+    printf("dump failed\n");
+  }
+  fflush(stdout);
+
+  return succeeded;
+}
+
+static void CrashFunction() {
+  int* i = reinterpret_cast<int*>(0x45);
+  *i = 5;  // crash!
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  google_breakpad::ExceptionHandler eh(
+      L".", NULL, callback, NULL,
+      google_breakpad::ExceptionHandler::HANDLER_ALL);
+  CrashFunction();
+  printf("did not crash?\n");
+  return 0;
+}
diff --git a/src/processor/testdata/write_av_non_null.dmp b/src/processor/testdata/write_av_non_null.dmp
new file mode 100755
index 0000000..1ec80ea
--- /dev/null
+++ b/src/processor/testdata/write_av_non_null.dmp
Binary files differ
diff --git a/src/processor/tokenize.cc b/src/processor/tokenize.cc
new file mode 100644
index 0000000..29e8125
--- /dev/null
+++ b/src/processor/tokenize.cc
@@ -0,0 +1,78 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <string.h>
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+#ifdef _MSC_VER
+#define strtok_r strtok_s
+#endif
+
+using std::vector;
+
+bool Tokenize(char* line,
+              const char* separators,
+              int max_tokens,
+              vector<char*>* tokens) {
+  tokens->clear();
+  tokens->reserve(max_tokens);
+
+  int remaining = max_tokens;
+
+  // Split tokens on the separator character.
+  // strip them out before exhausting max_tokens.
+  char* save_ptr;
+  char* token = strtok_r(line, separators, &save_ptr);
+  while (token && --remaining > 0) {
+    tokens->push_back(token);
+    if (remaining > 1)
+      token = strtok_r(NULL, separators, &save_ptr);
+  }
+
+  // If there's anything left, just add it as a single token.
+  if (remaining == 0 && (token = strtok_r(NULL, "\r\n", &save_ptr))) {
+    tokens->push_back(token);
+  }
+
+  return tokens->size() == static_cast<unsigned int>(max_tokens);
+}
+
+void StringToVector(const string& str, vector<char>& vec) {
+  vec.resize(str.length() + 1);
+  std::copy(str.begin(), str.end(), vec.begin());
+  vec[str.length()] = '\0';
+}
+
+} // namespace google_breakpad
diff --git a/src/processor/tokenize.h b/src/processor/tokenize.h
new file mode 100644
index 0000000..c4480aa
--- /dev/null
+++ b/src/processor/tokenize.h
@@ -0,0 +1,63 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Implements a Tokenize function for splitting up strings.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+// Splits line into at most max_tokens tokens, separated by any of the
+// characters in separators and placing them in the tokens vector.
+// line is a 0-terminated string that optionally ends with a newline
+// character or combination, which will be removed. 
+// If more tokens than max_tokens are present, the final token is placed
+// into the vector without splitting it up at all.  This modifies line as
+// a side effect.  Returns true if exactly max_tokens tokens are returned,
+// and false if fewer are returned.  This is not considered a failure of
+// Tokenize, but may be treated as a failure if the caller expects an
+// exact, as opposed to maximum, number of tokens.
+
+bool Tokenize(char* line,
+              const char* separators,
+              int max_tokens,
+              std::vector<char*>* tokens);
+// For convenience, since you need a char* to pass to Tokenize.
+// You can call StringToVector on a string, and use &vec[0].
+void StringToVector(const string& str, std::vector<char>& vec);
+
+}  // namespace google_breakpad
+
+#endif  // GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
diff --git a/src/processor/windows_frame_info.h b/src/processor/windows_frame_info.h
new file mode 100644
index 0000000..993832a
--- /dev/null
+++ b/src/processor/windows_frame_info.h
@@ -0,0 +1,209 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// windows_frame_info.h: Holds debugging information about a stack frame.
+//
+// This structure is specific to Windows debugging information obtained
+// from pdb files using the DIA API.
+//
+// Author: Mark Mentovai
+
+
+#ifndef PROCESSOR_WINDOWS_FRAME_INFO_H__
+#define PROCESSOR_WINDOWS_FRAME_INFO_H__
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "processor/logging.h"
+#include "processor/tokenize.h"
+
+namespace google_breakpad {
+
+#ifdef _WIN32
+#define strtoull _strtoui64
+#endif
+
+struct WindowsFrameInfo {
+ public:
+  enum Validity {
+    VALID_NONE           = 0,
+    VALID_PARAMETER_SIZE = 1,
+    VALID_ALL            = -1
+  };
+
+  // The types for stack_info_.  This is equivalent to MS DIA's
+  // StackFrameTypeEnum.  Each identifies a different type of frame
+  // information, although all are represented in the symbol file in the
+  // same format.  These are used as indices to the stack_info_ array.
+  enum StackInfoTypes {
+    STACK_INFO_FPO = 0,
+    STACK_INFO_TRAP,  // not used here
+    STACK_INFO_TSS,   // not used here
+    STACK_INFO_STANDARD,
+    STACK_INFO_FRAME_DATA,
+    STACK_INFO_LAST,  // must be the last sequentially-numbered item
+    STACK_INFO_UNKNOWN = -1
+  };
+
+  WindowsFrameInfo() : type_(STACK_INFO_UNKNOWN),
+                     valid(VALID_NONE),
+                     prolog_size(0),
+                     epilog_size(0),
+                     parameter_size(0),
+                     saved_register_size(0),
+                     local_size(0),
+                     max_stack_size(0),
+                     allocates_base_pointer(0),
+                     program_string() {}
+
+  WindowsFrameInfo(StackInfoTypes type,
+                 uint32_t set_prolog_size,
+                 uint32_t set_epilog_size,
+                 uint32_t set_parameter_size,
+                 uint32_t set_saved_register_size,
+                 uint32_t set_local_size,
+                 uint32_t set_max_stack_size,
+                 int set_allocates_base_pointer,
+                 const string set_program_string)
+      : type_(type),
+        valid(VALID_ALL),
+        prolog_size(set_prolog_size),
+        epilog_size(set_epilog_size),
+        parameter_size(set_parameter_size),
+        saved_register_size(set_saved_register_size),
+        local_size(set_local_size),
+        max_stack_size(set_max_stack_size),
+        allocates_base_pointer(set_allocates_base_pointer),
+        program_string(set_program_string) {}
+
+  // Parse a textual serialization of a WindowsFrameInfo object from
+  // a string. Returns NULL if parsing fails, or a new object
+  // otherwise. type, rva and code_size are present in the STACK line,
+  // but not the StackFrameInfo structure, so return them as outparams.
+  static WindowsFrameInfo *ParseFromString(const string string,
+                                           int& type,
+                                           uint64_t& rva,
+                                           uint64_t& code_size) {
+    // The format of a STACK WIN record is documented at:
+    //
+    // https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md
+
+    std::vector<char>  buffer;
+    StringToVector(string, buffer);
+    std::vector<char*> tokens;
+    if (!Tokenize(&buffer[0], " \r\n", 11, &tokens))
+      return NULL;
+
+    type = strtol(tokens[0], NULL, 16);
+    if (type < 0 || type > STACK_INFO_LAST - 1)
+      return NULL;
+
+    rva                           = strtoull(tokens[1],  NULL, 16);
+    code_size                     = strtoull(tokens[2],  NULL, 16);
+    uint32_t prolog_size          =  strtoul(tokens[3],  NULL, 16);
+    uint32_t epilog_size          =  strtoul(tokens[4],  NULL, 16);
+    uint32_t parameter_size       =  strtoul(tokens[5],  NULL, 16);
+    uint32_t saved_register_size  =  strtoul(tokens[6],  NULL, 16);
+    uint32_t local_size           =  strtoul(tokens[7],  NULL, 16);
+    uint32_t max_stack_size       =  strtoul(tokens[8],  NULL, 16);
+    int has_program_string        =  strtoul(tokens[9], NULL, 16);
+
+    const char *program_string = "";
+    int allocates_base_pointer = 0;
+    if (has_program_string) {
+      program_string = tokens[10];
+    } else {
+      allocates_base_pointer = strtoul(tokens[10], NULL, 16);
+    }
+
+    return new WindowsFrameInfo(static_cast<StackInfoTypes>(type),
+                                prolog_size,
+                                epilog_size,
+                                parameter_size,
+                                saved_register_size,
+                                local_size,
+                                max_stack_size,
+                                allocates_base_pointer,
+                                program_string);
+  }
+
+  // CopyFrom makes "this" WindowsFrameInfo object identical to "that".
+  void CopyFrom(const WindowsFrameInfo& that) {
+    type_ = that.type_;
+    valid = that.valid;
+    prolog_size = that.prolog_size;
+    epilog_size = that.epilog_size;
+    parameter_size = that.parameter_size;
+    saved_register_size = that.saved_register_size;
+    local_size = that.local_size;
+    max_stack_size = that.max_stack_size;
+    allocates_base_pointer = that.allocates_base_pointer;
+    program_string = that.program_string;
+  }
+
+  // Clears the WindowsFrameInfo object so that users will see it as though
+  // it contains no information.
+  void Clear() {
+    type_ = STACK_INFO_UNKNOWN;
+    valid = VALID_NONE;
+    program_string.erase();
+  }
+
+  StackInfoTypes type_;
+
+  // Identifies which fields in the structure are valid.  This is of
+  // type Validity, but it is defined as an int because it's not
+  // possible to OR values into an enumerated type.  Users must check
+  // this field before using any other.
+  int valid;
+
+  // These values come from IDiaFrameData.
+  uint32_t prolog_size;
+  uint32_t epilog_size;
+  uint32_t parameter_size;
+  uint32_t saved_register_size;
+  uint32_t local_size;
+  uint32_t max_stack_size;
+
+  // Only one of allocates_base_pointer or program_string will be valid.
+  // If program_string is empty, use allocates_base_pointer.
+  bool allocates_base_pointer;
+  string program_string;
+};
+
+}  // namespace google_breakpad
+
+
+#endif  // PROCESSOR_WINDOWS_FRAME_INFO_H__
diff --git a/src/third_party/curl/COPYING b/src/third_party/curl/COPYING
new file mode 100644
index 0000000..610fbdb
--- /dev/null
+++ b/src/third_party/curl/COPYING
@@ -0,0 +1,22 @@
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1996 - 2011, Daniel Stenberg, <daniel@haxx.se>.
+
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
+
diff --git a/src/third_party/curl/curl.h b/src/third_party/curl/curl.h
new file mode 100644
index 0000000..0d80936
--- /dev/null
+++ b/src/third_party/curl/curl.h
@@ -0,0 +1,1936 @@
+#ifndef __CURL_CURL_H
+#define __CURL_CURL_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: curl.h,v 1.396 2009-10-16 13:30:31 yangtse Exp $
+ ***************************************************************************/
+
+/*
+ * If you have libcurl problems, all docs and details are found here:
+ *   http://curl.haxx.se/libcurl/
+ *
+ * curl-library mailing list subscription and unsubscription web interface:
+ *   http://cool.haxx.se/mailman/listinfo/curl-library/
+ */
+
+/*
+ * Leading 'curl' path on the 'curlbuild.h' include statement is
+ * required to properly allow building outside of the source tree,
+ * due to the fact that in this case 'curlbuild.h' is generated in
+ * a subdirectory of the build tree while 'curl.h actually remains
+ * in a subdirectory of the source tree.
+ */
+
+#include "third_party/curl/curlver.h"         /* libcurl version defines   */
+#include "third_party/curl/curlbuild.h"       /* libcurl build definitions */
+#include "third_party/curl/curlrules.h"       /* libcurl rules enforcement */
+
+/*
+ * Define WIN32 when build target is Win32 API
+ */
+
+#if (defined(_WIN32) || defined(__WIN32__)) && \
+     !defined(WIN32) && !defined(__SYMBIAN32__)
+#define WIN32
+#endif
+
+#include <stdio.h>
+#include <limits.h>
+
+/* The include stuff here below is mainly for time_t! */
+#include <sys/types.h>
+#include <time.h>
+
+#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \
+  !defined(__CYGWIN__) || defined(__MINGW32__)
+#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
+/* The check above prevents the winsock2 inclusion if winsock.h already was
+   included, since they can't co-exist without problems */
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#endif
+#else
+
+/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
+   libc5-based Linux systems. Only include it on system that are known to
+   require it! */
+#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
+    defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
+    defined(__ANDROID__)
+#include <sys/select.h>
+#endif
+
+#ifndef _WIN32_WCE
+#include <sys/socket.h>
+#endif
+#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__)
+#include <sys/time.h>
+#endif
+#include <sys/types.h>
+#endif
+
+#ifdef __BEOS__
+#include <support/SupportDefs.h>
+#endif
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+typedef void CURL;
+
+/*
+ * Decorate exportable functions for Win32 and Symbian OS DLL linking.
+ * This avoids using a .def file for building libcurl.dll.
+ */
+#if (defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)) && \
+     !defined(CURL_STATICLIB)
+#if defined(BUILDING_LIBCURL)
+#define CURL_EXTERN  __declspec(dllexport)
+#else
+#define CURL_EXTERN  __declspec(dllimport)
+#endif
+#else
+
+#ifdef CURL_HIDDEN_SYMBOLS
+/*
+ * This definition is used to make external definitions visible in the
+ * shared library when symbols are hidden by default.  It makes no
+ * difference when compiling applications whether this is set or not,
+ * only when compiling the library.
+ */
+#define CURL_EXTERN CURL_EXTERN_SYMBOL
+#else
+#define CURL_EXTERN
+#endif
+#endif
+
+#ifndef curl_socket_typedef
+/* socket typedef */
+#ifdef WIN32
+typedef SOCKET curl_socket_t;
+#define CURL_SOCKET_BAD INVALID_SOCKET
+#else
+typedef int curl_socket_t;
+#define CURL_SOCKET_BAD -1
+#endif
+#define curl_socket_typedef
+#endif /* curl_socket_typedef */
+
+struct curl_httppost {
+  struct curl_httppost *next;       /* next entry in the list */
+  char *name;                       /* pointer to allocated name */
+  long namelength;                  /* length of name length */
+  char *contents;                   /* pointer to allocated data contents */
+  long contentslength;              /* length of contents field */
+  char *buffer;                     /* pointer to allocated buffer contents */
+  long bufferlength;                /* length of buffer field */
+  char *contenttype;                /* Content-Type */
+  struct curl_slist* contentheader; /* list of extra headers for this form */
+  struct curl_httppost *more;       /* if one field name has more than one
+                                       file, this link should link to following
+                                       files */
+  long flags;                       /* as defined below */
+#define HTTPPOST_FILENAME (1<<0)    /* specified content is a file name */
+#define HTTPPOST_READFILE (1<<1)    /* specified content is a file name */
+#define HTTPPOST_PTRNAME (1<<2)     /* name is only stored pointer
+                                       do not free in formfree */
+#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer
+                                       do not free in formfree */
+#define HTTPPOST_BUFFER (1<<4)      /* upload file from buffer */
+#define HTTPPOST_PTRBUFFER (1<<5)   /* upload file from pointer contents */
+#define HTTPPOST_CALLBACK (1<<6)    /* upload file contents by using the
+                                       regular read callback to get the data
+                                       and pass the given pointer as custom
+                                       pointer */
+
+  char *showfilename;               /* The file name to show. If not set, the
+                                       actual file name will be used (if this
+                                       is a file part) */
+  void *userp;                      /* custom pointer used for
+                                       HTTPPOST_CALLBACK posts */
+};
+
+typedef int (*curl_progress_callback)(void *clientp,
+                                      double dltotal,
+                                      double dlnow,
+                                      double ultotal,
+                                      double ulnow);
+
+#ifndef CURL_MAX_WRITE_SIZE
+  /* Tests have proven that 20K is a very bad buffer size for uploads on
+     Windows, while 16K for some odd reason performed a lot better.
+     We do the ifndef check to allow this value to easier be changed at build
+     time for those who feel adventurous. */
+#define CURL_MAX_WRITE_SIZE 16384
+#endif
+
+#ifndef CURL_MAX_HTTP_HEADER
+/* The only reason to have a max limit for this is to avoid the risk of a bad
+   server feeding libcurl with a never-ending header that will cause reallocs
+   infinitely */
+#define CURL_MAX_HTTP_HEADER (100*1024)
+#endif
+
+
+/* This is a magic return code for the write callback that, when returned,
+   will signal libcurl to pause receiving on the current transfer. */
+#define CURL_WRITEFUNC_PAUSE 0x10000001
+typedef size_t (*curl_write_callback)(char *buffer,
+                                      size_t size,
+                                      size_t nitems,
+                                      void *outstream);
+
+/* These are the return codes for the seek callbacks */
+#define CURL_SEEKFUNC_OK       0
+#define CURL_SEEKFUNC_FAIL     1 /* fail the entire transfer */
+#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so
+                                    libcurl might try other means instead */
+typedef int (*curl_seek_callback)(void *instream,
+                                  curl_off_t offset,
+                                  int origin); /* 'whence' */
+
+/* This is a return code for the read callback that, when returned, will
+   signal libcurl to immediately abort the current transfer. */
+#define CURL_READFUNC_ABORT 0x10000000
+/* This is a return code for the read callback that, when returned, will
+   signal libcurl to pause sending data on the current transfer. */
+#define CURL_READFUNC_PAUSE 0x10000001
+
+typedef size_t (*curl_read_callback)(char *buffer,
+                                      size_t size,
+                                      size_t nitems,
+                                      void *instream);
+
+typedef enum  {
+  CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */
+  CURLSOCKTYPE_LAST   /* never use */
+} curlsocktype;
+
+typedef int (*curl_sockopt_callback)(void *clientp,
+                                     curl_socket_t curlfd,
+                                     curlsocktype purpose);
+
+struct curl_sockaddr {
+  int family;
+  int socktype;
+  int protocol;
+  unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it
+                           turned really ugly and painful on the systems that
+                           lack this type */
+  struct sockaddr addr;
+};
+
+typedef curl_socket_t
+(*curl_opensocket_callback)(void *clientp,
+                            curlsocktype purpose,
+                            struct curl_sockaddr *address);
+
+#ifndef CURL_NO_OLDIES
+  /* not used since 7.10.8, will be removed in a future release */
+typedef int (*curl_passwd_callback)(void *clientp,
+                                    const char *prompt,
+                                    char *buffer,
+                                    int buflen);
+#endif
+
+typedef enum {
+  CURLIOE_OK,            /* I/O operation successful */
+  CURLIOE_UNKNOWNCMD,    /* command was unknown to callback */
+  CURLIOE_FAILRESTART,   /* failed to restart the read */
+  CURLIOE_LAST           /* never use */
+} curlioerr;
+
+typedef enum  {
+  CURLIOCMD_NOP,         /* no operation */
+  CURLIOCMD_RESTARTREAD, /* restart the read stream from start */
+  CURLIOCMD_LAST         /* never use */
+} curliocmd;
+
+typedef curlioerr (*curl_ioctl_callback)(CURL *handle,
+                                         int cmd,
+                                         void *clientp);
+
+/*
+ * The following typedef's are signatures of malloc, free, realloc, strdup and
+ * calloc respectively.  Function pointers of these types can be passed to the
+ * curl_global_init_mem() function to set user defined memory management
+ * callback routines.
+ */
+typedef void *(*curl_malloc_callback)(size_t size);
+typedef void (*curl_free_callback)(void *ptr);
+typedef void *(*curl_realloc_callback)(void *ptr, size_t size);
+typedef char *(*curl_strdup_callback)(const char *str);
+typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size);
+
+/* the kind of data that is passed to information_callback*/
+typedef enum {
+  CURLINFO_TEXT = 0,
+  CURLINFO_HEADER_IN,    /* 1 */
+  CURLINFO_HEADER_OUT,   /* 2 */
+  CURLINFO_DATA_IN,      /* 3 */
+  CURLINFO_DATA_OUT,     /* 4 */
+  CURLINFO_SSL_DATA_IN,  /* 5 */
+  CURLINFO_SSL_DATA_OUT, /* 6 */
+  CURLINFO_END
+} curl_infotype;
+
+typedef int (*curl_debug_callback)
+       (CURL *handle,      /* the handle/transfer this concerns */
+        curl_infotype type, /* what kind of data */
+        char *data,        /* points to the data */
+        size_t size,       /* size of the data pointed to */
+        void *userptr);    /* whatever the user please */
+
+/* All possible error codes from all sorts of curl functions. Future versions
+   may return other values, stay prepared.
+
+   Always add new return codes last. Never *EVER* remove any. The return
+   codes must remain the same!
+ */
+
+typedef enum {
+  CURLE_OK = 0,
+  CURLE_UNSUPPORTED_PROTOCOL,    /* 1 */
+  CURLE_FAILED_INIT,             /* 2 */
+  CURLE_URL_MALFORMAT,           /* 3 */
+  CURLE_OBSOLETE4,               /* 4 - NOT USED */
+  CURLE_COULDNT_RESOLVE_PROXY,   /* 5 */
+  CURLE_COULDNT_RESOLVE_HOST,    /* 6 */
+  CURLE_COULDNT_CONNECT,         /* 7 */
+  CURLE_FTP_WEIRD_SERVER_REPLY,  /* 8 */
+  CURLE_REMOTE_ACCESS_DENIED,    /* 9 a service was denied by the server
+                                    due to lack of access - when login fails
+                                    this is not returned. */
+  CURLE_OBSOLETE10,              /* 10 - NOT USED */
+  CURLE_FTP_WEIRD_PASS_REPLY,    /* 11 */
+  CURLE_OBSOLETE12,              /* 12 - NOT USED */
+  CURLE_FTP_WEIRD_PASV_REPLY,    /* 13 */
+  CURLE_FTP_WEIRD_227_FORMAT,    /* 14 */
+  CURLE_FTP_CANT_GET_HOST,       /* 15 */
+  CURLE_OBSOLETE16,              /* 16 - NOT USED */
+  CURLE_FTP_COULDNT_SET_TYPE,    /* 17 */
+  CURLE_PARTIAL_FILE,            /* 18 */
+  CURLE_FTP_COULDNT_RETR_FILE,   /* 19 */
+  CURLE_OBSOLETE20,              /* 20 - NOT USED */
+  CURLE_QUOTE_ERROR,             /* 21 - quote command failure */
+  CURLE_HTTP_RETURNED_ERROR,     /* 22 */
+  CURLE_WRITE_ERROR,             /* 23 */
+  CURLE_OBSOLETE24,              /* 24 - NOT USED */
+  CURLE_UPLOAD_FAILED,           /* 25 - failed upload "command" */
+  CURLE_READ_ERROR,              /* 26 - couldn't open/read from file */
+  CURLE_OUT_OF_MEMORY,           /* 27 */
+  /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
+           instead of a memory allocation error if CURL_DOES_CONVERSIONS
+           is defined
+  */
+  CURLE_OPERATION_TIMEDOUT,      /* 28 - the timeout time was reached */
+  CURLE_OBSOLETE29,              /* 29 - NOT USED */
+  CURLE_FTP_PORT_FAILED,         /* 30 - FTP PORT operation failed */
+  CURLE_FTP_COULDNT_USE_REST,    /* 31 - the REST command failed */
+  CURLE_OBSOLETE32,              /* 32 - NOT USED */
+  CURLE_RANGE_ERROR,             /* 33 - RANGE "command" didn't work */
+  CURLE_HTTP_POST_ERROR,         /* 34 */
+  CURLE_SSL_CONNECT_ERROR,       /* 35 - wrong when connecting with SSL */
+  CURLE_BAD_DOWNLOAD_RESUME,     /* 36 - couldn't resume download */
+  CURLE_FILE_COULDNT_READ_FILE,  /* 37 */
+  CURLE_LDAP_CANNOT_BIND,        /* 38 */
+  CURLE_LDAP_SEARCH_FAILED,      /* 39 */
+  CURLE_OBSOLETE40,              /* 40 - NOT USED */
+  CURLE_FUNCTION_NOT_FOUND,      /* 41 */
+  CURLE_ABORTED_BY_CALLBACK,     /* 42 */
+  CURLE_BAD_FUNCTION_ARGUMENT,   /* 43 */
+  CURLE_OBSOLETE44,              /* 44 - NOT USED */
+  CURLE_INTERFACE_FAILED,        /* 45 - CURLOPT_INTERFACE failed */
+  CURLE_OBSOLETE46,              /* 46 - NOT USED */
+  CURLE_TOO_MANY_REDIRECTS ,     /* 47 - catch endless re-direct loops */
+  CURLE_UNKNOWN_TELNET_OPTION,   /* 48 - User specified an unknown option */
+  CURLE_TELNET_OPTION_SYNTAX ,   /* 49 - Malformed telnet option */
+  CURLE_OBSOLETE50,              /* 50 - NOT USED */
+  CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint
+                                     wasn't verified fine */
+  CURLE_GOT_NOTHING,             /* 52 - when this is a specific error */
+  CURLE_SSL_ENGINE_NOTFOUND,     /* 53 - SSL crypto engine not found */
+  CURLE_SSL_ENGINE_SETFAILED,    /* 54 - can not set SSL crypto engine as
+                                    default */
+  CURLE_SEND_ERROR,              /* 55 - failed sending network data */
+  CURLE_RECV_ERROR,              /* 56 - failure in receiving network data */
+  CURLE_OBSOLETE57,              /* 57 - NOT IN USE */
+  CURLE_SSL_CERTPROBLEM,         /* 58 - problem with the local certificate */
+  CURLE_SSL_CIPHER,              /* 59 - couldn't use specified cipher */
+  CURLE_SSL_CACERT,              /* 60 - problem with the CA cert (path?) */
+  CURLE_BAD_CONTENT_ENCODING,    /* 61 - Unrecognized transfer encoding */
+  CURLE_LDAP_INVALID_URL,        /* 62 - Invalid LDAP URL */
+  CURLE_FILESIZE_EXCEEDED,       /* 63 - Maximum file size exceeded */
+  CURLE_USE_SSL_FAILED,          /* 64 - Requested FTP SSL level failed */
+  CURLE_SEND_FAIL_REWIND,        /* 65 - Sending the data requires a rewind
+                                    that failed */
+  CURLE_SSL_ENGINE_INITFAILED,   /* 66 - failed to initialise ENGINE */
+  CURLE_LOGIN_DENIED,            /* 67 - user, password or similar was not
+                                    accepted and we failed to login */
+  CURLE_TFTP_NOTFOUND,           /* 68 - file not found on server */
+  CURLE_TFTP_PERM,               /* 69 - permission problem on server */
+  CURLE_REMOTE_DISK_FULL,        /* 70 - out of disk space on server */
+  CURLE_TFTP_ILLEGAL,            /* 71 - Illegal TFTP operation */
+  CURLE_TFTP_UNKNOWNID,          /* 72 - Unknown transfer ID */
+  CURLE_REMOTE_FILE_EXISTS,      /* 73 - File already exists */
+  CURLE_TFTP_NOSUCHUSER,         /* 74 - No such user */
+  CURLE_CONV_FAILED,             /* 75 - conversion failed */
+  CURLE_CONV_REQD,               /* 76 - caller must register conversion
+                                    callbacks using curl_easy_setopt options
+                                    CURLOPT_CONV_FROM_NETWORK_FUNCTION,
+                                    CURLOPT_CONV_TO_NETWORK_FUNCTION, and
+                                    CURLOPT_CONV_FROM_UTF8_FUNCTION */
+  CURLE_SSL_CACERT_BADFILE,      /* 77 - could not load CACERT file, missing
+                                    or wrong format */
+  CURLE_REMOTE_FILE_NOT_FOUND,   /* 78 - remote file not found */
+  CURLE_SSH,                     /* 79 - error from the SSH layer, somewhat
+                                    generic so the error message will be of
+                                    interest when this has happened */
+
+  CURLE_SSL_SHUTDOWN_FAILED,     /* 80 - Failed to shut down the SSL
+                                    connection */
+  CURLE_AGAIN,                   /* 81 - socket is not ready for send/recv,
+                                    wait till it's ready and try again (Added
+                                    in 7.18.2) */
+  CURLE_SSL_CRL_BADFILE,         /* 82 - could not load CRL file, missing or
+                                    wrong format (Added in 7.19.0) */
+  CURLE_SSL_ISSUER_ERROR,        /* 83 - Issuer check failed.  (Added in
+                                    7.19.0) */
+  CURL_LAST /* never use! */
+} CURLcode;
+
+#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
+                          the obsolete stuff removed! */
+
+/* Backwards compatibility with older names */
+
+/* The following were added in 7.17.1 */
+/* These are scheduled to disappear by 2009 */
+#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION
+
+/* The following were added in 7.17.0 */
+/* These are scheduled to disappear by 2009 */
+#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* noone should be using this! */
+#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46
+#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44
+#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10
+#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16
+#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32
+#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29
+#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12
+#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20
+#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40
+#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24
+#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57
+#define CURLE_URL_MALFORMAT_USER CURLE_OBSOLETE4
+
+#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED
+#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE
+#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR
+#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL
+#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS
+#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR
+#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED
+
+/* The following were added earlier */
+
+#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT
+
+#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR
+#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED
+#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED
+
+#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE
+#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME
+
+/* This was the error code 50 in 7.7.3 and a few earlier versions, this
+   is no longer used by libcurl but is instead #defined here only to not
+   make programs break */
+#define CURLE_ALREADY_COMPLETE 99999
+
+#endif /*!CURL_NO_OLDIES*/
+
+/* This prototype applies to all conversion callbacks */
+typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length);
+
+typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl,    /* easy handle */
+                                          void *ssl_ctx, /* actually an
+                                                            OpenSSL SSL_CTX */
+                                          void *userptr);
+
+typedef enum {
+  CURLPROXY_HTTP = 0,   /* added in 7.10, new in 7.19.4 default is to use
+                           CONNECT HTTP/1.1 */
+  CURLPROXY_HTTP_1_0 = 1,   /* added in 7.19.4, force to use CONNECT
+                               HTTP/1.0  */
+  CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already
+                           in 7.10 */
+  CURLPROXY_SOCKS5 = 5, /* added in 7.10 */
+  CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */
+  CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the
+                                   host name rather than the IP address. added
+                                   in 7.18.0 */
+} curl_proxytype;  /* this enum was added in 7.10 */
+
+#define CURLAUTH_NONE         0       /* nothing */
+#define CURLAUTH_BASIC        (1<<0)  /* Basic (default) */
+#define CURLAUTH_DIGEST       (1<<1)  /* Digest */
+#define CURLAUTH_GSSNEGOTIATE (1<<2)  /* GSS-Negotiate */
+#define CURLAUTH_NTLM         (1<<3)  /* NTLM */
+#define CURLAUTH_DIGEST_IE    (1<<4)  /* Digest with IE flavour */
+#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE)  /* all fine types set */
+#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
+
+#define CURLSSH_AUTH_ANY       ~0     /* all types supported by the server */
+#define CURLSSH_AUTH_NONE      0      /* none allowed, silly but complete */
+#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */
+#define CURLSSH_AUTH_PASSWORD  (1<<1) /* password */
+#define CURLSSH_AUTH_HOST      (1<<2) /* host key files */
+#define CURLSSH_AUTH_KEYBOARD  (1<<3) /* keyboard interactive */
+#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY
+
+#define CURL_ERROR_SIZE 256
+
+struct curl_khkey {
+  const char *key; /* points to a zero-terminated string encoded with base64
+                      if len is zero, otherwise to the "raw" data */
+  size_t len;
+  enum type {
+    CURLKHTYPE_UNKNOWN,
+    CURLKHTYPE_RSA1,
+    CURLKHTYPE_RSA,
+    CURLKHTYPE_DSS
+  } keytype;
+};
+
+/* this is the set of return values expected from the curl_sshkeycallback
+   callback */
+enum curl_khstat {
+  CURLKHSTAT_FINE_ADD_TO_FILE,
+  CURLKHSTAT_FINE,
+  CURLKHSTAT_REJECT, /* reject the connection, return an error */
+  CURLKHSTAT_DEFER,  /* do not accept it, but we can't answer right now so
+                        this causes a CURLE_DEFER error but otherwise the
+                        connection will be left intact etc */
+  CURLKHSTAT_LAST    /* not for use, only a marker for last-in-list */
+};
+
+/* this is the set of status codes pass in to the callback */
+enum curl_khmatch {
+  CURLKHMATCH_OK,       /* match */
+  CURLKHMATCH_MISMATCH, /* host found, key mismatch! */
+  CURLKHMATCH_MISSING,  /* no matching host/key found */
+  CURLKHMATCH_LAST      /* not for use, only a marker for last-in-list */
+};
+
+typedef int
+  (*curl_sshkeycallback) (CURL *easy,     /* easy handle */
+                          const struct curl_khkey *knownkey, /* known */
+                          const struct curl_khkey *foundkey, /* found */
+                          enum curl_khmatch, /* libcurl's view on the keys */
+                          void *clientp); /* custom pointer passed from app */
+
+/* parameter for the CURLOPT_USE_SSL option */
+typedef enum {
+  CURLUSESSL_NONE,    /* do not attempt to use SSL */
+  CURLUSESSL_TRY,     /* try using SSL, proceed anyway otherwise */
+  CURLUSESSL_CONTROL, /* SSL for the control connection or fail */
+  CURLUSESSL_ALL,     /* SSL for all communication or fail */
+  CURLUSESSL_LAST     /* not an option, never use */
+} curl_usessl;
+
+#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
+                          the obsolete stuff removed! */
+
+/* Backwards compatibility with older names */
+/* These are scheduled to disappear by 2009 */
+
+#define CURLFTPSSL_NONE CURLUSESSL_NONE
+#define CURLFTPSSL_TRY CURLUSESSL_TRY
+#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL
+#define CURLFTPSSL_ALL CURLUSESSL_ALL
+#define CURLFTPSSL_LAST CURLUSESSL_LAST
+#define curl_ftpssl curl_usessl
+#endif /*!CURL_NO_OLDIES*/
+
+/* parameter for the CURLOPT_FTP_SSL_CCC option */
+typedef enum {
+  CURLFTPSSL_CCC_NONE,    /* do not send CCC */
+  CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */
+  CURLFTPSSL_CCC_ACTIVE,  /* Initiate the shutdown */
+  CURLFTPSSL_CCC_LAST     /* not an option, never use */
+} curl_ftpccc;
+
+/* parameter for the CURLOPT_FTPSSLAUTH option */
+typedef enum {
+  CURLFTPAUTH_DEFAULT, /* let libcurl decide */
+  CURLFTPAUTH_SSL,     /* use "AUTH SSL" */
+  CURLFTPAUTH_TLS,     /* use "AUTH TLS" */
+  CURLFTPAUTH_LAST /* not an option, never use */
+} curl_ftpauth;
+
+/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */
+typedef enum {
+  CURLFTP_CREATE_DIR_NONE,  /* do NOT create missing dirs! */
+  CURLFTP_CREATE_DIR,       /* (FTP/SFTP) if CWD fails, try MKD and then CWD
+                               again if MKD succeeded, for SFTP this does
+                               similar magic */
+  CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD
+                               again even if MKD failed! */
+  CURLFTP_CREATE_DIR_LAST   /* not an option, never use */
+} curl_ftpcreatedir;
+
+/* parameter for the CURLOPT_FTP_FILEMETHOD option */
+typedef enum {
+  CURLFTPMETHOD_DEFAULT,   /* let libcurl pick */
+  CURLFTPMETHOD_MULTICWD,  /* single CWD operation for each path part */
+  CURLFTPMETHOD_NOCWD,     /* no CWD at all */
+  CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */
+  CURLFTPMETHOD_LAST       /* not an option, never use */
+} curl_ftpmethod;
+
+/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
+#define CURLPROTO_HTTP   (1<<0)
+#define CURLPROTO_HTTPS  (1<<1)
+#define CURLPROTO_FTP    (1<<2)
+#define CURLPROTO_FTPS   (1<<3)
+#define CURLPROTO_SCP    (1<<4)
+#define CURLPROTO_SFTP   (1<<5)
+#define CURLPROTO_TELNET (1<<6)
+#define CURLPROTO_LDAP   (1<<7)
+#define CURLPROTO_LDAPS  (1<<8)
+#define CURLPROTO_DICT   (1<<9)
+#define CURLPROTO_FILE   (1<<10)
+#define CURLPROTO_TFTP   (1<<11)
+#define CURLPROTO_ALL    (~0) /* enable everything */
+
+/* long may be 32 or 64 bits, but we should never depend on anything else
+   but 32 */
+#define CURLOPTTYPE_LONG          0
+#define CURLOPTTYPE_OBJECTPOINT   10000
+#define CURLOPTTYPE_FUNCTIONPOINT 20000
+#define CURLOPTTYPE_OFF_T         30000
+
+/* name is uppercase CURLOPT_<name>,
+   type is one of the defined CURLOPTTYPE_<type>
+   number is unique identifier */
+#ifdef CINIT
+#undef CINIT
+#endif
+
+#ifdef CURL_ISOCPP
+#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number
+#else
+/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
+#define LONG          CURLOPTTYPE_LONG
+#define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT
+#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
+#define OFF_T         CURLOPTTYPE_OFF_T
+#define CINIT(name,type,number) CURLOPT_/**/name = type + number
+#endif
+
+/*
+ * This macro-mania below setups the CURLOPT_[what] enum, to be used with
+ * curl_easy_setopt(). The first argument in the CINIT() macro is the [what]
+ * word.
+ */
+
+typedef enum {
+  /* This is the FILE * or void * the regular output should be written to. */
+  CINIT(FILE, OBJECTPOINT, 1),
+
+  /* The full URL to get/put */
+  CINIT(URL,  OBJECTPOINT, 2),
+
+  /* Port number to connect to, if other than default. */
+  CINIT(PORT, LONG, 3),
+
+  /* Name of proxy to use. */
+  CINIT(PROXY, OBJECTPOINT, 4),
+
+  /* "name:password" to use when fetching. */
+  CINIT(USERPWD, OBJECTPOINT, 5),
+
+  /* "name:password" to use with proxy. */
+  CINIT(PROXYUSERPWD, OBJECTPOINT, 6),
+
+  /* Range to get, specified as an ASCII string. */
+  CINIT(RANGE, OBJECTPOINT, 7),
+
+  /* not used */
+
+  /* Specified file stream to upload from (use as input): */
+  CINIT(INFILE, OBJECTPOINT, 9),
+
+  /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
+   * bytes big. If this is not used, error messages go to stderr instead: */
+  CINIT(ERRORBUFFER, OBJECTPOINT, 10),
+
+  /* Function that will be called to store the output (instead of fwrite). The
+   * parameters will use fwrite() syntax, make sure to follow them. */
+  CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11),
+
+  /* Function that will be called to read the input (instead of fread). The
+   * parameters will use fread() syntax, make sure to follow them. */
+  CINIT(READFUNCTION, FUNCTIONPOINT, 12),
+
+  /* Time-out the read operation after this amount of seconds */
+  CINIT(TIMEOUT, LONG, 13),
+
+  /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about
+   * how large the file being sent really is. That allows better error
+   * checking and better verifies that the upload was successful. -1 means
+   * unknown size.
+   *
+   * For large file support, there is also a _LARGE version of the key
+   * which takes an off_t type, allowing platforms with larger off_t
+   * sizes to handle larger files.  See below for INFILESIZE_LARGE.
+   */
+  CINIT(INFILESIZE, LONG, 14),
+
+  /* POST static input fields. */
+  CINIT(POSTFIELDS, OBJECTPOINT, 15),
+
+  /* Set the referrer page (needed by some CGIs) */
+  CINIT(REFERER, OBJECTPOINT, 16),
+
+  /* Set the FTP PORT string (interface name, named or numerical IP address)
+     Use i.e '-' to use default address. */
+  CINIT(FTPPORT, OBJECTPOINT, 17),
+
+  /* Set the User-Agent string (examined by some CGIs) */
+  CINIT(USERAGENT, OBJECTPOINT, 18),
+
+  /* If the download receives less than "low speed limit" bytes/second
+   * during "low speed time" seconds, the operations is aborted.
+   * You could i.e if you have a pretty high speed connection, abort if
+   * it is less than 2000 bytes/sec during 20 seconds.
+   */
+
+  /* Set the "low speed limit" */
+  CINIT(LOW_SPEED_LIMIT, LONG, 19),
+
+  /* Set the "low speed time" */
+  CINIT(LOW_SPEED_TIME, LONG, 20),
+
+  /* Set the continuation offset.
+   *
+   * Note there is also a _LARGE version of this key which uses
+   * off_t types, allowing for large file offsets on platforms which
+   * use larger-than-32-bit off_t's.  Look below for RESUME_FROM_LARGE.
+   */
+  CINIT(RESUME_FROM, LONG, 21),
+
+  /* Set cookie in request: */
+  CINIT(COOKIE, OBJECTPOINT, 22),
+
+  /* This points to a linked list of headers, struct curl_slist kind */
+  CINIT(HTTPHEADER, OBJECTPOINT, 23),
+
+  /* This points to a linked list of post entries, struct curl_httppost */
+  CINIT(HTTPPOST, OBJECTPOINT, 24),
+
+  /* name of the file keeping your private SSL-certificate */
+  CINIT(SSLCERT, OBJECTPOINT, 25),
+
+  /* password for the SSL or SSH private key */
+  CINIT(KEYPASSWD, OBJECTPOINT, 26),
+
+  /* send TYPE parameter? */
+  CINIT(CRLF, LONG, 27),
+
+  /* send linked-list of QUOTE commands */
+  CINIT(QUOTE, OBJECTPOINT, 28),
+
+  /* send FILE * or void * to store headers to, if you use a callback it
+     is simply passed to the callback unmodified */
+  CINIT(WRITEHEADER, OBJECTPOINT, 29),
+
+  /* point to a file to read the initial cookies from, also enables
+     "cookie awareness" */
+  CINIT(COOKIEFILE, OBJECTPOINT, 31),
+
+  /* What version to specifically try to use.
+     See CURL_SSLVERSION defines below. */
+  CINIT(SSLVERSION, LONG, 32),
+
+  /* What kind of HTTP time condition to use, see defines */
+  CINIT(TIMECONDITION, LONG, 33),
+
+  /* Time to use with the above condition. Specified in number of seconds
+     since 1 Jan 1970 */
+  CINIT(TIMEVALUE, LONG, 34),
+
+  /* 35 = OBSOLETE */
+
+  /* Custom request, for customizing the get command like
+     HTTP: DELETE, TRACE and others
+     FTP: to use a different list command
+     */
+  CINIT(CUSTOMREQUEST, OBJECTPOINT, 36),
+
+  /* HTTP request, for odd commands like DELETE, TRACE and others */
+  CINIT(STDERR, OBJECTPOINT, 37),
+
+  /* 38 is not used */
+
+  /* send linked-list of post-transfer QUOTE commands */
+  CINIT(POSTQUOTE, OBJECTPOINT, 39),
+
+  /* Pass a pointer to string of the output using full variable-replacement
+     as described elsewhere. */
+  CINIT(WRITEINFO, OBJECTPOINT, 40),
+
+  CINIT(VERBOSE, LONG, 41),      /* talk a lot */
+  CINIT(HEADER, LONG, 42),       /* throw the header out too */
+  CINIT(NOPROGRESS, LONG, 43),   /* shut off the progress meter */
+  CINIT(NOBODY, LONG, 44),       /* use HEAD to get http document */
+  CINIT(FAILONERROR, LONG, 45),  /* no output on http error codes >= 300 */
+  CINIT(UPLOAD, LONG, 46),       /* this is an upload */
+  CINIT(POST, LONG, 47),         /* HTTP POST method */
+  CINIT(DIRLISTONLY, LONG, 48),  /* return bare names when listing directories */
+
+  CINIT(APPEND, LONG, 50),       /* Append instead of overwrite on upload! */
+
+  /* Specify whether to read the user+password from the .netrc or the URL.
+   * This must be one of the CURL_NETRC_* enums below. */
+  CINIT(NETRC, LONG, 51),
+
+  CINIT(FOLLOWLOCATION, LONG, 52),  /* use Location: Luke! */
+
+  CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */
+  CINIT(PUT, LONG, 54),          /* HTTP PUT */
+
+  /* 55 = OBSOLETE */
+
+  /* Function that will be called instead of the internal progress display
+   * function. This function should be defined as the curl_progress_callback
+   * prototype defines. */
+  CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56),
+
+  /* Data passed to the progress callback */
+  CINIT(PROGRESSDATA, OBJECTPOINT, 57),
+
+  /* We want the referrer field set automatically when following locations */
+  CINIT(AUTOREFERER, LONG, 58),
+
+  /* Port of the proxy, can be set in the proxy string as well with:
+     "[host]:[port]" */
+  CINIT(PROXYPORT, LONG, 59),
+
+  /* size of the POST input data, if strlen() is not good to use */
+  CINIT(POSTFIELDSIZE, LONG, 60),
+
+  /* tunnel non-http operations through a HTTP proxy */
+  CINIT(HTTPPROXYTUNNEL, LONG, 61),
+
+  /* Set the interface string to use as outgoing network interface */
+  CINIT(INTERFACE, OBJECTPOINT, 62),
+
+  /* Set the krb4/5 security level, this also enables krb4/5 awareness.  This
+   * is a string, 'clear', 'safe', 'confidential' or 'private'.  If the string
+   * is set but doesn't match one of these, 'private' will be used.  */
+  CINIT(KRBLEVEL, OBJECTPOINT, 63),
+
+  /* Set if we should verify the peer in ssl handshake, set 1 to verify. */
+  CINIT(SSL_VERIFYPEER, LONG, 64),
+
+  /* The CApath or CAfile used to validate the peer certificate
+     this option is used only if SSL_VERIFYPEER is true */
+  CINIT(CAINFO, OBJECTPOINT, 65),
+
+  /* 66 = OBSOLETE */
+  /* 67 = OBSOLETE */
+
+  /* Maximum number of http redirects to follow */
+  CINIT(MAXREDIRS, LONG, 68),
+
+  /* Pass a long set to 1 to get the date of the requested document (if
+     possible)! Pass a zero to shut it off. */
+  CINIT(FILETIME, LONG, 69),
+
+  /* This points to a linked list of telnet options */
+  CINIT(TELNETOPTIONS, OBJECTPOINT, 70),
+
+  /* Max amount of cached alive connections */
+  CINIT(MAXCONNECTS, LONG, 71),
+
+  /* What policy to use when closing connections when the cache is filled
+     up */
+  CINIT(CLOSEPOLICY, LONG, 72),
+
+  /* 73 = OBSOLETE */
+
+  /* Set to explicitly use a new connection for the upcoming transfer.
+     Do not use this unless you're absolutely sure of this, as it makes the
+     operation slower and is less friendly for the network. */
+  CINIT(FRESH_CONNECT, LONG, 74),
+
+  /* Set to explicitly forbid the upcoming transfer's connection to be re-used
+     when done. Do not use this unless you're absolutely sure of this, as it
+     makes the operation slower and is less friendly for the network. */
+  CINIT(FORBID_REUSE, LONG, 75),
+
+  /* Set to a file name that contains random data for libcurl to use to
+     seed the random engine when doing SSL connects. */
+  CINIT(RANDOM_FILE, OBJECTPOINT, 76),
+
+  /* Set to the Entropy Gathering Daemon socket pathname */
+  CINIT(EGDSOCKET, OBJECTPOINT, 77),
+
+  /* Time-out connect operations after this amount of seconds, if connects
+     are OK within this time, then fine... This only aborts the connect
+     phase. [Only works on unix-style/SIGALRM operating systems] */
+  CINIT(CONNECTTIMEOUT, LONG, 78),
+
+  /* Function that will be called to store headers (instead of fwrite). The
+   * parameters will use fwrite() syntax, make sure to follow them. */
+  CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79),
+
+  /* Set this to force the HTTP request to get back to GET. Only really usable
+     if POST, PUT or a custom request have been used first.
+   */
+  CINIT(HTTPGET, LONG, 80),
+
+  /* Set if we should verify the Common name from the peer certificate in ssl
+   * handshake, set 1 to check existence, 2 to ensure that it matches the
+   * provided hostname. */
+  CINIT(SSL_VERIFYHOST, LONG, 81),
+
+  /* Specify which file name to write all known cookies in after completed
+     operation. Set file name to "-" (dash) to make it go to stdout. */
+  CINIT(COOKIEJAR, OBJECTPOINT, 82),
+
+  /* Specify which SSL ciphers to use */
+  CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83),
+
+  /* Specify which HTTP version to use! This must be set to one of the
+     CURL_HTTP_VERSION* enums set below. */
+  CINIT(HTTP_VERSION, LONG, 84),
+
+  /* Specifically switch on or off the FTP engine's use of the EPSV command. By
+     default, that one will always be attempted before the more traditional
+     PASV command. */
+  CINIT(FTP_USE_EPSV, LONG, 85),
+
+  /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
+  CINIT(SSLCERTTYPE, OBJECTPOINT, 86),
+
+  /* name of the file keeping your private SSL-key */
+  CINIT(SSLKEY, OBJECTPOINT, 87),
+
+  /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
+  CINIT(SSLKEYTYPE, OBJECTPOINT, 88),
+
+  /* crypto engine for the SSL-sub system */
+  CINIT(SSLENGINE, OBJECTPOINT, 89),
+
+  /* set the crypto engine for the SSL-sub system as default
+     the param has no meaning...
+   */
+  CINIT(SSLENGINE_DEFAULT, LONG, 90),
+
+  /* Non-zero value means to use the global dns cache */
+  CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To become OBSOLETE soon */
+
+  /* DNS cache timeout */
+  CINIT(DNS_CACHE_TIMEOUT, LONG, 92),
+
+  /* send linked-list of pre-transfer QUOTE commands */
+  CINIT(PREQUOTE, OBJECTPOINT, 93),
+
+  /* set the debug function */
+  CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94),
+
+  /* set the data for the debug function */
+  CINIT(DEBUGDATA, OBJECTPOINT, 95),
+
+  /* mark this as start of a cookie session */
+  CINIT(COOKIESESSION, LONG, 96),
+
+  /* The CApath directory used to validate the peer certificate
+     this option is used only if SSL_VERIFYPEER is true */
+  CINIT(CAPATH, OBJECTPOINT, 97),
+
+  /* Instruct libcurl to use a smaller receive buffer */
+  CINIT(BUFFERSIZE, LONG, 98),
+
+  /* Instruct libcurl to not use any signal/alarm handlers, even when using
+     timeouts. This option is useful for multi-threaded applications.
+     See libcurl-the-guide for more background information. */
+  CINIT(NOSIGNAL, LONG, 99),
+
+  /* Provide a CURLShare for mutexing non-ts data */
+  CINIT(SHARE, OBJECTPOINT, 100),
+
+  /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default),
+     CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */
+  CINIT(PROXYTYPE, LONG, 101),
+
+  /* Set the Accept-Encoding string. Use this to tell a server you would like
+     the response to be compressed. */
+  CINIT(ENCODING, OBJECTPOINT, 102),
+
+  /* Set pointer to private data */
+  CINIT(PRIVATE, OBJECTPOINT, 103),
+
+  /* Set aliases for HTTP 200 in the HTTP Response header */
+  CINIT(HTTP200ALIASES, OBJECTPOINT, 104),
+
+  /* Continue to send authentication (user+password) when following locations,
+     even when hostname changed. This can potentially send off the name
+     and password to whatever host the server decides. */
+  CINIT(UNRESTRICTED_AUTH, LONG, 105),
+
+  /* Specifically switch on or off the FTP engine's use of the EPRT command ( it
+     also disables the LPRT attempt). By default, those ones will always be
+     attempted before the good old traditional PORT command. */
+  CINIT(FTP_USE_EPRT, LONG, 106),
+
+  /* Set this to a bitmask value to enable the particular authentications
+     methods you like. Use this in combination with CURLOPT_USERPWD.
+     Note that setting multiple bits may cause extra network round-trips. */
+  CINIT(HTTPAUTH, LONG, 107),
+
+  /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx
+     in second argument. The function must be matching the
+     curl_ssl_ctx_callback proto. */
+  CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108),
+
+  /* Set the userdata for the ssl context callback function's third
+     argument */
+  CINIT(SSL_CTX_DATA, OBJECTPOINT, 109),
+
+  /* FTP Option that causes missing dirs to be created on the remote server.
+     In 7.19.4 we introduced the convenience enums for this option using the
+     CURLFTP_CREATE_DIR prefix.
+  */
+  CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110),
+
+  /* Set this to a bitmask value to enable the particular authentications
+     methods you like. Use this in combination with CURLOPT_PROXYUSERPWD.
+     Note that setting multiple bits may cause extra network round-trips. */
+  CINIT(PROXYAUTH, LONG, 111),
+
+  /* FTP option that changes the timeout, in seconds, associated with
+     getting a response.  This is different from transfer timeout time and
+     essentially places a demand on the FTP server to acknowledge commands
+     in a timely manner. */
+  CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112),
+
+  /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
+     tell libcurl to resolve names to those IP versions only. This only has
+     affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
+  CINIT(IPRESOLVE, LONG, 113),
+
+  /* Set this option to limit the size of a file that will be downloaded from
+     an HTTP or FTP server.
+
+     Note there is also _LARGE version which adds large file support for
+     platforms which have larger off_t sizes.  See MAXFILESIZE_LARGE below. */
+  CINIT(MAXFILESIZE, LONG, 114),
+
+  /* See the comment for INFILESIZE above, but in short, specifies
+   * the size of the file being uploaded.  -1 means unknown.
+   */
+  CINIT(INFILESIZE_LARGE, OFF_T, 115),
+
+  /* Sets the continuation offset.  There is also a LONG version of this;
+   * look above for RESUME_FROM.
+   */
+  CINIT(RESUME_FROM_LARGE, OFF_T, 116),
+
+  /* Sets the maximum size of data that will be downloaded from
+   * an HTTP or FTP server.  See MAXFILESIZE above for the LONG version.
+   */
+  CINIT(MAXFILESIZE_LARGE, OFF_T, 117),
+
+  /* Set this option to the file name of your .netrc file you want libcurl
+     to parse (using the CURLOPT_NETRC option). If not set, libcurl will do
+     a poor attempt to find the user's home directory and check for a .netrc
+     file in there. */
+  CINIT(NETRC_FILE, OBJECTPOINT, 118),
+
+  /* Enable SSL/TLS for FTP, pick one of:
+     CURLFTPSSL_TRY     - try using SSL, proceed anyway otherwise
+     CURLFTPSSL_CONTROL - SSL for the control connection or fail
+     CURLFTPSSL_ALL     - SSL for all communication or fail
+  */
+  CINIT(USE_SSL, LONG, 119),
+
+  /* The _LARGE version of the standard POSTFIELDSIZE option */
+  CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120),
+
+  /* Enable/disable the TCP Nagle algorithm */
+  CINIT(TCP_NODELAY, LONG, 121),
+
+  /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+  /* 123 OBSOLETE. Gone in 7.16.0 */
+  /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+  /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+  /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+  /* 127 OBSOLETE. Gone in 7.16.0 */
+  /* 128 OBSOLETE. Gone in 7.16.0 */
+
+  /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option
+     can be used to change libcurl's default action which is to first try
+     "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK
+     response has been received.
+
+     Available parameters are:
+     CURLFTPAUTH_DEFAULT - let libcurl decide
+     CURLFTPAUTH_SSL     - try "AUTH SSL" first, then TLS
+     CURLFTPAUTH_TLS     - try "AUTH TLS" first, then SSL
+  */
+  CINIT(FTPSSLAUTH, LONG, 129),
+
+  CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130),
+  CINIT(IOCTLDATA, OBJECTPOINT, 131),
+
+  /* 132 OBSOLETE. Gone in 7.16.0 */
+  /* 133 OBSOLETE. Gone in 7.16.0 */
+
+  /* zero terminated string for pass on to the FTP server when asked for
+     "account" info */
+  CINIT(FTP_ACCOUNT, OBJECTPOINT, 134),
+
+  /* feed cookies into cookie engine */
+  CINIT(COOKIELIST, OBJECTPOINT, 135),
+
+  /* ignore Content-Length */
+  CINIT(IGNORE_CONTENT_LENGTH, LONG, 136),
+
+  /* Set to non-zero to skip the IP address received in a 227 PASV FTP server
+     response. Typically used for FTP-SSL purposes but is not restricted to
+     that. libcurl will then instead use the same IP address it used for the
+     control connection. */
+  CINIT(FTP_SKIP_PASV_IP, LONG, 137),
+
+  /* Select "file method" to use when doing FTP, see the curl_ftpmethod
+     above. */
+  CINIT(FTP_FILEMETHOD, LONG, 138),
+
+  /* Local port number to bind the socket to */
+  CINIT(LOCALPORT, LONG, 139),
+
+  /* Number of ports to try, including the first one set with LOCALPORT.
+     Thus, setting it to 1 will make no additional attempts but the first.
+  */
+  CINIT(LOCALPORTRANGE, LONG, 140),
+
+  /* no transfer, set up connection and let application use the socket by
+     extracting it with CURLINFO_LASTSOCKET */
+  CINIT(CONNECT_ONLY, LONG, 141),
+
+  /* Function that will be called to convert from the
+     network encoding (instead of using the iconv calls in libcurl) */
+  CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142),
+
+  /* Function that will be called to convert to the
+     network encoding (instead of using the iconv calls in libcurl) */
+  CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143),
+
+  /* Function that will be called to convert from UTF8
+     (instead of using the iconv calls in libcurl)
+     Note that this is used only for SSL certificate processing */
+  CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144),
+
+  /* if the connection proceeds too quickly then need to slow it down */
+  /* limit-rate: maximum number of bytes per second to send or receive */
+  CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145),
+  CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146),
+
+  /* Pointer to command string to send if USER/PASS fails. */
+  CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147),
+
+  /* callback function for setting socket options */
+  CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148),
+  CINIT(SOCKOPTDATA, OBJECTPOINT, 149),
+
+  /* set to 0 to disable session ID re-use for this transfer, default is
+     enabled (== 1) */
+  CINIT(SSL_SESSIONID_CACHE, LONG, 150),
+
+  /* allowed SSH authentication methods */
+  CINIT(SSH_AUTH_TYPES, LONG, 151),
+
+  /* Used by scp/sftp to do public/private key authentication */
+  CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152),
+  CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153),
+
+  /* Send CCC (Clear Command Channel) after authentication */
+  CINIT(FTP_SSL_CCC, LONG, 154),
+
+  /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */
+  CINIT(TIMEOUT_MS, LONG, 155),
+  CINIT(CONNECTTIMEOUT_MS, LONG, 156),
+
+  /* set to zero to disable the libcurl's decoding and thus pass the raw body
+     data to the application even when it is encoded/compressed */
+  CINIT(HTTP_TRANSFER_DECODING, LONG, 157),
+  CINIT(HTTP_CONTENT_DECODING, LONG, 158),
+
+  /* Permission used when creating new files and directories on the remote
+     server for protocols that support it, SFTP/SCP/FILE */
+  CINIT(NEW_FILE_PERMS, LONG, 159),
+  CINIT(NEW_DIRECTORY_PERMS, LONG, 160),
+
+  /* Set the behaviour of POST when redirecting. Values must be set to one
+     of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
+  CINIT(POSTREDIR, LONG, 161),
+
+  /* used by scp/sftp to verify the host's public key */
+  CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162),
+
+  /* Callback function for opening socket (instead of socket(2)). Optionally,
+     callback is able change the address or refuse to connect returning
+     CURL_SOCKET_BAD.  The callback should have type
+     curl_opensocket_callback */
+  CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163),
+  CINIT(OPENSOCKETDATA, OBJECTPOINT, 164),
+
+  /* POST volatile input fields. */
+  CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165),
+
+  /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */
+  CINIT(PROXY_TRANSFER_MODE, LONG, 166),
+
+  /* Callback function for seeking in the input stream */
+  CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167),
+  CINIT(SEEKDATA, OBJECTPOINT, 168),
+
+  /* CRL file */
+  CINIT(CRLFILE, OBJECTPOINT, 169),
+
+  /* Issuer certificate */
+  CINIT(ISSUERCERT, OBJECTPOINT, 170),
+
+  /* (IPv6) Address scope */
+  CINIT(ADDRESS_SCOPE, LONG, 171),
+
+  /* Collect certificate chain info and allow it to get retrievable with
+     CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only
+     working with OpenSSL-powered builds. */
+  CINIT(CERTINFO, LONG, 172),
+
+  /* "name" and "pwd" to use when fetching. */
+  CINIT(USERNAME, OBJECTPOINT, 173),
+  CINIT(PASSWORD, OBJECTPOINT, 174),
+
+    /* "name" and "pwd" to use with Proxy when fetching. */
+  CINIT(PROXYUSERNAME, OBJECTPOINT, 175),
+  CINIT(PROXYPASSWORD, OBJECTPOINT, 176),
+
+  /* Comma separated list of hostnames defining no-proxy zones. These should
+     match both hostnames directly, and hostnames within a domain. For
+     example, local.com will match local.com and www.local.com, but NOT
+     notlocal.com or www.notlocal.com. For compatibility with other
+     implementations of this, .local.com will be considered to be the same as
+     local.com. A single * is the only valid wildcard, and effectively
+     disables the use of proxy. */
+  CINIT(NOPROXY, OBJECTPOINT, 177),
+
+  /* block size for TFTP transfers */
+  CINIT(TFTP_BLKSIZE, LONG, 178),
+
+  /* Socks Service */
+  CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179),
+
+  /* Socks Service */
+  CINIT(SOCKS5_GSSAPI_NEC, LONG, 180),
+
+  /* set the bitmask for the protocols that are allowed to be used for the
+     transfer, which thus helps the app which takes URLs from users or other
+     external inputs and want to restrict what protocol(s) to deal
+     with. Defaults to CURLPROTO_ALL. */
+  CINIT(PROTOCOLS, LONG, 181),
+
+  /* set the bitmask for the protocols that libcurl is allowed to follow to,
+     as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs
+     to be set in both bitmasks to be allowed to get redirected to. Defaults
+     to all protocols except FILE and SCP. */
+  CINIT(REDIR_PROTOCOLS, LONG, 182),
+
+  /* set the SSH knownhost file name to use */
+  CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183),
+
+  /* set the SSH host key callback, must point to a curl_sshkeycallback
+     function */
+  CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184),
+
+  /* set the SSH host key callback custom pointer */
+  CINIT(SSH_KEYDATA, OBJECTPOINT, 185),
+
+  CURLOPT_LASTENTRY /* the last unused */
+} CURLoption;
+
+#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
+                          the obsolete stuff removed! */
+
+/* Backwards compatibility with older names */
+/* These are scheduled to disappear by 2011 */
+
+/* This was added in version 7.19.1 */
+#define CURLOPT_POST301 CURLOPT_POSTREDIR
+
+/* These are scheduled to disappear by 2009 */
+
+/* The following were added in 7.17.0 */
+#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD
+#define CURLOPT_FTPAPPEND CURLOPT_APPEND
+#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY
+#define CURLOPT_FTP_SSL CURLOPT_USE_SSL
+
+/* The following were added earlier */
+
+#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD
+#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL
+
+#else
+/* This is set if CURL_NO_OLDIES is defined at compile-time */
+#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */
+#endif
+
+
+  /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host
+     name resolves addresses using more than one IP protocol version, this
+     option might be handy to force libcurl to use a specific IP version. */
+#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP
+                                     versions that your system allows */
+#define CURL_IPRESOLVE_V4       1 /* resolve to ipv4 addresses */
+#define CURL_IPRESOLVE_V6       2 /* resolve to ipv6 addresses */
+
+  /* three convenient "aliases" that follow the name scheme better */
+#define CURLOPT_WRITEDATA CURLOPT_FILE
+#define CURLOPT_READDATA  CURLOPT_INFILE
+#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER
+
+  /* These enums are for use with the CURLOPT_HTTP_VERSION option. */
+enum {
+  CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd
+                             like the library to choose the best possible
+                             for us! */
+  CURL_HTTP_VERSION_1_0,  /* please use HTTP 1.0 in the request */
+  CURL_HTTP_VERSION_1_1,  /* please use HTTP 1.1 in the request */
+
+  CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
+};
+
+  /* These enums are for use with the CURLOPT_NETRC option. */
+enum CURL_NETRC_OPTION {
+  CURL_NETRC_IGNORED,     /* The .netrc will never be read.
+                           * This is the default. */
+  CURL_NETRC_OPTIONAL,    /* A user:password in the URL will be preferred
+                           * to one in the .netrc. */
+  CURL_NETRC_REQUIRED,    /* A user:password in the URL will be ignored.
+                           * Unless one is set programmatically, the .netrc
+                           * will be queried. */
+  CURL_NETRC_LAST
+};
+
+enum {
+  CURL_SSLVERSION_DEFAULT,
+  CURL_SSLVERSION_TLSv1,
+  CURL_SSLVERSION_SSLv2,
+  CURL_SSLVERSION_SSLv3,
+
+  CURL_SSLVERSION_LAST /* never use, keep last */
+};
+
+/* symbols to use with CURLOPT_POSTREDIR.
+   CURL_REDIR_POST_301 and CURL_REDIR_POST_302 can be bitwise ORed so that
+   CURL_REDIR_POST_301 | CURL_REDIR_POST_302 == CURL_REDIR_POST_ALL */
+
+#define CURL_REDIR_GET_ALL  0
+#define CURL_REDIR_POST_301 1
+#define CURL_REDIR_POST_302 2
+#define CURL_REDIR_POST_ALL (CURL_REDIR_POST_301|CURL_REDIR_POST_302)
+
+typedef enum {
+  CURL_TIMECOND_NONE,
+
+  CURL_TIMECOND_IFMODSINCE,
+  CURL_TIMECOND_IFUNMODSINCE,
+  CURL_TIMECOND_LASTMOD,
+
+  CURL_TIMECOND_LAST
+} curl_TimeCond;
+
+
+/* curl_strequal() and curl_strnequal() are subject for removal in a future
+   libcurl, see lib/README.curlx for details */
+CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2);
+CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n);
+
+/* name is uppercase CURLFORM_<name> */
+#ifdef CFINIT
+#undef CFINIT
+#endif
+
+#ifdef CURL_ISOCPP
+#define CFINIT(name) CURLFORM_ ## name
+#else
+/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
+#define CFINIT(name) CURLFORM_/**/name
+#endif
+
+typedef enum {
+  CFINIT(NOTHING),        /********* the first one is unused ************/
+
+  /*  */
+  CFINIT(COPYNAME),
+  CFINIT(PTRNAME),
+  CFINIT(NAMELENGTH),
+  CFINIT(COPYCONTENTS),
+  CFINIT(PTRCONTENTS),
+  CFINIT(CONTENTSLENGTH),
+  CFINIT(FILECONTENT),
+  CFINIT(ARRAY),
+  CFINIT(OBSOLETE),
+  CFINIT(FILE),
+
+  CFINIT(BUFFER),
+  CFINIT(BUFFERPTR),
+  CFINIT(BUFFERLENGTH),
+
+  CFINIT(CONTENTTYPE),
+  CFINIT(CONTENTHEADER),
+  CFINIT(FILENAME),
+  CFINIT(END),
+  CFINIT(OBSOLETE2),
+
+  CFINIT(STREAM),
+
+  CURLFORM_LASTENTRY /* the last unused */
+} CURLformoption;
+
+#undef CFINIT /* done */
+
+/* structure to be used as parameter for CURLFORM_ARRAY */
+struct curl_forms {
+  CURLformoption option;
+  const char     *value;
+};
+
+/* use this for multipart formpost building */
+/* Returns code for curl_formadd()
+ *
+ * Returns:
+ * CURL_FORMADD_OK             on success
+ * CURL_FORMADD_MEMORY         if the FormInfo allocation fails
+ * CURL_FORMADD_OPTION_TWICE   if one option is given twice for one Form
+ * CURL_FORMADD_NULL           if a null pointer was given for a char
+ * CURL_FORMADD_MEMORY         if the allocation of a FormInfo struct failed
+ * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used
+ * CURL_FORMADD_INCOMPLETE     if the some FormInfo is not complete (or error)
+ * CURL_FORMADD_MEMORY         if a curl_httppost struct cannot be allocated
+ * CURL_FORMADD_MEMORY         if some allocation for string copying failed.
+ * CURL_FORMADD_ILLEGAL_ARRAY  if an illegal option is used in an array
+ *
+ ***************************************************************************/
+typedef enum {
+  CURL_FORMADD_OK, /* first, no error */
+
+  CURL_FORMADD_MEMORY,
+  CURL_FORMADD_OPTION_TWICE,
+  CURL_FORMADD_NULL,
+  CURL_FORMADD_UNKNOWN_OPTION,
+  CURL_FORMADD_INCOMPLETE,
+  CURL_FORMADD_ILLEGAL_ARRAY,
+  CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */
+
+  CURL_FORMADD_LAST /* last */
+} CURLFORMcode;
+
+/*
+ * NAME curl_formadd()
+ *
+ * DESCRIPTION
+ *
+ * Pretty advanced function for building multi-part formposts. Each invoke
+ * adds one part that together construct a full post. Then use
+ * CURLOPT_HTTPPOST to send it off to libcurl.
+ */
+CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost,
+                                      struct curl_httppost **last_post,
+                                      ...);
+
+/*
+ * callback function for curl_formget()
+ * The void *arg pointer will be the one passed as second argument to
+ *   curl_formget().
+ * The character buffer passed to it must not be freed.
+ * Should return the buffer length passed to it as the argument "len" on
+ *   success.
+ */
+typedef size_t (*curl_formget_callback)(void *arg, const char *buf, size_t len);
+
+/*
+ * NAME curl_formget()
+ *
+ * DESCRIPTION
+ *
+ * Serialize a curl_httppost struct built with curl_formadd().
+ * Accepts a void pointer as second argument which will be passed to
+ * the curl_formget_callback function.
+ * Returns 0 on success.
+ */
+CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg,
+                             curl_formget_callback append);
+/*
+ * NAME curl_formfree()
+ *
+ * DESCRIPTION
+ *
+ * Free a multipart formpost previously built with curl_formadd().
+ */
+CURL_EXTERN void curl_formfree(struct curl_httppost *form);
+
+/*
+ * NAME curl_getenv()
+ *
+ * DESCRIPTION
+ *
+ * Returns a malloc()'ed string that MUST be curl_free()ed after usage is
+ * complete. DEPRECATED - see lib/README.curlx
+ */
+CURL_EXTERN char *curl_getenv(const char *variable);
+
+/*
+ * NAME curl_version()
+ *
+ * DESCRIPTION
+ *
+ * Returns a static ascii string of the libcurl version.
+ */
+CURL_EXTERN char *curl_version(void);
+
+/*
+ * NAME curl_easy_escape()
+ *
+ * DESCRIPTION
+ *
+ * Escapes URL strings (converts all letters consider illegal in URLs to their
+ * %XX versions). This function returns a new allocated string or NULL if an
+ * error occurred.
+ */
+CURL_EXTERN char *curl_easy_escape(CURL *handle,
+                                   const char *string,
+                                   int length);
+
+/* the previous version: */
+CURL_EXTERN char *curl_escape(const char *string,
+                              int length);
+
+
+/*
+ * NAME curl_easy_unescape()
+ *
+ * DESCRIPTION
+ *
+ * Unescapes URL encoding in strings (converts all %XX codes to their 8bit
+ * versions). This function returns a new allocated string or NULL if an error
+ * occurred.
+ * Conversion Note: On non-ASCII platforms the ASCII %XX codes are
+ * converted into the host encoding.
+ */
+CURL_EXTERN char *curl_easy_unescape(CURL *handle,
+                                     const char *string,
+                                     int length,
+                                     int *outlength);
+
+/* the previous version */
+CURL_EXTERN char *curl_unescape(const char *string,
+                                int length);
+
+/*
+ * NAME curl_free()
+ *
+ * DESCRIPTION
+ *
+ * Provided for de-allocation in the same translation unit that did the
+ * allocation. Added in libcurl 7.10
+ */
+CURL_EXTERN void curl_free(void *p);
+
+/*
+ * NAME curl_global_init()
+ *
+ * DESCRIPTION
+ *
+ * curl_global_init() should be invoked exactly once for each application that
+ * uses libcurl and before any call of other libcurl functions.
+ *
+ * This function is not thread-safe!
+ */
+CURL_EXTERN CURLcode curl_global_init(long flags);
+
+/*
+ * NAME curl_global_init_mem()
+ *
+ * DESCRIPTION
+ *
+ * curl_global_init() or curl_global_init_mem() should be invoked exactly once
+ * for each application that uses libcurl.  This function can be used to
+ * initialize libcurl and set user defined memory management callback
+ * functions.  Users can implement memory management routines to check for
+ * memory leaks, check for mis-use of the curl library etc.  User registered
+ * callback routines with be invoked by this library instead of the system
+ * memory management routines like malloc, free etc.
+ */
+CURL_EXTERN CURLcode curl_global_init_mem(long flags,
+                                          curl_malloc_callback m,
+                                          curl_free_callback f,
+                                          curl_realloc_callback r,
+                                          curl_strdup_callback s,
+                                          curl_calloc_callback c);
+
+/*
+ * NAME curl_global_cleanup()
+ *
+ * DESCRIPTION
+ *
+ * curl_global_cleanup() should be invoked exactly once for each application
+ * that uses libcurl
+ */
+CURL_EXTERN void curl_global_cleanup(void);
+
+/* linked-list structure for the CURLOPT_QUOTE option (and other) */
+struct curl_slist {
+  char *data;
+  struct curl_slist *next;
+};
+
+/*
+ * NAME curl_slist_append()
+ *
+ * DESCRIPTION
+ *
+ * Appends a string to a linked list. If no list exists, it will be created
+ * first. Returns the new list, after appending.
+ */
+CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *,
+                                                 const char *);
+
+/*
+ * NAME curl_slist_free_all()
+ *
+ * DESCRIPTION
+ *
+ * free a previously built curl_slist.
+ */
+CURL_EXTERN void curl_slist_free_all(struct curl_slist *);
+
+/*
+ * NAME curl_getdate()
+ *
+ * DESCRIPTION
+ *
+ * Returns the time, in seconds since 1 Jan 1970 of the time string given in
+ * the first argument. The time argument in the second parameter is unused
+ * and should be set to NULL.
+ */
+CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
+
+/* info about the certificate chain, only for OpenSSL builds. Asked
+   for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
+struct curl_certinfo {
+  int num_of_certs;             /* number of certificates with information */
+  struct curl_slist **certinfo; /* for each index in this array, there's a
+                                   linked list with textual information in the
+                                   format "name: value" */
+};
+
+#define CURLINFO_STRING   0x100000
+#define CURLINFO_LONG     0x200000
+#define CURLINFO_DOUBLE   0x300000
+#define CURLINFO_SLIST    0x400000
+#define CURLINFO_MASK     0x0fffff
+#define CURLINFO_TYPEMASK 0xf00000
+
+typedef enum {
+  CURLINFO_NONE, /* first, never use this */
+  CURLINFO_EFFECTIVE_URL    = CURLINFO_STRING + 1,
+  CURLINFO_RESPONSE_CODE    = CURLINFO_LONG   + 2,
+  CURLINFO_TOTAL_TIME       = CURLINFO_DOUBLE + 3,
+  CURLINFO_NAMELOOKUP_TIME  = CURLINFO_DOUBLE + 4,
+  CURLINFO_CONNECT_TIME     = CURLINFO_DOUBLE + 5,
+  CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
+  CURLINFO_SIZE_UPLOAD      = CURLINFO_DOUBLE + 7,
+  CURLINFO_SIZE_DOWNLOAD    = CURLINFO_DOUBLE + 8,
+  CURLINFO_SPEED_DOWNLOAD   = CURLINFO_DOUBLE + 9,
+  CURLINFO_SPEED_UPLOAD     = CURLINFO_DOUBLE + 10,
+  CURLINFO_HEADER_SIZE      = CURLINFO_LONG   + 11,
+  CURLINFO_REQUEST_SIZE     = CURLINFO_LONG   + 12,
+  CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG   + 13,
+  CURLINFO_FILETIME         = CURLINFO_LONG   + 14,
+  CURLINFO_CONTENT_LENGTH_DOWNLOAD   = CURLINFO_DOUBLE + 15,
+  CURLINFO_CONTENT_LENGTH_UPLOAD     = CURLINFO_DOUBLE + 16,
+  CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
+  CURLINFO_CONTENT_TYPE     = CURLINFO_STRING + 18,
+  CURLINFO_REDIRECT_TIME    = CURLINFO_DOUBLE + 19,
+  CURLINFO_REDIRECT_COUNT   = CURLINFO_LONG   + 20,
+  CURLINFO_PRIVATE          = CURLINFO_STRING + 21,
+  CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG   + 22,
+  CURLINFO_HTTPAUTH_AVAIL   = CURLINFO_LONG   + 23,
+  CURLINFO_PROXYAUTH_AVAIL  = CURLINFO_LONG   + 24,
+  CURLINFO_OS_ERRNO         = CURLINFO_LONG   + 25,
+  CURLINFO_NUM_CONNECTS     = CURLINFO_LONG   + 26,
+  CURLINFO_SSL_ENGINES      = CURLINFO_SLIST  + 27,
+  CURLINFO_COOKIELIST       = CURLINFO_SLIST  + 28,
+  CURLINFO_LASTSOCKET       = CURLINFO_LONG   + 29,
+  CURLINFO_FTP_ENTRY_PATH   = CURLINFO_STRING + 30,
+  CURLINFO_REDIRECT_URL     = CURLINFO_STRING + 31,
+  CURLINFO_PRIMARY_IP       = CURLINFO_STRING + 32,
+  CURLINFO_APPCONNECT_TIME  = CURLINFO_DOUBLE + 33,
+  CURLINFO_CERTINFO         = CURLINFO_SLIST  + 34,
+  CURLINFO_CONDITION_UNMET  = CURLINFO_LONG   + 35,
+  /* Fill in new entries below here! */
+
+  CURLINFO_LASTONE          = 35
+} CURLINFO;
+
+/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
+   CURLINFO_HTTP_CODE */
+#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE
+
+typedef enum {
+  CURLCLOSEPOLICY_NONE, /* first, never use this */
+
+  CURLCLOSEPOLICY_OLDEST,
+  CURLCLOSEPOLICY_LEAST_RECENTLY_USED,
+  CURLCLOSEPOLICY_LEAST_TRAFFIC,
+  CURLCLOSEPOLICY_SLOWEST,
+  CURLCLOSEPOLICY_CALLBACK,
+
+  CURLCLOSEPOLICY_LAST /* last, never use this */
+} curl_closepolicy;
+
+#define CURL_GLOBAL_SSL (1<<0)
+#define CURL_GLOBAL_WIN32 (1<<1)
+#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32)
+#define CURL_GLOBAL_NOTHING 0
+#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL
+
+
+/*****************************************************************************
+ * Setup defines, protos etc for the sharing stuff.
+ */
+
+/* Different data locks for a single share */
+typedef enum {
+  CURL_LOCK_DATA_NONE = 0,
+  /*  CURL_LOCK_DATA_SHARE is used internally to say that
+   *  the locking is just made to change the internal state of the share
+   *  itself.
+   */
+  CURL_LOCK_DATA_SHARE,
+  CURL_LOCK_DATA_COOKIE,
+  CURL_LOCK_DATA_DNS,
+  CURL_LOCK_DATA_SSL_SESSION,
+  CURL_LOCK_DATA_CONNECT,
+  CURL_LOCK_DATA_LAST
+} curl_lock_data;
+
+/* Different lock access types */
+typedef enum {
+  CURL_LOCK_ACCESS_NONE = 0,   /* unspecified action */
+  CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */
+  CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */
+  CURL_LOCK_ACCESS_LAST        /* never use */
+} curl_lock_access;
+
+typedef void (*curl_lock_function)(CURL *handle,
+                                   curl_lock_data data,
+                                   curl_lock_access locktype,
+                                   void *userptr);
+typedef void (*curl_unlock_function)(CURL *handle,
+                                     curl_lock_data data,
+                                     void *userptr);
+
+typedef void CURLSH;
+
+typedef enum {
+  CURLSHE_OK,  /* all is fine */
+  CURLSHE_BAD_OPTION, /* 1 */
+  CURLSHE_IN_USE,     /* 2 */
+  CURLSHE_INVALID,    /* 3 */
+  CURLSHE_NOMEM,      /* out of memory */
+  CURLSHE_LAST /* never use */
+} CURLSHcode;
+
+typedef enum {
+  CURLSHOPT_NONE,  /* don't use */
+  CURLSHOPT_SHARE,   /* specify a data type to share */
+  CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */
+  CURLSHOPT_LOCKFUNC,   /* pass in a 'curl_lock_function' pointer */
+  CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */
+  CURLSHOPT_USERDATA,   /* pass in a user data pointer used in the lock/unlock
+                           callback functions */
+  CURLSHOPT_LAST  /* never use */
+} CURLSHoption;
+
+CURL_EXTERN CURLSH *curl_share_init(void);
+CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...);
+CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *);
+
+/****************************************************************************
+ * Structures for querying information about the curl library at runtime.
+ */
+
+typedef enum {
+  CURLVERSION_FIRST,
+  CURLVERSION_SECOND,
+  CURLVERSION_THIRD,
+  CURLVERSION_FOURTH,
+  CURLVERSION_LAST /* never actually use this */
+} CURLversion;
+
+/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by
+   basically all programs ever that want to get version information. It is
+   meant to be a built-in version number for what kind of struct the caller
+   expects. If the struct ever changes, we redefine the NOW to another enum
+   from above. */
+#define CURLVERSION_NOW CURLVERSION_FOURTH
+
+typedef struct {
+  CURLversion age;          /* age of the returned struct */
+  const char *version;      /* LIBCURL_VERSION */
+  unsigned int version_num; /* LIBCURL_VERSION_NUM */
+  const char *host;         /* OS/host/cpu/machine when configured */
+  int features;             /* bitmask, see defines below */
+  const char *ssl_version;  /* human readable string */
+  long ssl_version_num;     /* not used anymore, always 0 */
+  const char *libz_version; /* human readable string */
+  /* protocols is terminated by an entry with a NULL protoname */
+  const char * const *protocols;
+
+  /* The fields below this were added in CURLVERSION_SECOND */
+  const char *ares;
+  int ares_num;
+
+  /* This field was added in CURLVERSION_THIRD */
+  const char *libidn;
+
+  /* These field were added in CURLVERSION_FOURTH */
+
+  /* Same as '_libiconv_version' if built with HAVE_ICONV */
+  int iconv_ver_num;
+
+  const char *libssh_version; /* human readable string */
+
+} curl_version_info_data;
+
+#define CURL_VERSION_IPV6      (1<<0)  /* IPv6-enabled */
+#define CURL_VERSION_KERBEROS4 (1<<1)  /* kerberos auth is supported */
+#define CURL_VERSION_SSL       (1<<2)  /* SSL options are present */
+#define CURL_VERSION_LIBZ      (1<<3)  /* libz features are present */
+#define CURL_VERSION_NTLM      (1<<4)  /* NTLM auth is supported */
+#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support */
+#define CURL_VERSION_DEBUG     (1<<6)  /* built with debug capabilities */
+#define CURL_VERSION_ASYNCHDNS (1<<7)  /* asynchronous dns resolves */
+#define CURL_VERSION_SPNEGO    (1<<8)  /* SPNEGO auth */
+#define CURL_VERSION_LARGEFILE (1<<9)  /* supports files bigger than 2GB */
+#define CURL_VERSION_IDN       (1<<10) /* International Domain Names support */
+#define CURL_VERSION_SSPI      (1<<11) /* SSPI is supported */
+#define CURL_VERSION_CONV      (1<<12) /* character conversions supported */
+#define CURL_VERSION_CURLDEBUG (1<<13) /* debug memory tracking supported */
+
+/*
+ * NAME curl_version_info()
+ *
+ * DESCRIPTION
+ *
+ * This function returns a pointer to a static copy of the version info
+ * struct. See above.
+ */
+CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion);
+
+/*
+ * NAME curl_easy_strerror()
+ *
+ * DESCRIPTION
+ *
+ * The curl_easy_strerror function may be used to turn a CURLcode value
+ * into the equivalent human readable error string.  This is useful
+ * for printing meaningful error messages.
+ */
+CURL_EXTERN const char *curl_easy_strerror(CURLcode);
+
+/*
+ * NAME curl_share_strerror()
+ *
+ * DESCRIPTION
+ *
+ * The curl_share_strerror function may be used to turn a CURLSHcode value
+ * into the equivalent human readable error string.  This is useful
+ * for printing meaningful error messages.
+ */
+CURL_EXTERN const char *curl_share_strerror(CURLSHcode);
+
+/*
+ * NAME curl_easy_pause()
+ *
+ * DESCRIPTION
+ *
+ * The curl_easy_pause function pauses or unpauses transfers. Select the new
+ * state by setting the bitmask, use the convenience defines below.
+ *
+ */
+CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
+
+#define CURLPAUSE_RECV      (1<<0)
+#define CURLPAUSE_RECV_CONT (0)
+
+#define CURLPAUSE_SEND      (1<<2)
+#define CURLPAUSE_SEND_CONT (0)
+
+#define CURLPAUSE_ALL       (CURLPAUSE_RECV|CURLPAUSE_SEND)
+#define CURLPAUSE_CONT      (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT)
+
+#ifdef  __cplusplus
+}
+#endif
+
+/* unfortunately, the easy.h and multi.h include files need options and info
+  stuff before they can be included! */
+#include "easy.h" /* nothing in curl is fun without the easy stuff */
+#include "multi.h"
+
+/* the typechecker doesn't work in C++ (yet) */
+#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
+    ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \
+    !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK)
+#include "typecheck-gcc.h"
+#else
+#if defined(__STDC__) && (__STDC__ >= 1)
+/* This preprocessor magic that replaces a call with the exact same call is
+   only done to make sure application authors pass exactly three arguments
+   to these functions. */
+#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param)
+#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg)
+#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
+#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
+#endif /* __STDC__ >= 1 */
+#endif /* gcc >= 4.3 && !__cplusplus */
+
+#endif /* __CURL_CURL_H */
diff --git a/src/third_party/curl/curlbuild.h b/src/third_party/curl/curlbuild.h
new file mode 100644
index 0000000..595df4e
--- /dev/null
+++ b/src/third_party/curl/curlbuild.h
@@ -0,0 +1,203 @@
+/* include/curl/curlbuild.h.  Generated from curlbuild.h.in by configure.  */
+#ifndef __CURL_CURLBUILD_H
+#define __CURL_CURLBUILD_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: curlbuild.h.in,v 1.8 2009-04-29 15:15:38 yangtse Exp $
+ ***************************************************************************/
+
+/* ================================================================ */
+/*               NOTES FOR CONFIGURE CAPABLE SYSTEMS                */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
+ * Nothing in this file is intended to be modified or adjusted by the
+ * curl library user nor by the curl library builder.
+ *
+ * If you think that something actually needs to be changed, adjusted
+ * or fixed in this file, then, report it on the libcurl development
+ * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
+ *
+ * This header file shall only export symbols which are 'curl' or 'CURL'
+ * prefixed, otherwise public name space would be polluted.
+ *
+ * NOTE 2:
+ * -------
+ *
+ * Right now you might be staring at file include/curl/curlbuild.h.in or
+ * at file include/curl/curlbuild.h, this is due to the following reason:
+ *
+ * On systems capable of running the configure script, the configure process
+ * will overwrite the distributed include/curl/curlbuild.h file with one that
+ * is suitable and specific to the library being configured and built, which
+ * is generated from the include/curl/curlbuild.h.in template file.
+ *
+ */
+
+/* ================================================================ */
+/*  DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE  */
+/* ================================================================ */
+
+#ifdef CURL_SIZEOF_LONG
+#  error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
+#endif
+
+#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
+#  error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
+#endif
+
+#ifdef CURL_SIZEOF_CURL_SOCKLEN_T
+#  error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
+#endif
+
+#ifdef CURL_TYPEOF_CURL_OFF_T
+#  error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
+#endif
+
+#ifdef CURL_FORMAT_CURL_OFF_T
+#  error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
+#endif
+
+#ifdef CURL_FORMAT_CURL_OFF_TU
+#  error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
+#endif
+
+#ifdef CURL_FORMAT_OFF_T
+#  error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
+#endif
+
+#ifdef CURL_SIZEOF_CURL_OFF_T
+#  error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
+#endif
+
+#ifdef CURL_SUFFIX_CURL_OFF_T
+#  error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
+#endif
+
+#ifdef CURL_SUFFIX_CURL_OFF_TU
+#  error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
+   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
+#endif
+
+/* ================================================================ */
+/*  EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY  */
+/* ================================================================ */
+
+/* Configure process defines this to 1 when it finds out that system  */
+/* header file ws2tcpip.h must be included by the external interface. */
+/* #undef CURL_PULL_WS2TCPIP_H */
+#ifdef CURL_PULL_WS2TCPIP_H
+#  ifndef WIN32_LEAN_AND_MEAN
+#    define WIN32_LEAN_AND_MEAN
+#  endif
+#  include <windows.h>
+#  include <winsock2.h>
+#  include <ws2tcpip.h>
+#endif
+
+/* Configure process defines this to 1 when it finds out that system   */
+/* header file sys/types.h must be included by the external interface. */
+#define CURL_PULL_SYS_TYPES_H 1
+#ifdef CURL_PULL_SYS_TYPES_H
+#  include <sys/types.h>
+#endif
+
+/* Configure process defines this to 1 when it finds out that system */
+/* header file stdint.h must be included by the external interface.  */
+/* #undef CURL_PULL_STDINT_H */
+#ifdef CURL_PULL_STDINT_H
+#  include <stdint.h>
+#endif
+
+/* Configure process defines this to 1 when it finds out that system  */
+/* header file inttypes.h must be included by the external interface. */
+/* #undef CURL_PULL_INTTYPES_H */
+#ifdef CURL_PULL_INTTYPES_H
+#  include <inttypes.h>
+#endif
+
+/* Configure process defines this to 1 when it finds out that system    */
+/* header file sys/socket.h must be included by the external interface. */
+#define CURL_PULL_SYS_SOCKET_H 1
+#ifdef CURL_PULL_SYS_SOCKET_H
+#  include <sys/socket.h>
+#endif
+
+/* The size of `long', as computed by sizeof. */
+#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) ||      \
+    defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABI64) ||   \
+    defined(__powerpc64__) || defined(__s390x__) || defined(__LP64__)
+#define CURL_SIZEOF_LONG 8
+#else
+#define CURL_SIZEOF_LONG 4
+#endif
+
+/* Integral data type used for curl_socklen_t. */
+#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
+
+/* The size of `curl_socklen_t', as computed by sizeof. */
+#define CURL_SIZEOF_CURL_SOCKLEN_T 4
+
+/* Data type definition of curl_socklen_t. */
+typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
+
+/* Signed integral data type used for curl_off_t. */
+#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) ||      \
+    defined(__aarch64__)
+#define CURL_TYPEOF_CURL_OFF_T long
+#else
+#define CURL_TYPEOF_CURL_OFF_T int64_t
+#endif
+
+/* Data type definition of curl_off_t. */
+typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
+
+/* curl_off_t formatting string directive without "%" conversion specifier. */
+#define CURL_FORMAT_CURL_OFF_T "ld"
+
+/* unsigned curl_off_t formatting string without "%" conversion specifier. */
+#define CURL_FORMAT_CURL_OFF_TU "lu"
+
+/* curl_off_t formatting string directive with "%" conversion specifier. */
+#define CURL_FORMAT_OFF_T "%ld"
+
+/* The size of `curl_off_t', as computed by sizeof. */
+#define CURL_SIZEOF_CURL_OFF_T 8
+
+/* curl_off_t constant suffix. */
+#define CURL_SUFFIX_CURL_OFF_T L
+
+/* unsigned curl_off_t constant suffix. */
+#define CURL_SUFFIX_CURL_OFF_TU UL
+
+#endif /* __CURL_CURLBUILD_H */
diff --git a/src/third_party/curl/curlrules.h b/src/third_party/curl/curlrules.h
new file mode 100644
index 0000000..abac439
--- /dev/null
+++ b/src/third_party/curl/curlrules.h
@@ -0,0 +1,249 @@
+#ifndef __CURL_CURLRULES_H
+#define __CURL_CURLRULES_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: curlrules.h,v 1.7 2009-10-27 16:56:20 yangtse Exp $
+ ***************************************************************************/
+
+/* ================================================================ */
+/*                    COMPILE TIME SANITY CHECKS                    */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
+ * All checks done in this file are intentionally placed in a public
+ * header file which is pulled by curl/curl.h when an application is
+ * being built using an already built libcurl library. Additionally
+ * this file is also included and used when building the library.
+ *
+ * If compilation fails on this file it is certainly sure that the
+ * problem is elsewhere. It could be a problem in the curlbuild.h
+ * header file, or simply that you are using different compilation
+ * settings than those used to build the library.
+ *
+ * Nothing in this file is intended to be modified or adjusted by the
+ * curl library user nor by the curl library builder.
+ *
+ * Do not deactivate any check, these are done to make sure that the
+ * library is properly built and used.
+ *
+ * You can find further help on the libcurl development mailing list:
+ * http://cool.haxx.se/mailman/listinfo/curl-library/
+ *
+ * NOTE 2
+ * ------
+ *
+ * Some of the following compile time checks are based on the fact
+ * that the dimension of a constant array can not be a negative one.
+ * In this way if the compile time verification fails, the compilation
+ * will fail issuing an error. The error description wording is compiler
+ * dependent but it will be quite similar to one of the following:
+ *
+ *   "negative subscript or subscript is too large"
+ *   "array must have at least one element"
+ *   "-1 is an illegal array size"
+ *   "size of array is negative"
+ *
+ * If you are building an application which tries to use an already
+ * built libcurl library and you are getting this kind of errors on
+ * this file, it is a clear indication that there is a mismatch between
+ * how the library was built and how you are trying to use it for your
+ * application. Your already compiled or binary library provider is the
+ * only one who can give you the details you need to properly use it.
+ */
+
+/*
+ * Verify that some macros are actually defined.
+ */
+
+#ifndef CURL_SIZEOF_LONG
+#  error "CURL_SIZEOF_LONG definition is missing!"
+   Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing
+#endif
+
+#ifndef CURL_TYPEOF_CURL_SOCKLEN_T
+#  error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!"
+   Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing
+#endif
+
+#ifndef CURL_SIZEOF_CURL_SOCKLEN_T
+#  error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!"
+   Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing
+#endif
+
+#ifndef CURL_TYPEOF_CURL_OFF_T
+#  error "CURL_TYPEOF_CURL_OFF_T definition is missing!"
+   Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing
+#endif
+
+#ifndef CURL_FORMAT_CURL_OFF_T
+#  error "CURL_FORMAT_CURL_OFF_T definition is missing!"
+   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing
+#endif
+
+#ifndef CURL_FORMAT_CURL_OFF_TU
+#  error "CURL_FORMAT_CURL_OFF_TU definition is missing!"
+   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing
+#endif
+
+#ifndef CURL_FORMAT_OFF_T
+#  error "CURL_FORMAT_OFF_T definition is missing!"
+   Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing
+#endif
+
+#ifndef CURL_SIZEOF_CURL_OFF_T
+#  error "CURL_SIZEOF_CURL_OFF_T definition is missing!"
+   Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing
+#endif
+
+#ifndef CURL_SUFFIX_CURL_OFF_T
+#  error "CURL_SUFFIX_CURL_OFF_T definition is missing!"
+   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing
+#endif
+
+#ifndef CURL_SUFFIX_CURL_OFF_TU
+#  error "CURL_SUFFIX_CURL_OFF_TU definition is missing!"
+   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing
+#endif
+
+/*
+ * Macros private to this header file.
+ */
+
+#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
+
+#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1
+
+/*
+ * Verify that the size previously defined and expected for long
+ * is the same as the one reported by sizeof() at compile time.
+ */
+
+typedef char
+  __curl_rule_01__
+    [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
+
+/*
+ * Verify that the size previously defined and expected for
+ * curl_off_t is actually the the same as the one reported
+ * by sizeof() at compile time.
+ */
+
+typedef char
+  __curl_rule_02__
+    [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
+
+/*
+ * Verify at compile time that the size of curl_off_t as reported
+ * by sizeof() is greater or equal than the one reported for long
+ * for the current compilation.
+ */
+
+typedef char
+  __curl_rule_03__
+    [CurlchkszGE(curl_off_t, long)];
+
+/*
+ * Verify that the size previously defined and expected for
+ * curl_socklen_t is actually the the same as the one reported
+ * by sizeof() at compile time.
+ */
+
+typedef char
+  __curl_rule_04__
+    [CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)];
+
+/*
+ * Verify at compile time that the size of curl_socklen_t as reported
+ * by sizeof() is greater or equal than the one reported for int for
+ * the current compilation.
+ */
+
+typedef char
+  __curl_rule_05__
+    [CurlchkszGE(curl_socklen_t, int)];
+
+/* ================================================================ */
+/*          EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS           */
+/* ================================================================ */
+
+/* 
+ * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
+ * these to be visible and exported by the external libcurl interface API,
+ * while also making them visible to the library internals, simply including
+ * setup.h, without actually needing to include curl.h internally.
+ * If some day this section would grow big enough, all this should be moved
+ * to its own header file.
+ */
+
+/*
+ * Figure out if we can use the ## preprocessor operator, which is supported
+ * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
+ * or  __cplusplus so we need to carefully check for them too.
+ */
+
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
+  defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
+  defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
+  defined(__ILEC400__)
+  /* This compiler is believed to have an ISO compatible preprocessor */
+#define CURL_ISOCPP
+#else
+  /* This compiler is believed NOT to have an ISO compatible preprocessor */
+#undef CURL_ISOCPP
+#endif
+
+/*
+ * Macros for minimum-width signed and unsigned curl_off_t integer constants.
+ */
+
+#ifdef CURL_ISOCPP
+#  define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix
+#else
+#  define __CURL_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix
+#endif
+#define __CURL_OFF_T_C_HELPER1(Val,Suffix) __CURL_OFF_T_C_HELPER2(Val,Suffix)
+#define CURL_OFF_T_C(Val)  __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_T)
+#define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HELPER1(Val,CURL_SUFFIX_CURL_OFF_TU)
+
+/*
+ * Get rid of macros private to this header file.
+ */
+
+#undef CurlchkszEQ
+#undef CurlchkszGE
+
+/*
+ * Get rid of macros not intended to exist beyond this point.
+ */
+
+#undef CURL_PULL_WS2TCPIP_H
+#undef CURL_PULL_SYS_TYPES_H
+#undef CURL_PULL_SYS_SOCKET_H
+#undef CURL_PULL_STDINT_H
+#undef CURL_PULL_INTTYPES_H
+
+#undef CURL_TYPEOF_CURL_SOCKLEN_T
+#undef CURL_TYPEOF_CURL_OFF_T
+
+#endif /* __CURL_CURLRULES_H */
diff --git a/src/third_party/curl/curlver.h b/src/third_party/curl/curlver.h
new file mode 100644
index 0000000..afa85c1
--- /dev/null
+++ b/src/third_party/curl/curlver.h
@@ -0,0 +1,70 @@
+#ifndef __CURL_CURLVER_H
+#define __CURL_CURLVER_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: curlver.h,v 1.48 2009-08-12 11:24:52 bagder Exp $
+ ***************************************************************************/
+
+/* This header file contains nothing but libcurl version info, generated by
+   a script at release-time. This was made its own header file in 7.11.2 */
+
+/* This is the global package copyright */
+#define LIBCURL_COPYRIGHT "1996 - 2009 Daniel Stenberg, <daniel@haxx.se>."
+
+/* This is the version number of the libcurl package from which this header
+   file origins: */
+#define LIBCURL_VERSION "7.19.7"
+
+/* The numeric version number is also available "in parts" by using these
+   defines: */
+#define LIBCURL_VERSION_MAJOR 7
+#define LIBCURL_VERSION_MINOR 19
+#define LIBCURL_VERSION_PATCH 7
+
+/* This is the numeric version of the libcurl version number, meant for easier
+   parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
+   always follow this syntax:
+
+         0xXXYYZZ
+
+   Where XX, YY and ZZ are the main version, release and patch numbers in
+   hexadecimal (using 8 bits each). All three numbers are always represented
+   using two digits.  1.2 would appear as "0x010200" while version 9.11.7
+   appears as "0x090b07".
+
+   This 6-digit (24 bits) hexadecimal number does not show pre-release number,
+   and it is always a greater number in a more recent release. It makes
+   comparisons with greater than and less than work.
+*/
+#define LIBCURL_VERSION_NUM 0x071307
+
+/*
+ * This is the date and time when the full source package was created. The
+ * timestamp is not stored in CVS, as the timestamp is properly set in the
+ * tarballs by the maketgz script.
+ *
+ * The format of the date should follow this template:
+ *
+ * "Mon Feb 12 11:35:33 UTC 2007"
+ */
+#define LIBCURL_TIMESTAMP "Wed Nov  4 12:34:59 UTC 2009"
+
+#endif /* __CURL_CURLVER_H */
diff --git a/src/third_party/curl/easy.h b/src/third_party/curl/easy.h
new file mode 100644
index 0000000..40449c3
--- /dev/null
+++ b/src/third_party/curl/easy.h
@@ -0,0 +1,103 @@
+#ifndef __CURL_EASY_H
+#define __CURL_EASY_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: easy.h,v 1.14 2008-05-12 21:43:28 bagder Exp $
+ ***************************************************************************/
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+CURL_EXTERN CURL *curl_easy_init(void);
+CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
+CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
+CURL_EXTERN void curl_easy_cleanup(CURL *curl);
+
+/*
+ * NAME curl_easy_getinfo()
+ *
+ * DESCRIPTION
+ *
+ * Request internal information from the curl session with this function.  The
+ * third argument MUST be a pointer to a long, a pointer to a char * or a
+ * pointer to a double (as the documentation describes elsewhere).  The data
+ * pointed to will be filled in accordingly and can be relied upon only if the
+ * function returns CURLE_OK.  This function is intended to get used *AFTER* a
+ * performed transfer, all results from this function are undefined until the
+ * transfer is completed.
+ */
+CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...);
+
+
+/*
+ * NAME curl_easy_duphandle()
+ *
+ * DESCRIPTION
+ *
+ * Creates a new curl session handle with the same options set for the handle
+ * passed in. Duplicating a handle could only be a matter of cloning data and
+ * options, internal state info and things like persistant connections cannot
+ * be transfered. It is useful in multithreaded applications when you can run
+ * curl_easy_duphandle() for each new thread to avoid a series of identical
+ * curl_easy_setopt() invokes in every thread.
+ */
+CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl);
+
+/*
+ * NAME curl_easy_reset()
+ *
+ * DESCRIPTION
+ *
+ * Re-initializes a CURL handle to the default values. This puts back the
+ * handle to the same state as it was in when it was just created.
+ *
+ * It does keep: live connections, the Session ID cache, the DNS cache and the
+ * cookies.
+ */
+CURL_EXTERN void curl_easy_reset(CURL *curl);
+
+/*
+ * NAME curl_easy_recv()
+ *
+ * DESCRIPTION
+ *
+ * Receives data from the connected socket. Use after successful
+ * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
+ */
+CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
+                                    size_t *n);
+
+/*
+ * NAME curl_easy_send()
+ *
+ * DESCRIPTION
+ *
+ * Sends data over the connected socket. Use after successful
+ * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
+ */
+CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
+                                    size_t buflen, size_t *n);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/third_party/curl/mprintf.h b/src/third_party/curl/mprintf.h
new file mode 100644
index 0000000..d7202de
--- /dev/null
+++ b/src/third_party/curl/mprintf.h
@@ -0,0 +1,82 @@
+#ifndef __CURL_MPRINTF_H
+#define __CURL_MPRINTF_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: mprintf.h,v 1.16 2008-05-20 10:21:50 patrickm Exp $
+ ***************************************************************************/
+
+#include <stdarg.h>
+#include <stdio.h> /* needed for FILE */
+
+#include "curl.h"
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+CURL_EXTERN int curl_mprintf(const char *format, ...);
+CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...);
+CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...);
+CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength,
+                               const char *format, ...);
+CURL_EXTERN int curl_mvprintf(const char *format, va_list args);
+CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args);
+CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args);
+CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength,
+                                const char *format, va_list args);
+CURL_EXTERN char *curl_maprintf(const char *format, ...);
+CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
+
+#ifdef _MPRINTF_REPLACE
+# undef printf
+# undef fprintf
+# undef sprintf
+# undef vsprintf
+# undef snprintf
+# undef vprintf
+# undef vfprintf
+# undef vsnprintf
+# undef aprintf
+# undef vaprintf
+# define printf curl_mprintf
+# define fprintf curl_mfprintf
+#ifdef CURLDEBUG
+/* When built with CURLDEBUG we define away the sprintf() functions since we
+   don't want internal code to be using them */
+# define sprintf sprintf_was_used
+# define vsprintf vsprintf_was_used
+#else
+# define sprintf curl_msprintf
+# define vsprintf curl_mvsprintf
+#endif
+# define snprintf curl_msnprintf
+# define vprintf curl_mvprintf
+# define vfprintf curl_mvfprintf
+# define vsnprintf curl_mvsnprintf
+# define aprintf curl_maprintf
+# define vaprintf curl_mvaprintf
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* __CURL_MPRINTF_H */
diff --git a/src/third_party/curl/multi.h b/src/third_party/curl/multi.h
new file mode 100644
index 0000000..153f772
--- /dev/null
+++ b/src/third_party/curl/multi.h
@@ -0,0 +1,346 @@
+#ifndef __CURL_MULTI_H
+#define __CURL_MULTI_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: multi.h,v 1.45 2008-05-20 10:21:50 patrickm Exp $
+ ***************************************************************************/
+/*
+  This is an "external" header file. Don't give away any internals here!
+
+  GOALS
+
+  o Enable a "pull" interface. The application that uses libcurl decides where
+    and when to ask libcurl to get/send data.
+
+  o Enable multiple simultaneous transfers in the same thread without making it
+    complicated for the application.
+
+  o Enable the application to select() on its own file descriptors and curl's
+    file descriptors simultaneous easily.
+
+*/
+
+/*
+ * This header file should not really need to include "curl.h" since curl.h
+ * itself includes this file and we expect user applications to do #include
+ * <curl/curl.h> without the need for especially including multi.h.
+ *
+ * For some reason we added this include here at one point, and rather than to
+ * break existing (wrongly written) libcurl applications, we leave it as-is
+ * but with this warning attached.
+ */
+#include "curl.h"
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+typedef void CURLM;
+
+typedef enum {
+  CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
+                                    curl_multi_socket*() soon */
+  CURLM_OK,
+  CURLM_BAD_HANDLE,      /* the passed-in handle is not a valid CURLM handle */
+  CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */
+  CURLM_OUT_OF_MEMORY,   /* if you ever get this, you're in deep sh*t */
+  CURLM_INTERNAL_ERROR,  /* this is a libcurl bug */
+  CURLM_BAD_SOCKET,      /* the passed in socket argument did not match */
+  CURLM_UNKNOWN_OPTION,  /* curl_multi_setopt() with unsupported option */
+  CURLM_LAST
+} CURLMcode;
+
+/* just to make code nicer when using curl_multi_socket() you can now check
+   for CURLM_CALL_MULTI_SOCKET too in the same style it works for
+   curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
+#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
+
+typedef enum {
+  CURLMSG_NONE, /* first, not used */
+  CURLMSG_DONE, /* This easy handle has completed. 'result' contains
+                   the CURLcode of the transfer */
+  CURLMSG_LAST /* last, not used */
+} CURLMSG;
+
+struct CURLMsg {
+  CURLMSG msg;       /* what this message means */
+  CURL *easy_handle; /* the handle it concerns */
+  union {
+    void *whatever;    /* message-specific data */
+    CURLcode result;   /* return code for transfer */
+  } data;
+};
+typedef struct CURLMsg CURLMsg;
+
+/*
+ * Name:    curl_multi_init()
+ *
+ * Desc:    inititalize multi-style curl usage
+ *
+ * Returns: a new CURLM handle to use in all 'curl_multi' functions.
+ */
+CURL_EXTERN CURLM *curl_multi_init(void);
+
+/*
+ * Name:    curl_multi_add_handle()
+ *
+ * Desc:    add a standard curl handle to the multi stack
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle,
+                                            CURL *curl_handle);
+
+ /*
+  * Name:    curl_multi_remove_handle()
+  *
+  * Desc:    removes a curl handle from the multi stack again
+  *
+  * Returns: CURLMcode type, general multi error code.
+  */
+CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
+                                               CURL *curl_handle);
+
+ /*
+  * Name:    curl_multi_fdset()
+  *
+  * Desc:    Ask curl for its fd_set sets. The app can use these to select() or
+  *          poll() on. We want curl_multi_perform() called as soon as one of
+  *          them are ready.
+  *
+  * Returns: CURLMcode type, general multi error code.
+  */
+CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle,
+                                       fd_set *read_fd_set,
+                                       fd_set *write_fd_set,
+                                       fd_set *exc_fd_set,
+                                       int *max_fd);
+
+ /*
+  * Name:    curl_multi_perform()
+  *
+  * Desc:    When the app thinks there's data available for curl it calls this
+  *          function to read/write whatever there is right now. This returns
+  *          as soon as the reads and writes are done. This function does not
+  *          require that there actually is data available for reading or that
+  *          data can be written, it can be called just in case. It returns
+  *          the number of handles that still transfer data in the second
+  *          argument's integer-pointer.
+  *
+  * Returns: CURLMcode type, general multi error code. *NOTE* that this only
+  *          returns errors etc regarding the whole multi stack. There might
+  *          still have occurred problems on invidual transfers even when this
+  *          returns OK.
+  */
+CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
+                                         int *running_handles);
+
+ /*
+  * Name:    curl_multi_cleanup()
+  *
+  * Desc:    Cleans up and removes a whole multi stack. It does not free or
+  *          touch any individual easy handles in any way. We need to define
+  *          in what state those handles will be if this function is called
+  *          in the middle of a transfer.
+  *
+  * Returns: CURLMcode type, general multi error code.
+  */
+CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
+
+/*
+ * Name:    curl_multi_info_read()
+ *
+ * Desc:    Ask the multi handle if there's any messages/informationals from
+ *          the individual transfers. Messages include informationals such as
+ *          error code from the transfer or just the fact that a transfer is
+ *          completed. More details on these should be written down as well.
+ *
+ *          Repeated calls to this function will return a new struct each
+ *          time, until a special "end of msgs" struct is returned as a signal
+ *          that there is no more to get at this point.
+ *
+ *          The data the returned pointer points to will not survive calling
+ *          curl_multi_cleanup().
+ *
+ *          The 'CURLMsg' struct is meant to be very simple and only contain
+ *          very basic informations. If more involved information is wanted,
+ *          we will provide the particular "transfer handle" in that struct
+ *          and that should/could/would be used in subsequent
+ *          curl_easy_getinfo() calls (or similar). The point being that we
+ *          must never expose complex structs to applications, as then we'll
+ *          undoubtably get backwards compatibility problems in the future.
+ *
+ * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
+ *          of structs. It also writes the number of messages left in the
+ *          queue (after this read) in the integer the second argument points
+ *          to.
+ */
+CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
+                                          int *msgs_in_queue);
+
+/*
+ * Name:    curl_multi_strerror()
+ *
+ * Desc:    The curl_multi_strerror function may be used to turn a CURLMcode
+ *          value into the equivalent human readable error string.  This is
+ *          useful for printing meaningful error messages.
+ *
+ * Returns: A pointer to a zero-terminated error message.
+ */
+CURL_EXTERN const char *curl_multi_strerror(CURLMcode);
+
+/*
+ * Name:    curl_multi_socket() and
+ *          curl_multi_socket_all()
+ *
+ * Desc:    An alternative version of curl_multi_perform() that allows the
+ *          application to pass in one of the file descriptors that have been
+ *          detected to have "action" on them and let libcurl perform.
+ *          See man page for details.
+ */
+#define CURL_POLL_NONE   0
+#define CURL_POLL_IN     1
+#define CURL_POLL_OUT    2
+#define CURL_POLL_INOUT  3
+#define CURL_POLL_REMOVE 4
+
+#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD
+
+#define CURL_CSELECT_IN   0x01
+#define CURL_CSELECT_OUT  0x02
+#define CURL_CSELECT_ERR  0x04
+
+typedef int (*curl_socket_callback)(CURL *easy,      /* easy handle */
+                                    curl_socket_t s, /* socket */
+                                    int what,        /* see above */
+                                    void *userp,     /* private callback
+                                                        pointer */
+                                    void *socketp);  /* private socket
+                                                        pointer */
+/*
+ * Name:    curl_multi_timer_callback
+ *
+ * Desc:    Called by libcurl whenever the library detects a change in the
+ *          maximum number of milliseconds the app is allowed to wait before
+ *          curl_multi_socket() or curl_multi_perform() must be called
+ *          (to allow libcurl's timed events to take place).
+ *
+ * Returns: The callback should return zero.
+ */
+typedef int (*curl_multi_timer_callback)(CURLM *multi,    /* multi handle */
+                                         long timeout_ms, /* see above */
+                                         void *userp);    /* private callback
+                                                             pointer */
+
+CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s,
+                                        int *running_handles);
+
+CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle,
+                                               curl_socket_t s,
+                                               int ev_bitmask,
+                                               int *running_handles);
+
+CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle,
+                                            int *running_handles);
+
+#ifndef CURL_ALLOW_OLD_MULTI_SOCKET
+/* This macro below was added in 7.16.3 to push users who recompile to use
+   the new curl_multi_socket_action() instead of the old curl_multi_socket()
+*/
+#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z)
+#endif
+
+/*
+ * Name:    curl_multi_timeout()
+ *
+ * Desc:    Returns the maximum number of milliseconds the app is allowed to
+ *          wait before curl_multi_socket() or curl_multi_perform() must be
+ *          called (to allow libcurl's timed events to take place).
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
+                                         long *milliseconds);
+
+#undef CINIT /* re-using the same name as in curl.h */
+
+#ifdef CURL_ISOCPP
+#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num
+#else
+/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
+#define LONG          CURLOPTTYPE_LONG
+#define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT
+#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
+#define OFF_T         CURLOPTTYPE_OFF_T
+#define CINIT(name,type,number) CURLMOPT_/**/name = type + number
+#endif
+
+typedef enum {
+  /* This is the socket callback function pointer */
+  CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1),
+
+  /* This is the argument passed to the socket callback */
+  CINIT(SOCKETDATA, OBJECTPOINT, 2),
+
+    /* set to 1 to enable pipelining for this multi handle */
+  CINIT(PIPELINING, LONG, 3),
+
+   /* This is the timer callback function pointer */
+  CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4),
+
+  /* This is the argument passed to the timer callback */
+  CINIT(TIMERDATA, OBJECTPOINT, 5),
+
+  /* maximum number of entries in the connection cache */
+  CINIT(MAXCONNECTS, LONG, 6),
+
+  CURLMOPT_LASTENTRY /* the last unused */
+} CURLMoption;
+
+
+/*
+ * Name:    curl_multi_setopt()
+ *
+ * Desc:    Sets options for the multi handle.
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle,
+                                        CURLMoption option, ...);
+
+
+/*
+ * Name:    curl_multi_assign()
+ *
+ * Desc:    This function sets an association in the multi handle between the
+ *          given socket and a private pointer of the application. This is
+ *          (only) useful for curl_multi_socket uses.
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
+                                        curl_socket_t sockfd, void *sockp);
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif
diff --git a/src/third_party/curl/stdcheaders.h b/src/third_party/curl/stdcheaders.h
new file mode 100644
index 0000000..f739d7f
--- /dev/null
+++ b/src/third_party/curl/stdcheaders.h
@@ -0,0 +1,34 @@
+#ifndef __STDC_HEADERS_H
+#define __STDC_HEADERS_H
+/***************************************************************************
+ *                                  _   _ ____  _     
+ *  Project                     ___| | | |  _ \| |    
+ *                             / __| | | | |_) | |    
+ *                            | (__| |_| |  _ <| |___ 
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ * 
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: stdcheaders.h,v 1.9 2009-05-18 12:25:45 yangtse Exp $
+ ***************************************************************************/
+
+#include <sys/types.h>
+
+size_t fread (void *, size_t, size_t, FILE *);
+size_t fwrite (const void *, size_t, size_t, FILE *);
+
+int strcasecmp(const char *, const char *);
+int strncasecmp(const char *, const char *, size_t);
+
+#endif
diff --git a/src/third_party/curl/typecheck-gcc.h b/src/third_party/curl/typecheck-gcc.h
new file mode 100644
index 0000000..9788305
--- /dev/null
+++ b/src/third_party/curl/typecheck-gcc.h
@@ -0,0 +1,551 @@
+#ifndef __CURL_TYPECHECK_GCC_H
+#define __CURL_TYPECHECK_GCC_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: typecheck-gcc.h,v 1.9 2009-01-25 23:26:31 bagder Exp $
+ ***************************************************************************/
+
+/* wraps curl_easy_setopt() with typechecking */
+
+/* To add a new kind of warning, add an
+ *   if(_curl_is_sometype_option(_curl_opt) && ! _curl_is_sometype(value))
+ *     _curl_easy_setopt_err_sometype();
+ * block and define _curl_is_sometype_option, _curl_is_sometype and
+ * _curl_easy_setopt_err_sometype below
+ *
+ * To add an option that uses the same type as an existing option, you'll just
+ * need to extend the appropriate _curl_*_option macro
+ */
+#define curl_easy_setopt(handle, option, value)                               \
+__extension__ ({                                                              \
+  __typeof__ (option) _curl_opt = option;                                     \
+  if (__builtin_constant_p(_curl_opt)) {                                      \
+    if (_curl_is_long_option(_curl_opt) && !_curl_is_long(value))             \
+      _curl_easy_setopt_err_long();                                           \
+    if (_curl_is_off_t_option(_curl_opt) && !_curl_is_off_t(value))           \
+      _curl_easy_setopt_err_curl_off_t();                                     \
+    if (_curl_is_string_option(_curl_opt) && !_curl_is_string(value))         \
+      _curl_easy_setopt_err_string();                                         \
+    if (_curl_is_write_cb_option(_curl_opt) && !_curl_is_write_cb(value))     \
+      _curl_easy_setopt_err_write_callback();                                 \
+    if ((_curl_opt) == CURLOPT_READFUNCTION && !_curl_is_read_cb(value))      \
+      _curl_easy_setopt_err_read_cb();                                        \
+    if ((_curl_opt) == CURLOPT_IOCTLFUNCTION && !_curl_is_ioctl_cb(value))    \
+      _curl_easy_setopt_err_ioctl_cb();                                       \
+    if ((_curl_opt) == CURLOPT_SOCKOPTFUNCTION && !_curl_is_sockopt_cb(value))\
+      _curl_easy_setopt_err_sockopt_cb();                                     \
+    if ((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION &&                          \
+            !_curl_is_opensocket_cb(value))                                   \
+      _curl_easy_setopt_err_opensocket_cb();                                  \
+    if ((_curl_opt) == CURLOPT_PROGRESSFUNCTION &&                            \
+            !_curl_is_progress_cb(value))                                     \
+      _curl_easy_setopt_err_progress_cb();                                    \
+    if ((_curl_opt) == CURLOPT_DEBUGFUNCTION && !_curl_is_debug_cb(value))    \
+      _curl_easy_setopt_err_debug_cb();                                       \
+    if ((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION &&                            \
+            !_curl_is_ssl_ctx_cb(value))                                      \
+      _curl_easy_setopt_err_ssl_ctx_cb();                                     \
+    if (_curl_is_conv_cb_option(_curl_opt) && !_curl_is_conv_cb(value))       \
+      _curl_easy_setopt_err_conv_cb();                                        \
+    if ((_curl_opt) == CURLOPT_SEEKFUNCTION && !_curl_is_seek_cb(value))      \
+      _curl_easy_setopt_err_seek_cb();                                        \
+    if (_curl_is_cb_data_option(_curl_opt) && !_curl_is_cb_data(value))       \
+      _curl_easy_setopt_err_cb_data();                                        \
+    if ((_curl_opt) == CURLOPT_ERRORBUFFER && !_curl_is_error_buffer(value))  \
+      _curl_easy_setopt_err_error_buffer();                                   \
+    if ((_curl_opt) == CURLOPT_STDERR && !_curl_is_FILE(value))               \
+      _curl_easy_setopt_err_FILE();                                           \
+    if (_curl_is_postfields_option(_curl_opt) && !_curl_is_postfields(value)) \
+      _curl_easy_setopt_err_postfields();                                     \
+    if ((_curl_opt) == CURLOPT_HTTPPOST &&                                    \
+            !_curl_is_arr((value), struct curl_httppost))                     \
+      _curl_easy_setopt_err_curl_httpost();                                   \
+    if (_curl_is_slist_option(_curl_opt) &&                                   \
+            !_curl_is_arr((value), struct curl_slist))                        \
+      _curl_easy_setopt_err_curl_slist();                                     \
+    if ((_curl_opt) == CURLOPT_SHARE && !_curl_is_ptr((value), CURLSH))       \
+      _curl_easy_setopt_err_CURLSH();                                         \
+  }                                                                           \
+  curl_easy_setopt(handle, _curl_opt, value);                                 \
+})
+
+/* wraps curl_easy_getinfo() with typechecking */
+/* FIXME: don't allow const pointers */
+#define curl_easy_getinfo(handle, info, arg)                                  \
+__extension__ ({                                                              \
+  __typeof__ (info) _curl_info = info;                                        \
+  if (__builtin_constant_p(_curl_info)) {                                     \
+    if (_curl_is_string_info(_curl_info) && !_curl_is_arr((arg), char *))     \
+      _curl_easy_getinfo_err_string();                                        \
+    if (_curl_is_long_info(_curl_info) && !_curl_is_arr((arg), long))         \
+      _curl_easy_getinfo_err_long();                                          \
+    if (_curl_is_double_info(_curl_info) && !_curl_is_arr((arg), double))     \
+      _curl_easy_getinfo_err_double();                                        \
+    if (_curl_is_slist_info(_curl_info) &&                                    \
+           !_curl_is_arr((arg), struct curl_slist *))                         \
+      _curl_easy_getinfo_err_curl_slist();                                    \
+  }                                                                           \
+  curl_easy_getinfo(handle, _curl_info, arg);                                 \
+})
+
+/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(),
+ * for now just make sure that the functions are called with three
+ * arguments
+ */
+#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
+#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
+
+
+/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
+ * functions */
+
+/* To define a new warning, use _CURL_WARNING(identifier, "message") */
+#define _CURL_WARNING(id, message)                                            \
+  static void __attribute__((warning(message))) __attribute__((unused))       \
+  __attribute__((noinline)) id(void) { __asm__(""); }
+
+_CURL_WARNING(_curl_easy_setopt_err_long,
+  "curl_easy_setopt expects a long argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_curl_off_t,
+  "curl_easy_setopt expects a curl_off_t argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_string,
+  "curl_easy_setopt expects a string (char* or char[]) argument for this option"
+  )
+_CURL_WARNING(_curl_easy_setopt_err_write_callback,
+  "curl_easy_setopt expects a curl_write_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_read_cb,
+  "curl_easy_setopt expects a curl_read_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb,
+  "curl_easy_setopt expects a curl_ioctl_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb,
+  "curl_easy_setopt expects a curl_sockopt_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb,
+  "curl_easy_setopt expects a curl_opensocket_callback argument for this option"
+  )
+_CURL_WARNING(_curl_easy_setopt_err_progress_cb,
+  "curl_easy_setopt expects a curl_progress_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_debug_cb,
+  "curl_easy_setopt expects a curl_debug_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb,
+  "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_conv_cb,
+  "curl_easy_setopt expects a curl_conv_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_seek_cb,
+  "curl_easy_setopt expects a curl_seek_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_cb_data,
+  "curl_easy_setopt expects a private data pointer as argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_error_buffer,
+  "curl_easy_setopt expects a char buffer of CURL_ERROR_SIZE as argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_FILE,
+  "curl_easy_setopt expects a FILE* argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_postfields,
+  "curl_easy_setopt expects a void* or char* argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_curl_httpost,
+  "curl_easy_setopt expects a struct curl_httppost* argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_curl_slist,
+  "curl_easy_setopt expects a struct curl_slist* argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_CURLSH,
+  "curl_easy_setopt expects a CURLSH* argument for this option")
+
+_CURL_WARNING(_curl_easy_getinfo_err_string,
+  "curl_easy_getinfo expects a pointer to char * for this info")
+_CURL_WARNING(_curl_easy_getinfo_err_long,
+  "curl_easy_getinfo expects a pointer to long for this info")
+_CURL_WARNING(_curl_easy_getinfo_err_double,
+  "curl_easy_getinfo expects a pointer to double for this info")
+_CURL_WARNING(_curl_easy_getinfo_err_curl_slist,
+  "curl_easy_getinfo expects a pointer to struct curl_slist * for this info")
+
+/* groups of curl_easy_setops options that take the same type of argument */
+
+/* To add a new option to one of the groups, just add
+ *   (option) == CURLOPT_SOMETHING
+ * to the or-expression. If the option takes a long or curl_off_t, you don't
+ * have to do anything
+ */
+
+/* evaluates to true if option takes a long argument */
+#define _curl_is_long_option(option)                                          \
+  (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT)
+
+#define _curl_is_off_t_option(option)                                         \
+  ((option) > CURLOPTTYPE_OFF_T)
+
+/* evaluates to true if option takes a char* argument */
+#define _curl_is_string_option(option)                                        \
+  ((option) == CURLOPT_URL ||                                                 \
+   (option) == CURLOPT_PROXY ||                                               \
+   (option) == CURLOPT_INTERFACE ||                                           \
+   (option) == CURLOPT_NETRC_FILE ||                                          \
+   (option) == CURLOPT_USERPWD ||                                             \
+   (option) == CURLOPT_USERNAME ||                                            \
+   (option) == CURLOPT_PASSWORD ||                                            \
+   (option) == CURLOPT_PROXYUSERPWD ||                                        \
+   (option) == CURLOPT_PROXYUSERNAME ||                                       \
+   (option) == CURLOPT_PROXYPASSWORD ||                                       \
+   (option) == CURLOPT_NOPROXY ||                                             \
+   (option) == CURLOPT_ENCODING ||                                            \
+   (option) == CURLOPT_REFERER ||                                             \
+   (option) == CURLOPT_USERAGENT ||                                           \
+   (option) == CURLOPT_COOKIE ||                                              \
+   (option) == CURLOPT_COOKIEFILE ||                                          \
+   (option) == CURLOPT_COOKIEJAR ||                                           \
+   (option) == CURLOPT_COOKIELIST ||                                          \
+   (option) == CURLOPT_FTPPORT ||                                             \
+   (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER ||                             \
+   (option) == CURLOPT_FTP_ACCOUNT ||                                         \
+   (option) == CURLOPT_RANGE ||                                               \
+   (option) == CURLOPT_CUSTOMREQUEST ||                                       \
+   (option) == CURLOPT_SSLCERT ||                                             \
+   (option) == CURLOPT_SSLCERTTYPE ||                                         \
+   (option) == CURLOPT_SSLKEY ||                                              \
+   (option) == CURLOPT_SSLKEYTYPE ||                                          \
+   (option) == CURLOPT_KEYPASSWD ||                                           \
+   (option) == CURLOPT_SSLENGINE ||                                           \
+   (option) == CURLOPT_CAINFO ||                                              \
+   (option) == CURLOPT_CAPATH ||                                              \
+   (option) == CURLOPT_RANDOM_FILE ||                                         \
+   (option) == CURLOPT_EGDSOCKET ||                                           \
+   (option) == CURLOPT_SSL_CIPHER_LIST ||                                     \
+   (option) == CURLOPT_KRBLEVEL ||                                            \
+   (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 ||                             \
+   (option) == CURLOPT_SSH_PUBLIC_KEYFILE ||                                  \
+   (option) == CURLOPT_SSH_PRIVATE_KEYFILE ||                                 \
+   (option) == CURLOPT_CRLFILE ||                                             \
+   (option) == CURLOPT_ISSUERCERT ||                                          \
+   0)
+
+/* evaluates to true if option takes a curl_write_callback argument */
+#define _curl_is_write_cb_option(option)                                      \
+  ((option) == CURLOPT_HEADERFUNCTION ||                                      \
+   (option) == CURLOPT_WRITEFUNCTION)
+
+/* evaluates to true if option takes a curl_conv_callback argument */
+#define _curl_is_conv_cb_option(option)                                       \
+  ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION ||                            \
+   (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION ||                          \
+   (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION)
+
+/* evaluates to true if option takes a data argument to pass to a callback */
+#define _curl_is_cb_data_option(option)                                       \
+  ((option) == CURLOPT_WRITEDATA ||                                           \
+   (option) == CURLOPT_READDATA ||                                            \
+   (option) == CURLOPT_IOCTLDATA ||                                           \
+   (option) == CURLOPT_SOCKOPTDATA ||                                         \
+   (option) == CURLOPT_OPENSOCKETDATA ||                                      \
+   (option) == CURLOPT_PROGRESSDATA ||                                        \
+   (option) == CURLOPT_WRITEHEADER ||                                         \
+   (option) == CURLOPT_DEBUGDATA ||                                           \
+   (option) == CURLOPT_SSL_CTX_DATA ||                                        \
+   (option) == CURLOPT_SEEKDATA ||                                            \
+   (option) == CURLOPT_PRIVATE ||                                             \
+   0)
+
+/* evaluates to true if option takes a POST data argument (void* or char*) */
+#define _curl_is_postfields_option(option)                                    \
+  ((option) == CURLOPT_POSTFIELDS ||                                          \
+   (option) == CURLOPT_COPYPOSTFIELDS ||                                      \
+   0)
+
+/* evaluates to true if option takes a struct curl_slist * argument */
+#define _curl_is_slist_option(option)                                         \
+  ((option) == CURLOPT_HTTPHEADER ||                                          \
+   (option) == CURLOPT_HTTP200ALIASES ||                                      \
+   (option) == CURLOPT_QUOTE ||                                               \
+   (option) == CURLOPT_POSTQUOTE ||                                           \
+   (option) == CURLOPT_PREQUOTE ||                                            \
+   (option) == CURLOPT_TELNETOPTIONS ||                                       \
+   0)
+
+/* groups of curl_easy_getinfo infos that take the same type of argument */
+
+/* evaluates to true if info expects a pointer to char * argument */
+#define _curl_is_string_info(info)                                            \
+  (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG)
+
+/* evaluates to true if info expects a pointer to long argument */
+#define _curl_is_long_info(info)                                              \
+  (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE)
+
+/* evaluates to true if info expects a pointer to double argument */
+#define _curl_is_double_info(info)                                            \
+  (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST)
+
+/* true if info expects a pointer to struct curl_slist * argument */
+#define _curl_is_slist_info(info)                                             \
+  (CURLINFO_SLIST < (info))
+
+
+/* typecheck helpers -- check whether given expression has requested type*/
+
+/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros,
+ * otherwise define a new macro. Search for __builtin_types_compatible_p
+ * in the GCC manual.
+ * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is
+ * the actual expression passed to the curl_easy_setopt macro. This
+ * means that you can only apply the sizeof and __typeof__ operators, no
+ * == or whatsoever.
+ */
+
+/* XXX: should evaluate to true iff expr is a pointer */
+#define _curl_is_any_ptr(expr)                                                \
+  (sizeof(expr) == sizeof(void*))
+
+/* evaluates to true if expr is NULL */
+/* XXX: must not evaluate expr, so this check is not accurate */
+#define _curl_is_NULL(expr)                                                   \
+  (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL)))
+
+/* evaluates to true if expr is type*, const type* or NULL */
+#define _curl_is_ptr(expr, type)                                              \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), type *) ||                  \
+   __builtin_types_compatible_p(__typeof__(expr), const type *))
+
+/* evaluates to true if expr is one of type[], type*, NULL or const type* */
+#define _curl_is_arr(expr, type)                                              \
+  (_curl_is_ptr((expr), type) ||                                              \
+   __builtin_types_compatible_p(__typeof__(expr), type []))
+
+/* evaluates to true if expr is a string */
+#define _curl_is_string(expr)                                                 \
+  (_curl_is_arr((expr), char) ||                                              \
+   _curl_is_arr((expr), signed char) ||                                       \
+   _curl_is_arr((expr), unsigned char))
+
+/* evaluates to true if expr is a long (no matter the signedness)
+ * XXX: for now, int is also accepted (and therefore short and char, which
+ * are promoted to int when passed to a variadic function) */
+#define _curl_is_long(expr)                                                   \
+  (__builtin_types_compatible_p(__typeof__(expr), long) ||                    \
+   __builtin_types_compatible_p(__typeof__(expr), signed long) ||             \
+   __builtin_types_compatible_p(__typeof__(expr), unsigned long) ||           \
+   __builtin_types_compatible_p(__typeof__(expr), int) ||                     \
+   __builtin_types_compatible_p(__typeof__(expr), signed int) ||              \
+   __builtin_types_compatible_p(__typeof__(expr), unsigned int) ||            \
+   __builtin_types_compatible_p(__typeof__(expr), short) ||                   \
+   __builtin_types_compatible_p(__typeof__(expr), signed short) ||            \
+   __builtin_types_compatible_p(__typeof__(expr), unsigned short) ||          \
+   __builtin_types_compatible_p(__typeof__(expr), char) ||                    \
+   __builtin_types_compatible_p(__typeof__(expr), signed char) ||             \
+   __builtin_types_compatible_p(__typeof__(expr), unsigned char))
+
+/* evaluates to true if expr is of type curl_off_t */
+#define _curl_is_off_t(expr)                                                  \
+  (__builtin_types_compatible_p(__typeof__(expr), curl_off_t))
+
+/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */
+/* XXX: also check size of an char[] array? */
+#define _curl_is_error_buffer(expr)                                           \
+  (__builtin_types_compatible_p(__typeof__(expr), char *) ||                  \
+   __builtin_types_compatible_p(__typeof__(expr), char[]))
+
+/* evaluates to true if expr is of type (const) void* or (const) FILE* */
+#if 0
+#define _curl_is_cb_data(expr)                                                \
+  (_curl_is_ptr((expr), void) ||                                              \
+   _curl_is_ptr((expr), FILE))
+#else /* be less strict */
+#define _curl_is_cb_data(expr)                                                \
+  _curl_is_any_ptr(expr)
+#endif
+
+/* evaluates to true if expr is of type FILE* */
+#define _curl_is_FILE(expr)                                                   \
+  (__builtin_types_compatible_p(__typeof__(expr), FILE *))
+
+/* evaluates to true if expr can be passed as POST data (void* or char*) */
+#define _curl_is_postfields(expr)                                             \
+  (_curl_is_ptr((expr), void) ||                                              \
+   _curl_is_arr((expr), char))
+
+/* FIXME: the whole callback checking is messy...
+ * The idea is to tolerate char vs. void and const vs. not const
+ * pointers in arguments at least
+ */
+/* helper: __builtin_types_compatible_p distinguishes between functions and
+ * function pointers, hide it */
+#define _curl_callback_compatible(func, type)                                 \
+  (__builtin_types_compatible_p(__typeof__(func), type) ||                    \
+   __builtin_types_compatible_p(__typeof__(func), type*))
+
+/* evaluates to true if expr is of type curl_read_callback or "similar" */
+#define _curl_is_read_cb(expr)                                          \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) ||       \
+   __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) ||      \
+   _curl_callback_compatible((expr), _curl_read_callback1) ||                 \
+   _curl_callback_compatible((expr), _curl_read_callback2) ||                 \
+   _curl_callback_compatible((expr), _curl_read_callback3) ||                 \
+   _curl_callback_compatible((expr), _curl_read_callback4) ||                 \
+   _curl_callback_compatible((expr), _curl_read_callback5) ||                 \
+   _curl_callback_compatible((expr), _curl_read_callback6))
+typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*);
+typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*);
+typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*);
+typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*);
+typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*);
+typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*);
+
+/* evaluates to true if expr is of type curl_write_callback or "similar" */
+#define _curl_is_write_cb(expr)                                               \
+  (_curl_is_read_cb(expr) ||                                            \
+   __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) ||      \
+   __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) ||     \
+   _curl_callback_compatible((expr), _curl_write_callback1) ||                \
+   _curl_callback_compatible((expr), _curl_write_callback2) ||                \
+   _curl_callback_compatible((expr), _curl_write_callback3) ||                \
+   _curl_callback_compatible((expr), _curl_write_callback4) ||                \
+   _curl_callback_compatible((expr), _curl_write_callback5) ||                \
+   _curl_callback_compatible((expr), _curl_write_callback6))
+typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*);
+typedef size_t (_curl_write_callback2)(const char *, size_t, size_t,
+                                       const void*);
+typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*);
+typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*);
+typedef size_t (_curl_write_callback5)(const void *, size_t, size_t,
+                                       const void*);
+typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*);
+
+/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */
+#define _curl_is_ioctl_cb(expr)                                         \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) ||     \
+   _curl_callback_compatible((expr), _curl_ioctl_callback1) ||                \
+   _curl_callback_compatible((expr), _curl_ioctl_callback2) ||                \
+   _curl_callback_compatible((expr), _curl_ioctl_callback3) ||                \
+   _curl_callback_compatible((expr), _curl_ioctl_callback4))
+typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*);
+typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*);
+typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*);
+typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*);
+
+/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */
+#define _curl_is_sockopt_cb(expr)                                       \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) ||   \
+   _curl_callback_compatible((expr), _curl_sockopt_callback1) ||              \
+   _curl_callback_compatible((expr), _curl_sockopt_callback2))
+typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype);
+typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t,
+                                      curlsocktype);
+
+/* evaluates to true if expr is of type curl_opensocket_callback or "similar" */
+#define _curl_is_opensocket_cb(expr)                                    \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\
+   _curl_callback_compatible((expr), _curl_opensocket_callback1) ||           \
+   _curl_callback_compatible((expr), _curl_opensocket_callback2) ||           \
+   _curl_callback_compatible((expr), _curl_opensocket_callback3) ||           \
+   _curl_callback_compatible((expr), _curl_opensocket_callback4))
+typedef curl_socket_t (_curl_opensocket_callback1)
+  (void *, curlsocktype, struct curl_sockaddr *);
+typedef curl_socket_t (_curl_opensocket_callback2)
+  (void *, curlsocktype, const struct curl_sockaddr *);
+typedef curl_socket_t (_curl_opensocket_callback3)
+  (const void *, curlsocktype, struct curl_sockaddr *);
+typedef curl_socket_t (_curl_opensocket_callback4)
+  (const void *, curlsocktype, const struct curl_sockaddr *);
+
+/* evaluates to true if expr is of type curl_progress_callback or "similar" */
+#define _curl_is_progress_cb(expr)                                      \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) ||  \
+   _curl_callback_compatible((expr), _curl_progress_callback1) ||             \
+   _curl_callback_compatible((expr), _curl_progress_callback2))
+typedef int (_curl_progress_callback1)(void *,
+    double, double, double, double);
+typedef int (_curl_progress_callback2)(const void *,
+    double, double, double, double);
+
+/* evaluates to true if expr is of type curl_debug_callback or "similar" */
+#define _curl_is_debug_cb(expr)                                         \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) ||     \
+   _curl_callback_compatible((expr), _curl_debug_callback1) ||                \
+   _curl_callback_compatible((expr), _curl_debug_callback2) ||                \
+   _curl_callback_compatible((expr), _curl_debug_callback3) ||                \
+   _curl_callback_compatible((expr), _curl_debug_callback4))
+typedef int (_curl_debug_callback1) (CURL *,
+    curl_infotype, char *, size_t, void *);
+typedef int (_curl_debug_callback2) (CURL *,
+    curl_infotype, char *, size_t, const void *);
+typedef int (_curl_debug_callback3) (CURL *,
+    curl_infotype, const char *, size_t, void *);
+typedef int (_curl_debug_callback4) (CURL *,
+    curl_infotype, const char *, size_t, const void *);
+
+/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */
+/* this is getting even messier... */
+#define _curl_is_ssl_ctx_cb(expr)                                       \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) ||   \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) ||              \
+   _curl_callback_compatible((expr), _curl_ssl_ctx_callback8))
+typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *);
+typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *);
+typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *);
+typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *);
+#ifdef HEADER_SSL_H
+/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
+ * this will of course break if we're included before OpenSSL headers...
+ */
+typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *);
+typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *);
+typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *);
+typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, const void *);
+#else
+typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5;
+typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6;
+typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7;
+typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8;
+#endif
+
+/* evaluates to true if expr is of type curl_conv_callback or "similar" */
+#define _curl_is_conv_cb(expr)                                          \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) ||      \
+   _curl_callback_compatible((expr), _curl_conv_callback1) ||                 \
+   _curl_callback_compatible((expr), _curl_conv_callback2) ||                 \
+   _curl_callback_compatible((expr), _curl_conv_callback3) ||                 \
+   _curl_callback_compatible((expr), _curl_conv_callback4))
+typedef CURLcode (*_curl_conv_callback1)(char *, size_t length);
+typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length);
+typedef CURLcode (*_curl_conv_callback3)(void *, size_t length);
+typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length);
+
+/* evaluates to true if expr is of type curl_seek_callback or "similar" */
+#define _curl_is_seek_cb(expr)                                          \
+  (_curl_is_NULL(expr) ||                                                     \
+   __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) ||      \
+   _curl_callback_compatible((expr), _curl_seek_callback1) ||                 \
+   _curl_callback_compatible((expr), _curl_seek_callback2))
+typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int);
+typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int);
+
+
+#endif /* __CURL_TYPECHECK_GCC_H */
diff --git a/src/third_party/curl/types.h b/src/third_party/curl/types.h
new file mode 100644
index 0000000..d37d6ae
--- /dev/null
+++ b/src/third_party/curl/types.h
@@ -0,0 +1 @@
+/* not used */
diff --git a/src/third_party/libdisasm/LICENSE b/src/third_party/libdisasm/LICENSE
new file mode 100644
index 0000000..c563828
--- /dev/null
+++ b/src/third_party/libdisasm/LICENSE
@@ -0,0 +1,137 @@
+
+
+
+
+			 The "Clarified Artistic License"
+
+				Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to make
+reasonable modifications.
+
+Definitions:
+
+	"Package" refers to the collection of files distributed by the
+	Copyright Holder, and derivatives of that collection of files
+	created through textual modification.
+
+	"Standard Version" refers to such a Package if it has not been
+	modified, or has been modified in accordance with the wishes
+	of the Copyright Holder as specified below.
+
+	"Copyright Holder" is whoever is named in the copyright or
+	copyrights for the package.
+
+	"You" is you, if you're thinking about copying or distributing
+	this Package.
+
+	"Distribution fee" is a fee you charge for providing a copy of this
+	Package to another party.
+
+	"Freely Available" means that no fee is charged for the right to use
+	the item, though there may be fees involved in handling the item.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+derived from the Public Domain, or those made Freely Available, or from
+the Copyright Holder.  A Package modified in such a way shall still be
+considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and
+when you changed that file, and provided that you do at least ONE of the
+following:
+
+    a) place your modifications in the Public Domain or otherwise make them
+    Freely Available, such as by posting said modifications to Usenet or
+    an equivalent medium, or placing the modifications on a major archive
+    site allowing unrestricted access to them, or by allowing the Copyright
+    Holder to include your modifications in the Standard Version of the
+    Package.
+
+    b) use the modified Package only within your corporation or organization.
+
+    c) rename any non-standard executables so the names do not conflict
+    with standard executables, which must also be provided, and provide
+    a separate manual page for each non-standard executable that clearly
+    documents how it differs from the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+    e) permit and encourge anyone who receives a copy of the modified Package
+    permission to make your modifications Freely Available in some specific
+    way.
+
+4. You may distribute the programs of this Package in object code or
+executable form, provided that you do at least ONE of the following:
+
+    a) distribute a Standard Version of the executables and library files,
+    together with instructions (in the manual page or equivalent) on where
+    to get the Standard Version.
+
+    b) accompany the distribution with the machine-readable source of
+    the Package with your modifications.
+
+    c) give non-standard executables non-standard names, and clearly
+    document the differences in manual pages (or equivalent), together
+    with instructions on where to get the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+    e) offer the machine-readable source of the Package, with your
+    modifications, by mail order.
+
+5. You may charge a distribution fee for any distribution of this Package.
+If you offer support for this Package, you may charge any fee you choose
+for that support.  You may not charge a license fee for the right to use
+this Package itself.  You may distribute this Package in aggregate with
+other (possibly commercial and possibly nonfree) programs as part of a
+larger (possibly commercial and possibly nonfree) software distribution,
+and charge license fees for other parts of that software distribution,
+provided that you do not advertise this Package as a product of your own.
+If the Package includes an interpreter, You may embed this Package's
+interpreter within an executable of yours (by linking); this shall be
+construed as a mere form of aggregation, provided that the complete
+Standard Version of the interpreter is so embedded.
+
+6. The scripts and library files supplied as input to or produced as
+output from the programs of this Package do not automatically fall
+under the copyright of this Package, but belong to whoever generated
+them, and may be sold commercially, and may be aggregated with this
+Package.  If such scripts or library files are aggregated with this
+Package via the so-called "undump" or "unexec" methods of producing a
+binary executable image, then distribution of such an image shall
+neither be construed as a distribution of this Package nor shall it
+fall under the restrictions of Paragraphs 3 and 4, provided that you do
+not represent such an executable image as a Standard Version of this
+Package.
+
+7. C subroutines (or comparably compiled subroutines in other
+languages) supplied by you and linked into this Package in order to
+emulate subroutines and variables of the language defined by this
+Package shall not be considered part of this Package, but are the
+equivalent of input as in Paragraph 6, provided these subroutines do
+not change the language in any way that would cause it to fail the
+regression tests for the language.
+
+8. Aggregation of the Standard Version of the Package with a commercial
+distribution is always permitted provided that the use of this Package is
+embedded; that is, when no overt attempt is made to make this Package's
+interfaces visible to the end user of the commercial distribution.
+Such use shall not be construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+				The End
diff --git a/src/third_party/libdisasm/Makefile.am b/src/third_party/libdisasm/Makefile.am
new file mode 100644
index 0000000..bd3129e
--- /dev/null
+++ b/src/third_party/libdisasm/Makefile.am
@@ -0,0 +1,43 @@
+include_HEADERS = libdis.h
+lib_LTLIBRARIES = libdisasm.la
+libdisasm_la_SOURCES = \
+	ia32_implicit.c \
+	ia32_implicit.h \
+	ia32_insn.c \
+	ia32_insn.h \
+	ia32_invariant.c \
+	ia32_invariant.h \
+	ia32_modrm.c \
+	ia32_modrm.h \
+	ia32_opcode_tables.c \
+	ia32_opcode_tables.h \
+	ia32_operand.c \
+	ia32_operand.h \
+	ia32_reg.c \
+	ia32_reg.h \
+	ia32_settings.c \
+	ia32_settings.h \
+	libdis.h \
+	qword.h \
+	x86_disasm.c \
+	x86_format.c \
+	x86_imm.c \
+	x86_imm.h \
+	x86_insn.c \
+	x86_misc.c \
+	x86_operand_list.c \
+	x86_operand_list.h
+
+# Cheat to get non-autoconf swig into tarball,
+# even if it doesn't build by default.
+EXTRA_DIST = \
+swig/Makefile \
+swig/libdisasm.i \
+swig/libdisasm_oop.i \
+swig/python/Makefile-swig \
+swig/perl/Makefile-swig \
+swig/perl/Makefile.PL \
+swig/ruby/Makefile-swig \
+swig/ruby/extconf.rb \
+swig/tcl/Makefile-swig \
+swig/README
diff --git a/src/third_party/libdisasm/README.breakpad b/src/third_party/libdisasm/README.breakpad
new file mode 100644
index 0000000..a345411
--- /dev/null
+++ b/src/third_party/libdisasm/README.breakpad
@@ -0,0 +1,9 @@
+Name: libdisasm
+URL: https://sourceforge.net/projects/bastard/files/libdisasm/0.23/libdisasm-0.23.tar.gz/download
+Version: 0.23
+License: Clarified-Artistic
+License File: LICENSE
+
+Description:
+This contains a copy of libdisasm.  It is no longer under development upstream,
+so we keep a copy here to maintain fixes ourselves.
diff --git a/src/third_party/libdisasm/TODO b/src/third_party/libdisasm/TODO
new file mode 100644
index 0000000..148addf
--- /dev/null
+++ b/src/third_party/libdisasm/TODO
@@ -0,0 +1,43 @@
+x86_format.c
+------------
+intel: jmpf -> jmp, callf -> call
+att: jmpf -> ljmp, callf -> lcall
+
+opcode table
+------------
+finish typing instructions
+fix flag clear/set/toggle types
+
+ix64 stuff
+----------
+document output file formats in web page
+features doc: register aliases, implicit operands, stack mods,
+ring0 flags, eflags, cpu model/isa
+
+ia32_handle_* implementation
+
+fix operand 0F C2
+CMPPS
+
+* sysenter, sysexit as CALL types -- preceded by MSR writes
+* SYSENTER/SYSEXIT stack : overwrites SS, ESP
+* stos, cmps, scas, movs, ins, outs, lods -> OP_PTR
+* OP_SIZE in implicit operands
+* use OP_SIZE to choose reg sizes!
+
+DONE?? :
+implicit operands: provide action ?
+e.g. add/inc for stach, write, etc 
+replace table numbers in opcodes.dat with
+#defines for table names
+
+replace 0  with INSN_INVALID   [or maybe FF for imnvalid and 00 for Not Applicable */
+no wait that is only for prefix tables -- n/p
+
+if ( prefx) only use if insn != invalid
+
+these should cover all the wacky disasm exceptions 
+
+for the rep one we can chet, match only a 0x90
+
+todo: privilege | ring
diff --git a/src/third_party/libdisasm/ia32_implicit.c b/src/third_party/libdisasm/ia32_implicit.c
new file mode 100644
index 0000000..8b075d2
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_implicit.c
@@ -0,0 +1,422 @@
+#include <stdlib.h>
+
+#include "ia32_implicit.h"
+#include "ia32_insn.h"
+#include "ia32_reg.h"
+#include "x86_operand_list.h"
+
+/* Conventions: Register operands which are aliases of another register 
+ *   operand (e.g. AX in one operand and AL in another) assume that the
+ *   operands are different registers and that alias tracking will resolve
+ *   data flow. This means that something like
+ *   	mov ax, al
+ *   would have 'write only' access for AX and 'read only' access for AL,
+ *   even though both AL and AX are read and written */
+typedef struct {
+	uint32_t type;
+	uint32_t operand;
+} op_implicit_list_t;
+
+static op_implicit_list_t list_aaa[] = 
+	/* 37 : AAA : rw AL */
+	/* 3F : AAS : rw AL */
+	{{ OP_R | OP_W, REG_BYTE_OFFSET }, {0}};	/* aaa */
+
+static op_implicit_list_t list_aad[] = 
+	/* D5 0A, D5 (ib) : AAD : rw AX */
+	/* D4 0A, D4 (ib) : AAM : rw AX */
+	{{ OP_R | OP_W, REG_WORD_OFFSET }, {0}};	/* aad */
+
+static op_implicit_list_t list_call[] = 
+	/* E8, FF, 9A, FF : CALL : rw ESP, rw EIP */
+	/* C2, C3, CA, CB : RET  : rw ESP, rw EIP */
+	{{ OP_R | OP_W, REG_EIP_INDEX }, 
+	 { OP_R | OP_W, REG_ESP_INDEX }, {0}};	/* call, ret */
+
+static op_implicit_list_t list_cbw[] = 
+	/* 98 : CBW : r AL, rw AX */
+	{{ OP_R | OP_W, REG_WORD_OFFSET },
+	 { OP_R, REG_BYTE_OFFSET}, {0}};		/* cbw */
+
+static op_implicit_list_t list_cwde[] = 
+	/* 98 : CWDE : r AX, rw EAX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET },
+	 { OP_R, REG_WORD_OFFSET }, {0}};		/* cwde */
+
+static op_implicit_list_t list_clts[] = 
+	/* 0F 06 : CLTS : rw CR0 */
+	{{ OP_R | OP_W, REG_CTRL_OFFSET}, {0}};	/* clts */
+
+static op_implicit_list_t list_cmpxchg[] = 
+	/* 0F B0 : CMPXCHG : rw AL */
+	{{ OP_R | OP_W, REG_BYTE_OFFSET }, {0}};	/* cmpxchg */
+
+static op_implicit_list_t list_cmpxchgb[] = 
+	/* 0F B1 : CMPXCHG : rw EAX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET }, {0}};	/* cmpxchg */
+
+static op_implicit_list_t list_cmpxchg8b[] = 
+	/* 0F C7 : CMPXCHG8B : rw EDX, rw EAX, r ECX, r EBX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET }, 
+	 { OP_R | OP_W, REG_DWORD_OFFSET + 2 }, 
+	 { OP_R, REG_DWORD_OFFSET + 1 }, 
+	 { OP_R, REG_DWORD_OFFSET + 3 }, {0}};	/* cmpxchg8b */
+
+static op_implicit_list_t list_cpuid[] = 
+	/* 0F A2 : CPUID : rw EAX, w EBX, w ECX, w EDX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET }, 
+	 { OP_W, REG_DWORD_OFFSET + 1 }, 
+	 { OP_W, REG_DWORD_OFFSET + 2 }, 
+	 { OP_W, REG_DWORD_OFFSET + 3 }, {0}};	/* cpuid */
+
+static op_implicit_list_t list_cwd[] = 
+	/* 99 : CWD/CWQ : rw EAX, w EDX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET }, 
+	 { OP_W, REG_DWORD_OFFSET + 2 }, {0}};	/* cwd */
+
+static op_implicit_list_t list_daa[] = 
+	/* 27 : DAA : rw AL */
+	/* 2F : DAS : rw AL */
+	{{ OP_R | OP_W, REG_BYTE_OFFSET }, {0}};	/* daa */
+
+static op_implicit_list_t list_idiv[] = 
+	/* F6 : DIV, IDIV : r AX, w AL, w AH */
+	/* FIXED: first op was EAX, not Aw. TODO: verify! */
+	{{ OP_R, REG_WORD_OFFSET }, 
+	  { OP_W, REG_BYTE_OFFSET },
+	  { OP_W, REG_BYTE_OFFSET + 4 }, {0}};	/* div */
+
+static op_implicit_list_t list_div[] = 
+	/* F7 : DIV, IDIV : rw EDX, rw EAX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET + 2 }, 
+	  { OP_R | OP_W, REG_DWORD_OFFSET }, {0}};	/* div */
+
+static op_implicit_list_t list_enter[] = 
+	/* C8 : ENTER : rw ESP w EBP */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET + 4 }, 
+	 { OP_R, REG_DWORD_OFFSET + 5 }, {0}};	/* enter */
+
+static op_implicit_list_t list_f2xm1[] = 
+	/* D9 F0 : F2XM1 : rw ST(0) */
+	/* D9 E1 : FABS : rw ST(0) */
+	/* D9 E0 : FCHS : rw ST(0) */
+	/* D9 FF : FCOS : rw ST(0)*/
+	/* D8, DA : FDIV : rw ST(0) */
+	/* D8, DA : FDIVR : rw ST(0) */
+	/* D9 F2 : FPTAN : rw ST(0) */
+	/* D9 FC : FRNDINT : rw ST(0) */
+	/* D9 FB : FSINCOS : rw ST(0) */
+	/* D9 FE : FSIN : rw ST(0) */
+	/* D9 FA : FSQRT : rw ST(0) */
+	/* D9 F4 : FXTRACT : rw ST(0) */
+	{{ OP_R | OP_W, REG_FPU_OFFSET }, {0}};	/* f2xm1 */
+
+static op_implicit_list_t list_fcom[] = 
+	/* D8, DC, DE D9 : FCOM : r ST(0) */
+	/* DE, DA : FICOM : r ST(0) */
+	/* DF, D8 : FIST : r ST(0) */
+	/* D9 E4 : FTST : r ST(0) */
+	/* D9 E5 : FXAM : r ST(0) */
+	{{ OP_R, REG_FPU_OFFSET }, {0}};		/* fcom */
+
+static op_implicit_list_t list_fpatan[] = 
+	/* D9 F3 : FPATAN : r ST(0), rw ST(1) */
+	{{ OP_R, REG_FPU_OFFSET }, {0}};		/* fpatan */
+
+static op_implicit_list_t list_fprem[] = 
+	/* D9 F8, D9 F5 : FPREM : rw ST(0) r ST(1) */
+	/* D9 FD : FSCALE : rw ST(0), r ST(1) */
+	{{ OP_R | OP_W, REG_FPU_OFFSET }, 	
+	 { OP_R, REG_FPU_OFFSET + 1 }, {0}};	/* fprem */
+
+static op_implicit_list_t list_faddp[] = 
+	/* DE C1 : FADDP : r ST(0), rw ST(1) */
+	/* DE E9 : FSUBP : r ST(0), rw ST(1) */
+	/* D9 F1 : FYL2X : r ST(0), rw ST(1) */
+	/* D9 F9 : FYL2XP1 : r ST(0), rw ST(1) */
+	{{ OP_R, REG_FPU_OFFSET },
+	 { OP_R | OP_W, REG_FPU_OFFSET + 1 }, {0}};	/* faddp */
+
+static op_implicit_list_t list_fucompp[] = 
+	/* DA E9 : FUCOMPP : r ST(0), r ST(1) */
+	{{ OP_R, REG_FPU_OFFSET },
+	 { OP_R, REG_FPU_OFFSET + 1 }, {0}};	/* fucompp */
+
+static op_implicit_list_t list_imul[] = 
+	/* F6 : IMUL : r AL, w AX */
+	/* F6 : MUL : r AL, w AX */
+	{{ OP_R, REG_BYTE_OFFSET },
+	 { OP_W, REG_WORD_OFFSET }, {0}};		/* imul */
+
+static op_implicit_list_t list_mul[] = 
+	/* F7 : IMUL : rw EAX, w EDX */
+	/* F7 : MUL : rw EAX, w EDX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET },
+	 { OP_W, REG_DWORD_OFFSET + 2 }, {0}};	/* imul */
+
+static op_implicit_list_t list_lahf[] = 
+	/* 9F : LAHF : r EFLAGS, w AH */
+	{{ OP_R, REG_FLAGS_INDEX },
+	 { OP_W, REG_BYTE_OFFSET + 4 }, {0}};	/* lahf */
+
+static op_implicit_list_t list_ldmxcsr[] = 
+	/* 0F AE : LDMXCSR : w MXCSR SSE Control Status Reg */
+	{{ OP_W, REG_MXCSG_INDEX }, {0}};		/* ldmxcsr */
+
+static op_implicit_list_t list_leave[] = 
+	/* C9 : LEAVE :  rw ESP, w EBP */
+	{{ OP_R | OP_W, REG_ESP_INDEX },
+	 { OP_W, REG_DWORD_OFFSET + 5 }, {0}};	/* leave */
+
+static op_implicit_list_t list_lgdt[] = 
+	/* 0F 01 : LGDT : w GDTR */
+	{{ OP_W, REG_GDTR_INDEX }, {0}};		/* lgdt */
+
+static op_implicit_list_t list_lidt[] = 
+	/* 0F 01 : LIDT : w IDTR */
+	{{ OP_W, REG_IDTR_INDEX }, {0}};		/* lidt */
+
+static op_implicit_list_t list_lldt[] = 
+	/* 0F 00 : LLDT : w LDTR */
+	{{ OP_W, REG_LDTR_INDEX }, {0}};		/* lldt */
+
+static op_implicit_list_t list_lmsw[] = 
+	/* 0F 01 : LMSW : w CR0 */
+	{{ OP_W, REG_CTRL_OFFSET }, {0}};		/* lmsw */
+
+static op_implicit_list_t list_loop[] = 
+	/* E0, E1, E2 : LOOP : rw ECX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET + 1 }, {0}};/* loop */
+
+static op_implicit_list_t list_ltr[] = 
+	/* 0F 00 : LTR : w Task Register */
+	{{ OP_W, REG_TR_INDEX }, {0}};		/* ltr */
+
+static op_implicit_list_t list_pop[] = 
+	/* 8F, 58, 1F, 07, 17, 0F A1, 0F A9 : POP : rw ESP */
+	/* FF, 50, 6A, 68, 0E, 16, 1E, 06, 0F A0, 0F A8 : PUSH : rw ESP */
+	{{ OP_R | OP_W, REG_ESP_INDEX }, {0}};	/* pop, push */
+
+static op_implicit_list_t list_popad[] = 
+	/* 61 : POPAD : rw esp, w edi esi ebp ebx edx ecx eax */
+	{{ OP_R | OP_W, REG_ESP_INDEX },
+	 { OP_W, REG_DWORD_OFFSET + 7 },
+	 { OP_W, REG_DWORD_OFFSET + 6 },
+	 { OP_W, REG_DWORD_OFFSET + 5 },
+	 { OP_W, REG_DWORD_OFFSET + 3 },
+	 { OP_W, REG_DWORD_OFFSET + 2 },
+	 { OP_W, REG_DWORD_OFFSET + 1 },
+	 { OP_W, REG_DWORD_OFFSET }, {0}};		/* popad */
+
+static op_implicit_list_t list_popfd[] = 
+	/* 9D : POPFD : rw esp, w eflags */
+	{{ OP_R | OP_W, REG_ESP_INDEX },
+	 { OP_W, REG_FLAGS_INDEX }, {0}};		/* popfd */
+
+static op_implicit_list_t list_pushad[] = 
+	/* FF, 50, 6A, 68, 0E, 16, 1E, 06, 0F A0, 0F A8 : PUSH : rw ESP */
+	/* 60 : PUSHAD : rw esp, r eax ecx edx ebx esp ebp esi edi */
+	{{ OP_R | OP_W, REG_ESP_INDEX },
+	 { OP_R, REG_DWORD_OFFSET },
+	 { OP_R, REG_DWORD_OFFSET + 1 },
+	 { OP_R, REG_DWORD_OFFSET + 2 },
+	 { OP_R, REG_DWORD_OFFSET + 3 },
+	 { OP_R, REG_DWORD_OFFSET + 5 },
+	 { OP_R, REG_DWORD_OFFSET + 6 },
+	 { OP_R, REG_DWORD_OFFSET + 7 }, {0}};	/* pushad */
+
+static op_implicit_list_t list_pushfd[] = 
+	/* 9C : PUSHFD : rw esp, r eflags */
+	{{ OP_R | OP_W, REG_ESP_INDEX },
+	 { OP_R, REG_FLAGS_INDEX }, {0}};		/* pushfd */
+
+static op_implicit_list_t list_rdmsr[] = 
+	/* 0F 32 : RDMSR : r ECX, w EDX, w EAX */
+	{{ OP_R, REG_DWORD_OFFSET + 1 },
+	 { OP_W, REG_DWORD_OFFSET + 2 },
+	 { OP_W, REG_DWORD_OFFSET }, {0}};	/* rdmsr */
+
+static op_implicit_list_t list_rdpmc[] = 
+	/* 0F 33 : RDPMC : r ECX, w EDX, w EAX */
+	{{ OP_R, REG_DWORD_OFFSET + 1 },
+	 { OP_W, REG_DWORD_OFFSET + 2 },
+	 { OP_W, REG_DWORD_OFFSET }, {0}};		/* rdpmc */
+
+static op_implicit_list_t list_rdtsc[] = 
+	/* 0F 31 : RDTSC : rw EDX, rw EAX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET + 2 },
+	 { OP_R | OP_W, REG_DWORD_OFFSET }, {0}};	/* rdtsc */
+
+static op_implicit_list_t list_rep[] = 
+	/* F3, F2 ... : REP : rw ECX */
+	{{ OP_R | OP_W, REG_DWORD_OFFSET + 1 }, {0}};/* rep */
+
+static op_implicit_list_t list_rsm[] = 
+	/* 0F AA : RSM : r CR4, r CR0 */
+	{{ OP_R, REG_CTRL_OFFSET + 4 }, 
+	 { OP_R, REG_CTRL_OFFSET }, {0}};		/* rsm */
+
+static op_implicit_list_t list_sahf[] = 
+	/* 9E : SAHF : r ah, rw eflags (set SF ZF AF PF CF) */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sahf */
+
+static op_implicit_list_t list_sgdt[] = 
+	/* 0F : SGDT : r gdtr */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sgdt */
+
+static op_implicit_list_t list_sidt[] = 
+	/* 0F : SIDT : r idtr */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sidt */
+
+static op_implicit_list_t list_sldt[] = 
+	/* 0F : SLDT : r ldtr */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sldt */
+
+static op_implicit_list_t list_smsw[] = 
+	/* 0F : SMSW : r CR0 */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* smsw */
+
+static op_implicit_list_t list_stmxcsr[] = 
+	/* 0F AE : STMXCSR : r MXCSR */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* stmxcsr */
+
+static op_implicit_list_t list_str[] = 
+	/* 0F 00 : STR : r TR (task register) */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* str */
+
+static op_implicit_list_t list_sysenter[] = 
+	/* 0F 34 : SYSENTER : w cs, w eip, w ss, w esp, r CR0, w eflags
+	 *         r sysenter_cs_msr, sysenter_esp_msr, sysenter_eip_msr */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sysenter */
+
+static op_implicit_list_t list_sysexit[] = 
+	/* 0F 35 : SYSEXIT : r edx, r ecx, w cs, w eip, w ss, w esp
+	 * 	   r sysenter_cs_msr */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* sysexit */
+
+static op_implicit_list_t list_wrmsr[] = 
+	/* 0F 30 : WRMST : r edx, r eax, r ecx */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* wrmsr */
+
+static op_implicit_list_t list_xlat[] = 
+	/* D7 : XLAT : rw al r ebx (ptr) */
+	/* TODO: finish this! */
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* xlat */
+/* TODO:
+ * monitor 0f 01 c8 eax OP_R ecx OP_R edx OP_R
+ * mwait 0f 01 c9 eax OP_R ecx OP_R
+ */
+static op_implicit_list_t list_monitor[] = 
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* monitor */
+static op_implicit_list_t list_mwait[] = 
+	{{ OP_R, REG_DWORD_OFFSET }, {0}};		/* mwait */
+
+op_implicit_list_t *op_implicit_list[] = {
+	/* This is a list of implicit operands which are read/written by
+	 * various x86 instructions. Note that modifications to the stack
+	 * register are mentioned here, but that additional information on
+	 * the effect an instruction has on the stack is contained in the
+	 * x86_insn_t 'stack_mod' and 'stack_mod_val' fields. Use of the
+	 * eflags register, i.e. setting, clearing, and testing flags, is
+	 * not recorded here but rather in the flags_set and flags_tested
+	 * fields of the x86_insn_t.*/
+	NULL,
+	list_aaa, list_aad, list_call, list_cbw,		/* 1 - 4 */
+	list_cwde, list_clts, list_cmpxchg, list_cmpxchgb,	/* 5 - 8 */
+	list_cmpxchg8b, list_cpuid, list_cwd, list_daa,		/* 9 - 12 */
+	list_idiv, list_div, list_enter, list_f2xm1,		/* 13 - 16 */
+	list_fcom, list_fpatan, list_fprem, list_faddp,		/* 17 - 20 */
+	list_fucompp, list_imul, list_mul, list_lahf,		/* 21 - 24 */
+	list_ldmxcsr, list_leave, list_lgdt, list_lidt,		/* 25 - 28 */
+	list_lldt, list_lmsw, list_loop, list_ltr,		/* 29 - 32 */
+	list_pop, list_popad, list_popfd, list_pushad,		/* 33 - 36 */
+	list_pushfd, list_rdmsr, list_rdpmc, list_rdtsc,	/* 37 - 40 */
+	/* NOTE: 'REP' is a hack since it is a prefix: if its position
+	 * in the table changes, then change IDX_IMPLICIT_REP in the .h */
+	list_rep, list_rsm, list_sahf, list_sgdt,		/* 41 - 44 */
+	list_sidt, list_sldt, list_smsw, list_stmxcsr,		/* 45 - 48 */
+	list_str, list_sysenter, list_sysexit, list_wrmsr,	/* 49 - 52 */
+	list_xlat, list_monitor, list_mwait,			/* 53 - 55*/
+	NULL						/* end of list */
+ };
+
+#define LAST_IMPL_IDX 55
+
+static void handle_impl_reg( x86_op_t *op, uint32_t val ) {
+	x86_reg_t *reg = &op->data.reg;
+	op->type = op_register;
+	ia32_handle_register( reg, (unsigned int) val );
+	switch (reg->size) {
+		case 1:
+			op->datatype = op_byte; break;
+		case 2:
+			op->datatype = op_word; break;
+		case 4:
+			op->datatype = op_dword; break;
+		case 8:
+			op->datatype = op_qword; break;
+		case 10:
+			op->datatype = op_extreal; break;
+		case 16:
+			op->datatype = op_dqword; break;
+	}
+	return;
+}
+
+/* 'impl_idx' is the value from the opcode table: between 1 and LAST_IMPL_IDX */
+/* returns number of operands added */
+unsigned int ia32_insn_implicit_ops( x86_insn_t *insn, unsigned int impl_idx ) {
+	op_implicit_list_t *list;
+	x86_op_t *op;
+	unsigned int num = 0;
+
+	if (! impl_idx || impl_idx > LAST_IMPL_IDX ) {
+		return 0;
+	}
+
+	for ( list = op_implicit_list[impl_idx]; list->type; list++, num++ ) {
+		enum x86_op_access access = (enum x86_op_access) OP_PERM(list->type);
+		enum x86_op_flags  flags  = (enum x86_op_flags) (OP_FLAGS(list->type) >> 12);
+
+		op = NULL;
+		/* In some cases (MUL), EAX is an implicit operand hardcoded in
+                 * the instruction without being explicitly listed in assembly.
+                 * For this situation, find the hardcoded operand and add the
+                 * implied flag rather than adding a new implicit operand. */
+		x86_oplist_t * existing;
+		if (ia32_true_register_id(list->operand) == REG_DWORD_OFFSET) {
+			for ( existing = insn->operands; existing; existing = existing->next ) {
+				if (existing->op.type == op_register &&
+	                            existing->op.data.reg.id == list->operand) {
+					op = &existing->op;
+					break;
+				}
+			}
+		}
+		if (!op) {
+			op = x86_operand_new( insn );
+			/* all implicit operands are registers */
+			handle_impl_reg( op, list->operand );
+			/* decrement the 'explicit count' incremented by default in
+			 * x86_operand_new */
+			insn->explicit_count = insn->explicit_count -1;
+		}
+		if (!op) {
+			return num;	/* gah! return early */
+		}
+		op->access |= access;
+		op->flags |= flags;
+		op->flags |= op_implied;
+	}
+	
+	return num;
+}
diff --git a/src/third_party/libdisasm/ia32_implicit.h b/src/third_party/libdisasm/ia32_implicit.h
new file mode 100644
index 0000000..0002b28
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_implicit.h
@@ -0,0 +1,13 @@
+#ifndef IA32_IMPLICIT_H
+#define IA32_IMPLICIT_H
+
+#include "libdis.h"
+
+/* OK, this is a hack to deal with prefixes having implicit operands...
+ * thought I had removed all the old hackishness ;( */
+
+#define IDX_IMPLICIT_REP 41	/* change this if the table changes! */
+
+unsigned int ia32_insn_implicit_ops( x86_insn_t *insn, unsigned int impl_idx );
+
+#endif
diff --git a/src/third_party/libdisasm/ia32_insn.c b/src/third_party/libdisasm/ia32_insn.c
new file mode 100644
index 0000000..cc27760
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_insn.c
@@ -0,0 +1,623 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "qword.h"
+
+#include "ia32_insn.h"
+#include "ia32_opcode_tables.h"
+
+#include "ia32_reg.h"
+#include "ia32_operand.h"
+#include "ia32_implicit.h"
+#include "ia32_settings.h"
+
+#include "libdis.h"
+
+extern ia32_table_desc_t ia32_tables[];
+extern ia32_settings_t ia32_settings;
+
+#define IS_SP( op )  (op->type == op_register && 	\
+		(op->data.reg.id == REG_ESP_INDEX || 	\
+		 op->data.reg.alias == REG_ESP_INDEX) )
+#define IS_IMM( op ) (op->type == op_immediate )
+
+#ifdef WIN32
+#  define INLINE 
+#else
+#  define INLINE inline
+#endif
+
+/* for calculating stack modification based on an operand */
+static INLINE int32_t long_from_operand( x86_op_t *op ) {
+
+	if (! IS_IMM(op) ) {
+		return 0L;
+	}
+
+	switch ( op->datatype ) {
+		case op_byte:
+			return (int32_t) op->data.sbyte;
+		case op_word:
+			return (int32_t) op->data.sword;
+		case op_qword:
+			return (int32_t) op->data.sqword;
+		case op_dword:
+			return op->data.sdword;
+		default:
+			/* these are not used in stack insn */
+			break;
+	}
+
+	return 0L;
+}
+		
+
+/* determine what this insn does to the stack */
+static void ia32_stack_mod(x86_insn_t *insn) {
+	x86_op_t *dest, *src = NULL;
+
+	if (! insn || ! insn->operands ) {
+		return;
+	}
+       
+	dest = &insn->operands->op;
+	if ( dest ) {
+		src = &insn->operands->next->op;
+	}
+
+	insn->stack_mod = 0; 
+	insn->stack_mod_val = 0;
+
+	switch ( insn->type ) {
+		case insn_call:
+		case insn_callcc:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = insn->addr_size * -1;
+			break;
+		case insn_push:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = insn->addr_size * -1;
+			break;
+		case insn_return:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = insn->addr_size;
+		case insn_int: case insn_intcc:
+		case insn_iret:
+			break;
+		case insn_pop:
+			insn->stack_mod = 1;
+			if (! IS_SP( dest ) ) {
+				insn->stack_mod_val = insn->op_size;
+			} /* else we don't know the stack change in a pop esp */
+			break;
+		case insn_enter:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_leave:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_pushregs:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_popregs:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_pushflags:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_popflags:
+			insn->stack_mod = 1;
+			insn->stack_mod_val = 0; /* TODO : FIX */
+			break;
+		case insn_add:
+			if ( IS_SP( dest ) ) {
+				insn->stack_mod = 1;
+				insn->stack_mod_val = long_from_operand( src ); 
+			}
+			break;
+		case insn_sub:
+			if ( IS_SP( dest ) ) {
+				insn->stack_mod = 1;
+				insn->stack_mod_val = long_from_operand( src ); 
+				insn->stack_mod_val *= -1;
+			}
+			break;
+		case insn_inc:
+			if ( IS_SP( dest ) ) {
+				insn->stack_mod = 1;
+				insn->stack_mod_val = 1;
+			}
+			break;
+		case insn_dec:
+			if ( IS_SP( dest ) ) {
+				insn->stack_mod = 1;
+				insn->stack_mod_val = 1;
+			}
+			break;
+		case insn_mov: case insn_movcc:
+		case insn_xchg: case insn_xchgcc:
+		case insn_mul: case insn_div:
+		case insn_shl: case insn_shr:
+		case insn_rol: case insn_ror:
+		case insn_and: case insn_or:
+		case insn_not: case insn_neg:
+		case insn_xor:
+			if ( IS_SP( dest ) ) {
+				insn->stack_mod = 1;
+			}
+			break;
+		default:
+			break;
+	}
+	if (! strcmp("enter", insn->mnemonic) ) {
+		insn->stack_mod = 1;
+	} else if (! strcmp("leave", insn->mnemonic) ) {
+		insn->stack_mod = 1;
+	}
+
+	/* for mov, etc we return 0 -- unknown stack mod */
+
+	return;
+}
+
+/* get the cpu details for this insn from cpu flags int */
+static void ia32_handle_cpu( x86_insn_t *insn, unsigned int cpu ) {
+	insn->cpu = (enum x86_insn_cpu) CPU_MODEL(cpu);
+	insn->isa = (enum x86_insn_isa) (ISA_SUBSET(cpu)) >> 16;
+	return;
+}
+
+/* handle mnemonic type and group */
+static void ia32_handle_mnemtype(x86_insn_t *insn, unsigned int mnemtype) {
+	unsigned int type = mnemtype & ~INS_FLAG_MASK;
+        insn->group = (enum x86_insn_group) (INS_GROUP(type)) >> 12;
+        insn->type = (enum x86_insn_type) INS_TYPE(type);
+
+	return;
+}
+
+static void ia32_handle_notes(x86_insn_t *insn, unsigned int notes) {
+	insn->note = (enum x86_insn_note) notes;
+	return;
+}
+
+static void ia32_handle_eflags( x86_insn_t *insn, unsigned int eflags) {
+        unsigned int flags;
+
+        /* handle flags effected */
+        flags = INS_FLAGS_TEST(eflags);
+        /* handle weird OR cases */
+        /* these are either JLE (ZF | SF<>OF) or JBE (CF | ZF) */
+        if (flags & INS_TEST_OR) {
+                flags &= ~INS_TEST_OR;
+                if ( flags & INS_TEST_ZERO ) {
+                        flags &= ~INS_TEST_ZERO;
+                        if ( flags & INS_TEST_CARRY ) {
+                                flags &= ~INS_TEST_CARRY ;
+                                flags |= (int)insn_carry_or_zero_set;
+                        } else if ( flags & INS_TEST_SFNEOF ) {
+                                flags &= ~INS_TEST_SFNEOF;
+                                flags |= (int)insn_zero_set_or_sign_ne_oflow;
+                        }
+                }
+        }
+        insn->flags_tested = (enum x86_flag_status) flags;
+
+        insn->flags_set = (enum x86_flag_status) INS_FLAGS_SET(eflags) >> 16;
+
+	return;
+}
+
+static void ia32_handle_prefix( x86_insn_t *insn, unsigned int prefixes ) {
+
+        insn->prefix = (enum x86_insn_prefix) prefixes & PREFIX_MASK; // >> 20;
+        if (! (insn->prefix & PREFIX_PRINT_MASK) ) {
+		/* no printable prefixes */
+                insn->prefix = insn_no_prefix;
+        }
+
+        /* concat all prefix strings */
+        if ( (unsigned int)insn->prefix & PREFIX_LOCK ) {
+                strncat(insn->prefix_string, "lock ", 32 - 
+				strlen(insn->prefix_string));
+        }
+
+        if ( (unsigned int)insn->prefix & PREFIX_REPNZ ) {
+                strncat(insn->prefix_string, "repnz ", 32  - 
+				strlen(insn->prefix_string));
+        } else if ( (unsigned int)insn->prefix & PREFIX_REPZ ) {
+                strncat(insn->prefix_string, "repz ", 32 - 
+				strlen(insn->prefix_string));
+        }
+
+        return;
+}
+
+
+static void reg_32_to_16( x86_op_t *op, x86_insn_t *insn, void *arg ) {
+
+	/* if this is a 32-bit register and it is a general register ... */
+	if ( op->type == op_register && op->data.reg.size == 4 && 
+	     (op->data.reg.type & reg_gen) ) {
+		/* WORD registers are 8 indices off from DWORD registers */
+		ia32_handle_register( &(op->data.reg), 
+				op->data.reg.id + 8 );
+	}
+}
+
+static void handle_insn_metadata( x86_insn_t *insn, ia32_insn_t *raw_insn ) {
+	ia32_handle_mnemtype( insn, raw_insn->mnem_flag );
+	ia32_handle_notes( insn, raw_insn->notes );
+	ia32_handle_eflags( insn, raw_insn->flags_effected );
+	ia32_handle_cpu( insn, raw_insn->cpu );
+	ia32_stack_mod( insn );
+}
+
+static size_t ia32_decode_insn( unsigned char *buf, size_t buf_len, 
+			   ia32_insn_t *raw_insn, x86_insn_t *insn,
+			   unsigned int prefixes ) {
+	size_t size, op_size;
+	unsigned char modrm;
+
+	/* this should never happen, but just in case... */
+	if ( raw_insn->mnem_flag == INS_INVALID ) {
+		return 0;
+	}
+
+	if (ia32_settings.options & opt_16_bit) {
+		insn->op_size = ( prefixes & PREFIX_OP_SIZE ) ? 4 : 2;
+		insn->addr_size = ( prefixes & PREFIX_ADDR_SIZE ) ? 4 : 2;
+	} else {
+		insn->op_size = ( prefixes & PREFIX_OP_SIZE ) ? 2 : 4;
+		insn->addr_size = ( prefixes & PREFIX_ADDR_SIZE ) ? 2 : 4;
+	}
+
+
+	/*  ++++   1. Copy mnemonic and mnemonic-flags to CODE struct */
+	if ((ia32_settings.options & opt_att_mnemonics) && raw_insn->mnemonic_att[0]) {
+		strncpy( insn->mnemonic, raw_insn->mnemonic_att, 16 );
+	}
+	else {
+		strncpy( insn->mnemonic, raw_insn->mnemonic, 16 );
+	}
+	ia32_handle_prefix( insn, prefixes );
+
+	handle_insn_metadata( insn, raw_insn );
+
+	/* prefetch the next byte in case it is a modr/m byte -- saves
+	 * worrying about whether the 'mod/rm' operand or the 'reg' operand
+	 * occurs first */
+	modrm = GET_BYTE( buf, buf_len );
+
+	/*  ++++   2. Decode Explicit Operands */
+	/* Intel uses up to 3 explicit operands in its instructions;
+	 * the first is 'dest', the second is 'src', and the third
+	 * is an additional source value (usually an immediate value,
+	 * e.g. in the MUL instructions). These three explicit operands
+	 * are encoded in the opcode tables, even if they are not used 
+	 * by the instruction. Additional implicit operands are stored
+	 * in a supplemental table and are handled later. */
+
+	op_size = ia32_decode_operand( buf, buf_len, insn, raw_insn->dest, 
+					raw_insn->dest_flag, prefixes, modrm );
+	/* advance buffer, increase size if necessary */
+	buf += op_size;
+	buf_len -= op_size;
+	size = op_size;
+
+	op_size = ia32_decode_operand( buf, buf_len, insn, raw_insn->src, 
+					raw_insn->src_flag, prefixes, modrm );
+	buf += op_size;
+	buf_len -= op_size;
+	size += op_size;
+
+	op_size = ia32_decode_operand( buf, buf_len, insn, raw_insn->aux, 
+					raw_insn->aux_flag, prefixes, modrm );
+	size += op_size;
+
+
+	/*  ++++   3. Decode Implicit Operands */
+	/* apply implicit operands */
+	ia32_insn_implicit_ops( insn, raw_insn->implicit_ops );
+	/* we have one small inelegant hack here, to deal with 
+	 * the two prefixes that have implicit operands. If Intel
+	 * adds more, we'll change the algorithm to suit :) */
+	if ( (prefixes & PREFIX_REPZ) || (prefixes & PREFIX_REPNZ) ) {
+		ia32_insn_implicit_ops( insn, IDX_IMPLICIT_REP );
+	}
+
+
+	/* 16-bit hack: foreach operand, if 32-bit reg, make 16-bit reg */
+	if ( insn->op_size == 2 ) {
+		x86_operand_foreach( insn, reg_32_to_16, NULL, op_any );
+	}
+
+	return size;
+}
+
+
+/* convenience routine */
+#define USES_MOD_RM(flag) \
+	(flag == ADDRMETH_E || flag == ADDRMETH_M || flag == ADDRMETH_Q || \
+	 flag == ADDRMETH_W || flag == ADDRMETH_R)
+
+static int uses_modrm_flag( unsigned int flag ) {
+	unsigned int meth;
+	if ( flag == ARG_NONE ) {
+		return 0;
+	}
+	meth = (flag & ADDRMETH_MASK);
+	if ( USES_MOD_RM(meth) ) {
+		return 1;
+	}
+
+	return 0;
+}
+
+/* This routine performs the actual byte-by-byte opcode table lookup.
+ * Originally it was pretty simple: get a byte, adjust it to a proper
+ * index into the table, then check the table row at that index to
+ * determine what to do next. But is anything that simple with Intel?
+ * This is now a huge, convoluted mess, mostly of bitter comments. */
+/* buf: pointer to next byte to read from stream 
+ * buf_len: length of buf
+ * table: index of table to use for lookups
+ * raw_insn: output pointer that receives opcode definition
+ * prefixes: output integer that is encoded with prefixes in insn 
+ * returns : number of bytes consumed from stream during lookup */ 
+size_t ia32_table_lookup( unsigned char *buf, size_t buf_len,
+				 unsigned int table, ia32_insn_t **raw_insn,
+				 unsigned int *prefixes ) {
+	unsigned char *next, op = buf[0];	/* byte value -- 'opcode' */
+	size_t size = 1, sub_size = 0, next_len;
+	ia32_table_desc_t *table_desc;
+	unsigned int subtable, prefix = 0, recurse_table = 0;
+
+	table_desc = &ia32_tables[table];
+
+	op = GET_BYTE( buf, buf_len );
+
+	if ( table_desc->type == tbl_fpu && op > table_desc->maxlim) {
+		/* one of the fucking FPU tables out of the 00-BH range */
+		/* OK,. this is a bit of a hack -- the proper way would
+		 * have been to use subtables in the 00-BF FPU opcode tables,
+		 * but that is rather wasteful of space... */
+		table_desc = &ia32_tables[table +1];
+	}
+
+	/* PERFORM TABLE LOOKUP */
+
+	/* ModR/M trick: shift extension bits into lowest bits of byte */
+	/* Note: non-ModR/M tables have a shift value of 0 */
+	op >>= table_desc->shift;
+
+	/* ModR/M trick: mask out high bits to turn extension into an index */
+	/* Note: non-ModR/M tables have a mask value of 0xFF */
+	op &= table_desc->mask;
+
+
+	/* Sparse table trick: check that byte is <= max value */
+	/* Note: full (256-entry) tables have a maxlim of 155 */
+	if ( op > table_desc->maxlim ) {
+		/* this is a partial table, truncated at the tail,
+		   and op is out of range! */
+		return INVALID_INSN;
+	}
+
+	/* Sparse table trick: check that byte is >= min value */
+	/* Note: full (256-entry) tables have a minlim of 0 */
+	if ( table_desc->minlim > op ) {
+		/* this is a partial table, truncated at the head,
+		   and op is out of range! */
+		return INVALID_INSN;
+	}
+	/* adjust op to be an offset from table index 0 */
+	op -= table_desc->minlim;
+
+	/* Yay! 'op' is now fully adjusted to be an index into 'table' */
+	*raw_insn = &(table_desc->table[op]);
+	//printf("BYTE %X TABLE %d OP %X\n", buf[0], table, op ); 
+
+	if ( (*raw_insn)->mnem_flag & INS_FLAG_PREFIX ) {
+		prefix = (*raw_insn)->mnem_flag & PREFIX_MASK;
+	}
+
+
+	/* handle escape to a multibyte/coproc/extension/etc table */
+	/* NOTE: if insn is a prefix and has a subtable, then we
+	 *       only recurse if this is the first prefix byte --
+	 *       that is, if *prefixes is 0. 
+	 * NOTE also that suffix tables are handled later */
+	subtable = (*raw_insn)->table;
+
+	if ( subtable && ia32_tables[subtable].type != tbl_suffix &&
+	     (! prefix || ! *prefixes) ) {
+
+	     	if ( ia32_tables[subtable].type == tbl_ext_ext ||
+	     	     ia32_tables[subtable].type == tbl_fpu_ext ) {
+			/* opcode extension: reuse current byte in buffer */
+			next = buf;
+			next_len = buf_len;
+		} else {
+			/* "normal" opcode: advance to next byte in buffer */
+			if ( buf_len > 1 ) {
+				next = &buf[1];
+				next_len = buf_len - 1;
+			}
+			else {
+				// buffer is truncated 
+				return INVALID_INSN;
+			}
+		}
+		/* we encountered a multibyte opcode: recurse using the
+		 * table specified in the opcode definition */
+		sub_size = ia32_table_lookup( next, next_len, subtable, 
+				raw_insn, prefixes );
+
+		/* SSE/prefix hack: if the original opcode def was a 
+		 * prefix that specified a subtable, and the subtable
+		 * lookup returned a valid insn, then we have encountered
+		 * an SSE opcode definition; otherwise, we pretend we
+		 * never did the subtable lookup, and deal with the 
+		 * prefix normally later */
+		if ( prefix && ( sub_size == INVALID_INSN  ||
+		       INS_TYPE((*raw_insn)->mnem_flag) == INS_INVALID ) ) {
+			/* this is a prefix, not an SSE insn :
+			 * lookup next byte in main table,
+			 * subsize will be reset during the
+			 * main table lookup */
+			recurse_table = 1;
+		} else {
+			/* this is either a subtable (two-byte) insn
+			 * or an invalid insn: either way, set prefix
+			 * to NULL and end the opcode lookup */
+			prefix = 0;
+			// short-circuit lookup on invalid insn
+			if (sub_size == INVALID_INSN) return INVALID_INSN;
+		}
+	} else if ( prefix ) {
+		recurse_table = 1;
+	}
+
+	/* by default, we assume that we have the opcode definition,
+	 * and there is no need to recurse on the same table, but
+	 * if we do then a prefix was encountered... */
+	if ( recurse_table ) {
+		/* this must have been a prefix: use the same table for
+		 * lookup of the next byte */
+		sub_size = ia32_table_lookup( &buf[1], buf_len - 1, table, 
+				raw_insn, prefixes );
+
+		// short-circuit lookup on invalid insn
+		if (sub_size == INVALID_INSN) return INVALID_INSN;
+
+		/* a bit of a hack for branch hints */
+		if ( prefix & BRANCH_HINT_MASK ) {
+			if ( INS_GROUP((*raw_insn)->mnem_flag) == INS_EXEC ) {
+				/* segment override prefixes are invalid for
+			 	* all branch instructions, so delete them */
+				prefix &= ~PREFIX_REG_MASK;
+			} else {
+				prefix &= ~BRANCH_HINT_MASK;
+			}
+		}
+
+		/* apply prefix to instruction */
+
+		/* TODO: implement something enforcing prefix groups */
+		(*prefixes) |= prefix;
+	}
+
+	/* if this lookup was in a ModR/M table, then an opcode byte is 
+	 * NOT consumed: subtract accordingly. NOTE that if none of the
+	 * operands used the ModR/M, then we need to consume the byte
+	 * here, but ONLY in the 'top-level' opcode extension table */
+
+	if ( table_desc->type == tbl_ext_ext ) {
+		/* extensions-to-extensions never consume a byte */
+		--size;
+	} else if ( (table_desc->type == tbl_extension || 
+	       	     table_desc->type == tbl_fpu ||
+		     table_desc->type == tbl_fpu_ext ) && 
+		/* extensions that have an operand encoded in ModR/M
+		 * never consume a byte */
+	      	    (uses_modrm_flag((*raw_insn)->dest_flag) || 
+	             uses_modrm_flag((*raw_insn)->src_flag) )  	) {
+		--size;
+	}
+
+	size += sub_size;
+
+	return size;
+}
+
+static size_t handle_insn_suffix( unsigned char *buf, size_t buf_len,
+			   ia32_insn_t *raw_insn, x86_insn_t * insn ) {
+	ia32_insn_t *sfx_insn;
+	size_t size;
+	unsigned int prefixes = 0;
+
+	size = ia32_table_lookup( buf, buf_len, raw_insn->table, &sfx_insn,
+				 &prefixes );
+	if (size == INVALID_INSN || sfx_insn->mnem_flag == INS_INVALID ) {
+		return 0;
+	}
+
+	strncpy( insn->mnemonic, sfx_insn->mnemonic, 16 );
+	handle_insn_metadata( insn, sfx_insn );
+
+	return 1;
+}
+
+/* invalid instructions are handled by returning 0 [error] from the
+ * function, setting the size of the insn to 1 byte, and copying
+ * the byte at the start of the invalid insn into the x86_insn_t.
+ * if the caller is saving the x86_insn_t for invalid instructions,
+ * instead of discarding them, this will maintain a consistent
+ * address space in the x86_insn_ts */
+
+/* this function is called by the controlling disassembler, so its name and
+ * calling convention cannot be changed */
+/*    buf   points to the loc of the current opcode (start of the 
+ *          instruction) in the instruction stream. The instruction 
+ *          stream is assumed to be a buffer of bytes read directly 
+ *          from the file for the purpose of disassembly; a mem-mapped 
+ *          file is ideal for *        this.
+ *    insn points to a code structure to be filled by instr_decode
+ *    returns the size of the decoded instruction in bytes */
+size_t ia32_disasm_addr( unsigned char * buf, size_t buf_len, 
+		x86_insn_t *insn ) {
+	ia32_insn_t *raw_insn = NULL;
+	unsigned int prefixes = 0;
+	size_t size, sfx_size;
+	
+	if ( (ia32_settings.options & opt_ignore_nulls) && buf_len > 3 &&
+	    !buf[0] && !buf[1] && !buf[2] && !buf[3]) {
+		/* IF IGNORE_NULLS is set AND
+		 * first 4 bytes in the intruction stream are NULL
+		 * THEN return 0 (END_OF_DISASSEMBLY) */
+		/* TODO: set errno */
+		MAKE_INVALID( insn, buf );
+		return 0;	/* 4 00 bytes in a row? This isn't code! */
+	}
+
+	/* Perform recursive table lookup starting with main table (0) */
+	size = ia32_table_lookup(buf, buf_len, idx_Main, &raw_insn, &prefixes);
+	if ( size == INVALID_INSN || size > buf_len || raw_insn->mnem_flag == INS_INVALID ) {
+		MAKE_INVALID( insn, buf );
+		/* TODO: set errno */
+		return 0;
+	}
+
+	/* We now have the opcode itself figured out: we can decode
+	 * the rest of the instruction. */
+	size += ia32_decode_insn( &buf[size], buf_len - size, raw_insn, insn, 
+				  prefixes );
+	if ( raw_insn->mnem_flag & INS_FLAG_SUFFIX ) {
+		/* AMD 3DNow! suffix -- get proper operand type here */
+		sfx_size = handle_insn_suffix( &buf[size], buf_len - size,
+				raw_insn, insn );
+		if (! sfx_size ) {
+			/* TODO: set errno */
+			MAKE_INVALID( insn, buf );
+			return 0;
+		}
+
+		size += sfx_size;
+	}
+
+	if (! size ) {
+		/* invalid insn */
+		MAKE_INVALID( insn, buf );
+		return 0;
+	}
+
+
+	insn->size = size;
+	return size;		/* return size of instruction in bytes */
+}
diff --git a/src/third_party/libdisasm/ia32_insn.h b/src/third_party/libdisasm/ia32_insn.h
new file mode 100644
index 0000000..d3f36c3
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_insn.h
@@ -0,0 +1,506 @@
+#ifndef IA32_INSN_H
+#define IA32_INSN_H
+/* this file contains the structure of opcode definitions and the
+ * constants they use */
+
+#include <sys/types.h>
+#include "libdis.h"
+
+
+#define GET_BYTE( buf, buf_len ) buf_len ? *buf : 0
+
+#define OP_SIZE_16	1
+#define OP_SIZE_32	2
+#define ADDR_SIZE_16	4
+#define ADDR_SIZE_32	8
+
+#define MAX_INSTRUCTION_SIZE 20
+
+/* invalid instructions are handled by returning 0 [error] from the
+ * function, setting the size of the insn to 1 byte, and copying
+ * the byte at the start of the invalid insn into the x86_insn_t.
+ * if the caller is saving the x86_insn_t for invalid instructions,
+ * instead of discarding them, this will maintain a consistent
+ * address space in the x86_insn_ts */
+
+#define INVALID_INSN ((size_t) -1)	/* return value for invalid insn */
+#define MAKE_INVALID( i, buf )                          \
+                strcpy( i->mnemonic, "invalid" );       \
+                x86_oplist_free( i );                   \
+                i->size = 1;                            \
+                i->group = insn_none;                   \
+                i->type = insn_invalid;                 \
+                memcpy( i->bytes, buf, 1 );
+
+
+size_t ia32_disasm_addr( unsigned char * buf, size_t buf_len, 
+		x86_insn_t *insn);
+
+
+/* --------------------------------------------------------- Table Lookup */
+/* IA32 Instruction defintion for ia32_opcodes.c */
+typedef struct {
+   unsigned int table;          /* escape to this sub-table */
+   unsigned int mnem_flag;      /* Flags referring to mnemonic */
+   unsigned int notes;          /* Notes for this instruction */
+   unsigned int dest_flag, src_flag, aux_flag; /* and for specific operands */
+   unsigned int cpu;            /* minimumCPU [AND with clocks?? */
+   char mnemonic[16];           /* buffers for building instruction */
+   char mnemonic_att[16];       /* at&t style mnemonic name */
+   int32_t dest;
+   int32_t src;
+   int32_t aux;
+   unsigned int flags_effected;
+   unsigned int implicit_ops;	/* implicit operands */
+} ia32_insn_t;
+
+
+
+/* --------------------------------------------------------- Prefixes */
+/* Prefix Flags */
+/* Prefixes, same order as in the manual */
+/* had to reverse the values of the first three as they were entered into
+ * libdis.h incorrectly. */
+#define PREFIX_LOCK       0x0004
+#define PREFIX_REPNZ      0x0002
+#define PREFIX_REPZ       0x0001
+#define PREFIX_OP_SIZE    0x0010
+#define PREFIX_ADDR_SIZE  0x0020
+#define PREFIX_CS         0x0100
+#define PREFIX_SS         0x0200
+#define PREFIX_DS         0x0300
+#define PREFIX_ES         0x0400
+#define PREFIX_FS         0x0500
+#define PREFIX_GS         0x0600
+#define PREFIX_TAKEN      0x1000	/* branch taken */
+#define PREFIX_NOTTAKEN   0x2000	/* branch not taken */
+#define PREFIX_REG_MASK   0x0F00
+#define BRANCH_HINT_MASK  0x3000 
+#define PREFIX_PRINT_MASK 0x000F	/* printable prefixes */
+#define PREFIX_MASK       0xFFFF
+
+/* ---------------------------------------------------------- CPU Type */
+
+#define cpu_8086         0x0001
+#define cpu_80286        0x0002
+#define cpu_80386        0x0003
+#define cpu_80387        0x0004 /* originally these were a co-proc */
+#define cpu_80486        0x0005
+#define cpu_PENTIUM      0x0006
+#define cpu_PENTPRO      0x0007
+#define cpu_PENTIUM2     0x0008
+#define cpu_PENTIUM3     0x0009
+#define cpu_PENTIUM4     0x000A
+#define cpu_K6		 0x0010
+#define cpu_K7		 0x0020
+#define cpu_ATHLON	 0x0030
+#define CPU_MODEL_MASK	 0xFFFF
+#define CPU_MODEL(cpu)	 (cpu & CPU_MODEL_MASK)
+/* intel instruction subsets */
+#define isa_GP		 0x10000	/* General Purpose Instructions */
+#define isa_FPU		 0x20000	/* FPU instructions */
+#define isa_FPUMGT	 0x30000	/* FPU/SIMD Management */
+#define isa_MMX		 0x40000	/* MMX */
+#define isa_SSE1	 0x50000	/* SSE */
+#define isa_SSE2	 0x60000	/* SSE 2 */
+#define isa_SSE3	 0x70000	/* SSE 3 */
+#define isa_3DNOW	 0x80000	/* AMD 3d Now */
+#define isa_SYS		 0x90000	/* System Instructions */
+#define ISA_SUBSET_MASK	 0xFFFF0000
+#define ISA_SUBSET(isa)	(isa & ISA_SUBSET_MASK)
+
+
+/* ------------------------------------------------------ Operand Decoding */
+#define ARG_NONE         0
+
+/* Using a mask allows us to store info such as OP_SIGNED in the
+ * operand flags field */
+#define   OPFLAGS_MASK 	0x0000FFFF
+
+/* Operand Addressing Methods, per intel manual */
+#define   ADDRMETH_MASK	0x00FF0000
+
+/* note: for instructions with implied operands, use no ADDRMETH */
+#define   ADDRMETH_A  	0x00010000   
+#define   ADDRMETH_C   	0x00020000
+#define   ADDRMETH_D   	0x00030000
+#define   ADDRMETH_E   	0x00040000
+#define   ADDRMETH_F   	0x00050000
+#define   ADDRMETH_G   	0x00060000
+#define   ADDRMETH_I   	0x00070000
+#define   ADDRMETH_J   	0x00080000
+#define   ADDRMETH_M   	0x00090000
+#define   ADDRMETH_O   	0x000A0000
+#define   ADDRMETH_P   	0x000B0000
+#define   ADDRMETH_Q   	0x000C0000
+#define   ADDRMETH_R   	0x000D0000
+#define   ADDRMETH_S   	0x000E0000
+#define   ADDRMETH_T   	0x000F0000
+#define   ADDRMETH_V   	0x00100000
+#define   ADDRMETH_W   	0x00110000
+#define   ADDRMETH_X   	0x00120000
+#define   ADDRMETH_Y   	0x00130000
+#define	  ADDRMETH_RR  	0x00140000	/* gen reg hard-coded in opcode */
+#define	  ADDRMETH_RS  	0x00150000	/* seg reg hard-coded in opcode */
+#define	  ADDRMETH_RT  	0x00160000	/* test reg hard-coded in opcode */
+#define	  ADDRMETH_RF  	0x00170000	/* fpu reg hard-coded in opcode */
+#define	  ADDRMETH_II  	0x00180000	/* immediate hard-coded in opcode */
+#define   ADDRMETH_PP   0x00190000	/* mm reg ONLY in modr/m field */
+#define   ADDRMETH_VV   0x001A0000	/* xmm reg ONLY in mod/rm field */
+
+/* Operand Types, per intel manual */
+#define OPTYPE_MASK	0xFF000000
+
+#define OPTYPE_a	0x01000000 /* BOUND: h:h or w:w */
+#define OPTYPE_b   	0x02000000 /* byte */
+#define OPTYPE_c   	0x03000000 /* byte or word */
+#define OPTYPE_d   	0x04000000 /* word */
+#define OPTYPE_dq   	0x05000000 /* qword */
+#define OPTYPE_p   	0x06000000 /* 16:16 or 16:32 pointer */
+#define OPTYPE_pi   	0x07000000 /* dword MMX reg */
+#define OPTYPE_ps   	0x08000000 /* 128-bit single fp */
+#define OPTYPE_q   	0x09000000 /* dword */
+#define OPTYPE_s   	0x0A000000 /* 6-byte descriptor */
+#define OPTYPE_ss   	0x0B000000 /* scalar of 128-bit single fp */
+#define OPTYPE_si   	0x0C000000 /* word general register */
+#define OPTYPE_v   	0x0D000000 /* hword or word */
+#define OPTYPE_w   	0x0E000000 /* hword */
+#define OPTYPE_m   	0x0F000000	/* to handle LEA */
+#define OPTYPE_none 0xFF000000 /* no valid operand size, INVLPG */
+
+/* custom ones for FPU instructions */
+#define OPTYPE_fs	0x10000000	/* pointer to single-real*/
+#define OPTYPE_fd	0x20000000	/* pointer to double real */
+#define OPTYPE_fe	0x30000000	/* pointer to extended real */
+#define OPTYPE_fb	0x40000000	/* pointer to packed BCD */
+#define OPTYPE_fv	0x50000000	/* pointer to FPU env: 14|28-bytes */
+#define OPTYPE_ft	0x60000000	/* pointer to FPU state: 94|108-bytes */
+#define OPTYPE_fx       0x70000000      /* pointer to FPU regs: 512 bites */
+#define OPTYPE_fp       0x80000000      /* general fpu register: dbl ext */
+
+/* SSE2 operand types */
+#define OPTYPE_sd	0x90000000	/* scalar of 128-bit double fp */
+#define OPTYPE_pd	0xA0000000	/* 128-bit double fp */
+
+
+
+/* ---------------------------------------------- Opcode Table Descriptions */
+/* the table type describes how to handle byte/size increments before 
+ * and after lookup. Some tables re-use the current byte, others
+ * consume a byte only if the ModR/M encodes no operands, etc */
+enum ia32_tbl_type_id {
+	tbl_opcode = 0,	/* standard opcode table: no surprises */
+	tbl_prefix,	/* Prefix Override, e.g. 66/F2/F3 */
+	tbl_suffix,	/* 3D Now style */
+	tbl_extension,	/* ModR/M extension: 00-FF -> 00-07 */
+	tbl_ext_ext,	/* extension of modr/m using R/M field */
+	tbl_fpu,	/* fpu table: 00-BF -> 00-0F */
+	tbl_fpu_ext	/* fpu extension : C0-FF -> 00-1F */
+ };
+
+/* How it works:
+ * Bytes are 'consumed' if the next table lookup requires that the byte
+ * pointer be advanced in the instruction stream. 'Does not consume' means
+ * that, when the lookup function recurses, the same byte it re-used in the
+ * new table. It also means that size is not decremented, for example when
+ * a ModR/M byte is used. Note that tbl_extension (ModR/M) instructions that
+ * do not increase the size of an insn with their operands have a forced
+ 3 size increase in the lookup algo. Weird, yes, confusing, yes, welcome
+ * to the Intel ISA. Another note: tbl_prefix is used as an override, so an
+ * empty insn in a prefix table causes the instruction in the original table
+ * to be used, rather than an invalid insn being generated.
+ * 	tbl_opcode uses current byte and consumes it
+ * 	tbl_prefix uses current byte but does not consume it
+ * 	tbl_suffix uses and consumes last byte in insn
+ * 	tbl_extension uses current byte but does not consume it
+ * 	tbl_ext_ext uses current byte but does not consume it
+ * 	tbl_fpu uses current byte and consumes it
+ * 	tbl_fpu_ext uses current byte but does not consume it 
+ */
+
+/* Convenience struct for opcode tables : these will be stored in a 
+ * 'table of tables' so we can use a table index instead of a pointer */
+typedef struct {		/* Assembly instruction tables */
+   ia32_insn_t *table;		/* Pointer to table of instruction encodings */
+   enum ia32_tbl_type_id type;
+   unsigned char shift;		/* amount to shift modrm byte */
+   unsigned char mask;		/* bit mask for look up */
+   unsigned char minlim,maxlim;	/* limits on min/max entries. */
+} ia32_table_desc_t;
+
+
+/* ---------------------------------------------- 'Cooked' Operand Type Info */
+/*                   Permissions: */
+#define OP_R         0x001      /* operand is READ */
+#define OP_W         0x002      /* operand is WRITTEN */
+#define OP_RW        0x003	/* (OP_R|OP_W): convenience macro */
+#define OP_X         0x004      /* operand is EXECUTED */
+
+#define OP_PERM_MASK 0x0000007  /* perms are NOT mutually exclusive */
+#define OP_PERM( type )       (type & OP_PERM_MASK)
+
+/* Flags */
+#define OP_SIGNED    0x010   	/* operand is signed */
+
+#define OP_FLAG_MASK  0x0F0  /* mods are NOT mutually exclusive */
+#define OP_FLAGS( type )        (type & OP_FLAG_MASK)
+
+#define OP_REG_MASK    0x0000FFFF /* lower WORD is register ID */
+#define OP_REGTBL_MASK 0xFFFF0000 /* higher word is register type [gen/dbg] */
+#define OP_REGID( type )      (type & OP_REG_MASK)
+#define OP_REGTYPE( type )    (type & OP_REGTBL_MASK)
+
+/* ------------------------------------------'Cooked' Instruction Type Info */
+/* high-bit opcode types/insn meta-types */
+#define INS_FLAG_PREFIX		0x10000000	/* insn is a prefix */
+#define INS_FLAG_SUFFIX		0x20000000	/* followed by a suffix byte */
+#define INS_FLAG_MASK    	0xFF000000
+
+/* insn notes */
+#define INS_NOTE_RING0		0x00000001	/* insn is privileged */
+#define INS_NOTE_SMM		0x00000002	/* Sys Mgt Mode only */
+#define INS_NOTE_SERIAL		0x00000004	/* serializes */
+#define INS_NOTE_NONSWAP    0x00000008  /* insn is not swapped in att format */ // could be separate field?
+#define INS_NOTE_NOSUFFIX   0x00000010  /* insn has no size suffix in att format */ // could be separate field?
+//#define INS_NOTE_NMI		
+
+#define INS_INVALID 	0
+
+/* instruction groups */
+#define INS_EXEC	0x1000
+#define INS_ARITH	0x2000
+#define INS_LOGIC	0x3000
+#define INS_STACK	0x4000
+#define INS_COND	0x5000
+#define INS_LOAD	0x6000
+#define INS_ARRAY	0x7000
+#define INS_BIT		0x8000
+#define INS_FLAG	0x9000
+#define INS_FPU		0xA000
+#define INS_TRAPS	0xD000
+#define INS_SYSTEM	0xE000
+#define INS_OTHER	0xF000
+
+#define INS_GROUP_MASK	0xF000
+#define INS_GROUP( type )     ( type & INS_GROUP_MASK )
+
+/* INS_EXEC group */
+#define INS_BRANCH	(INS_EXEC | 0x01)	/* Unconditional branch */
+#define INS_BRANCHCC	(INS_EXEC | 0x02)	/* Conditional branch */
+#define INS_CALL	(INS_EXEC | 0x03)	/* Jump to subroutine */
+#define INS_CALLCC	(INS_EXEC | 0x04)	/* Jump to subroutine */
+#define INS_RET		(INS_EXEC | 0x05)	/* Return from subroutine */
+
+/* INS_ARITH group */
+#define INS_ADD 	(INS_ARITH | 0x01)
+#define INS_SUB		(INS_ARITH | 0x02)
+#define INS_MUL		(INS_ARITH | 0x03)
+#define INS_DIV		(INS_ARITH | 0x04)
+#define INS_INC		(INS_ARITH | 0x05)	/* increment */
+#define INS_DEC		(INS_ARITH | 0x06)	/* decrement */
+#define INS_SHL		(INS_ARITH | 0x07)	/* shift right */
+#define INS_SHR		(INS_ARITH | 0x08)	/* shift left */
+#define INS_ROL		(INS_ARITH | 0x09)	/* rotate left */
+#define INS_ROR		(INS_ARITH | 0x0A)	/* rotate right */
+#define INS_MIN		(INS_ARITH | 0x0B)	/* min func */
+#define INS_MAX		(INS_ARITH | 0x0C)	/* max func */
+#define INS_AVG		(INS_ARITH | 0x0D)	/* avg func */
+#define INS_FLR		(INS_ARITH | 0x0E)	/* floor func */
+#define INS_CEIL	(INS_ARITH | 0x0F)	/* ceiling func */
+
+/* INS_LOGIC group */
+#define INS_AND		(INS_LOGIC | 0x01)
+#define INS_OR		(INS_LOGIC | 0x02)
+#define INS_XOR		(INS_LOGIC | 0x03)
+#define INS_NOT		(INS_LOGIC | 0x04)
+#define INS_NEG		(INS_LOGIC | 0x05)
+#define INS_NAND	(INS_LOGIC | 0x06)
+
+/* INS_STACK group */
+#define INS_PUSH	(INS_STACK | 0x01)
+#define INS_POP		(INS_STACK | 0x02)
+#define INS_PUSHREGS	(INS_STACK | 0x03)	/* push register context */
+#define INS_POPREGS	(INS_STACK | 0x04)	/* pop register context */
+#define INS_PUSHFLAGS	(INS_STACK | 0x05)	/* push all flags */
+#define INS_POPFLAGS	(INS_STACK | 0x06)	/* pop all flags */
+#define INS_ENTER	(INS_STACK | 0x07)	/* enter stack frame */
+#define INS_LEAVE	(INS_STACK | 0x08)	/* leave stack frame */
+
+/* INS_COND group */
+#define INS_TEST	(INS_COND | 0x01)
+#define INS_CMP		(INS_COND | 0x02)
+
+/* INS_LOAD group */
+#define INS_MOV		(INS_LOAD | 0x01)
+#define INS_MOVCC	(INS_LOAD | 0x02)
+#define INS_XCHG	(INS_LOAD | 0x03)
+#define INS_XCHGCC	(INS_LOAD | 0x04)
+#define INS_CONV	(INS_LOAD | 0x05)	/* move and convert type */
+
+/* INS_ARRAY group */
+#define INS_STRCMP	(INS_ARRAY | 0x01)
+#define INS_STRLOAD	(INS_ARRAY | 0x02)
+#define INS_STRMOV	(INS_ARRAY | 0x03)
+#define INS_STRSTOR	(INS_ARRAY | 0x04)
+#define INS_XLAT	(INS_ARRAY | 0x05)
+
+/* INS_BIT group */
+#define INS_BITTEST	(INS_BIT | 0x01)
+#define INS_BITSET	(INS_BIT | 0x02)
+#define INS_BITCLR	(INS_BIT | 0x03)
+
+/* INS_FLAG group */
+#define INS_CLEARCF	(INS_FLAG | 0x01)	/* clear Carry flag */
+#define INS_CLEARZF	(INS_FLAG | 0x02)	/* clear Zero flag */
+#define INS_CLEAROF	(INS_FLAG | 0x03)	/* clear Overflow flag */
+#define INS_CLEARDF	(INS_FLAG | 0x04)	/* clear Direction flag */
+#define INS_CLEARSF	(INS_FLAG | 0x05)	/* clear Sign flag */
+#define INS_CLEARPF	(INS_FLAG | 0x06)	/* clear Parity flag */
+#define INS_SETCF	(INS_FLAG | 0x07)
+#define INS_SETZF	(INS_FLAG | 0x08)
+#define INS_SETOF	(INS_FLAG | 0x09)
+#define INS_SETDF	(INS_FLAG | 0x0A)
+#define INS_SETSF	(INS_FLAG | 0x0B)
+#define INS_SETPF	(INS_FLAG | 0x0C)
+#define INS_TOGCF	(INS_FLAG | 0x10)	/* toggle */
+#define INS_TOGZF	(INS_FLAG | 0x20)
+#define INS_TOGOF	(INS_FLAG | 0x30)
+#define INS_TOGDF	(INS_FLAG | 0x40)
+#define INS_TOGSF	(INS_FLAG | 0x50)
+#define INS_TOGPF	(INS_FLAG | 0x60)
+
+/* INS_FPU */
+#define INS_FMOV       (INS_FPU | 0x1)
+#define INS_FMOVCC     (INS_FPU | 0x2)
+#define INS_FNEG       (INS_FPU | 0x3)
+#define INS_FABS       (INS_FPU | 0x4)
+#define INS_FADD       (INS_FPU | 0x5)
+#define INS_FSUB       (INS_FPU | 0x6)
+#define INS_FMUL       (INS_FPU | 0x7)
+#define INS_FDIV       (INS_FPU | 0x8)
+#define INS_FSQRT      (INS_FPU | 0x9)
+#define INS_FCMP       (INS_FPU | 0xA)
+#define INS_FCOS       (INS_FPU | 0xC)               /* cosine */
+#define INS_FLDPI      (INS_FPU | 0xD)               /* load pi */
+#define INS_FLDZ       (INS_FPU | 0xE)               /* load 0 */
+#define INS_FTAN       (INS_FPU | 0xF)               /* tanget */
+#define INS_FSINE      (INS_FPU | 0x10)              /* sine */
+#define INS_FSYS       (INS_FPU | 0x20)              /* misc */
+
+/* INS_TRAP */
+#define INS_TRAP	(INS_TRAPS | 0x01)	/* generate trap */
+#define INS_TRAPCC	(INS_TRAPS | 0x02)	/* conditional trap gen */
+#define INS_TRET	(INS_TRAPS | 0x03)	/* return from trap */
+#define INS_BOUNDS	(INS_TRAPS | 0x04)	/* gen bounds trap */
+#define INS_DEBUG	(INS_TRAPS | 0x05)	/* gen breakpoint trap */
+#define INS_TRACE	(INS_TRAPS | 0x06)	/* gen single step trap */
+#define INS_INVALIDOP	(INS_TRAPS | 0x07)	/* gen invalid insn */
+#define INS_OFLOW	(INS_TRAPS | 0x08)	/* gen overflow trap */
+#define INS_ICEBP	(INS_TRAPS | 0x09)	/* ICE breakpoint */
+
+/* INS_SYSTEM */
+#define INS_HALT	(INS_SYSTEM | 0x01)	/* halt machine */
+#define INS_IN		(INS_SYSTEM | 0x02)	/* input form port */
+#define INS_OUT		(INS_SYSTEM | 0x03)	/* output to port */
+#define INS_CPUID	(INS_SYSTEM | 0x04)	/* identify cpu */
+
+/* INS_OTHER */
+#define INS_NOP		(INS_OTHER | 0x01)
+#define INS_BCDCONV	(INS_OTHER | 0x02)	/* convert to/from BCD */
+#define INS_SZCONV	(INS_OTHER | 0x03)	/* convert size of operand */
+#define INS_SALC	(INS_OTHER | 0x04)	/* set %al on carry */
+#define INS_UNKNOWN	(INS_OTHER | 0x05)
+ 
+
+#define INS_TYPE_MASK	0xFFFF
+#define INS_TYPE( type )      ( type & INS_TYPE_MASK )
+
+   /* flags effected by instruction */
+#define INS_TEST_CARRY        0x01    /* carry */
+#define INS_TEST_ZERO         0x02    /* zero/equal */
+#define INS_TEST_OFLOW        0x04    /* overflow */
+#define INS_TEST_DIR          0x08    /* direction */
+#define INS_TEST_SIGN         0x10    /* negative */
+#define INS_TEST_PARITY       0x20    /* parity */
+#define INS_TEST_OR           0x40    /* used in jle */
+#define INS_TEST_NCARRY       0x100	/* ! carry */
+#define INS_TEST_NZERO        0x200	/* ! zero */
+#define INS_TEST_NOFLOW       0x400	/* ! oflow */
+#define INS_TEST_NDIR         0x800	/* ! dir */
+#define INS_TEST_NSIGN        0x100	/* ! sign */
+#define INS_TEST_NPARITY      0x2000	/* ! parity */
+/* SF == OF */
+#define INS_TEST_SFEQOF       0x4000
+/* SF != OF */
+#define INS_TEST_SFNEOF       0x8000
+
+#define INS_TEST_ALL		INS_TEST_CARRY | INS_TEST_ZERO | \
+				INS_TEST_OFLOW | INS_TEST_SIGN | \
+				INS_TEST_PARITY
+
+#define INS_SET_CARRY        0x010000    /* carry */
+#define INS_SET_ZERO         0x020000    /* zero/equal */
+#define INS_SET_OFLOW        0x040000    /* overflow */
+#define INS_SET_DIR          0x080000    /* direction */
+#define INS_SET_SIGN         0x100000    /* negative */
+#define INS_SET_PARITY       0x200000    /* parity */
+#define INS_SET_NCARRY       0x1000000 
+#define INS_SET_NZERO        0x2000000
+#define INS_SET_NOFLOW       0x4000000
+#define INS_SET_NDIR         0x8000000
+#define INS_SET_NSIGN        0x10000000
+#define INS_SET_NPARITY      0x20000000
+#define INS_SET_SFEQOF       0x40000000
+#define INS_SET_SFNEOF       0x80000000
+
+#define INS_SET_ALL		INS_SET_CARRY | INS_SET_ZERO | \
+				INS_SET_OFLOW | INS_SET_SIGN | \
+				INS_SET_PARITY
+
+#define INS_TEST_MASK          0x0000FFFF
+#define INS_FLAGS_TEST(x)      (x & INS_TEST_MASK)
+#define INS_SET_MASK           0xFFFF0000
+#define INS_FLAGS_SET(x)       (x & INS_SET_MASK)
+
+#if 0
+/* TODO: actually start using these */
+#define X86_PAIR_NP	1		/* not pairable; execs in U */
+#define X86_PAIR_PU	2		/* pairable in U pipe */
+#define X86_PAIR_PV	3		/* pairable in V pipe */
+#define X86_PAIR_UV	4		/* pairable in UV pipe */
+#define X86_PAIR_FX	5		/* pairable with FXCH */
+
+#define X86_EXEC_PORT_0	1
+#define X86_EXEC_PORT_1	2
+#define X86_EXEC_PORT_2	4
+#define X86_EXEC_PORT_3	8
+#define X86_EXEC_PORT_4	16
+
+#define X86_EXEC_UNITS
+
+typedef struct {	/* representation of an insn during decoding */
+	uint32_t flags;		/* runtime settings */
+	/* instruction prefixes and other foolishness */
+	uint32_t prefix;		/* encoding of prefix */
+	char prefix_str[16];		/* mnemonics for prefix */
+	uint32_t branch_hint;	/* gah! */
+	unsigned int cpu_ver;		/* TODO: cpu version */
+	unsigned int clocks;		/* TODO: clock cycles: min/max */
+	unsigned char last_prefix;
+	/* runtime intruction decoding helpers */
+	unsigned char mode;		/* 16, 32, 64 */
+	unsigned char gen_regs;		/* offset of default general reg set */
+	unsigned char sz_operand;	/* operand size for insn */
+	unsigned char sz_address;	/* address size for insn */
+	unsigned char uops;		/* uops per insn */
+	unsigned char pairing;		/* np,pu,pv.lv */
+	unsigned char exec_unit;
+	unsigned char exec_port;
+	unsigned char latency;
+} ia32_info_t;
+#define MODE_32 0	/* default */
+#define MODE_16 1
+#define MODE_64 2
+#endif
+
+#endif
diff --git a/src/third_party/libdisasm/ia32_invariant.c b/src/third_party/libdisasm/ia32_invariant.c
new file mode 100644
index 0000000..68ec153
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_invariant.c
@@ -0,0 +1,313 @@
+#include <stdlib.h>
+#include <string.h>
+
+#include "ia32_invariant.h"
+#include "ia32_insn.h"
+#include "ia32_settings.h"
+
+extern ia32_table_desc_t *ia32_tables;
+extern ia32_settings_t ia32_settings;
+
+extern size_t ia32_table_lookup( unsigned char *buf, size_t buf_len,
+		unsigned int table, ia32_insn_t **raw_insn,
+		 unsigned int *prefixes );
+
+
+/* -------------------------------- ModR/M, SIB */
+/* Convenience flags */
+#define MODRM_EA  1                     /* ModR/M is an effective addr */
+#define MODRM_reg 2                     /* ModR/M is a register */
+
+/* ModR/M flags */
+#define MODRM_RM_SIB            0x04    /* R/M == 100 */
+#define MODRM_RM_NOREG          0x05    /* R/B == 101 */
+/* if (MODRM.MOD_NODISP && MODRM.RM_NOREG) then just disp32 */
+#define MODRM_MOD_NODISP        0x00    /* mod == 00 */
+#define MODRM_MOD_DISP8         0x01    /* mod == 01 */
+#define MODRM_MOD_DISP32        0x02    /* mod == 10 */
+#define MODRM_MOD_NOEA          0x03    /* mod == 11 */
+/* 16-bit modrm flags */
+#define MOD16_MOD_NODISP      0
+#define MOD16_MOD_DISP8       1
+#define MOD16_MOD_DISP16      2
+#define MOD16_MOD_REG         3
+
+#define MOD16_RM_BXSI         0
+#define MOD16_RM_BXDI         1
+#define MOD16_RM_BPSI         2
+#define MOD16_RM_BPDI         3
+#define MOD16_RM_SI           4
+#define MOD16_RM_DI           5
+#define MOD16_RM_BP           6
+#define MOD16_RM_BX           7
+
+/* SIB flags */
+#define SIB_INDEX_NONE       0x04
+#define SIB_BASE_EBP       0x05
+#define SIB_SCALE_NOBASE    0x00
+
+/* Convenience struct for modR/M bitfield */
+struct modRM_byte {  
+   unsigned int mod : 2;
+   unsigned int reg : 3;
+   unsigned int rm  : 3; 
+};
+
+/* Convenience struct for SIB bitfield */
+struct SIB_byte {
+   unsigned int scale : 2;
+   unsigned int index : 3;
+   unsigned int base  : 3;
+};
+
+#ifdef WIN32
+static void byte_decode(unsigned char b, struct modRM_byte *modrm) {
+#else
+static inline void byte_decode(unsigned char b, struct modRM_byte *modrm) {
+#endif
+	/* generic bitfield-packing routine */
+
+	modrm->mod = b >> 6;	/* top 2 bits */
+	modrm->reg = (b & 56) >> 3;	/* middle 3 bits */
+	modrm->rm = b & 7;	/* bottom 3 bits */
+}
+static int ia32_invariant_modrm( unsigned char *in, unsigned char *out,
+				 unsigned int mode_16, x86_invariant_op_t *op) {
+	struct modRM_byte modrm;
+	struct SIB_byte sib;
+	unsigned char *c, *cin;
+	unsigned short *s;
+	unsigned int *i;
+	int size = 0;	/* modrm byte is already counted */
+
+
+	byte_decode(*in, &modrm);	/* get bitfields */
+
+	out[0] = in[0];	/* save modrm byte */
+	cin = &in[1];
+	c = &out[1];
+	s = (unsigned short *)&out[1];
+	i = (unsigned int *)&out[1];
+
+	op->type = op_expression;
+	op->flags |= op_pointer;
+	if ( ! mode_16 && modrm.rm == MODRM_RM_SIB && 
+			      modrm.mod != MODRM_MOD_NOEA ) {
+		size ++;
+		byte_decode(*cin, (struct modRM_byte *)(void*)&sib);
+
+		out[1] = in[1];	/* save sib byte */
+		cin = &in[2];
+		c = &out[2];
+		s = (unsigned short *)&out[2];
+		i = (unsigned int *)&out[2];
+
+		if ( sib.base == SIB_BASE_EBP && ! modrm.mod ) {
+			/* disp 32 is variant! */
+			memset( i, X86_WILDCARD_BYTE, 4 );
+			size += 4;
+		}
+	}
+
+	if (! modrm.mod && modrm.rm == 101) {
+		if ( mode_16 ) {	/* straight RVA in disp */
+			memset( s, X86_WILDCARD_BYTE, 2 );
+			size += 2;
+		} else {
+			memset( i, X86_WILDCARD_BYTE, 2 );
+			size += 4;
+		}
+	} else if (modrm.mod && modrm.mod < 3) {
+		if (modrm.mod == MODRM_MOD_DISP8) {	 /* offset in disp */
+			*c = *cin;	
+			size += 1;
+		} else if ( mode_16 ) {
+			*s = (* ((unsigned short *) cin));
+			size += 2;
+		} else {
+			*i = (*((unsigned int *) cin));
+			size += 4;
+		}
+	} else if ( modrm.mod == 3 ) {
+		op->type = op_register;
+		op->flags &= ~op_pointer;
+	}
+
+	return (size);
+}
+
+
+static int ia32_decode_invariant( unsigned char *buf, size_t buf_len, 
+				ia32_insn_t *t, unsigned char *out, 
+				unsigned int prefixes, x86_invariant_t *inv) {
+
+	unsigned int addr_size, op_size, mode_16;
+	unsigned int op_flags[3] = { t->dest_flag, t->src_flag, t->aux_flag };
+	int x, type, bytes = 0, size = 0, modrm = 0;
+
+	/* set addressing mode */
+	if (ia32_settings.options & opt_16_bit) {
+		op_size = ( prefixes & PREFIX_OP_SIZE ) ? 4 : 2;
+		addr_size = ( prefixes & PREFIX_ADDR_SIZE ) ? 4 : 2;
+		mode_16 = ( prefixes & PREFIX_ADDR_SIZE ) ? 0 : 1;
+	} else {
+		op_size = ( prefixes & PREFIX_OP_SIZE ) ? 2 : 4;
+		addr_size = ( prefixes & PREFIX_ADDR_SIZE ) ? 2 : 4;
+		mode_16 = ( prefixes & PREFIX_ADDR_SIZE ) ? 1 : 0;
+	}
+
+	for (x = 0; x < 3; x++) {
+		inv->operands[x].access = (enum x86_op_access) 
+						OP_PERM(op_flags[x]);
+		inv->operands[x].flags = (enum x86_op_flags) 
+						(OP_FLAGS(op_flags[x]) >> 12);
+
+		switch (op_flags[x] & OPTYPE_MASK) {
+			case OPTYPE_c:
+				size = (op_size == 4) ? 2 : 1;
+				break;
+			case OPTYPE_a: case OPTYPE_v:
+				size = (op_size == 4) ? 4 : 2;
+				break;
+			case OPTYPE_p:
+				size = (op_size == 4) ? 6 : 4;
+				break;
+			case OPTYPE_b:
+				size = 1;
+				break;
+			case OPTYPE_w:
+				size = 2;
+				break;
+			case OPTYPE_d: case OPTYPE_fs: case OPTYPE_fd:
+			case OPTYPE_fe: case OPTYPE_fb: case OPTYPE_fv:
+			case OPTYPE_si: case OPTYPE_fx:
+				size = 4;
+				break;
+			case OPTYPE_s:
+				size = 6;
+				break;
+			case OPTYPE_q: case OPTYPE_pi:
+				size = 8;
+				break;
+			case OPTYPE_dq: case OPTYPE_ps: case OPTYPE_ss:
+			case OPTYPE_pd: case OPTYPE_sd:
+				size = 16;
+				break;
+			case OPTYPE_m:	
+				size = (addr_size == 4) ? 4 : 2;
+				break;
+			default:
+				break;
+		}
+
+		type = op_flags[x] & ADDRMETH_MASK;
+		switch (type) {
+			case ADDRMETH_E: case ADDRMETH_M: case ADDRMETH_Q:
+			case ADDRMETH_R: case ADDRMETH_W:
+				modrm = 1;	
+				bytes += ia32_invariant_modrm( buf, out, 
+						mode_16, &inv->operands[x]);
+				break;
+			case ADDRMETH_C: case ADDRMETH_D: case ADDRMETH_G:
+			case ADDRMETH_P: case ADDRMETH_S: case ADDRMETH_T:
+			case ADDRMETH_V:
+				inv->operands[x].type = op_register;
+				modrm = 1;
+				break;
+			case ADDRMETH_A: case ADDRMETH_O:
+				/* pad with xF4's */
+				memset( &out[bytes + modrm], X86_WILDCARD_BYTE, 
+					size );
+				bytes += size;
+				inv->operands[x].type = op_offset;
+				if ( type == ADDRMETH_O ) {
+					inv->operands[x].flags |= op_signed |
+								  op_pointer;
+				}
+				break;
+			case ADDRMETH_I: case ADDRMETH_J:
+				/* grab imm value */
+				if ((op_flags[x] & OPTYPE_MASK) == OPTYPE_v) {
+					/* assume this is an address */
+					memset( &out[bytes + modrm], 
+						X86_WILDCARD_BYTE, size );
+				} else {
+					memcpy( &out[bytes + modrm], 
+						&buf[bytes + modrm], size );
+				}
+					
+				bytes += size;
+				if ( type == ADDRMETH_J ) {
+					if ( size == 1 ) {
+						inv->operands[x].type = 
+							op_relative_near;
+					} else {
+						inv->operands[x].type = 
+							op_relative_far;
+					}
+					inv->operands[x].flags |= op_signed;
+				} else {
+					inv->operands[x].type = op_immediate;
+				}
+				break;
+			case ADDRMETH_F:
+				inv->operands[x].type = op_register;
+				break;
+			case ADDRMETH_X:
+				inv->operands[x].flags |= op_signed |
+					  op_pointer | op_ds_seg | op_string;
+				break;
+			case ADDRMETH_Y:
+				inv->operands[x].flags |= op_signed |
+					  op_pointer | op_es_seg | op_string;
+				break;
+			case ADDRMETH_RR:	
+				inv->operands[x].type = op_register;
+				break;
+			case ADDRMETH_II:	
+				inv->operands[x].type = op_immediate;
+				break;
+			default:
+				inv->operands[x].type = op_unused;
+				break;
+		}
+	}
+
+	return (bytes + modrm);
+}
+
+size_t ia32_disasm_invariant( unsigned char * buf, size_t buf_len, 
+		x86_invariant_t *inv ) {
+	ia32_insn_t *raw_insn = NULL;
+	unsigned int prefixes;
+	unsigned int type;
+	size_t size;
+	
+	/* Perform recursive table lookup starting with main table (0) */
+	size = ia32_table_lookup( buf, buf_len, 0, &raw_insn, &prefixes );
+	if ( size == INVALID_INSN || size > buf_len ) {
+		/* TODO: set errno */
+		return 0;
+	}
+
+	/* copy opcode bytes to buffer */
+	memcpy( inv->bytes, buf, size );
+
+	/* set mnemonic type and group */
+	type = raw_insn->mnem_flag & ~INS_FLAG_MASK;
+        inv->group = (enum x86_insn_group) (INS_GROUP(type)) >> 12;
+        inv->type = (enum x86_insn_type) INS_TYPE(type);
+
+	/* handle operands */
+	size += ia32_decode_invariant( buf + size, buf_len - size, raw_insn, 
+					&buf[size - 1], prefixes, inv );
+
+	inv->size = size;
+
+	return size;		/* return size of instruction in bytes */
+}
+
+size_t ia32_disasm_size( unsigned char *buf, size_t buf_len ) {
+	x86_invariant_t inv = { {0} };
+	return( ia32_disasm_invariant( buf, buf_len, &inv ) );
+}
diff --git a/src/third_party/libdisasm/ia32_invariant.h b/src/third_party/libdisasm/ia32_invariant.h
new file mode 100644
index 0000000..e1cea60
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_invariant.h
@@ -0,0 +1,11 @@
+#ifndef IA32_INVARIANT_H
+#define IA32_INVARIANT_H
+
+#include "libdis.h"
+
+size_t ia32_disasm_invariant( unsigned char *buf, size_t buf_len, 
+		x86_invariant_t *inv);
+
+size_t ia32_disasm_size( unsigned char *buf, size_t buf_len );
+
+#endif
diff --git a/src/third_party/libdisasm/ia32_modrm.c b/src/third_party/libdisasm/ia32_modrm.c
new file mode 100644
index 0000000..b0fe2ed
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_modrm.c
@@ -0,0 +1,310 @@
+#include "ia32_modrm.h"
+#include "ia32_reg.h"
+#include "x86_imm.h"
+
+/* NOTE: when decoding ModR/M and SIB, we have to add 1 to all register
+ * values obtained from decoding the ModR/M or SIB byte, since they
+ * are encoded with eAX = 0 and the tables in ia32_reg.c use eAX = 1.
+ * ADDENDUM: this is only the case when the register value is used
+ * directly as an index into the register table, not when it is added to
+ * a genregs offset. */
+
+/* -------------------------------- ModR/M, SIB */
+/* ModR/M flags */
+#define MODRM_RM_SIB            0x04    /* R/M == 100 */
+#define MODRM_RM_NOREG          0x05    /* R/B == 101 */
+
+/* if (MODRM.MOD_NODISP && MODRM.RM_NOREG) then just disp32 */
+#define MODRM_MOD_NODISP        0x00    /* mod == 00 */
+#define MODRM_MOD_DISP8         0x01    /* mod == 01 */
+#define MODRM_MOD_DISP32        0x02    /* mod == 10 */
+#define MODRM_MOD_NOEA          0x03    /* mod == 11 */
+
+/* 16-bit modrm flags */
+#define MOD16_MOD_NODISP      0
+#define MOD16_MOD_DISP8       1
+#define MOD16_MOD_DISP16      2
+#define MOD16_MOD_REG         3
+
+#define MOD16_RM_BXSI         0
+#define MOD16_RM_BXDI         1
+#define MOD16_RM_BPSI         2
+#define MOD16_RM_BPDI         3
+#define MOD16_RM_SI           4
+#define MOD16_RM_DI           5
+#define MOD16_RM_BP           6
+#define MOD16_RM_BX           7
+
+/* SIB flags */
+#define SIB_INDEX_NONE       0x04
+#define SIB_BASE_EBP       0x05
+#define SIB_SCALE_NOBASE    0x00
+
+/* Convenience struct for modR/M bitfield */
+struct modRM_byte {  
+   unsigned int mod : 2;
+   unsigned int reg : 3;
+   unsigned int rm  : 3; 
+};
+
+/* Convenience struct for SIB bitfield */
+struct SIB_byte {
+   unsigned int scale : 2;
+   unsigned int index : 3;
+   unsigned int base  : 3;
+};
+
+
+#if 0
+int modrm_rm[] = {0,1,2,3,MODRM_RM_SIB,MODRM_MOD_DISP32,6,7};
+int modrm_reg[] = {0, 1, 2, 3, 4, 5, 6, 7};
+int modrm_mod[]  = {0, MODRM_MOD_DISP8, MODRM_MOD_DISP32, MODRM_MOD_NOEA};
+int sib_scl[] = {0, 2, 4, 8};
+int sib_idx[] = {0, 1, 2, 3, SIB_INDEX_NONE, 5, 6, 7 };
+int sib_bas[] = {0, 1, 2, 3, 4, SIB_SCALE_NOBASE, 6, 7 };
+#endif
+
+/* this is needed to replace x86_imm_signsized() which does not sign-extend
+ * to dest */
+static unsigned int imm32_signsized( unsigned char *buf, size_t buf_len,
+				     int32_t *dest, unsigned int size ) {
+	if ( size > buf_len ) {
+		return 0;
+	}
+
+	switch (size) {
+		case 1:
+			*dest = *((signed char *) buf);
+			break;
+		case 2:
+			*dest = *((signed short *) buf);
+			break;
+		case 4:
+		default:
+			*dest = *((signed int *) buf);
+			break;
+	}
+
+	return size;
+}
+
+
+
+static void byte_decode(unsigned char b, struct modRM_byte *modrm) {
+	/* generic bitfield-packing routine */
+
+	modrm->mod = b >> 6;	/* top 2 bits */
+	modrm->reg = (b & 56) >> 3;	/* middle 3 bits */
+	modrm->rm = b & 7;	/* bottom 3 bits */
+}
+
+
+static size_t sib_decode( unsigned char *buf, size_t buf_len, x86_ea_t *ea, 
+			  unsigned int mod ) {
+	/* set Address Expression fields (scale, index, base, disp) 
+	 * according to the contents of the SIB byte.
+	 *  b points to the SIB byte in the instruction-stream buffer; the
+	 *    byte after b[0] is therefore the byte after the SIB
+	 *  returns number of bytes 'used', including the SIB byte */
+	size_t size = 1;		/* start at 1 for SIB byte */
+	struct SIB_byte sib;
+
+	if ( buf_len < 1 ) {
+		return 0;
+	}
+
+	byte_decode( *buf, (struct modRM_byte *)(void*)&sib );  /* get bit-fields */
+
+	if ( sib.base == SIB_BASE_EBP && ! mod ) {  /* if base == 101 (ebp) */
+	    /* IF BASE == EBP, deal with exception */
+		/* IF (ModR/M did not create a Disp */
+		/* ... create a 32-bit Displacement */
+		imm32_signsized( &buf[1], buf_len, &ea->disp, sizeof(int32_t));
+		ea->disp_size = sizeof(int32_t);
+		ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+		size += 4;	/* add sizeof disp to count */
+
+	} else {
+		/* ELSE BASE refers to a General Register */
+		ia32_handle_register( &ea->base, sib.base + 1 );
+	}
+
+	/* set scale to 1, 2, 4, 8 */
+	ea->scale = 1 << sib.scale;
+
+	if (sib.index != SIB_INDEX_NONE) {
+		/* IF INDEX is not 'ESP' (100) */
+		ia32_handle_register( &ea->index, sib.index + 1 );
+	}
+
+	return (size);		/* return number of bytes processed */
+}
+
+static size_t modrm_decode16( unsigned char *buf, unsigned int buf_len,
+			    x86_op_t *op, struct modRM_byte *modrm ) {
+	/* 16-bit mode: hackish, but not as hackish as 32-bit mode ;) */
+	size_t size = 1; /* # of bytes decoded [1 for modR/M byte] */
+	x86_ea_t * ea = &op->data.expression;
+
+	switch( modrm->rm ) {
+		case MOD16_RM_BXSI:
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 3);
+			ia32_handle_register(&ea->index, REG_WORD_OFFSET + 6);
+			break;
+		case MOD16_RM_BXDI:
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 3);
+			ia32_handle_register(&ea->index, REG_WORD_OFFSET + 7);
+		case MOD16_RM_BPSI:
+			op->flags |= op_ss_seg;
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 5);
+			ia32_handle_register(&ea->index, REG_WORD_OFFSET + 6);
+			break;
+		case MOD16_RM_BPDI:
+			op->flags |= op_ss_seg;
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 5);
+			ia32_handle_register(&ea->index, REG_WORD_OFFSET + 7);
+			break;
+		case MOD16_RM_SI:
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 6);
+			break;
+		case MOD16_RM_DI:
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 7);
+			break;
+		case MOD16_RM_BP:
+			if ( modrm->mod != MOD16_MOD_NODISP ) {
+				op->flags |= op_ss_seg;
+				ia32_handle_register(&ea->base, 
+						     REG_WORD_OFFSET + 5);
+			}
+			break;
+		case MOD16_RM_BX:
+			ia32_handle_register(&ea->base, REG_WORD_OFFSET + 3);
+			break;
+	}
+
+	/* move to byte after ModR/M */
+	++buf;
+	--buf_len;
+
+	if ( modrm->mod == MOD16_MOD_DISP8 ) {
+		imm32_signsized( buf, buf_len, &ea->disp, sizeof(char) );
+		ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+		ea->disp_size = sizeof(char);
+		size += sizeof(char);
+	} else if ( modrm->mod == MOD16_MOD_DISP16 ) {
+		imm32_signsized( buf, buf_len, &ea->disp, sizeof(short) );
+		ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+		ea->disp_size = sizeof(short);
+		size += sizeof(short);
+	} 
+
+	return size;
+}
+
+/* TODO : Mark index modes
+    Use addressing mode flags to imply arrays (index), structure (disp),
+    two-dimensional arrays [disp + index], classes [ea reg], and so on.
+*/
+size_t ia32_modrm_decode( unsigned char *buf, unsigned int buf_len,
+			    x86_op_t *op, x86_insn_t *insn, size_t gen_regs ) {
+	/* create address expression and/or fill operand based on value of
+	 * ModR/M byte. Calls sib_decode as appropriate.
+	 *    flags specifies whether Reg or mod+R/M fields are being decoded
+	 *  returns the number of bytes in the instruction, including modR/M */
+	struct modRM_byte modrm;
+	size_t size = 1;	/* # of bytes decoded [1 for modR/M byte] */
+	x86_ea_t * ea;
+
+
+	byte_decode(*buf, &modrm);	/* get bitfields */
+
+	/* first, handle the case where the mod field is a register only */
+	if ( modrm.mod == MODRM_MOD_NOEA ) {
+		op->type = op_register;
+		ia32_handle_register(&op->data.reg, modrm.rm + gen_regs);
+                /* increase insn size by 1 for modrm byte */
+ 		return 1;
+ 	}
+ 
+	/* then deal with cases where there is an effective address */
+	ea = &op->data.expression;
+	op->type = op_expression;
+	op->flags |= op_pointer;
+
+	if ( insn->addr_size == 2 ) {
+		/* gah! 16 bit mode! */
+		return modrm_decode16( buf, buf_len, op, &modrm);
+	}
+
+	/* move to byte after ModR/M */
+	++buf;
+	--buf_len;
+
+	if (modrm.mod == MODRM_MOD_NODISP) {	/* if mod == 00 */
+
+		/* IF MOD == No displacement, just Indirect Register */
+		if (modrm.rm == MODRM_RM_NOREG) {	/* if r/m == 101 */
+			/* IF RM == No Register, just Displacement */
+			/* This is an Intel Moronic Exception TM */
+			imm32_signsized( buf, buf_len, &ea->disp, 
+					sizeof(int32_t) );
+			ea->disp_size = sizeof(int32_t);
+			ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+			size += 4;	/* add sizeof disp to count */
+
+		} else if (modrm.rm == MODRM_RM_SIB) {	/* if r/m == 100 */
+			/* ELSE IF an SIB byte is present */
+			/* TODO: check for 0 retval */
+			size += sib_decode( buf, buf_len, ea, modrm.mod);
+			/* move to byte after SIB for displacement */
+			++buf;
+			--buf_len;
+		} else {	/* modR/M specifies base register */
+			/* ELSE RM encodes a general register */
+			ia32_handle_register( &ea->base, modrm.rm + 1 );
+		}
+	} else { 					/* mod is 01 or 10 */
+		if (modrm.rm == MODRM_RM_SIB) {	/* rm == 100 */
+			/* IF base is an AddrExpr specified by an SIB byte */
+			/* TODO: check for 0 retval */
+			size += sib_decode( buf, buf_len, ea, modrm.mod);
+			/* move to byte after SIB for displacement */
+			++buf;
+			--buf_len;
+		} else {
+			/* ELSE base is a general register */
+			ia32_handle_register( &ea->base, modrm.rm + 1 );
+		}
+
+		/* ELSE mod + r/m specify a disp##[base] or disp##(SIB) */
+		if (modrm.mod == MODRM_MOD_DISP8) {		/* mod == 01 */
+			/* If this is an 8-bit displacement */
+			imm32_signsized( buf, buf_len, &ea->disp, 
+					sizeof(char));
+			ea->disp_size = sizeof(char);
+			ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+			size += 1;	/* add sizeof disp to count */
+
+		} else {
+			/* Displacement is dependent on address size */
+			imm32_signsized( buf, buf_len, &ea->disp, 
+					insn->addr_size);
+			ea->disp_size = insn->addr_size;
+			ea->disp_sign = (ea->disp < 0) ? 1 : 0;
+			size += 4;
+		}
+	}
+
+	return size;		/* number of bytes found in instruction */
+}
+
+void ia32_reg_decode( unsigned char byte, x86_op_t *op, size_t gen_regs ) {
+	struct modRM_byte modrm;
+	byte_decode( byte, &modrm );	/* get bitfields */
+
+ 	/* set operand to register ID */
+	op->type = op_register;
+	ia32_handle_register(&op->data.reg, modrm.reg + gen_regs);
+
+	return;
+}
diff --git a/src/third_party/libdisasm/ia32_modrm.h b/src/third_party/libdisasm/ia32_modrm.h
new file mode 100644
index 0000000..765cb08
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_modrm.h
@@ -0,0 +1,13 @@
+#ifndef IA32_MODRM_H
+#define IA32_MODRM_H
+
+#include "libdis.h"
+#include "ia32_insn.h"
+
+size_t ia32_modrm_decode( unsigned char *buf, unsigned int buf_len,
+			    x86_op_t *op, x86_insn_t *insn,
+			    size_t gen_regs );
+
+void ia32_reg_decode( unsigned char byte, x86_op_t *op, size_t gen_regs );
+
+#endif
diff --git a/src/third_party/libdisasm/ia32_opcode_tables.c b/src/third_party/libdisasm/ia32_opcode_tables.c
new file mode 100644
index 0000000..ef97c7a
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_opcode_tables.c
@@ -0,0 +1,2939 @@
+#include "ia32_insn.h"
+
+#include "ia32_reg.h"
+
+#include "ia32_opcode_tables.h"
+
+static ia32_insn_t tbl_Main[] = {	/* One-byte Opcodes */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RS | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   1,   0,   0,  0 , 33 },
+	 { idx_0F,   0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+/* 0x10 */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   2,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RS | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   2,   0,   0,  0 , 33 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_SIGNED | OP_R,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_RR | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_RR | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   3,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RS | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   3,   0,   0,  0 , 33 },
+/* 0x20 */
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_ES,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BCDCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "daa", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_CARRY|INS_SET_PARITY|INS_TEST_CARRY, 12 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_G | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_RR | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_RR | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_CS | PREFIX_NOTTAKEN,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BCDCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "das", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_CARRY|INS_SET_PARITY|INS_TEST_CARRY, 0 },
+/* 0x30 */
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_SS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BCDCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "aaa", "",   0,   0,   0,  INS_SET_CARRY, 1 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_G | OPTYPE_b | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_RR | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_DS | PREFIX_TAKEN,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BCDCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "aas", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+/* 0x40 */
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   1,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   2,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   3,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   4,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   5,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   6,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_INC,  0,   ADDRMETH_RR | OPTYPE_v | OP_R | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   7,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   1,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   2,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   3,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   4,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   5,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   6,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   7,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+/* 0x50 */
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   1,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   2,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   3,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   4,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   5,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   6,   0,   0,  0 , 33 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   7,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   1,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   2,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   3,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   4,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   5,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   6,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   7,   0,   0,  0 , 33 },
+/* 0x60 */
+	 { 0,   INS_PUSHREGS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pusha", "",   0,   0,   0,  0 , 36 },
+	 { 0,   INS_POPREGS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "popa", "",   0,   0,   0,  0 , 34 },
+	 { 0,   INS_BOUNDS, INS_NOTE_NONSWAP,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_M | OPTYPE_a | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bound", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_R | OP_W,   ADDRMETH_G | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "arpl", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_FS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_GS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_66,   INS_FLAG_PREFIX | PREFIX_OP_SIZE,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_FLAG_PREFIX | PREFIX_ADDR_SIZE,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_R | OP_W,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   cpu_80386 | isa_GP,   "imul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   0,   0,   0,  0 , 33 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_R | OP_W,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ADDRMETH_I |  OPTYPE_b | OP_SIGNED | OP_R,   cpu_80386 | isa_GP,   "imul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 0 },
+	 { 0,   INS_IN,  0,    ADDRMETH_Y | OPTYPE_b | OP_W,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ins", "",   0,   2,   0,  0 , 0 },
+	 { 0,   INS_IN,  0,    ADDRMETH_Y | OPTYPE_v | OP_W,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ins", "",   0,   2,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,    ADDRMETH_RR | OPTYPE_b | OP_R,   ADDRMETH_X | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "outs", "",   2,   0,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,    ADDRMETH_RR | OPTYPE_v | OP_R,   ADDRMETH_X | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "outs", "",   2,   0,   0,  0 , 0 },
+/* 0x70 */
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jo", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jno", "",   0,   0,   0,  INS_TEST_NOFLOW, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jc", "",   0,   0,   0,  INS_TEST_CARRY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jnc", "",   0,   0,   0,  INS_TEST_NCARRY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jz", "",   0,   0,   0,  INS_TEST_ZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jnz", "",   0,   0,   0,  INS_TEST_NZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jbe", "",   0,   0,   0,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ja", "",   0,   0,   0,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "js", "",   0,   0,   0,  INS_TEST_SIGN, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jns", "",   0,   0,   0,  INS_TEST_NSIGN, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jpe", "",   0,   0,   0,  INS_TEST_PARITY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jpo", "",   0,   0,   0,  INS_TEST_NPARITY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jl", "",   0,   0,   0,  INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jge", "",   0,   0,   0,  INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jle", "",   0,   0,   0,  INS_TEST_ZERO|INS_TEST_OR|INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jg", "",   0,   0,   0,  INS_TEST_NZERO|INS_TEST_SFEQOF, 0 },
+/* 0x80 */
+	 { idx_80,   0,   0,   ADDRMETH_E | OPTYPE_b,   ADDRMETH_I | OPTYPE_b,   ARG_NONE,  cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_81,   0,   0,   ADDRMETH_E | OPTYPE_v,   ADDRMETH_I | OPTYPE_v,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_82,   0,   0,   ADDRMETH_E | OPTYPE_b,   ADDRMETH_I | OPTYPE_b,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_83,   0,   0,   ADDRMETH_E | OPTYPE_v,   ADDRMETH_I | OPTYPE_b,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ADDRMETH_G | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_v | OP_W,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_b | OP_W,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ADDRMETH_S | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_M | OPTYPE_m | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lea", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_S | OPTYPE_w | OP_W,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_POP,  0,   ADDRMETH_E | OPTYPE_v | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   0,   0,   0,  0 , 33 },
+/* 0x90 */
+	 { 0,   INS_NOP,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "nop", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   1,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   2,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   3,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   4,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   5,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   6,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xchg", "",   0,   7,   0,  0 , 0 },
+	 { 0,   INS_SZCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "cwde", "",   0,   0,   0,  0 , 5 },
+	 { 0,   INS_SZCONV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "cdq", "",   0,   0,   0,  0 , 11 },
+	 { 0,   INS_CALL,  0,   ADDRMETH_A | OPTYPE_p | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "callf", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "wait", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_PUSHFLAGS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pushf", "",   0,   0,   0,  0 , 37 },
+	 { 0,   INS_POPFLAGS,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "popf", "",   0,   0,   0,  0 , 35 },
+	 { 0,   INS_MOV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sahf", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 43 },
+	 { 0,   INS_MOV,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lahf", "",   0,   0,   0,  0 , 24 },
+/* 0xa0 */
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_O | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_O | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_O | OPTYPE_b | OP_W,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_O | OPTYPE_v | OP_W,   ADDRMETH_RR | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRMOV,  0,   ADDRMETH_Y | OPTYPE_b | OP_W,   ADDRMETH_X | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movs", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRMOV,  0,   ADDRMETH_Y | OPTYPE_v | OP_W,   ADDRMETH_X | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movs", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRCMP,  0,   ADDRMETH_Y | OPTYPE_b | OP_R,   ADDRMETH_X | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRCMP,  0,   ADDRMETH_X | OPTYPE_v | OP_R,   ADDRMETH_Y | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_RR | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_STRSTOR,  0,   ADDRMETH_Y | OPTYPE_b | OP_W,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "stos", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRSTOR,  0,   ADDRMETH_Y | OPTYPE_v | OP_W,   ADDRMETH_RR | OPTYPE_v |OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "stos", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRLOAD,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_X| OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lods", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRLOAD,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_X| OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lods", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRCMP,  0,   ADDRMETH_RR | OPTYPE_b | OP_R,   ADDRMETH_Y | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "scas", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_STRCMP,  0,   ADDRMETH_RR | OPTYPE_v | OP_R,   ADDRMETH_Y | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "scas", "",   0,   0,   0,  0 , 0 },
+/* 0xb0 */
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   2,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   3,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   4,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   5,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   6,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   7,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   2,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   3,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   4,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   5,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   6,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   7,   0,   0,  0 , 0 },
+/* 0xc0 */
+	 { idx_C0,  0,   0,    ADDRMETH_E | OPTYPE_b,   ADDRMETH_I | OPTYPE_b,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_C1,  0,   0,    ADDRMETH_E | OPTYPE_v,   ADDRMETH_I | OPTYPE_b,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_RET,  0,   ADDRMETH_I | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ret", "",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_RET,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ret", "",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_M | OPTYPE_p | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "les", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_M | OPTYPE_p | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lds", "",   0,   0,   0,  0 , 0 },
+	 { idx_C6,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_C7,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ENTER, INS_NOTE_NONSWAP,   ADDRMETH_I | OPTYPE_w | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "enter", "",   0,   0,   0,  0 , 15 },
+	 { 0,   INS_LEAVE,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "leave", "",   0,   0,   0,  0 , 26 },
+	 { 0,   INS_RET,  0,   ADDRMETH_I | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "retf", "lret",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_RET,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "retf", "lret",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_DEBUG,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "int3", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_TRAP,  0,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "int", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OFLOW,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "into", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_TRET,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "iret", "",   0,   0,   0,  INS_SET_ALL|INS_SET_DIR, 0 },
+/* 0xd0 */
+	 { idx_D0,  0,   0,    ADDRMETH_E | OPTYPE_b,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   1,   0,  0 , 0 },
+	 { idx_D1,  0,   0,   ADDRMETH_E | OPTYPE_v,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   1,   0,  0 , 0 },
+	 { idx_D2,  0,   0,   ADDRMETH_E | OPTYPE_b,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   1,   0,  0 , 0 },
+	 { idx_D3,  0,   0,   ADDRMETH_E | OPTYPE_v,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   1,   0,  0 , 0 },
+	 { 0,   INS_BCDCONV,  0,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "aam", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_BCDCONV,  0,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "aad", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 2 },
+	 { 0,   INS_SALC,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "salc", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XLAT,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "xlat", "",   0,   0,   0,  0 , 53 },
+	 { idx_D8,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_D9,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DA,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DB,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DC,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DD,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DE,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_DF,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+/* 0xe0 */
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "loopnz", "",   0,   0,   0,  INS_TEST_NZERO, 31 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "loopz", "",   0,   0,   0,  INS_TEST_ZERO, 31 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "loop", "",   0,   0,   0,  0 , 31 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_b | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jcxz", "",   0,   0,   0,  0 , 31 },
+	 { 0,   INS_IN,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "in", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_IN,  0,   ADDRMETH_RR | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "in", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,   ADDRMETH_I | OPTYPE_b | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "out", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,   ADDRMETH_I | OPTYPE_b | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "out", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_CALL,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "call", "",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_BRANCH,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jmp", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BRANCH,  0,   ADDRMETH_A | OPTYPE_p | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jmp", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BRANCH,  0,   ADDRMETH_J | OPTYPE_b | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jmp", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_IN,  0,   ADDRMETH_RR | OPTYPE_b| OP_W,   ADDRMETH_RR | OPTYPE_w| OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "in", "",   0,   2,   0,  0 , 0 },
+	 { 0,   INS_IN,  0,   ADDRMETH_RR | OPTYPE_v | OP_W,   ADDRMETH_RR | OPTYPE_w| OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "in", "",   0,   2,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,   ADDRMETH_RR | OPTYPE_w| OP_R,   ADDRMETH_RR | OPTYPE_b| OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "out", "",   2,   0,   0,  0 , 0 },
+	 { 0,   INS_OUT,  0,   ADDRMETH_RR | OPTYPE_w| OP_R,   ADDRMETH_RR | OPTYPE_v| OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "out", "",   2,   0,   0,  0 , 0 },
+/* 0xf0 */
+	 { 0,   INS_FLAG_PREFIX | PREFIX_LOCK,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_ICEBP,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "icebp", "",   0,   0,   0,  0 , 0 },
+	 { idx_F2,   INS_FLAG_PREFIX | PREFIX_REPNZ,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_F3,   INS_FLAG_PREFIX | PREFIX_REPZ,  0, ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_HALT,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "hlt", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_TOGCF,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "cmc", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { idx_F6,  0,   0,    ADDRMETH_E | OPTYPE_b,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_F7,  0,   0,   ADDRMETH_E | OPTYPE_v,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_CLEARCF,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "clc", "",   0,   0,   0,  INS_SET_NCARRY, 0 },
+	 { 0,   INS_SETCF,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "stc", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "cli", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sti", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_CLEARDF,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "cld", "",   0,   0,   0,  INS_SET_NDIR, 0 },
+	 { 0,   INS_SETDF,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "std", "",   0,   0,   0,  INS_SET_DIR, 0 },
+	 { idx_FE,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_FF,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_66[] = {	/* SIMD 66 one-byte Opcodes */
+	 { idx_660F,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_F2[] = {	/* SIMD F2 one-byte Opcodes */
+	 { idx_F20F,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_F3[] = {	/* SIMD F3 one-byte Opcodes */
+	 { idx_F30F,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pause", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_0F[] = {	/* Two-byte Opcodes */
+	 { idx_0F00,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F01,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lar", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "lsl", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "clts", "",   0,   0,   0,  0 , 6 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "invd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "wbinvd", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_UNKNOWN,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "ud2", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0, ADDRMETH_M | OPTYPE_b | OP_R, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "prefetch", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_SYSTEM,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "femms", "", 0, 0, 0, 0, 0 },
+	 { idx_0F0F, INS_FLAG_SUFFIX,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movups", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_W | OPTYPE_ps | OP_W,   ADDRMETH_V | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movups", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F12,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  INS_NOTE_NOSUFFIX,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_W | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movlps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "unpcklps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "unpckhps", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F16,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_q | OP_W,   ADDRMETH_V | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movhps", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F18,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_R | OPTYPE_d | OP_W,   ADDRMETH_C | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_R | OPTYPE_d | OP_W,   ADDRMETH_D | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_C | OPTYPE_d | OP_W,   ADDRMETH_R | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_D | OPTYPE_d | OP_W,   ADDRMETH_R | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_R | OPTYPE_d | OP_W,   ADDRMETH_T | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_T | OPTYPE_d | OP_W,   ADDRMETH_R | OPTYPE_d | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movaps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_W | OPTYPE_ps | OP_W,   ADDRMETH_V | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movaps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_ps | OP_W, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM2 | isa_GP, "cvtpi2ps", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_W | OPTYPE_ps | OP_W,   ADDRMETH_V | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movntps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_P | OPTYPE_q | OP_W, ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM2 | isa_GP, "cvttps2pi", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_P | OPTYPE_q | OP_W , ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM2 | isa_GP, "cvtps2pi", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ss | OP_W,   ADDRMETH_W | OPTYPE_ss | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "ucomiss", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ss | OP_W,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "comiss", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "wrmsr", "",   0,   0,   0,  0 , 52 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "rdtsc", "",   0,   0,   0,  0 , 40 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "rdmsr", "",   0,   0,   0,  0 , 38 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "rdpmc", "",   0,   0,   0,  0 , 39 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "sysenter", "",   0,   0,   0,  0 , 50 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "sysexit", "",   0,   0,   0,  0 , 51 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovo", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovno", "",   0,   0,   0,  INS_TEST_NOFLOW, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovc", "",   0,   0,   0,  INS_TEST_CARRY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovnc", "",   0,   0,   0,  INS_TEST_NCARRY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovz", "",   0,   0,   0,  INS_TEST_ZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovnz", "",   0,   0,   0,  INS_TEST_NZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovbe", "",   0,   0,   0,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmova", "",   0,   0,   0,  INS_TEST_NZERO|INS_TEST_NCARRY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovs", "",   0,   0,   0,  INS_TEST_SIGN, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovns", "",   0,   0,   0,  INS_TEST_NSIGN, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovp", "",   0,   0,   0,  INS_TEST_PARITY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovnp", "",   0,   0,   0,  INS_TEST_NPARITY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovl", "",   0,   0,   0,  INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovge", "",   0,   0,   0,  INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovle", "",   0,   0,   0,  INS_TEST_ZERO|INS_TEST_OR|INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_PENTPRO | isa_GP,   "cmovg", "",   0,   0,   0,  INS_TEST_NZERO|INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_d | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movmskps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "sqrtps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "rsqrtps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "rcpps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "andps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "andnps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "orps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "xorps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "addps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_V | OPTYPE_ps | OP_R,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "mulps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_pd, ADDRMETH_W | OPTYPE_q, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtps2pd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_ps | OP_W, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtdq2ps", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "subps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "minps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_DIV,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "divps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "maxps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpcklbw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpcklwd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpckldq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "packsswb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpgtb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpgtw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpgtd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "packuswb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpckhbw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpckhwd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "punpckhdq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "packssdw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_P | OPTYPE_d | OP_W,   ADDRMETH_E | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "movd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "movq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_P | OPTYPE_q | OP_W, ADDRMETH_Q | OPTYPE_q | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM2 | isa_GP, "pshufw", "", 0, 0, 0, 0, 0 },
+	 { idx_0F71,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F72,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F73,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpeqb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpeqw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pcmpeqd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "emms", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_d | OP_W,   ADDRMETH_P | OPTYPE_d | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "movd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_Q | OPTYPE_q | OP_W,   ADDRMETH_P | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "movq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jo", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jno", "",   0,   0,   0,  INS_TEST_NOFLOW, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jc", "",   0,   0,   0,  INS_TEST_CARRY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jnc", "",   0,   0,   0,  INS_TEST_NCARRY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jz", "",   0,   0,   0,  INS_TEST_ZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jnz", "",   0,   0,   0,  INS_TEST_NZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jbe", "",   0,   0,   0,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ja", "",   0,   0,   0,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "js", "",   0,   0,   0,  INS_TEST_SIGN, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jns", "",   0,   0,   0,  INS_TEST_NSIGN, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jpe", "",   0,   0,   0,  INS_TEST_PARITY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jpo", "",   0,   0,   0,  INS_TEST_NPARITY, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jl", "",   0,   0,   0,  INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jge", "",   0,   0,   0,  INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jle", "",   0,   0,   0,  INS_TEST_ZERO|INS_TEST_OR|INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_BRANCHCC,  0,   ADDRMETH_J | OPTYPE_v | OP_X | OP_SIGNED,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jg", "",   0,   0,   0,  INS_TEST_NZERO|INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "seto", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setno", "",   0,   0,   0,  INS_TEST_OFLOW, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setc", "",   0,   0,   0,  INS_TEST_CARRY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setnc", "",   0,   0,   0,  INS_TEST_NCARRY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setz", "",   0,   0,   0,  INS_TEST_ZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setnz", "",   0,   0,   0,  INS_TEST_NZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setbe", "",   0,   0,   0,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "seta", "",   0,   0,   0,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sets", "",   0,   0,   0,  INS_TEST_SIGN, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setns", "",   0,   0,   0,  INS_TEST_NSIGN, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setpe", "",   0,   0,   0,  INS_TEST_PARITY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setpo", "",   0,   0,   0,  INS_TEST_NPARITY, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setl", "",   0,   0,   0,  INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setge", "",   0,   0,   0,  INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setle", "",   0,   0,   0,  INS_TEST_ZERO|INS_TEST_OR|INS_TEST_SFNEOF, 0 },
+	 { 0,   INS_MOVCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "setg", "",   0,   0,   0,  INS_TEST_NZERO|INS_TEST_SFEQOF, 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   4,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RS | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   4,   0,   0,  0 , 33 },
+	 { 0,   INS_CPUID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "cpuid", "",   0,   0,   0,  0 , 10 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bt", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   cpu_80386 | isa_GP,   "shld", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 //{ 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_I | OP_R | OPTYPE_b | ADDRMETH_RR,   cpu_80386 | isa_GP,   "shld", "",   0,   0,   1,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_RR | OP_R | OPTYPE_b,   cpu_80386 | isa_GP,   "shld", "",   0,   0,   1,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_RS | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   5,   0,   0,  0 , 33 },
+	 { 0,   INS_POP,  0,   ADDRMETH_RS | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "pop", "",   5,   0,   0,  0 , 33 },
+	 { 0,   INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "rsm", "",   0,   0,   0,  INS_SET_ALL|INS_SET_DIR, 42 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bts", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   cpu_80386 | isa_GP,   "shrd", "",   0,   0,   0,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ADDRMETH_RR | OP_R | OPTYPE_b ,   cpu_80386 | isa_GP,   "shrd", "",   0,   0,   1,  INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { idx_0FAE,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_G | OPTYPE_v | OP_SIGNED | OP_R | OP_W,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "imul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY,  },
+	 { 0,   INS_XCHGCC,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_W,   ARG_NONE,   cpu_80486 | isa_GP,   "cmpxchg", "",   0,   0,   0,  INS_SET_ALL, 8 },
+	 { 0,   INS_XCHGCC,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_W,   ARG_NONE,   cpu_80486 | isa_GP,   "cmpxchg", "",   0,   0,   0,  INS_SET_ALL, 7 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W, ADDRMETH_M | OPTYPE_p | OP_W,   ARG_NONE,   cpu_80386 | isa_GP,   "lss", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "btr", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W, ADDRMETH_M | OPTYPE_p | OP_W,   ARG_NONE,   cpu_80386 | isa_GP,   "lfs", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W, ADDRMETH_M | OPTYPE_p | OP_W,   ARG_NONE,   cpu_80386 | isa_GP,   "lgs", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movzx", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movzx", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_UNKNOWN,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ud1", "",   0,   0,   0,  0 , 0 },
+	 { idx_0FBA,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_G | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "btc", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_G | OPTYPE_v | OP_R | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bsf", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_G | OPTYPE_v | OP_R | OP_W,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bsr", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movsx", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_G | OPTYPE_v | OP_W,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "movsx", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_G | OPTYPE_b | OP_W,   ARG_NONE,   cpu_80486 | isa_GP,   "xadd", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_G | OPTYPE_v | OP_W,   ARG_NONE,   cpu_80486 | isa_GP,   "xadd", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0, INS_CMP,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "cmpps", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_M | OPTYPE_d | OP_W, ADDRMETH_G | OPTYPE_d | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movnti", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_E | OPTYPE_d | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   cpu_PENTIUM2 | isa_GP,   "pinsrw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_G | OPTYPE_d | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   cpu_PENTIUM2 | isa_GP,   "pextrw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_ps | OP_W,   ADDRMETH_W | OPTYPE_ps | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   cpu_PENTIUM2 | isa_GP,   "shufps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_XCHGCC,  0, ADDRMETH_M | OPTYPE_q | OP_R | OP_W, ARG_NONE, ARG_NONE, cpu_PENTIUM | isa_GP, "cmpxchg8b", "", 0, 0, 0, 0, 9 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   2,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   3,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   4,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   5,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   6,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHG,  0,   ADDRMETH_RR | OPTYPE_d | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "bswap", "",   7,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrld", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_ADD,  0, ADDRMETH_P | OPTYPE_q | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddq", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pmullw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_G | OPTYPE_d | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pmovmskb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubusb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubusw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pminub", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pand", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddusb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddusw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pmaxub", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pandn", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pavgb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psraw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrad", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pavgw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pmulhuw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pmulhw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  INS_NOTE_NOSUFFIX,   ADDRMETH_W | OPTYPE_q | OP_W,   ADDRMETH_V | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movntq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubsb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubsw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pminsw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "por", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddsb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddsw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ARITH,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "pmaxsw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pxor", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pslld", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MUL,  0, ADDRMETH_P | OPTYPE_q | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmuludq", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pmaddwd", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "psadbw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  0,   ADDRMETH_P | OPTYPE_pi | OP_W,   ADDRMETH_Q | OPTYPE_pi | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "maskmovq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psubd", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SUB,  0, ADDRMETH_P | OPTYPE_q | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubq", "", 0, 0, 0, 0, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddb", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddw", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_Q | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "paddd", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_660F[] = {	/* SIMD 66 Two-byte Opcodes */
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movupd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_W | OPTYPE_pd | OP_R, ADDRMETH_V | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movupd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  INS_NOTE_NOSUFFIX, ADDRMETH_V | OPTYPE_q | OP_R, ADDRMETH_M | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movlpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  INS_NOTE_NOSUFFIX, ADDRMETH_M | OPTYPE_q | OP_R, ADDRMETH_V | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movlpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "unpcklpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "unpckhpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  INS_NOTE_NOSUFFIX, ADDRMETH_V | OPTYPE_q | OP_R, ADDRMETH_M | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movhpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  INS_NOTE_NOSUFFIX, ADDRMETH_M | OPTYPE_q | OP_R, ADDRMETH_V | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movhpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movapd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_W | OPTYPE_pd | OP_R, ADDRMETH_V | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movapd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtpi2pd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_M | OPTYPE_pd | OP_R, ADDRMETH_V | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movntpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_P | OPTYPE_q | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvttpd2pi", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_P | OPTYPE_q | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtpd2pi", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "ucomisd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "comisd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movmskpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_FSQRT,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "sqrtpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_AND,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "andpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_AND,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "andnpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_OR,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "orpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_XOR,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "xorpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ADD,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "addpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MUL,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "mulpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtpd2ps", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtps2dq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "subpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "minpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "divpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "maxpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpcklbw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpcklwd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpckldq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "packsswb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpgtb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpgtw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpgtd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "packuswb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpckhbw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpckhwd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpckhdq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "packssdw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpcklqdq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "punpckhqdq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_d | OP_R, ADDRMETH_E | OPTYPE_d | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movdqa", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "pshufd", "", 0, 0, 0, 0, 0 },
+	 { idx_660F71, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { idx_660F72, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { idx_660F73, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpeqb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpeqw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pcmpeqd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "haddpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "hsubpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_E | OPTYPE_d | OP_R, ADDRMETH_V | OPTYPE_d | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_W | OPTYPE_dq | OP_R, ADDRMETH_V | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movdqa", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "cmppd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_w | OP_R, ADDRMETH_E | OPTYPE_d | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "pinsrw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_w | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "pextrw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "shufpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "addsubpd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psrlw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psrld", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psrlq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmullw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_W | OPTYPE_q | OP_R, ADDRMETH_V | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmovmskb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubusb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubusw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pminub", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pand", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddusb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddusw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmaxub", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pandn", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pavgb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psraw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psrad", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pavgw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmulhuw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmulhw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvttpd2dq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_M | OPTYPE_dq | OP_R, ADDRMETH_V | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movntdq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubsb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubsw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pminsw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "por", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddsb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddsw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmaxsw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pxor", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psllw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pslld", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psllq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmuludq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "pmaddwd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psadbw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "maskmovdqu", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "psubq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddb", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "paddd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_F20F[] = {	/* SIMD F2 Two-byte Opcodes */
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_W | OPTYPE_sd | OP_R, ADDRMETH_V | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_q | OP_R, ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movddup", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_E | OPTYPE_d | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtsi2sd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvttsd2si", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtsd2si", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "sqrtsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "addsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "mulsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtsd2ss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "subsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "minsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "divsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "maxsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "pshuflw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "haddps", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "hsubps", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_sd | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "cmpsd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "addsubps", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_P | OPTYPE_q | OP_R, ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movdq2q", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_pd | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtpd2dq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_M | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "lddqu", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_F30F[] = {	/* SIMD F3 Two-byte Opcodes */
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_W | OPTYPE_ss | OP_R, ADDRMETH_V | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movsldup", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ps | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movshdup", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_E | OPTYPE_d | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtsi2ss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvttss2si", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_G | OPTYPE_d | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtss2si", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "sqrtss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "rsqrtss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "rcpss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "addss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "mulss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_sd | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtss2sd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_ps | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvttps2dq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "subss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "minss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "divss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "maxss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movdqu", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_W | OPTYPE_dq | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "pshufhw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_q | OP_R, ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_W | OPTYPE_dq | OP_R, ADDRMETH_V | OPTYPE_dq | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movdqu", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_ss | OP_R, ADDRMETH_W | OPTYPE_ss | OP_R, ADDRMETH_I | OPTYPE_b | OP_R, cpu_PENTIUM4 | isa_GP, "cmpss", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_dq | OP_R, ADDRMETH_Q | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "movq2dq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_UNKNOWN,  0, ADDRMETH_V | OPTYPE_pd | OP_R, ADDRMETH_W | OPTYPE_q | OP_R, ARG_NONE, cpu_PENTIUM4 | isa_GP, "cvtdq2pd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_0F00[] = {	/* Group 6 */
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sldt", "",   0,   0,   0,  0 , 46 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "str", "",   0,   0,   0,  0 , 49 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lldt", "",   0,   0,   0,  0 , 29 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "ltr", "",   0,   0,   0,  0 , 32 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "verr", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "verw", "",   0,   0,   0,  INS_SET_ZERO, 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F01[] = {	/* Group 7 */
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sgdt", "",   0,   0,   0,  0 , 44 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sidt", "",   0,   0,   0,  0 , 45 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lgdt", "",   0,   0,   0,  0 , 27 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lidt", "",   0,   0,   0,  0 , 28 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "smsw", "",   0,   0,   0,  0 , 47 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lmsw", "",   0,   0,   0,  0 , 30 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_none | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "invlpg", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sgdt", "",   0,   0,   0,  0 , 44 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sidt", "",   0,   0,   0,  0 , 45 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lgdt", "",   0,   0,   0,  0 , 27 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lidt", "",   0,   0,   0,  0 , 28 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "smsw", "",   0,   0,   0,  0 , 47 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lmsw", "",   0,   0,   0,  0 , 30 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_none | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "invlpg", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sgdt", "",   0,   0,   0,  0 , 44 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "sidt", "",   0,   0,   0,  0 , 45 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lgdt", "",   0,   0,   0,  0 , 27 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_s | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lidt", "",   0,   0,   0,  0 , 28 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "smsw", "",   0,   0,   0,  0 , 47 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lmsw", "",   0,   0,   0,  0 , 30 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_M | OPTYPE_none | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80486 | isa_GP,   "invlpg", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { idx_0F0111,  0,   0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "smsw", "",   0,   0,   0,  0 , 47 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_w | OP_W,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "lmsw", "",   0,   0,   0,  0 , 30 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F0111[] = {	/* Monitor/MWait opcode */
+	 { 0, INS_SYSTEM,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "monitor", "", 0, 0, 0, 0, 54 },
+	 { 0, INS_SYSTEM,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "mwait", "", 0, 0, 0, 0, 55 }
+};
+
+
+static ia32_insn_t tbl_0F12[] = {	/* Movlps Opcode */
+	 { 0,   INS_MOV,  INS_NOTE_NOSUFFIX,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movlps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  INS_NOTE_NOSUFFIX,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movlps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_MOV,  INS_NOTE_NOSUFFIX,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movlps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_ps | OP_R | OP_W, ADDRMETH_W | OPTYPE_ps | OP_R , ARG_NONE, cpu_PENTIUM4 | isa_GP, "movhlps", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_0F16[] = {	/* Movhps Opcode */
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movhps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movhps", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_V | OPTYPE_q | OP_W,   ADDRMETH_M | OPTYPE_q | OP_R,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "movhps", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_MOV,  0, ADDRMETH_V | OPTYPE_ps | OP_R | OP_W, ADDRMETH_W | OPTYPE_ps | OP_R , ARG_NONE, cpu_PENTIUM4 | isa_GP, "movlhps", "", 0, 0, 0, 0, 0 }
+};
+
+
+static ia32_insn_t tbl_0F18[] = {	/* Group 16 */
+	 { 0,   INS_SYSTEM,  0,    OP_W | OPTYPE_b | ADDRMETH_M,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetchnta", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht0", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht1", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht2", "",   2,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,    OP_W | OPTYPE_b | ADDRMETH_M,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetchnta", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht0", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht1", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht2", "",   2,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,    OP_W | OPTYPE_b | ADDRMETH_M,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetchnta", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht0", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht1", "",   1,   0,   0,  0 , 0 },
+	 { 0,   INS_SYSTEM,  0,   ADDRMETH_RT | OPTYPE_d | OP_W, ARG_NONE,   ARG_NONE,   cpu_PENTIUM2 | isa_GP,   "prefetcht2", "",   2,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F71[] = {	/* Group 12 */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psraw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_660F71[] = {	/* Group 12 SSE */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psraw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllw", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F72[] = {	/* Group 13 */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrld", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrad", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pslld", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_660F72[] = {	/* Group 13 SSE */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrld", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrad", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pslld", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F73[] = {	/* Group 14 */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_P | OPTYPE_q | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_660F73[] = {	/* Group 14 SSE */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrlq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psrldq", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "psllq", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_OTHER,  0,   ADDRMETH_W | OPTYPE_dq | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "pslldq", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0FAE[] = {	/* Group 15 */
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxsave", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxrstor", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "ldmxcsr", "",   0,   0,   0,  0 , 25 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "stmxcsr", "",   0,   0,   0 ,  0, 48 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0, ADDRMETH_M | OPTYPE_b | OP_R, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "clflush", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxsave", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxrstor", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "ldmxcsr", "",   0,   0,   0,  0 , 25 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "stmxcsr", "",   0,   0,   0 ,  0, 48 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0, ADDRMETH_M | OPTYPE_b | OP_R, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "clflush", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxsave", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_FPU,  0,   ADDRMETH_E | OPTYPE_fx | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_MMX,   "fxrstor", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_R,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "ldmxcsr", "",   0,   0,   0,  0 , 25 },
+	 { 0, INS_SYSTEM,  0,   ADDRMETH_E | OPTYPE_d | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM2,   "stmxcsr", "",   0,   0,   0 ,  0, 48 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0, ADDRMETH_M | OPTYPE_b | OP_R, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "clflush", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "lfence", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "mfence", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "sfence", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0FBA[] = {	/* Group 8 */
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bt", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "bts", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "btr", "",   0,   0,   0,  INS_SET_CARRY, 0 },
+	 { 0,   INS_BITTEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "btc", "",   0,   0,   0   ,  INS_SET_CARRY, 0 }
+};
+
+
+static ia32_insn_t tbl_0FC7[] = {	/* Group 9 */
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHGCC,  0,   ADDRMETH_M | OPTYPE_q | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "cmpxch8b", "",   0,   0,   0   ,  0 , 9 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHGCC,  0,   ADDRMETH_M | OPTYPE_q | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "cmpxch8b", "",   0,   0,   0   ,  0 , 9 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0, INS_INVALID,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_XCHGCC,  0,   ADDRMETH_M | OPTYPE_q | OP_W,   ARG_NONE,   ARG_NONE,   cpu_PENTIUM | isa_GP,   "cmpxch8b", "",   0,   0,   0   ,  0 , 9 }
+};
+
+
+static ia32_insn_t tbl_0FB9[] = {	/* Group 10 */
+	 { 0, INS_SYSTEM,  0,   ARG_NONE,   ARG_NONE,   ARG_NONE,   0,   "fxsave", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_C6[] = {	/* Group 11a */
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_b | OP_W,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_C7[] = {	/* Group 11b */
+	 { 0,   INS_MOV,  0,   ADDRMETH_E | OPTYPE_v | OP_W,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mov", "",   0,   0,   0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_80[] = {	/* Group 1a */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_81[] = {	/* Group 1b */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_82[] = {	/* Group 1c */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_83[] = {	/* Group 1d */
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "add", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_OR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "or", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_ADD,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "adc", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sbb", "",   0,   0,   0,  INS_SET_ALL|INS_TEST_CARRY, 0 },
+	 { 0,   INS_AND,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "and", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SUB,  0,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sub", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_XOR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "xor", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_CMP,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "cmp", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_C0[] = {	/* Group 2a */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_C1[] = {	/* Group 2b */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   0,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_I | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   0,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_D0[] = {	/* Group 2c */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_II | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   1,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_D1[] = {	/* Group 2d */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_II | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   1,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_D2[] = {	/* Group 2e */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   1,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_D3[] = {	/* Group 2f */
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rol", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "ror", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW, 0 },
+	 { 0,   INS_ROL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcl", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_ROR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "rcr", "",   0,   1,   0,  INS_SET_CARRY|INS_SET_OFLOW|INS_TEST_CARRY, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shl", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "shr", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHL,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sal", "",   0,   1,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_SHR,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ADDRMETH_RR | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "sar", "",   0,   1,   0   ,  INS_SET_ALL, 0 }
+};
+
+
+static ia32_insn_t tbl_F6[] = {	/* Group 3a */
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_b | OP_R,   ADDRMETH_I | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_NOT,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "not", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_NEG,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "neg", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_MUL,  0,   OPTYPE_b | ADDRMETH_RR | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 22 },
+	 { 0,   INS_MUL,  0,   OPTYPE_b | ADDRMETH_RR | OP_W | OP_SIGNED | OP_R,   ADDRMETH_E | OPTYPE_b | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "imul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 22 },
+	 { 0,   INS_DIV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "div", "",   0,   0,   0,  0 , 13 },
+	 { 0,   INS_DIV,  0,   ADDRMETH_RR | OPTYPE_b | OP_W | OP_R,   ADDRMETH_E | OPTYPE_b | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "idiv", "",   0,   0,   0   ,  0 , 13 }
+};
+
+
+static ia32_insn_t tbl_F7[] = {	/* Group 3b */
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_TEST,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ADDRMETH_I | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "test", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_NOT,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "not", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_NEG,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "neg", "",   0,   0,   0,  INS_SET_ALL, 0 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "mul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 23 },
+	 { 0,   INS_MUL,  0,   ADDRMETH_RR | OPTYPE_v | OP_SIGNED | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_SIGNED | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "imul", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_CARRY, 23 },
+	 { 0,   INS_DIV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "div", "",   0,   0,   0,  0 , 14 },
+	 { 0,   INS_DIV,  0,   ADDRMETH_RR | OPTYPE_v | OP_W | OP_R,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   cpu_80386 | isa_GP,   "idiv", "",   0,   0,   0,  0 , 14 }
+};
+
+
+static ia32_insn_t tbl_FE[] = {	/* Group 4 */
+	 { 0,   INS_INC,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_E | OPTYPE_b | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   0,   0,   0   ,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 }
+};
+
+
+static ia32_insn_t tbl_FF[] = {	/* Group 5 */
+	 { 0,   INS_INC,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "inc", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_DEC,  0,   ADDRMETH_E | OPTYPE_v | OP_W | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "dec", "",   0,   0,   0,  INS_SET_OFLOW|INS_SET_SIGN|INS_SET_ZERO|INS_SET_PARITY, 0 },
+	 { 0,   INS_CALL,  0,   ADDRMETH_E | OPTYPE_v | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "call", "",   0,   0,   0,  0 , 3 },
+	 { 0,   INS_CALL,  0,   ADDRMETH_M | OPTYPE_p | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "call", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BRANCH,  0,   ADDRMETH_E | OPTYPE_v | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jmp", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_BRANCH,  0,   ADDRMETH_M | OPTYPE_p | OP_X,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "jmp", "",   0,   0,   0,  0 , 0 },
+	 { 0,   INS_PUSH,  0,   ADDRMETH_E | OPTYPE_v | OP_R,   ARG_NONE,   ARG_NONE,   cpu_80386 | isa_GP,   "push", "",   0,   0,   0,  0 , 33 }
+};
+
+
+static ia32_insn_t tbl_D8[] = {	/* FPU D8 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_D8C0[] = {	/* FPU D8 C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  1,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  2,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  3,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  4,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  5,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  6,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  7,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  1,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  2,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  3,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  4,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  5,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  6,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  7,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  7,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_D9[] = {	/* FPU D9 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fs|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fv|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldenv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldcw", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fv|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnstenv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnstcw", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_D9C0[] = {	/* FPU D9 C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxch", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnop", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fchs", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fabs", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ftst", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxam", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld1", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldl2t", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldl2e", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldpi", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldlg2", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldln2", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fldz", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "f2xm1", "",  0,  0,  0 ,  0 , 16 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fyl2x", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fptan", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fpatan", "",  0,  0,  0 ,  0 , 18 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fxtract", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fprem1", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdecstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fincstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fprem", "",  0,  0,  0 ,  0 , 19 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fyl2xp1", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsqrt", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsincos", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "frndint", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fscale", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsin", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcos", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DA[] = {	/* FPU DA */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fiadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fimul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ficom", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ficomp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fisub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fisubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fidiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fidivr", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DAC0[] = {	/* FPU DA C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  0,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  1,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  2,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  3,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  4,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  5,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  6,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovb", "",  0,  7,  0 ,  INS_TEST_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  0,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  1,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  2,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  3,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  4,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  5,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  6,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmove", "",  0,  7,  0 ,  INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  0,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  1,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  2,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  3,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  4,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  5,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  6,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovbe", "",  0,  7,  0 ,  INS_TEST_CARRY|INS_TEST_OR|INS_TEST_ZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  0,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  1,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  2,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  3,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  4,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  5,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  6,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcmovu", "",  0,  7,  0 ,  INS_TEST_PARITY, 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucompp", "",  0,  0,  0 ,  0 , 21 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DB[] = {	/* FPU DB */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fild", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_FPU,  0, ADDRMETH_M|OPTYPE_d|OP_W, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "fisttp", "", 0, 0, 0, 0, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fist", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_d|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fistp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fe|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fe|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DBC0[] = {	/* FPU DB C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  0,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  1,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  2,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  3,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  4,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  5,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  6,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnb", "",  0,  7,  0 ,  INS_TEST_NCARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  0,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  1,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  2,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  3,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  4,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  5,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  6,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovne", "",  0,  7,  0 ,  INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  0,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  1,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  2,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  3,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  4,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  5,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  6,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnbe", "",  0,  7,  0 ,  INS_TEST_NCARRY|INS_TEST_NZERO, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  0,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  1,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  2,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  3,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  4,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  5,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  6,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcmovnu", "",  0,  7,  0 ,  INS_TEST_NPARITY, 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnclex", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fninit", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomi", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY,  0,  },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  1,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  2,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  3,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  4,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  5,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  6,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_PENTPRO | isa_GP,  "fcomi", "",  0,  7,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DC[] = {	/* FPU DC */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcom", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 17 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomp", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  0,  0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DCC0[] = {	/* FPU DC C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fadd", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmul", "",  7,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubr", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsub", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivr", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdiv", "",  7,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DD[] = {	/* FPU DD */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fld", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_FPU,  0, ADDRMETH_M|OPTYPE_q|OP_W, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "fisttp", "", 0, 0, 0, 0, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fd|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_ft|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "frstor", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_ft|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnsave", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnstsw", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DDC0[] = {	/* FPU DD C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ffree", "",  7,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fst", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fstp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucom", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DE[] = {	/* FPU DE */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fiadd", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fimul", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ficom", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "ficomp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fisub", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fisubr", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fidiv", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fidivr", "",  0,  0,  0,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DEC0[] = {	/* FPU DE C0 */
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  0,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  1,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  2,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  3,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  4,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  5,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  6,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "faddp", "",  7,  0,  0 ,  0 , 20 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fmulp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcompp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubrp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fsubp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivrp", "",  7,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  1,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  2,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  3,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  4,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  5,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  6,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fdivp", "",  7,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DF[] = {	/* FPU DF */
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fild", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_FPU,  0, ADDRMETH_M|OPTYPE_w|OP_W, ARG_NONE, ARG_NONE, cpu_PENTIUM4 | isa_GP, "fisttp", "", 0, 0, 0, 0, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fist", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_w|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fistp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fb|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fbld", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_q|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fild", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_fb|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fbstp", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_M|OPTYPE_q|OP_W,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fistp", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_DFC0[] = {	/* FPU DF C0 */
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RR | OPTYPE_w | OP_R,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "fnstsw", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  0,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  1,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  2,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  3,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  4,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  5,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  6,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fucomip", "",  0,  7,  0 ,  0 , 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  0,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  1,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  2,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  3,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  4,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  5,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  6,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0,  INS_FPU,  0,  ADDRMETH_RF | OPTYPE_fp | OP_W,  ADDRMETH_RF | OPTYPE_fp | OP_R,  ARG_NONE,  cpu_80387 | isa_FPU,  "fcomip", "",  0,  7,  0 ,  INS_SET_ZERO|INS_SET_PARITY|INS_SET_CARRY, 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 },
+	 { 0, INS_INVALID,  0,  ARG_NONE,  ARG_NONE,  ARG_NONE,  cpu_80387 | isa_FPU,  "", "",  0,  0,  0 ,  0 , 0 }
+};
+
+
+static ia32_insn_t tbl_0F0F[] = {	/* 3D Now! 0F Suffix */
+	/* 00 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_CONV,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pi2fd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 10 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_CONV,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pf2id", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 20 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 30 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 40 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 50 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 60 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 70 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	/* 80 */ { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_CMP,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfcmpge", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MIN,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfmin", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ARITH,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfrcp", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ARITH,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfrsqrt", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_SUB,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfsub", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ADD,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfadd", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_CMP,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfcmpgt", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MAX,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfmax", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ARITH,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfrcpit1", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ARITH,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfrsqit1", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_SUB,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfsubr", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ADD,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfacc", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_CMP,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfcmpeq", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MUL,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfmul", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_ARITH,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pfrcpit2", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_MUL,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pmulhrw", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_INVALID,  0, ARG_NONE, ARG_NONE, ARG_NONE, cpu_K6 | isa_3DNOW, "", "", 0, 0, 0, 0, 0 },
+	 { 0, INS_AVG,  0, ADDRMETH_P | OPTYPE_pi | OP_R | OP_W, ADDRMETH_Q | OPTYPE_q |OP_R, ARG_NONE, cpu_K6 | isa_3DNOW, "pavgusb", "", 0, 0, 0, 0, 0 }
+};
+
+
+
+/* ================== Table of Opcode Tables ================== */
+ia32_table_desc_t ia32_tables[] = {
+	/* table, prefix table, type, shift, mask, min, max */
+	{ tbl_Main, tbl_opcode, 0x00, 0xFF, 0x00, 0xFF },
+	{ tbl_66, tbl_prefix, 0x00, 0xFF, 0x0F, 0x0F },
+	{ tbl_F2, tbl_prefix, 0x00, 0xFF, 0x0F, 0x0F },
+	{ tbl_F3, tbl_prefix, 0x00, 0xFF, 0x0F, 0x90 },
+	{ tbl_0F, tbl_opcode, 0x00, 0xFF, 0x00, 0xFF },
+	/* 5 */
+	{ tbl_660F, tbl_prefix, 0x00, 0xFF, 0x10, 0xFF },
+	{ tbl_F20F, tbl_prefix, 0x00, 0xFF, 0x10, 0xFF },
+	{ tbl_F30F, tbl_prefix, 0x00, 0xFF, 0x10, 0xFF },
+	{ tbl_0F00, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_0F01, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	/* 10 */
+	{ tbl_0F0111, tbl_ext_ext, 0x00, 0x01, 0x00, 0x01 },
+	{ tbl_0F12, tbl_extension, 0x06, 0x03, 0x00, 0x03 },
+	{ tbl_0F16, tbl_extension, 0x06, 0x03, 0x00, 0x03 },
+	{ tbl_0F18, tbl_extension, 0x03, 0x1F, 0x00, 0x13 },
+	{ tbl_0F71, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	/* 15 */
+	{ tbl_660F71, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	{ tbl_0F72, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	{ tbl_660F72, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	{ tbl_0F73, tbl_extension, 0x00, 0x00, 0x00, 0x00 },
+	{ tbl_660F73, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	/* 20 */
+	{ tbl_0FAE, tbl_extension, 0x03, 0x1F, 0x00, 0x1F },
+	{ tbl_0FBA, tbl_extension, 0x03, 0x07, 0x04, 0x07 },
+	{ tbl_0FC7, tbl_extension, 0x03, 0x1F, 0x00, 0x11 },
+	{ tbl_0FB9, tbl_extension, 0x03, 0x07, 0x00, 0x00 },
+	{ tbl_C6, tbl_extension, 0x03, 0x07, 0x00, 0x00 },
+	/* 25 */
+	{ tbl_C7, tbl_extension, 0x03, 0x07, 0x00, 0x00 },
+	{ tbl_80, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_81, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_82, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_83, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	/* 30 */
+	{ tbl_C0, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_C1, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_D0, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_D1, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_D2, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	/* 35 */
+	{ tbl_D3, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_F6, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_F7, tbl_extension, 0x03, 0x07, 0x00, 0x07 },
+	{ tbl_FE, tbl_extension, 0x03, 0x07, 0x00, 0x01 },
+	{ tbl_FF, tbl_extension, 0x03, 0x07, 0x00, 0x06 },
+	/* 40 */
+	{ tbl_D8, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_D8C0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_D9, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_D9C0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_DA, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	/* 45 */
+	{ tbl_DAC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_DB, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_DBC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_DC, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_DCC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	/* 50 */
+	{ tbl_DD, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_DDC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_DE, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	{ tbl_DEC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_DF, tbl_fpu, 0x03, 0x07, 0x00, 0xBF },
+	/* 55 */
+	{ tbl_DFC0, tbl_fpu_ext, 0x00, 0xFF, 0xC0, 0xFF },
+	{ tbl_0F0F, tbl_suffix, 0x00, 0xFF, 0x00, 0xBF }
+};
+/* ia32_opcode_tables.h */
+/* Table index constants: 
+#define idx_Main 0
+#define idx_66 1
+#define idx_F2 2
+#define idx_F3 3
+#define idx_0F 4
+#define idx_660F 5
+#define idx_F20F 6
+#define idx_F30F 7
+#define idx_0F00 8
+#define idx_0F01 9
+#define idx_0F0111 10
+#define idx_0F12 11
+#define idx_0F16 12
+#define idx_0F18 13
+#define idx_0F71 14
+#define idx_660F71 15
+#define idx_0F72 16
+#define idx_660F72 17
+#define idx_0F73 18
+#define idx_660F73 19
+#define idx_0FAE 20
+#define idx_0FBA 21
+#define idx_0FC7 22
+#define idx_0FB9 23
+#define idx_C6 24
+#define idx_C7 25
+#define idx_80 26
+#define idx_81 27
+#define idx_82 28
+#define idx_83 29
+#define idx_C0 30
+#define idx_C1 31
+#define idx_D0 32
+#define idx_D1 33
+#define idx_D2 34
+#define idx_D3 35
+#define idx_F6 36
+#define idx_F7 37
+#define idx_FE 38
+#define idx_FF 39
+#define idx_D8 40
+#define idx_D8C0 41
+#define idx_D9 42
+#define idx_D9C0 43
+#define idx_DA 44
+#define idx_DAC0 45
+#define idx_DB 46
+#define idx_DBC0 47
+#define idx_DC 48
+#define idx_DCC0 49
+#define idx_DD 50
+#define idx_DDC0 51
+#define idx_DE 52
+#define idx_DEC0 53
+#define idx_DF 54
+#define idx_DFC0 55
+#define idx_0F0F 56
+*/ 
diff --git a/src/third_party/libdisasm/ia32_opcode_tables.h b/src/third_party/libdisasm/ia32_opcode_tables.h
new file mode 100644
index 0000000..bbd4fae
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_opcode_tables.h
@@ -0,0 +1,57 @@
+#define idx_Main 0
+#define idx_66 1
+#define idx_F2 2
+#define idx_F3 3
+#define idx_0F 4
+#define idx_660F 5
+#define idx_F20F 6
+#define idx_F30F 7
+#define idx_0F00 8
+#define idx_0F01 9
+#define idx_0F0111 10
+#define idx_0F12 11
+#define idx_0F16 12
+#define idx_0F18 13
+#define idx_0F71 14
+#define idx_660F71 15
+#define idx_0F72 16
+#define idx_660F72 17
+#define idx_0F73 18
+#define idx_660F73 19
+#define idx_0FAE 20
+#define idx_0FBA 21
+#define idx_0FC7 22
+#define idx_0FB9 23
+#define idx_C6 24
+#define idx_C7 25
+#define idx_80 26
+#define idx_81 27
+#define idx_82 28
+#define idx_83 29
+#define idx_C0 30
+#define idx_C1 31
+#define idx_D0 32
+#define idx_D1 33
+#define idx_D2 34
+#define idx_D3 35
+#define idx_F6 36
+#define idx_F7 37
+#define idx_FE 38
+#define idx_FF 39
+#define idx_D8 40
+#define idx_D8C0 41
+#define idx_D9 42
+#define idx_D9C0 43
+#define idx_DA 44
+#define idx_DAC0 45
+#define idx_DB 46
+#define idx_DBC0 47
+#define idx_DC 48
+#define idx_DCC0 49
+#define idx_DD 50
+#define idx_DDC0 51
+#define idx_DE 52
+#define idx_DEC0 53
+#define idx_DF 54
+#define idx_DFC0 55
+#define idx_0F0F 56
diff --git a/src/third_party/libdisasm/ia32_operand.c b/src/third_party/libdisasm/ia32_operand.c
new file mode 100644
index 0000000..8e7f16a
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_operand.c
@@ -0,0 +1,425 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "libdis.h"
+#include "ia32_insn.h"
+#include "ia32_operand.h"
+#include "ia32_modrm.h"
+#include "ia32_reg.h"
+#include "x86_imm.h"
+#include "x86_operand_list.h"
+
+
+
+/* apply segment override to memory operand in insn */
+static void apply_seg( x86_op_t *op, unsigned int prefixes ) {
+	if (! prefixes ) return;
+
+	/* apply overrides from prefix */
+	switch ( prefixes & PREFIX_REG_MASK ) {
+		case PREFIX_CS:
+			op->flags |= op_cs_seg; break;
+		case PREFIX_SS:
+			op->flags |= op_ss_seg; break;
+		case PREFIX_DS:
+			op->flags |= op_ds_seg; break;
+		case PREFIX_ES:
+			op->flags |= op_es_seg; break;
+		case PREFIX_FS:
+			op->flags |= op_fs_seg; break;
+		case PREFIX_GS:
+			op->flags |= op_gs_seg; break;
+	}
+
+	return;
+}
+
+static size_t decode_operand_value( unsigned char *buf, size_t buf_len,
+			    x86_op_t *op, x86_insn_t *insn, 
+			    unsigned int addr_meth, size_t op_size, 
+			    unsigned int op_value, unsigned char modrm, 
+			    size_t gen_regs ) {
+	size_t size = 0;
+
+	/* ++ Do Operand Addressing Method / Decode operand ++ */
+	switch (addr_meth) {
+		/* This sets the operand Size based on the Intel Opcode Map
+		 * (Vol 2, Appendix A). Letter encodings are from section
+		 * A.1.1, 'Codes for Addressing Method' */
+
+		/* ---------------------- Addressing Method -------------- */
+		/* Note that decoding mod ModR/M operand adjusts the size of
+		 * the instruction, but decoding the reg operand does not. 
+		 * This should not cause any problems, as every 'reg' operand 
+		 * has an associated 'mod' operand. 
+		 * Goddamn-Intel-Note:
+		 *   Some Intel addressing methods [M, R] specify that modR/M
+		 *   byte may only refer to a memory address/may only refer to
+		 *   a register -- however Intel provides no clues on what to do
+		 *   if, say, the modR/M for an M opcode decodes to a register
+		 *   rather than a memory address ... returning 0 is out of the
+		 *   question, as this would be an Immediate or a RelOffset, so
+		 *   instead these modR/Ms are decoded with total disregard to 
+		 *   the M, R constraints. */
+
+		/* MODRM -- mod operand. sets size to at least 1! */
+		case ADDRMETH_E:	/* ModR/M present, Gen reg or memory  */
+			size = ia32_modrm_decode( buf, buf_len, op, insn, 
+						  gen_regs );
+			break;
+		case ADDRMETH_M:	/* ModR/M only refers to memory */
+			size = ia32_modrm_decode( buf, buf_len, op, insn, 
+						  gen_regs );
+			break;
+		case ADDRMETH_Q:	/* ModR/M present, MMX or Memory */
+			size = ia32_modrm_decode( buf, buf_len, op, insn, 
+						  REG_MMX_OFFSET );
+			break;
+		case ADDRMETH_R:	/* ModR/M mod == gen reg */
+			size = ia32_modrm_decode( buf, buf_len, op, insn, 
+						  gen_regs );
+			break;
+		case ADDRMETH_W:	/* ModR/M present, mem or SIMD reg */
+			size = ia32_modrm_decode( buf, buf_len, op, insn, 
+						  REG_SIMD_OFFSET );
+			break;
+
+		/* MODRM -- reg operand. does not effect size! */
+		case ADDRMETH_C:	/* ModR/M reg == control reg */
+			ia32_reg_decode( modrm, op, REG_CTRL_OFFSET );
+			break;
+		case ADDRMETH_D:	/* ModR/M reg == debug reg */
+			ia32_reg_decode( modrm, op, REG_DEBUG_OFFSET );
+			break;
+		case ADDRMETH_G:	/* ModR/M reg == gen-purpose reg */
+			ia32_reg_decode( modrm, op, gen_regs );
+			break;
+		case ADDRMETH_P:	/* ModR/M reg == qword MMX reg */
+			ia32_reg_decode( modrm, op, REG_MMX_OFFSET );
+			break;
+		case ADDRMETH_S:	/* ModR/M reg == segment reg */
+			ia32_reg_decode( modrm, op, REG_SEG_OFFSET );
+			break;
+		case ADDRMETH_T:	/* ModR/M reg == test reg */
+			ia32_reg_decode( modrm, op, REG_TEST_OFFSET );
+			break;
+		case ADDRMETH_V:	/* ModR/M reg == SIMD reg */
+			ia32_reg_decode( modrm, op, REG_SIMD_OFFSET );
+			break;
+
+		/* No MODRM : note these set operand type explicitly */
+		case ADDRMETH_A:	/* No modR/M -- direct addr */
+			op->type = op_absolute;
+
+			/* segment:offset address used in far calls */
+			x86_imm_sized( buf, buf_len, 
+				       &op->data.absolute.segment, 2 );
+			if ( insn->addr_size == 4 ) {
+				x86_imm_sized( buf, buf_len, 
+				    &op->data.absolute.offset.off32, 4 );
+				size = 6;
+			} else {
+				x86_imm_sized( buf, buf_len, 
+				    &op->data.absolute.offset.off16, 2 );
+				size = 4;
+			}
+
+			break;
+		case ADDRMETH_I:	/* Immediate val */
+			op->type = op_immediate;
+			/* if it ever becomes legal to have imm as dest and
+			 * there is a src ModR/M operand, we are screwed! */
+			if ( op->flags & op_signed ) {
+				x86_imm_signsized(buf, buf_len, &op->data.byte, 
+						op_size);
+			} else {
+				x86_imm_sized(buf, buf_len, &op->data.byte, 
+						op_size);
+			}
+			size = op_size;
+			break;
+		case ADDRMETH_J:	/* Rel offset to add to IP [jmp] */
+			/* this fills op->data.near_offset or
+			   op->data.far_offset depending on the size of
+			   the operand */
+			op->flags |= op_signed;
+			if ( op_size == 1 ) {
+				/* one-byte near offset */
+				op->type = op_relative_near;
+				x86_imm_signsized(buf, buf_len, 
+						&op->data.relative_near, 1);
+			} else {
+				/* far offset...is this truly signed? */
+				op->type = op_relative_far;
+				x86_imm_signsized(buf, buf_len, 
+					&op->data.relative_far, op_size );
+			}
+			size = op_size;
+			break;
+		case ADDRMETH_O:	/* No ModR/M; op is word/dword offset */
+			/* NOTE: these are actually RVAs not offsets to seg!! */
+			/* note bene: 'O' ADDR_METH uses addr_size  to
+			   determine operand size */
+			op->type = op_offset;
+			op->flags |= op_pointer;
+			x86_imm_sized( buf, buf_len, &op->data.offset, 
+					insn->addr_size );
+
+			size = insn->addr_size;
+			break;
+
+		/* Hard-coded: these are specified in the insn definition */
+		case ADDRMETH_F:	/* EFLAGS register */
+			op->type = op_register;
+			op->flags |= op_hardcode;
+			ia32_handle_register( &op->data.reg, REG_FLAGS_INDEX );
+			break;
+		case ADDRMETH_X:	/* Memory addressed by DS:SI [string] */
+			op->type = op_expression;
+			op->flags |= op_hardcode;
+			op->flags |= op_ds_seg | op_pointer | op_string;
+			ia32_handle_register( &op->data.expression.base, 
+					     REG_DWORD_OFFSET + 6 );
+			break;
+		case ADDRMETH_Y:	/* Memory addressed by ES:DI [string] */
+			op->type = op_expression;
+			op->flags |= op_hardcode;
+			op->flags |= op_es_seg | op_pointer | op_string;
+			ia32_handle_register( &op->data.expression.base, 
+					     REG_DWORD_OFFSET + 7 );
+			break;
+		case ADDRMETH_RR:	/* Gen Register hard-coded in opcode */
+			op->type = op_register;
+			op->flags |= op_hardcode;
+			ia32_handle_register( &op->data.reg, 
+						op_value + gen_regs );
+			break;
+		case ADDRMETH_RS:	/* Seg Register hard-coded in opcode */
+			op->type = op_register;
+			op->flags |= op_hardcode;
+			ia32_handle_register( &op->data.reg, 
+						op_value + REG_SEG_OFFSET );
+			break;
+		case ADDRMETH_RF:	/* FPU Register hard-coded in opcode */
+			op->type = op_register;
+			op->flags |= op_hardcode;
+			ia32_handle_register( &op->data.reg, 
+						op_value + REG_FPU_OFFSET );
+			break;
+		case ADDRMETH_RT:	/* TST Register hard-coded in opcode */
+			op->type = op_register;
+			op->flags |= op_hardcode;
+			ia32_handle_register( &op->data.reg, 
+						op_value + REG_TEST_OFFSET );
+			break;
+		case ADDRMETH_II:	/* Immediate hard-coded in opcode */
+			op->type = op_immediate;
+			op->data.dword = op_value;
+			op->flags |= op_hardcode;
+			break;
+
+		case 0:	/* Operand is not used */
+		default:
+			/* ignore -- operand not used in this insn */
+			op->type = op_unused;	/* this shouldn't happen! */
+			break;
+	}
+
+	return size;
+}
+
+static size_t decode_operand_size( unsigned int op_type, x86_insn_t *insn, 
+				   x86_op_t *op ){
+	size_t size;
+
+	/* ++ Do Operand Type ++ */
+	switch (op_type) {
+		/* This sets the operand Size based on the Intel Opcode Map
+		 * (Vol 2, Appendix A). Letter encodings are from section
+		 * A.1.2, 'Codes for Operand Type' */
+		/* NOTE: in this routines, 'size' refers to the size
+		 *       of the operand in the raw (encoded) instruction;
+		 *       'datatype' stores the actual size and datatype
+		 *       of the operand */
+
+		/* ------------------------ Operand Type ----------------- */
+		case OPTYPE_c:	/* byte or word [op size attr] */
+			size = (insn->op_size == 4) ? 2 : 1;
+			op->datatype = (size == 4) ? op_word : op_byte;
+			break;
+		case OPTYPE_a:	/* 2 word or 2 dword [op size attr] */
+			/* pointer to a 16:16 or 32:32 BOUNDS operand */
+			size = (insn->op_size == 4) ? 8 : 4;
+			op->datatype = (size == 4) ? op_bounds32 : op_bounds16;
+			break;
+		case OPTYPE_v:	/* word or dword [op size attr] */
+			size = (insn->op_size == 4) ? 4 : 2;
+			op->datatype = (size == 4) ? op_dword : op_word;
+			break;
+		case OPTYPE_p:	/* 32/48-bit ptr [op size attr] */
+			/* technically these flags are not accurate: the
+			 * value s a 16:16 pointer or a 16:32 pointer, where
+			 * the first '16' is a segment */
+			size = (insn->addr_size == 4) ? 6 : 4;
+			op->datatype = (size == 4) ? op_descr32 : op_descr16;
+			break;
+		case OPTYPE_b:	/* byte, ignore op-size */
+			size = 1;
+			op->datatype = op_byte;
+			break;
+		case OPTYPE_w:	/* word, ignore op-size */
+			size = 2;
+			op->datatype = op_word;
+			break;
+		case OPTYPE_d:	/* dword , ignore op-size */
+			size = 4;
+			op->datatype = op_dword;
+			break;
+		case OPTYPE_s:	/* 6-byte psuedo-descriptor */
+			/* ptr to 6-byte value which is 32:16 in 32-bit
+			 * mode, or 8:24:16 in 16-bit mode. The high byte
+			 * is ignored in 16-bit mode. */
+			size = 6;
+			op->datatype = (insn->addr_size == 4) ? 
+				op_pdescr32 : op_pdescr16;
+			break;
+		case OPTYPE_q:	/* qword, ignore op-size */
+			size = 8;
+			op->datatype = op_qword;
+			break;
+		case OPTYPE_dq:	/* d-qword, ignore op-size */
+			size = 16;
+			op->datatype = op_dqword;
+			break;
+		case OPTYPE_ps:	/* 128-bit FP data */
+			size = 16;
+			/* really this is 4 packed SP FP values */
+			op->datatype = op_ssimd;
+			break;
+		case OPTYPE_pd:	/* 128-bit FP data */
+			size = 16;
+			/* really this is 2 packed DP FP values */
+			op->datatype = op_dsimd;
+			break;
+		case OPTYPE_ss:	/* Scalar elem of 128-bit FP data */
+			size = 16;
+			/* this only looks at the low dword (4 bytes)
+			 * of the xmmm register passed as a param. 
+			 * This is a 16-byte register where only 4 bytes
+			 * are used in the insn. Painful, ain't it? */
+			op->datatype = op_sssimd;
+			break;
+		case OPTYPE_sd:	/* Scalar elem of 128-bit FP data */
+			size = 16;
+			/* this only looks at the low qword (8 bytes)
+			 * of the xmmm register passed as a param. 
+			 * This is a 16-byte register where only 8 bytes
+			 * are used in the insn. Painful, again... */
+			op->datatype = op_sdsimd;
+			break;
+		case OPTYPE_pi:	/* qword mmx register */
+			size = 8;
+			op->datatype = op_qword;
+			break;
+		case OPTYPE_si:	/* dword integer register */
+			size = 4;
+			op->datatype = op_dword;
+			break;
+		case OPTYPE_fs:	/* single-real */
+			size = 4;
+			op->datatype = op_sreal;
+			break;
+		case OPTYPE_fd:	/* double real */
+			size = 8;
+			op->datatype = op_dreal;
+			break;
+		case OPTYPE_fe:	/* extended real */
+			size = 10;
+			op->datatype = op_extreal;
+			break;
+		case OPTYPE_fb:	/* packed BCD */
+			size = 10;
+			op->datatype = op_bcd;
+			break;
+		case OPTYPE_fv:	/* pointer to FPU env: 14 or 28-bytes */
+			size = (insn->addr_size == 4)? 28 : 14;
+			op->datatype = (size == 28)?  op_fpuenv32: op_fpuenv16;
+			break;
+		case OPTYPE_ft:	/* pointer to FPU env: 94 or 108 bytes */
+			size = (insn->addr_size == 4)? 108 : 94;
+			op->datatype = (size == 108)? 
+				op_fpustate32: op_fpustate16;
+			break;
+		case OPTYPE_fx:	/* 512-byte register stack */
+			size = 512;
+			op->datatype = op_fpregset;
+			break;
+		case OPTYPE_fp:	/* floating point register */
+			size = 10;	/* double extended precision */
+			op->datatype = op_fpreg;
+			break;
+		case OPTYPE_m:	/* fake operand type used for "lea Gv, M" */
+			size = insn->addr_size;
+			op->datatype = (size == 4) ?  op_dword : op_word;
+			break;
+		case OPTYPE_none: /* handle weird instructions that have no encoding but use a dword datatype, like invlpg */
+			size = 0;
+			op->datatype = op_none;
+			break;
+		case 0:
+		default:
+			size = insn->op_size;
+			op->datatype = (size == 4) ? op_dword : op_word;
+			break;
+		}
+	return size;
+}
+
+size_t ia32_decode_operand( unsigned char *buf, size_t buf_len,
+			      x86_insn_t *insn, unsigned int raw_op, 
+			      unsigned int raw_flags, unsigned int prefixes, 
+			      unsigned char modrm ) {
+	unsigned int addr_meth, op_type, op_size, gen_regs;
+	x86_op_t *op;
+	size_t size;
+
+	/* ++ Yank optype and addr mode out of operand flags */
+	addr_meth = raw_flags & ADDRMETH_MASK;
+	op_type = raw_flags & OPTYPE_MASK;
+
+	if ( raw_flags == ARG_NONE ) {
+		/* operand is not used in this instruction */
+		return 0;
+	}
+
+	/* allocate a new operand */
+	op = x86_operand_new( insn );
+
+	/* ++ Copy flags from opcode table to x86_insn_t */
+	op->access = (enum x86_op_access) OP_PERM(raw_flags);
+	op->flags = (enum x86_op_flags) (OP_FLAGS(raw_flags) >> 12);
+
+	/* Get size (for decoding)  and datatype of operand */
+	op_size = decode_operand_size(op_type, insn, op);
+
+	/* override default register set based on Operand Type */
+	/* this allows mixing of 8, 16, and 32 bit regs in insn */
+	if (op_size == 1) {
+		gen_regs = REG_BYTE_OFFSET;
+	} else if (op_size == 2) {
+		gen_regs = REG_WORD_OFFSET;
+	} else {
+		gen_regs = REG_DWORD_OFFSET;
+	}
+
+	size = decode_operand_value( buf, buf_len, op, insn, addr_meth, 
+				      op_size, raw_op, modrm, gen_regs );
+
+	/* if operand is an address, apply any segment override prefixes */
+	if ( op->type == op_expression || op->type == op_offset ) {
+		apply_seg(op, prefixes);
+	}
+
+	return size;		/* return number of bytes in instruction */
+}
diff --git a/src/third_party/libdisasm/ia32_operand.h b/src/third_party/libdisasm/ia32_operand.h
new file mode 100644
index 0000000..08c3074
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_operand.h
@@ -0,0 +1,11 @@
+#ifndef IA32_OPERAND_H
+#define IA32_OPERAND_H
+
+#include "libdis.h"
+#include "ia32_insn.h"
+
+size_t ia32_decode_operand( unsigned char *buf, size_t buf_len,
+			      x86_insn_t *insn, unsigned int raw_op, 
+			      unsigned int raw_flags, unsigned int prefixes,
+			      unsigned char modrm );
+#endif
diff --git a/src/third_party/libdisasm/ia32_reg.c b/src/third_party/libdisasm/ia32_reg.c
new file mode 100644
index 0000000..f270c1f
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_reg.c
@@ -0,0 +1,234 @@
+#include <stdlib.h>
+#include <string.h>
+
+#include "ia32_reg.h"
+#include "ia32_insn.h"
+
+#define NUM_X86_REGS	92
+
+/* register sizes */
+#define REG_DWORD_SIZE 4
+#define REG_WORD_SIZE 2
+#define REG_BYTE_SIZE 1
+#define REG_MMX_SIZE 8
+#define REG_SIMD_SIZE 16
+#define REG_DEBUG_SIZE 4
+#define REG_CTRL_SIZE 4
+#define REG_TEST_SIZE 4
+#define REG_SEG_SIZE 2
+#define REG_FPU_SIZE 10
+#define REG_FLAGS_SIZE 4
+#define REG_FPCTRL_SIZE 2
+#define REG_FPSTATUS_SIZE 2
+#define REG_FPTAG_SIZE 2
+#define REG_EIP_SIZE 4
+#define REG_IP_SIZE 2
+
+/* REGISTER ALIAS TABLE:
+ *
+ * NOTE: the MMX register mapping is fixed to the physical registers
+ * used by the FPU. The floating FP stack does not effect the location
+ * of the MMX registers, so this aliasing is not 100% accurate.
+ * */
+static struct {
+	unsigned char alias;	/* id of register this is an alias for */
+	unsigned char shift;	/* # of bits register must be shifted */
+} ia32_reg_aliases[] = {
+	{ 0,0 },
+	{ REG_DWORD_OFFSET,	0 }, 	/* al :  1 */
+	{ REG_DWORD_OFFSET,	8 }, 	/* ah :  2 */
+	{ REG_DWORD_OFFSET,	0 }, 	/* ax :  3 */
+	{ REG_DWORD_OFFSET + 1,	0 }, 	/* cl :  4 */
+	{ REG_DWORD_OFFSET + 1,	8 }, 	/* ch :  5 */
+	{ REG_DWORD_OFFSET + 1,	0 }, 	/* cx :  6 */
+	{ REG_DWORD_OFFSET + 2,	0 }, 	/* dl :  7 */
+	{ REG_DWORD_OFFSET + 2,	8 }, 	/* dh :  8 */
+	{ REG_DWORD_OFFSET + 2,	0 }, 	/* dx :  9 */
+	{ REG_DWORD_OFFSET + 3,	0 }, 	/* bl : 10 */
+	{ REG_DWORD_OFFSET + 3,	8 }, 	/* bh : 11 */
+	{ REG_DWORD_OFFSET + 3,	0 }, 	/* bx : 12 */
+	{ REG_DWORD_OFFSET + 4,	0 }, 	/* sp : 13 */
+	{ REG_DWORD_OFFSET + 5,	0 }, 	/* bp : 14 */
+	{ REG_DWORD_OFFSET + 6,	0 }, 	/* si : 15 */
+	{ REG_DWORD_OFFSET + 7,	0 }, 	/* di : 16 */
+	{ REG_EIP_INDEX,	0 }, 	/* ip : 17 */
+	{ REG_FPU_OFFSET,	0 }, 	/* mm0 : 18 */
+	{ REG_FPU_OFFSET + 1,	0 }, 	/* mm1 : 19 */
+	{ REG_FPU_OFFSET + 2,	0 }, 	/* mm2 : 20 */
+	{ REG_FPU_OFFSET + 3,	0 }, 	/* mm3 : 21 */
+	{ REG_FPU_OFFSET + 4,	0 }, 	/* mm4 : 22 */
+	{ REG_FPU_OFFSET + 5,	0 }, 	/* mm5 : 23 */
+	{ REG_FPU_OFFSET + 6,	0 }, 	/* mm6 : 24 */
+	{ REG_FPU_OFFSET + 7,	0 } 	/* mm7 : 25 */
+ };
+
+/* REGISTER TABLE: size, type, and name of every register in the 
+ *                 CPU. Does not include MSRs since the are, after all,
+ *                 model specific. */
+static struct {
+	unsigned int size;
+	enum x86_reg_type type;
+	unsigned int alias;
+	char mnemonic[8];
+} ia32_reg_table[NUM_X86_REGS + 2] = {
+	{ 0, 0, 0, "" },
+	/* REG_DWORD_OFFSET */
+	{ REG_DWORD_SIZE, reg_gen | reg_ret, 0, "eax" },
+	{ REG_DWORD_SIZE, reg_gen | reg_count, 0, "ecx" },
+	{ REG_DWORD_SIZE, reg_gen, 0, "edx" },
+	{ REG_DWORD_SIZE, reg_gen, 0, "ebx" },
+	/* REG_ESP_INDEX */
+	{ REG_DWORD_SIZE, reg_gen | reg_sp, 0, "esp" },
+	{ REG_DWORD_SIZE, reg_gen | reg_fp, 0, "ebp" },
+	{ REG_DWORD_SIZE, reg_gen | reg_src, 0, "esi" },
+	{ REG_DWORD_SIZE, reg_gen | reg_dest, 0, "edi" },
+	/* REG_WORD_OFFSET */
+	{ REG_WORD_SIZE, reg_gen | reg_ret, 3, "ax" },
+	{ REG_WORD_SIZE, reg_gen | reg_count, 6, "cx" },
+	{ REG_WORD_SIZE, reg_gen, 9, "dx" },
+	{ REG_WORD_SIZE, reg_gen, 12, "bx" },
+	{ REG_WORD_SIZE, reg_gen | reg_sp, 13, "sp" },
+	{ REG_WORD_SIZE, reg_gen | reg_fp, 14, "bp" },
+	{ REG_WORD_SIZE, reg_gen | reg_src, 15, "si" },
+	{ REG_WORD_SIZE, reg_gen | reg_dest, 16, "di" },
+	/* REG_BYTE_OFFSET */
+	{ REG_BYTE_SIZE, reg_gen, 1, "al" },
+	{ REG_BYTE_SIZE, reg_gen, 4, "cl" },
+	{ REG_BYTE_SIZE, reg_gen, 7, "dl" },
+	{ REG_BYTE_SIZE, reg_gen, 10, "bl" },
+	{ REG_BYTE_SIZE, reg_gen, 2, "ah" },
+	{ REG_BYTE_SIZE, reg_gen, 5, "ch" },
+	{ REG_BYTE_SIZE, reg_gen, 8, "dh" },
+	{ REG_BYTE_SIZE, reg_gen, 11, "bh" },
+	/* REG_MMX_OFFSET */
+	{ REG_MMX_SIZE, reg_simd, 18, "mm0" },
+	{ REG_MMX_SIZE, reg_simd, 19, "mm1" },
+	{ REG_MMX_SIZE, reg_simd, 20, "mm2" },
+	{ REG_MMX_SIZE, reg_simd, 21, "mm3" },
+	{ REG_MMX_SIZE, reg_simd, 22, "mm4" },
+	{ REG_MMX_SIZE, reg_simd, 23, "mm5" },
+	{ REG_MMX_SIZE, reg_simd, 24, "mm6" },
+	{ REG_MMX_SIZE, reg_simd, 25, "mm7" },
+	/* REG_SIMD_OFFSET */
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm0" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm1" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm2" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm3" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm4" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm5" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm6" },
+	{ REG_SIMD_SIZE, reg_simd, 0, "xmm7" },
+	/* REG_DEBUG_OFFSET */
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr0" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr1" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr2" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr3" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr4" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr5" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr6" },
+	{ REG_DEBUG_SIZE, reg_sys, 0, "dr7" },
+	/* REG_CTRL_OFFSET */
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr0" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr1" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr2" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr3" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr4" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr5" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr6" },
+	{ REG_CTRL_SIZE, reg_sys, 0, "cr7" },
+	/* REG_TEST_OFFSET */
+	{ REG_TEST_SIZE, reg_sys, 0, "tr0" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr1" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr2" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr3" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr4" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr5" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr6" },
+	{ REG_TEST_SIZE, reg_sys, 0, "tr7" },
+	/* REG_SEG_OFFSET */
+	{ REG_SEG_SIZE, reg_seg, 0, "es" },
+	{ REG_SEG_SIZE, reg_seg, 0, "cs" },
+	{ REG_SEG_SIZE, reg_seg, 0, "ss" },
+	{ REG_SEG_SIZE, reg_seg, 0, "ds" },
+	{ REG_SEG_SIZE, reg_seg, 0, "fs" },
+	{ REG_SEG_SIZE, reg_seg, 0, "gs" },
+	/* REG_LDTR_INDEX */
+	{ REG_DWORD_SIZE, reg_sys, 0, "ldtr" },
+	/* REG_GDTR_INDEX */
+	{ REG_DWORD_SIZE, reg_sys, 0, "gdtr" },
+	/* REG_FPU_OFFSET */
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(0)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(1)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(2)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(3)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(4)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(5)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(6)" },
+	{ REG_FPU_SIZE, reg_fpu, 0, "st(7)" },
+	/* REG_FLAGS_INDEX : 81 */
+	{ REG_FLAGS_SIZE, reg_cond, 0, "eflags" }, 
+	/* REG_FPCTRL_INDEX  : 82*/
+	{ REG_FPCTRL_SIZE, reg_fpu | reg_sys, 0, "fpctrl" }, 
+	/* REG_FPSTATUS_INDEX : 83*/
+	{ REG_FPSTATUS_SIZE, reg_fpu | reg_sys, 0, "fpstat" },
+	/* REG_FPTAG_INDEX : 84 */
+	{ REG_FPTAG_SIZE, reg_fpu | reg_sys, 0, "fptag" }, 
+	/* REG_EIP_INDEX : 85 */
+	{ REG_EIP_SIZE, reg_pc, 0, "eip" },
+	/* REG_IP_INDEX : 86 */
+	{ REG_IP_SIZE, reg_pc, 17, "ip" },
+	/* REG_IDTR_INDEX : 87 */
+	{ REG_DWORD_SIZE, reg_sys, 0, "idtr" },
+	/* REG_MXCSG_INDEX : SSE Control Reg : 88 */
+	{ REG_DWORD_SIZE, reg_sys | reg_simd, 0, "mxcsr" },
+	/* REG_TR_INDEX : Task Register : 89 */
+	{ 16 + 64, reg_sys, 0, "tr" },
+	/* REG_CSMSR_INDEX : SYSENTER_CS_MSR : 90 */
+	{ REG_DWORD_SIZE, reg_sys, 0, "cs_msr" },
+	/* REG_ESPMSR_INDEX : SYSENTER_ESP_MSR : 91 */
+	{ REG_DWORD_SIZE, reg_sys, 0, "esp_msr" },
+	/* REG_EIPMSR_INDEX : SYSENTER_EIP_MSR : 92 */
+	{ REG_DWORD_SIZE, reg_sys, 0, "eip_msr" },
+	{ 0 }
+ };
+
+
+static size_t sz_regtable = NUM_X86_REGS + 1;
+
+
+void ia32_handle_register( x86_reg_t *reg, size_t id ) {
+	unsigned int alias;
+	if (! id || id > sz_regtable ) {
+		return;
+	}
+
+	memset( reg, 0, sizeof(x86_reg_t) );
+
+        strncpy( reg->name, ia32_reg_table[id].mnemonic, MAX_REGNAME );
+
+        reg->type = ia32_reg_table[id].type;
+        reg->size = ia32_reg_table[id].size;
+
+	alias = ia32_reg_table[id].alias;
+	if ( alias ) {
+		reg->alias = ia32_reg_aliases[alias].alias;
+		reg->shift = ia32_reg_aliases[alias].shift;
+	}
+        reg->id = id;
+
+	return;
+}
+
+size_t ia32_true_register_id( size_t id ) {
+	size_t reg;
+
+	if (! id || id > sz_regtable ) {
+		return 0;
+	}
+
+	reg = id;
+	if (ia32_reg_table[reg].alias) {
+		reg = ia32_reg_aliases[ia32_reg_table[reg].alias].alias;
+	}
+	return reg;
+}
diff --git a/src/third_party/libdisasm/ia32_reg.h b/src/third_party/libdisasm/ia32_reg.h
new file mode 100644
index 0000000..fbbc77a
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_reg.h
@@ -0,0 +1,41 @@
+#ifndef IA32_REG_H
+#define IA32_REG_H
+
+#include <sys/types.h>	/* for size_t */
+#include "libdis.h"	/* for x86_reg_t */
+
+/* NOTE these are used in opcode tables for hard-coded registers */
+#define REG_DWORD_OFFSET 	 1	/* 0 + 1 */
+#define REG_ECX_INDEX		 2	/* 0 + 1 + 1 */
+#define REG_ESP_INDEX		 5	/* 0 + 4 + 1 */
+#define REG_EBP_INDEX		 6	/* 0 + 5 + 1 */
+#define REG_ESI_INDEX		 7	/* 0 + 6 + 1 */
+#define REG_EDI_INDEX		 8	/* 0 + 7 + 1 */
+#define REG_WORD_OFFSET 	 9	/* 1 * 8 + 1 */
+#define REG_BYTE_OFFSET 	17	/* 2 * 8 + 1 */
+#define REG_MMX_OFFSET 		25	/* 3 * 8 + 1 */
+#define REG_SIMD_OFFSET 	33	/* 4 * 8 + 1 */
+#define REG_DEBUG_OFFSET 	41	/* 5 * 8 + 1 */
+#define REG_CTRL_OFFSET 	49	/* 6 * 8 + 1 */
+#define REG_TEST_OFFSET 	57	/* 7 * 8 + 1 */
+#define REG_SEG_OFFSET 		65	/* 8 * 8 + 1 */
+#define REG_LDTR_INDEX		71	/* 8 * 8 + 1 + 1 */
+#define REG_GDTR_INDEX		72	/* 8 * 8 + 2 + 1 */
+#define REG_FPU_OFFSET 		73	/* 9 * 8 + 1 */
+#define REG_FLAGS_INDEX 	81	/* 10 * 8 + 1 */
+#define REG_FPCTRL_INDEX 	82	/* 10 * 8 + 1 + 1 */
+#define REG_FPSTATUS_INDEX 	83	/* 10 * 8 + 2 + 1 */
+#define REG_FPTAG_INDEX 	84	/* 10 * 8 + 3 + 1 */
+#define REG_EIP_INDEX 		85	/* 10 * 8 + 4 + 1 */
+#define REG_IP_INDEX 		86	/* 10 * 8 + 5 + 1 */
+#define REG_IDTR_INDEX		87	/* 10 * 8 + 6 + 1 */
+#define REG_MXCSG_INDEX		88	/* 10 * 8 + 7 + 1 */
+#define REG_TR_INDEX		89	/* 10 * 8 + 8 + 1 */
+#define REG_CSMSR_INDEX		90	/* 10 * 8 + 9 + 1 */
+#define REG_ESPMSR_INDEX	91	/* 10 * 8 + 10 + 1 */
+#define REG_EIPMSR_INDEX	92	/* 10 * 8 + 11 + 1 */
+
+void ia32_handle_register( x86_reg_t *reg, size_t id );
+size_t ia32_true_register_id( size_t id );
+
+#endif
diff --git a/src/third_party/libdisasm/ia32_settings.c b/src/third_party/libdisasm/ia32_settings.c
new file mode 100644
index 0000000..b578e34
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_settings.c
@@ -0,0 +1,13 @@
+#include "libdis.h"
+#include "ia32_settings.h"
+#include "ia32_reg.h"
+#include "ia32_insn.h"
+
+ia32_settings_t ia32_settings = {
+	1, 0xF4, 
+	MAX_INSTRUCTION_SIZE,
+	4, 4, 8, 4, 8,
+	REG_ESP_INDEX, REG_EBP_INDEX, REG_EIP_INDEX, REG_FLAGS_INDEX,
+	REG_DWORD_OFFSET, REG_SEG_OFFSET, REG_FPU_OFFSET,
+	opt_none
+};
diff --git a/src/third_party/libdisasm/ia32_settings.h b/src/third_party/libdisasm/ia32_settings.h
new file mode 100644
index 0000000..769c0e9
--- /dev/null
+++ b/src/third_party/libdisasm/ia32_settings.h
@@ -0,0 +1,27 @@
+#ifndef IA32_SETTINGS_H
+#define IA32_SETTINGS_H
+
+#include "libdis.h"
+
+typedef struct {
+	/* options */
+	unsigned char endian,		/* 0 = big, 1 = little */
+		      wc_byte,		/* wildcard byte */
+		      max_insn,		/* max insn size */
+		      sz_addr,		/* default address size */
+		      sz_oper,		/* default operand size */
+		      sz_byte,		/* # bits in byte */
+		      sz_word,		/* # bytes in machine word */
+		      sz_dword;		/* # bytes in machine dword */
+	unsigned int id_sp_reg,		/* id of stack pointer */
+		     id_fp_reg,		/* id of frame pointer */
+		     id_ip_reg,		/* id of instruction pointer */
+		     id_flag_reg,	/* id of flags register */
+		     offset_gen_regs,	/* start of general regs */
+		     offset_seg_regs,	/* start of segment regs */
+		     offset_fpu_regs;	/* start of floating point regs */
+	/* user-controlled settings */
+	enum x86_options options;
+} ia32_settings_t;
+
+#endif
diff --git a/src/third_party/libdisasm/libdis.h b/src/third_party/libdisasm/libdis.h
new file mode 100644
index 0000000..83a8861
--- /dev/null
+++ b/src/third_party/libdisasm/libdis.h
@@ -0,0 +1,832 @@
+#ifndef LIBDISASM_H
+#define LIBDISASM_H
+
+#include <stdint.h>
+
+/* 'NEW" types
+ * __________________________________________________________________________*/
+#ifndef LIBDISASM_QWORD_H       /* do not interfere with qword.h */
+        #define LIBDISASM_QWORD_H
+        #ifdef _MSC_VER
+                typedef __int64         qword_t;
+        #else
+                typedef int64_t         qword_t;
+        #endif
+#endif
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 'NEW" x86 API
+ * __________________________________________________________________________*/
+
+
+/* ========================================= Error Reporting */
+/* REPORT CODES
+ *      These are passed to a reporter function passed at initialization.
+ *      Each code determines the type of the argument passed to the reporter;
+ *      this allows the report to recover from errors, or just log them.
+ */
+enum x86_report_codes {
+        report_disasm_bounds,   /* RVA OUT OF BOUNDS : The disassembler could
+                                   not disassemble the supplied RVA as it is
+                                   out of the range of the buffer. The
+                                   application should store the address and
+                                   attempt to determine what section of the
+                                   binary it is in, then disassemble the
+                                   address from the bytes in that section.
+                                        data: uint32_t rva */
+        report_insn_bounds,     /* INSTRUCTION OUT OF BOUNDS: The disassembler
+                                   could not disassemble the instruction as
+                                   the instruction would require bytes beyond
+                                   the end of the current buffer. This usually
+                                   indicated garbage bytes at the end of a
+                                   buffer, or an incorrectly-sized buffer.
+                                        data: uint32_t rva */
+        report_invalid_insn,    /* INVALID INSTRUCTION: The disassembler could
+                                   not disassemble the instruction as it has an
+                                   invalid combination of opcodes and operands.
+                                   This will stop automated disassembly; the
+                                   application can restart the disassembly
+                                   after the invalid instruction.
+                                        data: uint32_t rva */
+        report_unknown
+};
+
+/* 'arg' is optional arbitrary data provided by the code passing the 
+ *       callback -- for example, it could be 'this' or 'self' in OOP code.
+ * 'code' is provided by libdisasm, it is one of the above
+ * 'data' is provided by libdisasm and is context-specific, per the enums */
+typedef void (*DISASM_REPORTER)( enum x86_report_codes code, 
+				 void *data, void *arg );
+
+
+/* x86_report_error : Call the register reporter to report an error */
+void x86_report_error( enum x86_report_codes code, void *data );
+
+/* ========================================= Libdisasm Management Routines */
+enum x86_options {		/* these can be ORed together */
+        opt_none= 0,
+        opt_ignore_nulls=1,     /* ignore sequences of > 4 NULL bytes */
+        opt_16_bit=2,           /* 16-bit/DOS disassembly */
+        opt_att_mnemonics=4,    /* use AT&T syntax names for alternate opcode mnemonics */
+};
+
+/* management routines */
+/* 'arg' is caller-specific data which is passed as the first argument
+ * to the reporter callback routine */
+int x86_init( enum x86_options options, DISASM_REPORTER reporter, void *arg);
+void x86_set_reporter( DISASM_REPORTER reporter, void *arg);
+void x86_set_options( enum x86_options options );
+enum x86_options x86_get_options( void );
+int x86_cleanup(void);
+
+
+/* ========================================= Instruction Representation */
+/* these defines are only intended for use in the array decl's */
+#define MAX_REGNAME 8
+
+#define MAX_PREFIX_STR 32
+#define MAX_MNEM_STR 16
+#define MAX_INSN_SIZE 20        /* same as in i386.h */
+#define MAX_OP_STRING 32        /* max possible operand size in string form */
+#define MAX_OP_RAW_STRING 64    /* max possible operand size in raw form */
+#define MAX_OP_XML_STRING 256   /* max possible operand size in xml form */
+#define MAX_NUM_OPERANDS 8	/* max # implicit and explicit operands */
+/* in these, the '2 *' is arbitrary: the max # of operands should require
+ * more space than the rest of the insn */
+#define MAX_INSN_STRING 512        /* 2 * 8 * MAX_OP_STRING */
+#define MAX_INSN_RAW_STRING 1024   /* 2 * 8 * MAX_OP_RAW_STRING */
+#define MAX_INSN_XML_STRING 4096   /* 2 * 8 * MAX_OP_XML_STRING */
+
+enum x86_reg_type {     /* NOTE: these may be ORed together */
+        reg_gen         = 0x00001,      /* general purpose */
+        reg_in          = 0x00002,      /* incoming args, ala RISC */
+        reg_out         = 0x00004,      /* args to calls, ala RISC */
+        reg_local       = 0x00008,      /* local vars, ala RISC */
+        reg_fpu         = 0x00010,      /* FPU data register */
+        reg_seg         = 0x00020,      /* segment register */
+        reg_simd        = 0x00040,      /* SIMD/MMX reg */
+        reg_sys         = 0x00080,      /* restricted/system register */
+        reg_sp          = 0x00100,      /* stack pointer */
+        reg_fp          = 0x00200,      /* frame pointer */
+        reg_pc          = 0x00400,      /* program counter */
+        reg_retaddr     = 0x00800,      /* return addr for func */
+        reg_cond        = 0x01000,      /* condition code / flags */
+        reg_zero        = 0x02000,      /* zero register, ala RISC */
+        reg_ret         = 0x04000,      /* return value */
+        reg_src         = 0x10000,      /* array/rep source */
+        reg_dest        = 0x20000,      /* array/rep destination */
+        reg_count       = 0x40000       /* array/rep/loop counter */
+};
+
+/* x86_reg_t : an X86 CPU register */
+typedef struct {
+        char name[MAX_REGNAME];
+        enum x86_reg_type type;         /* what register is used for */
+        unsigned int size;              /* size of register in bytes */
+        unsigned int id;                /* register ID #, for quick compares */
+	unsigned int alias;		/* ID of reg this is an alias for */
+	unsigned int shift;		/* amount to shift aliased reg by */
+} x86_reg_t;
+
+/* x86_ea_t : an X86 effective address (address expression) */
+typedef struct {
+        unsigned int     scale;         /* scale factor */
+        x86_reg_t        index, base;   /* index, base registers */
+        int32_t          disp;          /* displacement */
+        char             disp_sign;     /* is negative? 1/0 */
+        char             disp_size;     /* 0, 1, 2, 4 */
+} x86_ea_t;
+
+/* x86_absolute_t : an X86 segment:offset address (descriptor) */
+typedef struct {
+	unsigned short	segment;	/* loaded directly into CS */
+	union {
+		unsigned short	off16;	/* loaded directly into IP */
+		uint32_t		off32;	/* loaded directly into EIP */
+	} offset;	
+} x86_absolute_t;
+
+enum x86_op_type {      /* mutually exclusive */
+        op_unused = 0,          /* empty/unused operand: should never occur */
+        op_register = 1,        /* CPU register */
+        op_immediate = 2,       /* Immediate Value */
+        op_relative_near = 3,   /* Relative offset from IP */
+        op_relative_far = 4,    /* Relative offset from IP */
+        op_absolute = 5,        /* Absolute address (ptr16:32) */
+        op_expression = 6,      /* Address expression (scale/index/base/disp) */
+        op_offset = 7,          /* Offset from start of segment (m32) */
+        op_unknown
+};
+
+#define x86_optype_is_address( optype ) \
+	( optype == op_absolute || optype == op_offset )
+#define x86_optype_is_relative( optype ) \
+	( optype == op_relative_near || optype == op_relative_far )
+#define x86_optype_is_memory( optype ) \
+	( optype > op_immediate && optype < op_unknown )
+
+enum x86_op_datatype {          /* these use Intel's lame terminology */
+        op_byte = 1,            /* 1 byte integer */
+        op_word = 2,            /* 2 byte integer */
+        op_dword = 3,           /* 4 byte integer */
+        op_qword = 4,           /* 8 byte integer */
+        op_dqword = 5,          /* 16 byte integer */
+        op_sreal = 6,           /* 4 byte real (single real) */
+        op_dreal = 7,           /* 8 byte real (double real) */
+        op_extreal = 8,         /* 10 byte real (extended real) */
+        op_bcd = 9,             /* 10 byte binary-coded decimal */
+        op_ssimd = 10,          /* 16 byte : 4 packed single FP (SIMD, MMX) */
+        op_dsimd = 11,          /* 16 byte : 2 packed double FP (SIMD, MMX) */
+        op_sssimd = 12,         /* 4 byte : scalar single FP (SIMD, MMX) */
+        op_sdsimd = 13,         /* 8 byte : scalar double FP (SIMD, MMX) */
+	op_descr32 = 14,	/* 6 byte Intel descriptor 2:4 */
+	op_descr16 = 15,	/* 4 byte Intel descriptor 2:2 */
+	op_pdescr32 = 16,	/* 6 byte Intel pseudo-descriptor 32:16 */
+	op_pdescr16 = 17,	/* 6 byte Intel pseudo-descriptor 8:24:16 */
+	op_bounds16 = 18,	/* signed 16:16 lower:upper bounds */
+	op_bounds32 = 19,	/* signed 32:32 lower:upper bounds */
+        op_fpuenv16 = 20,	/* 14 byte FPU control/environment data */
+        op_fpuenv32 = 21,	/* 28 byte FPU control/environment data */
+	op_fpustate16 = 22,	/* 94 byte FPU state (env & reg stack) */
+	op_fpustate32 = 23,	/* 108 byte FPU state (env & reg stack) */
+	op_fpregset = 24,	/* 512 bytes: register set */
+	op_fpreg = 25,		/* FPU register */
+    op_none = 0xFF,     /* operand without a datatype (INVLPG) */
+};
+
+enum x86_op_access {    /* ORed together */
+        op_read = 1,
+        op_write = 2,
+        op_execute = 4
+};
+
+enum x86_op_flags {     /* ORed together, but segs are mutually exclusive */
+        op_signed = 1,          /* signed integer */
+        op_string = 2,          /* possible string or array */
+        op_constant = 4,        /* symbolic constant */
+        op_pointer = 8,         /* operand points to a memory address */
+	op_sysref = 0x010,	/* operand is a syscall number */
+	op_implied = 0x020,	/* operand is implicit in the insn */
+	op_hardcode = 0x40,	/* operand is hardcoded in insn definition */
+	/* NOTE: an 'implied' operand is one which can be considered a side
+	 * effect of the insn, e.g. %esp being modified by PUSH or POP. A
+	 * 'hard-coded' operand is one which is specified in the instruction
+	 * definition, e.g. %es:%edi in MOVSB or 1 in ROL Eb, 1. The difference
+	 * is that hard-coded operands are printed by disassemblers and are
+	 * required to re-assemble, while implicit operands are invisible. */
+        op_es_seg = 0x100,      /* ES segment override */
+        op_cs_seg = 0x200,      /* CS segment override */
+        op_ss_seg = 0x300,      /* SS segment override */
+        op_ds_seg = 0x400,      /* DS segment override */
+        op_fs_seg = 0x500,      /* FS segment override */
+        op_gs_seg = 0x600       /* GS segment override */
+};
+
+/* x86_op_t : an X86 instruction operand */
+typedef struct {
+        enum x86_op_type        type;           /* operand type */
+        enum x86_op_datatype    datatype;       /* operand size */
+        enum x86_op_access      access;         /* operand access [RWX] */
+        enum x86_op_flags       flags;          /* misc flags */
+        union {
+		/* sizeof will have to work on these union members! */
+                /* immediate values */
+                char            sbyte;
+                short           sword;
+                int32_t         sdword;
+                qword_t         sqword;
+                unsigned char   byte;
+                unsigned short  word;
+                uint32_t        dword;
+                qword_t         qword;
+                float           sreal;
+                double          dreal;
+                /* misc large/non-native types */
+                unsigned char   extreal[10];
+                unsigned char   bcd[10];
+                qword_t         dqword[2];
+                unsigned char   simd[16];
+                unsigned char   fpuenv[28];
+                /* offset from segment */
+                uint32_t        offset;
+                /* ID of CPU register */
+                x86_reg_t       reg;
+                /* offsets from current insn */
+                char            relative_near;
+                int32_t         relative_far;
+		/* segment:offset */
+		x86_absolute_t	absolute;
+                /* effective address [expression] */
+                x86_ea_t        expression;
+        } data;
+	/* this is needed to make formatting operands more sane */
+	void * insn;		/* pointer to x86_insn_t owning operand */
+} x86_op_t;
+
+/* Linked list of x86_op_t; provided for manual traversal of the operand
+ * list in an insn. Users wishing to add operands to this list, e.g. to add
+ * implicit operands, should use x86_operand_new in x86_operand_list.h */
+typedef struct x86_operand_list {
+	x86_op_t op;
+	struct x86_operand_list *next;
+} x86_oplist_t;
+
+enum x86_insn_group {
+	insn_none = 0,		/* invalid instruction */
+        insn_controlflow = 1,
+        insn_arithmetic = 2,
+        insn_logic = 3,
+        insn_stack = 4,
+        insn_comparison = 5,
+        insn_move = 6,
+        insn_string = 7,
+        insn_bit_manip = 8,
+        insn_flag_manip = 9,
+        insn_fpu = 10,
+        insn_interrupt = 13,
+        insn_system = 14,
+        insn_other = 15
+};
+
+enum x86_insn_type {
+	insn_invalid = 0,	/* invalid instruction */
+        /* insn_controlflow */
+        insn_jmp = 0x1001,
+        insn_jcc = 0x1002,
+        insn_call = 0x1003,
+        insn_callcc = 0x1004,
+        insn_return = 0x1005,
+        /* insn_arithmetic */
+        insn_add = 0x2001,
+        insn_sub = 0x2002,
+        insn_mul = 0x2003,
+        insn_div = 0x2004,
+        insn_inc = 0x2005,
+        insn_dec = 0x2006,
+        insn_shl = 0x2007,
+        insn_shr = 0x2008,
+        insn_rol = 0x2009,
+        insn_ror = 0x200A,
+        /* insn_logic */
+        insn_and = 0x3001,
+        insn_or = 0x3002,
+        insn_xor = 0x3003,
+        insn_not = 0x3004,
+        insn_neg = 0x3005,
+        /* insn_stack */
+        insn_push = 0x4001,
+        insn_pop = 0x4002,
+        insn_pushregs = 0x4003,
+        insn_popregs = 0x4004,
+        insn_pushflags = 0x4005,
+        insn_popflags = 0x4006,
+        insn_enter = 0x4007,
+        insn_leave = 0x4008,
+        /* insn_comparison */
+        insn_test = 0x5001,
+        insn_cmp = 0x5002,
+        /* insn_move */
+        insn_mov = 0x6001,      /* move */
+        insn_movcc = 0x6002,    /* conditional move */
+        insn_xchg = 0x6003,     /* exchange */
+        insn_xchgcc = 0x6004,   /* conditional exchange */
+        /* insn_string */
+        insn_strcmp = 0x7001,
+        insn_strload = 0x7002,
+        insn_strmov = 0x7003,
+        insn_strstore = 0x7004,
+        insn_translate = 0x7005,        /* xlat */
+        /* insn_bit_manip */
+        insn_bittest = 0x8001,
+        insn_bitset = 0x8002,
+        insn_bitclear = 0x8003,
+        /* insn_flag_manip */
+        insn_clear_carry = 0x9001,
+        insn_clear_zero = 0x9002,
+        insn_clear_oflow = 0x9003,
+        insn_clear_dir = 0x9004,
+        insn_clear_sign = 0x9005,
+        insn_clear_parity = 0x9006,
+        insn_set_carry = 0x9007,
+        insn_set_zero = 0x9008,
+        insn_set_oflow = 0x9009,
+        insn_set_dir = 0x900A,
+        insn_set_sign = 0x900B,
+        insn_set_parity = 0x900C,
+        insn_tog_carry = 0x9010,
+        insn_tog_zero = 0x9020,
+        insn_tog_oflow = 0x9030,
+        insn_tog_dir = 0x9040,
+        insn_tog_sign = 0x9050,
+        insn_tog_parity = 0x9060,
+        /* insn_fpu */
+        insn_fmov = 0xA001,
+        insn_fmovcc = 0xA002,
+        insn_fneg = 0xA003,
+        insn_fabs = 0xA004,
+        insn_fadd = 0xA005,
+        insn_fsub = 0xA006,
+        insn_fmul = 0xA007,
+        insn_fdiv = 0xA008,
+        insn_fsqrt = 0xA009,
+        insn_fcmp = 0xA00A,
+        insn_fcos = 0xA00C,
+        insn_fldpi = 0xA00D,
+        insn_fldz = 0xA00E,
+        insn_ftan = 0xA00F,
+        insn_fsine = 0xA010,
+        insn_fsys = 0xA020,
+        /* insn_interrupt */
+        insn_int = 0xD001,
+        insn_intcc = 0xD002,    /* not present in x86 ISA */
+        insn_iret = 0xD003,
+        insn_bound = 0xD004,
+        insn_debug = 0xD005,
+        insn_trace = 0xD006,
+        insn_invalid_op = 0xD007,
+        insn_oflow = 0xD008,
+        /* insn_system */
+        insn_halt = 0xE001,
+        insn_in = 0xE002,       /* input from port/bus */
+        insn_out = 0xE003,      /* output to port/bus */
+        insn_cpuid = 0xE004,
+        /* insn_other */
+        insn_nop = 0xF001,
+        insn_bcdconv = 0xF002,  /* convert to or from BCD */
+        insn_szconv = 0xF003    /* change size of operand */
+};
+
+/* These flags specify special characteristics of the instruction, such as
+ * whether the inatruction is privileged or whether it serializes the
+ * pipeline.
+ * NOTE : These may not be accurate for all instructions; updates to the
+ * opcode tables have not been completed. */
+enum x86_insn_note {
+	insn_note_ring0		= 1,	/* Only available in ring 0 */
+	insn_note_smm		= 2,	/* "" in System Management Mode */
+	insn_note_serial	= 4,	/* Serializing instruction */
+	insn_note_nonswap	= 8,	/* Does not swap arguments in att-style formatting */
+	insn_note_nosuffix  = 16,	/* Does not have size suffix in att-style formatting */
+};
+
+/* This specifies what effects the instruction has on the %eflags register */
+enum x86_flag_status {
+        insn_carry_set = 0x1,			/* CF */
+        insn_zero_set = 0x2,			/* ZF */
+        insn_oflow_set = 0x4,			/* OF */
+        insn_dir_set = 0x8,			/* DF */
+        insn_sign_set = 0x10,			/* SF */
+        insn_parity_set = 0x20,			/* PF */
+        insn_carry_or_zero_set = 0x40,
+        insn_zero_set_or_sign_ne_oflow = 0x80,
+        insn_carry_clear = 0x100,
+        insn_zero_clear = 0x200,
+        insn_oflow_clear = 0x400,
+        insn_dir_clear = 0x800,
+        insn_sign_clear = 0x1000,
+        insn_parity_clear = 0x2000,
+        insn_sign_eq_oflow = 0x4000,
+        insn_sign_ne_oflow = 0x8000
+};
+
+/* The CPU model in which the insturction first appeared; this can be used
+ * to mask out instructions appearing in earlier or later models or to
+ * check the portability of a binary.
+ * NOTE : These may not be accurate for all instructions; updates to the
+ * opcode tables have not been completed. */
+enum x86_insn_cpu {
+	cpu_8086 	= 1,	/* Intel */
+	cpu_80286	= 2,
+	cpu_80386	= 3,
+	cpu_80387	= 4,
+	cpu_80486	= 5,
+	cpu_pentium	= 6,
+	cpu_pentiumpro	= 7,
+	cpu_pentium2	= 8,
+	cpu_pentium3	= 9,
+	cpu_pentium4	= 10,
+	cpu_k6		= 16,	/* AMD */
+	cpu_k7		= 32,
+	cpu_athlon	= 48
+};
+
+/* CPU ISA subsets: These are derived from the Instruction Groups in
+ * Intel Vol 1 Chapter 5; they represent subsets of the IA32 ISA but
+ * do not reflect the 'type' of the instruction in the same way that
+ * x86_insn_group does. In short, these are AMD/Intel's somewhat useless 
+ * designations.
+ * NOTE : These may not be accurate for all instructions; updates to the
+ * opcode tables have not been completed. */
+enum x86_insn_isa {
+	isa_gp		= 1,	/* general purpose */
+	isa_fp		= 2,	/* floating point */
+	isa_fpumgt	= 3,	/* FPU/SIMD management */
+	isa_mmx		= 4,	/* Intel MMX */
+	isa_sse1	= 5,	/* Intel SSE SIMD */
+	isa_sse2	= 6,	/* Intel SSE2 SIMD */
+	isa_sse3	= 7,	/* Intel SSE3 SIMD */
+	isa_3dnow	= 8,	/* AMD 3DNow! SIMD */
+	isa_sys		= 9	/* system instructions */
+};
+
+enum x86_insn_prefix {
+        insn_no_prefix = 0,
+        insn_rep_zero = 1,	/* REPZ and REPE */
+        insn_rep_notzero = 2,	/* REPNZ and REPNZ */
+        insn_lock = 4		/* LOCK: */
+};
+
+/* TODO: maybe provide insn_new/free(), and have disasm return new insn_t */
+/* x86_insn_t : an X86 instruction */
+typedef struct {
+        /* information about the instruction */
+        uint32_t addr;             /* load address */
+        uint32_t offset;           /* offset into file/buffer */
+        enum x86_insn_group group;      /* meta-type, e.g. INS_EXEC */
+        enum x86_insn_type type;        /* type, e.g. INS_BRANCH */
+	enum x86_insn_note note;	/* note, e.g. RING0 */
+        unsigned char bytes[MAX_INSN_SIZE];
+        unsigned char size;             /* size of insn in bytes */
+	/* 16/32-bit mode settings */
+	unsigned char addr_size;	/* default address size : 2 or 4 */
+	unsigned char op_size;		/* default operand size : 2 or 4 */
+	/* CPU/instruction set */
+	enum x86_insn_cpu cpu;
+	enum x86_insn_isa isa;
+	/* flags */
+        enum x86_flag_status flags_set; /* flags set or tested by insn */
+        enum x86_flag_status flags_tested;
+	/* stack */
+	unsigned char stack_mod;	/* 0 or 1 : is the stack modified? */
+	int32_t stack_mod_val;		/* val stack is modified by if known */
+
+        /* the instruction proper */
+        enum x86_insn_prefix prefix;	/* prefixes ORed together */
+        char prefix_string[MAX_PREFIX_STR]; /* prefixes [might be truncated] */
+        char mnemonic[MAX_MNEM_STR];
+        x86_oplist_t *operands;		/* list of explicit/implicit operands */
+	size_t operand_count;		/* total number of operands */
+	size_t explicit_count;		/* number of explicit operands */
+        /* convenience fields for user */
+        void *block;                    /* code block containing this insn */
+        void *function;                 /* function containing this insn */
+        int tag;			/* tag the insn as seen/processed */
+} x86_insn_t;
+
+
+/* returns 0 if an instruction is invalid, 1 if valid */
+int x86_insn_is_valid( x86_insn_t *insn );
+
+/* DISASSEMBLY ROUTINES
+ *      Canonical order of arguments is
+ *        (buf, buf_len, buf_rva, offset, len, insn, func, arg, resolve_func)
+ *      ...but of course all of these are not used at the same time.
+ */
+
+
+/* Function prototype for caller-supplied callback routine
+ *      These callbacks are intended to process 'insn' further, e.g. by
+ *      adding it to a linked list, database, etc */
+typedef void (*DISASM_CALLBACK)( x86_insn_t *insn, void * arg );
+
+/* Function prototype for caller-supplied address resolver.
+ *      This routine is used to determine the rva to disassemble next, given
+ *      the 'dest' operand of a jump/call. This allows the caller to resolve
+ *      jump/call targets stored in a register or on the stack, and also allows
+ *      the caller to prevent endless loops by checking if an address has
+ *      already been disassembled. If an address cannot be resolved from the
+ *      operand, or if the address has already been disassembled, this routine
+ *      should return -1; in all other cases the RVA to be disassembled next
+ *      should be returned. */
+typedef int32_t (*DISASM_RESOLVER)( x86_op_t *op, x86_insn_t * current_insn,
+				 void *arg );
+
+
+/* x86_disasm: Disassemble a single instruction from a buffer of bytes.
+ *             Returns size of instruction in bytes.
+ *             Caller is responsible for calling x86_oplist_free() on
+ *             a reused "insn" to avoid leaking memory when calling this
+ *             function repeatedly.
+ *      buf     : Buffer of bytes to disassemble
+ *      buf_len : Length of the buffer
+ *      buf_rva : Load address of the start of the buffer
+ *      offset  : Offset in buffer to disassemble
+ *      insn    : Structure to fill with disassembled instruction
+ */
+unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len,
+                	 uint32_t buf_rva, unsigned int offset,
+                	 x86_insn_t * insn );
+
+/* x86_disasm_range: Sequential disassembly of a range of bytes in a buffer,
+ *                   invoking a callback function each time an instruction
+ *                   is successfully disassembled. The 'range' refers to the
+ *                   bytes between 'offset' and 'offset + len' in the buffer;
+ *                   'len' is assumed to be less than the length of the buffer.
+ *                   Returns number of instructions processed.
+ *      buf     : Buffer of bytes to disassemble (e.g. .text section)
+ *      buf_rva : Load address of buffer (e.g. ELF Virtual Address)
+ *      offset  : Offset in buffer to start disassembly at
+ *      len     : Number of bytes to disassemble
+ *      func    : Callback function to invoke (may be NULL)
+ *      arg     : Arbitrary data to pass to callback (may be NULL)
+ */
+unsigned int x86_disasm_range( unsigned char *buf, uint32_t buf_rva,
+	                       unsigned int offset, unsigned int len,
+	                       DISASM_CALLBACK func, void *arg );
+
+/* x86_disasm_forward: Flow-of-execution disassembly of the bytes in a buffer,
+ *                     invoking a callback function each time an instruction
+ *                     is successfully disassembled.
+ *      buf     : Buffer to disassemble (e.g. .text section)
+ *      buf_len : Number of bytes in buffer
+ *      buf_rva : Load address of buffer (e.g. ELF Virtual Address)
+ *      offset  : Offset in buffer to start disassembly at (e.g. entry point)
+ *      func    : Callback function to invoke (may be NULL)
+ *      arg     : Arbitrary data to pass to callback (may be NULL)
+ *      resolver: Caller-supplied address resolver. If no resolver is
+ *                supplied, a default internal one is used -- however the
+ *                internal resolver does NOT catch loops and could end up
+ *                disassembling forever..
+ *      r_arg	: Arbitrary data to pass to resolver (may be NULL)
+ */
+unsigned int x86_disasm_forward( unsigned char *buf, unsigned int buf_len,
+	                         uint32_t buf_rva, unsigned int offset,
+	                         DISASM_CALLBACK func, void *arg,
+	                         DISASM_RESOLVER resolver, void *r_arg );
+
+/* Instruction operands: these are stored as a list of explicit and
+ * implicit operands. It is recommended that the 'foreach' routines
+ * be used to when examining operands for purposes of data flow analysis */
+
+/* Operand FOREACH callback: 'arg' is an abritrary parameter passed to the
+ * foreach routine, 'insn' is the x86_insn_t whose operands are being
+ * iterated over, and 'op' is the current x86_op_t */
+typedef void (*x86_operand_fn)(x86_op_t *op, x86_insn_t *insn, void *arg);
+
+/* FOREACH types: these are used to limit the foreach results to 
+ * operands which match a certain "type" (implicit or explicit)
+ * or which are accessed in certain ways (e.g. read or write). Note
+ * that this operates on the operand list of single instruction, so
+ * specifying the 'real' operand type (register, memory, etc) is not
+ * useful. Note also that by definition Execute Access implies Read
+ * Access and implies Not Write Access.
+ * The "type" (implicit or explicit) and the access method can
+ * be ORed together, e.g. op_wo | op_explicit */
+enum x86_op_foreach_type {
+	op_any 	= 0,		/* ALL operands (explicit, implicit, rwx) */
+	op_dest = 1,		/* operands with Write access */
+	op_src 	= 2,		/* operands with Read access */
+	op_ro 	= 3,		/* operands with Read but not Write access */
+	op_wo 	= 4,		/* operands with Write but not Read access */
+	op_xo 	= 5,		/* operands with Execute access */
+	op_rw 	= 6,		/* operands with Read AND Write access */
+	op_implicit = 0x10,	/* operands that are implied by the opcode */
+	op_explicit = 0x20	/* operands that are not side-effects */
+};
+
+
+/* free the operand list associated with an instruction -- useful for
+ * preventing memory leaks when free()ing an x86_insn_t */
+void x86_oplist_free( x86_insn_t *insn );
+
+/* Operand foreach: invokes 'func' with 'insn' and 'arg' as arguments. The
+ * 'type' parameter is used to select only operands matching specific
+ * criteria. */
+int x86_operand_foreach( x86_insn_t *insn, x86_operand_fn func, void *arg,
+	       	  	 enum x86_op_foreach_type type);
+
+/* convenience routine: returns count of operands matching 'type' */
+size_t x86_operand_count( x86_insn_t *insn, enum x86_op_foreach_type type );
+
+/* accessor functions for the operands */
+x86_op_t * x86_operand_1st( x86_insn_t *insn );
+x86_op_t * x86_operand_2nd( x86_insn_t *insn );
+x86_op_t * x86_operand_3rd( x86_insn_t *insn );
+
+/* these allow libdisasm 2.0 accessor functions to still be used */
+#define x86_get_dest_operand( insn ) x86_operand_1st( insn )
+#define x86_get_src_operand( insn ) x86_operand_2nd( insn )
+#define x86_get_imm_operand( insn ) x86_operand_3rd( insn )
+
+/* get size of operand data in bytes */
+unsigned int x86_operand_size( x86_op_t *op );
+
+/* Operand Convenience Routines: the following three routines are common
+ * operations on operands, intended to ease the burden of the programmer. */
+
+/* Get Address: return the value of an offset operand, or the offset of
+ * a segment:offset absolute address */
+uint32_t x86_get_address( x86_insn_t *insn );
+
+/* Get Relative Offset: return as a sign-extended int32_t the near or far
+ * relative offset operand, or 0 if there is none. There can be only one
+ * relaive offset operand in an instruction. */
+int32_t x86_get_rel_offset( x86_insn_t *insn );
+
+/* Get Branch Target: return the x86_op_t containing the target of
+ * a jump or call operand, or NULL if there is no branch target. 
+ * Internally, a 'branch target' is defined as any operand with
+ * Execute Access set. There can be only one branch target per instruction. */
+x86_op_t * x86_get_branch_target( x86_insn_t *insn );
+
+/* Get Immediate: return the x86_op_t containing the immediate operand
+ * for this instruction, or NULL if there is no immediate operand. There
+ * can be only one immediate operand per instruction */
+x86_op_t * x86_get_imm( x86_insn_t *insn );
+
+/* Get Raw Immediate Data: returns a pointer to the immediate data encoded
+ * in the instruction. This is useful for large data types [>32 bits] currently
+ * not supported by libdisasm, or for determining if the disassembler
+ * screwed up the conversion of the immediate data. Note that 'imm' in this
+ * context refers to immediate data encoded at the end of an instruction as
+ * detailed in the Intel Manual Vol II Chapter 2; it does not refer to the
+ * 'op_imm' operand (the third operand in instructions like 'mul' */
+unsigned char * x86_get_raw_imm( x86_insn_t *insn );
+
+
+/* More accessor fuctions, this time for user-defined info... */
+/* set the address (usually RVA) of the insn */
+void x86_set_insn_addr( x86_insn_t *insn, uint32_t addr );
+
+/* set the offset (usually offset into file) of the insn */
+void x86_set_insn_offset( x86_insn_t *insn, unsigned int offset );
+
+/* set a pointer to the function owning the instruction. The 
+ * type of 'func' is user-defined; libdisasm does not use the func field. */
+void x86_set_insn_function( x86_insn_t *insn, void * func );
+
+/* set a pointer to the block of code owning the instruction. The 
+ * type of 'block' is user-defined; libdisasm does not use the block field. */
+void x86_set_insn_block( x86_insn_t *insn, void * block );
+
+/* instruction tagging: these routines allow the programmer to mark
+ * instructions as "seen" in a DFS, for example. libdisasm does not use
+ * the tag field.*/ 
+/* set insn->tag to 1 */
+void x86_tag_insn( x86_insn_t *insn );
+/* set insn->tag to 0 */
+void x86_untag_insn( x86_insn_t *insn );
+/* return insn->tag */
+int x86_insn_is_tagged( x86_insn_t *insn );
+
+
+/* Disassembly formats:
+ *      AT&T is standard AS/GAS-style: "mnemonic\tsrc, dest, imm"
+ *      Intel is standard MASM/NASM/TASM: "mnemonic\tdest,src, imm"
+ *      Native is tab-delimited: "RVA\tbytes\tmnemonic\tdest\tsrc\timm"
+ *      XML is your typical <insn> ... </insn>
+ *      Raw is addr|offset|size|bytes|prefix... see libdisasm_formats.7
+ */
+enum x86_asm_format { 
+	unknown_syntax = 0,		/* never use! */
+	native_syntax, 			/* header: 35 bytes */
+	intel_syntax, 			/* header: 23 bytes */
+	att_syntax,  			/* header: 23 bytes */
+	xml_syntax,			/* header: 679 bytes */
+	raw_syntax			/* header: 172 bytes */
+};
+
+/* format (sprintf) an operand into 'buf' using specified syntax */
+int x86_format_operand(x86_op_t *op, char *buf, int len,
+                  enum x86_asm_format format);
+
+/* format (sprintf) an instruction mnemonic into 'buf' using specified syntax */
+int x86_format_mnemonic(x86_insn_t *insn, char *buf, int len,
+                        enum x86_asm_format format);
+
+/* format (sprintf) an instruction into 'buf' using specified syntax;
+ * this includes formatting all operands */
+int x86_format_insn(x86_insn_t *insn, char *buf, int len, enum x86_asm_format);
+
+/* fill 'buf' with a description of the format's syntax */
+int x86_format_header( char *buf, int len, enum x86_asm_format format);
+
+/* Endianness of an x86 CPU : 0 is big, 1 is little; always returns 1 */
+unsigned int x86_endian(void);
+
+/* Default address and operand size in bytes */
+unsigned int x86_addr_size(void);
+unsigned int x86_op_size(void);
+
+/* Size of a machine word in bytes */
+unsigned int x86_word_size(void);
+
+/* maximum size of a code instruction */
+#define x86_max_inst_size(x) x86_max_insn_size(x)
+unsigned int x86_max_insn_size(void);
+
+/* register IDs of Stack, Frame, Instruction pointer and Flags register */
+unsigned int x86_sp_reg(void);
+unsigned int x86_fp_reg(void);
+unsigned int x86_ip_reg(void);
+unsigned int x86_flag_reg(void);
+
+/* fill 'reg' struct with details of register 'id' */
+void x86_reg_from_id( unsigned int id, x86_reg_t * reg );
+
+/* convenience macro demonstrating how to get an aliased register; proto is
+ *   void x86_get_aliased_reg( x86_reg_t *alias_reg, x86_reg_t *output_reg )
+ * where 'alias_reg' is a reg operand and 'output_reg' is filled with the
+ * register that the operand is an alias for */
+#define x86_get_aliased_reg( alias_reg, output_reg )			\
+	x86_reg_from_id( alias_reg->alias, output_reg )
+
+
+/* ================================== Invariant Instruction Representation */
+/* Invariant instructions are used for generating binary signatures; 
+ * the instruction is modified so that all variant bytes in an instruction
+ * are replaced with a wildcard byte. 
+ *
+ * A 'variant byte' is one that is expected to be modified by either the 
+ * static or the dynamic linker: for example, an address encoded in an 
+ * instruction. 
+ *
+ * By comparing the invariant representation of one instruction [or of a
+ * sequence of instructions] with the invariant representation of another,
+ * one determine whether the two invariant representations are from the same
+ * relocatable object [.o] file. Thus one can use binary signatures [which
+ * are just sequences of invariant instruction representations] to look for
+ * library routines which have been statically-linked into a binary.
+ *
+ * The invariant routines are faster and smaller than the disassembly
+ * routines; they can be used to determine the size of an instruction 
+ * without all of the overhead of a full instruction disassembly.
+ */
+
+/* This byte is used to replace variant bytes */
+#define X86_WILDCARD_BYTE 0xF4
+
+typedef struct {
+        enum x86_op_type        type;           /* operand type */
+        enum x86_op_datatype    datatype;       /* operand size */
+        enum x86_op_access      access;         /* operand access [RWX] */
+        enum x86_op_flags       flags;          /* misc flags */
+} x86_invariant_op_t;
+
+typedef struct {
+	unsigned char bytes[64];	/* invariant representation */
+	unsigned int  size;		/* number of bytes in insn */
+        enum x86_insn_group group;      /* meta-type, e.g. INS_EXEC */
+        enum x86_insn_type type;        /* type, e.g. INS_BRANCH */
+	x86_invariant_op_t operands[3];	/* operands: dest, src, imm */
+} x86_invariant_t;
+ 
+
+/* return a version of the instruction with the variant bytes masked out */
+size_t x86_invariant_disasm( unsigned char *buf, int buf_len, 
+			  x86_invariant_t *inv );
+/* return the size in bytes of the intruction pointed to by 'buf';
+ * this used x86_invariant_disasm since it faster than x86_disasm */
+size_t x86_size_disasm( unsigned char *buf, unsigned int buf_len );
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
diff --git a/src/third_party/libdisasm/libdisasm.gyp b/src/third_party/libdisasm/libdisasm.gyp
new file mode 100644
index 0000000..5c8dc45
--- /dev/null
+++ b/src/third_party/libdisasm/libdisasm.gyp
@@ -0,0 +1,67 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'libdisasm',
+      'type': 'static_library',
+      'sources': [
+	'ia32_implicit.c',
+	'ia32_implicit.h',
+	'ia32_insn.c',
+	'ia32_insn.h',
+	'ia32_invariant.c',
+	'ia32_invariant.h',
+	'ia32_modrm.c',
+	'ia32_modrm.h',
+	'ia32_opcode_tables.c',
+	'ia32_opcode_tables.h',
+	'ia32_operand.c',
+	'ia32_operand.h',
+	'ia32_reg.c',
+	'ia32_reg.h',
+	'ia32_settings.c',
+	'ia32_settings.h',
+	'libdis.h',
+	'qword.h',
+	'x86_disasm.c',
+	'x86_format.c',
+	'x86_imm.c',
+	'x86_imm.h',
+	'x86_insn.c',
+	'x86_misc.c',
+	'x86_operand_list.c',
+	'x86_operand_list.h',
+      ],
+    },
+  ],
+}
diff --git a/src/third_party/libdisasm/qword.h b/src/third_party/libdisasm/qword.h
new file mode 100644
index 0000000..5f0e803
--- /dev/null
+++ b/src/third_party/libdisasm/qword.h
@@ -0,0 +1,14 @@
+#ifndef LIBDISASM_QWORD_H
+#define LIBDISASM_QWORD_H
+
+#include <stdint.h>
+
+/* platform independent data types */
+
+#ifdef _MSC_VER
+	typedef __int64         qword_t;
+#else
+	typedef int64_t         qword_t;
+#endif
+
+#endif
diff --git a/src/third_party/libdisasm/swig/Makefile b/src/third_party/libdisasm/swig/Makefile
new file mode 100644
index 0000000..44ef486
--- /dev/null
+++ b/src/third_party/libdisasm/swig/Makefile
@@ -0,0 +1,70 @@
+# change these values if you need to
+SWIG		=	swig	# apt-get install swig !
+GCC		=	gcc
+
+CC_FLAGS	=	-c -fPIC
+LD_FLAGS	=	-shared -L../.. -ldisasm
+
+BASE_NAME	=	x86disasm
+
+export INTERFACE_FILE BASE_NAME SWIG GCC CC_FLAGS LD_FLAGS
+
+#====================================================
+# TARGETS
+
+all: swig
+dummy: swig swig-python swig-ruby swig-perl swig-tcl install uninstall clean
+
+swig: swig-python swig-perl
+# swig-rub swig-tcl
+
+swig-python: 
+	cd python && make -f Makefile-swig
+
+swig-ruby:
+	cd ruby && make -f Makefile-swig
+
+swig-perl:
+	cd perl && make -f Makefile-swig
+
+swig-tcl:
+	cd tcl && make -f Makefile-swig
+
+# ==================================================================
+install: install-python install-perl
+# install-ruby install-tcl
+
+install-python:
+	cd python && sudo make -f Makefile-swig install
+
+install-ruby:
+	cd ruby && sudo make -f Makefile-swig install
+
+install-perl:
+	cd perl && sudo make -f Makefile-swig install
+
+install-tcl:
+	cd tcl && sudo make -f Makefile-swig install
+
+# ==================================================================
+uninstall: uninstall-python
+#uninstall-ruby uninstall-perl uninstall-tcl
+
+uninstall-python:
+	cd python && sudo make -f Makefile-swig uninstall
+
+uninstall-ruby:
+	cd ruby && sudo make -f Makefile-swig uninstall
+
+uninstall-perl:
+	cd perl && sudo make -f Makefile-swig uninstall
+
+uninstall-tcl:
+	cd tcl && sudo make -f Makefile-swig uninstall
+
+# ==================================================================
+clean:
+	cd python && make -f Makefile-swig clean
+	cd ruby && make -f Makefile-swig clean
+	cd perl && make -f Makefile-swig clean
+	cd tcl && make -f Makefile-swig clean
diff --git a/src/third_party/libdisasm/swig/README b/src/third_party/libdisasm/swig/README
new file mode 100644
index 0000000..a9fa79e
--- /dev/null
+++ b/src/third_party/libdisasm/swig/README
@@ -0,0 +1,128 @@
+			Libdisasm SWIG README
+
+The SWIG utility (www.swig.org) can be used to generate 
+
+
+Building SWIG Modules
+---------------------
+
+	make
+	make install
+
+Make and Install both build Python, Perl, Ruby, and Tcl modules. If you
+do not have one of these languages installed, comment out the relevant
+target in the main Makefile.
+
+Install uses 'sudo' to put files in the correct locations; if you
+do not have sudo installed, change the install targets.
+
+The Module API
+--------------
+
+The OOP API
+-----------
+
+
+The Python Module
+-----------------
+
+To test that the module loads:
+
+	bash# python
+	>>> import x86disasm
+	>>> x86disasm.version_string()
+	'0.21-pre'
+	>>>^D
+	bash#
+
+	>>> import x86disasm
+	>>> import array
+	>>> disasm = x86disasm.X86_Disasm( )
+	>>> tgt = open( "/tmp/a.out", "rb" )
+	>>> tgt.seek( 0, 2 )
+	>>> size = tgt.tell()
+	>>> tgt.seek( 0, 0 )
+	>>> buf = array.array( 'B' )
+	>>> buf.fromfile( tgt, size )
+	>>> tgt.close()
+	>>> data = x86disasm.byteArray( size )
+	>>> for i in range( size ):
+	...     data[i] = buf.pop(0)
+	...
+	>>> del buf
+	>>> del tgt
+	>>> insn = disasm.disasm( data, size - 1, 0, 0 )
+	>>> insn.format( x86disasm.att_syntax )
+	 'jg\t0x00000047'
+	>>> insn.format( x86disasm.raw_syntax )
+	'0x00000000|0x00000000|2|7F 45 |||controlflow|jcc|jg|80386|General Purpose|||zero_clear sign_eq_oflow |0|0|relative|sbyte|00000047|'
+	>>> ops = insn.operand_list()
+	>>> node = ops.first()
+	>>> while node is not None:
+	...     s = node.op.format(x86disasm.raw_syntax)
+	...     print s
+	...     node = ops.next()
+	... 
+	relative|sbyte|00000047|
+
+
+
+
+
+
+The Perl Module
+---------------
+
+To test that the module loads:
+
+	bash# perl
+	use x86disasm;
+	print x86disasm::version_string() . "\n";
+	^D
+	0.21-pre
+	bash#
+
+The Ruby Module
+---------------
+
+To test that the module loads:
+
+	bash# irb
+	irb(main):001:0> require 'x86disasm'
+	=> true
+	irb(main):002:0> X86disasm.version_string()
+	=> "0.21-pre"
+	irb(main):003:0> x = X86disasm::X86_Disasm.new
+	=> #<X86disasm::X86_Disasm:0xb7d624a4>
+	irb(main):004:0> x.max_register_string()
+	=> 8
+	irb(main):003:0> ^D
+	bash#
+
+The Tcl Module
+---------------
+
+To test that the module loads:
+
+	bash# tclsh
+	% load /usr/lib/tcl8.3/x86disasm.so X86disasm
+	% version_string
+	0.21-pre
+	% ^D
+	bash#
+
+	% x86_init 0 NULL NULL
+		OR
+	% x86disasm dis
+	_486b0708_p_x86disasm
+	%  puts "[dis cget -last_error]"
+	0
+
+
+
+
+The Interface Files
+-------------------
+
+	libdisasm.i	-- interface file without shadow classes
+	libdisasm_oop.i	-- interface file with shadow classes
diff --git a/src/third_party/libdisasm/swig/libdisasm.i b/src/third_party/libdisasm/swig/libdisasm.i
new file mode 100644
index 0000000..ec12041
--- /dev/null
+++ b/src/third_party/libdisasm/swig/libdisasm.i
@@ -0,0 +1,508 @@
+%module x86disasm
+%{
+#include "../../libdis.h"
+#include "../../../config.h"
+%}
+
+%rename(version_string) x86_version_string;
+%include "../../libdis.h"
+#include "../../../config.h"
+
+%inline %{
+	const char * x86_version_string( void ) {
+		return PACKAGE_VERSION;
+	}
+%}
+
+%rename(report_codes) x86_report_codes;
+%rename(report_error) x86_report_error;
+%rename(options) x86_options;
+%rename(init) x86_init;
+%rename(set_reporter) x86_set_reporter;
+%rename(set_options) x86_set_options;
+%rename(options) x86_get_options;
+%rename(cleanup) x86_cleanup;
+%rename(reg_type) x86_reg_type;
+%rename(reg) x86_reg_t;
+%rename(eaddr) x86_ea_t;
+%rename(op_type) x86_op_type;
+%rename(optype_is_address) x86_optype_is_address;
+%rename(optype_is_relative) x86_optype_is_relative;
+%rename(op_datatype) x86_op_datatype;
+%rename(op_access) x86_op_access;
+%rename(op_flags) x86_op_flags;
+%rename(operand) x86_op_t;
+%rename(insn_group) x86_insn_group; 
+%rename(insn_type) x86_insn_type;
+%rename(insn_note) x86_insn_note ;
+%rename(flag_status) x86_flag_status; 
+%rename(insn_cpu) x86_insn_cpu ;
+%rename(insn_isa) x86_insn_isa ;
+%rename(insn_prefix) x86_insn_prefix ;
+%rename(insn) x86_insn_t;
+%rename(insn_is_valid) x86_insn_is_valid;
+%rename(i_disasm) x86_disasm;
+%rename(i_disasm_range) x86_disasm_range;
+%rename(i_disasm_forward) x86_disasm_forward;
+%rename(insn_operand_count) x86_operand_count;
+%rename(insn_operand_1st) x86_operand_1st;
+%rename(insn_operand_2nd) x86_operand_2nd;
+%rename(insn_operand_3rd) x86_operand_3rd;
+%rename(insn_dest_operand) x86_get_dest_operand;
+%rename(insn_src_operand) x86_get_src_operand;
+%rename(insn_imm_operand) x86_get_imm_operand;
+%rename(operand_size) x86_operand_size;
+%rename(insn_rel_offset) x86_get_rel_offset;
+%rename(insn_branch_target) x86_get_branch_target;
+%rename(insn_imm) x86_get_imm;
+%rename(insn_raw_imm) x86_get_raw_imm;
+%rename(insn_set_addr) x86_set_insn_addr;
+%rename(insn_set_offset) x86_set_insn_offset;
+%rename(insn_set_function) x86_set_insn_function;
+%rename(insn_set_block) x86_set_insn_block;
+%rename(insn_tag) x86_tag_insn;
+%rename(insn_untag) x86_untag_insn;
+%rename(insn_is_tagged) x86_insn_is_tagged;
+%rename(asm_format) x86_asm_format;
+%rename(operand_format) x86_format_operand;
+%rename(insn_format_mnemonic) x86_format_mnemonic;
+%rename(insn_format) x86_format_insn;
+%rename(header_format) x86_format_header;
+%rename(endian) x86_endian;
+%rename(size_default_address) x86_addr_size;
+%rename(size_default_operand) x86_op_size;
+%rename(size_machine_word) x86_word_size;
+%rename(size_max_insn) x86_max_insn_size;
+%rename(reg_sp) x86_sp_reg;
+%rename(reg_fp) x86_fp_reg;
+%rename(reg_ip) x86_ip_reg;
+%rename(reg_from_id) x86_reg_from_id;
+%rename(reg_from_alias) x86_get_aliased_reg;
+%rename(invariant_op) x86_invariant_op_t;
+%rename(invariant) x86_invariant_t;
+%rename(disasm_invariant) x86_invariant_disasm;
+%rename(disasm_size) x86_size_disasm;
+
+%include "carrays.i"
+
+%array_class( unsigned char, byteArray );
+
+
+%apply (unsigned char *STRING, int LENGTH) { 
+	(unsigned char *buf, size_t buf_len) 
+};
+
+
+%newobject x86_op_copy;
+%inline %{
+	x86_op_t * x86_op_copy( x86_op_t * src ) {
+		x86_op_t *op;
+		
+		if (! src ) {
+			return NULL;
+		}
+
+		op = (x86_op_t *) calloc( sizeof(x86_op_t), 1 );
+		if ( op ) {
+			memcpy( op, src, sizeof(x86_op_t) );
+		}
+
+		return op;
+	}
+
+	typedef struct x86_op_list_node {
+		x86_op_t *op;
+		struct x86_op_list_node *next, *prev;
+	} x86_op_list_node;
+
+	typedef struct x86_op_list {
+		size_t count;
+		x86_op_list_node *head, *tail, *curr;
+	} x86_op_list;
+
+	x86_op_list * x86_op_list_new () {
+		x86_op_list *list = (x86_op_list *) 
+				calloc( sizeof(x86_op_list), 1 );
+		list->count = 0;
+		return list;
+	}
+
+	void x86_op_list_free(x86_op_list *list) {
+		x86_op_list_node *node, *next;
+
+		node = list->head;
+		while ( node ) {
+			next = node->next;
+			/* free( node->insn ); */
+			free( node );
+			node = next;
+		}
+
+		free( list );
+	}
+
+	x86_op_list_node * x86_op_list_first(x86_op_list *list) { 
+		return list->head; 
+	}
+
+	x86_op_list_node * x86_op_list_last(x86_op_list *list) { 
+		return list->tail; 
+	}
+
+	x86_op_list_node * x86_op_list_next(x86_op_list *list) { 
+		if (! list->curr ) {
+			list->curr = list->head;
+			return list->head;
+		}
+
+		list->curr = list->curr->next;
+		return list->curr;
+	}
+
+	x86_op_list_node * x86_op_list_prev(x86_op_list *list) { 
+		if (! list->curr ) {
+			list->curr = list->tail;
+			return list->tail;
+		}
+
+		list->curr = list->curr->prev;
+		return list->curr;
+	}
+
+%}
+
+%newobject x86_op_list_append;
+
+%inline %{
+	void x86_op_list_append( x86_op_list * list, x86_op_t *op ) {
+		x86_op_list_node *node = (x86_op_list_node *)
+					calloc( sizeof(x86_op_list_node) , 1 );
+		if (! node ) {
+			return;
+		}
+
+		list->count++;
+		if ( ! list->tail ) {
+			list->head = list->tail = node;
+		} else {
+			list->tail->next = node;
+			node->prev = list->tail;
+			list->tail = node;
+		}
+
+		node->op = x86_op_copy( op );
+	}
+
+	x86_oplist_t * x86_op_list_node_copy( x86_oplist_t * list ) {
+		x86_oplist_t *ptr;
+		ptr = (x86_oplist_t *) calloc( sizeof(x86_oplist_t), 1 );
+		if ( ptr ) {
+			memcpy( &ptr->op, &list->op, sizeof(x86_op_t) );
+		}
+
+		return ptr;
+	}
+
+	x86_insn_t * x86_insn_new() {
+		x86_insn_t *insn = (x86_insn_t *)
+				   calloc( sizeof(x86_insn_t), 1 );
+		return insn;
+	}
+
+	void x86_insn_free( x86_insn_t *insn ) {
+		x86_oplist_free( insn );
+		free( insn );
+	}
+%}
+
+%newobject x86_insn_copy;
+
+%inline %{
+	x86_insn_t * x86_insn_copy( x86_insn_t *src) {
+		x86_oplist_t *ptr, *list, *last = NULL;
+		x86_insn_t *insn = (x86_insn_t *)
+				   calloc( sizeof(x86_insn_t), 1 );
+
+		if ( insn ) {
+			memcpy( insn, src, sizeof(x86_insn_t) );
+			insn->operands = NULL;
+			insn->block = NULL;
+			insn->function = NULL;
+
+			/* copy operand list */
+			for ( list = src->operands; list; list = list->next ) {
+				ptr = x86_op_list_node_copy( list );
+
+				if (! ptr ) {
+					continue;
+				}
+
+				if ( insn->operands ) {
+					last->next = ptr;
+				} else {
+					insn->operands = ptr;
+				}
+				last = ptr;
+			}
+		}
+
+		return insn;
+	}
+
+	x86_op_list * x86_insn_op_list( x86_insn_t *insn ) {
+		x86_oplist_t *list = insn->operands;
+		x86_op_list *op_list = x86_op_list_new();
+
+		for ( list = insn->operands; list; list = list->next ) {
+			x86_op_list_append( op_list, &list->op );
+		}
+
+		return op_list;
+	}
+
+	typedef struct x86_insn_list_node {
+		x86_insn_t *insn;
+		struct x86_insn_list_node *next, *prev;
+	} x86_insn_list_node;
+
+	typedef struct x86_insn_list {
+		size_t count;
+		x86_insn_list_node *head, *tail, *curr;
+	} x86_insn_list;
+
+%}
+
+%newobject x86_insn_list_new;
+
+%inline %{
+	x86_insn_list * x86_insn_list_new () {
+		x86_insn_list *list = (x86_insn_list *) 
+				calloc( sizeof(x86_insn_list), 1 );
+		list->count = 0;
+		return list;
+	}
+
+	void x86_insn_list_free( x86_insn_list * list ) {
+		x86_insn_list_node *node, *next;
+
+		if (! list ) {
+			return;
+		}
+
+		node = list->head;
+		while ( node ) {
+			next = node->next;
+			/* free( node->insn ); */
+			free( node );
+			node = next;
+		}
+
+		free( list );
+	}
+
+	x86_insn_list_node * x86_insn_list_first( x86_insn_list *list ) { 
+		if (! list ) {
+			return NULL;
+		}
+		return list->head; 
+	}
+
+	x86_insn_list_node * x86_insn_list_last( x86_insn_list *list ) { 
+		if (! list ) {
+			return NULL;
+		}
+		return list->tail; 
+	}
+
+	x86_insn_list_node * x86_insn_list_next( x86_insn_list *list ) { 
+		if (! list ) {
+			return NULL;
+		}
+		if (! list->curr ) {
+			list->curr = list->head;
+			return list->head;
+		}
+
+		list->curr = list->curr->next;
+		return list->curr;
+	}
+
+	x86_insn_list_node * x86_insn_list_prev( x86_insn_list *list ) { 
+		if (! list ) {
+			return NULL;
+		}
+		if (! list->curr ) {
+			list->curr = list->tail;
+			return list->tail;
+		}
+
+		list->curr = list->curr->prev;
+		return list->curr;
+	}
+
+%}
+
+%newobject x86_insn_list_append;
+
+%inline %{
+	void x86_insn_list_append( x86_insn_list *list, x86_insn_t *insn ) {
+		x86_insn_list_node *node;
+		if (! list ) {
+			return;
+		}
+
+		node = (x86_insn_list_node *)
+					calloc( sizeof(x86_insn_list_node) , 1 );
+
+		if (! node ) {
+			return;
+		}
+
+		list->count++;
+		if ( ! list->tail ) {
+			list->head = list->tail = node;
+		} else {
+			list->tail->next = node;
+			node->prev = list->tail;
+			list->tail = node;
+		}
+
+		node->insn = x86_insn_copy( insn );
+	}
+
+	typedef struct {
+		enum x86_report_codes last_error;
+		void * last_error_data;
+		void * disasm_callback;
+		void * disasm_resolver;
+	} x86disasm;
+
+	void x86_default_reporter( enum x86_report_codes code, 
+				   void *data, void *arg ) {
+		x86disasm *dis = (x86disasm *) arg;
+		if ( dis ) {
+			dis->last_error = code;
+			dis->last_error_data = data;
+		}
+	}
+
+	void x86_default_callback( x86_insn_t *insn, void *arg ) {
+		x86_insn_list *list = (x86_insn_list *) arg;
+		if ( list ) {
+			x86_insn_list_append( list, insn );
+		}
+	}
+
+	/* TODO: resolver stack, maybe a callback */
+	long x86_default_resolver( x86_op_t *op, x86_insn_t *insn, void *arg ) {
+		x86disasm *dis = (x86disasm *) arg;
+		if ( dis ) {
+			//return dis->resolver( op, insn );
+			return 0;
+		}
+
+		return 0;
+	}
+
+	
+%}
+
+%newobject x86disasm_new;
+
+%inline %{
+	x86disasm * x86disasm_new ( enum x86_options options ) {
+		x86disasm * dis = (x86disasm *)
+				calloc( sizeof( x86disasm ), 1 );
+		x86_init( options, x86_default_reporter, dis );
+		return dis;
+	}
+
+	void x86disasm_free( x86disasm * dis ) {
+		x86_cleanup();
+		free( dis );
+	}
+%}
+
+%newobject x86_disasm;
+
+%inline %{
+	x86_insn_t * disasm( unsigned char *buf, size_t buf_len, 
+		           unsigned long buf_rva, unsigned int offset ) {
+		x86_insn_t *insn = calloc( sizeof( x86_insn_t ), 1 );
+		x86_disasm( buf, buf_len, buf_rva, offset, insn );
+		return insn;
+	}
+
+	int disasm_range( unsigned char *buf, size_t buf_len, 
+	              unsigned long buf_rva, unsigned int offset,
+		      unsigned int len ) {
+
+		x86_insn_list *list = x86_insn_list_new();
+
+		if ( len > buf_len ) {
+			len = buf_len;
+		}
+
+		return x86_disasm_range( buf, buf_rva, offset, len, 
+				x86_default_callback, list );
+	}
+
+	int disasm_forward( unsigned char *buf, size_t buf_len,
+			    unsigned long buf_rva, unsigned int offset ) {
+		x86_insn_list *list = x86_insn_list_new();
+
+		/* use default resolver: damn SWIG callbacks! */
+		return x86_disasm_forward( buf, buf_len, buf_rva, offset,
+			                   x86_default_callback, list, 
+					   x86_default_resolver, NULL );
+	}
+
+	size_t disasm_invariant( unsigned char *buf, size_t buf_len, 
+			  x86_invariant_t *inv ) {
+		return x86_invariant_disasm( buf, buf_len, inv );
+	}
+
+	size_t disasm_size( unsigned char *buf, size_t buf_len ) {
+		return x86_size_disasm( buf, buf_len );
+	}
+
+	int x86_max_operand_string( enum x86_asm_format format ) {
+		switch ( format ) {
+			case xml_syntax:
+				return  MAX_OP_XML_STRING;
+				break;
+			case raw_syntax:
+				return MAX_OP_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				return MAX_OP_STRING;
+				break;
+		}
+	}
+
+
+	int x86_max_insn_string( enum x86_asm_format format ) {
+		switch ( format ) {
+			case xml_syntax:
+				return  MAX_INSN_XML_STRING;
+				break;
+			case raw_syntax:
+				return MAX_INSN_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				return MAX_INSN_STRING;
+				break;
+		}
+	}
+
+	int x86_max_num_operands( ) { return MAX_NUM_OPERANDS; }
+%}
+
diff --git a/src/third_party/libdisasm/swig/libdisasm_oop.i b/src/third_party/libdisasm/swig/libdisasm_oop.i
new file mode 100644
index 0000000..973a47e
--- /dev/null
+++ b/src/third_party/libdisasm/swig/libdisasm_oop.i
@@ -0,0 +1,1114 @@
+%module x86disasm
+%{
+#ifdef _MSC_VER
+	typedef __int64         qword;
+#else
+	typedef long long       qword;
+#endif
+
+#include <sys/types.h>
+
+#define MAX_REGNAME 8
+#define MAX_PREFIX_STR 32
+#define MAX_MNEM_STR 16
+#define MAX_INSN_SIZE 20
+#define MAX_OP_STRING 32
+#define MAX_OP_RAW_STRING 64
+#define MAX_OP_XML_STRING 256
+#define MAX_NUM_OPERANDS 8
+#define MAX_INSN_STRING 512
+#define MAX_INSN_RAW_STRING 1024
+#define MAX_INSN_XML_STRING 4096
+
+#include "../../../config.h"
+
+
+const char * version_string( void ) {
+	return PACKAGE_VERSION;
+}
+
+%}
+
+const char * version_string( void );
+
+%rename(X86_Register) x86_reg_t;
+%rename(X86_EAddr) x86_ea_t;
+%rename(X86_Operand) x86_op_t;
+//%rename(X86_OpList) x86_oplist_t;
+%rename(X86_Insn) x86_insn_t;
+%rename(X86_InvOperand) x86_invariant_op_t;
+%rename(X86_Invariant) x86_invariant_t;
+
+%include "carrays.i"
+
+%array_class( unsigned char, byteArray );
+
+
+%apply (unsigned char *STRING, int LENGTH) { 
+	(unsigned char *buf, size_t buf_len) 
+};
+
+
+%inline %{
+
+
+enum x86_asm_format { 
+	unknown_syntax = 0,		/* never use! */
+	native_syntax, 			/* header: 35 bytes */
+	intel_syntax, 			/* header: 23 bytes */
+	att_syntax,  			/* header: 23 bytes */
+	xml_syntax,			/* header: 679 bytes */
+	raw_syntax			/* header: 172 bytes */
+};
+%}
+
+/* ================================================================== */
+/* operand class */
+%inline %{
+	enum x86_reg_type {
+	        reg_gen         = 0x00001, reg_in          = 0x00002,
+	        reg_out         = 0x00004, reg_local       = 0x00008,
+	        reg_fpu         = 0x00010, reg_seg         = 0x00020,
+	        reg_simd        = 0x00040, reg_sys         = 0x00080,
+	        reg_sp          = 0x00100, reg_fp          = 0x00200,
+	        reg_pc          = 0x00400, reg_retaddr     = 0x00800,
+	        reg_cond        = 0x01000, reg_zero        = 0x02000,
+	        reg_ret         = 0x04000, reg_src         = 0x10000,
+	        reg_dest        = 0x20000, reg_count       = 0x40000
+	};
+
+	typedef struct {
+       	 	char name[MAX_REGNAME];
+	        enum x86_reg_type type;
+	        unsigned int size;
+	        unsigned int id;
+		unsigned int alias;
+		unsigned int shift;
+	} x86_reg_t;
+
+	void x86_reg_from_id( unsigned int id, x86_reg_t * reg );
+
+	typedef struct {
+	        unsigned int     scale;
+	        x86_reg_t        index, base;
+	        long             disp;
+	        char             disp_sign;
+	        char             disp_size;
+	} x86_ea_t;
+
+	enum x86_op_type {
+	        op_unused = 0,
+	        op_register = 1,
+	        op_immediate = 2,
+	        op_relative_near = 3,
+	        op_relative_far = 4,
+	        op_absolute = 5, 
+	        op_expression = 6,
+	        op_offset = 7,
+	        op_unknown
+	};
+
+	enum x86_op_datatype {
+	       	op_byte = 1, op_word = 2,
+	        op_dword = 3, op_qword = 4,
+	        op_dqword = 5, op_sreal = 6,
+	        op_dreal = 7, op_extreal = 8,
+	        op_bcd = 9,  op_ssimd = 10,
+	        op_dsimd = 11, op_sssimd = 12,
+	        op_sdsimd = 13, op_descr32 = 14,
+		op_descr16 = 15, op_pdescr32 = 16,
+		op_pdescr16 = 17, op_fpuenv = 18,
+		op_fpregset = 19,
+	};
+
+	enum x86_op_access {
+	        op_read = 1,
+	        op_write = 2,
+	        op_execute = 4
+	};
+
+	enum x86_op_flags {
+	        op_signed = 1, op_string = 2, 
+	        op_constant = 4, op_pointer = 8,  
+		op_sysref = 0x010, op_implied = 0x020,
+		op_hardcode = 0x40, op_es_seg = 0x100,
+	        op_cs_seg = 0x200, op_ss_seg = 0x300,
+	        op_ds_seg = 0x400, op_fs_seg = 0x500,
+	        op_gs_seg = 0x600
+	};
+
+	typedef struct {
+	        enum x86_op_type        type;
+	        enum x86_op_datatype    datatype;
+	        enum x86_op_access      access;
+	        enum x86_op_flags       flags;
+	        union {
+	                char            sbyte;
+	                short           sword;
+	                long            sdword;
+	                qword           sqword;
+	                unsigned char   byte;
+	       	         unsigned short  word;
+	                unsigned long   dword;
+	                qword           qword;
+	                float           sreal;
+	                double          dreal;
+	                unsigned char   extreal[10];
+	                unsigned char   bcd[10];
+	                qword           dqword[2];
+	                unsigned char   simd[16];
+	                unsigned char   fpuenv[28];
+	                void            * address;
+	                unsigned long   offset;
+	                x86_reg_t       reg;
+	                char            relative_near;
+	       	         long            relative_far;
+       	         	x86_ea_t        expression;
+        	} data;
+		void * insn;
+	} x86_op_t;
+
+	unsigned int x86_operand_size( x86_op_t *op );
+
+	int x86_format_operand(x86_op_t *op, char *buf, int len,
+        	          enum x86_asm_format format);
+%}
+
+%extend x86_reg_t{
+	x86_reg_t * aliased_reg( ) {
+		x86_reg_t * reg = (x86_reg_t * )
+				  calloc( sizeof(x86_reg_t), 1 );
+		x86_reg_from_id( self->id, reg );
+		return reg;
+	}
+}
+
+%extend x86_op_t{
+	size_t size() {
+		return x86_operand_size( self );
+	}
+	char * format( enum x86_asm_format format ) {
+		char *buf, *str;
+		size_t len;
+
+		switch ( format ) {
+			case xml_syntax:
+				len = MAX_OP_XML_STRING;
+				break;
+			case raw_syntax:
+				len = MAX_OP_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				len = MAX_OP_STRING;
+				break;
+		}
+
+		buf = (char * ) calloc( len + 1, 1 );
+		x86_format_operand( self, buf, len, format );
+
+		/* drop buffer down to a reasonable size */
+		str = strdup( buf );
+		free(buf);
+		return str;
+	}
+	
+	int is_address( ) {
+		if ( self->type == op_absolute ||
+		     self->type == op_offset ) {
+		     return 1;
+		}
+
+		return 0;
+	}
+
+	int is_relative( ) {
+		if ( self->type == op_relative_near ||
+		     self->type == op_relative_far ) {
+		     return 1;
+		}
+
+		return 0;
+	}
+
+	%newobject copy;
+	x86_op_t * copy() {
+		x86_op_t *op = (x86_op_t *) calloc( sizeof(x86_op_t), 1 );
+
+		if ( op ) {
+			memcpy( op, self, sizeof(x86_op_t) );
+		}
+
+		return op;
+	}
+}
+
+/* ================================================================== */
+/* operand list class */
+%inline %{
+	typedef struct X86_OpListNode {
+		x86_op_t *op;
+		struct X86_OpListNode *next, *prev;
+	} X86_OpListNode;
+
+	typedef struct X86_OpList {
+		size_t count;
+		X86_OpListNode *head, *tail, *curr;
+	} X86_OpList;
+%}
+
+%extend X86_OpList {
+	X86_OpList () {
+		X86_OpList *list = (X86_OpList *) 
+				calloc( sizeof(X86_OpList), 1 );
+		list->count = 0;
+		return list;
+	}
+
+	~X86_OpList() {
+		X86_OpListNode *node, *next;
+
+		node = self->head;
+		while ( node ) {
+			next = node->next;
+			/* free( node->insn ); */
+			free( node );
+			node = next;
+		}
+
+		free( self );
+	}
+
+	X86_OpListNode * first() { 
+		self->curr = self->head;
+		return self->head; 
+	}
+
+	X86_OpListNode * last() { 
+		self->curr = self->tail;
+		return self->tail; 
+	}
+
+	X86_OpListNode * next() { 
+		if (! self->curr ) {
+			self->curr = self->head;
+			return self->head;
+		}
+
+		self->curr = self->curr->next;
+		return self->curr;
+	}
+
+	X86_OpListNode * prev() { 
+		if (! self->curr ) {
+			self->curr = self->tail;
+			return self->tail;
+		}
+
+		self->curr = self->curr->prev;
+		return self->curr;
+	}
+
+	%newobject append;
+	void append( x86_op_t *op ) {
+		X86_OpListNode *node = (X86_OpListNode *)
+					calloc( sizeof(X86_OpListNode) , 1 );
+		if (! node ) {
+			return;
+		}
+
+		self->count++;
+		if ( ! self->tail ) {
+			self->head = self->tail = node;
+		} else {
+			self->tail->next = node;
+			node->prev = self->tail;
+			self->tail = node;
+		}
+
+		node->op = x86_op_t_copy( op );
+	}
+}
+
+%inline %{
+	typedef struct x86_operand_list {
+		x86_op_t op;
+		struct x86_operand_list *next;
+	} x86_oplist_t;
+%}
+
+%extend x86_oplist_t {
+	%newobject x86_oplist_node_copy;
+}
+
+/* ================================================================== */
+/* instruction class */
+%inline %{
+	x86_oplist_t * x86_oplist_node_copy( x86_oplist_t * list ) {
+		x86_oplist_t *ptr;
+		ptr = (x86_oplist_t *) calloc( sizeof(x86_oplist_t), 1 );
+		if ( ptr ) {
+			memcpy( &ptr->op, &list->op, sizeof(x86_op_t) );
+		}
+
+		return ptr;
+	}
+
+	enum x86_insn_group {
+		insn_none = 0, insn_controlflow = 1,
+	        insn_arithmetic = 2, insn_logic = 3,
+	        insn_stack = 4, insn_comparison = 5,
+	        insn_move = 6, insn_string = 7,
+	        insn_bit_manip = 8, insn_flag_manip = 9,
+	        insn_fpu = 10, insn_interrupt = 13,
+	        insn_system = 14, insn_other = 15
+	};
+
+	enum x86_insn_type {
+		insn_invalid = 0, insn_jmp = 0x1001,
+	        insn_jcc = 0x1002, insn_call = 0x1003,
+	        insn_callcc = 0x1004, insn_return = 0x1005,
+	        insn_add = 0x2001, insn_sub = 0x2002,
+	        insn_mul = 0x2003, insn_div = 0x2004,
+	        insn_inc = 0x2005, insn_dec = 0x2006,
+	        insn_shl = 0x2007, insn_shr = 0x2008,
+	        insn_rol = 0x2009, insn_ror = 0x200A,
+	        insn_and = 0x3001, insn_or = 0x3002,
+	        insn_xor = 0x3003, insn_not = 0x3004,
+	        insn_neg = 0x3005, insn_push = 0x4001,
+	        insn_pop = 0x4002, insn_pushregs = 0x4003,
+	        insn_popregs = 0x4004, insn_pushflags = 0x4005,
+	        insn_popflags = 0x4006, insn_enter = 0x4007,
+	        insn_leave = 0x4008, insn_test = 0x5001,
+	        insn_cmp = 0x5002, insn_mov = 0x6001,
+	        insn_movcc = 0x6002, insn_xchg = 0x6003,
+	        insn_xchgcc = 0x6004, insn_strcmp = 0x7001,
+	        insn_strload = 0x7002, insn_strmov = 0x7003,
+	        insn_strstore = 0x7004, insn_translate = 0x7005,
+	        insn_bittest = 0x8001, insn_bitset = 0x8002,
+	        insn_bitclear = 0x8003, insn_clear_carry = 0x9001,
+	        insn_clear_zero = 0x9002, insn_clear_oflow = 0x9003,
+	        insn_clear_dir = 0x9004, insn_clear_sign = 0x9005,
+	        insn_clear_parity = 0x9006, insn_set_carry = 0x9007,
+	        insn_set_zero = 0x9008, insn_set_oflow = 0x9009,
+	        insn_set_dir = 0x900A, insn_set_sign = 0x900B,
+	        insn_set_parity = 0x900C, insn_tog_carry = 0x9010,
+	        insn_tog_zero = 0x9020, insn_tog_oflow = 0x9030,
+	        insn_tog_dir = 0x9040, insn_tog_sign = 0x9050,
+	        insn_tog_parity = 0x9060, insn_fmov = 0xA001,
+	        insn_fmovcc = 0xA002, insn_fneg = 0xA003,
+	       	insn_fabs = 0xA004, insn_fadd = 0xA005,
+	        insn_fsub = 0xA006, insn_fmul = 0xA007,
+	        insn_fdiv = 0xA008, insn_fsqrt = 0xA009,
+	        insn_fcmp = 0xA00A, insn_fcos = 0xA00C,
+	        insn_fldpi = 0xA00D, insn_fldz = 0xA00E,
+	        insn_ftan = 0xA00F, insn_fsine = 0xA010,
+	        insn_fsys = 0xA020, insn_int = 0xD001,
+	        insn_intcc = 0xD002,   insn_iret = 0xD003,
+	        insn_bound = 0xD004, insn_debug = 0xD005,
+	        insn_trace = 0xD006, insn_invalid_op = 0xD007,
+	        insn_oflow = 0xD008, insn_halt = 0xE001,
+	        insn_in = 0xE002, insn_out = 0xE003, 
+	        insn_cpuid = 0xE004, insn_nop = 0xF001,
+	        insn_bcdconv = 0xF002, insn_szconv = 0xF003 
+	};
+
+	enum x86_insn_note {
+		insn_note_ring0		= 1,
+		insn_note_smm		= 2,
+		insn_note_serial	= 4
+	};
+
+	enum x86_flag_status {
+	        insn_carry_set = 0x1,
+	        insn_zero_set = 0x2,
+	        insn_oflow_set = 0x4,
+	        insn_dir_set = 0x8,
+	        insn_sign_set = 0x10,
+	        insn_parity_set = 0x20,	
+	        insn_carry_or_zero_set = 0x40,
+	        insn_zero_set_or_sign_ne_oflow = 0x80,
+	        insn_carry_clear = 0x100,
+	        insn_zero_clear = 0x200,
+	        insn_oflow_clear = 0x400,
+	        insn_dir_clear = 0x800,
+	        insn_sign_clear = 0x1000,
+	        insn_parity_clear = 0x2000,
+	        insn_sign_eq_oflow = 0x4000,
+	        insn_sign_ne_oflow = 0x8000
+	};
+
+	enum x86_insn_cpu {
+		cpu_8086 	= 1, cpu_80286	= 2,
+		cpu_80386	= 3, cpu_80387	= 4,
+		cpu_80486	= 5, cpu_pentium	= 6,
+		cpu_pentiumpro	= 7, cpu_pentium2	= 8,
+		cpu_pentium3	= 9, cpu_pentium4	= 10,
+		cpu_k6		= 16, cpu_k7		= 32,
+		cpu_athlon	= 48
+	};
+
+	enum x86_insn_isa {
+		isa_gp		= 1, isa_fp		= 2,
+		isa_fpumgt	= 3, isa_mmx		= 4,
+		isa_sse1	= 5, isa_sse2	= 6,
+		isa_sse3	= 7, isa_3dnow	= 8,
+		isa_sys		= 9	
+	};
+	
+	enum x86_insn_prefix {
+	        insn_no_prefix = 0,
+	        insn_rep_zero = 1,
+	        insn_rep_notzero = 2,
+	        insn_lock = 4
+	};
+
+
+	typedef struct {
+        	unsigned long addr;
+	        unsigned long offset;
+	        enum x86_insn_group group;
+	        enum x86_insn_type type;
+		enum x86_insn_note note;
+	        unsigned char bytes[MAX_INSN_SIZE];
+	        unsigned char size;
+		unsigned char addr_size;
+		unsigned char op_size;
+		enum x86_insn_cpu cpu;
+		enum x86_insn_isa isa;
+	        enum x86_flag_status flags_set;
+	        enum x86_flag_status flags_tested;
+		unsigned char stack_mod;
+		long stack_mod_val;
+	        enum x86_insn_prefix prefix;
+	        char prefix_string[MAX_PREFIX_STR];
+	        char mnemonic[MAX_MNEM_STR];
+	        x86_oplist_t *operands;
+		size_t operand_count;
+		size_t explicit_count;
+	        void *block;
+	        void *function;
+	        int tag;
+	} x86_insn_t;
+
+	typedef void (*x86_operand_fn)(x86_op_t *op, x86_insn_t *insn, 
+		      void *arg);
+
+	enum x86_op_foreach_type {
+		op_any 	= 0,
+		op_dest = 1,
+		op_src 	= 2,
+		op_ro 	= 3,
+		op_wo 	= 4,
+		op_xo 	= 5,
+		op_rw 	= 6,
+		op_implicit = 0x10,
+		op_explicit = 0x20
+	};
+
+	size_t x86_operand_count( x86_insn_t *insn, 
+				enum x86_op_foreach_type type );
+	x86_op_t * x86_operand_1st( x86_insn_t *insn );
+	x86_op_t * x86_operand_2nd( x86_insn_t *insn );
+	x86_op_t * x86_operand_3rd( x86_insn_t *insn );
+	long x86_get_rel_offset( x86_insn_t *insn );
+	x86_op_t * x86_get_branch_target( x86_insn_t *insn );
+	x86_op_t * x86_get_imm( x86_insn_t *insn );
+	unsigned char * x86_get_raw_imm( x86_insn_t *insn );
+	void x86_set_insn_addr( x86_insn_t *insn, unsigned long addr );
+	int x86_format_mnemonic(x86_insn_t *insn, char *buf, int len,
+                        enum x86_asm_format format);
+	int x86_format_insn(x86_insn_t *insn, char *buf, int len, 
+				enum x86_asm_format);
+	void x86_oplist_free( x86_insn_t *insn );
+	int x86_insn_is_valid( x86_insn_t *insn );
+%}
+
+%extend x86_insn_t {
+	x86_insn_t() {
+		x86_insn_t *insn = (x86_insn_t *)
+				   calloc( sizeof(x86_insn_t), 1 );
+		return insn;
+	}
+	~x86_insn_t() {
+		x86_oplist_free( self );
+		free( self );
+	}
+
+	int is_valid( ) {
+		return x86_insn_is_valid( self );
+	}
+
+	x86_op_t * operand_1st() {
+		return x86_operand_1st( self );
+	}
+
+	x86_op_t * operand_2nd() {
+		return x86_operand_2nd( self );
+	}
+
+	x86_op_t * operand_3rd() {
+		return x86_operand_3rd( self );
+	}
+
+	x86_op_t * operand_dest() {
+		return x86_operand_1st( self );
+	}
+
+	x86_op_t * operand_src() {
+		return x86_operand_2nd( self );
+	}
+
+	size_t num_operands( enum x86_op_foreach_type type ) {
+		return x86_operand_count( self, type );
+	}
+
+	long rel_offset() {
+		return x86_get_rel_offset( self );
+	}
+
+	x86_op_t * branch_target() {
+		return x86_get_branch_target( self );
+	}
+
+	x86_op_t * imm() {
+		return x86_get_imm( self );
+	}
+
+	unsigned char * raw_imm() {
+		return x86_get_raw_imm( self );
+	}
+
+	%newobject format;
+	char * format( enum x86_asm_format format ) {
+		char *buf, *str;
+		size_t len;
+
+		switch ( format ) {
+			case xml_syntax:
+				len = MAX_INSN_XML_STRING;
+				break;
+			case raw_syntax:
+				len = MAX_INSN_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				len = MAX_INSN_STRING;
+				break;
+		}
+
+		buf = (char * ) calloc( len + 1, 1 );
+		x86_format_insn( self, buf, len, format );
+
+		/* drop buffer down to a reasonable size */
+		str = strdup( buf );
+		free(buf);
+		return str;
+	}
+
+	%newobject format_mnemonic;
+	char * format_mnemonic( enum x86_asm_format format ) {
+		char *buf, *str;
+		size_t len = MAX_MNEM_STR + MAX_PREFIX_STR + 4;
+
+		buf = (char * ) calloc( len, 1 );
+		x86_format_mnemonic( self, buf, len, format );
+
+		/* drop buffer down to a reasonable size */
+		str = strdup( buf );
+		free(buf);
+
+		return str;
+	}
+
+	%newobject copy;
+	x86_insn_t * copy() {
+		x86_oplist_t *ptr, *list, *last = NULL;
+		x86_insn_t *insn = (x86_insn_t *)
+				   calloc( sizeof(x86_insn_t), 1 );
+
+		if ( insn ) {
+			memcpy( insn, self, sizeof(x86_insn_t) );
+			insn->operands = NULL;
+			insn->block = NULL;
+			insn->function = NULL;
+
+			/* copy operand list */
+			for ( list = self->operands; list; list = list->next ) {
+				ptr = x86_oplist_node_copy( list );
+
+				if (! ptr ) {
+					continue;
+				}
+
+				if ( insn->operands ) {
+					last->next = ptr;
+				} else {
+					insn->operands = ptr;
+				}
+				last = ptr;
+			}
+		}
+
+		return insn;
+	}
+
+	X86_OpList * operand_list( ) {
+		x86_oplist_t *list = self->operands;
+		X86_OpList *op_list = new_X86_OpList();
+
+		for ( list = self->operands; list; list = list->next ) {
+			X86_OpList_append( op_list, &list->op );
+		}
+
+		return op_list;
+	}
+}
+
+/* ================================================================== */
+/* invariant instruction class */
+%inline %{
+	#define X86_WILDCARD_BYTE 0xF4
+
+	typedef struct {
+        	enum x86_op_type        type;
+        	enum x86_op_datatype    datatype;
+        	enum x86_op_access      access;
+        	enum x86_op_flags       flags;
+	} x86_invariant_op_t;
+
+	typedef struct {
+		unsigned char bytes[64];
+		unsigned int  size;
+        	enum x86_insn_group group;
+        	enum x86_insn_type type;
+		x86_invariant_op_t operands[3];
+	} x86_invariant_t;
+%}
+
+%extend x86_invariant_t {
+
+	x86_invariant_t() {
+		x86_invariant_t *inv = (x86_invariant_t *)
+				calloc( sizeof(x86_invariant_t), 1 );
+		return inv;
+	}
+
+	~x86_invariant_t() {
+		free( self );
+	}
+}
+
+/* ================================================================== */
+/* instruction list class */
+%inline %{
+	typedef struct X86_InsnListNode {
+		x86_insn_t *insn;
+		struct X86_InsnListNode *next, *prev;
+	} X86_InsnListNode;
+
+	typedef struct X86_InsnList {
+		size_t count;
+		X86_InsnListNode *head, *tail, *curr;
+	} X86_InsnList;
+%}
+
+%extend X86_InsnList {
+	X86_InsnList () {
+		X86_InsnList *list = (X86_InsnList *) 
+				calloc( sizeof(X86_InsnList), 1 );
+		list->count = 0;
+		return list;
+	}
+
+	~X86_InsnList() {
+		X86_InsnListNode *node, *next;
+
+		node = self->head;
+		while ( node ) {
+			next = node->next;
+			/* free( node->insn ); */
+			free( node );
+			node = next;
+		}
+
+		free( self );
+	}
+
+	X86_InsnListNode * first() { return self->head; }
+
+	X86_InsnListNode * last() { return self->tail; }
+
+	X86_InsnListNode * next() { 
+		if (! self->curr ) {
+			self->curr = self->head;
+			return self->head;
+		}
+
+		self->curr = self->curr->next;
+		return self->curr;
+	}
+
+	X86_InsnListNode * prev() { 
+		if (! self->curr ) {
+			self->curr = self->tail;
+			return self->tail;
+		}
+
+		self->curr = self->curr->prev;
+		return self->curr;
+	}
+
+	%newobject append;
+	void append( x86_insn_t *insn ) {
+		X86_InsnListNode *node = (X86_InsnListNode *)
+					calloc( sizeof(X86_InsnListNode) , 1 );
+		if (! node ) {
+			return;
+		}
+
+		self->count++;
+		if ( ! self->tail ) {
+			self->head = self->tail = node;
+		} else {
+			self->tail->next = node;
+			node->prev = self->tail;
+			self->tail = node;
+		}
+
+		node->insn = x86_insn_t_copy( insn );
+	}
+}
+
+/* ================================================================== */
+/* address table class */
+/* slight TODO */
+
+/* ================================================================== */
+/* Main disassembler class */
+%inline %{
+
+	enum x86_options {
+		opt_none= 0,
+		opt_ignore_nulls=1,
+		opt_16_bit=2
+		};
+	enum x86_report_codes {
+        	report_disasm_bounds,
+        	report_insn_bounds,
+        	report_invalid_insn,
+        	report_unknown
+	};
+
+
+	typedef struct {
+		enum x86_report_codes last_error;
+		void * last_error_data;
+		void * disasm_callback;
+		void * disasm_resolver;
+	} X86_Disasm;
+
+	typedef void (*DISASM_REPORTER)( enum x86_report_codes code, 
+				 	 void *data, void *arg );
+	typedef void (*DISASM_CALLBACK)( x86_insn_t *insn, void * arg );
+	typedef long (*DISASM_RESOLVER)( x86_op_t *op, 
+					 x86_insn_t * current_insn,
+				 	 void *arg );
+
+	void x86_report_error( enum x86_report_codes code, void *data );
+	int x86_init( enum x86_options options, DISASM_REPORTER reporter, 
+		      void *arg);
+	void x86_set_reporter( DISASM_REPORTER reporter, void *arg);
+	void x86_set_options( enum x86_options options );
+	enum x86_options x86_get_options( void );
+	int x86_cleanup(void);
+	int x86_format_header( char *buf, int len, enum x86_asm_format format);
+	unsigned int x86_endian(void);
+	unsigned int x86_addr_size(void);
+	unsigned int x86_op_size(void);
+	unsigned int x86_word_size(void);
+	unsigned int x86_max_insn_size(void);
+	unsigned int x86_sp_reg(void);
+	unsigned int x86_fp_reg(void);
+	unsigned int x86_ip_reg(void);
+	size_t x86_invariant_disasm( unsigned char *buf, int buf_len, 
+			  x86_invariant_t *inv );
+	size_t x86_size_disasm( unsigned char *buf, unsigned int buf_len );
+	int x86_disasm( unsigned char *buf, unsigned int buf_len,
+	                unsigned long buf_rva, unsigned int offset,
+	                x86_insn_t * insn );
+	int x86_disasm_range( unsigned char *buf, unsigned long buf_rva,
+	                      unsigned int offset, unsigned int len,
+	                      DISASM_CALLBACK func, void *arg );
+	int x86_disasm_forward( unsigned char *buf, unsigned int buf_len,
+	                        unsigned long buf_rva, unsigned int offset,
+	                        DISASM_CALLBACK func, void *arg,
+	                        DISASM_RESOLVER resolver, void *r_arg );
+	
+	void x86_default_reporter( enum x86_report_codes code, 
+				   void *data, void *arg ) {
+		X86_Disasm *dis = (X86_Disasm *) arg;
+		if ( dis ) {
+			dis->last_error = code;
+			dis->last_error_data = data;
+		}
+	}
+
+	void x86_default_callback( x86_insn_t *insn, void *arg ) {
+		X86_InsnList *list = (X86_InsnList *) arg;
+		if ( list ) {
+			X86_InsnList_append( list, insn );
+		}
+	}
+
+	/* TODO: resolver stack, maybe a callback */
+	long x86_default_resolver( x86_op_t *op, x86_insn_t *insn, void *arg ) {
+		X86_Disasm *dis = (X86_Disasm *) arg;
+		if ( dis ) {
+			//return dis->resolver( op, insn );
+			return 0;
+		}
+
+		return 0;
+	}
+
+%}
+
+%extend X86_Disasm { 
+	
+	X86_Disasm( ) {
+		X86_Disasm * dis = (X86_Disasm *)
+				calloc( sizeof( X86_Disasm ), 1 );
+		x86_init( opt_none, x86_default_reporter, dis );
+		return dis;
+	}
+
+	X86_Disasm( enum x86_options options ) {
+		X86_Disasm * dis = (X86_Disasm *)
+				calloc( sizeof( X86_Disasm ), 1 );
+		x86_init( options, x86_default_reporter, dis );
+		return dis;
+	}
+
+	X86_Disasm( enum x86_options options, DISASM_REPORTER reporter ) {
+		X86_Disasm * dis = (X86_Disasm *)
+				calloc( sizeof( X86_Disasm ), 1 );
+		x86_init( options, reporter, NULL );
+		return dis;
+	}
+
+	X86_Disasm( enum x86_options options, DISASM_REPORTER reporter,
+		    void * arg ) {
+		X86_Disasm * dis = (X86_Disasm *)
+				calloc( sizeof( X86_Disasm ), 1 );
+		x86_init( options, reporter, arg );
+		return dis;
+	}
+
+	~X86_Disasm() {
+		x86_cleanup();
+		free( self );
+	}
+
+	void set_options( enum x86_options options ) {
+		return x86_set_options( options );
+	}
+
+	enum x86_options options() {
+		return x86_get_options();
+	}
+
+	void set_callback( void * callback ) {
+		self->disasm_callback = callback;
+	}
+
+	void set_resolver( void * callback ) {
+		self->disasm_resolver = callback;
+	}
+
+	void report_error( enum x86_report_codes code ) {
+		x86_report_error( code, NULL );
+	}
+
+	%newobject disasm;
+	x86_insn_t * disasm( unsigned char *buf, size_t buf_len, 
+		           unsigned long buf_rva, unsigned int offset ) {
+		x86_insn_t *insn = calloc( sizeof( x86_insn_t ), 1 );
+		x86_disasm( buf, buf_len, buf_rva, offset, insn );
+		return insn;
+	}
+
+	int disasm_range( unsigned char *buf, size_t buf_len, 
+	              unsigned long buf_rva, unsigned int offset,
+		      unsigned int len ) {
+
+		X86_InsnList *list = new_X86_InsnList();
+
+		if ( len > buf_len ) {
+			len = buf_len;
+		}
+
+		return x86_disasm_range( buf, buf_rva, offset, len, 
+				x86_default_callback, list );
+	}
+
+	int disasm_forward( unsigned char *buf, size_t buf_len,
+			    unsigned long buf_rva, unsigned int offset ) {
+		X86_InsnList *list = new_X86_InsnList();
+
+		/* use default resolver: damn SWIG callbacks! */
+		return x86_disasm_forward( buf, buf_len, buf_rva, offset,
+			                   x86_default_callback, list, 
+					   x86_default_resolver, NULL );
+	}
+
+	size_t disasm_invariant( unsigned char *buf, size_t buf_len, 
+			  x86_invariant_t *inv ) {
+		return x86_invariant_disasm( buf, buf_len, inv );
+	}
+
+	size_t disasm_size( unsigned char *buf, size_t buf_len ) {
+		return x86_size_disasm( buf, buf_len );
+	}
+
+	%newobject format_header;
+	char * format_header( enum x86_asm_format format) {
+		char *buf, *str;
+		size_t len;
+
+		switch ( format ) {
+			/* these were obtained from x86_format.c */
+			case xml_syntax:
+				len = 679; break;
+			case raw_syntax:
+				len = 172; break;
+			case native_syntax:
+				len = 35; break;
+			case intel_syntax:
+				len = 23; break;
+			case att_syntax:
+				len = 23; break;
+			case unknown_syntax:
+			default:
+				len = 23; break;
+		}
+
+		buf = (char * ) calloc( len + 1, 1 );
+		x86_format_header( buf, len, format );
+
+		return buf;
+	}
+
+	unsigned int endian() {
+		return x86_endian();
+	}
+
+	unsigned int addr_size() {
+		return x86_addr_size();
+	}
+
+	unsigned int op_size() {
+		return x86_op_size();
+	}
+
+	unsigned int word_size() {
+		return x86_word_size();
+	}
+
+	unsigned int max_insn_size() {
+		return x86_max_insn_size();
+	}
+
+	unsigned int sp_reg() {
+		return x86_sp_reg();
+	}
+
+	unsigned int fp_reg() {
+		return x86_fp_reg();
+	}
+
+	unsigned int ip_reg() {
+		return x86_ip_reg();
+	}
+
+	%newobject reg_from_id;
+	x86_reg_t * reg_from_id( unsigned int id ) {
+		x86_reg_t * reg = calloc( sizeof(x86_reg_t), 1 );
+		x86_reg_from_id( id, reg );
+		return reg;
+	}
+
+	unsigned char wildcard_byte() { return X86_WILDCARD_BYTE; }
+
+	int max_register_string() { return MAX_REGNAME; }
+
+	int max_prefix_string() { return MAX_PREFIX_STR; }
+
+	int max_mnemonic_string() { return MAX_MNEM_STR; }
+
+	int max_operand_string( enum x86_asm_format format ) {
+		switch ( format ) {
+			case xml_syntax:
+				return  MAX_OP_XML_STRING;
+				break;
+			case raw_syntax:
+				return MAX_OP_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				return MAX_OP_STRING;
+				break;
+		}
+	}
+
+
+	int max_insn_string( enum x86_asm_format format ) {
+		switch ( format ) {
+			case xml_syntax:
+				return  MAX_INSN_XML_STRING;
+				break;
+			case raw_syntax:
+				return MAX_INSN_RAW_STRING;
+				break;
+			case native_syntax:
+			case intel_syntax:
+			case att_syntax:
+			case unknown_syntax:
+			default:
+				return MAX_INSN_STRING;
+				break;
+		}
+	}
+
+	int max_num_operands( ) { return MAX_NUM_OPERANDS; }
+}
+
+/* python callback, per the manual */
+/*%typemap(python,in) PyObject *pyfunc {
+	if (!PyCallable_Check($source)) {
+		PyErr_SetString(PyExc_TypeError, "Need a callable object!");
+ 		return NULL;
+	}
+	$target = $source;
+}*/
+
+/* python FILE * callback, per the manual */
+/*
+%typemap(python,in) FILE * {
+  if (!PyFile_Check($source)) {
+      PyErr_SetString(PyExc_TypeError, "Need a file!");
+      return NULL;
+  }
+  $target = PyFile_AsFile($source);
+}*/
+
+
diff --git a/src/third_party/libdisasm/swig/perl/Makefile-swig b/src/third_party/libdisasm/swig/perl/Makefile-swig
new file mode 100644
index 0000000..9f3a645
--- /dev/null
+++ b/src/third_party/libdisasm/swig/perl/Makefile-swig
@@ -0,0 +1,65 @@
+ifndef BASE_NAME
+BASE_NAME	=	x86disasm
+endif
+
+ifndef SWIG
+SWIG		=	swig	# apt-get install swig !
+endif
+
+ifndef GCC
+GCC		=	gcc
+endif
+
+ifndef CC_FLAGS
+CC_FLAGS	=	-c -fPIC
+endif
+
+ifndef LD_FLAGS
+LD_FLAGS	=	-shared -L.. -ldisasm
+endif
+
+INTERFACE_FILE	=	libdisasm_oop.i
+
+SWIG_INTERFACE	=	../$(INTERFACE_FILE)
+
+# PERL rules
+PERL_MOD	=	blib/arch/auto/$(BASE_NAME)/$(BASE_NAME).so
+PERL_SHADOW	=	$(BASE_NAME)_wrap.c
+PERL_SWIG	=	$(BASE_NAME).pl
+PERL_OBJ	=	$(BASE_NAME)_wrap.o
+PERL_INC	=	`perl -e 'use Config; print $$Config{archlib};'`/CORE
+PERL_CC_FLAGS	=	`perl -e 'use Config; print $$Config{ccflags};'`
+
+#====================================================
+# TARGETS
+
+all: swig-perl
+
+dummy: swig-perl install uninstall clean
+
+swig-perl: $(PERL_MOD)
+
+$(PERL_MOD): $(PERL_OBJ)
+	perl Makefile.PL
+	make
+	#$(GCC) $(LD_FLAGS) $(PERL_OBJ) -o $@
+
+$(PERL_OBJ): $(PERL_SHADOW)
+	$(GCC) $(CC_FLAGS) $(PERL_CC_FLAGS) -I$(PERL_INC) -o $@ $<
+
+$(PERL_SHADOW): $(SWIG_INTERFACE)
+	swig -perl -shadow -o $(PERL_SHADOW) -outdir . $<
+
+# ==================================================================
+install: $(PERL_MOD)
+	make install
+
+# ==================================================================
+uninstall:
+
+# ==================================================================
+clean: 
+	rm $(PERL_MOD) $(PERL_OBJ)
+	rm $(PERL_SHADOW)
+	rm -rf Makefile blib pm_to_blib
+
diff --git a/src/third_party/libdisasm/swig/perl/Makefile.PL b/src/third_party/libdisasm/swig/perl/Makefile.PL
new file mode 100644
index 0000000..6e625df
--- /dev/null
+++ b/src/third_party/libdisasm/swig/perl/Makefile.PL
@@ -0,0 +1,7 @@
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+	'NAME'	=> 'x86disasm',
+	'LIBS'	=> ['-ldisasm'],
+	'OBJECT'	=> 'x86disasm_wrap.o'
+);
diff --git a/src/third_party/libdisasm/swig/python/Makefile-swig b/src/third_party/libdisasm/swig/python/Makefile-swig
new file mode 100644
index 0000000..544681a
--- /dev/null
+++ b/src/third_party/libdisasm/swig/python/Makefile-swig
@@ -0,0 +1,64 @@
+ifndef BASE_NAME
+BASE_NAME	=	x86disasm
+endif
+
+ifndef SWIG
+SWIG		=	swig	# apt-get install swig !
+endif
+
+ifndef GCC
+GCC		=	gcc
+endif
+
+ifndef CC_FLAGS
+CC_FLAGS	=	-c -fPIC
+endif
+
+ifndef LD_FLAGS
+LD_FLAGS	=	-shared -L.. -ldisasm
+endif
+
+INTERFACE_FILE	=	libdisasm_oop.i
+
+SWIG_INTERFACE	=	../$(INTERFACE_FILE)
+
+# PYTHON rules
+PYTHON_MOD	=	$(BASE_NAME)-python.so
+PYTHON_SHADOW	=	$(BASE_NAME)_wrap.c
+PYTHON_SWIG	=	$(BASE_NAME).py
+PYTHON_OBJ	=	$(BASE_NAME)_wrap.o
+PYTHON_INC	=	`/bin/echo -e 'import sys\nprint sys.prefix + "/include/python" + sys.version[:3]' | python`
+PYTHON_LIB	=	`/bin/echo -e 'import sys\nprint sys.prefix + "/lib/python" + sys.version[:3]' | python`
+PYTHON_DEST	=	$(PYTHON_LIB)/lib-dynload/_$(BASE_NAME).so
+
+#====================================================
+# TARGETS
+
+all: swig-python
+
+dummy: swig-python install uninstall clean
+
+swig-python: $(PYTHON_MOD)
+
+$(PYTHON_MOD): $(PYTHON_OBJ)
+	$(GCC) $(LD_FLAGS) $(PYTHON_OBJ) -o $@
+
+$(PYTHON_OBJ): $(PYTHON_SHADOW)
+	$(GCC) $(CC_FLAGS) -I$(PYTHON_INC) -I.. -o $@ $<
+
+$(PYTHON_SHADOW): $(SWIG_INTERFACE)
+	swig -python -shadow -o $(PYTHON_SHADOW) -outdir . $<
+
+# ==================================================================
+install: $(PYTHON_MOD)
+	sudo cp $(PYTHON_MOD) $(PYTHON_DEST)
+	sudo cp $(PYTHON_SWIG) $(PYTHON_LIB)
+
+# ==================================================================
+uninstall:
+
+# ==================================================================
+clean: 
+	rm $(PYTHON_MOD) $(PYTHON_SWIG) $(PYTHON_OBJ)
+	rm $(PYTHON_SHADOW)
+
diff --git a/src/third_party/libdisasm/swig/ruby/Makefile-swig b/src/third_party/libdisasm/swig/ruby/Makefile-swig
new file mode 100644
index 0000000..ee48002
--- /dev/null
+++ b/src/third_party/libdisasm/swig/ruby/Makefile-swig
@@ -0,0 +1,68 @@
+ifndef BASE_NAME
+BASE_NAME	=	x86disasm
+endif
+
+ifndef SWIG
+SWIG		=	swig	# apt-get install swig !
+endif
+
+ifndef GCC
+GCC		=	gcc
+endif
+
+ifndef CC_FLAGS
+CC_FLAGS	=	-c -fPIC
+endif
+
+ifndef LD_FLAGS
+LD_FLAGS	=	-shared -L../.. -ldisasm
+endif
+
+LIBDISASM_DIR	=	../..
+
+INTERFACE_FILE	=	libdisasm_oop.i
+
+SWIG_INTERFACE	=	../$(INTERFACE_FILE)
+
+# RUBY rules
+RUBY_MAKEFILE	=	Makefile
+RUBY_MOD	=	$(BASE_NAME).so
+RUBY_SHADOW	=	$(BASE_NAME)_wrap.c
+#RUBY_SWIG	=	$(BASE_NAME).rb
+RUBY_OBJ	=	$(BASE_NAME)_wrap.o
+RUBY_INC	=	`ruby -e 'puts $$:.join("\n")' | tail -2 | head -1`
+#RUBY_LIB	=	
+#RUBY_DEST	=	
+
+#====================================================
+# TARGETS
+
+all: swig-ruby
+
+dummy: swig-ruby install uninstall clean
+
+swig-ruby: $(RUBY_MOD)
+
+$(RUBY_MOD): $(RUBY_MAKEFILE)
+	make
+
+$(RUBY_MAKEFILE): $(RUBY_OBJ)
+	ruby extconf.rb
+
+$(RUBY_OBJ):$(RUBY_SHADOW)
+	$(GCC) $(CC_FLAGS) -I$(RUBY_INC) -I.. -o $@ $<
+
+$(RUBY_SHADOW): $(SWIG_INTERFACE)
+	swig -ruby -o $(RUBY_SHADOW) -outdir . $<
+
+# ==================================================================
+install: $(RUBY_MOD)
+	make install
+
+# ==================================================================
+uninstall:
+
+# ==================================================================
+clean: 
+	make clean || true
+	rm $(RUBY_SHADOW) $(RUBY_MAKEFILE) $(RUBY_MOD) $(RUBY_OBJ)
diff --git a/src/third_party/libdisasm/swig/ruby/extconf.rb b/src/third_party/libdisasm/swig/ruby/extconf.rb
new file mode 100644
index 0000000..4e74326
--- /dev/null
+++ b/src/third_party/libdisasm/swig/ruby/extconf.rb
@@ -0,0 +1,4 @@
+require 'mkmf'
+find_library('disasm', 'x86_init', "/usr/local/lib", "../..")
+create_makefile('x86disasm')
+
diff --git a/src/third_party/libdisasm/swig/tcl/Makefile-swig b/src/third_party/libdisasm/swig/tcl/Makefile-swig
new file mode 100644
index 0000000..5145a82
--- /dev/null
+++ b/src/third_party/libdisasm/swig/tcl/Makefile-swig
@@ -0,0 +1,63 @@
+ifndef BASE_NAME
+BASE_NAME	=	x86disasm
+endif
+
+ifndef SWIG
+SWIG		=	swig	# apt-get install swig !
+endif
+
+ifndef GCC
+GCC		=	gcc
+endif
+
+ifndef CC_FLAGS
+CC_FLAGS	=	-c -fPIC
+endif
+
+ifndef LD_FLAGS
+LD_FLAGS	=	-shared -L../.. -ldisasm
+endif
+
+INTERFACE_FILE	=	libdisasm.i
+
+SWIG_INTERFACE	=	../$(INTERFACE_FILE)
+
+# TCL rules
+TCL_VERSION	=	8.3
+TCL_MOD		=	$(BASE_NAME)-tcl.so
+TCL_SHADOW	=	$(BASE_NAME)_wrap.c
+TCL_OBJ		=	$(BASE_NAME)_wrap.o
+TCL_INC		=	/usr/include/tcl$(TCL_VERSION)
+TCL_LIB		=	/usr/lib/tcl$(TCL_VERSION)
+TCL_DEST	=	$(TCL_LIB)/$(BASE_NAME).so
+
+#====================================================
+# TARGETS
+
+all: swig-tcl
+
+dummy: swig-tcl install uninstall clean
+
+swig-tcl: $(TCL_MOD)
+
+$(TCL_MOD): $(TCL_OBJ)
+	$(GCC) $(LD_FLAGS) $(TCL_OBJ) -o $@
+
+$(TCL_OBJ): $(TCL_SHADOW)
+	$(GCC) $(CC_FLAGS) -I$(TCL_INC) -I.. -o $@ $<
+
+$(TCL_SHADOW): $(SWIG_INTERFACE)
+	swig -tcl -o $(TCL_SHADOW) -outdir . $<
+
+# ==================================================================
+install: $(TCL_MOD)
+	sudo cp $(TCL_MOD) $(TCL_DEST)
+
+# ==================================================================
+uninstall:
+
+# ==================================================================
+clean: 
+	rm $(TCL_MOD) $(TCL_SWIG) $(TCL_OBJ)
+	rm $(TCL_SHADOW)
+
diff --git a/src/third_party/libdisasm/x86_disasm.c b/src/third_party/libdisasm/x86_disasm.c
new file mode 100644
index 0000000..1b82f4e
--- /dev/null
+++ b/src/third_party/libdisasm/x86_disasm.c
@@ -0,0 +1,210 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "libdis.h"
+#include "ia32_insn.h"
+#include "ia32_invariant.h"
+#include "x86_operand_list.h"
+
+
+#ifdef _MSC_VER
+        #define snprintf        _snprintf
+        #define inline          __inline
+#endif
+
+unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len,
+                uint32_t buf_rva, unsigned int offset,
+                x86_insn_t *insn ){
+        int len, size;
+	unsigned char bytes[MAX_INSTRUCTION_SIZE];
+
+        if ( ! buf || ! insn || ! buf_len ) {
+                /* caller screwed up somehow */
+                return 0;
+        }
+
+
+	/* ensure we are all NULLed up */
+	memset( insn, 0, sizeof(x86_insn_t) );
+        insn->addr = buf_rva + offset;
+        insn->offset = offset;
+	/* default to invalid insn */
+	insn->type = insn_invalid;
+	insn->group = insn_none;
+
+        if ( offset >= buf_len ) {
+                /* another caller screwup ;) */
+                x86_report_error(report_disasm_bounds, (void*)(long)(buf_rva+offset));
+                return 0;
+        }
+
+        len = buf_len - offset;
+
+	/* copy enough bytes for disassembly into buffer : this
+	 * helps prevent buffer overruns at the end of a file */
+	memset( bytes, 0, MAX_INSTRUCTION_SIZE );
+	memcpy( bytes, &buf[offset], (len < MAX_INSTRUCTION_SIZE) ? len : 
+		MAX_INSTRUCTION_SIZE );
+
+        /* actually do the disassembly */
+	/* TODO: allow switching when more disassemblers are added */
+        size = ia32_disasm_addr( bytes, len, insn);
+
+        /* check and see if we had an invalid instruction */
+        if (! size ) {
+                x86_report_error(report_invalid_insn, (void*)(long)(buf_rva+offset));
+                return 0;
+        }
+
+        /* check if we overran the end of the buffer */
+        if ( size > len ) {
+                x86_report_error( report_insn_bounds, (void*)(long)(buf_rva + offset));
+		MAKE_INVALID( insn, bytes );
+		return 0;
+	}
+
+        /* fill bytes field of insn */
+        memcpy( insn->bytes, bytes, size );
+
+        return size;
+}
+
+unsigned int x86_disasm_range( unsigned char *buf, uint32_t buf_rva,
+                      unsigned int offset, unsigned int len,
+                      DISASM_CALLBACK func, void *arg ) {
+        x86_insn_t insn;
+        unsigned int buf_len, size, count = 0, bytes = 0;
+
+        /* buf_len is implied by the arguments */
+        buf_len = len + offset;
+
+        while ( bytes < len ) {
+                size = x86_disasm( buf, buf_len, buf_rva, offset + bytes,
+                                   &insn );
+                if ( size ) {
+                        /* invoke callback if it exists */
+                        if ( func ) {
+                                (*func)( &insn, arg );
+                        }
+                        bytes += size;
+                        count ++;
+                } else {
+                        /* error */
+                        bytes++;        /* try next byte */
+                }
+
+		x86_oplist_free( &insn );
+        }
+
+        return( count );
+}
+
+static inline int follow_insn_dest( x86_insn_t *insn ) {
+        if ( insn->type == insn_jmp || insn->type == insn_jcc ||
+             insn->type == insn_call || insn->type == insn_callcc ) {
+                return(1);
+        }
+        return(0);
+}
+
+static inline int insn_doesnt_return( x86_insn_t *insn ) {
+        return( (insn->type == insn_jmp || insn->type == insn_return) ? 1: 0 );
+}
+
+static int32_t internal_resolver( x86_op_t *op, x86_insn_t *insn ){
+        int32_t next_addr = -1;
+        if ( x86_optype_is_address(op->type) ) {
+                next_addr = op->data.sdword;
+        } else if ( op->type == op_relative_near ) {
+		next_addr = insn->addr + insn->size + op->data.relative_near;
+        } else if ( op->type == op_relative_far ) {
+		next_addr = insn->addr + insn->size + op->data.relative_far;
+        }
+        return( next_addr );
+}
+
+unsigned int x86_disasm_forward( unsigned char *buf, unsigned int buf_len,
+                        uint32_t buf_rva, unsigned int offset,
+                        DISASM_CALLBACK func, void *arg,
+                        DISASM_RESOLVER resolver, void *r_arg ){
+        x86_insn_t insn;
+        x86_op_t *op;
+        int32_t next_addr;
+        uint32_t next_offset;
+        unsigned int size, count = 0, bytes = 0, cont = 1;
+
+        while ( cont && bytes < buf_len ) {
+                size = x86_disasm( buf, buf_len, buf_rva, offset + bytes,
+                           &insn );
+
+                if ( size ) {
+                        /* invoke callback if it exists */
+                        if ( func ) {
+                                (*func)( &insn, arg );
+                        }
+                        bytes += size;
+                        count ++;
+                } else {
+                        /* error */
+                        bytes++;        /* try next byte */
+                }
+
+                if ( follow_insn_dest(&insn) ) {
+                        op = x86_get_dest_operand( &insn );
+                        next_addr = -1;
+
+                        /* if caller supplied a resolver, use it to determine
+                         * the address to disassemble */
+                        if ( resolver ) {
+                                next_addr = resolver(op, &insn, r_arg);
+                        } else {
+                                next_addr = internal_resolver(op, &insn);
+                        }
+
+                        if (next_addr != -1 ) {
+                                next_offset = next_addr - buf_rva;
+                                /* if offset is in this buffer... */
+                                if ( (uint32_t)next_addr >= buf_rva &&
+                                     next_offset < buf_len ) {
+                                        /* go ahead and disassemble */
+                                        count += x86_disasm_forward( buf,
+                                                            buf_len,
+                                                            buf_rva,
+                                                            next_offset,
+                                                            func, arg,
+                                                            resolver, r_arg );
+                                } else  {
+                                        /* report unresolved address */
+                                        x86_report_error( report_disasm_bounds,
+                                                     (void*)(long)next_addr );
+                                }
+                        }
+                } /* end follow_insn */
+
+                if ( insn_doesnt_return(&insn) ) {
+                        /* stop disassembling */
+                        cont = 0;
+                }
+
+		x86_oplist_free( &insn );
+        }
+        return( count );
+}
+
+/* invariant instruction representation */
+size_t x86_invariant_disasm( unsigned char *buf, int buf_len, 
+		x86_invariant_t *inv ){
+	if (! buf || ! buf_len || ! inv  ) {
+		return(0);
+	}
+
+	return ia32_disasm_invariant(buf, buf_len, inv);
+}
+size_t x86_size_disasm( unsigned char *buf, unsigned int buf_len ) {
+	if (! buf || ! buf_len  ) {
+		return(0);
+	}
+
+	return ia32_disasm_size(buf, buf_len);
+}
diff --git a/src/third_party/libdisasm/x86_format.c b/src/third_party/libdisasm/x86_format.c
new file mode 100644
index 0000000..0ec960d
--- /dev/null
+++ b/src/third_party/libdisasm/x86_format.c
@@ -0,0 +1,1430 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "libdis.h"
+#include <inttypes.h>
+
+#ifdef _MSC_VER
+        #define snprintf        _snprintf
+        #define inline          __inline
+#endif
+
+
+/*
+ * concatenation macros.  STRNCATF concatenates a format string, buf
+ * only with one argument.
+ */
+#define STRNCAT( buf, str, len ) do {   				\
+	int _i = strlen(str), _blen = strlen(buf), _len = len - 1;  	\
+	if ( len ) {							\
+        	strncat( buf, str, _len );  				\
+		if ( _len <= _i ) {					\
+			buf[_blen+_len] = '\0';				\
+			len = 0;					\
+		} else {						\
+			len -= _i;					\
+		}							\
+	}								\
+} while( 0 )
+
+#define STRNCATF( buf, fmt, data, len ) do {        \
+        char _tmp[MAX_OP_STRING];                   \
+                                                    \
+        snprintf( _tmp, sizeof _tmp, fmt, data );   \
+        STRNCAT( buf, _tmp, len );                  \
+} while( 0 )
+
+
+#define PRINT_DISPLACEMENT( ea ) do {                            \
+        if ( ea->disp_size && ea->disp ) {                       \
+                if ( ea->disp_sign ) {    \
+                        STRNCATF( buf, "-0x%" PRIX32, -ea->disp, len );    \
+                } else {                                         \
+                        STRNCATF( buf, "0x%" PRIX32, ea->disp, len );  \
+                }                                                \
+        }                                                        \
+} while( 0 )
+
+static const char *prefix_strings[] = {
+	"",     /* no prefix */
+	"repz ", /* the trailing spaces make it easy to prepend to mnemonic */
+	"repnz ",
+	"lock ",
+	"branch delay " /* unused in x86 */
+};
+
+static int format_insn_prefix_str( enum x86_insn_prefix prefix, char *buf,
+                                   int len ) {
+
+        int len_orig = len;
+
+        /* concat all prefix strings */
+        if ( prefix & 1 ) { STRNCAT( buf, prefix_strings[1], len ); }
+        if ( prefix & 2 ) { STRNCAT( buf, prefix_strings[2], len ); }
+        if ( prefix & 4 ) { STRNCAT( buf, prefix_strings[3], len ); }
+        if ( prefix & 8 ) { STRNCAT( buf, prefix_strings[4], len ); }
+
+        /* return the number of characters added */
+        return (len_orig - len);
+}
+
+/*
+ * sprint's an operand's data to string str.
+ */
+static void get_operand_data_str( x86_op_t *op, char *str, int len ){
+
+        if ( op->flags & op_signed ) {
+                switch ( op->datatype ) {
+                        case op_byte:
+                                snprintf( str, len, "%" PRId8, op->data.sbyte );
+                                return;
+                        case op_word:
+                                snprintf( str, len, "%" PRId16, op->data.sword );
+                                return;
+                        case op_qword:
+                                snprintf( str, len, "%" PRId64, op->data.sqword );
+                                return;
+                        default:
+                                snprintf( str, len, "%" PRId32, op->data.sdword );
+                                return;
+                }
+        }
+
+        //else
+        switch ( op->datatype ) {
+                case op_byte:
+                        snprintf( str, len, "0x%02" PRIX8, op->data.byte );
+                        return;
+                case op_word:
+                        snprintf( str, len, "0x%04" PRIX16, op->data.word );
+                        return;
+                case op_qword:
+                        snprintf( str, len, "0x%08" PRIX64,op->data.sqword );
+                        return;
+                default:
+                        snprintf( str, len, "0x%08" PRIX32, op->data.dword );
+                        return;
+        }
+}
+
+/*
+ * sprints register types to a string.  the register types can be ORed
+ * together.
+ */
+static void get_operand_regtype_str( int regtype, char *str, int len )
+{
+        static struct {
+                const char *name;
+                int value;
+        } operand_regtypes[] = {
+                {"reg_gen"    , 0x00001},
+                {"reg_in"     , 0x00002},
+                {"reg_out"    , 0x00004},
+                {"reg_local"  , 0x00008},
+                {"reg_fpu"    , 0x00010},
+                {"reg_seg"    , 0x00020},
+                {"reg_simd"   , 0x00040},
+                {"reg_sys"    , 0x00080},
+                {"reg_sp"     , 0x00100},
+                {"reg_fp"     , 0x00200},
+                {"reg_pc"     , 0x00400},
+                {"reg_retaddr", 0x00800},
+                {"reg_cond"   , 0x01000},
+                {"reg_zero"   , 0x02000},
+                {"reg_ret"    , 0x04000},
+                {"reg_src"    , 0x10000},
+                {"reg_dest"   , 0x20000},
+                {"reg_count"  , 0x40000},
+                {NULL, 0}, //end
+        };
+
+        unsigned int i;
+
+        memset( str, 0, len );
+
+        //go thru every type in the enum
+        for ( i = 0; operand_regtypes[i].name; i++ ) {
+                //skip if type is not set
+                if(! (regtype & operand_regtypes[i].value) )
+                        continue;
+
+                //not the first time around
+                if( str[0] ) {
+                        STRNCAT( str, " ", len );
+                }
+
+                STRNCAT(str, operand_regtypes[i].name, len );
+        }
+}
+
+static int format_expr( x86_ea_t *ea, char *buf, int len,
+                        enum x86_asm_format format ) {
+        char str[MAX_OP_STRING];
+
+        if ( format == att_syntax ) {
+		if (ea->base.name[0] || ea->index.name[0] || ea->scale) {
+               		PRINT_DISPLACEMENT(ea);
+	                STRNCAT( buf, "(", len );
+
+	                if ( ea->base.name[0]) {
+	                        STRNCATF( buf, "%%%s", ea->base.name, len );
+	                }
+	                if ( ea->index.name[0]) {
+	                        STRNCATF( buf, ",%%%s", ea->index.name, len );
+	                        if ( ea->scale > 1 ) {
+	                                STRNCATF( buf, ",%d", ea->scale, len );
+	                        }
+	                }
+	                /* handle the syntactic exception */
+	                if ( ! ea->base.name[0] &&
+	                     ! ea->index.name[0]   ) {
+	                        STRNCATF( buf, ",%d", ea->scale, len );
+	                }
+
+	                STRNCAT( buf, ")", len );
+		} else
+			STRNCATF( buf, "0x%" PRIX32, ea->disp, len );
+
+        } else if ( format == xml_syntax ){
+
+                if ( ea->base.name[0]) {
+                        STRNCAT (buf, "\t\t\t<base>\n", len);
+
+                        get_operand_regtype_str (ea->base.type, str,
+                                                 sizeof str);
+                        STRNCAT (buf, "\t\t\t\t<register ", len);
+                        STRNCATF (buf, "name=\"%s\" ", ea->base.name, len);
+                        STRNCATF (buf, "type=\"%s\" ", str, len);
+                        STRNCATF (buf, "size=%d/>\n", ea->base.size, len);
+
+                        STRNCAT (buf, "\t\t\t</base>\n", len);
+                }
+
+                if ( ea->index.name[0]) {
+                        STRNCAT (buf, "\t\t\t<index>\n", len);
+
+                        get_operand_regtype_str (ea->index.type, str,
+                                                 sizeof str);
+
+                        STRNCAT (buf, "\t\t\t\t<register ", len);
+                        STRNCATF (buf, "name=\"%s\" ", ea->index.name, len);
+                        STRNCATF (buf, "type=\"%s\" ", str, len);
+                        STRNCATF (buf, "size=%d/>\n", ea->index.size, len);
+
+                        STRNCAT (buf, "\t\t\t</index>\n", len);
+                }
+
+                //scale
+                STRNCAT (buf, "\t\t\t<scale>\n", len);
+                STRNCAT (buf, "\t\t\t\t<immediate ", len);
+                STRNCATF (buf, "value=\"%d\"/>\n", ea->scale, len);
+                STRNCAT (buf, "\t\t\t</scale>\n", len);
+
+                if ( ea->disp_size ) {
+
+                        STRNCAT (buf, "\t\t\t<displacement>\n", len);
+
+                        if ( ea->disp_size > 1 && ! ea->disp_sign ) {
+                                STRNCAT (buf, "\t\t\t\t<address ", len);
+                                STRNCATF (buf, "value=\"0x%" PRIX32 "\"/>\n", ea->disp,
+                                          len);
+                        } else {
+                                STRNCAT (buf, "\t\t\t\t<immediate ", len);
+                                STRNCATF (buf, "value=%" PRId32 "/>\n", ea->disp, len);
+                        }
+
+                        STRNCAT (buf, "\t\t\t</displacement>\n", len);
+                }
+
+        } else if ( format == raw_syntax ) {
+
+                PRINT_DISPLACEMENT(ea);
+                STRNCAT( buf, "(", len );
+
+                STRNCATF( buf, "%s,", ea->base.name, len );
+                STRNCATF( buf, "%s,", ea->index.name, len );
+                STRNCATF( buf, "%d", ea->scale, len );
+                STRNCAT( buf, ")", len );
+
+        } else {
+
+                STRNCAT( buf, "[", len );
+
+                if ( ea->base.name[0] ) {
+                        STRNCAT( buf, ea->base.name, len );
+                        if ( ea->index.name[0] ||
+                             (ea->disp_size && ! ea->disp_sign) ) {
+                                STRNCAT( buf, "+", len );
+                        }
+                }
+                if ( ea->index.name[0] ) {
+                        STRNCAT( buf, ea->index.name, len );
+                        if ( ea->scale > 1 )
+                        {
+                                STRNCATF( buf, "*%" PRId32, ea->scale, len );
+                        }
+                        if ( ea->disp_size && ! ea->disp_sign )
+                        {
+                                STRNCAT( buf, "+", len );
+                        }
+                }
+
+                if ( ea->disp_size || (! ea->index.name[0] && 
+					! ea->base.name[0] ) )
+                {
+                        PRINT_DISPLACEMENT(ea);
+                }
+
+                STRNCAT( buf, "]", len );
+        }
+
+        return( strlen(buf) );
+}
+
+static int format_seg( x86_op_t *op, char *buf, int len,
+                       enum x86_asm_format format ) {
+        int len_orig = len;
+        const char *reg = "";
+
+        if (! op || ! buf || ! len || ! op->flags) {
+                return(0);
+        }
+        if ( op->type != op_offset && op->type != op_expression ){
+                return(0);
+        }
+        if (! ((int) op->flags & 0xF00) ) {
+                return(0);
+        }
+
+        switch (op->flags & 0xF00) {
+                case op_es_seg: reg = "es"; break;
+                case op_cs_seg: reg = "cs"; break;
+                case op_ss_seg: reg = "ss"; break;
+                case op_ds_seg: reg = "ds"; break;
+                case op_fs_seg: reg = "fs"; break;
+                case op_gs_seg: reg = "gs"; break;
+                default:
+                        break;
+        }
+
+        if (! reg[0] ) {
+                return( 0 );
+        }
+
+        switch( format ) {
+                case xml_syntax:
+                        STRNCAT( buf, "\t\t\t<segment ", len );
+                        STRNCATF( buf, "value=\"%s\"/>\n", reg, len );
+                        break;
+                case att_syntax:
+                        STRNCATF( buf, "%%%s:", reg, len );
+                        break;
+
+                default:
+                        STRNCATF( buf, "%s:", reg, len );
+                        break;
+        }
+
+        return( len_orig - len ); /* return length of appended string */
+}
+
+static const char *get_operand_datatype_str( x86_op_t *op ){
+
+        static const char *types[] = {
+                "sbyte",		/* 0 */
+                "sword",
+                "sqword",
+                "sdword",
+                "sdqword",		/* 4 */
+                "byte",
+                "word",
+                "qword",
+                "dword",		/* 8 */
+                "dqword",
+		"sreal",
+		"dreal",
+		"extreal",		/* 12 */
+		"bcd",
+		"ssimd",
+		"dsimd",
+		"sssimd",		/* 16 */
+		"sdsimd",
+		"descr32",
+		"descr16",
+		"pdescr32",		/* 20 */
+		"pdescr16",
+		"bounds16",
+		"bounds32",
+		"fpu_env16",
+		"fpu_env32",		/* 25 */
+		"fpu_state16",
+		"fpu_state32",
+		"fp_reg_set"
+        };
+
+	/* handle signed values first */
+        if ( op->flags & op_signed ) {
+                switch (op->datatype) {
+                        case op_byte:  return types[0];
+                        case op_word:  return types[1];
+                        case op_qword: return types[2];
+                	case op_dqword: return types[4];
+                        default:       return types[3];
+                }
+        }
+
+        switch (op->datatype) {
+                case op_byte:   	return types[5];
+                case op_word:   	return types[6];
+                case op_qword:  	return types[7];
+                case op_dqword: 	return types[9];
+		case op_sreal:		return types[10];
+		case op_dreal:		return types[11];
+		case op_extreal:	return types[12];
+		case op_bcd:		return types[13];
+		case op_ssimd:		return types[14];
+		case op_dsimd:		return types[15];
+		case op_sssimd:		return types[16];
+		case op_sdsimd:		return types[17];
+		case op_descr32:	return types[18];
+		case op_descr16:	return types[19];
+		case op_pdescr32:	return types[20];
+		case op_pdescr16:	return types[21];
+		case op_bounds16:	return types[22];
+		case op_bounds32:	return types[23];
+		case op_fpustate16: 	return types[24];
+		case op_fpustate32: 	return types[25];
+		case op_fpuenv16: 	return types[26];
+		case op_fpuenv32: 	return types[27];
+		case op_fpregset: 	return types[28];
+                default:        	return types[8];
+        }
+}
+
+static int format_insn_eflags_str( enum x86_flag_status flags, char *buf,
+                                   int len) {
+
+        static struct {
+                const char *name;
+                int  value;
+        } insn_flags[] = {
+                { "carry_set ",                 0x0001 },
+                { "zero_set ",                  0x0002 },
+                { "oflow_set ",                 0x0004 },
+                { "dir_set ",                   0x0008 },
+                { "sign_set ",                  0x0010 },
+                { "parity_set ",                0x0020 },
+                { "carry_or_zero_set ",         0x0040 },
+                { "zero_set_or_sign_ne_oflow ", 0x0080 },
+                { "carry_clear ",               0x0100 },
+                { "zero_clear ",                0x0200 },
+                { "oflow_clear ",               0x0400 },
+                { "dir_clear ",                 0x0800 },
+                { "sign_clear ",                0x1000 },
+                { "parity_clear ",              0x2000 },
+                { "sign_eq_oflow ",             0x4000 },
+                { "sign_ne_oflow ",             0x8000 },
+                { NULL,                         0x0000 }, //end
+        };
+
+        unsigned int i;
+        int len_orig = len;
+
+        for (i = 0; insn_flags[i].name; i++) {
+                if (! (flags & insn_flags[i].value) )
+                        continue;
+
+                STRNCAT( buf, insn_flags[i].name, len );
+        }
+
+        return( len_orig - len );
+}
+
+static const char *get_insn_group_str( enum x86_insn_group gp ) {
+
+        static const char *types[] = {
+                "",           // 0
+                "controlflow",// 1
+                "arithmetic", // 2
+                "logic",      // 3
+                "stack",      // 4
+                "comparison", // 5
+                "move",       // 6
+                "string",     // 7
+                "bit_manip",  // 8
+                "flag_manip", // 9
+                "fpu",        // 10
+                "",           // 11
+                "",           // 12
+                "interrupt",  // 13
+                "system",     // 14
+                "other",      // 15
+        };
+
+        if ( gp > sizeof (types)/sizeof(types[0]) )
+                return "";
+
+        return types[gp];
+}
+
+static const char *get_insn_type_str( enum x86_insn_type type ) {
+
+        static struct {
+                const char *name;
+                int  value;
+        } types[] = {
+                /* insn_controlflow */
+                { "jmp", 0x1001 },
+                { "jcc", 0x1002 },
+                { "call", 0x1003 },
+                { "callcc", 0x1004 },
+                { "return", 0x1005 },
+                { "loop", 0x1006 },
+                /* insn_arithmetic */
+                { "add", 0x2001 },
+                { "sub", 0x2002 },
+                { "mul", 0x2003 },
+                { "div", 0x2004 },
+                { "inc", 0x2005 },
+                { "dec", 0x2006 },
+                { "shl", 0x2007 },
+                { "shr", 0x2008 },
+                { "rol", 0x2009 },
+                { "ror", 0x200A },
+                /* insn_logic */
+                { "and", 0x3001 },
+                { "or", 0x3002 },
+                { "xor", 0x3003 },
+                { "not", 0x3004 },
+                { "neg", 0x3005 },
+                /* insn_stack */
+                { "push", 0x4001 },
+                { "pop", 0x4002 },
+                { "pushregs", 0x4003 },
+                { "popregs", 0x4004 },
+                { "pushflags", 0x4005 },
+                { "popflags", 0x4006 },
+                { "enter", 0x4007 },
+                { "leave", 0x4008 },
+                /* insn_comparison */
+                { "test", 0x5001 },
+                { "cmp", 0x5002 },
+                /* insn_move */
+                { "mov", 0x6001 },      /* move */
+                { "movcc", 0x6002 },    /* conditional move */
+                { "xchg", 0x6003 },     /* exchange */
+                { "xchgcc", 0x6004 },   /* conditional exchange */
+                /* insn_string */
+                { "strcmp", 0x7001 },
+                { "strload", 0x7002 },
+                { "strmov", 0x7003 },
+                { "strstore", 0x7004 },
+                { "translate", 0x7005 },        /* xlat */
+                /* insn_bit_manip */
+                { "bittest", 0x8001 },
+                { "bitset", 0x8002 },
+                { "bitclear", 0x8003 },
+                /* insn_flag_manip */
+                { "clear_carry", 0x9001 },
+                { "clear_zero", 0x9002 },
+                { "clear_oflow", 0x9003 },
+                { "clear_dir", 0x9004 },
+                { "clear_sign", 0x9005 },
+                { "clear_parity", 0x9006 },
+                { "set_carry", 0x9007 },
+                { "set_zero", 0x9008 },
+                { "set_oflow", 0x9009 },
+                { "set_dir", 0x900A },
+                { "set_sign", 0x900B },
+                { "set_parity", 0x900C },
+                { "tog_carry", 0x9010 },
+                { "tog_zero", 0x9020 },
+                { "tog_oflow", 0x9030 },
+                { "tog_dir", 0x9040 },
+                { "tog_sign", 0x9050 },
+                { "tog_parity", 0x9060 },
+                /* insn_fpu */
+                { "fmov", 0xA001 },
+                { "fmovcc", 0xA002 },
+                { "fneg", 0xA003 },
+                { "fabs", 0xA004 },
+                { "fadd", 0xA005 },
+                { "fsub", 0xA006 },
+                { "fmul", 0xA007 },
+                { "fdiv", 0xA008 },
+                { "fsqrt", 0xA009 },
+                { "fcmp", 0xA00A },
+                { "fcos", 0xA00C },
+                { "fldpi", 0xA00D },
+                { "fldz", 0xA00E },
+                { "ftan", 0xA00F },
+                { "fsine", 0xA010 },
+                { "fsys", 0xA020 },
+                /* insn_interrupt */
+                { "int", 0xD001 },
+                { "intcc", 0xD002 },    /* not present in x86 ISA */
+                { "iret", 0xD003 },
+                { "bound", 0xD004 },
+                { "debug", 0xD005 },
+                { "trace", 0xD006 },
+                { "invalid_op", 0xD007 },
+                { "oflow", 0xD008 },
+                /* insn_system */
+                { "halt", 0xE001 },
+                { "in", 0xE002 },       /* input from port/bus */
+                { "out", 0xE003 },      /* output to port/bus */
+                { "cpuid", 0xE004 },
+                /* insn_other */
+                { "nop", 0xF001 },
+                { "bcdconv", 0xF002 },  /* convert to or from BCD */
+                { "szconv", 0xF003 },   /* change size of operand */
+                { NULL, 0 }, //end
+        };
+
+        unsigned int i;
+
+        //go thru every type in the enum
+        for ( i = 0; types[i].name; i++ ) {
+                if ( types[i].value == type )
+                        return types[i].name;
+        }
+
+        return "";
+}
+
+static const char *get_insn_cpu_str( enum x86_insn_cpu cpu ) {
+        static const char *intel[] = {
+                "",           		// 0
+                "8086",           	// 1
+                "80286",           	// 2
+                "80386",           	// 3
+                "80387",           	// 4
+                "80486",           	// 5
+                "Pentium",           	// 6
+                "Pentium Pro",          // 7
+                "Pentium 2",           	// 8
+                "Pentium 3",           	// 9
+                "Pentium 4"           	// 10
+        };
+
+        if ( cpu < sizeof(intel)/sizeof(intel[0]) ) {
+		return intel[cpu];
+	} else if ( cpu == 16 ) {
+		return "K6";
+	} else if ( cpu == 32 ) {
+		return "K7";
+	} else if ( cpu == 48 ) {
+		return "Athlon";
+	}
+
+        return "";
+}
+
+static const char *get_insn_isa_str( enum x86_insn_isa isa ) {
+        static const char *subset[] = {
+		NULL,				// 0
+                "General Purpose",           	// 1
+                "Floating Point",           	// 2
+                "FPU Management",           	// 3
+                "MMX",           		// 4
+                "SSE",           		// 5
+                "SSE2",           		// 6
+                "SSE3",           		// 7
+                "3DNow!",           		// 8
+                "System"           		// 9
+        };
+
+        if ( isa > sizeof (subset)/sizeof(subset[0]) ) {
+                return "";
+	}
+
+        return subset[isa];
+}
+
+static int format_operand_att( x86_op_t *op, x86_insn_t *insn, char *buf,
+                               int len){
+
+        char str[MAX_OP_STRING];
+
+        memset (str, 0, sizeof str);
+
+        switch ( op->type ) {
+                case op_register:
+                        STRNCATF( buf, "%%%s", op->data.reg.name, len );
+                        break;
+
+                case op_immediate:
+                        get_operand_data_str( op, str, sizeof str );
+                        STRNCATF( buf, "$%s", str, len );
+                        break;
+
+                case op_relative_near: 
+                        STRNCATF( buf, "0x%08X",
+                                 (unsigned int)(op->data.sbyte +
+                                 insn->addr + insn->size), len );
+                        break;
+
+		case op_relative_far:
+                        if (op->datatype == op_word) {
+                                STRNCATF( buf, "0x%08X",
+                                          (unsigned int)(op->data.sword +
+                                          insn->addr + insn->size), len );
+                        } else {
+                        	STRNCATF( buf, "0x%08X",
+                                  	(unsigned int)(op->data.sdword +
+                                  	insn->addr + insn->size), len );
+			}
+                        break;
+
+                case op_absolute:
+			/* ATT uses the syntax $section, $offset */
+                        STRNCATF( buf, "$0x%04" PRIX16 ", ", op->data.absolute.segment,
+				len );
+			if (op->datatype == op_descr16) {
+                        	STRNCATF( buf, "$0x%04" PRIX16, 
+					op->data.absolute.offset.off16, len );
+			} else {
+                        	STRNCATF( buf, "$0x%08" PRIX32, 
+					op->data.absolute.offset.off32, len );
+			}
+                        break;
+                case op_offset:
+                        /* ATT requires a '*' before JMP/CALL ops */
+                        if (insn->type == insn_jmp || insn->type == insn_call)
+                                STRNCAT( buf, "*", len );
+
+                        len -= format_seg( op, buf, len, att_syntax );
+                        STRNCATF( buf, "0x%08" PRIX32, op->data.sdword, len );
+                        break;
+
+                case op_expression:
+                        /* ATT requires a '*' before JMP/CALL ops */
+                        if (insn->type == insn_jmp || insn->type == insn_call)
+                                STRNCAT( buf, "*", len );
+
+                        len -= format_seg( op, buf, len, att_syntax );
+                        len -= format_expr( &op->data.expression, buf, len,
+                                     att_syntax );
+                        break;
+                case op_unused:
+                case op_unknown:
+                        /* return 0-truncated buffer */
+                        break;
+        }
+
+        return ( strlen( buf ) );
+}
+
+static int format_operand_native( x86_op_t *op, x86_insn_t *insn, char *buf,
+                                  int len){
+
+        char str[MAX_OP_STRING];
+
+        switch (op->type) {
+                case op_register:
+                        STRNCAT( buf, op->data.reg.name, len );
+                        break;
+
+                case op_immediate:
+                        get_operand_data_str( op, str, sizeof str );
+                        STRNCAT( buf, str, len );
+                        break;
+
+                case op_relative_near:
+                        STRNCATF( buf, "0x%08" PRIX32,
+                                  (unsigned int)(op->data.sbyte +
+                                  insn->addr + insn->size), len );
+                        break;
+
+                case op_relative_far:
+                        if ( op->datatype == op_word ) {
+                                STRNCATF( buf, "0x%08" PRIX32,
+                                          (unsigned int)(op->data.sword +
+                                          insn->addr + insn->size), len );
+                                break;
+                        } else {
+                        	STRNCATF( buf, "0x%08" PRIX32, op->data.sdword +
+                                	  insn->addr + insn->size, len );
+			}
+                        break;
+
+                case op_absolute:
+                        STRNCATF( buf, "$0x%04" PRIX16 ":", op->data.absolute.segment,
+				len );
+			if (op->datatype == op_descr16) {
+                        	STRNCATF( buf, "0x%04" PRIX16, 
+					op->data.absolute.offset.off16, len );
+			} else {
+                        	STRNCATF( buf, "0x%08" PRIX32, 
+					op->data.absolute.offset.off32, len );
+			}
+                        break;
+
+                case op_offset:
+                        len -= format_seg( op, buf, len, native_syntax );
+                        STRNCATF( buf, "[0x%08" PRIX32 "]", op->data.sdword, len );
+                        break;
+
+                case op_expression:
+                        len -= format_seg( op, buf, len, native_syntax );
+                        len -= format_expr( &op->data.expression, buf, len,
+                                     native_syntax );
+                        break;
+                case op_unused:
+                case op_unknown:
+                        /* return 0-truncated buffer */
+                        break;
+        }
+
+        return( strlen( buf ) );
+}
+
+static int format_operand_xml( x86_op_t *op, x86_insn_t *insn, char *buf,
+                               int len){
+
+        char str[MAX_OP_STRING] = "\0";
+
+        switch (op->type) {
+                case op_register:
+
+                        get_operand_regtype_str( op->data.reg.type, str,
+                                                 sizeof str );
+
+                        STRNCAT( buf, "\t\t<register ", len );
+                        STRNCATF( buf, "name=\"%s\" ", op->data.reg.name, len );
+                        STRNCATF( buf, "type=\"%s\" ", str, len );
+                        STRNCATF( buf, "size=%d/>\n", op->data.reg.size, len );
+                        break;
+
+                case op_immediate:
+
+                        get_operand_data_str( op, str, sizeof str );
+
+                        STRNCAT( buf, "\t\t<immediate ", len );
+                        STRNCATF( buf, "type=\"%s\" ",
+                                  get_operand_datatype_str (op), len );
+                        STRNCATF( buf, "value=\"%s\"/>\n", str, len );
+                        break;
+
+                case op_relative_near:
+                        STRNCAT( buf, "\t\t<relative_offset ", len );
+
+                        STRNCATF( buf, "value=\"0x%08" PRIX32 "\"/>\n",
+                                  (unsigned int)(op->data.sbyte +
+                                  insn->addr + insn->size), len );
+                        break;
+
+                case op_relative_far:
+                        STRNCAT( buf, "\t\t<relative_offset ", len );
+
+                        if (op->datatype == op_word) {
+                                STRNCATF( buf, "value=\"0x%08" PRIX32 "\"/>\n",
+                                          (unsigned int)(op->data.sword +
+                                          insn->addr + insn->size), len);
+                                break;
+                        } else {
+
+                        	STRNCATF( buf, "value=\"0x%08" PRIX32 "\"/>\n",
+                                      op->data.sdword + insn->addr + insn->size,
+                                      len );
+			}
+                        break;
+
+                case op_absolute:
+
+                        STRNCATF( buf, 
+				"\t\t<absolute_address segment=\"0x%04" PRIX16 "\"",
+                        	op->data.absolute.segment, len );
+
+			if (op->datatype == op_descr16) {
+                        	STRNCATF( buf, "offset=\"0x%04" PRIX16 "\">", 
+					op->data.absolute.offset.off16, len );
+			} else {
+                        	STRNCATF( buf, "offset=\"0x%08" PRIX32 "\">", 
+					op->data.absolute.offset.off32, len );
+			}
+
+                        STRNCAT( buf, "\t\t</absolute_address>\n", len );
+                        break;
+
+                case op_expression:
+			
+
+                        STRNCAT( buf, "\t\t<address_expression>\n", len );
+
+                        len -= format_seg( op, buf, len, xml_syntax );
+                        len -= format_expr( &op->data.expression, buf, len,
+                                     xml_syntax );
+
+                        STRNCAT( buf, "\t\t</address_expression>\n", len );
+                        break;
+
+                case op_offset:
+
+                        STRNCAT( buf, "\t\t<segment_offset>\n", len );
+
+                        len -= format_seg( op, buf, len, xml_syntax );
+
+                        STRNCAT( buf, "\t\t\t<address ", len);
+                        STRNCATF( buf, "value=\"0x%08" PRIX32 "\"/>\n",
+                                          op->data.sdword, len );
+                        STRNCAT( buf, "\t\t</segment_offset>\n", len );
+                        break;
+
+                case op_unused:
+                case op_unknown:
+                        /* return 0-truncated buffer */
+                        break;
+        }
+
+        return( strlen( buf ) );
+}
+
+static int format_operand_raw( x86_op_t *op, x86_insn_t *insn, char *buf,
+                               int len){
+
+        char str[MAX_OP_RAW_STRING];
+	const char *datatype = get_operand_datatype_str(op);
+
+        switch (op->type) {
+                case op_register:
+
+                        get_operand_regtype_str( op->data.reg.type, str,
+                                                 sizeof str );
+
+                        STRNCAT( buf, "reg|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+                        STRNCATF( buf, "%s:", op->data.reg.name, len );
+                        STRNCATF( buf, "%s:", str, len );
+                        STRNCATF( buf, "%d|", op->data.reg.size, len );
+                        break;
+
+                case op_immediate:
+
+                        get_operand_data_str( op, str, sizeof str );
+
+                        STRNCAT( buf, "immediate|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+                        STRNCATF( buf, "%s|", str, len );
+                        break;
+
+                case op_relative_near:
+			/* NOTE: in raw format, we print the
+			 * relative offset, not the actual
+			 * address of the jump target */
+
+                        STRNCAT( buf, "relative|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+                        STRNCATF( buf, "%" PRId8 "|", op->data.sbyte, len );
+                        break;
+
+                case op_relative_far:
+
+                        STRNCAT( buf, "relative|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+
+                        if (op->datatype == op_word) {
+                                STRNCATF( buf, "%" PRId16 "|", op->data.sword, len);
+                                break;
+                        } else {
+                        	STRNCATF( buf, "%" PRId32 "|", op->data.sdword, len );
+			}
+                        break;
+
+                case op_absolute:
+
+                        STRNCAT( buf, "absolute_address|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+
+                        STRNCATF( buf, "$0x%04" PRIX16 ":", op->data.absolute.segment,
+				len );
+			if (op->datatype == op_descr16) {
+                        	STRNCATF( buf, "0x%04" PRIX16 "|", 
+					op->data.absolute.offset.off16, len );
+			} else {
+                        	STRNCATF( buf, "0x%08" PRIX32 "|", 
+					op->data.absolute.offset.off32, len );
+			}
+
+                        break;
+
+                case op_expression:
+
+                        STRNCAT( buf, "address_expression|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+
+                        len -= format_seg( op, buf, len, native_syntax );
+                        len -= format_expr( &op->data.expression, buf, len,
+                                     raw_syntax );
+
+                        STRNCAT( buf, "|", len );
+                        break;
+
+                case op_offset:
+
+                        STRNCAT( buf, "segment_offset|", len );
+                        STRNCATF( buf, "%s|", datatype, len );
+
+                        len -= format_seg( op, buf, len, xml_syntax );
+
+                        STRNCATF( buf, "%08" PRIX32 "|", op->data.sdword, len );
+                        break;
+
+                case op_unused:
+                case op_unknown:
+                        /* return 0-truncated buffer */
+                        break;
+        }
+
+        return( strlen( buf ) );
+}
+
+int x86_format_operand( x86_op_t *op, char *buf, int len,
+                        enum x86_asm_format format ){
+	x86_insn_t *insn;
+
+        if ( ! op || ! buf || len < 1 ) {
+                return(0);
+        }
+
+	/* insn is stored in x86_op_t since .21-pre3 */
+	insn = (x86_insn_t *) op->insn;
+
+        memset( buf, 0, len );
+
+        switch ( format ) {
+                case att_syntax:
+                        return format_operand_att( op, insn, buf, len );
+                case xml_syntax:
+                        return format_operand_xml( op, insn, buf, len );
+                case raw_syntax:
+                        return format_operand_raw( op, insn, buf, len );
+                case native_syntax:
+                case intel_syntax:
+                default:
+                        return format_operand_native( op, insn, buf, len );
+        }
+}
+
+#define is_imm_jmp(op)   (op->type == op_absolute   || \
+                          op->type == op_immediate  || \
+                          op->type == op_offset)
+#define is_memory_op(op) (op->type == op_absolute   || \
+                          op->type == op_expression || \
+                          op->type == op_offset)
+
+static int format_att_mnemonic( x86_insn_t *insn, char *buf, int len) {
+        int size = 0;
+        const char *suffix;
+
+        if (! insn || ! buf || ! len )
+                return(0);
+
+        memset( buf, 0, len );
+
+        /* do long jump/call prefix */
+        if ( insn->type == insn_jmp || insn->type == insn_call ) {
+                if (! is_imm_jmp( x86_operand_1st(insn) ) ||
+                     (x86_operand_1st(insn))->datatype != op_byte ) {
+                    /* far jump/call, use "l" prefix */
+                    STRNCAT( buf, "l", len );
+                }
+                STRNCAT( buf, insn->mnemonic, len );
+
+                return ( strlen( buf ) );
+        }
+
+        /* do mnemonic */
+        STRNCAT( buf, insn->mnemonic, len );
+
+        /* do suffixes for memory operands */
+        if (!(insn->note & insn_note_nosuffix) &&
+            (insn->group == insn_arithmetic ||
+             insn->group == insn_logic ||
+             insn->group == insn_move ||
+             insn->group == insn_stack ||
+             insn->group == insn_string ||
+             insn->group == insn_comparison ||
+             insn->type == insn_in ||
+             insn->type == insn_out
+            )) {
+            if ( x86_operand_count( insn, op_explicit ) > 0 &&
+                 is_memory_op( x86_operand_1st(insn) ) ){
+                size = x86_operand_size( x86_operand_1st( insn ) );
+            } else if ( x86_operand_count( insn, op_explicit ) > 1 &&
+                        is_memory_op( x86_operand_2nd(insn) ) ){
+                size = x86_operand_size( x86_operand_2nd( insn ) );
+            }
+        }
+
+        if ( size == 1 ) suffix = "b";
+        else if ( size == 2 ) suffix = "w";
+        else if ( size == 4 ) suffix = "l";
+        else if ( size == 8 ) suffix = "q";
+        else suffix = "";
+
+        STRNCAT( buf, suffix, len );
+        return ( strlen( buf ) );
+}
+
+int x86_format_mnemonic(x86_insn_t *insn, char *buf, int len,
+                        enum x86_asm_format format){
+        char str[MAX_OP_STRING];
+
+        memset( buf, 0, len );
+        STRNCAT( buf, insn->prefix_string, len );
+        if ( format == att_syntax ) {
+                format_att_mnemonic( insn, str, sizeof str );
+                STRNCAT( buf, str, len );
+        } else {
+                STRNCAT( buf, insn->mnemonic, len );
+        }
+
+        return( strlen( buf ) );
+}
+
+struct op_string { char *buf; size_t len; };
+
+static void format_op_raw( x86_op_t *op, x86_insn_t *insn, void *arg ) {
+	struct op_string * opstr = (struct op_string *) arg;
+
+        format_operand_raw(op, insn, opstr->buf, opstr->len);
+}
+
+static int format_insn_note(x86_insn_t *insn, char *buf, int len){
+	char note[32] = {0};
+	int len_orig = len, note_len = 32;
+
+	if ( insn->note & insn_note_ring0 ) {
+        	STRNCATF( note, "%s", "Ring0 ", note_len );
+	}
+	if ( insn->note & insn_note_smm ) {
+        	STRNCATF( note, "%s", "SMM ", note_len );
+	}
+	if ( insn->note & insn_note_serial ) {
+        	STRNCATF(note, "%s", "Serialize ", note_len );
+	}
+        STRNCATF( buf, "%s|", note, len );
+
+        return( len_orig - len );
+}
+
+static int format_raw_insn( x86_insn_t *insn, char *buf, int len ){
+	struct op_string opstr = { buf, len };
+        int i;
+
+        /* RAW style:
+         * ADDRESS|OFFSET|SIZE|BYTES|
+         * PREFIX|PREFIX_STRING|GROUP|TYPE|NOTES|
+	 * MNEMONIC|CPU|ISA|FLAGS_SET|FLAGS_TESTED|
+	 * STACK_MOD|STACK_MOD_VAL
+	 * [|OP_TYPE|OP_DATATYPE|OP_ACCESS|OP_FLAGS|OP]*
+         *
+         * Register values are encoded as:
+         * NAME:TYPE:SIZE
+         *
+         * Effective addresses are encoded as:
+         * disp(base_reg,index_reg,scale)
+         */
+        STRNCATF( buf, "0x%08" PRIX32 "|", insn->addr  , len );
+        STRNCATF( buf, "0x%08" PRIX32 "|", insn->offset, len );
+        STRNCATF( buf, "%d|"    , insn->size  , len );
+
+        /* print bytes */
+        for ( i = 0; i < insn->size; i++ ) {
+                STRNCATF( buf, "%02X ", insn->bytes[i], len );
+        }
+        STRNCAT( buf, "|", len );
+
+        len -= format_insn_prefix_str( insn->prefix, buf, len );
+        STRNCATF( buf, "|%s|", insn->prefix_string             , len );
+        STRNCATF( buf, "%s|", get_insn_group_str( insn->group ), len );
+        STRNCATF( buf, "%s|", get_insn_type_str( insn->type )  , len );
+        STRNCATF( buf, "%s|", insn->mnemonic                   , len );
+        STRNCATF( buf, "%s|", get_insn_cpu_str( insn->cpu )  , len );
+        STRNCATF( buf, "%s|", get_insn_isa_str( insn->isa )  , len );
+
+	/* insn note */
+	len -= format_insn_note( insn, buf, len );
+
+        len -= format_insn_eflags_str( insn->flags_set, buf, len );
+        STRNCAT( buf, "|", len );
+        len -= format_insn_eflags_str( insn->flags_tested, buf, len );
+        STRNCAT( buf, "|", len );
+        STRNCATF( buf, "%d|", insn->stack_mod, len );
+        STRNCATF( buf, "%" PRId32 "|", insn->stack_mod_val, len );
+
+	opstr.len = len;
+	x86_operand_foreach( insn, format_op_raw, &opstr, op_any );
+
+        return( strlen (buf) );
+}
+
+static int format_xml_insn( x86_insn_t *insn, char *buf, int len ) {
+        char str[MAX_OP_XML_STRING];
+        int i;
+
+        STRNCAT( buf, "<x86_insn>\n", len );
+
+        STRNCATF( buf, "\t<address rva=\"0x%08" PRIX32 "\" ", insn->addr, len );
+        STRNCATF( buf, "offset=\"0x%08" PRIX32 "\" ", insn->offset, len );
+        STRNCATF( buf, "size=%d bytes=\"", insn->size, len );
+
+        for ( i = 0; i < insn->size; i++ ) {
+                STRNCATF( buf, "%02X ", insn->bytes[i], len );
+        }
+        STRNCAT( buf, "\"/>\n", len );
+
+        STRNCAT( buf, "\t<prefix type=\"", len );
+        len -= format_insn_prefix_str( insn->prefix, buf, len );
+        STRNCATF( buf, "\" string=\"%s\"/>\n", insn->prefix_string, len );
+
+        STRNCATF( buf, "\t<mnemonic group=\"%s\" ",
+                  get_insn_group_str (insn->group), len );
+        STRNCATF( buf, "type=\"%s\" ", get_insn_type_str (insn->type), len );
+        STRNCATF( buf, "string=\"%s\"/>\n", insn->mnemonic, len );
+
+        STRNCAT( buf, "\t<flags type=set>\n", len );
+        STRNCAT( buf, "\t\t<flag name=\"", len );
+        len -= format_insn_eflags_str( insn->flags_set, buf, len );
+        STRNCAT( buf, "\"/>\n\t</flags>\n", len );
+
+
+        STRNCAT( buf, "\t<flags type=tested>\n", len );
+        STRNCAT( buf, "\t\t<flag name=\"", len );
+        len -= format_insn_eflags_str( insn->flags_tested, buf, len );
+        STRNCAT( buf, "\"/>\n\t</flags>\n", len );
+
+	if ( x86_operand_1st( insn ) ) {
+        	x86_format_operand( x86_operand_1st(insn), str,
+                           sizeof str, xml_syntax);
+        	STRNCAT( buf, "\t<operand name=dest>\n", len );
+        	STRNCAT( buf, str, len );
+        	STRNCAT( buf, "\t</operand>\n", len );
+	}
+
+	if ( x86_operand_2nd( insn ) ) {
+        	x86_format_operand( x86_operand_2nd( insn ), str,
+                           sizeof str, xml_syntax);
+        	STRNCAT( buf, "\t<operand name=src>\n", len );
+        	STRNCAT( buf, str, len );
+        	STRNCAT( buf, "\t</operand>\n", len );
+	}
+
+	if ( x86_operand_3rd( insn ) ) {
+        	x86_format_operand( x86_operand_3rd(insn), str,
+                           sizeof str, xml_syntax);
+        	STRNCAT( buf, "\t<operand name=imm>\n", len );
+        	STRNCAT( buf, str, len );
+        	STRNCAT( buf, "\t</operand>\n", len );
+	}
+
+        STRNCAT( buf, "</x86_insn>\n", len );
+
+        return strlen (buf);
+}
+
+int x86_format_header( char *buf, int len, enum x86_asm_format format ) {
+        switch (format) {
+                case att_syntax:
+                        snprintf( buf, len, "MNEMONIC\tSRC, DEST, IMM" );
+                        break;
+                case intel_syntax:
+                        snprintf( buf, len, "MNEMONIC\tDEST, SRC, IMM" );
+                        break;
+                case native_syntax:
+                        snprintf( buf, len, "ADDRESS\tBYTES\tMNEMONIC\t"
+                                            "DEST\tSRC\tIMM" );
+                        break;
+                case raw_syntax:
+                        snprintf( buf, len, "ADDRESS|OFFSET|SIZE|BYTES|"
+                               "PREFIX|PREFIX_STRING|GROUP|TYPE|NOTES|"
+			       "MNEMONIC|CPU|ISA|FLAGS_SET|FLAGS_TESTED|"
+			       "STACK_MOD|STACK_MOD_VAL"
+			       "[|OP_TYPE|OP_DATATYPE|OP_ACCESS|OP_FLAGS|OP]*"
+                                );
+                        break;
+                case xml_syntax:
+                        snprintf( buf, len,
+                                  "<x86_insn>"
+                                      "<address rva= offset= size= bytes=/>"
+                                      "<prefix type= string=/>"
+                                      "<mnemonic group= type= string= "
+				      "cpu= isa= note= />"
+                                      "<flags type=set>"
+                                          "<flag name=>"
+                                      "</flags>"
+				      "<stack_mod val= >"
+                                      "<flags type=tested>"
+                                          "<flag name=>"
+                                      "</flags>"
+                                      "<operand name=>"
+                                          "<register name= type= size=/>"
+                                          "<immediate type= value=/>"
+                                          "<relative_offset value=/>"
+                                          "<absolute_address value=>"
+                                              "<segment value=/>"
+                                          "</absolute_address>"
+                                          "<address_expression>"
+                                              "<segment value=/>"
+                                              "<base>"
+                                                  "<register name= type= size=/>"
+                                              "</base>"
+                                              "<index>"
+                                                  "<register name= type= size=/>"
+                                              "</index>"
+                                              "<scale>"
+                                                  "<immediate value=/>"
+                                              "</scale>"
+                                              "<displacement>"
+                                                  "<immediate value=/>"
+                                                  "<address value=/>"
+                                              "</displacement>"
+                                          "</address_expression>"
+                                          "<segment_offset>"
+                                              "<address value=/>"
+                                          "</segment_offset>"
+                                      "</operand>"
+                                  "</x86_insn>"
+                                );
+                        break;
+		case unknown_syntax:
+			if ( len ) {
+				buf[0] = '\0';
+			}
+			break;
+        }
+
+        return( strlen(buf) );
+}
+
+int x86_format_insn( x86_insn_t *insn, char *buf, int len,
+                     enum x86_asm_format format ){
+        char str[MAX_OP_STRING];
+        x86_op_t *src, *dst;
+        int i;
+
+        memset(buf, 0, len);
+        if ( format == intel_syntax ) {
+                /* INTEL STYLE: mnemonic dest, src, imm */
+                STRNCAT( buf, insn->prefix_string, len );
+                STRNCAT( buf, insn->mnemonic, len );
+                STRNCAT( buf, "\t", len );
+
+                /* dest */
+		if ( (dst = x86_operand_1st( insn )) && !(dst->flags & op_implied) ) {
+        		x86_format_operand( dst, str, MAX_OP_STRING, format);
+                	STRNCAT( buf, str, len );
+                }
+
+                /* src */
+		if ( (src = x86_operand_2nd( insn )) ) {
+                        if ( !(dst->flags & op_implied) ) {
+                	        STRNCAT( buf, ", ", len );
+                        }
+        		x86_format_operand( src, str, MAX_OP_STRING, format);
+                	STRNCAT( buf, str, len );
+                }
+
+                /* imm */
+		if ( x86_operand_3rd( insn )) {
+                	STRNCAT( buf, ", ", len );
+        		x86_format_operand( x86_operand_3rd( insn ), 
+				str, MAX_OP_STRING, format);
+                	STRNCAT( buf, str, len );
+		}
+
+        } else if ( format == att_syntax ) {
+                /* ATT STYLE: mnemonic src, dest, imm */
+                STRNCAT( buf, insn->prefix_string, len );
+                format_att_mnemonic(insn, str, MAX_OP_STRING);
+                STRNCATF( buf, "%s\t", str, len);
+
+
+		/* not sure which is correct? sometimes GNU as requires
+		 * an imm as the first operand, sometimes as the third... */
+                /* imm */
+		if ( x86_operand_3rd( insn ) ) {
+        		x86_format_operand(x86_operand_3rd( insn ), 
+				str, MAX_OP_STRING, format);
+                	STRNCAT( buf, str, len );
+			/* there is always 'dest' operand if there is 'src' */
+			STRNCAT( buf, ", ", len );
+		}
+
+                if ( (insn->note & insn_note_nonswap ) == 0 ) {
+                        /* regular AT&T style swap */
+                        src = x86_operand_2nd( insn );
+                        dst = x86_operand_1st( insn );
+                }
+                else {
+                        /* special-case instructions */
+                        src = x86_operand_1st( insn );
+                        dst = x86_operand_2nd( insn );
+                }
+
+                /* src */
+                if ( src ) {
+                        x86_format_operand(src, str, MAX_OP_STRING, format);
+                        STRNCAT( buf, str, len );
+                        /* there is always 'dest' operand if there is 'src' */
+                        if ( dst && !(dst->flags & op_implied) ) {
+                                STRNCAT( buf, ", ", len );
+                        }
+                }
+
+                /* dest */
+                if ( dst && !(dst->flags & op_implied) ) {
+                        x86_format_operand( dst, str, MAX_OP_STRING, format);
+                        STRNCAT( buf, str, len );
+                }
+
+
+        } else if ( format == raw_syntax ) {
+                format_raw_insn( insn, buf, len );
+        } else if ( format == xml_syntax ) {
+                format_xml_insn( insn, buf, len );
+        } else { /* default to native */
+                /* NATIVE style: RVA\tBYTES\tMNEMONIC\tOPERANDS */
+                /* print address */
+                STRNCATF( buf, "%08" PRIX32 "\t", insn->addr, len );
+
+                /* print bytes */
+                for ( i = 0; i < insn->size; i++ ) {
+                        STRNCATF( buf, "%02X ", insn->bytes[i], len );
+                }
+
+                STRNCAT( buf, "\t", len );
+
+                /* print mnemonic */
+                STRNCAT( buf, insn->prefix_string, len );
+                STRNCAT( buf, insn->mnemonic, len );
+                STRNCAT( buf, "\t", len );
+
+                /* print operands */
+                /* dest */
+		if ( x86_operand_1st( insn )  ) {
+        		x86_format_operand( x86_operand_1st( insn ), 
+				str, MAX_OP_STRING, format);
+                	STRNCATF( buf, "%s\t", str, len );
+		}
+
+                /* src */
+		if ( x86_operand_2nd( insn ) ) {
+        		x86_format_operand(x86_operand_2nd( insn ), 
+				str, MAX_OP_STRING, format);
+                	STRNCATF( buf, "%s\t", str, len );
+		}
+
+                /* imm */
+		if ( x86_operand_3rd( insn )) {
+        		x86_format_operand( x86_operand_3rd( insn ), 
+				str, MAX_OP_STRING, format);
+                	STRNCAT( buf, str, len );
+		}
+        }
+
+        return( strlen( buf ) );
+}
+
diff --git a/src/third_party/libdisasm/x86_imm.c b/src/third_party/libdisasm/x86_imm.c
new file mode 100644
index 0000000..cd59bfc
--- /dev/null
+++ b/src/third_party/libdisasm/x86_imm.c
@@ -0,0 +1,70 @@
+#include "qword.h"
+#include "x86_imm.h"
+
+#include <stdio.h>
+
+unsigned int x86_imm_signsized( unsigned char * buf, size_t buf_len,
+				void *dest, unsigned int size ) {
+	signed char *cp = (signed char *) dest;
+	signed short *sp = (signed short *) dest;
+	int32_t *lp = (int32_t *) dest;
+	qword_t *qp = (qword_t *) dest;
+
+	if ( size > buf_len ) {
+		return 0;
+	}
+
+	/* Copy 'size' bytes from *buf to *op
+	 * return number of bytes copied */
+	switch (size) {
+		case 1:		/* BYTE */
+			*cp =  *((signed char *) buf);
+			break;
+		case 2:		/* WORD */
+			*sp =  *((signed short *) buf);
+			break;
+		case 6:
+		case 8:		/* QWORD */
+			*qp = *((qword_t *) buf);
+			break;
+		case 4:		/* DWORD */
+		default:
+			*lp = *((int32_t *) buf);
+			break;
+	}
+	return (size);
+}
+
+unsigned int x86_imm_sized( unsigned char * buf, size_t buf_len, void *dest,
+			    unsigned int size ) {
+	unsigned char *cp = (unsigned char *) dest;
+	unsigned short *sp = (unsigned short *) dest;
+	uint32_t *lp = (uint32_t *) dest;
+	qword_t *qp = (qword_t *) dest;
+
+	if ( size > buf_len ) {
+		return 0;
+	}
+
+	/* Copy 'size' bytes from *buf to *op
+	 * return number of bytes copied */
+	switch (size) {
+		case 1:		/* BYTE */
+			*cp =  *((unsigned char *) buf);
+			break;
+		case 2:		/* WORD */
+			*sp =  *((unsigned short *) buf);
+			break;
+		case 6:
+		case 8:		/* QWORD */
+			*qp = *((qword_t *) buf);
+			break;
+		case 4:		/* DWORD */
+		default:
+			*lp = *((uint32_t *) buf);
+			break;
+	}
+
+	return (size);
+}
+
diff --git a/src/third_party/libdisasm/x86_imm.h b/src/third_party/libdisasm/x86_imm.h
new file mode 100644
index 0000000..fa35ff2
--- /dev/null
+++ b/src/third_party/libdisasm/x86_imm.h
@@ -0,0 +1,18 @@
+#ifndef x86_IMM_H
+#define x86_IMM_H
+
+#include "./qword.h"
+#include <sys/types.h>
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+/* these are in the global x86 namespace but are not a part of the
+ * official API */
+unsigned int x86_imm_sized( unsigned char *buf, size_t buf_len, void *dest,
+			    unsigned int size );
+
+unsigned int x86_imm_signsized( unsigned char *buf, size_t buf_len, void *dest,
+				unsigned int size );
+#endif
diff --git a/src/third_party/libdisasm/x86_insn.c b/src/third_party/libdisasm/x86_insn.c
new file mode 100644
index 0000000..5649b89
--- /dev/null
+++ b/src/third_party/libdisasm/x86_insn.c
@@ -0,0 +1,182 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "libdis.h"
+
+#ifdef _MSC_VER
+        #define snprintf        _snprintf
+        #define inline          __inline
+#endif
+
+int x86_insn_is_valid( x86_insn_t *insn ) {
+	if ( insn && insn->type != insn_invalid && insn->size > 0 ) {
+		return 1;
+	}
+
+	return 0;
+}
+
+uint32_t x86_get_address( x86_insn_t *insn ) {
+	x86_oplist_t *op_lst;
+        if (! insn || ! insn->operands ) {
+        	return 0;
+        }
+
+	for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) {
+		if ( op_lst->op.type == op_offset ) {
+			return op_lst->op.data.offset;
+		} else if ( op_lst->op.type == op_absolute ) {
+			if ( op_lst->op.datatype == op_descr16 ) {
+				return (uint32_t)
+					op_lst->op.data.absolute.offset.off16;
+			}
+			return op_lst->op.data.absolute.offset.off32;
+		}
+	}
+	
+	return 0;
+}
+
+int32_t x86_get_rel_offset( x86_insn_t *insn ) {
+	x86_oplist_t *op_lst;
+        if (! insn || ! insn->operands ) {
+        	return 0;
+        }
+
+	for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) {
+		if ( op_lst->op.type == op_relative_near ) {
+			return (int32_t) op_lst->op.data.relative_near;
+		} else if ( op_lst->op.type == op_relative_far ) {
+			return op_lst->op.data.relative_far;
+		}
+	}
+	
+	return 0;
+}
+
+x86_op_t * x86_get_branch_target( x86_insn_t *insn ) {
+	x86_oplist_t *op_lst;
+        if (! insn || ! insn->operands ) {
+        	return NULL;
+        }
+
+	for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) {
+		if ( op_lst->op.access & op_execute ) {
+			return &(op_lst->op);
+		}
+	}
+	
+	return NULL;
+}
+x86_op_t * x86_get_imm( x86_insn_t *insn ) {
+	x86_oplist_t *op_lst;
+        if (! insn || ! insn->operands ) {
+        	return NULL;
+        }
+
+	for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) {
+		if ( op_lst->op.type == op_immediate ) {
+			return &(op_lst->op);
+		}
+	}
+	
+	return NULL;
+}
+
+#define IS_PROPER_IMM( x ) \
+	x->op.type == op_immediate && ! (x->op.flags & op_hardcode)
+							   
+
+/* if there is an immediate value in the instruction, return a pointer to
+ * it */
+unsigned char * x86_get_raw_imm( x86_insn_t *insn ) {
+        int size, offset;
+        x86_op_t *op  = NULL;
+
+        if (! insn || ! insn->operands ) {
+        	return(NULL);
+        }
+
+	/* a bit inelegant, but oh well... */
+	if ( IS_PROPER_IMM( insn->operands ) ) {
+		op = &insn->operands->op;
+	} else if ( insn->operands->next ) {
+		if ( IS_PROPER_IMM( insn->operands->next ) ) {
+			op = &insn->operands->next->op;
+		} else if ( insn->operands->next->next && 
+			    IS_PROPER_IMM( insn->operands->next->next ) ) {
+			op = &insn->operands->next->next->op;
+		}
+	}
+	
+	if (! op ) {
+		return( NULL );
+	}
+
+	/* immediate data is at the end of the insn */
+	size = x86_operand_size( op );
+	offset = insn->size - size;
+	return( &insn->bytes[offset] );
+}
+
+
+unsigned int x86_operand_size( x86_op_t *op ) {
+        switch (op->datatype ) {
+                case op_byte:    return 1;
+                case op_word:    return 2;
+                case op_dword:   return 4;
+                case op_qword:   return 8;
+                case op_dqword:  return 16;
+                case op_sreal:   return 4;
+                case op_dreal:   return 8;
+                case op_extreal: return 10;
+                case op_bcd:     return 10;
+                case op_ssimd:   return 16;
+                case op_dsimd:   return 16;
+                case op_sssimd:  return 4;
+                case op_sdsimd:  return 8;
+                case op_descr32: return 6;
+                case op_descr16: return 4;
+                case op_pdescr32: return 6;
+                case op_pdescr16: return 6;
+		case op_bounds16: return 4;
+		case op_bounds32: return 8;
+                case op_fpuenv16:  return 14;
+                case op_fpuenv32:  return 28;
+                case op_fpustate16:  return 94;
+                case op_fpustate32:  return 108;
+                case op_fpregset: return 512;
+		case op_fpreg: return 10;
+		case op_none: return 0;
+        }
+        return(4);      /* default size */
+}
+
+void x86_set_insn_addr( x86_insn_t *insn, uint32_t addr ) {
+        if ( insn ) insn->addr = addr;
+}
+
+void x86_set_insn_offset( x86_insn_t *insn, unsigned int offset ){
+        if ( insn ) insn->offset = offset;
+}
+
+void x86_set_insn_function( x86_insn_t *insn, void * func ){
+        if ( insn ) insn->function = func;
+}
+
+void x86_set_insn_block( x86_insn_t *insn, void * block ){
+        if ( insn ) insn->block = block;
+}
+
+void x86_tag_insn( x86_insn_t *insn ){
+        if ( insn ) insn->tag = 1;
+}
+
+void x86_untag_insn( x86_insn_t *insn ){
+        if ( insn ) insn->tag = 0;
+}
+
+int x86_insn_is_tagged( x86_insn_t *insn ){
+        return insn->tag;
+}
+
diff --git a/src/third_party/libdisasm/x86_misc.c b/src/third_party/libdisasm/x86_misc.c
new file mode 100644
index 0000000..3d2dd0a
--- /dev/null
+++ b/src/third_party/libdisasm/x86_misc.c
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "libdis.h"
+#include "ia32_insn.h"
+#include "ia32_reg.h"		/* for ia32_reg wrapper */
+#include "ia32_settings.h"
+extern ia32_settings_t ia32_settings;
+
+#ifdef _MSC_VER
+        #define snprintf        _snprintf
+        #define inline          __inline
+#endif
+
+
+/* =========================================================== INIT/TERM */
+static DISASM_REPORTER __x86_reporter_func = NULL;
+static void * __x86_reporter_arg = NULL;
+
+int x86_init( enum x86_options options, DISASM_REPORTER reporter, void * arg )
+{
+        ia32_settings.options = options;
+        __x86_reporter_func = reporter;
+	__x86_reporter_arg = arg;
+
+        return 1;
+}
+
+void x86_set_reporter( DISASM_REPORTER reporter, void * arg ) {
+        __x86_reporter_func = reporter;
+	__x86_reporter_arg = arg;
+}
+
+void x86_set_options( enum x86_options options ){
+        ia32_settings.options = options;
+}
+
+enum x86_options x86_get_options( void ) {
+        return ia32_settings.options;
+}
+
+int x86_cleanup( void )
+{
+        return 1;
+}
+
+/* =========================================================== ERRORS */
+void x86_report_error( enum x86_report_codes code, void *data ) {
+        if ( __x86_reporter_func ) {
+                (*__x86_reporter_func)(code, data, __x86_reporter_arg);
+        }
+}
+
+
+/* =========================================================== MISC */
+unsigned int x86_endian(void)        { return ia32_settings.endian;  }
+unsigned int x86_addr_size(void)     { return ia32_settings.sz_addr; }
+unsigned int x86_op_size(void)       { return ia32_settings.sz_oper; }
+unsigned int x86_word_size(void)     { return ia32_settings.sz_word; }
+unsigned int x86_max_insn_size(void) { return ia32_settings.max_insn; }
+unsigned int x86_sp_reg(void)        { return ia32_settings.id_sp_reg;      }
+unsigned int x86_fp_reg(void)        { return ia32_settings.id_fp_reg;      }
+unsigned int x86_ip_reg(void)        { return ia32_settings.id_ip_reg;      }
+unsigned int x86_flag_reg(void)        { return ia32_settings.id_flag_reg;  }
+
+/* wrapper function to hide the IA32 register fn */
+void x86_reg_from_id( unsigned int id, x86_reg_t * reg ) {
+	ia32_handle_register( reg, id );
+	return;
+}
diff --git a/src/third_party/libdisasm/x86_operand_list.c b/src/third_party/libdisasm/x86_operand_list.c
new file mode 100644
index 0000000..95409e0
--- /dev/null
+++ b/src/third_party/libdisasm/x86_operand_list.c
@@ -0,0 +1,191 @@
+#include <stdlib.h>
+#include "libdis.h"
+
+
+static void x86_oplist_append( x86_insn_t *insn, x86_oplist_t *op ) {
+	x86_oplist_t *list;
+
+	if (! insn ) {	
+		return;
+	}
+
+	list = insn->operands;
+	if (! list ) {
+		insn->operand_count = 1;
+		/* Note that we have no way of knowing if this is an
+		 * exlicit operand or not, since the caller fills 
+		 * the x86_op_t after we return. We increase the
+		 * explicit count automatically, and ia32_insn_implicit_ops
+		 * decrements it */
+		insn->explicit_count = 1;
+		insn->operands = op;
+		return;
+	}
+
+	/* get to end of list */
+	for ( ; list->next; list = list->next ) 
+		;
+
+	insn->operand_count = insn->operand_count + 1;
+	insn->explicit_count = insn->explicit_count + 1;
+	list->next = op;
+
+	return;
+}
+	
+x86_op_t * x86_operand_new( x86_insn_t *insn ) {
+	x86_oplist_t *op;
+
+	if (! insn ) {	
+		return(NULL);
+	}
+	op = calloc( sizeof(x86_oplist_t), 1 );
+	op->op.insn = insn;
+	x86_oplist_append( insn, op );
+	return( &(op->op) );
+}
+
+void x86_oplist_free( x86_insn_t *insn ) {
+	x86_oplist_t *op, *list;
+
+	if (! insn ) {
+		return;
+	}
+
+	for ( list = insn->operands; list; ) {
+		op = list;
+		list = list->next;
+		free(op);
+	}
+
+	insn->operands = NULL;
+	insn->operand_count = 0;
+	insn->explicit_count = 0;
+
+	return;
+}
+
+/* ================================================== LIBDISASM API */
+/* these could probably just be #defines, but that means exposing the
+   enum... yet one more confusing thing in the API */
+int x86_operand_foreach( x86_insn_t *insn, x86_operand_fn func, void *arg, 
+	       		enum x86_op_foreach_type type ){
+	x86_oplist_t *list;
+	char explicit = 1, implicit = 1;
+
+	if (! insn || ! func ) {
+		return 0;
+	}
+	
+	/* note: explicit and implicit can be ORed together to
+	 * allow an "all" limited by access type, even though the
+	 * user is stupid to do this since it is default behavior :) */
+	if ( (type & op_explicit) && ! (type & op_implicit) ) {
+		implicit = 0;
+	}
+	if ( (type & op_implicit) && ! (type & op_explicit) ) {
+		explicit = 0;
+	}
+
+	type = type & 0x0F; /* mask out explicit/implicit operands */
+
+	for ( list = insn->operands; list; list = list->next ) {
+		if (! implicit && (list->op.flags & op_implied) ) {
+			/* operand is implicit */
+			continue;
+		}
+
+		if (! explicit && ! (list->op.flags & op_implied) ) {
+			/* operand is not implicit */
+			continue;
+		}
+
+		switch ( type ) {
+			case op_any:
+				break;
+			case op_dest:
+				if (! (list->op.access & op_write) ) {
+					continue;
+				}
+				break;
+			case op_src:
+				if (! (list->op.access & op_read) ) {
+					continue;
+				}
+				break;
+			case op_ro:
+				if (! (list->op.access & op_read) ||
+				      (list->op.access & op_write ) ) {
+					continue;
+				}
+				break;
+			case op_wo:
+				if (! (list->op.access & op_write) ||
+				      (list->op.access & op_read ) ) {
+					continue;
+				}
+				break;
+			case op_xo:
+				if (! (list->op.access & op_execute) ) {
+					continue;
+				}
+				break;
+			case op_rw:
+				if (! (list->op.access & op_write) ||
+				    ! (list->op.access & op_read ) ) {
+					continue;
+				}
+				break;
+			case op_implicit: case op_explicit: /* make gcc happy */
+					  break;
+		}
+		/* any non-continue ends up here: invoke the callback */
+		(*func)( &list->op, insn, arg );
+	}
+
+	return 1;
+}
+
+static void count_operand( x86_op_t *op, x86_insn_t *insn, void *arg ) {
+	size_t * count = (size_t *) arg;
+	*count = *count + 1;
+}
+
+size_t x86_operand_count( x86_insn_t *insn, enum x86_op_foreach_type type ) {
+	size_t count = 0;
+	
+	/* save us a list traversal for common counts... */
+	if ( type == op_any ) {
+		return insn->operand_count;
+	} else if ( type == op_explicit ) {
+		return insn->explicit_count;
+	}
+
+	x86_operand_foreach( insn, count_operand, &count, type );
+	return count;
+}
+
+/* accessor functions */
+x86_op_t * x86_operand_1st( x86_insn_t *insn ) {
+	if (! insn->explicit_count ) {
+		return NULL;
+	}
+
+	return &(insn->operands->op);
+}
+
+x86_op_t * x86_operand_2nd( x86_insn_t *insn ) {
+	if ( insn->explicit_count < 2 ) {
+		return NULL;
+	}
+
+	return &(insn->operands->next->op);
+}
+
+x86_op_t * x86_operand_3rd( x86_insn_t *insn ) {
+	if ( insn->explicit_count < 3 ) {
+		return NULL;
+	}
+
+	return &(insn->operands->next->next->op);
+}
diff --git a/src/third_party/libdisasm/x86_operand_list.h b/src/third_party/libdisasm/x86_operand_list.h
new file mode 100644
index 0000000..5366865
--- /dev/null
+++ b/src/third_party/libdisasm/x86_operand_list.h
@@ -0,0 +1,8 @@
+#ifndef X86_OPERAND_LIST_H
+#define X86_OPERAND_LIST_H
+#include "libdis.h"
+
+
+x86_op_t * x86_operand_new( x86_insn_t *insn );
+
+#endif
diff --git a/src/third_party/linux/include/gflags/gflags_completions.h b/src/third_party/linux/include/gflags/gflags_completions.h
new file mode 100644
index 0000000..9d9ce7a
--- /dev/null
+++ b/src/third_party/linux/include/gflags/gflags_completions.h
@@ -0,0 +1,121 @@
+// Copyright (c) 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// ---
+// Author: Dave Nicponski
+//
+// Implement helpful bash-style command line flag completions
+//
+// ** Functional API:
+// HandleCommandLineCompletions() should be called early during
+// program startup, but after command line flag code has been
+// initialized, such as the beginning of HandleCommandLineHelpFlags().
+// It checks the value of the flag --tab_completion_word.  If this
+// flag is empty, nothing happens here.  If it contains a string,
+// however, then HandleCommandLineCompletions() will hijack the
+// process, attempting to identify the intention behind this
+// completion.  Regardless of the outcome of this deduction, the
+// process will be terminated, similar to --helpshort flag
+// handling.
+//
+// ** Overview of Bash completions:
+// Bash can be told to programatically determine completions for the
+// current 'cursor word'.  It does this by (in this case) invoking a
+// command with some additional arguments identifying the command
+// being executed, the word being completed, and the previous word
+// (if any).  Bash then expects a sequence of output lines to be
+// printed to stdout.  If these lines all contain a common prefix
+// longer than the cursor word, bash will replace the cursor word
+// with that common prefix, and display nothing.  If there isn't such
+// a common prefix, bash will display the lines in pages using 'more'.
+//
+// ** Strategy taken for command line completions:
+// If we can deduce either the exact flag intended, or a common flag
+// prefix, we'll output exactly that.  Otherwise, if information
+// must be displayed to the user, we'll take the opportunity to add
+// some helpful information beyond just the flag name (specifically,
+// we'll include the default flag value and as much of the flag's
+// description as can fit on a single terminal line width, as specified
+// by the flag --tab_completion_columns).  Furthermore, we'll try to
+// make bash order the output such that the most useful or relevent
+// flags are the most likely to be shown at the top.
+//
+// ** Additional features:
+// To assist in finding that one really useful flag, substring matching
+// was implemented.  Before pressing a <TAB> to get completion for the
+// current word, you can append one or more '?' to the flag to do
+// substring matching.  Here's the semantics:
+//   --foo<TAB>     Show me all flags with names prefixed by 'foo'
+//   --foo?<TAB>    Show me all flags with 'foo' somewhere in the name
+//   --foo??<TAB>   Same as prior case, but also search in module
+//                  definition path for 'foo'
+//   --foo???<TAB>  Same as prior case, but also search in flag
+//                  descriptions for 'foo'
+// Finally, we'll trim the output to a relatively small number of
+// flags to keep bash quiet about the verbosity of output.  If one
+// really wanted to see all possible matches, appending a '+' to the
+// search word will force the exhaustive list of matches to be printed.
+//
+// ** How to have bash accept completions from a binary:
+// Bash requires that it be informed about each command that programmatic
+// completion should be enabled for.  Example addition to a .bashrc
+// file would be (your path to gflags_completions.sh file may differ):
+
+/*
+$ complete -o bashdefault -o default -o nospace -C                        \
+ '/usr/local/bin/gflags_completions.sh --tab_completion_columns $COLUMNS' \
+  time  env  binary_name  another_binary  [...]
+*/
+
+// This would allow the following to work:
+//   $ /path/to/binary_name --vmodule<TAB>
+// Or:
+//   $ ./bin/path/another_binary --gfs_u<TAB>
+// (etc)
+//
+// Sadly, it appears that bash gives no easy way to force this behavior for
+// all commands.  That's where the "time" in the above example comes in.
+// If you haven't specifically added a command to the list of completion
+// supported commands, you can still get completions by prefixing the
+// entire command with "env".
+//   $ env /some/brand/new/binary --vmod<TAB>
+// Assuming that "binary" is a newly compiled binary, this should still
+// produce the expected completion output.
+
+
+#ifndef GOOGLE_GFLAGS_COMPLETIONS_H_
+#define GOOGLE_GFLAGS_COMPLETIONS_H_
+
+namespace google {
+
+void HandleCommandLineCompletions(void);
+
+}
+
+#endif  // GOOGLE_GFLAGS_COMPLETIONS_H_
diff --git a/src/third_party/mac_headers/README b/src/third_party/mac_headers/README
new file mode 100644
index 0000000..c681bb3
--- /dev/null
+++ b/src/third_party/mac_headers/README
@@ -0,0 +1,2 @@
+These headers were copied from the Mac OS X 10.7 SDK to enable building
+the Mac dump_syms code that processes Mach-O files on Linux.
diff --git a/src/third_party/mac_headers/architecture/byte_order.h b/src/third_party/mac_headers/architecture/byte_order.h
new file mode 100644
index 0000000..b772d9f
--- /dev/null
+++ b/src/third_party/mac_headers/architecture/byte_order.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 1999-2008 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1992 NeXT Computer, Inc.
+ *
+ * Byte ordering conversion.
+ *
+ */
+/* This file mostly left blank */
+
+#ifndef _ARCHITECTURE_BYTE_ORDER_H_
+#define _ARCHITECTURE_BYTE_ORDER_H_
+
+/*
+ * Identify the byte order
+ * of the current host.
+ */
+
+enum NXByteOrder {
+    NX_UnknownByteOrder,
+    NX_LittleEndian,
+    NX_BigEndian
+};
+
+#endif  /* _ARCHITECTURE_BYTE_ORDER_H_ */
diff --git a/src/third_party/mac_headers/i386/_types.h b/src/third_party/mac_headers/i386/_types.h
new file mode 100644
index 0000000..2ed7fd6
--- /dev/null
+++ b/src/third_party/mac_headers/i386/_types.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+#ifndef	_BSD_I386__TYPES_H_
+#define	_BSD_I386__TYPES_H_
+
+typedef long			__darwin_intptr_t;
+typedef unsigned int		__darwin_natural_t;
+
+#endif	/* _BSD_I386__TYPES_H_ */
diff --git a/src/third_party/mac_headers/mach-o/arch.h b/src/third_party/mac_headers/mach-o/arch.h
new file mode 100644
index 0000000..526c10f
--- /dev/null
+++ b/src/third_party/mac_headers/mach-o/arch.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _MACH_O_ARCH_H_
+#define _MACH_O_ARCH_H_
+/*
+ * Copyright (c) 1997 Apple Computer, Inc.
+ *
+ * Functions that deal with information about architectures.
+ *
+ */
+
+#include <stdint.h>
+#include <mach/machine.h>
+#include <architecture/byte_order.h>
+
+/* The NXArchInfo structs contain the architectures symbolic name
+ * (such as "ppc"), its CPU type and CPU subtype as defined in
+ * mach/machine.h, the byte order for the architecture, and a
+ * describing string (such as "PowerPC").
+ * There will both be entries for specific CPUs (such as ppc604e) as
+ * well as generic "family" entries (such as ppc).
+ */
+typedef struct {
+    const char *name;
+    cpu_type_t cputype;
+    cpu_subtype_t cpusubtype;
+    enum NXByteOrder byteorder;
+    const char *description;
+} NXArchInfo;
+
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* NXGetAllArchInfos() returns a pointer to an array of all known
+ * NXArchInfo structures.  The last NXArchInfo is marked by a NULL name.
+ */
+extern const NXArchInfo *NXGetAllArchInfos(void);
+
+/* NXGetLocalArchInfo() returns the NXArchInfo for the local host, or NULL
+ * if none is known. 
+ */
+extern const NXArchInfo *NXGetLocalArchInfo(void);
+
+/* NXGetArchInfoFromName() and NXGetArchInfoFromCpuType() return the
+ * NXArchInfo from the architecture's name or cputype/cpusubtype
+ * combination.  A cpusubtype of CPU_SUBTYPE_MULTIPLE can be used
+ * to request the most general NXArchInfo known for the given cputype.
+ * NULL is returned if no matching NXArchInfo can be found.
+ */
+extern const NXArchInfo *NXGetArchInfoFromName(const char *name);
+extern const NXArchInfo *NXGetArchInfoFromCpuType(cpu_type_t cputype,
+						  cpu_subtype_t cpusubtype);
+
+/* NXFindBestFatArch() is passed a cputype and cpusubtype and a set of
+ * fat_arch structs and selects the best one that matches (if any) and returns
+ * a pointer to that fat_arch struct (or NULL).  The fat_arch structs must be
+ * in the host byte order and correct such that the fat_archs really points to
+ * enough memory for nfat_arch structs.  It is possible that this routine could
+ * fail if new cputypes or cpusubtypes are added and an old version of this
+ * routine is used.  But if there is an exact match between the cputype and
+ * cpusubtype and one of the fat_arch structs this routine will always succeed.
+ */
+extern struct fat_arch *NXFindBestFatArch(cpu_type_t cputype,
+					  cpu_subtype_t cpusubtype,
+					  struct fat_arch *fat_archs,
+					  uint32_t nfat_archs);
+
+/* NXCombineCpuSubtypes() returns the resulting cpusubtype when combining two
+ * different cpusubtypes for the specified cputype.  If the two cpusubtypes
+ * can't be combined (the specific subtypes are mutually exclusive) -1 is
+ * returned indicating it is an error to combine them.  This can also fail and
+ * return -1 if new cputypes or cpusubtypes are added and an old version of
+ * this routine is used.  But if the cpusubtypes are the same they can always
+ * be combined and this routine will return the cpusubtype pass in.
+ */
+extern cpu_subtype_t NXCombineCpuSubtypes(cpu_type_t cputype,
+					  cpu_subtype_t cpusubtype1,
+					  cpu_subtype_t cpusubtype2);
+
+#if __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _MACH_O_ARCH_H_ */
diff --git a/src/third_party/mac_headers/mach-o/fat.h b/src/third_party/mac_headers/mach-o/fat.h
new file mode 100644
index 0000000..e2bcf43
--- /dev/null
+++ b/src/third_party/mac_headers/mach-o/fat.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _MACH_O_FAT_H_
+#define _MACH_O_FAT_H_
+/*
+ * This header file describes the structures of the file format for "fat"
+ * architecture specific file (wrapper design).  At the begining of the file
+ * there is one fat_header structure followed by a number of fat_arch
+ * structures.  For each architecture in the file, specified by a pair of
+ * cputype and cpusubtype, the fat_header describes the file offset, file
+ * size and alignment in the file of the architecture specific member.
+ * The padded bytes in the file to place each member on it's specific alignment
+ * are defined to be read as zeros and can be left as "holes" if the file system
+ * can support them as long as they read as zeros.
+ *
+ * All structures defined here are always written and read to/from disk
+ * in big-endian order.
+ */
+
+/*
+ * <mach/machine.h> is needed here for the cpu_type_t and cpu_subtype_t types
+ * and contains the constants for the possible values of these types.
+ */
+#include <stdint.h>
+#include <mach/machine.h>
+#include <architecture/byte_order.h>
+
+#define FAT_MAGIC	0xcafebabe
+#define FAT_CIGAM	0xbebafeca	/* NXSwapLong(FAT_MAGIC) */
+
+struct fat_header {
+	uint32_t	magic;		/* FAT_MAGIC */
+	uint32_t	nfat_arch;	/* number of structs that follow */
+};
+
+struct fat_arch {
+	cpu_type_t	cputype;	/* cpu specifier (int) */
+	cpu_subtype_t	cpusubtype;	/* machine specifier (int) */
+	uint32_t	offset;		/* file offset to this object file */
+	uint32_t	size;		/* size of this object file */
+	uint32_t	align;		/* alignment as a power of 2 */
+};
+
+#endif /* _MACH_O_FAT_H_ */
diff --git a/src/third_party/mac_headers/mach-o/loader.h b/src/third_party/mac_headers/mach-o/loader.h
new file mode 100644
index 0000000..ff18e29
--- /dev/null
+++ b/src/third_party/mac_headers/mach-o/loader.h
@@ -0,0 +1,1402 @@
+/*
+ * Copyright (c) 1999-2010 Apple Inc.  All Rights Reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _MACHO_LOADER_H_
+#define _MACHO_LOADER_H_
+
+/*
+ * This file describes the format of mach object files.
+ */
+#include <stdint.h>
+
+/*
+ * <mach/machine.h> is needed here for the cpu_type_t and cpu_subtype_t types
+ * and contains the constants for the possible values of these types.
+ */
+#include <mach/machine.h>
+
+/*
+ * <mach/vm_prot.h> is needed here for the vm_prot_t type and contains the 
+ * constants that are or'ed together for the possible values of this type.
+ */
+#include <mach/vm_prot.h>
+
+/*
+ * <machine/thread_status.h> is expected to define the flavors of the thread
+ * states and the structures of those flavors for each machine.
+ */
+#include <mach/machine/thread_status.h>
+#include <architecture/byte_order.h>
+
+/*
+ * The 32-bit mach header appears at the very beginning of the object file for
+ * 32-bit architectures.
+ */
+struct mach_header {
+	uint32_t	magic;		/* mach magic number identifier */
+	cpu_type_t	cputype;	/* cpu specifier */
+	cpu_subtype_t	cpusubtype;	/* machine specifier */
+	uint32_t	filetype;	/* type of file */
+	uint32_t	ncmds;		/* number of load commands */
+	uint32_t	sizeofcmds;	/* the size of all the load commands */
+	uint32_t	flags;		/* flags */
+};
+
+/* Constant for the magic field of the mach_header (32-bit architectures) */
+#define	MH_MAGIC	0xfeedface	/* the mach magic number */
+#define MH_CIGAM	0xcefaedfe	/* NXSwapInt(MH_MAGIC) */
+
+/*
+ * The 64-bit mach header appears at the very beginning of object files for
+ * 64-bit architectures.
+ */
+struct mach_header_64 {
+	uint32_t	magic;		/* mach magic number identifier */
+	cpu_type_t	cputype;	/* cpu specifier */
+	cpu_subtype_t	cpusubtype;	/* machine specifier */
+	uint32_t	filetype;	/* type of file */
+	uint32_t	ncmds;		/* number of load commands */
+	uint32_t	sizeofcmds;	/* the size of all the load commands */
+	uint32_t	flags;		/* flags */
+	uint32_t	reserved;	/* reserved */
+};
+
+/* Constant for the magic field of the mach_header_64 (64-bit architectures) */
+#define MH_MAGIC_64 0xfeedfacf /* the 64-bit mach magic number */
+#define MH_CIGAM_64 0xcffaedfe /* NXSwapInt(MH_MAGIC_64) */
+
+/*
+ * The layout of the file depends on the filetype.  For all but the MH_OBJECT
+ * file type the segments are padded out and aligned on a segment alignment
+ * boundary for efficient demand pageing.  The MH_EXECUTE, MH_FVMLIB, MH_DYLIB,
+ * MH_DYLINKER and MH_BUNDLE file types also have the headers included as part
+ * of their first segment.
+ * 
+ * The file type MH_OBJECT is a compact format intended as output of the
+ * assembler and input (and possibly output) of the link editor (the .o
+ * format).  All sections are in one unnamed segment with no segment padding. 
+ * This format is used as an executable format when the file is so small the
+ * segment padding greatly increases its size.
+ *
+ * The file type MH_PRELOAD is an executable format intended for things that
+ * are not executed under the kernel (proms, stand alones, kernels, etc).  The
+ * format can be executed under the kernel but may demand paged it and not
+ * preload it before execution.
+ *
+ * A core file is in MH_CORE format and can be any in an arbritray legal
+ * Mach-O file.
+ *
+ * Constants for the filetype field of the mach_header
+ */
+#define	MH_OBJECT	0x1		/* relocatable object file */
+#define	MH_EXECUTE	0x2		/* demand paged executable file */
+#define	MH_FVMLIB	0x3		/* fixed VM shared library file */
+#define	MH_CORE		0x4		/* core file */
+#define	MH_PRELOAD	0x5		/* preloaded executable file */
+#define	MH_DYLIB	0x6		/* dynamically bound shared library */
+#define	MH_DYLINKER	0x7		/* dynamic link editor */
+#define	MH_BUNDLE	0x8		/* dynamically bound bundle file */
+#define	MH_DYLIB_STUB	0x9		/* shared library stub for static */
+					/*  linking only, no section contents */
+#define	MH_DSYM		0xa		/* companion file with only debug */
+					/*  sections */
+#define	MH_KEXT_BUNDLE	0xb		/* x86_64 kexts */
+
+/* Constants for the flags field of the mach_header */
+#define	MH_NOUNDEFS	0x1		/* the object file has no undefined
+					   references */
+#define	MH_INCRLINK	0x2		/* the object file is the output of an
+					   incremental link against a base file
+					   and can't be link edited again */
+#define MH_DYLDLINK	0x4		/* the object file is input for the
+					   dynamic linker and can't be staticly
+					   link edited again */
+#define MH_BINDATLOAD	0x8		/* the object file's undefined
+					   references are bound by the dynamic
+					   linker when loaded. */
+#define MH_PREBOUND	0x10		/* the file has its dynamic undefined
+					   references prebound. */
+#define MH_SPLIT_SEGS	0x20		/* the file has its read-only and
+					   read-write segments split */
+#define MH_LAZY_INIT	0x40		/* the shared library init routine is
+					   to be run lazily via catching memory
+					   faults to its writeable segments
+					   (obsolete) */
+#define MH_TWOLEVEL	0x80		/* the image is using two-level name
+					   space bindings */
+#define MH_FORCE_FLAT	0x100		/* the executable is forcing all images
+					   to use flat name space bindings */
+#define MH_NOMULTIDEFS	0x200		/* this umbrella guarantees no multiple
+					   defintions of symbols in its
+					   sub-images so the two-level namespace
+					   hints can always be used. */
+#define MH_NOFIXPREBINDING 0x400	/* do not have dyld notify the
+					   prebinding agent about this
+					   executable */
+#define MH_PREBINDABLE  0x800           /* the binary is not prebound but can
+					   have its prebinding redone. only used
+                                           when MH_PREBOUND is not set. */
+#define MH_ALLMODSBOUND 0x1000		/* indicates that this binary binds to
+                                           all two-level namespace modules of
+					   its dependent libraries. only used
+					   when MH_PREBINDABLE and MH_TWOLEVEL
+					   are both set. */ 
+#define MH_SUBSECTIONS_VIA_SYMBOLS 0x2000/* safe to divide up the sections into
+					    sub-sections via symbols for dead
+					    code stripping */
+#define MH_CANONICAL    0x4000		/* the binary has been canonicalized
+					   via the unprebind operation */
+#define MH_WEAK_DEFINES	0x8000		/* the final linked image contains
+					   external weak symbols */
+#define MH_BINDS_TO_WEAK 0x10000	/* the final linked image uses
+					   weak symbols */
+
+#define MH_ALLOW_STACK_EXECUTION 0x20000/* When this bit is set, all stacks 
+					   in the task will be given stack
+					   execution privilege.  Only used in
+					   MH_EXECUTE filetypes. */
+#define MH_ROOT_SAFE 0x40000           /* When this bit is set, the binary 
+					  declares it is safe for use in
+					  processes with uid zero */
+                                         
+#define MH_SETUID_SAFE 0x80000         /* When this bit is set, the binary 
+					  declares it is safe for use in
+					  processes when issetugid() is true */
+
+#define MH_NO_REEXPORTED_DYLIBS 0x100000 /* When this bit is set on a dylib, 
+					  the static linker does not need to
+					  examine dependent dylibs to see
+					  if any are re-exported */
+#define	MH_PIE 0x200000			/* When this bit is set, the OS will
+					   load the main executable at a
+					   random address.  Only used in
+					   MH_EXECUTE filetypes. */
+#define	MH_DEAD_STRIPPABLE_DYLIB 0x400000 /* Only for use on dylibs.  When
+					     linking against a dylib that
+					     has this bit set, the static linker
+					     will automatically not create a
+					     LC_LOAD_DYLIB load command to the
+					     dylib if no symbols are being
+					     referenced from the dylib. */
+#define MH_HAS_TLV_DESCRIPTORS 0x800000 /* Contains a section of type 
+					    S_THREAD_LOCAL_VARIABLES */
+
+#define MH_NO_HEAP_EXECUTION 0x1000000	/* When this bit is set, the OS will
+					   run the main executable with
+					   a non-executable heap even on
+					   platforms (e.g. i386) that don't
+					   require it. Only used in MH_EXECUTE
+					   filetypes. */
+
+/*
+ * The load commands directly follow the mach_header.  The total size of all
+ * of the commands is given by the sizeofcmds field in the mach_header.  All
+ * load commands must have as their first two fields cmd and cmdsize.  The cmd
+ * field is filled in with a constant for that command type.  Each command type
+ * has a structure specifically for it.  The cmdsize field is the size in bytes
+ * of the particular load command structure plus anything that follows it that
+ * is a part of the load command (i.e. section structures, strings, etc.).  To
+ * advance to the next load command the cmdsize can be added to the offset or
+ * pointer of the current load command.  The cmdsize for 32-bit architectures
+ * MUST be a multiple of 4 bytes and for 64-bit architectures MUST be a multiple
+ * of 8 bytes (these are forever the maximum alignment of any load commands).
+ * The padded bytes must be zero.  All tables in the object file must also
+ * follow these rules so the file can be memory mapped.  Otherwise the pointers
+ * to these tables will not work well or at all on some machines.  With all
+ * padding zeroed like objects will compare byte for byte.
+ */
+struct load_command {
+	uint32_t cmd;		/* type of load command */
+	uint32_t cmdsize;	/* total size of command in bytes */
+};
+
+/*
+ * After MacOS X 10.1 when a new load command is added that is required to be
+ * understood by the dynamic linker for the image to execute properly the
+ * LC_REQ_DYLD bit will be or'ed into the load command constant.  If the dynamic
+ * linker sees such a load command it it does not understand will issue a
+ * "unknown load command required for execution" error and refuse to use the
+ * image.  Other load commands without this bit that are not understood will
+ * simply be ignored.
+ */
+#define LC_REQ_DYLD 0x80000000
+
+/* Constants for the cmd field of all load commands, the type */
+#define	LC_SEGMENT	0x1	/* segment of this file to be mapped */
+#define	LC_SYMTAB	0x2	/* link-edit stab symbol table info */
+#define	LC_SYMSEG	0x3	/* link-edit gdb symbol table info (obsolete) */
+#define	LC_THREAD	0x4	/* thread */
+#define	LC_UNIXTHREAD	0x5	/* unix thread (includes a stack) */
+#define	LC_LOADFVMLIB	0x6	/* load a specified fixed VM shared library */
+#define	LC_IDFVMLIB	0x7	/* fixed VM shared library identification */
+#define	LC_IDENT	0x8	/* object identification info (obsolete) */
+#define LC_FVMFILE	0x9	/* fixed VM file inclusion (internal use) */
+#define LC_PREPAGE      0xa     /* prepage command (internal use) */
+#define	LC_DYSYMTAB	0xb	/* dynamic link-edit symbol table info */
+#define	LC_LOAD_DYLIB	0xc	/* load a dynamically linked shared library */
+#define	LC_ID_DYLIB	0xd	/* dynamically linked shared lib ident */
+#define LC_LOAD_DYLINKER 0xe	/* load a dynamic linker */
+#define LC_ID_DYLINKER	0xf	/* dynamic linker identification */
+#define	LC_PREBOUND_DYLIB 0x10	/* modules prebound for a dynamically */
+				/*  linked shared library */
+#define	LC_ROUTINES	0x11	/* image routines */
+#define	LC_SUB_FRAMEWORK 0x12	/* sub framework */
+#define	LC_SUB_UMBRELLA 0x13	/* sub umbrella */
+#define	LC_SUB_CLIENT	0x14	/* sub client */
+#define	LC_SUB_LIBRARY  0x15	/* sub library */
+#define	LC_TWOLEVEL_HINTS 0x16	/* two-level namespace lookup hints */
+#define	LC_PREBIND_CKSUM  0x17	/* prebind checksum */
+
+/*
+ * load a dynamically linked shared library that is allowed to be missing
+ * (all symbols are weak imported).
+ */
+#define	LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
+
+#define	LC_SEGMENT_64	0x19	/* 64-bit segment of this file to be
+				   mapped */
+#define	LC_ROUTINES_64	0x1a	/* 64-bit image routines */
+#define LC_UUID		0x1b	/* the uuid */
+#define LC_RPATH       (0x1c | LC_REQ_DYLD)    /* runpath additions */
+#define LC_CODE_SIGNATURE 0x1d	/* local of code signature */
+#define LC_SEGMENT_SPLIT_INFO 0x1e /* local of info to split segments */
+#define LC_REEXPORT_DYLIB (0x1f | LC_REQ_DYLD) /* load and re-export dylib */
+#define	LC_LAZY_LOAD_DYLIB 0x20	/* delay load of dylib until first use */
+#define	LC_ENCRYPTION_INFO 0x21	/* encrypted segment information */
+#define	LC_DYLD_INFO 	0x22	/* compressed dyld information */
+#define	LC_DYLD_INFO_ONLY (0x22|LC_REQ_DYLD)	/* compressed dyld information only */
+#define	LC_LOAD_UPWARD_DYLIB (0x23 | LC_REQ_DYLD) /* load upward dylib */
+#define LC_VERSION_MIN_MACOSX 0x24   /* build for MacOSX min OS version */
+#define LC_VERSION_MIN_IPHONEOS 0x25 /* build for iPhoneOS min OS version */
+#define LC_FUNCTION_STARTS 0x26 /* compressed table of function start addresses */
+#define LC_DYLD_ENVIRONMENT 0x27 /* string for dyld to treat
+				    like environment variable */
+
+/*
+ * A variable length string in a load command is represented by an lc_str
+ * union.  The strings are stored just after the load command structure and
+ * the offset is from the start of the load command structure.  The size
+ * of the string is reflected in the cmdsize field of the load command.
+ * Once again any padded bytes to bring the cmdsize field to a multiple
+ * of 4 bytes must be zero.
+ */
+union lc_str {
+	uint32_t	offset;	/* offset to the string */
+#ifndef __LP64__
+	char		*ptr;	/* pointer to the string */
+#endif 
+};
+
+/*
+ * The segment load command indicates that a part of this file is to be
+ * mapped into the task's address space.  The size of this segment in memory,
+ * vmsize, maybe equal to or larger than the amount to map from this file,
+ * filesize.  The file is mapped starting at fileoff to the beginning of
+ * the segment in memory, vmaddr.  The rest of the memory of the segment,
+ * if any, is allocated zero fill on demand.  The segment's maximum virtual
+ * memory protection and initial virtual memory protection are specified
+ * by the maxprot and initprot fields.  If the segment has sections then the
+ * section structures directly follow the segment command and their size is
+ * reflected in cmdsize.
+ */
+struct segment_command { /* for 32-bit architectures */
+	uint32_t	cmd;		/* LC_SEGMENT */
+	uint32_t	cmdsize;	/* includes sizeof section structs */
+	char		segname[16];	/* segment name */
+	uint32_t	vmaddr;		/* memory address of this segment */
+	uint32_t	vmsize;		/* memory size of this segment */
+	uint32_t	fileoff;	/* file offset of this segment */
+	uint32_t	filesize;	/* amount to map from the file */
+	vm_prot_t	maxprot;	/* maximum VM protection */
+	vm_prot_t	initprot;	/* initial VM protection */
+	uint32_t	nsects;		/* number of sections in segment */
+	uint32_t	flags;		/* flags */
+};
+
+/*
+ * The 64-bit segment load command indicates that a part of this file is to be
+ * mapped into a 64-bit task's address space.  If the 64-bit segment has
+ * sections then section_64 structures directly follow the 64-bit segment
+ * command and their size is reflected in cmdsize.
+ */
+struct segment_command_64 { /* for 64-bit architectures */
+	uint32_t	cmd;		/* LC_SEGMENT_64 */
+	uint32_t	cmdsize;	/* includes sizeof section_64 structs */
+	char		segname[16];	/* segment name */
+	uint64_t	vmaddr;		/* memory address of this segment */
+	uint64_t	vmsize;		/* memory size of this segment */
+	uint64_t	fileoff;	/* file offset of this segment */
+	uint64_t	filesize;	/* amount to map from the file */
+	vm_prot_t	maxprot;	/* maximum VM protection */
+	vm_prot_t	initprot;	/* initial VM protection */
+	uint32_t	nsects;		/* number of sections in segment */
+	uint32_t	flags;		/* flags */
+};
+
+/* Constants for the flags field of the segment_command */
+#define	SG_HIGHVM	0x1	/* the file contents for this segment is for
+				   the high part of the VM space, the low part
+				   is zero filled (for stacks in core files) */
+#define	SG_FVMLIB	0x2	/* this segment is the VM that is allocated by
+				   a fixed VM library, for overlap checking in
+				   the link editor */
+#define	SG_NORELOC	0x4	/* this segment has nothing that was relocated
+				   in it and nothing relocated to it, that is
+				   it maybe safely replaced without relocation*/
+#define SG_PROTECTED_VERSION_1	0x8 /* This segment is protected.  If the
+				       segment starts at file offset 0, the
+				       first page of the segment is not
+				       protected.  All other pages of the
+				       segment are protected. */
+
+/*
+ * A segment is made up of zero or more sections.  Non-MH_OBJECT files have
+ * all of their segments with the proper sections in each, and padded to the
+ * specified segment alignment when produced by the link editor.  The first
+ * segment of a MH_EXECUTE and MH_FVMLIB format file contains the mach_header
+ * and load commands of the object file before its first section.  The zero
+ * fill sections are always last in their segment (in all formats).  This
+ * allows the zeroed segment padding to be mapped into memory where zero fill
+ * sections might be. The gigabyte zero fill sections, those with the section
+ * type S_GB_ZEROFILL, can only be in a segment with sections of this type.
+ * These segments are then placed after all other segments.
+ *
+ * The MH_OBJECT format has all of its sections in one segment for
+ * compactness.  There is no padding to a specified segment boundary and the
+ * mach_header and load commands are not part of the segment.
+ *
+ * Sections with the same section name, sectname, going into the same segment,
+ * segname, are combined by the link editor.  The resulting section is aligned
+ * to the maximum alignment of the combined sections and is the new section's
+ * alignment.  The combined sections are aligned to their original alignment in
+ * the combined section.  Any padded bytes to get the specified alignment are
+ * zeroed.
+ *
+ * The format of the relocation entries referenced by the reloff and nreloc
+ * fields of the section structure for mach object files is described in the
+ * header file <reloc.h>.
+ */
+struct section { /* for 32-bit architectures */
+	char		sectname[16];	/* name of this section */
+	char		segname[16];	/* segment this section goes in */
+	uint32_t	addr;		/* memory address of this section */
+	uint32_t	size;		/* size in bytes of this section */
+	uint32_t	offset;		/* file offset of this section */
+	uint32_t	align;		/* section alignment (power of 2) */
+	uint32_t	reloff;		/* file offset of relocation entries */
+	uint32_t	nreloc;		/* number of relocation entries */
+	uint32_t	flags;		/* flags (section type and attributes)*/
+	uint32_t	reserved1;	/* reserved (for offset or index) */
+	uint32_t	reserved2;	/* reserved (for count or sizeof) */
+};
+
+struct section_64 { /* for 64-bit architectures */
+	char		sectname[16];	/* name of this section */
+	char		segname[16];	/* segment this section goes in */
+	uint64_t	addr;		/* memory address of this section */
+	uint64_t	size;		/* size in bytes of this section */
+	uint32_t	offset;		/* file offset of this section */
+	uint32_t	align;		/* section alignment (power of 2) */
+	uint32_t	reloff;		/* file offset of relocation entries */
+	uint32_t	nreloc;		/* number of relocation entries */
+	uint32_t	flags;		/* flags (section type and attributes)*/
+	uint32_t	reserved1;	/* reserved (for offset or index) */
+	uint32_t	reserved2;	/* reserved (for count or sizeof) */
+	uint32_t	reserved3;	/* reserved */
+};
+
+/*
+ * The flags field of a section structure is separated into two parts a section
+ * type and section attributes.  The section types are mutually exclusive (it
+ * can only have one type) but the section attributes are not (it may have more
+ * than one attribute).
+ */
+#define SECTION_TYPE		 0x000000ff	/* 256 section types */
+#define SECTION_ATTRIBUTES	 0xffffff00	/*  24 section attributes */
+
+/* Constants for the type of a section */
+#define	S_REGULAR		0x0	/* regular section */
+#define	S_ZEROFILL		0x1	/* zero fill on demand section */
+#define	S_CSTRING_LITERALS	0x2	/* section with only literal C strings*/
+#define	S_4BYTE_LITERALS	0x3	/* section with only 4 byte literals */
+#define	S_8BYTE_LITERALS	0x4	/* section with only 8 byte literals */
+#define	S_LITERAL_POINTERS	0x5	/* section with only pointers to */
+					/*  literals */
+/*
+ * For the two types of symbol pointers sections and the symbol stubs section
+ * they have indirect symbol table entries.  For each of the entries in the
+ * section the indirect symbol table entries, in corresponding order in the
+ * indirect symbol table, start at the index stored in the reserved1 field
+ * of the section structure.  Since the indirect symbol table entries
+ * correspond to the entries in the section the number of indirect symbol table
+ * entries is inferred from the size of the section divided by the size of the
+ * entries in the section.  For symbol pointers sections the size of the entries
+ * in the section is 4 bytes and for symbol stubs sections the byte size of the
+ * stubs is stored in the reserved2 field of the section structure.
+ */
+#define	S_NON_LAZY_SYMBOL_POINTERS	0x6	/* section with only non-lazy
+						   symbol pointers */
+#define	S_LAZY_SYMBOL_POINTERS		0x7	/* section with only lazy symbol
+						   pointers */
+#define	S_SYMBOL_STUBS			0x8	/* section with only symbol
+						   stubs, byte size of stub in
+						   the reserved2 field */
+#define	S_MOD_INIT_FUNC_POINTERS	0x9	/* section with only function
+						   pointers for initialization*/
+#define	S_MOD_TERM_FUNC_POINTERS	0xa	/* section with only function
+						   pointers for termination */
+#define	S_COALESCED			0xb	/* section contains symbols that
+						   are to be coalesced */
+#define	S_GB_ZEROFILL			0xc	/* zero fill on demand section
+						   (that can be larger than 4
+						   gigabytes) */
+#define	S_INTERPOSING			0xd	/* section with only pairs of
+						   function pointers for
+						   interposing */
+#define	S_16BYTE_LITERALS		0xe	/* section with only 16 byte
+						   literals */
+#define	S_DTRACE_DOF			0xf	/* section contains 
+						   DTrace Object Format */
+#define	S_LAZY_DYLIB_SYMBOL_POINTERS	0x10	/* section with only lazy
+						   symbol pointers to lazy
+						   loaded dylibs */
+/*
+ * Section types to support thread local variables
+ */
+#define S_THREAD_LOCAL_REGULAR                   0x11  /* template of initial 
+							  values for TLVs */
+#define S_THREAD_LOCAL_ZEROFILL                  0x12  /* template of initial 
+							  values for TLVs */
+#define S_THREAD_LOCAL_VARIABLES                 0x13  /* TLV descriptors */
+#define S_THREAD_LOCAL_VARIABLE_POINTERS         0x14  /* pointers to TLV 
+                                                          descriptors */
+#define S_THREAD_LOCAL_INIT_FUNCTION_POINTERS    0x15  /* functions to call
+							  to initialize TLV
+							  values */
+
+/*
+ * Constants for the section attributes part of the flags field of a section
+ * structure.
+ */
+#define SECTION_ATTRIBUTES_USR	 0xff000000	/* User setable attributes */
+#define S_ATTR_PURE_INSTRUCTIONS 0x80000000	/* section contains only true
+						   machine instructions */
+#define S_ATTR_NO_TOC 		 0x40000000	/* section contains coalesced
+						   symbols that are not to be
+						   in a ranlib table of
+						   contents */
+#define S_ATTR_STRIP_STATIC_SYMS 0x20000000	/* ok to strip static symbols
+						   in this section in files
+						   with the MH_DYLDLINK flag */
+#define S_ATTR_NO_DEAD_STRIP	 0x10000000	/* no dead stripping */
+#define S_ATTR_LIVE_SUPPORT	 0x08000000	/* blocks are live if they
+						   reference live blocks */
+#define S_ATTR_SELF_MODIFYING_CODE 0x04000000	/* Used with i386 code stubs
+						   written on by dyld */
+/*
+ * If a segment contains any sections marked with S_ATTR_DEBUG then all
+ * sections in that segment must have this attribute.  No section other than
+ * a section marked with this attribute may reference the contents of this
+ * section.  A section with this attribute may contain no symbols and must have
+ * a section type S_REGULAR.  The static linker will not copy section contents
+ * from sections with this attribute into its output file.  These sections
+ * generally contain DWARF debugging info.
+ */ 
+#define	S_ATTR_DEBUG		 0x02000000	/* a debug section */
+#define SECTION_ATTRIBUTES_SYS	 0x00ffff00	/* system setable attributes */
+#define S_ATTR_SOME_INSTRUCTIONS 0x00000400	/* section contains some
+						   machine instructions */
+#define S_ATTR_EXT_RELOC	 0x00000200	/* section has external
+						   relocation entries */
+#define S_ATTR_LOC_RELOC	 0x00000100	/* section has local
+						   relocation entries */
+
+
+/*
+ * The names of segments and sections in them are mostly meaningless to the
+ * link-editor.  But there are few things to support traditional UNIX
+ * executables that require the link-editor and assembler to use some names
+ * agreed upon by convention.
+ *
+ * The initial protection of the "__TEXT" segment has write protection turned
+ * off (not writeable).
+ *
+ * The link-editor will allocate common symbols at the end of the "__common"
+ * section in the "__DATA" segment.  It will create the section and segment
+ * if needed.
+ */
+
+/* The currently known segment names and the section names in those segments */
+
+#define	SEG_PAGEZERO	"__PAGEZERO"	/* the pagezero segment which has no */
+					/* protections and catches NULL */
+					/* references for MH_EXECUTE files */
+
+
+#define	SEG_TEXT	"__TEXT"	/* the tradition UNIX text segment */
+#define	SECT_TEXT	"__text"	/* the real text part of the text */
+					/* section no headers, and no padding */
+#define SECT_FVMLIB_INIT0 "__fvmlib_init0"	/* the fvmlib initialization */
+						/*  section */
+#define SECT_FVMLIB_INIT1 "__fvmlib_init1"	/* the section following the */
+					        /*  fvmlib initialization */
+						/*  section */
+
+#define	SEG_DATA	"__DATA"	/* the tradition UNIX data segment */
+#define	SECT_DATA	"__data"	/* the real initialized data section */
+					/* no padding, no bss overlap */
+#define	SECT_BSS	"__bss"		/* the real uninitialized data section*/
+					/* no padding */
+#define SECT_COMMON	"__common"	/* the section common symbols are */
+					/* allocated in by the link editor */
+
+#define	SEG_OBJC	"__OBJC"	/* objective-C runtime segment */
+#define SECT_OBJC_SYMBOLS "__symbol_table"	/* symbol table */
+#define SECT_OBJC_MODULES "__module_info"	/* module information */
+#define SECT_OBJC_STRINGS "__selector_strs"	/* string table */
+#define SECT_OBJC_REFS "__selector_refs"	/* string table */
+
+#define	SEG_ICON	 "__ICON"	/* the icon segment */
+#define	SECT_ICON_HEADER "__header"	/* the icon headers */
+#define	SECT_ICON_TIFF   "__tiff"	/* the icons in tiff format */
+
+#define	SEG_LINKEDIT	"__LINKEDIT"	/* the segment containing all structs */
+					/* created and maintained by the link */
+					/* editor.  Created with -seglinkedit */
+					/* option to ld(1) for MH_EXECUTE and */
+					/* FVMLIB file types only */
+
+#define SEG_UNIXSTACK	"__UNIXSTACK"	/* the unix stack segment */
+
+#define SEG_IMPORT	"__IMPORT"	/* the segment for the self (dyld) */
+					/* modifing code stubs that has read, */
+					/* write and execute permissions */
+
+/*
+ * Fixed virtual memory shared libraries are identified by two things.  The
+ * target pathname (the name of the library as found for execution), and the
+ * minor version number.  The address of where the headers are loaded is in
+ * header_addr. (THIS IS OBSOLETE and no longer supported).
+ */
+struct fvmlib {
+	union lc_str	name;		/* library's target pathname */
+	uint32_t	minor_version;	/* library's minor version number */
+	uint32_t	header_addr;	/* library's header address */
+};
+
+/*
+ * A fixed virtual shared library (filetype == MH_FVMLIB in the mach header)
+ * contains a fvmlib_command (cmd == LC_IDFVMLIB) to identify the library.
+ * An object that uses a fixed virtual shared library also contains a
+ * fvmlib_command (cmd == LC_LOADFVMLIB) for each library it uses.
+ * (THIS IS OBSOLETE and no longer supported).
+ */
+struct fvmlib_command {
+	uint32_t	cmd;		/* LC_IDFVMLIB or LC_LOADFVMLIB */
+	uint32_t	cmdsize;	/* includes pathname string */
+	struct fvmlib	fvmlib;		/* the library identification */
+};
+
+/*
+ * Dynamicly linked shared libraries are identified by two things.  The
+ * pathname (the name of the library as found for execution), and the
+ * compatibility version number.  The pathname must match and the compatibility
+ * number in the user of the library must be greater than or equal to the
+ * library being used.  The time stamp is used to record the time a library was
+ * built and copied into user so it can be use to determined if the library used
+ * at runtime is exactly the same as used to built the program.
+ */
+struct dylib {
+    union lc_str  name;			/* library's path name */
+    uint32_t timestamp;			/* library's build time stamp */
+    uint32_t current_version;		/* library's current version number */
+    uint32_t compatibility_version;	/* library's compatibility vers number*/
+};
+
+/*
+ * A dynamically linked shared library (filetype == MH_DYLIB in the mach header)
+ * contains a dylib_command (cmd == LC_ID_DYLIB) to identify the library.
+ * An object that uses a dynamically linked shared library also contains a
+ * dylib_command (cmd == LC_LOAD_DYLIB, LC_LOAD_WEAK_DYLIB, or
+ * LC_REEXPORT_DYLIB) for each library it uses.
+ */
+struct dylib_command {
+	uint32_t	cmd;		/* LC_ID_DYLIB, LC_LOAD_{,WEAK_}DYLIB,
+					   LC_REEXPORT_DYLIB */
+	uint32_t	cmdsize;	/* includes pathname string */
+	struct dylib	dylib;		/* the library identification */
+};
+
+/*
+ * A dynamically linked shared library may be a subframework of an umbrella
+ * framework.  If so it will be linked with "-umbrella umbrella_name" where
+ * Where "umbrella_name" is the name of the umbrella framework. A subframework
+ * can only be linked against by its umbrella framework or other subframeworks
+ * that are part of the same umbrella framework.  Otherwise the static link
+ * editor produces an error and states to link against the umbrella framework.
+ * The name of the umbrella framework for subframeworks is recorded in the
+ * following structure.
+ */
+struct sub_framework_command {
+	uint32_t	cmd;		/* LC_SUB_FRAMEWORK */
+	uint32_t	cmdsize;	/* includes umbrella string */
+	union lc_str 	umbrella;	/* the umbrella framework name */
+};
+
+/*
+ * For dynamically linked shared libraries that are subframework of an umbrella
+ * framework they can allow clients other than the umbrella framework or other
+ * subframeworks in the same umbrella framework.  To do this the subframework
+ * is built with "-allowable_client client_name" and an LC_SUB_CLIENT load
+ * command is created for each -allowable_client flag.  The client_name is
+ * usually a framework name.  It can also be a name used for bundles clients
+ * where the bundle is built with "-client_name client_name".
+ */
+struct sub_client_command {
+	uint32_t	cmd;		/* LC_SUB_CLIENT */
+	uint32_t	cmdsize;	/* includes client string */
+	union lc_str 	client;		/* the client name */
+};
+
+/*
+ * A dynamically linked shared library may be a sub_umbrella of an umbrella
+ * framework.  If so it will be linked with "-sub_umbrella umbrella_name" where
+ * Where "umbrella_name" is the name of the sub_umbrella framework.  When
+ * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
+ * umbrella framework will only cause its subframeworks and those frameworks
+ * listed as sub_umbrella frameworks to be implicited linked in.  Any other
+ * dependent dynamic libraries will not be linked it when -twolevel_namespace
+ * is in effect.  The primary library recorded by the static linker when
+ * resolving a symbol in these libraries will be the umbrella framework.
+ * Zero or more sub_umbrella frameworks may be use by an umbrella framework.
+ * The name of a sub_umbrella framework is recorded in the following structure.
+ */
+struct sub_umbrella_command {
+	uint32_t	cmd;		/* LC_SUB_UMBRELLA */
+	uint32_t	cmdsize;	/* includes sub_umbrella string */
+	union lc_str 	sub_umbrella;	/* the sub_umbrella framework name */
+};
+
+/*
+ * A dynamically linked shared library may be a sub_library of another shared
+ * library.  If so it will be linked with "-sub_library library_name" where
+ * Where "library_name" is the name of the sub_library shared library.  When
+ * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
+ * shared library will only cause its subframeworks and those frameworks
+ * listed as sub_umbrella frameworks and libraries listed as sub_libraries to
+ * be implicited linked in.  Any other dependent dynamic libraries will not be
+ * linked it when -twolevel_namespace is in effect.  The primary library
+ * recorded by the static linker when resolving a symbol in these libraries
+ * will be the umbrella framework (or dynamic library). Zero or more sub_library
+ * shared libraries may be use by an umbrella framework or (or dynamic library).
+ * The name of a sub_library framework is recorded in the following structure.
+ * For example /usr/lib/libobjc_profile.A.dylib would be recorded as "libobjc".
+ */
+struct sub_library_command {
+	uint32_t	cmd;		/* LC_SUB_LIBRARY */
+	uint32_t	cmdsize;	/* includes sub_library string */
+	union lc_str 	sub_library;	/* the sub_library name */
+};
+
+/*
+ * A program (filetype == MH_EXECUTE) that is
+ * prebound to its dynamic libraries has one of these for each library that
+ * the static linker used in prebinding.  It contains a bit vector for the
+ * modules in the library.  The bits indicate which modules are bound (1) and
+ * which are not (0) from the library.  The bit for module 0 is the low bit
+ * of the first byte.  So the bit for the Nth module is:
+ * (linked_modules[N/8] >> N%8) & 1
+ */
+struct prebound_dylib_command {
+	uint32_t	cmd;		/* LC_PREBOUND_DYLIB */
+	uint32_t	cmdsize;	/* includes strings */
+	union lc_str	name;		/* library's path name */
+	uint32_t	nmodules;	/* number of modules in library */
+	union lc_str	linked_modules;	/* bit vector of linked modules */
+};
+
+/*
+ * A program that uses a dynamic linker contains a dylinker_command to identify
+ * the name of the dynamic linker (LC_LOAD_DYLINKER).  And a dynamic linker
+ * contains a dylinker_command to identify the dynamic linker (LC_ID_DYLINKER).
+ * A file can have at most one of these.
+ * This struct is also used for the LC_DYLD_ENVIRONMENT load command and
+ * contains string for dyld to treat like environment variable.
+ */
+struct dylinker_command {
+	uint32_t	cmd;		/* LC_ID_DYLINKER, LC_LOAD_DYLINKER or
+					   LC_DYLD_ENVIRONMENT */
+	uint32_t	cmdsize;	/* includes pathname string */
+	union lc_str    name;		/* dynamic linker's path name */
+};
+
+/*
+ * Thread commands contain machine-specific data structures suitable for
+ * use in the thread state primitives.  The machine specific data structures
+ * follow the struct thread_command as follows.
+ * Each flavor of machine specific data structure is preceded by an unsigned
+ * long constant for the flavor of that data structure, an uint32_t
+ * that is the count of longs of the size of the state data structure and then
+ * the state data structure follows.  This triple may be repeated for many
+ * flavors.  The constants for the flavors, counts and state data structure
+ * definitions are expected to be in the header file <machine/thread_status.h>.
+ * These machine specific data structures sizes must be multiples of
+ * 4 bytes  The cmdsize reflects the total size of the thread_command
+ * and all of the sizes of the constants for the flavors, counts and state
+ * data structures.
+ *
+ * For executable objects that are unix processes there will be one
+ * thread_command (cmd == LC_UNIXTHREAD) created for it by the link-editor.
+ * This is the same as a LC_THREAD, except that a stack is automatically
+ * created (based on the shell's limit for the stack size).  Command arguments
+ * and environment variables are copied onto that stack.
+ */
+struct thread_command {
+	uint32_t	cmd;		/* LC_THREAD or  LC_UNIXTHREAD */
+	uint32_t	cmdsize;	/* total size of this command */
+	/* uint32_t flavor		   flavor of thread state */
+	/* uint32_t count		   count of longs in thread state */
+	/* struct XXX_thread_state state   thread state for this flavor */
+	/* ... */
+};
+
+/*
+ * The routines command contains the address of the dynamic shared library 
+ * initialization routine and an index into the module table for the module
+ * that defines the routine.  Before any modules are used from the library the
+ * dynamic linker fully binds the module that defines the initialization routine
+ * and then calls it.  This gets called before any module initialization
+ * routines (used for C++ static constructors) in the library.
+ */
+struct routines_command { /* for 32-bit architectures */
+	uint32_t	cmd;		/* LC_ROUTINES */
+	uint32_t	cmdsize;	/* total size of this command */
+	uint32_t	init_address;	/* address of initialization routine */
+	uint32_t	init_module;	/* index into the module table that */
+				        /*  the init routine is defined in */
+	uint32_t	reserved1;
+	uint32_t	reserved2;
+	uint32_t	reserved3;
+	uint32_t	reserved4;
+	uint32_t	reserved5;
+	uint32_t	reserved6;
+};
+
+/*
+ * The 64-bit routines command.  Same use as above.
+ */
+struct routines_command_64 { /* for 64-bit architectures */
+	uint32_t	cmd;		/* LC_ROUTINES_64 */
+	uint32_t	cmdsize;	/* total size of this command */
+	uint64_t	init_address;	/* address of initialization routine */
+	uint64_t	init_module;	/* index into the module table that */
+					/*  the init routine is defined in */
+	uint64_t	reserved1;
+	uint64_t	reserved2;
+	uint64_t	reserved3;
+	uint64_t	reserved4;
+	uint64_t	reserved5;
+	uint64_t	reserved6;
+};
+
+/*
+ * The symtab_command contains the offsets and sizes of the link-edit 4.3BSD
+ * "stab" style symbol table information as described in the header files
+ * <nlist.h> and <stab.h>.
+ */
+struct symtab_command {
+	uint32_t	cmd;		/* LC_SYMTAB */
+	uint32_t	cmdsize;	/* sizeof(struct symtab_command) */
+	uint32_t	symoff;		/* symbol table offset */
+	uint32_t	nsyms;		/* number of symbol table entries */
+	uint32_t	stroff;		/* string table offset */
+	uint32_t	strsize;	/* string table size in bytes */
+};
+
+/*
+ * This is the second set of the symbolic information which is used to support
+ * the data structures for the dynamically link editor.
+ *
+ * The original set of symbolic information in the symtab_command which contains
+ * the symbol and string tables must also be present when this load command is
+ * present.  When this load command is present the symbol table is organized
+ * into three groups of symbols:
+ *	local symbols (static and debugging symbols) - grouped by module
+ *	defined external symbols - grouped by module (sorted by name if not lib)
+ *	undefined external symbols (sorted by name if MH_BINDATLOAD is not set,
+ *	     			    and in order the were seen by the static
+ *				    linker if MH_BINDATLOAD is set)
+ * In this load command there are offsets and counts to each of the three groups
+ * of symbols.
+ *
+ * This load command contains a the offsets and sizes of the following new
+ * symbolic information tables:
+ *	table of contents
+ *	module table
+ *	reference symbol table
+ *	indirect symbol table
+ * The first three tables above (the table of contents, module table and
+ * reference symbol table) are only present if the file is a dynamically linked
+ * shared library.  For executable and object modules, which are files
+ * containing only one module, the information that would be in these three
+ * tables is determined as follows:
+ * 	table of contents - the defined external symbols are sorted by name
+ *	module table - the file contains only one module so everything in the
+ *		       file is part of the module.
+ *	reference symbol table - is the defined and undefined external symbols
+ *
+ * For dynamically linked shared library files this load command also contains
+ * offsets and sizes to the pool of relocation entries for all sections
+ * separated into two groups:
+ *	external relocation entries
+ *	local relocation entries
+ * For executable and object modules the relocation entries continue to hang
+ * off the section structures.
+ */
+struct dysymtab_command {
+    uint32_t cmd;	/* LC_DYSYMTAB */
+    uint32_t cmdsize;	/* sizeof(struct dysymtab_command) */
+
+    /*
+     * The symbols indicated by symoff and nsyms of the LC_SYMTAB load command
+     * are grouped into the following three groups:
+     *    local symbols (further grouped by the module they are from)
+     *    defined external symbols (further grouped by the module they are from)
+     *    undefined symbols
+     *
+     * The local symbols are used only for debugging.  The dynamic binding
+     * process may have to use them to indicate to the debugger the local
+     * symbols for a module that is being bound.
+     *
+     * The last two groups are used by the dynamic binding process to do the
+     * binding (indirectly through the module table and the reference symbol
+     * table when this is a dynamically linked shared library file).
+     */
+    uint32_t ilocalsym;	/* index to local symbols */
+    uint32_t nlocalsym;	/* number of local symbols */
+
+    uint32_t iextdefsym;/* index to externally defined symbols */
+    uint32_t nextdefsym;/* number of externally defined symbols */
+
+    uint32_t iundefsym;	/* index to undefined symbols */
+    uint32_t nundefsym;	/* number of undefined symbols */
+
+    /*
+     * For the for the dynamic binding process to find which module a symbol
+     * is defined in the table of contents is used (analogous to the ranlib
+     * structure in an archive) which maps defined external symbols to modules
+     * they are defined in.  This exists only in a dynamically linked shared
+     * library file.  For executable and object modules the defined external
+     * symbols are sorted by name and is use as the table of contents.
+     */
+    uint32_t tocoff;	/* file offset to table of contents */
+    uint32_t ntoc;	/* number of entries in table of contents */
+
+    /*
+     * To support dynamic binding of "modules" (whole object files) the symbol
+     * table must reflect the modules that the file was created from.  This is
+     * done by having a module table that has indexes and counts into the merged
+     * tables for each module.  The module structure that these two entries
+     * refer to is described below.  This exists only in a dynamically linked
+     * shared library file.  For executable and object modules the file only
+     * contains one module so everything in the file belongs to the module.
+     */
+    uint32_t modtaboff;	/* file offset to module table */
+    uint32_t nmodtab;	/* number of module table entries */
+
+    /*
+     * To support dynamic module binding the module structure for each module
+     * indicates the external references (defined and undefined) each module
+     * makes.  For each module there is an offset and a count into the
+     * reference symbol table for the symbols that the module references.
+     * This exists only in a dynamically linked shared library file.  For
+     * executable and object modules the defined external symbols and the
+     * undefined external symbols indicates the external references.
+     */
+    uint32_t extrefsymoff;	/* offset to referenced symbol table */
+    uint32_t nextrefsyms;	/* number of referenced symbol table entries */
+
+    /*
+     * The sections that contain "symbol pointers" and "routine stubs" have
+     * indexes and (implied counts based on the size of the section and fixed
+     * size of the entry) into the "indirect symbol" table for each pointer
+     * and stub.  For every section of these two types the index into the
+     * indirect symbol table is stored in the section header in the field
+     * reserved1.  An indirect symbol table entry is simply a 32bit index into
+     * the symbol table to the symbol that the pointer or stub is referring to.
+     * The indirect symbol table is ordered to match the entries in the section.
+     */
+    uint32_t indirectsymoff; /* file offset to the indirect symbol table */
+    uint32_t nindirectsyms;  /* number of indirect symbol table entries */
+
+    /*
+     * To support relocating an individual module in a library file quickly the
+     * external relocation entries for each module in the library need to be
+     * accessed efficiently.  Since the relocation entries can't be accessed
+     * through the section headers for a library file they are separated into
+     * groups of local and external entries further grouped by module.  In this
+     * case the presents of this load command who's extreloff, nextrel,
+     * locreloff and nlocrel fields are non-zero indicates that the relocation
+     * entries of non-merged sections are not referenced through the section
+     * structures (and the reloff and nreloc fields in the section headers are
+     * set to zero).
+     *
+     * Since the relocation entries are not accessed through the section headers
+     * this requires the r_address field to be something other than a section
+     * offset to identify the item to be relocated.  In this case r_address is
+     * set to the offset from the vmaddr of the first LC_SEGMENT command.
+     * For MH_SPLIT_SEGS images r_address is set to the the offset from the
+     * vmaddr of the first read-write LC_SEGMENT command.
+     *
+     * The relocation entries are grouped by module and the module table
+     * entries have indexes and counts into them for the group of external
+     * relocation entries for that the module.
+     *
+     * For sections that are merged across modules there must not be any
+     * remaining external relocation entries for them (for merged sections
+     * remaining relocation entries must be local).
+     */
+    uint32_t extreloff;	/* offset to external relocation entries */
+    uint32_t nextrel;	/* number of external relocation entries */
+
+    /*
+     * All the local relocation entries are grouped together (they are not
+     * grouped by their module since they are only used if the object is moved
+     * from it staticly link edited address).
+     */
+    uint32_t locreloff;	/* offset to local relocation entries */
+    uint32_t nlocrel;	/* number of local relocation entries */
+
+};	
+
+/*
+ * An indirect symbol table entry is simply a 32bit index into the symbol table 
+ * to the symbol that the pointer or stub is refering to.  Unless it is for a
+ * non-lazy symbol pointer section for a defined symbol which strip(1) as 
+ * removed.  In which case it has the value INDIRECT_SYMBOL_LOCAL.  If the
+ * symbol was also absolute INDIRECT_SYMBOL_ABS is or'ed with that.
+ */
+#define INDIRECT_SYMBOL_LOCAL	0x80000000
+#define INDIRECT_SYMBOL_ABS	0x40000000
+
+
+/* a table of contents entry */
+struct dylib_table_of_contents {
+    uint32_t symbol_index;	/* the defined external symbol
+				   (index into the symbol table) */
+    uint32_t module_index;	/* index into the module table this symbol
+				   is defined in */
+};	
+
+/* a module table entry */
+struct dylib_module {
+    uint32_t module_name;	/* the module name (index into string table) */
+
+    uint32_t iextdefsym;	/* index into externally defined symbols */
+    uint32_t nextdefsym;	/* number of externally defined symbols */
+    uint32_t irefsym;		/* index into reference symbol table */
+    uint32_t nrefsym;		/* number of reference symbol table entries */
+    uint32_t ilocalsym;		/* index into symbols for local symbols */
+    uint32_t nlocalsym;		/* number of local symbols */
+
+    uint32_t iextrel;		/* index into external relocation entries */
+    uint32_t nextrel;		/* number of external relocation entries */
+
+    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
+				   section, high 16 bits are the index into
+			           the term section */
+    uint32_t ninit_nterm;	/* low 16 bits are the number of init section
+				   entries, high 16 bits are the number of
+				   term section entries */
+
+    uint32_t			/* for this module address of the start of */
+	objc_module_info_addr;  /*  the (__OBJC,__module_info) section */
+    uint32_t			/* for this module size of */
+	objc_module_info_size;	/*  the (__OBJC,__module_info) section */
+};	
+
+/* a 64-bit module table entry */
+struct dylib_module_64 {
+    uint32_t module_name;	/* the module name (index into string table) */
+
+    uint32_t iextdefsym;	/* index into externally defined symbols */
+    uint32_t nextdefsym;	/* number of externally defined symbols */
+    uint32_t irefsym;		/* index into reference symbol table */
+    uint32_t nrefsym;		/* number of reference symbol table entries */
+    uint32_t ilocalsym;		/* index into symbols for local symbols */
+    uint32_t nlocalsym;		/* number of local symbols */
+
+    uint32_t iextrel;		/* index into external relocation entries */
+    uint32_t nextrel;		/* number of external relocation entries */
+
+    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
+				   section, high 16 bits are the index into
+				   the term section */
+    uint32_t ninit_nterm;      /* low 16 bits are the number of init section
+				  entries, high 16 bits are the number of
+				  term section entries */
+
+    uint32_t			/* for this module size of */
+        objc_module_info_size;	/*  the (__OBJC,__module_info) section */
+    uint64_t			/* for this module address of the start of */
+        objc_module_info_addr;	/*  the (__OBJC,__module_info) section */
+};
+
+/* 
+ * The entries in the reference symbol table are used when loading the module
+ * (both by the static and dynamic link editors) and if the module is unloaded
+ * or replaced.  Therefore all external symbols (defined and undefined) are
+ * listed in the module's reference table.  The flags describe the type of
+ * reference that is being made.  The constants for the flags are defined in
+ * <mach-o/nlist.h> as they are also used for symbol table entries.
+ */
+struct dylib_reference {
+    uint32_t isym:24,		/* index into the symbol table */
+    		  flags:8;	/* flags to indicate the type of reference */
+};
+
+/*
+ * The twolevel_hints_command contains the offset and number of hints in the
+ * two-level namespace lookup hints table.
+ */
+struct twolevel_hints_command {
+    uint32_t cmd;	/* LC_TWOLEVEL_HINTS */
+    uint32_t cmdsize;	/* sizeof(struct twolevel_hints_command) */
+    uint32_t offset;	/* offset to the hint table */
+    uint32_t nhints;	/* number of hints in the hint table */
+};
+
+/*
+ * The entries in the two-level namespace lookup hints table are twolevel_hint
+ * structs.  These provide hints to the dynamic link editor where to start
+ * looking for an undefined symbol in a two-level namespace image.  The
+ * isub_image field is an index into the sub-images (sub-frameworks and
+ * sub-umbrellas list) that made up the two-level image that the undefined
+ * symbol was found in when it was built by the static link editor.  If
+ * isub-image is 0 the the symbol is expected to be defined in library and not
+ * in the sub-images.  If isub-image is non-zero it is an index into the array
+ * of sub-images for the umbrella with the first index in the sub-images being
+ * 1. The array of sub-images is the ordered list of sub-images of the umbrella
+ * that would be searched for a symbol that has the umbrella recorded as its
+ * primary library.  The table of contents index is an index into the
+ * library's table of contents.  This is used as the starting point of the
+ * binary search or a directed linear search.
+ */
+struct twolevel_hint {
+    uint32_t 
+	isub_image:8,	/* index into the sub images */
+	itoc:24;	/* index into the table of contents */
+};
+
+/*
+ * The prebind_cksum_command contains the value of the original check sum for
+ * prebound files or zero.  When a prebound file is first created or modified
+ * for other than updating its prebinding information the value of the check sum
+ * is set to zero.  When the file has it prebinding re-done and if the value of
+ * the check sum is zero the original check sum is calculated and stored in
+ * cksum field of this load command in the output file.  If when the prebinding
+ * is re-done and the cksum field is non-zero it is left unchanged from the
+ * input file.
+ */
+struct prebind_cksum_command {
+    uint32_t cmd;	/* LC_PREBIND_CKSUM */
+    uint32_t cmdsize;	/* sizeof(struct prebind_cksum_command) */
+    uint32_t cksum;	/* the check sum or zero */
+};
+
+/*
+ * The uuid load command contains a single 128-bit unique random number that
+ * identifies an object produced by the static link editor.
+ */
+struct uuid_command {
+    uint32_t	cmd;		/* LC_UUID */
+    uint32_t	cmdsize;	/* sizeof(struct uuid_command) */
+    uint8_t	uuid[16];	/* the 128-bit uuid */
+};
+
+/*
+ * The rpath_command contains a path which at runtime should be added to
+ * the current run path used to find @rpath prefixed dylibs.
+ */
+struct rpath_command {
+    uint32_t	 cmd;		/* LC_RPATH */
+    uint32_t	 cmdsize;	/* includes string */
+    union lc_str path;		/* path to add to run path */
+};
+
+/*
+ * The linkedit_data_command contains the offsets and sizes of a blob
+ * of data in the __LINKEDIT segment.  
+ */
+struct linkedit_data_command {
+    uint32_t	cmd;		/* LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO,
+                                   or LC_FUNCTION_STARTS */
+    uint32_t	cmdsize;	/* sizeof(struct linkedit_data_command) */
+    uint32_t	dataoff;	/* file offset of data in __LINKEDIT segment */
+    uint32_t	datasize;	/* file size of data in __LINKEDIT segment  */
+};
+
+/*
+ * The encryption_info_command contains the file offset and size of an
+ * of an encrypted segment.
+ */
+struct encryption_info_command {
+   uint32_t	cmd;		/* LC_ENCRYPTION_INFO */
+   uint32_t	cmdsize;	/* sizeof(struct encryption_info_command) */
+   uint32_t	cryptoff;	/* file offset of encrypted range */
+   uint32_t	cryptsize;	/* file size of encrypted range */
+   uint32_t	cryptid;	/* which enryption system,
+				   0 means not-encrypted yet */
+};
+
+/*
+ * The version_min_command contains the min OS version on which this 
+ * binary was built to run.
+ */
+struct version_min_command {
+    uint32_t	cmd;		/* LC_VERSION_MIN_MACOSX or
+				   LC_VERSION_MIN_IPHONEOS  */
+    uint32_t	cmdsize;	/* sizeof(struct min_version_command) */
+    uint32_t	version;	/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
+    uint32_t	reserved;	/* zero */
+};
+
+/*
+ * The dyld_info_command contains the file offsets and sizes of 
+ * the new compressed form of the information dyld needs to 
+ * load the image.  This information is used by dyld on Mac OS X
+ * 10.6 and later.  All information pointed to by this command
+ * is encoded using byte streams, so no endian swapping is needed
+ * to interpret it. 
+ */
+struct dyld_info_command {
+   uint32_t   cmd;		/* LC_DYLD_INFO or LC_DYLD_INFO_ONLY */
+   uint32_t   cmdsize;		/* sizeof(struct dyld_info_command) */
+
+    /*
+     * Dyld rebases an image whenever dyld loads it at an address different
+     * from its preferred address.  The rebase information is a stream
+     * of byte sized opcodes whose symbolic names start with REBASE_OPCODE_.
+     * Conceptually the rebase information is a table of tuples:
+     *    <seg-index, seg-offset, type>
+     * The opcodes are a compressed way to encode the table by only
+     * encoding when a column changes.  In addition simple patterns
+     * like "every n'th offset for m times" can be encoded in a few
+     * bytes.
+     */
+    uint32_t   rebase_off;	/* file offset to rebase info  */
+    uint32_t   rebase_size;	/* size of rebase info   */
+    
+    /*
+     * Dyld binds an image during the loading process, if the image
+     * requires any pointers to be initialized to symbols in other images.  
+     * The bind information is a stream of byte sized 
+     * opcodes whose symbolic names start with BIND_OPCODE_.
+     * Conceptually the bind information is a table of tuples:
+     *    <seg-index, seg-offset, type, symbol-library-ordinal, symbol-name, addend>
+     * The opcodes are a compressed way to encode the table by only
+     * encoding when a column changes.  In addition simple patterns
+     * like for runs of pointers initialzed to the same value can be 
+     * encoded in a few bytes.
+     */
+    uint32_t   bind_off;	/* file offset to binding info   */
+    uint32_t   bind_size;	/* size of binding info  */
+        
+    /*
+     * Some C++ programs require dyld to unique symbols so that all
+     * images in the process use the same copy of some code/data.
+     * This step is done after binding. The content of the weak_bind
+     * info is an opcode stream like the bind_info.  But it is sorted
+     * alphabetically by symbol name.  This enable dyld to walk 
+     * all images with weak binding information in order and look
+     * for collisions.  If there are no collisions, dyld does
+     * no updating.  That means that some fixups are also encoded
+     * in the bind_info.  For instance, all calls to "operator new"
+     * are first bound to libstdc++.dylib using the information
+     * in bind_info.  Then if some image overrides operator new
+     * that is detected when the weak_bind information is processed
+     * and the call to operator new is then rebound.
+     */
+    uint32_t   weak_bind_off;	/* file offset to weak binding info   */
+    uint32_t   weak_bind_size;  /* size of weak binding info  */
+    
+    /*
+     * Some uses of external symbols do not need to be bound immediately.
+     * Instead they can be lazily bound on first use.  The lazy_bind
+     * are contains a stream of BIND opcodes to bind all lazy symbols.
+     * Normal use is that dyld ignores the lazy_bind section when
+     * loading an image.  Instead the static linker arranged for the
+     * lazy pointer to initially point to a helper function which 
+     * pushes the offset into the lazy_bind area for the symbol
+     * needing to be bound, then jumps to dyld which simply adds
+     * the offset to lazy_bind_off to get the information on what 
+     * to bind.  
+     */
+    uint32_t   lazy_bind_off;	/* file offset to lazy binding info */
+    uint32_t   lazy_bind_size;  /* size of lazy binding infs */
+    
+    /*
+     * The symbols exported by a dylib are encoded in a trie.  This
+     * is a compact representation that factors out common prefixes.
+     * It also reduces LINKEDIT pages in RAM because it encodes all  
+     * information (name, address, flags) in one small, contiguous range.
+     * The export area is a stream of nodes.  The first node sequentially
+     * is the start node for the trie.  
+     *
+     * Nodes for a symbol start with a uleb128 that is the length of
+     * the exported symbol information for the string so far.
+     * If there is no exported symbol, the node starts with a zero byte. 
+     * If there is exported info, it follows the length.  First is
+     * a uleb128 containing flags.  Normally, it is followed by a
+     * uleb128 encoded offset which is location of the content named
+     * by the symbol from the mach_header for the image.  If the flags
+     * is EXPORT_SYMBOL_FLAGS_REEXPORT, then following the flags is
+     * a uleb128 encoded library ordinal, then a zero terminated
+     * UTF8 string.  If the string is zero length, then the symbol
+     * is re-export from the specified dylib with the same name.
+     *
+     * After the optional exported symbol information is a byte of
+     * how many edges (0-255) that this node has leaving it, 
+     * followed by each edge.
+     * Each edge is a zero terminated UTF8 of the addition chars
+     * in the symbol, followed by a uleb128 offset for the node that
+     * edge points to.
+     *  
+     */
+    uint32_t   export_off;	/* file offset to lazy binding info */
+    uint32_t   export_size;	/* size of lazy binding infs */
+};
+
+/*
+ * The following are used to encode rebasing information
+ */
+#define REBASE_TYPE_POINTER					1
+#define REBASE_TYPE_TEXT_ABSOLUTE32				2
+#define REBASE_TYPE_TEXT_PCREL32				3
+
+#define REBASE_OPCODE_MASK					0xF0
+#define REBASE_IMMEDIATE_MASK					0x0F
+#define REBASE_OPCODE_DONE					0x00
+#define REBASE_OPCODE_SET_TYPE_IMM				0x10
+#define REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB		0x20
+#define REBASE_OPCODE_ADD_ADDR_ULEB				0x30
+#define REBASE_OPCODE_ADD_ADDR_IMM_SCALED			0x40
+#define REBASE_OPCODE_DO_REBASE_IMM_TIMES			0x50
+#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES			0x60
+#define REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB			0x70
+#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB	0x80
+
+
+/*
+ * The following are used to encode binding information
+ */
+#define BIND_TYPE_POINTER					1
+#define BIND_TYPE_TEXT_ABSOLUTE32				2
+#define BIND_TYPE_TEXT_PCREL32					3
+
+#define BIND_SPECIAL_DYLIB_SELF					 0
+#define BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE			-1
+#define BIND_SPECIAL_DYLIB_FLAT_LOOKUP				-2
+
+#define BIND_SYMBOL_FLAGS_WEAK_IMPORT				0x1
+#define BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION			0x8
+
+#define BIND_OPCODE_MASK					0xF0
+#define BIND_IMMEDIATE_MASK					0x0F
+#define BIND_OPCODE_DONE					0x00
+#define BIND_OPCODE_SET_DYLIB_ORDINAL_IMM			0x10
+#define BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB			0x20
+#define BIND_OPCODE_SET_DYLIB_SPECIAL_IMM			0x30
+#define BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM		0x40
+#define BIND_OPCODE_SET_TYPE_IMM				0x50
+#define BIND_OPCODE_SET_ADDEND_SLEB				0x60
+#define BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB			0x70
+#define BIND_OPCODE_ADD_ADDR_ULEB				0x80
+#define BIND_OPCODE_DO_BIND					0x90
+#define BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB			0xA0
+#define BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED			0xB0
+#define BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB		0xC0
+
+
+/*
+ * The following are used on the flags byte of a terminal node
+ * in the export information.
+ */
+#define EXPORT_SYMBOL_FLAGS_KIND_MASK				0x03
+#define EXPORT_SYMBOL_FLAGS_KIND_REGULAR			0x00
+#define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL			0x01
+#define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION			0x04
+#define EXPORT_SYMBOL_FLAGS_REEXPORT				0x08
+#define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER			0x10
+
+/*
+ * The symseg_command contains the offset and size of the GNU style
+ * symbol table information as described in the header file <symseg.h>.
+ * The symbol roots of the symbol segments must also be aligned properly
+ * in the file.  So the requirement of keeping the offsets aligned to a
+ * multiple of a 4 bytes translates to the length field of the symbol
+ * roots also being a multiple of a long.  Also the padding must again be
+ * zeroed. (THIS IS OBSOLETE and no longer supported).
+ */
+struct symseg_command {
+	uint32_t	cmd;		/* LC_SYMSEG */
+	uint32_t	cmdsize;	/* sizeof(struct symseg_command) */
+	uint32_t	offset;		/* symbol segment offset */
+	uint32_t	size;		/* symbol segment size in bytes */
+};
+
+/*
+ * The ident_command contains a free format string table following the
+ * ident_command structure.  The strings are null terminated and the size of
+ * the command is padded out with zero bytes to a multiple of 4 bytes/
+ * (THIS IS OBSOLETE and no longer supported).
+ */
+struct ident_command {
+	uint32_t cmd;		/* LC_IDENT */
+	uint32_t cmdsize;	/* strings that follow this command */
+};
+
+/*
+ * The fvmfile_command contains a reference to a file to be loaded at the
+ * specified virtual address.  (Presently, this command is reserved for
+ * internal use.  The kernel ignores this command when loading a program into
+ * memory).
+ */
+struct fvmfile_command {
+	uint32_t cmd;			/* LC_FVMFILE */
+	uint32_t cmdsize;		/* includes pathname string */
+	union lc_str	name;		/* files pathname */
+	uint32_t	header_addr;	/* files virtual address */
+};
+
+/*
+ * Sections of type S_THREAD_LOCAL_VARIABLES contain an array 
+ * of tlv_descriptor structures.
+ */
+struct tlv_descriptor
+{
+	void*		(*thunk)(struct tlv_descriptor*);
+	unsigned long	key;
+	unsigned long	offset;
+};
+
+#endif /* _MACHO_LOADER_H_ */
diff --git a/src/third_party/mac_headers/mach-o/nlist.h b/src/third_party/mac_headers/mach-o/nlist.h
new file mode 100644
index 0000000..1c19410
--- /dev/null
+++ b/src/third_party/mac_headers/mach-o/nlist.h
@@ -0,0 +1,312 @@
+/*
+ * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * 
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#ifndef _MACHO_NLIST_H_
+#define _MACHO_NLIST_H_
+/*	$NetBSD: nlist.h,v 1.5 1994/10/26 00:56:11 cgd Exp $	*/
+
+/*-
+ * Copyright (c) 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)nlist.h	8.2 (Berkeley) 1/21/94
+ */
+#include <stdint.h>
+
+/*
+ * Format of a symbol table entry of a Mach-O file for 32-bit architectures.
+ * Modified from the BSD format.  The modifications from the original format
+ * were changing n_other (an unused field) to n_sect and the addition of the
+ * N_SECT type.  These modifications are required to support symbols in a larger
+ * number of sections not just the three sections (text, data and bss) in a BSD
+ * file.
+ */
+struct nlist {
+	union {
+#ifndef __LP64__
+		char *n_name;	/* for use when in-core */
+#endif
+		int32_t n_strx;	/* index into the string table */
+	} n_un;
+	uint8_t n_type;		/* type flag, see below */
+	uint8_t n_sect;		/* section number or NO_SECT */
+	int16_t n_desc;		/* see <mach-o/stab.h> */
+	uint32_t n_value;	/* value of this symbol (or stab offset) */
+};
+
+/*
+ * This is the symbol table entry structure for 64-bit architectures.
+ */
+struct nlist_64 {
+    union {
+        uint32_t  n_strx; /* index into the string table */
+    } n_un;
+    uint8_t n_type;        /* type flag, see below */
+    uint8_t n_sect;        /* section number or NO_SECT */
+    uint16_t n_desc;       /* see <mach-o/stab.h> */
+    uint64_t n_value;      /* value of this symbol (or stab offset) */
+};
+
+/*
+ * Symbols with a index into the string table of zero (n_un.n_strx == 0) are
+ * defined to have a null, "", name.  Therefore all string indexes to non null
+ * names must not have a zero string index.  This is bit historical information
+ * that has never been well documented.
+ */
+
+/*
+ * The n_type field really contains four fields:
+ *	unsigned char N_STAB:3,
+ *		      N_PEXT:1,
+ *		      N_TYPE:3,
+ *		      N_EXT:1;
+ * which are used via the following masks.
+ */
+#define	N_STAB	0xe0  /* if any of these bits set, a symbolic debugging entry */
+#define	N_PEXT	0x10  /* private external symbol bit */
+#define	N_TYPE	0x0e  /* mask for the type bits */
+#define	N_EXT	0x01  /* external symbol bit, set for external symbols */
+
+/*
+ * Only symbolic debugging entries have some of the N_STAB bits set and if any
+ * of these bits are set then it is a symbolic debugging entry (a stab).  In
+ * which case then the values of the n_type field (the entire field) are given
+ * in <mach-o/stab.h>
+ */
+
+/*
+ * Values for N_TYPE bits of the n_type field.
+ */
+#define	N_UNDF	0x0		/* undefined, n_sect == NO_SECT */
+#define	N_ABS	0x2		/* absolute, n_sect == NO_SECT */
+#define	N_SECT	0xe		/* defined in section number n_sect */
+#define	N_PBUD	0xc		/* prebound undefined (defined in a dylib) */
+#define N_INDR	0xa		/* indirect */
+
+/* 
+ * If the type is N_INDR then the symbol is defined to be the same as another
+ * symbol.  In this case the n_value field is an index into the string table
+ * of the other symbol's name.  When the other symbol is defined then they both
+ * take on the defined type and value.
+ */
+
+/*
+ * If the type is N_SECT then the n_sect field contains an ordinal of the
+ * section the symbol is defined in.  The sections are numbered from 1 and 
+ * refer to sections in order they appear in the load commands for the file
+ * they are in.  This means the same ordinal may very well refer to different
+ * sections in different files.
+ *
+ * The n_value field for all symbol table entries (including N_STAB's) gets
+ * updated by the link editor based on the value of it's n_sect field and where
+ * the section n_sect references gets relocated.  If the value of the n_sect 
+ * field is NO_SECT then it's n_value field is not changed by the link editor.
+ */
+#define	NO_SECT		0	/* symbol is not in any section */
+#define MAX_SECT	255	/* 1 thru 255 inclusive */
+
+/*
+ * Common symbols are represented by undefined (N_UNDF) external (N_EXT) types
+ * who's values (n_value) are non-zero.  In which case the value of the n_value
+ * field is the size (in bytes) of the common symbol.  The n_sect field is set
+ * to NO_SECT.  The alignment of a common symbol may be set as a power of 2
+ * between 2^1 and 2^15 as part of the n_desc field using the macros below. If
+ * the alignment is not set (a value of zero) then natural alignment based on
+ * the size is used.
+ */
+#define GET_COMM_ALIGN(n_desc) (((n_desc) >> 8) & 0x0f)
+#define SET_COMM_ALIGN(n_desc,align) \
+    (n_desc) = (((n_desc) & 0xf0ff) | (((align) & 0x0f) << 8))
+
+/*
+ * To support the lazy binding of undefined symbols in the dynamic link-editor,
+ * the undefined symbols in the symbol table (the nlist structures) are marked
+ * with the indication if the undefined reference is a lazy reference or
+ * non-lazy reference.  If both a non-lazy reference and a lazy reference is
+ * made to the same symbol the non-lazy reference takes precedence.  A reference
+ * is lazy only when all references to that symbol are made through a symbol
+ * pointer in a lazy symbol pointer section.
+ *
+ * The implementation of marking nlist structures in the symbol table for
+ * undefined symbols will be to use some of the bits of the n_desc field as a
+ * reference type.  The mask REFERENCE_TYPE will be applied to the n_desc field
+ * of an nlist structure for an undefined symbol to determine the type of
+ * undefined reference (lazy or non-lazy).
+ *
+ * The constants for the REFERENCE FLAGS are propagated to the reference table
+ * in a shared library file.  In that case the constant for a defined symbol,
+ * REFERENCE_FLAG_DEFINED, is also used.
+ */
+/* Reference type bits of the n_desc field of undefined symbols */
+#define REFERENCE_TYPE				0x7
+/* types of references */
+#define REFERENCE_FLAG_UNDEFINED_NON_LAZY		0
+#define REFERENCE_FLAG_UNDEFINED_LAZY			1
+#define REFERENCE_FLAG_DEFINED				2
+#define REFERENCE_FLAG_PRIVATE_DEFINED			3
+#define REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY	4
+#define REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY		5
+
+/*
+ * To simplify stripping of objects that use are used with the dynamic link
+ * editor, the static link editor marks the symbols defined an object that are
+ * referenced by a dynamicly bound object (dynamic shared libraries, bundles).
+ * With this marking strip knows not to strip these symbols.
+ */
+#define REFERENCED_DYNAMICALLY	0x0010
+
+/*
+ * For images created by the static link editor with the -twolevel_namespace
+ * option in effect the flags field of the mach header is marked with
+ * MH_TWOLEVEL.  And the binding of the undefined references of the image are
+ * determined by the static link editor.  Which library an undefined symbol is
+ * bound to is recorded by the static linker in the high 8 bits of the n_desc
+ * field using the SET_LIBRARY_ORDINAL macro below.  The ordinal recorded
+ * references the libraries listed in the Mach-O's LC_LOAD_DYLIB,
+ * LC_LOAD_WEAK_DYLIB, LC_REEXPORT_DYLIB, LC_LOAD_UPWARD_DYLIB, and
+ * LC_LAZY_LOAD_DYLIB, etc. load commands in the order they appear in the
+ * headers.   The library ordinals start from 1.
+ * For a dynamic library that is built as a two-level namespace image the
+ * undefined references from module defined in another use the same nlist struct
+ * an in that case SELF_LIBRARY_ORDINAL is used as the library ordinal.  For
+ * defined symbols in all images they also must have the library ordinal set to
+ * SELF_LIBRARY_ORDINAL.  The EXECUTABLE_ORDINAL refers to the executable
+ * image for references from plugins that refer to the executable that loads
+ * them.
+ * 
+ * The DYNAMIC_LOOKUP_ORDINAL is for undefined symbols in a two-level namespace
+ * image that are looked up by the dynamic linker with flat namespace semantics.
+ * This ordinal was added as a feature in Mac OS X 10.3 by reducing the
+ * value of MAX_LIBRARY_ORDINAL by one.  So it is legal for existing binaries
+ * or binaries built with older tools to have 0xfe (254) dynamic libraries.  In
+ * this case the ordinal value 0xfe (254) must be treated as a library ordinal
+ * for compatibility. 
+ */
+#define GET_LIBRARY_ORDINAL(n_desc) (((n_desc) >> 8) & 0xff)
+#define SET_LIBRARY_ORDINAL(n_desc,ordinal) \
+	(n_desc) = (((n_desc) & 0x00ff) | (((ordinal) & 0xff) << 8))
+#define SELF_LIBRARY_ORDINAL 0x0
+#define MAX_LIBRARY_ORDINAL 0xfd
+#define DYNAMIC_LOOKUP_ORDINAL 0xfe
+#define EXECUTABLE_ORDINAL 0xff
+
+/*
+ * The bit 0x0020 of the n_desc field is used for two non-overlapping purposes
+ * and has two different symbolic names, N_NO_DEAD_STRIP and N_DESC_DISCARDED.
+ */
+
+/*
+ * The N_NO_DEAD_STRIP bit of the n_desc field only ever appears in a 
+ * relocatable .o file (MH_OBJECT filetype). And is used to indicate to the
+ * static link editor it is never to dead strip the symbol.
+ */
+#define N_NO_DEAD_STRIP 0x0020 /* symbol is not to be dead stripped */
+
+/*
+ * The N_DESC_DISCARDED bit of the n_desc field never appears in linked image.
+ * But is used in very rare cases by the dynamic link editor to mark an in
+ * memory symbol as discared and longer used for linking.
+ */
+#define N_DESC_DISCARDED 0x0020	/* symbol is discarded */
+
+/*
+ * The N_WEAK_REF bit of the n_desc field indicates to the dynamic linker that
+ * the undefined symbol is allowed to be missing and is to have the address of
+ * zero when missing.
+ */
+#define N_WEAK_REF	0x0040 /* symbol is weak referenced */
+
+/*
+ * The N_WEAK_DEF bit of the n_desc field indicates to the static and dynamic
+ * linkers that the symbol definition is weak, allowing a non-weak symbol to
+ * also be used which causes the weak definition to be discared.  Currently this
+ * is only supported for symbols in coalesed sections.
+ */
+#define N_WEAK_DEF	0x0080 /* coalesed symbol is a weak definition */
+
+/*
+ * The N_REF_TO_WEAK bit of the n_desc field indicates to the dynamic linker
+ * that the undefined symbol should be resolved using flat namespace searching.
+ */
+#define	N_REF_TO_WEAK	0x0080 /* reference to a weak symbol */
+
+/*
+ * The N_ARM_THUMB_DEF bit of the n_desc field indicates that the symbol is
+ * a defintion of a Thumb function.
+ */
+#define N_ARM_THUMB_DEF	0x0008 /* symbol is a Thumb function (ARM) */
+
+/*
+ * The N_SYMBOL_RESOLVER bit of the n_desc field indicates that the
+ * that the function is actually a resolver function and should
+ * be called to get the address of the real function to use.
+ * This bit is only available in .o files (MH_OBJECT filetype)
+ */
+#define N_SYMBOL_RESOLVER  0x0100 
+
+#ifndef __STRICT_BSD__
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+/*
+ * The function nlist(3) from the C library.
+ */
+extern int nlist (const char *filename, struct nlist *list);
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __STRICT_BSD__ */
+
+#endif /* _MACHO_LIST_H_ */
diff --git a/src/third_party/mac_headers/mach/boolean.h b/src/third_party/mac_headers/mach/boolean.h
new file mode 100644
index 0000000..641c396
--- /dev/null
+++ b/src/third_party/mac_headers/mach/boolean.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/boolean.h
+ *
+ *	Boolean data type.
+ *
+ */
+
+#ifndef	_MACH_BOOLEAN_H_
+#define	_MACH_BOOLEAN_H_
+
+/*
+ *	Pick up "boolean_t" type definition
+ */
+
+#ifndef	ASSEMBLER
+#include <mach/machine/boolean.h>
+#endif	/* ASSEMBLER */
+
+/*
+ *	Define TRUE and FALSE if not defined.
+ */
+
+#ifndef	TRUE
+#define TRUE	1
+#endif	/* TRUE */
+
+#ifndef	FALSE
+#define FALSE	0
+#endif	/* FALSE */
+
+#endif	/* _MACH_BOOLEAN_H_ */
diff --git a/src/third_party/mac_headers/mach/i386/boolean.h b/src/third_party/mac_headers/mach/i386/boolean.h
new file mode 100644
index 0000000..100f7e7
--- /dev/null
+++ b/src/third_party/mac_headers/mach/i386/boolean.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	boolean.h
+ *
+ *	Boolean type, for I386.
+ */
+
+#ifndef	_MACH_I386_BOOLEAN_H_
+#define _MACH_I386_BOOLEAN_H_
+
+#if defined(__x86_64__) && !defined(KERNEL)
+typedef unsigned int	boolean_t;
+#else
+typedef int		boolean_t;
+#endif
+
+#endif	/* _MACH_I386_BOOLEAN_H_ */
diff --git a/src/third_party/mac_headers/mach/i386/vm_param.h b/src/third_party/mac_headers/mach/i386/vm_param.h
new file mode 100644
index 0000000..edcb834
--- /dev/null
+++ b/src/third_party/mac_headers/mach/i386/vm_param.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/* 
+ * Copyright (c) 1994 The University of Utah and
+ * the Computer Systems Laboratory at the University of Utah (CSL).
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software is hereby
+ * granted provided that (1) source code retains these copyright, permission,
+ * and disclaimer notices, and (2) redistributions including binaries
+ * reproduce the notices in supporting documentation, and (3) all advertising
+ * materials mentioning features or use of this software display the following
+ * acknowledgement: ``This product includes software developed by the
+ * Computer Systems Laboratory at the University of Utah.''
+ *
+ * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
+ * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
+ * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * CSL requests users of this software to return to csl-dist@cs.utah.edu any
+ * improvements that they make and grant CSL redistribution rights.
+ *
+ */
+
+/*
+ *	File:	vm_param.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1985
+ *
+ *	I386 machine dependent virtual memory parameters.
+ *	Most of the declarations are preceeded by I386_ (or i386_)
+ *	which is OK because only I386 specific code will be using
+ *	them.
+ */
+
+#ifndef	_MACH_I386_VM_PARAM_H_
+#define _MACH_I386_VM_PARAM_H_
+
+#define BYTE_SIZE		8		/* byte size in bits */
+
+#define I386_PGBYTES		4096		/* bytes per 80386 page */
+#define I386_PGSHIFT		12		/* bitshift for pages */
+
+#define	PAGE_SIZE		I386_PGBYTES
+#define	PAGE_SHIFT		I386_PGSHIFT
+#define	PAGE_MASK		(PAGE_SIZE - 1)
+
+#define I386_LPGBYTES		2*1024*1024	/* bytes per large page */
+#define I386_LPGSHIFT		21		/* bitshift for large pages */
+#define I386_LPGMASK		(I386_LPGBYTES-1)
+
+/*
+ *	Convert bytes to pages and convert pages to bytes.
+ *	No rounding is used.
+ */
+
+#define i386_btop(x)		((ppnum_t)((x) >> I386_PGSHIFT))
+#define machine_btop(x)		i386_btop(x)
+#define i386_ptob(x)		(((pmap_paddr_t)(x)) << I386_PGSHIFT)
+
+/*
+ *	Round off or truncate to the nearest page.  These will work
+ *	for either addresses or counts.  (i.e. 1 byte rounds to 1 page
+ *	bytes.
+ */
+
+#define i386_round_page(x)	((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \
+					~(I386_PGBYTES-1))
+#define i386_trunc_page(x)	(((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1))
+
+
+
+#define VM_MIN_ADDRESS64	((user_addr_t) 0x0000000000000000ULL)
+/*
+ * default top of user stack... it grows down from here
+ */
+#define VM_USRSTACK64		((user_addr_t) 0x00007FFF5FC00000ULL)
+#define VM_DYLD64		((user_addr_t) 0x00007FFF5FC00000ULL)
+#define VM_LIB64_SHR_DATA	((user_addr_t) 0x00007FFF60000000ULL)
+#define VM_LIB64_SHR_TEXT	((user_addr_t) 0x00007FFF80000000ULL)
+/*
+ * the end of the usable user address space , for now about 47 bits.
+ * the 64 bit commpage is past the end of this
+ */
+#define VM_MAX_PAGE_ADDRESS	((user_addr_t) 0x00007FFFFFE00000ULL)
+/*
+ * canonical end of user address space for limits checking
+ */
+#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL)
+
+
+/* system-wide values */
+#define MACH_VM_MIN_ADDRESS		((mach_vm_offset_t) 0)
+#define MACH_VM_MAX_ADDRESS		((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS)
+
+/* process-relative values (all 32-bit legacy only for now) */
+#define VM_MIN_ADDRESS		((vm_offset_t) 0)
+#define VM_USRSTACK32		((vm_offset_t) 0xC0000000)
+#define VM_MAX_ADDRESS		((vm_offset_t) 0xFFE00000)
+
+
+
+#endif	/* _MACH_I386_VM_PARAM_H_ */
diff --git a/src/third_party/mac_headers/mach/i386/vm_types.h b/src/third_party/mac_headers/mach/i386/vm_types.h
new file mode 100644
index 0000000..2c38fa2
--- /dev/null
+++ b/src/third_party/mac_headers/mach/i386/vm_types.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	vm_types.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date: 1985
+ *
+ *	Header file for VM data types.  I386 version.
+ */
+
+#ifndef	_MACH_I386_VM_TYPES_H_
+#define _MACH_I386_VM_TYPES_H_
+
+#ifndef	ASSEMBLER
+
+#include <i386/_types.h>
+#include <mach/i386/vm_param.h>
+#include <stdint.h>
+
+/*
+ * natural_t and integer_t are Mach's legacy types for machine-
+ * independent integer types (unsigned, and signed, respectively).
+ * Their original purpose was to define other types in a machine/
+ * compiler independent way.
+ *
+ * They also had an implicit "same size as pointer" characteristic
+ * to them (i.e. Mach's traditional types are very ILP32 or ILP64
+ * centric).  We support x86 ABIs that do not follow either of
+ * these models (specifically LP64).  Therefore, we had to make a
+ * choice between making these types scale with pointers or stay
+ * tied to integers.  Because their use is predominantly tied to
+ * to the size of an integer, we are keeping that association and
+ * breaking free from pointer size guarantees.
+ *
+ * New use of these types is discouraged.
+ */
+typedef __darwin_natural_t	natural_t;
+typedef int			integer_t;
+
+/*
+ * A vm_offset_t is a type-neutral pointer,
+ * e.g. an offset into a virtual memory space.
+ */
+#ifdef __LP64__
+typedef uintptr_t		vm_offset_t;
+#else	/* __LP64__ */
+typedef	natural_t		vm_offset_t;
+#endif	/* __LP64__ */
+
+/*
+ * A vm_size_t is the proper type for e.g.
+ * expressing the difference between two
+ * vm_offset_t entities.
+ */
+#ifdef __LP64__
+typedef uintptr_t		vm_size_t;
+#else	/* __LP64__ */
+typedef	natural_t		vm_size_t;
+#endif	/* __LP64__ */
+
+/*
+ * This new type is independent of a particular vm map's
+ * implementation size - and represents appropriate types
+ * for all possible maps.  This is used for interfaces
+ * where the size of the map is not known - or we don't
+ * want to have to distinguish.
+ */
+typedef uint64_t		mach_vm_address_t;
+typedef uint64_t		mach_vm_offset_t;
+typedef uint64_t		mach_vm_size_t;
+
+typedef uint64_t		vm_map_offset_t;
+typedef uint64_t		vm_map_address_t;
+typedef uint64_t		vm_map_size_t;
+
+
+#endif	/* ASSEMBLER */
+
+/*
+ * If composing messages by hand (please do not)
+ */
+#define	MACH_MSG_TYPE_INTEGER_T	MACH_MSG_TYPE_INTEGER_32
+
+#endif	/* _MACH_I386_VM_TYPES_H_ */
diff --git a/src/third_party/mac_headers/mach/machine.h b/src/third_party/mac_headers/mach/machine.h
new file mode 100644
index 0000000..5bb21e4
--- /dev/null
+++ b/src/third_party/mac_headers/mach/machine.h
@@ -0,0 +1,347 @@
+/*
+ * Copyright (c) 2000-2007 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*	File:	machine.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1986
+ *
+ *	Machine independent machine abstraction.
+ */
+
+#ifndef	_MACH_MACHINE_H_
+#define _MACH_MACHINE_H_
+
+#include <stdint.h>
+#include <mach/machine/vm_types.h>
+#include <mach/boolean.h>
+
+typedef integer_t	cpu_type_t;
+typedef integer_t	cpu_subtype_t;
+typedef integer_t	cpu_threadtype_t;
+
+#define CPU_STATE_MAX		4
+
+#define CPU_STATE_USER		0
+#define CPU_STATE_SYSTEM	1
+#define CPU_STATE_IDLE		2
+#define CPU_STATE_NICE		3
+
+
+
+/*
+ * Capability bits used in the definition of cpu_type.
+ */
+#define	CPU_ARCH_MASK	0xff000000		/* mask for architecture bits */
+#define CPU_ARCH_ABI64	0x01000000		/* 64 bit ABI */
+
+/*
+ *	Machine types known by all.
+ */
+ 
+#define CPU_TYPE_ANY		((cpu_type_t) -1)
+
+#define CPU_TYPE_VAX		((cpu_type_t) 1)
+/* skip				((cpu_type_t) 2)	*/
+/* skip				((cpu_type_t) 3)	*/
+/* skip				((cpu_type_t) 4)	*/
+/* skip				((cpu_type_t) 5)	*/
+#define	CPU_TYPE_MC680x0	((cpu_type_t) 6)
+#define CPU_TYPE_X86		((cpu_type_t) 7)
+#define CPU_TYPE_I386		CPU_TYPE_X86		/* compatibility */
+#define	CPU_TYPE_X86_64		(CPU_TYPE_X86 | CPU_ARCH_ABI64)
+
+/* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/
+/* skip 			((cpu_type_t) 9)	*/
+#define CPU_TYPE_MC98000	((cpu_type_t) 10)
+#define CPU_TYPE_HPPA           ((cpu_type_t) 11)
+#define CPU_TYPE_ARM		((cpu_type_t) 12)
+#define CPU_TYPE_MC88000	((cpu_type_t) 13)
+#define CPU_TYPE_SPARC		((cpu_type_t) 14)
+#define CPU_TYPE_I860		((cpu_type_t) 15)
+/* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/
+/* skip				((cpu_type_t) 17)	*/
+#define CPU_TYPE_POWERPC		((cpu_type_t) 18)
+#define CPU_TYPE_POWERPC64		(CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
+
+/*
+ *	Machine subtypes (these are defined here, instead of in a machine
+ *	dependent directory, so that any program can get all definitions
+ *	regardless of where is it compiled).
+ */
+
+/*
+ * Capability bits used in the definition of cpu_subtype.
+ */
+#define CPU_SUBTYPE_MASK	0xff000000	/* mask for feature flags */
+#define CPU_SUBTYPE_LIB64	0x80000000	/* 64 bit libraries */
+
+
+/*
+ *	Object files that are hand-crafted to run on any
+ *	implementation of an architecture are tagged with
+ *	CPU_SUBTYPE_MULTIPLE.  This functions essentially the same as
+ *	the "ALL" subtype of an architecture except that it allows us
+ *	to easily find object files that may need to be modified
+ *	whenever a new implementation of an architecture comes out.
+ *
+ *	It is the responsibility of the implementor to make sure the
+ *	software handles unsupported implementations elegantly.
+ */
+#define	CPU_SUBTYPE_MULTIPLE		((cpu_subtype_t) -1)
+#define CPU_SUBTYPE_LITTLE_ENDIAN	((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_BIG_ENDIAN		((cpu_subtype_t) 1)
+
+/*
+ *     Machine threadtypes.
+ *     This is none - not defined - for most machine types/subtypes.
+ */
+#define CPU_THREADTYPE_NONE		((cpu_threadtype_t) 0)
+
+/*
+ *	VAX subtypes (these do *not* necessary conform to the actual cpu
+ *	ID assigned by DEC available via the SID register).
+ */
+
+#define	CPU_SUBTYPE_VAX_ALL	((cpu_subtype_t) 0) 
+#define CPU_SUBTYPE_VAX780	((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_VAX785	((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_VAX750	((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_VAX730	((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_UVAXI	((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_UVAXII	((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_VAX8200	((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_VAX8500	((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_VAX8600	((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_VAX8650	((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_VAX8800	((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_UVAXIII	((cpu_subtype_t) 12)
+
+/*
+ * 	680x0 subtypes
+ *
+ * The subtype definitions here are unusual for historical reasons.
+ * NeXT used to consider 68030 code as generic 68000 code.  For
+ * backwards compatability:
+ * 
+ *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code
+ *	compatability.
+ *
+ *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
+ *	subtype as CPU_SUBTYPE_MC68030 for binary comatability.
+ *
+ *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
+ *	files to be tagged as containing 68030-specific instructions.
+ */
+
+#define	CPU_SUBTYPE_MC680x0_ALL		((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC68030		((cpu_subtype_t) 1) /* compat */
+#define CPU_SUBTYPE_MC68040		((cpu_subtype_t) 2) 
+#define	CPU_SUBTYPE_MC68030_ONLY	((cpu_subtype_t) 3)
+
+/*
+ *	I386 subtypes
+ */
+
+#define CPU_SUBTYPE_INTEL(f, m)	((cpu_subtype_t) (f) + ((m) << 4))
+
+#define	CPU_SUBTYPE_I386_ALL			CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_386					CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_486					CPU_SUBTYPE_INTEL(4, 0)
+#define CPU_SUBTYPE_486SX				CPU_SUBTYPE_INTEL(4, 8)	// 8 << 4 = 128
+#define CPU_SUBTYPE_586					CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENT	CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENTPRO	CPU_SUBTYPE_INTEL(6, 1)
+#define CPU_SUBTYPE_PENTII_M3	CPU_SUBTYPE_INTEL(6, 3)
+#define CPU_SUBTYPE_PENTII_M5	CPU_SUBTYPE_INTEL(6, 5)
+#define CPU_SUBTYPE_CELERON				CPU_SUBTYPE_INTEL(7, 6)
+#define CPU_SUBTYPE_CELERON_MOBILE		CPU_SUBTYPE_INTEL(7, 7)
+#define CPU_SUBTYPE_PENTIUM_3			CPU_SUBTYPE_INTEL(8, 0)
+#define CPU_SUBTYPE_PENTIUM_3_M			CPU_SUBTYPE_INTEL(8, 1)
+#define CPU_SUBTYPE_PENTIUM_3_XEON		CPU_SUBTYPE_INTEL(8, 2)
+#define CPU_SUBTYPE_PENTIUM_M			CPU_SUBTYPE_INTEL(9, 0)
+#define CPU_SUBTYPE_PENTIUM_4			CPU_SUBTYPE_INTEL(10, 0)
+#define CPU_SUBTYPE_PENTIUM_4_M			CPU_SUBTYPE_INTEL(10, 1)
+#define CPU_SUBTYPE_ITANIUM				CPU_SUBTYPE_INTEL(11, 0)
+#define CPU_SUBTYPE_ITANIUM_2			CPU_SUBTYPE_INTEL(11, 1)
+#define CPU_SUBTYPE_XEON				CPU_SUBTYPE_INTEL(12, 0)
+#define CPU_SUBTYPE_XEON_MP				CPU_SUBTYPE_INTEL(12, 1)
+
+#define CPU_SUBTYPE_INTEL_FAMILY(x)	((x) & 15)
+#define CPU_SUBTYPE_INTEL_FAMILY_MAX	15
+
+#define CPU_SUBTYPE_INTEL_MODEL(x)	((x) >> 4)
+#define CPU_SUBTYPE_INTEL_MODEL_ALL	0
+
+/*
+ *	X86 subtypes.
+ */
+
+#define CPU_SUBTYPE_X86_ALL		((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_64_ALL		((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_ARCH1		((cpu_subtype_t)4)
+#define CPU_SUBTYPE_X86_64_H		((cpu_subtype_t)8)	/* Haswell feature subset */
+
+
+#define CPU_THREADTYPE_INTEL_HTT	((cpu_threadtype_t) 1)
+
+/*
+ *	Mips subtypes.
+ */
+
+#define	CPU_SUBTYPE_MIPS_ALL	((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MIPS_R2300	((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MIPS_R2600	((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_MIPS_R2800	((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_MIPS_R2000a	((cpu_subtype_t) 4)	/* pmax */
+#define CPU_SUBTYPE_MIPS_R2000	((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_MIPS_R3000a	((cpu_subtype_t) 6)	/* 3max */
+#define CPU_SUBTYPE_MIPS_R3000	((cpu_subtype_t) 7)
+
+/*
+ *	MC98000 (PowerPC) subtypes
+ */
+#define	CPU_SUBTYPE_MC98000_ALL	((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC98601	((cpu_subtype_t) 1)
+
+/*
+ *	HPPA subtypes for Hewlett-Packard HP-PA family of
+ *	risc processors. Port by NeXT to 700 series. 
+ */
+
+#define	CPU_SUBTYPE_HPPA_ALL		((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_HPPA_7100		((cpu_subtype_t) 0) /* compat */
+#define CPU_SUBTYPE_HPPA_7100LC		((cpu_subtype_t) 1)
+
+/*
+ *	MC88000 subtypes.
+ */
+#define	CPU_SUBTYPE_MC88000_ALL	((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC88100	((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC88110	((cpu_subtype_t) 2)
+
+/*
+ *	SPARC subtypes
+ */
+#define	CPU_SUBTYPE_SPARC_ALL		((cpu_subtype_t) 0)
+
+/*
+ *	I860 subtypes
+ */
+#define CPU_SUBTYPE_I860_ALL	((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_I860_860	((cpu_subtype_t) 1)
+
+/*
+ *	PowerPC subtypes
+ */
+#define CPU_SUBTYPE_POWERPC_ALL		((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_POWERPC_601		((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_POWERPC_602		((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_POWERPC_603		((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_POWERPC_603e	((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_POWERPC_603ev	((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_POWERPC_604		((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_POWERPC_604e	((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_POWERPC_620		((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_POWERPC_750		((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_POWERPC_7400	((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_POWERPC_7450	((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_POWERPC_970		((cpu_subtype_t) 100)
+
+/*
+ *	ARM subtypes
+ */
+#define CPU_SUBTYPE_ARM_ALL             ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM_V4T             ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_ARM_V6              ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_ARM_V5TEJ           ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_ARM_XSCALE		((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_ARM_V7		((cpu_subtype_t) 9)
+
+/*
+ *	CPU families (sysctl hw.cpufamily)
+ *
+ * These are meant to identify the CPU's marketing name - an
+ * application can map these to (possibly) localized strings.
+ * NB: the encodings of the CPU families are intentionally arbitrary.
+ * There is no ordering, and you should never try to deduce whether
+ * or not some feature is available based on the family.
+ * Use feature flags (eg, hw.optional.altivec) to test for optional
+ * functionality.
+ */
+#define CPUFAMILY_UNKNOWN   		0
+#define CPUFAMILY_POWERPC_G3		0xcee41549
+#define CPUFAMILY_POWERPC_G4		0x77c184ae
+#define CPUFAMILY_POWERPC_G5		0xed76d8aa
+#define CPUFAMILY_INTEL_6_13		0xaa33392b
+#define CPUFAMILY_INTEL_YONAH		0x73d67300
+#define CPUFAMILY_INTEL_MEROM		0x426f69ef
+#define CPUFAMILY_INTEL_PENRYN		0x78ea4fbc
+#define CPUFAMILY_INTEL_NEHALEM		0x6b5a4cd2
+#define CPUFAMILY_INTEL_WESTMERE	0x573b5eec
+#define CPUFAMILY_INTEL_SANDYBRIDGE	0x5490b78c
+#define CPUFAMILY_ARM_9			0xe73283ae
+#define CPUFAMILY_ARM_11		0x8ff620d8
+#define CPUFAMILY_ARM_XSCALE		0x53b005f5
+#define CPUFAMILY_ARM_13		0x0cc90e64
+#define CPUFAMILY_ARM_14		0x96077ef1
+
+/* The following synonyms are deprecated: */
+#define CPUFAMILY_INTEL_6_14	CPUFAMILY_INTEL_YONAH
+#define CPUFAMILY_INTEL_6_15	CPUFAMILY_INTEL_MEROM
+#define CPUFAMILY_INTEL_6_23	CPUFAMILY_INTEL_PENRYN
+#define CPUFAMILY_INTEL_6_26	CPUFAMILY_INTEL_NEHALEM
+
+#define CPUFAMILY_INTEL_CORE	CPUFAMILY_INTEL_YONAH
+#define CPUFAMILY_INTEL_CORE2	CPUFAMILY_INTEL_MEROM
+
+
+#endif	/* _MACH_MACHINE_H_ */
diff --git a/src/third_party/mac_headers/mach/machine/boolean.h b/src/third_party/mac_headers/mach/machine/boolean.h
new file mode 100644
index 0000000..ffdc239
--- /dev/null
+++ b/src/third_party/mac_headers/mach/machine/boolean.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_MACHINE_BOOLEAN_H_
+#define _MACH_MACHINE_BOOLEAN_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/boolean.h"
+#elif defined (__arm__)
+#include "mach/arm/boolean.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_BOOLEAN_H_ */
diff --git a/src/third_party/mac_headers/mach/machine/thread_state.h b/src/third_party/mac_headers/mach/machine/thread_state.h
new file mode 100644
index 0000000..1547aca
--- /dev/null
+++ b/src/third_party/mac_headers/mach/machine/thread_state.h
@@ -0,0 +1,9 @@
+/*
+ * This file is a stub with the bare minimum needed to make things work.
+ */
+#ifndef _MACH_MACHINE_THREAD_STATE_H_
+#define _MACH_MACHINE_THREAD_STATE_H_
+
+#define THREAD_STATE_MAX 1
+
+#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
diff --git a/src/third_party/mac_headers/mach/machine/thread_status.h b/src/third_party/mac_headers/mach/machine/thread_status.h
new file mode 100644
index 0000000..d1ab56a
--- /dev/null
+++ b/src/third_party/mac_headers/mach/machine/thread_status.h
@@ -0,0 +1 @@
+/* This file intentionally left blank */
diff --git a/src/third_party/mac_headers/mach/machine/vm_types.h b/src/third_party/mac_headers/mach/machine/vm_types.h
new file mode 100644
index 0000000..8ccd24b
--- /dev/null
+++ b/src/third_party/mac_headers/mach/machine/vm_types.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACH_MACHINE_VM_TYPES_H_
+#define _MACH_MACHINE_VM_TYPES_H_
+
+#if defined (__i386__) || defined(__x86_64__)
+#include "mach/i386/vm_types.h"
+#elif defined (__arm__)
+#include "mach/arm/vm_types.h"
+#else
+#error architecture not supported
+#endif
+
+#endif /* _MACH_MACHINE_VM_TYPES_H_ */
diff --git a/src/third_party/mac_headers/mach/thread_status.h b/src/third_party/mac_headers/mach/thread_status.h
new file mode 100644
index 0000000..aead09b
--- /dev/null
+++ b/src/third_party/mac_headers/mach/thread_status.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/thread_status.h
+ *	Author:	Avadis Tevanian, Jr.
+ *
+ *	This file contains the structure definitions for the user-visible
+ *	thread state.  This thread state is examined with the thread_get_state
+ *	kernel call and may be changed with the thread_set_state kernel call.
+ *
+ */
+
+#ifndef	_MACH_THREAD_STATUS_H_
+#define	_MACH_THREAD_STATUS_H_
+
+/*
+ *	The actual structure that comprises the thread state is defined
+ *	in the machine dependent module.
+ */
+#include <mach/machine/vm_types.h>
+#include <mach/machine/thread_status.h>
+#include <mach/machine/thread_state.h>
+
+/*
+ *	Generic definition for machine-dependent thread status.
+ */
+
+typedef	natural_t	*thread_state_t;	/* Variable-length array */
+
+/* THREAD_STATE_MAX is now defined in <mach/machine/thread_state.h> */
+typedef	natural_t	thread_state_data_t[THREAD_STATE_MAX];
+
+#define	THREAD_STATE_FLAVOR_LIST	0	/* List of valid flavors */
+#define THREAD_STATE_FLAVOR_LIST_NEW	128
+
+typedef	int			thread_state_flavor_t;
+typedef thread_state_flavor_t	*thread_state_flavor_array_t;
+
+#endif	/* _MACH_THREAD_STATUS_H_ */
diff --git a/src/third_party/mac_headers/mach/vm_prot.h b/src/third_party/mac_headers/mach/vm_prot.h
new file mode 100644
index 0000000..07c2114
--- /dev/null
+++ b/src/third_party/mac_headers/mach/vm_prot.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/* 
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ * 
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ * 
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ * 
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_prot.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *
+ *	Virtual memory protection definitions.
+ *
+ */
+
+#ifndef	_MACH_VM_PROT_H_
+#define	_MACH_VM_PROT_H_
+
+/*
+ *	Types defined:
+ *
+ *	vm_prot_t		VM protection values.
+ */
+
+typedef int		vm_prot_t;
+
+/*
+ *	Protection values, defined as bits within the vm_prot_t type
+ */
+
+#define	VM_PROT_NONE	((vm_prot_t) 0x00)
+
+#define VM_PROT_READ	((vm_prot_t) 0x01)	/* read permission */
+#define VM_PROT_WRITE	((vm_prot_t) 0x02)	/* write permission */
+#define VM_PROT_EXECUTE	((vm_prot_t) 0x04)	/* execute permission */
+
+/*
+ *	The default protection for newly-created virtual memory
+ */
+
+#define VM_PROT_DEFAULT	(VM_PROT_READ|VM_PROT_WRITE)
+
+/*
+ *	The maximum privileges possible, for parameter checking.
+ */
+
+#define VM_PROT_ALL	(VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
+
+/*
+ *	An invalid protection value.
+ *	Used only by memory_object_lock_request to indicate no change
+ *	to page locks.  Using -1 here is a bad idea because it
+ *	looks like VM_PROT_ALL and then some.
+ */
+
+#define VM_PROT_NO_CHANGE	((vm_prot_t) 0x08)
+
+/* 
+ *      When a caller finds that he cannot obtain write permission on a
+ *      mapped entry, the following flag can be used.  The entry will
+ *      be made "needs copy" effectively copying the object (using COW),
+ *      and write permission will be added to the maximum protections
+ *      for the associated entry. 
+ */        
+
+#define VM_PROT_COPY            ((vm_prot_t) 0x10)
+
+
+/*
+ *	Another invalid protection value.
+ *	Used only by memory_object_data_request upon an object
+ *	which has specified a copy_call copy strategy. It is used
+ *	when the kernel wants a page belonging to a copy of the
+ *	object, and is only asking the object as a result of
+ *	following a shadow chain. This solves the race between pages
+ *	being pushed up by the memory manager and the kernel
+ *	walking down the shadow chain.
+ */
+
+#define VM_PROT_WANTS_COPY	((vm_prot_t) 0x10)
+
+
+/*
+ * 	Another invalid protection value.
+ *	Indicates that the other protection bits are to be applied as a mask
+ *	against the actual protection bits of the map entry.
+ */
+#define VM_PROT_IS_MASK		((vm_prot_t) 0x40)
+
+#endif	/* _MACH_VM_PROT_H_ */
diff --git a/src/third_party/musl/COPYRIGHT b/src/third_party/musl/COPYRIGHT
new file mode 100644
index 0000000..f0ee3b7
--- /dev/null
+++ b/src/third_party/musl/COPYRIGHT
@@ -0,0 +1,163 @@
+musl as a whole is licensed under the following standard MIT license:
+
+----------------------------------------------------------------------
+Copyright © 2005-2014 Rich Felker, et al.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+----------------------------------------------------------------------
+
+Authors/contributors include:
+
+Alex Dowad
+Alexander Monakov
+Anthony G. Basile
+Arvid Picciani
+Bobby Bingham
+Boris Brezillon
+Brent Cook
+Chris Spiegel
+Clément Vasseur
+Daniel Micay
+Denys Vlasenko
+Emil Renner Berthing
+Felix Fietkau
+Felix Janda
+Gianluca Anzolin
+Hauke Mehrtens
+Hiltjo Posthuma
+Isaac Dunham
+Jaydeep Patil
+Jens Gustedt
+Jeremy Huntwork
+Jo-Philipp Wich
+Joakim Sindholt
+John Spencer
+Josiah Worcester
+Justin Cormack
+Khem Raj
+Kylie McClain
+Luca Barbato
+Luka Perkov
+M Farkas-Dyck (Strake)
+Mahesh Bodapati
+Michael Forney
+Natanael Copa
+Nicholas J. Kain
+orc
+Pascal Cuoq
+Petr Hosek
+Pierre Carrier
+Rich Felker
+Richard Pennington
+Shiz
+sin
+Solar Designer
+Stefan Kristiansson
+Szabolcs Nagy
+Timo Teräs
+Trutz Behn
+Valentin Ochs
+William Haddon
+
+Portions of this software are derived from third-party works licensed
+under terms compatible with the above MIT license:
+
+The TRE regular expression implementation (src/regex/reg* and
+src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
+under a 2-clause BSD license (license text in the source files). The
+included version has been heavily modified by Rich Felker in 2012, in
+the interests of size, simplicity, and namespace cleanliness.
+
+Much of the math library code (src/math/* and src/complex/*) is
+Copyright © 1993,2004 Sun Microsystems or
+Copyright © 2003-2011 David Schultz or
+Copyright © 2003-2009 Steven G. Kargl or
+Copyright © 2003-2009 Bruce D. Evans or
+Copyright © 2008 Stephen L. Moshier
+and labelled as such in comments in the individual source files. All
+have been licensed under extremely permissive terms.
+
+The ARM memcpy code (src/string/arm/memcpy_el.S) is Copyright © 2008
+The Android Open Source Project and is licensed under a two-clause BSD
+license. It was taken from Bionic libc, used on Android.
+
+The implementation of DES for crypt (src/crypt/crypt_des.c) is
+Copyright © 1994 David Burren. It is licensed under a BSD license.
+
+The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
+originally written by Solar Designer and placed into the public
+domain. The code also comes with a fallback permissive license for use
+in jurisdictions that may not recognize the public domain.
+
+The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
+Valentin Ochs and is licensed under an MIT-style license.
+
+The BSD PRNG implementation (src/prng/random.c) and XSI search API
+(src/search/*.c) functions are Copyright © 2011 Szabolcs Nagy and
+licensed under following terms: "Permission to use, copy, modify,
+and/or distribute this code for any purpose with or without fee is
+hereby granted. There is no warranty."
+
+The x86_64 port was written by Nicholas J. Kain and is licensed under
+the standard MIT terms.
+
+The mips and microblaze ports were originally written by Richard
+Pennington for use in the ellcc project. The original code was adapted
+by Rich Felker for build system and code conventions during upstream
+integration. It is licensed under the standard MIT terms.
+
+The mips64 port was contributed by Imagination Technologies and is
+licensed under the standard MIT terms.
+
+The powerpc port was also originally written by Richard Pennington,
+and later supplemented and integrated by John Spencer. It is licensed
+under the standard MIT terms.
+
+All other files which have no copyright comments are original works
+produced specifically for use as part of this library, written either
+by Rich Felker, the main author of the library, or by one or more
+contibutors listed above. Details on authorship of individual files
+can be found in the git version control history of the project. The
+omission of copyright and license comments in each file is in the
+interest of source tree size.
+
+In addition, permission is hereby granted for all public header files
+(include/* and arch/*/bits/*) and crt files intended to be linked into
+applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+the copyright notice and permission notice otherwise required by the
+license, and to use these files without any requirement of
+attribution. These files include substantial contributions from:
+
+Bobby Bingham
+John Spencer
+Nicholas J. Kain
+Rich Felker
+Richard Pennington
+Stefan Kristiansson
+Szabolcs Nagy
+
+all of whom have explicitly granted such permission.
+
+This file previously contained text expressing a belief that most of
+the files covered by the above exception were sufficiently trivial not
+to be subject to copyright, resulting in confusion over whether it
+negated the permissions granted in the license. In the spirit of
+permissive licensing, and of not having licensing issues being an
+obstacle to adoption, that text has been removed.
diff --git a/src/third_party/musl/README b/src/third_party/musl/README
new file mode 100644
index 0000000..a30eb11
--- /dev/null
+++ b/src/third_party/musl/README
@@ -0,0 +1,23 @@
+
+    musl libc
+
+musl, pronounced like the word "mussel", is an MIT-licensed
+implementation of the standard C library targetting the Linux syscall
+API, suitable for use in a wide range of deployment environments. musl
+offers efficient static and dynamic linking support, lightweight code
+and low runtime overhead, strong fail-safe guarantees under correct
+usage, and correctness in the sense of standards conformance and
+safety. musl is built on the principle that these goals are best
+achieved through simple code that is easy to understand and maintain.
+
+The 1.1 release series for musl features coverage for all interfaces
+defined in ISO C99 and POSIX 2008 base, along with a number of
+non-standardized interfaces for compatibility with Linux, BSD, and
+glibc functionality.
+
+For basic installation instructions, see the included INSTALL file.
+Information on full musl-targeted compiler toolchains, system
+bootstrapping, and Linux distributions built on musl can be found on
+the project website:
+
+    http://www.musl-libc.org/
diff --git a/src/third_party/musl/README.breakpad b/src/third_party/musl/README.breakpad
new file mode 100644
index 0000000..f500c43
--- /dev/null
+++ b/src/third_party/musl/README.breakpad
@@ -0,0 +1,3 @@
+This directory contains the elf header from
+https://git.musl-libc.org/cgit/musl/tree/
+that is required to get ELF working in dump_syms on Mac OS X.
diff --git a/src/third_party/musl/VERSION b/src/third_party/musl/VERSION
new file mode 100644
index 0000000..e9bc149
--- /dev/null
+++ b/src/third_party/musl/VERSION
@@ -0,0 +1 @@
+1.1.14
diff --git a/src/third_party/musl/include/elf.h b/src/third_party/musl/include/elf.h
new file mode 100644
index 0000000..8b3cd3e
--- /dev/null
+++ b/src/third_party/musl/include/elf.h
@@ -0,0 +1,2827 @@
+#ifndef _ELF_H
+#define _ELF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+typedef uint16_t Elf32_Half;
+typedef uint16_t Elf64_Half;
+
+typedef uint32_t Elf32_Word;
+typedef	int32_t  Elf32_Sword;
+typedef uint32_t Elf64_Word;
+typedef	int32_t  Elf64_Sword;
+
+typedef uint64_t Elf32_Xword;
+typedef	int64_t  Elf32_Sxword;
+typedef uint64_t Elf64_Xword;
+typedef	int64_t  Elf64_Sxword;
+
+typedef uint32_t Elf32_Addr;
+typedef uint64_t Elf64_Addr;
+
+typedef uint32_t Elf32_Off;
+typedef uint64_t Elf64_Off;
+
+typedef uint16_t Elf32_Section;
+typedef uint16_t Elf64_Section;
+
+typedef Elf32_Half Elf32_Versym;
+typedef Elf64_Half Elf64_Versym;
+
+#define EI_NIDENT (16)
+
+typedef struct {
+  unsigned char	e_ident[EI_NIDENT];
+  Elf32_Half	e_type;
+  Elf32_Half	e_machine;
+  Elf32_Word	e_version;
+  Elf32_Addr	e_entry;
+  Elf32_Off	e_phoff;
+  Elf32_Off	e_shoff;
+  Elf32_Word	e_flags;
+  Elf32_Half	e_ehsize;
+  Elf32_Half	e_phentsize;
+  Elf32_Half	e_phnum;
+  Elf32_Half	e_shentsize;
+  Elf32_Half	e_shnum;
+  Elf32_Half	e_shstrndx;
+} Elf32_Ehdr;
+
+typedef struct {
+  unsigned char	e_ident[EI_NIDENT];
+  Elf64_Half	e_type;
+  Elf64_Half	e_machine;
+  Elf64_Word	e_version;
+  Elf64_Addr	e_entry;
+  Elf64_Off	e_phoff;
+  Elf64_Off	e_shoff;
+  Elf64_Word	e_flags;
+  Elf64_Half	e_ehsize;
+  Elf64_Half	e_phentsize;
+  Elf64_Half	e_phnum;
+  Elf64_Half	e_shentsize;
+  Elf64_Half	e_shnum;
+  Elf64_Half	e_shstrndx;
+} Elf64_Ehdr;
+
+#define EI_MAG0		0
+#define ELFMAG0		0x7f
+
+#define EI_MAG1		1
+#define ELFMAG1		'E'
+
+#define EI_MAG2		2
+#define ELFMAG2		'L'
+
+#define EI_MAG3		3
+#define ELFMAG3		'F'
+
+
+#define	ELFMAG		"\177ELF"
+#define	SELFMAG		4
+
+#define EI_CLASS	4
+#define ELFCLASSNONE	0
+#define ELFCLASS32	1
+#define ELFCLASS64	2
+#define ELFCLASSNUM	3
+
+#define EI_DATA		5
+#define ELFDATANONE	0
+#define ELFDATA2LSB	1
+#define ELFDATA2MSB	2
+#define ELFDATANUM	3
+
+#define EI_VERSION	6
+
+
+#define EI_OSABI	7
+#define ELFOSABI_NONE		0
+#define ELFOSABI_SYSV		0
+#define ELFOSABI_HPUX		1
+#define ELFOSABI_NETBSD		2
+#define ELFOSABI_LINUX		3
+#define ELFOSABI_GNU		3
+#define ELFOSABI_SOLARIS	6
+#define ELFOSABI_AIX		7
+#define ELFOSABI_IRIX		8
+#define ELFOSABI_FREEBSD	9
+#define ELFOSABI_TRU64		10
+#define ELFOSABI_MODESTO	11
+#define ELFOSABI_OPENBSD	12
+#define ELFOSABI_ARM		97
+#define ELFOSABI_STANDALONE	255
+
+#define EI_ABIVERSION	8
+
+#define EI_PAD		9
+
+
+
+#define ET_NONE		0
+#define ET_REL		1
+#define ET_EXEC		2
+#define ET_DYN		3
+#define ET_CORE		4
+#define	ET_NUM		5
+#define ET_LOOS		0xfe00
+#define ET_HIOS		0xfeff
+#define ET_LOPROC	0xff00
+#define ET_HIPROC	0xffff
+
+
+
+#define EM_NONE		 0
+#define EM_M32		 1
+#define EM_SPARC	 2
+#define EM_386		 3
+#define EM_68K		 4
+#define EM_88K		 5
+#define EM_860		 7
+#define EM_MIPS		 8
+#define EM_S370		 9
+#define EM_MIPS_RS3_LE	10
+
+#define EM_PARISC	15
+#define EM_VPP500	17
+#define EM_SPARC32PLUS	18
+#define EM_960		19
+#define EM_PPC		20
+#define EM_PPC64	21
+#define EM_S390		22
+
+#define EM_V800		36
+#define EM_FR20		37
+#define EM_RH32		38
+#define EM_RCE		39
+#define EM_ARM		40
+#define EM_FAKE_ALPHA	41
+#define EM_SH		42
+#define EM_SPARCV9	43
+#define EM_TRICORE	44
+#define EM_ARC		45
+#define EM_H8_300	46
+#define EM_H8_300H	47
+#define EM_H8S		48
+#define EM_H8_500	49
+#define EM_IA_64	50
+#define EM_MIPS_X	51
+#define EM_COLDFIRE	52
+#define EM_68HC12	53
+#define EM_MMA		54
+#define EM_PCP		55
+#define EM_NCPU		56
+#define EM_NDR1		57
+#define EM_STARCORE	58
+#define EM_ME16		59
+#define EM_ST100	60
+#define EM_TINYJ	61
+#define EM_X86_64	62
+#define EM_PDSP		63
+
+#define EM_FX66		66
+#define EM_ST9PLUS	67
+#define EM_ST7		68
+#define EM_68HC16	69
+#define EM_68HC11	70
+#define EM_68HC08	71
+#define EM_68HC05	72
+#define EM_SVX		73
+#define EM_ST19		74
+#define EM_VAX		75
+#define EM_CRIS		76
+#define EM_JAVELIN	77
+#define EM_FIREPATH	78
+#define EM_ZSP		79
+#define EM_MMIX		80
+#define EM_HUANY	81
+#define EM_PRISM	82
+#define EM_AVR		83
+#define EM_FR30		84
+#define EM_D10V		85
+#define EM_D30V		86
+#define EM_V850		87
+#define EM_M32R		88
+#define EM_MN10300	89
+#define EM_MN10200	90
+#define EM_PJ		91
+#define EM_OR1K		92
+#define EM_ARC_A5	93
+#define EM_XTENSA	94
+#define EM_AARCH64	183
+#define EM_TILEPRO	188
+#define EM_MICROBLAZE	189
+#define EM_TILEGX	191
+#define EM_NUM		192
+#define EM_ALPHA	0x9026
+
+#define EV_NONE		0
+#define EV_CURRENT	1
+#define EV_NUM		2
+
+typedef struct {
+  Elf32_Word	sh_name;
+  Elf32_Word	sh_type;
+  Elf32_Word	sh_flags;
+  Elf32_Addr	sh_addr;
+  Elf32_Off	sh_offset;
+  Elf32_Word	sh_size;
+  Elf32_Word	sh_link;
+  Elf32_Word	sh_info;
+  Elf32_Word	sh_addralign;
+  Elf32_Word	sh_entsize;
+} Elf32_Shdr;
+
+typedef struct {
+  Elf64_Word	sh_name;
+  Elf64_Word	sh_type;
+  Elf64_Xword	sh_flags;
+  Elf64_Addr	sh_addr;
+  Elf64_Off	sh_offset;
+  Elf64_Xword	sh_size;
+  Elf64_Word	sh_link;
+  Elf64_Word	sh_info;
+  Elf64_Xword	sh_addralign;
+  Elf64_Xword	sh_entsize;
+} Elf64_Shdr;
+
+
+
+#define SHN_UNDEF	0
+#define SHN_LORESERVE	0xff00
+#define SHN_LOPROC	0xff00
+#define SHN_BEFORE	0xff00
+
+#define SHN_AFTER	0xff01
+
+#define SHN_HIPROC	0xff1f
+#define SHN_LOOS	0xff20
+#define SHN_HIOS	0xff3f
+#define SHN_ABS		0xfff1
+#define SHN_COMMON	0xfff2
+#define SHN_XINDEX	0xffff
+#define SHN_HIRESERVE	0xffff
+
+
+
+#define SHT_NULL	  0
+#define SHT_PROGBITS	  1
+#define SHT_SYMTAB	  2
+#define SHT_STRTAB	  3
+#define SHT_RELA	  4
+#define SHT_HASH	  5
+#define SHT_DYNAMIC	  6
+#define SHT_NOTE	  7
+#define SHT_NOBITS	  8
+#define SHT_REL		  9
+#define SHT_SHLIB	  10
+#define SHT_DYNSYM	  11
+#define SHT_INIT_ARRAY	  14
+#define SHT_FINI_ARRAY	  15
+#define SHT_PREINIT_ARRAY 16
+#define SHT_GROUP	  17
+#define SHT_SYMTAB_SHNDX  18
+#define	SHT_NUM		  19
+#define SHT_LOOS	  0x60000000
+#define SHT_GNU_ATTRIBUTES 0x6ffffff5
+#define SHT_GNU_HASH	  0x6ffffff6
+#define SHT_GNU_LIBLIST	  0x6ffffff7
+#define SHT_CHECKSUM	  0x6ffffff8
+#define SHT_LOSUNW	  0x6ffffffa
+#define SHT_SUNW_move	  0x6ffffffa
+#define SHT_SUNW_COMDAT   0x6ffffffb
+#define SHT_SUNW_syminfo  0x6ffffffc
+#define SHT_GNU_verdef	  0x6ffffffd
+#define SHT_GNU_verneed	  0x6ffffffe
+#define SHT_GNU_versym	  0x6fffffff
+#define SHT_HISUNW	  0x6fffffff
+#define SHT_HIOS	  0x6fffffff
+#define SHT_LOPROC	  0x70000000
+#define SHT_HIPROC	  0x7fffffff
+#define SHT_LOUSER	  0x80000000
+#define SHT_HIUSER	  0x8fffffff
+
+#define SHF_WRITE	     (1 << 0)
+#define SHF_ALLOC	     (1 << 1)
+#define SHF_EXECINSTR	     (1 << 2)
+#define SHF_MERGE	     (1 << 4)
+#define SHF_STRINGS	     (1 << 5)
+#define SHF_INFO_LINK	     (1 << 6)
+#define SHF_LINK_ORDER	     (1 << 7)
+#define SHF_OS_NONCONFORMING (1 << 8)
+
+#define SHF_GROUP	     (1 << 9)
+#define SHF_TLS		     (1 << 10)
+#define SHF_MASKOS	     0x0ff00000
+#define SHF_MASKPROC	     0xf0000000
+#define SHF_ORDERED	     (1 << 30)
+#define SHF_EXCLUDE	     (1U << 31)
+
+#define GRP_COMDAT	0x1
+
+typedef struct {
+  Elf32_Word	st_name;
+  Elf32_Addr	st_value;
+  Elf32_Word	st_size;
+  unsigned char	st_info;
+  unsigned char	st_other;
+  Elf32_Section	st_shndx;
+} Elf32_Sym;
+
+typedef struct {
+  Elf64_Word	st_name;
+  unsigned char	st_info;
+  unsigned char st_other;
+  Elf64_Section	st_shndx;
+  Elf64_Addr	st_value;
+  Elf64_Xword	st_size;
+} Elf64_Sym;
+
+typedef struct {
+  Elf32_Half si_boundto;
+  Elf32_Half si_flags;
+} Elf32_Syminfo;
+
+typedef struct {
+  Elf64_Half si_boundto;
+  Elf64_Half si_flags;
+} Elf64_Syminfo;
+
+#define SYMINFO_BT_SELF		0xffff
+#define SYMINFO_BT_PARENT	0xfffe
+#define SYMINFO_BT_LOWRESERVE	0xff00
+
+#define SYMINFO_FLG_DIRECT	0x0001
+#define SYMINFO_FLG_PASSTHRU	0x0002
+#define SYMINFO_FLG_COPY	0x0004
+#define SYMINFO_FLG_LAZYLOAD	0x0008
+
+#define SYMINFO_NONE		0
+#define SYMINFO_CURRENT		1
+#define SYMINFO_NUM		2
+
+#define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
+#define ELF32_ST_TYPE(val)		((val) & 0xf)
+#define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf))
+
+#define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
+#define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
+#define ELF64_ST_INFO(bind, type)	ELF32_ST_INFO ((bind), (type))
+
+#define STB_LOCAL	0
+#define STB_GLOBAL	1
+#define STB_WEAK	2
+#define	STB_NUM		3
+#define STB_LOOS	10
+#define STB_GNU_UNIQUE	10
+#define STB_HIOS	12
+#define STB_LOPROC	13
+#define STB_HIPROC	15
+
+#define STT_NOTYPE	0
+#define STT_OBJECT	1
+#define STT_FUNC	2
+#define STT_SECTION	3
+#define STT_FILE	4
+#define STT_COMMON	5
+#define STT_TLS		6
+#define	STT_NUM		7
+#define STT_LOOS	10
+#define STT_GNU_IFUNC	10
+#define STT_HIOS	12
+#define STT_LOPROC	13
+#define STT_HIPROC	15
+
+#define STN_UNDEF	0
+
+#define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
+#define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
+
+#define STV_DEFAULT	0
+#define STV_INTERNAL	1
+#define STV_HIDDEN	2
+#define STV_PROTECTED	3
+
+
+
+
+typedef struct
+{
+  Elf32_Addr	r_offset;
+  Elf32_Word	r_info;
+} Elf32_Rel;
+
+typedef struct {
+  Elf64_Addr	r_offset;
+  Elf64_Xword	r_info;
+} Elf64_Rel;
+
+
+
+typedef struct {
+  Elf32_Addr	r_offset;
+  Elf32_Word	r_info;
+  Elf32_Sword	r_addend;
+} Elf32_Rela;
+
+typedef struct {
+  Elf64_Addr	r_offset;
+  Elf64_Xword	r_info;
+  Elf64_Sxword	r_addend;
+} Elf64_Rela;
+
+
+
+#define ELF32_R_SYM(val)		((val) >> 8)
+#define ELF32_R_TYPE(val)		((val) & 0xff)
+#define ELF32_R_INFO(sym, type)		(((sym) << 8) + ((type) & 0xff))
+
+#define ELF64_R_SYM(i)			((i) >> 32)
+#define ELF64_R_TYPE(i)			((i) & 0xffffffff)
+#define ELF64_R_INFO(sym,type)		((((Elf64_Xword) (sym)) << 32) + (type))
+
+
+
+typedef struct {
+  Elf32_Word	p_type;
+  Elf32_Off	p_offset;
+  Elf32_Addr	p_vaddr;
+  Elf32_Addr	p_paddr;
+  Elf32_Word	p_filesz;
+  Elf32_Word	p_memsz;
+  Elf32_Word	p_flags;
+  Elf32_Word	p_align;
+} Elf32_Phdr;
+
+typedef struct {
+  Elf64_Word	p_type;
+  Elf64_Word	p_flags;
+  Elf64_Off	p_offset;
+  Elf64_Addr	p_vaddr;
+  Elf64_Addr	p_paddr;
+  Elf64_Xword	p_filesz;
+  Elf64_Xword	p_memsz;
+  Elf64_Xword	p_align;
+} Elf64_Phdr;
+
+
+
+#define	PT_NULL		0
+#define PT_LOAD		1
+#define PT_DYNAMIC	2
+#define PT_INTERP	3
+#define PT_NOTE		4
+#define PT_SHLIB	5
+#define PT_PHDR		6
+#define PT_TLS		7
+#define	PT_NUM		8
+#define PT_LOOS		0x60000000
+#define PT_GNU_EH_FRAME	0x6474e550
+#define PT_GNU_STACK	0x6474e551
+#define PT_GNU_RELRO	0x6474e552
+#define PT_LOSUNW	0x6ffffffa
+#define PT_SUNWBSS	0x6ffffffa
+#define PT_SUNWSTACK	0x6ffffffb
+#define PT_HISUNW	0x6fffffff
+#define PT_HIOS		0x6fffffff
+#define PT_LOPROC	0x70000000
+#define PT_HIPROC	0x7fffffff
+
+
+#define PN_XNUM 0xffff
+
+
+#define PF_X		(1 << 0)
+#define PF_W		(1 << 1)
+#define PF_R		(1 << 2)
+#define PF_MASKOS	0x0ff00000
+#define PF_MASKPROC	0xf0000000
+
+
+
+#define NT_PRSTATUS	1
+#define NT_FPREGSET	2
+#define NT_PRPSINFO	3
+#define NT_PRXREG	4
+#define NT_TASKSTRUCT	4
+#define NT_PLATFORM	5
+#define NT_AUXV		6
+#define NT_GWINDOWS	7
+#define NT_ASRS		8
+#define NT_PSTATUS	10
+#define NT_PSINFO	13
+#define NT_PRCRED	14
+#define NT_UTSNAME	15
+#define NT_LWPSTATUS	16
+#define NT_LWPSINFO	17
+#define NT_PRFPXREG	20
+#define NT_SIGINFO	0x53494749
+#define NT_FILE		0x46494c45
+#define NT_PRXFPREG	0x46e62b7f
+#define NT_PPC_VMX	0x100
+#define NT_PPC_SPE	0x101
+#define NT_PPC_VSX	0x102
+#define NT_386_TLS	0x200
+#define NT_386_IOPERM	0x201
+#define NT_X86_XSTATE	0x202
+#define NT_S390_HIGH_GPRS	0x300
+#define NT_S390_TIMER	0x301
+#define NT_S390_TODCMP	0x302
+#define NT_S390_TODPREG	0x303
+#define NT_S390_CTRS	0x304
+#define NT_S390_PREFIX	0x305
+#define NT_S390_LAST_BREAK	0x306
+#define NT_S390_SYSTEM_CALL	0x307
+#define NT_S390_TDB	0x308
+#define NT_ARM_VFP	0x400
+#define NT_ARM_TLS	0x401
+#define NT_ARM_HW_BREAK	0x402
+#define NT_ARM_HW_WATCH	0x403
+#define NT_METAG_CBUF	0x500
+#define NT_METAG_RPIPE	0x501
+#define NT_METAG_TLS	0x502
+#define NT_VERSION	1
+
+
+
+
+typedef struct {
+  Elf32_Sword d_tag;
+  union {
+      Elf32_Word d_val;
+      Elf32_Addr d_ptr;
+  } d_un;
+} Elf32_Dyn;
+
+typedef struct {
+  Elf64_Sxword d_tag;
+  union {
+      Elf64_Xword d_val;
+      Elf64_Addr d_ptr;
+  } d_un;
+} Elf64_Dyn;
+
+
+
+#define DT_NULL		0
+#define DT_NEEDED	1
+#define DT_PLTRELSZ	2
+#define DT_PLTGOT	3
+#define DT_HASH		4
+#define DT_STRTAB	5
+#define DT_SYMTAB	6
+#define DT_RELA		7
+#define DT_RELASZ	8
+#define DT_RELAENT	9
+#define DT_STRSZ	10
+#define DT_SYMENT	11
+#define DT_INIT		12
+#define DT_FINI		13
+#define DT_SONAME	14
+#define DT_RPATH	15
+#define DT_SYMBOLIC	16
+#define DT_REL		17
+#define DT_RELSZ	18
+#define DT_RELENT	19
+#define DT_PLTREL	20
+#define DT_DEBUG	21
+#define DT_TEXTREL	22
+#define DT_JMPREL	23
+#define	DT_BIND_NOW	24
+#define	DT_INIT_ARRAY	25
+#define	DT_FINI_ARRAY	26
+#define	DT_INIT_ARRAYSZ	27
+#define	DT_FINI_ARRAYSZ	28
+#define DT_RUNPATH	29
+#define DT_FLAGS	30
+#define DT_ENCODING	32
+#define DT_PREINIT_ARRAY 32
+#define DT_PREINIT_ARRAYSZ 33
+#define	DT_NUM		34
+#define DT_LOOS		0x6000000d
+#define DT_HIOS		0x6ffff000
+#define DT_LOPROC	0x70000000
+#define DT_HIPROC	0x7fffffff
+#define	DT_PROCNUM	DT_MIPS_NUM
+
+#define DT_VALRNGLO	0x6ffffd00
+#define DT_GNU_PRELINKED 0x6ffffdf5
+#define DT_GNU_CONFLICTSZ 0x6ffffdf6
+#define DT_GNU_LIBLISTSZ 0x6ffffdf7
+#define DT_CHECKSUM	0x6ffffdf8
+#define DT_PLTPADSZ	0x6ffffdf9
+#define DT_MOVEENT	0x6ffffdfa
+#define DT_MOVESZ	0x6ffffdfb
+#define DT_FEATURE_1	0x6ffffdfc
+#define DT_POSFLAG_1	0x6ffffdfd
+
+#define DT_SYMINSZ	0x6ffffdfe
+#define DT_SYMINENT	0x6ffffdff
+#define DT_VALRNGHI	0x6ffffdff
+#define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))
+#define DT_VALNUM 12
+
+#define DT_ADDRRNGLO	0x6ffffe00
+#define DT_GNU_HASH	0x6ffffef5
+#define DT_TLSDESC_PLT	0x6ffffef6
+#define DT_TLSDESC_GOT	0x6ffffef7
+#define DT_GNU_CONFLICT	0x6ffffef8
+#define DT_GNU_LIBLIST	0x6ffffef9
+#define DT_CONFIG	0x6ffffefa
+#define DT_DEPAUDIT	0x6ffffefb
+#define DT_AUDIT	0x6ffffefc
+#define	DT_PLTPAD	0x6ffffefd
+#define	DT_MOVETAB	0x6ffffefe
+#define DT_SYMINFO	0x6ffffeff
+#define DT_ADDRRNGHI	0x6ffffeff
+#define DT_ADDRTAGIDX(tag)	(DT_ADDRRNGHI - (tag))
+#define DT_ADDRNUM 11
+
+
+
+#define DT_VERSYM	0x6ffffff0
+
+#define DT_RELACOUNT	0x6ffffff9
+#define DT_RELCOUNT	0x6ffffffa
+
+
+#define DT_FLAGS_1	0x6ffffffb
+#define	DT_VERDEF	0x6ffffffc
+
+#define	DT_VERDEFNUM	0x6ffffffd
+#define	DT_VERNEED	0x6ffffffe
+
+#define	DT_VERNEEDNUM	0x6fffffff
+#define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))
+#define DT_VERSIONTAGNUM 16
+
+
+
+#define DT_AUXILIARY    0x7ffffffd
+#define DT_FILTER       0x7fffffff
+#define DT_EXTRATAGIDX(tag)	((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
+#define DT_EXTRANUM	3
+
+
+#define DF_ORIGIN	0x00000001
+#define DF_SYMBOLIC	0x00000002
+#define DF_TEXTREL	0x00000004
+#define DF_BIND_NOW	0x00000008
+#define DF_STATIC_TLS	0x00000010
+
+
+
+#define DF_1_NOW	0x00000001
+#define DF_1_GLOBAL	0x00000002
+#define DF_1_GROUP	0x00000004
+#define DF_1_NODELETE	0x00000008
+#define DF_1_LOADFLTR	0x00000010
+#define DF_1_INITFIRST	0x00000020
+#define DF_1_NOOPEN	0x00000040
+#define DF_1_ORIGIN	0x00000080
+#define DF_1_DIRECT	0x00000100
+#define DF_1_TRANS	0x00000200
+#define DF_1_INTERPOSE	0x00000400
+#define DF_1_NODEFLIB	0x00000800
+#define DF_1_NODUMP	0x00001000
+#define DF_1_CONFALT	0x00002000
+#define DF_1_ENDFILTEE	0x00004000
+#define	DF_1_DISPRELDNE	0x00008000
+#define	DF_1_DISPRELPND	0x00010000
+#define	DF_1_NODIRECT	0x00020000
+#define	DF_1_IGNMULDEF	0x00040000
+#define	DF_1_NOKSYMS	0x00080000
+#define	DF_1_NOHDR	0x00100000
+#define	DF_1_EDITED	0x00200000
+#define	DF_1_NORELOC	0x00400000
+#define	DF_1_SYMINTPOSE	0x00800000
+#define	DF_1_GLOBAUDIT	0x01000000
+#define	DF_1_SINGLETON	0x02000000
+
+#define DTF_1_PARINIT	0x00000001
+#define DTF_1_CONFEXP	0x00000002
+
+
+#define DF_P1_LAZYLOAD	0x00000001
+#define DF_P1_GROUPPERM	0x00000002
+
+
+
+
+typedef struct {
+  Elf32_Half	vd_version;
+  Elf32_Half	vd_flags;
+  Elf32_Half	vd_ndx;
+  Elf32_Half	vd_cnt;
+  Elf32_Word	vd_hash;
+  Elf32_Word	vd_aux;
+  Elf32_Word	vd_next;
+} Elf32_Verdef;
+
+typedef struct {
+  Elf64_Half	vd_version;
+  Elf64_Half	vd_flags;
+  Elf64_Half	vd_ndx;
+  Elf64_Half	vd_cnt;
+  Elf64_Word	vd_hash;
+  Elf64_Word	vd_aux;
+  Elf64_Word	vd_next;
+} Elf64_Verdef;
+
+
+
+#define VER_DEF_NONE	0
+#define VER_DEF_CURRENT	1
+#define VER_DEF_NUM	2
+
+
+#define VER_FLG_BASE	0x1
+#define VER_FLG_WEAK	0x2
+
+
+#define	VER_NDX_LOCAL		0
+#define	VER_NDX_GLOBAL		1
+#define	VER_NDX_LORESERVE	0xff00
+#define	VER_NDX_ELIMINATE	0xff01
+
+
+
+typedef struct {
+  Elf32_Word	vda_name;
+  Elf32_Word	vda_next;
+} Elf32_Verdaux;
+
+typedef struct {
+  Elf64_Word	vda_name;
+  Elf64_Word	vda_next;
+} Elf64_Verdaux;
+
+
+
+
+typedef struct {
+  Elf32_Half	vn_version;
+  Elf32_Half	vn_cnt;
+  Elf32_Word	vn_file;
+  Elf32_Word	vn_aux;
+  Elf32_Word	vn_next;
+} Elf32_Verneed;
+
+typedef struct {
+  Elf64_Half	vn_version;
+  Elf64_Half	vn_cnt;
+  Elf64_Word	vn_file;
+  Elf64_Word	vn_aux;
+  Elf64_Word	vn_next;
+} Elf64_Verneed;
+
+
+
+#define VER_NEED_NONE	 0
+#define VER_NEED_CURRENT 1
+#define VER_NEED_NUM	 2
+
+
+
+typedef struct {
+  Elf32_Word	vna_hash;
+  Elf32_Half	vna_flags;
+  Elf32_Half	vna_other;
+  Elf32_Word	vna_name;
+  Elf32_Word	vna_next;
+} Elf32_Vernaux;
+
+typedef struct {
+  Elf64_Word	vna_hash;
+  Elf64_Half	vna_flags;
+  Elf64_Half	vna_other;
+  Elf64_Word	vna_name;
+  Elf64_Word	vna_next;
+} Elf64_Vernaux;
+
+
+
+#define VER_FLG_WEAK	0x2
+
+
+
+typedef struct {
+  uint32_t a_type;
+  union {
+      uint32_t a_val;
+  } a_un;
+} Elf32_auxv_t;
+
+typedef struct {
+  uint64_t a_type;
+  union {
+      uint64_t a_val;
+  } a_un;
+} Elf64_auxv_t;
+
+
+
+#define AT_NULL		0
+#define AT_IGNORE	1
+#define AT_EXECFD	2
+#define AT_PHDR		3
+#define AT_PHENT	4
+#define AT_PHNUM	5
+#define AT_PAGESZ	6
+#define AT_BASE		7
+#define AT_FLAGS	8
+#define AT_ENTRY	9
+#define AT_NOTELF	10
+#define AT_UID		11
+#define AT_EUID		12
+#define AT_GID		13
+#define AT_EGID		14
+#define AT_CLKTCK	17
+
+
+#define AT_PLATFORM	15
+#define AT_HWCAP	16
+
+
+
+
+#define AT_FPUCW	18
+
+
+#define AT_DCACHEBSIZE	19
+#define AT_ICACHEBSIZE	20
+#define AT_UCACHEBSIZE	21
+
+
+
+#define AT_IGNOREPPC	22
+
+#define	AT_SECURE	23
+
+#define AT_BASE_PLATFORM 24
+
+#define AT_RANDOM	25
+
+#define AT_HWCAP2	26
+
+#define AT_EXECFN	31
+
+
+
+#define AT_SYSINFO	32
+#define AT_SYSINFO_EHDR	33
+
+
+
+#define AT_L1I_CACHESHAPE	34
+#define AT_L1D_CACHESHAPE	35
+#define AT_L2_CACHESHAPE	36
+#define AT_L3_CACHESHAPE	37
+
+
+
+
+typedef struct {
+  Elf32_Word n_namesz;
+  Elf32_Word n_descsz;
+  Elf32_Word n_type;
+} Elf32_Nhdr;
+
+typedef struct {
+  Elf64_Word n_namesz;
+  Elf64_Word n_descsz;
+  Elf64_Word n_type;
+} Elf64_Nhdr;
+
+
+
+
+#define ELF_NOTE_SOLARIS	"SUNW Solaris"
+
+
+#define ELF_NOTE_GNU		"GNU"
+
+
+
+
+
+#define ELF_NOTE_PAGESIZE_HINT	1
+
+
+#define NT_GNU_ABI_TAG	1
+#define ELF_NOTE_ABI	NT_GNU_ABI_TAG
+
+
+
+#define ELF_NOTE_OS_LINUX	0
+#define ELF_NOTE_OS_GNU		1
+#define ELF_NOTE_OS_SOLARIS2	2
+#define ELF_NOTE_OS_FREEBSD	3
+
+#define NT_GNU_BUILD_ID	3
+#define NT_GNU_GOLD_VERSION	4
+
+
+
+typedef struct {
+  Elf32_Xword m_value;
+  Elf32_Word m_info;
+  Elf32_Word m_poffset;
+  Elf32_Half m_repeat;
+  Elf32_Half m_stride;
+} Elf32_Move;
+
+typedef struct {
+  Elf64_Xword m_value;
+  Elf64_Xword m_info;
+  Elf64_Xword m_poffset;
+  Elf64_Half m_repeat;
+  Elf64_Half m_stride;
+} Elf64_Move;
+
+
+#define ELF32_M_SYM(info)	((info) >> 8)
+#define ELF32_M_SIZE(info)	((unsigned char) (info))
+#define ELF32_M_INFO(sym, size)	(((sym) << 8) + (unsigned char) (size))
+
+#define ELF64_M_SYM(info)	ELF32_M_SYM (info)
+#define ELF64_M_SIZE(info)	ELF32_M_SIZE (info)
+#define ELF64_M_INFO(sym, size)	ELF32_M_INFO (sym, size)
+
+#define EF_CPU32	0x00810000
+
+#define R_68K_NONE	0
+#define R_68K_32	1
+#define R_68K_16	2
+#define R_68K_8		3
+#define R_68K_PC32	4
+#define R_68K_PC16	5
+#define R_68K_PC8	6
+#define R_68K_GOT32	7
+#define R_68K_GOT16	8
+#define R_68K_GOT8	9
+#define R_68K_GOT32O	10
+#define R_68K_GOT16O	11
+#define R_68K_GOT8O	12
+#define R_68K_PLT32	13
+#define R_68K_PLT16	14
+#define R_68K_PLT8	15
+#define R_68K_PLT32O	16
+#define R_68K_PLT16O	17
+#define R_68K_PLT8O	18
+#define R_68K_COPY	19
+#define R_68K_GLOB_DAT	20
+#define R_68K_JMP_SLOT	21
+#define R_68K_RELATIVE	22
+#define R_68K_NUM	23
+
+#define R_386_NONE	   0
+#define R_386_32	   1
+#define R_386_PC32	   2
+#define R_386_GOT32	   3
+#define R_386_PLT32	   4
+#define R_386_COPY	   5
+#define R_386_GLOB_DAT	   6
+#define R_386_JMP_SLOT	   7
+#define R_386_RELATIVE	   8
+#define R_386_GOTOFF	   9
+#define R_386_GOTPC	   10
+#define R_386_32PLT	   11
+#define R_386_TLS_TPOFF	   14
+#define R_386_TLS_IE	   15
+#define R_386_TLS_GOTIE	   16
+#define R_386_TLS_LE	   17
+#define R_386_TLS_GD	   18
+#define R_386_TLS_LDM	   19
+#define R_386_16	   20
+#define R_386_PC16	   21
+#define R_386_8		   22
+#define R_386_PC8	   23
+#define R_386_TLS_GD_32	   24
+#define R_386_TLS_GD_PUSH  25
+#define R_386_TLS_GD_CALL  26
+#define R_386_TLS_GD_POP   27
+#define R_386_TLS_LDM_32   28
+#define R_386_TLS_LDM_PUSH 29
+#define R_386_TLS_LDM_CALL 30
+#define R_386_TLS_LDM_POP  31
+#define R_386_TLS_LDO_32   32
+#define R_386_TLS_IE_32	   33
+#define R_386_TLS_LE_32	   34
+#define R_386_TLS_DTPMOD32 35
+#define R_386_TLS_DTPOFF32 36
+#define R_386_TLS_TPOFF32  37
+#define R_386_SIZE32       38
+#define R_386_TLS_GOTDESC  39
+#define R_386_TLS_DESC_CALL 40
+#define R_386_TLS_DESC     41
+#define R_386_IRELATIVE	   42
+#define R_386_NUM	   43
+
+
+
+
+
+#define STT_SPARC_REGISTER	13
+
+
+
+#define EF_SPARCV9_MM		3
+#define EF_SPARCV9_TSO		0
+#define EF_SPARCV9_PSO		1
+#define EF_SPARCV9_RMO		2
+#define EF_SPARC_LEDATA		0x800000
+#define EF_SPARC_EXT_MASK	0xFFFF00
+#define EF_SPARC_32PLUS		0x000100
+#define EF_SPARC_SUN_US1	0x000200
+#define EF_SPARC_HAL_R1		0x000400
+#define EF_SPARC_SUN_US3	0x000800
+
+
+
+#define R_SPARC_NONE		0
+#define R_SPARC_8		1
+#define R_SPARC_16		2
+#define R_SPARC_32		3
+#define R_SPARC_DISP8		4
+#define R_SPARC_DISP16		5
+#define R_SPARC_DISP32		6
+#define R_SPARC_WDISP30		7
+#define R_SPARC_WDISP22		8
+#define R_SPARC_HI22		9
+#define R_SPARC_22		10
+#define R_SPARC_13		11
+#define R_SPARC_LO10		12
+#define R_SPARC_GOT10		13
+#define R_SPARC_GOT13		14
+#define R_SPARC_GOT22		15
+#define R_SPARC_PC10		16
+#define R_SPARC_PC22		17
+#define R_SPARC_WPLT30		18
+#define R_SPARC_COPY		19
+#define R_SPARC_GLOB_DAT	20
+#define R_SPARC_JMP_SLOT	21
+#define R_SPARC_RELATIVE	22
+#define R_SPARC_UA32		23
+
+
+
+#define R_SPARC_PLT32		24
+#define R_SPARC_HIPLT22		25
+#define R_SPARC_LOPLT10		26
+#define R_SPARC_PCPLT32		27
+#define R_SPARC_PCPLT22		28
+#define R_SPARC_PCPLT10		29
+#define R_SPARC_10		30
+#define R_SPARC_11		31
+#define R_SPARC_64		32
+#define R_SPARC_OLO10		33
+#define R_SPARC_HH22		34
+#define R_SPARC_HM10		35
+#define R_SPARC_LM22		36
+#define R_SPARC_PC_HH22		37
+#define R_SPARC_PC_HM10		38
+#define R_SPARC_PC_LM22		39
+#define R_SPARC_WDISP16		40
+#define R_SPARC_WDISP19		41
+#define R_SPARC_GLOB_JMP	42
+#define R_SPARC_7		43
+#define R_SPARC_5		44
+#define R_SPARC_6		45
+#define R_SPARC_DISP64		46
+#define R_SPARC_PLT64		47
+#define R_SPARC_HIX22		48
+#define R_SPARC_LOX10		49
+#define R_SPARC_H44		50
+#define R_SPARC_M44		51
+#define R_SPARC_L44		52
+#define R_SPARC_REGISTER	53
+#define R_SPARC_UA64		54
+#define R_SPARC_UA16		55
+#define R_SPARC_TLS_GD_HI22	56
+#define R_SPARC_TLS_GD_LO10	57
+#define R_SPARC_TLS_GD_ADD	58
+#define R_SPARC_TLS_GD_CALL	59
+#define R_SPARC_TLS_LDM_HI22	60
+#define R_SPARC_TLS_LDM_LO10	61
+#define R_SPARC_TLS_LDM_ADD	62
+#define R_SPARC_TLS_LDM_CALL	63
+#define R_SPARC_TLS_LDO_HIX22	64
+#define R_SPARC_TLS_LDO_LOX10	65
+#define R_SPARC_TLS_LDO_ADD	66
+#define R_SPARC_TLS_IE_HI22	67
+#define R_SPARC_TLS_IE_LO10	68
+#define R_SPARC_TLS_IE_LD	69
+#define R_SPARC_TLS_IE_LDX	70
+#define R_SPARC_TLS_IE_ADD	71
+#define R_SPARC_TLS_LE_HIX22	72
+#define R_SPARC_TLS_LE_LOX10	73
+#define R_SPARC_TLS_DTPMOD32	74
+#define R_SPARC_TLS_DTPMOD64	75
+#define R_SPARC_TLS_DTPOFF32	76
+#define R_SPARC_TLS_DTPOFF64	77
+#define R_SPARC_TLS_TPOFF32	78
+#define R_SPARC_TLS_TPOFF64	79
+#define R_SPARC_GOTDATA_HIX22	80
+#define R_SPARC_GOTDATA_LOX10	81
+#define R_SPARC_GOTDATA_OP_HIX22	82
+#define R_SPARC_GOTDATA_OP_LOX10	83
+#define R_SPARC_GOTDATA_OP	84
+#define R_SPARC_H34		85
+#define R_SPARC_SIZE32		86
+#define R_SPARC_SIZE64		87
+#define R_SPARC_GNU_VTINHERIT	250
+#define R_SPARC_GNU_VTENTRY	251
+#define R_SPARC_REV32		252
+
+#define R_SPARC_NUM		253
+
+
+
+#define DT_SPARC_REGISTER 0x70000001
+#define DT_SPARC_NUM	2
+
+
+#define EF_MIPS_NOREORDER   1
+#define EF_MIPS_PIC	    2
+#define EF_MIPS_CPIC	    4
+#define EF_MIPS_XGOT	    8
+#define EF_MIPS_64BIT_WHIRL 16
+#define EF_MIPS_ABI2	    32
+#define EF_MIPS_ABI_ON32    64
+#define EF_MIPS_NAN2008     1024
+#define EF_MIPS_ARCH	    0xf0000000
+
+
+
+#define EF_MIPS_ARCH_1	    0x00000000
+#define EF_MIPS_ARCH_2	    0x10000000
+#define EF_MIPS_ARCH_3	    0x20000000
+#define EF_MIPS_ARCH_4	    0x30000000
+#define EF_MIPS_ARCH_5	    0x40000000
+#define EF_MIPS_ARCH_32     0x50000000
+#define EF_MIPS_ARCH_64     0x60000000
+#define EF_MIPS_ARCH_32R2   0x70000000
+#define EF_MIPS_ARCH_64R2   0x80000000
+
+
+#define E_MIPS_ARCH_1	  0x00000000
+#define E_MIPS_ARCH_2	  0x10000000
+#define E_MIPS_ARCH_3	  0x20000000
+#define E_MIPS_ARCH_4	  0x30000000
+#define E_MIPS_ARCH_5	  0x40000000
+#define E_MIPS_ARCH_32	  0x50000000
+#define E_MIPS_ARCH_64	  0x60000000
+
+
+
+#define SHN_MIPS_ACOMMON    0xff00
+#define SHN_MIPS_TEXT	    0xff01
+#define SHN_MIPS_DATA	    0xff02
+#define SHN_MIPS_SCOMMON    0xff03
+#define SHN_MIPS_SUNDEFINED 0xff04
+
+
+
+#define SHT_MIPS_LIBLIST       0x70000000
+#define SHT_MIPS_MSYM	       0x70000001
+#define SHT_MIPS_CONFLICT      0x70000002
+#define SHT_MIPS_GPTAB	       0x70000003
+#define SHT_MIPS_UCODE	       0x70000004
+#define SHT_MIPS_DEBUG	       0x70000005
+#define SHT_MIPS_REGINFO       0x70000006
+#define SHT_MIPS_PACKAGE       0x70000007
+#define SHT_MIPS_PACKSYM       0x70000008
+#define SHT_MIPS_RELD	       0x70000009
+#define SHT_MIPS_IFACE         0x7000000b
+#define SHT_MIPS_CONTENT       0x7000000c
+#define SHT_MIPS_OPTIONS       0x7000000d
+#define SHT_MIPS_SHDR	       0x70000010
+#define SHT_MIPS_FDESC	       0x70000011
+#define SHT_MIPS_EXTSYM	       0x70000012
+#define SHT_MIPS_DENSE	       0x70000013
+#define SHT_MIPS_PDESC	       0x70000014
+#define SHT_MIPS_LOCSYM	       0x70000015
+#define SHT_MIPS_AUXSYM	       0x70000016
+#define SHT_MIPS_OPTSYM	       0x70000017
+#define SHT_MIPS_LOCSTR	       0x70000018
+#define SHT_MIPS_LINE	       0x70000019
+#define SHT_MIPS_RFDESC	       0x7000001a
+#define SHT_MIPS_DELTASYM      0x7000001b
+#define SHT_MIPS_DELTAINST     0x7000001c
+#define SHT_MIPS_DELTACLASS    0x7000001d
+#define SHT_MIPS_DWARF         0x7000001e
+#define SHT_MIPS_DELTADECL     0x7000001f
+#define SHT_MIPS_SYMBOL_LIB    0x70000020
+#define SHT_MIPS_EVENTS	       0x70000021
+#define SHT_MIPS_TRANSLATE     0x70000022
+#define SHT_MIPS_PIXIE	       0x70000023
+#define SHT_MIPS_XLATE	       0x70000024
+#define SHT_MIPS_XLATE_DEBUG   0x70000025
+#define SHT_MIPS_WHIRL	       0x70000026
+#define SHT_MIPS_EH_REGION     0x70000027
+#define SHT_MIPS_XLATE_OLD     0x70000028
+#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+
+
+
+#define SHF_MIPS_GPREL	 0x10000000
+#define SHF_MIPS_MERGE	 0x20000000
+#define SHF_MIPS_ADDR	 0x40000000
+#define SHF_MIPS_STRINGS 0x80000000
+#define SHF_MIPS_NOSTRIP 0x08000000
+#define SHF_MIPS_LOCAL	 0x04000000
+#define SHF_MIPS_NAMES	 0x02000000
+#define SHF_MIPS_NODUPE	 0x01000000
+
+
+
+
+
+#define STO_MIPS_DEFAULT		0x0
+#define STO_MIPS_INTERNAL		0x1
+#define STO_MIPS_HIDDEN			0x2
+#define STO_MIPS_PROTECTED		0x3
+#define STO_MIPS_PLT			0x8
+#define STO_MIPS_SC_ALIGN_UNUSED	0xff
+
+
+#define STB_MIPS_SPLIT_COMMON		13
+
+
+
+typedef union {
+  struct {
+      Elf32_Word gt_current_g_value;
+      Elf32_Word gt_unused;
+  } gt_header;
+  struct {
+      Elf32_Word gt_g_value;
+      Elf32_Word gt_bytes;
+  } gt_entry;
+} Elf32_gptab;
+
+
+
+typedef struct {
+  Elf32_Word	ri_gprmask;
+  Elf32_Word	ri_cprmask[4];
+  Elf32_Sword	ri_gp_value;
+} Elf32_RegInfo;
+
+
+
+typedef struct {
+  unsigned char kind;
+
+  unsigned char size;
+  Elf32_Section section;
+
+  Elf32_Word info;
+} Elf_Options;
+
+
+
+#define ODK_NULL	0
+#define ODK_REGINFO	1
+#define ODK_EXCEPTIONS	2
+#define ODK_PAD		3
+#define ODK_HWPATCH	4
+#define ODK_FILL	5
+#define ODK_TAGS	6
+#define ODK_HWAND	7
+#define ODK_HWOR	8
+
+
+
+#define OEX_FPU_MIN	0x1f
+#define OEX_FPU_MAX	0x1f00
+#define OEX_PAGE0	0x10000
+#define OEX_SMM		0x20000
+#define OEX_FPDBUG	0x40000
+#define OEX_PRECISEFP	OEX_FPDBUG
+#define OEX_DISMISS	0x80000
+
+#define OEX_FPU_INVAL	0x10
+#define OEX_FPU_DIV0	0x08
+#define OEX_FPU_OFLO	0x04
+#define OEX_FPU_UFLO	0x02
+#define OEX_FPU_INEX	0x01
+
+
+
+#define OHW_R4KEOP	0x1
+#define OHW_R8KPFETCH	0x2
+#define OHW_R5KEOP	0x4
+#define OHW_R5KCVTL	0x8
+
+#define OPAD_PREFIX	0x1
+#define OPAD_POSTFIX	0x2
+#define OPAD_SYMBOL	0x4
+
+
+
+typedef struct {
+  Elf32_Word hwp_flags1;
+  Elf32_Word hwp_flags2;
+} Elf_Options_Hw;
+
+
+
+#define OHWA0_R4KEOP_CHECKED	0x00000001
+#define OHWA1_R4KEOP_CLEAN	0x00000002
+
+
+
+#define R_MIPS_NONE		0
+#define R_MIPS_16		1
+#define R_MIPS_32		2
+#define R_MIPS_REL32		3
+#define R_MIPS_26		4
+#define R_MIPS_HI16		5
+#define R_MIPS_LO16		6
+#define R_MIPS_GPREL16		7
+#define R_MIPS_LITERAL		8
+#define R_MIPS_GOT16		9
+#define R_MIPS_PC16		10
+#define R_MIPS_CALL16		11
+#define R_MIPS_GPREL32		12
+
+#define R_MIPS_SHIFT5		16
+#define R_MIPS_SHIFT6		17
+#define R_MIPS_64		18
+#define R_MIPS_GOT_DISP		19
+#define R_MIPS_GOT_PAGE		20
+#define R_MIPS_GOT_OFST		21
+#define R_MIPS_GOT_HI16		22
+#define R_MIPS_GOT_LO16		23
+#define R_MIPS_SUB		24
+#define R_MIPS_INSERT_A		25
+#define R_MIPS_INSERT_B		26
+#define R_MIPS_DELETE		27
+#define R_MIPS_HIGHER		28
+#define R_MIPS_HIGHEST		29
+#define R_MIPS_CALL_HI16	30
+#define R_MIPS_CALL_LO16	31
+#define R_MIPS_SCN_DISP		32
+#define R_MIPS_REL16		33
+#define R_MIPS_ADD_IMMEDIATE	34
+#define R_MIPS_PJUMP		35
+#define R_MIPS_RELGOT		36
+#define R_MIPS_JALR		37
+#define R_MIPS_TLS_DTPMOD32	38
+#define R_MIPS_TLS_DTPREL32	39
+#define R_MIPS_TLS_DTPMOD64	40
+#define R_MIPS_TLS_DTPREL64	41
+#define R_MIPS_TLS_GD		42
+#define R_MIPS_TLS_LDM		43
+#define R_MIPS_TLS_DTPREL_HI16	44
+#define R_MIPS_TLS_DTPREL_LO16	45
+#define R_MIPS_TLS_GOTTPREL	46
+#define R_MIPS_TLS_TPREL32	47
+#define R_MIPS_TLS_TPREL64	48
+#define R_MIPS_TLS_TPREL_HI16	49
+#define R_MIPS_TLS_TPREL_LO16	50
+#define R_MIPS_GLOB_DAT		51
+#define R_MIPS_COPY		126
+#define R_MIPS_JUMP_SLOT        127
+
+#define R_MIPS_NUM		128
+
+
+
+#define PT_MIPS_REGINFO	0x70000000
+#define PT_MIPS_RTPROC  0x70000001
+#define PT_MIPS_OPTIONS 0x70000002
+
+
+
+#define PF_MIPS_LOCAL	0x10000000
+
+
+
+#define DT_MIPS_RLD_VERSION  0x70000001
+#define DT_MIPS_TIME_STAMP   0x70000002
+#define DT_MIPS_ICHECKSUM    0x70000003
+#define DT_MIPS_IVERSION     0x70000004
+#define DT_MIPS_FLAGS	     0x70000005
+#define DT_MIPS_BASE_ADDRESS 0x70000006
+#define DT_MIPS_MSYM	     0x70000007
+#define DT_MIPS_CONFLICT     0x70000008
+#define DT_MIPS_LIBLIST	     0x70000009
+#define DT_MIPS_LOCAL_GOTNO  0x7000000a
+#define DT_MIPS_CONFLICTNO   0x7000000b
+#define DT_MIPS_LIBLISTNO    0x70000010
+#define DT_MIPS_SYMTABNO     0x70000011
+#define DT_MIPS_UNREFEXTNO   0x70000012
+#define DT_MIPS_GOTSYM	     0x70000013
+#define DT_MIPS_HIPAGENO     0x70000014
+#define DT_MIPS_RLD_MAP	     0x70000016
+#define DT_MIPS_DELTA_CLASS  0x70000017
+#define DT_MIPS_DELTA_CLASS_NO    0x70000018
+
+#define DT_MIPS_DELTA_INSTANCE    0x70000019
+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
+
+#define DT_MIPS_DELTA_RELOC  0x7000001b
+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
+
+#define DT_MIPS_DELTA_SYM    0x7000001d
+
+#define DT_MIPS_DELTA_SYM_NO 0x7000001e
+
+#define DT_MIPS_DELTA_CLASSSYM 0x70000020
+
+#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
+
+#define DT_MIPS_CXX_FLAGS    0x70000022
+#define DT_MIPS_PIXIE_INIT   0x70000023
+#define DT_MIPS_SYMBOL_LIB   0x70000024
+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
+#define DT_MIPS_LOCAL_GOTIDX 0x70000026
+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
+#define DT_MIPS_OPTIONS	     0x70000029
+#define DT_MIPS_INTERFACE    0x7000002a
+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
+#define DT_MIPS_INTERFACE_SIZE 0x7000002c
+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
+
+#define DT_MIPS_PERF_SUFFIX  0x7000002e
+
+#define DT_MIPS_COMPACT_SIZE 0x7000002f
+#define DT_MIPS_GP_VALUE     0x70000030
+#define DT_MIPS_AUX_DYNAMIC  0x70000031
+
+#define DT_MIPS_PLTGOT	     0x70000032
+
+#define DT_MIPS_RWPLT        0x70000034
+#define DT_MIPS_NUM	     0x35
+
+
+
+#define RHF_NONE		   0
+#define RHF_QUICKSTART		   (1 << 0)
+#define RHF_NOTPOT		   (1 << 1)
+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
+#define RHF_NO_MOVE		   (1 << 3)
+#define RHF_SGI_ONLY		   (1 << 4)
+#define RHF_GUARANTEE_INIT	   (1 << 5)
+#define RHF_DELTA_C_PLUS_PLUS	   (1 << 6)
+#define RHF_GUARANTEE_START_INIT   (1 << 7)
+#define RHF_PIXIE		   (1 << 8)
+#define RHF_DEFAULT_DELAY_LOAD	   (1 << 9)
+#define RHF_REQUICKSTART	   (1 << 10)
+#define RHF_REQUICKSTARTED	   (1 << 11)
+#define RHF_CORD		   (1 << 12)
+#define RHF_NO_UNRES_UNDEF	   (1 << 13)
+#define RHF_RLD_ORDER_SAFE	   (1 << 14)
+
+
+
+typedef struct
+{
+  Elf32_Word l_name;
+  Elf32_Word l_time_stamp;
+  Elf32_Word l_checksum;
+  Elf32_Word l_version;
+  Elf32_Word l_flags;
+} Elf32_Lib;
+
+typedef struct
+{
+  Elf64_Word l_name;
+  Elf64_Word l_time_stamp;
+  Elf64_Word l_checksum;
+  Elf64_Word l_version;
+  Elf64_Word l_flags;
+} Elf64_Lib;
+
+
+
+
+#define LL_NONE		  0
+#define LL_EXACT_MATCH	  (1 << 0)
+#define LL_IGNORE_INT_VER (1 << 1)
+#define LL_REQUIRE_MINOR  (1 << 2)
+#define LL_EXPORTS	  (1 << 3)
+#define LL_DELAY_LOAD	  (1 << 4)
+#define LL_DELTA	  (1 << 5)
+
+
+
+typedef Elf32_Addr Elf32_Conflict;
+
+
+
+
+
+
+#define EF_PARISC_TRAPNIL	0x00010000
+#define EF_PARISC_EXT		0x00020000
+#define EF_PARISC_LSB		0x00040000
+#define EF_PARISC_WIDE		0x00080000
+#define EF_PARISC_NO_KABP	0x00100000
+
+#define EF_PARISC_LAZYSWAP	0x00400000
+#define EF_PARISC_ARCH		0x0000ffff
+
+
+
+#define EFA_PARISC_1_0		    0x020b
+#define EFA_PARISC_1_1		    0x0210
+#define EFA_PARISC_2_0		    0x0214
+
+
+
+#define SHN_PARISC_ANSI_COMMON	0xff00
+
+#define SHN_PARISC_HUGE_COMMON	0xff01
+
+
+
+#define SHT_PARISC_EXT		0x70000000
+#define SHT_PARISC_UNWIND	0x70000001
+#define SHT_PARISC_DOC		0x70000002
+
+
+
+#define SHF_PARISC_SHORT	0x20000000
+#define SHF_PARISC_HUGE		0x40000000
+#define SHF_PARISC_SBP		0x80000000
+
+
+
+#define STT_PARISC_MILLICODE	13
+
+#define STT_HP_OPAQUE		(STT_LOOS + 0x1)
+#define STT_HP_STUB		(STT_LOOS + 0x2)
+
+
+
+#define R_PARISC_NONE		0
+#define R_PARISC_DIR32		1
+#define R_PARISC_DIR21L		2
+#define R_PARISC_DIR17R		3
+#define R_PARISC_DIR17F		4
+#define R_PARISC_DIR14R		6
+#define R_PARISC_PCREL32	9
+#define R_PARISC_PCREL21L	10
+#define R_PARISC_PCREL17R	11
+#define R_PARISC_PCREL17F	12
+#define R_PARISC_PCREL14R	14
+#define R_PARISC_DPREL21L	18
+#define R_PARISC_DPREL14R	22
+#define R_PARISC_GPREL21L	26
+#define R_PARISC_GPREL14R	30
+#define R_PARISC_LTOFF21L	34
+#define R_PARISC_LTOFF14R	38
+#define R_PARISC_SECREL32	41
+#define R_PARISC_SEGBASE	48
+#define R_PARISC_SEGREL32	49
+#define R_PARISC_PLTOFF21L	50
+#define R_PARISC_PLTOFF14R	54
+#define R_PARISC_LTOFF_FPTR32	57
+#define R_PARISC_LTOFF_FPTR21L	58
+#define R_PARISC_LTOFF_FPTR14R	62
+#define R_PARISC_FPTR64		64
+#define R_PARISC_PLABEL32	65
+#define R_PARISC_PLABEL21L	66
+#define R_PARISC_PLABEL14R	70
+#define R_PARISC_PCREL64	72
+#define R_PARISC_PCREL22F	74
+#define R_PARISC_PCREL14WR	75
+#define R_PARISC_PCREL14DR	76
+#define R_PARISC_PCREL16F	77
+#define R_PARISC_PCREL16WF	78
+#define R_PARISC_PCREL16DF	79
+#define R_PARISC_DIR64		80
+#define R_PARISC_DIR14WR	83
+#define R_PARISC_DIR14DR	84
+#define R_PARISC_DIR16F		85
+#define R_PARISC_DIR16WF	86
+#define R_PARISC_DIR16DF	87
+#define R_PARISC_GPREL64	88
+#define R_PARISC_GPREL14WR	91
+#define R_PARISC_GPREL14DR	92
+#define R_PARISC_GPREL16F	93
+#define R_PARISC_GPREL16WF	94
+#define R_PARISC_GPREL16DF	95
+#define R_PARISC_LTOFF64	96
+#define R_PARISC_LTOFF14WR	99
+#define R_PARISC_LTOFF14DR	100
+#define R_PARISC_LTOFF16F	101
+#define R_PARISC_LTOFF16WF	102
+#define R_PARISC_LTOFF16DF	103
+#define R_PARISC_SECREL64	104
+#define R_PARISC_SEGREL64	112
+#define R_PARISC_PLTOFF14WR	115
+#define R_PARISC_PLTOFF14DR	116
+#define R_PARISC_PLTOFF16F	117
+#define R_PARISC_PLTOFF16WF	118
+#define R_PARISC_PLTOFF16DF	119
+#define R_PARISC_LTOFF_FPTR64	120
+#define R_PARISC_LTOFF_FPTR14WR	123
+#define R_PARISC_LTOFF_FPTR14DR	124
+#define R_PARISC_LTOFF_FPTR16F	125
+#define R_PARISC_LTOFF_FPTR16WF	126
+#define R_PARISC_LTOFF_FPTR16DF	127
+#define R_PARISC_LORESERVE	128
+#define R_PARISC_COPY		128
+#define R_PARISC_IPLT		129
+#define R_PARISC_EPLT		130
+#define R_PARISC_TPREL32	153
+#define R_PARISC_TPREL21L	154
+#define R_PARISC_TPREL14R	158
+#define R_PARISC_LTOFF_TP21L	162
+#define R_PARISC_LTOFF_TP14R	166
+#define R_PARISC_LTOFF_TP14F	167
+#define R_PARISC_TPREL64	216
+#define R_PARISC_TPREL14WR	219
+#define R_PARISC_TPREL14DR	220
+#define R_PARISC_TPREL16F	221
+#define R_PARISC_TPREL16WF	222
+#define R_PARISC_TPREL16DF	223
+#define R_PARISC_LTOFF_TP64	224
+#define R_PARISC_LTOFF_TP14WR	227
+#define R_PARISC_LTOFF_TP14DR	228
+#define R_PARISC_LTOFF_TP16F	229
+#define R_PARISC_LTOFF_TP16WF	230
+#define R_PARISC_LTOFF_TP16DF	231
+#define R_PARISC_GNU_VTENTRY	232
+#define R_PARISC_GNU_VTINHERIT	233
+#define R_PARISC_TLS_GD21L	234
+#define R_PARISC_TLS_GD14R	235
+#define R_PARISC_TLS_GDCALL	236
+#define R_PARISC_TLS_LDM21L	237
+#define R_PARISC_TLS_LDM14R	238
+#define R_PARISC_TLS_LDMCALL	239
+#define R_PARISC_TLS_LDO21L	240
+#define R_PARISC_TLS_LDO14R	241
+#define R_PARISC_TLS_DTPMOD32	242
+#define R_PARISC_TLS_DTPMOD64	243
+#define R_PARISC_TLS_DTPOFF32	244
+#define R_PARISC_TLS_DTPOFF64	245
+#define R_PARISC_TLS_LE21L	R_PARISC_TPREL21L
+#define R_PARISC_TLS_LE14R	R_PARISC_TPREL14R
+#define R_PARISC_TLS_IE21L	R_PARISC_LTOFF_TP21L
+#define R_PARISC_TLS_IE14R	R_PARISC_LTOFF_TP14R
+#define R_PARISC_TLS_TPREL32	R_PARISC_TPREL32
+#define R_PARISC_TLS_TPREL64	R_PARISC_TPREL64
+#define R_PARISC_HIRESERVE	255
+
+
+
+#define PT_HP_TLS		(PT_LOOS + 0x0)
+#define PT_HP_CORE_NONE		(PT_LOOS + 0x1)
+#define PT_HP_CORE_VERSION	(PT_LOOS + 0x2)
+#define PT_HP_CORE_KERNEL	(PT_LOOS + 0x3)
+#define PT_HP_CORE_COMM		(PT_LOOS + 0x4)
+#define PT_HP_CORE_PROC		(PT_LOOS + 0x5)
+#define PT_HP_CORE_LOADABLE	(PT_LOOS + 0x6)
+#define PT_HP_CORE_STACK	(PT_LOOS + 0x7)
+#define PT_HP_CORE_SHM		(PT_LOOS + 0x8)
+#define PT_HP_CORE_MMF		(PT_LOOS + 0x9)
+#define PT_HP_PARALLEL		(PT_LOOS + 0x10)
+#define PT_HP_FASTBIND		(PT_LOOS + 0x11)
+#define PT_HP_OPT_ANNOT		(PT_LOOS + 0x12)
+#define PT_HP_HSL_ANNOT		(PT_LOOS + 0x13)
+#define PT_HP_STACK		(PT_LOOS + 0x14)
+
+#define PT_PARISC_ARCHEXT	0x70000000
+#define PT_PARISC_UNWIND	0x70000001
+
+
+
+#define PF_PARISC_SBP		0x08000000
+
+#define PF_HP_PAGE_SIZE		0x00100000
+#define PF_HP_FAR_SHARED	0x00200000
+#define PF_HP_NEAR_SHARED	0x00400000
+#define PF_HP_CODE		0x01000000
+#define PF_HP_MODIFY		0x02000000
+#define PF_HP_LAZYSWAP		0x04000000
+#define PF_HP_SBP		0x08000000
+
+
+
+
+
+
+#define EF_ALPHA_32BIT		1
+#define EF_ALPHA_CANRELAX	2
+
+
+
+
+#define SHT_ALPHA_DEBUG		0x70000001
+#define SHT_ALPHA_REGINFO	0x70000002
+
+
+
+#define SHF_ALPHA_GPREL		0x10000000
+
+
+#define STO_ALPHA_NOPV		0x80
+#define STO_ALPHA_STD_GPLOAD	0x88
+
+
+
+#define R_ALPHA_NONE		0
+#define R_ALPHA_REFLONG		1
+#define R_ALPHA_REFQUAD		2
+#define R_ALPHA_GPREL32		3
+#define R_ALPHA_LITERAL		4
+#define R_ALPHA_LITUSE		5
+#define R_ALPHA_GPDISP		6
+#define R_ALPHA_BRADDR		7
+#define R_ALPHA_HINT		8
+#define R_ALPHA_SREL16		9
+#define R_ALPHA_SREL32		10
+#define R_ALPHA_SREL64		11
+#define R_ALPHA_GPRELHIGH	17
+#define R_ALPHA_GPRELLOW	18
+#define R_ALPHA_GPREL16		19
+#define R_ALPHA_COPY		24
+#define R_ALPHA_GLOB_DAT	25
+#define R_ALPHA_JMP_SLOT	26
+#define R_ALPHA_RELATIVE	27
+#define R_ALPHA_TLS_GD_HI	28
+#define R_ALPHA_TLSGD		29
+#define R_ALPHA_TLS_LDM		30
+#define R_ALPHA_DTPMOD64	31
+#define R_ALPHA_GOTDTPREL	32
+#define R_ALPHA_DTPREL64	33
+#define R_ALPHA_DTPRELHI	34
+#define R_ALPHA_DTPRELLO	35
+#define R_ALPHA_DTPREL16	36
+#define R_ALPHA_GOTTPREL	37
+#define R_ALPHA_TPREL64		38
+#define R_ALPHA_TPRELHI		39
+#define R_ALPHA_TPRELLO		40
+#define R_ALPHA_TPREL16		41
+
+#define R_ALPHA_NUM		46
+
+
+#define LITUSE_ALPHA_ADDR	0
+#define LITUSE_ALPHA_BASE	1
+#define LITUSE_ALPHA_BYTOFF	2
+#define LITUSE_ALPHA_JSR	3
+#define LITUSE_ALPHA_TLS_GD	4
+#define LITUSE_ALPHA_TLS_LDM	5
+
+
+#define DT_ALPHA_PLTRO		(DT_LOPROC + 0)
+#define DT_ALPHA_NUM		1
+
+
+
+
+#define EF_PPC_EMB		0x80000000
+
+
+#define EF_PPC_RELOCATABLE	0x00010000
+#define EF_PPC_RELOCATABLE_LIB	0x00008000
+
+
+
+#define R_PPC_NONE		0
+#define R_PPC_ADDR32		1
+#define R_PPC_ADDR24		2
+#define R_PPC_ADDR16		3
+#define R_PPC_ADDR16_LO		4
+#define R_PPC_ADDR16_HI		5
+#define R_PPC_ADDR16_HA		6
+#define R_PPC_ADDR14		7
+#define R_PPC_ADDR14_BRTAKEN	8
+#define R_PPC_ADDR14_BRNTAKEN	9
+#define R_PPC_REL24		10
+#define R_PPC_REL14		11
+#define R_PPC_REL14_BRTAKEN	12
+#define R_PPC_REL14_BRNTAKEN	13
+#define R_PPC_GOT16		14
+#define R_PPC_GOT16_LO		15
+#define R_PPC_GOT16_HI		16
+#define R_PPC_GOT16_HA		17
+#define R_PPC_PLTREL24		18
+#define R_PPC_COPY		19
+#define R_PPC_GLOB_DAT		20
+#define R_PPC_JMP_SLOT		21
+#define R_PPC_RELATIVE		22
+#define R_PPC_LOCAL24PC		23
+#define R_PPC_UADDR32		24
+#define R_PPC_UADDR16		25
+#define R_PPC_REL32		26
+#define R_PPC_PLT32		27
+#define R_PPC_PLTREL32		28
+#define R_PPC_PLT16_LO		29
+#define R_PPC_PLT16_HI		30
+#define R_PPC_PLT16_HA		31
+#define R_PPC_SDAREL16		32
+#define R_PPC_SECTOFF		33
+#define R_PPC_SECTOFF_LO	34
+#define R_PPC_SECTOFF_HI	35
+#define R_PPC_SECTOFF_HA	36
+
+
+#define R_PPC_TLS		67
+#define R_PPC_DTPMOD32		68
+#define R_PPC_TPREL16		69
+#define R_PPC_TPREL16_LO	70
+#define R_PPC_TPREL16_HI	71
+#define R_PPC_TPREL16_HA	72
+#define R_PPC_TPREL32		73
+#define R_PPC_DTPREL16		74
+#define R_PPC_DTPREL16_LO	75
+#define R_PPC_DTPREL16_HI	76
+#define R_PPC_DTPREL16_HA	77
+#define R_PPC_DTPREL32		78
+#define R_PPC_GOT_TLSGD16	79
+#define R_PPC_GOT_TLSGD16_LO	80
+#define R_PPC_GOT_TLSGD16_HI	81
+#define R_PPC_GOT_TLSGD16_HA	82
+#define R_PPC_GOT_TLSLD16	83
+#define R_PPC_GOT_TLSLD16_LO	84
+#define R_PPC_GOT_TLSLD16_HI	85
+#define R_PPC_GOT_TLSLD16_HA	86
+#define R_PPC_GOT_TPREL16	87
+#define R_PPC_GOT_TPREL16_LO	88
+#define R_PPC_GOT_TPREL16_HI	89
+#define R_PPC_GOT_TPREL16_HA	90
+#define R_PPC_GOT_DTPREL16	91
+#define R_PPC_GOT_DTPREL16_LO	92
+#define R_PPC_GOT_DTPREL16_HI	93
+#define R_PPC_GOT_DTPREL16_HA	94
+
+
+
+#define R_PPC_EMB_NADDR32	101
+#define R_PPC_EMB_NADDR16	102
+#define R_PPC_EMB_NADDR16_LO	103
+#define R_PPC_EMB_NADDR16_HI	104
+#define R_PPC_EMB_NADDR16_HA	105
+#define R_PPC_EMB_SDAI16	106
+#define R_PPC_EMB_SDA2I16	107
+#define R_PPC_EMB_SDA2REL	108
+#define R_PPC_EMB_SDA21		109
+#define R_PPC_EMB_MRKREF	110
+#define R_PPC_EMB_RELSEC16	111
+#define R_PPC_EMB_RELST_LO	112
+#define R_PPC_EMB_RELST_HI	113
+#define R_PPC_EMB_RELST_HA	114
+#define R_PPC_EMB_BIT_FLD	115
+#define R_PPC_EMB_RELSDA	116
+
+
+#define R_PPC_DIAB_SDA21_LO	180
+#define R_PPC_DIAB_SDA21_HI	181
+#define R_PPC_DIAB_SDA21_HA	182
+#define R_PPC_DIAB_RELSDA_LO	183
+#define R_PPC_DIAB_RELSDA_HI	184
+#define R_PPC_DIAB_RELSDA_HA	185
+
+
+#define R_PPC_IRELATIVE		248
+
+
+#define R_PPC_REL16		249
+#define R_PPC_REL16_LO		250
+#define R_PPC_REL16_HI		251
+#define R_PPC_REL16_HA		252
+
+
+
+#define R_PPC_TOC16		255
+
+
+#define DT_PPC_GOT		(DT_LOPROC + 0)
+#define DT_PPC_NUM		1
+
+
+#define R_PPC64_NONE		R_PPC_NONE
+#define R_PPC64_ADDR32		R_PPC_ADDR32
+#define R_PPC64_ADDR24		R_PPC_ADDR24
+#define R_PPC64_ADDR16		R_PPC_ADDR16
+#define R_PPC64_ADDR16_LO	R_PPC_ADDR16_LO
+#define R_PPC64_ADDR16_HI	R_PPC_ADDR16_HI
+#define R_PPC64_ADDR16_HA	R_PPC_ADDR16_HA
+#define R_PPC64_ADDR14		R_PPC_ADDR14
+#define R_PPC64_ADDR14_BRTAKEN	R_PPC_ADDR14_BRTAKEN
+#define R_PPC64_ADDR14_BRNTAKEN	R_PPC_ADDR14_BRNTAKEN
+#define R_PPC64_REL24		R_PPC_REL24
+#define R_PPC64_REL14		R_PPC_REL14
+#define R_PPC64_REL14_BRTAKEN	R_PPC_REL14_BRTAKEN
+#define R_PPC64_REL14_BRNTAKEN	R_PPC_REL14_BRNTAKEN
+#define R_PPC64_GOT16		R_PPC_GOT16
+#define R_PPC64_GOT16_LO	R_PPC_GOT16_LO
+#define R_PPC64_GOT16_HI	R_PPC_GOT16_HI
+#define R_PPC64_GOT16_HA	R_PPC_GOT16_HA
+
+#define R_PPC64_COPY		R_PPC_COPY
+#define R_PPC64_GLOB_DAT	R_PPC_GLOB_DAT
+#define R_PPC64_JMP_SLOT	R_PPC_JMP_SLOT
+#define R_PPC64_RELATIVE	R_PPC_RELATIVE
+
+#define R_PPC64_UADDR32		R_PPC_UADDR32
+#define R_PPC64_UADDR16		R_PPC_UADDR16
+#define R_PPC64_REL32		R_PPC_REL32
+#define R_PPC64_PLT32		R_PPC_PLT32
+#define R_PPC64_PLTREL32	R_PPC_PLTREL32
+#define R_PPC64_PLT16_LO	R_PPC_PLT16_LO
+#define R_PPC64_PLT16_HI	R_PPC_PLT16_HI
+#define R_PPC64_PLT16_HA	R_PPC_PLT16_HA
+
+#define R_PPC64_SECTOFF		R_PPC_SECTOFF
+#define R_PPC64_SECTOFF_LO	R_PPC_SECTOFF_LO
+#define R_PPC64_SECTOFF_HI	R_PPC_SECTOFF_HI
+#define R_PPC64_SECTOFF_HA	R_PPC_SECTOFF_HA
+#define R_PPC64_ADDR30		37
+#define R_PPC64_ADDR64		38
+#define R_PPC64_ADDR16_HIGHER	39
+#define R_PPC64_ADDR16_HIGHERA	40
+#define R_PPC64_ADDR16_HIGHEST	41
+#define R_PPC64_ADDR16_HIGHESTA	42
+#define R_PPC64_UADDR64		43
+#define R_PPC64_REL64		44
+#define R_PPC64_PLT64		45
+#define R_PPC64_PLTREL64	46
+#define R_PPC64_TOC16		47
+#define R_PPC64_TOC16_LO	48
+#define R_PPC64_TOC16_HI	49
+#define R_PPC64_TOC16_HA	50
+#define R_PPC64_TOC		51
+#define R_PPC64_PLTGOT16	52
+#define R_PPC64_PLTGOT16_LO	53
+#define R_PPC64_PLTGOT16_HI	54
+#define R_PPC64_PLTGOT16_HA	55
+
+#define R_PPC64_ADDR16_DS	56
+#define R_PPC64_ADDR16_LO_DS	57
+#define R_PPC64_GOT16_DS	58
+#define R_PPC64_GOT16_LO_DS	59
+#define R_PPC64_PLT16_LO_DS	60
+#define R_PPC64_SECTOFF_DS	61
+#define R_PPC64_SECTOFF_LO_DS	62
+#define R_PPC64_TOC16_DS	63
+#define R_PPC64_TOC16_LO_DS	64
+#define R_PPC64_PLTGOT16_DS	65
+#define R_PPC64_PLTGOT16_LO_DS	66
+
+
+#define R_PPC64_TLS		67
+#define R_PPC64_DTPMOD64	68
+#define R_PPC64_TPREL16		69
+#define R_PPC64_TPREL16_LO	70
+#define R_PPC64_TPREL16_HI	71
+#define R_PPC64_TPREL16_HA	72
+#define R_PPC64_TPREL64		73
+#define R_PPC64_DTPREL16	74
+#define R_PPC64_DTPREL16_LO	75
+#define R_PPC64_DTPREL16_HI	76
+#define R_PPC64_DTPREL16_HA	77
+#define R_PPC64_DTPREL64	78
+#define R_PPC64_GOT_TLSGD16	79
+#define R_PPC64_GOT_TLSGD16_LO	80
+#define R_PPC64_GOT_TLSGD16_HI	81
+#define R_PPC64_GOT_TLSGD16_HA	82
+#define R_PPC64_GOT_TLSLD16	83
+#define R_PPC64_GOT_TLSLD16_LO	84
+#define R_PPC64_GOT_TLSLD16_HI	85
+#define R_PPC64_GOT_TLSLD16_HA	86
+#define R_PPC64_GOT_TPREL16_DS	87
+#define R_PPC64_GOT_TPREL16_LO_DS 88
+#define R_PPC64_GOT_TPREL16_HI	89
+#define R_PPC64_GOT_TPREL16_HA	90
+#define R_PPC64_GOT_DTPREL16_DS	91
+#define R_PPC64_GOT_DTPREL16_LO_DS 92
+#define R_PPC64_GOT_DTPREL16_HI	93
+#define R_PPC64_GOT_DTPREL16_HA	94
+#define R_PPC64_TPREL16_DS	95
+#define R_PPC64_TPREL16_LO_DS	96
+#define R_PPC64_TPREL16_HIGHER	97
+#define R_PPC64_TPREL16_HIGHERA	98
+#define R_PPC64_TPREL16_HIGHEST	99
+#define R_PPC64_TPREL16_HIGHESTA 100
+#define R_PPC64_DTPREL16_DS	101
+#define R_PPC64_DTPREL16_LO_DS	102
+#define R_PPC64_DTPREL16_HIGHER	103
+#define R_PPC64_DTPREL16_HIGHERA 104
+#define R_PPC64_DTPREL16_HIGHEST 105
+#define R_PPC64_DTPREL16_HIGHESTA 106
+
+
+#define R_PPC64_JMP_IREL	247
+#define R_PPC64_IRELATIVE	248
+#define R_PPC64_REL16		249
+#define R_PPC64_REL16_LO	250
+#define R_PPC64_REL16_HI	251
+#define R_PPC64_REL16_HA	252
+
+
+#define DT_PPC64_GLINK  (DT_LOPROC + 0)
+#define DT_PPC64_OPD	(DT_LOPROC + 1)
+#define DT_PPC64_OPDSZ	(DT_LOPROC + 2)
+#define DT_PPC64_NUM    3
+
+
+
+
+
+#define EF_ARM_RELEXEC		0x01
+#define EF_ARM_HASENTRY		0x02
+#define EF_ARM_INTERWORK	0x04
+#define EF_ARM_APCS_26		0x08
+#define EF_ARM_APCS_FLOAT	0x10
+#define EF_ARM_PIC		0x20
+#define EF_ARM_ALIGN8		0x40
+#define EF_ARM_NEW_ABI		0x80
+#define EF_ARM_OLD_ABI		0x100
+#define EF_ARM_SOFT_FLOAT	0x200
+#define EF_ARM_VFP_FLOAT	0x400
+#define EF_ARM_MAVERICK_FLOAT	0x800
+
+#define EF_ARM_ABI_FLOAT_SOFT	0x200
+#define EF_ARM_ABI_FLOAT_HARD	0x400
+
+
+#define EF_ARM_SYMSARESORTED	0x04
+#define EF_ARM_DYNSYMSUSESEGIDX	0x08
+#define EF_ARM_MAPSYMSFIRST	0x10
+#define EF_ARM_EABIMASK		0XFF000000
+
+
+#define EF_ARM_BE8	    0x00800000
+#define EF_ARM_LE8	    0x00400000
+
+#define EF_ARM_EABI_VERSION(flags)	((flags) & EF_ARM_EABIMASK)
+#define EF_ARM_EABI_UNKNOWN	0x00000000
+#define EF_ARM_EABI_VER1	0x01000000
+#define EF_ARM_EABI_VER2	0x02000000
+#define EF_ARM_EABI_VER3	0x03000000
+#define EF_ARM_EABI_VER4	0x04000000
+#define EF_ARM_EABI_VER5	0x05000000
+
+
+#define STT_ARM_TFUNC		STT_LOPROC
+#define STT_ARM_16BIT		STT_HIPROC
+
+
+#define SHF_ARM_ENTRYSECT	0x10000000
+#define SHF_ARM_COMDEF		0x80000000
+
+
+
+#define PF_ARM_SB		0x10000000
+
+#define PF_ARM_PI		0x20000000
+#define PF_ARM_ABS		0x40000000
+
+
+#define PT_ARM_EXIDX		(PT_LOPROC + 1)
+
+
+#define SHT_ARM_EXIDX		(SHT_LOPROC + 1)
+#define SHT_ARM_PREEMPTMAP	(SHT_LOPROC + 2)
+#define SHT_ARM_ATTRIBUTES	(SHT_LOPROC + 3)
+
+
+#define R_AARCH64_NONE            0
+#define R_AARCH64_ABS64         257
+#define R_AARCH64_ABS32         258
+#define R_AARCH64_ABS16		259
+#define R_AARCH64_PREL64	260
+#define R_AARCH64_PREL32	261
+#define R_AARCH64_PREL16	262
+#define R_AARCH64_MOVW_UABS_G0	263
+#define R_AARCH64_MOVW_UABS_G0_NC 264
+#define R_AARCH64_MOVW_UABS_G1	265
+#define R_AARCH64_MOVW_UABS_G1_NC 266
+#define R_AARCH64_MOVW_UABS_G2	267
+#define R_AARCH64_MOVW_UABS_G2_NC 268
+#define R_AARCH64_MOVW_UABS_G3	269
+#define R_AARCH64_MOVW_SABS_G0	270
+#define R_AARCH64_MOVW_SABS_G1	271
+#define R_AARCH64_MOVW_SABS_G2	272
+#define R_AARCH64_LD_PREL_LO19	273
+#define R_AARCH64_ADR_PREL_LO21	274
+#define R_AARCH64_ADR_PREL_PG_HI21 275
+#define R_AARCH64_ADR_PREL_PG_HI21_NC 276
+#define R_AARCH64_ADD_ABS_LO12_NC 277
+#define R_AARCH64_LDST8_ABS_LO12_NC 278
+#define R_AARCH64_TSTBR14	279
+#define R_AARCH64_CONDBR19	280
+#define R_AARCH64_JUMP26	282
+#define R_AARCH64_CALL26	283
+#define R_AARCH64_LDST16_ABS_LO12_NC 284
+#define R_AARCH64_LDST32_ABS_LO12_NC 285
+#define R_AARCH64_LDST64_ABS_LO12_NC 286
+#define R_AARCH64_MOVW_PREL_G0	287
+#define R_AARCH64_MOVW_PREL_G0_NC 288
+#define R_AARCH64_MOVW_PREL_G1	289
+#define R_AARCH64_MOVW_PREL_G1_NC 290
+#define R_AARCH64_MOVW_PREL_G2	291
+#define R_AARCH64_MOVW_PREL_G2_NC 292
+#define R_AARCH64_MOVW_PREL_G3	293
+#define R_AARCH64_LDST128_ABS_LO12_NC 299
+#define R_AARCH64_MOVW_GOTOFF_G0 300
+#define R_AARCH64_MOVW_GOTOFF_G0_NC 301
+#define R_AARCH64_MOVW_GOTOFF_G1 302
+#define R_AARCH64_MOVW_GOTOFF_G1_NC 303
+#define R_AARCH64_MOVW_GOTOFF_G2 304
+#define R_AARCH64_MOVW_GOTOFF_G2_NC 305
+#define R_AARCH64_MOVW_GOTOFF_G3 306
+#define R_AARCH64_GOTREL64	307
+#define R_AARCH64_GOTREL32	308
+#define R_AARCH64_GOT_LD_PREL19	309
+#define R_AARCH64_LD64_GOTOFF_LO15 310
+#define R_AARCH64_ADR_GOT_PAGE	311
+#define R_AARCH64_LD64_GOT_LO12_NC 312
+#define R_AARCH64_LD64_GOTPAGE_LO15 313
+#define R_AARCH64_TLSGD_ADR_PREL21 512
+#define R_AARCH64_TLSGD_ADR_PAGE21 513
+#define R_AARCH64_TLSGD_ADD_LO12_NC 514
+#define R_AARCH64_TLSGD_MOVW_G1	515
+#define R_AARCH64_TLSGD_MOVW_G0_NC 516
+#define R_AARCH64_TLSLD_ADR_PREL21 517
+#define R_AARCH64_TLSLD_ADR_PAGE21 518
+#define R_AARCH64_TLSLD_ADD_LO12_NC 519
+#define R_AARCH64_TLSLD_MOVW_G1	520
+#define R_AARCH64_TLSLD_MOVW_G0_NC 521
+#define R_AARCH64_TLSLD_LD_PREL19 522
+#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
+#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
+#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
+#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
+#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
+#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
+#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
+#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
+#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
+#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
+#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
+#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
+#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
+#define R_AARCH64_TLSDESC_LD_PREL19 560
+#define R_AARCH64_TLSDESC_ADR_PREL21 561
+#define R_AARCH64_TLSDESC_ADR_PAGE21 562
+#define R_AARCH64_TLSDESC_LD64_LO12 563
+#define R_AARCH64_TLSDESC_ADD_LO12 564
+#define R_AARCH64_TLSDESC_OFF_G1 565
+#define R_AARCH64_TLSDESC_OFF_G0_NC 566
+#define R_AARCH64_TLSDESC_LDR	567
+#define R_AARCH64_TLSDESC_ADD	568
+#define R_AARCH64_TLSDESC_CALL	569
+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
+#define R_AARCH64_COPY         1024
+#define R_AARCH64_GLOB_DAT     1025
+#define R_AARCH64_JUMP_SLOT    1026
+#define R_AARCH64_RELATIVE     1027
+#define R_AARCH64_TLS_DTPMOD64 1028
+#define R_AARCH64_TLS_DTPREL64 1029
+#define R_AARCH64_TLS_TPREL64  1030
+#define R_AARCH64_TLSDESC      1031
+
+
+#define R_ARM_NONE		0
+#define R_ARM_PC24		1
+#define R_ARM_ABS32		2
+#define R_ARM_REL32		3
+#define R_ARM_PC13		4
+#define R_ARM_ABS16		5
+#define R_ARM_ABS12		6
+#define R_ARM_THM_ABS5		7
+#define R_ARM_ABS8		8
+#define R_ARM_SBREL32		9
+#define R_ARM_THM_PC22		10
+#define R_ARM_THM_PC8		11
+#define R_ARM_AMP_VCALL9	12
+#define R_ARM_TLS_DESC		13
+#define R_ARM_THM_SWI8		14
+#define R_ARM_XPC25		15
+#define R_ARM_THM_XPC22		16
+#define R_ARM_TLS_DTPMOD32	17
+#define R_ARM_TLS_DTPOFF32	18
+#define R_ARM_TLS_TPOFF32	19
+#define R_ARM_COPY		20
+#define R_ARM_GLOB_DAT		21
+#define R_ARM_JUMP_SLOT		22
+#define R_ARM_RELATIVE		23
+#define R_ARM_GOTOFF		24
+#define R_ARM_GOTPC		25
+#define R_ARM_GOT32		26
+#define R_ARM_PLT32		27
+#define R_ARM_CALL		28
+#define R_ARM_JUMP24		29
+#define R_ARM_THM_JUMP24	30
+#define R_ARM_BASE_ABS		31
+#define R_ARM_ALU_PCREL_7_0	32
+#define R_ARM_ALU_PCREL_15_8	33
+#define R_ARM_ALU_PCREL_23_15	34
+#define R_ARM_LDR_SBREL_11_0	35
+#define R_ARM_ALU_SBREL_19_12	36
+#define R_ARM_ALU_SBREL_27_20	37
+#define R_ARM_TARGET1		38
+#define R_ARM_SBREL31		39
+#define R_ARM_V4BX		40
+#define R_ARM_TARGET2		41
+#define R_ARM_PREL31		42
+#define R_ARM_MOVW_ABS_NC	43
+#define R_ARM_MOVT_ABS		44
+#define R_ARM_MOVW_PREL_NC	45
+#define R_ARM_MOVT_PREL		46
+#define R_ARM_THM_MOVW_ABS_NC	47
+#define R_ARM_THM_MOVT_ABS	48
+#define R_ARM_THM_MOVW_PREL_NC	49
+#define R_ARM_THM_MOVT_PREL	50
+#define R_ARM_THM_JUMP19	51
+#define R_ARM_THM_JUMP6		52
+#define R_ARM_THM_ALU_PREL_11_0	53
+#define R_ARM_THM_PC12		54
+#define R_ARM_ABS32_NOI		55
+#define R_ARM_REL32_NOI		56
+#define R_ARM_ALU_PC_G0_NC	57
+#define R_ARM_ALU_PC_G0		58
+#define R_ARM_ALU_PC_G1_NC	59
+#define R_ARM_ALU_PC_G1		60
+#define R_ARM_ALU_PC_G2		61
+#define R_ARM_LDR_PC_G1		62
+#define R_ARM_LDR_PC_G2		63
+#define R_ARM_LDRS_PC_G0	64
+#define R_ARM_LDRS_PC_G1	65
+#define R_ARM_LDRS_PC_G2	66
+#define R_ARM_LDC_PC_G0		67
+#define R_ARM_LDC_PC_G1		68
+#define R_ARM_LDC_PC_G2		69
+#define R_ARM_ALU_SB_G0_NC	70
+#define R_ARM_ALU_SB_G0		71
+#define R_ARM_ALU_SB_G1_NC	72
+#define R_ARM_ALU_SB_G1		73
+#define R_ARM_ALU_SB_G2		74
+#define R_ARM_LDR_SB_G0		75
+#define R_ARM_LDR_SB_G1		76
+#define R_ARM_LDR_SB_G2		77
+#define R_ARM_LDRS_SB_G0	78
+#define R_ARM_LDRS_SB_G1	79
+#define R_ARM_LDRS_SB_G2	80
+#define R_ARM_LDC_SB_G0		81
+#define R_ARM_LDC_SB_G1		82
+#define R_ARM_LDC_SB_G2		83
+#define R_ARM_MOVW_BREL_NC	84
+#define R_ARM_MOVT_BREL		85
+#define R_ARM_MOVW_BREL		86
+#define R_ARM_THM_MOVW_BREL_NC	87
+#define R_ARM_THM_MOVT_BREL	88
+#define R_ARM_THM_MOVW_BREL	89
+#define R_ARM_TLS_GOTDESC	90
+#define R_ARM_TLS_CALL		91
+#define R_ARM_TLS_DESCSEQ	92
+#define R_ARM_THM_TLS_CALL	93
+#define R_ARM_PLT32_ABS		94
+#define R_ARM_GOT_ABS		95
+#define R_ARM_GOT_PREL		96
+#define R_ARM_GOT_BREL12	97
+#define R_ARM_GOTOFF12		98
+#define R_ARM_GOTRELAX		99
+#define R_ARM_GNU_VTENTRY	100
+#define R_ARM_GNU_VTINHERIT	101
+#define R_ARM_THM_PC11		102
+#define R_ARM_THM_PC9		103
+#define R_ARM_TLS_GD32		104
+
+#define R_ARM_TLS_LDM32		105
+
+#define R_ARM_TLS_LDO32		106
+
+#define R_ARM_TLS_IE32		107
+
+#define R_ARM_TLS_LE32		108
+#define R_ARM_TLS_LDO12		109
+#define R_ARM_TLS_LE12		110
+#define R_ARM_TLS_IE12GP	111
+#define R_ARM_ME_TOO		128
+#define R_ARM_THM_TLS_DESCSEQ	129
+#define R_ARM_THM_TLS_DESCSEQ16	129
+#define R_ARM_THM_TLS_DESCSEQ32	130
+#define R_ARM_THM_GOT_BREL12	131
+#define R_ARM_IRELATIVE		160
+#define R_ARM_RXPC25		249
+#define R_ARM_RSBREL32		250
+#define R_ARM_THM_RPC22		251
+#define R_ARM_RREL32		252
+#define R_ARM_RABS22		253
+#define R_ARM_RPC24		254
+#define R_ARM_RBASE		255
+
+#define R_ARM_NUM		256
+
+
+
+
+#define EF_IA_64_MASKOS		0x0000000f
+#define EF_IA_64_ABI64		0x00000010
+#define EF_IA_64_ARCH		0xff000000
+
+
+#define PT_IA_64_ARCHEXT	(PT_LOPROC + 0)
+#define PT_IA_64_UNWIND		(PT_LOPROC + 1)
+#define PT_IA_64_HP_OPT_ANOT	(PT_LOOS + 0x12)
+#define PT_IA_64_HP_HSL_ANOT	(PT_LOOS + 0x13)
+#define PT_IA_64_HP_STACK	(PT_LOOS + 0x14)
+
+
+#define PF_IA_64_NORECOV	0x80000000
+
+
+#define SHT_IA_64_EXT		(SHT_LOPROC + 0)
+#define SHT_IA_64_UNWIND	(SHT_LOPROC + 1)
+
+
+#define SHF_IA_64_SHORT		0x10000000
+#define SHF_IA_64_NORECOV	0x20000000
+
+
+#define DT_IA_64_PLT_RESERVE	(DT_LOPROC + 0)
+#define DT_IA_64_NUM		1
+
+
+#define R_IA64_NONE		0x00
+#define R_IA64_IMM14		0x21
+#define R_IA64_IMM22		0x22
+#define R_IA64_IMM64		0x23
+#define R_IA64_DIR32MSB		0x24
+#define R_IA64_DIR32LSB		0x25
+#define R_IA64_DIR64MSB		0x26
+#define R_IA64_DIR64LSB		0x27
+#define R_IA64_GPREL22		0x2a
+#define R_IA64_GPREL64I		0x2b
+#define R_IA64_GPREL32MSB	0x2c
+#define R_IA64_GPREL32LSB	0x2d
+#define R_IA64_GPREL64MSB	0x2e
+#define R_IA64_GPREL64LSB	0x2f
+#define R_IA64_LTOFF22		0x32
+#define R_IA64_LTOFF64I		0x33
+#define R_IA64_PLTOFF22		0x3a
+#define R_IA64_PLTOFF64I	0x3b
+#define R_IA64_PLTOFF64MSB	0x3e
+#define R_IA64_PLTOFF64LSB	0x3f
+#define R_IA64_FPTR64I		0x43
+#define R_IA64_FPTR32MSB	0x44
+#define R_IA64_FPTR32LSB	0x45
+#define R_IA64_FPTR64MSB	0x46
+#define R_IA64_FPTR64LSB	0x47
+#define R_IA64_PCREL60B		0x48
+#define R_IA64_PCREL21B		0x49
+#define R_IA64_PCREL21M		0x4a
+#define R_IA64_PCREL21F		0x4b
+#define R_IA64_PCREL32MSB	0x4c
+#define R_IA64_PCREL32LSB	0x4d
+#define R_IA64_PCREL64MSB	0x4e
+#define R_IA64_PCREL64LSB	0x4f
+#define R_IA64_LTOFF_FPTR22	0x52
+#define R_IA64_LTOFF_FPTR64I	0x53
+#define R_IA64_LTOFF_FPTR32MSB	0x54
+#define R_IA64_LTOFF_FPTR32LSB	0x55
+#define R_IA64_LTOFF_FPTR64MSB	0x56
+#define R_IA64_LTOFF_FPTR64LSB	0x57
+#define R_IA64_SEGREL32MSB	0x5c
+#define R_IA64_SEGREL32LSB	0x5d
+#define R_IA64_SEGREL64MSB	0x5e
+#define R_IA64_SEGREL64LSB	0x5f
+#define R_IA64_SECREL32MSB	0x64
+#define R_IA64_SECREL32LSB	0x65
+#define R_IA64_SECREL64MSB	0x66
+#define R_IA64_SECREL64LSB	0x67
+#define R_IA64_REL32MSB		0x6c
+#define R_IA64_REL32LSB		0x6d
+#define R_IA64_REL64MSB		0x6e
+#define R_IA64_REL64LSB		0x6f
+#define R_IA64_LTV32MSB		0x74
+#define R_IA64_LTV32LSB		0x75
+#define R_IA64_LTV64MSB		0x76
+#define R_IA64_LTV64LSB		0x77
+#define R_IA64_PCREL21BI	0x79
+#define R_IA64_PCREL22		0x7a
+#define R_IA64_PCREL64I		0x7b
+#define R_IA64_IPLTMSB		0x80
+#define R_IA64_IPLTLSB		0x81
+#define R_IA64_COPY		0x84
+#define R_IA64_SUB		0x85
+#define R_IA64_LTOFF22X		0x86
+#define R_IA64_LDXMOV		0x87
+#define R_IA64_TPREL14		0x91
+#define R_IA64_TPREL22		0x92
+#define R_IA64_TPREL64I		0x93
+#define R_IA64_TPREL64MSB	0x96
+#define R_IA64_TPREL64LSB	0x97
+#define R_IA64_LTOFF_TPREL22	0x9a
+#define R_IA64_DTPMOD64MSB	0xa6
+#define R_IA64_DTPMOD64LSB	0xa7
+#define R_IA64_LTOFF_DTPMOD22	0xaa
+#define R_IA64_DTPREL14		0xb1
+#define R_IA64_DTPREL22		0xb2
+#define R_IA64_DTPREL64I	0xb3
+#define R_IA64_DTPREL32MSB	0xb4
+#define R_IA64_DTPREL32LSB	0xb5
+#define R_IA64_DTPREL64MSB	0xb6
+#define R_IA64_DTPREL64LSB	0xb7
+#define R_IA64_LTOFF_DTPREL22	0xba
+
+
+
+
+#define	R_SH_NONE		0
+#define	R_SH_DIR32		1
+#define	R_SH_REL32		2
+#define	R_SH_DIR8WPN		3
+#define	R_SH_IND12W		4
+#define	R_SH_DIR8WPL		5
+#define	R_SH_DIR8WPZ		6
+#define	R_SH_DIR8BP		7
+#define	R_SH_DIR8W		8
+#define	R_SH_DIR8L		9
+#define	R_SH_SWITCH16		25
+#define	R_SH_SWITCH32		26
+#define	R_SH_USES		27
+#define	R_SH_COUNT		28
+#define	R_SH_ALIGN		29
+#define	R_SH_CODE		30
+#define	R_SH_DATA		31
+#define	R_SH_LABEL		32
+#define	R_SH_SWITCH8		33
+#define	R_SH_GNU_VTINHERIT	34
+#define	R_SH_GNU_VTENTRY	35
+#define	R_SH_TLS_GD_32		144
+#define	R_SH_TLS_LD_32		145
+#define	R_SH_TLS_LDO_32		146
+#define	R_SH_TLS_IE_32		147
+#define	R_SH_TLS_LE_32		148
+#define	R_SH_TLS_DTPMOD32	149
+#define	R_SH_TLS_DTPOFF32	150
+#define	R_SH_TLS_TPOFF32	151
+#define	R_SH_GOT32		160
+#define	R_SH_PLT32		161
+#define	R_SH_COPY		162
+#define	R_SH_GLOB_DAT		163
+#define	R_SH_JMP_SLOT		164
+#define	R_SH_RELATIVE		165
+#define	R_SH_GOTOFF		166
+#define	R_SH_GOTPC		167
+#define	R_SH_GOT20		201
+#define	R_SH_GOTOFF20		202
+#define	R_SH_GOTFUNCDESC	203
+#define	R_SH_GOTFUNCDEST20	204
+#define	R_SH_GOTOFFFUNCDESC	205
+#define	R_SH_GOTOFFFUNCDEST20	206
+#define	R_SH_FUNCDESC		207
+#define	R_SH_FUNCDESC_VALUE	208
+
+#define	R_SH_NUM		256
+
+
+
+#define R_390_NONE		0
+#define R_390_8			1
+#define R_390_12		2
+#define R_390_16		3
+#define R_390_32		4
+#define R_390_PC32		5
+#define R_390_GOT12		6
+#define R_390_GOT32		7
+#define R_390_PLT32		8
+#define R_390_COPY		9
+#define R_390_GLOB_DAT		10
+#define R_390_JMP_SLOT		11
+#define R_390_RELATIVE		12
+#define R_390_GOTOFF32		13
+#define R_390_GOTPC		14
+#define R_390_GOT16		15
+#define R_390_PC16		16
+#define R_390_PC16DBL		17
+#define R_390_PLT16DBL		18
+#define R_390_PC32DBL		19
+#define R_390_PLT32DBL		20
+#define R_390_GOTPCDBL		21
+#define R_390_64		22
+#define R_390_PC64		23
+#define R_390_GOT64		24
+#define R_390_PLT64		25
+#define R_390_GOTENT		26
+#define R_390_GOTOFF16		27
+#define R_390_GOTOFF64		28
+#define R_390_GOTPLT12		29
+#define R_390_GOTPLT16		30
+#define R_390_GOTPLT32		31
+#define R_390_GOTPLT64		32
+#define R_390_GOTPLTENT		33
+#define R_390_PLTOFF16		34
+#define R_390_PLTOFF32		35
+#define R_390_PLTOFF64		36
+#define R_390_TLS_LOAD		37
+#define R_390_TLS_GDCALL	38
+
+#define R_390_TLS_LDCALL	39
+
+#define R_390_TLS_GD32		40
+
+#define R_390_TLS_GD64		41
+
+#define R_390_TLS_GOTIE12	42
+
+#define R_390_TLS_GOTIE32	43
+
+#define R_390_TLS_GOTIE64	44
+
+#define R_390_TLS_LDM32		45
+
+#define R_390_TLS_LDM64		46
+
+#define R_390_TLS_IE32		47
+
+#define R_390_TLS_IE64		48
+
+#define R_390_TLS_IEENT		49
+
+#define R_390_TLS_LE32		50
+
+#define R_390_TLS_LE64		51
+
+#define R_390_TLS_LDO32		52
+
+#define R_390_TLS_LDO64		53
+
+#define R_390_TLS_DTPMOD	54
+#define R_390_TLS_DTPOFF	55
+#define R_390_TLS_TPOFF		56
+
+#define R_390_20		57
+#define R_390_GOT20		58
+#define R_390_GOTPLT20		59
+#define R_390_TLS_GOTIE20	60
+
+
+#define R_390_NUM		61
+
+
+
+#define R_CRIS_NONE		0
+#define R_CRIS_8		1
+#define R_CRIS_16		2
+#define R_CRIS_32		3
+#define R_CRIS_8_PCREL		4
+#define R_CRIS_16_PCREL		5
+#define R_CRIS_32_PCREL		6
+#define R_CRIS_GNU_VTINHERIT	7
+#define R_CRIS_GNU_VTENTRY	8
+#define R_CRIS_COPY		9
+#define R_CRIS_GLOB_DAT		10
+#define R_CRIS_JUMP_SLOT	11
+#define R_CRIS_RELATIVE		12
+#define R_CRIS_16_GOT		13
+#define R_CRIS_32_GOT		14
+#define R_CRIS_16_GOTPLT	15
+#define R_CRIS_32_GOTPLT	16
+#define R_CRIS_32_GOTREL	17
+#define R_CRIS_32_PLT_GOTREL	18
+#define R_CRIS_32_PLT_PCREL	19
+
+#define R_CRIS_NUM		20
+
+
+
+#define R_X86_64_NONE		0
+#define R_X86_64_64		1
+#define R_X86_64_PC32		2
+#define R_X86_64_GOT32		3
+#define R_X86_64_PLT32		4
+#define R_X86_64_COPY		5
+#define R_X86_64_GLOB_DAT	6
+#define R_X86_64_JUMP_SLOT	7
+#define R_X86_64_RELATIVE	8
+#define R_X86_64_GOTPCREL	9
+
+#define R_X86_64_32		10
+#define R_X86_64_32S		11
+#define R_X86_64_16		12
+#define R_X86_64_PC16		13
+#define R_X86_64_8		14
+#define R_X86_64_PC8		15
+#define R_X86_64_DTPMOD64	16
+#define R_X86_64_DTPOFF64	17
+#define R_X86_64_TPOFF64	18
+#define R_X86_64_TLSGD		19
+
+#define R_X86_64_TLSLD		20
+
+#define R_X86_64_DTPOFF32	21
+#define R_X86_64_GOTTPOFF	22
+
+#define R_X86_64_TPOFF32	23
+#define R_X86_64_PC64		24
+#define R_X86_64_GOTOFF64	25
+#define R_X86_64_GOTPC32	26
+#define R_X86_64_GOT64		27
+#define R_X86_64_GOTPCREL64	28
+#define R_X86_64_GOTPC64	29
+#define R_X86_64_GOTPLT64	30
+#define R_X86_64_PLTOFF64	31
+#define R_X86_64_SIZE32		32
+#define R_X86_64_SIZE64		33
+
+#define R_X86_64_GOTPC32_TLSDESC 34
+#define R_X86_64_TLSDESC_CALL   35
+
+#define R_X86_64_TLSDESC        36
+#define R_X86_64_IRELATIVE	37
+#define R_X86_64_RELATIVE64	38
+#define R_X86_64_NUM		39
+
+
+
+#define R_MN10300_NONE		0
+#define R_MN10300_32		1
+#define R_MN10300_16		2
+#define R_MN10300_8		3
+#define R_MN10300_PCREL32	4
+#define R_MN10300_PCREL16	5
+#define R_MN10300_PCREL8	6
+#define R_MN10300_GNU_VTINHERIT	7
+#define R_MN10300_GNU_VTENTRY	8
+#define R_MN10300_24		9
+#define R_MN10300_GOTPC32	10
+#define R_MN10300_GOTPC16	11
+#define R_MN10300_GOTOFF32	12
+#define R_MN10300_GOTOFF24	13
+#define R_MN10300_GOTOFF16	14
+#define R_MN10300_PLT32		15
+#define R_MN10300_PLT16		16
+#define R_MN10300_GOT32		17
+#define R_MN10300_GOT24		18
+#define R_MN10300_GOT16		19
+#define R_MN10300_COPY		20
+#define R_MN10300_GLOB_DAT	21
+#define R_MN10300_JMP_SLOT	22
+#define R_MN10300_RELATIVE	23
+
+#define R_MN10300_NUM		24
+
+
+
+#define R_M32R_NONE		0
+#define R_M32R_16		1
+#define R_M32R_32		2
+#define R_M32R_24		3
+#define R_M32R_10_PCREL		4
+#define R_M32R_18_PCREL		5
+#define R_M32R_26_PCREL		6
+#define R_M32R_HI16_ULO		7
+#define R_M32R_HI16_SLO		8
+#define R_M32R_LO16		9
+#define R_M32R_SDA16		10
+#define R_M32R_GNU_VTINHERIT	11
+#define R_M32R_GNU_VTENTRY	12
+
+#define R_M32R_16_RELA		33
+#define R_M32R_32_RELA		34
+#define R_M32R_24_RELA		35
+#define R_M32R_10_PCREL_RELA	36
+#define R_M32R_18_PCREL_RELA	37
+#define R_M32R_26_PCREL_RELA	38
+#define R_M32R_HI16_ULO_RELA	39
+#define R_M32R_HI16_SLO_RELA	40
+#define R_M32R_LO16_RELA	41
+#define R_M32R_SDA16_RELA	42
+#define R_M32R_RELA_GNU_VTINHERIT	43
+#define R_M32R_RELA_GNU_VTENTRY	44
+#define R_M32R_REL32		45
+
+#define R_M32R_GOT24		48
+#define R_M32R_26_PLTREL	49
+#define R_M32R_COPY		50
+#define R_M32R_GLOB_DAT		51
+#define R_M32R_JMP_SLOT		52
+#define R_M32R_RELATIVE		53
+#define R_M32R_GOTOFF		54
+#define R_M32R_GOTPC24		55
+#define R_M32R_GOT16_HI_ULO	56
+
+#define R_M32R_GOT16_HI_SLO	57
+
+#define R_M32R_GOT16_LO		58
+#define R_M32R_GOTPC_HI_ULO	59
+
+#define R_M32R_GOTPC_HI_SLO	60
+
+#define R_M32R_GOTPC_LO		61
+
+#define R_M32R_GOTOFF_HI_ULO	62
+
+#define R_M32R_GOTOFF_HI_SLO	63
+
+#define R_M32R_GOTOFF_LO	64
+#define R_M32R_NUM		256
+
+#define R_MICROBLAZE_NONE 0
+#define R_MICROBLAZE_32 1
+#define R_MICROBLAZE_32_PCREL 2
+#define R_MICROBLAZE_64_PCREL 3
+#define R_MICROBLAZE_32_PCREL_LO 4
+#define R_MICROBLAZE_64 5
+#define R_MICROBLAZE_32_LO 6
+#define R_MICROBLAZE_SRO32 7
+#define R_MICROBLAZE_SRW32 8
+#define R_MICROBLAZE_64_NONE 9
+#define R_MICROBLAZE_32_SYM_OP_SYM 10
+#define R_MICROBLAZE_GNU_VTINHERIT 11
+#define R_MICROBLAZE_GNU_VTENTRY 12
+#define R_MICROBLAZE_GOTPC_64 13
+#define R_MICROBLAZE_GOT_64 14
+#define R_MICROBLAZE_PLT_64 15
+#define R_MICROBLAZE_REL 16
+#define R_MICROBLAZE_JUMP_SLOT 17
+#define R_MICROBLAZE_GLOB_DAT 18
+#define R_MICROBLAZE_GOTOFF_64 19
+#define R_MICROBLAZE_GOTOFF_32 20
+#define R_MICROBLAZE_COPY 21
+#define R_MICROBLAZE_TLS 22
+#define R_MICROBLAZE_TLSGD 23
+#define R_MICROBLAZE_TLSLD 24
+#define R_MICROBLAZE_TLSDTPMOD32 25
+#define R_MICROBLAZE_TLSDTPREL32 26
+#define R_MICROBLAZE_TLSDTPREL64 27
+#define R_MICROBLAZE_TLSGOTTPREL32 28
+#define R_MICROBLAZE_TLSTPREL32	 29
+
+#define R_OR1K_NONE		0
+#define R_OR1K_32		1
+#define R_OR1K_16		2
+#define R_OR1K_8		3
+#define R_OR1K_LO_16_IN_INSN	4
+#define R_OR1K_HI_16_IN_INSN	5
+#define R_OR1K_INSN_REL_26	6
+#define R_OR1K_GNU_VTENTRY	7
+#define R_OR1K_GNU_VTINHERIT	8
+#define R_OR1K_32_PCREL		9
+#define R_OR1K_16_PCREL		10
+#define R_OR1K_8_PCREL		11
+#define R_OR1K_GOTPC_HI16	12
+#define R_OR1K_GOTPC_LO16	13
+#define R_OR1K_GOT16		14
+#define R_OR1K_PLT26		15
+#define R_OR1K_GOTOFF_HI16	16
+#define R_OR1K_GOTOFF_LO16	17
+#define R_OR1K_COPY		18
+#define R_OR1K_GLOB_DAT		19
+#define R_OR1K_JMP_SLOT		20
+#define R_OR1K_RELATIVE		21
+#define R_OR1K_TLS_GD_HI16	22
+#define R_OR1K_TLS_GD_LO16	23
+#define R_OR1K_TLS_LDM_HI16	24
+#define R_OR1K_TLS_LDM_LO16	25
+#define R_OR1K_TLS_LDO_HI16	26
+#define R_OR1K_TLS_LDO_LO16	27
+#define R_OR1K_TLS_IE_HI16	28
+#define R_OR1K_TLS_IE_LO16	29
+#define R_OR1K_TLS_LE_HI16	30
+#define R_OR1K_TLS_LE_LO16	31
+#define R_OR1K_TLS_TPOFF	32
+#define R_OR1K_TLS_DTPOFF	33
+#define R_OR1K_TLS_DTPMOD	34
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
diff --git a/src/tools/linux/core2md/core2md.cc b/src/tools/linux/core2md/core2md.cc
new file mode 100644
index 0000000..c3a9da3
--- /dev/null
+++ b/src/tools/linux/core2md/core2md.cc
@@ -0,0 +1,72 @@
+// Copyright (c) 2012, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// core2md.cc: A utility to convert an ELF core file to a minidump file.
+
+#include <stdio.h>
+
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "client/linux/minidump_writer/linux_core_dumper.h"
+
+using google_breakpad::AppMemoryList;
+using google_breakpad::MappingList;
+using google_breakpad::LinuxCoreDumper;
+
+static int ShowUsage(const char* argv0) {
+  fprintf(stderr, "Usage: %s <core file> <procfs dir> <output>\n", argv0);
+  return 1;
+}
+
+bool WriteMinidumpFromCore(const char* filename,
+                           const char* core_path,
+                           const char* procfs_override) {
+  MappingList mappings;
+  AppMemoryList memory_list;
+  LinuxCoreDumper dumper(0, core_path, procfs_override);
+  return google_breakpad::WriteMinidump(filename, mappings, memory_list,
+                                        &dumper);
+}
+
+int main(int argc, char *argv[]) {
+  if (argc != 4) {
+    return ShowUsage(argv[0]);
+  }
+
+  const char* core_file = argv[1];
+  const char* procfs_dir = argv[2];
+  const char* minidump_file = argv[3];
+  if (!WriteMinidumpFromCore(minidump_file,
+                             core_file,
+                             procfs_dir)) {
+    perror("core2md: Unable to generate minidump");
+    return 1;
+  }
+
+  return 0;
+}
diff --git a/src/tools/linux/core_handler/core_handler.cc b/src/tools/linux/core_handler/core_handler.cc
new file mode 100644
index 0000000..3148cc5
--- /dev/null
+++ b/src/tools/linux/core_handler/core_handler.cc
@@ -0,0 +1,146 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// core_handler.cc: A tool to handle coredumps on Linux
+
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <syslog.h>
+#include <unistd.h>
+#include <sstream>
+
+#include "client/linux/minidump_writer/linux_core_dumper.h"
+#include "client/linux/minidump_writer/minidump_writer.h"
+#include "common/scoped_ptr.h"
+
+namespace {
+
+using google_breakpad::AppMemoryList;
+using google_breakpad::LinuxCoreDumper;
+using google_breakpad::MappingList;
+using google_breakpad::scoped_array;
+
+// Size of the core dump to read in order to access all the threads
+// descriptions.
+//
+// The first section is the note0 section which contains the thread states. On
+// x86-64 a typical thread description take about 1432B. Reading 1 MB allows
+// several hundreds of threads.
+const int core_read_size = 1024 * 1024;
+
+void ShowUsage(const char* argv0) {
+  fprintf(stderr, "Usage: %s <process id> <minidump file>\n\n", argv0);
+  fprintf(stderr,
+          "A tool which serves as a core dump handler and produces "
+          "minidump files.\n");
+  fprintf(stderr, "Please refer to the online documentation:\n");
+  fprintf(stderr,
+          "https://chromium.googlesource.com/breakpad/breakpad/+/HEAD"
+          "/docs/linux_core_handler.md\n");
+}
+
+bool WriteMinidumpFromCore(const char* filename,
+                           const char* core_path,
+                           const char* procfs_override) {
+  MappingList mappings;
+  AppMemoryList memory_list;
+  LinuxCoreDumper dumper(0, core_path, procfs_override);
+  return google_breakpad::WriteMinidump(filename, mappings, memory_list,
+                                        &dumper);
+}
+
+bool HandleCrash(pid_t pid, const char* procfs_dir, const char* md_filename) {
+  int r = 0;
+  scoped_array<char> buf(new char[core_read_size]);
+  while (r != core_read_size) {
+    int ret = read(STDIN_FILENO, &buf[r], core_read_size - r);
+    if (ret == 0) {
+      break;
+    } else if (ret == -1) {
+      return false;
+    }
+    r += ret;
+  }
+
+  int fd = memfd_create("core_file", MFD_CLOEXEC);
+  if (fd == -1) {
+    return false;
+  }
+
+  int w = write(fd, &buf[0], r);
+  if (w != r) {
+    close(fd);
+    return false;
+  }
+
+  std::stringstream core_file_ss;
+  core_file_ss << "/proc/self/fd/" << fd;
+  std::string core_file(core_file_ss.str());
+
+  if (!WriteMinidumpFromCore(md_filename, core_file.c_str(), procfs_dir)) {
+    close(fd);
+    return false;
+  }
+  close(fd);
+
+  return true;
+}
+
+}  // namespace
+
+int main(int argc, char* argv[]) {
+  int ret = EXIT_FAILURE;
+
+  if (argc != 3) {
+    ShowUsage(argv[0]);
+    return ret;
+  }
+
+  const char* pid_str = argv[1];
+  const char* md_filename = argv[2];
+  pid_t pid = atoi(pid_str);
+
+  std::stringstream proc_dir_ss;
+  proc_dir_ss << "/proc/" << pid_str;
+  std::string proc_dir(proc_dir_ss.str());
+
+  openlog("core_handler", 0, 0);
+  if (HandleCrash(pid, proc_dir.c_str(), md_filename)) {
+    syslog(LOG_NOTICE, "Minidump generated at %s\n", md_filename);
+    ret = EXIT_SUCCESS;
+  } else {
+    syslog(LOG_ERR, "Cannot generate minidump %s\n", md_filename);
+  }
+  closelog();
+
+  return ret;
+}
diff --git a/src/tools/linux/dump_syms/dump_syms.cc b/src/tools/linux/dump_syms/dump_syms.cc
new file mode 100644
index 0000000..42e582c
--- /dev/null
+++ b/src/tools/linux/dump_syms/dump_syms.cc
@@ -0,0 +1,137 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <paths.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include <cstring>
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "common/linux/dump_symbols.h"
+
+using google_breakpad::WriteSymbolFile;
+using google_breakpad::WriteSymbolFileHeader;
+
+int usage(const char* self) {
+  fprintf(stderr, "Usage: %s [OPTION] <binary-with-debugging-info> "
+          "[directories-for-debug-file]\n\n", self);
+  fprintf(stderr, "Options:\n");
+  fprintf(stderr, "  -i:         Output module header information only.\n");
+  fprintf(stderr, "  -c          Do not generate CFI section\n");
+  fprintf(stderr, "  -r          Do not handle inter-compilation "
+                                 "unit references\n");
+  fprintf(stderr, "  -v          Print all warnings to stderr\n");
+  fprintf(stderr, "  -n <name>   Use specified name for name of the object\n");
+  fprintf(stderr, "  -o <os>     Use specified name for the "
+                                 "operating system\n");
+  return 1;
+}
+
+int main(int argc, char** argv) {
+  if (argc < 2)
+    return usage(argv[0]);
+  bool header_only = false;
+  bool cfi = true;
+  bool handle_inter_cu_refs = true;
+  bool log_to_stderr = false;
+  std::string obj_name;
+  const char* obj_os = "Linux";
+  int arg_index = 1;
+  while (arg_index < argc && strlen(argv[arg_index]) > 0 &&
+         argv[arg_index][0] == '-') {
+    if (strcmp("-i", argv[arg_index]) == 0) {
+      header_only = true;
+    } else if (strcmp("-c", argv[arg_index]) == 0) {
+      cfi = false;
+    } else if (strcmp("-r", argv[arg_index]) == 0) {
+      handle_inter_cu_refs = false;
+    } else if (strcmp("-v", argv[arg_index]) == 0) {
+      log_to_stderr = true;
+    } else if (strcmp("-n", argv[arg_index]) == 0) {
+      if (arg_index + 1 >= argc) {
+        fprintf(stderr, "Missing argument to -n\n");
+        return usage(argv[0]);
+      }
+      obj_name = argv[arg_index + 1];
+      ++arg_index;
+    } else if (strcmp("-o", argv[arg_index]) == 0) {
+      if (arg_index + 1 >= argc) {
+        fprintf(stderr, "Missing argument to -o\n");
+        return usage(argv[0]);
+      }
+      obj_os = argv[arg_index + 1];
+      ++arg_index;
+    } else {
+      printf("2.4 %s\n", argv[arg_index]);
+      return usage(argv[0]);
+    }
+    ++arg_index;
+  }
+  if (arg_index == argc)
+    return usage(argv[0]);
+  // Save stderr so it can be used below.
+  FILE* saved_stderr = fdopen(dup(fileno(stderr)), "w");
+  if (!log_to_stderr) {
+    if (freopen(_PATH_DEVNULL, "w", stderr)) {
+      // If it fails, not a lot we can (or should) do.
+      // Add this brace section to silence gcc warnings.
+    }
+  }
+  const char* binary;
+  std::vector<string> debug_dirs;
+  binary = argv[arg_index];
+  for (int debug_dir_index = arg_index + 1;
+       debug_dir_index < argc;
+       ++debug_dir_index) {
+    debug_dirs.push_back(argv[debug_dir_index]);
+  }
+
+  if (obj_name.empty())
+    obj_name = binary;
+
+  if (header_only) {
+    if (!WriteSymbolFileHeader(binary, obj_name, obj_os, std::cout)) {
+      fprintf(saved_stderr, "Failed to process file.\n");
+      return 1;
+    }
+  } else {
+    SymbolData symbol_data = cfi ? ALL_SYMBOL_DATA : NO_CFI;
+    google_breakpad::DumpOptions options(symbol_data, handle_inter_cu_refs);
+    if (!WriteSymbolFile(binary, obj_name, obj_os, debug_dirs, options,
+                         std::cout)) {
+      fprintf(saved_stderr, "Failed to write symbol file.\n");
+      return 1;
+    }
+  }
+
+  return 0;
+}
diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc
new file mode 100644
index 0000000..aade82c
--- /dev/null
+++ b/src/tools/linux/md2core/minidump-2-core.cc
@@ -0,0 +1,1428 @@
+// Copyright (c) 2009, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Converts a minidump file to a core file which gdb can read.
+// Large parts lifted from the userspace core dumper:
+//   http://code.google.com/p/google-coredumper/
+
+#include <elf.h>
+#include <errno.h>
+#include <limits.h>
+#include <link.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/user.h>
+#include <unistd.h>
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/linux/memory_mapped_file.h"
+#include "common/minidump_type_helper.h"
+#include "common/path_helper.h"
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/common/minidump_format.h"
+#include "third_party/lss/linux_syscall_support.h"
+#include "tools/linux/md2core/minidump_memory_range.h"
+
+#if ULONG_MAX == 0xffffffffffffffff
+  #define ELF_CLASS ELFCLASS64
+#else
+  #define ELF_CLASS ELFCLASS32
+#endif
+#define Ehdr   ElfW(Ehdr)
+#define Phdr   ElfW(Phdr)
+#define Shdr   ElfW(Shdr)
+#define Nhdr   ElfW(Nhdr)
+#define auxv_t ElfW(auxv_t)
+
+
+#if defined(__x86_64__)
+  #define ELF_ARCH  EM_X86_64
+#elif defined(__i386__)
+  #define ELF_ARCH  EM_386
+#elif defined(__arm__)
+  #define ELF_ARCH  EM_ARM
+#elif defined(__mips__)
+  #define ELF_ARCH  EM_MIPS
+#elif defined(__aarch64__)
+  #define ELF_ARCH  EM_AARCH64
+#endif
+
+#if defined(__arm__)
+// GLibc/ARM and Android/ARM both use 'user_regs' for the structure type
+// containing core registers, while they use 'user_regs_struct' on other
+// architectures. This file-local typedef simplifies the source code.
+typedef user_regs user_regs_struct;
+#elif defined (__mips__)
+// This file-local typedef simplifies the source code.
+typedef gregset_t user_regs_struct;
+#endif
+
+using google_breakpad::MDTypeHelper;
+using google_breakpad::MemoryMappedFile;
+using google_breakpad::MinidumpMemoryRange;
+
+typedef MDTypeHelper<sizeof(ElfW(Addr))>::MDRawDebug MDRawDebug;
+typedef MDTypeHelper<sizeof(ElfW(Addr))>::MDRawLinkMap MDRawLinkMap;
+
+static const MDRVA kInvalidMDRVA = static_cast<MDRVA>(-1);
+
+struct Options {
+  string minidump_path;
+  bool verbose;
+  int out_fd;
+  bool use_filename;
+  bool inc_guid;
+  string so_basedir;
+};
+
+static void
+Usage(int argc, const char* argv[]) {
+  fprintf(stderr,
+          "Usage: %s [options] <minidump file>\n"
+          "\n"
+          "Convert a minidump file into a core file (often for use by gdb).\n"
+          "\n"
+          "The shared library list will by default have filenames as the runtime expects.\n"
+          "There are many flags to control the output names though to make it easier to\n"
+          "integrate with your debug environment (e.g. gdb).\n"
+          " Default:    /lib64/libpthread.so.0\n"
+          " -f:         /lib64/libpthread-2.19.so\n"
+          " -i:         /lib64/<module id>-libpthread.so.0\n"
+          " -f -i:      /lib64/<module id>-libpthread-2.19.so\n"
+          " -S /foo/:   /foo/libpthread.so.0\n"
+          "\n"
+          "Options:\n"
+          "  -v         Enable verbose output\n"
+          "  -o <file>  Write coredump to specified file (otherwise use stdout).\n"
+          "  -f         Use the filename rather than the soname in the sharedlib list.\n"
+          "             The soname is what the runtime system uses, but the filename is\n"
+          "             how it's stored on disk.\n"
+          "  -i         Prefix sharedlib names with ID (when available).  This makes it\n"
+          "             easier to have a single directory full of symbols.\n"
+          "  -S <dir>   Set soname base directory.  This will force all debug/symbol\n"
+          "             lookups to be done in this directory rather than the filesystem\n"
+          "             layout as it exists in the crashing image.  This path should end\n"
+          "             with a slash if it's a directory.  e.g. /var/lib/breakpad/\n"
+          "", google_breakpad::BaseName(argv[0]).c_str());
+}
+
+static void
+SetupOptions(int argc, const char* argv[], Options* options) {
+  extern int optind;
+  int ch;
+  const char* output_file = NULL;
+
+  // Initialize the options struct as needed.
+  options->verbose = false;
+  options->use_filename = false;
+  options->inc_guid = false;
+
+  while ((ch = getopt(argc, (char * const*)argv, "fhio:S:v")) != -1) {
+    switch (ch) {
+      case 'h':
+        Usage(argc, argv);
+        exit(0);
+        break;
+      case '?':
+        Usage(argc, argv);
+        exit(1);
+        break;
+
+      case 'f':
+        options->use_filename = true;
+        break;
+      case 'i':
+        options->inc_guid = true;
+        break;
+      case 'o':
+        output_file = optarg;
+        break;
+      case 'S':
+        options->so_basedir = optarg;
+        break;
+      case 'v':
+        options->verbose = true;
+        break;
+    }
+  }
+
+  if ((argc - optind) != 1) {
+    fprintf(stderr, "%s: Missing minidump file\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  if (output_file == NULL || !strcmp(output_file, "-")) {
+    options->out_fd = STDOUT_FILENO;
+  } else {
+    options->out_fd = open(output_file, O_WRONLY|O_CREAT|O_TRUNC, 0664);
+    if (options->out_fd == -1) {
+      fprintf(stderr, "%s: could not open output %s: %s\n", argv[0],
+              output_file, strerror(errno));
+      exit(1);
+    }
+  }
+
+  options->minidump_path = argv[optind];
+}
+
+// Write all of the given buffer, handling short writes and EINTR. Return true
+// iff successful.
+static bool
+writea(int fd, const void* idata, size_t length) {
+  const uint8_t* data = (const uint8_t*) idata;
+
+  size_t done = 0;
+  while (done < length) {
+    ssize_t r;
+    do {
+      r = write(fd, data + done, length - done);
+    } while (r == -1 && errno == EINTR);
+
+    if (r < 1)
+      return false;
+    done += r;
+  }
+
+  return true;
+}
+
+/* Dynamically determines the byte sex of the system. Returns non-zero
+ * for big-endian machines.
+ */
+static inline int sex() {
+  int probe = 1;
+  return !*(char*)&probe;
+}
+
+typedef struct elf_timeval {    /* Time value with microsecond resolution    */
+  long tv_sec;                  /* Seconds                                   */
+  long tv_usec;                 /* Microseconds                              */
+} elf_timeval;
+
+typedef struct _elf_siginfo {   /* Information about signal (unused)         */
+  int32_t si_signo;             /* Signal number                             */
+  int32_t si_code;              /* Extra code                                */
+  int32_t si_errno;             /* Errno                                     */
+} _elf_siginfo;
+
+typedef struct prstatus {       /* Information about thread; includes CPU reg*/
+  _elf_siginfo   pr_info;       /* Info associated with signal               */
+  uint16_t       pr_cursig;     /* Current signal                            */
+  unsigned long  pr_sigpend;    /* Set of pending signals                    */
+  unsigned long  pr_sighold;    /* Set of held signals                       */
+  pid_t          pr_pid;        /* Process ID                                */
+  pid_t          pr_ppid;       /* Parent's process ID                       */
+  pid_t          pr_pgrp;       /* Group ID                                  */
+  pid_t          pr_sid;        /* Session ID                                */
+  elf_timeval    pr_utime;      /* User time                                 */
+  elf_timeval    pr_stime;      /* System time                               */
+  elf_timeval    pr_cutime;     /* Cumulative user time                      */
+  elf_timeval    pr_cstime;     /* Cumulative system time                    */
+  user_regs_struct pr_reg;      /* CPU registers                             */
+  uint32_t       pr_fpvalid;    /* True if math co-processor being used      */
+} prstatus;
+
+typedef struct prpsinfo {       /* Information about process                 */
+  unsigned char  pr_state;      /* Numeric process state                     */
+  char           pr_sname;      /* Char for pr_state                         */
+  unsigned char  pr_zomb;       /* Zombie                                    */
+  signed char    pr_nice;       /* Nice val                                  */
+  unsigned long  pr_flag;       /* Flags                                     */
+#if defined(__x86_64__) || defined(__mips__)
+  uint32_t       pr_uid;        /* User ID                                   */
+  uint32_t       pr_gid;        /* Group ID                                  */
+#else
+  uint16_t       pr_uid;        /* User ID                                   */
+  uint16_t       pr_gid;        /* Group ID                                  */
+#endif
+  pid_t          pr_pid;        /* Process ID                                */
+  pid_t          pr_ppid;       /* Parent's process ID                       */
+  pid_t          pr_pgrp;       /* Group ID                                  */
+  pid_t          pr_sid;        /* Session ID                                */
+  char           pr_fname[16];  /* Filename of executable                    */
+  char           pr_psargs[80]; /* Initial part of arg list                  */
+} prpsinfo;
+
+// We parse the minidump file and keep the parsed information in this structure
+struct CrashedProcess {
+  CrashedProcess()
+      : crashing_tid(-1),
+        auxv(NULL),
+        auxv_length(0) {
+    memset(&prps, 0, sizeof(prps));
+    prps.pr_sname = 'R';
+    memset(&debug, 0, sizeof(debug));
+  }
+
+  struct Mapping {
+    Mapping()
+      : permissions(0xFFFFFFFF),
+        start_address(0),
+        end_address(0),
+        offset(0) {
+    }
+
+    uint32_t permissions;
+    uint64_t start_address, end_address, offset;
+    // The name we write out to the core.
+    string filename;
+    string data;
+  };
+  std::map<uint64_t, Mapping> mappings;
+
+  pid_t crashing_tid;
+  int fatal_signal;
+
+  struct Thread {
+    pid_t tid;
+#if defined(__mips__)
+    mcontext_t mcontext;
+#else
+    user_regs_struct regs;
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+    user_fpregs_struct fpregs;
+#endif
+#if defined(__i386__)
+    user_fpxregs_struct fpxregs;
+#endif
+#if defined(__aarch64__)
+    user_fpsimd_struct fpregs;
+#endif
+    uintptr_t stack_addr;
+    const uint8_t* stack;
+    size_t stack_length;
+  };
+  std::vector<Thread> threads;
+
+  const uint8_t* auxv;
+  size_t auxv_length;
+
+  prpsinfo prps;
+
+  // The GUID/filename from MD_MODULE_LIST_STREAM entries.
+  // We gather them for merging later on into the list of maps.
+  struct Signature {
+    char guid[40];
+    string filename;
+  };
+  std::map<uintptr_t, Signature> signatures;
+
+  string dynamic_data;
+  MDRawDebug debug;
+  std::vector<MDRawLinkMap> link_map;
+};
+
+#if defined(__i386__)
+static uint32_t
+U32(const uint8_t* data) {
+  uint32_t v;
+  memcpy(&v, data, sizeof(v));
+  return v;
+}
+
+static uint16_t
+U16(const uint8_t* data) {
+  uint16_t v;
+  memcpy(&v, data, sizeof(v));
+  return v;
+}
+
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+                     const MinidumpMemoryRange& range) {
+  const MDRawContextX86* rawregs = range.GetData<MDRawContextX86>(0);
+
+  thread->regs.ebx = rawregs->ebx;
+  thread->regs.ecx = rawregs->ecx;
+  thread->regs.edx = rawregs->edx;
+  thread->regs.esi = rawregs->esi;
+  thread->regs.edi = rawregs->edi;
+  thread->regs.ebp = rawregs->ebp;
+  thread->regs.eax = rawregs->eax;
+  thread->regs.xds = rawregs->ds;
+  thread->regs.xes = rawregs->es;
+  thread->regs.xfs = rawregs->fs;
+  thread->regs.xgs = rawregs->gs;
+  thread->regs.orig_eax = rawregs->eax;
+  thread->regs.eip = rawregs->eip;
+  thread->regs.xcs = rawregs->cs;
+  thread->regs.eflags = rawregs->eflags;
+  thread->regs.esp = rawregs->esp;
+  thread->regs.xss = rawregs->ss;
+
+  thread->fpregs.cwd = rawregs->float_save.control_word;
+  thread->fpregs.swd = rawregs->float_save.status_word;
+  thread->fpregs.twd = rawregs->float_save.tag_word;
+  thread->fpregs.fip = rawregs->float_save.error_offset;
+  thread->fpregs.fcs = rawregs->float_save.error_selector;
+  thread->fpregs.foo = rawregs->float_save.data_offset;
+  thread->fpregs.fos = rawregs->float_save.data_selector;
+  memcpy(thread->fpregs.st_space, rawregs->float_save.register_area,
+         10 * 8);
+
+  thread->fpxregs.cwd = rawregs->float_save.control_word;
+  thread->fpxregs.swd = rawregs->float_save.status_word;
+  thread->fpxregs.twd = rawregs->float_save.tag_word;
+  thread->fpxregs.fop = U16(rawregs->extended_registers + 6);
+  thread->fpxregs.fip = U16(rawregs->extended_registers + 8);
+  thread->fpxregs.fcs = U16(rawregs->extended_registers + 12);
+  thread->fpxregs.foo = U16(rawregs->extended_registers + 16);
+  thread->fpxregs.fos = U16(rawregs->extended_registers + 20);
+  thread->fpxregs.mxcsr = U32(rawregs->extended_registers + 24);
+  memcpy(thread->fpxregs.st_space, rawregs->extended_registers + 32, 128);
+  memcpy(thread->fpxregs.xmm_space, rawregs->extended_registers + 160, 128);
+}
+#elif defined(__x86_64__)
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+                     const MinidumpMemoryRange& range) {
+  const MDRawContextAMD64* rawregs = range.GetData<MDRawContextAMD64>(0);
+
+  thread->regs.r15 = rawregs->r15;
+  thread->regs.r14 = rawregs->r14;
+  thread->regs.r13 = rawregs->r13;
+  thread->regs.r12 = rawregs->r12;
+  thread->regs.rbp = rawregs->rbp;
+  thread->regs.rbx = rawregs->rbx;
+  thread->regs.r11 = rawregs->r11;
+  thread->regs.r10 = rawregs->r10;
+  thread->regs.r9 = rawregs->r9;
+  thread->regs.r8 = rawregs->r8;
+  thread->regs.rax = rawregs->rax;
+  thread->regs.rcx = rawregs->rcx;
+  thread->regs.rdx = rawregs->rdx;
+  thread->regs.rsi = rawregs->rsi;
+  thread->regs.rdi = rawregs->rdi;
+  thread->regs.orig_rax = rawregs->rax;
+  thread->regs.rip = rawregs->rip;
+  thread->regs.cs  = rawregs->cs;
+  thread->regs.eflags = rawregs->eflags;
+  thread->regs.rsp = rawregs->rsp;
+  thread->regs.ss = rawregs->ss;
+  thread->regs.fs_base = 0;
+  thread->regs.gs_base = 0;
+  thread->regs.ds = rawregs->ds;
+  thread->regs.es = rawregs->es;
+  thread->regs.fs = rawregs->fs;
+  thread->regs.gs = rawregs->gs;
+
+  thread->fpregs.cwd = rawregs->flt_save.control_word;
+  thread->fpregs.swd = rawregs->flt_save.status_word;
+  thread->fpregs.ftw = rawregs->flt_save.tag_word;
+  thread->fpregs.fop = rawregs->flt_save.error_opcode;
+  thread->fpregs.rip = rawregs->flt_save.error_offset;
+  thread->fpregs.rdp = rawregs->flt_save.data_offset;
+  thread->fpregs.mxcsr = rawregs->flt_save.mx_csr;
+  thread->fpregs.mxcr_mask = rawregs->flt_save.mx_csr_mask;
+  memcpy(thread->fpregs.st_space, rawregs->flt_save.float_registers, 8 * 16);
+  memcpy(thread->fpregs.xmm_space, rawregs->flt_save.xmm_registers, 16 * 16);
+}
+#elif defined(__arm__)
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+                     const MinidumpMemoryRange& range) {
+  const MDRawContextARM* rawregs = range.GetData<MDRawContextARM>(0);
+
+  thread->regs.uregs[0] = rawregs->iregs[0];
+  thread->regs.uregs[1] = rawregs->iregs[1];
+  thread->regs.uregs[2] = rawregs->iregs[2];
+  thread->regs.uregs[3] = rawregs->iregs[3];
+  thread->regs.uregs[4] = rawregs->iregs[4];
+  thread->regs.uregs[5] = rawregs->iregs[5];
+  thread->regs.uregs[6] = rawregs->iregs[6];
+  thread->regs.uregs[7] = rawregs->iregs[7];
+  thread->regs.uregs[8] = rawregs->iregs[8];
+  thread->regs.uregs[9] = rawregs->iregs[9];
+  thread->regs.uregs[10] = rawregs->iregs[10];
+  thread->regs.uregs[11] = rawregs->iregs[11];
+  thread->regs.uregs[12] = rawregs->iregs[12];
+  thread->regs.uregs[13] = rawregs->iregs[13];
+  thread->regs.uregs[14] = rawregs->iregs[14];
+  thread->regs.uregs[15] = rawregs->iregs[15];
+
+  thread->regs.uregs[16] = rawregs->cpsr;
+  thread->regs.uregs[17] = 0;  // what is ORIG_r0 exactly?
+}
+#elif defined(__aarch64__)
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+                     const MinidumpMemoryRange& range) {
+#define COPY_REGS(rawregs)                                          \
+  do {                                                              \
+    for (int i = 0; i < 31; ++i)                                    \
+      thread->regs.regs[i] = rawregs->iregs[i];                     \
+    thread->regs.sp = rawregs->iregs[MD_CONTEXT_ARM64_REG_SP];      \
+    thread->regs.pc = rawregs->iregs[MD_CONTEXT_ARM64_REG_PC];      \
+    thread->regs.pstate = rawregs->cpsr;                            \
+                                                                    \
+    memcpy(thread->fpregs.vregs, rawregs->float_save.regs, 8 * 32); \
+    thread->fpregs.fpsr = rawregs->float_save.fpsr;                 \
+    thread->fpregs.fpcr = rawregs->float_save.fpcr;                 \
+  } while (false)
+
+  if (range.length() == sizeof(MDRawContextARM64_Old)) {
+    const MDRawContextARM64_Old* rawregs =
+        range.GetData<MDRawContextARM64_Old>(0);
+    COPY_REGS(rawregs);
+  } else {
+    const MDRawContextARM64* rawregs = range.GetData<MDRawContextARM64>(0);
+    COPY_REGS(rawregs);
+  }
+#undef COPY_REGS
+}
+#elif defined(__mips__)
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+                     const MinidumpMemoryRange& range) {
+  const MDRawContextMIPS* rawregs = range.GetData<MDRawContextMIPS>(0);
+
+  for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i)
+    thread->mcontext.gregs[i] = rawregs->iregs[i];
+
+  thread->mcontext.pc = rawregs->epc;
+
+  thread->mcontext.mdlo = rawregs->mdlo;
+  thread->mcontext.mdhi = rawregs->mdhi;
+
+  thread->mcontext.hi1 = rawregs->hi[0];
+  thread->mcontext.lo1 = rawregs->lo[0];
+  thread->mcontext.hi2 = rawregs->hi[1];
+  thread->mcontext.lo2 = rawregs->lo[1];
+  thread->mcontext.hi3 = rawregs->hi[2];
+  thread->mcontext.lo3 = rawregs->lo[2];
+
+  for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) {
+    thread->mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs =
+        rawregs->float_save.regs[i];
+  }
+
+  thread->mcontext.fpc_csr = rawregs->float_save.fpcsr;
+#if _MIPS_SIM == _ABIO32
+  thread->mcontext.fpc_eir = rawregs->float_save.fir;
+#endif
+}
+#else
+#error "This code has not been ported to your platform yet"
+#endif
+
+static void
+ParseThreadList(const Options& options, CrashedProcess* crashinfo,
+                const MinidumpMemoryRange& range,
+                const MinidumpMemoryRange& full_file) {
+  const uint32_t num_threads = *range.GetData<uint32_t>(0);
+  if (options.verbose) {
+    fprintf(stderr,
+            "MD_THREAD_LIST_STREAM:\n"
+            "Found %d threads\n"
+            "\n\n",
+            num_threads);
+  }
+  for (unsigned i = 0; i < num_threads; ++i) {
+    CrashedProcess::Thread thread;
+    memset(&thread, 0, sizeof(thread));
+    const MDRawThread* rawthread =
+        range.GetArrayElement<MDRawThread>(sizeof(uint32_t), i);
+    thread.tid = rawthread->thread_id;
+    thread.stack_addr = rawthread->stack.start_of_memory_range;
+    MinidumpMemoryRange stack_range =
+        full_file.Subrange(rawthread->stack.memory);
+    thread.stack = stack_range.data();
+    thread.stack_length = rawthread->stack.memory.data_size;
+
+    ParseThreadRegisters(&thread,
+                         full_file.Subrange(rawthread->thread_context));
+
+    crashinfo->threads.push_back(thread);
+  }
+}
+
+static void
+ParseSystemInfo(const Options& options, CrashedProcess* crashinfo,
+                const MinidumpMemoryRange& range,
+                const MinidumpMemoryRange& full_file) {
+  const MDRawSystemInfo* sysinfo = range.GetData<MDRawSystemInfo>(0);
+  if (!sysinfo) {
+    fprintf(stderr, "Failed to access MD_SYSTEM_INFO_STREAM\n");
+    exit(1);
+  }
+#if defined(__i386__)
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_X86) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports x86 (32bit)%s.\n",
+            sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_AMD64 ?
+            ",\nbut the minidump file is from a 64bit machine" : "");
+    exit(1);
+  }
+#elif defined(__x86_64__)
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_AMD64) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports x86 (64bit)%s.\n",
+            sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_X86 ?
+            ",\nbut the minidump file is from a 32bit machine" : "");
+    exit(1);
+  }
+#elif defined(__arm__)
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_ARM) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports ARM (32bit).\n");
+    exit(1);
+  }
+#elif defined(__aarch64__)
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_ARM64_OLD) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports ARM (64bit).\n");
+    exit(1);
+  }
+#elif defined(__mips__)
+# if _MIPS_SIM == _ABIO32
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_MIPS) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports mips o32 (32bit).\n");
+    exit(1);
+  }
+# elif _MIPS_SIM == _ABI64
+  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_MIPS64) {
+    fprintf(stderr,
+            "This version of minidump-2-core only supports mips n64 (64bit).\n");
+    exit(1);
+  }
+# else
+#  error "This mips ABI is currently not supported (n32)"
+# endif
+#else
+#error "This code has not been ported to your platform yet"
+#endif
+  if (!strstr(full_file.GetAsciiMDString(sysinfo->csd_version_rva).c_str(),
+              "Linux") &&
+      sysinfo->platform_id != MD_OS_NACL) {
+    fprintf(stderr, "This minidump was not generated by Linux or NaCl.\n");
+    exit(1);
+  }
+
+  if (options.verbose) {
+    fprintf(stderr,
+            "MD_SYSTEM_INFO_STREAM:\n"
+            "Architecture: %s\n"
+            "Number of processors: %d\n"
+            "Processor level: %d\n"
+            "Processor model: %d\n"
+            "Processor stepping: %d\n",
+            sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_X86
+            ? "i386"
+            : sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_AMD64
+            ? "x86-64"
+            : sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_ARM
+            ? "ARM"
+            : sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_MIPS
+            ? "MIPS"
+            : sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_MIPS64
+            ? "MIPS64"
+            : "???",
+            sysinfo->number_of_processors,
+            sysinfo->processor_level,
+            sysinfo->processor_revision >> 8,
+            sysinfo->processor_revision & 0xFF);
+    if (sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_X86 ||
+        sysinfo->processor_architecture == MD_CPU_ARCHITECTURE_AMD64) {
+      fputs("Vendor id: ", stderr);
+      const char *nul =
+        (const char*)memchr(sysinfo->cpu.x86_cpu_info.vendor_id, 0,
+                             sizeof(sysinfo->cpu.x86_cpu_info.vendor_id));
+      fwrite(sysinfo->cpu.x86_cpu_info.vendor_id,
+             nul ? nul - (const char*)&sysinfo->cpu.x86_cpu_info.vendor_id[0]
+             : sizeof(sysinfo->cpu.x86_cpu_info.vendor_id), 1, stderr);
+      fputs("\n", stderr);
+    }
+    fprintf(stderr, "OS: %s\n",
+            full_file.GetAsciiMDString(sysinfo->csd_version_rva).c_str());
+    fputs("\n\n", stderr);
+  }
+}
+
+static void
+ParseCPUInfo(const Options& options, CrashedProcess* crashinfo,
+             const MinidumpMemoryRange& range) {
+  if (options.verbose) {
+    fputs("MD_LINUX_CPU_INFO:\n", stderr);
+    fwrite(range.data(), range.length(), 1, stderr);
+    fputs("\n\n\n", stderr);
+  }
+}
+
+static void
+ParseProcessStatus(const Options& options, CrashedProcess* crashinfo,
+                   const MinidumpMemoryRange& range) {
+  if (options.verbose) {
+    fputs("MD_LINUX_PROC_STATUS:\n", stderr);
+    fwrite(range.data(), range.length(), 1, stderr);
+    fputs("\n\n", stderr);
+  }
+}
+
+static void
+ParseLSBRelease(const Options& options, CrashedProcess* crashinfo,
+                const MinidumpMemoryRange& range) {
+  if (options.verbose) {
+    fputs("MD_LINUX_LSB_RELEASE:\n", stderr);
+    fwrite(range.data(), range.length(), 1, stderr);
+    fputs("\n\n", stderr);
+  }
+}
+
+static void
+ParseMaps(const Options& options, CrashedProcess* crashinfo,
+          const MinidumpMemoryRange& range) {
+  if (options.verbose) {
+    fputs("MD_LINUX_MAPS:\n", stderr);
+    fwrite(range.data(), range.length(), 1, stderr);
+  }
+  for (const uint8_t* ptr = range.data();
+       ptr < range.data() + range.length();) {
+    const uint8_t* eol = (uint8_t*)memchr(ptr, '\n',
+                                       range.data() + range.length() - ptr);
+    string line((const char*)ptr,
+                eol ? eol - ptr : range.data() + range.length() - ptr);
+    ptr = eol ? eol + 1 : range.data() + range.length();
+    unsigned long long start, stop, offset;
+    char* permissions = NULL;
+    char* filename = NULL;
+    sscanf(line.c_str(), "%llx-%llx %m[-rwxp] %llx %*[:0-9a-f] %*d %ms",
+           &start, &stop, &permissions, &offset, &filename);
+    if (filename && *filename == '/') {
+      CrashedProcess::Mapping mapping;
+      mapping.permissions = 0;
+      if (strchr(permissions, 'r')) {
+        mapping.permissions |= PF_R;
+      }
+      if (strchr(permissions, 'w')) {
+        mapping.permissions |= PF_W;
+      }
+      if (strchr(permissions, 'x')) {
+        mapping.permissions |= PF_X;
+      }
+      mapping.start_address = start;
+      mapping.end_address = stop;
+      mapping.offset = offset;
+      if (filename) {
+        mapping.filename = filename;
+      }
+      crashinfo->mappings[mapping.start_address] = mapping;
+    }
+    free(permissions);
+    free(filename);
+  }
+  if (options.verbose) {
+    fputs("\n\n\n", stderr);
+  }
+}
+
+static void
+ParseEnvironment(const Options& options, CrashedProcess* crashinfo,
+                 const MinidumpMemoryRange& range) {
+  if (options.verbose) {
+    fputs("MD_LINUX_ENVIRON:\n", stderr);
+    char* env = new char[range.length()];
+    memcpy(env, range.data(), range.length());
+    int nul_count = 0;
+    for (char *ptr = env;;) {
+      ptr = (char*)memchr(ptr, '\000', range.length() - (ptr - env));
+      if (!ptr) {
+        break;
+      }
+      if (ptr > env && ptr[-1] == '\n') {
+        if (++nul_count > 5) {
+          // Some versions of Chrome try to rewrite the process' command line
+          // in a way that causes the environment to be corrupted. Afterwards,
+          // part of the environment will contain the trailing bit of the
+          // command line. The rest of the environment will be filled with
+          // NUL bytes.
+          // We detect this corruption by counting the number of consecutive
+          // NUL bytes. Normally, we would not expect any consecutive NUL
+          // bytes. But we are conservative and only suppress printing of
+          // the environment if we see at least five consecutive NULs.
+          fputs("Environment has been corrupted; no data available", stderr);
+          goto env_corrupted;
+        }
+      } else {
+        nul_count = 0;
+      }
+      *ptr = '\n';
+    }
+    fwrite(env, range.length(), 1, stderr);
+  env_corrupted:
+    delete[] env;
+    fputs("\n\n\n", stderr);
+  }
+}
+
+static void
+ParseAuxVector(const Options& options, CrashedProcess* crashinfo,
+               const MinidumpMemoryRange& range) {
+  // Some versions of Chrome erroneously used the MD_LINUX_AUXV stream value
+  // when dumping /proc/$x/maps
+  if (range.length() > 17) {
+    // The AUXV vector contains binary data, whereas the maps always begin
+    // with an 8+ digit hex address followed by a hyphen and another 8+ digit
+    // address.
+    char addresses[18];
+    memcpy(addresses, range.data(), 17);
+    addresses[17] = '\000';
+    if (strspn(addresses, "0123456789abcdef-") == 17) {
+      ParseMaps(options, crashinfo, range);
+      return;
+    }
+  }
+
+  crashinfo->auxv = range.data();
+  crashinfo->auxv_length = range.length();
+}
+
+static void
+ParseCmdLine(const Options& options, CrashedProcess* crashinfo,
+             const MinidumpMemoryRange& range) {
+  // The command line is supposed to use NUL bytes to separate arguments.
+  // As Chrome rewrites its own command line and (incorrectly) substitutes
+  // spaces, this is often not the case in our minidump files.
+  const char* cmdline = (const char*) range.data();
+  if (options.verbose) {
+    fputs("MD_LINUX_CMD_LINE:\n", stderr);
+    unsigned i = 0;
+    for (; i < range.length() && cmdline[i] && cmdline[i] != ' '; ++i) { }
+    fputs("argv[0] = \"", stderr);
+    fwrite(cmdline, i, 1, stderr);
+    fputs("\"\n", stderr);
+    for (unsigned j = ++i, argc = 1; j < range.length(); ++j) {
+      if (!cmdline[j] || cmdline[j] == ' ') {
+        fprintf(stderr, "argv[%d] = \"", argc++);
+        fwrite(cmdline + i, j - i, 1, stderr);
+        fputs("\"\n", stderr);
+        i = j + 1;
+      }
+    }
+    fputs("\n\n", stderr);
+  }
+
+  const char *binary_name = cmdline;
+  for (size_t i = 0; i < range.length(); ++i) {
+    if (cmdline[i] == '/') {
+      binary_name = cmdline + i + 1;
+    } else if (cmdline[i] == 0 || cmdline[i] == ' ') {
+      static const size_t fname_len = sizeof(crashinfo->prps.pr_fname) - 1;
+      static const size_t args_len = sizeof(crashinfo->prps.pr_psargs) - 1;
+      memset(crashinfo->prps.pr_fname, 0, fname_len + 1);
+      memset(crashinfo->prps.pr_psargs, 0, args_len + 1);
+      unsigned len = cmdline + i - binary_name;
+      memcpy(crashinfo->prps.pr_fname, binary_name,
+               len > fname_len ? fname_len : len);
+
+      len = range.length() > args_len ? args_len : range.length();
+      memcpy(crashinfo->prps.pr_psargs, cmdline, len);
+      for (unsigned j = 0; j < len; ++j) {
+        if (crashinfo->prps.pr_psargs[j] == 0)
+          crashinfo->prps.pr_psargs[j] = ' ';
+      }
+      break;
+    }
+  }
+}
+
+static void
+ParseDSODebugInfo(const Options& options, CrashedProcess* crashinfo,
+                  const MinidumpMemoryRange& range,
+                  const MinidumpMemoryRange& full_file) {
+  const MDRawDebug* debug = range.GetData<MDRawDebug>(0);
+  if (!debug) {
+    return;
+  }
+  if (options.verbose) {
+    fprintf(stderr,
+            "MD_LINUX_DSO_DEBUG:\n"
+            "Version: %d\n"
+            "Number of DSOs: %d\n"
+            "Brk handler: 0x%" PRIx64 "\n"
+            "Dynamic loader at: 0x%" PRIx64 "\n"
+            "_DYNAMIC: 0x%" PRIx64 "\n",
+            debug->version,
+            debug->dso_count,
+            static_cast<uint64_t>(debug->brk),
+            static_cast<uint64_t>(debug->ldbase),
+            static_cast<uint64_t>(debug->dynamic));
+  }
+  crashinfo->debug = *debug;
+  if (range.length() > sizeof(MDRawDebug)) {
+    char* dynamic_data = (char*)range.data() + sizeof(MDRawDebug);
+    crashinfo->dynamic_data.assign(dynamic_data,
+                                   range.length() - sizeof(MDRawDebug));
+  }
+  if (debug->map != kInvalidMDRVA) {
+    for (unsigned int i = 0; i < debug->dso_count; ++i) {
+      const MDRawLinkMap* link_map =
+          full_file.GetArrayElement<MDRawLinkMap>(debug->map, i);
+      if (link_map) {
+        if (options.verbose) {
+          fprintf(stderr,
+                  "#%03d: %" PRIx64 ", %" PRIx64 ", \"%s\"\n",
+                  i, static_cast<uint64_t>(link_map->addr),
+                  static_cast<uint64_t>(link_map->ld),
+                  full_file.GetAsciiMDString(link_map->name).c_str());
+        }
+        crashinfo->link_map.push_back(*link_map);
+      }
+    }
+  }
+  if (options.verbose) {
+    fputs("\n\n", stderr);
+  }
+}
+
+static void
+ParseExceptionStream(const Options& options, CrashedProcess* crashinfo,
+                     const MinidumpMemoryRange& range) {
+  const MDRawExceptionStream* exp = range.GetData<MDRawExceptionStream>(0);
+  crashinfo->crashing_tid = exp->thread_id;
+  crashinfo->fatal_signal = (int) exp->exception_record.exception_code;
+}
+
+static bool
+WriteThread(const Options& options, const CrashedProcess::Thread& thread,
+            int fatal_signal) {
+  struct prstatus pr;
+  memset(&pr, 0, sizeof(pr));
+
+  pr.pr_info.si_signo = fatal_signal;
+  pr.pr_cursig = fatal_signal;
+  pr.pr_pid = thread.tid;
+#if defined(__mips__)
+  memcpy(&pr.pr_reg, &thread.mcontext.gregs, sizeof(user_regs_struct));
+#else
+  memcpy(&pr.pr_reg, &thread.regs, sizeof(user_regs_struct));
+#endif
+
+  Nhdr nhdr;
+  memset(&nhdr, 0, sizeof(nhdr));
+  nhdr.n_namesz = 5;
+  nhdr.n_descsz = sizeof(struct prstatus);
+  nhdr.n_type = NT_PRSTATUS;
+  if (!writea(options.out_fd, &nhdr, sizeof(nhdr)) ||
+      !writea(options.out_fd, "CORE\0\0\0\0", 8) ||
+      !writea(options.out_fd, &pr, sizeof(struct prstatus))) {
+    return false;
+  }
+
+#if defined(__i386__) || defined(__x86_64__)
+  nhdr.n_descsz = sizeof(user_fpregs_struct);
+  nhdr.n_type = NT_FPREGSET;
+  if (!writea(options.out_fd, &nhdr, sizeof(nhdr)) ||
+      !writea(options.out_fd, "CORE\0\0\0\0", 8) ||
+      !writea(options.out_fd, &thread.fpregs, sizeof(user_fpregs_struct))) {
+    return false;
+  }
+#endif
+
+#if defined(__i386__)
+  nhdr.n_descsz = sizeof(user_fpxregs_struct);
+  nhdr.n_type = NT_PRXFPREG;
+  if (!writea(options.out_fd, &nhdr, sizeof(nhdr)) ||
+      !writea(options.out_fd, "LINUX\0\0\0", 8) ||
+      !writea(options.out_fd, &thread.fpxregs, sizeof(user_fpxregs_struct))) {
+    return false;
+  }
+#endif
+
+  return true;
+}
+
+static void
+ParseModuleStream(const Options& options, CrashedProcess* crashinfo,
+                  const MinidumpMemoryRange& range,
+                  const MinidumpMemoryRange& full_file) {
+  if (options.verbose) {
+    fputs("MD_MODULE_LIST_STREAM:\n", stderr);
+  }
+  const uint32_t num_mappings = *range.GetData<uint32_t>(0);
+  for (unsigned i = 0; i < num_mappings; ++i) {
+    CrashedProcess::Mapping mapping;
+    const MDRawModule* rawmodule = reinterpret_cast<const MDRawModule*>(
+        range.GetArrayElement(sizeof(uint32_t), MD_MODULE_SIZE, i));
+    mapping.start_address = rawmodule->base_of_image;
+    mapping.end_address = rawmodule->size_of_image + rawmodule->base_of_image;
+
+    if (crashinfo->mappings.find(mapping.start_address) ==
+        crashinfo->mappings.end()) {
+      // We prefer data from MD_LINUX_MAPS over MD_MODULE_LIST_STREAM, as
+      // the former is a strict superset of the latter.
+      crashinfo->mappings[mapping.start_address] = mapping;
+    }
+
+    const MDCVInfoPDB70* record = reinterpret_cast<const MDCVInfoPDB70*>(
+        full_file.GetData(rawmodule->cv_record.rva, MDCVInfoPDB70_minsize));
+    char guid[40];
+    sprintf(guid, "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
+            record->signature.data1, record->signature.data2,
+            record->signature.data3,
+            record->signature.data4[0], record->signature.data4[1],
+            record->signature.data4[2], record->signature.data4[3],
+            record->signature.data4[4], record->signature.data4[5],
+            record->signature.data4[6], record->signature.data4[7]);
+
+    string filename = full_file.GetAsciiMDString(rawmodule->module_name_rva);
+
+    CrashedProcess::Signature signature;
+    strcpy(signature.guid, guid);
+    signature.filename = filename;
+    crashinfo->signatures[rawmodule->base_of_image] = signature;
+
+    if (options.verbose) {
+      fprintf(stderr, "0x%" PRIx64 "-0x%" PRIx64 ", ChkSum: 0x%08X, GUID: %s, "
+              " \"%s\"\n",
+              rawmodule->base_of_image,
+              rawmodule->base_of_image + rawmodule->size_of_image,
+              rawmodule->checksum, guid, filename.c_str());
+    }
+  }
+  if (options.verbose) {
+    fputs("\n\n", stderr);
+  }
+}
+
+static void
+AddDataToMapping(CrashedProcess* crashinfo, const string& data,
+                 uintptr_t addr) {
+  for (std::map<uint64_t, CrashedProcess::Mapping>::iterator
+         iter = crashinfo->mappings.begin();
+       iter != crashinfo->mappings.end();
+       ++iter) {
+    if (addr >= iter->second.start_address &&
+        addr < iter->second.end_address) {
+      CrashedProcess::Mapping mapping = iter->second;
+      if ((addr & ~4095) != iter->second.start_address) {
+        // If there are memory pages in the mapping prior to where the
+        // data starts, truncate the existing mapping so that it ends with
+        // the page immediately preceding the data region.
+        iter->second.end_address = addr & ~4095;
+        if (!mapping.filename.empty()) {
+          // "mapping" is a copy of "iter->second". We are splitting the
+          // existing mapping into two separate ones when we write the data
+          // to the core file. The first one does not have any associated
+          // data in the core file, the second one is backed by data that is
+          // included with the core file.
+          // If this mapping wasn't supposed to be anonymous, then we also
+          // have to update the file offset upon splitting the mapping.
+          mapping.offset += iter->second.end_address -
+            iter->second.start_address;
+        }
+      }
+      // Create a new mapping that contains the data contents. We often
+      // limit the amount of data that is actually written to the core
+      // file. But it is OK if the mapping itself extends past the end of
+      // the data.
+      mapping.start_address = addr & ~4095;
+      mapping.data.assign(addr & 4095, 0).append(data);
+      mapping.data.append(-mapping.data.size() & 4095, 0);
+      crashinfo->mappings[mapping.start_address] = mapping;
+      return;
+    }
+  }
+  // Didn't find a suitable existing mapping for the data. Create a new one.
+  CrashedProcess::Mapping mapping;
+  mapping.permissions = PF_R | PF_W;
+  mapping.start_address = addr & ~4095;
+  mapping.end_address =
+    (addr + data.size() + 4095) & ~4095;
+  mapping.data.assign(addr & 4095, 0).append(data);
+  mapping.data.append(-mapping.data.size() & 4095, 0);
+  crashinfo->mappings[mapping.start_address] = mapping;
+}
+
+static void
+AugmentMappings(const Options& options, CrashedProcess* crashinfo,
+                const MinidumpMemoryRange& full_file) {
+  // For each thread, find the memory mapping that matches the thread's stack.
+  // Then adjust the mapping to include the stack dump.
+  for (unsigned i = 0; i < crashinfo->threads.size(); ++i) {
+    const CrashedProcess::Thread& thread = crashinfo->threads[i];
+    AddDataToMapping(crashinfo,
+                     string((char*)thread.stack, thread.stack_length),
+                     thread.stack_addr);
+  }
+
+  // Create a new link map with information about DSOs. We move this map to
+  // the beginning of the address space, as this area should always be
+  // available.
+  static const uintptr_t start_addr = 4096;
+  string data;
+  struct r_debug debug = { 0 };
+  debug.r_version = crashinfo->debug.version;
+  debug.r_brk = (ElfW(Addr))crashinfo->debug.brk;
+  debug.r_state = r_debug::RT_CONSISTENT;
+  debug.r_ldbase = (ElfW(Addr))crashinfo->debug.ldbase;
+  debug.r_map = crashinfo->debug.dso_count > 0 ?
+    (struct link_map*)(start_addr + sizeof(debug)) : 0;
+  data.append((char*)&debug, sizeof(debug));
+
+  struct link_map* prev = 0;
+  for (std::vector<MDRawLinkMap>::iterator iter = crashinfo->link_map.begin();
+       iter != crashinfo->link_map.end();
+       ++iter) {
+    struct link_map link_map = { 0 };
+    link_map.l_addr = (ElfW(Addr))iter->addr;
+    link_map.l_name = (char*)(start_addr + data.size() + sizeof(link_map));
+    link_map.l_ld = (ElfW(Dyn)*)iter->ld;
+    link_map.l_prev = prev;
+    prev = (struct link_map*)(start_addr + data.size());
+    string filename = full_file.GetAsciiMDString(iter->name);
+
+    // Look up signature for this filename. If available, change filename
+    // to point to GUID, instead.
+    std::map<uintptr_t, CrashedProcess::Signature>::const_iterator sig =
+      crashinfo->signatures.find((uintptr_t)iter->addr);
+    if (sig != crashinfo->signatures.end()) {
+      // At this point, we have:
+      // old_filename: The path as found via SONAME (e.g. /lib/libpthread.so.0).
+      // sig_filename: The path on disk (e.g. /lib/libpthread-2.19.so).
+      const char* guid = sig->second.guid;
+      string sig_filename = sig->second.filename;
+      string old_filename = filename.empty() ? sig_filename : filename;
+      string new_filename;
+
+      // First set up the leading path.  We assume dirname always ends with a
+      // trailing slash (as needed), so we won't be appending one manually.
+      if (options.so_basedir.empty()) {
+        string dirname;
+        if (options.use_filename) {
+          dirname = sig_filename;
+        } else {
+          dirname = old_filename;
+        }
+        size_t slash = dirname.find_last_of('/');
+        if (slash != string::npos) {
+          new_filename = dirname.substr(0, slash + 1);
+        }
+      } else {
+        new_filename = options.so_basedir;
+      }
+
+      // Insert the module ID if requested.
+      if (options.inc_guid &&
+          strcmp(guid, "00000000-0000-0000-0000-000000000000") != 0) {
+        new_filename += guid;
+        new_filename += "-";
+      }
+
+      // Decide whether we use the filename or the SONAME (where the SONAME tends
+      // to be a symlink to the actual file).
+      new_filename += google_breakpad::BaseName(
+          options.use_filename ? sig_filename : old_filename);
+
+      if (filename != new_filename) {
+        if (options.verbose) {
+          fprintf(stderr, "0x%" PRIx64": rewriting mapping \"%s\" to \"%s\"\n",
+                  static_cast<uint64_t>(link_map.l_addr),
+                  filename.c_str(), new_filename.c_str());
+        }
+        filename = new_filename;
+      }
+    }
+
+    if (std::distance(iter, crashinfo->link_map.end()) == 1) {
+      link_map.l_next = 0;
+    } else {
+      link_map.l_next = (struct link_map*)(start_addr + data.size() +
+                                           sizeof(link_map) +
+                                           ((filename.size() + 8) & ~7));
+    }
+    data.append((char*)&link_map, sizeof(link_map));
+    data.append(filename);
+    data.append(8 - (filename.size() & 7), 0);
+  }
+  AddDataToMapping(crashinfo, data, start_addr);
+
+  // Map the page containing the _DYNAMIC array
+  if (!crashinfo->dynamic_data.empty()) {
+    // Make _DYNAMIC DT_DEBUG entry point to our link map
+    for (int i = 0;; ++i) {
+      ElfW(Dyn) dyn;
+      if ((i+1)*sizeof(dyn) > crashinfo->dynamic_data.length()) {
+      no_dt_debug:
+        if (options.verbose) {
+          fprintf(stderr, "No DT_DEBUG entry found\n");
+        }
+        return;
+      }
+      memcpy(&dyn, crashinfo->dynamic_data.c_str() + i*sizeof(dyn),
+             sizeof(dyn));
+      if (dyn.d_tag == DT_DEBUG) {
+        crashinfo->dynamic_data.replace(i*sizeof(dyn) +
+                                       offsetof(ElfW(Dyn), d_un.d_ptr),
+                                       sizeof(start_addr),
+                                       (char*)&start_addr, sizeof(start_addr));
+        break;
+      } else if (dyn.d_tag == DT_NULL) {
+        goto no_dt_debug;
+      }
+    }
+    AddDataToMapping(crashinfo, crashinfo->dynamic_data,
+                     (uintptr_t)crashinfo->debug.dynamic);
+  }
+}
+
+int
+main(int argc, const char* argv[]) {
+  Options options;
+  SetupOptions(argc, argv, &options);
+
+  MemoryMappedFile mapped_file(options.minidump_path.c_str(), 0);
+  if (!mapped_file.data()) {
+    fprintf(stderr, "Failed to mmap dump file: %s: %s\n",
+            options.minidump_path.c_str(), strerror(errno));
+    return 1;
+  }
+
+  MinidumpMemoryRange dump(mapped_file.data(), mapped_file.size());
+
+  const MDRawHeader* header = dump.GetData<MDRawHeader>(0);
+
+  CrashedProcess crashinfo;
+
+  // Always check the system info first, as that allows us to tell whether
+  // this is a minidump file that is compatible with our converter.
+  bool ok = false;
+  for (unsigned i = 0; i < header->stream_count; ++i) {
+    const MDRawDirectory* dirent =
+        dump.GetArrayElement<MDRawDirectory>(header->stream_directory_rva, i);
+    switch (dirent->stream_type) {
+      case MD_SYSTEM_INFO_STREAM:
+        ParseSystemInfo(options, &crashinfo, dump.Subrange(dirent->location),
+                        dump);
+        ok = true;
+        break;
+      default:
+        break;
+    }
+  }
+  if (!ok) {
+    fprintf(stderr, "Cannot determine input file format.\n");
+    exit(1);
+  }
+
+  for (unsigned i = 0; i < header->stream_count; ++i) {
+    const MDRawDirectory* dirent =
+        dump.GetArrayElement<MDRawDirectory>(header->stream_directory_rva, i);
+    switch (dirent->stream_type) {
+      case MD_THREAD_LIST_STREAM:
+        ParseThreadList(options, &crashinfo, dump.Subrange(dirent->location),
+                        dump);
+        break;
+      case MD_LINUX_CPU_INFO:
+        ParseCPUInfo(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_PROC_STATUS:
+        ParseProcessStatus(options, &crashinfo,
+                           dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_LSB_RELEASE:
+        ParseLSBRelease(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_ENVIRON:
+        ParseEnvironment(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_MAPS:
+        ParseMaps(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_AUXV:
+        ParseAuxVector(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_CMD_LINE:
+        ParseCmdLine(options, &crashinfo, dump.Subrange(dirent->location));
+        break;
+      case MD_LINUX_DSO_DEBUG:
+        ParseDSODebugInfo(options, &crashinfo, dump.Subrange(dirent->location),
+                          dump);
+        break;
+      case MD_EXCEPTION_STREAM:
+        ParseExceptionStream(options, &crashinfo,
+                             dump.Subrange(dirent->location));
+        break;
+      case MD_MODULE_LIST_STREAM:
+        ParseModuleStream(options, &crashinfo, dump.Subrange(dirent->location),
+                          dump);
+        break;
+      default:
+        if (options.verbose)
+          fprintf(stderr, "Skipping %x\n", dirent->stream_type);
+    }
+  }
+
+  AugmentMappings(options, &crashinfo, dump);
+
+  // Write the ELF header. The file will look like:
+  //   ELF header
+  //   Phdr for the PT_NOTE
+  //   Phdr for each of the thread stacks
+  //   PT_NOTE
+  //   each of the thread stacks
+  Ehdr ehdr;
+  memset(&ehdr, 0, sizeof(Ehdr));
+  ehdr.e_ident[0] = ELFMAG0;
+  ehdr.e_ident[1] = ELFMAG1;
+  ehdr.e_ident[2] = ELFMAG2;
+  ehdr.e_ident[3] = ELFMAG3;
+  ehdr.e_ident[4] = ELF_CLASS;
+  ehdr.e_ident[5] = sex() ? ELFDATA2MSB : ELFDATA2LSB;
+  ehdr.e_ident[6] = EV_CURRENT;
+  ehdr.e_type     = ET_CORE;
+  ehdr.e_machine  = ELF_ARCH;
+  ehdr.e_version  = EV_CURRENT;
+  ehdr.e_phoff    = sizeof(Ehdr);
+  ehdr.e_ehsize   = sizeof(Ehdr);
+  ehdr.e_phentsize= sizeof(Phdr);
+  ehdr.e_phnum    = 1 +                         // PT_NOTE
+                    crashinfo.mappings.size();  // memory mappings
+  ehdr.e_shentsize= sizeof(Shdr);
+  if (!writea(options.out_fd, &ehdr, sizeof(Ehdr)))
+    return 1;
+
+  size_t offset = sizeof(Ehdr) + ehdr.e_phnum * sizeof(Phdr);
+  size_t filesz = sizeof(Nhdr) + 8 + sizeof(prpsinfo) +
+                  // sizeof(Nhdr) + 8 + sizeof(user) +
+                  sizeof(Nhdr) + 8 + crashinfo.auxv_length +
+                  crashinfo.threads.size() * (
+                    (sizeof(Nhdr) + 8 + sizeof(prstatus))
+#if defined(__i386__) || defined(__x86_64__)
+                   + sizeof(Nhdr) + 8 + sizeof(user_fpregs_struct)
+#endif
+#if defined(__i386__)
+                   + sizeof(Nhdr) + 8 + sizeof(user_fpxregs_struct)
+#endif
+                    );
+
+  Phdr phdr;
+  memset(&phdr, 0, sizeof(Phdr));
+  phdr.p_type = PT_NOTE;
+  phdr.p_offset = offset;
+  phdr.p_filesz = filesz;
+  if (!writea(options.out_fd, &phdr, sizeof(phdr)))
+    return 1;
+
+  phdr.p_type = PT_LOAD;
+  phdr.p_align = 4096;
+  size_t note_align = phdr.p_align - ((offset+filesz) % phdr.p_align);
+  if (note_align == phdr.p_align)
+    note_align = 0;
+  offset += note_align;
+
+  for (std::map<uint64_t, CrashedProcess::Mapping>::const_iterator iter =
+         crashinfo.mappings.begin();
+       iter != crashinfo.mappings.end(); ++iter) {
+    const CrashedProcess::Mapping& mapping = iter->second;
+    if (mapping.permissions == 0xFFFFFFFF) {
+      // This is a map that we found in MD_MODULE_LIST_STREAM (as opposed to
+      // MD_LINUX_MAPS). It lacks some of the information that we would like
+      // to include.
+      phdr.p_flags = PF_R;
+    } else {
+      phdr.p_flags = mapping.permissions;
+    }
+    phdr.p_vaddr = mapping.start_address;
+    phdr.p_memsz = mapping.end_address - mapping.start_address;
+    if (mapping.data.size()) {
+      offset += filesz;
+      filesz = mapping.data.size();
+      phdr.p_filesz = mapping.data.size();
+      phdr.p_offset = offset;
+    } else {
+      phdr.p_filesz = 0;
+      phdr.p_offset = 0;
+    }
+    if (!writea(options.out_fd, &phdr, sizeof(phdr)))
+      return 1;
+  }
+
+  Nhdr nhdr;
+  memset(&nhdr, 0, sizeof(nhdr));
+  nhdr.n_namesz = 5;
+  nhdr.n_descsz = sizeof(prpsinfo);
+  nhdr.n_type = NT_PRPSINFO;
+  if (!writea(options.out_fd, &nhdr, sizeof(nhdr)) ||
+      !writea(options.out_fd, "CORE\0\0\0\0", 8) ||
+      !writea(options.out_fd, &crashinfo.prps, sizeof(prpsinfo))) {
+    return 1;
+  }
+
+  nhdr.n_descsz = crashinfo.auxv_length;
+  nhdr.n_type = NT_AUXV;
+  if (!writea(options.out_fd, &nhdr, sizeof(nhdr)) ||
+      !writea(options.out_fd, "CORE\0\0\0\0", 8) ||
+      !writea(options.out_fd, crashinfo.auxv, crashinfo.auxv_length)) {
+    return 1;
+  }
+
+  for (unsigned i = 0; i < crashinfo.threads.size(); ++i) {
+    if (crashinfo.threads[i].tid == crashinfo.crashing_tid) {
+      WriteThread(options, crashinfo.threads[i], crashinfo.fatal_signal);
+      break;
+    }
+  }
+
+  for (unsigned i = 0; i < crashinfo.threads.size(); ++i) {
+    if (crashinfo.threads[i].tid != crashinfo.crashing_tid)
+      WriteThread(options, crashinfo.threads[i], 0);
+  }
+
+  if (note_align) {
+    google_breakpad::scoped_array<char> scratch(new char[note_align]);
+    memset(scratch.get(), 0, note_align);
+    if (!writea(options.out_fd, scratch.get(), note_align))
+      return 1;
+  }
+
+  for (std::map<uint64_t, CrashedProcess::Mapping>::const_iterator iter =
+         crashinfo.mappings.begin();
+       iter != crashinfo.mappings.end(); ++iter) {
+    const CrashedProcess::Mapping& mapping = iter->second;
+    if (mapping.data.size()) {
+      if (!writea(options.out_fd, mapping.data.c_str(), mapping.data.size()))
+        return 1;
+    }
+  }
+
+  if (options.out_fd != STDOUT_FILENO) {
+    close(options.out_fd);
+  }
+
+  return 0;
+}
diff --git a/src/tools/linux/md2core/minidump_memory_range.h b/src/tools/linux/md2core/minidump_memory_range.h
new file mode 100644
index 0000000..a793e2c
--- /dev/null
+++ b/src/tools/linux/md2core/minidump_memory_range.h
@@ -0,0 +1,89 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_memory_range.h: Define the google_breakpad::MinidumpMemoryRange
+// class, which adds methods for handling minidump specific data structures
+// on top of google_breakpad::MemoryRange. See common/memory_range.h for
+// more details on MemoryRange.
+
+#ifndef TOOLS_LINUX_MD2CORE_MINIDUMP_MEMORY_RANGE_H_
+#define TOOLS_LINUX_MD2CORE_MINIDUMP_MEMORY_RANGE_H_
+
+#include <string>
+
+#include "common/memory_range.h"
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+// A derived class of MemoryRange with added methods for handling minidump
+// specific data structures. To avoid virtual functions, it is not designed
+// to be used polymorphically.
+class MinidumpMemoryRange : public MemoryRange {
+ public:
+  MinidumpMemoryRange() {}
+
+  MinidumpMemoryRange(const void* data, size_t length)
+      : MemoryRange(data, length) {}
+
+  // Returns a subrange of |length| bytes at |offset| bytes of this memory
+  // range, or an empty range if the subrange is out of bounds.
+  // This methods overrides the base implemementation in order to return
+  // an instance of MinidumpMemoryRange instead of MemoryRange.
+  MinidumpMemoryRange Subrange(size_t sub_offset, size_t sub_length) const {
+    if (Covers(sub_offset, sub_length))
+      return MinidumpMemoryRange(data() + sub_offset, sub_length);
+    return MinidumpMemoryRange();
+  }
+
+  // Returns a subrange that covers the offset and length specified by
+  // |location|, or an empty range if the subrange is out of bounds.
+  MinidumpMemoryRange Subrange(const MDLocationDescriptor& location) const {
+    return MinidumpMemoryRange::Subrange(location.rva, location.data_size);
+  }
+
+  // Gets a STL string from a MDString at |sub_offset| bytes of this memory
+  // range. This method only works correctly for ASCII characters and does
+  // not convert between UTF-16 and UTF-8.
+  const std::string GetAsciiMDString(size_t sub_offset) const {
+    std::string str;
+    const MDString* md_str = GetData<MDString>(sub_offset);
+    if (md_str) {
+      const uint16_t* buffer = &md_str->buffer[0];
+      for (uint32_t i = 0; i < md_str->length && buffer[i]; ++i) {
+        str.push_back(buffer[i]);
+      }
+    }
+    return str;
+  }
+};
+
+}  // namespace google_breakpad
+
+#endif  // TOOLS_LINUX_MD2CORE_MINIDUMP_MEMORY_RANGE_H_
diff --git a/src/tools/linux/md2core/minidump_memory_range_unittest.cc b/src/tools/linux/md2core/minidump_memory_range_unittest.cc
new file mode 100644
index 0000000..fe4ded8
--- /dev/null
+++ b/src/tools/linux/md2core/minidump_memory_range_unittest.cc
@@ -0,0 +1,258 @@
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_memory_range_unittest.cc:
+// Unit tests for google_breakpad::MinidumpMemoryRange.
+
+#include "breakpad_googletest_includes.h"
+#include "tools/linux/md2core/minidump_memory_range.h"
+
+using google_breakpad::MinidumpMemoryRange;
+using testing::Message;
+
+namespace {
+
+const uint32_t kBuffer[10] = { 0 };
+const size_t kBufferSize = sizeof(kBuffer);
+const uint8_t* kBufferPointer = reinterpret_cast<const uint8_t*>(kBuffer);
+
+// Test vectors for verifying Covers, GetData, and Subrange.
+const struct {
+  bool valid;
+  size_t offset;
+  size_t length;
+} kSubranges[] = {
+  { true, 0, 0 },
+  { true, 0, 2 },
+  { true, 0, kBufferSize },
+  { true, 2, 0 },
+  { true, 2, 4 },
+  { true, 2, kBufferSize - 2 },
+  { true, kBufferSize - 1, 1 },
+  { false, kBufferSize, 0 },
+  { false, kBufferSize, static_cast<size_t>(-1) },
+  { false, kBufferSize + 1, 0 },
+  { false, static_cast<size_t>(-1), 2 },
+  { false, 1, kBufferSize },
+  { false, kBufferSize - 1, 2 },
+  { false, 0, static_cast<size_t>(-1) },
+  { false, 1, static_cast<size_t>(-1) },
+};
+const size_t kNumSubranges = sizeof(kSubranges) / sizeof(kSubranges[0]);
+
+// Test vectors for verifying GetArrayElement.
+const struct {
+  size_t offset;
+  size_t size;
+  size_t index;
+  const void* const pointer;
+} kElements[] = {
+  // Valid array elemenets
+  { 0, 1, 0, kBufferPointer },
+  { 0, 1, 1, kBufferPointer + 1 },
+  { 0, 1, kBufferSize - 1, kBufferPointer + kBufferSize - 1 },
+  { 0, 2, 1, kBufferPointer + 2 },
+  { 0, 4, 2, kBufferPointer + 8 },
+  { 0, 4, 9, kBufferPointer + 36 },
+  { kBufferSize - 1, 1, 0, kBufferPointer + kBufferSize - 1 },
+  // Invalid array elemenets
+  { 0, 1, kBufferSize, NULL },
+  { 0, 4, 10, NULL },
+  { kBufferSize - 1, 1, 1, NULL },
+  { kBufferSize - 1, 2, 0, NULL },
+  { kBufferSize, 1, 0, NULL },
+};
+const size_t kNumElements = sizeof(kElements) / sizeof(kElements[0]);
+
+}  // namespace
+
+TEST(MinidumpMemoryRangeTest, DefaultConstructor) {
+  MinidumpMemoryRange range;
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MinidumpMemoryRangeTest, ConstructorWithDataAndLength) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+}
+
+TEST(MinidumpMemoryRangeTest, Reset) {
+  MinidumpMemoryRange range;
+  range.Reset();
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+
+  range.Set(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+
+  range.Reset();
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MinidumpMemoryRangeTest, Set) {
+  MinidumpMemoryRange range;
+  range.Set(kBuffer, kBufferSize);
+  EXPECT_EQ(kBufferPointer, range.data());
+  EXPECT_EQ(kBufferSize, range.length());
+
+  range.Set(NULL, 0);
+  EXPECT_EQ(NULL, range.data());
+  EXPECT_EQ(0U, range.length());
+}
+
+TEST(MinidumpMemoryRangeTest, SubrangeOfEmptyMemoryRange) {
+  MinidumpMemoryRange range;
+  MinidumpMemoryRange subrange = range.Subrange(0, 10);
+  EXPECT_EQ(NULL, subrange.data());
+  EXPECT_EQ(0U, subrange.length());
+}
+
+TEST(MinidumpMemoryRangeTest, SubrangeAndGetData) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  for (size_t i = 0; i < kNumSubranges; ++i) {
+    bool valid = kSubranges[i].valid;
+    size_t sub_offset = kSubranges[i].offset;
+    size_t sub_length = kSubranges[i].length;
+    SCOPED_TRACE(Message() << "offset=" << sub_offset
+                 << ", length=" << sub_length);
+
+    MinidumpMemoryRange subrange = range.Subrange(sub_offset, sub_length);
+    if (valid) {
+      EXPECT_TRUE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset,
+                range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset, subrange.data());
+      EXPECT_EQ(sub_length, subrange.length());
+    } else {
+      EXPECT_FALSE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(NULL, range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(NULL, subrange.data());
+      EXPECT_EQ(0U, subrange.length());
+    }
+  }
+}
+
+TEST(MinidumpMemoryRangeTest, SubrangeWithMDLocationDescriptor) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  for (size_t i = 0; i < kNumSubranges; ++i) {
+    bool valid = kSubranges[i].valid;
+    size_t sub_offset = kSubranges[i].offset;
+    size_t sub_length = kSubranges[i].length;
+    SCOPED_TRACE(Message() << "offset=" << sub_offset
+                 << ", length=" << sub_length);
+
+    MDLocationDescriptor location;
+    location.rva = sub_offset;
+    location.data_size = sub_length;
+    MinidumpMemoryRange subrange = range.Subrange(location);
+    if (valid) {
+      EXPECT_TRUE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset,
+                range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(kBufferPointer + sub_offset, subrange.data());
+      EXPECT_EQ(sub_length, subrange.length());
+    } else {
+      EXPECT_FALSE(range.Covers(sub_offset, sub_length));
+      EXPECT_EQ(NULL, range.GetData(sub_offset, sub_length));
+      EXPECT_EQ(NULL, subrange.data());
+      EXPECT_EQ(0U, subrange.length());
+    }
+  }
+}
+
+TEST(MinidumpMemoryRangeTest, GetDataWithTemplateType) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  const char* char_pointer = range.GetData<char>(0);
+  EXPECT_EQ(reinterpret_cast<const char*>(kBufferPointer), char_pointer);
+  const int* int_pointer = range.GetData<int>(0);
+  EXPECT_EQ(reinterpret_cast<const int*>(kBufferPointer), int_pointer);
+}
+
+TEST(MinidumpMemoryRangeTest, GetArrayElement) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  for (size_t i = 0; i < kNumElements; ++i) {
+    size_t element_offset = kElements[i].offset;
+    size_t element_size = kElements[i].size;
+    unsigned element_index = kElements[i].index;
+    const void* const element_pointer = kElements[i].pointer;
+    SCOPED_TRACE(Message() << "offset=" << element_offset
+                 << ", size=" << element_size
+                 << ", index=" << element_index);
+    EXPECT_EQ(element_pointer, range.GetArrayElement(
+        element_offset, element_size, element_index));
+  }
+}
+
+TEST(MinidumpMemoryRangeTest, GetArrayElmentWithTemplateType) {
+  MinidumpMemoryRange range(kBuffer, kBufferSize);
+  const char* char_pointer = range.GetArrayElement<char>(0, 0);
+  EXPECT_EQ(reinterpret_cast<const char*>(kBufferPointer), char_pointer);
+  const int* int_pointer = range.GetArrayElement<int>(0, 0);
+  EXPECT_EQ(reinterpret_cast<const int*>(kBufferPointer), int_pointer);
+}
+
+TEST(MinidumpMemoryRangeTest, GetAsciiMDString) {
+  uint8_t buffer[100] = { 0 };
+
+  MDString* md_str = reinterpret_cast<MDString*>(buffer);
+  md_str->length = 4;
+  md_str->buffer[0] = 'T';
+  md_str->buffer[1] = 'e';
+  md_str->buffer[2] = 's';
+  md_str->buffer[3] = 't';
+  md_str->buffer[4] = '\0';
+
+  size_t str2_offset =
+      sizeof(MDString) + (md_str->length + 1) * sizeof(uint16_t);
+
+  md_str = reinterpret_cast<MDString*>(buffer + str2_offset);
+  md_str->length = 9;  // Test length larger than actual string
+  md_str->buffer[0] = 'S';
+  md_str->buffer[1] = 't';
+  md_str->buffer[2] = 'r';
+  md_str->buffer[3] = 'i';
+  md_str->buffer[4] = 'n';
+  md_str->buffer[5] = 'g';
+  md_str->buffer[6] = '\0';
+  md_str->buffer[7] = '1';
+  md_str->buffer[8] = '2';
+
+  MinidumpMemoryRange range(buffer, sizeof(buffer));
+  EXPECT_EQ("Test", range.GetAsciiMDString(0));
+  EXPECT_EQ("String", range.GetAsciiMDString(str2_offset));
+
+  // Test out-of-bounds cases.
+  EXPECT_EQ("", range.GetAsciiMDString(
+      sizeof(buffer) - sizeof(MDString) + 1));
+  EXPECT_EQ("", range.GetAsciiMDString(sizeof(buffer)));
+}
diff --git a/src/tools/linux/pid2md/pid2md.cc b/src/tools/linux/pid2md/pid2md.cc
new file mode 100644
index 0000000..0481997
--- /dev/null
+++ b/src/tools/linux/pid2md/pid2md.cc
@@ -0,0 +1,57 @@
+// Copyright (c) 2020, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// pid2md.cc: An utility to generate a minidump from a running process
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "client/linux/minidump_writer/minidump_writer.h"
+
+int main(int argc, char* argv[]) {
+  if (argc != 3) {
+    fprintf(stderr, "Usage: %s <process id> <minidump file>\n\n", argv[0]);
+    fprintf(stderr,
+            "A tool to generate a minidump from a running process. The process "
+            "resumes its\nactivity once the operation is completed. Permission "
+            "to trace the process is\nrequired.\n");
+    return EXIT_FAILURE;
+  }
+
+  pid_t process_id = atoi(argv[1]);
+  const char* minidump_file = argv[2];
+
+  if (!google_breakpad::WriteMinidump(minidump_file, process_id, process_id)) {
+    fprintf(stderr, "Unable to generate minidump.\n");
+    return EXIT_FAILURE;
+  }
+
+  return EXIT_SUCCESS;
+}
diff --git a/src/tools/linux/symupload/minidump_upload.cc b/src/tools/linux/symupload/minidump_upload.cc
new file mode 100644
index 0000000..f24e971
--- /dev/null
+++ b/src/tools/linux/symupload/minidump_upload.cc
@@ -0,0 +1,153 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump_upload.cc: Upload a minidump to a HTTP server.
+// The upload is sent as a multipart/form-data POST request with
+// the following parameters:
+//  prod: the product name
+//  ver: the product version
+//  symbol_file: the breakpad format symbol file
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <string>
+
+#include "common/linux/http_upload.h"
+#include "common/using_std_string.h"
+
+using google_breakpad::HTTPUpload;
+
+struct Options {
+  string minidumpPath;
+  string uploadURLStr;
+  string product;
+  string version;
+  string proxy;
+  string proxy_user_pwd;
+  bool success;
+};
+
+//=============================================================================
+static void Start(Options *options) {
+  std::map<string, string> parameters;
+  // Add parameters
+  parameters["prod"] = options->product;
+  parameters["ver"] = options->version;
+
+  std::map<string, string> files;
+  files["upload_file_minidump"] = options->minidumpPath;
+
+  // Send it
+  string response, error;
+  bool success = HTTPUpload::SendRequest(options->uploadURLStr,
+                                         parameters,
+                                         files,
+                                         options->proxy,
+                                         options->proxy_user_pwd,
+                                         "",
+                                         &response,
+                                         NULL,
+                                         &error);
+
+  if (success) {
+    printf("Successfully sent the minidump file.\n");
+  } else {
+    printf("Failed to send minidump: %s\n", error.c_str());
+  }
+  printf("Response:\n");
+  printf("%s\n", response.c_str());
+  options->success = success;
+}
+
+//=============================================================================
+static void
+Usage(int argc, const char *argv[]) {
+  fprintf(stderr, "Submit minidump information.\n");
+  fprintf(stderr, "Usage: %s [options...] -p <product> -v <version> <minidump> "
+          "<upload-URL>\n", argv[0]);
+  fprintf(stderr, "Options:\n");
+  fprintf(stderr, "<minidump> should be a minidump.\n");
+  fprintf(stderr, "<upload-URL> is the destination for the upload\n");
+
+  fprintf(stderr, "-p:\t <product> Product name\n");
+  fprintf(stderr, "-v:\t <version> Product version\n");
+  fprintf(stderr, "-x:\t <host[:port]> Use HTTP proxy on given port\n");
+  fprintf(stderr, "-u:\t <user[:password]> Set proxy user and password\n");
+  fprintf(stderr, "-h:\t Usage\n");
+  fprintf(stderr, "-?:\t Usage\n");
+}
+
+//=============================================================================
+static void
+SetupOptions(int argc, const char *argv[], Options *options) {
+  extern int optind;
+  int ch;
+
+  while ((ch = getopt(argc, (char * const*)argv, "p:u:v:x:h?")) != -1) {
+    switch (ch) {
+      case 'p':
+        options->product = optarg;
+        break;
+      case 'u':
+        options->proxy_user_pwd = optarg;
+        break;
+      case 'v':
+        options->version = optarg;
+        break;
+      case 'x':
+        options->proxy = optarg;
+        break;
+
+      default:
+        fprintf(stderr, "Invalid option '%c'\n", ch);
+        Usage(argc, argv);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 2) {
+    fprintf(stderr, "%s: Missing symbols file and/or upload-URL\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->minidumpPath = argv[optind];
+  options->uploadURLStr = argv[optind + 1];
+}
+
+//=============================================================================
+int main(int argc, const char* argv[]) {
+  Options options;
+  SetupOptions(argc, argv, &options);
+  Start(&options);
+  return options.success ? 0 : 1;
+}
diff --git a/src/tools/linux/symupload/sym_upload.cc b/src/tools/linux/symupload/sym_upload.cc
new file mode 100644
index 0000000..57df81c
--- /dev/null
+++ b/src/tools/linux/symupload/sym_upload.cc
@@ -0,0 +1,214 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// symupload.cc: Upload a symbol file to a HTTP server.  The upload is sent as
+// a multipart/form-data POST request with the following parameters:
+//  code_file: the basename of the module, e.g. "app"
+//  debug_file: the basename of the debugging file, e.g. "app"
+//  debug_identifier: the debug file's identifier, usually consisting of
+//                    the guid and age embedded in the pdb, e.g.
+//                    "11111111BBBB3333DDDD555555555555F"
+//  version: the file version of the module, e.g. "1.2.3.4"
+//  os: the operating system that the module was built for
+//  cpu: the CPU that the module was built for
+//  symbol_file: the contents of the breakpad-format symbol file
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <locale>
+
+#include "common/linux/symbol_upload.h"
+
+using google_breakpad::sym_upload::UploadProtocol;
+using google_breakpad::sym_upload::Options;
+
+static void StrToUpper(std::string* str) {
+  if (str == nullptr) {
+    fprintf(stderr, "nullptr passed to StrToUpper.\n");
+    exit(1);
+  }
+  for (size_t i = 0; i < str->length(); i++) {
+    (*str)[i] = std::toupper((*str)[i], std::locale::classic());
+  }
+}
+
+//=============================================================================
+static void
+Usage(int argc, const char *argv[]) {
+  fprintf(stderr, "Submit symbol information.\n");
+  fprintf(stderr, "Usage: %s [options...] <symbol-file> <upload-URL>\n",
+      argv[0]);
+  fprintf(stderr, "Options:\n");
+  fprintf(stderr, "<symbol-file> should be created by using the dump_syms"
+      "tool.\n");
+  fprintf(stderr, "<upload-URL> is the destination for the upload\n");
+  fprintf(stderr, "-p:\t <protocol> One of ['sym-upload-v1',"
+    " 'sym-upload-v2'], defaults to 'sym-upload-v1'.\n");
+  fprintf(stderr, "-v:\t Version information (e.g., 1.2.3.4)\n");
+  fprintf(stderr, "-x:\t <host[:port]> Use HTTP proxy on given port\n");
+  fprintf(stderr, "-u:\t <user[:password]> Set proxy user and password\n");
+  fprintf(stderr, "-h:\t Usage\n");
+  fprintf(stderr, "-?:\t Usage\n");
+  fprintf(stderr, "\n");
+  fprintf(stderr, "These options only work with 'sym-upload-v2' protocol:\n");
+  fprintf(stderr, "-k:\t <API-key> A secret used to authenticate with the"
+      " API.\n");
+  fprintf(stderr, "-f:\t Force symbol upload if already exists.\n");
+  fprintf(stderr, "-t:\t <symbol-type> Explicitly set symbol upload type ("
+      "default is 'breakpad').\n"
+      "\t One of ['breakpad', 'elf', 'pe', 'macho', 'debug_only', 'dwp', "
+      "'dsym', 'pdb'].\n"
+      "\t Note: When this flag is set to anything other than 'breakpad', then "
+      "the '-c' and '-i' flags must also be set.\n");
+  fprintf(stderr, "-c:\t <code-file> Explicitly set 'code_file' for symbol "
+      "upload (basename of executable).\n");
+  fprintf(stderr, "-i:\t <debug-id> Explicitly set 'debug_id' for symbol "
+      "upload (typically build ID of executable).\n");
+  fprintf(stderr, "\n");
+  fprintf(stderr, "Examples:\n");
+  fprintf(stderr, "  With 'sym-upload-v1':\n");
+  fprintf(stderr, "    %s path/to/symbol_file http://myuploadserver\n",
+      argv[0]);
+  fprintf(stderr, "  With 'sym-upload-v2':\n");
+  fprintf(stderr, "    [Defaulting to symbol type 'BREAKPAD']\n");
+  fprintf(stderr, "    %s -p sym-upload-v2 -k mysecret123! "
+      "path/to/symbol_file http://myuploadserver\n", argv[0]);
+  fprintf(stderr, "    [Explicitly set symbol type to 'elf']\n");
+  fprintf(stderr, "    %s -p sym-upload-v2 -k mysecret123! -t elf "
+      "-c app -i 11111111BBBB3333DDDD555555555555F "
+      "path/to/symbol_file http://myuploadserver\n", argv[0]);
+}
+
+//=============================================================================
+static void
+SetupOptions(int argc, const char *argv[], Options *options) {
+  extern int optind, optopt;
+  int ch;
+  constexpr char flag_pattern[] = "u:v:x:p:k:t:c:i:hf?";
+
+  while ((ch = getopt(argc, (char * const*)argv, flag_pattern)) != -1) {
+    switch (ch) {
+      case 'h':
+      case '?':
+        Usage(argc, argv);
+        // ch might be '?' because getopt found an error while parsing args (as
+        // opposed to finding "-?" as an arg), in which case optopt is set to
+        // the bad arg value, so return an error code if optopt is set,
+        // otherwise exit cleanly.
+        exit(optopt == 0 ? 0 : 1);
+        break;
+      case 'u':
+        options->proxy_user_pwd = optarg;
+        break;
+      case 'v':
+        options->version = optarg;
+        break;
+      case 'x':
+        options->proxy = optarg;
+        break;
+      case 'p':
+        if (strcmp(optarg, "sym-upload-v2") == 0) {
+          options->upload_protocol = UploadProtocol::SYM_UPLOAD_V2;
+        } else if (strcmp(optarg, "sym-upload-v1") == 0) {
+          options->upload_protocol = UploadProtocol::SYM_UPLOAD_V1;
+        } else {
+          fprintf(stderr, "Invalid protocol '%s'\n", optarg);
+          Usage(argc, argv);
+          exit(1);
+        }
+        break;
+      case 'k':
+        options->api_key = optarg;
+        break;
+      case 't': {
+        // This is really an enum, so treat as upper-case for consistency with
+        // enum naming convention on server-side.
+        options->type = optarg;
+        StrToUpper(&(options->type));
+        break;
+      }
+      case 'c':
+        options->code_file = optarg;
+        break;
+      case 'i':
+        options->debug_id = optarg;
+        break;
+      case 'f':
+        options->force = true;
+        break;
+
+      default:
+        fprintf(stderr, "Invalid option '%c'\n", ch);
+        Usage(argc, argv);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 2) {
+    fprintf(stderr, "%s: Missing symbols file and/or upload-URL\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  bool is_breakpad_upload = options->type.empty() ||
+      options->type == google_breakpad::sym_upload::kBreakpadSymbolType;
+  bool has_code_file = !options->code_file.empty();
+  bool has_debug_id = !options->debug_id.empty();
+  if (is_breakpad_upload && (has_code_file || has_debug_id)) {
+    fprintf(stderr, "\n");
+    fprintf(stderr, "%s: -c and -i should only be specified for non-breakpad "
+        "symbol upload types.\n", argv[0]);
+    fprintf(stderr, "\n");
+    Usage(argc, argv);
+    exit(1);
+  }
+  if (!is_breakpad_upload && (!has_code_file || !has_debug_id)) {
+    fprintf(stderr, "\n");
+    fprintf(stderr, "%s: -c and -i must be specified for non-breakpad "
+        "symbol upload types.\n", argv[0]);
+    fprintf(stderr, "\n");
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->symbolsPath = argv[optind];
+  options->uploadURLStr = argv[optind + 1];
+}
+
+//=============================================================================
+int main(int argc, const char* argv[]) {
+  Options options;
+  SetupOptions(argc, argv, &options);
+  google_breakpad::sym_upload::Start(&options);
+  return options.success ? 0 : 1;
+}
diff --git a/src/tools/linux/tools_linux.gypi b/src/tools/linux/tools_linux.gypi
new file mode 100644
index 0000000..020e4c1
--- /dev/null
+++ b/src/tools/linux/tools_linux.gypi
@@ -0,0 +1,83 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'target_defaults': {
+    'include_dirs': [
+      '../..',
+    ],
+  },
+  'targets': [
+    {
+      'target_name': 'dump_syms',
+      'type': 'executable',
+      'sources': [
+        'dump_syms/dump_syms.cc',
+      ],
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'md2core',
+      'type': 'executable',
+      'sources': [
+        'md2core/minidump-2-core.cc',
+        'md2core/minidump_memory_range.h',
+      ],
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'minidump_upload',
+      'type': 'executable',
+      'sources': [
+        'symupload/minidump_upload.cc',
+      ],
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'symupload',
+      'type': 'executable',
+      'sources': [
+        'symupload/sym_upload.cc',
+      ],
+      'link_settings': {
+        'libraries': [
+          '-ldl',
+        ],
+      },
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+  ],
+}
diff --git a/src/tools/mac/crash_report/crash_report.mm b/src/tools/mac/crash_report/crash_report.mm
new file mode 100644
index 0000000..f68200c
--- /dev/null
+++ b/src/tools/mac/crash_report/crash_report.mm
@@ -0,0 +1,408 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// crash_report.mm: Convert the contents of a minidump into a format that
+// looks more like Apple's CrashReporter format
+
+#include <unistd.h>
+
+#include <mach/machine.h>
+#include <mach-o/arch.h>
+
+#include <string>
+
+#include <Foundation/Foundation.h>
+
+#include "common/scoped_ptr.h"
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/call_stack.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/minidump_processor.h"
+#include "google_breakpad/processor/process_state.h"
+#include "google_breakpad/processor/stack_frame_cpu.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/pathname_stripper.h"
+#include "processor/simple_symbol_supplier.h"
+
+#include "on_demand_symbol_supplier.h"
+
+using std::string;
+
+using google_breakpad::BasicSourceLineResolver;
+using google_breakpad::CallStack;
+using google_breakpad::CodeModule;
+using google_breakpad::CodeModules;
+using google_breakpad::Minidump;
+using google_breakpad::MinidumpProcessor;
+using google_breakpad::OnDemandSymbolSupplier;
+using google_breakpad::PathnameStripper;
+using google_breakpad::ProcessState;
+using google_breakpad::scoped_ptr;
+using google_breakpad::StackFrame;
+using google_breakpad::StackFramePPC;
+using google_breakpad::StackFrameX86;
+using google_breakpad::SystemInfo;
+
+typedef struct {
+  NSString *minidumpPath;
+  NSString *searchDir;
+  NSString *symbolSearchDir;
+  BOOL printThreadMemory;
+} Options;
+
+//=============================================================================
+static int PrintRegister(const char *name, u_int32_t value, int sequence) {
+  if (sequence % 4 == 0) {
+    printf("\n");
+  }
+  printf("%6s = 0x%08x ", name, value);
+  return ++sequence;
+}
+
+//=============================================================================
+static void PrintStack(const CallStack *stack, const string &cpu) {
+  size_t frame_count = stack->frames()->size();
+  char buffer[1024];
+  for (size_t frame_index = 0; frame_index < frame_count; ++frame_index) {
+    const StackFrame *frame = stack->frames()->at(frame_index);
+    const CodeModule *module = frame->module;
+    printf("%2zu ", frame_index);
+
+    if (module) {
+      // Module name (20 chars max)
+      strcpy(buffer, PathnameStripper::File(module->code_file()).c_str());
+      int maxStr = 20;
+      buffer[maxStr] = 0;
+      printf("%-*s", maxStr, buffer);
+
+      strcpy(buffer, module->version().c_str());
+      buffer[maxStr] = 0;
+
+      printf("%-*s",maxStr, buffer);
+
+      u_int64_t instruction = frame->instruction;
+
+      // PPC only: Adjust the instruction to match that of Crash reporter.  The
+      // instruction listed is actually the return address.  See the detailed
+      // comments in stackwalker_ppc.cc for more information.
+      if (cpu == "ppc" && frame_index)
+        instruction += 4;
+
+      printf(" 0x%08llx ", instruction);
+
+      // Function name
+      if (!frame->function_name.empty()) {
+        printf("%s", frame->function_name.c_str());
+        if (!frame->source_file_name.empty()) {
+          string source_file = PathnameStripper::File(frame->source_file_name);
+          printf(" + 0x%llx (%s:%d)",
+                 instruction - frame->source_line_base,
+                 source_file.c_str(), frame->source_line);
+        } else {
+          printf(" + 0x%llx", instruction - frame->function_base);
+        }
+      }
+    }
+    printf("\n");
+  }
+}
+
+//=============================================================================
+static void PrintRegisters(const CallStack *stack, const string &cpu) {
+  int sequence = 0;
+  const StackFrame *frame = stack->frames()->at(0);
+  if (cpu == "x86") {
+    const StackFrameX86 *frame_x86 =
+      reinterpret_cast<const StackFrameX86*>(frame);
+
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EIP)
+      sequence = PrintRegister("eip", frame_x86->context.eip, sequence);
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESP)
+      sequence = PrintRegister("esp", frame_x86->context.esp, sequence);
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBP)
+      sequence = PrintRegister("ebp", frame_x86->context.ebp, sequence);
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBX)
+      sequence = PrintRegister("ebx", frame_x86->context.ebx, sequence);
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESI)
+      sequence = PrintRegister("esi", frame_x86->context.esi, sequence);
+    if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EDI)
+      sequence = PrintRegister("edi", frame_x86->context.edi, sequence);
+    if (frame_x86->context_validity == StackFrameX86::CONTEXT_VALID_ALL) {
+      sequence = PrintRegister("eax", frame_x86->context.eax, sequence);
+      sequence = PrintRegister("ecx", frame_x86->context.ecx, sequence);
+      sequence = PrintRegister("edx", frame_x86->context.edx, sequence);
+      sequence = PrintRegister("efl", frame_x86->context.eflags, sequence);
+    }
+  } else if (cpu == "ppc") {
+    const StackFramePPC *frame_ppc =
+      reinterpret_cast<const StackFramePPC*>(frame);
+
+    if ((frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_ALL) ==
+        StackFramePPC::CONTEXT_VALID_ALL) {
+      sequence = PrintRegister("srr0", frame_ppc->context.srr0, sequence);
+      sequence = PrintRegister("srr1", frame_ppc->context.srr1, sequence);
+      sequence = PrintRegister("cr", frame_ppc->context.cr, sequence);
+      sequence = PrintRegister("xer", frame_ppc->context.xer, sequence);
+      sequence = PrintRegister("lr", frame_ppc->context.lr, sequence);
+      sequence = PrintRegister("ctr", frame_ppc->context.ctr, sequence);
+      sequence = PrintRegister("mq", frame_ppc->context.mq, sequence);
+      sequence = PrintRegister("vrsave", frame_ppc->context.vrsave, sequence);
+
+      sequence = 0;
+      char buffer[5];
+      for (int i = 0; i < MD_CONTEXT_PPC_GPR_COUNT; ++i) {
+        sprintf(buffer, "r%d", i);
+        sequence = PrintRegister(buffer, frame_ppc->context.gpr[i], sequence);
+      }
+    } else {
+      if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_SRR0)
+        sequence = PrintRegister("srr0", frame_ppc->context.srr0, sequence);
+      if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_GPR1)
+        sequence = PrintRegister("r1", frame_ppc->context.gpr[1], sequence);
+    }
+  }
+
+  printf("\n");
+}
+
+static void PrintModules(const CodeModules *modules) {
+  if (!modules)
+    return;
+
+  printf("\n");
+  printf("Loaded modules:\n");
+
+  u_int64_t main_address = 0;
+  const CodeModule *main_module = modules->GetMainModule();
+  if (main_module) {
+    main_address = main_module->base_address();
+  }
+
+  unsigned int module_count = modules->module_count();
+  for (unsigned int module_sequence = 0;
+       module_sequence < module_count;
+       ++module_sequence) {
+    const CodeModule *module = modules->GetModuleAtSequence(module_sequence);
+    assert(module);
+    u_int64_t base_address = module->base_address();
+    printf("0x%08llx - 0x%08llx  %s  %s%s  %s\n",
+           base_address, base_address + module->size() - 1,
+           PathnameStripper::File(module->code_file()).c_str(),
+           module->version().empty() ? "???" : module->version().c_str(),
+           main_module != NULL && base_address == main_address ?
+           "  (main)" : "",
+           module->code_file().c_str());
+  }
+}
+
+static void ProcessSingleReport(Options *options, NSString *file_path) {
+  string minidump_file([file_path fileSystemRepresentation]);
+  BasicSourceLineResolver resolver;
+  string search_dir = options->searchDir ?
+    [options->searchDir fileSystemRepresentation] : "";
+  string symbol_search_dir = options->symbolSearchDir ?
+    [options->symbolSearchDir fileSystemRepresentation] : "";
+  scoped_ptr<OnDemandSymbolSupplier> symbol_supplier(
+    new OnDemandSymbolSupplier(search_dir, symbol_search_dir));
+  scoped_ptr<MinidumpProcessor>
+    minidump_processor(new MinidumpProcessor(symbol_supplier.get(), &resolver));
+  ProcessState process_state;
+  scoped_ptr<Minidump> dump(new google_breakpad::Minidump(minidump_file));
+
+  if (!dump->Read()) {
+    fprintf(stderr, "Minidump %s could not be read\n", dump->path().c_str());
+    return;
+  }
+  if (minidump_processor->Process(dump.get(), &process_state) !=
+      google_breakpad::PROCESS_OK) {
+    fprintf(stderr, "MinidumpProcessor::Process failed\n");
+    return;
+  }
+
+  const SystemInfo *system_info = process_state.system_info();
+  string cpu = system_info->cpu;
+
+  // Convert the time to a string
+  u_int32_t time_date_stamp = process_state.time_date_stamp();
+  struct tm timestruct;
+  gmtime_r(reinterpret_cast<time_t*>(&time_date_stamp), &timestruct);
+  char timestr[20];
+  strftime(timestr, 20, "%Y-%m-%d %H:%M:%S", &timestruct);
+  printf("Date: %s GMT\n", timestr);
+
+  printf("Operating system: %s (%s)\n", system_info->os.c_str(),
+         system_info->os_version.c_str());
+  printf("Architecture: %s\n", cpu.c_str());
+
+  if (process_state.crashed()) {
+    printf("Crash reason:  %s\n", process_state.crash_reason().c_str());
+    printf("Crash address: 0x%llx\n", process_state.crash_address());
+  } else {
+    printf("No crash\n");
+  }
+
+  int requesting_thread = process_state.requesting_thread();
+  if (requesting_thread != -1) {
+    printf("\n");
+    printf("Thread %d (%s)\n",
+           requesting_thread,
+           process_state.crashed() ? "crashed" :
+           "requested dump, did not crash");
+    PrintStack(process_state.threads()->at(requesting_thread), cpu);
+  }
+
+  // Print all of the threads in the dump.
+  int thread_count = static_cast<int>(process_state.threads()->size());
+  const std::vector<google_breakpad::MemoryRegion*>
+    *thread_memory_regions = process_state.thread_memory_regions();
+
+  for (int thread_index = 0; thread_index < thread_count; ++thread_index) {
+    if (thread_index != requesting_thread) {
+      // Don't print the crash thread again, it was already printed.
+      printf("\n");
+      printf("Thread %d\n", thread_index);
+      PrintStack(process_state.threads()->at(thread_index), cpu);
+      google_breakpad::MemoryRegion *thread_stack_bytes =
+        thread_memory_regions->at(thread_index);
+      if (options->printThreadMemory) {
+        thread_stack_bytes->Print();
+      }
+    }
+  }
+
+  // Print the crashed registers
+  if (requesting_thread != -1) {
+    printf("\nThread %d:", requesting_thread);
+    PrintRegisters(process_state.threads()->at(requesting_thread), cpu);
+  }
+
+  // Print information about modules
+  PrintModules(process_state.modules());
+}
+
+//=============================================================================
+static void Start(Options *options) {
+  NSFileManager *manager = [NSFileManager defaultManager];
+  NSString *minidump_path = options->minidumpPath;
+  BOOL is_dir = NO;
+  BOOL file_exists = [manager fileExistsAtPath:minidump_path
+                                   isDirectory:&is_dir];
+  if (file_exists && is_dir) {
+    NSDirectoryEnumerator *enumerator =
+      [manager enumeratorAtPath:minidump_path];
+    NSString *current_file = nil;
+    while ((current_file = [enumerator nextObject])) {
+      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+      if ([[current_file pathExtension] isEqualTo:@"dmp"]) {
+        printf("Attempting to process report: %s\n",
+               [current_file cStringUsingEncoding:NSASCIIStringEncoding]);
+        NSString *full_path =
+          [minidump_path stringByAppendingPathComponent:current_file];
+        ProcessSingleReport(options, full_path);
+      }
+      [pool release];
+    }
+  } else if (file_exists) {
+    ProcessSingleReport(options, minidump_path);
+  }
+}
+
+//=============================================================================
+static void Usage(int argc, const char *argv[]) {
+  fprintf(stderr, "Convert a minidump to a crash report.  Breakpad symbol "
+                  "files will be used (or created if missing) in /tmp.\n"
+                  "If a symbol-file-search-dir is specified, any symbol "
+                  "files in it will be used instead of being loaded from "
+                  "modules on disk.\n"
+                  "If modules cannot be found at the paths stored in the "
+                  "minidump file, they will be searched for at "
+                  "<module-search-dir>/<path-in-minidump-file>.\n");
+  fprintf(stderr, "Usage: %s [-s module-search-dir] [-S symbol-file-search-dir] "
+	          "minidump-file\n", argv[0]);
+  fprintf(stderr, "\t-s: Specify a search directory to use for missing modules\n"
+                  "\t-S: Specify a search directory to use for symbol files\n"
+                  "\t-t: Print thread stack memory in hex\n"
+                  "\t-h: Usage\n"
+                  "\t-?: Usage\n");
+}
+
+//=============================================================================
+static void SetupOptions(int argc, const char *argv[], Options *options) {
+  extern int optind;
+  char ch;
+
+  while ((ch = getopt(argc, (char * const *)argv, "S:s:ht?")) != -1) {
+    switch (ch) {
+      case 's':
+        options->searchDir = [[NSFileManager defaultManager]
+          stringWithFileSystemRepresentation:optarg
+                                      length:strlen(optarg)];
+        break;
+
+      case 'S':
+        options->symbolSearchDir = [[NSFileManager defaultManager]
+          stringWithFileSystemRepresentation:optarg
+                                      length:strlen(optarg)];
+        break;
+
+      case 't':
+        options->printThreadMemory = YES;
+        break;
+      case 'h':
+      case '?':
+        Usage(argc, argv);
+        exit(1);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 1) {
+    fprintf(stderr, "%s: Missing minidump file\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->minidumpPath = [[NSFileManager defaultManager]
+    stringWithFileSystemRepresentation:argv[optind]
+                                length:strlen(argv[optind])];
+}
+
+//=============================================================================
+int main (int argc, const char * argv[]) {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  Options options;
+
+  bzero(&options, sizeof(Options));
+  SetupOptions(argc, argv, &options);
+  Start(&options);
+  [pool release];
+
+  return 0;
+}
diff --git a/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..33204f7
--- /dev/null
+++ b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj
@@ -0,0 +1,618 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		162F64FE161C5ECB00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */; };
+		4214B800211109A600B769FA /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */; };
+		4247E6402110D5A500482558 /* path_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4247E63F2110D5A500482558 /* path_helper.cc */; };
+		4D2C721B126F9ACC00B43EAF /* source_line_resolver_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */; };
+		4D2C721F126F9ADE00B43EAF /* exploitability.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721E126F9ADE00B43EAF /* exploitability.cc */; };
+		4D2C7223126F9AF900B43EAF /* exploitability_win.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7222126F9AF900B43EAF /* exploitability_win.cc */; };
+		4D2C7227126F9B0F00B43EAF /* disassembler_x86.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7226126F9B0F00B43EAF /* disassembler_x86.cc */; };
+		4D2C722B126F9B5A00B43EAF /* x86_disasm.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C722A126F9B5A00B43EAF /* x86_disasm.c */; };
+		4D2C722D126F9B6E00B43EAF /* x86_misc.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C722C126F9B6E00B43EAF /* x86_misc.c */; };
+		4D2C722F126F9B8300B43EAF /* x86_operand_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C722E126F9B8300B43EAF /* x86_operand_list.c */; };
+		4D2C7233126F9BB000B43EAF /* ia32_invariant.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7232126F9BB000B43EAF /* ia32_invariant.c */; settings = {COMPILER_FLAGS = "-Wno-error"; }; };
+		4D2C7235126F9BC200B43EAF /* ia32_settings.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7234126F9BC200B43EAF /* ia32_settings.c */; };
+		4D2C7246126F9C0B00B43EAF /* ia32_insn.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7245126F9C0B00B43EAF /* ia32_insn.c */; };
+		4D2C724A126F9C2300B43EAF /* ia32_opcode_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7249126F9C2300B43EAF /* ia32_opcode_tables.c */; settings = {COMPILER_FLAGS = "-Wno-error"; }; };
+		4D2C724C126F9C3800B43EAF /* ia32_implicit.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C724B126F9C3800B43EAF /* ia32_implicit.c */; settings = {COMPILER_FLAGS = "-Wno-error"; }; };
+		4D2C724E126F9C4D00B43EAF /* ia32_reg.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C724D126F9C4D00B43EAF /* ia32_reg.c */; settings = {COMPILER_FLAGS = "-Wno-error"; }; };
+		4D2C725B126F9C8000B43EAF /* ia32_operand.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C725A126F9C8000B43EAF /* ia32_operand.c */; };
+		4D2C725D126F9C9200B43EAF /* x86_insn.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C725C126F9C9200B43EAF /* x86_insn.c */; };
+		4D2C7264126F9CBB00B43EAF /* ia32_modrm.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7261126F9CBB00B43EAF /* ia32_modrm.c */; };
+		4D2C726D126F9CDC00B43EAF /* x86_imm.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C7263126F9CBB00B43EAF /* x86_imm.c */; };
+		4D72CA5713DFBA84006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA5613DFBA84006CABE3 /* md5.cc */; };
+		557800400BE1F28500EC23E0 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5578003E0BE1F28500EC23E0 /* macho_utilities.cc */; };
+		8B31FF2A11F0C62700FCF3E4 /* dwarf_cfi_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */; };
+		8B31FF2B11F0C62700FCF3E4 /* dwarf_cu_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */; };
+		8B31FF2C11F0C62700FCF3E4 /* dwarf_line_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */; };
+		8B31FF4111F0C64400FCF3E4 /* stabs_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */; };
+		8B31FF4211F0C64400FCF3E4 /* stabs_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */; };
+		8B31FF7411F0C6E000FCF3E4 /* macho_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */; };
+		8B31FF8811F0C6FB00FCF3E4 /* language.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF8411F0C6FB00FCF3E4 /* language.cc */; };
+		8B31FF8911F0C6FB00FCF3E4 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF8611F0C6FB00FCF3E4 /* module.cc */; };
+		8B31FFC511F0C8AB00FCF3E4 /* dwarf2diehandler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */; };
+		8B40BDC00C0638E4009535AF /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B40BDBF0C0638E4009535AF /* logging.cc */; };
+		8DD76F9A0486AA7600D96B5E /* crash_report.mm in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* crash_report.mm */; settings = {ATTRIBUTES = (); }; };
+		8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+		9B35FEEA0B26761C008DE8C7 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FEE70B26761C008DE8C7 /* basic_code_modules.cc */; };
+		9B3904990B2E52FD0059FABE /* basic_source_line_resolver.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B3904980B2E52FD0059FABE /* basic_source_line_resolver.cc */; };
+		9BDF172C0B1B8B2400F8391B /* call_stack.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF172A0B1B8B2400F8391B /* call_stack.cc */; };
+		9BDF172D0B1B8B2400F8391B /* minidump_processor.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF172B0B1B8B2400F8391B /* minidump_processor.cc */; };
+		9BDF17410B1B8B9A00F8391B /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF173F0B1B8B9A00F8391B /* minidump.cc */; };
+		9BDF17540B1B8BF900F8391B /* stackwalker_ppc.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF17510B1B8BF900F8391B /* stackwalker_ppc.cc */; };
+		9BDF17550B1B8BF900F8391B /* stackwalker_x86.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF17520B1B8BF900F8391B /* stackwalker_x86.cc */; };
+		9BDF17560B1B8BF900F8391B /* stackwalker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF17530B1B8BF900F8391B /* stackwalker.cc */; };
+		9BDF175D0B1B8C1B00F8391B /* process_state.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF175B0B1B8C1B00F8391B /* process_state.cc */; };
+		9BDF176E0B1B8CB100F8391B /* on_demand_symbol_supplier.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */; };
+		9BDF1A280B1BD58200F8391B /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */; };
+		9BDF21A70B1E825400F8391B /* dump_syms.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF192E0B1BC15D00F8391B /* dump_syms.cc */; };
+		9BE650B20B52FE3000611104 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AC0B52FE3000611104 /* file_id.cc */; };
+		9BE650B40B52FE3000611104 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AE0B52FE3000611104 /* macho_id.cc */; };
+		9BE650B60B52FE3000611104 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650B00B52FE3000611104 /* macho_walker.cc */; };
+		D2A5DD4D1188651100081F03 /* cfi_frame_info.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2A5DD4C1188651100081F03 /* cfi_frame_info.cc */; };
+		D2A5DD631188658B00081F03 /* tokenize.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2A5DD621188658B00081F03 /* tokenize.cc */; };
+		F407DC48185773C10064622B /* exploitability_linux.cc in Sources */ = {isa = PBXBuildFile; fileRef = F407DC40185773C10064622B /* exploitability_linux.cc */; };
+		F407DC49185773C10064622B /* stack_frame_symbolizer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F407DC41185773C10064622B /* stack_frame_symbolizer.cc */; };
+		F407DC4A185773C10064622B /* stackwalker_arm64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F407DC42185773C10064622B /* stackwalker_arm64.cc */; };
+		F407DC4B185773C10064622B /* stackwalker_mips.cc in Sources */ = {isa = PBXBuildFile; fileRef = F407DC44185773C10064622B /* stackwalker_mips.cc */; };
+		F407DC4C185773C10064622B /* stackwalker_ppc64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F407DC46185773C10064622B /* stackwalker_ppc64.cc */; };
+		F44DDD8719C85CD50047280E /* dump_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8419C85CD50047280E /* dump_context.cc */; };
+		F44DDD8819C85CD50047280E /* dump_object.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8519C85CD50047280E /* dump_object.cc */; };
+		F44DDD8919C85CD50047280E /* microdump_processor.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8619C85CD50047280E /* microdump_processor.cc */; };
+		F47180561D745DEF0032F208 /* elf_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180541D745DEF0032F208 /* elf_reader.cc */; };
+		F47180581D7467630032F208 /* proc_maps_linux.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180571D7467630032F208 /* proc_maps_linux.cc */; };
+		F471805A1D7468A40032F208 /* symbolic_constants_win.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180591D7468A40032F208 /* symbolic_constants_win.cc */; };
+		F4D43B2F1A38490700C290B2 /* microdump.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4D43B2E1A38490700C290B2 /* microdump.cc */; };
+		F9C7ECE50E8ABCA600E953AD /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE20E8ABCA600E953AD /* bytereader.cc */; };
+		F9C7ECE60E8ABCA600E953AD /* dwarf2reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */; };
+		F9C7ECE70E8ABCA600E953AD /* functioninfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE40E8ABCA600E953AD /* functioninfo.cc */; };
+		F9F0706710FBC02D0037B88B /* stackwalker_arm.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9F0706510FBC02D0037B88B /* stackwalker_arm.cc */; };
+		FD6625CD0CF4D45C004AC844 /* stackwalker_amd64.cc in Sources */ = {isa = PBXBuildFile; fileRef = FD6625C40CF4D438004AC844 /* stackwalker_amd64.cc */; };
+		FD8EDEAE0CADDAD400A5EDF1 /* stackwalker_sparc.cc in Sources */ = {isa = PBXBuildFile; fileRef = FD8EDEAC0CADDAD400A5EDF1 /* stackwalker_sparc.cc */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		08FB7796FE84155DC02AAC07 /* crash_report.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = crash_report.mm; sourceTree = "<group>"; };
+		08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
+		162F64FD161C5ECB00CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
+		4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = convert_old_arm64_context.cc; path = ../../../processor/convert_old_arm64_context.cc; sourceTree = "<group>"; };
+		4214B7FF211109A600B769FA /* convert_old_arm64_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_old_arm64_context.h; path = ../../../processor/convert_old_arm64_context.h; sourceTree = "<group>"; };
+		4247E63E2110D5A500482558 /* path_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path_helper.h; path = ../../../common/path_helper.h; sourceTree = "<group>"; };
+		4247E63F2110D5A500482558 /* path_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path_helper.cc; path = ../../../common/path_helper.cc; sourceTree = "<group>"; };
+		4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = source_line_resolver_base.cc; path = ../../../processor/source_line_resolver_base.cc; sourceTree = SOURCE_ROOT; };
+		4D2C721E126F9ADE00B43EAF /* exploitability.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exploitability.cc; path = ../../../processor/exploitability.cc; sourceTree = SOURCE_ROOT; };
+		4D2C7222126F9AF900B43EAF /* exploitability_win.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exploitability_win.cc; path = ../../../processor/exploitability_win.cc; sourceTree = SOURCE_ROOT; };
+		4D2C7226126F9B0F00B43EAF /* disassembler_x86.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = disassembler_x86.cc; path = ../../../processor/disassembler_x86.cc; sourceTree = SOURCE_ROOT; };
+		4D2C722A126F9B5A00B43EAF /* x86_disasm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = x86_disasm.c; path = ../../../third_party/libdisasm/x86_disasm.c; sourceTree = SOURCE_ROOT; };
+		4D2C722C126F9B6E00B43EAF /* x86_misc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = x86_misc.c; path = ../../../third_party/libdisasm/x86_misc.c; sourceTree = SOURCE_ROOT; };
+		4D2C722E126F9B8300B43EAF /* x86_operand_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = x86_operand_list.c; path = ../../../third_party/libdisasm/x86_operand_list.c; sourceTree = SOURCE_ROOT; };
+		4D2C7232126F9BB000B43EAF /* ia32_invariant.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_invariant.c; path = ../../../third_party/libdisasm/ia32_invariant.c; sourceTree = SOURCE_ROOT; };
+		4D2C7234126F9BC200B43EAF /* ia32_settings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_settings.c; path = ../../../third_party/libdisasm/ia32_settings.c; sourceTree = SOURCE_ROOT; };
+		4D2C7245126F9C0B00B43EAF /* ia32_insn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_insn.c; path = ../../../third_party/libdisasm/ia32_insn.c; sourceTree = SOURCE_ROOT; };
+		4D2C7249126F9C2300B43EAF /* ia32_opcode_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_opcode_tables.c; path = ../../../third_party/libdisasm/ia32_opcode_tables.c; sourceTree = SOURCE_ROOT; };
+		4D2C724B126F9C3800B43EAF /* ia32_implicit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_implicit.c; path = ../../../third_party/libdisasm/ia32_implicit.c; sourceTree = SOURCE_ROOT; };
+		4D2C724D126F9C4D00B43EAF /* ia32_reg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_reg.c; path = ../../../third_party/libdisasm/ia32_reg.c; sourceTree = SOURCE_ROOT; };
+		4D2C725A126F9C8000B43EAF /* ia32_operand.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_operand.c; path = ../../../third_party/libdisasm/ia32_operand.c; sourceTree = SOURCE_ROOT; };
+		4D2C725C126F9C9200B43EAF /* x86_insn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = x86_insn.c; path = ../../../third_party/libdisasm/x86_insn.c; sourceTree = SOURCE_ROOT; };
+		4D2C7261126F9CBB00B43EAF /* ia32_modrm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ia32_modrm.c; path = ../../../third_party/libdisasm/ia32_modrm.c; sourceTree = SOURCE_ROOT; };
+		4D2C7263126F9CBB00B43EAF /* x86_imm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = x86_imm.c; path = ../../../third_party/libdisasm/x86_imm.c; sourceTree = SOURCE_ROOT; };
+		4D72CA5613DFBA84006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../../common/md5.cc; sourceTree = SOURCE_ROOT; };
+		5578003E0BE1F28500EC23E0 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; };
+		5578003F0BE1F28500EC23E0 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; };
+		8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cfi_to_module.cc; path = ../../../common/dwarf_cfi_to_module.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF2511F0C62700FCF3E4 /* dwarf_cfi_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cfi_to_module.h; path = ../../../common/dwarf_cfi_to_module.h; sourceTree = SOURCE_ROOT; };
+		8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cu_to_module.cc; path = ../../../common/dwarf_cu_to_module.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF2711F0C62700FCF3E4 /* dwarf_cu_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cu_to_module.h; path = ../../../common/dwarf_cu_to_module.h; sourceTree = SOURCE_ROOT; };
+		8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_line_to_module.cc; path = ../../../common/dwarf_line_to_module.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF2911F0C62700FCF3E4 /* dwarf_line_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_line_to_module.h; path = ../../../common/dwarf_line_to_module.h; sourceTree = SOURCE_ROOT; };
+		8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_reader.cc; path = ../../../common/stabs_reader.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF3E11F0C64400FCF3E4 /* stabs_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_reader.h; path = ../../../common/stabs_reader.h; sourceTree = SOURCE_ROOT; };
+		8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_to_module.cc; path = ../../../common/stabs_to_module.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF4011F0C64400FCF3E4 /* stabs_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_to_module.h; path = ../../../common/stabs_to_module.h; sourceTree = SOURCE_ROOT; };
+		8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_reader.cc; path = ../../../common/mac/macho_reader.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF7311F0C6E000FCF3E4 /* macho_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_reader.h; path = ../../../common/mac/macho_reader.h; sourceTree = SOURCE_ROOT; };
+		8B31FF8411F0C6FB00FCF3E4 /* language.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = language.cc; path = ../../../common/language.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF8511F0C6FB00FCF3E4 /* language.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = language.h; path = ../../../common/language.h; sourceTree = SOURCE_ROOT; };
+		8B31FF8611F0C6FB00FCF3E4 /* module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = module.cc; path = ../../../common/module.cc; sourceTree = SOURCE_ROOT; };
+		8B31FF8711F0C6FB00FCF3E4 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../../common/module.h; sourceTree = SOURCE_ROOT; };
+		8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2diehandler.cc; path = ../../../common/dwarf/dwarf2diehandler.cc; sourceTree = SOURCE_ROOT; };
+		8B31FFC411F0C8AB00FCF3E4 /* dwarf2diehandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf2diehandler.h; path = ../../../common/dwarf/dwarf2diehandler.h; sourceTree = SOURCE_ROOT; };
+		8B40BDBF0C0638E4009535AF /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cc; path = ../../../processor/logging.cc; sourceTree = SOURCE_ROOT; };
+		8DD76FA10486AA7600D96B5E /* crash_report */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = crash_report; sourceTree = BUILT_PRODUCTS_DIR; };
+		9B35FEE20B2675F9008DE8C7 /* code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_module.h; path = ../../../google_breakpad/processor/code_module.h; sourceTree = SOURCE_ROOT; };
+		9B35FEE30B2675F9008DE8C7 /* code_modules.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_modules.h; path = ../../../google_breakpad/processor/code_modules.h; sourceTree = SOURCE_ROOT; };
+		9B35FEE60B26761C008DE8C7 /* basic_code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = basic_code_module.h; path = ../../../processor/basic_code_module.h; sourceTree = SOURCE_ROOT; };
+		9B35FEE70B26761C008DE8C7 /* basic_code_modules.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = basic_code_modules.cc; path = ../../../processor/basic_code_modules.cc; sourceTree = SOURCE_ROOT; };
+		9B35FEE80B26761C008DE8C7 /* basic_code_modules.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = basic_code_modules.h; path = ../../../processor/basic_code_modules.h; sourceTree = SOURCE_ROOT; };
+		9B3904940B2E52D90059FABE /* basic_source_line_resolver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = basic_source_line_resolver.h; sourceTree = "<group>"; };
+		9B3904950B2E52D90059FABE /* source_line_resolver_interface.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = source_line_resolver_interface.h; sourceTree = "<group>"; };
+		9B3904980B2E52FD0059FABE /* basic_source_line_resolver.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = basic_source_line_resolver.cc; path = ../../../processor/basic_source_line_resolver.cc; sourceTree = SOURCE_ROOT; };
+		9B44619D0B66C66B00BBB817 /* system_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = system_info.h; sourceTree = "<group>"; };
+		9BDF16F90B1B8ACD00F8391B /* breakpad_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = breakpad_types.h; sourceTree = "<group>"; };
+		9BDF16FA0B1B8ACD00F8391B /* minidump_format.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minidump_format.h; sourceTree = "<group>"; };
+		9BDF16FC0B1B8ACD00F8391B /* call_stack.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = call_stack.h; sourceTree = "<group>"; };
+		9BDF16FD0B1B8ACD00F8391B /* memory_region.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = memory_region.h; sourceTree = "<group>"; };
+		9BDF16FE0B1B8ACD00F8391B /* minidump.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minidump.h; sourceTree = "<group>"; };
+		9BDF16FF0B1B8ACD00F8391B /* minidump_processor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minidump_processor.h; sourceTree = "<group>"; };
+		9BDF17000B1B8ACD00F8391B /* process_state.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = process_state.h; sourceTree = "<group>"; };
+		9BDF17010B1B8ACD00F8391B /* stack_frame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = stack_frame.h; sourceTree = "<group>"; };
+		9BDF17020B1B8ACD00F8391B /* stack_frame_cpu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = stack_frame_cpu.h; sourceTree = "<group>"; };
+		9BDF17030B1B8ACD00F8391B /* stackwalker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = stackwalker.h; sourceTree = "<group>"; };
+		9BDF17040B1B8ACD00F8391B /* symbol_supplier.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = symbol_supplier.h; sourceTree = "<group>"; };
+		9BDF172A0B1B8B2400F8391B /* call_stack.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = call_stack.cc; path = ../../../processor/call_stack.cc; sourceTree = SOURCE_ROOT; };
+		9BDF172B0B1B8B2400F8391B /* minidump_processor.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_processor.cc; path = ../../../processor/minidump_processor.cc; sourceTree = SOURCE_ROOT; };
+		9BDF173F0B1B8B9A00F8391B /* minidump.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = minidump.cc; path = ../../../processor/minidump.cc; sourceTree = SOURCE_ROOT; };
+		9BDF17510B1B8BF900F8391B /* stackwalker_ppc.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_ppc.cc; path = ../../../processor/stackwalker_ppc.cc; sourceTree = SOURCE_ROOT; };
+		9BDF17520B1B8BF900F8391B /* stackwalker_x86.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_x86.cc; path = ../../../processor/stackwalker_x86.cc; sourceTree = SOURCE_ROOT; };
+		9BDF17530B1B8BF900F8391B /* stackwalker.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker.cc; path = ../../../processor/stackwalker.cc; sourceTree = SOURCE_ROOT; };
+		9BDF175B0B1B8C1B00F8391B /* process_state.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = process_state.cc; path = ../../../processor/process_state.cc; sourceTree = SOURCE_ROOT; };
+		9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = on_demand_symbol_supplier.h; sourceTree = "<group>"; };
+		9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = on_demand_symbol_supplier.mm; sourceTree = "<group>"; };
+		9BDF192D0B1BC15D00F8391B /* dump_syms.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = dump_syms.h; path = ../../../common/mac/dump_syms.h; sourceTree = SOURCE_ROOT; };
+		9BDF192E0B1BC15D00F8391B /* dump_syms.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = dump_syms.cc; path = ../../../common/mac/dump_syms.cc; sourceTree = SOURCE_ROOT; };
+		9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pathname_stripper.cc; path = ../../../processor/pathname_stripper.cc; sourceTree = SOURCE_ROOT; };
+		9BDF1A7A0B1BE30100F8391B /* range_map-inl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "range_map-inl.h"; path = "../../../processor/range_map-inl.h"; sourceTree = SOURCE_ROOT; };
+		9BDF1A7B0B1BE30100F8391B /* range_map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = range_map.h; path = ../../../processor/range_map.h; sourceTree = SOURCE_ROOT; };
+		9BDF1AFA0B1BEB6300F8391B /* address_map-inl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "address_map-inl.h"; path = "../../../processor/address_map-inl.h"; sourceTree = SOURCE_ROOT; };
+		9BDF1AFB0B1BEB6300F8391B /* address_map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = address_map.h; path = ../../../processor/address_map.h; sourceTree = SOURCE_ROOT; };
+		9BE650AC0B52FE3000611104 /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; };
+		9BE650AD0B52FE3000611104 /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ../../../common/mac/file_id.h; sourceTree = SOURCE_ROOT; };
+		9BE650AE0B52FE3000611104 /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ../../../common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; };
+		9BE650AF0B52FE3000611104 /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ../../../common/mac/macho_id.h; sourceTree = SOURCE_ROOT; };
+		9BE650B00B52FE3000611104 /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
+		9BE650B10B52FE3000611104 /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
+		D2A5DD4C1188651100081F03 /* cfi_frame_info.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cfi_frame_info.cc; path = ../../../processor/cfi_frame_info.cc; sourceTree = SOURCE_ROOT; };
+		D2A5DD621188658B00081F03 /* tokenize.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tokenize.cc; path = ../../../processor/tokenize.cc; sourceTree = SOURCE_ROOT; };
+		F407DC40185773C10064622B /* exploitability_linux.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exploitability_linux.cc; path = ../../../processor/exploitability_linux.cc; sourceTree = "<group>"; };
+		F407DC41185773C10064622B /* stack_frame_symbolizer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stack_frame_symbolizer.cc; path = ../../../processor/stack_frame_symbolizer.cc; sourceTree = "<group>"; };
+		F407DC42185773C10064622B /* stackwalker_arm64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_arm64.cc; path = ../../../processor/stackwalker_arm64.cc; sourceTree = "<group>"; };
+		F407DC43185773C10064622B /* stackwalker_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stackwalker_arm64.h; path = ../../../processor/stackwalker_arm64.h; sourceTree = "<group>"; };
+		F407DC44185773C10064622B /* stackwalker_mips.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_mips.cc; path = ../../../processor/stackwalker_mips.cc; sourceTree = "<group>"; };
+		F407DC45185773C10064622B /* stackwalker_mips.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stackwalker_mips.h; path = ../../../processor/stackwalker_mips.h; sourceTree = "<group>"; };
+		F407DC46185773C10064622B /* stackwalker_ppc64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_ppc64.cc; path = ../../../processor/stackwalker_ppc64.cc; sourceTree = "<group>"; };
+		F407DC47185773C10064622B /* stackwalker_ppc64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stackwalker_ppc64.h; path = ../../../processor/stackwalker_ppc64.h; sourceTree = "<group>"; };
+		F44DDD8419C85CD50047280E /* dump_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dump_context.cc; path = ../../../processor/dump_context.cc; sourceTree = "<group>"; };
+		F44DDD8519C85CD50047280E /* dump_object.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dump_object.cc; path = ../../../processor/dump_object.cc; sourceTree = "<group>"; };
+		F44DDD8619C85CD50047280E /* microdump_processor.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = microdump_processor.cc; path = ../../../processor/microdump_processor.cc; sourceTree = "<group>"; };
+		F44DDD8A19C85CFB0047280E /* dump_context.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = dump_context.h; path = ../../../google_breakpad/processor/dump_context.h; sourceTree = "<group>"; };
+		F44DDD8B19C85CFB0047280E /* dump_object.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = dump_object.h; path = ../../../google_breakpad/processor/dump_object.h; sourceTree = "<group>"; };
+		F44DDD8C19C85CFC0047280E /* microdump_processor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = microdump_processor.h; path = ../../../google_breakpad/processor/microdump_processor.h; sourceTree = "<group>"; };
+		F44DDD8D19C85CFC0047280E /* process_result.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = process_result.h; path = ../../../google_breakpad/processor/process_result.h; sourceTree = "<group>"; };
+		F47180541D745DEF0032F208 /* elf_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = elf_reader.cc; path = ../../../common/dwarf/elf_reader.cc; sourceTree = "<group>"; };
+		F47180551D745DEF0032F208 /* elf_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = elf_reader.h; path = ../../../common/dwarf/elf_reader.h; sourceTree = "<group>"; };
+		F47180571D7467630032F208 /* proc_maps_linux.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = proc_maps_linux.cc; path = ../../../processor/proc_maps_linux.cc; sourceTree = "<group>"; };
+		F47180591D7468A40032F208 /* symbolic_constants_win.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = symbolic_constants_win.cc; path = ../../../processor/symbolic_constants_win.cc; sourceTree = "<group>"; };
+		F4D43B2E1A38490700C290B2 /* microdump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = microdump.cc; path = ../../../processor/microdump.cc; sourceTree = "<group>"; };
+		F4D43B301A38492000C290B2 /* microdump.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = microdump.h; path = ../../../google_breakpad/processor/microdump.h; sourceTree = "<group>"; };
+		F9C7ECE20E8ABCA600E953AD /* bytereader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bytereader.cc; path = ../../../common/dwarf/bytereader.cc; sourceTree = SOURCE_ROOT; };
+		F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2reader.cc; path = ../../../common/dwarf/dwarf2reader.cc; sourceTree = SOURCE_ROOT; };
+		F9C7ECE40E8ABCA600E953AD /* functioninfo.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = functioninfo.cc; path = ../../../common/dwarf/functioninfo.cc; sourceTree = SOURCE_ROOT; };
+		F9F0706510FBC02D0037B88B /* stackwalker_arm.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_arm.cc; path = ../../../processor/stackwalker_arm.cc; sourceTree = SOURCE_ROOT; };
+		F9F0706610FBC02D0037B88B /* stackwalker_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stackwalker_arm.h; path = ../../../processor/stackwalker_arm.h; sourceTree = SOURCE_ROOT; };
+		FD6625C40CF4D438004AC844 /* stackwalker_amd64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_amd64.cc; path = ../../../processor/stackwalker_amd64.cc; sourceTree = SOURCE_ROOT; };
+		FD6625C50CF4D438004AC844 /* stackwalker_amd64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stackwalker_amd64.h; path = ../../../processor/stackwalker_amd64.h; sourceTree = SOURCE_ROOT; };
+		FD8EDEAC0CADDAD400A5EDF1 /* stackwalker_sparc.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = stackwalker_sparc.cc; path = ../../../processor/stackwalker_sparc.cc; sourceTree = SOURCE_ROOT; };
+		FD8EDEAD0CADDAD400A5EDF1 /* stackwalker_sparc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = stackwalker_sparc.h; path = ../../../processor/stackwalker_sparc.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* crash_report */ = {
+			isa = PBXGroup;
+			children = (
+				4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */,
+				4214B7FF211109A600B769FA /* convert_old_arm64_context.h */,
+				4247E63F2110D5A500482558 /* path_helper.cc */,
+				4247E63E2110D5A500482558 /* path_helper.h */,
+				8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */,
+				8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */,
+				8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */,
+				F9C7ECE10E8ABC7F00E953AD /* DWARF */,
+				162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */,
+				162F64FD161C5ECB00CD68D5 /* arch_utilities.h */,
+				5578003E0BE1F28500EC23E0 /* macho_utilities.cc */,
+				5578003F0BE1F28500EC23E0 /* macho_utilities.h */,
+				8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */,
+				8B31FF7311F0C6E000FCF3E4 /* macho_reader.h */,
+				9BDF192D0B1BC15D00F8391B /* dump_syms.h */,
+				9BDF192E0B1BC15D00F8391B /* dump_syms.cc */,
+				08FB7796FE84155DC02AAC07 /* crash_report.mm */,
+				F44DDD8D19C85CFC0047280E /* process_result.h */,
+				9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */,
+				F44DDD8419C85CD50047280E /* dump_context.cc */,
+				F44DDD8A19C85CFB0047280E /* dump_context.h */,
+				F44DDD8519C85CD50047280E /* dump_object.cc */,
+				F44DDD8B19C85CFB0047280E /* dump_object.h */,
+				F4D43B2E1A38490700C290B2 /* microdump.cc */,
+				F4D43B301A38492000C290B2 /* microdump.h */,
+				F44DDD8619C85CD50047280E /* microdump_processor.cc */,
+				F44DDD8C19C85CFC0047280E /* microdump_processor.h */,
+				9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */,
+				8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */,
+				8B31FF2511F0C62700FCF3E4 /* dwarf_cfi_to_module.h */,
+				8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */,
+				8B31FF2711F0C62700FCF3E4 /* dwarf_cu_to_module.h */,
+				8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */,
+				8B31FF2911F0C62700FCF3E4 /* dwarf_line_to_module.h */,
+				8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */,
+				8B31FF3E11F0C64400FCF3E4 /* stabs_reader.h */,
+				8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */,
+				8B31FF4011F0C64400FCF3E4 /* stabs_to_module.h */,
+				8B31FF8411F0C6FB00FCF3E4 /* language.cc */,
+				8B31FF8511F0C6FB00FCF3E4 /* language.h */,
+				4D72CA5613DFBA84006CABE3 /* md5.cc */,
+				8B31FF8611F0C6FB00FCF3E4 /* module.cc */,
+				8B31FF8711F0C6FB00FCF3E4 /* module.h */,
+				08FB7795FE84155DC02AAC07 /* breakpad */,
+				4D2C726E126F9CE200B43EAF /* libdisasm */,
+				08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = crash_report;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* breakpad */ = {
+			isa = PBXGroup;
+			children = (
+				9BE650AB0B52FE1A00611104 /* common */,
+				9BDF17280B1B8B0200F8391B /* processor */,
+				9BDF16F70B1B8ACD00F8391B /* google_breakpad */,
+			);
+			name = breakpad;
+			sourceTree = "<group>";
+		};
+		08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				08FB779EFE84155DC02AAC07 /* Foundation.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76FA10486AA7600D96B5E /* crash_report */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		4D2C726E126F9CE200B43EAF /* libdisasm */ = {
+			isa = PBXGroup;
+			children = (
+				4D2C7226126F9B0F00B43EAF /* disassembler_x86.cc */,
+				4D2C724B126F9C3800B43EAF /* ia32_implicit.c */,
+				4D2C7245126F9C0B00B43EAF /* ia32_insn.c */,
+				4D2C7232126F9BB000B43EAF /* ia32_invariant.c */,
+				4D2C7261126F9CBB00B43EAF /* ia32_modrm.c */,
+				4D2C7249126F9C2300B43EAF /* ia32_opcode_tables.c */,
+				4D2C725A126F9C8000B43EAF /* ia32_operand.c */,
+				4D2C724D126F9C4D00B43EAF /* ia32_reg.c */,
+				4D2C7234126F9BC200B43EAF /* ia32_settings.c */,
+				4D2C722A126F9B5A00B43EAF /* x86_disasm.c */,
+				4D2C7263126F9CBB00B43EAF /* x86_imm.c */,
+				4D2C725C126F9C9200B43EAF /* x86_insn.c */,
+				4D2C722C126F9B6E00B43EAF /* x86_misc.c */,
+				4D2C722E126F9B8300B43EAF /* x86_operand_list.c */,
+			);
+			name = libdisasm;
+			sourceTree = "<group>";
+		};
+		9BDF16F70B1B8ACD00F8391B /* google_breakpad */ = {
+			isa = PBXGroup;
+			children = (
+				9BDF16F80B1B8ACD00F8391B /* common */,
+				9BDF16FB0B1B8ACD00F8391B /* processor */,
+			);
+			name = google_breakpad;
+			path = ../../../google_breakpad;
+			sourceTree = SOURCE_ROOT;
+		};
+		9BDF16F80B1B8ACD00F8391B /* common */ = {
+			isa = PBXGroup;
+			children = (
+				9BDF16F90B1B8ACD00F8391B /* breakpad_types.h */,
+				9BDF16FA0B1B8ACD00F8391B /* minidump_format.h */,
+			);
+			path = common;
+			sourceTree = "<group>";
+		};
+		9BDF16FB0B1B8ACD00F8391B /* processor */ = {
+			isa = PBXGroup;
+			children = (
+				9B3904940B2E52D90059FABE /* basic_source_line_resolver.h */,
+				9BDF16FC0B1B8ACD00F8391B /* call_stack.h */,
+				9B35FEE20B2675F9008DE8C7 /* code_module.h */,
+				9B35FEE30B2675F9008DE8C7 /* code_modules.h */,
+				9BDF16FD0B1B8ACD00F8391B /* memory_region.h */,
+				9BDF16FE0B1B8ACD00F8391B /* minidump.h */,
+				9BDF16FF0B1B8ACD00F8391B /* minidump_processor.h */,
+				9BDF17000B1B8ACD00F8391B /* process_state.h */,
+				9B3904950B2E52D90059FABE /* source_line_resolver_interface.h */,
+				9BDF17010B1B8ACD00F8391B /* stack_frame.h */,
+				9BDF17020B1B8ACD00F8391B /* stack_frame_cpu.h */,
+				9BDF17030B1B8ACD00F8391B /* stackwalker.h */,
+				9BDF17040B1B8ACD00F8391B /* symbol_supplier.h */,
+				9B44619D0B66C66B00BBB817 /* system_info.h */,
+			);
+			path = processor;
+			sourceTree = "<group>";
+		};
+		9BDF17280B1B8B0200F8391B /* processor */ = {
+			isa = PBXGroup;
+			children = (
+				4D2C7222126F9AF900B43EAF /* exploitability_win.cc */,
+				F407DC40185773C10064622B /* exploitability_linux.cc */,
+				F407DC41185773C10064622B /* stack_frame_symbolizer.cc */,
+				F407DC42185773C10064622B /* stackwalker_arm64.cc */,
+				F407DC43185773C10064622B /* stackwalker_arm64.h */,
+				F407DC44185773C10064622B /* stackwalker_mips.cc */,
+				F407DC45185773C10064622B /* stackwalker_mips.h */,
+				F407DC46185773C10064622B /* stackwalker_ppc64.cc */,
+				F407DC47185773C10064622B /* stackwalker_ppc64.h */,
+				4D2C721E126F9ADE00B43EAF /* exploitability.cc */,
+				4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */,
+				D2A5DD621188658B00081F03 /* tokenize.cc */,
+				D2A5DD4C1188651100081F03 /* cfi_frame_info.cc */,
+				F9F0706510FBC02D0037B88B /* stackwalker_arm.cc */,
+				F9F0706610FBC02D0037B88B /* stackwalker_arm.h */,
+				9B3904980B2E52FD0059FABE /* basic_source_line_resolver.cc */,
+				9BDF1AFA0B1BEB6300F8391B /* address_map-inl.h */,
+				9BDF1AFB0B1BEB6300F8391B /* address_map.h */,
+				9B35FEE60B26761C008DE8C7 /* basic_code_module.h */,
+				9B35FEE70B26761C008DE8C7 /* basic_code_modules.cc */,
+				9B35FEE80B26761C008DE8C7 /* basic_code_modules.h */,
+				9BDF172A0B1B8B2400F8391B /* call_stack.cc */,
+				8B40BDBF0C0638E4009535AF /* logging.cc */,
+				9BDF173F0B1B8B9A00F8391B /* minidump.cc */,
+				9BDF172B0B1B8B2400F8391B /* minidump_processor.cc */,
+				9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */,
+				F47180571D7467630032F208 /* proc_maps_linux.cc */,
+				9BDF175B0B1B8C1B00F8391B /* process_state.cc */,
+				9BDF1A7A0B1BE30100F8391B /* range_map-inl.h */,
+				9BDF1A7B0B1BE30100F8391B /* range_map.h */,
+				9BDF17530B1B8BF900F8391B /* stackwalker.cc */,
+				9BDF17510B1B8BF900F8391B /* stackwalker_ppc.cc */,
+				9BDF17520B1B8BF900F8391B /* stackwalker_x86.cc */,
+				FD8EDEAC0CADDAD400A5EDF1 /* stackwalker_sparc.cc */,
+				FD8EDEAD0CADDAD400A5EDF1 /* stackwalker_sparc.h */,
+				FD6625C40CF4D438004AC844 /* stackwalker_amd64.cc */,
+				FD6625C50CF4D438004AC844 /* stackwalker_amd64.h */,
+				F47180591D7468A40032F208 /* symbolic_constants_win.cc */,
+			);
+			name = processor;
+			sourceTree = "<group>";
+		};
+		9BE650AB0B52FE1A00611104 /* common */ = {
+			isa = PBXGroup;
+			children = (
+				9BE650AC0B52FE3000611104 /* file_id.cc */,
+				9BE650AD0B52FE3000611104 /* file_id.h */,
+				9BE650AE0B52FE3000611104 /* macho_id.cc */,
+				9BE650AF0B52FE3000611104 /* macho_id.h */,
+				9BE650B00B52FE3000611104 /* macho_walker.cc */,
+				9BE650B10B52FE3000611104 /* macho_walker.h */,
+			);
+			name = common;
+			sourceTree = "<group>";
+		};
+		F9C7ECE10E8ABC7F00E953AD /* DWARF */ = {
+			isa = PBXGroup;
+			children = (
+				F9C7ECE20E8ABCA600E953AD /* bytereader.cc */,
+				F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */,
+				8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */,
+				8B31FFC411F0C8AB00FCF3E4 /* dwarf2diehandler.h */,
+				F47180541D745DEF0032F208 /* elf_reader.cc */,
+				F47180551D745DEF0032F208 /* elf_reader.h */,
+				F9C7ECE40E8ABCA600E953AD /* functioninfo.cc */,
+			);
+			name = DWARF;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F960486AA7600D96B5E /* crash_report */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "crash_report" */;
+			buildPhases = (
+				8DD76F990486AA7600D96B5E /* Sources */,
+				8DD76F9B0486AA7600D96B5E /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = crash_report;
+			productInstallPath = "$(HOME)/bin";
+			productName = crash_report;
+			productReference = 8DD76FA10486AA7600D96B5E /* crash_report */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+			};
+			buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "crash_report" */;
+			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = en;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 08FB7794FE84155DC02AAC07 /* crash_report */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				8DD76F960486AA7600D96B5E /* crash_report */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F990486AA7600D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				162F64FE161C5ECB00CD68D5 /* arch_utilities.cc in Sources */,
+				8DD76F9A0486AA7600D96B5E /* crash_report.mm in Sources */,
+				F47180581D7467630032F208 /* proc_maps_linux.cc in Sources */,
+				9BDF172C0B1B8B2400F8391B /* call_stack.cc in Sources */,
+				9BDF172D0B1B8B2400F8391B /* minidump_processor.cc in Sources */,
+				9BDF17410B1B8B9A00F8391B /* minidump.cc in Sources */,
+				F44DDD8719C85CD50047280E /* dump_context.cc in Sources */,
+				9BDF17540B1B8BF900F8391B /* stackwalker_ppc.cc in Sources */,
+				9BDF17550B1B8BF900F8391B /* stackwalker_x86.cc in Sources */,
+				9BDF17560B1B8BF900F8391B /* stackwalker.cc in Sources */,
+				9BDF175D0B1B8C1B00F8391B /* process_state.cc in Sources */,
+				F47180561D745DEF0032F208 /* elf_reader.cc in Sources */,
+				9BDF176E0B1B8CB100F8391B /* on_demand_symbol_supplier.mm in Sources */,
+				9BDF1A280B1BD58200F8391B /* pathname_stripper.cc in Sources */,
+				9BDF21A70B1E825400F8391B /* dump_syms.cc in Sources */,
+				9B35FEEA0B26761C008DE8C7 /* basic_code_modules.cc in Sources */,
+				9B3904990B2E52FD0059FABE /* basic_source_line_resolver.cc in Sources */,
+				9BE650B20B52FE3000611104 /* file_id.cc in Sources */,
+				9BE650B40B52FE3000611104 /* macho_id.cc in Sources */,
+				9BE650B60B52FE3000611104 /* macho_walker.cc in Sources */,
+				557800400BE1F28500EC23E0 /* macho_utilities.cc in Sources */,
+				8B40BDC00C0638E4009535AF /* logging.cc in Sources */,
+				FD8EDEAE0CADDAD400A5EDF1 /* stackwalker_sparc.cc in Sources */,
+				FD6625CD0CF4D45C004AC844 /* stackwalker_amd64.cc in Sources */,
+				F9C7ECE50E8ABCA600E953AD /* bytereader.cc in Sources */,
+				F9C7ECE60E8ABCA600E953AD /* dwarf2reader.cc in Sources */,
+				F9C7ECE70E8ABCA600E953AD /* functioninfo.cc in Sources */,
+				F9F0706710FBC02D0037B88B /* stackwalker_arm.cc in Sources */,
+				D2A5DD4D1188651100081F03 /* cfi_frame_info.cc in Sources */,
+				D2A5DD631188658B00081F03 /* tokenize.cc in Sources */,
+				8B31FF2A11F0C62700FCF3E4 /* dwarf_cfi_to_module.cc in Sources */,
+				F4D43B2F1A38490700C290B2 /* microdump.cc in Sources */,
+				8B31FF2B11F0C62700FCF3E4 /* dwarf_cu_to_module.cc in Sources */,
+				F44DDD8819C85CD50047280E /* dump_object.cc in Sources */,
+				8B31FF2C11F0C62700FCF3E4 /* dwarf_line_to_module.cc in Sources */,
+				8B31FF4111F0C64400FCF3E4 /* stabs_reader.cc in Sources */,
+				8B31FF4211F0C64400FCF3E4 /* stabs_to_module.cc in Sources */,
+				8B31FF7411F0C6E000FCF3E4 /* macho_reader.cc in Sources */,
+				8B31FF8811F0C6FB00FCF3E4 /* language.cc in Sources */,
+				8B31FF8911F0C6FB00FCF3E4 /* module.cc in Sources */,
+				8B31FFC511F0C8AB00FCF3E4 /* dwarf2diehandler.cc in Sources */,
+				F407DC49185773C10064622B /* stack_frame_symbolizer.cc in Sources */,
+				F471805A1D7468A40032F208 /* symbolic_constants_win.cc in Sources */,
+				4D2C721B126F9ACC00B43EAF /* source_line_resolver_base.cc in Sources */,
+				4D2C721F126F9ADE00B43EAF /* exploitability.cc in Sources */,
+				4D2C7223126F9AF900B43EAF /* exploitability_win.cc in Sources */,
+				4D2C7227126F9B0F00B43EAF /* disassembler_x86.cc in Sources */,
+				F407DC48185773C10064622B /* exploitability_linux.cc in Sources */,
+				4214B800211109A600B769FA /* convert_old_arm64_context.cc in Sources */,
+				4D2C722B126F9B5A00B43EAF /* x86_disasm.c in Sources */,
+				4D2C722D126F9B6E00B43EAF /* x86_misc.c in Sources */,
+				4D2C722F126F9B8300B43EAF /* x86_operand_list.c in Sources */,
+				F407DC4A185773C10064622B /* stackwalker_arm64.cc in Sources */,
+				4D2C7233126F9BB000B43EAF /* ia32_invariant.c in Sources */,
+				4D2C7235126F9BC200B43EAF /* ia32_settings.c in Sources */,
+				4D2C7246126F9C0B00B43EAF /* ia32_insn.c in Sources */,
+				4D2C724A126F9C2300B43EAF /* ia32_opcode_tables.c in Sources */,
+				4D2C724C126F9C3800B43EAF /* ia32_implicit.c in Sources */,
+				4247E6402110D5A500482558 /* path_helper.cc in Sources */,
+				F44DDD8919C85CD50047280E /* microdump_processor.cc in Sources */,
+				4D2C724E126F9C4D00B43EAF /* ia32_reg.c in Sources */,
+				4D2C725B126F9C8000B43EAF /* ia32_operand.c in Sources */,
+				F407DC4C185773C10064622B /* stackwalker_ppc64.cc in Sources */,
+				4D2C725D126F9C9200B43EAF /* x86_insn.c in Sources */,
+				4D2C7264126F9CBB00B43EAF /* ia32_modrm.c in Sources */,
+				F407DC4B185773C10064622B /* stackwalker_mips.cc in Sources */,
+				4D2C726D126F9CDC00B43EAF /* x86_imm.c in Sources */,
+				4D72CA5713DFBA84006CABE3 /* md5.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB927508733DD40010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				HEADER_SEARCH_PATHS = ../../../../src;
+				PRODUCT_NAME = crash_report;
+			};
+			name = Debug;
+		};
+		1DEB927608733DD40010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				HEADER_SEARCH_PATHS = ../../../../src;
+				PRODUCT_NAME = crash_report;
+			};
+			name = Release;
+		};
+		1DEB927908733DD40010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+			};
+			name = Debug;
+		};
+		1DEB927A08733DD40010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "crash_report" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB927508733DD40010E9CD /* Debug */,
+				1DEB927608733DD40010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "crash_report" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB927908733DD40010E9CD /* Debug */,
+				1DEB927A08733DD40010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/src/tools/mac/crash_report/on_demand_symbol_supplier.h b/src/tools/mac/crash_report/on_demand_symbol_supplier.h
new file mode 100644
index 0000000..69b4140
--- /dev/null
+++ b/src/tools/mac/crash_report/on_demand_symbol_supplier.h
@@ -0,0 +1,111 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// on_demand_symbol_supplier.h: Provides a Symbol Supplier that will create
+// a breakpad symbol file on demand.
+
+#ifndef TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
+#define TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
+
+#include <map>
+#include <string>
+#include "google_breakpad/processor/symbol_supplier.h"
+
+namespace google_breakpad {
+
+using std::map;
+using std::string;
+class MinidumpModule;
+
+class OnDemandSymbolSupplier : public SymbolSupplier {
+ public:
+  // |search_dir| is the directory to search for alternative symbols with
+  // the same name as the module in the minidump
+  OnDemandSymbolSupplier(const string& search_dir,
+                         const string& symbol_search_dir);
+  virtual ~OnDemandSymbolSupplier() {}
+
+  // Returns the path to the symbol file for the given module.
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file);
+
+  // Returns the path to the symbol file for the given module.
+  virtual SymbolResult GetSymbolFile(const CodeModule* module,
+                                     const SystemInfo* system_info,
+                                     string* symbol_file,
+                                     string* symbol_data);
+  // Allocates data buffer on heap, and takes the ownership of
+  // the data buffer.
+  virtual SymbolResult GetCStringSymbolData(const CodeModule* module,
+                                            const SystemInfo* system_info,
+                                            string* symbol_file,
+                                            char** symbol_data,
+                                            size_t* symbol_data_size);
+
+  // Delete the data buffer allocated for module in GetCStringSymbolData().
+  virtual void FreeSymbolData(const CodeModule* module);
+
+ protected:
+  // Search directory
+  string search_dir_;
+  string symbol_search_dir_;
+
+  // When we create a symbol file for a module, save the name of the module
+  // and the path to that module's symbol file.
+  map<string, string> module_file_map_;
+
+  // Map of allocated data buffers, keyed by module->code_file().
+  map<string, char*> memory_buffers_;
+
+  // Return the name for |module|  This will be the value used as the key
+  // to the |module_file_map_|.
+  string GetNameForModule(const CodeModule* module);
+
+  // Find the module on local system.  If the module resides in a different
+  // location than the full path in the minidump, this will be the location
+  // used.
+  string GetLocalModulePath(const CodeModule* module);
+
+  // Return the full path for |module|.
+  string GetModulePath(const CodeModule* module);
+
+  // Return the path to the symbol file for |module|.  If an empty string is
+  // returned, then |module| doesn't have a symbol file.
+  string GetModuleSymbolFile(const CodeModule* module);
+
+  // Generate the breakpad symbol file for |module|.  Return true if successful.
+  // File is generated in /tmp.
+  bool GenerateSymbolFile(const CodeModule* module,
+                          const SystemInfo* system_info);
+};
+
+}  // namespace google_breakpad
+
+#endif  // TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
diff --git a/src/tools/mac/crash_report/on_demand_symbol_supplier.mm b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm
new file mode 100644
index 0000000..cfcecee
--- /dev/null
+++ b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm
@@ -0,0 +1,314 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#import <Foundation/Foundation.h>
+#include <sys/stat.h>
+#include <map>
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <utility>
+
+#include "google_breakpad/processor/basic_source_line_resolver.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/pathname_stripper.h"
+
+#include "on_demand_symbol_supplier.h"
+#include "common/mac/dump_syms.h"
+
+using std::map;
+using std::string;
+
+using google_breakpad::OnDemandSymbolSupplier;
+using google_breakpad::PathnameStripper;
+using google_breakpad::SymbolSupplier;
+using google_breakpad::SystemInfo;
+
+OnDemandSymbolSupplier::OnDemandSymbolSupplier(const string& search_dir,
+                                               const string& symbol_search_dir)
+  : search_dir_(search_dir) {
+  NSFileManager* mgr = [NSFileManager defaultManager];
+  size_t length = symbol_search_dir.length();
+  if (length) {
+    // Load all sym files in symbol_search_dir into our module_file_map
+    // A symbol file always starts with a line like this:
+    // MODULE mac x86 BBF0A8F9BEADDD2048E6464001CA193F0 GoogleDesktopDaemon
+    // or
+    // MODULE mac ppc BBF0A8F9BEADDD2048E6464001CA193F0 GoogleDesktopDaemon
+    const char* symbolSearchStr = symbol_search_dir.c_str();
+    NSString* symbolSearchPath = 
+      [mgr stringWithFileSystemRepresentation:symbolSearchStr 
+                                       length:strlen(symbolSearchStr)];
+    NSDirectoryEnumerator* dirEnum = [mgr enumeratorAtPath:symbolSearchPath];
+    NSString* fileName;
+    NSCharacterSet* hexSet = 
+      [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEF"];
+    NSCharacterSet* newlineSet = 
+      [NSCharacterSet characterSetWithCharactersInString:@"\r\n"];
+    while ((fileName = [dirEnum nextObject])) {
+      // Check to see what type of file we have
+      NSDictionary* attrib = [dirEnum fileAttributes];
+      NSString* fileType = [attrib objectForKey:NSFileType];
+      if ([fileType isEqualToString:NSFileTypeDirectory]) {
+        // Skip subdirectories
+        [dirEnum skipDescendents];
+      } else {
+        NSString* filePath = [symbolSearchPath stringByAppendingPathComponent:fileName];
+        NSString* dataStr = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
+        if (dataStr) {
+          // Check file to see if it is of appropriate type, and grab module
+          // name.
+          NSScanner* scanner = [NSScanner scannerWithString:dataStr];
+          BOOL goodScan = [scanner scanString:@"MODULE mac " intoString:nil];
+          if (goodScan) {
+            goodScan = ([scanner scanString:@"x86 " intoString:nil] ||
+                        [scanner scanString:@"x86_64 " intoString:nil] ||
+                        [scanner scanString:@"ppc " intoString:nil]);
+            if (goodScan) {
+              NSString* moduleID;
+              goodScan = [scanner scanCharactersFromSet:hexSet 
+                                             intoString:&moduleID];
+              if (goodScan) {
+                // Module IDs are always 33 chars long
+                goodScan = [moduleID length] == 33;
+                if (goodScan) {
+                  NSString* moduleName;
+                  goodScan = [scanner scanUpToCharactersFromSet:newlineSet 
+                                                     intoString:&moduleName];
+                  if (goodScan) {
+                    goodScan = [moduleName length] > 0;
+                    if (goodScan) {
+                      const char* moduleNameStr = [moduleName UTF8String];
+                      const char* filePathStr = [filePath fileSystemRepresentation];
+                      // Map our file
+                      module_file_map_[moduleNameStr] = filePathStr;
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+SymbolSupplier::SymbolResult
+OnDemandSymbolSupplier::GetSymbolFile(const CodeModule* module,
+                                      const SystemInfo* system_info,
+                                      string* symbol_file) {
+  string path(GetModuleSymbolFile(module));
+
+  if (path.empty()) {
+    if (!GenerateSymbolFile(module, system_info))
+      return NOT_FOUND;
+
+    path = GetModuleSymbolFile(module);
+  }
+
+  if (path.empty())
+    return NOT_FOUND;
+
+  *symbol_file = path;
+  return FOUND;
+}
+
+SymbolSupplier::SymbolResult
+OnDemandSymbolSupplier::GetSymbolFile(const CodeModule* module,
+                                      const SystemInfo* system_info,
+                                      string* symbol_file,
+                                      string* symbol_data) {
+  SymbolSupplier::SymbolResult s = GetSymbolFile(module,
+                                                 system_info,
+                                                 symbol_file);
+
+
+  if (s == FOUND) {
+    std::ifstream in(symbol_file->c_str());
+    getline(in, *symbol_data, std::string::traits_type::to_char_type(
+                std::string::traits_type::eof()));
+    in.close();
+  }
+
+  return s;
+}
+
+SymbolSupplier::SymbolResult
+OnDemandSymbolSupplier::GetCStringSymbolData(const CodeModule* module,
+                                             const SystemInfo* system_info,
+                                             string* symbol_file,
+                                             char** symbol_data,
+                                             size_t* symbol_data_size) {
+  std::string symbol_data_string;
+  SymbolSupplier::SymbolResult result = GetSymbolFile(module,
+                                                      system_info,
+                                                      symbol_file,
+                                                      &symbol_data_string);
+  if (result == FOUND) {
+    *symbol_data_size = symbol_data_string.size() + 1;
+    *symbol_data = new char[*symbol_data_size];
+    if (*symbol_data == NULL) {
+      // Should return INTERRUPT on memory allocation failure.
+      return INTERRUPT;
+    }
+    memcpy(*symbol_data, symbol_data_string.c_str(), symbol_data_string.size());
+    (*symbol_data)[symbol_data_string.size()] = '\0';
+    memory_buffers_.insert(make_pair(module->code_file(), *symbol_data));
+  }
+  return result;
+}
+
+void OnDemandSymbolSupplier::FreeSymbolData(const CodeModule* module) {
+  map<string, char*>::iterator it = memory_buffers_.find(module->code_file());
+  if (it != memory_buffers_.end()) {
+    delete [] it->second;
+    memory_buffers_.erase(it);
+  }
+}
+
+string OnDemandSymbolSupplier::GetLocalModulePath(const CodeModule* module) {
+  NSFileManager* mgr = [NSFileManager defaultManager];
+  const char* moduleStr = module->code_file().c_str();
+  NSString* modulePath =
+    [mgr stringWithFileSystemRepresentation:moduleStr length:strlen(moduleStr)];
+  const char* searchStr = search_dir_.c_str();
+  NSString* searchDir =
+    [mgr stringWithFileSystemRepresentation:searchStr length:strlen(searchStr)];
+
+  if ([mgr fileExistsAtPath:modulePath])
+    return module->code_file();
+
+  // If the module is not found, try to start appending the components to the
+  // search string and stop if a file (not dir) is found or all components
+  // have been appended
+  NSArray* pathComponents = [modulePath componentsSeparatedByString:@"/"];
+  size_t count = [pathComponents count];
+  NSMutableString* path = [NSMutableString string];
+
+  for (size_t i = 0; i < count; ++i) {
+    [path setString:searchDir];
+
+    for (size_t j = 0; j < i + 1; ++j) {
+      size_t idx = count - 1 - i + j;
+      [path appendFormat:@"/%@", [pathComponents objectAtIndex:idx]];
+    }
+
+    BOOL isDir;
+    if ([mgr fileExistsAtPath:path isDirectory:&isDir] && (!isDir)) {
+      return [path fileSystemRepresentation];
+    }
+  }
+
+  return "";
+}
+
+string OnDemandSymbolSupplier::GetModulePath(const CodeModule* module) {
+  return module->code_file();
+}
+
+string OnDemandSymbolSupplier::GetNameForModule(const CodeModule* module) {
+  return PathnameStripper::File(module->code_file());
+}
+
+string OnDemandSymbolSupplier::GetModuleSymbolFile(const CodeModule* module) {
+  string name(GetNameForModule(module));
+  map<string, string>::iterator result = module_file_map_.find(name);
+
+  return (result == module_file_map_.end()) ? "" : (*result).second;
+}
+
+static float GetFileModificationTime(const char* path) {
+  float result = 0;
+  struct stat file_stat;
+  if (stat(path, &file_stat) == 0)
+    result = (float)file_stat.st_mtimespec.tv_sec +
+      (float)file_stat.st_mtimespec.tv_nsec / 1.0e9f;
+
+  return result;
+}
+
+bool OnDemandSymbolSupplier::GenerateSymbolFile(const CodeModule* module,
+                                                const SystemInfo* system_info) {
+  bool result = true;
+  string name = GetNameForModule(module);
+  string module_path = GetLocalModulePath(module);
+  NSString* symbol_path = [NSString stringWithFormat:@"/tmp/%s.%s.sym",
+    name.c_str(), system_info->cpu.c_str()];
+
+  if (module_path.empty())
+    return false;
+
+  // Check if there's already a symbol file cached.  Ensure that the file is
+  // newer than the module.  Otherwise, generate a new one.
+  BOOL generate_file = YES;
+  if ([[NSFileManager defaultManager] fileExistsAtPath:symbol_path]) {
+    // Check if the module file is newer than the saved symbols
+    float cache_time =
+      GetFileModificationTime([symbol_path fileSystemRepresentation]);
+    float module_time =
+      GetFileModificationTime(module_path.c_str());
+
+    if (cache_time > module_time)
+      generate_file = NO;
+  }
+
+  if (generate_file) {
+    DumpSymbols dump(ALL_SYMBOL_DATA, false);
+    if (dump.Read(module_path)) {
+      // What Breakpad calls "x86" should be given to the system as "i386".
+      std::string architecture;
+      if (system_info->cpu.compare("x86") == 0) {
+        architecture = "i386";
+      } else {
+        architecture = system_info->cpu;
+      }
+
+      if (dump.SetArchitecture(architecture)) {
+        std::fstream file([symbol_path fileSystemRepresentation],
+                          std::ios_base::out | std::ios_base::trunc);
+        dump.WriteSymbolFile(file);
+      } else {
+        printf("Architecture %s not available for %s\n",
+               system_info->cpu.c_str(), name.c_str());
+        result = false;
+      }
+    } else {
+      printf("Unable to open %s\n", module_path.c_str());
+      result = false;
+    }
+  }
+
+  // Add the mapping
+  if (result)
+    module_file_map_[name] = [symbol_path fileSystemRepresentation];
+
+  return result;
+}
diff --git a/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj b/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..5b644e2
--- /dev/null
+++ b/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj
@@ -0,0 +1,1857 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXAggregateTarget section */
+		B88FAFC9116BDCAD00407530 /* all_unittests */ = {
+			isa = PBXAggregateTarget;
+			buildConfigurationList = B88FAFCC116BDCCC00407530 /* Build configuration list for PBXAggregateTarget "all_unittests" */;
+			buildPhases = (
+				B88FB094116CE73E00407530 /* ShellScript */,
+			);
+			dependencies = (
+				B88FB15B116CF53E00407530 /* PBXTargetDependency */,
+				B88FAFCF116BDD7000407530 /* PBXTargetDependency */,
+				B88FB01D116BDF9800407530 /* PBXTargetDependency */,
+				B88FB167116CF54B00407530 /* PBXTargetDependency */,
+				B88FAFD1116BDD7000407530 /* PBXTargetDependency */,
+				B88FB165116CF54B00407530 /* PBXTargetDependency */,
+				B88FB161116CF54B00407530 /* PBXTargetDependency */,
+				B88FB15F116CF54B00407530 /* PBXTargetDependency */,
+				B88FB15D116CF54B00407530 /* PBXTargetDependency */,
+				B84A9201116CF7D2006C210E /* PBXTargetDependency */,
+				B88FB0C8116CEB4A00407530 /* PBXTargetDependency */,
+				8B31051511F100CF00FCF3E4 /* PBXTargetDependency */,
+			);
+			name = all_unittests;
+			productName = all_unittests;
+		};
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+		162F64FA161C591500CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F8161C591500CD68D5 /* arch_utilities.cc */; };
+		162F6500161C5F2200CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F8161C591500CD68D5 /* arch_utilities.cc */; };
+		4247E63D2110D4B200482558 /* path_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = EB06C7511FEBC515000214D9 /* path_helper.cc */; };
+		4262382721AC496F00E5A3A6 /* dwarf_range_list_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4262382521AC496F00E5A3A6 /* dwarf_range_list_handler.cc */; };
+		4262382821AC49A000E5A3A6 /* dwarf_range_list_handler.h in Sources */ = {isa = PBXBuildFile; fileRef = 4262382621AC496F00E5A3A6 /* dwarf_range_list_handler.h */; };
+		4D72CAF513DFBAC2006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CAF413DFBAC2006CABE3 /* md5.cc */; };
+		8BCAAA4C1CE3A7980046090B /* elf_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAAA4A1CE3A7980046090B /* elf_reader.cc */; };
+		8BCAAA4D1CE3B1260046090B /* elf_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAAA4A1CE3A7980046090B /* elf_reader.cc */; };
+		B84A91F8116CF78F006C210E /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B84A91FB116CF7AF006C210E /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B84A91FC116CF7AF006C210E /* stabs_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE3C11666C8900407530 /* stabs_to_module.cc */; };
+		B84A91FD116CF7AF006C210E /* stabs_to_module_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D8116CEC0600407530 /* stabs_to_module_unittest.cc */; };
+		B88FAE1911665FE400407530 /* dwarf2diehandler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE1711665FE400407530 /* dwarf2diehandler.cc */; };
+		B88FAE261166603300407530 /* dwarf_cu_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE1E1166603300407530 /* dwarf_cu_to_module.cc */; };
+		B88FAE271166603300407530 /* dwarf_line_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE201166603300407530 /* dwarf_line_to_module.cc */; };
+		B88FAE281166603300407530 /* language.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE221166603300407530 /* language.cc */; };
+		B88FAE291166603300407530 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B88FAE2C1166606200407530 /* macho_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E6E1166571D00DD08C9 /* macho_reader.cc */; };
+		B88FAE351166673E00407530 /* dwarf_cfi_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE331166673E00407530 /* dwarf_cfi_to_module.cc */; };
+		B88FAE3B11666C6F00407530 /* stabs_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE3911666C6F00407530 /* stabs_reader.cc */; };
+		B88FAE3E11666C8900407530 /* stabs_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE3C11666C8900407530 /* stabs_to_module.cc */; };
+		B88FAF37116A595400407530 /* cfi_assembler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAF34116A595400407530 /* cfi_assembler.cc */; };
+		B88FAF38116A595400407530 /* dwarf2reader_cfi_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAF36116A595400407530 /* dwarf2reader_cfi_unittest.cc */; };
+		B88FAF3F116A5A2E00407530 /* dwarf2reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F95B422F0E0E22D100DBDE83 /* dwarf2reader.cc */; };
+		B88FAF40116A5A2E00407530 /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F95B422C0E0E22D100DBDE83 /* bytereader.cc */; };
+		B88FB00F116BDEA700407530 /* stabs_reader_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB003116BDE7200407530 /* stabs_reader_unittest.cc */; };
+		B88FB010116BDEA700407530 /* stabs_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE3911666C6F00407530 /* stabs_reader.cc */; };
+		B88FB028116BE03100407530 /* test_assembler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE0911665B5700407530 /* test_assembler.cc */; };
+		B88FB029116BE03100407530 /* gmock-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0EA311665AEA00DD08C9 /* gmock-all.cc */; };
+		B88FB02A116BE03100407530 /* gtest_main.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E9F11665AC300DD08C9 /* gtest_main.cc */; };
+		B88FB02B116BE03100407530 /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0EA011665AC300DD08C9 /* gtest-all.cc */; };
+		B88FB03F116BE24200407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB042116BE3C400407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB057116C0CDE00407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB0BD116CEAE000407530 /* module_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0B5116CEA8A00407530 /* module_unittest.cc */; };
+		B88FB0C1116CEB0600407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB0C4116CEB4100407530 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B88FB0E3116CEEB000407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB0E5116CEED300407530 /* dwarf2diehandler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE1711665FE400407530 /* dwarf2diehandler.cc */; };
+		B88FB0E6116CEED300407530 /* dwarf2diehandler_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0DB116CEC5800407530 /* dwarf2diehandler_unittest.cc */; };
+		B88FB0F6116CEF2000407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB0FA116CF00E00407530 /* dwarf_line_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE201166603300407530 /* dwarf_line_to_module.cc */; };
+		B88FB0FB116CF00E00407530 /* dwarf_line_to_module_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D7116CEC0600407530 /* dwarf_line_to_module_unittest.cc */; };
+		B88FB0FE116CF02400407530 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B88FB10E116CF08100407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB112116CF1F000407530 /* dwarf_cu_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE1E1166603300407530 /* dwarf_cu_to_module.cc */; };
+		B88FB113116CF1F000407530 /* dwarf_cu_to_module_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D6116CEC0600407530 /* dwarf_cu_to_module_unittest.cc */; };
+		B88FB114116CF1F000407530 /* language.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE221166603300407530 /* language.cc */; };
+		B88FB115116CF1F000407530 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B88FB123116CF28500407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB129116CF2DD00407530 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE241166603300407530 /* module.cc */; };
+		B88FB12A116CF2DD00407530 /* dwarf_cfi_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE331166673E00407530 /* dwarf_cfi_to_module.cc */; };
+		B88FB12B116CF2DD00407530 /* dwarf_cfi_to_module_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D5116CEC0600407530 /* dwarf_cfi_to_module_unittest.cc */; };
+		B88FB139116CF31600407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB13D116CF38300407530 /* cfi_assembler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAF34116A595400407530 /* cfi_assembler.cc */; };
+		B88FB13E116CF38300407530 /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F95B422C0E0E22D100DBDE83 /* bytereader.cc */; };
+		B88FB13F116CF38300407530 /* bytereader_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0DA116CEC5800407530 /* bytereader_unittest.cc */; };
+		B88FB14F116CF4AE00407530 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		B88FB152116CF4D300407530 /* byte_cursor_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D4116CEC0600407530 /* byte_cursor_unittest.cc */; };
+		B89E0E781166576C00DD08C9 /* macho_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E6E1166571D00DD08C9 /* macho_reader.cc */; };
+		B89E0E7A1166576C00DD08C9 /* macho_dump.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E701166573700DD08C9 /* macho_dump.cc */; };
+		B89E0E9911665A7200DD08C9 /* macho_reader_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E6D1166571D00DD08C9 /* macho_reader_unittest.cc */; };
+		B89E0E9A11665A7200DD08C9 /* macho_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = B89E0E6E1166571D00DD08C9 /* macho_reader.cc */; };
+		B8C5B5171166534700D34F4E /* dwarf2reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F95B422F0E0E22D100DBDE83 /* dwarf2reader.cc */; };
+		B8C5B5181166534700D34F4E /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F95B422C0E0E22D100DBDE83 /* bytereader.cc */; };
+		B8C5B5191166534700D34F4E /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 557800890BE1F3AB00EC23E0 /* macho_utilities.cc */; };
+		B8C5B51A1166534700D34F4E /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650410B52F6D800611104 /* file_id.cc */; };
+		B8C5B51B1166534700D34F4E /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650430B52F6D800611104 /* macho_id.cc */; };
+		B8C5B51C1166534700D34F4E /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650450B52F6D800611104 /* macho_walker.cc */; };
+		B8C5B51D1166534700D34F4E /* dump_syms.cc in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* dump_syms.cc */; };
+		B8C5B51E1166534700D34F4E /* dump_syms_tool.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF186E0B1BB43700F8391B /* dump_syms_tool.cc */; };
+		B8C5B523116653BA00D34F4E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+		D21F97D711CBA12300239E38 /* test_assembler_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FB0D9116CEC0600407530 /* test_assembler_unittest.cc */; };
+		D21F97D811CBA13D00239E38 /* libgtestmockall.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B88FB024116BDFFF00407530 /* libgtestmockall.a */; };
+		D21F97E911CBA1FF00239E38 /* test_assembler.cc in Sources */ = {isa = PBXBuildFile; fileRef = B88FAE0911665B5700407530 /* test_assembler.cc */; };
+		EB06C7531FEBC516000214D9 /* path_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = EB06C7511FEBC515000214D9 /* path_helper.cc */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		8B31051411F100CF00FCF3E4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D21F97D111CBA0F200239E38;
+			remoteInfo = test_assembler_unittest;
+		};
+		B84A91F9116CF796006C210E /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B84A9200116CF7D2006C210E /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B84A91F3116CF784006C210E;
+			remoteInfo = stabs_to_module_unittest;
+		};
+		B88FAFCE116BDD7000407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B89E0E9411665A6400DD08C9;
+			remoteInfo = macho_reader_unittest;
+		};
+		B88FAFD0116BDD7000407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FAF2E116A591D00407530;
+			remoteInfo = dwarf2reader_cfi_unittest;
+		};
+		B88FB01C116BDF9800407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB006116BDE8300407530;
+			remoteInfo = stabs_reader_unittest;
+		};
+		B88FB039116BE17E00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB087116CE6D800407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB08F116CE71000407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB0BF116CEAFE00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB0C7116CEB4A00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB0B8116CEABF00407530;
+			remoteInfo = module_unittest;
+		};
+		B88FB0E7116CEEDA00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB0F7116CEF2E00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB10F116CF08A00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB124116CF29E00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB13B116CF35C00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB150116CF4C100407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB023116BDFFF00407530;
+			remoteInfo = gtestmockall;
+		};
+		B88FB15A116CF53E00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB14A116CF4A700407530;
+			remoteInfo = byte_cursor_unittest;
+		};
+		B88FB15C116CF54B00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB11E116CF27F00407530;
+			remoteInfo = dwarf_cfi_to_module_unittest;
+		};
+		B88FB15E116CF54B00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB0F1116CEF1900407530;
+			remoteInfo = dwarf_line_to_module_unittest;
+		};
+		B88FB160116CF54B00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB109116CF07900407530;
+			remoteInfo = dwarf_cu_to_module_unittest;
+		};
+		B88FB164116CF54B00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB0DE116CEEA800407530;
+			remoteInfo = dwarf2diehandler_unittest;
+		};
+		B88FB166116CF54B00407530 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B88FB134116CF30F00407530;
+			remoteInfo = bytereader_unittest;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		08FB7796FE84155DC02AAC07 /* dump_syms.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = dump_syms.cc; path = ../../../common/mac/dump_syms.cc; sourceTree = "<group>"; };
+		08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		162F64F8161C591500CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
+		162F64F9161C591500CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
+		4262382521AC496F00E5A3A6 /* dwarf_range_list_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_range_list_handler.cc; path = ../../../common/dwarf_range_list_handler.cc; sourceTree = "<group>"; };
+		4262382621AC496F00E5A3A6 /* dwarf_range_list_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_range_list_handler.h; path = ../../../common/dwarf_range_list_handler.h; sourceTree = "<group>"; };
+		4D72CAF413DFBAC2006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../../common/md5.cc; sourceTree = SOURCE_ROOT; };
+		557800890BE1F3AB00EC23E0 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; };
+		5578008A0BE1F3AB00EC23E0 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; };
+		8B31023E11F0CF1C00FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+		8BCAAA4A1CE3A7980046090B /* elf_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = elf_reader.cc; path = ../../../common/dwarf/elf_reader.cc; sourceTree = "<group>"; };
+		8BCAAA4B1CE3A7980046090B /* elf_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = elf_reader.h; path = ../../../common/dwarf/elf_reader.h; sourceTree = "<group>"; };
+		9BDF186D0B1BB43700F8391B /* dump_syms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dump_syms.h; path = ../../../common/mac/dump_syms.h; sourceTree = "<group>"; };
+		9BDF186E0B1BB43700F8391B /* dump_syms_tool.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = dump_syms_tool.cc; sourceTree = "<group>"; };
+		9BE650410B52F6D800611104 /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; };
+		9BE650420B52F6D800611104 /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ../../../common/mac/file_id.h; sourceTree = SOURCE_ROOT; };
+		9BE650430B52F6D800611104 /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ../../../common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; };
+		9BE650440B52F6D800611104 /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ../../../common/mac/macho_id.h; sourceTree = SOURCE_ROOT; };
+		9BE650450B52F6D800611104 /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
+		9BE650460B52F6D800611104 /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
+		B84A91F4116CF784006C210E /* stabs_to_module_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = stabs_to_module_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FAE0911665B5700407530 /* test_assembler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test_assembler.cc; path = ../../../common/test_assembler.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE0A11665B5700407530 /* test_assembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = test_assembler.h; path = ../../../common/test_assembler.h; sourceTree = SOURCE_ROOT; };
+		B88FAE1711665FE400407530 /* dwarf2diehandler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2diehandler.cc; path = ../../../common/dwarf/dwarf2diehandler.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE1811665FE400407530 /* dwarf2diehandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf2diehandler.h; path = ../../../common/dwarf/dwarf2diehandler.h; sourceTree = SOURCE_ROOT; };
+		B88FAE1D1166603300407530 /* byte_cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = byte_cursor.h; path = ../../../common/byte_cursor.h; sourceTree = SOURCE_ROOT; };
+		B88FAE1E1166603300407530 /* dwarf_cu_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cu_to_module.cc; path = ../../../common/dwarf_cu_to_module.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE1F1166603300407530 /* dwarf_cu_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cu_to_module.h; path = ../../../common/dwarf_cu_to_module.h; sourceTree = SOURCE_ROOT; };
+		B88FAE201166603300407530 /* dwarf_line_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_line_to_module.cc; path = ../../../common/dwarf_line_to_module.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE211166603300407530 /* dwarf_line_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_line_to_module.h; path = ../../../common/dwarf_line_to_module.h; sourceTree = SOURCE_ROOT; };
+		B88FAE221166603300407530 /* language.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = language.cc; path = ../../../common/language.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE231166603300407530 /* language.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = language.h; path = ../../../common/language.h; sourceTree = SOURCE_ROOT; };
+		B88FAE241166603300407530 /* module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = module.cc; path = ../../../common/module.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE251166603300407530 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../../common/module.h; sourceTree = SOURCE_ROOT; };
+		B88FAE331166673E00407530 /* dwarf_cfi_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cfi_to_module.cc; path = ../../../common/dwarf_cfi_to_module.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE341166673E00407530 /* dwarf_cfi_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cfi_to_module.h; path = ../../../common/dwarf_cfi_to_module.h; sourceTree = SOURCE_ROOT; };
+		B88FAE3911666C6F00407530 /* stabs_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_reader.cc; path = ../../../common/stabs_reader.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE3A11666C6F00407530 /* stabs_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_reader.h; path = ../../../common/stabs_reader.h; sourceTree = SOURCE_ROOT; };
+		B88FAE3C11666C8900407530 /* stabs_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_to_module.cc; path = ../../../common/stabs_to_module.cc; sourceTree = SOURCE_ROOT; };
+		B88FAE3D11666C8900407530 /* stabs_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_to_module.h; path = ../../../common/stabs_to_module.h; sourceTree = SOURCE_ROOT; };
+		B88FAF2F116A591E00407530 /* dwarf2reader_cfi_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dwarf2reader_cfi_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FAF34116A595400407530 /* cfi_assembler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cfi_assembler.cc; path = ../../../common/dwarf/cfi_assembler.cc; sourceTree = SOURCE_ROOT; };
+		B88FAF35116A595400407530 /* cfi_assembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cfi_assembler.h; path = ../../../common/dwarf/cfi_assembler.h; sourceTree = SOURCE_ROOT; };
+		B88FAF36116A595400407530 /* dwarf2reader_cfi_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2reader_cfi_unittest.cc; path = ../../../common/dwarf/dwarf2reader_cfi_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB003116BDE7200407530 /* stabs_reader_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_reader_unittest.cc; path = ../../../common/stabs_reader_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB007116BDE8300407530 /* stabs_reader_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = stabs_reader_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB024116BDFFF00407530 /* libgtestmockall.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgtestmockall.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB0B5116CEA8A00407530 /* module_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = module_unittest.cc; path = ../../../common/module_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0B9116CEABF00407530 /* module_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = module_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB0D4116CEC0600407530 /* byte_cursor_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = byte_cursor_unittest.cc; path = ../../../common/byte_cursor_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0D5116CEC0600407530 /* dwarf_cfi_to_module_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cfi_to_module_unittest.cc; path = ../../../common/dwarf_cfi_to_module_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0D6116CEC0600407530 /* dwarf_cu_to_module_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cu_to_module_unittest.cc; path = ../../../common/dwarf_cu_to_module_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0D7116CEC0600407530 /* dwarf_line_to_module_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_line_to_module_unittest.cc; path = ../../../common/dwarf_line_to_module_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0D8116CEC0600407530 /* stabs_to_module_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_to_module_unittest.cc; path = ../../../common/stabs_to_module_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0D9116CEC0600407530 /* test_assembler_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test_assembler_unittest.cc; path = ../../../common/test_assembler_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0DA116CEC5800407530 /* bytereader_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bytereader_unittest.cc; path = ../../../common/dwarf/bytereader_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0DB116CEC5800407530 /* dwarf2diehandler_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2diehandler_unittest.cc; path = ../../../common/dwarf/dwarf2diehandler_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B88FB0DF116CEEA800407530 /* dwarf2diehandler_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dwarf2diehandler_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB0F2116CEF1900407530 /* dwarf_line_to_module_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dwarf_line_to_module_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB10A116CF07900407530 /* dwarf_cu_to_module_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dwarf_cu_to_module_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB11F116CF27F00407530 /* dwarf_cfi_to_module_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dwarf_cfi_to_module_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB135116CF30F00407530 /* bytereader_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = bytereader_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B88FB14B116CF4A700407530 /* byte_cursor_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = byte_cursor_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B89E0E6D1166571D00DD08C9 /* macho_reader_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_reader_unittest.cc; path = ../../../common/mac/macho_reader_unittest.cc; sourceTree = SOURCE_ROOT; };
+		B89E0E6E1166571D00DD08C9 /* macho_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_reader.cc; path = ../../../common/mac/macho_reader.cc; sourceTree = SOURCE_ROOT; };
+		B89E0E6F1166571D00DD08C9 /* macho_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_reader.h; path = ../../../common/mac/macho_reader.h; sourceTree = SOURCE_ROOT; };
+		B89E0E701166573700DD08C9 /* macho_dump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_dump.cc; sourceTree = "<group>"; };
+		B89E0E741166575200DD08C9 /* macho_dump */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = macho_dump; sourceTree = BUILT_PRODUCTS_DIR; };
+		B89E0E9511665A6400DD08C9 /* macho_reader_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = macho_reader_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B89E0E9F11665AC300DD08C9 /* gtest_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtest_main.cc; path = ../../../testing/googletest/src/gtest_main.cc; sourceTree = SOURCE_ROOT; };
+		B89E0EA011665AC300DD08C9 /* gtest-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gtest-all.cc"; path = "../../../testing/googletest/src/gtest-all.cc"; sourceTree = SOURCE_ROOT; };
+		B89E0EA311665AEA00DD08C9 /* gmock-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gmock-all.cc"; path = "../../../testing/googlemock/src/gmock-all.cc"; sourceTree = SOURCE_ROOT; };
+		B8C5B5111166531A00D34F4E /* dump_syms */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dump_syms; sourceTree = BUILT_PRODUCTS_DIR; };
+		B8E8CA0C1156C854009E61B2 /* byteswap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = byteswap.h; path = ../../../common/mac/byteswap.h; sourceTree = SOURCE_ROOT; };
+		D21F97D211CBA0F200239E38 /* test_assembler_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test_assembler_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
+		EB06C7511FEBC515000214D9 /* path_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path_helper.cc; path = ../../../common/path_helper.cc; sourceTree = "<group>"; };
+		EB06C7521FEBC516000214D9 /* path_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path_helper.h; path = ../../../common/path_helper.h; sourceTree = "<group>"; };
+		F95B422B0E0E22D100DBDE83 /* bytereader-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "bytereader-inl.h"; path = "../../../common/dwarf/bytereader-inl.h"; sourceTree = SOURCE_ROOT; };
+		F95B422C0E0E22D100DBDE83 /* bytereader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bytereader.cc; path = ../../../common/dwarf/bytereader.cc; sourceTree = SOURCE_ROOT; };
+		F95B422D0E0E22D100DBDE83 /* bytereader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bytereader.h; path = ../../../common/dwarf/bytereader.h; sourceTree = SOURCE_ROOT; };
+		F95B422E0E0E22D100DBDE83 /* dwarf2enums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf2enums.h; path = ../../../common/dwarf/dwarf2enums.h; sourceTree = SOURCE_ROOT; };
+		F95B422F0E0E22D100DBDE83 /* dwarf2reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2reader.cc; path = ../../../common/dwarf/dwarf2reader.cc; sourceTree = SOURCE_ROOT; };
+		F95B42300E0E22D100DBDE83 /* dwarf2reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf2reader.h; path = ../../../common/dwarf/dwarf2reader.h; sourceTree = SOURCE_ROOT; };
+		F95B42310E0E22D100DBDE83 /* line_state_machine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = line_state_machine.h; path = ../../../common/dwarf/line_state_machine.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		B84A91F2116CF784006C210E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B84A91F8116CF78F006C210E /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FAF2D116A591D00407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB042116BE3C400407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB005116BDE8300407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB03F116BE24200407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB022116BDFFF00407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0B7116CEABF00407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0C1116CEB0600407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0DD116CEEA800407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0E3116CEEB000407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0F0116CEF1900407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0F6116CEF2000407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB108116CF07900407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB10E116CF08100407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB11D116CF27F00407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB123116CF28500407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB133116CF30F00407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB139116CF31600407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB149116CF4A700407530 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB14F116CF4AE00407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B89E0E721166575200DD08C9 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B89E0E9311665A6400DD08C9 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB057116C0CDE00407530 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B8C5B50F1166531A00D34F4E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B8C5B523116653BA00D34F4E /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D21F97D011CBA0F200239E38 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D21F97D811CBA13D00239E38 /* libgtestmockall.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* dump_syms */ = {
+			isa = PBXGroup;
+			children = (
+				8B31023E11F0CF1C00FCF3E4 /* Breakpad.xcconfig */,
+				8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */,
+				8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */,
+				B89E0E9D11665A9500DD08C9 /* TESTING */,
+				F9F5344B0E7C8FFC0012363F /* DWARF */,
+				B89E0E6C1166569700DD08C9 /* MACHO */,
+				B88FAE3811666A1700407530 /* STABS */,
+				B88FAE1C11665FFD00407530 /* MODULE */,
+				162F64F8161C591500CD68D5 /* arch_utilities.cc */,
+				162F64F9161C591500CD68D5 /* arch_utilities.h */,
+				B88FAE1D1166603300407530 /* byte_cursor.h */,
+				B88FB0D4116CEC0600407530 /* byte_cursor_unittest.cc */,
+				B8E8CA0C1156C854009E61B2 /* byteswap.h */,
+				9BE650410B52F6D800611104 /* file_id.cc */,
+				9BE650420B52F6D800611104 /* file_id.h */,
+				9BDF186D0B1BB43700F8391B /* dump_syms.h */,
+				08FB7796FE84155DC02AAC07 /* dump_syms.cc */,
+				9BDF186E0B1BB43700F8391B /* dump_syms_tool.cc */,
+				B89E0E701166573700DD08C9 /* macho_dump.cc */,
+				4D72CAF413DFBAC2006CABE3 /* md5.cc */,
+				EB06C7511FEBC515000214D9 /* path_helper.cc */,
+				EB06C7521FEBC516000214D9 /* path_helper.h */,
+				08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = dump_syms;
+			sourceTree = "<group>";
+		};
+		08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				08FB779EFE84155DC02AAC07 /* Foundation.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				B8C5B5111166531A00D34F4E /* dump_syms */,
+				B89E0E741166575200DD08C9 /* macho_dump */,
+				B89E0E9511665A6400DD08C9 /* macho_reader_unittest */,
+				B88FAF2F116A591E00407530 /* dwarf2reader_cfi_unittest */,
+				B88FB007116BDE8300407530 /* stabs_reader_unittest */,
+				B88FB024116BDFFF00407530 /* libgtestmockall.a */,
+				B88FB0B9116CEABF00407530 /* module_unittest */,
+				B88FB0DF116CEEA800407530 /* dwarf2diehandler_unittest */,
+				B88FB0F2116CEF1900407530 /* dwarf_line_to_module_unittest */,
+				B88FB10A116CF07900407530 /* dwarf_cu_to_module_unittest */,
+				B88FB11F116CF27F00407530 /* dwarf_cfi_to_module_unittest */,
+				B88FB135116CF30F00407530 /* bytereader_unittest */,
+				B88FB14B116CF4A700407530 /* byte_cursor_unittest */,
+				B84A91F4116CF784006C210E /* stabs_to_module_unittest */,
+				D21F97D211CBA0F200239E38 /* test_assembler_unittest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		B88FAE1C11665FFD00407530 /* MODULE */ = {
+			isa = PBXGroup;
+			children = (
+				B88FAE1E1166603300407530 /* dwarf_cu_to_module.cc */,
+				B88FAE1F1166603300407530 /* dwarf_cu_to_module.h */,
+				B88FB0D6116CEC0600407530 /* dwarf_cu_to_module_unittest.cc */,
+				B88FAE201166603300407530 /* dwarf_line_to_module.cc */,
+				B88FAE211166603300407530 /* dwarf_line_to_module.h */,
+				B88FB0D7116CEC0600407530 /* dwarf_line_to_module_unittest.cc */,
+				B88FAE221166603300407530 /* language.cc */,
+				B88FAE231166603300407530 /* language.h */,
+				B88FAE241166603300407530 /* module.cc */,
+				B88FAE251166603300407530 /* module.h */,
+				B88FB0B5116CEA8A00407530 /* module_unittest.cc */,
+				B88FAE331166673E00407530 /* dwarf_cfi_to_module.cc */,
+				B88FAE341166673E00407530 /* dwarf_cfi_to_module.h */,
+				B88FB0D5116CEC0600407530 /* dwarf_cfi_to_module_unittest.cc */,
+				B88FAE3C11666C8900407530 /* stabs_to_module.cc */,
+				B88FAE3D11666C8900407530 /* stabs_to_module.h */,
+				B88FB0D8116CEC0600407530 /* stabs_to_module_unittest.cc */,
+			);
+			name = MODULE;
+			sourceTree = "<group>";
+		};
+		B88FAE3811666A1700407530 /* STABS */ = {
+			isa = PBXGroup;
+			children = (
+				B88FB003116BDE7200407530 /* stabs_reader_unittest.cc */,
+				B88FAE3911666C6F00407530 /* stabs_reader.cc */,
+				B88FAE3A11666C6F00407530 /* stabs_reader.h */,
+			);
+			name = STABS;
+			sourceTree = "<group>";
+		};
+		B89E0E6C1166569700DD08C9 /* MACHO */ = {
+			isa = PBXGroup;
+			children = (
+				B89E0E6D1166571D00DD08C9 /* macho_reader_unittest.cc */,
+				B89E0E6E1166571D00DD08C9 /* macho_reader.cc */,
+				B89E0E6F1166571D00DD08C9 /* macho_reader.h */,
+				557800890BE1F3AB00EC23E0 /* macho_utilities.cc */,
+				5578008A0BE1F3AB00EC23E0 /* macho_utilities.h */,
+				9BE650430B52F6D800611104 /* macho_id.cc */,
+				9BE650440B52F6D800611104 /* macho_id.h */,
+				9BE650450B52F6D800611104 /* macho_walker.cc */,
+				9BE650460B52F6D800611104 /* macho_walker.h */,
+			);
+			name = MACHO;
+			sourceTree = "<group>";
+		};
+		B89E0E9D11665A9500DD08C9 /* TESTING */ = {
+			isa = PBXGroup;
+			children = (
+				B88FAE0911665B5700407530 /* test_assembler.cc */,
+				B88FAE0A11665B5700407530 /* test_assembler.h */,
+				B88FB0D9116CEC0600407530 /* test_assembler_unittest.cc */,
+				B89E0EA311665AEA00DD08C9 /* gmock-all.cc */,
+				B89E0E9F11665AC300DD08C9 /* gtest_main.cc */,
+				B89E0EA011665AC300DD08C9 /* gtest-all.cc */,
+			);
+			name = TESTING;
+			sourceTree = "<group>";
+		};
+		F9F5344B0E7C8FFC0012363F /* DWARF */ = {
+			isa = PBXGroup;
+			children = (
+				B88FAF34116A595400407530 /* cfi_assembler.cc */,
+				B88FAF35116A595400407530 /* cfi_assembler.h */,
+				F95B422E0E0E22D100DBDE83 /* dwarf2enums.h */,
+				F95B422F0E0E22D100DBDE83 /* dwarf2reader.cc */,
+				4262382521AC496F00E5A3A6 /* dwarf_range_list_handler.cc */,
+				4262382621AC496F00E5A3A6 /* dwarf_range_list_handler.h */,
+				F95B42300E0E22D100DBDE83 /* dwarf2reader.h */,
+				B88FAF36116A595400407530 /* dwarf2reader_cfi_unittest.cc */,
+				F95B422D0E0E22D100DBDE83 /* bytereader.h */,
+				F95B422B0E0E22D100DBDE83 /* bytereader-inl.h */,
+				F95B422C0E0E22D100DBDE83 /* bytereader.cc */,
+				B88FB0DA116CEC5800407530 /* bytereader_unittest.cc */,
+				F95B42310E0E22D100DBDE83 /* line_state_machine.h */,
+				B88FAE1711665FE400407530 /* dwarf2diehandler.cc */,
+				B88FAE1811665FE400407530 /* dwarf2diehandler.h */,
+				B88FB0DB116CEC5800407530 /* dwarf2diehandler_unittest.cc */,
+				8BCAAA4A1CE3A7980046090B /* elf_reader.cc */,
+				8BCAAA4B1CE3A7980046090B /* elf_reader.h */,
+			);
+			name = DWARF;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		B88FB020116BDFFF00407530 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		B84A91F3116CF784006C210E /* stabs_to_module_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B84A9202116CF7F0006C210E /* Build configuration list for PBXNativeTarget "stabs_to_module_unittest" */;
+			buildPhases = (
+				B84A91F1116CF784006C210E /* Sources */,
+				B84A91F2116CF784006C210E /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B84A91FA116CF796006C210E /* PBXTargetDependency */,
+			);
+			name = stabs_to_module_unittest;
+			productName = stabs_to_module_unittest;
+			productReference = B84A91F4116CF784006C210E /* stabs_to_module_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FAF2E116A591D00407530 /* dwarf2reader_cfi_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FAF33116A594800407530 /* Build configuration list for PBXNativeTarget "dwarf2reader_cfi_unittest" */;
+			buildPhases = (
+				B88FAF2C116A591D00407530 /* Sources */,
+				B88FAF2D116A591D00407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB03A116BE17E00407530 /* PBXTargetDependency */,
+			);
+			name = dwarf2reader_cfi_unittest;
+			productName = dwarf2reader_cfi_unittest;
+			productReference = B88FAF2F116A591E00407530 /* dwarf2reader_cfi_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB006116BDE8300407530 /* stabs_reader_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB013116BDEC800407530 /* Build configuration list for PBXNativeTarget "stabs_reader_unittest" */;
+			buildPhases = (
+				B88FB004116BDE8300407530 /* Sources */,
+				B88FB005116BDE8300407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB088116CE6D800407530 /* PBXTargetDependency */,
+			);
+			name = stabs_reader_unittest;
+			productName = stabs_reader_unittest;
+			productReference = B88FB007116BDE8300407530 /* stabs_reader_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB023116BDFFF00407530 /* gtestmockall */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB027116BE02900407530 /* Build configuration list for PBXNativeTarget "gtestmockall" */;
+			buildPhases = (
+				B88FB020116BDFFF00407530 /* Headers */,
+				B88FB021116BDFFF00407530 /* Sources */,
+				B88FB022116BDFFF00407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = gtestmockall;
+			productName = gtestmockall;
+			productReference = B88FB024116BDFFF00407530 /* libgtestmockall.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		B88FB0B8116CEABF00407530 /* module_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB0BE116CEAFE00407530 /* Build configuration list for PBXNativeTarget "module_unittest" */;
+			buildPhases = (
+				B88FB0B6116CEABF00407530 /* Sources */,
+				B88FB0B7116CEABF00407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB0C0116CEAFE00407530 /* PBXTargetDependency */,
+			);
+			name = module_unittest;
+			productName = module_unittest;
+			productReference = B88FB0B9116CEABF00407530 /* module_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB0DE116CEEA800407530 /* dwarf2diehandler_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB0E4116CEECE00407530 /* Build configuration list for PBXNativeTarget "dwarf2diehandler_unittest" */;
+			buildPhases = (
+				B88FB0DC116CEEA800407530 /* Sources */,
+				B88FB0DD116CEEA800407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB0E8116CEEDA00407530 /* PBXTargetDependency */,
+			);
+			name = dwarf2diehandler_unittest;
+			productName = dwarf2diehandler_unittest;
+			productReference = B88FB0DF116CEEA800407530 /* dwarf2diehandler_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB0F1116CEF1900407530 /* dwarf_line_to_module_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB0F9116CEF9800407530 /* Build configuration list for PBXNativeTarget "dwarf_line_to_module_unittest" */;
+			buildPhases = (
+				B88FB0EF116CEF1900407530 /* Sources */,
+				B88FB0F0116CEF1900407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB0F8116CEF2E00407530 /* PBXTargetDependency */,
+			);
+			name = dwarf_line_to_module_unittest;
+			productName = dwarf_line_to_module_unittest;
+			productReference = B88FB0F2116CEF1900407530 /* dwarf_line_to_module_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB109116CF07900407530 /* dwarf_cu_to_module_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB111116CF0A800407530 /* Build configuration list for PBXNativeTarget "dwarf_cu_to_module_unittest" */;
+			buildPhases = (
+				B88FB107116CF07900407530 /* Sources */,
+				B88FB108116CF07900407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB110116CF08A00407530 /* PBXTargetDependency */,
+			);
+			name = dwarf_cu_to_module_unittest;
+			productName = dwarf_cu_to_module_unittest;
+			productReference = B88FB10A116CF07900407530 /* dwarf_cu_to_module_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB11E116CF27F00407530 /* dwarf_cfi_to_module_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB128116CF2C800407530 /* Build configuration list for PBXNativeTarget "dwarf_cfi_to_module_unittest" */;
+			buildPhases = (
+				B88FB11C116CF27F00407530 /* Sources */,
+				B88FB11D116CF27F00407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB125116CF29E00407530 /* PBXTargetDependency */,
+			);
+			name = dwarf_cfi_to_module_unittest;
+			productName = dwarf_cfi_to_module_unittest;
+			productReference = B88FB11F116CF27F00407530 /* dwarf_cfi_to_module_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB134116CF30F00407530 /* bytereader_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB13A116CF33400407530 /* Build configuration list for PBXNativeTarget "bytereader_unittest" */;
+			buildPhases = (
+				B88FB132116CF30F00407530 /* Sources */,
+				B88FB133116CF30F00407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB13C116CF35C00407530 /* PBXTargetDependency */,
+			);
+			name = bytereader_unittest;
+			productName = bytereader_unittest;
+			productReference = B88FB135116CF30F00407530 /* bytereader_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B88FB14A116CF4A700407530 /* byte_cursor_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B88FB159116CF4F900407530 /* Build configuration list for PBXNativeTarget "byte_cursor_unittest" */;
+			buildPhases = (
+				B88FB148116CF4A700407530 /* Sources */,
+				B88FB149116CF4A700407530 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB151116CF4C100407530 /* PBXTargetDependency */,
+			);
+			name = byte_cursor_unittest;
+			productName = byte_cursor_unittest;
+			productReference = B88FB14B116CF4A700407530 /* byte_cursor_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B89E0E731166575200DD08C9 /* macho_dump */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B89E0E7F116657A100DD08C9 /* Build configuration list for PBXNativeTarget "macho_dump" */;
+			buildPhases = (
+				B89E0E711166575200DD08C9 /* Sources */,
+				B89E0E721166575200DD08C9 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = macho_dump;
+			productName = macho_dump;
+			productReference = B89E0E741166575200DD08C9 /* macho_dump */;
+			productType = "com.apple.product-type.tool";
+		};
+		B89E0E9411665A6400DD08C9 /* macho_reader_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B89E0E9E11665A9600DD08C9 /* Build configuration list for PBXNativeTarget "macho_reader_unittest" */;
+			buildPhases = (
+				B89E0E9211665A6400DD08C9 /* Sources */,
+				B89E0E9311665A6400DD08C9 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				B88FB090116CE71000407530 /* PBXTargetDependency */,
+			);
+			name = macho_reader_unittest;
+			productName = macho_reader_unittest;
+			productReference = B89E0E9511665A6400DD08C9 /* macho_reader_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+		B8C5B5101166531A00D34F4E /* dump_syms */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B8C5B5151166533900D34F4E /* Build configuration list for PBXNativeTarget "dump_syms" */;
+			buildPhases = (
+				B8C5B50E1166531A00D34F4E /* Sources */,
+				B8C5B50F1166531A00D34F4E /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = dump_syms;
+			productName = dump_syms;
+			productReference = B8C5B5111166531A00D34F4E /* dump_syms */;
+			productType = "com.apple.product-type.tool";
+		};
+		D21F97D111CBA0F200239E38 /* test_assembler_unittest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = D21F97D611CBA11000239E38 /* Build configuration list for PBXNativeTarget "test_assembler_unittest" */;
+			buildPhases = (
+				D21F97CF11CBA0F200239E38 /* Sources */,
+				D21F97D011CBA0F200239E38 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = test_assembler_unittest;
+			productName = test_assembler_unittest;
+			productReference = D21F97D211CBA0F200239E38 /* test_assembler_unittest */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+			};
+			buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "dump_syms" */;
+			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 08FB7794FE84155DC02AAC07 /* dump_syms */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				B8C5B5101166531A00D34F4E /* dump_syms */,
+				B89E0E731166575200DD08C9 /* macho_dump */,
+				B88FB023116BDFFF00407530 /* gtestmockall */,
+				B88FB14A116CF4A700407530 /* byte_cursor_unittest */,
+				B89E0E9411665A6400DD08C9 /* macho_reader_unittest */,
+				B88FB006116BDE8300407530 /* stabs_reader_unittest */,
+				B88FB134116CF30F00407530 /* bytereader_unittest */,
+				B88FAF2E116A591D00407530 /* dwarf2reader_cfi_unittest */,
+				B88FB0DE116CEEA800407530 /* dwarf2diehandler_unittest */,
+				B88FB109116CF07900407530 /* dwarf_cu_to_module_unittest */,
+				B88FB0F1116CEF1900407530 /* dwarf_line_to_module_unittest */,
+				B88FB11E116CF27F00407530 /* dwarf_cfi_to_module_unittest */,
+				B84A91F3116CF784006C210E /* stabs_to_module_unittest */,
+				B88FB0B8116CEABF00407530 /* module_unittest */,
+				B88FAFC9116BDCAD00407530 /* all_unittests */,
+				D21F97D111CBA0F200239E38 /* test_assembler_unittest */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		B88FB094116CE73E00407530 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "set -eu\n\ncd $BUILT_PRODUCTS_DIR\npwd\n\n./byte_cursor_unittest\n./macho_reader_unittest\n./stabs_reader_unittest\n./bytereader_unittest\n./dwarf2reader_cfi_unittest\n./dwarf2diehandler_unittest\n./dwarf_cu_to_module_unittest\n./dwarf_line_to_module_unittest\n./dwarf_cfi_to_module_unittest\n./stabs_to_module_unittest\n./module_unittest\n./test_assembler_unittest\n\necho \"Expect two warnings from the following tests:\"\necho \"   Errors.BadFileNumber\"\necho \"   Errors.BadDirectoryNumber\"\necho \"The proper behavior of these tests is to print text that XCode confuses with compiler warnings.\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		B84A91F1116CF784006C210E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B84A91FB116CF7AF006C210E /* module.cc in Sources */,
+				B84A91FC116CF7AF006C210E /* stabs_to_module.cc in Sources */,
+				B84A91FD116CF7AF006C210E /* stabs_to_module_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FAF2C116A591D00407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FAF38116A595400407530 /* dwarf2reader_cfi_unittest.cc in Sources */,
+				B88FAF3F116A5A2E00407530 /* dwarf2reader.cc in Sources */,
+				8BCAAA4D1CE3B1260046090B /* elf_reader.cc in Sources */,
+				B88FAF40116A5A2E00407530 /* bytereader.cc in Sources */,
+				B88FAF37116A595400407530 /* cfi_assembler.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB004116BDE8300407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB00F116BDEA700407530 /* stabs_reader_unittest.cc in Sources */,
+				B88FB010116BDEA700407530 /* stabs_reader.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB021116BDFFF00407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB028116BE03100407530 /* test_assembler.cc in Sources */,
+				B88FB029116BE03100407530 /* gmock-all.cc in Sources */,
+				B88FB02A116BE03100407530 /* gtest_main.cc in Sources */,
+				B88FB02B116BE03100407530 /* gtest-all.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0B6116CEABF00407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0BD116CEAE000407530 /* module_unittest.cc in Sources */,
+				B88FB0C4116CEB4100407530 /* module.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0DC116CEEA800407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0E5116CEED300407530 /* dwarf2diehandler.cc in Sources */,
+				B88FB0E6116CEED300407530 /* dwarf2diehandler_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB0EF116CEF1900407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB0FA116CF00E00407530 /* dwarf_line_to_module.cc in Sources */,
+				B88FB0FE116CF02400407530 /* module.cc in Sources */,
+				B88FB0FB116CF00E00407530 /* dwarf_line_to_module_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB107116CF07900407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB112116CF1F000407530 /* dwarf_cu_to_module.cc in Sources */,
+				B88FB113116CF1F000407530 /* dwarf_cu_to_module_unittest.cc in Sources */,
+				B88FB114116CF1F000407530 /* language.cc in Sources */,
+				B88FB115116CF1F000407530 /* module.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB11C116CF27F00407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB129116CF2DD00407530 /* module.cc in Sources */,
+				B88FB12A116CF2DD00407530 /* dwarf_cfi_to_module.cc in Sources */,
+				B88FB12B116CF2DD00407530 /* dwarf_cfi_to_module_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB132116CF30F00407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB13D116CF38300407530 /* cfi_assembler.cc in Sources */,
+				B88FB13E116CF38300407530 /* bytereader.cc in Sources */,
+				B88FB13F116CF38300407530 /* bytereader_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B88FB148116CF4A700407530 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B88FB152116CF4D300407530 /* byte_cursor_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B89E0E711166575200DD08C9 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				4247E63D2110D4B200482558 /* path_helper.cc in Sources */,
+				162F6500161C5F2200CD68D5 /* arch_utilities.cc in Sources */,
+				B89E0E781166576C00DD08C9 /* macho_reader.cc in Sources */,
+				B89E0E7A1166576C00DD08C9 /* macho_dump.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B89E0E9211665A6400DD08C9 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B89E0E9911665A7200DD08C9 /* macho_reader_unittest.cc in Sources */,
+				B89E0E9A11665A7200DD08C9 /* macho_reader.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B8C5B50E1166531A00D34F4E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				4262382821AC49A000E5A3A6 /* dwarf_range_list_handler.h in Sources */,
+				162F64FA161C591500CD68D5 /* arch_utilities.cc in Sources */,
+				B88FAE2C1166606200407530 /* macho_reader.cc in Sources */,
+				8BCAAA4C1CE3A7980046090B /* elf_reader.cc in Sources */,
+				B8C5B5171166534700D34F4E /* dwarf2reader.cc in Sources */,
+				EB06C7531FEBC516000214D9 /* path_helper.cc in Sources */,
+				B8C5B5181166534700D34F4E /* bytereader.cc in Sources */,
+				B8C5B5191166534700D34F4E /* macho_utilities.cc in Sources */,
+				B8C5B51A1166534700D34F4E /* file_id.cc in Sources */,
+				B8C5B51B1166534700D34F4E /* macho_id.cc in Sources */,
+				B8C5B51C1166534700D34F4E /* macho_walker.cc in Sources */,
+				B8C5B51D1166534700D34F4E /* dump_syms.cc in Sources */,
+				B8C5B51E1166534700D34F4E /* dump_syms_tool.cc in Sources */,
+				B88FAE1911665FE400407530 /* dwarf2diehandler.cc in Sources */,
+				B88FAE261166603300407530 /* dwarf_cu_to_module.cc in Sources */,
+				B88FAE271166603300407530 /* dwarf_line_to_module.cc in Sources */,
+				4262382721AC496F00E5A3A6 /* dwarf_range_list_handler.cc in Sources */,
+				B88FAE281166603300407530 /* language.cc in Sources */,
+				B88FAE291166603300407530 /* module.cc in Sources */,
+				B88FAE351166673E00407530 /* dwarf_cfi_to_module.cc in Sources */,
+				B88FAE3B11666C6F00407530 /* stabs_reader.cc in Sources */,
+				B88FAE3E11666C8900407530 /* stabs_to_module.cc in Sources */,
+				4D72CAF513DFBAC2006CABE3 /* md5.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D21F97CF11CBA0F200239E38 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				D21F97E911CBA1FF00239E38 /* test_assembler.cc in Sources */,
+				D21F97D711CBA12300239E38 /* test_assembler_unittest.cc in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		8B31051511F100CF00FCF3E4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D21F97D111CBA0F200239E38 /* test_assembler_unittest */;
+			targetProxy = 8B31051411F100CF00FCF3E4 /* PBXContainerItemProxy */;
+		};
+		B84A91FA116CF796006C210E /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B84A91F9116CF796006C210E /* PBXContainerItemProxy */;
+		};
+		B84A9201116CF7D2006C210E /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B84A91F3116CF784006C210E /* stabs_to_module_unittest */;
+			targetProxy = B84A9200116CF7D2006C210E /* PBXContainerItemProxy */;
+		};
+		B88FAFCF116BDD7000407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B89E0E9411665A6400DD08C9 /* macho_reader_unittest */;
+			targetProxy = B88FAFCE116BDD7000407530 /* PBXContainerItemProxy */;
+		};
+		B88FAFD1116BDD7000407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FAF2E116A591D00407530 /* dwarf2reader_cfi_unittest */;
+			targetProxy = B88FAFD0116BDD7000407530 /* PBXContainerItemProxy */;
+		};
+		B88FB01D116BDF9800407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB006116BDE8300407530 /* stabs_reader_unittest */;
+			targetProxy = B88FB01C116BDF9800407530 /* PBXContainerItemProxy */;
+		};
+		B88FB03A116BE17E00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB039116BE17E00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB088116CE6D800407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB087116CE6D800407530 /* PBXContainerItemProxy */;
+		};
+		B88FB090116CE71000407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB08F116CE71000407530 /* PBXContainerItemProxy */;
+		};
+		B88FB0C0116CEAFE00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB0BF116CEAFE00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB0C8116CEB4A00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB0B8116CEABF00407530 /* module_unittest */;
+			targetProxy = B88FB0C7116CEB4A00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB0E8116CEEDA00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB0E7116CEEDA00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB0F8116CEF2E00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB0F7116CEF2E00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB110116CF08A00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB10F116CF08A00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB125116CF29E00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB124116CF29E00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB13C116CF35C00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB13B116CF35C00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB151116CF4C100407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB023116BDFFF00407530 /* gtestmockall */;
+			targetProxy = B88FB150116CF4C100407530 /* PBXContainerItemProxy */;
+		};
+		B88FB15B116CF53E00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB14A116CF4A700407530 /* byte_cursor_unittest */;
+			targetProxy = B88FB15A116CF53E00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB15D116CF54B00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB11E116CF27F00407530 /* dwarf_cfi_to_module_unittest */;
+			targetProxy = B88FB15C116CF54B00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB15F116CF54B00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB0F1116CEF1900407530 /* dwarf_line_to_module_unittest */;
+			targetProxy = B88FB15E116CF54B00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB161116CF54B00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB109116CF07900407530 /* dwarf_cu_to_module_unittest */;
+			targetProxy = B88FB160116CF54B00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB165116CF54B00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB0DE116CEEA800407530 /* dwarf2diehandler_unittest */;
+			targetProxy = B88FB164116CF54B00407530 /* PBXContainerItemProxy */;
+		};
+		B88FB167116CF54B00407530 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B88FB134116CF30F00407530 /* bytereader_unittest */;
+			targetProxy = B88FB166116CF54B00407530 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB927908733DD40010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				HEADER_SEARCH_PATHS = (
+					../../..,
+					../../../common/mac/include/,
+					../../../third_party/musl/include/,
+				);
+			};
+			name = Debug;
+		};
+		1DEB927A08733DD40010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				HEADER_SEARCH_PATHS = (
+					../../..,
+					../../../common/mac/include/,
+					../../../third_party/musl/include/,
+				);
+			};
+			name = Release;
+		};
+		B84A91F6116CF784006C210E /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = stabs_to_module_unittest;
+			};
+			name = Debug;
+		};
+		B84A91F7116CF784006C210E /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = stabs_to_module_unittest;
+			};
+			name = Release;
+		};
+		B88FAF31116A591F00407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/build/Debug\"";
+				PRODUCT_NAME = dwarf2reader_cfi_unittest;
+			};
+			name = Debug;
+		};
+		B88FAF32116A591F00407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+				);
+				LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/build/Debug\"";
+				PRODUCT_NAME = dwarf2reader_cfi_unittest;
+			};
+			name = Release;
+		};
+		B88FAFCA116BDCAD00407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = all_unittests;
+			};
+			name = Debug;
+		};
+		B88FAFCB116BDCAD00407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = all_unittests;
+			};
+			name = Release;
+		};
+		B88FB009116BDE8400407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = stabs_reader_unittest;
+			};
+			name = Debug;
+		};
+		B88FB00A116BDE8400407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = stabs_reader_unittest;
+			};
+			name = Release;
+		};
+		B88FB025116BE00100407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = gtestmockall;
+			};
+			name = Debug;
+		};
+		B88FB026116BE00100407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = gtestmockall;
+			};
+			name = Release;
+		};
+		B88FB0BB116CEAC000407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = module_unittest;
+			};
+			name = Debug;
+		};
+		B88FB0BC116CEAC000407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = module_unittest;
+			};
+			name = Release;
+		};
+		B88FB0E1116CEEA800407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf2diehandler_unittest;
+			};
+			name = Debug;
+		};
+		B88FB0E2116CEEA800407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf2diehandler_unittest;
+			};
+			name = Release;
+		};
+		B88FB0F4116CEF1900407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_line_to_module_unittest;
+			};
+			name = Debug;
+		};
+		B88FB0F5116CEF1900407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_line_to_module_unittest;
+			};
+			name = Release;
+		};
+		B88FB10C116CF07A00407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_cu_to_module_unittest;
+			};
+			name = Debug;
+		};
+		B88FB10D116CF07A00407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_cu_to_module_unittest;
+			};
+			name = Release;
+		};
+		B88FB121116CF28000407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_cfi_to_module_unittest;
+			};
+			name = Debug;
+		};
+		B88FB122116CF28000407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = dwarf_cfi_to_module_unittest;
+			};
+			name = Release;
+		};
+		B88FB137116CF30F00407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = bytereader_unittest;
+			};
+			name = Debug;
+		};
+		B88FB138116CF30F00407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+				);
+				PRODUCT_NAME = bytereader_unittest;
+			};
+			name = Release;
+		};
+		B88FB14D116CF4A800407530 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = byte_cursor_unittest;
+			};
+			name = Debug;
+		};
+		B88FB14E116CF4A800407530 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = byte_cursor_unittest;
+			};
+			name = Release;
+		};
+		B89E0E761166575300DD08C9 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = macho_dump;
+			};
+			name = Debug;
+		};
+		B89E0E771166575300DD08C9 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = macho_dump;
+			};
+			name = Release;
+		};
+		B89E0E9711665A6400DD08C9 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = macho_reader_unittest;
+			};
+			name = Debug;
+		};
+		B89E0E9811665A6400DD08C9 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = macho_reader_unittest;
+			};
+			name = Release;
+		};
+		B8C5B5131166531B00D34F4E /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+				GCC_VERSION = "";
+				PRODUCT_NAME = dump_syms;
+			};
+			name = Debug;
+		};
+		B8C5B5141166531B00D34F4E /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H;
+				GCC_VERSION = "";
+				PRODUCT_NAME = dump_syms;
+			};
+			name = Release;
+		};
+		D21F97D411CBA0F200239E38 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = test_assembler_unittest;
+			};
+			name = Debug;
+		};
+		D21F97D511CBA0F200239E38 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = (
+					$inherited,
+					../../../testing/googletest,
+					../../../testing/googletest/include,
+					../../../testing/googlemock,
+					../../../testing/googlemock/include,
+				);
+				PRODUCT_NAME = test_assembler_unittest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "dump_syms" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB927908733DD40010E9CD /* Debug */,
+				1DEB927A08733DD40010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B84A9202116CF7F0006C210E /* Build configuration list for PBXNativeTarget "stabs_to_module_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B84A91F6116CF784006C210E /* Debug */,
+				B84A91F7116CF784006C210E /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FAF33116A594800407530 /* Build configuration list for PBXNativeTarget "dwarf2reader_cfi_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FAF31116A591F00407530 /* Debug */,
+				B88FAF32116A591F00407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FAFCC116BDCCC00407530 /* Build configuration list for PBXAggregateTarget "all_unittests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FAFCA116BDCAD00407530 /* Debug */,
+				B88FAFCB116BDCAD00407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB013116BDEC800407530 /* Build configuration list for PBXNativeTarget "stabs_reader_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB009116BDE8400407530 /* Debug */,
+				B88FB00A116BDE8400407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB027116BE02900407530 /* Build configuration list for PBXNativeTarget "gtestmockall" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB025116BE00100407530 /* Debug */,
+				B88FB026116BE00100407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB0BE116CEAFE00407530 /* Build configuration list for PBXNativeTarget "module_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB0BB116CEAC000407530 /* Debug */,
+				B88FB0BC116CEAC000407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB0E4116CEECE00407530 /* Build configuration list for PBXNativeTarget "dwarf2diehandler_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB0E1116CEEA800407530 /* Debug */,
+				B88FB0E2116CEEA800407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB0F9116CEF9800407530 /* Build configuration list for PBXNativeTarget "dwarf_line_to_module_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB0F4116CEF1900407530 /* Debug */,
+				B88FB0F5116CEF1900407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB111116CF0A800407530 /* Build configuration list for PBXNativeTarget "dwarf_cu_to_module_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB10C116CF07A00407530 /* Debug */,
+				B88FB10D116CF07A00407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB128116CF2C800407530 /* Build configuration list for PBXNativeTarget "dwarf_cfi_to_module_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB121116CF28000407530 /* Debug */,
+				B88FB122116CF28000407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB13A116CF33400407530 /* Build configuration list for PBXNativeTarget "bytereader_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB137116CF30F00407530 /* Debug */,
+				B88FB138116CF30F00407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B88FB159116CF4F900407530 /* Build configuration list for PBXNativeTarget "byte_cursor_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B88FB14D116CF4A800407530 /* Debug */,
+				B88FB14E116CF4A800407530 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B89E0E7F116657A100DD08C9 /* Build configuration list for PBXNativeTarget "macho_dump" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B89E0E761166575300DD08C9 /* Debug */,
+				B89E0E771166575300DD08C9 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B89E0E9E11665A9600DD08C9 /* Build configuration list for PBXNativeTarget "macho_reader_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B89E0E9711665A6400DD08C9 /* Debug */,
+				B89E0E9811665A6400DD08C9 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B8C5B5151166533900D34F4E /* Build configuration list for PBXNativeTarget "dump_syms" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B8C5B5131166531B00D34F4E /* Debug */,
+				B8C5B5141166531B00D34F4E /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		D21F97D611CBA11000239E38 /* Build configuration list for PBXNativeTarget "test_assembler_unittest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				D21F97D411CBA0F200239E38 /* Debug */,
+				D21F97D511CBA0F200239E38 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/src/tools/mac/dump_syms/dump_syms_tool.cc b/src/tools/mac/dump_syms/dump_syms_tool.cc
new file mode 100644
index 0000000..8d73f0b
--- /dev/null
+++ b/src/tools/mac/dump_syms/dump_syms_tool.cc
@@ -0,0 +1,264 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_syms_tool.cc: Command line tool that uses the DumpSymbols class.
+// TODO(waylonis): accept stdin
+
+#include <mach-o/arch.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <iostream>
+#include <vector>
+
+#include "common/mac/dump_syms.h"
+#include "common/mac/arch_utilities.h"
+#include "common/mac/macho_utilities.h"
+#include "common/scoped_ptr.h"
+
+using google_breakpad::DumpSymbols;
+using google_breakpad::Module;
+using google_breakpad::scoped_ptr;
+using std::vector;
+
+struct Options {
+  Options()
+      : srcPath(), dsymPath(), arch(), header_only(false),
+        cfi(true), handle_inter_cu_refs(true) {}
+
+  string srcPath;
+  string dsymPath;
+  const NXArchInfo *arch;
+  bool header_only;
+  bool cfi;
+  bool handle_inter_cu_refs;
+};
+
+static bool StackFrameEntryComparator(const Module::StackFrameEntry* a,
+                                      const Module::StackFrameEntry* b) {
+  return a->address < b->address;
+}
+
+// Copy the CFI data from |from_module| into |to_module|, for any non-
+// overlapping ranges.
+static void CopyCFIDataBetweenModules(Module* to_module,
+                                      const Module* from_module) {
+  typedef vector<Module::StackFrameEntry*>::const_iterator Iterator;
+
+  // Get the CFI data from both the source and destination modules and ensure
+  // it is sorted by start address.
+  vector<Module::StackFrameEntry*> from_data;
+  from_module->GetStackFrameEntries(&from_data);
+  std::sort(from_data.begin(), from_data.end(), &StackFrameEntryComparator);
+
+  vector<Module::StackFrameEntry*> to_data;
+  to_module->GetStackFrameEntries(&to_data);
+  std::sort(to_data.begin(), to_data.end(), &StackFrameEntryComparator);
+
+  Iterator to_it = to_data.begin();
+
+  for (Iterator it = from_data.begin(); it != from_data.end(); ++it) {
+    Module::StackFrameEntry* from_entry = *it;
+    Module::Address from_entry_end = from_entry->address + from_entry->size;
+
+    // Find the first CFI record in the |to_module| that does not have an
+    // address less than the entry to be copied.
+    while (to_it != to_data.end()) {
+      if (from_entry->address > (*to_it)->address)
+        ++to_it;
+      else
+        break;
+    }
+
+    // If the entry does not overlap, then it is safe to copy to |to_module|.
+    if (to_it == to_data.end() || (from_entry->address < (*to_it)->address &&
+            from_entry_end < (*to_it)->address)) {
+      to_module->AddStackFrameEntry(new Module::StackFrameEntry(*from_entry));
+    }
+  }
+}
+
+static bool Start(const Options& options) {
+  SymbolData symbol_data = options.cfi ? ALL_SYMBOL_DATA : NO_CFI;
+  DumpSymbols dump_symbols(symbol_data, options.handle_inter_cu_refs);
+
+  // For x86_64 binaries, the CFI data is in the __TEXT,__eh_frame of the
+  // Mach-O file, which is not copied into the dSYM. Whereas in i386, the CFI
+  // data is in the __DWARF,__debug_frame section, which is moved into the
+  // dSYM. Therefore, to get x86_64 CFI data, dump_syms needs to look at both
+  // the dSYM and the Mach-O file. If both paths are present and CFI was
+  // requested, then consider the Module as "split" and dump all the debug data
+  // from the primary debug info file, the dSYM, and then dump additional CFI
+  // data from the source Mach-O file.
+  bool split_module =
+    !options.dsymPath.empty() && !options.srcPath.empty() && options.cfi;
+  const string& primary_file =
+    split_module ? options.dsymPath : options.srcPath;
+
+  if (!dump_symbols.Read(primary_file))
+    return false;
+
+  if (options.arch) {
+    if (!dump_symbols.SetArchitecture(options.arch->cputype,
+                                      options.arch->cpusubtype)) {
+      fprintf(stderr, "%s: no architecture '%s' is present in file.\n",
+              primary_file.c_str(), options.arch->name);
+      size_t available_size;
+      const SuperFatArch *available =
+        dump_symbols.AvailableArchitectures(&available_size);
+      if (available_size == 1)
+        fprintf(stderr, "the file's architecture is: ");
+      else
+        fprintf(stderr, "architectures present in the file are:\n");
+      for (size_t i = 0; i < available_size; i++) {
+        const SuperFatArch *arch = &available[i];
+        const NXArchInfo *arch_info =
+          google_breakpad::BreakpadGetArchInfoFromCpuType(
+              arch->cputype, arch->cpusubtype);
+        if (arch_info)
+          fprintf(stderr, "%s (%s)\n", arch_info->name, arch_info->description);
+        else
+          fprintf(stderr, "unrecognized cpu type 0x%x, subtype 0x%x\n",
+                  arch->cputype, arch->cpusubtype);
+      }
+      return false;
+    }
+  }
+
+  if (options.header_only)
+    return dump_symbols.WriteSymbolFileHeader(std::cout);
+
+  // Read the primary file into a Breakpad Module.
+  Module* module = NULL;
+  if (!dump_symbols.ReadSymbolData(&module))
+    return false;
+  scoped_ptr<Module> scoped_module(module);
+
+  // If this is a split module, read the secondary Mach-O file, from which the
+  // CFI data will be extracted.
+  if (split_module && primary_file == options.dsymPath) {
+    if (!dump_symbols.Read(options.srcPath))
+      return false;
+
+    Module* cfi_module = NULL;
+    if (!dump_symbols.ReadSymbolData(&cfi_module))
+      return false;
+    scoped_ptr<Module> scoped_cfi_module(cfi_module);
+
+    // Ensure that the modules are for the same debug code file.
+    if (cfi_module->name() != module->name() ||
+        cfi_module->os() != module->os() ||
+        cfi_module->architecture() != module->architecture() ||
+        cfi_module->identifier() != module->identifier()) {
+      fprintf(stderr, "Cannot generate a symbol file from split sources that do"
+                      " not match.\n");
+      return false;
+    }
+
+    CopyCFIDataBetweenModules(module, cfi_module);
+  }
+
+  return module->Write(std::cout, symbol_data);
+}
+
+//=============================================================================
+static void Usage(int argc, const char *argv[]) {
+  fprintf(stderr, "Output a Breakpad symbol file from a Mach-o file.\n");
+  fprintf(stderr, "Usage: %s [-a ARCHITECTURE] [-c] [-g dSYM path] "
+                  "<Mach-o file>\n", argv[0]);
+  fprintf(stderr, "\t-i: Output module header information only.\n");
+  fprintf(stderr, "\t-a: Architecture type [default: native, or whatever is\n");
+  fprintf(stderr, "\t    in the file, if it contains only one architecture]\n");
+  fprintf(stderr, "\t-g: Debug symbol file (dSYM) to dump in addition to the "
+                  "Mach-o file\n");
+  fprintf(stderr, "\t-c: Do not generate CFI section\n");
+  fprintf(stderr, "\t-r: Do not handle inter-compilation unit references\n");
+  fprintf(stderr, "\t-h: Usage\n");
+  fprintf(stderr, "\t-?: Usage\n");
+}
+
+//=============================================================================
+static void SetupOptions(int argc, const char *argv[], Options *options) {
+  extern int optind;
+  signed char ch;
+
+  while ((ch = getopt(argc, (char * const*)argv, "ia:g:chr?")) != -1) {
+    switch (ch) {
+      case 'i':
+        options->header_only = true;
+        break;
+      case 'a': {
+        const NXArchInfo *arch_info =
+            google_breakpad::BreakpadGetArchInfoFromName(optarg);
+        if (!arch_info) {
+          fprintf(stderr, "%s: Invalid architecture: %s\n", argv[0], optarg);
+          Usage(argc, argv);
+          exit(1);
+        }
+        options->arch = arch_info;
+        break;
+      }
+      case 'g':
+        options->dsymPath = optarg;
+        break;
+      case 'c':
+        options->cfi = false;
+        break;
+      case 'r':
+        options->handle_inter_cu_refs = false;
+        break;
+      case '?':
+      case 'h':
+        Usage(argc, argv);
+        exit(0);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 1) {
+    fprintf(stderr, "Must specify Mach-o file\n");
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->srcPath = argv[optind];
+}
+
+//=============================================================================
+int main (int argc, const char * argv[]) {
+  Options options;
+  bool result;
+
+  SetupOptions(argc, argv, &options);
+  result = Start(options);
+
+  return !result;
+}
diff --git a/src/tools/mac/dump_syms/macho_dump.cc b/src/tools/mac/dump_syms/macho_dump.cc
new file mode 100644
index 0000000..34f82ab
--- /dev/null
+++ b/src/tools/mac/dump_syms/macho_dump.cc
@@ -0,0 +1,203 @@
+// Copyright (c) 2010, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
+
+// macho_dump.cc: Dump the contents of a Mach-O file. This is mostly
+// a test program for the Mach_O::FatReader and Mach_O::Reader classes.
+
+#include <errno.h>
+#include <fcntl.h>
+#include <mach-o/arch.h>
+#include <sys/mman.h>
+#include <stdint.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "common/byte_cursor.h"
+#include "common/mac/arch_utilities.h"
+#include "common/mac/macho_reader.h"
+#include "common/path_helper.h"
+
+using google_breakpad::ByteBuffer;
+using std::ostringstream;
+using std::string;
+using std::vector;
+
+namespace {
+namespace mach_o = google_breakpad::mach_o;
+
+string program_name;
+
+int check_syscall(int result, const char* operation, const char* filename) {
+  if (result < 0) {
+    fprintf(stderr, "%s: %s '%s': %s\n",
+            program_name.c_str(), operation,
+            filename, strerror(errno));
+    exit(1);
+  }
+  return result;
+}
+
+class DumpSection: public mach_o::Reader::SectionHandler {
+ public:
+  DumpSection() : index_(0) { }
+  bool HandleSection(const mach_o::Section& section) {
+    printf("        section %d '%s' in segment '%s'\n"
+           "          address: 0x%llx\n"
+           "          alignment: 1 << %d B\n"
+           "          flags: %d\n"
+           "          size: %ld\n",
+           index_++, section.section_name.c_str(), section.segment_name.c_str(),
+           section.address, section.align,
+           mach_o::SectionFlags(section.flags),
+           section.contents.Size());
+    return true;
+  }
+
+ private:
+  int index_;
+};
+
+class DumpCommand: public mach_o::Reader::LoadCommandHandler {
+ public:
+  DumpCommand(mach_o::Reader* reader) : reader_(reader), index_(0) { }
+  bool UnknownCommand(mach_o::LoadCommandType type,
+                      const ByteBuffer& contents) {
+    printf("      load command %d: %d", index_++, type);
+    return true;
+  }
+  bool SegmentCommand(const mach_o::Segment& segment) {
+    printf("      load command %d: %s-bit segment '%s'\n"
+           "        address: 0x%llx\n"
+           "        memory size: 0x%llx\n"
+           "        maximum protection: 0x%x\n"
+           "        initial protection: 0x%x\n"
+           "        flags: %d\n"
+           "        section_list size: %ld B\n",
+           index_++, (segment.bits_64 ? "64" : "32"), segment.name.c_str(),
+           segment.vmaddr, segment.vmsize, segment.maxprot,
+           segment.initprot, mach_o::SegmentFlags(segment.flags),
+           segment.section_list.Size());
+           
+    DumpSection dump_section;
+    return reader_->WalkSegmentSections(segment, &dump_section);
+  }
+ private:
+  mach_o::Reader* reader_;
+  int index_;
+};
+
+void DumpFile(const char* filename) {
+  int fd = check_syscall(open(filename, O_RDONLY), "opening", filename);
+  struct stat attributes;
+  check_syscall(fstat(fd, &attributes),
+                "getting file attributes for", filename);
+  void* mapping = mmap(NULL, attributes.st_size, PROT_READ,
+                       MAP_PRIVATE, fd, 0);
+  close(fd);
+  check_syscall(mapping == (void*)-1 ? -1 : 0,
+                "mapping contents of", filename);
+
+  mach_o::FatReader::Reporter fat_reporter(filename);
+  mach_o::FatReader fat_reader(&fat_reporter);
+  if (!fat_reader.Read(reinterpret_cast<uint8_t*>(mapping),
+                       attributes.st_size)) {
+    exit(1);
+  }
+  printf("filename: %s\n", filename);
+  size_t object_files_size;
+  const SuperFatArch* super_fat_object_files =
+      fat_reader.object_files(&object_files_size);
+  struct fat_arch* object_files;
+  if (!super_fat_object_files->ConvertToFatArch(object_files)) {
+    exit(1);
+  }
+  printf("  object file count: %ld\n", object_files_size);
+  for (size_t i = 0; i < object_files_size; i++) {
+    const struct fat_arch& file = object_files[i];
+    const NXArchInfo* fat_arch_info =
+        google_breakpad::BreakpadGetArchInfoFromCpuType(
+            file.cputype, file.cpusubtype);
+    printf("\n  object file %ld:\n"
+           "    fat header:\n:"
+           "      CPU type: %s (%s)\n"
+           "      size: %d B\n"
+           "      alignment: 1<<%d B\n",
+           i, fat_arch_info->name, fat_arch_info->description,
+           file.size, file.align);
+
+    ostringstream name;
+    name << filename;
+    if (object_files_size > 1)
+      name << ", object file #" << i;
+    ByteBuffer file_contents(reinterpret_cast<uint8_t*>(mapping)
+                             + file.offset, file.size);
+    mach_o::Reader::Reporter reporter(name.str());
+    mach_o::Reader reader(&reporter);
+    if (!reader.Read(file_contents, file.cputype, file.cpusubtype)) {
+      exit(1);
+    }
+
+    const NXArchInfo* macho_arch_info =
+      NXGetArchInfoFromCpuType(reader.cpu_type(),
+                               reader.cpu_subtype());
+    printf("    Mach-O header:\n"
+           "      word size: %s\n" 
+           "      CPU type: %s (%s)\n"
+           "      File type: %d\n"
+           "      flags: %x\n",
+           (reader.bits_64() ? "64 bits" : "32 bits"),
+           macho_arch_info->name, macho_arch_info->description,
+           reader.file_type(), reader.flags());
+
+    DumpCommand dump_command(&reader);
+    reader.WalkLoadCommands(&dump_command);
+  }
+  munmap(mapping, attributes.st_size);
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  program_name = google_breakpad::BaseName(argv[0]);
+  if (argc == 1) {
+    fprintf(stderr, "Usage: %s FILE ...\n"
+            "Dump the contents of the Mach-O or fat binary files "
+            "'FILE ...'.\n", program_name.c_str());
+  }
+  for (int i = 1; i < argc; i++) {
+    DumpFile(argv[i]);
+  }
+}
diff --git a/src/tools/mac/symupload/symupload.m b/src/tools/mac/symupload/symupload.m
new file mode 100644
index 0000000..61c2450
--- /dev/null
+++ b/src/tools/mac/symupload/symupload.m
@@ -0,0 +1,439 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// symupload.m: Upload a symbol file to a HTTP server.  The upload is sent as
+// a multipart/form-data POST request with the following parameters:
+//  code_file: the basename of the module, e.g. "app"
+//  debug_file: the basename of the debugging file, e.g. "app"
+//  debug_identifier: the debug file's identifier, usually consisting of
+//                    the guid and age embedded in the pdb, e.g.
+//                    "11111111BBBB3333DDDD555555555555F"
+//  os: the operating system that the module was built for
+//  cpu: the CPU that the module was built for (x86 or ppc)
+//  symbol_file: the contents of the breakpad-format symbol file
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <Foundation/Foundation.h>
+
+#include "HTTPMultipartUpload.h"
+#include "HTTPPutRequest.h"
+#include "SymbolCollectorClient.h"
+
+NSString* const kBreakpadSymbolType = @"BREAKPAD";
+
+typedef enum { kSymUploadProtocolV1, kSymUploadProtocolV2 } SymUploadProtocol;
+
+typedef enum {
+  kResultSuccess = 0,
+  kResultFailure = 1,
+  kResultAlreadyExists = 2
+} Result;
+
+typedef struct {
+  NSString* symbolsPath;
+  NSString* uploadURLStr;
+  SymUploadProtocol symUploadProtocol;
+  NSString* apiKey;
+  BOOL force;
+  Result result;
+  NSString* type;
+  NSString* codeFile;
+  NSString* debugID;
+} Options;
+
+//=============================================================================
+static NSArray* ModuleDataForSymbolFile(NSString* file) {
+  NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:file];
+  NSData* data = [fh readDataOfLength:1024];
+  NSString* str = [[NSString alloc] initWithData:data
+                                        encoding:NSUTF8StringEncoding];
+  NSScanner* scanner = [NSScanner scannerWithString:str];
+  NSString* line;
+  NSMutableArray* parts = nil;
+  const int MODULE_ID_INDEX = 3;
+
+  if ([scanner scanUpToString:@"\n" intoString:&line]) {
+    parts = [[NSMutableArray alloc] init];
+    NSScanner* moduleInfoScanner = [NSScanner scannerWithString:line];
+    NSString* moduleInfo;
+    // Get everything BEFORE the module name.  None of these properties
+    // can have spaces.
+    for (int i = 0; i <= MODULE_ID_INDEX; i++) {
+      [moduleInfoScanner scanUpToString:@" " intoString:&moduleInfo];
+      [parts addObject:moduleInfo];
+    }
+
+    // Now get the module name. This can have a space so we scan to
+    // the end of the line.
+    [moduleInfoScanner scanUpToString:@"\n" intoString:&moduleInfo];
+    [parts addObject:moduleInfo];
+  }
+
+  [str release];
+
+  return parts;
+}
+
+//=============================================================================
+static void StartSymUploadProtocolV1(Options* options,
+                                     NSString* OS,
+                                     NSString* CPU,
+                                     NSString* debugID,
+                                     NSString* debugFile) {
+  NSURL* url = [NSURL URLWithString:options->uploadURLStr];
+  HTTPMultipartUpload* ul = [[HTTPMultipartUpload alloc] initWithURL:url];
+  NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
+
+  // Add parameters
+  [parameters setObject:debugID forKey:@"debug_identifier"];
+  [parameters setObject:OS forKey:@"os"];
+  [parameters setObject:CPU forKey:@"cpu"];
+  [parameters setObject:debugFile forKey:@"debug_file"];
+  [parameters setObject:debugFile forKey:@"code_file"];
+  [ul setParameters:parameters];
+
+  NSArray* keys = [parameters allKeys];
+  int count = [keys count];
+  for (int i = 0; i < count; ++i) {
+    NSString* key = [keys objectAtIndex:i];
+    NSString* value = [parameters objectForKey:key];
+    fprintf(stdout, "'%s' = '%s'\n", [key UTF8String], [value UTF8String]);
+  }
+
+  // Add file
+  [ul addFileAtPath:options->symbolsPath name:@"symbol_file"];
+
+  // Send it
+  NSError* error = nil;
+  NSData* data = [ul send:&error];
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  int status = [[ul response] statusCode];
+
+  fprintf(stdout, "Send: %s\n",
+          error ? [[error description] UTF8String] : "No Error");
+  fprintf(stdout, "Response: %d\n", status);
+  fprintf(stdout, "Result: %lu bytes\n%s\n", (unsigned long)[data length],
+          [result UTF8String]);
+
+  [result release];
+  [ul release];
+  options->result = (!error && status == 200) ? kResultSuccess : kResultFailure;
+}
+
+//=============================================================================
+static void StartSymUploadProtocolV2(Options* options,
+                                     NSString* debugID,
+                                     NSString* debugFile) {
+  options->result = kResultFailure;
+
+  // Only check status of BREAKPAD symbols, because the v2 protocol doesn't
+  // (yet) have a way to check status of other symbol types.
+  if (!options->force && [options->type isEqualToString:kBreakpadSymbolType]) {
+    SymbolStatus symbolStatus =
+        [SymbolCollectorClient checkSymbolStatusOnServer:options->uploadURLStr
+                                              withAPIKey:options->apiKey
+                                           withDebugFile:debugFile
+                                             withDebugID:debugID];
+    if (symbolStatus == SymbolStatusFound) {
+      fprintf(stdout, "Symbol file already exists, upload aborted."
+                      " Use \"-f\" to overwrite.\n");
+      options->result = kResultAlreadyExists;
+      return;
+    } else if (symbolStatus == SymbolStatusUnknown) {
+      fprintf(stdout, "Failed to get check for existing symbol.\n");
+      return;
+    }
+  }
+
+  UploadURLResponse* URLResponse =
+      [SymbolCollectorClient createUploadURLOnServer:options->uploadURLStr
+                                          withAPIKey:options->apiKey];
+  if (URLResponse == nil) {
+    return;
+  }
+
+  NSURL* uploadURL = [NSURL URLWithString:[URLResponse uploadURL]];
+  HTTPPutRequest* putRequest = [[HTTPPutRequest alloc] initWithURL:uploadURL];
+  [putRequest setFile:options->symbolsPath];
+
+  NSError* error = nil;
+  NSData* data = [putRequest send:&error];
+  NSString* result = [[NSString alloc] initWithData:data
+                                           encoding:NSUTF8StringEncoding];
+  int responseCode = [[putRequest response] statusCode];
+  [putRequest release];
+
+  if (error || responseCode != 200) {
+    fprintf(stdout, "Failed to upload symbol file.\n");
+    fprintf(stdout, "Response code: %d\n", responseCode);
+    fprintf(stdout, "Response:\n");
+    fprintf(stdout, "%s\n", [result UTF8String]);
+    return;
+  }
+
+  CompleteUploadResult completeUploadResult =
+      [SymbolCollectorClient completeUploadOnServer:options->uploadURLStr
+                                         withAPIKey:options->apiKey
+                                      withUploadKey:[URLResponse uploadKey]
+                                      withDebugFile:debugFile
+                                        withDebugID:debugID
+                                           withType:options->type];
+  [URLResponse release];
+  if (completeUploadResult == CompleteUploadResultError) {
+    fprintf(stdout, "Failed to complete upload.\n");
+    return;
+  } else if (completeUploadResult == CompleteUploadResultDuplicateData) {
+    fprintf(stdout, "Uploaded file checksum matched existing file checksum,"
+                    " no change necessary.\n");
+  } else {
+    fprintf(stdout, "Successfully sent the symbol file.\n");
+  }
+  options->result = kResultSuccess;
+}
+
+//=============================================================================
+static void Start(Options* options) {
+  // If non-BREAKPAD upload special-case.
+  if (![options->type isEqualToString:kBreakpadSymbolType]) {
+    StartSymUploadProtocolV2(options, options->debugID, options->codeFile);
+    return;
+  }
+
+  NSArray* moduleParts = ModuleDataForSymbolFile(options->symbolsPath);
+  // MODULE <os> <cpu> <uuid> <module-name>
+  // 0      1    2     3      4
+  NSString* OS = [moduleParts objectAtIndex:1];
+  NSString* CPU = [moduleParts objectAtIndex:2];
+  NSMutableString* debugID =
+      [NSMutableString stringWithString:[moduleParts objectAtIndex:3]];
+  [debugID replaceOccurrencesOfString:@"-"
+                           withString:@""
+                              options:0
+                                range:NSMakeRange(0, [debugID length])];
+  NSString* debugFile = [moduleParts objectAtIndex:4];
+
+  if (options->symUploadProtocol == kSymUploadProtocolV1) {
+    StartSymUploadProtocolV1(options, OS, CPU, debugID, debugFile);
+  } else if (options->symUploadProtocol == kSymUploadProtocolV2) {
+    StartSymUploadProtocolV2(options, debugID, debugFile);
+  }
+}
+
+//=============================================================================
+static void Usage(int argc, const char* argv[]) {
+  fprintf(stderr, "Submit symbol information.\n");
+  fprintf(stderr, "Usage: %s [options] <symbol-file> <upload-URL>\n", argv[0]);
+  fprintf(stderr, "<symbol-file> should be created by using the dump_syms "
+                  "tool.\n");
+  fprintf(stderr, "<upload-URL> is the destination for the upload.\n");
+  fprintf(stderr, "Options:\n");
+  fprintf(stderr, "\t-p <protocol>: protocol to use for upload, accepts "
+                  "[\"sym-upload-v1\", \"sym-upload-v2\"]. Default is "
+                  "\"sym-upload-v1\".\n");
+  fprintf(stderr, "\t-k <api-key>: secret for authentication with upload "
+                  "server. [Only in sym-upload-v2 protocol mode]\n");
+  fprintf(stderr, "\t-f: Overwrite symbol file on server if already present. "
+                  "[Only in sym-upload-v2 protocol mode]\n");
+  fprintf(
+      stderr,
+      "-t:\t <symbol-type> Explicitly set symbol upload type ("
+      "default is 'breakpad').\n"
+      "\t One of ['breakpad', 'elf', 'pe', 'macho', 'debug_only', 'dwp', "
+      "'dsym', 'pdb'].\n"
+      "\t Note: When this flag is set to anything other than 'breakpad', then "
+      "the '-c' and '-i' flags must also be set.\n");
+  fprintf(stderr, "-c:\t <code-file> Explicitly set 'code_file' for symbol "
+                  "upload (basename of executable).\n");
+  fprintf(stderr, "-i:\t <debug-id> Explicitly set 'debug_id' for symbol "
+                  "upload (typically build ID of executable).\n");
+  fprintf(stderr, "\t-h: Usage\n");
+  fprintf(stderr, "\t-?: Usage\n");
+  fprintf(stderr, "\n");
+  fprintf(stderr, "Exit codes:\n");
+  fprintf(stderr, "\t%d: Success\n", kResultSuccess);
+  fprintf(stderr, "\t%d: Failure\n", kResultFailure);
+  fprintf(stderr,
+          "\t%d: Symbol file already exists on server (and -f was not "
+          "specified).\n",
+          kResultAlreadyExists);
+  fprintf(stderr,
+          "\t   [This exit code will only be returned by the sym-upload-v2 "
+          "protocol.\n");
+  fprintf(stderr,
+          "\t    The sym-upload-v1 protocol can return either Success or "
+          "Failure\n");
+  fprintf(stderr, "\t    in this case, and the action taken by the server is "
+                  "unspecified.]\n");
+  fprintf(stderr, "\n");
+  fprintf(stderr, "Examples:\n");
+  fprintf(stderr, "  With 'sym-upload-v1':\n");
+  fprintf(stderr, "    %s path/to/symbol_file http://myuploadserver\n",
+          argv[0]);
+  fprintf(stderr, "  With 'sym-upload-v2':\n");
+  fprintf(stderr, "    [Defaulting to symbol type 'BREAKPAD']\n");
+  fprintf(stderr,
+          "    %s -p sym-upload-v2 -k mysecret123! "
+          "path/to/symbol_file http://myuploadserver\n",
+          argv[0]);
+  fprintf(stderr, "    [Explicitly set symbol type to 'macho']\n");
+  fprintf(stderr,
+          "    %s -p sym-upload-v2 -k mysecret123! -t macho "
+          "-c app -i 11111111BBBB3333DDDD555555555555F "
+          "path/to/symbol_file http://myuploadserver\n",
+          argv[0]);
+}
+
+//=============================================================================
+static void SetupOptions(int argc, const char* argv[], Options* options) {
+  // Set default options values.
+  options->symUploadProtocol = kSymUploadProtocolV1;
+  options->apiKey = nil;
+  options->type = kBreakpadSymbolType;
+  options->codeFile = nil;
+  options->debugID = nil;
+  options->force = NO;
+
+  extern int optind;
+  char ch;
+
+  while ((ch = getopt(argc, (char* const*)argv, "p:k:t:c:i:hf?")) != -1) {
+    switch (ch) {
+      case 'p':
+        if (strcmp(optarg, "sym-upload-v2") == 0) {
+          options->symUploadProtocol = kSymUploadProtocolV2;
+          break;
+        } else if (strcmp(optarg, "sym-upload-v1") == 0) {
+          // This is already the default but leave in case that changes.
+          options->symUploadProtocol = kSymUploadProtocolV1;
+          break;
+        }
+        Usage(argc, argv);
+        exit(0);
+        break;
+      case 'k':
+        options->apiKey = [NSString stringWithCString:optarg
+                                             encoding:NSASCIIStringEncoding];
+        break;
+      case 't': {
+        // This is really an enum, so treat as upper-case for consistency with
+        // enum naming convention on server-side.
+        options->type = [[NSString stringWithCString:optarg
+                                            encoding:NSASCIIStringEncoding]
+            uppercaseString];
+        break;
+      }
+      case 'c':
+        options->codeFile = [NSString stringWithCString:optarg
+                                               encoding:NSASCIIStringEncoding];
+        ;
+        break;
+      case 'i':
+        options->debugID = [NSString stringWithCString:optarg
+                                              encoding:NSASCIIStringEncoding];
+        ;
+        break;
+      case 'f':
+        options->force = YES;
+        break;
+      default:
+        Usage(argc, argv);
+        exit(0);
+        break;
+    }
+  }
+
+  if ((argc - optind) != 2) {
+    fprintf(stderr, "%s: Missing symbols file and/or upload-URL\n", argv[0]);
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  int fd = open(argv[optind], O_RDONLY);
+  if (fd < 0) {
+    fprintf(stderr, "%s: %s: %s\n", argv[0], argv[optind], strerror(errno));
+    exit(1);
+  }
+
+  struct stat statbuf;
+  if (fstat(fd, &statbuf) < 0) {
+    fprintf(stderr, "%s: %s: %s\n", argv[0], argv[optind], strerror(errno));
+    close(fd);
+    exit(1);
+  }
+  close(fd);
+
+  if (!S_ISREG(statbuf.st_mode)) {
+    fprintf(stderr, "%s: %s: not a regular file\n", argv[0], argv[optind]);
+    exit(1);
+  }
+
+  bool isBreakpadUpload = [options->type isEqualToString:kBreakpadSymbolType];
+  bool hasCodeFile = options->codeFile != nil;
+  bool hasDebugID = options->debugID != nil;
+  if (isBreakpadUpload && (hasCodeFile || hasDebugID)) {
+    fprintf(stderr, "\n");
+    fprintf(stderr,
+            "%s: -c and -i should only be specified for non-breakpad "
+            "symbol upload types.\n",
+            argv[0]);
+    fprintf(stderr, "\n");
+    Usage(argc, argv);
+    exit(1);
+  }
+  if (!isBreakpadUpload && (!hasCodeFile || !hasDebugID)) {
+    fprintf(stderr, "\n");
+    fprintf(stderr,
+            "%s: -c and -i must be specified for non-breakpad "
+            "symbol upload types.\n",
+            argv[0]);
+    fprintf(stderr, "\n");
+    Usage(argc, argv);
+    exit(1);
+  }
+
+  options->symbolsPath = [NSString stringWithUTF8String:argv[optind]];
+  options->uploadURLStr = [NSString stringWithUTF8String:argv[optind + 1]];
+}
+
+//=============================================================================
+int main(int argc, const char* argv[]) {
+  NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+  Options options;
+
+  bzero(&options, sizeof(Options));
+  SetupOptions(argc, argv, &options);
+  Start(&options);
+
+  [pool release];
+  return options.result;
+}
diff --git a/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj b/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1653b38
--- /dev/null
+++ b/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj
@@ -0,0 +1,296 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		5B6060BD222716FC0015F0A0 /* HTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6060BC222716FC0015F0A0 /* HTTPRequest.m */; };
+		5B6060C02227201B0015F0A0 /* HTTPPutRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6060BF2227201B0015F0A0 /* HTTPPutRequest.m */; };
+		5B6060C7222735E50015F0A0 /* HTTPGetRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6060C6222735E50015F0A0 /* HTTPGetRequest.m */; };
+		5B6060CA2227374E0015F0A0 /* HTTPSimplePostRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6060C92227374E0015F0A0 /* HTTPSimplePostRequest.m */; };
+		5B6060D022273BDA0015F0A0 /* SymbolCollectorClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6060CF22273BDA0015F0A0 /* SymbolCollectorClient.m */; };
+		5B97447524D0AA5F000C71F5 /* encoding_util.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B97447424D0AA5F000C71F5 /* encoding_util.m */; };
+		8B31022C11F0CEBD00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+		8DD76F9A0486AA7600D96B5E /* symupload.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* symupload.m */; settings = {ATTRIBUTES = (); }; };
+		8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+		9BC1D49E0B37427A00F2A2B4 /* minidump_upload.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD836000B0544BA0055103E /* minidump_upload.m */; };
+		9BD8336A0B03E4080055103E /* HTTPMultipartUpload.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BD833680B03E4080055103E /* HTTPMultipartUpload.h */; };
+		9BD8336B0B03E4080055103E /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD833690B03E4080055103E /* HTTPMultipartUpload.m */; };
+		9BD836180B0549F70055103E /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD833690B03E4080055103E /* HTTPMultipartUpload.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 8;
+			dstPath = /usr/share/man/man1/;
+			dstSubfolderSpec = 0;
+			files = (
+				9BD8336A0B03E4080055103E /* HTTPMultipartUpload.h in CopyFiles */,
+			);
+			runOnlyForDeploymentPostprocessing = 1;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		08FB7796FE84155DC02AAC07 /* symupload.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = symupload.m; sourceTree = "<group>"; tabWidth = 2; };
+		08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		5B6060BB222716FC0015F0A0 /* HTTPRequest.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = HTTPRequest.h; path = ../../../common/mac/HTTPRequest.h; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060BC222716FC0015F0A0 /* HTTPRequest.m */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; name = HTTPRequest.m; path = ../../../common/mac/HTTPRequest.m; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060BE2227201B0015F0A0 /* HTTPPutRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HTTPPutRequest.h; path = ../../../common/mac/HTTPPutRequest.h; sourceTree = "<group>"; };
+		5B6060BF2227201B0015F0A0 /* HTTPPutRequest.m */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; name = HTTPPutRequest.m; path = ../../../common/mac/HTTPPutRequest.m; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060C22227303A0015F0A0 /* encoding_util.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = encoding_util.h; path = ../../../common/mac/encoding_util.h; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060C5222735E50015F0A0 /* HTTPGetRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HTTPGetRequest.h; path = ../../../common/mac/HTTPGetRequest.h; sourceTree = "<group>"; };
+		5B6060C6222735E50015F0A0 /* HTTPGetRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = HTTPGetRequest.m; path = ../../../common/mac/HTTPGetRequest.m; sourceTree = "<group>"; };
+		5B6060C82227374E0015F0A0 /* HTTPSimplePostRequest.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = HTTPSimplePostRequest.h; path = ../../../common/mac/HTTPSimplePostRequest.h; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060C92227374E0015F0A0 /* HTTPSimplePostRequest.m */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; name = HTTPSimplePostRequest.m; path = ../../../common/mac/HTTPSimplePostRequest.m; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060CE22273BDA0015F0A0 /* SymbolCollectorClient.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = SymbolCollectorClient.h; path = ../../../common/mac/SymbolCollectorClient.h; sourceTree = "<group>"; tabWidth = 2; };
+		5B6060CF22273BDA0015F0A0 /* SymbolCollectorClient.m */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; name = SymbolCollectorClient.m; path = ../../../common/mac/SymbolCollectorClient.m; sourceTree = "<group>"; tabWidth = 2; };
+		5B97447424D0AA5F000C71F5 /* encoding_util.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = encoding_util.m; path = ../../../common/mac/encoding_util.m; sourceTree = "<group>"; };
+		8B31022B11F0CE6900FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+		8DD76FA10486AA7600D96B5E /* symupload */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = symupload; sourceTree = BUILT_PRODUCTS_DIR; };
+		9BD833680B03E4080055103E /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = HTTPMultipartUpload.h; path = ../../../common/mac/HTTPMultipartUpload.h; sourceTree = "<group>"; tabWidth = 2; };
+		9BD833690B03E4080055103E /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; name = HTTPMultipartUpload.m; path = ../../../common/mac/HTTPMultipartUpload.m; sourceTree = "<group>"; tabWidth = 2; };
+		9BD835FB0B0544950055103E /* minidump_upload */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = minidump_upload; sourceTree = BUILT_PRODUCTS_DIR; };
+		9BD836000B0544BA0055103E /* minidump_upload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = minidump_upload.m; path = ../../../common/mac/minidump_upload.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9BD835F90B0544950055103E /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8B31022C11F0CEBD00FCF3E4 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* symupload */ = {
+			isa = PBXGroup;
+			children = (
+				5B6060CE22273BDA0015F0A0 /* SymbolCollectorClient.h */,
+				5B6060CF22273BDA0015F0A0 /* SymbolCollectorClient.m */,
+				5B6060C82227374E0015F0A0 /* HTTPSimplePostRequest.h */,
+				5B6060C92227374E0015F0A0 /* HTTPSimplePostRequest.m */,
+				5B6060C5222735E50015F0A0 /* HTTPGetRequest.h */,
+				5B6060C6222735E50015F0A0 /* HTTPGetRequest.m */,
+				5B6060C22227303A0015F0A0 /* encoding_util.h */,
+				5B97447424D0AA5F000C71F5 /* encoding_util.m */,
+				5B6060BE2227201B0015F0A0 /* HTTPPutRequest.h */,
+				5B6060BF2227201B0015F0A0 /* HTTPPutRequest.m */,
+				5B6060BB222716FC0015F0A0 /* HTTPRequest.h */,
+				5B6060BC222716FC0015F0A0 /* HTTPRequest.m */,
+				8B31022B11F0CE6900FCF3E4 /* Breakpad.xcconfig */,
+				8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */,
+				8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */,
+				08FB7796FE84155DC02AAC07 /* symupload.m */,
+				9BD836000B0544BA0055103E /* minidump_upload.m */,
+				9BD833680B03E4080055103E /* HTTPMultipartUpload.h */,
+				9BD833690B03E4080055103E /* HTTPMultipartUpload.m */,
+				08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = symupload;
+			sourceTree = "<group>";
+		};
+		08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				08FB779EFE84155DC02AAC07 /* Foundation.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8DD76FA10486AA7600D96B5E /* symupload */,
+				9BD835FB0B0544950055103E /* minidump_upload */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8DD76F960486AA7600D96B5E /* symupload */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "symupload" */;
+			buildPhases = (
+				8DD76F990486AA7600D96B5E /* Sources */,
+				8DD76F9B0486AA7600D96B5E /* Frameworks */,
+				8DD76F9E0486AA7600D96B5E /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = symupload;
+			productInstallPath = "$(HOME)/bin";
+			productName = symupload;
+			productReference = 8DD76FA10486AA7600D96B5E /* symupload */;
+			productType = "com.apple.product-type.tool";
+		};
+		9BD835FA0B0544950055103E /* minidump_upload */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 9BD836020B0544BB0055103E /* Build configuration list for PBXNativeTarget "minidump_upload" */;
+			buildPhases = (
+				9BD835F80B0544950055103E /* Sources */,
+				9BD835F90B0544950055103E /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = minidump_upload;
+			productName = minidump_upload;
+			productReference = 9BD835FB0B0544950055103E /* minidump_upload */;
+			productType = "com.apple.product-type.tool";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+			};
+			buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "symupload" */;
+			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = en;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				en,
+			);
+			mainGroup = 08FB7794FE84155DC02AAC07 /* symupload */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				8DD76F960486AA7600D96B5E /* symupload */,
+				9BD835FA0B0544950055103E /* minidump_upload */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8DD76F990486AA7600D96B5E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8DD76F9A0486AA7600D96B5E /* symupload.m in Sources */,
+				5B6060CA2227374E0015F0A0 /* HTTPSimplePostRequest.m in Sources */,
+				5B6060D022273BDA0015F0A0 /* SymbolCollectorClient.m in Sources */,
+				5B6060C7222735E50015F0A0 /* HTTPGetRequest.m in Sources */,
+				5B6060C02227201B0015F0A0 /* HTTPPutRequest.m in Sources */,
+				5B6060BD222716FC0015F0A0 /* HTTPRequest.m in Sources */,
+				5B97447524D0AA5F000C71F5 /* encoding_util.m in Sources */,
+				9BD8336B0B03E4080055103E /* HTTPMultipartUpload.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		9BD835F80B0544950055103E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9BD836180B0549F70055103E /* HTTPMultipartUpload.m in Sources */,
+				9BC1D49E0B37427A00F2A2B4 /* minidump_upload.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB927508733DD40010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../../..;
+				PRODUCT_NAME = symupload;
+			};
+			name = Debug;
+		};
+		1DEB927608733DD40010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../../..;
+				PRODUCT_NAME = symupload;
+			};
+			name = Release;
+		};
+		1DEB927908733DD40010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		1DEB927A08733DD40010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		9BD836030B0544BB0055103E /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../../..;
+				PRODUCT_NAME = minidump_upload;
+			};
+			name = Debug;
+		};
+		9BD836040B0544BB0055103E /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				HEADER_SEARCH_PATHS = ../../..;
+				PRODUCT_NAME = minidump_upload;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "symupload" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB927508733DD40010E9CD /* Debug */,
+				1DEB927608733DD40010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "symupload" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB927908733DD40010E9CD /* Debug */,
+				1DEB927A08733DD40010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		9BD836020B0544BB0055103E /* Build configuration list for PBXNativeTarget "minidump_upload" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				9BD836030B0544BB0055103E /* Debug */,
+				9BD836040B0544BB0055103E /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/src/tools/mac/tools_mac.gypi b/src/tools/mac/tools_mac.gypi
new file mode 100644
index 0000000..7457573
--- /dev/null
+++ b/src/tools/mac/tools_mac.gypi
@@ -0,0 +1,116 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'target_defaults': {
+    'include_dirs': [
+      '../..',
+    ],
+  },
+  'targets': [
+    {
+      'target_name': 'crash_report',
+      'type': 'executable',
+      'sources': [
+        'crash_report/crash_report.mm',
+        'crash_report/on_demand_symbol_supplier.h',
+        'crash_report/on_demand_symbol_supplier.mm',
+      ],
+      'link_settings': {
+        'libraries': [
+          '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+        ],
+      },
+      'dependencies': [
+        '../common/common.gyp:common',
+        '../processor/processor.gyp:processor',
+      ],
+    },
+    {
+      'target_name': 'dump_syms',
+      'type': 'executable',
+      'sources': [
+        'dump_syms/dump_syms_tool.cc',
+      ],
+      'link_settings': {
+        'libraries': [
+          '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+        ],
+      },
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'macho_dump',
+      'type': 'executable',
+      'sources': [
+        'dump_syms/macho_dump.cc',
+      ],
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'minidump_upload',
+      'type': 'executable',
+      'sources': [
+        'symupload/minidump_upload.m',
+      ],
+      'include_dirs': [
+        '../../common/mac',
+      ],
+      'link_settings': {
+        'libraries': [
+          '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+        ],
+      },
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+    {
+      'target_name': 'symupload',
+      'type': 'executable',
+      'sources': [
+        'symupload/symupload.m',
+      ],
+      'include_dirs': [
+        '../../common/mac',
+      ],
+      'link_settings': {
+        'libraries': [
+          '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+        ],
+      },
+      'dependencies': [
+        '../common/common.gyp:common',
+      ],
+    },
+  ],
+}
diff --git a/src/tools/mac/upload_system_symbols/arch_constants.h b/src/tools/mac/upload_system_symbols/arch_constants.h
new file mode 100644
index 0000000..e12e53e
--- /dev/null
+++ b/src/tools/mac/upload_system_symbols/arch_constants.h
@@ -0,0 +1,67 @@
+/* Copyright 2014, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <mach-o/arch.h>
+#include <mach-o/loader.h>
+#include <mach/machine.h>
+
+// Go/Cgo does not support #define constants, so turn them into symbols
+// that are reachable from Go.
+
+#ifndef CPU_TYPE_ARM64
+#define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64)
+#endif
+
+#ifndef CPU_SUBTYPE_ARM64_ALL
+#define CPU_SUBTYPE_ARM64_ALL 0
+#endif
+
+#ifndef CPU_SUBTYPE_ARM64_E
+#define CPU_SUBTYPE_ARM64_E 2
+#endif
+
+const cpu_type_t kCPU_TYPE_ARM = CPU_TYPE_ARM;
+const cpu_type_t kCPU_TYPE_ARM64 = CPU_TYPE_ARM64;
+
+const cpu_subtype_t kCPU_SUBTYPE_ARM64_ALL = CPU_SUBTYPE_ARM64_ALL;
+const cpu_subtype_t kCPU_SUBTYPE_ARM64_E = CPU_SUBTYPE_ARM64_E;
+const cpu_subtype_t kCPU_SUBTYPE_ARM_V7S = CPU_SUBTYPE_ARM_V7S;
+
+const char* GetNXArchInfoName(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype) {
+  const NXArchInfo* arch_info = NXGetArchInfoFromCpuType(cpu_type, cpu_subtype);
+  if (!arch_info)
+    return 0;
+  return arch_info->name;
+}
+
+const uint32_t kMachHeaderFtypeDylib = MH_DYLIB;
+const uint32_t kMachHeaderFtypeBundle = MH_BUNDLE;
+const uint32_t kMachHeaderFtypeExe = MH_EXECUTE;
+const uint32_t kMachHeaderFtypeDylinker = MH_DYLINKER;
diff --git a/src/tools/mac/upload_system_symbols/arch_reader.go b/src/tools/mac/upload_system_symbols/arch_reader.go
new file mode 100644
index 0000000..ed98fa6
--- /dev/null
+++ b/src/tools/mac/upload_system_symbols/arch_reader.go
@@ -0,0 +1,69 @@
+/* Copyright 2014, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package main
+
+import (
+	"debug/macho"
+)
+
+/*
+#include "arch_constants.h"
+*/
+import "C"
+
+// getArchStringFromHeader takes a MachO FileHeader and returns a string that
+// represents the CPU type and subtype.
+// This function is a Go version of src/common/mac/arch_utilities.cc:BreakpadGetArchInfoFromCpuType().
+func getArchStringFromHeader(header macho.FileHeader) string {
+	// TODO(rsesek): As of 10.9.4, OS X doesn't list these in /usr/include/mach/machine.h.
+	if header.Cpu == C.kCPU_TYPE_ARM64 && header.SubCpu == C.kCPU_SUBTYPE_ARM64_ALL {
+		return "arm64"
+	}
+	if header.Cpu == C.kCPU_TYPE_ARM64 && header.SubCpu == C.kCPU_SUBTYPE_ARM64_E {
+		return "arm64e"
+	}
+	if header.Cpu == C.kCPU_TYPE_ARM && header.SubCpu == C.kCPU_SUBTYPE_ARM_V7S {
+		return "armv7s"
+	}
+
+	cstr := C.GetNXArchInfoName(C.cpu_type_t(header.Cpu), C.cpu_subtype_t(header.SubCpu))
+	if cstr == nil {
+		return ""
+	}
+	return C.GoString(cstr)
+}
+
+const (
+	MachODylib    macho.Type = C.kMachHeaderFtypeDylib
+	MachOBundle              = C.kMachHeaderFtypeBundle
+	MachOExe                 = C.kMachHeaderFtypeExe
+	MachODylinker            = C.kMachHeaderFtypeDylinker
+)
diff --git a/src/tools/mac/upload_system_symbols/upload_system_symbols.go b/src/tools/mac/upload_system_symbols/upload_system_symbols.go
new file mode 100644
index 0000000..05a7764
--- /dev/null
+++ b/src/tools/mac/upload_system_symbols/upload_system_symbols.go
@@ -0,0 +1,432 @@
+/* Copyright 2014, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+Tool upload_system_symbols generates and uploads Breakpad symbol files for OS X system libraries.
+
+This tool shells out to the dump_syms and symupload Breakpad tools. In its default mode, this
+will find all dynamic libraries on the system, run dump_syms to create the Breakpad symbol files,
+and then upload them to Google's crash infrastructure.
+
+The tool can also be used to only dump libraries or upload from a directory. See -help for more
+information.
+
+Both i386 and x86_64 architectures will be dumped and uploaded.
+*/
+package main
+
+import (
+	"debug/macho"
+	"flag"
+	"fmt"
+	"io"
+	"io/ioutil"
+	"log"
+	"os"
+	"os/exec"
+	"path"
+	"regexp"
+	"strings"
+	"sync"
+	"time"
+)
+
+var (
+	breakpadTools    = flag.String("breakpad-tools", "out/Release/", "Path to the Breakpad tools directory, containing dump_syms and symupload.")
+	uploadOnlyPath   = flag.String("upload-from", "", "Upload a directory of symbol files that has been dumped independently.")
+	dumpOnlyPath     = flag.String("dump-to", "", "Dump the symbols to the specified directory, but do not upload them.")
+	systemRoot       = flag.String("system-root", "", "Path to the root of the Mac OS X system whose symbols will be dumped.")
+	dumpArchitecture = flag.String("arch", "", "The CPU architecture for which symbols should be dumped. If not specified, dumps all architectures.")
+)
+
+var (
+	// pathsToScan are the subpaths in the systemRoot that should be scanned for shared libraries.
+	pathsToScan = []string{
+		"/System/Library/Components",
+		"/System/Library/Frameworks",
+		"/System/Library/PrivateFrameworks",
+		"/usr/lib",
+	}
+
+	// optionalPathsToScan is just like pathsToScan, but the paths are permitted to be absent.
+	optionalPathsToScan = []string{
+		// Gone in 10.15.
+		"/Library/QuickTime",
+	}
+
+	// uploadServers are the list of servers to which symbols should be uploaded.
+	uploadServers = []string{
+		"https://clients2.google.com/cr/symbol",
+		"https://clients2.google.com/cr/staging_symbol",
+	}
+
+	// blacklistRegexps match paths that should be excluded from dumping.
+	blacklistRegexps = []*regexp.Regexp{
+		regexp.MustCompile(`/System/Library/Frameworks/Python\.framework/`),
+		regexp.MustCompile(`/System/Library/Frameworks/Ruby\.framework/`),
+		regexp.MustCompile(`_profile\.dylib$`),
+		regexp.MustCompile(`_debug\.dylib$`),
+		regexp.MustCompile(`\.a$`),
+		regexp.MustCompile(`\.dat$`),
+	}
+)
+
+func main() {
+	flag.Parse()
+	log.SetFlags(0)
+
+	var uq *UploadQueue
+
+	if *uploadOnlyPath != "" {
+		// -upload-from specified, so handle that case early.
+		uq = StartUploadQueue()
+		uploadFromDirectory(*uploadOnlyPath, uq)
+		uq.Wait()
+		return
+	}
+
+	if *systemRoot == "" {
+		log.Fatal("Need a -system-root to dump symbols for")
+	}
+
+	if *dumpOnlyPath != "" {
+		// -dump-to specified, so make sure that the path is a directory.
+		if fi, err := os.Stat(*dumpOnlyPath); err != nil {
+			log.Fatalf("-dump-to location: %v", err)
+		} else if !fi.IsDir() {
+			log.Fatal("-dump-to location is not a directory")
+		}
+	}
+
+	dumpPath := *dumpOnlyPath
+	if *dumpOnlyPath == "" {
+		// If -dump-to was not specified, then run the upload pipeline and create
+		// a temporary dump output directory.
+		uq = StartUploadQueue()
+
+		if p, err := ioutil.TempDir("", "upload_system_symbols"); err != nil {
+			log.Fatalf("Failed to create temporary directory: %v", err)
+		} else {
+			dumpPath = p
+			defer os.RemoveAll(p)
+		}
+	}
+
+	dq := StartDumpQueue(*systemRoot, dumpPath, uq)
+	dq.Wait()
+	if uq != nil {
+		uq.Wait()
+	}
+}
+
+type WorkerPool struct {
+	wg sync.WaitGroup
+}
+
+// StartWorkerPool will launch numWorkers goroutines all running workerFunc.
+// When workerFunc exits, the goroutine will terminate.
+func StartWorkerPool(numWorkers int, workerFunc func()) *WorkerPool {
+	p := new(WorkerPool)
+	for i := 0; i < numWorkers; i++ {
+		p.wg.Add(1)
+		go func() {
+			workerFunc()
+			p.wg.Done()
+		}()
+	}
+	return p
+}
+
+// Wait for all the workers in the pool to complete the workerFunc.
+func (p *WorkerPool) Wait() {
+	p.wg.Wait()
+}
+
+type UploadQueue struct {
+	*WorkerPool
+	queue chan string
+}
+
+// StartUploadQueue creates a new worker pool and queue, to which paths to
+// Breakpad symbol files may be sent for uploading.
+func StartUploadQueue() *UploadQueue {
+	uq := &UploadQueue{
+		queue: make(chan string, 10),
+	}
+	uq.WorkerPool = StartWorkerPool(5, uq.worker)
+	return uq
+}
+
+// Upload enqueues the contents of filepath to be uploaded.
+func (uq *UploadQueue) Upload(filepath string) {
+	uq.queue <- filepath
+}
+
+// Done tells the queue that no more files need to be uploaded. This must be
+// called before WorkerPool.Wait.
+func (uq *UploadQueue) Done() {
+	close(uq.queue)
+}
+
+func (uq *UploadQueue) worker() {
+	symUpload := path.Join(*breakpadTools, "symupload")
+
+	for symfile := range uq.queue {
+		for _, server := range uploadServers {
+			for i := 0; i < 3; i++ { // Give each upload 3 attempts to succeed.
+				cmd := exec.Command(symUpload, symfile, server)
+				if output, err := cmd.Output(); err == nil {
+					// Success. No retry needed.
+					fmt.Printf("Uploaded %s to %s\n", symfile, server)
+					break
+				} else {
+					log.Printf("Error running symupload(%s, %s), attempt %d: %v: %s\n", symfile, server, i, err, output)
+					time.Sleep(1 * time.Second)
+				}
+			}
+		}
+	}
+}
+
+type DumpQueue struct {
+	*WorkerPool
+	dumpPath string
+	queue    chan dumpRequest
+	uq       *UploadQueue
+}
+
+type dumpRequest struct {
+	path string
+	arch string
+}
+
+// StartDumpQueue creates a new worker pool to find all the Mach-O libraries in
+// root and dump their symbols to dumpPath. If an UploadQueue is passed, the
+// path to the symbol file will be enqueued there, too.
+func StartDumpQueue(root, dumpPath string, uq *UploadQueue) *DumpQueue {
+	dq := &DumpQueue{
+		dumpPath: dumpPath,
+		queue:    make(chan dumpRequest),
+		uq:       uq,
+	}
+	dq.WorkerPool = StartWorkerPool(12, dq.worker)
+
+	findLibsInRoot(root, dq)
+
+	return dq
+}
+
+// DumpSymbols enqueues the filepath to have its symbols dumped in the specified
+// architecture.
+func (dq *DumpQueue) DumpSymbols(filepath string, arch string) {
+	dq.queue <- dumpRequest{
+		path: filepath,
+		arch: arch,
+	}
+}
+
+func (dq *DumpQueue) Wait() {
+	dq.WorkerPool.Wait()
+	if dq.uq != nil {
+		dq.uq.Done()
+	}
+}
+
+func (dq *DumpQueue) done() {
+	close(dq.queue)
+}
+
+func (dq *DumpQueue) worker() {
+	dumpSyms := path.Join(*breakpadTools, "dump_syms")
+
+	for req := range dq.queue {
+		filebase := path.Join(dq.dumpPath, strings.Replace(req.path, "/", "_", -1))
+		symfile := fmt.Sprintf("%s_%s.sym", filebase, req.arch)
+		f, err := os.Create(symfile)
+		if err != nil {
+			log.Fatalf("Error creating symbol file: %v", err)
+		}
+
+		cmd := exec.Command(dumpSyms, "-a", req.arch, req.path)
+		cmd.Stdout = f
+		err = cmd.Run()
+		f.Close()
+
+		if err != nil {
+			os.Remove(symfile)
+			log.Printf("Error running dump_syms(%s, %s): %v\n", req.arch, req.path, err)
+		} else if dq.uq != nil {
+			dq.uq.Upload(symfile)
+		}
+	}
+}
+
+// uploadFromDirectory handles the upload-only case and merely uploads all files in
+// a directory.
+func uploadFromDirectory(directory string, uq *UploadQueue) {
+	d, err := os.Open(directory)
+	if err != nil {
+		log.Fatalf("Could not open directory to upload: %v", err)
+	}
+	defer d.Close()
+
+	entries, err := d.Readdirnames(0)
+	if err != nil {
+		log.Fatalf("Could not read directory: %v", err)
+	}
+
+	for _, entry := range entries {
+		uq.Upload(path.Join(directory, entry))
+	}
+
+	uq.Done()
+}
+
+// findQueue is an implementation detail of the DumpQueue that finds all the
+// Mach-O files and their architectures.
+type findQueue struct {
+	*WorkerPool
+	queue chan string
+	dq    *DumpQueue
+}
+
+// findLibsInRoot looks in all the pathsToScan in the root and manages the
+// interaction between findQueue and DumpQueue.
+func findLibsInRoot(root string, dq *DumpQueue) {
+	fq := &findQueue{
+		queue: make(chan string, 10),
+		dq:    dq,
+	}
+	fq.WorkerPool = StartWorkerPool(12, fq.worker)
+
+	for _, p := range pathsToScan {
+		fq.findLibsInPath(path.Join(root, p), true)
+	}
+
+	for _, p := range optionalPathsToScan {
+		fq.findLibsInPath(path.Join(root, p), false)
+	}
+
+	close(fq.queue)
+	fq.Wait()
+	dq.done()
+}
+
+// findLibsInPath recursively walks the directory tree, sending file paths to
+// test for being Mach-O to the findQueue.
+func (fq *findQueue) findLibsInPath(loc string, mustExist bool) {
+	d, err := os.Open(loc)
+	if err != nil {
+		if !mustExist && os.IsNotExist(err) {
+			return
+		}
+		log.Fatalf("Could not open %s: %v", loc, err)
+	}
+	defer d.Close()
+
+	for {
+		fis, err := d.Readdir(100)
+		if err != nil && err != io.EOF {
+			log.Fatalf("Error reading directory %s: %v", loc, err)
+		}
+
+		for _, fi := range fis {
+			fp := path.Join(loc, fi.Name())
+			if fi.IsDir() {
+				fq.findLibsInPath(fp, true)
+				continue
+			} else if fi.Mode()&os.ModeSymlink != 0 {
+				continue
+			}
+
+			// Test the blacklist in the worker to not slow down this main loop.
+
+			fq.queue <- fp
+		}
+
+		if err == io.EOF {
+			break
+		}
+	}
+}
+
+func (fq *findQueue) worker() {
+	for fp := range fq.queue {
+		blacklisted := false
+		for _, re := range blacklistRegexps {
+			blacklisted = blacklisted || re.MatchString(fp)
+		}
+		if blacklisted {
+			continue
+		}
+
+		f, err := os.Open(fp)
+		if err != nil {
+			log.Printf("%s: %v", fp, err)
+			continue
+		}
+
+		fatFile, err := macho.NewFatFile(f)
+		if err == nil {
+			// The file is fat, so dump its architectures.
+			for _, fatArch := range fatFile.Arches {
+				fq.dumpMachOFile(fp, fatArch.File)
+			}
+			fatFile.Close()
+		} else if err == macho.ErrNotFat {
+			// The file isn't fat but may still be MachO.
+			thinFile, err := macho.NewFile(f)
+			if err != nil {
+				log.Printf("%s: %v", fp, err)
+				continue
+			}
+			fq.dumpMachOFile(fp, thinFile)
+			thinFile.Close()
+		} else {
+			f.Close()
+		}
+	}
+}
+
+func (fq *findQueue) dumpMachOFile(fp string, image *macho.File) {
+	if image.Type != MachODylib && image.Type != MachOBundle && image.Type != MachODylinker {
+		return
+	}
+
+	arch := getArchStringFromHeader(image.FileHeader)
+	if arch == "" {
+		// Don't know about this architecture type.
+		return
+	}
+
+	if (*dumpArchitecture != "" && *dumpArchitecture == arch) || *dumpArchitecture == "" {
+		fq.dq.DumpSymbols(fp, arch)
+	}
+}
diff --git a/src/tools/python/deps-to-manifest.py b/src/tools/python/deps-to-manifest.py
new file mode 100755
index 0000000..b456285
--- /dev/null
+++ b/src/tools/python/deps-to-manifest.py
@@ -0,0 +1,167 @@
+#!/usr/bin/python
+# Copyright 2016 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Convert gclient's DEPS file to repo's manifest xml file."""
+
+from __future__ import print_function
+
+import argparse
+import os
+import sys
+
+
+REMOTES = {
+    'chromium': 'https://chromium.googlesource.com/',
+    'github': 'https://github.com/',
+}
+REVIEWS = {
+    'chromium': 'https://chromium-review.googlesource.com',
+}
+
+MANIFEST_HEAD = """<?xml version='1.0' encoding='UTF-8'?>
+<!-- AUTOGENERATED BY %(prog)s; DO NOT EDIT -->
+<manifest>
+
+  <default revision='refs/heads/master'
+           remote='chromium'
+           sync-c='true'
+           sync-j='8' />
+"""
+
+MANIFEST_REMOTE = """
+  <remote  name='%(name)s'
+           fetch='%(fetch)s'
+           review='%(review)s' />
+"""
+
+MANIFEST_PROJECT = """
+  <project path='%(path)s'
+           name='%(name)s'
+           revision='%(revision)s'
+           remote='%(remote)s' />
+"""
+
+MANIFEST_TAIL = """
+</manifest>
+"""
+
+
+def ConvertDepsToManifest(deps, manifest):
+  """Convert the |deps| file to the |manifest|."""
+  # Load the DEPS file data.
+  ctx = {}
+  execfile(deps, ctx)
+
+  new_contents = ''
+
+  # Write out the common header.
+  data = {
+      'prog': os.path.basename(__file__),
+  }
+  new_contents += MANIFEST_HEAD % data
+
+  # Write out the <remote> sections.
+  for name, fetch in REMOTES.items():
+    data = {
+        'name': name,
+        'fetch': fetch,
+        'review': REVIEWS.get(name, ''),
+    }
+    new_contents += MANIFEST_REMOTE % data
+
+  # Write out the main repo itself.
+  data = {
+      'path': 'src',
+      'name': 'breakpad/breakpad',
+      'revision': 'refs/heads/master',
+      'remote': 'chromium',
+  }
+  new_contents += MANIFEST_PROJECT % data
+
+  # Write out the <project> sections.
+  for path, url in ctx['deps'].items():
+    for name, fetch in REMOTES.items():
+      if url.startswith(fetch):
+        remote = name
+        break
+    else:
+      raise ValueError('Unknown DEPS remote: %s: %s' % (path, url))
+
+    # The DEPS url will look like:
+    # https://chromium.googlesource.com/external/gyp/@e8ab0833a42691cd2
+    remote_path, rev = url.split('@')
+    remote_path = remote_path[len(fetch):]
+
+    # If it's not a revision, assume it's a tag.  Repo wants full ref names.
+    if len(rev) != 40:
+      rev = 'refs/tags/%s' % rev
+
+    data = {
+        'path': path,
+        'name': remote_path,
+        'revision': rev,
+        'remote': remote,
+    }
+    new_contents += MANIFEST_PROJECT % data
+
+  # Write out the common footer.
+  new_contents += MANIFEST_TAIL
+
+  # See if the manifest has actually changed contents to avoid thrashing.
+  try:
+    old_contents = open(manifest).read()
+  except IOError:
+    # In case the file doesn't exist yet.
+    old_contents = ''
+  if old_contents != new_contents:
+    print('Updating %s due to changed %s' % (manifest, deps))
+    with open(manifest, 'w') as fp:
+      fp.write(new_contents)
+
+
+def GetParser():
+  """Return a CLI parser."""
+  parser = argparse.ArgumentParser(description=__doc__)
+  parser.add_argument('deps',
+                      help='The DEPS file to convert')
+  parser.add_argument('manifest',
+                      help='The manifest xml to generate')
+  return parser
+
+
+def main(argv):
+  """The main func!"""
+  parser = GetParser()
+  opts = parser.parse_args(argv)
+  ConvertDepsToManifest(opts.deps, opts.manifest)
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv[1:]))
diff --git a/src/tools/python/filter_syms.py b/src/tools/python/filter_syms.py
new file mode 100644
index 0000000..abddf78
--- /dev/null
+++ b/src/tools/python/filter_syms.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Normalizes and de-duplicates paths within Breakpad symbol files.
+
+When using DWARF for storing debug symbols, some file information will be
+stored relative to the current working directory of the current compilation
+unit, and may be further relativized based upon how the file was #included.
+
+This helper can be used to parse the Breakpad symbol file generated from such
+DWARF files and normalize and de-duplicate the FILE records found within,
+updating any references to the FILE records in the other record types.
+"""
+
+import macpath
+import ntpath
+import optparse
+import os
+import posixpath
+import sys
+
+class BreakpadParseError(Exception):
+  """Unsupported Breakpad symbol record exception class."""
+  pass
+
+class SymbolFileParser(object):
+  """Parser for Breakpad symbol files.
+
+  The format of these files is documented at
+  https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md
+  """
+
+  def __init__(self, input_stream, output_stream, ignored_prefixes=None,
+               path_handler=os.path):
+    """Inits a SymbolFileParser to read symbol records from |input_stream| and
+    write the processed output to |output_stream|.
+    
+    |ignored_prefixes| contains a list of optional path prefixes that
+    should be stripped from the final, normalized path outputs.
+    
+    For example, if the Breakpad symbol file had all paths starting with a
+    common prefix, such as:
+      FILE 1 /b/build/src/foo.cc
+      FILE 2 /b/build/src/bar.cc
+    Then adding "/b/build/src" as an ignored prefix would result in an output
+    file that contained:
+      FILE 1 foo.cc
+      FILE 2 bar.cc
+    
+    Note that |ignored_prefixes| does not necessarily contain file system
+    paths, as the contents of the DWARF DW_AT_comp_dir attribute is dependent
+    upon the host system and compiler, and may contain additional information
+    such as hostname or compiler version.
+    """
+
+    self.unique_files = {}
+    self.duplicate_files = {}
+    self.input_stream = input_stream
+    self.output_stream = output_stream
+    self.ignored_prefixes = ignored_prefixes or []
+    self.path_handler = path_handler
+
+  def Process(self):
+    """Processes the Breakpad symbol file."""
+    for line in self.input_stream:
+      parsed = self._ParseRecord(line.rstrip())
+      if parsed:
+        self.output_stream.write(parsed + '\n')
+
+  def _ParseRecord(self, record):
+    """Parses a single Breakpad symbol record - a single line from the symbol
+    file.
+
+    Returns:
+        The modified string to write to the output file, or None if no line
+        should be written.
+    """
+    record_type = record.partition(' ')[0]
+    if record_type == 'FILE':
+      return self._ParseFileRecord(record)
+    elif self._IsLineRecord(record_type):
+      return self._ParseLineRecord(record)
+    else:
+      # Simply pass the record through unaltered.
+      return record
+
+  def _NormalizePath(self, path):
+    """Normalizes a file path to its canonical form.
+
+    As this may not execute on the machine or file system originally
+    responsible for compilation, it may be necessary to further correct paths
+    for symlinks, junctions, or other such file system indirections.
+
+    Returns:
+        A unique, canonical representation for the the file path.
+    """
+    return self.path_handler.normpath(path)
+
+  def _AdjustPath(self, path):
+    """Adjusts the supplied path after performing path de-duplication.
+
+    This may be used to perform secondary adjustments, such as removing a
+    common prefix, such as "/D/build", or replacing the file system path with
+    information from the version control system.
+
+    Returns:
+        The actual path to use when writing the FILE record.
+    """
+    return path[len(filter(path.startswith,
+                           self.ignored_prefixes + [''])[0]):]
+
+  def _ParseFileRecord(self, file_record):
+    """Parses and corrects a FILE record."""
+    file_info = file_record[5:].split(' ', 3)
+    if len(file_info) > 2:
+      raise BreakpadParseError('Unsupported FILE record: ' + file_record)
+    file_index = int(file_info[0])
+    file_name = self._NormalizePath(file_info[1])
+    existing_file_index = self.unique_files.get(file_name)
+    if existing_file_index is None:
+      self.unique_files[file_name] = file_index
+      file_info[1] = self._AdjustPath(file_name)
+      return 'FILE ' + ' '.join(file_info)
+    else:
+      self.duplicate_files[file_index] = existing_file_index
+      return None
+
+  def _IsLineRecord(self, record_type):
+    """Determines if the current record type is a Line record"""
+    try:
+      line = int(record_type, 16)
+    except (ValueError, TypeError):
+      return False
+    return True
+
+  def _ParseLineRecord(self, line_record):
+    """Parses and corrects a Line record."""
+    line_info = line_record.split(' ', 5)
+    if len(line_info) > 4:
+      raise BreakpadParseError('Unsupported Line record: ' + line_record)
+    file_index = int(line_info[3])
+    line_info[3] = str(self.duplicate_files.get(file_index, file_index))
+    return ' '.join(line_info)
+
+def main():
+  option_parser = optparse.OptionParser()
+  option_parser.add_option("-p", "--prefix",
+                           action="append", dest="prefixes", type="string",
+                           default=[],
+                           help="A path prefix that should be removed from "
+                                "all FILE lines. May be repeated to specify "
+                                "multiple prefixes.")
+  option_parser.add_option("-t", "--path_type",
+                           action="store", type="choice", dest="path_handler",
+                           choices=['win32', 'posix'],
+                           help="Indicates how file paths should be "
+                                "interpreted. The default is to treat paths "
+                                "the same as the OS running Python (eg: "
+                                "os.path)")
+  options, args = option_parser.parse_args()
+  if args:
+    option_parser.error('Unknown argument: %s' % args)
+
+  path_handler = { 'win32': ntpath,
+                   'posix': posixpath }.get(options.path_handler, os.path)
+  try:
+    symbol_parser = SymbolFileParser(sys.stdin, sys.stdout, options.prefixes,
+                                     path_handler)
+    symbol_parser.Process()
+  except BreakpadParseError, e:
+    print >> sys.stderr, 'Got an error while processing symbol file'
+    print >> sys.stderr, str(e)
+    return 1
+  return 0
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/src/tools/python/tests/filter_syms_unittest.py b/src/tools/python/tests/filter_syms_unittest.py
new file mode 100644
index 0000000..b111f34
--- /dev/null
+++ b/src/tools/python/tests/filter_syms_unittest.py
@@ -0,0 +1,138 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Unit tests for filter_syms.py"""
+
+import cStringIO
+import ntpath
+import os
+import StringIO
+import sys
+import unittest
+
+ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
+sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
+
+# In root
+import filter_syms
+
+class FilterSysmsTest(unittest.TestCase):
+  def assertParsed(self, input_data, ignored_prefixes, expected):
+    input_io = cStringIO.StringIO(input_data)
+    output_io = cStringIO.StringIO()
+    parser = filter_syms.SymbolFileParser(input_io, output_io,
+                                          ignored_prefixes, ntpath)
+    parser.Process()
+    self.assertEqual(output_io.getvalue(), expected)
+    
+  def testDuplicateFiles(self):
+    """Tests that duplicate files in FILE records are correctly removed and
+    that Line records are updated."""
+
+    INPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 foo/../file1_1.cc
+FILE 2 bar/../file1_1.cc
+FILE 3 baz/../file1_1.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 2
+1008 4 46 3
+100c 4 44 1
+"""
+    EXPECTED_OUTPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 file1_1.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 1
+1008 4 46 1
+100c 4 44 1
+"""
+    self.assertParsed(INPUT, [], EXPECTED_OUTPUT)
+
+  def testIgnoredPrefix(self):
+    """Tests that prefixes in FILE records are correctly removed."""
+
+    INPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 /src/build/foo/../file1_1.cc
+FILE 2 /src/build/bar/../file1_2.cc
+FILE 3 /src/build/baz/../file1_2.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 2
+1008 4 46 3
+100c 4 44 1
+"""
+    EXPECTED_OUTPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 file1_1.cc
+FILE 2 file1_2.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 2
+1008 4 46 2
+100c 4 44 1
+"""
+    IGNORED_PREFIXES = ['\\src\\build\\']
+    self.assertParsed(INPUT, IGNORED_PREFIXES, EXPECTED_OUTPUT)
+
+  def testIgnoredPrefixesDuplicateFiles(self):
+    """Tests that de-duplication of FILE records happens BEFORE prefixes
+    are removed."""
+
+    INPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 /src/build/foo/../file1_1.cc
+FILE 2 /src/build/bar/../file1_2.cc
+FILE 3 D:/src/build2/baz/../file1_2.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 2
+1008 4 46 3
+100c 4 44 1
+"""
+    EXPECTED_OUTPUT = \
+"""MODULE windows x86 111111111111111111111111111111111 module1.pdb
+INFO CODE_ID FFFFFFFF module1.exe
+FILE 1 file1_1.cc
+FILE 2 file1_2.cc
+FILE 3 file1_2.cc
+FUNC 1000 c 0 Function1_1
+1000 8 45 2
+1008 4 46 3
+100c 4 44 1
+"""
+    IGNORED_PREFIXES = ['\\src\\build\\', 'D:\\src\\build2\\']
+    self.assertParsed(INPUT, IGNORED_PREFIXES, EXPECTED_OUTPUT)
+
+if __name__ == '__main__':
+  unittest.main()
\ No newline at end of file
diff --git a/src/tools/solaris/dump_syms/Makefile b/src/tools/solaris/dump_syms/Makefile
new file mode 100644
index 0000000..ff77105
--- /dev/null
+++ b/src/tools/solaris/dump_syms/Makefile
@@ -0,0 +1,64 @@
+# Copyright (c) 2007, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Author: Alfred Peng
+
+CXX=CC
+CC=cc
+
+CXXFLAGS=-g -xs -xdebugformat=stabs -I../../.. -I../../../common/solaris -lelf -ldemangle -D_REENTRANT
+
+.PHONY:all clean
+
+BIN=dump_syms
+
+all:$(BIN)
+
+DUMP_OBJ=dump_symbols.o guid_creator.o dump_syms.o file_id.o md5.o
+
+dump_syms:$(DUMP_OBJ)
+	$(CXX) $(CXXFLAGS) -o $@ $^
+
+dump_symbols.o:../../../common/solaris/dump_symbols.cc
+	$(CXX) $(CXXFLAGS) -c $^
+
+guid_creator.o:../../../common/solaris/guid_creator.cc
+	$(CXX) $(CXXFLAGS) -c $^
+
+file_id.o:../../../common/solaris/file_id.cc
+	$(CXX) $(CXXFLAGS) -c $^
+
+md5.o:../../../common/md5.cc
+	$(CXX) $(CXXFLAGS) -c $^
+
+test:all
+	./run_regtest.sh
+
+clean:
+	rm -f $(BIN) $(DUMP_OBJ)
diff --git a/src/tools/solaris/dump_syms/dump_syms.cc b/src/tools/solaris/dump_syms/dump_syms.cc
new file mode 100644
index 0000000..ba396e1
--- /dev/null
+++ b/src/tools/solaris/dump_syms/dump_syms.cc
@@ -0,0 +1,54 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: Alfred Peng
+
+#include <string>
+#include <cstdio>
+
+#include "common/solaris/dump_symbols.h"
+
+using namespace google_breakpad;
+
+int main(int argc, char** argv) {
+  if (argc != 2) {
+    fprintf(stderr, "Usage: %s <binary-with-stab-symbol>\n", argv[0]);
+    return 1;
+  }
+
+  const char* binary = argv[1];
+
+  DumpSymbols dumper;
+  if (!dumper.WriteSymbolFile(binary, fileno(stdout))) {
+    fprintf(stderr, "Failed to write symbol file.\n");
+    return 1;
+  }
+
+  return 0;
+}
diff --git a/src/tools/solaris/dump_syms/run_regtest.sh b/src/tools/solaris/dump_syms/run_regtest.sh
new file mode 100644
index 0000000..ffb3433
--- /dev/null
+++ b/src/tools/solaris/dump_syms/run_regtest.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Copyright (c) 2007, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+./dump_syms testdata/dump_syms_regtest.o > testdata/dump_syms_regtest.new
+status=$?
+
+if [ $status -ne 0 ] ; then
+  echo "FAIL, dump_syms failed"
+  exit $status
+fi
+
+diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.sym > \
+ testdata/dump_syms_regtest.diff
+status=$?
+
+if [ $status -eq 0 ] ; then
+  rm testdata/dump_syms_regtest.diff testdata/dump_syms_regtest.new
+  echo "PASS"
+else
+  echo "FAIL, see testdata/dump_syms_regtest.[new|diff]"
+fi
+
+exit $status
diff --git a/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc
new file mode 100644
index 0000000..6824ed9
--- /dev/null
+++ b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc
@@ -0,0 +1,64 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ./dump_syms dump_syms_regtest.pdb > dump_syms_regtest.sym
+
+namespace google_breakpad {
+
+class C {
+ public:
+  C() : member_(1) {}
+  virtual ~C() {}
+
+  void set_member(int value) { member_ = value; }
+  int member() const { return member_; }
+
+  void f() { member_ = g(); }
+  virtual int g() { return 2; }
+  static char* h(const C& that) { return 0; }
+
+ private:
+  int member_;
+};
+
+static int i() {
+  return 3;
+}
+
+}  // namespace google_breakpad
+
+int main(int argc, char** argv) {
+  google_breakpad::C object;
+  object.set_member(google_breakpad::i());
+  object.f();
+  int value = object.g();
+  char* nothing = object.h(object);
+
+  return 0;
+}
diff --git a/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o
new file mode 100644
index 0000000..a1c61b2
--- /dev/null
+++ b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o
Binary files differ
diff --git a/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.stabs b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.stabs
new file mode 100644
index 0000000..c5f93ef
--- /dev/null
+++ b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.stabs
@@ -0,0 +1,129 @@
+
+
+Debugging Stab table -- 104 entries
+
+   0:  .stabs "dump_syms_regtest.cc",N_UNDF,0x0,0x67,0x71c
+   1:  .stabs "/export/home/alfred/cvs/breakpad/google-breakpad20070927/src/tools/solaris/dump_syms/testdata/",N_SO,0x0,0x0,0x0
+   2:  .stabs "dump_syms_regtest.cc",N_SO,0x0,0x4,0x0
+   3:  .stabs "",N_OBJ,0x0,0x0,0x0
+   4:  .stabs "",N_OBJ,0x0,0x0,0x0
+   5:  .stabs "V=9.0;DBG_GEN=5.0.8;dm;cd;backend;ptf;ptx;ptk;s;g;R=5.8<<Sun C++ 5.8 Patch 121018-07 2006/11/01 (ccfe)>>;G=.XAB6Z2hOiL$Gl1b.;A=2",N_OPT,0x0,0x0,0x46fcb88e
+   6:  .stabs "dump_syms_regtest.cc",N_SOL,0x0,0x0,0x0
+   7:  .stabs "char:t(0,1)=bsc1;0;8",N_ISYM,0x0,0x0,0x0
+   8:  .stabs "short:t(0,2)=bs2;0;16",N_ISYM,0x0,0x0,0x0
+   9:  .stabs "int:t(0,3)=bs4;0;32",N_ISYM,0x0,0x0,0x0
+  10:  .stabs "long:t(0,4)=bs4;0;32",N_ISYM,0x0,0x0,0x0
+  11:  .stabs "long long:t(0,5)=bs8;0;64",N_ISYM,0x0,0x0,0x0
+  12:  .stabs "unsigned char:t(0,6)=buc1;0;8",N_ISYM,0x0,0x0,0x0
+  13:  .stabs "unsigned short:t(0,7)=bu2;0;16",N_ISYM,0x0,0x0,0x0
+  14:  .stabs "unsigned:t(0,8)=bu4;0;32",N_ISYM,0x0,0x0,0x0
+  15:  .stabs "unsigned long:t(0,9)=bu4;0;32",N_ISYM,0x0,0x0,0x0
+  16:  .stabs "unsigned long long:t(0,10)=bu8;0;64",N_ISYM,0x0,0x0,0x0
+  17:  .stabs "signed char:t(0,11)=bsc1;0;8",N_ISYM,0x0,0x0,0x0
+  18:  .stabs "wchar_t:t(0,12)=buc4;0;32",N_ISYM,0x0,0x0,0x0
+  19:  .stabs "void:t(0,13)=bs0;0;0",N_ISYM,0x0,0x0,0x0
+  20:  .stabs "float:t(0,14)=R1;4",N_ISYM,0x0,0x0,0x0
+  21:  .stabs "double:t(0,15)=R2;8",N_ISYM,0x0,0x0,0x0
+  22:  .stabs "long double:t(0,16)=R6;12",N_ISYM,0x0,0x0,0x0
+  23:  .stabs "...:t(0,17)=buv4;0;32",N_ISYM,0x0,0x0,0x0
+  24:  .stabs "bool:t(0,18)=bub1;0;8",N_ISYM,0x0,0x0,0x0
+  25:  .stabs "__1nPgoogle_breakpad_:T(0,19)=Yn0google_breakpad;",N_ISYM,0x0,0x0,0x0
+  26:  .stabs "nBC(0,19):U(0,20)",N_ESYM,0x0,0x0,0x0
+  27:  .stabs "nBC(0,19):T(0,20)=Yc8C;;AcHmember_:(0,3),32,32;;Cc2t6M_v K2c2T6M_v CcKset_member6Mi_v CcGmember6kM_i CcBf6M_v K3cBg6M_i GcBh6Frk1_pc;;;2 0;;;;110;",N_ESYM,0x0,0x8,0x0
+  28:  .stabs "main:F(0,3);(0,3);(0,21)=*(0,22)=*(0,1)",N_FUN,0x0,0x38,0x0
+  29:  .stabs "main",N_MAIN,0x0,0x0,0x0
+  30:  .stabs "argc:p(0,3)",N_PSYM,0x0,0x4,0x8
+  31:  .stabs "argv:p(0,21)",N_PSYM,0x0,0x4,0xc
+  32:  .stabn N_LBRAC,0x0,0x1,0x12
+  33:  .stabs "object:(0,20)",N_LSYM,0x0,0x8,0xfffffff4
+  34:  .stabs "value:(0,3)",N_LSYM,0x0,0x4,0xfffffff0
+  35:  .stabs "nothing:(0,22)",N_LSYM,0x0,0x4,0xffffffec
+  36:  .stabn N_SLINE,0x0,0x39,0x12
+  37:  .stabs "object:2",N_CONSTRUCT,0x0,0xc,0x12
+  38:  .stabn N_SLINE,0x2,0x3a,0x1e
+  39:  .stabn N_SLINE,0x0,0x3b,0x36
+  40:  .stabn N_SLINE,0x0,0x3c,0x42
+  41:  .stabn N_SLINE,0x0,0x3d,0x57
+  42:  .stabn N_SLINE,0x0,0x3f,0x6c
+  43:  .stabs "2:0",N_DESTRUCT,0x0,0xc,0x73
+  44:  .stabn N_SLINE,0xfffffffe,0x40,0x9c
+  45:  .stabn N_RBRAC,0x0,0x1,0x9c
+  46:  .stabs "__1cPgoogle_breakpadBi6F_i_:f(0,3)",N_FUN,0x0,0x32,0x0
+  47:  .stabn N_LBRAC,0x0,0x1,0x6
+  48:  .stabn N_SLINE,0x0,0x33,0x6
+  49:  .stabn N_SLINE,0x0,0x34,0x10
+  50:  .stabn N_RBRAC,0x0,0x1,0x10
+  51:  .stabs "__1cPgoogle_breakpadBC2t6M_v_:F(0,13);(0,23)=*(0,20)",N_FUN,0x0,0x24,0x0
+  52:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  53:  .stabn N_LBRAC,0x0,0x1,0x3
+  54:  .stabn N_SLINE,0x0,0x24,0x25
+  55:  .stabn N_RBRAC,0x0,0x1,0x25
+  56:  .stabs "__1cPgoogle_breakpadBC2T6M_v_:F(0,13);(0,23)",N_FUN,0x0,0x25,0x0
+  57:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  58:  .stabn N_LBRAC,0x0,0x1,0x3
+  59:  .stabn N_SLINE,0x0,0x25,0x3
+  60:  .stabn N_RBRAC,0x0,0x1,0x3
+  61:  .stabs "__1cPgoogle_breakpadBCKset_member6Mi_v_:F(0,13);(0,23);(0,3)",N_FUN,0x0,0x27,0x0
+  62:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  63:  .stabs "value:p(0,3)",N_PSYM,0x0,0x4,0xc
+  64:  .stabn N_LBRAC,0x0,0x1,0x3
+  65:  .stabn N_SLINE,0x0,0x27,0x3
+  66:  .stabn N_SLINE,0x0,0x27,0xc
+  67:  .stabn N_RBRAC,0x0,0x1,0xc
+  68:  .stabs "__1cPgoogle_breakpadBCBf6M_v_:F(0,13);(0,23)",N_FUN,0x0,0x2a,0x0
+  69:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  70:  .stabn N_LBRAC,0x0,0x1,0x3
+  71:  .stabn N_SLINE,0x0,0x2a,0x3
+  72:  .stabn N_SLINE,0x0,0x2a,0x1d
+  73:  .stabn N_RBRAC,0x0,0x1,0x1d
+  74:  .stabs "__1cPgoogle_breakpadBCBg6M_i_:F(0,3);(0,23)",N_FUN,0x0,0x2b,0x0
+  75:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  76:  .stabn N_LBRAC,0x0,0x1,0x6
+  77:  .stabn N_SLINE,0x0,0x2b,0x6
+  78:  .stabn N_SLINE,0x0,0x2b,0x10
+  79:  .stabn N_RBRAC,0x0,0x1,0x10
+  80:  .stabs "__1cPgoogle_breakpadBCBh6Frk1_pc_:F(0,22);(0,24)=&(0,25)=k(0,20)",N_FUN,0x0,0x2c,0x0
+  81:  .stabs "that:p(0,24)",N_PSYM,0x0,0x4,0x8
+  82:  .stabn N_LBRAC,0x0,0x1,0x6
+  83:  .stabn N_SLINE,0x0,0x2c,0x6
+  84:  .stabn N_SLINE,0x0,0x2c,0x10
+  85:  .stabn N_RBRAC,0x0,0x1,0x10
+  86:  .stabs "__1cPgoogle_breakpadBC2T5B6M_v_:F(0,13);(0,23)",N_FUN,0x0,0x25,0x0
+  87:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  88:  .stabn N_LBRAC,0x0,0x1,0x3
+  89:  .stabn N_SLINE,0x0,0x25,0xf
+  90:  .stabn N_RBRAC,0x0,0x1,0xf
+  91:  .stabs "__SLIP.DELETER__A:f(0,13);(0,23);(0,3)",N_FUN,0x0,0x25,0x0
+  92:  .stabs "this:p(0,23)",N_PSYM,0x0,0x4,0x8
+  93:  .stabs "delete:p(0,3)",N_PSYM,0x0,0x4,0xc
+  94:  .stabn N_LBRAC,0x0,0x1,0x3
+  95:  .stabn N_LBRAC,0x0,0x2,0x3
+  96:  .stabn N_RBRAC,0x0,0x2,0x28
+  97:  .stabn N_RBRAC,0x0,0x1,0x28
+  98:  .stabs "true:l(0,18);1",N_LSYM,0x0,0x4,0x0
+  99:  .stabs "false:l(0,18);0",N_LSYM,0x0,0x4,0x0
+ 100:  .stabs "__1c2k6Fpv_v_:P(0,13);(0,26)=*(0,13)",N_FUN,0x0,0x0,0x0
+ 101:  .stabs "__1cPgoogle_breakpadBC2t5B6M_v_:F__1cPgoogle_breakpadBC2t6M_v_",N_ALIAS,0x0,0x0,0x0
+ 102:  .stabs "cbD__RTTI__1nPgoogle_breakpadBC_(0,19):YR(0,20)",N_LSYM,0x0,0x0,0x0
+ 103:  .stabn N_ENDM,0x0,0x0,0x0
+
+
+Index Stab table -- 17 entries
+
+   0:  .stabs "dump_syms_regtest.cc",N_UNDF,0x0,0x10,0x3b1
+   1:  .stabs "/export/home/alfred/cvs/breakpad/google-breakpad20070927/src/tools/solaris/dump_syms/testdata/",N_SO,0x0,0x0,0x0
+   2:  .stabs "dump_syms_regtest.cc",N_SO,0x0,0x4,0x0
+   3:  .stabs "/export/home/alfred/cvs/breakpad/google-breakpad20070927/src/tools/solaris/dump_syms/testdata",N_OBJ,0x0,0x0,0x0
+   4:  .stabs "dump_syms_regtest.o",N_OBJ,0x0,0x0,0x0
+   5:  .stabs "V=9.0;DBG_GEN=5.0.8;dm;cd;backend;ptf;ptx;ptk;s;g;R=5.8<<Sun C++ 5.8 Patch 121018-07 2006/11/01 (ccfe)>>;G=.XAB6Z2hOiL$Gl1b.;A=2",N_OPT,0x0,0x0,0x46fcb88e
+   6:  .stabs "/export/home/alfred/cvs/breakpad/google-breakpad20070927/src/tools/solaris/dump_syms/testdata/; /ws/on10-tools-prc/SUNWspro/SS11/prod/bin/CC -g -xs -xdebugformat=stabs -I../../.. -I../../../common/solaris -D_REENTRANT  -xs  dump_syms_regtest.cc -Qoption ccfe -prefix -Qoption ccfe .XAB6Z2hOiL\$Gl1b.",N_CMDLINE,0x0,0x0,0x0
+   7:  .stabs "__1nPgoogle_breakpadBC_:U",N_ESYM,0x0,0x0,0x0
+   8:  .stabs "main",N_MAIN,0x0,0x0,0x0
+   9:  .stabs "main",N_FUN,0x0,0x0,0x0
+  10:  .stabs "__1cPgoogle_breakpadBC2t6M_v_",N_FUN,0x0,0x0,0x0
+  11:  .stabs "__1cPgoogle_breakpadBC2T6M_v_",N_FUN,0x0,0x0,0x0
+  12:  .stabs "__1cPgoogle_breakpadBCKset_member6Mi_v_",N_FUN,0x0,0x0,0x0
+  13:  .stabs "__1cPgoogle_breakpadBCBf6M_v_",N_FUN,0x0,0x0,0x0
+  14:  .stabs "__1cPgoogle_breakpadBCBg6M_i_",N_FUN,0x0,0x0,0x0
+  15:  .stabs "__1cPgoogle_breakpadBCBh6Frk1_pc_",N_FUN,0x0,0x0,0x0
+  16:  .stabs "__1cPgoogle_breakpadBC2T5B6M_v_",N_FUN,0x0,0x0,0x0
diff --git a/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym
new file mode 100644
index 0000000..44d3c53
--- /dev/null
+++ b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym
@@ -0,0 +1,33 @@
+MODULE solaris x86 3DC8191474338D8587339B5FB3E2C62A0 dump_syms_regtest.o
+FILE 0 dump_syms_regtest.cc
+FUNC 0 156 0 main
+12 18 57 0
+1e 12 58 0
+36 24 59 0
+42 12 60 0
+57 21 61 0
+6c 21 63 0
+9c 48 64 0
+FUNC 0 16 0 int google_breakpad::i()
+6 6 51 0
+10 10 52 0
+FUNC 0 37 0 google_breakpad::C::C()
+25 37 36 0
+FUNC 0 3 0 google_breakpad::C::~C()
+3 3 37 0
+FUNC 0 12 0 void google_breakpad::C::set_member(int)
+3 3 39 0
+c 9 39 0
+FUNC 0 29 0 void google_breakpad::C::f()
+3 3 42 0
+1d 26 42 0
+FUNC 0 16 0 int google_breakpad::C::g()
+6 6 43 0
+10 10 43 0
+FUNC 0 16 0 char*google_breakpad::C::h(const google_breakpad::C&)
+6 6 44 0
+10 10 44 0
+FUNC 0 15 0 google_breakpad::C::~C #Nvariant 1()
+f 15 37 0
+FUNC 0 0 0 __SLIP.DELETER__A
+FUNC 0 0 0 void operator delete(void*)
diff --git a/src/tools/tools.gyp b/src/tools/tools.gyp
new file mode 100644
index 0000000..e6a4210
--- /dev/null
+++ b/src/tools/tools.gyp
@@ -0,0 +1,38 @@
+# Copyright 2014 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'conditions': [
+    ['OS=="mac"', {
+      'includes': ['mac/tools_mac.gypi'],
+    }],
+    ['OS=="linux"', {
+      'includes': ['linux/tools_linux.gypi'],
+    }],
+  ],
+}
diff --git a/src/tools/windows/binaries/dump_syms.exe b/src/tools/windows/binaries/dump_syms.exe
new file mode 100644
index 0000000..3a2dfd8
--- /dev/null
+++ b/src/tools/windows/binaries/dump_syms.exe
Binary files differ
diff --git a/src/tools/windows/binaries/symupload.exe b/src/tools/windows/binaries/symupload.exe
new file mode 100644
index 0000000..09d2a55
--- /dev/null
+++ b/src/tools/windows/binaries/symupload.exe
Binary files differ
diff --git a/src/tools/windows/converter/ms_symbol_server_converter.cc b/src/tools/windows/converter/ms_symbol_server_converter.cc
new file mode 100644
index 0000000..102d06f
--- /dev/null
+++ b/src/tools/windows/converter/ms_symbol_server_converter.cc
@@ -0,0 +1,752 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ms_symbol_server_converter.cc: Obtain symbol files from a Microsoft
+// symbol server, and convert them to Breakpad's dumped format.
+//
+// See ms_symbol_server_converter.h for documentation.
+//
+// Author: Mark Mentovai
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <pathcch.h>
+
+#include <cassert>
+#include <cstdio>
+
+#include "tools/windows/converter/ms_symbol_server_converter.h"
+#include "common/windows/pdb_source_line_writer.h"
+#include "common/windows/pe_source_line_writer.h"
+#include "common/windows/string_utils-inl.h"
+
+// SYMOPT_NO_PROMPTS is not defined in earlier platform SDKs.  Define it
+// in that case, in the event that this code is used with a newer version
+// of DbgHelp at runtime that recognizes the option.  The presence of this
+// bit in the symbol options should not harm earlier versions of DbgHelp.
+#ifndef SYMOPT_NO_PROMPTS
+#define SYMOPT_NO_PROMPTS 0x00080000
+#endif  // SYMOPT_NO_PROMPTS
+
+namespace {
+
+std::wstring GetExeDirectory() {
+  wchar_t directory[MAX_PATH];
+
+  // Get path to this process exe.
+  DWORD result = GetModuleFileName(/*hModule=*/nullptr, directory, MAX_PATH);
+  if (result <= 0 || result == MAX_PATH) {
+    fprintf(stderr,
+        "GetExeDirectory: failed to get path to process exe.\n");
+    return L"";
+  }
+  HRESULT hr = PathCchRemoveFileSpec(directory, result + 1);
+  if (hr != S_OK) {
+    fprintf(stderr,
+        "GetExeDirectory: failed to remove basename from path '%ls'.\n",
+        directory);
+    return L"";
+  }
+
+  return std::wstring(directory);
+}
+
+}  // namespace
+
+namespace google_breakpad {
+
+// Use sscanf_s if it is available, to quench the warning about scanf being
+// deprecated.  Use scanf where sscanf_is not available.  Note that the
+// parameters passed to sscanf and sscanf_s are only compatible as long as
+// fields of type c, C, s, S, and [ are not used.
+#if _MSC_VER >= 1400  // MSVC 2005/8
+#define SSCANF sscanf_s
+#else  // _MSC_VER >= 1400
+#define SSCANF sscanf
+#endif  // _MSC_VER >= 1400
+
+bool GUIDOrSignatureIdentifier::InitializeFromString(
+    const string& identifier) {
+  type_ = TYPE_NONE;
+
+  size_t length = identifier.length();
+
+  if (length > 32 && length <= 40) {
+    // GUID
+    if (SSCANF(identifier.c_str(),
+               "%08X%04hX%04hX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%X",
+               &guid_.Data1, &guid_.Data2, &guid_.Data3,
+               &guid_.Data4[0], &guid_.Data4[1],
+               &guid_.Data4[2], &guid_.Data4[3],
+               &guid_.Data4[4], &guid_.Data4[5],
+               &guid_.Data4[6], &guid_.Data4[7],
+               &age_) != 12) {
+      return false;
+    }
+
+    type_ = TYPE_GUID;
+  } else if (length > 8 && length <= 15) {
+    // Signature
+    if (SSCANF(identifier.c_str(), "%08X%x", &signature_, &age_) != 2) {
+      return false;
+    }
+
+    type_ = TYPE_SIGNATURE;
+  } else {
+    return false;
+  }
+
+  return true;
+}
+
+#undef SSCANF
+
+MSSymbolServerConverter::MSSymbolServerConverter(
+    const string& local_cache, const vector<string>& symbol_servers)
+    : symbol_path_(),
+      fail_dns_(false),
+      fail_timeout_(false),
+      fail_not_found_(false) {
+  // Setting local_cache can be done without verifying that it exists because
+  // SymSrv will create it if it is missing - any creation failures will occur
+  // at that time, so there's nothing to check here, making it safe to
+  // assign this in the constructor.
+
+  assert(symbol_servers.size() > 0);
+
+#if !defined(NDEBUG)
+  // These are characters that are interpreted as having special meanings in
+  // symbol_path_.
+  const char kInvalidCharacters[] = "*;";
+  assert(local_cache.find_first_of(kInvalidCharacters) == string::npos);
+#endif  // !defined(NDEBUG)
+
+  for (vector<string>::const_iterator symbol_server = symbol_servers.begin();
+       symbol_server != symbol_servers.end();
+       ++symbol_server) {
+    // The symbol path format is explained by
+    // http://msdn.microsoft.com/library/en-us/debug/base/using_symsrv.asp .
+    // "srv*" is the same as "symsrv*symsrv.dll*", which means that
+    // symsrv.dll is to be responsible for locating symbols.  symsrv.dll
+    // interprets the rest of the string as a series of symbol stores separated
+    // by '*'.  "srv*local_cache*symbol_server" means to check local_cache
+    // first for the symbol file, and if it is not found there, to check
+    // symbol_server.  Symbol files found on the symbol server will be placed
+    // in the local cache, decompressed.
+    //
+    // Multiple specifications in this format may be presented, separated by
+    // semicolons.
+
+    assert((*symbol_server).find_first_of(kInvalidCharacters) == string::npos);
+    symbol_path_ += "srv*" + local_cache + "*" + *symbol_server + ";";
+  }
+
+  // Strip the trailing semicolon.
+  symbol_path_.erase(symbol_path_.length() - 1);
+}
+
+// A stack-based class that manages SymInitialize and SymCleanup calls.
+class AutoSymSrv {
+ public:
+  AutoSymSrv() : initialized_(false) {}
+
+  ~AutoSymSrv() {
+    if (!Cleanup()) {
+      // Print the error message here, because destructors have no return
+      // value.
+      fprintf(stderr, "~AutoSymSrv: SymCleanup: error %lu\n", GetLastError());
+    }
+  }
+
+  bool Initialize(HANDLE process, char* path, bool invade_process) {
+    process_ = process;
+
+    // TODO(nbilling): Figure out why dbghelp.dll is being loaded from
+    // system32/SysWOW64 before exe folder.
+
+    // Attempt to locate and load dbghelp.dll beside the process exe. This is
+    // somewhat of a workaround to loader delay load behavior that is occurring
+    // when we call into symsrv APIs. dbghelp.dll must be loaded from beside
+    // the process exe so that we are guaranteed to find symsrv.dll alongside
+    // dbghelp.dll (a security requirement of dbghelp.dll) and so that the
+    // symsrv.dll file that is loaded has a symsrv.yes file alongside it (a
+    // requirement of symsrv.dll when accessing Microsoft-owned symbol
+    // servers).
+    // 'static local' because we don't care about the value but we need the
+    // initialization to happen exactly once.
+    static HMODULE dbghelp_module = [] () -> HMODULE {
+      std::wstring exe_directory = GetExeDirectory();
+      if (exe_directory.empty()) {
+        return nullptr;
+      }
+      std::wstring dbghelp_path = exe_directory + L"\\dbghelp.dll";
+      return LoadLibrary(dbghelp_path.c_str());
+    }();
+    if (dbghelp_module == nullptr) {
+      fprintf(stderr,
+          "AutoSymSrv::Initialize: failed to load dbghelp.dll beside exe.");
+      return false;
+    }
+
+    initialized_ = SymInitialize(process, path, invade_process) == TRUE;
+    return initialized_;
+  }
+
+  bool Cleanup() {
+    if (initialized_) {
+      if (SymCleanup(process_)) {
+        initialized_ = false;
+        return true;
+      }
+      return false;
+    }
+
+    return true;
+  }
+
+ private:
+  HANDLE process_;
+  bool initialized_;
+};
+
+// A stack-based class that "owns" a pathname and deletes it when destroyed,
+// unless told not to by having its Release() method called.  Early deletions
+// are supported by calling Delete().
+class AutoDeleter {
+ public:
+  explicit AutoDeleter(const string& path) : path_(path) {}
+
+  ~AutoDeleter() {
+    int error;
+    if ((error = Delete()) != 0) {
+      // Print the error message here, because destructors have no return
+      // value.
+      fprintf(stderr, "~AutoDeleter: Delete: error %d for %s\n",
+              error, path_.c_str());
+    }
+  }
+
+  int Delete() {
+    if (path_.empty())
+      return 0;
+
+    int error = remove(path_.c_str());
+    Release();
+    return error;
+  }
+
+  void Release() {
+    path_.clear();
+  }
+
+ private:
+  string path_;
+};
+
+MSSymbolServerConverter::LocateResult
+MSSymbolServerConverter::LocateFile(const string& debug_or_code_file,
+                                    const string& debug_or_code_id,
+                                    const string& version,
+                                    string* file_name) {
+  assert(file_name);
+  file_name->clear();
+
+  GUIDOrSignatureIdentifier identifier;
+  if (!identifier.InitializeFromString(debug_or_code_id)) {
+    fprintf(stderr,
+            "LocateFile: Unparseable identifier for %s %s %s\n",
+            debug_or_code_file.c_str(),
+            debug_or_code_id.c_str(),
+            version.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  HANDLE process = GetCurrentProcess();  // CloseHandle is not needed.
+  AutoSymSrv symsrv;
+  if (!symsrv.Initialize(process,
+                         const_cast<char*>(symbol_path_.c_str()),
+                         false)) {
+    fprintf(stderr, "LocateFile: SymInitialize: error %lu for %s %s %s\n",
+            GetLastError(),
+            debug_or_code_file.c_str(),
+            debug_or_code_id.c_str(),
+            version.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  if (!SymRegisterCallback64(process, SymCallback,
+                             reinterpret_cast<ULONG64>(this))) {
+    fprintf(stderr,
+            "LocateFile: SymRegisterCallback64: error %lu for %s %s %s\n",
+            GetLastError(),
+            debug_or_code_file.c_str(),
+            debug_or_code_id.c_str(),
+            version.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  // SYMOPT_DEBUG arranges for SymCallback to be called with additional
+  // debugging information.  This is used to determine the nature of failures.
+  DWORD options = SymGetOptions() | SYMOPT_DEBUG | SYMOPT_NO_PROMPTS |
+                  SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_SECURE;
+  SymSetOptions(options);
+
+  // SymCallback will set these as needed inisde the SymFindFileInPath call.
+  fail_dns_ = false;
+  fail_timeout_ = false;
+  fail_not_found_ = false;
+
+  // Do the lookup.
+  char path[MAX_PATH];
+  if (!SymFindFileInPath(
+          process, NULL,
+          const_cast<char*>(debug_or_code_file.c_str()),
+          const_cast<void*>(identifier.guid_or_signature_pointer()),
+          identifier.age(), 0,
+          identifier.type() == GUIDOrSignatureIdentifier::TYPE_GUID ?
+              SSRVOPT_GUIDPTR : SSRVOPT_DWORDPTR,
+          path, SymFindFileInPathCallback, this)) {
+    DWORD error = GetLastError();
+    if (error == ERROR_FILE_NOT_FOUND) {
+      // This can be returned for a number of reasons.  Use the crumbs
+      // collected by SymCallback to determine which one is relevant.
+
+      // These errors are possibly transient.
+      if (fail_dns_ || fail_timeout_) {
+        return LOCATE_RETRY;
+      }
+
+      // This is an authoritiative file-not-found message.
+      if (fail_not_found_) {
+        fprintf(stderr,
+                "LocateFile: SymFindFileInPath: LOCATE_NOT_FOUND error "
+                "for %s %s %s\n",
+                debug_or_code_file.c_str(),
+                debug_or_code_id.c_str(),
+                version.c_str());
+        return LOCATE_NOT_FOUND;
+      }
+
+      // If the error is FILE_NOT_FOUND but none of the known error
+      // conditions are matched, fall through to LOCATE_FAILURE.
+    }
+
+    fprintf(stderr,
+            "LocateFile: SymFindFileInPath: error %lu for %s %s %s\n",
+            error,
+            debug_or_code_file.c_str(),
+            debug_or_code_id.c_str(),
+            version.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  // Making sure path is null-terminated.
+  path[MAX_PATH - 1] = '\0';
+
+  // The AutoDeleter ensures that the file is only kept when returning
+  // LOCATE_SUCCESS.
+  AutoDeleter deleter(path);
+
+  // Do the cleanup here even though it will happen when symsrv goes out of
+  // scope, to allow it to influence the return value.
+  if (!symsrv.Cleanup()) {
+    fprintf(stderr, "LocateFile: SymCleanup: error %lu for %s %s %s\n",
+            GetLastError(),
+            debug_or_code_file.c_str(),
+            debug_or_code_id.c_str(),
+            version.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  deleter.Release();
+
+  printf("Downloaded: %s\n", path);
+  *file_name = path;
+  return LOCATE_SUCCESS;
+}
+
+
+MSSymbolServerConverter::LocateResult
+MSSymbolServerConverter::LocatePEFile(const MissingSymbolInfo& missing,
+                                      string* pe_file) {
+  return LocateFile(missing.code_file, missing.code_identifier,
+                    missing.version, pe_file);
+}
+
+MSSymbolServerConverter::LocateResult
+MSSymbolServerConverter::LocateSymbolFile(const MissingSymbolInfo& missing,
+                                          string* symbol_file) {
+  return LocateFile(missing.debug_file, missing.debug_identifier,
+                    missing.version, symbol_file);
+}
+
+
+// static
+BOOL CALLBACK MSSymbolServerConverter::SymCallback(HANDLE process,
+                                                   ULONG action,
+                                                   ULONG64 data,
+                                                   ULONG64 context) {
+  MSSymbolServerConverter* self =
+      reinterpret_cast<MSSymbolServerConverter*>(context);
+
+  switch (action) {
+    case CBA_EVENT: {
+      IMAGEHLP_CBA_EVENT* cba_event =
+          reinterpret_cast<IMAGEHLP_CBA_EVENT*>(data);
+
+      // Put the string into a string object to be able to use string::find
+      // for substring matching.  This is important because the not-found
+      // message does not use the entire string but is appended to the URL
+      // that SymSrv attempted to retrieve.
+      string desc(cba_event->desc);
+
+      // desc_action maps strings (in desc) to boolean pointers that are to
+      // be set to true if the string matches.
+      struct desc_action {
+        const char* desc;  // The substring to match.
+        bool* action;      // On match, this pointer will be set to true.
+      };
+
+      static const desc_action desc_actions[] = {
+        // When a DNS error occurs, it could be indiciative of network
+        // problems.
+        { "SYMSRV:  The server name or address could not be resolved\n",
+          &self->fail_dns_ },
+
+        // This message is produced if no connection is opened.
+        { "SYMSRV:  A connection with the server could not be established\n",
+          &self->fail_timeout_ },
+
+        // This message is produced if a connection is established but the
+        // server fails to respond to the HTTP request.
+        { "SYMSRV:  The operation timed out\n",
+          &self->fail_timeout_ },
+
+        // This message is produced when the requested file is not found,
+        // even if one or more of the above messages are also produced.
+        // It's trapped to distinguish between not-found and unknown-failure
+        // conditions.  Note that this message will not be produced if a
+        // connection is established and the server begins to respond to the
+        // HTTP request but does not finish transmitting the file.
+        { " not found\n",
+          &self->fail_not_found_ }
+      };
+
+      for (int desc_action_index = 0;
+           desc_action_index <
+           static_cast<int>(sizeof(desc_actions) / sizeof(desc_action));
+           ++desc_action_index) {
+        if (desc.find(desc_actions[desc_action_index].desc) != string::npos) {
+          *(desc_actions[desc_action_index].action) = true;
+          break;
+        }
+      }
+
+      break;
+    }
+  }
+
+  // This function is a mere fly on the wall.  Treat everything as unhandled.
+  return FALSE;
+}
+
+// static
+BOOL CALLBACK MSSymbolServerConverter::SymFindFileInPathCallback(
+    const char* filename, void* context) {
+  // FALSE ends the search, indicating that the located symbol file is
+  // satisfactory.
+  return FALSE;
+}
+
+MSSymbolServerConverter::LocateResult
+MSSymbolServerConverter::LocateAndConvertSymbolFile(
+    const MissingSymbolInfo& missing,
+    bool keep_symbol_file,
+    bool keep_pe_file,
+    string* converted_symbol_file,
+    string* symbol_file,
+    string* out_pe_file) {
+  assert(converted_symbol_file);
+  converted_symbol_file->clear();
+  if (symbol_file) {
+    symbol_file->clear();
+  }
+
+  string pdb_file;
+  LocateResult result = LocateSymbolFile(missing, &pdb_file);
+  if (result != LOCATE_SUCCESS) {
+    fprintf(stderr, "Fallback to PE-only symbol generation for: %s\n",
+        missing.debug_file.c_str());
+    return LocateAndConvertPEFile(missing, keep_pe_file, converted_symbol_file,
+        out_pe_file);
+  }
+
+  if (symbol_file && keep_symbol_file) {
+    *symbol_file = pdb_file;
+  }
+
+  // The conversion of a symbol file for a Windows 64-bit module requires
+  // loading of the executable file.  If there is no executable file, convert
+  // using only the PDB file.  Without an executable file, the conversion will
+  // fail for 64-bit modules but it should succeed for 32-bit modules.
+  string pe_file;
+  result = LocatePEFile(missing, &pe_file);
+  if (result != LOCATE_SUCCESS) {
+    fprintf(stderr, "WARNING: Could not download: %s\n", pe_file.c_str());
+  }
+
+  if (out_pe_file && keep_pe_file) {
+    *out_pe_file = pe_file;
+  }
+
+  // Conversion may fail because the file is corrupt.  If a broken file is
+  // kept in the local cache, LocateSymbolFile will not hit the network again
+  // to attempt to locate it.  To guard against problems like this, the
+  // symbol file in the local cache will be removed if conversion fails.
+  AutoDeleter pdb_deleter(pdb_file);
+  AutoDeleter pe_deleter(pe_file);
+
+  // Be sure that it's a .pdb file, since we'll be replacing .pdb with .sym
+  // for the converted file's name.
+  string pdb_extension = pdb_file.substr(pdb_file.length() - 4);
+  // strcasecmp is called _stricmp here.
+  if (_stricmp(pdb_extension.c_str(), ".pdb") != 0) {
+    fprintf(stderr, "LocateAndConvertSymbolFile: "
+            "no .pdb extension for %s %s %s %s\n",
+            missing.debug_file.c_str(),
+            missing.debug_identifier.c_str(),
+            missing.version.c_str(),
+            pdb_file.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  PDBSourceLineWriter writer;
+  wstring pe_file_w;
+  if (!WindowsStringUtils::safe_mbstowcs(pe_file, &pe_file_w)) {
+    fprintf(stderr,
+            "LocateAndConvertSymbolFile: "
+                "WindowsStringUtils::safe_mbstowcs failed for %s\n",
+            pe_file.c_str());
+    return LOCATE_FAILURE;
+  }
+  wstring pdb_file_w;
+  if (!WindowsStringUtils::safe_mbstowcs(pdb_file, &pdb_file_w)) {
+    fprintf(stderr,
+            "LocateAndConvertSymbolFile: "
+                "WindowsStringUtils::safe_mbstowcs failed for %ws\n",
+            pdb_file_w.c_str());
+    return LOCATE_FAILURE;
+  }
+  if (!writer.Open(pdb_file_w, PDBSourceLineWriter::PDB_FILE)) {
+    fprintf(stderr,
+            "ERROR: PDBSourceLineWriter::Open failed for %s %s %s %ws\n",
+            missing.debug_file.c_str(), missing.debug_identifier.c_str(),
+            missing.version.c_str(), pdb_file_w.c_str());
+    return LOCATE_FAILURE;
+  }
+  if (!writer.SetCodeFile(pe_file_w)) {
+    fprintf(stderr,
+            "ERROR: PDBSourceLineWriter::SetCodeFile failed for %s %s %s %ws\n",
+            missing.debug_file.c_str(), missing.debug_identifier.c_str(),
+            missing.version.c_str(), pe_file_w.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  *converted_symbol_file = pdb_file.substr(0, pdb_file.length() - 4) + ".sym";
+
+  FILE* converted_output = NULL;
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  errno_t err;
+  if ((err = fopen_s(&converted_output, converted_symbol_file->c_str(), "w"))
+    != 0) {
+#else  // _MSC_VER >= 1400
+  // fopen_s and errno_t were introduced in MSVC8.  Use fopen for earlier
+  // environments.  Don't use fopen with MSVC8 and later, because it's
+  // deprecated.  fopen does not provide reliable error codes, so just use
+  // -1 in the event of a failure.
+  int err;
+  if (!(converted_output = fopen(converted_symbol_file->c_str(), "w"))) {
+    err = -1;
+#endif  // _MSC_VER >= 1400
+    fprintf(stderr, "LocateAndConvertSymbolFile: "
+        "fopen_s: error %d for %s %s %s %s\n",
+        err,
+        missing.debug_file.c_str(),
+        missing.debug_identifier.c_str(),
+        missing.version.c_str(),
+        converted_symbol_file->c_str());
+    return LOCATE_FAILURE;
+  }
+
+  AutoDeleter sym_deleter(*converted_symbol_file);
+
+  bool success = writer.WriteSymbols(converted_output);
+  fclose(converted_output);
+
+  if (!success) {
+    fprintf(stderr, "LocateAndConvertSymbolFile: "
+            "PDBSourceLineWriter::WriteMap failed for %s %s %s %s\n",
+            missing.debug_file.c_str(),
+            missing.debug_identifier.c_str(),
+            missing.version.c_str(),
+            pdb_file.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  if (keep_symbol_file) {
+    pdb_deleter.Release();
+  }
+
+  if (keep_pe_file) {
+    pe_deleter.Release();
+  }
+
+  sym_deleter.Release();
+
+  return LOCATE_SUCCESS;
+}
+
+MSSymbolServerConverter::LocateResult
+MSSymbolServerConverter::LocateAndConvertPEFile(
+    const MissingSymbolInfo& missing,
+    bool keep_pe_file,
+    string* converted_symbol_file,
+    string* out_pe_file) {
+  assert(converted_symbol_file);
+  converted_symbol_file->clear();
+
+  string pe_file;
+  MSSymbolServerConverter::LocateResult result = LocatePEFile(missing,
+      &pe_file);
+  if (result != LOCATE_SUCCESS) {
+    fprintf(stderr, "WARNING: Could not download: %s\n", pe_file.c_str());
+    return result;
+  }
+
+  if (out_pe_file && keep_pe_file) {
+    *out_pe_file = pe_file;
+  }
+
+  // Conversion may fail because the file is corrupt.  If a broken file is
+  // kept in the local cache, LocatePEFile will not hit the network again
+  // to attempt to locate it.  To guard against problems like this, the
+  // PE file in the local cache will be removed if conversion fails.
+  AutoDeleter pe_deleter(pe_file);
+
+  // Be sure that it's a .exe or .dll file, since we'll be replacing extension
+  // with .sym for the converted file's name.
+  string pe_extension = pe_file.substr(pe_file.length() - 4);
+  // strcasecmp is called _stricmp here.
+  if (_stricmp(pe_extension.c_str(), ".exe") != 0 &&
+    _stricmp(pe_extension.c_str(), ".dll") != 0) {
+    fprintf(stderr, "LocateAndConvertPEFile: "
+        "no .dll/.exe extension for %s %s %s %s\n",
+        missing.debug_file.c_str(),
+        missing.debug_identifier.c_str(),
+        missing.version.c_str(),
+        pe_file.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  *converted_symbol_file = pe_file.substr(0, pe_file.length() - 4) + ".sym";
+
+  FILE* converted_output = NULL;
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  errno_t err;
+  if ((err = fopen_s(&converted_output, converted_symbol_file->c_str(), "w"))
+      != 0) {
+#else  // _MSC_VER >= 1400
+  // fopen_s and errno_t were introduced in MSVC8.  Use fopen for earlier
+  // environments.  Don't use fopen with MSVC8 and later, because it's
+  // deprecated.  fopen does not provide reliable error codes, so just use
+  // -1 in the event of a failure.
+  int err;
+  if (!(converted_output = fopen(converted_symbol_file->c_str(), "w"))) {
+    err = -1;
+#endif  // _MSC_VER >= 1400
+    fprintf(stderr, "LocateAndConvertPEFile: "
+        "fopen_s: error %d for %s %s %s %s\n",
+        err,
+        missing.debug_file.c_str(),
+        missing.debug_identifier.c_str(),
+        missing.version.c_str(),
+        converted_symbol_file->c_str());
+    return LOCATE_FAILURE;
+  }
+  AutoDeleter sym_deleter(*converted_symbol_file);
+
+  wstring pe_file_w;
+  if (!WindowsStringUtils::safe_mbstowcs(pe_file, &pe_file_w)) {
+    fprintf(stderr,
+        "LocateAndConvertPEFile: "
+        "WindowsStringUtils::safe_mbstowcs failed for %s\n",
+        pe_file.c_str());
+    return LOCATE_FAILURE;
+  }
+  PESourceLineWriter writer(pe_file_w);
+  PDBModuleInfo module_info;
+  if (!writer.GetModuleInfo(&module_info)) {
+    fprintf(stderr, "LocateAndConvertPEFile: "
+        "PESourceLineWriter::GetModuleInfo failed for %s %s %s %s\n",
+        missing.debug_file.c_str(),
+        missing.debug_identifier.c_str(),
+        missing.version.c_str(),
+        pe_file.c_str());
+    return LOCATE_FAILURE;
+  }
+  if (module_info.cpu.compare(L"x86_64") != 0) {
+    // This module is not x64 so we cannot generate Breakpad symbols from the
+    // PE alone. Don't delete PE-- no need to retry download.
+    pe_deleter.Release();
+    return LOCATE_FAILURE;
+  }
+
+  bool success = writer.WriteSymbols(converted_output);
+  fclose(converted_output);
+
+  if (!success) {
+    fprintf(stderr, "LocateAndConvertPEFile: "
+        "PESourceLineWriter::WriteMap failed for %s %s %s %s\n",
+        missing.debug_file.c_str(),
+        missing.debug_identifier.c_str(),
+        missing.version.c_str(),
+        pe_file.c_str());
+    return LOCATE_FAILURE;
+  }
+
+  if (keep_pe_file) {
+    pe_deleter.Release();
+  }
+
+  sym_deleter.Release();
+
+  return LOCATE_SUCCESS;
+}
+
+}  // namespace google_breakpad
diff --git a/src/tools/windows/converter/ms_symbol_server_converter.gyp b/src/tools/windows/converter/ms_symbol_server_converter.gyp
new file mode 100644
index 0000000..57ec790
--- /dev/null
+++ b/src/tools/windows/converter/ms_symbol_server_converter.gyp
@@ -0,0 +1,46 @@
+# Copyright 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'ms_symbol_server_converter',
+      'type': 'static_library',
+      'msvs_guid': '1463C4CD-23FC-4DE9-BFDE-283338200157',
+      'sources': [
+        'ms_symbol_server_converter.cc',
+      ],
+      'dependencies': [
+        '../../../common/windows/common_windows.gyp:common_windows_lib',
+      ],
+    },
+  ],
+}
diff --git a/src/tools/windows/converter/ms_symbol_server_converter.h b/src/tools/windows/converter/ms_symbol_server_converter.h
new file mode 100644
index 0000000..40d65d5
--- /dev/null
+++ b/src/tools/windows/converter/ms_symbol_server_converter.h
@@ -0,0 +1,235 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ms_symbol_server_converter.h: Obtain symbol files from a Microsoft
+// symbol server, and convert them to Breakpad's dumped format.
+//
+// At runtime, MSSymbolServerConverter and code that it calls depend on being
+// able to locate suitable versions of dbghelp.dll and symsrv.dll.  For best
+// results, place these files in the same directory as the executable.
+// dbghelp.dll and symsrv.dll as supplied with Debugging Tools for Windows are
+// both redistributable, as indicated by the package's redist.txt file.
+//
+// When connecting to Microsoft's symbol server at
+// http://msdl.microsoft.com/download/symbols/, which provides access to
+// symbols for the operating system itself, symsrv.dll requires agreement to
+// Microsoft's "Terms of Use for Microsoft Symbols and Binaries."  Because this
+// library places the symbol engine into a promptless mode, the dialog with the
+// terms will not appear, and use of Microsoft's symbol server will not be
+// possible.  To indicate agreement to the terms, create a file called
+// symsrv.yes in the same directory as symsrv.dll.  (Note that symsrv.dll will
+// also recognize a symsrv.no file as indicating that you do not accept the
+// terms; the .yes file takes priority over the .no file.)  The terms of use
+// are contained within symsrv.dll; they were formerly available online at
+// http://www.microsoft.com/whdc/devtools/debugging/symsrvTOU2.mspx , but
+// do not appear to be available online any longer as of January, 2007.  It is
+// possible to view the terms from within WinDbg (Debugging Tools for Windows)
+// by removing any symsrv.yes and symsrv.no files from WinDbg's directory,
+// setting the symbol path to include Microsoft's symbol server (.sympath), and
+// attempting to load symbols from their server (.reload).
+//
+// This code has been tested with dbghelp.dll 6.5.3.7 and symsrv.dll 6.5.3.8,
+// included with Microsoft Visual Studio 8 in Common7/IDE.  This has also been
+// tested with dbghelp.dll and symsrv.dll versions 6.6.7.5 and 6.12.2.633,
+// included with the same versions of Debugging Tools for Windows, available at
+// http://www.microsoft.com/whdc/devtools/debugging/ .
+//
+// Author: Mark Mentovai
+
+#ifndef TOOLS_WINDOWS_MS_SYMBOL_SERVER_CONVERTER_H_
+#define TOOLS_WINDOWS_MS_SYMBOL_SERVER_CONVERTER_H_
+
+#include <windows.h>
+
+#include <string>
+#include <vector>
+
+namespace google_breakpad {
+
+using std::string;
+using std::vector;
+
+// MissingSymbolInfo contains the subset of the information in the processor's
+// CodeModule structure relevant to obtaining a missing symbol file.  Only
+// debug_file and debug_identifier are relevant in actually obtaining the
+// missing file; the other fields are for convenience.
+struct MissingSymbolInfo {
+  string code_file;
+  string code_identifier;
+  string debug_file;
+  string debug_identifier;
+  string version;
+};
+
+class GUIDOrSignatureIdentifier {
+ public:
+  enum GUIDOrSignatureType {
+    TYPE_NONE = 0,
+    TYPE_GUID,
+    TYPE_SIGNATURE
+  };
+
+  GUIDOrSignatureIdentifier() : type_(TYPE_NONE) {}
+
+  // Converts |identifier|, a debug_identifier-formatted string, into its
+  // component fields: either a GUID and age, or signature and age.  If
+  // successful, sets the relevant fields in the object, including the type
+  // field, and returns true.  On error, returns false.
+  bool InitializeFromString(const string& identifier);
+
+  GUIDOrSignatureType type() const { return type_; }
+  GUID guid() const { return guid_; }
+  DWORD signature() const { return signature_; }
+  int age() const { return age_; }
+  const void* guid_or_signature_pointer() const { return &guid_; }
+
+ private:
+  GUIDOrSignatureType type_;
+
+  // An identifier contains either a 128-bit uuid or a 32-bit signature.
+  union {
+    GUID guid_;
+    DWORD signature_;
+  };
+
+  // All identifiers used here have age fields, which indicate a specific
+  // revision given a uuid or signature.
+  int age_;
+};
+
+class MSSymbolServerConverter {
+ public:
+  enum LocateResult {
+    LOCATE_FAILURE = 0,
+    LOCATE_NOT_FOUND,    // Authoritative: the file is not present.
+    LOCATE_RETRY,        // Transient (network?) error, try again later.
+    LOCATE_SUCCESS
+  };
+
+  // Create a new object.  local_cache is the location (pathname) of a local
+  // symbol store used to hold downloaded and converted symbol files.  This
+  // directory will be created by LocateSymbolFile when it successfully
+  // retrieves a symbol file. symbol_servers contains a list of locations (URLs
+  // or pathnames) of the upstream symbol server stores, given in order of
+  // preference, with the first string in the vector identifying the first
+  // store to try.  The vector must contain at least one string.  None of the
+  // strings passed to this constructor may contain asterisk ('*') or semicolon
+  // (';') characters, as the symbol engine uses these characters as separators.
+  MSSymbolServerConverter(const string& local_cache,
+                          const vector<string>& symbol_servers);
+
+  // Locates the PE file (DLL or EXE) specified by the identifying information
+  // in |missing|, by checking the symbol stores identified when the object
+  // was created.  When returning LOCATE_SUCCESS, pe_file is set to
+  // the pathname of the decompressed PE file as it is stored in the
+  // local cache.
+  LocateResult LocatePEFile(const MissingSymbolInfo& missing, string* pe_file);
+
+  // Locates the symbol file specified by the identifying information in
+  // |missing|, by checking the symbol stores identified when the object
+  // was created.  When returning LOCATE_SUCCESS, symbol_file is set to
+  // the pathname of the decompressed symbol file as it is stored in the
+  // local cache.
+  LocateResult LocateSymbolFile(const MissingSymbolInfo& missing,
+                                string* symbol_file);
+
+  // Calls LocateSymbolFile and converts the returned symbol file to the
+  // dumped-symbol format, storing it adjacent to the symbol file.  The
+  // only conversion supported is from pdb files.  Returns the return
+  // value of LocateSymbolFile, or if LocateSymbolFile succeeds but
+  // conversion fails, returns LOCATE_FAILURE.  The pathname to the
+  // pdb file and to the converted symbol file are returned in
+  // |converted_symbol_file|, |symbol_file|, and |pe_file|.  |symbol_file| and
+  // |pe_file| are optional and may be NULL.  If only the converted symbol file
+  // is desired, set |keep_symbol_file| and |keep_pe_file| to false to indicate
+  // that the original symbol file (pdb) and executable file (exe, dll) should
+  // be deleted after conversion.
+  LocateResult LocateAndConvertSymbolFile(const MissingSymbolInfo& missing,
+                                          bool keep_symbol_file,
+                                          bool keep_pe_file,
+                                          string* converted_symbol_file,
+                                          string* symbol_file,
+                                          string* pe_file);
+
+  // Calls LocatePEFile and converts the returned PE file to the
+  // dumped-symbol format, storing it adjacent to the PE file. The
+  // only conversion supported is from PE files. Returns the return
+  // value of LocatePEFile, or if LocatePEFile succeeds but
+  // conversion fails, returns LOCATE_FAILURE. The pathname to the
+  // PE file and to the converted symbol file are returned in
+  // |converted_symbol_file| and |pe_file|. |pe_file| is optional and may be
+  // NULL.  If only the converted symbol file is desired, set |keep_pe_file|
+  // to false to indicate that the executable file (exe, dll) should be deleted
+  // after conversion.
+  // NOTE: Currrently only supports x64 PEs.
+  LocateResult LocateAndConvertPEFile(const MissingSymbolInfo& missing,
+                                      bool keep_pe_file,
+                                      string* converted_symbol_file,
+                                      string* pe_file);
+
+ private:
+  // Locates the PDB or PE file (DLL or EXE) specified by the identifying
+  // information in |debug_or_code_file| and |debug_or_code_id|, by checking
+  // the symbol stores identified when the object was created.  When
+  // returning LOCATE_SUCCESS, file_name is set to the pathname of the
+  // decompressed PDB or PE file file as it is stored in the local cache.
+  LocateResult LocateFile(const string& debug_or_code_file,
+                          const string& debug_or_code_id,
+                          const string& version, string* file_name);
+
+  // Called by various SymSrv functions to report status as progress is made
+  // and to allow the callback to influence processing.  Messages sent to this
+  // callback can be used to distinguish between the various failure modes
+  // that SymFindFileInPath might encounter.
+  static BOOL CALLBACK SymCallback(HANDLE process, ULONG action, ULONG64 data,
+                                   ULONG64 context);
+
+  // Called by SymFindFileInPath (in LocateSymbolFile) after a candidate
+  // symbol file is located, when it's present in the local cache.
+  // SymFindFileInPath actually seems to accept NULL for a callback function
+  // and behave properly for our needs in that case, but the documentation
+  // doesn't mention it, so this little callback is provided.
+  static BOOL CALLBACK SymFindFileInPathCallback(const char* filename,
+                                                 void* context);
+
+  // The search path used by SymSrv, built based on the arguments to the
+  // constructor.
+  string symbol_path_;
+
+  // SymCallback will set at least one of these failure variables if
+  // SymFindFileInPath fails for an expected reason.
+  bool fail_dns_;        // DNS failures (fail_not_found_ will also be set).
+  bool fail_timeout_;    // Timeouts (fail_not_found_ will also be set).
+  bool fail_not_found_;  // The file could not be found.  If this is the only
+                         // fail_* member set, then it is authoritative.
+};
+
+}  // namespace google_breakpad
+
+#endif  // TOOLS_WINDOWS_MS_SYMBOL_SERVER_CONVERTER_H_
diff --git a/src/tools/windows/converter/ms_symbol_server_converter.vcproj b/src/tools/windows/converter/ms_symbol_server_converter.vcproj
new file mode 100644
index 0000000..ee1263a
--- /dev/null
+++ b/src/tools/windows/converter/ms_symbol_server_converter.vcproj
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Purify|Win32">
+      <Configuration>Purify</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Purify|x64">
+      <Configuration>Purify</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1463C4CD-23FC-4DE9-BFDE-283338200157}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>ms_symbol_server_converter</RootNamespace>
+    <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
+  <PropertyGroup Label="Configuration">
+    <CharacterSet>Unicode</CharacterSet>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
+  <ImportGroup Label="ExtensionSettings"/>
+  <ImportGroup Label="PropertySheets">
+    <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/>
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros"/>
+  <PropertyGroup>
+    <ExecutablePath>$(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\third_party\cygwin\bin\;$(MSBuildProjectDirectory)\..\..\..\third_party\python_26\</ExecutablePath>
+    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Purify|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Purify|x64'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+    <TargetName>$(ProjectName)</TargetName>
+    <TargetPath>$(OutDir)lib\$(ProjectName)$(TargetExt)</TargetPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/safeseh /dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Purify|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;NVALGRIND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/safeseh /dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;NVALGRIND;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Purify|x64'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;NDEBUG;NVALGRIND;PURIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;NDEBUG;NVALGRIND;PURIFY;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <OmitFramePointers>true</OmitFramePointers>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;NVALGRIND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <StringPooling>true</StringPooling>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/safeseh /dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <OptimizeReferences>true</OptimizeReferences>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;NVALGRIND;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4100;4127;4396;4503;4512;4819;4995;4702;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <ExceptionHandling>false</ExceptionHandling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <MinimalRebuild>false</MinimalRebuild>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;NDEBUG;NVALGRIND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <Lib>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
+      <OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
+    </Lib>
+    <Link>
+      <AdditionalDependencies>wininet.lib;version.lib;msimg32.lib;ws2_32.lib;usp10.lib;psapi.lib;dbghelp.lib;$(VSInstallDir)\DIA SDK\lib\diaguids.lib;imagehlp.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../../third_party/platformsdk_win7/files/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalOptions>/dynamicbase /ignore:4199 /ignore:4221 /nxcompat %(AdditionalOptions)</AdditionalOptions>
+      <DelayLoadDLLs>dbghelp.dll;dwmapi.dll;uxtheme.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <FixedBaseAddress>false</FixedBaseAddress>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
+      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+    <Midl>
+      <DllDataFileName>dlldata.c</DllDataFileName>
+      <GenerateStublessProxies>true</GenerateStublessProxies>
+      <HeaderFileName>%(Filename).h</HeaderFileName>
+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
+      <OutputDirectory>$(IntDir)</OutputDirectory>
+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
+    </Midl>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>../../..;..\..\..;$(VSInstallDir)\DIA SDK\include;..\..\..\third_party\platformsdk_win7\files\Include;$(VSInstallDir)\VC\atlmfc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN;_SECURE_ATL;CHROMIUM_BUILD;TOOLKIT_VIEWS=1;ENABLE_GPU=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NO_TCMALLOC;NDEBUG;NVALGRIND;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <None Include="ms_symbol_server_converter.gyp"/>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="ms_symbol_server_converter.cc"/>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
+  <ImportGroup Label="ExtensionTargets"/>
+</Project>
diff --git a/src/tools/windows/converter_exe/configure.cmd b/src/tools/windows/converter_exe/configure.cmd
new file mode 100644
index 0000000..5464a61
--- /dev/null
+++ b/src/tools/windows/converter_exe/configure.cmd
@@ -0,0 +1,33 @@
+@if "%ECHOON%"=="" @echo off
+SETLOCAL
+
+REM ******************************************************************
+REM Please, make sure to run this in an Elevated Command Prompt.
+REM Usage:
+REM        configure.cmd
+REM ******************************************************************
+
+REM ******************************************************************
+REM Initialize
+REM ******************************************************************
+SET SCRIPT_LOCATION=%~dp0
+
+REM ******************************************************************
+REM Go to script location
+REM ******************************************************************
+pushd %SCRIPT_LOCATION%
+
+REM ******************************************************************
+REM Register msdia140.dll.
+REM ******************************************************************
+SET MSG=Failed to register msdia140.dll.  Make sure to run this in elevated command prompt.
+%systemroot%\SysWoW64\regsvr32.exe /s msdia140.dll & if errorlevel 1 echo %MSG% & goto :fail
+
+:success
+echo Configuration was successful.
+ENDLOCAL
+exit /b 0
+
+:fail
+ENDLOCAL
+exit /b 1
diff --git a/src/tools/windows/converter_exe/converter.cc b/src/tools/windows/converter_exe/converter.cc
new file mode 100644
index 0000000..06bd8eb
--- /dev/null
+++ b/src/tools/windows/converter_exe/converter.cc
@@ -0,0 +1,807 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#pragma comment(lib, "winhttp.lib")
+#pragma comment(lib, "wininet.lib")
+#pragma comment(lib, "diaguids.lib")
+#pragma comment(lib, "imagehlp.lib")
+
+#include <cassert>
+#include <cstdio>
+#include <ctime>
+#include <map>
+#include <regex>
+#include <string>
+#include <vector>
+
+#include "tools/windows/converter_exe/escaping.h"
+#include "tools/windows/converter_exe/http_download.h"
+#include "tools/windows/converter_exe/tokenizer.h"
+#include "common/windows/http_upload.h"
+#include "common/windows/string_utils-inl.h"
+#include "tools/windows/converter/ms_symbol_server_converter.h"
+
+using strings::WebSafeBase64Unescape;
+using strings::WebSafeBase64Escape;
+
+namespace {
+
+using std::map;
+using std::string;
+using std::vector;
+using std::wstring;
+using crash::HTTPDownload;
+using crash::Tokenizer;
+using google_breakpad::HTTPUpload;
+using google_breakpad::MissingSymbolInfo;
+using google_breakpad::MSSymbolServerConverter;
+using google_breakpad::WindowsStringUtils;
+
+const char* kMissingStringDelimiters = "|";
+const char* kLocalCachePath = "c:\\symbols";
+const char* kNoExeMSSSServer = "http://msdl.microsoft.com/download/symbols/";
+
+// Windows stdio doesn't do line buffering.  Use this function to flush after
+// writing to stdout and stderr so that a log will be available if the
+// converter crashes.
+static int FprintfFlush(FILE* file, const char* format, ...) {
+  va_list arguments;
+  va_start(arguments, format);
+  int retval = vfprintf(file, format, arguments);
+  va_end(arguments);
+  fflush(file);
+  return retval;
+}
+
+static string CurrentDateAndTime() {
+  const string kUnknownDateAndTime = R"(????-??-?? ??:??:??)";
+
+  time_t current_time;
+  time(&current_time);
+
+  // localtime_s is safer but is only available in MSVC8.  Use localtime
+  // in earlier environments.
+  struct tm* time_pointer;
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  struct tm time_struct;
+  time_pointer =& time_struct;
+  if (localtime_s(time_pointer,& current_time) != 0) {
+    return kUnknownDateAndTime;
+  }
+#else  // _MSC_VER >= 1400
+  time_pointer = localtime(&current_time);
+  if (!time_pointer) {
+    return kUnknownDateAndTime;
+  }
+#endif  // _MSC_VER >= 1400
+
+  char buffer[256];
+  if (!strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", time_pointer)) {
+    return kUnknownDateAndTime;
+  }
+
+  return string(buffer);
+}
+
+// ParseMissingString turns |missing_string| into a MissingSymbolInfo
+// structure.  It returns true on success, and false if no such conversion
+// is possible.
+static bool ParseMissingString(const string& missing_string,
+                               MissingSymbolInfo* missing_info) {
+  assert(missing_info);
+
+  vector<string> tokens;
+  Tokenizer::Tokenize(kMissingStringDelimiters, missing_string,& tokens);
+  if (tokens.size() != 5) {
+    return false;
+  }
+
+  missing_info->debug_file = tokens[0];
+  missing_info->debug_identifier = tokens[1];
+  missing_info->version = tokens[2];
+  missing_info->code_file = tokens[3];
+  missing_info->code_identifier = tokens[4];
+
+  return true;
+}
+
+// StringMapToWStringMap takes each element in a map that associates
+// (narrow) strings to strings and converts the keys and values to wstrings.
+// Returns true on success and false on failure, printing an error message.
+static bool StringMapToWStringMap(const map<string, string>& smap,
+                                  map<wstring, wstring>* wsmap) {
+  assert(wsmap);
+  wsmap->clear();
+
+  for (map<string, string>::const_iterator iterator = smap.begin();
+       iterator != smap.end();
+       ++iterator) {
+    wstring key;
+    if (!WindowsStringUtils::safe_mbstowcs(iterator->first,& key)) {
+      FprintfFlush(stderr,
+                   "StringMapToWStringMap: safe_mbstowcs failed for key %s\n",
+                   iterator->first.c_str());
+      return false;
+    }
+
+    wstring value;
+    if (!WindowsStringUtils::safe_mbstowcs(iterator->second,& value)) {
+      FprintfFlush(stderr, "StringMapToWStringMap: safe_mbstowcs failed "
+                           "for value %s\n",
+                   iterator->second.c_str());
+      return false;
+    }
+
+    wsmap->insert(make_pair(key, value));
+  }
+
+  return true;
+}
+
+// MissingSymbolInfoToParameters turns a MissingSymbolInfo structure into a
+// map of parameters suitable for passing to HTTPDownload or HTTPUpload.
+// Returns true on success and false on failure, printing an error message.
+static bool MissingSymbolInfoToParameters(const MissingSymbolInfo& missing_info,
+                                          map<wstring, wstring>* wparameters) {
+  assert(wparameters);
+
+  map<string, string> parameters;
+  string encoded_param;
+  // Indicate the params are encoded.
+  parameters["encoded"] = "true";  // The string value here does not matter.
+
+  WebSafeBase64Escape(missing_info.code_file,& encoded_param);
+  parameters["code_file"] = encoded_param;
+
+  WebSafeBase64Escape(missing_info.code_identifier,& encoded_param);
+  parameters["code_identifier"] = encoded_param;
+
+  WebSafeBase64Escape(missing_info.debug_file,& encoded_param);
+  parameters["debug_file"] = encoded_param;
+
+  WebSafeBase64Escape(missing_info.debug_identifier,& encoded_param);
+  parameters["debug_identifier"] = encoded_param;
+
+  if (!missing_info.version.empty()) {
+    // The version is optional.
+    WebSafeBase64Escape(missing_info.version,& encoded_param);
+    parameters["version"] = encoded_param;
+  }
+
+  WebSafeBase64Escape("WinSymConv",& encoded_param);
+  parameters["product"] = encoded_param;
+
+  if (!StringMapToWStringMap(parameters, wparameters)) {
+    // StringMapToWStringMap will have printed an error.
+    return false;
+  }
+
+  return true;
+}
+
+// UploadSymbolFile sends |converted_file| as identified by |missing_info|
+// to the symbol server rooted at |upload_symbol_url|.  Returns true on
+// success and false on failure, printing an error message.
+static bool UploadSymbolFile(const wstring& upload_symbol_url,
+                             const MissingSymbolInfo& missing_info,
+                             const string& converted_file) {
+  map<wstring, wstring> parameters;
+  if (!MissingSymbolInfoToParameters(missing_info,& parameters)) {
+    // MissingSymbolInfoToParameters or a callee will have printed an error.
+    return false;
+  }
+
+  wstring converted_file_w;
+
+  if (!WindowsStringUtils::safe_mbstowcs(converted_file,& converted_file_w)) {
+    FprintfFlush(stderr, "UploadSymbolFile: safe_mbstowcs failed for %s\n",
+                 converted_file.c_str());
+    return false;
+  }
+  map<wstring, wstring> files;
+  files[L"symbol_file"] = converted_file_w;
+
+  FprintfFlush(stderr, "Uploading %s\n", converted_file.c_str());
+  if (!HTTPUpload::SendMultipartPostRequest(
+      upload_symbol_url, parameters,
+      files, NULL, NULL, NULL)) {
+    FprintfFlush(stderr, "UploadSymbolFile: HTTPUpload::SendRequest failed "
+                         "for %s %s %s\n",
+                 missing_info.debug_file.c_str(),
+                 missing_info.debug_identifier.c_str(),
+                 missing_info.version.c_str());
+    return false;
+  }
+
+  return true;
+}
+
+// SendFetchFailedPing informs the symbol server based at
+// |fetch_symbol_failure_url| that the symbol file identified by
+// |missing_info| could authoritatively not be located.  Returns
+// true on success and false on failure.
+static bool SendFetchFailedPing(const wstring& fetch_symbol_failure_url,
+                                const MissingSymbolInfo& missing_info) {
+  map<wstring, wstring> parameters;
+  if (!MissingSymbolInfoToParameters(missing_info,& parameters)) {
+    // MissingSymbolInfoToParameters or a callee will have printed an error.
+    return false;
+  }
+
+  string content;
+  if (!HTTPDownload::Download(fetch_symbol_failure_url,
+                             & parameters,
+                             & content,
+                              NULL)) {
+    FprintfFlush(stderr, "SendFetchFailedPing: HTTPDownload::Download failed "
+                         "for %s %s %s\n",
+                 missing_info.debug_file.c_str(),
+                 missing_info.debug_identifier.c_str(),
+                 missing_info.version.c_str());
+    return false;
+  }
+
+  return true;
+}
+
+// Returns true if it's safe to make an external request for the symbol
+// file described in missing_info. It's considered safe to make an
+// external request unless the symbol file's debug_file string matches
+// the given blacklist regular expression.
+// The debug_file name is used from the MissingSymbolInfo struct,
+// matched against the blacklist_regex.
+static bool SafeToMakeExternalRequest(const MissingSymbolInfo& missing_info,
+                                      std::regex blacklist_regex) {
+  string file_name = missing_info.debug_file;
+  // Use regex_search because we want to match substrings.
+  if (std::regex_search(file_name, blacklist_regex)) {
+    FprintfFlush(stderr, "Not safe to make external request for file %s\n",
+                 file_name.c_str());
+    return false;
+  }
+
+  return true;
+}
+
+// Converter options derived from command line parameters.
+struct ConverterOptions {
+  ConverterOptions()
+      : report_fetch_failures(true) {
+  }
+
+  ~ConverterOptions() {
+  }
+
+  // Names of MS Symbol Supplier Servers that are internal to Google, and may
+  // have symbols for any request.
+  vector<string> full_internal_msss_servers;
+
+  // Names of MS Symbol Supplier Servers that are internal to Google, and
+  // shouldn't be checked for symbols for any .exe files.
+  vector<string> full_external_msss_servers;
+
+  // Names of MS Symbol Supplier Servers that are external to Google, and may
+  // have symbols for any request.
+  vector<string> no_exe_internal_msss_servers;
+
+  // Names of MS Symbol Supplier Servers that are external to Google, and
+  // shouldn't be checked for symbols for any .exe files.
+  vector<string> no_exe_external_msss_servers;
+
+  // Temporary local storage for symbols.
+  string local_cache_path;
+
+  // URL for uploading symbols.
+  wstring upload_symbols_url;
+
+  // URL to fetch list of missing symbols.
+  wstring missing_symbols_url;
+
+  // URL to report symbol fetch failure.
+  wstring fetch_symbol_failure_url;
+
+  // Are symbol fetch failures reported.
+  bool report_fetch_failures;
+
+  // File containing the list of missing symbols.  Fetch failures are not
+  // reported if such file is provided.
+  string missing_symbols_file;
+
+  // Regex used to blacklist files to prevent external symbol requests.
+  // Owned and cleaned up by this struct.
+  std::regex blacklist_regex;
+
+ private:
+  // DISABLE_COPY_AND_ASSIGN
+  ConverterOptions(const ConverterOptions&);
+  ConverterOptions& operator=(const ConverterOptions&);
+};
+
+// ConverMissingSymbolFile takes a single MissingSymbolInfo structure and
+// attempts to locate it from the symbol servers provided in the
+// |options.*_msss_servers| arguments.  "Full" servers are those that will be
+// queried for all symbol files; "No-EXE" servers will only be queried for
+// modules whose missing symbol data indicates are not main program executables.
+// Results will be sent to the |options.upload_symbols_url| on success or
+// |options.fetch_symbol_failure_url| on failure, and the local cache will be
+// stored at |options.local_cache_path|.  Because nothing can be done even in
+// the event of a failure, this function returns no value, although it
+// may result in error messages being printed.
+static void ConvertMissingSymbolFile(const MissingSymbolInfo& missing_info,
+                                     const ConverterOptions& options) {
+  string time_string = CurrentDateAndTime();
+  FprintfFlush(stdout, "converter: %s: attempting %s %s %s\n",
+               time_string.c_str(),
+               missing_info.debug_file.c_str(),
+               missing_info.debug_identifier.c_str(),
+               missing_info.version.c_str());
+
+  // The first lookup is always to internal symbol servers.
+  // Always ask the symbol servers identified as "full."
+  vector<string> msss_servers = options.full_internal_msss_servers;
+
+  // If the file is not an .exe file, also ask an additional set of symbol
+  // servers, such as Microsoft's public symbol server.
+  bool is_exe = false;
+
+  if (missing_info.code_file.length() >= 4) {
+    string code_extension =
+        missing_info.code_file.substr(missing_info.code_file.size() - 4);
+
+    // Firefox is a special case: .dll-only servers should be consulted for
+    // its symbols.  This enables us to get its symbols from Mozilla's
+    // symbol server when crashes occur in Google extension code hosted by a
+    // Firefox process.
+    if (_stricmp(code_extension.c_str(), ".exe") == 0 &&
+        _stricmp(missing_info.code_file.c_str(), "firefox.exe") != 0) {
+      is_exe = true;
+    }
+  }
+
+  if (!is_exe) {
+    msss_servers.insert(msss_servers.end(),
+                        options.no_exe_internal_msss_servers.begin(),
+                        options.no_exe_internal_msss_servers.end());
+  }
+
+  // If there are any suitable internal symbol servers, make a request.
+  MSSymbolServerConverter::LocateResult located =
+      MSSymbolServerConverter::LOCATE_FAILURE;
+  string converted_file;
+  if (msss_servers.size() > 0) {
+    // Attempt to fetch the symbol file and convert it.
+    FprintfFlush(stderr, "Making internal request for %s (%s)\n",
+                   missing_info.debug_file.c_str(),
+                   missing_info.debug_identifier.c_str());
+    MSSymbolServerConverter converter(options.local_cache_path, msss_servers);
+    located = converter.LocateAndConvertSymbolFile(missing_info,
+                                                   false,  // keep_symbol_file
+                                                   false,  // keep_pe_file
+                                                  & converted_file,
+                                                   NULL,   // symbol_file
+                                                   NULL);  // pe_file
+    switch (located) {
+      case MSSymbolServerConverter::LOCATE_SUCCESS:
+        FprintfFlush(stderr, "LocateResult = LOCATE_SUCCESS\n");
+        // Upload it.  Don't bother checking the return value.  If this
+        // succeeds, it should disappear from the missing symbol list.
+        // If it fails, something will print an error message indicating
+        // the cause of the failure, and the item will remain on the
+        // missing symbol list.
+        UploadSymbolFile(options.upload_symbols_url, missing_info,
+                         converted_file);
+        remove(converted_file.c_str());
+
+        // Note: this does leave some directories behind that could be
+        // cleaned up.  The directories inside options.local_cache_path for
+        // debug_file/debug_identifier can be removed at this point.
+        break;
+
+      case MSSymbolServerConverter::LOCATE_NOT_FOUND:
+        FprintfFlush(stderr, "LocateResult = LOCATE_NOT_FOUND\n");
+        // The symbol file definitively did not exist. Fall through,
+        // so we can attempt an external query if it's safe to do so.
+        break;
+
+      case MSSymbolServerConverter::LOCATE_RETRY:
+        FprintfFlush(stderr, "LocateResult = LOCATE_RETRY\n");
+        // Fall through in case we should make an external request.
+        // If not, or if an external request fails in the same way,
+        // we'll leave the entry in the symbol file list and
+        // try again on a future pass.  Print a message so that there's
+        // a record.
+        break;
+
+      case MSSymbolServerConverter::LOCATE_FAILURE:
+        FprintfFlush(stderr, "LocateResult = LOCATE_FAILURE\n");
+        // LocateAndConvertSymbolFile printed an error message.
+        break;
+
+      default:
+        FprintfFlush(
+            stderr,
+            "FATAL: Unexpected return value '%d' from "
+            "LocateAndConvertSymbolFile()\n",
+            located);
+        assert(0);
+        break;
+    }
+  } else {
+    // No suitable internal symbol servers.  This is fine because the converter
+    // is mainly used for downloading and converting of external symbols.
+  }
+
+  // Make a request to an external server if the internal request didn't
+  // succeed, and it's safe to do so.
+  if (located != MSSymbolServerConverter::LOCATE_SUCCESS &&
+      SafeToMakeExternalRequest(missing_info, options.blacklist_regex)) {
+    msss_servers = options.full_external_msss_servers;
+    if (!is_exe) {
+      msss_servers.insert(msss_servers.end(),
+                          options.no_exe_external_msss_servers.begin(),
+                          options.no_exe_external_msss_servers.end());
+    }
+    if (msss_servers.size() > 0) {
+      FprintfFlush(stderr, "Making external request for %s (%s)\n",
+                   missing_info.debug_file.c_str(),
+                   missing_info.debug_identifier.c_str());
+      MSSymbolServerConverter external_converter(options.local_cache_path,
+                                                 msss_servers);
+      located = external_converter.LocateAndConvertSymbolFile(
+          missing_info,
+          false,  // keep_symbol_file
+          false,  // keep_pe_file
+         & converted_file,
+          NULL,   // symbol_file
+          NULL);  // pe_file
+    } else {
+      FprintfFlush(stderr, "ERROR: No suitable external symbol servers.\n");
+    }
+  }
+
+  // Final handling for this symbol file is based on the result from the
+  // external request (if performed above), or on the result from the
+  // previous internal lookup.
+  switch (located) {
+    case MSSymbolServerConverter::LOCATE_SUCCESS:
+      FprintfFlush(stderr, "LocateResult = LOCATE_SUCCESS\n");
+      // Upload it.  Don't bother checking the return value.  If this
+      // succeeds, it should disappear from the missing symbol list.
+      // If it fails, something will print an error message indicating
+      // the cause of the failure, and the item will remain on the
+      // missing symbol list.
+      UploadSymbolFile(options.upload_symbols_url, missing_info,
+                       converted_file);
+      remove(converted_file.c_str());
+
+      // Note: this does leave some directories behind that could be
+      // cleaned up.  The directories inside options.local_cache_path for
+      // debug_file/debug_identifier can be removed at this point.
+      break;
+
+    case MSSymbolServerConverter::LOCATE_NOT_FOUND:
+      // The symbol file definitively didn't exist.  Inform the server.
+      // If this fails, something will print an error message indicating
+      // the cause of the failure, but there's really nothing more to
+      // do.  If this succeeds, the entry should be removed from the
+      // missing symbols list.
+      if (!options.report_fetch_failures) {
+        FprintfFlush(stderr, "SendFetchFailedPing skipped\n");
+      } else if (SendFetchFailedPing(options.fetch_symbol_failure_url,
+                                     missing_info)) {
+        FprintfFlush(stderr, "SendFetchFailedPing succeeded\n");
+      } else {
+        FprintfFlush(stderr, "SendFetchFailedPing failed\n");
+      }
+      break;
+
+    case MSSymbolServerConverter::LOCATE_RETRY:
+      FprintfFlush(stderr, "LocateResult = LOCATE_RETRY\n");
+      // Nothing to do but leave the entry in the symbol file list and
+      // try again on a future pass.  Print a message so that there's
+      // a record.
+      FprintfFlush(stderr, "ConvertMissingSymbolFile: deferring retry "
+                           "for %s %s %s\n",
+                   missing_info.debug_file.c_str(),
+                   missing_info.debug_identifier.c_str(),
+                   missing_info.version.c_str());
+      break;
+
+    case MSSymbolServerConverter::LOCATE_FAILURE:
+      FprintfFlush(stderr, "LocateResult = LOCATE_FAILURE\n");
+      // LocateAndConvertSymbolFile printed an error message.
+
+      // This is due to a bad debug file name, so fetch failed.
+      if (!options.report_fetch_failures) {
+        FprintfFlush(stderr, "SendFetchFailedPing skipped\n");
+      } else if (SendFetchFailedPing(options.fetch_symbol_failure_url,
+                                     missing_info)) {
+        FprintfFlush(stderr, "SendFetchFailedPing succeeded\n");
+      } else {
+        FprintfFlush(stderr, "SendFetchFailedPing failed\n");
+      }
+      break;
+
+    default:
+      FprintfFlush(
+          stderr,
+          "FATAL: Unexpected return value '%d' from "
+          "LocateAndConvertSymbolFile()\n",
+          located);
+      assert(0);
+      break;
+  }
+}
+
+
+// Reads the contents of file |file_name| and populates |contents|.
+// Returns true on success.
+static bool ReadFile(string file_name, string* contents) {
+  char buffer[1024 * 8];
+  FILE* fp = fopen(file_name.c_str(), "rt");
+  if (!fp) {
+    return false;
+  }
+  contents->clear();
+  while (fgets(buffer, sizeof(buffer), fp) != NULL) {
+    contents->append(buffer);
+  }
+  fclose(fp);
+  return true;
+}
+
+// ConvertMissingSymbolsList obtains a missing symbol list from
+// |options.missing_symbols_url| or |options.missing_symbols_file| and calls
+// ConvertMissingSymbolFile for each missing symbol file in the list.
+static bool ConvertMissingSymbolsList(const ConverterOptions& options) {
+  // Set param to indicate requesting for encoded response.
+  map<wstring, wstring> parameters;
+  parameters[L"product"] = L"WinSymConv";
+  parameters[L"encoded"] = L"true";
+  // Get the missing symbol list.
+  string missing_symbol_list;
+  if (!options.missing_symbols_file.empty()) {
+    if (!ReadFile(options.missing_symbols_file,& missing_symbol_list)) {
+      return false;
+    }
+  } else if (!HTTPDownload::Download(options.missing_symbols_url,& parameters,
+                                    & missing_symbol_list, NULL)) {
+    return false;
+  }
+
+  // Tokenize the content into a vector.
+  vector<string> missing_symbol_lines;
+  Tokenizer::Tokenize("\n", missing_symbol_list,& missing_symbol_lines);
+
+  FprintfFlush(stderr, "Found %d missing symbol files in list.\n",
+               missing_symbol_lines.size() - 1);  // last line is empty.
+  int convert_attempts = 0;
+  for (vector<string>::const_iterator iterator = missing_symbol_lines.begin();
+       iterator != missing_symbol_lines.end();
+       ++iterator) {
+    // Decode symbol line.
+    const string& encoded_line = *iterator;
+    // Skip lines that are blank.
+    if (encoded_line.empty()) {
+      continue;
+    }
+
+    string line;
+    if (!WebSafeBase64Unescape(encoded_line,& line)) {
+      // If decoding fails, assume the line is not encoded.
+      // This is helpful when the program connects to a debug server without
+      // encoding.
+      line = encoded_line;
+    }
+
+    FprintfFlush(stderr, "\nLine: %s\n", line.c_str());
+
+    // Turn each element into a MissingSymbolInfo structure.
+    MissingSymbolInfo missing_info;
+    if (!ParseMissingString(line,& missing_info)) {
+      FprintfFlush(stderr, "ConvertMissingSymbols: ParseMissingString failed "
+                           "for %s from %ws\n",
+                   line.c_str(), options.missing_symbols_url.c_str());
+      continue;
+    }
+
+    ++convert_attempts;
+    ConvertMissingSymbolFile(missing_info, options);
+  }
+
+  // Say something reassuring, since ConvertMissingSymbolFile was never called
+  // and therefore never reported any progress.
+  if (convert_attempts == 0) {
+    string current_time = CurrentDateAndTime();
+    FprintfFlush(stdout, "converter: %s: nothing to convert\n",
+                 current_time.c_str());
+  }
+
+  return true;
+}
+
+// usage prints the usage message.  It returns 1 as a convenience, to be used
+// as a return value from main.
+static int usage(const char* program_name) {
+  FprintfFlush(stderr,
+      "usage: %s [options]\n"
+      "    -f  <full_msss_server>     MS servers to ask for all symbols\n"
+      "    -n  <no_exe_msss_server>   same, but prevent asking for EXEs\n"
+      "    -l  <local_cache_path>     Temporary local storage for symbols\n"
+      "    -s  <upload_url>           URL for uploading symbols\n"
+      "    -m  <missing_symbols_url>  URL to fetch list of missing symbols\n"
+      "    -mf <missing_symbols_file> File containing the list of missing\n"
+      "                               symbols.  Fetch failures are not\n"
+      "                               reported if such file is provided.\n"
+      "    -t  <fetch_failure_url>    URL to report symbol fetch failure\n"
+      "    -b  <regex>                Regex used to blacklist files to\n"
+      "                               prevent external symbol requests\n"
+      " Note that any server specified by -f or -n that starts with \\filer\n"
+      " will be treated as internal, and all others as external.\n",
+      program_name);
+
+  return 1;
+}
+
+// "Internal" servers consist only of those whose names start with
+// the literal string "\\filer\".
+static bool IsInternalServer(const string& server_name) {
+  if (server_name.find("\\\\filer\\") == 0) {
+    return true;
+  }
+  return false;
+}
+
+// Adds a server with the given name to the list of internal or external
+// servers, as appropriate.
+static void AddServer(const string& server_name,
+                      vector<string>* internal_servers,
+                      vector<string>* external_servers) {
+  if (IsInternalServer(server_name)) {
+    internal_servers->push_back(server_name);
+  } else {
+    external_servers->push_back(server_name);
+  }
+}
+
+}  // namespace
+
+int main(int argc, char** argv) {
+  string time_string = CurrentDateAndTime();
+  FprintfFlush(stdout, "converter: %s: starting\n", time_string.c_str());
+
+  ConverterOptions options;
+  options.report_fetch_failures = true;
+
+  // All arguments are paired.
+  if (argc % 2 != 1) {
+    return usage(argv[0]);
+  }
+
+  string blacklist_regex_str;
+  bool have_any_msss_servers = false;
+  for (int argi = 1; argi < argc; argi += 2) {
+    string option = argv[argi];
+    string value = argv[argi + 1];
+
+    if (option == "-f") {
+      AddServer(value,& options.full_internal_msss_servers,
+               & options.full_external_msss_servers);
+      have_any_msss_servers = true;
+    } else if (option == "-n") {
+      AddServer(value,& options.no_exe_internal_msss_servers,
+               & options.no_exe_external_msss_servers);
+      have_any_msss_servers = true;
+    } else if (option == "-l") {
+      if (!options.local_cache_path.empty()) {
+        return usage(argv[0]);
+      }
+      options.local_cache_path = value;
+    } else if (option == "-s") {
+      if (!WindowsStringUtils::safe_mbstowcs(value,
+                                            & options.upload_symbols_url)) {
+        FprintfFlush(stderr, "main: safe_mbstowcs failed for %s\n",
+                     value.c_str());
+        return 1;
+      }
+    } else if (option == "-m") {
+      if (!WindowsStringUtils::safe_mbstowcs(value,
+                                            & options.missing_symbols_url)) {
+        FprintfFlush(stderr, "main: safe_mbstowcs failed for %s\n",
+                     value.c_str());
+        return 1;
+      }
+    } else if (option == "-mf") {
+      options.missing_symbols_file = value;
+      printf("Getting the list of missing symbols from a file.  Fetch failures"
+             " will not be reported.\n");
+      options.report_fetch_failures = false;
+    } else if (option == "-t") {
+      if (!WindowsStringUtils::safe_mbstowcs(
+          value,
+         & options.fetch_symbol_failure_url)) {
+        FprintfFlush(stderr, "main: safe_mbstowcs failed for %s\n",
+                     value.c_str());
+        return 1;
+      }
+    } else if (option == "-b") {
+      blacklist_regex_str = value;
+    } else {
+      return usage(argv[0]);
+    }
+  }
+
+  if (blacklist_regex_str.empty()) {
+    FprintfFlush(stderr, "No blacklist specified.\n");
+    return usage(argv[0]);
+  }
+
+  // Compile the blacklist regular expression for later use.
+  options.blacklist_regex = std::regex(blacklist_regex_str.c_str(),
+      std::regex_constants::icase);
+
+  // Set the defaults.  If the user specified any MSSS servers, don't use
+  // any default.
+  if (!have_any_msss_servers) {
+    AddServer(kNoExeMSSSServer,& options.no_exe_internal_msss_servers,
+       & options.no_exe_external_msss_servers);
+  }
+
+  if (options.local_cache_path.empty()) {
+    options.local_cache_path = kLocalCachePath;
+  }
+
+  if (options.upload_symbols_url.empty()) {
+    FprintfFlush(stderr, "No upload symbols URL specified.\n");
+    return usage(argv[0]);
+  }
+  if (options.missing_symbols_url.empty() &&
+      options.missing_symbols_file.empty()) {
+    FprintfFlush(stderr, "No missing symbols URL or file specified.\n");
+    return usage(argv[0]);
+  }
+  if (options.fetch_symbol_failure_url.empty()) {
+    FprintfFlush(stderr, "No fetch symbol failure URL specified.\n");
+    return usage(argv[0]);
+  }
+
+  FprintfFlush(stdout,
+               "# of Symbol Servers (int/ext): %d/%d full, %d/%d no_exe\n",
+               options.full_internal_msss_servers.size(),
+               options.full_external_msss_servers.size(),
+               options.no_exe_internal_msss_servers.size(),
+               options.no_exe_external_msss_servers.size());
+
+  if (!ConvertMissingSymbolsList(options)) {
+    return 1;
+  }
+
+  time_string = CurrentDateAndTime();
+  FprintfFlush(stdout, "converter: %s: finished\n", time_string.c_str());
+  return 0;
+}
diff --git a/src/tools/windows/converter_exe/converter.gyp b/src/tools/windows/converter_exe/converter.gyp
new file mode 100644
index 0000000..fe443d1
--- /dev/null
+++ b/src/tools/windows/converter_exe/converter.gyp
@@ -0,0 +1,57 @@
+# Copyright 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'converter_exe',
+      'type': 'executable',
+      'sources': [
+        'converter.cc',
+        'escaping.cc',
+        'escaping.h',
+        'http_client.h',
+        'http_download.cc',
+        'http_download.h',
+        'tokenizer.cc',
+        'tokenizer.h',
+        'winhttp_client.cc',
+        'winhttp_client.h',
+        'wininet_client.cc',
+        'wininet_client.h',
+      ],
+      'dependencies': [
+        '../../../common/windows/common_windows.gyp:common_windows_lib',
+        '../converter/ms_symbol_server_converter.gyp:ms_symbol_server_converter',
+      ],
+    },
+  ],
+}
diff --git a/src/tools/windows/converter_exe/escaping.cc b/src/tools/windows/converter_exe/escaping.cc
new file mode 100644
index 0000000..74a7203
--- /dev/null
+++ b/src/tools/windows/converter_exe/escaping.cc
@@ -0,0 +1,757 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "tools/windows/converter_exe/escaping.h"
+
+#include <assert.h>
+
+#define kApb kAsciiPropertyBits
+
+const unsigned char kAsciiPropertyBits[256] = {
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,  // 0x00
+  0x40, 0x68, 0x48, 0x48, 0x48, 0x48, 0x40, 0x40,
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,  // 0x10
+  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+  0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,  // 0x20
+  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+  0x84, 0x84, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
+  0x10, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x05,  // 0x40
+  0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+  0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,  // 0x50
+  0x05, 0x05, 0x05, 0x10, 0x10, 0x10, 0x10, 0x10,
+  0x10, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x05,  // 0x60
+  0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+  0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,  // 0x70
+  0x05, 0x05, 0x05, 0x10, 0x10, 0x10, 0x10, 0x40,
+};
+
+// Use !! to suppress the warning C4800 of forcing 'int' to 'bool'.
+static inline bool ascii_isspace(unsigned char c) { return !!(kApb[c] & 0x08); }
+
+///////////////////////////////////
+// scoped_array
+///////////////////////////////////
+// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate
+// with new [] and the destructor deletes objects with delete [].
+//
+// As with scoped_ptr<C>, a scoped_array<C> either points to an object
+// or is NULL.  A scoped_array<C> owns the object that it points to.
+// scoped_array<T> is thread-compatible, and once you index into it,
+// the returned objects have only the threadsafety guarantees of T.
+//
+// Size: sizeof(scoped_array<C>) == sizeof(C*)
+template <class C>
+class scoped_array {
+ public:
+
+  // The element type
+  typedef C element_type;
+
+  // Constructor.  Defaults to intializing with NULL.
+  // There is no way to create an uninitialized scoped_array.
+  // The input parameter must be allocated with new [].
+  explicit scoped_array(C* p = NULL) : array_(p) { }
+
+  // Destructor.  If there is a C object, delete it.
+  // We don't need to test ptr_ == NULL because C++ does that for us.
+  ~scoped_array() {
+    enum { type_must_be_complete = sizeof(C) };
+    delete[] array_;
+  }
+
+  // Reset.  Deletes the current owned object, if any.
+  // Then takes ownership of a new object, if given.
+  // this->reset(this->get()) works.
+  void reset(C* p = NULL) {
+    if (p != array_) {
+      enum { type_must_be_complete = sizeof(C) };
+      delete[] array_;
+      array_ = p;
+    }
+  }
+
+  // Get one element of the current object.
+  // Will assert() if there is no current object, or index i is negative.
+  C& operator[](std::ptrdiff_t i) const {
+    assert(i >= 0);
+    assert(array_ != NULL);
+    return array_[i];
+  }
+
+  // Get a pointer to the zeroth element of the current object.
+  // If there is no current object, return NULL.
+  C* get() const {
+    return array_;
+  }
+
+  // Comparison operators.
+  // These return whether a scoped_array and a raw pointer refer to
+  // the same array, not just to two different but equal arrays.
+  bool operator==(const C* p) const { return array_ == p; }
+  bool operator!=(const C* p) const { return array_ != p; }
+
+  // Swap two scoped arrays.
+  void swap(scoped_array& p2) {
+    C* tmp = array_;
+    array_ = p2.array_;
+    p2.array_ = tmp;
+  }
+
+  // Release an array.
+  // The return value is the current pointer held by this object.
+  // If this object holds a NULL pointer, the return value is NULL.
+  // After this operation, this object will hold a NULL pointer,
+  // and will not own the object any more.
+  C* release() {
+    C* retVal = array_;
+    array_ = NULL;
+    return retVal;
+  }
+
+ private:
+  C* array_;
+
+  // Forbid comparison of different scoped_array types.
+  template <class C2> bool operator==(scoped_array<C2> const& p2) const;
+  template <class C2> bool operator!=(scoped_array<C2> const& p2) const;
+
+  // Disallow evil constructors
+  scoped_array(const scoped_array&);
+  void operator=(const scoped_array&);
+};
+
+
+///////////////////////////////////
+// Escape methods
+///////////////////////////////////
+
+namespace strings {
+
+// Return a mutable char* pointing to a string's internal buffer,
+// which may not be null-terminated. Writing through this pointer will
+// modify the string.
+//
+// string_as_array(&str)[i] is valid for 0 <= i < str.size() until the
+// next call to a string method that invalidates iterators.
+//
+// As of 2006-04, there is no standard-blessed way of getting a
+// mutable reference to a string's internal buffer. However, issue 530
+// (http://www.open-std.org/JTC1/SC22/WG21/docs/lwg-active.html#530)
+// proposes this as the method. According to Matt Austern, this should
+// already work on all current implementations.
+inline char* string_as_array(string* str) {
+  // DO NOT USE const_cast<char*>(str->data())! See the unittest for why.
+  return str->empty() ? NULL : &*str->begin();
+}
+
+int CalculateBase64EscapedLen(int input_len, bool do_padding) {
+  // these formulae were copied from comments that used to go with the base64
+  // encoding functions
+  int intermediate_result = 8 * input_len + 5;
+  assert(intermediate_result > 0);     // make sure we didn't overflow
+  int len = intermediate_result / 6;
+  if (do_padding) len = ((len + 3) / 4) * 4;
+  return len;
+}
+
+// Base64Escape does padding, so this calculation includes padding.
+int CalculateBase64EscapedLen(int input_len) {
+  return CalculateBase64EscapedLen(input_len, true);
+}
+
+// ----------------------------------------------------------------------
+// int Base64Unescape() - base64 decoder
+// int Base64Escape() - base64 encoder
+// int WebSafeBase64Unescape() - Google's variation of base64 decoder
+// int WebSafeBase64Escape() - Google's variation of base64 encoder
+//
+// Check out
+// http://www.cis.ohio-state.edu/htbin/rfc/rfc2045.html for formal
+// description, but what we care about is that...
+//   Take the encoded stuff in groups of 4 characters and turn each
+//   character into a code 0 to 63 thus:
+//           A-Z map to 0 to 25
+//           a-z map to 26 to 51
+//           0-9 map to 52 to 61
+//           +(- for WebSafe) maps to 62
+//           /(_ for WebSafe) maps to 63
+//   There will be four numbers, all less than 64 which can be represented
+//   by a 6 digit binary number (aaaaaa, bbbbbb, cccccc, dddddd respectively).
+//   Arrange the 6 digit binary numbers into three bytes as such:
+//   aaaaaabb bbbbcccc ccdddddd
+//   Equals signs (one or two) are used at the end of the encoded block to
+//   indicate that the text was not an integer multiple of three bytes long.
+// ----------------------------------------------------------------------
+
+int Base64UnescapeInternal(const char *src, int szsrc,
+                           char *dest, int szdest,
+                           const signed char* unbase64) {
+  static const char kPad64 = '=';
+
+  int decode = 0;
+  int destidx = 0;
+  int state = 0;
+  unsigned int ch = 0;
+  unsigned int temp = 0;
+
+  // The GET_INPUT macro gets the next input character, skipping
+  // over any whitespace, and stopping when we reach the end of the
+  // string or when we read any non-data character.  The arguments are
+  // an arbitrary identifier (used as a label for goto) and the number
+  // of data bytes that must remain in the input to avoid aborting the
+  // loop.
+#define GET_INPUT(label, remain)                 \
+  label:                                         \
+    --szsrc;                                     \
+    ch = *src++;                                 \
+    decode = unbase64[ch];                       \
+    if (decode < 0) {                            \
+      if (ascii_isspace((char)ch) && szsrc >= remain)  \
+        goto label;                              \
+      state = 4 - remain;                        \
+      break;                                     \
+    }
+
+  // if dest is null, we're just checking to see if it's legal input
+  // rather than producing output.  (I suspect this could just be done
+  // with a regexp...).  We duplicate the loop so this test can be
+  // outside it instead of in every iteration.
+
+  if (dest) {
+    // This loop consumes 4 input bytes and produces 3 output bytes
+    // per iteration.  We can't know at the start that there is enough
+    // data left in the string for a full iteration, so the loop may
+    // break out in the middle; if so 'state' will be set to the
+    // number of input bytes read.
+
+    while (szsrc >= 4)  {
+      // We'll start by optimistically assuming that the next four
+      // bytes of the string (src[0..3]) are four good data bytes
+      // (that is, no nulls, whitespace, padding chars, or illegal
+      // chars).  We need to test src[0..2] for nulls individually
+      // before constructing temp to preserve the property that we
+      // never read past a null in the string (no matter how long
+      // szsrc claims the string is).
+
+      if (!src[0] || !src[1] || !src[2] ||
+          (temp = ((unbase64[static_cast<int>(src[0])] << 18) |
+                   (unbase64[static_cast<int>(src[1])] << 12) |
+                   (unbase64[static_cast<int>(src[2])] << 6) |
+                   (unbase64[static_cast<int>(src[3])]))) & 0x80000000) {
+        // Iff any of those four characters was bad (null, illegal,
+        // whitespace, padding), then temp's high bit will be set
+        // (because unbase64[] is -1 for all bad characters).
+        //
+        // We'll back up and resort to the slower decoder, which knows
+        // how to handle those cases.
+
+        GET_INPUT(first, 4);
+        temp = decode;
+        GET_INPUT(second, 3);
+        temp = (temp << 6) | decode;
+        GET_INPUT(third, 2);
+        temp = (temp << 6) | decode;
+        GET_INPUT(fourth, 1);
+        temp = (temp << 6) | decode;
+      } else {
+        // We really did have four good data bytes, so advance four
+        // characters in the string.
+
+        szsrc -= 4;
+        src += 4;
+        decode = -1;
+        ch = '\0';
+      }
+
+      // temp has 24 bits of input, so write that out as three bytes.
+
+      if (destidx+3 > szdest) return -1;
+      dest[destidx+2] = (char)temp;
+      temp >>= 8;
+      dest[destidx+1] = (char)temp;
+      temp >>= 8;
+      dest[destidx] = (char)temp;
+      destidx += 3;
+    }
+  } else {
+    while (szsrc >= 4)  {
+      if (!src[0] || !src[1] || !src[2] ||
+          (temp = ((unbase64[static_cast<int>(src[0])] << 18) |
+                   (unbase64[static_cast<int>(src[1])] << 12) |
+                   (unbase64[static_cast<int>(src[2])] << 6) |
+                   (unbase64[static_cast<int>(src[3])]))) & 0x80000000) {
+        GET_INPUT(first_no_dest, 4);
+        GET_INPUT(second_no_dest, 3);
+        GET_INPUT(third_no_dest, 2);
+        GET_INPUT(fourth_no_dest, 1);
+      } else {
+        szsrc -= 4;
+        src += 4;
+        decode = -1;
+        ch = '\0';
+      }
+      destidx += 3;
+    }
+  }
+
+#undef GET_INPUT
+
+  // if the loop terminated because we read a bad character, return
+  // now.
+  if (decode < 0 && ch != '\0' && ch != kPad64 && !ascii_isspace((char)ch))
+    return -1;
+
+  if (ch == kPad64) {
+    // if we stopped by hitting an '=', un-read that character -- we'll
+    // look at it again when we count to check for the proper number of
+    // equals signs at the end.
+    ++szsrc;
+    --src;
+  } else {
+    // This loop consumes 1 input byte per iteration.  It's used to
+    // clean up the 0-3 input bytes remaining when the first, faster
+    // loop finishes.  'temp' contains the data from 'state' input
+    // characters read by the first loop.
+    while (szsrc > 0)  {
+      --szsrc;
+      ch = *src++;
+      decode = unbase64[ch];
+      if (decode < 0) {
+        if (ascii_isspace((char)ch)) {
+          continue;
+        } else if (ch == '\0') {
+          break;
+        } else if (ch == kPad64) {
+          // back up one character; we'll read it again when we check
+          // for the correct number of equals signs at the end.
+          ++szsrc;
+          --src;
+          break;
+        } else {
+          return -1;
+        }
+      }
+
+      // Each input character gives us six bits of output.
+      temp = (temp << 6) | decode;
+      ++state;
+      if (state == 4) {
+        // If we've accumulated 24 bits of output, write that out as
+        // three bytes.
+        if (dest) {
+          if (destidx+3 > szdest) return -1;
+          dest[destidx+2] = (char)temp;
+          temp >>= 8;
+          dest[destidx+1] = (char)temp;
+          temp >>= 8;
+          dest[destidx] = (char)temp;
+        }
+        destidx += 3;
+        state = 0;
+        temp = 0;
+      }
+    }
+  }
+
+  // Process the leftover data contained in 'temp' at the end of the input.
+  int expected_equals = 0;
+  switch (state) {
+    case 0:
+      // Nothing left over; output is a multiple of 3 bytes.
+      break;
+
+    case 1:
+      // Bad input; we have 6 bits left over.
+      return -1;
+
+    case 2:
+      // Produce one more output byte from the 12 input bits we have left.
+      if (dest) {
+        if (destidx+1 > szdest) return -1;
+        temp >>= 4;
+        dest[destidx] = (char)temp;
+      }
+      ++destidx;
+      expected_equals = 2;
+      break;
+
+    case 3:
+      // Produce two more output bytes from the 18 input bits we have left.
+      if (dest) {
+        if (destidx+2 > szdest) return -1;
+        temp >>= 2;
+        dest[destidx+1] = (char)temp;
+        temp >>= 8;
+        dest[destidx] = (char)temp;
+      }
+      destidx += 2;
+      expected_equals = 1;
+      break;
+
+    default:
+      // state should have no other values at this point.
+      fprintf(stdout, "This can't happen; base64 decoder state = %d", state);
+  }
+
+  // The remainder of the string should be all whitespace, mixed with
+  // exactly 0 equals signs, or exactly 'expected_equals' equals
+  // signs.  (Always accepting 0 equals signs is a google extension
+  // not covered in the RFC.)
+
+  int equals = 0;
+  while (szsrc > 0 && *src) {
+    if (*src == kPad64)
+      ++equals;
+    else if (!ascii_isspace(*src))
+      return -1;
+    --szsrc;
+    ++src;
+  }
+
+  return (equals == 0 || equals == expected_equals) ? destidx : -1;
+}
+
+int Base64Unescape(const char *src, int szsrc, char *dest, int szdest) {
+  static const signed char UnBase64[] = {
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      62/*+*/, -1,      -1,      -1,      63/*/ */,
+     52/*0*/, 53/*1*/, 54/*2*/, 55/*3*/, 56/*4*/, 57/*5*/, 58/*6*/, 59/*7*/,
+     60/*8*/, 61/*9*/, -1,      -1,      -1,      -1,      -1,      -1,
+     -1,       0/*A*/,  1/*B*/,  2/*C*/,  3/*D*/,  4/*E*/,  5/*F*/,  6/*G*/,
+      7/*H*/,  8/*I*/,  9/*J*/, 10/*K*/, 11/*L*/, 12/*M*/, 13/*N*/, 14/*O*/,
+     15/*P*/, 16/*Q*/, 17/*R*/, 18/*S*/, 19/*T*/, 20/*U*/, 21/*V*/, 22/*W*/,
+     23/*X*/, 24/*Y*/, 25/*Z*/, -1,      -1,      -1,      -1,      -1,
+     -1,      26/*a*/, 27/*b*/, 28/*c*/, 29/*d*/, 30/*e*/, 31/*f*/, 32/*g*/,
+     33/*h*/, 34/*i*/, 35/*j*/, 36/*k*/, 37/*l*/, 38/*m*/, 39/*n*/, 40/*o*/,
+     41/*p*/, 42/*q*/, 43/*r*/, 44/*s*/, 45/*t*/, 46/*u*/, 47/*v*/, 48/*w*/,
+     49/*x*/, 50/*y*/, 51/*z*/, -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1
+  };
+  // The above array was generated by the following code
+  // #include <sys/time.h>
+  // #include <stdlib.h>
+  // #include <string.h>
+  // main()
+  // {
+  //   static const char Base64[] =
+  //     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+  //   char *pos;
+  //   int idx, i, j;
+  //   printf("    ");
+  //   for (i = 0; i < 255; i += 8) {
+  //     for (j = i; j < i + 8; j++) {
+  //       pos = strchr(Base64, j);
+  //       if ((pos == NULL) || (j == 0))
+  //         idx = -1;
+  //       else
+  //         idx = pos - Base64;
+  //       if (idx == -1)
+  //         printf(" %2d,     ", idx);
+  //       else
+  //         printf(" %2d/*%c*/,", idx, j);
+  //     }
+  //     printf("\n    ");
+  //   }
+  // }
+
+  return Base64UnescapeInternal(src, szsrc, dest, szdest, UnBase64);
+}
+
+bool Base64Unescape(const char *src, int slen, string* dest) {
+  // Determine the size of the output string.  Base64 encodes every 3 bytes into
+  // 4 characters.  any leftover chars are added directly for good measure.
+  // This is documented in the base64 RFC: http://www.ietf.org/rfc/rfc3548.txt
+  const int dest_len = 3 * (slen / 4) + (slen % 4);
+
+  dest->resize(dest_len);
+
+  // We are getting the destination buffer by getting the beginning of the
+  // string and converting it into a char *.
+  const int len = Base64Unescape(src, slen,
+                                 string_as_array(dest), dest->size());
+  if (len < 0) {
+    return false;
+  }
+
+  // could be shorter if there was padding
+  assert(len <= dest_len);
+  dest->resize(len);
+
+  return true;
+}
+
+// Base64Escape
+//
+// NOTE: We have to use an unsigned type for src because code built
+// in the the /google tree treats characters as signed unless
+// otherwised specified.
+//
+// TODO(who?): Move this function to use the char* type for "src"
+int Base64EscapeInternal(const unsigned char *src, int szsrc,
+                         char *dest, int szdest, const char *base64,
+                         bool do_padding) {
+  static const char kPad64 = '=';
+
+  if (szsrc <= 0) return 0;
+
+  char *cur_dest = dest;
+  const unsigned char *cur_src = src;
+
+  // Three bytes of data encodes to four characters of cyphertext.
+  // So we can pump through three-byte chunks atomically.
+  while (szsrc > 2) { /* keep going until we have less than 24 bits */
+    if ((szdest -= 4) < 0) return 0;
+    cur_dest[0] = base64[cur_src[0] >> 2];
+    cur_dest[1] = base64[((cur_src[0] & 0x03) << 4) + (cur_src[1] >> 4)];
+    cur_dest[2] = base64[((cur_src[1] & 0x0f) << 2) + (cur_src[2] >> 6)];
+    cur_dest[3] = base64[cur_src[2] & 0x3f];
+
+    cur_dest += 4;
+    cur_src += 3;
+    szsrc -= 3;
+  }
+
+  /* now deal with the tail (<=2 bytes) */
+  switch (szsrc) {
+    case 0:
+      // Nothing left; nothing more to do.
+      break;
+    case 1:
+      // One byte left: this encodes to two characters, and (optionally)
+      // two pad characters to round out the four-character cypherblock.
+      if ((szdest -= 2) < 0) return 0;
+      cur_dest[0] = base64[cur_src[0] >> 2];
+      cur_dest[1] = base64[(cur_src[0] & 0x03) << 4];
+      cur_dest += 2;
+      if (do_padding) {
+        if ((szdest -= 2) < 0) return 0;
+        cur_dest[0] = kPad64;
+        cur_dest[1] = kPad64;
+        cur_dest += 2;
+      }
+      break;
+    case 2:
+      // Two bytes left: this encodes to three characters, and (optionally)
+      // one pad character to round out the four-character cypherblock.
+      if ((szdest -= 3) < 0) return 0;
+      cur_dest[0] = base64[cur_src[0] >> 2];
+      cur_dest[1] = base64[((cur_src[0] & 0x03) << 4) + (cur_src[1] >> 4)];
+      cur_dest[2] = base64[(cur_src[1] & 0x0f) << 2];
+      cur_dest += 3;
+      if (do_padding) {
+        if ((szdest -= 1) < 0) return 0;
+        cur_dest[0] = kPad64;
+        cur_dest += 1;
+      }
+      break;
+    default:
+      // Should not be reached: blocks of 3 bytes are handled
+      // in the while loop before this switch statement.
+      fprintf(stderr, "Logic problem? szsrc = %d",  szsrc);
+      assert(false);
+      break;
+  }
+  return (cur_dest - dest);
+}
+
+static const char kBase64Chars[] =
+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+static const char kWebSafeBase64Chars[] =
+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
+
+int Base64Escape(const unsigned char *src, int szsrc, char *dest, int szdest) {
+  return Base64EscapeInternal(src, szsrc, dest, szdest, kBase64Chars, true);
+}
+
+void Base64Escape(const unsigned char *src, int szsrc,
+                  string* dest, bool do_padding) {
+  const int max_escaped_size =
+    CalculateBase64EscapedLen(szsrc, do_padding);
+  dest->clear();
+  dest->resize(max_escaped_size + 1, '\0');
+  const int escaped_len = Base64EscapeInternal(src, szsrc,
+                                               &*dest->begin(), dest->size(),
+                                               kBase64Chars,
+                                               do_padding);
+  assert(max_escaped_size <= escaped_len);
+  dest->resize(escaped_len);
+}
+
+void Base64Escape(const string& src, string* dest) {
+  Base64Escape(reinterpret_cast<const unsigned char*>(src.c_str()),
+               src.size(), dest, true);
+}
+
+////////////////////////////////////////////////////
+// WebSafe methods
+////////////////////////////////////////////////////
+
+int WebSafeBase64Unescape(const char *src, int szsrc, char *dest, int szdest) {
+  static const signed char UnBase64[] = {
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      62/*-*/, -1,      -1,
+     52/*0*/, 53/*1*/, 54/*2*/, 55/*3*/, 56/*4*/, 57/*5*/, 58/*6*/, 59/*7*/,
+     60/*8*/, 61/*9*/, -1,      -1,      -1,      -1,      -1,      -1,
+     -1,       0/*A*/,  1/*B*/,  2/*C*/,  3/*D*/,  4/*E*/,  5/*F*/,  6/*G*/,
+      7/*H*/,  8/*I*/,  9/*J*/, 10/*K*/, 11/*L*/, 12/*M*/, 13/*N*/, 14/*O*/,
+     15/*P*/, 16/*Q*/, 17/*R*/, 18/*S*/, 19/*T*/, 20/*U*/, 21/*V*/, 22/*W*/,
+     23/*X*/, 24/*Y*/, 25/*Z*/, -1,      -1,      -1,      -1,      63/*_*/,
+     -1,      26/*a*/, 27/*b*/, 28/*c*/, 29/*d*/, 30/*e*/, 31/*f*/, 32/*g*/,
+     33/*h*/, 34/*i*/, 35/*j*/, 36/*k*/, 37/*l*/, 38/*m*/, 39/*n*/, 40/*o*/,
+     41/*p*/, 42/*q*/, 43/*r*/, 44/*s*/, 45/*t*/, 46/*u*/, 47/*v*/, 48/*w*/,
+     49/*x*/, 50/*y*/, 51/*z*/, -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1,
+     -1,      -1,      -1,      -1,      -1,      -1,      -1,      -1
+  };
+  // The above array was generated by the following code
+  // #include <sys/time.h>
+  // #include <stdlib.h>
+  // #include <string.h>
+  // main()
+  // {
+  //   static const char Base64[] =
+  //     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
+  //   char *pos;
+  //   int idx, i, j;
+  //   printf("    ");
+  //   for (i = 0; i < 255; i += 8) {
+  //     for (j = i; j < i + 8; j++) {
+  //       pos = strchr(Base64, j);
+  //       if ((pos == NULL) || (j == 0))
+  //         idx = -1;
+  //       else
+  //         idx = pos - Base64;
+  //       if (idx == -1)
+  //         printf(" %2d,     ", idx);
+  //       else
+  //         printf(" %2d/*%c*/,", idx, j);
+  //     }
+  //     printf("\n    ");
+  //   }
+  // }
+
+  return Base64UnescapeInternal(src, szsrc, dest, szdest, UnBase64);
+}
+
+bool WebSafeBase64Unescape(const char *src, int slen, string* dest) {
+  int dest_len = 3 * (slen / 4) + (slen % 4);
+  dest->clear();
+  dest->resize(dest_len);
+  int len = WebSafeBase64Unescape(src, slen, &*dest->begin(), dest->size());
+  if (len < 0) {
+    dest->clear();
+    return false;
+  }
+  // could be shorter if there was padding
+  assert(len <= dest_len);
+  dest->resize(len);
+  return true;
+}
+
+bool WebSafeBase64Unescape(const string& src, string* dest) {
+  return WebSafeBase64Unescape(src.data(), src.size(), dest);
+}
+
+int WebSafeBase64Escape(const unsigned char *src, int szsrc, char *dest,
+                        int szdest, bool do_padding) {
+  return Base64EscapeInternal(src, szsrc, dest, szdest,
+                              kWebSafeBase64Chars, do_padding);
+}
+
+void WebSafeBase64Escape(const unsigned char *src, int szsrc,
+                         string *dest, bool do_padding) {
+  const int max_escaped_size =
+    CalculateBase64EscapedLen(szsrc, do_padding);
+  dest->clear();
+  dest->resize(max_escaped_size + 1, '\0');
+  const int escaped_len = Base64EscapeInternal(src, szsrc,
+                                               &*dest->begin(), dest->size(),
+                                               kWebSafeBase64Chars,
+                                               do_padding);
+  assert(max_escaped_size <= escaped_len);
+  dest->resize(escaped_len);
+}
+
+void WebSafeBase64EscapeInternal(const string& src,
+                                 string* dest,
+                                 bool do_padding) {
+  int encoded_len = CalculateBase64EscapedLen(src.size());
+  scoped_array<char> buf(new char[encoded_len]);
+  int len = WebSafeBase64Escape(reinterpret_cast<const unsigned char*>(src.c_str()),
+                                src.size(), buf.get(),
+                                encoded_len, do_padding);
+  dest->assign(buf.get(), len);
+}
+
+void WebSafeBase64Escape(const string& src, string* dest) {
+  WebSafeBase64EscapeInternal(src, dest, false);
+}
+
+void WebSafeBase64EscapeWithPadding(const string& src, string* dest) {
+  WebSafeBase64EscapeInternal(src, dest, true);
+}
+
+}  // namespace strings
diff --git a/src/tools/windows/converter_exe/escaping.h b/src/tools/windows/converter_exe/escaping.h
new file mode 100644
index 0000000..c8aa90b
--- /dev/null
+++ b/src/tools/windows/converter_exe/escaping.h
@@ -0,0 +1,99 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Base64 escaping methods to encode/decode strings.
+
+#ifndef TOOLS_WINDOWS_CONVERTER_EXE_ESCAPING_H_
+#define TOOLS_WINDOWS_CONVERTER_EXE_ESCAPING_H_
+
+#include <string>
+
+namespace strings {
+
+using std::string;
+
+// ----------------------------------------------------------------------
+// Base64Escape()
+// WebSafeBase64Escape()
+//    Encode "src" to "dest" using base64 encoding.
+//    src is not null terminated, instead specify len.
+//    'dest' should have at least CalculateBase64EscapedLen() length.
+//    RETURNS the length of dest.
+//    The WebSafe variation use '-' instead of '+' and '_' instead of '/'
+//    so that we can place the out in the URL or cookies without having
+//    to escape them.  It also has an extra parameter "do_padding",
+//    which when set to false will prevent padding with "=".
+// ----------------------------------------------------------------------
+void Base64Escape(const string& src, string* dest);
+int Base64Escape(const unsigned char* src, int slen, char* dest, int szdest);
+// Encode src into dest with padding.
+void Base64Escape(const unsigned char* src, int szsrc,
+                  string* dest, bool do_padding);
+
+int WebSafeBase64Escape(const unsigned char* src, int slen, char* dest,
+                        int szdest, bool do_padding);
+// Encode src into dest web-safely without padding.
+void WebSafeBase64Escape(const string& src, string* dest);
+// Encode src into dest web-safely with padding.
+void WebSafeBase64EscapeWithPadding(const string& src, string* dest);
+void WebSafeBase64Escape(const unsigned char* src, int szsrc,
+                         string* dest, bool do_padding);
+
+// ----------------------------------------------------------------------
+// Base64Unescape()
+// WebSafeBase64Unescape()
+//    Copies "src" to "dest", where src is in base64 and is written to its
+//    ASCII equivalents. src is not null terminated, instead specify len.
+//    I recommend that slen<szdest, but we honor szdest anyway.
+//    RETURNS the length of dest, or -1 if src contains invalid chars.
+//    The WebSafe variation use '-' instead of '+' and '_' instead of '/'.
+//    The variations that store into a string clear the string first, and
+//    return false (with dest empty) if src contains invalid chars; for
+//    these versions src and dest must be different strings.
+// ----------------------------------------------------------------------
+int Base64Unescape(const char* src, int slen, char* dest, int szdest);
+bool Base64Unescape(const char* src, int slen, string* dest);
+inline bool Base64Unescape(const string& src, string* dest) {
+  return Base64Unescape(src.data(), src.size(), dest);
+}
+
+
+int WebSafeBase64Unescape(const char* src, int slen, char* dest, int szdest);
+bool WebSafeBase64Unescape(const char* src, int slen, string* dest);
+bool WebSafeBase64Unescape(const string& src, string* dest);
+
+// Return the length to use for the output buffer given to the base64 escape
+// routines. Make sure to use the same value for do_padding in both.
+// This function may return incorrect results if given input_len values that
+// are extremely high, which should happen rarely.
+int CalculateBase64EscapedLen(int input_len, bool do_padding);
+// Use this version when calling Base64Escape without a do_padding arg.
+int CalculateBase64EscapedLen(int input_len);
+}  // namespace strings
+
+#endif  // TOOLS_WINDOWS_CONVERTER_EXE_ESCAPING_H_
diff --git a/src/tools/windows/converter_exe/http_client.h b/src/tools/windows/converter_exe/http_client.h
new file mode 100644
index 0000000..3e7aa8a
--- /dev/null
+++ b/src/tools/windows/converter_exe/http_client.h
@@ -0,0 +1,96 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef TOOLS_CRASH_CONVERTER_WINDOWS_HTTP_CLIENT_H_
+#define TOOLS_CRASH_CONVERTER_WINDOWS_HTTP_CLIENT_H_
+
+#include <tchar.h>
+#include <windows.h>
+#include <vector>
+
+typedef void* HttpHandle;
+
+namespace crash {
+
+// HttpClient provides an abstract layer for HTTP APIs. The actual
+// implementation can be based on either WinHttp or WinInet.
+class HttpClient {
+ public:
+  enum AccessType {
+    ACCESS_TYPE_PRECONFIG,
+    ACCESS_TYPE_DIRECT,
+    ACCESS_TYPE_PROXY,
+  };
+
+  virtual ~HttpClient() {}
+
+  virtual bool CrackUrl(const TCHAR* url,
+                        DWORD flags,
+                        TCHAR* scheme,
+                        size_t scheme_buffer_length,
+                        TCHAR* host,
+                        size_t host_buffer_length,
+                        TCHAR* uri,
+                        size_t uri_buffer_length,
+                        int* port) const = 0;
+  virtual bool Open(const TCHAR* user_agent,
+                    DWORD access_type,
+                    const TCHAR* proxy_name,
+                    const TCHAR* proxy_bypass,
+                    HttpHandle* session_handle) const = 0;
+  virtual bool Connect(HttpHandle session_handle,
+                       const TCHAR* server,
+                       int port,
+                       HttpHandle* connection_handle) const = 0;
+  virtual bool OpenRequest(HttpHandle connection_handle,
+                           const TCHAR* verb,
+                           const TCHAR* uri,
+                           const TCHAR* version,
+                           const TCHAR* referrer,
+                           bool is_secure,
+                           HttpHandle* request_handle) const = 0;
+  virtual bool SendRequest(HttpHandle request_handle,
+                           const TCHAR* headers,
+                           DWORD headers_length) const = 0;
+  virtual bool ReceiveResponse(HttpHandle request_handle) const = 0;
+  virtual bool GetHttpStatusCode(HttpHandle request_handle,
+                                 int* status_code) const = 0;
+  virtual bool GetContentLength(HttpHandle request_handle,
+                                DWORD* content_length) const = 0;
+  virtual bool ReadData(HttpHandle request_handle,
+                        void* buffer,
+                        DWORD buffer_length,
+                        DWORD* bytes_read) const = 0;
+  virtual bool Close(HttpHandle handle) const = 0;
+
+  static const DWORD kUnknownContentLength = (DWORD)-1;
+};
+
+}  // namespace crash
+
+#endif  // TOOLS_CRASH_CONVERTER_WINDOWS_HTTP_CLIENT_H_
diff --git a/src/tools/windows/converter_exe/http_download.cc b/src/tools/windows/converter_exe/http_download.cc
new file mode 100644
index 0000000..58fcbb3
--- /dev/null
+++ b/src/tools/windows/converter_exe/http_download.cc
@@ -0,0 +1,326 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+#include <stdio.h>
+#include <Windows.h>
+#include <WinInet.h>
+
+#include <vector>
+
+#include "tools/windows/converter_exe/http_download.h"
+#include "tools/windows/converter_exe/winhttp_client.h"
+#include "tools/windows/converter_exe/wininet_client.h"
+
+namespace crash {
+static const std::vector<char>::size_type kVectorChunkSize = 4096;  // 4 KB
+
+using std::vector;
+
+// Class that atuo closes the contained HttpHandle when the object
+// goes out of scope.
+class AutoHttpHandle {
+ public:
+  AutoHttpHandle() : handle_(NULL) {}
+  explicit AutoHttpHandle(HttpHandle handle) : handle_(handle) {}
+  ~AutoHttpHandle() {
+    if (handle_) {
+      InternetCloseHandle(handle_);
+    }
+  }
+
+  HttpHandle get() { return handle_; }
+  HttpHandle* get_handle_addr () { return &handle_; }
+
+ private:
+  HttpHandle handle_;
+};
+
+// Template class for auto releasing the contained pointer when
+// the object goes out of scope.
+template<typename T>
+class AutoPtr {
+ public:
+  explicit AutoPtr(T* ptr) : ptr_(ptr) {}
+  ~AutoPtr() {
+    if (ptr_) {
+      delete ptr_;
+    }
+  }
+
+  T* get() { return ptr_; }
+  T* operator -> () { return ptr_; }
+
+ private:
+  T* ptr_;
+};
+
+// CheckParameters ensures that the parameters in |parameters| are safe for
+// use in an HTTP URL.  Returns true if they are, false if unsafe characters
+// are present.
+static bool CheckParameters(const map<wstring, wstring>* parameters) {
+  for (map<wstring, wstring>::const_iterator iterator = parameters->begin();
+       iterator != parameters->end();
+       ++iterator) {
+    const wstring& key = iterator->first;
+    if (key.empty()) {
+      // Disallow empty parameter names.
+      return false;
+    }
+    for (unsigned int i = 0; i < key.size(); ++i) {
+      wchar_t c = key[i];
+      if (c < 32 || c == '"' || c == '?' || c == '&' || c > 127) {
+        return false;
+      }
+    }
+
+    const wstring& value = iterator->second;
+    for (unsigned int i = 0; i < value.size(); ++i) {
+      wchar_t c = value[i];
+      if (c < 32 || c == '"' || c == '?' || c == '&' || c > 127) {
+        return false;
+      }
+    }
+  }
+
+  return true;
+}
+
+HttpClient* HTTPDownload::CreateHttpClient(const wchar_t* url) {
+  const TCHAR* kHttpApiPolicyEnvironmentVariable = TEXT("USE_WINHTTP");
+  TCHAR buffer[2] = {0};
+  HttpClient* http_client = NULL;
+
+  if (::GetEnvironmentVariable(kHttpApiPolicyEnvironmentVariable,
+                               buffer,
+                               sizeof(buffer)/sizeof(buffer[0])) > 0) {
+    fprintf(stdout,
+            "Environment variable [%ws] is set, use WinHttp\n",
+            kHttpApiPolicyEnvironmentVariable);
+    http_client = CreateWinHttpClient(url);
+    if (http_client == NULL) {
+      fprintf(stderr, "WinHttpClient not created, Is the protocol HTTPS? "
+                      "Fall back to WinInet API.\n");
+    }
+  } else {
+    fprintf(stderr,
+            "Environment variable [%ws] is NOT set, use WinInet API\n",
+            kHttpApiPolicyEnvironmentVariable);
+  }
+
+  if (http_client == NULL) {
+    return CreateWinInetClient(url);
+  }
+
+  return http_client;
+}
+
+// static
+bool HTTPDownload::Download(const wstring& url,
+                            const map<wstring, wstring>* parameters,
+                            string *content, int *status_code) {
+  assert(content);
+  AutoPtr<HttpClient> http_client(CreateHttpClient(url.c_str()));
+
+  if (!http_client.get()) {
+    fprintf(stderr, "Failed to create any http client.\n");
+    return false;
+  }
+
+  if (status_code) {
+    *status_code = 0;
+  }
+
+  wchar_t scheme[16] = {0};
+  wchar_t host[256] = {0};
+  wchar_t path[256] = {0};
+  int port = 0;
+  if (!http_client->CrackUrl(url.c_str(),
+                             0,
+                             scheme,
+                             sizeof(scheme)/sizeof(scheme[0]),
+                             host,
+                             sizeof(host)/sizeof(host[0]),
+                             path,
+                             sizeof(path)/sizeof(path[0]),
+                             &port)) {
+    fprintf(stderr,
+            "HTTPDownload::Download: InternetCrackUrl: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+
+  bool secure = false;
+  if (_wcsicmp(scheme, L"https") == 0) {
+    secure = true;
+  } else if (wcscmp(scheme, L"http") != 0) {
+    fprintf(stderr,
+            "HTTPDownload::Download: scheme must be http or https for %ws\n",
+            url.c_str());
+    return false;
+  }
+
+  AutoHttpHandle internet;
+  if (!http_client->Open(NULL,  // user agent
+                         HttpClient::ACCESS_TYPE_PRECONFIG,
+                         NULL,  // proxy name
+                         NULL,  // proxy bypass
+                         internet.get_handle_addr())) {
+    fprintf(stderr,
+            "HTTPDownload::Download: Open: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+
+  AutoHttpHandle connection;
+  if (!http_client->Connect(internet.get(),
+                            host,
+                            port,
+                            connection.get_handle_addr())) {
+    fprintf(stderr,
+            "HTTPDownload::Download: InternetConnect: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+
+  wstring request_string = path;
+  if (parameters) {
+    // TODO(mmentovai): escape bad characters in parameters instead of
+    // forbidding them.
+    if (!CheckParameters(parameters)) {
+      fprintf(stderr,
+              "HTTPDownload::Download: invalid characters in parameters\n");
+      return false;
+    }
+
+    bool added_parameter = false;
+    for (map<wstring, wstring>::const_iterator iterator = parameters->begin();
+         iterator != parameters->end();
+         ++iterator) {
+      request_string.append(added_parameter ? L"&" : L"?");
+      request_string.append(iterator->first);
+      request_string.append(L"=");
+      request_string.append(iterator->second);
+      added_parameter = true;
+    }
+  }
+
+  AutoHttpHandle request;
+  if (!http_client->OpenRequest(connection.get(),
+                                L"GET",
+                                request_string.c_str(),
+                                NULL,    // version
+                                NULL,    // referer
+                                secure,
+                                request.get_handle_addr())) {
+    fprintf(stderr,
+            "HttpClient::OpenRequest: error %lu for %ws, request: %ws\n",
+            GetLastError(), url.c_str(), request_string.c_str());
+    return false;
+  }
+
+  if (!http_client->SendRequest(request.get(), NULL, 0)) {
+    fprintf(stderr,
+            "HttpClient::SendRequest: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+
+  if (!http_client->ReceiveResponse(request.get())) {
+    fprintf(stderr,
+            "HttpClient::ReceiveResponse: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+
+  int http_status = 0;
+  if (!http_client->GetHttpStatusCode(request.get(), &http_status)) {
+    fprintf(stderr,
+            "HttpClient::GetHttpStatusCode: error %lu for %ws\n",
+            GetLastError(), url.c_str());
+    return false;
+  }
+  if (http_status != 200) {
+    fprintf(stderr,
+            "HTTPDownload::Download: HTTP status code %d for %ws\n",
+            http_status, url.c_str());
+    return false;
+  }
+
+  DWORD content_length = 0;
+  vector<char>::size_type buffer_size = 0;
+  http_client->GetContentLength(request.get(), &content_length);
+  if (content_length == HttpClient::kUnknownContentLength) {
+    buffer_size = kVectorChunkSize;
+  } else {
+    buffer_size = content_length;
+  }
+
+  if (content_length != 0) {
+    vector<char> response_buffer = vector<char>(buffer_size+1);
+    DWORD size_read;
+    DWORD total_read = 0;
+    bool read_result;
+    do {
+      if (content_length == HttpClient::kUnknownContentLength
+          && buffer_size == total_read) {
+        // The content length wasn't specified in the response header, so we
+        // have to keep growing the buffer until we're done reading.
+        buffer_size += kVectorChunkSize;
+        response_buffer.resize(buffer_size);
+      }
+      read_result = !!http_client->ReadData(
+          request.get(),
+          &response_buffer[total_read],
+          static_cast<DWORD>(buffer_size) - total_read,
+          &size_read);
+      total_read += size_read;
+    } while (read_result && (size_read != 0));
+
+    if (!read_result) {
+      fprintf(stderr,
+              "HttpClient::ReadData: error %lu for %ws\n",
+              GetLastError(),
+              url.c_str());
+      return false;
+    } else if (size_read != 0) {
+      fprintf(stderr,
+              "HttpClient::ReadData: error %lu/%lu for %ws\n",
+              total_read,
+              content_length,
+              url.c_str());
+      return false;
+    }
+    content->assign(&response_buffer[0], total_read);
+  } else {
+    content->clear();
+  }
+  return true;
+}
+
+}  // namespace crash
diff --git a/src/tools/windows/converter_exe/http_download.h b/src/tools/windows/converter_exe/http_download.h
new file mode 100644
index 0000000..cbae11b
--- /dev/null
+++ b/src/tools/windows/converter_exe/http_download.h
@@ -0,0 +1,62 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef TOOLS_WINDOWS_CONVERTER_EXE_HTTP_DOWNLOAD_H_
+#define TOOLS_WINDOWS_CONVERTER_EXE_HTTP_DOWNLOAD_H_
+
+#include <map>
+#include <string>
+#include "tools/windows/converter_exe/winhttp_client.h"
+
+namespace crash {
+
+using std::map;
+using std::string;
+using std::wstring;
+
+class HTTPDownload {
+ public:
+  // Retrieves the resource located at |url|, a http or https URL, via WinInet.
+  // The request is fetched with GET request; the optional |parameters| are
+  // appended to the URL.  Returns true on success, placing the content of the
+  // retrieved resource in |content|.  Returns false on failure.  HTTP status
+  // codes other than 200 cause Download to return false.  If |status_code| is
+  // supplied, it will be set to the value of the HTTP status code, if an HTTP
+  // transaction occurs.  If Download fails before a transaction can occur,
+  // |status_code| will be set to 0.  Any failures will result in messages
+  // being printed to stderr.
+  static bool Download(const wstring& url,
+                       const map<wstring, wstring>* parameters,
+                       string *content, int *status_code);
+ private:
+  static HttpClient* CreateHttpClient(const wchar_t*);
+};
+
+}  // namespace crash
+
+#endif  // TOOLS_WINDOWS_CONVERTER_EXE_HTTP_DOWNLOAD_H_
diff --git a/src/tools/windows/converter_exe/missing_symbols_test.txt b/src/tools/windows/converter_exe/missing_symbols_test.txt
new file mode 100644
index 0000000..91641fc
--- /dev/null
+++ b/src/tools/windows/converter_exe/missing_symbols_test.txt
@@ -0,0 +1,5 @@
+msctf.pdb|6A5BABB8E88644C696530BFE3C90F32F2|6.1.7600.16385|msctf.dll|4A5BDFAA109000
+imm32.pdb|98F27BA5AEE541ECBEE00CD03AD50FEE2|6.1.7600.16385|imm32.dll|4A5BDF402e000
+amd_opencl64.pdb|3D306D0FCCB14F47AF322A5ACDF5EEA81||amd_opencl64.dll|587901FB1E000
+igd10iumd64.pdb|B2B72475BB0846D8ADE4344FAE0CCE361 ||igd10iumd64.dll|568D69FBD99000
+NvCameraWhitelisting64.pdb|3C364C4D3FBF4180B021D52D469C6DAB1||NvCameraWhitelisting64.dll|5B8ED23485000
\ No newline at end of file
diff --git a/src/tools/windows/converter_exe/symsrv.yes b/src/tools/windows/converter_exe/symsrv.yes
new file mode 100644
index 0000000..1d01dda
--- /dev/null
+++ b/src/tools/windows/converter_exe/symsrv.yes
@@ -0,0 +1,2 @@
+See breakpad/tools/windows/converter/ms_symbol_server_converter.h for a
+description of this file's function.
diff --git a/src/tools/windows/converter_exe/tokenizer.cc b/src/tools/windows/converter_exe/tokenizer.cc
new file mode 100644
index 0000000..aee3986
--- /dev/null
+++ b/src/tools/windows/converter_exe/tokenizer.cc
@@ -0,0 +1,61 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <assert.h>
+
+#include "tools/windows/converter_exe/tokenizer.h"
+
+namespace crash {
+
+// static
+void Tokenizer::Tokenize(const string& delimiters, const string& input,
+                        vector<string>* output) {
+  assert(output);
+  output->clear();
+
+  string::size_type position = 0;  // Where to begin looking for a delimiter
+  string::size_type new_position;  // Position of found delimiter
+  string token;
+
+  while ((new_position = input.find_first_of(delimiters, position)) !=
+         string::npos) {
+    token = input.substr(position, new_position - position);
+    output->push_back(token);
+
+    // Next time, begin looking right after this delimiter.
+    position = new_position + 1;
+  }
+
+  // There are no more delimiters in the string.  Take everything from the
+  // final delimiter up to the end of the string as a token.  This may be
+  // an empty string.
+  token = input.substr(position);
+  output->push_back(token);
+}
+
+}  // namespace crash
diff --git a/src/tools/windows/converter_exe/tokenizer.h b/src/tools/windows/converter_exe/tokenizer.h
new file mode 100644
index 0000000..bfdfa22
--- /dev/null
+++ b/src/tools/windows/converter_exe/tokenizer.h
@@ -0,0 +1,51 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef TOOLS_WINDOWS_CONVERTER_EXE_TOKENIZER_H_
+#define TOOLS_WINDOWS_CONVERTER_EXE_TOKENIZER_H_
+
+#include <string>
+#include <vector>
+
+namespace crash {
+
+using std::string;
+using std::vector;
+
+class Tokenizer {
+ public:
+  // Splits |input| into a series of tokens delimited in the input string by
+  // any of the characters in |delimiters|.  The tokens are passed back in the
+  // |output| vector.
+  static void Tokenize(const string& delimiters, const string& input,
+                       vector<string>* output);
+};
+
+}  // namespace crash
+
+#endif  // TOOLS_WINDOWS_CONVERTER_EXE_TOKENIZER_H_
diff --git a/src/tools/windows/converter_exe/winhttp_client.cc b/src/tools/windows/converter_exe/winhttp_client.cc
new file mode 100644
index 0000000..cc70e53
--- /dev/null
+++ b/src/tools/windows/converter_exe/winhttp_client.cc
@@ -0,0 +1,307 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "tools/windows/converter_exe/winhttp_client.h"
+
+#include <assert.h>
+#include <stdlib.h>
+#include <windows.h>
+#include <winhttp.h>
+#include <vector>
+
+namespace crash {
+
+namespace internal {
+
+// This class implements HttpClient based on WinInet APIs.
+class WinHttpClient : public HttpClient {
+ public:
+  virtual ~WinHttpClient() {}
+  virtual bool CrackUrl(const TCHAR* url,
+                        DWORD flags,
+                        TCHAR* scheme,
+                        size_t scheme_buffer_length,
+                        TCHAR* host,
+                        size_t host_buffer_length,
+                        TCHAR* uri,
+                        size_t uri_buffer_length,
+                        int* port) const;
+  virtual bool Open(const TCHAR* user_agent,
+                    DWORD access_type,
+                    const TCHAR* proxy_name,
+                    const TCHAR* proxy_bypass,
+                    HttpHandle* session_handle) const;
+  virtual bool Connect(HttpHandle session_handle,
+                       const TCHAR* server,
+                       int port,
+                       HttpHandle* connection_handle) const;
+  virtual bool OpenRequest(HttpHandle connection_handle,
+                           const TCHAR* verb,
+                           const TCHAR* uri,
+                           const TCHAR* version,
+                           const TCHAR* referrer,
+                           bool is_secure,
+                           HttpHandle* request_handle) const;
+  virtual bool SendRequest(HttpHandle request_handle,
+                           const TCHAR* headers,
+                           DWORD headers_length) const;
+  virtual bool ReceiveResponse(HttpHandle request_handle) const;
+  virtual bool GetHttpStatusCode(HttpHandle request_handle,
+                                 int* status_code) const;
+  virtual bool GetContentLength(HttpHandle request_handle,
+                                DWORD* content_length) const;
+  virtual bool ReadData(HttpHandle request_handle,
+                        void* buffer,
+                        DWORD buffer_length,
+                        DWORD* bytes_read) const;
+  virtual bool Close(HttpHandle handle) const;
+
+ private:
+  static DWORD MapAccessType(DWORD access_type);
+  static HINTERNET ToHINTERNET(HttpHandle handle);
+  static HttpHandle FromHINTERNET(HINTERNET handle);
+};
+
+bool WinHttpClient::CrackUrl(const TCHAR* url,
+                             DWORD flags,
+                             TCHAR* scheme,
+                             size_t scheme_buffer_length,
+                             TCHAR* host,
+                             size_t host_buffer_length,
+                             TCHAR* uri,
+                             size_t uri_buffer_length,
+                             int* port) const {
+  assert(url);
+  assert(scheme);
+  assert(host);
+  assert(uri);
+  assert(port);
+
+  URL_COMPONENTS url_comp = {0};
+  url_comp.dwStructSize = sizeof(url_comp);
+  url_comp.lpszScheme = scheme;
+  url_comp.dwSchemeLength = static_cast<DWORD>(scheme_buffer_length);
+  url_comp.lpszHostName = host;
+  url_comp.dwHostNameLength = static_cast<DWORD>(host_buffer_length);
+  url_comp.lpszUrlPath = uri;
+  url_comp.dwUrlPathLength = static_cast<DWORD>(uri_buffer_length);
+
+  bool result = !!::WinHttpCrackUrl(url, 0, flags, &url_comp);
+  if (result) {
+    *port = static_cast<int>(url_comp.nPort);
+  }
+  return result;
+}
+
+bool WinHttpClient::Open(const TCHAR* user_agent,
+                         DWORD access_type,
+                         const TCHAR* proxy_name,
+                         const TCHAR* proxy_bypass,
+                         HttpHandle* session_handle)  const {
+  *session_handle = FromHINTERNET(::WinHttpOpen(user_agent,
+                                                MapAccessType(access_type),
+                                                proxy_name,
+                                                proxy_bypass,
+                                                0));
+
+  return !!(*session_handle);
+}
+
+bool WinHttpClient::Connect(HttpHandle session_handle,
+                            const TCHAR* server,
+                            int port,
+                            HttpHandle* connection_handle) const {
+  assert(server);
+
+  // Uses NULL user name and password to connect.
+  *connection_handle = FromHINTERNET(::WinHttpConnect(
+                                         ToHINTERNET(session_handle),
+                                         server,
+                                         static_cast<INTERNET_PORT>(port),
+                                         NULL));
+  return !!(*connection_handle);
+}
+
+bool WinHttpClient::OpenRequest(HttpHandle connection_handle,
+                                const TCHAR* verb,
+                                const TCHAR* uri,
+                                const TCHAR* version,
+                                const TCHAR* referrer,
+                                bool is_secure,
+                                HttpHandle* request_handle) const {
+  assert(connection_handle);
+  assert(verb);
+  assert(uri);
+  assert(request_handle);
+
+  *request_handle = FromHINTERNET(::WinHttpOpenRequest(
+                                      ToHINTERNET(connection_handle),
+                                      verb,
+                                      uri,
+                                      version,
+                                      referrer,
+                                      WINHTTP_DEFAULT_ACCEPT_TYPES,
+                                      is_secure ? WINHTTP_FLAG_SECURE : 0));
+  return !!(*request_handle);
+}
+
+bool WinHttpClient::SendRequest(HttpHandle request_handle,
+                                const TCHAR* headers,
+                                DWORD headers_length) const {
+  assert(request_handle);
+
+  return !!::WinHttpSendRequest(ToHINTERNET(request_handle),
+                                headers,
+                                headers_length,
+                                NULL,
+                                0,
+                                WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH,
+                                NULL);
+}
+
+bool WinHttpClient::ReceiveResponse(HttpHandle request_handle) const {
+  assert(request_handle);
+
+  return !!::WinHttpReceiveResponse(ToHINTERNET(request_handle), NULL);
+}
+
+bool WinHttpClient::GetHttpStatusCode(HttpHandle request_handle,
+                                      int* status_code) const {
+  TCHAR http_status_string[4] = {0};
+  DWORD http_status_string_size = sizeof(http_status_string);
+  if (!::WinHttpQueryHeaders(ToHINTERNET(request_handle),
+                             WINHTTP_QUERY_STATUS_CODE,
+                             WINHTTP_HEADER_NAME_BY_INDEX,
+                             static_cast<void*>(&http_status_string),
+                             &http_status_string_size, 0)) {
+    return false;
+  }
+
+  *status_code = static_cast<DWORD>(_tcstol(http_status_string, NULL, 10));
+  return true;
+}
+
+bool WinHttpClient::GetContentLength(HttpHandle request_handle,
+                                     DWORD* content_length) const {
+  assert(request_handle);
+  assert(content_length);
+
+  TCHAR content_length_string[11] = {0};
+  DWORD content_length_string_size = sizeof(content_length_string);
+  if (!::WinHttpQueryHeaders(ToHINTERNET(request_handle),
+                             WINHTTP_QUERY_CONTENT_LENGTH,
+                             WINHTTP_HEADER_NAME_BY_INDEX,
+                             static_cast<void*>(&content_length_string),
+                             &content_length_string_size, 0)) {
+    *content_length = kUnknownContentLength;
+  } else {
+    *content_length =
+        static_cast<DWORD>(wcstol(content_length_string, NULL, 10));
+  }
+  return true;
+}
+
+bool WinHttpClient::ReadData(HttpHandle request_handle,
+                             void* buffer,
+                             DWORD buffer_length,
+                             DWORD* bytes_read) const {
+  assert(request_handle);
+  assert(buffer);
+  assert(bytes_read);
+
+  DWORD bytes_read_local = 0;
+  if (!::WinHttpReadData(ToHINTERNET(request_handle),
+                         buffer,
+                         buffer_length,
+                         &bytes_read_local)) {
+    return false;
+  }
+  *bytes_read = bytes_read_local;
+  return true;
+}
+
+bool WinHttpClient::Close(HttpHandle handle) const {
+  assert(handle);
+  return !!::WinHttpCloseHandle(ToHINTERNET(handle));
+}
+
+DWORD WinHttpClient::MapAccessType(DWORD access_type) {
+  switch (static_cast<AccessType>(access_type)) {
+    case ACCESS_TYPE_PRECONFIG:
+    default:
+      return WINHTTP_ACCESS_TYPE_DEFAULT_PROXY;
+    case ACCESS_TYPE_DIRECT:
+      return WINHTTP_ACCESS_TYPE_NO_PROXY;
+    case ACCESS_TYPE_PROXY:
+      return WINHTTP_ACCESS_TYPE_NAMED_PROXY;
+  }
+}
+
+
+HINTERNET WinHttpClient::ToHINTERNET(HttpHandle handle) {
+  return static_cast<HINTERNET>(handle);
+}
+
+HttpHandle WinHttpClient::FromHINTERNET(HINTERNET handle) {
+  return static_cast<HttpHandle>(handle);
+}
+
+}  // namespace internal
+
+HttpClient* CreateWinHttpClient(const TCHAR* url) {
+  assert(url);
+
+  internal::WinHttpClient winhttp;
+  wchar_t scheme[16] = {0};
+  wchar_t host[256] = {0};
+  wchar_t path[256] = {0};
+  int port = 0;
+
+  if (!winhttp.CrackUrl(url,
+                        0,
+                        scheme,
+                        sizeof(scheme)/sizeof(scheme[0]),
+                        host,
+                        sizeof(host)/sizeof(host[0]),
+                        path,
+                        sizeof(path)/sizeof(path[0]),
+                        &port)) {
+    return NULL;
+  }
+
+  if (_wcsicmp(scheme, L"https") == 0) {
+    // Winhttp under WINE doesn't support wildcard certificates, so avoid 
+    // to use it if the scheme is https. The caller should fall back to
+    // use wininet if NULL is returned.
+    return NULL;
+  }
+
+  return new internal::WinHttpClient();
+}
+
+}  // namespace crash
diff --git a/src/tools/windows/converter_exe/winhttp_client.h b/src/tools/windows/converter_exe/winhttp_client.h
new file mode 100644
index 0000000..819d610
--- /dev/null
+++ b/src/tools/windows/converter_exe/winhttp_client.h
@@ -0,0 +1,40 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef TOOLS_WINDOWS_CONVERTER_EXE_WINHTTP_CLIENT_H_
+#define TOOLS_WINDOWS_CONVERTER_EXE_WINHTTP_CLIENT_H_
+
+#include "tools/windows/converter_exe/http_client.h"
+
+namespace crash {
+
+HttpClient* CreateWinHttpClient(const TCHAR* url);
+
+}  // namespace crash
+
+#endif  // TOOLS_WINDOWS_CONVERTER_EXE_WINHTTP_CLIENT_H_
diff --git a/src/tools/windows/converter_exe/wininet_client.cc b/src/tools/windows/converter_exe/wininet_client.cc
new file mode 100644
index 0000000..986a66f
--- /dev/null
+++ b/src/tools/windows/converter_exe/wininet_client.cc
@@ -0,0 +1,278 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "tools/windows/converter_exe/wininet_client.h"
+
+#include <assert.h>
+#include <stdlib.h>
+#include <windows.h>
+#include <wininet.h>
+
+namespace crash {
+
+namespace internal {
+
+// This class implements HttpClient based on WinInet APIs.
+class WinInetClient : public HttpClient {
+ public:
+  virtual ~WinInetClient() {}
+  virtual bool CrackUrl(const TCHAR* url,
+                        DWORD flags,
+                        TCHAR* scheme,
+                        size_t scheme_buffer_length,
+                        TCHAR* host,
+                        size_t host_buffer_length,
+                        TCHAR* uri,
+                        size_t uri_buffer_length,
+                        int* port) const;
+  virtual bool Open(const TCHAR* user_agent,
+                    DWORD access_type,
+                    const TCHAR* proxy_name,
+                    const TCHAR* proxy_bypass,
+                    HttpHandle* session_handle) const;
+  virtual bool Connect(HttpHandle session_handle,
+                       const TCHAR* server,
+                       int port,
+                       HttpHandle* connection_handle) const;
+  virtual bool OpenRequest(HttpHandle connection_handle,
+                           const TCHAR* verb,
+                           const TCHAR* uri,
+                           const TCHAR* version,
+                           const TCHAR* referrer,
+                           bool is_secure,
+                           HttpHandle* request_handle) const;
+  virtual bool SendRequest(HttpHandle request_handle,
+                           const TCHAR* headers,
+                           DWORD headers_length) const;
+  virtual bool ReceiveResponse(HttpHandle request_handle) const;
+  virtual bool GetHttpStatusCode(HttpHandle request_handle,
+                                 int* status_code) const;
+  virtual bool GetContentLength(HttpHandle request_handle,
+                                DWORD* content_length) const;
+  virtual bool ReadData(HttpHandle request_handle,
+                        void* buffer,
+                        DWORD buffer_length,
+                        DWORD* bytes_read) const;
+  virtual bool Close(HttpHandle handle) const;
+
+ private:
+  static DWORD MapAccessType(DWORD access_type);
+  static HINTERNET ToHINTERNET(HttpHandle handle);
+  static HttpHandle FromHINTERNET(HINTERNET handle);
+};
+
+bool WinInetClient::CrackUrl(const TCHAR* url,
+                             DWORD flags,
+                             TCHAR* scheme,
+                             size_t scheme_buffer_length,
+                             TCHAR* host,
+                             size_t host_buffer_length,
+                             TCHAR* uri,
+                             size_t uri_buffer_length,
+                             int* port) const {
+  assert(url);
+  assert(scheme);
+  assert(host);
+  assert(uri);
+  assert(port);
+
+  URL_COMPONENTS url_comp = {0};
+  url_comp.dwStructSize = sizeof(url_comp);
+  url_comp.lpszScheme = scheme;
+  url_comp.dwSchemeLength = static_cast<DWORD>(scheme_buffer_length);
+  url_comp.lpszHostName = host;
+  url_comp.dwHostNameLength = static_cast<DWORD>(host_buffer_length);
+  url_comp.lpszUrlPath = uri;
+  url_comp.dwUrlPathLength = static_cast<DWORD>(uri_buffer_length);
+
+  bool result = !!::InternetCrackUrl(url, 0, flags, &url_comp);
+  if (result) {
+    *port = static_cast<int>(url_comp.nPort);
+  }
+  return result;
+}
+
+bool WinInetClient::Open(const TCHAR* user_agent,
+                         DWORD access_type,
+                         const TCHAR* proxy_name,
+                         const TCHAR* proxy_bypass,
+                         HttpHandle* session_handle)  const {
+  *session_handle = FromHINTERNET(::InternetOpen(user_agent,
+                                                 MapAccessType(access_type),
+                                                 proxy_name,
+                                                 proxy_bypass,
+                                                 0));
+  return !!(*session_handle);
+}
+
+bool WinInetClient::Connect(HttpHandle session_handle,
+                            const TCHAR* server,
+                            int port,
+                            HttpHandle* connection_handle) const {
+  assert(server);
+
+  // Uses NULL user name and password to connect. Always uses http service.
+  *connection_handle = FromHINTERNET(::InternetConnect(
+                                         ToHINTERNET(session_handle),
+                                         server,
+                                         static_cast<INTERNET_PORT>(port),
+                                         NULL,
+                                         NULL,
+                                         INTERNET_SERVICE_HTTP,
+                                         0,
+                                         0));
+  return !!(*connection_handle);
+}
+
+bool WinInetClient::OpenRequest(HttpHandle connection_handle,
+                                const TCHAR* verb,
+                                const TCHAR* uri,
+                                const TCHAR* version,
+                                const TCHAR* referrer,
+                                bool is_secure,
+                                HttpHandle* request_handle) const {
+  assert(connection_handle);
+  assert(verb);
+  assert(uri);
+
+  *request_handle = FromHINTERNET(::HttpOpenRequest(
+                                      ToHINTERNET(connection_handle),
+                                      verb,
+                                      uri,
+                                      version,
+                                      referrer,
+                                      NULL,
+                                      is_secure ? INTERNET_FLAG_SECURE : 0,
+                                      NULL));
+  return !!(*request_handle);
+}
+
+bool WinInetClient::SendRequest(HttpHandle request_handle,
+                                const TCHAR* headers,
+                                DWORD headers_length) const {
+  assert(request_handle);
+
+  return !!::HttpSendRequest(ToHINTERNET(request_handle),
+                             headers,
+                             headers_length,
+                             NULL,
+                             0);
+}
+
+bool WinInetClient::ReceiveResponse(HttpHandle) const {
+  return true;
+}
+
+bool WinInetClient::GetHttpStatusCode(HttpHandle request_handle,
+                                      int* status_code) const {
+  assert(request_handle);
+
+  TCHAR http_status_string[4] = {0};
+  DWORD http_status_string_size = sizeof(http_status_string);
+  if (!::HttpQueryInfo(ToHINTERNET(request_handle),
+                       HTTP_QUERY_STATUS_CODE,
+                       static_cast<void*>(&http_status_string),
+                       &http_status_string_size,
+                       0)) {
+    return false;
+  }
+
+  *status_code = _tcstol(http_status_string, NULL, 10);
+  return true;
+}
+
+bool WinInetClient::GetContentLength(HttpHandle request_handle,
+                                     DWORD* content_length) const {
+  assert(request_handle);
+  assert(content_length);
+
+  TCHAR content_length_string[11];
+  DWORD content_length_string_size = sizeof(content_length_string);
+  if (!::HttpQueryInfo(ToHINTERNET(request_handle),
+                       HTTP_QUERY_CONTENT_LENGTH,
+                       static_cast<void*>(&content_length_string),
+                       &content_length_string_size,
+                       0)) {
+    *content_length = kUnknownContentLength;
+  } else {
+    *content_length = wcstol(content_length_string, NULL, 10);
+  }
+  return true;
+}
+
+bool WinInetClient::ReadData(HttpHandle request_handle,
+                             void* buffer,
+                             DWORD buffer_length,
+                             DWORD* bytes_read) const {
+  assert(request_handle);
+  assert(buffer);
+  assert(bytes_read);
+
+  DWORD bytes_read_local = 0;
+  if (!::InternetReadFile(ToHINTERNET(request_handle),
+                          buffer,
+                          buffer_length,
+                          &bytes_read_local)) {
+    return false;
+  }
+  *bytes_read = bytes_read_local;
+  return true;
+}
+
+bool WinInetClient::Close(HttpHandle handle) const {
+  assert(handle);
+  return !!::InternetCloseHandle(ToHINTERNET(handle));
+}
+
+DWORD WinInetClient::MapAccessType(DWORD access_type) {
+  switch (static_cast<AccessType>(access_type)) {
+    case ACCESS_TYPE_PRECONFIG:
+    default:
+      return INTERNET_OPEN_TYPE_PRECONFIG;
+    case ACCESS_TYPE_DIRECT:
+      return INTERNET_OPEN_TYPE_DIRECT;
+    case ACCESS_TYPE_PROXY:
+      return INTERNET_OPEN_TYPE_PROXY;
+  }
+}
+
+HINTERNET WinInetClient::ToHINTERNET(HttpHandle handle) {
+  return static_cast<HINTERNET>(handle);
+}
+
+HttpHandle WinInetClient::FromHINTERNET(HINTERNET handle) {
+  return static_cast<HttpHandle>(handle);
+}
+
+}  // namespace internal
+
+HttpClient* CreateWinInetClient(const TCHAR*) {
+  return new internal::WinInetClient();
+}
+
+}  // namespace crash
diff --git a/src/tools/windows/converter_exe/wininet_client.h b/src/tools/windows/converter_exe/wininet_client.h
new file mode 100644
index 0000000..bd04b60
--- /dev/null
+++ b/src/tools/windows/converter_exe/wininet_client.h
@@ -0,0 +1,40 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef TOOLS_WINDOWS_CONVERTER_EXE_WININET_CLIENT_H_
+#define TOOLS_WINDOWS_CONVERTER_EXE_WININET_CLIENT_H_
+
+#include "tools/windows/converter_exe/http_client.h"
+
+namespace crash {
+
+HttpClient* CreateWinInetClient(const TCHAR* url);
+
+}  // namespace crash
+
+#endif  // TOOLS_WINDOWS_CONVERTER_EXE_WININET_CLIENT_H_
diff --git a/src/tools/windows/converter_exe/winsymconv.cmd b/src/tools/windows/converter_exe/winsymconv.cmd
new file mode 100644
index 0000000..bea84b5
--- /dev/null
+++ b/src/tools/windows/converter_exe/winsymconv.cmd
@@ -0,0 +1,86 @@
+@if "%ECHOON%"=="" @echo off
+SETLOCAL
+
+REM ******************************************************************
+REM Usage:
+REM        winsymconv
+REM ******************************************************************
+
+REM ******************************************************************
+REM Initialize
+REM ******************************************************************
+SET SCRIPT_LOCATION=%~dp0
+SET DBGHELP_WINHTTP=
+SET USE_WINHTTP=
+
+REM ******************************************************************
+REM Go to script location
+REM ******************************************************************
+pushd %SCRIPT_LOCATION%
+
+REM ******************************************************************
+REM  Make sure the symbol file directory exists
+REM ******************************************************************
+SET SYMBOL_DIR=%SCRIPT_LOCATION%symbol
+if NOT EXIST %SYMBOL_DIR% MKDIR %SYMBOL_DIR%
+if NOT EXIST %SYMBOL_DIR% echo Failed to create directory '%SYMBOL_DIR%' & goto :fail
+
+:restart
+
+REM ******************************************************************
+REM Convert missing Windows symbols on the staging instance.
+REM ******************************************************************
+echo Converting missing Windows symbols on staging instance ...
+
+google_converter.exe ^
+    -n http://msdl.microsoft.com/download/symbols ^
+    -n http://symbols.mozilla.org/firefox ^
+    -n http://chromium-browser-symsrv.commondatastorage.googleapis.com ^
+    -n https://download.amd.com/dir/bin ^
+    -n https://driver-symbols.nvidia.com ^
+    -n https://software.intel.com/sites/downloads/symbols ^
+    -l %SYMBOL_DIR% ^
+    -s https://clients2.google.com/cr/staging_symbol ^
+    -m https://clients2.google.com/cr/staging_symbol/missingsymbols ^
+    -t https://clients2.google.com/cr/staging_symbol/fetchfailed ^
+    -b "google|chrome|internal|private" ^
+    > %SCRIPT_LOCATION%last_cycle_staging.txt
+
+REM ******************************************************************
+REM Convert missing Windows symbols on the production instance.
+REM ******************************************************************
+echo Converting missing Windows symbols on production instance ...
+
+google_converter.exe ^
+    -n http://msdl.microsoft.com/download/symbols ^
+    -n http://symbols.mozilla.org/firefox ^
+    -n http://chromium-browser-symsrv.commondatastorage.googleapis.com ^
+    -n https://download.amd.com/dir/bin ^
+    -n https://driver-symbols.nvidia.com ^
+    -n https://software.intel.com/sites/downloads/symbols ^
+    -l %SYMBOL_DIR% ^
+    -s https://clients2.google.com/cr/symbol ^
+    -m https://clients2.google.com/cr/symbol/missingsymbols ^
+    -t https://clients2.google.com/cr/symbol/fetchfailed ^
+    -b "google|chrome|internal|private" ^
+    > %SCRIPT_LOCATION%last_cycle_prod.txt
+
+REM ******************************************************************
+REM Sleep for 5 minutes ...
+REM ******************************************************************
+echo Sleeping for 5 minutes ...
+
+%SCRIPT_LOCATION%sleep.exe 300
+
+REM ******************************************
+REM  Restart work loop ...
+REM ******************************************
+goto :restart
+
+:success
+ENDLOCAL
+exit /b 0
+
+:fail
+ENDLOCAL
+exit /b 1
diff --git a/src/tools/windows/converter_exe/winsymconv_test.cmd b/src/tools/windows/converter_exe/winsymconv_test.cmd
new file mode 100644
index 0000000..c177706
--- /dev/null
+++ b/src/tools/windows/converter_exe/winsymconv_test.cmd
@@ -0,0 +1,72 @@
+@if "%ECHOON%"=="" @echo off
+SETLOCAL
+
+REM ******************************************************************
+REM Usage:
+REM        winsymconv_test
+REM ******************************************************************
+
+REM ******************************************************************
+REM Initialize
+REM ******************************************************************
+SET SCRIPT_LOCATION=%~dp0
+SET DBGHELP_WINHTTP=
+SET USE_WINHTTP=
+
+REM ******************************************************************
+REM Go to script location
+REM ******************************************************************
+pushd %SCRIPT_LOCATION%
+
+REM ******************************************************************
+REM  Make sure the symbol file directory exists
+REM ******************************************************************
+SET SYMBOL_DIR=%SCRIPT_LOCATION%symbol
+if NOT EXIST %SYMBOL_DIR% MKDIR %SYMBOL_DIR%
+if NOT EXIST %SYMBOL_DIR% echo Failed to create directory '%SYMBOL_DIR%' & goto :fail
+
+REM ******************************************************************
+REM Testing on the staging instance.
+REM ******************************************************************
+echo Testing on the staging instance ...
+
+google_converter.exe ^
+    -n http://msdl.microsoft.com/download/symbols ^
+    -n http://symbols.mozilla.org/firefox ^
+    -n http://chromium-browser-symsrv.commondatastorage.googleapis.com ^
+    -n https://download.amd.com/dir/bin ^
+    -n https://driver-symbols.nvidia.com ^
+    -n https://software.intel.com/sites/downloads/symbols ^
+    -l %SYMBOL_DIR% ^
+    -s https://clients2.google.com/cr/staging_symbol ^
+    -mf %SCRIPT_LOCATION%missing_symbols_test.txt ^
+    -t https://clients2.google.com/cr/staging_symbol/fetchfailed ^
+    -b "google|chrome|internal|private" ^
+    > %SCRIPT_LOCATION%last_cycle_staging.txt
+
+REM ******************************************************************
+REM Testing on the production instance.
+REM ******************************************************************
+echo Testing on the production instance ...
+
+google_converter.exe ^
+    -n http://msdl.microsoft.com/download/symbols ^
+    -n http://symbols.mozilla.org/firefox ^
+    -n http://chromium-browser-symsrv.commondatastorage.googleapis.com ^
+    -n https://download.amd.com/dir/bin ^
+    -n https://driver-symbols.nvidia.com ^
+    -n https://software.intel.com/sites/downloads/symbols ^
+    -l %SYMBOL_DIR% ^
+    -s https://clients2.google.com/cr/symbol ^
+    -mf %SCRIPT_LOCATION%missing_symbols_test.txt ^
+    -t https://clients2.google.com/cr/symbol/fetchfailed ^
+    -b "google|chrome|internal|private" ^
+    > %SCRIPT_LOCATION%last_cycle_prod.txt
+
+:success
+ENDLOCAL
+exit /b 0
+
+:fail
+ENDLOCAL
+exit /b 1
diff --git a/src/tools/windows/dump_syms/dump_syms.cc b/src/tools/windows/dump_syms/dump_syms.cc
new file mode 100644
index 0000000..1b1797d
--- /dev/null
+++ b/src/tools/windows/dump_syms/dump_syms.cc
@@ -0,0 +1,73 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Windows utility to dump the line number data from a pdb file to
+// a text-based format that we can use from the minidump processor.
+
+#include <stdio.h>
+#include <wchar.h>
+
+#include <string>
+
+#include "common/windows/pdb_source_line_writer.h"
+#include "common/windows/pe_source_line_writer.h"
+
+using std::wstring;
+using google_breakpad::PDBSourceLineWriter;
+using google_breakpad::PESourceLineWriter;
+using std::unique_ptr;
+
+int wmain(int argc, wchar_t** argv) {
+  bool success;
+  if (argc == 2) {
+    PDBSourceLineWriter pdb_writer;
+    if (!pdb_writer.Open(wstring(argv[1]), PDBSourceLineWriter::ANY_FILE)) {
+      fprintf(stderr, "Open failed.\n");
+      return 1;
+    }
+    success = pdb_writer.WriteSymbols(stdout);
+  } else if (argc == 3 && wcscmp(argv[1], L"--pe") == 0) {
+    PESourceLineWriter pe_writer(argv[2]);
+    success = pe_writer.WriteSymbols(stdout);
+  } else {
+    fprintf(stderr, "Usage: %ws [--pe] <file.[pdb|exe|dll]>\n", argv[0]);
+    fprintf(stderr, "Options:\n");
+    fprintf(stderr, "--pe:\tRead debugging information from PE file and do "
+      "not attempt to locate matching PDB file.\n"
+      "\tThis is only supported for PE32+ (64 bit) PE files.\n");
+    return 1;
+  }
+
+  if (!success) {
+    fprintf(stderr, "WriteSymbols failed.\n");
+    return 1;
+  }
+
+  return 0;
+}
diff --git a/src/tools/windows/dump_syms/dump_syms.gyp b/src/tools/windows/dump_syms/dump_syms.gyp
new file mode 100644
index 0000000..b815574
--- /dev/null
+++ b/src/tools/windows/dump_syms/dump_syms.gyp
@@ -0,0 +1,64 @@
+# Copyright 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'dump_syms',
+      'type': 'executable',
+      'sources': [
+        'dump_syms.cc',
+      ],
+      'dependencies': [
+        '../../../common/windows/common_windows.gyp:common_windows_lib',
+      ],
+    },
+    {
+      'target_name': 'dump_syms_unittest',
+      'type': 'executable',
+      'sources': [
+        'dump_syms_unittest.cc',
+      ],
+      'dependencies': [
+        '<(DEPTH)/client/windows/unittests/testing.gyp:gmock',
+        '<(DEPTH)/client/windows/unittests/testing.gyp:gtest',
+        'dump_syms',
+      ],
+      'msvs_settings': {
+        'VCLinkerTool': {
+          'AdditionalDependencies': [
+            'shell32.lib',
+          ],
+        },
+      },
+    },
+  ],
+}
diff --git a/src/tools/windows/dump_syms/dump_syms.vcproj b/src/tools/windows/dump_syms/dump_syms.vcproj
new file mode 100644
index 0000000..2fbe301
--- /dev/null
+++ b/src/tools/windows/dump_syms/dump_syms.vcproj
@@ -0,0 +1,242 @@
+﻿<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="dump_syms"
+	ProjectGUID="{792E1530-E2C5-4289-992E-317BA30E9D9F}"
+	RootNamespace="dumpsyms"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="&quot;$(VSInstallDir)\DIA SDK\include&quot;;..\..\.."
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_LEAN_AND_MEAN"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="&quot;$(VSInstallDir)\DIA SDK\lib\diaguids.lib&quot; imagehlp.lib"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;$(VSInstallDir)\DIA SDK\include&quot;;..\..\.."
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_LEAN_AND_MEAN"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="&quot;$(VSInstallDir)\DIA SDK\lib\diaguids.lib&quot; imagehlp.lib"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\..\common\windows\dia_util.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\guid_string.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\omap_internal.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\omap.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\pdb_source_line_writer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\string_utils-inl.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\..\common\windows\dia_util.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\dump_syms.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\guid_string.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\omap.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\pdb_source_line_writer.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\common\windows\string_utils.cc"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
\ No newline at end of file
diff --git a/src/tools/windows/dump_syms/dump_syms_unittest.cc b/src/tools/windows/dump_syms/dump_syms_unittest.cc
new file mode 100644
index 0000000..494b779
--- /dev/null
+++ b/src/tools/windows/dump_syms/dump_syms_unittest.cc
@@ -0,0 +1,244 @@
+// Copyright 2003 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <Windows.h>
+#include <shellapi.h>
+
+#include <string>
+#include <utility>
+
+#include "breakpad_googletest_includes.h"
+
+namespace tools {
+namespace windows {
+namespace dump_syms {
+
+namespace {
+
+// Root names of PDB and dumped symbol files to be regression tested. These are
+// specified in complexity of the resulting dumped symbol files.
+const wchar_t* kRootNames[] = {
+  // A PDB file with no OMAP data.
+  L"dump_syms_regtest",
+  // A PDB file with OMAP data for an image that has been function-level
+  // reordered.
+  L"omap_reorder_funcs",
+  // A PDB file with OMAP data for an image that had new content injected, all
+  // of it with source data.
+  L"omap_stretched_filled",
+  // A PDB file with OMAP data for an image that had new content injected, but
+  // without source data.
+  L"omap_stretched",
+  // A PDB file with OMAP data for an image that has been basic block reordered.
+  L"omap_reorder_bbs",
+  // A 64bit PDB file with no OMAP data.
+  L"dump_syms_regtest64",
+};
+
+const wchar_t* kPEOnlyRootNames[] = {
+  L"pe_only_symbol_test",
+};
+
+void TrimLastComponent(const std::wstring& path,
+                       std::wstring* trimmed,
+                       std::wstring* component) {
+  size_t len = path.size();
+  while (len > 0 && path[len - 1] != '\\')
+    --len;
+
+  if (component != NULL)
+    component->assign(path.c_str() + len, path.c_str() + path.size());
+
+  while (len > 0 && path[len - 1] == '\\')
+    --len;
+
+  if (trimmed != NULL)
+    trimmed->assign(path.c_str(), len);
+}
+
+// Get the directory of the current executable.
+bool GetSelfDirectory(std::wstring* self_dir) {
+  std::wstring command_line = GetCommandLineW();
+
+  int num_args = 0;
+  wchar_t** args = NULL;
+  args = ::CommandLineToArgvW(command_line.c_str(), &num_args);
+  if (args == NULL)
+    return false;
+
+  *self_dir = args[0];
+  TrimLastComponent(*self_dir, self_dir, NULL);
+
+  return true;
+}
+
+void RunCommand(const std::wstring& command_line,
+                std::string* stdout_string) {
+  // Create a PIPE for the child process stdout.
+  HANDLE child_stdout_read = 0;
+  HANDLE child_stdout_write = 0;
+  SECURITY_ATTRIBUTES sec_attr_stdout = {};
+  sec_attr_stdout.nLength = sizeof(sec_attr_stdout);
+  sec_attr_stdout.bInheritHandle = TRUE;
+  ASSERT_TRUE(::CreatePipe(&child_stdout_read, &child_stdout_write,
+                           &sec_attr_stdout, 0));
+  ASSERT_TRUE(::SetHandleInformation(child_stdout_read, HANDLE_FLAG_INHERIT,
+                                     0));
+
+  // Create a PIPE for the child process stdin.
+  HANDLE child_stdin_read = 0;
+  HANDLE child_stdin_write = 0;
+  SECURITY_ATTRIBUTES sec_attr_stdin = {};
+  sec_attr_stdin.nLength = sizeof(sec_attr_stdin);
+  sec_attr_stdin.bInheritHandle = TRUE;
+  ASSERT_TRUE(::CreatePipe(&child_stdin_read, &child_stdin_write,
+                           &sec_attr_stdin, 0));
+  ASSERT_TRUE(::SetHandleInformation(child_stdin_write, HANDLE_FLAG_INHERIT,
+                                     0));
+
+  // Startup the child.
+  STARTUPINFO startup_info = {};
+  PROCESS_INFORMATION process_info = {};
+  startup_info.cb = sizeof(STARTUPINFO);
+  startup_info.hStdError = NULL;
+  startup_info.hStdInput = child_stdin_read;
+  startup_info.hStdOutput = child_stdout_write;
+  startup_info.dwFlags = STARTF_USESTDHANDLES;
+  ASSERT_TRUE(::CreateProcessW(NULL, (LPWSTR)command_line.c_str(), NULL, NULL,
+                               TRUE, 0, NULL, NULL,
+                               &startup_info, &process_info));
+
+  // Collect the output.
+  ASSERT_TRUE(::CloseHandle(child_stdout_write));
+  char buffer[4096] = {};
+  DWORD bytes_read = 0;
+  while (::ReadFile(child_stdout_read, buffer, sizeof(buffer), &bytes_read,
+                    NULL) && bytes_read > 0) {
+    stdout_string->append(buffer, bytes_read);
+  }
+
+  // Wait for the process to finish.
+  ::WaitForSingleObject(process_info.hProcess, INFINITE);
+
+  // Shut down all of our handles.
+  ASSERT_TRUE(::CloseHandle(process_info.hThread));
+  ASSERT_TRUE(::CloseHandle(process_info.hProcess));
+  ASSERT_TRUE(::CloseHandle(child_stdin_write));
+  ASSERT_TRUE(::CloseHandle(child_stdin_read));
+  ASSERT_TRUE(::CloseHandle(child_stdout_read));
+}
+
+void GetFileContents(const std::wstring& path, std::string* content) {
+  FILE* f = ::_wfopen(path.c_str(), L"rb");
+  ASSERT_TRUE(f != NULL);
+
+  char buffer[4096] = {};
+  while (true) {
+    size_t bytes_read = ::fread(buffer, 1, sizeof(buffer), f);
+    if (bytes_read == 0)
+      break;
+    content->append(buffer, bytes_read);
+  }
+}
+
+class DumpSymsRegressionTest : public testing::TestWithParam<const wchar_t*> {
+ public:
+  virtual void SetUp() {
+    std::wstring self_dir;
+    ASSERT_TRUE(GetSelfDirectory(&self_dir));
+    dump_syms_exe = self_dir + L"\\dump_syms.exe";
+
+    TrimLastComponent(self_dir, &testdata_dir, NULL);
+    testdata_dir += L"\\testdata";
+  }
+
+  std::wstring dump_syms_exe;
+  std::wstring testdata_dir;
+};
+
+class DumpSymsPEOnlyRegressionTest : public testing::TestWithParam<const wchar_t*> {
+public:
+  virtual void SetUp() {
+    std::wstring self_dir;
+    ASSERT_TRUE(GetSelfDirectory(&self_dir));
+    dump_syms_exe = self_dir + L"\\dump_syms.exe";
+
+    TrimLastComponent(self_dir, &testdata_dir, NULL);
+    testdata_dir += L"\\testdata";
+  }
+
+  std::wstring dump_syms_exe;
+  std::wstring testdata_dir;
+};
+
+}  //namespace
+
+TEST_P(DumpSymsRegressionTest, EnsureDumpedSymbolsMatch) {
+  const wchar_t* root_name = GetParam();
+  std::wstring root_path = testdata_dir + L"\\" + root_name;
+
+  std::wstring sym_path = root_path + L".sym";
+  std::string expected_symbols;
+  ASSERT_NO_FATAL_FAILURE(GetFileContents(sym_path, &expected_symbols));
+
+  std::wstring pdb_path = root_path + L".pdb";
+  std::wstring command_line = L"\"" + dump_syms_exe + L"\" \"" +
+    pdb_path + L"\"";
+  std::string symbols;
+  ASSERT_NO_FATAL_FAILURE(RunCommand(command_line, &symbols));
+
+  EXPECT_EQ(expected_symbols, symbols);
+}
+
+INSTANTIATE_TEST_CASE_P(DumpSyms, DumpSymsRegressionTest,
+  testing::ValuesIn(kRootNames));
+
+TEST_P(DumpSymsPEOnlyRegressionTest, EnsurePEOnlyDumpedSymbolsMatch) {
+  const wchar_t* root_name = GetParam();
+  std::wstring root_path = testdata_dir + L"\\" + root_name;
+
+  std::wstring sym_path = root_path + L".sym";
+  std::string expected_symbols;
+  ASSERT_NO_FATAL_FAILURE(GetFileContents(sym_path, &expected_symbols));
+
+  std::wstring dll_path = root_path + L".dll";
+  std::wstring command_line = L"\"" + dump_syms_exe + L"\" --pe \"" +
+    dll_path + L"\"";
+  std::string symbols;
+  ASSERT_NO_FATAL_FAILURE(RunCommand(command_line, &symbols));
+
+  EXPECT_EQ(expected_symbols, symbols);
+}
+
+INSTANTIATE_TEST_CASE_P(PEOnlyDumpSyms, DumpSymsPEOnlyRegressionTest,
+  testing::ValuesIn(kPEOnlyRootNames));
+
+
+}  // namespace dump_syms
+}  // namespace windows
+}  // namespace tools
diff --git a/src/tools/windows/dump_syms/run_regtest.sh b/src/tools/windows/dump_syms/run_regtest.sh
new file mode 100755
index 0000000..1f20f64
--- /dev/null
+++ b/src/tools/windows/dump_syms/run_regtest.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Copyright (c) 2006, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Release/dump_syms.exe testdata/dump_syms_regtest.pdb | \
+ tr -d '\015' > \
+ testdata/dump_syms_regtest.new
+status=$?
+
+if [ $status -ne 0 ] ; then
+  echo "FAIL, dump_syms.exe failed"
+  exit $status
+fi
+
+diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.sym > \
+ testdata/dump_syms_regtest.diff
+status=$?
+
+if [ $status -eq 0 ] ; then
+  rm testdata/dump_syms_regtest.diff testdata/dump_syms_regtest.new
+  echo "PASS"
+else
+  echo "FAIL, see testdata/dump_syms_regtest.[new|diff]"
+fi
+
+exit $status
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc
new file mode 100644
index 0000000..de6109f
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc
@@ -0,0 +1,71 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// with 32-bit cl
+// cl /Zi dump_syms_regtest.cc /link /PROFILE
+// dump_syms dump_syms_regtest.pdb > dump_syms_regtest.sym
+
+// with 64-bit cl
+// cp dump_syms_regtest.cc dump_syms_regtest64.cc
+// cl /Zi dump_syms_regtest64.cc /link /PROFILE
+// dump_syms dump_syms_regtest64.pdb > dump_syms_regtest64.sym
+
+namespace google_breakpad {
+
+class C {
+ public:
+  C() : member_(1) {}
+  virtual ~C() {}
+
+  void set_member(int value) { member_ = value; }
+  int member() const { return member_; }
+
+  void f() { member_ = g(); }
+  virtual int g() { return 2; }
+  static char* h(const C& that) { return 0; }
+
+ private:
+  int member_;
+};
+
+static int i() {
+  return 3;
+}
+
+}  // namespace google_breakpad
+
+int main(int argc, char** argv) {
+  google_breakpad::C object;
+  object.set_member(google_breakpad::i());
+  object.f();
+  int value = object.g();
+  char* nothing = object.h(object);
+
+  return 0;
+}
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb
new file mode 100644
index 0000000..04c42a7
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym
new file mode 100644
index 0000000..696155d
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym
@@ -0,0 +1,2945 @@
+MODULE windows x86 9214611565FA4C538FE724A797B860F71 dump_syms_regtest.pdb
+FILE 1 c:\src\breakpad\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\public\sdk\inc\internal\pebteb.h
+FILE 3 f:\dd\public\sdk\inc\internal\ntldr.h
+FILE 4 f:\dd\public\sdk\inc\internal\ntconfig.h
+FILE 5 f:\dd\public\sdk\inc\internal\ntregapi.h
+FILE 6 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 7 f:\dd\public\ddk\inc\ntdef.h
+FILE 8 f:\dd\public\sdk\inc\internal\ntmmapi.h
+FILE 9 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 10 f:\dd\public\sdk\inc\pshpack1.h
+FILE 11 f:\dd\public\sdk\inc\internal\nxi386.h
+FILE 12 f:\dd\public\ddk\inc\poppack.h
+FILE 13 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 14 f:\dd\public\sdk\inc\pshpack8.h
+FILE 15 f:\dd\public\ddk\inc\ntpoapi.h
+FILE 16 f:\dd\public\sdk\inc\internal\ntexapi.h
+FILE 17 f:\dd\public\sdk\inc\poppack.h
+FILE 18 f:\dd\public\ddk\inc\ntimage.h
+FILE 19 f:\dd\public\ddk\inc\pshpack4.h
+FILE 20 f:\dd\public\sdk\inc\pshpack2.h
+FILE 21 f:\dd\public\ddk\inc\ntnls.h
+FILE 22 f:\dd\public\sdk\inc\internal\ntelfapi.h
+FILE 23 f:\dd\public\sdk\inc\internal\ntpsapi.h
+FILE 24 f:\dd\public\sdk\inc\internal\nti386.h
+FILE 25 f:\dd\public\sdk\inc\specstrings.h
+FILE 26 f:\dd\public\sdk\inc\sal_supp.h
+FILE 27 f:\dd\public\sdk\inc\specstrings_supp.h
+FILE 28 f:\dd\public\sdk\inc\specstrings_strict.h
+FILE 29 f:\dd\public\sdk\inc\specstrings_undef.h
+FILE 30 f:\dd\public\sdk\inc\driverspecs.h
+FILE 31 f:\dd\public\sdk\inc\sdv_driverspecs.h
+FILE 32 f:\dd\public\sdk\inc\basetsd.h
+FILE 33 f:\dd\public\sdk\inc\internal\ntpnpapi.h
+FILE 34 f:\dd\public\sdk\inc\cfg.h
+FILE 35 f:\dd\public\sdk\inc\internal\ntxcapi.h
+FILE 36 f:\dd\public\sdk\inc\guiddef.h
+FILE 37 f:\dd\public\sdk\inc\internal\nt.h
+FILE 38 f:\dd\public\sdk\inc\ntstatus.h
+FILE 39 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 40 f:\dd\public\sdk\inc\internal\ntkeapi.h
+FILE 41 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 42 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 43 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\codeanalysis\sourceannotations.h
+FILE 44 f:\dd\public\sdk\inc\internal\ntobapi.h
+FILE 45 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 46 f:\dd\public\sdk\inc\internal\ntioapi.h
+FILE 47 f:\dd\public\ddk\inc\devioctl.h
+FILE 48 f:\dd\public\sdk\inc\internal\ntseapi.h
+FILE 49 f:\dd\public\ddk\inc\mce.h
+FILE 50 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 51 f:\dd\public\sdk\inc\pshpack4.h
+FILE 52 f:\dd\public\devdiv\inc\ddbanned.h
+FILE 53 f:\dd\public\sdk\inc\internal\ntlpcapi.h
+FILE 54 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 55 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 56 f:\dd\public\sdk\inc\internal\ntiolog.h
+FILE 57 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 58 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 59 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 60 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 61 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 62 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 64 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 65 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 69 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 73 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 77 f:\dd\public\sdk\inc\winreg.h
+FILE 78 f:\dd\public\sdk\inc\imm.h
+FILE 79 f:\dd\public\sdk\inc\wingdi.h
+FILE 80 f:\dd\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 81 f:\dd\public\sdk\inc\winerror.h
+FILE 82 f:\dd\public\sdk\inc\ktmtypes.h
+FILE 84 f:\dd\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 85 f:\dd\public\sdk\inc\windef.h
+FILE 86 f:\dd\public\sdk\inc\winbase.h
+FILE 88 f:\dd\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 89 f:\dd\public\sdk\inc\winuser.h
+FILE 91 f:\dd\public\sdk\inc\winnetwk.h
+FILE 92 f:\dd\public\sdk\inc\winnt.h
+FILE 93 f:\dd\public\sdk\inc\wnnc.h
+FILE 94 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 96 f:\dd\public\sdk\inc\winnls.h
+FILE 98 f:\dd\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 99 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 100 f:\dd\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 101 f:\dd\vctools\crt_bld\self_x86\crt\src\codeanalysis\sourceannotations.h
+FILE 102 f:\dd\public\sdk\inc\winver.h
+FILE 103 f:\dd\public\sdk\inc\verrsrc.h
+FILE 104 f:\dd\public\sdk\inc\wincon.h
+FILE 105 f:\dd\public\sdk\inc\stralign.h
+FILE 107 f:\dd\public\sdk\inc\mcx.h
+FILE 108 f:\dd\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 109 f:\dd\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 110 f:\dd\public\sdk\inc\windows.h
+FILE 111 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 112 f:\dd\public\sdk\inc\sdkddkver.h
+FILE 113 f:\dd\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 114 f:\dd\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 120 f:\dd\public\sdk\inc\reason.h
+FILE 123 f:\dd\public\sdk\inc\kernelspecs.h
+FILE 125 f:\dd\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 126 f:\dd\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 127 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 128 f:\dd\public\sdk\inc\ime_cmodes.h
+FILE 130 f:\dd\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 131 f:\dd\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 132 f:\dd\public\sdk\inc\tvout.h
+FILE 145 f:\dd\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 152 f:\dd\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 164 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 165 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 178 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 182 f:\dd\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 224 f:\dd\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 250 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 251 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 265 f:\dd\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 281 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 291 f:\dd\vctools\crt_bld\self_x86\crt\src\calloc_impl.c
+FILE 299 f:\dd\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 333 f:\dd\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 389 f:\dd\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 453 f:\dd\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 498 f:\dd\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 504 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 561 f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 618 f:\dd\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 677 f:\dd\vctools\crt_bld\self_x86\crt\src\recalloc.c
+FILE 731 f:\dd\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 774 f:\dd\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 777 f:\dd\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 792 f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 844 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 892 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 904 f:\dd\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 943 f:\dd\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 960 f:\dd\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 975 f:\dd\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 1011 f:\dd\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 1039 f:\dd\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1053 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 1063 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmboxw.c
+FILE 1065 f:\dd\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1069 f:\dd\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1120 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 1145 f:\dd\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 1181 f:\dd\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 1244 f:\dd\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 1288 f:\dd\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 1301 f:\dd\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 1344 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 1392 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 1413 f:\binaries.x86ret\inc\mm3dnow.h
+FILE 1415 f:\binaries.x86ret\inc\ammintrin.h
+FILE 1424 f:\binaries.x86ret\inc\immintrin.h
+FILE 1426 f:\binaries.x86ret\inc\wmmintrin.h
+FILE 1427 f:\binaries.x86ret\inc\nmmintrin.h
+FILE 1428 f:\binaries.x86ret\inc\smmintrin.h
+FILE 1429 f:\binaries.x86ret\inc\tmmintrin.h
+FILE 1430 f:\binaries.x86ret\inc\pmmintrin.h
+FILE 1431 f:\binaries.x86ret\inc\emmintrin.h
+FILE 1432 f:\binaries.x86ret\inc\xmmintrin.h
+FILE 1433 f:\binaries.x86ret\inc\mmintrin.h
+FILE 1455 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 1467 f:\dd\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 1468 f:\dd\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 1508 f:\dd\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 1568 f:\dd\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 1627 f:\dd\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 1685 f:\dd\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 1737 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 1742 f:\dd\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 1800 f:\dd\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 1855 f:\dd\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 1913 f:\dd\vctools\crt_bld\self_x86\crt\src\localref.c
+FILE 1962 f:\dd\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1969 f:\dd\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 1989 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 2036 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 2079 f:\dd\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 2128 f:\dd\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 2186 f:\dd\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 2250 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2311 f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2314 f:\dd\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2315 f:\dd\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2369 f:\dd\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2394 f:\dd\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 2419 f:\dd\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 2445 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 2468 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 2493 f:\dd\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 2523 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 2548 f:\dd\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 2578 f:\dd\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 2603 f:\dd\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 2658 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscat_s.c
+FILE 2713 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscpy_s.c
+FILE 2728 f:\dd\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 2776 f:\dd\vctools\crt_bld\self_x86\crt\src\wcsncpy_s.c
+FILE 2787 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm
+FILE 2788 f:\dd\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2789 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memset.asm
+FILE 2791 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcmp.asm
+FILE 2793 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcspn.asm
+FILE 2794 f:\dd\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 2796 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strlen.asm
+FILE 2798 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\_strnicm.asm
+FILE 2800 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strpbrk.asm
+FILE 2803 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\llmul.asm
+FILE 2805 f:\dd\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 2806 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\ulldvrm.asm
+FILE 2820 f:\dd\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 2841 f:\dd\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 2875 f:\dd\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 2931 f:\dd\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 2987 f:\dd\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 2998 f:\dd\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 3045 f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 3106 f:\dd\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 3163 f:\dd\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 3218 f:\dd\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 3271 f:\dd\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 3305 f:\dd\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 3326 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 3386 f:\dd\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 3447 f:\dd\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 3507 f:\dd\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 3583 f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3626 f:\dd\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 3682 f:\dd\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 3774 f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 3778 f:\dd\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 3838 f:\dd\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 3860 f:\dd\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 3891 f:\dd\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 3954 f:\dd\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 3998 f:\dd\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 4012 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 4072 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 4123 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 4186 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 4250 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 4274 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\alloca16.asm
+FILE 4276 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm
+FILE 4289 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 4293 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 4294 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 4295 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 4309 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 4315 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 4327 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 4340 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 4345 f:\dd\vctools\langapi\undname\undname.inl
+FILE 4347 f:\dd\vctools\langapi\undname\utf8.h
+FILE 4355 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 4365 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 4366 f:\dd\vctools\langapi\undname\undname.h
+FILE 4367 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 4368 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 4396 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 4397 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 4401 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 4405 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 4427 f:\dd\vctools\langapi\include\ehdata.h
+FILE 4429 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 4449 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 4472 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 4473 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 4475 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 4487 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 4488 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 4490 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 4491 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 4492 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 4493 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 4496 f:\dd\public\internal\vctools\include\undname.h
+FILE 4531 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 4591 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 4643 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 4664 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 4680 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FUNC 1000 54 0 main
+1000 6 57 1
+1006 8 58 1
+100e e 59 1
+101c 8 60 1
+1024 b 61 1
+102f f 62 1
+103e 12 64 1
+1050 4 65 1
+FUNC 1060 a 0 static int google_breakpad::i()
+1060 3 51 1
+1063 5 52 1
+1068 2 53 1
+FUNC 1070 21 0 google_breakpad::C::C()
+1070 21 37 1
+FUNC 10a0 14 0 google_breakpad::C::~C()
+10a0 14 38 1
+FUNC 10c0 16 0 google_breakpad::C::set_member(int)
+10c0 16 40 1
+FUNC 10e0 1e 0 google_breakpad::C::f()
+10e0 1e 43 1
+FUNC 1100 10 0 google_breakpad::C::g()
+1100 10 44 1
+FUNC 1110 7 0 google_breakpad::C::h(google_breakpad::C const &)
+1110 7 45 1
+FUNC 1120 2c 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 114c 10 0 type_info::~type_info()
+114c 2 49 4531
+114e d 50 4531
+115b 1 51 4531
+FUNC 115c 21 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 117d b 0 operator delete(void *)
+117d 5 20 2875
+1182 1 24 2875
+1183 5 23 2875
+FUNC 1188 29 0 static void fast_error_exit(int)
+1188 5 326 4250
+118d 9 335 4250
+1196 5 337 4250
+119b 8 339 4250
+11a3 c 340 4250
+11af 2 341 4250
+FUNC 11b1 161 0 static int __tmainCRTStartup()
+11b1 c 196 4250
+11bd a 214 4250
+11c7 b 216 4250
+11d2 49 223 4250
+121b 9 225 4250
+1224 8 226 4250
+122c 9 228 4250
+1235 8 229 4250
+123d 5 238 4250
+1242 3 246 4250
+1245 9 248 4250
+124e 8 249 4250
+1256 b 252 4250
+1261 a 255 4250
+126b 9 257 4250
+1274 8 258 4250
+127c 9 259 4250
+1285 8 260 4250
+128d 8 262 4250
+1295 4 263 4250
+1299 7 264 4250
+12a0 a 277 4250
+12aa 18 278 4250
+12c2 5 281 4250
+12c7 6 282 4250
+12cd 5 284 4250
+12d2 2 286 4250
+12d4 17 287 4250
+12eb 6 293 4250
+12f1 6 295 4250
+12f7 6 296 4250
+12fd 5 298 4250
+1302 7 300 4250
+1309 3 302 4250
+130c 6 303 4250
+FUNC 1312 a 0 mainCRTStartup
+1312 0 179 4250
+1312 5 186 4250
+1317 5 188 4250
+FUNC 131c 70 0 type_info::_Type_info_dtor(type_info *)
+131c c 62 4473
+1328 8 63 4473
+1330 4 64 4473
+1334 a 65 4473
+133e d 70 4473
+134b 4 72 4473
+134f 4 74 4473
+1353 6 79 4473
+1359 7 80 4473
+1360 9 94 4473
+1369 4 101 4473
+136d c 103 4473
+1379 6 107 4473
+137f 2 83 4473
+1381 2 72 4473
+1383 9 104 4473
+FUNC 1390 88 0 strcmp
+1390 0 65 2791
+1390 4 73 2791
+1394 4 74 2791
+1398 6 76 2791
+139e 2 77 2791
+13a0 2 81 2791
+13a2 2 83 2791
+13a4 2 84 2791
+13a6 2 85 2791
+13a8 2 86 2791
+13aa 3 87 2791
+13ad 2 88 2791
+13af 2 89 2791
+13b1 2 90 2791
+13b3 3 92 2791
+13b6 3 94 2791
+13b9 2 95 2791
+13bb 2 96 2791
+13bd 2 97 2791
+13bf 3 98 2791
+13c2 2 99 2791
+13c4 3 100 2791
+13c7 3 101 2791
+13ca 2 102 2791
+13cc 4 103 2791
+13d0 2 107 2791
+13d2 2 108 2791
+13d4 2 115 2791
+13d6 2 116 2791
+13d8 3 117 2791
+13db 1 118 2791
+13dc 6 122 2791
+13e2 2 123 2791
+13e4 2 125 2791
+13e6 3 126 2791
+13e9 2 127 2791
+13eb 2 128 2791
+13ed 3 129 2791
+13f0 2 130 2791
+13f2 2 131 2791
+13f4 6 133 2791
+13fa 2 134 2791
+13fc 3 139 2791
+13ff 3 140 2791
+1402 2 141 2791
+1404 2 142 2791
+1406 2 143 2791
+1408 2 144 2791
+140a 3 145 2791
+140d 2 146 2791
+140f 2 147 2791
+1411 2 148 2791
+1413 3 149 2791
+1416 2 150 2791
+FUNC 1418 3a 0 free
+1418 5 40 389
+141d 6 45 389
+1423 11 50 389
+1434 4 51 389
+1438 18 53 389
+1450 2 55 389
+FUNC 1452 42 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+1452 5 67 4397
+1457 32 68 4397
+1489 5 69 4397
+148e 2 72 4397
+1490 4 73 4397
+FUNC 1494 e 0 __CxxSetUnhandledExceptionFilter
+1494 0 86 4397
+1494 b 89 4397
+149f 2 90 4397
+14a1 1 91 4397
+FUNC 14a2 2b 0 __crtCorExitProcess
+14a2 5 675 4186
+14a7 b 679 4186
+14b2 4 680 4186
+14b6 c 681 4186
+14c2 4 682 4186
+14c6 5 683 4186
+14cb 2 693 4186
+FUNC 14cd 18 0 __crtExitProcess
+14cd 5 698 4186
+14d2 9 699 4186
+14db a 708 4186
+FUNC 14e5 9 0 _lockexit
+14e5 0 758 4186
+14e5 8 759 4186
+14ed 1 760 4186
+FUNC 14ee 9 0 _unlockexit
+14ee 0 784 4186
+14ee 8 785 4186
+14f6 1 786 4186
+FUNC 14f7 33 0 _init_pointers
+14f7 3 809 4186
+14fa 7 810 4186
+1501 6 812 4186
+1507 6 813 4186
+150d 6 814 4186
+1513 6 815 4186
+1519 6 816 4186
+151f a 817 4186
+1529 1 818 4186
+FUNC 152a 24 0 _initterm_e
+152a 6 908 4186
+1530 b 917 4186
+153b 6 922 4186
+1541 2 923 4186
+1543 3 924 4186
+1546 6 917 4186
+154c 2 928 4186
+FUNC 154e 97 0 _cinit
+154e 5 258 4186
+1553 18 268 4186
+156b a 270 4186
+1575 5 272 4186
+157a 11 278 4186
+158b 2 279 4186
+158d 2 280 4186
+158f c 283 4186
+159b 20 288 4186
+15bb 1a 301 4186
+15d5 c 303 4186
+15e1 2 307 4186
+15e3 2 308 4186
+FUNC 15e5 140 0 static void doexit(int, int, int)
+15e5 c 489 4186
+15f1 8 507 4186
+15f9 4 508 4186
+15fd f 510 4186
+160c 5 511 4186
+1611 8 514 4186
+1619 a 516 4186
+1623 13 532 4186
+1636 4 533 4186
+163a d 534 4186
+1647 3 538 4186
+164a 3 539 4186
+164d 11 547 4186
+165e 2 550 4186
+1660 4 552 4186
+1664 6 559 4186
+166a 7 562 4186
+1671 2 565 4186
+1673 a 567 4186
+167d 8 568 4186
+1685 a 570 4186
+168f 6 573 4186
+1695 8 574 4186
+169d 5 576 4186
+16a2 21 582 4186
+16c3 21 590 4186
+16e4 c 608 4186
+16f0 6 613 4186
+16f6 a 617 4186
+1700 8 619 4186
+1708 8 621 4186
+1710 6 609 4186
+1716 9 610 4186
+171f 6 622 4186
+FUNC 1725 16 0 exit
+1725 5 392 4186
+172a f 393 4186
+1739 2 394 4186
+FUNC 173b 16 0 _exit
+173b 5 400 4186
+1740 f 401 4186
+174f 2 402 4186
+FUNC 1751 f 0 _cexit
+1751 0 407 4186
+1751 e 408 4186
+175f 1 409 4186
+FUNC 1760 f 0 _c_exit
+1760 0 414 4186
+1760 e 415 4186
+176e 1 416 4186
+FUNC 176f 1e 0 _amsg_exit
+176f 5 439 4186
+1774 5 440 4186
+1779 9 441 4186
+1782 b 442 4186
+FUNC 178d 26 0 _GET_RTERRMSG
+178d 5 165 4012
+1792 2 168 4012
+1794 c 169 4012
+17a0 6 168 4012
+17a6 2 172 4012
+17a8 2 173 4012
+17aa 7 170 4012
+17b1 2 173 4012
+FUNC 17b3 1af 0 _NMSG_WRITE
+17b3 1b 196 4012
+17ce 8 197 4012
+17d6 11 199 4012
+17e7 2a 226 4012
+1811 c 263 4012
+181d 20 272 4012
+183d 21 275 4012
+185e 1f 276 4012
+187d d 279 4012
+188a d 281 4012
+1897 1d 282 4012
+18b4 18 285 4012
+18cc 14 286 4012
+18e0 15 290 4012
+18f5 a 272 4012
+18ff a 228 4012
+1909 9 229 4012
+1912 2 244 4012
+1914 a 246 4012
+191e 6 248 4012
+1924 8 244 4012
+192c 27 260 4012
+1953 f 294 4012
+FUNC 1962 39 0 _FF_MSGBANNER
+1962 0 134 4012
+1962 22 138 4012
+1984 a 140 4012
+198e c 141 4012
+199a 1 143 4012
+FUNC 199b 14a 0 _XcptFilter
+199b 6 195 2369
+19a1 7 202 2369
+19a8 8 203 2369
+19b0 2a 208 2369
+19da 4 210 2369
+19de 3 216 2369
+19e1 4 223 2369
+19e5 7 224 2369
+19ec 5 232 2369
+19f1 4 237 2369
+19f5 8 238 2369
+19fd 3 244 2369
+1a00 6 248 2369
+1a06 a 263 2369
+1a10 c 272 2369
+1a1c 3 280 2369
+1a1f 13 283 2369
+1a32 c 310 2369
+1a3e 9 312 2369
+1a47 7 314 2369
+1a4e 9 316 2369
+1a57 7 318 2369
+1a5e 9 320 2369
+1a67 7 322 2369
+1a6e 9 324 2369
+1a77 7 326 2369
+1a7e 9 328 2369
+1a87 7 330 2369
+1a8e 9 332 2369
+1a97 7 334 2369
+1a9e 9 336 2369
+1aa7 7 338 2369
+1aae 9 340 2369
+1ab7 7 342 2369
+1abe 7 344 2369
+1ac5 8 353 2369
+1acd 3 358 2369
+1ad0 2 360 2369
+1ad2 4 365 2369
+1ad6 4 366 2369
+1ada 4 372 2369
+1ade 5 374 2369
+1ae3 2 376 2369
+FUNC 1ae5 dc 0 _setenvp
+1ae5 0 77 3838
+1ae5 9 85 3838
+1aee 6 86 3838
+1af4 9 91 3838
+1afd 4 98 3838
+1b01 8 99 3838
+1b09 4 110 3838
+1b0d 1 111 3838
+1b0e b 112 3838
+1b19 6 108 3838
+1b1f 15 117 3838
+1b34 2 118 3838
+1b36 9 121 3838
+1b3f 6 123 3838
+1b45 9 125 3838
+1b4e 10 127 3838
+1b5e f 133 3838
+1b6d 3 134 3838
+1b70 7 121 3838
+1b77 b 138 3838
+1b82 7 139 3838
+1b89 3 142 3838
+1b8c a 149 3838
+1b96 2 152 3838
+1b98 2 138 3838
+1b9a 3 153 3838
+1b9d b 129 3838
+1ba8 7 130 3838
+1baf 5 131 3838
+1bb4 d 133 3838
+FUNC 1bc1 19a 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+1bc1 6 221 3891
+1bc7 9 229 3891
+1bd0 2 232 3891
+1bd2 17 234 3891
+1be9 3 253 3891
+1bec 5 255 3891
+1bf1 5 257 3891
+1bf6 9 258 3891
+1bff 2 259 3891
+1c01 2 261 3891
+1c03 4 262 3891
+1c07 8 263 3891
+1c0f 2 265 3891
+1c11 f 267 3891
+1c20 2 268 3891
+1c22 6 269 3891
+1c28 a 270 3891
+1c32 1 271 3891
+1c33 1a 275 3891
+1c4d 4 280 3891
+1c51 4 281 3891
+1c55 4 284 3891
+1c59 9 289 3891
+1c62 a 290 3891
+1c6c 3 291 3891
+1c6f 1 278 3891
+1c70 2 279 3891
+1c72 9 294 3891
+1c7b 6 298 3891
+1c81 9 299 3891
+1c8a 2 300 3891
+1c8c 3 314 3891
+1c8f 4 318 3891
+1c93 1 321 3891
+1c94 1 322 3891
+1c95 5 319 3891
+1c9a 5 324 3891
+1c9f 5 327 3891
+1ca4 e 328 3891
+1cb2 2 329 3891
+1cb4 2 330 3891
+1cb6 d 332 3891
+1cc3 2 335 3891
+1cc5 5 339 3891
+1cca 4 340 3891
+1cce 4 341 3891
+1cd2 6 342 3891
+1cd8 3 341 3891
+1cdb 14 346 3891
+1cef 4 351 3891
+1cf3 12 353 3891
+1d05 b 354 3891
+1d10 2 355 3891
+1d12 a 357 3891
+1d1c 2 358 3891
+1d1e a 359 3891
+1d28 1 360 3891
+1d29 2 361 3891
+1d2b 5 364 3891
+1d30 1 366 3891
+1d31 5 375 3891
+1d36 4 379 3891
+1d3a 7 380 3891
+1d41 2 381 3891
+1d43 8 382 3891
+1d4b 9 385 3891
+1d54 3 386 3891
+1d57 2 387 3891
+1d59 2 388 3891
+FUNC 1d5b bb 0 _setargv
+1d5b 9 88 3891
+1d64 c 97 3891
+1d70 5 98 3891
+1d75 18 104 3891
+1d8d 19 120 3891
+1da6 11 127 3891
+1db7 15 134 3891
+1dcc a 138 3891
+1dd6 2 140 3891
+1dd8 9 142 3891
+1de1 2 143 3891
+1de3 2 144 3891
+1de5 13 151 3891
+1df8 c 156 3891
+1e04 6 160 3891
+1e0a 4 175 3891
+1e0e 6 136 3891
+1e14 2 176 3891
+FUNC 1e16 97 0 __crtGetEnvironmentStringsA
+1e16 a 40 943
+1e20 e 49 943
+1e2e 4 50 943
+1e32 5 54 943
+1e37 8 55 943
+1e3f 9 56 943
+1e48 1b 70 943
+1e63 12 74 943
+1e75 12 88 943
+1e87 9 90 943
+1e90 3 91 943
+1e93 7 94 943
+1e9a 5 95 943
+1e9f 7 76 943
+1ea6 5 77 943
+1eab 2 96 943
+FUNC 1ead 245 0 _ioinit
+1ead 9 111 792
+1eb6 a 122 792
+1ec0 13 129 792
+1ed3 8 131 792
+1edb 15 137 792
+1ef0 3 134 792
+1ef3 a 139 792
+1efd 3 141 792
+1f00 6 143 792
+1f06 4 145 792
+1f0a 3 146 792
+1f0d 1b 147 792
+1f28 15 155 792
+1f3d 2 160 792
+1f3f 6 166 792
+1f45 2 167 792
+1f47 e 173 792
+1f55 d 179 792
+1f62 f 185 792
+1f71 7 199 792
+1f78 c 201 792
+1f84 3 198 792
+1f87 4 203 792
+1f8b 4 205 792
+1f8f 4 206 792
+1f93 10 209 792
+1fa3 12 210 792
+1fb5 b 179 792
+1fc0 2 280 792
+1fc2 6 191 792
+1fc8 6 217 792
+1fce 29 230 792
+1ff7 14 232 792
+200b 7 233 792
+2012 8 234 792
+201a 17 237 792
+2031 3 239 792
+2034 c 217 792
+2040 2 249 792
+2042 b 251 792
+204d c 254 792
+2059 6 302 792
+205f 4 258 792
+2063 30 262 792
+2093 c 273 792
+209f 6 274 792
+20a5 5 275 792
+20aa 4 276 792
+20ae 13 280 792
+20c1 3 282 792
+20c4 2 284 792
+20c6 4 293 792
+20ca 6 294 792
+20d0 a 249 792
+20da c 309 792
+20e6 5 311 792
+20eb 2 312 792
+20ed 5 281 792
+FUNC 20f2 26 0 _RTC_Initialize
+FUNC 2118 26 0 _RTC_Terminate
+FUNC 213e 9 0 _encoded_null
+213e 0 79 3774
+213e 8 80 3774
+2146 1 81 3774
+FUNC 2147 9 4 __crtTlsAlloc
+2147 0 95 3774
+2147 6 96 3774
+214d 3 97 3774
+FUNC 2150 34 0 __set_flsgetvalue
+2150 3 143 3774
+2153 e 145 3774
+2161 4 146 3774
+2165 e 148 3774
+2173 d 149 3774
+2180 3 151 3774
+2183 1 155 3774
+FUNC 2184 3d 0 _mtterm
+2184 0 329 3774
+2184 a 336 3774
+218e f 337 3774
+219d 7 338 3774
+21a4 a 342 3774
+21ae 7 343 3774
+21b5 7 344 3774
+21bc 5 352 3774
+FUNC 21c1 b4 0 _initptd
+21c1 c 379 3774
+21cd b 381 3774
+21d8 a 384 3774
+21e2 4 385 3774
+21e6 6 386 3774
+21ec 3 391 3774
+21ef 7 395 3774
+21f6 7 396 3774
+21fd 7 397 3774
+2204 8 399 3774
+220c 4 400 3774
+2210 9 402 3774
+2219 c 404 3774
+2225 8 411 3774
+222d 3 412 3774
+2230 6 413 3774
+2236 4 421 3774
+223a 8 422 3774
+2242 9 423 3774
+224b c 425 3774
+2257 6 428 3774
+225d 6 404 3774
+2263 9 406 3774
+226c 9 426 3774
+FUNC 2275 79 0 _getptd_noexit
+2275 4 448 3774
+2279 6 452 3774
+227f 15 460 3774
+2294 14 472 3774
+22a8 19 475 3774
+22c1 a 481 3774
+22cb 6 483 3774
+22d1 6 484 3774
+22d7 2 486 3774
+22d9 7 492 3774
+22e0 2 493 3774
+22e2 8 498 3774
+22ea 3 500 3774
+22ed 1 501 3774
+FUNC 22ee 1a 0 _getptd
+22ee 3 522 3774
+22f1 7 523 3774
+22f8 4 524 3774
+22fc 8 525 3774
+2304 3 527 3774
+2307 1 528 3774
+FUNC 2308 12f 4 _freefls
+2308 c 556 3774
+2314 b 567 3774
+231f 7 568 3774
+2326 7 569 3774
+232d 7 571 3774
+2334 7 572 3774
+233b 7 574 3774
+2342 7 575 3774
+2349 7 577 3774
+2350 7 578 3774
+2357 7 580 3774
+235e 7 581 3774
+2365 7 583 3774
+236c 7 584 3774
+2373 7 586 3774
+237a 7 587 3774
+2381 a 589 3774
+238b 7 590 3774
+2392 8 592 3774
+239a 4 593 3774
+239e 1a 596 3774
+23b8 7 597 3774
+23bf c 599 3774
+23cb 8 603 3774
+23d3 7 605 3774
+23da 7 606 3774
+23e1 7 608 3774
+23e8 15 611 3774
+23fd 7 612 3774
+2404 c 615 3774
+2410 7 619 3774
+2417 8 622 3774
+241f 3 599 3774
+2422 9 600 3774
+242b 3 615 3774
+242e 9 616 3774
+FUNC 2437 17b 0 _mtinit
+2437 3 203 3774
+243a d 211 3774
+2447 4 212 3774
+244b 5 213 3774
+2450 3 214 3774
+2453 2 300 3774
+2455 e 218 3774
+2463 d 221 3774
+2470 d 224 3774
+247d d 227 3774
+248a 2a 228 3774
+24b4 a 231 3774
+24be 1a 235 3774
+24d8 25 244 3774
+24fd 5 249 3774
+2502 e 256 3774
+2510 d 257 3774
+251d d 258 3774
+252a 12 259 3774
+253c 7 266 3774
+2543 2 268 3774
+2545 1d 274 3774
+2562 2 276 3774
+2564 29 284 3774
+258d a 294 3774
+2597 6 296 3774
+259d 6 297 3774
+25a3 5 299 3774
+25a8 5 286 3774
+25ad 4 245 3774
+25b1 1 300 3774
+FUNC 25b2 1e 0 _heap_init
+25b2 0 40 453
+25b2 1d 44 453
+25cf 1 60 453
+FUNC 25d0 45 0 _SEH_prolog4
+FUNC 2615 14 0 _SEH_epilog4
+FUNC 2630 18f 0 _except_handler4
+FUNC 27bf 9b 0 __security_init_cookie
+27bf 8 97 1455
+27c7 21 114 1455
+27e8 7 116 1455
+27ef 3 117 1455
+27f2 a 127 1455
+27fc 6 132 1455
+2802 8 135 1455
+280a 8 136 1455
+2812 8 137 1455
+281a a 139 1455
+2824 8 144 1455
+282c 4 161 1455
+2830 7 163 1455
+2837 4 166 1455
+283b c 168 1455
+2847 6 172 1455
+284d b 173 1455
+2858 2 175 1455
+FUNC 285a f 0 _initp_misc_invarg
+285a 5 64 3583
+285f 8 65 3583
+2867 2 66 3583
+FUNC 2869 129 0 _call_reportfault
+2869 16 164 3583
+287f 9 166 3583
+2888 7 167 3583
+288f 17 170 3583
+28a6 1b 172 3583
+28c1 6 179 3583
+28c7 6 180 3583
+28cd 6 181 3583
+28d3 6 182 3583
+28d9 6 183 3583
+28df 6 184 3583
+28e5 7 185 3583
+28ec 7 186 3583
+28f3 7 187 3583
+28fa 7 188 3583
+2901 7 189 3583
+2908 7 190 3583
+290f 1 191 3583
+2910 6 192 3583
+2916 3 198 3583
+2919 19 199 3583
+2932 9 201 3583
+293b 9 240 3583
+2944 9 241 3583
+294d 6 242 3583
+2953 6 245 3583
+2959 a 248 3583
+2963 d 250 3583
+2970 d 254 3583
+297d 7 255 3583
+2984 e 257 3583
+FUNC 2992 25 0 _invoke_watson
+2992 3 146 3583
+2995 12 155 3583
+29a7 f 156 3583
+29b6 1 157 3583
+FUNC 29b7 2d 0 _invalid_parameter
+29b7 5 96 3583
+29bc c 103 3583
+29c8 4 104 3583
+29cc 1 111 3583
+29cd 2 106 3583
+29cf 15 110 3583
+FUNC 29e4 10 0 _invalid_parameter_noinfo
+29e4 0 120 3583
+29e4 f 121 3583
+29f3 1 122 3583
+FUNC 29f4 4a 0 _mtinitlocks
+29f4 4 136 3954
+29f8 7 143 3954
+29ff a 144 3954
+2a09 9 145 3954
+2a12 14 147 3954
+2a26 6 143 3954
+2a2c 3 156 3954
+2a2f 3 157 3954
+2a32 c 150 3954
+FUNC 2a3e 57 0 _mtdeletelocks
+2a3e 3 187 3954
+2a41 d 193 3954
+2a4e c 195 3954
+2a5a 3 199 3954
+2a5d 6 205 3954
+2a63 4 206 3954
+2a67 b 193 3954
+2a72 6 214 3954
+2a78 c 216 3954
+2a84 3 220 3954
+2a87 b 214 3954
+2a92 3 223 3954
+FUNC 2a95 17 0 _unlock
+2a95 5 370 3954
+2a9a 10 374 3954
+2aaa 2 375 3954
+FUNC 2aac c2 0 _mtinitlocknum
+2aac c 258 3954
+2ab8 6 260 3954
+2abe a 268 3954
+2ac8 5 269 3954
+2acd 7 270 3954
+2ad4 c 271 3954
+2ae0 e 275 3954
+2aee 4 276 3954
+2af2 e 278 3954
+2b00 b 279 3954
+2b0b 4 280 3954
+2b0f 8 283 3954
+2b17 3 284 3954
+2b1a 4 286 3954
+2b1e 10 287 3954
+2b2e 7 288 3954
+2b35 b 289 3954
+2b40 3 290 3954
+2b43 2 291 3954
+2b45 2 292 3954
+2b47 2 295 3954
+2b49 7 296 3954
+2b50 c 299 3954
+2b5c 3 303 3954
+2b5f 6 304 3954
+2b65 9 300 3954
+FUNC 2b6e 33 0 _lock
+2b6e 5 332 3954
+2b73 10 337 3954
+2b83 b 339 3954
+2b8e 8 340 3954
+2b96 9 347 3954
+2b9f 2 348 3954
+FUNC 2ba1 5f 0 strcpy_s
+2ba1 5 13 2523
+2ba6 23 18 2523
+2bc9 b 19 2523
+2bd4 11 23 2523
+2be5 4 27 2523
+2be9 3 29 2523
+2bec e 30 2523
+2bfa 4 33 2523
+2bfe 2 34 2523
+FUNC 2c00 8b 0 strlen
+2c00 0 54 2796
+2c00 4 63 2796
+2c04 6 64 2796
+2c0a 2 65 2796
+2c0c 2 69 2796
+2c0e 3 70 2796
+2c11 2 71 2796
+2c13 2 72 2796
+2c15 6 73 2796
+2c1b 2 74 2796
+2c1d 13 76 2796
+2c30 2 81 2796
+2c32 5 82 2796
+2c37 2 83 2796
+2c39 3 84 2796
+2c3c 2 85 2796
+2c3e 3 86 2796
+2c41 5 87 2796
+2c46 2 88 2796
+2c48 3 90 2796
+2c4b 2 91 2796
+2c4d 2 92 2796
+2c4f 2 93 2796
+2c51 2 94 2796
+2c53 5 95 2796
+2c58 2 96 2796
+2c5a 5 97 2796
+2c5f 2 98 2796
+2c61 2 99 2796
+2c63 3 103 2796
+2c66 4 104 2796
+2c6a 2 105 2796
+2c6c 1 106 2796
+2c6d 3 108 2796
+2c70 4 109 2796
+2c74 2 110 2796
+2c76 1 111 2796
+2c77 3 113 2796
+2c7a 4 114 2796
+2c7e 2 115 2796
+2c80 1 116 2796
+2c81 3 118 2796
+2c84 4 119 2796
+2c88 2 120 2796
+2c8a 1 121 2796
+FUNC 2c8b 94 0 malloc
+2c8b 6 81 504
+2c91 a 85 504
+2c9b 3d 89 504
+2cd8 4 94 504
+2cdc b 98 504
+2ce7 b 105 504
+2cf2 2 109 504
+2cf4 7 100 504
+2cfb 7 119 504
+2d02 6 121 504
+2d08 7 111 504
+2d0f b 112 504
+2d1a 3 113 504
+2d1d 2 122 504
+FUNC 2d20 90 0 _local_unwind4
+FUNC 2db0 46 0 static void _unwind_handler4()
+FUNC 2df6 1c 4 _seh_longjmp_unwind4
+FUNC 2e12 17 0 _EH4_CallFilterFunc
+FUNC 2e29 19 0 _EH4_TransferToHandler
+FUNC 2e42 19 0 _EH4_GlobalUnwind2
+FUNC 2e5b 17 8 _EH4_LocalUnwind
+FUNC 2e72 42 0 _get_errno_from_oserr
+2e72 5 119 224
+2e77 5 123 224
+2e7c 9 124 224
+2e85 6 123 224
+2e8b 8 133 224
+2e93 3 134 224
+2e96 2 139 224
+2e98 7 125 224
+2e9f 2 139 224
+2ea1 11 135 224
+2eb2 2 139 224
+FUNC 2eb4 13 0 _errno
+2eb4 0 279 224
+2eb4 5 280 224
+2eb9 4 281 224
+2ebd 5 282 224
+2ec2 1 287 224
+2ec3 3 284 224
+2ec6 1 287 224
+FUNC 2ec7 39 0 terminate()
+2ec7 c 84 4591
+2ed3 8 89 4591
+2edb 4 90 4591
+2edf 4 95 4591
+2ee3 2 99 4591
+2ee5 2 100 4591
+2ee7 7 101 4591
+2eee 7 106 4591
+2ef5 5 114 4591
+2efa 6 115 4591
+FUNC 2f00 11 0 _initp_eh_hooks
+2f00 0 69 4591
+2f00 10 70 4591
+2f10 1 71 4591
+FUNC 2f11 1e 0 _initp_misc_winsig
+2f11 5 57 2311
+2f16 8 58 2311
+2f1e 5 59 2311
+2f23 5 60 2311
+2f28 5 61 2311
+2f2d 2 62 2311
+FUNC 2f2f 37 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+2f2f 5 629 2311
+2f34 a 630 2311
+2f3e 14 639 2311
+2f52 e 642 2311
+2f60 2 646 2311
+2f62 2 651 2311
+2f64 2 652 2311
+FUNC 2f66 d 0 __get_sigabrt
+2f66 0 669 2311
+2f66 c 670 2311
+2f72 1 671 2311
+FUNC 2f73 1a3 0 raise
+2f73 c 450 2311
+2f7f 5 457 2311
+2f84 3 458 2311
+2f87 1f 460 2311
+2fa6 a 486 2311
+2fb0 4 487 2311
+2fb4 8 488 2311
+2fbc a 463 2311
+2fc6 2 465 2311
+2fc8 10 490 2311
+2fd8 2 491 2311
+2fda f 460 2311
+2fe9 12 498 2311
+2ffb a 474 2311
+3005 2 476 2311
+3007 a 468 2311
+3011 2 470 2311
+3013 a 479 2311
+301d 7 480 2311
+3024 a 500 2311
+302e 2 508 2311
+3030 4 507 2311
+3034 6 508 2311
+303a 5 513 2311
+303f 7 518 2311
+3046 5 525 2311
+304b 7 526 2311
+3052 5 528 2311
+3057 f 539 2311
+3066 6 540 2311
+306c 3 541 2311
+306f 5 547 2311
+3074 6 548 2311
+307a 7 549 2311
+3081 5 557 2311
+3086 1a 564 2311
+30a0 d 567 2311
+30ad 5 564 2311
+30b2 7 570 2311
+30b9 c 573 2311
+30c5 5 578 2311
+30ca 8 584 2311
+30d2 2 585 2311
+30d4 6 573 2311
+30da 6 574 2311
+30e0 9 575 2311
+30e9 5 586 2311
+30ee f 593 2311
+30fd 6 594 2311
+3103 5 599 2311
+3108 6 600 2311
+310e 2 603 2311
+3110 6 604 2311
+FUNC 3116 f 0 _initp_misc_rand_s
+3116 5 58 2186
+311b 8 59 2186
+3123 2 60 2186
+FUNC 3125 f 0 _initp_misc_purevirt
+3125 5 179 1627
+312a 8 180 1627
+3132 2 181 1627
+FUNC 3134 f 0 _initp_heap_handler
+3134 5 31 2820
+3139 8 32 2820
+3141 2 33 2820
+FUNC 3143 28 0 _callnewh
+3143 5 131 2820
+3148 c 133 2820
+3154 e 135 2820
+3162 3 138 2820
+3165 2 139 2820
+3167 2 136 2820
+3169 2 139 2820
+FUNC 316b b6 0 static  * _onexit_nolock( *)
+316b 8 100 1969
+3173 f 103 1969
+3182 f 104 1969
+3191 14 108 1969
+31a5 10 118 1969
+31b5 d 123 1969
+31c2 13 125 1969
+31d5 3 130 1969
+31d8 13 132 1969
+31eb 3 143 1969
+31ee f 145 1969
+31fd 10 152 1969
+320d 8 153 1969
+3215 5 155 1969
+321a 5 110 1969
+321f 2 156 1969
+FUNC 3221 31 0 __onexitinit
+3221 3 201 1969
+3224 d 204 1969
+3231 11 205 1969
+3242 4 207 1969
+3246 4 212 1969
+324a 1 217 1969
+324b 3 214 1969
+324e 3 216 1969
+3251 1 217 1969
+FUNC 3252 3c 0 _onexit
+3252 c 81 1969
+325e 5 84 1969
+3263 4 86 1969
+3267 c 87 1969
+3273 c 89 1969
+327f 3 93 1969
+3282 6 94 1969
+3288 6 90 1969
+FUNC 328e 17 0 atexit
+328e 5 161 1969
+3293 10 162 1969
+32a3 2 163 1969
+FUNC 32a5 23 0 _initp_misc_cfltcvt_tab
+32a5 4 54 2419
+32a9 2 56 2419
+32ab 1a 58 2419
+32c5 3 60 2419
+FUNC 32d0 35 0 _ValidateImageBase
+32d0 5 44 2079
+32d5 d 50 2079
+32e2 2 52 2079
+32e4 2 68 2079
+32e6 5 55 2079
+32eb 6 56 2079
+32f1 2 58 2079
+32f3 10 62 2079
+3303 2 68 2079
+FUNC 3310 44 0 _FindPESection
+3310 5 92 2079
+3315 8 99 2079
+331d 18 108 2079
+3335 10 111 2079
+3345 8 108 2079
+334d 5 123 2079
+3352 2 124 2079
+FUNC 3360 bc 0 _IsNonwritableInCurrentImage
+3360 35 149 2079
+3395 7 156 2079
+339c f 164 2079
+33ab 2 166 2079
+33ad 8 174 2079
+33b5 e 175 2079
+33c3 2 176 2079
+33c5 2 178 2079
+33c7 12 185 2079
+33d9 12 195 2079
+33eb 16 187 2079
+3401 9 193 2079
+340a 12 195 2079
+FUNC 341c 16c 0 __crtMessageBoxW
+341c 12 41 1053
+342e 14 49 1053
+3442 4 56 1053
+3446 c 62 1053
+3452 d 64 1053
+345f 2 65 1053
+3461 6 67 1053
+3467 10 72 1053
+3477 6 76 1053
+347d 9 78 1053
+3486 10 81 1053
+3496 10 84 1053
+34a6 d 88 1053
+34b3 8 93 1053
+34bb 4 95 1053
+34bf 10 97 1053
+34cf 1a 110 1053
+34e9 3 113 1053
+34ec c 114 1053
+34f8 8 116 1053
+3500 1f 121 1053
+351f 7 130 1053
+3526 2 132 1053
+3528 a 134 1053
+3532 3 136 1053
+3535 4 137 1053
+3539 5 139 1053
+353e e 143 1053
+354c 3 145 1053
+354f 4 146 1053
+3553 8 148 1053
+355b 8 155 1053
+3563 4 156 1053
+3567 10 158 1053
+3577 2 163 1053
+3579 f 166 1053
+FUNC 3588 75 0 wcscat_s
+3588 6 13 2468
+358e 22 18 2468
+35b0 2 46 2468
+35b2 e 19 2468
+35c0 2 21 2468
+35c2 6 23 2468
+35c8 3 25 2468
+35cb 3 26 2468
+35ce 2 29 2468
+35d0 2 32 2468
+35d2 14 35 2468
+35e6 9 41 2468
+35ef e 42 2468
+FUNC 35fd cd 0 wcsncpy_s
+35fd 5 13 2578
+3602 16 17 2578
+3618 5 65 2578
+361d 2 66 2578
+361f 1e 24 2578
+363d 4 25 2578
+3641 5 28 2578
+3646 2 29 2578
+3648 e 31 2578
+3656 2 33 2578
+3658 5 35 2578
+365d 16 37 2578
+3673 2 41 2578
+3675 19 45 2578
+368e 4 48 2578
+3692 5 50 2578
+3697 8 54 2578
+369f a 58 2578
+36a9 d 59 2578
+36b6 3 61 2578
+36b9 11 62 2578
+FUNC 36ca 1b 0 wcslen
+36ca 5 41 2728
+36cf 3 42 2728
+36d2 b 44 2728
+36dd 6 46 2728
+36e3 2 47 2728
+FUNC 36e5 63 0 wcscpy_s
+36e5 6 13 2523
+36eb 22 18 2523
+370d 2 34 2523
+370f c 19 2523
+371b 16 23 2523
+3731 9 29 2523
+373a e 30 2523
+FUNC 3748 3f 0 _set_error_mode
+3748 5 43 1181
+374d 11 46 1181
+375e 5 54 1181
+3763 2 61 1181
+3765 5 50 1181
+376a 6 51 1181
+3770 2 61 1181
+3772 13 57 1181
+3785 2 61 1181
+FUNC 3787 f 0 __security_check_cookie
+3787 0 52 892
+3787 6 55 892
+378d 2 56 892
+378f 2 57 892
+3791 5 59 892
+FUNC 3796 45 0 _malloc_crt
+3796 7 39 333
+379d 2 40 333
+379f b 44 333
+37aa c 45 333
+37b6 1a 46 333
+37d0 5 47 333
+37d5 4 50 333
+37d9 2 51 333
+FUNC 37db 4c 0 _calloc_crt
+37db 7 54 333
+37e2 2 55 333
+37e4 12 61 333
+37f6 c 62 333
+3802 1a 63 333
+381c 5 64 333
+3821 4 67 333
+3825 2 68 333
+FUNC 3827 4e 0 _realloc_crt
+3827 7 71 333
+382e 2 72 333
+3830 f 76 333
+383f 11 77 333
+3850 1a 78 333
+386a 5 79 333
+386f 4 82 333
+3873 2 83 333
+FUNC 3875 2f 0 static int CPtoLCID(int)
+3875 0 329 3326
+3875 14 330 3326
+3889 2 345 3326
+388b 1 346 3326
+388c 5 342 3326
+3891 1 346 3326
+3892 5 339 3326
+3897 1 346 3326
+3898 5 336 3326
+389d 1 346 3326
+389e 5 333 3326
+38a3 1 346 3326
+FUNC 38a4 64 0 static void setSBCS(struct threadmbcinfostruct *)
+38a4 6 363 3326
+38aa 11 368 3326
+38bb 1b 379 3326
+38d6 12 381 3326
+38e8 9 382 3326
+38f1 b 384 3326
+38fc 9 385 3326
+3905 3 386 3326
+FUNC 3908 190 0 static void setSBUpLow(struct threadmbcinfostruct *)
+3908 17 402 3326
+391f 10 412 3326
+392f f 415 3326
+393e c 416 3326
+394a 11 420 3326
+395b 6 419 3326
+3961 20 421 3326
+3981 a 420 3326
+398b 20 427 3326
+39ab 23 432 3326
+39ce 25 437 3326
+39f3 2 442 3326
+39f5 d 443 3326
+3a02 5 445 3326
+3a07 9 446 3326
+3a10 5 448 3326
+3a15 5 450 3326
+3a1a e 451 3326
+3a28 2 453 3326
+3a2a 7 454 3326
+3a31 5 442 3326
+3a36 8 456 3326
+3a3e 12 472 3326
+3a50 17 461 3326
+3a67 5 463 3326
+3a6c 5 464 3326
+3a71 5 466 3326
+3a76 5 468 3326
+3a7b 5 469 3326
+3a80 2 471 3326
+3a82 3 472 3326
+3a85 5 460 3326
+3a8a e 474 3326
+FUNC 3a98 a4 0 __updatetmbcinfo
+3a98 c 495 3326
+3aa4 7 498 3326
+3aab 10 499 3326
+3abb 3 532 3326
+3abe 4 535 3326
+3ac2 8 537 3326
+3aca 2 540 3326
+3acc 6 541 3326
+3ad2 8 500 3326
+3ada 4 502 3326
+3ade e 505 3326
+3aec 17 511 3326
+3b03 7 516 3326
+3b0a 11 523 3326
+3b1b 7 524 3326
+3b22 11 527 3326
+3b33 9 529 3326
+FUNC 3b3c 87 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+3b3c 5 240 111
+3b41 e 241 111
+3b4f 8 243 111
+3b57 5 244 111
+3b5c 6 245 111
+3b62 1c 247 111
+3b7e 21 248 111
+3b9f 9 249 111
+3ba8 4 251 111
+3bac 4 252 111
+3bb0 2 255 111
+3bb2 a 257 111
+3bbc 7 259 111
+FUNC 3bc3 7c 0 static int getSystemCP(int)
+3bc3 9 282 3326
+3bcc b 284 3326
+3bd7 6 285 3326
+3bdd 5 289 3326
+3be2 a 291 3326
+3bec 14 292 3326
+3c00 5 295 3326
+3c05 a 297 3326
+3c0f 8 298 3326
+3c17 5 302 3326
+3c1c 12 305 3326
+3c2e f 308 3326
+3c3d 2 309 3326
+FUNC 3c3f 1e9 0 _setmbcp_nolock
+3c3f 17 684 3326
+3c56 b 691 3326
+3c61 9 694 3326
+3c6a 7 696 3326
+3c71 7 697 3326
+3c78 3 701 3326
+3c7b 2 703 3326
+3c7d c 706 3326
+3c89 d 703 3326
+3c96 2a 741 3326
+3cc0 13 749 3326
+3cd3 f 754 3326
+3ce2 15 759 3326
+3cf7 17 762 3326
+3d0e c 764 3326
+3d1a f 710 3326
+3d29 15 713 3326
+3d3e 9 718 3326
+3d47 8 721 3326
+3d4f 12 722 3326
+3d61 4 721 3326
+3d65 b 718 3326
+3d70 12 713 3326
+3d82 20 729 3326
+3da2 f 731 3326
+3db1 7 734 3326
+3db8 5 735 3326
+3dbd 6 765 3326
+3dc3 4 764 3326
+3dc7 d 762 3326
+3dd4 8 769 3326
+3ddc 7 770 3326
+3de3 b 773 3326
+3dee 3 776 3326
+3df1 2 778 3326
+3df3 3 780 3326
+3df6 12 783 3326
+3e08 2 787 3326
+3e0a 6 792 3326
+3e10 6 795 3326
+3e16 3 744 3326
+3e19 f 800 3326
+FUNC 3e28 19a 0 _setmbcp
+3e28 c 572 3326
+3e34 4 573 3326
+3e38 a 577 3326
+3e42 5 579 3326
+3e47 3 580 3326
+3e4a b 582 3326
+3e55 9 584 3326
+3e5e d 590 3326
+3e6b 8 592 3326
+3e73 c 594 3326
+3e7f 3 605 3326
+3e82 16 610 3326
+3e98 1a 612 3326
+3eb2 7 613 3326
+3eb9 3 617 3326
+3ebc 9 618 3326
+3ec5 17 620 3326
+3edc 8 622 3326
+3ee4 4 623 3326
+3ee8 8 628 3326
+3ef0 8 629 3326
+3ef8 8 630 3326
+3f00 a 631 3326
+3f0a d 632 3326
+3f17 3 631 3326
+3f1a c 633 3326
+3f26 a 634 3326
+3f30 3 633 3326
+3f33 c 635 3326
+3f3f d 636 3326
+3f4c 3 635 3326
+3f4f 1c 638 3326
+3f6b 7 639 3326
+3f72 6 643 3326
+3f78 3 644 3326
+3f7b e 646 3326
+3f89 9 648 3326
+3f92 2 651 3326
+3f94 5 652 3326
+3f99 8 658 3326
+3fa1 7 659 3326
+3fa8 b 660 3326
+3fb3 2 666 3326
+3fb5 4 671 3326
+3fb9 3 680 3326
+3fbc 6 681 3326
+FUNC 3fc2 1e 0 __initmbctable
+3fc2 0 841 3326
+3fc2 9 851 3326
+3fcb 8 852 3326
+3fd3 a 853 3326
+3fdd 2 858 3326
+3fdf 1 859 3326
+FUNC 3fe0 53 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+3fe0 8 213 3271
+3fe8 b 214 3271
+3ff3 4 219 3271
+3ff7 3a 222 3271
+4031 2 223 3271
+FUNC 4033 18 0 _ismbblead
+4033 5 171 3271
+4038 11 172 3271
+4049 2 173 3271
+FUNC 404b 8f 0 __addlocaleref
+404b 7 36 1913
+4052 d 39 1913
+405f a 41 1913
+4069 3 42 1913
+406c a 44 1913
+4076 3 45 1913
+4079 a 47 1913
+4083 3 48 1913
+4086 a 50 1913
+4090 3 51 1913
+4093 a 53 1913
+409d f 55 1913
+40ac 3 56 1913
+40af d 59 1913
+40bc 3 60 1913
+40bf 8 53 1913
+40c7 11 63 1913
+40d8 2 64 1913
+FUNC 40da 99 0 __removelocaleref
+40da 6 74 1913
+40e0 b 77 1913
+40eb b 79 1913
+40f6 a 81 1913
+4100 3 82 1913
+4103 a 84 1913
+410d 3 85 1913
+4110 a 87 1913
+411a 3 88 1913
+411d a 90 1913
+4127 3 91 1913
+412a a 93 1913
+4134 f 95 1913
+4143 3 96 1913
+4146 d 99 1913
+4153 3 100 1913
+4156 8 93 1913
+415e 10 103 1913
+416e 3 106 1913
+4171 2 107 1913
+FUNC 4173 14b 0 __freetlocinfo
+4173 7 129 1913
+417a 25 137 1913
+419f e 140 1913
+41ad 6 142 1913
+41b3 d 143 1913
+41c0 e 147 1913
+41ce 6 149 1913
+41d4 d 150 1913
+41e1 b 153 1913
+41ec d 154 1913
+41f9 e 161 1913
+4207 11 163 1913
+4218 13 164 1913
+422b e 165 1913
+4239 e 166 1913
+4247 15 173 1913
+425c 6 175 1913
+4262 d 176 1913
+426f a 179 1913
+4279 13 182 1913
+428c 7 184 1913
+4293 10 192 1913
+42a3 7 194 1913
+42aa 8 179 1913
+42b2 a 201 1913
+42bc 2 202 1913
+FUNC 42be 4d 0 _updatetlocinfoEx_nolock
+42be 6 216 1913
+42c4 e 219 1913
+42d2 3 222 1913
+42d5 4 223 1913
+42d9 9 230 1913
+42e2 4 236 1913
+42e6 6 238 1913
+42ec e 248 1913
+42fa 7 249 1913
+4301 5 253 1913
+4306 3 220 1913
+4309 2 254 1913
+FUNC 430b 79 0 __updatetlocinfo
+430b c 281 1913
+4317 7 283 1913
+431e 10 285 1913
+432e 8 297 1913
+4336 4 300 1913
+433a 8 302 1913
+4342 2 305 1913
+4344 6 306 1913
+434a 8 286 1913
+4352 4 288 1913
+4356 14 290 1913
+436a e 292 1913
+4378 8 294 1913
+4380 4 295 1913
+FUNC 4384 8 0 _crt_debugger_hook
+4384 0 62 1145
+4384 7 65 1145
+438b 1 66 1145
+FUNC 4390 7a 0 memset
+4390 0 59 2789
+4390 4 68 2789
+4394 4 69 2789
+4398 2 71 2789
+439a 2 72 2789
+439c 2 74 2789
+439e 4 75 2789
+43a2 2 78 2789
+43a4 2 79 2789
+43a6 6 80 2789
+43ac 2 81 2789
+43ae 7 82 2789
+43b5 2 83 2789
+43b7 5 85 2789
+43bc 1 91 2789
+43bd 2 92 2789
+43bf 3 94 2789
+43c2 2 95 2789
+43c4 2 97 2789
+43c6 3 98 2789
+43c9 2 99 2789
+43cb 2 101 2789
+43cd 2 103 2789
+43cf 3 104 2789
+43d2 3 105 2789
+43d5 2 106 2789
+43d7 2 110 2789
+43d9 3 111 2789
+43dc 2 113 2789
+43de 2 115 2789
+43e0 3 117 2789
+43e3 2 119 2789
+43e5 2 122 2789
+43e7 3 123 2789
+43ea 3 124 2789
+43ed 2 125 2789
+43ef 2 127 2789
+43f1 2 129 2789
+43f3 2 130 2789
+43f5 2 134 2789
+43f7 3 135 2789
+43fa 3 137 2789
+43fd 2 138 2789
+43ff 4 142 2789
+4403 1 143 2789
+4404 1 145 2789
+4405 4 148 2789
+4409 1 150 2789
+FUNC 4410 95 0 _aulldvrm
+4410 0 45 2806
+4410 1 48 2806
+4411 4 80 2806
+4415 2 81 2806
+4417 2 82 2806
+4419 4 83 2806
+441d 4 84 2806
+4421 2 85 2806
+4423 2 86 2806
+4425 2 87 2806
+4427 4 88 2806
+442b 2 89 2806
+442d 2 90 2806
+442f 2 95 2806
+4431 4 96 2806
+4435 2 97 2806
+4437 2 98 2806
+4439 4 99 2806
+443d 2 100 2806
+443f 2 101 2806
+4441 2 108 2806
+4443 4 109 2806
+4447 4 110 2806
+444b 4 111 2806
+444f 2 113 2806
+4451 2 114 2806
+4453 2 115 2806
+4455 2 116 2806
+4457 2 117 2806
+4459 2 118 2806
+445b 2 119 2806
+445d 2 120 2806
+445f 4 129 2806
+4463 2 130 2806
+4465 4 131 2806
+4469 2 132 2806
+446b 2 133 2806
+446d 2 134 2806
+446f 4 142 2806
+4473 2 143 2806
+4475 2 144 2806
+4477 4 145 2806
+447b 2 146 2806
+447d 1 148 2806
+447e 4 149 2806
+4482 4 150 2806
+4486 2 152 2806
+4488 4 161 2806
+448c 4 162 2806
+4490 2 163 2806
+4492 2 164 2806
+4494 3 165 2806
+4497 2 170 2806
+4499 2 171 2806
+449b 2 172 2806
+449d 2 173 2806
+449f 2 174 2806
+44a1 1 180 2806
+44a2 3 182 2806
+FUNC 44b0 20 0 _global_unwind2
+FUNC 44d0 45 0 static void __unwind_handler()
+FUNC 4515 84 0 _local_unwind2
+FUNC 4599 23 0 _abnormal_termination
+FUNC 45bc 9 0 _NLG_Notify1
+FUNC 45c5 1f 0 _NLG_Notify
+PUBLIC m 45dc 0 _NLG_Dispatch
+FUNC 45e4 3 0 _NLG_Call
+PUBLIC 45e6 0 _NLG_Return2
+FUNC 45e7 33 0 abort
+45e7 0 54 1011
+45e7 5 71 1011
+45ec 4 72 1011
+45f0 8 74 1011
+45f8 9 81 1011
+4601 11 83 1011
+4612 8 92 1011
+FUNC 4620 361 0 memcpy
+4620 3 101 2787
+4623 1 113 2787
+4624 1 114 2787
+4625 3 116 2787
+4628 3 117 2787
+462b 3 119 2787
+462e 2 129 2787
+4630 2 131 2787
+4632 2 132 2787
+4634 2 134 2787
+4636 2 135 2787
+4638 2 137 2787
+463a 6 138 2787
+4640 6 147 2787
+4646 2 148 2787
+4648 7 150 2787
+464f 2 151 2787
+4651 1 153 2787
+4652 1 154 2787
+4653 3 155 2787
+4656 3 156 2787
+4659 2 157 2787
+465b 1 158 2787
+465c 1 159 2787
+465d 2 160 2787
+465f 5 163 2787
+4664 6 176 2787
+466a 2 177 2787
+466c 3 179 2787
+466f 3 180 2787
+4672 3 182 2787
+4675 2 183 2787
+4677 2 185 2787
+4679 7 187 2787
+4680 2 205 2787
+4682 5 206 2787
+4687 3 208 2787
+468a 2 209 2787
+468c 3 211 2787
+468f 2 212 2787
+4691 7 214 2787
+4698 8 218 2787
+46a0 14 222 2787
+46b4 2 229 2787
+46b6 2 230 2787
+46b8 2 232 2787
+46ba 3 233 2787
+46bd 3 235 2787
+46c0 3 236 2787
+46c3 3 238 2787
+46c6 3 239 2787
+46c9 3 241 2787
+46cc 3 242 2787
+46cf 3 244 2787
+46d2 2 245 2787
+46d4 2 247 2787
+46d6 a 249 2787
+46e0 2 253 2787
+46e2 2 254 2787
+46e4 2 256 2787
+46e6 3 257 2787
+46e9 3 259 2787
+46ec 3 260 2787
+46ef 3 262 2787
+46f2 3 263 2787
+46f5 3 265 2787
+46f8 2 266 2787
+46fa 2 268 2787
+46fc 8 270 2787
+4704 2 274 2787
+4706 2 275 2787
+4708 2 277 2787
+470a 3 278 2787
+470d 3 280 2787
+4710 3 281 2787
+4713 3 283 2787
+4716 2 284 2787
+4718 2 286 2787
+471a 2a 288 2787
+4744 4 295 2787
+4748 4 297 2787
+474c 4 299 2787
+4750 4 301 2787
+4754 4 303 2787
+4758 4 305 2787
+475c 4 307 2787
+4760 4 309 2787
+4764 4 311 2787
+4768 4 313 2787
+476c 4 315 2787
+4770 4 317 2787
+4774 4 319 2787
+4778 4 321 2787
+477c 7 323 2787
+4783 2 325 2787
+4785 2 326 2787
+4787 19 328 2787
+47a0 3 337 2787
+47a3 1 338 2787
+47a4 1 339 2787
+47a5 3 341 2787
+47a8 2 345 2787
+47aa 2 347 2787
+47ac 3 348 2787
+47af 1 349 2787
+47b0 1 350 2787
+47b1 3 351 2787
+47b4 2 355 2787
+47b6 2 357 2787
+47b8 3 358 2787
+47bb 3 359 2787
+47be 3 360 2787
+47c1 1 361 2787
+47c2 1 362 2787
+47c3 5 363 2787
+47c8 2 367 2787
+47ca 2 369 2787
+47cc 3 370 2787
+47cf 3 371 2787
+47d2 3 372 2787
+47d5 3 373 2787
+47d8 3 374 2787
+47db 1 375 2787
+47dc 1 376 2787
+47dd 3 377 2787
+47e0 4 388 2787
+47e4 4 389 2787
+47e8 6 394 2787
+47ee 2 395 2787
+47f0 3 397 2787
+47f3 3 398 2787
+47f6 3 400 2787
+47f9 2 401 2787
+47fb 1 403 2787
+47fc 2 404 2787
+47fe 1 405 2787
+47ff 9 407 2787
+4808 2 411 2787
+480a a 414 2787
+4814 2 419 2787
+4816 5 420 2787
+481b 3 422 2787
+481e 2 423 2787
+4820 3 425 2787
+4823 2 426 2787
+4825 7 428 2787
+482c 14 432 2787
+4840 3 439 2787
+4843 2 440 2787
+4845 3 442 2787
+4848 3 443 2787
+484b 3 445 2787
+484e 3 446 2787
+4851 3 448 2787
+4854 2 449 2787
+4856 1 451 2787
+4857 2 452 2787
+4859 1 453 2787
+485a a 455 2787
+4864 3 459 2787
+4867 2 460 2787
+4869 3 462 2787
+486c 3 463 2787
+486f 3 465 2787
+4872 3 466 2787
+4875 3 468 2787
+4878 3 469 2787
+487b 3 471 2787
+487e 2 472 2787
+4880 1 474 2787
+4881 2 475 2787
+4883 1 476 2787
+4884 8 478 2787
+488c 3 482 2787
+488f 2 483 2787
+4891 3 485 2787
+4894 3 486 2787
+4897 3 488 2787
+489a 3 489 2787
+489d 3 491 2787
+48a0 3 492 2787
+48a3 3 494 2787
+48a6 3 495 2787
+48a9 3 497 2787
+48ac 6 498 2787
+48b2 1 500 2787
+48b3 2 501 2787
+48b5 1 502 2787
+48b6 2a 504 2787
+48e0 4 513 2787
+48e4 4 515 2787
+48e8 4 517 2787
+48ec 4 519 2787
+48f0 4 521 2787
+48f4 4 523 2787
+48f8 4 525 2787
+48fc 4 527 2787
+4900 4 529 2787
+4904 4 531 2787
+4908 4 533 2787
+490c 4 535 2787
+4910 4 537 2787
+4914 4 539 2787
+4918 7 541 2787
+491f 2 543 2787
+4921 2 544 2787
+4923 19 546 2787
+493c 3 555 2787
+493f 1 557 2787
+4940 1 558 2787
+4941 3 559 2787
+4944 3 563 2787
+4947 3 565 2787
+494a 3 566 2787
+494d 1 567 2787
+494e 1 568 2787
+494f 5 569 2787
+4954 3 573 2787
+4957 3 575 2787
+495a 3 576 2787
+495d 3 577 2787
+4960 3 578 2787
+4963 1 579 2787
+4964 1 580 2787
+4965 3 581 2787
+4968 3 585 2787
+496b 3 587 2787
+496e 3 588 2787
+4971 3 589 2787
+4974 3 590 2787
+4977 3 591 2787
+497a 3 592 2787
+497d 1 593 2787
+497e 1 594 2787
+497f 2 595 2787
+FUNC 4981 20 0 _freea
+4981 5 235 281
+4986 7 237 281
+498d 3 239 281
+4990 8 241 281
+4998 7 243 281
+499f 2 252 281
+FUNC 49a1 33 0 _msize
+49a1 5 39 561
+49a6 19 43 561
+49bf 2 50 561
+49c1 11 46 561
+49d2 2 50 561
+FUNC 49d4 9 0 _fptrap
+49d4 0 46 4123
+49d4 8 47 4123
+49dc 1 48 4123
+FUNC 49dd 106 0 __report_gsfailure
+49dd b 140 1392
+49e8 5 170 1392
+49ed 6 171 1392
+49f3 6 172 1392
+49f9 6 173 1392
+49ff 6 174 1392
+4a05 6 175 1392
+4a0b 7 176 1392
+4a12 7 177 1392
+4a19 7 178 1392
+4a20 7 179 1392
+4a27 7 180 1392
+4a2e 7 181 1392
+4a35 1 182 1392
+4a36 6 183 1392
+4a3c 3 190 1392
+4a3f 5 191 1392
+4a44 3 192 1392
+4a47 5 193 1392
+4a4c 3 194 1392
+4a4f 5 195 1392
+4a54 6 201 1392
+4a5a a 204 1392
+4a64 a 206 1392
+4a6e a 285 1392
+4a78 a 286 1392
+4a82 b 293 1392
+4a8d b 294 1392
+4a98 b 297 1392
+4aa3 8 298 1392
+4aab 8 302 1392
+4ab3 b 304 1392
+4abe 9 313 1392
+4ac7 8 315 1392
+4acf 12 319 1392
+4ae1 2 320 1392
+FUNC 4ae3 82 0 _calloc_impl
+4ae3 5 21 291
+4ae8 7 26 291
+4aef 19 28 291
+4b08 2 69 291
+4b0a 7 30 291
+4b11 4 34 291
+4b15 1 35 291
+4b16 2 39 291
+4b18 5 41 291
+4b1d f 44 291
+4b2c d 47 291
+4b39 b 59 291
+4b44 7 61 291
+4b4b 6 62 291
+4b51 4 63 291
+4b55 7 52 291
+4b5c 7 53 291
+4b63 2 69 291
+FUNC 4b65 ad 0 realloc
+4b65 5 62 618
+4b6a 6 67 618
+4b70 9 68 618
+4b79 3 117 618
+4b7c 7 71 618
+4b83 9 73 618
+4b8c 5 74 618
+4b91 2 109 618
+4b93 4 83 618
+4b97 1 84 618
+4b98 14 85 618
+4bac c 94 618
+4bb8 b 109 618
+4bc3 5 81 618
+4bc8 7 89 618
+4bcf b 90 618
+4bda 4 91 618
+4bde 2 117 618
+4be0 16 111 618
+4bf6 2 112 618
+4bf8 16 103 618
+4c0e 4 105 618
+FUNC 4c12 1e7 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+4c12 12 96 3447
+4c24 c 101 3447
+4c30 17 102 3447
+4c47 4 106 3447
+4c4b 1 107 3447
+4c4c 3 109 3447
+4c4f 3 113 3447
+4c52 5 133 3447
+4c57 b 134 3447
+4c62 2c 145 3447
+4c8e 7 146 3447
+4c95 48 149 3447
+4cdd 3 150 3447
+4ce0 2 151 3447
+4ce2 19 160 3447
+4cfb 1f 169 3447
+4d1a a 172 3447
+4d24 b 175 3447
+4d2f 9 177 3447
+4d38 10 186 3447
+4d48 5 190 3447
+4d4d 4b 196 3447
+4d98 4 197 3447
+4d9c 16 207 3447
+4db2 9 220 3447
+4dbb 2 223 3447
+4dbd 17 233 3447
+4dd4 7 240 3447
+4ddb 8 242 3447
+4de3 4 244 3447
+4de7 12 245 3447
+FUNC 4df9 46 0 __crtLCMapStringA
+4df9 8 258 3447
+4e01 b 259 3447
+4e0c 31 271 3447
+4e3d 2 272 3447
+FUNC 4e3f e7 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+4e3f 12 63 3507
+4e51 7 67 3507
+4e58 5 83 3507
+4e5d b 84 3507
+4e68 29 95 3507
+4e91 4 96 3507
+4e95 3e 99 3507
+4ed3 2 100 3507
+4ed5 2 101 3507
+4ed7 f 103 3507
+4ee6 13 111 3507
+4ef9 11 116 3507
+4f0a 6 118 3507
+4f10 4 120 3507
+4f14 12 121 3507
+FUNC 4f26 40 0 __crtGetStringTypeA
+4f26 8 133 3507
+4f2e b 134 3507
+4f39 2b 145 3507
+4f64 2 146 3507
+FUNC 4f66 377 0 __free_lc_time
+4f66 6 228 1800
+4f6c b 229 1800
+4f77 8 232 1800
+4f7f 8 233 1800
+4f87 8 234 1800
+4f8f 8 235 1800
+4f97 8 236 1800
+4f9f 8 237 1800
+4fa7 7 238 1800
+4fae 8 240 1800
+4fb6 8 241 1800
+4fbe 8 242 1800
+4fc6 8 243 1800
+4fce 8 244 1800
+4fd6 8 245 1800
+4fde 8 246 1800
+4fe6 8 248 1800
+4fee b 249 1800
+4ff9 8 250 1800
+5001 8 251 1800
+5009 8 252 1800
+5011 8 253 1800
+5019 8 254 1800
+5021 8 255 1800
+5029 8 256 1800
+5031 8 257 1800
+5039 8 258 1800
+5041 8 259 1800
+5049 8 261 1800
+5051 8 262 1800
+5059 8 263 1800
+5061 8 264 1800
+5069 8 265 1800
+5071 b 266 1800
+507c b 267 1800
+5087 b 268 1800
+5092 b 269 1800
+509d b 270 1800
+50a8 b 271 1800
+50b3 b 272 1800
+50be b 274 1800
+50c9 b 275 1800
+50d4 b 277 1800
+50df b 278 1800
+50ea b 279 1800
+50f5 b 282 1800
+5100 b 283 1800
+510b b 284 1800
+5116 b 285 1800
+5121 e 286 1800
+512f b 287 1800
+513a b 288 1800
+5145 b 290 1800
+5150 b 291 1800
+515b b 292 1800
+5166 b 293 1800
+5171 b 294 1800
+517c b 295 1800
+5187 b 296 1800
+5192 b 298 1800
+519d b 299 1800
+51a8 b 300 1800
+51b3 b 301 1800
+51be b 302 1800
+51c9 b 303 1800
+51d4 e 304 1800
+51e2 b 305 1800
+51ed b 306 1800
+51f8 b 307 1800
+5203 b 308 1800
+520e b 309 1800
+5219 b 311 1800
+5224 b 312 1800
+522f b 313 1800
+523a b 314 1800
+5245 b 315 1800
+5250 b 316 1800
+525b b 317 1800
+5266 b 318 1800
+5271 b 319 1800
+527c b 320 1800
+5287 e 321 1800
+5295 b 322 1800
+52a0 b 324 1800
+52ab b 325 1800
+52b6 b 327 1800
+52c1 b 328 1800
+52cc f 329 1800
+52db 2 332 1800
+FUNC 52dd 69 0 __free_lconv_num
+52dd 6 218 1742
+52e3 7 219 1742
+52ea a 222 1742
+52f4 7 223 1742
+52fb b 225 1742
+5306 7 226 1742
+530d b 228 1742
+5318 7 229 1742
+531f b 231 1742
+532a 7 232 1742
+5331 b 234 1742
+533c 8 235 1742
+5344 2 236 1742
+FUNC 5346 fe 0 __free_lconv_mon
+5346 6 270 1685
+534c b 271 1685
+5357 b 274 1685
+5362 7 275 1685
+5369 b 277 1685
+5374 7 278 1685
+537b b 280 1685
+5386 7 281 1685
+538d b 283 1685
+5398 7 284 1685
+539f b 286 1685
+53aa 7 287 1685
+53b1 b 289 1685
+53bc 7 290 1685
+53c3 b 292 1685
+53ce 7 293 1685
+53d5 b 295 1685
+53e0 7 296 1685
+53e7 b 298 1685
+53f2 7 299 1685
+53f9 b 301 1685
+5404 7 302 1685
+540b b 304 1685
+5416 7 305 1685
+541d b 307 1685
+5428 7 308 1685
+542f b 310 1685
+543a 8 311 1685
+5442 2 312 1685
+FUNC 5444 ba 0 _VEC_memzero
+FUNC 54fe 10 0 __sse2_available_init
+54fe 0 30 4315
+54fe d 31 4315
+550b 2 32 4315
+550d 1 33 4315
+FUNC 550e 103 0 _VEC_memcpy
+FUNC 5620 2c 0 _alloca_probe_16
+5620 0 44 4274
+5620 1 46 4274
+5621 4 47 4274
+5625 2 48 4274
+5627 3 49 4274
+562a 2 50 4274
+562c 2 51 4274
+562e 2 52 4274
+5630 1 53 4274
+5631 5 54 4274
+5636 1 59 4274
+5637 4 60 4274
+563b 2 61 4274
+563d 3 62 4274
+5640 2 63 4274
+5642 2 64 4274
+5644 2 65 4274
+5646 1 66 4274
+5647 5 67 4274
+PUBLIC 5636 0 _alloca_probe_8
+FUNC 5650 34 0 _allmul
+5650 0 47 2803
+5650 4 63 2803
+5654 4 64 2803
+5658 2 65 2803
+565a 4 66 2803
+565e 2 67 2803
+5660 4 69 2803
+5664 2 70 2803
+5666 3 72 2803
+5669 1 75 2803
+566a 2 83 2803
+566c 2 84 2803
+566e 4 86 2803
+5672 4 87 2803
+5676 2 88 2803
+5678 4 90 2803
+567c 2 91 2803
+567e 2 92 2803
+5680 1 94 2803
+5681 3 96 2803
+FUNC 5690 2b 0 _chkstk
+5690 0 65 4276
+5690 1 69 4276
+5691 4 73 4276
+5695 2 74 4276
+5697 2 79 4276
+5699 2 80 4276
+569b 2 81 4276
+569d 2 83 4276
+569f 5 84 4276
+56a4 2 87 4276
+56a6 2 88 4276
+56a8 2 89 4276
+56aa 1 90 4276
+56ab 1 91 4276
+56ac 2 92 4276
+56ae 3 93 4276
+56b1 1 94 4276
+56b2 5 98 4276
+56b7 2 99 4276
+56b9 2 100 4276
+FUNC 56c0 46 0 strcspn
+56c0 4 191 2794
+56c4 2 198 2794
+56c6 1 199 2794
+56c7 1 200 2794
+56c8 1 201 2794
+56c9 1 202 2794
+56ca 1 203 2794
+56cb 1 204 2794
+56cc 1 205 2794
+56cd 1 206 2794
+56ce 6 212 2794
+56d4 2 216 2794
+56d6 2 217 2794
+56d8 2 218 2794
+56da 3 219 2794
+56dd 4 220 2794
+56e1 2 221 2794
+56e3 3 227 2794
+56e6 6 229 2794
+56ec 3 234 2794
+56ef 2 236 2794
+56f1 2 237 2794
+56f3 2 238 2794
+56f5 3 239 2794
+56f8 4 240 2794
+56fc 2 245 2794
+56fe 2 255 2794
+5700 3 257 2794
+5703 3 259 2794
+FUNC 5710 40 0 strpbrk
+5710 4 191 2794
+5714 2 198 2794
+5716 1 199 2794
+5717 1 200 2794
+5718 1 201 2794
+5719 1 202 2794
+571a 1 203 2794
+571b 1 204 2794
+571c 1 205 2794
+571d 1 206 2794
+571e 6 212 2794
+5724 2 216 2794
+5726 2 217 2794
+5728 2 218 2794
+572a 3 219 2794
+572d 4 220 2794
+5731 2 221 2794
+5733 5 227 2794
+5738 2 236 2794
+573a 2 237 2794
+573c 2 238 2794
+573e 3 239 2794
+5741 4 240 2794
+5745 2 247 2794
+5747 3 248 2794
+574a 3 257 2794
+574d 3 259 2794
+FUNC 5750 61 0 __ascii_strnicmp
+5750 6 69 2798
+5756 3 75 2798
+5759 2 76 2798
+575b 2 77 2798
+575d 3 79 2798
+5760 3 80 2798
+5763 2 82 2798
+5765 2 83 2798
+5767 5 84 2798
+576c 2 89 2798
+576e 2 91 2798
+5770 2 93 2798
+5772 2 95 2798
+5774 2 97 2798
+5776 2 98 2798
+5778 3 100 2798
+577b 3 101 2798
+577e 2 103 2798
+5780 2 104 2798
+5782 2 106 2798
+5784 2 107 2798
+5786 2 109 2798
+5788 2 112 2798
+578a 2 113 2798
+578c 2 115 2798
+578e 2 116 2798
+5790 2 118 2798
+5792 2 121 2798
+5794 2 122 2798
+5796 3 124 2798
+5799 2 125 2798
+579b 2 128 2798
+579d 2 129 2798
+579f 2 130 2798
+57a1 5 133 2798
+57a6 2 134 2798
+57a8 2 135 2798
+57aa 2 138 2798
+57ac 5 140 2798
+PUBLIC 57b2 10 RtlUnwind
+STACK WIN 4 1000 54 6 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1060 a 3 0 0 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1070 21 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10a0 14 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10c0 16 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10e0 1e 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1100 10 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1110 7 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1120 2c 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 114c 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 115c 21 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1162 17 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 117d b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1188 29 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11b1 161 c 0 0 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 12d4 14 0 0 0 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1312 a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 131c 70 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 1383 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1418 3a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1439 17 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1452 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1494 e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14a2 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14cd 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14e5 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14ee 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14f7 33 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14fa 2f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 152a 24 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1530 1c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 154e 97 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1590 34 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1591 32 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 15e5 140 c 0 c 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 1710 e 0 0 c 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1725 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 173b 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1751 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1760 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 176f 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 178d 26 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17b3 1af 1b 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17c9 192 5 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 17ca 18e 4 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 17ce 189 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 1962 39 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 199b 14a 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19a1 142 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 19b9 129 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1a0a d4 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1ae5 dc 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1af4 a8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1afb a0 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1b3d 5d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1bc1 19a d 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1bcb 185 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1bce 181 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 1d5b bb d 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d64 b0 4 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 1d67 ac 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 1d68 aa 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 1e16 97 a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1e1f 8c 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 1e20 8a 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 1e48 61 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 1ead 245 9 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1eb6 235 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1f27 1c3 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1f28 1c1 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 20f2 26 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 20f5 22 b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2100 16 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2118 26 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 211b 22 b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2126 16 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 213e 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2147 9 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2150 34 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2153 30 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2184 3d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 21c1 b4 c 0 8 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 225d e 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 226c 8 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2275 79 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2278 75 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2279 71 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 22ee 1a 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 22f1 16 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2308 12f c 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 241f b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 242b b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2437 17b 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 243a 177 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2455 15b 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 25b2 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2630 18f 17 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2639 c9 e 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 263d c4 a 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 2647 b9 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 27bf 9b 17 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 27d5 83 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 27d6 81 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 27f2 64 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 285a f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2869 129 1a 0 c 8 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 812 - ^ =  $24 $T0 816 - ^ = 
+STACK WIN 4 2992 25 3 0 14 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2995 21 0 0 14 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 29b7 2d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 29e4 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 29f4 4a 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 29f7 3a 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 29f8 38 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2a3e 57 a 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2a41 53 7 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2a48 4b 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2a4e 2a 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2a95 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2aac c2 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 2b65 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2b6e 33 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b77 28 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2ba1 5f a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2baa 54 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2bab 52 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2c8b 94 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2c91 8c 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2c9a 6c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2c9b 6a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2e72 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2eb4 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2ec7 39 c 0 0 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2ee7 4 0 0 0 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2f00 11 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2f11 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2f2f 37 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2f3e 1b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2f66 d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2f73 1a3 c 0 4 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 30d4 14 0 0 4 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3116 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3125 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3134 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3143 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 316b b6 f 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3172 ad 8 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3173 ab 7 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 317a a3 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 3221 31 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3224 2d 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3252 3c c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3288 5 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 328e 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 32a5 23 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 32a8 1f 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 32a9 1d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 32d0 35 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3310 44 1a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3322 30 8 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3323 2e 7 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 332a 26 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3360 bc 35 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 33eb 13 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 341c 16c 1e 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3432 14f 8 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 3439 145 1 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 343a 143 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3588 75 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 358e 22 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3592 1d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 35fd cd e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3606 17 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 360a 28 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 360b 10 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 36ca 1b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 36e5 63 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 36eb 22 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 36ef 1d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3748 3f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3787 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3796 45 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 379c 3d 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 379d 3b 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 37db 4c 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37e1 44 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 37e2 42 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3827 4e 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 382d 46 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 382e 44 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3875 2f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 38a4 64 6 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 38a7 60 3 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 38a8 5e 2 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3908 190 17 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 391e 173 1 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 391f 16f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 3a98 a4 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3b30 b 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3b3c 87 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b45 7a 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3bc3 7c 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3bcc 71 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 3c3f 1e9 1b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c52 1cf 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 3c56 1c8 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 3c5a 1c3 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 3e28 19a c 0 4 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3f89 8 0 0 4 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3fc2 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3fe0 53 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4033 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 404b 8f e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4051 87 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4052 85 7 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4059 7d 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 40da 99 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 40e0 91 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 40ec 82 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 40ed 80 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4173 14b 13 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4179 143 d 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 417a 141 c 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4186 134 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 42be 4d 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42c4 45 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 42d3 31 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 430b 79 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 4378 8 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4384 8 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 45e7 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4981 20 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49a1 33 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49d4 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 49dd 106 b 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ae3 82 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b0f 54 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4b65 ad 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b7c 62 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4b91 4c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4c12 1e7 1a 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4df9 46 8 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e3f e7 16 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 4f26 40 8 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f66 377 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f6c 36f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 52dd 69 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 52e3 61 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5346 fe 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 534c f6 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5444 ba 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 54fe 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 550e 103 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 0 12d4 14 0 0 0 0 0 0 0 0
+STACK WIN 0 1383 9 0 0 0 0 0 0 0 0
+STACK WIN 0 1390 88 0 0 8 0 0 0 0 0
+STACK WIN 0 1710 f 0 0 0 0 0 0 0 0
+STACK WIN 0 225d f 0 0 0 0 0 0 0 0
+STACK WIN 0 226c 9 0 0 0 0 0 0 0 0
+STACK WIN 0 241f c 0 0 0 0 0 0 0 0
+STACK WIN 0 242b c 0 0 0 0 0 0 0 0
+STACK WIN 0 2b65 9 0 0 0 0 0 0 0 0
+STACK WIN 0 2c00 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 2d20 90 3 0 c c 0 0 0 0
+STACK WIN 0 2db0 46 0 0 10 4 0 0 0 1
+STACK WIN 0 2e12 17 4 0 0 10 0 0 0 1
+STACK WIN 0 2e29 19 0 0 0 0 0 0 0 0
+STACK WIN 0 2e5b 17 1 0 8 4 0 0 0 1
+STACK WIN 0 2ee7 4 0 0 0 0 0 0 0 0
+STACK WIN 0 30d4 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3288 6 0 0 0 0 0 0 0 0
+STACK WIN 0 33eb 13 0 0 0 0 0 0 0 0
+STACK WIN 0 3b30 c 0 0 0 0 0 0 0 0
+STACK WIN 0 3f89 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4378 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4390 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 4410 95 0 0 10 0 4 0 0 0
+STACK WIN 0 4515 84 3 0 8 c 0 0 0 0
+STACK WIN 0 4599 23 0 0 0 0 0 0 0 0
+STACK WIN 0 45e4 3 0 0 0 0 0 0 0 0
+STACK WIN 0 5650 1a 0 0 10 0 0 0 0 0
+STACK WIN 0 566a 1a 0 0 10 0 4 0 0 0
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.exe b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.exe
new file mode 100755
index 0000000..6f6d5d1
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.exe
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb
new file mode 100644
index 0000000..8257eb7
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.sym b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.sym
new file mode 100644
index 0000000..eb83916
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.sym
@@ -0,0 +1,4561 @@
+MODULE windows x86_64 72E103A85CB249078B76B2E7C06257B13 dump_syms_regtest64.pdb
+INFO CODE_ID 589DFD111A000 dump_syms_regtest64.exe
+FILE 1 c:\cygwin64\wip\breakpad-depot\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\vctools\crt\crtw32\misc\amd64\amdsecgs.asm
+FILE 3 f:\dd\ExternalAPIs\Windows\WinBlue\sdk\inc\ksamd64.inc
+FILE 4 f:\dd\ExternalAPIs\Windows\WinBlue\sdk\inc\kxamd64.inc
+FILE 5 f:\dd\ExternalAPIs\Windows\WinBlue\sdk\inc\macamd64.inc
+FILE 6 f:\dd\vctools\crt\crtw32\misc\amd64\chandler.c
+FILE 7 f:\dd\externalapis\windows\winblue\sdk\inc\pshpack8.h
+FILE 8 f:\dd\vctools\crt\crtw32\h\excpt.h
+FILE 9 f:\dd\externalapis\windows\winblue\sdk\inc\ktmtypes.h
+FILE 10 f:\dd\externalapis\windows\winblue\sdk\inc\winternl.h
+FILE 11 f:\dd\externalapis\windows\winblue\sdk\inc\winapifamily.h
+FILE 12 f:\dd\externalapis\windows\winblue\sdk\inc\windef.h
+FILE 13 f:\dd\externalapis\windows\winblue\sdk\inc\minwindef.h
+FILE 14 f:\dd\externalapis\windows\winblue\sdk\inc\specstrings.h
+FILE 15 f:\dd\externalapis\windows\winblue\sdk\inc\specstrings_strict.h
+FILE 16 f:\dd\externalapis\windows\winblue\sdk\inc\specstrings_undef.h
+FILE 17 f:\dd\externalapis\windows\winblue\sdk\inc\driverspecs.h
+FILE 18 f:\dd\externalapis\windows\winblue\sdk\inc\sdv_driverspecs.h
+FILE 19 f:\dd\externalapis\windows\winblue\sdk\inc\apiset.h
+FILE 20 f:\dd\vctools\inc\vcwininternls.h
+FILE 21 f:\dd\tools\devdiv\inc\ddbanned.h
+FILE 22 f:\dd\vctools\crt\crtw32\h\vadefs.h
+FILE 23 f:\dd\vctools\crt\crtw32\h\cruntime.h
+FILE 24 f:\dd\vctools\crt\crtw32\h\sal.h
+FILE 25 f:\dd\vctools\crt\crtw32\h\concurrencysal.h
+FILE 26 f:\dd\externalapis\windows\winblue\sdk\inc\guiddef.h
+FILE 27 f:\dd\externalapis\windows\winblue\sdk\inc\winnt.h
+FILE 28 f:\dd\externalapis\windows\winblue\sdk\inc\kernelspecs.h
+FILE 29 f:\dd\externalapis\windows\winblue\sdk\inc\basetsd.h
+FILE 30 f:\dd\vctools\crt\crtw32\h\ctype.h
+FILE 31 f:\dd\vctools\crt\crtw32\h\crtdefs.h
+FILE 32 f:\dd\vctools\crt\crtw32\h\string.h
+FILE 33 f:\dd\externalapis\windows\winblue\sdk\inc\pshpack2.h
+FILE 34 f:\dd\externalapis\windows\winblue\sdk\inc\pshpack4.h
+FILE 35 f:\dd\externalapis\windows\winblue\sdk\inc\sdkddkver.h
+FILE 36 f:\dd\externalapis\windows\winblue\sdk\inc\poppack.h
+FILE 37 f:\dd\vctools\crt\crtw32\misc\amd64\gshandler.c
+FILE 58 f:\dd\vctools\crt\crtw32\h\process.h
+FILE 69 f:\dd\vctools\crt\crtw32\misc\amd64\jmpuwind.asm
+FILE 73 f:\dd\externalapis\windows\winblue\sdk\inc\processtopologyapi.h
+FILE 74 f:\dd\externalapis\windows\winblue\sdk\inc\securityappcontainer.h
+FILE 75 f:\dd\externalapis\windows\winblue\sdk\inc\pshpack1.h
+FILE 76 f:\dd\externalapis\windows\winblue\sdk\inc\realtimeapiset.h
+FILE 77 f:\dd\externalapis\windows\winblue\sdk\inc\profileapi.h
+FILE 78 f:\dd\externalapis\windows\winblue\sdk\inc\timezoneapi.h
+FILE 79 f:\dd\externalapis\windows\winblue\sdk\inc\jobapi.h
+FILE 80 f:\dd\externalapis\windows\winblue\sdk\inc\heapapi.h
+FILE 82 f:\dd\externalapis\windows\winblue\sdk\inc\wincon.h
+FILE 83 f:\dd\externalapis\windows\winblue\sdk\inc\wow64apiset.h
+FILE 85 f:\dd\externalapis\windows\winblue\sdk\inc\threadpoolapiset.h
+FILE 87 f:\dd\externalapis\windows\winblue\sdk\inc\winver.h
+FILE 88 f:\dd\externalapis\windows\winblue\sdk\inc\debugapi.h
+FILE 89 f:\dd\externalapis\windows\winblue\sdk\inc\winnetwk.h
+FILE 90 f:\dd\externalapis\windows\winblue\sdk\inc\verrsrc.h
+FILE 91 f:\dd\externalapis\windows\winblue\sdk\inc\wnnc.h
+FILE 92 f:\dd\externalapis\windows\winblue\sdk\inc\libloaderapi.h
+FILE 93 f:\dd\externalapis\windows\winblue\sdk\inc\fibersapi.h
+FILE 94 f:\dd\vctools\langapi\include\isa_availability.h
+FILE 95 f:\dd\vctools\crt\crtw32\convert\_fptostr.c
+FILE 96 f:\dd\externalapis\windows\winblue\sdk\inc\winnls.h
+FILE 97 f:\dd\externalapis\windows\winblue\sdk\inc\datetimeapi.h
+FILE 98 f:\dd\externalapis\windows\winblue\sdk\inc\securitybaseapi.h
+FILE 99 f:\dd\externalapis\windows\winblue\sdk\inc\namedpipeapi.h
+FILE 103 f:\dd\vctools\crt\crtw32\h\stddef.h
+FILE 104 f:\dd\externalapis\windows\winblue\sdk\inc\fileapi.h
+FILE 105 f:\dd\vctools\crt\crtw32\h\internal.h
+FILE 106 f:\dd\externalapis\windows\winblue\sdk\inc\interlockedapi.h
+FILE 107 f:\dd\externalapis\windows\winblue\sdk\inc\utilapiset.h
+FILE 108 f:\dd\vctools\crt\crtw32\h\limits.h
+FILE 110 f:\dd\externalapis\windows\winblue\sdk\inc\windows.h
+FILE 111 f:\dd\externalapis\windows\winblue\sdk\inc\processenv.h
+FILE 115 f:\dd\vctools\crt\crtw32\h\fltintrn.h
+FILE 116 f:\dd\externalapis\windows\winblue\sdk\inc\stringapiset.h
+FILE 118 f:\dd\externalapis\windows\winblue\sdk\inc\stralign.h
+FILE 121 f:\dd\externalapis\windows\winblue\sdk\inc\memoryapi.h
+FILE 124 f:\dd\externalapis\windows\winblue\sdk\inc\mcx.h
+FILE 125 f:\dd\externalapis\windows\winblue\sdk\inc\processthreadsapi.h
+FILE 126 f:\dd\externalapis\windows\winblue\sdk\inc\handleapi.h
+FILE 128 f:\dd\externalapis\windows\winblue\sdk\inc\tvout.h
+FILE 129 f:\dd\externalapis\windows\winblue\sdk\inc\winreg.h
+FILE 130 f:\dd\externalapis\windows\winblue\sdk\inc\reason.h
+FILE 131 f:\dd\externalapis\windows\winblue\sdk\inc\consoleapi.h
+FILE 132 f:\dd\externalapis\windows\winblue\sdk\inc\wingdi.h
+FILE 133 f:\dd\externalapis\windows\winblue\sdk\inc\synchapi.h
+FILE 134 f:\dd\externalapis\windows\winblue\sdk\inc\winbase.h
+FILE 135 f:\dd\externalapis\windows\winblue\sdk\inc\apisetcconv.h
+FILE 137 f:\dd\externalapis\windows\winblue\sdk\inc\minwinbase.h
+FILE 140 f:\dd\externalapis\windows\winblue\sdk\inc\namespaceapi.h
+FILE 141 f:\dd\vctools\crt\crtw32\h\crtdbg.h
+FILE 142 f:\dd\externalapis\windows\winblue\sdk\inc\bemapiset.h
+FILE 143 f:\dd\externalapis\windows\winblue\sdk\inc\threadpoollegacyapiset.h
+FILE 144 f:\dd\externalapis\windows\winblue\sdk\inc\ime_cmodes.h
+FILE 145 f:\dd\vctools\crt\crtw32\h\mtdll.h
+FILE 146 f:\dd\externalapis\windows\winblue\sdk\inc\winuser.h
+FILE 147 f:\dd\externalapis\windows\winblue\sdk\inc\errhandlingapi.h
+FILE 148 f:\dd\vctools\crt\crtw32\h\stdarg.h
+FILE 156 f:\dd\externalapis\windows\winblue\sdk\inc\imm.h
+FILE 158 f:\dd\externalapis\windows\winblue\sdk\inc\ioapiset.h
+FILE 160 f:\dd\vctools\crt\crtw32\h\errno.h
+FILE 161 f:\dd\externalapis\windows\winblue\sdk\inc\winerror.h
+FILE 162 f:\dd\externalapis\windows\winblue\sdk\inc\systemtopologyapi.h
+FILE 163 f:\dd\externalapis\windows\winblue\sdk\inc\sysinfoapi.h
+FILE 181 f:\dd\vctools\crt\crtw32\convert\atox.c
+FILE 208 f:\dd\vctools\crt\crtw32\h\setlocal.h
+FILE 211 f:\dd\vctools\crt\crtw32\h\oscalls.h
+FILE 212 f:\dd\vctools\crt\crtw32\h\mbctype.h
+FILE 218 f:\dd\vctools\crt\crtw32\h\tchar.h
+FILE 220 f:\dd\vctools\crt\crtw32\h\mbstring.h
+FILE 231 f:\dd\vctools\crt\crtw32\h\stdlib.h
+FILE 255 f:\dd\vctools\crt\crtw32\convert\wchtodig.c
+FILE 256 f:\dd\vctools\crt\crtw32\h\wchar.h
+FILE 263 f:\dd\vctools\crt\crtw32\h\swprintf.inl
+FILE 264 f:\dd\vctools\crt\crtw32\h\wtime.inl
+FILE 283 f:\dd\vctools\crt\crtw32\convert\wtox.c
+FILE 377 f:\dd\vctools\crt\crtw32\convert\xtows.c
+FILE 384 f:\dd\vctools\crt\crtw32\h\internal_securecrt.h
+FILE 385 f:\dd\vctools\crt\crtw32\convert\xtoa.c
+FILE 480 f:\dd\vctools\crt\crtw32\dos\dosmap.c
+FILE 556 f:\dd\vctools\crt\crtw32\h\dbgint.h
+FILE 566 f:\dd\vctools\crt\crtw32\heap\calloc_impl.c
+FILE 576 f:\dd\vctools\crt\crtw32\h\rtcsup.h
+FILE 581 f:\dd\vctools\crt\crtw32\h\rtcapi.h
+FILE 583 f:\dd\vctools\crt\crtw32\h\malloc.h
+FILE 597 f:\dd\vctools\crt\crtw32\h\winheap.h
+FILE 658 f:\dd\vctools\crt\crtw32\heap\crtheap.c
+FILE 716 f:\dd\vctools\crt\crtw32\h\awint.h
+FILE 744 f:\dd\vctools\crt\crtw32\heap\free.c
+FILE 828 f:\dd\vctools\crt\crtw32\heap\heapinit.c
+FILE 930 f:\dd\vctools\crt\crtw32\heap\malloc.c
+FILE 997 f:\dd\vctools\crt\crtw32\h\rterr.h
+FILE 1027 f:\dd\vctools\crt\crtw32\heap\msize.c
+FILE 1111 f:\dd\vctools\crt\crtw32\heap\realloc.c
+FILE 1206 f:\dd\vctools\crt\crtw32\heap\recalloc.c
+FILE 1307 f:\dd\vctools\crt\crtw32\heap\_newmode.c
+FILE 1396 f:\dd\vctools\crt\crtw32\lowio\close.c
+FILE 1444 f:\dd\vctools\crt\crtw32\h\msdos.h
+FILE 1451 f:\dd\vctools\crt\crtw32\h\io.h
+FILE 1490 f:\dd\vctools\crt\crtw32\lowio\commit.c
+FILE 1584 f:\dd\vctools\crt\crtw32\lowio\ioinit.c
+FILE 1677 f:\dd\vctools\crt\crtw32\lowio\isatty.c
+FILE 1769 f:\dd\vctools\crt\crtw32\lowio\lseeki64.c
+FILE 1804 f:\dd\vctools\crt\crtw32\h\stdio.h
+FILE 1865 f:\dd\vctools\crt\crtw32\lowio\osfinfo.c
+FILE 1909 f:\dd\vctools\crt\crtw32\h\fcntl.h
+FILE 1964 f:\dd\vctools\crt\crtw32\lowio\write.c
+FILE 1974 f:\dd\vctools\crt\crtw32\h\locale.h
+FILE 2057 f:\dd\vctools\crt\crtw32\lowio\initcon.c
+FILE 2072 f:\dd\vctools\crt\crtw32\h\sect_attribs.h
+FILE 2139 f:\dd\vctools\crt\crtw32\h\file2.h
+FILE 2149 f:\dd\vctools\crt\crtw32\lowio\putwch.c
+FILE 2199 f:\dd\vctools\crt\crtw32\h\conio.h
+FILE 2246 f:\dd\vctools\crt\crtw32\misc\amd64\loadcfg.c
+FILE 2325 f:\dd\vctools\crt\crtw32\misc\abort.c
+FILE 2334 f:\dd\vctools\crt\crtw32\h\signal.h
+FILE 2424 f:\dd\vctools\crt\crtw32\misc\ctype.c
+FILE 2495 f:\dd\vctools\crt\crtw32\misc\dbghook.c
+FILE 2522 f:\dd\vctools\crt\crtw32\misc\errmode.c
+FILE 2602 f:\dd\vctools\crt\crtw32\misc\getqloc.c
+FILE 2706 f:\dd\vctools\crt\crtw32\misc\glstatus.c
+FILE 2794 f:\dd\vctools\crt\crtw32\misc\gs_cookie.c
+FILE 2878 f:\dd\vctools\crt\crtw32\misc\gs_report.c
+FILE 2962 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\immintrin.h
+FILE 2963 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\wmmintrin.h
+FILE 2964 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\nmmintrin.h
+FILE 2965 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\smmintrin.h
+FILE 2966 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\tmmintrin.h
+FILE 2967 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\pmmintrin.h
+FILE 2969 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\emmintrin.h
+FILE 2970 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\xmmintrin.h
+FILE 2971 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\mmintrin.h
+FILE 2974 f:\dd\vctools\crt\crtw32\misc\gs_support.c
+FILE 3018 f:\binaries.amd64ret\interapiscandidates\vctools\inc\vc\ammintrin.h
+FILE 3023 f:\dd\vctools\crt\crtw32\h\intrin.h
+FILE 3024 f:\dd\vctools\crt\crtw32\h\setjmp.h
+FILE 3061 f:\dd\vctools\crt\crtw32\misc\initcoll.c
+FILE 3147 f:\dd\vctools\crt\crtw32\misc\initctyp.c
+FILE 3233 f:\dd\vctools\crt\crtw32\misc\inithelp.c
+FILE 3335 f:\dd\vctools\crt\crtw32\misc\initmon.c
+FILE 3420 f:\dd\vctools\crt\crtw32\misc\initnum.c
+FILE 3462 f:\dd\vctools\crt\crtw32\h\nlsint.h
+FILE 3520 f:\dd\vctools\crt\crtw32\misc\inittime.c
+FILE 3613 f:\dd\vctools\crt\crtw32\misc\lconv.c
+FILE 3702 f:\dd\vctools\crt\crtw32\misc\localref.c
+FILE 3795 f:\dd\vctools\crt\crtw32\misc\onexit.c
+FILE 3889 f:\dd\vctools\crt\crtw32\misc\nlsdata.c
+FILE 3978 f:\dd\vctools\crt\crtw32\misc\pesect.c
+FILE 4060 f:\dd\vctools\crt\crtw32\misc\purevirt.c
+FILE 4150 f:\dd\vctools\crt\crtw32\misc\winsig.c
+FILE 4218 f:\dd\vctools\crt\crtw32\h\float.h
+FILE 4220 f:\dd\vctools\crt\crtw32\h\crtwrn.h
+FILE 4248 f:\dd\vctools\crt\crtw32\misc\winapinls.c
+FILE 4282 f:\dd\vctools\crt\crtw32\h\nlsdownlevel.h
+FILE 4340 f:\dd\vctools\crt\crtw32\misc\winapisupp.c
+FILE 4354 f:\dd\externalapis\windows\winblue\sdk\inc\appmodel.h
+FILE 4355 f:\dd\externalapis\windows\winblue\sdk\inc\minappmodel.h
+FILE 4434 f:\dd\vctools\crt\crtw32\misc\winxfltr.c
+FILE 4530 f:\dd\vctools\crt\crtw32\misc\wsetloca.c
+FILE 4628 f:\dd\vctools\crt\crtw32\misc\rand_s.c
+FILE 4640 f:\dd\externalapis\windows\winblue\sdk\inc\ntsecapi.h
+FILE 4690 f:\dd\externalapis\windows\winblue\sdk\inc\lsalookup.h
+FILE 4721 f:\dd\vctools\crt\crtw32\misc\a_env.c
+FILE 4803 f:\dd\vctools\crt\crtw32\misc\getqloc_downlevel.c
+FILE 4901 f:\dd\vctools\crt\crtw32\misc\crtmboxw.c
+FILE 4913 f:\dd\vctools\crt\crtw32\misc\crtmbox.c
+FILE 5002 f:\dd\vctools\crt\crtw32\misc\cmiscdat.c
+FILE 5093 f:\dd\vctools\crt\crtw32\stdio\fileno.c
+FILE 5182 f:\dd\vctools\crt\crtw32\stdio\_file.c
+FILE 5276 f:\dd\vctools\crt\crtw32\stdio\_freebuf.c
+FILE 5374 f:\dd\vctools\crt\crtw32\stdio\_sftbuf.c
+FILE 5472 f:\dd\vctools\crt\crtw32\stdio\closeall.c
+FILE 5556 f:\dd\vctools\crt\crtw32\stdio\fclose.c
+FILE 5660 f:\dd\vctools\crt\crtw32\stdio\fflush.c
+FILE 5753 f:\dd\vctools\crt\crtw32\stdio\outputformat.c
+FILE 5837 f:\dd\vctools\crt\crtw32\string\amd64\cpu_disp.c
+FILE 5933 f:\dd\vctools\crt\crtw32\string\amd64\strrchr.c
+FILE 6036 f:\dd\vctools\crt\crtw32\string\amd64\wcschr.c
+FILE 6136 f:\dd\vctools\crt\crtw32\string\strcpy_s.c
+FILE 6169 f:\dd\vctools\crt\crtw32\h\tcscpy_s.inl
+FILE 6227 f:\dd\vctools\crt\crtw32\string\strncpy_s.c
+FILE 6260 f:\dd\vctools\crt\crtw32\h\tcsncpy_s.inl
+FILE 6318 f:\dd\vctools\crt\crtw32\string\wcscat_s.c
+FILE 6351 f:\dd\vctools\crt\crtw32\h\tcscat_s.inl
+FILE 6394 f:\dd\vctools\crt\crtw32\string\wcscmp.c
+FILE 6417 f:\dd\vctools\crt\crtw32\string\wcscpy_s.c
+FILE 6493 f:\dd\vctools\crt\crtw32\string\wcscspn.c
+FILE 6501 f:\dd\vctools\crt\crtw32\string\wcslen.c
+FILE 6509 f:\dd\vctools\crt\crtw32\string\wcslen_s.c
+FILE 6517 f:\dd\vctools\crt\crtw32\string\wcsncmp.c
+FILE 6540 f:\dd\vctools\crt\crtw32\string\wcsncpy_s.c
+FILE 6616 f:\dd\vctools\crt\crtw32\string\wcspbrk.c
+FILE 6647 f:\dd\vctools\crt\crtw32\heap\handler.cpp
+FILE 6670 f:\dd\vctools\crt\crtw32\h\new.h
+FILE 6742 f:\dd\vctools\crt\crtw32\heap\delete.cpp
+FILE 6804 f:\dd\vctools\crt\crtw32\string\amd64\memcmp.asm
+FILE 6808 f:\dd\vctools\crt\crtw32\string\amd64\memcpy.asm
+FILE 6812 f:\dd\vctools\crt\crtw32\string\amd64\memset.asm
+FILE 6816 f:\dd\vctools\crt\crtw32\string\amd64\strcmp.asm
+FILE 6820 f:\dd\vctools\crt\crtw32\string\amd64\strlen.asm
+FILE 6847 f:\dd\vctools\crt\crtw32\convert\_ctype.c
+FILE 6940 f:\dd\vctools\crt\crtw32\convert\_wctype.c
+FILE 7006 f:\dd\vctools\crt\crtw32\h\math.h
+FILE 7027 f:\dd\vctools\crt\crtw32\convert\atodbl.c
+FILE 7081 f:\dd\vctools\crt\crtw32\h\atodbl.inl
+FILE 7128 f:\dd\vctools\crt\crtw32\convert\iswctype.c
+FILE 7216 f:\dd\vctools\crt\crtw32\convert\isctype.c
+FILE 7310 f:\dd\vctools\crt\crtw32\convert\mbtowc.c
+FILE 7401 f:\dd\vctools\crt\crtw32\convert\strtod.c
+FILE 7499 f:\dd\vctools\crt\crtw32\convert\strtol.c
+FILE 7592 f:\dd\vctools\crt\crtw32\convert\strtoq.c
+FILE 7593 f:\dd\vctools\crt\crtw32\stdhpp\stdint.h
+FILE 7683 f:\dd\vctools\crt\crtw32\convert\tolower.c
+FILE 7784 f:\dd\vctools\crt\crtw32\convert\towlower.c
+FILE 7874 f:\dd\vctools\crt\crtw32\convert\wcstod.c
+FILE 7970 f:\dd\vctools\crt\crtw32\convert\wcstol.c
+FILE 8064 f:\dd\vctools\crt\crtw32\convert\wcstoq.c
+FILE 8156 f:\dd\vctools\crt\crtw32\h\mbdata.h
+FILE 8159 f:\dd\vctools\crt\crtw32\mbstring\ismbbyte.c
+FILE 8253 f:\dd\vctools\crt\crtw32\mbstring\mbctype.c
+FILE 8352 f:\dd\vctools\crt\crtw32\misc\a_loc.c
+FILE 8449 f:\dd\vctools\crt\crtw32\misc\a_map.c
+FILE 8545 f:\dd\vctools\crt\crtw32\misc\a_str.c
+FILE 8649 f:\dd\vctools\crt\crtw32\misc\invarg.c
+FILE 8749 f:\dd\vctools\crt\crtw32\misc\w_map.c
+FILE 8849 f:\dd\vctools\crt\crtw32\string\wcsicmp.c
+FILE 8936 f:\dd\vctools\crt\crtw32\string\wcsnicmp.c
+FILE 9010 f:\dd\vctools\crt\crtw32\startup\stdenvp.c
+FILE 9116 f:\dd\vctools\crt\crtw32\startup\crt0.c
+FILE 9140 f:\dd\vctools\crt\crtw32\h\dos.h
+FILE 9214 f:\dd\vctools\crt\crtw32\startup\crt0msg.c
+FILE 9217 f:\dd\vctools\crt\crtw32\h\cmsgs.h
+FILE 9313 f:\dd\vctools\crt\crtw32\startup\tidtable.c
+FILE 9391 f:\dd\vctools\crt\crtw32\h\memory.h
+FILE 9411 f:\dd\vctools\crt\crtw32\startup\stdargv.c
+FILE 9509 f:\dd\vctools\crt\crtw32\startup\mlock.c
+FILE 9605 f:\dd\vctools\crt\crtw32\startup\crt0init.c
+FILE 9698 f:\dd\vctools\crt\crtw32\startup\crt0fp.c
+FILE 9790 f:\dd\vctools\crt\crtw32\startup\crt0dat.c
+FILE 9872 f:\dd\vctools\crt\crtw32\startup\amd64\chkstk.asm
+FILE 9904 f:\dd\vctools\crt\fpw32\conv\cvt.c
+FILE 9916 f:\dd\vctools\crt\fpw32\include\cv.inl
+FILE 9930 f:\dd\vctools\crt\fpw32\include\cv.h
+FILE 9988 f:\dd\vctools\crt\fpw32\conv\x10fout.c
+FILE 10087 f:\dd\vctools\crt\fpw32\conv\wstrgtold.c
+FILE 10104 f:\dd\vctools\crt\fpw32\conv\strgtold.c
+FILE 10127 f:\dd\vctools\crt\fpw32\include\strgtold12.inl
+FILE 10173 f:\dd\vctools\crt\fpw32\conv\wcfin.c
+FILE 10176 f:\dd\vctools\crt\fpw32\conv\cfin.c
+FILE 10284 f:\dd\vctools\crt\fpw32\conv\mantold.c
+FILE 10294 f:\dd\vctools\crt\fpw32\include\mantold.inl
+FILE 10297 f:\dd\vctools\crt\fpw32\conv\intrncvt.c
+FILE 10306 f:\dd\vctools\crt\fpw32\include\intrncvt.inl
+FILE 10323 f:\dd\vctools\crt\fpw32\conv\fpinit.c
+FILE 10399 f:\dd\vctools\crt\fpw32\conv\constpow.c
+FILE 10409 f:\dd\vctools\crt\fpw32\include\constpow.inl
+FILE 10420 f:\dd\vctools\crt\fpw32\conv\cfout.c
+FILE 10514 f:\dd\vctools\crt\fpw32\tran\amd64\huge.asm
+FILE 10545 f:\dd\vctools\langapi\undname\undname.inl
+FILE 10546 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 10566 f:\dd\vctools\langapi\undname\utf8.h
+FILE 10584 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 10586 f:\dd\vctools\langapi\undname\undname.h
+FILE 10610 f:\dd\vctools\crt\crtw32\h\eh.h
+FILE 10621 f:\dd\vctools\langapi\include\ehdata.h
+FILE 10632 f:\dd\vctools\crt\crtw32\h\ehhooks.h
+FILE 10634 f:\dd\vctools\crt\crtw32\eh\unhandld.cpp
+FILE 10641 f:\dd\vctools\crt\crtw32\h\ehassert.h
+FILE 10708 f:\dd\vctools\crt\crtw32\stdhpp\exception
+FILE 10741 f:\dd\vctools\crt\crtw32\eh\typname.cpp
+FILE 10756 f:\dd\vctools\crt\crtw32\stdhpp\initializer_list
+FILE 10773 f:\dd\vctools\crt\crtw32\stdhpp\xtr1common
+FILE 10797 f:\dd\vctools\crt\crtw32\h\typeinfo.h
+FILE 10798 f:\dd\vctools\crt\crtw32\stdhpp\typeinfo
+FILE 10799 f:\dd\vctools\crt\crtw32\stdhpp\xstddef
+FILE 10802 f:\dd\vctools\crt\crtw32\stdhpp\cstddef
+FILE 10803 f:\dd\vctools\crt\crtw32\stdhpp\yvals.h
+FILE 10804 f:\dd\vctools\crt\crtw32\stdhpp\xkeycheck.h
+FILE 10807 f:\dd\vctools\crt\crtw32\stdhpp\use_ansi.h
+FILE 10809 f:\binaries.amd64ret\interapiscandidates\vctools\inc\undname.h
+FILE 10842 f:\dd\vctools\crt\crtw32\eh\typinfo.cpp
+FILE 10933 f:\dd\vctools\crt\crtw32\eh\hooks.cpp
+FILE 11032 f:\dd\vctools\crt\crtw32\rtc\initsect.cpp
+FILE 11055 f:\dd\vctools\crt\crtw32\h\rtcpriv.h
+FUNC 1000 6 0 static int google_breakpad::i()
+1000 0 51 1
+1000 5 52 1
+1005 1 53 1
+FUNC 1010 6a 0 main
+1010 d 57 1
+101d a 58 1
+1027 11 59 1
+1038 a 60 1
+1042 e 61 1
+1050 f 62 1
+105f 16 64 1
+1075 5 65 1
+FUNC 1080 26 0 google_breakpad::C::C()
+1080 26 37 1
+FUNC 10b0 15 0 google_breakpad::C::~C()
+10b0 15 38 1
+FUNC 10d0 36 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 1110 26 0 google_breakpad::C::f()
+1110 26 43 1
+FUNC 1140 b 0 google_breakpad::C::g()
+1140 b 44 1
+FUNC 1150 8 0 google_breakpad::C::h(google_breakpad::C const &)
+1150 8 45 1
+FUNC 1160 16 0 google_breakpad::C::set_member(int)
+1160 16 40 1
+FUNC 1178 5 0 operator delete(void *)
+1178 0 20 6742
+1178 5 23 6742
+FUNC 1180 39 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 11bc 180 0 static int __tmainCRTStartup()
+11bc a 172 9116
+11c6 c 188 9116
+11d2 4e 196 9116
+1220 9 198 9116
+1229 22 199 9116
+124b 9 201 9116
+1254 22 202 9116
+1276 6 211 9116
+127c 9 221 9116
+1285 a 222 9116
+128f d 226 9116
+129c c 229 9116
+12a8 9 231 9116
+12b1 a 232 9116
+12bb 9 233 9116
+12c4 a 234 9116
+12ce 7 237 9116
+12d5 4 238 9116
+12d9 7 239 9116
+12e0 e 254 9116
+12ee 18 255 9116
+1306 4 261 9116
+130a 7 262 9116
+1311 5 264 9116
+1316 2 266 9116
+1318 2 267 9116
+131a 7 275 9116
+1321 8 276 9116
+1329 6 278 9116
+132f 2 282 9116
+1331 b 283 9116
+FUNC 133c 2c 0 static void fast_error_exit(int)
+133c 6 305 9116
+1342 b 315 9116
+134d 5 317 9116
+1352 7 319 9116
+1359 5 322 9116
+135e 5 323 9116
+1363 5 322 9116
+FUNC 1368 12 0 mainCRTStartup
+1368 4 155 9116
+136c 5 162 9116
+1371 4 165 9116
+1375 5 164 9116
+FUNC 137c 3d 0 free
+137c 0 40 744
+137c a 45 744
+1386 12 50 744
+1398 4 51 744
+139c 17 53 744
+13b3 6 55 744
+FUNC 13d0 67 0 strcmp
+13d0 0 70 6816
+13d0 3 77 6816
+13d3 3 78 6816
+13d6 2 79 6816
+13d8 3 82 6816
+13db 3 83 6816
+13de 2 84 6816
+13e0 3 86 6816
+13e3 2 88 6816
+13e5 2 89 6816
+13e7 3 91 6816
+13ea 2 92 6816
+13ec a 96 6816
+13f6 a 97 6816
+1400 4 100 6816
+1404 5 101 6816
+1409 5 102 6816
+140e 2 103 6816
+1410 3 105 6816
+1413 4 106 6816
+1417 2 109 6816
+1419 4 112 6816
+141d 3 113 6816
+1420 4 114 6816
+1424 3 115 6816
+1427 3 117 6816
+142a 2 118 6816
+142c 2 121 6816
+142e 1 122 6816
+142f 3 125 6816
+1432 4 126 6816
+1436 1 127 6816
+FUNC 1438 6c 0 type_info::_Type_info_dtor(type_info *)
+1438 9 31 10741
+1441 b 32 10741
+144c 9 34 10741
+1455 13 39 10741
+1468 5 41 10741
+146d 5 43 10741
+1472 8 48 10741
+147a 5 49 10741
+147f 2 50 10741
+1481 3 52 10741
+1484 2 41 10741
+1486 9 63 10741
+148f 5 70 10741
+1494 a 73 10741
+149e 6 76 10741
+FUNC 14a4 38 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+14a4 4 37 10634
+14a8 27 38 10634
+14cf 2 42 10634
+14d1 5 43 10634
+14d6 6 39 10634
+FUNC 14dc 17 0 _CxxSetUnhandledExceptionFilter
+14dc 4 56 10634
+14e0 c 60 10634
+14ec 2 62 10634
+14ee 5 63 10634
+FUNC 14f4 1cc 0 XcptFilter
+14f4 19 195 4434
+150d 5 202 4434
+1512 f 203 4434
+1521 31 208 4434
+1552 9 210 4434
+155b 4 216 4434
+155f 9 223 4434
+1568 6 232 4434
+156e 4 237 4434
+1572 9 238 4434
+157b 6 244 4434
+1581 8 248 4434
+1589 7 262 4434
+1590 7 263 4434
+1597 a 272 4434
+15a1 5 280 4434
+15a6 19 283 4434
+15bf e 310 4434
+15cd f 312 4434
+15dc 8 314 4434
+15e4 f 316 4434
+15f3 8 318 4434
+15fb c 320 4434
+1607 8 322 4434
+160f c 324 4434
+161b 8 326 4434
+1623 c 328 4434
+162f 8 330 4434
+1637 c 332 4434
+1643 8 334 4434
+164b c 336 4434
+1657 8 338 4434
+165f c 340 4434
+166b 8 342 4434
+1673 a 344 4434
+167d e 353 4434
+168b 6 358 4434
+1691 2 360 4434
+1693 4 365 4434
+1697 6 366 4434
+169d 7 372 4434
+16a4 5 374 4434
+16a9 2 224 4434
+16ab 15 376 4434
+FUNC 16c0 133 0 freefls
+16c0 0 370 9313
+16c0 13 381 9313
+16d3 3 370 9313
+16d6 9 382 9313
+16df 5 383 9313
+16e4 9 385 9313
+16ed 5 386 9313
+16f2 9 388 9313
+16fb 5 389 9313
+1700 9 391 9313
+1709 5 392 9313
+170e 9 394 9313
+1717 5 395 9313
+171c 9 397 9313
+1725 5 398 9313
+172a c 400 9313
+1736 5 401 9313
+173b 13 403 9313
+174e 5 404 9313
+1753 d 406 9313
+1760 27 410 9313
+1787 6 411 9313
+178d 7 414 9313
+1794 b 417 9313
+179f c 420 9313
+17ab 8 422 9313
+17b3 1a 425 9313
+17cd 9 426 9313
+17d6 a 430 9313
+17e0 8 433 9313
+17e8 b 436 9313
+FUNC 17f4 24 0 getptd
+17f4 6 336 9313
+17fa 8 337 9313
+1802 5 338 9313
+1807 8 339 9313
+180f 3 341 9313
+1812 6 342 9313
+FUNC 1818 82 0 getptd_noexit
+1818 a 270 9313
+1822 6 274 9313
+1828 15 277 9313
+183d 15 286 9313
+1852 e 289 9313
+1860 e 295 9313
+186e 6 297 9313
+1874 7 298 9313
+187b 2 300 9313
+187d 5 306 9313
+1882 2 307 9313
+1884 8 312 9313
+188c 3 314 9313
+188f b 315 9313
+FUNC 189c c2 0 initptd
+189c 10 203 9313
+18ac e 204 9313
+18ba 4 205 9313
+18be 7 206 9313
+18c5 a 211 9313
+18cf c 215 9313
+18db 7 216 9313
+18e2 e 217 9313
+18f0 8 219 9313
+18f8 b 221 9313
+1903 a 224 9313
+190d a 228 9313
+1917 b 233 9313
+1922 7 235 9313
+1929 5 243 9313
+192e e 244 9313
+193c d 245 9313
+1949 a 248 9313
+1953 b 250 9313
+FUNC 1960 7f 0 mtinit
+1960 6 88 9313
+1966 5 91 9313
+196b 9 97 9313
+1974 17 105 9313
+198b 29 115 9313
+19b4 a 125 9313
+19be 6 127 9313
+19c4 7 128 9313
+19cb 7 130 9313
+19d2 5 117 9313
+19d7 2 118 9313
+19d9 6 131 9313
+FUNC 19e0 24 0 mtterm
+19e0 4 160 9313
+19e4 b 167 9313
+19ef 5 168 9313
+19f4 7 169 9313
+19fb 4 177 9313
+19ff 5 176 9313
+FUNC 1a04 41 0 _crtCorExitProcess
+1a04 8 734 9790
+1a0c 18 738 9790
+1a24 12 739 9790
+1a36 5 740 9790
+1a3b 4 741 9790
+1a3f 6 751 9790
+FUNC 1a48 16 0 _crtExitProcess
+1a48 8 757 9790
+1a50 5 764 9790
+1a55 9 774 9790
+FUNC 1a60 26 0 amsg_exit
+1a60 8 485 9790
+1a68 5 487 9790
+1a6d 7 488 9790
+1a74 12 490 9790
+FUNC 1a88 f 0 c_exit
+1a88 0 454 9790
+1a88 f 455 9790
+FUNC 1a98 d 0 cexit
+1a98 0 447 9790
+1a98 d 448 9790
+FUNC 1aa8 96 0 cinit
+1aa8 6 278 9790
+1aae 1c 288 9790
+1aca 8 290 9790
+1ad2 5 292 9790
+1ad7 13 298 9790
+1aea 4 299 9790
+1aee c 303 9790
+1afa 13 308 9790
+1b0d 1a 321 9790
+1b27 f 323 9790
+1b36 2 327 9790
+1b38 6 328 9790
+FUNC 1b40 c 0 exit
+1b40 0 432 9790
+1b40 c 433 9790
+FUNC 1b4c 4b 0 init_pointers
+1b4c 6 879 9790
+1b52 8 880 9790
+1b5a b 882 9790
+1b65 8 883 9790
+1b6d 8 884 9790
+1b75 8 885 9790
+1b7d 8 886 9790
+1b85 8 889 9790
+1b8d 5 900 9790
+1b92 5 893 9790
+FUNC 1b98 60 0 static void _initterm( * *,  * *)
+1b98 30 941 9790
+1bc8 5 948 9790
+1bcd 8 953 9790
+1bd5 2 954 9790
+1bd7 c 955 9790
+1be3 15 957 9790
+FUNC 1bf8 39 0 initterm_e
+1bf8 a 990 9790
+1c02 8 991 9790
+1c0a 9 999 9790
+1c13 8 1004 9790
+1c1b 2 1005 9790
+1c1d 9 1006 9790
+1c26 b 1010 9790
+FUNC 1c34 a 0 lockexit
+1c34 0 825 9790
+1c34 a 826 9790
+FUNC 1c40 a 0 unlockexit
+1c40 0 851 9790
+1c40 a 852 9790
+FUNC 1c4c 195 0 static void doexit(int, int, int)
+1c4c 24 552 9790
+1c70 b 568 9790
+1c7b d 571 9790
+1c88 a 572 9790
+1c92 7 575 9790
+1c99 8 577 9790
+1ca1 15 593 9790
+1cb6 9 594 9790
+1cbf 15 595 9790
+1cd4 8 599 9790
+1cdc 8 600 9790
+1ce4 1b 608 9790
+1cff 2 611 9790
+1d01 5 613 9790
+1d06 c 620 9790
+1d12 b 623 9790
+1d1d 2 626 9790
+1d1f 10 628 9790
+1d2f d 629 9790
+1d3c a 631 9790
+1d46 10 634 9790
+1d56 10 635 9790
+1d66 2 637 9790
+1d68 13 643 9790
+1d7b 14 651 9790
+1d8f 5 666 9790
+1d94 a 667 9790
+1d9e 5 670 9790
+1da3 a 674 9790
+1dad a 676 9790
+1db7 12 678 9790
+1dc9 18 679 9790
+FUNC 1de4 a 0 exit
+1de4 0 416 9790
+1de4 a 417 9790
+FUNC 1df0 20 0 heap_init
+1df0 4 40 828
+1df4 17 42 828
+1e0b 5 46 828
+FUNC 1e10 32d 0 ioinit
+1e10 25 110 1584
+1e35 b 125 1584
+1e40 23 134 1584
+1e63 19 136 1584
+1e7c 7 139 1584
+1e83 7 140 1584
+1e8a b 142 1584
+1e95 6 143 1584
+1e9b 4 144 1584
+1e9f 4 146 1584
+1ea3 7 147 1584
+1eaa 5 148 1584
+1eaf 6 149 1584
+1eb5 4 151 1584
+1eb9 4 152 1584
+1ebd 11 142 1584
+1ece b 160 1584
+1ed9 20 162 1584
+1ef9 9 173 1584
+1f02 b 174 1584
+1f0d d 180 1584
+1f1a 12 186 1584
+1f2c 18 192 1584
+1f44 7 198 1584
+1f4b 2 199 1584
+1f4d e 205 1584
+1f5b 7 206 1584
+1f62 f 208 1584
+1f71 6 209 1584
+1f77 4 210 1584
+1f7b 4 212 1584
+1f7f 4 213 1584
+1f83 6 214 1584
+1f89 4 216 1584
+1f8d 4 217 1584
+1f91 a 208 1584
+1f9b 4 186 1584
+1f9f 14 224 1584
+1fb3 23 237 1584
+1fd6 1b 239 1584
+1ff1 6 240 1584
+1ff7 6 241 1584
+1ffd 11 243 1584
+200e 3 244 1584
+2011 19 224 1584
+202a 18 255 1584
+2042 20 257 1584
+2062 10 320 1584
+2072 4 271 1584
+2076 34 275 1584
+20aa 3 280 1584
+20ad 8 286 1584
+20b5 9 287 1584
+20be 5 288 1584
+20c3 a 289 1584
+20cd 11 292 1584
+20de 3 293 1584
+20e1 2 295 1584
+20e3 a 304 1584
+20ed 3 305 1584
+20f0 c 311 1584
+20fc 8 312 1584
+2104 b 255 1584
+210f a 326 1584
+2119 2 329 1584
+211b 22 330 1584
+FUNC 2140 f3 0 setargv
+2140 f 88 9411
+214f 9 97 9411
+2158 5 98 9411
+215d 1f 105 9411
+217c 7 122 9411
+2183 7 110 9411
+218a d 122 9411
+2197 1c 129 9411
+21b3 1f 136 9411
+21d2 9 140 9411
+21db b 144 9411
+21e6 5 145 9411
+21eb 1e 153 9411
+2209 4 158 9411
+220d f 162 9411
+221c 4 177 9411
+2220 3 138 9411
+2223 10 178 9411
+FUNC 2234 1c7 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+2234 1d 223 9411
+2251 15 230 9411
+2266 7 231 9411
+226d 5 235 9411
+2272 7 236 9411
+2279 2 255 9411
+227b 5 257 9411
+2280 4 259 9411
+2284 b 260 9411
+228f 2 261 9411
+2291 3 263 9411
+2294 5 264 9411
+2299 7 265 9411
+22a0 6 267 9411
+22a6 b 269 9411
+22b1 3 270 9411
+22b4 5 271 9411
+22b9 7 272 9411
+22c0 3 273 9411
+22c3 15 277 9411
+22d8 5 282 9411
+22dd 6 283 9411
+22e3 3 280 9411
+22e6 2 286 9411
+22e8 9 291 9411
+22f1 a 292 9411
+22fb 5 293 9411
+2300 9 296 9411
+2309 5 300 9411
+230e 7 301 9411
+2315 4 302 9411
+2319 5 316 9411
+231e 4 320 9411
+2322 3 323 9411
+2325 2 324 9411
+2327 5 321 9411
+232c 5 326 9411
+2331 4 329 9411
+2335 d 330 9411
+2342 3 331 9411
+2345 2 332 9411
+2347 b 334 9411
+2352 4 337 9411
+2356 2 341 9411
+2358 5 342 9411
+235d 6 343 9411
+2363 3 344 9411
+2366 4 341 9411
+236a 12 348 9411
+237c 4 353 9411
+2380 11 355 9411
+2391 a 356 9411
+239b 3 357 9411
+239e 7 359 9411
+23a5 2 360 9411
+23a7 4 361 9411
+23ab 3 362 9411
+23ae 3 363 9411
+23b1 3 366 9411
+23b4 3 368 9411
+23b7 5 377 9411
+23bc 5 381 9411
+23c1 6 382 9411
+23c7 3 383 9411
+23ca 5 292 9411
+23cf 5 387 9411
+23d4 4 388 9411
+23d8 4 389 9411
+23dc 1f 390 9411
+FUNC 23fc 131 0 setenvp
+23fc 14 77 9010
+2410 9 85 9010
+2419 5 86 9010
+241e 9 91 9010
+2427 5 98 9010
+242c 8 99 9010
+2434 4 110 9010
+2438 2 111 9010
+243a e 112 9010
+2448 6 108 9010
+244e 1f 117 9010
+246d c 121 9010
+2479 8 123 9010
+2481 8 125 9010
+2489 18 127 9010
+24a1 12 133 9010
+24b3 4 134 9010
+24b7 b 121 9010
+24c2 7 131 9010
+24c9 8 138 9010
+24d1 8 139 9010
+24d9 4 142 9010
+24dd a 149 9010
+24e7 2 152 9010
+24e9 15 153 9010
+24fe c 129 9010
+250a 8 130 9010
+2512 5 131 9010
+2517 16 133 9010
+FUNC 2530 43 0 FF_MSGBANNER
+2530 4 143 9214
+2534 26 147 9214
+255a a 149 9214
+2564 a 150 9214
+256e 5 152 9214
+FUNC 2574 2f 0 GET_RTERRMSG
+2574 0 174 9214
+2574 c 177 9214
+2580 5 178 9214
+2585 f 177 9214
+2594 2 181 9214
+2596 1 182 9214
+2597 b 179 9214
+25a2 1 182 9214
+FUNC 25a4 26f 0 NMSG_WRITE
+25a4 2f 205 9214
+25d3 5 206 9214
+25d8 e 208 9214
+25e6 2a 235 9214
+2610 c 272 9214
+261c 1f 281 9214
+263b 2 284 9214
+263d 8 281 9214
+2645 25 284 9214
+266a 19 285 9214
+2683 11 288 9214
+2694 c 290 9214
+26a0 2d 291 9214
+26cd 1a 294 9214
+26e7 16 295 9214
+26fd 17 299 9214
+2714 18 237 9214
+272c 8 253 9214
+2734 4 255 9214
+2738 5 257 9214
+273d 15 253 9214
+2752 2d 269 9214
+277f 2d 303 9214
+27ac 15 285 9214
+27c1 15 291 9214
+27d6 15 295 9214
+27eb 15 294 9214
+2800 13 281 9214
+FUNC 2814 7 0 _set_app_type
+2814 0 94 2522
+2814 6 95 2522
+281a 1 96 2522
+FUNC 281c 40 0 set_error_mode
+281c 4 49 2522
+2820 e 52 2522
+282e 6 60 2522
+2834 2 61 2522
+2836 6 56 2522
+283c 6 57 2522
+2842 2 66 2522
+2844 13 63 2522
+2857 5 67 2522
+FUNC 285c ac 0 _security_init_cookie
+285c d 82 2974
+2869 1b 99 2974
+2884 a 112 2974
+288e 8 114 2974
+2896 c 120 2974
+28a2 6 121 2974
+28a8 10 130 2974
+28b8 7 132 2974
+28bf 1c 149 2974
+28db 11 157 2974
+28ec 7 168 2974
+28f3 15 171 2974
+FUNC 2908 38 0 RTC_Initialize
+2908 a 43 11032
+2912 10 46 11032
+2922 8 48 11032
+292a 2 50 11032
+292c 9 46 11032
+2935 b 53 11032
+FUNC 2940 38 0 RTC_Terminate
+2940 a 57 11032
+294a 10 60 11032
+295a 8 62 11032
+2962 2 64 11032
+2964 9 60 11032
+296d b 67 11032
+FUNC 2978 f4 0 _crtGetEnvironmentStringsA
+2978 19 40 4721
+2991 15 49 4721
+29a6 3 53 4721
+29a9 6 54 4721
+29af a 55 4721
+29b9 a 56 4721
+29c3 2e 70 4721
+29f1 14 74 4721
+2a05 28 88 4721
+2a2d 8 90 4721
+2a35 3 91 4721
+2a38 9 94 4721
+2a41 5 95 4721
+2a46 9 76 4721
+2a4f 2 77 4721
+2a51 1b 96 4721
+FUNC 2a6c 1e1 0 _C_specific_handler
+2a6c 1c 91 6
+2a88 4 112 6
+2a8c 3 113 6
+2a8f 7 114 6
+2a96 13 124 6
+2aa9 14 133 6
+2abd 2a 136 6
+2ae7 7 145 6
+2aee 4 150 6
+2af2 d 152 6
+2aff 4 162 6
+2b03 2 165 6
+2b05 23 176 6
+2b28 e 178 6
+2b36 15 191 6
+2b4b 29 198 6
+2b74 5 204 6
+2b79 7 133 6
+2b80 7 163 6
+2b87 4 216 6
+2b8b c 218 6
+2b97 17 220 6
+2bae 6 222 6
+2bb4 7 238 6
+2bbb 30 242 6
+2beb 8 238 6
+2bf3 5 248 6
+2bf8 8 263 6
+2c00 5 264 6
+2c05 2 267 6
+2c07 3 218 6
+2c0a 14 272 6
+2c1e c 218 6
+2c2a 5 284 6
+2c2f 1e 285 6
+FUNC 2c50 20 0 _doserrno
+2c50 4 292 480
+2c54 5 293 480
+2c59 5 294 480
+2c5e 9 295 480
+2c67 4 297 480
+2c6b 5 299 480
+FUNC 2c70 4e 0 dosmaperr
+2c70 c 110 480
+2c7c 19 111 480
+2c95 1e 113 480
+2cb3 b 114 480
+FUNC 2cc0 20 0 errno
+2cc0 4 279 480
+2cc4 5 280 480
+2cc9 5 281 480
+2cce 9 282 480
+2cd7 4 284 480
+2cdb 5 287 480
+FUNC 2ce0 4d 0 get_errno_from_oserr
+2ce0 0 119 480
+2ce0 10 123 480
+2cf0 5 124 480
+2cf5 e 123 480
+2d03 8 133 480
+2d0b 5 134 480
+2d10 1 139 480
+2d11 12 135 480
+2d23 1 139 480
+2d24 8 125 480
+2d2c 1 139 480
+FUNC 2d30 f2 0 call_reportfault
+2d30 36 148 8649
+2d66 5 150 8649
+2d6b 5 151 8649
+2d70 17 154 8649
+2d87 5 156 8649
+2d8c 17 188 8649
+2da3 e 189 8649
+2db1 7 190 8649
+2db8 8 194 8649
+2dc0 8 195 8649
+2dc8 c 196 8649
+2dd4 6 198 8649
+2dda c 201 8649
+2de6 d 205 8649
+2df3 7 206 8649
+2dfa 28 208 8649
+FUNC 2e24 8 0 initp_misc_invarg
+2e24 0 39 8649
+2e24 7 40 8649
+2e2b 1 41 8649
+FUNC 2e2c 65 0 invalid_parameter
+2e2c 17 71 8649
+2e43 16 78 8649
+2e59 11 81 8649
+2e6a 14 86 8649
+2e7e 3 81 8649
+2e81 10 85 8649
+FUNC 2e94 1e 0 invalid_parameter_noinfo
+2e94 4 95 8649
+2e98 15 96 8649
+2ead 5 97 8649
+FUNC 2eb4 3b 0 invoke_watson
+2eb4 4 121 8649
+2eb8 e 131 8649
+2ec6 7 132 8649
+2ecd 14 136 8649
+2ee1 5 138 8649
+2ee6 4 140 8649
+2eea 5 138 8649
+FUNC 2ef0 61 0 strcpy_s
+2ef0 6 13 6169
+2ef6 a 18 6169
+2f00 8 19 6169
+2f08 13 18 6169
+2f1b 6 34 6169
+2f21 19 23 6169
+2f3a 5 27 6169
+2f3f 2 29 6169
+2f41 c 30 6169
+2f4d 4 33 6169
+FUNC 2f70 a8 0 strlen
+2f70 0 46 6820
+2f70 3 50 6820
+2f73 3 51 6820
+2f76 6 52 6820
+2f7c 4 53 6820
+2f80 2 58 6820
+2f82 3 59 6820
+2f85 2 60 6820
+2f87 2 61 6820
+2f89 2 62 6820
+2f8b 2 63 6820
+2f8d a 66 6820
+2f97 a 67 6820
+2fa1 3 70 6820
+2fa4 3 72 6820
+2fa7 4 73 6820
+2fab 3 74 6820
+2fae 3 75 6820
+2fb1 3 76 6820
+2fb4 3 77 6820
+2fb7 2 78 6820
+2fb9 4 82 6820
+2fbd 2 84 6820
+2fbf 2 85 6820
+2fc1 2 86 6820
+2fc3 2 87 6820
+2fc5 4 88 6820
+2fc9 2 89 6820
+2fcb 2 90 6820
+2fcd 2 91 6820
+2fcf 2 92 6820
+2fd1 4 93 6820
+2fd5 2 94 6820
+2fd7 2 95 6820
+2fd9 2 96 6820
+2fdb 2 97 6820
+2fdd 3 98 6820
+2fe0 2 99 6820
+2fe2 2 100 6820
+2fe4 2 101 6820
+2fe6 2 102 6820
+2fe8 5 105 6820
+2fed 1 106 6820
+2fee 5 108 6820
+2ff3 1 109 6820
+2ff4 5 111 6820
+2ff9 1 112 6820
+2ffa 5 114 6820
+2fff 1 115 6820
+3000 5 117 6820
+3005 1 118 6820
+3006 5 120 6820
+300b 1 121 6820
+300c 5 123 6820
+3011 1 124 6820
+3012 5 126 6820
+3017 1 127 6820
+FUNC 3018 44 0 lock
+3018 a 325 9509
+3022 14 330 9509
+3036 9 332 9509
+303f 8 333 9509
+3047 4 340 9509
+304b a 341 9509
+3055 7 340 9509
+FUNC 305c 87 0 mtdeletelocks
+305c 14 183 9509
+3070 e 189 9509
+307e e 191 9509
+308c 9 195 9509
+3095 8 201 9509
+309d 4 202 9509
+30a1 9 189 9509
+30aa b 210 9509
+30b5 a 212 9509
+30bf 6 216 9509
+30c5 9 210 9509
+30ce 15 219 9509
+FUNC 30e4 bd 0 mtinitlocknum
+30e4 13 254 9509
+30f7 a 264 9509
+3101 5 266 9509
+3106 a 267 9509
+3110 a 269 9509
+311a 11 273 9509
+312b 7 274 9509
+3132 12 276 9509
+3144 b 277 9509
+314f 4 278 9509
+3153 b 281 9509
+315e 3 285 9509
+3161 7 284 9509
+3168 d 285 9509
+3175 4 286 9509
+3179 2 288 9509
+317b 6 289 9509
+3181 d 293 9509
+318e 2 296 9509
+3190 11 297 9509
+FUNC 31a4 61 0 mtinitlocks
+31a4 f 137 9509
+31b3 c 139 9509
+31bf 6 145 9509
+31c5 a 146 9509
+31cf 1a 147 9509
+31e9 9 144 9509
+31f2 13 153 9509
+FUNC 3208 18 0 unlock
+3208 0 363 9509
+3208 18 367 9509
+FUNC 3220 b6 0 malloc
+3220 12 84 930
+3232 b 88 930
+323d 41 92 930
+327e 5 97 930
+3283 8 101 930
+328b c 108 930
+3297 2 112 930
+3299 b 103 930
+32a4 b 122 930
+32af 5 124 930
+32b4 5 114 930
+32b9 b 115 930
+32c4 2 116 930
+32c6 10 125 930
+FUNC 32f0 24 0 local_unwind
+32f0 0 47 69
+32f0 7 49 69
+32f7 3 58 69
+32fa 3 59 69
+32fd 5 65 69
+3302 5 66 69
+3307 5 67 69
+330c 7 68 69
+3313 d 69 69
+FUNC 3320 18 0 NLG_Notify
+3320 0 103 69
+3320 5 105 69
+3325 5 106 69
+332a 5 107 69
+332f 7 108 69
+3336 a 109 69
+FUNC 3340 1 0 _NLG_Dispatch2
+3340 0 113 69
+3340 10 114 69
+FUNC 3350 1 0 _NLG_Return2
+3350 0 137 69
+3350 1 138 69
+FUNC 3354 1f 0 terminate()
+3354 4 66 10933
+3358 c 71 10933
+3364 5 72 10933
+3369 2 81 10933
+336b 2 82 10933
+336d 6 96 10933
+FUNC 3374 1d 0 initp_eh_hooks
+3374 4 51 10933
+3378 14 52 10933
+338c 5 53 10933
+FUNC 3394 6d 0 _crtCaptureCurrentContext
+3394 d 327 4340
+33a1 6 335 4340
+33a7 7 337 4340
+33ae 11 338 4340
+33bf 5 340 4340
+33c4 32 348 4340
+33f6 b 350 4340
+FUNC 3404 71 0 _crtCapturePreviousContext
+3404 b 279 4340
+340f 6 287 4340
+3415 7 289 4340
+341c 2 292 4340
+341e 11 294 4340
+342f 5 296 4340
+3434 39 304 4340
+346d 8 309 4340
+FUNC 3478 1a 0 _crtFlsAlloc
+3478 0 381 4340
+3478 10 386 4340
+3488 3 388 4340
+348b 7 392 4340
+FUNC 3494 1a 0 _crtFlsFree
+3494 0 398 4340
+3494 10 403 4340
+34a4 3 405 4340
+34a7 7 409 4340
+FUNC 34b0 1a 0 _crtFlsGetValue
+34b0 0 415 4340
+34b0 10 420 4340
+34c0 3 422 4340
+34c3 7 426 4340
+FUNC 34cc 1a 0 _crtFlsSetValue
+34cc 0 433 4340
+34cc 10 438 4340
+34dc 3 440 4340
+34df 7 444 4340
+FUNC 34e8 2b 0 _crtInitializeCriticalSectionEx
+34e8 4 457 4340
+34ec 10 459 4340
+34fc 4 467 4340
+3500 3 461 4340
+3503 6 465 4340
+3509 5 466 4340
+350e 5 467 4340
+FUNC 3514 4c 0 _crtIsPackagedApp
+3514 6 126 4340
+351a c 133 4340
+3526 2d 135 4340
+3553 7 138 4340
+355a 6 140 4340
+FUNC 3560 3fa 0 _crtLoadWinApiPointers
+3560 6 749 4340
+3566 d 750 4340
+3573 13 752 4340
+3586 1e 753 4340
+35a4 1e 754 4340
+35c2 1e 755 4340
+35e0 1e 756 4340
+35fe 1e 757 4340
+361c 1e 758 4340
+363a 1e 759 4340
+3658 1e 760 4340
+3676 1e 761 4340
+3694 1e 762 4340
+36b2 1e 763 4340
+36d0 1e 764 4340
+36ee 1e 765 4340
+370c 1e 766 4340
+372a 25 767 4340
+374f 17 768 4340
+3766 1e 769 4340
+3784 1e 770 4340
+37a2 1e 771 4340
+37c0 1e 772 4340
+37de 1e 773 4340
+37fc 1e 774 4340
+381a 1e 775 4340
+3838 1e 776 4340
+3856 1e 777 4340
+3874 1e 778 4340
+3892 1e 779 4340
+38b0 1e 780 4340
+38ce 1e 781 4340
+38ec 1e 782 4340
+390a 25 783 4340
+392f 25 784 4340
+3954 6 785 4340
+FUNC 395c 7 0 _crtSetUnhandledExceptionFilter
+395c 0 194 4340
+395c 7 198 4340
+FUNC 3964 7 0 _crtSleep
+3964 0 727 4340
+3964 7 739 4340
+FUNC 396c 1f 0 _crtTerminateProcess
+396c 8 221 4340
+3974 b 224 4340
+397f 5 225 4340
+3984 7 224 4340
+FUNC 398c 20 0 _crtUnhandledException
+398c 9 253 4340
+3995 8 255 4340
+399d 3 258 4340
+39a0 5 259 4340
+39a5 7 258 4340
+FUNC 39ac 7f 0 calloc_crt
+39ac 19 55 658
+39c5 c 56 658
+39d1 11 62 658
+39e2 d 63 658
+39ef 19 64 658
+3a08 5 65 658
+3a0d 1e 69 658
+FUNC 3a2c 7a 0 malloc_crt
+3a2c 19 40 658
+3a45 f 41 658
+3a54 b 45 658
+3a5f 9 46 658
+3a68 1b 47 658
+3a83 5 48 658
+3a88 1e 52 658
+FUNC 3aa8 81 0 realloc_crt
+3aa8 19 72 658
+3ac1 c 73 658
+3acd e 77 658
+3adb 12 78 658
+3aed 19 79 658
+3b06 5 80 658
+3b0b 1e 84 658
+FUNC 3b2c 8c 0 _addlocaleref
+3b2c 0 36 3702
+3b2c 3 39 3702
+3b2f c 41 3702
+3b3b 3 42 3702
+3b3e c 44 3702
+3b4a 3 45 3702
+3b4d c 47 3702
+3b59 3 48 3702
+3b5c c 50 3702
+3b68 3 51 3702
+3b6b a 53 3702
+3b75 15 55 3702
+3b8a 3 56 3702
+3b8d 10 59 3702
+3b9d 3 60 3702
+3ba0 9 53 3702
+3ba9 e 63 3702
+3bb7 1 64 3702
+FUNC 3bb8 196 0 _freetlocinfo
+3bb8 14 129 3702
+3bcc 2c 137 3702
+3bf8 11 140 3702
+3c09 5 142 3702
+3c0e c 143 3702
+3c1a 11 147 3702
+3c2b 5 149 3702
+3c30 c 150 3702
+3c3c c 153 3702
+3c48 c 154 3702
+3c54 11 161 3702
+3c65 13 163 3702
+3c78 14 164 3702
+3c8c f 165 3702
+3c9b c 166 3702
+3ca7 1c 173 3702
+3cc3 5 175 3702
+3cc8 c 176 3702
+3cd4 10 179 3702
+3ce4 1a 182 3702
+3cfe 5 184 3702
+3d03 8 185 3702
+3d0b 15 193 3702
+3d20 5 195 3702
+3d25 d 179 3702
+3d32 3 202 3702
+3d35 14 203 3702
+3d49 5 202 3702
+FUNC 3d50 a4 0 _removelocaleref
+3d50 0 74 3702
+3d50 9 77 3702
+3d59 8 79 3702
+3d61 c 81 3702
+3d6d 4 82 3702
+3d71 c 84 3702
+3d7d 4 85 3702
+3d81 c 87 3702
+3d8d 4 88 3702
+3d91 c 90 3702
+3d9d 4 91 3702
+3da1 a 93 3702
+3dab 15 95 3702
+3dc0 4 96 3702
+3dc4 10 99 3702
+3dd4 4 100 3702
+3dd8 9 93 3702
+3de1 f 103 3702
+3df0 3 106 3702
+3df3 1 107 3702
+FUNC 3df4 75 0 _updatetlocinfo
+3df4 6 282 3702
+3dfa 8 284 3702
+3e02 18 286 3702
+3e1a e 298 3702
+3e28 b 287 3702
+3e33 16 291 3702
+3e49 a 295 3702
+3e53 5 301 3702
+3e58 8 303 3702
+3e60 3 306 3702
+3e63 6 307 3702
+FUNC 3e6c 62 0 updatetlocinfoEx_nolock
+3e6c d 217 3702
+3e79 a 220 3702
+3e83 3 223 3702
+3e86 5 224 3702
+3e8b 3 230 3702
+3e8e 8 231 3702
+3e96 5 237 3702
+3e9b 8 239 3702
+3ea3 11 249 3702
+3eb4 8 250 3702
+3ebc 5 254 3702
+3ec1 2 221 3702
+3ec3 b 255 3702
+FUNC 3ed0 28 0 _initmbctable
+3ed0 4 854 8253
+3ed4 9 864 8253
+3edd a 865 8253
+3ee7 a 866 8253
+3ef1 2 871 8253
+3ef3 5 872 8253
+FUNC 3ef8 a8 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+3ef8 d 245 208
+3f05 9 246 208
+3f0e 9 248 208
+3f17 a 249 208
+3f21 b 250 208
+3f2c 1f 252 208
+3f4b 28 253 208
+3f73 e 254 208
+3f81 9 256 208
+3f8a 4 257 208
+3f8e 2 260 208
+3f90 7 262 208
+3f97 9 264 208
+FUNC 3fa0 7d 0 static int getSystemCP(int)
+3fa0 8 295 8253
+3fa8 c 297 8253
+3fb4 7 298 8253
+3fbb 5 303 8253
+3fc0 a 305 8253
+3fca 8 306 8253
+3fd2 5 309 8253
+3fd7 a 311 8253
+3fe1 a 312 8253
+3feb 5 317 8253
+3ff0 12 320 8253
+4002 15 323 8253
+4017 6 324 8253
+FUNC 4020 8e 0 static void setSBCS(struct threadmbcinfostruct *)
+4020 14 374 8253
+4034 7 378 8253
+403b 12 379 8253
+404d a 382 8253
+4057 7 387 8253
+405e b 390 8253
+4069 a 392 8253
+4073 d 393 8253
+4080 c 395 8253
+408c d 396 8253
+4099 15 397 8253
+FUNC 40b0 1e1 0 static void setSBUpLow(struct threadmbcinfostruct *)
+40b0 2e 413 8253
+40de e 423 8253
+40ec 14 426 8253
+4100 b 427 8253
+410b 10 431 8253
+411b e 433 8253
+4129 9 434 8253
+4132 5 433 8253
+4137 a 431 8253
+4141 2c 439 8253
+416d 33 444 8253
+41a0 39 449 8253
+41d9 1c 458 8253
+41f5 5 455 8253
+41fa 3 457 8253
+41fd 7 458 8253
+4204 5 460 8253
+4209 3 462 8253
+420c b 463 8253
+4217 2 465 8253
+4219 7 466 8253
+4220 c 454 8253
+422c 2 468 8253
+422e 6 472 8253
+4234 d 473 8253
+4241 3 475 8253
+4244 5 476 8253
+4249 6 478 8253
+424f 3 480 8253
+4252 9 481 8253
+425b 2 483 8253
+425d 7 484 8253
+4264 9 472 8253
+426d 24 486 8253
+FUNC 4294 ba 0 _updatetmbcinfo
+4294 a 507 8253
+429e 8 510 8253
+42a6 18 511 8253
+42be 9 545 8253
+42c7 b 513 8253
+42d2 15 516 8253
+42e7 1b 522 8253
+4302 5 527 8253
+4307 1a 534 8253
+4321 8 535 8253
+4329 a 540 8253
+4333 5 548 8253
+4338 8 550 8253
+4340 3 553 8253
+4343 b 554 8253
+FUNC 4350 244 0 setmbcp
+4350 1b 585 8253
+436b 4 586 8253
+436f 8 590 8253
+4377 5 592 8253
+437c 7 593 8253
+4383 a 595 8253
+438d 9 597 8253
+4396 d 603 8253
+43a3 b 605 8253
+43ae 70 607 8253
+441e 2 618 8253
+4420 16 623 8253
+4436 1f 625 8253
+4455 c 626 8253
+4461 3 631 8253
+4464 1a 633 8253
+447e d 635 8253
+448b 9 641 8253
+4494 9 642 8253
+449d e 643 8253
+44ab 12 644 8253
+44bd 11 645 8253
+44ce 4 644 8253
+44d2 e 646 8253
+44e0 f 647 8253
+44ef 4 646 8253
+44f3 c 648 8253
+44ff 12 649 8253
+4511 4 648 8253
+4515 1e 651 8253
+4533 5 652 8253
+4538 7 656 8253
+453f 3 657 8253
+4542 9 661 8253
+454b 5 665 8253
+4550 c 671 8253
+455c 8 672 8253
+4564 b 673 8253
+456f 2 679 8253
+4571 5 684 8253
+4576 3 693 8253
+4579 1b 694 8253
+FUNC 4594 2ae 0 setmbcp_nolock
+4594 28 697 8253
+45bc 5 704 8253
+45c1 8 707 8253
+45c9 8 709 8253
+45d1 5 710 8253
+45d6 12 714 8253
+45e8 8 719 8253
+45f0 1b 716 8253
+460b 11 754 8253
+461c 15 762 8253
+4631 4 766 8253
+4635 d 767 8253
+4642 3 769 8253
+4645 7 770 8253
+464c b 772 8253
+4657 12 775 8253
+4669 1f 777 8253
+4688 b 778 8253
+4693 9 775 8253
+469c 9 782 8253
+46a5 b 783 8253
+46b0 47 786 8253
+46f7 4 789 8253
+46fb 2 791 8253
+46fd 3 793 8253
+4700 4 795 8253
+4704 b 796 8253
+470f 5 800 8253
+4714 c 805 8253
+4720 8 812 8253
+4728 4 722 8253
+472c d 723 8253
+4739 1e 726 8253
+4757 3 729 8253
+475a b 731 8253
+4765 1a 734 8253
+477f 17 735 8253
+4796 9 731 8253
+479f c 726 8253
+47ab 3 739 8253
+47ae 4 741 8253
+47b2 38 742 8253
+47ea 17 743 8253
+4801 11 744 8253
+4812 8 747 8253
+481a 2 748 8253
+481c 26 813 8253
+FUNC 4850 44 0 FindPESection
+4850 0 86 3978
+4850 4 93 3978
+4854 1f 102 3978
+4873 12 105 3978
+4885 c 102 3978
+4891 2 117 3978
+4893 1 118 3978
+FUNC 48a0 4d 0 IsNonwritableInCurrentImage
+48a0 d 143 3978
+48ad 13 158 3978
+48c0 3 168 3978
+48c3 b 169 3978
+48ce 5 170 3978
+48d3 d 179 3978
+48e0 2 187 3978
+48e2 b 189 3978
+FUNC 48f0 2e 0 ValidateImageBase
+48f0 3 38 3978
+48f3 a 44 3978
+48fd 2 46 3978
+48ff 1 62 3978
+4900 7 49 3978
+4907 a 52 3978
+4911 c 56 3978
+491d 1 62 3978
+FUNC 4920 43 0 _onexitinit
+4920 6 201 3795
+4926 d 204 3795
+4933 1a 205 3795
+494d 5 207 3795
+4952 5 212 3795
+4957 4 214 3795
+495b 2 216 3795
+495d 6 217 3795
+FUNC 4964 10a 0 onexit
+4964 1c 81 3795
+4980 6 84 3795
+4986 c6 87 3795
+4a4c 5 90 3795
+4a51 3 93 3795
+4a54 1a 94 3795
+FUNC 4a70 17 0 atexit
+4a70 4 161 3795
+4a74 e 162 3795
+4a82 5 163 3795
+FUNC 4a88 39 0 initp_misc_cfltcvt_tab
+4a88 a 54 5002
+4a92 9 56 5002
+4a9b 1b 58 5002
+4ab6 b 60 5002
+FUNC 4ac4 33 0 callnewh
+4ac4 9 131 6647
+4acd d 133 6647
+4ada e 135 6647
+4ae8 7 138 6647
+4aef 2 136 6647
+4af1 6 139 6647
+FUNC 4af8 8 0 initp_heap_handler
+4af8 0 31 6647
+4af8 7 32 6647
+4aff 1 33 6647
+FUNC 4b00 8 0 initp_misc_purevirt
+4b00 0 179 3233
+4b00 7 180 3233
+4b07 1 181 3233
+FUNC 4b08 e 0 _get_sigabrt
+4b08 0 670 4150
+4b08 e 671 4150
+FUNC 4b18 1d 0 initp_misc_winsig
+4b18 0 57 4150
+4b18 7 58 4150
+4b1f 7 59 4150
+4b26 7 60 4150
+4b2d 7 61 4150
+4b34 1 62 4150
+FUNC 4b38 233 0 raise
+4b38 19 451 4150
+4b51 3 454 4150
+4b54 5 455 4150
+4b59 6 458 4150
+4b5f 2 459 4150
+4b61 2d 461 4150
+4b8e 12 499 4150
+4ba0 e 469 4150
+4bae 5 471 4150
+4bb3 e 480 4150
+4bc1 2 482 4150
+4bc3 e 475 4150
+4bd1 2 477 4150
+4bd3 8 487 4150
+4bdb 5 488 4150
+4be0 8 489 4150
+4be8 46 491 4150
+4c2e 2 492 4150
+4c30 e 464 4150
+4c3e 9 465 4150
+4c47 9 501 4150
+4c50 6 508 4150
+4c56 7 509 4150
+4c5d 5 514 4150
+4c62 a 519 4150
+4c6c 4 526 4150
+4c70 19 527 4150
+4c89 c 541 4150
+4c95 8 542 4150
+4c9d 5 548 4150
+4ca2 a 549 4150
+4cac a 550 4150
+4cb6 5 558 4150
+4cbb 18 565 4150
+4cd3 13 568 4150
+4ce6 e 565 4150
+4cf4 b 571 4150
+4cff 4 575 4150
+4d03 7 576 4150
+4d0a 5 579 4150
+4d0f b 585 4150
+4d1a 2 586 4150
+4d1c 18 587 4150
+4d34 7 595 4150
+4d3b 9 600 4150
+4d44 a 601 4150
+4d4e 5 604 4150
+4d53 18 605 4150
+FUNC 4d6c 8 0 initp_misc_rand_s
+4d6c 0 52 4628
+4d6c 7 53 4628
+4d73 1 54 4628
+FUNC 4d74 98 0 _initstdio
+4d74 a 109 5182
+4d7e 11 118 5182
+4d8f 7 119 5182
+4d96 5 120 5182
+4d9b 1f 130 5182
+4dba 1d 133 5182
+4dd7 7 134 5182
+4dde 7 141 5182
+4de5 11 142 5182
+4df6 9 141 5182
+4dff 2 144 5182
+4e01 b 145 5182
+FUNC 4e0c 30 0 _endstdio
+4e0c 4 173 5182
+4e10 5 175 5182
+4e15 9 178 5182
+4e1e 5 179 5182
+4e23 c 180 5182
+4e2f 8 181 5182
+4e37 5 182 5182
+FUNC 4e3c 65 0 lock_file
+4e3c 9 203 5182
+4e45 18 208 5182
+4e5d 29 213 5182
+4e86 5 215 5182
+4e8b 6 224 5182
+4e91 4 223 5182
+4e95 5 224 5182
+4e9a 7 223 5182
+FUNC 4ea4 31 0 lock_file2
+4ea4 9 246 5182
+4ead 5 251 5182
+4eb2 8 256 5182
+4eba 5 258 5182
+4ebf 6 267 5182
+4ec5 4 266 5182
+4ec9 5 267 5182
+4ece 7 266 5182
+FUNC 4ed8 4e 0 unlock_file
+4ed8 0 288 5182
+4ed8 18 293 5182
+4ef0 5 299 5182
+4ef5 26 300 5182
+4f1b b 308 5182
+FUNC 4f28 1d 0 unlock_file2
+4f28 0 331 5182
+4f28 5 336 5182
+4f2d 5 342 5182
+4f32 8 343 5182
+4f3a b 351 5182
+FUNC 4f48 79 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+4f48 11 223 8159
+4f59 13 224 8159
+4f6c 45 232 8159
+4fb1 10 233 8159
+FUNC 4fc4 12 0 ismbblead
+4fc4 0 181 8159
+4fc4 12 182 8159
+FUNC 4fd8 85 0 wcscat_s
+4fd8 6 13 6351
+4fde 10 18 6351
+4fee 9 19 6351
+4ff7 13 18 6351
+500a 6 46 6351
+5010 6 23 6351
+5016 4 25 6351
+501a 5 26 6351
+501f 5 29 6351
+5024 6 31 6351
+502a 1a 35 6351
+5044 5 39 6351
+5049 4 41 6351
+504d c 42 6351
+5059 4 45 6351
+FUNC 5060 6b 0 wcscpy_s
+5060 6 13 6169
+5066 d 18 6169
+5073 9 19 6169
+507c 13 18 6169
+508f 6 34 6169
+5095 1d 23 6169
+50b2 5 27 6169
+50b7 4 29 6169
+50bb c 30 6169
+50c7 4 33 6169
+FUNC 50cc 19 0 wcslen
+50cc 0 41 6501
+50cc 3 42 6501
+50cf c 44 6501
+50db 9 46 6501
+50e4 1 47 6501
+FUNC 50e8 cc 0 wcsncpy_s
+50e8 6 13 6260
+50ee 11 17 6260
+50ff 4 20 6260
+5103 a 24 6260
+510d 5 25 6260
+5112 3 28 6260
+5115 2 29 6260
+5117 8 31 6260
+511f 13 24 6260
+5132 6 66 6260
+5138 3 33 6260
+513b 3 34 6260
+513e 6 35 6260
+5144 1a 37 6260
+515e 2 41 6260
+5160 1f 45 6260
+517f 5 48 6260
+5184 4 50 6260
+5188 9 54 6260
+5191 6 56 6260
+5197 5 58 6260
+519c 6 59 6260
+51a2 3 61 6260
+51a5 f 62 6260
+FUNC 51b4 273 0 _crtMessageBoxW
+51b4 21 91 4913
+51d5 e 99 4913
+51e3 5 106 4913
+51e8 5 108 4913
+51ed 10 115 4913
+51fd 18 117 4913
+5215 14 118 4913
+5229 15 122 4913
+523e 9 124 4913
+5247 19 127 4913
+5260 9 130 4913
+5269 20 133 4913
+5289 20 136 4913
+52a9 17 138 4913
+52c0 10 139 4913
+52d0 5 141 4913
+52d5 20 143 4913
+52f5 a 147 4913
+52ff 5 152 4913
+5304 9 153 4913
+530d 5 159 4913
+5312 a 161 4913
+531c 5 166 4913
+5321 d 168 4913
+532e a 181 4913
+5338 15 202 4913
+534d 6 205 4913
+5353 13 206 4913
+5366 a 208 4913
+5370 31 213 4913
+53a1 4 222 4913
+53a5 2 224 4913
+53a7 c 226 4913
+53b3 6 228 4913
+53b9 5 229 4913
+53be 5 231 4913
+53c3 11 235 4913
+53d4 6 237 4913
+53da 5 238 4913
+53df 8 240 4913
+53e7 d 247 4913
+53f4 5 248 4913
+53f9 10 250 4913
+5409 2 255 4913
+540b 1c 258 4913
+FUNC 5428 1d 0 _GSHandlerCheck
+5428 4 75 37
+542c f 84 37
+543b 5 91 37
+5440 5 92 37
+FUNC 5448 63 0 _GSHandlerCheckCommon
+5448 6 126 37
+544e d 140 37
+545b 9 149 37
+5464 13 154 37
+5477 7 162 37
+547e b 171 37
+5489 6 173 37
+548f c 175 37
+549b 3 184 37
+549e 3 185 37
+54a1 5 186 37
+54a6 5 185 37
+FUNC 54c0 1f 0 _security_check_cookie
+54c0 0 45 2
+54c0 7 47 2
+54c7 2 48 2
+54c9 4 49 2
+54cd 5 50 2
+54d2 3 51 2
+54d5 1 53 2
+54d6 4 61 2
+54da 5 65 2
+FUNC 54e0 8 0 _crt_debugger_hook
+54e0 0 57 2495
+54e0 7 60 2495
+54e7 1 61 2495
+FUNC 5500 22a 0 memset
+5500 0 55 6812
+5500 3 59 6812
+5503 3 60 6812
+5506 4 61 6812
+550a 6 62 6812
+5510 8 67 6812
+5518 2 68 6812
+551a 1 71 6812
+551b 3 72 6812
+551e 2 73 6812
+5520 3 74 6812
+5523 2 75 6812
+5525 1 76 6812
+5526 2 77 6812
+5528 a 79 6812
+5532 4 80 6812
+5536 8 82 6812
+553e 6 83 6812
+5544 4 87 6812
+5548 2 88 6812
+554a 3 93 6812
+554d 3 94 6812
+5550 2 95 6812
+5552 3 96 6812
+5555 3 97 6812
+5558 3 98 6812
+555b 3 104 6812
+555e 4 105 6812
+5562 4 106 6812
+5566 2 107 6812
+5568 3 113 6812
+556b 4 114 6812
+556f 4 115 6812
+5573 7 116 6812
+557a 3 120 6812
+557d 4 121 6812
+5581 3 122 6812
+5584 2 123 6812
+5586 3 129 6812
+5589 2 130 6812
+558b 2 131 6812
+558d 3 132 6812
+5590 3 133 6812
+5593 2 134 6812
+5595 3 135 6812
+5598 f 136 6812
+55a7 3 147 6812
+55aa 4 148 6812
+55ae 4 149 6812
+55b2 4 150 6812
+55b6 4 151 6812
+55ba 4 152 6812
+55be 3 153 6812
+55c1 4 154 6812
+55c5 4 155 6812
+55c9 4 156 6812
+55cd 2 157 6812
+55cf 11 158 6812
+55e0 5 170 6812
+55e5 4 171 6812
+55e9 3 172 6812
+55ec 2 173 6812
+55ee 3 183 6812
+55f1 3 184 6812
+55f4 4 185 6812
+55f8 4 186 6812
+55fc 3 187 6812
+55ff 5 188 6812
+5604 3 194 6812
+5607 4 195 6812
+560b 2 196 6812
+560d 3 197 6812
+5610 3 204 6812
+5613 4 205 6812
+5617 7 206 6812
+561e 4 207 6812
+5622 4 208 6812
+5626 3 209 6812
+5629 4 210 6812
+562d 4 211 6812
+5631 4 212 6812
+5635 4 213 6812
+5639 2 214 6812
+563b 4 216 6812
+563f 3 221 6812
+5642 4 222 6812
+5646 a 223 6812
+5650 3 236 6812
+5653 4 237 6812
+5657 3 238 6812
+565a 2 239 6812
+565c 4 242 6812
+5660 2 243 6812
+5662 6 248 6812
+5668 3 251 6812
+566b 1 252 6812
+566c a 263 6812
+5676 4 264 6812
+567a 7 265 6812
+5681 8 266 6812
+5689 3 267 6812
+568c 3 268 6812
+568f 3 269 6812
+5692 4e 270 6812
+56e0 4 296 6812
+56e4 3 299 6812
+56e7 4 302 6812
+56eb 3 305 6812
+56ee 1 307 6812
+56ef 4 309 6812
+56f3 2 310 6812
+56f5 4 312 6812
+56f9 3 315 6812
+56fc 4 318 6812
+5700 1 319 6812
+5701 4 321 6812
+5705 3 324 6812
+5708 3 325 6812
+570b 1 326 6812
+570c 4 328 6812
+5710 3 331 6812
+5713 1 332 6812
+5714 4 334 6812
+5718 4 335 6812
+571c 1 336 6812
+571d 4 338 6812
+5721 3 339 6812
+5724 1 340 6812
+5725 4 342 6812
+5729 1 343 6812
+FUNC 572c 55 0 abort
+572c 4 55 2325
+5730 5 72 2325
+5735 5 73 2325
+573a a 75 2325
+5744 9 82 2325
+574d e 87 2325
+575b 7 88 2325
+5762 14 90 2325
+5776 b 100 2325
+FUNC 5784 d3 0 realloc
+5784 15 62 1111
+5799 5 67 1111
+579e a 68 1111
+57a8 5 71 1111
+57ad 5 73 1111
+57b2 2 74 1111
+57b4 6 81 1111
+57ba 24 85 1111
+57de d 94 1111
+57eb c 109 1111
+57f7 6 81 1111
+57fd 8 89 1111
+5805 b 90 1111
+5810 2 91 1111
+5812 10 117 1111
+5822 17 111 1111
+5839 2 112 1111
+583b 17 103 1111
+5852 5 105 1111
+FUNC 5858 9a 0 calloc_impl
+5858 10 21 566
+5868 5 26 566
+586d 1d 28 566
+588a 4 30 566
+588e c 34 566
+589a 2 39 566
+589c 6 41 566
+58a2 13 44 566
+58b5 e 47 566
+58c3 c 59 566
+58cf 5 61 566
+58d4 6 62 566
+58da 2 63 566
+58dc 5 52 566
+58e1 6 53 566
+58e7 b 69 566
+FUNC 58f4 10a 0 _free_lconv_mon
+58f4 0 270 3335
+58f4 e 271 3335
+5902 3 270 3335
+5905 d 274 3335
+5912 5 275 3335
+5917 d 277 3335
+5924 5 278 3335
+5929 d 280 3335
+5936 5 281 3335
+593b d 283 3335
+5948 5 284 3335
+594d d 286 3335
+595a 5 287 3335
+595f d 289 3335
+596c 5 290 3335
+5971 d 292 3335
+597e 5 293 3335
+5983 d 295 3335
+5990 5 296 3335
+5995 d 298 3335
+59a2 5 299 3335
+59a7 d 301 3335
+59b4 5 302 3335
+59b9 10 304 3335
+59c9 5 305 3335
+59ce 10 307 3335
+59de 5 308 3335
+59e3 10 310 3335
+59f3 5 311 3335
+59f8 6 312 3335
+FUNC 5a00 6c 0 _free_lconv_num
+5a00 0 217 3420
+5a00 a 218 3420
+5a0a 3 217 3420
+5a0d c 221 3420
+5a19 5 222 3420
+5a1e d 224 3420
+5a2b 5 225 3420
+5a30 d 227 3420
+5a3d 5 228 3420
+5a42 d 230 3420
+5a4f 5 231 3420
+5a54 d 233 3420
+5a61 5 234 3420
+5a66 6 235 3420
+FUNC 5a6c 3fa 0 _free_lc_time
+5a6c 0 230 3520
+5a6c e 231 3520
+5a7a 3 230 3520
+5a7d 9 234 3520
+5a86 9 235 3520
+5a8f 9 236 3520
+5a98 9 237 3520
+5aa1 9 238 3520
+5aaa 9 239 3520
+5ab3 8 240 3520
+5abb 9 242 3520
+5ac4 9 243 3520
+5acd 9 244 3520
+5ad6 9 245 3520
+5adf 9 246 3520
+5ae8 9 247 3520
+5af1 9 248 3520
+5afa 9 250 3520
+5b03 9 251 3520
+5b0c c 252 3520
+5b18 c 253 3520
+5b24 c 254 3520
+5b30 c 255 3520
+5b3c c 256 3520
+5b48 c 257 3520
+5b54 c 258 3520
+5b60 c 259 3520
+5b6c c 260 3520
+5b78 c 261 3520
+5b84 c 263 3520
+5b90 c 264 3520
+5b9c c 265 3520
+5ba8 c 266 3520
+5bb4 c 267 3520
+5bc0 c 268 3520
+5bcc c 269 3520
+5bd8 c 270 3520
+5be4 c 271 3520
+5bf0 c 272 3520
+5bfc c 273 3520
+5c08 c 274 3520
+5c14 c 276 3520
+5c20 c 277 3520
+5c2c c 279 3520
+5c38 c 280 3520
+5c44 c 281 3520
+5c50 c 284 3520
+5c5c c 285 3520
+5c68 c 286 3520
+5c74 c 287 3520
+5c80 c 288 3520
+5c8c c 289 3520
+5c98 c 290 3520
+5ca4 c 292 3520
+5cb0 c 293 3520
+5cbc c 294 3520
+5cc8 c 295 3520
+5cd4 c 296 3520
+5ce0 c 297 3520
+5cec c 298 3520
+5cf8 c 300 3520
+5d04 c 301 3520
+5d10 c 302 3520
+5d1c c 303 3520
+5d28 c 304 3520
+5d34 c 305 3520
+5d40 c 306 3520
+5d4c c 307 3520
+5d58 c 308 3520
+5d64 c 309 3520
+5d70 c 310 3520
+5d7c c 311 3520
+5d88 c 313 3520
+5d94 c 314 3520
+5da0 c 315 3520
+5dac c 316 3520
+5db8 c 317 3520
+5dc4 c 318 3520
+5dd0 c 319 3520
+5ddc c 320 3520
+5de8 c 321 3520
+5df4 c 322 3520
+5e00 c 323 3520
+5e0c c 324 3520
+5e18 c 326 3520
+5e24 c 327 3520
+5e30 c 329 3520
+5e3c c 330 3520
+5e48 c 331 3520
+5e54 c 333 3520
+5e60 6 336 3520
+FUNC 5e68 2ec 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, const wchar_t *, unsigned long, const char *, int, char *, int, int, int)
+5e68 2d 96 8449
+5e95 13 101 8449
+5ea8 21 102 8449
+5ec9 2 106 8449
+5ecb 5 107 8449
+5ed0 2 109 8449
+5ed2 b 133 8449
+5edd 7 134 8449
+5ee4 2c 145 8449
+5f10 7 146 8449
+5f17 7c 149 8449
+5f93 9 150 8449
+5f9c 26 160 8449
+5fc2 29 169 8449
+5feb b 172 8449
+5ff6 b 175 8449
+6001 8 177 8449
+6009 1e 186 8449
+6027 5 190 8449
+602c 7d 196 8449
+60a9 5 197 8449
+60ae 20 207 8449
+60ce 3 210 8449
+60d1 1f 220 8449
+60f0 2 223 8449
+60f2 18 233 8449
+610a 11 240 8449
+611b 11 242 8449
+612c 2 244 8449
+612e 26 245 8449
+FUNC 6154 96 0 _crtLCMapStringA
+6154 12 258 8449
+6166 13 259 8449
+6179 5f 271 8449
+61d8 12 272 8449
+FUNC 61ec 176 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int)
+61ec 2d 60 8545
+6219 14 80 8545
+622d 7 81 8545
+6234 23 92 8545
+6257 7 93 8545
+625e 7c 96 8545
+62da 9 97 8545
+62e3 10 100 8545
+62f3 21 108 8545
+6314 15 113 8545
+6329 11 115 8545
+633a 2 117 8545
+633c 26 118 8545
+FUNC 6364 7c 0 _crtGetStringTypeA
+6364 11 129 8545
+6375 13 130 8545
+6388 48 140 8545
+63d0 10 141 8545
+FUNC 63e0 39 0 msize
+63e0 4 39 1027
+63e4 19 43 1027
+63fd 5 50 1027
+6402 c 46 1027
+640e 4 50 1027
+6412 7 46 1027
+FUNC 641c a 0 fptrap
+641c 0 46 9698
+641c a 47 9698
+FUNC 6428 8a 0 GetTableIndexFromLocaleName
+6428 1c 52 4248
+6444 2 54 4248
+6446 c 55 4248
+6452 3 59 4248
+6455 20 60 4248
+6475 4 62 4248
+6479 2 65 4248
+647b 3 66 4248
+647e 2 67 4248
+6480 3 68 4248
+6483 4 57 4248
+6487 5 71 4248
+648c b 63 4248
+6497 1b 72 4248
+FUNC 64b4 32 0 _crtDownlevelLocaleNameToLCID
+64b4 4 107 4248
+64b8 5 110 4248
+64bd 5 113 4248
+64c2 e 115 4248
+64d0 f 118 4248
+64df 2 116 4248
+64e1 5 119 4248
+FUNC 64e8 8f 0 _crtLCMapStringEx
+64e8 10 325 4248
+64f8 18 327 4248
+6510 2a 329 4248
+653a 2d 333 4248
+6567 10 334 4248
+FUNC 6578 55 0 _wcsnicmp_ascii
+6578 0 28 4248
+6578 9 30 4248
+6581 5 32 4248
+6586 3 40 4248
+6589 12 36 4248
+659b 11 37 4248
+65ac 4 39 4248
+65b0 f 40 4248
+65bf a 42 4248
+65c9 3 45 4248
+65cc 1 46 4248
+FUNC 65e0 565 0 memcpy
+65e0 0 101 6808
+65e0 3 107 6808
+65e3 3 108 6808
+65e6 4 109 6808
+65ea 6 110 6808
+65f0 3 111 6808
+65f3 2 112 6808
+65f5 3 113 6808
+65f8 3 114 6808
+65fb 3 115 6808
+65fe 6 116 6808
+6604 8 119 6808
+660c 2 120 6808
+660e 1 123 6808
+660f 1 124 6808
+6610 3 125 6808
+6613 3 126 6808
+6616 3 127 6808
+6619 2 128 6808
+661b 1 129 6808
+661c 1 130 6808
+661d 3 131 6808
+6620 1 132 6808
+6621 8 135 6808
+6629 6 136 6808
+662f 3 142 6808
+6632 2 143 6808
+6634 3 144 6808
+6637 2 145 6808
+6639 3 146 6808
+663c 3 147 6808
+663f 2 148 6808
+6641 3 149 6808
+6644 3 150 6808
+6647 2 151 6808
+6649 4 152 6808
+664d 4 153 6808
+6651 3 154 6808
+6654 4 155 6808
+6658 3 156 6808
+665b 2 157 6808
+665d 3 158 6808
+6660 4 159 6808
+6664 2 160 6808
+6666 4 161 6808
+666a 3 167 6808
+666d 4 168 6808
+6671 6 169 6808
+6677 3 175 6808
+667a 4 176 6808
+667e 2 177 6808
+6680 4 178 6808
+6684 3 179 6808
+6687 4 180 6808
+668b 3 181 6808
+668e 2 182 6808
+6690 4 183 6808
+6694 3 189 6808
+6697 2 190 6808
+6699 3 191 6808
+669c 4 192 6808
+66a0 4 200 6808
+66a4 3 201 6808
+66a7 2 202 6808
+66a9 3 205 6808
+66ac 7 207 6808
+66b3 8 208 6808
+66bb 3 209 6808
+66be 46 210 6808
+6704 3 232 6808
+6707 1 233 6808
+6708 4 236 6808
+670c 3 237 6808
+670f 3 238 6808
+6712 1 239 6808
+6713 4 241 6808
+6717 4 242 6808
+671b 3 243 6808
+671e 1 244 6808
+671f 4 246 6808
+6723 5 247 6808
+6728 3 248 6808
+672b 5 249 6808
+6730 3 250 6808
+6733 1 251 6808
+6734 2 253 6808
+6736 3 254 6808
+6739 3 255 6808
+673c 1 256 6808
+673d 4 258 6808
+6741 3 259 6808
+6744 3 260 6808
+6747 4 261 6808
+674b 3 262 6808
+674e 1 263 6808
+674f 4 265 6808
+6753 3 266 6808
+6756 4 267 6808
+675a 4 268 6808
+675e 3 269 6808
+6761 1 270 6808
+6762 4 272 6808
+6766 5 273 6808
+676b 3 274 6808
+676e 3 275 6808
+6771 5 276 6808
+6776 4 277 6808
+677a 3 278 6808
+677d 1 279 6808
+677e 3 281 6808
+6781 3 282 6808
+6784 3 283 6808
+6787 1 284 6808
+6788 4 286 6808
+678c 4 287 6808
+6790 3 288 6808
+6793 4 289 6808
+6797 3 290 6808
+679a 1 291 6808
+679b 4 293 6808
+679f 4 294 6808
+67a3 4 295 6808
+67a7 4 296 6808
+67ab 3 297 6808
+67ae 1 298 6808
+67af 4 300 6808
+67b3 5 301 6808
+67b8 4 302 6808
+67bc 3 303 6808
+67bf 5 304 6808
+67c4 4 305 6808
+67c8 3 306 6808
+67cb 1 307 6808
+67cc 2 309 6808
+67ce 4 310 6808
+67d2 3 311 6808
+67d5 4 312 6808
+67d9 3 313 6808
+67dc 1 314 6808
+67dd 4 316 6808
+67e1 3 317 6808
+67e4 4 318 6808
+67e8 3 319 6808
+67eb 4 320 6808
+67ef 4 321 6808
+67f3 3 322 6808
+67f6 1 323 6808
+67f7 4 325 6808
+67fb 3 326 6808
+67fe 4 327 6808
+6802 4 328 6808
+6806 4 329 6808
+680a 4 330 6808
+680e 3 331 6808
+6811 1 332 6808
+6812 4 334 6808
+6816 5 335 6808
+681b 3 336 6808
+681e 4 337 6808
+6822 3 338 6808
+6825 5 339 6808
+682a 4 340 6808
+682e 4 341 6808
+6832 3 342 6808
+6835 1 343 6808
+6836 4 345 6808
+683a 5 346 6808
+683f 3 347 6808
+6842 e 348 6808
+6850 4 356 6808
+6854 5 357 6808
+6859 4 358 6808
+685d 4 359 6808
+6861 4 360 6808
+6865 5 361 6808
+686a 5 362 6808
+686f 3 363 6808
+6872 4 364 6808
+6876 4 365 6808
+687a 2 366 6808
+687c 4 367 6808
+6880 5 368 6808
+6885 4 381 6808
+6889 6 382 6808
+688f 3 406 6808
+6892 2 407 6808
+6894 4 411 6808
+6898 4 412 6808
+689c 4 413 6808
+68a0 2 414 6808
+68a2 4 419 6808
+68a6 4 420 6808
+68aa 3 421 6808
+68ad 5 422 6808
+68b2 4 423 6808
+68b6 3 424 6808
+68b9 3 425 6808
+68bc 3 426 6808
+68bf 3 431 6808
+68c2 4 432 6808
+68c6 2 433 6808
+68c8 4 434 6808
+68cc 4 435 6808
+68d0 4 452 6808
+68d4 4 453 6808
+68d8 4 455 6808
+68dc 5 456 6808
+68e1 7 457 6808
+68e8 4 458 6808
+68ec 4 459 6808
+68f0 5 460 6808
+68f5 5 461 6808
+68fa 3 462 6808
+68fd 4 463 6808
+6901 4 464 6808
+6905 5 465 6808
+690a 5 466 6808
+690f 4 467 6808
+6913 4 468 6808
+6917 5 469 6808
+691c 5 470 6808
+6921 2 471 6808
+6923 4 473 6808
+6927 4 474 6808
+692b 3 475 6808
+692e 3 480 6808
+6931 4 481 6808
+6935 b 482 6808
+6940 4 487 6808
+6944 4 489 6808
+6948 4 490 6808
+694c 3 491 6808
+694f 2 492 6808
+6951 4 495 6808
+6955 2 496 6808
+6957 4 505 6808
+695b 5 506 6808
+6960 4 507 6808
+6964 4 511 6808
+6968 3 512 6808
+696b 5 513 6808
+6970 4 538 6808
+6974 5 539 6808
+6979 4 540 6808
+697d 4 541 6808
+6981 3 542 6808
+6984 3 543 6808
+6987 13 544 6808
+699a 8 557 6808
+69a2 6 558 6808
+69a8 3 559 6808
+69ab 3 565 6808
+69ae 2 566 6808
+69b0 3 567 6808
+69b3 2 568 6808
+69b5 3 569 6808
+69b8 3 570 6808
+69bb 3 571 6808
+69be 2 572 6808
+69c0 3 573 6808
+69c3 2 574 6808
+69c5 4 575 6808
+69c9 4 576 6808
+69cd 4 577 6808
+69d1 3 578 6808
+69d4 3 579 6808
+69d7 2 580 6808
+69d9 4 581 6808
+69dd 3 582 6808
+69e0 4 583 6808
+69e4 2 584 6808
+69e6 3 590 6808
+69e9 4 591 6808
+69ed 2 592 6808
+69ef 3 598 6808
+69f2 4 599 6808
+69f6 2 600 6808
+69f8 4 601 6808
+69fc 4 602 6808
+6a00 3 603 6808
+6a03 3 604 6808
+6a06 2 605 6808
+6a08 4 606 6808
+6a0c 3 612 6808
+6a0f 2 613 6808
+6a11 3 614 6808
+6a14 c 615 6808
+6a20 3 623 6808
+6a23 3 624 6808
+6a26 4 625 6808
+6a2a 6 626 6808
+6a30 5 634 6808
+6a35 5 635 6808
+6a3a 4 636 6808
+6a3e 4 637 6808
+6a42 4 638 6808
+6a46 5 639 6808
+6a4b 4 640 6808
+6a4f 3 641 6808
+6a52 4 642 6808
+6a56 3 643 6808
+6a59 2 644 6808
+6a5b 4 645 6808
+6a5f 2 646 6808
+6a61 4 661 6808
+6a65 6 662 6808
+6a6b 3 663 6808
+6a6e 3 684 6808
+6a71 2 685 6808
+6a73 4 689 6808
+6a77 4 690 6808
+6a7b 4 691 6808
+6a7f 2 692 6808
+6a81 4 697 6808
+6a85 4 698 6808
+6a89 3 699 6808
+6a8c 3 700 6808
+6a8f 4 701 6808
+6a93 3 702 6808
+6a96 3 703 6808
+6a99 3 704 6808
+6a9c 3 710 6808
+6a9f 4 711 6808
+6aa3 2 712 6808
+6aa5 3 713 6808
+6aa8 8 714 6808
+6ab0 4 721 6808
+6ab4 3 722 6808
+6ab7 5 724 6808
+6abc 5 725 6808
+6ac1 7 726 6808
+6ac8 4 727 6808
+6acc 4 728 6808
+6ad0 5 729 6808
+6ad5 5 730 6808
+6ada 3 731 6808
+6add 4 732 6808
+6ae1 4 733 6808
+6ae5 5 734 6808
+6aea 5 735 6808
+6aef 4 736 6808
+6af3 4 737 6808
+6af7 5 738 6808
+6afc 4 739 6808
+6b00 2 740 6808
+6b02 4 742 6808
+6b06 4 743 6808
+6b0a 3 744 6808
+6b0d 3 749 6808
+6b10 4 750 6808
+6b14 c 751 6808
+6b20 3 756 6808
+6b23 4 758 6808
+6b27 4 759 6808
+6b2b 3 760 6808
+6b2e 2 761 6808
+6b30 4 764 6808
+6b34 2 765 6808
+6b36 4 775 6808
+6b3a 4 776 6808
+6b3e 3 779 6808
+6b41 3 780 6808
+6b44 1 781 6808
+FUNC 6b48 26 0 fileno
+6b48 4 40 5093
+6b4c 1a 41 5093
+6b66 3 42 5093
+6b69 5 43 5093
+FUNC 6b70 5f 0 isatty
+6b70 4 37 1677
+6b74 12 39 1677
+6b86 c 40 1677
+6b92 26 43 1677
+6bb8 12 40 1677
+6bca 5 44 1677
+FUNC 6bd0 4c 0 fflush_nolock
+6bd0 9 97 5660
+6bd9 5 101 5660
+6bde 5 116 5660
+6be3 5 102 5660
+6be8 9 104 5660
+6bf1 5 106 5660
+6bf6 9 111 5660
+6bff 15 112 5660
+6c14 2 115 5660
+6c16 6 116 5660
+FUNC 6c1c 79 0 flush
+6c1c f 142 5660
+6c2b 20 152 5660
+6c4b 17 154 5660
+6c62 7 158 5660
+6c69 6 159 5660
+6c6f 2 161 5660
+6c71 4 162 5660
+6c75 3 163 5660
+6c78 4 167 5660
+6c7c 4 168 5660
+6c80 2 170 5660
+6c82 13 171 5660
+FUNC 6c98 a 0 flushall
+6c98 0 193 5660
+6c98 a 194 5660
+FUNC 6ca4 e6 0 static int flsall(int)
+6ca4 1c 228 5660
+6cc0 2 230 5660
+6cc2 2 231 5660
+6cc4 9 233 5660
+6ccd 12 235 5660
+6cdf 19 236 5660
+6cf8 8 243 5660
+6d00 11 251 5660
+6d11 6 252 5660
+6d17 a 258 5660
+6d21 6 262 5660
+6d27 2 264 5660
+6d29 b 265 5660
+6d34 10 271 5660
+6d44 12 277 5660
+6d56 7 235 5660
+6d5d a 283 5660
+6d67 9 286 5660
+6d70 1a 290 5660
+FUNC 6d8c a8 0 fcloseall
+6d8c f 43 5472
+6d9b 2 44 5472
+6d9d 9 47 5472
+6da6 f 49 5472
+6db5 13 50 5472
+6dc8 10 55 5472
+6dd8 6 56 5472
+6dde 5 61 5472
+6de3 15 62 5472
+6df8 10 63 5472
+6e08 c 64 5472
+6e14 4 49 5472
+6e18 a 70 5472
+6e22 2 73 5472
+6e24 10 74 5472
+FUNC 6e34 49 0 _raise_securityfailure
+6e34 9 64 2878
+6e3d 6 66 2878
+6e43 10 67 2878
+6e53 8 70 2878
+6e5b 9 79 2878
+6e64 a 81 2878
+6e6e 5 85 2878
+6e73 5 86 2878
+6e78 5 85 2878
+FUNC 6e80 d1 0 _report_gsfailure
+6e80 9 129 2878
+6e89 e 149 2878
+6e97 7 151 2878
+6e9e c 210 2878
+6eaa c 212 2878
+6eb6 10 213 2878
+6ec6 e 214 2878
+6ed4 c 215 2878
+6ee0 a 218 2878
+6eea a 219 2878
+6ef4 a 220 2878
+6efe 18 221 2878
+6f16 15 228 2878
+6f2b 15 229 2878
+6f40 c 236 2878
+6f4c 5 241 2878
+FUNC 6f54 1a4 0 _isa_available_init
+6f54 14 63 5837
+6f68 1f 75 5837
+6f87 23 81 5837
+6faa 3a 88 5837
+6fe4 40 100 5837
+7024 1b 102 5837
+703f 15 106 5837
+7054 b 109 5837
+705f 9 113 5837
+7068 11 114 5837
+7079 6 118 5837
+707f b 120 5837
+708a 7 127 5837
+7091 a 129 5837
+709b a 130 5837
+70a5 e 134 5837
+70b3 a 135 5837
+70bd a 136 5837
+70c7 6 139 5837
+70cd a 140 5837
+70d7 a 141 5837
+70e1 17 147 5837
+FUNC 70f8 47 0 locterm
+70f8 6 186 4530
+70fe 10 187 4530
+710e b 188 4530
+7119 16 191 4530
+712f a 195 4530
+7139 6 198 4530
+FUNC 7150 4e 0 _chkstk
+7150 0 67 9872
+7150 4 71 9872
+7154 4 83 9872
+7158 5 84 9872
+715d 3 86 9872
+7160 5 87 9872
+7165 3 88 9872
+7168 4 89 9872
+716c 9 97 9872
+7175 3 98 9872
+7178 2 99 9872
+717a 6 107 9872
+7180 7 108 9872
+7187 4 109 9872
+718b 3 110 9872
+718e 2 111 9872
+7190 4 112 9872
+7194 5 113 9872
+7199 4 114 9872
+719d 1 115 9872
+FUNC 71a0 d7 0 commit
+71a0 14 39 1490
+71b4 15 43 1490
+71c9 10 44 1490
+71d9 26 45 1490
+71ff 8 47 1490
+7207 b 49 1490
+7212 14 51 1490
+7226 8 52 1490
+722e 2 54 1490
+7230 2 55 1490
+7232 4 59 1490
+7236 7 62 1490
+723d b 66 1490
+7248 3 67 1490
+724b 7 73 1490
+7252 4 75 1490
+7256 13 44 1490
+7269 e 76 1490
+FUNC 7278 e1 0 write
+7278 1e 61 1964
+7296 1d 65 1964
+72b3 c 66 1964
+72bf 27 67 1964
+72e6 8 69 1964
+72ee c 72 1964
+72fa f 73 1964
+7309 2 74 1964
+730b b 75 1964
+7316 8 76 1964
+731e 3 77 1964
+7321 7 82 1964
+7328 4 85 1964
+732c 1b 66 1964
+7347 12 86 1964
+FUNC 735c 7f1 0 write_nolock
+735c 36 94 1964
+7392 11 95 1964
+73a3 3 96 1964
+73a6 3 98 1964
+73a9 5 105 1964
+73ae 7 106 1964
+73b5 25 108 1964
+73da 3a 110 1964
+7414 14 116 1964
+7428 8 119 1964
+7430 d 122 1964
+743d 2b 137 1964
+7468 5 140 1964
+746d 36 142 1964
+74a3 19 146 1964
+74bc 6 147 1964
+74c2 1e 154 1964
+74e0 3 155 1964
+74e3 9 157 1964
+74ec 2 158 1964
+74ee 29 170 1964
+7517 5 176 1964
+751c 8 177 1964
+7524 5 179 1964
+7529 b 181 1964
+7534 2 184 1964
+7536 c 185 1964
+7542 13 186 1964
+7555 1c 188 1964
+7571 3 194 1964
+7574 2 206 1964
+7576 1c 208 1964
+7592 43 233 1964
+75d5 3b 240 1964
+7610 b 248 1964
+761b b 249 1964
+7626 a 257 1964
+7630 40 264 1964
+7670 b 265 1964
+767b 4 267 1964
+767f 9 273 1964
+7688 10 293 1964
+7698 3 219 1964
+769b 12 220 1964
+76ad d 221 1964
+76ba f 277 1964
+76c9 3 279 1964
+76cc 5 286 1964
+76d1 5 289 1964
+76d6 16 290 1964
+76ec 2 292 1964
+76ee 9 293 1964
+76f7 11 154 1964
+7708 12 197 1964
+771a 2 203 1964
+771c 17 204 1964
+7733 8 270 1964
+773b 2 271 1964
+773d 16 252 1964
+7753 8 480 1964
+775b a 484 1964
+7765 9 486 1964
+776e b 489 1964
+7779 7 490 1964
+7780 13 492 1964
+7793 17 305 1964
+77aa 2 308 1964
+77ac 9 310 1964
+77b5 3 314 1964
+77b8 17 315 1964
+77cf a 316 1964
+77d9 b 320 1964
+77e4 7 321 1964
+77eb 4 322 1964
+77ef b 324 1964
+77fa 11 326 1964
+780b 46 334 1964
+7851 4 336 1964
+7855 18 337 1964
+786d 1b 315 1964
+7888 5 456 1964
+788d 4 345 1964
+7891 9 348 1964
+789a 17 351 1964
+78b1 a 352 1964
+78bb b 356 1964
+78c6 9 357 1964
+78cf 6 358 1964
+78d5 f 360 1964
+78e4 14 362 1964
+78f8 46 370 1964
+793e 4 372 1964
+7942 18 373 1964
+795a 1b 351 1964
+7975 5 456 1964
+797a 13 396 1964
+798d 7 398 1964
+7994 b 402 1964
+799f 9 403 1964
+79a8 6 404 1964
+79ae c 406 1964
+79ba 14 408 1964
+79ce 44 419 1964
+7a12 8 421 1964
+7a1a 42 443 1964
+7a5c 4 444 1964
+7a60 7 449 1964
+7a67 8 446 1964
+7a6f 9 456 1964
+7a78 15 460 1964
+7a8d 5 456 1964
+7a92 1f 471 1964
+7ab1 4 474 1964
+7ab5 7 476 1964
+7abc 1e 477 1964
+7ada 7 493 1964
+7ae1 a 494 1964
+7aeb 1d 496 1964
+7b08 b 499 1964
+7b13 7 500 1964
+7b1a 5 501 1964
+7b1f 4 506 1964
+7b23 2a 507 1964
+FUNC 7b50 7a 0 fclose_nolock
+7b50 a 85 5556
+7b5a 6 87 5556
+7b60 19 89 5556
+7b79 6 94 5556
+7b7f 5 103 5556
+7b84 a 104 5556
+7b8e 13 106 5556
+7ba1 5 107 5556
+7ba6 9 109 5556
+7baf 5 118 5556
+7bb4 5 119 5556
+7bb9 4 124 5556
+7bbd 2 125 5556
+7bbf b 126 5556
+FUNC 7bcc 66 0 fclose
+7bcc 12 43 5556
+7bde 3 44 5556
+7be1 20 46 5556
+7c01 6 49 5556
+7c07 4 50 5556
+7c0b 2 53 5556
+7c0d 6 54 5556
+7c13 a 56 5556
+7c1d 8 59 5556
+7c25 2 63 5556
+7c27 b 64 5556
+FUNC 7c34 db 0 isctype_l
+7c34 16 114 7216
+7c4a c 118 7216
+7c56 a 121 7216
+7c60 11 122 7216
+7c71 1b 124 7216
+7c8c 4 126 7216
+7c90 4 127 7216
+7c94 4 128 7216
+7c98 4 129 7216
+7c9c 2 130 7216
+7c9e 4 131 7216
+7ca2 4 132 7216
+7ca6 3 133 7216
+7ca9 29 143 7216
+7cd2 14 145 7216
+7ce6 18 148 7216
+7cfe 11 149 7216
+FUNC 7d10 cf 0 _crt_atoflt_l
+7d10 20 125 7081
+7d30 10 132 7081
+7d40 30 139 7081
+7d70 5 140 7081
+7d75 8 141 7081
+7d7d f 143 7081
+7d8c 9 144 7081
+7d95 5 145 7081
+7d9a 7 147 7081
+7da1 5 150 7081
+7da6 7 151 7081
+7dad 5 152 7081
+7db2 15 155 7081
+7dc7 18 156 7081
+FUNC 7de0 c7 0 atodbl_l
+7de0 22 40 7081
+7e02 d 47 7081
+7e0f 2e 55 7081
+7e3d 11 56 7081
+7e4e 9 57 7081
+7e57 5 58 7081
+7e5c 7 60 7081
+7e63 5 63 7081
+7e68 7 64 7081
+7e6f 5 65 7081
+7e74 15 68 7081
+7e89 1e 69 7081
+FUNC 7ea8 8 0 atoflt_l
+7ea8 0 163 7081
+7ea8 8 167 7081
+FUNC 7eb0 5 0 fpmath
+7eb0 0 56 10323
+7eb0 5 64 10323
+FUNC 7eb8 86 0 cfltcvt_init
+7eb8 0 82 10323
+7eb8 15 84 10323
+7ecd 15 85 10323
+7ee2 7 86 10323
+7ee9 1c 89 10323
+7f05 e 91 10323
+7f13 e 92 10323
+7f21 e 93 10323
+7f2f e 94 10323
+7f3d 1 95 10323
+FUNC 7f50 c7 0 memcmp
+7f50 0 56 6804
+7f50 3 60 6804
+7f53 4 61 6804
+7f57 2 62 6804
+7f59 3 63 6804
+7f5c 4 64 6804
+7f60 2 72 6804
+7f62 3 73 6804
+7f65 2 74 6804
+7f67 3 75 6804
+7f6a 3 76 6804
+7f6d 3 77 6804
+7f70 2 78 6804
+7f72 3 84 6804
+7f75 4 85 6804
+7f79 2 86 6804
+7f7b 3 92 6804
+7f7e 2 93 6804
+7f80 2 94 6804
+7f82 3 95 6804
+7f85 2 96 6804
+7f87 3 97 6804
+7f8a 3 98 6804
+7f8d 2 99 6804
+7f8f 3 106 6804
+7f92 1 107 6804
+7f93 2 114 6804
+7f95 3 115 6804
+7f98 2 116 6804
+7f9a 4 124 6804
+7f9e 2 125 6804
+7fa0 3 126 6804
+7fa3 4 127 6804
+7fa7 2 128 6804
+7fa9 4 129 6804
+7fad 5 130 6804
+7fb2 2 131 6804
+7fb4 4 132 6804
+7fb8 5 133 6804
+7fbd 2 134 6804
+7fbf 4 135 6804
+7fc3 5 136 6804
+7fc8 2 137 6804
+7fca 4 138 6804
+7fce 3 139 6804
+7fd1 2 140 6804
+7fd3 4 141 6804
+7fd7 3 147 6804
+7fda 4 148 6804
+7fde 2 149 6804
+7fe0 3 150 6804
+7fe3 4 151 6804
+7fe7 2 152 6804
+7fe9 4 153 6804
+7fed 3 154 6804
+7ff0 2 155 6804
+7ff2 4 156 6804
+7ff6 2 157 6804
+7ff8 4 164 6804
+7ffc 4 167 6804
+8000 4 170 6804
+8004 4 173 6804
+8008 3 174 6804
+800b 3 175 6804
+800e 3 176 6804
+8011 2 177 6804
+8013 3 178 6804
+8016 1 179 6804
+FUNC 8018 98 0 _lock_fhandle
+8018 15 436 1865
+802d 1c 437 1865
+8049 7 443 1865
+8050 b 445 1865
+805b 7 447 1865
+8062 14 448 1865
+8076 4 449 1865
+807a a 452 1865
+8084 11 458 1865
+8095 5 461 1865
+809a 16 462 1865
+FUNC 80b0 aa 0 free_osfhnd
+80b0 10 257 1865
+80c0 36 260 1865
+80f6 9 263 1865
+80ff c 264 1865
+810b 5 272 1865
+8110 2 273 1865
+8112 5 269 1865
+8117 2 270 1865
+8119 d 266 1865
+8126 9 277 1865
+812f 4 278 1865
+8133 b 280 1865
+813e 8 281 1865
+8146 3 282 1865
+8149 11 284 1865
+FUNC 815c 74 0 get_osfhandle
+815c 4 307 1865
+8160 1a 308 1865
+817a c 309 1865
+8186 23 310 1865
+81a9 6 312 1865
+81af 1c 309 1865
+81cb 5 313 1865
+FUNC 81d0 2a 0 unlock_fhandle
+81d0 0 483 1865
+81d0 2a 484 1865
+FUNC 81fc 43 0 isleadbyte_l
+81fc 8 55 6940
+8204 a 56 6940
+820e 2b 57 6940
+8239 6 58 6940
+FUNC 8240 45 0 isleadbyte
+8240 8 63 6940
+8248 37 64 6940
+827f 6 65 6940
+FUNC 8288 93 0 lseeki64_nolock
+8288 18 106 1769
+82a0 d 116 1769
+82ad b 118 1769
+82b8 6 120 1769
+82be 18 126 1769
+82d6 d 128 1769
+82e3 2 129 1769
+82e5 21 132 1769
+8306 5 133 1769
+830b 10 134 1769
+FUNC 831c 151 0 mbtowc_l
+831c 19 55 7310
+8335 16 56 7310
+834b 5 61 7310
+8350 5 64 7310
+8355 4 65 7310
+8359 2 59 7310
+835b 1b 116 7310
+8376 d 70 7310
+8383 e 73 7310
+8391 5 75 7310
+8396 10 76 7310
+83a6 d 80 7310
+83b3 49 90 7310
+83fc 12 93 7310
+840e 8 99 7310
+8416 2f 108 7310
+8445 5 110 7310
+844a 9 111 7310
+8453 1a 113 7310
+FUNC 8470 8 0 mbtowc
+8470 0 123 7310
+8470 8 124 7310
+FUNC 8478 59 0 putwch_nolock
+8478 9 84 2149
+8481 d 87 2149
+848e c 88 2149
+849a 6 90 2149
+84a0 7 91 2149
+84a7 20 99 2149
+84c7 5 104 2149
+84cc 5 105 2149
+FUNC 84d4 c3 0 close
+84d4 14 41 1396
+84e8 1d 45 1396
+8505 c 46 1396
+8511 26 47 1396
+8537 8 49 1396
+853f b 52 1396
+854a 9 53 1396
+8553 2 54 1396
+8555 b 55 1396
+8560 3 56 1396
+8563 7 61 1396
+856a 4 64 1396
+856e 1b 46 1396
+8589 e 65 1396
+FUNC 8598 ba 0 close_nolock
+8598 d 71 1396
+85a5 5c 92 1396
+8601 a 98 1396
+860b 2 95 1396
+860d 7 100 1396
+8614 21 102 1396
+8635 4 104 1396
+8639 7 106 1396
+8640 5 107 1396
+8645 2 110 1396
+8647 b 111 1396
+FUNC 8654 37 0 freebuf
+8654 6 45 5276
+865a f 48 5276
+8669 9 50 5276
+8672 7 52 5276
+8679 9 53 5276
+8682 3 54 5276
+8685 6 56 5276
+FUNC 8690 5b6 0 ld12tod
+8690 2d 598 10306
+86bd 33 599 10306
+86f0 4 598 10306
+86f4 528 599 10306
+8c1c 2a 600 10306
+FUNC 8c48 5b6 0 ld12tof
+8c48 2d 618 10306
+8c75 33 619 10306
+8ca8 4 618 10306
+8cac 528 619 10306
+91d4 2a 620 10306
+FUNC 9200 861 0 _strgtold12_l
+9200 2a 80 10127
+922a 51 126 10127
+927b 22 129 10127
+929d 6 132 10127
+92a3 3e 133 10127
+92e1 6 238 10127
+92e7 e 241 10127
+92f5 2 240 10127
+92f7 3 241 10127
+92fa 6 242 10127
+9300 6 241 10127
+9306 5 244 10127
+930b 6 245 10127
+9311 b 247 10127
+931c 3 248 10127
+931f 11 244 10127
+9330 1a 251 10127
+934a 5 256 10127
+934f 5 257 10127
+9354 3 260 10127
+9357 5 261 10127
+935c 5 267 10127
+9361 6 207 10127
+9367 c 208 10127
+9373 6 209 10127
+9379 b 211 10127
+9384 2 212 10127
+9386 3 213 10127
+9389 a 208 10127
+9393 11 216 10127
+93a4 5 217 10127
+93a9 5 218 10127
+93ae 7 190 10127
+93b5 5 191 10127
+93ba e 192 10127
+93c8 11 193 10127
+93d9 5 194 10127
+93de b 195 10127
+93e9 9 196 10127
+93f2 9 198 10127
+93fb 5 205 10127
+9400 10 162 10127
+9410 4 163 10127
+9414 2 164 10127
+9416 20 165 10127
+9436 5 168 10127
+943b 5 177 10127
+9440 b 135 10127
+944b 15 138 10127
+9460 f 141 10127
+946f 6 155 10127
+9475 8 265 10127
+947d 5 150 10127
+9482 7 151 10127
+9489 5 152 10127
+948e 5 146 10127
+9493 4 147 10127
+9497 5 159 10127
+949c 10 270 10127
+94ac 5 271 10127
+94b1 5 273 10127
+94b6 2a 133 10127
+94e0 5 345 10127
+94e5 4 346 10127
+94e9 e 347 10127
+94f7 9 350 10127
+9500 5 351 10127
+9505 5 353 10127
+950a 5 359 10127
+950f b 302 10127
+951a b 303 10127
+9525 c 304 10127
+9531 5 305 10127
+9536 5 307 10127
+953b 7 313 10127
+9542 5 314 10127
+9547 5 316 10127
+954c 9 317 10127
+9555 5 319 10127
+955a 5 326 10127
+955f b 280 10127
+956a a 284 10127
+9574 2 287 10127
+9576 5 293 10127
+957b a 131 10127
+9585 3 275 10127
+9588 2 277 10127
+958a 6 328 10127
+9590 d 331 10127
+959d 10 332 10127
+95ad 9 333 10127
+95b6 b 331 10127
+95c1 2 333 10127
+95c3 8 334 10127
+95cb 14 340 10127
+95df 5 343 10127
+95e4 9 297 10127
+95ed 7 367 10127
+95f4 9 373 10127
+95fd 6 374 10127
+9603 7 375 10127
+960a 6 380 10127
+9610 9 383 10127
+9619 3 384 10127
+961c 5 386 10127
+9621 3 424 10127
+9624 7 425 10127
+962b 5 429 10127
+9630 3 392 10127
+9633 3 393 10127
+9636 8 390 10127
+963e 10 395 10127
+964e 5 397 10127
+9653 3 398 10127
+9656 3 399 10127
+9659 5 402 10127
+965e 4 403 10127
+9662 5 405 10127
+9667 4 406 10127
+966b d 410 10127
+9678 d 412 10127
+9685 353 415 10127
+99d8 10 420 10127
+99e8 2 422 10127
+99ea 2 443 10127
+99ec 7 444 10127
+99f3 7 445 10127
+99fa 2 438 10127
+99fc 8 439 10127
+9a04 c 440 10127
+9a10 3 431 10127
+9a13 7 432 10127
+9a1a 5 433 10127
+9a1f 4 452 10127
+9a23 9 455 10127
+9a2c e 457 10127
+9a3a 27 458 10127
+FUNC 9a64 24 0 cfltcvt
+9a64 4 913 9904
+9a68 1b 914 9904
+9a83 5 915 9904
+FUNC 9a88 7e 0 cfltcvt_l
+9a88 13 897 9904
+9a9b 6 902 9904
+9aa1 1a 903 9904
+9abb 23 907 9904
+9ade 5 905 9904
+9ae3 2 906 9904
+9ae5 1c 901 9904
+9b01 5 910 9904
+FUNC 9b08 3b0 0 cftoa_l
+9b08 1f 415 9904
+9b27 2a 426 9904
+9b51 9 428 9904
+9b5a 11 432 9904
+9b6b 5 433 9904
+9b70 27 441 9904
+9b97 18 444 9904
+9baf 25 447 9904
+9bd4 3 448 9904
+9bd7 2 447 9904
+9bd9 4 448 9904
+9bdd 8 451 9904
+9be5 b 456 9904
+9bf0 6 458 9904
+9bf6 a 461 9904
+9c00 5 463 9904
+9c05 16 461 9904
+9c1b 5 463 9904
+9c20 c 464 9904
+9c2c c 466 9904
+9c38 9 472 9904
+9c41 14 478 9904
+9c55 6 480 9904
+9c5b b 485 9904
+9c66 3e 489 9904
+9ca4 3 491 9904
+9ca7 16 492 9904
+9cbd 2 503 9904
+9cbf 6 505 9904
+9cc5 6 509 9904
+9ccb 4 510 9904
+9ccf 3 515 9904
+9cd2 2 517 9904
+9cd4 14 519 9904
+9ce8 9 523 9904
+9cf1 a 528 9904
+9cfb 4 530 9904
+9cff f 532 9904
+9d0e 4 533 9904
+9d12 6 534 9904
+9d18 3 536 9904
+9d1b 2 538 9904
+9d1d 4 539 9904
+9d21 b 541 9904
+9d2c 5 545 9904
+9d31 f 547 9904
+9d40 6 548 9904
+9d46 c 551 9904
+9d52 6 557 9904
+9d58 2 558 9904
+9d5a 5 562 9904
+9d5f 6 564 9904
+9d65 5 566 9904
+9d6a 2 568 9904
+9d6c 5 570 9904
+9d71 2 573 9904
+9d73 3 576 9904
+9d76 3 578 9904
+9d79 1c 585 9904
+9d95 7 591 9904
+9d9c b 597 9904
+9da7 13 598 9904
+9dba 2 599 9904
+9dbc 6 601 9904
+9dc2 2 603 9904
+9dc4 6 605 9904
+9dca 3 606 9904
+9dcd 3 609 9904
+9dd0 3 610 9904
+9dd3 9 611 9904
+9ddc 24 612 9904
+9e00 a 613 9904
+9e0a b 615 9904
+9e15 27 616 9904
+9e3c 7 617 9904
+9e43 b 619 9904
+9e4e 24 620 9904
+9e72 7 621 9904
+9e79 5 623 9904
+9e7e 4 626 9904
+9e82 16 628 9904
+9e98 20 629 9904
+FUNC 9eb8 1f9 0 static int _cftoe2_l(char *, unsigned __int64, int, int, struct _strflt *, char, struct localeinfo_struct *)
+9eb8 20 242 9904
+9ed8 1a 246 9904
+9ef2 5 249 9904
+9ef7 11 250 9904
+9f08 27 258 9904
+9f2f 12 266 9904
+9f41 9 268 9904
+9f4a 2b 269 9904
+9f75 9 278 9904
+9f7e 7 279 9904
+9f85 4 285 9904
+9f89 5 286 9904
+9f8e 16 287 9904
+9fa4 6 292 9904
+9faa 33 293 9904
+9fdd 9 300 9904
+9fe6 3 301 9904
+9fe9 9 309 9904
+9ff2 9 315 9904
+9ffb 3 316 9904
+9ffe 4 317 9904
+a002 6 321 9904
+a008 15 322 9904
+a01d 6 323 9904
+a023 6 327 9904
+a029 15 328 9904
+a03e 6 329 9904
+a044 4 332 9904
+a048 9 335 9904
+a051 5 338 9904
+a056 f 340 9904
+a065 15 344 9904
+a07a 21 345 9904
+a09b 16 293 9904
+FUNC a0b4 f7 0 cftoe_l
+a0b4 1b 354 9904
+a0cf 23 362 9904
+a0f2 18 366 9904
+a10a 5 367 9904
+a10f 48 373 9904
+a157 4 374 9904
+a15b 3 376 9904
+a15e 2 377 9904
+a160 32 380 9904
+a192 19 383 9904
+FUNC a1ac 161 0 static int _cftof2_l(char *, unsigned __int64, int, struct _strflt *, char, struct localeinfo_struct *)
+a1ac 19 638 9904
+a1c5 7 640 9904
+a1cc 19 641 9904
+a1e5 5 644 9904
+a1ea 1b 645 9904
+a205 7 654 9904
+a20c 5 656 9904
+a211 6 655 9904
+a217 9 657 9904
+a220 6 658 9904
+a226 6 672 9904
+a22c 6 673 9904
+a232 6 679 9904
+a238 18 680 9904
+a250 6 681 9904
+a256 2 683 9904
+a258 7 684 9904
+a25f 5 688 9904
+a264 1b 689 9904
+a27f 13 690 9904
+a292 7 696 9904
+a299 9 698 9904
+a2a2 b 700 9904
+a2ad 1e 701 9904
+a2cb 10 702 9904
+a2db 15 706 9904
+a2f0 1d 707 9904
+FUNC a310 d1 0 cftof_l
+a310 18 736 9904
+a328 23 744 9904
+a34b 15 748 9904
+a360 5 749 9904
+a365 38 755 9904
+a39d 4 756 9904
+a3a1 3 758 9904
+a3a4 2 759 9904
+a3a6 25 762 9904
+a3cb 16 765 9904
+FUNC a3e4 134 0 cftog_l
+a3e4 1d 795 9904
+a401 23 810 9904
+a424 18 813 9904
+a43c 5 814 9904
+a441 5 817 9904
+a446 d 818 9904
+a453 23 820 9904
+a476 4 821 9904
+a47a 3 823 9904
+a47d 2 824 9904
+a47f c 826 9904
+a48b 9 835 9904
+a494 4 843 9904
+a498 9 845 9904
+a4a1 3 846 9904
+a4a4 27 849 9904
+a4cb 32 840 9904
+a4fd 1b 851 9904
+FUNC a518 7 0 cropzeros
+a518 0 139 9904
+a518 7 140 9904
+FUNC a520 96 0 cropzeros_l
+a520 9 144 9904
+a529 a 145 9904
+a533 1b 148 9904
+a54e 9 149 9904
+a557 9 151 9904
+a560 8 152 9904
+a568 3 153 9904
+a56b 6 152 9904
+a571 3 155 9904
+a574 8 158 9904
+a57c 10 160 9904
+a58c 3 161 9904
+a58f e 163 9904
+a59d 19 165 9904
+FUNC a5b8 8 0 fassign
+a5b8 0 214 9904
+a5b8 8 215 9904
+FUNC a5c0 40 0 fassign_l
+a5c0 c 175 9904
+a5cc 14 203 9904
+a5e0 8 204 9904
+a5e8 2 205 9904
+a5ea a 206 9904
+a5f4 6 207 9904
+a5fa 6 211 9904
+FUNC a600 7 0 forcdecpt
+a600 0 73 9904
+a600 7 74 9904
+FUNC a608 7f 0 forcdecpt_l
+a608 9 78 9904
+a611 a 79 9904
+a61b d 83 9904
+a628 3 87 9904
+a62b c 88 9904
+a637 d 92 9904
+a644 4 97 9904
+a648 18 102 9904
+a660 2 105 9904
+a662 2 106 9904
+a664 2 107 9904
+a666 9 108 9904
+a66f 18 109 9904
+FUNC a688 12 0 positive
+a688 0 169 9904
+a688 11 170 9904
+a699 1 171 9904
+FUNC a69c 20 0 _termconout
+a69c 15 83 2057
+a6b1 6 85 2057
+a6b7 5 87 2057
+FUNC a6bc 3b 0 _initconout
+a6bc 4 53 2057
+a6c0 32 60 2057
+a6f2 5 61 2057
+FUNC a6f8 222 0 _mtold12
+a6f8 18 34 10294
+a710 4 38 10294
+a714 5 39 10294
+a719 12 40 10294
+a72b 15 41 10294
+a740 9 42 10294
+a749 c 43 10294
+a755 5 42 10294
+a75a d 43 10294
+a767 3 44 10294
+a76a 3 43 10294
+a76d 13 44 10294
+a780 2 45 10294
+a782 3 44 10294
+a785 3 45 10294
+a788 3 41 10294
+a78b 3 45 10294
+a78e 8 41 10294
+a796 b 45 10294
+a7a1 3 41 10294
+a7a4 19 45 10294
+a7bd 4 41 10294
+a7c1 7 45 10294
+a7c8 4 41 10294
+a7cc 1b 45 10294
+a7e7 4 41 10294
+a7eb 7 45 10294
+a7f2 4 41 10294
+a7f6 3 45 10294
+a7f9 15 46 10294
+a80e 3 41 10294
+a811 3 46 10294
+a814 4 41 10294
+a818 3 46 10294
+a81b 2 50 10294
+a81d 4 41 10294
+a821 4 47 10294
+a825 11 50 10294
+a836 3 41 10294
+a839 19 50 10294
+a852 4 41 10294
+a856 7 50 10294
+a85d 17 41 10294
+a874 b 54 10294
+a87f e 56 10294
+a88d 13 57 10294
+a8a0 15 58 10294
+a8b5 16 60 10294
+a8cb 14 61 10294
+a8df 5 62 10294
+a8e4 2 61 10294
+a8e6 3 62 10294
+a8e9 3 61 10294
+a8ec 10 60 10294
+a8fc 1e 65 10294
+FUNC a91c 7a 0 isdigit
+a91c 6 139 6847
+a922 c 140 6847
+a92e 10 142 6847
+a93e 52 146 6847
+a990 6 148 6847
+FUNC a998 152 0 tolower_l
+a998 15 70 7683
+a9ad 9 74 7683
+a9b6 8 77 7683
+a9be 35 79 7683
+a9f3 10 80 7683
+aa03 18 82 7683
+aa1b 25 86 7683
+aa40 4 88 7683
+aa44 4 89 7683
+aa48 4 90 7683
+aa4c 5 91 7683
+aa51 2 92 7683
+aa53 5 94 7683
+aa58 13 97 7683
+aa6b 4a 110 7683
+aab5 3 116 7683
+aab8 6 117 7683
+aabe 1a 119 7683
+aad8 12 120 7683
+FUNC aaec 1e 0 tolower
+aaec 0 143 7683
+aaec 9 145 7683
+aaf5 d 147 7683
+ab02 1 153 7683
+ab03 7 151 7683
+FUNC ab0c 144 0 strrchr
+ab0c 4 80 5933
+ab10 6 84 5933
+ab16 4 89 5933
+ab1a e 96 5933
+ab28 19 105 5933
+ab41 2 106 5933
+ab43 8 108 5933
+ab4b 4 109 5933
+ab4f 8 110 5933
+ab57 3 115 5933
+ab5a 8 116 5933
+ab62 d 121 5933
+ab6f 3 125 5933
+ab72 15 138 5933
+ab87 4 139 5933
+ab8b 2a 147 5933
+abb5 a 148 5933
+abbf 2 149 5933
+abc1 3 153 5933
+abc4 1f 164 5933
+abe3 c 166 5933
+abef a 175 5933
+abf9 3 179 5933
+abfc 3 180 5933
+abff 6 181 5933
+ac05 3 211 5933
+ac08 5 216 5933
+ac0d 5 194 5933
+ac12 a 196 5933
+ac1c 6 197 5933
+ac22 9 194 5933
+ac2b 7 201 5933
+ac32 9 205 5933
+ac3b 6 207 5933
+ac41 9 209 5933
+ac4a 4 213 5933
+ac4e 2 214 5933
+FUNC ac50 cb 0 fptostr
+ac50 d 50 95
+ac5d 4 52 95
+ac61 20 55 95
+ac81 5 56 95
+ac86 22 61 95
+aca8 c 70 95
+acb4 17 77 95
+accb 3 78 95
+acce 5 76 95
+acd3 3 80 95
+acd6 7 87 95
+acdd 2 88 95
+acdf b 90 95
+acea 2 91 95
+acec 5 94 95
+acf1 4 99 95
+acf5 2 101 95
+acf7 17 105 95
+ad0e 2 108 95
+ad10 b 109 95
+FUNC ad1c cd 0 _dtold
+ad1c 5 51 10420
+ad21 8 58 10420
+ad29 1b 60 10420
+ad44 11 61 10420
+ad55 d 63 10420
+ad62 9 81 10420
+ad6b 2 82 10420
+ad6d 6 65 10420
+ad73 2 66 10420
+ad75 8 69 10420
+ad7d 4 70 10420
+ad81 3 71 10420
+ad84 2 73 10420
+ad86 9 76 10420
+ad8f 2 77 10420
+ad91 6 85 10420
+ad97 14 86 10420
+adab 5 89 10420
+adb0 12 92 10420
+adc2 6 93 10420
+adc8 12 94 10420
+adda 4 97 10420
+adde b 99 10420
+FUNC adec b7 0 fltout2
+adec 26 21 10420
+ae12 13 25 10420
+ae25 26 26 10420
+ae4b 6 27 10420
+ae51 4 28 10420
+ae55 19 29 10420
+ae6e 4 30 10420
+ae72 3 32 10420
+ae75 18 33 10420
+ae8d 16 29 10420
+FUNC aea4 ad8 0 $I10_OUTPUT
+aea4 2a 60 9988
+aece 8 96 9988
+aed6 6 98 9988
+aedc 1a 99 9988
+aef6 4 100 9988
+aefa 30 102 9988
+af2a 4 103 9988
+af2e 2 104 9988
+af30 3 105 9988
+af33 18 107 9988
+af4b 17 108 9988
+af62 5 109 9988
+af67 a 112 9988
+af71 1a 116 9988
+af8b 22 118 9988
+afad 13 122 9988
+afc0 1d 124 9988
+afdd a 128 9988
+afe7 1c 130 9988
+b003 8 131 9988
+b00b 2 134 9988
+b00d 1d 136 9988
+b02a 4 137 9988
+b02e 3 138 9988
+b031 5 141 9988
+b036 4 228 9988
+b03a e 256 9988
+b048 7 260 9988
+b04f 6 226 9988
+b055 6 260 9988
+b05b 3 228 9988
+b05e a 260 9988
+b068 4 255 9988
+b06c 5 257 9988
+b071 5 260 9988
+b076 e 228 9988
+b084 8 260 9988
+b08c 5 228 9988
+b091 386 260 9988
+b417 16 263 9988
+b42d 4 264 9988
+b431 e 265 9988
+b43f 3 264 9988
+b442 2a6 265 9988
+b6e8 3 268 9988
+b6eb 11 271 9988
+b6fc 5 272 9988
+b701 f 274 9988
+b710 5 275 9988
+b715 9 281 9988
+b71e 1e 282 9988
+b73c 17 293 9988
+b753 5 292 9988
+b758 7 293 9988
+b75f 5 295 9988
+b764 7 296 9988
+b76b 5 297 9988
+b770 10 298 9988
+b780 3 297 9988
+b783 7 298 9988
+b78a 5 297 9988
+b78f 7 298 9988
+b796 14 302 9988
+b7aa 5 303 9988
+b7af 14 304 9988
+b7c3 5 303 9988
+b7c8 6 304 9988
+b7ce e 305 9988
+b7dc 3 306 9988
+b7df 8 305 9988
+b7e7 4 306 9988
+b7eb 3 305 9988
+b7ee 44 306 9988
+b832 3 307 9988
+b835 3 306 9988
+b838 7 307 9988
+b83f 3 311 9988
+b842 11 307 9988
+b853 3 302 9988
+b856 c 307 9988
+b862 3 310 9988
+b865 11 311 9988
+b876 8 302 9988
+b87e 6 314 9988
+b884 3 315 9988
+b887 6 317 9988
+b88d 6 319 9988
+b893 7 320 9988
+b89a 5 319 9988
+b89f 5 322 9988
+b8a4 3 323 9988
+b8a7 4 324 9988
+b8ab 3 326 9988
+b8ae 7 337 9988
+b8b5 d 338 9988
+b8c2 3 340 9988
+b8c5 27 341 9988
+b8ec e 330 9988
+b8fa 5 331 9988
+b8ff 24 333 9988
+b923 5 334 9988
+b928 15 118 9988
+b93d 15 124 9988
+b952 15 130 9988
+b967 15 136 9988
+PUBLIC b97c 0 RtlUnwindEx
+PUBLIC b982 0 IsProcessorFeaturePresent
+FUNC b990 1e 0 static  __tmainCRTStartup$filt$0()
+b990 1e 267 9116
+FUNC b9ae 19 0 static  `type_info::_Type_info_dtor'::`1'::fin$0()
+b9ae 9 72 10741
+b9b7 10 73 10741
+FUNC b9c7 19 0 static  _freefls$fin$1()
+b9c7 9 413 9313
+b9d0 10 414 9313
+FUNC b9e0 19 0 static  _freefls$fin$0()
+b9e0 9 429 9313
+b9e9 10 430 9313
+FUNC b9f9 19 0 static  _initptd$fin$1()
+b9f9 9 226 9313
+ba02 10 228 9313
+FUNC ba12 19 0 static  _initptd$fin$0()
+ba12 9 247 9313
+ba1b 10 248 9313
+FUNC ba2b 24 0 static  doexit$fin$0()
+ba2b 9 665 9790
+ba34 9 666 9790
+ba3d 12 667 9790
+FUNC ba4f 1b 0 static  _ioinit$fin$0()
+ba4f 9 325 1584
+ba58 12 326 1584
+FUNC ba6a 1d 0 static  _mtinitlocknum$fin$0()
+ba6a 9 292 9509
+ba73 14 293 9509
+FUNC ba87 19 0 static  __updatetlocinfo$fin$0()
+ba87 9 293 3702
+ba90 10 295 3702
+FUNC baa0 19 0 static  __updatetmbcinfo$fin$0()
+baa0 9 538 8253
+baa9 10 540 8253
+FUNC bab9 19 0 static  _setmbcp$fin$0()
+bab9 9 659 8253
+bac2 10 661 8253
+FUNC bae0 20 0 static  _IsNonwritableInCurrentImage$filt$0()
+bae0 20 181 3978
+FUNC bb00 14 0 static  _onexit$fin$0()
+bb00 e 89 3795
+bb0e 6 90 3795
+FUNC bb14 1e 0 static  raise$fin$0()
+bb14 9 574 4150
+bb1d 6 575 4150
+bb23 f 576 4150
+FUNC bb32 28 0 static  flsall$fin$0()
+bb32 9 276 5660
+bb3b 1f 277 5660
+FUNC bb5a 19 0 static  flsall$fin$1()
+bb5a 9 282 5660
+bb63 10 283 5660
+FUNC bb73 19 0 static  _fcloseall$fin$0()
+bb73 9 69 5472
+bb7c 10 70 5472
+FUNC bb8c 19 0 static  _locterm$fin$0()
+bb8c 9 193 4530
+bb95 10 195 4530
+FUNC bba5 17 0 static  _commit$fin$0()
+bba5 9 72 1490
+bbae e 73 1490
+FUNC bbbc 17 0 static  _write$fin$0()
+bbbc 9 81 1964
+bbc5 e 82 1964
+FUNC bbd3 18 0 static  fclose$fin$0()
+bbd3 9 58 5556
+bbdc f 59 5556
+FUNC bbeb 19 0 static  __lock_fhandle$fin$0()
+bbeb 9 451 1865
+bbf4 10 452 1865
+FUNC bc04 17 0 static  _close$fin$0()
+bc04 9 60 1396
+bc0d e 61 1396
+STACK CFI INIT 1010 6a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1010 .cfa: $rsp 80 +
+STACK CFI INIT 10d0 36 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 10d0 .cfa: $rsp 48 +
+STACK CFI INIT 1110 26 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1110 .cfa: $rsp 48 +
+STACK CFI INIT 1180 39 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1180 .cfa: $rsp 48 +
+STACK CFI INIT 11bc 180 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 11bc .cfa: $rsp 64 +
+STACK CFI INIT 133c 2c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 133c .cfa: $rsp 48 +
+STACK CFI INIT 1368 12 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1368 .cfa: $rsp 48 +
+STACK CFI INIT 137c 3d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 137c .cfa: $rsp 48 +
+STACK CFI INIT 13d0 67 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 13d0 .cfa: $rsp 8 +
+STACK CFI INIT 1438 6c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1438 .cfa: $rsp 64 +
+STACK CFI INIT 14a4 38 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 14a4 .cfa: $rsp 48 +
+STACK CFI INIT 14dc 17 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 14dc .cfa: $rsp 48 +
+STACK CFI INIT 14f4 1cc .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 14f4 .cfa: $rsp 48 +
+STACK CFI INIT 16c0 133 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 16c0 .cfa: $rsp 48 +
+STACK CFI INIT 17f4 24 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 17f4 .cfa: $rsp 48 +
+STACK CFI INIT 1818 82 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1818 .cfa: $rsp 48 +
+STACK CFI INIT 189c c2 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 189c .cfa: $rsp 48 +
+STACK CFI INIT 1960 7f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1960 .cfa: $rsp 48 +
+STACK CFI INIT 19e0 24 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 19e0 .cfa: $rsp 48 +
+STACK CFI INIT 1a04 41 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1a04 .cfa: $rsp 48 +
+STACK CFI INIT 1a48 16 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1a48 .cfa: $rsp 48 +
+STACK CFI INIT 1a60 26 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1a60 .cfa: $rsp 48 +
+STACK CFI INIT 1aa8 96 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1aa8 .cfa: $rsp 48 +
+STACK CFI INIT 1b4c 4b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1b4c .cfa: $rsp 48 +
+STACK CFI INIT 1b98 60 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1b98 .cfa: $rsp 48 +
+STACK CFI INIT 1bf8 39 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1bf8 .cfa: $rsp 48 +
+STACK CFI INIT 1c4c 195 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1c4c .cfa: $rsp 112 +
+STACK CFI INIT 1df0 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1df0 .cfa: $rsp 48 +
+STACK CFI INIT 1e10 32d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1e10 .cfa: $rsp 224 +
+STACK CFI INIT 2140 f3 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2140 .cfa: $rsp 64 +
+STACK CFI INIT 2234 1c7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2234 .cfa: $rsp 64 +
+STACK CFI INIT 23fc 131 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 23fc .cfa: $rsp 64 +
+STACK CFI INIT 2530 43 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2530 .cfa: $rsp 48 +
+STACK CFI INIT 25a4 26f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 25a4 .cfa: $rsp 624 +
+STACK CFI INIT 281c 40 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 281c .cfa: $rsp 48 +
+STACK CFI INIT 285c ac .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 285c .cfa: $rsp 48 +
+STACK CFI INIT 2908 38 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2908 .cfa: $rsp 48 +
+STACK CFI INIT 2940 38 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2940 .cfa: $rsp 48 +
+STACK CFI INIT 2978 f4 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2978 .cfa: $rsp 80 +
+STACK CFI INIT 2a6c 1e1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2a6c .cfa: $rsp 112 +
+STACK CFI INIT 2c50 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2c50 .cfa: $rsp 48 +
+STACK CFI INIT 2c70 4e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2c70 .cfa: $rsp 48 +
+STACK CFI INIT 2cc0 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2cc0 .cfa: $rsp 48 +
+STACK CFI INIT 2d30 f2 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2d30 .cfa: $rsp 1472 +
+STACK CFI INIT 2e2c 65 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2e2c .cfa: $rsp 64 +
+STACK CFI INIT 2e94 1e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2e94 .cfa: $rsp 64 +
+STACK CFI INIT 2eb4 3b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2eb4 .cfa: $rsp 48 +
+STACK CFI INIT 2ef0 61 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2ef0 .cfa: $rsp 48 +
+STACK CFI INIT 2f70 a8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2f70 .cfa: $rsp 8 +
+STACK CFI INIT 3018 44 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3018 .cfa: $rsp 48 +
+STACK CFI INIT 305c 87 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 305c .cfa: $rsp 48 +
+STACK CFI INIT 30e4 bd .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 30e4 .cfa: $rsp 48 +
+STACK CFI INIT 31a4 61 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 31a4 .cfa: $rsp 48 +
+STACK CFI INIT 3220 b6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3220 .cfa: $rsp 48 +
+STACK CFI INIT 32f0 24 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 32f0 .cfa: $rsp 1248 +
+STACK CFI INIT 3320 18 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3320 .cfa: $rsp 8 +
+STACK CFI INIT 3340 1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3340 .cfa: $rsp 8 +
+STACK CFI INIT 3350 1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3350 .cfa: $rsp 8 +
+STACK CFI INIT 3354 1f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3354 .cfa: $rsp 48 +
+STACK CFI INIT 3374 1d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3374 .cfa: $rsp 48 +
+STACK CFI INIT 3394 6d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3394 .cfa: $rsp 80 +
+STACK CFI INIT 3404 71 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3404 .cfa: $rsp 96 +
+STACK CFI INIT 34e8 2b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 34e8 .cfa: $rsp 48 +
+STACK CFI INIT 3514 4c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3514 .cfa: $rsp 48 +
+STACK CFI INIT 3560 3fa .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3560 .cfa: $rsp 48 +
+STACK CFI INIT 396c 1f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 396c .cfa: $rsp 48 +
+STACK CFI INIT 398c 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 398c .cfa: $rsp 48 +
+STACK CFI INIT 39ac 7f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 39ac .cfa: $rsp 48 +
+STACK CFI INIT 3a2c 7a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3a2c .cfa: $rsp 48 +
+STACK CFI INIT 3aa8 81 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3aa8 .cfa: $rsp 48 +
+STACK CFI INIT 3bb8 196 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3bb8 .cfa: $rsp 48 +
+STACK CFI INIT 3df4 75 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3df4 .cfa: $rsp 48 +
+STACK CFI INIT 3e6c 62 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3e6c .cfa: $rsp 48 +
+STACK CFI INIT 3ed0 28 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3ed0 .cfa: $rsp 48 +
+STACK CFI INIT 3ef8 a8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3ef8 .cfa: $rsp 48 +
+STACK CFI INIT 3fa0 7d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3fa0 .cfa: $rsp 80 +
+STACK CFI INIT 4020 8e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4020 .cfa: $rsp 48 +
+STACK CFI INIT 40b0 1e1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 40b0 .cfa: $rsp 1424 +
+STACK CFI INIT 4294 ba .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4294 .cfa: $rsp 48 +
+STACK CFI INIT 4350 244 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4350 .cfa: $rsp 64 +
+STACK CFI INIT 4594 2ae .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4594 .cfa: $rsp 112 +
+STACK CFI INIT 48a0 4d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 48a0 .cfa: $rsp 48 +
+STACK CFI INIT 4920 43 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4920 .cfa: $rsp 48 +
+STACK CFI INIT 4964 10a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4964 .cfa: $rsp 64 +
+STACK CFI INIT 4a70 17 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4a70 .cfa: $rsp 48 +
+STACK CFI INIT 4a88 39 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4a88 .cfa: $rsp 48 +
+STACK CFI INIT 4ac4 33 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4ac4 .cfa: $rsp 48 +
+STACK CFI INIT 4b38 233 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4b38 .cfa: $rsp 96 +
+STACK CFI INIT 4d74 98 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4d74 .cfa: $rsp 48 +
+STACK CFI INIT 4e0c 30 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4e0c .cfa: $rsp 48 +
+STACK CFI INIT 4e3c 65 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4e3c .cfa: $rsp 48 +
+STACK CFI INIT 4ea4 31 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4ea4 .cfa: $rsp 48 +
+STACK CFI INIT 4f48 79 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4f48 .cfa: $rsp 80 +
+STACK CFI INIT 4fd8 85 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4fd8 .cfa: $rsp 48 +
+STACK CFI INIT 5060 6b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5060 .cfa: $rsp 48 +
+STACK CFI INIT 50e8 cc .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 50e8 .cfa: $rsp 48 +
+STACK CFI INIT 51b4 273 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 51b4 .cfa: $rsp 144 +
+STACK CFI INIT 5428 1d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5428 .cfa: $rsp 48 +
+STACK CFI INIT 5448 63 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5448 .cfa: $rsp 48 +
+STACK CFI INIT 54c0 1f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 54c0 .cfa: $rsp 8 +
+STACK CFI INIT 5500 22a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5500 .cfa: $rsp 8 +
+STACK CFI INIT 572c 55 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 572c .cfa: $rsp 48 +
+STACK CFI INIT 5784 d3 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5784 .cfa: $rsp 48 +
+STACK CFI INIT 5858 9a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5858 .cfa: $rsp 48 +
+STACK CFI INIT 58f4 10a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 58f4 .cfa: $rsp 48 +
+STACK CFI INIT 5a00 6c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5a00 .cfa: $rsp 48 +
+STACK CFI INIT 5a6c 3fa .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5a6c .cfa: $rsp 48 +
+STACK CFI INIT 5e68 2ec .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5e68 .cfa: $rsp 128 +
+STACK CFI INIT 6154 96 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6154 .cfa: $rsp 128 +
+STACK CFI INIT 61ec 176 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 61ec .cfa: $rsp 112 +
+STACK CFI INIT 6364 7c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6364 .cfa: $rsp 112 +
+STACK CFI INIT 63e0 39 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 63e0 .cfa: $rsp 48 +
+STACK CFI INIT 6428 8a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6428 .cfa: $rsp 48 +
+STACK CFI INIT 64b4 32 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 64b4 .cfa: $rsp 48 +
+STACK CFI INIT 64e8 8f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 64e8 .cfa: $rsp 96 +
+STACK CFI INIT 65e0 565 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 65e0 .cfa: $rsp 8 +
+STACK CFI INIT 6b48 26 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6b48 .cfa: $rsp 48 +
+STACK CFI INIT 6b70 5f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6b70 .cfa: $rsp 48 +
+STACK CFI INIT 6bd0 4c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6bd0 .cfa: $rsp 48 +
+STACK CFI INIT 6c1c 79 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6c1c .cfa: $rsp 48 +
+STACK CFI INIT 6ca4 e6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6ca4 .cfa: $rsp 80 +
+STACK CFI INIT 6d8c a8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6d8c .cfa: $rsp 64 +
+STACK CFI INIT 6e34 49 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6e34 .cfa: $rsp 48 +
+STACK CFI INIT 6e80 d1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6e80 .cfa: $rsp 64 +
+STACK CFI INIT 6f54 1a4 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 6f54 .cfa: $rsp 32 +
+STACK CFI INIT 70f8 47 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 70f8 .cfa: $rsp 48 +
+STACK CFI INIT 7150 4e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7150 .cfa: $rsp 24 +
+STACK CFI INIT 71a0 d7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 71a0 .cfa: $rsp 64 +
+STACK CFI INIT 7278 e1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7278 .cfa: $rsp 80 +
+STACK CFI INIT 735c 7f1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 735c .cfa: $rsp 7040 +
+STACK CFI INIT 7b50 7a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7b50 .cfa: $rsp 48 +
+STACK CFI INIT 7bcc 66 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7bcc .cfa: $rsp 48 +
+STACK CFI INIT 7c34 db .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7c34 .cfa: $rsp 128 +
+STACK CFI INIT 7d10 cf .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7d10 .cfa: $rsp 160 +
+STACK CFI INIT 7de0 c7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7de0 .cfa: $rsp 144 +
+STACK CFI INIT 7f50 c7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7f50 .cfa: $rsp 8 +
+STACK CFI INIT 8018 98 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8018 .cfa: $rsp 48 +
+STACK CFI INIT 80b0 aa .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 80b0 .cfa: $rsp 48 +
+STACK CFI INIT 815c 74 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 815c .cfa: $rsp 48 +
+STACK CFI INIT 81fc 43 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 81fc .cfa: $rsp 80 +
+STACK CFI INIT 8240 45 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8240 .cfa: $rsp 80 +
+STACK CFI INIT 8288 93 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8288 .cfa: $rsp 48 +
+STACK CFI INIT 831c 151 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 831c .cfa: $rsp 96 +
+STACK CFI INIT 8478 59 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8478 .cfa: $rsp 64 +
+STACK CFI INIT 84d4 c3 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 84d4 .cfa: $rsp 64 +
+STACK CFI INIT 8598 ba .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8598 .cfa: $rsp 48 +
+STACK CFI INIT 8654 37 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8654 .cfa: $rsp 48 +
+STACK CFI INIT 8690 5b6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8690 .cfa: $rsp 144 +
+STACK CFI INIT 8c48 5b6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 8c48 .cfa: $rsp 144 +
+STACK CFI INIT 9200 861 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 9200 .cfa: $rsp 224 +
+STACK CFI INIT 9a64 24 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 9a64 .cfa: $rsp 80 +
+STACK CFI INIT 9a88 7e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 9a88 .cfa: $rsp 64 +
+STACK CFI INIT 9b08 3b0 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 9b08 .cfa: $rsp 128 +
+STACK CFI INIT 9eb8 1f9 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 9eb8 .cfa: $rsp 112 +
+STACK CFI INIT a0b4 f7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a0b4 .cfa: $rsp 176 +
+STACK CFI INIT a1ac 161 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a1ac .cfa: $rsp 80 +
+STACK CFI INIT a310 d1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a310 .cfa: $rsp 160 +
+STACK CFI INIT a3e4 134 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a3e4 .cfa: $rsp 176 +
+STACK CFI INIT a520 96 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a520 .cfa: $rsp 80 +
+STACK CFI INIT a5c0 40 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a5c0 .cfa: $rsp 64 +
+STACK CFI INIT a608 7f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a608 .cfa: $rsp 80 +
+STACK CFI INIT a69c 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a69c .cfa: $rsp 48 +
+STACK CFI INIT a6bc 3b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a6bc .cfa: $rsp 80 +
+STACK CFI INIT a6f8 222 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a6f8 .cfa: $rsp 48 +
+STACK CFI INIT a91c 7a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a91c .cfa: $rsp 80 +
+STACK CFI INIT a998 152 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI a998 .cfa: $rsp 128 +
+STACK CFI INIT ab0c 144 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ab0c .cfa: $rsp 32 +
+STACK CFI INIT ac50 cb .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ac50 .cfa: $rsp 48 +
+STACK CFI INIT ad1c cd .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ad1c .cfa: $rsp 8 +
+STACK CFI INIT adec b7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI adec .cfa: $rsp 176 +
+STACK CFI INIT aea4 ad8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI aea4 .cfa: $rsp 256 +
+STACK CFI INIT b990 1e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI b990 .cfa: $rsp 48 +
+STACK CFI INIT b9ae 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI b9ae .cfa: $rsp 48 +
+STACK CFI INIT b9c7 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI b9c7 .cfa: $rsp 48 +
+STACK CFI INIT b9e0 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI b9e0 .cfa: $rsp 48 +
+STACK CFI INIT b9f9 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI b9f9 .cfa: $rsp 48 +
+STACK CFI INIT ba12 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ba12 .cfa: $rsp 48 +
+STACK CFI INIT ba2b 24 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ba2b .cfa: $rsp 48 +
+STACK CFI INIT ba4f 1b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ba4f .cfa: $rsp 48 +
+STACK CFI INIT ba6a 1d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ba6a .cfa: $rsp 48 +
+STACK CFI INIT ba87 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI ba87 .cfa: $rsp 48 +
+STACK CFI INIT baa0 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI baa0 .cfa: $rsp 48 +
+STACK CFI INIT bab9 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bab9 .cfa: $rsp 48 +
+STACK CFI INIT bae0 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bae0 .cfa: $rsp 48 +
+STACK CFI INIT bb00 14 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb00 .cfa: $rsp 48 +
+STACK CFI INIT bb14 1e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb14 .cfa: $rsp 48 +
+STACK CFI INIT bb32 28 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb32 .cfa: $rsp 48 +
+STACK CFI INIT bb5a 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb5a .cfa: $rsp 48 +
+STACK CFI INIT bb73 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb73 .cfa: $rsp 48 +
+STACK CFI INIT bb8c 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bb8c .cfa: $rsp 48 +
+STACK CFI INIT bba5 17 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bba5 .cfa: $rsp 48 +
+STACK CFI INIT bbbc 17 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bbbc .cfa: $rsp 48 +
+STACK CFI INIT bbd3 18 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bbd3 .cfa: $rsp 48 +
+STACK CFI INIT bbeb 19 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bbeb .cfa: $rsp 48 +
+STACK CFI INIT bc04 17 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI bc04 .cfa: $rsp 48 +
diff --git a/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb b/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb
new file mode 100644
index 0000000..7b6d2ba
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.sym b/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.sym
new file mode 100644
index 0000000..2a7c089
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.sym
@@ -0,0 +1,6209 @@
+MODULE windows x86 99302CF6F3C244F2B8E048BA0268A12F1 omap_reorder_bbs.pdb
+FILE 1 c:\src\breakpad\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\public\sdk\inc\internal\pebteb.h
+FILE 3 f:\dd\public\sdk\inc\internal\ntldr.h
+FILE 4 f:\dd\public\sdk\inc\internal\ntconfig.h
+FILE 5 f:\dd\public\sdk\inc\internal\ntregapi.h
+FILE 6 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 7 f:\dd\public\ddk\inc\ntdef.h
+FILE 8 f:\dd\public\sdk\inc\internal\ntmmapi.h
+FILE 9 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 10 f:\dd\public\sdk\inc\pshpack1.h
+FILE 11 f:\dd\public\sdk\inc\internal\nxi386.h
+FILE 12 f:\dd\public\ddk\inc\poppack.h
+FILE 13 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 14 f:\dd\public\sdk\inc\pshpack8.h
+FILE 15 f:\dd\public\ddk\inc\ntpoapi.h
+FILE 16 f:\dd\public\sdk\inc\internal\ntexapi.h
+FILE 17 f:\dd\public\sdk\inc\poppack.h
+FILE 18 f:\dd\public\ddk\inc\ntimage.h
+FILE 19 f:\dd\public\ddk\inc\pshpack4.h
+FILE 20 f:\dd\public\sdk\inc\pshpack2.h
+FILE 21 f:\dd\public\ddk\inc\ntnls.h
+FILE 22 f:\dd\public\sdk\inc\internal\ntelfapi.h
+FILE 23 f:\dd\public\sdk\inc\internal\ntpsapi.h
+FILE 24 f:\dd\public\sdk\inc\internal\nti386.h
+FILE 25 f:\dd\public\sdk\inc\specstrings.h
+FILE 26 f:\dd\public\sdk\inc\sal_supp.h
+FILE 27 f:\dd\public\sdk\inc\specstrings_supp.h
+FILE 28 f:\dd\public\sdk\inc\specstrings_strict.h
+FILE 29 f:\dd\public\sdk\inc\specstrings_undef.h
+FILE 30 f:\dd\public\sdk\inc\driverspecs.h
+FILE 31 f:\dd\public\sdk\inc\sdv_driverspecs.h
+FILE 32 f:\dd\public\sdk\inc\basetsd.h
+FILE 33 f:\dd\public\sdk\inc\internal\ntpnpapi.h
+FILE 34 f:\dd\public\sdk\inc\cfg.h
+FILE 35 f:\dd\public\sdk\inc\internal\ntxcapi.h
+FILE 36 f:\dd\public\sdk\inc\guiddef.h
+FILE 37 f:\dd\public\sdk\inc\internal\nt.h
+FILE 38 f:\dd\public\sdk\inc\ntstatus.h
+FILE 39 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 40 f:\dd\public\sdk\inc\internal\ntkeapi.h
+FILE 41 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 42 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 43 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\codeanalysis\sourceannotations.h
+FILE 44 f:\dd\public\sdk\inc\internal\ntobapi.h
+FILE 45 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 46 f:\dd\public\sdk\inc\internal\ntioapi.h
+FILE 47 f:\dd\public\ddk\inc\devioctl.h
+FILE 48 f:\dd\public\sdk\inc\internal\ntseapi.h
+FILE 49 f:\dd\public\ddk\inc\mce.h
+FILE 50 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 51 f:\dd\public\sdk\inc\pshpack4.h
+FILE 52 f:\dd\public\devdiv\inc\ddbanned.h
+FILE 53 f:\dd\public\sdk\inc\internal\ntlpcapi.h
+FILE 54 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 55 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 56 f:\dd\public\sdk\inc\internal\ntiolog.h
+FILE 57 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 58 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 59 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 60 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 61 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 62 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 64 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 65 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 69 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 73 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 77 f:\dd\public\sdk\inc\winreg.h
+FILE 78 f:\dd\public\sdk\inc\imm.h
+FILE 79 f:\dd\public\sdk\inc\wingdi.h
+FILE 80 f:\dd\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 81 f:\dd\public\sdk\inc\winerror.h
+FILE 82 f:\dd\public\sdk\inc\ktmtypes.h
+FILE 84 f:\dd\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 85 f:\dd\public\sdk\inc\windef.h
+FILE 86 f:\dd\public\sdk\inc\winbase.h
+FILE 88 f:\dd\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 89 f:\dd\public\sdk\inc\winuser.h
+FILE 91 f:\dd\public\sdk\inc\winnetwk.h
+FILE 92 f:\dd\public\sdk\inc\winnt.h
+FILE 93 f:\dd\public\sdk\inc\wnnc.h
+FILE 94 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 96 f:\dd\public\sdk\inc\winnls.h
+FILE 98 f:\dd\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 99 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 100 f:\dd\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 101 f:\dd\vctools\crt_bld\self_x86\crt\src\codeanalysis\sourceannotations.h
+FILE 102 f:\dd\public\sdk\inc\winver.h
+FILE 103 f:\dd\public\sdk\inc\verrsrc.h
+FILE 104 f:\dd\public\sdk\inc\wincon.h
+FILE 105 f:\dd\public\sdk\inc\stralign.h
+FILE 107 f:\dd\public\sdk\inc\mcx.h
+FILE 108 f:\dd\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 109 f:\dd\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 110 f:\dd\public\sdk\inc\windows.h
+FILE 111 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 112 f:\dd\public\sdk\inc\sdkddkver.h
+FILE 113 f:\dd\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 114 f:\dd\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 120 f:\dd\public\sdk\inc\reason.h
+FILE 123 f:\dd\public\sdk\inc\kernelspecs.h
+FILE 125 f:\dd\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 126 f:\dd\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 127 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 128 f:\dd\public\sdk\inc\ime_cmodes.h
+FILE 130 f:\dd\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 131 f:\dd\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 132 f:\dd\public\sdk\inc\tvout.h
+FILE 145 f:\dd\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 152 f:\dd\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 164 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 165 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 178 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 182 f:\dd\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 224 f:\dd\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 250 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 251 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 265 f:\dd\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 281 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 291 f:\dd\vctools\crt_bld\self_x86\crt\src\calloc_impl.c
+FILE 299 f:\dd\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 333 f:\dd\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 389 f:\dd\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 453 f:\dd\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 498 f:\dd\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 504 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 561 f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 618 f:\dd\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 677 f:\dd\vctools\crt_bld\self_x86\crt\src\recalloc.c
+FILE 731 f:\dd\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 774 f:\dd\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 777 f:\dd\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 792 f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 844 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 892 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 904 f:\dd\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 943 f:\dd\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 960 f:\dd\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 975 f:\dd\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 1011 f:\dd\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 1039 f:\dd\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1053 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 1063 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmboxw.c
+FILE 1065 f:\dd\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1069 f:\dd\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1120 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 1145 f:\dd\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 1181 f:\dd\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 1244 f:\dd\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 1288 f:\dd\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 1301 f:\dd\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 1344 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 1392 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 1413 f:\binaries.x86ret\inc\mm3dnow.h
+FILE 1415 f:\binaries.x86ret\inc\ammintrin.h
+FILE 1424 f:\binaries.x86ret\inc\immintrin.h
+FILE 1426 f:\binaries.x86ret\inc\wmmintrin.h
+FILE 1427 f:\binaries.x86ret\inc\nmmintrin.h
+FILE 1428 f:\binaries.x86ret\inc\smmintrin.h
+FILE 1429 f:\binaries.x86ret\inc\tmmintrin.h
+FILE 1430 f:\binaries.x86ret\inc\pmmintrin.h
+FILE 1431 f:\binaries.x86ret\inc\emmintrin.h
+FILE 1432 f:\binaries.x86ret\inc\xmmintrin.h
+FILE 1433 f:\binaries.x86ret\inc\mmintrin.h
+FILE 1455 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 1467 f:\dd\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 1468 f:\dd\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 1508 f:\dd\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 1568 f:\dd\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 1627 f:\dd\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 1685 f:\dd\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 1737 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 1742 f:\dd\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 1800 f:\dd\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 1855 f:\dd\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 1913 f:\dd\vctools\crt_bld\self_x86\crt\src\localref.c
+FILE 1962 f:\dd\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1969 f:\dd\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 1989 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 2036 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 2079 f:\dd\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 2128 f:\dd\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 2186 f:\dd\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 2250 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2311 f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2314 f:\dd\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2315 f:\dd\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2369 f:\dd\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2394 f:\dd\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 2419 f:\dd\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 2445 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 2468 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 2493 f:\dd\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 2523 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 2548 f:\dd\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 2578 f:\dd\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 2603 f:\dd\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 2658 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscat_s.c
+FILE 2713 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscpy_s.c
+FILE 2728 f:\dd\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 2776 f:\dd\vctools\crt_bld\self_x86\crt\src\wcsncpy_s.c
+FILE 2787 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm
+FILE 2788 f:\dd\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2789 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memset.asm
+FILE 2791 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcmp.asm
+FILE 2793 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcspn.asm
+FILE 2794 f:\dd\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 2796 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strlen.asm
+FILE 2798 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\_strnicm.asm
+FILE 2800 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strpbrk.asm
+FILE 2803 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\llmul.asm
+FILE 2805 f:\dd\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 2806 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\ulldvrm.asm
+FILE 2820 f:\dd\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 2841 f:\dd\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 2875 f:\dd\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 2931 f:\dd\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 2987 f:\dd\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 2998 f:\dd\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 3045 f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 3106 f:\dd\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 3163 f:\dd\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 3218 f:\dd\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 3271 f:\dd\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 3305 f:\dd\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 3326 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 3386 f:\dd\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 3447 f:\dd\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 3507 f:\dd\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 3583 f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3626 f:\dd\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 3682 f:\dd\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 3774 f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 3778 f:\dd\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 3838 f:\dd\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 3860 f:\dd\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 3891 f:\dd\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 3954 f:\dd\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 3998 f:\dd\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 4012 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 4072 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 4123 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 4186 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 4250 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 4274 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\alloca16.asm
+FILE 4276 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm
+FILE 4289 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 4293 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 4294 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 4295 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 4309 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 4315 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 4327 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 4340 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 4345 f:\dd\vctools\langapi\undname\undname.inl
+FILE 4347 f:\dd\vctools\langapi\undname\utf8.h
+FILE 4355 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 4365 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 4366 f:\dd\vctools\langapi\undname\undname.h
+FILE 4367 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 4368 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 4396 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 4397 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 4401 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 4405 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 4427 f:\dd\vctools\langapi\include\ehdata.h
+FILE 4429 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 4449 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 4472 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 4473 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 4475 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 4487 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 4488 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 4490 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 4491 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 4492 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 4493 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 4496 f:\dd\public\internal\vctools\include\undname.h
+FILE 4531 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 4591 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 4643 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 4664 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 4680 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FUNC 2cec 54 0 main
+2cec 6 57 1
+2cf2 8 58 1
+2cfa e 59 1
+2d08 8 60 1
+2d10 b 61 1
+2d1b f 62 1
+2d2a 12 64 1
+2d3c 4 65 1
+FUNC 4b70 a 0 static int google_breakpad::i()
+4b70 3 51 1
+4b73 5 52 1
+4b78 2 53 1
+FUNC 25a8 21 0 google_breakpad::C::C()
+25a8 21 37 1
+FUNC 131c 14 0 google_breakpad::C::~C()
+131c 14 38 1
+FUNC 1b94 16 0 google_breakpad::C::set_member(int)
+1b94 16 40 1
+FUNC 11e8 1e 0 google_breakpad::C::f()
+11e8 1e 43 1
+FUNC 1b3c 10 0 google_breakpad::C::g()
+1b3c 10 44 1
+FUNC 669c 7 0 google_breakpad::C::h(google_breakpad::C const &)
+669c 7 45 1
+FUNC 16d4 20 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 211c c 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 5458 9 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 40f4 10 0 type_info::~type_info()
+40f4 2 49 4531
+40f6 d 50 4531
+4103 1 51 4531
+FUNC 1fd4 1c 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 46d8 7 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 65a8 7 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 12a0 b 0 operator delete(void *)
+12a0 5 20 2875
+12a5 1 24 2875
+12a6 5 23 2875
+FUNC 198c 4 0 static void fast_error_exit(int)
+FUNC 1ff0 18 0 static void fast_error_exit(int)
+FUNC 455c 12 0 static void fast_error_exit(int)
+FUNC 4d0c 5 0 static void fast_error_exit(int)
+1ff0 5 326 4250
+1ff5 13 335 4250
+4d0c 5 337 4250
+455c 8 339 4250
+198c 2 340 4250
+4564 a 340 4250
+198e 2 341 4250
+FUNC 38be 161 0 static int __tmainCRTStartup()
+38be c 196 4250
+38ca a 214 4250
+38d4 b 216 4250
+38df 49 223 4250
+3928 9 225 4250
+3931 8 226 4250
+3939 9 228 4250
+3942 8 229 4250
+394a 5 238 4250
+394f 3 246 4250
+3952 9 248 4250
+395b 8 249 4250
+3963 b 252 4250
+396e a 255 4250
+3978 9 257 4250
+3981 8 258 4250
+3989 9 259 4250
+3992 8 260 4250
+399a 8 262 4250
+39a2 4 263 4250
+39a6 7 264 4250
+39ad a 277 4250
+39b7 18 278 4250
+39cf 5 281 4250
+39d4 6 282 4250
+39da 5 284 4250
+39df 2 286 4250
+39e1 17 287 4250
+39f8 6 293 4250
+39fe 6 295 4250
+3a04 6 296 4250
+3a0a 5 298 4250
+3a0f 7 300 4250
+3a16 3 302 4250
+3a19 6 303 4250
+FUNC 620c a 0 mainCRTStartup
+620c 0 179 4250
+620c 5 186 4250
+6211 5 188 4250
+FUNC 66c3 70 0 type_info::_Type_info_dtor(type_info *)
+66c3 c 62 4473
+66cf 8 63 4473
+66d7 4 64 4473
+66db a 65 4473
+66e5 d 70 4473
+66f2 4 72 4473
+66f6 4 74 4473
+66fa 6 79 4473
+6700 7 80 4473
+6707 9 94 4473
+6710 4 101 4473
+6714 c 103 4473
+6720 6 107 4473
+6726 2 83 4473
+6728 2 72 4473
+672a 9 104 4473
+FUNC 27ab 88 0 strcmp
+27ab 0 65 2791
+27ab 4 73 2791
+27af 4 74 2791
+27b3 6 76 2791
+27b9 2 77 2791
+27bb 2 81 2791
+27bd 2 83 2791
+27bf 2 84 2791
+27c1 2 85 2791
+27c3 2 86 2791
+27c5 3 87 2791
+27c8 2 88 2791
+27ca 2 89 2791
+27cc 2 90 2791
+27ce 3 92 2791
+27d1 3 94 2791
+27d4 2 95 2791
+27d6 2 96 2791
+27d8 2 97 2791
+27da 3 98 2791
+27dd 2 99 2791
+27df 3 100 2791
+27e2 3 101 2791
+27e5 2 102 2791
+27e7 4 103 2791
+27eb 2 107 2791
+27ed 2 108 2791
+27ef 2 115 2791
+27f1 2 116 2791
+27f3 3 117 2791
+27f6 1 118 2791
+27f7 6 122 2791
+27fd 2 123 2791
+27ff 2 125 2791
+2801 3 126 2791
+2804 2 127 2791
+2806 2 128 2791
+2808 3 129 2791
+280b 2 130 2791
+280d 2 131 2791
+280f 6 133 2791
+2815 2 134 2791
+2817 3 139 2791
+281a 3 140 2791
+281d 2 141 2791
+281f 2 142 2791
+2821 2 143 2791
+2823 2 144 2791
+2825 3 145 2791
+2828 2 146 2791
+282a 2 147 2791
+282c 2 148 2791
+282e 3 149 2791
+2831 2 150 2791
+FUNC 26fc 14 0 free
+FUNC 2bcc 2 0 free
+FUNC 3888 18 0 free
+FUNC 3ea0 1f 0 free
+26fc 5 40 389
+2701 f 45 389
+3ea0 11 50 389
+3eb1 e 51 389
+3888 18 53 389
+2bcc 2 55 389
+FUNC 199c 10 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 2380 6 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 3ce8 10 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 4448 14 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 4778 1c 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 57d0 10 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 5a40 5 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+FUNC 642c 10 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+4778 5 67 4397
+199c 10 68 4397
+3ce8 10 68 4397
+4448 14 68 4397
+477d 17 68 4397
+57d0 10 68 4397
+642c 10 68 4397
+5a40 5 69 4397
+2380 2 72 4397
+2382 4 73 4397
+FUNC 5a28 e 0 __CxxSetUnhandledExceptionFilter
+5a28 0 86 4397
+5a28 b 89 4397
+5a33 2 90 4397
+5a35 1 91 4397
+FUNC 1db0 5 0 __crtCorExitProcess
+FUNC 21a0 1e 0 __crtCorExitProcess
+FUNC 24cc 1a 0 __crtCorExitProcess
+FUNC 4c14 2 0 __crtCorExitProcess
+21a0 5 675 4186
+21a5 b 679 4186
+21b0 e 680 4186
+24cc c 681 4186
+24d8 e 682 4186
+1db0 5 683 4186
+4c14 2 693 4186
+FUNC 6a9b 18 0 __crtExitProcess
+6a9b 5 698 4186
+6aa0 9 699 4186
+6aa9 a 708 4186
+FUNC 2100 9 0 _lockexit
+2100 0 758 4186
+2100 8 759 4186
+2108 1 760 4186
+FUNC 2b50 9 0 _unlockexit
+2b50 0 784 4186
+2b50 8 785 4186
+2b58 1 786 4186
+FUNC 4594 33 0 _init_pointers
+4594 3 809 4186
+4597 7 810 4186
+459e 6 812 4186
+45a4 6 813 4186
+45aa 6 814 4186
+45b0 6 815 4186
+45b6 6 816 4186
+45bc a 817 4186
+45c6 1 818 4186
+FUNC 1bc8 3 0 _initterm_e
+FUNC 1de4 e 0 _initterm_e
+FUNC 22bc 2 0 _initterm_e
+FUNC 2944 10 0 _initterm_e
+FUNC 3dd4 3 0 _initterm_e
+FUNC 3e80 f 0 _initterm_e
+FUNC 6568 10 0 _initterm_e
+2944 6 908 4186
+1de4 e 917 4186
+294a a 917 4186
+6568 10 922 4186
+22bc 2 923 4186
+3dd4 3 924 4186
+1bc8 1 917 4186
+3e80 f 917 4186
+1bc9 2 928 4186
+FUNC 1d44 c 0 _cinit
+FUNC 2470 10 0 _cinit
+FUNC 2558 27 0 _cinit
+FUNC 2660 14 0 _cinit
+FUNC 269c 18 0 _cinit
+FUNC 27a4 2 0 _cinit
+FUNC 34ec 24 0 _cinit
+FUNC 48dc 10 0 _cinit
+FUNC 4bf8 2 0 _cinit
+FUNC 4dd4 18 0 _cinit
+FUNC 5b74 a 0 _cinit
+FUNC 69e4 18 0 _cinit
+FUNC 6f60 2 0 _cinit
+69e4 5 258 4186
+4dd4 18 268 4186
+69e9 13 268 4186
+5b74 a 270 4186
+34ec 5 272 4186
+34f1 11 278 4186
+3502 2 279 4186
+3504 c 280 4186
+2558 c 283 4186
+2470 10 288 4186
+2564 1b 288 4186
+27a4 2 288 4186
+48dc 10 288 4186
+2660 14 301 4186
+269c 18 301 4186
+1d44 c 303 4186
+4bf8 2 307 4186
+6f60 2 308 4186
+FUNC 35a7 140 0 static void doexit(int, int, int)
+35a7 c 489 4186
+35b3 8 507 4186
+35bb 4 508 4186
+35bf f 510 4186
+35ce 5 511 4186
+35d3 8 514 4186
+35db a 516 4186
+35e5 13 532 4186
+35f8 4 533 4186
+35fc d 534 4186
+3609 3 538 4186
+360c 3 539 4186
+360f 11 547 4186
+3620 2 550 4186
+3622 4 552 4186
+3626 6 559 4186
+362c 7 562 4186
+3633 2 565 4186
+3635 a 567 4186
+363f 8 568 4186
+3647 a 570 4186
+3651 6 573 4186
+3657 8 574 4186
+365f 5 576 4186
+3664 21 582 4186
+3685 21 590 4186
+36a6 c 608 4186
+36b2 6 613 4186
+36b8 a 617 4186
+36c2 8 619 4186
+36ca 8 621 4186
+36d2 6 609 4186
+36d8 9 610 4186
+36e1 6 622 4186
+FUNC 6d68 16 0 exit
+6d68 5 392 4186
+6d6d f 393 4186
+6d7c 2 394 4186
+FUNC 5464 16 0 _exit
+5464 5 400 4186
+5469 f 401 4186
+5478 2 402 4186
+FUNC 1df4 f 0 _cexit
+1df4 0 407 4186
+1df4 e 408 4186
+1e02 1 409 4186
+FUNC 5544 f 0 _c_exit
+5544 0 414 4186
+5544 e 415 4186
+5552 1 416 4186
+FUNC 3218 1e 0 _amsg_exit
+3218 5 439 4186
+321d 5 440 4186
+3222 9 441 4186
+322b b 442 4186
+FUNC 1b78 4 0 _GET_RTERRMSG
+FUNC 2888 9 0 _GET_RTERRMSG
+FUNC 44d0 16 0 _GET_RTERRMSG
+FUNC 4858 10 0 _GET_RTERRMSG
+FUNC 6410 7 0 _GET_RTERRMSG
+6410 5 165 4012
+6415 2 168 4012
+44d0 16 169 4012
+4858 10 168 4012
+1b78 2 172 4012
+1b7a 2 173 4012
+2888 7 170 4012
+288f 2 173 4012
+FUNC 11c4 12 0 _NMSG_WRITE
+FUNC 2028 16 0 _NMSG_WRITE
+FUNC 20c0 12 0 _NMSG_WRITE
+FUNC 2460 f 0 _NMSG_WRITE
+FUNC 2648 f 0 _NMSG_WRITE
+FUNC 26c4 1a 0 _NMSG_WRITE
+FUNC 349c 27 0 _NMSG_WRITE
+FUNC 43a4 1e 0 _NMSG_WRITE
+FUNC 4428 a 0 _NMSG_WRITE
+FUNC 47c0 2b 0 _NMSG_WRITE
+FUNC 49a4 18 0 _NMSG_WRITE
+FUNC 4a64 1c 0 _NMSG_WRITE
+FUNC 4d50 17 0 _NMSG_WRITE
+FUNC 4e7c 39 0 _NMSG_WRITE
+FUNC 4f5c 2 0 _NMSG_WRITE
+FUNC 5810 25 0 _NMSG_WRITE
+FUNC 59cc 16 0 _NMSG_WRITE
+FUNC 5d18 34 0 _NMSG_WRITE
+FUNC 64e8 5 0 _NMSG_WRITE
+FUNC 6648 7 0 _NMSG_WRITE
+FUNC 6678 22 0 _NMSG_WRITE
+FUNC 6894 11 0 _NMSG_WRITE
+FUNC 70ac 18 0 _NMSG_WRITE
+4e7c 1b 196 4012
+4e97 8 197 4012
+4e9f 16 199 4012
+11c4 12 226 4012
+2028 16 226 4012
+59cc 16 226 4012
+6894 11 263 4012
+5810 25 272 4012
+47c0 2b 275 4012
+4a64 1c 276 4012
+64e8 5 276 4012
+6648 7 276 4012
+4d50 17 279 4012
+5d18 d 281 4012
+5d25 27 282 4012
+6678 22 285 4012
+43a4 1e 286 4012
+49a4 18 290 4012
+4428 a 272 4012
+70ac a 228 4012
+2460 f 229 4012
+70b6 e 229 4012
+4f5c 2 244 4012
+26c4 a 246 4012
+26ce 10 248 4012
+20c0 12 244 4012
+349c 27 260 4012
+2648 f 294 4012
+FUNC 1984 1 0 _FF_MSGBANNER
+FUNC 2388 16 0 _FF_MSGBANNER
+FUNC 4ab4 16 0 _FF_MSGBANNER
+FUNC 4be0 17 0 _FF_MSGBANNER
+FUNC 5ac8 13 0 _FF_MSGBANNER
+4be0 0 134 4012
+2388 16 138 4012
+4be0 17 138 4012
+5ac8 13 138 4012
+4ab4 a 140 4012
+4abe c 141 4012
+1984 1 143 4012
+FUNC 1490 10 0 _XcptFilter
+FUNC 1540 3 0 _XcptFilter
+FUNC 1720 14 0 _XcptFilter
+FUNC 174c 1b 0 _XcptFilter
+FUNC 19d8 2 0 _XcptFilter
+FUNC 2054 3 0 _XcptFilter
+FUNC 2218 9 0 _XcptFilter
+FUNC 2440 c 0 _XcptFilter
+FUNC 2870 e 0 _XcptFilter
+FUNC 2928 c 0 _XcptFilter
+FUNC 2ae8 11 0 _XcptFilter
+FUNC 2d78 10 0 _XcptFilter
+FUNC 356c f 0 _XcptFilter
+FUNC 38a8 10 0 _XcptFilter
+FUNC 3ed0 10 0 _XcptFilter
+FUNC 3fa4 10 0 _XcptFilter
+FUNC 44e8 7 0 _XcptFilter
+FUNC 4810 17 0 _XcptFilter
+FUNC 4cc8 c 0 _XcptFilter
+FUNC 4f50 7 0 _XcptFilter
+FUNC 5564 e 0 _XcptFilter
+FUNC 56d4 10 0 _XcptFilter
+FUNC 57a4 e 0 _XcptFilter
+FUNC 59f8 16 0 _XcptFilter
+FUNC 5bbc e 0 _XcptFilter
+FUNC 5ca4 10 0 _XcptFilter
+FUNC 5d60 c 0 _XcptFilter
+FUNC 5e38 18 0 _XcptFilter
+FUNC 5e60 10 0 _XcptFilter
+FUNC 6090 c 0 _XcptFilter
+FUNC 61f0 7 0 _XcptFilter
+FUNC 6228 c 0 _XcptFilter
+FUNC 648c c 0 _XcptFilter
+FUNC 64dc 5 0 _XcptFilter
+FUNC 650c 1a 0 _XcptFilter
+FUNC 66a4 c 0 _XcptFilter
+FUNC 68e4 10 0 _XcptFilter
+FUNC 6ee8 3 0 _XcptFilter
+FUNC 6f98 c 0 _XcptFilter
+650c 6 195 2369
+6512 7 202 2369
+6519 d 203 2369
+1720 14 208 2369
+19d8 2 208 2369
+2218 9 208 2369
+2870 e 208 2369
+4810 17 208 2369
+57a4 e 208 2369
+5bbc e 210 2369
+5e60 3 216 2369
+5e63 d 223 2369
+4f50 7 224 2369
+356c f 232 2369
+6f98 4 237 2369
+6f9c 8 238 2369
+5564 3 244 2369
+5567 b 248 2369
+174c a 263 2369
+1756 11 272 2369
+6ee8 3 280 2369
+5e38 18 283 2369
+59f8 16 310 2369
+6090 c 312 2369
+56d4 10 314 2369
+2440 c 316 2369
+5ca4 10 318 2369
+5d60 c 320 2369
+3fa4 10 322 2369
+648c c 324 2369
+68e4 10 326 2369
+4cc8 c 328 2369
+2ae8 10 330 2369
+2928 c 332 2369
+2d78 10 334 2369
+6228 c 336 2369
+1490 10 338 2369
+66a4 c 340 2369
+3ed0 10 342 2369
+61f0 7 344 2369
+38a8 8 353 2369
+38b0 3 358 2369
+38b3 5 360 2369
+44e8 4 365 2369
+44ec 3 366 2369
+64dc 1 366 2369
+64dd 4 372 2369
+1540 3 374 2369
+2054 1 374 2369
+2af8 1 374 2369
+2055 2 376 2369
+FUNC 4139 dc 0 _setenvp
+4139 0 77 3838
+4139 9 85 3838
+4142 6 86 3838
+4148 9 91 3838
+4151 4 98 3838
+4155 8 99 3838
+415d 4 110 3838
+4161 1 111 3838
+4162 b 112 3838
+416d 6 108 3838
+4173 15 117 3838
+4188 2 118 3838
+418a 9 121 3838
+4193 6 123 3838
+4199 9 125 3838
+41a2 10 127 3838
+41b2 f 133 3838
+41c1 3 134 3838
+41c4 7 121 3838
+41cb b 138 3838
+41d6 7 139 3838
+41dd 3 142 3838
+41e0 a 149 3838
+41ea 2 152 3838
+41ec 2 138 3838
+41ee 3 153 3838
+41f1 b 129 3838
+41fc 7 130 3838
+4203 5 131 3838
+4208 d 133 3838
+FUNC 1018 8 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 19b4 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 19f4 2 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 1dd0 14 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 1fac 28 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2058 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 209c 9 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2364 1a 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 253c 4 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2598 9 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 25cc 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2718 b 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2730 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 28a8 a 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 28fc 2 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 290c 14 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2b34 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2bfc 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2d88 7 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3730 d 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 377c 2 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 37b0 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3c38 24 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3c84 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3db8 1b 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3e90 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 3efc 13 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4110 12 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 42dc f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 42f0 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4518 6 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4610 7 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4684 11 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 46f8 13 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4848 a 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4994 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 49bc e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4aac 1 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4cb8 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4ed8 24 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4f10 3 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 4f30 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 501c 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 5518 3 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 569c 3 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 57bc 12 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 5a50 10 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 5cc0 14 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 5e84 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 6448 f 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 6530 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 66b0 13 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 6970 4 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 6aec 7 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 6f30 e 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+1fac 6 221 3891
+1fb2 9 229 3891
+1fbb 2 232 3891
+1fbd 17 234 3891
+2598 9 234 3891
+4f10 3 253 3891
+5e84 f 255 3891
+66b0 5 257 3891
+66b5 9 258 3891
+66be 5 259 3891
+25cc 2 261 3891
+25ce e 262 3891
+1018 8 263 3891
+3db8 2 265 3891
+3dba 19 267 3891
+57bc 2 268 3891
+57be 10 269 3891
+4848 a 270 3891
+4aac 1 271 3891
+2b34 f 275 3891
+42f0 10 275 3891
+4cb8 f 275 3891
+4ed8 14 275 3891
+2730 e 280 3891
+291c 4 281 3891
+253c 4 284 3891
+5cc0 e 289 3891
+37b0 10 290 3891
+49bc e 290 3891
+4610 7 291 3891
+6aec 1 278 3891
+6aed 6 279 3891
+2370 e 294 3891
+3c84 10 298 3891
+209c 9 299 3891
+19f4 2 300 3891
+2718 3 314 3891
+271b 8 318 3891
+28fc 1 321 3891
+28fd 1 322 3891
+4994 f 319 3891
+6448 f 324 3891
+42dc f 327 3891
+4684 11 328 3891
+4eec 10 328 3891
+2914 2 329 3891
+2916 6 330 3891
+3730 d 332 3891
+377c 2 335 3891
+2058 1 339 3891
+4f30 e 339 3891
+2059 e 340 3891
+5cd0 4 341 3891
+501c 10 342 3891
+290c 3 341 3891
+2bfc 10 346 3891
+3c4c 10 346 3891
+3e90 e 346 3891
+6f30 e 346 3891
+19b4 e 351 3891
+3efc 13 353 3891
+4110 12 353 3891
+3c38 b 354 3891
+3c43 2 355 3891
+5a50 a 357 3891
+5a5a 6 358 3891
+1dd0 14 359 3891
+569c 1 360 3891
+569d 2 361 3891
+2364 5 364 3891
+4518 1 366 3891
+4519 5 375 3891
+6530 e 379 3891
+2d88 7 380 3891
+28a8 2 381 3891
+28aa 8 382 3891
+46f8 13 385 3891
+5518 3 386 3891
+6970 2 387 3891
+6972 2 388 3891
+FUNC 1ad8 3 0 _setargv
+FUNC 2008 1f 0 _setargv
+FUNC 22dc 16 0 _setargv
+FUNC 2320 5 0 _setargv
+FUNC 2934 3 0 _setargv
+FUNC 33cc 17 0 _setargv
+FUNC 4254 30 0 _setargv
+FUNC 432c 5 0 _setargv
+FUNC 4ad0 28 0 _setargv
+FUNC 4b8c 2c 0 _setargv
+FUNC 4c4c 12 0 _setargv
+FUNC 6960 10 0 _setargv
+2008 9 88 3891
+2011 16 97 3891
+432c 5 98 3891
+4254 18 104 3891
+2934 3 120 3891
+426c 18 120 3891
+6960 10 120 3891
+4ad0 11 127 3891
+4ae1 17 134 3891
+4c4c 12 134 3891
+22dc a 138 3891
+22e6 c 140 3891
+33cc 9 142 3891
+33d5 2 143 3891
+33d7 c 144 3891
+4b8c 13 151 3891
+4b9f c 156 3891
+4bab 6 160 3891
+4bb1 7 175 3891
+1ad8 3 136 3891
+2320 3 136 3891
+2323 2 176 3891
+FUNC 14f8 30 0 __crtGetEnvironmentStringsA
+FUNC 23d0 10 0 __crtGetEnvironmentStringsA
+FUNC 293c 1 0 __crtGetEnvironmentStringsA
+FUNC 2bbc e 0 __crtGetEnvironmentStringsA
+FUNC 3524 c 0 __crtGetEnvironmentStringsA
+FUNC 3548 f 0 __crtGetEnvironmentStringsA
+FUNC 3d10 18 0 __crtGetEnvironmentStringsA
+FUNC 3df0 8 0 __crtGetEnvironmentStringsA
+FUNC 3dfc 1c 0 __crtGetEnvironmentStringsA
+FUNC 3fb4 22 0 __crtGetEnvironmentStringsA
+FUNC 436c 12 0 __crtGetEnvironmentStringsA
+FUNC 68d4 9 0 __crtGetEnvironmentStringsA
+3fb4 a 40 943
+3fbe 18 49 943
+3df0 8 50 943
+3548 f 54 943
+2bbc e 55 943
+14f8 1 56 943
+436c 12 56 943
+14f9 1b 70 943
+1514 e 74 943
+3d10 18 74 943
+3dfc 1c 88 943
+3524 9 90 943
+352d 3 91 943
+23d0 7 94 943
+23d7 9 95 943
+68d4 7 76 943
+1524 2 77 943
+293c 1 77 943
+68db 2 77 943
+1526 2 96 943
+FUNC 1008 b 0 _ioinit
+FUNC 1258 f 0 _ioinit
+FUNC 12c8 e 0 _ioinit
+FUNC 1548 33 0 _ioinit
+FUNC 1708 18 0 _ioinit
+FUNC 17a4 10 0 _ioinit
+FUNC 197c 2 0 _ioinit
+FUNC 1988 3 0 _ioinit
+FUNC 22f8 1c 0 _ioinit
+FUNC 23e0 4c 0 _ioinit
+FUNC 244c 14 0 _ioinit
+FUNC 24b8 8 0 _ioinit
+FUNC 24e8 1c 0 _ioinit
+FUNC 26e0 1c 0 _ioinit
+FUNC 2ad0 10 0 _ioinit
+FUNC 2b6c f 0 _ioinit
+FUNC 2bf0 5 0 _ioinit
+FUNC 2d54 a 0 _ioinit
+FUNC 2db0 16 0 _ioinit
+FUNC 2dcc 8 0 _ioinit
+FUNC 31a8 4 0 _ioinit
+FUNC 31e0 16 0 _ioinit
+FUNC 3260 f 0 _ioinit
+FUNC 334c 14 0 _ioinit
+FUNC 33ac 12 0 _ioinit
+FUNC 3cb0 3 0 _ioinit
+FUNC 3d28 6 0 _ioinit
+FUNC 3e24 2 0 _ioinit
+FUNC 3e34 20 0 _ioinit
+FUNC 3e5c 1f 0 _ioinit
+FUNC 42a4 f 0 _ioinit
+FUNC 4380 f 0 _ioinit
+FUNC 4434 12 0 _ioinit
+FUNC 4618 6 0 _ioinit
+FUNC 47ec 14 0 _ioinit
+FUNC 4920 a 0 _ioinit
+FUNC 5c70 30 0 _ioinit
+FUNC 5d6c 8 0 _ioinit
+FUNC 617c 18 0 _ioinit
+FUNC 6248 a 0 _ioinit
+FUNC 636c e 0 _ioinit
+FUNC 63f0 14 0 _ioinit
+FUNC 6a74 a 0 _ioinit
+FUNC 6ba0 3f 0 _ioinit
+FUNC 6c4c 14 0 _ioinit
+FUNC 6c84 8 0 _ioinit
+FUNC 6f90 3 0 _ioinit
+5c70 9 111 792
+5c79 a 122 792
+5c83 1d 129 792
+6c84 8 131 792
+3e5c 1f 137 792
+6f90 3 134 792
+23f4 a 139 792
+23fe 3 141 792
+2401 6 143 792
+2407 4 145 792
+240b 3 146 792
+23e0 2 147 792
+240e 1e 147 792
+23e2 f 155 792
+2ad0 10 155 792
+3e34 2 160 792
+3e36 6 166 792
+3e3c 2 167 792
+3e24 2 173 792
+3e3e 16 173 792
+2bf0 5 179 792
+33ac 12 179 792
+1708 18 185 792
+26e0 7 199 792
+26e7 15 201 792
+1010 3 198 792
+1548 4 203 792
+154c 4 205 792
+1550 4 206 792
+1554 10 209 792
+1564 17 210 792
+47ec 14 179 792
+3d28 6 280 792
+4618 6 191 792
+17a4 10 217 792
+1258 f 230 792
+244c 14 230 792
+3260 f 230 792
+334c 14 230 792
+63f0 14 230 792
+6ba0 14 232 792
+6bb4 7 233 792
+6bbb 8 234 792
+6bc3 1c 237 792
+3cb0 3 239 792
+2db0 16 217 792
+1008 2 249 792
+22f8 b 251 792
+2303 11 254 792
+42a4 f 254 792
+6a74 a 302 792
+4434 4 258 792
+24b8 8 262 792
+4438 e 262 792
+4920 a 262 792
+617c 18 262 792
+636c e 262 792
+6c4c 14 262 792
+31e0 16 273 792
+6248 a 274 792
+2b6c f 275 792
+31a8 4 276 792
+24e8 1c 280 792
+5d6c 3 282 792
+5d6f 5 284 792
+2d54 4 293 792
+2d58 6 294 792
+4380 f 249 792
+12c8 c 309 792
+12d4 2 311 792
+197c 2 311 792
+1988 1 311 792
+1989 2 312 792
+2dcc 8 281 792
+FUNC 12ac 3 0 _RTC_Initialize
+FUNC 2d94 10 0 _RTC_Initialize
+FUNC 447c 10 0 _RTC_Initialize
+FUNC 5754 1e 0 _RTC_Initialize
+FUNC 6958 2 0 _RTC_Initialize
+FUNC 2480 3 0 _RTC_Terminate
+FUNC 3cf8 10 0 _RTC_Terminate
+FUNC 3e2c 2 0 _RTC_Terminate
+FUNC 57e0 1e 0 _RTC_Terminate
+FUNC 5c60 10 0 _RTC_Terminate
+FUNC 1474 9 0 _encoded_null
+1474 0 79 3774
+1474 8 80 3774
+147c 1 81 3774
+FUNC 2bb0 9 4 __crtTlsAlloc
+2bb0 0 95 3774
+2bb0 6 96 3774
+2bb6 3 97 3774
+FUNC 3240 1f 0 __set_flsgetvalue
+FUNC 338c 1b 0 __set_flsgetvalue
+FUNC 6444 4 0 __set_flsgetvalue
+3240 3 143 3774
+3243 e 145 3774
+3251 e 146 3774
+338c e 148 3774
+339a d 149 3774
+6444 3 151 3774
+6447 1 155 3774
+FUNC 2068 16 0 _mtterm
+FUNC 2b9c 14 0 _mtterm
+FUNC 48c8 14 0 _mtterm
+FUNC 5b84 5 0 _mtterm
+FUNC 5e0c e 0 _mtterm
+48c8 0 329 3774
+48c8 14 336 3774
+2068 f 337 3774
+2077 7 338 3774
+2b9c 14 342 3774
+5e0c 7 343 3774
+5e13 7 344 3774
+5b84 5 352 3774
+FUNC 10ca b4 0 _initptd
+10ca c 379 3774
+10d6 b 381 3774
+10e1 a 384 3774
+10eb 4 385 3774
+10ef 6 386 3774
+10f5 3 391 3774
+10f8 7 395 3774
+10ff 7 396 3774
+1106 7 397 3774
+110d 8 399 3774
+1115 4 400 3774
+1119 9 402 3774
+1122 c 404 3774
+112e 8 411 3774
+1136 3 412 3774
+1139 6 413 3774
+113f 4 421 3774
+1143 8 422 3774
+114b 9 423 3774
+1154 c 425 3774
+1160 6 428 3774
+1166 6 404 3774
+116c 9 406 3774
+1175 9 426 3774
+FUNC 2954 28 0 _getptd_noexit
+FUNC 4520 1c 0 _getptd_noexit
+FUNC 45cc 1e 0 _getptd_noexit
+FUNC 48ec 23 0 _getptd_noexit
+FUNC 4b28 c 0 _getptd_noexit
+FUNC 616c 9 0 _getptd_noexit
+2954 4 448 3774
+2958 6 452 3774
+295e 1e 460 3774
+45cc 1e 472 3774
+48ec 23 475 3774
+4520 a 481 3774
+452a 6 483 3774
+4530 6 484 3774
+4536 6 486 3774
+616c 7 492 3774
+6173 2 493 3774
+4b28 8 498 3774
+4b30 3 500 3774
+4b33 1 501 3774
+FUNC 12c0 7 0 _getptd
+FUNC 4314 18 0 _getptd
+FUNC 44f4 4 0 _getptd
+FUNC 4f9c 1 0 _getptd
+4314 3 522 3774
+4317 7 523 3774
+431e e 524 3774
+12c0 7 525 3774
+4f9c 1 525 3774
+44f4 3 527 3774
+44f7 1 528 3774
+FUNC 1330 12f 4 _freefls
+1330 c 556 3774
+133c b 567 3774
+1347 7 568 3774
+134e 7 569 3774
+1355 7 571 3774
+135c 7 572 3774
+1363 7 574 3774
+136a 7 575 3774
+1371 7 577 3774
+1378 7 578 3774
+137f 7 580 3774
+1386 7 581 3774
+138d 7 583 3774
+1394 7 584 3774
+139b 7 586 3774
+13a2 7 587 3774
+13a9 a 589 3774
+13b3 7 590 3774
+13ba 8 592 3774
+13c2 4 593 3774
+13c6 1a 596 3774
+13e0 7 597 3774
+13e7 c 599 3774
+13f3 8 603 3774
+13fb 7 605 3774
+1402 7 606 3774
+1409 7 608 3774
+1410 15 611 3774
+1425 7 612 3774
+142c c 615 3774
+1438 7 619 3774
+143f 8 622 3774
+1447 3 599 3774
+144a 9 600 3774
+1453 3 615 3774
+1456 9 616 3774
+FUNC 1608 54 0 _mtinit
+FUNC 2228 5 0 _mtinit
+FUNC 3768 13 0 _mtinit
+FUNC 3880 2 0 _mtinit
+FUNC 3ba8 3 0 _mtinit
+FUNC 3cb8 1e 0 _mtinit
+FUNC 3d90 28 0 _mtinit
+FUNC 45ec 9 0 _mtinit
+FUNC 47a4 19 0 _mtinit
+FUNC 4c18 1f 0 _mtinit
+FUNC 547c 52 0 _mtinit
+FUNC 54f8 16 0 _mtinit
+FUNC 58b0 24 0 _mtinit
+FUNC 597c 33 0 _mtinit
+FUNC 5c28 e 0 _mtinit
+FUNC 6458 1e 0 _mtinit
+6458 3 203 3774
+645b d 211 3774
+6468 e 212 3774
+45ec 5 213 3774
+45f1 3 214 3774
+1608 1 300 3774
+45f4 1 300 3774
+1609 e 218 3774
+1617 d 221 3774
+1624 d 224 3774
+1631 d 227 3774
+163e 1e 228 3774
+3768 13 228 3774
+599c 13 228 3774
+5c28 e 228 3774
+58b0 a 231 3774
+58ba 1a 235 3774
+47a4 19 244 3774
+54f8 16 244 3774
+547c 5 249 3774
+5481 e 256 3774
+548f d 257 3774
+549c d 258 3774
+54a9 12 259 3774
+54bb 7 266 3774
+54c2 c 268 3774
+3d90 1d 274 3774
+3dad b 276 3774
+3cb8 1e 284 3774
+4c18 1f 284 3774
+597c a 294 3774
+5986 6 296 3774
+598c 6 297 3774
+5992 9 299 3774
+2228 5 286 3774
+3880 2 245 3774
+3ba8 2 245 3774
+3baa 1 300 3774
+FUNC 472c 1e 0 _heap_init
+472c 0 40 453
+472c 1d 44 453
+4749 1 60 453
+FUNC 503b 45 0 _SEH_prolog4
+FUNC 5080 14 0 _SEH_epilog4
+FUNC 10b0 1a 0 _except_handler4
+FUNC 1180 c 0 _except_handler4
+FUNC 1528 17 0 _except_handler4
+FUNC 1734 10 0 _except_handler4
+FUNC 1768 2c 0 _except_handler4
+FUNC 210c 10 0 _except_handler4
+FUNC 267c 13 0 _except_handler4
+FUNC 2bd0 20 0 _except_handler4
+FUNC 3270 a 0 _except_handler4
+FUNC 3754 13 0 _except_handler4
+FUNC 3b48 36 0 _except_handler4
+FUNC 3d54 3 0 _except_handler4
+FUNC 3f88 c 0 _except_handler4
+FUNC 42b4 d 0 _except_handler4
+FUNC 4f40 10 0 _except_handler4
+FUNC 5a60 1c 0 _except_handler4
+FUNC 5a84 22 0 _except_handler4
+FUNC 5d88 d 0 _except_handler4
+FUNC 5e70 f 0 _except_handler4
+FUNC 5f50 12 0 _except_handler4
+FUNC 5fcc 12 0 _except_handler4
+FUNC 61bc 1d 0 _except_handler4
+FUNC 6670 3 0 _except_handler4
+FUNC 6a80 14 0 _except_handler4
+FUNC 6b0c 20 0 _except_handler4
+FUNC 6cd8 10 0 _except_handler4
+FUNC 2244 2f 0 __security_init_cookie
+FUNC 2740 48 0 __security_init_cookie
+FUNC 33e4 d 0 __security_init_cookie
+FUNC 3fd8 b 0 __security_init_cookie
+FUNC 4390 f 0 __security_init_cookie
+FUNC 4d68 c 0 __security_init_cookie
+FUNC 5588 e 0 __security_init_cookie
+FUNC 61a4 4 0 __security_init_cookie
+FUNC 6610 c 0 __security_init_cookie
+2244 8 97 1455
+224c 27 114 1455
+5588 e 114 1455
+4d68 7 116 1455
+2740 1 117 1455
+4d6f 5 117 1455
+2741 a 127 1455
+274b 6 132 1455
+2751 8 135 1455
+2759 8 136 1455
+2761 8 137 1455
+2769 a 139 1455
+2773 8 144 1455
+277b d 161 1455
+3fd8 b 163 1455
+33e4 d 166 1455
+6610 c 168 1455
+4390 6 172 1455
+4396 9 173 1455
+61a4 2 173 1455
+61a6 2 175 1455
+FUNC 4570 f 0 _initp_misc_invarg
+4570 5 64 3583
+4575 8 65 3583
+457d 2 66 3583
+FUNC 3a1f 129 0 _call_reportfault
+3a1f 16 164 3583
+3a35 9 166 3583
+3a3e 7 167 3583
+3a45 17 170 3583
+3a5c 1b 172 3583
+3a77 6 179 3583
+3a7d 6 180 3583
+3a83 6 181 3583
+3a89 6 182 3583
+3a8f 6 183 3583
+3a95 6 184 3583
+3a9b 7 185 3583
+3aa2 7 186 3583
+3aa9 7 187 3583
+3ab0 7 188 3583
+3ab7 7 189 3583
+3abe 7 190 3583
+3ac5 1 191 3583
+3ac6 6 192 3583
+3acc 3 198 3583
+3acf 19 199 3583
+3ae8 9 201 3583
+3af1 9 240 3583
+3afa 9 241 3583
+3b03 6 242 3583
+3b09 6 245 3583
+3b0f a 248 3583
+3b19 d 250 3583
+3b26 d 254 3583
+3b33 7 255 3583
+3b3a e 257 3583
+FUNC 5c38 25 0 _invoke_watson
+5c38 3 146 3583
+5c3b 12 155 3583
+5c4d f 156 3583
+5c5c 1 157 3583
+FUNC 6922 2d 0 _invalid_parameter
+6922 5 96 3583
+6927 c 103 3583
+6933 4 104 3583
+6937 1 111 3583
+6938 2 106 3583
+693a 15 110 3583
+FUNC 6f50 10 0 _invalid_parameter_noinfo
+6f50 0 120 3583
+6f50 f 121 3583
+6f5f 1 122 3583
+FUNC 2130 b 0 _mtinitlocks
+FUNC 2dec 14 0 _mtinitlocks
+FUNC 4358 3 0 _mtinitlocks
+FUNC 453c 10 0 _mtinitlocks
+FUNC 479c 3 0 _mtinitlocks
+FUNC 4b48 10 0 _mtinitlocks
+FUNC 55a8 27 0 _mtinitlocks
+2130 4 136 3954
+2134 7 143 3954
+2dec 14 144 3954
+55a8 9 145 3954
+55b1 1e 147 3954
+4b48 10 143 3954
+479c 3 156 3954
+4358 3 157 3954
+453c 10 150 3954
+FUNC 20ec 14 0 _mtdeletelocks
+FUNC 2298 10 0 _mtdeletelocks
+FUNC 31d4 6 0 _mtdeletelocks
+FUNC 3744 10 0 _mtdeletelocks
+FUNC 4350 3 0 _mtdeletelocks
+FUNC 46e4 14 0 _mtdeletelocks
+FUNC 4a54 10 0 _mtdeletelocks
+FUNC 5554 10 0 _mtdeletelocks
+FUNC 5ec4 3 0 _mtdeletelocks
+FUNC 63c0 d 0 _mtdeletelocks
+FUNC 6b90 10 0 _mtdeletelocks
+2298 3 187 3954
+229b d 193 3954
+5554 10 195 3954
+6b90 10 195 3954
+63c0 3 199 3954
+63c3 6 205 3954
+63c9 4 206 3954
+20ec 14 193 3954
+31d4 6 214 3954
+3744 10 216 3954
+4a54 10 216 3954
+4350 3 220 3954
+46e4 14 214 3954
+5ec4 3 223 3954
+FUNC 4218 17 0 _unlock
+4218 5 370 3954
+421d 10 374 3954
+422d 2 375 3954
+FUNC 3ff7 c2 0 _mtinitlocknum
+3ff7 c 258 3954
+4003 6 260 3954
+4009 a 268 3954
+4013 5 269 3954
+4018 7 270 3954
+401f c 271 3954
+402b e 275 3954
+4039 4 276 3954
+403d e 278 3954
+404b b 279 3954
+4056 4 280 3954
+405a 8 283 3954
+4062 3 284 3954
+4065 4 286 3954
+4069 10 287 3954
+4079 7 288 3954
+4080 b 289 3954
+408b 3 290 3954
+408e 2 291 3954
+4090 2 292 3954
+4092 2 295 3954
+4094 7 296 3954
+409b c 299 3954
+40a7 3 303 3954
+40aa 6 304 3954
+40b0 9 300 3954
+FUNC 118c b 0 _lock
+FUNC 1af0 14 0 _lock
+FUNC 3718 7 0 _lock
+FUNC 44a0 1f 0 _lock
+FUNC 5bb4 1 0 _lock
+44a0 5 332 3954
+44a5 1a 337 3954
+1af0 14 339 3954
+3718 7 340 3954
+5bb4 1 340 3954
+118c 9 347 3954
+1195 2 348 3954
+FUNC 14ac 10 0 strcpy_s
+FUNC 1990 c 0 strcpy_s
+FUNC 1da4 c 0 strcpy_s
+FUNC 2580 18 0 strcpy_s
+FUNC 2e00 4 0 strcpy_s
+FUNC 4674 10 0 strcpy_s
+FUNC 470c 4 0 strcpy_s
+FUNC 4794 2 0 strcpy_s
+FUNC 4d40 e 0 strcpy_s
+FUNC 59b8 14 0 strcpy_s
+FUNC 6158 14 0 strcpy_s
+FUNC 6a94 7 0 strcpy_s
+FUNC 6c8c a 0 strcpy_s
+2580 5 13 2523
+1da4 c 18 2523
+2585 13 18 2523
+4674 10 18 2523
+6c8c a 18 2523
+14ac 10 19 2523
+6a94 7 19 2523
+1990 c 23 2523
+2e00 4 23 2523
+6158 14 23 2523
+4d40 e 27 2523
+59b8 3 29 2523
+59bb 11 30 2523
+470c 2 33 2523
+4794 2 33 2523
+470e 2 34 2523
+FUNC 37f0 8b 0 strlen
+37f0 0 54 2796
+37f0 4 63 2796
+37f4 6 64 2796
+37fa 2 65 2796
+37fc 2 69 2796
+37fe 3 70 2796
+3801 2 71 2796
+3803 2 72 2796
+3805 6 73 2796
+380b 2 74 2796
+380d 13 76 2796
+3820 2 81 2796
+3822 5 82 2796
+3827 2 83 2796
+3829 3 84 2796
+382c 2 85 2796
+382e 3 86 2796
+3831 5 87 2796
+3836 2 88 2796
+3838 3 90 2796
+383b 2 91 2796
+383d 2 92 2796
+383f 2 93 2796
+3841 2 94 2796
+3843 5 95 2796
+3848 2 96 2796
+384a 5 97 2796
+384f 2 98 2796
+3851 2 99 2796
+3853 3 103 2796
+3856 4 104 2796
+385a 2 105 2796
+385c 1 106 2796
+385d 3 108 2796
+3860 4 109 2796
+3864 2 110 2796
+3866 1 111 2796
+3867 3 113 2796
+386a 4 114 2796
+386e 2 115 2796
+3870 1 116 2796
+3871 3 118 2796
+3874 4 119 2796
+3878 2 120 2796
+387a 1 121 2796
+FUNC 14a0 7 0 malloc
+FUNC 22f4 3 0 malloc
+FUNC 2838 e 0 malloc
+FUNC 28e4 7 0 malloc
+FUNC 2da4 a 0 malloc
+FUNC 34d0 8 0 malloc
+FUNC 3d5c 16 0 malloc
+FUNC 4580 13 0 malloc
+FUNC 4a4c 3 0 malloc
+FUNC 4cf8 14 0 malloc
+FUNC 4eb8 1f 0 malloc
+FUNC 5a48 6 0 malloc
+FUNC 5b20 18 0 malloc
+FUNC 5b8c 14 0 malloc
+FUNC 5df8 14 0 malloc
+FUNC 60ec 2 0 malloc
+FUNC 65a0 2 0 malloc
+5b20 6 81 504
+5b26 12 85 504
+60ec 2 85 504
+2838 e 89 504
+34d0 8 89 504
+3d5c 16 89 504
+4580 13 89 504
+4a4c 3 89 504
+4eb8 11 89 504
+65a0 2 89 504
+4ec9 e 94 504
+5df8 14 98 504
+4cf8 14 105 504
+5a48 6 109 504
+14a0 7 100 504
+28e4 7 119 504
+2da4 a 121 504
+5b8c 7 111 504
+5b93 b 112 504
+22f4 1 113 504
+5b9e 2 113 504
+22f5 2 122 504
+FUNC 297c 90 0 _local_unwind4
+FUNC 2a0c 46 0 static void _unwind_handler4()
+FUNC 2a52 1c 4 _seh_longjmp_unwind4
+FUNC 2a6e 17 0 _EH4_CallFilterFunc
+FUNC 2a85 19 0 _EH4_TransferToHandler
+FUNC 2a9e 19 0 _EH4_GlobalUnwind2
+FUNC 2ab7 17 8 _EH4_LocalUnwind
+FUNC 1480 5 0 _get_errno_from_oserr
+FUNC 23bc 13 0 _get_errno_from_oserr
+FUNC 3510 12 0 _get_errno_from_oserr
+FUNC 5ec8 10 0 _get_errno_from_oserr
+FUNC 5f78 a 0 _get_errno_from_oserr
+FUNC 6ab4 1f 0 _get_errno_from_oserr
+5f78 5 119 224
+5f7d 5 123 224
+23bc 13 124 224
+5ec8 10 123 224
+3510 12 133 224
+1480 3 134 224
+1483 2 139 224
+6ab4 7 125 224
+6abb 2 139 224
+6ac0 11 135 224
+6ad1 2 139 224
+FUNC 5774 6 0 _errno
+FUNC 5d4c 13 0 _errno
+FUNC 6c60 4 0 _errno
+5d4c 0 279 224
+5d4c 5 280 224
+5d51 e 281 224
+5774 5 282 224
+5779 1 287 224
+6c60 3 284 224
+6c63 1 287 224
+FUNC 4638 39 0 terminate()
+4638 c 84 4591
+4644 8 89 4591
+464c 4 90 4591
+4650 4 95 4591
+4654 2 99 4591
+4656 2 100 4591
+4658 7 101 4591
+465f 7 106 4591
+4666 5 114 4591
+466b 6 115 4591
+FUNC 4834 11 0 _initp_eh_hooks
+4834 0 69 4591
+4834 10 70 4591
+4844 1 71 4591
+FUNC 15b8 1e 0 _initp_misc_winsig
+15b8 5 57 2311
+15bd 8 58 2311
+15c5 5 59 2311
+15ca 5 60 2311
+15cf 5 61 2311
+15d4 2 62 2311
+FUNC 15d8 18 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 3538 f 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 42c8 14 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 45c8 2 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 4e1c f 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 55f0 2 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 63ac f 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+63ac 5 629 2311
+63b1 a 630 2311
+15d8 18 639 2311
+4e1c f 639 2311
+3538 3 642 2311
+42c8 14 642 2311
+353b c 646 2311
+55f0 2 651 2311
+45c8 2 652 2311
+FUNC 3708 d 0 __get_sigabrt
+3708 0 669 2311
+3708 c 670 2311
+3714 1 671 2311
+FUNC 17d8 1a3 0 raise
+17d8 c 450 2311
+17e4 5 457 2311
+17e9 3 458 2311
+17ec 1f 460 2311
+180b a 486 2311
+1815 4 487 2311
+1819 8 488 2311
+1821 a 463 2311
+182b 2 465 2311
+182d 10 490 2311
+183d 2 491 2311
+183f f 460 2311
+184e 12 498 2311
+1860 a 474 2311
+186a 2 476 2311
+186c a 468 2311
+1876 2 470 2311
+1878 a 479 2311
+1882 7 480 2311
+1889 a 500 2311
+1893 2 508 2311
+1895 4 507 2311
+1899 6 508 2311
+189f 5 513 2311
+18a4 7 518 2311
+18ab 5 525 2311
+18b0 7 526 2311
+18b7 5 528 2311
+18bc f 539 2311
+18cb 6 540 2311
+18d1 3 541 2311
+18d4 5 547 2311
+18d9 6 548 2311
+18df 7 549 2311
+18e6 5 557 2311
+18eb 1a 564 2311
+1905 d 567 2311
+1912 5 564 2311
+1917 7 570 2311
+191e c 573 2311
+192a 5 578 2311
+192f 8 584 2311
+1937 2 585 2311
+1939 6 573 2311
+193f 6 574 2311
+1945 9 575 2311
+194e 5 586 2311
+1953 f 593 2311
+1962 6 594 2311
+1968 5 599 2311
+196d 6 600 2311
+1973 2 603 2311
+1975 6 604 2311
+FUNC 502c f 0 _initp_misc_rand_s
+502c 5 58 2186
+5031 8 59 2186
+5039 2 60 2186
+FUNC 2848 f 0 _initp_misc_purevirt
+2848 5 179 1627
+284d 8 180 1627
+2855 2 181 1627
+FUNC 6fd0 f 0 _initp_heap_handler
+6fd0 5 31 2820
+6fd5 8 32 2820
+6fdd 2 33 2820
+FUNC 1660 14 0 _callnewh
+FUNC 5708 1f 0 _callnewh
+FUNC 60b0 4 0 _callnewh
+FUNC 6c18 5 0 _callnewh
+5708 5 131 2820
+570d c 133 2820
+1660 14 135 2820
+5719 e 135 2820
+6c18 3 138 2820
+6c1b 2 139 2820
+60b0 2 136 2820
+60b2 2 139 2820
+FUNC 2274 12 0 static  * _onexit_nolock( *)
+FUNC 2484 10 0 static  * _onexit_nolock( *)
+FUNC 2640 2 0 static  * _onexit_nolock( *)
+FUNC 2b88 10 0 static  * _onexit_nolock( *)
+FUNC 32ac 13 0 static  * _onexit_nolock( *)
+FUNC 4124 15 0 static  * _onexit_nolock( *)
+FUNC 43e8 33 0 static  * _onexit_nolock( *)
+FUNC 45f8 18 0 static  * _onexit_nolock( *)
+FUNC 4a2c 20 0 static  * _onexit_nolock( *)
+FUNC 4b68 2 0 static  * _onexit_nolock( *)
+FUNC 4bb8 18 0 static  * _onexit_nolock( *)
+FUNC 4d84 5 0 static  * _onexit_nolock( *)
+FUNC 6a0c 1a 0 static  * _onexit_nolock( *)
+43e8 8 100 1969
+43f0 f 103 1969
+43ff f 104 1969
+4124 15 108 1969
+440e d 108 1969
+6a0c 1a 118 1969
+2640 2 123 1969
+2b88 2 123 1969
+32ac 13 123 1969
+2b8a e 125 1969
+45f8 18 125 1969
+2484 3 130 1969
+2487 d 132 1969
+4bb8 18 132 1969
+2274 3 143 1969
+2277 f 145 1969
+4a2c 10 152 1969
+4a3c 8 153 1969
+4a44 8 155 1969
+4b68 2 110 1969
+4d84 3 110 1969
+4d87 2 156 1969
+FUNC 14bc 2f 0 __onexitinit
+FUNC 2658 7 0 __onexitinit
+FUNC 318c 5 0 __onexitinit
+14bc 3 201 1969
+14bf d 204 1969
+14cc 11 205 1969
+14dd e 207 1969
+318c 4 212 1969
+3190 1 217 1969
+2658 3 214 1969
+265b 3 216 1969
+265e 1 217 1969
+FUNC 157b 3c 0 _onexit
+157b c 81 1969
+1587 5 84 1969
+158c 4 86 1969
+1590 c 87 1969
+159c c 89 1969
+15a8 3 93 1969
+15ab 6 94 1969
+15b1 6 90 1969
+FUNC 56a4 17 0 atexit
+56a4 5 161 1969
+56a9 10 162 1969
+56b9 2 163 1969
+FUNC 6154 3 0 _initp_misc_cfltcvt_tab
+FUNC 6b70 20 0 _initp_misc_cfltcvt_tab
+FUNC 6ebc 6 0 _initp_misc_cfltcvt_tab
+6ebc 4 54 2419
+6ec0 2 56 2419
+6b70 20 58 2419
+6154 3 60 2419
+FUNC 4af8 17 0 _ValidateImageBase
+FUNC 4e40 1c 0 _ValidateImageBase
+FUNC 5608 4 0 _ValidateImageBase
+FUNC 585c 12 0 _ValidateImageBase
+4e40 5 44 2079
+4e45 17 50 2079
+5608 2 52 2079
+560a 2 68 2079
+4af8 5 55 2079
+4afd 6 56 2079
+4b03 c 58 2079
+585c 10 62 2079
+586c 2 68 2079
+FUNC 1234 5 0 _FindPESection
+FUNC 1b2c 2 0 _FindPESection
+FUNC 4948 13 0 _FindPESection
+FUNC 4e08 12 0 _FindPESection
+FUNC 5d9c 10 0 _FindPESection
+FUNC 6d60 3 0 _FindPESection
+FUNC 6fa4 2c 0 _FindPESection
+6fa4 5 92 2079
+6fa9 8 99 2079
+6d60 3 108 2079
+6fb1 1f 108 2079
+4948 13 111 2079
+5d9c 10 111 2079
+4e08 12 108 2079
+1234 3 123 2079
+1b2c 2 123 2079
+1237 2 124 2079
+FUNC 6fee bc 0 _IsNonwritableInCurrentImage
+6fee 35 149 2079
+7023 7 156 2079
+702a f 164 2079
+7039 2 166 2079
+703b 8 174 2079
+7043 e 175 2079
+7051 2 176 2079
+7053 2 178 2079
+7055 12 185 2079
+7067 12 195 2079
+7079 16 187 2079
+708f 9 193 2079
+7098 12 195 2079
+FUNC 1064 4c 0 __crtMessageBoxW
+FUNC 123c 1b 0 __crtMessageBoxW
+FUNC 1460 14 0 __crtMessageBoxW
+FUNC 19c4 12 0 __crtMessageBoxW
+FUNC 2148 40 0 __crtMessageBoxW
+FUNC 2b00 14 0 __crtMessageBoxW
+FUNC 31b4 e 0 __crtMessageBoxW
+FUNC 3290 1a 0 __crtMessageBoxW
+FUNC 36e8 8 0 __crtMessageBoxW
+FUNC 3794 1c 0 __crtMessageBoxW
+FUNC 474c 1c 0 __crtMessageBoxW
+FUNC 496c 10 0 __crtMessageBoxW
+FUNC 4ca0 10 0 __crtMessageBoxW
+FUNC 4d18 1c 0 __crtMessageBoxW
+FUNC 5640 2 0 __crtMessageBoxW
+FUNC 56e4 16 0 __crtMessageBoxW
+FUNC 5cf4 10 0 __crtMessageBoxW
+FUNC 5e50 10 0 __crtMessageBoxW
+FUNC 5ee8 13 0 __crtMessageBoxW
+FUNC 5f18 c 0 __crtMessageBoxW
+FUNC 6f6c f 0 __crtMessageBoxW
+FUNC 6f7c 14 0 __crtMessageBoxW
+FUNC 70d4 10 0 __crtMessageBoxW
+2148 12 41 1053
+215a 14 49 1053
+216e 4 56 1053
+2172 16 62 1053
+3290 d 64 1053
+329d 2 65 1053
+329f b 67 1053
+123c 10 72 1053
+124c b 76 1053
+1064 9 78 1053
+106d 10 81 1053
+107d 10 84 1053
+108d d 88 1053
+109a 8 93 1053
+10a2 e 95 1053
+70d4 10 97 1053
+19c4 12 110 1053
+474c 1c 110 1053
+4d18 3 113 1053
+4d1b c 114 1053
+31b4 e 116 1053
+4d27 d 116 1053
+3794 1c 121 1053
+496c 10 121 1053
+5cf4 10 121 1053
+5f18 7 130 1053
+5f1f 5 132 1053
+6f7c 14 134 1053
+5e50 3 136 1053
+5e53 d 137 1053
+5ee8 5 139 1053
+1460 14 143 1053
+5eed e 143 1053
+4ca0 3 145 1053
+4ca3 d 146 1053
+36e8 8 148 1053
+56e4 8 155 1053
+56ec e 156 1053
+2b00 14 158 1053
+5640 2 163 1053
+6f6c f 166 1053
+FUNC 21d0 14 0 wcscat_s
+FUNC 28c0 10 0 wcscat_s
+FUNC 3784 a 0 wcscat_s
+FUNC 3d78 18 0 wcscat_s
+FUNC 4880 18 0 wcscat_s
+FUNC 48bc b 0 wcscat_s
+FUNC 4b7c 10 0 wcscat_s
+FUNC 4f58 4 0 wcscat_s
+FUNC 5448 e 0 wcscat_s
+FUNC 55d8 12 0 wcscat_s
+FUNC 5f9c 2 0 wcscat_s
+FUNC 5fb4 7 0 wcscat_s
+FUNC 6054 c 0 wcscat_s
+FUNC 6194 10 0 wcscat_s
+FUNC 6d50 10 0 wcscat_s
+3d78 6 13 2468
+3784 a 18 2468
+3d7e 12 18 2468
+4f58 2 18 2468
+5fb4 7 18 2468
+6194 10 18 2468
+4f5a 2 46 2468
+28c0 10 19 2468
+48bc b 19 2468
+55e8 2 21 2468
+6d50 10 23 2468
+55d8 3 25 2468
+55db d 26 2468
+5448 2 29 2468
+544a c 32 2468
+4880 18 35 2468
+5f9c 2 35 2468
+6054 c 35 2468
+21d0 3 41 2468
+4b7c 10 41 2468
+21d3 11 42 2468
+FUNC 103c c 0 wcsncpy_s
+FUNC 11d8 10 0 wcsncpy_s
+FUNC 12fc b 0 wcsncpy_s
+FUNC 1ae0 e 0 wcsncpy_s
+FUNC 1b4c f 0 wcsncpy_s
+FUNC 1e0c 5 0 wcsncpy_s
+FUNC 21e4 10 0 wcsncpy_s
+FUNC 228c 4 0 wcsncpy_s
+FUNC 22b0 c 0 wcsncpy_s
+FUNC 3720 e 0 wcsncpy_s
+FUNC 37c0 b 0 wcsncpy_s
+FUNC 43d4 14 0 wcsncpy_s
+FUNC 46c8 10 0 wcsncpy_s
+FUNC 4828 c 0 wcsncpy_s
+FUNC 495c a 0 wcsncpy_s
+FUNC 49dc 34 0 wcsncpy_s
+FUNC 4c38 2 0 wcsncpy_s
+FUNC 4c84 5 0 wcsncpy_s
+FUNC 5a38 5 0 wcsncpy_s
+FUNC 5dc8 c 0 wcsncpy_s
+FUNC 61e0 e 0 wcsncpy_s
+FUNC 6288 4 0 wcsncpy_s
+FUNC 63e0 d 0 wcsncpy_s
+FUNC 6a28 10 0 wcsncpy_s
+FUNC 6af4 18 0 wcsncpy_s
+FUNC 6c3c e 0 wcsncpy_s
+FUNC 70c4 10 0 wcsncpy_s
+49dc 5 13 2578
+1b4c f 17 2578
+49e1 17 17 2578
+6c3c e 17 2578
+4c38 2 65 2578
+5a38 3 65 2578
+5a3b 2 66 2578
+103c c 24 2578
+11d8 10 24 2578
+495c a 24 2578
+61e0 e 24 2578
+3720 e 25 2578
+12fc 5 28 2578
+1301 6 29 2578
+37c0 b 31 2578
+46c8 10 31 2578
+21e4 2 33 2578
+21e6 e 35 2578
+22b0 c 37 2578
+6288 4 37 2578
+6af4 18 37 2578
+1e0c 5 41 2578
+228c 4 45 2578
+4828 c 45 2578
+49f8 18 45 2578
+5dc8 c 45 2578
+1ae0 e 48 2578
+4c84 5 50 2578
+63e0 d 54 2578
+6a28 3 58 2578
+70c4 10 58 2578
+6a2b d 59 2578
+43d4 3 61 2578
+43d7 11 62 2578
+FUNC 20d4 10 0 wcslen
+FUNC 5520 10 0 wcslen
+20dc 5 41 2728
+20e1 3 42 2728
+5520 10 44 2728
+20d4 6 46 2728
+20da 2 47 2728
+FUNC 15f0 18 0 wcscpy_s
+FUNC 17cc c 0 wcscpy_s
+FUNC 23a0 10 0 wcscpy_s
+FUNC 2494 a 0 wcscpy_s
+FUNC 2858 18 0 wcscpy_s
+FUNC 3208 10 0 wcscpy_s
+FUNC 3ca8 8 0 wcscpy_s
+FUNC 4bd0 10 0 wcscpy_s
+FUNC 5530 7 0 wcscpy_s
+FUNC 5880 4 0 wcscpy_s
+FUNC 5f08 4 0 wcscpy_s
+FUNC 5f24 14 0 wcscpy_s
+15f0 6 13 2523
+15f6 12 18 2523
+23a0 10 18 2523
+2494 a 18 2523
+5530 7 18 2523
+5880 2 18 2523
+5882 2 34 2523
+3208 10 19 2523
+3ca8 8 19 2523
+17cc c 23 2523
+2858 18 23 2523
+5f08 4 23 2523
+4bd0 10 29 2523
+5f24 3 29 2523
+5f27 11 30 2523
+FUNC 1268 d 0 _set_error_mode
+FUNC 1b7c 16 0 _set_error_mode
+FUNC 1e04 7 0 _set_error_mode
+FUNC 31c4 f 0 _set_error_mode
+FUNC 49cc f 0 _set_error_mode
+FUNC 5eac 15 0 _set_error_mode
+1b7c 5 43 1181
+1b81 11 46 1181
+31c4 f 46 1181
+49cc f 46 1181
+1e04 5 54 1181
+1e09 2 61 1181
+1268 5 50 1181
+126d 6 51 1181
+1273 2 61 1181
+5eac 13 57 1181
+5ebf 2 61 1181
+FUNC 1275 f 0 __security_check_cookie
+1275 0 52 892
+1275 6 55 892
+127b 2 56 892
+127d 2 57 892
+127f 5 59 892
+FUNC 1488 6 0 _malloc_crt
+FUNC 1b04 12 0 _malloc_crt
+FUNC 1d3c 3 0 _malloc_crt
+FUNC 5fe0 1f 0 _malloc_crt
+FUNC 69d4 9 0 _malloc_crt
+FUNC 6c64 18 0 _malloc_crt
+FUNC 6f40 10 0 _malloc_crt
+69d4 7 39 333
+69db 2 40 333
+6c64 b 44 333
+1b04 12 45 333
+6c6f d 45 333
+1d3c 3 46 333
+5fe0 1f 46 333
+6f40 2 46 333
+6f42 e 47 333
+1488 4 50 333
+148c 2 51 333
+FUNC 3cd8 10 0 _calloc_crt
+FUNC 541c 12 0 _calloc_crt
+FUNC 553c 6 0 _calloc_crt
+FUNC 5598 9 0 _calloc_crt
+FUNC 6950 3 0 _calloc_crt
+FUNC 6ec8 1f 0 _calloc_crt
+FUNC 6ef0 20 0 _calloc_crt
+5598 7 54 333
+559f 2 55 333
+6ef0 12 61 333
+541c 12 62 333
+6f02 e 62 333
+3cd8 2 63 333
+6950 3 63 333
+6ec8 1f 63 333
+3cda e 64 333
+553c 4 67 333
+5540 2 68 333
+FUNC 2674 3 0 _realloc_crt
+FUNC 2b5c 10 0 _realloc_crt
+FUNC 38b8 6 0 _realloc_crt
+FUNC 435c f 0 _realloc_crt
+FUNC 633c 1c 0 _realloc_crt
+FUNC 6580 1f 0 _realloc_crt
+FUNC 65b0 12 0 _realloc_crt
+FUNC 6f20 9 0 _realloc_crt
+6f20 7 71 333
+6f27 2 72 333
+633c f 76 333
+435c f 77 333
+634b d 77 333
+65b0 12 77 333
+2674 3 78 333
+2b5c 2 78 333
+6580 1f 78 333
+2b5e e 79 333
+38b8 4 82 333
+38bc 2 83 333
+FUNC 28b4 c 0 static int CPtoLCID(int)
+FUNC 3d08 6 0 static int CPtoLCID(int)
+FUNC 5510 6 0 static int CPtoLCID(int)
+FUNC 5600 6 0 static int CPtoLCID(int)
+FUNC 5f14 3 0 static int CPtoLCID(int)
+FUNC 6294 f 0 static int CPtoLCID(int)
+FUNC 68f4 10 0 static int CPtoLCID(int)
+FUNC 69cc 6 0 static int CPtoLCID(int)
+FUNC 6fe0 e 0 static int CPtoLCID(int)
+68f4 0 329 3326
+28b4 c 330 3326
+6294 f 330 3326
+68f4 10 330 3326
+6fe0 e 330 3326
+5f14 2 345 3326
+5f16 1 346 3326
+5510 5 342 3326
+5515 1 346 3326
+3d08 5 339 3326
+3d0d 1 346 3326
+69cc 5 336 3326
+69d1 1 346 3326
+5600 5 333 3326
+5605 1 346 3326
+FUNC 2208 f 0 static void setSBCS(struct threadmbcinfostruct *)
+FUNC 387c 3 0 static void setSBCS(struct threadmbcinfostruct *)
+FUNC 48ac f 0 static void setSBCS(struct threadmbcinfostruct *)
+FUNC 5900 44 0 static void setSBCS(struct threadmbcinfostruct *)
+FUNC 6be0 b 0 static void setSBCS(struct threadmbcinfostruct *)
+5900 6 363 3326
+5906 11 368 3326
+5917 1b 379 3326
+5932 12 381 3326
+2208 f 382 3326
+6be0 b 384 3326
+48ac f 385 3326
+387c 3 386 3326
+FUNC 12dc 18 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 1794 f 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 1b6c 7 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 2548 e 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 2c0c 39 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 3238 8 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 3e54 2 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 3ee0 16 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 445c 20 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 4800 f 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 4910 8 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 4a8c 12 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 4d8c e 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 566c f 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 56fc c 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 59e4 14 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 5aa8 6 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 5b08 17 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 5b60 14 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 5db4 12 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 6060 c 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 60b4 6 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 6218 f 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 62b8 6a 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 697c 3 0 static void setSBUpLow(struct threadmbcinfostruct *)
+FUNC 6b44 1b 0 static void setSBUpLow(struct threadmbcinfostruct *)
+2c0c 17 402 3326
+2c23 10 412 3326
+2c33 12 415 3326
+3e54 2 415 3326
+5db4 12 416 3326
+6b44 1b 420 3326
+60b4 6 419 3326
+3ee0 16 421 3326
+5b60 14 421 3326
+59e4 14 420 3326
+62b8 20 427 3326
+62d8 23 432 3326
+62fb 25 437 3326
+6320 2 442 3326
+5b08 17 443 3326
+4a8c 5 445 3326
+4a91 d 446 3326
+4800 f 448 3326
+6060 5 450 3326
+56fc 7 451 3326
+6065 7 451 3326
+5703 5 453 3326
+1b6c 7 454 3326
+6218 f 442 3326
+12dc 6 456 3326
+5aa8 6 456 3326
+12e2 12 472 3326
+445c 20 461 3326
+2548 5 463 3326
+254d 9 464 3326
+566c f 466 3326
+4910 5 468 3326
+3238 2 469 3326
+4915 3 469 3326
+323a 6 471 3326
+697c 3 472 3326
+1794 f 460 3326
+4d8c e 474 3326
+FUNC 2c45 a4 0 __updatetmbcinfo
+2c45 c 495 3326
+2c51 7 498 3326
+2c58 10 499 3326
+2c68 3 532 3326
+2c6b 4 535 3326
+2c6f 8 537 3326
+2c77 2 540 3326
+2c79 6 541 3326
+2c7f 8 500 3326
+2c87 4 502 3326
+2c8b e 505 3326
+2c99 17 511 3326
+2cb0 7 516 3326
+2cb7 11 523 3326
+2cc8 7 524 3326
+2ccf 11 527 3326
+2ce0 9 529 3326
+FUNC 12b0 8 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 2084 18 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 2314 7 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 2504 27 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 2904 7 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 3558 14 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 4d74 e 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 560c 13 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 5d04 14 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 5f68 a 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+FUNC 6cbc 1c 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+6cbc 5 240 111
+6cc1 17 241 111
+2504 8 243 111
+250c 5 244 111
+2511 6 245 111
+2314 7 247 111
+2517 14 247 111
+3558 14 247 111
+12b0 8 248 111
+2084 18 248 111
+5d04 14 248 111
+560c 13 249 111
+4d74 4 251 111
+4d78 4 252 111
+4d7c 6 255 111
+5f68 a 257 111
+2904 7 259 111
+FUNC 19fc e 0 static int getSystemCP(int)
+FUNC 2690 7 0 static int getSystemCP(int)
+FUNC 2b98 3 0 static int getSystemCP(int)
+FUNC 3b80 28 0 static int getSystemCP(int)
+FUNC 3e18 c 0 static int getSystemCP(int)
+FUNC 4710 f 0 static int getSystemCP(int)
+FUNC 4868 10 0 static int getSystemCP(int)
+FUNC 56bc 16 0 static int getSystemCP(int)
+FUNC 5e20 16 0 static int getSystemCP(int)
+FUNC 6020 1f 0 static int getSystemCP(int)
+FUNC 6f64 2 0 static int getSystemCP(int)
+3b80 9 282 3326
+3b89 b 284 3326
+3b94 6 285 3326
+3b9a e 289 3326
+4868 a 291 3326
+19fc e 292 3326
+3e18 c 292 3326
+4872 6 292 3326
+6030 f 295 3326
+5e20 a 297 3326
+5e2a c 298 3326
+6020 f 302 3326
+56bc 16 305 3326
+2690 7 308 3326
+2b98 1 308 3326
+4710 f 308 3326
+6f64 2 308 3326
+2b99 2 309 3326
+FUNC 1208 29 0 _setmbcp_nolock
+FUNC 16ac 20 0 _setmbcp_nolock
+FUNC 1bc0 3 0 _setmbcp_nolock
+FUNC 2188 11 0 _setmbcp_nolock
+FUNC 23b0 6 0 _setmbcp_nolock
+FUNC 2894 11 0 _setmbcp_nolock
+FUNC 2b28 7 0 _setmbcp_nolock
+FUNC 330c c 0 _setmbcp_nolock
+FUNC 40bc e 0 _setmbcp_nolock
+FUNC 454c f 0 _setmbcp_nolock
+FUNC 4720 6 0 _setmbcp_nolock
+FUNC 4768 f 0 _setmbcp_nolock
+FUNC 4b58 10 0 _setmbcp_nolock
+FUNC 4c40 c 0 _setmbcp_nolock
+FUNC 5404 12 0 _setmbcp_nolock
+FUNC 5728 2a 0 _setmbcp_nolock
+FUNC 5800 e 0 _setmbcp_nolock
+FUNC 5ab0 17 0 _setmbcp_nolock
+FUNC 5adc 11 0 _setmbcp_nolock
+FUNC 5ba8 c 0 _setmbcp_nolock
+FUNC 5bcc 14 0 _setmbcp_nolock
+FUNC 5fa4 8 0 _setmbcp_nolock
+FUNC 6010 f 0 _setmbcp_nolock
+FUNC 6074 1c 0 _setmbcp_nolock
+FUNC 609c 14 0 _setmbcp_nolock
+FUNC 60c0 2a 0 _setmbcp_nolock
+FUNC 60f4 17 0 _setmbcp_nolock
+FUNC 6358 14 0 _setmbcp_nolock
+FUNC 638c 11 0 _setmbcp_nolock
+FUNC 63d4 5 0 _setmbcp_nolock
+FUNC 64a8 34 0 _setmbcp_nolock
+FUNC 64f0 3 0 _setmbcp_nolock
+FUNC 65c4 18 0 _setmbcp_nolock
+FUNC 6974 7 0 _setmbcp_nolock
+FUNC 6a64 f 0 _setmbcp_nolock
+64a8 17 684 3326
+64bf b 691 3326
+64ca 12 694 3326
+2b28 7 696 3326
+6974 7 697 3326
+63d4 3 701 3326
+63d7 2 703 3326
+5adc 11 706 3326
+60f4 17 703 3326
+2188 11 741 3326
+2894 11 741 3326
+5ab0 17 741 3326
+65c4 18 749 3326
+1208 f 754 3326
+1217 1a 759 3326
+1bc0 3 762 3326
+454c f 762 3326
+6010 f 762 3326
+60a4 c 764 3326
+5728 f 710 3326
+5737 15 713 3326
+4b58 10 718 3326
+574c 6 718 3326
+4c40 c 721 3326
+5404 12 722 3326
+5800 e 721 3326
+4720 6 718 3326
+6a64 f 718 3326
+6074 1c 713 3326
+16ac 20 729 3326
+5bcc 14 731 3326
+5ba8 7 734 3326
+5baf 5 735 3326
+23b0 6 765 3326
+40bc e 764 3326
+60d8 12 762 3326
+5fa4 8 769 3326
+330c c 770 3326
+6358 b 773 3326
+6363 3 776 3326
+6366 6 778 3326
+609c 3 780 3326
+60c0 12 783 3326
+60d2 6 787 3326
+638c 6 792 3326
+6392 b 795 3326
+64f0 3 744 3326
+4768 f 800 3326
+FUNC 1e11 19a 0 _setmbcp
+1e11 c 572 3326
+1e1d 4 573 3326
+1e21 a 577 3326
+1e2b 5 579 3326
+1e30 3 580 3326
+1e33 b 582 3326
+1e3e 9 584 3326
+1e47 d 590 3326
+1e54 8 592 3326
+1e5c c 594 3326
+1e68 3 605 3326
+1e6b 16 610 3326
+1e81 1a 612 3326
+1e9b 7 613 3326
+1ea2 3 617 3326
+1ea5 9 618 3326
+1eae 17 620 3326
+1ec5 8 622 3326
+1ecd 4 623 3326
+1ed1 8 628 3326
+1ed9 8 629 3326
+1ee1 8 630 3326
+1ee9 a 631 3326
+1ef3 d 632 3326
+1f00 3 631 3326
+1f03 c 633 3326
+1f0f a 634 3326
+1f19 3 633 3326
+1f1c c 635 3326
+1f28 d 636 3326
+1f35 3 635 3326
+1f38 1c 638 3326
+1f54 7 639 3326
+1f5b 6 643 3326
+1f61 3 644 3326
+1f64 e 646 3326
+1f72 9 648 3326
+1f7b 2 651 3326
+1f7d 5 652 3326
+1f82 8 658 3326
+1f8a 7 659 3326
+1f91 b 660 3326
+1f9c 2 666 3326
+1f9e 4 671 3326
+1fa2 3 680 3326
+1fa5 6 681 3326
+FUNC 165c 3 0 __initmbctable
+FUNC 5dd4 12 0 __initmbctable
+FUNC 6234 13 0 __initmbctable
+6234 0 841 3326
+6234 13 851 3326
+5dd4 8 852 3326
+5ddc a 853 3326
+165c 2 858 3326
+165e 1 859 3326
+FUNC 1674 7 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 1c0c 2c 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 3d74 2 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 4c90 e 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 5430 16 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 59b0 2 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 6254 10 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 643c 3 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 6498 10 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+1c0c 8 213 3271
+1c14 b 214 3271
+1c1f 4 219 3271
+1674 7 222 3271
+1c23 15 222 3271
+4c90 e 222 3271
+5430 16 222 3271
+59b0 2 222 3271
+6254 10 222 3271
+643c 3 222 3271
+6498 10 222 3271
+3d74 2 223 3271
+FUNC 4930 18 0 _ismbblead
+4930 5 171 3271
+4935 11 172 3271
+4946 2 173 3271
+FUNC 1bac 12 0 __addlocaleref
+FUNC 26b4 a 0 __addlocaleref
+FUNC 2880 3 0 __addlocaleref
+FUNC 37d8 3 0 __addlocaleref
+FUNC 3c70 14 0 __addlocaleref
+FUNC 3fe4 13 0 __addlocaleref
+FUNC 4a10 1c 0 __addlocaleref
+FUNC 54d8 10 0 __addlocaleref
+FUNC 54f0 3 0 __addlocaleref
+FUNC 5620 3 0 __addlocaleref
+FUNC 5dac 3 0 __addlocaleref
+FUNC 6040 13 0 __addlocaleref
+FUNC 6278 10 0 __addlocaleref
+FUNC 6478 13 0 __addlocaleref
+FUNC 6540 10 0 __addlocaleref
+FUNC 6d08 28 0 __addlocaleref
+6d08 7 36 1913
+6d0f d 39 1913
+6d1c 14 41 1913
+2880 3 42 1913
+4a18 14 44 1913
+4a10 3 45 1913
+3fe4 13 47 1913
+5620 3 48 1913
+3c70 14 50 1913
+37d8 3 51 1913
+26b4 a 53 1913
+6478 13 55 1913
+6540 10 55 1913
+5dac 3 56 1913
+54d8 10 59 1913
+6278 10 59 1913
+54f0 3 60 1913
+1bac 12 53 1913
+6040 11 63 1913
+6051 2 64 1913
+FUNC 2328 a 0 __removelocaleref
+FUNC 252c 10 0 __removelocaleref
+FUNC 2b14 14 0 __removelocaleref
+FUNC 34c8 3 0 __removelocaleref
+FUNC 3d44 10 0 __removelocaleref
+FUNC 4c00 13 0 __removelocaleref
+FUNC 4f70 14 0 __removelocaleref
+FUNC 54d0 3 0 __removelocaleref
+FUNC 5648 3 0 __removelocaleref
+FUNC 5658 12 0 __removelocaleref
+FUNC 5870 10 0 __removelocaleref
+FUNC 5a7c 5 0 __removelocaleref
+FUNC 5e94 16 0 __removelocaleref
+FUNC 6578 3 0 __removelocaleref
+FUNC 6668 3 0 __removelocaleref
+FUNC 6cf0 10 0 __removelocaleref
+FUNC 6d30 1f 0 __removelocaleref
+FUNC 6d90 1b 0 __removelocaleref
+5e94 6 74 1913
+5e9a 10 77 1913
+6d30 b 79 1913
+6d3b 14 81 1913
+6668 3 82 1913
+2b14 14 84 1913
+5648 3 85 1913
+6d98 13 87 1913
+34c8 3 88 1913
+4f70 14 90 1913
+6578 3 91 1913
+2328 a 93 1913
+252c 10 95 1913
+4c00 13 95 1913
+54d0 3 96 1913
+3d44 10 99 1913
+5870 10 99 1913
+6d90 3 100 1913
+5658 12 93 1913
+6cf0 10 103 1913
+5a7c 3 106 1913
+5a7f 2 107 1913
+FUNC 1dbc 14 0 __freetlocinfo
+FUNC 20ac 14 0 __freetlocinfo
+FUNC 21c0 10 0 __freetlocinfo
+FUNC 22c4 13 0 __freetlocinfo
+FUNC 2b44 c 0 __freetlocinfo
+FUNC 3c5c f 0 __freetlocinfo
+FUNC 3ec0 10 0 __freetlocinfo
+FUNC 40cc 17 0 __freetlocinfo
+FUNC 4294 e 0 __freetlocinfo
+FUNC 44c0 e 0 __freetlocinfo
+FUNC 44f8 20 0 __freetlocinfo
+FUNC 4cd4 13 0 __freetlocinfo
+FUNC 4d34 7 0 __freetlocinfo
+FUNC 4df8 10 0 __freetlocinfo
+FUNC 4f84 13 0 __freetlocinfo
+FUNC 5630 e 0 __freetlocinfo
+FUNC 577c a 0 __freetlocinfo
+FUNC 5af0 13 0 __freetlocinfo
+FUNC 5d74 12 0 __freetlocinfo
+FUNC 5dec 7 0 __freetlocinfo
+FUNC 5ed8 e 0 __freetlocinfo
+FUNC 6000 e 0 __freetlocinfo
+FUNC 61a8 14 0 __freetlocinfo
+FUNC 6634 12 0 __freetlocinfo
+FUNC 6748 13 0 __freetlocinfo
+FUNC 6984 40 0 __freetlocinfo
+FUNC 69fc e 0 __freetlocinfo
+FUNC 6c9c 18 0 __freetlocinfo
+44f8 7 129 1913
+44ff 19 137 1913
+4df8 10 137 1913
+5ed8 e 137 1913
+61a8 14 137 1913
+1dbc 14 140 1913
+6000 e 140 1913
+4f84 6 142 1913
+4f8a d 143 1913
+20ac 14 147 1913
+4294 e 147 1913
+5af0 6 149 1913
+5af6 d 150 1913
+6c9c b 153 1913
+6ca7 d 154 1913
+5630 e 161 1913
+6748 13 161 1913
+6984 11 163 1913
+6995 13 164 1913
+69a8 e 165 1913
+69b6 e 166 1913
+40cc 17 173 1913
+6634 12 173 1913
+22c4 6 175 1913
+22ca d 176 1913
+577c a 179 1913
+3ec0 10 182 1913
+44c0 e 182 1913
+4cd4 13 182 1913
+5dec 7 184 1913
+21c0 10 192 1913
+3c5c f 192 1913
+69fc e 192 1913
+4d34 7 194 1913
+5d74 12 179 1913
+2b44 a 201 1913
+2b4e 2 202 1913
+FUNC 1d58 16 0 _updatetlocinfoEx_nolock
+FUNC 2338 17 0 _updatetlocinfoEx_nolock
+FUNC 2d40 2 0 _updatetlocinfoEx_nolock
+FUNC 2dc8 3 0 _updatetlocinfoEx_nolock
+FUNC 2dd4 16 0 _updatetlocinfoEx_nolock
+FUNC 4f18 17 0 _updatetlocinfoEx_nolock
+FUNC 5794 10 0 _updatetlocinfoEx_nolock
+FUNC 57b4 8 0 _updatetlocinfoEx_nolock
+FUNC 6c28 12 0 _updatetlocinfoEx_nolock
+4f18 6 216 1913
+2338 10 219 1913
+4f1e 11 219 1913
+5794 3 222 1913
+5797 d 223 1913
+1d58 9 230 1913
+1d61 d 236 1913
+2dd4 6 238 1913
+2dda 10 248 1913
+6c28 12 248 1913
+2348 7 249 1913
+57b4 8 253 1913
+2d40 2 220 1913
+2dc8 1 220 1913
+2dc9 2 254 1913
+FUNC 3f0f 79 0 __updatetlocinfo
+3f0f c 281 1913
+3f1b 7 283 1913
+3f22 10 285 1913
+3f32 8 297 1913
+3f3a 4 300 1913
+3f3e 8 302 1913
+3f46 2 305 1913
+3f48 6 306 1913
+3f4e 8 286 1913
+3f56 4 288 1913
+3f5a 14 290 1913
+3f6e e 292 1913
+3f7c 8 294 1913
+3f84 4 295 1913
+FUNC 1ad0 8 0 _crt_debugger_hook
+1ad0 0 62 1145
+1ad0 7 65 1145
+1ad7 1 66 1145
+FUNC 4fa2 7a 0 memset
+4fa2 0 59 2789
+4fa2 4 68 2789
+4fa6 4 69 2789
+4faa 2 71 2789
+4fac 2 72 2789
+4fae 2 74 2789
+4fb0 4 75 2789
+4fb4 2 78 2789
+4fb6 2 79 2789
+4fb8 6 80 2789
+4fbe 2 81 2789
+4fc0 7 82 2789
+4fc7 2 83 2789
+4fc9 5 85 2789
+4fce 1 91 2789
+4fcf 2 92 2789
+4fd1 3 94 2789
+4fd4 2 95 2789
+4fd6 2 97 2789
+4fd8 3 98 2789
+4fdb 2 99 2789
+4fdd 2 101 2789
+4fdf 2 103 2789
+4fe1 3 104 2789
+4fe4 3 105 2789
+4fe7 2 106 2789
+4fe9 2 110 2789
+4feb 3 111 2789
+4fee 2 113 2789
+4ff0 2 115 2789
+4ff2 3 117 2789
+4ff5 2 119 2789
+4ff7 2 122 2789
+4ff9 3 123 2789
+4ffc 3 124 2789
+4fff 2 125 2789
+5001 2 127 2789
+5003 2 129 2789
+5005 2 130 2789
+5007 2 134 2789
+5009 3 135 2789
+500c 3 137 2789
+500f 2 138 2789
+5011 4 142 2789
+5015 1 143 2789
+5016 1 145 2789
+5017 4 148 2789
+501b 1 150 2789
+FUNC 33f1 95 0 _aulldvrm
+33f1 0 45 2806
+33f1 1 48 2806
+33f2 4 80 2806
+33f6 2 81 2806
+33f8 2 82 2806
+33fa 4 83 2806
+33fe 4 84 2806
+3402 2 85 2806
+3404 2 86 2806
+3406 2 87 2806
+3408 4 88 2806
+340c 2 89 2806
+340e 2 90 2806
+3410 2 95 2806
+3412 4 96 2806
+3416 2 97 2806
+3418 2 98 2806
+341a 4 99 2806
+341e 2 100 2806
+3420 2 101 2806
+3422 2 108 2806
+3424 4 109 2806
+3428 4 110 2806
+342c 4 111 2806
+3430 2 113 2806
+3432 2 114 2806
+3434 2 115 2806
+3436 2 116 2806
+3438 2 117 2806
+343a 2 118 2806
+343c 2 119 2806
+343e 2 120 2806
+3440 4 129 2806
+3444 2 130 2806
+3446 4 131 2806
+344a 2 132 2806
+344c 2 133 2806
+344e 2 134 2806
+3450 4 142 2806
+3454 2 143 2806
+3456 2 144 2806
+3458 4 145 2806
+345c 2 146 2806
+345e 1 148 2806
+345f 4 149 2806
+3463 4 150 2806
+3467 2 152 2806
+3469 4 161 2806
+346d 4 162 2806
+3471 2 163 2806
+3473 2 164 2806
+3475 3 165 2806
+3478 2 170 2806
+347a 2 171 2806
+347c 2 172 2806
+347e 2 173 2806
+3480 2 174 2806
+3482 1 180 2806
+3483 3 182 2806
+FUNC 675b 20 0 _global_unwind2
+FUNC 677b 45 0 static void __unwind_handler()
+FUNC 67c0 84 0 _local_unwind2
+FUNC 6844 23 0 _abnormal_termination
+FUNC 6867 9 0 _NLG_Notify1
+FUNC 6870 1f 0 _NLG_Notify
+PUBLIC m 6887 0 _NLG_Dispatch
+FUNC 688f 3 0 _NLG_Call
+PUBLIC 6891 0 _NLG_Return2
+FUNC 4695 33 0 abort
+4695 0 54 1011
+4695 5 71 1011
+469a 4 72 1011
+469e 8 74 1011
+46a6 9 81 1011
+46af 11 83 1011
+46c0 8 92 1011
+FUNC 50a3 361 0 memcpy
+50a3 3 101 2787
+50a6 1 113 2787
+50a7 1 114 2787
+50a8 3 116 2787
+50ab 3 117 2787
+50ae 3 119 2787
+50b1 2 129 2787
+50b3 2 131 2787
+50b5 2 132 2787
+50b7 2 134 2787
+50b9 2 135 2787
+50bb 2 137 2787
+50bd 6 138 2787
+50c3 6 147 2787
+50c9 2 148 2787
+50cb 7 150 2787
+50d2 2 151 2787
+50d4 1 153 2787
+50d5 1 154 2787
+50d6 3 155 2787
+50d9 3 156 2787
+50dc 2 157 2787
+50de 1 158 2787
+50df 1 159 2787
+50e0 2 160 2787
+50e2 5 163 2787
+50e7 6 176 2787
+50ed 2 177 2787
+50ef 3 179 2787
+50f2 3 180 2787
+50f5 3 182 2787
+50f8 2 183 2787
+50fa 2 185 2787
+50fc 7 187 2787
+5103 2 205 2787
+5105 5 206 2787
+510a 3 208 2787
+510d 2 209 2787
+510f 3 211 2787
+5112 2 212 2787
+5114 7 214 2787
+511b 8 218 2787
+5123 14 222 2787
+5137 2 229 2787
+5139 2 230 2787
+513b 2 232 2787
+513d 3 233 2787
+5140 3 235 2787
+5143 3 236 2787
+5146 3 238 2787
+5149 3 239 2787
+514c 3 241 2787
+514f 3 242 2787
+5152 3 244 2787
+5155 2 245 2787
+5157 2 247 2787
+5159 a 249 2787
+5163 2 253 2787
+5165 2 254 2787
+5167 2 256 2787
+5169 3 257 2787
+516c 3 259 2787
+516f 3 260 2787
+5172 3 262 2787
+5175 3 263 2787
+5178 3 265 2787
+517b 2 266 2787
+517d 2 268 2787
+517f 8 270 2787
+5187 2 274 2787
+5189 2 275 2787
+518b 2 277 2787
+518d 3 278 2787
+5190 3 280 2787
+5193 3 281 2787
+5196 3 283 2787
+5199 2 284 2787
+519b 2 286 2787
+519d 2a 288 2787
+51c7 4 295 2787
+51cb 4 297 2787
+51cf 4 299 2787
+51d3 4 301 2787
+51d7 4 303 2787
+51db 4 305 2787
+51df 4 307 2787
+51e3 4 309 2787
+51e7 4 311 2787
+51eb 4 313 2787
+51ef 4 315 2787
+51f3 4 317 2787
+51f7 4 319 2787
+51fb 4 321 2787
+51ff 7 323 2787
+5206 2 325 2787
+5208 2 326 2787
+520a 19 328 2787
+5223 3 337 2787
+5226 1 338 2787
+5227 1 339 2787
+5228 3 341 2787
+522b 2 345 2787
+522d 2 347 2787
+522f 3 348 2787
+5232 1 349 2787
+5233 1 350 2787
+5234 3 351 2787
+5237 2 355 2787
+5239 2 357 2787
+523b 3 358 2787
+523e 3 359 2787
+5241 3 360 2787
+5244 1 361 2787
+5245 1 362 2787
+5246 5 363 2787
+524b 2 367 2787
+524d 2 369 2787
+524f 3 370 2787
+5252 3 371 2787
+5255 3 372 2787
+5258 3 373 2787
+525b 3 374 2787
+525e 1 375 2787
+525f 1 376 2787
+5260 3 377 2787
+5263 4 388 2787
+5267 4 389 2787
+526b 6 394 2787
+5271 2 395 2787
+5273 3 397 2787
+5276 3 398 2787
+5279 3 400 2787
+527c 2 401 2787
+527e 1 403 2787
+527f 2 404 2787
+5281 1 405 2787
+5282 9 407 2787
+528b 2 411 2787
+528d a 414 2787
+5297 2 419 2787
+5299 5 420 2787
+529e 3 422 2787
+52a1 2 423 2787
+52a3 3 425 2787
+52a6 2 426 2787
+52a8 7 428 2787
+52af 14 432 2787
+52c3 3 439 2787
+52c6 2 440 2787
+52c8 3 442 2787
+52cb 3 443 2787
+52ce 3 445 2787
+52d1 3 446 2787
+52d4 3 448 2787
+52d7 2 449 2787
+52d9 1 451 2787
+52da 2 452 2787
+52dc 1 453 2787
+52dd a 455 2787
+52e7 3 459 2787
+52ea 2 460 2787
+52ec 3 462 2787
+52ef 3 463 2787
+52f2 3 465 2787
+52f5 3 466 2787
+52f8 3 468 2787
+52fb 3 469 2787
+52fe 3 471 2787
+5301 2 472 2787
+5303 1 474 2787
+5304 2 475 2787
+5306 1 476 2787
+5307 8 478 2787
+530f 3 482 2787
+5312 2 483 2787
+5314 3 485 2787
+5317 3 486 2787
+531a 3 488 2787
+531d 3 489 2787
+5320 3 491 2787
+5323 3 492 2787
+5326 3 494 2787
+5329 3 495 2787
+532c 3 497 2787
+532f 6 498 2787
+5335 1 500 2787
+5336 2 501 2787
+5338 1 502 2787
+5339 2a 504 2787
+5363 4 513 2787
+5367 4 515 2787
+536b 4 517 2787
+536f 4 519 2787
+5373 4 521 2787
+5377 4 523 2787
+537b 4 525 2787
+537f 4 527 2787
+5383 4 529 2787
+5387 4 531 2787
+538b 4 533 2787
+538f 4 535 2787
+5393 4 537 2787
+5397 4 539 2787
+539b 7 541 2787
+53a2 2 543 2787
+53a4 2 544 2787
+53a6 19 546 2787
+53bf 3 555 2787
+53c2 1 557 2787
+53c3 1 558 2787
+53c4 3 559 2787
+53c7 3 563 2787
+53ca 3 565 2787
+53cd 3 566 2787
+53d0 1 567 2787
+53d1 1 568 2787
+53d2 5 569 2787
+53d7 3 573 2787
+53da 3 575 2787
+53dd 3 576 2787
+53e0 3 577 2787
+53e3 3 578 2787
+53e6 1 579 2787
+53e7 1 580 2787
+53e8 3 581 2787
+53eb 3 585 2787
+53ee 3 587 2787
+53f1 3 588 2787
+53f4 3 589 2787
+53f7 3 590 2787
+53fa 3 591 2787
+53fd 3 592 2787
+5400 1 593 2787
+5401 1 594 2787
+5402 2 595 2787
+FUNC 219c 2 0 _freea
+FUNC 4240 14 0 _freea
+FUNC 5a10 16 0 _freea
+FUNC 6904 7 0 _freea
+5a10 5 235 281
+5a15 11 237 281
+4240 3 239 281
+4243 11 241 281
+6904 7 243 281
+219c 2 252 281
+FUNC 19e0 13 0 _msize
+FUNC 4898 14 0 _msize
+FUNC 6b2c 15 0 _msize
+4898 5 39 561
+489d f 43 561
+6b2c 13 43 561
+6b3f 2 50 561
+19e0 11 46 561
+19f1 2 50 561
+FUNC 3c6c 2 0 _fptrap
+FUNC 3c94 7 0 _fptrap
+3c94 0 46 4123
+3c6c 1 47 4123
+3c94 7 47 4123
+3c6d 1 48 4123
+FUNC 6dab 106 0 __report_gsfailure
+6dab b 140 1392
+6db6 5 170 1392
+6dbb 6 171 1392
+6dc1 6 172 1392
+6dc7 6 173 1392
+6dcd 6 174 1392
+6dd3 6 175 1392
+6dd9 7 176 1392
+6de0 7 177 1392
+6de7 7 178 1392
+6dee 7 179 1392
+6df5 7 180 1392
+6dfc 7 181 1392
+6e03 1 182 1392
+6e04 6 183 1392
+6e0a 3 190 1392
+6e0d 5 191 1392
+6e12 3 192 1392
+6e15 5 193 1392
+6e1a 3 194 1392
+6e1d 5 195 1392
+6e22 6 201 1392
+6e28 a 204 1392
+6e32 a 206 1392
+6e3c a 285 1392
+6e46 a 286 1392
+6e50 b 293 1392
+6e5b b 294 1392
+6e66 b 297 1392
+6e71 8 298 1392
+6e79 8 302 1392
+6e81 b 304 1392
+6e8c 9 313 1392
+6e95 8 315 1392
+6e9d 12 319 1392
+6eaf 2 320 1392
+FUNC 1284 1c 0 _calloc_impl
+FUNC 1b18 14 0 _calloc_impl
+FUNC 1b5c 10 0 _calloc_impl
+FUNC 2d48 6 0 _calloc_impl
+FUNC 3488 14 0 _calloc_impl
+FUNC 3e7c 3 0 _calloc_impl
+FUNC 40e4 f 0 _calloc_impl
+FUNC 4c60 10 0 _calloc_impl
+FUNC 5650 1 0 _calloc_impl
+FUNC 5898 16 0 _calloc_impl
+FUNC 5f88 13 0 _calloc_impl
+FUNC 5fc0 6 0 _calloc_impl
+FUNC 68a8 16 0 _calloc_impl
+FUNC 6b60 10 0 _calloc_impl
+FUNC 6c7c 8 0 _calloc_impl
+5898 5 21 291
+589d 11 26 291
+40e4 d 28 291
+68a8 16 28 291
+40f1 2 69 291
+3488 7 30 291
+348f d 34 291
+5650 1 35 291
+1b5c 2 39 291
+1b5e e 41 291
+1284 f 44 291
+1293 d 47 291
+5f88 13 47 291
+1b18 14 59 291
+4c60 10 61 291
+5fc0 6 62 291
+6c7c 8 63 291
+6b60 10 52 291
+2d48 6 53 291
+3e7c 1 53 291
+3e7d 2 69 291
+FUNC 1048 16 0 realloc
+FUNC 11a0 e 0 realloc
+FUNC 1744 2 0 realloc
+FUNC 1b34 7 0 realloc
+FUNC 261c 22 0 realloc
+FUNC 2ae0 8 0 realloc
+FUNC 3d30 12 0 realloc
+FUNC 3df8 3 0 realloc
+FUNC 4230 f 0 realloc
+FUNC 4284 10 0 realloc
+FUNC 4cb0 1 0 realloc
+FUNC 5960 1c 0 realloc
+FUNC 62a4 14 0 realloc
+FUNC 6528 1 0 realloc
+FUNC 6550 12 0 realloc
+FUNC 65dc b 0 realloc
+FUNC 6654 12 0 realloc
+FUNC 6734 14 0 realloc
+62a4 5 62 618
+62a9 f 67 618
+65dc 9 68 618
+65e5 2 117 618
+6654 1 117 618
+6655 11 71 618
+4284 9 73 618
+1b34 1 74 618
+428d 7 74 618
+1b35 6 109 618
+11a0 e 83 618
+4cb0 1 84 618
+261c 14 85 618
+2630 e 94 618
+3d30 12 94 618
+6734 14 109 618
+4230 f 81 618
+6550 7 89 618
+6557 b 90 618
+1744 2 91 618
+3df8 1 91 618
+6528 1 91 618
+3df9 2 117 618
+5960 16 111 618
+5976 6 112 618
+1048 16 103 618
+2ae0 8 105 618
+FUNC 1000 7 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 11b0 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 17c4 8 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 1ac4 6 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 21f4 c 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 2234 9 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 2354 f 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 242c 12 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 2710 3 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 2794 b 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 28d0 13 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 31f8 5 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 327c 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 32c0 4a 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 336c 20 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 36f8 f 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 37e0 10 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 3c30 1 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 3f94 e 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4300 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4338 11 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 497c 16 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4b10 15 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4c70 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4ce8 10 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4db4 1e 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 4e68 12 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 54e8 3 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 5574 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 55d0 2 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 55f8 8 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 5628 8 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 578c 3 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 5838 24 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 58f4 c 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 5f44 7 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 61fc f 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6328 14 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 63a0 c 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6404 6 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 65e8 28 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6624 10 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6ad4 16 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6d80 e 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6eb4 3 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+FUNC 6f10 f 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+65e8 12 96 3447
+65fa 16 101 3447
+2354 f 102 3447
+2710 3 102 3447
+28d0 5 102 3447
+31f8 5 102 3447
+36f8 f 102 3447
+28d5 e 106 3447
+3c30 1 107 3447
+54e8 3 109 3447
+32f8 3 113 3447
+32fb f 133 3447
+2794 b 134 3447
+32c0 36 145 3447
+1000 7 146 3447
+1ac4 6 149 3447
+4300 14 149 3447
+4c70 14 149 3447
+5574 14 149 3447
+55f8 8 149 3447
+578c 3 149 3447
+58f4 c 149 3447
+63a0 c 149 3447
+6ad4 16 149 3447
+6eb4 3 149 3447
+6f10 3 150 3447
+6f13 c 151 3447
+4db4 1e 160 3447
+5838 24 169 3447
+6328 14 172 3447
+4ce8 10 175 3447
+6d80 e 177 3447
+4b10 10 186 3447
+4b20 5 190 3447
+11b0 14 196 3447
+2234 9 196 3447
+327c 14 196 3447
+497c 16 196 3447
+4e68 12 196 3447
+55d0 2 196 3447
+5628 8 196 3447
+61fc f 196 3447
+6624 10 196 3447
+3f94 e 197 3447
+336c 20 207 3447
+17c4 2 220 3447
+37e0 10 220 3447
+17c6 6 223 3447
+4338 11 233 3447
+6404 6 233 3447
+5f44 7 240 3447
+21f4 8 242 3447
+21fc 4 244 3447
+242c 12 245 3447
+FUNC 3204 2 0 __crtLCMapStringA
+FUNC 3c24 7 0 __crtLCMapStringA
+FUNC 610c 47 0 __crtLCMapStringA
+610c 8 258 3447
+6114 b 259 3447
+3c24 7 271 3447
+611f 34 271 3447
+3204 2 272 3447
+FUNC 1198 3 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 17b4 e 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 19ac 2 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 24a4 14 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 3318 33 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 357c 2b 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 43c4 b 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 4624 14 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 4d9c 11 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 5094 a 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 5b4c 12 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 5efc c 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 5f38 6 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 6420 c 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 68c0 14 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 6910 12 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 6bf0 28 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+FUNC 6c20 8 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+6bf0 12 63 3507
+6c02 7 67 3507
+6c09 f 83 3507
+43c4 b 84 3507
+3318 33 95 3507
+6c20 8 96 3507
+1198 3 99 3507
+19ac 2 99 3507
+24a4 14 99 3507
+4624 14 99 3507
+5b4c 12 99 3507
+5efc c 99 3507
+5f38 6 99 3507
+6420 c 99 3507
+68c0 14 99 3507
+17b4 2 100 3507
+17b6 c 101 3507
+357c f 103 3507
+358b 1c 111 3507
+4d9c 11 116 3507
+5094 6 118 3507
+509a 4 120 3507
+6910 12 121 3507
+FUNC 25dc 40 0 __crtGetStringTypeA
+FUNC 4104 7 0 __crtGetStringTypeA
+FUNC 5ca0 2 0 __crtGetStringTypeA
+25dc 8 133 3507
+25e4 b 134 3507
+25ef 2d 145 3507
+4104 7 145 3507
+5ca0 2 146 3507
+FUNC 2e0c 37b 0 __free_lc_time
+FUNC 641c 3 0 __free_lc_time
+2e0c 6 228 1800
+2e12 10 229 1800
+2e24 8 232 1800
+2e2c 8 233 1800
+2e34 8 234 1800
+2e3c 8 235 1800
+2e44 8 236 1800
+2e4c 8 237 1800
+2e54 7 238 1800
+2e5b 8 240 1800
+2e63 8 241 1800
+2e6b 8 242 1800
+2e73 8 243 1800
+2e7b 8 244 1800
+2e83 8 245 1800
+2e8b 8 246 1800
+2e93 8 248 1800
+2e9b b 249 1800
+2ea6 8 250 1800
+2eae 8 251 1800
+2eb6 8 252 1800
+2ebe 8 253 1800
+2ec6 8 254 1800
+2ece 8 255 1800
+2ed6 8 256 1800
+2ede 8 257 1800
+2ee6 8 258 1800
+2eee 8 259 1800
+2ef6 8 261 1800
+2efe 8 262 1800
+2f06 8 263 1800
+2f0e 8 264 1800
+2f16 8 265 1800
+2f1e b 266 1800
+2f29 b 267 1800
+2f34 b 268 1800
+2f3f b 269 1800
+2f4a b 270 1800
+2f55 b 271 1800
+2f60 b 272 1800
+2f6b b 274 1800
+2f76 b 275 1800
+2f81 b 277 1800
+2f8c b 278 1800
+2f97 b 279 1800
+2fa2 b 282 1800
+2fad b 283 1800
+2fb8 b 284 1800
+2fc3 b 285 1800
+2fce e 286 1800
+2fdc b 287 1800
+2fe7 b 288 1800
+2ff2 b 290 1800
+2ffd b 291 1800
+3008 b 292 1800
+3013 b 293 1800
+301e b 294 1800
+3029 b 295 1800
+3034 b 296 1800
+303f b 298 1800
+304a b 299 1800
+3055 b 300 1800
+3060 b 301 1800
+306b b 302 1800
+3076 b 303 1800
+3081 e 304 1800
+308f b 305 1800
+309a b 306 1800
+30a5 b 307 1800
+30b0 b 308 1800
+30bb b 309 1800
+30c6 b 311 1800
+30d1 b 312 1800
+30dc b 313 1800
+30e7 b 314 1800
+30f2 b 315 1800
+30fd b 316 1800
+3108 b 317 1800
+3113 b 318 1800
+311e b 319 1800
+3129 b 320 1800
+3134 e 321 1800
+3142 b 322 1800
+314d b 324 1800
+3158 b 325 1800
+3163 b 327 1800
+316e b 328 1800
+3179 e 329 1800
+641c 1 329 1800
+641d 2 332 1800
+FUNC 1308 14 0 __free_lconv_num
+FUNC 14ec 7 0 __free_lconv_num
+FUNC 24c0 7 0 __free_lconv_num
+FUNC 2d64 14 0 __free_lconv_num
+FUNC 3194 14 0 __free_lconv_num
+FUNC 33c0 7 0 __free_lconv_num
+FUNC 3c9c 7 0 __free_lconv_num
+FUNC 42ec 3 0 __free_lconv_num
+FUNC 441c 7 0 __free_lconv_num
+FUNC 448c 14 0 __free_lconv_num
+FUNC 5688 14 0 __free_lconv_num
+FUNC 5cdc 17 0 __free_lconv_num
+5cdc 6 218 1742
+5ce2 11 219 1742
+2d64 14 222 1742
+441c 7 223 1742
+448c 14 225 1742
+33c0 7 226 1742
+5688 14 228 1742
+3c9c 7 229 1742
+1308 14 231 1742
+24c0 7 232 1742
+3194 14 234 1742
+14ec 7 235 1742
+42ec 1 235 1742
+42ed 2 236 1742
+FUNC 1028 14 0 __free_lconv_mon
+FUNC 16f4 14 0 __free_lconv_mon
+FUNC 2040 14 0 __free_lconv_mon
+FUNC 2724 7 0 __free_lconv_mon
+FUNC 2788 7 0 __free_lconv_mon
+FUNC 2834 3 0 __free_lconv_mon
+FUNC 28f0 7 0 __free_lconv_mon
+FUNC 2b7c 7 0 __free_lconv_mon
+FUNC 3360 7 0 __free_lconv_mon
+FUNC 34d8 14 0 __free_lconv_mon
+FUNC 37cc 7 0 __free_lconv_mon
+FUNC 3bac 14 0 __free_lconv_mon
+FUNC 3ddc 14 0 __free_lconv_mon
+FUNC 4a80 7 0 __free_lconv_mon
+FUNC 4aa0 7 0 __free_lconv_mon
+FUNC 4b34 14 0 __free_lconv_mon
+FUNC 4dec 7 0 __free_lconv_mon
+FUNC 4e2c 14 0 __free_lconv_mon
+FUNC 4e5c 7 0 __free_lconv_mon
+FUNC 4efc 14 0 __free_lconv_mon
+FUNC 4f64 7 0 __free_lconv_mon
+FUNC 567c 7 0 __free_lconv_mon
+FUNC 58dc 16 0 __free_lconv_mon
+FUNC 594c 14 0 __free_lconv_mon
+FUNC 5b38 14 0 __free_lconv_mon
+FUNC 5cb4 7 0 __free_lconv_mon
+FUNC 6264 14 0 __free_lconv_mon
+FUNC 64f8 14 0 __free_lconv_mon
+58dc 6 270 1685
+58e2 10 271 1685
+3bac 14 274 1685
+2788 7 275 1685
+16f4 14 277 1685
+2b7c 7 278 1685
+4b34 14 280 1685
+2724 7 281 1685
+4efc 14 283 1685
+4f64 7 284 1685
+3ddc 14 286 1685
+28f0 7 287 1685
+34d8 14 289 1685
+37cc 7 290 1685
+594c 14 292 1685
+4e5c 7 293 1685
+5b38 14 295 1685
+5cb4 7 296 1685
+2040 14 298 1685
+3360 7 299 1685
+1028 14 301 1685
+567c 7 302 1685
+6264 14 304 1685
+4a80 7 305 1685
+4e2c 14 307 1685
+4dec 7 308 1685
+64f8 14 310 1685
+2834 1 311 1685
+4aa0 7 311 1685
+2835 2 312 1685
+FUNC 1a0a ba 0 _VEC_memzero
+FUNC 637c 10 0 __sse2_available_init
+637c 0 30 4315
+637c d 31 4315
+6389 2 32 4315
+638b 1 33 4315
+FUNC 1c38 103 0 _VEC_memcpy
+FUNC 6a38 2c 0 _alloca_probe_16
+6a38 0 44 4274
+6a38 1 46 4274
+6a39 4 47 4274
+6a3d 2 48 4274
+6a3f 3 49 4274
+6a42 2 50 4274
+6a44 2 51 4274
+6a46 2 52 4274
+6a48 1 53 4274
+6a49 5 54 4274
+6a4e 1 59 4274
+6a4f 4 60 4274
+6a53 2 61 4274
+6a55 3 62 4274
+6a58 2 63 4274
+6a5a 2 64 4274
+6a5c 2 65 4274
+6a5e 1 66 4274
+6a5f 5 67 4274
+PUBLIC 6a4e 0 _alloca_probe_8
+FUNC 1d6e 34 0 _allmul
+1d6e 0 47 2803
+1d6e 4 63 2803
+1d72 4 64 2803
+1d76 2 65 2803
+1d78 4 66 2803
+1d7c 2 67 2803
+1d7e 4 69 2803
+1d82 2 70 2803
+1d84 3 72 2803
+1d87 1 75 2803
+1d88 2 83 2803
+1d8a 2 84 2803
+1d8c 4 86 2803
+1d90 4 87 2803
+1d94 2 88 2803
+1d96 4 90 2803
+1d9a 2 91 2803
+1d9c 2 92 2803
+1d9e 1 94 2803
+1d9f 3 96 2803
+FUNC 1680 2b 0 _chkstk
+1680 0 65 4276
+1680 1 69 4276
+1681 4 73 4276
+1685 2 74 4276
+1687 2 79 4276
+1689 2 80 4276
+168b 2 81 4276
+168d 2 83 4276
+168f 5 84 4276
+1694 2 87 4276
+1696 2 88 4276
+1698 2 89 4276
+169a 1 90 4276
+169b 1 91 4276
+169c 2 92 4276
+169e 3 93 4276
+16a1 1 94 4276
+16a2 5 98 4276
+16a7 2 99 4276
+16a9 2 100 4276
+FUNC 5be0 46 0 strcspn
+5be0 4 191 2794
+5be4 2 198 2794
+5be6 1 199 2794
+5be7 1 200 2794
+5be8 1 201 2794
+5be9 1 202 2794
+5bea 1 203 2794
+5beb 1 204 2794
+5bec 1 205 2794
+5bed 1 206 2794
+5bee 6 212 2794
+5bf4 2 216 2794
+5bf6 2 217 2794
+5bf8 2 218 2794
+5bfa 3 219 2794
+5bfd 4 220 2794
+5c01 2 221 2794
+5c03 3 227 2794
+5c06 6 229 2794
+5c0c 3 234 2794
+5c0f 2 236 2794
+5c11 2 237 2794
+5c13 2 238 2794
+5c15 3 239 2794
+5c18 4 240 2794
+5c1c 2 245 2794
+5c1e 2 255 2794
+5c20 3 257 2794
+5c23 3 259 2794
+FUNC 1bcb 40 0 strpbrk
+1bcb 4 191 2794
+1bcf 2 198 2794
+1bd1 1 199 2794
+1bd2 1 200 2794
+1bd3 1 201 2794
+1bd4 1 202 2794
+1bd5 1 203 2794
+1bd6 1 204 2794
+1bd7 1 205 2794
+1bd8 1 206 2794
+1bd9 6 212 2794
+1bdf 2 216 2794
+1be1 2 217 2794
+1be3 2 218 2794
+1be5 3 219 2794
+1be8 4 220 2794
+1bec 2 221 2794
+1bee 5 227 2794
+1bf3 2 236 2794
+1bf5 2 237 2794
+1bf7 2 238 2794
+1bf9 3 239 2794
+1bfc 4 240 2794
+1c00 2 247 2794
+1c02 3 248 2794
+1c05 3 257 2794
+1c08 3 259 2794
+FUNC 3bc0 61 0 __ascii_strnicmp
+3bc0 6 69 2798
+3bc6 3 75 2798
+3bc9 2 76 2798
+3bcb 2 77 2798
+3bcd 3 79 2798
+3bd0 3 80 2798
+3bd3 2 82 2798
+3bd5 2 83 2798
+3bd7 5 84 2798
+3bdc 2 89 2798
+3bde 2 91 2798
+3be0 2 93 2798
+3be2 2 95 2798
+3be4 2 97 2798
+3be6 2 98 2798
+3be8 3 100 2798
+3beb 3 101 2798
+3bee 2 103 2798
+3bf0 2 104 2798
+3bf2 2 106 2798
+3bf4 2 107 2798
+3bf6 2 109 2798
+3bf8 2 112 2798
+3bfa 2 113 2798
+3bfc 2 115 2798
+3bfe 2 116 2798
+3c00 2 118 2798
+3c02 2 121 2798
+3c04 2 122 2798
+3c06 3 124 2798
+3c09 2 125 2798
+3c0b 2 128 2798
+3c0d 2 129 2798
+3c0f 2 130 2798
+3c11 5 133 2798
+3c16 2 134 2798
+3c18 2 135 2798
+3c1a 2 138 2798
+3c1c 5 140 2798
+PUBLIC 2140 10 RtlUnwind
+STACK WIN 4 2cec 54 6 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b70 a 3 0 0 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 25a8 21 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 131c 14 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b94 16 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11e8 1e 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b3c 10 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 669c 7 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 16d4 7 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 16db 19 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 211c c 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5458 9 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 40f4 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1fd4 8 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1fdc 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 46d8 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 65a8 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1fda 2 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1fdc 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 46d8 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 65a8 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 12a0 b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1ff0 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 198c 4 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1ff5 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 455c 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d0c 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 38be 161 c 0 0 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 39e1 14 0 0 0 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 620c a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 66c3 70 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 672a 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 26fc 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2701 f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bcc 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3888 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ea0 1f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3889 17 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4778 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 199c 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2380 6 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ce8 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4448 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 477d 17 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 57d0 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a40 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 642c 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a28 e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 21a0 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1db0 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21a5 19 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24cc 1a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c14 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a9b 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2100 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2b50 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4594 33 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4597 2f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2944 6 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1bc8 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1de4 e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22bc 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 294a a 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3dd4 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e80 f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6568 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1bc8 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1de4 e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 22bc 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 294a a 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3dd4 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3e80 f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6568 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 69e4 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d44 c 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2470 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2558 27 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2660 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 269c 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 27a4 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 34ec 24 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 48dc 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4bf8 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4dd4 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b74 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 69e9 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f60 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2470 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2559 26 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2660 9 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 27a4 2 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 48dc 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2470 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 255a 25 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2660 8 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 27a4 2 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 48dc 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 35a7 140 c 0 c 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 36d2 e 0 0 c 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 6d68 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5464 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1df4 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5544 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3218 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6410 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b78 4 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2888 9 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 44d0 16 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4858 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6415 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e7c 1b 1b 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11c4 12 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2028 16 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 20c0 12 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2460 f 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2648 f 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 26c4 1a 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 349c 27 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 43a4 1e 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4428 a 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 47c0 2b 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49a4 18 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a64 1c 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d50 17 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e97 1e 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f5c 2 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5810 25 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59cc 16 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d18 34 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64e8 5 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6648 7 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6678 22 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6894 11 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 70ac 18 0 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e92 5 5 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 11c4 12 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 2028 16 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 20c0 12 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 2460 f 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 2648 8 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 26c4 1a 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 349c 27 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 43a4 1e 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4428 a 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 47c0 2b 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 49a4 18 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4a64 1c 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4d50 17 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4e97 1e 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4f5c 2 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 5810 25 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 59cc 16 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 5d18 34 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 64e8 5 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 6648 7 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 6678 22 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 6894 11 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 70ac 18 0 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 4e93 4 4 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 11c4 12 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 2028 16 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 20c0 12 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 2460 f 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 2648 5 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 26c4 1a 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 349c 27 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 43a4 1e 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 4428 a 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 47c0 2b 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 49a4 18 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 4a64 1c 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 4d50 17 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 4e97 1e 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 4f5c 2 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 5810 25 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 59cc 16 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 5d18 34 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 64e8 5 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 6648 7 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 6678 22 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 6894 11 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 70ac 18 0 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 11c4 12 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 2028 16 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 20c0 12 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 2460 f 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 2648 4 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 26c4 1a 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 349c 27 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 43a4 1e 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 4428 a 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 47c0 2b 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 49a4 18 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 4a64 1c 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 4d50 17 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 4e97 1e 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 4f5c 2 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 5810 25 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 59cc 16 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 5d18 34 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 64e8 5 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 6648 7 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 6678 22 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 6894 11 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 70ac 18 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 1984 1 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2388 16 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4ab4 16 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4be0 17 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5ac8 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 650c 6 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1490 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1540 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1720 14 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 174c 1b 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19d8 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2054 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2218 9 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2440 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2870 e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2928 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2ae8 11 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d78 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 356c f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 38a8 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ed0 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fa4 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 44e8 7 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4810 17 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cc8 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f50 7 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5564 e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56d4 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 57a4 e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59f8 16 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5bbc e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ca4 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d60 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e38 18 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e60 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6090 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 61f0 7 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6228 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 648c c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64dc 5 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6512 14 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 66a4 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 68e4 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ee8 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f98 c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1490 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1540 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1720 14 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 174c 1b 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 19d8 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2054 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2218 9 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2440 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2870 e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2928 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2ae8 11 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2d78 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 356c f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 38a8 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3ed0 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3fa4 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 44e8 7 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4810 17 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4cc8 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4f50 7 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5564 e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 56d4 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 57a4 e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 59f8 16 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5bbc e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5ca4 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5d60 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5e38 18 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5e60 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6090 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 61f0 7 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6228 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 648c c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 64dc 5 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6512 14 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 66a4 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 68e4 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6ee8 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6f98 c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1490 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1540 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1720 14 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 174c 1b 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 19d8 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2440 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2870 e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2928 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2ae8 11 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2d78 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 356c f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 38a8 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3ed0 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3fa4 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 44e8 7 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4810 17 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4cc8 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4f50 7 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5564 e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 56d4 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 57a4 e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 59f8 16 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5bbc e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5ca4 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5d60 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5e38 18 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5e60 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6090 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 61f0 7 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6228 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 648c c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 64dc 5 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 66a4 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 68e4 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6ee8 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6f98 c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1490 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1750 17 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 2440 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 2928 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 2ae8 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 2d78 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 38a8 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 3ed0 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 3fa4 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 44e8 7 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 4cc8 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 56d4 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 59f8 16 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 5ca4 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 5d60 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 5e38 18 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 6090 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 61f0 7 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 6228 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 648c c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 64dc 5 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 66a4 c 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 68e4 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 6ee8 3 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 4139 dc 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4148 a8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 414f a0 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4191 5d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1fac d d 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1018 8 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19b4 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19f4 2 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1dd0 14 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1fb9 1b 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2058 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 209c 9 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2364 1a 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 253c 4 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2598 9 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 25cc 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2718 b 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2730 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28a8 a 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28fc 2 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 290c 14 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b34 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bfc 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d88 7 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3730 d 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 377c 2 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37b0 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c38 24 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c84 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3db8 1b 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e90 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3efc 13 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4110 12 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42dc f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42f0 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4518 6 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4610 7 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4684 11 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 46f8 13 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4848 a 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4994 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49bc e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4aac 1 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cb8 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ed8 24 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f10 3 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f30 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 501c 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5518 3 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 569c 3 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 57bc 12 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a50 10 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5cc0 14 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e84 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6448 f 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6530 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 66b0 13 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6970 4 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6aec 7 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f30 e 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1fb6 3 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1018 8 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 19b4 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 19f4 2 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1dd0 14 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1fb9 1b 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2058 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 209c 9 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2364 1a 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 253c 4 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2598 9 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 25cc 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2718 b 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2730 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 28a8 a 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 28fc 2 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 290c 14 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2b34 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2bfc 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2d88 7 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3730 d 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 377c 2 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 37b0 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3c38 24 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3c84 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3db8 1b 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3e90 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3efc 13 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4110 12 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 42dc f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 42f0 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4518 6 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4610 7 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4684 11 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 46f8 5 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4848 a 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4994 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 49bc e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4aac 1 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4cb8 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4ed8 24 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4f10 3 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4f30 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 501c 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 569c 3 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 57bc 12 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 5a50 10 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 5cc0 14 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 5e84 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 6448 f 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 6530 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 66b0 13 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 6aec 7 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 6f30 e 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1018 8 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 19b4 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 19f4 2 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 1dd0 14 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 1fb9 1b 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2058 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 209c 9 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2364 1a 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 253c 4 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2598 9 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 25cc 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2718 b 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2730 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 28a8 a 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 28fc 2 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 290c 14 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2b34 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2bfc 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2d88 7 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3730 d 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 377c 2 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 37b0 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3c38 24 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3c84 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3db8 1b 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3e90 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3efc 13 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4110 12 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 42dc f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 42f0 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4518 6 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4610 7 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4684 11 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 46f8 4 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4848 a 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4994 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 49bc e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4aac 1 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4cb8 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4ed8 24 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4f10 3 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4f30 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 501c 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 569c 3 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 57bc 12 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5a50 10 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5cc0 14 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5e84 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6448 f 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6530 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 66b0 13 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6aec 7 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6f30 e 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2008 d d 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1ad8 3 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2015 12 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22dc 16 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2320 5 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2934 3 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 33cc 17 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4254 30 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 432c 5 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ad0 28 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b8c 2c 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c4c 12 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6960 10 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2011 4 4 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 1ad8 3 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2015 12 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 22dc 16 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2320 3 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2934 3 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 33cc 17 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 4254 30 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 432c 5 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 4ad0 28 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 4b8c 2c 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 4c4c 12 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 6960 10 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2014 1 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 1ad8 3 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2015 12 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 22dc 16 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2320 2 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2934 3 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 33cc 17 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 4254 30 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 432c 5 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 4ad0 28 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 4b8c 2c 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 4c4c 12 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 6960 10 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 1ad8 3 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2015 12 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 22dc 16 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2320 1 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2934 3 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 33cc 17 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4254 30 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 432c 5 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4ad0 28 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4b8c 2c 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4c4c 12 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 6960 10 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3fb4 a a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14f8 30 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 23d0 10 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 293c 1 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bbc e 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3524 c 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3548 f 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d10 18 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3df0 8 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3dfc 1c 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fbe 18 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 436c 12 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 68d4 9 0 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fbd 1 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 14f8 2e 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 23d0 10 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 293c 1 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2bbc e 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3524 c 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3548 f 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3d10 18 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3df0 8 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3dfc 1c 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 3fbe 18 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 436c 12 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 68d4 9 0 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 14f8 2d 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 23d0 10 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 293c 1 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2bbc e 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3524 c 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3548 f 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3d10 18 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3df0 8 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3dfc 1c 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 3fbe 18 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 436c 12 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 68d4 9 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 14f9 29 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 23d0 10 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 293c 1 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3524 c 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3d10 18 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3dfc 1c 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 68d4 9 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 5c70 9 9 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1008 b 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1258 f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 12c8 e 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1548 33 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1708 18 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17a4 10 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 197c 2 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1988 3 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22f8 1c 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 23e0 4c 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 244c 14 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24b8 8 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24e8 1c 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 26e0 1c 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2ad0 10 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b6c f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bf0 5 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d54 a 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2db0 16 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2dcc 8 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31a8 4 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31e0 16 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3260 f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 334c 14 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 33ac 12 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3cb0 3 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d28 6 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e24 2 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e34 20 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e5c 1f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42a4 f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4380 f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4434 12 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4618 6 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 47ec 14 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4920 a 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5c79 27 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d6c 8 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 617c 18 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6248 a 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 636c e 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 63f0 14 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a74 a 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ba0 3f 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c4c 14 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c84 8 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f90 3 0 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1008 b 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1258 f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 12c8 e 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1548 33 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1708 18 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 17a4 10 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 197c 2 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1988 1 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 22f8 1c 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 23e0 4c 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 244c 14 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 24b8 8 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 24e8 1c 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 26e0 1c 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2ad0 10 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2b6c f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2bf0 5 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2d54 a 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2db0 16 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 31a8 4 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 31e0 16 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3260 f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 334c 14 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 33ac 12 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3cb0 3 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3d28 6 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3e24 2 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3e34 20 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 3e5c 1f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 42a4 f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 4380 f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 4434 12 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 4618 6 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 47ec 14 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 4920 a 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 5c79 27 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 5d6c 8 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 617c 18 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6248 a 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 636c e 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 63f0 14 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6a74 a 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6ba0 3f 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6c4c 14 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6c84 8 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 6f90 3 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1008 b 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1258 f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 12c8 e 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1548 33 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1708 18 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 17a4 10 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 197c 2 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 22f8 1c 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 23e1 10 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 244c 14 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 24b8 8 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 24e8 1c 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 26e0 1c 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2ad0 10 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2b6c f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2bf0 5 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2d54 a 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2db0 16 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 31a8 4 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 31e0 16 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 3260 f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 334c 14 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 33ac 12 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 3cb0 3 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 3d28 6 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 3e24 2 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 3e34 20 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 42a4 f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 4380 f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 4434 12 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 4618 6 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 47ec 14 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 4920 a 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 5d6c 8 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 617c 18 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 6248 a 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 636c e 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 63f0 14 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 6a74 a 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 6ba0 3f 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 6c4c 14 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1008 b 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 1258 f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 12c8 e 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 1548 33 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 1708 18 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 17a4 10 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 197c 1 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 22f8 1c 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 23e2 f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 244c 14 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 24b8 8 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 24e8 1c 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 26e0 1c 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2ad0 10 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2b6c f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2bf0 5 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2d54 a 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2db0 16 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 31a8 4 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 31e0 16 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 3260 f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 334c 14 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 33ac 12 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 3cb0 3 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 3d28 6 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 3e24 2 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 3e34 20 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 42a4 f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 4380 f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 4434 12 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 4618 6 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 47ec 14 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 4920 a 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 5d6c 8 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 617c 18 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 6248 a 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 636c e 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 63f0 14 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 6a74 a 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 6ba0 3f 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 6c4c 14 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 5754 e e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 12ac 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2d94 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 447c 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5762 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6958 2 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5757 b b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 12ac 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2d94 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 447c 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5762 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6958 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 12ac 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2d94 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 447c 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5762 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6958 2 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 57e0 e e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2480 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3cf8 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3e2c 2 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 57ee 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5c60 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 57e3 b b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2480 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3cf8 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3e2c 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 57ee 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5c60 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2480 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3cf8 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3e2c 2 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 57ee 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5c60 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1474 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2bb0 9 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3240 3 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3243 1c 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 338c 1b 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6444 4 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3243 1c 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 338c 1b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6444 3 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2068 16 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2b9c 14 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 48c8 14 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5b84 5 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5e0c e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 10ca b4 c 0 8 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 1166 e 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1175 8 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2954 4 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2958 24 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4520 1c 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 45cc 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 48ec 23 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4b28 c 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 616c 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2957 1 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2958 24 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4520 1c 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 45cc 1e 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 48ec 23 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4b28 b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 616c 9 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2958 24 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4520 1c 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 45cc 1e 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 48ec 23 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4b28 8 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 616c 9 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4314 3 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 12c0 7 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4317 15 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 44f4 4 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4f9c 1 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 12c0 7 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4317 15 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 44f4 3 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4f9c 1 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1330 12f c 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 1447 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1453 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 6458 3 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1608 54 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2228 5 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3768 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3880 2 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3ba8 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3cb8 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3d90 28 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 45ec 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 47a4 19 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4c18 1f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 547c 52 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 54f8 16 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 58b0 24 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 597c 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5c28 e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 645b 1b 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1608 54 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2228 5 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3768 13 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3880 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3ba8 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3cb8 1e 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3d90 28 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 45ec 9 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 47a4 19 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4c18 1f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 547c 52 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 54f8 16 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 58b0 24 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 597c 33 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5c28 e 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 645b 1b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 1609 53 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2228 5 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3768 13 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3880 2 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3ba8 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3cb8 1e 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3d90 28 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 47a4 19 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4c18 1f 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 547c 52 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 54f8 16 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 58b0 24 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 597c 33 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5c28 e 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 472c 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3b48 17 17 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10b0 1a 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1180 c 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1528 17 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1734 10 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1768 2c 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 210c 10 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 267c 13 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bd0 20 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3270 a 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3754 13 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b5f 1f 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d54 3 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3f88 c 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42b4 d 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f40 10 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a60 1c 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a84 22 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d88 d 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e70 f 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f50 12 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5fcc 12 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 61bc 1d 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6670 3 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a80 14 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6b0c 20 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6cd8 10 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b51 e e 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 1180 c 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 1734 10 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 1768 2c 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 210c 10 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 2bd0 20 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 3270 6 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 3b5f 1f 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 3d54 3 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 42b4 d 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 4f40 10 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 5a84 22 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 6670 3 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 6b0c 20 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 6cd8 10 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 3b55 a a 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 1180 c 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 1734 10 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 1768 2c 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 210c 10 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 2bd0 20 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 3270 5 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 3b5f 1f 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 3d54 3 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 42b4 d 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 4f40 10 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 5a84 22 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 6670 3 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 6b0c 20 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 6cd8 10 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 1180 c 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 1734 10 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 1768 2c 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 210c 10 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2bd0 20 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3270 4 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3b5f 1f 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3d54 3 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 42b4 d 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 4f40 10 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 5a84 22 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 6670 3 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 6b0c 20 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 6cd8 10 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2244 17 17 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 225b 18 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2740 48 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 33e4 d 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fd8 b 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4390 f 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d68 c 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5588 e 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 61a4 4 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6610 c 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 225a 1 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 225b 18 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 2740 48 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 33e4 d 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 3fd8 b 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4390 f 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4d68 c 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 5588 e 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 61a4 2 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 6610 c 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 225b 18 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2740 48 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 33e4 d 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3fd8 b 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4390 f 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 4d68 c 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 5588 e 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 61a4 1 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 6610 c 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2741 47 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 33e4 d 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 3fd8 b 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 4390 f 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 6610 c 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 4570 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3a1f 129 1a 0 c 8 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 812 - ^ =  $24 $T0 816 - ^ = 
+STACK WIN 4 5c38 25 3 0 14 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5c3b 21 0 0 14 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6922 2d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f50 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2130 4 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2134 7 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2dec 14 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4358 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 453c 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 479c 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4b48 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 55a8 27 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2133 1 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2134 7 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2dec 14 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4358 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 479c 3 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4b48 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 55a8 27 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2134 7 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2dec 14 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4358 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 479c 3 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4b48 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 55a8 27 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2298 a a 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 20ec 14 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 22a2 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 31d4 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3744 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4350 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 46e4 14 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4a54 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5554 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5ec4 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 63c0 d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6b90 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 229b 7 7 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 20ec 14 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 22a2 6 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 31d4 6 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3744 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4350 3 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 46e4 14 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4a54 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5554 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5ec4 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 63c0 d 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6b90 10 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 20ec 14 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 22a2 6 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 31d4 6 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3744 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4350 3 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 46e4 14 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4a54 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5554 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5ec4 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 63c0 d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6b90 10 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 20ec 14 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 31d4 6 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5554 10 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 63c0 d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6b90 10 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4218 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ff7 c2 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 40b0 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 44a0 9 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 118c b 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1af0 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3718 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 44a9 16 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5bb4 1 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 118c 9 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1af0 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3718 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 44a9 16 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5bb4 1 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2580 a a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14ac 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1990 c 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1da4 c 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 258a e 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e00 4 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4674 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 470c 4 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4794 2 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d40 e 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59b8 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6158 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a94 7 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c8c a 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2589 1 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 14ac 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1990 c 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1da4 c 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 258a e 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2e00 4 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4674 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 470c 2 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4794 2 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4d40 e 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 59b8 14 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6158 14 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6a94 7 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6c8c a 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 14ac 10 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1990 c 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1da4 c 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 258a e 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2e00 4 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4674 10 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 470c 1 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4794 2 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4d40 e 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 59b8 14 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6158 14 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6a94 7 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6c8c a 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5b20 6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14a0 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22f4 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2838 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28e4 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2da4 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 34d0 8 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d5c 16 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4580 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a4c 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cf8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4eb8 1f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a48 6 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b26 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b8c 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5df8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 60ec 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 65a0 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14a0 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 22f4 1 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2838 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 28e4 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2da4 a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 34d0 8 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3d5c 16 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4580 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4a4c 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4cf8 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4eb8 1f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5a48 6 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5b26 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5b8c 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5df8 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 60ec 2 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 65a0 2 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 14a0 7 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2838 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 28e4 7 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2da4 4 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 34d0 8 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3d5c 16 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4580 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4a4c 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4cf8 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4eb8 1f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5a48 6 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5df8 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 60ed 1 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 65a0 2 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 14a0 7 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2838 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 28e4 7 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2da4 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 34d0 8 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3d5c 16 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4580 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4a4c 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4cf8 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4eb8 1f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5a48 6 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5df8 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 65a0 2 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5f78 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1480 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 23bc 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3510 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ec8 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f7d 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ab4 1f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5774 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5d4c 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6c60 4 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4638 39 c 0 0 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 4658 4 0 0 0 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4834 11 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 15b8 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 63ac 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15d8 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3538 f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42c8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 45c8 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e1c f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 55f0 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 63b1 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15d8 18 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 42c8 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4e1c f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3708 d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 17d8 1a3 c 0 4 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 1939 14 0 0 4 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 502c f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2848 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6fd0 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5708 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1660 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 570d 1a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 60b0 4 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c18 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 43e8 f f 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2274 12 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2484 10 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2640 2 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b88 10 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 32ac 13 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4124 15 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 43f7 24 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 45f8 18 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a2c 20 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b68 2 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4bb8 18 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d84 5 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a0c 1a 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 43ef 8 8 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2274 12 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2484 10 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2640 2 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 2b88 10 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 32ac 13 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4124 15 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 43f7 24 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 45f8 18 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4a2c 20 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4b68 2 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4bb8 18 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4d84 3 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 6a0c 1a 0 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 43f0 7 7 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2274 12 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2484 10 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2640 2 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2b88 10 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 32ac 13 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4124 15 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 43f7 24 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 45f8 18 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4a2c 20 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4b68 2 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4bb8 18 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4d84 2 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6a0c 1a 0 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2274 12 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 2484 10 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 2640 2 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 2b88 10 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 32ac 13 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 4124 15 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 43f7 24 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 45f8 18 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 4a2c 20 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 4b68 2 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 4bb8 18 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 4d84 1 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 6a0c 1a 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 14bc 3 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14bf 2c 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2658 7 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 318c 5 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14bf 2c 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2658 6 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 318c 5 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 157b 3c c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 15b1 5 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 56a4 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ebc 4 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6154 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6b70 20 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6ec0 2 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6ebf 1 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6154 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6b70 20 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6ec0 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6154 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6b70 20 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6ec0 2 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4e40 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4af8 17 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e45 17 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5608 4 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 585c 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6fa4 1a 1a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1234 5 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b2c 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4948 13 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e08 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d9c 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d60 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6fbe 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6fb6 8 8 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1234 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1b2c 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4948 13 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4e08 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5d9c 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6d60 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6fbe 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6fb7 7 7 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1234 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1b2c 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4948 13 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4e08 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5d9c 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6d60 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6fbe 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1234 1 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 1b2c 2 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4948 13 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4e08 12 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5d9c 10 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6d60 3 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6fbe 12 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6fee bc 35 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 7079 13 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2148 1e 1e 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1064 4c 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 123c 1b 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1460 14 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19c4 12 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2166 22 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b00 14 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31b4 e 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3290 1a 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 36e8 8 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3794 1c 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 474c 1c 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 496c 10 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ca0 10 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d18 1c 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5640 2 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56e4 16 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5cf4 10 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e50 10 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ee8 13 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f18 c 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f6c f 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f7c 14 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 70d4 10 0 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 215e 8 8 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 1064 4c 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 123c 1b 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 1460 14 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 19c4 12 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 2166 22 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 2b00 14 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 31b4 e 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 3290 1a 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 36e8 8 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 3794 1c 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 474c 1c 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 496c 10 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 4ca0 10 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 4d18 1c 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 5640 2 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 56e4 16 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 5cf4 10 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 5e50 10 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 5ee8 13 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 5f18 c 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 6f6c 8 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 6f7c 14 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 70d4 10 0 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 2165 1 1 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 1064 4c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 123c 1b 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 1460 14 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 19c4 12 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 2166 22 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 2b00 14 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 31b4 e 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 3290 1a 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 36e8 8 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 3794 1c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 474c 1c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 496c 10 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 4ca0 10 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 4d18 1c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 5640 2 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 56e4 16 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 5cf4 10 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 5e50 10 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 5ee8 13 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 5f18 c 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 6f6c 5 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 6f7c 14 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 70d4 10 0 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 1064 4c 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 123c 1b 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 1460 14 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 19c4 12 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 2166 22 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 2b00 14 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 31b4 e 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3290 1a 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 36e8 8 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3794 1c 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 474c 1c 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 496c 10 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 4ca0 10 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 4d18 1c 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 5640 2 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 56e4 16 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 5cf4 10 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 5e50 10 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 5ee8 13 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 5f18 c 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 6f6c 4 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 6f7c 14 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 70d4 10 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3d78 a a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21d0 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28c0 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3784 a 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d82 e 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4880 18 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 48bc b 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b7c 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f58 4 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5448 e 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 55d8 12 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f9c 2 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5fb4 7 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6054 c 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6194 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d50 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d7e 4 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3784 a 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3d82 e 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4f58 2 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5fb4 7 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6194 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3784 a 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d82 e 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4f58 1 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5fb4 7 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6194 10 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 49dc e e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 103c c 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11d8 10 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 12fc b 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1ae0 e 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b4c f 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1e0c 5 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21e4 10 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 228c 4 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22b0 c 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3720 e 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37c0 b 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 43d4 14 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 46c8 10 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4828 c 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 495c a 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49ea 26 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c38 2 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c84 5 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a38 5 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5dc8 c 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 61e0 e 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6288 4 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 63e0 d 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a28 10 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6af4 18 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c3c e 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 70c4 10 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49e5 5 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1b4c f 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 49ea e 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4c38 2 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5a38 3 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6c3c e 0 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 49e9 1 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 11d8 10 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1b4c f 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 495c 8 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 49ea e 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4c38 2 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5a38 5 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 61e0 e 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6c3c e 0 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1b4c f 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 49ea e 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4c38 2 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5a38 1 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6c3c e 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 20dc 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 20d4 8 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 20e1 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5520 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15f0 a a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15fa e 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17cc c 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 23a0 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2494 a 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2858 18 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3208 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ca8 8 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4bd0 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5530 7 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5880 4 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f08 4 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f24 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15f6 4 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15fa e 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 23a0 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2494 a 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5530 7 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5880 2 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15fa e 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 23a0 10 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2494 a 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5530 7 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5880 1 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1b7c 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1268 d 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b81 11 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1e04 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31c4 f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 49cc f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5eac 15 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1275 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 69d4 7 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1488 6 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b04 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d3c 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5fe0 1f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 69db 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c64 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f40 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 69da 1 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1488 4 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1b04 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1d3c 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5fe0 1f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 69db 2 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6c64 18 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6f40 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1488 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1b04 12 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1d3c 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5fe0 1f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 69db 2 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6c64 18 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6f40 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5598 7 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3cd8 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 541c 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 553c 6 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 559f 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6950 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ec8 1f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6ef0 20 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 559e 1 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3cd8 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 541c 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 553c 4 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 559f 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6950 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6ec8 1f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6ef0 20 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3cd8 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 541c 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 553c 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 559f 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6950 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6ec8 1f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6ef0 20 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6f20 7 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2674 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b5c 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 38b8 6 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 435c f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 633c 1c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6580 1f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 65b0 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f27 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f26 1 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2674 3 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2b5c 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 38b8 4 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 435c f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 633c 1c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6580 1f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 65b0 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6f27 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2674 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2b5c 10 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 38b8 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 435c f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 633c 1c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6580 1f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 65b0 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6f27 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 28b4 c 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3d08 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5510 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5600 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5f14 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6294 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 68f4 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 69cc 6 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6fe0 e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5900 6 6 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2208 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 387c 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 48ac f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5906 3e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6be0 b 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5903 3 3 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2208 f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 387c 2 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 48ac f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5906 3e 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6be0 b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5904 2 2 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2208 f 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 387c 1 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 48ac f 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5906 3e 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6be0 b 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2c0c 17 17 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 12dc 18 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1794 f 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b6c 7 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2548 e 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2c23 22 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3238 8 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e54 2 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ee0 16 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 445c 20 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4800 f 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4910 8 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a8c 12 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d8c e 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 566c f 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56fc c 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59e4 14 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5aa8 6 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b08 17 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b60 14 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5db4 12 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6060 c 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 60b4 6 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6218 f 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 62b8 6a 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 697c 3 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6b44 1b 0 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2c22 1 1 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 12dc 18 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 1794 f 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 1b6c 7 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 2548 e 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 2c23 22 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 3238 8 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 3e54 2 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 3ee0 16 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 445c 20 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 4800 f 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 4910 8 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 4a8c 12 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 4d8c 7 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 566c f 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 56fc c 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 59e4 14 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 5aa8 6 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 5b08 17 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 5b60 14 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 5db4 12 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 6060 c 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 60b4 6 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 6218 f 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 62b8 6a 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 697c 3 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 6b44 1b 0 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 12dc 18 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 1794 f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 1b6c 7 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 2548 e 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 2c23 22 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 3238 8 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 3e54 2 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 3ee0 16 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 445c 20 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 4800 f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 4910 8 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 4a8c 12 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 4d8c 4 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 566c f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 56fc c 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 59e4 14 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 5aa8 6 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 5b08 17 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 5b60 14 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 5db4 12 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 6060 c 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 60b4 6 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 6218 f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 62b8 6a 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 697c 3 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 6b44 1b 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 2c45 a4 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 2cdd b 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 6cbc b b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 12b0 8 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2084 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2314 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2504 27 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2904 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3558 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d74 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 560c 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d04 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f68 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6cc7 11 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6cc5 2 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 12b0 8 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2084 18 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2314 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2504 27 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2904 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3558 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4d74 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 560c 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5d04 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5f68 a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6cc7 11 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3b80 9 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19fc e 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2690 7 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b98 3 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b89 1f 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e18 c 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4710 f 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4868 10 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56bc 16 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e20 16 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6020 1f 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6f64 2 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19fc e 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 2690 7 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 2b98 1 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 3b89 1f 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 3e18 c 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4710 f 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4868 10 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 56bc 16 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 5e20 16 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 6020 1f 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 6f64 2 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 64a8 1b 1b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1208 29 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 16ac 20 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1bc0 3 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2188 11 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 23b0 6 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2894 11 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b28 7 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 330c c 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 40bc e 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 454c f 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4720 6 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4768 f 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b58 10 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c40 c 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5404 12 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5728 2a 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5800 e 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ab0 17 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5adc 11 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ba8 c 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5bcc 14 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5fa4 8 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6010 f 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6074 1c 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 609c 14 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 60c0 2a 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 60f4 17 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6358 14 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 638c 11 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 63d4 5 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64c3 19 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64f0 3 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 65c4 18 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6974 7 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6a64 f 0 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64bb 8 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 1208 29 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 16ac 20 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 1bc0 3 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 2188 11 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 23b0 6 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 2894 11 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 2b28 7 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 330c c 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 40bc e 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 454c f 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 4720 6 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 4768 8 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 4b58 10 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 4c40 c 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5404 12 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5728 2a 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5800 e 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5ab0 17 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5adc 11 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5ba8 c 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5bcc 14 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 5fa4 8 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 6010 f 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 6074 1c 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 609c 14 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 60c0 2a 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 60f4 17 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 6358 14 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 638c 11 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 63d4 5 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 64c3 19 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 64f0 3 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 65c4 18 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 6974 7 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 6a64 f 0 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 64bf 4 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 1208 29 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 16ac 20 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 1bc0 3 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 2188 11 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 23b0 6 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 2894 11 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 2b28 7 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 330c c 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 40bc e 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 454c f 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 4720 6 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 4768 5 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 4b58 10 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 4c40 c 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5404 12 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5728 2a 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5800 e 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5ab0 17 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5adc 11 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5ba8 c 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5bcc 14 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 5fa4 8 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 6010 f 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 6074 1c 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 609c 14 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 60c0 2a 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 60f4 17 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 6358 14 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 638c 11 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 63d4 5 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 64c3 19 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 64f0 3 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 65c4 18 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 6974 7 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 6a64 f 0 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 1208 29 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 16ac 20 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 1bc0 3 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 2188 11 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 23b0 6 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 2894 11 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 2b28 7 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 330c c 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 40bc e 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 454c f 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4720 6 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4768 4 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4b58 10 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4c40 c 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5404 12 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5728 2a 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5800 e 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5ab0 17 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5adc 11 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5ba8 c 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5bcc 14 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 5fa4 8 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 6010 f 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 6074 1c 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 609c 14 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 60c0 2a 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 60f4 17 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 6358 14 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 638c 11 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 63d4 5 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 64c3 19 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 64f0 3 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 65c4 18 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 6974 7 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 6a64 f 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 1e11 19a c 0 4 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 1f72 8 0 0 4 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 165c 3 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5dd4 12 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6234 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1c0c 8 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1674 7 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1c14 24 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d74 2 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c90 e 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5430 16 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59b0 2 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6254 10 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 643c 3 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6498 10 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4930 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d08 e e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1bac 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 26b4 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2880 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37d8 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c70 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fe4 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a10 1c 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 54d8 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 54f0 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5620 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5dac 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6040 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6278 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6478 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6540 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d16 1a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d0e 8 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1bac 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 26b4 a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2880 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 37d8 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3c70 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3fe4 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4a10 1c 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 54d8 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 54f0 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5620 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5dac 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6040 11 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6278 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6478 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6540 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6d16 1a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6d0f 7 7 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1bac 12 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 26b4 a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2880 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 37d8 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3c70 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3fe4 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4a10 1c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 54d8 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 54f0 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5620 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5dac 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6040 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6278 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6478 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6540 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6d16 1a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1bac 12 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 26b4 a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2880 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 37d8 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3c70 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3fe4 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4a10 1c 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 54d8 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 54f0 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5620 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5dac 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6040 f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6278 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6478 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6540 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6d16 1a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5e94 6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2328 a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 252c 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b14 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 34c8 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d44 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c00 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f70 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 54d0 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5648 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5658 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5870 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a7c 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5e9a 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6578 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6668 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6cf0 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d30 1f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6d90 1b 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2328 a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 252c 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2b14 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 34c8 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3d44 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4c00 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4f70 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 54d0 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5648 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5658 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5870 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5a7c 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5e9a 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6578 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6668 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6cf0 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6d30 1f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6d90 1b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2328 a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 252c 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 2b14 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 34c8 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 3d44 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 4c00 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 4f70 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 54d0 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 5648 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 5658 12 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 5870 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 6578 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 6668 3 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 6cf0 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 6d31 1e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 6d90 1b 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 2328 a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 252c 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2b14 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 34c8 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3d44 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4c00 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4f70 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 54d0 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5648 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5658 12 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 5870 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6578 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6668 3 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6cf0 f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6d32 1d 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 6d90 1b 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 44f8 13 13 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1dbc 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 20ac 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21c0 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22c4 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b44 c 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c5c f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ec0 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 40cc 17 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4294 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 44c0 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 450b d 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cd4 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d34 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4df8 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f84 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5630 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 577c a 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5af0 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d74 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5dec 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ed8 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6000 e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 61a8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6634 12 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6748 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6984 40 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 69fc e 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c9c 18 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 44fe d d 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1dbc 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 20ac 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 21c0 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 22c4 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2b44 a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3c5c f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3ec0 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 40cc 17 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4294 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 44c0 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 450b d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4cd4 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d34 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4df8 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4f84 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5630 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 577c a 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5af0 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5d74 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5dec 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 5ed8 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6000 e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 61a8 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6634 12 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6748 13 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6984 40 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 69fc e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 6c9c 18 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 44ff c c 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1dbc 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 20ac 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 21c0 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 22c4 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2b44 9 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3c5c f 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3ec0 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 40cc 17 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4294 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 44c0 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 450b d 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4cd4 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d34 7 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4df8 10 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4f84 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5630 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 577c a 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5af0 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5d74 12 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5dec 7 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5ed8 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6000 e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 61a8 14 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6634 12 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6748 13 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6984 40 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 69fc e 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6c9c 18 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 1dbc 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 20ac 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 21c0 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 22c4 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2b44 8 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3c5c f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3ec0 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 40cc 17 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4294 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 44c0 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 450b d 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4cd4 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4d34 7 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4df8 10 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4f84 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5630 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 577c a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5af0 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5d74 12 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5dec 7 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5ed8 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6000 e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 61a8 14 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6634 12 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6748 13 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6984 40 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 69fc e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 6c9c 18 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4f18 6 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d58 16 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2338 17 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d40 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2dc8 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2dd4 16 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f1e 11 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5794 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 57b4 8 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c28 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d58 16 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2338 17 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2d40 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2dc8 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 2dd4 16 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4f1e 11 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5794 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 57b4 8 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 6c28 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 1d58 16 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2348 7 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2dd4 16 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 5795 f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 57b4 3 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 6c28 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3f0f 79 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3f7c 8 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1ad0 8 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4695 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5a10 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 219c 2 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4240 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5a15 11 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6904 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4898 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 19e0 13 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 489d f 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6b2c 15 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c6c 2 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3c94 7 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 6dab 106 b 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5898 5 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1284 1c 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b18 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b5c 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d48 6 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3488 14 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e7c 3 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 40e4 f 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c60 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5650 1 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 589d 11 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5f88 13 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5fc0 6 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 68a8 16 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6b60 10 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6c7c 8 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1284 1c 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1b18 14 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1b5c 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2d48 6 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 348d f 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3e7c 1 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4c60 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5650 1 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5f88 13 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5fc0 6 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6b60 10 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6c7c 8 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 62a4 5 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1048 16 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11a0 e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1744 2 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1b34 7 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 261c 22 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2ae0 8 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d30 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3df8 3 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4230 f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4284 10 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cb0 1 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5960 1c 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 62a9 f 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6528 1 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6550 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 65dc b 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6654 12 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6734 14 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11a0 e 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1744 2 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1b34 7 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 261c 22 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3d30 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3df8 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4230 f 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4284 10 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4cb0 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6528 1 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6550 12 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6655 11 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6734 14 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 11a0 e 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1744 2 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1b35 6 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 261c 22 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d30 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4230 f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4cb0 1 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6528 1 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6550 12 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 6734 14 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 65e8 1a 1a 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 1000 7 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 11b0 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 17c4 8 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 1ac4 6 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 21f4 c 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 2234 9 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 2354 f 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 242c 12 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 2710 3 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 2794 b 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 28d0 13 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 31f8 5 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 327c 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 32c0 4a 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 336c 20 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 36f8 f 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 37e0 10 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 3c30 1 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 3f94 e 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4300 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4338 11 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 497c 16 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4b10 15 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4c70 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4ce8 10 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4db4 1e 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 4e68 12 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 54e8 3 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5574 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 55d0 2 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 55f8 8 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5628 8 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 578c 3 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5838 24 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 58f4 c 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5f44 7 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 61fc f 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6328 14 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 63a0 c 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6404 6 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6602 e 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6624 10 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6ad4 16 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6d80 e 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6eb4 3 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 6f10 f 0 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 610c 8 8 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3204 2 0 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c24 7 0 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6114 3f 0 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6bf0 16 16 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 1198 3 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 17b4 e 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 19ac 2 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 24a4 14 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 3318 33 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 357c 2b 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 43c4 b 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 4624 14 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 4d9c 11 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5094 a 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5b4c 12 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5efc c 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5f38 6 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 6420 c 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 68c0 14 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 6910 12 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 6c06 12 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 6c20 8 0 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 25dc 8 8 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 25e4 38 0 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4104 7 0 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ca0 2 0 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e0c 6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e12 375 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 641c 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e12 375 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 641c 1 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5cdc 6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1308 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14ec 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24c0 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2d64 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3194 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 33c0 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c9c 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 42ec 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 441c 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 448c 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5688 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5ce2 11 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1308 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 14ec 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 24c0 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2d64 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3194 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 33c0 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3c9c 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 42ec 1 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 441c 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 448c 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5688 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5ce2 11 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 58dc 6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1028 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 16f4 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2040 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2724 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2788 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2834 3 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28f0 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b7c 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3360 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 34d8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37cc 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3bac 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ddc 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4a80 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4aa0 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b34 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4dec 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e2c 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e5c 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4efc 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f64 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 567c 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 58e2 10 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 594c 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5b38 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5cb4 7 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 6264 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64f8 14 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1028 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 16f4 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2040 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2724 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2788 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2834 1 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 28f0 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2b7c 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3360 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 34d8 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 37cc 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3bac 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3ddc 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4a80 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4aa0 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4b34 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4dec 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4e2c 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4e5c 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4efc 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4f64 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 567c 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 58e2 10 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 594c 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5b38 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5cb4 7 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6264 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 64f8 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1a0a ba 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 637c 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1c38 103 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 0 39e1 14 0 0 0 0 0 0 0 0
+STACK WIN 0 672a 9 0 0 0 0 0 0 0 0
+STACK WIN 0 27ab 88 0 0 8 0 0 0 0 0
+STACK WIN 0 36d2 f 0 0 0 0 0 0 0 0
+STACK WIN 0 1166 f 0 0 0 0 0 0 0 0
+STACK WIN 0 1175 9 0 0 0 0 0 0 0 0
+STACK WIN 0 1447 c 0 0 0 0 0 0 0 0
+STACK WIN 0 1453 c 0 0 0 0 0 0 0 0
+STACK WIN 0 40b0 9 0 0 0 0 0 0 0 0
+STACK WIN 0 37f0 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 297c 90 3 0 c c 0 0 0 0
+STACK WIN 0 2a0c 46 0 0 10 4 0 0 0 1
+STACK WIN 0 2a6e 17 4 0 0 10 0 0 0 1
+STACK WIN 0 2a85 19 0 0 0 0 0 0 0 0
+STACK WIN 0 2ab7 17 1 0 8 4 0 0 0 1
+STACK WIN 0 4658 4 0 0 0 0 0 0 0 0
+STACK WIN 0 1939 15 0 0 0 0 0 0 0 0
+STACK WIN 0 15b1 6 0 0 0 0 0 0 0 0
+STACK WIN 0 7079 13 0 0 0 0 0 0 0 0
+STACK WIN 0 2cdd c 0 0 0 0 0 0 0 0
+STACK WIN 0 1f72 9 0 0 0 0 0 0 0 0
+STACK WIN 0 3f7c 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4fa2 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 33f1 95 0 0 10 0 4 0 0 0
+STACK WIN 0 67c0 84 3 0 8 c 0 0 0 0
+STACK WIN 0 6844 23 0 0 0 0 0 0 0 0
+STACK WIN 0 688f 3 0 0 0 0 0 0 0 0
+STACK WIN 0 1d6e 1a 0 0 10 0 0 0 0 0
+STACK WIN 0 1d88 1a 0 0 10 0 4 0 0 0
diff --git a/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb b/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb
new file mode 100644
index 0000000..c86a864
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.sym b/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.sym
new file mode 100644
index 0000000..cae4148
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.sym
@@ -0,0 +1,2945 @@
+MODULE windows x86 11F7284EDE764667AA5234B0E7B07EEF1 omap_reorder_funcs.pdb
+FILE 1 c:\src\breakpad\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\public\sdk\inc\internal\pebteb.h
+FILE 3 f:\dd\public\sdk\inc\internal\ntldr.h
+FILE 4 f:\dd\public\sdk\inc\internal\ntconfig.h
+FILE 5 f:\dd\public\sdk\inc\internal\ntregapi.h
+FILE 6 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 7 f:\dd\public\ddk\inc\ntdef.h
+FILE 8 f:\dd\public\sdk\inc\internal\ntmmapi.h
+FILE 9 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 10 f:\dd\public\sdk\inc\pshpack1.h
+FILE 11 f:\dd\public\sdk\inc\internal\nxi386.h
+FILE 12 f:\dd\public\ddk\inc\poppack.h
+FILE 13 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 14 f:\dd\public\sdk\inc\pshpack8.h
+FILE 15 f:\dd\public\ddk\inc\ntpoapi.h
+FILE 16 f:\dd\public\sdk\inc\internal\ntexapi.h
+FILE 17 f:\dd\public\sdk\inc\poppack.h
+FILE 18 f:\dd\public\ddk\inc\ntimage.h
+FILE 19 f:\dd\public\ddk\inc\pshpack4.h
+FILE 20 f:\dd\public\sdk\inc\pshpack2.h
+FILE 21 f:\dd\public\ddk\inc\ntnls.h
+FILE 22 f:\dd\public\sdk\inc\internal\ntelfapi.h
+FILE 23 f:\dd\public\sdk\inc\internal\ntpsapi.h
+FILE 24 f:\dd\public\sdk\inc\internal\nti386.h
+FILE 25 f:\dd\public\sdk\inc\specstrings.h
+FILE 26 f:\dd\public\sdk\inc\sal_supp.h
+FILE 27 f:\dd\public\sdk\inc\specstrings_supp.h
+FILE 28 f:\dd\public\sdk\inc\specstrings_strict.h
+FILE 29 f:\dd\public\sdk\inc\specstrings_undef.h
+FILE 30 f:\dd\public\sdk\inc\driverspecs.h
+FILE 31 f:\dd\public\sdk\inc\sdv_driverspecs.h
+FILE 32 f:\dd\public\sdk\inc\basetsd.h
+FILE 33 f:\dd\public\sdk\inc\internal\ntpnpapi.h
+FILE 34 f:\dd\public\sdk\inc\cfg.h
+FILE 35 f:\dd\public\sdk\inc\internal\ntxcapi.h
+FILE 36 f:\dd\public\sdk\inc\guiddef.h
+FILE 37 f:\dd\public\sdk\inc\internal\nt.h
+FILE 38 f:\dd\public\sdk\inc\ntstatus.h
+FILE 39 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 40 f:\dd\public\sdk\inc\internal\ntkeapi.h
+FILE 41 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 42 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 43 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\codeanalysis\sourceannotations.h
+FILE 44 f:\dd\public\sdk\inc\internal\ntobapi.h
+FILE 45 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 46 f:\dd\public\sdk\inc\internal\ntioapi.h
+FILE 47 f:\dd\public\ddk\inc\devioctl.h
+FILE 48 f:\dd\public\sdk\inc\internal\ntseapi.h
+FILE 49 f:\dd\public\ddk\inc\mce.h
+FILE 50 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 51 f:\dd\public\sdk\inc\pshpack4.h
+FILE 52 f:\dd\public\devdiv\inc\ddbanned.h
+FILE 53 f:\dd\public\sdk\inc\internal\ntlpcapi.h
+FILE 54 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 55 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 56 f:\dd\public\sdk\inc\internal\ntiolog.h
+FILE 57 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 58 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 59 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 60 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 61 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 62 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 64 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 65 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 69 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 73 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 77 f:\dd\public\sdk\inc\winreg.h
+FILE 78 f:\dd\public\sdk\inc\imm.h
+FILE 79 f:\dd\public\sdk\inc\wingdi.h
+FILE 80 f:\dd\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 81 f:\dd\public\sdk\inc\winerror.h
+FILE 82 f:\dd\public\sdk\inc\ktmtypes.h
+FILE 84 f:\dd\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 85 f:\dd\public\sdk\inc\windef.h
+FILE 86 f:\dd\public\sdk\inc\winbase.h
+FILE 88 f:\dd\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 89 f:\dd\public\sdk\inc\winuser.h
+FILE 91 f:\dd\public\sdk\inc\winnetwk.h
+FILE 92 f:\dd\public\sdk\inc\winnt.h
+FILE 93 f:\dd\public\sdk\inc\wnnc.h
+FILE 94 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 96 f:\dd\public\sdk\inc\winnls.h
+FILE 98 f:\dd\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 99 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 100 f:\dd\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 101 f:\dd\vctools\crt_bld\self_x86\crt\src\codeanalysis\sourceannotations.h
+FILE 102 f:\dd\public\sdk\inc\winver.h
+FILE 103 f:\dd\public\sdk\inc\verrsrc.h
+FILE 104 f:\dd\public\sdk\inc\wincon.h
+FILE 105 f:\dd\public\sdk\inc\stralign.h
+FILE 107 f:\dd\public\sdk\inc\mcx.h
+FILE 108 f:\dd\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 109 f:\dd\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 110 f:\dd\public\sdk\inc\windows.h
+FILE 111 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 112 f:\dd\public\sdk\inc\sdkddkver.h
+FILE 113 f:\dd\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 114 f:\dd\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 120 f:\dd\public\sdk\inc\reason.h
+FILE 123 f:\dd\public\sdk\inc\kernelspecs.h
+FILE 125 f:\dd\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 126 f:\dd\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 127 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 128 f:\dd\public\sdk\inc\ime_cmodes.h
+FILE 130 f:\dd\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 131 f:\dd\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 132 f:\dd\public\sdk\inc\tvout.h
+FILE 145 f:\dd\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 152 f:\dd\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 164 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 165 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 178 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 182 f:\dd\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 224 f:\dd\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 250 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 251 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 265 f:\dd\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 281 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 291 f:\dd\vctools\crt_bld\self_x86\crt\src\calloc_impl.c
+FILE 299 f:\dd\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 333 f:\dd\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 389 f:\dd\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 453 f:\dd\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 498 f:\dd\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 504 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 561 f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 618 f:\dd\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 677 f:\dd\vctools\crt_bld\self_x86\crt\src\recalloc.c
+FILE 731 f:\dd\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 774 f:\dd\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 777 f:\dd\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 792 f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 844 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 892 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 904 f:\dd\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 943 f:\dd\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 960 f:\dd\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 975 f:\dd\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 1011 f:\dd\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 1039 f:\dd\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1053 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 1063 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmboxw.c
+FILE 1065 f:\dd\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1069 f:\dd\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1120 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 1145 f:\dd\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 1181 f:\dd\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 1244 f:\dd\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 1288 f:\dd\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 1301 f:\dd\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 1344 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 1392 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 1413 f:\binaries.x86ret\inc\mm3dnow.h
+FILE 1415 f:\binaries.x86ret\inc\ammintrin.h
+FILE 1424 f:\binaries.x86ret\inc\immintrin.h
+FILE 1426 f:\binaries.x86ret\inc\wmmintrin.h
+FILE 1427 f:\binaries.x86ret\inc\nmmintrin.h
+FILE 1428 f:\binaries.x86ret\inc\smmintrin.h
+FILE 1429 f:\binaries.x86ret\inc\tmmintrin.h
+FILE 1430 f:\binaries.x86ret\inc\pmmintrin.h
+FILE 1431 f:\binaries.x86ret\inc\emmintrin.h
+FILE 1432 f:\binaries.x86ret\inc\xmmintrin.h
+FILE 1433 f:\binaries.x86ret\inc\mmintrin.h
+FILE 1455 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 1467 f:\dd\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 1468 f:\dd\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 1508 f:\dd\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 1568 f:\dd\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 1627 f:\dd\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 1685 f:\dd\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 1737 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 1742 f:\dd\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 1800 f:\dd\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 1855 f:\dd\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 1913 f:\dd\vctools\crt_bld\self_x86\crt\src\localref.c
+FILE 1962 f:\dd\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1969 f:\dd\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 1989 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 2036 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 2079 f:\dd\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 2128 f:\dd\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 2186 f:\dd\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 2250 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2311 f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2314 f:\dd\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2315 f:\dd\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2369 f:\dd\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2394 f:\dd\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 2419 f:\dd\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 2445 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 2468 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 2493 f:\dd\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 2523 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 2548 f:\dd\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 2578 f:\dd\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 2603 f:\dd\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 2658 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscat_s.c
+FILE 2713 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscpy_s.c
+FILE 2728 f:\dd\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 2776 f:\dd\vctools\crt_bld\self_x86\crt\src\wcsncpy_s.c
+FILE 2787 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm
+FILE 2788 f:\dd\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2789 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memset.asm
+FILE 2791 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcmp.asm
+FILE 2793 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcspn.asm
+FILE 2794 f:\dd\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 2796 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strlen.asm
+FILE 2798 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\_strnicm.asm
+FILE 2800 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strpbrk.asm
+FILE 2803 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\llmul.asm
+FILE 2805 f:\dd\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 2806 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\ulldvrm.asm
+FILE 2820 f:\dd\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 2841 f:\dd\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 2875 f:\dd\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 2931 f:\dd\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 2987 f:\dd\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 2998 f:\dd\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 3045 f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 3106 f:\dd\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 3163 f:\dd\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 3218 f:\dd\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 3271 f:\dd\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 3305 f:\dd\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 3326 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 3386 f:\dd\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 3447 f:\dd\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 3507 f:\dd\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 3583 f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3626 f:\dd\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 3682 f:\dd\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 3774 f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 3778 f:\dd\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 3838 f:\dd\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 3860 f:\dd\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 3891 f:\dd\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 3954 f:\dd\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 3998 f:\dd\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 4012 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 4072 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 4123 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 4186 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 4250 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 4274 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\alloca16.asm
+FILE 4276 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm
+FILE 4289 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 4293 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 4294 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 4295 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 4309 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 4315 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 4327 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 4340 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 4345 f:\dd\vctools\langapi\undname\undname.inl
+FILE 4347 f:\dd\vctools\langapi\undname\utf8.h
+FILE 4355 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 4365 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 4366 f:\dd\vctools\langapi\undname\undname.h
+FILE 4367 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 4368 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 4396 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 4397 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 4401 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 4405 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 4427 f:\dd\vctools\langapi\include\ehdata.h
+FILE 4429 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 4449 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 4472 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 4473 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 4475 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 4487 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 4488 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 4490 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 4491 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 4492 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 4493 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 4496 f:\dd\public\internal\vctools\include\undname.h
+FILE 4531 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 4591 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 4643 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 4664 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 4680 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FUNC 41e2 54 0 main
+41e2 6 57 1
+41e8 8 58 1
+41f0 e 59 1
+41fe 8 60 1
+4206 b 61 1
+4211 f 62 1
+4220 12 64 1
+4232 4 65 1
+FUNC 4242 a 0 static int google_breakpad::i()
+4242 3 51 1
+4245 5 52 1
+424a 2 53 1
+FUNC 2b6a 21 0 google_breakpad::C::C()
+2b6a 21 37 1
+FUNC 30dd 14 0 google_breakpad::C::~C()
+30dd 14 38 1
+FUNC 21f6 16 0 google_breakpad::C::set_member(int)
+21f6 16 40 1
+FUNC 22e9 1e 0 google_breakpad::C::f()
+22e9 1e 43 1
+FUNC 2895 10 0 google_breakpad::C::g()
+2895 10 44 1
+FUNC 308e 7 0 google_breakpad::C::h(google_breakpad::C const &)
+308e 7 45 1
+FUNC 13a0 2c 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 205a 10 0 type_info::~type_info()
+205a 2 49 4531
+205c d 50 4531
+2069 1 51 4531
+FUNC 1445 21 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 2307 b 0 operator delete(void *)
+2307 5 20 2875
+230c 1 24 2875
+230d 5 23 2875
+FUNC 3238 29 0 static void fast_error_exit(int)
+3238 5 326 4250
+323d 9 335 4250
+3246 5 337 4250
+324b 8 339 4250
+3253 c 340 4250
+325f 2 341 4250
+FUNC 32ed 161 0 static int __tmainCRTStartup()
+32ed c 196 4250
+32f9 a 214 4250
+3303 b 216 4250
+330e 49 223 4250
+3357 9 225 4250
+3360 8 226 4250
+3368 9 228 4250
+3371 8 229 4250
+3379 5 238 4250
+337e 3 246 4250
+3381 9 248 4250
+338a 8 249 4250
+3392 b 252 4250
+339d a 255 4250
+33a7 9 257 4250
+33b0 8 258 4250
+33b8 9 259 4250
+33c1 8 260 4250
+33c9 8 262 4250
+33d1 4 263 4250
+33d5 7 264 4250
+33dc a 277 4250
+33e6 18 278 4250
+33fe 5 281 4250
+3403 6 282 4250
+3409 5 284 4250
+340e 2 286 4250
+3410 17 287 4250
+3427 6 293 4250
+342d 6 295 4250
+3433 6 296 4250
+3439 5 298 4250
+343e 7 300 4250
+3445 3 302 4250
+3448 6 303 4250
+FUNC 2104 a 0 mainCRTStartup
+2104 0 179 4250
+2104 5 186 4250
+2109 5 188 4250
+FUNC 5330 70 0 type_info::_Type_info_dtor(type_info *)
+5330 c 62 4473
+533c 8 63 4473
+5344 4 64 4473
+5348 a 65 4473
+5352 d 70 4473
+535f 4 72 4473
+5363 4 74 4473
+5367 6 79 4473
+536d 7 80 4473
+5374 9 94 4473
+537d 4 101 4473
+5381 c 103 4473
+538d 6 107 4473
+5393 2 83 4473
+5395 2 72 4473
+5397 9 104 4473
+FUNC 2f6b 88 0 strcmp
+2f6b 0 65 2791
+2f6b 4 73 2791
+2f6f 4 74 2791
+2f73 6 76 2791
+2f79 2 77 2791
+2f7b 2 81 2791
+2f7d 2 83 2791
+2f7f 2 84 2791
+2f81 2 85 2791
+2f83 2 86 2791
+2f85 3 87 2791
+2f88 2 88 2791
+2f8a 2 89 2791
+2f8c 2 90 2791
+2f8e 3 92 2791
+2f91 3 94 2791
+2f94 2 95 2791
+2f96 2 96 2791
+2f98 2 97 2791
+2f9a 3 98 2791
+2f9d 2 99 2791
+2f9f 3 100 2791
+2fa2 3 101 2791
+2fa5 2 102 2791
+2fa7 4 103 2791
+2fab 2 107 2791
+2fad 2 108 2791
+2faf 2 115 2791
+2fb1 2 116 2791
+2fb3 3 117 2791
+2fb6 1 118 2791
+2fb7 6 122 2791
+2fbd 2 123 2791
+2fbf 2 125 2791
+2fc1 3 126 2791
+2fc4 2 127 2791
+2fc6 2 128 2791
+2fc8 3 129 2791
+2fcb 2 130 2791
+2fcd 2 131 2791
+2fcf 6 133 2791
+2fd5 2 134 2791
+2fd7 3 139 2791
+2fda 3 140 2791
+2fdd 2 141 2791
+2fdf 2 142 2791
+2fe1 2 143 2791
+2fe3 2 144 2791
+2fe5 3 145 2791
+2fe8 2 146 2791
+2fea 2 147 2791
+2fec 2 148 2791
+2fee 3 149 2791
+2ff1 2 150 2791
+FUNC 2b8b 3a 0 free
+2b8b 5 40 389
+2b90 6 45 389
+2b96 11 50 389
+2ba7 4 51 389
+2bab 18 53 389
+2bc3 2 55 389
+FUNC 23da 42 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+23da 5 67 4397
+23df 32 68 4397
+2411 5 69 4397
+2416 2 72 4397
+2418 4 73 4397
+FUNC 283a e 0 __CxxSetUnhandledExceptionFilter
+283a 0 86 4397
+283a b 89 4397
+2845 2 90 4397
+2847 1 91 4397
+FUNC 18d9 2b 0 __crtCorExitProcess
+18d9 5 675 4186
+18de b 679 4186
+18e9 4 680 4186
+18ed c 681 4186
+18f9 4 682 4186
+18fd 5 683 4186
+1902 2 693 4186
+FUNC 5175 18 0 __crtExitProcess
+5175 5 698 4186
+517a 9 699 4186
+5183 a 708 4186
+FUNC 48f0 9 0 _lockexit
+48f0 0 758 4186
+48f0 8 759 4186
+48f8 1 760 4186
+FUNC 406d 9 0 _unlockexit
+406d 0 784 4186
+406d 8 785 4186
+4075 1 786 4186
+FUNC 1fa0 33 0 _init_pointers
+1fa0 3 809 4186
+1fa3 7 810 4186
+1faa 6 812 4186
+1fb0 6 813 4186
+1fb6 6 814 4186
+1fbc 6 815 4186
+1fc2 6 816 4186
+1fc8 a 817 4186
+1fd2 1 818 4186
+FUNC 5043 24 0 _initterm_e
+5043 6 908 4186
+5049 b 917 4186
+5054 6 922 4186
+505a 2 923 4186
+505c 3 924 4186
+505f 6 917 4186
+5065 2 928 4186
+FUNC 147f 97 0 _cinit
+147f 5 258 4186
+1484 18 268 4186
+149c a 270 4186
+14a6 5 272 4186
+14ab 11 278 4186
+14bc 2 279 4186
+14be 2 280 4186
+14c0 c 283 4186
+14cc 20 288 4186
+14ec 1a 301 4186
+1506 c 303 4186
+1512 2 307 4186
+1514 2 308 4186
+FUNC 4504 140 0 static void doexit(int, int, int)
+4504 c 489 4186
+4510 8 507 4186
+4518 4 508 4186
+451c f 510 4186
+452b 5 511 4186
+4530 8 514 4186
+4538 a 516 4186
+4542 13 532 4186
+4555 4 533 4186
+4559 d 534 4186
+4566 3 538 4186
+4569 3 539 4186
+456c 11 547 4186
+457d 2 550 4186
+457f 4 552 4186
+4583 6 559 4186
+4589 7 562 4186
+4590 2 565 4186
+4592 a 567 4186
+459c 8 568 4186
+45a4 a 570 4186
+45ae 6 573 4186
+45b4 8 574 4186
+45bc 5 576 4186
+45c1 21 582 4186
+45e2 21 590 4186
+4603 c 608 4186
+460f 6 613 4186
+4615 a 617 4186
+461f 8 619 4186
+4627 8 621 4186
+462f 6 609 4186
+4635 9 610 4186
+463e 6 622 4186
+FUNC 315a 16 0 exit
+315a 5 392 4186
+315f f 393 4186
+316e 2 394 4186
+FUNC 1778 16 0 _exit
+1778 5 400 4186
+177d f 401 4186
+178c 2 402 4186
+FUNC 3229 f 0 _cexit
+3229 0 407 4186
+3229 e 408 4186
+3237 1 409 4186
+FUNC 405e f 0 _c_exit
+405e 0 414 4186
+405e e 415 4186
+406c 1 416 4186
+FUNC 2abf 1e 0 _amsg_exit
+2abf 5 439 4186
+2ac4 5 440 4186
+2ac9 9 441 4186
+2ad2 b 442 4186
+FUNC 424c 26 0 _GET_RTERRMSG
+424c 5 165 4012
+4251 2 168 4012
+4253 c 169 4012
+425f 6 168 4012
+4265 2 172 4012
+4267 2 173 4012
+4269 7 170 4012
+4270 2 173 4012
+FUNC 268b 1af 0 _NMSG_WRITE
+268b 1b 196 4012
+26a6 8 197 4012
+26ae 11 199 4012
+26bf 2a 226 4012
+26e9 c 263 4012
+26f5 20 272 4012
+2715 21 275 4012
+2736 1f 276 4012
+2755 d 279 4012
+2762 d 281 4012
+276f 1d 282 4012
+278c 18 285 4012
+27a4 14 286 4012
+27b8 15 290 4012
+27cd a 272 4012
+27d7 a 228 4012
+27e1 9 229 4012
+27ea 2 244 4012
+27ec a 246 4012
+27f6 6 248 4012
+27fc 8 244 4012
+2804 27 260 4012
+282b f 294 4012
+FUNC 21bd 39 0 _FF_MSGBANNER
+21bd 0 134 4012
+21bd 22 138 4012
+21df a 140 4012
+21e9 c 141 4012
+21f5 1 143 4012
+FUNC 3ed7 14a 0 _XcptFilter
+3ed7 6 195 2369
+3edd 7 202 2369
+3ee4 8 203 2369
+3eec 2a 208 2369
+3f16 4 210 2369
+3f1a 3 216 2369
+3f1d 4 223 2369
+3f21 7 224 2369
+3f28 5 232 2369
+3f2d 4 237 2369
+3f31 8 238 2369
+3f39 3 244 2369
+3f3c 6 248 2369
+3f42 a 263 2369
+3f4c c 272 2369
+3f58 3 280 2369
+3f5b 13 283 2369
+3f6e c 310 2369
+3f7a 9 312 2369
+3f83 7 314 2369
+3f8a 9 316 2369
+3f93 7 318 2369
+3f9a 9 320 2369
+3fa3 7 322 2369
+3faa 9 324 2369
+3fb3 7 326 2369
+3fba 9 328 2369
+3fc3 7 330 2369
+3fca 9 332 2369
+3fd3 7 334 2369
+3fda 9 336 2369
+3fe3 7 338 2369
+3fea 9 340 2369
+3ff3 7 342 2369
+3ffa 7 344 2369
+4001 8 353 2369
+4009 3 358 2369
+400c 2 360 2369
+400e 4 365 2369
+4012 4 366 2369
+4016 4 372 2369
+401a 5 374 2369
+401f 2 376 2369
+FUNC 255c dc 0 _setenvp
+255c 0 77 3838
+255c 9 85 3838
+2565 6 86 3838
+256b 9 91 3838
+2574 4 98 3838
+2578 8 99 3838
+2580 4 110 3838
+2584 1 111 3838
+2585 b 112 3838
+2590 6 108 3838
+2596 15 117 3838
+25ab 2 118 3838
+25ad 9 121 3838
+25b6 6 123 3838
+25bc 9 125 3838
+25c5 10 127 3838
+25d5 f 133 3838
+25e4 3 134 3838
+25e7 7 121 3838
+25ee b 138 3838
+25f9 7 139 3838
+2600 3 142 3838
+2603 a 149 3838
+260d 2 152 3838
+260f 2 138 3838
+2611 3 153 3838
+2614 b 129 3838
+261f 7 130 3838
+2626 5 131 3838
+262b d 133 3838
+FUNC 54b7 19a 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+54b7 6 221 3891
+54bd 9 229 3891
+54c6 2 232 3891
+54c8 17 234 3891
+54df 3 253 3891
+54e2 5 255 3891
+54e7 5 257 3891
+54ec 9 258 3891
+54f5 2 259 3891
+54f7 2 261 3891
+54f9 4 262 3891
+54fd 8 263 3891
+5505 2 265 3891
+5507 f 267 3891
+5516 2 268 3891
+5518 6 269 3891
+551e a 270 3891
+5528 1 271 3891
+5529 1a 275 3891
+5543 4 280 3891
+5547 4 281 3891
+554b 4 284 3891
+554f 9 289 3891
+5558 a 290 3891
+5562 3 291 3891
+5565 1 278 3891
+5566 2 279 3891
+5568 9 294 3891
+5571 6 298 3891
+5577 9 299 3891
+5580 2 300 3891
+5582 3 314 3891
+5585 4 318 3891
+5589 1 321 3891
+558a 1 322 3891
+558b 5 319 3891
+5590 5 324 3891
+5595 5 327 3891
+559a e 328 3891
+55a8 2 329 3891
+55aa 2 330 3891
+55ac d 332 3891
+55b9 2 335 3891
+55bb 5 339 3891
+55c0 4 340 3891
+55c4 4 341 3891
+55c8 6 342 3891
+55ce 3 341 3891
+55d1 14 346 3891
+55e5 4 351 3891
+55e9 12 353 3891
+55fb b 354 3891
+5606 2 355 3891
+5608 a 357 3891
+5612 2 358 3891
+5614 a 359 3891
+561e 1 360 3891
+561f 2 361 3891
+5621 5 364 3891
+5626 1 366 3891
+5627 5 375 3891
+562c 4 379 3891
+5630 7 380 3891
+5637 2 381 3891
+5639 8 382 3891
+5641 9 385 3891
+564a 3 386 3891
+564d 2 387 3891
+564f 2 388 3891
+FUNC 15b7 bb 0 _setargv
+15b7 9 88 3891
+15c0 c 97 3891
+15cc 5 98 3891
+15d1 18 104 3891
+15e9 19 120 3891
+1602 11 127 3891
+1613 15 134 3891
+1628 a 138 3891
+1632 2 140 3891
+1634 9 142 3891
+163d 2 143 3891
+163f 2 144 3891
+1641 13 151 3891
+1654 c 156 3891
+1660 6 160 3891
+1666 4 175 3891
+166a 6 136 3891
+1670 2 176 3891
+FUNC 220c 97 0 __crtGetEnvironmentStringsA
+220c a 40 943
+2216 e 49 943
+2224 4 50 943
+2228 5 54 943
+222d 8 55 943
+2235 9 56 943
+223e 1b 70 943
+2259 12 74 943
+226b 12 88 943
+227d 9 90 943
+2286 3 91 943
+2289 7 94 943
+2290 5 95 943
+2295 7 76 943
+229c 5 77 943
+22a1 2 96 943
+FUNC 1cf7 245 0 _ioinit
+1cf7 9 111 792
+1d00 a 122 792
+1d0a 13 129 792
+1d1d 8 131 792
+1d25 15 137 792
+1d3a 3 134 792
+1d3d a 139 792
+1d47 3 141 792
+1d4a 6 143 792
+1d50 4 145 792
+1d54 3 146 792
+1d57 1b 147 792
+1d72 15 155 792
+1d87 2 160 792
+1d89 6 166 792
+1d8f 2 167 792
+1d91 e 173 792
+1d9f d 179 792
+1dac f 185 792
+1dbb 7 199 792
+1dc2 c 201 792
+1dce 3 198 792
+1dd1 4 203 792
+1dd5 4 205 792
+1dd9 4 206 792
+1ddd 10 209 792
+1ded 12 210 792
+1dff b 179 792
+1e0a 2 280 792
+1e0c 6 191 792
+1e12 6 217 792
+1e18 29 230 792
+1e41 14 232 792
+1e55 7 233 792
+1e5c 8 234 792
+1e64 17 237 792
+1e7b 3 239 792
+1e7e c 217 792
+1e8a 2 249 792
+1e8c b 251 792
+1e97 c 254 792
+1ea3 6 302 792
+1ea9 4 258 792
+1ead 30 262 792
+1edd c 273 792
+1ee9 6 274 792
+1eef 5 275 792
+1ef4 4 276 792
+1ef8 13 280 792
+1f0b 3 282 792
+1f0e 2 284 792
+1f10 4 293 792
+1f14 6 294 792
+1f1a a 249 792
+1f24 c 309 792
+1f30 5 311 792
+1f35 2 312 792
+1f37 5 281 792
+FUNC 137a 26 0 _RTC_Initialize
+FUNC 2034 26 0 _RTC_Terminate
+FUNC 3d7a 9 0 _encoded_null
+3d7a 0 79 3774
+3d7a 8 80 3774
+3d82 1 81 3774
+FUNC 156e 9 4 __crtTlsAlloc
+156e 0 95 3774
+156e 6 96 3774
+1574 3 97 3774
+FUNC 380c 34 0 __set_flsgetvalue
+380c 3 143 3774
+380f e 145 3774
+381d 4 146 3774
+3821 e 148 3774
+382f d 149 3774
+383c 3 151 3774
+383f 1 155 3774
+FUNC 4021 3d 0 _mtterm
+4021 0 329 3774
+4021 a 336 3774
+402b f 337 3774
+403a 7 338 3774
+4041 a 342 3774
+404b 7 343 3774
+4052 7 344 3774
+4059 5 352 3774
+FUNC 53a0 b4 0 _initptd
+53a0 c 379 3774
+53ac b 381 3774
+53b7 a 384 3774
+53c1 4 385 3774
+53c5 6 386 3774
+53cb 3 391 3774
+53ce 7 395 3774
+53d5 7 396 3774
+53dc 7 397 3774
+53e3 8 399 3774
+53eb 4 400 3774
+53ef 9 402 3774
+53f8 c 404 3774
+5404 8 411 3774
+540c 3 412 3774
+540f 6 413 3774
+5415 4 421 3774
+5419 8 422 3774
+5421 9 423 3774
+542a c 425 3774
+5436 6 428 3774
+543c 6 404 3774
+5442 9 406 3774
+544b 9 426 3774
+FUNC 13cc 79 0 _getptd_noexit
+13cc 4 448 3774
+13d0 6 452 3774
+13d6 15 460 3774
+13eb 14 472 3774
+13ff 19 475 3774
+1418 a 481 3774
+1422 6 483 3774
+1428 6 484 3774
+142e 2 486 3774
+1430 7 492 3774
+1437 2 493 3774
+1439 8 498 3774
+1441 3 500 3774
+1444 1 501 3774
+FUNC 2848 1a 0 _getptd
+2848 3 522 3774
+284b 7 523 3774
+2852 4 524 3774
+2856 8 525 3774
+285e 3 527 3774
+2861 1 528 3774
+FUNC 4272 12f 4 _freefls
+4272 c 556 3774
+427e b 567 3774
+4289 7 568 3774
+4290 7 569 3774
+4297 7 571 3774
+429e 7 572 3774
+42a5 7 574 3774
+42ac 7 575 3774
+42b3 7 577 3774
+42ba 7 578 3774
+42c1 7 580 3774
+42c8 7 581 3774
+42cf 7 583 3774
+42d6 7 584 3774
+42dd 7 586 3774
+42e4 7 587 3774
+42eb a 589 3774
+42f5 7 590 3774
+42fc 8 592 3774
+4304 4 593 3774
+4308 1a 596 3774
+4322 7 597 3774
+4329 c 599 3774
+4335 8 603 3774
+433d 7 605 3774
+4344 7 606 3774
+434b 7 608 3774
+4352 15 611 3774
+4367 7 612 3774
+436e c 615 3774
+437a 7 619 3774
+4381 8 622 3774
+4389 3 599 3774
+438c 9 600 3774
+4395 3 615 3774
+4398 9 616 3774
+FUNC 4980 17b 0 _mtinit
+4980 3 203 3774
+4983 d 211 3774
+4990 4 212 3774
+4994 5 213 3774
+4999 3 214 3774
+499c 2 300 3774
+499e e 218 3774
+49ac d 221 3774
+49b9 d 224 3774
+49c6 d 227 3774
+49d3 2a 228 3774
+49fd a 231 3774
+4a07 1a 235 3774
+4a21 25 244 3774
+4a46 5 249 3774
+4a4b e 256 3774
+4a59 d 257 3774
+4a66 d 258 3774
+4a73 12 259 3774
+4a85 7 266 3774
+4a8c 2 268 3774
+4a8e 1d 274 3774
+4aab 2 276 3774
+4aad 29 284 3774
+4ad6 a 294 3774
+4ae0 6 296 3774
+4ae6 6 297 3774
+4aec 5 299 3774
+4af1 5 286 3774
+4af6 4 245 3774
+4afa 1 300 3774
+FUNC 252f 1e 0 _heap_init
+252f 0 40 453
+252f 1d 44 453
+254c 1 60 453
+FUNC 1c7a 45 0 _SEH_prolog4
+FUNC 1cbf 14 0 _SEH_epilog4
+FUNC 1aeb 18f 0 _except_handler4
+FUNC 2ff3 9b 0 __security_init_cookie
+2ff3 8 97 1455
+2ffb 21 114 1455
+301c 7 116 1455
+3023 3 117 1455
+3026 a 127 1455
+3030 6 132 1455
+3036 8 135 1455
+303e 8 136 1455
+3046 8 137 1455
+304e a 139 1455
+3058 8 144 1455
+3060 4 161 1455
+3064 7 163 1455
+306b 4 166 1455
+306f c 168 1455
+307b 6 172 1455
+3081 b 173 1455
+308c 2 175 1455
+FUNC 1214 f 0 _initp_misc_invarg
+1214 5 64 3583
+1219 8 65 3583
+1221 2 66 3583
+FUNC 4afb 129 0 _call_reportfault
+4afb 16 164 3583
+4b11 9 166 3583
+4b1a 7 167 3583
+4b21 17 170 3583
+4b38 1b 172 3583
+4b53 6 179 3583
+4b59 6 180 3583
+4b5f 6 181 3583
+4b65 6 182 3583
+4b6b 6 183 3583
+4b71 6 184 3583
+4b77 7 185 3583
+4b7e 7 186 3583
+4b85 7 187 3583
+4b8c 7 188 3583
+4b93 7 189 3583
+4b9a 7 190 3583
+4ba1 1 191 3583
+4ba2 6 192 3583
+4ba8 3 198 3583
+4bab 19 199 3583
+4bc4 9 201 3583
+4bcd 9 240 3583
+4bd6 9 241 3583
+4bdf 6 242 3583
+4be5 6 245 3583
+4beb a 248 3583
+4bf5 d 250 3583
+4c02 d 254 3583
+4c0f 7 255 3583
+4c16 e 257 3583
+FUNC 5150 25 0 _invoke_watson
+5150 3 146 3583
+5153 12 155 3583
+5165 f 156 3583
+5174 1 157 3583
+FUNC 3261 2d 0 _invalid_parameter
+3261 5 96 3583
+3266 c 103 3583
+3272 4 104 3583
+3276 1 111 3583
+3277 2 106 3583
+3279 15 110 3583
+FUNC 146f 10 0 _invalid_parameter_noinfo
+146f 0 120 3583
+146f f 121 3583
+147e 1 122 3583
+FUNC 2af4 4a 0 _mtinitlocks
+2af4 4 136 3954
+2af8 7 143 3954
+2aff a 144 3954
+2b09 9 145 3954
+2b12 14 147 3954
+2b26 6 143 3954
+2b2c 3 156 3954
+2b2f 3 157 3954
+2b32 c 150 3954
+FUNC 4d69 57 0 _mtdeletelocks
+4d69 3 187 3954
+4d6c d 193 3954
+4d79 c 195 3954
+4d85 3 199 3954
+4d88 6 205 3954
+4d8e 4 206 3954
+4d92 b 193 3954
+4d9d 6 214 3954
+4da3 c 216 3954
+4daf 3 220 3954
+4db2 b 214 3954
+4dbd 3 223 3954
+FUNC 2add 17 0 _unlock
+2add 5 370 3954
+2ae2 10 374 3954
+2af2 2 375 3954
+FUNC 12b8 c2 0 _mtinitlocknum
+12b8 c 258 3954
+12c4 6 260 3954
+12ca a 268 3954
+12d4 5 269 3954
+12d9 7 270 3954
+12e0 c 271 3954
+12ec e 275 3954
+12fa 4 276 3954
+12fe e 278 3954
+130c b 279 3954
+1317 4 280 3954
+131b 8 283 3954
+1323 3 284 3954
+1326 4 286 3954
+132a 10 287 3954
+133a 7 288 3954
+1341 b 289 3954
+134c 3 290 3954
+134f 2 291 3954
+1351 2 292 3954
+1353 2 295 3954
+1355 7 296 3954
+135c c 299 3954
+1368 3 303 3954
+136b 6 304 3954
+1371 9 300 3954
+FUNC 31f6 33 0 _lock
+31f6 5 332 3954
+31fb 10 337 3954
+320b b 339 3954
+3216 8 340 3954
+321e 9 347 3954
+3227 2 348 3954
+FUNC 2a1e 5f 0 strcpy_s
+2a1e 5 13 2523
+2a23 23 18 2523
+2a46 b 19 2523
+2a51 11 23 2523
+2a62 4 27 2523
+2a66 3 29 2523
+2a69 e 30 2523
+2a77 4 33 2523
+2a7b 2 34 2523
+FUNC 4eba 8b 0 strlen
+4eba 0 54 2796
+4eba 4 63 2796
+4ebe 6 64 2796
+4ec4 2 65 2796
+4ec6 2 69 2796
+4ec8 3 70 2796
+4ecb 2 71 2796
+4ecd 2 72 2796
+4ecf 6 73 2796
+4ed5 2 74 2796
+4ed7 13 76 2796
+4eea 2 81 2796
+4eec 5 82 2796
+4ef1 2 83 2796
+4ef3 3 84 2796
+4ef6 2 85 2796
+4ef8 3 86 2796
+4efb 5 87 2796
+4f00 2 88 2796
+4f02 3 90 2796
+4f05 2 91 2796
+4f07 2 92 2796
+4f09 2 93 2796
+4f0b 2 94 2796
+4f0d 5 95 2796
+4f12 2 96 2796
+4f14 5 97 2796
+4f19 2 98 2796
+4f1b 2 99 2796
+4f1d 3 103 2796
+4f20 4 104 2796
+4f24 2 105 2796
+4f26 1 106 2796
+4f27 3 108 2796
+4f2a 4 109 2796
+4f2e 2 110 2796
+4f30 1 111 2796
+4f31 3 113 2796
+4f34 4 114 2796
+4f38 2 115 2796
+4f3a 1 116 2796
+4f3b 3 118 2796
+4f3e 4 119 2796
+4f42 2 120 2796
+4f44 1 121 2796
+FUNC 2312 94 0 malloc
+2312 6 81 504
+2318 a 85 504
+2322 3d 89 504
+235f 4 94 504
+2363 b 98 504
+236e b 105 504
+2379 2 109 504
+237b 7 100 504
+2382 7 119 504
+2389 6 121 504
+238f 7 111 504
+2396 b 112 504
+23a1 3 113 504
+23a4 2 122 504
+FUNC 43b2 90 0 _local_unwind4
+FUNC 4442 46 0 static void _unwind_handler4()
+FUNC 4488 1c 4 _seh_longjmp_unwind4
+FUNC 44a4 17 0 _EH4_CallFilterFunc
+FUNC 44bb 19 0 _EH4_TransferToHandler
+FUNC 44d4 19 0 _EH4_GlobalUnwind2
+FUNC 44ed 17 8 _EH4_LocalUnwind
+FUNC 2a7d 42 0 _get_errno_from_oserr
+2a7d 5 119 224
+2a82 5 123 224
+2a87 9 124 224
+2a90 6 123 224
+2a96 8 133 224
+2a9e 3 134 224
+2aa1 2 139 224
+2aa3 7 125 224
+2aaa 2 139 224
+2aac 11 135 224
+2abd 2 139 224
+FUNC 3095 13 0 _errno
+3095 0 279 224
+3095 5 280 224
+309a 4 281 224
+309e 5 282 224
+30a3 1 287 224
+30a4 3 284 224
+30a7 1 287 224
+FUNC 31bd 39 0 terminate()
+31bd c 84 4591
+31c9 8 89 4591
+31d1 4 90 4591
+31d5 4 95 4591
+31d9 2 99 4591
+31db 2 100 4591
+31dd 7 101 4591
+31e4 7 106 4591
+31eb 5 114 4591
+31f0 6 115 4591
+FUNC 43a1 11 0 _initp_eh_hooks
+43a1 0 69 4591
+43a1 10 70 4591
+43b1 1 71 4591
+FUNC 215a 1e 0 _initp_misc_winsig
+215a 5 57 2311
+215f 8 58 2311
+2167 5 59 2311
+216c 5 60 2311
+2171 5 61 2311
+2176 2 62 2311
+FUNC 24f8 37 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+24f8 5 629 2311
+24fd a 630 2311
+2507 14 639 2311
+251b e 642 2311
+2529 2 646 2311
+252b 2 651 2311
+252d 2 652 2311
+FUNC 48e3 d 0 __get_sigabrt
+48e3 0 669 2311
+48e3 c 670 2311
+48ef 1 671 2311
+FUNC 518d 1a3 0 raise
+518d c 450 2311
+5199 5 457 2311
+519e 3 458 2311
+51a1 1f 460 2311
+51c0 a 486 2311
+51ca 4 487 2311
+51ce 8 488 2311
+51d6 a 463 2311
+51e0 2 465 2311
+51e2 10 490 2311
+51f2 2 491 2311
+51f4 f 460 2311
+5203 12 498 2311
+5215 a 474 2311
+521f 2 476 2311
+5221 a 468 2311
+522b 2 470 2311
+522d a 479 2311
+5237 7 480 2311
+523e a 500 2311
+5248 2 508 2311
+524a 4 507 2311
+524e 6 508 2311
+5254 5 513 2311
+5259 7 518 2311
+5260 5 525 2311
+5265 7 526 2311
+526c 5 528 2311
+5271 f 539 2311
+5280 6 540 2311
+5286 3 541 2311
+5289 5 547 2311
+528e 6 548 2311
+5294 7 549 2311
+529b 5 557 2311
+52a0 1a 564 2311
+52ba d 567 2311
+52c7 5 564 2311
+52cc 7 570 2311
+52d3 c 573 2311
+52df 5 578 2311
+52e4 8 584 2311
+52ec 2 585 2311
+52ee 6 573 2311
+52f4 6 574 2311
+52fa 9 575 2311
+5303 5 586 2311
+5308 f 593 2311
+5317 6 594 2311
+531d 5 599 2311
+5322 6 600 2311
+5328 2 603 2311
+532a 6 604 2311
+FUNC 254d f 0 _initp_misc_rand_s
+254d 5 58 2186
+2552 8 59 2186
+255a 2 60 2186
+FUNC 37b7 f 0 _initp_misc_purevirt
+37b7 5 179 1627
+37bc 8 180 1627
+37c4 2 181 1627
+FUNC 24e9 f 0 _initp_heap_handler
+24e9 5 31 2820
+24ee 8 32 2820
+24f6 2 33 2820
+FUNC 4644 28 0 _callnewh
+4644 5 131 2820
+4649 c 133 2820
+4655 e 135 2820
+4663 3 138 2820
+4666 2 139 2820
+4668 2 136 2820
+466a 2 139 2820
+FUNC 4c24 b6 0 static  * _onexit_nolock( *)
+4c24 8 100 1969
+4c2c f 103 1969
+4c3b f 104 1969
+4c4a 14 108 1969
+4c5e 10 118 1969
+4c6e d 123 1969
+4c7b 13 125 1969
+4c8e 3 130 1969
+4c91 13 132 1969
+4ca4 3 143 1969
+4ca7 f 145 1969
+4cb6 10 152 1969
+4cc6 8 153 1969
+4cce 5 155 1969
+4cd3 5 110 1969
+4cd8 2 156 1969
+FUNC 11e3 31 0 __onexitinit
+11e3 3 201 1969
+11e6 d 204 1969
+11f3 11 205 1969
+1204 4 207 1969
+1208 4 212 1969
+120c 1 217 1969
+120d 3 214 1969
+1210 3 216 1969
+1213 1 217 1969
+FUNC 5114 3c 0 _onexit
+5114 c 81 1969
+5120 5 84 1969
+5125 4 86 1969
+5129 c 87 1969
+5135 c 89 1969
+5141 3 93 1969
+5144 6 94 1969
+514a 6 90 1969
+FUNC 3ec0 17 0 atexit
+3ec0 5 161 1969
+3ec5 10 162 1969
+3ed5 2 163 1969
+FUNC 28a5 23 0 _initp_misc_cfltcvt_tab
+28a5 4 54 2419
+28a9 2 56 2419
+28ab 1a 58 2419
+28c5 3 60 2419
+FUNC 30a8 35 0 _ValidateImageBase
+30a8 5 44 2079
+30ad d 50 2079
+30ba 2 52 2079
+30bc 2 68 2079
+30be 5 55 2079
+30c3 6 56 2079
+30c9 2 58 2079
+30cb 10 62 2079
+30db 2 68 2079
+FUNC 32a9 44 0 _FindPESection
+32a9 5 92 2079
+32ae 8 99 2079
+32b6 18 108 2079
+32ce 10 111 2079
+32de 8 108 2079
+32e6 5 123 2079
+32eb 2 124 2079
+FUNC 5651 bc 0 _IsNonwritableInCurrentImage
+5651 35 149 2079
+5686 7 156 2079
+568d f 164 2079
+569c 2 166 2079
+569e 8 174 2079
+56a6 e 175 2079
+56b4 2 176 2079
+56b6 2 178 2079
+56b8 12 185 2079
+56ca 12 195 2079
+56dc 16 187 2079
+56f2 9 193 2079
+56fb 12 195 2079
+FUNC 4076 16c 0 __crtMessageBoxW
+4076 12 41 1053
+4088 14 49 1053
+409c 4 56 1053
+40a0 c 62 1053
+40ac d 64 1053
+40b9 2 65 1053
+40bb 6 67 1053
+40c1 10 72 1053
+40d1 6 76 1053
+40d7 9 78 1053
+40e0 10 81 1053
+40f0 10 84 1053
+4100 d 88 1053
+410d 8 93 1053
+4115 4 95 1053
+4119 10 97 1053
+4129 1a 110 1053
+4143 3 113 1053
+4146 c 114 1053
+4152 8 116 1053
+415a 1f 121 1053
+4179 7 130 1053
+4180 2 132 1053
+4182 a 134 1053
+418c 3 136 1053
+418f 4 137 1053
+4193 5 139 1053
+4198 e 143 1053
+41a6 3 145 1053
+41a9 4 146 1053
+41ad 8 148 1053
+41b5 8 155 1053
+41bd 4 156 1053
+41c1 10 158 1053
+41d1 2 163 1053
+41d3 f 166 1053
+FUNC 3943 75 0 wcscat_s
+3943 6 13 2468
+3949 22 18 2468
+396b 2 46 2468
+396d e 19 2468
+397b 2 21 2468
+397d 6 23 2468
+3983 3 25 2468
+3986 3 26 2468
+3989 2 29 2468
+398b 2 32 2468
+398d 14 35 2468
+39a1 9 41 2468
+39aa e 42 2468
+FUNC 241c cd 0 wcsncpy_s
+241c 5 13 2578
+2421 16 17 2578
+2437 5 65 2578
+243c 2 66 2578
+243e 1e 24 2578
+245c 4 25 2578
+2460 5 28 2578
+2465 2 29 2578
+2467 e 31 2578
+2475 2 33 2578
+2477 5 35 2578
+247c 16 37 2578
+2492 2 41 2578
+2494 19 45 2578
+24ad 4 48 2578
+24b1 5 50 2578
+24b6 8 54 2578
+24be a 58 2578
+24c8 d 59 2578
+24d5 3 61 2578
+24d8 11 62 2578
+FUNC 328e 1b 0 wcslen
+328e 5 41 2728
+3293 3 42 2728
+3296 b 44 2728
+32a1 6 46 2728
+32a7 2 47 2728
+FUNC 5454 63 0 wcscpy_s
+5454 6 13 2523
+545a 22 18 2523
+547c 2 34 2523
+547e c 19 2523
+548a 16 23 2523
+54a0 9 29 2523
+54a9 e 30 2523
+FUNC 3d3b 3f 0 _set_error_mode
+3d3b 5 43 1181
+3d40 11 46 1181
+3d51 5 54 1181
+3d56 2 61 1181
+3d58 5 50 1181
+3d5d 6 51 1181
+3d63 2 61 1181
+3d65 13 57 1181
+3d78 2 61 1181
+FUNC 28c8 f 0 __security_check_cookie
+28c8 0 52 892
+28c8 6 55 892
+28ce 2 56 892
+28d0 2 57 892
+28d2 5 59 892
+FUNC 2178 45 0 _malloc_crt
+2178 7 39 333
+217f 2 40 333
+2181 b 44 333
+218c c 45 333
+2198 1a 46 333
+21b2 5 47 333
+21b7 4 50 333
+21bb 2 51 333
+FUNC 210e 4c 0 _calloc_crt
+210e 7 54 333
+2115 2 55 333
+2117 12 61 333
+2129 c 62 333
+2135 1a 63 333
+214f 5 64 333
+2154 4 67 333
+2158 2 68 333
+FUNC 4e39 4e 0 _realloc_crt
+4e39 7 71 333
+4e40 2 72 333
+4e42 f 76 333
+4e51 11 77 333
+4e62 1a 78 333
+4e7c 5 79 333
+4e81 4 82 333
+4e85 2 83 333
+FUNC 2bc5 2f 0 static int CPtoLCID(int)
+2bc5 0 329 3326
+2bc5 14 330 3326
+2bd9 2 345 3326
+2bdb 1 346 3326
+2bdc 5 342 3326
+2be1 1 346 3326
+2be2 5 339 3326
+2be7 1 346 3326
+2be8 5 336 3326
+2bed 1 346 3326
+2bee 5 333 3326
+2bf3 1 346 3326
+FUNC 1f3c 64 0 static void setSBCS(struct threadmbcinfostruct *)
+1f3c 6 363 3326
+1f42 11 368 3326
+1f53 1b 379 3326
+1f6e 12 381 3326
+1f80 9 382 3326
+1f89 b 384 3326
+1f94 9 385 3326
+1f9d 3 386 3326
+FUNC 466c 190 0 static void setSBUpLow(struct threadmbcinfostruct *)
+466c 17 402 3326
+4683 10 412 3326
+4693 f 415 3326
+46a2 c 416 3326
+46ae 11 420 3326
+46bf 6 419 3326
+46c5 20 421 3326
+46e5 a 420 3326
+46ef 20 427 3326
+470f 23 432 3326
+4732 25 437 3326
+4757 2 442 3326
+4759 d 443 3326
+4766 5 445 3326
+476b 9 446 3326
+4774 5 448 3326
+4779 5 450 3326
+477e e 451 3326
+478c 2 453 3326
+478e 7 454 3326
+4795 5 442 3326
+479a 8 456 3326
+47a2 12 472 3326
+47b4 17 461 3326
+47cb 5 463 3326
+47d0 5 464 3326
+47d5 5 466 3326
+47da 5 468 3326
+47df 5 469 3326
+47e4 2 471 3326
+47e6 3 472 3326
+47e9 5 460 3326
+47ee e 474 3326
+FUNC 3d83 a4 0 __updatetmbcinfo
+3d83 c 495 3326
+3d8f 7 498 3326
+3d96 10 499 3326
+3da6 3 532 3326
+3da9 4 535 3326
+3dad 8 537 3326
+3db5 2 540 3326
+3db7 6 541 3326
+3dbd 8 500 3326
+3dc5 4 502 3326
+3dc9 e 505 3326
+3dd7 17 511 3326
+3dee 7 516 3326
+3df5 11 523 3326
+3e06 7 524 3326
+3e0d 11 527 3326
+3e1e 9 529 3326
+FUNC 48f9 87 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+48f9 5 240 111
+48fe e 241 111
+490c 8 243 111
+4914 5 244 111
+4919 6 245 111
+491f 1c 247 111
+493b 21 248 111
+495c 9 249 111
+4965 4 251 111
+4969 4 252 111
+496d 2 255 111
+496f a 257 111
+4979 7 259 111
+FUNC 10e5 7c 0 static int getSystemCP(int)
+10e5 9 282 3326
+10ee b 284 3326
+10f9 6 285 3326
+10ff 5 289 3326
+1104 a 291 3326
+110e 14 292 3326
+1122 5 295 3326
+1127 a 297 3326
+1131 8 298 3326
+1139 5 302 3326
+113e 12 305 3326
+1150 f 308 3326
+115f 2 309 3326
+FUNC 3b52 1e9 0 _setmbcp_nolock
+3b52 17 684 3326
+3b69 b 691 3326
+3b74 9 694 3326
+3b7d 7 696 3326
+3b84 7 697 3326
+3b8b 3 701 3326
+3b8e 2 703 3326
+3b90 c 706 3326
+3b9c d 703 3326
+3ba9 2a 741 3326
+3bd3 13 749 3326
+3be6 f 754 3326
+3bf5 15 759 3326
+3c0a 17 762 3326
+3c21 c 764 3326
+3c2d f 710 3326
+3c3c 15 713 3326
+3c51 9 718 3326
+3c5a 8 721 3326
+3c62 12 722 3326
+3c74 4 721 3326
+3c78 b 718 3326
+3c83 12 713 3326
+3c95 20 729 3326
+3cb5 f 731 3326
+3cc4 7 734 3326
+3ccb 5 735 3326
+3cd0 6 765 3326
+3cd6 4 764 3326
+3cda d 762 3326
+3ce7 8 769 3326
+3cef 7 770 3326
+3cf6 b 773 3326
+3d01 3 776 3326
+3d04 2 778 3326
+3d06 3 780 3326
+3d09 12 783 3326
+3d1b 2 787 3326
+3d1d 6 792 3326
+3d23 6 795 3326
+3d29 3 744 3326
+3d2c f 800 3326
+FUNC 39b8 19a 0 _setmbcp
+39b8 c 572 3326
+39c4 4 573 3326
+39c8 a 577 3326
+39d2 5 579 3326
+39d7 3 580 3326
+39da b 582 3326
+39e5 9 584 3326
+39ee d 590 3326
+39fb 8 592 3326
+3a03 c 594 3326
+3a0f 3 605 3326
+3a12 16 610 3326
+3a28 1a 612 3326
+3a42 7 613 3326
+3a49 3 617 3326
+3a4c 9 618 3326
+3a55 17 620 3326
+3a6c 8 622 3326
+3a74 4 623 3326
+3a78 8 628 3326
+3a80 8 629 3326
+3a88 8 630 3326
+3a90 a 631 3326
+3a9a d 632 3326
+3aa7 3 631 3326
+3aaa c 633 3326
+3ab6 a 634 3326
+3ac0 3 633 3326
+3ac3 c 635 3326
+3acf d 636 3326
+3adc 3 635 3326
+3adf 1c 638 3326
+3afb 7 639 3326
+3b02 6 643 3326
+3b08 3 644 3326
+3b0b e 646 3326
+3b19 9 648 3326
+3b22 2 651 3326
+3b24 5 652 3326
+3b29 8 658 3326
+3b31 7 659 3326
+3b38 b 660 3326
+3b43 2 666 3326
+3b45 4 671 3326
+3b49 3 680 3326
+3b4c 6 681 3326
+FUNC 1cd3 1e 0 __initmbctable
+1cd3 0 841 3326
+1cd3 9 851 3326
+1cdc 8 852 3326
+1ce4 a 853 3326
+1cee 2 858 3326
+1cf0 1 859 3326
+FUNC 2638 53 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+2638 8 213 3271
+2640 b 214 3271
+264b 4 219 3271
+264f 3a 222 3271
+2689 2 223 3271
+FUNC 1516 18 0 _ismbblead
+1516 5 171 3271
+151b 11 172 3271
+152c 2 173 3271
+FUNC 4cda 8f 0 __addlocaleref
+4cda 7 36 1913
+4ce1 d 39 1913
+4cee a 41 1913
+4cf8 3 42 1913
+4cfb a 44 1913
+4d05 3 45 1913
+4d08 a 47 1913
+4d12 3 48 1913
+4d15 a 50 1913
+4d1f 3 51 1913
+4d22 a 53 1913
+4d2c f 55 1913
+4d3b 3 56 1913
+4d3e d 59 1913
+4d4b 3 60 1913
+4d4e 8 53 1913
+4d56 11 63 1913
+4d67 2 64 1913
+FUNC 3e27 99 0 __removelocaleref
+3e27 6 74 1913
+3e2d b 77 1913
+3e38 b 79 1913
+3e43 a 81 1913
+3e4d 3 82 1913
+3e50 a 84 1913
+3e5a 3 85 1913
+3e5d a 87 1913
+3e67 3 88 1913
+3e6a a 90 1913
+3e74 3 91 1913
+3e77 a 93 1913
+3e81 f 95 1913
+3e90 3 96 1913
+3e93 d 99 1913
+3ea0 3 100 1913
+3ea3 8 93 1913
+3eab 10 103 1913
+3ebb 3 106 1913
+3ebe 2 107 1913
+FUNC 178e 14b 0 __freetlocinfo
+178e 7 129 1913
+1795 25 137 1913
+17ba e 140 1913
+17c8 6 142 1913
+17ce d 143 1913
+17db e 147 1913
+17e9 6 149 1913
+17ef d 150 1913
+17fc b 153 1913
+1807 d 154 1913
+1814 e 161 1913
+1822 11 163 1913
+1833 13 164 1913
+1846 e 165 1913
+1854 e 166 1913
+1862 15 173 1913
+1877 6 175 1913
+187d d 176 1913
+188a a 179 1913
+1894 13 182 1913
+18a7 7 184 1913
+18ae 10 192 1913
+18be 7 194 1913
+18c5 8 179 1913
+18cd a 201 1913
+18d7 2 202 1913
+FUNC 3170 4d 0 _updatetlocinfoEx_nolock
+3170 6 216 1913
+3176 e 219 1913
+3184 3 222 1913
+3187 4 223 1913
+318b 9 230 1913
+3194 4 236 1913
+3198 6 238 1913
+319e e 248 1913
+31ac 7 249 1913
+31b3 5 253 1913
+31b8 3 220 1913
+31bb 2 254 1913
+FUNC 4dc0 79 0 __updatetlocinfo
+4dc0 c 281 1913
+4dcc 7 283 1913
+4dd3 10 285 1913
+4de3 8 297 1913
+4deb 4 300 1913
+4def 8 302 1913
+4df7 2 305 1913
+4df9 6 306 1913
+4dff 8 286 1913
+4e07 4 288 1913
+4e0b 14 290 1913
+4e1f e 292 1913
+4e2d 8 294 1913
+4e35 4 295 1913
+FUNC 344e 8 0 _crt_debugger_hook
+344e 0 62 1145
+344e 7 65 1145
+3455 1 66 1145
+FUNC 208a 7a 0 memset
+208a 0 59 2789
+208a 4 68 2789
+208e 4 69 2789
+2092 2 71 2789
+2094 2 72 2789
+2096 2 74 2789
+2098 4 75 2789
+209c 2 78 2789
+209e 2 79 2789
+20a0 6 80 2789
+20a6 2 81 2789
+20a8 7 82 2789
+20af 2 83 2789
+20b1 5 85 2789
+20b6 1 91 2789
+20b7 2 92 2789
+20b9 3 94 2789
+20bc 2 95 2789
+20be 2 97 2789
+20c0 3 98 2789
+20c3 2 99 2789
+20c5 2 101 2789
+20c7 2 103 2789
+20c9 3 104 2789
+20cc 3 105 2789
+20cf 2 106 2789
+20d1 2 110 2789
+20d3 3 111 2789
+20d6 2 113 2789
+20d8 2 115 2789
+20da 3 117 2789
+20dd 2 119 2789
+20df 2 122 2789
+20e1 3 123 2789
+20e4 3 124 2789
+20e7 2 125 2789
+20e9 2 127 2789
+20eb 2 129 2789
+20ed 2 130 2789
+20ef 2 134 2789
+20f1 3 135 2789
+20f4 3 137 2789
+20f7 2 138 2789
+20f9 4 142 2789
+20fd 1 143 2789
+20fe 1 145 2789
+20ff 4 148 2789
+2103 1 150 2789
+FUNC 1223 95 0 _aulldvrm
+1223 0 45 2806
+1223 1 48 2806
+1224 4 80 2806
+1228 2 81 2806
+122a 2 82 2806
+122c 4 83 2806
+1230 4 84 2806
+1234 2 85 2806
+1236 2 86 2806
+1238 2 87 2806
+123a 4 88 2806
+123e 2 89 2806
+1240 2 90 2806
+1242 2 95 2806
+1244 4 96 2806
+1248 2 97 2806
+124a 2 98 2806
+124c 4 99 2806
+1250 2 100 2806
+1252 2 101 2806
+1254 2 108 2806
+1256 4 109 2806
+125a 4 110 2806
+125e 4 111 2806
+1262 2 113 2806
+1264 2 114 2806
+1266 2 115 2806
+1268 2 116 2806
+126a 2 117 2806
+126c 2 118 2806
+126e 2 119 2806
+1270 2 120 2806
+1272 4 129 2806
+1276 2 130 2806
+1278 4 131 2806
+127c 2 132 2806
+127e 2 133 2806
+1280 2 134 2806
+1282 4 142 2806
+1286 2 143 2806
+1288 2 144 2806
+128a 4 145 2806
+128e 2 146 2806
+1290 1 148 2806
+1291 4 149 2806
+1295 4 150 2806
+1299 2 152 2806
+129b 4 161 2806
+129f 4 162 2806
+12a3 2 163 2806
+12a5 2 164 2806
+12a7 3 165 2806
+12aa 2 170 2806
+12ac 2 171 2806
+12ae 2 172 2806
+12b0 2 173 2806
+12b2 2 174 2806
+12b4 1 180 2806
+12b5 3 182 2806
+FUNC 28d7 20 0 _global_unwind2
+FUNC 28f7 45 0 static void __unwind_handler()
+FUNC 293c 84 0 _local_unwind2
+FUNC 29c0 23 0 _abnormal_termination
+FUNC 29e3 9 0 _NLG_Notify1
+FUNC 29ec 1f 0 _NLG_Notify
+PUBLIC m 2a03 0 _NLG_Dispatch
+FUNC 2a0b 3 0 _NLG_Call
+PUBLIC 2a0d 0 _NLG_Return2
+FUNC 2862 33 0 abort
+2862 0 54 1011
+2862 5 71 1011
+2867 4 72 1011
+286b 8 74 1011
+2873 9 81 1011
+287c 11 83 1011
+288d 8 92 1011
+FUNC 3456 361 0 memcpy
+3456 3 101 2787
+3459 1 113 2787
+345a 1 114 2787
+345b 3 116 2787
+345e 3 117 2787
+3461 3 119 2787
+3464 2 129 2787
+3466 2 131 2787
+3468 2 132 2787
+346a 2 134 2787
+346c 2 135 2787
+346e 2 137 2787
+3470 6 138 2787
+3476 6 147 2787
+347c 2 148 2787
+347e 7 150 2787
+3485 2 151 2787
+3487 1 153 2787
+3488 1 154 2787
+3489 3 155 2787
+348c 3 156 2787
+348f 2 157 2787
+3491 1 158 2787
+3492 1 159 2787
+3493 2 160 2787
+3495 5 163 2787
+349a 6 176 2787
+34a0 2 177 2787
+34a2 3 179 2787
+34a5 3 180 2787
+34a8 3 182 2787
+34ab 2 183 2787
+34ad 2 185 2787
+34af 7 187 2787
+34b6 2 205 2787
+34b8 5 206 2787
+34bd 3 208 2787
+34c0 2 209 2787
+34c2 3 211 2787
+34c5 2 212 2787
+34c7 7 214 2787
+34ce 8 218 2787
+34d6 14 222 2787
+34ea 2 229 2787
+34ec 2 230 2787
+34ee 2 232 2787
+34f0 3 233 2787
+34f3 3 235 2787
+34f6 3 236 2787
+34f9 3 238 2787
+34fc 3 239 2787
+34ff 3 241 2787
+3502 3 242 2787
+3505 3 244 2787
+3508 2 245 2787
+350a 2 247 2787
+350c a 249 2787
+3516 2 253 2787
+3518 2 254 2787
+351a 2 256 2787
+351c 3 257 2787
+351f 3 259 2787
+3522 3 260 2787
+3525 3 262 2787
+3528 3 263 2787
+352b 3 265 2787
+352e 2 266 2787
+3530 2 268 2787
+3532 8 270 2787
+353a 2 274 2787
+353c 2 275 2787
+353e 2 277 2787
+3540 3 278 2787
+3543 3 280 2787
+3546 3 281 2787
+3549 3 283 2787
+354c 2 284 2787
+354e 2 286 2787
+3550 2a 288 2787
+357a 4 295 2787
+357e 4 297 2787
+3582 4 299 2787
+3586 4 301 2787
+358a 4 303 2787
+358e 4 305 2787
+3592 4 307 2787
+3596 4 309 2787
+359a 4 311 2787
+359e 4 313 2787
+35a2 4 315 2787
+35a6 4 317 2787
+35aa 4 319 2787
+35ae 4 321 2787
+35b2 7 323 2787
+35b9 2 325 2787
+35bb 2 326 2787
+35bd 19 328 2787
+35d6 3 337 2787
+35d9 1 338 2787
+35da 1 339 2787
+35db 3 341 2787
+35de 2 345 2787
+35e0 2 347 2787
+35e2 3 348 2787
+35e5 1 349 2787
+35e6 1 350 2787
+35e7 3 351 2787
+35ea 2 355 2787
+35ec 2 357 2787
+35ee 3 358 2787
+35f1 3 359 2787
+35f4 3 360 2787
+35f7 1 361 2787
+35f8 1 362 2787
+35f9 5 363 2787
+35fe 2 367 2787
+3600 2 369 2787
+3602 3 370 2787
+3605 3 371 2787
+3608 3 372 2787
+360b 3 373 2787
+360e 3 374 2787
+3611 1 375 2787
+3612 1 376 2787
+3613 3 377 2787
+3616 4 388 2787
+361a 4 389 2787
+361e 6 394 2787
+3624 2 395 2787
+3626 3 397 2787
+3629 3 398 2787
+362c 3 400 2787
+362f 2 401 2787
+3631 1 403 2787
+3632 2 404 2787
+3634 1 405 2787
+3635 9 407 2787
+363e 2 411 2787
+3640 a 414 2787
+364a 2 419 2787
+364c 5 420 2787
+3651 3 422 2787
+3654 2 423 2787
+3656 3 425 2787
+3659 2 426 2787
+365b 7 428 2787
+3662 14 432 2787
+3676 3 439 2787
+3679 2 440 2787
+367b 3 442 2787
+367e 3 443 2787
+3681 3 445 2787
+3684 3 446 2787
+3687 3 448 2787
+368a 2 449 2787
+368c 1 451 2787
+368d 2 452 2787
+368f 1 453 2787
+3690 a 455 2787
+369a 3 459 2787
+369d 2 460 2787
+369f 3 462 2787
+36a2 3 463 2787
+36a5 3 465 2787
+36a8 3 466 2787
+36ab 3 468 2787
+36ae 3 469 2787
+36b1 3 471 2787
+36b4 2 472 2787
+36b6 1 474 2787
+36b7 2 475 2787
+36b9 1 476 2787
+36ba 8 478 2787
+36c2 3 482 2787
+36c5 2 483 2787
+36c7 3 485 2787
+36ca 3 486 2787
+36cd 3 488 2787
+36d0 3 489 2787
+36d3 3 491 2787
+36d6 3 492 2787
+36d9 3 494 2787
+36dc 3 495 2787
+36df 3 497 2787
+36e2 6 498 2787
+36e8 1 500 2787
+36e9 2 501 2787
+36eb 1 502 2787
+36ec 2a 504 2787
+3716 4 513 2787
+371a 4 515 2787
+371e 4 517 2787
+3722 4 519 2787
+3726 4 521 2787
+372a 4 523 2787
+372e 4 525 2787
+3732 4 527 2787
+3736 4 529 2787
+373a 4 531 2787
+373e 4 533 2787
+3742 4 535 2787
+3746 4 537 2787
+374a 4 539 2787
+374e 7 541 2787
+3755 2 543 2787
+3757 2 544 2787
+3759 19 546 2787
+3772 3 555 2787
+3775 1 557 2787
+3776 1 558 2787
+3777 3 559 2787
+377a 3 563 2787
+377d 3 565 2787
+3780 3 566 2787
+3783 1 567 2787
+3784 1 568 2787
+3785 5 569 2787
+378a 3 573 2787
+378d 3 575 2787
+3790 3 576 2787
+3793 3 577 2787
+3796 3 578 2787
+3799 1 579 2787
+379a 1 580 2787
+379b 3 581 2787
+379e 3 585 2787
+37a1 3 587 2787
+37a4 3 588 2787
+37a7 3 589 2787
+37aa 3 590 2787
+37ad 3 591 2787
+37b0 3 592 2787
+37b3 1 593 2787
+37b4 1 594 2787
+37b5 2 595 2787
+FUNC 206a 20 0 _freea
+206a 5 235 281
+206f 7 237 281
+2076 3 239 281
+2079 8 241 281
+2081 7 243 281
+2088 2 252 281
+FUNC 4e87 33 0 _msize
+4e87 5 39 561
+4e8c 19 43 561
+4ea5 2 50 561
+4ea7 11 46 561
+4eb8 2 50 561
+FUNC 1466 9 0 _fptrap
+1466 0 46 4123
+1466 8 47 4123
+146e 1 48 4123
+FUNC 1672 106 0 __report_gsfailure
+1672 b 140 1392
+167d 5 170 1392
+1682 6 171 1392
+1688 6 172 1392
+168e 6 173 1392
+1694 6 174 1392
+169a 6 175 1392
+16a0 7 176 1392
+16a7 7 177 1392
+16ae 7 178 1392
+16b5 7 179 1392
+16bc 7 180 1392
+16c3 7 181 1392
+16ca 1 182 1392
+16cb 6 183 1392
+16d1 3 190 1392
+16d4 5 191 1392
+16d9 3 192 1392
+16dc 5 193 1392
+16e1 3 194 1392
+16e4 5 195 1392
+16e9 6 201 1392
+16ef a 204 1392
+16f9 a 206 1392
+1703 a 285 1392
+170d a 286 1392
+1717 b 293 1392
+1722 b 294 1392
+172d b 297 1392
+1738 8 298 1392
+1740 8 302 1392
+1748 b 304 1392
+1753 9 313 1392
+175c 8 315 1392
+1764 12 319 1392
+1776 2 320 1392
+FUNC 1161 82 0 _calloc_impl
+1161 5 21 291
+1166 7 26 291
+116d 19 28 291
+1186 2 69 291
+1188 7 30 291
+118f 4 34 291
+1193 1 35 291
+1194 2 39 291
+1196 5 41 291
+119b f 44 291
+11aa d 47 291
+11b7 b 59 291
+11c2 7 61 291
+11c9 6 62 291
+11cf 4 63 291
+11d3 7 52 291
+11da 7 53 291
+11e1 2 69 291
+FUNC 5067 ad 0 realloc
+5067 5 62 618
+506c 6 67 618
+5072 9 68 618
+507b 3 117 618
+507e 7 71 618
+5085 9 73 618
+508e 5 74 618
+5093 2 109 618
+5095 4 83 618
+5099 1 84 618
+509a 14 85 618
+50ae c 94 618
+50ba b 109 618
+50c5 5 81 618
+50ca 7 89 618
+50d1 b 90 618
+50dc 4 91 618
+50e0 2 117 618
+50e2 16 111 618
+50f8 2 112 618
+50fa 16 103 618
+5110 4 105 618
+FUNC 1904 1e7 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+1904 12 96 3447
+1916 c 101 3447
+1922 17 102 3447
+1939 4 106 3447
+193d 1 107 3447
+193e 3 109 3447
+1941 3 113 3447
+1944 5 133 3447
+1949 b 134 3447
+1954 2c 145 3447
+1980 7 146 3447
+1987 48 149 3447
+19cf 3 150 3447
+19d2 2 151 3447
+19d4 19 160 3447
+19ed 1f 169 3447
+1a0c a 172 3447
+1a16 b 175 3447
+1a21 9 177 3447
+1a2a 10 186 3447
+1a3a 5 190 3447
+1a3f 4b 196 3447
+1a8a 4 197 3447
+1a8e 16 207 3447
+1aa4 9 220 3447
+1aad 2 223 3447
+1aaf 17 233 3447
+1ac6 7 240 3447
+1acd 8 242 3447
+1ad5 4 244 3447
+1ad9 12 245 3447
+FUNC 22a3 46 0 __crtLCMapStringA
+22a3 8 258 3447
+22ab b 259 3447
+22b6 31 271 3447
+22e7 2 272 3447
+FUNC 47fc e7 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+47fc 12 63 3507
+480e 7 67 3507
+4815 5 83 3507
+481a b 84 3507
+4825 29 95 3507
+484e 4 96 3507
+4852 3e 99 3507
+4890 2 100 3507
+4892 2 101 3507
+4894 f 103 3507
+48a3 13 111 3507
+48b6 11 116 3507
+48c7 6 118 3507
+48cd 4 120 3507
+48d1 12 121 3507
+FUNC 152e 40 0 __crtGetStringTypeA
+152e 8 133 3507
+1536 b 134 3507
+1541 2b 145 3507
+156c 2 146 3507
+FUNC 2bf4 377 0 __free_lc_time
+2bf4 6 228 1800
+2bfa b 229 1800
+2c05 8 232 1800
+2c0d 8 233 1800
+2c15 8 234 1800
+2c1d 8 235 1800
+2c25 8 236 1800
+2c2d 8 237 1800
+2c35 7 238 1800
+2c3c 8 240 1800
+2c44 8 241 1800
+2c4c 8 242 1800
+2c54 8 243 1800
+2c5c 8 244 1800
+2c64 8 245 1800
+2c6c 8 246 1800
+2c74 8 248 1800
+2c7c b 249 1800
+2c87 8 250 1800
+2c8f 8 251 1800
+2c97 8 252 1800
+2c9f 8 253 1800
+2ca7 8 254 1800
+2caf 8 255 1800
+2cb7 8 256 1800
+2cbf 8 257 1800
+2cc7 8 258 1800
+2ccf 8 259 1800
+2cd7 8 261 1800
+2cdf 8 262 1800
+2ce7 8 263 1800
+2cef 8 264 1800
+2cf7 8 265 1800
+2cff b 266 1800
+2d0a b 267 1800
+2d15 b 268 1800
+2d20 b 269 1800
+2d2b b 270 1800
+2d36 b 271 1800
+2d41 b 272 1800
+2d4c b 274 1800
+2d57 b 275 1800
+2d62 b 277 1800
+2d6d b 278 1800
+2d78 b 279 1800
+2d83 b 282 1800
+2d8e b 283 1800
+2d99 b 284 1800
+2da4 b 285 1800
+2daf e 286 1800
+2dbd b 287 1800
+2dc8 b 288 1800
+2dd3 b 290 1800
+2dde b 291 1800
+2de9 b 292 1800
+2df4 b 293 1800
+2dff b 294 1800
+2e0a b 295 1800
+2e15 b 296 1800
+2e20 b 298 1800
+2e2b b 299 1800
+2e36 b 300 1800
+2e41 b 301 1800
+2e4c b 302 1800
+2e57 b 303 1800
+2e62 e 304 1800
+2e70 b 305 1800
+2e7b b 306 1800
+2e86 b 307 1800
+2e91 b 308 1800
+2e9c b 309 1800
+2ea7 b 311 1800
+2eb2 b 312 1800
+2ebd b 313 1800
+2ec8 b 314 1800
+2ed3 b 315 1800
+2ede b 316 1800
+2ee9 b 317 1800
+2ef4 b 318 1800
+2eff b 319 1800
+2f0a b 320 1800
+2f15 e 321 1800
+2f23 b 322 1800
+2f2e b 324 1800
+2f39 b 325 1800
+2f44 b 327 1800
+2f4f b 328 1800
+2f5a f 329 1800
+2f69 2 332 1800
+FUNC 30f1 69 0 __free_lconv_num
+30f1 6 218 1742
+30f7 7 219 1742
+30fe a 222 1742
+3108 7 223 1742
+310f b 225 1742
+311a 7 226 1742
+3121 b 228 1742
+312c 7 229 1742
+3133 b 231 1742
+313e 7 232 1742
+3145 b 234 1742
+3150 8 235 1742
+3158 2 236 1742
+FUNC 4f45 fe 0 __free_lconv_mon
+4f45 6 270 1685
+4f4b b 271 1685
+4f56 b 274 1685
+4f61 7 275 1685
+4f68 b 277 1685
+4f73 7 278 1685
+4f7a b 280 1685
+4f85 7 281 1685
+4f8c b 283 1685
+4f97 7 284 1685
+4f9e b 286 1685
+4fa9 7 287 1685
+4fb0 b 289 1685
+4fbb 7 290 1685
+4fc2 b 292 1685
+4fcd 7 293 1685
+4fd4 b 295 1685
+4fdf 7 296 1685
+4fe6 b 298 1685
+4ff1 7 299 1685
+4ff8 b 301 1685
+5003 7 302 1685
+500a b 304 1685
+5015 7 305 1685
+501c b 307 1685
+5027 7 308 1685
+502e b 310 1685
+5039 8 311 1685
+5041 2 312 1685
+FUNC 1000 ba 0 _VEC_memzero
+FUNC 2a0e 10 0 __sse2_available_init
+2a0e 0 30 4315
+2a0e d 31 4315
+2a1b 2 32 4315
+2a1d 1 33 4315
+FUNC 3840 103 0 _VEC_memcpy
+FUNC 2b3e 2c 0 _alloca_probe_16
+2b3e 0 44 4274
+2b3e 1 46 4274
+2b3f 4 47 4274
+2b43 2 48 4274
+2b45 3 49 4274
+2b48 2 50 4274
+2b4a 2 51 4274
+2b4c 2 52 4274
+2b4e 1 53 4274
+2b4f 5 54 4274
+2b54 1 59 4274
+2b55 4 60 4274
+2b59 2 61 4274
+2b5b 3 62 4274
+2b5e 2 63 4274
+2b60 2 64 4274
+2b62 2 65 4274
+2b64 1 66 4274
+2b65 5 67 4274
+PUBLIC 2b54 0 _alloca_probe_8
+FUNC 23a6 34 0 _allmul
+23a6 0 47 2803
+23a6 4 63 2803
+23aa 4 64 2803
+23ae 2 65 2803
+23b0 4 66 2803
+23b4 2 67 2803
+23b6 4 69 2803
+23ba 2 70 2803
+23bc 3 72 2803
+23bf 1 75 2803
+23c0 2 83 2803
+23c2 2 84 2803
+23c4 4 86 2803
+23c8 4 87 2803
+23cc 2 88 2803
+23ce 4 90 2803
+23d2 2 91 2803
+23d4 2 92 2803
+23d6 1 94 2803
+23d7 3 96 2803
+FUNC 10ba 2b 0 _chkstk
+10ba 0 65 4276
+10ba 1 69 4276
+10bb 4 73 4276
+10bf 2 74 4276
+10c1 2 79 4276
+10c3 2 80 4276
+10c5 2 81 4276
+10c7 2 83 4276
+10c9 5 84 4276
+10ce 2 87 4276
+10d0 2 88 4276
+10d2 2 89 4276
+10d4 1 90 4276
+10d5 1 91 4276
+10d6 2 92 4276
+10d8 3 93 4276
+10db 1 94 4276
+10dc 5 98 4276
+10e1 2 99 4276
+10e3 2 100 4276
+FUNC 37c6 46 0 strcspn
+37c6 4 191 2794
+37ca 2 198 2794
+37cc 1 199 2794
+37cd 1 200 2794
+37ce 1 201 2794
+37cf 1 202 2794
+37d0 1 203 2794
+37d1 1 204 2794
+37d2 1 205 2794
+37d3 1 206 2794
+37d4 6 212 2794
+37da 2 216 2794
+37dc 2 217 2794
+37de 2 218 2794
+37e0 3 219 2794
+37e3 4 220 2794
+37e7 2 221 2794
+37e9 3 227 2794
+37ec 6 229 2794
+37f2 3 234 2794
+37f5 2 236 2794
+37f7 2 237 2794
+37f9 2 238 2794
+37fb 3 239 2794
+37fe 4 240 2794
+3802 2 245 2794
+3804 2 255 2794
+3806 3 257 2794
+3809 3 259 2794
+FUNC 1577 40 0 strpbrk
+1577 4 191 2794
+157b 2 198 2794
+157d 1 199 2794
+157e 1 200 2794
+157f 1 201 2794
+1580 1 202 2794
+1581 1 203 2794
+1582 1 204 2794
+1583 1 205 2794
+1584 1 206 2794
+1585 6 212 2794
+158b 2 216 2794
+158d 2 217 2794
+158f 2 218 2794
+1591 3 219 2794
+1594 4 220 2794
+1598 2 221 2794
+159a 5 227 2794
+159f 2 236 2794
+15a1 2 237 2794
+15a3 2 238 2794
+15a5 3 239 2794
+15a8 4 240 2794
+15ac 2 247 2794
+15ae 3 248 2794
+15b1 3 257 2794
+15b4 3 259 2794
+FUNC 1fd3 61 0 __ascii_strnicmp
+1fd3 6 69 2798
+1fd9 3 75 2798
+1fdc 2 76 2798
+1fde 2 77 2798
+1fe0 3 79 2798
+1fe3 3 80 2798
+1fe6 2 82 2798
+1fe8 2 83 2798
+1fea 5 84 2798
+1fef 2 89 2798
+1ff1 2 91 2798
+1ff3 2 93 2798
+1ff5 2 95 2798
+1ff7 2 97 2798
+1ff9 2 98 2798
+1ffb 3 100 2798
+1ffe 3 101 2798
+2001 2 103 2798
+2003 2 104 2798
+2005 2 106 2798
+2007 2 107 2798
+2009 2 109 2798
+200b 2 112 2798
+200d 2 113 2798
+200f 2 115 2798
+2011 2 116 2798
+2013 2 118 2798
+2015 2 121 2798
+2017 2 122 2798
+2019 3 124 2798
+201c 2 125 2798
+201e 2 128 2798
+2020 2 129 2798
+2022 2 130 2798
+2024 5 133 2798
+2029 2 134 2798
+202b 2 135 2798
+202d 2 138 2798
+202f 5 140 2798
+PUBLIC 1cf1 10 RtlUnwind
+STACK WIN 4 41e2 54 6 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4242 a 3 0 0 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b6a 21 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 30dd 14 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21f6 16 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 22e9 1e 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2895 10 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 308e 7 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 13a0 2c 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 205a 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1445 21 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 144b 17 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2307 b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3238 29 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 32ed 161 c 0 0 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3410 14 0 0 0 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2104 a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5330 70 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 5397 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2b8b 3a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bac 17 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 23da 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 283a e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 18d9 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5175 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 48f0 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 406d 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1fa0 33 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1fa3 2f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5043 24 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5049 1c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 147f 97 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14c1 34 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 14c2 32 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4504 140 c 0 c 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 462f e 0 0 c 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 315a 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1778 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3229 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 405e f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2abf 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 424c 26 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 268b 1af 1b 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 26a1 192 5 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 26a2 18e 4 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 26a6 189 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 21bd 39 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3ed7 14a 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3edd 142 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3ef5 129 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3f46 d4 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 255c dc 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 256b a8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2572 a0 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 25b4 5d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 54b7 19a d 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 54c1 185 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 54c4 181 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 15b7 bb d 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15c0 b0 4 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 15c3 ac 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 15c4 aa 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 220c 97 a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2215 8c 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2216 8a 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 223e 61 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 1cf7 245 9 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d00 235 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 1d71 1c3 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 1d72 1c1 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 137a 26 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 137d 22 b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1388 16 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2034 26 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2037 22 b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2042 16 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d7a 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 156e 9 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 380c 34 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 380f 30 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4021 3d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 53a0 b4 c 0 8 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 543c e 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 544b 8 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 13cc 79 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 13cf 75 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 13d0 71 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2848 1a 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 284b 16 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4272 12f c 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 4389 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4395 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4980 17b 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4983 177 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 499e 15b 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 252f 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1aeb 18f 17 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1af4 c9 e 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 1af8 c4 a 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 1b02 b9 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2ff3 9b 17 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3009 83 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 300a 81 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 3026 64 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 1214 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4afb 129 1a 0 c 8 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 812 - ^ =  $24 $T0 816 - ^ = 
+STACK WIN 4 5150 25 3 0 14 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5153 21 0 0 14 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3261 2d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 146f 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2af4 4a 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2af7 3a 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2af8 38 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4d69 57 a 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4d6c 53 7 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d73 4b 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d79 2a 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2add 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 12b8 c2 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 1371 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 31f6 33 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31ff 28 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2a1e 5f a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2a27 54 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2a28 52 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2312 94 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2318 8c 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2321 6c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2322 6a 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 2a7d 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3095 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 31bd 39 c 0 0 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 31dd 4 0 0 0 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 43a1 11 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 215a 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24f8 37 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2507 1b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 48e3 d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 518d 1a3 c 0 4 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 52ee 14 0 0 4 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 254d f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37b7 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 24e9 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4644 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c24 b6 f 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c2b ad 8 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 4c2c ab 7 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4c33 a3 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 11e3 31 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 11e6 2d 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5114 3c c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 514a 5 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3ec0 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28a5 23 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 28a8 1f 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 28a9 1d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 30a8 35 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 32a9 44 1a 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 32bb 30 8 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 32bc 2e 7 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 32c3 26 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5651 bc 35 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 56dc 13 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4076 16c 1e 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 408c 14f 8 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 4093 145 1 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 4094 143 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3943 75 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3949 22 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 394d 1d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 241c cd e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2425 17 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 2429 28 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 242a 10 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 328e 1b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5454 63 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 545a 22 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 545e 1d 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d3b 3f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 28c8 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2178 45 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 217e 3d 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 217f 3b 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 210e 4c 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2114 44 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2115 42 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4e39 4e 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e3f 46 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4e40 44 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2bc5 2f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1f3c 64 6 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1f3f 60 3 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1f40 5e 2 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 466c 190 17 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4682 173 1 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 4683 16f 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 3d83 a4 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3e1b b 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 48f9 87 b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4902 7a 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 10e5 7c 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10ee 71 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 3b52 1e9 1b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b65 1cf 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 3b69 1c8 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 3b6d 1c3 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 39b8 19a c 0 4 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3b19 8 0 0 4 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1cd3 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2638 53 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1516 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4cda 8f e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ce0 87 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4ce1 85 7 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4ce8 7d 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3e27 99 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e2d 91 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3e39 82 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 3e3a 80 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 178e 14b 13 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1794 143 d 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 1795 141 c 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 17a1 134 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3170 4d 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3176 45 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 3185 31 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4dc0 79 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 4e2d 8 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 344e 8 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2862 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 206a 20 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4e87 33 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1466 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1672 106 b 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1161 82 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 118d 54 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5067 ad 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 507e 62 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 5093 4c 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1904 1e7 1a 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 22a3 46 8 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 47fc e7 16 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 152e 40 8 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bf4 377 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2bfa 36f 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 30f1 69 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 30f7 61 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4f45 fe 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4f4b f6 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1000 ba 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2a0e 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3840 103 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 0 3410 14 0 0 0 0 0 0 0 0
+STACK WIN 0 5397 9 0 0 0 0 0 0 0 0
+STACK WIN 0 2f6b 88 0 0 8 0 0 0 0 0
+STACK WIN 0 462f f 0 0 0 0 0 0 0 0
+STACK WIN 0 543c f 0 0 0 0 0 0 0 0
+STACK WIN 0 544b 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4389 c 0 0 0 0 0 0 0 0
+STACK WIN 0 4395 c 0 0 0 0 0 0 0 0
+STACK WIN 0 1371 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4eba 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 43b2 90 3 0 c c 0 0 0 0
+STACK WIN 0 4442 46 0 0 10 4 0 0 0 1
+STACK WIN 0 44a4 17 4 0 0 10 0 0 0 1
+STACK WIN 0 44bb 19 0 0 0 0 0 0 0 0
+STACK WIN 0 44ed 17 1 0 8 4 0 0 0 1
+STACK WIN 0 31dd 4 0 0 0 0 0 0 0 0
+STACK WIN 0 52ee 15 0 0 0 0 0 0 0 0
+STACK WIN 0 514a 6 0 0 0 0 0 0 0 0
+STACK WIN 0 56dc 13 0 0 0 0 0 0 0 0
+STACK WIN 0 3e1b c 0 0 0 0 0 0 0 0
+STACK WIN 0 3b19 9 0 0 0 0 0 0 0 0
+STACK WIN 0 4e2d 9 0 0 0 0 0 0 0 0
+STACK WIN 0 208a 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 1223 95 0 0 10 0 4 0 0 0
+STACK WIN 0 293c 84 3 0 8 c 0 0 0 0
+STACK WIN 0 29c0 23 0 0 0 0 0 0 0 0
+STACK WIN 0 2a0b 3 0 0 0 0 0 0 0 0
+STACK WIN 0 23a6 1a 0 0 10 0 0 0 0 0
+STACK WIN 0 23c0 1a 0 0 10 0 4 0 0 0
diff --git a/src/tools/windows/dump_syms/testdata/omap_stretched.pdb b/src/tools/windows/dump_syms/testdata/omap_stretched.pdb
new file mode 100644
index 0000000..a35b022
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_stretched.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/omap_stretched.sym b/src/tools/windows/dump_syms/testdata/omap_stretched.sym
new file mode 100644
index 0000000..a48ddb6
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_stretched.sym
@@ -0,0 +1,3137 @@
+MODULE windows x86 ABDA3C53D8074326AA40F41DD53824571 omap_stretched.pdb
+FILE 1 c:\src\breakpad\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\public\sdk\inc\internal\pebteb.h
+FILE 3 f:\dd\public\sdk\inc\internal\ntldr.h
+FILE 4 f:\dd\public\sdk\inc\internal\ntconfig.h
+FILE 5 f:\dd\public\sdk\inc\internal\ntregapi.h
+FILE 6 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 7 f:\dd\public\ddk\inc\ntdef.h
+FILE 8 f:\dd\public\sdk\inc\internal\ntmmapi.h
+FILE 9 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 10 f:\dd\public\sdk\inc\pshpack1.h
+FILE 11 f:\dd\public\sdk\inc\internal\nxi386.h
+FILE 12 f:\dd\public\ddk\inc\poppack.h
+FILE 13 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 14 f:\dd\public\sdk\inc\pshpack8.h
+FILE 15 f:\dd\public\ddk\inc\ntpoapi.h
+FILE 16 f:\dd\public\sdk\inc\internal\ntexapi.h
+FILE 17 f:\dd\public\sdk\inc\poppack.h
+FILE 18 f:\dd\public\ddk\inc\ntimage.h
+FILE 19 f:\dd\public\ddk\inc\pshpack4.h
+FILE 20 f:\dd\public\sdk\inc\pshpack2.h
+FILE 21 f:\dd\public\ddk\inc\ntnls.h
+FILE 22 f:\dd\public\sdk\inc\internal\ntelfapi.h
+FILE 23 f:\dd\public\sdk\inc\internal\ntpsapi.h
+FILE 24 f:\dd\public\sdk\inc\internal\nti386.h
+FILE 25 f:\dd\public\sdk\inc\specstrings.h
+FILE 26 f:\dd\public\sdk\inc\sal_supp.h
+FILE 27 f:\dd\public\sdk\inc\specstrings_supp.h
+FILE 28 f:\dd\public\sdk\inc\specstrings_strict.h
+FILE 29 f:\dd\public\sdk\inc\specstrings_undef.h
+FILE 30 f:\dd\public\sdk\inc\driverspecs.h
+FILE 31 f:\dd\public\sdk\inc\sdv_driverspecs.h
+FILE 32 f:\dd\public\sdk\inc\basetsd.h
+FILE 33 f:\dd\public\sdk\inc\internal\ntpnpapi.h
+FILE 34 f:\dd\public\sdk\inc\cfg.h
+FILE 35 f:\dd\public\sdk\inc\internal\ntxcapi.h
+FILE 36 f:\dd\public\sdk\inc\guiddef.h
+FILE 37 f:\dd\public\sdk\inc\internal\nt.h
+FILE 38 f:\dd\public\sdk\inc\ntstatus.h
+FILE 39 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 40 f:\dd\public\sdk\inc\internal\ntkeapi.h
+FILE 41 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 42 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 43 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\codeanalysis\sourceannotations.h
+FILE 44 f:\dd\public\sdk\inc\internal\ntobapi.h
+FILE 45 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 46 f:\dd\public\sdk\inc\internal\ntioapi.h
+FILE 47 f:\dd\public\ddk\inc\devioctl.h
+FILE 48 f:\dd\public\sdk\inc\internal\ntseapi.h
+FILE 49 f:\dd\public\ddk\inc\mce.h
+FILE 50 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 51 f:\dd\public\sdk\inc\pshpack4.h
+FILE 52 f:\dd\public\devdiv\inc\ddbanned.h
+FILE 53 f:\dd\public\sdk\inc\internal\ntlpcapi.h
+FILE 54 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 55 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 56 f:\dd\public\sdk\inc\internal\ntiolog.h
+FILE 57 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 58 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 59 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 60 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 61 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 62 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 64 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 65 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 69 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 73 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 77 f:\dd\public\sdk\inc\winreg.h
+FILE 78 f:\dd\public\sdk\inc\imm.h
+FILE 79 f:\dd\public\sdk\inc\wingdi.h
+FILE 80 f:\dd\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 81 f:\dd\public\sdk\inc\winerror.h
+FILE 82 f:\dd\public\sdk\inc\ktmtypes.h
+FILE 84 f:\dd\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 85 f:\dd\public\sdk\inc\windef.h
+FILE 86 f:\dd\public\sdk\inc\winbase.h
+FILE 88 f:\dd\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 89 f:\dd\public\sdk\inc\winuser.h
+FILE 91 f:\dd\public\sdk\inc\winnetwk.h
+FILE 92 f:\dd\public\sdk\inc\winnt.h
+FILE 93 f:\dd\public\sdk\inc\wnnc.h
+FILE 94 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 96 f:\dd\public\sdk\inc\winnls.h
+FILE 98 f:\dd\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 99 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 100 f:\dd\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 101 f:\dd\vctools\crt_bld\self_x86\crt\src\codeanalysis\sourceannotations.h
+FILE 102 f:\dd\public\sdk\inc\winver.h
+FILE 103 f:\dd\public\sdk\inc\verrsrc.h
+FILE 104 f:\dd\public\sdk\inc\wincon.h
+FILE 105 f:\dd\public\sdk\inc\stralign.h
+FILE 107 f:\dd\public\sdk\inc\mcx.h
+FILE 108 f:\dd\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 109 f:\dd\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 110 f:\dd\public\sdk\inc\windows.h
+FILE 111 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 112 f:\dd\public\sdk\inc\sdkddkver.h
+FILE 113 f:\dd\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 114 f:\dd\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 120 f:\dd\public\sdk\inc\reason.h
+FILE 123 f:\dd\public\sdk\inc\kernelspecs.h
+FILE 125 f:\dd\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 126 f:\dd\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 127 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 128 f:\dd\public\sdk\inc\ime_cmodes.h
+FILE 130 f:\dd\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 131 f:\dd\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 132 f:\dd\public\sdk\inc\tvout.h
+FILE 145 f:\dd\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 152 f:\dd\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 164 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 165 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 178 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 182 f:\dd\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 224 f:\dd\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 250 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 251 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 265 f:\dd\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 281 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 291 f:\dd\vctools\crt_bld\self_x86\crt\src\calloc_impl.c
+FILE 299 f:\dd\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 333 f:\dd\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 389 f:\dd\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 453 f:\dd\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 498 f:\dd\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 504 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 561 f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 618 f:\dd\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 677 f:\dd\vctools\crt_bld\self_x86\crt\src\recalloc.c
+FILE 731 f:\dd\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 774 f:\dd\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 777 f:\dd\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 792 f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 844 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 892 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 904 f:\dd\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 943 f:\dd\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 960 f:\dd\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 975 f:\dd\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 1011 f:\dd\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 1039 f:\dd\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1053 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 1063 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmboxw.c
+FILE 1065 f:\dd\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1069 f:\dd\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1120 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 1145 f:\dd\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 1181 f:\dd\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 1244 f:\dd\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 1288 f:\dd\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 1301 f:\dd\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 1344 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 1392 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 1413 f:\binaries.x86ret\inc\mm3dnow.h
+FILE 1415 f:\binaries.x86ret\inc\ammintrin.h
+FILE 1424 f:\binaries.x86ret\inc\immintrin.h
+FILE 1426 f:\binaries.x86ret\inc\wmmintrin.h
+FILE 1427 f:\binaries.x86ret\inc\nmmintrin.h
+FILE 1428 f:\binaries.x86ret\inc\smmintrin.h
+FILE 1429 f:\binaries.x86ret\inc\tmmintrin.h
+FILE 1430 f:\binaries.x86ret\inc\pmmintrin.h
+FILE 1431 f:\binaries.x86ret\inc\emmintrin.h
+FILE 1432 f:\binaries.x86ret\inc\xmmintrin.h
+FILE 1433 f:\binaries.x86ret\inc\mmintrin.h
+FILE 1455 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 1467 f:\dd\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 1468 f:\dd\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 1508 f:\dd\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 1568 f:\dd\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 1627 f:\dd\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 1685 f:\dd\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 1737 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 1742 f:\dd\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 1800 f:\dd\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 1855 f:\dd\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 1913 f:\dd\vctools\crt_bld\self_x86\crt\src\localref.c
+FILE 1962 f:\dd\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1969 f:\dd\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 1989 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 2036 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 2079 f:\dd\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 2128 f:\dd\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 2186 f:\dd\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 2250 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2311 f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2314 f:\dd\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2315 f:\dd\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2369 f:\dd\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2394 f:\dd\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 2419 f:\dd\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 2445 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 2468 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 2493 f:\dd\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 2523 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 2548 f:\dd\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 2578 f:\dd\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 2603 f:\dd\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 2658 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscat_s.c
+FILE 2713 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscpy_s.c
+FILE 2728 f:\dd\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 2776 f:\dd\vctools\crt_bld\self_x86\crt\src\wcsncpy_s.c
+FILE 2787 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm
+FILE 2788 f:\dd\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2789 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memset.asm
+FILE 2791 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcmp.asm
+FILE 2793 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcspn.asm
+FILE 2794 f:\dd\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 2796 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strlen.asm
+FILE 2798 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\_strnicm.asm
+FILE 2800 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strpbrk.asm
+FILE 2803 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\llmul.asm
+FILE 2805 f:\dd\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 2806 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\ulldvrm.asm
+FILE 2820 f:\dd\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 2841 f:\dd\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 2875 f:\dd\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 2931 f:\dd\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 2987 f:\dd\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 2998 f:\dd\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 3045 f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 3106 f:\dd\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 3163 f:\dd\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 3218 f:\dd\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 3271 f:\dd\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 3305 f:\dd\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 3326 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 3386 f:\dd\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 3447 f:\dd\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 3507 f:\dd\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 3583 f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3626 f:\dd\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 3682 f:\dd\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 3774 f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 3778 f:\dd\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 3838 f:\dd\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 3860 f:\dd\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 3891 f:\dd\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 3954 f:\dd\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 3998 f:\dd\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 4012 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 4072 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 4123 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 4186 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 4250 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 4274 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\alloca16.asm
+FILE 4276 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm
+FILE 4289 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 4293 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 4294 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 4295 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 4309 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 4315 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 4327 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 4340 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 4345 f:\dd\vctools\langapi\undname\undname.inl
+FILE 4347 f:\dd\vctools\langapi\undname\utf8.h
+FILE 4355 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 4365 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 4366 f:\dd\vctools\langapi\undname\undname.h
+FILE 4367 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 4368 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 4396 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 4397 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 4401 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 4405 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 4427 f:\dd\vctools\langapi\include\ehdata.h
+FILE 4429 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 4449 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 4472 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 4473 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 4475 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 4487 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 4488 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 4490 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 4491 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 4492 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 4493 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 4496 f:\dd\public\internal\vctools\include\undname.h
+FILE 4531 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 4591 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 4643 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 4664 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 4680 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FUNC 1000 54 0 main
+1000 6 57 1
+1006 8 58 1
+100e e 59 1
+101c 8 60 1
+1024 b 61 1
+102f f 62 1
+103e 12 64 1
+1050 4 65 1
+FUNC 1060 a 0 static int google_breakpad::i()
+1060 3 51 1
+1063 5 52 1
+1068 2 53 1
+FUNC 106a 35 0 google_breakpad::C::C()
+106a 35 37 1
+FUNC 109f 1e 0 google_breakpad::C::~C()
+109f 1e 38 1
+FUNC 10bd d 0 google_breakpad::C::set_member(int)
+FUNC 10d4 9 0 google_breakpad::C::set_member(int)
+10bd d 40 1
+10d4 9 40 1
+FUNC 10dd 2b 0 google_breakpad::C::f()
+FUNC 1112 7 0 google_breakpad::C::f()
+10dd 2b 43 1
+1112 7 43 1
+FUNC 1119 10 0 google_breakpad::C::g()
+1119 10 44 1
+FUNC 1129 7 0 google_breakpad::C::h(google_breakpad::C const &)
+1129 7 45 1
+FUNC 1130 2c 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 115c 1a 0 type_info::~type_info()
+115c 2 49 4531
+115e 17 50 4531
+1175 1 51 4531
+FUNC 1176 21 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 1197 b 0 operator delete(void *)
+1197 5 20 2875
+119c 1 24 2875
+119d 5 23 2875
+FUNC 11a2 29 0 static void fast_error_exit(int)
+11a2 5 326 4250
+11a7 9 335 4250
+11b0 5 337 4250
+11b5 8 339 4250
+11bd c 340 4250
+11c9 2 341 4250
+FUNC 11cb 161 0 static int __tmainCRTStartup()
+11cb c 196 4250
+11d7 a 214 4250
+11e1 b 216 4250
+11ec 49 223 4250
+1235 9 225 4250
+123e 8 226 4250
+1246 9 228 4250
+124f 8 229 4250
+1257 5 238 4250
+125c 3 246 4250
+125f 9 248 4250
+1268 8 249 4250
+1270 b 252 4250
+127b a 255 4250
+1285 9 257 4250
+128e 8 258 4250
+1296 9 259 4250
+129f 8 260 4250
+12a7 8 262 4250
+12af 4 263 4250
+12b3 7 264 4250
+12ba a 277 4250
+12c4 18 278 4250
+12dc 5 281 4250
+12e1 6 282 4250
+12e7 5 284 4250
+12ec 2 286 4250
+12ee 17 287 4250
+1305 6 293 4250
+130b 6 295 4250
+1311 6 296 4250
+1317 5 298 4250
+131c 7 300 4250
+1323 3 302 4250
+1326 6 303 4250
+FUNC 132c a 0 mainCRTStartup
+132c 0 179 4250
+132c 5 186 4250
+1331 5 188 4250
+FUNC 1336 70 0 type_info::_Type_info_dtor(type_info *)
+1336 c 62 4473
+1342 8 63 4473
+134a 4 64 4473
+134e a 65 4473
+1358 d 70 4473
+1365 4 72 4473
+1369 4 74 4473
+136d 6 79 4473
+1373 7 80 4473
+137a 9 94 4473
+1383 4 101 4473
+1387 c 103 4473
+1393 6 107 4473
+1399 2 83 4473
+139b 2 72 4473
+139d 9 104 4473
+FUNC 13a6 88 0 strcmp
+13a6 0 65 2791
+13a6 4 73 2791
+13aa 4 74 2791
+13ae 6 76 2791
+13b4 2 77 2791
+13b6 2 81 2791
+13b8 2 83 2791
+13ba 2 84 2791
+13bc 2 85 2791
+13be 2 86 2791
+13c0 3 87 2791
+13c3 2 88 2791
+13c5 2 89 2791
+13c7 2 90 2791
+13c9 3 92 2791
+13cc 3 94 2791
+13cf 2 95 2791
+13d1 2 96 2791
+13d3 2 97 2791
+13d5 3 98 2791
+13d8 2 99 2791
+13da 3 100 2791
+13dd 3 101 2791
+13e0 2 102 2791
+13e2 4 103 2791
+13e6 2 107 2791
+13e8 2 108 2791
+13ea 2 115 2791
+13ec 2 116 2791
+13ee 3 117 2791
+13f1 1 118 2791
+13f2 6 122 2791
+13f8 2 123 2791
+13fa 2 125 2791
+13fc 3 126 2791
+13ff 2 127 2791
+1401 2 128 2791
+1403 3 129 2791
+1406 2 130 2791
+1408 2 131 2791
+140a 6 133 2791
+1410 2 134 2791
+1412 3 139 2791
+1415 3 140 2791
+1418 2 141 2791
+141a 2 142 2791
+141c 2 143 2791
+141e 2 144 2791
+1420 3 145 2791
+1423 2 146 2791
+1425 2 147 2791
+1427 2 148 2791
+1429 3 149 2791
+142c 2 150 2791
+FUNC 142e 35 0 free
+FUNC 146d 5 0 free
+142e 5 40 389
+1433 6 45 389
+1439 11 50 389
+144a 4 51 389
+144e 15 53 389
+146d 3 53 389
+1470 2 55 389
+FUNC 1472 6a 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+1472 5 67 4397
+1477 5a 68 4397
+14d1 5 69 4397
+14d6 2 72 4397
+14d8 4 73 4397
+FUNC 14dc e 0 __CxxSetUnhandledExceptionFilter
+14dc 0 86 4397
+14dc b 89 4397
+14e7 2 90 4397
+14e9 1 91 4397
+FUNC 14ea 2b 0 __crtCorExitProcess
+14ea 5 675 4186
+14ef b 679 4186
+14fa 4 680 4186
+14fe c 681 4186
+150a 4 682 4186
+150e 5 683 4186
+1513 2 693 4186
+FUNC 1515 18 0 __crtExitProcess
+1515 5 698 4186
+151a 9 699 4186
+1523 a 708 4186
+FUNC 152d 9 0 _lockexit
+152d 0 758 4186
+152d 8 759 4186
+1535 1 760 4186
+FUNC 1536 9 0 _unlockexit
+1536 0 784 4186
+1536 8 785 4186
+153e 1 786 4186
+FUNC 153f 33 0 _init_pointers
+153f 3 809 4186
+1542 7 810 4186
+1549 6 812 4186
+154f 6 813 4186
+1555 6 814 4186
+155b 6 815 4186
+1561 6 816 4186
+1567 a 817 4186
+1571 1 818 4186
+FUNC 1572 2e 0 _initterm_e
+1572 6 908 4186
+1578 b 917 4186
+158d 6 922 4186
+1593 2 923 4186
+1595 3 924 4186
+1598 6 917 4186
+159e 2 928 4186
+FUNC 15a0 a1 0 _cinit
+15a0 5 258 4186
+15a5 18 268 4186
+15bd a 270 4186
+15c7 5 272 4186
+15cc 11 278 4186
+15dd 2 279 4186
+15df 2 280 4186
+15e1 c 283 4186
+15ed 2a 288 4186
+1617 1a 301 4186
+1631 c 303 4186
+163d 2 307 4186
+163f 2 308 4186
+FUNC 1641 140 0 static void doexit(int, int, int)
+1641 c 489 4186
+164d 8 507 4186
+1655 4 508 4186
+1659 f 510 4186
+1668 5 511 4186
+166d 8 514 4186
+1675 a 516 4186
+167f 13 532 4186
+1692 4 533 4186
+1696 d 534 4186
+16a3 3 538 4186
+16a6 3 539 4186
+16a9 11 547 4186
+16ba 2 550 4186
+16bc 4 552 4186
+16c0 6 559 4186
+16c6 7 562 4186
+16cd 2 565 4186
+16cf a 567 4186
+16d9 8 568 4186
+16e1 a 570 4186
+16eb 6 573 4186
+16f1 8 574 4186
+16f9 5 576 4186
+16fe 21 582 4186
+171f 21 590 4186
+1740 c 608 4186
+174c 6 613 4186
+1752 a 617 4186
+175c 8 619 4186
+1764 8 621 4186
+176c 6 609 4186
+1772 9 610 4186
+177b 6 622 4186
+FUNC 1781 16 0 exit
+1781 5 392 4186
+1786 f 393 4186
+1795 2 394 4186
+FUNC 1797 16 0 _exit
+1797 5 400 4186
+179c f 401 4186
+17ab 2 402 4186
+FUNC 17ad f 0 _cexit
+17ad 0 407 4186
+17ad e 408 4186
+17bb 1 409 4186
+FUNC 17bc f 0 _c_exit
+17bc 0 414 4186
+17bc e 415 4186
+17ca 1 416 4186
+FUNC 17cb 1e 0 _amsg_exit
+17cb 5 439 4186
+17d0 5 440 4186
+17d5 9 441 4186
+17de b 442 4186
+FUNC 17e9 26 0 _GET_RTERRMSG
+17e9 5 165 4012
+17ee 2 168 4012
+17f0 c 169 4012
+17fc 6 168 4012
+1802 2 172 4012
+1804 2 173 4012
+1806 7 170 4012
+180d 2 173 4012
+FUNC 180f 1c5 0 _NMSG_WRITE
+180f 1b 196 4012
+182a 8 197 4012
+1832 11 199 4012
+1843 2a 226 4012
+186d c 263 4012
+1879 20 272 4012
+1899 21 275 4012
+18ba 1f 276 4012
+18d9 d 279 4012
+18e6 d 281 4012
+18f3 1d 282 4012
+1910 18 285 4012
+1928 14 286 4012
+193c 15 290 4012
+1951 a 272 4012
+195b a 228 4012
+1965 9 229 4012
+196e 2 244 4012
+197b a 246 4012
+1990 6 248 4012
+1996 8 244 4012
+199e 27 260 4012
+19c5 f 294 4012
+FUNC 19d4 39 0 _FF_MSGBANNER
+19d4 0 134 4012
+19d4 22 138 4012
+19f6 a 140 4012
+1a00 c 141 4012
+1a0c 1 143 4012
+FUNC 1a0d 251 0 _XcptFilter
+1a0d 6 195 2369
+1a13 7 202 2369
+1a1a 8 203 2369
+1a2c 2e 208 2369
+1a64 6 208 2369
+1a6a 4 210 2369
+1a78 3 216 2369
+1a7b 4 223 2369
+1a7f 7 224 2369
+1a86 5 232 2369
+1a95 4 237 2369
+1a99 8 238 2369
+1aa1 3 244 2369
+1aa4 6 248 2369
+1aaa 4 263 2369
+1ab8 3 263 2369
+1ac5 3 263 2369
+1ad2 c 272 2369
+1ade 3 280 2369
+1aeb 1e 283 2369
+1b13 16 310 2369
+1b33 c 312 2369
+1b3f 7 314 2369
+1b50 c 316 2369
+1b5c 7 318 2369
+1b6d c 320 2369
+1b79 7 322 2369
+1b8a c 324 2369
+1b96 7 326 2369
+1ba7 9 328 2369
+1bb0 7 330 2369
+1bc1 9 332 2369
+1bca 7 334 2369
+1bdb 9 336 2369
+1be4 7 338 2369
+1bf5 9 340 2369
+1bfe 7 342 2369
+1c0f 7 344 2369
+1c20 8 353 2369
+1c32 3 358 2369
+1c35 2 360 2369
+1c41 4 365 2369
+1c45 4 366 2369
+1c53 4 372 2369
+1c57 5 374 2369
+1c5c 2 376 2369
+FUNC 1c5e dc 0 _setenvp
+1c5e 0 77 3838
+1c5e 9 85 3838
+1c67 6 86 3838
+1c6d 9 91 3838
+1c76 4 98 3838
+1c7a 8 99 3838
+1c82 4 110 3838
+1c86 1 111 3838
+1c87 b 112 3838
+1c92 6 108 3838
+1c98 15 117 3838
+1cad 2 118 3838
+1caf 9 121 3838
+1cb8 6 123 3838
+1cbe 9 125 3838
+1cc7 10 127 3838
+1cd7 f 133 3838
+1ce6 3 134 3838
+1ce9 7 121 3838
+1cf0 b 138 3838
+1cfb 7 139 3838
+1d02 3 142 3838
+1d05 a 149 3838
+1d0f 2 152 3838
+1d11 2 138 3838
+1d13 3 153 3838
+1d16 b 129 3838
+1d21 7 130 3838
+1d28 5 131 3838
+1d2d d 133 3838
+FUNC 1d3a 2ee 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 2032 3 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+FUNC 203f 4 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+1d3a 6 221 3891
+1d40 7 229 3891
+1d51 2 229 3891
+1d53 2 232 3891
+1d55 1f 234 3891
+1d7e 2 234 3891
+1d80 3 253 3891
+1d8d 5 255 3891
+1d92 5 257 3891
+1d97 9 258 3891
+1da0 6 259 3891
+1daf 2 261 3891
+1db1 4 262 3891
+1dbf 2 263 3891
+1dcb 6 263 3891
+1ddb 2 265 3891
+1ddd f 267 3891
+1df6 2 268 3891
+1df8 6 269 3891
+1dfe 3 270 3891
+1e0b 5 270 3891
+1e1a 2 270 3891
+1e1c 1 271 3891
+1e1d 22 275 3891
+1e3f 4 280 3891
+1e4d 4 281 3891
+1e51 4 284 3891
+1e5f 9 289 3891
+1e72 a 290 3891
+1e7c 3 291 3891
+1e7f 1 278 3891
+1e80 2 279 3891
+1e8c 9 294 3891
+1e95 6 298 3891
+1e9b 7 299 3891
+1eac 2 299 3891
+1eb8 2 300 3891
+1eba 3 314 3891
+1ebd 4 318 3891
+1ec1 1 321 3891
+1ec2 1 322 3891
+1ecd 5 319 3891
+1edc 5 324 3891
+1ee1 5 327 3891
+1ee6 9 328 3891
+1ef9 5 328 3891
+1efe 2 329 3891
+1f00 2 330 3891
+1f02 d 332 3891
+1f0f 2 335 3891
+1f11 5 339 3891
+1f16 4 340 3891
+1f24 4 341 3891
+1f32 6 342 3891
+1f38 3 341 3891
+1f45 20 346 3891
+1f65 8 351 3891
+1f6d 12 353 3891
+1f89 8 354 3891
+1f9b 3 354 3891
+1fa8 2 355 3891
+1faa 3 357 3891
+1fb7 5 357 3891
+1fc6 2 357 3891
+1fc8 2 358 3891
+1fca a 359 3891
+1fd4 1 360 3891
+1fdf 2 361 3891
+1feb 5 364 3891
+1ff0 1 366 3891
+1ff1 5 375 3891
+1ff6 4 379 3891
+2004 7 380 3891
+2015 2 381 3891
+2017 8 382 3891
+201f 9 385 3891
+2032 3 386 3891
+203f 2 387 3891
+2041 2 388 3891
+FUNC 2043 c5 0 _setargv
+2043 9 88 3891
+204c c 97 3891
+2058 5 98 3891
+205d 18 104 3891
+2075 12 120 3891
+2091 7 120 3891
+2098 11 127 3891
+20a9 15 134 3891
+20be a 138 3891
+20c8 2 140 3891
+20ca 9 142 3891
+20d3 2 143 3891
+20d5 2 144 3891
+20d7 13 151 3891
+20ea c 156 3891
+20f6 6 160 3891
+20fc 4 175 3891
+2100 6 136 3891
+2106 2 176 3891
+FUNC 2108 b8 0 __crtGetEnvironmentStringsA
+2108 a 40 943
+2112 e 49 943
+2120 8 50 943
+2131 5 54 943
+2136 3 55 943
+2143 5 55 943
+2148 3 56 943
+2155 6 56 943
+215b 1b 70 943
+2176 12 74 943
+2188 12 88 943
+219a 9 90 943
+21a3 3 91 943
+21a6 7 94 943
+21ad 5 95 943
+21b2 7 76 943
+21b9 5 77 943
+21be 2 96 943
+FUNC 21c0 3b2 0 _ioinit
+21c0 9 111 792
+21c9 a 122 792
+21d3 13 129 792
+21e6 8 131 792
+21ee 15 137 792
+2203 3 134 792
+2210 4 139 792
+221e 6 139 792
+222e 3 141 792
+223b 6 143 792
+224b 4 145 792
+2259 3 146 792
+2266 1b 147 792
+2281 15 155 792
+22a0 2 160 792
+22a2 6 166 792
+22a8 2 167 792
+22aa e 173 792
+22b8 11 179 792
+22c9 13 185 792
+22dc 7 199 792
+22e3 6 201 792
+22f3 a 201 792
+22fd 3 198 792
+230a 4 203 792
+2318 4 205 792
+2326 4 206 792
+2334 14 209 792
+2352 6 209 792
+2362 1c 210 792
+237e f 179 792
+238d 2 280 792
+238f 6 191 792
+2395 a 217 792
+239f 45 230 792
+23e4 14 232 792
+23f8 3 233 792
+2405 2 233 792
+2411 2 233 792
+2413 3 234 792
+2420 2 234 792
+242c 3 234 792
+242f 17 237 792
+2450 3 239 792
+2453 10 217 792
+2463 2 249 792
+2465 b 251 792
+247a c 254 792
+2490 a 302 792
+24a3 4 258 792
+24a7 30 262 792
+24d7 5 273 792
+24e6 7 273 792
+24f7 6 274 792
+24fd 5 275 792
+250c 4 276 792
+2510 13 280 792
+252d 3 282 792
+2530 2 284 792
+253c 4 293 792
+254a 6 294 792
+2550 a 249 792
+255a c 309 792
+2566 5 311 792
+256b 2 312 792
+256d 5 281 792
+FUNC 2572 30 0 _RTC_Initialize
+FUNC 25a2 30 0 _RTC_Terminate
+FUNC 25d2 9 0 _encoded_null
+25d2 0 79 3774
+25d2 8 80 3774
+25da 1 81 3774
+FUNC 25db 9 4 __crtTlsAlloc
+25db 0 95 3774
+25db 6 96 3774
+25e1 3 97 3774
+FUNC 25e4 34 0 __set_flsgetvalue
+25e4 3 143 3774
+25e7 e 145 3774
+25f5 4 146 3774
+25f9 e 148 3774
+2607 d 149 3774
+2614 3 151 3774
+2617 1 155 3774
+FUNC 2618 3d 0 _mtterm
+2618 0 329 3774
+2618 a 336 3774
+2622 f 337 3774
+2631 7 338 3774
+2638 a 342 3774
+2642 7 343 3774
+2649 7 344 3774
+2650 5 352 3774
+FUNC 2655 b4 0 _initptd
+2655 c 379 3774
+2661 b 381 3774
+266c a 384 3774
+2676 4 385 3774
+267a 6 386 3774
+2680 3 391 3774
+2683 7 395 3774
+268a 7 396 3774
+2691 7 397 3774
+2698 8 399 3774
+26a0 4 400 3774
+26a4 9 402 3774
+26ad c 404 3774
+26b9 8 411 3774
+26c1 3 412 3774
+26c4 6 413 3774
+26ca 4 421 3774
+26ce 8 422 3774
+26d6 9 423 3774
+26df c 425 3774
+26eb 6 428 3774
+26f1 6 404 3774
+26f7 9 406 3774
+2700 9 426 3774
+FUNC 2709 8d 0 _getptd_noexit
+2709 4 448 3774
+270d 6 452 3774
+2713 15 460 3774
+2728 14 472 3774
+273c 19 475 3774
+2755 a 481 3774
+275f 6 483 3774
+276f 4 484 3774
+277d 2 484 3774
+277f 2 486 3774
+2781 7 492 3774
+2788 2 493 3774
+278a 8 498 3774
+2792 3 500 3774
+2795 1 501 3774
+FUNC 2796 1a 0 _getptd
+2796 3 522 3774
+2799 7 523 3774
+27a0 4 524 3774
+27a4 8 525 3774
+27ac 3 527 3774
+27af 1 528 3774
+FUNC 27b0 12f 4 _freefls
+27b0 c 556 3774
+27bc b 567 3774
+27c7 7 568 3774
+27ce 7 569 3774
+27d5 7 571 3774
+27dc 7 572 3774
+27e3 7 574 3774
+27ea 7 575 3774
+27f1 7 577 3774
+27f8 7 578 3774
+27ff 7 580 3774
+2806 7 581 3774
+280d 7 583 3774
+2814 7 584 3774
+281b 7 586 3774
+2822 7 587 3774
+2829 a 589 3774
+2833 7 590 3774
+283a 8 592 3774
+2842 4 593 3774
+2846 1a 596 3774
+2860 7 597 3774
+2867 c 599 3774
+2873 8 603 3774
+287b 7 605 3774
+2882 7 606 3774
+2889 7 608 3774
+2890 15 611 3774
+28a5 7 612 3774
+28ac c 615 3774
+28b8 7 619 3774
+28bf 8 622 3774
+28c7 3 599 3774
+28ca 9 600 3774
+28d3 3 615 3774
+28d6 9 616 3774
+FUNC 28df 18f 0 _mtinit
+28df 3 203 3774
+28e2 d 211 3774
+28ef 4 212 3774
+28f3 5 213 3774
+28f8 3 214 3774
+28fb 2 300 3774
+28fd e 218 3774
+290b d 221 3774
+2918 d 224 3774
+2925 d 227 3774
+2932 2a 228 3774
+295c a 231 3774
+2966 1a 235 3774
+2980 25 244 3774
+29a5 5 249 3774
+29aa e 256 3774
+29b8 d 257 3774
+29c5 d 258 3774
+29d2 12 259 3774
+29e4 7 266 3774
+29eb 2 268 3774
+29ed 1d 274 3774
+2a0a 2 276 3774
+2a0c 29 284 3774
+2a35 a 294 3774
+2a3f 6 296 3774
+2a4f 4 297 3774
+2a5d 2 297 3774
+2a5f 5 299 3774
+2a64 5 286 3774
+2a69 4 245 3774
+2a6d 1 300 3774
+FUNC 2a6e 1e 0 _heap_init
+2a6e 0 40 453
+2a6e 1d 44 453
+2a8b 1 60 453
+FUNC 2a8c 45 0 _SEH_prolog4
+FUNC 2ad1 14 0 _SEH_epilog4
+FUNC 2ae5 2c4 0 _except_handler4
+FUNC 2da9 9b 0 __security_init_cookie
+2da9 8 97 1455
+2db1 21 114 1455
+2dd2 7 116 1455
+2dd9 3 117 1455
+2ddc a 127 1455
+2de6 6 132 1455
+2dec 8 135 1455
+2df4 8 136 1455
+2dfc 8 137 1455
+2e04 a 139 1455
+2e0e 8 144 1455
+2e16 4 161 1455
+2e1a 7 163 1455
+2e21 4 166 1455
+2e25 c 168 1455
+2e31 6 172 1455
+2e37 b 173 1455
+2e42 2 175 1455
+FUNC 2e44 f 0 _initp_misc_invarg
+2e44 5 64 3583
+2e49 8 65 3583
+2e51 2 66 3583
+FUNC 2e53 129 0 _call_reportfault
+2e53 16 164 3583
+2e69 9 166 3583
+2e72 7 167 3583
+2e79 17 170 3583
+2e90 1b 172 3583
+2eab 6 179 3583
+2eb1 6 180 3583
+2eb7 6 181 3583
+2ebd 6 182 3583
+2ec3 6 183 3583
+2ec9 6 184 3583
+2ecf 7 185 3583
+2ed6 7 186 3583
+2edd 7 187 3583
+2ee4 7 188 3583
+2eeb 7 189 3583
+2ef2 7 190 3583
+2ef9 1 191 3583
+2efa 6 192 3583
+2f00 3 198 3583
+2f03 19 199 3583
+2f1c 9 201 3583
+2f25 9 240 3583
+2f2e 9 241 3583
+2f37 6 242 3583
+2f3d 6 245 3583
+2f43 a 248 3583
+2f4d d 250 3583
+2f5a d 254 3583
+2f67 7 255 3583
+2f6e e 257 3583
+FUNC 2f7c 25 0 _invoke_watson
+2f7c 3 146 3583
+2f7f 12 155 3583
+2f91 f 156 3583
+2fa0 1 157 3583
+FUNC 2fa1 2d 0 _invalid_parameter
+2fa1 5 96 3583
+2fa6 c 103 3583
+2fb2 4 104 3583
+2fb6 1 111 3583
+2fb7 2 106 3583
+2fb9 15 110 3583
+FUNC 2fce 10 0 _invalid_parameter_noinfo
+2fce 0 120 3583
+2fce f 121 3583
+2fdd 1 122 3583
+FUNC 2fde 5e 0 _mtinitlocks
+2fde 4 136 3954
+2fe2 7 143 3954
+2fe9 a 144 3954
+2ff3 7 145 3954
+3004 2 145 3954
+3006 1e 147 3954
+3024 6 143 3954
+302a 3 156 3954
+302d 3 157 3954
+3030 c 150 3954
+FUNC 303c 89 0 _mtdeletelocks
+303c 3 187 3954
+303f d 193 3954
+3056 6 195 3954
+3066 6 195 3954
+306c 3 199 3954
+306f 6 205 3954
+307f 4 206 3954
+3083 b 193 3954
+308e 6 214 3954
+309e 6 216 3954
+30ae 6 216 3954
+30b4 3 220 3954
+30b7 b 214 3954
+30c2 3 223 3954
+FUNC 30c5 17 0 _unlock
+30c5 5 370 3954
+30ca 10 374 3954
+30da 2 375 3954
+FUNC 30dc c2 0 _mtinitlocknum
+30dc c 258 3954
+30e8 6 260 3954
+30ee a 268 3954
+30f8 5 269 3954
+30fd 7 270 3954
+3104 c 271 3954
+3110 e 275 3954
+311e 4 276 3954
+3122 e 278 3954
+3130 b 279 3954
+313b 4 280 3954
+313f 8 283 3954
+3147 3 284 3954
+314a 4 286 3954
+314e 10 287 3954
+315e 7 288 3954
+3165 b 289 3954
+3170 3 290 3954
+3173 2 291 3954
+3175 2 292 3954
+3177 2 295 3954
+3179 7 296 3954
+3180 c 299 3954
+318c 3 303 3954
+318f 6 304 3954
+3195 9 300 3954
+FUNC 319e 47 0 _lock
+319e 5 332 3954
+31a3 b 337 3954
+31b8 5 337 3954
+31bd b 339 3954
+31c8 8 340 3954
+31da 9 347 3954
+31e3 2 348 3954
+FUNC 31e5 9c 0 strcpy_s
+31e5 5 13 2523
+31ea 2d 18 2523
+3217 7 19 2523
+3228 4 19 2523
+322c 26 23 2523
+3252 4 27 2523
+3260 3 29 2523
+3263 8 30 2523
+3275 6 30 2523
+327b 4 33 2523
+327f 2 34 2523
+FUNC 3281 8b 0 strlen
+3281 0 54 2796
+3281 4 63 2796
+3285 6 64 2796
+328b 2 65 2796
+328d 2 69 2796
+328f 3 70 2796
+3292 2 71 2796
+3294 2 72 2796
+3296 6 73 2796
+329c 2 74 2796
+329e 13 76 2796
+32b1 2 81 2796
+32b3 5 82 2796
+32b8 2 83 2796
+32ba 3 84 2796
+32bd 2 85 2796
+32bf 3 86 2796
+32c2 5 87 2796
+32c7 2 88 2796
+32c9 3 90 2796
+32cc 2 91 2796
+32ce 2 92 2796
+32d0 2 93 2796
+32d2 2 94 2796
+32d4 5 95 2796
+32d9 2 96 2796
+32db 5 97 2796
+32e0 2 98 2796
+32e2 2 99 2796
+32e4 3 103 2796
+32e7 4 104 2796
+32eb 2 105 2796
+32ed 1 106 2796
+32ee 3 108 2796
+32f1 4 109 2796
+32f5 2 110 2796
+32f7 1 111 2796
+32f8 3 113 2796
+32fb 4 114 2796
+32ff 2 115 2796
+3301 1 116 2796
+3302 3 118 2796
+3305 4 119 2796
+3309 2 120 2796
+330b 1 121 2796
+FUNC 330c b6 0 malloc
+330c 6 81 504
+3312 e 85 504
+3320 3d 89 504
+335d 4 94 504
+3361 b 98 504
+336c b 105 504
+3377 2 109 504
+3379 5 100 504
+3388 2 100 504
+338a 5 119 504
+3399 2 119 504
+339b 6 121 504
+33a1 7 111 504
+33a8 5 112 504
+33b7 6 112 504
+33bd 3 113 504
+33c0 2 122 504
+FUNC 33c2 90 0 _local_unwind4
+FUNC 3452 46 0 static void _unwind_handler4()
+FUNC 3498 1c 4 _seh_longjmp_unwind4
+FUNC 34b4 17 0 _EH4_CallFilterFunc
+FUNC 34cb 19 0 _EH4_TransferToHandler
+FUNC 34e4 19 0 _EH4_GlobalUnwind2
+FUNC 34fd 17 8 _EH4_LocalUnwind
+FUNC 3514 42 0 _get_errno_from_oserr
+3514 5 119 224
+3519 5 123 224
+351e 9 124 224
+3527 6 123 224
+352d 8 133 224
+3535 3 134 224
+3538 2 139 224
+353a 7 125 224
+3541 2 139 224
+3543 11 135 224
+3554 2 139 224
+FUNC 3556 13 0 _errno
+3556 0 279 224
+3556 5 280 224
+355b 4 281 224
+355f 5 282 224
+3564 1 287 224
+3565 3 284 224
+3568 1 287 224
+FUNC 3569 39 0 terminate()
+3569 c 84 4591
+3575 8 89 4591
+357d 4 90 4591
+3581 4 95 4591
+3585 2 99 4591
+3587 2 100 4591
+3589 7 101 4591
+3590 7 106 4591
+3597 5 114 4591
+359c 6 115 4591
+FUNC 35a2 11 0 _initp_eh_hooks
+35a2 0 69 4591
+35a2 10 70 4591
+35b2 1 71 4591
+FUNC 35b3 1e 0 _initp_misc_winsig
+35b3 5 57 2311
+35b8 8 58 2311
+35c0 5 59 2311
+35c5 5 60 2311
+35ca 5 61 2311
+35cf 2 62 2311
+FUNC 35d1 38 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+FUNC 3613 9 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+35d1 5 629 2311
+35d6 a 630 2311
+35ea 14 639 2311
+35fe b 642 2311
+3613 3 642 2311
+3616 2 646 2311
+3618 2 651 2311
+361a 2 652 2311
+FUNC 361c d 0 __get_sigabrt
+361c 0 669 2311
+361c c 670 2311
+3628 1 671 2311
+FUNC 3629 1a3 0 raise
+3629 c 450 2311
+3635 5 457 2311
+363a 3 458 2311
+363d 1f 460 2311
+365c a 486 2311
+3666 4 487 2311
+366a 8 488 2311
+3672 a 463 2311
+367c 2 465 2311
+367e 10 490 2311
+368e 2 491 2311
+3690 f 460 2311
+369f 12 498 2311
+36b1 a 474 2311
+36bb 2 476 2311
+36bd a 468 2311
+36c7 2 470 2311
+36c9 a 479 2311
+36d3 7 480 2311
+36da a 500 2311
+36e4 2 508 2311
+36e6 4 507 2311
+36ea 6 508 2311
+36f0 5 513 2311
+36f5 7 518 2311
+36fc 5 525 2311
+3701 7 526 2311
+3708 5 528 2311
+370d f 539 2311
+371c 6 540 2311
+3722 3 541 2311
+3725 5 547 2311
+372a 6 548 2311
+3730 7 549 2311
+3737 5 557 2311
+373c 1a 564 2311
+3756 d 567 2311
+3763 5 564 2311
+3768 7 570 2311
+376f c 573 2311
+377b 5 578 2311
+3780 8 584 2311
+3788 2 585 2311
+378a 6 573 2311
+3790 6 574 2311
+3796 9 575 2311
+379f 5 586 2311
+37a4 f 593 2311
+37b3 6 594 2311
+37b9 5 599 2311
+37be 6 600 2311
+37c4 2 603 2311
+37c6 6 604 2311
+FUNC 37cc f 0 _initp_misc_rand_s
+37cc 5 58 2186
+37d1 8 59 2186
+37d9 2 60 2186
+FUNC 37db f 0 _initp_misc_purevirt
+37db 5 179 1627
+37e0 8 180 1627
+37e8 2 181 1627
+FUNC 37ea f 0 _initp_heap_handler
+37ea 5 31 2820
+37ef 8 32 2820
+37f7 2 33 2820
+FUNC 37f9 28 0 _callnewh
+37f9 5 131 2820
+37fe c 133 2820
+380a e 135 2820
+3818 3 138 2820
+381b 2 139 2820
+381d 2 136 2820
+381f 2 139 2820
+FUNC 3821 c0 0 static  * _onexit_nolock( *)
+3821 8 100 1969
+3829 f 103 1969
+3838 f 104 1969
+3847 14 108 1969
+385b 10 118 1969
+386b d 123 1969
+3878 13 125 1969
+388b 3 130 1969
+388e 13 132 1969
+38a1 3 143 1969
+38a4 f 145 1969
+38b3 b 152 1969
+38c8 5 152 1969
+38cd 8 153 1969
+38d5 5 155 1969
+38da 5 110 1969
+38df 2 156 1969
+FUNC 38e1 2a 0 __onexitinit
+FUNC 3915 7 0 __onexitinit
+38e1 3 201 1969
+38e4 d 204 1969
+38f1 11 205 1969
+3902 4 207 1969
+3906 4 212 1969
+390a 1 217 1969
+3915 3 214 1969
+3918 3 216 1969
+391b 1 217 1969
+FUNC 391c 3c 0 _onexit
+391c c 81 1969
+3928 5 84 1969
+392d 4 86 1969
+3931 c 87 1969
+393d c 89 1969
+3949 3 93 1969
+394c 6 94 1969
+3952 6 90 1969
+FUNC 3958 17 0 atexit
+3958 5 161 1969
+395d 10 162 1969
+396d 2 163 1969
+FUNC 396f 23 0 _initp_misc_cfltcvt_tab
+396f 4 54 2419
+3973 2 56 2419
+3975 1a 58 2419
+398f 3 60 2419
+FUNC 3992 5d 0 _ValidateImageBase
+3992 5 44 2079
+3997 8 50 2079
+39a9 5 50 2079
+39ae 2 52 2079
+39b0 2 68 2079
+39bc 5 55 2079
+39cb 6 56 2079
+39d1 2 58 2079
+39d3 7 62 2079
+39e4 9 62 2079
+39ed 2 68 2079
+FUNC 39ef 76 0 _FindPESection
+39ef 5 92 2079
+39f4 3 99 2079
+3a01 5 99 2079
+3a10 22 108 2079
+3a3c 7 111 2079
+3a4d 9 111 2079
+3a56 8 108 2079
+3a5e 5 123 2079
+3a63 2 124 2079
+FUNC 3a65 bc 0 _IsNonwritableInCurrentImage
+3a65 35 149 2079
+3a9a 7 156 2079
+3aa1 f 164 2079
+3ab0 2 166 2079
+3ab2 8 174 2079
+3aba e 175 2079
+3ac8 2 176 2079
+3aca 2 178 2079
+3acc 12 185 2079
+3ade 12 195 2079
+3af0 16 187 2079
+3b06 9 193 2079
+3b0f 12 195 2079
+FUNC 3b21 16c 0 __crtMessageBoxW
+3b21 12 41 1053
+3b33 14 49 1053
+3b47 4 56 1053
+3b4b c 62 1053
+3b57 d 64 1053
+3b64 2 65 1053
+3b66 6 67 1053
+3b6c 10 72 1053
+3b7c 6 76 1053
+3b82 9 78 1053
+3b8b 10 81 1053
+3b9b 10 84 1053
+3bab d 88 1053
+3bb8 8 93 1053
+3bc0 4 95 1053
+3bc4 10 97 1053
+3bd4 1a 110 1053
+3bee 3 113 1053
+3bf1 c 114 1053
+3bfd 8 116 1053
+3c05 1f 121 1053
+3c24 7 130 1053
+3c2b 2 132 1053
+3c2d a 134 1053
+3c37 3 136 1053
+3c3a 4 137 1053
+3c3e 5 139 1053
+3c43 e 143 1053
+3c51 3 145 1053
+3c54 4 146 1053
+3c58 8 148 1053
+3c60 8 155 1053
+3c68 4 156 1053
+3c6c 10 158 1053
+3c7c 2 163 1053
+3c7e f 166 1053
+FUNC 3c8d ac 0 wcscat_s
+FUNC 3d43 9 0 wcscat_s
+3c8d 6 13 2468
+3c93 2c 18 2468
+3cbf 2 46 2468
+3cc1 9 19 2468
+3cd4 5 19 2468
+3cd9 2 21 2468
+3ce5 6 23 2468
+3ceb 3 25 2468
+3cee 3 26 2468
+3cf1 2 29 2468
+3cf3 2 32 2468
+3cf5 29 35 2468
+3d1e 6 41 2468
+3d2e 3 41 2468
+3d31 8 42 2468
+3d43 9 42 2468
+FUNC 3d4c 12b 0 wcsncpy_s
+FUNC 3e81 9 0 wcsncpy_s
+3d4c 5 13 2578
+3d51 16 17 2578
+3d67 5 65 2578
+3d6c 2 66 2578
+3d6e 28 24 2578
+3d96 4 25 2578
+3d9a 2 28 2578
+3da6 3 28 2578
+3da9 2 29 2578
+3dab 9 31 2578
+3dbe 5 31 2578
+3dc3 2 33 2578
+3dc5 5 35 2578
+3dca 2b 37 2578
+3df5 2 41 2578
+3df7 2e 45 2578
+3e25 4 48 2578
+3e29 2 50 2578
+3e35 3 50 2578
+3e38 8 54 2578
+3e40 a 58 2578
+3e4a 18 59 2578
+3e6c 3 61 2578
+3e6f 8 62 2578
+3e81 9 62 2578
+FUNC 3e8a 25 0 wcslen
+3e8a 5 41 2728
+3e8f 3 42 2728
+3e9c b 44 2728
+3ea7 6 46 2728
+3ead 2 47 2728
+FUNC 3eaf 90 0 wcscpy_s
+FUNC 3f49 6 0 wcscpy_s
+3eaf 6 13 2523
+3eb5 2c 18 2523
+3ee1 2 34 2523
+3ee3 7 19 2523
+3ef4 5 19 2523
+3ef9 2b 23 2523
+3f24 6 29 2523
+3f34 3 29 2523
+3f37 8 30 2523
+3f49 6 30 2523
+FUNC 3f4f 49 0 _set_error_mode
+3f4f 5 43 1181
+3f54 11 46 1181
+3f65 5 54 1181
+3f6a 2 61 1181
+3f6c 5 50 1181
+3f71 6 51 1181
+3f77 2 61 1181
+3f79 1d 57 1181
+3f96 2 61 1181
+FUNC 3f98 f 0 __security_check_cookie
+3f98 0 52 892
+3f98 6 55 892
+3f9e 2 56 892
+3fa0 2 57 892
+3fa2 5 59 892
+FUNC 3fa7 45 0 _malloc_crt
+3fa7 7 39 333
+3fae 2 40 333
+3fb0 b 44 333
+3fbb c 45 333
+3fc7 1a 46 333
+3fe1 5 47 333
+3fe6 4 50 333
+3fea 2 51 333
+FUNC 3fec 4c 0 _calloc_crt
+3fec 7 54 333
+3ff3 2 55 333
+3ff5 12 61 333
+4007 c 62 333
+4013 1a 63 333
+402d 5 64 333
+4032 4 67 333
+4036 2 68 333
+FUNC 4038 4e 0 _realloc_crt
+4038 7 71 333
+403f 2 72 333
+4041 f 76 333
+4050 11 77 333
+4061 1a 78 333
+407b 5 79 333
+4080 4 82 333
+4084 2 83 333
+FUNC 4086 2f 0 static int CPtoLCID(int)
+4086 0 329 3326
+4086 14 330 3326
+409a 2 345 3326
+409c 1 346 3326
+409d 5 342 3326
+40a2 1 346 3326
+40a3 5 339 3326
+40a8 1 346 3326
+40a9 5 336 3326
+40ae 1 346 3326
+40af 5 333 3326
+40b4 1 346 3326
+FUNC 40b5 ab 0 static void setSBCS(struct threadmbcinfostruct *)
+FUNC 416a 9 0 static void setSBCS(struct threadmbcinfostruct *)
+40b5 6 363 3326
+40bb 11 368 3326
+40cc 36 379 3326
+4108 1 379 3326
+410f 1 379 3326
+4116 1 379 3326
+4117 12 381 3326
+4134 3 382 3326
+4141 6 382 3326
+4147 b 384 3326
+415d 3 385 3326
+416a 6 385 3326
+4170 3 386 3326
+FUNC 4173 246 0 static void setSBUpLow(struct threadmbcinfostruct *)
+4173 17 402 3326
+418a 7 412 3326
+419b 9 412 3326
+41a4 f 415 3326
+41b3 c 416 3326
+41bf 11 420 3326
+41d0 6 419 3326
+41d6 2a 421 3326
+420a a 420 3326
+4214 34 427 3326
+4248 37 432 3326
+427f 39 437 3326
+42b8 2 442 3326
+42ba d 443 3326
+42d2 5 445 3326
+42d7 9 446 3326
+42e0 5 448 3326
+42f0 5 450 3326
+42f5 7 451 3326
+430a 7 451 3326
+4311 2 453 3326
+4321 7 454 3326
+4328 5 442 3326
+432d 8 456 3326
+4335 12 472 3326
+4347 17 461 3326
+4369 5 463 3326
+436e 5 464 3326
+4373 5 466 3326
+4383 5 468 3326
+4388 3 469 3326
+4395 2 469 3326
+4397 2 471 3326
+43a3 3 472 3326
+43a6 5 460 3326
+43ab e 474 3326
+FUNC 43b9 a4 0 __updatetmbcinfo
+43b9 c 495 3326
+43c5 7 498 3326
+43cc 10 499 3326
+43dc 3 532 3326
+43df 4 535 3326
+43e3 8 537 3326
+43eb 2 540 3326
+43ed 6 541 3326
+43f3 8 500 3326
+43fb 4 502 3326
+43ff e 505 3326
+440d 17 511 3326
+4424 7 516 3326
+442b 11 523 3326
+443c 7 524 3326
+4443 11 527 3326
+4454 9 529 3326
+FUNC 445d 15d 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+445d 5 240 111
+4462 6 241 111
+4472 c 241 111
+447e 5 243 111
+448d 3 243 111
+449a 3 244 111
+44a7 2 244 111
+44b3 3 245 111
+44c0 3 245 111
+44cd 24 247 111
+44fb 2 247 111
+4507 32 248 111
+4543 3 248 111
+4550 3 249 111
+455d 6 249 111
+456d 4 251 111
+457b 4 252 111
+457f 2 255 111
+458b 2 257 111
+4597 2 257 111
+45a3 3 257 111
+45b0 3 257 111
+45b3 7 259 111
+FUNC 45ba 87 0 static int getSystemCP(int)
+FUNC 464b 9 0 static int getSystemCP(int)
+45ba 9 282 3326
+45c3 b 284 3326
+45ce 6 285 3326
+45d4 5 289 3326
+45d9 a 291 3326
+45e3 e 292 3326
+45fb 6 292 3326
+4601 5 295 3326
+4606 a 297 3326
+4610 8 298 3326
+4618 5 302 3326
+461d 1c 305 3326
+4639 8 308 3326
+464b 7 308 3326
+4652 2 309 3326
+FUNC 4654 2d2 0 _setmbcp_nolock
+4654 17 684 3326
+466b b 691 3326
+4676 9 694 3326
+467f 7 696 3326
+4686 7 697 3326
+468d 3 701 3326
+4690 2 703 3326
+4692 c 706 3326
+469e d 703 3326
+46ab 2a 741 3326
+46d5 13 749 3326
+46e8 f 754 3326
+46f7 29 759 3326
+4720 21 762 3326
+474b c 764 3326
+4757 f 710 3326
+4766 15 713 3326
+477b 2 718 3326
+4787 7 718 3326
+4798 8 721 3326
+47a0 9 722 3326
+47b4 4 722 3326
+47c2 5 722 3326
+47c7 4 721 3326
+47cb 6 718 3326
+47db 5 718 3326
+47e0 12 713 3326
+47f2 3e 729 3326
+483a 19 731 3326
+4853 7 734 3326
+485a 5 735 3326
+486a 6 765 3326
+4870 4 764 3326
+4874 17 762 3326
+488b 8 769 3326
+489d 7 770 3326
+48ae 8 773 3326
+48c0 3 773 3326
+48cd 3 776 3326
+48d0 2 778 3326
+48dc 3 780 3326
+48df f 783 3326
+48f4 1 783 3326
+48fb 1 783 3326
+4902 1 783 3326
+4903 5 787 3326
+4908 6 792 3326
+490e 6 795 3326
+4914 3 744 3326
+4917 f 800 3326
+FUNC 4926 19a 0 _setmbcp
+4926 c 572 3326
+4932 4 573 3326
+4936 a 577 3326
+4940 5 579 3326
+4945 3 580 3326
+4948 b 582 3326
+4953 9 584 3326
+495c d 590 3326
+4969 8 592 3326
+4971 c 594 3326
+497d 3 605 3326
+4980 16 610 3326
+4996 1a 612 3326
+49b0 7 613 3326
+49b7 3 617 3326
+49ba 9 618 3326
+49c3 17 620 3326
+49da 8 622 3326
+49e2 4 623 3326
+49e6 8 628 3326
+49ee 8 629 3326
+49f6 8 630 3326
+49fe a 631 3326
+4a08 d 632 3326
+4a15 3 631 3326
+4a18 c 633 3326
+4a24 a 634 3326
+4a2e 3 633 3326
+4a31 c 635 3326
+4a3d d 636 3326
+4a4a 3 635 3326
+4a4d 1c 638 3326
+4a69 7 639 3326
+4a70 6 643 3326
+4a76 3 644 3326
+4a79 e 646 3326
+4a87 9 648 3326
+4a90 2 651 3326
+4a92 5 652 3326
+4a97 8 658 3326
+4a9f 7 659 3326
+4aa6 b 660 3326
+4ab1 2 666 3326
+4ab3 4 671 3326
+4ab7 3 680 3326
+4aba 6 681 3326
+FUNC 4ac0 1e 0 __initmbctable
+4ac0 0 841 3326
+4ac0 9 851 3326
+4ac9 8 852 3326
+4ad1 a 853 3326
+4adb 2 858 3326
+4add 1 859 3326
+FUNC 4ade 70 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+FUNC 4b58 6 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+4ade 8 213 3271
+4ae6 b 214 3271
+4af1 4 219 3271
+4af5 59 222 3271
+4b58 4 222 3271
+4b5c 2 223 3271
+FUNC 4b5e 18 0 _ismbblead
+4b5e 5 171 3271
+4b63 11 172 3271
+4b74 2 173 3271
+FUNC 4b76 f8 0 __addlocaleref
+4b76 7 36 1913
+4b7d d 39 1913
+4b97 a 41 1913
+4ba1 3 42 1913
+4bb1 a 44 1913
+4bbb 3 45 1913
+4bcb a 47 1913
+4bd5 3 48 1913
+4be5 a 50 1913
+4bef 3 51 1913
+4bf2 a 53 1913
+4c06 9 55 1913
+4c19 6 55 1913
+4c1f 3 56 1913
+4c2c 6 59 1913
+4c3c 7 59 1913
+4c43 3 60 1913
+4c46 8 53 1913
+4c5b 11 63 1913
+4c6c 2 64 1913
+FUNC 4c6e 102 0 __removelocaleref
+4c6e 6 74 1913
+4c74 b 77 1913
+4c7f b 79 1913
+4c97 a 81 1913
+4ca1 3 82 1913
+4cb1 a 84 1913
+4cbb 3 85 1913
+4ccb a 87 1913
+4cd5 3 88 1913
+4ce5 a 90 1913
+4cef 3 91 1913
+4cf2 a 93 1913
+4d06 9 95 1913
+4d19 6 95 1913
+4d1f 3 96 1913
+4d2c 6 99 1913
+4d3c 7 99 1913
+4d43 3 100 1913
+4d46 8 93 1913
+4d5b 10 103 1913
+4d6b 3 106 1913
+4d6e 2 107 1913
+FUNC 4d70 293 0 __freetlocinfo
+4d70 7 129 1913
+4d77 47 137 1913
+4dc8 8 137 1913
+4ddd a 140 1913
+4df1 4 140 1913
+4df5 6 142 1913
+4e08 d 143 1913
+4e22 a 147 1913
+4e36 4 147 1913
+4e3a 6 149 1913
+4e4d d 150 1913
+4e67 b 153 1913
+4e7f d 154 1913
+4e99 e 161 1913
+4eb1 4 161 1913
+4ec2 11 163 1913
+4ee0 13 164 1913
+4f00 e 165 1913
+4f1b e 166 1913
+4f36 d 173 1913
+4f50 8 173 1913
+4f58 6 175 1913
+4f6b d 176 1913
+4f78 a 179 1913
+4f8c 19 182 1913
+4faf 4 182 1913
+4fb3 7 184 1913
+4fc4 16 192 1913
+4fe4 4 192 1913
+4fe8 7 194 1913
+4fef 8 179 1913
+4ff7 a 201 1913
+5001 2 202 1913
+FUNC 5003 6b 0 _updatetlocinfoEx_nolock
+5003 6 216 1913
+5009 e 219 1913
+5017 1 222 1913
+5022 2 222 1913
+5024 4 223 1913
+5028 1 230 1913
+5033 8 230 1913
+503b 4 236 1913
+503f 6 238 1913
+504f e 248 1913
+505d 7 249 1913
+5064 5 253 1913
+5069 3 220 1913
+506c 2 254 1913
+FUNC 506e 79 0 __updatetlocinfo
+506e c 281 1913
+507a 7 283 1913
+5081 10 285 1913
+5091 8 297 1913
+5099 4 300 1913
+509d 8 302 1913
+50a5 2 305 1913
+50a7 6 306 1913
+50ad 8 286 1913
+50b5 4 288 1913
+50b9 14 290 1913
+50cd e 292 1913
+50db 8 294 1913
+50e3 4 295 1913
+FUNC 50e7 8 0 _crt_debugger_hook
+50e7 0 62 1145
+50e7 7 65 1145
+50ee 1 66 1145
+FUNC 50ef 7a 0 memset
+50ef 0 59 2789
+50ef 4 68 2789
+50f3 4 69 2789
+50f7 2 71 2789
+50f9 2 72 2789
+50fb 2 74 2789
+50fd 4 75 2789
+5101 2 78 2789
+5103 2 79 2789
+5105 6 80 2789
+510b 2 81 2789
+510d 7 82 2789
+5114 2 83 2789
+5116 5 85 2789
+511b 1 91 2789
+511c 2 92 2789
+511e 3 94 2789
+5121 2 95 2789
+5123 2 97 2789
+5125 3 98 2789
+5128 2 99 2789
+512a 2 101 2789
+512c 2 103 2789
+512e 3 104 2789
+5131 3 105 2789
+5134 2 106 2789
+5136 2 110 2789
+5138 3 111 2789
+513b 2 113 2789
+513d 2 115 2789
+513f 3 117 2789
+5142 2 119 2789
+5144 2 122 2789
+5146 3 123 2789
+5149 3 124 2789
+514c 2 125 2789
+514e 2 127 2789
+5150 2 129 2789
+5152 2 130 2789
+5154 2 134 2789
+5156 3 135 2789
+5159 3 137 2789
+515c 2 138 2789
+515e 4 142 2789
+5162 1 143 2789
+5163 1 145 2789
+5164 4 148 2789
+5168 1 150 2789
+FUNC 5169 95 0 _aulldvrm
+5169 0 45 2806
+5169 1 48 2806
+516a 4 80 2806
+516e 2 81 2806
+5170 2 82 2806
+5172 4 83 2806
+5176 4 84 2806
+517a 2 85 2806
+517c 2 86 2806
+517e 2 87 2806
+5180 4 88 2806
+5184 2 89 2806
+5186 2 90 2806
+5188 2 95 2806
+518a 4 96 2806
+518e 2 97 2806
+5190 2 98 2806
+5192 4 99 2806
+5196 2 100 2806
+5198 2 101 2806
+519a 2 108 2806
+519c 4 109 2806
+51a0 4 110 2806
+51a4 4 111 2806
+51a8 2 113 2806
+51aa 2 114 2806
+51ac 2 115 2806
+51ae 2 116 2806
+51b0 2 117 2806
+51b2 2 118 2806
+51b4 2 119 2806
+51b6 2 120 2806
+51b8 4 129 2806
+51bc 2 130 2806
+51be 4 131 2806
+51c2 2 132 2806
+51c4 2 133 2806
+51c6 2 134 2806
+51c8 4 142 2806
+51cc 2 143 2806
+51ce 2 144 2806
+51d0 4 145 2806
+51d4 2 146 2806
+51d6 1 148 2806
+51d7 4 149 2806
+51db 4 150 2806
+51df 2 152 2806
+51e1 4 161 2806
+51e5 4 162 2806
+51e9 2 163 2806
+51eb 2 164 2806
+51ed 3 165 2806
+51f0 2 170 2806
+51f2 2 171 2806
+51f4 2 172 2806
+51f6 2 173 2806
+51f8 2 174 2806
+51fa 1 180 2806
+51fb 3 182 2806
+FUNC 51fe 20 0 _global_unwind2
+FUNC 521e 45 0 static void __unwind_handler()
+FUNC 5263 84 0 _local_unwind2
+FUNC 52e7 23 0 _abnormal_termination
+FUNC 530a 9 0 _NLG_Notify1
+FUNC 5313 1f 0 _NLG_Notify
+PUBLIC m 532a 0 _NLG_Dispatch
+FUNC 5332 3 0 _NLG_Call
+PUBLIC 5334 0 _NLG_Return2
+FUNC 5335 33 0 abort
+5335 0 54 1011
+5335 5 71 1011
+533a 4 72 1011
+533e 8 74 1011
+5346 9 81 1011
+534f 11 83 1011
+5360 8 92 1011
+FUNC 5368 361 0 memcpy
+5368 3 101 2787
+536b 1 113 2787
+536c 1 114 2787
+536d 3 116 2787
+5370 3 117 2787
+5373 3 119 2787
+5376 2 129 2787
+5378 2 131 2787
+537a 2 132 2787
+537c 2 134 2787
+537e 2 135 2787
+5380 2 137 2787
+5382 6 138 2787
+5388 6 147 2787
+538e 2 148 2787
+5390 7 150 2787
+5397 2 151 2787
+5399 1 153 2787
+539a 1 154 2787
+539b 3 155 2787
+539e 3 156 2787
+53a1 2 157 2787
+53a3 1 158 2787
+53a4 1 159 2787
+53a5 2 160 2787
+53a7 5 163 2787
+53ac 6 176 2787
+53b2 2 177 2787
+53b4 3 179 2787
+53b7 3 180 2787
+53ba 3 182 2787
+53bd 2 183 2787
+53bf 2 185 2787
+53c1 7 187 2787
+53c8 2 205 2787
+53ca 5 206 2787
+53cf 3 208 2787
+53d2 2 209 2787
+53d4 3 211 2787
+53d7 2 212 2787
+53d9 7 214 2787
+53e0 8 218 2787
+53e8 14 222 2787
+53fc 2 229 2787
+53fe 2 230 2787
+5400 2 232 2787
+5402 3 233 2787
+5405 3 235 2787
+5408 3 236 2787
+540b 3 238 2787
+540e 3 239 2787
+5411 3 241 2787
+5414 3 242 2787
+5417 3 244 2787
+541a 2 245 2787
+541c 2 247 2787
+541e a 249 2787
+5428 2 253 2787
+542a 2 254 2787
+542c 2 256 2787
+542e 3 257 2787
+5431 3 259 2787
+5434 3 260 2787
+5437 3 262 2787
+543a 3 263 2787
+543d 3 265 2787
+5440 2 266 2787
+5442 2 268 2787
+5444 8 270 2787
+544c 2 274 2787
+544e 2 275 2787
+5450 2 277 2787
+5452 3 278 2787
+5455 3 280 2787
+5458 3 281 2787
+545b 3 283 2787
+545e 2 284 2787
+5460 2 286 2787
+5462 2a 288 2787
+548c 4 295 2787
+5490 4 297 2787
+5494 4 299 2787
+5498 4 301 2787
+549c 4 303 2787
+54a0 4 305 2787
+54a4 4 307 2787
+54a8 4 309 2787
+54ac 4 311 2787
+54b0 4 313 2787
+54b4 4 315 2787
+54b8 4 317 2787
+54bc 4 319 2787
+54c0 4 321 2787
+54c4 7 323 2787
+54cb 2 325 2787
+54cd 2 326 2787
+54cf 19 328 2787
+54e8 3 337 2787
+54eb 1 338 2787
+54ec 1 339 2787
+54ed 3 341 2787
+54f0 2 345 2787
+54f2 2 347 2787
+54f4 3 348 2787
+54f7 1 349 2787
+54f8 1 350 2787
+54f9 3 351 2787
+54fc 2 355 2787
+54fe 2 357 2787
+5500 3 358 2787
+5503 3 359 2787
+5506 3 360 2787
+5509 1 361 2787
+550a 1 362 2787
+550b 5 363 2787
+5510 2 367 2787
+5512 2 369 2787
+5514 3 370 2787
+5517 3 371 2787
+551a 3 372 2787
+551d 3 373 2787
+5520 3 374 2787
+5523 1 375 2787
+5524 1 376 2787
+5525 3 377 2787
+5528 4 388 2787
+552c 4 389 2787
+5530 6 394 2787
+5536 2 395 2787
+5538 3 397 2787
+553b 3 398 2787
+553e 3 400 2787
+5541 2 401 2787
+5543 1 403 2787
+5544 2 404 2787
+5546 1 405 2787
+5547 9 407 2787
+5550 2 411 2787
+5552 a 414 2787
+555c 2 419 2787
+555e 5 420 2787
+5563 3 422 2787
+5566 2 423 2787
+5568 3 425 2787
+556b 2 426 2787
+556d 7 428 2787
+5574 14 432 2787
+5588 3 439 2787
+558b 2 440 2787
+558d 3 442 2787
+5590 3 443 2787
+5593 3 445 2787
+5596 3 446 2787
+5599 3 448 2787
+559c 2 449 2787
+559e 1 451 2787
+559f 2 452 2787
+55a1 1 453 2787
+55a2 a 455 2787
+55ac 3 459 2787
+55af 2 460 2787
+55b1 3 462 2787
+55b4 3 463 2787
+55b7 3 465 2787
+55ba 3 466 2787
+55bd 3 468 2787
+55c0 3 469 2787
+55c3 3 471 2787
+55c6 2 472 2787
+55c8 1 474 2787
+55c9 2 475 2787
+55cb 1 476 2787
+55cc 8 478 2787
+55d4 3 482 2787
+55d7 2 483 2787
+55d9 3 485 2787
+55dc 3 486 2787
+55df 3 488 2787
+55e2 3 489 2787
+55e5 3 491 2787
+55e8 3 492 2787
+55eb 3 494 2787
+55ee 3 495 2787
+55f1 3 497 2787
+55f4 6 498 2787
+55fa 1 500 2787
+55fb 2 501 2787
+55fd 1 502 2787
+55fe 2a 504 2787
+5628 4 513 2787
+562c 4 515 2787
+5630 4 517 2787
+5634 4 519 2787
+5638 4 521 2787
+563c 4 523 2787
+5640 4 525 2787
+5644 4 527 2787
+5648 4 529 2787
+564c 4 531 2787
+5650 4 533 2787
+5654 4 535 2787
+5658 4 537 2787
+565c 4 539 2787
+5660 7 541 2787
+5667 2 543 2787
+5669 2 544 2787
+566b 19 546 2787
+5684 3 555 2787
+5687 1 557 2787
+5688 1 558 2787
+5689 3 559 2787
+568c 3 563 2787
+568f 3 565 2787
+5692 3 566 2787
+5695 1 567 2787
+5696 1 568 2787
+5697 5 569 2787
+569c 3 573 2787
+569f 3 575 2787
+56a2 3 576 2787
+56a5 3 577 2787
+56a8 3 578 2787
+56ab 1 579 2787
+56ac 1 580 2787
+56ad 3 581 2787
+56b0 3 585 2787
+56b3 3 587 2787
+56b6 3 588 2787
+56b9 3 589 2787
+56bc 3 590 2787
+56bf 3 591 2787
+56c2 3 592 2787
+56c5 1 593 2787
+56c6 1 594 2787
+56c7 2 595 2787
+FUNC 56c9 2a 0 _freea
+56c9 5 235 281
+56ce 7 237 281
+56d5 3 239 281
+56e2 8 241 281
+56ea 7 243 281
+56f1 2 252 281
+FUNC 56f3 3d 0 _msize
+56f3 5 39 561
+56f8 23 43 561
+571b 2 50 561
+571d 11 46 561
+572e 2 50 561
+FUNC 5730 9 0 _fptrap
+5730 0 46 4123
+5730 8 47 4123
+5738 1 48 4123
+FUNC 5739 106 0 __report_gsfailure
+5739 b 140 1392
+5744 5 170 1392
+5749 6 171 1392
+574f 6 172 1392
+5755 6 173 1392
+575b 6 174 1392
+5761 6 175 1392
+5767 7 176 1392
+576e 7 177 1392
+5775 7 178 1392
+577c 7 179 1392
+5783 7 180 1392
+578a 7 181 1392
+5791 1 182 1392
+5792 6 183 1392
+5798 3 190 1392
+579b 5 191 1392
+57a0 3 192 1392
+57a3 5 193 1392
+57a8 3 194 1392
+57ab 5 195 1392
+57b0 6 201 1392
+57b6 a 204 1392
+57c0 a 206 1392
+57ca a 285 1392
+57d4 a 286 1392
+57de b 293 1392
+57e9 b 294 1392
+57f4 b 297 1392
+57ff 8 298 1392
+5807 8 302 1392
+580f b 304 1392
+581a 9 313 1392
+5823 8 315 1392
+582b 12 319 1392
+583d 2 320 1392
+FUNC 583f 8d 0 _calloc_impl
+FUNC 58d6 9 0 _calloc_impl
+583f 5 21 291
+5844 7 26 291
+584b 11 28 291
+5866 8 28 291
+586e 2 69 291
+5870 7 30 291
+5877 4 34 291
+587b 1 35 291
+587c 2 39 291
+587e 5 41 291
+5883 f 44 291
+5892 d 47 291
+589f b 59 291
+58aa 7 61 291
+58bb 6 62 291
+58c1 4 63 291
+58c5 7 52 291
+58d6 7 53 291
+58dd 2 69 291
+FUNC 58df bb 0 realloc
+FUNC 59a4 6 0 realloc
+58df 5 62 618
+58e4 6 67 618
+58ea 9 68 618
+58f3 3 117 618
+58f6 7 71 618
+58fd 9 73 618
+5906 5 74 618
+590b 2 109 618
+590d 4 83 618
+5911 1 84 618
+5912 14 85 618
+5926 c 94 618
+5932 b 109 618
+593d 5 81 618
+5942 7 89 618
+5949 5 90 618
+5958 6 90 618
+595e 4 91 618
+5962 2 117 618
+5964 14 111 618
+5982 2 111 618
+5984 2 112 618
+5986 14 103 618
+59a4 2 103 618
+59a6 4 105 618
+FUNC 59aa 22d 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+59aa 12 96 3447
+59bc c 101 3447
+59c8 21 102 3447
+59e9 4 106 3447
+59ed 1 107 3447
+59ee 3 109 3447
+59f1 3 113 3447
+59f4 5 133 3447
+59f9 3 134 3447
+5a06 2 134 3447
+5a12 6 134 3447
+5a18 2c 145 3447
+5a44 7 146 3447
+5a4b 5c 149 3447
+5aa7 3 150 3447
+5aaa 2 151 3447
+5aac 19 160 3447
+5ac5 1f 169 3447
+5ae4 a 172 3447
+5aee b 175 3447
+5af9 9 177 3447
+5b02 10 186 3447
+5b12 5 190 3447
+5b17 5f 196 3447
+5b76 4 197 3447
+5b7a 16 207 3447
+5b90 9 220 3447
+5b99 2 223 3447
+5b9b 17 233 3447
+5bb2 7 240 3447
+5bb9 8 242 3447
+5bc1 4 244 3447
+5bc5 12 245 3447
+FUNC 5bd7 40 0 __crtLCMapStringA
+FUNC 5c21 6 0 __crtLCMapStringA
+5bd7 8 258 3447
+5bdf b 259 3447
+5bea 2d 271 3447
+5c21 4 271 3447
+5c25 2 272 3447
+FUNC 5c27 112 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+5c27 12 63 3507
+5c39 7 67 3507
+5c40 5 83 3507
+5c45 3 84 3507
+5c52 2 84 3507
+5c5e 6 84 3507
+5c64 29 95 3507
+5c8d 7 96 3507
+5c94 52 99 3507
+5ce6 2 100 3507
+5ce8 2 101 3507
+5cea f 103 3507
+5cf9 13 111 3507
+5d0c 11 116 3507
+5d1d 6 118 3507
+5d23 4 120 3507
+5d27 12 121 3507
+FUNC 5d39 3a 0 __crtGetStringTypeA
+FUNC 5d7d 6 0 __crtGetStringTypeA
+5d39 8 133 3507
+5d41 b 134 3507
+5d4c 27 145 3507
+5d7d 4 145 3507
+5d81 2 146 3507
+FUNC 5d83 775 0 __free_lc_time
+5d83 6 228 1800
+5d89 b 229 1800
+5d9e 8 232 1800
+5db0 8 233 1800
+5dc2 8 234 1800
+5dd4 8 235 1800
+5de6 8 236 1800
+5df8 8 237 1800
+5e0a 7 238 1800
+5e1b 8 240 1800
+5e2d 8 241 1800
+5e3f 8 242 1800
+5e51 8 243 1800
+5e63 8 244 1800
+5e75 8 245 1800
+5e87 8 246 1800
+5e99 8 248 1800
+5eab b 249 1800
+5ec0 8 250 1800
+5ed2 8 251 1800
+5ee4 8 252 1800
+5ef6 8 253 1800
+5f08 8 254 1800
+5f1a 8 255 1800
+5f2c 8 256 1800
+5f3e 8 257 1800
+5f50 8 258 1800
+5f62 8 259 1800
+5f74 8 261 1800
+5f86 8 262 1800
+5f98 8 263 1800
+5faa 8 264 1800
+5fbc 8 265 1800
+5fce b 266 1800
+5fe6 b 267 1800
+5ffe b 268 1800
+6016 b 269 1800
+602e b 270 1800
+6046 b 271 1800
+605e b 272 1800
+6076 b 274 1800
+608e b 275 1800
+60a6 b 277 1800
+60be b 278 1800
+60d6 b 279 1800
+60ee b 282 1800
+6106 b 283 1800
+611e b 284 1800
+6136 b 285 1800
+614e e 286 1800
+6169 b 287 1800
+6181 b 288 1800
+6199 b 290 1800
+61b1 b 291 1800
+61c9 b 292 1800
+61e1 b 293 1800
+61f9 b 294 1800
+6211 b 295 1800
+6229 b 296 1800
+6241 b 298 1800
+6259 b 299 1800
+6271 b 300 1800
+6289 b 301 1800
+62a1 b 302 1800
+62b9 b 303 1800
+62d1 e 304 1800
+62ec b 305 1800
+6304 b 306 1800
+631c b 307 1800
+6334 b 308 1800
+634c b 309 1800
+6364 b 311 1800
+637c b 312 1800
+6394 b 313 1800
+63ac b 314 1800
+63c4 b 315 1800
+63dc b 316 1800
+63f4 b 317 1800
+640c b 318 1800
+6424 b 319 1800
+643c b 320 1800
+6454 e 321 1800
+646f b 322 1800
+6487 b 324 1800
+649f b 325 1800
+64b7 b 327 1800
+64cf b 328 1800
+64e7 f 329 1800
+64f6 2 332 1800
+FUNC 64f8 9f 0 __free_lconv_num
+64f8 6 218 1742
+64fe b 219 1742
+6513 a 222 1742
+651d 7 223 1742
+652e b 225 1742
+6539 7 226 1742
+654a b 228 1742
+6555 7 229 1742
+6566 b 231 1742
+6571 7 232 1742
+6582 b 234 1742
+658d 8 235 1742
+6595 2 236 1742
+FUNC 6597 180 0 __free_lconv_mon
+6597 6 270 1685
+659d b 271 1685
+65b2 b 274 1685
+65bd 7 275 1685
+65ce b 277 1685
+65d9 7 278 1685
+65ea b 280 1685
+65f5 7 281 1685
+6606 b 283 1685
+6611 7 284 1685
+6622 b 286 1685
+662d 7 287 1685
+663e b 289 1685
+6649 7 290 1685
+665a b 292 1685
+6665 7 293 1685
+6676 b 295 1685
+6681 7 296 1685
+6692 b 298 1685
+669d 7 299 1685
+66ae b 301 1685
+66b9 7 302 1685
+66ca b 304 1685
+66d5 7 305 1685
+66e6 b 307 1685
+66f1 7 308 1685
+6702 b 310 1685
+670d 8 311 1685
+6715 2 312 1685
+FUNC 6717 ba 0 _VEC_memzero
+FUNC 67d1 10 0 __sse2_available_init
+67d1 0 30 4315
+67d1 d 31 4315
+67de 2 32 4315
+67e0 1 33 4315
+FUNC 67e1 103 0 _VEC_memcpy
+FUNC 68e4 2c 0 _alloca_probe_16
+68e4 0 44 4274
+68e4 1 46 4274
+68e5 4 47 4274
+68e9 2 48 4274
+68eb 3 49 4274
+68ee 2 50 4274
+68f0 2 51 4274
+68f2 2 52 4274
+68f4 1 53 4274
+68f5 5 54 4274
+68fa 1 59 4274
+68fb 4 60 4274
+68ff 2 61 4274
+6901 3 62 4274
+6904 2 63 4274
+6906 2 64 4274
+6908 2 65 4274
+690a 1 66 4274
+690b 5 67 4274
+PUBLIC 68fa 0 _alloca_probe_8
+FUNC 6910 34 0 _allmul
+6910 0 47 2803
+6910 4 63 2803
+6914 4 64 2803
+6918 2 65 2803
+691a 4 66 2803
+691e 2 67 2803
+6920 4 69 2803
+6924 2 70 2803
+6926 3 72 2803
+6929 1 75 2803
+692a 2 83 2803
+692c 2 84 2803
+692e 4 86 2803
+6932 4 87 2803
+6936 2 88 2803
+6938 4 90 2803
+693c 2 91 2803
+693e 2 92 2803
+6940 1 94 2803
+6941 3 96 2803
+FUNC 6944 2b 0 _chkstk
+6944 0 65 4276
+6944 1 69 4276
+6945 4 73 4276
+6949 2 74 4276
+694b 2 79 4276
+694d 2 80 4276
+694f 2 81 4276
+6951 2 83 4276
+6953 5 84 4276
+6958 2 87 4276
+695a 2 88 4276
+695c 2 89 4276
+695e 1 90 4276
+695f 1 91 4276
+6960 2 92 4276
+6962 3 93 4276
+6965 1 94 4276
+6966 5 98 4276
+696b 2 99 4276
+696d 2 100 4276
+FUNC 696f 46 0 strcspn
+696f 4 191 2794
+6973 2 198 2794
+6975 1 199 2794
+6976 1 200 2794
+6977 1 201 2794
+6978 1 202 2794
+6979 1 203 2794
+697a 1 204 2794
+697b 1 205 2794
+697c 1 206 2794
+697d 6 212 2794
+6983 2 216 2794
+6985 2 217 2794
+6987 2 218 2794
+6989 3 219 2794
+698c 4 220 2794
+6990 2 221 2794
+6992 3 227 2794
+6995 6 229 2794
+699b 3 234 2794
+699e 2 236 2794
+69a0 2 237 2794
+69a2 2 238 2794
+69a4 3 239 2794
+69a7 4 240 2794
+69ab 2 245 2794
+69ad 2 255 2794
+69af 3 257 2794
+69b2 3 259 2794
+FUNC 69b5 40 0 strpbrk
+69b5 4 191 2794
+69b9 2 198 2794
+69bb 1 199 2794
+69bc 1 200 2794
+69bd 1 201 2794
+69be 1 202 2794
+69bf 1 203 2794
+69c0 1 204 2794
+69c1 1 205 2794
+69c2 1 206 2794
+69c3 6 212 2794
+69c9 2 216 2794
+69cb 2 217 2794
+69cd 2 218 2794
+69cf 3 219 2794
+69d2 4 220 2794
+69d6 2 221 2794
+69d8 5 227 2794
+69dd 2 236 2794
+69df 2 237 2794
+69e1 2 238 2794
+69e3 3 239 2794
+69e6 4 240 2794
+69ea 2 247 2794
+69ec 3 248 2794
+69ef 3 257 2794
+69f2 3 259 2794
+FUNC 69f5 61 0 __ascii_strnicmp
+69f5 6 69 2798
+69fb 3 75 2798
+69fe 2 76 2798
+6a00 2 77 2798
+6a02 3 79 2798
+6a05 3 80 2798
+6a08 2 82 2798
+6a0a 2 83 2798
+6a0c 5 84 2798
+6a11 2 89 2798
+6a13 2 91 2798
+6a15 2 93 2798
+6a17 2 95 2798
+6a19 2 97 2798
+6a1b 2 98 2798
+6a1d 3 100 2798
+6a20 3 101 2798
+6a23 2 103 2798
+6a25 2 104 2798
+6a27 2 106 2798
+6a29 2 107 2798
+6a2b 2 109 2798
+6a2d 2 112 2798
+6a2f 2 113 2798
+6a31 2 115 2798
+6a33 2 116 2798
+6a35 2 118 2798
+6a37 2 121 2798
+6a39 2 122 2798
+6a3b 3 124 2798
+6a3e 2 125 2798
+6a40 2 128 2798
+6a42 2 129 2798
+6a44 2 130 2798
+6a46 5 133 2798
+6a4b 2 134 2798
+6a4d 2 135 2798
+6a4f 2 138 2798
+6a51 5 140 2798
+PUBLIC 6a56 10 RtlUnwind
+STACK WIN 4 1000 54 6 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1060 a 3 0 0 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 106a 35 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 109f 1e 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10bd 7 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10c4 6 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10d4 9 0 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10dd 7 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10e4 24 0 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1112 7 0 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1119 10 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1129 7 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1130 2c 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 115c 1a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1176 21 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 117c 17 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1197 b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11a2 29 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11cb 161 c 0 0 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 12ee 14 0 0 0 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 132c a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1336 70 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 139d 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 142e 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1433 30 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 146d 5 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 144f 14 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 146d 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1472 6a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14dc e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14ea 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1515 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 152d 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1536 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 153f 33 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1542 2f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1572 2e 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1578 26 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15a0 a1 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15e2 3e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15e3 3c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1641 140 c 0 c 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 176c e 0 0 c 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1781 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1797 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17ad f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 17bc f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 17cb 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17e9 26 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 180f 1c5 1b 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1825 1a8 5 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 1826 1a4 4 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 182a 19f 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 19d4 39 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1a0d 251 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1a13 236 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1c53 9 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1a3f 20a 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1c53 8 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1ab8 191 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1c53 4 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1c5e dc 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1c6d a8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1c74 a0 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1cb6 5d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1d3a d d 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d51 2d7 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2032 3 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 203f 4 0 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d44 3 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1d51 2d3 0 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1d51 2d2 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2043 c5 d 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 204c ba 4 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 204f b6 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2050 b4 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2108 b8 a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2111 ad 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2112 ab 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 215b 61 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 21c0 3b2 9 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21c9 3a2 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2280 2ea 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2281 2e8 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2572 30 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2575 2c b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2580 20 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 25a2 30 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25a5 2c b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 25b0 20 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 25d2 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25db 9 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25e4 34 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25e7 30 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2618 3d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2655 b4 c 0 8 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 26f1 e 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2700 8 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2709 8d 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 270c 89 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 270d 85 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2796 1a 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2799 16 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 27b0 12f c 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 28c7 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 28d3 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 28df 18f 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 28e2 18b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 28fd 16f 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2a6e 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2ae5 21 21 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2b10 299 0 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2aee 18 18 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 2b10 16c 0 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 2afc a a 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 2b10 16b 0 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 2b10 16a 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2da9 9b 17 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2dbf 83 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 2dc0 81 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2ddc 64 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 2e44 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e53 129 1a 0 c 8 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 812 - ^ =  $24 $T0 816 - ^ = 
+STACK WIN 4 2f7c 25 3 0 14 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2f7f 21 0 0 14 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2fa1 2d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2fce 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2fde 5e 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2fe1 4e 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2fe2 4c 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 303c 89 a 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 303f 85 7 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3046 7d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3056 3e 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 30c5 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 30dc c2 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3195 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 319e 47 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31a7 29 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 31da 9 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 31e5 9c a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31ee 91 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 31ef 7c 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3275 9 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 330c b6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3312 9b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 33b7 9 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 331f 70 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3399 6 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3320 6f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3399 5 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3514 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3556 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3569 39 c 0 0 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3589 4 0 0 0 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 35a2 11 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 35b3 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 35d1 5 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 35d6 33 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3613 9 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 35ea 1b 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 361c d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3629 1a3 c 0 4 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 378a 14 0 0 4 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 37cc f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37db f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37ea f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37f9 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3821 c0 f 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3828 b7 8 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3829 b5 7 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3830 ad 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 38e1 3 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 38e4 27 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3915 7 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 38e4 27 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3915 6 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 391c 3c c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3952 5 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3958 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 396f 23 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3972 1f 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3973 1d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3992 5d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 39ef 27 27 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3a20 7 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3a27 3e 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3a15 1 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3a20 7 7 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3a27 3c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3a20 42 7 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3a27 3a 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3a65 bc 35 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3af0 13 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3b21 16c 1e 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b37 14f 8 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 3b3e 145 1 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 3b3f 143 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3c8d a a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c97 a2 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d43 9 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c93 2c 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3c97 27 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d4c e e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d5a 11d 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3e81 9 0 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d55 17 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3d59 28 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3d5a 10 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3e8a 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3eaf a a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3eb9 86 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3f49 6 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3eb5 2c 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3eb9 27 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3f4f 49 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3f98 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3fa7 45 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fad 3d 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3fae 3b 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3fec 4c 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ff2 44 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3ff3 42 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4038 4e 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 403e 46 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 403f 44 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4086 2f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 40b5 6 6 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 40bb a5 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 416a 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 40b8 3 3 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 40bb a5 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 416a 8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 40b9 2 2 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 40bb 97 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 415d 3 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 416a 7 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4173 246 17 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4189 229 1 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 418a 225 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 43b9 a4 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 4451 b 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 445d b b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4472 148 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4466 2 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 4472 127 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 45a3 3 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 45b0 6 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 45ba 9 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 45c3 7e 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 464b 9 0 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 45c3 7e 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 464b 7 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4654 2d2 1b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4667 2b8 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 466b 2b1 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 466f 2ac 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4926 19a c 0 4 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 4a87 8 0 0 4 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4ac0 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4ade 8 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4ae6 68 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b58 6 0 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b5e 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b76 f8 e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b7c f0 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4b7d ee 7 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4b84 e6 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4c6e 102 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c74 fa 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4c80 eb 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 4c81 e9 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4d70 a a 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d87 9 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d90 273 0 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d76 4 4 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d87 9 9 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d90 271 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d77 3 3 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d87 9 9 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d90 270 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d90 26f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5003 6b 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5009 63 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5022 45 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 506e 79 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 50db 8 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 50e7 8 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5335 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 56c9 2a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56f3 3d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5730 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5739 106 b 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 583f 5 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5844 88 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 58d6 9 0 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5875 57 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 58d6 7 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 58df 5 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 58e4 b6 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 59a4 6 0 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 58f6 6c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 590b 43 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 5958 9 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 59aa 22d 1a 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5bd7 8 8 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5bdf 38 0 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5c21 6 0 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5c27 112 16 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5d39 8 8 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d41 32 0 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d7d 6 0 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d83 775 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d89 76d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 64f8 9f 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64fe 97 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6597 180 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 659d 178 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6717 ba 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 67d1 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 67e1 103 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 0 12ee 14 0 0 0 0 0 0 0 0
+STACK WIN 0 139d 9 0 0 0 0 0 0 0 0
+STACK WIN 0 13a6 88 0 0 8 0 0 0 0 0
+STACK WIN 0 176c f 0 0 0 0 0 0 0 0
+STACK WIN 0 26f1 f 0 0 0 0 0 0 0 0
+STACK WIN 0 2700 9 0 0 0 0 0 0 0 0
+STACK WIN 0 28c7 c 0 0 0 0 0 0 0 0
+STACK WIN 0 28d3 c 0 0 0 0 0 0 0 0
+STACK WIN 0 3195 9 0 0 0 0 0 0 0 0
+STACK WIN 0 3281 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 33c2 90 3 0 c c 0 0 0 0
+STACK WIN 0 3452 46 0 0 10 4 0 0 0 1
+STACK WIN 0 34b4 17 4 0 0 10 0 0 0 1
+STACK WIN 0 34cb 19 0 0 0 0 0 0 0 0
+STACK WIN 0 34fd 17 1 0 8 4 0 0 0 1
+STACK WIN 0 3589 4 0 0 0 0 0 0 0 0
+STACK WIN 0 378a 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3952 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3af0 13 0 0 0 0 0 0 0 0
+STACK WIN 0 4451 c 0 0 0 0 0 0 0 0
+STACK WIN 0 4a87 9 0 0 0 0 0 0 0 0
+STACK WIN 0 50db 9 0 0 0 0 0 0 0 0
+STACK WIN 0 50ef 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 5169 95 0 0 10 0 4 0 0 0
+STACK WIN 0 5263 84 3 0 8 c 0 0 0 0
+STACK WIN 0 52e7 23 0 0 0 0 0 0 0 0
+STACK WIN 0 5332 3 0 0 0 0 0 0 0 0
+STACK WIN 0 6910 1a 0 0 10 0 0 0 0 0
+STACK WIN 0 692a 1a 0 0 10 0 4 0 0 0
diff --git a/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb b/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb
new file mode 100644
index 0000000..b91b69b
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/omap_stretched_filled.sym b/src/tools/windows/dump_syms/testdata/omap_stretched_filled.sym
new file mode 100644
index 0000000..410801e
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/omap_stretched_filled.sym
@@ -0,0 +1,2945 @@
+MODULE windows x86 79B9AD4B6BDE4A5283EB6870045001E91 omap_stretched_filled.pdb
+FILE 1 c:\src\breakpad\src\src\tools\windows\dump_syms\testdata\dump_syms_regtest.cc
+FILE 2 f:\dd\public\sdk\inc\internal\pebteb.h
+FILE 3 f:\dd\public\sdk\inc\internal\ntldr.h
+FILE 4 f:\dd\public\sdk\inc\internal\ntconfig.h
+FILE 5 f:\dd\public\sdk\inc\internal\ntregapi.h
+FILE 6 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdarg.h
+FILE 7 f:\dd\public\ddk\inc\ntdef.h
+FILE 8 f:\dd\public\sdk\inc\internal\ntmmapi.h
+FILE 9 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ctype.h
+FILE 10 f:\dd\public\sdk\inc\pshpack1.h
+FILE 11 f:\dd\public\sdk\inc\internal\nxi386.h
+FILE 12 f:\dd\public\ddk\inc\poppack.h
+FILE 13 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\process.h
+FILE 14 f:\dd\public\sdk\inc\pshpack8.h
+FILE 15 f:\dd\public\ddk\inc\ntpoapi.h
+FILE 16 f:\dd\public\sdk\inc\internal\ntexapi.h
+FILE 17 f:\dd\public\sdk\inc\poppack.h
+FILE 18 f:\dd\public\ddk\inc\ntimage.h
+FILE 19 f:\dd\public\ddk\inc\pshpack4.h
+FILE 20 f:\dd\public\sdk\inc\pshpack2.h
+FILE 21 f:\dd\public\ddk\inc\ntnls.h
+FILE 22 f:\dd\public\sdk\inc\internal\ntelfapi.h
+FILE 23 f:\dd\public\sdk\inc\internal\ntpsapi.h
+FILE 24 f:\dd\public\sdk\inc\internal\nti386.h
+FILE 25 f:\dd\public\sdk\inc\specstrings.h
+FILE 26 f:\dd\public\sdk\inc\sal_supp.h
+FILE 27 f:\dd\public\sdk\inc\specstrings_supp.h
+FILE 28 f:\dd\public\sdk\inc\specstrings_strict.h
+FILE 29 f:\dd\public\sdk\inc\specstrings_undef.h
+FILE 30 f:\dd\public\sdk\inc\driverspecs.h
+FILE 31 f:\dd\public\sdk\inc\sdv_driverspecs.h
+FILE 32 f:\dd\public\sdk\inc\basetsd.h
+FILE 33 f:\dd\public\sdk\inc\internal\ntpnpapi.h
+FILE 34 f:\dd\public\sdk\inc\cfg.h
+FILE 35 f:\dd\public\sdk\inc\internal\ntxcapi.h
+FILE 36 f:\dd\public\sdk\inc\guiddef.h
+FILE 37 f:\dd\public\sdk\inc\internal\nt.h
+FILE 38 f:\dd\public\sdk\inc\ntstatus.h
+FILE 39 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\excpt.h
+FILE 40 f:\dd\public\sdk\inc\internal\ntkeapi.h
+FILE 41 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdefs.h
+FILE 42 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sal.h
+FILE 43 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\codeanalysis\sourceannotations.h
+FILE 44 f:\dd\public\sdk\inc\internal\ntobapi.h
+FILE 45 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\string.h
+FILE 46 f:\dd\public\sdk\inc\internal\ntioapi.h
+FILE 47 f:\dd\public\ddk\inc\devioctl.h
+FILE 48 f:\dd\public\sdk\inc\internal\ntseapi.h
+FILE 49 f:\dd\public\ddk\inc\mce.h
+FILE 50 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\misc\i386\chandler4.c
+FILE 51 f:\dd\public\sdk\inc\pshpack4.h
+FILE 52 f:\dd\public\devdiv\inc\ddbanned.h
+FILE 53 f:\dd\public\sdk\inc\internal\ntlpcapi.h
+FILE 54 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\vadefs.h
+FILE 55 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\cruntime.h
+FILE 56 f:\dd\public\sdk\inc\internal\ntiolog.h
+FILE 57 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup.asm
+FILE 58 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\pversion.inc
+FILE 59 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\cmacros.inc
+FILE 60 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\h\exsup.inc
+FILE 61 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\nlgsupp.asm
+FILE 62 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\exsup4.asm
+FILE 64 f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\misc\i386\sehprolg4.asm
+FILE 65 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memcpy.c
+FILE 69 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\memcmp.c
+FILE 73 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c
+FILE 77 f:\dd\public\sdk\inc\winreg.h
+FILE 78 f:\dd\public\sdk\inc\imm.h
+FILE 79 f:\dd\public\sdk\inc\wingdi.h
+FILE 80 f:\dd\vctools\crt_bld\self_x86\crt\src\stdlib.h
+FILE 81 f:\dd\public\sdk\inc\winerror.h
+FILE 82 f:\dd\public\sdk\inc\ktmtypes.h
+FILE 84 f:\dd\vctools\crt_bld\self_x86\crt\src\stdarg.h
+FILE 85 f:\dd\public\sdk\inc\windef.h
+FILE 86 f:\dd\public\sdk\inc\winbase.h
+FILE 88 f:\dd\vctools\crt_bld\self_x86\crt\src\string.h
+FILE 89 f:\dd\public\sdk\inc\winuser.h
+FILE 91 f:\dd\public\sdk\inc\winnetwk.h
+FILE 92 f:\dd\public\sdk\inc\winnt.h
+FILE 93 f:\dd\public\sdk\inc\wnnc.h
+FILE 94 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.h
+FILE 96 f:\dd\public\sdk\inc\winnls.h
+FILE 98 f:\dd\vctools\crt_bld\self_x86\crt\src\mtdll.h
+FILE 99 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdefs.h
+FILE 100 f:\dd\vctools\crt_bld\self_x86\crt\src\sal.h
+FILE 101 f:\dd\vctools\crt_bld\self_x86\crt\src\codeanalysis\sourceannotations.h
+FILE 102 f:\dd\public\sdk\inc\winver.h
+FILE 103 f:\dd\public\sdk\inc\verrsrc.h
+FILE 104 f:\dd\public\sdk\inc\wincon.h
+FILE 105 f:\dd\public\sdk\inc\stralign.h
+FILE 107 f:\dd\public\sdk\inc\mcx.h
+FILE 108 f:\dd\vctools\crt_bld\self_x86\crt\src\atox.c
+FILE 109 f:\dd\vctools\crt_bld\self_x86\crt\src\limits.h
+FILE 110 f:\dd\public\sdk\inc\windows.h
+FILE 111 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.h
+FILE 112 f:\dd\public\sdk\inc\sdkddkver.h
+FILE 113 f:\dd\vctools\crt_bld\self_x86\crt\src\oscalls.h
+FILE 114 f:\dd\vctools\crt_bld\self_x86\crt\src\excpt.h
+FILE 120 f:\dd\public\sdk\inc\reason.h
+FILE 123 f:\dd\public\sdk\inc\kernelspecs.h
+FILE 125 f:\dd\vctools\crt_bld\self_x86\crt\src\tchar.h
+FILE 126 f:\dd\vctools\crt_bld\self_x86\crt\src\mbstring.h
+FILE 127 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.h
+FILE 128 f:\dd\public\sdk\inc\ime_cmodes.h
+FILE 130 f:\dd\vctools\crt_bld\self_x86\crt\src\vadefs.h
+FILE 131 f:\dd\vctools\crt_bld\self_x86\crt\src\cruntime.h
+FILE 132 f:\dd\public\sdk\inc\tvout.h
+FILE 145 f:\dd\vctools\crt_bld\self_x86\crt\src\internal_securecrt.h
+FILE 152 f:\dd\vctools\crt_bld\self_x86\crt\src\internal.h
+FILE 164 f:\dd\vctools\crt_bld\self_x86\crt\src\crtdbg.h
+FILE 165 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoa.c
+FILE 178 f:\dd\vctools\crt_bld\self_x86\crt\src\xtoas.c
+FILE 182 f:\dd\vctools\crt_bld\self_x86\crt\src\errno.h
+FILE 224 f:\dd\vctools\crt_bld\self_x86\crt\src\dosmap.c
+FILE 250 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcsup.h
+FILE 251 f:\dd\vctools\crt_bld\self_x86\crt\src\rtcapi.h
+FILE 265 f:\dd\vctools\crt_bld\self_x86\crt\src\winheap.h
+FILE 281 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.h
+FILE 291 f:\dd\vctools\crt_bld\self_x86\crt\src\calloc_impl.c
+FILE 299 f:\dd\vctools\crt_bld\self_x86\crt\src\dbgint.h
+FILE 333 f:\dd\vctools\crt_bld\self_x86\crt\src\crtheap.c
+FILE 389 f:\dd\vctools\crt_bld\self_x86\crt\src\free.c
+FILE 453 f:\dd\vctools\crt_bld\self_x86\crt\src\heapinit.c
+FILE 498 f:\dd\vctools\crt_bld\self_x86\crt\src\rterr.h
+FILE 504 f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c
+FILE 561 f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c
+FILE 618 f:\dd\vctools\crt_bld\self_x86\crt\src\realloc.c
+FILE 677 f:\dd\vctools\crt_bld\self_x86\crt\src\recalloc.c
+FILE 731 f:\dd\vctools\crt_bld\self_x86\crt\src\_newmode.c
+FILE 774 f:\dd\vctools\crt_bld\self_x86\crt\src\msdos.h
+FILE 777 f:\dd\vctools\crt_bld\self_x86\crt\src\stddef.h
+FILE 792 f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c
+FILE 844 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\loadcfg.c
+FILE 892 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\secchk.c
+FILE 904 f:\dd\vctools\crt_bld\self_x86\crt\src\process.h
+FILE 943 f:\dd\vctools\crt_bld\self_x86\crt\src\a_env.c
+FILE 960 f:\dd\vctools\crt_bld\self_x86\crt\src\awint.h
+FILE 975 f:\dd\vctools\crt_bld\self_x86\crt\src\signal.h
+FILE 1011 f:\dd\vctools\crt_bld\self_x86\crt\src\abort.c
+FILE 1039 f:\dd\vctools\crt_bld\self_x86\crt\src\swprintf.inl
+FILE 1053 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmbox.c
+FILE 1063 f:\dd\vctools\crt_bld\self_x86\crt\src\crtmboxw.c
+FILE 1065 f:\dd\vctools\crt_bld\self_x86\crt\src\wchar.h
+FILE 1069 f:\dd\vctools\crt_bld\self_x86\crt\src\wtime.inl
+FILE 1120 f:\dd\vctools\crt_bld\self_x86\crt\src\ctype.c
+FILE 1145 f:\dd\vctools\crt_bld\self_x86\crt\src\dbghook.c
+FILE 1181 f:\dd\vctools\crt_bld\self_x86\crt\src\errmode.c
+FILE 1244 f:\dd\vctools\crt_bld\self_x86\crt\src\getqloc.c
+FILE 1288 f:\dd\vctools\crt_bld\self_x86\crt\src\locale.h
+FILE 1301 f:\dd\vctools\crt_bld\self_x86\crt\src\glstatus.c
+FILE 1344 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_cookie.c
+FILE 1392 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_report.c
+FILE 1413 f:\binaries.x86ret\inc\mm3dnow.h
+FILE 1415 f:\binaries.x86ret\inc\ammintrin.h
+FILE 1424 f:\binaries.x86ret\inc\immintrin.h
+FILE 1426 f:\binaries.x86ret\inc\wmmintrin.h
+FILE 1427 f:\binaries.x86ret\inc\nmmintrin.h
+FILE 1428 f:\binaries.x86ret\inc\smmintrin.h
+FILE 1429 f:\binaries.x86ret\inc\tmmintrin.h
+FILE 1430 f:\binaries.x86ret\inc\pmmintrin.h
+FILE 1431 f:\binaries.x86ret\inc\emmintrin.h
+FILE 1432 f:\binaries.x86ret\inc\xmmintrin.h
+FILE 1433 f:\binaries.x86ret\inc\mmintrin.h
+FILE 1455 f:\dd\vctools\crt_bld\self_x86\crt\src\gs_support.c
+FILE 1467 f:\dd\vctools\crt_bld\self_x86\crt\src\intrin.h
+FILE 1468 f:\dd\vctools\crt_bld\self_x86\crt\src\setjmp.h
+FILE 1508 f:\dd\vctools\crt_bld\self_x86\crt\src\initcoll.c
+FILE 1568 f:\dd\vctools\crt_bld\self_x86\crt\src\initctyp.c
+FILE 1627 f:\dd\vctools\crt_bld\self_x86\crt\src\inithelp.c
+FILE 1685 f:\dd\vctools\crt_bld\self_x86\crt\src\initmon.c
+FILE 1737 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsint.h
+FILE 1742 f:\dd\vctools\crt_bld\self_x86\crt\src\initnum.c
+FILE 1800 f:\dd\vctools\crt_bld\self_x86\crt\src\inittime.c
+FILE 1855 f:\dd\vctools\crt_bld\self_x86\crt\src\lconv.c
+FILE 1913 f:\dd\vctools\crt_bld\self_x86\crt\src\localref.c
+FILE 1962 f:\dd\vctools\crt_bld\self_x86\crt\src\sect_attribs.h
+FILE 1969 f:\dd\vctools\crt_bld\self_x86\crt\src\onexit.c
+FILE 1989 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata1.c
+FILE 2036 f:\dd\vctools\crt_bld\self_x86\crt\src\nlsdata2.c
+FILE 2079 f:\dd\vctools\crt_bld\self_x86\crt\src\pesect.c
+FILE 2128 f:\dd\vctools\crt_bld\self_x86\crt\src\purevirt.c
+FILE 2186 f:\dd\vctools\crt_bld\self_x86\crt\src\rand_s.c
+FILE 2250 f:\dd\vctools\crt_bld\self_x86\crt\src\setlocal.c
+FILE 2311 f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
+FILE 2314 f:\dd\vctools\crt_bld\self_x86\crt\src\float.h
+FILE 2315 f:\dd\vctools\crt_bld\self_x86\crt\src\crtwrn.h
+FILE 2369 f:\dd\vctools\crt_bld\self_x86\crt\src\winxfltr.c
+FILE 2394 f:\dd\vctools\crt_bld\self_x86\crt\src\fltintrn.h
+FILE 2419 f:\dd\vctools\crt_bld\self_x86\crt\src\cmiscdat.c
+FILE 2445 f:\dd\vctools\crt_bld\self_x86\crt\src\intel\strncmp.c
+FILE 2468 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscat_s.inl
+FILE 2493 f:\dd\vctools\crt_bld\self_x86\crt\src\strcat_s.c
+FILE 2523 f:\dd\vctools\crt_bld\self_x86\crt\src\tcscpy_s.inl
+FILE 2548 f:\dd\vctools\crt_bld\self_x86\crt\src\strcpy_s.c
+FILE 2578 f:\dd\vctools\crt_bld\self_x86\crt\src\tcsncpy_s.inl
+FILE 2603 f:\dd\vctools\crt_bld\self_x86\crt\src\strncpy_s.c
+FILE 2658 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscat_s.c
+FILE 2713 f:\dd\vctools\crt_bld\self_x86\crt\src\wcscpy_s.c
+FILE 2728 f:\dd\vctools\crt_bld\self_x86\crt\src\wcslen.c
+FILE 2776 f:\dd\vctools\crt_bld\self_x86\crt\src\wcsncpy_s.c
+FILE 2787 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm
+FILE 2788 f:\dd\vctools\crt_bld\SELF_X86\crt\src\cruntime.inc
+FILE 2789 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memset.asm
+FILE 2791 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcmp.asm
+FILE 2793 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strcspn.asm
+FILE 2794 f:\dd\vctools\crt_bld\SELF_X86\crt\src\Intel\STRSPN.ASM
+FILE 2796 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strlen.asm
+FILE 2798 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\_strnicm.asm
+FILE 2800 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\strpbrk.asm
+FILE 2803 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\llmul.asm
+FILE 2805 f:\dd\vctools\crt_bld\SELF_X86\crt\src\mm.inc
+FILE 2806 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\ulldvrm.asm
+FILE 2820 f:\dd\vctools\crt_bld\self_x86\crt\src\handler.cpp
+FILE 2841 f:\dd\vctools\crt_bld\self_x86\crt\src\new.h
+FILE 2875 f:\dd\vctools\crt_bld\self_x86\crt\src\delete.cpp
+FILE 2931 f:\dd\vctools\crt_bld\self_x86\crt\src\_wctype.c
+FILE 2987 f:\dd\vctools\crt_bld\self_x86\crt\src\iswctype.c
+FILE 2998 f:\dd\vctools\crt_bld\self_x86\crt\src\stdio.h
+FILE 3045 f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
+FILE 3106 f:\dd\vctools\crt_bld\self_x86\crt\src\strtol.c
+FILE 3163 f:\dd\vctools\crt_bld\self_x86\crt\src\strtoq.c
+FILE 3218 f:\dd\vctools\crt_bld\self_x86\crt\src\tolower.c
+FILE 3271 f:\dd\vctools\crt_bld\self_x86\crt\src\ismbbyte.c
+FILE 3305 f:\dd\vctools\crt_bld\self_x86\crt\src\mbdata.h
+FILE 3326 f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c
+FILE 3386 f:\dd\vctools\crt_bld\self_x86\crt\src\a_loc.c
+FILE 3447 f:\dd\vctools\crt_bld\self_x86\crt\src\a_map.c
+FILE 3507 f:\dd\vctools\crt_bld\self_x86\crt\src\a_str.c
+FILE 3583 f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c
+FILE 3626 f:\dd\vctools\crt_bld\self_x86\crt\src\stricmp.c
+FILE 3682 f:\dd\vctools\crt_bld\self_x86\crt\src\strnicmp.c
+FILE 3774 f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c
+FILE 3778 f:\dd\vctools\crt_bld\self_x86\crt\src\memory.h
+FILE 3838 f:\dd\vctools\crt_bld\self_x86\crt\src\stdenvp.c
+FILE 3860 f:\dd\vctools\crt_bld\self_x86\crt\src\dos.h
+FILE 3891 f:\dd\vctools\crt_bld\self_x86\crt\src\stdargv.c
+FILE 3954 f:\dd\vctools\crt_bld\self_x86\crt\src\mlock.c
+FILE 3998 f:\dd\vctools\crt_bld\self_x86\crt\src\cmsgs.h
+FILE 4012 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0msg.c
+FILE 4072 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0init.c
+FILE 4123 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0fp.c
+FILE 4186 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c
+FILE 4250 f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c
+FILE 4274 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\alloca16.asm
+FILE 4276 f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\chkstk.asm
+FILE 4289 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\errno.h
+FILE 4293 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\internal.h
+FILE 4294 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\limits.h
+FILE 4295 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\mtdll.h
+FILE 4309 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\sect_attribs.h
+FILE 4315 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\tran\i386\cpu_disp.c
+FILE 4327 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\crtdbg.h
+FILE 4340 f:\dd\vctools\langapi\undname\undname.cxx
+FILE 4345 f:\dd\vctools\langapi\undname\undname.inl
+FILE 4347 f:\dd\vctools\langapi\undname\utf8.h
+FILE 4355 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\swprintf.inl
+FILE 4365 f:\dd\vctools\langapi\undname\undname.hxx
+FILE 4366 f:\dd\vctools\langapi\undname\undname.h
+FILE 4367 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdlib.h
+FILE 4368 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stdio.h
+FILE 4396 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\eh.h
+FILE 4397 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\unhandld.cpp
+FILE 4401 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehhooks.h
+FILE 4405 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\ehassert.h
+FILE 4427 f:\dd\vctools\langapi\include\ehdata.h
+FILE 4429 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\stddef.h
+FILE 4449 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\exception
+FILE 4472 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\malloc.h
+FILE 4473 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typname.cpp
+FILE 4475 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\cstddef
+FILE 4487 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\typeinfo.h
+FILE 4488 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\typeinfo
+FILE 4490 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\xstddef
+FILE 4491 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\yvals.h
+FILE 4492 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\stdhpp\use_ansi.h
+FILE 4493 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\dbgint.h
+FILE 4496 f:\dd\public\internal\vctools\include\undname.h
+FILE 4531 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\typinfo.cpp
+FILE 4591 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\eh\hooks.cpp
+FILE 4643 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\rtc\initsect.cpp
+FILE 4664 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcapi.h
+FILE 4680 f:\dd\vctools\crt_bld\self_x86\crt\prebuild\h\rtcpriv.h
+FUNC 1000 54 0 main
+1000 6 57 1
+1006 8 58 1
+100e e 59 1
+101c 8 60 1
+1024 b 61 1
+102f f 62 1
+103e 12 64 1
+1050 4 65 1
+FUNC 1060 a 0 static int google_breakpad::i()
+1060 3 51 1
+1063 5 52 1
+1068 2 53 1
+FUNC 106a 35 0 google_breakpad::C::C()
+106a 35 37 1
+FUNC 109f 1e 0 google_breakpad::C::~C()
+109f 1e 38 1
+FUNC 10bd 20 0 google_breakpad::C::set_member(int)
+10bd 20 40 1
+FUNC 10dd 3c 0 google_breakpad::C::f()
+10dd 3c 43 1
+FUNC 1119 10 0 google_breakpad::C::g()
+1119 10 44 1
+FUNC 1129 7 0 google_breakpad::C::h(google_breakpad::C const &)
+1129 7 45 1
+FUNC 1130 2c 0 google_breakpad::C::`scalar deleting destructor'(unsigned int)
+FUNC 115c 1a 0 type_info::~type_info()
+115c 2 49 4531
+115e 17 50 4531
+1175 1 51 4531
+FUNC 1176 21 0 type_info::`scalar deleting destructor'(unsigned int)
+FUNC 1197 b 0 operator delete(void *)
+1197 5 20 2875
+119c 1 24 2875
+119d 5 23 2875
+FUNC 11a2 29 0 static void fast_error_exit(int)
+11a2 5 326 4250
+11a7 9 335 4250
+11b0 5 337 4250
+11b5 8 339 4250
+11bd c 340 4250
+11c9 2 341 4250
+FUNC 11cb 161 0 static int __tmainCRTStartup()
+11cb c 196 4250
+11d7 a 214 4250
+11e1 b 216 4250
+11ec 49 223 4250
+1235 9 225 4250
+123e 8 226 4250
+1246 9 228 4250
+124f 8 229 4250
+1257 5 238 4250
+125c 3 246 4250
+125f 9 248 4250
+1268 8 249 4250
+1270 b 252 4250
+127b a 255 4250
+1285 9 257 4250
+128e 8 258 4250
+1296 9 259 4250
+129f 8 260 4250
+12a7 8 262 4250
+12af 4 263 4250
+12b3 7 264 4250
+12ba a 277 4250
+12c4 18 278 4250
+12dc 5 281 4250
+12e1 6 282 4250
+12e7 5 284 4250
+12ec 2 286 4250
+12ee 17 287 4250
+1305 6 293 4250
+130b 6 295 4250
+1311 6 296 4250
+1317 5 298 4250
+131c 7 300 4250
+1323 3 302 4250
+1326 6 303 4250
+FUNC 132c a 0 mainCRTStartup
+132c 0 179 4250
+132c 5 186 4250
+1331 5 188 4250
+FUNC 1336 70 0 type_info::_Type_info_dtor(type_info *)
+1336 c 62 4473
+1342 8 63 4473
+134a 4 64 4473
+134e a 65 4473
+1358 d 70 4473
+1365 4 72 4473
+1369 4 74 4473
+136d 6 79 4473
+1373 7 80 4473
+137a 9 94 4473
+1383 4 101 4473
+1387 c 103 4473
+1393 6 107 4473
+1399 2 83 4473
+139b 2 72 4473
+139d 9 104 4473
+FUNC 13a6 88 0 strcmp
+13a6 0 65 2791
+13a6 4 73 2791
+13aa 4 74 2791
+13ae 6 76 2791
+13b4 2 77 2791
+13b6 2 81 2791
+13b8 2 83 2791
+13ba 2 84 2791
+13bc 2 85 2791
+13be 2 86 2791
+13c0 3 87 2791
+13c3 2 88 2791
+13c5 2 89 2791
+13c7 2 90 2791
+13c9 3 92 2791
+13cc 3 94 2791
+13cf 2 95 2791
+13d1 2 96 2791
+13d3 2 97 2791
+13d5 3 98 2791
+13d8 2 99 2791
+13da 3 100 2791
+13dd 3 101 2791
+13e0 2 102 2791
+13e2 4 103 2791
+13e6 2 107 2791
+13e8 2 108 2791
+13ea 2 115 2791
+13ec 2 116 2791
+13ee 3 117 2791
+13f1 1 118 2791
+13f2 6 122 2791
+13f8 2 123 2791
+13fa 2 125 2791
+13fc 3 126 2791
+13ff 2 127 2791
+1401 2 128 2791
+1403 3 129 2791
+1406 2 130 2791
+1408 2 131 2791
+140a 6 133 2791
+1410 2 134 2791
+1412 3 139 2791
+1415 3 140 2791
+1418 2 141 2791
+141a 2 142 2791
+141c 2 143 2791
+141e 2 144 2791
+1420 3 145 2791
+1423 2 146 2791
+1425 2 147 2791
+1427 2 148 2791
+1429 3 149 2791
+142c 2 150 2791
+FUNC 142e 44 0 free
+142e 5 40 389
+1433 6 45 389
+1439 11 50 389
+144a 4 51 389
+144e 22 53 389
+1470 2 55 389
+FUNC 1472 6a 0 __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
+1472 5 67 4397
+1477 5a 68 4397
+14d1 5 69 4397
+14d6 2 72 4397
+14d8 4 73 4397
+FUNC 14dc e 0 __CxxSetUnhandledExceptionFilter
+14dc 0 86 4397
+14dc b 89 4397
+14e7 2 90 4397
+14e9 1 91 4397
+FUNC 14ea 2b 0 __crtCorExitProcess
+14ea 5 675 4186
+14ef b 679 4186
+14fa 4 680 4186
+14fe c 681 4186
+150a 4 682 4186
+150e 5 683 4186
+1513 2 693 4186
+FUNC 1515 18 0 __crtExitProcess
+1515 5 698 4186
+151a 9 699 4186
+1523 a 708 4186
+FUNC 152d 9 0 _lockexit
+152d 0 758 4186
+152d 8 759 4186
+1535 1 760 4186
+FUNC 1536 9 0 _unlockexit
+1536 0 784 4186
+1536 8 785 4186
+153e 1 786 4186
+FUNC 153f 33 0 _init_pointers
+153f 3 809 4186
+1542 7 810 4186
+1549 6 812 4186
+154f 6 813 4186
+1555 6 814 4186
+155b 6 815 4186
+1561 6 816 4186
+1567 a 817 4186
+1571 1 818 4186
+FUNC 1572 2e 0 _initterm_e
+1572 6 908 4186
+1578 b 917 4186
+1583 10 922 4186
+1593 2 923 4186
+1595 3 924 4186
+1598 6 917 4186
+159e 2 928 4186
+FUNC 15a0 a1 0 _cinit
+15a0 5 258 4186
+15a5 18 268 4186
+15bd a 270 4186
+15c7 5 272 4186
+15cc 11 278 4186
+15dd 2 279 4186
+15df 2 280 4186
+15e1 c 283 4186
+15ed 2a 288 4186
+1617 1a 301 4186
+1631 c 303 4186
+163d 2 307 4186
+163f 2 308 4186
+FUNC 1641 140 0 static void doexit(int, int, int)
+1641 c 489 4186
+164d 8 507 4186
+1655 4 508 4186
+1659 f 510 4186
+1668 5 511 4186
+166d 8 514 4186
+1675 a 516 4186
+167f 13 532 4186
+1692 4 533 4186
+1696 d 534 4186
+16a3 3 538 4186
+16a6 3 539 4186
+16a9 11 547 4186
+16ba 2 550 4186
+16bc 4 552 4186
+16c0 6 559 4186
+16c6 7 562 4186
+16cd 2 565 4186
+16cf a 567 4186
+16d9 8 568 4186
+16e1 a 570 4186
+16eb 6 573 4186
+16f1 8 574 4186
+16f9 5 576 4186
+16fe 21 582 4186
+171f 21 590 4186
+1740 c 608 4186
+174c 6 613 4186
+1752 a 617 4186
+175c 8 619 4186
+1764 8 621 4186
+176c 6 609 4186
+1772 9 610 4186
+177b 6 622 4186
+FUNC 1781 16 0 exit
+1781 5 392 4186
+1786 f 393 4186
+1795 2 394 4186
+FUNC 1797 16 0 _exit
+1797 5 400 4186
+179c f 401 4186
+17ab 2 402 4186
+FUNC 17ad f 0 _cexit
+17ad 0 407 4186
+17ad e 408 4186
+17bb 1 409 4186
+FUNC 17bc f 0 _c_exit
+17bc 0 414 4186
+17bc e 415 4186
+17ca 1 416 4186
+FUNC 17cb 1e 0 _amsg_exit
+17cb 5 439 4186
+17d0 5 440 4186
+17d5 9 441 4186
+17de b 442 4186
+FUNC 17e9 26 0 _GET_RTERRMSG
+17e9 5 165 4012
+17ee 2 168 4012
+17f0 c 169 4012
+17fc 6 168 4012
+1802 2 172 4012
+1804 2 173 4012
+1806 7 170 4012
+180d 2 173 4012
+FUNC 180f 1c5 0 _NMSG_WRITE
+180f 1b 196 4012
+182a 8 197 4012
+1832 11 199 4012
+1843 2a 226 4012
+186d c 263 4012
+1879 20 272 4012
+1899 21 275 4012
+18ba 1f 276 4012
+18d9 d 279 4012
+18e6 d 281 4012
+18f3 1d 282 4012
+1910 18 285 4012
+1928 14 286 4012
+193c 15 290 4012
+1951 a 272 4012
+195b a 228 4012
+1965 9 229 4012
+196e 2 244 4012
+1970 15 246 4012
+1985 11 248 4012
+1996 8 244 4012
+199e 27 260 4012
+19c5 f 294 4012
+FUNC 19d4 39 0 _FF_MSGBANNER
+19d4 0 134 4012
+19d4 22 138 4012
+19f6 a 140 4012
+1a00 c 141 4012
+1a0c 1 143 4012
+FUNC 1a0d 251 0 _XcptFilter
+1a0d 6 195 2369
+1a13 7 202 2369
+1a1a 8 203 2369
+1a22 48 208 2369
+1a6a 4 210 2369
+1a6e d 216 2369
+1a7b 4 223 2369
+1a7f 7 224 2369
+1a86 5 232 2369
+1a8b e 237 2369
+1a99 8 238 2369
+1aa1 3 244 2369
+1aa4 6 248 2369
+1aaa 1e 263 2369
+1ac8 16 272 2369
+1ade 3 280 2369
+1ae1 28 283 2369
+1b09 20 310 2369
+1b29 16 312 2369
+1b3f 7 314 2369
+1b46 16 316 2369
+1b5c 7 318 2369
+1b63 16 320 2369
+1b79 7 322 2369
+1b80 16 324 2369
+1b96 7 326 2369
+1b9d 13 328 2369
+1bb0 7 330 2369
+1bb7 13 332 2369
+1bca 7 334 2369
+1bd1 13 336 2369
+1be4 7 338 2369
+1beb 13 340 2369
+1bfe 7 342 2369
+1c05 11 344 2369
+1c16 12 353 2369
+1c28 d 358 2369
+1c35 2 360 2369
+1c37 e 365 2369
+1c45 4 366 2369
+1c49 e 372 2369
+1c57 5 374 2369
+1c5c 2 376 2369
+FUNC 1c5e dc 0 _setenvp
+1c5e 0 77 3838
+1c5e 9 85 3838
+1c67 6 86 3838
+1c6d 9 91 3838
+1c76 4 98 3838
+1c7a 8 99 3838
+1c82 4 110 3838
+1c86 1 111 3838
+1c87 b 112 3838
+1c92 6 108 3838
+1c98 15 117 3838
+1cad 2 118 3838
+1caf 9 121 3838
+1cb8 6 123 3838
+1cbe 9 125 3838
+1cc7 10 127 3838
+1cd7 f 133 3838
+1ce6 3 134 3838
+1ce9 7 121 3838
+1cf0 b 138 3838
+1cfb 7 139 3838
+1d02 3 142 3838
+1d05 a 149 3838
+1d0f 2 152 3838
+1d11 2 138 3838
+1d13 3 153 3838
+1d16 b 129 3838
+1d21 7 130 3838
+1d28 5 131 3838
+1d2d d 133 3838
+FUNC 1d3a 309 0 static void parse_cmdline(char *, char * *, char *, int *, int *)
+1d3a 6 221 3891
+1d40 13 229 3891
+1d53 2 232 3891
+1d55 2b 234 3891
+1d80 3 253 3891
+1d83 f 255 3891
+1d92 5 257 3891
+1d97 9 258 3891
+1da0 5 259 3891
+1da5 c 261 3891
+1db1 4 262 3891
+1db5 1c 263 3891
+1dd1 c 265 3891
+1ddd f 267 3891
+1dec c 268 3891
+1df8 6 269 3891
+1dfe 1e 270 3891
+1e1c 1 271 3891
+1e1d 22 275 3891
+1e3f 4 280 3891
+1e43 e 281 3891
+1e51 4 284 3891
+1e55 13 289 3891
+1e68 14 290 3891
+1e7c 3 291 3891
+1e7f 1 278 3891
+1e80 2 279 3891
+1e82 13 294 3891
+1e95 6 298 3891
+1e9b 13 299 3891
+1eae c 300 3891
+1eba 3 314 3891
+1ebd 4 318 3891
+1ec1 1 321 3891
+1ec2 1 322 3891
+1ec3 f 319 3891
+1ed2 f 324 3891
+1ee1 5 327 3891
+1ee6 18 328 3891
+1efe 2 329 3891
+1f00 2 330 3891
+1f02 d 332 3891
+1f0f 2 335 3891
+1f11 5 339 3891
+1f16 4 340 3891
+1f1a e 341 3891
+1f28 10 342 3891
+1f38 3 341 3891
+1f3b 2a 346 3891
+1f65 8 351 3891
+1f6d 12 353 3891
+1f7f 1f 354 3891
+1f9e c 355 3891
+1faa 1e 357 3891
+1fc8 2 358 3891
+1fca a 359 3891
+1fd4 1 360 3891
+1fd5 c 361 3891
+1fe1 f 364 3891
+1ff0 1 366 3891
+1ff1 5 375 3891
+1ff6 4 379 3891
+1ffa 11 380 3891
+200b c 381 3891
+2017 8 382 3891
+201f 9 385 3891
+2028 d 386 3891
+2035 c 387 3891
+2041 2 388 3891
+FUNC 2043 c5 0 _setargv
+2043 9 88 3891
+204c c 97 3891
+2058 5 98 3891
+205d 18 104 3891
+2075 23 120 3891
+2098 11 127 3891
+20a9 15 134 3891
+20be a 138 3891
+20c8 2 140 3891
+20ca 9 142 3891
+20d3 2 143 3891
+20d5 2 144 3891
+20d7 13 151 3891
+20ea c 156 3891
+20f6 6 160 3891
+20fc 4 175 3891
+2100 6 136 3891
+2106 2 176 3891
+FUNC 2108 b8 0 __crtGetEnvironmentStringsA
+2108 a 40 943
+2112 e 49 943
+2120 7 50 943
+2127 f 54 943
+2136 12 55 943
+2148 13 56 943
+215b 1b 70 943
+2176 12 74 943
+2188 12 88 943
+219a 9 90 943
+21a3 3 91 943
+21a6 7 94 943
+21ad 5 95 943
+21b2 7 76 943
+21b9 5 77 943
+21be 2 96 943
+FUNC 21c0 3b2 0 _ioinit
+21c0 9 111 792
+21c9 a 122 792
+21d3 13 129 792
+21e6 8 131 792
+21ee 15 137 792
+2203 3 134 792
+2206 1e 139 792
+2224 d 141 792
+2231 10 143 792
+2241 e 145 792
+224f d 146 792
+225c 25 147 792
+2281 15 155 792
+2296 c 160 792
+22a2 6 166 792
+22a8 2 167 792
+22aa e 173 792
+22b8 11 179 792
+22c9 13 185 792
+22dc 7 199 792
+22e3 1a 201 792
+22fd 3 198 792
+2300 e 203 792
+230e e 205 792
+231c e 206 792
+232a 2e 209 792
+2358 26 210 792
+237e f 179 792
+238d 2 280 792
+238f 6 191 792
+2395 a 217 792
+239f 45 230 792
+23e4 14 232 792
+23f8 1b 233 792
+2413 1c 234 792
+242f 17 237 792
+2446 d 239 792
+2453 10 217 792
+2463 2 249 792
+2465 b 251 792
+2470 16 254 792
+2486 13 302 792
+2499 e 258 792
+24a7 30 262 792
+24d7 16 273 792
+24ed 10 274 792
+24fd 5 275 792
+2502 e 276 792
+2510 13 280 792
+2523 d 282 792
+2530 2 284 792
+2532 e 293 792
+2540 10 294 792
+2550 a 249 792
+255a c 309 792
+2566 5 311 792
+256b 2 312 792
+256d 5 281 792
+FUNC 2572 30 0 _RTC_Initialize
+FUNC 25a2 30 0 _RTC_Terminate
+FUNC 25d2 9 0 _encoded_null
+25d2 0 79 3774
+25d2 8 80 3774
+25da 1 81 3774
+FUNC 25db 9 4 __crtTlsAlloc
+25db 0 95 3774
+25db 6 96 3774
+25e1 3 97 3774
+FUNC 25e4 34 0 __set_flsgetvalue
+25e4 3 143 3774
+25e7 e 145 3774
+25f5 4 146 3774
+25f9 e 148 3774
+2607 d 149 3774
+2614 3 151 3774
+2617 1 155 3774
+FUNC 2618 3d 0 _mtterm
+2618 0 329 3774
+2618 a 336 3774
+2622 f 337 3774
+2631 7 338 3774
+2638 a 342 3774
+2642 7 343 3774
+2649 7 344 3774
+2650 5 352 3774
+FUNC 2655 b4 0 _initptd
+2655 c 379 3774
+2661 b 381 3774
+266c a 384 3774
+2676 4 385 3774
+267a 6 386 3774
+2680 3 391 3774
+2683 7 395 3774
+268a 7 396 3774
+2691 7 397 3774
+2698 8 399 3774
+26a0 4 400 3774
+26a4 9 402 3774
+26ad c 404 3774
+26b9 8 411 3774
+26c1 3 412 3774
+26c4 6 413 3774
+26ca 4 421 3774
+26ce 8 422 3774
+26d6 9 423 3774
+26df c 425 3774
+26eb 6 428 3774
+26f1 6 404 3774
+26f7 9 406 3774
+2700 9 426 3774
+FUNC 2709 8d 0 _getptd_noexit
+2709 4 448 3774
+270d 6 452 3774
+2713 15 460 3774
+2728 14 472 3774
+273c 19 475 3774
+2755 a 481 3774
+275f 6 483 3774
+2765 1a 484 3774
+277f 2 486 3774
+2781 7 492 3774
+2788 2 493 3774
+278a 8 498 3774
+2792 3 500 3774
+2795 1 501 3774
+FUNC 2796 1a 0 _getptd
+2796 3 522 3774
+2799 7 523 3774
+27a0 4 524 3774
+27a4 8 525 3774
+27ac 3 527 3774
+27af 1 528 3774
+FUNC 27b0 12f 4 _freefls
+27b0 c 556 3774
+27bc b 567 3774
+27c7 7 568 3774
+27ce 7 569 3774
+27d5 7 571 3774
+27dc 7 572 3774
+27e3 7 574 3774
+27ea 7 575 3774
+27f1 7 577 3774
+27f8 7 578 3774
+27ff 7 580 3774
+2806 7 581 3774
+280d 7 583 3774
+2814 7 584 3774
+281b 7 586 3774
+2822 7 587 3774
+2829 a 589 3774
+2833 7 590 3774
+283a 8 592 3774
+2842 4 593 3774
+2846 1a 596 3774
+2860 7 597 3774
+2867 c 599 3774
+2873 8 603 3774
+287b 7 605 3774
+2882 7 606 3774
+2889 7 608 3774
+2890 15 611 3774
+28a5 7 612 3774
+28ac c 615 3774
+28b8 7 619 3774
+28bf 8 622 3774
+28c7 3 599 3774
+28ca 9 600 3774
+28d3 3 615 3774
+28d6 9 616 3774
+FUNC 28df 18f 0 _mtinit
+28df 3 203 3774
+28e2 d 211 3774
+28ef 4 212 3774
+28f3 5 213 3774
+28f8 3 214 3774
+28fb 2 300 3774
+28fd e 218 3774
+290b d 221 3774
+2918 d 224 3774
+2925 d 227 3774
+2932 2a 228 3774
+295c a 231 3774
+2966 1a 235 3774
+2980 25 244 3774
+29a5 5 249 3774
+29aa e 256 3774
+29b8 d 257 3774
+29c5 d 258 3774
+29d2 12 259 3774
+29e4 7 266 3774
+29eb 2 268 3774
+29ed 1d 274 3774
+2a0a 2 276 3774
+2a0c 29 284 3774
+2a35 a 294 3774
+2a3f 6 296 3774
+2a45 1a 297 3774
+2a5f 5 299 3774
+2a64 5 286 3774
+2a69 4 245 3774
+2a6d 1 300 3774
+FUNC 2a6e 1e 0 _heap_init
+2a6e 0 40 453
+2a6e 1d 44 453
+2a8b 1 60 453
+FUNC 2a8c 45 0 _SEH_prolog4
+FUNC 2ad1 14 0 _SEH_epilog4
+FUNC 2ae5 2c4 0 _except_handler4
+FUNC 2da9 9b 0 __security_init_cookie
+2da9 8 97 1455
+2db1 21 114 1455
+2dd2 7 116 1455
+2dd9 3 117 1455
+2ddc a 127 1455
+2de6 6 132 1455
+2dec 8 135 1455
+2df4 8 136 1455
+2dfc 8 137 1455
+2e04 a 139 1455
+2e0e 8 144 1455
+2e16 4 161 1455
+2e1a 7 163 1455
+2e21 4 166 1455
+2e25 c 168 1455
+2e31 6 172 1455
+2e37 b 173 1455
+2e42 2 175 1455
+FUNC 2e44 f 0 _initp_misc_invarg
+2e44 5 64 3583
+2e49 8 65 3583
+2e51 2 66 3583
+FUNC 2e53 129 0 _call_reportfault
+2e53 16 164 3583
+2e69 9 166 3583
+2e72 7 167 3583
+2e79 17 170 3583
+2e90 1b 172 3583
+2eab 6 179 3583
+2eb1 6 180 3583
+2eb7 6 181 3583
+2ebd 6 182 3583
+2ec3 6 183 3583
+2ec9 6 184 3583
+2ecf 7 185 3583
+2ed6 7 186 3583
+2edd 7 187 3583
+2ee4 7 188 3583
+2eeb 7 189 3583
+2ef2 7 190 3583
+2ef9 1 191 3583
+2efa 6 192 3583
+2f00 3 198 3583
+2f03 19 199 3583
+2f1c 9 201 3583
+2f25 9 240 3583
+2f2e 9 241 3583
+2f37 6 242 3583
+2f3d 6 245 3583
+2f43 a 248 3583
+2f4d d 250 3583
+2f5a d 254 3583
+2f67 7 255 3583
+2f6e e 257 3583
+FUNC 2f7c 25 0 _invoke_watson
+2f7c 3 146 3583
+2f7f 12 155 3583
+2f91 f 156 3583
+2fa0 1 157 3583
+FUNC 2fa1 2d 0 _invalid_parameter
+2fa1 5 96 3583
+2fa6 c 103 3583
+2fb2 4 104 3583
+2fb6 1 111 3583
+2fb7 2 106 3583
+2fb9 15 110 3583
+FUNC 2fce 10 0 _invalid_parameter_noinfo
+2fce 0 120 3583
+2fce f 121 3583
+2fdd 1 122 3583
+FUNC 2fde 5e 0 _mtinitlocks
+2fde 4 136 3954
+2fe2 7 143 3954
+2fe9 a 144 3954
+2ff3 13 145 3954
+3006 1e 147 3954
+3024 6 143 3954
+302a 3 156 3954
+302d 3 157 3954
+3030 c 150 3954
+FUNC 303c 89 0 _mtdeletelocks
+303c 3 187 3954
+303f d 193 3954
+304c 20 195 3954
+306c 3 199 3954
+306f 6 205 3954
+3075 e 206 3954
+3083 b 193 3954
+308e 6 214 3954
+3094 20 216 3954
+30b4 3 220 3954
+30b7 b 214 3954
+30c2 3 223 3954
+FUNC 30c5 17 0 _unlock
+30c5 5 370 3954
+30ca 10 374 3954
+30da 2 375 3954
+FUNC 30dc c2 0 _mtinitlocknum
+30dc c 258 3954
+30e8 6 260 3954
+30ee a 268 3954
+30f8 5 269 3954
+30fd 7 270 3954
+3104 c 271 3954
+3110 e 275 3954
+311e 4 276 3954
+3122 e 278 3954
+3130 b 279 3954
+313b 4 280 3954
+313f 8 283 3954
+3147 3 284 3954
+314a 4 286 3954
+314e 10 287 3954
+315e 7 288 3954
+3165 b 289 3954
+3170 3 290 3954
+3173 2 291 3954
+3175 2 292 3954
+3177 2 295 3954
+3179 7 296 3954
+3180 c 299 3954
+318c 3 303 3954
+318f 6 304 3954
+3195 9 300 3954
+FUNC 319e 47 0 _lock
+319e 5 332 3954
+31a3 1a 337 3954
+31bd b 339 3954
+31c8 8 340 3954
+31d0 13 347 3954
+31e3 2 348 3954
+FUNC 31e5 9c 0 strcpy_s
+31e5 5 13 2523
+31ea 2d 18 2523
+3217 15 19 2523
+322c 26 23 2523
+3252 4 27 2523
+3256 d 29 2523
+3263 18 30 2523
+327b 4 33 2523
+327f 2 34 2523
+FUNC 3281 8b 0 strlen
+3281 0 54 2796
+3281 4 63 2796
+3285 6 64 2796
+328b 2 65 2796
+328d 2 69 2796
+328f 3 70 2796
+3292 2 71 2796
+3294 2 72 2796
+3296 6 73 2796
+329c 2 74 2796
+329e 13 76 2796
+32b1 2 81 2796
+32b3 5 82 2796
+32b8 2 83 2796
+32ba 3 84 2796
+32bd 2 85 2796
+32bf 3 86 2796
+32c2 5 87 2796
+32c7 2 88 2796
+32c9 3 90 2796
+32cc 2 91 2796
+32ce 2 92 2796
+32d0 2 93 2796
+32d2 2 94 2796
+32d4 5 95 2796
+32d9 2 96 2796
+32db 5 97 2796
+32e0 2 98 2796
+32e2 2 99 2796
+32e4 3 103 2796
+32e7 4 104 2796
+32eb 2 105 2796
+32ed 1 106 2796
+32ee 3 108 2796
+32f1 4 109 2796
+32f5 2 110 2796
+32f7 1 111 2796
+32f8 3 113 2796
+32fb 4 114 2796
+32ff 2 115 2796
+3301 1 116 2796
+3302 3 118 2796
+3305 4 119 2796
+3309 2 120 2796
+330b 1 121 2796
+FUNC 330c b6 0 malloc
+330c 6 81 504
+3312 e 85 504
+3320 3d 89 504
+335d 4 94 504
+3361 b 98 504
+336c b 105 504
+3377 2 109 504
+3379 11 100 504
+338a 11 119 504
+339b 6 121 504
+33a1 7 111 504
+33a8 15 112 504
+33bd 3 113 504
+33c0 2 122 504
+FUNC 33c2 90 0 _local_unwind4
+FUNC 3452 46 0 static void _unwind_handler4()
+FUNC 3498 1c 4 _seh_longjmp_unwind4
+FUNC 34b4 17 0 _EH4_CallFilterFunc
+FUNC 34cb 19 0 _EH4_TransferToHandler
+FUNC 34e4 19 0 _EH4_GlobalUnwind2
+FUNC 34fd 17 8 _EH4_LocalUnwind
+FUNC 3514 42 0 _get_errno_from_oserr
+3514 5 119 224
+3519 5 123 224
+351e 9 124 224
+3527 6 123 224
+352d 8 133 224
+3535 3 134 224
+3538 2 139 224
+353a 7 125 224
+3541 2 139 224
+3543 11 135 224
+3554 2 139 224
+FUNC 3556 13 0 _errno
+3556 0 279 224
+3556 5 280 224
+355b 4 281 224
+355f 5 282 224
+3564 1 287 224
+3565 3 284 224
+3568 1 287 224
+FUNC 3569 39 0 terminate()
+3569 c 84 4591
+3575 8 89 4591
+357d 4 90 4591
+3581 4 95 4591
+3585 2 99 4591
+3587 2 100 4591
+3589 7 101 4591
+3590 7 106 4591
+3597 5 114 4591
+359c 6 115 4591
+FUNC 35a2 11 0 _initp_eh_hooks
+35a2 0 69 4591
+35a2 10 70 4591
+35b2 1 71 4591
+FUNC 35b3 1e 0 _initp_misc_winsig
+35b3 5 57 2311
+35b8 8 58 2311
+35c0 5 59 2311
+35c5 5 60 2311
+35ca 5 61 2311
+35cf 2 62 2311
+FUNC 35d1 4b 0 static struct _XCPT_ACTION * siglookup(int, struct _XCPT_ACTION *)
+35d1 5 629 2311
+35d6 a 630 2311
+35e0 1e 639 2311
+35fe 18 642 2311
+3616 2 646 2311
+3618 2 651 2311
+361a 2 652 2311
+FUNC 361c d 0 __get_sigabrt
+361c 0 669 2311
+361c c 670 2311
+3628 1 671 2311
+FUNC 3629 1a3 0 raise
+3629 c 450 2311
+3635 5 457 2311
+363a 3 458 2311
+363d 1f 460 2311
+365c a 486 2311
+3666 4 487 2311
+366a 8 488 2311
+3672 a 463 2311
+367c 2 465 2311
+367e 10 490 2311
+368e 2 491 2311
+3690 f 460 2311
+369f 12 498 2311
+36b1 a 474 2311
+36bb 2 476 2311
+36bd a 468 2311
+36c7 2 470 2311
+36c9 a 479 2311
+36d3 7 480 2311
+36da a 500 2311
+36e4 2 508 2311
+36e6 4 507 2311
+36ea 6 508 2311
+36f0 5 513 2311
+36f5 7 518 2311
+36fc 5 525 2311
+3701 7 526 2311
+3708 5 528 2311
+370d f 539 2311
+371c 6 540 2311
+3722 3 541 2311
+3725 5 547 2311
+372a 6 548 2311
+3730 7 549 2311
+3737 5 557 2311
+373c 1a 564 2311
+3756 d 567 2311
+3763 5 564 2311
+3768 7 570 2311
+376f c 573 2311
+377b 5 578 2311
+3780 8 584 2311
+3788 2 585 2311
+378a 6 573 2311
+3790 6 574 2311
+3796 9 575 2311
+379f 5 586 2311
+37a4 f 593 2311
+37b3 6 594 2311
+37b9 5 599 2311
+37be 6 600 2311
+37c4 2 603 2311
+37c6 6 604 2311
+FUNC 37cc f 0 _initp_misc_rand_s
+37cc 5 58 2186
+37d1 8 59 2186
+37d9 2 60 2186
+FUNC 37db f 0 _initp_misc_purevirt
+37db 5 179 1627
+37e0 8 180 1627
+37e8 2 181 1627
+FUNC 37ea f 0 _initp_heap_handler
+37ea 5 31 2820
+37ef 8 32 2820
+37f7 2 33 2820
+FUNC 37f9 28 0 _callnewh
+37f9 5 131 2820
+37fe c 133 2820
+380a e 135 2820
+3818 3 138 2820
+381b 2 139 2820
+381d 2 136 2820
+381f 2 139 2820
+FUNC 3821 c0 0 static  * _onexit_nolock( *)
+3821 8 100 1969
+3829 f 103 1969
+3838 f 104 1969
+3847 14 108 1969
+385b 10 118 1969
+386b d 123 1969
+3878 13 125 1969
+388b 3 130 1969
+388e 13 132 1969
+38a1 3 143 1969
+38a4 f 145 1969
+38b3 1a 152 1969
+38cd 8 153 1969
+38d5 5 155 1969
+38da 5 110 1969
+38df 2 156 1969
+FUNC 38e1 3b 0 __onexitinit
+38e1 3 201 1969
+38e4 d 204 1969
+38f1 11 205 1969
+3902 4 207 1969
+3906 4 212 1969
+390a 1 217 1969
+390b d 214 1969
+3918 3 216 1969
+391b 1 217 1969
+FUNC 391c 3c 0 _onexit
+391c c 81 1969
+3928 5 84 1969
+392d 4 86 1969
+3931 c 87 1969
+393d c 89 1969
+3949 3 93 1969
+394c 6 94 1969
+3952 6 90 1969
+FUNC 3958 17 0 atexit
+3958 5 161 1969
+395d 10 162 1969
+396d 2 163 1969
+FUNC 396f 23 0 _initp_misc_cfltcvt_tab
+396f 4 54 2419
+3973 2 56 2419
+3975 1a 58 2419
+398f 3 60 2419
+FUNC 3992 5d 0 _ValidateImageBase
+3992 5 44 2079
+3997 17 50 2079
+39ae 2 52 2079
+39b0 2 68 2079
+39b2 f 55 2079
+39c1 10 56 2079
+39d1 2 58 2079
+39d3 1a 62 2079
+39ed 2 68 2079
+FUNC 39ef 76 0 _FindPESection
+39ef 5 92 2079
+39f4 12 99 2079
+3a06 2c 108 2079
+3a32 24 111 2079
+3a56 8 108 2079
+3a5e 5 123 2079
+3a63 2 124 2079
+FUNC 3a65 bc 0 _IsNonwritableInCurrentImage
+3a65 35 149 2079
+3a9a 7 156 2079
+3aa1 f 164 2079
+3ab0 2 166 2079
+3ab2 8 174 2079
+3aba e 175 2079
+3ac8 2 176 2079
+3aca 2 178 2079
+3acc 12 185 2079
+3ade 12 195 2079
+3af0 16 187 2079
+3b06 9 193 2079
+3b0f 12 195 2079
+FUNC 3b21 16c 0 __crtMessageBoxW
+3b21 12 41 1053
+3b33 14 49 1053
+3b47 4 56 1053
+3b4b c 62 1053
+3b57 d 64 1053
+3b64 2 65 1053
+3b66 6 67 1053
+3b6c 10 72 1053
+3b7c 6 76 1053
+3b82 9 78 1053
+3b8b 10 81 1053
+3b9b 10 84 1053
+3bab d 88 1053
+3bb8 8 93 1053
+3bc0 4 95 1053
+3bc4 10 97 1053
+3bd4 1a 110 1053
+3bee 3 113 1053
+3bf1 c 114 1053
+3bfd 8 116 1053
+3c05 1f 121 1053
+3c24 7 130 1053
+3c2b 2 132 1053
+3c2d a 134 1053
+3c37 3 136 1053
+3c3a 4 137 1053
+3c3e 5 139 1053
+3c43 e 143 1053
+3c51 3 145 1053
+3c54 4 146 1053
+3c58 8 148 1053
+3c60 8 155 1053
+3c68 4 156 1053
+3c6c 10 158 1053
+3c7c 2 163 1053
+3c7e f 166 1053
+FUNC 3c8d bf 0 wcscat_s
+3c8d 6 13 2468
+3c93 2c 18 2468
+3cbf 2 46 2468
+3cc1 18 19 2468
+3cd9 2 21 2468
+3cdb 10 23 2468
+3ceb 3 25 2468
+3cee 3 26 2468
+3cf1 2 29 2468
+3cf3 2 32 2468
+3cf5 29 35 2468
+3d1e 13 41 2468
+3d31 1b 42 2468
+FUNC 3d4c 13e 0 wcsncpy_s
+3d4c 5 13 2578
+3d51 16 17 2578
+3d67 5 65 2578
+3d6c 2 66 2578
+3d6e 28 24 2578
+3d96 4 25 2578
+3d9a f 28 2578
+3da9 2 29 2578
+3dab 18 31 2578
+3dc3 2 33 2578
+3dc5 5 35 2578
+3dca 2b 37 2578
+3df5 2 41 2578
+3df7 2e 45 2578
+3e25 4 48 2578
+3e29 f 50 2578
+3e38 8 54 2578
+3e40 a 58 2578
+3e4a 18 59 2578
+3e62 d 61 2578
+3e6f 1b 62 2578
+FUNC 3e8a 25 0 wcslen
+3e8a 5 41 2728
+3e8f 3 42 2728
+3e92 15 44 2728
+3ea7 6 46 2728
+3ead 2 47 2728
+FUNC 3eaf a0 0 wcscpy_s
+3eaf 6 13 2523
+3eb5 2c 18 2523
+3ee1 2 34 2523
+3ee3 16 19 2523
+3ef9 2b 23 2523
+3f24 13 29 2523
+3f37 18 30 2523
+FUNC 3f4f 49 0 _set_error_mode
+3f4f 5 43 1181
+3f54 11 46 1181
+3f65 5 54 1181
+3f6a 2 61 1181
+3f6c 5 50 1181
+3f71 6 51 1181
+3f77 2 61 1181
+3f79 1d 57 1181
+3f96 2 61 1181
+FUNC 3f98 f 0 __security_check_cookie
+3f98 0 52 892
+3f98 6 55 892
+3f9e 2 56 892
+3fa0 2 57 892
+3fa2 5 59 892
+FUNC 3fa7 45 0 _malloc_crt
+3fa7 7 39 333
+3fae 2 40 333
+3fb0 b 44 333
+3fbb c 45 333
+3fc7 1a 46 333
+3fe1 5 47 333
+3fe6 4 50 333
+3fea 2 51 333
+FUNC 3fec 4c 0 _calloc_crt
+3fec 7 54 333
+3ff3 2 55 333
+3ff5 12 61 333
+4007 c 62 333
+4013 1a 63 333
+402d 5 64 333
+4032 4 67 333
+4036 2 68 333
+FUNC 4038 4e 0 _realloc_crt
+4038 7 71 333
+403f 2 72 333
+4041 f 76 333
+4050 11 77 333
+4061 1a 78 333
+407b 5 79 333
+4080 4 82 333
+4084 2 83 333
+FUNC 4086 2f 0 static int CPtoLCID(int)
+4086 0 329 3326
+4086 14 330 3326
+409a 2 345 3326
+409c 1 346 3326
+409d 5 342 3326
+40a2 1 346 3326
+40a3 5 339 3326
+40a8 1 346 3326
+40a9 5 336 3326
+40ae 1 346 3326
+40af 5 333 3326
+40b4 1 346 3326
+FUNC 40b5 be 0 static void setSBCS(struct threadmbcinfostruct *)
+40b5 6 363 3326
+40bb 11 368 3326
+40cc 4b 379 3326
+4117 12 381 3326
+4129 1e 382 3326
+4147 b 384 3326
+4152 1e 385 3326
+4170 3 386 3326
+FUNC 4173 246 0 static void setSBUpLow(struct threadmbcinfostruct *)
+4173 17 402 3326
+418a 1a 412 3326
+41a4 f 415 3326
+41b3 c 416 3326
+41bf 11 420 3326
+41d0 6 419 3326
+41d6 2a 421 3326
+4200 14 420 3326
+4214 34 427 3326
+4248 37 432 3326
+427f 39 437 3326
+42b8 2 442 3326
+42ba d 443 3326
+42c7 10 445 3326
+42d7 9 446 3326
+42e0 5 448 3326
+42e5 10 450 3326
+42f5 1c 451 3326
+4311 2 453 3326
+4313 15 454 3326
+4328 5 442 3326
+432d 8 456 3326
+4335 12 472 3326
+4347 17 461 3326
+435e 10 463 3326
+436e 5 464 3326
+4373 5 466 3326
+4378 10 468 3326
+4388 f 469 3326
+4397 2 471 3326
+4399 d 472 3326
+43a6 5 460 3326
+43ab e 474 3326
+FUNC 43b9 a4 0 __updatetmbcinfo
+43b9 c 495 3326
+43c5 7 498 3326
+43cc 10 499 3326
+43dc 3 532 3326
+43df 4 535 3326
+43e3 8 537 3326
+43eb 2 540 3326
+43ed 6 541 3326
+43f3 8 500 3326
+43fb 4 502 3326
+43ff e 505 3326
+440d 17 511 3326
+4424 7 516 3326
+442b 11 523 3326
+443c 7 524 3326
+4443 11 527 3326
+4454 9 529 3326
+FUNC 445d 15d 0 _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
+445d 5 240 111
+4462 1c 241 111
+447e 12 243 111
+4490 19 244 111
+44a9 1a 245 111
+44c3 3a 247 111
+44fd 49 248 111
+4546 1d 249 111
+4563 e 251 111
+4571 e 252 111
+457f 2 255 111
+4581 32 257 111
+45b3 7 259 111
+FUNC 45ba 9a 0 static int getSystemCP(int)
+45ba 9 282 3326
+45c3 b 284 3326
+45ce 6 285 3326
+45d4 5 289 3326
+45d9 a 291 3326
+45e3 1e 292 3326
+4601 5 295 3326
+4606 a 297 3326
+4610 8 298 3326
+4618 5 302 3326
+461d 1c 305 3326
+4639 19 308 3326
+4652 2 309 3326
+FUNC 4654 2d2 0 _setmbcp_nolock
+4654 17 684 3326
+466b b 691 3326
+4676 9 694 3326
+467f 7 696 3326
+4686 7 697 3326
+468d 3 701 3326
+4690 2 703 3326
+4692 c 706 3326
+469e d 703 3326
+46ab 2a 741 3326
+46d5 13 749 3326
+46e8 f 754 3326
+46f7 29 759 3326
+4720 21 762 3326
+4741 16 764 3326
+4757 f 710 3326
+4766 15 713 3326
+477b 13 718 3326
+478e 12 721 3326
+47a0 27 722 3326
+47c7 4 721 3326
+47cb 15 718 3326
+47e0 12 713 3326
+47f2 3e 729 3326
+4830 23 731 3326
+4853 7 734 3326
+485a 5 735 3326
+485f 11 765 3326
+4870 4 764 3326
+4874 17 762 3326
+488b 8 769 3326
+4893 11 770 3326
+48a4 1f 773 3326
+48c3 d 776 3326
+48d0 2 778 3326
+48d2 d 780 3326
+48df 24 783 3326
+4903 5 787 3326
+4908 6 792 3326
+490e 6 795 3326
+4914 3 744 3326
+4917 f 800 3326
+FUNC 4926 19a 0 _setmbcp
+4926 c 572 3326
+4932 4 573 3326
+4936 a 577 3326
+4940 5 579 3326
+4945 3 580 3326
+4948 b 582 3326
+4953 9 584 3326
+495c d 590 3326
+4969 8 592 3326
+4971 c 594 3326
+497d 3 605 3326
+4980 16 610 3326
+4996 1a 612 3326
+49b0 7 613 3326
+49b7 3 617 3326
+49ba 9 618 3326
+49c3 17 620 3326
+49da 8 622 3326
+49e2 4 623 3326
+49e6 8 628 3326
+49ee 8 629 3326
+49f6 8 630 3326
+49fe a 631 3326
+4a08 d 632 3326
+4a15 3 631 3326
+4a18 c 633 3326
+4a24 a 634 3326
+4a2e 3 633 3326
+4a31 c 635 3326
+4a3d d 636 3326
+4a4a 3 635 3326
+4a4d 1c 638 3326
+4a69 7 639 3326
+4a70 6 643 3326
+4a76 3 644 3326
+4a79 e 646 3326
+4a87 9 648 3326
+4a90 2 651 3326
+4a92 5 652 3326
+4a97 8 658 3326
+4a9f 7 659 3326
+4aa6 b 660 3326
+4ab1 2 666 3326
+4ab3 4 671 3326
+4ab7 3 680 3326
+4aba 6 681 3326
+FUNC 4ac0 1e 0 __initmbctable
+4ac0 0 841 3326
+4ac0 9 851 3326
+4ac9 8 852 3326
+4ad1 a 853 3326
+4adb 2 858 3326
+4add 1 859 3326
+FUNC 4ade 80 0 static int x_ismbbtype_l(struct localeinfo_struct *, unsigned int, int, int)
+4ade 8 213 3271
+4ae6 b 214 3271
+4af1 4 219 3271
+4af5 67 222 3271
+4b5c 2 223 3271
+FUNC 4b5e 18 0 _ismbblead
+4b5e 5 171 3271
+4b63 11 172 3271
+4b74 2 173 3271
+FUNC 4b76 f8 0 __addlocaleref
+4b76 7 36 1913
+4b7d d 39 1913
+4b8a 17 41 1913
+4ba1 3 42 1913
+4ba4 17 44 1913
+4bbb 3 45 1913
+4bbe 17 47 1913
+4bd5 3 48 1913
+4bd8 17 50 1913
+4bef 3 51 1913
+4bf2 a 53 1913
+4bfc 23 55 1913
+4c1f 3 56 1913
+4c22 21 59 1913
+4c43 3 60 1913
+4c46 8 53 1913
+4c4e 1e 63 1913
+4c6c 2 64 1913
+FUNC 4c6e 102 0 __removelocaleref
+4c6e 6 74 1913
+4c74 b 77 1913
+4c7f b 79 1913
+4c8a 17 81 1913
+4ca1 3 82 1913
+4ca4 17 84 1913
+4cbb 3 85 1913
+4cbe 17 87 1913
+4cd5 3 88 1913
+4cd8 17 90 1913
+4cef 3 91 1913
+4cf2 a 93 1913
+4cfc 23 95 1913
+4d1f 3 96 1913
+4d22 21 99 1913
+4d43 3 100 1913
+4d46 8 93 1913
+4d4e 1d 103 1913
+4d6b 3 106 1913
+4d6e 2 107 1913
+FUNC 4d70 293 0 __freetlocinfo
+4d70 7 129 1913
+4d77 59 137 1913
+4dd0 25 140 1913
+4df5 6 142 1913
+4dfb 1a 143 1913
+4e15 25 147 1913
+4e3a 6 149 1913
+4e40 1a 150 1913
+4e5a 18 153 1913
+4e72 1a 154 1913
+4e8c 29 161 1913
+4eb5 1e 163 1913
+4ed3 20 164 1913
+4ef3 1b 165 1913
+4f0e 1b 166 1913
+4f29 2f 173 1913
+4f58 6 175 1913
+4f5e 1a 176 1913
+4f78 a 179 1913
+4f82 31 182 1913
+4fb3 7 184 1913
+4fba 2e 192 1913
+4fe8 7 194 1913
+4fef 8 179 1913
+4ff7 a 201 1913
+5001 2 202 1913
+FUNC 5003 6b 0 _updatetlocinfoEx_nolock
+5003 6 216 1913
+5009 e 219 1913
+5017 d 222 1913
+5024 4 223 1913
+5028 13 230 1913
+503b 4 236 1913
+503f 6 238 1913
+5045 18 248 1913
+505d 7 249 1913
+5064 5 253 1913
+5069 3 220 1913
+506c 2 254 1913
+FUNC 506e 79 0 __updatetlocinfo
+506e c 281 1913
+507a 7 283 1913
+5081 10 285 1913
+5091 8 297 1913
+5099 4 300 1913
+509d 8 302 1913
+50a5 2 305 1913
+50a7 6 306 1913
+50ad 8 286 1913
+50b5 4 288 1913
+50b9 14 290 1913
+50cd e 292 1913
+50db 8 294 1913
+50e3 4 295 1913
+FUNC 50e7 8 0 _crt_debugger_hook
+50e7 0 62 1145
+50e7 7 65 1145
+50ee 1 66 1145
+FUNC 50ef 7a 0 memset
+50ef 0 59 2789
+50ef 4 68 2789
+50f3 4 69 2789
+50f7 2 71 2789
+50f9 2 72 2789
+50fb 2 74 2789
+50fd 4 75 2789
+5101 2 78 2789
+5103 2 79 2789
+5105 6 80 2789
+510b 2 81 2789
+510d 7 82 2789
+5114 2 83 2789
+5116 5 85 2789
+511b 1 91 2789
+511c 2 92 2789
+511e 3 94 2789
+5121 2 95 2789
+5123 2 97 2789
+5125 3 98 2789
+5128 2 99 2789
+512a 2 101 2789
+512c 2 103 2789
+512e 3 104 2789
+5131 3 105 2789
+5134 2 106 2789
+5136 2 110 2789
+5138 3 111 2789
+513b 2 113 2789
+513d 2 115 2789
+513f 3 117 2789
+5142 2 119 2789
+5144 2 122 2789
+5146 3 123 2789
+5149 3 124 2789
+514c 2 125 2789
+514e 2 127 2789
+5150 2 129 2789
+5152 2 130 2789
+5154 2 134 2789
+5156 3 135 2789
+5159 3 137 2789
+515c 2 138 2789
+515e 4 142 2789
+5162 1 143 2789
+5163 1 145 2789
+5164 4 148 2789
+5168 1 150 2789
+FUNC 5169 95 0 _aulldvrm
+5169 0 45 2806
+5169 1 48 2806
+516a 4 80 2806
+516e 2 81 2806
+5170 2 82 2806
+5172 4 83 2806
+5176 4 84 2806
+517a 2 85 2806
+517c 2 86 2806
+517e 2 87 2806
+5180 4 88 2806
+5184 2 89 2806
+5186 2 90 2806
+5188 2 95 2806
+518a 4 96 2806
+518e 2 97 2806
+5190 2 98 2806
+5192 4 99 2806
+5196 2 100 2806
+5198 2 101 2806
+519a 2 108 2806
+519c 4 109 2806
+51a0 4 110 2806
+51a4 4 111 2806
+51a8 2 113 2806
+51aa 2 114 2806
+51ac 2 115 2806
+51ae 2 116 2806
+51b0 2 117 2806
+51b2 2 118 2806
+51b4 2 119 2806
+51b6 2 120 2806
+51b8 4 129 2806
+51bc 2 130 2806
+51be 4 131 2806
+51c2 2 132 2806
+51c4 2 133 2806
+51c6 2 134 2806
+51c8 4 142 2806
+51cc 2 143 2806
+51ce 2 144 2806
+51d0 4 145 2806
+51d4 2 146 2806
+51d6 1 148 2806
+51d7 4 149 2806
+51db 4 150 2806
+51df 2 152 2806
+51e1 4 161 2806
+51e5 4 162 2806
+51e9 2 163 2806
+51eb 2 164 2806
+51ed 3 165 2806
+51f0 2 170 2806
+51f2 2 171 2806
+51f4 2 172 2806
+51f6 2 173 2806
+51f8 2 174 2806
+51fa 1 180 2806
+51fb 3 182 2806
+FUNC 51fe 20 0 _global_unwind2
+FUNC 521e 45 0 static void __unwind_handler()
+FUNC 5263 84 0 _local_unwind2
+FUNC 52e7 23 0 _abnormal_termination
+FUNC 530a 9 0 _NLG_Notify1
+FUNC 5313 1f 0 _NLG_Notify
+PUBLIC m 532a 0 _NLG_Dispatch
+FUNC 5332 3 0 _NLG_Call
+PUBLIC 5334 0 _NLG_Return2
+FUNC 5335 33 0 abort
+5335 0 54 1011
+5335 5 71 1011
+533a 4 72 1011
+533e 8 74 1011
+5346 9 81 1011
+534f 11 83 1011
+5360 8 92 1011
+FUNC 5368 361 0 memcpy
+5368 3 101 2787
+536b 1 113 2787
+536c 1 114 2787
+536d 3 116 2787
+5370 3 117 2787
+5373 3 119 2787
+5376 2 129 2787
+5378 2 131 2787
+537a 2 132 2787
+537c 2 134 2787
+537e 2 135 2787
+5380 2 137 2787
+5382 6 138 2787
+5388 6 147 2787
+538e 2 148 2787
+5390 7 150 2787
+5397 2 151 2787
+5399 1 153 2787
+539a 1 154 2787
+539b 3 155 2787
+539e 3 156 2787
+53a1 2 157 2787
+53a3 1 158 2787
+53a4 1 159 2787
+53a5 2 160 2787
+53a7 5 163 2787
+53ac 6 176 2787
+53b2 2 177 2787
+53b4 3 179 2787
+53b7 3 180 2787
+53ba 3 182 2787
+53bd 2 183 2787
+53bf 2 185 2787
+53c1 7 187 2787
+53c8 2 205 2787
+53ca 5 206 2787
+53cf 3 208 2787
+53d2 2 209 2787
+53d4 3 211 2787
+53d7 2 212 2787
+53d9 7 214 2787
+53e0 8 218 2787
+53e8 14 222 2787
+53fc 2 229 2787
+53fe 2 230 2787
+5400 2 232 2787
+5402 3 233 2787
+5405 3 235 2787
+5408 3 236 2787
+540b 3 238 2787
+540e 3 239 2787
+5411 3 241 2787
+5414 3 242 2787
+5417 3 244 2787
+541a 2 245 2787
+541c 2 247 2787
+541e a 249 2787
+5428 2 253 2787
+542a 2 254 2787
+542c 2 256 2787
+542e 3 257 2787
+5431 3 259 2787
+5434 3 260 2787
+5437 3 262 2787
+543a 3 263 2787
+543d 3 265 2787
+5440 2 266 2787
+5442 2 268 2787
+5444 8 270 2787
+544c 2 274 2787
+544e 2 275 2787
+5450 2 277 2787
+5452 3 278 2787
+5455 3 280 2787
+5458 3 281 2787
+545b 3 283 2787
+545e 2 284 2787
+5460 2 286 2787
+5462 2a 288 2787
+548c 4 295 2787
+5490 4 297 2787
+5494 4 299 2787
+5498 4 301 2787
+549c 4 303 2787
+54a0 4 305 2787
+54a4 4 307 2787
+54a8 4 309 2787
+54ac 4 311 2787
+54b0 4 313 2787
+54b4 4 315 2787
+54b8 4 317 2787
+54bc 4 319 2787
+54c0 4 321 2787
+54c4 7 323 2787
+54cb 2 325 2787
+54cd 2 326 2787
+54cf 19 328 2787
+54e8 3 337 2787
+54eb 1 338 2787
+54ec 1 339 2787
+54ed 3 341 2787
+54f0 2 345 2787
+54f2 2 347 2787
+54f4 3 348 2787
+54f7 1 349 2787
+54f8 1 350 2787
+54f9 3 351 2787
+54fc 2 355 2787
+54fe 2 357 2787
+5500 3 358 2787
+5503 3 359 2787
+5506 3 360 2787
+5509 1 361 2787
+550a 1 362 2787
+550b 5 363 2787
+5510 2 367 2787
+5512 2 369 2787
+5514 3 370 2787
+5517 3 371 2787
+551a 3 372 2787
+551d 3 373 2787
+5520 3 374 2787
+5523 1 375 2787
+5524 1 376 2787
+5525 3 377 2787
+5528 4 388 2787
+552c 4 389 2787
+5530 6 394 2787
+5536 2 395 2787
+5538 3 397 2787
+553b 3 398 2787
+553e 3 400 2787
+5541 2 401 2787
+5543 1 403 2787
+5544 2 404 2787
+5546 1 405 2787
+5547 9 407 2787
+5550 2 411 2787
+5552 a 414 2787
+555c 2 419 2787
+555e 5 420 2787
+5563 3 422 2787
+5566 2 423 2787
+5568 3 425 2787
+556b 2 426 2787
+556d 7 428 2787
+5574 14 432 2787
+5588 3 439 2787
+558b 2 440 2787
+558d 3 442 2787
+5590 3 443 2787
+5593 3 445 2787
+5596 3 446 2787
+5599 3 448 2787
+559c 2 449 2787
+559e 1 451 2787
+559f 2 452 2787
+55a1 1 453 2787
+55a2 a 455 2787
+55ac 3 459 2787
+55af 2 460 2787
+55b1 3 462 2787
+55b4 3 463 2787
+55b7 3 465 2787
+55ba 3 466 2787
+55bd 3 468 2787
+55c0 3 469 2787
+55c3 3 471 2787
+55c6 2 472 2787
+55c8 1 474 2787
+55c9 2 475 2787
+55cb 1 476 2787
+55cc 8 478 2787
+55d4 3 482 2787
+55d7 2 483 2787
+55d9 3 485 2787
+55dc 3 486 2787
+55df 3 488 2787
+55e2 3 489 2787
+55e5 3 491 2787
+55e8 3 492 2787
+55eb 3 494 2787
+55ee 3 495 2787
+55f1 3 497 2787
+55f4 6 498 2787
+55fa 1 500 2787
+55fb 2 501 2787
+55fd 1 502 2787
+55fe 2a 504 2787
+5628 4 513 2787
+562c 4 515 2787
+5630 4 517 2787
+5634 4 519 2787
+5638 4 521 2787
+563c 4 523 2787
+5640 4 525 2787
+5644 4 527 2787
+5648 4 529 2787
+564c 4 531 2787
+5650 4 533 2787
+5654 4 535 2787
+5658 4 537 2787
+565c 4 539 2787
+5660 7 541 2787
+5667 2 543 2787
+5669 2 544 2787
+566b 19 546 2787
+5684 3 555 2787
+5687 1 557 2787
+5688 1 558 2787
+5689 3 559 2787
+568c 3 563 2787
+568f 3 565 2787
+5692 3 566 2787
+5695 1 567 2787
+5696 1 568 2787
+5697 5 569 2787
+569c 3 573 2787
+569f 3 575 2787
+56a2 3 576 2787
+56a5 3 577 2787
+56a8 3 578 2787
+56ab 1 579 2787
+56ac 1 580 2787
+56ad 3 581 2787
+56b0 3 585 2787
+56b3 3 587 2787
+56b6 3 588 2787
+56b9 3 589 2787
+56bc 3 590 2787
+56bf 3 591 2787
+56c2 3 592 2787
+56c5 1 593 2787
+56c6 1 594 2787
+56c7 2 595 2787
+FUNC 56c9 2a 0 _freea
+56c9 5 235 281
+56ce 7 237 281
+56d5 3 239 281
+56d8 12 241 281
+56ea 7 243 281
+56f1 2 252 281
+FUNC 56f3 3d 0 _msize
+56f3 5 39 561
+56f8 23 43 561
+571b 2 50 561
+571d 11 46 561
+572e 2 50 561
+FUNC 5730 9 0 _fptrap
+5730 0 46 4123
+5730 8 47 4123
+5738 1 48 4123
+FUNC 5739 106 0 __report_gsfailure
+5739 b 140 1392
+5744 5 170 1392
+5749 6 171 1392
+574f 6 172 1392
+5755 6 173 1392
+575b 6 174 1392
+5761 6 175 1392
+5767 7 176 1392
+576e 7 177 1392
+5775 7 178 1392
+577c 7 179 1392
+5783 7 180 1392
+578a 7 181 1392
+5791 1 182 1392
+5792 6 183 1392
+5798 3 190 1392
+579b 5 191 1392
+57a0 3 192 1392
+57a3 5 193 1392
+57a8 3 194 1392
+57ab 5 195 1392
+57b0 6 201 1392
+57b6 a 204 1392
+57c0 a 206 1392
+57ca a 285 1392
+57d4 a 286 1392
+57de b 293 1392
+57e9 b 294 1392
+57f4 b 297 1392
+57ff 8 298 1392
+5807 8 302 1392
+580f b 304 1392
+581a 9 313 1392
+5823 8 315 1392
+582b 12 319 1392
+583d 2 320 1392
+FUNC 583f a0 0 _calloc_impl
+583f 5 21 291
+5844 7 26 291
+584b 23 28 291
+586e 2 69 291
+5870 7 30 291
+5877 4 34 291
+587b 1 35 291
+587c 2 39 291
+587e 5 41 291
+5883 f 44 291
+5892 d 47 291
+589f b 59 291
+58aa 7 61 291
+58b1 10 62 291
+58c1 4 63 291
+58c5 7 52 291
+58cc 11 53 291
+58dd 2 69 291
+FUNC 58df cb 0 realloc
+58df 5 62 618
+58e4 6 67 618
+58ea 9 68 618
+58f3 3 117 618
+58f6 7 71 618
+58fd 9 73 618
+5906 5 74 618
+590b 2 109 618
+590d 4 83 618
+5911 1 84 618
+5912 14 85 618
+5926 c 94 618
+5932 b 109 618
+593d 5 81 618
+5942 7 89 618
+5949 15 90 618
+595e 4 91 618
+5962 2 117 618
+5964 20 111 618
+5984 2 112 618
+5986 20 103 618
+59a6 4 105 618
+FUNC 59aa 22d 0 static int __crtLCMapStringA_stat(struct localeinfo_struct *, unsigned long, unsigned long, const char *, int, char *, int, int, int)
+59aa 12 96 3447
+59bc c 101 3447
+59c8 21 102 3447
+59e9 4 106 3447
+59ed 1 107 3447
+59ee 3 109 3447
+59f1 3 113 3447
+59f4 5 133 3447
+59f9 1f 134 3447
+5a18 2c 145 3447
+5a44 7 146 3447
+5a4b 5c 149 3447
+5aa7 3 150 3447
+5aaa 2 151 3447
+5aac 19 160 3447
+5ac5 1f 169 3447
+5ae4 a 172 3447
+5aee b 175 3447
+5af9 9 177 3447
+5b02 10 186 3447
+5b12 5 190 3447
+5b17 5f 196 3447
+5b76 4 197 3447
+5b7a 16 207 3447
+5b90 9 220 3447
+5b99 2 223 3447
+5b9b 17 233 3447
+5bb2 7 240 3447
+5bb9 8 242 3447
+5bc1 4 244 3447
+5bc5 12 245 3447
+FUNC 5bd7 50 0 __crtLCMapStringA
+5bd7 8 258 3447
+5bdf b 259 3447
+5bea 3b 271 3447
+5c25 2 272 3447
+FUNC 5c27 112 0 static int __crtGetStringTypeA_stat(struct localeinfo_struct *, unsigned long, const char *, int, unsigned short *, int, int, int)
+5c27 12 63 3507
+5c39 7 67 3507
+5c40 5 83 3507
+5c45 1f 84 3507
+5c64 29 95 3507
+5c8d 7 96 3507
+5c94 52 99 3507
+5ce6 2 100 3507
+5ce8 2 101 3507
+5cea f 103 3507
+5cf9 13 111 3507
+5d0c 11 116 3507
+5d1d 6 118 3507
+5d23 4 120 3507
+5d27 12 121 3507
+FUNC 5d39 4a 0 __crtGetStringTypeA
+5d39 8 133 3507
+5d41 b 134 3507
+5d4c 35 145 3507
+5d81 2 146 3507
+FUNC 5d83 775 0 __free_lc_time
+5d83 6 228 1800
+5d89 b 229 1800
+5d94 12 232 1800
+5da6 12 233 1800
+5db8 12 234 1800
+5dca 12 235 1800
+5ddc 12 236 1800
+5dee 12 237 1800
+5e00 11 238 1800
+5e11 12 240 1800
+5e23 12 241 1800
+5e35 12 242 1800
+5e47 12 243 1800
+5e59 12 244 1800
+5e6b 12 245 1800
+5e7d 12 246 1800
+5e8f 12 248 1800
+5ea1 15 249 1800
+5eb6 12 250 1800
+5ec8 12 251 1800
+5eda 12 252 1800
+5eec 12 253 1800
+5efe 12 254 1800
+5f10 12 255 1800
+5f22 12 256 1800
+5f34 12 257 1800
+5f46 12 258 1800
+5f58 12 259 1800
+5f6a 12 261 1800
+5f7c 12 262 1800
+5f8e 12 263 1800
+5fa0 12 264 1800
+5fb2 12 265 1800
+5fc4 15 266 1800
+5fd9 18 267 1800
+5ff1 18 268 1800
+6009 18 269 1800
+6021 18 270 1800
+6039 18 271 1800
+6051 18 272 1800
+6069 18 274 1800
+6081 18 275 1800
+6099 18 277 1800
+60b1 18 278 1800
+60c9 18 279 1800
+60e1 18 282 1800
+60f9 18 283 1800
+6111 18 284 1800
+6129 18 285 1800
+6141 1b 286 1800
+615c 18 287 1800
+6174 18 288 1800
+618c 18 290 1800
+61a4 18 291 1800
+61bc 18 292 1800
+61d4 18 293 1800
+61ec 18 294 1800
+6204 18 295 1800
+621c 18 296 1800
+6234 18 298 1800
+624c 18 299 1800
+6264 18 300 1800
+627c 18 301 1800
+6294 18 302 1800
+62ac 18 303 1800
+62c4 1b 304 1800
+62df 18 305 1800
+62f7 18 306 1800
+630f 18 307 1800
+6327 18 308 1800
+633f 18 309 1800
+6357 18 311 1800
+636f 18 312 1800
+6387 18 313 1800
+639f 18 314 1800
+63b7 18 315 1800
+63cf 18 316 1800
+63e7 18 317 1800
+63ff 18 318 1800
+6417 18 319 1800
+642f 18 320 1800
+6447 1b 321 1800
+6462 18 322 1800
+647a 18 324 1800
+6492 18 325 1800
+64aa 18 327 1800
+64c2 18 328 1800
+64da 1c 329 1800
+64f6 2 332 1800
+FUNC 64f8 9f 0 __free_lconv_num
+64f8 6 218 1742
+64fe b 219 1742
+6509 14 222 1742
+651d 7 223 1742
+6524 15 225 1742
+6539 7 226 1742
+6540 15 228 1742
+6555 7 229 1742
+655c 15 231 1742
+6571 7 232 1742
+6578 15 234 1742
+658d 8 235 1742
+6595 2 236 1742
+FUNC 6597 180 0 __free_lconv_mon
+6597 6 270 1685
+659d b 271 1685
+65a8 15 274 1685
+65bd 7 275 1685
+65c4 15 277 1685
+65d9 7 278 1685
+65e0 15 280 1685
+65f5 7 281 1685
+65fc 15 283 1685
+6611 7 284 1685
+6618 15 286 1685
+662d 7 287 1685
+6634 15 289 1685
+6649 7 290 1685
+6650 15 292 1685
+6665 7 293 1685
+666c 15 295 1685
+6681 7 296 1685
+6688 15 298 1685
+669d 7 299 1685
+66a4 15 301 1685
+66b9 7 302 1685
+66c0 15 304 1685
+66d5 7 305 1685
+66dc 15 307 1685
+66f1 7 308 1685
+66f8 15 310 1685
+670d 8 311 1685
+6715 2 312 1685
+FUNC 6717 ba 0 _VEC_memzero
+FUNC 67d1 10 0 __sse2_available_init
+67d1 0 30 4315
+67d1 d 31 4315
+67de 2 32 4315
+67e0 1 33 4315
+FUNC 67e1 103 0 _VEC_memcpy
+FUNC 68e4 2c 0 _alloca_probe_16
+68e4 0 44 4274
+68e4 1 46 4274
+68e5 4 47 4274
+68e9 2 48 4274
+68eb 3 49 4274
+68ee 2 50 4274
+68f0 2 51 4274
+68f2 2 52 4274
+68f4 1 53 4274
+68f5 5 54 4274
+68fa 1 59 4274
+68fb 4 60 4274
+68ff 2 61 4274
+6901 3 62 4274
+6904 2 63 4274
+6906 2 64 4274
+6908 2 65 4274
+690a 1 66 4274
+690b 5 67 4274
+PUBLIC 68fa 0 _alloca_probe_8
+FUNC 6910 34 0 _allmul
+6910 0 47 2803
+6910 4 63 2803
+6914 4 64 2803
+6918 2 65 2803
+691a 4 66 2803
+691e 2 67 2803
+6920 4 69 2803
+6924 2 70 2803
+6926 3 72 2803
+6929 1 75 2803
+692a 2 83 2803
+692c 2 84 2803
+692e 4 86 2803
+6932 4 87 2803
+6936 2 88 2803
+6938 4 90 2803
+693c 2 91 2803
+693e 2 92 2803
+6940 1 94 2803
+6941 3 96 2803
+FUNC 6944 2b 0 _chkstk
+6944 0 65 4276
+6944 1 69 4276
+6945 4 73 4276
+6949 2 74 4276
+694b 2 79 4276
+694d 2 80 4276
+694f 2 81 4276
+6951 2 83 4276
+6953 5 84 4276
+6958 2 87 4276
+695a 2 88 4276
+695c 2 89 4276
+695e 1 90 4276
+695f 1 91 4276
+6960 2 92 4276
+6962 3 93 4276
+6965 1 94 4276
+6966 5 98 4276
+696b 2 99 4276
+696d 2 100 4276
+FUNC 696f 46 0 strcspn
+696f 4 191 2794
+6973 2 198 2794
+6975 1 199 2794
+6976 1 200 2794
+6977 1 201 2794
+6978 1 202 2794
+6979 1 203 2794
+697a 1 204 2794
+697b 1 205 2794
+697c 1 206 2794
+697d 6 212 2794
+6983 2 216 2794
+6985 2 217 2794
+6987 2 218 2794
+6989 3 219 2794
+698c 4 220 2794
+6990 2 221 2794
+6992 3 227 2794
+6995 6 229 2794
+699b 3 234 2794
+699e 2 236 2794
+69a0 2 237 2794
+69a2 2 238 2794
+69a4 3 239 2794
+69a7 4 240 2794
+69ab 2 245 2794
+69ad 2 255 2794
+69af 3 257 2794
+69b2 3 259 2794
+FUNC 69b5 40 0 strpbrk
+69b5 4 191 2794
+69b9 2 198 2794
+69bb 1 199 2794
+69bc 1 200 2794
+69bd 1 201 2794
+69be 1 202 2794
+69bf 1 203 2794
+69c0 1 204 2794
+69c1 1 205 2794
+69c2 1 206 2794
+69c3 6 212 2794
+69c9 2 216 2794
+69cb 2 217 2794
+69cd 2 218 2794
+69cf 3 219 2794
+69d2 4 220 2794
+69d6 2 221 2794
+69d8 5 227 2794
+69dd 2 236 2794
+69df 2 237 2794
+69e1 2 238 2794
+69e3 3 239 2794
+69e6 4 240 2794
+69ea 2 247 2794
+69ec 3 248 2794
+69ef 3 257 2794
+69f2 3 259 2794
+FUNC 69f5 61 0 __ascii_strnicmp
+69f5 6 69 2798
+69fb 3 75 2798
+69fe 2 76 2798
+6a00 2 77 2798
+6a02 3 79 2798
+6a05 3 80 2798
+6a08 2 82 2798
+6a0a 2 83 2798
+6a0c 5 84 2798
+6a11 2 89 2798
+6a13 2 91 2798
+6a15 2 93 2798
+6a17 2 95 2798
+6a19 2 97 2798
+6a1b 2 98 2798
+6a1d 3 100 2798
+6a20 3 101 2798
+6a23 2 103 2798
+6a25 2 104 2798
+6a27 2 106 2798
+6a29 2 107 2798
+6a2b 2 109 2798
+6a2d 2 112 2798
+6a2f 2 113 2798
+6a31 2 115 2798
+6a33 2 116 2798
+6a35 2 118 2798
+6a37 2 121 2798
+6a39 2 122 2798
+6a3b 3 124 2798
+6a3e 2 125 2798
+6a40 2 128 2798
+6a42 2 129 2798
+6a44 2 130 2798
+6a46 5 133 2798
+6a4b 2 134 2798
+6a4d 2 135 2798
+6a4f 2 138 2798
+6a51 5 140 2798
+PUBLIC 6a56 10 RtlUnwind
+STACK WIN 4 1000 54 6 0 8 0 14 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1060 a 3 0 0 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 106a 35 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 109f 1e 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10bd 20 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 10dd 3c 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1119 10 7 0 0 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1129 7 3 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1130 2c 7 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 115c 1a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1176 21 8 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 117c 17 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1197 b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11a2 29 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 11cb 161 c 0 0 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 12ee 14 0 0 0 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 132c a 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1336 70 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 139d 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 142e 44 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 144f 21 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1472 6a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 14dc e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 14ea 2b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1515 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 152d 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1536 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 153f 33 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1542 2f 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1572 2e 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1578 26 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15a0 a1 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 15e2 3e 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 15e3 3c 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1641 140 c 0 c 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 176c e 0 0 c 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 1781 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1797 16 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17ad f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 17bc f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 17cb 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 17e9 26 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 180f 1c5 1b 0 4 0 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1825 1a8 5 0 4 4 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ = 
+STACK WIN 4 1826 1a4 4 0 4 8 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ = 
+STACK WIN 4 182a 19f 0 0 4 c 1fc 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 512 - ^ =  $23 $T0 516 - ^ =  $24 $T0 520 - ^ = 
+STACK WIN 4 19d4 39 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1a0d 251 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1a13 249 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1a35 226 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1aae 1a9 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1c5e dc 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 1c6d a8 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 1c74 a0 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 1cb6 5d 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ =  $20 $T0 12 - ^ = 
+STACK WIN 4 1d3a 309 d 0 c 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 1d44 2e0 3 0 c 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 1d47 2dc 0 0 c 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 2043 c5 d 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 204c ba 4 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 204f b6 1 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 2050 b4 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2108 b8 a 0 0 0 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2111 ad 1 0 0 4 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ = 
+STACK WIN 4 2112 ab 0 0 0 8 c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ = 
+STACK WIN 4 215b 61 0 0 0 c c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 16 - ^ =  $23 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 21c0 3b2 9 0 0 0 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 21c9 3a2 0 0 0 4 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ = 
+STACK WIN 4 2280 2ea 0 0 0 8 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ = 
+STACK WIN 4 2281 2e8 0 0 0 c 4c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 80 - ^ =  $20 $T0 84 - ^ =  $24 $T0 88 - ^ = 
+STACK WIN 4 2572 30 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2575 2c b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2580 20 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 25a2 30 e 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25a5 2c b 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 25b0 20 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 25d2 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25db 9 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25e4 34 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 25e7 30 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2618 3d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2655 b4 c 0 8 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 26f1 e 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2700 8 0 0 8 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 2709 8d 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 270c 89 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 270d 85 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 2796 1a 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2799 16 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 27b0 12f c 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 28c7 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 28d3 b 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 28df 18f 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 28e2 18b 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 28fd 16f 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 2a6e 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2ae5 2c4 21 0 10 0 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2aee 18e 18 0 10 4 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ = 
+STACK WIN 4 2af2 189 14 0 10 8 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ = 
+STACK WIN 4 2b06 174 0 0 10 c 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 2da9 9b 17 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2dbf 83 1 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 2dc0 81 0 0 0 8 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ = 
+STACK WIN 4 2ddc 64 0 0 0 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $24 $T0 24 - ^ =  $23 $T0 28 - ^ = 
+STACK WIN 4 2e44 f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2e53 129 1a 0 c 8 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 812 - ^ =  $24 $T0 816 - ^ = 
+STACK WIN 4 2f7c 25 3 0 14 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2f7f 21 0 0 14 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2fa1 2d 5 0 14 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 2fce 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2fde 5e 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 2fe1 4e 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 2fe2 4c 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 303c 89 a 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 303f 85 7 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3046 7d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 304c 48 0 0 0 c 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 30c5 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 30dc c2 c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3195 8 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 319e 47 9 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31a7 3c 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 31e5 9c a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 31ee 91 1 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 31ef 8f 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 330c b6 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3312 ae 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 331f 80 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3320 7e 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3514 42 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3556 13 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3569 39 c 0 0 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3589 4 0 0 0 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 35a2 11 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 35b3 1e 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 35d1 4b 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 35e0 25 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 361c d 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3629 1a3 c 0 4 10 30 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 52 - ^ =  $23 $T0 56 - ^ =  $24 $T0 60 - ^ = 
+STACK WIN 4 378a 14 0 0 4 10 30 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 37cc f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37db f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37ea f 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 37f9 28 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3821 c0 f 0 4 0 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3828 b7 8 0 4 4 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ = 
+STACK WIN 4 3829 b5 7 0 4 8 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 3830 ad 0 0 4 c 4 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ =  $24 $T0 16 - ^ = 
+STACK WIN 4 38e1 3b 3 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 38e4 37 0 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 391c 3c c 0 4 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 3952 5 0 0 4 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3958 17 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 396f 23 4 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3972 1f 1 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3973 1d 0 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3992 5d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 39ef 76 38 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3a15 4e 12 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3a16 4c 11 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3a27 3a 0 0 8 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3a65 bc 35 0 4 10 18 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 28 - ^ =  $23 $T0 32 - ^ =  $24 $T0 36 - ^ = 
+STACK WIN 4 3af0 13 0 0 4 10 18 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 3b21 16c 1e 0 c 0 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3b37 14f 8 0 c 4 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ = 
+STACK WIN 4 3b3e 145 1 0 c 8 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ = 
+STACK WIN 4 3b3f 143 0 0 c c 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 3c8d bf a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3c93 2c 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3c97 27 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3d4c 13e e 0 10 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3d55 17 5 0 10 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 3d59 28 1 0 10 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 3d5a 10 0 0 10 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 3e8a 25 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3eaf a0 a 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3eb5 2c 4 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3eb9 27 0 0 c 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3f4f 49 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3f98 f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 3fa7 45 7 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3fad 3d 1 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3fae 3b 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 3fec 4c 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 3ff2 44 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 3ff3 42 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4038 4e 7 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 403e 46 1 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 403f 44 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4086 2f 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 40b5 be 6 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 40b8 ba 3 0 0 4 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 40b9 b8 2 0 0 8 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 4173 246 17 0 0 0 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4189 229 1 0 0 4 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ = 
+STACK WIN 4 418a 225 0 0 0 8 51c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 1312 - ^ =  $24 $T0 1316 - ^ = 
+STACK WIN 4 43b9 a4 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 4451 b 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 445d 15d b 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4466 150 2 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 45ba 9a 9 0 0 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 45c3 8f 0 0 0 4 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ = 
+STACK WIN 4 4654 2d2 1b 0 8 0 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4667 2b8 8 0 8 4 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ = 
+STACK WIN 4 466b 2b1 4 0 8 8 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ = 
+STACK WIN 4 466f 2ac 0 0 8 c 20 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 36 - ^ =  $23 $T0 40 - ^ =  $24 $T0 44 - ^ = 
+STACK WIN 4 4926 19a c 0 4 10 24 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 40 - ^ =  $23 $T0 44 - ^ =  $24 $T0 48 - ^ = 
+STACK WIN 4 4a87 8 0 0 4 10 24 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 4ac0 1e 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 4ade 80 8 0 10 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b5e 18 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b76 f8 e 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4b7c f0 8 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4b7d ee 7 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4b84 e6 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 4c6e 102 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4c74 fa 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 4c80 eb 0 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ = 
+STACK WIN 4 4c81 e9 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $20 $T0 8 - ^ =  $23 $T0 12 - ^ = 
+STACK WIN 4 4d70 293 20 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 4d76 28b 1a 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ = 
+STACK WIN 4 4d77 289 19 0 4 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 4d90 26f 0 0 4 c 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 4 - ^ =  $23 $T0 8 - ^ =  $24 $T0 12 - ^ = 
+STACK WIN 4 5003 6b 6 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5009 63 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ = 
+STACK WIN 4 5018 4f 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $24 $T0 4 - ^ =  $23 $T0 8 - ^ = 
+STACK WIN 4 506e 79 c 0 0 10 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 32 - ^ =  $23 $T0 36 - ^ =  $24 $T0 40 - ^ = 
+STACK WIN 4 50db 8 0 0 0 10 1c 0 1 $T0 $ebp = $T2 $esp = $T1 .raSearchStart = $eip $T1 ^ = $ebp $T0 = $esp $T1 4 + = 
+STACK WIN 4 50e7 8 0 0 4 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5335 33 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 56c9 2a 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 56f3 3d 5 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5730 9 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 5739 106 b 0 0 0 328 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 583f a0 5 0 c 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5875 68 0 0 c 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 58df cb 5 0 8 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 58f6 6c 0 0 8 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 590b 56 0 0 8 8 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ =  $24 $T0 8 - ^ = 
+STACK WIN 4 59aa 22d 1a 0 24 c 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 20 - ^ =  $23 $T0 24 - ^ =  $24 $T0 28 - ^ = 
+STACK WIN 4 5bd7 50 8 0 24 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5c27 112 16 0 1c c 8 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $20 $T0 12 - ^ =  $23 $T0 16 - ^ =  $24 $T0 20 - ^ = 
+STACK WIN 4 5d39 4a 8 0 20 0 10 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d83 775 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 5d89 76d 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 64f8 9f 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 64fe 97 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6597 180 6 0 4 0 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + = 
+STACK WIN 4 659d 178 0 0 4 4 0 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =  $23 $T0 4 - ^ = 
+STACK WIN 4 6717 ba 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 67d1 10 0 0 0 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 4 67e1 103 0 0 c 0 0 0 1 $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = 
+STACK WIN 0 12ee 14 0 0 0 0 0 0 0 0
+STACK WIN 0 139d 9 0 0 0 0 0 0 0 0
+STACK WIN 0 13a6 88 0 0 8 0 0 0 0 0
+STACK WIN 0 176c f 0 0 0 0 0 0 0 0
+STACK WIN 0 26f1 f 0 0 0 0 0 0 0 0
+STACK WIN 0 2700 9 0 0 0 0 0 0 0 0
+STACK WIN 0 28c7 c 0 0 0 0 0 0 0 0
+STACK WIN 0 28d3 c 0 0 0 0 0 0 0 0
+STACK WIN 0 3195 9 0 0 0 0 0 0 0 0
+STACK WIN 0 3281 8b 0 0 4 0 0 0 0 0
+STACK WIN 0 33c2 90 3 0 c c 0 0 0 0
+STACK WIN 0 3452 46 0 0 10 4 0 0 0 1
+STACK WIN 0 34b4 17 4 0 0 10 0 0 0 1
+STACK WIN 0 34cb 19 0 0 0 0 0 0 0 0
+STACK WIN 0 34fd 17 1 0 8 4 0 0 0 1
+STACK WIN 0 3589 4 0 0 0 0 0 0 0 0
+STACK WIN 0 378a 15 0 0 0 0 0 0 0 0
+STACK WIN 0 3952 6 0 0 0 0 0 0 0 0
+STACK WIN 0 3af0 13 0 0 0 0 0 0 0 0
+STACK WIN 0 4451 c 0 0 0 0 0 0 0 0
+STACK WIN 0 4a87 9 0 0 0 0 0 0 0 0
+STACK WIN 0 50db 9 0 0 0 0 0 0 0 0
+STACK WIN 0 50ef 7a 0 0 c 0 0 0 0 0
+STACK WIN 0 5169 95 0 0 10 0 4 0 0 0
+STACK WIN 0 5263 84 3 0 8 c 0 0 0 0
+STACK WIN 0 52e7 23 0 0 0 0 0 0 0 0
+STACK WIN 0 5332 3 0 0 0 0 0 0 0 0
+STACK WIN 0 6910 1a 0 0 10 0 0 0 0 0
+STACK WIN 0 692a 1a 0 0 10 0 4 0 0 0
diff --git a/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.dll b/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.dll
new file mode 100644
index 0000000..879af40
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.dll
Binary files differ
diff --git a/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.sym b/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.sym
new file mode 100644
index 0000000..745aa4b
--- /dev/null
+++ b/src/tools/windows/dump_syms/testdata/pe_only_symbol_test.sym
@@ -0,0 +1,214 @@
+MODULE windows x86_64 2A5EAB481FAB4A17A9761CDC14FE531A1 pe_only_symbol_test.pdb
+INFO CODE_ID 5C8AD05F12000 pe_only_symbol_test.dll
+STACK CFI INIT 1440 39 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1440 .cfa: $rsp 32 +
+STACK CFI INIT 1490 7f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1490 .cfa: $rsp 128 +
+STACK CFI INIT 1520 41 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1520 .cfa: $rsp 48 +
+STACK CFI INIT 1570 35 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1570 .cfa: $rsp 48 +
+STACK CFI INIT 15b0 3a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 15b0 .cfa: $rsp 48 +
+STACK CFI INIT 1640 8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1640 .cfa: $rsp 16 +
+STACK CFI INIT 1650 d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1650 .cfa: $rsp 16 +
+STACK CFI INIT 1660 b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1660 .cfa: $rsp 16 +
+STACK CFI INIT 1670 5a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1670 .cfa: $rsp 64 +
+STACK CFI INIT 16e0 97 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 16e0 .cfa: $rsp 112 +
+STACK CFI INIT 17c0 3f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 17c0 .cfa: $rsp 64 +
+STACK CFI INIT 1810 23 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1810 .cfa: $rsp 64 +
+STACK CFI INIT 1840 16 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1840 .cfa: $rsp 16 +
+STACK CFI INIT 1856 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1856 .cfa: $rsp 16 +
+STACK CFI INIT 1876 5 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1876 .cfa: $rsp 16 +
+STACK CFI INIT 1890 1b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1890 .cfa: $rsp 48 +
+STACK CFI INIT 18ab 56 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 18ab .cfa: $rsp 48 +
+STACK CFI INIT 1901 10 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1901 .cfa: $rsp 48 +
+STACK CFI INIT 1940 7 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1940 .cfa: $rsp 64 +
+STACK CFI INIT 1947 1a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1947 .cfa: $rsp 64 +
+STACK CFI INIT 1961 b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1961 .cfa: $rsp 64 +
+STACK CFI INIT 196c 4c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 196c .cfa: $rsp 64 +
+STACK CFI INIT 19b8 5 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 19b8 .cfa: $rsp 64 +
+STACK CFI INIT 19bd 13 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 19bd .cfa: $rsp 64 +
+STACK CFI INIT 19d0 73 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 19d0 .cfa: $rsp 64 +
+STACK CFI INIT 1a90 3a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1a90 .cfa: $rsp 48 +
+STACK CFI INIT 1ae0 f8 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1ae0 .cfa: $rsp 96 +
+STACK CFI INIT 1c30 21 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1c30 .cfa: $rsp 8 +
+STACK CFI INIT 1c60 87 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1c60 .cfa: $rsp 64 +
+STACK CFI INIT 1d10 13a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1d10 .cfa: $rsp 80 +
+STACK CFI INIT 1ea0 88 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1ea0 .cfa: $rsp 64 +
+STACK CFI INIT 1f50 135 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 1f50 .cfa: $rsp 80 +
+STACK CFI INIT 20e0 4d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 20e0 .cfa: $rsp 64 +
+STACK CFI INIT 2140 2a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2140 .cfa: $rsp 48 +
+STACK CFI INIT 2180 36 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2180 .cfa: $rsp 48 +
+STACK CFI INIT 2290 36 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2290 .cfa: $rsp 96 +
+STACK CFI INIT 22e0 44 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 22e0 .cfa: $rsp 96 +
+STACK CFI INIT 2340 5f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2340 .cfa: $rsp 544 +
+STACK CFI INIT 239f d9 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 239f .cfa: $rsp 544 +
+STACK CFI INIT 2478 1d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2478 .cfa: $rsp 544 +
+STACK CFI INIT 2560 cf .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2560 .cfa: $rsp 1088 +
+STACK CFI INIT 2670 2d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2670 .cfa: $rsp 80 +
+STACK CFI INIT 269d 6b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 269d .cfa: $rsp 80 +
+STACK CFI INIT 2708 1a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2708 .cfa: $rsp 80 +
+STACK CFI INIT 2770 260 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2770 .cfa: $rsp 3824 +
+STACK CFI INIT 2a70 1f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2a70 .cfa: $rsp 48 +
+STACK CFI INIT 2aa0 c5 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2aa0 .cfa: $rsp 1088 +
+STACK CFI INIT 2ba0 64 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2ba0 .cfa: $rsp 64 +
+STACK CFI INIT 2c20 25 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2c20 .cfa: $rsp 64 +
+STACK CFI INIT 2c50 35 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2c50 .cfa: $rsp 48 +
+STACK CFI INIT 2ca0 d1 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2ca0 .cfa: $rsp 64 +
+STACK CFI INIT 2db0 13 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2db0 .cfa: $rsp 48 +
+STACK CFI INIT 2dd0 9b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2dd0 .cfa: $rsp 48 +
+STACK CFI INIT 2ea0 10e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 2ea0 .cfa: $rsp 64 +
+STACK CFI INIT 3000 91 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3000 .cfa: $rsp 128 +
+STACK CFI INIT 30c0 b2 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 30c0 .cfa: $rsp 128 +
+STACK CFI INIT 31a0 be .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 31a0 .cfa: $rsp 80 +
+STACK CFI INIT 3290 74 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3290 .cfa: $rsp 64 +
+STACK CFI INIT 3330 16 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3330 .cfa: $rsp 48 +
+STACK CFI INIT 3350 15 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3350 .cfa: $rsp 48 +
+STACK CFI INIT 3380 45 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3380 .cfa: $rsp 64 +
+STACK CFI INIT 33e0 3b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 33e0 .cfa: $rsp 48 +
+STACK CFI INIT 3430 40 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3430 .cfa: $rsp 48 +
+STACK CFI INIT 34a0 15 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 34a0 .cfa: $rsp 48 +
+STACK CFI INIT 34c0 c6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 34c0 .cfa: $rsp 64 +
+STACK CFI INIT 35c0 e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 35c0 .cfa: $rsp 48 +
+STACK CFI INIT 35e0 8a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 35e0 .cfa: $rsp 48 +
+STACK CFI INIT 36a0 62 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 36a0 .cfa: $rsp 80 +
+STACK CFI INIT 3720 2d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3720 .cfa: $rsp 48 +
+STACK CFI INIT 3760 1d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3760 .cfa: $rsp 48 +
+STACK CFI INIT 3790 30 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3790 .cfa: $rsp 48 +
+STACK CFI INIT 37d0 15 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 37d0 .cfa: $rsp 48 +
+STACK CFI INIT 37f0 5b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 37f0 .cfa: $rsp 64 +
+STACK CFI INIT 3870 2e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3870 .cfa: $rsp 48 +
+STACK CFI INIT 38b0 15 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 38b0 .cfa: $rsp 48 +
+STACK CFI INIT 38d0 49 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 38d0 .cfa: $rsp 48 +
+STACK CFI INIT 3930 10c .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3930 .cfa: $rsp 128 +
+STACK CFI INIT 3a80 8b .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3a80 .cfa: $rsp 96 +
+STACK CFI INIT 3b30 2f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3b30 .cfa: $rsp 48 +
+STACK CFI INIT 3b70 3f .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3b70 .cfa: $rsp 48 +
+STACK CFI INIT 3bc0 82 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3bc0 .cfa: $rsp 80 +
+STACK CFI INIT 3c70 50 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3c70 .cfa: $rsp 64 +
+STACK CFI INIT 3ce0 33 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3ce0 .cfa: $rsp 64 +
+STACK CFI INIT 3d50 191 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3d50 .cfa: $rsp 1536 +
+STACK CFI INIT 3f50 51 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3f50 .cfa: $rsp 176 +
+STACK CFI INIT 3fc0 e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3fc0 .cfa: $rsp 48 +
+STACK CFI INIT 3ff0 a6 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 3ff0 .cfa: $rsp 64 +
+STACK CFI INIT 40c0 16 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 40c0 .cfa: $rsp 48 +
+STACK CFI INIT 40f0 72 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 40f0 .cfa: $rsp 64 +
+STACK CFI INIT 4180 42 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4180 .cfa: $rsp 48 +
+STACK CFI INIT 41e0 42 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 41e0 .cfa: $rsp 48 +
+STACK CFI INIT 4250 1e .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4250 .cfa: $rsp 32 +
+STACK CFI INIT 4280 18 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4280 .cfa: $rsp 48 +
+STACK CFI INIT 42a0 37 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 42a0 .cfa: $rsp 64 +
+STACK CFI INIT 4300 145 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4300 .cfa: $rsp 1120 +
+STACK CFI INIT 44a0 2ae .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 44a0 .cfa: $rsp 640 +
+STACK CFI INIT 4800 103 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4800 .cfa: $rsp 1664 +
+STACK CFI INIT 4950 3c5 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4950 .cfa: $rsp 240 +
+STACK CFI INIT 4e10 36d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 4e10 .cfa: $rsp 96 +
+STACK CFI INIT 5270 25 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 5270 .cfa: $rsp 32 +
+STACK CFI INIT 66c0 2 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 66c0 .cfa: $rsp 8 +
+STACK CFI INIT 76d0 1a .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 76d0 .cfa: $rsp 48 +
+STACK CFI INIT 76f0 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 76f0 .cfa: $rsp 48 +
+STACK CFI INIT 7720 48 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7720 .cfa: $rsp 64 +
+STACK CFI INIT 7780 20 .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 7780 .cfa: $rsp 48 +
+STACK CFI INIT 77b0 3d .cfa: $rsp .ra: .cfa 8 - ^
+STACK CFI 77b0 .cfa: $rsp 48 +
diff --git a/src/tools/windows/refresh_binaries.bat b/src/tools/windows/refresh_binaries.bat
new file mode 100644
index 0000000..bf18d50
--- /dev/null
+++ b/src/tools/windows/refresh_binaries.bat
@@ -0,0 +1,23 @@
+REM This batch file is meant to facilitate regenerating prebuilt binaries for 
+REM the Windows tools.
+REM You MUST run it from a Visual Studio xxxx Command Prompt.  To do this,
+REM navigate to:
+REM 
+REM    Start->Programs->Microsoft Visual Studio XXXX->Tools->
+REM                        Visual Studio Command Prompt
+REM
+REM Then run this batch file.  It performs an SVN update, edits the
+REM README.binaries file to contain
+REM the revision number, and builds the tools.  You must run 'svn commit' to
+REM commit the pending edits to the repository.
+
+pushd %~dp0
+if %VisualStudioVersion% == 14.0 set GYP_MSVS_VERSION=2015
+gyp tools_windows.gyp
+msbuild tools_windows.sln /p:Configuration=Release /t:Clean,Build
+copy Release\symupload.exe binaries\
+copy Release\dump_syms.exe binaries\
+git add binaries
+git commit -m "Built Windows binaries"
+echo Done!
+popd
diff --git a/src/tools/windows/symupload/symupload.cc b/src/tools/windows/symupload/symupload.cc
new file mode 100644
index 0000000..e6fa126
--- /dev/null
+++ b/src/tools/windows/symupload/symupload.cc
@@ -0,0 +1,394 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Tool to upload an exe/dll and its associated symbols to an HTTP server.
+// The PDB file is located automatically, using the path embedded in the
+// executable.  The upload is sent as a multipart/form-data POST request,
+// with the following parameters:
+//  code_file: the basename of the module, e.g. "app.exe"
+//  debug_file: the basename of the debugging file, e.g. "app.pdb"
+//  debug_identifier: the debug file's identifier, usually consisting of
+//                    the guid and age embedded in the pdb, e.g.
+//                    "11111111BBBB3333DDDD555555555555F"
+//  product: the HTTP-friendly product name, e.g. "MyApp"
+//  version: the file version of the module, e.g. "1.2.3.4"
+//  os: the operating system that the module was built for, always
+//      "windows" in this implementation.
+//  cpu: the CPU that the module was built for, typically "x86".
+//  symbol_file: the contents of the breakpad-format symbol file
+
+#include <windows.h>
+#include <dbghelp.h>
+#include <wininet.h>
+
+#include <cstdio>
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/windows/string_utils-inl.h"
+
+#include "common/windows/http_upload.h"
+#include "common/windows/pdb_source_line_writer.h"
+#include "common/windows/symbol_collector_client.h"
+
+using std::string;
+using std::wstring;
+using std::vector;
+using std::map;
+using google_breakpad::HTTPUpload;
+using google_breakpad::SymbolCollectorClient;
+using google_breakpad::SymbolStatus;
+using google_breakpad::UploadUrlResponse;
+using google_breakpad::CompleteUploadResult;
+using google_breakpad::PDBModuleInfo;
+using google_breakpad::PDBSourceLineWriter;
+using google_breakpad::WindowsStringUtils;
+
+// Extracts the file version information for the given filename,
+// as a string, for example, "1.2.3.4".  Returns true on success.
+static bool GetFileVersionString(const wchar_t* filename, wstring* version) {
+  DWORD handle;
+  DWORD version_size = GetFileVersionInfoSize(filename, &handle);
+  if (version_size < sizeof(VS_FIXEDFILEINFO)) {
+    return false;
+  }
+
+  vector<char> version_info(version_size);
+  if (!GetFileVersionInfo(filename, handle, version_size, &version_info[0])) {
+    return false;
+  }
+
+  void* file_info_buffer = NULL;
+  unsigned int file_info_length;
+  if (!VerQueryValue(&version_info[0], L"\\",
+                     &file_info_buffer, &file_info_length)) {
+    return false;
+  }
+
+  // The maximum value of each version component is 65535 (0xffff),
+  // so the max length is 24, including the terminating null.
+  wchar_t ver_string[24];
+  VS_FIXEDFILEINFO* file_info =
+    reinterpret_cast<VS_FIXEDFILEINFO*>(file_info_buffer);
+  swprintf(ver_string, sizeof(ver_string) / sizeof(ver_string[0]),
+           L"%d.%d.%d.%d",
+           file_info->dwFileVersionMS >> 16,
+           file_info->dwFileVersionMS & 0xffff,
+           file_info->dwFileVersionLS >> 16,
+           file_info->dwFileVersionLS & 0xffff);
+
+  // remove when VC++7.1 is no longer supported
+  ver_string[sizeof(ver_string) / sizeof(ver_string[0]) - 1] = L'\0';
+
+  *version = ver_string;
+  return true;
+}
+
+// Creates a new temporary file and writes the symbol data from the given
+// exe/dll file to it.  Returns the path to the temp file in temp_file_path
+// and information about the pdb in pdb_info.
+static bool DumpSymbolsToTempFile(const wchar_t* file,
+                                  wstring* temp_file_path,
+                                  PDBModuleInfo* pdb_info) {
+  google_breakpad::PDBSourceLineWriter writer;
+  // Use EXE_FILE to get information out of the exe/dll in addition to the
+  // pdb.  The name and version number of the exe/dll are of value, and
+  // there's no way to locate an exe/dll given a pdb.
+  if (!writer.Open(file, PDBSourceLineWriter::EXE_FILE)) {
+    return false;
+  }
+
+  wchar_t temp_path[_MAX_PATH];
+  if (GetTempPath(_MAX_PATH, temp_path) == 0) {
+    return false;
+  }
+
+  wchar_t temp_filename[_MAX_PATH];
+  if (GetTempFileName(temp_path, L"sym", 0, temp_filename) == 0) {
+    return false;
+  }
+
+  FILE* temp_file = NULL;
+#if _MSC_VER >= 1400  // MSVC 2005/8
+  if (_wfopen_s(&temp_file, temp_filename, L"w") != 0)
+#else  // _MSC_VER >= 1400
+  // _wfopen_s was introduced in MSVC8.  Use _wfopen for earlier environments.
+  // Don't use it with MSVC8 and later, because it's deprecated.
+  if (!(temp_file = _wfopen(temp_filename, L"w")))
+#endif  // _MSC_VER >= 1400
+  {
+    return false;
+  }
+
+  bool success = writer.WriteSymbols(temp_file);
+  fclose(temp_file);
+  if (!success) {
+    _wunlink(temp_filename);
+    return false;
+  }
+
+  *temp_file_path = temp_filename;
+
+  return writer.GetModuleInfo(pdb_info);
+}
+
+static bool DoSymUploadV2(
+    const wchar_t* api_url,
+    const wchar_t* api_key,
+    const wstring& debug_file,
+    const wstring& debug_id,
+    const wstring& symbol_file,
+    bool force) {
+  wstring url(api_url);
+  wstring key(api_key);
+
+  if (!force) {
+    SymbolStatus symbolStatus = SymbolCollectorClient::CheckSymbolStatus(
+      url,
+      key,
+      debug_file,
+      debug_id);
+    if (symbolStatus == SymbolStatus::Found) {
+      wprintf(L"Symbol file already exists, upload aborted."
+        L" Use \"-f\" to overwrite.\n");
+      return true;
+    }
+    else if (symbolStatus == SymbolStatus::Unknown) {
+      wprintf(L"Failed to get check for existing symbol.\n");
+      return false;
+    }
+  }
+
+  UploadUrlResponse uploadUrlResponse;
+  if (!SymbolCollectorClient::CreateUploadUrl(
+      url,
+      key,
+      &uploadUrlResponse)) {
+    wprintf(L"Failed to create upload URL.\n");
+    return false;
+  }
+
+  wstring signed_url = uploadUrlResponse.upload_url;
+  wstring upload_key = uploadUrlResponse.upload_key;
+  wstring response;
+  int response_code;
+  bool success = HTTPUpload::SendPutRequest(
+    signed_url,
+    symbol_file,
+    /* timeout = */ NULL,
+    &response,
+    &response_code);
+  if (!success) {
+    wprintf(L"Failed to send symbol file.\n");
+    wprintf(L"Response code: %ld\n", response_code);
+    wprintf(L"Response:\n");
+    wprintf(L"%s\n", response.c_str());
+    return false;
+  }
+  else if (response_code == 0) {
+    wprintf(L"Failed to send symbol file: No response code\n");
+    return false;
+  }
+  else if (response_code != 200) {
+    wprintf(L"Failed to send symbol file: Response code %ld\n", response_code);
+    wprintf(L"Response:\n");
+    wprintf(L"%s\n", response.c_str());
+    return false;
+  }
+
+  CompleteUploadResult completeUploadResult =
+    SymbolCollectorClient::CompleteUpload(
+      url,
+      key,
+      upload_key,
+      debug_file,
+      debug_id);
+  if (completeUploadResult == CompleteUploadResult::Error) {
+    wprintf(L"Failed to complete upload.\n");
+    return false;
+  }
+  else if (completeUploadResult == CompleteUploadResult::DuplicateData) {
+    wprintf(L"Uploaded file checksum matched existing file checksum,"
+      L" no change necessary.\n");
+  }
+  else {
+    wprintf(L"Successfully sent the symbol file.\n");
+  }
+
+  return true;
+}
+
+__declspec(noreturn) void printUsageAndExit() {
+  wprintf(L"Usage:\n\n"
+          L"    symupload [--timeout NN] [--product product_name] ^\n"
+          L"              <file.exe|file.dll> <symbol upload URL> ^\n"
+          L"              [...<symbol upload URLs>]\n\n");
+  wprintf(L"  - Timeout is in milliseconds, or can be 0 to be unlimited.\n");
+  wprintf(L"  - product_name is an HTTP-friendly product name. It must only\n"
+          L"    contain an ascii subset: alphanumeric and punctuation.\n"
+          L"    This string is case-sensitive.\n\n");
+  wprintf(L"Example:\n\n"
+          L"    symupload.exe --timeout 0 --product Chrome ^\n"
+          L"        chrome.dll http://no.free.symbol.server.for.you\n");
+  wprintf(L"\n");
+  wprintf(L"sym-upload-v2 usage:\n"
+          L"    symupload -p [-f] <file.exe|file.dll> <API-URL> <API-key>\n");
+  wprintf(L"\n");
+  wprintf(L"sym_upload_v2 Options:\n");
+  wprintf(L"    <API-URL> is the sym_upload_v2 API URL.\n");
+  wprintf(L"    <API-key> is a secret used to authenticate with the API.\n");
+  wprintf(L"    -p:\t Use sym_upload_v2 protocol.\n");
+  wprintf(L"    -f:\t Force symbol upload if already exists.\n");
+
+  exit(0);
+}
+
+int wmain(int argc, wchar_t* argv[]) {
+  const wchar_t* module;
+  const wchar_t* product = nullptr;
+  int timeout = -1;
+  int currentarg = 1;
+  bool use_sym_upload_v2 = false;
+  bool force = false;
+  const wchar_t* api_url = nullptr;
+  const wchar_t* api_key = nullptr;
+  while (argc > currentarg + 1) {
+    if (!wcscmp(L"--timeout", argv[currentarg])) {
+      timeout = _wtoi(argv[currentarg + 1]);
+      currentarg += 2;
+      continue;
+    }
+    if (!wcscmp(L"--product", argv[currentarg])) {
+      product = argv[currentarg + 1];
+      currentarg += 2;
+      continue;
+    }
+    if (!wcscmp(L"-p", argv[currentarg])) {
+      use_sym_upload_v2 = true;
+      ++currentarg;
+      continue;
+    }
+    if (!wcscmp(L"-f", argv[currentarg])) {
+      force = true;
+      ++currentarg;
+      continue;
+    }
+    break;
+  }
+
+  if (argc >= currentarg + 2)
+    module = argv[currentarg++];
+  else
+    printUsageAndExit();
+
+  wstring symbol_file;
+  PDBModuleInfo pdb_info;
+  if (!DumpSymbolsToTempFile(module, &symbol_file, &pdb_info)) {
+    fwprintf(stderr, L"Could not get symbol data from %s\n", module);
+    return 1;
+  }
+
+  wstring code_file = WindowsStringUtils::GetBaseName(wstring(module));
+  wstring file_version;
+  // Don't make a missing version a hard error.  Issue a warning, and let the
+  // server decide whether to reject files without versions.
+  if (!GetFileVersionString(module, &file_version)) {
+    fwprintf(stderr, L"Warning: Could not get file version for %s\n", module);
+  }
+
+  bool success = true;
+
+  if (use_sym_upload_v2) {
+    if (argc >= currentarg + 2) {
+      api_url = argv[currentarg++];
+      api_key = argv[currentarg++];
+
+      success = DoSymUploadV2(
+        api_url,
+        api_key,
+        pdb_info.debug_file,
+        pdb_info.debug_identifier,
+        symbol_file,
+        force);
+    } else {
+      printUsageAndExit();
+    }
+  } else {
+    map<wstring, wstring> parameters;
+    parameters[L"code_file"] = code_file;
+    parameters[L"debug_file"] = pdb_info.debug_file;
+    parameters[L"debug_identifier"] = pdb_info.debug_identifier;
+    parameters[L"os"] = L"windows";  // This version of symupload is Windows-only
+    parameters[L"cpu"] = pdb_info.cpu;
+
+    map<wstring, wstring> files;
+    files[L"symbol_file"] = symbol_file;
+
+    if (!file_version.empty()) {
+      parameters[L"version"] = file_version;
+    }
+
+    // Don't make a missing product name a hard error.  Issue a warning and let
+    // the server decide whether to reject files without product name.
+    if (product) {
+      parameters[L"product"] = product;
+    }
+    else {
+      fwprintf(
+        stderr,
+        L"Warning: No product name (flag --product) was specified for %s\n",
+        module);
+    }
+
+    while (currentarg < argc) {
+      int response_code;
+      if (!HTTPUpload::SendMultipartPostRequest(argv[currentarg], parameters, files,
+          timeout == -1 ? NULL : &timeout,
+          nullptr, &response_code)) {
+        success = false;
+        fwprintf(stderr,
+          L"Symbol file upload to %s failed. Response code = %ld\n",
+          argv[currentarg], response_code);
+      }
+      currentarg++;
+    }
+  }
+
+  _wunlink(symbol_file.c_str());
+
+  if (success) {
+    wprintf(L"Uploaded breakpad symbols for windows-%s/%s/%s (%s %s)\n",
+            pdb_info.cpu.c_str(), pdb_info.debug_file.c_str(),
+            pdb_info.debug_identifier.c_str(), code_file.c_str(),
+            file_version.c_str());
+  }
+
+  return success ? 0 : 1;
+}
diff --git a/src/tools/windows/symupload/symupload.gyp b/src/tools/windows/symupload/symupload.gyp
new file mode 100644
index 0000000..4567a4b
--- /dev/null
+++ b/src/tools/windows/symupload/symupload.gyp
@@ -0,0 +1,50 @@
+# Copyright 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'includes': [
+    '../../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'symupload',
+      'type': 'executable',
+      'sources': [
+        'symupload.cc',
+      ],
+      'dependencies': [
+        '../../../common/windows/common_windows.gyp:common_windows_lib',
+      ],
+      'msvs_settings': {
+        'VCLinkerTool': {
+          'LargeAddressAware': '2',
+        },
+      },
+    },
+  ],
+}
diff --git a/src/tools/windows/tools_windows.gyp b/src/tools/windows/tools_windows.gyp
new file mode 100644
index 0000000..17b88b4
--- /dev/null
+++ b/src/tools/windows/tools_windows.gyp
@@ -0,0 +1,46 @@
+# Copyright 2017 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+{
+  'includes': [
+    '../../build/common.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'build_all',
+      'type': 'none',
+      'dependencies': [
+        './converter/ms_symbol_server_converter.gyp:*',
+        './converter_exe/converter.gyp:*',
+        './dump_syms/dump_syms.gyp:*',
+        './symupload/symupload.gyp:*',
+      ],
+    },
+  ],
+}
